Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@聚直播.改@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi6IGa55u05pKtLuaUuSIsImF1dGhvciI6IuWwj+ajieiihPCfjJ4mSm9rZXIiLCJ1cmwiOiJoaWtlcjovL2VtcHR5IiwidmVyc2lvbiI6MjAyNDAzMjAsImNvbF90eXBlIjoiYXZhdGFyIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ2aWRlbyIsImNsYXNzX3VybCI6IiIsImFyZWFfbmFtZSI6IiIsImFyZWFfdXJsIjoiIiwic29ydF9uYW1lIjoiIiwieWVhcl9uYW1lIjoiIiwic29ydF91cmwiOiIiLCJ5ZWFyX3VybCI6IiIsImZpbmRfcnVsZSI6ImpzOlxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoXCJoaWtlcjovL3BhZ2UvY29uZmlnXCIpKS5ydWxlKTsgLy9nZXRDb25maWdcblxubGV0IGRhdGEgPSBbXSxcbiAgICBjb25maWcgPSBnZXRDb25maWcoKTtcbmNvbmZpZy5kYXRhID0gY29uZmlnLmRhdGEuZmlsdGVyKHYgPT4gIXYuaW5WaXNpYmxlKTtcbmlmIChjb25maWcuZGF0YS5sZW5ndGggPD0gMCkge1xuICAgIGRhdGEgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9yZW5kZXJTZXR0aW5nJykucmVuZGVyU2V0dGluZygpO1xufSBlbHNlIHtcbiAgICBsZXQgc2VsZWN0ID0gZ2V0SXRlbShcImxpdmUtc2VsZWN0XCIsIGNvbmZpZy5kYXRhWzBdLm5hbWUpLFxuICAgICAgICBoYXMgPSBjb25maWcuZGF0YS5tYXAoaSA9PiBpLm5hbWUpLmluY2x1ZGVzKHNlbGVjdCk7XG4gICAgaWYgKCFoYXMpIHtcbiAgICAgICAgc2VsZWN0ID0gY29uZmlnLmRhdGFbMF0ubmFtZTtcbiAgICB9XG5cbiAgICBkYXRhLnB1c2goe1xuICAgICAgIC8vIHRpdGxlOiAn6IGa55u05pKtLuaUuScuYm9sZCgpICsgJyAmbmJzcCAmbmJzcCAnICsgJ+KamSDorr7nva4g4pqZJy5zbWFsbCgpLFxuICAgICAgICB0aXRsZTogJ+iuoumYhe+8muKamSDorr7nva4g4pqZJyxcbiAgICAgICAgY29sX3R5cGU6IFwiaWNvbl8yX3JvdW5kXCIsXG4gICAgICAgIHBpY191cmw6IFwiaHR0cHM6Ly9oaWtlcmZhbnMuY29tL3R1Ymlhby9zeXN0ZW0vMjMucG5nXCIsLy9NWV9SVUxFLmljb24sXG4gICAgICAgIHVybDogJChcImhpa2VyOi8vZW1wdHkjbm9Mb2FkaW5nI1wiKS5ydWxlKCgpID0+IHtcbiAgICAgICAgICAgIGFkZExpc3RlbmVyKCdvbkNsb3NlJywgJ3JlZnJlc2hQYWdlKCknKVxuICAgICAgICAgICAgc2V0UmVzdWx0KCQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL3JlbmRlclNldHRpbmcnKS5yZW5kZXJTZXR0aW5nKCkpXG4gICAgICAgIH0pXG4gICAgfSlcblxubGV0IG9wZW5Nb2RlID0gZ2V0SXRlbShcIm9wZW5Nb2RlXCIsXCLmtbfpmJTop4bnlYxcIik7XG4gICAgICAgIGlmIChvcGVuTW9kZSA9PT0gXCLmtbfpmJTop4bnlYxcIikge1xuICAgICAgICAgICAgdmFyIGljb24gPSBcImh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9PTkJray5wbmdcIjtcbiAgICAgICAgfSBlbHNlIGlmIChvcGVuTW9kZSA9PT0gXCLlubvlvbHkuIvovb1cIikge1xuICAgICAgICAgICAgdmFyIGljb24gPSBcImh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96TmVWMC5wbmdcIjtcbiAgICAgICAgfWVsc2UgaWYgKG9wZW5Nb2RlID09PSBcIuS6jOmptOS4i+i9vVwiKSB7XG4gICAgICAgICAgICB2YXIgaWNvbiA9IFwiaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pOdWp2LnBuZ1wiO1xuICAgICAgICB9IGVsc2UgaWYgKG9wZW5Nb2RlID09PSBcIuWwj+eZveS4i+i9vVwiKSB7XG4gICAgICAgICAgICB2YXIgaWNvbiA9IFwiaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pOR1A3LnBuZ1wiO1xuICAgICAgICB9ZWxzZSBpZiAob3Blbk1vZGUgPT09IFwi6L+F6Zu35LiL6L29XCIpIHsgICAgICAgICAgICBcbiAgICAgICAgICAgIHZhciBpY29uID0gXCJodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvWEtIT1YucG5nXCI7XG4gICAgICAgIH0gZWxzZSBpZiAob3Blbk1vZGUgPT09IFwiUElLUEFLXCIpIHsgICAgICAgICAgICBcbiAgICAgICAgICAgIHZhciBpY29uID0gXCJodHRwczovL2ltZy4xMjM3OTgueHl6L2ZpbGUvZTA0ODY1MDk4NDViOGM1MzNhZTA3LnBuZ1wiO1xuICAgICAgICB9IGVsc2UgaWYgKG9wZW5Nb2RlID09PSBcIuaCn+epuuS4i+i9vVwiKSB7XG4gICAgICAgICAgICB2YXIgaWNvbiA9IFwiaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pOaXd3LnBuZ1wiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGljb24gPSBcImh0dHBzOi8vaGlrZXJmYW5zLmNvbS90dWJpYW8va2UvNjkucG5nXCI7XG4gICAgICAgIH1cbiAgICBkYXRhLnB1c2goe1xuICAgICAgICB0aXRsZTogXCLmqKHlvI/vvJpcIiArIG9wZW5Nb2RlLFxuICAgICAgICB1cmw6IFwic2VsZWN0Oi8vXCIgKyBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICB0aXRsZTogXCLno4HlipvkuIvovb3orr7nva5cIixcbiAgICAgICAgICAgIG9wdGlvbnM6IFtcIuaooeW8j++8mua1t+mYlOinhueVjFwiLCBcIuaooeW8j++8mui/hembt+S4i+i9vVwiLFwi5qih5byP77yaUElLUEFLXCIsXCLmqKHlvI/vvJrlubvlvbHkuIvovb1cIixcIuaooeW8j++8muS6jOmptOS4i+i9vVwiLCBcIuaooeW8j++8muWwj+eZveS4i+i9vVwiLFwi5qih5byP77ya5oKf56m65LiL6L29XCIsIFwi5qih5byP77ya5YW25LuW5LiL6L29XCJdLFxuICAgICAgICAgICAgY29sOiAyLFxuICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZShcIuaooeW8j++8mlwiLCBcIlwiKTtcbiAgICAgICAgICAgICAgICBzZXRJdGVtKFwib3Blbk1vZGVcIiwgaW5wdXQpO1xuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFwi6L+F6Zu35LiL6L29XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly9cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHTkv67mlLnmiJDlip9cXG7or7fnoa7kv53mnInlronoo4XjgJDov4Xpm7fkuIvovb3jgJFcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFwiUElLUEFLXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly9cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHTkv67mlLnmiJDlip9cXG7or7fnoa7kv53mnInlronoo4XjgJBQSUtQQUvjgJFcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFwi5LqM6am05LiL6L29XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly9cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHTkv67mlLnmiJDlip9cXG7or7fnoa7kv53mnInlronoo4XjgJDkuozpqbTkuIvovb3jgJFcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFwi5bm75b2x5LiL6L29XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly9cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHTkv67mlLnmiJDlip9cXG7or7fnoa7kv53mnInlronoo4XjgJDlubvlvbHkuIvovb3jgJFcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFwi5bCP55m95LiL6L29XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly9cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHTkv67mlLnmiJDlip9cXG7or7fnoa7kv53mnInlronoo4XjgJDlsI/nmb3kuIvovb3jgJFcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFwi5oKf56m65LiL6L29XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly9cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHTkv67mlLnmiJDlip9cXG7or7fnoa7kv53mnInlronoo4XjgJDmgp/nqbrkuIvovb3jgJFcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFwi5YW25LuW5LiL6L29XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly/plb/mjInpgInmi6njgJDkuIvovb3otYTmupDjgJFcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KSxcbiAgICAgICAgY29sX3R5cGU6IFwiaWNvbl8yX3JvdW5kXCIsXG4gICAgICAgIGRlc2M6IFwiXCIsXG4gICAgICAgIHBpY191cmw6IGljb25cbiAgICB9KTtcblxuICAgIGRhdGEucHVzaCh7XG4gICAgICAgIHRpdGxlOiAn8J+UjicsXG4gICAgICAgIGRlc2M6ICfor7fovpPlhaXmkJzntKLlhbPplK7or40nLFxuICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRWYXIoJ3NlYXJjaF9rZXknLCAnJyksXG4gICAgICAgICAgICBvbkNoYW5nZTogJ3B1dFZhcihcInNlYXJjaF9rZXlcIixpbnB1dCknXG4gICAgICAgIH0sXG4gICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL3NlYXJjaD9ydWxlPScgKyBnZXRNeVZhcigndGl0bGUnKSArICcmcz0nICsgZ2V0VmFyKCdzZWFyY2hfa2V5JywgJycpXG4gICAgICAgIH0pXG4gICAgfSlcblxuXG5cbiAgICBmb3IgKHNvdXJjZSBvZiBjb25maWcuZGF0YSkge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6IHNvdXJjZS5uYW1lID09IHNlbGVjdCA/IFwi4oCc4oCc4oCd4oCdPHNwYW4gc3R5bGU9J2NvbG9yOiAjMTlCODlEJz5cIiArIHNlbGVjdCArIFwiPC9zcGFuPlwiIDogc291cmNlLm5hbWUsXG4gICAgICAgICAgICBjb2xfdHlwZTogXCJzY3JvbGxfYnV0dG9uXCIsXG4gICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGEpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRJdGVtKFwibGl2ZS1zZWxlY3RcIiwgYSk7XG4gICAgICAgICAgICAgICAgc2V0SXRlbSgnc2VsZWN0R3JvdXAnLCAnJyk7XG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJoaWtlcjovL2VtcHR5XCJcbiAgICAgICAgICAgIH0sIHNvdXJjZS5uYW1lKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snXG4gICAgfSlcblxuICAgIGZvciAoc291cmNlIG9mIGNvbmZpZy5kYXRhKSB7XG4gICAgICAgIGlmIChzb3VyY2UubmFtZSA9PSBzZWxlY3QpIHtcbnZhciBjb2w7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL3JlbmRlckRhdGEnKS5yZW5kZXJMaXZlRGF0YShzb3VyY2UudXJsLHNvdXJjZS51YSk7XG4gICAgICAgICAgICAgICAgbGV0IGdyb3VwcyA9IE9iamVjdC5rZXlzKGl0ZW1zKTtcbiAgICAgICAgICAgICAgICAvL2dyb3Vwcy5wdXNoKGdyb3Vwcy5zcGxpY2UoZ3JvdXBzLmluZGV4T2YoMCksIDEpWzBdKTtcblxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RHcm91cCA9IGdldEl0ZW0oJ3NlbGVjdEdyb3VwJywgZ3JvdXBzWzBdKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0R3JvdXAgPT0gXCJcIiB8fCAhZ3JvdXBzLmluY2x1ZGVzKHNlbGVjdEdyb3VwKSkgc2VsZWN0R3JvdXAgPSBncm91cHNbMF07XG5cbiAgICBpZihzZWxlY3RHcm91cD09XCLwn5O655+t6KaW6aC7XCIpIHtcbiAgICAgICAgICAgIGNvbD1cIm1vdmllXzNcIlxuICAgICAgICB9ZWxzZSBpZihzZWxlY3RHcm91cD09XCLwn5O654+N6JeP5ZOBXCIpe1xuICAgICAgICAgICAgY29sPVwicGljXzJfY2FyZFwiXG4gICAgICAgIH1lbHNlIHtcbiAgICAgICAgICAgIGNvbCA9IGdldEl0ZW0oIHNlbGVjdCwgJ21vdmllXzInKVxuICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGdyb3VwID09IHNlbGVjdEdyb3VwID8gXCLigJzigJzigJ3igJ08c3BhbiBzdHlsZT0nY29sb3I6ICMxOUI4OUQnPlwiICsgZ3JvdXAgKyBcIjwvc3Bhbj5cIiA6IGdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoZ3JvdXApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgnc2VsZWN0R3JvdXAnLCBncm91cCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBncm91cCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB0aXRsZSBpbiBpdGVtc1tzZWxlY3RHcm91cF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3VybHMgPSBpdGVtc1tzZWxlY3RHcm91cF1bdGl0bGVdLnVybDsgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBzc3VybHMgPSBzdXJscy5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIS9eZWQya3xebWFnbmV0fF50aHVuZGVyfF5mdHB8Xmhpa2VyfFxcLnRvcnJlbnQkLy50ZXN0KGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgICB9KTtcbmlmKHNzdXJscy5sZW5ndGg+MCl7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWc6IGl0ZW1zW3NlbGVjdEdyb3VwXVt0aXRsZV0uaW1nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKHNvdXJjZXVybCxzZWxlY3RHcm91cCx0aXRsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL3JlbmRlckRhdGEnKS5yZW5kZXJMaXZlRGF0YShzb3VyY2V1cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdXJscyA9IGl0ZW1zW3NlbGVjdEdyb3VwXVt0aXRsZV0udXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzaGVhZGVycyA9IGl0ZW1zW3NlbGVjdEdyb3VwXVt0aXRsZV0uaGVhZGVycztcbiAgICAgICAgICAgICAgICBzdXJscyA9IHN1cmxzLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhL15lZDJrfF5tYWduZXR8XnRodW5kZXJ8XmZ0cHxeaGlrZXJ8XFwudG9ycmVudCQvLnRlc3QoaXRlbSlcbiAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cmxzID0gQXJyYXkuZnJvbShuZXcgU2V0KHN1cmxzKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlYWRlcnMgPSBBcnJheS5mcm9tKG5ldyBTZXQoc2hlYWRlcnMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBzdXJscyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogc2hlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxzb3VyY2UudXJsLHNlbGVjdEdyb3VwLHRpdGxlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBjb2wsXG4gICAgICAgICAgICAgICAgICAgIH0pXG59XG5cbiAgICAgICAgICAgICAgc211cmxzID0gc3VybHMuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC9eZWQya3xebWFnbmV0fF50aHVuZGVyfF5mdHB8XFwudG9ycmVudCQvLnRlc3QoaXRlbSlcbiAgICAgICAgICAgICAgICAgICAgIH0pO1xuaWYoc211cmxzLmxlbmd0aD4wKXtcblxuICAgICAgICAgZm9yKHZhciBpPTA7aTxzbXVybHMubGVuZ3RoO2krKyl7XG5cbiAgICAgICAgaWYgKG9wZW5Nb2RlID09PSBcIua1t+mYlOinhueVjFwiKSB7XG4gICAgICAgICAgICB2YXIgY2lsaVVybCA9IHNtdXJsc1tpXTtcbiAgICAgICAgfWVsc2UgaWYgKG9wZW5Nb2RlID09PSBcIui/hembt+S4i+i9vVwiKSB7XG4gICAgICAgICAgIHZhciBjaWxpVXJsID0gc211cmxzW2ldICsgJCgpLmxhenlSdWxlKCgpPT57XG5vcGVuQXBwSW50ZW50KCdjb20ueHVubGVpLmRvd25sb2FkcHJvdmlkZXInLCAnY29tLnh1bmxlaS5kb3dubG9hZHByb3ZpZGVyLmxhdW5jaC5MYXVuY2hBY3Rpdml0eTInLCB7aW50ZW50RGF0YTogaW5wdXR9KVxuICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/jgJDov4Xpm7fkuIvovb3jgJEnXG59KVxuICAgICAgICB9IGVsc2UgaWYgKG9wZW5Nb2RlID09PSBcIlBJS1BBS1wiKSB7XG4gICAgICAgICAgIHZhciBjaWxpVXJsID0gXCJwaWtwYWthcHA6Ly9teXBpa3Bhay5jb20veHBhbi9tYWluX3RhYj90YWI9MSZhZGRfdXJsPVwiICsgc211cmxzW2ldXG4gICAgICAgIH0gZWxzZSBpZiAob3Blbk1vZGUgPT09IFwi5bm75b2x5LiL6L29XCIpIHtcbiAgICAgICAgICAgdmFyIGNpbGlVcmwgPSBzbXVybHNbaV0gKyAkKCkubGF6eVJ1bGUoKCk9PntcbiBvcGVuQXBwSW50ZW50KCdjb20ueGluZ3N1LmRvd25sb2FkZXInLCAnY29tLmU0YS5ydW50aW1lLmFuZHJvaWQubWFpbkFjdGl2aXR5Jywge2ludGVudERhdGE6IGlucHV0fSlcbiAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v44CQ5bm75b2x5LiL6L2944CRJ1xufSlcbiAgICAgICAgfWVsc2UgaWYgKG9wZW5Nb2RlID09PSBcIuS6jOmptOS4i+i9vVwiKSB7XG4gICAgICAgICAgIHZhciBjaWxpVXJsID0gc211cmxzW2ldICsgJCgpLmxhenlSdWxlKCgpPT57XG4gICAgICAgICAgb3BlbkFwcEludGVudCgnY29tLnFpa2Nsb3VkLnFpaycsICdjb20uZTRhLnJ1bnRpbWUuYW5kcm9pZC5tYWluQWN0aXZpdHknLCB7aW50ZW50RGF0YTogaW5wdXR9KVxuICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/jgJDkuozpqbTkuIvovb3jgJEnXG59KVxuICAgICAgICB9ZWxzZSBpZiAob3Blbk1vZGUgPT09IFwi5bCP55m95LiL6L29XCIpIHtcbiAgICAgICAgICAgdmFyIGNpbGlVcmwgPSBzbXVybHNbaV0gKyAkKCkubGF6eVJ1bGUoKCk9PntcbiAgICAgICAgICBvcGVuQXBwSW50ZW50KCd4Yi5kb3dubG9hZC5jb20nLCAnaW8uZGNsb3VkLlBhbmRvcmFFbnRyeScsIHtpbnRlbnREYXRhOiBpbnB1dH0pXG4gICAgICAgICAgcmV0dXJuICd0b2FzdDovL+OAkOWwj+eZveS4i+i9veOAkSdcbn0pXG4gICAgICAgIH1lbHNlIGlmIChvcGVuTW9kZSA9PT0gXCLmgp/nqbrkuIvovb1cIikge1xuICAgICAgICAgICB2YXIgY2lsaVVybCA9IHNtdXJsc1tpXSArICQoKS5sYXp5UnVsZSgoKT0+e1xub3BlbkFwcEludGVudCgnY29tLnlmb28ud2tEb3dubG9hZGVyJywgJ2NvbS55Zm9vLndrRG93bmxvYWRlci5NYWluQWN0aXZpdHknLCB7aW50ZW50RGF0YTogaW5wdXR9KVxuICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/jgJDmgp/nqbrkuIvovb3jgJEnXG59KVxuICAgICAgICB9IGVsc2Uge3ZhciBjaWxpVXJsID0gc211cmxzW2ldO31cbiAgICAgICAgICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ/Cfp7InICsgdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBpdGVtc1tzZWxlY3RHcm91cF1bdGl0bGVdLmltZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogY2lsaVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBjb2wsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9ICAgICBcblxuICAgICAgICAgICAgICBzaHVybHMgPSBzdXJscy5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pbmNsdWRlcygnaGlrZXI6JylcbiAgICAgICAgICAgICAgICAgICAgIH0pO1xuaWYoc2h1cmxzLmxlbmd0aD4wKXtcblxuICAgICAgICAgZm9yKHZhciBpPTA7aTxzaHVybHMubGVuZ3RoO2krKyl7XG4gICAgICAgICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLmluY2x1ZGVzKCcjJyk/ICfwn4y64oCc4oCc4oCd4oCdJyArIHRpdGxlLnNwbGl0KCcjJylbMF0uZm9udGNvbG9yKCcjRTEyNjUzJykgOiAn8J+MuuKAnOKAnOKAneKAnScgKyB0aXRsZS5mb250Y29sb3IoJyNFMTI2NTMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICF0aXRsZS5pbmNsdWRlcygnIycpID8gJycgOiAn8J+OkuKAnOKAnOKAneKAnScgKyB0aXRsZS5zcGxpdCgnIycpWzFdLmZvbnRjb2xvcignI0YzMjIxRCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGljX3VybDogaXRlbXNbc2VsZWN0R3JvdXBdW3RpdGxlXS5pbWcsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHNodXJsc1tpXS5yZXBsYWNlKCdqYXZkYicsJ2phdmRiNTI1JyksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljJyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gICAgIFxuICAgICAgfSAgICAgXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5pWw5o2u5Yqg6L295aSx6LSlXFxuXCIgKyBKU09OLnN0cmluZ2lmeShlKSxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFwibG9uZ190ZXh0XCJcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuc2V0UmVzdWx0KGRhdGEpOyIsInNlYXJjaF91cmwiOiJoaWtlcjovL2VtcHR5P2tleT0qKiIsImdyb3VwIjoi8J+MiOebtOaSrSIsInNlYXJjaEZpbmQiOiJqczpcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1wiKSkucnVsZSk7XG5sZXQgY29uZmlnID0gZ2V0Q29uZmlnKCk7XG5sZXQgcnVsZXMgPSBjb25maWcuZGF0YS5tYXAoKHNvdXJjZSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiBzb3VyY2UubmFtZSxcbiAgICAgICAgc2VhcmNoX3VybDogJ2hpa2VyOi8vZW1wdHk/a2V5PSoqJyxcbiAgICAgICAgc2VhcmNoRmluZDogJ2pzOicgKyAkLnRvU3RyaW5nKCh1cmwsIHJ1bGVfdGl0bGUpID0+IHtcbiAgICAgICAgICAgIGxldCBkID0gW10sXG4gICAgICAgICAgICAgICAga2V5ID0gZ2V0UGFyYW0oJ2tleScpO1xuICAgICAgICAgICAgbGV0IGl0ZW1zID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvcmVuZGVyRGF0YT9ydWxlPScgKyBydWxlX3RpdGxlKS5yZW5kZXJMaXZlRGF0YSh1cmwpO1xuICAgICAgICAgICAgZm9yIChsZXQgZ3JvdXAgaW4gaXRlbXMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB0aXRsZSBpbiBpdGVtc1tncm91cF0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRpdGxlLmluZGV4T2Yoa2V5KSA+PSAwIHx8IHRpdGxlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihrZXkpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZzogaXRlbXNbZ3JvdXBdW3RpdGxlXS5pbWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IGl0ZW1zW2dyb3VwXVt0aXRsZV0udXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBpdGVtc1tncm91cF1bdGl0bGVdLmhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFJlc3VsdChkKTtcbiAgICAgICAgfSwgc291cmNlLnVybCwgZ2V0TXlWYXIoJ3RpdGxlJykpXG4gICAgfTtcbn0pXG5zZXRSZXN1bHQoW3tcbiAgICB0aXRsZTogXCLngrnmiJHlvIDlp4vogZrmkJxcIixcbiAgICB1cmw6IFwiaGlrZXI6Ly9zZWFyY2g/cz1cIiArIGdldFBhcmFtKFwia2V5XCIpLFxuICAgIGV4dHJhOiB7XG4gICAgICAgIHJ1bGVzOiAkLnRvU3RyaW5nKChydWxlcykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJ1bGVzKVxuICAgICAgICB9LCBydWxlcylcbiAgICB9XG59XSkiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiJwdXRNeVZhcigndGl0bGUnLE1ZX1JVTEUudGl0bGUpOyIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLliqDovb3mlbDmja5cIixcInBhdGhcIjpcImNvbmZpZ1wiLFwicnVsZVwiOlwiZnVuY3Rpb24gZ2V0Q29uZmlnKCkge1xcbiAgICB0cnkge1xcbiAgICAgICAgbGV0IGNvbmZpZyA9IGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9jb25maWcuanNvblxcXCIpO1xcbiAgICAgICAgaWYgKCFjb25maWcgfHwgY29uZmlnID09IFxcXCJcXFwiKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgZGF0YTogW10sXFxuICAgICAgICAgICAgICAgIHZlcnNpb246IDBcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGNvbmZpZylcXG4gICAgICAgIH1cXG4gICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICB0b2FzdChcXFwi6YWN572u5paH5Lu25qC85byP5pyJ6K+vXFxcIilcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGRhdGE6IFtdLFxcbiAgICAgICAgICAgIHZlcnNpb246IDBcXG4gICAgICAgIH1cXG4gICAgfVxcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaJuemHj+WvvOWFpVwiLFwicGF0aFwiOlwiYmF0Y2hJbVwiLFwicnVsZVwiOlwiZnVuY3Rpb24gYmF0Y2hJbXBvcnQoaW5wdXQsIHJ1bGUpIHtcXG4gICAgaW5wdXQgPSBpbnB1dC50cmltKCk7XFxuICAgIGlmIChpbnB1dC5sZW5ndGggPCAzIHx8IGlucHV0WzBdICE9IFxcXCJ7XFxcIikge1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ivt+i+k+WFpeato+ehrueahOagvOW8j1xcXCJcXG4gICAgfVxcbiAgICBsZXQgaW0gPSBKU09OLnBhcnNlKGlucHV0KTtcXG4gICAgaWYgKGltLmRhdGEgPT0gbnVsbCB8fCBpbS5kYXRhLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/or7fovpPlhaXmraPnoa7nmoTmoLzlvI9cXFwiXFxuICAgIH1cXG4gICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoXFxcImhpa2VyOi8vcGFnZS9jb25maWc/cnVsZT1cXFwiICsgcnVsZSkpLnJ1bGUpO1xcbiAgICBsZXQgY29uZmlnID0gZ2V0Q29uZmlnKCk7XFxuICAgIGxldCBjb3VudCA9IDA7XFxuICAgIGxldCBhbGwgPSBjb25maWcuZGF0YS5tYXAoaXQgPT4gaXQudXJsICsgXFxcIiYmJlxcXCIpLmpvaW4oKTtcXG4gICAgZm9yIChsZXQgaSBvZiBpbS5kYXRhKSB7XFxuICAgICAgICBpZiAoYWxsLmluZGV4T2YoaS51cmwgKyBcXFwiJiYmXFxcIikgPj0gMCkge1xcbiAgICAgICAgICAgIC8v6YeN5aSN55qE5LiN6KaBXFxuICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICB9XFxuICAgICAgICBjb3VudCsrO1xcbiAgICAgICAgY29uZmlnLmRhdGEucHVzaChpKVxcbiAgICB9XFxuICAgIHdyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vY29uZmlnLmpzb25cXFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcXG4gICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3suWvvOWFpVxcXCIgKyBjb3VudCArIFxcXCLmnaHorqLpmIXmupBcXFwiO1xcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuebtOaSreaVsOaNrlwiLFwicGF0aFwiOlwicmVuZGVyRGF0YVwiLFwicnVsZVwiOlwiZnVuY3Rpb24gcmVuZGVyTGl2ZURhdGEodXJsLHVhKSB7XFxuICAgIGxldCBtM3UgPSBcXFwiXFxcIjtcXG4gICAgaWYgKHVybC5zdGFydHNXaXRoKCdoaWtlcjovLycpIHx8IHVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykpIHtcXG4gICAgICAgIG0zdSA9IGZldGNoKHVybCk7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBsZXQgaW50ZXJ2YWwgPSBOdW1iZXIoZ2V0SXRlbSgnaW50ZXJ2YWwnLCAnMjQnKSksXFxuICAgICAgICAgICAgb2xkRGF0YSA9IGZldGNoKCdoaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh1cmwpICsgJy5qcycpLFxcbiAgICAgICAgICAgIHJlbW90ZURhdGEgPSAnJztcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgcmVtb3RlRGF0YSA9IGZldGNoQ2FjaGUodXJsLCBpbnRlcnZhbCwge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOntcXG4gICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JyA6IHVhIHx8IE1PQklMRV9VQVxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB0aW1lb3V0OiA1MDAwMFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfSBjYXRjaCAoZSkge31cXG4gICAgICAgIGlmICghcmVtb3RlRGF0YS5pbmNsdWRlcygnaHR0cCcpIHx8IHJlbW90ZURhdGEuaW5jbHVkZXMoJzxib2R5PicpKSB7IFxcbiAgICAgICAgICAgIGxvZygn5pu05paw5aSx6LSlJyk7XFxuICAgICAgICAgICAgaWYgKG9sZERhdGEpIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnLCBvbGREYXRhKTtcXG4gICAgICAgICAgICBtM3UgPSBvbGREYXRhO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBtM3UgPSByZW1vdGVEYXRhO1xcbiAgICAgICAgfVxcbiAgICB9XFxuXFxuICAgIGxldCBtb2RlID0gIG0zdS5pbmRleE9mKCcjRVhUTTNVJykgPT0gMCAsIHJlO1xcbiAgICBpZihtb2RlKXtcXG4gICAgICAgIHJlID0gLyguKiksKC4qKVxcXFxzKj8oKD86aHR0cHxydG1wKVteI1xcXFxzXSopL2c7XFxuICAgIH1lbHNle1xcbiAgICAgICAgcmUgPSAvKCkoPzpcXFxcQlxcXFwkY19zdGFydHxcXFxcQiN7MSwyfSk/KC4qPyksPygjI3zlpLQjfFxcXFwkY19lbmR8LD8jZ2VucmUjfCg/Omh0dHB8cnRtcHxtYWduZXR8aGlrZXJ8ZWQya3xmdHB8dGh1bmRlcilbXlxcXFxzXSopL2c7XFxuICAgIH1cXG4gICAgICAgIFxcbiAgICBsZXQgaXRlbXMgPSB7fSxcXG4gICAgICAgIGdyb3VwID0gJ+acquWIhue7hCc7XFxuICAgIGZvciAobGV0IGkgPSByZS5leGVjKG0zdSk7IGkgIT0gbnVsbDsgaSA9IHJlLmV4ZWMobTN1KSkge1xcbiAgICAgICAgaWYgKG1vZGUpIHtcXG4gICAgICAgICAgICBncm91cCA9IChpWzFdLm1hdGNoKC9ncm91cC10aXRsZT1cXFwiKC4qPylcXFwiLykgfHwgW251bGwsIGdyb3VwXSlbMV07XFxuICAgICAgICAgICAgaW1nID0gKGlbMV0ubWF0Y2goL3R2Zy1sb2dvPVxcXCIoLio/KVxcXCIvKSB8fCBbbnVsbCwgZ3JvdXBdKVsxXTtcXG4gICAgICAgIH0gZWxzZSBpZiAoWycjZ2VucmUjJywnIyMnLCflpLQjJywnJGNfZW5kJ10uaW5jbHVkZXMoaVszXSkpIHtcXG4gICAgICAgICAgICBncm91cCA9IGlbMl07XFxuICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICB9XFxuICAgICAgICBsZXQgdGl0bGUgPSBpWzJdLFxcbiAgICAgICAgICAgIHVybCA9IGlbM10uaW5jbHVkZXMoJyMnKSA/IGlbM10uc3BsaXQoJyMnKS5tYXAodT0+dS5zcGxpdCgnLCcpWzBdKSA6IFtpWzNdLnNwbGl0KCcsJylbMF1dXFxuICAgICAgICAgICAgaW1nID0gKGlbMV0ubWF0Y2goL3R2Zy1sb2dvPVxcXCIoLio/KVxcXCIvKSB8fCBbbnVsbCwgLyhqcGd8anBlZ3xwbmd8Z2lmfHdlYnB8aWNvfHN2ZykvaS50ZXN0KGlbM10uc3BsaXQoJyMnKVswXS5zcGxpdCgnLCcpWzFdKSA/IGlbM10uc3BsaXQoJyMnKVswXS5zcGxpdCgnLCcpWzFdIDogJ2h0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96UkxkSi53ZWJwJ10pWzFdIFxcbi8vaHR0cHM6Ly90aHVtYnNuYXAuY29tL2kvNzlaUFhhcVAuZ2lmXFxuICAgICAgICAgICAgaGVhZGVycyA9IFtdO1xcbiAgICAgICAgaWYoIXVybFt1cmwubGVuZ3RoLTFdKSB1cmwucG9wKCk7XFxuICAgICAgICB1cmwuZm9yRWFjaCgodixpbmRleCxhcnJheSk9PntcXG5cXG4gICAgaWYgKHYuaW5jbHVkZXMoJ2h0dHBzOi8vc3Vycml0LmNvbScpKSB7XFxuICAgICAgICB2ID0gdiArIGA7e09yaWdpbkBodHRwczovL3RoaXNhdi5jb20mJkNvb2tpZUB1c2VyX3V1aWQ9NzQ5NmViMDUtOTQwOC00ZWU2LWE4NTgtOWE2NGQ2YTA3MzVl77yb77ybIF9nYV8yTEpaMzJHNE1FPUdTMS4xLjE3MTA1NzgwNjQuMi4wLjE3MTA1NzgwNjQuMC4wLjDvvJvvvJsgX2dhPUdBMS4yLjg5OTkyMTU1Ni4xNzEwMzk0NTI077yb77ybIFhTUkYtVE9LRU49ZXlKcGRpSTZJa05zZUhBclpFRXpaMmRQVmtOaFdYcDJjMDFrY25jOVBTSXNJblpoYkhWbElqb2lTVkl5VFU1SVFrcHlaVzVOUVhkM00wWm5MM2R0UVdwUE9HaGpjVmhxT1dSNVZuUjBSbVp3T1doRlYzVXhVVTVKYnpoS2RsZFZlVkpITDFrNWNYbG1TekV4YVRGM1RVcHhURTFGTWpsTlZ6aFJSMmxCUml0M1RFMURkMDlJYVROaFpXRkVSekUyVWtWRFYyZEtUREJoWW1sUFVrODViVGxTU2preFFsbGxWamdpTENKdFlXTWlPaUk1TURBMU5qYzFNalZrTmpFMU9HUmxNV0ppWTJNeVkySXlaVGN3TW1GaE0yWXlPVEl5WXpVeVlUWmlaRE0wTkRkbU9UUTNaalZsTW1VNU1HWXdZMlExSWl3aWRHRm5Jam9pSW4wJTNE77yb77ybIG1pc3Nhdl9zZXNzaW9uPWV5SnBkaUk2SWpaSEwwTjJkbW8wVEVoVlNYQlNWME53UjJsYVlYYzlQU0lzSW5aaGJIVmxJam9pYVdkR2N5OVRiRXN2YnpsUFRFTTNWM0l2TkdnMk5tOWtabnBUTm5WbFNIaG9iME41TWxSbU5YZ3lObkE1UTBRM05XUk9NMmx6TjIxU1VXOUxjVlZaVVhkTlQwRlRUV1J6SzBRd04zaFVlbEpIYVRsa2VYcEhObWh0ZEZoVGIwSlFOMWxyUWtWdmJtVlhNMVJSTjFSdUx6UkhiWE54WkZSWFZ6WllOazFzYjJFaUxDSnRZV01pT2lJNU1tWmlabUUzWlRFNU1ESmtNbVprTmpsbFlUbGhaVEV4WWpaaU9XUTFOR0kzWmpZeU16YzBZVEF3TjJSbFlXRmtNR0ZtTm1VMU4ySTFZVFV6TUdVNElpd2lkR0ZuSWpvaUluMCUzRO+8m++8myBCQ0tRSVRWTVJoM2RjeXMxN2hpcjFMaUswa05qazR6ZUwwOVNZMFVHPWV5SnBkaUk2SWtwTVRIbGpSazlqVFhrMmNpODFWWHA0VVZCTVMwRTlQU0lzSW5aaGJIVmxJam9pV0ROS1JuaFJVekpTWTNjNFExRlVWbmhrTHpWc1EzZHpVbTFLUmpjM1IwMUxVRmRDUmpjdlNraHdWbGhVV205dlRHRkdaRU5QVVhkWVoxbEZjbmhwWWpOSFVUVTNlVVZZT1UxYVlUSTVhU3RYUjJWQ1UxRlhVVkJUYlhSaFlrRkZURkZXYjNkeFlWTTVSMkpYVWtoSFRqSkNNMmxpZVc0M2FFZEJabGhMVDFGaFZETjVhVUZPUzFWR1dFdDBabmhvV1V0S1VGbDNUMGx1WWxScVVXeEVZMDlQVTFCNWVGRnVaVVl2VTFOTGRreEJUVXg0VmxscE5FRkRUbmxpUkRsMlVWSjVRbk5HWjJ4bGNVTTBUREJaZDFCUE9EZDJRMFEyYlRCeFpEbEJPV0pUYkdwVU5EWnBaa0o2WVdsdFoyWjBjWHBOZFhKV1VEZzFiVWhTVVhoSlRIVnJkbUZHZUZoMFJHSnJSRGgzYXpSWk5sVlFiV2gzVG5WVGNFWlNWVXhHWkhsS1JqSkhjMkZwVDFOVlZHUlFRbFUzU0RWNE1ubEZlak16UTFKSVJVUjNUekpoWWxsaE5tVlBabUZ2UTA1c1NHOVJURzVDUnl0NmQzbGphRVJXZUVGWFNVNXdjazlxVEhWbE1UWjJjWEZYU21oTFEyOXRLMnRyYlZoUGFrdFBkek4xUldSalpsRlNabEZEV1ZSUlJVOVZTVFJ5WnowOUlpd2liV0ZqSWpvaU5XRXdOR1F4T1dVMk56ZG1aakJpTkRSa05ETXdORE15TkdFMU5UZGlNbVpsTTJRMk5tSXlOREl5T0dJMllUYzVNamxoT0daaFlUZ3dZVFkwTmpSallTSXNJblJoWnlJNklpSjkmJnNlYy1jaC11YUBcXFwiQ2hyb21pdW1cXFwi77yb77ybdj1cXFwiMTIyXFxcIiwgXFxcIk5vdChBOkJyYW5kXFxcIu+8m++8m3Y9XFxcIjI0XFxcIiwgXFxcIkFuZHJvaWQgV2ViVmlld1xcXCLvvJvvvJt2PVxcXCIxMjJcXFwiJiZzZWMtY2gtdWEtbW9iaWxlQD8xJiZzZWMtY2gtdWEtcGxhdGZvcm1AXFxcIkFuZHJvaWRcXFwiJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wIChMaW51eO+8m++8myBBbmRyb2lkIDEy77yb77ybIFNNLUc5NzUwIEJ1aWxkL1NQMUEuMjEwODEyLjAxNu+8m++8myB3dikgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi80LjAgQ2hyb21lLzEyMi4wLjYyNjEuMTE5IE1vYmlsZSBTYWZhcmkvNTM3LjM2JiZSZWZlcmVyQGh0dHBzOi8vdGhpc2F2LmNvbS99YDtcXG4gICAgfVxcblxcbiAgICAgICAgICAgIGlmKC87XFxcXHsoLiopXFxcXH0vLnRlc3Qodikpe1xcbiAgICAgICAgICAgICAgICBsZXQgb2JqID0ge30sXFxuICAgICAgICAgICAgICAgICAgICAgY29uID0gdi5tYXRjaCgvO1xcXFx7KC4qKVxcXFx9LylbMV0sXFxuICAgICAgICAgICAgICAgICAgICAgYXJyID0gY29uLnNwbGl0KCcmJicpO1xcbiAgICAgICAgICAgICAgICBhcnIuZm9yRWFjaCgoaSk9PntcXG4gICAgICAgICAgICAgICAgICAgIGxldCBba2V5LHZhbHVlXSA9IGkuc3BsaXQoJ0AnKTtcXG4gICAgICAgICAgICAgICAgICAgIG9ialtrZXldID0gdmFsdWUucmVwbGFjZSgvOy9nLCfvvJvvvJsnKTtcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgYXJyYXlbaW5kZXhdID0gdi5tYXRjaCgvXihbXjtdKik7XFxcXHsvKVsxXVxcbiAgICAgICAgICAgICAgICBoZWFkZXJzLnB1c2gob2JqKTtcXG4gICAgICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICAgICAgaGVhZGVycy5wdXNoKHsnVXNlci1BZ2VudCcgOiBNT0JJTEVfVUEucmVwbGFjZSgvOy9nLCfvvJvvvJsnKX0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBhcnJheVtpbmRleF0gPSBhcnJheVtpbmRleF0ucmVwbGFjZSgvOy9nLCfvvJvvvJsnKTtcXG4gICAgICAgICAgIGFycmF5W2luZGV4XSA9IGFycmF5W2luZGV4XS5zdGFydHNXaXRoKCdoaWtlcicpfHxhcnJheVtpbmRleF0uc3RhcnRzV2l0aCgnbWFnbmV0Jyk/YXJyYXlbaW5kZXhdOmFycmF5W2luZGV4XSsnI2lzVmlkZW89dHJ1ZSMnO1xcbiAgICAgICAgfSk7XFxuICAgICAgICBpZiAoaXRlbXNbZ3JvdXBdKSB7XFxuICAgICAgICAgICAgaWYgKGl0ZW1zW2dyb3VwXVt0aXRsZV0pIHtcXG4gICAgICAgICAgICAgICAgaXRlbXNbZ3JvdXBdW3RpdGxlXS5pbWcgPSBpdGVtc1tncm91cF1bdGl0bGVdLmltZztcXG4gICAgICAgICAgICAgICAgaXRlbXNbZ3JvdXBdW3RpdGxlXS51cmwgPSBpdGVtc1tncm91cF1bdGl0bGVdLnVybC5jb25jYXQodXJsKTtcXG4gICAgICAgICAgICAgICAgaXRlbXNbZ3JvdXBdW3RpdGxlXS5oZWFkZXJzID0gaXRlbXNbZ3JvdXBdW3RpdGxlXS5oZWFkZXJzLmNvbmNhdChoZWFkZXJzKTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBpdGVtc1tncm91cF1bdGl0bGVdID0ge2ltZzppbWcsdXJsOnVybCxoZWFkZXJzOmhlYWRlcnN9O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgaXRlbXNbZ3JvdXBdID0ge307XFxuICAgICAgICAgICAgaXRlbXNbZ3JvdXBdW3RpdGxlXSA9IHtpbWc6aW1nLHVybDp1cmwsaGVhZGVyczpoZWFkZXJzfTtcXG4gICAgICAgIH07XFxuICAgIH1cXG4gICAgcmV0dXJuIGl0ZW1zO1xcbn1cXG5cXG4kLmV4cG9ydHMgPSB7XFxuICAgIHJlbmRlckxpdmVEYXRhOiByZW5kZXJMaXZlRGF0YVxcbn1cXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuiuvue9rumhtVwiLFwicGF0aFwiOlwicmVuZGVyU2V0dGluZ1wiLFwicnVsZVwiOlwiZnVuY3Rpb24gcmVuZGVyU2V0dGluZygpIHtcXG4gICAgZnVuY3Rpb24gZ2V0Q29sb3JlZFRleHQodGV4dCkge1xcbiAgICAgICAgcmV0dXJuICfigJzigJzigJ3igJ08c3BhbiBzdHlsZT1cXFwiY29sb3I6ICMxOUI4OURcXFwiPicgKyB0ZXh0ICsgJzwvc3Bhbj4nO1xcbiAgICB9XFxuICAgIGNvbnN0IGQgPSBbXTtcXG5cXG4gICAgLy8gIHZhciBmaWxlID0gbmV3IGphdmEuaW8uRmlsZShcXFwiL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3Ui9maWxlcy9Eb2N1bWVudHMvdHUvcGljL1xcXCIpO1xcblxcbiAgICB2YXIgZmlsZSA9IG5ldyBqYXZhLmlvLkZpbGUoZ2V0UGF0aChcXFwiaGlrZXI6Ly9maWxlcy90dS9waWMvXFxcIikucmVwbGFjZSgnZmlsZTovJywgJycpKTtcXG4gICAgdHJ5e1xcbiAgICB2YXIgZmlsZUxpc3QgPSBmaWxlLmxpc3RGaWxlcygpLmZpbHRlcihoPT5oLmlzRmlsZSgpICYmIC9cXFxcLihqcGd8anBlZ3xwbmd8Z2lmfHdlYnApJC8udGVzdChoKSk7XFxuICAgICAgfWNhdGNoe1xcbiAgICB2YXIgZmlsZUxpc3QgPSBbXFxcImh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96VFBMYi53ZWJwXFxcIl1cXG59XFxuICAgIHZhciBpID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZmlsZUxpc3QubGVuZ3RoKTtcXG4gICAgdmFyIGltZyA9IGZpbGVMaXN0W2ldO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCJcXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJjYXJkX3BpY18xXFxcIixcXG4gICAgICAgIGRlc2M6IFxcXCIwXFxcIixcXG4gICAgICAgIHBpY191cmw6IGltZyxcXG4gICAgICAgIHVybDogJChcXFwiaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjXFxcIikucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgXFxuICAgICAgICB9KVxcbiAgICB9KVxcblxcbiAgICBsZXQgaW50ZXJ2YWwgPSBnZXRJdGVtKCdpbnRlcnZhbCcsICcyNCcpO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGludGVydmFsID09IC0xID8gJ+W3suemgeatouiHquWKqOabtOaWsCcuZm9udGNvbG9yKFxcXCIjMTlCODlEXFxcIikuYm9sZCgpIDogKCfmm7TmlrDpl7TpmpQ6JyArIGludGVydmFsICsgJ+Wwj+aXticpLmZvbnRjb2xvcihcXFwiIzE5Qjg5RFxcXCIpLmJvbGQoKSxcXG4gICAgICAgIHVybDogJChpbnRlcnZhbCwgJ+i+k+WFpW7kuLrmraPmlbTmlbDml7bvvIzmr4/pmpRu5bCP5pe26Ieq5Yqo5pu05pawXFxcXG7kuLow5pe277yM5q+P5qyh5omT5byA6YO95Lya5pu05pawXFxcXG7kuLotMeaXtu+8jOemgeatouiHquWKqOabtOaWsCcpLmlucHV0KCgpID0+IHtcXG4gICAgICAgICAgICBpZiAocGFyc2VJbnQoaW5wdXQpID49IC0xKSB7XFxuICAgICAgICAgICAgICAgIHNldEl0ZW0oJ2ludGVydmFsJywgaW5wdXQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgIH0pLFxcbiAgICAgICAgcGljX3VybDogJ2h0dHBzOi8vdGh1bWJzbmFwLmNvbS9pL0pyaW5GMzNqLmpwZycsXFxuICAgICAgICBjb2xfdHlwZTogXFxcImF2YXRhclxcXCJcXG4gICAgfSk7XFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogXFxcImJpZ19ibGFua19ibG9ja1xcXCJcXG4gICAgfSk7XFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogZ2V0Q29sb3JlZFRleHQoXFxcIuaWsOW7uuiuoumYhVxcXCIpLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgIGRlc2M6IFxcXCLor7fovpPlhaXnm7Tmkq3mupDorqLpmIXlnLDlnYBcXFwiLFxcbiAgICAgICAgdXJsOiAkKCcnLCAn6K+36L6T5YWl6K6i6ZiF5Zyw5Z2AXFxcXG7lj6/ku6XlnKjlnLDlnYDlkI7liqB1YVxcXFxuKOS9v+eUqCQkJOWIhuWJsiknKS5pbnB1dCgocnVsZSkgPT4ge1xcbiAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5LiN6IO95Li656m6XFxcIlxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuaW5kZXhPZihcXFwiaHR0cFxcXCIpICE9IDAgJiYgaW5wdXQuaW5kZXhPZihcXFwiZmlsZVxcXCIpICE9IDAgJiYgaW5wdXQuaW5kZXhPZihcXFwiaGlrZXJcXFwiKSAhPSAwKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/pk77mjqXmoLzlvI/mnInor69cXFwiXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgbGV0IFt1cmwsdWFdID0gaW5wdXQuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJCgnJywgXFxcIuivt+i+k+WFpeiuoumYheagh+mimFxcXCIpLmlucHV0KCh1cmwsIHJ1bGUsdWEpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvY29uZmlnP3J1bGU9XFxcIiArIHJ1bGUpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBnZXRDb25maWcoKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5kYXRhLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGlucHV0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdXJsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVhOiB1YSB8fCAnJ1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL2NvbmZpZy5qc29uXFxcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3suS/neWtmFxcXCI7XFxuICAgICAgICAgICAgICAgIH0sIHVybCwgcnVsZSx1YSlcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9LCBnZXRNeVZhcigndGl0bGUnKSlcXG4gICAgfSk7XFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogZ2V0Q29sb3JlZFRleHQoXFxcIuWvvOWFpeiuoumYhVxcXCIpLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgIHVybDogJCgnJywgJ+aUr+aMgeWOn+Wni+aVsOaNruWSjOS6keWJqui0tOadv+WIhuS6q+mTvuaOpScpLmlucHV0KChydWxlKSA9PiB7XFxuICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoXFxcImhpa2VyOi8vcGFnZS9iYXRjaEltP3J1bGU9XFxcIiArIHJ1bGUpKS5ydWxlKTtcXG4gICAgICAgICAgICBpZiAoaW5wdXQuc3RhcnRzV2l0aCgn6IGa55u05pKtLuaUueWIhuS6qyMjJykpIHtcXG4gICAgICAgICAgICAgICAgaW5wdXQgPSBwYXJzZVBhc3RlKGlucHV0LnNwbGl0KCcjI1xcXFxuJylbMV0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gYmF0Y2hJbXBvcnQoaW5wdXQsIHJ1bGUpO1xcbiAgICAgICAgfSwgZ2V0TXlWYXIoJ3RpdGxlJykpXFxuICAgIH0pO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGdldENvbG9yZWRUZXh0KFxcXCLlr7zlhaXmnKzlnLDmupBcXFwiKSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICBkZXNjOiBcXFwi6K+36L6T5YWl55u05pKt5rqQ5ZCN56ewXFxcIixcXG4gICAgICAgIHVybDogJCgnJywgJ+ivt+i+k+WFpeebtOaSrea6kOWQjeensCcpLmlucHV0KChydWxlKSA9PiB7XFxuICAgICAgICAgICAgaWYgKGlucHV0ID09IFxcXCJcXFwiKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/kuI3og73kuLrnqbpcXFwiXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJmaWxlU2VsZWN0Oi8vXFxcIiArICQudG9TdHJpbmcoKG5hbWUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBzID0gaW5wdXQuc3BsaXQoXFxcIi9cXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHVybCA9IFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9cXFwiICsgbmFtZSArIFxcXCIubTN1XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9jYWNoZS9cXFwiICsgc1tzLmxlbmd0aCAtIDFdKVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjLmluY2x1ZGVzKCdodHRwJykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v6Z2e5rOV5paH5Lu2J1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKHVybCwgYylcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvY29uZmlnP3J1bGU96IGa55u05pKtLuaUuVxcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBnZXRDb25maWcoKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5kYXRhLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9jb25maWcuanNvblxcXCIsIEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7Lkv53lrZgnXFxuICAgICAgICAgICAgICAgIH0sIGlucHV0KVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pXFxuICAgIH0pO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGdldENvbG9yZWRUZXh0KFxcXCLliIbkuqvorqLpmIVcXFwiKSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICB1cmw6ICQoW1xcXCLljp/lp4vmlbDmja5cXFwiLCBcXFwi5LqR5Ymq6LS05p2/XFxcIiwgXFxcIuS6keWPo+S7pFxcXCJdLCAzKS5zZWxlY3QoKCkgPT4ge1xcbiAgICAgICAgICAgIHJldHVybiAkKCfnoa7lrprlr7zlh7rvvJ9cXFxcbijnpoHnlKjorqLpmIXkuI3kvJrlr7zlh7opJykuY29uZmlybSgodHlwZSkgPT4ge1xcbiAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1xcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgY29uZmlnID0gZ2V0Q29uZmlnKCk7XFxuICAgICAgICAgICAgICAgIGNvbmZpZy5kYXRhID0gY29uZmlnLmRhdGEuZmlsdGVyKHYgPT4gIXYuaW5WaXNpYmxlKTtcXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gXFxcIuS6keWJqui0tOadv1xcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gJ+iBmuebtOaSrS7mlLnliIbkuqsjI1xcXFxuJyArIHNoYXJlUGFzdGUoSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcXFwi5LqR5Y+j5LukXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSAn6IGa55u05pKtLuaUueWIhuS6qyzlpI3liLblkI7miZPlvIDova/ku7bljbPlj6/lr7zlhaVcXFxcbicgKyBzaGFyZVBhc3RlKEpTT04uc3RyaW5naWZ5KGNvbmZpZykpICsgJ0BpbXBvcnQ9anM6ZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXCJoaWtlcjovL3BhZ2UvY2xvdWQ/cnVsZT3ogZrnm7Tmkq0u5pS5XFxcIikpLnJ1bGUpJztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnkoY29uZmlnKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcImNvcHk6Ly9cXFwiICsgZGF0YTtcXG4gICAgICAgICAgICB9LCBpbnB1dClcXG4gICAgICAgIH0pXFxuICAgIH0pO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGdldENvbG9yZWRUZXh0KFxcXCLnvJbovpHlhajpg6hcXFwiKSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICB1cmw6IFxcXCJlZGl0RmlsZTovL2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL2NvbmZpZy5qc29uXFxcIlxcbiAgICB9KTtcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiBcXFwiYmxhbmtfYmxvY2tcXFwiXFxuICAgIH0pO1xcblxcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1xcXCIpKS5ydWxlKTtcXG4gICAgY29uZmlnID0gZ2V0Q29uZmlnKCk7XFxuICAgIGxldCBlZGl0TW9kZSA9IGdldE15VmFyKCdlZGl0TW9kZScsICflkK/nlKjnpoHnlKgnKTtcXG4gICAgWyflkK/nlKjnpoHnlKgnLCAn5Yig6Zmk6K6i6ZiFJywgJ+mHjeaWsOaOkuW6jycsICfnvJbovpHorqLpmIUnLCAn5riF6Zmk57yT5a2YJ10uZm9yRWFjaCgodikgPT4ge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogdiA9PSBlZGl0TW9kZSA/ICfigJzigJzigJ3igJ0nICsgdi5ib2xkKCkuZm9udGNvbG9yKCcjMTlCODlEJykgOiB2LFxcbiAgICAgICAgICAgIHVybDogdiA9PSBlZGl0TW9kZSA/ICdoaWtlcjovL2VtcHR5JyA6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHYpID0+IHtcXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2VkaXRNb2RlJywgdilcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICB9LCB2KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICB9KVxcbiAgICB9KTtcXG4gICAgY29uZmlnLmRhdGEuZm9yRWFjaCgodiwgaSkgPT4ge1xcbiAgICAgICAgbGV0IGVsID0ge1xcbiAgICAgICAgICAgIHRpdGxlOiB2Lm5hbWUsXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiXFxuICAgICAgICB9XFxuICAgICAgICBzd2l0Y2ggKGVkaXRNb2RlKSB7XFxuICAgICAgICAgICAgY2FzZSAn5ZCv55So56aB55SoJzpcXG4gICAgICAgICAgICAgICAgZWwudGl0bGUgPSAodi5pblZpc2libGUgPyAn8J+UtCAnIDogJ/Cfn6IgJykgKyBlbC50aXRsZVxcbiAgICAgICAgICAgICAgICBlbC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1xcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZyA9IGdldENvbmZpZygpO1xcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLmRhdGFbaV0uaW5WaXNpYmxlID0gIWNvbmZpZy5kYXRhW2ldLmluVmlzaWJsZTtcXG4gICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vY29uZmlnLmpzb25cXFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgfSwgaSlcXG4gICAgICAgICAgICAgICAgYnJlYWtcXG4gICAgICAgICAgICBjYXNlICfliKDpmaTorqLpmIUnOlxcbiAgICAgICAgICAgICAgICBlbC51cmwgPSBcXFwiY29uZmlybTovL+ehruiupOWIoOmZpOKAnFxcXCIgKyB2Lm5hbWUgKyBcXFwi4oCd6K6i6ZiF77yfLmpzOlxcXCIgKyAkLnRvU3RyaW5nKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1xcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZyA9IGdldENvbmZpZygpO1xcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLmRhdGEuc3BsaWNlKGksIDEpO1xcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9jb25maWcuanNvblxcXCIsIEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3suWIoOmZpFxcXCI7XFxuICAgICAgICAgICAgICAgIH0sIGkpXFxuICAgICAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICAgICAgY2FzZSAn6YeN5paw5o6S5bqPJzpcXG4gICAgICAgICAgICAgICAgbGV0IHNvcnRGbGFnID0gcGFyc2VJbnQoZ2V0TXlWYXIoJ3NvcnRGbGFnJywgJy0xJykpXFxuICAgICAgICAgICAgICAgIGVsLnRpdGxlID0gKHNvcnRGbGFnID09IGkgPyAn8J+UgyAgJyA6ICcnKSArIGVsLnRpdGxlXFxuICAgICAgICAgICAgICAgIGlmIChzb3J0RmxhZyA9PSAtMSlcXG4gICAgICAgICAgICAgICAgICAgIGVsLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGkpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignc29ydEZsYWcnLCBpLnRvU3RyaW5nKCkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+mAieaLqeimgeenu+WKqOWIsOeahOS9jee9ridcXG4gICAgICAgICAgICAgICAgICAgIH0sIGkpXFxuICAgICAgICAgICAgICAgIGVsc2VcXG4gICAgICAgICAgICAgICAgICAgIGVsLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG9sZEluZGV4LCBuZXdJbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvY29uZmlnXFxcIikpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZyA9IGdldENvbmZpZygpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5kYXRhLnNwbGljZShuZXdJbmRleCwgMCwgY29uZmlnLmRhdGEuc3BsaWNlKG9sZEluZGV4LCAxKVswXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL2NvbmZpZy5qc29uXFxcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3NvcnRGbGFnJywgJy0xJylcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgICAgICB9LCBzb3J0RmxhZywgaSlcXG4gICAgICAgICAgICAgICAgYnJlYWtcXG4gICAgICAgICAgICBjYXNlICfnvJbovpHorqLpmIUnOlxcbiAgICAgICAgICAgICAgICBsZXQgYXJyID0gWyfnvJbovpHlkI3np7AnLCAn57yW6L6R5Zyw5Z2AJywgJ+e8lui+keWGheWuuScsICfpgInmi6nmoLflvI8nXVxcbiAgICAgICAgICAgICAgICBlbC51cmwgPSAkKGFyciwgMykuc2VsZWN0KCh2LCBpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gJ+e8lui+keWQjeensCcpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCh2Lm5hbWUsICfovpPlhaXmlrDlkI3np7AnKS5pbnB1dCgoaSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1xcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gZ2V0Q29uZmlnKCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmRhdGFbaV0ubmFtZSA9IGlucHV0XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL2NvbmZpZy5qc29uXFxcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5LiN6IO95Li656m6J1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgaSk7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfnvJbovpHlnLDlnYAnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQodi51YSA/IHYudXJsICsgJyQkJCcgKyB2LnVhIDogdi51cmwsICfovpPlhaXmlrDlnLDlnYAnKS5pbnB1dCgoaSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1xcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gZ2V0Q29uZmlnKCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+S4jeiDveS4uuepulxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5pbmRleE9mKFxcXCJodHRwXFxcIikgIT0gMCAmJiBpbnB1dC5pbmRleE9mKFxcXCJmaWxlXFxcIikgIT0gMCAmJiBpbnB1dC5pbmRleE9mKFxcXCJoaWtlclxcXCIpICE9IDApIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/pk77mjqXmoLzlvI/mnInor69cXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgW3VybCx1YV0gPSBpbnB1dC5zcGxpdCgnJCQkJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuZGF0YVtpXS51cmwgPSB1cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuZGF0YVtpXS51YSA9IHVhO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9jb25maWcuanNvblxcXCIsIEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqfJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgaSk7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfnvJbovpHlhoXlrrknKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYudXJsLnN0YXJ0c1dpdGgoJ2ZpbGU6Ly8nKSB8fCB2LnVybC5zdGFydHNXaXRoKCdoaWtlcjovL2ZpbGVzJykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdlZGl0RmlsZTovLycgKyB2LnVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdlZGl0RmlsZTovL2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHYudXJsKSArICcuanMnXFxuICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZiAoaW5wdXQgPT0gJ+mAieaLqeagt+W8jycpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoW1xcXCJtb3ZpZV8yXFxcIixcXFwibW92aWVfM1xcXCIsXFxcInBpY18xXFxcIixcXFwicGljXzFfZnVsbFxcXCIsXFxcInBpY18xX2NhcmRcXFwiLFxcXCJwaWNfMlxcXCIsXFxcInBpY18yX2NhcmRcXFwiLFxcXCJwaWNfM1xcXCIsXFxcInBpY18zX3NxdWFyZVxcXCIsXFxcImljb25fMlxcXCIsXFxcImljb25fMl9yb3VuZFxcXCIsXFxcImljb25fc21hbGxfM1xcXCIsXFxcImljb25fM19maWxsXFxcIixcXFwiaWNvbl8zX3JvdW5kX2ZpbGxcXFwiLFxcXCJpY29uXzRcXFwiLFxcXCJpY29uXzRfY2FyZFxcXCIsXFxcImljb25fc21hbGxfNFxcXCIsXFxcImljb25fcm91bmRfNFxcXCIsXFxcImljb25fcm91bmRfc21hbGxfNFxcXCIsXFxcImljb25fNVxcXCIsXFxcImNhcmRfcGljXzFcXFwiLFxcXCJjYXJkX3BpY18yXFxcIixcXFwiY2FyZF9waWNfMl8yXFxcIixcXFwiY2FyZF9waWNfMl8yX2xlZnRcXFwiLFxcXCJjYXJkX3BpY18zXFxcIixcXFwiY2FyZF9waWNfM19jZW50ZXJcXFwiLFxcXCJwaWNfMV9jZW50ZXJcXFwiLFxcXCJ0ZXh0XzFcXFwiLFxcXCJ0ZXh0XzJcXFwiLFxcXCJ0ZXh0XzNcXFwiLFxcXCJ0ZXh0XzRcXFwiLFxcXCJ0ZXh0XzVcXFwiLFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIixcXFwidGV4dF9pY29uXFxcIixcXFwiYXZhdGFyXFxcIl0sIDIsICfor7fpgInmi6knKS5zZWxlY3QoKHYpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEl0ZW0odi5uYW1lLCBpbnB1dClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSx2KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICB9LCB2LCBpKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAn5riF6Zmk57yT5a2YJzpcXG4gICAgICAgICAgICAgICAgZWwudXJsID0gJCgn56Gu5a6a5riF6Zmk4oCcJyArIHYubmFtZSArICfigJ3orqLpmIXnvJPlrZjvvJ9cXFxcbijlj6/nq4vljbPmm7TmlrApJykuY29uZmlybSgodXJsKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBkZWxldGVDYWNoZSh1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+a4hemZpOaIkOWKnydcXG4gICAgICAgICAgICAgICAgfSwgdi51cmwpXFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICAgICAgZC5wdXNoKGVsKVxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcblxcbiQuZXhwb3J0cyA9IHtcXG4gICAgcmVuZGVyU2V0dGluZzogcmVuZGVyU2V0dGluZ1xcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS6keWPo+S7pFwiLFwicGF0aFwiOlwiY2xvdWRcIixcInJ1bGVcIjpcImV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvYmF0Y2hJbT9ydWxlPeiBmuebtOaSrS7mlLlcXFwiKSkucnVsZSk7XFxubGV0IGNvbnRlbnQgPSBwYXJzZVBhc3RlKGlucHV0KTtcXG5iYXRjaEltcG9ydChjb250ZW50LCBcXFwi6IGa55u05pKtLuaUuVxcXCIpO1wifV0iLCJpY29uIjoiaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pMWmFpLnBuZyIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment