e59cf0bb3217c7a8bc6cd625e759babf.json 85 KB

1
  1. {"remainingRequest":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\@vue\\cli-plugin-eslint\\node_modules\\eslint-loader\\index.js??ref--13-0!E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\src\\views\\system\\processModeling\\flow-x6\\graph\\index.js","dependencies":[{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\src\\views\\system\\processModeling\\flow-x6\\graph\\index.js","mtime":1688607524101},{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\babel.config.js","mtime":1688713370854},{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1688725391035},{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1688725407620},{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\@vue\\cli-plugin-eslint\\node_modules\\eslint-loader\\index.js","mtime":1688725398524}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJFOi9tZWMtY2xvdWRfSW50ZWxsaWdlbnRNYW51ZmFjdHVyaW5nX0NSTS9tZWMtY2xvdWRfSW50ZWxsaWdlbnRNYW51ZmFjdHVyaW5nX0NSTS9ydW95aS11aS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiKS5kZWZhdWx0OwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgIl9fZXNNb2R1bGUiLCB7CiAgdmFsdWU6IHRydWUKfSk7CmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbHRlci5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyIpOwp2YXIgX2NsYXNzQ2FsbENoZWNrMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiRTovbWVjLWNsb3VkX0ludGVsbGlnZW50TWFudWZhY3R1cmluZ19DUk0vbWVjLWNsb3VkX0ludGVsbGlnZW50TWFudWZhY3R1cmluZ19DUk0vcnVveWktdWkvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanMiKSk7CnZhciBfY3JlYXRlQ2xhc3MyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJFOi9tZWMtY2xvdWRfSW50ZWxsaWdlbnRNYW51ZmFjdHVyaW5nX0NSTS9tZWMtY2xvdWRfSW50ZWxsaWdlbnRNYW51ZmFjdHVyaW5nX0NSTS9ydW95aS11aS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyIpKTsKdmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoIkU6L21lYy1jbG91ZF9JbnRlbGxpZ2VudE1hbnVmYWN0dXJpbmdfQ1JNL21lYy1jbG91ZF9JbnRlbGxpZ2VudE1hbnVmYWN0dXJpbmdfQ1JNL3J1b3lpLXVpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5LmpzIikpOwp2YXIgX3ggPSByZXF1aXJlKCJAYW50di94NiIpOwpyZXF1aXJlKCIuL3NoYXBlIik7CnZhciBfcG9ydHMgPSByZXF1aXJlKCIuL3BvcnRzIik7CnZhciBfZGF0YSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiLi9kYXRhL2RhdGEiKSk7CnZhciBfdHJhbnNmb3JtID0gcmVxdWlyZSgiQGFudHYveDYvbGliL3V0aWwvZG9tL3RyYW5zZm9ybSIpOwovLyBpbXBvcnQgeyBnZXRJbWcgfSBmcm9tICcuLi8uLi8uLi91dGlscycKCnZhciBpbnNlcnRDc3MgPSByZXF1aXJlKCdpbnNlcnQtY3NzJyk7Cmluc2VydENzcygiXG4gIEBrZXlmcmFtZXMgYW50LWxpbmUge1xuICAgIHRvIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMDAwXG4gICAgfVxuICB9XG4iKTsKdmFyIEZsb3dHcmFwaCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gRmxvd0dyYXBoKCkgewogICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgRmxvd0dyYXBoKTsKICB9CiAgKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoRmxvd0dyYXBoLCBudWxsLCBbewogICAga2V5OiAiaW5pdCIsCiAgICB2YWx1ZToKICAgIC8qKg0KICAgICAqIOWIneWni+WMluaWueazlQ0KICAgICAqIEBwYXJhbSB7Kn0gZG9tIOeUu+adv+WuueWZqA0KICAgICAqIEBwYXJhbSB7Kn0gd2lkdGgg5a655Zmo5a695bqmDQogICAgICogQHBhcmFtIHsqfSBoZWlnaHQg5a655Zmo6auY5bqmDQogICAgICogQHBhcmFtIHsqfSBmbGFnIOm7mOiupOS4unRydWXvvIzkvKDlhaVmYWxzZeWPquWunuS+i+WMlueUu+advw0KICAgICAqIEByZXR1cm5zIA0KICAgICAqLwogICAgZnVuY3Rpb24gaW5pdChkb20pIHsKICAgICAgdmFyIF9jb25uZWN0aW5nOwogICAgICB2YXIgd2lkdGggPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDgwMDsKICAgICAgdmFyIGhlaWdodCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogODAwOwogICAgICB2YXIgZmxhZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogdHJ1ZTsKICAgICAgLy8g5Yid5aeL5YyWIOa1geeoi+WbvueUu+advwogICAgICB0aGlzLmdyYXBoID0gbmV3IF94LkdyYXBoKHsKICAgICAgICBiYWNrZ3JvdW5kOiB7CiAgICAgICAgICBjb2xvcjogJyNlNWU1ZTUnIC8vIOiuvue9rueUu+W4g+iDjOaZr+minOiJsgogICAgICAgIH0sCgogICAgICAgIGNvbnRhaW5lcjogZG9tLAogICAgICAgIHdpZHRoOiB3aWR0aCwKICAgICAgICBoZWlnaHQ6IGhlaWdodCwKICAgICAgICBhdXRvUmVzaXplOiB0cnVlLAogICAgICAgIGdyaWQ6IHsKICAgICAgICAgIHNpemU6IDEwLAogICAgICAgICAgdmlzaWJsZTogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdkb3VibGVNZXNoJywKICAgICAgICAgIGFyZ3M6IFt7CiAgICAgICAgICAgIGNvbG9yOiAnI2NjY2NjYycsCiAgICAgICAgICAgIHRoaWNrbmVzczogMQogICAgICAgICAgfSwgewogICAgICAgICAgICBjb2xvcjogJyM1Rjk1RkYnLAogICAgICAgICAgICB0aGlja25lc3M6IDEsCiAgICAgICAgICAgIGZhY3RvcjogNAogICAgICAgICAgfV0KICAgICAgICB9LAogICAgICAgIHNjcm9sbGVyOiB7CiAgICAgICAgICBlbmFibGVkOiBmYWxzZSwKICAgICAgICAgIHBhZ2VWaXNpYmxlOiBmYWxzZSwKICAgICAgICAgIHBhZ2VCcmVhazogZmFsc2UsCiAgICAgICAgICBwYW5uYWJsZTogZmFsc2UKICAgICAgICB9LAogICAgICAgIC8vIOW8gOWQr+eUu+W4g+e8qeaUvgogICAgICAgIG1vdXNld2hlZWw6IHsKICAgICAgICAgIGVuYWJsZWQ6IHRydWUsCiAgICAgICAgICBtb2RpZmllcnM6IFsnY3RybCcsICdtZXRhJ10sCiAgICAgICAgICBtaW5TY2FsZTogMC41LAogICAgICAgICAgbWF4U2NhbGU6IDIKICAgICAgICB9LAogICAgICAgIGludGVyYWN0aW5nOiB7CiAgICAgICAgICBub2RlTW92YWJsZTogdHJ1ZSwKICAgICAgICAgIC8v6IqC54K55piv5ZCm5Y+v5Lul6KKr56e75Yqo44CCCiAgICAgICAgICBlZGdlTW92YWJsZTogZmFsc2UsCiAgICAgICAgICAvL+i+ueaYr+WQpuWPr+S7peiiq+enu+WKqOOAggogICAgICAgICAgZWRnZUxhYmVsTW92YWJsZTogZmFsc2UsCiAgICAgICAgICAvL+i+ueeahOagh+etvuaYr+WQpuWPr+S7peiiq+enu+WKqOOAggogICAgICAgICAgYXJyb3doZWFkTW92YWJsZTogZmFsc2UsCiAgICAgICAgICAvL+i+ueeahOi1t+Wniy/nu4jmraLnrq3lpLTmmK/lkKblj6/ku6Xooqvnp7vliqgKICAgICAgICAgIHZlcnRleE1vdmFibGU6IHRydWUsCiAgICAgICAgICAvL+i+ueeahOi3r+W+hOeCueaYr+WQpuWPr+S7peiiq+enu+WKqOOAggogICAgICAgICAgdmVydGV4QWRkYWJsZTogdHJ1ZSwKICAgICAgICAgIC8v5piv5ZCm5Y+v5Lul5re75Yqg6L6555qE6Lev5b6E54K544CCCiAgICAgICAgICB2ZXJ0ZXhEZWxldGFibGU6IHRydWUgLy/ovrnnmoTot6/lvoTngrnmmK/lkKblj6/ku6XooqvliKDpmaTjgIIKICAgICAgICB9LAoKICAgICAgICBjb25uZWN0aW5nOiAoX2Nvbm5lY3RpbmcgPSB7CiAgICAgICAgICBhbmNob3I6ICdjZW50ZXInLAogICAgICAgICAgY29ubmVjdGlvblBvaW50OiAnYW5jaG9yJywKICAgICAgICAgIGFsbG93Qmxhbms6IHRydWUsCiAgICAgICAgICBoaWdobGlnaHQ6IHRydWUsCiAgICAgICAgICBzbmFwOiB0cnVlLAogICAgICAgICAgLy8g5piv5ZCm6Ieq5Yqo5ZC46ZmECiAgICAgICAgICBhbGxvd011bHRpOiB0cnVlLAogICAgICAgICAgLy8g5piv5ZCm5YWB6K645Zyo55u45ZCM55qE6LW35aeL6IqC54K55ZKM57uI5q2i5LmL6Ze05Yib5bu65aSa5p2h6L65CiAgICAgICAgICBhbGxvd05vZGU6IGZhbHNlCiAgICAgICAgfSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2Nvbm5lY3RpbmcsICJhbGxvd0JsYW5rIiwgZmFsc2UpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY29ubmVjdGluZywgImFsbG93TG9vcCIsIGZhbHNlKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2Nvbm5lY3RpbmcsICJhbGxvd0VkZ2UiLCBmYWxzZSksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jb25uZWN0aW5nLCAiaGlnaGxpZ2h0IiwgdHJ1ZSksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jb25uZWN0aW5nLCAiY29ubmVjdGlvblBvaW50IiwgImFuY2hvciIpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY29ubmVjdGluZywgImFuY2hvciIsICJjZW50ZXIiKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2Nvbm5lY3RpbmcsICJjcmVhdGVFZGdlIiwgZnVuY3Rpb24gY3JlYXRlRWRnZSgpIHsKICAgICAgICAgIC8vIFg2IOeahCBTaGFwZSDlkb3lkI3nqbrpl7TkuK3lhoXnva4gRWRnZeOAgURvdWJsZUVkZ2XjgIFTaGFkb3dFZGdlIOS4ieenjei+uQogICAgICAgICAgcmV0dXJuIG5ldyBfeC5TaGFwZS5Eb3VibGVFZGdlKHsKICAgICAgICAgICAgYXR0cnM6IHsKICAgICAgICAgICAgICAvLyBsaW5lOiB7CiAgICAgICAgICAgICAgLy8gICAvLyBzdHJva2U6ICcjNUY5NUZGJywKICAgICAgICAgICAgICAvLyAgIC8vIHN0cm9rZVdpZHRoOiA0LAogICAgICAgICAgICAgIC8vICAgLy8gdGFyZ2V0TWFya2VyOiB7CiAgICAgICAgICAgICAgLy8gICAvLyAgIG5hbWU6ICdjbGFzc2ljJywKICAgICAgICAgICAgICAvLyAgIC8vICAgc2l6ZTogOCwKICAgICAgICAgICAgICAvLyAgIC8vIH0sCiAgICAgICAgICAgICAgLy8gICBzdHJva2U6ICcjMTg5MGZmJywKICAgICAgICAgICAgICAvLyAgIHN0cm9rZURhc2hhcnJheTogNSwKICAgICAgICAgICAgICAvLyAgIHRhcmdldE1hcmtlcjogbnVsbCwvL2Jsb2NrIGNsYXNzaWMgZGlhbW9uZCBjcm9zcyBhc3luYyBwYXRoIGNpcmNsZSBjaXJjbGVQbHVzIGVsbGlwc2UKICAgICAgICAgICAgICAvLyAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgLy8gICAgIGFuaW1hdGlvbjogJ2FudC1saW5lIDMwcyBpbmZpbml0ZSBsaW5lYXInLAogICAgICAgICAgICAgIC8vICAgfSwKICAgICAgICAgICAgICAvLyB9LAogICAgICAgICAgICAgIGxpbmU6IHsKICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAxLAogICAgICAgICAgICAgICAgc3Ryb2tlOiAncmdiYSg5NSwxNDksMjU1KScsCiAgICAgICAgICAgICAgICBzdHJva2VEYXNoYXJyYXk6IDAsCiAgICAgICAgICAgICAgICBzdHlsZTogewogICAgICAgICAgICAgICAgICBhbmltYXRpb246ICdhbnQtbGluZSAwcyBpbmZpbml0ZSBsaW5lYXInCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgdGFyZ2V0TWFya2VyOiB7CiAgICAgICAgICAgICAgICAgICJuYW1lIjogImNsYXNzaWMiLAogICAgICAgICAgICAgICAgICAvL+i/meS4quaYr+S4ieinkuagt+W8jwogICAgICAgICAgICAgICAgICAic2l6ZSI6IDgsCiAgICAgICAgICAgICAgICAgIC8v5LiJ6KeS5b2i55qE5aSn5bCPICAgIAogICAgICAgICAgICAgICAgICAnc3Ryb2tlJzogJ3JnYmEoOTUsMTQ5LDI1NSknCiAgICAgICAgICAgICAgICB9IC8vIOWOu+aOieeureWktAogICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgIG91dGxpbmU6IHsKICAgICAgICAgICAgICAgIHN0cm9rZTogJ3JnYmEoOTUsMTQ5LDI1NSknLAogICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHJvdXRlcjogewogICAgICAgICAgICAgIG5hbWU6ICdtZXRybycsCiAgICAgICAgICAgICAgYXJnczogewogICAgICAgICAgICAgICAgb2Zmc2V0OiAzMiwKICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogJ0gnCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2Nvbm5lY3RpbmcsICJ2YWxpZGF0ZUNvbm5lY3Rpb24iLCBmdW5jdGlvbiB2YWxpZGF0ZUNvbm5lY3Rpb24oX3JlZikgewogICAgICAgICAgdmFyIHNvdXJjZVZpZXcgPSBfcmVmLnNvdXJjZVZpZXcsCiAgICAgICAgICAgIHRhcmdldFZpZXcgPSBfcmVmLnRhcmdldFZpZXcsCiAgICAgICAgICAgIHNvdXJjZU1hZ25ldCA9IF9yZWYuc291cmNlTWFnbmV0LAogICAgICAgICAgICB0YXJnZXRNYWduZXQgPSBfcmVmLnRhcmdldE1hZ25ldDsKICAgICAgICAgIGlmIChzb3VyY2VWaWV3ID09PSB0YXJnZXRWaWV3KSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghc291cmNlTWFnbmV0KSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghdGFyZ2V0TWFnbmV0KSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0pLCBfY29ubmVjdGluZyksCiAgICAgICAgaGlnaGxpZ2h0aW5nOiB7CiAgICAgICAgICBtYWduZXRBdmFpbGFibGU6IHsKICAgICAgICAgICAgbmFtZTogJ3N0cm9rZScsCiAgICAgICAgICAgIGFyZ3M6IHsKICAgICAgICAgICAgICBwYWRkaW5nOiA0LAogICAgICAgICAgICAgIGF0dHJzOiB7CiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogMSwKICAgICAgICAgICAgICAgIHN0cm9rZTogJ3JnYmEoMjIzLDIzNCwyNTUpJwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgLy8g5byA5ZCv5ouW5ou95bmz56e777yI6Ziy5q2i5Yay56qB77yM5oyJ5LiL5L+u6aWw6ZSu5bm254K55Ye76byg5qCH5omN6IO96Kem5Y+R55S75biD5ouW5ou977yJCiAgICAgICAgcGFubmluZzogewogICAgICAgICAgZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgIG1vZGlmaWVyczogJ3NoaWZ0JwogICAgICAgIH0sCiAgICAgICAgcmVzaXppbmc6IHRydWUsCiAgICAgICAgcm90YXRpbmc6IHRydWUsCiAgICAgICAgc2VsZWN0aW5nOiB7CiAgICAgICAgICBlbmFibGVkOiB0cnVlLAogICAgICAgICAgbXVsdGlwbGU6IHRydWUsCiAgICAgICAgICBydWJiZXJiYW5kOiB0cnVlLAogICAgICAgICAgbW92YWJsZTogdHJ1ZSwKICAgICAgICAgIHNob3dOb2RlU2VsZWN0aW9uQm94OiB0cnVlCiAgICAgICAgfSwKICAgICAgICBzbmFwbGluZTogdHJ1ZSwKICAgICAgICBoaXN0b3J5OiB0cnVlLAogICAgICAgIGNsaXBib2FyZDogewogICAgICAgICAgZW5hYmxlZDogdHJ1ZQogICAgICAgIH0sCiAgICAgICAga2V5Ym9hcmQ6IHsKICAgICAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgICB9LAogICAgICAgIGVtYmVkZGluZzogewogICAgICAgICAgZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgIGZpbmRQYXJlbnQ6IGZ1bmN0aW9uIGZpbmRQYXJlbnQoX3JlZjIpIHsKICAgICAgICAgICAgdmFyIG5vZGUgPSBfcmVmMi5ub2RlOwogICAgICAgICAgICB2YXIgYmJveCA9IG5vZGUuZ2V0QkJveCgpOwogICAgICAgICAgICByZXR1cm4gdGhpcy5nZXROb2RlcygpLmZpbHRlcihmdW5jdGlvbiAobm9kZSkgewogICAgICAgICAgICAgIC8vIOWPquaciSBkYXRhLnBhcmVudCDkuLogdHJ1ZSDnmoToioLngrnmiY3mmK/niLboioLngrkKICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5vZGUuZ2V0RGF0YSgpOwogICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGEucGFyZW50KSB7CiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0QkJveCA9IG5vZGUuZ2V0QkJveCgpOwogICAgICAgICAgICAgICAgcmV0dXJuIGJib3guaXNJbnRlcnNlY3RXaXRoUmVjdCh0YXJnZXRCQm94KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICBpZiAoIWZsYWcpIHsKICAgICAgICAvLyB0aGlzLmdyYXBoLmNlbnRlckNvbnRlbnQoKQogICAgICAgIHRoaXMuZ3JhcGguaGlkZUdyaWQoKTsgLy8g6L+U5pi+5riy5p+T55qE5pe25YCZIOmakOiXj+e9keagvAogICAgICAgIHJldHVybiB0aGlzLmdyYXBoOwogICAgICB9CiAgICAgIHRoaXMuaW5pdFN0ZW5jaWwoKTsKICAgICAgdGhpcy5pbml0U2hhcGUoKTsKICAgICAgdGhpcy5pbml0R3JhcGhTaGFwZSgpOwogICAgICB0aGlzLmluaXRFdmVudCgpOwogICAgICByZXR1cm4gdGhpcy5ncmFwaDsKICAgIH0KICAgIC8vIOWIneWni+WMluagueiKgueCuQogIH0sIHsKICAgIGtleTogImluaXRTdGVuY2lsIiwKICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0U3RlbmNpbCgpIHsKICAgICAgdGhpcy5zdGVuY2lsID0gbmV3IF94LkFkZG9uLlN0ZW5jaWwoewogICAgICAgIHRhcmdldDogdGhpcy5ncmFwaCwKICAgICAgICBzdGVuY2lsR3JhcGhXaWR0aDogMjgwLAogICAgICAgIHNlYXJjaDogewogICAgICAgICAgcmVjdDogdHJ1ZSwKICAgICAgICAgIGVsbGlwc2U6IHRydWUsCiAgICAgICAgICBwb2x5Z29uOiB0cnVlCiAgICAgICAgfSwKICAgICAgICBjb2xsYXBzYWJsZTogdHJ1ZSwKICAgICAgICBncm91cHM6IFt7CiAgICAgICAgICBuYW1lOiAnYmFzaWMnLAogICAgICAgICAgdGl0bGU6ICfln7rnoYDoioLngrknLAogICAgICAgICAgZ3JhcGhIZWlnaHQ6IDI4MCwKICAgICAgICAgIGxheW91dE9wdGlvbnM6IHsKICAgICAgICAgICAgY29sdW1uczogMSwKICAgICAgICAgICAgbWFyZ2luWDogOAogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyB7ICAKICAgICAgICAvLyAgIG5hbWU6ICdjdXN0b20taW1hZ2UnLAogICAgICAgIC8vICAgdGl0bGU6ICfns7vnu5/orr7orqHlm74nLAogICAgICAgIC8vICAgZ3JhcGhIZWlnaHQ6IDYwMAogICAgICAgIC8vIH0sCiAgICAgICAgLy8gewogICAgICAgIC8vICAgbmFtZTogJ2NvbWJpbmF0aW9uJywKICAgICAgICAvLyAgIHRpdGxlOiAn57uE5ZCI6IqC54K5JywKICAgICAgICAvLyAgIGxheW91dE9wdGlvbnM6IHsKICAgICAgICAvLyAgICAgY29sdW1uczogMSwKICAgICAgICAvLyAgICAgbWFyZ2luWDogNjAsCiAgICAgICAgLy8gICB9LAogICAgICAgIC8vICAgZ3JhcGhIZWlnaHQ6IDI2MCwKICAgICAgICAvLyB9LAogICAgICAgIC8vIHsKICAgICAgICAvLyAgIG5hbWU6ICdncm91cCcsCiAgICAgICAgLy8gICB0aXRsZTogJ+iKgueCuee7hCcsCiAgICAgICAgLy8gICBncmFwaEhlaWdodDogMTAwLAogICAgICAgIC8vICAgbGF5b3V0T3B0aW9uczogewogICAgICAgIC8vICAgICBjb2x1bW5zOiAxLAogICAgICAgIC8vICAgICBtYXJnaW5YOiA2MCwKICAgICAgICAvLyAgIH0sCiAgICAgICAgLy8gfSwKICAgICAgICBdCiAgICAgIH0pOwoKICAgICAgdmFyIHN0ZW5jaWxDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3RlbmNpbCcpOwogICAgICBzdGVuY2lsQ29udGFpbmVyID09PSBudWxsIHx8IHN0ZW5jaWxDb250YWluZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0ZW5jaWxDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5zdGVuY2lsLmNvbnRhaW5lcik7CiAgICB9CiAgICAvLyDliJ3lp4vljJblhbfkvZPmr4/kuKrmoLnoioLngrnkuIvkuI3lkIznsbvlnovoioLngrkKICB9LCB7CiAgICBrZXk6ICJpbml0U2hhcGUiLAogICAgdmFsdWU6IGZ1bmN0aW9uIGluaXRTaGFwZSgpIHsKICAgICAgdmFyIGdyYXBoID0gdGhpcy5ncmFwaDsKICAgICAgLy8g5Z+656GA6IqC54K5CiAgICAgIHZhciByMSA9IGdyYXBoLmNyZWF0ZU5vZGUoewogICAgICAgIHNoYXBlOiAnZmxvdy1jaGFydC1yZWN0JywKICAgICAgICB3aWR0aDogNjAsCiAgICAgICAgaGVpZ2h0OiA0MCwKICAgICAgICBhdHRyczogewogICAgICAgICAgYm9keTogewogICAgICAgICAgICByeDogMjQsCiAgICAgICAgICAgIHJ5OiAyNCwKICAgICAgICAgICAgc3Ryb2tlOiAnIzA3NDQ4YScKICAgICAgICAgIH0sCiAgICAgICAgICB0ZXh0OiB7CiAgICAgICAgICAgIHRleHQ6ICflvIDlp4snCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdmFyIHIyID0gZ3JhcGguY3JlYXRlTm9kZSh7CiAgICAgICAgc2hhcGU6ICdmbG93LWNoYXJ0LXJlY3QnLAogICAgICAgIHdpZHRoOiA1OCwKICAgICAgICBoZWlnaHQ6IDM4LAogICAgICAgIGF0dHJzOiB7CiAgICAgICAgICB0ZXh0OiB7CiAgICAgICAgICAgIHRleHQ6ICfmtYHnqIsnCiAgICAgICAgICAgIC8vIHJlZlg6IC0xMDAsCiAgICAgICAgICAgIC8vIHJlZlk6IDQwLAogICAgICAgICAgfSwKCiAgICAgICAgICBib2R5OiB7CiAgICAgICAgICAgIHN0cm9rZTogJyMwNzQ0OGEnIC8vIOi+ueahhuminOiJsgogICAgICAgICAgICAvLyB4OiAtMTQwLAogICAgICAgICAgICAvLyB5OiA0MCwKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwoKICAgICAgdmFyIHIzID0gZ3JhcGguY3JlYXRlTm9kZSh7CiAgICAgICAgc2hhcGU6ICdmbG93LWNoYXJ0LXJlY3QnLAogICAgICAgIHdpZHRoOiA1MiwKICAgICAgICBoZWlnaHQ6IDUyLAogICAgICAgIGFuZ2xlOiA0NSwKICAgICAgICBhdHRyczogewogICAgICAgICAgYm9keTogewogICAgICAgICAgICBzdHJva2U6ICcjMDc0NDhhJyAvLyDovrnmoYbpopzoibIKICAgICAgICAgIH0sCgogICAgICAgICAgJ2VkaXQtdGV4dCc6IHsKICAgICAgICAgICAgc3R5bGU6IHsKICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdyb3RhdGUoLTQ1ZGVnKScKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHRleHQ6IHsKICAgICAgICAgICAgdGV4dDogJ+WIpOaWrScsCiAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgtNDVkZWcpJwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgcG9ydHM6IHsKICAgICAgICAgIGdyb3VwczogewogICAgICAgICAgICB0b3A6IHsKICAgICAgICAgICAgICBwb3NpdGlvbjogewogICAgICAgICAgICAgICAgbmFtZTogJ3RvcCcsCiAgICAgICAgICAgICAgICBhcmdzOiB7CiAgICAgICAgICAgICAgICAgIGR4OiAtMjYKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHJpZ2h0OiB7CiAgICAgICAgICAgICAgcG9zaXRpb246IHsKICAgICAgICAgICAgICAgIG5hbWU6ICdyaWdodCcsCiAgICAgICAgICAgICAgICBhcmdzOiB7CiAgICAgICAgICAgICAgICAgIGR5OiAtMjYKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGJvdHRvbTogewogICAgICAgICAgICAgIHBvc2l0aW9uOiB7CiAgICAgICAgICAgICAgICBuYW1lOiAnYm90dG9tJywKICAgICAgICAgICAgICAgIGFyZ3M6IHsKICAgICAgICAgICAgICAgICAgZHg6IDI2CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBsZWZ0OiB7CiAgICAgICAgICAgICAgcG9zaXRpb246IHsKICAgICAgICAgICAgICAgIG5hbWU6ICdsZWZ0JywKICAgICAgICAgICAgICAgIGFyZ3M6IHsKICAgICAgICAgICAgICAgICAgZHk6IDI2CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdmFyIHI0ID0gZ3JhcGguY3JlYXRlTm9kZSh7CiAgICAgICAgc2hhcGU6ICdmbG93LWNoYXJ0LXJlY3QnLAogICAgICAgIHdpZHRoOiA1NiwKICAgICAgICBoZWlnaHQ6IDU2LAogICAgICAgIGF0dHJzOiB7CiAgICAgICAgICBib2R5OiB7CiAgICAgICAgICAgIHJ4OiAzNSwKICAgICAgICAgICAgcnk6IDM1LAogICAgICAgICAgICBzdHJva2U6ICcjMDc0NDhhJwogICAgICAgICAgfSwKICAgICAgICAgIHRleHQ6IHsKICAgICAgICAgICAgdGV4dDogJ+iBlOezuycKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICB2YXIgcjUgPSBncmFwaC5jcmVhdGVOb2RlKHsKICAgICAgICBzaGFwZTogJ3BvbHlnb24nLAogICAgICAgIHdpZHRoOiA1NywKICAgICAgICBoZWlnaHQ6IDQ3LAogICAgICAgIGF0dHJzOiB7CiAgICAgICAgICAvLyBzdHlsZTogewogICAgICAgICAgLy8gICB2aXNpYmlsaXR5OiAnaGlkZGVuJywKICAgICAgICAgIC8vIH0sCiAgICAgICAgICBib2R5OiB7CiAgICAgICAgICAgIHJlZlBvaW50czogJzEwLDAgNDAsMCAzMCwyMCAwLDIwJywKICAgICAgICAgICAgc3Ryb2tlOiAnIzA3NDQ4YScsCiAgICAgICAgICAgIC8vIOi+ueahhuminOiJsgogICAgICAgICAgICBzdHJva2VXaWR0aDogMSwKICAgICAgICAgICAgd2lkdGg6IDUwLAogICAgICAgICAgICBoZWlnaHQ6IDQwLAogICAgICAgICAgICBmaWxsOiAnI2ZmZicsCiAgICAgICAgICAgIC8vIOWhq+WFheminOiJsgogICAgICAgICAgICB0cmFuc2Zvcm06ICdza2V3WCgtMzBkZWcpJywKICAgICAgICAgICAgcmVmWDogMTUKICAgICAgICAgIH0sCiAgICAgICAgICBmbzogewogICAgICAgICAgICByZWZXaWR0aDogJzEwMCUnLAogICAgICAgICAgICByZWZIZWlnaHQ6ICcxMDAlJywKICAgICAgICAgICAgc3Ryb2tlOiAnIzA3NDQ4YScsCiAgICAgICAgICAgIC8vIOi+ueahhuminOiJsgogICAgICAgICAgICBzdHJva2VXaWR0aDogMQogICAgICAgICAgfSwKICAgICAgICAgIGZvQm9keTogewogICAgICAgICAgICB4bWxuczogX3guRG9tLm5zLnhodG1sLAogICAgICAgICAgICBzdHlsZTogewogICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsCiAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsCiAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLAogICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywKICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJywKICAgICAgICAgICAgICBzdHJva2U6ICcjMDc0NDhhJywKICAgICAgICAgICAgICAvLyDovrnmoYbpopzoibIKICAgICAgICAgICAgICBzdHJva2VXaWR0aDogMQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgdGV4dDogewogICAgICAgICAgICB0ZXh0OiAn5pWw5o2uJwogICAgICAgICAgfSwKICAgICAgICAgICdlZGl0LXRleHQnOiB7CiAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZTogJ3RydWUnLAogICAgICAgICAgICBjbGFzczogJ3g2LWVkaXQtdGV4dCcsCiAgICAgICAgICAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJywKICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLAogICAgICAgICAgICAgIGZvbnRTaXplOiAxMiwKICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMCwwLDAsMC44NSknCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHBvcnRzOiB7CiAgICAgICAgICBncm91cHM6IHsKICAgICAgICAgICAgLy8g6L6T5YWl6ZO+5o6l5qGp576k57uE5a6a5LmJCiAgICAgICAgICAgIGluOiB7CiAgICAgICAgICAgICAgcG9zaXRpb246ICd0b3AnLAogICAgICAgICAgICAgIGF0dHJzOiB7CiAgICAgICAgICAgICAgICBzdHlsZTogewogICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGNpcmNsZTogewogICAgICAgICAgICAgICAgICByOiA0LAogICAgICAgICAgICAgICAgICBtYWduZXQ6IHRydWUsCiAgICAgICAgICAgICAgICAgIHN0cm9rZTogJyM1Rjk1RkYnLAogICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogMSwKICAgICAgICAgICAgICAgICAgZmlsbDogJyNmZmYnCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAvLyDovpPlh7rpk77mjqXmoannvqTnu4TlrprkuYkKICAgICAgICAgICAgb3V0OiB7CiAgICAgICAgICAgICAgcG9zaXRpb246ICdib3R0b20nLAogICAgICAgICAgICAgIGF0dHJzOiB7CiAgICAgICAgICAgICAgICBzdHlsZTogewogICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGNpcmNsZTogewogICAgICAgICAgICAgICAgICByOiA0LAogICAgICAgICAgICAgICAgICBtYWduZXQ6IHRydWUsCiAgICAgICAgICAgICAgICAgIHN0cm9rZTogJyM1Rjk1RkYnLAogICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogMSwKICAgICAgICAgICAgICAgICAgZmlsbDogJyNmZmYnCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBvbjogewogICAgICAgICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsCiAgICAgICAgICAgICAgYXR0cnM6IHsKICAgICAgICAgICAgICAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgY2lyY2xlOiB7CiAgICAgICAgICAgICAgICAgIHI6IDQsCiAgICAgICAgICAgICAgICAgIG1hZ25ldDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgc3Ryb2tlOiAnIzVGOTVGRicsCiAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAxLAogICAgICAgICAgICAgICAgICBmaWxsOiAnI2ZmZicKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHVuOiB7CiAgICAgICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICAgICAgYXR0cnM6IHsKICAgICAgICAgICAgICAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgY2lyY2xlOiB7CiAgICAgICAgICAgICAgICAgIHI6IDQsCiAgICAgICAgICAgICAgICAgIG1hZ25ldDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgc3Ryb2tlOiAnIzVGOTVGRicsCiAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAxLAogICAgICAgICAgICAgICAgICBmaWxsOiAnI2ZmZicKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBpdGVtczogW3sKICAgICAgICAgICAgaWQ6ICdwb3J0MScsCiAgICAgICAgICAgIGdyb3VwOiAnaW4nLAogICAgICAgICAgICBhdHRyczogewogICAgICAgICAgICAgIGNpcmNsZTogewogICAgICAgICAgICAgICAgc3R5bGU6IHsKICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIHsKICAgICAgICAgICAgaWQ6ICdwb3J0MicsCiAgICAgICAgICAgIGdyb3VwOiAndW4nLAogICAgICAgICAgICBhdHRyczogewogICAgICAgICAgICAgIGNpcmNsZTogewogICAgICAgICAgICAgICAgc3R5bGU6IHsKICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIHsKICAgICAgICAgICAgaWQ6ICdwb3J0MycsCiAgICAgICAgICAgIGdyb3VwOiAnb24nLAogICAgICAgICAgICBhdHRyczogewogICAgICAgICAgICAgIGNpcmNsZTogewogICAgICAgICAgICAgICAgc3R5bGU6IHsKICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIHsKICAgICAgICAgICAgaWQ6ICdwb3J0NCcsCiAgICAgICAgICAgIGdyb3VwOiAnb3V0JywKICAgICAgICAgICAgYXR0cnM6IHsKICAgICAgICAgICAgICBjaXJjbGU6IHsKICAgICAgICAgICAgICAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9XQogICAgICAgIH0sCiAgICAgICAgbWFya3VwOiBbewogICAgICAgICAgdGFnTmFtZTogJ3JlY3QnLAogICAgICAgICAgc2VsZWN0b3I6ICdib2R5JwogICAgICAgIH0sIHsKICAgICAgICAgIHRhZ05hbWU6ICd0ZXh0JywKICAgICAgICAgIHNlbGVjdG9yOiAndGV4dCcKICAgICAgICB9LCB7CiAgICAgICAgICB0YWdOYW1lOiAnZm9yZWlnbk9iamVjdCcsCiAgICAgICAgICBzZWxlY3RvcjogJ2ZvJywKICAgICAgICAgIGNoaWxkcmVuOiBbewogICAgICAgICAgICBuczogX3guRG9tLm5zLnhodG1sLAogICAgICAgICAgICB0YWdOYW1lOiAnYm9keScsCiAgICAgICAgICAgIHNlbGVjdG9yOiAnZm9Cb2R5JywKICAgICAgICAgICAgY2hpbGRyZW46IFt7CiAgICAgICAgICAgICAgdGFnTmFtZTogJ2RpdicsCiAgICAgICAgICAgICAgc2VsZWN0b3I6ICdlZGl0LXRleHQnCiAgICAgICAgICAgIH1dCiAgICAgICAgICB9XQogICAgICAgIH1dCiAgICAgIH0pOwogICAgICB2YXIgcjYgPSBncmFwaC5jcmVhdGVOb2RlKHsKICAgICAgICBzaGFwZTogJ2VsbGlwc2UnLAogICAgICAgIHdpZHRoOiA3MCwKICAgICAgICBoZWlnaHQ6IDQwLAogICAgICAgIGF0dHJzOiB7CiAgICAgICAgICAvLyBzdHlsZTogewogICAgICAgICAgLy8gICB2aXNpYmlsaXR5OiAnaGlkZGVuJywKICAgICAgICAgIC8vIH0sCiAgICAgICAgICBib2R5OiB7CiAgICAgICAgICAgIHJ4OiAxMCwKICAgICAgICAgICAgLy8g5ZyG6KeS55+p5b2iCiAgICAgICAgICAgIHJ5OiAxMCwKICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsCiAgICAgICAgICAgIHN0cm9rZTogJyMwNzQ0OGEnCiAgICAgICAgICB9LAogICAgICAgICAgdGV4dDogewogICAgICAgICAgICB0ZXh0OiAn5Y+v6YCJJwogICAgICAgICAgfSwKICAgICAgICAgIGZvOiB7CiAgICAgICAgICAgIHJlZldpZHRoOiAnMTAwJScsCiAgICAgICAgICAgIHJlZkhlaWdodDogJzEwMCUnLAogICAgICAgICAgICBzdHJva2U6ICcjMDc0NDhhJywKICAgICAgICAgICAgLy8g6L655qGG6aKc6ImyCiAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAxCiAgICAgICAgICB9LAogICAgICAgICAgZm9Cb2R5OiB7CiAgICAgICAgICAgIHhtbG5zOiBfeC5Eb20ubnMueGh0bWwsCiAgICAgICAgICAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJywKICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJywKICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsCiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLAogICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLAogICAgICAgICAgICAgIHN0cm9rZTogJyMwNzQ0OGEnLAogICAgICAgICAgICAgIC8vIOi+ueahhuminOiJsgogICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAxCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAnZWRpdC10ZXh0JzogewogICAgICAgICAgICBjb250ZW50ZWRpdGFibGU6ICd0cnVlJywKICAgICAgICAgICAgY2xhc3M6ICd4Ni1lZGl0LXRleHQnLAogICAgICAgICAgICBzdHlsZTogewogICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsCiAgICAgICAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJywKICAgICAgICAgICAgICBmb250U2l6ZTogMTIsCiAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsMCwwLDAuODUpJwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBwb3J0czogewogICAgICAgICAgZ3JvdXBzOiB7CiAgICAgICAgICAgIC8vIOi+k+WFpemTvuaOpeahqee+pOe7hOWumuS5iQogICAgICAgICAgICBpbjogewogICAgICAgICAgICAgIHBvc2l0aW9uOiAndG9wJywKICAgICAgICAgICAgICBhdHRyczogewogICAgICAgICAgICAgICAgc3R5bGU6IHsKICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBjaXJjbGU6IHsKICAgICAgICAgICAgICAgICAgcjogNCwKICAgICAgICAgICAgICAgICAgbWFnbmV0OiB0cnVlLAogICAgICAgICAgICAgICAgICBzdHJva2U6ICcjNUY5NUZGJywKICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsCiAgICAgICAgICAgICAgICAgIGZpbGw6ICcjZmZmJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgLy8g6L6T5Ye66ZO+5o6l5qGp576k57uE5a6a5LmJCiAgICAgICAgICAgIG91dDogewogICAgICAgICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJywKICAgICAgICAgICAgICBhdHRyczogewogICAgICAgICAgICAgICAgc3R5bGU6IHsKICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBjaXJjbGU6IHsKICAgICAgICAgICAgICAgICAgcjogNCwKICAgICAgICAgICAgICAgICAgbWFnbmV0OiB0cnVlLAogICAgICAgICAgICAgICAgICBzdHJva2U6ICcjNUY5NUZGJywKICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsCiAgICAgICAgICAgICAgICAgIGZpbGw6ICcjZmZmJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgb246IHsKICAgICAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnLAogICAgICAgICAgICAgIGF0dHJzOiB7CiAgICAgICAgICAgICAgICBzdHlsZTogewogICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGNpcmNsZTogewogICAgICAgICAgICAgICAgICByOiA0LAogICAgICAgICAgICAgICAgICBtYWduZXQ6IHRydWUsCiAgICAgICAgICAgICAgICAgIHN0cm9rZTogJyM1Rjk1RkYnLAogICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogMSwKICAgICAgICAgICAgICAgICAgZmlsbDogJyNmZmYnCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICB1bjogewogICAgICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgICAgIGF0dHJzOiB7CiAgICAgICAgICAgICAgICBzdHlsZTogewogICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGNpcmNsZTogewogICAgICAgICAgICAgICAgICByOiA0LAogICAgICAgICAgICAgICAgICBtYWduZXQ6IHRydWUsCiAgICAgICAgICAgICAgICAgIHN0cm9rZTogJyM1Rjk1RkYnLAogICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogMSwKICAgICAgICAgICAgICAgICAgZmlsbDogJyNmZmYnCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgaXRlbXM6IFt7CiAgICAgICAgICAgIGlkOiAncG9ydDEnLAogICAgICAgICAgICBncm91cDogJ2luJywKICAgICAgICAgICAgYXR0cnM6IHsKICAgICAgICAgICAgICBjaXJjbGU6IHsKICAgICAgICAgICAgICAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LCB7CiAgICAgICAgICAgIGlkOiAncG9ydDInLAogICAgICAgICAgICBncm91cDogJ3VuJywKICAgICAgICAgICAgYXR0cnM6IHsKICAgICAgICAgICAgICBjaXJjbGU6IHsKICAgICAgICAgICAgICAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LCB7CiAgICAgICAgICAgIGlkOiAncG9ydDMnLAogICAgICAgICAgICBncm91cDogJ29uJywKICAgICAgICAgICAgYXR0cnM6IHsKICAgICAgICAgICAgICBjaXJjbGU6IHsKICAgICAgICAgICAgICAgIHN0eWxlOiB7CiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LCB7CiAgICAgICAgICAgIGlkOiAncG9ydDQnLAogICAgICAgICAgICBncm91cDogJ291dCcsCiAgICAgICAgICAgIGF0dHJzOiB7CiAgICAgICAgICAgICAgY2lyY2xlOiB7CiAgICAgICAgICAgICAgICBzdHlsZTogewogICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfV0KICAgICAgICB9LAogICAgICAgIG1hcmt1cDogW3sKICAgICAgICAgIHRhZ05hbWU6ICdyZWN0JywKICAgICAgICAgIHNlbGVjdG9yOiAnYm9keScKICAgICAgICB9LCB7CiAgICAgICAgICB0YWdOYW1lOiAndGV4dCcsCiAgICAgICAgICBzZWxlY3RvcjogJ3RleHQnCiAgICAgICAgfSwgewogICAgICAgICAgdGFnTmFtZTogJ2ZvcmVpZ25PYmplY3QnLAogICAgICAgICAgc2VsZWN0b3I6ICdmbycsCiAgICAgICAgICBjaGlsZHJlbjogW3sKICAgICAgICAgICAgbnM6IF94LkRvbS5ucy54aHRtbCwKICAgICAgICAgICAgdGFnTmFtZTogJ2JvZHknLAogICAgICAgICAgICBzZWxlY3RvcjogJ2ZvQm9keScsCiAgICAgICAgICAgIGNoaWxkcmVuOiBbewogICAgICAgICAgICAgIHRhZ05hbWU6ICdkaXYnLAogICAgICAgICAgICAgIHNlbGVjdG9yOiAnZWRpdC10ZXh0JwogICAgICAgICAgICB9XQogICAgICAgICAgfV0KICAgICAgICB9XQogICAgICB9KTsKICAgICAgLy8g6L+Z6YeM5Yib5paw5paw55qE6IqC54K5KysrKysrKysrKysrKwoKICAgICAgLy8g57uE5ZCI6IqC54K5CiAgICAgIHZhciBjMSA9IGdyYXBoLmNyZWF0ZU5vZGUoewogICAgICAgIHNoYXBlOiAnZmxvdy1jaGFydC1pbWFnZS1yZWN0JwogICAgICB9KTsKICAgICAgdmFyIGMyID0gZ3JhcGguY3JlYXRlTm9kZSh7CiAgICAgICAgc2hhcGU6ICdmbG93LWNoYXJ0LXRpdGxlLXJlY3QnCiAgICAgIH0pOwogICAgICB2YXIgYzMgPSBncmFwaC5jcmVhdGVOb2RlKHsKICAgICAgICBzaGFwZTogJ2Zsb3ctY2hhcnQtYW5pbWF0ZS10ZXh0JwogICAgICB9KTsKICAgICAgLy8g6IqC54K557uECiAgICAgIHZhciBnMSA9IGdyYXBoLmNyZWF0ZU5vZGUoewogICAgICAgIHNoYXBlOiAnZ3JvdXBOb2RlJywKICAgICAgICBhdHRyczogewogICAgICAgICAgdGV4dDogewogICAgICAgICAgICB0ZXh0OiAnR3JvdXAgTmFtZScKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGRhdGE6IHsKICAgICAgICAgIHBhcmVudDogdHJ1ZQogICAgICAgIH0KICAgICAgfSk7CiAgICAgIC8vIOi/mTTkuKrnjrDlnKjmsqHmnInms6jlhaXvvIzpnIDopoHnmoTml7blgJnvvIzlnKjnlKgKCiAgICAgIC8vIOezu+e7n+iuvuiuoeWbvgogICAgICAvLyBjb25zdCBpbWdzID0gWwogICAgICAvLyAgIHsKICAgICAgLy8gICAgIGltYWdlOiBnZXRJbWcoJ2xkYi5wbmcnKQogICAgICAvLyAgIH0sCiAgICAgIC8vICAgewogICAgICAvLyAgICAgaW1hZ2U6IGdldEltZygnd2Z0MS5wbmcnKQogICAgICAvLyAgIH0sCiAgICAgIC8vICAgewogICAgICAvLyAgICAgaW1hZ2U6IGdldEltZygnd2Z0Mi5wbmcnKQogICAgICAvLyAgIH0sCiAgICAgIC8vICAgewogICAgICAvLyAgICAgaW1hZ2U6IGdldEltZygnd2Z0My5wbmcnKQogICAgICAvLyAgIH0sCiAgICAgIC8vICAgewogICAgICAvLyAgICAgaW1hZ2U6IGdldEltZygnd2Z0NC5wbmcnKQogICAgICAvLyAgIH0sCiAgICAgIC8vICAgewogICAgICAvLyAgICAgaW1hZ2U6IGdldEltZygnd2Z0NS5wbmcnKQogICAgICAvLyAgIH0sCiAgICAgIC8vICAgewogICAgICAvLyAgICAgaW1hZ2U6IGdldEltZygnbHF0LnBuZycpCiAgICAgIC8vICAgfSwKICAgICAgLy8gICB7CiAgICAgIC8vICAgICBpbWFnZTogZ2V0SW1nKCdscWItby5wbmcnKQogICAgICAvLyAgIH0sCiAgICAgIC8vICAgewogICAgICAvLyAgICAgaW1hZ2U6IGdldEltZygnbGRiLW8ucG5nJykKICAgICAgLy8gICB9LAogICAgICAvLyAgIHsKICAgICAgLy8gICAgIGltYWdlOiBnZXRJbWcoJ2JoLnBuZycpCiAgICAgIC8vICAgfSwKICAgICAgLy8gICB7CiAgICAgIC8vICAgICBpbWFnZTogZ2V0SW1nKCdmMS5wbmcnKQogICAgICAvLyAgIH0sCiAgICAgIC8vICAgewogICAgICAvLyAgICAgaW1hZ2U6IGdldEltZygnZjIucG5nJykKICAgICAgLy8gICB9LAogICAgICAvLyAgIHsKICAgICAgLy8gICAgIGltYWdlOiBnZXRJbWcoJ2YzLnBuZycpCiAgICAgIC8vICAgfSwKICAgICAgLy8gXQogICAgICAvLyBjb25zdCBpbWdOb2RlcyA9IGltZ3MubWFwKGl0ZW0gPT4gewogICAgICAvLyAgIHJldHVybiBncmFwaC5jcmVhdGVOb2RlKHsKICAgICAgLy8gICAgIC8vIHNoYXBlOiAnZmxvdy1jaGFydC1pbWFnZS1yZWN0LWN1c3RvbScsCiAgICAgIC8vICAgICAvLyBhdHRyczogewogICAgICAvLyAgICAgLy8gICBpbWFnZTogewogICAgICAvLyAgICAgLy8gICAgICd4bGluazpocmVmJzogaXRlbS5pbWFnZSwKICAgICAgLy8gICAgIC8vICAgfQogICAgICAvLyAgICAgLy8gfQogICAgICAvLyAgICAgc2hhcGU6ICdpbWFnZScsIC8v5Y+v6YCJ5YC877yaUmVjdCBDaXJjbGUgRWxsaXBzZSBQb2x5Z29uIFBvbHlsaW5lIFBhdGggSW1hZ2UgSFRNTCBUZXh0QmxvY2sgQm9yZGVyZWRJbWFnZSBFbWJlZGRlZEltYWdlIEluc2NyaWJlZEltYWdlIEN5bGluZGVyCiAgICAgIC8vICAgICBpbWFnZVVybDogaXRlbS5pbWFnZSwKICAgICAgLy8gICAgIGF0dHJzOiB7CiAgICAgIC8vICAgICAgIGltYWdlOiB7CiAgICAgIC8vICAgICAgICAgLy8gZmlsbDogJ3llbGxvdycsCiAgICAgIC8vICAgICAgIH0sCiAgICAgIC8vICAgICB9LAogICAgICAvLyAgICAgd2lkdGg6IDUyLAogICAgICAvLyAgICAgaGVpZ2h0OiA1MiwKICAgICAgLy8gICAgIHBvcnRzOiB7IC4uLmN1c3RvbVBvcnRzIH0KICAgICAgLy8gICB9KQogICAgICAvLyB9KQogICAgICB0aGlzLnN0ZW5jaWwubG9hZChbcjEsIHIyLCByMywgcjQsIHI1XSwgJ2Jhc2ljJyk7CiAgICAgIC8vIOi/memHjOmcgOimgeazqOWFpeaWsOWinuiKgueCue+8jCsrKysrKysrKysrKysrKysrCgogICAgICAvLyB0aGlzLnN0ZW5jaWwubG9hZChpbWdOb2RlcywgJ2N1c3RvbS1pbWFnZScpCiAgICAgIC8vIHRoaXMuc3RlbmNpbC5sb2FkKFtjMSwgYzIsIGMzXSwgJ2NvbWJpbmF0aW9uJykKICAgICAgLy8gdGhpcy5zdGVuY2lsLmxvYWQoW2cxXSwgJ2dyb3VwJykKICAgIH0KCiAgICAvLyDmoLnmja5qc29u5riy5p+T6IqC54K55ZKM6L65CiAgfSwgewogICAga2V5OiAiaW5pdEdyYXBoU2hhcGUiLAogICAgdmFsdWU6IGZ1bmN0aW9uIGluaXRHcmFwaFNoYXBlKCkgewogICAgICB2YXIgZ2QgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IF9kYXRhLmRlZmF1bHQ7CiAgICAgIHRoaXMuZ3JhcGguZnJvbUpTT04oZ2QpOwogICAgfQoKICAgIC8vIOi/nuaOpeahqeaYvuekuuaXtuacugogIH0sIHsKICAgIGtleTogInNob3dQb3J0cyIsCiAgICB2YWx1ZTogZnVuY3Rpb24gc2hvd1BvcnRzKHBvcnRzLCBzaG93KSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBwb3J0cy5sZW5ndGg7IGkgPCBsZW47IGkgPSBpICsgMSkgewogICAgICAgIHBvcnRzW2ldLnN0eWxlLnZpc2liaWxpdHkgPSBzaG93ID8gJ3Zpc2libGUnIDogJ2hpZGRlbic7CiAgICAgIH0KICAgIH0KCiAgICAvLyDkuovku7bnm7jlhbMKICAgIC8vIOi/memHjOWwseaYr+iKgueCueeahOaJgOacieS6i+S7tu+8gQogICAgLy8g6YeM6Z2i5pyJ5rOo6YeK77yM5L2g5Y+v5Lul55yL55yL77yB6YKj5pW05Liq5oq95bGJ55qE6K+d5pivbm9kZTpjbGljaz/mmK/nmoQKICB9LCB7CiAgICBrZXk6ICJpbml0RXZlbnQiLAogICAgdmFsdWU6IGZ1bmN0aW9uIGluaXRFdmVudCgpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdmFyIGdyYXBoID0gdGhpcy5ncmFwaDsKICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKICAgICAgLy8g5Y+z6ZSu57yW6L6R5paH5pysCiAgICAgIGdyYXBoLm9uKCdub2RlOmNvbnRleHRtZW51JywgZnVuY3Rpb24gKF9yZWYzKSB7CiAgICAgICAgdmFyIGNlbGwgPSBfcmVmMy5jZWxsLAogICAgICAgICAgdmlldyA9IF9yZWYzLnZpZXc7CiAgICAgICAgLy8gY29uc29sZS5sb2codmlldy5jb250YWluZXIpCiAgICAgICAgdmFyIG9sZFRleHQgPSBjZWxsLmF0dHIoJ3RleHQvdGV4dCcpOwogICAgICAgIGNlbGwuYXR0cigndGV4dC9zdHlsZS9kaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICB2YXIgZWxlbSA9IHZpZXcuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy54Ni1lZGl0LXRleHQnKTsKICAgICAgICBpZiAoZWxlbSkgewogICAgICAgICAgZWxlbS5pbm5lclRleHQgPSBvbGRUZXh0OwogICAgICAgICAgZWxlbS5mb2N1cygpOwogICAgICAgIH0KICAgICAgICB2YXIgb25CbHVyID0gZnVuY3Rpb24gb25CbHVyKCkgewogICAgICAgICAgY2VsbC5hdHRyKCd0ZXh0L3RleHQnLCBlbGVtLmlubmVyVGV4dCk7CiAgICAgICAgICAvLyBjZWxsLmF0dHIoJ3RleHQvc3R5bGUvZGlzcGxheScsICdpbmxpbmUtYmxvY2snKQogICAgICAgIH07CgogICAgICAgIGlmIChlbGVtKSB7CiAgICAgICAgICBlbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIG9uQmx1cigpOwogICAgICAgICAgICBlbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCBvbkJsdXIpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgLy8g6byg5qCH56e75YWlIOaYvuekuui/nuaOpeahqQogICAgICBncmFwaC5vbignbm9kZTptb3VzZWVudGVyJywgX3guRnVuY3Rpb25FeHQuZGVib3VuY2UoZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBwb3J0cyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcueDYtcG9ydC1ib2R5Jyk7CiAgICAgICAgX3RoaXMuc2hvd1BvcnRzKHBvcnRzLCB0cnVlKTsKICAgICAgfSksIDUwMCk7CiAgICAgIC8vIOm8oOagh+enu+WHuiDpmpDol4/ov57mjqXmoakKICAgICAgZ3JhcGgub24oJ25vZGU6bW91c2VsZWF2ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgcG9ydHMgPSBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnLng2LXBvcnQtYm9keScpOwogICAgICAgIF90aGlzLnNob3dQb3J0cyhwb3J0cywgZmFsc2UpOwogICAgICB9KTsKICAgICAgZ3JhcGgub24oJ25vZGU6Y29sbGFwc2UnLCBmdW5jdGlvbiAoX3JlZjQpIHsKICAgICAgICB2YXIgbm9kZSA9IF9yZWY0Lm5vZGUsCiAgICAgICAgICBlID0gX3JlZjQuZTsKICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgIG5vZGUudG9nZ2xlQ29sbGFwc2UoKTsKICAgICAgICB2YXIgY29sbGFwc2VkID0gbm9kZS5pc0NvbGxhcHNlZCgpOwogICAgICAgIHZhciBjZWxscyA9IG5vZGUuZ2V0RGVzY2VuZGFudHMoKTsKICAgICAgICBjZWxscy5mb3JFYWNoKGZ1bmN0aW9uIChuKSB7CiAgICAgICAgICBpZiAoY29sbGFwc2VkKSB7CiAgICAgICAgICAgIG4uaGlkZSgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbi5zaG93KCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgICAvLyBiYWNrc3BhY2UKICAgICAgZ3JhcGguYmluZEtleSgnZGVsZXRlJywgZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBjZWxscyA9IGdyYXBoLmdldFNlbGVjdGVkQ2VsbHMoKTsKICAgICAgICBpZiAoY2VsbHMubGVuZ3RoKSB7CiAgICAgICAgICBncmFwaC5yZW1vdmVDZWxscyhjZWxscyk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgLy8g6byg5qCH5Yqo5oCB5re75YqgL+WIoOmZpOWwj+W3peWFt+OAggogICAgICBncmFwaC5vbignZWRnZTptb3VzZWVudGVyJywgZnVuY3Rpb24gKF9yZWY1KSB7CiAgICAgICAgdmFyIGNlbGwgPSBfcmVmNS5jZWxsOwogICAgICAgIC8qKg0KICAgICAgICAgKiBFZGdlVG9vbA0KICAgICAgICAgKiB2ZXJ0aWNlcyDot6/lvoTngrnlt6XlhbfvvIzlnKjot6/lvoTngrnkvY3nva7muLLmn5PkuIDkuKrlsI/lnIbngrnvvIzmi5bliqjlsI/lnIbngrnkv67mlLnot6/lvoTngrnkvY3nva7vvIzlj4zlh7vlsI/lnIbngrnliKDpmaTot6/lvoTngrnvvIzlnKjovrnkuIrljZXlh7vmt7vliqDot6/lvoTngrnjgIINCiAgICAgICAgICogc2VnbWVudHMg57q/5q615bel5YW344CC5Zyo6L6555qE5q+P5p2h57q/5q6155qE5Lit5b+D5riy5p+T5LiA5Liq5bel5YW35p2h77yM5Y+v5Lul5ouW5Yqo5bel5YW35p2h6LCD5pW057q/5q615Lik56uv55qE6Lev5b6E54K555qE5L2N572u44CCDQogICAgICAgICAqIGJvdW5kYXJ5IOagueaNrui+ueeahOWMheWbtOebkua4suafk+S4gOS4quWMheWbtOi+ueeahOefqeW9ouOAguazqOaEj++8jOivpeW3peWFt+S7heS7hea4suafk+S4gOS4quefqeW9ou+8jOS4jeW4puS7u+S9leS6pOS6kuOAgg0KICAgICAgICAgKiBidXR0b24g5Zyo5oyH5a6a5L2N572u5aSE5riy5p+T5LiA5Liq5oyJ6ZKu77yM5pSv5oyB6Ieq5a6a5LmJ5oyJ6ZKu55qE54K55Ye75Lqk5LqS44CCDQogICAgICAgICAqIGJ1dHRvbi1yZW1vdmUg5Zyo5oyH5a6a55qE5L2N572u5aSE77yM5riy5p+T5LiA5Liq5Yig6Zmk5oyJ6ZKu77yM54K55Ye75pe25Yig6Zmk5a+55bqU55qE6L6544CCDQogICAgICAgICAqIHNvdXJjZS1hcnJvd2hlYWQt5ZKMLXRhcmdldC1hcnJvd2hlYWQg5Zyo6L6555qE6LW354K55oiW57uI54K55riy5p+T5LiA5Liq5Zu+5b2iKOm7mOiupOaYr+eureWktCnvvIzmi5bliqjor6Xlm77lvaLmnaXkv67mlLnovrnnmoTotbfngrnmiJbnu4jngrnjgIINCiAgICAgICAgICogZWRnZS1lZGl0b3Ig5o+Q5L6b6L655LiK5paH5pys57yW6L6R5Yqf6IO944CCDQogICAgICAgICAqLwogICAgICAgIGNlbGwuYWRkVG9vbHMoW3sKICAgICAgICAgIG5hbWU6ICd2ZXJ0aWNlcycsCiAgICAgICAgICBhcmdzOiB7CiAgICAgICAgICAgIGF0dHJzOiB7CiAgICAgICAgICAgICAgZmlsbDogJyMwMDdhY2MnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIC8vIOenu+WKqOi3r+W+hOeCuei/h+eoi+S4reeahOWQuOmZhOWNiuW+hOOAguW9k+i3r+W+hOeCueS4jumCu+i/keeahOi3r+W+hOeCueeahOafkOS4quWdkOaghyAoeCwgeSkg6Led56a75Zyo5Y2K5b6E6IyD5Zu05YaF5pe277yM5bCG5b2T5YmN6Lev5b6E54K555qE5a+55bqU5Z2Q5qCHICh4LCB5KSDlkLjpmYTliLDpgrvlsYXot6/lvoTnmoTot6/lvoTngrnjgIIKICAgICAgICAgICAgc25hcFJhZGl1czogMjAsCiAgICAgICAgICAgIC8vIOWcqOi+ueS4iuaMieS4i+m8oOagh+aXtu+8jOaYr+WQpuWPr+S7pea3u+WKoOaWsOeahOi3r+W+hOeCueOAggogICAgICAgICAgICBhZGRhYmxlOiB0cnVlLAogICAgICAgICAgICAvLyDmmK/lkKblj6/ku6XpgJrov4flj4zlh7vnp7vpmaTot6/lvoTngrnjgIIKICAgICAgICAgICAgcmVtb3ZhYmxlOiB0cnVlLAogICAgICAgICAgICAvLyDmmK/lkKboh6rliqjnp7vpmaTlhpfkvZnnmoTot6/lvoTngrnjgIIKICAgICAgICAgICAgcmVtb3ZlUmVkdW5kYW5jaWVzOiB0cnVlLAogICAgICAgICAgICAvLyDmmK/lkKbpmLvmraLlt6XlhbfkuIrnmoTpvKDmoIfkuovku7blhpLms6HliLDovrnop4blm77kuIrjgILpmLvmraLlkI7pvKDmoIfkuI7lt6XlhbfkuqTkupLml7blsIbkuI3kvJrop6blj5HovrnnmoQgbW91c2Vkb3du44CBbW91c2Vtb3ZlIOWSjCBtb3VzZXVwIOS6i+S7tuOAggogICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246IGZhbHNlCiAgICAgICAgICB9CiAgICAgICAgfV0pOwogICAgICB9KTsKICAgICAgZ3JhcGgub24oJ2VkZ2U6bW91c2VsZWF2ZScsIGZ1bmN0aW9uIChfcmVmNikgewogICAgICAgIHZhciBjZWxsID0gX3JlZjYuY2VsbDsKICAgICAgICBjZWxsLnJlbW92ZVRvb2xzKCk7CiAgICAgIH0pOwogICAgICAvLyBncmFwaC5vbignbm9kZTpjbGljaycsICgpID0+IHsKICAgICAgLy8gICB0aGlzLiRyZWZzLmRyYXdlci5vcGVuKCk7CiAgICAgIC8vIH0pOwogICAgfQogIH1dKTsKICByZXR1cm4gRmxvd0dyYXBoOwp9KCk7CmV4cG9ydHMuZGVmYXVsdCA9IEZsb3dHcmFwaDsKKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoRmxvd0dyYXBoLCAiZ3JhcGgiLCBudWxsKTsKKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoRmxvd0dyYXBoLCAic3RlbmNpbCIsIG51bGwpOw=="},{"version":3,"names":["_x","require","_ports","_data","_interopRequireDefault","_transform","insertCss","FlowGraph","_classCallCheck2","default","_createClass2","key","value","init","dom","_connecting","width","arguments","length","undefined","height","flag","graph","Graph","background","color","container","autoResize","grid","size","visible","type","args","thickness","factor","scroller","enabled","pageVisible","pageBreak","pannable","mousewheel","modifiers","minScale","maxScale","interacting","nodeMovable","edgeMovable","edgeLabelMovable","arrowheadMovable","vertexMovable","vertexAddable","vertexDeletable","connecting","anchor","connectionPoint","allowBlank","highlight","snap","allowMulti","allowNode","_defineProperty2","createEdge","Shape","DoubleEdge","attrs","line","strokeWidth","stroke","strokeDasharray","style","animation","targetMarker","outline","router","name","offset","direction","validateConnection","_ref","sourceView","targetView","sourceMagnet","targetMagnet","highlighting","magnetAvailable","padding","panning","resizing","rotating","selecting","multiple","rubberband","movable","showNodeSelectionBox","snapline","history","clipboard","keyboard","embedding","findParent","_ref2","node","bbox","getBBox","getNodes","filter","data","getData","parent","targetBBox","isIntersectWithRect","hideGrid","initStencil","initShape","initGraphShape","initEvent","stencil","Addon","Stencil","target","stencilGraphWidth","search","rect","ellipse","polygon","collapsable","groups","title","graphHeight","layoutOptions","columns","marginX","stencilContainer","document","querySelector","appendChild","r1","createNode","shape","body","rx","ry","text","r2","r3","angle","transform","ports","top","position","dx","right","dy","bottom","left","r4","r5","refPoints","fill","refX","fo","refWidth","refHeight","foBody","xmlns","Dom","ns","xhtml","display","justifyContent","alignItems","contenteditable","class","textAlign","fontSize","in","visibility","circle","r","magnet","out","on","un","items","id","group","markup","tagName","selector","children","r6","c1","c2","c3","g1","load","gd","graphData","fromJSON","showPorts","show","i","len","_this","getElementById","_ref3","cell","view","oldText","attr","elem","innerText","focus","onBlur","addEventListener","removeEventListener","FunctionExt","debounce","querySelectorAll","_ref4","e","stopPropagation","toggleCollapse","collapsed","isCollapsed","cells","getDescendants","forEach","n","hide","bindKey","getSelectedCells","removeCells","_ref5","addTools","snapRadius","addable","removable","removeRedundancies","_ref6","removeTools","exports"],"sources":["E:/mec-cloud_IntelligentManufacturing_CRM/mec-cloud_IntelligentManufacturing_CRM/ruoyi-ui/src/views/system/processModeling/flow-x6/graph/index.js"],"sourcesContent":["import {Graph, Addon, FunctionExt, Shape,Dom} from '@antv/x6'\r\nimport './shape'\r\nimport { customPorts ,basicPorts} from './ports'\r\n// import { getImg } from '../../../utils'\r\nimport graphData from './data/data'\r\nimport { translate } from '@antv/x6/lib/util/dom/transform'\r\nconst insertCss = require('insert-css')\r\n\r\ninsertCss(`\r\n @keyframes ant-line {\r\n to {\r\n stroke-dashoffset: -1000\r\n }\r\n }\r\n`)\r\n\r\nexport default class FlowGraph {\r\n static graph = null\r\n static stencil = null\r\n\r\n /**\r\n * 初始化方法\r\n * @param {*} dom 画板容器\r\n * @param {*} width 容器宽度\r\n * @param {*} height 容器高度\r\n * @param {*} flag 默认为true,传入false只实例化画板\r\n * @returns \r\n */\r\n static init(dom, width = 800, height = 800, flag = true) {\r\n // 初始化 流程图画板\r\n this.graph = new Graph({\r\n background: {\r\n color: '#e5e5e5' // 设置画布背景颜色\r\n },\r\n container: dom,\r\n width: width,\r\n height: height,\r\n autoResize: true,\r\n grid: {\r\n size: 10,\r\n visible: true,\r\n type: 'doubleMesh',\r\n args: [\r\n {\r\n color: '#cccccc',\r\n thickness: 1,\r\n },\r\n {\r\n color: '#5F95FF',\r\n thickness: 1,\r\n factor: 4,\r\n },\r\n ],\r\n },\r\n scroller: {\r\n enabled: false,\r\n pageVisible: false,\r\n pageBreak: false,\r\n pannable: false,\r\n },\r\n // 开启画布缩放\r\n mousewheel: {\r\n enabled: true,\r\n modifiers: ['ctrl', 'meta'],\r\n minScale: 0.5,\r\n maxScale: 2,\r\n },\r\n interacting: {\r\n nodeMovable: true, //节点是否可以被移动。\r\n edgeMovable: false, //边是否可以被移动。\r\n edgeLabelMovable: false, //边的标签是否可以被移动。\r\n arrowheadMovable: false, //边的起始/终止箭头是否可以被移动\r\n vertexMovable: true, //边的路径点是否可以被移动。\r\n vertexAddable: true, //是否可以添加边的路径点。\r\n vertexDeletable: true, //边的路径点是否可以被删除。\r\n },\r\n connecting: {\r\n anchor: 'center',\r\n connectionPoint: 'anchor',\r\n allowBlank: true,\r\n highlight: true,\r\n snap: true, // 是否自动吸附\r\n allowMulti: true, // 是否允许在相同的起始节点和终止之间创建多条边\r\n allowNode: false, // 是否允许边链接到节点(非节点上的链接桩)\r\n allowBlank: false, // 是否允许连接到空白点\r\n allowLoop: false, // 是否允许创建循环连线,即边的起始节点和终止节点为同一节点,\r\n allowEdge: false, // 是否允许边链接到另一个边\r\n highlight: true, // 拖动边时,是否高亮显示所有可用的连接桩或节点\r\n connectionPoint: \"anchor\", // 指定连接点\r\n anchor: \"center\", // 指定被连接的节点的锚点\r\n createEdge() {\r\n // X6 的 Shape 命名空间中内置 Edge、DoubleEdge、ShadowEdge 三种边\r\n return new Shape.DoubleEdge({\r\n attrs: {\r\n // line: {\r\n // // stroke: '#5F95FF',\r\n // // strokeWidth: 4,\r\n // // targetMarker: {\r\n // // name: 'classic',\r\n // // size: 8,\r\n // // },\r\n // stroke: '#1890ff',\r\n // strokeDasharray: 5,\r\n // targetMarker: null,//block classic diamond cross async path circle circlePlus ellipse\r\n // style: {\r\n // animation: 'ant-line 30s infinite linear',\r\n // },\r\n // },\r\n line: {\r\n strokeWidth: 1,\r\n stroke: 'rgba(95,149,255)',\r\n strokeDasharray: 0,\r\n style: {\r\n animation: 'ant-line 0s infinite linear',\r\n },\r\n targetMarker: {\r\n \"name\": \"classic\",//这个是三角样式\r\n \"size\": 8 ,//三角形的大小 \r\n 'stroke': 'rgba(95,149,255)', \r\n }, // 去掉箭头\r\n \r\n },\r\n outline: {\r\n stroke: 'rgba(95,149,255)',\r\n strokeWidth: 1,\r\n }\r\n },\r\n router: {\r\n name: 'metro',\r\n args: {\r\n offset: 32,\r\n direction: 'H'\r\n }\r\n }\r\n })\r\n },\r\n validateConnection({\r\n sourceView,\r\n targetView,\r\n sourceMagnet,\r\n targetMagnet,\r\n }) {\r\n if (sourceView === targetView) {\r\n return false\r\n }\r\n if (!sourceMagnet) {\r\n return false\r\n }\r\n if (!targetMagnet) {\r\n return false\r\n }\r\n return true\r\n },\r\n },\r\n highlighting: {\r\n magnetAvailable: {\r\n name: 'stroke',\r\n args: {\r\n padding: 4,\r\n attrs: {\r\n strokeWidth: 1,\r\n stroke: 'rgba(223,234,255)',\r\n },\r\n },\r\n },\r\n },\r\n // 开启拖拽平移(防止冲突,按下修饰键并点击鼠标才能触发画布拖拽)\r\n panning: {\r\n enabled: true,\r\n modifiers: 'shift',\r\n },\r\n resizing: true,\r\n rotating: true,\r\n selecting: {\r\n enabled: true,\r\n multiple: true,\r\n rubberband: true,\r\n movable: true,\r\n showNodeSelectionBox: true,\r\n },\r\n snapline: true,\r\n history: true,\r\n clipboard: {\r\n enabled: true,\r\n },\r\n keyboard: {\r\n enabled: true,\r\n },\r\n embedding: {\r\n enabled: true,\r\n findParent({ node }) {\r\n const bbox = node.getBBox()\r\n return this.getNodes().filter((node) => {\r\n // 只有 data.parent 为 true 的节点才是父节点\r\n const data = node.getData()\r\n if (data && data.parent) {\r\n const targetBBox = node.getBBox()\r\n return bbox.isIntersectWithRect(targetBBox)\r\n }\r\n return false\r\n })\r\n },\r\n },\r\n })\r\n if(!flag) {\r\n // this.graph.centerContent()\r\n this.graph.hideGrid() // 返显渲染的时候 隐藏网格\r\n return this.graph\r\n }\r\n this.initStencil()\r\n this.initShape()\r\n this.initGraphShape()\r\n this.initEvent()\r\n return this.graph\r\n }\r\n // 初始化根节点\r\n static initStencil() {\r\n this.stencil = new Addon.Stencil({\r\n target: this.graph,\r\n stencilGraphWidth: 280,\r\n search: { rect: true ,ellipse:true,polygon:true,},\r\n collapsable: true,\r\n groups: [\r\n {\r\n name: 'basic',\r\n title: '基础节点',\r\n graphHeight: 280,\r\n layoutOptions: {\r\n columns: 1,\r\n marginX: 8,\r\n },\r\n },\r\n // { \r\n // name: 'custom-image',\r\n // title: '系统设计图',\r\n // graphHeight: 600\r\n // },\r\n // {\r\n // name: 'combination',\r\n // title: '组合节点',\r\n // layoutOptions: {\r\n // columns: 1,\r\n // marginX: 60,\r\n // },\r\n // graphHeight: 260,\r\n // },\r\n // {\r\n // name: 'group',\r\n // title: '节点组',\r\n // graphHeight: 100,\r\n // layoutOptions: {\r\n // columns: 1,\r\n // marginX: 60,\r\n // },\r\n // },\r\n ],\r\n })\r\n const stencilContainer = document.querySelector('#stencil')\r\n stencilContainer?.appendChild(this.stencil.container)\r\n }\r\n // 初始化具体每个根节点下不同类型节点\r\n static initShape() {\r\n const { graph } = this\r\n // 基础节点\r\n const r1 = graph.createNode({\r\n \r\n shape: 'flow-chart-rect',\r\n width:60,\r\n height:40,\r\n attrs: {\r\n body: {\r\n rx: 24,\r\n ry: 24,\r\n stroke: '#07448a',\r\n \r\n },\r\n text: {\r\n text: '开始',\r\n \r\n },\r\n \r\n },\r\n })\r\n const r2 = graph.createNode({\r\n shape: 'flow-chart-rect',\r\n width:58,\r\n height:38,\r\n attrs: {\r\n text: {\r\n text: '流程',\r\n // refX: -100,\r\n // refY: 40,\r\n },\r\n body: {\r\n stroke: '#07448a', // 边框颜色\r\n // x: -140,\r\n // y: 40,\r\n },\r\n },\r\n })\r\n const r3 = graph.createNode({\r\n shape: 'flow-chart-rect',\r\n width: 52,\r\n height: 52,\r\n angle: 45,\r\n attrs: {\r\n body: {\r\n stroke: '#07448a', // 边框颜色\r\n },\r\n \r\n 'edit-text': {\r\n style: {\r\n transform: 'rotate(-45deg)',\r\n },\r\n },\r\n text: {\r\n text: '判断',\r\n transform: 'rotate(-45deg)',\r\n },\r\n },\r\n ports: {\r\n groups: {\r\n top: {\r\n position: {\r\n name: 'top',\r\n args: {\r\n dx: -26,\r\n },\r\n },\r\n },\r\n right: {\r\n position: {\r\n name: 'right',\r\n args: {\r\n dy: -26,\r\n },\r\n },\r\n },\r\n bottom: {\r\n position: {\r\n name: 'bottom',\r\n args: {\r\n dx: 26,\r\n },\r\n },\r\n },\r\n left: {\r\n position: {\r\n name: 'left',\r\n args: {\r\n dy: 26,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n })\r\n const r4 = graph.createNode({\r\n shape: 'flow-chart-rect',\r\n width: 56,\r\n height:56,\r\n attrs: {\r\n body: {\r\n rx: 35,\r\n ry: 35,\r\n stroke: '#07448a',\r\n },\r\n text: {\r\n text: '联系',\r\n },\r\n },\r\n })\r\n const r5 = graph.createNode({\r\n shape: 'polygon',\r\n width:57,\r\n height:47,\r\n\r\n attrs: {\r\n // style: {\r\n // visibility: 'hidden',\r\n // },\r\n body: {\r\n refPoints: '10,0 40,0 30,20 0,20',\r\n stroke: '#07448a', // 边框颜色\r\n strokeWidth: 1,\r\n width:50,\r\n height:40,\r\n fill: '#fff', // 填充颜色\r\n transform:'skewX(-30deg)',\r\n refX: 15,\r\n \r\n },\r\n fo: {\r\n refWidth: '100%',\r\n refHeight: '100%',\r\n stroke: '#07448a', // 边框颜色\r\n strokeWidth: 1,\r\n },\r\n foBody: {\r\n xmlns: Dom.ns.xhtml,\r\n style: {\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n stroke: '#07448a', // 边框颜色\r\n strokeWidth: 1,\r\n },\r\n },\r\n text: {\r\n text: '数据',\r\n },\r\n 'edit-text': {\r\n contenteditable: 'true',\r\n class: 'x6-edit-text',\r\n style: {\r\n width: '100%',\r\n textAlign: 'center',\r\n fontSize: 12,\r\n color: 'rgba(0,0,0,0.85)',\r\n },\r\n },\r\n },\r\n ports: {\r\n groups: {\r\n // 输入链接桩群组定义\r\n in: {\r\n position: 'top',\r\n attrs: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n circle: {\r\n r: 4,\r\n magnet: true,\r\n stroke: '#5F95FF',\r\n strokeWidth: 1,\r\n fill: '#fff',\r\n },\r\n },\r\n },\r\n // 输出链接桩群组定义\r\n out: {\r\n position: 'bottom',\r\n attrs: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n circle: {\r\n r: 4,\r\n magnet: true,\r\n stroke: '#5F95FF',\r\n strokeWidth: 1,\r\n fill: '#fff',\r\n },\r\n },\r\n },\r\n on: {\r\n position: 'left',\r\n attrs: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n circle: {\r\n r:4,\r\n magnet: true,\r\n stroke: '#5F95FF',\r\n strokeWidth: 1,\r\n fill: '#fff',\r\n },\r\n },\r\n },\r\n un: {\r\n position: 'right',\r\n attrs: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n circle: {\r\n r: 4,\r\n magnet: true,\r\n stroke: '#5F95FF',\r\n strokeWidth: 1,\r\n fill: '#fff',\r\n },\r\n },\r\n },\r\n },\r\n items: [\r\n {\r\n id: 'port1',\r\n group: 'in',\r\n attrs: {\r\n circle: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n {\r\n id: 'port2',\r\n group: 'un',\r\n attrs: {\r\n circle: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n {\r\n id: 'port3',\r\n group: 'on',\r\n attrs: {\r\n circle: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n {\r\n id: 'port4',\r\n group: 'out',\r\n attrs: {\r\n circle: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n markup: [\r\n {\r\n tagName: 'rect',\r\n selector: 'body',\r\n },\r\n {\r\n tagName: 'text',\r\n selector: 'text',\r\n },\r\n {\r\n tagName: 'foreignObject',\r\n selector: 'fo',\r\n children: [\r\n {\r\n ns: Dom.ns.xhtml,\r\n tagName: 'body',\r\n selector: 'foBody',\r\n children: [\r\n {\r\n tagName: 'div',\r\n selector: 'edit-text',\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n })\r\n const r6 = graph.createNode({\r\n shape: 'ellipse',\r\n width: 70,\r\n height: 40,\r\n attrs: {\r\n // style: {\r\n // visibility: 'hidden',\r\n // },\r\n body: {\r\n rx: 10, // 圆角矩形\r\n ry: 10,\r\n strokeWidth: 1,\r\n stroke: '#07448a',\r\n },\r\n text: {\r\n text: '可选',\r\n },\r\n fo: {\r\n refWidth: '100%',\r\n refHeight: '100%',\r\n stroke: '#07448a', // 边框颜色\r\n strokeWidth: 1,\r\n },\r\n foBody: {\r\n xmlns: Dom.ns.xhtml,\r\n style: {\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n stroke: '#07448a', // 边框颜色\r\n strokeWidth: 1,\r\n },\r\n },\r\n 'edit-text': {\r\n contenteditable: 'true',\r\n class: 'x6-edit-text',\r\n style: {\r\n width: '100%',\r\n textAlign: 'center',\r\n fontSize: 12,\r\n color: 'rgba(0,0,0,0.85)',\r\n },\r\n },\r\n },\r\n ports: {\r\n groups: {\r\n // 输入链接桩群组定义\r\n in: {\r\n position: 'top',\r\n\r\n attrs: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n circle: {\r\n r: 4,\r\n magnet: true,\r\n stroke: '#5F95FF',\r\n strokeWidth: 1,\r\n fill: '#fff',\r\n },\r\n },\r\n },\r\n // 输出链接桩群组定义\r\n out: {\r\n position: 'bottom',\r\n attrs: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n circle: {\r\n r: 4,\r\n magnet: true,\r\n stroke: '#5F95FF',\r\n strokeWidth: 1,\r\n fill: '#fff',\r\n },\r\n },\r\n \r\n },\r\n on: {\r\n position: 'left',\r\n attrs: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n circle: {\r\n r:4,\r\n magnet: true,\r\n stroke: '#5F95FF',\r\n strokeWidth: 1,\r\n fill: '#fff',\r\n },\r\n },\r\n },\r\n un: {\r\n position: 'right', \r\n attrs: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n circle: {\r\n r: 4,\r\n magnet: true,\r\n stroke: '#5F95FF',\r\n strokeWidth: 1,\r\n fill: '#fff',\r\n },\r\n },\r\n },\r\n },\r\n items: [\r\n {\r\n id: 'port1',\r\n group: 'in',\r\n attrs: {\r\n circle: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n {\r\n id: 'port2',\r\n group: 'un',\r\n attrs: {\r\n circle: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n {\r\n id: 'port3',\r\n group: 'on',\r\n attrs: {\r\n circle: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n {\r\n id: 'port4',\r\n group: 'out',\r\n attrs: {\r\n circle: {\r\n style: {\r\n visibility: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n markup: [\r\n {\r\n tagName: 'rect',\r\n selector: 'body',\r\n },\r\n {\r\n tagName: 'text',\r\n selector: 'text',\r\n },\r\n {\r\n tagName: 'foreignObject',\r\n selector: 'fo',\r\n children: [\r\n {\r\n ns: Dom.ns.xhtml,\r\n tagName: 'body',\r\n selector: 'foBody',\r\n children: [\r\n {\r\n tagName: 'div',\r\n selector: 'edit-text',\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n })\r\n// 这里创新新的节点+++++++++++++\r\n\r\n\r\n\r\n // 组合节点\r\n const c1 = graph.createNode({\r\n shape: 'flow-chart-image-rect',\r\n })\r\n const c2 = graph.createNode({\r\n shape: 'flow-chart-title-rect',\r\n })\r\n const c3 = graph.createNode({\r\n shape: 'flow-chart-animate-text',\r\n })\r\n // 节点组\r\n const g1 = graph.createNode({\r\n shape: 'groupNode',\r\n attrs: {\r\n text: {\r\n text: 'Group Name',\r\n },\r\n },\r\n data: {\r\n parent: true,\r\n },\r\n })\r\n // 这4个现在没有注入,需要的时候,在用\r\n\r\n // 系统设计图\r\n // const imgs = [\r\n // {\r\n // image: getImg('ldb.png')\r\n // },\r\n // {\r\n // image: getImg('wft1.png')\r\n // },\r\n // {\r\n // image: getImg('wft2.png')\r\n // },\r\n // {\r\n // image: getImg('wft3.png')\r\n // },\r\n // {\r\n // image: getImg('wft4.png')\r\n // },\r\n // {\r\n // image: getImg('wft5.png')\r\n // },\r\n // {\r\n // image: getImg('lqt.png')\r\n // },\r\n // {\r\n // image: getImg('lqb-o.png')\r\n // },\r\n // {\r\n // image: getImg('ldb-o.png')\r\n // },\r\n // {\r\n // image: getImg('bh.png')\r\n // },\r\n // {\r\n // image: getImg('f1.png')\r\n // },\r\n // {\r\n // image: getImg('f2.png')\r\n // },\r\n // {\r\n // image: getImg('f3.png')\r\n // },\r\n // ]\r\n // const imgNodes = imgs.map(item => {\r\n // return graph.createNode({\r\n // // shape: 'flow-chart-image-rect-custom',\r\n // // attrs: {\r\n // // image: {\r\n // // 'xlink:href': item.image,\r\n // // }\r\n // // }\r\n // shape: 'image', //可选值:Rect Circle Ellipse Polygon Polyline Path Image HTML TextBlock BorderedImage EmbeddedImage InscribedImage Cylinder\r\n // imageUrl: item.image,\r\n // attrs: {\r\n // image: {\r\n // // fill: 'yellow',\r\n // },\r\n // },\r\n // width: 52,\r\n // height: 52,\r\n // ports: { ...customPorts }\r\n // })\r\n // })\r\n this.stencil.load([r1, r2, r3, r4,r5,], 'basic')\r\n // 这里需要注入新增节点,+++++++++++++++++\r\n\r\n\r\n\r\n // this.stencil.load(imgNodes, 'custom-image')\r\n // this.stencil.load([c1, c2, c3], 'combination')\r\n // this.stencil.load([g1], 'group')\r\n }\r\n\r\n // 根据json渲染节点和边\r\n static initGraphShape(gd = graphData) {\r\n this.graph.fromJSON(gd)\r\n }\r\n\r\n // 连接桩显示时机\r\n static showPorts(ports, show) {\r\n for (let i = 0, len = ports.length; i < len; i = i + 1) {\r\n ports[i].style.visibility = show ? 'visible' : 'hidden'\r\n }\r\n }\r\n\r\n \r\n // 事件相关\r\n // 这里就是节点的所有事件!\r\n // 里面有注释,你可以看看!那整个抽屉的话是node:click?是的\r\n static initEvent() {\r\n const { graph } = this\r\n const container = document.getElementById('container')\r\n // 右键编辑文本\r\n graph.on('node:contextmenu', ({ cell, view }) => {\r\n // console.log(view.container)\r\n const oldText = cell.attr('text/text')\r\n cell.attr('text/style/display', 'none')\r\n const elem = view.container.querySelector('.x6-edit-text')\r\n if (elem) {\r\n elem.innerText = oldText\r\n elem.focus()\r\n }\r\n const onBlur = () => {\r\n cell.attr('text/text', elem.innerText)\r\n // cell.attr('text/style/display', 'inline-block')\r\n }\r\n if(elem){\r\n elem.addEventListener('blur', () => {\r\n onBlur()\r\n elem.removeEventListener('blur', onBlur)\r\n })\r\n }\r\n })\r\n // 鼠标移入 显示连接桩\r\n graph.on('node:mouseenter', FunctionExt.debounce(() => {\r\n const ports = container.querySelectorAll('.x6-port-body')\r\n this.showPorts(ports, true)\r\n }), 500,)\r\n // 鼠标移出 隐藏连接桩\r\n graph.on('node:mouseleave', () => {\r\n const ports = container.querySelectorAll('.x6-port-body')\r\n this.showPorts(ports, false)\r\n })\r\n\r\n graph.on('node:collapse', ({ node, e }) => {\r\n e.stopPropagation()\r\n node.toggleCollapse()\r\n const collapsed = node.isCollapsed()\r\n const cells = node.getDescendants()\r\n cells.forEach(n => {\r\n if (collapsed) {\r\n n.hide()\r\n } else {\r\n n.show()\r\n }\r\n })\r\n })\r\n // backspace\r\n graph.bindKey('delete', () => {\r\n const cells = graph.getSelectedCells()\r\n if (cells.length) {\r\n graph.removeCells(cells)\r\n }\r\n })\r\n // 鼠标动态添加/删除小工具。\r\n graph.on('edge:mouseenter', ({ cell }) => {\r\n /**\r\n * EdgeTool\r\n * vertices 路径点工具,在路径点位置渲染一个小圆点,拖动小圆点修改路径点位置,双击小圆点删除路径点,在边上单击添加路径点。\r\n * segments 线段工具。在边的每条线段的中心渲染一个工具条,可以拖动工具条调整线段两端的路径点的位置。\r\n * boundary 根据边的包围盒渲染一个包围边的矩形。注意,该工具仅仅渲染一个矩形,不带任何交互。\r\n * button 在指定位置处渲染一个按钮,支持自定义按钮的点击交互。\r\n * button-remove 在指定的位置处,渲染一个删除按钮,点击时删除对应的边。\r\n * source-arrowhead-和-target-arrowhead 在边的起点或终点渲染一个图形(默认是箭头),拖动该图形来修改边的起点或终点。\r\n * edge-editor 提供边上文本编辑功能。\r\n */\r\n cell.addTools([\r\n {\r\n name: 'vertices',\r\n args: {\r\n attrs: { fill: '#007acc' },\r\n // 移动路径点过程中的吸附半径。当路径点与邻近的路径点的某个坐标 (x, y) 距离在半径范围内时,将当前路径点的对应坐标 (x, y) 吸附到邻居路径的路径点。\r\n snapRadius: 20,\r\n // 在边上按下鼠标时,是否可以添加新的路径点。\r\n addable: true,\r\n // 是否可以通过双击移除路径点。\r\n removable: true,\r\n // 是否自动移除冗余的路径点。\r\n removeRedundancies: true,\r\n // 是否阻止工具上的鼠标事件冒泡到边视图上。阻止后鼠标与工具交互时将不会触发边的 mousedown、mousemove 和 mouseup 事件。\r\n stopPropagation: false,\r\n }\r\n }\r\n ])\r\n })\r\n graph.on('edge:mouseleave', ({ cell }) => {\r\n cell.removeTools()\r\n })\r\n // graph.on('node:click', () => {\r\n // this.$refs.drawer.open();\r\n // });\r\n }\r\n}\r\n"],"mappings":"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"}]}