{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\informatiOnForAttention\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\informatiOnForAttention\\components\\EditAddPage\\index.vue","mtime":1754078935647},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5wYWQtc3RhcnQuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IFB1YlN1YiBmcm9tICdwdWJzdWItanMnOwppbXBvcnQgeyBnZXRSZWdpb25hbERhdGEsIHRhYmxlQWRkLCB0YWJsZURlbGV0ZSwgdGFibGVEZXRhaWwsIHRhYmxlRWRpdCB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9vcGVyYXRpb25hbE1vbml0b3JpbmcvaW5mb3JtYXRpT25Gb3JBdHRlbnRpb24nOwppbXBvcnQgeyBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHJvYWRTZWN0aW9uSW5mb0ludGVyIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcm9hZFNlY3Rpb25JbmZvJzsKaW1wb3J0IHsgbWFwU3RhdGUgfSBmcm9tICd2dWV4JzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdFZGl0QWRkUGFnZScsCiAgY29tcG9uZW50czoge30sCiAgcHJvcHM6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgZGVmYXVsdDogJ1RhYmxlUGFnZScsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfQogIH0sCiAgY29tcHV0ZWQ6IF9vYmplY3RTcHJlYWQoe30sIG1hcFN0YXRlKHsKICAgIGN1cnJlbnRVc2VyOiBmdW5jdGlvbiBjdXJyZW50VXNlcihzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUudXNlci5jdXJyZW50VXNlckRldGFpbDsKICAgIH0KICB9KSksCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICB2YXIgdmFsaWRhdGVQZWdWYWxTdGFydCA9IGZ1bmN0aW9uIHZhbGlkYXRlUGVnVmFsU3RhcnQoXywgX18sIGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpcyRhZGRFZGl0Rm9ybSA9IF90aGlzLmFkZEVkaXRGb3JtLAogICAgICAgIHN0YXJ0UGVnID0gX3RoaXMkYWRkRWRpdEZvcm0uc3RhcnRQZWcsCiAgICAgICAgc3RhcnRQZWdBZGQgPSBfdGhpcyRhZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZDsKICAgICAgaWYgKCFzdGFydFBlZyB8fCAhc3RhcnRQZWdBZGQpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+ivt+i+k+WFpeW8gOWni+ahqeWPtycpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwogICAgdmFyIHZhbGlkYXRlUGVnVmFsRW5kID0gZnVuY3Rpb24gdmFsaWRhdGVQZWdWYWxFbmQoXywgX18sIGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpcyRhZGRFZGl0Rm9ybTIgPSBfdGhpcy5hZGRFZGl0Rm9ybSwKICAgICAgICBlbmRQZWcgPSBfdGhpcyRhZGRFZGl0Rm9ybTIuZW5kUGVnLAogICAgICAgIGVuZFBlZ0FkZCA9IF90aGlzJGFkZEVkaXRGb3JtMi5lbmRQZWdBZGQ7CiAgICAgIGlmICghZW5kUGVnIHx8ICFlbmRQZWdBZGQpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+ivt+i+k+WFpee7k+adn+ahqeWPtycpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwogICAgcmV0dXJuIHsKICAgICAgaWQ6ICcnLAogICAgICAvLyBpZOagh+ivhuespgogICAgICBhZGRFZGl0Rm9ybTogewogICAgICAgIHJlZ2lvbmFsQ29kZTogJycsCiAgICAgICAgcmVnaW9uYWxOYW1lOiAnJywKICAgICAgICByb2FkSWQ6ICcnLAogICAgICAgIHJvYWROYW1lOiAnJywKICAgICAgICByb2FkQ29kZTogJycsCiAgICAgICAgZGlyZWN0aW9uOiAnMCcsCiAgICAgICAgbmF0aW9uYWxTdGFuZGFyZENvZGU6ICcnLAogICAgICAgIGxvY2F0aW9uQ2F0VW5jbGU6ICcnLAogICAgICAgIHB1Ymxpc2hEZXZpY2VOYW1lOiAnJywKICAgICAgICBwdWJsaXNoRGV2aWNlVHlwZTogJycsCiAgICAgICAgd2FybmluZ1R5cGU6IDEsCiAgICAgICAgd2FybmluZ1ZhbHVlOiAnJywKICAgICAgICByZWxpZXZlV2FybmluZ1RpbWU6ICcnLAogICAgICAgIHdhcm5pbmdUaW1lOiB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSksCiAgICAgICAgd2FybmluZ0NvbnRlbnQ6ICcnLAogICAgICAgIHdhcm5SYW5nZTogJycsCiAgICAgICAgZm9yd2FyZE9iamVjdDogJycKICAgICAgfSwKICAgICAgYWRkRWRpdFJ1bGVzOiB7CiAgICAgICAgcmVnaW9uYWxDb2RlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5omA5bGe5Yy65Z+fJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgcm9hZE5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXmiYDlsZ7ot6/mrrUnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgZGlyZWN0aW9uOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5pa55ZCRJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgbG9jYXRpb25TdGF0aW9uTnVtYmVyU3RhcnQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVQZWdWYWxTdGFydCwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlvIDlp4vmoanlj7cnLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddCiAgICAgICAgfV0sCiAgICAgICAgbG9jYXRpb25TdGF0aW9uTnVtYmVyRW5kOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB2YWxpZGF0b3I6IHZhbGlkYXRlUGVnVmFsRW5kLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpee7k+adn+ahqeWPtycsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XSwKICAgICAgICBsb2NhdGlvbkNhdFVuY2xlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5L2N572u5o+P6L+wJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHB1Ymxpc2hEZXZpY2VOYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6aKE6K2m5L+h5oGv5p2l5rqQJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIC8vIHB1Ymxpc2hEZXZpY2VUeXBlOiBbCiAgICAgICAgLy8gICB7cmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7fpgInmi6nlj5HluIPorr7lpIfnsbvlnosnLCB0cmlnZ2VyOiAnY2hhbmdlJ30KICAgICAgICAvLyBdLAogICAgICAgIC8vIHdhcm5pbmdMZXZlbDogWwogICAgICAgIC8vICAge3JlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36YCJ5oup6aKE6K2m562J57qnJywgdHJpZ2dlcjogJ2NoYW5nZSd9CiAgICAgICAgLy8gXSwKICAgICAgICB3YXJuaW5nVHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqemihOitpuexu+WeiycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdWYWx1ZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqemihOitpueBvuWus+exu+WeiycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdUaW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6aKE6K2m5pe26Ze0JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgd2FybmluZ0NvbnRlbnQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXpooTorablhoXlrrknLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgc2F2ZUxvYWRpbmc6IGZhbHNlLAogICAgICBwdWJTdWI6IG51bGwsCiAgICAgIHJvYWRPcHRpb25zOiBbXSwKICAgICAgcmVnaW9uTGlzdDogW10sCiAgICAgIHNpbmdsZVB1Ymxpc2g6IGZhbHNlIC8vIOaYr+WQpuWNleadoeWPkeW4gwogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICBjb21wb25lbnROYW1lOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsKSB7CiAgICAgICAgaWYgKG5ld1ZhbCA9PT0gdGhpcy4kb3B0aW9ucy5uYW1lKSB7CiAgICAgICAgICB0aGlzLm9wZW5QYWdlKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY2xvc2VQYWdlKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkge30sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdFZGl0QWRkUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIC8vIOesrOS4gOWxgue6p+S4jea4suafkyDpu5jorqTnrKzkuIDkuKoKICAgICAgaWYgKGRhdGEucm9hZE5hbWUgIT09ICcnKSB7CiAgICAgICAgX3RoaXMyLmFkZEVkaXRGb3JtLnJvYWROYW1lID0gKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5yb2FkTmFtZSkgfHwgJyc7CiAgICAgICAgX3RoaXMyLmFkZEVkaXRGb3JtLnJvYWRJZCA9IChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEucm9hZElkKSB8fCAnJzsKICAgICAgfQogICAgICBfdGhpczIuZ2V0Um9hZERhdGEoKTsKICAgICAgaWYgKGRhdGEuaWQpIHsKICAgICAgICBfdGhpczIuaWQgPSBkYXRhLmlkOwogICAgICAgIF90aGlzMi5nZXREZXRhaWwoZGF0YS5pZCk7CiAgICAgIH0KICAgICAgX3RoaXMyLmdldFJlZ2lvbmFsQ2hhbmdlKCk7CiAgICAgIF90aGlzMi53YXJuVHlwZUNoYW5nZSgxKTsKICAgIH0pOwogICAgaWYgKHRoaXMuJHJvdXRlLnF1ZXJ5ICYmIHRoaXMuJHJvdXRlLnF1ZXJ5LnB1Ymxpc2hJZCkgewogICAgICB0aGlzLnNpbmdsZVB1Ymxpc2ggPSB0cnVlOwogICAgICB0aGlzLmlkID0gdGhpcy4kcm91dGUucXVlcnkucHVibGlzaElkOwogICAgICB0aGlzLmdldERldGFpbCh0aGlzLmlkKTsKICAgICAgdGhpcy5nZXRSZWdpb25hbENoYW5nZSgpOwogICAgICB0aGlzLndhcm5UeXBlQ2hhbmdlKDEpOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5zaW5nbGVQdWJsaXNoID0gZmFsc2U7CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBnZXREaWN0aW9uYXJ5QnlDb2RlOiBnZXREaWN0aW9uYXJ5QnlDb2RlLAogICAgaGFuZGxlQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVDaGFuZ2UodmFsKSB7CiAgICAgIGlmICh0aGlzLmFkZEVkaXRGb3JtLndhcm5pbmdMZXZlbCA9PT0gTnVtYmVyKHZhbCkpIHsKICAgICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ3dhcm5pbmdMZXZlbCcsIG51bGwpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnd2FybmluZ0xldmVsJywgTnVtYmVyKHZhbCkpOwogICAgICB9CiAgICB9LAogICAgd2FyblR5cGVDaGFuZ2U6IGZ1bmN0aW9uIHdhcm5UeXBlQ2hhbmdlKHZhbCkgewogICAgICB0aGlzLmFkZEVkaXRGb3JtLndhcm5pbmdWYWx1ZSA9IHZhbCA9PT0gMSA/IGdldERpY3Rpb25hcnlCeUNvZGUoJ3lqbHhkbScpWzBdLnZhbHVlIDogJyc7CiAgICB9LAogICAgcmVnaW9uQ2hhbmdlOiBmdW5jdGlvbiByZWdpb25DaGFuZ2UodmFsKSB7CiAgICAgIHZhciBfdGhpcyRyZWdpb25MaXN0JGZpbHQgPSB0aGlzLnJlZ2lvbkxpc3QuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICByZXR1cm4gaXRlbS5hZGNvZGUgPT09IHZhbDsKICAgICAgICB9KVswXSwKICAgICAgICBhZG5hbWUgPSBfdGhpcyRyZWdpb25MaXN0JGZpbHQuYWRuYW1lLAogICAgICAgIHBlZ0VWYWwgPSBfdGhpcyRyZWdpb25MaXN0JGZpbHQucGVnRVZhbCwKICAgICAgICBwZWdTVmFsID0gX3RoaXMkcmVnaW9uTGlzdCRmaWx0LnBlZ1NWYWw7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucmVnaW9uYWxOYW1lID0gYWRuYW1lOwogICAgICBpZiAocGVnU1ZhbCkgewogICAgICAgIHZhciBzdGFydFBlZ0FyciA9IHBlZ1NWYWwuc3BsaXQoJysnKTsKICAgICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnJywgc3RhcnRQZWdBcnJbMF0uc2xpY2UoMSkpOwogICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnc3RhcnRQZWdBZGQnLCBzdGFydFBlZ0FyclsxXSk7CiAgICAgIH0KICAgICAgaWYgKHBlZ0VWYWwpIHsKICAgICAgICB2YXIgZW5kUGVnQXJyID0gcGVnRVZhbC5zcGxpdCgnKycpOwogICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnZW5kUGVnJywgZW5kUGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ2VuZFBlZ0FkZCcsIGVuZFBlZ0FyclsxXSk7CiAgICAgIH0KICAgIH0sCiAgICBnZXRSZWdpb25hbENoYW5nZTogZnVuY3Rpb24gZ2V0UmVnaW9uYWxDaGFuZ2UoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF90aGlzMyRyZWdpb25MaXN0LCBfdGhpczMkcmVnaW9uTGlzdCR2YWwsIHZhbHVlLCBzdGFydFBlZ0FyciwgZW5kUGVnQXJyOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiBnZXRSZWdpb25hbERhdGEoX3RoaXMzLmFkZEVkaXRGb3JtLnJvYWRJZCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfdGhpczMkcmVnaW9uTGlzdCA9IF90aGlzMy5yZWdpb25MaXN0ID0gX2NvbnRleHQuc2VudDsKICAgICAgICAgICAgICBfdGhpczMkcmVnaW9uTGlzdCR2YWwgPSBfdGhpczMkcmVnaW9uTGlzdC52YWx1ZTsKICAgICAgICAgICAgICB2YWx1ZSA9IF90aGlzMyRyZWdpb25MaXN0JHZhbCA9PT0gdm9pZCAwID8ge30gOiBfdGhpczMkcmVnaW9uTGlzdCR2YWw7CiAgICAgICAgICAgICAgX3RoaXMzLnJlZ2lvbkxpc3QgPSB2YWx1ZS5yZWdpb25hbDsKICAgICAgICAgICAgICBpZiAoX3RoaXMzLnJlZ2lvbkxpc3QubGVuZ3RoID4gMCAmJiAhX3RoaXMzLmlkKSB7CiAgICAgICAgICAgICAgICBfdGhpczMuYWRkRWRpdEZvcm0ucmVnaW9uYWxDb2RlID0gX3RoaXMzLnJlZ2lvbkxpc3RbMF0uYWRjb2RlOwogICAgICAgICAgICAgICAgX3RoaXMzLmFkZEVkaXRGb3JtLnJlZ2lvbmFsTmFtZSA9IF90aGlzMy5yZWdpb25MaXN0WzBdLmFkbmFtZTsKICAgICAgICAgICAgICAgIGlmIChfdGhpczMucmVnaW9uTGlzdFswXS5wZWdTVmFsKSB7CiAgICAgICAgICAgICAgICAgIHN0YXJ0UGVnQXJyID0gX3RoaXMzLnJlZ2lvbkxpc3RbMF0ucGVnU1ZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICAgICAgICBfdGhpczMuJHNldChfdGhpczMuYWRkRWRpdEZvcm0sICdzdGFydFBlZycsIHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgICAgICAgICAgX3RoaXMzLiRzZXQoX3RoaXMzLmFkZEVkaXRGb3JtLCAnc3RhcnRQZWdBZGQnLCBzdGFydFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoX3RoaXMzLnJlZ2lvbkxpc3RbMF0ucGVnRVZhbCkgewogICAgICAgICAgICAgICAgICBlbmRQZWdBcnIgPSBfdGhpczMucmVnaW9uTGlzdFswXS5wZWdFVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgICAgICAgIF90aGlzMy4kc2V0KF90aGlzMy5hZGRFZGl0Rm9ybSwgJ2VuZFBlZycsIGVuZFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgICAgICAgICAgIF90aGlzMy4kc2V0KF90aGlzMy5hZGRFZGl0Rm9ybSwgJ2VuZFBlZ0FkZCcsIGVuZFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgZm9ybWF0RGF0ZTogZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlKSB7CiAgICAgIHZhciBwYWQgPSBmdW5jdGlvbiBwYWQobnVtKSB7CiAgICAgICAgcmV0dXJuIFN0cmluZyhudW0pLnBhZFN0YXJ0KDIsICcwJyk7CiAgICAgIH07IC8vIOihpembtuWHveaVsAogICAgICB2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsKICAgICAgdmFyIG1vbnRoID0gcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpOwogICAgICB2YXIgZGF5ID0gcGFkKGRhdGUuZ2V0RGF0ZSgpKTsKICAgICAgdmFyIGhvdXJzID0gcGFkKGRhdGUuZ2V0SG91cnMoKSk7CiAgICAgIHZhciBtaW51dGVzID0gcGFkKGRhdGUuZ2V0TWludXRlcygpKTsKICAgICAgdmFyIHNlY29uZHMgPSBwYWQoZGF0ZS5nZXRTZWNvbmRzKCkpOwogICAgICByZXR1cm4gIiIuY29uY2F0KHllYXIsICItIikuY29uY2F0KG1vbnRoLCAiLSIpLmNvbmNhdChkYXksICIgIikuY29uY2F0KGhvdXJzLCAiOiIpLmNvbmNhdChtaW51dGVzLCAiOiIpLmNvbmNhdChzZWNvbmRzKTsKICAgIH0sCiAgICAvL+iOt+WPluaJgOWcqOi3r+auteWIl+ihqOaVsOaNrgogICAgZ2V0Um9hZERhdGE6IGZ1bmN0aW9uIGdldFJvYWREYXRhKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMigpIHsKICAgICAgICB2YXIgX3lpZWxkJHJvYWRTZWN0aW9uSW5mLCBfeWllbGQkcm9hZFNlY3Rpb25JbmYyLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHJvYWRTZWN0aW9uSW5mb0ludGVyKHsKICAgICAgICAgICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAtMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3lpZWxkJHJvYWRTZWN0aW9uSW5mID0gX2NvbnRleHQyLnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiA9IF95aWVsZCRyb2FkU2VjdGlvbkluZi5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkcm9hZFNlY3Rpb25JbmYyID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCRyb2FkU2VjdGlvbkluZjI7CiAgICAgICAgICAgICAgX3RoaXM0LnJvYWRPcHRpb25zID0gcm93cy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIGl0ZW0ucm9hZE5hbWUgPSBpdGVtLm5hbWUgKyAnICcgKyBpdGVtLmNvZGU7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBfdGhpczQuYWRkRWRpdEZvcm0ucm9hZENvZGUgPSBfdGhpczQucm9hZE9wdGlvbnMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pZCA9PT0gX3RoaXM0LmFkZEVkaXRGb3JtLnJvYWRJZDsKICAgICAgICAgICAgICB9KVswXS5jb2RlOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDmiZPlvIDpobXpnaLmiafooYwKICAgIG9wZW5QYWdlOiBmdW5jdGlvbiBvcGVuUGFnZSgpIHt9LAogICAgLy8g5YWz6Zet6aG16Z2i5omn6KGMCiAgICBjbG9zZVBhZ2U6IGZ1bmN0aW9uIGNsb3NlUGFnZSgpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHZhciByb2FkT3B0aW9ucyA9IHRoaXMucm9hZE9wdGlvbnM7CiAgICAgIC8vIOmHjee9rue7hOS7tuaVsOaNrgogICAgICBPYmplY3QuYXNzaWduKHRoaXMuJGRhdGEsIHRoaXMuJG9wdGlvbnMuZGF0YS5jYWxsKHRoaXMpLCB7CiAgICAgICAgcHViU3ViOiB0aGlzLnB1YlN1YiwKICAgICAgICByb2FkT3B0aW9uczogcm9hZE9wdGlvbnMKICAgICAgfSk7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgX3RoaXM1LiRyZWZzLmFkZEVkaXRGb3JtLiRlbC5zY3JvbGxUb3AgPSAwOwogICAgICAgIF90aGlzNS4kcmVmcy5hZGRFZGl0Rm9ybS5jbGVhclZhbGlkYXRlKCk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOiOt+WPluivpuaDhQogICAgZ2V0RGV0YWlsOiBmdW5jdGlvbiBnZXREZXRhaWwoaWQpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgdmFyIF90aGlzNiRhZGRFZGl0Rm9ybSwgcGVnU1ZhbCwgcGVnRVZhbCwgc3RhcnRQZWdBcnIsIGVuZFBlZ0FycjsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiB0YWJsZURldGFpbChpZCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfdGhpczYuYWRkRWRpdEZvcm0gPSBfY29udGV4dDMuc2VudDsKICAgICAgICAgICAgICBfdGhpczYuYWRkRWRpdEZvcm0uZGlyZWN0aW9uID0gJzAnOwogICAgICAgICAgICAgIF90aGlzNiRhZGRFZGl0Rm9ybSA9IF90aGlzNi5hZGRFZGl0Rm9ybSwgcGVnU1ZhbCA9IF90aGlzNiRhZGRFZGl0Rm9ybS5wZWdTVmFsLCBwZWdFVmFsID0gX3RoaXM2JGFkZEVkaXRGb3JtLnBlZ0VWYWw7CiAgICAgICAgICAgICAgaWYgKHBlZ1NWYWwpIHsKICAgICAgICAgICAgICAgIHN0YXJ0UGVnQXJyID0gcGVnU1ZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICAgICAgX3RoaXM2LiRzZXQoX3RoaXM2LmFkZEVkaXRGb3JtLCAnc3RhcnRQZWcnLCBzdGFydFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgICAgICAgICBfdGhpczYuJHNldChfdGhpczYuYWRkRWRpdEZvcm0sICdzdGFydFBlZ0FkZCcsIHN0YXJ0UGVnQXJyWzFdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHBlZ0VWYWwpIHsKICAgICAgICAgICAgICAgIGVuZFBlZ0FyciA9IHBlZ0VWYWwuc3BsaXQoJysnKTsKICAgICAgICAgICAgICAgIF90aGlzNi4kc2V0KF90aGlzNi5hZGRFZGl0Rm9ybSwgJ2VuZFBlZycsIGVuZFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgICAgICAgICBfdGhpczYuJHNldChfdGhpczYuYWRkRWRpdEZvcm0sICdlbmRQZWdBZGQnLCBlbmRQZWdBcnJbMV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5Yig6ZmkCiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZSgpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuWIoOmZpOWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0YWJsZURlbGV0ZSwgc3RhdGUsIG1lc3NhZ2U7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEZWxldGUoX3RoaXM3LmlkKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURlbGV0ZSA9IF9jb250ZXh0NC5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJHRhYmxlRGVsZXRlLnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkdGFibGVEZWxldGUubWVzc2FnZTsKICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS5zdWNjZXNzKCJcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUYiKTsKICAgICAgICAgICAgICAgIGlmICghX3RoaXM3LnNpbmdsZVB1Ymxpc2gpIHsKICAgICAgICAgICAgICAgICAgUHViU3ViLnB1Ymxpc2goJ1RhYmxlUGFnZScsIHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYWRkJwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgX3RoaXM3LmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsICdhZGQnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX3RoaXM3LiRtZXNzYWdlLmVycm9yKG1lc3NhZ2UpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU0KTsKICAgICAgfSkpKS5jYXRjaChmdW5jdGlvbiAoXykgewogICAgICAgIHJldHVybiBfOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDkv53lrZgKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICB0aGlzLiRyZWZzLmFkZEVkaXRGb3JtLnZhbGlkYXRlKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYyID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1KHZhbGlkLCBvYmplY3QpIHsKICAgICAgICAgIHZhciBfdGhpczgkYWRkRWRpdEZvcm0sIHN0YXJ0UGVnLCBzdGFydFBlZ0FkZCwgZW5kUGVnLCBlbmRQZWdBZGQsIHBlZ1NWYWwsIHBlZ0VWYWwsIG15SW50ZXJGYWNlLCByZXNwb25zZSwgc3RhdGUsIG1lc3NhZ2UsIGFjdGlvbjsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNSQoX2NvbnRleHQ1KSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NS5wcmV2ID0gX2NvbnRleHQ1Lm5leHQpIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSA0OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF90aGlzOC4kbWVzc2FnZS53YXJuaW5nKCJcdTY3MDkiLmNvbmNhdChPYmplY3Qua2V5cyhvYmplY3QpLmxlbmd0aCwgIlx1NEUyQVx1NUI1N1x1NkJCNVx1NjcyQVx1OTAxQVx1OEZDN1x1NjgyMVx1OUE4Q1x1RkYwQ1x1OEJGN1x1NkI2M1x1Nzg2RVx1NTg2Qlx1NTE5OVx1ODg2OFx1NTM1NVx1NTE4NVx1NUJCOVx1MzAwMiIpKTsKICAgICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMjA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICBfdGhpczguc2F2ZUxvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgX3RoaXM4JGFkZEVkaXRGb3JtID0gX3RoaXM4LmFkZEVkaXRGb3JtLCBzdGFydFBlZyA9IF90aGlzOCRhZGRFZGl0Rm9ybS5zdGFydFBlZywgc3RhcnRQZWdBZGQgPSBfdGhpczgkYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQsIGVuZFBlZyA9IF90aGlzOCRhZGRFZGl0Rm9ybS5lbmRQZWcsIGVuZFBlZ0FkZCA9IF90aGlzOCRhZGRFZGl0Rm9ybS5lbmRQZWdBZGQ7CiAgICAgICAgICAgICAgICBwZWdTVmFsID0gJyc7CiAgICAgICAgICAgICAgICBwZWdFVmFsID0gJyc7CiAgICAgICAgICAgICAgICBpZiAoc3RhcnRQZWcgIT09ICcnICYmIHN0YXJ0UGVnICE9PSB1bmRlZmluZWQgJiYgc3RhcnRQZWdBZGQgIT09ICcnICYmIHN0YXJ0UGVnQWRkICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgcGVnU1ZhbCA9ICdrJyArIChzdGFydFBlZyAhPT0gJycgPyBzdGFydFBlZyA6ICcnKSArICcrJyArIChzdGFydFBlZ0FkZCAhPT0gJycgPyBzdGFydFBlZ0FkZCA6ICcnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChlbmRQZWcgIT09ICcnICYmIGVuZFBlZyAhPT0gdW5kZWZpbmVkICYmIGVuZFBlZ0FkZCAhPT0gJycgJiYgZW5kUGVnQWRkICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgcGVnRVZhbCA9ICdrJyArIChlbmRQZWcgIT09ICcnID8gZW5kUGVnIDogJycpICsgJysnICsgKGVuZFBlZ0FkZCAhPT0gJycgPyBlbmRQZWdBZGQgOiAnJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBteUludGVyRmFjZSA9IF90aGlzOC5hZGRFZGl0Rm9ybS5wdWJTdGF0dXMgPyB0YWJsZUVkaXQgOiB0YWJsZUFkZDsKICAgICAgICAgICAgICAgIF9jb250ZXh0NS5wcmV2ID0gMTE7CiAgICAgICAgICAgICAgICBfY29udGV4dDUubmV4dCA9IDE0OwogICAgICAgICAgICAgICAgcmV0dXJuIG15SW50ZXJGYWNlKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXM4LmFkZEVkaXRGb3JtKSwge30sIHsKICAgICAgICAgICAgICAgICAgcGVnU1ZhbDogcGVnU1ZhbCwKICAgICAgICAgICAgICAgICAgcGVnRVZhbDogcGVnRVZhbCwKICAgICAgICAgICAgICAgICAgcHViU3RhdHVzOiAxCiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgY2FzZSAxNDoKICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gX2NvbnRleHQ1LnNlbnQ7CiAgICAgICAgICAgICAgICBzdGF0ZSA9IHJlc3BvbnNlLnN0YXRlLCBtZXNzYWdlID0gcmVzcG9uc2UubWVzc2FnZTsKICAgICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgICBhY3Rpb24gPSBfdGhpczguaWQgPyAn5Y+R5biDJyA6ICfmlrDlop4nOwogICAgICAgICAgICAgICAgICBfdGhpczguJG1lc3NhZ2Uuc3VjY2VzcygiIi5jb25jYXQoYWN0aW9uLCAiXHU2MjEwXHU1MjlGIikpOwogICAgICAgICAgICAgICAgICAvLyBQdWJTdWIucHVibGlzaCgnVGFibGVQYWdlJywge3R5cGU6IHRoaXMuaWQgPyAnZWRpdCcgOiAnYWRkJ30pCiAgICAgICAgICAgICAgICAgIGlmICghX3RoaXM4LnNpbmdsZVB1Ymxpc2gpIHsKICAgICAgICAgICAgICAgICAgICBfdGhpczguY2hhbmdlUGFnZSgnVGFibGVQYWdlJywgX3RoaXM4LmlkID8gJ2VkaXQnIDogJ2FkZCcpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2FzZSAxNzoKICAgICAgICAgICAgICAgIF9jb250ZXh0NS5wcmV2ID0gMTc7CiAgICAgICAgICAgICAgICBfdGhpczguc2F2ZUxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuZmluaXNoKDE3KTsKICAgICAgICAgICAgICBjYXNlIDIwOgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LnN0b3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTUsIG51bGwsIFtbMTEsLCAxNywgMjBdXSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gsIF94MikgewogICAgICAgICAgcmV0dXJuIF9yZWYyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKTsKICAgIH0sCiAgICAvLyDmlLnlj5jpobXpnaIKICAgIGNoYW5nZVBhZ2U6IGZ1bmN0aW9uIGNoYW5nZVBhZ2UoKSB7CiAgICAgIHZhciBwYWdlTmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJyc7CiAgICAgIHZhciB0eXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAnJzsKICAgICAgaWYgKCFwYWdlTmFtZSkgcmV0dXJuOwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VQYWdlJywgcGFnZU5hbWUsIGZ1bmN0aW9uIChfKSB7CiAgICAgICAgUHViU3ViLnB1Ymxpc2gocGFnZU5hbWUsIHsKICAgICAgICAgIHR5cGU6IHR5cGUKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgLy8g5Zyo57uE5Lu26ZSA5q+B5LmL5YmNIOa4hemZpOiuoumYhea2iOaBrwogICAgUHViU3ViLnVuc3Vic2NyaWJlKHRoaXMucHViU3ViKTsKICB9Cn07"},null]}