@nlabs/reaktor 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -329,4 +329,4 @@ const deleteUserFromConversation = (context, convoId, userId) => {
|
|
|
329
329
|
getDirectConversationOld,
|
|
330
330
|
updateConversation
|
|
331
331
|
});
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvY29udmVyc2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbic7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAndHlwZXMvYXV0aCc7XG5cbmltcG9ydCB7QXJhbmdvREJMaW1pdCwgQ29ubmVjdGlvblR5cGUsIENvbnZlcnNhdGlvblR5cGUsIEltYWdlVXJsRGF0YSwgVXNlcn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtnZXRMaW1pdH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzJztcbmltcG9ydCB7Z2V0VXNlckltYWdlVXJsfSBmcm9tICcuL2ltYWdlcyc7XG5pbXBvcnQge2dldERpc3BsYXlOYW1lLCBnZXRVc2VyfSBmcm9tICcuL3VzZXJzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2NvbnZlcnNhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9ucyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB7ZnJvbSwgdG99KTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0Q29udmVyc2F0aW9ucyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBsaW1pdDogQXJhbmdvREJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCBcIiR7c2Vzc2lvbkRvY0lkfVwiIGhhc0NvbnZlcnNhdGlvbnNcbiAgICAke2xpbWl0LmFxbH1cbiAgICBMRVQgdXNlcnMgPSAoXG4gICAgICBGT1IgdSwgdWMgSU4gMS4uMSBJTkJPVU5EIGMuX2lkIGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiB1Ll9pZCAhPSBcIiR7c2Vzc2lvbkRvY0lkfVwiXG4gICAgICBSRVRVUk4gdVxuICAgIClcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXJzOiB1c2Vyc30pYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBmcm9tSWQ6IHN0cmluZyxcbiAgdG9JZDogc3RyaW5nXG4pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0RGlyZWN0Q29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBmb3JtYXRGcm9tSWQ6IHN0cmluZyA9IHBhcnNlSWQoZnJvbUlkKTtcbiAgICBjb25zdCBmb3JtYXRUb0lkOiBzdHJpbmcgPSBwYXJzZUlkKHRvSWQpO1xuICAgIGNvbnN0IHVzZXJJZHM6IHN0cmluZ1tdID0gW2Zvcm1hdEZyb21JZCwgZm9ybWF0VG9JZF07XG4gICAgY29uc3Qgc29ydGVkVXNlcklkczogc3RyaW5nW10gPSB1c2VySWRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmKGEgPCBiKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIGlmKGEgPiBiKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gICAgY29uc3QgY29udmVyc2F0aW9uSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYGNvbnZlcnNhdGlvbnMtJHtzb3J0ZWRVc2VySWRzLmpvaW4oJy0nKX1gLCBudWxsKTtcbiAgICBjb25zdCB1c2VyOiBVc2VyID0gYXdhaXQgZ2V0VXNlcihjb250ZXh0LCB7dXNlcklkOiBmb3JtYXRUb0lkfSk7XG5cbiAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCBjID0gRE9DVU1FTlQoJHtgY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbklkfWB9KSBSRVRVUk4gY2A7XG4gICAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xuXG4gICAgaWYoY29udmVyc2F0aW9uKSB7XG4gICAgICByZXR1cm4gey4uLmNvbnZlcnNhdGlvbiwgdXNlcnM6IFt1c2VyXX07XG4gICAgfVxuXG4gICAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGluc2VydCA9IHtcbiAgICAgIF9rZXk6IGNvbnZlcnNhdGlvbklkLFxuICAgICAgYWRkZWQ6IG5vdyxcbiAgICAgIGlzRGlyZWN0OiB0cnVlLFxuICAgICAgbW9kaWZpZWQ6IG5vd1xuICAgIH07XG4gICAgY29uc3QgaW5zZXJ0UXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2luc2VydH0gSU4gY29udmVyc2F0aW9ucyBSRVRVUk4gTkVXYDtcbiAgICBjb25zdCB1cGRhdGVkQ29udmVyc2F0aW9uID0gYXdhaXQgZGF0YWJhc2UucXVlcnkoaW5zZXJ0UXVlcnkpXG4gICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh1c2VySWRzLm1hcCgodXNlcklkKSA9PiB7XG4gICAgICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYGhhc0NvbnZlcnNhdGlvbnMtJHt1c2VySWR9LSR7Y29udmVyc2F0aW9uSWR9YCk7XG4gICAgICBjb25zdCBlZGdlOiBhbnkgPSB7XG4gICAgICAgIF9mcm9tOiBgdXNlcnMvJHt1c2VySWR9YCxcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBfdG86IGBjb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YCxcbiAgICAgICAgYWRkZWQ6IERhdGUubm93KClcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnNlcnRFZGdlUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2VkZ2V9IElOIGhhc0NvbnZlcnNhdGlvbnMgUkVUVVJOIE5FV2A7XG4gICAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoaW5zZXJ0RWRnZVF1ZXJ5KTtcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gey4uLnVwZGF0ZWRDb252ZXJzYXRpb24sIHVzZXJzOiBbdXNlcl19O1xuICB9IGNhdGNoKHVwZGF0ZUVycm9yKSB7XG4gICAgcmV0dXJuIGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCB1cGRhdGVFcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25Vc2VycyA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZyxcbiAgaW5jbHVkZUFsbDogYm9vbGVhbiA9IGZhbHNlLFxuICBpc0RpcmVjdD86IGJvb2xlYW5cbik6IFByb21pc2U8Q29ubmVjdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRDb252ZXJzYXRpb25Vc2Vycyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvblVzZXJJZH19ID0gY29udGV4dDtcbiAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbJ2MudXNlcklkID09IHUuX2tleSddO1xuXG4gIGlmKCFpbmNsdWRlQWxsKSB7XG4gICAgZmlsdGVycy5wdXNoKGB1Ll9rZXkgIT0gJHtzZXNzaW9uVXNlcklkfWApO1xuICB9XG4gIGlmKGlzRGlyZWN0KSB7XG4gICAgZmlsdGVycy5wdXNoKGBwLnZlcnRpY2VzWzBdLmlzRGlyZWN0ID09ICR7aXNEaXJlY3R9YCk7XG4gIH1cblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiB1LCBlLHAgSU4gMS4uMSBJTkJPVU5EICR7YGNvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gfSBoYXNDb252ZXJzYXRpb25zXG4gICAgT1BUSU9OUyB7dmVydGV4Q29sbGVjdGlvbnM6IFwidXNlcnNcIn1cbiAgICBGT1IgYyBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiAke2ZpbHRlcnMuam9pbignICYmICcpfVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9uVXNlcnMgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsXG4gIGluY2x1ZGVBbGw6IGJvb2xlYW4gPSBmYWxzZSxcbiAgaXNEaXJlY3Q/OiBib29sZWFuXG4pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRDb252ZXJzYXRpb25Vc2Vycyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvblVzZXJJZH19ID0gY29udGV4dDtcbiAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbJ2MudXNlcklkID09IHUuX2tleSddO1xuXG4gIGlmKCFpbmNsdWRlQWxsKSB7XG4gICAgZmlsdGVycy5wdXNoKGB1Ll9rZXkgIT0gJHtzZXNzaW9uVXNlcklkfWApO1xuICB9XG4gIGlmKGlzRGlyZWN0KSB7XG4gICAgZmlsdGVycy5wdXNoKGBwLnZlcnRpY2VzWzBdLmlzRGlyZWN0ID09ICR7aXNEaXJlY3R9YCk7XG4gIH1cblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiB1LCBlLHAgSU4gMS4uMSBJTkJPVU5EICR7YGNvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gfSBoYXNDb252ZXJzYXRpb25zXG4gICAgT1BUSU9OUyB7dmVydGV4Q29sbGVjdGlvbnM6IFwidXNlcnNcIn1cbiAgICBGSUxURVIgJHtmaWx0ZXJzLmpvaW4oJyAmJiAnKX1cbiAgICBSRVRVUk4gdWA7XG5cbiAgY29uc29sZS5sb2coe2FxbFFyeX0pO1xuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uT2xkID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldERpcmVjdENvbnZlcnNhdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQodXNlcklkKTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCBmcm9tID0gKFxuICAgICAgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCAke3Nlc3Npb25Eb2NJZH0gaGFzQ29udmVyc2F0aW9uc1xuICAgICAgRklMVEVSIGMuZGlyZWN0ID09IHRydWVcbiAgICAgIFJFVFVSTiBjXG4gICAgKVxuICAgIExFVCB0byA9IChcbiAgICAgIEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtmb3JtYXRVc2VySWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiBjLmRpcmVjdCA9PSB0cnVlXG4gICAgICBSRVRVUk4gY1xuICAgIClcbiAgICBMRVQgY29udmVyc2F0aW9uID0gRklSU1QoSU5URVJTRUNUSU9OKGZyb20sIHRvKSlcbiAgICBMRVQgdXNlcnMgPSAhSVNfTlVMTChjb252ZXJzYXRpb24pICYmIChcbiAgICAgIEZPUiBnIElOWyR7c2Vzc2lvbkRvY0lkfSwgJHtmb3JtYXRVc2VySWR9XVxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiBnID09IHUuX2lkXG4gICAgICBSRVRVUk4gdVxuICAgIClcbiAgICBSRVRVUk4gSVNfTlVMTChjb252ZXJzYXRpb24pID8gbnVsbCA6IE1FUkdFKGNvbnZlcnNhdGlvbiwge3VzZXJzOiB1c2Vyc30pYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0SXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke3BhcnNlSWQoY29udm9JZCl9YDtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGSUxURVIgYy5faWQgPT0gJHtjb252b0RvY0lkfVxuICAgIExFVCB1ID0gKFxuICAgICAgRk9SIGluVXNlciwgaW5FZGdlIElOIDEuLjEgSU5CT1VORCAke2NvbnZvRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIFJFVFVSTiBpblVzZXJcbiAgICApXG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBNRVJHRShjLCB7dXNlcnM6IHV9KWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlID0ge30pID0+IHtcbiAgICAgIGlmKCFpc0VtcHR5KGNvbnZlcnNhdGlvbikpIHtcbiAgICAgICAgY29udmVyc2F0aW9uLnVzZXJzID0gY29udmVyc2F0aW9uLnVzZXJzLm1hcCgodXNlcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3Qge2ltYWdlSWQsIHVzZXJJZH0gPSB1c2VyO1xuICAgICAgICAgIGNvbnN0IHRodW1iVXJsRGF0YTogSW1hZ2VVcmxEYXRhID0ge1xuICAgICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICAgIGlzVGh1bWI6IHRydWUsXG4gICAgICAgICAgICB1c2VySWRcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgbmFtZTogZ2V0RGlzcGxheU5hbWUodXNlciksXG4gICAgICAgICAgICB0aHVtYjogZ2V0VXNlckltYWdlVXJsKHRodW1iVXJsRGF0YSlcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY29udmVyc2F0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZlcnNhdGlvbik6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVDb252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGNvbnZlcnNhdGlvbklkID0gY3JlYXRlSGFzaChgY29udmVyc2F0aW9uLSR7c2Vzc2lvbklkfSBgKSxcbiAgICBkaXJlY3QgPSBmYWxzZSxcbiAgICBuYW1lXG4gIH0gPSBjb252ZXJzYXRpb247XG4gIGNvbnN0IGZvcm1hdENvbnZlcnNhdGlvbklkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZlcnNhdGlvbklkKTtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCB1cGRhdGU6IGFueSA9IHtcbiAgICAvLyBEaXJlY3QgbWVzc2FnZVxuICAgIGRpcmVjdCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWVcbiAgfTtcblxuICBjb25zdCBpbnNlcnQ6IGFueSA9IHtcbiAgICAuLi5jbG9uZURlZXAodXBkYXRlKSxcbiAgICBfa2V5OiBmb3JtYXRDb252ZXJzYXRpb25JZCxcbiAgICBhZGRlZDogbm93XG4gIH07XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge19rZXk6ICR7Zm9ybWF0Q29udmVyc2F0aW9uSWR9IH1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfVxuICAgIElOIGNvbnZlcnNhdGlvbnMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlID0ge30pID0+IGNvbnZlcnNhdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRVc2VyVG9Db252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZykgPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRVc2VyVG9Db252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0Q29udm9JZDogc3RyaW5nID0gcGFyc2VJZChjb252b0lkKTtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7Zm9ybWF0Q29udm9JZH0gYDtcbiAgY29uc3QgdXNlckRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtmb3JtYXRVc2VySWR9IGA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYyBJTiBoYXNDb252ZXJzYXRpb25zXG4gICAgRklMVEVSIGMuX2Zyb20gPT0gJHt1c2VyRG9jSWR9ICYmIGMuX3RvID09ICR7Y29udm9Eb2NJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIGNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbkVkZ2UpID0+IHtcbiAgICAgIGlmKCEhY29udmVyc2F0aW9uRWRnZSkge1xuICAgICAgICByZXR1cm4gY29udmVyc2F0aW9uRWRnZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGF0YWJhc2UuY29sbGVjdGlvbignaGFzQ29udmVyc2F0aW9ucycpO1xuICAgICAgY29uc3QgZWRnZUlkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBjb252byAtICR7Zm9ybWF0Q29udm9JZH0gLSR7Zm9ybWF0VXNlcklkfSBgKTtcblxuICAgICAgY29uc3QgZWRnZTogQ29udmVyc2F0aW9uVHlwZSA9IHtcbiAgICAgICAgX2Zyb206IHVzZXJEb2NJZCxcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBfdG86IGNvbnZvRG9jSWQsXG4gICAgICAgIGFkZGVkOiBEYXRlLm5vdygpXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCB7cmV0dXJuTmV3OiB0cnVlfSkudGhlbigoKSA9PiBlZGdlKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVVzZXJGcm9tQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlVXNlckZyb21Db252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0Q29udm9JZDogc3RyaW5nID0gcGFyc2VJZChjb252b0lkKTtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zIC8gJHtmb3JtYXRDb252b0lkfSBgO1xuICBjb25zdCB1c2VyRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke2Zvcm1hdFVzZXJJZH0gYDtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBjIElOIGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGSUxURVIgYy5fZnJvbSA9PSAke3VzZXJEb2NJZH0gJiYgYy5fdG8gPT0gJHtjb252b0RvY0lkfVxuICAgIExJTUlUIDFcbiAgICBSRU1PVkUgYyBJTiBoYXNDb252ZXJzYXRpb25zXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLG1CQUFpRDtBQUNqRCxzQkFBa0I7QUFJbEIsdUJBQXNCO0FBQ3RCLHFCQUFvQjtBQUlwQixvQkFBdUI7QUFDdkIsdUJBQXVCO0FBQ3ZCLG9CQUE4QjtBQUM5QixtQkFBc0M7QUFFdEMsTUFBTSxnQkFBd0I7QUFFdkIsTUFBTSxtQkFBbUIsQ0FBQyxTQUFxQixFQUFDLE1BQU0sU0FBcUM7QUFDaEcsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxnQkFBYztBQUNqRCxRQUFNLFFBQXVCLDRCQUFTLE1BQU07QUFDNUMsUUFBTSxlQUF1QixTQUFTO0FBQ3RDLFFBQU0sU0FBaUIsOEJBQThCO0FBQUEsTUFDakQsTUFBTTtBQUFBO0FBQUE7QUFBQSx5QkFHYTtBQUFBO0FBQUE7QUFBQTtBQUt2QixTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxPQUNyQyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sd0JBQXdCLE9BQ25DLFNBQ0EsUUFDQSxTQUM4QjtBQUM5QixRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0s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LElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sd0JBQXdCLENBQUMsU0FBcUIsU0FBaUIsV0FBbUI7QUFDN0YsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsYUFBWTtBQUNuQixRQUFNLGdCQUF3QiwwQkFBUTtBQUN0QyxRQUFNLGVBQXVCLDBCQUFRO0FBQ3JDLFFBQU0sYUFBcUIsaUJBQWlCO0FBQzVDLFFBQU0sWUFBb0IsU0FBUztBQUVuQyxRQUFNLFNBQW1CO0FBQUEsd0JBQ0gseUJBQXlCO0FBQUE7QUFBQTtBQUkvQyxTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxRQUNyQyxLQUFLLENBQUMscUJBQXFCO0FBQzFCLFFBQUcsQ0FBQyxDQUFDLGtCQUFrQjtBQUNyQixhQUFPO0FBQUE7QUFHVCxVQUFNLGlCQUFpQyxTQUFTLFdBQVc7QUFDM0QsVUFBTSxTQUFpQiw2QkFBVyxXQUFXLGtCQUFrQjtBQUUvRCxVQUFNLE9BQXlCO0FBQUEsTUFDN0IsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsT0FBTyxLQUFLO0FBQUE7QUFHZCxXQUFPLGVBQWUsS0FBSyxNQUFNLEVBQUMsV0FBVyxRQUFPLEtBQUssTUFBTTtBQUFBLEtBRWhFLE1BQU0sQ0FBQyxVQUFpQiwrQkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsS0FDTixPQUFPLFNBQVMsS0FBSyxNQUFNO0FBQUE7QUFHM0IsTUFBTSw2QkFBNkIsQ0FBQyxTQUFxQixTQUFpQixXQUFtQjtBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxhQUFZO0FBQ25CLFFBQU0sZ0JBQXdCLDBCQUFRO0FBQ3RDLFFBQU0sZUFBdUIsMEJBQVE7QUFDckMsUUFBTSxhQUFxQixtQkFBbUI7QUFDOUMsUUFBTSxZQUFvQixTQUFTO0FBRW5DLFFBQU0sU0FBbUI7QUFBQSx3QkFDSCx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFLL0MsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
332
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvY29udmVyc2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbic7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcblxuaW1wb3J0IHtBcmFuZ29EQkxpbWl0LCBDb25uZWN0aW9uVHlwZSwgQ29udmVyc2F0aW9uVHlwZSwgSW1hZ2VVcmxEYXRhLCBVc2VyfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgnO1xuaW1wb3J0IHtnZXRMaW1pdH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzJztcbmltcG9ydCB7Z2V0VXNlckltYWdlVXJsfSBmcm9tICcuL2ltYWdlcyc7XG5pbXBvcnQge2dldERpc3BsYXlOYW1lLCBnZXRVc2VyfSBmcm9tICcuL3VzZXJzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2NvbnZlcnNhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9ucyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB7ZnJvbSwgdG99KTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0Q29udmVyc2F0aW9ucyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBsaW1pdDogQXJhbmdvREJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCBcIiR7c2Vzc2lvbkRvY0lkfVwiIGhhc0NvbnZlcnNhdGlvbnNcbiAgICAke2xpbWl0LmFxbH1cbiAgICBMRVQgdXNlcnMgPSAoXG4gICAgICBGT1IgdSwgdWMgSU4gMS4uMSBJTkJPVU5EIGMuX2lkIGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiB1Ll9pZCAhPSBcIiR7c2Vzc2lvbkRvY0lkfVwiXG4gICAgICBSRVRVUk4gdVxuICAgIClcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXJzOiB1c2Vyc30pYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBmcm9tSWQ6IHN0cmluZyxcbiAgdG9JZDogc3RyaW5nXG4pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0RGlyZWN0Q29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBmb3JtYXRGcm9tSWQ6IHN0cmluZyA9IHBhcnNlSWQoZnJvbUlkKTtcbiAgICBjb25zdCBmb3JtYXRUb0lkOiBzdHJpbmcgPSBwYXJzZUlkKHRvSWQpO1xuICAgIGNvbnN0IHVzZXJJZHM6IHN0cmluZ1tdID0gW2Zvcm1hdEZyb21JZCwgZm9ybWF0VG9JZF07XG4gICAgY29uc3Qgc29ydGVkVXNlcklkczogc3RyaW5nW10gPSB1c2VySWRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmKGEgPCBiKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIGlmKGEgPiBiKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gICAgY29uc3QgY29udmVyc2F0aW9uSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYGNvbnZlcnNhdGlvbnMtJHtzb3J0ZWRVc2VySWRzLmpvaW4oJy0nKX1gLCBudWxsKTtcbiAgICBjb25zdCB1c2VyOiBVc2VyID0gYXdhaXQgZ2V0VXNlcihjb250ZXh0LCB7dXNlcklkOiBmb3JtYXRUb0lkfSk7XG5cbiAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCBjID0gRE9DVU1FTlQoJHtgY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbklkfWB9KSBSRVRVUk4gY2A7XG4gICAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xuXG4gICAgaWYoY29udmVyc2F0aW9uKSB7XG4gICAgICByZXR1cm4gey4uLmNvbnZlcnNhdGlvbiwgdXNlcnM6IFt1c2VyXX07XG4gICAgfVxuXG4gICAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGluc2VydCA9IHtcbiAgICAgIF9rZXk6IGNvbnZlcnNhdGlvbklkLFxuICAgICAgYWRkZWQ6IG5vdyxcbiAgICAgIGlzRGlyZWN0OiB0cnVlLFxuICAgICAgbW9kaWZpZWQ6IG5vd1xuICAgIH07XG4gICAgY29uc3QgaW5zZXJ0UXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2luc2VydH0gSU4gY29udmVyc2F0aW9ucyBSRVRVUk4gTkVXYDtcbiAgICBjb25zdCB1cGRhdGVkQ29udmVyc2F0aW9uID0gYXdhaXQgZGF0YWJhc2UucXVlcnkoaW5zZXJ0UXVlcnkpXG4gICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh1c2VySWRzLm1hcCgodXNlcklkKSA9PiB7XG4gICAgICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYGhhc0NvbnZlcnNhdGlvbnMtJHt1c2VySWR9LSR7Y29udmVyc2F0aW9uSWR9YCk7XG4gICAgICBjb25zdCBlZGdlOiBhbnkgPSB7XG4gICAgICAgIF9mcm9tOiBgdXNlcnMvJHt1c2VySWR9YCxcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBfdG86IGBjb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YCxcbiAgICAgICAgYWRkZWQ6IERhdGUubm93KClcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnNlcnRFZGdlUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2VkZ2V9IElOIGhhc0NvbnZlcnNhdGlvbnMgUkVUVVJOIE5FV2A7XG4gICAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoaW5zZXJ0RWRnZVF1ZXJ5KTtcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gey4uLnVwZGF0ZWRDb252ZXJzYXRpb24sIHVzZXJzOiBbdXNlcl19O1xuICB9IGNhdGNoKHVwZGF0ZUVycm9yKSB7XG4gICAgcmV0dXJuIGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCB1cGRhdGVFcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25Vc2VycyA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZyxcbiAgaW5jbHVkZUFsbDogYm9vbGVhbiA9IGZhbHNlLFxuICBpc0RpcmVjdD86IGJvb2xlYW5cbik6IFByb21pc2U8Q29ubmVjdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRDb252ZXJzYXRpb25Vc2Vycyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvblVzZXJJZH19ID0gY29udGV4dDtcbiAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbJ2MudXNlcklkID09IHUuX2tleSddO1xuXG4gIGlmKCFpbmNsdWRlQWxsKSB7XG4gICAgZmlsdGVycy5wdXNoKGB1Ll9rZXkgIT0gJHtzZXNzaW9uVXNlcklkfWApO1xuICB9XG4gIGlmKGlzRGlyZWN0KSB7XG4gICAgZmlsdGVycy5wdXNoKGBwLnZlcnRpY2VzWzBdLmlzRGlyZWN0ID09ICR7aXNEaXJlY3R9YCk7XG4gIH1cblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiB1LCBlLHAgSU4gMS4uMSBJTkJPVU5EICR7YGNvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gfSBoYXNDb252ZXJzYXRpb25zXG4gICAgT1BUSU9OUyB7dmVydGV4Q29sbGVjdGlvbnM6IFwidXNlcnNcIn1cbiAgICBGT1IgYyBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiAke2ZpbHRlcnMuam9pbignICYmICcpfVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVyc2F0aW9uVXNlcnMgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsXG4gIGluY2x1ZGVBbGw6IGJvb2xlYW4gPSBmYWxzZSxcbiAgaXNEaXJlY3Q/OiBib29sZWFuXG4pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRDb252ZXJzYXRpb25Vc2Vycyc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvblVzZXJJZH19ID0gY29udGV4dDtcbiAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbJ2MudXNlcklkID09IHUuX2tleSddO1xuXG4gIGlmKCFpbmNsdWRlQWxsKSB7XG4gICAgZmlsdGVycy5wdXNoKGB1Ll9rZXkgIT0gJHtzZXNzaW9uVXNlcklkfWApO1xuICB9XG4gIGlmKGlzRGlyZWN0KSB7XG4gICAgZmlsdGVycy5wdXNoKGBwLnZlcnRpY2VzWzBdLmlzRGlyZWN0ID09ICR7aXNEaXJlY3R9YCk7XG4gIH1cblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiB1LCBlLHAgSU4gMS4uMSBJTkJPVU5EICR7YGNvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gfSBoYXNDb252ZXJzYXRpb25zXG4gICAgT1BUSU9OUyB7dmVydGV4Q29sbGVjdGlvbnM6IFwidXNlcnNcIn1cbiAgICBGSUxURVIgJHtmaWx0ZXJzLmpvaW4oJyAmJiAnKX1cbiAgICBSRVRVUk4gdWA7XG5cbiAgY29uc29sZS5sb2coe2FxbFFyeX0pO1xuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uT2xkID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldERpcmVjdENvbnZlcnNhdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQodXNlcklkKTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCBmcm9tID0gKFxuICAgICAgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCAke3Nlc3Npb25Eb2NJZH0gaGFzQ29udmVyc2F0aW9uc1xuICAgICAgRklMVEVSIGMuZGlyZWN0ID09IHRydWVcbiAgICAgIFJFVFVSTiBjXG4gICAgKVxuICAgIExFVCB0byA9IChcbiAgICAgIEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtmb3JtYXRVc2VySWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiBjLmRpcmVjdCA9PSB0cnVlXG4gICAgICBSRVRVUk4gY1xuICAgIClcbiAgICBMRVQgY29udmVyc2F0aW9uID0gRklSU1QoSU5URVJTRUNUSU9OKGZyb20sIHRvKSlcbiAgICBMRVQgdXNlcnMgPSAhSVNfTlVMTChjb252ZXJzYXRpb24pICYmIChcbiAgICAgIEZPUiBnIElOWyR7c2Vzc2lvbkRvY0lkfSwgJHtmb3JtYXRVc2VySWR9XVxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiBnID09IHUuX2lkXG4gICAgICBSRVRVUk4gdVxuICAgIClcbiAgICBSRVRVUk4gSVNfTlVMTChjb252ZXJzYXRpb24pID8gbnVsbCA6IE1FUkdFKGNvbnZlcnNhdGlvbiwge3VzZXJzOiB1c2Vyc30pYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252b0lkOiBzdHJpbmcpOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0SXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke3BhcnNlSWQoY29udm9JZCl9YDtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGSUxURVIgYy5faWQgPT0gJHtjb252b0RvY0lkfVxuICAgIExFVCB1ID0gKFxuICAgICAgRk9SIGluVXNlciwgaW5FZGdlIElOIDEuLjEgSU5CT1VORCAke2NvbnZvRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIFJFVFVSTiBpblVzZXJcbiAgICApXG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBNRVJHRShjLCB7dXNlcnM6IHV9KWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlID0ge30pID0+IHtcbiAgICAgIGlmKCFpc0VtcHR5KGNvbnZlcnNhdGlvbikpIHtcbiAgICAgICAgY29udmVyc2F0aW9uLnVzZXJzID0gY29udmVyc2F0aW9uLnVzZXJzLm1hcCgodXNlcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3Qge2ltYWdlSWQsIHVzZXJJZH0gPSB1c2VyO1xuICAgICAgICAgIGNvbnN0IHRodW1iVXJsRGF0YTogSW1hZ2VVcmxEYXRhID0ge1xuICAgICAgICAgICAgaW1hZ2VJZCxcbiAgICAgICAgICAgIGlzVGh1bWI6IHRydWUsXG4gICAgICAgICAgICB1c2VySWRcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgbmFtZTogZ2V0RGlzcGxheU5hbWUodXNlciksXG4gICAgICAgICAgICB0aHVtYjogZ2V0VXNlckltYWdlVXJsKHRodW1iVXJsRGF0YSlcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY29udmVyc2F0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZlcnNhdGlvbik6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVDb252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGNvbnZlcnNhdGlvbklkID0gY3JlYXRlSGFzaChgY29udmVyc2F0aW9uLSR7c2Vzc2lvbklkfSBgKSxcbiAgICBkaXJlY3QgPSBmYWxzZSxcbiAgICBuYW1lXG4gIH0gPSBjb252ZXJzYXRpb247XG4gIGNvbnN0IGZvcm1hdENvbnZlcnNhdGlvbklkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZlcnNhdGlvbklkKTtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCB1cGRhdGU6IGFueSA9IHtcbiAgICAvLyBEaXJlY3QgbWVzc2FnZVxuICAgIGRpcmVjdCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWVcbiAgfTtcblxuICBjb25zdCBpbnNlcnQ6IGFueSA9IHtcbiAgICAuLi5jbG9uZURlZXAodXBkYXRlKSxcbiAgICBfa2V5OiBmb3JtYXRDb252ZXJzYXRpb25JZCxcbiAgICBhZGRlZDogbm93XG4gIH07XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge19rZXk6ICR7Zm9ybWF0Q29udmVyc2F0aW9uSWR9IH1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfVxuICAgIElOIGNvbnZlcnNhdGlvbnMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlID0ge30pID0+IGNvbnZlcnNhdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRVc2VyVG9Db252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZykgPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRVc2VyVG9Db252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0Q29udm9JZDogc3RyaW5nID0gcGFyc2VJZChjb252b0lkKTtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7Zm9ybWF0Q29udm9JZH0gYDtcbiAgY29uc3QgdXNlckRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtmb3JtYXRVc2VySWR9IGA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYyBJTiBoYXNDb252ZXJzYXRpb25zXG4gICAgRklMVEVSIGMuX2Zyb20gPT0gJHt1c2VyRG9jSWR9ICYmIGMuX3RvID09ICR7Y29udm9Eb2NJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIGNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbkVkZ2UpID0+IHtcbiAgICAgIGlmKCEhY29udmVyc2F0aW9uRWRnZSkge1xuICAgICAgICByZXR1cm4gY29udmVyc2F0aW9uRWRnZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGF0YWJhc2UuY29sbGVjdGlvbignaGFzQ29udmVyc2F0aW9ucycpO1xuICAgICAgY29uc3QgZWRnZUlkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBjb252byAtICR7Zm9ybWF0Q29udm9JZH0gLSR7Zm9ybWF0VXNlcklkfSBgKTtcblxuICAgICAgY29uc3QgZWRnZTogQ29udmVyc2F0aW9uVHlwZSA9IHtcbiAgICAgICAgX2Zyb206IHVzZXJEb2NJZCxcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBfdG86IGNvbnZvRG9jSWQsXG4gICAgICAgIGFkZGVkOiBEYXRlLm5vdygpXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCB7cmV0dXJuTmV3OiB0cnVlfSkudGhlbigoKSA9PiBlZGdlKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVVzZXJGcm9tQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlVXNlckZyb21Db252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0Q29udm9JZDogc3RyaW5nID0gcGFyc2VJZChjb252b0lkKTtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zIC8gJHtmb3JtYXRDb252b0lkfSBgO1xuICBjb25zdCB1c2VyRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke2Zvcm1hdFVzZXJJZH0gYDtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBjIElOIGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGSUxURVIgYy5fZnJvbSA9PSAke3VzZXJEb2NJZH0gJiYgYy5fdG8gPT0gJHtjb252b0RvY0lkfVxuICAgIExJTUlUIDFcbiAgICBSRU1PVkUgYyBJTiBoYXNDb252ZXJzYXRpb25zXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLG1CQUFpRDtBQUNqRCxzQkFBa0I7QUFJbEIsdUJBQXNCO0FBQ3RCLHFCQUFvQjtBQUlwQixvQkFBdUI7QUFDdkIsdUJBQXVCO0FBQ3ZCLG9CQUE4QjtBQUM5QixtQkFBc0M7QUFFdEMsTUFBTSxnQkFBd0I7QUFFdkIsTUFBTSxtQkFBbUIsQ0FBQyxTQUFxQixFQUFDLE1BQU0sU0FBcUM7QUFDaEcsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxnQkFBYztBQUNqRCxRQUFNLFFBQXVCLDRCQUFTLE1BQU07QUFDNUMsUUFBTSxlQUF1QixTQUFTO0FBQ3RDLFFBQU0sU0FBaUIsOEJBQThCO0FBQUEsTUFDakQsTUFBTTtBQUFBO0FBQUE7QUFBQSx5QkFHYTtBQUFBO0FBQUE7QUFBQTtBQUt2QixTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxPQUNyQyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sd0JBQXdCLE9BQ25DLFNBQ0EsUUFDQSxTQUM4QjtBQUM5QixRQUFNLFNBQWlCO0FBQ3ZCLFFB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QUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sd0JBQXdCLENBQUMsU0FBcUIsU0FBaUIsV0FBbUI7QUFDN0YsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsYUFBWTtBQUNuQixRQUFNLGdCQUF3QiwwQkFBUTtBQUN0QyxRQUFNLGVBQXVCLDBCQUFRO0FBQ3JDLFFBQU0sYUFBcUIsaUJBQWlCO0FBQzVDLFFBQU0sWUFBb0IsU0FBUztBQUVuQyxRQUFNLFNBQW1CO0FBQUEsd0JBQ0gseUJBQXlCO0FBQUE7QUFBQTtBQUkvQyxTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxRQUNyQyxLQUFLLENBQUMscUJBQXFCO0FBQzFCLFFBQUcsQ0FBQyxDQUFDLGtCQUFrQjtBQUNyQixhQUFPO0FBQUE7QUFHVCxVQUFNLGlCQUFpQyxTQUFTLFdBQVc7QUFDM0QsVUFBTSxTQUFpQiw2QkFBVyxXQUFXLGtCQUFrQjtBQUUvRCxVQUFNLE9BQXlCO0FBQUEsTUFDN0IsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsT0FBTyxLQUFLO0FBQUE7QUFHZCxXQUFPLGVBQWUsS0FBSyxNQUFNLEVBQUMsV0FBVyxRQUFPLEtBQUssTUFBTTtBQUFBLEtBRWhFLE1BQU0sQ0FBQyxVQUFpQiwrQkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsS0FDTixPQUFPLFNBQVMsS0FBSyxNQUFNO0FBQUE7QUFHM0IsTUFBTSw2QkFBNkIsQ0FBQyxTQUFxQixTQUFpQixXQUFtQjtBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxhQUFZO0FBQ25CLFFBQU0sZ0JBQXdCLDBCQUFRO0FBQ3RDLFFBQU0sZUFBdUIsMEJBQVE7QUFDckMsUUFBTSxhQUFxQixtQkFBbUI7QUFDOUMsUUFBTSxZQUFvQixTQUFTO0FBRW5DLFFBQU0sU0FBbUI7QUFBQSx3QkFDSCx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFLL0MsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
package/lib/actions/files.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Database } from 'arangojs';
|
|
3
|
-
import { ApiContext } from 'types/auth';
|
|
3
|
+
import { ApiContext } from '../types/auth';
|
|
4
4
|
import { FileType } from '../types/files';
|
|
5
5
|
export declare const addFile: (context: ApiContext, item?: FileType) => Promise<FileType>;
|
|
6
6
|
export declare const getGiphyTrends: (context: ApiContext, limit?: number) => Promise<any[]>;
|
package/lib/actions/files.js
CHANGED
|
@@ -316,4 +316,4 @@ const decodeBase64 = (dataString) => {
|
|
|
316
316
|
linkFiles,
|
|
317
317
|
updateFiles
|
|
318
318
|
});
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvZmlsZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2dldCBhcyBodHRwR2V0fSBmcm9tICdAbmxhYnMvcmlwLWh1bnRlcic7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbic7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuaW1wb3J0IHtnb29nbGV9IGZyb20gJ2dvb2dsZWFwaXMnO1xuaW1wb3J0IHtVc2VyRXJyb3J9IGZyb20gJ2dyYXBocWwtZXJyb3JzJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCAqIGFzIHJlcXVlc3QgZnJvbSAncmVxdWVzdC1wcm9taXNlJztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAndHlwZXMvYXV0aCc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtGaWxlVHlwZX0gZnJvbSAnLi4vdHlwZXMvZmlsZXMnO1xuaW1wb3J0IHtyZXNpemVTYXZlSW1hZ2V9IGZyb20gJy4vaW1hZ2VzJztcbmltcG9ydCB7Y3JlYXRlUG9zdEVkZ2V9IGZyb20gJy4vcG9zdHMnO1xuXG5jb25zdCB5b3V0dWJlID0gZ29vZ2xlLnlvdXR1YmUoe2F1dGg6IENvbmZpZy5nZXQoJ2dvb2dsZS5rZXknKSwgdmVyc2lvbjogJ3YzJ30pO1xucmVxdWVzdC5kZWZhdWx0cyh7ZW5jb2Rpbmc6IG51bGx9KTtcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2ZpbGVzJztcblxuLy8gVXBsb2FkIGZpbGVcbmV4cG9ydCBjb25zdCBhZGRGaWxlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGl0ZW06IEZpbGVUeXBlID0ge30pOiBQcm9taXNlPEZpbGVUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkLCB1c2VyQWNjZXNzfX0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZGVzY3JpcHRpb24sXG4gICAgZmlsZUlkLFxuICAgIGZpbGVUeXBlLFxuICAgIG5hbWUsXG4gICAgdXJsXG4gIH0gPSBpdGVtO1xuXG4gIC8vIElkXG4gIGNvbnN0IGZvcm1hdEZpbGVJZDogc3RyaW5nID0gZmlsZUlkID8gcGFyc2VJZChmaWxlSWQpIDogY3JlYXRlSGFzaChgZmlsZS0ke3Nlc3Npb25JZH1gKTtcblxuICAvLyBOYW1lXG4gIGNvbnN0IGlzVXJsOiBib29sZWFuID0gaXNFbXB0eSh1cmwpO1xuXG4gIC8vIElmIG5vIG5hbWUsIGdldCBpdCBmcm9tIHVybCBwYXRoXG4gIGxldCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhuYW1lLCAxNjApO1xuICBsZXQgZm9ybWF0VHlwZTogc3RyaW5nID0gcGFyc2VTdHJpbmcoZmlsZVR5cGUsIDE2KTtcblxuICBpZihmb3JtYXROYW1lID09PSAnJyAmJiBpc1VybCkge1xuICAgIGZvcm1hdE5hbWUgPSB1cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZignLycpICsgMSk7XG4gIH1cblxuICBpZihmb3JtYXRUeXBlID09PSAnJykge1xuICAgIGNvbnN0IG5hbWVBcnI6IHN0cmluZ1tdID0gZm9ybWF0TmFtZS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGV4dDogc3RyaW5nID0gbmFtZUFycltuYW1lQXJyLmxlbmd0aCAtIDFdO1xuXG4gICAgc3dpdGNoKGV4dCkge1xuICAgICAgY2FzZSAnanBlZyc6XG4gICAgICBjYXNlICdqcGcnOlxuICAgICAgICBmb3JtYXRUeXBlID0gJ2ltYWdlL2pwZWcnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BuZyc6XG4gICAgICAgIGZvcm1hdFR5cGUgPSAnaW1hZ2UvcG5nJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd6aXAnOlxuICAgICAgICBmb3JtYXRUeXBlID0gJ2FwcGxpY2F0aW9uL3ppcCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgbGV0IGlzSW1hZ2U6IGJvb2xlYW47XG5cbiAgc3dpdGNoKGZvcm1hdFR5cGUpIHtcbiAgICBjYXNlICdpbWFnZS9qcGVnJzpcbiAgICBjYXNlICdpbWFnZS9wbmcnOlxuICAgICAgaXNJbWFnZSA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaXNJbWFnZSA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICAvLyBEZXNjcmlwdGlvblxuICBjb25zdCBmb3JtYXREZXNjOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKTtcblxuICAvLyBPbmx5IGFsbG93IGZpbGUgdXBsb2FkcyB0byBwcmVtaXVtIHVzZXJzXG4gIGlmKCFpc0ltYWdlICYmIHVzZXJBY2Nlc3MgIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgVXNlckVycm9yKCdhY2NvdW50X3Jlc3RyaWN0aW9uJyk7XG4gIH1cblxuICBjb25zdCBzYXZlVG9EYiA9IChpbnNlcnQ6IEZpbGVUeXBlKSA9PiB7XG4gICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIGZpbGVzIFJFVFVSTiBORVdgO1xuXG4gICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgLnRoZW4oKGZpbGUgPSB7fSkgPT4gZmlsZSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH07XG5cbiAgY29uc3QgdXBsb2FkRmlsZSA9IChidWY6IEJ1ZmZlciwgdXBsb2FkVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuXG4gICAgLy8gSWYgaW1hZ2UsIHJlc2l6ZSBhbmQgY3JlYXRlIGEgdGh1bWJuYWlsXG4gICAgaWYoaXNJbWFnZSkge1xuICAgICAgcmV0dXJuIHJlc2l6ZVNhdmVJbWFnZShjb250ZXh0LCBmb3JtYXRGaWxlSWQsIGJ1ZiwgdXBsb2FkVHlwZSlcbiAgICAgICAgLnRoZW4oKHJlc2l6ZWRJbWFnZTogRmlsZVR5cGUpID0+IHtcbiAgICAgICAgICBjb25zdCBpbnNlcnQ6IEZpbGVUeXBlID0ge1xuICAgICAgICAgICAgLi4ucmVzaXplZEltYWdlLFxuICAgICAgICAgICAgX2tleTogZm9ybWF0RmlsZUlkLFxuICAgICAgICAgICAgYWRkZWQ6IG5vdyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBmb3JtYXREZXNjLFxuICAgICAgICAgICAgZmlsZVR5cGU6IGZvcm1hdFR5cGUsXG4gICAgICAgICAgICBtb2RpZmllZDogbm93LFxuICAgICAgICAgICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICAgICAgICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBzYXZlVG9EYihpbnNlcnQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgaW5zZXJ0OiBGaWxlVHlwZSA9IHtcbiAgICAgIF9rZXk6IGZvcm1hdEZpbGVJZCxcbiAgICAgIGFkZGVkOiBub3csXG4gICAgICBkZXNjcmlwdGlvbjogZm9ybWF0RGVzYyxcbiAgICAgIGZpbGVUeXBlOiBmb3JtYXRUeXBlLFxuICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgIG5hbWU6IGZvcm1hdE5hbWUsXG4gICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgIH07XG5cbiAgICByZXR1cm4gc2F2ZVRvRGIoaW5zZXJ0KTtcbiAgfTtcblxuICAvLyBJZiBmaWxlIGlzIGEgdXJsIHBhdGgsIGRvd25sb2FkIHRoZSBmaWxlIGFuZCBzYXZlXG4gIGlmKGlzVXJsKSB7XG4gICAgcmV0dXJuIHJlcXVlc3QuZ2V0KHtlbmNvZGluZzogbnVsbCwgdXJpOiB1cmx9KVxuICAgICAgLnRoZW4oKGJvZHkpID0+IHVwbG9hZEZpbGUoQnVmZmVyLmZyb20oYm9keSwgJ2JpbmFyeScpLCBmb3JtYXRUeXBlKSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBVc2VyRXJyb3IoJ2ZpbGVfcmVxdWVzdCcpO1xuICAgICAgfSk7XG4gIH0gZWxzZSBpZihpdGVtLmJhc2U2NCAhPT0gJycpIHtcbiAgICBjb25zdCBidWZmZXI6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGl0ZW0uYmFzZTY0KTtcbiAgICByZXR1cm4gdXBsb2FkRmlsZShidWZmZXIsIGZvcm1hdFR5cGUpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignZmlsZV9yZXF1aXJlZCcpO1xufTtcblxuLy8gR2lwaHlcbmV4cG9ydCBjb25zdCBnZXRHaXBoeVRyZW5kcyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBsaW1pdDogbnVtYmVyID0gMzApOiBQcm9taXNlPGFueVtdPiA9PiB7XG4gIGNvbnN0IGdpZlVybDogc3RyaW5nID0gYGh0dHA6Ly9hcGkuZ2lwaHkuY29tL3YxL2dpZnMvdHJlbmRpbmc/YXBpX2tleT0ke0NvbmZpZy5nZXQoJ2dpcGh5LmtleScpfSZsaW1pdD0ke2xpbWl0fWA7XG5cbiAgcmV0dXJuIGh0dHBHZXQoZ2lmVXJsKVxuICAgIC50aGVuKChyZXM6IFJlc3BvbnNlKSA9PiByZXMuanNvbigpKVxuICAgIC50aGVuKChqc29uKSA9PiBqc29uLmRhdGEubWFwKChnaWZJbWFnZSA9IHtpZDogbnVsbCwgaW1hZ2VzOiBudWxsfSkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBpZCxcbiAgICAgICAgaW1hZ2VzOiB7XG4gICAgICAgICAgb3JpZ2luYWw6IHt1cmwgPSAnJ30gPSB7fSxcbiAgICAgICAgICBmaXhlZF9oZWlnaHRfc21hbGw6IHt1cmw6IHRodW1iID0gJyd9ID0ge31cbiAgICAgICAgfSA9IHt9XG4gICAgICB9ID0gZ2lmSW1hZ2U7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICB0aHVtYixcbiAgICAgICAgdHlwZTogJ2dpcGh5JyxcbiAgICAgICAgdXJsXG4gICAgICB9O1xuICAgIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHaXBoeVNlYXJjaCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBxdWVyeTogc3RyaW5nLCBsaW1pdDogbnVtYmVyID0gMzApOiBQcm9taXNlPGFueVtdPiA9PiB7XG4gIGNvbnN0IGZvcm1hdFF1ZXJ5OiBzdHJpbmcgPSBlbmNvZGVVUkkocXVlcnkpO1xuICBjb25zdCBnaWZVcmw6IHN0cmluZyA9IGBodHRwOi8vYXBpLmdpcGh5LmNvbS92MS9naWZzL3NlYXJjaD9xPSR7Zm9ybWF0UXVlcnl9JmFwaV9rZXk9JHtDb25maWcuZ2V0KCdnaXBoeS5rZXknKX0mbGltaXQ9JHtsaW1pdH1gO1xuXG4gIHJldHVybiBmZXRjaChnaWZVcmwpXG4gICAgLnRoZW4oKHJlczogUmVzcG9uc2UpID0+IHJlcy5qc29uKCkpXG4gICAgLnRoZW4oKGpzb24pID0+IGpzb24uZGF0YS5tYXAoKGdpZkltYWdlID0ge2lkOiBudWxsLCBpbWFnZXM6IG51bGx9KSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlkLFxuICAgICAgICBpbWFnZXM6IHtcbiAgICAgICAgICBvcmlnaW5hbDoge3VybCA9ICcnfSA9IHt9LFxuICAgICAgICAgIGZpeGVkX2hlaWdodF9zbWFsbDoge3VybDogdGh1bWIgPSAnJ30gPSB7fVxuICAgICAgICB9ID0ge31cbiAgICAgIH0gPSBnaWZJbWFnZTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQsXG4gICAgICAgIHRodW1iLFxuICAgICAgICB0eXBlOiAnZ2lwaHknLFxuICAgICAgICB1cmxcbiAgICAgIH07XG4gICAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFlvdVR1YmVUcmVuZHMgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxhbnlbXT4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHlvdXR1YmUudmlkZW9zLmxpc3Qoe1xuICAgICAgY2hhcnQ6ICdtb3N0UG9wdWxhcicsXG4gICAgICBtYXhSZXN1bHRzOiBsaW1pdCxcbiAgICAgIHBhcnQ6IFsnc25pcHBldCddLFxuICAgICAgcmVnaW9uQ29kZTogJ1VTJ1xuICAgIH0sIChlcnJvcjogRXJyb3IsIGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoZXJyb3JbMF0ubWVzc2FnZSkpO1xuICAgICAgfSBlbHNlIGlmKGRhdGEpIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IGRhdGEuaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgIHRodW1iOiBpdGVtLnNuaXBwZXQudGh1bWJuYWlscy5oaWdoLnVybCxcbiAgICAgICAgICB0eXBlOiAneW91dHViZScsXG4gICAgICAgICAgdXJsOiBgaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke2l0ZW0uaWR9YFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgcmVzb2x2ZShsaXN0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cblxuZXhwb3J0IGNvbnN0IGdldFlvdVR1YmVTZWFyY2ggPSAoY29udGV4dDogQXBpQ29udGV4dCwgcXVlcnk6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxhbnlbXT4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHlvdXR1YmUuc2VhcmNoLmxpc3Qoe1xuICAgICAgbWF4UmVzdWx0czogbGltaXQsXG4gICAgICBwYXJ0OiBbJ3NuaXBwZXQnXSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgcTogcXVlcnksXG4gICAgICByZWdpb25Db2RlOiAnVVMnXG4gICAgfSwgKGVycm9yOiBFcnJvciwgZGF0YTogYW55KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihlcnJvclswXS5tZXNzYWdlKSk7XG4gICAgICB9IGVsc2UgaWYoZGF0YSkge1xuICAgICAgICBjb25zdCB7aXRlbXN9ID0gZGF0YTtcbiAgICAgICAgY29uc3QgbGlzdCA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgICB0aHVtYjogaXRlbS5zbmlwcGV0LnRodW1ibmFpbHMuaGlnaC51cmwsXG4gICAgICAgICAgdHlwZTogJ3lvdXR1YmUnLFxuICAgICAgICAgIHVybDogYGh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtpdGVtLmlkfWBcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHJlc29sdmUobGlzdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4vLyBGaWxlc1xuZXhwb3J0IGNvbnN0IGdldFBhdGhVc2VyRmlsZXMgPSAodXNlcklkOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4gYHVzZXJzLyR7dXNlcklkfS9maWxlcy8ke2ZpbGVuYW1lfWA7XG5cbmV4cG9ydCBjb25zdCBnZXRVcmxVc2VyRmlsZXMgPSAodXNlcklkOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcsIGRpcjogc3RyaW5nID0gJ2ZpbGVzJywgdHlwZTogc3RyaW5nID0gJ3Byb2ZpbGUnKTogc3RyaW5nID0+IHtcbiAgaWYoZmlsZW5hbWUpIHtcbiAgICByZXR1cm4gYGh0dHBzOi8vYm94LiR7Q29uZmlnLmdldCgnYXBwLnVybCcpfS91c2Vycy8ke3VzZXJJZH0vJHtkaXJ9LyR7ZmlsZW5hbWV9YDtcbiAgfVxuXG4gIGlmKHR5cGUgPT09ICdwcm9maWxlJykge1xuICAgIHJldHVybiBgaHR0cHM6Ly9ib3guJHtDb25maWcuZ2V0KCdhcHAudXJsJyl9L2RlZmF1bHRzL3VzZXJfYmsuanBnYDtcbiAgfVxuXG4gIHJldHVybiBgaHR0cHM6Ly9ib3guJHtDb25maWcuZ2V0KCdhcHAudXJsJyl9L2RlZmF1bHRzL3VzZXJfd2guanBnYDtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVGaWxlID0gKGRiOiBEYXRhYmFzZSwgZmlsZTogRmlsZVR5cGUpOiBQcm9taXNlPEZpbGVUeXBlPiA9PiB7XG4gIGNvbnN0IHtmaWxlSWR9ID0gZmlsZTtcbiAgY29uc3QgaW5zZXJ0OiBhbnkgPSB7XG4gICAgX2tleTogZmlsZUlkLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpXG4gIH07XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge19rZXk6ICR7ZmlsZUlkfX1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFIHt9XG4gICAgSU4gZmlsZXMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigodXBkYXRlZEZpbGU6IEZpbGVUeXBlID0ge30pID0+IHVwZGF0ZWRGaWxlKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBsaW5rRmlsZXMgPSAoZGI6IERhdGFiYXNlLCBmaWxlczogRmlsZVR5cGVbXSwgcG9zdElkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT5cbiAgUHJvbWlzZS5hbGwoXG4gICAgZmlsZXMubWFwKChmaWxlOiBGaWxlVHlwZSkgPT4gY3JlYXRlRmlsZShkYiwgZmlsZSlcbiAgICAgIC50aGVuKChmaWxlOiBGaWxlVHlwZSkgPT4gY3JlYXRlUG9zdEVkZ2UoZGIsIGZpbGUsIHBvc3RJZCkpKVxuICApO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlRmlsZXMgPSAoZGI6IERhdGFiYXNlLCBwb3N0SWQ6IHN0cmluZywgZmlsZXM6IEZpbGVUeXBlW10pOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSBkYi5jb2xsZWN0aW9uKCdpc1Bvc3RlZCcpO1xuXG4gIHJldHVybiBlZGdlQ29sbGVjdGlvbi5pbkVkZ2VzKHBvc3RJZClcbiAgICAudGhlbigoZWRnZXM6IGFueSkgPT4ge1xuICAgICAgaWYoZWRnZXMubGVuZ3RoKSB7XG4gICAgICAgIC8vIFJlbW92ZSBsaW5rZWQgZWRnZXNcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgICAgIGVkZ2VzLm1hcCgoZWRnZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qge19rZXk6IGVkZ2VLZXl9ID0gZWRnZTtcbiAgICAgICAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgUkVNT1ZFIHtfa2V5OiR7ZWRnZUtleX19IElOIGlzUG9zdGVkYDtcblxuICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSkuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmKGZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAvLyBMaW5rIGZpbGVzXG4gICAgICAgICAgICAgIHJldHVybiBsaW5rRmlsZXMoZGIsIGZpbGVzLCBwb3N0SWQpLnRoZW4oKCkgPT4gZmlsZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbGVzO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmKGZpbGVzLmxlbmd0aCkge1xuICAgICAgICAvLyBMaW5rIGZpbGVzXG4gICAgICAgIHJldHVybiBsaW5rRmlsZXMoZGIsIGZpbGVzLCBwb3N0SWQpLnRoZW4oKCkgPT4gZmlsZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuY29kZUJhc2U2NCA9IChidWZmZXI6IEJ1ZmZlcik6IHN0cmluZyA9PiBCdWZmZXIuZnJvbShidWZmZXIpLnRvU3RyaW5nKCdiYXNlNjQnKTtcblxuZXhwb3J0IGNvbnN0IGRlY29kZUJhc2U2NCA9IChkYXRhU3RyaW5nOiBzdHJpbmcpOiBvYmplY3QgPT4ge1xuICBjb25zdCBnZXREYXRhID0gKHN0cjogc3RyaW5nKSA9PiBzdHIubWF0Y2goL15kYXRhOihbQS1aYS16LStcXC9dKyk7YmFzZTY0LCguKykkLykgfHwgW107XG4gIC8vIGNvbnN0IGdldERhdGEgPSAoYmFzZTY0OiBzdHJpbmcpID0+IGJhc2U2NC5zdWJzdHIoYmFzZTY0LmluZGV4T2YoJywnKSArIDEpO1xuICBsZXQgbWF0Y2hlcyA9IGdldERhdGEoZGF0YVN0cmluZyk7XG5cbiAgaWYobWF0Y2hlcy5sZW5ndGggIT09IDMpIHtcbiAgICAvLyBJZiBpbnZhbGlkIG1ha2Ugc3VyZSB3ZSBkb24ndCBuZWVkIHRvIGRlY29kZVxuICAgIG1hdGNoZXMgPSBnZXREYXRhKGRlY29kZVVSSUNvbXBvbmVudChkYXRhU3RyaW5nKSk7XG5cbiAgICAvLyBDaGVjayBpdCBhZ2Fpbi5cbiAgICBpZihtYXRjaGVzLmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgRXJyb3IoJ0ludmFsaWQgaW5wdXQgc3RyaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhOiBCdWZmZXIuZnJvbShtYXRjaGVzWzJdLCAnYmFzZTY0JyksXG4gICAgdHlwZTogbWF0Y2hlc1sxXVxuICB9O1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsd0JBQTZCO0FBQzdCLG1CQUErQztBQUMvQyxzQkFBNEI7QUFJNUIsd0JBQXFCO0FBQ3JCLDRCQUF3QjtBQUN4QixxQkFBb0I7QUFDcEIsY0FBeUI7QUFHekIsb0JBQXFCO0FBRXJCLG9CQUE4QjtBQUM5QixtQkFBNkI7QUFFN0IsTUFBTSxVQUFVLHlCQUFPLFFBQVEsRUFBQyxNQUFNLHFCQUFPLElBQUksZUFBZSxTQUFTO0FBQ3pFLFFBQVEsU0FBUyxFQUFDLFVBQVU7QUFLckIsTUFBTSxVQUFVLENBQUMsU0FBcUIsT0FBaUIsT0FBMEI7QUFDdEYsUUFBTSxFQUFDLFVBQVUsU0FBUyxFQUFDLFFBQVEsV0FBVyxpQkFBZTtBQUM3RCxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxNQUNFO0FBR0osUUFBTSxlQUF1QixTQUFTLDBCQUFRLFVBQVUsNkJB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
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvZmlsZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2dldCBhcyBodHRwR2V0fSBmcm9tICdAbmxhYnMvcmlwLWh1bnRlcic7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbic7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuaW1wb3J0IHtnb29nbGV9IGZyb20gJ2dvb2dsZWFwaXMnO1xuaW1wb3J0IHtVc2VyRXJyb3J9IGZyb20gJ2dyYXBocWwtZXJyb3JzJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCAqIGFzIHJlcXVlc3QgZnJvbSAncmVxdWVzdC1wcm9taXNlJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgnO1xuaW1wb3J0IHtGaWxlVHlwZX0gZnJvbSAnLi4vdHlwZXMvZmlsZXMnO1xuaW1wb3J0IHtyZXNpemVTYXZlSW1hZ2V9IGZyb20gJy4vaW1hZ2VzJztcbmltcG9ydCB7Y3JlYXRlUG9zdEVkZ2V9IGZyb20gJy4vcG9zdHMnO1xuXG5jb25zdCB5b3V0dWJlID0gZ29vZ2xlLnlvdXR1YmUoe2F1dGg6IENvbmZpZy5nZXQoJ2dvb2dsZS5rZXknKSwgdmVyc2lvbjogJ3YzJ30pO1xucmVxdWVzdC5kZWZhdWx0cyh7ZW5jb2Rpbmc6IG51bGx9KTtcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2ZpbGVzJztcblxuLy8gVXBsb2FkIGZpbGVcbmV4cG9ydCBjb25zdCBhZGRGaWxlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGl0ZW06IEZpbGVUeXBlID0ge30pOiBQcm9taXNlPEZpbGVUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkLCB1c2VyQWNjZXNzfX0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZGVzY3JpcHRpb24sXG4gICAgZmlsZUlkLFxuICAgIGZpbGVUeXBlLFxuICAgIG5hbWUsXG4gICAgdXJsXG4gIH0gPSBpdGVtO1xuXG4gIC8vIElkXG4gIGNvbnN0IGZvcm1hdEZpbGVJZDogc3RyaW5nID0gZmlsZUlkID8gcGFyc2VJZChmaWxlSWQpIDogY3JlYXRlSGFzaChgZmlsZS0ke3Nlc3Npb25JZH1gKTtcblxuICAvLyBOYW1lXG4gIGNvbnN0IGlzVXJsOiBib29sZWFuID0gaXNFbXB0eSh1cmwpO1xuXG4gIC8vIElmIG5vIG5hbWUsIGdldCBpdCBmcm9tIHVybCBwYXRoXG4gIGxldCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhuYW1lLCAxNjApO1xuICBsZXQgZm9ybWF0VHlwZTogc3RyaW5nID0gcGFyc2VTdHJpbmcoZmlsZVR5cGUsIDE2KTtcblxuICBpZihmb3JtYXROYW1lID09PSAnJyAmJiBpc1VybCkge1xuICAgIGZvcm1hdE5hbWUgPSB1cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZignLycpICsgMSk7XG4gIH1cblxuICBpZihmb3JtYXRUeXBlID09PSAnJykge1xuICAgIGNvbnN0IG5hbWVBcnI6IHN0cmluZ1tdID0gZm9ybWF0TmFtZS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGV4dDogc3RyaW5nID0gbmFtZUFycltuYW1lQXJyLmxlbmd0aCAtIDFdO1xuXG4gICAgc3dpdGNoKGV4dCkge1xuICAgICAgY2FzZSAnanBlZyc6XG4gICAgICBjYXNlICdqcGcnOlxuICAgICAgICBmb3JtYXRUeXBlID0gJ2ltYWdlL2pwZWcnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BuZyc6XG4gICAgICAgIGZvcm1hdFR5cGUgPSAnaW1hZ2UvcG5nJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd6aXAnOlxuICAgICAgICBmb3JtYXRUeXBlID0gJ2FwcGxpY2F0aW9uL3ppcCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgbGV0IGlzSW1hZ2U6IGJvb2xlYW47XG5cbiAgc3dpdGNoKGZvcm1hdFR5cGUpIHtcbiAgICBjYXNlICdpbWFnZS9qcGVnJzpcbiAgICBjYXNlICdpbWFnZS9wbmcnOlxuICAgICAgaXNJbWFnZSA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaXNJbWFnZSA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICAvLyBEZXNjcmlwdGlvblxuICBjb25zdCBmb3JtYXREZXNjOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKTtcblxuICAvLyBPbmx5IGFsbG93IGZpbGUgdXBsb2FkcyB0byBwcmVtaXVtIHVzZXJzXG4gIGlmKCFpc0ltYWdlICYmIHVzZXJBY2Nlc3MgIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgVXNlckVycm9yKCdhY2NvdW50X3Jlc3RyaWN0aW9uJyk7XG4gIH1cblxuICBjb25zdCBzYXZlVG9EYiA9IChpbnNlcnQ6IEZpbGVUeXBlKSA9PiB7XG4gICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIGZpbGVzIFJFVFVSTiBORVdgO1xuXG4gICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgLnRoZW4oKGZpbGUgPSB7fSkgPT4gZmlsZSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH07XG5cbiAgY29uc3QgdXBsb2FkRmlsZSA9IChidWY6IEJ1ZmZlciwgdXBsb2FkVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuXG4gICAgLy8gSWYgaW1hZ2UsIHJlc2l6ZSBhbmQgY3JlYXRlIGEgdGh1bWJuYWlsXG4gICAgaWYoaXNJbWFnZSkge1xuICAgICAgcmV0dXJuIHJlc2l6ZVNhdmVJbWFnZShjb250ZXh0LCBmb3JtYXRGaWxlSWQsIGJ1ZiwgdXBsb2FkVHlwZSlcbiAgICAgICAgLnRoZW4oKHJlc2l6ZWRJbWFnZTogRmlsZVR5cGUpID0+IHtcbiAgICAgICAgICBjb25zdCBpbnNlcnQ6IEZpbGVUeXBlID0ge1xuICAgICAgICAgICAgLi4ucmVzaXplZEltYWdlLFxuICAgICAgICAgICAgX2tleTogZm9ybWF0RmlsZUlkLFxuICAgICAgICAgICAgYWRkZWQ6IG5vdyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBmb3JtYXREZXNjLFxuICAgICAgICAgICAgZmlsZVR5cGU6IGZvcm1hdFR5cGUsXG4gICAgICAgICAgICBtb2RpZmllZDogbm93LFxuICAgICAgICAgICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICAgICAgICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBzYXZlVG9EYihpbnNlcnQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgaW5zZXJ0OiBGaWxlVHlwZSA9IHtcbiAgICAgIF9rZXk6IGZvcm1hdEZpbGVJZCxcbiAgICAgIGFkZGVkOiBub3csXG4gICAgICBkZXNjcmlwdGlvbjogZm9ybWF0RGVzYyxcbiAgICAgIGZpbGVUeXBlOiBmb3JtYXRUeXBlLFxuICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgIG5hbWU6IGZvcm1hdE5hbWUsXG4gICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgIH07XG5cbiAgICByZXR1cm4gc2F2ZVRvRGIoaW5zZXJ0KTtcbiAgfTtcblxuICAvLyBJZiBmaWxlIGlzIGEgdXJsIHBhdGgsIGRvd25sb2FkIHRoZSBmaWxlIGFuZCBzYXZlXG4gIGlmKGlzVXJsKSB7XG4gICAgcmV0dXJuIHJlcXVlc3QuZ2V0KHtlbmNvZGluZzogbnVsbCwgdXJpOiB1cmx9KVxuICAgICAgLnRoZW4oKGJvZHkpID0+IHVwbG9hZEZpbGUoQnVmZmVyLmZyb20oYm9keSwgJ2JpbmFyeScpLCBmb3JtYXRUeXBlKSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBVc2VyRXJyb3IoJ2ZpbGVfcmVxdWVzdCcpO1xuICAgICAgfSk7XG4gIH0gZWxzZSBpZihpdGVtLmJhc2U2NCAhPT0gJycpIHtcbiAgICBjb25zdCBidWZmZXI6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGl0ZW0uYmFzZTY0KTtcbiAgICByZXR1cm4gdXBsb2FkRmlsZShidWZmZXIsIGZvcm1hdFR5cGUpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignZmlsZV9yZXF1aXJlZCcpO1xufTtcblxuLy8gR2lwaHlcbmV4cG9ydCBjb25zdCBnZXRHaXBoeVRyZW5kcyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBsaW1pdDogbnVtYmVyID0gMzApOiBQcm9taXNlPGFueVtdPiA9PiB7XG4gIGNvbnN0IGdpZlVybDogc3RyaW5nID0gYGh0dHA6Ly9hcGkuZ2lwaHkuY29tL3YxL2dpZnMvdHJlbmRpbmc/YXBpX2tleT0ke0NvbmZpZy5nZXQoJ2dpcGh5LmtleScpfSZsaW1pdD0ke2xpbWl0fWA7XG5cbiAgcmV0dXJuIGh0dHBHZXQoZ2lmVXJsKVxuICAgIC50aGVuKChyZXM6IFJlc3BvbnNlKSA9PiByZXMuanNvbigpKVxuICAgIC50aGVuKChqc29uKSA9PiBqc29uLmRhdGEubWFwKChnaWZJbWFnZSA9IHtpZDogbnVsbCwgaW1hZ2VzOiBudWxsfSkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBpZCxcbiAgICAgICAgaW1hZ2VzOiB7XG4gICAgICAgICAgb3JpZ2luYWw6IHt1cmwgPSAnJ30gPSB7fSxcbiAgICAgICAgICBmaXhlZF9oZWlnaHRfc21hbGw6IHt1cmw6IHRodW1iID0gJyd9ID0ge31cbiAgICAgICAgfSA9IHt9XG4gICAgICB9ID0gZ2lmSW1hZ2U7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICB0aHVtYixcbiAgICAgICAgdHlwZTogJ2dpcGh5JyxcbiAgICAgICAgdXJsXG4gICAgICB9O1xuICAgIH0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHaXBoeVNlYXJjaCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBxdWVyeTogc3RyaW5nLCBsaW1pdDogbnVtYmVyID0gMzApOiBQcm9taXNlPGFueVtdPiA9PiB7XG4gIGNvbnN0IGZvcm1hdFF1ZXJ5OiBzdHJpbmcgPSBlbmNvZGVVUkkocXVlcnkpO1xuICBjb25zdCBnaWZVcmw6IHN0cmluZyA9IGBodHRwOi8vYXBpLmdpcGh5LmNvbS92MS9naWZzL3NlYXJjaD9xPSR7Zm9ybWF0UXVlcnl9JmFwaV9rZXk9JHtDb25maWcuZ2V0KCdnaXBoeS5rZXknKX0mbGltaXQ9JHtsaW1pdH1gO1xuXG4gIHJldHVybiBmZXRjaChnaWZVcmwpXG4gICAgLnRoZW4oKHJlczogUmVzcG9uc2UpID0+IHJlcy5qc29uKCkpXG4gICAgLnRoZW4oKGpzb24pID0+IGpzb24uZGF0YS5tYXAoKGdpZkltYWdlID0ge2lkOiBudWxsLCBpbWFnZXM6IG51bGx9KSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlkLFxuICAgICAgICBpbWFnZXM6IHtcbiAgICAgICAgICBvcmlnaW5hbDoge3VybCA9ICcnfSA9IHt9LFxuICAgICAgICAgIGZpeGVkX2hlaWdodF9zbWFsbDoge3VybDogdGh1bWIgPSAnJ30gPSB7fVxuICAgICAgICB9ID0ge31cbiAgICAgIH0gPSBnaWZJbWFnZTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQsXG4gICAgICAgIHRodW1iLFxuICAgICAgICB0eXBlOiAnZ2lwaHknLFxuICAgICAgICB1cmxcbiAgICAgIH07XG4gICAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFlvdVR1YmVUcmVuZHMgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxhbnlbXT4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHlvdXR1YmUudmlkZW9zLmxpc3Qoe1xuICAgICAgY2hhcnQ6ICdtb3N0UG9wdWxhcicsXG4gICAgICBtYXhSZXN1bHRzOiBsaW1pdCxcbiAgICAgIHBhcnQ6IFsnc25pcHBldCddLFxuICAgICAgcmVnaW9uQ29kZTogJ1VTJ1xuICAgIH0sIChlcnJvcjogRXJyb3IsIGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoZXJyb3JbMF0ubWVzc2FnZSkpO1xuICAgICAgfSBlbHNlIGlmKGRhdGEpIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IGRhdGEuaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgIHRodW1iOiBpdGVtLnNuaXBwZXQudGh1bWJuYWlscy5oaWdoLnVybCxcbiAgICAgICAgICB0eXBlOiAneW91dHViZScsXG4gICAgICAgICAgdXJsOiBgaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke2l0ZW0uaWR9YFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgcmVzb2x2ZShsaXN0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cblxuZXhwb3J0IGNvbnN0IGdldFlvdVR1YmVTZWFyY2ggPSAoY29udGV4dDogQXBpQ29udGV4dCwgcXVlcnk6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxhbnlbXT4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHlvdXR1YmUuc2VhcmNoLmxpc3Qoe1xuICAgICAgbWF4UmVzdWx0czogbGltaXQsXG4gICAgICBwYXJ0OiBbJ3NuaXBwZXQnXSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgcTogcXVlcnksXG4gICAgICByZWdpb25Db2RlOiAnVVMnXG4gICAgfSwgKGVycm9yOiBFcnJvciwgZGF0YTogYW55KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihlcnJvclswXS5tZXNzYWdlKSk7XG4gICAgICB9IGVsc2UgaWYoZGF0YSkge1xuICAgICAgICBjb25zdCB7aXRlbXN9ID0gZGF0YTtcbiAgICAgICAgY29uc3QgbGlzdCA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgICB0aHVtYjogaXRlbS5zbmlwcGV0LnRodW1ibmFpbHMuaGlnaC51cmwsXG4gICAgICAgICAgdHlwZTogJ3lvdXR1YmUnLFxuICAgICAgICAgIHVybDogYGh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtpdGVtLmlkfWBcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHJlc29sdmUobGlzdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4vLyBGaWxlc1xuZXhwb3J0IGNvbnN0IGdldFBhdGhVc2VyRmlsZXMgPSAodXNlcklkOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4gYHVzZXJzLyR7dXNlcklkfS9maWxlcy8ke2ZpbGVuYW1lfWA7XG5cbmV4cG9ydCBjb25zdCBnZXRVcmxVc2VyRmlsZXMgPSAodXNlcklkOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcsIGRpcjogc3RyaW5nID0gJ2ZpbGVzJywgdHlwZTogc3RyaW5nID0gJ3Byb2ZpbGUnKTogc3RyaW5nID0+IHtcbiAgaWYoZmlsZW5hbWUpIHtcbiAgICByZXR1cm4gYGh0dHBzOi8vYm94LiR7Q29uZmlnLmdldCgnYXBwLnVybCcpfS91c2Vycy8ke3VzZXJJZH0vJHtkaXJ9LyR7ZmlsZW5hbWV9YDtcbiAgfVxuXG4gIGlmKHR5cGUgPT09ICdwcm9maWxlJykge1xuICAgIHJldHVybiBgaHR0cHM6Ly9ib3guJHtDb25maWcuZ2V0KCdhcHAudXJsJyl9L2RlZmF1bHRzL3VzZXJfYmsuanBnYDtcbiAgfVxuXG4gIHJldHVybiBgaHR0cHM6Ly9ib3guJHtDb25maWcuZ2V0KCdhcHAudXJsJyl9L2RlZmF1bHRzL3VzZXJfd2guanBnYDtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVGaWxlID0gKGRiOiBEYXRhYmFzZSwgZmlsZTogRmlsZVR5cGUpOiBQcm9taXNlPEZpbGVUeXBlPiA9PiB7XG4gIGNvbnN0IHtmaWxlSWR9ID0gZmlsZTtcbiAgY29uc3QgaW5zZXJ0OiBhbnkgPSB7XG4gICAgX2tleTogZmlsZUlkLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpXG4gIH07XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge19rZXk6ICR7ZmlsZUlkfX1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFIHt9XG4gICAgSU4gZmlsZXMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigodXBkYXRlZEZpbGU6IEZpbGVUeXBlID0ge30pID0+IHVwZGF0ZWRGaWxlKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBsaW5rRmlsZXMgPSAoZGI6IERhdGFiYXNlLCBmaWxlczogRmlsZVR5cGVbXSwgcG9zdElkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT5cbiAgUHJvbWlzZS5hbGwoXG4gICAgZmlsZXMubWFwKChmaWxlOiBGaWxlVHlwZSkgPT4gY3JlYXRlRmlsZShkYiwgZmlsZSlcbiAgICAgIC50aGVuKChmaWxlOiBGaWxlVHlwZSkgPT4gY3JlYXRlUG9zdEVkZ2UoZGIsIGZpbGUsIHBvc3RJZCkpKVxuICApO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlRmlsZXMgPSAoZGI6IERhdGFiYXNlLCBwb3N0SWQ6IHN0cmluZywgZmlsZXM6IEZpbGVUeXBlW10pOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSBkYi5jb2xsZWN0aW9uKCdpc1Bvc3RlZCcpO1xuXG4gIHJldHVybiBlZGdlQ29sbGVjdGlvbi5pbkVkZ2VzKHBvc3RJZClcbiAgICAudGhlbigoZWRnZXM6IGFueSkgPT4ge1xuICAgICAgaWYoZWRnZXMubGVuZ3RoKSB7XG4gICAgICAgIC8vIFJlbW92ZSBsaW5rZWQgZWRnZXNcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgICAgIGVkZ2VzLm1hcCgoZWRnZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qge19rZXk6IGVkZ2VLZXl9ID0gZWRnZTtcbiAgICAgICAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgUkVNT1ZFIHtfa2V5OiR7ZWRnZUtleX19IElOIGlzUG9zdGVkYDtcblxuICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KGFxbFFyeSkuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmKGZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAvLyBMaW5rIGZpbGVzXG4gICAgICAgICAgICAgIHJldHVybiBsaW5rRmlsZXMoZGIsIGZpbGVzLCBwb3N0SWQpLnRoZW4oKCkgPT4gZmlsZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbGVzO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmKGZpbGVzLmxlbmd0aCkge1xuICAgICAgICAvLyBMaW5rIGZpbGVzXG4gICAgICAgIHJldHVybiBsaW5rRmlsZXMoZGIsIGZpbGVzLCBwb3N0SWQpLnRoZW4oKCkgPT4gZmlsZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuY29kZUJhc2U2NCA9IChidWZmZXI6IEJ1ZmZlcik6IHN0cmluZyA9PiBCdWZmZXIuZnJvbShidWZmZXIpLnRvU3RyaW5nKCdiYXNlNjQnKTtcblxuZXhwb3J0IGNvbnN0IGRlY29kZUJhc2U2NCA9IChkYXRhU3RyaW5nOiBzdHJpbmcpOiBvYmplY3QgPT4ge1xuICBjb25zdCBnZXREYXRhID0gKHN0cjogc3RyaW5nKSA9PiBzdHIubWF0Y2goL15kYXRhOihbQS1aYS16LStcXC9dKyk7YmFzZTY0LCguKykkLykgfHwgW107XG4gIC8vIGNvbnN0IGdldERhdGEgPSAoYmFzZTY0OiBzdHJpbmcpID0+IGJhc2U2NC5zdWJzdHIoYmFzZTY0LmluZGV4T2YoJywnKSArIDEpO1xuICBsZXQgbWF0Y2hlcyA9IGdldERhdGEoZGF0YVN0cmluZyk7XG5cbiAgaWYobWF0Y2hlcy5sZW5ndGggIT09IDMpIHtcbiAgICAvLyBJZiBpbnZhbGlkIG1ha2Ugc3VyZSB3ZSBkb24ndCBuZWVkIHRvIGRlY29kZVxuICAgIG1hdGNoZXMgPSBnZXREYXRhKGRlY29kZVVSSUNvbXBvbmVudChkYXRhU3RyaW5nKSk7XG5cbiAgICAvLyBDaGVjayBpdCBhZ2Fpbi5cbiAgICBpZihtYXRjaGVzLmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgRXJyb3IoJ0ludmFsaWQgaW5wdXQgc3RyaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhOiBCdWZmZXIuZnJvbShtYXRjaGVzWzJdLCAnYmFzZTY0JyksXG4gICAgdHlwZTogbWF0Y2hlc1sxXVxuICB9O1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsd0JBQTZCO0FBQzdCLG1CQUErQztBQUMvQyxzQkFBNEI7QUFJNUIsd0JBQXFCO0FBQ3JCLDRCQUF3QjtBQUN4QixxQkFBb0I7QUFDcEIsY0FBeUI7QUFFekIsb0JBQXFCO0FBR3JCLG9CQUE4QjtBQUM5QixtQkFBNkI7QUFFN0IsTUFBTSxVQUFVLHlCQUFPLFFBQVEsRUFBQyxNQUFNLHFCQUFPLElBQUksZUFBZSxTQUFTO0FBQ3pFLFFBQVEsU0FBUyxFQUFDLFVBQVU7QUFLckIsTUFBTSxVQUFVLENBQUMsU0FBcUIsT0FBaUIsT0FBMEI7QUFDdEYsUUFBTSxFQUFDLFVBQVUsU0FBUyxFQUFDLFFBQVEsV0FBVyxpQkFBZTtBQUM3RCxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxNQUNFO0FBR0osUUFBTSxlQUF1QixTQUFTLDBCQUFRLFVBQVUs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
|