{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataServices\\dataServiceAPI\\AddDialog.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataServices\\dataServiceAPI\\AddDialog.vue","mtime":1749063336055},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UvZGF0YVNoYXJlLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yUnVudGltZS5qcyI7CmltcG9ydCBfYXN5bmNUb0dlbmVyYXRvciBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9kYXRhU2hhcmUtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2RhdGFTaGFyZS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5qc29uLnN0cmluZ2lmeS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcudHJpbS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IEFQSSBmcm9tICdAL2FwaS9idXNpbmVzcy9kYXRhU2VydmljZUFQSSc7CmltcG9ydCBkaWFsb2dNaXhpbiBmcm9tICdAL21peGlucy9kaWFsb2cuanMnOwppbXBvcnQgY29kZUVkaXRvciBmcm9tICdAL2NvbXBvbmVudHMvY29kZUVkaXRvci9pbmRleC52dWUnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0RldGFpbERpYWxvZycsCiAgY29tcG9uZW50czogewogICAgY29kZUVkaXRvcjogY29kZUVkaXRvcgogIH0sCiAgbWl4aW5zOiBbZGlhbG9nTWl4aW5dLAogIHByb3BzOiB7CiAgICBhZGRJZDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICcnCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZSwKICAgICAgLy8g5qCH6K6w5piv5ZCm5q2j5Zyo5o+Q5Lqk5Lit77yI55So5LqO6Ziy5oqW5ZKM5oyJ6ZKu56aB55So77yJCiAgICAgIGFkZEpzb25NdWx0aXBsZVJlcXVlc3RQYXJhbXM6IFtdLAogICAgICBhZGRKc29uTXVsdGlwbGVSZXF1ZXN0SGVhZGVyOiBbXSwKICAgICAgYWRkSnNvbk11bHRpcGxlUmVzcG9uc2VQYXJhbXM6IFtdLAogICAgICBhZGRKc29uTXVsdGlwbGVSZXNwb25zZVN0YXR1czogW10sCiAgICAgIHRhYkl0ZW1JZDogMSwKICAgICAgLy8g6KGo5qC85pWw5o2u55qEIGlkCiAgICAgIGxhYmVsUG9zaXRpb246ICdsZWZ0JywKICAgICAgdGltZVZhbHVlOiAnJywKICAgICAgcXVyZXk6ICcnLAogICAgICBtb2RlOiAnJywKICAgICAgc3Fsb3B0aW9uczogW10sCiAgICAgIG9wdGlvbnM6IFt7CiAgICAgICAgbGFiZWw6ICfliIbpobUnLAogICAgICAgIHZhbHVlOiAnMScKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn5LiN5YiG6aG1JywKICAgICAgICB2YWx1ZTogJzAnCiAgICAgIH1dLAogICAgICBmb3JtOiB7CiAgICAgICAgc291cmNlVHlwZTogJzEnLAogICAgICAgIHNxbDogJycsCiAgICAgICAgYXBpUXVyZXlUeXBlOiAnJywKICAgICAgICAvLyDor7fmsYLlj4LmlbDor7TmmI4KICAgICAgICByZXF1ZXN0UGFyYW1zOiBbewogICAgICAgICAgcGFyYW06ICcnLAogICAgICAgICAgY29tbWVudDogJycsCiAgICAgICAgICB0eXBlOiAnU3RyaW5nJywKICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICAgIH1dLAogICAgICAgIC8vIOivt+axguWktOivtOaYjgogICAgICAgIHJlcXVlc3RIZWFkZXI6IFt7CiAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICBjb21tZW50OiAnJywKICAgICAgICAgIHR5cGU6ICdTdHJpbmcnLAogICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgICAgfV0sCiAgICAgICAgLy8g6L+U5Zue5Y+C5pWw6K+05piOCiAgICAgICAgcmVzcG9uc2VQYXJhbXM6IFt7CiAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICBjb21tZW50OiAnJywKICAgICAgICAgIHR5cGU6ICdTdHJpbmcnCiAgICAgICAgfV0sCiAgICAgICAgLy8g5ZON5bqU54q25oCB56CB5L+h5oGvCiAgICAgICAgcmVzcG9uc2VTdGF0dXM6IFt7CiAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICBjb21tZW50OiAnJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHR5cGVvcHRpb25zOiBbewogICAgICAgIHZhbHVlOiAnU3RyaW5nJywKICAgICAgICBsYWJlbDogJ+Wtl+espuS4sicKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAnSW50ZWdlcicsCiAgICAgICAgbGFiZWw6ICfmlbDlrZflnosnCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogJ0RhdGUnLAogICAgICAgIGxhYmVsOiAn5pel5pyfJwogICAgICB9CiAgICAgIC8vIHsgdmFsdWU6ICc0JywgbGFiZWw6ICfml7bpl7QnIH0sCiAgICAgIF0sCiAgICAgIHRhYmxlTmFtZUxpc3Q6IFsnR0VUJywgJ1BPU1QnXSwKICAgICAgcnVsZXM6IHsKICAgICAgICBhcGlOYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5o6l5Y+j5ZCN56ew5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGFwaVVybDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+aOpeWPo+WcsOWdgOS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBhcGlRdXJleVR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmjqXlj6Pmn6Xor6LmlrnlvI/kuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBhcGlNb2RlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+35rGC5pa55byP5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgYXBpU3FsOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAnU1FM5p+l6K+i6K+t5Y+l5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGRiQWxpYXM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nmlbDmja7mupAnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XQogICAgICB9LAogICAgICBsb2FkaW5nOiBmYWxzZQogICAgfTsKICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLm9uQ29uZmlybSgpOwogIH0sCiAgbWV0aG9kczogewogICAgLyoqDQogICAgICogQGRlc2NyaXB0aW9uOiBkaWFsb2fmr4/mrKHmmL7npLrml7bop6blj5HnmoRpbml05pa55rOVDQogICAgICogQHBhcmFtIHsqfSBkYXRhIOS8oOWFpWRhdGENCiAgICAgKiBAcmV0dXJuIHsqfQ0KICAgICAqLwogICAgaW5pdERhdGE6IGZ1bmN0aW9uIGluaXREYXRhKGRhdGEpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdmFyIG9yZ0Zvcm0gPSB0aGlzLiRvcHRpb25zLmRhdGEoKS5mb3JtOwogICAgICB0aGlzLmZvcm0gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG9yZ0Zvcm0pLCBkYXRhKTsKICAgICAgY29uc29sZS5sb2coJ3NjYWNhYycsIHRoaXMuY2F0YWxvZ0lkKTsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzLiRyZWZzLmZvcm0uY2xlYXJWYWxpZGF0ZSgpOwogICAgICB9KTsKICAgICAgdGhpcy5zZWxlY3RTcWwoKTsKICAgIH0sCiAgICAvLyDmlbDmja7mupDmjqXlj6PosIPnlKgKICAgIHNlbGVjdFNxbDogZnVuY3Rpb24gc2VsZWN0U3FsKCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgcmV0dXJuIEFQSS5hZGRTb3VyY2VEYXRhKCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgY29uc29sZS5sb2coJ2NhY2FjYWNzJywgcmVzKTsgLy8g5pWw5o2u5bqTCiAgICAgICAgX3RoaXMyLnNxbG9wdGlvbnMgPSByZXMuZGF0YS5tYXAoZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICAgIHZhciBmb3JtID0gewogICAgICAgICAgICBsYWJlbDogZGF0YS5uYW1lLAogICAgICAgICAgICB2YWx1ZTogZGF0YS5hbGlhcwogICAgICAgICAgfTsKICAgICAgICAgIHJldHVybiBmb3JtOwogICAgICAgIH0pOwogICAgICAgIC8vIGNvbnNvbGUubG9nKHJlcy5yb3dzKTsKICAgICAgICBjb25zb2xlLmxvZygn5pWw5o2u5rqQJywgX3RoaXMyLnNxbG9wdGlvbnMpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICBjb25zb2xlLmVycm9yKCfojrflj5bmlbDmja7mupDlpLHotKUnLCBlcnJvcik7CiAgICAgIH0pOwogICAgfSwKICAgIFJuZE51bTogZnVuY3Rpb24gUm5kTnVtKG4pIHsKICAgICAgLy8g55Sf5oiQ6ZqP5py65pWwCiAgICAgIHZhciByZG1OdW0gPSAnJzsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICByZG1OdW0gKz0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApOyAvLyBbMCwxMCnnmoTmlbTmlbAKICAgICAgfQogICAgICByZXR1cm4gcmRtTnVtOwogICAgfSwKICAgIC8vIOivt+axguWPguaVsOivtOaYji0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGFkZEpzb25SZXF1ZXN0UGFyYW1zOiBmdW5jdGlvbiBhZGRKc29uUmVxdWVzdFBhcmFtcyh2YWwpIHsKICAgICAgdGhpcy5hZGRKc29uTXVsdGlwbGVSZXF1ZXN0UGFyYW1zID0gdmFsOwogICAgfSwKICAgIC8vIOa3u+WKoAogICAgYWRkVGFibGVSZXF1ZXN0UGFyYW1zOiBmdW5jdGlvbiBhZGRUYWJsZVJlcXVlc3RQYXJhbXMoKSB7CiAgICAgIHRoaXMudGFiSXRlbUlkID0gIlQiLmNvbmNhdCh0aGlzLlJuZE51bSg2KSk7IC8vIOeUn+aIkOS7pVTlvIDlpLTnmoTkuIPkvY3pmo/mnLrmlbAKICAgICAgdGhpcy5mb3JtLnJlcXVlc3RQYXJhbXMucHVzaCh7CiAgICAgICAgbmFtZTogJycsCiAgICAgICAgdmFsdWU6ICcnLAogICAgICAgIHRhYkl0ZW1JZDogdGhpcy50YWJJdGVtSWQKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Yig6ZmkCiAgICBkZWxUYWJsZVJlcXVlc3RQYXJhbXM6IGZ1bmN0aW9uIGRlbFRhYmxlUmVxdWVzdFBhcmFtcygpIHsKICAgICAgLy8g56Gu6K6k5Yig6ZmkCiAgICAgIGlmICh0aGlzLmFkZEpzb25NdWx0aXBsZVJlcXVlc3RQYXJhbXMubGVuZ3RoID4gMCkgewogICAgICAgIHZhciBhcnJzID0gW107CiAgICAgICAgdmFyIGlkcyA9IHRoaXMuYWRkSnNvbk11bHRpcGxlUmVxdWVzdFBhcmFtcy5tYXAoZnVuY3Rpb24gKHZhbCkgewogICAgICAgICAgcmV0dXJuIHZhbC50YWJJdGVtSWQ7CiAgICAgICAgfSk7IC8vIOaLv+WIsOmAieS4reeahOaVsOaNrmlkLAogICAgICAgIHRoaXMuZm9ybS5yZXF1ZXN0UGFyYW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGl0ZW0udGFiSXRlbUlkKSkgewogICAgICAgICAgICAvLyDlvZNpZOWcqHBhcmFtc+S4re+8jOihqOekuuaVsOaNruiiq+mAieS4re+8jOivpeWwhuWFtuWIoOmZpO+8jOWNs+WwhuS4jeiiq+mAieS4reeahOS/neeVmQogICAgICAgICAgICBhcnJzLnB1c2goaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5mb3JtLnJlcXVlc3RQYXJhbXMgPSBhcnJzOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2uJyk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDor7fmsYLlpLTor7TmmI4tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGFkZEpzb25SZXF1ZXN0SGVhZGVyOiBmdW5jdGlvbiBhZGRKc29uUmVxdWVzdEhlYWRlcih2YWwpIHsKICAgICAgdGhpcy5hZGRKc29uTXVsdGlwbGVSZXF1ZXN0SGVhZGVyID0gdmFsOwogICAgfSwKICAgIC8vIOa3u+WKoAogICAgYWRkVGFibGVSZXF1ZXN0SGVhZGVyOiBmdW5jdGlvbiBhZGRUYWJsZVJlcXVlc3RIZWFkZXIoKSB7CiAgICAgIHRoaXMudGFiSXRlbUlkID0gIlQiLmNvbmNhdCh0aGlzLlJuZE51bSg2KSk7IC8vIOeUn+aIkOS7pVTlvIDlpLTnmoTkuIPkvY3pmo/mnLrmlbAKICAgICAgdGhpcy5mb3JtLnJlcXVlc3RIZWFkZXIucHVzaCh7CiAgICAgICAgbmFtZTogJycsCiAgICAgICAgdmFsdWU6ICcnLAogICAgICAgIHRhYkl0ZW1JZDogdGhpcy50YWJJdGVtSWQKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Yig6ZmkCiAgICBkZWxUYWJsZVJlcXVlc3RIZWFkZXI6IGZ1bmN0aW9uIGRlbFRhYmxlUmVxdWVzdEhlYWRlcigpIHsKICAgICAgLy8g56Gu6K6k5Yig6ZmkCiAgICAgIGlmICh0aGlzLmFkZEpzb25NdWx0aXBsZVJlcXVlc3RIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgIHZhciBhcnJzID0gW107CiAgICAgICAgdmFyIGlkcyA9IHRoaXMuYWRkSnNvbk11bHRpcGxlUmVxdWVzdEhlYWRlci5tYXAoZnVuY3Rpb24gKHZhbCkgewogICAgICAgICAgcmV0dXJuIHZhbC50YWJJdGVtSWQ7CiAgICAgICAgfSk7IC8vIOaLv+WIsOmAieS4reeahOaVsOaNrmlkLAogICAgICAgIHRoaXMuZm9ybS5yZXF1ZXN0SGVhZGVyLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGl0ZW0udGFiSXRlbUlkKSkgewogICAgICAgICAgICAvLyDlvZNpZOWcqHBhcmFtc+S4re+8jOihqOekuuaVsOaNruiiq+mAieS4re+8jOivpeWwhuWFtuWIoOmZpO+8jOWNs+WwhuS4jeiiq+mAieS4reeahOS/neeVmQogICAgICAgICAgICBhcnJzLnB1c2goaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5mb3JtLnJlcXVlc3RIZWFkZXIgPSBhcnJzOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2uJyk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDov5Tlm57lj4LmlbDor7TmmI4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBhZGRKc29uUmVzcG9uc2VTdGF0dXM6IGZ1bmN0aW9uIGFkZEpzb25SZXNwb25zZVN0YXR1cyh2YWwpIHsKICAgICAgdGhpcy5hZGRKc29uTXVsdGlwbGVSZXNwb25zZVBhcmFtcyA9IHZhbDsKICAgIH0sCiAgICAvLyDmt7vliqAKICAgIGFkZFRhYmxlUmVzcG9uc2VQYXJhbXM6IGZ1bmN0aW9uIGFkZFRhYmxlUmVzcG9uc2VQYXJhbXMoKSB7CiAgICAgIHRoaXMudGFiSXRlbUlkID0gIlQiLmNvbmNhdCh0aGlzLlJuZE51bSg2KSk7IC8vIOeUn+aIkOS7pVTlvIDlpLTnmoTkuIPkvY3pmo/mnLrmlbAKICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zLnB1c2goewogICAgICAgIG5hbWU6ICcnLAogICAgICAgIHZhbHVlOiAnJywKICAgICAgICB0YWJJdGVtSWQ6IHRoaXMudGFiSXRlbUlkCiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWIoOmZpAogICAgZGVsVGFibGVSZXNwb25zZVBhcmFtczogZnVuY3Rpb24gZGVsVGFibGVSZXNwb25zZVBhcmFtcygpIHsKICAgICAgLy8g56Gu6K6k5Yig6ZmkCiAgICAgIGlmICh0aGlzLmFkZEpzb25NdWx0aXBsZVJlc3BvbnNlUGFyYW1zLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIgYXJycyA9IFtdOwogICAgICAgIHZhciBpZHMgPSB0aGlzLmFkZEpzb25NdWx0aXBsZVJlc3BvbnNlUGFyYW1zLm1hcChmdW5jdGlvbiAodmFsKSB7CiAgICAgICAgICByZXR1cm4gdmFsLnRhYkl0ZW1JZDsKICAgICAgICB9KTsgLy8g5ou/5Yiw6YCJ5Lit55qE5pWw5o2uaWQsCiAgICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGl0ZW0udGFiSXRlbUlkKSkgewogICAgICAgICAgICAvLyDlvZNpZOWcqHBhcmFtc+S4re+8jOihqOekuuaVsOaNruiiq+mAieS4re+8jOivpeWwhuWFtuWIoOmZpO+8jOWNs+WwhuS4jeiiq+mAieS4reeahOS/neeVmQogICAgICAgICAgICBhcnJzLnB1c2goaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zID0gYXJyczsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNricpOwogICAgICB9CiAgICB9LAogICAgLy8g5ZON5bqU54q25oCB56CB5L+h5oGvLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBhZGRKc29uUmVzcG9uc2VQYXJhbXM6IGZ1bmN0aW9uIGFkZEpzb25SZXNwb25zZVBhcmFtcyh2YWwpIHsKICAgICAgdGhpcy5hZGRKc29uTXVsdGlwbGVSZXNwb25zZVN0YXR1cyA9IHZhbDsKICAgIH0sCiAgICAvLyDmt7vliqAKICAgIGFkZFRhYmxlUmVzcG9uc2VTdGF0dXM6IGZ1bmN0aW9uIGFkZFRhYmxlUmVzcG9uc2VTdGF0dXMoKSB7CiAgICAgIHRoaXMudGFiSXRlbUlkID0gIlQiLmNvbmNhdCh0aGlzLlJuZE51bSg2KSk7IC8vIOeUn+aIkOS7pVTlvIDlpLTnmoTkuIPkvY3pmo/mnLrmlbAKICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzLnB1c2goewogICAgICAgIG5hbWU6ICcnLAogICAgICAgIHZhbHVlOiAnJywKICAgICAgICB0YWJJdGVtSWQ6IHRoaXMudGFiSXRlbUlkCiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWIoOmZpAogICAgZGVsVGFibGVSZXNwb25zZVN0YXR1czogZnVuY3Rpb24gZGVsVGFibGVSZXNwb25zZVN0YXR1cygpIHsKICAgICAgLy8g56Gu6K6k5Yig6ZmkCiAgICAgIGlmICh0aGlzLmFkZEpzb25NdWx0aXBsZVJlc3BvbnNlU3RhdHVzLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIgYXJycyA9IFtdOwogICAgICAgIHZhciBpZHMgPSB0aGlzLmFkZEpzb25NdWx0aXBsZVJlc3BvbnNlU3RhdHVzLm1hcChmdW5jdGlvbiAodmFsKSB7CiAgICAgICAgICByZXR1cm4gdmFsLnRhYkl0ZW1JZDsKICAgICAgICB9KTsgLy8g5ou/5Yiw6YCJ5Lit55qE5pWw5o2uaWQsCiAgICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGl0ZW0udGFiSXRlbUlkKSkgewogICAgICAgICAgICAvLyDlvZNpZOWcqHBhcmFtc+S4re+8jOihqOekuuaVsOaNruiiq+mAieS4re+8jOivpeWwhuWFtuWIoOmZpO+8jOWNs+WwhuS4jeiiq+mAieS4reeahOS/neeVmQogICAgICAgICAgICBhcnJzLnB1c2goaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzID0gYXJyczsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNricpOwogICAgICB9CiAgICB9LAogICAgLy8g5Y+W5raI5oyJ6ZKuCiAgICBvbkNhbmNlbDogZnVuY3Rpb24gb25DYW5jZWwoKSB7CiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlOwogICAgICB0aGlzLmZvcm0gPSB0aGlzLiRvcHRpb25zLmRhdGEoKS5mb3JtOwogICAgfSwKICAgIC8vIOehruWumuaMiemSri3mlrDlop7lkI7mjqXlj6PosIPnlKjvvIzlsZXnpLrlnKjliJfooagKICAgIG9uQ29uZmlybTogZnVuY3Rpb24gb25Db25maXJtKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgLy8gdGhpcy4kcmVmcy5mb3JtLnZhbGlkYXRlKGFzeW5jICh2YWxpZCkgPT4gewogICAgICAvLyAgIGlmICh2YWxpZCkgewogICAgICAvLyAgICAgdGhpcy5mb3JtLmNhdGFsb2dJZCA9IHRoaXMuYWRkSWQKICAgICAgLy8gICAgIHRoaXMuZm9ybS5yZXF1ZXN0UGFyYW1zID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnJlcXVlc3RQYXJhbXMpIC8vIOivt+axguWPguaVsOivtOaYjgogICAgICAvLyAgICAgdGhpcy5mb3JtLnJlcXVlc3RIZWFkZXIgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm0ucmVxdWVzdEhlYWRlcikgLy8g6K+35rGC5aS06K+05piOCiAgICAgIC8vICAgICB0aGlzLmZvcm0ucmVzcG9uc2VQYXJhbXMgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm0ucmVzcG9uc2VQYXJhbXMpIC8vIOi/lOWbnuWPguaVsOivtOaYjgogICAgICAvLyAgICAgdGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzKSAvLyDlk43lupTnirbmgIHnoIHkv6Hmga8KICAgICAgLy8gICAgIEFQSS5hZGRBY3Rpb24odGhpcy5mb3JtLCBmYWxzZSkKICAgICAgLy8gICAgICAgLnRoZW4oKHJlcykgPT4gewogICAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCdhZGRkYXRhc3NzJywgcmVzKQogICAgICAvLyAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygn5o6l5Y+j5paw5aKe5oiQ5Yqf77yBJykKICAgICAgLy8gICAgICAgICAvLyDmlrDlop7miJDlip/lkI7vvIzpgJrov4cgJGVtaXQg6Kem5Y+R6Ieq5a6a5LmJ5LqL5Lu277yM5Lyg6YCS5paw5aKe5oiQ5Yqf55qE5L+h5Y+35Lul5Y+K5Y+v6IO955u45YWz55qE5pWw5o2u77yI54i257uE5Lu25Y+v5Lul55uR5ZCs6L+Z5Liq5LqL5Lu25p2l5YGa5Ye655u45bqU55qE5aSE55CG77yJCiAgICAgIC8vICAgICAgICAgdGhpcy4kZW1pdCgnY29uZmlybScpCiAgICAgIC8vICAgICAgIH0pCiAgICAgIC8vICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHsKICAgICAgLy8gICAgICAgICBjb25zb2xlLmVycm9yKCfojrflj5bmlbDmja7lpLHotKUnLCBlcnJvcikKICAgICAgLy8gICAgICAgfSkKICAgICAgLy8gICAgIHRoaXMubG9hZGluZyA9IGZhbHNlCiAgICAgIC8vICAgICAvLyB9CiAgICAgIC8vICAgfSBlbHNlIHsKICAgICAgLy8gICAgIGNvbnNvbGUubG9nKCfooajljZXpqozor4HlpLHotKXvvIzor7fmo4Dmn6XmiYDmnInlv4XloavpobknKQogICAgICAvLyAgICAgcmV0dXJuIGZhbHNlCiAgICAgIC8vICAgfQogICAgICAvLyB9KQogICAgICAvLyB0aGlzLmxvYWRpbmcgPSBmYWxzZQogICAgICAvLyB0aGlzLnZpc2libGUgPSBmYWxzZQogICAgICAvLyDpmLLmipbvvJrlpoLmnpzmraPlnKjmj5DkuqTkuK3vvIznm7TmjqXov5Tlm54KICAgICAgaWYgKHRoaXMuaXNTdWJtaXR0aW5nKSByZXR1cm47CiAgICAgIHRoaXMuJHJlZnMuZm9ybS52YWxpZGF0ZSgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUodmFsaWQpIHsKICAgICAgICAgIHZhciBmb3JtRGF0YSwgcmVxdWVzdERhdGE7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDM7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+ihqOWNlemqjOivgeWksei0pe+8jOivt+ajgOafpeaJgOacieW/heWhq+mhuScpOwogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdCgicmV0dXJuIiwgZmFsc2UpOwogICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgIC8vIOW8gOWni+aPkOS6pO+8jOemgeeUqOaMiemSrgogICAgICAgICAgICAgICAgX3RoaXMzLmlzU3VibWl0dGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBfdGhpczMubG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gNTsKICAgICAgICAgICAgICAgIC8vIOagvOW8j+WMluaVsOaNrgogICAgICAgICAgICAgICAgLy8gdGhpcy5mb3JtLmNhdGFsb2dJZCA9IHRoaXMuYWRkSWQKICAgICAgICAgICAgICAgIC8vIHRoaXMuZm9ybS5yZXF1ZXN0UGFyYW1zID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnJlcXVlc3RQYXJhbXMpCiAgICAgICAgICAgICAgICAvLyB0aGlzLmZvcm0ucmVxdWVzdEhlYWRlciA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybS5yZXF1ZXN0SGVhZGVyKQogICAgICAgICAgICAgICAgLy8gdGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zKQogICAgICAgICAgICAgICAgLy8gdGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzKQogICAgICAgICAgICAgICAgLy8g5qC85byP5YyW5pWw5o2u5YmN5aSE55CG56m65Y+C5pWwCiAgICAgICAgICAgICAgICBmb3JtRGF0YSA9IF9vYmplY3RTcHJlYWQoe30sIF90aGlzMy5mb3JtKTsKICAgICAgICAgICAgICAgIGZvcm1EYXRhLmNhdGFsb2dJZCA9IF90aGlzMy5hZGRJZDsKCiAgICAgICAgICAgICAgICAvLyDlpITnkIbor7fmsYLlj4LmlbDor7TmmI4gLSDkv53nlZnnu5PmnoTkvYbmuIXnqbrnqbrlj4LmlbDnmoTpu5jorqTlgLwKICAgICAgICAgICAgICAgIGZvcm1EYXRhLnJlcXVlc3RQYXJhbXMgPSBfdGhpczMuZm9ybS5yZXF1ZXN0UGFyYW1zLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICBpZiAoaXRlbS5wYXJhbS50cmltKCkgPT09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgLy8g5Y+C5pWw5ZCN5Li656m65pe277yM5riF56m65omA5pyJ5a2X5q615YC8CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICAgIHBhcmFtOiAnJywKICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6ICcnLAogICAgICAgICAgICAgICAgICAgICAgdHlwZTogJycsCiAgICAgICAgICAgICAgICAgICAgICAvLyDmuIXnqbrpu5jorqTnsbvlnosKICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnJwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICBwYXJhbTogaXRlbS5wYXJhbSwKICAgICAgICAgICAgICAgICAgICBjb21tZW50OiBpdGVtLmNvbW1lbnQsCiAgICAgICAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLAogICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBpdGVtLnJlcXVpcmVkCiAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyDlkIzmoLflpITnkIblhbbku5blj4LmlbDor7TmmI4KICAgICAgICAgICAgICAgIGZvcm1EYXRhLnJlcXVlc3RIZWFkZXIgPSBfdGhpczMuZm9ybS5yZXF1ZXN0SGVhZGVyLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICBpZiAoaXRlbS5wYXJhbS50cmltKCkgPT09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICAgIHBhcmFtOiAnJywKICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6ICcnLAogICAgICAgICAgICAgICAgICAgICAgdHlwZTogJycsCiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJycKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgcGFyYW06IGl0ZW0ucGFyYW0sCiAgICAgICAgICAgICAgICAgICAgY29tbWVudDogaXRlbS5jb21tZW50LAogICAgICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSwKICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogaXRlbS5yZXF1aXJlZAogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBmb3JtRGF0YS5yZXNwb25zZVBhcmFtcyA9IF90aGlzMy5mb3JtLnJlc3BvbnNlUGFyYW1zLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICBpZiAoaXRlbS5wYXJhbS50cmltKCkgPT09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICAgIHBhcmFtOiAnJywKICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6ICcnLAogICAgICAgICAgICAgICAgICAgICAgdHlwZTogJycKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgcGFyYW06IGl0ZW0ucGFyYW0sCiAgICAgICAgICAgICAgICAgICAgY29tbWVudDogaXRlbS5jb21tZW50LAogICAgICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZQogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBmb3JtRGF0YS5yZXNwb25zZVN0YXR1cyA9IF90aGlzMy5mb3JtLnJlc3BvbnNlU3RhdHVzLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICBpZiAoaXRlbS5wYXJhbS50cmltKCkgPT09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICAgIHBhcmFtOiAnJywKICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6ICcnCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIHBhcmFtOiBpdGVtLnBhcmFtLAogICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6IGl0ZW0uY29tbWVudAogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy8g6L2s5o2i5Li6SlNPTuWtl+espuS4sgogICAgICAgICAgICAgICAgcmVxdWVzdERhdGEgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGZvcm1EYXRhKSwge30sIHsKICAgICAgICAgICAgICAgICAgcmVxdWVzdFBhcmFtczogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEucmVxdWVzdFBhcmFtcyksCiAgICAgICAgICAgICAgICAgIHJlcXVlc3RIZWFkZXI6IEpTT04uc3RyaW5naWZ5KGZvcm1EYXRhLnJlcXVlc3RIZWFkZXIpLAogICAgICAgICAgICAgICAgICByZXNwb25zZVBhcmFtczogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEucmVzcG9uc2VQYXJhbXMpLAogICAgICAgICAgICAgICAgICByZXNwb25zZVN0YXR1czogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEucmVzcG9uc2VTdGF0dXMpCiAgICAgICAgICAgICAgICB9KTsgLy8g6LCD55So5o6l5Y+jCiAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTU7CiAgICAgICAgICAgICAgICByZXR1cm4gQVBJLmFkZEFjdGlvbihyZXF1ZXN0RGF0YSwgZmFsc2UpOwogICAgICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgICAgICBfdGhpczMuJG1lc3NhZ2Uuc3VjY2Vzcygn5o6l5Y+j5paw5aKe5oiQ5Yqf77yBJyk7CiAgICAgICAgICAgICAgICBfdGhpczMuJGVtaXQoJ2NvbmZpcm0nKTsKCiAgICAgICAgICAgICAgICAvLyDmiJDlip/lkI7lhbPpl63lvLnlsYIKICAgICAgICAgICAgICAgIF90aGlzMy52aXNpYmxlID0gZmFsc2U7CiAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjQ7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDIwOgogICAgICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDIwOwogICAgICAgICAgICAgICAgX2NvbnRleHQudDAgPSBfY29udGV4dFsiY2F0Y2giXSg1KTsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+aPkOS6pOWksei0pTonLCBfY29udGV4dC50MCk7CiAgICAgICAgICAgICAgICBfdGhpczMuJG1lc3NhZ2UuZXJyb3IoJ+aOpeWPo+aWsOWinuWksei0pe+8jOivt+mHjeivlScpOwogICAgICAgICAgICAgIGNhc2UgMjQ6CiAgICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMjQ7CiAgICAgICAgICAgICAgICAvLyDml6DorrrmiJDlip/lpLHotKXvvIzmgaLlpI3mjInpkq7nirbmgIEKICAgICAgICAgICAgICAgIF90aGlzMy5pc1N1Ym1pdHRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIF90aGlzMy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuZmluaXNoKDI0KTsKICAgICAgICAgICAgICBjYXNlIDI4OgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzUsIDIwLCAyNCwgMjhdXSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gpIHsKICAgICAgICAgIHJldHVybiBfcmVmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKTsKICAgIH0KICB9Cn07"},null]}