{"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\\components\\mindMap\\targetRelationMap.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\components\\mindMap\\targetRelationMap.vue","mtime":1739300167374},{"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},{"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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudmFsdWVzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgZG9tdG9pbWFnZSBmcm9tICdkb20tdG8taW1hZ2UnOwppbXBvcnQgdXRpbHMgZnJvbSAnQC91dGlscy5qcyc7CmltcG9ydCAnanNtaW5kL3N0eWxlL2pzbWluZC5jc3MnOwppbXBvcnQgJ2pzbWluZC9lczYvanNtaW5kLmRyYWdnYWJsZS1ub2RlLmpzJzsKaW1wb3J0ICdqc21pbmQvZXM2L2pzbWluZC5zY3JlZW5zaG90LmpzJzsKaW1wb3J0IGpzTWluZCBmcm9tICdqc21pbmQnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ21pbmRNYXAnLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICAvLyDphY3nva7kv6Hmga8KICAgICAgc2hvd1NpZGVFZGl0b3I6IGZhbHNlLAogICAgICBhZGRUYXJnZXQ6IHsKICAgICAgICB0b3BpYzogJycsCiAgICAgICAgY29kZTogJycsCiAgICAgICAgdHlwZTogMSwKICAgICAgICBkZXNjOiAnJywKICAgICAgICBzb3VyY2U6IDEKICAgICAgfSwKICAgICAgZGVmYXVsdFByb3BzOiB7CiAgICAgICAgdmFsdWU6ICdpZCcsCiAgICAgICAgbGFiZWw6ICduYW1lJwogICAgICB9LAogICAgICB2ZXJzaW9uRGF0YTogW3sKICAgICAgICB2ZXJzaW9uTnVtOiAnMS4yJywKICAgICAgICB0aW1lOiAnMjAyNS0wMS0xMCAxMDo1NToyMicKICAgICAgfSwgewogICAgICAgIHZlcnNpb25OdW06ICcxLjEnLAogICAgICAgIHRpbWU6ICcyMDI1LTAxLTExIDExOjU1OjIyJwogICAgICB9LCB7CiAgICAgICAgdmVyc2lvbk51bTogJzEuMCcsCiAgICAgICAgdGltZTogJzIwMjUtMDEtMTAgMTA6NTU6MjInCiAgICAgIH1dLAogICAgICBtYXBUeXBlOiAnU2luZ2xlVG9NdWx0aScsCiAgICAgIC8vTXVsdGlUb1NpbmdsZSAgU2luZ2xlVG9NdWx0aQogICAgICAvLyDohJHlm77kv6Hmga8KICAgICAgLy8g6ISR5Zu+5pWw5o2uCiAgICAgIGptOiBudWxsLAogICAgICBlZGl0b3I6IG51bGwsCiAgICAgIG1pbmREYXRhOiB7CiAgICAgICAgbWV0YTogewogICAgICAgICAgbmFtZTogJ+aMh+agh+WFs+iBlOaAnee7tOWvvOWbvicsCiAgICAgICAgICBhdXRob3I6ICdhcnRmZXNzJywKICAgICAgICAgIHZlcnNpb246ICcwLjAuMScKICAgICAgICB9LAogICAgICAgIGZvcm1hdDogJ25vZGVfdHJlZScsCiAgICAgICAgZGF0YTogewogICAgICAgICAgaWQ6ICdyb290JywKICAgICAgICAgIHRvcGljOiAn5oyH5qCH77ya5L2g54us56uL5ZCXPycsCiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjNDA5ZWZmJywKICAgICAgICAgIGxldmVsOiAwLAogICAgICAgICAgY2hpbGRyZW46IFt7CiAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksCiAgICAgICAgICAgIC8vIFvlv4XpgIldIElELCDmiYDmnInoioLngrnnmoRJROS4jeW6lOaciemHjeWkje+8jOWQpuWImUlE6YeN5aSN55qE57uT6IqC5bCG6KKr5b+955WlCiAgICAgICAgICAgIHRvcGljOiAn5Lu75YqhOlBEUOeul+azleaooeWeiycsCiAgICAgICAgICAgIC8vIFvlv4XpgIldIOiKgueCueS4iuaYvuekuueahOWGheWuuQogICAgICAgICAgICBkaXJlY3Rpb246ICdyaWdodCcsCiAgICAgICAgICAgIC8vIFvlj6/pgIldIOiKgueCueeahOaWueWQke+8jOatpOaVsOaNruS7heWcqOesrOS4gOWxguiKgueCueS4iuacieaViO+8jOebruWJjeS7heaUr+aMgSBsZWZ0IOWSjCByaWdodCDkuKTnp43vvIzpu5jorqTkuLogcmlnaHQKICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsCiAgICAgICAgICAgIC8vIFvlj6/pgIldIOivpeiKgueCueaYr+WQpuaYr+WxleW8gOeKtuaAge+8jOm7mOiupOS4uiB0cnVlCiAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyM2N2MyM2EnLAogICAgICAgICAgICBsZXZlbDogMSwKICAgICAgICAgICAgY2hpbGRyZW46IFt7CiAgICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICAgICAgICB0b3BpYzogJ+aMh+agh++8mueMq+WktOm5sOWeiycsCiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2U2YTIzYycsCiAgICAgICAgICAgICAgbGV2ZWw6IDIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksCiAgICAgICAgICAgICAgdG9waWM6ICfmjIfmoIfvvJrkvaDlpJblkJHlkJfvvJ8nLAogICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNlNmEyM2MnLAogICAgICAgICAgICAgIGxldmVsOiAyCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICAgIHRvcGljOiAn5oyH5qCH77ya5L2g54ix6K+06K+d5ZCX77yfJywKICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZTZhMjNjJywKICAgICAgICAgICAgICBsZXZlbDogMiwKICAgICAgICAgICAgICBtZW1vOiAn6L+Z5piv5YWz57O75o+P6L+wJywKICAgICAgICAgICAgICAvLyDlhbPns7vmj4/ov7AKICAgICAgICAgICAgICBmb3JtdWxhOiAn6L+Z5piv6K6h566X5YWs5byPJyAvLyDorqHnrpflhazlvI/or7TmmI4KICAgICAgICAgICAgfV0KICAgICAgICAgIH0sIHsKICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICAgICAgdG9waWM6ICfku7vliqE6OeWei+S6uuagvOeul+azlScsCiAgICAgICAgICAgIGRpcmVjdGlvbjogJ3JpZ2h0JywKICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsCiAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyM2N2MyM2EnLAogICAgICAgICAgICBsZXZlbDogMSwKICAgICAgICAgICAgY2hpbGRyZW46IFt7CiAgICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZTZhMjNjJywKICAgICAgICAgICAgICB0b3BpYzogJ+eMq+WktOm5sOWeiycsCiAgICAgICAgICAgICAgbGV2ZWw6IDIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksCiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2U2YTIzYycsCiAgICAgICAgICAgICAgdG9waWM6ICfogIHomY7lnosnLAogICAgICAgICAgICAgIGxldmVsOiAyCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNlNmEyM2MnLAogICAgICAgICAgICAgIG1lbW86ICfov5nmmK/lhbPns7vmj4/ov7AnLAogICAgICAgICAgICAgIC8vIOWFs+ezu+aPj+i/sAogICAgICAgICAgICAgIGZvcm11bGE6ICfov5nmmK/orqHnrpflhazlvI8nLAogICAgICAgICAgICAgIC8vIOiuoeeul+WFrOW8j+ivtOaYjgogICAgICAgICAgICAgIHRvcGljOiAn5Y+Y6Imy6b6Z5Z6LJywKICAgICAgICAgICAgICBsZXZlbDogMgogICAgICAgICAgICB9XQogICAgICAgICAgfSwgewogICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICB0b3BpYzogJ+S7u+WKoToxNuWei+S6uuagvOeul+azlScsCiAgICAgICAgICAgIC8vIOagh+mimAogICAgICAgICAgICBkaXJlY3Rpb246ICdyaWdodCcsCiAgICAgICAgICAgIC8vIOaWueWQkSAgIHJpZ2h0ICBsZWZ0CiAgICAgICAgICAgICdmb250LXdlaWdodCc6ICdub3JtYWwnLAogICAgICAgICAgICAvLyDlrZfkvZPnspfnu4YgYm9sZCAgbm9ybWFsCiAgICAgICAgICAgICdmb250LXN0eWxlJzogJ25vcm1hbCcsCiAgICAgICAgICAgIC8vIOWtl+S9k+agt+W8jyBpdGFsaWMgIG5vcm1hbAogICAgICAgICAgICAnZm9udC1zaXplJzogMTgsCiAgICAgICAgICAgIC8vIOWtl+S9k+Wkp+WwjwogICAgICAgICAgICAnZm9yZWdyb3VuZC1jb2xvcic6ICcjZmZmJywKICAgICAgICAgICAgLy8g5paH5a2X6aKc6ImyCiAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyM2N2MyM2EnLAogICAgICAgICAgICAvLyDog4zmma/popzoibIKICAgICAgICAgICAgbGV2ZWw6IDEsCiAgICAgICAgICAgIC8vIOWxgue6pwogICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAvLyDlrZDoioLngrkKICAgICAgICAgICAgewogICAgICAgICAgICAgIGlkOiB1dGlscy51dWlkKCksCiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2U2YTIzYycsCiAgICAgICAgICAgICAgdG9waWM6ICfogIHomY7lnosnLAogICAgICAgICAgICAgIGxldmVsOiAyCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICBpZDogdXRpbHMudXVpZCgpLAogICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNlNmEyM2MnLAogICAgICAgICAgICAgIHRvcGljOiAn5a2U6ZuA5Z6LJywKICAgICAgICAgICAgICBsZXZlbDogMgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgaWQ6IHV0aWxzLnV1aWQoKSwKICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZTZhMjNjJywKICAgICAgICAgICAgICB0b3BpYzogJ+iAg+aLieWeiycsCiAgICAgICAgICAgICAgbGV2ZWw6IDIKICAgICAgICAgICAgfV0KICAgICAgICAgIH1dCiAgICAgICAgfQogICAgICB9LAogICAgICAvLyDohJHlm77phY3nva4KICAgICAgb3B0aW9uczogewogICAgICAgIGNvbnRhaW5lcjogJ2pzbWluZF9jb250YWluZXInLAogICAgICAgIC8vIFvlv4XpgIldIOWuueWZqOeahElECiAgICAgICAgZWRpdGFibGU6IHRydWUsCiAgICAgICAgLy8gW+WPr+mAiV0g5piv5ZCm5ZCv55So57yW6L6RCiAgICAgICAgdGhlbWU6ICdwcmltYXJ5JywKICAgICAgICAvLyBb5Y+v6YCJXSDkuLvpopgKICAgICAgICBzdXBwb3J0X2h0bWw6IHRydWUsCiAgICAgICAgbG9nX2xldmVsOiAnZGVidWcnLAogICAgICAgIC8vIOiuvue9ruaXpeW/l+e6p+WIq+S4uiBkZWJ1ZwogICAgICAgIHZpZXc6IHsKICAgICAgICAgIGVuZ2luZTogJ2NhbnZhcycsCiAgICAgICAgICAvLyDmgJ3nu7Tlr7zlm77lkIToioLngrnkuYvpl7Tnur/mnaHnmoTnu5jliLblvJXmk44KICAgICAgICAgIGVuYWJsZV9kZXZpY2VfcGl4ZWxfcmF0aW86IHRydWUsCiAgICAgICAgICAvLyDmjInorr7lpIflg4/ntKDmr5Tkvovnu5jliLbpq5jmuIXmgJ3nu7Tlr7zlm74KICAgICAgICAgIGhtYXJnaW46IDEwMCwKICAgICAgICAgIC8vIOaAnee7tOWvvOWbvui3neWuueWZqOWkluahhueahOacgOWwj+awtOW5s+i3neemuwogICAgICAgICAgdm1hcmdpbjogNTAsCiAgICAgICAgICAvLyDmgJ3nu7Tlr7zlm77ot53lrrnlmajlpJbmoYbnmoTmnIDlsI/lnoLnm7Tot53nprsKICAgICAgICAgIGxpbmVfd2lkdGg6IDIsCiAgICAgICAgICAvLyDmgJ3nu7Tlr7zlm77nur/mnaHnmoTnspfnu4YKICAgICAgICAgIGxpbmVfY29sb3I6ICcjNjY2JywKICAgICAgICAgIC8vIOaAnee7tOWvvOWbvue6v+adoeeahOminOiJsgogICAgICAgICAgZHJhZ2dhYmxlOiB0cnVlLAogICAgICAgICAgLy8g5piv5ZCm5YWB6K645ouW5Yqo55S75biDCiAgICAgICAgICBoaWRlX3Njcm9sbGJhcnNfd2hlbl9kcmFnZ2FibGU6IHRydWUsCiAgICAgICAgICBub2RlX292ZXJmbG93OiAnaGlkZGVuJywKICAgICAgICAgIHpvb206IHsKICAgICAgICAgICAgLy8g57yp5pS+6YWN572uCiAgICAgICAgICAgIG1pbjogMC4xLAogICAgICAgICAgICAvLyDmnIDlsI/nvKnmlL7mr5TkvosKICAgICAgICAgICAgbWF4OiAyLjEsCiAgICAgICAgICAgIC8vIOacgOWkp+e8qeaUvuavlOS+iwogICAgICAgICAgICBzdGVwOiAwLjEgLy8g57yp5pS+5q+U5L6L5q2l6ZW/CiAgICAgICAgICB9LAogICAgICAgICAgZXhwYW5kZXJfc3R5bGU6ICdudW1iZXInLAogICAgICAgICAgbGluZV9zdHlsZTogJ2N1cnZlZCcKICAgICAgICAgIC8vICAgY3VzdG9tX25vZGVfcmVuZGVyOiBmdW5jdGlvbiAoam0sIGVsZW1lbnQsIG5vZGUpIHsKICAgICAgICAgIC8vICAgICBlbGVtZW50LmlubmVySFRNTCA9IGAke25vZGUudG9waWN9PGRpdiBjbGFzcz0ndGlwLWljb24ke25vZGUuZGF0YS5tZW1vID8gJyBzaG93VGlwJyA6ICcnfScgZGF0YS1tZW1vPSckewogICAgICAgICAgLy8gICAgICAgbm9kZS5kYXRhLm1lbW8gfHwgJycKICAgICAgICAgIC8vICAgICB9Jz48aSBjbGFzcz0iZWwtaWNvbi1jaGF0LWRvdC1zcXVhcmUiPjwvaT48L2Rpdj48ZGl2IGNsYXNzPSd0aXAtaWNvbiR7bm9kZS5kYXRhLmZvcm11bGEgPyAnIHNob3dGb3JtdWxhJyA6ICcnfScgZGF0YS1mb3JtdWxhPSckewogICAgICAgICAgLy8gICAgICAgbm9kZS5kYXRhLmZvcm11bGEgfHwgJycKICAgICAgICAgIC8vICAgICB9Jz48aSBjbGFzcz0iZWwtaWNvbi1jb25uZWN0aW9uIj48L2k+PC9kaXY+YDsKICAgICAgICAgIC8vICAgICByZXR1cm4gdHJ1ZTsgLy8g6KGo56S65bey57uP5riy5p+T5q2k6IqC54K5CiAgICAgICAgICAvLyAgIH0sCiAgICAgICAgfSwKICAgICAgICBsYXlvdXQ6IHsKICAgICAgICAgIGhzcGFjZTogMTAwLAogICAgICAgICAgLy8g6IqC54K55LmL6Ze055qE5rC05bmz6Ze06LedCiAgICAgICAgICB2c3BhY2U6IDIwIC8vIOiKgueCueS5i+mXtOeahOWeguebtOmXtOi3nQogICAgICAgIH0sCiAgICAgICAgc2hvcnRjdXQ6IHsKICAgICAgICAgIC8vIOemgeeUqOW/q+aNt+mUrgogICAgICAgICAgZW5hYmxlOiBmYWxzZQogICAgICAgIH0KICAgICAgfSwKICAgICAgc3RydWN0dXJlOiB7CiAgICAgICAgYWN0aXZlOiAncmlnaHQnCiAgICAgIH0sCiAgICAgIGNyZWF0ZVR5cGU6ICcnLAogICAgICAvLyDmt7vliqDlubPnuqdvcuWtkOe6pwogICAgICBjdXJyZW50Tm9kZTogbnVsbCwKICAgICAgLy8g6YCJ5Lit6IqC54K55L+h5oGvCiAgICAgIHNob3dNZW51OiBmYWxzZSwKICAgICAgLy8g5piv5ZCm5pi+56S65Y+z6ZSu6I+c5Y2V5qCPCiAgICAgIGlzcm9vdDogZmFsc2UsCiAgICAgIG1lbnVTdHlsZTogewogICAgICAgIHRvcDogJycsCiAgICAgICAgYm90dG9tOiAnJywKICAgICAgICBsZWZ0OiAnJywKICAgICAgICByaWdodDogJycKICAgICAgfSwKICAgICAgdGlwU3R5bGU6IHsKICAgICAgICB0b3A6ICcnLAogICAgICAgIGJvdHRvbTogJycsCiAgICAgICAgbGVmdDogJycsCiAgICAgICAgcmlnaHQ6ICcnCiAgICAgIH0sCiAgICAgIHNob3dQb3BvdmVyOiBmYWxzZSwKICAgICAgY3VycmVudE1lbW86ICcnLAogICAgICBzaG93Rm9ybXVsYVBvcG92ZXI6IGZhbHNlLAogICAgICBjdXJyZW50Rm9ybXVsYTogJycsCiAgICAgIHZpZXdNb2RlOiAnbWluZCcsCiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIC8vIOihqOagvAogICAgICBjb2x1bW5zOiBbXSwKICAgICAgY29sdW1uc1NpbmdsZVRvTXVsdGk6IFt7CiAgICAgICAgcHJvcDogJ3R5cGUnLAogICAgICAgIGxhYmVsOiAn5oyH5qCH57G75Z6LJywKICAgICAgICB3aWR0aDogJzE1MCcKICAgICAgfSwgewogICAgICAgIHByb3A6ICduYW1lJywKICAgICAgICBsYWJlbDogJ+aMh+agh+WQjeensCcKICAgICAgfSwgewogICAgICAgIHByb3A6ICdpbmZlcmVuY2VUeXBlJywKICAgICAgICBsYWJlbDogJ+aOqOeQhuexu+WeiycsCiAgICAgICAgd2lkdGg6ICcxNTAnCiAgICAgIH0sIHsKICAgICAgICBwcm9wOiAndGFza05hbWUnLAogICAgICAgIGxhYmVsOiAn566X5rOV5o6o55CG5Lu75Yqh5ZCN56ewJwogICAgICB9LCB7CiAgICAgICAgcHJvcDogJ3N1YlRhcmdldE5hbWUnLAogICAgICAgIGxhYmVsOiAn5YWz6IGU5oyH5qCHJwogICAgICB9LCB7CiAgICAgICAgcHJvcDogJ3N1YlRhcmdldFR5cGUnLAogICAgICAgIGxhYmVsOiAn5YWz6IGU5oyH5qCH57G75Z6LJywKICAgICAgICB3aWR0aDogJzE1MCcKICAgICAgfSwgewogICAgICAgIHByb3A6ICd0YXJnZXRSZWxhdGlvbicsCiAgICAgICAgbGFiZWw6ICflhbPogZTmj4/ov7AnLAogICAgICAgIHdpZHRoOiAnMjAwJwogICAgICB9LCB7CiAgICAgICAgcHJvcDogJ3RhcmdldEZvcm11bGEnLAogICAgICAgIGxhYmVsOiAn6K6h566X6K+05piOJywKICAgICAgICB3aWR0aDogJzIwMCcKICAgICAgfV0sCiAgICAgIGNvbHVtbnNNdWx0aVRvU2luZ2xlOiBbewogICAgICAgIHByb3A6ICdzdWJUYXJnZXROYW1lJywKICAgICAgICBsYWJlbDogJ+WFs+iBlOaMh+aghycsCiAgICAgICAgd2lkdGg6ICcyMDAnCiAgICAgIH0sIHsKICAgICAgICBwcm9wOiAnc3ViVGFyZ2V0VHlwZScsCiAgICAgICAgbGFiZWw6ICflhbPogZTmjIfmoIfnsbvlnosnLAogICAgICAgIHdpZHRoOiAnMTUwJwogICAgICB9LCB7CiAgICAgICAgcHJvcDogJ3RhcmdldFJlbGF0aW9uJywKICAgICAgICBsYWJlbDogJ+WFs+iBlOaPj+i/sCcsCiAgICAgICAgd2lkdGg6ICcyMDAnCiAgICAgIH0sIHsKICAgICAgICBwcm9wOiAndGFyZ2V0Rm9ybXVsYScsCiAgICAgICAgbGFiZWw6ICforqHnrpfor7TmmI4nLAogICAgICAgIHdpZHRoOiAnMjAwJwogICAgICB9LCB7CiAgICAgICAgcHJvcDogJ3Rhc2tOYW1lJywKICAgICAgICBsYWJlbDogJ+eul+azleaOqOeQhuS7u+WKoeWQjeensCcKICAgICAgfSwgewogICAgICAgIHByb3A6ICdpbmZlcmVuY2VUeXBlJywKICAgICAgICBsYWJlbDogJ+aOqOeQhuexu+WeiycsCiAgICAgICAgd2lkdGg6ICcxNTAnCiAgICAgIH0sIHsKICAgICAgICBwcm9wOiAnbmFtZScsCiAgICAgICAgbGFiZWw6ICfmjIfmoIflkI3np7AnCiAgICAgIH0sIHsKICAgICAgICBwcm9wOiAndHlwZScsCiAgICAgICAgbGFiZWw6ICfmjIfmoIfnsbvlnosnLAogICAgICAgIHdpZHRoOiAnMTUwJwogICAgICB9XQogICAgfTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgdGhhdCA9IHRoaXM7CiAgICB0aGlzLmxvYWRNaW5kKCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBoYW5kbGVWaWV3TW9kZTogZnVuY3Rpb24gaGFuZGxlVmlld01vZGUodmlld01vZGUpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdGhpcy52aWV3TW9kZSA9IHZpZXdNb2RlOwogICAgICBpZiAodGhpcy5tYXBUeXBlID09PSAnU2luZ2xlVG9NdWx0aScpIHsKICAgICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmNvbHVtbnNTaW5nbGVUb011bHRpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuY29sdW1uc011bHRpVG9TaW5nbGU7CiAgICAgIH0KICAgICAgaWYgKHRoaXMudmlld01vZGUgPT09ICdtaW5kJykgewogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXMucmVzZXQoKTsKICAgICAgICB9LCAxMCk7CiAgICAgIH0KICAgIH0sCiAgICBsb2FkTWluZDogZnVuY3Rpb24gbG9hZE1pbmQoKSB7CiAgICAgIHRoaXMuam0gPSBudWxsOwogICAgICB0aGlzLmptID0gbmV3IGpzTWluZCh0aGlzLm9wdGlvbnMpOwogICAgICB0aGlzLmptLnNob3codGhpcy5taW5kRGF0YSk7CiAgICAgIHRoaXMuZWRpdG9yID0gdGhpcy5qbS52aWV3LmVfZWRpdG9yOwogICAgICB0aGlzLmluaXQoKTsKICAgICAgdGhpcy5tb3VzZVdoZWVsKCk7CiAgICAgIHRoaXMubW91c2VEcmFnKCk7CiAgICAgIHRoaXMucm9vdE5vZGUgPSB0aGlzLmptLmdldF9yb290KCk7CiAgICB9LAogICAgLy8g57G75Z6L5YiH5o2iCiAgICBjaGFuZ2VNYXBUeXBlOiBmdW5jdGlvbiBjaGFuZ2VNYXBUeXBlKHR5cGUpIHsKICAgICAgdGhpcy5tYXBUeXBlID0gdHlwZTsKICAgICAgdGhpcy5yZWxvYWRNaW5kKCk7CiAgICB9LAogICAgLy8gdGFi5YiH5o2iCiAgICBoYW5kbGVDbGlja1RhYjogZnVuY3Rpb24gaGFuZGxlQ2xpY2tUYWIoKSB7fSwKICAgIC8vIOmFjee9rue8lui+keaYvuekuumakOiXjwogICAgdG9nZ2xlU2lkZUVkaXRvcjogZnVuY3Rpb24gdG9nZ2xlU2lkZUVkaXRvcih0eXBlKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB0aGlzLnNob3dTaWRlRWRpdG9yID0gdHlwZSA9PT0gdW5kZWZpbmVkID8gIXRoaXMuc2hvd1NpZGVFZGl0b3IgOiB0eXBlOwogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczIucmVzZXQoKTsKICAgICAgfSwgMjAwKTsKICAgIH0sCiAgICAvLyDnvKnlsI8KICAgIHpvb21PdXQ6IGZ1bmN0aW9uIHpvb21PdXQoKSB7CiAgICAgIHRoaXMuam0udmlldy56b29tX291dCgpOwogICAgfSwKICAgIC8vIOaUvuWkpwogICAgem9vbUluOiBmdW5jdGlvbiB6b29tSW4oKSB7CiAgICAgIHRoaXMuam0udmlldy56b29tX2luKCk7CiAgICB9LAogICAgLy8g6YeN572u6KeG5Zu+CiAgICByZXNldDogZnVuY3Rpb24gcmVzZXQoKSB7CiAgICAgIHRoaXMuam0ucmVzaXplKCk7CiAgICB9LAogICAgZXhwb3J0SW1hZ2U6IGZ1bmN0aW9uIGV4cG9ydEltYWdlKCkgewogICAgICB2YXIgam0gPSBqc01pbmQuY3VycmVudDsKICAgICAgam0uc2hvb3QoKTsKICAgIH0sCiAgICAvLyDlvqrnjq/moJHnu5PmnoQKICAgIGxvb3BUcmVlRGF0YTogZnVuY3Rpb24gbG9vcFRyZWVEYXRhKGxpc3QsIGNhbGxiYWNrKSB7CiAgICAgIChmdW5jdGlvbiBkb09uZUZsb29yKGxpc3QpIHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsaXN0KSkgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBpdGVtID0gbGlzdFtpXTsKICAgICAgICAgICAgY2FsbGJhY2soaXRlbSwgaSk7CiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgIGRvT25lRmxvb3IoaXRlbS5jaGlsZHJlbik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pKGxpc3QpOwogICAgfSwKICAgIC8vIOe8lui+keiKgueCuQogICAgLy8g56aB55So5Y+M5Ye757yW6L6RCiAgICBzdG9wREJjbGljazogZnVuY3Rpb24gc3RvcERCY2xpY2soKSB7CiAgICAgIHZhciBqbW5vZGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ptbm9kZScpOwogICAgICBPYmplY3QudmFsdWVzKGptbm9kZXMpLmZvckVhY2goZnVuY3Rpb24gKGptbm9kZSkgewogICAgICAgIGptbm9kZS5vbmRibGNsaWNrID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9LAogICAgc2hvd1RpcDogZnVuY3Rpb24gc2hvd1RpcChldmVudCkgewogICAgICB2YXIgX2V2ZW50JGZyb21FbGVtZW50OwogICAgICBpZiAodGhpcy5zaG93UG9wb3ZlcikgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLmN1cnJlbnRNZW1vID0gKGV2ZW50ID09PSBudWxsIHx8IGV2ZW50ID09PSB2b2lkIDAgfHwgKF9ldmVudCRmcm9tRWxlbWVudCA9IGV2ZW50LmZyb21FbGVtZW50KSA9PT0gbnVsbCB8fCBfZXZlbnQkZnJvbUVsZW1lbnQgPT09IHZvaWQgMCB8fCAoX2V2ZW50JGZyb21FbGVtZW50ID0gX2V2ZW50JGZyb21FbGVtZW50LmNoaWxkcmVuWzBdKSA9PT0gbnVsbCB8fCBfZXZlbnQkZnJvbUVsZW1lbnQgPT09IHZvaWQgMCB8fCAoX2V2ZW50JGZyb21FbGVtZW50ID0gX2V2ZW50JGZyb21FbGVtZW50LmRhdGFzZXQpID09PSBudWxsIHx8IF9ldmVudCRmcm9tRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2V2ZW50JGZyb21FbGVtZW50Lm1lbW8pIHx8ICcnOwogICAgICB2YXIgZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY29tbW9uLXRpcCcpOwogICAgICB2YXIgd2lkdGggPSBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS53aWR0aCk7CiAgICAgIHZhciBoZWlnaHQgPSBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5oZWlnaHQpICogMyArIDEyOwogICAgICB2YXIgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0OwogICAgICB2YXIgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsKICAgICAgLy8g5p6B6ZmQ5L2N572uIOmBv+WFjei2iueVjAogICAgICBpZiAoZXZlbnQuY2xpZW50WSArIGhlaWdodCA+IHdpbmRvd0hlaWdodCkgewogICAgICAgIHRoaXMudGlwU3R5bGUubGVmdCA9IGV2ZW50LmNsaWVudFggKyAncHgnOwogICAgICAgIHRoaXMudGlwU3R5bGUudG9wID0gJ3Vuc2V0JzsKICAgICAgICB0aGlzLnRpcFN0eWxlLmJvdHRvbSA9IDA7CiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY2xpZW50WCArIHdpZHRoID4gd2luZG93V2lkdGgpIHsKICAgICAgICB0aGlzLnRpcFN0eWxlLnRvcCA9IGV2ZW50LmNsaWVudFkgKyAncHgnOwogICAgICAgIHRoaXMudGlwU3R5bGUubGVmdCA9ICd1bnNldCc7CiAgICAgICAgdGhpcy50aXBTdHlsZS5yaWdodCA9IDA7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy50aXBTdHlsZS5sZWZ0ID0gZXZlbnQuY2xpZW50WCArICdweCc7CiAgICAgICAgdGhpcy50aXBTdHlsZS50b3AgPSBldmVudC5jbGllbnRZICsgJ3B4JzsKICAgICAgICB0aGlzLnRpcFN0eWxlLmJvdHRvbSA9ICd1bnNldCc7CiAgICAgIH0KICAgICAgaWYgKHRoaXMuY3VycmVudE1lbW8pIHsKICAgICAgICB0aGlzLnNob3dQb3BvdmVyID0gdHJ1ZTsKICAgICAgfQogICAgfSwKICAgIGhpZGVUaXA6IGZ1bmN0aW9uIGhpZGVUaXAoKSB7CiAgICAgIHRoaXMuY3VycmVudE1lbW8gPSAnJzsKICAgICAgdGhpcy5zaG93UG9wb3ZlciA9IGZhbHNlOwogICAgfSwKICAgIHNob3dGb3JtdWxhOiBmdW5jdGlvbiBzaG93Rm9ybXVsYShldmVudCkgewogICAgICB2YXIgX2V2ZW50JGZyb21FbGVtZW50MjsKICAgICAgaWYgKHRoaXMuc2hvd0Zvcm11bGFQb3BvdmVyKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHRoaXMuY3VycmVudEZvcm11bGEgPSAoZXZlbnQgPT09IG51bGwgfHwgZXZlbnQgPT09IHZvaWQgMCB8fCAoX2V2ZW50JGZyb21FbGVtZW50MiA9IGV2ZW50LmZyb21FbGVtZW50KSA9PT0gbnVsbCB8fCBfZXZlbnQkZnJvbUVsZW1lbnQyID09PSB2b2lkIDAgfHwgKF9ldmVudCRmcm9tRWxlbWVudDIgPSBfZXZlbnQkZnJvbUVsZW1lbnQyLmNoaWxkcmVuWzFdKSA9PT0gbnVsbCB8fCBfZXZlbnQkZnJvbUVsZW1lbnQyID09PSB2b2lkIDAgfHwgKF9ldmVudCRmcm9tRWxlbWVudDIgPSBfZXZlbnQkZnJvbUVsZW1lbnQyLmRhdGFzZXQpID09PSBudWxsIHx8IF9ldmVudCRmcm9tRWxlbWVudDIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ldmVudCRmcm9tRWxlbWVudDIuZm9ybXVsYSkgfHwgJyc7CiAgICAgIHZhciBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb21tb24tZm9ybXVsYScpOwogICAgICB2YXIgd2lkdGggPSBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS53aWR0aCk7CiAgICAgIHZhciBoZWlnaHQgPSBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5oZWlnaHQpICogMyArIDEyOwogICAgICB2YXIgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0OwogICAgICB2YXIgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsKICAgICAgLy8g5p6B6ZmQ5L2N572uIOmBv+WFjei2iueVjAogICAgICBpZiAoZXZlbnQuY2xpZW50WSArIGhlaWdodCA+IHdpbmRvd0hlaWdodCkgewogICAgICAgIHRoaXMudGlwU3R5bGUubGVmdCA9IGV2ZW50LmNsaWVudFggKyAncHgnOwogICAgICAgIHRoaXMudGlwU3R5bGUudG9wID0gJ3Vuc2V0JzsKICAgICAgICB0aGlzLnRpcFN0eWxlLmJvdHRvbSA9IDA7CiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY2xpZW50WCArIHdpZHRoID4gd2luZG93V2lkdGgpIHsKICAgICAgICB0aGlzLnRpcFN0eWxlLnRvcCA9IGV2ZW50LmNsaWVudFkgKyAncHgnOwogICAgICAgIHRoaXMudGlwU3R5bGUubGVmdCA9ICd1bnNldCc7CiAgICAgICAgdGhpcy50aXBTdHlsZS5yaWdodCA9IDA7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy50aXBTdHlsZS5sZWZ0ID0gZXZlbnQuY2xpZW50WCArICdweCc7CiAgICAgICAgdGhpcy50aXBTdHlsZS50b3AgPSBldmVudC5jbGllbnRZICsgJ3B4JzsKICAgICAgICB0aGlzLnRpcFN0eWxlLmJvdHRvbSA9ICd1bnNldCc7CiAgICAgIH0KICAgICAgaWYgKHRoaXMuY3VycmVudEZvcm11bGEpIHsKICAgICAgICB0aGlzLnNob3dGb3JtdWxhUG9wb3ZlciA9IHRydWU7CiAgICAgIH0KICAgIH0sCiAgICBoaWRlRm9ybXVsYTogZnVuY3Rpb24gaGlkZUZvcm11bGEoKSB7CiAgICAgIHRoaXMuY3VycmVudEZvcm11bGEgPSAnJzsKICAgICAgdGhpcy5zaG93Rm9ybXVsYVBvcG92ZXIgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDlpIfms6jnu5Hlrprngrnlh7vkuovku7YKICAgIHRpcHNDbGljazogZnVuY3Rpb24gdGlwc0NsaWNrKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgdmFyIHRpcHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0aXAtaWNvbiBzaG93VGlwJyk7CiAgICAgIE9iamVjdC52YWx1ZXModGlwcykuZm9yRWFjaChmdW5jdGlvbiAodGlwKSB7CiAgICAgICAgdGlwLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIF90aGlzMy5zaG93VGlwKTsKICAgICAgICB0aXAuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgX3RoaXMzLnNob3dUaXApOwogICAgICB9KTsKICAgICAgT2JqZWN0LnZhbHVlcyh0aXBzKS5mb3JFYWNoKGZ1bmN0aW9uICh0aXApIHsKICAgICAgICB0aXAucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIF90aGlzMy5oaWRlVGlwKTsKICAgICAgICB0aXAuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIF90aGlzMy5oaWRlVGlwKTsKICAgICAgfSk7CiAgICAgIHZhciBGb3JtdWxhID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndGlwLWljb24gc2hvd0Zvcm11bGEnKTsKICAgICAgT2JqZWN0LnZhbHVlcyhGb3JtdWxhKS5mb3JFYWNoKGZ1bmN0aW9uIChmb3JtdWxhKSB7CiAgICAgICAgZm9ybXVsYS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBfdGhpczMuc2hvd0Zvcm11bGEpOwogICAgICAgIGZvcm11bGEuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgX3RoaXMzLnNob3dGb3JtdWxhKTsKICAgICAgfSk7CiAgICAgIE9iamVjdC52YWx1ZXMoRm9ybXVsYSkuZm9yRWFjaChmdW5jdGlvbiAoZm9ybXVsYSkgewogICAgICAgIGZvcm11bGEucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIF90aGlzMy5oaWRlRm9ybXVsYSk7CiAgICAgICAgZm9ybXVsYS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgX3RoaXMzLmhpZGVGb3JtdWxhKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Yid5aeL5YyW6YWN572uCiAgICBpbml0OiBmdW5jdGlvbiBpbml0KCkgewogICAgICB0aGlzLmptLmV4cGFuZF9hbGwoKTsKICAgICAgdGhpcy5zdG9wREJjbGljaygpOwogICAgICB0aGlzLnRpcHNDbGljaygpOwogICAgfSwKICAgIC8vIOiOt+WPlumAieS4reagh+etvueahCBJRAogICAgZ2V0X3NlbGVjdGVkX25vZGVpZDogZnVuY3Rpb24gZ2V0X3NlbGVjdGVkX25vZGVpZCgpIHsKICAgICAgdmFyIHNlbGVjdGVkTm9kZSA9IHRoaXMuam0uZ2V0X3NlbGVjdGVkX25vZGUoKTsKICAgICAgaWYgKHNlbGVjdGVkTm9kZSkgewogICAgICAgIHJldHVybiBzZWxlY3RlZE5vZGUuaWQ7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgIH0sCiAgICAvLyDliIfmjaLmgJ3nu7Tlr7zlm77nu5PmnoQKICAgIHRvZ2dsZVN0dWN0dXJlOiBmdW5jdGlvbiB0b2dnbGVTdHVjdHVyZSh0eXBlKSB7CiAgICAgIGlmICh0aGlzLnN0cnVjdHVyZS5hY3RpdmUgPT09IHR5cGUpIHJldHVybjsKICAgICAgdGhpcy5zdHJ1Y3R1cmUuYWN0aXZlID0gdHlwZTsKICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgY2FzZSAnc2lkZSc6CiAgICAgICAgICAvLyDkuKTovrnliIbluIMKICAgICAgICAgIHRoaXMubG9vcFRyZWVEYXRhKHRoaXMubWluZERhdGEuZGF0YS5jaGlsZHJlbiwgZnVuY3Rpb24gKGl0ZW0sIGkpIHsKICAgICAgICAgICAgaXRlbS5kaXJlY3Rpb24gPSBpICUgMiA/ICdsZWZ0JyA6ICdyaWdodCc7CiAgICAgICAgICB9KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ011bHRpVG9TaW5nbGUnOgogICAgICAgICAgLy8g5ZCR5bem5YiG5biDCiAgICAgICAgICB0aGlzLmxvb3BUcmVlRGF0YSh0aGlzLm1pbmREYXRhLmRhdGEuY2hpbGRyZW4sIGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIGl0ZW0uZGlyZWN0aW9uID0gJ2xlZnQnOwogICAgICAgICAgfSk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdTaW5nbGVUb011bHRpJzoKICAgICAgICAgIC8vIOWQkeWPs+WIhuW4gwogICAgICAgICAgdGhpcy5sb29wVHJlZURhdGEodGhpcy5taW5kRGF0YS5kYXRhLmNoaWxkcmVuLCBmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICBpdGVtLmRpcmVjdGlvbiA9ICdyaWdodCc7CiAgICAgICAgICB9KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBicmVhazsKICAgICAgfQogICAgICB0aGlzLmptLnNob3codGhpcy5taW5kRGF0YSk7CiAgICAgIHRoaXMuaW5pdCgpOwogICAgfSwKICAgIGhhbmRsZUNoYW5nZU1hcFR5cGU6IGZ1bmN0aW9uIGhhbmRsZUNoYW5nZU1hcFR5cGUodHlwZSkgewogICAgICB0aGlzLnRvZ2dsZVN0dWN0dXJlKHR5cGUpOwogICAgICB0aGlzLm1hcFR5cGUgPSB0eXBlOwogICAgICBpZiAodGhpcy5tYXBUeXBlID09PSAnU2luZ2xlVG9NdWx0aScpIHsKICAgICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmNvbHVtbnNTaW5nbGVUb011bHRpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuY29sdW1uc011bHRpVG9TaW5nbGU7CiAgICAgIH0KICAgIH0sCiAgICAvLyDmi5bmi70KICAgIGhhbmRsZURyb3A6IGZ1bmN0aW9uIGhhbmRsZURyb3AoZHJhZ2dpbmdOb2RlLCBkcm9wTm9kZSkgewogICAgICAvLyDliY3kuIDkuKrlhYTlvJ/oioLngrkKICAgICAgdmFyIHByZXZOb2RlID0gdGhpcy5qbS5maW5kX25vZGVfYmVmb3JlKGRyb3BOb2RlKTsKICAgICAgLy8g6I635Y+W56e75Yqo5ZCO55qEbm9kZQogICAgICB2YXIgZHJhZ0Zvcm0gPSB7CiAgICAgICAgbW9kZWxJZDogJycsCiAgICAgICAgdHJlZU51bTogIXByZXZOb2RlID8gZHJhZ2dpbmdOb2RlIDogcHJldk5vZGUuaWQsCiAgICAgICAgdGhpc1RyZWVOdW06IGRyb3BOb2RlCiAgICAgIH07CiAgICAgIGNvbnNvbGUubG9nKCdkcmFnRm9ybScsIGRyYWdGb3JtKTsKCiAgICAgIC8vIFRPRE8g6LCD5o6l5Y+jCiAgICB9LAogICAgLy8g5Y2V5Ye76YeN572u6YCJ5Lit6IOM5pmv6aKc6ImyCiAgICBub2RlQ2xpY2s6IGZ1bmN0aW9uIG5vZGVDbGljaygpIHsKICAgICAgdGhpcy5zaG93TWVudSA9IGZhbHNlOwogICAgICB2YXIgc2VsZWN0ZWROb2RlID0gdGhpcy5qbS5nZXRfc2VsZWN0ZWRfbm9kZSgpOwogICAgICBjb25zb2xlLmxvZyhzZWxlY3RlZE5vZGUsICdzZWxlY3RlZE5vZGUnKTsKICAgICAgaWYgKHNlbGVjdGVkTm9kZSkgewogICAgICAgIHRoaXMuY3VycmVudE5vZGUgPSBzZWxlY3RlZE5vZGU7CiAgICAgICAgdGhpcy5hZGRUYXJnZXQudG9waWMgPSB0aGlzLmN1cnJlbnROb2RlLnRvcGljIHx8ICcnOwogICAgICAgIGlmIChzZWxlY3RlZE5vZGUuZGF0YS5sZXZlbCA9PT0gMiAmJiB0aGlzLnJvb3ROb2RlLmlkICE9PSB0aGlzLmN1cnJlbnROb2RlLmlkKSB7CiAgICAgICAgICB0aGlzLnRvZ2dsZVNpZGVFZGl0b3IodHJ1ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMudG9nZ2xlU2lkZUVkaXRvcihmYWxzZSk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLy8g6Zi75q2i5YaS5rOhCiAgICBub2RlUHJldmVudENsaWNrOiBmdW5jdGlvbiBub2RlUHJldmVudENsaWNrKCkge30sCiAgICAvLyDojrflj5bmlbDmja4KICAgIGdldE1pbmREYXRhOiBmdW5jdGlvbiBnZXRNaW5kRGF0YSgpIHsKICAgICAgdGhpcy5taW5kRGF0YSA9IHRoaXMuam0uZ2V0X2RhdGEoKTsKICAgICAgY29uc29sZS5sb2codGhpcy5taW5kRGF0YSwgJ3RoaXMuZGF0YVVwZGF0YScpOwogICAgfSwKICAgIC8vIOm8oOagh+a7mui9ruaUvuWkp+e8qeWwjwogICAgbW91c2VXaGVlbDogZnVuY3Rpb24gbW91c2VXaGVlbCgpIHsKICAgICAgaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkb21Nb3VzZVNjcm9sbCcsIHRoaXMuc2Nyb2xsRnVuYywgZmFsc2UpOwogICAgICB9CiAgICAgIHRoaXMuJHJlZnMuY29udGFpbmVyLm9ubW91c2V3aGVlbCA9IHRoaXMuc2Nyb2xsRnVuYzsKICAgIH0sCiAgICAvLyDmu5rova7nvKnmlL4KICAgIHNjcm9sbEZ1bmM6IGZ1bmN0aW9uIHNjcm9sbEZ1bmMoZSkgewogICAgICB0aGlzLnNob3dNZW51ID0gZmFsc2U7CiAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDsKICAgICAgaWYgKGUud2hlZWxEZWx0YSkgewogICAgICAgIGlmIChlLndoZWVsRGVsdGEgPiAwKSB7CiAgICAgICAgICB0aGlzLnpvb21JbigpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLnpvb21PdXQoKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZS5kZXRhaWwpIHsKICAgICAgICBpZiAoZS5kZXRhaWwgPiAwKSB7CiAgICAgICAgICB0aGlzLnpvb21JbigpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLnpvb21PdXQoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB0aGlzLmptLnJlc2l6ZSgpOwogICAgfSwKICAgIC8vIOm8oOagh+aLluaLvQogICAgbW91c2VEcmFnOiBmdW5jdGlvbiBtb3VzZURyYWcoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICAvLyDph4zlsYIKICAgICAgdmFyIGVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmpzbWluZC1pbm5lcicpOwogICAgICAvLyDpgInkuK3oioLngrkKICAgICAgdmFyIHNlbGVjdGVkOwogICAgICBlbC5vbm1vdXNlZG93biA9IGZ1bmN0aW9uIChldikgewogICAgICAgIC8vIOmAieS4reiKgueCuQogICAgICAgIHNlbGVjdGVkID0gX3RoaXM0LmptLmdldF9zZWxlY3RlZF9ub2RlKCk7CiAgICAgICAgLy8g5qCH6K+GIOaYr+WQpuaLluaLveiKgueCuSDpgb/lhY3lhrLnqoEKICAgICAgICBfdGhpczQuZHJhZ05vZGVGbGFnID0gISFzZWxlY3RlZDsKICAgICAgICB2YXIgZGlzWCA9IGV2LmNsaWVudFg7CiAgICAgICAgdmFyIGRpc1kgPSBldi5jbGllbnRZOwogICAgICAgIHZhciBvcmlnaW5hbFNjcm9sbExlZnQgPSBlbC5zY3JvbGxMZWZ0OwogICAgICAgIHZhciBvcmlnaW5hbFNjcm9sbFRvcCA9IGVsLnNjcm9sbFRvcDsKICAgICAgICB2YXIgb3JpZ2luYWxTY3JvbGxCZWhhdmlvciA9IGVsLnN0eWxlWydzY3JvbGwtYmVoYXZpb3InXTsKICAgICAgICB2YXIgb3JpZ2luYWxQb2ludGVyRXZlbnRzID0gZWwuc3R5bGVbJ3BvaW50ZXItZXZlbnRzJ107CiAgICAgICAgLy8gYXV0bzog6buY6K6k5YC877yM6KGo56S65rua5Yqo5qGG56uL5Y2z5rua5Yqo5Yiw5oyH5a6a5L2N572u44CCCiAgICAgICAgZWwuc3R5bGVbJ3Njcm9sbC1iZWhhdmlvciddID0gJ2F1dG8nOwogICAgICAgIC8vIOm8oOagh+enu+WKqOS6i+S7tuaYr+ebkeWQrOeahOaVtOS4qmRvY3VtZW5077yM6L+Z5qC35Y+v5Lul5L2/6byg5qCH6IO95aSf5Zyo5YWD57Sg5aSW6YOo56e75Yqo55qE5pe25YCZ5Lmf6IO95a6e546w5ouW5YqoCiAgICAgICAgZG9jdW1lbnQub25tb3VzZW1vdmUgPSBmdW5jdGlvbiAoZXYpIHsKICAgICAgICAgIGlmIChfdGhpczQuZHJhZ05vZGVGbGFnKSByZXR1cm47CiAgICAgICAgICBfdGhpczQuZHJhZyA9IGZhbHNlOwogICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgIC8vIOiuoeeul+aLluaLveeahOWBj+enu+i3neemuwogICAgICAgICAgdmFyIGRpc3RhbmNlWCA9IGV2LmNsaWVudFggLSBkaXNYOwogICAgICAgICAgdmFyIGRpc3RhbmNlWSA9IGV2LmNsaWVudFkgLSBkaXNZOwogICAgICAgICAgZWwuc2Nyb2xsVG8ob3JpZ2luYWxTY3JvbGxMZWZ0IC0gZGlzdGFuY2VYLCBvcmlnaW5hbFNjcm9sbFRvcCAtIGRpc3RhbmNlWSk7CgogICAgICAgICAgLy8g5Zyo6byg5qCH5ouW5Yqo55qE5pe25YCZ5bCG54K55Ye75LqL5Lu25bGP6JS95o6JCiAgICAgICAgICBlbC5zdHlsZVsncG9pbnRlci1ldmVudHMnXSA9ICdub25lJzsKICAgICAgICAgIGVsLnN0eWxlLmN1cnNvciA9ICdncmFiYmluZyc7CiAgICAgICAgfTsKICAgICAgICBkb2N1bWVudC5vbm1vdXNldXAgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBpZiAoIV90aGlzNC5kcmFnTm9kZUZsYWcpIHsKICAgICAgICAgICAgZWwuc3R5bGVbJ3Njcm9sbC1iZWhhdmlvciddID0gb3JpZ2luYWxTY3JvbGxCZWhhdmlvcjsKICAgICAgICAgICAgZWwuc3R5bGVbJ3BvaW50ZXItZXZlbnRzJ10gPSBvcmlnaW5hbFBvaW50ZXJFdmVudHM7CiAgICAgICAgICAgIGVsLnN0eWxlLmN1cnNvciA9ICdncmFiJzsKICAgICAgICAgIH0KICAgICAgICAgIGRvY3VtZW50Lm9ubW91c2Vtb3ZlID0gZG9jdW1lbnQub25tb3VzZXVwID0gbnVsbDsKICAgICAgICB9OwogICAgICB9OwogICAgfQogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RvbU1vdXNlU2Nyb2xsJywgdGhpcy5zY3JvbGxGdW5jLCBmYWxzZSk7CiAgfQp9Ow=="},null]}