import base64, codecs
magic = 'IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0NCmltcG9ydCByZQ0KaW1wb3J0IG9zDQppbXBvcnQgYmFzZTY0DQppbXBvcnQganNvbg0KaW1wb3J0IHRpbWUNCmltcG9ydCBzaXgNCmltcG9ydCB0cmFjZWJhY2sNCmltcG9ydCBzeXMNCmZyb20ga29kaV9zaXggaW1wb3J0IHhibWNwbHVnaW4sIHhibWNndWksIHhibWNhZGRvbiwgeGJtY3ZmcywgeGJtYw0KZnJvbSBzaXgubW92ZXMgaW1wb3J0IHVybGxpYl9yZXF1ZXN0LCB1cmxsaWJfcGFyc2UsIHVybGxpYl9lcnJvciwgaHR0cF9jb29raWVqYXIsIGh0bWxfcGFyc2VyDQpmcm9tIHhtbC5zYXguc2F4dXRpbHMgaW1wb3J0IGVzY2FwZQ0KZnJvbSB4bWwuZXRyZWUgaW1wb3J0IEVsZW1lbnRUcmVlDQoNCg0KY2xhc3MgTm9SZWRpcmVjdGlvbih1cmxsaWJfZXJyb3IuSFRUUEVycm9yKToNCiAgICBkZWYgaHR0cF9yZXNwb25zZShzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6DQogICAgICAgIHJldHVybiByZXNwb25zZQ0KICAgIGh0dHBzX3Jlc3BvbnNlID0gaHR0cF9yZXNwb25zZQ0KDQoNCmdsb2JhbCBnTFNQcm9EeW5hbWljQ29kZU51bWJlcg0Kdmlld21vZGUgPSBOb25lDQp0c2Rvd25sb2FkZXIgPSBGYWxzZQ0KaGxzcmV0cnkgPSBGYWxzZQ0KVFJBTlNMQVRFUEFUSCA9IHhibWMudHJhbnNsYXRlUGF0aCBpZiBzaXguUFkyIGVsc2UgeGJtY3Zmcy50cmFuc2xhdGVQYXRoDQpMT0dJTkZPID0geGJtYy5MT0dOT1RJQ0UgaWYgc2l4LlBZMiBlbHNlIHhibWMuTE9HSU5GTw0KcmVzb2x2ZV91cmwgPSBbJzE4MHVwbG9hZC5jb20nLCAnYWxsbXl2aWRlb3MubmV0JywgJ2Jlc3RyZWFtcy5uZXQnLCAnY2xpY2tudXBsb2FkLmNvbScsICdjbG91ZHppbGxhLnRvJywgJ21vdnNoYXJlLm5ldCcsICdub3ZhbW92LmNvbScsICdub3d2aWRlby5zeCcsICd2aWRlb3dlZWQuZXMnLCAnZGFjbGlwcy5pbicsICdkYXRlbXVsZS5jb20nLCAnZmFzdHZpZGVvLmluJywgJ2Zhc3RzdHJlYW0uaW4nLCAnZmlsZWhvb3QuY29tJywgJ2ZpbGVudWtlLmNvbScsICdzaGFyZXNpeC5jb20nLCAncGx1cy5nb29nbGUuY29tJywgJ3BpY2FzYXdlYi5nb29nbGUuY29tJywgJ2dvcmlsbGF2aWQuY29tJywgJ2dvcmlsbGF2aWQuaW4nLCAnZ3JpZnRob3N0LmNvbScsICdodWdlZmlsZXMubmV0JywgJ2lwaXRob3MudG8nLCAnaXNoYXJlZC5ldScsICdraW5nZmlsZXMubmV0JywgJ21haWwucnUnLCAnbXkubWFpbC5ydScsICd2aWRlb2FwaS5teS5tYWlsLnJ1JywgJ21pZ2h0eXVwbG9hZC5jb20nLCAnbW9vc2hhcmUuYml6JywgJ21vdmRpdnguY29tJywgJ21vdnBvZC5uZXQnLCAnbW92cG9kLmluJywgJ21vdnJlZWwuY29tJywgJ21yZmlsZS5tZScsICdub3N2aWRlby5jb20nLCAnb3BlbmxvYWQuaW8nLCAncGxheWVkLnRvJywgJ2JpdHNoYXJlLmNvbScsICdmaWxlZmFjdG9yeS5jb20nLCAnazJzLmNjJywgJ29ib29tLmNvbScsICdyYXBpZGdhdG9yLm5ldCcsICdwcmltZXNoYXJlLnR2JywgJ2JpdHNoYXJlLmNvbScsICdmaWxlZmFjdG9yeS5jb20nLCAnazJzLmNjJywgJ29ib29tLmNvbScsICdyYXBpZGdhdG9yLm5ldCcsICdzaGFyZXJlcG8uY29tJywgJ3N0YWdldnUuY29tJywgJ3N0cmVhbWNsb3VkLmV1JywgJ3N0cmVhbWluLnRvJywgJ3RoZWZpbGUubWUnLCAndGhldmlkZW8ubWUnLCAndHVzZmlsZXMubmV0JywgJ3VwbG9hZGMuY29tJywgJ3phbGFhLmNvbScsICd1cGxvYWRyb2NrZXQubmV0JywgJ3VwdG9ib3guY29tJywgJ3Ytdmlkcy5jb20nLCAndmVlaGQuY29tJywgJ3ZpZGJ1bGwuY29tJywgJ3ZpZGVvbWVnYS50dicsICd2aWRwbGF5Lm5ldCcsICd2aWRzcG90Lm5ldCcsICd2aWR0by5tZScsICd2aWR6aS50dicsICd2aW1lby5jb20nLCAndmsuY29tJywgJ3ZvZGxvY2tlci5jb20nLCAneGZpbGVsb2FkLmNvbScsICd4dmlkc3RhZ2UuY29tJywgJ3pldHRhaG9zdC50diddDQpnX2lnbm9yZVNldFJlc29sdmVkID0gWydwbHVnaW4udmlkZW8uZjRtVGVzdGVyJywgJ3BsdWdpbi52aWRlby5TcG9ydHNEZXZpbCcsICdwbHVnaW4udmlkZW8uc3BvcnRzZGV2aWwnLCAncGx1Z2luLnZpZGVvLlplbVRWLXNoYW5pJ10NCmdMU1Byb0R5bmFtaWNDb2RlTnVtYmVyID0gMA0KYWRkb24gPSB4Ym1jYWRkb24uQWRkb24oKQ0KYWRkb25fbmFtZSA9IGFkZG9uLmdldEFkZG9uSW5mbygnbmFtZScpDQphZGRvbl92ZXJzaW9uID0gYWRkb24uZ2V0QWRkb25JbmZvKCd2ZXJzaW9uJykNCnByb2ZpbGUgPSBUUkFOU0xBVEVQQVRIKGFkZG9uLmdldEFkZG9uSW5mbygncHJvZmlsZScpKQ0KaWYgbm90IG9zLnBhdGguZXhpc3RzKHByb2ZpbGUpOg0KICAgIHRyeToNCiAgICAgICAgb3MubWFrZWRpcnMocHJvZmlsZSkNCiAgICBleGNlcHQ6IA0KICAgICAgICBwYXNzDQpob21lID0gVFJBTlNMQVRFUEFUSChhZGRvbi5nZXRBZGRvbkluZm8oJ3BhdGgnKSkNCnN5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmpvaW4oaG9tZSwgJ3Jlc291cmNlcycsICdsaWInKSkNCmZhdm9yaXRlcyA9IG9zLnBhdGguam9pbihwcm9maWxlLCAnZmF2b3JpdGVzJykNCmhpc3RvcnkgPSBvcy5wYXRoLmpvaW4ocHJvZmlsZSwgJ2hpc3RvcnknKQ0KUkVWID0gb3MucGF0aC5qb2luKHByb2ZpbGUsICdsaXN0X3JldmlzaW9uJykNCmljb24gPSBvcy5wYXRoLmpvaW4oaG9tZSwgJ2ljb24ucG5nJykNCkZBTkFSVCA9IG9zLnBhdGguam9pbihob21lLCAnZmFuYXJ0LmpwZycpDQpzb3VyY2VfZmlsZSA9IG9zLnBhdGguam9pbihob21lLCAnc291cmNlX2ZpbGUnKQ0KZnVuY3Rpb25zX2RpciA9IHByb2ZpbGUNCmRlYnVnID0gYWRkb24uZ2V0U2V0dGluZygnZGVidWcnKQ0Kb3JpZ2VtID0naHR0cHM6Ly9naXRsYWIuY29tL2Fmb25zb2Nvc3RhL21hZ2VsbGFuX21hdHJpeC8tL3Jhdy9tYWluL21hZ2VsbGFuLnR4dCcNCmlmIG9zLnBhdGguZXhpc3RzKGZhdm9yaXRlcyk6DQogICAgRkFWID0gb3BlbihmYXZvcml0ZXMpLnJlYWQoKQ0KZWxzZToNCiAgICBGQVYgPSBbXQ0KaWYgb3MucGF0aC5leGlzdHMoc291cmNlX2ZpbGUpOg0KICAgIFNPVVJDRVMgPSBvcGVuKHNvdXJjZV9maWxlKS5yZWFkKCkNCmVsc2U6DQogICAgU09VUkNFUyA9IFt7InVybCI6IG9yaWdlbSwgImZhbmFydCI6IEZBTkFSVH1dDQoNCg0KZGVmIGFkZG9uX2xvZyhzdHJpbmcsIGxldmVsPXhibWMuTE9HREVCVUcpOg0KICAgIGlmIGRlYnVnID09ICdmYWxzZSc6DQogICAgICAgIHhibWMubG9nKCJbcGx1Z2luLnZpZGVvLk1hZ2VsbGFuX01hdHJpeC17MH1dOiB7MX0iLmZvcm1hdChhZGRvbl92ZXJzaW9uLCBzdHJpbmcpLCBMT0dJTkZPKQ0KICAgIGVsc2U6DQogICAgICAgIHhibWMubG9nKCJbcGx1Z2luLnZpZGVvLk1hZ2VsbGFuX01hdHJpeC17MH1dOiB7MX0iLmZvcm1hdChhZGRvbl92ZXJzaW9uLCBzdHJpbmcpLCBsZXZlbCkNCg0KDQpkZWYgbWFrZVJlcXVlc3QodXJsLCBoZWFkZXJzPU5vbmUpOg0KICAgIHRyeToNCiAgICAgICAgaWYgaGVhZGVycyBpcyBOb25lOg0KICAgICAgICAgICAgaGVhZGVycyA9IHsnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IFdPVzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTIuMC4yNzQzLjExNiBTYWZhcmkvNTM3LjM2J30NCg0KICAgICAgICBpZiAnfCcgaW4gdXJsOg0KICAgICAgICAgICAgdXJsLCBoZWFkZXJfaW5fcGFnZSA9IHVybC5zcGxpdCgnfCcpDQogICAgICAgICAgICBoZWFkZXJfaW5fcGFnZSA9IGhlYWRlcl9pbl9wYWdlLnNwbGl0KCcmJykNCg0KICAgICAgICAgICAgZm9yIGggaW4gaGVhZGVyX2luX3BhZ2U6DQogICAgICAgICAgICAgICAgaWYgbGVuKGguc3BsaXQoJz0nKSkgPT0gMjoNCiAgICAgICAgICAgICAgICAgICAgbiwgdiA9IGguc3BsaXQoJz0nKQ0KICAgICAgICAgICAgICAgIGVsc2U6DQogICAgICAgICAgICAgICAgICAgIHZhbHMgPSBoLnNwbGl0KCc9JykNCiAgICAgICAgICAgICAgICAgICAgbiA9IHZhbHNbMF0NCiAgICAgICAgICAgICAgICAgICAgdiA9ICc9Jy5qb2luKHZhbHNbMTpdKQ0KICAgICAgICAgICAgICAgIGhlYWRlcnNbbl0gPSB2DQoNCiAgICAgICAgcmVxID0gdXJsbGliX3JlcXVlc3QuUmVxdWVzdCh1cmwsIE5vbmUsIGhlYWRlcnMpDQogICAgICAgIHJlc3BvbnNlID0gdXJsbGliX3JlcXVlc3QudXJsb3BlbihyZXEpDQogICAgICAgIHJlc3VsdCA9IHJlc3BvbnNlLnJlYWQoKQ0KDQogICAgICAgIGVuY29kaW5nID0gTm9uZQ0KICAgICAgICBjb250ZW50X3R5cGUgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJywgJycpDQogICAgICAgIGlmICdjaGFyc2V0PScgaW4gY29udGVudF90eXBlOg0KICAgICAgICAgICAgZW5jb2RpbmcgPSBjb250ZW50X3R5cGUuc3BsaXQoJ2NoYXJzZXQ9JylbLTFdDQoNCiAgICAgICAgaWYgZW5jb2RpbmcgaXMgTm9uZToNCiAgICAgICAgICAgIGVwYXR0ZXJuID0gcic8bWV0YVxzK2h0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSJccytjb250ZW50PSIoPzouKz8pO1xzK2NoYXJzZXQ9KC4rPykiJw0KICAgICAgICAgICAgZXBhdHRlcm4gPSBlcGF0dGVybi5lbmNvZGUoJ3V0ZjgnKSBpZiBzaXguUFkzIGVsc2UgZXBhdHRlcm4NCiAgICAgICAgICAgIHIgPSByZS5zZWFyY2goZXBhdHRlcm4sIHJlc3VsdCwgcmUuSUdOT1JFQ0FTRSkNCiAgICAgICAgICAgIGlmIHI6DQogICAgICAgICAgICAgICAgZW5jb2RpbmcgPSByLmdyb3VwKDEpLmRlY29kZSgndXRmOCcpIGlmIHNpeC5QWTMgZWxzZSByLmdyb3VwKDEpDQogICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgIGVwYXR0ZXJuID0gcicnJzxtZXRhXHMrY2hhcnNldD1bIiddPyhbXiInPl0rKScnJw0KICAgICAgICAgICAgICAgIGVwYXR0ZXJuID0gZXBhdHRlcm4uZW5jb2RlKCd1dGY4JykgaWYgc2l4LlBZMyBlbHNlIGVwYXR0ZXJuDQogICAgICAgICAgICAgICAgciA9IHJlLnNlYXJjaChlcGF0dGVybiwgcmVzdWx0LCByZS5JR05PUkVDQVNFKQ0KICAgICAgICAgICAgICAgIGlmIHI6DQogICAgICAgICAgICAgICAgICAgIGVuY29kaW5nID0gci5ncm91cCgxKS5kZWNvZGUoJ3V0ZjgnKSBpZiBzaXguUFkzIGVsc2Ugci5ncm91cCgxKQ0KDQogICAgICAgIGlmIGVuY29kaW5nIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRlY29kZShlbmNvZGluZy5sb3dlcigpLCBlcnJvcnM9J2lnbm9yZScpDQogICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuZW5jb2RlKCd1dGY4JykgaWYgc2l4LlBZMiBlbHNlIHJlc3VsdA0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRlY29kZSgnbGF0aW4tMScsIGVycm9ycz0naWdub3JlJykgaWYgc2l4LlBZMyBlbHNlIHJlc3VsdC5lbmNvZGUoJ3V0Zi04JykNCiAgICAgICAgcmVzcG9uc2UuY2xvc2UoKQ0KICAgIGV4Y2VwdCB1cmxsaWJfZXJyb3IuVVJMRXJyb3IgYXMgZToNCiAgICAgICAgYWRkb25fbG9nKCdVUkw6IHswfScuZm9ybWF0KHVybCkpDQogICAgICAgIGlmIGhhc2F0dHIoZSwgJ2NvZGUnKToNCiAgICAgICAgICAgIG1zZyA9ICdXZSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlIC0gezB9Jy5mb3JtYXQoZS5jb2RlKQ0KICAgICAgICAgICAgYWRkb25fbG9nKG1zZykNCiAgICAgICAgICAgIHhibWNndWkuRGlhbG9nKCkubm90aWZpY2F0aW9uKGFkZG9uX25hbWUsIG1zZywgaWNvbiwgMTAwMDAsIEZhbHNlKQ0KICAgICAgICBlbGlmIGhhc2F0dHIoZSwgJ3JlYXNvbicpOg0KICAgICAgICAgICAgYWRkb25fbG9nKCdXZSBmYWlsZWQgdG8gcmVhY2ggYSBzZXJ2ZXIuJykNCiAgICAgICAgICAgIGFkZG9uX2xvZygnUmVhc29uOiB7MH0nLmZvcm1hdChlLnJlYXNvbikpDQogICAgICAgICAgICBtc2cgPSAnV2UgZmFpbGVkIHRvIHJlYWNoIGEgc2VydmVyLiAtIHswfScuZm9ybWF0KGUucmVhc29uKQ0KICAgICAgICAgICAgeGJtY2d1aS5EaWFsb2coKS5ub3RpZmljYXRpb24oYWRkb25fbmFtZSwgbXNnLCBpY29uLCAxMDAwMCwgRmFsc2UpDQoNCiAgICByZXR1cm4gcmVzdWx0DQoNCg0KZGVmIGdldFNvdXJjZXMoKToNCiAgICB0cnk6DQogICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGZhdm9yaXRlcyk6DQogICAgICAgICAgICBhZGREaXIoJ0Zhdm9yaXRlcycsICd1cmwnLCA0LCBvcy5wYXRoLmpvaW4oaG9tZSwgJ3Jlc291cmNlcycsICdmYXZvcml0ZS5wbmcnKSwgRkFOQVJULCAnJywgJycsICcnLCAnJykNCiAgICAgICAgaWYgYWRkb24uZ2V0U2V0dGluZygiYnJvd3NlX2NvbW11bml0eSIpID09ICJ0cnVlIjoNCiAgICAgICAgICAgIGFkZERpcignQ29tbXVuaXR5IEZpbGVzJywgJ2NvbW11bml0eV9maWxlcycsIDE2LCBpY29uLCBGQU5BUlQsICcnLCAnJywgJycsICcnKQ0KICAgICAgICBpZiBhZGRvbi5nZXRTZXR0aW5nKCJzZWFyY2hvdGhlcnBsdWdpbnMiKSA9PSAidHJ1ZSI6DQogICAgICAgICAgICBhZGREaXIoJ1NlYXJjaCBPdGhlciBQbHVnaW5zJywgJ1NlYXJjaCBQbHVnaW5zJywgMjUsIGljb24sIEZBTkFSVCwgJycsICcnLCAnJywgJycpDQogICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNvdXJjZV9maWxlKToNCiAgICAgICAgICAgICNzb3VyY2VzID0ganNvbi5sb2FkcyhvcGVuKHNvdXJjZV9maWxlLCAiciIpLnJlYWQoKSkNCiAgICAgICAgICAgIHNvdXJjZXMgPSBTT1VSQ0VTDQogICAgICAgICAgICBpZiBsZW4oc291cmNlcykgPiAxOg0KICAgICAgICAgICAgICAgIGZvciBpIGluIHNvdXJjZXM6DQogICAgICAgICAgICAgICAgICAgIHRyeToNCiAgICAgICAgICAgICAgICAgICAgICAgIHRodW1iID0gaWNvbg0KICAgICAgICAgICAgICAgICAgICAgICAgZmFuYXJ0ID0gRkFOQVJUDQogICAgICAgICAgICAgICAgICAgICAgICBkZXNjID0gJycNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUgPSAnJw0KICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGl0cyA9ICcnDQogICAgICAgICAgICAgICAgICAgICAgICBnZW5yZSA9ICcnDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAndGh1bWJuYWlsJyBpbiBpOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRodW1iID0gaVsndGh1bWJuYWlsJ10NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICdmYW5hcnQnIGluIGk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFuYXJ0ID0gaVsnZmFuYXJ0J10NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICdkZXNjcmlwdGlvbicgaW4gaToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjID0gaVsnZGVzY3JpcHRpb24nXQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2RhdGUnIGluIGk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IGlbJ2RhdGUnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2dlbnJlJyBpbiBpOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbnJlID0gaVsnZ2VucmUnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2NyZWRpdHMnIGluIGk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGl0cyA9IGlbJ2NyZWRpdHMnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBpWyd0aXRsZSddLmVuY29kZSgndXRmLTgnKSBpZiBzaXguUFkyIGVsc2UgaVsndGl0bGUnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gaVsndXJsJ10uZW5jb2RlKCd1dGYtOCcpIGlmIHNpeC5QWTIgZWxzZSBpWyd1cmwnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgIyB1cmwgPSB1cmwgKyAiZml4IiBpZiB1cmwuZW5kc3dpdGgoIi54bWwiKSBhbmQgc2l4LlBZMyBlbHNlIHVybA0KICAgICAgICAgICAgICAgICAgICAgICAgYWRkRGlyKHRpdGxlLCB1cmwsIDEsIHRodW1iLCBmYW5hcnQsIGRlc2MsIGdlbnJlLCBkYXRlLCBjcmVkaXRzLCAnc291cmNlJykNCiAgICAgICAgICAgICAgICAgICAgZXhjZXB0Og0KICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpDQogICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgIGlmIGxlbihzb3VyY2VzKSA9PSAxOg0KICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNvdXJjZXNbMF0sIGxpc3QpOg0KICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RGF0YShzb3VyY2VzWzBdWzFdLmVuY29kZSgndXRmLTgnKSwgRkFOQVJUKSBpZiBzaXguUFkyIGVsc2Ugc291cmNlc1swXVsxXQ0KICAgICAgICAgICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RGF0YShzb3VyY2VzWzBdWyd1cmwnXSwgc291cmNlc1swXVsnZmFuYXJ0J10pDQogICAgZXhjZXB0Og0KICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkNCiAgICAgICAgDQpkZWYgaW5kZXgoKToNCiAgICBpZiBvcy5wYXRoLmV4aXN0cyhmYXZvcml0ZXMpOg0KICAgICAgICBhZGREaXIoJ0ZBVk9SSVRPUycsICd1cmwnLCA0LCBvcy5wYXRoLmpvaW4oaG9tZSwgJ3Jlc291cmNlcycsICdmYXZvcml0ZS5wbmcnKSwgRkFOQVJULCAnJywgJycsICcnLCAnJykNCiAgICBnZXREYXRhKG9yaWdlbSwgRkFOQVJUKQ0KICAgIA0KICAgICAgICANCiAgICANCg0KDQpkZWYgYWRkU291cmNlKHVybD1Ob25lKToNCiAgICBpZiB1cmwgaXMgTm9uZToNCiAgICAgICAgaWYgYWRkb24uZ2V0U2V0dGluZygibmV3X2ZpbGVfc291cmNlIikgIT0gIiI6DQogICAgICAgICAgICBzb3VyY2VfdXJsID0gYWRkb24uZ2V0U2V0dGluZygnbmV3X2ZpbGVfc291cmNlJykNCiAgICAgICAgZWxpZiBhZGRvbi5nZXRTZXR0aW5nKCJuZXdfdXJsX3NvdXJjZSIpICE9ICIiOg0KICAgICAgICAgICAgc291cmNlX3VybCA9IGFkZG9uLmdldFNldHRpbmcoJ25ld191cmxfc291cmNlJykNCiAgICBlbHNlOg0KICAgICAgICBzb3VyY2VfdXJsID0gdXJsDQogICAgaWYgc291cmNlX3VybCA9PSAnJyBvciBzb3VyY2VfdXJsIGlzIE5vbmU6DQogICAgICAgIHJldHVybg0KICAgIGFkZG9uX2xvZygnQWRkaW5nIE5ldyBTb3VyY2U6IHswfScuZm9ybWF0KHNvdXJjZV91cmwpKQ0KDQogICAgbWVkaWFfaW5mbyA9IE5vbmUNCiAgICBkYXRhID0gZ2V0U291cChzb3VyY2VfdXJsKQ0KICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgRWxlbWVudFRyZWUuRWxlbWVudFRyZWUpIG9yIGlzaW5zdGFuY2UoZGF0YSwgRWxlbWVudFRyZWUuRWxlbWVudCk6DQogICAgICAgIGlmIGRhdGEuZmluZCgnY2hhbm5lbHNfaW5mbycpIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgbWVkaWFfaW5mbyA9IGRhdGEuZmluZCgnY2hhbm5lbHNfaW5mbycpDQogICAgICAgIGVsaWYgZGF0YS5maW5kKCdpdGVtc19pbmZvJykgaXMgbm90IE5vbmU6DQogICAgICAgICAgICBtZWRpYV9pbmZvID0gZGF0YS5maW5kKCdpdGVtc19pbmZvJykNCg0KICAgIGlmIG1lZGlhX2luZm86DQogICAgICAgIHNvdXJjZV9tZWRpYSA9IHt9DQogICAgICAgIHNvdXJjZV9tZWRpYVsndXJsJ10gPSBzb3VyY2VfdXJsDQogICAgICAgIHRyeToNCiAgICAgICAgICAgIHNvdXJjZV9tZWRpYVsndGl0bGUnXSA9IG1lZGlhX2luZm8uZmluZCgndGl0bGUnKS50ZXh0DQogICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgIHBhc3MNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgc291cmNlX21lZGlhWyd0aHVtYm5haWwnXSA9IG1lZGlhX2luZm8uZmluZCgndGh1bWJuYWlsJykudGV4dA0KICAgICAgICBleGNlcHQ6DQogICAgICAgICAgICBwYXNzDQogICAgICAgIHRyeToNCiAgICAgICAgICAgIHNvdXJjZV9tZWRpYVsnZmFuYXJ0J10gPSBtZWRpYV9pbmZvLmZpbmQoJ2ZhbmFydCcpLnRleHQNCiAgICAgICAgZXhjZXB0Og0KICAgICAgICAgICAgcGFzcw0KICAgICAgICB0cnk6DQogICAgICAgICAgICBzb3VyY2VfbWVkaWFbJ2dlbnJlJ10gPSBtZWRpYV9pbmZvLmZpbmQoJ2dlbnJlJykudGV4dA0KICAgICAgICBleGNlcHQ6DQogICAgICAgICAgICBwYXNzDQogICAgICAgIHRyeToNCiAgICAgICAgICAgIHNvdXJjZV9tZWRpYVsnZGVzY3JpcHRpb24nXSA9IG1lZGlhX2luZm8uZmluZCgnZGVzY3JpcHRpb24nKS50ZXh0DQogICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgIHBhc3MNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgc291cmNlX21lZGlhWydkYXRlJ10gPSBtZWRpYV9pbmZvLmZpbmQoJ2RhdGUnKS50ZXh0DQogICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgIHBhc3MNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgc291cmNlX21lZGlhWydjcmVkaXRzJ10gPSBtZWRpYV9pbmZvLmZpbmQoJ2NyZWRpdHMnKS50ZXh0DQogICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgIHBhc3MNCiAgICBlbHNlOg0KICAgICAgICBpZiAnLycgaW4gc291cmNlX3VybDoNCiAgICAgICAgICAgIG5hbWVTdHIgPSBzb3VyY2VfdXJsLnNwbGl0KCcvJylbLTFdLnNwbGl0KCcuJylbMF0NCiAgICAgICAgaWYgJ1xcJyBpbiBzb3VyY2VfdXJsOg0KICAgICAgICAgICAgbmFtZVN0ciA9IHNvdXJjZV91cmwuc3BsaXQoJ1xcJylbLTFdLnNwbGl0KCcuJylbMF0NCiAgICAgICAgaWYgJyUnIGluIG5hbWVTdHI6DQogICAgICAgICAgICBuYW1lU3RyID0gdXJsbGliX3BhcnNlLnVucXVvdGVfcGx1cyhuYW1lU3RyKQ0KICAgICAgICBrZXlib2FyZCA9IHhibWMuS2V5Ym9hcmQobmFtZVN0ciwgJ0Rpc3BsYXllZCBOYW1lLCBSZW5hbWU/JykNCiAgICAgICAga2V5Ym9hcmQuZG9Nb2RhbCgpDQogICAgICAgIGlmIChrZXlib2FyZC5pc0NvbmZpcm1lZCgpIGlzIEZhbHNlKToNCiAgICAgICAgICAgIHJldHVybg0KICAgICAgICBuZXdTdHIgPSBrZXlib2FyZC5nZXRUZXh0KCkNCiAgICAgICAgaWYgbGVuKG5ld1N0cikgPT0gMDoNCiAgICAgICAgICAgIHJldHVybg0KICAgICAgICBzb3VyY2VfbWVkaWEgPSB7fQ0KICAgICAgICBzb3VyY2VfbWVkaWFbJ3RpdGxlJ10gPSBuZXdTdHINCiAgICAgICAgc291cmNlX21lZGlhWyd1cmwnXSA9IHNvdXJjZV91cmwNCiAgICAgICAgc291cmNlX21lZGlhWydmYW5hcnQnXSA9IGZhbmFydA0KDQogICAgaWYgb3MucGF0aC5leGlzdHMoc291cmNlX2ZpbGUpIGlzIEZhbHNlOg0KICAgICAgICBzb3VyY2VfbGlzdCA9IFtdDQogICAgICAgIHNvdXJjZV9saXN0LmFwcGVuZChzb3VyY2VfbWVkaWEpDQogICAgICAgIGIgPSBvcGVuKHNvdXJjZV9maWxlLCAidyIpDQogICAgICAgIGIud3JpdGUoanNvbi5kdW1wcyhzb3VyY2VfbGlzdCkpDQogICAgICAgIGIuY2xvc2UoKQ0KICAgIGVsc2U6DQogICAgICAgIHNvdXJjZXMgPSBqc29uLmxvYWRzKG9wZW4oc291cmNlX2ZpbGUsICJyIikucmVhZCgpKQ0KICAgICAgICBzb3VyY2VzLmFwcGVuZChzb3VyY2VfbWVkaWEpDQogICAgICAgIGIgPSBvcGVuKHNvdXJjZV9maWxlLCAidyIpDQogICAgICAgIGIud3JpdGUoanNvbi5kdW1wcyhzb3VyY2VzKSkNCiAgICAgICAgYi5jbG9zZSgpDQogICAgYWRkb24uc2V0U2V0dGluZygnbmV3X3VybF9zb3VyY2UnLCAiIikNCiAgICBhZGRvbi5zZXRTZXR0aW5nKCduZXdfZmlsZV9zb3VyY2UnLCAiIikNCiAgICB4Ym1jZ3VpLkRpYWxvZygpLm5vdGlmaWNhdGlvbihhZGRvbl9uYW1lLCAnTmV3IHNvdXJjZSBhZGRlZCcsIGljb24sIDUwMDAsIEZhbHNlKQ0KDQogICAgaWYgdXJsIGlzIG5vdCBOb25lOg0KICAgICAgICBpZiAnY29tbXVuaXR5LWxpbmtzJyBpbiB1cmw6DQogICAgICAgICAgICB4Ym1jLmV4ZWN1dGVidWlsdGluKCJYQk1DLkNvbnRhaW5lci5VcGRhdGUoezB9P21vZGU9MTAscmVwbGFjZSkiLmZvcm1hdChzeXMuYXJndlswXSkpDQogICAgZWxzZToNCiAgICAgICAgYWRkb24ub3BlblNldHRpbmdzKCkNCg0KDQpkZWYgcm1Tb3VyY2UobmFtZSk6DQogICAgc291cmNlcyA9IGpzb24ubG9hZHMob3Blbihzb3VyY2VfZmlsZSwgInIiKS5yZWFkKCkpDQogICAgZm9yIGluZGV4IGluIHJhbmdlKGxlbihzb3VyY2VzKSk6DQogICAgICAgIGlmIGlzaW5zdGFuY2Uoc291cmNlc1tpbmRleF0sIGxpc3QpOg0KICAgICAgICAgICAgaWYgc291cmNlc1tpbmRleF1bMF0gPT0gbmFtZToNCiAgICAgICAgICAgICAgICBkZWwgc291cmNlc1tpbmRleF0NCiAgICAgICAgICAgICAgICBiID0gb3Blbihzb3VyY2VfZmlsZSwgInciKQ0KICAgICAgICAgICAgICAgIGIud3JpdGUoanNvbi5kdW1wcyhzb3VyY2VzKSkNCiAgICAgICAgICAgICAgICBiLmNsb3NlKCkNCiAgICAgICAgICAgICAgICBicmVhaw0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgaWYgc291cmNlc1tpbmRleF1bJ3RpdGxlJ10gPT0gbmFtZToNCiAgICAgICAgICAgICAgICBkZWwgc291cmNlc1tpbmRleF0NCiAgICAgICAgICAgICAgICBiID0gb3Blbihzb3VyY2VfZmlsZSwgInciKQ0KICAgICAgICAgICAgICAgIGIud3JpdGUoanNvbi5kdW1wcyhzb3VyY2VzKSkNCiAgICAgICAgICAgICAgICBiLmNsb3NlKCkNCiAgICAgICAgICAgICAgICBicmVhaw0KICAgIHhibWMuZXhlY3V0ZWJ1aWx0aW4oIlhCTUMuQ29udGFpbmVyLlJlZnJlc2giKQ0KDQoNCmRlZiBnZXRTb3VwKHVybCwgZGF0YT1Ob25lKToNCiAgICBnbG9iYWwgdmlld21vZGUsIHRzZG93bmxvYWRlciwgaGxzcmV0cnkNCiAgICB0c2Rvd25sb2FkZXIgPSBGYWxzZQ0KICAgIGhsc3JldHJ5ID0gRmFsc2UNCiAgICBpZiB1cmwuc3RhcnRzd2l0aCgnaHR0cDovLycpIG9yIHVybC5zdGFydHN3aXRoKCdodHRwczovLycpOg0KICAgICAgICBlbmNrZXkgPSBGYWxzZQ0KICAgICAgICBpZiAnJCRUU0RPV05MT0FERVIkJCcgaW4gdXJsOg0KICAgICAgICAgICAgdHNkb3dubG9hZGVyID0gVHJ1ZQ0KICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoIiQkVFNET1dOTE9BREVSJCQiLCAiIikNCiAgICAgICAgaWYgJyQkSExTUkVUUlkkJCcgaW4gdXJsOg0KICAgICAgICAgICAgaGxzcmV0cnkgPSBUcnVlDQogICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgiJCRITFNSRVRSWSQkIiwgIiIpDQogICAgICAgIGlmICckJExTUHJvRW5jS2V5PScgaW4gdXJsOg0KICAgICAgICAgICAgZW5ja2V5ID0gdXJsLnNwbGl0KCckJExTUHJvRW5jS2V5PScpWzFdLnNwbGl0KCckJCcpWzBdDQogICAgICAgICAgICBycCA9ICckJExTUHJvRW5jS2V5PXswfSQkJy5mb3JtYXQoZW5ja2V5KQ0KICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UocnAsICIiKQ0KICAgICAgICB0cnk6DQogICAgICAgICAgICBkYXRhID0gbWFrZVJlcXVlc3QodXJsKQ0KICAgICAgICAgICAgaW1wb3J0IGd6aXAsIGJpbmFzY2lpDQogICAgICAgICAgICBrID0gJ3RiYmZndTVxM2FtNW94Y2ZuN3dsMzcnICAgICAgICAgICAgDQogICAgICAgICAgICB0cnk6DQogICAgICAgICAgICAgICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8gYXMgQnl0ZXNJTyAjIyBmb3IgUHl0aG9uIDINCiAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjogICAgICAgICAgICANCiAgICAgICAgICAgICAgICBmcm9tIGlvIGltcG9ydCBCeXRlc0lPICMjIGZvciBQeXRob24gMw0KICAgICAgICAgICAgaWYgayBpbiBkYXRhOg0KICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnNwbGl0KGspDQogICAgICAgICAgICAgICAgYnVmID0gQnl0ZXNJTyhiaW5hc2NpaS51bmhleGxpZnkoZGF0YVswXSkpDQogICAgICAgICAgICAgICAgZiA9IGd6aXAuR3ppcEZpbGUoZmlsZW9iaj1idWYpDQogICAgICAgICAgICAgICAgZGF0YSA9IGYucmVhZCgpDQogICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEuZGVjb2RlKCd1dGYtOCcpDQogICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgIGRhdGEgPSBtYWtlUmVxdWVzdCh1cmwpDQogICAgICAgIGlmIGVuY2tleToNCiAgICAgICAgICAgIGZyb20gQ3J5cHRvZG9tZS5DaXBoZXIgaW1wb3J0IEFFUw0KICAgICAgICAgICAgZnJvbSBDcnlwdG9kb21lLlV0aWwuUGFkZGluZyBpbXBvcnQgdW5wYWQNCiAgICAgICAgICAgIG1pc3NpbmdieXRlcyA9IDE2IC0gbGVuKGVuY2tleSkNCiAgICAgICAgICAgIGVuY2tleSA9IGVuY2tleSArIChjaHIoMCkgKiAobWlzc2luZ2J5dGVzKSkNCiAgICAgICAgICAgIGRhdGEgPSBiYXNlNjQuYjY0ZGVjb2RlKGRhdGEpDQogICAgICAgICAgICBjaXBoZXIgPSBBRVMubmV3KGVuY2tleS5lbmNvZGUoKSwgQUVTLk1PREVfRUNCKQ0KICAgICAgICAgICAgZGF0YSA9IHVucGFkKGNpcGhlci5kZWNyeXB0KGRhdGEpLCBBRVMuYmxvY2tfc2l6ZSkuZGVjb2RlKCkNCg0KICAgICAgICBpZiByZS5zZWFyY2goIiNFWFRNM1UiLCBkYXRhKSBvciAnbTN1JyBpbiB1cmw6DQogICAgICAgICAgICByZXR1cm4gZGF0YQ0KICAgIGVsaWYgZGF0YSBpcyBOb25lOg0KICAgICAgICBpZiB4Ym1jdmZzLmV4aXN0cyh1cmwpOg0KICAgICAgICAgICAgaWYgdXJsLnN0YXJ0c3dpdGgoInNtYjovLyIpIG9yIHVybC5zdGFydHN3aXRoKCJuZnM6Ly8iKToNCiAgICAgICAgICAgICAgICBjb3B5ID0geGJtY3Zmcy5jb3B5KHVybCwgb3MucGF0aC5qb2luKHByb2ZpbGUsICd0ZW1wJywgJ3NvdXJjZV90ZW1wLnR4dCcpKQ0KICAgICAgICAgICAgICAgIGlmIGNvcHk6DQogICAgICAgICAgICAgICAgICAgIGlmIHNpeC5QWTI6DQogICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gb3Blbihvcy5wYXRoLmpvaW4ocHJvZmlsZSwgJ3RlbXAnLCAnc291cmNlX3RlbXAudHh0JyksICJyIikucmVhZCgpDQogICAgICAgICAgICAgICAgICAgIGVsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gb3Blbihvcy5wYXRoLmpvaW4ocHJvZmlsZSwgJ3RlbXAnLCAnc291cmNlX3RlbXAudHh0JyksICJyIiwgZW5jb2Rpbmc9J3V0Zi04JykucmVhZCgpDQogICAgICAgICAgICAgICAgICAgIHhibWN2ZnMuZGVsZXRlKG9zLnBhdGguam9pbihwcm9maWxlLCAndGVtcCcsICdzb3VyY2VfdGVtcC50eHQnKSkNCiAgICAgICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICAgICBhZGRvbl9sb2coImZhaWxlZCB0byBjb3B5IGZyb20gc21iOiIpDQogICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgIGlmIHNpeC5QWTI6DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBvcGVuKHVybCwgJ3InKS5yZWFkKCkNCiAgICAgICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gb3Blbih1cmwsICdyJywgZW5jb2Rpbmc9J3V0Zi04JykucmVhZCgpDQogICAgICAgICAgICAgICAgaWYgcmUubWF0Y2goIiNFWFRNM1UiLCBkYXRhKSBvciAnbTN1JyBpbiB1cmw6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhDQogICAgICAgIGVsc2U6DQogICAgICAgICAgICBhZGRvbl9sb2coIlNvdXAgRGF0YSBub3QgZm91bmQhIikNCiAgICAgICAgICAgIHJldHVybg0KICAgIGlmICc8U2V0Vmlld01vZGU+JyBpbiBkYXRhOg0KICAgICAgICB0cnk6DQogICAgICAgICAgICB2aWV3bW9kZSA9IHJlLmZpbmRhbGwoJzxTZXRWaWV3TW9kZT4oLio/KTwnLCBkYXRhKVswXQ0KICAgICAgICAgICAgeGJtYy5leGVjdXRlYnVpbHRpbigiQ29udGFpbmVyLlNldFZpZXdNb2RlKHswfSkiLmZvcm1hdCh2aWV3bW9kZSkpDQogICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgIHBhc3MNCg0KICAgIHhtbCA9IE5vbmUNCg0KICAgIHRyeToNCiAgICAgICAgeG1sID0gRWxlbWVudFRyZWUuZnJvbXN0cmluZyhkYXRhKQ0KICAgIGV4Y2VwdCBFbGVtZW50VHJlZS5QYXJzZUVycm9yIGFzIGVycjoNCiAgICAgICAgeGJtY2d1aS5EaWFsb2coKS5ub3RpZmljYXRpb24oYWRkb25fbmFtZSwgJ0ZhaWxlZCB0byBwYXJzZSB4bWw6IHswfScuZm9ybWF0KGVyci5tc2cpLCBpY29uLCAxMDAwMCwgRmFsc2UpDQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6DQogICAgICAgIHhibWNndWkuRGlhbG9nKCkubm90aWZpY2F0aW9uKGFkZG9uX25hbWUsICdBbiBlcnJvciBvY2N1cnJlZDogezB9Jy5mb3JtYXQoZXJyKSwgaWNvbiwgMTAwMDAsIEZhbHNlKQ0KDQogICAgcmV0dXJuIHhtbA0KDQoNCmRlZiBwcm9jZXNzUHlGdW5jdGlvbihkYXRhKToNCiAgICB0cnk6DQogICAgICAgIGlmIGRhdGEgYW5kIGxlbihkYXRhKSA+IDAgYW5kIGRhdGEuc3RhcnRzd2l0aCgnJHB5RnVuY3Rpb246Jyk6DQogICAgICAgICAgICBkYXRhID0gZG9FdmFsKGRhdGEuc3BsaXQoJyRweUZ1bmN0aW9uOicpWzFdLCAnJywgTm9uZSwgTm9uZSkNCiAgICBleGNlcHQ6DQogICAgICAgIHBhc3MNCg0KICAgIHJldHVybiBkYXRhDQoNCg0KZGVmIGdldERhdGEodXJsLCBmYW5hcnQsIGRhdGE9Tm9uZSk6DQogICAgc291cCA9IGdldFNvdXAodXJsLCBkYXRhKQ0KICAgIGNoYW5uZWxzID0gTm9uZQ0KICAgIGlmIGlzaW5zdGFuY2Uoc291cCwgRWxlbWVudFRyZWUuRWxlbWVudCk6DQogICAgICAgIGlmIChzb3VwLnRhZyA9PSAnY2hhbm5lbHMnIGFuZCBsZW4oc291cCkgPiAwIGFuZCBhZGRvbi5nZXRTZXR0aW5nKCdkb25vdHNob3dieWNoYW5uZWxzJykgPT0gJ2ZhbHNlJykgb3IgKHNvdXAudGFnID09ICdpdGVtcycgYW5kIGxlbihzb3VwKSA+IDApOg0KICAgICAgICAgICAgY2hhbm5lbHMgPSBzb3VwLmZpbmRhbGwoJ2NoYW5uZWwnKQ0KICAgICAgICAgICAgdGVwZyA9IE5vbmUNCiAgICAgICAgICAgIG1lZGlhX2luZm8gPSBOb25lDQogICAgICAgICAgICBpZiBzb3VwLmZpbmQoJ2NoYW5uZWxzX2luZm8nKSBpcyBub3QgTm9uZToNCiAgICAgICAgICAgICAgICBtZWRpYV9pbmZvID0gc291cC5maW5kKCdjaGFubmVsc19pbmZvJykNCiAgICAgICAgICAgIGVsaWYgc291cC5maW5kKCdpdGVtc19pbmZvJykgaXMgbm90IE5vbmU6DQogICAgICAgICAgICAgICAgbWVkaWFfaW5mbyA9IHNvdXAuZmluZCgnaXRlbXNfaW5mbycpDQoNCiAgICAgICAgICAgIGlmIG1lZGlhX2luZm86DQogICAgICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgICAgICBpZiBtZWRpYV9pbmZvLmZpbmQoJ2VwZycpIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgICAgICAgICAgICAgZXBnID0gbWVkaWFfaW5mby5maW5kKCdlcGcnKS50ZXh0DQogICAgICAgICAgICAgICAgICAgICAgICByZWdfaXRlbSA9IG1lZGlhX2luZm8uZmluZCgnZXBnX3JlZ2V4JykNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2V4cyA9IHBhcnNlX3JlZ2V4KHJlZ19pdGVtKQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAnJGRvcmVnZXgnIGluIGVwZyBhbmQgZ2V0UmVnZXhQYXJzZWQgaXMgbm90IE5vbmU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVwZywgc2V0cmVzID0gZ2V0UmVnZXhQYXJzZWQocmVnZXhzLCBlcGcpDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlcGc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXBnID0ganNvbi5kdW1wcyh0ZXBnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVwZyA9IHN0cih0ZXBnKQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZnVuY3Rpb25zX2RpciBub3QgaW4gc3lzLnBhdGg6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5cy5wYXRoLmFwcGVuZChmdW5jdGlvbnNfZGlyKQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSAnTFNQcm9QYWdlRVBHLnR4dCcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZXdpdGhwYXRoID0gb3MucGF0aC5qb2luKGZ1bmN0aW9uc19kaXIsIGZpbGVuYW1lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZXdpdGhwYXRoLCAndycpIGFzIGY6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUodGVwZykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5jbG9zZSgpDQogICAgICAgICAgICAgICAgZXhjZXB0IEJhc2VFeGNlcHRpb24gYXMgZXJyOg0KICAgICAgICAgICAgICAgICAgICBhZGRvbl9sb2coJ2Vycm9yIGdldHRpbmcgRVBHIHBhZ2UgZGF0YTogezB9Jy5mb3JtYXQoc3RyKGVycikpKQ0KDQogICAgICAgICAgICBmb3IgY2hhbm5lbCBpbiBjaGFubmVsczoNCiAgICAgICAgICAgICAgICBsaW5rZWRVcmwgPSAnJw0KICAgICAgICAgICAgICAgIGxjb3VudCA9IDANCiAgICAgICAgICAgICAgICBpZiBjaGFubmVsLmZpbmRhbGwoJ2V4dGVybmFsbGluaycpOg0KICAgICAgICAgICAgICAgICAgICBsaW5rZWRVcmwgPSBjaGFubmVsLmZpbmRhbGwoJ2V4dGVybmFsbGluaycpWzBdLnRleHQNCiAgICAgICAgICAgICAgICAgICAgIyBsY291bnQgPSBsZW4oY2hhbm5lbC5maW5kYWxsKCdleHRlcm5hbGxpbmsnKSkgICMgZ3VqYWwNCiAgICAgICAgICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgICAgICAgICAgbGlua2VkVXJsID0gYmFzZTY0LmIzMmRlY29kZShsaW5rZWRVcmxbOjotMV0pLmRlY29kZSgndXRmLTgnKQ0KICAgICAgICAgICAgICAgICAgICBleGNlcHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBwYXNzIA0KDQogICAgICAgICAgICAgICAgaWYgbGNvdW50ID4gMToNCiAgICAgICAgICAgICAgICAgICAgbGlua2VkVXJsID0gJycNCg0KICAgICAgICAgICAgICAgIG5hbWUgPSBjaGFubmVsLmZpbmQoJ25hbWUnKS50ZXh0DQogICAgICAgICAgICAgICAgbmFtZSA9IHByb2Nlc3NQeUZ1bmN0aW9uKG5hbWUpDQoNCiAgICAgICAgICAgICAgICBpZiBjaGFubmVsLmZpbmQoJ3RodW1ibmFpbCcpIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgICAgICAgICB0aHVtYm5haWwgPSBjaGFubmVsLmZpbmQoJ3RodW1ibmFpbCcpLnRleHQNCiAgICAgICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICAgICB0aHVtYm5haWwgPSAnJw0KICAgICAgICAgICAgICAgIHRodW1ibmFpbCA9IHByb2Nlc3NQeUZ1bmN0aW9uKHRodW1ibmFpbCkNCg0KICAgICAgICAgICAgICAgIGlmIGNoYW5uZWwuZmluZCgnZmFuYXJ0JykgaXMgbm90IE5vbmU6DQogICAgICAgICAgICAgICAgICAgIGZhbkFydCA9IGNoYW5uZWwuZmluZCgnZmFuYXJ0JykudGV4dA0KICAgICAgICAgICAgICAgIGVsaWYgYWRkb24uZ2V0U2V0dGluZygndXNlX3RodW1iJykgPT0gInRydWUiOg0KICAgICAgICAgICAgICAgICAgICBmYW5BcnQgPSB0aHVtYm5haWwNCiAgICAgICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICAgICBmYW5BcnQgPSBmYW5hcnQNCg0KICAgICAgICAgICAgICAgIGlmIGNoYW5uZWwuZmluZCgnaW5mbycpIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgICAgICAgICBkZXNjID0gY2hhbm5lbC5maW5kKCdpbmZvJykudGV4dA0KICAgICAgICAgICAgICAgIGVsc2U6DQogICAgICAgICAgICAgICAgICAgIGRlc2MgPSAnJw0KDQogICAgICAgICAgICAgICAgaWYgY2hhbm5lbC5maW5kKCdnZW5yZScpIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgICAgICAgICBnZW5yZSA9IGNoYW5uZWwuZmluZCgnZ2VucmUnKS50ZXh0DQogICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAgZ2VucmUgPSAnJw0KDQogICAgICAgICAgICAgICAgaWYgY2hhbm5lbC5maW5kKCdkYXRlJykgaXMgbm90IE5vbmU6DQogICAgICAgICAgICAgICAgICAgIGRhdGUgPSBjaGFubmVsLmZpbmQoJ2RhdGUnKS50ZXh0DQogICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAgZGF0ZSA9ICcnDQoNCiAgICAgICAgICAgICAgICBpZiBjaGFubmVsLmZpbmQoJ2NyZWRpdHMnKSBpcyBub3QgTm9uZToNCiAgICAgICAgICAgICAgICAgICAgY3JlZGl0cyA9IGNoYW5uZWwuZmluZCgnY3JlZGl0cycpLnRleHQNCiAgICAgICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICAgICBjcmVkaXRzID0gJycNCg0KICAgICAgICAgICAgICAgIHRyeToNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuZW5jb2RlKCd1dGYtOCcpIGlmIHNpeC5QWTIgZWxzZSBuYW1lDQogICAgICAgICAgICAgICAgICAgIGlmIGxpbmtlZFVybCA9PSAnJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5lbmNvZGUoJ3V0Zi04JykgaWYgc2l4LlBZMiBlbHNlIHVybA0KICAgICAgICAgICAgICAgICAgICAgICAgYWRkRGlyKG5hbWUsIHVybCwgMiwgdGh1bWJuYWlsLCBmYW5BcnQsIGRlc2MsIGdlbnJlLCBkYXRlLCBjcmVkaXRzLCBUcnVlKQ0KICAgICAgICAgICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgbGlua2VkVXJsID0gbGlua2VkVXJsLmVuY29kZSgndXRmLTgnKSBpZiBzaXguUFkyIGVsc2UgbGlua2VkVXJsDQogICAgICAgICAgICAgICAgICAgICAgICBhZGREaXIobmFtZSwgbGlua2VkVXJsLCAxLCB0aHVtYm5haWwsIGZhbkFydCwgZGVzYywgZ2VucmUsIGRhdGUsIE5vbmUsICdzb3VyY2UnKQ0KICAgICAgICAgICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgICAgICAgICAgYWRkb25fbG9nKCdUaGVyZSB3YXMgYSBwcm9ibGVtIGFkZGluZyBkaXJlY3RvcnkgZnJvbSBnZXREYXRhKCk6IHswfScuZm9ybWF0KG5hbWUpKQ0KDQogICAgICAgIGlmIGNoYW5uZWxzIGlzIE5vbmUgb3IgbGVuKGNoYW5uZWxzKSA9PSAwOg0KICAgICAgICAgICAgYWRkb25fbG9nKCdObyBDaGFubmVsczogZ2V0SXRlbXMnKQ0KICAgICAgICAgICAgZ2V0SXRlbXMoc291cC5maW5kYWxsKCdpdGVtJyksIGZhbmFydCkNCg0KICAgIGVsc2U6DQogICAgICAgIHBhcnNlX20zdShzb3VwKQ0KDQoNCiMgYm9ycm93IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2VuZW45Mi9QMlAtU3RyZWFtcy1YQk1DL2Jsb2IvbWFzdGVyL3BsdWdpbi52aWRlby5wMnAtc3RyZWFtcy9yZXNvdXJjZXMvY29yZS9saXZlc3RyZWFtcy5weQ0KIyBUaGlzIHdpbGwgbm90IGdvIHRocm91Z2ggdGhlIGdldEl0ZW1zIGZ1bmN0aW9ucyAoIG1lYW5zIHlvdSBtdXN0IGhhdmUgcmVhZHkgdG8gcGxheSB1cmwsIG5vIHJlZ2V4KQ0KZGVmIHBhcnNlX20zdShkYXRhKToNCiAgICBpZiBkYXRhOg0KICAgICAgICBjb250ZW50ID0gZGF0YS5yc3RyaXAoKQ0KICAgIGVsc2U6DQogICAgICAgIGNvbnRlbnQgPSAnJw0KICAgIG1hdGNoID0gcmUuY29tcGlsZShyJyNFWFRJTkY6KC4rPyksKC4qPylbXG5ccl0rKFteXHJcbl0rKScpLmZpbmRhbGwoY29udGVudCkNCiAgICB0b3RhbCA9IGxlbihtYXRjaCkNCiAgICBmb3Igb3RoZXIsIGNoYW5uZWxfbmFtZSwgc3RyZWFtX3VybCBpbiBtYXRjaDoNCiAgICAgICAgaWYgJ3R2Zy1sb2dvJyBpbiBvdGhlcjoNCiAgICAgICAgICAgIHRodW1ibmFpbCA9IHJlX21lKG90aGVyLCAndHZnLWxvZ289W1wnIl0oLio/KVtcJyJdJykNCiAgICAgICAgICAgIGlmIHRodW1ibmFpbDoNCiAgICAgICAgICAgICAgICBpZiB0aHVtYm5haWwuc3RhcnRzd2l0aCgnaHR0cCcpOg0KICAgICAgICAgICAgICAgICAgICB0aHVtYm5haWwgPSB0aHVtYm5haWwNCiAgICAgICAgICAgICAgICBlbGlmIGFkZG9uLmdldFNldHRpbmcoJ2xvZ28tZm9sZGVyUGF0aCcpICE9ICIiOg0KICAgICAgICAgICAgICAgICAgICBsb2dvX3VybCA9IGFkZG9uLmdldFNldHRpbmcoJ2xvZ28tZm9sZGVyUGF0aCcpDQogICAgICAgICAgICAgICAgICAgIHRodW1ibmFpbCA9IGxvZ29fdXJsICsgdGh1bWJuYWlsDQogICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAgdGh1bWJuYWlsID0gdGh1bWJuYWlsDQogICAgICAgIGVsc2U6DQogICAgICAgICAgICB0aHVtYm5haWwgPSAnJw0KDQogICAgICAgIGlmICd0eXBlJyBpbiBvdGhlcjoNCiAgICAgICAgICAgIG1vZGVfdHlwZSA9IHJlX21lKG90aGVyLCAndHlwZT1bXCciXSguKj8pW1wnIl0nKQ0KICAgICAgICAgICAgaWYgbW9kZV90eXBlID09ICd5dC1kbCc6DQogICAgICAgICAgICAgICAgc3RyZWFtX3VybCA9IHN0cmVhbV91cmwgKyAiJm1vZGU9MTgiDQogICAgICAgICAgICBlbGlmIG1vZGVfdHlwZSA9PSAncmVnZXgnOg0KICAgICAgICAgICAgICAgIHVybCA9IHN0cmVhbV91cmwuc3BsaXQoJyZyZWdleHM9JykNCiAgICAgICAgICAgICAgICByZWdleHMgPSBwYXJzZV9yZWdleChnZXRTb3VwKCcnLCBkYXRhPXVybFsxXSkpDQoNCiAgICAgICAgICAgICAgICBhZGRMaW5rKHVybFswXSwgY2hhbm5lbF9uYW1lLCB0aHVtYm5haWwsICcnLCAnJywgJycsICcnLCAnJywgTm9uZSwgcmVnZXhzLCB0b3RhbCkNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBlbGlmIHRzZG93bmxvYWRlciBhbmQgJy50cycgaW4gc3RyZWFtX3VybDoNCiAgICAgICAgICAgIHN0cmVhbV91cmwgPSAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLmY0bVRlc3Rlci8/dXJsPXswfSZhbXA7c3RyZWFtdHlwZT1UU0RPV05MT0FERVImbmFtZT17MX0nLmZvcm1hdCh1cmxsaWJfcGFyc2UucXVvdGVfcGx1cyhzdHJlYW1fdXJsKSwgdXJsbGliX3BhcnNlLnF1b3RlKGNoYW5uZWxfbmFtZSkpDQogICAgICAgIGVsaWYgaGxzcmV0cnkgYW5kICcubTN1OCcgaW4gc3RyZWFtX3VybDoNCiAgICAgICAgICAgIHN0cmVhbV91cmwgPSAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLmY0bVRlc3Rlci8/dXJsPXswfSZhbXA7c3RyZWFtdHlwZT1ITFNSRVRSWSZuYW1lPXsxfScuZm9ybWF0KHVybGxpYl9wYXJzZS5xdW90ZV9wbHVzKHN0cmVhbV91cmwpLCB1cmxsaWJfcGFyc2UucXVvdGUoY2hhbm5lbF9uYW1lKSkNCiAgICAgICAgYWRkTGluayhzdHJlYW1fdXJsLCBjaGFubmVsX25hbWUsIHRodW1ibmFpbCwgJycsICcnLCAnJywgJycsICcnLCBOb25lLCAnJywgdG90YWwpDQoNCg0KZGVmIGdldENoYW5uZWxJdGVtcyhuYW1lLCB1cmwsIGZhbmFydCk6DQogICAgc291cCA9IGdldFNvdXAodXJsKQ0KICAgIGNoYW5uZWxfbGlzdCA9IHNvdXAuZmluZCgnLi9jaGFubmVsL1tuYW1lPSJ7MH0iXScuZm9ybWF0KG5hbWUpKQ0KICAgIGlmIGNoYW5uZWxfbGlzdC5maW5kKCdpdGVtcycpIGlzIG5vdCBOb25lOg0KICAgICAgICBpdGVtcyA9IGNoYW5uZWxfbGlzdC5maW5kKCdpdGVtcycpLmZpbmRhbGwoJ2l0ZW0nKQ0KICAgIGVsc2U6DQogICAgICAgIGl0ZW1zID0gY2hhbm5lbF9saXN0LmZpbmRhbGwoJ2l0ZW0nKQ0KICAgIGlmIGNoYW5uZWxfbGlzdC5maW5kKCdmYW5hcnQnKSBpcyBub3QgTm9uZToNCiAgICAgICAgZmFuQXJ0ID0gY2hhbm5lbF9saXN0LmZpbmQoJ2ZhbmFydCcpLnRleHQNCiAgICBlbHNlOg0KICAgICAgICBmYW5BcnQgPSBmYW5hcnQNCiAgICBmb3IgY2hhbm5lbCBpbiBjaGFubmVsX2xpc3QuZmluZGFsbCgnc3ViY2hhbm5lbCcpOg0KICAgICAgICBuYW1lID0gY2hhbm5lbC5maW5kKCduYW1lJykudGV4dA0KICAgICAgICBuYW1lID0gcHJvY2Vzc1B5RnVuY3Rpb24obmFtZSkNCg0KICAgICAgICBpZiBjaGFubmVsLmZpbmQoJ3RodW1ibmFpbCcpIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgdGh1bWJuYWlsID0gY2hhbm5lbC5maW5kKCd0aHVtYm5haWwnKS50ZXh0DQogICAgICAgICAgICB0aHVtYm5haWwgPSBwcm9jZXNzUHlGdW5jdGlvbih0aHVtYm5haWwpDQogICAgICAgIGVsc2U6DQogICAgICAgICAgICB0aHVtYm5haWwgPSAnJw0KDQogICAgICAgIGlmIGNoYW5uZWwuZmluZCgnZmFuYXJ0JykgaXMgbm90IE5vbmU6DQogICAgICAgICAgICBmYW5BcnQgPSBjaGFubmVsLmZpbmQoJ2ZhbmFydCcpLnRleHQNCiAgICAgICAgZWxpZiBhZGRvbi5nZXRTZXR0aW5nKCd1c2VfdGh1bWInKSA9PSAidHJ1ZSI6DQogICAgICAgICAgICBmYW5BcnQgPSB0aHVtYm5haWwNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIGZhbkFydCA9ICcnDQoNCiAgICAgICAgaWYgY2hhbm5lbC5maW5kKCdpbmZvJykgaXMgbm90IE5vbmU6DQogICAgICAgICAgICBkZXNjID0gY2hhbm5lbC5maW5kKCdpbmZvJykudGV4dA0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgZGVzYyA9ICcnDQoNCiAgICAgICAgaWYgY2hhbm5lbC5maW5kKCdnZW5yZScpIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgZ2VucmUgPSBjaGFubmVsLmZpbmQoJ2dlbnJlJykudGV4dA0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgZ2VucmUgPSAnJw0KDQogICAgICAgIGlmIGNoYW5uZWwuZmluZCgnZGF0ZScpIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgZGF0ZSA9IGNoYW5uZWwuZmluZCgnZGF0ZScpLnRleHQNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIGRhdGUgPSAnJw0KDQogICAgICAgIGlmIGNoYW5uZWwuZmluZCgnY3JlZGl0cycpIGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgY3JlZGl0cyA9IGNoYW5uZWwuZmluZCgnY3JlZGl0cycpLnRleHQNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIGNyZWRpdHMgPSAnJw0KDQogICAgICAgIHRyeToNCiAgICAgICAgICAgIGlmIHNpeC5QWTI6DQogICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuZW5jb2RlKCd1dGYtOCcpDQogICAgICAgICAgICAgICAgdXJsID0gdXJsLmVuY29kZSgndXRmLTgnKQ0KICAgICAgICAgICAgYWRkRGlyKG5hbWUsIHVybCwgMywgdGh1bWJuYWlsLCBmYW5BcnQsIGRlc2MsIGdlbnJlLCBjcmVkaXRzLCBkYXRlKQ0KICAgICAgICBleGNlcHQ6DQogICAgICAgICAgICBhZGRvbl9sb2coJ1RoZXJlIHdhcyBhIHByb2JsZW0gYWRkaW5nIGRpcmVjdG9yeSAtIHswfScuZm9ybWF0KG5hbWUpKQ0KICAgIGdldEl0ZW1zKGl0ZW1zLCBmYW5BcnQpDQoNCg0KZGVmIGdldFN1YkNoYW5uZWxJdGVtcyhuYW1lLCB1cmwsIGZhbmFydCk6DQogICAgc291cCA9IGdldFNvdXAodXJsKQ0KICAgIGNoYW5uZWxfbGlzdCA9IHNvdXAuZmluZCgnLi9jaGFubmVsL3N1YmNoYW5uZWwvW25hbWU9InswfSJdJy5mb3JtYXQobmFtZSkpDQogICAgaXRlbXMgPSBjaGFubmVsX2xpc3QuZmluZCgnc3ViaXRlbXMnKS5maW5kYWxsKCdzdWJpdGVtJykNCiAgICBnZXRJdGVtcyhpdGVtcywgZmFuYXJ0KQ0KDQoNCmRlZiBnZXRJdGVtcyhpdGVtcywgZmFuYXJ0LCBkb250TGluaz1GYWxzZSk6DQogICAgdG90YWwgPSBsZW4oaXRlbXMpDQogICAgIyBhZGRvbl9sb2coJ1RvdGFsIEl0ZW1zOiB7MH0nLmZvcm1hdCh0b3RhbCkpDQogICAgYWRkX3BsYXlsaXN0ID0gYWRkb24uZ2V0U2V0dGluZygnYWRkX3BsYXlsaXN0JykNCiAgICBhc2tfcGxheWxpc3RfaXRlbXMgPSBhZGRvbi5nZXRTZXR0aW5nKCdhc2tfcGxheWxpc3RfaXRlbXMnKQ0KICAgIHBhcmVudGFsYmxvY2sgPSBhZGRvbi5nZXRTZXR0aW5nKCdwYXJlbnRhbGJsb2NrZWQnKQ0KICAgIHBhcmVudGFsYmxvY2sgPSBwYXJlbnRhbGJsb2NrID09ICJ0cnVlIg0KICAgIGZvciBpdGVtIGluIGl0ZW1zOg0KICAgICAgICBpc1hNTFNvdXJjZSA9IEZhbHNlDQogICAgICAgIGlzSnNvbnJwYyA9IEZhbHNlDQoNCiAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLmZpbmQoJ3BhcmVudGFsYmxvY2snKSwgRWxlbWVudFRyZWUuRWxlbWVudCk6DQogICAgICAgICAgICBhcHBseWJsb2NrID0gaXRlbS5maW5kKCdwYXJlbnRhbGJsb2NrJykudGV4dA0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgYXBwbHlibG9jayA9ICdmYWxzZScNCiAgICAgICAgaWYgYXBwbHlibG9jayA9PSAndHJ1ZScgYW5kIHBhcmVudGFsYmxvY2s6DQogICAgICAgICAgICBjb250aW51ZQ0KDQogICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbS5maW5kKCd0aXRsZScpLCBFbGVtZW50VHJlZS5FbGVtZW50KToNCiAgICAgICAgICAgIG5hbWUgPSBpdGVtLmZpbmQoJ3RpdGxlJykudGV4dA0KICAgICAgICAgICAgaWYgbmFtZSA9PSAnJzoNCiAgICAgICAgICAgICAgICBuYW1lID0gJ3Vua25vd24/Jw0KICAgICAgICAgICAgbmFtZSA9IHByb2Nlc3NQeUZ1bmN0aW9uKG5hbWUpDQogICAgICAgIGVsc2U6DQogICAgICAgICAgICBhZGRvbl9sb2coJ05hbWUgRXJyb3InKQ0KICAgICAgICAgICAgbmFtZSA9ICcnDQoNCiAgICAgICAgcmVnZXhzID0gTm9uZQ0KICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0uZmluZCgncmVnZXgnKSwgRWxlbWVudFRyZWUuRWxlbWVudCk6DQogICAgICAgICAgICByZWdleHMgPSBwYXJzZV9yZWdleChpdGVtLmZpbmRhbGwoJ3JlZ2V4JykpDQoNCiAgICAgICAgaWVwZyA9IE5vbmUNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLmZpbmQoJ2VwZycpLCBFbGVtZW50VHJlZS5FbGVtZW50KToNCiAgICAgICAgICAgICAgICAjIGFkZG9uX2xvZygneHh4eHh4eHh4eHh4eHhpdGVtRVBHJykNCiAgICAgICAgICAgICAgICAjICoqIGJhc2ljIHJlZ2V4IG9uIGVwZ191cmwgdGFnIGZvciBlcGcgYWRkZWQgdG8gaXRlbSBuYW1lICoqICMNCiAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0uZmluZCgnZXBnX3VybCcpLCBFbGVtZW50VHJlZS5FbGVtZW50KSBhbmQgaXRlbS5maW5kKCdlcGdfdXJsJykudGV4dCBpcyBub3QgTm9uZToNCiAgICAgICAgICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgICAgICAgICAgZXBnX3VybCA9IGl0ZW0uZmluZCgnZXBnX3VybCcpLnRleHQNCiAgICAgICAgICAgICAgICAgICAgICAgIGVwZ19yZWdleCA9IGl0ZW0uZmluZCgnZXBnX3JlZ2V4JykudGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgZXBnX25hbWUgPSBnZXRfZXBnKGVwZ191cmwsIGVwZ19yZWdleCkNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGVwZ19uYW1lOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgKz0gJyAtICcgKyBlcGdfbmFtZQ0KICAgICAgICAgICAgICAgICAgICBleGNlcHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBwYXNzDQoNCiAgICAgICAgICAgICAgICAjICoqIHB5IGZ1bmN0aW9uIGJsb2NrIHJlZ2V4IHRvIGdlbmVyYXRlIGVwZyBmb3IgaXRlbSBwbG90ICoqICMNCiAgICAgICAgICAgICAgICBlbGlmIGl0ZW0uZmluZCgnZXBnJykudGV4dDoNCiAgICAgICAgICAgICAgICAgICAgZXBnID0gaXRlbS5maW5kKCdlcGcnKS50ZXh0DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgJyRkb3JlZ2V4JyBpbiBlcGc6DQogICAgICAgICAgICAgICAgICAgICAgICByZWdfaXRlbSA9IGl0ZW0uZmluZCgnZXBnX3JlZ2V4JykNCg0KICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBwYWdlIHRhZyBpcyBub3QgcHJvdmlkZWQgdXNlIGVwZyBnZW5lcmF0ZWQgaW4gY2hhbm5lbCBpbmZvIG9yIGl0ZW1zIGluZm8NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVnX2l0ZW0uZmluZCgncGFnZScpLCBFbGVtZW50VHJlZS5FbGVtZW50KToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWdfaXRlbS5maW5kKCdwYWdlJykudGV4dCBpcyBOb25lIG9yIHJlZ19pdGVtLmZpbmQoJ3BhZ2UnKS50ZXh0ID09ICIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9ICdMU1Byb1BhZ2VFUEcudHh0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZXdpdGhwYXRoID0gb3MucGF0aC5qb2luKGZ1bmN0aW9uc19kaXIsIGZpbGVuYW1lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdfaXRlbS5maW5kKCdwYWdlJykudGV4dCA9IGZpbGVuYW1ld2l0aHBhdGgNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2V4cyA9IHBhcnNlX3JlZ2V4KHJlZ19pdGVtKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGllcGcsIHNldHJlcyA9IGdldFJlZ2V4UGFyc2VkKHJlZ2V4cywgZXBnKQ0KDQogICAgICAgICAgICAgICAgICAgICMgKiogb3IgYWRkIHN0YXRpYyBlcGcgdG8gaXRlbSBuYW1lICoqICMNCiAgICAgICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgKz0gZ2V0ZXBnKGl0ZW0uZmluZCgnZXBnJykudGV4dCkNCg0KICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICBwYXNzDQoNCiAgICAgICAgZXhjZXB0IEJhc2VFeGNlcHRpb24gYXMgZXJyOg0KICAgICAgICAgICAgYWRkb25fbG9nKCdFcnJvciBnZXR0aW5nIGl0ZW0gRVBHOiB7MH0nLmZvcm1hdChzdHIoZXJyKSkpDQoNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgdXJsID0gW10NCiAgICAgICAgICAgIGlmIGxlbihpdGVtLmZpbmRhbGwoJ2xpbmsnKSkgPiAwOg0KICAgICAgICAgICAgICAgIGZvciBpIGluIGl0ZW0uZmluZGFsbCgnbGluaycpOg0KICAgICAgICAgICAgICAgICAgICBpZiBpLnRleHQgaXMgbm90IE5vbmU6DQogICAgICAgICAgICAgICAgICAgICAgICB1cmwuYXBwZW5kKGkudGV4dCkNCiAgICAgICAgICAgIGVsaWYgbGVuKGl0ZW0uZmluZGFsbCgnc3BvcnRzZGV2aWwnKSkgPiAwOg0KICAgICAgICAgICAgICAgIGZvciBpIGluIGl0ZW0uZmluZGFsbCgnc3BvcnRzZGV2aWwnKToNCiAgICAgICAgICAgICAgICAgICAgaWYgaS50ZXh0IGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgICAgICAgICAgICAgc2RfcGx1Z2luID0gInBsdWdpbjovL3BsdWdpbi52aWRlby5TcG9ydHNEZXZpbCIgaWYgc2l4LlBZMiBlbHNlICJwbHVnaW46Ly9wbHVnaW4udmlkZW8uc3BvcnRzZGV2aWwiDQogICAgICAgICAgICAgICAgICAgICAgICBzcG9ydHNkZXZpbCA9IHNkX3BsdWdpbiArICcvP21vZGU9MSZhbXA7aXRlbT1jYXRjaGVyJTNkc3RyZWFtcyUyNnVybD0nICsgaS50ZXh0ICsgJyUyNnZpZGVvVGl0bGU9JyArIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGl0ZW0uZmluZCgncmVmZXJlcicpOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwb3J0c2RldmlsID0gc3BvcnRzZGV2aWwgKyAnJTI2cmVmZXJlcj0nICsgaXRlbS5maW5kKCdyZWZlcmVyJykudGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgdXJsLmFwcGVuZChzcG9ydHNkZXZpbCkNCiAgICAgICAgICAgIGVsaWYgbGVuKGl0ZW0uZmluZGFsbCgneXQtZGwnKSkgPiAwOg0KICAgICAgICAgICAgICAgIGZvciBpIGluIGl0ZW0uZmluZGFsbCgneXQtZGwnKToNCiAgICAgICAgICAgICAgICAgICAgaWYgaS50ZXh0IGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgICAgICAgICAgICAgeXRkbCA9IGkudGV4dCArICcmbW9kZT0xOCcNCiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5hcHBlbmQoeXRkbCkNCiAgICAgICAgICAgIGVsaWYgbGVuKGl0ZW0uZmluZGFsbCgnZG0nKSkgPiAwOg0KICAgICAgICAgICAgICAgIGZvciBpIGluIGl0ZW0uZmluZGFsbCgnZG0nKToNCiAgICAgICAgICAgICAgICAgICAgaWYgaS50ZXh0IGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgICAgICAgICAgICAgZG0gPSAicGx1Z2luOi8vcGx1Z2luLnZpZGVvLmRhaWx5bW90aW9uX2NvbS8/bW9kZT1wbGF5VmlkZW8mdXJsPSIgKyBpLnRleHQNCiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5hcHBlbmQoZG0pDQogICAgICAgICAgICBlbGlmIGxlbihpdGVtLmZpbmRhbGwoJ2RtbGl2ZScpKSA+IDA6DQogICAgICAgICAgICAgICAgZm9yIGkgaW4gaXRlbS5maW5kYWxsKCdkbWxpdmUnKToNCiAgICAgICAgICAgICAgICAgICAgaWYgaS50ZXh0IGlzIG5vdCBOb25lOg0KICAgICAgICAgICAgICAgICAgICAgICAgZG0gPSAicGx1Z2luOi8vcGx1Z2luLnZpZGVvLmRhaWx5bW90aW9uX2NvbS8/bW9kZT1wbGF5TGl2ZVZpZGVvJnVybD0iICsgaS50ZXh0DQogICAgICAgICAgICAgICAgICAgICAgICB1cmwuYXBwZW5kKGRtKQ0KICAgICAgICAgICAgZWxpZiBsZW4oaXRlbS5maW5kYWxsKCd1dHViZScpKSA+IDA6DQogICAgICAgICAgICAgICAgZm9yIGkgaW4gaXRlbS5maW5kYWxsKCd1dHViZScpOg0KICAgICAgICAgICAgICAgICAgICBpZiBpLnRleHQgaXMgbm90IE5vbmU6DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAnICcgaW4gaS50ZXh0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0dWJlID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby55b3V0dWJlL3NlYXJjaC8/cT0nICsgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMoaS50ZXh0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSnNvbnJwYyA9IHV0dWJlDQogICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGxlbihpLnRleHQpID09IDExOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0dWJlID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby55b3V0dWJlL3BsYXkvP3ZpZGVvX2lkPScgKyBpLnRleHQNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgKGkudGV4dC5zdGFydHN3aXRoKCdQTCcpIGFuZCAnJm9yZGVyPScgbm90IGluIGkudGV4dCkgb3IgaS50ZXh0LnN0YXJ0c3dpdGgoJ1VVJyk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXR1YmUgPSAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLnlvdXR1YmUvcGxheS8/Jm9yZGVyPWRlZmF1bHQmcGxheWxpc3RfaWQ9JyArIGkudGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBpLnRleHQuc3RhcnRzd2l0aCgnUEwnKSBvciBpLnRleHQuc3RhcnRzd2l0aCgnVVUnKToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dHViZSA9ICdwbHVnaW46Ly9wbHVnaW4udmlkZW8ueW91dHViZS9wbGF5Lz9wbGF5bGlzdF9pZD0nICsgaS50ZXh0DQogICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGkudGV4dC5zdGFydHN3aXRoKCdVQycpIGFuZCBsZW4oaS50ZXh0KSA+IDEyOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0dWJlID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby55b3V0dWJlL2NoYW5uZWwvJyArIGkudGV4dCArICcvJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSnNvbnJwYyA9IHV0dWJlDQogICAgICAgICAgICAgICAgICAgICAgICBlbGlmIG5vdCBpLnRleHQuc3RhcnRzd2l0aCgnVUMnKSBhbmQgbm90IChpLnRleHQuc3RhcnRzd2l0aCgnUEwnKSk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXR1YmUgPSAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLnlvdXR1YmUvdXNlci8nICsgaS50ZXh0ICsgJy8nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNKc29ucnBjID0gdXR1YmUNCiAgICAgICAgICAgICAgICAgICAgdXJsLmFwcGVuZCh1dHViZSkNCiAgICAgICAgICAgIGVsaWYgbGVuKGl0ZW0uZmluZGFsbCgnZjRtJykpID4gMDoNCiAgICAgICAgICAgICAgICBmb3IgaSBpbiBpdGVtLmZpbmRhbGwoJ2Y0bScpOg0KICAgICAgICAgICAgICAgICAgICBpZiBpLnRleHQgaXMgbm90IE5vbmU6DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAnLmY0bScgaW4gaS50ZXh0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGY0bSA9ICdwbHVnaW46Ly9wbHVnaW4udmlkZW8uZjRtVGVzdGVyLz91cmw9JyArIHVybGxpYl9wYXJzZS5xdW90ZV9wbHVzKGkudGV4dCkNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgJy5tM3U4JyBpbiBpLnRleHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZjRtID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby5mNG1UZXN0ZXIvP3VybD0nICsgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMoaS50ZXh0KSArICcmYW1wO3N0cmVhbXR5cGU9SExTJw0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmNG0gPSAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLmY0bVRlc3Rlci8/dXJsPScgKyB1cmxsaWJfcGFyc2UucXVvdGVfcGx1cyhpLnRleHQpICsgJyZhbXA7c3RyZWFtdHlwZT1TSU1QTEUnDQogICAgICAgICAgICAgICAgICAgIHVybC5hcHBlbmQoZjRtKQ0KDQogICAgICAgICAgICBlbGlmIGxlbihpdGVtLmZpbmRhbGwoJ3VybHNvbHZlJykpID4gMDoNCiAgICAgICAgICAgICAgICBmb3IgaSBpbiBpdGVtLmZpbmRhbGwoJ3VybHNvbHZlJyk6DQogICAgICAgICAgICAgICAgICAgIGlmIGkudGV4dCBpcyBub3QgTm9uZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVyID0gaS50ZXh0ICsgJyZtb2RlPTE5Jw0KICAgICAgICAgICAgICAgICAgICAgICAgdXJsLmFwcGVuZChyZXNvbHZlcikNCg0KICAgICAgICAgICAgZWxpZiBsZW4oaXRlbS5maW5kYWxsKCdpbnB1dHN0cmVhbScpKSA+IDA6DQogICAgICAgICAgICAgICAgZm9yIGkgaW4gaXRlbS5maW5kYWxsKCdpbnB1dHN0cmVhbScpOg0KICAgICA'
love = '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hLJ1yVQ0tqT5uoJHAPvNtVPNtVPNtVPNtVPNtVPNtVPNtMKuwMKO0Bt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtpTSmpj0XVPNtVPNtVPNtVPNtVPNtVPNtVPO0pax6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOcMvNaWTEipzIaMKtaVTyhVUEbqJ1vozScoPOuozDtM2I0HzIaMKuDLKWmMJDtnKZtoz90VR5iozH6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtqT5uoJHfVUAyqUWyplN9VTqyqSWyM2I4HTSlp2IxXUWyM2I4pljtqTu1oJWhLJyfXD0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVTyzVUEhLJ1yVTymVT5iqPOBo25yBt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO0nUIgLz5unJjtCFO0ozSgMD0XVPNtVPNtVPNtVPNtVPNtVPNtVPOyrTAypUD6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOjLKAmQDbtVPNtVPNtVPNtVPNtVPNtVPNtVTSxMRkcozfbqKWfJmOqYPOhLJ1yYzIhL29xMFtaqKEzYGtaXFOcMvOmnKthHSxlVTIfp2HtozSgMFjtqTu1oJWhLJyfYPOzLJ5OpaDfVTEyp2ZfVTqyoaWyYPOxLKEyYPOHpaIyYPOBo25yYPOlMJqyrUZfVUEiqTSfXD0XVPNtVPNtVPOyrTAypUD6QDbtVPNtVPNtVPNtVPO0pzSwMJWuL2fhpUWcoaEsMKuwXPxAPvNtVPNtVPNtVPNtVTSxMT9hK2kiMltaITuypzHtq2SmVTRtpUWiLzkyoFOuMTEcozptnKEyoFNgVUfjsFphMz9loJS0XUWypUVbozSgMFxcXD0XQDbAPzEyMvOjLKWmMI9lMJqyrPulMJqsnKEyoKZcBt0XVPNtVUWyM190LJqmVQ0tJlqhLJ1yWljtW2I4pUWyplpfVPqjLJqyWljtW3WyMzIlMKVaYPNaL29hozIwqTyiovpfVPqho3EjoTS5LJWfMFpfVPqho3WyMTylMJA0WljtW29lnJqcovpfVPquM2IhqPpfQDbtVPNtVPNtVPNtVPNtVPNtW2SwL2IjqPpfVPqcozAfqJEynTIuMTIlplpfVPqfnKA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tVPNtVPNtL29in2yyFzSlHTSlLJ0tCFOgJlqwo29enJIdLKVaKD0XVPNtVPNtVPNtVPNtVPNtVTyzVPpxMT9lMJqyrPptnJ4tL29in2yyFzSlHTSlLJ06QDbtVPNtVPNtVPNtVPNtVPNtVPNtVTAio2gcMHcupvN9VTqyqSWyM2I4HTSlp2IxXUWyM2I4pljtoIfaL29in2yynzSlW10fVTAio2gcMHcupvjtIUW1MFjtIUW1MFjtL2SwnTIxHTSaMKZcQDbtVPNtVPNtVPNtVPNtVPNtVPNtVTAio2gcMHcupyOupzSgVQ0tIUW1MD0XVPNtVPNtVPNtVPNtVPNtVTIfp2H6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVTAio2gcMHcupyOupzSgVQ0tIUW1MD0XQDbtVPNtVPNtVPNtVPOcMvOwo29enJIXLKWDLKWuoGbAPvNtVPNtVPNtVPNtVPNtVPOcMvOwo29enJIXLKVtnKZtGz9hMGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtL29in2yyK2cupy9znJkyVQ0tGz9hMD0XVPNtVPNtVPNtVPNtVPNtVPNtVPOcMvNao3OyoyfaVTyhVT1oW2Aio2gcMJcupvqqBt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtL29in2yyK2cupy9znJkyVQ0toIfaL29in2yynzSlW10hp3OfnKDbW29jMJ5oWlyoZI0hp3OfnKDbW10aXIfjKD0XVPNtVPNtVPNtVPNtVPNtVPNtVPOwo29enJIXLKVtCFOaMKEQo29enJIXLKVbL29in2yyK2cupy9znJkyXD0XVPNtVPNtVPNtVPNtVPNtVPNtVPOcMvOwo29enJIsnzSlK2McoTH6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOmLKMyD29in2yyFzSlXTAio2gcMHcupvjtL29in2yyK2cupy9znJkyXD0XVPNtVPNtVPNtVPNtVPNtVTIfnJLtW3AuqzIoWlOcovOgJlqwo29enJIdLKVaKGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtL29in2yyK2cupy9znJkyVQ0toIfaL29in2yynzSlW10hp3OfnKDbW3AuqzIoWlyoZI0hp3OfnKDbW10aXIfjKD0XVPNtVPNtVPNtVPNtVPNtVPNtVPOwo21joTI0MI9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tVPNtVPNtVPNtVPNtVPNtVPOypTS0qTIlovN9VTIjLKE0MKWhYzIhL29xMFtaqKEzBPpcVTyzVUAcrP5DJGZtMJkmMFOypTS0qTIlot0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUVtCFOlMF5mMJSlL2tbMKOuqUEypz4fVTkcozffVUWyYxyUGx9FEHAOH0HcQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtnJLtpwbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtMJ5wo2EcozptCFOlYzqlo3IjXQRcYzEyL29xMFtaqKEzBPpcVTyzVUAcrP5DJGZtMJkmMFOlYzqlo3IjXQRcQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtMJkmMGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtMKOuqUEypz4tCFOlWlpaCT1yqTSpplgwnTSlp2I0CIfvW10/XSgrVvp+KFfcWlpaQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVTIjLKE0MKWhVQ0tMKOuqUEypz4hMJ5wo2EyXPq1qTL4WlxtnJLtp2y4YyOMZlOyoUAyVTIjLKE0MKWhQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUVtCFOlMF5mMJSlL2tbMKOuqUEypz4fVTkcozffVUWyYxyUGx9FEHAOH0HcQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVTyzVUV6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOyozAiMTyhMlN9VUVhM3WiqKNbZFxhMTIwo2EyXPq1qTL4WlxtnJLtp2y4YyOMZlOyoUAyVUVhM3WiqKNbZFxAPt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtnJLtMJ5wo2EcozptnKZtoz90VR5iozH6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtoTyhnlN9VTkcozfhMTIwo2EyXTIhL29xnJ5aYzkiq2IlXPxfVTIlpz9lpm0anJqho3WyWlxAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOfnJ5eVQ0toTyhnl5yozAiMTHbW3I0Mwt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XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtpzI0qKWhVPpaYPOTLJkmMD0XVPNtVPNtVPNtVPNtVPNtVPNtVPOcMvOzo3WQo29enJIXLKWCozk5Bt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtpzI0qKWhVTAio2gcMHcupvNtVlOxolOho3EbnJ5aQDbtVPNtVPNtVPNtVPNtVPNtVPNtVTyzVPqfnKA0pzIjMJS0WlOcovOgBt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtoTymqUWypTIuqPN9VT1oW2kcp3ElMKOyLKDaKD0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtpzI0qKWhVTkcp3ElMKOyLKDfVTI2LJjbqzSfXFjtoFjtpzIaMKumYPOwo29enJIXLKVAPt0XVPNtVPNtVPNtVPNtVPNtVPNtVPO0pax6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO1pzjtCFO1pzjhpzIjoTSwMFu1VvExo3WyM2I4JlVtXlOeVPftVy0vYPO2LJjcQDbtVPNtVPNtVPNtVPNtVPNtVPNtVTI4L2IjqQbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUIloPN9VUIloP5lMKOfLJAyXPVxMT9lMJqyrSfvVPftnlNeVPWqVvjtqzSfYzEyL29xMFtvqKEzYGtvXFxAPvNtVPNtVPNtVPNtVPNtVPOyoUAyBt0XVPNtVPNtVPNtVPNtVPNtVPNtVPOcMvNaoTymqUWypTIuqPptnJ4toGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVTkcp3ElMKOyLKDtCFOgJlqfnKA0pzIjMJS0W10APvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUWyqPN9VUWyYzMcozEuoTjboIfaMKujpzImW10fVTkcozfcQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOlMKE1pz4toTymqUWypTIuqPjtpzI0YPOgYPOlMJqyrUZfVTAio2gcMHcupt0XQDbtVPNtVPNtVPNtVPNtVPNtVPNtVUMuoPN9VPpaQDbtVPNtVPNtVPNtVPNtVPNtVPNtVTyzVTkcozftVG0tWlp6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOlMJptCFOlMF5wo21jnJkyXT1oW2I4pUWyplq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'
god = '0gJycNCiAgICBkID0gJycNCiAgICBzVW5wYWNrZWQxID0gc3RyKF9fdW5wYWNrKHAxLCBhMSwgYzEsIGsxLCBlLCBkLCBpdGVyYXRpb24pKQ0KDQogICAgaWYgaXRlcmF0aW9uID49IHRvdGFsaXRlcmF0aW9uczoNCiAgICAgICAgcmV0dXJuIHNVbnBhY2tlZDENCiAgICBlbHNlOg0KICAgICAgICByZXR1cm4gdW5wYWNrKHNVbnBhY2tlZDEsIGl0ZXJhdGlvbiArIDEpDQoNCg0KZGVmIF9fdW5wYWNrKHAsIGEsIGMsIGssIGUsIGQsIGl0ZXJhdGlvbiwgdj0xKToNCiAgICB3aGlsZSAoYyA+PSAxKToNCiAgICAgICAgYyA9IGMgLSAxDQogICAgICAgIGlmIChrW2NdKToNCiAgICAgICAgICAgIGFhID0gc3RyKF9faXRvYU5ldyhjLCBhKSkNCiAgICAgICAgICAgIGlmIHYgPT0gMToNCiAgICAgICAgICAgICAgICBwID0gcmUuc3ViKCdcXGInICsgYWEgKyAnXFxiJywga1tjXSwgcCkgICMgVEhJUyBJUyBCbG9vZHkgc2xvdyENCiAgICAgICAgICAgIGVsc2U6DQogICAgICAgICAgICAgICAgcCA9IGZpbmRBbmRSZXBsYWNlV29yZChwLCBhYSwga1tjXSkNCiAgICByZXR1cm4gcA0KDQoNCiMgZnVuY3Rpb24gZXF1YWxhdmVudCB0byByZS5zdWIoJ1xcYicgKyBhYSArJ1xcYicsIGtbY10sIHApDQpkZWYgZmluZEFuZFJlcGxhY2VXb3JkKHNvdXJjZV9zdHIsIHdvcmRfdG9fZmluZCwgcmVwbGFjZV93aXRoKToNCiAgICBzcGxpdHMgPSBOb25lDQogICAgc3BsaXRzID0gc291cmNlX3N0ci5zcGxpdCh3b3JkX3RvX2ZpbmQpDQogICAgaWYgbGVuKHNwbGl0cykgPiAxOg0KICAgICAgICBuZXdfc3RyaW5nID0gW10NCiAgICAgICAgY3VycmVudF9pbmRleCA9IDANCiAgICAgICAgZm9yIGN1cnJlbnRfc3BsaXQgaW4gc3BsaXRzOg0KICAgICAgICAgICAgbmV3X3N0cmluZy5hcHBlbmQoY3VycmVudF9zcGxpdCkNCiAgICAgICAgICAgIHZhbCA9IHdvcmRfdG9fZmluZCAgIyBieSBkZWZhdWx0IGFzc3VtZSBpdCB3YXMgd3JvbmcgdG8gc3BsaXQNCg0KICAgICAgICAgICAgIyBpZiBpdHMgZmlyc3Qgb25lIGFuZCBpdGVtIGlzIGJsYW5rIHRoZW4gY2hlY2sgbmV4dCBpdGVtIGlzIHZhbGlkIG9yIG5vdA0KICAgICAgICAgICAgaWYgY3VycmVudF9pbmRleCA9PSBsZW4oc3BsaXRzKSAtIDE6DQogICAgICAgICAgICAgICAgdmFsID0gJycgICMgbGFzdCBvbmUgbm90aGluZyB0byBhcHBlbmQgbm9ybWFsbHkNCiAgICAgICAgICAgIGVsc2U6DQogICAgICAgICAgICAgICAgaWYgbGVuKGN1cnJlbnRfc3BsaXQpID09IDA6ICAjIGlmIGJsYW5rIGNoZWNrIG5leHQgb25lIHdpdGggY3VycmVudCBzcGxpdCB2YWx1ZQ0KICAgICAgICAgICAgICAgICAgICBpZiAobGVuKHNwbGl0c1tjdXJyZW50X2luZGV4ICsgMV0pID09IDAgYW5kIHdvcmRfdG9fZmluZFswXS5sb3dlcigpIG5vdCBpbiAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwXycpIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciAobGVuKHNwbGl0c1tjdXJyZW50X2luZGV4ICsgMV0pID4gMCBhbmQgc3BsaXRzW2N1cnJlbnRfaW5kZXggKyAxXVswXS5sb3dlcigpIG5vdCBpbiAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwXycpOiAgIyBmaXJzdCBqdXN0IGp1c3QgY2hlY2sgbmV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsID0gcmVwbGFjZV93aXRoDQogICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAgaWYgKHNwbGl0c1tjdXJyZW50X2luZGV4XVstMV0ubG93ZXIoKSBub3QgaW4gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MTIzNDU2Nzg5MF8nKSBcDQogICAgICAgICAgICAgICAgICAgICAgICBhbmQgKChsZW4oc3BsaXRzW2N1cnJlbnRfaW5kZXggKyAxXSkgPT0gMCBhbmQgd29yZF90b19maW5kWzBdLmxvd2VyKCkgbm90IGluICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejEyMzQ1Njc4OTBfJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgKGxlbihzcGxpdHNbY3VycmVudF9pbmRleCArIDFdKSA+IDAgYW5kIHNwbGl0c1tjdXJyZW50X2luZGV4ICsgMV1bMF0ubG93ZXIoKSBub3QgaW4gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MTIzNDU2Nzg5MF8nKSk6ICAjIGZpcnN0IGp1c3QganVzdCBjaGVjayBuZXh0DQogICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSByZXBsYWNlX3dpdGgNCg0KICAgICAgICAgICAgbmV3X3N0cmluZy5hcHBlbmQodmFsKQ0KICAgICAgICAgICAgY3VycmVudF9pbmRleCArPSAxDQoNCiAgICAgICAgc291cmNlX3N0ciA9ICcgJy5qb2luKG5ld19zdHJpbmcpDQogICAgcmV0dXJuIHNvdXJjZV9zdHINCg0KDQpkZWYgX19pdG9hKG51bSwgcmFkaXgpOg0KICAgIHJlc3VsdCA9ICIiDQogICAgaWYgbnVtID09IDA6DQogICAgICAgIHJldHVybiAnMCcNCiAgICB3aGlsZSBudW0gPiAwOg0KICAgICAgICByZXN1bHQgPSAiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IltudW0gJSByYWRpeF0gKyByZXN1bHQNCiAgICAgICAgbnVtID0gaW50KG51bSAvIHJhZGl4KQ0KICAgIHJldHVybiByZXN1bHQNCg0KDQpkZWYgX19pdG9hTmV3KGNjLCBhKToNCiAgICBhYSA9ICIiIGlmIGNjIDwgYSBlbHNlIF9faXRvYU5ldyhpbnQoY2MgLyBhKSwgYSkNCiAgICBjYyA9IChjYyAlIGEpDQogICAgYmIgPSBjaHIoY2MgKyAyOSkgaWYgY2MgPiAzNSBlbHNlIHN0cihfX2l0b2EoY2MsIDM2KSkNCiAgICByZXR1cm4gYWEgKyBiYg0KDQoNCmRlZiBnZXRDb29raWVzU3RyaW5nKGNvb2tpZUphcik6DQogICAgdHJ5Og0KICAgICAgICBjb29raWVTdHJpbmcgPSAiIg0KICAgICAgICBmb3IgaW5kZXgsIGNvb2tpZSBpbiBlbnVtZXJhdGUoY29va2llSmFyKToNCiAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSBjb29raWUubmFtZSArICI9IiArIGNvb2tpZS52YWx1ZSArICI7Ig0KICAgIGV4Y2VwdDoNCiAgICAgICAgcGFzcw0KDQogICAgcmV0dXJuIGNvb2tpZVN0cmluZw0KDQoNCmRlZiBzYXZlQ29va2llSmFyKGNvb2tpZUphciwgQ09PS0lFRklMRSk6DQogICAgdHJ5Og0KICAgICAgICBjb21wbGV0ZV9wYXRoID0gb3MucGF0aC5qb2luKHByb2ZpbGUsIENPT0tJRUZJTEUpDQogICAgICAgIGNvb2tpZUphci5zYXZlKGNvbXBsZXRlX3BhdGgsIGlnbm9yZV9kaXNjYXJkPVRydWUpDQogICAgZXhjZXB0Og0KICAgICAgICBwYXNzDQoNCg0KZGVmIGdldENvb2tpZUphcihDT09LSUVGSUxFKToNCiAgICBjb29raWVKYXIgPSBOb25lDQogICAgaWYgQ09PS0lFRklMRToNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgY29tcGxldGVfcGF0aCA9IG9zLnBhdGguam9pbihwcm9maWxlLCBDT09LSUVGSUxFKQ0KICAgICAgICAgICAgY29va2llSmFyID0gaHR0cF9jb29raWVqYXIuTFdQQ29va2llSmFyKCkNCiAgICAgICAgICAgIGNvb2tpZUphci5sb2FkKGNvbXBsZXRlX3BhdGgsIGlnbm9yZV9kaXNjYXJkPVRydWUpDQogICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgIGNvb2tpZUphciA9IE5vbmUNCg0KICAgIGlmIG5vdCBjb29raWVKYXI6DQogICAgICAgIGNvb2tpZUphciA9IGh0dHBfY29va2llamFyLkxXUENvb2tpZUphcigpDQoNCiAgICByZXR1cm4gY29va2llSmFyDQoNCg0KZGVmIGRvRXZhbChmdW5fY2FsbCwgcGFnZV9kYXRhLCBDb29raWVfSmFyLCBtKToNCiAgICBnbG9iYWwgcmV0X3ZhbA0KICAgIHJldF92YWwgPSAnJw0KICAgIGdsb2JhbHMoKVsicGFnZV9kYXRhIl0gPSBwYWdlX2RhdGENCiAgICBnbG9iYWxzKClbIkNvb2tpZV9KYXIiXSA9IENvb2tpZV9KYXINCiAgICBnbG9iYWxzKClbIm0iXSA9IG0NCg0KICAgIGlmIGZ1bmN0aW9uc19kaXIgbm90IGluIHN5cy5wYXRoOg0KICAgICAgICBzeXMucGF0aC5hcHBlbmQoZnVuY3Rpb25zX2RpcikNCiAgICB0cnk6DQogICAgICAgIHB5X2ZpbGUgPSAnaW1wb3J0ICcgKyBmdW5fY2FsbC5zcGxpdCgnLicpWzBdDQogICAgICAgIHNpeC5leGVjXyhweV9maWxlLCBnbG9iYWxzKCkpDQogICAgZXhjZXB0Og0KICAgICAgICAjIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3Rkb3V0KQ0KICAgICAgICBwYXNzDQogICAgc2l4LmV4ZWNfKCdyZXRfdmFsPScgKyBmdW5fY2FsbCwgZ2xvYmFscygpKQ0KICAgIHJldHVybiBzaXguZW5zdXJlX3N0cihyZXRfdmFsKQ0KDQoNCmRlZiBkb0V2YWxGdW5jdGlvbihmdW5fY2FsbCwgcGFnZV9kYXRhLCBDb29raWVfSmFyLCBtKToNCiAgICB0cnk6DQogICAgICAgIGdsb2JhbCBnTFNQcm9EeW5hbWljQ29kZU51bWJlcg0KICAgICAgICBnTFNQcm9EeW5hbWljQ29kZU51bWJlciA9IGdMU1Byb0R5bmFtaWNDb2RlTnVtYmVyICsgMQ0KICAgICAgICByZXRfdmFsID0gJycNCg0KICAgICAgICBpZiBmdW5jdGlvbnNfZGlyIG5vdCBpbiBzeXMucGF0aDoNCiAgICAgICAgICAgIHN5cy5wYXRoLmFwcGVuZChmdW5jdGlvbnNfZGlyKQ0KDQogICAgICAgIGZpbGVuYW1lID0gJ0xTUHJvZHluYW1pY0NvZGV7MH0ucHknLmZvcm1hdChnTFNQcm9EeW5hbWljQ29kZU51bWJlcikNCiAgICAgICAgZmlsZW5hbWV3aXRocGF0aCA9IG9zLnBhdGguam9pbihmdW5jdGlvbnNfZGlyLCBmaWxlbmFtZSkNCiAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWV3aXRocGF0aCwgIndiIikNCiAgICAgICAgZi53cml0ZShzaXguZW5zdXJlX2JpbmFyeSgiIyAtKi0gY29kaW5nOiB1dGYtOCAtKi1cbiIpKQ0KICAgICAgICBmLndyaXRlKGZ1bl9jYWxsLmVuY29kZSgidXRmLTgiKSkNCiAgICAgICAgZi5jbG9zZSgpDQoNCiAgICAgICAgTFNQcm9keW5hbWljQ29kZSA9IGltcG9ydF9ieV9zdHJpbmcoZmlsZW5hbWUuc3BsaXQoJy4nKVswXSwgZmlsZW5hbWV3aXRocGF0aCkNCiAgICAgICAgcmV0X3ZhbCA9IExTUHJvZHluYW1pY0NvZGUuR2V0TFNQcm9EYXRhKHBhZ2VfZGF0YSwgQ29va2llX0phciwgbSkNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgcmV0dXJuIHN0cihyZXRfdmFsKQ0KICAgICAgICBleGNlcHQ6DQogICAgICAgICAgICByZXR1cm4gcmV0X3ZhbA0KICAgIGV4Y2VwdDoNCiAgICAgICAgcGFzcw0KICAgICAgICAjIHRyYWNlYmFjay5wcmludF9leGMoKQ0KICAgIHJldHVybiAiIg0KDQoNCmRlZiBpbXBvcnRfYnlfc3RyaW5nKGZ1bGxfbmFtZSwgZmlsZW5hbWV3aXRocGF0aCk6DQogICAgdHJ5Og0KICAgICAgICBpbXBvcnQgaW1wb3J0bGliDQogICAgICAgIHJldHVybiBpbXBvcnRsaWIuaW1wb3J0X21vZHVsZShmdWxsX25hbWUsIHBhY2thZ2U9Tm9uZSkNCiAgICBleGNlcHQ6DQogICAgICAgIGltcG9ydCBpbXANCiAgICAgICAgcmV0dXJuIGltcC5sb2FkX3NvdXJjZShmdWxsX25hbWUsIGZpbGVuYW1ld2l0aHBhdGgpDQoNCg0KZGVmIGdldEdvb2dsZVJlY2FwdGNoYVJlc3BvbnNlKGNhcHRjaGFrZXksIGNqLCB0eXBlPTEpOiAgIyAxIGZvciBnZXQsIDIgZm9yIHBvc3QsIDMgZm9yIHJhd3Bvc3QNCiAgICByZWNhcENoYWxsZW5nZSA9ICIiDQogICAgc29sdXRpb24gPSAiIg0KICAgIGNhcHRjaGFfcmVsb2FkX3Jlc3BvbnNlX2NoYWxsID0gTm9uZQ0KICAgIHNvbHV0aW9uID0gTm9uZQ0KICAgIGlmIGxlbihjYXB0Y2hha2V5KSA+IDA6ICAjIG5ldyBzaGlueSBjYXB0Y2hhIQ0KICAgICAgICBjYXB0Y2hhX3VybCA9IGNhcHRjaGFrZXkNCiAgICAgICAgaWYgbm90IGNhcHRjaGFfdXJsLnN0YXJ0c3dpdGgoJ2h0dHAnKToNCiAgICAgICAgICAgIGNhcHRjaGFfdXJsID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS9jaGFsbGVuZ2U/az0nICsgY2FwdGNoYV91cmwgKyAnJmFqYXg9MScNCiAgICAgICAgY2FwX2NoYWxsX3JlZyA9ICdjaGFsbGVuZ2UuKj9cJyguKj8pXCcnDQogICAgICAgIGNhcF9pbWFnZV9yZWcgPSAnXCcoLio/KVwnJw0KICAgICAgICBjYXB0Y2hhX3NjcmlwdCA9IGdldFVybChjYXB0Y2hhX3VybCwgY29va2llSmFyPWNqKQ0KICAgICAgICByZWNhcENoYWxsZW5nZSA9IHJlLmZpbmRhbGwoY2FwX2NoYWxsX3JlZywgY2FwdGNoYV9zY3JpcHQpWzBdDQogICAgICAgIGNhcHRjaGFfcmVsb2FkID0gJ2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpL3JlbG9hZD9jPScNCiAgICAgICAgY2FwdGNoYV9rID0gY2FwdGNoYV91cmwuc3BsaXQoJ2s9JylbMV0NCiAgICAgICAgY2FwdGNoYV9yZWxvYWQgKz0gcmVjYXBDaGFsbGVuZ2UgKyAnJms9JyArIGNhcHRjaGFfayArICcmcmVhc29uPWkmdHlwZT1pbWFnZSZsYW5nPWVuJw0KICAgICAgICBjYXB0Y2hhX3JlbG9hZF9qcyA9IGdldFVybChjYXB0Y2hhX3JlbG9hZCwgY29va2llSmFyPWNqKQ0KICAgICAgICBjYXB0Y2hhX3JlbG9hZF9yZXNwb25zZV9jaGFsbCA9IHJlLmZpbmRhbGwoY2FwX2ltYWdlX3JlZywgY2FwdGNoYV9yZWxvYWRfanMpWzBdDQogICAgICAgIGNhcHRjaGFfaW1hZ2VfdXJsID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS9pbWFnZT9jPScgKyBjYXB0Y2hhX3JlbG9hZF9yZXNwb25zZV9jaGFsbA0KICAgICAgICBpZiBub3QgY2FwdGNoYV9pbWFnZV91cmwuc3RhcnRzd2l0aCgiaHR0cCIpOg0KICAgICAgICAgICAgY2FwdGNoYV9pbWFnZV91cmwgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpLycgKyBjYXB0Y2hhX2ltYWdlX3VybA0KICAgICAgICBpbXBvcnQgcmFuZG9tDQogICAgICAgIG4gPSByYW5kb20ucmFuZHJhbmdlKDEwMCwgMTAwMCwgNSkNCiAgICAgICAgbG9jYWxfY2FwdGNoYSA9IG9zLnBhdGguam9pbihwcm9maWxlLCBzdHIobikgKyAiY2FwdGNoYS5pbWciKQ0KICAgICAgICBsb2NhbEZpbGUgPSBvcGVuKGxvY2FsX2NhcHRjaGEsICJ3YiIpDQogICAgICAgIGxvY2FsRmlsZS53cml0ZShnZXRVcmwoY2FwdGNoYV9pbWFnZV91cmwsIGNvb2tpZUphcj1jaikpDQogICAgICAgIGxvY2FsRmlsZS5jbG9zZSgpDQogICAgICAgIHNvbHZlciA9IElucHV0V2luZG93KGNhcHRjaGE9bG9jYWxfY2FwdGNoYSkNCiAgICAgICAgc29sdXRpb24gPSBzb2x2ZXIuZ2V0KCkNCiAgICAgICAgb3MucmVtb3ZlKGxvY2FsX2NhcHRjaGEpDQoNCiAgICBpZiBjYXB0Y2hhX3JlbG9hZF9yZXNwb25zZV9jaGFsbDoNCiAgICAgICAgaWYgdHlwZSA9PSAxOg0KICAgICAgICAgICAgcmV0dXJuICdyZWNhcHRjaGFfY2hhbGxlbmdlX2ZpZWxkPScgKyB1cmxsaWJfcGFyc2UucXVvdGVfcGx1cyhjYXB0Y2hhX3JlbG9hZF9yZXNwb25zZV9jaGFsbCkgKyAnJnJlY2FwdGNoYV9yZXNwb25zZV9maWVsZD0nICsgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMoc29sdXRpb24pDQogICAgICAgIGVsaWYgdHlwZSA9PSAyOg0KICAgICAgICAgICAgcmV0dXJuICdyZWNhcHRjaGFfY2hhbGxlbmdlX2ZpZWxkOicgKyBjYXB0Y2hhX3JlbG9hZF9yZXNwb25zZV9jaGFsbCArICcscmVjYXB0Y2hhX3Jlc3BvbnNlX2ZpZWxkOicgKyBzb2x1dGlvbg0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgcmV0dXJuICdyZWNhcHRjaGFfY2hhbGxlbmdlX2ZpZWxkPScgKyB1cmxsaWJfcGFyc2UucXVvdGVfcGx1cyhjYXB0Y2hhX3JlbG9hZF9yZXNwb25zZV9jaGFsbCkgKyAnJnJlY2FwdGNoYV9yZXNwb25zZV9maWVsZD0nICsgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMoc29sdXRpb24pDQogICAgZWxzZToNCiAgICAgICAgcmV0dXJuICcnDQoNCg0KZGVmIGdldFVybCh1cmwsIGNvb2tpZUphcj1Ob25lLCBwb3N0PU5vbmUsIHRpbWVvdXQ9MjAsIGhlYWRlcnM9Tm9uZSwgbm9yZWRpcj1GYWxzZSk6DQogICAgY29va2llX2hhbmRsZXIgPSB1cmxsaWJfcmVxdWVzdC5IVFRQQ29va2llUHJvY2Vzc29yKGNvb2tpZUphcikNCg0KICAgIGlmIHBvc3QgaXMgbm90IE5vbmU6DQogICAgICAgIHBvc3QgPSBwb3N0LmVuY29kZSgndXRmLTgnKQ0KDQogICAgaWYgbm9yZWRpcjoNCiAgICAgICAgb3BlbmVyID0gdXJsbGliX3JlcXVlc3QuYnVpbGRfb3BlbmVyKE5vUmVkaXJlY3Rpb24sIGNvb2tpZV9oYW5kbGVyLCB1cmxsaWJfcmVxdWVzdC5IVFRQQmFzaWNBdXRoSGFuZGxlcigpLCB1cmxsaWJfcmVxdWVzdC5IVFRQSGFuZGxlcigpKQ0KICAgIGVsc2U6DQogICAgICAgIG9wZW5lciA9IHVybGxpYl9yZXF1ZXN0LmJ1aWxkX29wZW5lcihjb29raWVfaGFuZGxlciwgdXJsbGliX3JlcXVlc3QuSFRUUEJhc2ljQXV0aEhhbmRsZXIoKSwgdXJsbGliX3JlcXVlc3QuSFRUUEhhbmRsZXIoKSkNCg0KICAgIHJlcSA9IHVybGxpYl9yZXF1ZXN0LlJlcXVlc3QodXJsKQ0KICAgIHJlcS5hZGRfaGVhZGVyKCdVc2VyLUFnZW50JywgJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8zMy4wLjE3NTAuMTU0IFNhZmFyaS81MzcuMzYnKQ0KICAgIGlmIGhlYWRlcnM6DQogICAgICAgIGZvciBoLCBodiBpbiBoZWFkZXJzOg0KICAgICAgICAgICAgcmVxLmFkZF9oZWFkZXIoaCwgaHYpDQoNCiAgICByZXNwb25zZSA9IG9wZW5lci5vcGVuKHJlcSwgcG9zdCwgdGltZW91dD10aW1lb3V0KQ0KICAgIGxpbmsgPSByZXNwb25zZS5yZWFkKCkNCiAgICBlbmNvZGluZyA9IE5vbmUNCiAgICBjb250ZW50X3R5cGUgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJywgJycpDQogICAgaWYgJ2NoYXJzZXQ9JyBpbiBjb250ZW50X3R5cGU6DQogICAgICAgIGVuY29kaW5nID0gY29udGVudF90eXBlLnNwbGl0KCdjaGFyc2V0PScpWy0xXQ0KDQogICAgaWYgZW5jb2RpbmcgaXMgTm9uZToNCiAgICAgICAgZXBhdHRlcm4gPSByJzxtZXRhXHMraHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIlxzK2NvbnRlbnQ9Iig/Oi4rPyk7XHMrY2hhcnNldD0oLis/KSInDQogICAgICAgIGVwYXR0ZXJuID0gZXBhdHRlcm4uZW5jb2RlKCd1dGY4JykgaWYgc2l4LlBZMyBlbHNlIGVwYXR0ZXJuDQogICAgICAgIHIgPSByZS5zZWFyY2goZXBhdHRlcm4sIGxpbmssIHJlLklHTk9SRUNBU0UpDQogICAgICAgIGlmIHI6DQogICAgICAgICAgICBlbmNvZGluZyA9IHIuZ3JvdXAoMSkuZGVjb2RlKCd1dGY4JykgaWYgc2l4LlBZMyBlbHNlIHIuZ3JvdXAoMSkNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIGVwYXR0ZXJuID0gcicnJzxtZXRhXHMrY2hhcnNldD1bIiddPyhbXiInPl0rKScnJw0KICAgICAgICAgICAgZXBhdHRlcm4gPSBlcGF0dGVybi5lbmNvZGUoJ3V0ZjgnKSBpZiBzaXguUFkzIGVsc2UgZXBhdHRlcm4NCiAgICAgICAgICAgIHIgPSByZS5zZWFyY2goZXBhdHRlcm4sIGxpbmssIHJlLklHTk9SRUNBU0UpDQogICAgICAgICAgICBpZiByOg0KICAgICAgICAgICAgICAgIGVuY29kaW5nID0gci5ncm91cCgxKS5kZWNvZGUoJ3V0ZjgnKSBpZiBzaXguUFkzIGVsc2Ugci5ncm91cCgxKQ0KDQogICAgaWYgZW5jb2RpbmcgaXMgbm90IE5vbmU6DQogICAgICAgIGxpbmsgPSBsaW5rLmRlY29kZShlbmNvZGluZy5sb3dlcigpLCBlcnJvcnM9J2lnbm9yZScpDQogICAgICAgIGxpbmsgPSBsaW5rLmVuY29kZSgndXRmOCcpIGlmIHNpeC5QWTIgZWxzZSBsaW5rDQogICAgZWxzZToNCiAgICAgICAgbGluayA9IGxpbmsuZGVjb2RlKCdsYXRpbi0xJywgZXJyb3JzPSdpZ25vcmUnKSBpZiBzaXguUFkzIGVsc2UgbGluay5lbmNvZGUoJ3V0Zi04JykNCg0KICAgIHJlc3BvbnNlLmNsb3NlKCkNCiAgICByZXR1cm4gbGluaw0KDQoNCmRlZiBnZXRfZGVjb2RlKHN0ciwgcmVnPU5vbmUpOg0KICAgIGlmIHJlZzoNCiAgICAgICAgc3RyID0gcmUuZmluZGFsbChyZWcsIHN0cilbMF0NCiAgICBzMSA9IHVybGxpYl9wYXJzZS51bnF1b3RlKHN0clswOiBsZW4oc3RyKSAtIDFdKQ0KICAgIHQgPSAnJw0KICAgIGZvciBpIGluIHJhbmdlKGxlbihzMSkpOg0KICAgICAgICB0ICs9IGNocihvcmQoczFbaV0pIC0gczFbbGVuKHMxKSAtIDFdKQ0KICAgIHQgPSB1cmxsaWJfcGFyc2UudW5xdW90ZSh0KQ0KICAgIHJldHVybiB0DQoNCg0KZGVmIGphdmFzY3JpcHRVbkVzY2FwZShzdHIpOg0KICAgIGpzID0gcmUuZmluZGFsbChyJ3VuZXNjYXBlXChcJyguKj8pXCcnLCBzdHIpDQogICAgaWYganMgaXMgbm90IE5vbmUgYW5kIGxlbihqcykgPiAwOg0KICAgICAgICBmb3IgaiBpbiBqczoNCiAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKGosIHVybGxpYl9wYXJzZS51bnF1b3RlKGopKQ0KICAgIHJldHVybiBzdHINCg0KDQpkZWYgYXNrQ2FwdGNoYShtLCBodG1sX3BhZ2UsIGNvb2tpZUphcik6DQogICAgZ2xvYmFsIGlpZA0KICAgIGlpZCArPSAxDQogICAgZXhwcmUgPSBtWydleHByZXMnXQ0KICAgIHBhZ2VfdXJsID0gbVsncGFnZSddDQogICAgY2FwdGNoYV9yZWdleCA9IHJlLmNvbXBpbGUocidcJExpdmVTdHJlYW1DYXB0Y2hhXFsoW15cXV0qKVxdJykuZmluZGFsbChleHByZSlbMF0NCg0KICAgIGNhcHRjaGFfdXJsID0gcmUuY29tcGlsZShjYXB0Y2hhX3JlZ2V4KS5maW5kYWxsKGh0bWxfcGFnZSlbMF0NCg0KICAgIGlmIG5vdCBjYXB0Y2hhX3VybC5zdGFydHN3aXRoKCJodHRwIik6DQogICAgICAgIHBhZ2VfID0gJ2h0dHA6Ly8nICsgIiIuam9pbihwYWdlX3VybC5zcGxpdCgnLycpWzI6M10pDQogICAgICAgIGlmIGNhcHRjaGFfdXJsLnN0YXJ0c3dpdGgoIi8iKToNCiAgICAgICAgICAgIGNhcHRjaGFfdXJsID0gcGFnZV8gKyBjYXB0Y2hhX3VybA0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgY2FwdGNoYV91cmwgPSBwYWdlXyArICcvJyArIGNhcHRjaGFfdXJsDQoNCiAgICBsb2NhbF9jYXB0Y2hhID0gb3MucGF0aC5qb2luKHByb2ZpbGUsIHN0cihpaWQpICsgImNhcHRjaGEuanBnIikNCiAgICBsb2NhbEZpbGUgPSBvcGVuKGxvY2FsX2NhcHRjaGEsICJ3YiIpDQoNCiAgICByZXEgPSB1cmxsaWJfcmVxdWVzdC5SZXF1ZXN0KGNhcHRjaGFfdXJsKQ0KICAgIHJlcS5hZGRfaGVhZGVyKCdVc2VyLUFnZW50JywgJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgcnY6MTQuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xNC4wLjEnKQ0KICAgIGlmICdyZWZlcmVyJyBpbiBtOg0KICAgICAgICByZXEuYWRkX2hlYWRlcignUmVmZXJlcicsIG1bJ3JlZmVyZXInXSkNCiAgICBpZiAnYWdlbnQnIGluIG06DQogICAgICAgIHJlcS5hZGRfaGVhZGVyKCdVc2VyLWFnZW50JywgbVsnYWdlbnQnXSkNCiAgICBpZiAnc2V0Y29va2llJyBpbiBtOg0KICAgICAgICByZXEuYWRkX2hlYWRlcignQ29va2llJywgbVsnc2V0Y29va2llJ10pDQoNCiAgICB1cmxsaWJfcmVxdWVzdC51cmxvcGVuKHJlcSkNCiAgICByZXNwb25zZSA9IHVybGxpYl9yZXF1ZXN0LnVybG9wZW4ocmVxKQ0KICAgIGxpbmsgPSByZXNwb25zZS5yZWFkKCkNCiAgICBlbmNvZGluZyA9IE5vbmUNCiAgICBjb250ZW50X3R5cGUgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJywgJycpDQogICAgaWYgJ2NoYXJzZXQ9JyBpbiBjb250ZW50X3R5cGU6DQogICAgICAgIGVuY29kaW5nID0gY29udGVudF90eXBlLnNwbGl0KCdjaGFyc2V0PScpWy0xXQ0KDQogICAgaWYgZW5jb2RpbmcgaXMgTm9uZToNCiAgICAgICAgZXBhdHRlcm4gPSByJzxtZXRhXHMraHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIlxzK2NvbnRlbnQ9Iig/Oi4rPyk7XHMrY2hhcnNldD0oLis/KSInDQogICAgICAgIGVwYXR0ZXJuID0gZXBhdHRlcm4uZW5jb2RlKCd1dGY4JykgaWYgc2l4LlBZMyBlbHNlIGVwYXR0ZXJuDQogICAgICAgIHIgPSByZS5zZWFyY2goZXBhdHRlcm4sIGxpbmssIHJlLklHTk9SRUNBU0UpDQogICAgICAgIGlmIHI6DQogICAgICAgICAgICBlbmNvZGluZyA9IHIuZ3JvdXAoMSkuZGVjb2RlKCd1dGY4JykgaWYgc2l4LlBZMyBlbHNlIHIuZ3JvdXAoMSkNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIGVwYXR0ZXJuID0gcicnJzxtZXRhXHMrY2hhcnNldD1bIiddPyhbXiInPl0rKScnJw0KICAgICAgICAgICAgZXBhdHRlcm4gPSBlcGF0dGVybi5lbmNvZGUoJ3V0ZjgnKSBpZiBzaXguUFkzIGVsc2UgZXBhdHRlcm4NCiAgICAgICAgICAgIHIgPSByZS5zZWFyY2goZXBhdHRlcm4sIGxpbmssIHJlLklHTk9SRUNBU0UpDQogICAgICAgICAgICBpZiByOg0KICAgICAgICAgICAgICAgIGVuY29kaW5nID0gci5ncm91cCgxKS5kZWNvZGUoJ3V0ZjgnKSBpZiBzaXguUFkzIGVsc2Ugci5ncm91cCgxKQ0KDQogICAgaWYgZW5jb2RpbmcgaXMgbm90IE5vbmU6DQogICAgICAgIGxpbmsgPSBsaW5rLmRlY29kZShlbmNvZGluZy5sb3dlcigpLCBlcnJvcnM9J2lnbm9yZScpDQogICAgICAgIGxpbmsgPSBsaW5rLmVuY29kZSgndXRmOCcpIGlmIHNpeC5QWTIgZWxzZSBsaW5rDQogICAgZWxzZToNCiAgICAgICAgbGluayA9IGxpbmsuZGVjb2RlKCdsYXRpbi0xJywgZXJyb3JzPSdpZ25vcmUnKSBpZiBzaXguUFkzIGVsc2UgbGluay5lbmNvZGUoJ3V0Zi04JykNCg0KICAgIGxvY2FsRmlsZS53cml0ZShsaW5rKQ0KICAgIHJlc3BvbnNlLmNsb3NlKCkNCiAgICBsb2NhbEZpbGUuY2xvc2UoKQ0KICAgIHNvbHZlciA9IElucHV0V2luZG93KGNhcHRjaGE9bG9jYWxfY2FwdGNoYSkNCiAgICBzb2x1dGlvbiA9IHNvbHZlci5nZXQoKQ0KICAgIHJldHVybiBzb2x1dGlvbg0KDQoNCmRlZiBhc2tDYXB0Y2hhTmV3KGltYWdlcmVnZXgsIGh0bWxfcGFnZSwgY29va2llSmFyLCBtKToNCiAgICBnbG9iYWwgaWlkDQogICAgaWlkICs9IDENCg0KICAgIGlmIGltYWdlcmVnZXggIT0gJyc6DQogICAgICAgIGlmIGh0bWxfcGFnZS5zdGFydHN3aXRoKCJodHRwIik6DQogICAgICAgICAgICBwYWdlXyA9IGdldFVybChodG1sX3BhZ2UsIGNvb2tpZUphcj1jb29raWVKYXIpDQogICAgICAgIGVsc2U6DQogICAgICAgICAgICBwYWdlXyA9IGh0bWxfcGFnZQ0KICAgICAgICBjYXB0Y2hhX3VybCA9IHJlLmNvbXBpbGUoaW1hZ2VyZWdleCkuZmluZGFsbChwYWdlXylbMF0NCiAgICBlbHNlOg0KICAgICAgICBjYXB0Y2hhX3VybCA9IGh0bWxfcGFnZQ0KDQogICAgbG9jYWxfY2FwdGNoYSA9IG9zLnBhdGguam9pbihwcm9maWxlLCBzdHIoaWlkKSArICJjYXB0Y2hhLmpwZyIpDQogICAgbG9jYWxGaWxlID0gb3Blbihsb2NhbF9jYXB0Y2hhLCAid2IiKQ0KDQogICAgcmVxID0gdXJsbGliX3JlcXVlc3QuUmVxdWVzdChjYXB0Y2hhX3VybCkNCiAgICByZXEuYWRkX2hlYWRlcignVXNlci1BZ2VudCcsICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IHJ2OjE0LjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvMTQuMC4xJykNCiAgICBpZiAncmVmZXJlcicgaW4gbToNCiAgICAgICAgcmVxLmFkZF9oZWFkZXIoJ1JlZmVyZXInLCBtWydyZWZlcmVyJ10pDQogICAgaWYgJ2FnZW50JyBpbiBtOg0KICAgICAgICByZXEuYWRkX2hlYWRlcignVXNlci1hZ2VudCcsIG1bJ2FnZW50J10pDQogICAgaWYgJ2FjY2VwdCcgaW4gbToNCiAgICAgICAgcmVxLmFkZF9oZWFkZXIoJ0FjY2VwdCcsIG1bJ2FjY2VwdCddKQ0KICAgIGlmICdzZXRjb29raWUnIGluIG06DQogICAgICAgIHJlcS5hZGRfaGVhZGVyKCdDb29raWUnLCBtWydzZXRjb29raWUnXSkNCg0KICAgIHJlc3BvbnNlID0gdXJsbGliX3JlcXVlc3QudXJsb3BlbihyZXEpDQogICAgbGluayA9IHJlc3BvbnNlLnJlYWQoKQ0KICAgIGVuY29kaW5nID0gTm9uZQ0KICAgIGNvbnRlbnRfdHlwZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnLCAnJykNCiAgICBpZiAnY2hhcnNldD0nIGluIGNvbnRlbnRfdHlwZToNCiAgICAgICAgZW5jb2RpbmcgPSBjb250ZW50X3R5cGUuc3BsaXQoJ2NoYXJzZXQ9JylbLTFdDQoNCiAgICBpZiBlbmNvZGluZyBpcyBOb25lOg0KICAgICAgICBlcGF0dGVybiA9IHInPG1ldGFccytodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiXHMrY29udGVudD0iKD86Lis/KTtccytjaGFyc2V0PSguKz8pIicNCiAgICAgICAgZXBhdHRlcm4gPSBlcGF0dGVybi5lbmNvZGUoJ3V0ZjgnKSBpZiBzaXguUFkzIGVsc2UgZXBhdHRlcm4NCiAgICAgICAgciA9IHJlLnNlYXJjaChlcGF0dGVybiwgbGluaywgcmUuSUdOT1JFQ0FTRSkNCiAgICAgICAgaWYgcjoNCiAgICAgICAgICAgIGVuY29kaW5nID0gci5ncm91cCgxKS5kZWNvZGUoJ3V0ZjgnKSBpZiBzaXguUFkzIGVsc2Ugci5ncm91cCgxKQ0KICAgICAgICBlbHNlOg0KICAgICAgICAgICAgZXBhdHRlcm4gPSByJycnPG1ldGFccytjaGFyc2V0PVsiJ10/KFteIic+XSspJycnDQogICAgICAgICAgICBlcGF0dGVybiA9IGVwYXR0ZXJuLmVuY29kZSgndXRmOCcpIGlmIHNpeC5QWTMgZWxzZSBlcGF0dGVybg0KICAgICAgICAgICAgciA9IHJlLnNlYXJjaChlcGF0dGVybiwgbGluaywgcmUuSUdOT1JFQ0FTRSkNCiAgICAgICAgICAgIGlmIHI6DQogICAgICAgICAgICAgICAgZW5jb2RpbmcgPSByLmdyb3VwKDEpLmRlY29kZSgndXRmOCcpIGlmIHNpeC5QWTMgZWxzZSByLmdyb3VwKDEpDQoNCiAgICBpZiBlbmNvZGluZyBpcyBub3QgTm9uZToNCiAgICAgICAgbGluayA9IGxpbmsuZGVjb2RlKGVuY29kaW5nLmxvd2VyKCksIGVycm9ycz0naWdub3JlJykNCiAgICAgICAgbGluayA9IGxpbmsuZW5jb2RlKCd1dGY4JykgaWYgc2l4LlBZMiBlbHNlIGxpbmsNCiAgICBlbHNlOg0KICAgICAgICBsaW5rID0gbGluay5kZWNvZGUoJ2xhdGluLTEnLCBlcnJvcnM9J2lnbm9yZScpIGlmIHNpeC5QWTMgZWxzZSBsaW5rLmVuY29kZSgndXRmLTgnKQ0KDQogICAgbG9jYWxGaWxlLndyaXRlKGxpbmspDQogICAgcmVzcG9uc2UuY2xvc2UoKQ0KICAgIGxvY2FsRmlsZS5jbG9zZSgpDQogICAgc29sdmVyID0gSW5wdXRXaW5kb3coY2FwdGNoYT1sb2NhbF9jYXB0Y2hhKQ0KICAgIHNvbHV0aW9uID0gc29sdmVyLmdldCgpDQogICAgcmV0dXJuIHNvbHV0aW9uDQoNCg0KZGVmIFRha2VJbnB1dChuYW1lLCBoZWFkbmFtZSk6DQogICAga2IgPSB4Ym1jLktleWJvYXJkKCdkZWZhdWx0JywgJ2hlYWRpbmcnLCBUcnVlKQ0KICAgIGtiLnNldERlZmF1bHQobmFtZSkNCiAgICBrYi5zZXRIZWFkaW5nKGhlYWRuYW1lKQ0KICAgIGtiLnNldEhpZGRlbklucHV0KEZhbHNlKQ0KICAgIHJldHVybiBrYi5nZXRUZXh0KCkNCg0KDQpjbGFzcyBJbnB1dFdpbmRvdyh4Ym1jZ3VpLldpbmRvd0RpYWxvZyk6DQogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6DQogICAgICAgIHNlbGYuY3B0bG9jID0ga3dhcmdzLmdldCgnY2FwdGNoYScpDQogICAgICAgIHNlbGYuaW1nID0geGJtY2d1aS5Db250cm9sSW1hZ2UoMzM1LCAzMCwgNjI0LCA2MCwgc2VsZi5jcHRsb2MpDQogICAgICAgIHNlbGYuYWRkQ29udHJvbChzZWxmLmltZykNCiAgICAgICAgc2VsZi5rYmQgPSB4Ym1jLktleWJvYXJkKCkNCg0KICAgIGRlZiBnZXQoc2VsZik6DQogICAgICAgIHNlbGYuc2hvdygpDQogICAgICAgIHRpbWUuc2xlZXAoMikNCiAgICAgICAgc2VsZi5rYmQuZG9Nb2RhbCgpDQogICAgICAgIGlmIChzZWxmLmtiZC5pc0NvbmZpcm1lZCgpKToNCiAgICAgICAgICAgIHRleHQgPSBzZWxmLmtiZC5nZXRUZXh0KCkNCiAgICAgICAgICAgIHNlbGYuY2xvc2UoKQ0KICAgICAgICAgICAgcmV0dXJuIHRleHQNCiAgICAgICAgc2VsZi5jbG9zZSgpDQogICAgICAgIHJldHVybiBGYWxzZQ0KDQoNCmRlZiBnZXRFcG9jVGltZSgpOg0KICAgIHJldHVybiBzdHIoaW50KHRpbWUudGltZSgpICogMTAwMCkpDQoNCg0KZGVmIGdldEVwb2NUaW1lMigpOg0KICAgIHJldHVybiBzdHIoaW50KHRpbWUudGltZSgpKSkNCg0KDQpkZWYgZ2V0X3BhcmFtcygpOg0KICAgIHBhcmFtID0gW10NCiAgICBwYXJhbXN0cmluZyA9IHN5cy5hcmd2WzJdDQogICAgaWYgbGVuKHBhcmFtc3RyaW5nKSA+PSAyOg0KICAgICAgICBwYXJhbXMgPSBzeXMuYXJndlsyXQ0KICAgICAgICBjbGVhbmVkcGFyYW1zID0gcGFyYW1zLnJlcGxhY2UoJz8nLCAnJykNCiAgICAgICAgaWYgKHBhcmFtc1tsZW4ocGFyYW1zKSAtIDFdID09ICcvJyk6DQogICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXNbMDpsZW4ocGFyYW1zKSAtIDJdDQogICAgICAgIHBhaXJzb2ZwYXJhbXMgPSBjbGVhbmVkcGFyYW1zLnNwbGl0KCcmJykNCiAgICAgICAgcGFyYW0gPSB7fQ0KICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4ocGFpcnNvZnBhcmFtcykpOg0KICAgICAgICAgICAgc3BsaXRwYXJhbXMgPSB7fQ0KICAgICAgICAgICAgc3BsaXRwYXJhbXMgPSBwYWlyc29mcGFyYW1zW2ldLnNwbGl0KCc9JykNCiAgICAgICAgICAgIGlmIChsZW4oc3BsaXRwYXJhbXMpKSA9PSAyOg0KICAgICAgICAgICAgICAgIHBhcmFtW3NwbGl0cGFyYW1zWzBdXSA9IHNwbGl0cGFyYW1zWzFdDQogICAgcmV0dXJuIHBhcmFtDQoNCg0KZGVmIGdldEZhdm9yaXRlcygpOg0KICAgIGl0ZW1zID0ganNvbi5sb2FkcyhvcGVuKGZhdm9yaXRlcykucmVhZCgpKQ0KICAgIHRvdGFsID0gbGVuKGl0ZW1zKQ0KICAgIGZvciBpIGluIGl0ZW1zOg0KICAgICAgICBuYW1lID0gaVswXQ0KICAgICAgICB1cmwgPSBpWzFdDQogICAgICAgIGljb25pbWFnZSA9IGlbMl0NCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgZmFuQXJ0ID0gaVszXQ0KICAgICAgICAgICAgaWYgZmFuQXJ0IGlzIE5vbmU6DQogICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCkNCiAgICAgICAgZXhjZXB0Og0KICAgICAgICAgICAgaWYgYWRkb24uZ2V0U2V0dGluZygndXNlX3RodW1iJykgPT0gInRydWUiOg0KICAgICAgICAgICAgICAgIGZhbkFydCA9IGljb25pbWFnZQ0KICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICBmYW5BcnQgPSBmYW5hcnQNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgcGxheWxpc3QgPSBpWzVdDQogICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgIHBsYXlsaXN0ID0gTm9uZQ0KICAgICAgICB0cnk6DQogICAgICAgICAgICByZWdleHMgPSBpWzZdDQogICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgIHJlZ2V4cyA9IE5vbmUNCg0KICAgICAgICBpZiBpWzRdID09IDA6DQogICAgICAgICAgICBhZGRMaW5rKHVybCwgbmFtZSwgaWNvbmltYWdlLCBmYW5BcnQsICcnLCAnJywgJycsICdmYXYnLCBwbGF5bGlzdCwgcmVnZXhzLCB0b3RhbCkNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIGFkZERpcihuYW1lLCB1cmwsIGlbNF0sIGljb25pbWFnZSwgZmFuYXJ0LCAnJywgJycsICcnLCAnJywgJ2ZhdicpDQoNCg0KZGVmIGFkZEZhdm9yaXRlKG5hbWUsIHVybCwgaWNvbmltYWdlLCBmYW5hcnQsIG1vZGUsIHBsYXlsaXN0PU5vbmUsIHJlZ2V4cz1Ob25lKToNCiAgICBmYXZMaXN0ID0gW10NCiAgICB0cnk6DQogICAgICAgICMgc2VlbXMgdGhhdCBhZnRlcg0KICAgICAgICBuYW1lID0gbmFtZS5lbmNvZGUoJ3V0Zi04JywgJ2lnbm9yZScpIGlmIHNpeC5QWTIgZWxzZSBuYW1lDQogICAgZXhjZXB0Og0KICAgICAgICBwYXNzDQogICAgaWYgb3MucGF0aC5leGlzdHMoZmF2b3JpdGVzKSBpcyBGYWxzZToNCiAgICAgICAgYWRkb25fbG9nKCdNYWtpbmcgRmF2b3JpdGVzIEZpbGUnKQ0KICAgICAgICBmYXZMaXN0LmFwcGVuZCgobmFtZSwgdXJsLCBpY29uaW1hZ2UsIGZhbmFydCwgbW9kZSwgcGxheWxpc3QsIHJlZ2V4cykpDQogICAgICAgIGEgPSBvcGVuKGZhdm9yaXRlcywgInciKQ0KICAgICAgICBhLndyaXRlKGpzb24uZHVtcHMoZmF2TGlzdCkpDQogICAgICAgIGEuY2xvc2UoKQ0KICAgIGVsc2U6DQogICAgICAgIGFkZG9uX2xvZygnQXBwZW5kaW5nIEZhdm9yaXRlcycpDQogICAgICAgIGEgPSBvcGVuKGZhdm9yaXRlcykucmVhZCgpDQogICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKGEpDQogICAgICAgIGRhdGEuYXBwZW5kKChuYW1lLCB1cmwsIGljb25pbWFnZSwgZmFuYXJ0LCBtb2RlKSkNCiAgICAgICAgYiA9IG9wZW4oZmF2b3JpdGVzLCAidyIpDQogICAgICAgIGIud3JpdGUoanNvbi5kdW1wcyhkYXRhKSkNCiAgICAgICAgYi5jbG9zZSgpDQoNCg0KZGVmIHJtRmF2b3JpdGUobmFtZSk6DQogICAgZGF0YSA9IGpzb24ubG9hZHMob3BlbihmYXZvcml0ZXMpLnJlYWQoKSkNCiAgICBmb3IgaW5kZXggaW4gcmFuZ2UobGVuKGRhdGEpKToNCiAgICAgICAgaWYgZGF0YVtpbmRleF1bMF0gPT0gbmFtZToNCiAgICAgICAgICAgIGRlbCBkYXRhW2luZGV4XQ0KICAgICAgICAgICAgYiA9IG9wZW4oZmF2b3JpdGVzLCAidyIpDQogICAgICAgICAgICBiLndyaXRlKGpzb24uZHVtcHMoZGF0YSkpDQogICAgICAgICAgICBiLmNsb3NlKCkNCiAgICAgICAgICAgIGJyZWFrDQogICAgeGJtYy5leGVjdXRlYnVpbHRpbigiWEJNQy5Db250YWluZXIuUmVmcmVzaCIpDQoNCg0KZGVmIHVybHNvbHZlcih1cmwpOg0KICAgIHRyeToNCiAgICAgICAgaW1wb3J0IHJlc29sdmV1cmwNCiAgICBleGNlcHQ6DQogICAgICAgIGltcG9ydCB1cmxyZXNvbHZlciBhcyByZXNvbHZldXJsDQoNCiAgICBpZiByZXNvbHZldXJsLkhvc3RlZE1lZGlhRmlsZSh1cmwpLnZhbGlkX3VybCgpOg0KICAgICAgICByZXNvbHZlZCA9IHJlc29sdmV1cmwucmVzb2x2ZSh1cmwpDQogICAgZWxzZToNCiAgICAgICAgeGJtY2d1aS5EaWFsb2coKS5ub3RpZmljYXRpb24oYWRkb25fbmFtZSwgJ1Jlc29sdmVVcmwgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGRvbWFpbi4nLCBpY29uLCA1MDAwLCBGYWxzZSkNCiAgICAgICAgcmVzb2x2ZWQgPSB1cmwNCiAgICByZXR1cm4gcmVzb2x2ZWQNCg0KDQpkZWYgdHJ5cGxheSh1cmwsIGxpc3RpdGVtLCBwZGlhbG9ndWU9Tm9uZSk6DQogICAgaWYgdXJsLmxvd2VyKCkuc3RhcnRzd2l0aCgncGx1Z2luJykgYW5kICd5b3V0dWJlJyBub3QgaW4gdXJsLmxvd2VyKCk6DQogICAgICAgIHhibWMuZXhlY3V0ZWJ1aWx0aW4oJ1J1blBsdWdpbignICsgdXJsICsgJyknKQ0KICAgICAgICBmb3IgaSBpbiByYW5nZSg4KToNCiAgICAgICAgICAgIHhibWMuc2xlZXAoNTAwKSAgIyBzbGVlcCBmb3IgMTAgc2Vjb25kcywgaGFsZiBlYWNoIHRpbWUNCiAgICAgICAgICAgIHRyeToNCiAgICAgICAgICAgICAgICBpZiB4Ym1jLmdldENvbmRWaXNpYmlsaXR5KCJQbGF5ZXIuSGFzTWVkaWEiKSBhbmQgeGJtYy5QbGF5ZXIoKS5pc1BsYXlpbmcoKToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUNCiAgICAgICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgICAgICBwYXNzDQogICAgICAgIHJldHVybiBGYWxzZQ0KDQogICAgaW1wb3J0IEN1c3RvbVBsYXllcg0KICAgIHBsYXllciA9IEN1c3RvbVBsYXllci5NeVhCTUNQbGF5ZXIoKQ0KICAgIHBsYXllci5wZGlhbG9ndWUgPSBwZGlhbG9ndWUNCiAgICBiZWZvcmVzdGFydCA9IHRpbWUudGltZSgpDQogICAgcGxheWVyLnBsYXkodXJsLCBsaXN0aXRlbSkNCiAgICB4Ym1jLnNsZWVwKDEwMDApDQoNCiAgICB0cnk6DQogICAgICAgIHdoaWxlIHBsYXllci5pc19hY3RpdmU6DQogICAgICAgICAgICB4Ym1jLnNsZWVwKDQwMCkNCiAgICAgICAgICAgIGlmIHBsYXllci51cmxwbGF5ZWQ6DQogICAgICAgICAgICAgICAgcmV0dXJuIFRydWUNCiAgICAgICAgICAgIGlmIHRpbWUudGltZSgpIC0gYmVmb3Jlc3RhcnQgPiA0Og0KICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQ0KICAgIGV4Y2VwdDoNCiAgICAgICAgcGFzcw0KICAgIHJldHVybiBGYWxzZQ0KDQoNCmRlZiBwbGF5X3BsYXlsaXN0KG5hbWUsIG11X3BsYXlsaXN0LCBxdWV1ZVZpZGVvPU5vbmUpOg0KICAgIHBsYXlsaXN0ID0geGJtYy5QbGF5TGlzdCh4Ym1jLlBMQVlMSVNUX1ZJREVPKQ0KICAgIGlmICckJExTUGxheU9ubHlPbmUkJCcgaW4gbXVfcGxheWxpc3RbMF06DQogICAgICAgIG11X3BsYXlsaXN0WzBdID0gbXVfcGxheWxpc3RbMF0ucmVwbGFjZSgnJCRMU1BsYXlPbmx5T25lJCQnLCAnJykNCiAgICAgICAgbmFtZXMgPSBbXQ0KICAgICAgICBpbG9vcCA9IDANCiAgICAgICAgcHJvZ3Jlc3MgPSB4Ym1jZ3VpLkRpYWxvZ1Byb2dyZXNzKCkNCiAgICAgICAgcHJvZ3Jlc3MuY3JlYXRlKCdQcm9ncmVzcycsICdUcnlpbmcgTXVsdGlwbGUgTGlua3MnKQ0KICAgICAgICBmb3IgaSBpbiBtdV9wbGF5bGlzdDoNCiAgICAgICAgICAgIGlmICckJGxzbmFtZT0nIGluIGk6DQogICAgICAgICAgICAgICAgZF9uYW1lID0gaS5zcGxpdCgnJCRsc25hbWU9JylbMV0uc3BsaXQoJyZyZWdleHMnKVswXQ0KICAgICAgICAgICAgICAgIG5hbWVzLmFwcGVuZChkX25hbWUpDQogICAgICAgICAgICAgICAgbXVfcGxheWxpc3RbaWxvb3BdID0gaS5zcGxpdCgnJCRsc25hbWU9JylbMF0gKyAoJyZyZWdleHMnICsgaS5zcGxpdCgnJnJlZ2V4cycpWzFdIGlmICcmcmVnZXhzJyBpbiBpIGVsc2UgJycpDQogICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgIGRfbmFtZSA9IHVybGxpYl9wYXJzZS51cmxwYXJzZShpKS5uZXRsb2MNCiAgICAgICAgICAgICAgICBpZiBkX25hbWUgPT0gJyc6DQogICAgICAgICAgICAgICAgICAgIG5hbWVzLmFwcGVuZChuYW1lKQ0KICAgICAgICAgICAgICAgIGVsc2U6DQogICAgICAgICAgICAgICAgICAgIG5hbWVzLmFwcGVuZChkX25hbWUpDQogICAgICAgICAgICBpbmRleCA9IGlsb29wDQogICAgICAgICAgICBpbG9vcCArPSAxDQoNCiAgICAgICAgICAgIHBsYXluYW1lID0gbmFtZXNbaW5kZXhdDQogICAgICAgICAgICBpZiBwcm9ncmVzcy5pc2NhbmNlbGVkKCk6DQogICAgICAgICAgICAgICAgcmV0dXJuDQogICAgICAgICAgICBwcm9ncmVzcy51cGRhdGUoaWxvb3AgLyBsZW4obXVfcGxheWxpc3QpICogMTAwLCAiIiwgIkxpbmsjJWQiICUgKGlsb29wKSwgcGxheW5hbWUpDQoNCiAgICAgICAgICAgIGlmICImbW9kZT0xOSIgaW4gbXVfcGxheWxpc3RbaW5kZXhdOg0KICAgICAgICAgICAgICAgIGxpeiA9IHhibWNndWkuTGlzdEl0ZW0ocGxheW5hbWUpDQogICAgICAgICAgICAgICAgbGl6LnNldEFydCh7J3RodW1iJzogaWNvbmltYWdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29uJzogaWNvbmltYWdlfSkNCiAgICAgICAgICAgICAgICBsaXouc2V0SW5mbyh0eXBlPSdWaWRlbycsIGluZm9MYWJlbHM9eydUaXRsZSc6IHBsYXluYW1lLCAnbWVkaWF0eXBlJzogJ3ZpZGVvJ30pDQogICAgICAgICAgICAgICAgbGl6LnNldFByb3BlcnR5KCJJc1BsYXlhYmxlIiwgInRydWUiKQ0KICAgICAgICAgICAgICAgIHVybHRvcGxheSA9IHVybHNvbHZlcihtdV9wbGF5bGlzdFtpbmRleF0ucmVwbGFjZSgnJm1vZGU9MTknLCAnJykucmVwbGFjZSgnOycsICcnKSkNCiAgICAgICAgICAgICAgICBsaXouc2V0UGF0aCh1cmx0b3BsYXkpDQogICAgICAgICAgICAgICAgcGxheWVkID0gdHJ5cGxheSh1cmx0b3BsYXksIGxpeikNCiAgICAgICAgICAgIGVsaWYgIiRkb3JlZ2V4IiBpbiBtdV9wbGF5bGlzdFtpbmRleF06DQogICAgICAgICAgICAgICAgc2VwYXRlID0gbXVfcGxheWxpc3RbaW5kZXhdLnNwbGl0KCcmcmVnZXhzPScpDQogICAgICAgICAgICAgICAgdXJsLCBzZXRyZXNvbHZlZCA9IGdldFJlZ2V4UGFyc2VkKHNlcGF0ZVsxXSwgc2VwYXRlWzBdKQ0KICAgICAgICAgICAgICAgIHVybDIgPSB1cmwucmVwbGFjZSgnOycsICcnKQ0KICAgICAgICAgICAgICAgIGxpeiA9IHhibWNndWkuTGlzdEl0ZW0ocGxheW5hbWUpDQogICAgICAgICAgICAgICAgbGl6LnNldEFydCh7J3RodW1iJzogaWNvbmltYWdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29uJzogaWNvbmltYWdlfSkNCiAgICAgICAgICAgICAgICBsaXouc2V0SW5mbyh0eXBlPSdWaWRlbycsIGluZm9MYWJlbHM9eydUaXRsZSc6IHBsYXluYW1lLCAnbWVkaWF0eXBlJzogJ3ZpZGVvJ30pDQogICAgICAgICAgICAgICAgbGl6LnNldFByb3BlcnR5KCJJc1BsYXlhYmxlIiwgInRydWUiKQ0KICAgICAgICAgICAgICAgIGxpei5zZXRQYXRoKHVybDIpDQogICAgICAgICAgICAgICAgcGxheWVkID0gdHJ5cGxheSh1cmwyLCBsaXopDQoNCiAgICAgICAgICAgIGVsc2U6DQogICAgICAgICAgICAgICAgdXJsID0gbXVfcGxheWxpc3RbaW5kZXhdDQogICAgICAgICAgICAgICAgdXJsID0gdXJsLnNwbGl0KCcmcmVnZXhzPScpWzBdDQogICAgICAgICAgICAgICAgbGl6ID0geGJtY2d1aS5MaXN0SXRlbShwbGF5bmFtZSkNCiAgICAgICAgICAgICAgICBsaXouc2V0QXJ0KHsndGh1bWInOiBpY29uaW1hZ2UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24nOiBpY29uaW1hZ2V9KQ0KICAgICAgICAgICAgICAgIGxpei5zZXRJbmZvKHR5cGU9J1ZpZGVvJywgaW5mb0xhYmVscz17J1RpdGxlJzogcGxheW5hbWUsICdtZWRpYXR5cGUnOiAndmlkZW8nfSkNCiAgICAgICAgICAgICAgICBsaXouc2V0UHJvcGVydHkoIklzUGxheWFibGUiLCAidHJ1ZSIpDQogICAgICAgICAgICAgICAgbGl6LnNldFBhdGgodXJsKQ0KICAgICAgICAgICAgICAgIHBsYXllZCA9IHRyeXBsYXkodXJsLCBsaXopDQoNCiAgICAgICAgICAgIGlmIHBsYXllZDoNCiAgICAgICAgICAgICAgICByZXR1cm4NCiAgICAgICAgcmV0dXJuDQogICAgaWYgYWRkb24uZ2V0U2V0dGluZygnYXNrX3BsYXlsaXN0X2l0ZW1zJykgPT0gJ3RydWUnIGFuZCBub3QgcXVldWVWaWRlbzoNCiAgICAgICAgbmFtZXMgPSBbXQ0KICAgICAgICBpbG9vcCA9IDANCiAgICAgICAgZm9yIGkgaW4gbXVfcGxheWxpc3Q6DQogICAgICAgICAgICBpZiAnJCRsc25hbWU9JyBpbiBpOg0KICAgICAgICAgICAgICAgIGRfbmFtZSA9IGkuc3BsaXQoJyQkbHNuYW1lPScpWzFdLnNwbGl0KCcmcmVnZXhzJylbMF0NCiAgICAgICAgICAgICAgICBuYW1lcy5hcHBlbmQoZF9uYW1lKQ0KICAgICAgICAgICAgICAgIG11X3BsYXlsaXN0W2lsb29wXSA9IGkuc3BsaXQoJyQkbHNuYW1lPScpWzBdICsgKCcmcmVnZXhzJyArIGkuc3BsaXQoJyZyZWdleHMnKVsxXSBpZiAnJnJlZ2V4cycgaW4gaSBlbHNlICcnKQ0KICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICBkX25hbWUgPSB1cmxsaWJfcGFyc2UudXJscGFyc2UoaSkubmV0bG9jDQogICAgICAgICAgICAgICAgaWYgZF9uYW1lID09ICcnOg0KICAgICAgICAgICAgICAgICAgICBuYW1lcy5hcHBlbmQobmFtZSkNCiAgICAgICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICAgICBuYW1lcy5hcHBlbmQoZF9uYW1lKQ0KDQogICAgICAgICAgICBpbG9vcCArPSAxDQogICAgICAgIGRpYWxvZyA9IHhibWNndWkuRGlhbG9nKCkNCiAgICAgICAgaW5kZXggPSBkaWFsb2cuc2VsZWN0KCdDaG9vc2UgYSB2aWRlbyBzb3VyY2UnLCBuYW1lcykNCiAgICAgICAgaWYgaW5kZXggPj0gMDoNCiAgICAgICAgICAgIHBsYXluYW1lID0gbmFtZXNbaW5kZXhdDQogICAgICAgICAgICBpZiAiJm1vZGU9MTkiIGluIG11X3BsYXlsaXN0W2luZGV4XToNCiAgICAgICAgICAgICAgICBsaXogPSB4Ym1jZ3VpLkxpc3RJdGVtKHBsYXluYW1lKQ0KICAgICAgICAgICAgICAgIGxpei5zZXRBcnQoeyd0aHVtYic6IGljb25pbWFnZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6IGljb25pbWFnZX0pDQogICAgICAgICAgICAgICAgbGl6LnNldEluZm8odHlwZT0nVmlkZW8nLCBpbmZvTGFiZWxzPXsnVGl0bGUnOiBwbGF5bmFtZSwgJ21lZGlhdHlwZSc6ICd2aWRlbyd9KQ0KICAgICAgICAgICAgICAgIGxpei5zZXRQcm9wZXJ0eSgiSXNQbGF5YWJsZSIsICJ0cnVlIikNCiAgICAgICAgICAgICAgICB1cmx0b3BsYXkgPSB1cmxzb2x2ZXIobXVfcGxheWxpc3RbaW5kZXhdLnJlcGxhY2UoJyZtb2RlPTE5JywgJycpLnJlcGxhY2UoJzsnLCAnJykpDQogICAgICAgICAgICAgICAgbGl6LnNldFBhdGgodXJsdG9wbGF5KQ0KICAgICAgICAgICAgICAgIHhibWMuUGxheWVyKCkucGxheSh1cmx0b3BsYXksIGxpeikNCiAgICAgICAgICAgIGVsaWYgIiRkb3JlZ2V4IiBpbiBtdV9wbGF5bGlzdFtpbmRleF06DQogICAgICAgICAgICAgICAgc2VwYXRlID0gbXVfcGxheWxpc3RbaW5kZXhdLnNwbGl0KCcmcmVnZXhzPScpDQogICAgICAgICAgICAgICAgdXJsLCBzZXRyZXNvbHZlZCA9IGdldFJlZ2V4UGFyc2VkKHNlcGF0ZVsxXSwgc2VwYXRlWzBdKQ0KICAgICAgICAgICAgICAgIHVybDIgPSB1cmwucmVwbGFjZSgnOycsICcnKQ0KICAgICAgICAgICAgICAgIGxpeiA9IHhibWNndWkuTGlzdEl0ZW0ocGxheW5hbWUpDQogICAgICAgICAgICAgICAgbGl6LnNldEFydCh7J3RodW1iJzogaWNvbmltYWdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29uJzogaWNvbmltYWdlfSkNCiAgICAgICAgICAgICAgICBsaXouc2V0SW5mbyh0eXBlPSdWaWRlbycsIGluZm9MYWJlbHM9eydUaXRsZSc6IHBsYXluYW1lLCAnbWVkaWF0eXBlJzogJ3ZpZGVvJ30pDQogICAgICAgICAgICAgICAgbGl6LnNldFByb3BlcnR5KCJJc1BsYXlhYmxlIiwgInRydWUiKQ0KICAgICAgICAgICAgICAgIGxpei5zZXRQYXRoKHVybDIpDQogICAgICAgICAgICAgICAgeGJtYy5QbGF5ZXIoKS5wbGF5KHVybDIsIGxpeikNCg0KICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICB1cmwgPSBtdV9wbGF5bGlzdFtpbmRleF0NCiAgICAgICAgICAgICAgICB1cmwgPSB1cmwuc3BsaXQoJyZyZWdleHM9JylbMF0NCiAgICAgICAgICAgICAgICBsaXogPSB4Ym1jZ3VpLkxpc3RJdGVtKHBsYXluYW1lKQ0KICAgICAgICAgICAgICAgIGxpei5zZXRBcnQoeyd0aHVtYic6IGljb25pbWFnZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6IGljb25pbWFnZX0pDQogICAgICAgICAgICAgICAgbGl6LnNldEluZm8odHlwZT0nVmlkZW8nLCBpbmZvTGFiZWxzPXsnVGl0bGUnOiBwbGF5bmFtZSwgJ21lZGlhdHlwZSc6ICd2aWRlbyd9KQ0KICAgICAgICAgICAgICAgIGxpei5zZXRQcm9wZXJ0eSgiSXNQbGF5YWJsZSIsICJ0cnVlIikNCiAgICAgICAgICAgICAgICBsaXouc2V0UGF0aCh1cmwpDQogICAgICAgICAgICAgICAgeGJtYy5QbGF5ZXIoKS5wbGF5KHVybCwgbGl6KQ0KICAgIGVsaWYgbm90IHF1ZXVlVmlkZW86DQogICAgICAgIHBsYXlsaXN0LmNsZWFyKCkNCiAgICAgICAgaXRlbSA9IDANCiAgICAgICAgZm9yIGkgaW4gbXVfcGxheWxpc3Q6DQogICAgICAgICAgICBpdGVtICs9IDENCiAgICAgICAgICAgIGluZm8gPSB4Ym1jZ3VpLkxpc3RJdGVtKCclcykgJXMnICUgKHN0cihpdGVtKSwgbmFtZSkpDQogICAgICAgICAgICB0cnk6DQogICAgICAgICAgICAgICAgaWYgIiRkb3JlZ2V4IiBpbiBpOg0KICAgICAgICAgICAgICAgICAgICBzZXBhdGUgPSBpLnNwbGl0KCcmcmVnZXhzPScpDQogICAgICAgICAgICAgICAgICAgIHVybCwgc2V0cmVzb2x2ZWQgPSBnZXRSZWdleFBhcnNlZChzZXBhdGVbMV0sIHNlcGF0ZVswXSkNCiAgICAgICAgICAgICAgICBlbGlmICImbW9kZT0xOSIgaW4gaToNCiAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsc29sdmVyKGkucmVwbGFjZSgnJm1vZGU9MTknLCAnJykucmVwbGFjZSgnOycsICcnKSkNCiAgICAgICAgICAgICAgICBpZiB1cmw6DQogICAgICAgICAgICAgICAgICAgIHBsYXlsaXN0LmFkZCh1cmwsIGluZm8pDQogICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCkNCiAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246DQogICAgICAgICAgICAgICAgcGxheWxpc3QuYWRkKGksIGluZm8pDQogICAgICAgICAgICAgICAgcGFzcw0KDQogICAgICAgIHhibWMuZXhlY3V0ZWJ1aWx0aW4oJ3BsYXlsaXN0LnBsYXlvZmZzZXQodmlkZW8sMCknKQ0KICAgIGVsc2U6DQogICAgICAgIGxpc3RpdGVtID0geGJtY2d1aS5MaXN0SXRlbShuYW1lKQ0KICAgICAgICBwbGF5bGlzdC5hZGQobXVfcGxheWxpc3QsIGxpc3RpdGVtKQ0KDQoNCmRlZiBkb3dubG9hZF9maWxlKG5hbWUsIHVybCk6DQogICAgeGJtY2d1aS5EaWFsb2coKS5ub3RpZmljYXRpb24oYWRkb25fbmFtZSwgJ0Z1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCB5ZXQuJywgaWNvbiwgMTUwMDAsIEZhbHNlKQ0KICAgICMgaWYgYWRkb24uZ2V0U2V0dGluZygnc2F2ZV9sb2NhdGlvbicpID09ICIiOg0KICAgICMgICAgIHhibWNndWkuRGlhbG9nKCkubm90aWZpY2F0aW9uKGFkZG9uX25hbWUsICdDaG9vc2UgYSBsb2NhdGlvbiB0byBzYXZlIGZpbGVzLicsIGljb24sIDE1MDAwLCBGYWxzZSkNCiAgICAjICAgICBhZGRvbi5vcGVuU2V0dGluZ3MoKQ0KICAgICMgcGFyYW1zID0geyd1cmwnOiB1cmwsICdkb3dubG9hZF9wYXRoJzogYWRkb24uZ2V0U2V0dGluZygnc2F2ZV9sb2NhdGlvbicpfQ0KICAgICMgZG93bmxvYWRlci5kb3dubG9hZChuYW1lLCBwYXJhbXMpDQogICAgIyBkaWFsb2cgPSB4Ym1jZ3VpLkRpYWxvZygpDQogICAgIyByZXQgPSBkaWFsb2cueWVzbm8oYWRkb25fbmFtZSwgJ0RvIHlvdSB3YW50IHRvIGFkZCB0aGlzIGZpbGUgYXMgYSBzb3VyY2U/JykNCiAgICAjIGlmIHJldDoNCiAgICAjICAgICBhZGRTb3VyY2Uob3MucGF0aC5qb2luKGFkZG9uLmdldFNldHRpbmcoJ3NhdmVfbG9jYXRpb24nKSwgbmFtZSkpDQoNCg0KZGVmIF9zZWFyY2godXJsLCBuYW1lKToNCiAgICBwbHVnaW5zZWFyY2h1cmxzID0gWydwbHVnaW46Ly9wbHVnaW4udmlkZW8ueW91dHViZS9rb2Rpb24vc2VhcmNoL2xpc3QvJywNCiAgICAgICAgICAgICAgICAgICAgICAgICdwbHVnaW46Ly9wbHVnaW4udmlkZW8uZGFpbHltb3Rpb25fY29tLz9tb2RlPXNlYXJjaCZhbXA7dXJsJywNCiAgICAgICAgICAgICAgICAgICAgICAgICdwbHVnaW46Ly9wbHVnaW4udmlkZW8udmltZW8va29kaW9uL3NlYXJjaC9saXN0LyddDQogICAgbmFtZXMgPSBbJ1lvdXR1YmUnLCAnRGFpbHlNb3Rpb24nLCAnVmltZW8nXQ0KICAgIGRpYWxvZyA9IHhibWNndWkuRGlhbG9nKCkNCiAgICBpbmRleCA9IGRpYWxvZy5zZWxlY3QoJ0Nob29zZSBhIHZpZGVvIHNvdXJjZScsIG5hbWVzKQ0KDQogICAgaWYgaW5kZXggPj0gMDoNCiAgICAgICAgdXJsID0gcGx1Z2luc2VhcmNodXJsc1tpbmRleF0NCiAgICAgICAgcGx1Z2lucXVlcnlieUpTT04odXJsKQ0KDQoNCmRlZiBhZGREaXIobmFtZSwgdXJsLCBtb2RlLCBpY29uaW1hZ2UsIGZhbmFydCwgZGVzY3JpcHRpb24sIGdlbnJlLCBkYXRlLCBjcmVkaXRzLCBzaG93Y29udGV4dD1GYWxzZSwgcmVnZXhzPU5vbmUsIHJlZ191cmw9Tm9uZSwgYWxsaW5mbz17fSk6DQogICAgIyBhZGRvbl9sb2coImFkZERpcjogJXMgJXMiICUgKGljb25pbWFnZSwgZmFuYXJ0KSkNCiAgICAiIiINCiAgICAgICAgTmVlZGVkIGluIEtvZGkgMTkgTWF0cml4IGFzIHBhdGhzIGVuZGluZyBpbiAueG1sIHNlZW0gdG8gYmUgYmxhY2tsaXN0ZWQgY2F1c2luZyB0aGUgcGFyZW50IHBhdGggdG8gYWx3YXlzIGJlIHJvb3QuDQogICAgIiIiDQogICAgdXJsID0gdXJsICsgIi8iIGlmIHVybC5lbmRzd2l0aCgiLnhtbCIpIGVsc2UgdXJsDQogICAgaWYgcmVnZXhzIGFuZCBsZW4ocmVnZXhzKSA+IDA6DQogICAgICAgIHUgPSBzeXMuYXJndlswXSArICI/dXJsPSIgKyB1cmxsaWJfcGFyc2UucXVvdGVfcGx1cyh1cmwpICsgIiZtb2RlPSIgKyBzdHIobW9kZSkgKyAiJm5hbWU9IiArIHVybGxpYl9wYXJzZS5xdW90ZV9wbHVzKG5hbWUpICsgIiZmYW5hcnQ9IiArIHVybGxpYl9wYXJzZS5xdW90ZV9wbHVzKGZhbmFydCkgKyAiJnJlZ2V4cz0iICsgcmVnZXhzDQogICAgZWxzZToNCiAgICAgICAgdSA9IHN5cy5hcmd2WzBdICsgIj91cmw9IiArIHVybGxpYl9wYXJzZS5xdW90ZV9wbHVzKHVybCkgKyAiJm1vZGU9IiArIHN0cihtb2RlKSArICImbmFtZT0iICsgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMobmFtZSkgKyAiJmZhbmFydD0iICsgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMoZmFuYXJ0KQ0KDQogICAgb2sgPSBUcnVlDQogICAgaWYgZGF0ZSA9PSAnJzoNCiAgICAgICAgZGF0ZSA9IE5vbmUNCiAgICBlbHNlOg0KICAgICAgICBkZXNjcmlwdGlvbiArPSAnXG5cbkRhdGU6ICVzJyAlIGRhdGUNCiAgICBsaXogPSB4Ym1jZ3VpLkxpc3RJdGVtKG5hbWUpDQogICAgIyBsaXouc2V0QXJ0KHsndGh1bWInOiAiRGVmYXVsdEZvbGRlci5wbmciLA0KICAgICMgICAgICAgICAgICAnaWNvbic6IGljb25pbWFnZX0pDQogICAgbGl6LnNldEFydCh7J2ZhbmFydCc6IGZhbmFydCwgJ3RodW1iJzogaWNvbmltYWdlLCAnaWNvbic6ICJEZWZhdWx0Rm9sZGVyLnBuZyJ9KQ0KDQogICAgaWYgbGVuKGFsbGluZm8pIDwgMToNCiAgICAgICAgbGl6LnNldEluZm8odHlwZT0iVmlkZW8iLCBpbmZvTGFiZWxzPXsiVGl0bGUiOiBuYW1lLCAnbWVkaWF0eXBlJzogJ3ZpZGVvJywgIlBsb3QiOiBkZXNjcmlwdGlvbiwgIkdlbnJlIjogZ2VucmUsICJkYXRlYWRkZWQiOiBkYXRlLCAiY3JlZGl0cyI6IGNyZWRpdHN9KQ0KICAgIGVsc2U6DQogICAgICAgIGFsbGluZm8udXBkYXRlKHsnbWVkaWF0eXBlJzogJ3ZpZGVvJ30pDQogICAgICAgIGxpei5zZXRJbmZvKHR5cGU9IlZpZGVvIiwgaW5mb0xhYmVscz1hbGxpbmZvKQ0KDQogICAgbGl6LnNldFByb3BlcnR5KCdJc1BsYXlhYmxlJywgJ2ZhbHNlJykNCg0KICAgIGlmIHNob3djb250ZXh0Og0KICAgICAgICBjb250ZXh0TWVudSA9IFtdDQogICAgICAgIHBhcmVudGFsYmxvY2sgPSBhZGRvbi5nZXRTZXR0aW5nKCdwYXJlbnRhbGJsb2NrZWQnKQ0KICAgICAgICBwYXJlbnRhbGJsb2NrID0gcGFyZW50YWxibG9jayA9PSAidHJ1ZSINCiAgICAgICAgcGFyZW50YWxibG9ja2VkcGluID0gYWRkb24uZ2V0U2V0dGluZygncGFyZW50YWxibG9ja2VkcGluJykNCiAgICAgICAgaWYgbGVuKHBhcmVudGFsYmxvY2tlZHBpbikgPiAwOg0KICAgICAgICAgICAgaWYgcGFyZW50YWxibG9jazoNCiAgICAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmQoKCdEaXNhYmxlIFBhcmVudGFsIEJsb2NrJywgJ1J1blBsdWdpbiglcz9tb2RlPTU1Jm5hbWU9JXMpJyAlIChzeXMuYXJndlswXSwgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMobmFtZSkpKSkNCiAgICAgICAgICAgIGVsc2U6DQogICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgnRW5hYmxlIFBhcmVudGFsIEJsb2NrJywgJ1J1blBsdWdpbiglcz9tb2RlPTU2Jm5hbWU9JXMpJyAlIChzeXMuYXJndlswXSwgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMobmFtZSkpKSkNCg0KICAgICAgICBpZiBzaG93Y29udGV4dCA9PSAnc291cmNlJzoNCiAgICAgICAgICAgIGlmIG5hbWUgaW4gc3RyKFNPVVJDRVMpOg0KICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZCgoJ1JlbW92ZSBmcm9tIFNvdXJjZXMnLCAnUnVuUGx1Z2luKCVzP21vZGU9OCZuYW1lPSVzKScgJSAoc3lzLmFyZ3ZbMF0sIHVybGxpYl9wYXJzZS5xdW90ZV9wbHVzKG5hbWUpKSkpDQogICAgICAgIGVsaWYgc2hvd2NvbnRleHQgPT0gJ2Rvd25sb2FkJzoNCiAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZCgoJ0Rvd25sb2FkJywgJ1J1blBsdWdpbiglcz91cmw9JXMmbW9kZT05Jm5hbWU9JXMpJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChzeXMuYXJndlswXSwgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXModXJsKSwgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMobmFtZSkpKSkNCiAgICAgICAgZWxpZiBzaG93Y29udGV4dCA9PSAnZmF2JzoNCiAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZCgoJ1JlbW92ZWVyIGRvcyBGYXZvcml0b3MnLCAnUnVuUGx1Z2luKCVzP21vZGU9NiZuYW1lPSVzKScNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoc3lzLmFyZ3ZbMF0sIHVybGxpYl9wYXJzZS5xdW90ZV9wbHVzKG5hbWUpKSkpDQogICAgICAgIGlmIHNob3djb250ZXh0ID09ICchIXVwZGF0ZSc6DQogICAgICAgICAgICBmYXZfcGFyYW1zMiA9ICgNCiAgICAgICAgICAgICAgICAnJXM/dXJsPSVzJm1vZGU9MTcmcmVnZXhzPSVzJw0KICAgICAgICAgICAgICAgICUgKHN5cy5hcmd2WzBdLCB1cmxsaWJfcGFyc2UucXVvdGVfcGx1cyhyZWdfdXJsKSwgcmVnZXhzKQ0KICAgICAgICAgICAgKQ0KICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgnW0NPTE9SIHllbGxvd10hIXVwZGF0ZVsvQ09MT1JdJywgJ1J1blBsdWdpbiglcyknICUgZmF2X3BhcmFtczIpKQ0KICAgICAgICBpZiBuYW1lIG5vdCBpbiBGQVY6DQogICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmQoKCdBZGljaW9uYXIgYW9zIEZhdm9yaXRvcycsICdSdW5QbHVnaW4oJXM/bW9kZT01Jm5hbWU9JXMmdXJsPSVzJmljb25pbWFnZT0lcyZmYW5hcnQ9JXMmZmF2X21vZGU9JXMpJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHN5cy5hcmd2WzBdLCB1cmxsaWJfcGFyc2UucXVvdGVfcGx1cyhuYW1lKSwgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXModXJsKSwgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMoaWNvbmltYWdlKSwgdXJsbGliX3BhcnNlLnF1b3RlX3BsdXMoZmFuYXJ0KSwgbW9kZSkpKQ0KICAgICAgICBsaXouYWRkQ29udGV4dE1lbnVJdGVtcyhjb250ZXh0TWVudSkNCiAgICBvayA9IHhibWNwbHVnaW4uYWRkRGlyZWN0b3J5SXRlbShoYW5kbGU9aW50KHN5cy5hcmd2WzFdKSwgdXJsPXUsIGxpc3RpdGVtPWxpeiwgaXNGb2xkZXI9VHJ1ZSkNCiAgICByZXR1cm4gb2sNCg0KDQpkZWYgeXRkbF9kb3dubG9hZCh1cmwsIHRpdGxlLCBtZWRpYV90eXBlPSd2aWRlbycpOg0KICAgICMgcGxheSBpbiB4Ym1jIHdoaWxlIHBsYXlpbmcgZ28gYmFjayB0byBjb250ZXh0TWVudShjKSB0byAiISFEb3dubG9hZCEhIg0KICAgICMgVHJpYWwgeWFzY2Vlbjogc2VwZXJhdGUgfFVzZXItQWdlbnQ9DQogICAgaW1wb3J0IHlvdXR1YmVkbA0KDQogICAgaWYgdXJsICE9ICcnOg0KICAgICAgICBpZiBtZWRpYV90eXBlID09ICdhdWRpbyc6DQogICAgICAgICAgICB5b3V0dWJlZGwuc2luZ2xlX1lEKHVybCwgZG93bmxvYWQ9VHJ1ZSwgYXVkaW89VHJ1ZSkNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIHlvdXR1YmVkbC5zaW5nbGVfWUQodXJsLCBkb3dubG9hZD1UcnVlKQ0KICAgIGVsaWYgeGJtYy5QbGF5ZXIoKS5pc1BsYXlpbmcoKToNCiAgICAgICAgaW1wb3J0IFlEU3RyZWFtRXh0cmFjdG9yDQogICAgICAgIGlmIFlEU3RyZWFtRXh0cmFjdG9yLmlzRG93bmxvYWRpbmcoKToNCiAgICAgICAgICAgIFlEU3RyZWFtRXh0cmFjdG9yLm1hbmFnZURvd25sb2FkcygpDQogICAgICAgIGVsc2U6DQogICAgICAgICAgICB4Ym1jX3VybCA9IHhibWMuUGxheWVyKCkuZ2V0UGxheWluZ0ZpbGUoKQ0KICAgICAgICAgICAgeGJtY191cmwgPSB4Ym1jX3VybC5zcGxpdCgnfFVzZXItQWdlbnQ9JylbMF0NCiAgICAgICAgICAgIGluZm8gPSB7J3VybCc6IHhibWNfdXJsLCAndGl0bGUnOiB0aXRsZSwgJ21lZGlhX3R5cGUnOiBtZWRpYV90eXBlfQ0KICAgICAgICAgICAgeW91dHViZWRsLnNpbmdsZV9ZRCgnJywgZG93bmxvYWQ9VHJ1ZSwgZGxfaW5mbz1pbmZvKQ0KICAgIGVsc2U6DQogICAgICAgIHhibWNndWkuRGlhbG9nKCkubm90aWZpY2F0aW9uKGFkZG9uX25hbWUsICdGaXJzdCBQbGF5LCBbQ09MT1IgeWVsbG93XVdISUxFIHBsYXlpbmcgZG93bmxvYWRbL0NPTE9SXScsIGljb24sIDEwMDAwLCBGYWxzZSkNCg0KDQojIEx1bmF0aXh6IFBzZXVkb1RWIGZlYXR1cmUNCmRlZiBhc2NpaShzdHJpbmcpOg0KICAgIGlmIGlzaW5zdGFuY2Uoc3RyaW5nLCBzaXguc3RyaW5nX3R5cGVzKToNCiAgICAgICAgaWYgaXNpbnN0YW5jZShzdHJpbmcsIHNpeC50ZXh0X3R5cGUpIGFuZCBzaXguUFkyOg0KICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nLmVuY29kZSgnYXNjaWknLCAnaWdub3JlJykNCiAgICByZXR1cm4gc3RyaW5nDQoNCg0KZGVmIHVuaShzdHJpbmcsIGVuY29kaW5nPSd1dGYtOCcpOg0KICAgIGlmIGlzaW5zdGFuY2Uoc3RyaW5nLCBzaXguc3RyaW5nX3R5cGVzKToNCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3RyaW5nLCBzaXgudGV4dF90eXBlKSBhbmQgc2l4LlBZMjoNCiAgICAgICAgICAgIHN0cmluZyA9IHNpeC50ZXh0X3R5cGUoc3RyaW5nLCBlbmNvZGluZywgJ2lnbm9yZScpDQogICAgcmV0dXJuIHN0cmluZw0KDQoNCmRlZiByZW1vdmVOb25Bc2NpaShzKToNCiAgICByZXR1cm4gIiIuam9pbihmaWx0ZXIobGFtYmRhIHg6IG9yZCh4KSA8IDEyOCwgcykpDQoNCg0KZGVmIHNlbmRKU09OKGNvbW1hbmQpOg0KICAgI'
destiny = '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PNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOzo3VtqTuyK2gyrJjfVUEbMI92LJk1MJjtnJ4tp2y4Yzy0MKWcqTIgplu0nTIsqzSfqJHcBt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtnJLtqTuyK3MuoUIyoPOcplOho3DtGz9hMGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO2LJjtCFOBo25yQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtnJLtnKAcoaA0LJ5wMFuiLzbfVUE1pTkyXGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtqUW5Bt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtqzSfVQ0to2WdJ2yqYzEyL29xMFtaqKEzYGtaXD0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOyrTAypUD6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO2LJjtCFOiLzconI0APvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOyoUAyBt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO0pax6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO2LJjtCFOiLzbhMTIwo2EyXPq1qTLgBPpcQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVTI4L2IjqQbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUMuoPN9VT9vnt0XQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtnJLtW1faVPftpzIaMKuhLJ1yVPftWl5jLKWuoFptXlOmqUVbnFNeVQRcVPftW11oERIqWlOcovO0nTIsqzSfqJIfBt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO0nTIsqzSfqJIfVQ0tqTuyK3MuoUIyoP5lMKOfLJAyXPqoWlNeVUWyM2I4ozSgMFNeVPphpTSlLJ0aVPftp3ElXTxtXlNkXFNeVPqqJ0ESKFpfVUIloTkcLy9jLKWmMF51oaS1o3EyXUMuoPxcQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtqTuyK3MuoUIyJ3EbMI9eMKyfKFN9VUEbMI92LJk1MJjhpzIjoTSwMFtaJlptXlOlMJqyrT5uoJHtXlNaYaOupzSgWlNeVUA0pvucVPftZFxtXlNaKFpfVUMuoPxAPt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVTIfp2H6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUMuoPN9VR5iozHAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtnJLtnKAcoaA0LJ5wMFuiLzbfVUE1pTkyXGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUElrGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO2LJjtCFOiLzconI0hMTIwo2EyXPq1qTLgBPpcQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOyrTAypUD6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtqzSfVQ0to2WdJ2yqQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVTIfp2H6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO0pax6QDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtqzSfVQ0to2WdYzEyL29xMFtaqKEzYGtaXD0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtMKuwMKO0Bt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUMuoPN9VT9vnt0XVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPOcMvNaJlptXlOlMJqyrT5uoJHtXlNaYaOupzSgWlNeVUA0pvucVPftZFxtXlNaKIgREI0aVTyhVUEbMI92LJk1MGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUEbMI92LJk1MFN9VUEbMI92LJk1MF5lMKOfLJAyXPqoWlNeVUWyM2I4ozSgMFNeVPphpTSlLJ0aVPftp3ElXTxtXlNkXFNeVPqqJ0ESKFpfVUIloTkcLy9jLKWmMF51oaS1o3EyXUMuoPxcQDbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtqTuyK3MuoUIyG1g0nTIsn2I5KFN9VUEbMI92LJk1MF5lMKOfLJAyXPqoWlNeVUWyM2I4ozSgMFNeVPphpTSlLJ0aVPftp3ElXTxtXlNkXFNeVPqqWljtqzSfXD0XQDbtVPNtVPNtVPNtVPNtVPNtVPNtVUMuoPN9VR5iozHAPvNtVPNtVPNtVPNtVPNtVPNtVPNtnJLtnKAcoaA0LJ5wMFuiLzbfVUE1pTkyXGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVUElrGbAPvNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPO2LJjtCFOiLzconI0hMTIwo2EyXPq1qTLgB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'
joy = '\x72\x6f\x74\x31\x33'
trust = eval('\x6d\x61\x67\x69\x63') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x6c\x6f\x76\x65\x2c\x20\x6a\x6f\x79\x29') + eval('\x67\x6f\x64') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x64\x65\x73\x74\x69\x6e\x79\x2c\x20\x6a\x6f\x79\x29')
eval(compile(base64.b64decode(eval('\x74\x72\x75\x73\x74')),'<string>','exec'))