project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
25 KiB

{"remainingRequest":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\utils\\generator\\html.js","dependencies":[{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\utils\\generator\\html.js","mtime":1634007170544},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKCi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi8KaW1wb3J0IHsgdHJpZ2dlciB9IGZyb20gJy4vY29uZmlnJzsKdmFyIGNvbmZHbG9iYWw7CnZhciBzb21lU3BhbklzTm90MjQ7CmV4cG9ydCBmdW5jdGlvbiBkaWFsb2dXcmFwcGVyKHN0cikgewogIHJldHVybiAiPGVsLWRpYWxvZyB2LWJpbmQ9XCIkYXR0cnNcIiB2LW9uPVwiJGxpc3RlbmVyc1wiIEBvcGVuPVwib25PcGVuXCIgQGNsb3NlPVwib25DbG9zZVwiIHRpdGxlPVwiRGlhbG9nIFRpdGlsZVwiPlxuICAgICIuY29uY2F0KHN0ciwgIlxuICAgIDxkaXYgc2xvdD1cImZvb3RlclwiPlxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJjbG9zZVwiPlx1NTNENlx1NkQ4ODwvZWwtYnV0dG9uPlxuICAgICAgPGVsLWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cImhhbmRlbENvbmZpcm1cIj5cdTc4NkVcdTVCOUE8L2VsLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9lbC1kaWFsb2c+Iik7Cn0KZXhwb3J0IGZ1bmN0aW9uIHZ1ZVRlbXBsYXRlKHN0cikgewogIHJldHVybiAiPHRlbXBsYXRlPlxuICAgIDxkaXY+XG4gICAgICAiLmNvbmNhdChzdHIsICJcbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT4iKTsKfQpleHBvcnQgZnVuY3Rpb24gdnVlU2NyaXB0KHN0cikgewogIHJldHVybiAiPHNjcmlwdD5cbiAgICAiLmNvbmNhdChzdHIsICJcbiAgPC9zY3JpcHQ+Iik7Cn0KZXhwb3J0IGZ1bmN0aW9uIGNzc1N0eWxlKGNzc1N0cikgewogIHJldHVybiAiPHN0eWxlPlxuICAgICIuY29uY2F0KGNzc1N0ciwgIlxuICA8L3N0eWxlPiIpOwp9CgpmdW5jdGlvbiBidWlsZEZvcm1UZW1wbGF0ZShjb25mLCBjaGlsZCwgdHlwZSkgewogIHZhciBsYWJlbFBvc2l0aW9uID0gJyc7CgogIGlmIChjb25mLmxhYmVsUG9zaXRpb24gIT09ICdyaWdodCcpIHsKICAgIGxhYmVsUG9zaXRpb24gPSAibGFiZWwtcG9zaXRpb249XCIiLmNvbmNhdChjb25mLmxhYmVsUG9zaXRpb24sICJcIiIpOwogIH0KCiAgdmFyIGRpc2FibGVkID0gY29uZi5kaXNhYmxlZCA/ICI6ZGlzYWJsZWQ9XCIiLmNvbmNhdChjb25mLmRpc2FibGVkLCAiXCIiKSA6ICcnOwogIHZhciBzdHIgPSAiPGVsLWZvcm0gcmVmPVwiIi5jb25jYXQoY29uZi5mb3JtUmVmLCAiXCIgOm1vZGVsPVwiIikuY29uY2F0KGNvbmYuZm9ybU1vZGVsLCAiXCIgOnJ1bGVzPVwiIikuY29uY2F0KGNvbmYuZm9ybVJ1bGVzLCAiXCIgc2l6ZT1cIiIpLmNvbmNhdChjb25mLnNpemUsICJcIiAiKS5jb25jYXQoZGlzYWJsZWQsICIgbGFiZWwtd2lkdGg9XCIiKS5jb25jYXQoY29uZi5sYWJlbFdpZHRoLCAicHhcIiAiKS5jb25jYXQobGFiZWxQb3NpdGlvbiwgIj5cbiAgICAgICIpLmNvbmNhdChjaGlsZCwgIlxuICAgICAgIikuY29uY2F0KGJ1aWxkRnJvbUJ0bnMoY29uZiwgdHlwZSksICJcbiAgICA8L2VsLWZvcm0+Iik7CgogIGlmIChzb21lU3BhbklzTm90MjQpIHsKICAgIHN0ciA9ICI8ZWwtcm93IDpndXR0ZXI9XCIiLmNvbmNhdChjb25mLmd1dHRlciwgIlwiPlxuICAgICAgICAiKS5jb25jYXQoc3RyLCAiXG4gICAgICA8L2VsLXJvdz4iKTsKICB9CgogIHJldHVybiBzdHI7Cn0KCmZ1bmN0aW9uIGJ1aWxkRnJvbUJ0bnMoY29uZiwgdHlwZSkgewogIHZhciBzdHIgPSAnJzsKCiAgaWYgKGNvbmYuZm9ybUJ0bnMgJiYgdHlwZSA9PT0gJ2ZpbGUnKSB7CiAgICBzdHIgPSAiPGVsLWZvcm0taXRlbSBzaXplPVwibGFyZ2VcIj5cbiAgICAgICAgICA8ZWwtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgQGNsaWNrPVwic3VibWl0Rm9ybVwiPlx1NjNEMFx1NEVBNDwvZWwtYnV0dG9uPlxuICAgICAgICAgIDxlbC1idXR0b24gQGNsaWNrPVwicmVzZXRGb3JtXCI+XHU5MUNEXHU3RjZFPC9lbC1idXR0b24+XG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPiI7CgogICAgaWYgKHNvbWVTcGFuSXNOb3QyNCkgewogICAgICBzdHIgPSAiPGVsLWNvbCA6c3Bhbj1cIjI0XCI+XG4gICAgICAgICAgIi5jb25jYXQoc3RyLCAiXG4gICAgICAgIDwvZWwtY29sPiIpOwogICAgfQogIH0KCiAgcmV0dXJuIHN0cjsKfSAvLyBzcGFu5LiN5Li6MjTnmoTnlKhlbC1jb2zljIXoo7kKCgpmdW5jdGlvbiBjb2xXcmFwcGVyKGVsZW1lbnQsIHN0cikgewogIGlmIChzb21lU3BhbklzTm90MjQgfHwgZWxlbWVudC5zcGFuICE9PSAyNCkgewogICAgcmV0dXJuICI8ZWwtY29sIDpzcGFuPVwiIi5jb25jYXQoZWxlbWVudC5zcGFuLCAiXCI+XG4gICAgICAiKS5jb25jYXQoc3RyLCAiXG4gICAgPC9lbC1jb2w+Iik7CiAgfQoKICByZXR1cm4gc3RyOwp9Cgp2YXIgbGF5b3V0cyA9IHsKICBjb2xGb3JtSXRlbTogZnVuY3Rpb24gY29sRm9ybUl0ZW0oZWxlbWVudCkgewogICAgdmFyIGxhYmVsV2lkdGggPSAnJzsKCiAgICBpZiAoZWxlbWVudC5sYWJlbFdpZHRoICYmIGVsZW1lbnQubGFiZWxXaWR0aCAhPT0gY29uZkdsb2JhbC5sYWJlbFdpZHRoKSB7CiAgICAgIGxhYmVsV2lkdGggPSAibGFiZWwtd2lkdGg9XCIiLmNvbmNhdChlbGVtZW50LmxhYmVsV2lkdGgsICJweFwiIik7CiAgICB9CgogICAgdmFyIHJlcXVpcmVkID0gIXRyaWdnZXJbZWxlbWVudC50YWddICYmIGVsZW1lbnQucmVxdWlyZWQgPyAncmVxdWlyZWQnIDogJyc7CiAgICB2YXIgdGFnRG9tID0gdGFnc1tlbGVtZW50LnRhZ10gPyB0YWdzW2VsZW1lbnQudGFnXShlbGVtZW50KSA6IG51bGw7CiAgICB2YXIgc3RyID0gIjxlbC1mb3JtLWl0ZW0gIi5jb25jYXQobGFiZWxXaWR0aCwgIiBsYWJlbD1cIiIpLmNvbmNhdChlbGVtZW50LmxhYmVsLCAiXCIgcHJvcD1cIiIpLmNvbmNhdChlbGVtZW50LnZNb2RlbCwgIlwiICIpLmNvbmNhdChyZXF1aXJlZCwgIj5cbiAgICAgICAgIikuY29uY2F0KHRhZ0RvbSwgIlxuICAgICAgPC9lbC1mb3JtLWl0ZW0+Iik7CiAgICBzdHIgPSBjb2xXcmFwcGVyKGVsZW1lbnQsIHN0cik7CiAgICByZXR1cm4gc3RyOwogIH0sCiAgcm93Rm9ybUl0ZW06IGZ1bmN0aW9uIHJvd0Zvcm1JdGVtKGVsZW1lbnQpIHsKICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlID09PSAnZGVmYXVsdCcgPyAnJyA6ICJ0eXBlPVwiIi5jb25jYXQoZWxlbWVudC50eXBlLCAiXCIiKTsKICAgIHZhciBqdXN0aWZ5ID0gZWxlbWVudC50eXBlID09PSAnZGVmYXVsdCcgPyAnJyA6ICJqdXN0aWZ5PVwiIi5jb25jYXQoZWxlbWVudC5qdXN0aWZ5LCAiXCIiKTsKICAgIHZhciBhbGlnbiA9IGVsZW1lbnQudHlwZSA9PT0gJ2RlZmF1bHQnID8gJycgOiAiYWxpZ249XCIiLmNvbmNhdChlbGVtZW50LmFsaWduLCAiXCIiKTsKICAgIHZhciBndXR0ZXIgPSBlbGVtZW50Lmd1dHRlciA/ICJndXR0ZXI9XCIiLmNvbmNhdChlbGVtZW50Lmd1dHRlciwgIlwiIikgOiAnJzsKICAgIHZhciBjaGlsZHJlbiA9IGVsZW1lbnQuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChlbCkgewogICAgICByZXR1cm4gbGF5b3V0c1tlbC5sYXlvdXRdKGVsKTsKICAgIH0pOwogICAgdmFyIHN0ciA9ICI8ZWwtcm93ICIuY29uY2F0KHR5cGUsICIgIikuY29uY2F0KGp1c3RpZnksICIgIikuY29uY2F0KGFsaWduLCAiICIpLmNvbmNhdChndXR0ZXIsICI+XG4gICAgICAiKS5jb25jYXQoY2hpbGRyZW4uam9pbignXG4nKSwgIlxuICAgIDwvZWwtcm93PiIpOwogICAgc3RyID0gY29sV3JhcHBlcihlbGVtZW50LCBzdHIpOwogICAgcmV0dXJuIHN0cjsKICB9Cn07CnZhciB0YWdzID0gewogICdlbC1pbnB1dCc6IGZ1bmN0aW9uIGVsSW5wdXQoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXIgPSBhdHRyQnVpbGRlcihlbCksCiAgICAgICAgZGlzYWJsZWQgPSBfYXR0ckJ1aWxkZXIuZGlzYWJsZWQsCiAgICAgICAgdk1vZGVsID0gX2F0dHJCdWlsZGVyLnZNb2RlbCwKICAgICAgICBjbGVhcmFibGUgPSBfYXR0ckJ1aWxkZXIuY2xlYXJhYmxlLAogICAgICAgIHBsYWNlaG9sZGVyID0gX2F0dHJCdWlsZGVyLnBsYWNlaG9sZGVyLAogICAgICAgIHdpZHRoID0gX2F0dHJCdWlsZGVyLndpZHRoOwoKICAgIHZhciBtYXhsZW5ndGggPSBlbC5tYXhsZW5ndGggPyAiOm1heGxlbmd0aD1cIiIuY29uY2F0KGVsLm1heGxlbmd0aCwgIlwiIikgOiAnJzsKICAgIHZhciBzaG93V29yZExpbWl0ID0gZWxbJ3Nob3ctd29yZC1saW1pdCddID8gJ3Nob3ctd29yZC1saW1pdCcgOiAnJzsKICAgIHZhciByZWFkb25seSA9IGVsLnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6ICcnOwogICAgdmFyIHByZWZpeEljb24gPSBlbFsncHJlZml4LWljb24nXSA/ICJwcmVmaXgtaWNvbj0nIi5jb25jYXQoZWxbJ3ByZWZpeC1pY29uJ10sICInIikgOiAnJzsKICAgIHZhciBzdWZmaXhJY29uID0gZWxbJ3N1ZmZpeC1pY29uJ10gPyAic3VmZml4LWljb249JyIuY29uY2F0KGVsWydzdWZmaXgtaWNvbiddLCAiJyIpIDogJyc7CiAgICB2YXIgc2hvd1Bhc3N3b3JkID0gZWxbJ3Nob3ctcGFzc3dvcmQnXSA/ICdzaG93LXBhc3N3b3JkJyA6ICcnOwogICAgdmFyIHR5cGUgPSBlbC50eXBlID8gInR5cGU9XCIiLmNvbmNhdChlbC50eXBlLCAiXCIiKSA6ICcnOwogICAgdmFyIGF1dG9zaXplID0gZWwuYXV0b3NpemUgJiYgZWwuYXV0b3NpemUubWluUm93cyA/ICI6YXV0b3NpemU9XCJ7bWluUm93czogIi5jb25jYXQoZWwuYXV0b3NpemUubWluUm93cywgIiwgbWF4Um93czogIikuY29uY2F0KGVsLmF1dG9zaXplLm1heFJvd3MsICJ9XCIiKSA6ICcnOwogICAgdmFyIGNoaWxkID0gYnVpbGRFbElucHV0Q2hpbGQoZWwpOwogICAgaWYgKGNoaWxkKSBjaGlsZCA9ICJcbiIuY29uY2F0KGNoaWxkLCAiXG4iKTsgLy8g5o2i6KGMCgogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdCh2TW9kZWwsICIgIikuY29uY2F0KHR5cGUsICIgIikuY29uY2F0KHBsYWNlaG9sZGVyLCAiICIpLmNvbmNhdChtYXhsZW5ndGgsICIgIikuY29uY2F0KHNob3dXb3JkTGltaXQsICIgIikuY29uY2F0KHJlYWRvbmx5LCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIiAiKS5jb25jYXQoY2xlYXJhYmxlLCAiICIpLmNvbmNhdChwcmVmaXhJY29uLCAiICIpLmNvbmNhdChzdWZmaXhJY29uLCAiICIpLmNvbmNhdChzaG93UGFzc3dvcmQsICIgIikuY29uY2F0KGF1dG9zaXplLCAiICIpLmNvbmNhdCh3aWR0aCwgIj4iKS5jb25jYXQoY2hpbGQsICI8LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtaW5wdXQtbnVtYmVyJzogZnVuY3Rpb24gZWxJbnB1dE51bWJlcihlbCkgewogICAgdmFyIF9hdHRyQnVpbGRlcjIgPSBhdHRyQnVpbGRlcihlbCksCiAgICAgICAgZGlzYWJsZWQgPSBfYXR0ckJ1aWxkZXIyLmRpc2FibGVkLAogICAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjIudk1vZGVsLAogICAgICAgIHBsYWNlaG9sZGVyID0gX2F0dHJCdWlsZGVyMi5wbGFjZWhvbGRlcjsKCiAgICB2YXIgY29udHJvbHNQb3NpdGlvbiA9IGVsWydjb250cm9scy1wb3NpdGlvbiddID8gImNvbnRyb2xzLXBvc2l0aW9uPSIuY29uY2F0KGVsWydjb250cm9scy1wb3NpdGlvbiddKSA6ICcnOwogICAgdmFyIG1pbiA9IGVsLm1pbiA/ICI6bWluPSciLmNvbmNhdChlbC5taW4sICInIikgOiAnJzsKICAgIHZhciBtYXggPSBlbC5tYXggPyAiOm1heD0nIi5jb25jYXQoZWwubWF4LCAiJyIpIDogJyc7CiAgICB2YXIgc3RlcCA9IGVsLnN0ZXAgPyAiOnN0ZXA9JyIuY29uY2F0KGVsLnN0ZXAsICInIikgOiAnJzsKICAgIHZhciBzdGVwU3RyaWN0bHkgPSBlbFsnc3RlcC1zdHJpY3RseSddID8gJ3N0ZXAtc3RyaWN0bHknIDogJyc7CiAgICB2YXIgcHJlY2lzaW9uID0gZWwucHJlY2lzaW9uID8gIjpwcmVjaXNpb249JyIuY29uY2F0KGVsLnByZWNpc2lvbiwgIiciKSA6ICcnOwogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdCh2TW9kZWwsICIgIikuY29uY2F0KHBsYWNlaG9sZGVyLCAiICIpLmNvbmNhdChzdGVwLCAiICIpLmNvbmNhdChzdGVwU3RyaWN0bHksICIgIikuY29uY2F0KHByZWNpc2lvbiwgIiAiKS5jb25jYXQoY29udHJvbHNQb3NpdGlvbiwgIiAiKS5jb25jYXQobWluLCAiICIpLmNvbmNhdChtYXgsICIgIikuY29uY2F0KGRpc2FibGVkLCAiPjwvIikuY29uY2F0KGVsLnRhZywgIj4iKTsKICB9LAogICdlbC1zZWxlY3QnOiBmdW5jdGlvbiBlbFNlbGVjdChlbCkgewogICAgdmFyIF9hdHRyQnVpbGRlcjMgPSBhdHRyQnVpbGRlcihlbCksCiAgICAgICAgZGlzYWJsZWQgPSBfYXR0ckJ1aWxkZXIzLmRpc2FibGVkLAogICAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjMudk1vZGVsLAogICAgICAgIGNsZWFyYWJsZSA9IF9hdHRyQnVpbGRlcjMuY2xlYXJhYmxlLAogICAgICAgIHBsYWNlaG9sZGVyID0gX2F0dHJCdWlsZGVyMy5wbGFjZWhvbGRlciwKICAgICAgICB3aWR0aCA9IF9hdHRyQnVpbGRlcjMud2lkdGg7CgogICAgdmFyIGZpbHRlcmFibGUgPSBlbC5maWx0ZXJhYmxlID8gJ2ZpbHRlcmFibGUnIDogJyc7CiAgICB2YXIgbXVsdGlwbGUgPSBlbC5tdWx0aXBsZSA/ICdtdWx0aXBsZScgOiAnJzsKICAgIHZhciBjaGlsZCA9IGJ1aWxkRWxTZWxlY3RDaGlsZChlbCk7CiAgICBpZiAoY2hpbGQpIGNoaWxkID0gIlxuIi5jb25jYXQoY2hpbGQsICJcbiIpOyAvLyDmjaLooYwKCiAgICByZXR1cm4gIjwiLmNvbmNhdChlbC50YWcsICIgIikuY29uY2F0KHZNb2RlbCwgIiAiKS5jb25jYXQocGxhY2Vob2xkZXIsICIgIikuY29uY2F0KGRpc2FibGVkLCAiICIpLmNvbmNhdChtdWx0aXBsZSwgIiAiKS5jb25jYXQoZmlsdGVyYWJsZSwgIiAiKS5jb25jYXQoY2xlYXJhYmxlLCAiICIpLmNvbmNhdCh3aWR0aCwgIj4iKS5jb25jYXQoY2hpbGQsICI8LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtcmFkaW8tZ3JvdXAnOiBmdW5jdGlvbiBlbFJhZGlvR3JvdXAoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXI0ID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICAgIGRpc2FibGVkID0gX2F0dHJCdWlsZGVyNC5kaXNhYmxlZCwKICAgICAgICB2TW9kZWwgPSBfYXR0ckJ1aWxkZXI0LnZNb2RlbDsKCiAgICB2YXIgc2l6ZSA9ICJzaXplPVwiIi5jb25jYXQoZWwuc2l6ZSwgIlwiIik7CiAgICB2YXIgY2hpbGQgPSBidWlsZEVsUmFkaW9Hcm91cENoaWxkKGVsKTsKICAgIGlmIChjaGlsZCkgY2hpbGQgPSAiXG4iLmNvbmNhdChjaGlsZCwgIlxuIik7IC8vIOaNouihjAoKICAgIHJldHVybiAiPCIuY29uY2F0KGVsLnRhZywgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChzaXplLCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj4iKS5jb25jYXQoY2hpbGQsICI8LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtY2hlY2tib3gtZ3JvdXAnOiBmdW5jdGlvbiBlbENoZWNrYm94R3JvdXAoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXI1ID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICAgIGRpc2FibGVkID0gX2F0dHJCdWlsZGVyNS5kaXNhYmxlZCwKICAgICAgICB2TW9kZWwgPSBfYXR0ckJ1aWxkZXI1LnZNb2RlbDsKCiAgICB2YXIgc2l6ZSA9ICJzaXplPVwiIi5jb25jYXQoZWwuc2l6ZSwgIlwiIik7CiAgICB2YXIgbWluID0gZWwubWluID8gIjptaW49XCIiLmNvbmNhdChlbC5taW4sICJcIiIpIDogJyc7CiAgICB2YXIgbWF4ID0gZWwubWF4ID8gIjptYXg9XCIiLmNvbmNhdChlbC5tYXgsICJcIiIpIDogJyc7CiAgICB2YXIgY2hpbGQgPSBidWlsZEVsQ2hlY2tib3hHcm91cENoaWxkKGVsKTsKICAgIGlmIChjaGlsZCkgY2hpbGQgPSAiXG4iLmNvbmNhdChjaGlsZCwgIlxuIik7IC8vIOaNouihjAoKICAgIHJldHVybiAiPCIuY29uY2F0KGVsLnRhZywgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChtaW4sICIgIikuY29uY2F0KG1heCwgIiAiKS5jb25jYXQoc2l6ZSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+IikuY29uY2F0KGNoaWxkLCAiPC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0sCiAgJ2VsLXN3aXRjaCc6IGZ1bmN0aW9uIGVsU3dpdGNoKGVsKSB7CiAgICB2YXIgX2F0dHJCdWlsZGVyNiA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjYuZGlzYWJsZWQsCiAgICAgICAgdk1vZGVsID0gX2F0dHJCdWlsZGVyNi52TW9kZWw7CgogICAgdmFyIGFjdGl2ZVRleHQgPSBlbFsnYWN0aXZlLXRleHQnXSA/ICJhY3RpdmUtdGV4dD1cIiIuY29uY2F0KGVsWydhY3RpdmUtdGV4dCddLCAiXCIiKSA6ICcnOwogICAgdmFyIGluYWN0aXZlVGV4dCA9IGVsWydpbmFjdGl2ZS10ZXh0J10gPyAiaW5hY3RpdmUtdGV4dD1cIiIuY29uY2F0KGVsWydpbmFjdGl2ZS10ZXh0J10sICJcIiIpIDogJyc7CiAgICB2YXIgYWN0aXZlQ29sb3IgPSBlbFsnYWN0aXZlLWNvbG9yJ10gPyAiYWN0aXZlLWNvbG9yPVwiIi5jb25jYXQoZWxbJ2FjdGl2ZS1jb2xvciddLCAiXCIiKSA6ICcnOwogICAgdmFyIGluYWN0aXZlQ29sb3IgPSBlbFsnaW5hY3RpdmUtY29sb3InXSA/ICJpbmFjdGl2ZS1jb2xvcj1cIiIuY29uY2F0KGVsWydpbmFjdGl2ZS1jb2xvciddLCAiXCIiKSA6ICcnOwogICAgdmFyIGFjdGl2ZVZhbHVlID0gZWxbJ2FjdGl2ZS12YWx1ZSddICE9PSB0cnVlID8gIjphY3RpdmUtdmFsdWU9JyIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGVsWydhY3RpdmUtdmFsdWUnXSksICInIikgOiAnJzsKICAgIHZhciBpbmFjdGl2ZVZhbHVlID0gZWxbJ2luYWN0aXZlLXZhbHVlJ10gIT09IGZhbHNlID8gIjppbmFjdGl2ZS12YWx1ZT0nIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZWxbJ2luYWN0aXZlLXZhbHVlJ10pLCAiJyIpIDogJyc7CiAgICByZXR1cm4gIjwiLmNvbmNhdChlbC50YWcsICIgIikuY29uY2F0KHZNb2RlbCwgIiAiKS5jb25jYXQoYWN0aXZlVGV4dCwgIiAiKS5jb25jYXQoaW5hY3RpdmVUZXh0LCAiICIpLmNvbmNhdChhY3RpdmVDb2xvciwgIiAiKS5jb25jYXQoaW5hY3RpdmVDb2xvciwgIiAiKS5jb25jYXQoYWN0aXZlVmFsdWUsICIgIikuY29uY2F0KGluYWN0aXZlVmFsdWUsICIgIikuY29uY2F0KGRpc2FibGVkLCAiPjwvIikuY29uY2F0KGVsLnRhZywgIj4iKTsKICB9LAogICdlbC1jYXNjYWRlcic6IGZ1bmN0aW9uIGVsQ2FzY2FkZXIoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXI3ID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICAgIGRpc2FibGVkID0gX2F0dHJCdWlsZGVyNy5kaXNhYmxlZCwKICAgICAgICB2TW9kZWwgPSBfYXR0ckJ1aWxkZXI3LnZNb2RlbCwKICAgICAgICBjbGVhcmFibGUgPSBfYXR0ckJ1aWxkZXI3LmNsZWFyYWJsZSwKICAgICAgICBwbGFjZWhvbGRlciA9IF9hdHRyQnVpbGRlcjcucGxhY2Vob2xkZXIsCiAgICAgICAgd2lkdGggPSBfYXR0ckJ1aWxkZXI3LndpZHRoOwoKICAgIHZhciBvcHRpb25zID0gZWwub3B0aW9ucyA/ICI6b3B0aW9ucz1cIiIuY29uY2F0KGVsLnZNb2RlbCwgIk9wdGlvbnNcIiIpIDogJyc7CiAgICB2YXIgcHJvcHMgPSBlbC5wcm9wcyA/ICI6cHJvcHM9XCIiLmNvbmNhdChlbC52TW9kZWwsICJQcm9wc1wiIikgOiAnJzsKICAgIHZhciBzaG93QWxsTGV2ZWxzID0gZWxbJ3Nob3ctYWxsLWxldmVscyddID8gJycgOiAnOnNob3ctYWxsLWxldmVscz0iZmFsc2UiJzsKICAgIHZhciBmaWx0ZXJhYmxlID0gZWwuZmlsdGVyYWJsZSA/ICdmaWx0ZXJhYmxlJyA6ICcnOwogICAgdmFyIHNlcGFyYXRvciA9IGVsLnNlcGFyYXRvciA9PT0gJy8nID8gJycgOiAic2VwYXJhdG9yPVwiIi5jb25jYXQoZWwuc2VwYXJhdG9yLCAiXCIiKTsKICAgIHJldHVybiAiPCIuY29uY2F0KGVsLnRhZywgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChvcHRpb25zLCAiICIpLmNvbmNhdChwcm9wcywgIiAiKS5jb25jYXQod2lkdGgsICIgIikuY29uY2F0KHNob3dBbGxMZXZlbHMsICIgIikuY29uY2F0KHBsYWNlaG9sZGVyLCAiICIpLmNvbmNhdChzZXBhcmF0b3IsICIgIikuY29uY2F0KGZpbHRlcmFibGUsICIgIikuY29uY2F0KGNsZWFyYWJsZSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+PC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0sCiAgJ2VsLXNsaWRlcic6IGZ1bmN0aW9uIGVsU2xpZGVyKGVsKSB7CiAgICB2YXIgX2F0dHJCdWlsZGVyOCA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjguZGlzYWJsZWQsCiAgICAgICAgdk1vZGVsID0gX2F0dHJCdWlsZGVyOC52TW9kZWw7CgogICAgdmFyIG1pbiA9IGVsLm1pbiA/ICI6bWluPSciLmNvbmNhdChlbC5taW4sICInIikgOiAnJzsKICAgIHZhciBtYXggPSBlbC5tYXggPyAiOm1heD0nIi5jb25jYXQoZWwubWF4LCAiJyIpIDogJyc7CiAgICB2YXIgc3RlcCA9IGVsLnN0ZXAgPyAiOnN0ZXA9JyIuY29uY2F0KGVsLnN0ZXAsICInIikgOiAnJzsKICAgIHZhciByYW5nZSA9IGVsLnJhbmdlID8gJ3JhbmdlJyA6ICcnOwogICAgdmFyIHNob3dTdG9wcyA9IGVsWydzaG93LXN0b3BzJ10gPyAiOnNob3ctc3RvcHM9XCIiLmNvbmNhdChlbFsnc2hvdy1zdG9wcyddLCAiXCIiKSA6ICcnOwogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdChtaW4sICIgIikuY29uY2F0KG1heCwgIiAiKS5jb25jYXQoc3RlcCwgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChyYW5nZSwgIiAiKS5jb25jYXQoc2hvd1N0b3BzLCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj48LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtdGltZS1waWNrZXInOiBmdW5jdGlvbiBlbFRpbWVQaWNrZXIoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXI5ID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICAgIGRpc2FibGVkID0gX2F0dHJCdWlsZGVyOS5kaXNhYmxlZCwKICAgICAgICB2TW9kZWwgPSBfYXR0ckJ1aWxkZXI5LnZNb2RlbCwKICAgICAgICBjbGVhcmFibGUgPSBfYXR0ckJ1aWxkZXI5LmNsZWFyYWJsZSwKICAgICAgICBwbGFjZWhvbGRlciA9IF9hdHRyQnVpbGRlcjkucGxhY2Vob2xkZXIsCiAgICAgICAgd2lkdGggPSBfYXR0ckJ1aWxkZXI5LndpZHRoOwoKICAgIHZhciBzdGFydFBsYWNlaG9sZGVyID0gZWxbJ3N0YXJ0LXBsYWNlaG9sZGVyJ10gPyAic3RhcnQtcGxhY2Vob2xkZXI9XCIiLmNvbmNhdChlbFsnc3RhcnQtcGxhY2Vob2xkZXInXSwgIlwiIikgOiAnJzsKICAgIHZhciBlbmRQbGFjZWhvbGRlciA9IGVsWydlbmQtcGxhY2Vob2xkZXInXSA/ICJlbmQtcGxhY2Vob2xkZXI9XCIiLmNvbmNhdChlbFsnZW5kLXBsYWNlaG9sZGVyJ10sICJcIiIpIDogJyc7CiAgICB2YXIgcmFuZ2VTZXBhcmF0b3IgPSBlbFsncmFuZ2Utc2VwYXJhdG9yJ10gPyAicmFuZ2Utc2VwYXJhdG9yPVwiIi5jb25jYXQoZWxbJ3JhbmdlLXNlcGFyYXRvciddLCAiXCIiKSA6ICcnOwogICAgdmFyIGlzUmFuZ2UgPSBlbFsnaXMtcmFuZ2UnXSA/ICdpcy1yYW5nZScgOiAnJzsKICAgIHZhciBmb3JtYXQgPSBlbC5mb3JtYXQgPyAiZm9ybWF0PVwiIi5jb25jYXQoZWwuZm9ybWF0LCAiXCIiKSA6ICcnOwogICAgdmFyIHZhbHVlRm9ybWF0ID0gZWxbJ3ZhbHVlLWZvcm1hdCddID8gInZhbHVlLWZvcm1hdD1cIiIuY29uY2F0KGVsWyd2YWx1ZS1mb3JtYXQnXSwgIlwiIikgOiAnJzsKICAgIHZhciBwaWNrZXJPcHRpb25zID0gZWxbJ3BpY2tlci1vcHRpb25zJ10gPyAiOnBpY2tlci1vcHRpb25zPSciLmNvbmNhdChKU09OLnN0cmluZ2lmeShlbFsncGlja2VyLW9wdGlvbnMnXSksICInIikgOiAnJzsKICAgIHJldHVybiAiPCIuY29uY2F0KGVsLnRhZywgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChpc1JhbmdlLCAiICIpLmNvbmNhdChmb3JtYXQsICIgIikuY29uY2F0KHZhbHVlRm9ybWF0LCAiICIpLmNvbmNhdChwaWNrZXJPcHRpb25zLCAiICIpLmNvbmNhdCh3aWR0aCwgIiAiKS5jb25jYXQocGxhY2Vob2xkZXIsICIgIikuY29uY2F0KHN0YXJ0UGxhY2Vob2xkZXIsICIgIikuY29uY2F0KGVuZFBsYWNlaG9sZGVyLCAiICIpLmNvbmNhdChyYW5nZVNlcGFyYXRvciwgIiAiKS5jb25jYXQoY2xlYXJhYmxlLCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj48LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtZGF0ZS1waWNrZXInOiBmdW5jdGlvbiBlbERhdGVQaWNrZXIoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXIxMCA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjEwLmRpc2FibGVkLAogICAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjEwLnZNb2RlbCwKICAgICAgICBjbGVhcmFibGUgPSBfYXR0ckJ1aWxkZXIxMC5jbGVhcmFibGUsCiAgICAgICAgcGxhY2Vob2xkZXIgPSBfYXR0ckJ1aWxkZXIxMC5wbGFjZWhvbGRlciwKICAgICAgICB3aWR0aCA9IF9hdHRyQnVpbGRlcjEwLndpZHRoOwoKICAgIHZhciBzdGFydFBsYWNlaG9sZGVyID0gZWxbJ3N0YXJ0LXBsYWNlaG9sZGVyJ10gPyAic3RhcnQtcGxhY2Vob2xkZXI9XCIiLmNvbmNhdChlbFsnc3RhcnQtcGxhY2Vob2xkZXInXSwgIlwiIikgOiAnJzsKICAgIHZhciBlbmRQbGFjZWhvbGRlciA9IGVsWydlbmQtcGxhY2Vob2xkZXInXSA/ICJlbmQtcGxhY2Vob2xkZXI9XCIiLmNvbmNhdChlbFsnZW5kLXBsYWNlaG9sZGVyJ10sICJcIiIpIDogJyc7CiAgICB2YXIgcmFuZ2VTZXBhcmF0b3IgPSBlbFsncmFuZ2Utc2VwYXJhdG9yJ10gPyAicmFuZ2Utc2VwYXJhdG9yPVwiIi5jb25jYXQoZWxbJ3JhbmdlLXNlcGFyYXRvciddLCAiXCIiKSA6ICcnOwogICAgdmFyIGZvcm1hdCA9IGVsLmZvcm1hdCA/ICJmb3JtYXQ9XCIiLmNvbmNhdChlbC5mb3JtYXQsICJcIiIpIDogJyc7CiAgICB2YXIgdmFsdWVGb3JtYXQgPSBlbFsndmFsdWUtZm9ybWF0J10gPyAidmFsdWUtZm9ybWF0PVwiIi5jb25jYXQoZWxbJ3ZhbHVlLWZvcm1hdCddLCAiXCIiKSA6ICcnOwogICAgdmFyIHR5cGUgPSBlbC50eXBlID09PSAnZGF0ZScgPyAnJyA6ICJ0eXBlPVwiIi5jb25jYXQoZWwudHlwZSwgIlwiIik7CiAgICB2YXIgcmVhZG9ubHkgPSBlbC5yZWFkb25seSA/ICdyZWFkb25seScgOiAnJzsKICAgIHJldHVybiAiPCIuY29uY2F0KGVsLnRhZywgIiAiKS5jb25jYXQodHlwZSwgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChmb3JtYXQsICIgIikuY29uY2F0KHZhbHVlRm9ybWF0LCAiICIpLmNvbmNhdCh3aWR0aCwgIiAiKS5jb25jYXQocGxhY2Vob2xkZXIsICIgIikuY29uY2F0KHN0YXJ0UGxhY2Vob2xkZXIsICIgIikuY29uY2F0KGVuZFBsYWNlaG9sZGVyLCAiICIpLmNvbmNhdChyYW5nZVNlcGFyYXRvciwgIiAiKS5jb25jYXQoY2xlYXJhYmxlLCAiICIpLmNvbmNhdChyZWFkb25seSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+PC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0sCiAgJ2VsLXJhdGUnOiBmdW5jdGlvbiBlbFJhdGUoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXIxMSA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjExLmRpc2FibGVkLAogICAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjExLnZNb2RlbDsKCiAgICB2YXIgbWF4ID0gZWwubWF4ID8gIjptYXg9JyIuY29uY2F0KGVsLm1heCwgIiciKSA6ICcnOwogICAgdmFyIGFsbG93SGFsZiA9IGVsWydhbGxvdy1oYWxmJ10gPyAnYWxsb3ctaGFsZicgOiAnJzsKICAgIHZhciBzaG93VGV4dCA9IGVsWydzaG93LXRleHQnXSA/ICdzaG93LXRleHQnIDogJyc7CiAgICB2YXIgc2hvd1Njb3JlID0gZWxbJ3Nob3ctc2NvcmUnXSA/ICdzaG93LXNjb3JlJyA6ICcnOwogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdCh2TW9kZWwsICIgIikuY29uY2F0KGFsbG93SGFsZiwgIiAiKS5jb25jYXQoc2hvd1RleHQsICIgIikuY29uY2F0KHNob3dTY29yZSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+PC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0sCiAgJ2VsLWNvbG9yLXBpY2tlcic6IGZ1bmN0aW9uIGVsQ29sb3JQaWNrZXIoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXIxMiA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjEyLmRpc2FibGVkLAogICAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjEyLnZNb2RlbDsKCiAgICB2YXIgc2l6ZSA9ICJzaXplPVwiIi5jb25jYXQoZWwuc2l6ZSwgIlwiIik7CiAgICB2YXIgc2hvd0FscGhhID0gZWxbJ3Nob3ctYWxwaGEnXSA/ICdzaG93LWFscGhhJyA6ICcnOwogICAgdmFyIGNvbG9yRm9ybWF0ID0gZWxbJ2NvbG9yLWZvcm1hdCddID8gImNvbG9yLWZvcm1hdD1cIiIuY29uY2F0KGVsWydjb2xvci1mb3JtYXQnXSwgIlwiIikgOiAnJzsKICAgIHJldHVybiAiPCIuY29uY2F0KGVsLnRhZywgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChzaXplLCAiICIpLmNvbmNhdChzaG93QWxwaGEsICIgIikuY29uY2F0KGNvbG9yRm9ybWF0LCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj48LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtdXBsb2FkJzogZnVuY3Rpb24gZWxVcGxvYWQoZWwpIHsKICAgIHZhciBkaXNhYmxlZCA9IGVsLmRpc2FibGVkID8gJzpkaXNhYmxlZD1cJ3RydWVcJycgOiAnJzsKICAgIHZhciBhY3Rpb24gPSBlbC5hY3Rpb24gPyAiOmFjdGlvbj1cIiIuY29uY2F0KGVsLnZNb2RlbCwgIkFjdGlvblwiIikgOiAnJzsKICAgIHZhciBtdWx0aXBsZSA9IGVsLm11bHRpcGxlID8gJ211bHRpcGxlJyA6ICcnOwogICAgdmFyIGxpc3RUeXBlID0gZWxbJ2xpc3QtdHlwZSddICE9PSAndGV4dCcgPyAibGlzdC10eXBlPVwiIi5jb25jYXQoZWxbJ2xpc3QtdHlwZSddLCAiXCIiKSA6ICcnOwogICAgdmFyIGFjY2VwdCA9IGVsLmFjY2VwdCA/ICJhY2NlcHQ9XCIiLmNvbmNhdChlbC5hY2NlcHQsICJcIiIpIDogJyc7CiAgICB2YXIgbmFtZSA9IGVsLm5hbWUgIT09ICdmaWxlJyA/ICJuYW1lPVwiIi5jb25jYXQoZWwubmFtZSwgIlwiIikgOiAnJzsKICAgIHZhciBhdXRvVXBsb2FkID0gZWxbJ2F1dG8tdXBsb2FkJ10gPT09IGZhbHNlID8gJzphdXRvLXVwbG9hZD0iZmFsc2UiJyA6ICcnOwogICAgdmFyIGJlZm9yZVVwbG9hZCA9ICI6YmVmb3JlLXVwbG9hZD1cIiIuY29uY2F0KGVsLnZNb2RlbCwgIkJlZm9yZVVwbG9hZFwiIik7CiAgICB2YXIgZmlsZUxpc3QgPSAiOmZpbGUtbGlzdD1cIiIuY29uY2F0KGVsLnZNb2RlbCwgImZpbGVMaXN0XCIiKTsKICAgIHZhciByZWYgPSAicmVmPVwiIi5jb25jYXQoZWwudk1vZGVsLCAiXCIiKTsKICAgIHZhciBjaGlsZCA9IGJ1aWxkRWxVcGxvYWRDaGlsZChlbCk7CiAgICBpZiAoY2hpbGQpIGNoaWxkID0gIlxuIi5jb25jYXQoY2hpbGQsICJcbiIpOyAvLyDmjaLooYwKCiAgICByZXR1cm4gIjwiLmNvbmNhdChlbC50YWcsICIgIikuY29uY2F0KHJlZiwgIiAiKS5jb25jYXQoZmlsZUxpc3QsICIgIikuY29uY2F0KGFjdGlvbiwgIiAiKS5jb25jYXQoYXV0b1VwbG9hZCwgIiAiKS5jb25jYXQobXVsdGlwbGUsICIgIikuY29uY2F0KGJlZm9yZVVwbG9hZCwgIiAiKS5jb25jYXQobGlzdFR5cGUsICIgIikuY29uY2F0KGFjY2VwdCwgIiAiKS5jb25jYXQobmFtZSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+IikuY29uY2F0KGNoaWxkLCAiPC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0KfTsKCmZ1bmN0aW9uIGF0dHJCdWlsZGVyKGVsKSB7CiAgcmV0dXJuIHsKICAgIHZNb2RlbDogInYtbW9kZWw9XCIiLmNvbmNhdChjb25mR2xvYmFsLmZvcm1Nb2RlbCwgIi4iKS5jb25jYXQoZWwudk1vZGVsLCAiXCIiKSwKICAgIGNsZWFyYWJsZTogZWwuY2xlYXJhYmxlID8gJ2NsZWFyYWJsZScgOiAnJywKICAgIHBsYWNlaG9sZGVyOiBlbC5wbGFjZWhvbGRlciA/ICJwbGFjZWhvbGRlcj1cIiIuY29uY2F0KGVsLnBsYWNlaG9sZGVyLCAiXCIiKSA6ICcnLAogICAgd2lkdGg6IGVsLnN0eWxlICYmIGVsLnN0eWxlLndpZHRoID8gJzpzdHlsZT0ie3dpZHRoOiBcJzEwMCVcJ30iJyA6ICcnLAogICAgZGlzYWJsZWQ6IGVsLmRpc2FibGVkID8gJzpkaXNhYmxlZD1cJ3RydWVcJycgOiAnJwogIH07Cn0gLy8gZWwtaW5wdXQgaW5uZXJIVE1MCgoKZnVuY3Rpb24gYnVpbGRFbElucHV0Q2hpbGQoY29uZikgewogIHZhciBjaGlsZHJlbiA9IFtdOwoKICBpZiAoY29uZi5wcmVwZW5kKSB7CiAgICBjaGlsZHJlbi5wdXNoKCI8dGVtcGxhdGUgc2xvdD1cInByZXBlbmRcIj4iLmNvbmNhdChjb25mLnByZXBlbmQsICI8L3RlbXBsYXRlPiIpKTsKICB9CgogIGlmIChjb25mLmFwcGVuZCkgewogICAgY2hpbGRyZW4ucHVzaCgiPHRlbXBsYXRlIHNsb3Q9XCJhcHBlbmRcIj4iLmNvbmNhdChjb25mLmFwcGVuZCwgIjwvdGVtcGxhdGU+IikpOwogIH0KCiAgcmV0dXJuIGNoaWxkcmVuLmpvaW4oJ1xuJyk7Cn0KCmZ1bmN0aW9uIGJ1aWxkRWxTZWxlY3RDaGlsZChjb25mKSB7CiAgdmFyIGNoaWxkcmVuID0gW107CgogIGlmIChjb25mLm9wdGlvbnMgJiYgY29uZi5vcHRpb25zLmxlbmd0aCkgewogICAgY2hpbGRyZW4ucHVzaCgiPGVsLW9wdGlvbiB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gIi5jb25jYXQoY29uZi52TW9kZWwsICJPcHRpb25zXCIgOmtleT1cImluZGV4XCIgOmxhYmVsPVwiaXRlbS5sYWJlbFwiIDp2YWx1ZT1cIml0ZW0udmFsdWVcIiA6ZGlzYWJsZWQ9XCJpdGVtLmRpc2FibGVkXCI+PC9lbC1vcHRpb24+IikpOwogIH0KCiAgcmV0dXJuIGNoaWxkcmVuLmpvaW4oJ1xuJyk7Cn0KCmZ1bmN0aW9uIGJ1aWxkRWxSYWRpb0dyb3VwQ2hpbGQoY29uZikgewogIHZhciBjaGlsZHJlbiA9IFtdOwoKICBpZiAoY29uZi5vcHRpb25zICYmIGNvbmYub3B0aW9ucy5sZW5ndGgpIHsKICAgIHZhciB0YWcgPSBjb25mLm9wdGlvblR5cGUgPT09ICdidXR0b24nID8gJ2VsLXJhZGlvLWJ1dHRvbicgOiAnZWwtcmFkaW8nOwogICAgdmFyIGJvcmRlciA9IGNvbmYuYm9yZGVyID8gJ2JvcmRlcicgOiAnJzsKICAgIGNoaWxkcmVuLnB1c2goIjwiLmNvbmNhdCh0YWcsICIgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluICIpLmNvbmNhdChjb25mLnZNb2RlbCwgIk9wdGlvbnNcIiA6a2V5PVwiaW5kZXhcIiA6bGFiZWw9XCJpdGVtLnZhbHVlXCIgOmRpc2FibGVkPVwiaXRlbS5kaXNhYmxlZFwiICIpLmNvbmNhdChib3JkZXIsICI+e3tpdGVtLmxhYmVsfX08LyIpLmNvbmNhdCh0YWcsICI+IikpOwogIH0KCiAgcmV0dXJuIGNoaWxkcmVuLmpvaW4oJ1xuJyk7Cn0KCmZ1bmN0aW9uIGJ1aWxkRWxDaGVja2JveEdyb3VwQ2hpbGQoY29uZikgewogIHZhciBjaGlsZHJlbiA9IFtdOwoKICBpZiAoY29uZi5vcHRpb25zICYmIGNvbmYub3B0aW9ucy5sZW5ndGgpIHsKICAgIHZhciB0YWcgPSBjb25mLm9wdGlvblR5cGUgPT09ICdidXR0b24nID8gJ2VsLWNoZWNrYm94LWJ1dHRvbicgOiAnZWwtY2hlY2tib3gnOwogICAgdmFyIGJvcmRlciA9IGNvbmYuYm9yZGVyID8gJ2JvcmRlcicgOiAnJzsKICAgIGNoaWxkcmVuLnB1c2goIjwiLmNvbmNhdCh0YWcsICIgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluICIpLmNvbmNhdChjb25mLnZNb2RlbCwgIk9wdGlvbnNcIiA6a2V5PVwiaW5kZXhcIiA6bGFiZWw9XCJpdGVtLnZhbHVlXCIgOmRpc2FibGVkPVwiaXRlbS5kaXNhYmxlZFwiICIpLmNvbmNhdChib3JkZXIsICI+e3tpdGVtLmxhYmVsfX08LyIpLmNvbmNhdCh0YWcsICI+IikpOwogIH0KCiAgcmV0dXJuIGNoaWxkcmVuLmpvaW4oJ1xuJyk7Cn0KCmZ1bmN0aW9uIGJ1aWxkRWxVcGxvYWRDaGlsZChjb25mKSB7CiAgdmFyIGxpc3QgPSBbXTsKICBpZiAoY29uZlsnbGlzdC10eXBlJ10gPT09ICdwaWN0dXJlLWNhcmQnKSBsaXN0LnB1c2goJzxpIGNsYXNzPSJlbC1pY29uLXBsdXMiPjwvaT4nKTtlbHNlIGxpc3QucHVzaCgiPGVsLWJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJlbC1pY29uLXVwbG9hZFwiPiIuY29uY2F0KGNvbmYuYnV0dG9uVGV4dCwgIjwvZWwtYnV0dG9uPiIpKTsKICBpZiAoY29uZi5zaG93VGlwKSBsaXN0LnB1c2goIjxkaXYgc2xvdD1cInRpcFwiIGNsYXNzPVwiZWwtdXBsb2FkX190aXBcIj5cdTUzRUFcdTgwRkRcdTRFMEFcdTRGMjBcdTRFMERcdThEODVcdThGQzcgIi5jb25jYXQoY29uZi5maWxlU2l6ZSkuY29uY2F0KGNvbmYuc2l6ZVVuaXQsICIgXHU3Njg0IikuY29uY2F0KGNvbmYuYWNjZXB0LCAiXHU2NTg3XHU0RUY2PC9kaXY+IikpOwogIHJldHVybiBsaXN0LmpvaW4oJ1xuJyk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBtYWtlVXBIdG1sKGNvbmYsIHR5cGUpIHsKICB2YXIgaHRtbExpc3QgPSBbXTsKICBjb25mR2xvYmFsID0gY29uZjsKICBzb21lU3BhbklzTm90MjQgPSBjb25mLmZpZWxkcy5zb21lKGZ1bmN0aW9uIChpdGVtKSB7CiAgICByZXR1cm4gaXRlbS5zcGFuICE9PSAyNDsKICB9KTsKICBjb25mLmZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgewogICAgaHRtbExpc3QucHVzaChsYXlvdXRzW2VsLmxheW91dF0oZWwpKTsKICB9KTsKICB2YXIgaHRtbFN0ciA9IGh0bWxMaXN0LmpvaW4oJ1xuJyk7CiAgdmFyIHRlbXAgPSBidWlsZEZvcm1UZW1wbGF0ZShjb25mLCBodG1sU3RyLCB0eXBlKTsKCiAgaWYgKHR5cGUgPT09ICdkaWFsb2cnKSB7CiAgICB0ZW1wID0gZGlhbG9nV3JhcHBlcih0ZW1wKTsKICB9CgogIGNvbmZHbG9iYWwgPSBudWxsOwogIHJldHVybiB0ZW1wOwp9"},null]}