{"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\\infoMgmtPatrolsRescues\\bindCar\\components\\TablePage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\infoMgmtPatrolsRescues\\bindCar\\components\\TablePage\\index.vue","mtime":1741950290658},{"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:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IHsgcmVmaW5lUmVxdWVzdEJvZHksIHNldFF1ZXJ5VmFsdWUgfSBmcm9tICdAL3V0aWxzL3JlcXVlc3RXcmFwcGVycyc7CmltcG9ydCBwYWdpbmF0aW9uIGZyb20gJ0AvY29tcG9uZW50cy9TdXBlclBhZ2luYXRpb24vaW5kZXgudnVlJzsKaW1wb3J0IHsgVGFibGVNaXhpbiB9IGZyb20gJ0AvbWl4aW5zL3RhYmxlTWl4aW4nOwppbXBvcnQgdHJlZVNpZGUgZnJvbSAnQC9jb21wb25lbnRzL3RyZWVTaWRlL2luZGV4LnZ1ZSc7CmltcG9ydCBTZWFyY2hDb21tb24gZnJvbSAnQC9jb21wb25lbnRzL1NlYXJjaENvbW1vbi9pbmRleC52dWUnOwppbXBvcnQgeyBnZXRUcmVlLCB0YWJsZURhdGEsIHRhYmxlRGVsZXRlLCB0cmVlRGVsZXRlIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvYmluZENhcic7CmltcG9ydCBQdWJTdWIgZnJvbSAncHVic3ViLWpzJzsKaW1wb3J0IHsgZGljdGlvbmFyeUVzY2FwZSwgZ2V0RGljdGlvbmFyeUJ5Q29kZSB9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeSc7Ci8vIOi3r+autQppbXBvcnQgeyB0YWJsZURhdGEgYXMgbG9hZFJvYWQgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvaW5mb01nbXRQYXRyb2xzUmVzY3Vlcy9yb2FkU2VjdGlvbkluZm8nOwppbXBvcnQgQ2FyQ2hvaWNlRGlhbG9nIGZyb20gJ0Avdmlld3MvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvYmluZENhci9jb21wb25lbnRzL0NhckNob2ljZURpYWxvZy9pbmRleC52dWUnOwovLyDmlZHmj7TngrkKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHJlc2N1ZVBvaW50IH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcmVzY3VlU2l0ZU1nbXQnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ1RhYmxlUGFnZScsCiAgY29tcG9uZW50czogewogICAgQ2FyQ2hvaWNlRGlhbG9nOiBDYXJDaG9pY2VEaWFsb2csCiAgICBwYWdpbmF0aW9uOiBwYWdpbmF0aW9uLAogICAgdHJlZVNpZGU6IHRyZWVTaWRlLAogICAgU2VhcmNoQ29tbW9uOiBTZWFyY2hDb21tb24KICB9LAogIG1peGluczogW1RhYmxlTWl4aW5dLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBhZGRFZGl0Rm9ybTogewogICAgICAgIGNhcjoge30KICAgICAgfSwKICAgICAgY2FyRGF0YTogW10sCiAgICAgIGNhckNob2ljZURpYWxvZzogZmFsc2UsCiAgICAgIGlzQWRkRGlzYWJsZWQ6IHRydWUsCiAgICAgIC8vIOaWsOWinuaMiemSruaYr+WQpuemgeeUqAogICAgICBwdWJTdWI6IG51bGwsCiAgICAgIHRhYmxlTWF4SGVpZ2h0OiAnNjAwcHgnLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgdHJlZUxvYWRpbmc6IHRydWUsCiAgICAgIHRhYmxlTG9hZGluZzogZmFsc2UsCiAgICAgIHRyZWVEYXRhOiBbXSwKICAgICAgLy/lt6bovrnmoJEKICAgICAgdGFiTGlzdDogWyfooYzmlL/nu7TluqYnXSwKICAgICAgLy/lt6bovrl0YWIKICAgICAgZGVmYXVsdFByb3BzOiB7CiAgICAgICAgY2hpbGRyZW46ICdjaGlsZHJlbicsCiAgICAgICAgbGFiZWw6ICduYW1lJwogICAgICB9LAogICAgICB0YWJsZURhdGE6IFtdLAogICAgICBjdXJyZW50RGF0YURlbDogW10sCiAgICAgIG9wdGlvbkxpc3Q6IFt7CiAgICAgICAgdGl0bGU6ICfovabniYzlj7fmiJbovabovoblk4HniYwnLAogICAgICAgIHByb3A6IFsnY2FyX051bWJlcl8nLCAnY2FyX0JyYW5kXyddLAogICAgICAgIHR5cGU6ICdpbnB1dCcsCiAgICAgICAgZGVmYXVsdDogdHJ1ZQogICAgICB9LCB7CiAgICAgICAgdGl0bGU6ICfovabovobnsbvliKsnLAogICAgICAgIHByb3A6ICdjYXJfQ2xhc3NfJywKICAgICAgICB0eXBlOiAnc2VsZWN0JywKICAgICAgICBvcHRpb246IGdldERpY3Rpb25hcnlCeUNvZGUoJ2p5Y2wtY2xseCcpLAogICAgICAgIG11bHRpcGxlOiBmYWxzZQogICAgICB9XSwKICAgICAgcGFyYW1zOiB7CiAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgIHBhZ2VTaXplOiAyMCwKICAgICAgICAgIHBhZ2U6IDEsCiAgICAgICAgICB0b3RhbDogMAogICAgICAgIH0sCiAgICAgICAgcXVlcnlzOiBbewogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcHJvcGVydHk6ICd0Yy50ZWFtX2lkXycKICAgICAgICB9LCB7CiAgICAgICAgICBncm91cDogJ3F1aWNrJywKICAgICAgICAgIG9wZXJhdGlvbjogJ0xJS0UnLAogICAgICAgICAgcmVsYXRpb246ICdPUicsCiAgICAgICAgICBwcm9wZXJ0eTogJ2Nhcl9OdW1iZXJfJwogICAgICAgIH0sIHsKICAgICAgICAgIGdyb3VwOiAncXVpY2snLAogICAgICAgICAgb3BlcmF0aW9uOiAnTElLRScsCiAgICAgICAgICByZWxhdGlvbjogJ09SJywKICAgICAgICAgIHByb3BlcnR5OiAnY2FyX0JyYW5kXycKICAgICAgICB9LCB7CiAgICAgICAgICBvcGVyYXRpb246ICdFUVVBTCcsCiAgICAgICAgICBwcm9wZXJ0eTogJ2Nhcl9DbGFzc18nCiAgICAgICAgfV0sCiAgICAgICAgc29ydGVyOiBbXQogICAgICB9LAogICAgICB0cmVlRGlhbG9nOiBmYWxzZSwKICAgICAgLy8g56eR55uu5L+h5oGv5by55bGCCiAgICAgIHRyZWVJdGVtSWQ6ICcnLAogICAgICAvLyDmoJHlvaLnm67lvZVpZAogICAgICB0cmVlSXRlbToge30sCiAgICAgIC8vIOagkeW9ouiKgueCuemAieS4reWvueixoQogICAgICB0cmVlSXRlbVBhcmVudElkOiAnJywKICAgICAgLy8g5qCR5b2i55uu5b2V54i257qnaWQKICAgICAgcmVzY3VlUG9pbnRPcHRpb25zOiBbXSwKICAgICAgcm9hZE9wdGlvbnM6IFtdCiAgICB9OwogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAvLyDojrflj5bmoJHlvaLnm67lvZUtCiAgICB0aGlzLmdldE9yZ1RyZWVEYXRhKGZ1bmN0aW9uICh0cmVlRGF0YSkgewogICAgICAvLyDlm57osIPkuK3pu5jorqTpgInkuK3nrKzkuIDpobnlubblsIblhbZpZOS9nOS4uuWPguaVsOivt+axguihqOagvAogICAgICBfdGhpcy50cmVlSXRlbSA9IHRyZWVEYXRhWzBdIHx8IHt9OwogICAgICB2YXIgYXJyYXkgPSBbXTsKICAgICAgaWYgKF90aGlzLnRyZWVJdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHsKICAgICAgICBhcnJheSA9IF90aGlzLnRyZWVJdGVtLmNoaWxkcmVuLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgX3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgdmFyIF90aGlzJCRyZWZzJHRyZWVTaWRlLCBfdHJlZURhdGEkLCBfdGhpcyQkcmVmcyR0cmVlU2lkZTI7CiAgICAgICAgKF90aGlzJCRyZWZzJHRyZWVTaWRlID0gX3RoaXMuJHJlZnMudHJlZVNpZGUpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHRyZWVTaWRlID09PSB2b2lkIDAgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUuc2V0Q3VycmVudEtleSgoX3RyZWVEYXRhJCA9IHRyZWVEYXRhWzBdKSA9PT0gbnVsbCB8fCBfdHJlZURhdGEkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdHJlZURhdGEkLmlkKTsgLy/pgJrov4cgJHJlZnMg6I635Y+WdHJlZVNpZGXnu4Tku7blvJXnlKjvvIzlubbosIPnlKggc2V0Q3VycmVudEtleeaWueazleiuvue9ruW9k+WJjemAieS4reeahOagkeiKgueCueOAggogICAgICAgIChfdGhpcyQkcmVmcyR0cmVlU2lkZTIgPSBfdGhpcy4kcmVmcy50cmVlU2lkZSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUyID09PSB2b2lkIDAgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUyLmV4cGFuZEhhbmRsZSh0cnVlLCAyKTsKICAgICAgfSk7CiAgICAgIHNldFF1ZXJ5VmFsdWUoX3RoaXMucGFyYW1zLCAndGMudGVhbV9pZF8nLCBhcnJheSk7IC8v5bCG6YCJ5Lit55qE5qCR6IqC54K555qEIHBhdGgg6K6+572u5Li65p+l6K+i5Y+C5pWw55qE5LiA6YOo5YiG77yM55So5LqO5ZCO57ut55qE6KGo5qC85pWw5o2u6K+35rGC44CCCiAgICAgIF90aGlzLmxvYWREYXRhKCk7IC8v5Yqg6L296KGo5qC85pWw5o2uCiAgICB9KTsKICAgIHRoaXMubG9hZFJvYWREYXRhKCk7CiAgICB0aGlzLmxvYWRSZXNjdWVQb2ludERhdGEoKTsKICAgIC8vIHRoaXMubG9hZERhdGEoKQogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdUYWJsZVBhZ2UnLCBmdW5jdGlvbiAoXywgZGF0YSkgewogICAgICBzd2l0Y2ggKGRhdGEudHlwZSkgewogICAgICAgIGNhc2UgJ2FkZCc6CiAgICAgICAgICBfdGhpczIucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgPSAxOwogICAgICAgICAgX3RoaXMyLmxvYWREYXRhKCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdlZGl0JzoKICAgICAgICAgIF90aGlzMi5sb2FkRGF0YSgpOwogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgbWV0aG9kczogewogICAgLy8g6I635Y+W5YWs5Y+45qCRLeW8guatpeaWueazle+8jOeUqOS6juS7juWQjuerr+iOt+WPluagkeW9ouaVsOaNrgogICAgZ2V0T3JnVHJlZURhdGE6IGZ1bmN0aW9uIGdldE9yZ1RyZWVEYXRhKGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRnZXRUcmVlLCB2YWx1ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMDsKICAgICAgICAgICAgICBfdGhpczMudHJlZUxvYWRpbmcgPSB0cnVlOyAvL+W8gOWni+WKoOi9veaXtuaYvuekuuWKoOi9veeKtuaAgQogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA0OwogICAgICAgICAgICAgIHJldHVybiBnZXRUcmVlKCk7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfeWllbGQkZ2V0VHJlZSA9IF9jb250ZXh0LnNlbnQ7CiAgICAgICAgICAgICAgdmFsdWUgPSBfeWllbGQkZ2V0VHJlZS52YWx1ZTsKICAgICAgICAgICAgICAvLyDosIPnlKggQVBJIOiOt+WPluagkeW9ouaVsOaNrgogICAgICAgICAgICAgIF90aGlzMy50cmVlRGF0YSA9IF90aGlzMy50cmFuc2Zvcm1UcmVlRGF0YSh2YWx1ZSk7CiAgICAgICAgICAgICAgY29uc29sZS5sb2coX3RoaXMzLnRyZWVEYXRhLCAnMDAwMDAwMDAwMCcpOwogICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDg7CiAgICAgICAgICAgICAgX3RoaXMzLnRyZWVMb2FkaW5nID0gZmFsc2U7IC8vIOaXoOiuuuaIkOWKn+aIluWksei0pe+8jOmDveWFs+mXreWKoOi9veeKtuaAgQogICAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKF90aGlzMy50cmVlRGF0YSk7IC8vIOWmguaenOaPkOS+m+S6huWbnuiwg+WHveaVsO+8jOWImeiwg+eUqOWug+W5tuS8oOWFpeagkeW9ouaVsOaNrgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5maW5pc2goOCk7CiAgICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzAsLCA4LCAxMl1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgaGFuZGxlQ2FyU2VsZWN0OiBmdW5jdGlvbiBoYW5kbGVDYXJTZWxlY3QoKSB7CiAgICAgIHRoaXMubG9hZERhdGEoKTsKICAgIH0sCiAgICB0cmFuc2Zvcm1UcmVlRGF0YTogZnVuY3Rpb24gdHJhbnNmb3JtVHJlZURhdGEoZGF0YSkgewogICAgICByZXR1cm4gZGF0YS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgaWQ6IGl0ZW0uaWQsCiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsCiAgICAgICAgICAvLyDkuIDnuqfnm67lvZXnmoQgbGFiZWwKICAgICAgICAgIGNoaWxkcmVuOiBpdGVtLnRlYW1MaXN0Lm1hcChmdW5jdGlvbiAoZ3JpZCkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIGlkOiBncmlkLmlkLAogICAgICAgICAgICAgIG5hbWU6IGdyaWQubmFtZSwKICAgICAgICAgICAgICAvLyDkuoznuqfnm67lvZXnmoQgbGFiZWwKICAgICAgICAgICAgICBwYXRoOiBncmlkLnBhdGgKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pCiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9LAogICAgZGljdGlvbmFyeUVzY2FwZTogZGljdGlvbmFyeUVzY2FwZSwKICAgIC8vIOi3r+auteS/oeaBrwogICAgbG9hZFJvYWREYXRhOiBmdW5jdGlvbiBsb2FkUm9hZERhdGEoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHZhciBfeWllbGQkbG9hZFJvYWQsIF95aWVsZCRsb2FkUm9hZCRyb3dzLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDA7CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAzOwogICAgICAgICAgICAgIHJldHVybiBsb2FkUm9hZCh7CiAgICAgICAgICAgICAgICBwYWdlQmVhbjogewogICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogLTEsCiAgICAgICAgICAgICAgICAgIHBhZ2U6IDEsCiAgICAgICAgICAgICAgICAgIHRvdGFsOiAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBfeWllbGQkbG9hZFJvYWQgPSBfY29udGV4dDIuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkbG9hZFJvYWQkcm93cyA9IF95aWVsZCRsb2FkUm9hZC5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkbG9hZFJvYWQkcm93cyA9PT0gdm9pZCAwID8ge30gOiBfeWllbGQkbG9hZFJvYWQkcm93czsKICAgICAgICAgICAgICBfdGhpczQucm9hZE9wdGlvbnMgPSByb3dzOwogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMTI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDk7CiAgICAgICAgICAgICAgX2NvbnRleHQyLnQwID0gX2NvbnRleHQyWyJjYXRjaCJdKDApOwogICAgICAgICAgICAgIGNvbnNvbGUubG9nKF9jb250ZXh0Mi50MCk7CiAgICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIsIG51bGwsIFtbMCwgOV1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5pWR5o+054K55L+h5oGvCiAgICBsb2FkUmVzY3VlUG9pbnREYXRhOiBmdW5jdGlvbiBsb2FkUmVzY3VlUG9pbnREYXRhKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMygpIHsKICAgICAgICB2YXIgX3lpZWxkJHJlc2N1ZVBvaW50LCBfeWllbGQkcmVzY3VlUG9pbnQkcm8sIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMDsKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc2N1ZVBvaW50KHsKICAgICAgICAgICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAtMSwKICAgICAgICAgICAgICAgICAgcGFnZTogMSwKICAgICAgICAgICAgICAgICAgdG90YWw6IDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCRyZXNjdWVQb2ludCA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIF95aWVsZCRyZXNjdWVQb2ludCRybyA9IF95aWVsZCRyZXNjdWVQb2ludC5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkcmVzY3VlUG9pbnQkcm8gPT09IHZvaWQgMCA/IHt9IDogX3lpZWxkJHJlc2N1ZVBvaW50JHJvOwogICAgICAgICAgICAgIF90aGlzNS5yZXNjdWVQb2ludE9wdGlvbnMgPSByb3dzOwogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMTI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICBfY29udGV4dDMucHJldiA9IDk7CiAgICAgICAgICAgICAgX2NvbnRleHQzLnQwID0gX2NvbnRleHQzWyJjYXRjaCJdKDApOwogICAgICAgICAgICAgIGNvbnNvbGUubG9nKF9jb250ZXh0My50MCk7CiAgICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMsIG51bGwsIFtbMCwgOV1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy/ojrflj5bnp5Hnm67moJEKICAgIGdldFRyZWVEYXRhOiBmdW5jdGlvbiBnZXRUcmVlRGF0YShjYWxsYmFjaykgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNCgpIHsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQkKF9jb250ZXh0NCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiBnZXRUcmVlKCczJyk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfY29udGV4dDQudDAgPSBfY29udGV4dDQuc2VudDsKICAgICAgICAgICAgICBfY29udGV4dDQudDEgPSB7CiAgICAgICAgICAgICAgICBuYW1lOiAn6KeE56ug5Yi25bqmJywKICAgICAgICAgICAgICAgIGVkaXQ6IDEsCiAgICAgICAgICAgICAgICBpZDogJycsCiAgICAgICAgICAgICAgICBwYXJlbnRJZDogJycsCiAgICAgICAgICAgICAgICBjaGlsZHJlbjogX2NvbnRleHQ0LnQwCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBfdGhpczYudHJlZURhdGEgPSBbX2NvbnRleHQ0LnQxXTsKICAgICAgICAgICAgICAvLyDkv53or4Hph43mlrDliLfmlrDmoJHmlbDmja7lkI7vvIzpgInkuK3mlYjmnpzkuI3lpLHmlYgKICAgICAgICAgICAgICBpZiAoX3RoaXM2LnRyZWVJdGVtLmlkKSB7CiAgICAgICAgICAgICAgICBfdGhpczYuJG5leHRUaWNrKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgICAgICAgICAgIHZhciBfdGhpczYkJHJlZnMkdHJlZVNpZGU7CiAgICAgICAgICAgICAgICAgIChfdGhpczYkJHJlZnMkdHJlZVNpZGUgPSBfdGhpczYuJHJlZnMudHJlZVNpZGUpID09PSBudWxsIHx8IF90aGlzNiQkcmVmcyR0cmVlU2lkZSA9PT0gdm9pZCAwIHx8IF90aGlzNiQkcmVmcyR0cmVlU2lkZS5zZXRDdXJyZW50S2V5KF90aGlzNi50cmVlSXRlbS5pZCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soX3RoaXM2LnRyZWVEYXRhKTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU0KTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy/lt6bovrnmoJHoioLngrkKICAgIGN1cnJlbnRDaGFuZ2U6IGZ1bmN0aW9uIGN1cnJlbnRDaGFuZ2Uobm9kZUl0ZW0pIHsKICAgICAgY29uc29sZS5sb2cobm9kZUl0ZW0sICfmoJHoioLngrnngrnlh7snKTsKICAgICAgY29uc29sZS5sb2cobm9kZUl0ZW0uaWQsICfmoJHnmoRpZCcpOwogICAgICAvLyDliKTmlq3mmK/lkKbmmK/kuIDnuqfnm67lvZXvvIjmnIkgY2hpbGRyZW4g5bGe5oCn77yJCiAgICAgIGlmIChub2RlSXRlbS5jaGlsZHJlbiAmJiBub2RlSXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7CiAgICAgICAgdGhpcy5pc0FkZERpc2FibGVkID0gdHJ1ZTsgLy8g56aB55So5paw5aKe5oyJ6ZKuCiAgICAgICAgdmFyIGFycmF5ID0gbm9kZUl0ZW0uY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgICB9KTsKICAgICAgICBzZXRRdWVyeVZhbHVlKHRoaXMucGFyYW1zLCAndGMudGVhbV9pZF8gJywgYXJyYXkpOwogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup5LqM57qn55uu5b2V6L+b6KGM5paw5aKe5pON5L2cJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pc0FkZERpc2FibGVkID0gZmFsc2U7IC8vIOWQr+eUqOaWsOWinuaMiemSrgogICAgICAgIC8vIOS/ruaUueWvueW6lOeahOWtl+auteWAvAogICAgICAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICd0Yy50ZWFtX2lkXyAnLCBbbm9kZUl0ZW0gPT09IG51bGwgfHwgbm9kZUl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vZGVJdGVtLmlkXSB8fCBbXSk7CiAgICAgIH0KICAgICAgLy8g5L+u5pS55a+55bqU55qE5a2X5q615YC8CiAgICAgIC8vIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdjYXRhbG9nX2Z1bGxfaWRfICcsIG5vZGVJdGVtPy5pZCB8fCAnJykKICAgICAgdGhpcy50cmVlSXRlbSA9IG5vZGVJdGVtIHx8IHt9OwogICAgICB0aGlzLmNhbGNUYWJsZUhlaWdodCg1MDApOwogICAgICBQdWJTdWIucHVibGlzaCgnVHJlZUl0ZW1TZWxlY3RlZCcsIHsKICAgICAgICBpZDogKG5vZGVJdGVtID09PSBudWxsIHx8IG5vZGVJdGVtID09PSB2b2lkIDAgPyB2b2lkIDAgOiBub2RlSXRlbS5pZCkgfHwgJycsCiAgICAgICAgbmFtZTogKG5vZGVJdGVtID09PSBudWxsIHx8IG5vZGVJdGVtID09PSB2b2lkIDAgPyB2b2lkIDAgOiBub2RlSXRlbS5uYW1lKSB8fCAnJywKICAgICAgICBwYXRoOiAobm9kZUl0ZW0gPT09IG51bGwgfHwgbm9kZUl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vZGVJdGVtLnBhdGgpIHx8ICcnCiAgICAgIH0pOwogICAgICB0aGlzLnBhcmFtcy5wYWdlQmVhbi5wYWdlID0gMTsKICAgICAgdGhpcy5sb2FkRGF0YSgpOwogICAgfSwKICAgIC8v6I635Y+W5pWw5o2uCiAgICBsb2FkRGF0YTogZnVuY3Rpb24gbG9hZERhdGEoKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1KCkgewogICAgICAgIHZhciBfeWllbGQkdGFibGVEYXRhLCBfeWllbGQkdGFibGVEYXRhJHRvdGEsIHRvdGFsLCBfeWllbGQkdGFibGVEYXRhJHJvd3MsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NS5wcmV2ID0gX2NvbnRleHQ1Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzNy50YWJsZUxvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEYXRhKHJlZmluZVJlcXVlc3RCb2R5KF90aGlzNy5wYXJhbXMpKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEgPSBfY29udGV4dDUuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEYXRhJHRvdGEgPSBfeWllbGQkdGFibGVEYXRhLnRvdGFsOwogICAgICAgICAgICAgIHRvdGFsID0gX3lpZWxkJHRhYmxlRGF0YSR0b3RhID09PSB2b2lkIDAgPyAwIDogX3lpZWxkJHRhYmxlRGF0YSR0b3RhOwogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEkcm93cyA9IF95aWVsZCR0YWJsZURhdGEucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHRhYmxlRGF0YSRyb3dzID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCR0YWJsZURhdGEkcm93czsKICAgICAgICAgICAgICBfdGhpczcucGFyYW1zLnBhZ2VCZWFuLnRvdGFsID0gdG90YWw7CiAgICAgICAgICAgICAgX3RoaXM3LnRhYmxlRGF0YSA9IHJvd3MubWFwKGZ1bmN0aW9uIChyb3cpIHsKICAgICAgICAgICAgICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHJvdyksIHt9LCB7CiAgICAgICAgICAgICAgICAgIHJvYWROYW1lOiByb3cucm9hZE5hbWUgfHwgX3RoaXM3LnRyZWVJdGVtLm5hbWUgLy8g5aaC5p6cIHJvdy5vcmdOYW1lIOS4uuepuu+8jOS9v+eUqCB0cmVlSXRlbS5uYW1lCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBjb25zb2xlLmxvZyhfdGhpczcudGFibGVEYXRhLCAn5pWw5o2uJyk7CiAgICAgICAgICAgICAgX3RoaXM3LnRhYmxlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU1KTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5qCR6IqC54K55pON5L2cCiAgICBvcGVyYXRlRXZlbnQ6IGZ1bmN0aW9uIG9wZXJhdGVFdmVudCh0eXBlLCBkYXRhKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICBjYXNlICfmlrDlop4nOgogICAgICAgICAgdGhpcy50cmVlSXRlbVBhcmVudElkID0gZGF0YS5pZDsKICAgICAgICAgIHRoaXMudHJlZURpYWxvZyA9IHRydWU7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICfnvJbovpEnOgogICAgICAgICAgdGhpcy50cmVlSXRlbUlkID0gZGF0YS5pZDsKICAgICAgICAgIHRoaXMudHJlZUl0ZW1QYXJlbnRJZCA9IGRhdGEucGFyZW50SWQ7CiAgICAgICAgICB0aGlzLnRyZWVEaWFsb2cgPSB0cnVlOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAn5Yig6ZmkJzoKICAgICAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuWIoOmZpOmAieS4rei9pui+huWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu6K6kJywKICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU2KCkgewogICAgICAgICAgICB2YXIgX3lpZWxkJHRyZWVEZWxldGUsIHN0YXRlOwogICAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTYkKF9jb250ZXh0NikgewogICAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ni5wcmV2ID0gX2NvbnRleHQ2Lm5leHQpIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSAyOwogICAgICAgICAgICAgICAgICByZXR1cm4gdHJlZURlbGV0ZShkYXRhLmlkKTsKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgX3lpZWxkJHRyZWVEZWxldGUgPSBfY29udGV4dDYuc2VudDsKICAgICAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkdHJlZURlbGV0ZS5zdGF0ZTsKICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgICAgICAgICAgICAgX3RoaXM4LiRtZXNzYWdlLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1OEY2Nlx1OEY4Nlx1NjIxMFx1NTI5RiIpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIF90aGlzOC4kbWVzc2FnZS5lcnJvcigiXHU1MjIwXHU5NjY0XHU4RjY2XHU4Rjg2XHU1OTMxXHU4RDI1Iik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSA3OwogICAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXM4LmdldFRyZWVEYXRhKCk7CiAgICAgICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ2LnN0b3AoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIF9jYWxsZWU2KTsKICAgICAgICAgIH0pKSkuY2F0Y2goZnVuY3Rpb24gKF8pIHsKICAgICAgICAgICAgcmV0dXJuIF87CiAgICAgICAgICB9KTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9LAogICAgLy8g55uu5b2V5pS55Y+YCiAgICBjYXRhbG9nQ2hhbmdlOiBmdW5jdGlvbiBjYXRhbG9nQ2hhbmdlKGRpYWxvZ05hbWUpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CiAgICAgIHRoaXMuZ2V0VHJlZURhdGEoZnVuY3Rpb24gKF8pIHsKICAgICAgICByZXR1cm4gX3RoaXM5W2RpYWxvZ05hbWVdID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWxleekuuW8ueWxggogICAgc2hvd0RpYWxvZzogZnVuY3Rpb24gc2hvd0RpYWxvZyhkaWFsb2dOYW1lKSB7CiAgICAgIGlmICghZGlhbG9nTmFtZSkgcmV0dXJuOwogICAgICBpZiAoZGlhbG9nTmFtZSA9PT0gJ3VzZXJDaG9pY2UnKSB7CiAgICAgICAgaWYgKCF0aGlzLmFkZEVkaXRGb3JtLnRlYW1JZCkgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign6K+35YWI6YCJ5oup5pWR5o+05rS+6YGj6Zif5LyNJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXNbZGlhbG9nTmFtZSArICdEaWFsb2cnXSA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHRoaXNbZGlhbG9nTmFtZSArICdEaWFsb2cnXSA9IHRydWU7CiAgICAgIH0KICAgIH0sCiAgICAvLyDliKDpmaQKICAgIGhhbmRsZURlbGV0ZTogZnVuY3Rpb24gaGFuZGxlRGVsZXRlKHJvdykgewogICAgICB2YXIgX3RoaXMxMCA9IHRoaXM7CiAgICAgIHRoaXMuY2xpY2tUaW1lciA9IHRydWU7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuWIoOmZpOmAieS4rei1hOaWmeWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTcoKSB7CiAgICAgICAgdmFyIGlkcywgX3lpZWxkJHRhYmxlRGVsZXRlLCBzdGF0ZSwgbWVzc2FnZSwgX3RoaXMxMCRwYXJhbXMkcGFnZUJlLCBwYWdlLCBwYWdlU2l6ZSwgdG90YWwsIHRvdGFsUGFnZXM7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU3JChfY29udGV4dDcpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ny5wcmV2ID0gX2NvbnRleHQ3Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIGlkcyA9IHJvdyA/IHJvdy5pZCA6IF90aGlzMTAuY3VycmVudERhdGFEZWwuam9pbigpOwogICAgICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEZWxldGUoaWRzKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURlbGV0ZSA9IF9jb250ZXh0Ny5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJHRhYmxlRGVsZXRlLnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkdGFibGVEZWxldGUubWVzc2FnZTsKICAgICAgICAgICAgICBpZiAoIXN0YXRlKSB7CiAgICAgICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDE1OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF90aGlzMTAuJG1lc3NhZ2Uuc3VjY2VzcygiXHU4RDQ0XHU2NTk5XHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGIik7CiAgICAgICAgICAgICAgX3RoaXMxMCRwYXJhbXMkcGFnZUJlID0gX3RoaXMxMC5wYXJhbXMucGFnZUJlYW4sIHBhZ2UgPSBfdGhpczEwJHBhcmFtcyRwYWdlQmUucGFnZSwgcGFnZVNpemUgPSBfdGhpczEwJHBhcmFtcyRwYWdlQmUucGFnZVNpemUsIHRvdGFsID0gX3RoaXMxMCRwYXJhbXMkcGFnZUJlLnRvdGFsOwogICAgICAgICAgICAgIHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodG90YWwgLyBwYWdlU2l6ZSk7IC8vIOiuoeeul+aAu+mhteaVsAogICAgICAgICAgICAgIGlmICh0b3RhbFBhZ2VzID4gMSAmJiBwYWdlID09PSB0b3RhbFBhZ2VzKSB7CiAgICAgICAgICAgICAgICBpZiAoX3RoaXMxMC50YWJsZURhdGEubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgICAgIC8vIOW9k+WJjemhteWPquacieS4gOadoeaVsOaNrgogICAgICAgICAgICAgICAgICBfdGhpczEwLnBhcmFtcy5wYWdlQmVhbi5wYWdlIC09IDE7IC8vIOi/lOWbnuWJjeS4gOmhtQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDEzOwogICAgICAgICAgICAgIHJldHVybiBfdGhpczEwLmxvYWREYXRhKCk7CiAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAxNjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgICBfdGhpczEwLiRtZXNzYWdlLmVycm9yKG1lc3NhZ2UpOwogICAgICAgICAgICBjYXNlIDE2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDcuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU3KTsKICAgICAgfSkpKS5jYXRjaChmdW5jdGlvbiAoXykgewogICAgICAgIHJldHVybiBfOwogICAgICB9KTsKICAgIH0sCiAgICAvL+S/ruaUuQogICAgaGFuZGxlRGJDbGljazogZnVuY3Rpb24gaGFuZGxlRGJDbGljayhyb3cpIHsKICAgICAgY29uc29sZS5sb2cocm93LCAnLy8vLy9jYXNjYWNhcycpOwogICAgICBpZiAodGhpcy5jbGlja1RpbWVyKSByZXR1cm4gdGhpcy5jbGlja1RpbWVyID0gZmFsc2U7CiAgICAgIC8vIOehruS/nSByb3cg5Lit5YyF5ZCrIG9yZ05hbWUKICAgICAgdmFyIHBheWxvYWQgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHJvdyksIHt9LCB7CiAgICAgICAgcm9hZE5hbWU6IHJvdy5yb2FkTmFtZSB8fCB0aGlzLnRyZWVJdGVtLm5hbWUgLy8g5aaC5p6cIHJvdy5vcmdOYW1lIOS4uuepuu+8jOS9v+eUqCB0cmVlSXRlbS5uYW1lCiAgICAgIH0pOwogICAgICB0aGlzLmNoYW5nZVBhZ2UoJ0VkaXRBZGRQYWdlJywgcGF5bG9hZCk7CiAgICB9LAogICAgLy8g5pS55Y+Y6aG16Z2iCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgcm93ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTsKICAgICAgaWYgKCFwYWdlTmFtZSkgcmV0dXJuOwogICAgICB2YXIgcGF5bG9hZCA9IHJvdy5pZCA/IHJvdyA6IHsKICAgICAgICBjYXRhbG9nSWQ6IHRoaXMudHJlZUl0ZW0uaWQsCiAgICAgICAgcm9hZE5hbWU6IHRoaXMudHJlZUl0ZW0ubmFtZSwKICAgICAgICBwYXRoOiB0aGlzLnRyZWVJdGVtLnBhdGgsCiAgICAgICAgY2xlYXJGb3JtOiB0cnVlIC8vIOa4heepuuihqOWNleagh+W/lwogICAgICB9OwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VQYWdlJywgcGFnZU5hbWUsIGZ1bmN0aW9uIChfKSB7CiAgICAgICAgUHViU3ViLnB1Ymxpc2gocGFnZU5hbWUsIHBheWxvYWQpOwogICAgICB9LCByb3cuaWQgPyAn57yW6L6RJyA6ICfmt7vliqAnKTsKICAgIH0KICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICAvLyDlnKjnu4Tku7bplIDmr4HkuYvliY0g5riF6Zmk6K6i6ZiF5raI5oGvCiAgICBQdWJTdWIudW5zdWJzY3JpYmUodGhpcy5wdWJTdWIpOwogIH0KfTs="},null]}