{"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\\commandDispatch\\EventManagement\\components\\ScopeClassify\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\EventManagement\\components\\ScopeClassify\\index.vue","mtime":1755157700777},{"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:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5qb2luLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IucmVkdWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcubWF0Y2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucGFkLXN0YXJ0LmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGdldERpY3Rpb25hcnlCeUNvZGUgfSBmcm9tICdAL3V0aWxzL2RpY3Rpb25hcnknOwppbXBvcnQgeyByZWZpbmVSZXF1ZXN0Qm9keSB9IGZyb20gJ0AvdXRpbHMvcmVxdWVzdFdyYXBwZXJzJzsKaW1wb3J0IHsgdGFibGVEYXRhIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvYWxvbmdSb3V0ZUluZm8nOwppbXBvcnQgeyB0YWJsZURhdGEgYXMgdHVubmVsRGF0YSB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3R1bm5lbEluZm8nOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ1Njb3BlQ2xhc3NpZnknLAogIHByb3BzOiB7CiAgICB0eXBlOiB7CiAgICAgIGRlZmF1bHQ6ICcxJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9LAogICAgcm9hZElkOiB7CiAgICAgIGRlZmF1bHQ6ICcnLAogICAgICB0eXBlOiBTdHJpbmcKICAgIH0sCiAgICBwaWxlTnVtYmVyUmFuZ2U6IHsKICAgICAgZGVmYXVsdDogJycsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAvLyDoh6rlrprkuYnpqozor4Hop4TliJnvvJrmnInlgLzml7blv4XpobvlnKjojIPlm7TlhoUKICAgIHZhciB2YWxpZGF0ZVJhbmdlMSA9IGZ1bmN0aW9uIHZhbGlkYXRlUmFuZ2UxKCkgewogICAgICByZXR1cm4gZnVuY3Rpb24gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgewogICAgICAgIGlmIChfdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZyA9PT0gdW5kZWZpbmVkICYmIF90aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnQWRkID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgfSBlbHNlIGlmICghX3RoaXMuaXNWYWx1ZUluUmFuZ2UoX3RoaXMuY29tYmluZWRWYWx1ZTEsIF90aGlzLnN0YXJ0VmFsdWUsIF90aGlzLmVuZFZhbHVlKSkgewogICAgICAgICAgX3RoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcgPSB1bmRlZmluZWQ7CiAgICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZCA9IHVuZGVmaW5lZDsKICAgICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigiXHU2MjQwXHU1ODZCXHU1MTk5XHU3Njg0XHU2ODY5XHU1M0Y3XHU0RTBEXHU1NzI4Ii5jb25jYXQoX3RoaXMuc3RhcnRWYWx1ZSwgIi0iKS5jb25jYXQoX3RoaXMuZW5kVmFsdWUsICJcdTgzMDNcdTU2RjRcdTUxODUiKSkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0KICAgICAgfTsKICAgIH07CiAgICB2YXIgdmFsaWRhdGVSYW5nZTIgPSBmdW5jdGlvbiB2YWxpZGF0ZVJhbmdlMigpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIChydWxlLCB2YWx1ZSwgY2FsbGJhY2spIHsKICAgICAgICBpZiAoX3RoaXMuYWRkRWRpdEZvcm0uZW5kUGVnID09PSB1bmRlZmluZWQgJiYgX3RoaXMuYWRkRWRpdEZvcm0uZW5kUGVnQWRkID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgfSBlbHNlIGlmICghX3RoaXMuaXNWYWx1ZUluUmFuZ2UoX3RoaXMuY29tYmluZWRWYWx1ZTIsIF90aGlzLnN0YXJ0VmFsdWUsIF90aGlzLmVuZFZhbHVlKSkgewogICAgICAgICAgX3RoaXMuYWRkRWRpdEZvcm0uZW5kUGVnID0gdW5kZWZpbmVkOwogICAgICAgICAgX3RoaXMuYWRkRWRpdEZvcm0uZW5kUGVnQWRkID0gdW5kZWZpbmVkOwogICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCJcdTYyNDBcdTU4NkJcdTUxOTlcdTc2ODRcdTY4NjlcdTUzRjdcdTRFMERcdTU3MjgiLmNvbmNhdChfdGhpcy5zdGFydFZhbHVlLCAiLSIpLmNvbmNhdChfdGhpcy5lbmRWYWx1ZSwgIlx1ODMwM1x1NTZGNFx1NTE4NSIpKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgfQogICAgICB9OwogICAgfTsKICAgIHJldHVybiB7CiAgICAgIC8v5qGp5Y+3CiAgICAgIG51bWJlclN0YXRpb25EYXRhOiBbXSwKICAgICAgLy8g5pS26LS556uZCiAgICAgIHRvbGxTdGF0aW9uRGF0YTogW10sCiAgICAgIC8vIOmap+mBkwogICAgICB0dW5uZWxEYXRhOiBbXSwKICAgICAgLy8g5LqS6YCa56uL5LqkCiAgICAgIGdyYWRlT3ZlckRhdGE6IFtdLAogICAgICAvLyDmnI3liqHljLoKICAgICAgc2VydmljZUFyZWFEYXRhOiBbXSwKICAgICAgYWRkRWRpdEZvcm06IHsKICAgICAgICBzdGFydFBlZzogdW5kZWZpbmVkLAogICAgICAgIHN0YXJ0UGVnQWRkOiB1bmRlZmluZWQsCiAgICAgICAgZW5kUGVnOiB1bmRlZmluZWQsCiAgICAgICAgZW5kUGVnQWRkOiB1bmRlZmluZWQsCiAgICAgICAgc3RhcnRQYXRyb2xJZDogJycsCiAgICAgICAgZW5kUGF0cm9sSWQ6ICcnLAogICAgICAgIHBsYWNlRGV0YWlsOiBbXSwKICAgICAgICBzd3pQbGFjZURldGFpbDogW10sCiAgICAgICAgbGpQbGFjZURldGFpbDogW10sCiAgICAgICAgc2RQbGFjZURldGFpbDogW10sCiAgICAgICAgZndxUGxhY2VEZXRhaWw6IFtdCiAgICAgIH0sCiAgICAgIHJ1bGVzOiB7CiAgICAgICAgc3RhcnRQZWc6IFt7CiAgICAgICAgICB2YWxpZGF0b3I6IHZhbGlkYXRlUmFuZ2UxKCksCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBlbmRQZWc6IFt7CiAgICAgICAgICB2YWxpZGF0b3I6IHZhbGlkYXRlUmFuZ2UyKCksCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XQogICAgICB9LAogICAgICBwbGFjZURhdGE6IHt9LAogICAgICBzdGFydFZhbHVlOiAwLAogICAgICBlbmRWYWx1ZTogMAogICAgfTsKICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7fSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkge30sCiAgY29tcHV0ZWQ6IHsKICAgIGNvbWJpbmVkVmFsdWUxOiBmdW5jdGlvbiBjb21iaW5lZFZhbHVlMSgpIHsKICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIiIuY29uY2F0KHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcsICIuIikuY29uY2F0KFN0cmluZyh0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnQWRkKS5wYWRTdGFydCgzLCAnMCcpKSkgfHwgMDsKICAgIH0sCiAgICBjb21iaW5lZFZhbHVlMjogZnVuY3Rpb24gY29tYmluZWRWYWx1ZTIoKSB7CiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCIiLmNvbmNhdCh0aGlzLmFkZEVkaXRGb3JtLmVuZFBlZywgIi4iKS5jb25jYXQoU3RyaW5nKHRoaXMuYWRkRWRpdEZvcm0uZW5kUGVnQWRkKS5wYWRTdGFydCgzLCAnMCcpKSkgfHwgMDsKICAgIH0KICB9LAogIHdhdGNoOiB7CiAgICB0eXBlOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsLCBvbGRWYWwpIHsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnID0gdW5kZWZpbmVkOwogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWcgPSB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBhdHJvbElkID0gJyc7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQYXRyb2xJZCA9ICcnOwogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnN3elBsYWNlRGV0YWlsID0gW107CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5salBsYWNlRGV0YWlsID0gW107CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zZFBsYWNlRGV0YWlsID0gW107CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5md3FQbGFjZURldGFpbCA9IFtdOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUKICAgIH0sCiAgICByb2FkSWQ6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihuZXdWYWwsIG9sZFZhbCkgewogICAgICAgIGlmIChuZXdWYWwpIHsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcgPSB1bmRlZmluZWQ7CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnQWRkID0gdW5kZWZpbmVkOwogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWcgPSB1bmRlZmluZWQ7CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBlZ0FkZCA9IHVuZGVmaW5lZDsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQYXRyb2xJZCA9ICcnOwogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQYXRyb2xJZCA9ICcnOwogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5wbGFjZURldGFpbCA9IFtdOwogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zd3pQbGFjZURldGFpbCA9IFtdOwogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5salBsYWNlRGV0YWlsID0gW107CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnNkUGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZndxUGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICAgIHRoaXMuZ2V0QWxvbmdSb3V0ZUluZm8obmV3VmFsKTsKICAgICAgICAgIHRoaXMuZ2V0VHVubmVsRGF0YShuZXdWYWwpOwogICAgICAgICAgdGhpcy5wYXJzZVN0cmluZygpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZGVlcDogdHJ1ZSwKICAgICAgLy8g5byA5ZCv5rex5bqm55uR5ZCsCiAgICAgIGltbWVkaWF0ZTogdHJ1ZQogICAgfQogIH0sCiAgbWV0aG9kczogewogICAgZ2V0RGljdGlvbmFyeUJ5Q29kZTogZ2V0RGljdGlvbmFyeUJ5Q29kZSwKICAgIHBhcnNlU3RyaW5nOiBmdW5jdGlvbiBwYXJzZVN0cmluZygpIHsKICAgICAgaWYgKHRoaXMucGlsZU51bWJlclJhbmdlKSB7CiAgICAgICAgdmFyIG1hdGNoID0gdGhpcy5waWxlTnVtYmVyUmFuZ2UubWF0Y2goL15ba0tdKFxkKykoPzpcKyhcZHsxLDN9KSk/fltrS10oXGQrKSg/OlwrKFxkezEsM30pKT8kLyk7CiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0gcGFyc2VGbG9hdCgiIi5jb25jYXQobWF0Y2hbMV0sICIuIikuY29uY2F0KFN0cmluZyhtYXRjaFsyXSkucGFkU3RhcnQoMywgJzAnKSkpIHx8IDA7CiAgICAgICAgdGhpcy5lbmRWYWx1ZSA9IHBhcnNlRmxvYXQoIiIuY29uY2F0KG1hdGNoWzNdLCAiLiIpLmNvbmNhdChTdHJpbmcobWF0Y2hbNF0pLnBhZFN0YXJ0KDMsICcwJykpKSB8fCAwOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuc3RhcnRWYWx1ZSA9IDA7CiAgICAgICAgdGhpcy5lbmRWYWx1ZSA9IE51bWJlci5NQVhfVkFMVUU7CiAgICAgIH0KICAgIH0sCiAgICBpc1ZhbHVlSW5SYW5nZTogZnVuY3Rpb24gaXNWYWx1ZUluUmFuZ2UodmFsdWUsIGJvdW5kMSwgYm91bmQyKSB7CiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInIHx8IGlzTmFOKHZhbHVlKSkgcmV0dXJuIGZhbHNlOwogICAgICBpZiAoIVN0cmluZyh2YWx1ZSkuaW5jbHVkZXMoJy4nKSkgcmV0dXJuIHRydWU7CiAgICAgIHZhciBfcmVmID0gW01hdGgubWluKGJvdW5kMSwgYm91bmQyKSwgTWF0aC5tYXgoYm91bmQxLCBib3VuZDIpXSwKICAgICAgICBtaW4gPSBfcmVmWzBdLAogICAgICAgIG1heCA9IF9yZWZbMV07CiAgICAgIHJldHVybiB2YWx1ZSA+PSBtaW4gJiYgdmFsdWUgPD0gbWF4OwogICAgfSwKICAgIC8vIOagueaNrui3r+auteafpeivouayv+e6v+S/oeaBrwogICAgZ2V0QWxvbmdSb3V0ZUluZm86IGZ1bmN0aW9uIGdldEFsb25nUm91dGVJbmZvKHJvYWRJZCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkgewogICAgICAgIHZhciBkYXRhLCBfeWllbGQkdGFibGVEYXRhLCBfeWllbGQkdGFibGVEYXRhJHRvdGEsIHRvdGFsLCBfeWllbGQkdGFibGVEYXRhJHJvd3MsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDA7CiAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAtMSwKICAgICAgICAgICAgICAgICAgcGFnZTogMSwKICAgICAgICAgICAgICAgICAgdG90YWw6IDAKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBxdWVyeXM6IFt7CiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdyb2FkU2VnbWVudElkJywKICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvYWRJZAogICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA0OwogICAgICAgICAgICAgIHJldHVybiB0YWJsZURhdGEocmVmaW5lUmVxdWVzdEJvZHkoZGF0YSkpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGF0YSA9IF9jb250ZXh0LnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGF0YSR0b3RhID0gX3lpZWxkJHRhYmxlRGF0YS50b3RhbDsKICAgICAgICAgICAgICB0b3RhbCA9IF95aWVsZCR0YWJsZURhdGEkdG90YSA9PT0gdm9pZCAwID8gMCA6IF95aWVsZCR0YWJsZURhdGEkdG90YTsKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEYXRhJHJvd3MgPSBfeWllbGQkdGFibGVEYXRhLnJvd3M7CiAgICAgICAgICAgICAgcm93cyA9IF95aWVsZCR0YWJsZURhdGEkcm93cyA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkdGFibGVEYXRhJHJvd3M7CiAgICAgICAgICAgICAgLy/moanlj7cKICAgICAgICAgICAgICBfdGhpczIubnVtYmVyU3RhdGlvbkRhdGEgPSByb3dzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gJzMnIHx8IGl0ZW0udHlwZSA9PT0gJzEnIHx8IGl0ZW0udHlwZSA9PT0gJzExJzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAvLyDmlLbotLnnq5kKICAgICAgICAgICAgICBfdGhpczIudG9sbFN0YXRpb25EYXRhID0gcm93cy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnR5cGUgPT09ICczJyB8fCBpdGVtLnR5cGUgPT09ICcxJzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAvLyDnq4vkuqQKICAgICAgICAgICAgICBfdGhpczIuZ3JhZGVPdmVyRGF0YSA9IHJvd3MuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS50eXBlIDwgMzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAvLyDmnI3liqHljLoKICAgICAgICAgICAgICBfdGhpczIuc2VydmljZUFyZWFEYXRhID0gcm93cy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnR5cGUgPT09ICc0JzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMTM7CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmZpbmlzaCgxMyk7CiAgICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzAsLCAxMywgMTVdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOagueaNrui3r+auteafpeivoumap+mBk+S/oeaBrwogICAgZ2V0VHVubmVsRGF0YTogZnVuY3Rpb24gZ2V0VHVubmVsRGF0YShyb2FkSWQpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIGRhdGEsIF95aWVsZCR0dW5uZWxEYXRhLCBfeWllbGQkdHVubmVsRGF0YSR0b3QsIHRvdGFsLCBfeWllbGQkdHVubmVsRGF0YSRyb3csIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gMDsKICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IC0xLAogICAgICAgICAgICAgICAgICBwYWdlOiAxLAogICAgICAgICAgICAgICAgICB0b3RhbDogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHF1ZXJ5czogW3sKICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3JvYWRTZWdtZW50SWQnLAogICAgICAgICAgICAgICAgICB2YWx1ZTogcm9hZElkCiAgICAgICAgICAgICAgICB9XQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSA0OwogICAgICAgICAgICAgIHJldHVybiB0dW5uZWxEYXRhKHJlZmluZVJlcXVlc3RCb2R5KGRhdGEpKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF95aWVsZCR0dW5uZWxEYXRhID0gX2NvbnRleHQyLnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHR1bm5lbERhdGEkdG90ID0gX3lpZWxkJHR1bm5lbERhdGEudG90YWw7CiAgICAgICAgICAgICAgdG90YWwgPSBfeWllbGQkdHVubmVsRGF0YSR0b3QgPT09IHZvaWQgMCA/IDAgOiBfeWllbGQkdHVubmVsRGF0YSR0b3Q7CiAgICAgICAgICAgICAgX3lpZWxkJHR1bm5lbERhdGEkcm93ID0gX3lpZWxkJHR1bm5lbERhdGEucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHR1bm5lbERhdGEkcm93ID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCR0dW5uZWxEYXRhJHJvdzsKICAgICAgICAgICAgICAvLyDpmqfpgZMKICAgICAgICAgICAgICBfdGhpczMudHVubmVsRGF0YSA9IHJvd3M7CiAgICAgICAgICAgICAgLy8g5qC55o2ubmFtZeWOu+mHjQogICAgICAgICAgICAgIF90aGlzMy50dW5uZWxEYXRhID0gX3RoaXMzLnR1bm5lbERhdGEucmVkdWNlKGZ1bmN0aW9uIChhY2N1bXVsYXRvciwgY3VycmVudCkgewogICAgICAgICAgICAgICAgdmFyIHggPSBhY2N1bXVsYXRvci5maW5kKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWUgPT09IGN1cnJlbnQubmFtZTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgaWYgKCF4KSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvci5jb25jYXQoW2N1cnJlbnRdKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LCBbXSk7CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAxMTsKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLmZpbmlzaCgxMSk7CiAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIsIG51bGwsIFtbMCwsIDExLCAxM11dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgbnVtYmVyQ2hhbmdlOiBmdW5jdGlvbiBudW1iZXJDaGFuZ2UoZSwgdHlwZSkgewogICAgICB2YXIgc2l0ZUluZm8gPSB0aGlzLm51bWJlclN0YXRpb25EYXRhLmZpbmQoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5pZCA9PT0gZTsKICAgICAgfSk7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm1bIiIuY29uY2F0KHR5cGUsICJOYW1lIildID0gc2l0ZUluZm8ubmFtZTsKICAgIH0sCiAgICBzaXRlQ2hhbmdlOiBmdW5jdGlvbiBzaXRlQ2hhbmdlKGUsIHR5cGUpIHsKICAgICAgdmFyIHNpdGVJbmZvID0gdGhpcy50b2xsU3RhdGlvbkRhdGEuZmluZChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkID09PSBlOwogICAgICB9KTsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybVsiIi5jb25jYXQodHlwZSwgIk5hbWUiKV0gPSBzaXRlSW5mby5uYW1lOwogICAgfSwKICAgIC8vIOaUtui0ueermQogICAgdG9sbFN0YXRpb25DaGFuZ2U6IGZ1bmN0aW9uIHRvbGxTdGF0aW9uQ2hhbmdlKCkgewogICAgICB0aGlzLnBsYWNlRGF0YS5wbGFjZURldGFpbCA9IHRoaXMuYWRkRWRpdEZvcm0uc3d6UGxhY2VEZXRhaWw7CiAgICAgIHZhciBwbGFjZURhdGEgPSB0aGlzLmZvcm1hdFBhbGNlRGF0YSgpOwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2UnLCBwbGFjZURhdGEpOwogICAgfSwKICAgIC8vIOmap+mBkwogICAgdHVubmVsQ2hhbmdlOiBmdW5jdGlvbiB0dW5uZWxDaGFuZ2UoKSB7CiAgICAgIHRoaXMucGxhY2VEYXRhLnBsYWNlRGV0YWlsID0gdGhpcy5hZGRFZGl0Rm9ybS5zZFBsYWNlRGV0YWlsOwogICAgICB2YXIgcGxhY2VEYXRhID0gdGhpcy5mb3JtYXRQYWxjZURhdGEoKTsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgcGxhY2VEYXRhKTsKICAgIH0sCiAgICAvLyDnq4vkuqQKICAgIGdyYWRlT3ZlckNoYW5nZTogZnVuY3Rpb24gZ3JhZGVPdmVyQ2hhbmdlKGUpIHsKICAgICAgdGhpcy5wbGFjZURhdGEucGxhY2VEZXRhaWwgPSB0aGlzLmFkZEVkaXRGb3JtLmxqUGxhY2VEZXRhaWw7CiAgICAgIHZhciBwbGFjZURhdGEgPSB0aGlzLmZvcm1hdFBhbGNlRGF0YSgpOwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2UnLCBwbGFjZURhdGEpOwogICAgfSwKICAgIC8vIOacjeWKoeWMugogICAgc2VydmljZUFyZWFDaGFuZ2U6IGZ1bmN0aW9uIHNlcnZpY2VBcmVhQ2hhbmdlKCkgewogICAgICB0aGlzLnBsYWNlRGF0YS5wbGFjZURldGFpbCA9IHRoaXMuYWRkRWRpdEZvcm0uZndxUGxhY2VEZXRhaWw7CiAgICAgIHZhciBwbGFjZURhdGEgPSB0aGlzLmZvcm1hdFBhbGNlRGF0YSgpOwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2UnLCBwbGFjZURhdGEpOwogICAgfSwKICAgIGZvcm1hdFBhbGNlRGF0YTogZnVuY3Rpb24gZm9ybWF0UGFsY2VEYXRhKCkgewogICAgICB2YXIgX3RoaXMkcGxhY2VEYXRhID0gdGhpcy5wbGFjZURhdGEsCiAgICAgICAgX3RoaXMkcGxhY2VEYXRhJHN0YXJ0ID0gX3RoaXMkcGxhY2VEYXRhLnN0YXJ0UGVnLAogICAgICAgIHN0YXJ0UGVnID0gX3RoaXMkcGxhY2VEYXRhJHN0YXJ0ID09PSB2b2lkIDAgPyAnJyA6IF90aGlzJHBsYWNlRGF0YSRzdGFydCwKICAgICAgICBfdGhpcyRwbGFjZURhdGEkc3RhcnQyID0gX3RoaXMkcGxhY2VEYXRhLnN0YXJ0UGVnQWRkLAogICAgICAgIHN0YXJ0UGVnQWRkID0gX3RoaXMkcGxhY2VEYXRhJHN0YXJ0MiA9PT0gdm9pZCAwID8gJycgOiBfdGhpcyRwbGFjZURhdGEkc3RhcnQyLAogICAgICAgIF90aGlzJHBsYWNlRGF0YSRlbmRQZSA9IF90aGlzJHBsYWNlRGF0YS5lbmRQZWcsCiAgICAgICAgZW5kUGVnID0gX3RoaXMkcGxhY2VEYXRhJGVuZFBlID09PSB2b2lkIDAgPyAnJyA6IF90aGlzJHBsYWNlRGF0YSRlbmRQZSwKICAgICAgICBfdGhpcyRwbGFjZURhdGEkZW5kUGUyID0gX3RoaXMkcGxhY2VEYXRhLmVuZFBlZ0FkZCwKICAgICAgICBlbmRQZWdBZGQgPSBfdGhpcyRwbGFjZURhdGEkZW5kUGUyID09PSB2b2lkIDAgPyAnJyA6IF90aGlzJHBsYWNlRGF0YSRlbmRQZTIsCiAgICAgICAgX3RoaXMkcGxhY2VEYXRhJHN0YXJ0MyA9IF90aGlzJHBsYWNlRGF0YS5zdGFydFBhdHJvbCwKICAgICAgICBzdGFydFBhdHJvbCA9IF90aGlzJHBsYWNlRGF0YSRzdGFydDMgPT09IHZvaWQgMCA/ICcnIDogX3RoaXMkcGxhY2VEYXRhJHN0YXJ0MywKICAgICAgICBfdGhpcyRwbGFjZURhdGEkZW5kUGEgPSBfdGhpcyRwbGFjZURhdGEuZW5kUGF0cm9sLAogICAgICAgIGVuZFBhdHJvbCA9IF90aGlzJHBsYWNlRGF0YSRlbmRQYSA9PT0gdm9pZCAwID8gJycgOiBfdGhpcyRwbGFjZURhdGEkZW5kUGEsCiAgICAgICAgX3RoaXMkcGxhY2VEYXRhJHBsYWNlID0gX3RoaXMkcGxhY2VEYXRhLnBsYWNlRGV0YWlsLAogICAgICAgIHBsYWNlRGV0YWlsID0gX3RoaXMkcGxhY2VEYXRhJHBsYWNlID09PSB2b2lkIDAgPyBbXSA6IF90aGlzJHBsYWNlRGF0YSRwbGFjZTsKICAgICAgdmFyIHN0YXJ0ID0gc3RhcnRQZWcgPyAnSycgKyBzdGFydFBlZyArIChzdGFydFBlZ0FkZCAhPT0gJycgPyAnKycgKyBzdGFydFBlZ0FkZCA6ICcnKSA6ICcnOwogICAgICB2YXIgZW5kID0gZW5kUGVnID8gJ0snICsgZW5kUGVnICsgKGVuZFBlZ0FkZCAhPT0gJycgPyAnKycgKyBlbmRQZWdBZGQgOiAnJykgOiAnJzsKICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJzEnKSB7CiAgICAgICAgcmV0dXJuIChzdGFydFBhdHJvbCA/IHN0YXJ0UGF0cm9sIDogJycpICsgKGVuZFBhdHJvbCA/ICfoh7MnICsgZW5kUGF0cm9sIDogJycpICsgKHN0YXJ0ID8gJycgKyBzdGFydCA6ICcnKSArIChlbmQgPyAnLScgKyBlbmQgOiAnJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICIgIi5jb25jYXQocGxhY2VEZXRhaWwuam9pbign44CBJykpOwogICAgICB9CiAgICB9LAogICAgc2VuZERhdGE6IGZ1bmN0aW9uIHNlbmREYXRhKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgdmFyIGZsYWcgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHRydWU7CiAgICAgIHZhciBfdGhpcyRhZGRFZGl0Rm9ybSA9IHRoaXMuYWRkRWRpdEZvcm0sCiAgICAgICAgcGxhY2VOYW1lID0gX3RoaXMkYWRkRWRpdEZvcm0ucGxhY2VOYW1lLAogICAgICAgIHBsYWNlRGV0YWlsID0gX3RoaXMkYWRkRWRpdEZvcm0ucGxhY2VEZXRhaWwsCiAgICAgICAgc3RhcnRQZWcgPSBfdGhpcyRhZGRFZGl0Rm9ybS5zdGFydFBlZywKICAgICAgICBzdGFydFBlZ0FkZCA9IF90aGlzJGFkZEVkaXRGb3JtLnN0YXJ0UGVnQWRkLAogICAgICAgIGVuZFBlZyA9IF90aGlzJGFkZEVkaXRGb3JtLmVuZFBlZywKICAgICAgICBlbmRQZWdBZGQgPSBfdGhpcyRhZGRFZGl0Rm9ybS5lbmRQZWdBZGQsCiAgICAgICAgc3RhcnRQYXRyb2xJZCA9IF90aGlzJGFkZEVkaXRGb3JtLnN0YXJ0UGF0cm9sSWQsCiAgICAgICAgc3RhcnRQYXRyb2xOYW1lID0gX3RoaXMkYWRkRWRpdEZvcm0uc3RhcnRQYXRyb2xOYW1lLAogICAgICAgIGVuZFBhdHJvbElkID0gX3RoaXMkYWRkRWRpdEZvcm0uZW5kUGF0cm9sSWQsCiAgICAgICAgZW5kUGF0cm9sTmFtZSA9IF90aGlzJGFkZEVkaXRGb3JtLmVuZFBhdHJvbE5hbWU7CiAgICAgIHZhciBwZWdTVmFsID0gJyc7CiAgICAgIHZhciBwZWdFVmFsID0gJyc7CiAgICAgIGlmIChzdGFydFBlZyAhPT0gJycgJiYgc3RhcnRQZWcgIT09IHVuZGVmaW5lZCAmJiBzdGFydFBlZ0FkZCAhPT0gJycgJiYgc3RhcnRQZWdBZGQgIT09IHVuZGVmaW5lZCkgewogICAgICAgIHBlZ1NWYWwgPSAnaycgKyAoc3RhcnRQZWcgIT09ICcnID8gc3RhcnRQZWcgOiAnJykgKyAnKycgKyAoc3RhcnRQZWdBZGQgIT09ICcnID8gc3RhcnRQZWdBZGQgOiAnJyk7CiAgICAgIH0KICAgICAgaWYgKGVuZFBlZyAhPT0gJycgJiYgZW5kUGVnICE9PSB1bmRlZmluZWQgJiYgZW5kUGVnQWRkICE9PSAnJyAmJiBlbmRQZWdBZGQgIT09IHVuZGVmaW5lZCkgewogICAgICAgIHBlZ0VWYWwgPSAnaycgKyAoZW5kUGVnICE9PSAnJyA/IGVuZFBlZyA6ICcnKSArICcrJyArIChlbmRQZWdBZGQgIT09ICcnID8gZW5kUGVnQWRkIDogJycpOwogICAgICB9CiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJzEnKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHBlZ1NWYWw6IHBlZ1NWYWwsCiAgICAgICAgICBwZWdFVmFsOiBwZWdFVmFsLAogICAgICAgICAgc3RhcnRQYXRyb2xJZDogc3RhcnRQYXRyb2xJZCwKICAgICAgICAgIHN0YXJ0UGF0cm9sTmFtZTogc3RhcnRQYXRyb2xOYW1lLAogICAgICAgICAgZW5kUGF0cm9sSWQ6IGVuZFBhdHJvbElkLAogICAgICAgICAgZW5kUGF0cm9sTmFtZTogZW5kUGF0cm9sTmFtZQogICAgICAgIH07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIG5hbWUgPSB0aGlzLnR5cGUgPT0gJzMnID8gJ3NkJyA6IHRoaXMudHlwZSA9PSAnNCcgPyAnbGonIDogdGhpcy50eXBlID09ICcyJyA/ICdzd3onIDogJ2Z3cSc7CiAgICAgICAgdmFyIGFycmF5ID0gW107CiAgICAgICAgaWYgKHRoaXMuYWRkRWRpdEZvcm1bIiIuY29uY2F0KG5hbWUsICJQbGFjZURldGFpbCIpXS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAvLyBhcnJheSA9IHRoaXMuYWRkRWRpdEZvcm1bYCR7bmFtZX1QbGFjZURldGFpbGBdLm1hcChpdGVtID0+IHsKICAgICAgICAgIC8vICAgcmV0dXJuIHsKICAgICAgICAgIC8vICAgICBwbGFjZU5hbWU6IGl0ZW0sCiAgICAgICAgICAvLyAgICAgcGVnU1ZhbCwKICAgICAgICAgIC8vICAgICBwZWdFVmFsCiAgICAgICAgICAvLyAgIH0KICAgICAgICAgIC8vIH0pCiAgICAgICAgICB2YXIgZGF0YVNvdXJjZU1hcCA9IHsKICAgICAgICAgICAgJzInOiB7CiAgICAgICAgICAgICAgc291cmNlOiAndG9sbFN0YXRpb25EYXRhJywKICAgICAgICAgICAgICBmaWVsZDogJ3N3elBsYWNlRGV0YWlsJwogICAgICAgICAgICB9LAogICAgICAgICAgICAnMyc6IHsKICAgICAgICAgICAgICBzb3VyY2U6ICd0dW5uZWxEYXRhJywKICAgICAgICAgICAgICBmaWVsZDogJ3NkUGxhY2VEZXRhaWwnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICc0JzogewogICAgICAgICAgICAgIHNvdXJjZTogJ2dyYWRlT3ZlckRhdGEnLAogICAgICAgICAgICAgIGZpZWxkOiAnbGpQbGFjZURldGFpbCcKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJzUnOiB7CiAgICAgICAgICAgICAgc291cmNlOiAnc2VydmljZUFyZWFEYXRhJywKICAgICAgICAgICAgICBmaWVsZDogJ2Z3cVBsYWNlRGV0YWlsJwogICAgICAgICAgICB9CiAgICAgICAgICB9OwogICAgICAgICAgdmFyIF9kYXRhU291cmNlTWFwJHRoaXMkdCA9IGRhdGFTb3VyY2VNYXBbdGhpcy50eXBlXSwKICAgICAgICAgICAgc291cmNlID0gX2RhdGFTb3VyY2VNYXAkdGhpcyR0LnNvdXJjZSwKICAgICAgICAgICAgZmllbGQgPSBfZGF0YVNvdXJjZU1hcCR0aGlzJHQuZmllbGQ7CiAgICAgICAgICBhcnJheSA9IHRoaXMuYWRkRWRpdEZvcm1bZmllbGRdLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICB2YXIgX21hdGNoZWRJdGVtcyQsIF9tYXRjaGVkSXRlbXMkMiwgX21hdGNoZWRJdGVtcyQzOwogICAgICAgICAgICB2YXIgbWF0Y2hlZEl0ZW1zID0gX3RoaXM0W3NvdXJjZV0uZmlsdGVyKGZ1bmN0aW9uIChiSXRlbSkgewogICAgICAgICAgICAgIHJldHVybiBiSXRlbS5uYW1lID09PSBTdHJpbmcoaXRlbSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIHBsYWNlTmFtZTogaXRlbSwKICAgICAgICAgICAgICBwZWdTVmFsOiBwZWdTVmFsLAogICAgICAgICAgICAgIHBlZ0VWYWw6IHBlZ0VWYWwsCiAgICAgICAgICAgICAgbGF0OiAoX21hdGNoZWRJdGVtcyQgPSBtYXRjaGVkSXRlbXNbMF0pID09PSBudWxsIHx8IF9tYXRjaGVkSXRlbXMkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbWF0Y2hlZEl0ZW1zJC5sYXQsCiAgICAgICAgICAgICAgbG5nOiAoX21hdGNoZWRJdGVtcyQyID0gbWF0Y2hlZEl0ZW1zWzBdKSA9PT0gbnVsbCB8fCBfbWF0Y2hlZEl0ZW1zJDIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9tYXRjaGVkSXRlbXMkMi5sbmcsCiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAoX21hdGNoZWRJdGVtcyQzID0gbWF0Y2hlZEl0ZW1zWzBdKSA9PT0gbnVsbCB8fCBfbWF0Y2hlZEl0ZW1zJDMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9tYXRjaGVkSXRlbXMkMy5kaXJlY3Rpb24KICAgICAgICAgICAgfTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgIH0KICAgIH0sCiAgICAvL+a4heepuuaVsOaNrgogICAgY2xlYXJDaGFuZ2U6IGZ1bmN0aW9uIGNsZWFyQ2hhbmdlKCkgewogICAgICB0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnID0gdW5kZWZpbmVkOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnQWRkID0gdW5kZWZpbmVkOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBlZyA9IHVuZGVmaW5lZDsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQYXRyb2xJZCA9ICcnOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGF0cm9sTmFtZSA9ICcnOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBhdHJvbElkID0gJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZW5kUGF0cm9sTmFtZSA9ICcnOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnBsYWNlRGV0YWlsID0gW107CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3d6UGxhY2VEZXRhaWwgPSBbXTsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5salBsYWNlRGV0YWlsID0gW107CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc2RQbGFjZURldGFpbCA9IFtdOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLmZ3cVBsYWNlRGV0YWlsID0gW107CiAgICB9LAogICAgLy8g6K+m5oOF6LWL5YC8ZQogICAgZ2V0RGV0YWlsOiBmdW5jdGlvbiBnZXREZXRhaWwocm93KSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB2YXIgcGxhY2VEZXRhaWwgPSByb3cucGxhY2VEZXRhaWwsCiAgICAgICAgcGVnU1ZhbCA9IHJvdy5wZWdTVmFsLAogICAgICAgIHBlZ0VWYWwgPSByb3cucGVnRVZhbCwKICAgICAgICBzdGFydFBhdHJvbElkID0gcm93LnN0YXJ0UGF0cm9sSWQsCiAgICAgICAgc3RhcnRQYXRyb2xOYW1lID0gcm93LnN0YXJ0UGF0cm9sTmFtZSwKICAgICAgICBlbmRQYXRyb2xJZCA9IHJvdy5lbmRQYXRyb2xJZCwKICAgICAgICBlbmRQYXRyb2xOYW1lID0gcm93LmVuZFBhdHJvbE5hbWU7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoX3RoaXM1LnR5cGUgPT0gJzEnKSB7CiAgICAgICAgICB2YXIgZGF0YSA9IHsKICAgICAgICAgICAgc3RhcnRQYXRyb2xJZDogc3RhcnRQYXRyb2xJZCwKICAgICAgICAgICAgc3RhcnRQYXRyb2xOYW1lOiBzdGFydFBhdHJvbE5hbWUsCiAgICAgICAgICAgIGVuZFBhdHJvbElkOiBlbmRQYXRyb2xJZCwKICAgICAgICAgICAgZW5kUGF0cm9sTmFtZTogZW5kUGF0cm9sTmFtZQogICAgICAgICAgfTsKICAgICAgICAgIGlmIChwZWdTVmFsKSB7CiAgICAgICAgICAgIHZhciBzdGFydFBlZ0FyciA9IHBlZ1NWYWwuc3BsaXQoJysnKTsKICAgICAgICAgICAgZGF0YS5zdGFydFBlZyA9IHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpOwogICAgICAgICAgICBkYXRhLnN0YXJ0UGVnQWRkID0gc3RhcnRQZWdBcnJbMV07CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGVnRVZhbCkgewogICAgICAgICAgICB2YXIgZW5kUGVnQXJyID0gcGVnRVZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICBkYXRhLmVuZFBlZyA9IGVuZFBlZ0FyclswXS5zbGljZSgxKTsKICAgICAgICAgICAgZGF0YS5lbmRQZWdBZGQgPSBlbmRQZWdBcnJbMV07CiAgICAgICAgICB9CiAgICAgICAgICBfdGhpczUuYWRkRWRpdEZvcm0gPSBkYXRhOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvLyDmj5Dlj5YgcGVnU1ZhbCDlkowgcGVnRVZhbAogICAgICAgICAgcm93LnBsYWNlRGV0YWlsID0gSlNPTi5wYXJzZShyb3cucGxhY2VEZXRhaWwpOwogICAgICAgICAgdmFyIHBlZ1NWYWxzID0gcm93LnBsYWNlRGV0YWlsWzBdLnBlZ1NWYWw7CiAgICAgICAgICB2YXIgcGVnRVZhbHMgPSByb3cucGxhY2VEZXRhaWxbMF0ucGVnRVZhbDsKICAgICAgICAgIGlmIChwZWdTVmFscykgewogICAgICAgICAgICB2YXIgX3N0YXJ0UGVnQXJyID0gcGVnU1ZhbHMuc3BsaXQoJysnKTsKICAgICAgICAgICAgX3RoaXM1LmFkZEVkaXRGb3JtLnN0YXJ0UGVnID0gX3N0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpOwogICAgICAgICAgICBfdGhpczUuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPSBfc3RhcnRQZWdBcnJbMV07CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGVnRVZhbHMpIHsKICAgICAgICAgICAgdmFyIF9lbmRQZWdBcnIgPSBwZWdFVmFscy5zcGxpdCgnKycpOwogICAgICAgICAgICBfdGhpczUuYWRkRWRpdEZvcm0uZW5kUGVnID0gX2VuZFBlZ0FyclswXS5zbGljZSgxKTsKICAgICAgICAgICAgX3RoaXM1LmFkZEVkaXRGb3JtLmVuZFBlZ0FkZCA9IF9lbmRQZWdBcnJbMV07CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgbmFtZSA9IF90aGlzNS50eXBlID09ICczJyA/ICdzZCcgOiBfdGhpczUudHlwZSA9PSAnNCcgPyAnbGonIDogX3RoaXM1LnR5cGUgPT0gJzInID8gJ3N3eicgOiAnZndxJzsKICAgICAgICAgIC8vIOWwhiBwbGFjZURldGFpbCDovazmjaLkuLrlnLDngrnlkI3np7DmlbDnu4QKICAgICAgICAgIF90aGlzNS5hZGRFZGl0Rm9ybVsiIi5jb25jYXQobmFtZSwgIlBsYWNlRGV0YWlsIildID0gcm93LnBsYWNlRGV0YWlsLm1hcChmdW5jdGlvbiAocGxhY2UpIHsKICAgICAgICAgICAgcmV0dXJuIHBsYWNlLnBsYWNlTmFtZTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},null]}