Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpz..

Decoded Output download

<?  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGhpcmRfcGFydHkvY29sYWIvc291cmNlcy9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDJCQUE2QjtBQUM3QixzQ0FBd0M7QUFFeEMsMkJBQTZCO0FBQzdCLHlCQUEyQjtBQUczQixtQ0FBcUM7QUFDckMsbUNBQXFDO0FBQ3JDLDJDQUEyRDtBQUMzRCw2Q0FBK0M7QUFDL0MscURBQTRDO0FBQzVDLHFEQUFnRTtBQUNoRSxtQ0FBcUM7QUFFckMsSUFBSSxNQUFtQixDQUFDO0FBQ3hCOztHQUVHO0FBQ0gsSUFBSSxXQUF3QixDQUFDO0FBRTdCLElBQUksUUFBK0IsQ0FBQztBQUdwQzs7Ozs7R0FLRztBQUNILFNBQWUsYUFBYSxDQUN4QixPQUE2QixFQUFFLFFBQTZCLEVBQzVELFdBQW1COzs7Ozs7b0JBQ3JCLGdEQUFnRDtvQkFFaEQsSUFBSSxRQUFRO3dCQUNSLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDNUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQzNDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDdEMsc0JBQU87cUJBQ1I7b0JBQ0QsaURBQWlEO29CQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ25DLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzVDLENBQUMsV0FBVyxDQUFDLE9BQU8s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OlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3RcbiAqIHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mXG4gKiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVFxuICogV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gKiBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICogdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCAqIGFzIGh0dHBQcm94eSBmcm9tICdodHRwLXByb3h5JztcbmltcG9ydCAqIGFzIG5ldCBmcm9tICduZXQnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuXG5pbXBvcnQge0FwcFNldHRpbmdzfSBmcm9tICcuL2FwcFNldHRpbmdzJztcbmltcG9ydCAqIGFzIGp1cHl0ZXIgZnJvbSAnLi9qdXB5dGVyJztcbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSAnLi9sb2dnaW5nJztcbmltcG9ydCB7U29ja2V0SU9Ub0xzcCwgV2ViU29ja2V0VG9Mc3B9IGZyb20gJy4vcHl0aG9uX2xzcCc7XG5pbXBvcnQgKiBhcyByZXZlcnNlUHJveHkgZnJvbSAnLi9yZXZlcnNlUHJveHknO1xuaW1wb3J0IHtEYXBTZXJ2ZXJ9IGZyb20gJy4vc29ja2V0aW9fdG9fZGFwJztcbmltcG9ydCB7U29ja2V0SW9Ub1B0eSwgV2ViU29ja2V0VG9QdHl9IGZyb20gJy4vc29ja2V0aW9fdG9fcHR5JztcbmltcG9ydCAqIGFzIHNvY2tldHMgZnJvbSAnLi9zb2NrZXRzJztcblxubGV0IHNlcnZlcjogaHR0cC5TZXJ2ZXI7XG4vKipcbiAqIFRoZSBhcHBsaWNhdGlvbiBzZXR0aW5ncyBpbnN0YW5jZS5cbiAqL1xubGV0IGFwcFNldHRpbmdzOiBBcHBTZXR0aW5ncztcblxubGV0IGZpbGVzaGltOiBodHRwUHJveHkuUHJveHlTZXJ2ZXI7XG5cblxuLyoqXG4gKiBIYW5kbGVzIGFsbCByZXF1ZXN0cy5cbiAqIEBwYXJhbSByZXF1ZXN0IHRoZSBpbmNvbWluZyBIVFRQIHJlcXVlc3QuXG4gKiBAcGFyYW0gcmVzcG9uc2UgdGhlIG91dC1nb2luZyBIVFRQIHJlc3BvbnNlLlxuICogQHBhdGggdGhlIHBhcnNlZCBwYXRoIGluIHRoZSByZXF1ZXN0LlxuICovXG5hc3luYyBmdW5jdGlvbiBoYW5kbGVSZXF1ZXN0KFxuICAgIHJlcXVlc3Q6IGh0dHAuSW5jb21pbmdNZXNzYWdlLCByZXNwb25zZTogaHR0cC5TZXJ2ZXJSZXNwb25zZSxcbiAgICByZXF1ZXN0UGF0aDogc3RyaW5nKSB7XG4gIC8vIC9maWxlcyBhbmQgL3N0YXRpYyBhcmUgb25seSB1c2VkIGluIHJ1bmxvY2FsLlxuXG4gIGlmIChmaWxlc2hpbSAmJlxuICAgICAgKChyZXF1ZXN0UGF0aC5pbmRleE9mKCcvYXBpL2NvbnRlbnRzJykgPT09IDApIHx8XG4gICAgICAgKHJlcXVlc3RQYXRoLmluZGV4T2YoJy9maWxlcycpID09PSAwKSkpIHtcbiAgICBmaWxlc2hpbS53ZWIocmVxdWVzdCwgcmVzcG9uc2UsIG51bGwpO1xuICAgIHJldHVybjtcbiAgfVxuICAvLyBUaGUgZXhwbGljaXQgc2V0IG9mIHBhdGhzIHdlIHByb3h5IHRvIGp1cHl0ZXIuXG4gIGlmICgocmVxdWVzdFBhdGguaW5kZXhPZignL2FwaScpID09PSAwKSB8fFxuICAgICAgKHJlcXVlc3RQYXRoLmluZGV4T2YoJy9uYmV4dGVuc2lvbnMnKSA9PT0gMCkgfHxcbiAgICAgIChyZXF1ZXN0UGF0aC5pbmRleE9mKCcvZmlsZXMnKSA9PT0gMCkgfHxcbiAgICAgIChyZXF1ZXN0UGF0aC5pbmRleE9mKCcvc3RhdGljJykgPT09IDApKSB7XG4gICAganVweXRlci5oYW5kbGVSZXF1ZXN0KHJlcXVlc3QsIHJlc3BvbnNlKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGFwcFNldHRpbmdzLmNvbGFiUmVkaXJlY3QgJiYgcmVxdWVzdFBhdGggPT09ICcvJykge1xuICAgIGNvbnN0IGhvc3QgPSBwcm9jZXNzLmVudlsnV0VCX0hPU1QnXSB8fCAnJztcbiAgICBsZXQgdXJsID0gYXBwU2V0dGluZ3MuY29sYWJSZWRpcmVjdC5yZXBsYWNlKCd7anVweXRlcl9ob3N0fScsIGhvc3QpO1xuICAgIGlmIChhcHBTZXR0aW5ncy5jb2xhYlJlZGlyZWN0LmluY2x1ZGVzKCd7cHJvamVjdF9pZH0nKSkge1xuICAgICAgY29uc3QgcHJvamVjdElkID0gYXdhaXQgcmVhZEdjZVByb2plY3RJZCgpO1xuICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3twcm9qZWN0X2lkfScsIHByb2plY3RJZCk7XG4gICAgfVxuICAgIHJlc3BvbnNlLndyaXRlSGVhZCgzMDIsIHtcbiAgICAgICdMb2NhdGlvbic6IHVybCxcbiAgICB9KTtcbiAgICByZXNwb25zZS5lbmQoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBOb3QgRm91bmRcbiAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDQwNDtcbiAgcmVzcG9uc2UuZW5kKCk7XG59XG5cbi8qKlxuICogQmFzZSBsb2dpYyBmb3IgaGFuZGxpbmcgYWxsIHJlcXVlc3RzIHNlbnQgdG8gdGhlIHByb3h5IHdlYiBzZXJ2ZXIuIFNvbWVcbiAqIHJlcXVlc3RzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgc2VydmVyLCB3aGlsZSBzb21lIGFyZSBwcm94aWVkIHRvIHRoZVxuICogSnVweXRlciBub3RlYm9vayBzZXJ2ZXIuXG4gKlxuICogRXJyb3IgaGFuZGxpbmcgaXMgbGVmdCB0byB0aGUgY2FsbGVyLlxuICpcbiAqIEBwYXJhbSByZXF1ZXN0IHRoZSBpbmNvbWluZyBIVFRQIHJlcXVlc3QuXG4gKiBAcGFyYW0gcmVzcG9uc2UgdGhlIG91dC1nb2luZyBIVFRQIHJlc3BvbnNlLlxuICovXG5mdW5jdGlvbiB1bmNoZWNrZWRSZXF1ZXN0SGFuZGxlcihcbiAgICByZXF1ZXN0OiBodHRwLkluY29taW5nTWVzc2FnZSwgcmVzcG9uc2U6IGh0dHAuU2VydmVyUmVzcG9uc2UpIHtcbiAgY29uc3QgcGFyc2VkVXJsID0gdXJsLnBhcnNlKHJlcXVlc3QudXJsIHx8ICcnLCB0cnVlKTtcbiAgY29uc3QgdXJscGF0aCA9IHBhcnNlZFVybC5wYXRobmFtZSB8fCAnJztcblxuICBsb2dnaW5nLmxvZ1JlcXVlc3QocmVxdWVzdCwgcmVzcG9uc2UpO1xuXG4gIGZvciAoY29uc3QgaGFuZGxlciBvZiBzb2NrZXRJb0hhbmRsZXJzKSB7XG4gICAgaWYgKGhhbmRsZXIuaXNQYXRoUHJveGllZCh1cmxwYXRoKSkge1xuICAgICAgLy8gV2lsbCBhdXRvbWF0aWNhbGx5IGJlIGhhbmRsZWQgYnkgc29ja2V0LmlvLlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHByb3h5UG9ydCA9IHJldmVyc2VQcm94eS5nZXRSZXF1ZXN0UG9ydCh1cmxwYXRoKTtcbiAgaWYgKHNvY2tldHMuaXNTb2NrZXRJb1BhdGgodXJscGF0aCkpIHtcbiAgICAvLyBXaWxsIGF1dG9tYXRpY2FsbHkgYmUgaGFuZGxlZCBieSBzb2NrZXQuaW8uXG4gIH0gZWxzZSBpZiAocHJveHlQb3J0ICYmIHByb3h5UG9ydCAhPT0gcmVxdWVzdC5zb2NrZXQubG9jYWxQb3J0KSB7XG4gICAgLy8gRG8gbm90IGFsbG93IHByb3h5aW5nIHRvIHRoaXMgc2FtZSBwb3J0LCBhcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG1hc2sgdGhlXG4gICAgLy8gdGFyZ2V0IHBhdGguXG4gICAgcmV2ZXJzZVByb3h5LmhhbmRsZVJlcXVlc3QocmVxdWVzdCwgcmVzcG9uc2UsIHByb3h5UG9ydCk7XG4gIH0gZWxzZSB7XG4gICAgaGFuZGxlUmVxdWVzdChyZXF1ZXN0LCByZXNwb25zZSwgdXJscGF0aCk7XG4gIH1cbn1cblxuLyoqXG4gKiBIYW5kbGVzIGFsbCByZXF1ZXN0cyBzZW50IHRvIHRoZSBwcm94eSB3ZWIgc2VydmVyLiBTb21lIHJlcXVlc3RzIGFyZSBoYW5kbGVkXG4gKiB3aXRoaW4gdGhlIHNlcnZlciwgd2hpbGUgc29tZSBhcmUgcHJveGllZCB0byB0aGUgSnVweXRlciBub3RlYm9vayBzZXJ2ZXIuXG4gKiBAcGFyYW0gcmVxdWVzdCB0aGUgaW5jb21pbmcgSFRUUCByZXF1ZXN0LlxuICogQHBhcmFtIHJlc3BvbnNlIHRoZSBvdXQtZ29pbmcgSFRUUCByZXNwb25zZS5cbiAqL1xuZnVuY3Rpb24gcmVxdWVzdEhhbmRsZXIoXG4gICAgcmVxdWVzdDogaHR0cC5JbmNvbWluZ01lc3NhZ2UsIHJlc3BvbnNlOiBodHRwLlNlcnZlclJlc3BvbnNlKSB7XG4gIHRyeSB7XG4gICAgdW5jaGVja2VkUmVxdWVzdEhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5lcnJvcihcbiAgICAgICAgYFVuY2F1Z2h0IGVycm9yIGhhbmRsaW5nIGEgcmVxdWVzdCB0byBcIiR7cmVxdWVzdC51cmx9XCI6ICR7ZX1gKTtcbiAgfVxufVxuXG5jb25zdCBzb2NrZXRJb0hhbmRsZXJzOiBTb2NrZXRJb1RvUHR5W10gPSBbXTtcblxuLyoqXG4gKiBSdW5zIHRoZSBwcm94eSB3ZWIgc2VydmVyLlxuICogQHBhcmFtIHNldHRpbmdzIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bihzZXR0aW5nczogQXBwU2V0dGluZ3MpOiB2b2lkIHtcbiAganVweXRlci5pbml0KHNldHRpbmdzKTtcbiAgcmV2ZXJzZVByb3h5LmluaXQoc2V0dGluZ3MpO1xuICBhcHBTZXR0aW5ncyA9IHNldHRpbmdzO1xuXG4gIGlmIChzZXR0aW5ncy5maWxlSGFuZGxlckFkZHIpIHtcbiAgICBmaWxlc2hpbSA9IGh0dHBQcm94eS5jcmVhdGVQcm94eVNlcnZlcihcbiAgICAgICAge3RhcmdldDogYGh0dHA6Ly8ke2FwcFNldHRpbmdzLmZpbGVIYW5kbGVyQWRkcn1gfSk7XG4gICAgZmlsZXNoaW0ub24oJ2Vycm9yJywgKGVycm9yLCByZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5lcnJvcihlcnJvciwgYGZpbGVzaGltIGVycm9yIGZvciAke3JlcXVlc3QudXJsfWApO1xuICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDUwMCwgJ0ludGVybmFsIFNlcnZlciBFcnJvcicpO1xuICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgfSk7XG4gIH1cblxuICBzZXJ2ZXIgPSBodHRwLmNyZWF0ZVNlcnZlcihyZXF1ZXN0SGFuZGxlcik7XG4gIC8vIERpc2FibGUgSFRUUCBrZWVwLWFsaXZlIGNvbm5lY3Rpb24gdGltZW91dHMgaW4gb3JkZXIgdG8gYXZvaWQgY29ubmVjdGlvblxuICAvLyBmbGFrZXMuIERldGFpbHM6IGIvMTEyMTUxMDY0XG4gIHNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ID0gMDtcblxuICBjb25zdCBzb2NrZXRJb1NlcnZlciA9IHNvY2tldHMuaW5pdChzZXJ2ZXIsIHNldHRpbmdzKTtcblxuICBzb2NrZXRJb0hhbmRsZXJzLnB1c2gobmV3IFNvY2tldElvVG9QdHkoJy90dHknLCBzZXJ2ZXIpKTtcblxuICBsZXQgZGFwU2VydmVyOiBEYXBTZXJ2ZXI7XG4gIGlmIChzZXR0aW5ncy5kZWJ1Z0FkYXB0ZXJNdWx0aXBsZXhlclBhdGgpIHtcbiAgICBkYXBTZXJ2ZXIgPVxuICAgICAgICBuZXcgRGFwU2VydmVyKHNldHRpbmdzLmRlYnVnQWRhcHRlck11bHRpcGxleGVyUGF0aCwgc29ja2V0SW9TZXJ2ZXIpO1xuICB9XG5cbiAgY29uc3QgY29udGVudERpciA9IHBhdGguam9pbihzZXR0aW5ncy5kYXRhbGFiUm9vdCwgc2V0dGluZ3MuY29udGVudERpcik7XG4gIGNvbnN0IGxvZ3NEaXIgPSBwYXRoLmpvaW4oc2V0dGluZ3MuZGF0YWxhYlJvb3QsICcvdmFyL2NvbGFiLycpO1xuICBjb25zdCBwaXBMb2dzRGlyID0gcGF0aC5qb2luKHNldHRpbmdzLmRhdGFsYWJSb290LCAnL3Zhci9sb2cvJyk7XG5cbiAgLy8gSGFuZGxlciBtYW5hZ2VzIGl0cyBvd24gbGlmZXRpbWUuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby11bnVzZWQtZXhwcmVzc2lvblxuICBuZXcgU29ja2V0SU9Ub0xzcChcbiAgICAgIHNvY2tldElvU2VydmVyLCBfX2Rpcm5hbWUsIGNvbnRlbnREaXIsIGxvZ3NEaXIsIHBpcExvZ3NEaXIsXG4gICAgICBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5LCBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncyk7XG5cbiAgc2VydmVyLm9uKFxuICAgICAgJ3VwZ3JhZGUnLFxuICAgICAgKHJlcXVlc3Q6IGh0dHAuSW5jb21pbmdNZXNzYWdlLCBzb2NrZXQ6IG5ldC5Tb2NrZXQsIGhlYWQ6IEJ1ZmZlcikgPT4ge1xuICAgICAgICBpZiAocmVxdWVzdC51cmwgPT09ICcvY29sYWIvdHR5Jykge1xuICAgICAgICAgIFdlYlNvY2tldFRvUHR5KHJlcXVlc3QsIHNvY2tldCwgaGVhZCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9jb2xhYi9kYXAnKSB7XG4gICAgICAgICAgZGFwU2VydmVyPy5oYW5kbGVVcGdyYWRlKHJlcXVlc3QsIHNvY2tldCwgaGVhZCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9jb2xhYi9sc3AnKSB7XG4gICAgICAgICAgV2ViU29ja2V0VG9Mc3AoXG4gICAgICAgICAgICAgIHJlcXVlc3QsIHNvY2tldCwgaGVhZCwgX19kaXJuYW1lLCBjb250ZW50RGlyLCBsb2dzRGlyLCBwaXBMb2dzRGlyLFxuICAgICAgICAgICAgICBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5LCBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGp1cHl0ZXIuaGFuZGxlU29ja2V0KHJlcXVlc3QsIHNvY2tldCwgaGVhZCk7XG4gICAgICB9KTtcblxuXG4gIGxvZ2dpbmcuZ2V0TG9nZ2VyKCkuaW5mbyhcbiAgICAgICdTdGFydGluZyBzZXJ2ZXIgYXQgaHR0cDovL2xvY2FsaG9zdDolZCcsIHNldHRpbmdzLnNlcnZlclBvcnQpO1xuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiBwcm9jZXNzLmV4aXQoKSk7XG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgcG9ydDogc2V0dGluZ3Muc2VydmVyUG9ydCxcbiAgICBpcHY2T25seTogZmFsc2UsXG4gICAgaG9zdDogc2V0dGluZ3Muc2VydmVySG9zdCB8fCAnJ1xuICB9O1xuICBpZiAoJ1RFU1RfVE1QRElSJyBpbiBwcm9jZXNzLmVudikge1xuICAgIC8vIFJlcXVpcmVkIHRvIGF2b2lkIFwiRUFGTk9TVVBQT1JUOiBhZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkXCIgb25cbiAgICAvLyBJUHY2LW9ubHkgZW52aXJvbm1lbnRzIChub3RhYmx5LCBldmVuIHdpdGggdGhlIGhvc3Qgb3ZlcnJpZGUgYmVsb3cpLlxuICAgIG9wdGlvbnNbJ2lwdjZPbmx5J10gPSB0cnVlO1xuICAgIC8vIGlwdjZPbmx5IGFsb25lIGlzbid0IGVub3VnaCB0byBhdm9pZCBhdHRlbXB0aW5nIHRvIGJpbmQgdG8gMC4wLjAuMCAod2hpY2hcbiAgICAvLyBmYWlscyBvbiBJUHY2LW9ubHkgZW52aXJvbm1lbnRzKS4gIE5lZWQgdG8gc3BlY2lmeSBhbiBJUCBhZGRyZXNzIGJlY2F1c2VcbiAgICAvLyBETlMgcmVzb2x1dGlvbiBldmVuIG9mIGlwNi1sb2NhbGhvc3QgZmFpbHMgb24gc29tZSBzdWNoIGVudmlyb25tZW50cy5cbiAgICBvcHRpb25zWydob3N0J10gPSAnOjoxJztcbiAgfVxuICBzZXJ2ZXIubGlzdGVuKG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIFN0b3BzIHRoZSBzZXJ2ZXIgYW5kIGFzc29jaWF0ZWQgSnVweXRlciBzZXJ2ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdG9wKCk6IHZvaWQge1xuICBqdXB5dGVyLmNsb3NlKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRHY2VQcm9qZWN0SWQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgbGV0IG1ldGFkYXRhSG9zdCA9ICdtZXRhZGF0YS5nb29nbGUuaW50ZXJuYWwnO1xuICBsZXQgcG9ydDogdW5kZWZpbmVkfG51bWJlciA9IHVuZGVmaW5lZDtcbiAgaWYgKHByb2Nlc3MuZW52WydHQ0VfTUVUQURBVEFfSE9TVCddKSB7XG4gICAgbWV0YWRhdGFIb3N0ID0gcHJvY2Vzcy5lbnZbJ0dDRV9NRVRBREFUQV9IT1NUJ107XG4gICAgY29uc3QgcG9ydFBhcnRzID0gbWV0YWRhdGFIb3N0Lm1hdGNoKC8oLiopOihcXGQrKS8pO1xuICAgIGlmIChwb3J0UGFydHMpIHtcbiAgICAgIG1ldGFkYXRhSG9zdCA9IHBvcnRQYXJ0c1sxXTtcbiAgICAgIGlmIChtZXRhZGF0YUhvc3Quc3RhcnRzV2l0aCgnWycpKSB7XG4gICAgICAgIG1ldGFkYXRhSG9zdCA9IG1ldGFkYXRhSG9zdC5zdWJzdHJpbmcoMSwgbWV0YWRhdGFIb3N0Lmxlbmd0aCAtIDEpO1xuICAgICAgfVxuICAgICAgcG9ydCA9IE51bWJlcihwb3J0UGFydHNbMl0pO1xuICAgIH1cbiAgfVxuICBjb25zdCBwcm9qZWN0SWQgPSBhd2FpdCBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBodHRwLmdldChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaG9zdG5hbWU6IG1ldGFkYXRhSG9zdCxcbiAgICAgICAgICAgICAgcG9ydCxcbiAgICAgICAgICAgICAgcGF0aDogJy9jb21wdXRlTWV0YWRhdGEvdjEvcHJvamVjdC9wcm9qZWN0LWlkJyxcbiAgICAgICAgICAgICAgaGVhZGVyczogeydNZXRhZGF0YS1GbGF2b3InOiAnR29vZ2xlJ31cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGRhdGEgPSAnJztcbiAgICAgICAgICAgICAgcmVzcG9uc2Uub24oJ2RhdGEnLCAoY2h1bmspID0+IHtcbiAgICAgICAgICAgICAgICBkYXRhICs9IGNodW5rO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmVzcG9uc2Uub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGRhdGEpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIC5vbignZXJyb3InLCByZWplY3QpXG4gICAgICAgIC5lbmQoKTtcbiAgfSk7XG4gIHJldHVybiBwcm9qZWN0SWQudHJpbSgpO1xufVxuIl19 ?>

Did this file decode correctly?

Original Code

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGhpcmRfcGFydHkvY29sYWIvc291cmNlcy9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDJCQUE2QjtBQUM3QixzQ0FBd0M7QUFFeEMsMkJBQTZCO0FBQzdCLHlCQUEyQjtBQUczQixtQ0FBcUM7QUFDckMsbUNBQXFDO0FBQ3JDLDJDQUEyRDtBQUMzRCw2Q0FBK0M7QUFDL0MscURBQTRDO0FBQzVDLHFEQUFnRTtBQUNoRSxtQ0FBcUM7QUFFckMsSUFBSSxNQUFtQixDQUFDO0FBQ3hCOztHQUVHO0FBQ0gsSUFBSSxXQUF3QixDQUFDO0FBRTdCLElBQUksUUFBK0IsQ0FBQztBQUdwQzs7Ozs7R0FLRztBQUNILFNBQWUsYUFBYSxDQUN4QixPQUE2QixFQUFFLFFBQTZCLEVBQzVELFdBQW1COzs7Ozs7b0JBQ3JCLGdEQUFnRDtvQkFFaEQsSUFBSSxRQUFRO3dCQUNSLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDNUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQzNDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDdEMsc0JBQU87cUJBQ1I7b0JBQ0QsaURBQWlEO29CQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ25DLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzVDLENBQUMsV0FBVyxDQUFDLE9BQU8s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OlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3RcbiAqIHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mXG4gKiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVFxuICogV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gKiBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICogdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCAqIGFzIGh0dHBQcm94eSBmcm9tICdodHRwLXByb3h5JztcbmltcG9ydCAqIGFzIG5ldCBmcm9tICduZXQnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuXG5pbXBvcnQge0FwcFNldHRpbmdzfSBmcm9tICcuL2FwcFNldHRpbmdzJztcbmltcG9ydCAqIGFzIGp1cHl0ZXIgZnJvbSAnLi9qdXB5dGVyJztcbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSAnLi9sb2dnaW5nJztcbmltcG9ydCB7U29ja2V0SU9Ub0xzcCwgV2ViU29ja2V0VG9Mc3B9IGZyb20gJy4vcHl0aG9uX2xzcCc7XG5pbXBvcnQgKiBhcyByZXZlcnNlUHJveHkgZnJvbSAnLi9yZXZlcnNlUHJveHknO1xuaW1wb3J0IHtEYXBTZXJ2ZXJ9IGZyb20gJy4vc29ja2V0aW9fdG9fZGFwJztcbmltcG9ydCB7U29ja2V0SW9Ub1B0eSwgV2ViU29ja2V0VG9QdHl9IGZyb20gJy4vc29ja2V0aW9fdG9fcHR5JztcbmltcG9ydCAqIGFzIHNvY2tldHMgZnJvbSAnLi9zb2NrZXRzJztcblxubGV0IHNlcnZlcjogaHR0cC5TZXJ2ZXI7XG4vKipcbiAqIFRoZSBhcHBsaWNhdGlvbiBzZXR0aW5ncyBpbnN0YW5jZS5cbiAqL1xubGV0IGFwcFNldHRpbmdzOiBBcHBTZXR0aW5ncztcblxubGV0IGZpbGVzaGltOiBodHRwUHJveHkuUHJveHlTZXJ2ZXI7XG5cblxuLyoqXG4gKiBIYW5kbGVzIGFsbCByZXF1ZXN0cy5cbiAqIEBwYXJhbSByZXF1ZXN0IHRoZSBpbmNvbWluZyBIVFRQIHJlcXVlc3QuXG4gKiBAcGFyYW0gcmVzcG9uc2UgdGhlIG91dC1nb2luZyBIVFRQIHJlc3BvbnNlLlxuICogQHBhdGggdGhlIHBhcnNlZCBwYXRoIGluIHRoZSByZXF1ZXN0LlxuICovXG5hc3luYyBmdW5jdGlvbiBoYW5kbGVSZXF1ZXN0KFxuICAgIHJlcXVlc3Q6IGh0dHAuSW5jb21pbmdNZXNzYWdlLCByZXNwb25zZTogaHR0cC5TZXJ2ZXJSZXNwb25zZSxcbiAgICByZXF1ZXN0UGF0aDogc3RyaW5nKSB7XG4gIC8vIC9maWxlcyBhbmQgL3N0YXRpYyBhcmUgb25seSB1c2VkIGluIHJ1bmxvY2FsLlxuXG4gIGlmIChmaWxlc2hpbSAmJlxuICAgICAgKChyZXF1ZXN0UGF0aC5pbmRleE9mKCcvYXBpL2NvbnRlbnRzJykgPT09IDApIHx8XG4gICAgICAgKHJlcXVlc3RQYXRoLmluZGV4T2YoJy9maWxlcycpID09PSAwKSkpIHtcbiAgICBmaWxlc2hpbS53ZWIocmVxdWVzdCwgcmVzcG9uc2UsIG51bGwpO1xuICAgIHJldHVybjtcbiAgfVxuICAvLyBUaGUgZXhwbGljaXQgc2V0IG9mIHBhdGhzIHdlIHByb3h5IHRvIGp1cHl0ZXIuXG4gIGlmICgocmVxdWVzdFBhdGguaW5kZXhPZignL2FwaScpID09PSAwKSB8fFxuICAgICAgKHJlcXVlc3RQYXRoLmluZGV4T2YoJy9uYmV4dGVuc2lvbnMnKSA9PT0gMCkgfHxcbiAgICAgIChyZXF1ZXN0UGF0aC5pbmRleE9mKCcvZmlsZXMnKSA9PT0gMCkgfHxcbiAgICAgIChyZXF1ZXN0UGF0aC5pbmRleE9mKCcvc3RhdGljJykgPT09IDApKSB7XG4gICAganVweXRlci5oYW5kbGVSZXF1ZXN0KHJlcXVlc3QsIHJlc3BvbnNlKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGFwcFNldHRpbmdzLmNvbGFiUmVkaXJlY3QgJiYgcmVxdWVzdFBhdGggPT09ICcvJykge1xuICAgIGNvbnN0IGhvc3QgPSBwcm9jZXNzLmVudlsnV0VCX0hPU1QnXSB8fCAnJztcbiAgICBsZXQgdXJsID0gYXBwU2V0dGluZ3MuY29sYWJSZWRpcmVjdC5yZXBsYWNlKCd7anVweXRlcl9ob3N0fScsIGhvc3QpO1xuICAgIGlmIChhcHBTZXR0aW5ncy5jb2xhYlJlZGlyZWN0LmluY2x1ZGVzKCd7cHJvamVjdF9pZH0nKSkge1xuICAgICAgY29uc3QgcHJvamVjdElkID0gYXdhaXQgcmVhZEdjZVByb2plY3RJZCgpO1xuICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3twcm9qZWN0X2lkfScsIHByb2plY3RJZCk7XG4gICAgfVxuICAgIHJlc3BvbnNlLndyaXRlSGVhZCgzMDIsIHtcbiAgICAgICdMb2NhdGlvbic6IHVybCxcbiAgICB9KTtcbiAgICByZXNwb25zZS5lbmQoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBOb3QgRm91bmRcbiAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDQwNDtcbiAgcmVzcG9uc2UuZW5kKCk7XG59XG5cbi8qKlxuICogQmFzZSBsb2dpYyBmb3IgaGFuZGxpbmcgYWxsIHJlcXVlc3RzIHNlbnQgdG8gdGhlIHByb3h5IHdlYiBzZXJ2ZXIuIFNvbWVcbiAqIHJlcXVlc3RzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgc2VydmVyLCB3aGlsZSBzb21lIGFyZSBwcm94aWVkIHRvIHRoZVxuICogSnVweXRlciBub3RlYm9vayBzZXJ2ZXIuXG4gKlxuICogRXJyb3IgaGFuZGxpbmcgaXMgbGVmdCB0byB0aGUgY2FsbGVyLlxuICpcbiAqIEBwYXJhbSByZXF1ZXN0IHRoZSBpbmNvbWluZyBIVFRQIHJlcXVlc3QuXG4gKiBAcGFyYW0gcmVzcG9uc2UgdGhlIG91dC1nb2luZyBIVFRQIHJlc3BvbnNlLlxuICovXG5mdW5jdGlvbiB1bmNoZWNrZWRSZXF1ZXN0SGFuZGxlcihcbiAgICByZXF1ZXN0OiBodHRwLkluY29taW5nTWVzc2FnZSwgcmVzcG9uc2U6IGh0dHAuU2VydmVyUmVzcG9uc2UpIHtcbiAgY29uc3QgcGFyc2VkVXJsID0gdXJsLnBhcnNlKHJlcXVlc3QudXJsIHx8ICcnLCB0cnVlKTtcbiAgY29uc3QgdXJscGF0aCA9IHBhcnNlZFVybC5wYXRobmFtZSB8fCAnJztcblxuICBsb2dnaW5nLmxvZ1JlcXVlc3QocmVxdWVzdCwgcmVzcG9uc2UpO1xuXG4gIGZvciAoY29uc3QgaGFuZGxlciBvZiBzb2NrZXRJb0hhbmRsZXJzKSB7XG4gICAgaWYgKGhhbmRsZXIuaXNQYXRoUHJveGllZCh1cmxwYXRoKSkge1xuICAgICAgLy8gV2lsbCBhdXRvbWF0aWNhbGx5IGJlIGhhbmRsZWQgYnkgc29ja2V0LmlvLlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHByb3h5UG9ydCA9IHJldmVyc2VQcm94eS5nZXRSZXF1ZXN0UG9ydCh1cmxwYXRoKTtcbiAgaWYgKHNvY2tldHMuaXNTb2NrZXRJb1BhdGgodXJscGF0aCkpIHtcbiAgICAvLyBXaWxsIGF1dG9tYXRpY2FsbHkgYmUgaGFuZGxlZCBieSBzb2NrZXQuaW8uXG4gIH0gZWxzZSBpZiAocHJveHlQb3J0ICYmIHByb3h5UG9ydCAhPT0gcmVxdWVzdC5zb2NrZXQubG9jYWxQb3J0KSB7XG4gICAgLy8gRG8gbm90IGFsbG93IHByb3h5aW5nIHRvIHRoaXMgc2FtZSBwb3J0LCBhcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG1hc2sgdGhlXG4gICAgLy8gdGFyZ2V0IHBhdGguXG4gICAgcmV2ZXJzZVByb3h5LmhhbmRsZVJlcXVlc3QocmVxdWVzdCwgcmVzcG9uc2UsIHByb3h5UG9ydCk7XG4gIH0gZWxzZSB7XG4gICAgaGFuZGxlUmVxdWVzdChyZXF1ZXN0LCByZXNwb25zZSwgdXJscGF0aCk7XG4gIH1cbn1cblxuLyoqXG4gKiBIYW5kbGVzIGFsbCByZXF1ZXN0cyBzZW50IHRvIHRoZSBwcm94eSB3ZWIgc2VydmVyLiBTb21lIHJlcXVlc3RzIGFyZSBoYW5kbGVkXG4gKiB3aXRoaW4gdGhlIHNlcnZlciwgd2hpbGUgc29tZSBhcmUgcHJveGllZCB0byB0aGUgSnVweXRlciBub3RlYm9vayBzZXJ2ZXIuXG4gKiBAcGFyYW0gcmVxdWVzdCB0aGUgaW5jb21pbmcgSFRUUCByZXF1ZXN0LlxuICogQHBhcmFtIHJlc3BvbnNlIHRoZSBvdXQtZ29pbmcgSFRUUCByZXNwb25zZS5cbiAqL1xuZnVuY3Rpb24gcmVxdWVzdEhhbmRsZXIoXG4gICAgcmVxdWVzdDogaHR0cC5JbmNvbWluZ01lc3NhZ2UsIHJlc3BvbnNlOiBodHRwLlNlcnZlclJlc3BvbnNlKSB7XG4gIHRyeSB7XG4gICAgdW5jaGVja2VkUmVxdWVzdEhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5lcnJvcihcbiAgICAgICAgYFVuY2F1Z2h0IGVycm9yIGhhbmRsaW5nIGEgcmVxdWVzdCB0byBcIiR7cmVxdWVzdC51cmx9XCI6ICR7ZX1gKTtcbiAgfVxufVxuXG5jb25zdCBzb2NrZXRJb0hhbmRsZXJzOiBTb2NrZXRJb1RvUHR5W10gPSBbXTtcblxuLyoqXG4gKiBSdW5zIHRoZSBwcm94eSB3ZWIgc2VydmVyLlxuICogQHBhcmFtIHNldHRpbmdzIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bihzZXR0aW5nczogQXBwU2V0dGluZ3MpOiB2b2lkIHtcbiAganVweXRlci5pbml0KHNldHRpbmdzKTtcbiAgcmV2ZXJzZVByb3h5LmluaXQoc2V0dGluZ3MpO1xuICBhcHBTZXR0aW5ncyA9IHNldHRpbmdzO1xuXG4gIGlmIChzZXR0aW5ncy5maWxlSGFuZGxlckFkZHIpIHtcbiAgICBmaWxlc2hpbSA9IGh0dHBQcm94eS5jcmVhdGVQcm94eVNlcnZlcihcbiAgICAgICAge3RhcmdldDogYGh0dHA6Ly8ke2FwcFNldHRpbmdzLmZpbGVIYW5kbGVyQWRkcn1gfSk7XG4gICAgZmlsZXNoaW0ub24oJ2Vycm9yJywgKGVycm9yLCByZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5lcnJvcihlcnJvciwgYGZpbGVzaGltIGVycm9yIGZvciAke3JlcXVlc3QudXJsfWApO1xuICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDUwMCwgJ0ludGVybmFsIFNlcnZlciBFcnJvcicpO1xuICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgfSk7XG4gIH1cblxuICBzZXJ2ZXIgPSBodHRwLmNyZWF0ZVNlcnZlcihyZXF1ZXN0SGFuZGxlcik7XG4gIC8vIERpc2FibGUgSFRUUCBrZWVwLWFsaXZlIGNvbm5lY3Rpb24gdGltZW91dHMgaW4gb3JkZXIgdG8gYXZvaWQgY29ubmVjdGlvblxuICAvLyBmbGFrZXMuIERldGFpbHM6IGIvMTEyMTUxMDY0XG4gIHNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ID0gMDtcblxuICBjb25zdCBzb2NrZXRJb1NlcnZlciA9IHNvY2tldHMuaW5pdChzZXJ2ZXIsIHNldHRpbmdzKTtcblxuICBzb2NrZXRJb0hhbmRsZXJzLnB1c2gobmV3IFNvY2tldElvVG9QdHkoJy90dHknLCBzZXJ2ZXIpKTtcblxuICBsZXQgZGFwU2VydmVyOiBEYXBTZXJ2ZXI7XG4gIGlmIChzZXR0aW5ncy5kZWJ1Z0FkYXB0ZXJNdWx0aXBsZXhlclBhdGgpIHtcbiAgICBkYXBTZXJ2ZXIgPVxuICAgICAgICBuZXcgRGFwU2VydmVyKHNldHRpbmdzLmRlYnVnQWRhcHRlck11bHRpcGxleGVyUGF0aCwgc29ja2V0SW9TZXJ2ZXIpO1xuICB9XG5cbiAgY29uc3QgY29udGVudERpciA9IHBhdGguam9pbihzZXR0aW5ncy5kYXRhbGFiUm9vdCwgc2V0dGluZ3MuY29udGVudERpcik7XG4gIGNvbnN0IGxvZ3NEaXIgPSBwYXRoLmpvaW4oc2V0dGluZ3MuZGF0YWxhYlJvb3QsICcvdmFyL2NvbGFiLycpO1xuICBjb25zdCBwaXBMb2dzRGlyID0gcGF0aC5qb2luKHNldHRpbmdzLmRhdGFsYWJSb290LCAnL3Zhci9sb2cvJyk7XG5cbiAgLy8gSGFuZGxlciBtYW5hZ2VzIGl0cyBvd24gbGlmZXRpbWUuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby11bnVzZWQtZXhwcmVzc2lvblxuICBuZXcgU29ja2V0SU9Ub0xzcChcbiAgICAgIHNvY2tldElvU2VydmVyLCBfX2Rpcm5hbWUsIGNvbnRlbnREaXIsIGxvZ3NEaXIsIHBpcExvZ3NEaXIsXG4gICAgICBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5LCBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncyk7XG5cbiAgc2VydmVyLm9uKFxuICAgICAgJ3VwZ3JhZGUnLFxuICAgICAgKHJlcXVlc3Q6IGh0dHAuSW5jb21pbmdNZXNzYWdlLCBzb2NrZXQ6IG5ldC5Tb2NrZXQsIGhlYWQ6IEJ1ZmZlcikgPT4ge1xuICAgICAgICBpZiAocmVxdWVzdC51cmwgPT09ICcvY29sYWIvdHR5Jykge1xuICAgICAgICAgIFdlYlNvY2tldFRvUHR5KHJlcXVlc3QsIHNvY2tldCwgaGVhZCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9jb2xhYi9kYXAnKSB7XG4gICAgICAgICAgZGFwU2VydmVyPy5oYW5kbGVVcGdyYWRlKHJlcXVlc3QsIHNvY2tldCwgaGVhZCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9jb2xhYi9sc3AnKSB7XG4gICAgICAgICAgV2ViU29ja2V0VG9Mc3AoXG4gICAgICAgICAgICAgIHJlcXVlc3QsIHNvY2tldCwgaGVhZCwgX19kaXJuYW1lLCBjb250ZW50RGlyLCBsb2dzRGlyLCBwaXBMb2dzRGlyLFxuICAgICAgICAgICAgICBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5LCBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGp1cHl0ZXIuaGFuZGxlU29ja2V0KHJlcXVlc3QsIHNvY2tldCwgaGVhZCk7XG4gICAgICB9KTtcblxuXG4gIGxvZ2dpbmcuZ2V0TG9nZ2VyKCkuaW5mbyhcbiAgICAgICdTdGFydGluZyBzZXJ2ZXIgYXQgaHR0cDovL2xvY2FsaG9zdDolZCcsIHNldHRpbmdzLnNlcnZlclBvcnQpO1xuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiBwcm9jZXNzLmV4aXQoKSk7XG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgcG9ydDogc2V0dGluZ3Muc2VydmVyUG9ydCxcbiAgICBpcHY2T25seTogZmFsc2UsXG4gICAgaG9zdDogc2V0dGluZ3Muc2VydmVySG9zdCB8fCAnJ1xuICB9O1xuICBpZiAoJ1RFU1RfVE1QRElSJyBpbiBwcm9jZXNzLmVudikge1xuICAgIC8vIFJlcXVpcmVkIHRvIGF2b2lkIFwiRUFGTk9TVVBQT1JUOiBhZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkXCIgb25cbiAgICAvLyBJUHY2LW9ubHkgZW52aXJvbm1lbnRzIChub3RhYmx5LCBldmVuIHdpdGggdGhlIGhvc3Qgb3ZlcnJpZGUgYmVsb3cpLlxuICAgIG9wdGlvbnNbJ2lwdjZPbmx5J10gPSB0cnVlO1xuICAgIC8vIGlwdjZPbmx5IGFsb25lIGlzbid0IGVub3VnaCB0byBhdm9pZCBhdHRlbXB0aW5nIHRvIGJpbmQgdG8gMC4wLjAuMCAod2hpY2hcbiAgICAvLyBmYWlscyBvbiBJUHY2LW9ubHkgZW52aXJvbm1lbnRzKS4gIE5lZWQgdG8gc3BlY2lmeSBhbiBJUCBhZGRyZXNzIGJlY2F1c2VcbiAgICAvLyBETlMgcmVzb2x1dGlvbiBldmVuIG9mIGlwNi1sb2NhbGhvc3QgZmFpbHMgb24gc29tZSBzdWNoIGVudmlyb25tZW50cy5cbiAgICBvcHRpb25zWydob3N0J10gPSAnOjoxJztcbiAgfVxuICBzZXJ2ZXIubGlzdGVuKG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIFN0b3BzIHRoZSBzZXJ2ZXIgYW5kIGFzc29jaWF0ZWQgSnVweXRlciBzZXJ2ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdG9wKCk6IHZvaWQge1xuICBqdXB5dGVyLmNsb3NlKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRHY2VQcm9qZWN0SWQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgbGV0IG1ldGFkYXRhSG9zdCA9ICdtZXRhZGF0YS5nb29nbGUuaW50ZXJuYWwnO1xuICBsZXQgcG9ydDogdW5kZWZpbmVkfG51bWJlciA9IHVuZGVmaW5lZDtcbiAgaWYgKHByb2Nlc3MuZW52WydHQ0VfTUVUQURBVEFfSE9TVCddKSB7XG4gICAgbWV0YWRhdGFIb3N0ID0gcHJvY2Vzcy5lbnZbJ0dDRV9NRVRBREFUQV9IT1NUJ107XG4gICAgY29uc3QgcG9ydFBhcnRzID0gbWV0YWRhdGFIb3N0Lm1hdGNoKC8oLiopOihcXGQrKS8pO1xuICAgIGlmIChwb3J0UGFydHMpIHtcbiAgICAgIG1ldGFkYXRhSG9zdCA9IHBvcnRQYXJ0c1sxXTtcbiAgICAgIGlmIChtZXRhZGF0YUhvc3Quc3RhcnRzV2l0aCgnWycpKSB7XG4gICAgICAgIG1ldGFkYXRhSG9zdCA9IG1ldGFkYXRhSG9zdC5zdWJzdHJpbmcoMSwgbWV0YWRhdGFIb3N0Lmxlbmd0aCAtIDEpO1xuICAgICAgfVxuICAgICAgcG9ydCA9IE51bWJlcihwb3J0UGFydHNbMl0pO1xuICAgIH1cbiAgfVxuICBjb25zdCBwcm9qZWN0SWQgPSBhd2FpdCBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBodHRwLmdldChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaG9zdG5hbWU6IG1ldGFkYXRhSG9zdCxcbiAgICAgICAgICAgICAgcG9ydCxcbiAgICAgICAgICAgICAgcGF0aDogJy9jb21wdXRlTWV0YWRhdGEvdjEvcHJvamVjdC9wcm9qZWN0LWlkJyxcbiAgICAgICAgICAgICAgaGVhZGVyczogeydNZXRhZGF0YS1GbGF2b3InOiAnR29vZ2xlJ31cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGRhdGEgPSAnJztcbiAgICAgICAgICAgICAgcmVzcG9uc2Uub24oJ2RhdGEnLCAoY2h1bmspID0+IHtcbiAgICAgICAgICAgICAgICBkYXRhICs9IGNodW5rO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmVzcG9uc2Uub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGRhdGEpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIC5vbignZXJyb3InLCByZWplY3QpXG4gICAgICAgIC5lbmQoKTtcbiAgfSk7XG4gIHJldHVybiBwcm9qZWN0SWQudHJpbSgpO1xufVxuIl19

Function Calls

None

Variables

None

Stats

MD5 3a1b5eb370f1e461c626c7ade1003c6b
Eval Count 0
Decode Time 2228 ms