{"remainingRequest":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\bzzgj-fvue\\src\\router.js","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\router.js","mtime":1725536854045},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\babel.config.js","mtime":1725536844935},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9ienpnai1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5zb21lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnNlYXJjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zdGFydHMtd2l0aC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0IFZ1ZSBmcm9tICd2dWUnOwppbXBvcnQgUm91dGVyIGZyb20gJ3Z1ZS1yb3V0ZXInOwppbXBvcnQgc3RvcmUgZnJvbSAnQC9zdG9yZSc7CmltcG9ydCBMb2dpbiBmcm9tICdAL3ZpZXdzL0xvZ2luLnZ1ZSc7CmltcG9ydCBOb3RGb3VuZCBmcm9tICdAL3ZpZXdzL05vdEZvdW5kLnZ1ZSc7CmltcG9ydCByZXEgZnJvbSAnQC9yZXF1ZXN0LmpzJzsKaW1wb3J0IHVjIGZyb20gJ0AvYXBpL3VjLmpzJzsKaW1wb3J0IHBvcnRhbCBmcm9tICdAL2FwaS9wb3J0YWwuanMnOwppbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnZWxlbWVudC11aSc7CmltcG9ydCByb3V0ZXJNb2JpbGUgZnJvbSAnQC9yb3V0ZXJNb2JpbGUuanMnOyAvLyDnp7vliqjnq6/pkonpkonlupTnlKjnm7jlhbPot6/nlLEKaW1wb3J0IHJvdXRlckRldmljZSBmcm9tICdAL3JvdXRlckRldmljZS5qcyc7IC8vIOiuvuWkh+iPnOWNleebuOWFs+i3r+eUsQppbXBvcnQgcm91dGVyRGV2aWNlTGluayBmcm9tICdAL3JvdXRlckRldmljZUxpbmsuanMnOyAvLyDorr7lpIfoj5zljZXnm7jlhbPot6/nlLEKaW1wb3J0IHJvdXRlck1hbmFnZSBmcm9tICdAL3JvdXRlck1hbmFnZS5qcyc7IC8vIOeuoeeQhuiPnOWNleebuOWFs+i3r+eUsQppbXBvcnQgcm91dGVyTWFuYWdlTGluayBmcm9tICdAL3JvdXRlck1hbmFnZUxpbmsuanMnOyAvLyDnrqHnkIboj5zljZXnm7jlhbPot6/nlLEKVnVlLnVzZShSb3V0ZXIpOwp2YXIgcm91dGVyID0gbmV3IFJvdXRlcih7CiAgbW9kZTogJ2hpc3RvcnknLAogIGJhc2U6IHByb2Nlc3MuZW52LkJBU0VfVVJMLAogIHJvdXRlczogW3sKICAgIHBhdGg6ICcvJwogIH0sIHsKICAgIHBhdGg6ICcvbG9naW4nLAogICAgbmFtZTogJ2xvZ2luJywKICAgIGNvbXBvbmVudDogTG9naW4sCiAgICBtZXRhOiB7CiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgYW5vbnltb3VzOiB0cnVlCiAgICB9CiAgfSwgewogICAgcGF0aDogJy9yZXNldFB3ZFZpZXcnLAogICAgbmFtZTogJ3Jlc2V0UHdkVmlldycsCiAgICBwcm9wczogdHJ1ZSwKICAgIGNvbXBvbmVudDogZnVuY3Rpb24gY29tcG9uZW50KCkgewogICAgICByZXR1cm4gaW1wb3J0KCdAL3ZpZXdzL1Jlc2V0UHdkVmlldy52dWUnKTsKICAgIH0sCiAgICBtZXRhOiB7CiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgYW5vbnltb3VzOiB0cnVlCiAgICB9CiAgfSwgewogICAgcGF0aDogJy9kaW5nVGFsaycsCiAgICBuYW1lOiAnZGluZ1RhbGsnLAogICAgcHJvcHM6IHRydWUsCiAgICBjb21wb25lbnQ6IGZ1bmN0aW9uIGNvbXBvbmVudCgpIHsKICAgICAgcmV0dXJuIGltcG9ydCgnQC9jb21wb25lbnRzL2p1bXAvZHRfanVtcC52dWUnKTsKICAgIH0sCiAgICBtZXRhOiB7CiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgYW5vbnltb3VzOiB0cnVlCiAgICB9CiAgfSwKICAvLyB0aHJlZUpTICAzRFZpZXcKICB7CiAgICBwYXRoOiAnLzNEVmlldycsCiAgICBuYW1lOiAnM0RWaWV3JywKICAgIGNvbXBvbmVudDogZnVuY3Rpb24gY29tcG9uZW50KCkgewogICAgICByZXR1cm4gaW1wb3J0KCdAL3ZpZXdzL0RldmljZS8zRFZpZXcudnVlJyk7CiAgICB9CiAgfV0uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShyb3V0ZXJNb2JpbGUpLCBfdG9Db25zdW1hYmxlQXJyYXkocm91dGVyRGV2aWNlTGluayksIF90b0NvbnN1bWFibGVBcnJheShyb3V0ZXJNYW5hZ2VMaW5rKSwgW3sKICAgIHBhdGg6ICcvZnJvbnRQbGF0JywKICAgIG5hbWU6ICdmcm9udFBsYXQnLAogICAgY29tcG9uZW50OiBmdW5jdGlvbiBjb21wb25lbnQoKSB7CiAgICAgIHJldHVybiBpbXBvcnQoJ0AvY29tcG9uZW50cy9sYXlvdXQvTGF5b3V0Jyk7CiAgICB9LAogICAgY2hpbGRyZW46IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkocm91dGVyRGV2aWNlKSwgX3RvQ29uc3VtYWJsZUFycmF5KHJvdXRlck1hbmFnZSksIFsKICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t5rWB56iL55u45YWz6ZqQ6JePLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2Zvcm1NYW5hZ2UvOmluc3RJZC86dHlwZScsCiAgICAvLyAgIG5hbWU6ICdmb3JtTWFuYWdlJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L2Zvcm1NYW5hZ2UudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvaG9tZScsCiAgICAvLyAgIG5hbWU6ICdob21lJywKICAgIC8vICAgY29tcG9uZW50OiBIb21lLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgaXNIb21lOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvdi1mbG93JywKICAgIC8vICAgY29tcG9uZW50OiBtZW51Q29udGVudCwKICAgIC8vICAgY2hpbGRyZW46IFt7CiAgICAvLyAgICAgICBwYXRoOiAnLycsCiAgICAvLyAgICAgICBuYW1lOiAndG9kby1kZWZhdWx0JywKICAgIC8vICAgICAgIHJlZGlyZWN0OiAndi10b2RvJwogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3YtdG9kbycsCiAgICAvLyAgICAgICBuYW1lOiAndG9kbycsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvdG9kby52dWUnKQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3YtdG9kby86b3JnTmFtZS86b3JnSWQnLAogICAgLy8gICAgICAgbmFtZTogJ3RvZG9CeU9yZ0lkJywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90b2RvLnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUKICAgIC8vICAgICB9LAogICAgLy8gICAgIHsKICAgIC8vICAgICAgIHBhdGg6ICd2LWxlYWRlcicsCiAgICAvLyAgICAgICBuYW1lOiAnbGVhZGVyJywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9sZWFkZXJUb2RvLnZ1ZScpCiAgICAvLyAgICAgfSwKCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3YtdG9kby86ZGVmS2V5JywKICAgIC8vICAgICAgIG5hbWU6ICd0b2RvLWRlZktleScsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvdG9kby52dWUnKSwKICAgIC8vICAgICAgIHByb3BzOiB0cnVlLAogICAgLy8gICAgICAgbWV0YTogewogICAgLy8gICAgICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgICAgIH0KICAgIC8vICAgICB9LAoKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1kb25lJywKICAgIC8vICAgICAgIG5hbWU6ICdkb25lJywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9kb25lLnZ1ZScpCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1kb25lLzpkZWZLZXknLAogICAgLy8gICAgICAgbmFtZTogJ2RvbmUtZGVmS2V5JywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9kb25lLnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUsCiAgICAvLyAgICAgICBtZXRhOiB7CiAgICAvLyAgICAgICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICAgICAgfQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3YtcmVxdWVzdCcsCiAgICAvLyAgICAgICBuYW1lOiAncmVxdWVzdCcsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvbXlSZXF1ZXN0LnZ1ZScpCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1yZXF1ZXN0LzpkZWZLZXknLAogICAgLy8gICAgICAgbmFtZTogJ3JlcXVlc3QtZGVmS2V5JywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9teVJlcXVlc3QudnVlJyksCiAgICAvLyAgICAgICBwcm9wczogdHJ1ZSwKICAgIC8vICAgICAgIG1ldGE6IHsKICAgIC8vICAgICAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgICAgICB9CiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1mbG93TGlzdCcsCiAgICAvLyAgICAgICBuYW1lOiAnZmxvd0xpc3QnLAogICAgLy8gICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L2Zsb3dMaXN0LnZ1ZScpCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi10b2RvUmVhZCcsCiAgICAvLyAgICAgICBuYW1lOiAndG9kb1JlYWQnLAogICAgLy8gICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3RvZG9SZWFkLnZ1ZScpCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi10b2RvUmVhZC86ZGVmS2V5JywKICAgIC8vICAgICAgIG5hbWU6ICd0b2RvUmVhZC1kZWZLZXknLAogICAgLy8gICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3RvZG9SZWFkLnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUsCiAgICAvLyAgICAgICBtZXRhOiB7CiAgICAvLyAgICAgICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICAgICAgfQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3YtZG9uZVJlYWQnLAogICAgLy8gICAgICAgbmFtZTogJ2RvbmVSZWFkJywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9kb25lUmVhZC52dWUnKQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3YtZG9uZVJlYWQvOmRlZktleScsCiAgICAvLyAgICAgICBuYW1lOiAnZG9uZVJlYWQtZGVmS2V5JywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9kb25lUmVhZC52dWUnKSwKICAgIC8vICAgICAgIHByb3BzOiB0cnVlLAogICAgLy8gICAgICAgbWV0YTogewogICAgLy8gICAgICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgICAgIH0KICAgIC8vICAgICB9LAogICAgLy8gICAgIHsKICAgIC8vICAgICAgIHBhdGg6ICd2LW15UmVhZCcsCiAgICAvLyAgICAgICBuYW1lOiAnbXlSZWFkJywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9teVJlYWQudnVlJykKICAgIC8vICAgICB9LAogICAgLy8gICAgIHsKICAgIC8vICAgICAgIHBhdGg6ICd2LW15UmVhZC86ZGVmS2V5JywKICAgIC8vICAgICAgIG5hbWU6ICdteVJlYWQtZGVmS2V5JywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9teVJlYWQudnVlJyksCiAgICAvLyAgICAgICBwcm9wczogdHJ1ZSwKICAgIC8vICAgICAgIG1ldGE6IHsKICAgIC8vICAgICAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgICAgICB9CiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1teURlbGVnYXRlJywKICAgIC8vICAgICAgIG5hbWU6ICdteURlbGVnYXRlJywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9teURlbGVnYXRlLnZ1ZScpCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1teURlbGVnYXRlLzpkZWZLZXknLAogICAgLy8gICAgICAgbmFtZTogJ215RGVsZWdhdGUtZGVmS2V5JywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9teURlbGVnYXRlLnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUsCiAgICAvLyAgICAgICBtZXRhOiB7CiAgICAvLyAgICAgICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICAgICAgfQogICAgLy8gICAgIH0KICAgIC8vICAgXQogICAgLy8gfSwKICAgIC8vIC8qIOi3s+i9rOWQr+WKqOa1geeoiyAqLwogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2FnZW50U3RhcnQvOmRlZklkLzpsZWFkZXJJZCcsCiAgICAvLyAgIG5hbWU6ICdkZWZTdGFydCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9zdGFydC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyAvKuWkjeWItua1geeoi+WQr+WKqCAqLwogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2FnZW50U3RhcnQvOmRlZklkLzpsZWFkZXJJZC86Y29weUluc3RJZCcsCiAgICAvLyAgIG5hbWU6ICdkZWZDb3B5U3RhcnQnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvc3RhcnQudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlCiAgICAvLyB9LAogICAgLy8gLy/moLnmja7mtYHnqIvlrprkuYlrZXnlkK/liqjmtYHnqIsKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9hZ2VudFN0YXJ0QnlLZXkvOmRlZktleScsCiAgICAvLyAgIG5hbWU6ICdkZWZLZXlTdGFydCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9zdGFydEJ5S2V5LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3N5c01vZHVsZVByZXZpZXcvOmlkLzphcHBOYW1lJywKICAgIC8vICAgbmFtZTogJ3N5c01vZHVsZVByZXZpZXcnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2dlbmVyYXRvci9zeXNNb2R1bGVQcmV2aWV3LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3N0YXJ0LzpkZWZJZC86aW5zdElkJywKICAgIC8vICAgbmFtZTogJ2luc3RTdGFydCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9zdGFydC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyAvKiDot7Povazku7vliqHor6bmg4UgKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9pbnN0LzppbnN0SWQvOnR5cGUnLAogICAgLy8gICBuYW1lOiAnaW5zdCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKCiAgICAvKiDlvoXpmIXliJfooajot7PovawgKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9pbnN0LzppbnN0SWQvOnR5cGUvOnJlYWRJZCcsCiAgICAvLyAgIG5hbWU6ICdpbnN0UmVhZC1yZWFkJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3Rhc2sudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlCiAgICAvLyB9LAogICAgLy8gLyog5qih5Z2X5byA5Y+R5Luj5Yqe6Lez6L2sICovCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvc3lzTW9kdWxlSW5zdC86dGFza0lkLzpsZWFkZXJJZC86ZGVmS2V5Lzpub1NpbmdsZScsCiAgICAvLyAgIG5hbWU6ICdzeXNNb2R1bGVJbnN0JywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3Rhc2sudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyAvKiDmlbDmja7miqXooajmqKHlnZflvIDlj5Hku6Plip7ot7PovawgKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9yZXBvcnRNb2R1bGVJbnN0Lzp0YXNrSWQvOmxlYWRlcklkLzpkZWZLZXkvOm5vU2luZ2xlLzp0ZW1wbGF0ZUtleScsCiAgICAvLyAgIG5hbWU6ICdyZXBvcnRNb2R1bGVJbnN0JywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3Rhc2sudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyAvKiDmqKHlnZflvIDlj5Hlt7Llip7liJfooajot7PovawgKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9zeXNNb2R1bGVJbnN0LzppbnN0SWQvOnR5cGUvOmRlZktleScsCiAgICAvLyAgIG5hbWU6ICdzeXNNb2R1bGVJbnN0SnVtcCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAoKICAgIC8vIC8qIOaVsOaNruaKpeihqOaooeWdl+W8gOWPkeW3suWKnuWIl+ihqOi3s+i9rCAqLwogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3JlcG9ydE1vZHVsZUluc3REb25lLzppbnN0SWQvOnR5cGUvOmRlZktleS86dGVtcGxhdGVLZXknLAogICAgLy8gICBuYW1lOiAncmVwb3J0TW9kdWxlSW5zdERvbmUnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvdGFzay52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgfQogICAgLy8gfSwKICAgIC8vIC8qIOeKtuaAgeS4ukZPTExPV+aXtuWAmeaooeWdl+W8gOWPkeW+hemYhei3s+i9rCAqLwogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3N5c01vZHVsZUluc3RUYXNrUmVhZC86dGFza0lkLzp0YXNrX3N0YXRlLzpkZWZLZXknLAogICAgLy8gICBuYW1lOiAnc3lzTW9kdWxlSW5zdFRhc2tSZWFkJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3Rhc2sudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyAvKiDmqKHlnZflvIDlj5HlvoXpmIXot7PovawgKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9zeXNNb2R1bGVJbnN0UmVhZC86aW5zdElkLzp0eXBlLzpyZWFkSWQvOmRlZktleScsCiAgICAvLyAgIG5hbWU6ICdzeXNNb2R1bGVJbnN0UmVhZEp1bXAnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvdGFzay52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgfQogICAgLy8gfSwKICAgIC8vIC8qIOeKtuaAgeS4ukZPTExPV+aXtuWAmeaVsOaNruaKpeihqOaooeWdl+W8gOWPkeW+hemYhei3s+i9rCAqLwogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3JlcG9ydE1vZHVsZUluc3RUYXNrUmVhZC86dGFza0lkLzp0YXNrX3N0YXRlLzpkZWZLZXkvOnRlbXBsYXRlS2V5JywKICAgIC8vICAgbmFtZTogJ3JlcG9ydE1vZHVsZUluc3RUYXNrUmVhZCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAogICAgLy8gLyog5pWw5o2u5oql6KGo5qih5Z2X5byA5Y+R5b6F6ZiF6Lez6L2sICovCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvcmVwb3J0TW9kdWxlSW5zdFJlYWQvOmluc3RJZC86dHlwZS86cmVhZElkLzpkZWZLZXkvOnRlbXBsYXRlS2V5JywKICAgIC8vICAgbmFtZTogJ3JlcG9ydE1vZHVsZUluc3RSZWFkJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3Rhc2sudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyAvKiDmqKHlnZflvIDlj5Hlt7LpmIXliJfooajot7PovawgKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9zeXNNb2R1bGVJbnN0RG9uZS86aW5zdElkLzp0eXBlLzpyZWFkVHlwZS86cmVhZERvbmVJZC86ZGVmS2V5JywKICAgIC8vICAgbmFtZTogJ3N5c01vZHVsZUluc3REb25lJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3Rhc2sudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyAvKiDmlbDmja7miqXooajmqKHlnZflvIDlj5Hlt7LpmIXliJfooajot7PovawgKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9yZXBvcnRNb2R1bGVJbnN0RG9uZS86aW5zdElkLzp0eXBlLzpyZWFkVHlwZS86cmVhZERvbmVJZC86ZGVmS2V5Lzp0ZW1wbGF0ZUtleScsCiAgICAvLyAgIG5hbWU6ICdyZXBvcnRNb2R1bGVJbnN0RG9uZVJlYWQnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvdGFzay52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgfQogICAgLy8gfSwKICAgIC8vIC8qIOaooeWdl+W8gOWPkeaIkeS8oOmYheWIl+ihqOi3s+i9rCAqLwogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3N5c01vZHVsZUluc3RNeVJlYWQvOmluc3RJZC86cmVhZElkLzpteVJlYWRUeXBlLzpkZWZLZXknLAogICAgLy8gICBuYW1lOiAnc3lzTW9kdWxlSW5zdE15UmVhZCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAogICAgLy8gLyog5pWw5o2u5oql6KGo5qih5Z2X5byA5Y+R5oiR5Lyg6ZiF5YiX6KGo6Lez6L2sICovCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvcmVwb3J0TW9kdWxlSW5zdE15UmVhZC86aW5zdElkLzpyZWFkSWQvOm15UmVhZFR5cGUvOmRlZktleS86dGVtcGxhdGVLZXknLAogICAgLy8gICBuYW1lOiAncmVwb3J0TW9kdWxlSW5zdE15UmVhZCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAogICAgLy8gLy/mqKHlnZflvIDlj5HmiJHkvKDpmIXnmoTliJfooajot7PovawKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9zeXNNb2R1bGVJbnN0UmVhZC86aW5zdElkLzpteVJlYWRUeXBlLzpkZWZLZXknLAogICAgLy8gICBuYW1lOiAnc3lzTW9kdWxlSW5zdFJlYWQnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvdGFzay52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgfQogICAgLy8gfSwKICAgIC8vIC8v5pWw5o2u5oql6KGo5qih5Z2X5byA5Y+R5oiR5Lyg6ZiF55qE5YiX6KGo6Lez6L2sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvcmVwb3J0TW9kdWxlSW5zdFJlYWQvOmluc3RJZC86bXlSZWFkVHlwZS86ZGVmS2V5Lzp0ZW1wbGF0ZUtleScsCiAgICAvLyAgIG5hbWU6ICdyZXBvcnRNb2R1bGVJbnN0UmVhZEp1bXAnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvdGFzay52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgfQogICAgLy8gfSwKCiAgICAvLyAvKiDlt7LpmIXliJfooajot7PovawgKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9pbnN0LzppbnN0SWQvOnR5cGUvOnJlYWRUeXBlLzpyZWFkRG9uZUlkJywKICAgIC8vICAgbmFtZTogJ2luc3RSZWFkLWRvbmUnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvdGFzay52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCgogICAgLy8gLyog5oiR5Lyg6ZiF55qE5YiX6KGo6Lez6L2sICovCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvbXlSZWFkLzppbnN0SWQvOnJlYWRJZC86bXlSZWFkVHlwZScsCiAgICAvLyAgIG5hbWU6ICdteVJlYWQtdHlwZScsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9pbnN0UmVhZC86aW5zdElkLzpteVJlYWRUeXBlJywKICAgIC8vICAgbmFtZTogJ2luc3RSZWFkJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3Rhc2sudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlCiAgICAvLyB9LAoKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy90YXNrUmVhZC86dGFza0lkLzp0YXNrX3N0YXRlJywKICAgIC8vICAgbmFtZTogJ3Rhc2tSZWFkJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3Rhc2sudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2luc3QvOmluc3RJZCcsCiAgICAvLyAgIG5hbWU6ICdkZWZhdWx0SW5zdCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIC8vIHsKICAgIC8vIC8vICAgcGF0aDogJy90YXNrLzp0YXNrSWQvOmxlYWRlcklkJywKICAgIC8vIC8vICAgbmFtZTogJ3Rhc2snLAogICAgLy8gLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvdGFzay52dWUnKSwKICAgIC8vIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvdGFzay86dGFza0lkLzpsZWFkZXJJZCcsCiAgICAvLyAgIG5hbWU6ICd0YXNrJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9mbG93L3Rhc2tGbG93Q29tcG9uZW50cy9mbG93VGFzay52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyAvKiDot7Povazku7vliqHor6bmg4UgKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9pbnN0LzppbnN0SWQvOnR5cGUnLAogICAgLy8gICBuYW1lOiAnaW5zdCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrRmxvd0NvbXBvbmVudHMvZmxvd1Rhc2sudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3Rhc2svOnRhc2tJZC86bGVhZGVySWQvOm5vU2luZ2xlJywKICAgIC8vICAgbmFtZTogJ3Rhc2tOb3NpbmdsZScsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAoKICAgIC8vIC8qIOmCrueusemhtemdouW8gOWniyAqLwogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3YtbWFpbCcsCiAgICAvLyAgIGNvbXBvbmVudDogbWVudUNvbnRlbnQsCiAgICAvLyAgIGNoaWxkcmVuOiBbewogICAgLy8gICAgICAgcGF0aDogJy8nLAogICAgLy8gICAgICAgbmFtZTogJ21haWxMaXN0LWRlZmF1bHQnLAogICAgLy8gICAgICAgcmVkaXJlY3Q6ICd2LW1haWxMaXN0JwogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3YtbWFpbExpc3QnLAogICAgLy8gICAgICAgbmFtZTogJ21haWxMaXN0JywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvbWFpbC9tYWlsTGlzdC52dWUnKQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3YtbGlua21hbkxpc3QnLAogICAgLy8gICAgICAgbmFtZTogJ2xpbmttYW5MaXN0JywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvbWFpbC9tYWlsTGlua21hbkxpc3QudnVlJykKICAgIC8vICAgICB9LAogICAgLy8gICAgIHsKICAgIC8vICAgICAgIHBhdGg6ICd2LXNldHRpbmdMaXN0JywKICAgIC8vICAgICAgIG5hbWU6ICdzZXR0aW5nTGlzdCcsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL21haWwvbWFpbFNldHRpbmdMaXN0LnZ1ZScpCiAgICAvLyAgICAgfQogICAgLy8gICBdCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL21haWwvbWFpbEdldC86aWQnLAogICAgLy8gICBuYW1lOiAnbWFpbEdldCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvbWFpbC9tYWlsR2V0LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9tYWlsL21haWxBZGQnLAogICAgLy8gICBuYW1lOiAnbWFpbEFkZCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvbWFpbC9tYWlsQWRkLnZ1ZScpCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL21haWwvbWFpbEVkaXQvOmlkJywKICAgIC8vICAgbmFtZTogJ21haWxFZGl0JywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9tYWlsL21haWxFZGl0LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9tYWlsL2xpbmttYW5FZGl0LzppZCcsCiAgICAvLyAgIG5hbWU6ICdtYWlsTGlua21hbkVkaXQnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL21haWwvbWFpbExpbmttYW5FZGl0LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9tYWlsL2xpbmttYW5HZXQvOmlkJywKICAgIC8vICAgbmFtZTogJ21haWxMaW5rbWFuR2V0JywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9tYWlsL21haWxMaW5rbWFuR2V0LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9tYWlsL3NldHRpbmdBZGQnLAogICAgLy8gICBuYW1lOiAnbWFpbFNldHRpbmdBZGQnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL21haWwvbWFpbFNldHRpbmdBZGQudnVlJykKICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvbWFpbC9zZXR0aW5nRWRpdC86aWQnLAogICAgLy8gICBuYW1lOiAnbWFpbFNldHRpbmdFZGl0JywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9tYWlsL21haWxTZXR0aW5nRWRpdC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvbWFpbC9zZXR0aW5nR2V0LzppZCcsCiAgICAvLyAgIG5hbWU6ICdtYWlsU2V0dGluZ0dldCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvbWFpbC9tYWlsU2V0dGluZ0dldC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyAvKiDpgq7nrrHpobXpnaLnu5PmnZ8qLwoKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy92LXBlcnNvbmFsJywKICAgIC8vICAgY29tcG9uZW50OiBtZW51Q29udGVudCwKICAgIC8vICAgY2hpbGRyZW46IFt7CiAgICAvLyAgICAgICBwYXRoOiAnLycsCiAgICAvLyAgICAgICBuYW1lOiAnYXBwcm92YWxJdGVtLWRlZmF1bHQnLAogICAgLy8gICAgICAgcmVkaXJlY3Q6ICd2LWFwcHJvdmFsSXRlbScKICAgIC8vICAgICB9LAogICAgLy8gICAgIHsKICAgIC8vICAgICAgIHBhdGg6ICd2LWFwcHJvdmFsSXRlbScsCiAgICAvLyAgICAgICBuYW1lOiAnYXBwcm92YWxJdGVtTGlzdCcsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAvLyAgICAgICAgIGltcG9ydCgnQC9jb21wb25lbnRzL2FwcHJvdmFsSXRlbS9hcHByb3ZhbEl0ZW1MaXN0LnZ1ZScpCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1hZ2VudCcsCiAgICAvLyAgICAgICBuYW1lOiAnYWdlbnRMaXN0JywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvYWdlbnQvYWdlbnRMaXN0LnZ1ZScpCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1zZWNyZXRhcnknLAogICAgLy8gICAgICAgbmFtZTogJ3NlY3JldGFyeScsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL3NlY3JldGFyeS9zZWNyZXRhcnlMaXN0LnZ1ZScpCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1icG1EZXB1dHknLAogICAgLy8gICAgICAgbmFtZTogJ2JwbURlcHV0eScsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2JwbURlcHV0eS9icG1EZXB1dHlMaXN0LnZ1ZScpCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndi1teUxheW91dCcsCiAgICAvLyAgICAgICBuYW1lOiAnbXlMYXlvdXQnLAogICAgLy8gICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9teUxheW91dC9teUxheW91dExpc3QudnVlJykKICAgIC8vICAgICB9LAogICAgLy8gICAgIHsKICAgIC8vICAgICAgIHBhdGg6ICd2LW1lc3NhZ2VSZWNlaXZlcicsCiAgICAvLyAgICAgICBuYW1lOiAnbWVzc2FnZVJlY2VpdmVyTGlzdCcsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAvLyAgICAgICAgIGltcG9ydCgnQC9jb21wb25lbnRzL21lc3NhZ2UvbWVzc2FnZVJlY2VpdmVyTGlzdC52dWUnKQogICAgLy8gICAgIH0KICAgIC8vICAgXQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy92LWFwcHJvdmFsSXRlbScsCiAgICAvLyAgIG5hbWU6ICdhcHByb3ZhbEl0ZW0nLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2FwcHJvdmFsSXRlbS9hcHByb3ZhbEl0ZW1MaXN0LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9hcHByb3ZhbEl0ZW0vYXBwcm92YWxJdGVtRWRpdC86aWQnLAogICAgLy8gICBuYW1lOiAnYXBwcm92YWxJdGVtRWRpdCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvYXBwcm92YWxJdGVtL2FwcHJvdmFsSXRlbUVkaXQudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2FwcHJvdmFsSXRlbS9hcHByb3ZhbEl0ZW1BZGQnLAogICAgLy8gICBuYW1lOiAnYXBwcm92YWxJdGVtQWRkJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9hcHByb3ZhbEl0ZW0vYXBwcm92YWxJdGVtRWRpdC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvYXBwcm92YWxJdGVtL2FwcHJvdmFsSXRlbUdldC86aWQnLAogICAgLy8gICBuYW1lOiAnYXBwcm92YWxJdGVtR2V0JywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9hcHByb3ZhbEl0ZW0vYXBwcm92YWxJdGVtR2V0LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy92LWFnZW50JywKICAgIC8vICAgbmFtZTogJ2FnZW50JywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9hZ2VudC9hZ2VudExpc3QudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2FnZW50L2FnZW50QWRkJywKICAgIC8vICAgbmFtZTogJ2FnZW50QWRkJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9hZ2VudC9hZ2VudEFkZC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvYWdlbnQvYWdlbnRFZGl0LzppZCcsCiAgICAvLyAgIG5hbWU6ICdhZ2VudEVkaXQnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2FnZW50L2FnZW50RWRpdC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvYWdlbnQvYWdlbnRHZXQvOmlkJywKICAgIC8vICAgbmFtZTogJ2FnZW50R2V0JywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9hZ2VudC9hZ2VudEdldC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvc2VjcmV0YXJ5L3NlY3JldGFyeUVkaXQvOmlkJywKICAgIC8vICAgbmFtZTogJ3NlY3JldGFyeUVkaXQnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL3NlY3JldGFyeS9zZWNyZXRhcnlFZGl0LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJ3YtYnBtRGVwdXR5JywKICAgIC8vICAgbmFtZTogJ2JwbURlcHV0eUxpc3QnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2JwbURlcHV0eS9icG1EZXB1dHlMaXN0LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9icG1EZXB1dHkvYnBtRGVwdXR5U2V0dGluZy8nLAogICAgLy8gICBuYW1lOiAnYnBtRGVwdXR5U2V0dGluZycsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvYnBtRGVwdXR5L2JwbURlcHV0eVNldHRpbmcudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2JwbURlcHV0eS9icG1EZXB1dHlTZXR0aW5nLzppZCcsCiAgICAvLyAgIG5hbWU6ICdicG1EZXB1dHlTZXR0aW5nLWlkJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9icG1EZXB1dHkvYnBtRGVwdXR5U2V0dGluZy52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyAvKiDot7PovazmlrDpl7vliqjmgIHliJfooaggKi8KICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9uZXdzTGlzdC86dHlwZScsCiAgICAvLyAgIG5hbWU6ICduZXdzTGlzdCcsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvbmV3cy9uZXdzTGlzdC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvbmV3cy86bmV3c0lkJywKICAgIC8vICAgbmFtZTogJ25ld3NHZXQnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL25ld3MvbmV3c0dldC52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyAvLyDpooTop4jmlofku7YKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9wZGYvOnNyYy86ZmlsZUlkJywKICAgIC8vICAgbmFtZTogJ3BkZicsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvY29tbW9uL3BkZi52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgfQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9pZnJhbWVTcmMvOmlmcmFtZVNyYy86ZmlsZUlkJywKICAgIC8vICAgbmFtZTogJ2lmcmFtZVNyYycsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvY29tbW9uL2lmcmFtZVNyYy52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgfQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9wcmV2aWV3Rm9ybS86Zm9ybUlkJywKICAgIC8vICAgbmFtZTogJ3ByZXZpZXdGb3JtJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9jb21tb24vcHJldmlld0Zvcm0udnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvcHJldmlld0Zvcm0vOmZvcm1JZC86c2luZ2xlJywKICAgIC8vICAgbmFtZTogJ3ByZXZpZXdGb3JtLXNpbmdsZScsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvY29tbW9uL3ByZXZpZXdGb3JtLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3ByZXZpZXdJbnN0Rm9ybS86ZGVmSWQvOmluc3RJZCcsCiAgICAvLyAgIG5hbWU6ICdwcmV2aWV3SW5zdEZvcm0nLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2NvbW1vbi9wcmV2aWV3SW5zdEZvcm0udnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvUVJDb2RlRm9ybS86dGVtcGxhdGVLZXkvOmFjdGlvbicsCiAgICAvLyAgIG5hbWU6ICdRUkNvZGVGb3JtJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9kYXRhVGVtcGxhdGUvUVJDb2RlRm9ybS52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgfQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9zdGF0ZW1lbnQnLAogICAgLy8gICBuYW1lOiAnc3RhdGVtZW50JywKICAgIC8vICAgY29tcG9uZW50OiBTdGF0ZW1lbnQsCiAgICAvLyAgIGNoaWxkcmVuOiBbewogICAgLy8gICAgICAgcGF0aDogJy8nLAogICAgLy8gICAgICAgbmFtZTogJ3RlbXBsYXRlLWRlZmF1bHQnLAogICAgLy8gICAgICAgcmVkaXJlY3Q6ICcvc3RhdGVtZW50L2RyYWZ0TGlzdCcKICAgIC8vICAgICB9LAogICAgLy8gICAgIHsKICAgIC8vICAgICAgIHBhdGg6ICdkcmFmdExpc3QvOnRlbXBBbGlhcy86ZGF0YVZpZXdGbGFnJywKICAgIC8vICAgICAgIG5hbWU6ICd0ZW1wbGF0ZURyYWZ0TGlzdCcsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAvLyAgICAgICAgIGltcG9ydCgnQC9jb21wb25lbnRzL2RhdGFUZW1wbGF0ZS9UZW1wbGF0ZURyYWZ0LnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUsCiAgICAvLyAgICAgICBtZXRhOiB7CiAgICAvLyAgICAgICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICAgICAgfQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJy9ocmVmL3RlbXBsYXRlLzphbGlhcycsCiAgICAvLyAgICAgICBuYW1lOiAndGVtcGxhdGVIcmVmJywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZGF0YVRlbXBsYXRlL3RlbXBsYXRlSHJlZi52dWUnKSwKICAgIC8vICAgICAgIHByb3BzOiB0cnVlCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndGVtcGxhdGUvcHJldmlldy86dGVtcGxhdGVLZXknLAogICAgLy8gICAgICAgbmFtZTogJ3RlbXBsYXRlUHJldmlldycsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+CiAgICAvLyAgICAgICAgIGltcG9ydCgnQC9jb21wb25lbnRzL2RhdGFUZW1wbGF0ZS90ZW1wbGF0ZVByZXZpZXcudnVlJyksCiAgICAvLyAgICAgICBwcm9wczogdHJ1ZQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3RlbXBsYXRlL3ByZXZpZXcvOnRlbXBsYXRlS2V5LzpzaW5nbGUnLAogICAgLy8gICAgICAgbmFtZTogJ3RlbXBsYXRlUHJldmlldy1zaW5nbGUnLAogICAgLy8gICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgLy8gICAgICAgICBpbXBvcnQoJ0AvY29tcG9uZW50cy9kYXRhVGVtcGxhdGUvdGVtcGxhdGVQcmV2aWV3LnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUsCiAgICAvLyAgICAgICBtZXRhOiB7CiAgICAvLyAgICAgICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICAgICAgfQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3RlbXBsYXRlL3ByZXZpZXcvOnRlbXBsYXRlS2V5LzpzaW5nbGUvOnBhcmFtZXRlcnFRdWVyeXMnLAogICAgLy8gICAgICAgbmFtZTogJ3RlbXBsYXRlUHJldmlldy1zaW5nbGVRdWVyeXMnLAogICAgLy8gICAgICAgY29tcG9uZW50OiAoKSA9PgogICAgLy8gICAgICAgICBpbXBvcnQoJ0AvY29tcG9uZW50cy9kYXRhVGVtcGxhdGUvdGVtcGxhdGVQcmV2aWV3LnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUsCiAgICAvLyAgICAgICBtZXRhOiB7CiAgICAvLyAgICAgICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICAgICAgfQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3RlbXBsYXRlL3ByZXZpZXcvOnRlbXBsYXRlS2V5Lzp0YXNrVHlwZS86ZGVmS2V5Lzppc0pvaW5GbG93JywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4KICAgIC8vICAgICAgICAgaW1wb3J0KCdAL2NvbXBvbmVudHMvZGF0YVRlbXBsYXRlL3RlbXBsYXRlUHJldmlldy52dWUnKSwKICAgIC8vICAgICAgIHByb3BzOiB0cnVlLAogICAgLy8gICAgICAgbWV0YTogewogICAgLy8gICAgICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgICAgIH0KICAgIC8vICAgICB9LAogICAgLy8gICAgIHsKICAgIC8vICAgICAgIHBhdGg6ICd0ZW1wbGF0ZS9mb3JtLzp0ZW1wbGF0ZUtleS86YWN0aW9uJywKICAgIC8vICAgICAgIG5hbWU6ICd0ZW1wbGF0ZUZvcm0nLAogICAgLy8gICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9kYXRhVGVtcGxhdGUvdGVtcGxhdGVGb3JtLnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUKICAgIC8vICAgICB9LAogICAgLy8gICAgIHsKICAgIC8vICAgICAgIHBhdGg6ICd0ZW1wbGF0ZS9mb3JtLzp0ZW1wbGF0ZUtleS86YWN0aW9uLzpzaW5nbGUnLAogICAgLy8gICAgICAgbmFtZTogJ3RlbXBsYXRlRm9ybVNpbmdsZScsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2RhdGFUZW1wbGF0ZS90ZW1wbGF0ZUZvcm0udnVlJyksCiAgICAvLyAgICAgICBwcm9wczogdHJ1ZSwKICAgIC8vICAgICAgIG1ldGE6IHsKICAgIC8vICAgICAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgICAgICB9CiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAndGVtcGxhdGUvZm9ybS86dGVtcGxhdGVLZXkvOmFjdGlvbi86c2luZ2xlLzpvcGVuVHlwZScsCiAgICAvLyAgICAgICBuYW1lOiAndGVtcGxhdGVGb3JtU2luZ2xlT3BlblR5cGUnLAogICAgLy8gICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9kYXRhVGVtcGxhdGUvdGVtcGxhdGVGb3JtLnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUsCiAgICAvLyAgICAgICBtZXRhOiB7CiAgICAvLyAgICAgICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICAgICAgfQogICAgLy8gICAgIH0sCiAgICAvLyAgICAgewogICAgLy8gICAgICAgcGF0aDogJ3RlbXBsYXRlL2Zvcm0vOnRlbXBsYXRlS2V5LzphY3Rpb24vOnNpbmdsZS86aXNTaGFyZScsCiAgICAvLyAgICAgICBuYW1lOiAndGVtcGxhdGVTaGFyZScsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2RhdGFUZW1wbGF0ZS90ZW1wbGF0ZUZvcm0udnVlJyksCiAgICAvLyAgICAgICBwcm9wczogdHJ1ZSwKICAgIC8vICAgICAgIG1ldGE6IHsKICAgIC8vICAgICAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgICAgICB9CiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAncXVlcnlTcWwvcXVlcnlWaWV3LzpzcWxBbGlhcy86YWxpYXMnLAogICAgLy8gICAgICAgbmFtZTogJ3F1ZXJ5U3FsQ29udGVudCcsCiAgICAvLyAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL3F1ZXJ5U3FsL3F1ZXJ5U3FsQ29udGVudC52dWUnKSwKICAgIC8vICAgICAgIHByb3BzOiB0cnVlCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB7CiAgICAvLyAgICAgICBwYXRoOiAncXVlcnlTcWwvcXVlcnlWaWV3LzpzcWxBbGlhcy86YWxpYXMvOnNpbmdsZScsCiAgICAvLyAgICAgICBuYW1lOiAncXVlcnlTcWwtc2luZ2xlJywKICAgIC8vICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvcXVlcnlTcWwvcXVlcnlTcWxDb250ZW50LnZ1ZScpLAogICAgLy8gICAgICAgcHJvcHM6IHRydWUsCiAgICAvLyAgICAgICBtZXRhOiB7CiAgICAvLyAgICAgICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICAgICAgfQogICAgLy8gICAgIH0KICAgIC8vICAgXQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9zeXNNb2R1bGVQcmV2aWV3L3N0YXRlbWVudCcsIC8v55So5p2l5Yy65YiG5piv5ZCm5piv5qih5Z2X5byA5Y+R6YeM6Z2i55qE6KGo5Y2V5YiX6KGoCiAgICAvLyAgIG5hbWU6ICdzeXNNb2R1bGVQcmV2aWV3U3RhdGVtZW50JywKICAgIC8vICAgY29tcG9uZW50OiBTdGF0ZW1lbnQsCiAgICAvLyAgIGNoaWxkcmVuOiBbewogICAgLy8gICAgIHBhdGg6ICd0ZW1wbGF0ZS9wcmV2aWV3Lzp0ZW1wbGF0ZUtleS86c2luZ2xlLzppc0pvaW5GbG93JywKICAgIC8vICAgICBuYW1lOiAnc3lzTW9kdWxlUHJldmlld1N0YXRlbWVudC1zaW5nbGUnLAogICAgLy8gICAgIGNvbXBvbmVudDogKCkgPT4KICAgIC8vICAgICAgIGltcG9ydCgnQC9jb21wb25lbnRzL2RhdGFUZW1wbGF0ZS90ZW1wbGF0ZVByZXZpZXcudnVlJyksCiAgICAvLyAgICAgcHJvcHM6IHRydWUsCiAgICAvLyAgICAgbWV0YTogewogICAgLy8gICAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgICAgfQogICAgLy8gICB9XQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9jb2x1bW4vcHJldmlldy86cHJldmlld0FsaWFzJywKICAgIC8vICAgbmFtZTogJ2NvbHVtbnByZXZpZXcnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC92aWV3cy9Db2x1bW5QcmV2aWV3LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL29ubGluZUZvcm0nLAogICAgLy8gICBuYW1lOiAnb25saW5lRm9ybScsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy9PbmxpbmVGb3JtLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIC8qIOW3suWKnue7k+a1geeoiyAqLwogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2NvbXBsZXRlVmlldy86cHJvY0RlZktleScsCiAgICAvLyAgIG5hbWU6ICdjb21wbGV0ZVZpZXcnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2Zsb3cvY29tcGxldGVWaWV3LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZQogICAgLy8gfSwKICAgIC8vIC8qIOWKnue7k+a1geeoi++8jOWPquivu+ihqOWNlSAqLwogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2RvbmVSZWFkT25seS86aW5zdElkJywKICAgIC8vICAgbmFtZTogJ2RvbmVSZWFkT25seScsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvZmxvdy90YXNrL2RvbmVSZWFkT25seS52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUKICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvYXBwQ2VudGVyRnJvbnQnLAogICAgLy8gICBuYW1lOiAnYXBwQ2VudGVyJywKICAgIC8vICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJ0AvY29tcG9uZW50cy9hcHBDZW50ZXIvQXBwQ2VudGVyLnZ1ZScpCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2FwcENvbnRlbnQvOnR5cGUvOmlkLzpvdGhlcklkLzphcHBOYW1lJywKICAgIC8vICAgbmFtZTogJ2FwcENvbnRlbnQnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC9jb21wb25lbnRzL2FwcENlbnRlci9BcHBDb250ZW50LnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL3dlYk9mZmljZS86ZmlsZUlkLzppc1JldmlzaW9uLzppbnB1dFdyaXRlYWJsZScsCiAgICAvLyAgIG5hbWU6ICd3ZWJPZmZpY2UnLAogICAgLy8gICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnQC92aWV3cy9XZWJPZmZpY2UudnVlJyksCiAgICAvLyAgIHByb3BzOiB0cnVlLAogICAgLy8gICBtZXRhOiB7CiAgICAvLyAgICAgc2luZ2xlOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIHBhdGg6ICcvbmF2aWdhdGlvbk1zZy86dHlwZS86aWQnLAogICAgLy8gICBuYW1lOiAnbmF2aWdhdGlvbk1zZycsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL2NvbXBvbmVudHMvaG9tZS9uYXZpZ2F0aW9uTXNnLnZ1ZScpLAogICAgLy8gICBwcm9wczogdHJ1ZSwKICAgIC8vICAgbWV0YTogewogICAgLy8gICAgIHNpbmdsZTogdHJ1ZQogICAgLy8gICB9CiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBwYXRoOiAnL2ZpbGUvcHJldmlldy86ZmlsZUlkJywKICAgIC8vICAgbmFtZTogJ2F0dGFuY2htZW50UHJldmlldycsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL3ZpZXdzL0F0dGFuY2htZW50UHJldmlldy52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUKICAgIC8vICAgfQogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgcGF0aDogJy9tZXNzYWdlRmlsbFBhZ2UvOnRpcElkJywKICAgIC8vICAgbmFtZTogJ21lc3NhZ2VGaWxsUGFnZScsCiAgICAvLyAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCdAL3ZpZXdzL01lc3NhZ2VGaWxsUGFnZS52dWUnKSwKICAgIC8vICAgcHJvcHM6IHRydWUsCiAgICAvLyAgIG1ldGE6IHsKICAgIC8vICAgICBzaW5nbGU6IHRydWUsCiAgICAvLyAgICAgYW5vbnltb3VzOiB0cnVlCiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICB7CiAgICAgIHBhdGg6ICcqJywKICAgICAgY29tcG9uZW50OiBOb3RGb3VuZCwKICAgICAgbWV0YTogewogICAgICAgIHNpbmdsZTogdHJ1ZQogICAgICB9CiAgICB9CiAgICAvLyAuLi5mbG93Zm9ybVJvdXRlcgogICAgXSkKICB9XSkKfSk7CnZhciBjcmVhdGVSb3V0ZXIgPSBmdW5jdGlvbiBjcmVhdGVSb3V0ZXIoKSB7CiAgcmV0dXJuIG5ldyBSb3V0ZXIoewogICAgbW9kZTogJ2hpc3RvcnknLAogICAgcm91dGVzOiBbXQogIH0pOwp9OwoKLy/ph43lhpnliqjmgIHmt7vliqDot6/nlLHmlrnms5UKcm91dGVyLiRhZGRSb3V0ZXMgPSBmdW5jdGlvbiAocGFyYW1zKSB7CiAgdmFyIG5ld1JvdXRlciA9IGNyZWF0ZVJvdXRlcigpOwogIHJvdXRlci5tYXRjaGVyID0gbmV3Um91dGVyLm1hdGNoZXI7IC8v6YeN572u6Lev55Sx6KeE5YiZCiAgcm91dGVyLmFkZFJvdXRlcyhwYXJhbXMpOyAvLyDmt7vliqDot6/nlLEKfTsKCi8v5Yqo5oCB5paw5aKe5LqM57qn6Lev55SxCnJvdXRlci5hZGRMaXN0ID0gZnVuY3Rpb24gKHBhdGgsIGxpc3QpIHsKICB2YXIgaXNBZGRQYXRoID0gZmFsc2U7CiAgdmFyIGlzQ2hpbGRyZW4gPSBmYWxzZTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHsKICAgIC8v5Yik5pat5b2T5YmN54K55Ye76I+c5Y2V55qE6Lev55Sx5Yir5ZCN5piv5ZCm5a2Y5ZyoIHJvdXRlci5qcyDph4zpnaIKICAgIGlmIChwYXRoID09IGxpc3RbaV0ucGF0aCkgewogICAgICAvL+WtmOWcqAogICAgICAvL+WKqOaAgeazqOWGjOi3r+eUsQogICAgICB2YXIgaW5kZXggPSBwYXRoLnJlcGxhY2UoJy8nLCAnJyk7CiAgICAgIHZhciB0ZW1wbGF0ZVByZXZpZXdfbmV3ID0gewogICAgICAgIHBhdGg6ICd0ZW1wbGF0ZS9wcmV2aWV3Lzp0ZW1wbGF0ZUtleScsCiAgICAgICAgbmFtZTogJ3RlbXBsYXRlUHJldmlld18nICsgaW5kZXgsCiAgICAgICAgcHJvcHM6IHRydWUsCiAgICAgICAgY29tcG9uZW50OiBmdW5jdGlvbiBjb21wb25lbnQocmVzb2x2ZSkgewogICAgICAgICAgcmV0dXJuIHJlcXVpcmUoWydAL2NvbXBvbmVudHMvZGF0YVRlbXBsYXRlL3RlbXBsYXRlUHJldmlldy52dWUnXSwgcmVzb2x2ZSk7CiAgICAgICAgfQogICAgICB9OyAvL+aVsOaNruaKpeihqAogICAgICB2YXIgdGVtcGxhdGVIcmVmX25ldyA9IHsKICAgICAgICBwYXRoOiAnaHJlZi90ZW1wbGF0ZS86YWxpYXMnLAogICAgICAgIG5hbWU6ICd0ZW1wbGF0ZUhyZWZfJyArIGluZGV4LAogICAgICAgIHByb3BzOiB0cnVlLAogICAgICAgIGNvbXBvbmVudDogZnVuY3Rpb24gY29tcG9uZW50KHJlc29sdmUpIHsKICAgICAgICAgIHJldHVybiByZXF1aXJlKFsnQC9jb21wb25lbnRzL2RhdGFUZW1wbGF0ZS90ZW1wbGF0ZUhyZWYudnVlJ10sIHJlc29sdmUpOwogICAgICAgIH0KICAgICAgfTsgLy9VUkzoj5zljZUKICAgICAgdmFyIHF1ZXJ5U3FsX25ldyA9IHsKICAgICAgICBwYXRoOiAncXVlcnlTcWwvcXVlcnlWaWV3LzpzcWxBbGlhcy86YWxpYXMnLAogICAgICAgIG5hbWU6ICdxdWVyeVNxbF8nICsgaW5kZXgsCiAgICAgICAgcHJvcHM6IHRydWUsCiAgICAgICAgY29tcG9uZW50OiBmdW5jdGlvbiBjb21wb25lbnQocmVzb2x2ZSkgewogICAgICAgICAgcmV0dXJuIHJlcXVpcmUoWydAL2NvbXBvbmVudHMvcXVlcnlTcWwvcXVlcnlTcWxDb250ZW50LnZ1ZSddLCByZXNvbHZlKTsKICAgICAgICB9CiAgICAgIH07IC8v6Ieq5a6a5LmJ6KeG5Zu+CiAgICAgIHZhciB0ZW1wbGF0ZV9uZXcgPSB7CiAgICAgICAgcGF0aDogJ3RlbXBsYXRlL2Zvcm0vOnRlbXBsYXRlS2V5LzphY3Rpb24nLAogICAgICAgIG5hbWU6ICd0ZW1wbGF0ZV8nICsgaW5kZXgsCiAgICAgICAgcHJvcHM6IHRydWUsCiAgICAgICAgY29tcG9uZW50OiBmdW5jdGlvbiBjb21wb25lbnQocmVzb2x2ZSkgewogICAgICAgICAgcmV0dXJuIHJlcXVpcmUoWydAL2NvbXBvbmVudHMvZGF0YVRlbXBsYXRlL3RlbXBsYXRlRm9ybS52dWUnXSwgcmVzb2x2ZSk7CiAgICAgICAgfQogICAgICB9OyAvL+aVsOaNruaKpeihqAogICAgICB2YXIgZHJhZnRMaXN0X25ldyA9IHsKICAgICAgICBwYXRoOiAnZHJhZnRMaXN0Lzp0ZW1wQWxpYXMvOmRhdGFWaWV3RmxhZycsCiAgICAgICAgbmFtZTogJ3RlbXBsYXRlXycgKyBpbmRleCwKICAgICAgICBwcm9wczogdHJ1ZSwKICAgICAgICBjb21wb25lbnQ6IGZ1bmN0aW9uIGNvbXBvbmVudChyZXNvbHZlKSB7CiAgICAgICAgICByZXR1cm4gcmVxdWlyZShbJ0AvY29tcG9uZW50cy9kYXRhVGVtcGxhdGUvVGVtcGxhdGVEcmFmdC52dWUnXSwgcmVzb2x2ZSk7CiAgICAgICAgfQogICAgICB9OyAvL+aVsOaNruaKpeihqAogICAgICB2YXIgdGVtcGxhdGVTaW5nbGVfbmV3ID0gewogICAgICAgIHBhdGg6ICd0ZW1wbGF0ZS9mb3JtLzp0ZW1wbGF0ZUtleS86YWN0aW9uLzpzaW5nbGUnLAogICAgICAgIG5hbWU6ICd0ZW1wbGF0ZVNpbmdsZV8nICsgaW5kZXgsCiAgICAgICAgcHJvcHM6IHRydWUsCiAgICAgICAgY29tcG9uZW50OiBmdW5jdGlvbiBjb21wb25lbnQocmVzb2x2ZSkgewogICAgICAgICAgcmV0dXJuIHJlcXVpcmUoWydAL2NvbXBvbmVudHMvZGF0YVRlbXBsYXRlL3RlbXBsYXRlRm9ybS52dWUnXSwgcmVzb2x2ZSk7CiAgICAgICAgfQogICAgICB9OyAvL+aVsOaNruaKpeihqAogICAgICB2YXIgdGVtcGxhdGVRdWVyeXNfbmV3ID0gewogICAgICAgIHBhdGg6ICd0ZW1wbGF0ZS9wcmV2aWV3Lzp0ZW1wbGF0ZUtleS86c2luZ2xlLzpwYXJhbWV0ZXJxUXVlcnlzJywKICAgICAgICBuYW1lOiAndGVtcGxhdGVRdWVyeXNfJyArIGluZGV4LAogICAgICAgIHByb3BzOiB0cnVlLAogICAgICAgIGNvbXBvbmVudDogZnVuY3Rpb24gY29tcG9uZW50KHJlc29sdmUpIHsKICAgICAgICAgIHJldHVybiByZXF1aXJlKFsnQC9jb21wb25lbnRzL2RhdGFUZW1wbGF0ZS90ZW1wbGF0ZVByZXZpZXcudnVlJ10sIHJlc29sdmUpOwogICAgICAgIH0KICAgICAgfTsgLy/mlbDmja7miqXooagKICAgICAgaWYgKGxpc3RbaV0uY2hpbGRyZW4pIHsKICAgICAgICAvL+WIpOaWreaYr+WQpumHjeWkjea3u+WKoOi3r+eUsQogICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGlzdFtpXS5jaGlsZHJlbi5sZW5ndGg7IGorKykgewogICAgICAgICAgdmFyIGNoaWxkcmVuID0gbGlzdFtpXS5jaGlsZHJlbltqXTsKICAgICAgICAgIGlmIChjaGlsZHJlbi5uYW1lID09IHRlbXBsYXRlUHJldmlld19uZXcubmFtZSkgewogICAgICAgICAgICBpc0FkZFBhdGggPSB0cnVlOyAvLyB0cnVlIO+8miDph43lpI3ot6/nlLEKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghaXNBZGRQYXRoKSB7CiAgICAgICAgICBsaXN0W2ldLmNoaWxkcmVuLnB1c2godGVtcGxhdGVQcmV2aWV3X25ldyk7CiAgICAgICAgICBsaXN0W2ldLmNoaWxkcmVuLnB1c2godGVtcGxhdGVIcmVmX25ldyk7CiAgICAgICAgICBsaXN0W2ldLmNoaWxkcmVuLnB1c2gocXVlcnlTcWxfbmV3KTsKICAgICAgICAgIGxpc3RbaV0uY2hpbGRyZW4ucHVzaCh0ZW1wbGF0ZV9uZXcpOwogICAgICAgICAgbGlzdFtpXS5jaGlsZHJlbi5wdXNoKHRlbXBsYXRlU2luZ2xlX25ldyk7CiAgICAgICAgICBsaXN0W2ldLmNoaWxkcmVuLnB1c2godGVtcGxhdGVRdWVyeXNfbmV3KTsKICAgICAgICAgIGxpc3RbaV0uY2hpbGRyZW4ucHVzaChkcmFmdExpc3RfbmV3KTsKICAgICAgICAgIHJvdXRlci4kYWRkUm91dGVzKGxpc3QpOwogICAgICAgIH0KICAgICAgICBpc0NoaWxkcmVuID0gdHJ1ZTsKICAgICAgICBicmVhazsKICAgICAgfSBlbHNlIGlzQ2hpbGRyZW4gPSB0cnVlOwogICAgfQogIH0KICByZXR1cm4gaXNDaGlsZHJlbjsKfTsKdmFyIHJlZ2lzdGVyUm91dGVGcmVzaCA9IHRydWU7CnZhciBzc29SZWRpcmVjdCA9IGZ1bmN0aW9uIHNzb1JlZGlyZWN0KCkgewogIGlmICh3aW5kb3cuc3NvQ29uZmlnLm1vZGUgPT0gJ2NhcycpIHsKICAgIHZhciBzZXJ2aWNlID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2VydmljZScsIHNlcnZpY2UpOwogICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cuc3NvQ29uZmlnLnVybCArICc/c2VydmljZT0nICsgc2VydmljZTsKICB9IGVsc2UgaWYgKHdpbmRvdy5zc29Db25maWcubW9kZSA9PSAnb2F1dGgnKSB7CiAgICBpZiAoIXdpbmRvdy5zc29Db25maWcuY2xpZW50SWQpIHsKICAgICAgdGhyb3cgJ29hdXRo5qih5byP5LiL5b+F6aG75o+Q5L6bY2xpZW50SWQnOwogICAgfQogICAgdmFyIF9zZXJ2aWNlID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2VydmljZScsIF9zZXJ2aWNlKTsKICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gIiIuY29uY2F0KHdpbmRvdy5zc29Db25maWcudXJsLCAiP3Jlc3BvbnNlX3R5cGU9Y29kZSZjbGllbnRfaWQ9IikuY29uY2F0KHdpbmRvdy5zc29Db25maWcuY2xpZW50SWQsICImcmVkaXJlY3RfdXJpPSIpLmNvbmNhdChfc2VydmljZSk7CiAgfQp9Owp2YXIgaGFuZGVsU2hvcnRVcmwgPSBmdW5jdGlvbiBoYW5kZWxTaG9ydFVybCh0bywgZnJvbSwgbmV4dCkgewogIHJlcS5nZXQoJyR7cG9ydGFsfS9wb3J0YWwvc2hvcnR1cmxNYW5hZ2UvdjEvZ2V0TG9uZ1VybEJ5U2hvcnRVcmw/c2hvcnRVcmw9JyArIHRvLmZ1bGxQYXRoLnN1YnN0cigxKSwgJycsIGZhbHNlKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICBpZiAocmVzcCAmJiByZXNwLmRhdGEgJiYgcmVzcC5kYXRhLnN0YXRlKSB7CiAgICAgIHN0b3JlLmRpc3BhdGNoKCdsb2dpbi92YWxpZEFuZENvbXBsZXRlZEN1cnJlbnQnLCByZXNwLmRhdGEudmFsdWUuZ3Vlc3RUb2tlbikudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgbmV4dCh7CiAgICAgICAgICBwYXRoOiByZXNwLmRhdGEudmFsdWUudXJsCiAgICAgICAgfSk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgICBsb2dvdXRBbmRDbGVhblVwKHRvLCBmcm9tLCBuZXh0KTsKICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICBuZXh0KHsKICAgICAgICBwYXRoOiAnL21lc3NhZ2VGaWxsUGFnZS8nICsgcmVzcC5kYXRhLm1lc3NhZ2UKICAgICAgfSk7CiAgICB9CiAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgbG9nb3V0QW5kQ2xlYW5VcCh0bywgZnJvbSwgbmV4dCk7CiAgfSk7Cn07CnZhciBsb2dvdXRBbmRDbGVhblVwID0gZnVuY3Rpb24gbG9nb3V0QW5kQ2xlYW5VcCh0bywgZnJvbSwgbmV4dCkgewogIHN0b3JlLmRpc3BhdGNoKCdsb2dpbi9sb2dvdXRBbmRDbGVhblVwJykudGhlbihmdW5jdGlvbiAoKSB7CiAgICBpZiAod2luZG93LnNzb0NvbmZpZy5tb2RlICYmIHdpbmRvdy5zc29Db25maWcubW9kZSAhPSAnand0JyAmJiAhdGlja2V0KSB7CiAgICAgIHNzb1JlZGlyZWN0KCk7CiAgICB9IGVsc2UgaWYgKCF3aW5kb3cuc3NvQ29uZmlnLm1vZGUgfHwgd2luZG93LnNzb0NvbmZpZy5tb2RlID09ICdqd3QnKSB7CiAgICAgIG5leHQoewogICAgICAgIHBhdGg6ICcvbG9naW4nLAogICAgICAgIHF1ZXJ5OiB7CiAgICAgICAgICByZWRpcmVjdDogdG8uZnVsbFBhdGgKICAgICAgICB9CiAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgJ+eZu+W9leWksei0pSc7CiAgICB9CiAgfSk7Cn07CgovLyDnp7vpmaR1cmzlkI7pnaLnmoTmjIflrprlj4LmlbAKdmFyIHJlbW92ZVVybFBhcmFtcyA9IGZ1bmN0aW9uIHJlbW92ZVVybFBhcmFtcyhwYXJhbSkgewogIHZhciBxdWVyeSA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpOwogIGlmICghcXVlcnkpIHsKICAgIHJldHVybjsKICB9CiAgdmFyIHZhcnMgPSBxdWVyeS5zcGxpdCgnJicpOwogIHZhciBuZXdWYXJzID0gW107CiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YXJzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgcGFpciA9IHZhcnNbaV0uc3BsaXQoJz0nKTsKICAgIGlmIChwYWlyWzBdICE9IHBhcmFtKSB7CiAgICAgIG5ld1ZhcnMucHVzaCh2YXJzW2ldKTsKICAgIH0KICB9CiAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICB2YXIgcGF0aCA9ICIiLmNvbmNhdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLmNvbmNhdChuZXdWYXJzLmxlbmd0aCA+IDAgPyAnPycgOiAnJykuY29uY2F0KG5ld1ZhcnMuam9pbignJicpKTsKICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBudWxsLCBwYXRoKTsKICB9LCAxMDAwKTsKfTsKdmFyIENyeXB0b0pTID0gcmVxdWlyZSgnY3J5cHRvLWpzJyk7IC8v5byV55SoQUVT5rqQ56CBanMKCnZhciBrZXkgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZSgnaUFZR0RDOXhQYkNFYkZ2ZScpOwp2YXIgaXYgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZSgnNXdjUVZsR2VTaGhaMmVKdycpOwoKLy/op6Plr4bmlrnms5UKZnVuY3Rpb24gRGVjcnlwdCh3b3JkKSB7CiAgaWYgKCF3b3JkKSByZXR1cm47CiAgdmFyIGJhc2U2NCA9IENyeXB0b0pTLmVuYy5CYXNlNjQucGFyc2Uod29yZCk7CiAgdmFyIHNyYyA9IENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KGJhc2U2NCk7CiAgY29uc29sZS5sb2coYmFzZTY0LCBzcmMpOwogIHZhciBkZWNyeXB0ID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQoc3JjLCBrZXksIHsKICAgIGl2OiBpdiwKICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLAogICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlplcm9QYWRkaW5nCiAgfSk7CiAgdmFyIGRlY3J5cHRlZFN0ciA9IGRlY3J5cHQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpOwogIHJldHVybiBkZWNyeXB0ZWRTdHIudG9TdHJpbmcoKTsKfQp2YXIgbG9hZGluZ0luc3RhbmNlOwp2YXIgdG9rZW5Mb2dpbiA9IGZ1bmN0aW9uIHRva2VuTG9naW4odXNlckluZm8sIG5leHQpIHsKICBzdG9yZS5kaXNwYXRjaCgnbG9naW4vbG9naW5CeUFjY291bnQnLCB1c2VySW5mbykudGhlbihmdW5jdGlvbiAobG9naW5TdGF0dXMpIHsKICAgIGlmIChsb2dpblN0YXR1cyAmJiBsb2dpblN0YXR1cyA9PSB0cnVlKSB7CiAgICAgIHN0b3JlLmRpc3BhdGNoKCdsb2dpbi9nZXREaWN0JykudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ21lbnUvYWN0aW9uRnJvbnRNZW51cycpOwogICAgICAgIG5leHQoKTsKICAgICAgICByZW1vdmVVcmxQYXJhbXMoJ3Rva2VuJyk7CiAgICAgIH0pOwogICAgfQogIH0pOwp9Owp2YXIgaGFuZGxlQXV0b0xvZ2luID0gZnVuY3Rpb24gaGFuZGxlQXV0b0xvZ2luKGNvZGUsIG5leHQpIHsKICB0b2tlbkxvZ2luKGNvZGUpOwp9Owp2YXIgcGFzc0NvZGVUb09iaiA9IGZ1bmN0aW9uIHBhc3NDb2RlVG9PYmooY29kZSkgewogIHZhciB1c2VyID0ge307CiAgdmFyIHdvcmRzID0gY29kZS5zcGxpdCgnJicpOwogIHdvcmRzLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgIHZhciBkZCA9IGl0ZW0uc3BsaXQoJz0nKTsKICAgIHVzZXJbZGRbMF1dID0gZGRbMV07CiAgfSk7CiAgcmV0dXJuIHVzZXI7Cn07CnZhciBjb2RlTG9naW4gPSBmdW5jdGlvbiBjb2RlTG9naW4oY29kZSwgbmV4dCkgewogIHN0b3JlLmRpc3BhdGNoKCdsb2dpbi9sb2dpbkJ5QWNjb3VudENvZGUnLCBjb2RlKS50aGVuKGZ1bmN0aW9uIChsb2dpblN0YXR1cykgewogICAgaWYgKGxvZ2luU3RhdHVzICYmIGxvZ2luU3RhdHVzID09IHRydWUpIHsKICAgICAgc3RvcmUuZGlzcGF0Y2goJ2xvZ2luL2dldERpY3QnKS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBuZXh0KCk7CiAgICAgIH0pOwogICAgfQogIH0pOwp9Owpyb3V0ZXIuYmVmb3JlRWFjaChmdW5jdGlvbiAodG8sIGZyb20sIG5leHQpIHsKICB2YXIgbW9iaWxlUGF0aCA9IGZhbHNlOwogIGlmICh0by5mdWxsUGF0aC5pbmRleE9mKCdNb2JpbGVNYW5hZ2VIb21lJykgIT09IC0xIHx8IHRvLmZ1bGxQYXRoLmluZGV4T2YoJ01vYmlsZURldmljZUhvbWUnKSAhPT0gLTEpIHsKICAgIG1vYmlsZVBhdGggPSB0cnVlOwogIH0KICBpZiAodG8ucXVlcnkudG9rZW4gJiYgbW9iaWxlUGF0aCkgewogICAgLy8gbGV0IGNvZGUgPSB0by5xdWVyeS5jb2RlCiAgICAvLyBjb2RlTG9naW4oY29kZSwgbmV4dCkKICAgIC8vIHJldHVybgogICAgdmFyIGNvZGUgPSB0by5xdWVyeS50b2tlbjsKICAgIHdoaWxlIChjb2RlLmluZGV4T2YoJyInKSAhPSAtMSkgewogICAgICBjb2RlID0gY29kZS5yZXBsYWNlKCciJywgIiIpOwogICAgfQogICAgdG9rZW5Mb2dpbihjb2RlLCBuZXh0KTsKICAgIHJldHVybjsKICB9CiAgLy8g6KeG56qX5YWN55m76ZmG5Yiw6ZO+5o6l6aG16Z2iIOaQuuW4pnRva2VuS2V5CiAgaWYgKHRvLnF1ZXJ5LnRva2VuKSB7CiAgICB2YXIgX2NvZGUgPSB0by5xdWVyeS50b2tlbjsKICAgIHdoaWxlIChfY29kZS5pbmRleE9mKCciJykgIT0gLTEpIHsKICAgICAgX2NvZGUgPSBfY29kZS5yZXBsYWNlKCciJywgIiIpOwogICAgfQogICAgdG9rZW5Mb2dpbihfY29kZSwgbmV4dCk7CiAgICByZXR1cm47CiAgfQogIHN0b3JlLmRpc3BhdGNoKCdtZW51L2dldEFsbG1lbnVzJywge30pLnRoZW4oZnVuY3Rpb24gKG1lbnVzKSB7CiAgICAvL2hyZWboj5zljZXkuI3ov5vov5nmrrXku6PnoIEKICAgIGlmICh0by5mdWxsUGF0aC5pbmRleE9mKCdocmVmJykgPT0gLTEpIHsKICAgICAgdmFyIGFsaWFzID0gdG8uZnVsbFBhdGguc3BsaXQoJy8nKVsxXTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChtZW51c1tpXS5hbGlhcyA9PT0gYWxpYXMpIHsKICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCdtZW51L2dldEN1cnJlbnRNZW51JywgewogICAgICAgICAgICBhbGlhczogbWVudXNbaV0uYWxpYXMsCiAgICAgICAgICAgIG5hbWU6IG1lbnVzW2ldLm5hbWUKICAgICAgICAgIH0pOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSk7CiAgaWYgKHRvLmZ1bGxQYXRoLnN0YXJ0c1dpdGgoJy9zdXJsLycpKSB7CiAgICBoYW5kZWxTaG9ydFVybCh0bywgZnJvbSwgbmV4dCk7CiAgICByZXR1cm47CiAgfQoKICAvLyAxLuW9k+WJjeS4uuWNleeCueeZu+W9leaooeW8j++8jOS4lOimgei3r+eUseWIsGxvZ2lu6aG16Z2i77yM5YiZ5YGa5Y2V54K555m75b2V6YeN5a6a5ZCR77ybCiAgaWYgKHRvLm5hbWUgPT0gJ2xvZ2luJyAmJiB3aW5kb3cuc3NvQ29uZmlnLm1vZGUgJiYgd2luZG93LnNzb0NvbmZpZy5tb2RlICE9ICdqd3QnKSB7CiAgICAvLyDljZXngrnnmbvlvZXml7blpoLmnpzlt7Lnu4/mkLrluKbkuoZjb2Rl5oiW6ICFdGlja2V05pe277yM5aaC5p6c5pivL2xvZ2lu6Lev5b6E6ZyA6KaB6Lez6L2s5Yiw6buY6K6k6aG16Z2i77yI6Kej5Yaz5Y+N5aSN6Lez6L2s55qE6Zeu6aKY77yJCiAgICBpZiAoKHdpbmRvdy5zc29Db25maWcubW9kZSA9PSAnY2FzJyB8fCB3aW5kb3cuc3NvQ29uZmlnLm1vZGUgPT0gJ29hdXRoJykgJiYgKHRvLnF1ZXJ5LmNvZGUgfHwgdG8ucXVlcnkudGlja2V0KSkgewogICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY2UoJy9sb2dpbicsICcnKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIHsKICAgICAgc3NvUmVkaXJlY3QoKTsKICAgIH0KICB9CiAgaWYgKGZyb20ubmFtZSAhPSAnZGVmU3RhcnQnIHx8IHRvLm5hbWUgIT0gJ2luc3RTdGFydCcpIHsKICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2Zvcm1JbXBvcnRUZW1wUmVmSWQnKTsKICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2Zvcm1JbXBvcnRUZW1wSnNvbicpOwogIH0KICBpZiAoc2Vzc2lvblN0b3JhZ2UubWVudV9hbGlhcyAmJiB0by5mdWxsUGF0aCAmJiB0by5mdWxsUGF0aC5zcGxpdCgnLycpWzFdID09ICdob21lJykgewogICAgc2Vzc2lvblN0b3JhZ2UubWVudV9hbGlhcyA9ICcnOwogIH0KICBpZiAodG8ubWF0Y2hlZC5zb21lKGZ1bmN0aW9uIChyZWNvcmQpIHsKICAgIHJldHVybiAhcmVjb3JkLm1ldGEuYW5vbnltb3VzOwogIH0pKSB7CiAgICB2YXIgX3RpY2tldCA9IHRvLnF1ZXJ5LnRva2VuOwogICAgLy8gMi7lvZPliY3lt7Lnu4/ku47ljZXngrnpobXpnaLph43lrprlkJHlm57mnaXkuobvvIzkuJTlnKh1cmzlnLDlnYDkuK3mkLrluKbkuoZ0aWNrZXTmiJZjb2Rl77ybCiAgICBpZiAod2luZG93LnNzb0NvbmZpZy5tb2RlID09ICdjYXMnKSB7CiAgICAgIF90aWNrZXQgPSB0by5xdWVyeS50aWNrZXQ7CiAgICB9IGVsc2UgaWYgKHdpbmRvdy5zc29Db25maWcubW9kZSA9PSAnb2F1dGgnKSB7CiAgICAgIF90aWNrZXQgPSB0by5xdWVyeS5jb2RlOwogICAgfQogICAgc3RvcmUKICAgIC8vIDMu5pC65bimdGlja2V05YGa55So5oi36Ym05p2D77ybCiAgICAuZGlzcGF0Y2goJ2xvZ2luL3ZhbGlkQW5kQ29tcGxldGVkQ3VycmVudCcsIF90aWNrZXQpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICBzdG9yZS5fdm0uJHJvb3QuJGVtaXQoJ2xvZ2luLWNvbXBsZXRlZCcpOwogICAgICBpZiAocmVnaXN0ZXJSb3V0ZUZyZXNoKSB7CiAgICAgICAgaWYgKHNlc3Npb25TdG9yYWdlLm1lbnVfYWxpYXMpIHsKICAgICAgICAgIHZhciBwYXRoID0gJy8nICsgc2Vzc2lvblN0b3JhZ2UubWVudV9hbGlhczsKICAgICAgICAgIHZhciBpc0NoaWxkcmVuID0gcm91dGVyLmFkZExpc3QocGF0aCwgcm91dGVyLm9wdGlvbnMucm91dGVzKTsgLy/liqjmgIHmlrDlop7kuoznuqfot6/nlLEKICAgICAgICAgIC8v5b2T5YmN54K55Ye76I+c5Y2V55qE6Lev55Sx5Yir5ZCN5LiN5a2Y5ZyoIHJvdXRlci5qcyDph4zpnaIKICAgICAgICAgIGlmICghaXNDaGlsZHJlbikgewogICAgICAgICAgICB2YXIgYWxpYXNfbmV3ID0gewogICAgICAgICAgICAgIHBhdGg6IHBhdGgsCiAgICAgICAgICAgICAgbmFtZTogJ2FsaWFzX25ldycsCiAgICAgICAgICAgICAgY29tcG9uZW50OiBmdW5jdGlvbiBjb21wb25lbnQocmVzb2x2ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVpcmUoWydAL3ZpZXdzL21lbnVDb250ZW50LnZ1ZSddLCByZXNvbHZlKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9OwogICAgICAgICAgICByb3V0ZXIub3B0aW9ucy5yb3V0ZXMucHVzaChhbGlhc19uZXcpOwogICAgICAgICAgICByb3V0ZXIuYWRkTGlzdChwYXRoLCByb3V0ZXIub3B0aW9ucy5yb3V0ZXMpOyAvL+WKqOaAgeaWsOWinuS6jOe6p+i3r+eUsQogICAgICAgICAgfQogICAgICAgICAgcm91dGVyLnJlcGxhY2UoewogICAgICAgICAgICBwYXRoOiB0by5wYXRoLAogICAgICAgICAgICBxdWVyeTogdG8ucXVlcnkKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZWdpc3RlclJvdXRlRnJlc2ggPSBmYWxzZTsKICAgICAgfQogICAgICBuZXh0KCk7CiAgICAgIC8vIHVybOWcsOWdgOW4pnRva2Vu55qE5pa55byP6K6k6K+B5oiQ5Yqf5ZCO5Yig6ZmkdXJs5Lit55qEdG9rZW4KICAgICAgcmVtb3ZlVXJsUGFyYW1zKCd0b2tlbicpOwogICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAvLyA0LumJtOadg+Wksei0peaXtuagueaNruW9k+WJjeaooeW8j+mHjeWumuWQkeWIsOWvueW6lOmhtemdouOAggogICAgICBsb2dvdXRBbmRDbGVhblVwKHRvLCBmcm9tLCBuZXh0KTsKICAgIH0pOwogIH0gZWxzZSB7CiAgICBuZXh0KCk7CiAgfQp9KTsKZXhwb3J0IGRlZmF1bHQgcm91dGVyOw=="},null]}