dmencu 0.1.23 → 0.1.24
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.
- package/dist/client/client/client.js +4 -3
- package/dist/client/unlogged/img/login-logo-icon.png +0 -0
- package/dist/client/unlogged/img/logo-128.png +0 -0
- package/dist/client/unlogged/img/logo.png +0 -0
- package/dist/server/server/app-dmencu.d.ts +1 -0
- package/dist/unlogged/unlogged/img/login-logo-icon.png +0 -0
- package/dist/unlogged/unlogged/img/logo-128.png +0 -0
- package/dist/unlogged/unlogged/img/logo.png +0 -0
- package/package.json +1 -1
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-192.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-192_capa.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-192_test.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-32.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-32_capa.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-32_test.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-48.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-48_capa.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-48_test.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-512.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-512_capa.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-512_test.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-64.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-64_capa.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-64_test.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-72.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-72_capa.png +0 -0
- package/dist/client/unlogged/img/PREJU_2022-logo-dm-72_test.png +0 -0
- package/dist/client/unlogged/img/_login-logo-icon.png +0 -0
- package/dist/client/unlogged/img/_logo-128.png +0 -0
- package/dist/client/unlogged/img/_logo.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-192.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-192_capa.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-192_test.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-32.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-32_capa.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-32_test.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-48.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-48_capa.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-48_test.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-512.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-512_capa.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-512_test.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-64.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-64_capa.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-64_test.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-72.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-72_capa.png +0 -0
- package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-72_test.png +0 -0
- package/dist/unlogged/unlogged/img/_login-logo-icon.png +0 -0
- package/dist/unlogged/unlogged/img/_logo-128.png +0 -0
- package/dist/unlogged/unlogged/img/_logo.png +0 -0
|
@@ -256,9 +256,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
256
256
|
return ver;
|
|
257
257
|
};
|
|
258
258
|
var crearBotonesVerAbrirTareas = (depot, fieldName, label) => __awaiter(void 0, void 0, void 0, function* () {
|
|
259
|
-
tareas = tareas ? tareas : (yield myOwn.ajax.table_data({ table: `tareas`, fixedFields: [] }))
|
|
259
|
+
tareas = tareas ? tareas : (yield myOwn.ajax.table_data({ table: `tareas`, fixedFields: [] }));
|
|
260
|
+
var misTareas = tareas.filter((tarea) => !!tarea.main_form && tarea.operativo == depot.row.operativo);
|
|
260
261
|
depot.rowControls[fieldName].innerHTML = '';
|
|
261
|
-
|
|
262
|
+
misTareas.forEach((tarea) => {
|
|
262
263
|
let buttonLabel = `${label} ${tarea.tarea}`;
|
|
263
264
|
let ver = crearBotonVerAbrirEncuesta(depot.row.operativo, tarea.tarea, Number(depot.row.enc), buttonLabel);
|
|
264
265
|
ver.style = 'margin:0px 2px;';
|
|
@@ -373,4 +374,4 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
373
374
|
return [].concat.apply([], arrays);
|
|
374
375
|
}
|
|
375
376
|
});
|
|
376
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsMkNBQWdDO0lBQ2hDLG1FQUE2RDtJQUk3RCxrQ0FBa0M7SUFDbEMscUVBQW9GO0lBQ3BGLG1FQUF5STtJQUV6SSxrQkFBa0I7SUFFbEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDO0lBQzdCLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDO0lBRXZDLHFHQUFxRztJQUNyRyxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUMzRSxNQUFBLE1BQUEsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxVQUFVLDBDQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRCxTQUFTLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRztRQUN6QyxPQUFPLEtBQUssQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLE1BQU0sR0FBTyxJQUFJLENBQUM7SUFFdEIsU0FBUyxVQUFVLENBQUMsR0FBVTtRQUMxQixPQUFPLGlCQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUcsYUFBSCxHQUFHLGNBQUgsR0FBRyxHQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVELElBQUksa0JBQWtCLEdBQUcsQ0FBTyxZQUFvQyxFQUFFLEVBQUU7UUFDcEUsSUFBSSxFQUFDLGtCQUFrQixFQUFDLEdBQUcsWUFBWSxDQUFBO1FBQ25DLElBQUcsa0JBQWtCLElBQUUsT0FBTyxFQUFDO1lBQzNCLEVBQUUsQ0FB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QUN0RCxDQUFDO0tBQUEsQ0FBQTtJQUVELFNBQVMsU0FBUyxDQUFJLE1BQVk7UUFDOUIsT0FBUSxFQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aHRtbH0gZnJvbSBcImpzLXRvLWh0bWxcIjtcclxuaW1wb3J0IHt0cmFlckVzdHJ1Y3R1cmF9IGZyb20gXCIuLi91bmxvZ2dlZC9yZWR1eC1mb3JtdWxhcmlvXCI7XHJcbmltcG9ydCB7IENhc29TdGF0ZSwgIFxyXG4gICAgSWRGb3JtdWxhcmlvLCBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcywgSWRFbmMsIElkT3BlcmF0aXZvLCBJZFRhcmVhLFxyXG59IGZyb20gXCIuLi91bmxvZ2dlZC90aXBvc1wiO1xyXG5pbXBvcnQgKiBhcyBsaWtlQXIgZnJvbSBcImxpa2UtYXJcIjtcclxuaW1wb3J0IHtnZXRFc3RydWN0dXJhLCBzZXRQZXJzaXN0aXJEYXRvc0J5UGFzc30gZnJvbSBcIi4uL3VubG9nZ2VkL2J5cGFzcy1mb3JtdWxhcmlvXCJcclxuaW1wb3J0IHtjYXJnYXJFc3RydWN0dXJhLCBjYXJnYXJIb2phRGVSdXRhLCBHTE9WQVJfREFUT1NCWVBBU1MsIEdMT1ZBUl9FU1RSVUNUVVJBLCBHTE9WQVJfTU9ET0JZUEFTU30gZnJvbSBcIi4uL3VubG9nZ2VkL2FicmlyLWZvcm11bGFyaW9cIlxyXG5cclxuLy9UT0RPIEdFTkVSQUxJWkFSXHJcblxyXG5jb25zdCBUQVJFQV9ERUZBVUxUID0gJ2VuY3UnO1xyXG5jb25zdCBPUEVSQVRJVk9fREVGQVVMVCA9ICdQUkVKVV8yMDIyJztcclxuXHJcbi8vcXVpdGEgYm9vdHN0cmFwIGRlbCBoZWFkIHBhcmEgcXVlIG5vIHJvbXBhIGxvcyBlc3RpbG9zIGRlIEJFUGx1cyAoc29sbyBzZSB1c2EgYm9vdHN0cmFwIGVuIGVsIGZvcm0pXHJcbnZhciBsaW5rTm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tocmVmPVwiY3NzL2Jvb3RzdHJhcC5taW4uY3NzXCJdJyk7XHJcbmxpbmtOb2RlWzBdPy5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZChsaW5rTm9kZVswXSk7XHJcblxyXG5mdW5jdGlvbiBjb25zaXN0aXJfZmlsdHJvKHRhcmVhLCByZWFfdGVtLCByZWEpe1xyXG4gICAgcmV0dXJuIHRhcmVhP3JlYV90ZW06cmVhO1xyXG59O1xyXG5cclxudmFyIHRhcmVhczphbnkgPSBudWxsO1xyXG5cclxuZnVuY3Rpb24gaHRtbE51bWVybyhudW06bnVtYmVyKXtcclxuICAgIHJldHVybiBodG1sLnNwYW4oe2NsYXNzOidudW1lcm8nfSwnJysobnVtPz8nJykpXHJcbn1cclxuXHJcbnZhciBwZXJzaXN0aXJFbk1lbW9yaWEgPSBhc3luYyAocGVyc2lzdGVudGVzOkRhdG9zQnlQYXNzUGVyc2lzdGlibGVzKSA9PiB7XHJcbiAgICB2YXIge21vZG9BbG1hY2VuYW1pZW50b30gPSBwZXJzaXN0ZW50ZXNcclxuICAgICAgICBpZihtb2RvQWxtYWNlbmFtaWVudG89PSdsb2NhbCcpe1xyXG4gICAgICAgICAgICBteS5zZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MsIHBlcnNpc3RlbnRlcylcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgbXkuc2V0U2Vzc2lvblZhcihHTE9WQVJfREFUT1NCWVBBU1MsIHBlcnNpc3RlbnRlcylcclxuICAgICAgICB9XHJcbiAgICAgICAgbXkuc2V0U2Vzc2lvblZhcihHTE9WQVJfTU9ET0JZUEFTUywgbW9kb0FsbWFjZW5hbWllbnRvKVxyXG59XHJcblxyXG5hc3luYyBmdW5jdGlvbiBzaW5jcm9uaXphckRhdG9zKHBlcnNpc3RlbnRlczpEYXRvc0J5UGFzc1BlcnNpc3RpYmxlc3xudWxsKXtcclxuICAgIHZhciBkYXRvcyA9IGF3YWl0IG15LmFqYXguZG1fc2luY3Jvbml6YXIoe3BlcnNpc3RlbnRlc30pO1xyXG4gICAgdmFyIG9wZXJhdGl2byA9IGRhdG9zLm9wZXJhdGl2bztcclxuICAgIHBlcnNpc3RpckVuTWVtb3JpYSh7Li4uZGF0b3MsIG1vZG9BbG1hY2VuYW1pZW50bzonbG9jYWwnfSk7XHJcbiAgICB2YXIgZXN0cnVjdHVyYSA9IGF3YWl0IHRyYWVyRXN0cnVjdHVyYSh7b3BlcmF0aXZvfSlcclxuICAgIG15LnNldExvY2FsVmFyKEdMT1ZBUl9FU1RSVUNUVVJBLCBlc3RydWN0dXJhKTtcclxuICAgIHJldHVybiBkYXRvcztcclxufVxyXG5cclxubXlPd24ud1NjcmVlbnMuYWJyaXJfZW5jdWVzdGE9e1xyXG4gICAgcGFyYW1ldGVyczpbXHJcbiAgICAgICAge25hbWU6J29wZXJhdGl2bycgLCB0eXBlTmFtZTondGV4dCcsIGRlZmF1bHRWYWx1ZTpPUEVSQVRJVk9fREVGQVVMVCwgcmVmZXJlbmNlczonb3BlcmF0aXZvcyd9LFxyXG4gICAgICAgIHtuYW1lOid0YXJlYScgICAgICwgdHlwZU5hbWU6J3RleHQnLCBkZWZhdWx0VmFsdWU6VEFSRUFfREVGQVVMVCwgcmVmZXJlbmNlczogJ3RhcmVhcyd9LFxyXG4gICAgICAgIHtuYW1lOidlbmN1ZXN0YScgICwgdHlwZU5hbWU6J2ludGVnZXInLCBkZWZhdWx0VmFsdWU6MTMwMDMxfVxyXG4gICAgXSxcclxuICAgIGF1dG9wcm9jZWQ6dHJ1ZSxcclxuICAgIG1haW5BY3Rpb246YXN5bmMgKHBhcmFtcyk9PntcclxuICAgICAgICAvLyBhbnRlczogYWJyaXJEaXJlY3RvXHJcbiAgICAgICAgdmFyIHtvcGVyYXRpdm8sIGVuY3Vlc3RhLCB0YXJlYX0gPSBwYXJhbXM7XHJcbiAgICAgICAgdmFyIGVzdHJ1Y3R1cmEgPSBnZXRFc3RydWN0dXJhKCk7XHJcbiAgICAgICAgdmFyIGNhcmdhID0gYXdhaXQgbXkuYWpheC5kbV9mb3Jwa3JhaXpfY2FyZ2FyKHtvcGVyYXRpdm8sIHZpdmllbmRhOmVuY3Vlc3RhLCB0YXJlYX0pIGFzIERhdG9zQnlQYXNzUGVyc2lzdGlibGVzO1xyXG4gICAgICAgIGlmKCFlc3RydWN0dXJhIHx8IChlc3RydWN0dXJhLnRpbWVzdGFtcD8/MCkgPCBjYXJnYS50aW1lc3RhbXBFc3RydWN0dXJhISB8fCBlc3RydWN0dXJhLm9wZXJhdGl2byAhPSBvcGVyYXRpdm8gfHwgbXkuY29uZmlnLmNvbmZpZy5kZXZlbCl7XHJcbiAgICAgICAgICAgIGVzdHJ1Y3R1cmEgPSBhd2FpdCB0cmFlckVzdHJ1Y3R1cmEoe29wZXJhdGl2b30pXHJcbiAgICAgICAgICAgIGNhcmdhckVzdHJ1Y3R1cmEoZXN0cnVjdHVyYSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHZhciBzdGF0ZTpDYXNvU3RhdGUgPSB7fVxyXG4gICAgICAgIGluaWNpYWxpemFyU3RhdGUoc3RhdGUpO1xyXG4gICAgICAgIHZhciBmb3JQa1JhaXogPSB7Zm9ybXVsYXJpbzpjYXJnYS5pbmZvcm1hY2lvbkhkcltlbmN1ZXN0YSBhcyBJZEVuY10udGFyZWEubWFpbl9mb3JtLCB2aXZpZW5kYTplbmN1ZXN0YX07XHJcbiAgICAgICAgc2V0UGVyc2lzdGlyRGF0b3NCeVBhc3MoXHJcbiAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHBlcnNpc3RpckRhdG9zQnlQYXNzRW5CYXNlRGVEYXRvcyhwZXJzaXN0ZW50ZXM6RGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMpe1xyXG4gICAgICAgICAgICAgICAgaWYocGVyc2lzdGVudGVzLnNvbG9MZWN0dXJhKXtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFc3TDoSBpbnRlbnRhbmRvIG1vZGlmaWNhciB1bmEgZW5jdWVzdGEgYWJpZXJ0YSBjb21vIHNvbG8gbGVjdHVyYSwgbm8gc2UgZ3VhcmRhcm9uIGxvcyBjYW1iaW9zXCIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBteS5hamF4LmRtX2ZvcnBrcmFpel9kZXNjYXJnYXIoe29wZXJhdGl2bywgcGVyc2lzdGVudGVzfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgICAgaWYoIWNhcmdhLnJlc3B1ZXN0YXMudml2aWVuZGFzW2ZvclBrUmFpei52aXZpZW5kYSFdKXtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzZSBlbmN1ZW50cmEgbGEgdml2aWVuZGEgJHtmb3JQa1JhaXoudml2aWVuZGEhfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXJnYXJIb2phRGVSdXRhKHsuLi5jYXJnYSwgbW9kb0FsbWFjZW5hbWllbnRvOidzZXNzaW9uJ30pO1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsKHtvcGVyYXRpdm8sIG1vZG9EZW1vOmZhbHNlLCBmb3JQa1JhaXp9KTtcclxuICAgIH1cclxufVxyXG5cclxudmFyIG1vc3RyYXJJbmZvTG9jYWwgPSAoZGl2QXZpc29TaW5jcm86SFRNTERpdkVsZW1lbnQsIHRpdHVsbzpzdHJpbmcsIG5yb1NpbmNybzpudW1iZXJ8bnVsbCwgbW9zdHJhckxpbmtIZHI6IGJvb2xlYW4pPT57XHJcbiAgICBsZXQgZGF0b3NCeVBhc3MgPSBteS5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpO1xyXG4gICAgaWYoZGF0b3NCeVBhc3Mpe1xyXG4gICAgICAgIGRpdkF2aXNvU2luY3JvLmFwcGVuZChodG1sLmRpdih7aWQ6J2F2aXNvLXNpbmNybyd9LCBbXHJcbiAgICAgICAgICAgIG5yb1NpbmNybz9odG1sLnAoW1wiTsO6bWVybyBkZSBzaW5jcm9uaXphY2nDs246IFwiLCBodG1sLmIoXCJcIitucm9TaW5jcm8udG9TdHJpbmcoKSldKTpudWxsLFxyXG4gICAgICAgICAgICBodG1sLmg0KHRpdHVsbyksXHJcbiAgICAgICAgICAgIGh0bWwucChbaHRtbE51bWVybyhsaWtlQXIoZGF0b3NCeVBhc3MuY2FyZ2FzKS5hcnJheSgpLmxlbmd0aCksJyBhcmVhczogJyxsaWtlQXIoZGF0b3NCeVBhc3MuY2FyZ2FzKS5rZXlzKCkuam9pbignLCAnKV0pLFxyXG4gICAgICAgICAgICBodG1sLnAoW2h0bWxOdW1lcm8obGlrZUFyKGRhdG9zQnlQYXNzLnJlc3B1ZXN0YXMudml2aWVuZGFzKS5hcnJheSgpLmxlbmd0aCksJyB2aXZpZW5kYXMnXSksXHJcbiAgICAgICAgICAgIG1vc3RyYXJMaW5rSGRyP2h0bWwuYSh7aHJlZjonLi9jYW1wbyd9LFtodG1sLmIoJ0lSIEEgTEEgSE9KQSBERSBSVVRBJyldKTpudWxsXHJcbiAgICAgICAgXSkuY3JlYXRlKCkpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgICAgZGl2QXZpc29TaW5jcm8uYXBwZW5kQ2hpbGQoaHRtbC5kaXYoe2NsYXNzOidhdmlzbyd9LFtcclxuICAgICAgICAgICAgaHRtbC5oNCgnU2lzdGVtYSB2YWPDrW8nKSxcclxuICAgICAgICAgICAgaHRtbC5wKCdObyBoYXkgaW5mb3JtYWNpw7NuIGRlIGZvcm11bGFyaW9zJyksXHJcbiAgICAgICAgICAgIGh0bWwucCgnTm8gaGF5IGluZm9ybWFjacOzbiBkZSB2aXZpZW5kYXMnKVxyXG4gICAgICAgIF0pLmNyZWF0ZSgpKTtcclxuICAgIH1cclxufVxyXG52YXIgcHJvY2VkZXJTaW5jcm9GdW4gPSBhc3luYyAoYnV0dG9uOkhUTUxCdXR0b25FbGVtZW50LCBkaXZBdmlzb1NpbmNybzpIVE1MRGl2RWxlbWVudCk9PntcclxuICAgIGJ1dHRvbi5kaXNhYmxlZD10cnVlO1xyXG4gICAgYnV0dG9uLmNsYXNzTmFtZT0nZG93bmxvYWQtZG0tYnV0dG9uJztcclxuICAgIGRpdkF2aXNvU2luY3JvLmlubmVySFRNTD0nJztcclxuICAgIHRyeXtcclxuICAgICAgICB2YXIgZGF0b3NCeVBhc3M6RGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMgPSBteS5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpO1xyXG4gICAgICAgIHZhciBkYXRvcyA9IGF3YWl0IHNpbmNyb25pemFyRGF0b3MoZGF0b3NCeVBhc3MpO1xyXG4gICAgICAgIG1vc3RyYXJJbmZvTG9jYWwoZGl2QXZpc29TaW5jcm8sICdkYXRvcyByZWNpYmlkb3MnLCBkYXRvcy5udW1fc2luY3JvLCB0cnVlKVxyXG4gICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgYWxlcnRQcm9taXNlKGVyci5tZXNzYWdlKVxyXG4gICAgICAgIHRocm93IGVyclxyXG4gICAgfWZpbmFsbHl7XHJcbiAgICAgICAgYnV0dG9uLmRpc2FibGVkPWZhbHNlO1xyXG4gICAgICAgIGJ1dHRvbi5jbGFzc05hbWU9J2Rvd25sb2FkLWRtLWJ1dHRvbi1jb250JztcclxuICAgIH1cclxufVxyXG5teU93bi53U2NyZWVucy5zaW5jcm9uaXphcl9kbT1hc3luYyBmdW5jdGlvbigpe1xyXG4gICAgdmFyIG1haW5MYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9sYXlvdXQnKSE7XHJcbiAgICB2YXIgcHJvY2VkZXJCdXR0b24gPSBodG1sLmJ1dHRvbih7Y2xhc3M6J2Rvd25sb2FkLWRtLWJ1dHRvbi1jb250J30sJ3Byb2NlZGVyIOKHkicpLmNyZWF0ZSgpO1xyXG4gICAgdmFyIGRpdkF2aXNvU2luY3JvOkhUTUxEaXZFbGVtZW50PWh0bWwuZGl2KCkuY3JlYXRlKCk7XHJcbiAgICBtb3N0cmFySW5mb0xvY2FsKG1haW5MYXlvdXQgYXMgSFRNTERpdkVsZW1lbnQsICdpbmZvcm1hY2nDs24gYSB0cmFuc21pdGlyJywgbnVsbCwgZmFsc2UpXHJcbiAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKHByb2NlZGVyQnV0dG9uKTtcclxuICAgIG1haW5MYXlvdXQuYXBwZW5kQ2hpbGQoZGl2QXZpc29TaW5jcm8pO1xyXG4gICAgcHJvY2VkZXJCdXR0b24ub25jbGljayA9ICgpPT5wcm9jZWRlclNpbmNyb0Z1bihwcm9jZWRlckJ1dHRvbiwgZGl2QXZpc29TaW5jcm8pXHJcbn07XHJcblxyXG5mdW5jdGlvbiBpbmljaWFsaXphclN0YXRlKHN0YXRlOiBDYXNvU3RhdGUpIHtcclxuICAgIHN0YXRlLm1vZG8gPSB7XHJcbiAgICAgICAgZGVtbzogZmFsc2VcclxuICAgIH07XHJcbiAgICAvLyBPSk8gc3RhdGUub3BjaW9uZXMgc2UgbW9kaWZpY2EgYWPDoSB5IGVuIG90cm8gbGFkbyBjb24gZXN0ZSBtaXNtbyBjYXJ0ZWxcclxuICAgIHN0YXRlLm9wY2lvbmVzID0ge1xyXG4gICAgICAgIGJpZW52ZW5pZG86IHRydWUsXHJcbiAgICAgICAgZm9yUGs6IG51bGwsXHJcbiAgICAgICAgcGlsYUZvclBrOiBbXSxcclxuICAgICAgICBtb2RvRGVzcGxpZWd1ZTogXCJyZWxldmFtaWVudG9cIixcclxuICAgICAgICBtb2RvRGlyZWN0bzogZmFsc2UsXHJcbiAgICAgICAgbW9kb0JvcnJhclJlc3B1ZXN0YTogbnVsbCxcclxuICAgICAgICBjb25DYW1wb09wY2lvbmVzOiBmYWxzZSxcclxuICAgICAgICBzYWx0b0F1dG9tYXRpY286IHRydWUsXHJcbiAgICB9O1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICBzdGF0ZS5mZWVkYmFja1Jvd1ZhbGlkYXRvciA9IHt9O1xyXG59XHJcbi8qXHJcbmZ1bmN0aW9uIG1vc3RyYXJEYXRvc1BlcnNvbmEoaGF5RGF0b3M6Ym9vbGVhbiwgZGF0b3M6YW55LCBkaXZSZXN1bHQ6SFRNTERpdkVsZW1lbnQpe1xyXG4gICAgLy9UT0RPOiBFVkFMVUFSIFNJIENPTlZJRU5FIFRSQUVSTE8gREUgTEEgQkFTRVxyXG4gICAgdmFyIHRpcG9zRG9jdW1lbnRvID0gWydETkkgYXJnZW50aW5vJywgJ0RvY3VtZW50byBleHRyYW5qZXJvJywgJ05vIHRpZW5lIGRvY3VtZW50bycsICdPdHJvJ107XHJcbiAgICB2YXIgcGFpc0RvY3VtZW50byA9IFsnVXJ1Z3VheScsICdQYXJhZ3VheScsICdCcmFzaWwnLCAnQm9saXZpYScsICdDaGlsZScsICdQZXLDuicsICdWZW5lenVlbGEnLCAnT3RybyddO1xyXG4gICAgZGl2UmVzdWx0LmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGhheURhdG9zP1xyXG4gICAgICAgICAgICBodG1sLmRpdih7Y2xhc3M6J2RhdG9zLXBlcnNvbmEtY2FyZ2FkYSd9LFtcclxuICAgICAgICAgICAgICAgIGh0bWwuaDIoXCJEYXRvcyBwZXJzb25hXCIpLFxyXG4gICAgICAgICAgICAgICAgaHRtbC5kaXYoe2NsYXNzOidmaWNoYS1wZXJzb25hJ30sW1xyXG4gICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KFtodG1sLmxhYmVsKCdBcGVsbGlkbzogJyksIGRhdG9zLmFwZWxsaWRvXSksXHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoW2h0bWwubGFiZWwoJ05vbWJyZXM6ICcpLCBkYXRvcy5ub21icmVzXSksXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3MudGlwb0RvY3VtZW50bz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5sYWJlbCgnVGlwbyBkb2N1bWVudG86ICcpLCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpcG9zRG9jdW1lbnRvW2RhdG9zLnRpcG9Eb2N1bWVudG8tMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRvcy50aXBvRG9jdW1lbnRvPT00ICYmIGRhdG9zLnRpcG9Eb2N1bWVudG9Fc3BlY2lmaWNhZG8/JyAoJysgZGF0b3MudGlwb0RvY3VtZW50b0VzcGVjaWZpY2FkbysnKSc6JycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgICAgICAgICAgICAgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRvcy50aXBvRG9jdW1lbnRvPT0yICYmIGRhdG9zLnBhaXNEb2N1bWVudG8/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwubGFiZWwoJ1BhaXM6ICcpLCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhaXNEb2N1bWVudG9bZGF0b3MucGFpc0RvY3VtZW50by0xXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdG9zLnBhaXNEb2N1bWVudG89PTggJiYgZGF0b3MucGFpc0RvY3VtZW50b0VzcGVjaWZpY2Fkbz8nICgnK2RhdG9zLnBhaXNEb2N1bWVudG9Fc3BlY2lmaWNhZG8rJyknOicnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdKVxyXG4gICAgICAgICAgICAgICAgICAgIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3MudGlwb0RvY3VtZW50byE9MyAmJiBkYXRvcy50aXBvRG9jdW1lbnRvP2h0bWwuZGl2KFtodG1sLmxhYmVsKCdOwrogRG9jdW1lbnRvOiAnKSwgZGF0b3MuZG9jdW1lbnRvXSk6JycsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3MuY2VsdWxhcj9odG1sLmRpdihbaHRtbC5sYWJlbCgnQ2VsLjogJyksIGRhdG9zLmNlbHVsYXJdKTonJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRvcy5lbWFpbD9odG1sLmRpdihbaHRtbC5sYWJlbCgnRW1haWw6ICcpLCBkYXRvcy5lbWFpbF0pOicnLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdG9zLnRlbGVmb25vQWx0ZXJuYXRpdm8/aHRtbC5kaXYoW2h0bWwubGFiZWwoJ1RlbC4gYWx0ZXJuYXRpdm86ICcpLCBkYXRvcy50ZWxlZm9ub0FsdGVybmF0aXZvXSk6JycsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3Mub2JzZXJ2YWNpb25lcz9odG1sLmRpdihbaHRtbC5sYWJlbCgnT2JzZXJ2YWNpb25lczogJyksIGRhdG9zLm9ic2VydmFjaW9uZXNdKTonJyxcclxuICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgICAgIF0pLmNyZWF0ZSgpXHJcbiAgICAgICAgOlxyXG4gICAgICAgICAgICBodG1sLnAoXCJObyBzZSBlbmNvbnRyw7MgdW5hIGVuY3Vlc3RhIHBhcmEgbGEgZXRpcXVldGEgY2FyZ2FkYVwiKS5jcmVhdGUoKVxyXG4gICAgKVxyXG59XHJcbiovXHJcbm15T3duLmNsaWVudFNpZGVzLnRhcmVhc1RlbVJvdz17XHJcbiAgICB1cGRhdGU6KGRlcG90KT0+e1xyXG4gICAgICAgIHZhciB0YXJlYTonbmFkYSd8J3ByZWFzaWduYXInfCdjYXJnYXInfCdyZWFsaXphcid8J3ZlcmlmaWNhcic9J25hZGEnO1xyXG4gICAgICAgIHZhciByb3c9ZGVwb3Qucm93O1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICB2YXIgaWRwZXI9bXkuY29uZmlnLmlkcGVyO1xyXG4gICAgICAgIHZhciBlc3BlcmFyOmJvb2xlYW49ZmFsc2U7XHJcbiAgICAgICAgaWYocm93LmhhYmlsaXRhZGEpe1xyXG4gICAgICAgICAgICBpZighcm93LmFzaWduYW50ZSAmJiAhcm93LmFzaWduYWRvKXtcclxuICAgICAgICAgICAgICAgIHRhcmVhPSdwcmVhc2lnbmFyJztcclxuICAgICAgICAgICAgICAgIGVzcGVyYXI9dHJ1ZTtcclxuICAgICAgICAgICAgfWVsc2UgaWYoIXJvdy5hc2lnbmFkbyB8fCAhcm93LmZlY2hhX2FzaWduYWNpb24gfHwgIXJvdy5vcGVyYWNpb24pe1xyXG4gICAgICAgICAgICAgICAgdGFyZWE9J2Nhcmdhcic7XHJcbiAgICAgICAgICAgICAgICBlc3BlcmFyPXJvdy5hc2lnbmFudGUhPWlkcGVyO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZighcm93LnJlYSl7XHJcbiAgICAgICAgICAgICAgICB0YXJlYT0ncmVhbGl6YXInO1xyXG4gICAgICAgICAgICAgICAgZXNwZXJhcj1yb3cuYXNpZ25hZG8hPWlkcGVyO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZighcm93LnZlcmlmaWNhZG8pe1xyXG4gICAgICAgICAgICAgICAgdGFyZWE9J3ZlcmlmaWNhcic7XHJcbiAgICAgICAgICAgICAgICBlc3BlcmFyPXJvdy5hc2lnbmFudGUhPWlkcGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBwb25lcj17XHJcbiAgICAgICAgICAgIGFzaWduYW50ZSAgICAgICAgICA6dGFyZWE9PSdwcmVhc2lnbmFyJyAmJiAoZXNwZXJhcj8nZXNwZXJhcic6J25vcm1hbCcpLFxyXG4gICAgICAgICAgICBhc2lnbmFkbyAgICAgICAgICAgOnRhcmVhPT0nY2FyZ2FyJyAgICAgJiYgKGVzcGVyYXI/J2VzcGVyYXInOidub3JtYWwnKSxcclxuICAgICAgICAgICAgZmVjaGFfYXNpZ25hY2lvbiAgIDp0YXJlYT09J2NhcmdhcicgICAgICYmIChlc3BlcmFyPydlc3BlcmFyJzonbm9ybWFsJyksXHJcbiAgICAgICAgICAgIG9wZXJhY2lvbiAgICAgICAgICA6dGFyZWE9PSdjYXJnYXInICAgICAmJiAoZXNwZXJhcj8nZXNwZXJhcic6J25vcm1hbCcpLFxyXG4gICAgICAgICAgICBjYXJnYV9vYnNlcnZhY2lvbmVzOih0YXJlYT09J2NhcmdhcicgICAgIHx8IHRhcmVhPT0ncmVhbGl6YXInICYmICFyb3cuY2FyZ2FkbyAmJiAhcm93LnJlYSApICYmIHJvdy5hc2lnbmFudGU9PWlkcGVyICYmICdvcHRhdGl2bycsXHJcbiAgICAgICAgICAgIHZlcmlmaWNhZG8gICAgICAgICA6dGFyZWE9PSd2ZXJpZmljYXInICAmJiAoZXNwZXJhcj8nZXNwZXJhcic6J25vcm1hbCcpLFxyXG4gICAgICAgICAgICBvYnNfdmVyaWZpY2FkbyAgICAgOnRhcmVhPT0ndmVyaWZpY2FyJyAgJiYgKGVzcGVyYXI/J2VzcGVyYXInOidvcHRhdGl2bycpLFxyXG4gICAgICAgIH1cclxuICAgICAgICBsaWtlQXIocG9uZXIpLmZvckVhY2goKHZhbG9yLCBjYW1wbyk9PntcclxuICAgICAgICAgICAgaWYoIXZhbG9yKXtcclxuICAgICAgICAgICAgICAgIGRlcG90LnJvd0NvbnRyb2xzW2NhbXBvXS5yZW1vdmVBdHRyaWJ1dGUoJ215LW1hbmRhdG9yeScpXHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgZGVwb3Qucm93Q29udHJvbHNbY2FtcG9dLnNldEF0dHJpYnV0ZSgnbXktbWFuZGF0b3J5Jyx2YWxvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSxcclxuICAgIHByZXBhcmU6IGZ1bmN0aW9uKCl7fVxyXG59XHJcblxyXG52YXIgY3JlYXJCb3RvblZlckFicmlyRW5jdWVzdGEgPSAob3BlcmF0aXZvOklkT3BlcmF0aXZvLHRhcmVhOklkVGFyZWEsZW5jdWVzdGE6bnVtYmVyLCBsYWJlbDpzdHJpbmcpPT57XHJcbiAgICB2YXIgdXAgPSB7XHJcbiAgICAgICAgb3BlcmF0aXZvOm9wZXJhdGl2byxcclxuICAgICAgICB0YXJlYTp0YXJlYSxcclxuICAgICAgICBlbmN1ZXN0YTplbmN1ZXN0YVxyXG4gICAgfVxyXG4gICAgbGV0IHZlciA9IG15LmNyZWF0ZUZvcmtlYWJsZUJ1dHRvbih7dzonYWJyaXJfZW5jdWVzdGEnLHVwLCBhdXRvcHJvY2VkOnRydWUsIGxhYmVsfSx7fSk7XHJcbiAgICByZXR1cm4gdmVyXHJcbn1cclxuXHJcbnZhciBjcmVhckJvdG9uZXNWZXJBYnJpclRhcmVhcyA9IGFzeW5jIChkZXBvdDpteU93bi5EZXBvdCwgZmllbGROYW1lOnN0cmluZywgbGFiZWw6J2FicmlyJ3wndmVyJyk9PntcclxuICAgIHRhcmVhcyA9IHRhcmVhcz90YXJlYXM6KGF3YWl0IG15T3duLmFqYXgudGFibGVfZGF0YSh7dGFibGU6IGB0YXJlYXNgLCBmaXhlZEZpZWxkczpbXX0pKS5maWx0ZXIoKHRhcmVhKT0+ISF0YXJlYS5tYWluX2Zvcm0gJiYgdGFyZWEub3BlcmF0aXZvPT1kZXBvdC5yb3cub3BlcmF0aXZvKTtcclxuICAgIGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV0uaW5uZXJIVE1MPScnO1xyXG4gICAgdGFyZWFzLmZvckVhY2goKHRhcmVhOnt0YXJlYTpzdHJpbmcsIG5vbWJyZTpzdHJpbmcsIG1haW5fZm9ybTpJZEZvcm11bGFyaW99KT0+e1xyXG4gICAgICAgIGxldCBidXR0b25MYWJlbCA9IGAke2xhYmVsfSAke3RhcmVhLnRhcmVhfWA7XHJcbiAgICAgICAgbGV0IHZlciA9IGNyZWFyQm90b25WZXJBYnJpckVuY3Vlc3RhKFxyXG4gICAgICAgICAgICBkZXBvdC5yb3cub3BlcmF0aXZvIGFzIElkT3BlcmF0aXZvLFxyXG4gICAgICAgICAgICB0YXJlYS50YXJlYSBhcyBJZFRhcmVhLCBcclxuICAgICAgICAgICAgTnVtYmVyKGRlcG90LnJvdy5lbmMpLFxyXG4gICAgICAgICAgICBidXR0b25MYWJlbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdmVyLnN0eWxlPSdtYXJnaW46MHB4IDJweDsnO1xyXG4gICAgICAgIGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV0uYXBwZW5kQ2hpbGQodmVyKTtcclxuICAgIH0pXHJcbn1cclxuXHJcbm15T3duLmNsaWVudFNpZGVzLmFicmlyPXtcclxuICAgIHByZXBhcmU6IChfZGVwb3QsIF9maWVsZE5hbWUpPT57fSxcclxuICAgIHVwZGF0ZTogKGRlcG90LCBmaWVsZE5hbWUpPT57XHJcbiAgICAgICAgdmFyIGxhYmVsOid2ZXInfCdhYnJpcicgPSBkZXBvdC5yb3cuY2FyZ2Fkb19kbT8ndmVyJzonYWJyaXInO1xyXG4gICAgICAgIGNyZWFyQm90b25lc1ZlckFicmlyVGFyZWFzKGRlcG90LGZpZWxkTmFtZSxsYWJlbCk7IC8vbm8gZXNwZXJvIHByb21lc2EgcG9ycXVlIG5vIGVzIG5lY2VzYXJpb1xyXG4gICAgfVxyXG59O1xyXG5cclxubXlPd24uY2xpZW50U2lkZXMuYWJyaXJSZWNlcGNpb249e1xyXG4gICAgcHJlcGFyZTogKF9kZXBvdCwgX2ZpZWxkTmFtZSk9Pnt9LFxyXG4gICAgdXBkYXRlOiAoZGVwb3QsIGZpZWxkTmFtZSk9PntcclxuICAgICAgICB2YXIgbGFiZWw6J3Zlcid8J2FicmlyJyA9IGRlcG90LnJvdy5jYXJnYWRvPyd2ZXInOidhYnJpcic7XHJcbiAgICAgICAgY3JlYXJCb3RvbmVzVmVyQWJyaXJUYXJlYXMoZGVwb3QsZmllbGROYW1lLGxhYmVsKTsgLy9ubyBlc3Blcm8gcHJvbWVzYSBwb3JxdWUgbm8gZXMgbmVjZXNhcmlvXHJcbiAgICB9XHJcbn07XHJcblxyXG5mdW5jdGlvbiBib3RvbkNsaWVudFNpZGVFbkdyaWxsYShvcHRzOiB7IG5vbWJyZUJvdG9uOiBzdHJpbmcsIGxsYW1hZGE6IChkZXBvdDogbXlPd24uRGVwb3QpID0+IFByb21pc2U8YW55PiB9KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByZXBhcmU6IGZ1bmN0aW9uIChkZXBvdDogbXlPd24uRGVwb3QsIGZpZWxkTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciB0ZCA9IGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV07XHJcbiAgICAgICAgICAgIHZhciBib3RvbiA9IGh0bWwuYnV0dG9uKG9wdHMubm9tYnJlQm90b24pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSBcIlwiO1xyXG4gICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChib3Rvbik7XHJcbiAgICAgICAgICAgIHZhciByZXN0YXVyYXJCb3RvbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGJvdG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBib3Rvbi50ZXh0Q29udGVudCA9IG9wdHMubm9tYnJlQm90b247XHJcbiAgICAgICAgICAgICAgICBib3Rvbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnJztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYm90b24ub25jbGljayA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGJvdG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJvdG9uLnRleHRDb250ZW50ID0gJ3Byb2Nlc2FuZG8uLi4nO1xyXG4gICAgICAgICAgICAgICAgb3B0cy5sbGFtYWRhKGRlcG90KS50aGVuKGFzeW5jIGZ1bmN0aW9uKHJlc3VsdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocmVzdWx0ICYmIHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnICYmICdvaycgaW4gcmVzdWx0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzdWx0Lm9rKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBncmlkPWRlcG90Lm1hbmFnZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBncmlkLnJldHJpZXZlUm93QW5kUmVmcmVzaChkZXBvdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVwb3QuZGV0YWlsQ29udHJvbHMuaW5jb25zaXN0ZW5jaWFzKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBvdC5kZXRhaWxDb250cm9scy5pbmNvbnNpc3RlbmNpYXMuZm9yY2VEaXNwbGF5RGV0YWlsR3JpZCh7fSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uLnRleHRDb250ZW50ID0gIHJlc3VsdC5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90b24udGl0bGUgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3Rvbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzhGOCc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlc3RhdXJhckJvdG9uLCAyNTAwKTtcclxuICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBib3Rvbi50ZXh0Q29udGVudCA9ICdlcnJvcic7XHJcbiAgICAgICAgICAgICAgICAgICAgYm90b24uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyNGRjgnO1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0UHJvbWlzZShlcnIubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vaWYgKChkZXBvdC5yb3cuY29uc2lzdGlkbz09bnVsbCAgJiYgZGVwb3Qucm93LnJlYSE9bnVsbCkgfHwgZGVwb3Qucm93Lm1vZGlmaWNhZG8hPW51bGwgJiYgZGVwb3Qucm93LmNvbnNpc3RpZG8hPW51bGwgJiYgZGVwb3Qucm93Lm1vZGlmaWNhZG8gPmRlcG90LnJvdy5jb25zaXN0aWRvKXtcclxuICAgICAgICAgICAgLy8gICAgYm90b24uc3R5bGUuYmFja2dyb3VuZENvbG9yPScjOENGJ1xyXG4gICAgICAgICAgICAvL31cclxuICAgICAgICB9ICAgICAgICBcclxuICAgIH07XHJcbn1cclxuXHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5jb25zaXN0aXIgPSBib3RvbkNsaWVudFNpZGVFbkdyaWxsYSh7XHJcbiAgICBub21icmVCb3RvbjogJ2NvbnNpc3RpcicsXHJcbiAgICBsbGFtYWRhOiBmdW5jdGlvbiAoZGVwb3Q6IG15T3duLkRlcG90KSB7XHJcbiAgICAgICAgdmFyIGZpbHRyb1JlYT1jb25zaXN0aXJfZmlsdHJvKGRlcG90LnJvdy50YXJlYSwgZGVwb3Qucm93LnV0bF9yZWEsIGRlcG90LnJvdy5yZWEpXHJcbiAgICAgICAgcmV0dXJuIGZpbHRyb1JlYT8gbXlPd24uYWpheC5jb25zaXN0aXJfZW5jdWVzdGEoe1xyXG4gICAgICAgICAgICBvcGVyYXRpdm86IGRlcG90LnJvdy5vcGVyYXRpdm8sXHJcbiAgICAgICAgICAgIGlkX2Nhc286IGRlcG90LnJvdy5lbmNcclxuICAgICAgICB9KTogYWxlcnRQcm9taXNlKCdMYSBlbmN1ZXN0YSBkZWJlIHRlbmVyIGRhdG8gZW4gcmVhIHBhcmEgcG9kZXIgY29uc2lzdGlybGEuJyk7XHJcbiAgICB9XHJcbn0pO1xyXG5cclxubXlPd24ud1NjcmVlbnMuY29uc2lzdGlyX2VuY3Vlc3RhPXtcclxuICAgIHBhcmFtZXRlcnM6W1xyXG4gICAgICAgIHtuYW1lOidvcGVyYXRpdm8nICwgdHlwZU5hbWU6J3RleHQnLCBkZWZhdWx0VmFsdWU6T1BFUkFUSVZPX0RFRkFVTFQsIHJlZmVyZW5jZXM6J29wZXJhdGl2b3MnfSxcclxuICAgICAgICB7bmFtZTondGFyZWEnICAgICAsIHR5cGVOYW1lOid0ZXh0J30sXHJcbiAgICAgICAge25hbWU6J2VuY3Vlc3RhJyAgLCB0eXBlTmFtZTonaW50ZWdlcid9XHJcbiAgICBdLFxyXG4gICAgYXV0b3Byb2NlZDp0cnVlLFxyXG4gICAgbWFpbkFjdGlvbjphc3luYyAocGFyYW1zKT0+e1xyXG4gICAgICAgIHZhciB7b3BlcmF0aXZvLCB0YXJlYSwgZW5jdWVzdGEgfSA9IHBhcmFtcztcclxuICAgICAgICB2YXIgcmVzdWx0ID0gYXdhaXQgbXlPd24uYWpheC5jb25zaXN0aXJfZW5jdWVzdGEoe1xyXG4gICAgICAgICAgICBvcGVyYXRpdm86IG9wZXJhdGl2byxcclxuICAgICAgICAgICAgaWRfY2FzbzogZW5jdWVzdGFcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZihyZXN1bHQub2spe1xyXG4gICAgICAgICAgICB2YXIgZml4ZWRGaWVsZHMgPSBbXTtcclxuICAgICAgICAgICAgZml4ZWRGaWVsZHMucHVzaCh7ZmllbGROYW1lOiAnb3BlcmF0aXZvJywgdmFsdWU6IG9wZXJhdGl2b30pO1xyXG4gICAgICAgICAgICBmaXhlZEZpZWxkcy5wdXNoKHtmaWVsZE5hbWU6ICd2aXZpZW5kYScsIHZhbHVlOiBlbmN1ZXN0YX0pO1xyXG4gICAgICAgICAgICB2YXIgbWFpbkxheW91dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2xheW91dCcpITtcclxuICAgICAgICAgICAgdmFyIGRpdkdyaWxsYSA9IGh0bWwuZGl2KHtpZDonaW5jb25zaXN0ZW5jaWFzJ30pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICBtYWluTGF5b3V0Lmluc2VydEJlZm9yZShkaXZHcmlsbGEsIG1haW5MYXlvdXQuZmlyc3RDaGlsZCk7XHJcbiAgICAgICAgICAgIG1haW5MYXlvdXQuaW5zZXJ0QmVmb3JlKFxyXG4gICAgICAgICAgICAgICAgY3JlYXJCb3RvblZlckFicmlyRW5jdWVzdGEoXHJcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aXZvLFxyXG4gICAgICAgICAgICAgICAgICAgIHRhcmVhLFxyXG4gICAgICAgICAgICAgICAgICAgIGVuY3Vlc3RhLCBcclxuICAgICAgICAgICAgICAgICAgICBgaXIgYSBlbmN1ZXN0YSAke2VuY3Vlc3RhfWBcclxuICAgICAgICAgICAgICAgICksIFxyXG4gICAgICAgICAgICAgICAgbWFpbkxheW91dC5maXJzdENoaWxkXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIG15LnRhYmxlR3JpZChcImluY29uc2lzdGVuY2lhc1wiLCBkaXZHcmlsbGEse3RhYmxlRGVmOnt9LGZpeGVkRmllbGRzOiBmaXhlZEZpZWxkc30pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxubXlPd24ud1NjcmVlbnMuZGVtbz1hc3luYyBmdW5jdGlvbihfYWRkclBhcmFtcyl7XHJcbiAgICAvLyBAdHMtaWdub3JlIGRlc3BsZWdhckZvcm11bGFyaW9BY3R1YWwgZ2xvYmFsXHJcbiAgICB3aW5kb3cuZGVzcGxlZ2FyRm9ybXVsYXJpb0FjdHVhbCh7bW9kb0RlbW86dHJ1ZX0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBhcnJheUZsYXQ8VD4oYXJyYXlzOlRbXVtdKTpUW117XHJcbiAgICByZXR1cm4gKFtdIGFzIFRbXSkuY29uY2F0LmFwcGx5KFtdLCBhcnJheXMpO1xyXG59XHJcbiJdfQ==
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsMkNBQWdDO0lBQ2hDLG1FQUE2RDtJQUk3RCxrQ0FBa0M7SUFDbEMscUVBQW9GO0lBQ3BGLG1FQUF5STtJQUV6SSxrQkFBa0I7SUFFbEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDO0lBQzdCLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDO0lBRXZDLHFHQUFxRztJQUNyRyxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUMzRSxNQUFBLE1BQUEsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxVQUFVLDBDQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRCxTQUFTLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRztRQUN6QyxPQUFPLEtBQUssQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLE1BQU0sR0FBTyxJQUFJLENBQUM7SUFFdEIsU0FBUyxVQUFVLENBQUMsR0FBVTtRQUMxQixPQUFPLGlCQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxFQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUcsYUFBSCxHQUFHLGNBQUgsR0FBRyxHQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVELElBQUksa0JBQWtCLEdBQUcsQ0FBTyxZQUFvQyxFQUFFLEVBQUU7UUFDcEUsSUFBSSxFQUFDLGtCQUFrQixFQUFDLEdBQUcsWUFBWSxDQUFBO1FBQ25DLElBQUcsa0JBQWtCLElBQUUsT0FBTyxFQUFDO1lBQzNCLEVBQUUsQ0FB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UUFBUSxFQUFDLElBQUksRUFBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztLQUFBLENBQUE7SUFFRCxTQUFTLFNBQVMsQ0FBSSxNQUFZO1FBQzlCLE9BQVEsRUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2h0bWx9IGZyb20gXCJqcy10by1odG1sXCI7XHJcbmltcG9ydCB7dHJhZXJFc3RydWN0dXJhfSBmcm9tIFwiLi4vdW5sb2dnZWQvcmVkdXgtZm9ybXVsYXJpb1wiO1xyXG5pbXBvcnQgeyBDYXNvU3RhdGUsICBcclxuICAgIElkRm9ybXVsYXJpbywgRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMsIElkRW5jLCBJZE9wZXJhdGl2bywgSWRUYXJlYSxcclxufSBmcm9tIFwiLi4vdW5sb2dnZWQvdGlwb3NcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcbmltcG9ydCB7Z2V0RXN0cnVjdHVyYSwgc2V0UGVyc2lzdGlyRGF0b3NCeVBhc3N9IGZyb20gXCIuLi91bmxvZ2dlZC9ieXBhc3MtZm9ybXVsYXJpb1wiXHJcbmltcG9ydCB7Y2FyZ2FyRXN0cnVjdHVyYSwgY2FyZ2FySG9qYURlUnV0YSwgR0xPVkFSX0RBVE9TQllQQVNTLCBHTE9WQVJfRVNUUlVDVFVSQSwgR0xPVkFSX01PRE9CWVBBU1N9IGZyb20gXCIuLi91bmxvZ2dlZC9hYnJpci1mb3JtdWxhcmlvXCJcclxuXHJcbi8vVE9ETyBHRU5FUkFMSVpBUlxyXG5cclxuY29uc3QgVEFSRUFfREVGQVVMVCA9ICdlbmN1JztcclxuY29uc3QgT1BFUkFUSVZPX0RFRkFVTFQgPSAnUFJFSlVfMjAyMic7XHJcblxyXG4vL3F1aXRhIGJvb3RzdHJhcCBkZWwgaGVhZCBwYXJhIHF1ZSBubyByb21wYSBsb3MgZXN0aWxvcyBkZSBCRVBsdXMgKHNvbG8gc2UgdXNhIGJvb3RzdHJhcCBlbiBlbCBmb3JtKVxyXG52YXIgbGlua05vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaHJlZj1cImNzcy9ib290c3RyYXAubWluLmNzc1wiXScpO1xyXG5saW5rTm9kZVswXT8ucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobGlua05vZGVbMF0pO1xyXG5cclxuZnVuY3Rpb24gY29uc2lzdGlyX2ZpbHRybyh0YXJlYSwgcmVhX3RlbSwgcmVhKXtcclxuICAgIHJldHVybiB0YXJlYT9yZWFfdGVtOnJlYTtcclxufTtcclxuXHJcbnZhciB0YXJlYXM6YW55ID0gbnVsbDtcclxuXHJcbmZ1bmN0aW9uIGh0bWxOdW1lcm8obnVtOm51bWJlcil7XHJcbiAgICByZXR1cm4gaHRtbC5zcGFuKHtjbGFzczonbnVtZXJvJ30sJycrKG51bT8/JycpKVxyXG59XHJcblxyXG52YXIgcGVyc2lzdGlyRW5NZW1vcmlhID0gYXN5bmMgKHBlcnNpc3RlbnRlczpEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcykgPT4ge1xyXG4gICAgdmFyIHttb2RvQWxtYWNlbmFtaWVudG99ID0gcGVyc2lzdGVudGVzXHJcbiAgICAgICAgaWYobW9kb0FsbWFjZW5hbWllbnRvPT0nbG9jYWwnKXtcclxuICAgICAgICAgICAgbXkuc2V0TG9jYWxWYXIoR0xPVkFSX0RBVE9TQllQQVNTLCBwZXJzaXN0ZW50ZXMpXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIG15LnNldFNlc3Npb25WYXIoR0xPVkFSX0RBVE9TQllQQVNTLCBwZXJzaXN0ZW50ZXMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIG15LnNldFNlc3Npb25WYXIoR0xPVkFSX01PRE9CWVBBU1MsIG1vZG9BbG1hY2VuYW1pZW50bylcclxufVxyXG5cclxuYXN5bmMgZnVuY3Rpb24gc2luY3Jvbml6YXJEYXRvcyhwZXJzaXN0ZW50ZXM6RGF0b3NCeVBhc3NQZXJzaXN0aWJsZXN8bnVsbCl7XHJcbiAgICB2YXIgZGF0b3MgPSBhd2FpdCBteS5hamF4LmRtX3NpbmNyb25pemFyKHtwZXJzaXN0ZW50ZXN9KTtcclxuICAgIHZhciBvcGVyYXRpdm8gPSBkYXRvcy5vcGVyYXRpdm87XHJcbiAgICBwZXJzaXN0aXJFbk1lbW9yaWEoey4uLmRhdG9zLCBtb2RvQWxtYWNlbmFtaWVudG86J2xvY2FsJ30pO1xyXG4gICAgdmFyIGVzdHJ1Y3R1cmEgPSBhd2FpdCB0cmFlckVzdHJ1Y3R1cmEoe29wZXJhdGl2b30pXHJcbiAgICBteS5zZXRMb2NhbFZhcihHTE9WQVJfRVNUUlVDVFVSQSwgZXN0cnVjdHVyYSk7XHJcbiAgICByZXR1cm4gZGF0b3M7XHJcbn1cclxuXHJcbm15T3duLndTY3JlZW5zLmFicmlyX2VuY3Vlc3RhPXtcclxuICAgIHBhcmFtZXRlcnM6W1xyXG4gICAgICAgIHtuYW1lOidvcGVyYXRpdm8nICwgdHlwZU5hbWU6J3RleHQnLCBkZWZhdWx0VmFsdWU6T1BFUkFUSVZPX0RFRkFVTFQsIHJlZmVyZW5jZXM6J29wZXJhdGl2b3MnfSxcclxuICAgICAgICB7bmFtZTondGFyZWEnICAgICAsIHR5cGVOYW1lOid0ZXh0JywgZGVmYXVsdFZhbHVlOlRBUkVBX0RFRkFVTFQsIHJlZmVyZW5jZXM6ICd0YXJlYXMnfSxcclxuICAgICAgICB7bmFtZTonZW5jdWVzdGEnICAsIHR5cGVOYW1lOidpbnRlZ2VyJywgZGVmYXVsdFZhbHVlOjEzMDAzMX1cclxuICAgIF0sXHJcbiAgICBhdXRvcHJvY2VkOnRydWUsXHJcbiAgICBtYWluQWN0aW9uOmFzeW5jIChwYXJhbXMpPT57XHJcbiAgICAgICAgLy8gYW50ZXM6IGFicmlyRGlyZWN0b1xyXG4gICAgICAgIHZhciB7b3BlcmF0aXZvLCBlbmN1ZXN0YSwgdGFyZWF9ID0gcGFyYW1zO1xyXG4gICAgICAgIHZhciBlc3RydWN0dXJhID0gZ2V0RXN0cnVjdHVyYSgpO1xyXG4gICAgICAgIHZhciBjYXJnYSA9IGF3YWl0IG15LmFqYXguZG1fZm9ycGtyYWl6X2Nhcmdhcih7b3BlcmF0aXZvLCB2aXZpZW5kYTplbmN1ZXN0YSwgdGFyZWF9KSBhcyBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcztcclxuICAgICAgICBpZighZXN0cnVjdHVyYSB8fCAoZXN0cnVjdHVyYS50aW1lc3RhbXA/PzApIDwgY2FyZ2EudGltZXN0YW1wRXN0cnVjdHVyYSEgfHwgZXN0cnVjdHVyYS5vcGVyYXRpdm8gIT0gb3BlcmF0aXZvIHx8IG15LmNvbmZpZy5jb25maWcuZGV2ZWwpe1xyXG4gICAgICAgICAgICBlc3RydWN0dXJhID0gYXdhaXQgdHJhZXJFc3RydWN0dXJhKHtvcGVyYXRpdm99KVxyXG4gICAgICAgICAgICBjYXJnYXJFc3RydWN0dXJhKGVzdHJ1Y3R1cmEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICB2YXIgc3RhdGU6Q2Fzb1N0YXRlID0ge31cclxuICAgICAgICBpbmljaWFsaXphclN0YXRlKHN0YXRlKTtcclxuICAgICAgICB2YXIgZm9yUGtSYWl6ID0ge2Zvcm11bGFyaW86Y2FyZ2EuaW5mb3JtYWNpb25IZHJbZW5jdWVzdGEgYXMgSWRFbmNdLnRhcmVhLm1haW5fZm9ybSwgdml2aWVuZGE6ZW5jdWVzdGF9O1xyXG4gICAgICAgIHNldFBlcnNpc3RpckRhdG9zQnlQYXNzKFxyXG4gICAgICAgICAgICBhc3luYyBmdW5jdGlvbiBwZXJzaXN0aXJEYXRvc0J5UGFzc0VuQmFzZURlRGF0b3MocGVyc2lzdGVudGVzOkRhdG9zQnlQYXNzUGVyc2lzdGlibGVzKXtcclxuICAgICAgICAgICAgICAgIGlmKHBlcnNpc3RlbnRlcy5zb2xvTGVjdHVyYSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXN0w6EgaW50ZW50YW5kbyBtb2RpZmljYXIgdW5hIGVuY3Vlc3RhIGFiaWVydGEgY29tbyBzb2xvIGxlY3R1cmEsIG5vIHNlIGd1YXJkYXJvbiBsb3MgY2FtYmlvc1wiKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYXdhaXQgbXkuYWpheC5kbV9mb3Jwa3JhaXpfZGVzY2FyZ2FyKHtvcGVyYXRpdm8sIHBlcnNpc3RlbnRlc30pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICAgIGlmKCFjYXJnYS5yZXNwdWVzdGFzLnZpdmllbmRhc1tmb3JQa1JhaXoudml2aWVuZGEhXSl7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc2UgZW5jdWVudHJhIGxhIHZpdmllbmRhICR7Zm9yUGtSYWl6LnZpdmllbmRhIX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FyZ2FySG9qYURlUnV0YSh7Li4uY2FyZ2EsIG1vZG9BbG1hY2VuYW1pZW50bzonc2Vzc2lvbid9KTtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgZGVzcGxlZ2FyRm9ybXVsYXJpb0FjdHVhbCh7b3BlcmF0aXZvLCBtb2RvRGVtbzpmYWxzZSwgZm9yUGtSYWl6fSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbnZhciBtb3N0cmFySW5mb0xvY2FsID0gKGRpdkF2aXNvU2luY3JvOkhUTUxEaXZFbGVtZW50LCB0aXR1bG86c3RyaW5nLCBucm9TaW5jcm86bnVtYmVyfG51bGwsIG1vc3RyYXJMaW5rSGRyOiBib29sZWFuKT0+e1xyXG4gICAgbGV0IGRhdG9zQnlQYXNzID0gbXkuZ2V0TG9jYWxWYXIoR0xPVkFSX0RBVE9TQllQQVNTKTtcclxuICAgIGlmKGRhdG9zQnlQYXNzKXtcclxuICAgICAgICBkaXZBdmlzb1NpbmNyby5hcHBlbmQoaHRtbC5kaXYoe2lkOidhdmlzby1zaW5jcm8nfSwgW1xyXG4gICAgICAgICAgICBucm9TaW5jcm8/aHRtbC5wKFtcIk7Dum1lcm8gZGUgc2luY3Jvbml6YWNpw7NuOiBcIiwgaHRtbC5iKFwiXCIrbnJvU2luY3JvLnRvU3RyaW5nKCkpXSk6bnVsbCxcclxuICAgICAgICAgICAgaHRtbC5oNCh0aXR1bG8pLFxyXG4gICAgICAgICAgICBodG1sLnAoW2h0bWxOdW1lcm8obGlrZUFyKGRhdG9zQnlQYXNzLmNhcmdhcykuYXJyYXkoKS5sZW5ndGgpLCcgYXJlYXM6ICcsbGlrZUFyKGRhdG9zQnlQYXNzLmNhcmdhcykua2V5cygpLmpvaW4oJywgJyldKSxcclxuICAgICAgICAgICAgaHRtbC5wKFtodG1sTnVtZXJvKGxpa2VBcihkYXRvc0J5UGFzcy5yZXNwdWVzdGFzLnZpdmllbmRhcykuYXJyYXkoKS5sZW5ndGgpLCcgdml2aWVuZGFzJ10pLFxyXG4gICAgICAgICAgICBtb3N0cmFyTGlua0hkcj9odG1sLmEoe2hyZWY6Jy4vY2FtcG8nfSxbaHRtbC5iKCdJUiBBIExBIEhPSkEgREUgUlVUQScpXSk6bnVsbFxyXG4gICAgICAgIF0pLmNyZWF0ZSgpKTtcclxuICAgIH1lbHNle1xyXG4gICAgICAgIGRpdkF2aXNvU2luY3JvLmFwcGVuZENoaWxkKGh0bWwuZGl2KHtjbGFzczonYXZpc28nfSxbXHJcbiAgICAgICAgICAgIGh0bWwuaDQoJ1Npc3RlbWEgdmFjw61vJyksXHJcbiAgICAgICAgICAgIGh0bWwucCgnTm8gaGF5IGluZm9ybWFjacOzbiBkZSBmb3JtdWxhcmlvcycpLFxyXG4gICAgICAgICAgICBodG1sLnAoJ05vIGhheSBpbmZvcm1hY2nDs24gZGUgdml2aWVuZGFzJylcclxuICAgICAgICBdKS5jcmVhdGUoKSk7XHJcbiAgICB9XHJcbn1cclxudmFyIHByb2NlZGVyU2luY3JvRnVuID0gYXN5bmMgKGJ1dHRvbjpIVE1MQnV0dG9uRWxlbWVudCwgZGl2QXZpc29TaW5jcm86SFRNTERpdkVsZW1lbnQpPT57XHJcbiAgICBidXR0b24uZGlzYWJsZWQ9dHJ1ZTtcclxuICAgIGJ1dHRvbi5jbGFzc05hbWU9J2Rvd25sb2FkLWRtLWJ1dHRvbic7XHJcbiAgICBkaXZBdmlzb1NpbmNyby5pbm5lckhUTUw9Jyc7XHJcbiAgICB0cnl7XHJcbiAgICAgICAgdmFyIGRhdG9zQnlQYXNzOkRhdG9zQnlQYXNzUGVyc2lzdGlibGVzID0gbXkuZ2V0TG9jYWxWYXIoR0xPVkFSX0RBVE9TQllQQVNTKTtcclxuICAgICAgICB2YXIgZGF0b3MgPSBhd2FpdCBzaW5jcm9uaXphckRhdG9zKGRhdG9zQnlQYXNzKTtcclxuICAgICAgICBtb3N0cmFySW5mb0xvY2FsKGRpdkF2aXNvU2luY3JvLCAnZGF0b3MgcmVjaWJpZG9zJywgZGF0b3MubnVtX3NpbmNybywgdHJ1ZSlcclxuICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgIGFsZXJ0UHJvbWlzZShlcnIubWVzc2FnZSlcclxuICAgICAgICB0aHJvdyBlcnJcclxuICAgIH1maW5hbGx5e1xyXG4gICAgICAgIGJ1dHRvbi5kaXNhYmxlZD1mYWxzZTtcclxuICAgICAgICBidXR0b24uY2xhc3NOYW1lPSdkb3dubG9hZC1kbS1idXR0b24tY29udCc7XHJcbiAgICB9XHJcbn1cclxubXlPd24ud1NjcmVlbnMuc2luY3Jvbml6YXJfZG09YXN5bmMgZnVuY3Rpb24oKXtcclxuICAgIHZhciBtYWluTGF5b3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fbGF5b3V0JykhO1xyXG4gICAgdmFyIHByb2NlZGVyQnV0dG9uID0gaHRtbC5idXR0b24oe2NsYXNzOidkb3dubG9hZC1kbS1idXR0b24tY29udCd9LCdwcm9jZWRlciDih5InKS5jcmVhdGUoKTtcclxuICAgIHZhciBkaXZBdmlzb1NpbmNybzpIVE1MRGl2RWxlbWVudD1odG1sLmRpdigpLmNyZWF0ZSgpO1xyXG4gICAgbW9zdHJhckluZm9Mb2NhbChtYWluTGF5b3V0IGFzIEhUTUxEaXZFbGVtZW50LCAnaW5mb3JtYWNpw7NuIGEgdHJhbnNtaXRpcicsIG51bGwsIGZhbHNlKVxyXG4gICAgbWFpbkxheW91dC5hcHBlbmRDaGlsZChwcm9jZWRlckJ1dHRvbik7XHJcbiAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKGRpdkF2aXNvU2luY3JvKTtcclxuICAgIHByb2NlZGVyQnV0dG9uLm9uY2xpY2sgPSAoKT0+cHJvY2VkZXJTaW5jcm9GdW4ocHJvY2VkZXJCdXR0b24sIGRpdkF2aXNvU2luY3JvKVxyXG59O1xyXG5cclxuZnVuY3Rpb24gaW5pY2lhbGl6YXJTdGF0ZShzdGF0ZTogQ2Fzb1N0YXRlKSB7XHJcbiAgICBzdGF0ZS5tb2RvID0ge1xyXG4gICAgICAgIGRlbW86IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgLy8gT0pPIHN0YXRlLm9wY2lvbmVzIHNlIG1vZGlmaWNhIGFjw6EgeSBlbiBvdHJvIGxhZG8gY29uIGVzdGUgbWlzbW8gY2FydGVsXHJcbiAgICBzdGF0ZS5vcGNpb25lcyA9IHtcclxuICAgICAgICBiaWVudmVuaWRvOiB0cnVlLFxyXG4gICAgICAgIGZvclBrOiBudWxsLFxyXG4gICAgICAgIHBpbGFGb3JQazogW10sXHJcbiAgICAgICAgbW9kb0Rlc3BsaWVndWU6IFwicmVsZXZhbWllbnRvXCIsXHJcbiAgICAgICAgbW9kb0RpcmVjdG86IGZhbHNlLFxyXG4gICAgICAgIG1vZG9Cb3JyYXJSZXNwdWVzdGE6IG51bGwsXHJcbiAgICAgICAgY29uQ2FtcG9PcGNpb25lczogZmFsc2UsXHJcbiAgICAgICAgc2FsdG9BdXRvbWF0aWNvOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgc3RhdGUuZmVlZGJhY2tSb3dWYWxpZGF0b3IgPSB7fTtcclxufVxyXG4vKlxyXG5mdW5jdGlvbiBtb3N0cmFyRGF0b3NQZXJzb25hKGhheURhdG9zOmJvb2xlYW4sIGRhdG9zOmFueSwgZGl2UmVzdWx0OkhUTUxEaXZFbGVtZW50KXtcclxuICAgIC8vVE9ETzogRVZBTFVBUiBTSSBDT05WSUVORSBUUkFFUkxPIERFIExBIEJBU0VcclxuICAgIHZhciB0aXBvc0RvY3VtZW50byA9IFsnRE5JIGFyZ2VudGlubycsICdEb2N1bWVudG8gZXh0cmFuamVybycsICdObyB0aWVuZSBkb2N1bWVudG8nLCAnT3RybyddO1xyXG4gICAgdmFyIHBhaXNEb2N1bWVudG8gPSBbJ1VydWd1YXknLCAnUGFyYWd1YXknLCAnQnJhc2lsJywgJ0JvbGl2aWEnLCAnQ2hpbGUnLCAnUGVyw7onLCAnVmVuZXp1ZWxhJywgJ090cm8nXTtcclxuICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChcclxuICAgICAgICBoYXlEYXRvcz9cclxuICAgICAgICAgICAgaHRtbC5kaXYoe2NsYXNzOidkYXRvcy1wZXJzb25hLWNhcmdhZGEnfSxbXHJcbiAgICAgICAgICAgICAgICBodG1sLmgyKFwiRGF0b3MgcGVyc29uYVwiKSxcclxuICAgICAgICAgICAgICAgIGh0bWwuZGl2KHtjbGFzczonZmljaGEtcGVyc29uYSd9LFtcclxuICAgICAgICAgICAgICAgICAgICBodG1sLmRpdihbaHRtbC5sYWJlbCgnQXBlbGxpZG86ICcpLCBkYXRvcy5hcGVsbGlkb10pLFxyXG4gICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KFtodG1sLmxhYmVsKCdOb21icmVzOiAnKSwgZGF0b3Mubm9tYnJlc10pLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdG9zLnRpcG9Eb2N1bWVudG8/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwubGFiZWwoJ1RpcG8gZG9jdW1lbnRvOiAnKSwgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXBvc0RvY3VtZW50b1tkYXRvcy50aXBvRG9jdW1lbnRvLTFdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0b3MudGlwb0RvY3VtZW50bz09NCAmJiBkYXRvcy50aXBvRG9jdW1lbnRvRXNwZWNpZmljYWRvPycgKCcrIGRhdG9zLnRpcG9Eb2N1bWVudG9Fc3BlY2lmaWNhZG8rJyknOicnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdKVxyXG4gICAgICAgICAgICAgICAgICAgIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3MudGlwb0RvY3VtZW50bz09MiAmJiBkYXRvcy5wYWlzRG9jdW1lbnRvP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sLmRpdihbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sLmxhYmVsKCdQYWlzOiAnKSwgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWlzRG9jdW1lbnRvW2RhdG9zLnBhaXNEb2N1bWVudG8tMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRvcy5wYWlzRG9jdW1lbnRvPT04ICYmIGRhdG9zLnBhaXNEb2N1bWVudG9Fc3BlY2lmaWNhZG8/JyAoJytkYXRvcy5wYWlzRG9jdW1lbnRvRXNwZWNpZmljYWRvKycpJzonJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXSlcclxuICAgICAgICAgICAgICAgICAgICA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdG9zLnRpcG9Eb2N1bWVudG8hPTMgJiYgZGF0b3MudGlwb0RvY3VtZW50bz9odG1sLmRpdihbaHRtbC5sYWJlbCgnTsK6IERvY3VtZW50bzogJyksIGRhdG9zLmRvY3VtZW50b10pOicnLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdG9zLmNlbHVsYXI/aHRtbC5kaXYoW2h0bWwubGFiZWwoJ0NlbC46ICcpLCBkYXRvcy5jZWx1bGFyXSk6JycsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3MuZW1haWw/aHRtbC5kaXYoW2h0bWwubGFiZWwoJ0VtYWlsOiAnKSwgZGF0b3MuZW1haWxdKTonJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRvcy50ZWxlZm9ub0FsdGVybmF0aXZvP2h0bWwuZGl2KFtodG1sLmxhYmVsKCdUZWwuIGFsdGVybmF0aXZvOiAnKSwgZGF0b3MudGVsZWZvbm9BbHRlcm5hdGl2b10pOicnLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdG9zLm9ic2VydmFjaW9uZXM/aHRtbC5kaXYoW2h0bWwubGFiZWwoJ09ic2VydmFjaW9uZXM6ICcpLCBkYXRvcy5vYnNlcnZhY2lvbmVzXSk6JycsXHJcbiAgICAgICAgICAgICAgICBdKVxyXG4gICAgICAgICAgICBdKS5jcmVhdGUoKVxyXG4gICAgICAgIDpcclxuICAgICAgICAgICAgaHRtbC5wKFwiTm8gc2UgZW5jb250csOzIHVuYSBlbmN1ZXN0YSBwYXJhIGxhIGV0aXF1ZXRhIGNhcmdhZGFcIikuY3JlYXRlKClcclxuICAgIClcclxufVxyXG4qL1xyXG5teU93bi5jbGllbnRTaWRlcy50YXJlYXNUZW1Sb3c9e1xyXG4gICAgdXBkYXRlOihkZXBvdCk9PntcclxuICAgICAgICB2YXIgdGFyZWE6J25hZGEnfCdwcmVhc2lnbmFyJ3wnY2FyZ2FyJ3wncmVhbGl6YXInfCd2ZXJpZmljYXInPSduYWRhJztcclxuICAgICAgICB2YXIgcm93PWRlcG90LnJvdztcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgdmFyIGlkcGVyPW15LmNvbmZpZy5pZHBlcjtcclxuICAgICAgICB2YXIgZXNwZXJhcjpib29sZWFuPWZhbHNlO1xyXG4gICAgICAgIGlmKHJvdy5oYWJpbGl0YWRhKXtcclxuICAgICAgICAgICAgaWYoIXJvdy5hc2lnbmFudGUgJiYgIXJvdy5hc2lnbmFkbyl7XHJcbiAgICAgICAgICAgICAgICB0YXJlYT0ncHJlYXNpZ25hcic7XHJcbiAgICAgICAgICAgICAgICBlc3BlcmFyPXRydWU7XHJcbiAgICAgICAgICAgIH1lbHNlIGlmKCFyb3cuYXNpZ25hZG8gfHwgIXJvdy5mZWNoYV9hc2lnbmFjaW9uIHx8ICFyb3cub3BlcmFjaW9uKXtcclxuICAgICAgICAgICAgICAgIHRhcmVhPSdjYXJnYXInO1xyXG4gICAgICAgICAgICAgICAgZXNwZXJhcj1yb3cuYXNpZ25hbnRlIT1pZHBlcjtcclxuICAgICAgICAgICAgfWVsc2UgaWYoIXJvdy5yZWEpe1xyXG4gICAgICAgICAgICAgICAgdGFyZWE9J3JlYWxpemFyJztcclxuICAgICAgICAgICAgICAgIGVzcGVyYXI9cm93LmFzaWduYWRvIT1pZHBlcjtcclxuICAgICAgICAgICAgfWVsc2UgaWYoIXJvdy52ZXJpZmljYWRvKXtcclxuICAgICAgICAgICAgICAgIHRhcmVhPSd2ZXJpZmljYXInO1xyXG4gICAgICAgICAgICAgICAgZXNwZXJhcj1yb3cuYXNpZ25hbnRlIT1pZHBlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgcG9uZXI9e1xyXG4gICAgICAgICAgICBhc2lnbmFudGUgICAgICAgICAgOnRhcmVhPT0ncHJlYXNpZ25hcicgJiYgKGVzcGVyYXI/J2VzcGVyYXInOidub3JtYWwnKSxcclxuICAgICAgICAgICAgYXNpZ25hZG8gICAgICAgICAgIDp0YXJlYT09J2NhcmdhcicgICAgICYmIChlc3BlcmFyPydlc3BlcmFyJzonbm9ybWFsJyksXHJcbiAgICAgICAgICAgIGZlY2hhX2FzaWduYWNpb24gICA6dGFyZWE9PSdjYXJnYXInICAgICAmJiAoZXNwZXJhcj8nZXNwZXJhcic6J25vcm1hbCcpLFxyXG4gICAgICAgICAgICBvcGVyYWNpb24gICAgICAgICAgOnRhcmVhPT0nY2FyZ2FyJyAgICAgJiYgKGVzcGVyYXI/J2VzcGVyYXInOidub3JtYWwnKSxcclxuICAgICAgICAgICAgY2FyZ2Ffb2JzZXJ2YWNpb25lczoodGFyZWE9PSdjYXJnYXInICAgICB8fCB0YXJlYT09J3JlYWxpemFyJyAmJiAhcm93LmNhcmdhZG8gJiYgIXJvdy5yZWEgKSAmJiByb3cuYXNpZ25hbnRlPT1pZHBlciAmJiAnb3B0YXRpdm8nLFxyXG4gICAgICAgICAgICB2ZXJpZmljYWRvICAgICAgICAgOnRhcmVhPT0ndmVyaWZpY2FyJyAgJiYgKGVzcGVyYXI/J2VzcGVyYXInOidub3JtYWwnKSxcclxuICAgICAgICAgICAgb2JzX3ZlcmlmaWNhZG8gICAgIDp0YXJlYT09J3ZlcmlmaWNhcicgICYmIChlc3BlcmFyPydlc3BlcmFyJzonb3B0YXRpdm8nKSxcclxuICAgICAgICB9XHJcbiAgICAgICAgbGlrZUFyKHBvbmVyKS5mb3JFYWNoKCh2YWxvciwgY2FtcG8pPT57XHJcbiAgICAgICAgICAgIGlmKCF2YWxvcil7XHJcbiAgICAgICAgICAgICAgICBkZXBvdC5yb3dDb250cm9sc1tjYW1wb10ucmVtb3ZlQXR0cmlidXRlKCdteS1tYW5kYXRvcnknKVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGRlcG90LnJvd0NvbnRyb2xzW2NhbXBvXS5zZXRBdHRyaWJ1dGUoJ215LW1hbmRhdG9yeScsdmFsb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBwcmVwYXJlOiBmdW5jdGlvbigpe31cclxufVxyXG5cclxudmFyIGNyZWFyQm90b25WZXJBYnJpckVuY3Vlc3RhID0gKG9wZXJhdGl2bzpJZE9wZXJhdGl2byx0YXJlYTpJZFRhcmVhLGVuY3Vlc3RhOm51bWJlciwgbGFiZWw6c3RyaW5nKT0+e1xyXG4gICAgdmFyIHVwID0ge1xyXG4gICAgICAgIG9wZXJhdGl2bzpvcGVyYXRpdm8sXHJcbiAgICAgICAgdGFyZWE6dGFyZWEsXHJcbiAgICAgICAgZW5jdWVzdGE6ZW5jdWVzdGFcclxuICAgIH1cclxuICAgIGxldCB2ZXIgPSBteS5jcmVhdGVGb3JrZWFibGVCdXR0b24oe3c6J2FicmlyX2VuY3Vlc3RhJyx1cCwgYXV0b3Byb2NlZDp0cnVlLCBsYWJlbH0se30pO1xyXG4gICAgcmV0dXJuIHZlclxyXG59XHJcblxyXG52YXIgY3JlYXJCb3RvbmVzVmVyQWJyaXJUYXJlYXMgPSBhc3luYyAoZGVwb3Q6bXlPd24uRGVwb3QsIGZpZWxkTmFtZTpzdHJpbmcsIGxhYmVsOidhYnJpcid8J3ZlcicpPT57XHJcbiAgICB0YXJlYXMgPSB0YXJlYXM/dGFyZWFzOihhd2FpdCBteU93bi5hamF4LnRhYmxlX2RhdGEoe3RhYmxlOiBgdGFyZWFzYCwgZml4ZWRGaWVsZHM6W119KSk7XHJcbiAgICB2YXIgbWlzVGFyZWFzID0gdGFyZWFzLmZpbHRlcigodGFyZWEpPT4hIXRhcmVhLm1haW5fZm9ybSAmJiB0YXJlYS5vcGVyYXRpdm89PWRlcG90LnJvdy5vcGVyYXRpdm8pO1xyXG4gICAgZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXS5pbm5lckhUTUw9Jyc7XHJcbiAgICBtaXNUYXJlYXMuZm9yRWFjaCgodGFyZWE6e3RhcmVhOnN0cmluZywgbm9tYnJlOnN0cmluZywgbWFpbl9mb3JtOklkRm9ybXVsYXJpb30pPT57XHJcbiAgICAgICAgbGV0IGJ1dHRvbkxhYmVsID0gYCR7bGFiZWx9ICR7dGFyZWEudGFyZWF9YDtcclxuICAgICAgICBsZXQgdmVyID0gY3JlYXJCb3RvblZlckFicmlyRW5jdWVzdGEoXHJcbiAgICAgICAgICAgIGRlcG90LnJvdy5vcGVyYXRpdm8gYXMgSWRPcGVyYXRpdm8sXHJcbiAgICAgICAgICAgIHRhcmVhLnRhcmVhIGFzIElkVGFyZWEsIFxyXG4gICAgICAgICAgICBOdW1iZXIoZGVwb3Qucm93LmVuYyksXHJcbiAgICAgICAgICAgIGJ1dHRvbkxhYmVsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB2ZXIuc3R5bGU9J21hcmdpbjowcHggMnB4Oyc7XHJcbiAgICAgICAgZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXS5hcHBlbmRDaGlsZCh2ZXIpO1xyXG4gICAgfSlcclxufVxyXG5cclxubXlPd24uY2xpZW50U2lkZXMuYWJyaXI9e1xyXG4gICAgcHJlcGFyZTogKF9kZXBvdCwgX2ZpZWxkTmFtZSk9Pnt9LFxyXG4gICAgdXBkYXRlOiAoZGVwb3QsIGZpZWxkTmFtZSk9PntcclxuICAgICAgICB2YXIgbGFiZWw6J3Zlcid8J2FicmlyJyA9IGRlcG90LnJvdy5jYXJnYWRvX2RtPyd2ZXInOidhYnJpcic7XHJcbiAgICAgICAgY3JlYXJCb3RvbmVzVmVyQWJyaXJUYXJlYXMoZGVwb3QsZmllbGROYW1lLGxhYmVsKTsgLy9ubyBlc3Blcm8gcHJvbWVzYSBwb3JxdWUgbm8gZXMgbmVjZXNhcmlvXHJcbiAgICB9XHJcbn07XHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5hYnJpclJlY2VwY2lvbj17XHJcbiAgICBwcmVwYXJlOiAoX2RlcG90LCBfZmllbGROYW1lKT0+e30sXHJcbiAgICB1cGRhdGU6IChkZXBvdCwgZmllbGROYW1lKT0+e1xyXG4gICAgICAgIHZhciBsYWJlbDondmVyJ3wnYWJyaXInID0gZGVwb3Qucm93LmNhcmdhZG8/J3Zlcic6J2FicmlyJztcclxuICAgICAgICBjcmVhckJvdG9uZXNWZXJBYnJpclRhcmVhcyhkZXBvdCxmaWVsZE5hbWUsbGFiZWwpOyAvL25vIGVzcGVybyBwcm9tZXNhIHBvcnF1ZSBubyBlcyBuZWNlc2FyaW9cclxuICAgIH1cclxufTtcclxuXHJcbmZ1bmN0aW9uIGJvdG9uQ2xpZW50U2lkZUVuR3JpbGxhKG9wdHM6IHsgbm9tYnJlQm90b246IHN0cmluZywgbGxhbWFkYTogKGRlcG90OiBteU93bi5EZXBvdCkgPT4gUHJvbWlzZTxhbnk+IH0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJlcGFyZTogZnVuY3Rpb24gKGRlcG90OiBteU93bi5EZXBvdCwgZmllbGROYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdmFyIHRkID0gZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXTtcclxuICAgICAgICAgICAgdmFyIGJvdG9uID0gaHRtbC5idXR0b24ob3B0cy5ub21icmVCb3RvbikuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGJvdG9uKTtcclxuICAgICAgICAgICAgdmFyIHJlc3RhdXJhckJvdG9uID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgYm90b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJvdG9uLnRleHRDb250ZW50ID0gb3B0cy5ub21icmVCb3RvbjtcclxuICAgICAgICAgICAgICAgIGJvdG9uLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBib3Rvbi5vbmNsaWNrID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgYm90b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYm90b24udGV4dENvbnRlbnQgPSAncHJvY2VzYW5kby4uLic7XHJcbiAgICAgICAgICAgICAgICBvcHRzLmxsYW1hZGEoZGVwb3QpLnRoZW4oYXN5bmMgZnVuY3Rpb24ocmVzdWx0KXtcclxuICAgICAgICAgICAgICAgICAgICBpZihyZXN1bHQgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiYgJ29rJyBpbiByZXN1bHQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihyZXN1bHQub2spe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyaWQ9ZGVwb3QubWFuYWdlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGdyaWQucmV0cmlldmVSb3dBbmRSZWZyZXNoKGRlcG90KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXBvdC5kZXRhaWxDb250cm9scy5pbmNvbnNpc3RlbmNpYXMpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcG90LmRldGFpbENvbnRyb2xzLmluY29uc2lzdGVuY2lhcy5mb3JjZURpc3BsYXlEZXRhaWxHcmlkKHt9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90b24udGV4dENvbnRlbnQgPSAgcmVzdWx0Lm1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3Rvbi50aXRsZSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjOEY4JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVzdGF1cmFyQm90b24sIDI1MDApO1xyXG4gICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdG9uLnRleHRDb250ZW50ID0gJ2Vycm9yJztcclxuICAgICAgICAgICAgICAgICAgICBib3Rvbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI0ZGOCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnRQcm9taXNlKGVyci5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy9pZiAoKGRlcG90LnJvdy5jb25zaXN0aWRvPT1udWxsICAmJiBkZXBvdC5yb3cucmVhIT1udWxsKSB8fCBkZXBvdC5yb3cubW9kaWZpY2FkbyE9bnVsbCAmJiBkZXBvdC5yb3cuY29uc2lzdGlkbyE9bnVsbCAmJiBkZXBvdC5yb3cubW9kaWZpY2FkbyA+ZGVwb3Qucm93LmNvbnNpc3RpZG8pe1xyXG4gICAgICAgICAgICAvLyAgICBib3Rvbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9JyM4Q0YnXHJcbiAgICAgICAgICAgIC8vfVxyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgfTtcclxufVxyXG5cclxuXHJcbm15T3duLmNsaWVudFNpZGVzLmNvbnNpc3RpciA9IGJvdG9uQ2xpZW50U2lkZUVuR3JpbGxhKHtcclxuICAgIG5vbWJyZUJvdG9uOiAnY29uc2lzdGlyJyxcclxuICAgIGxsYW1hZGE6IGZ1bmN0aW9uIChkZXBvdDogbXlPd24uRGVwb3QpIHtcclxuICAgICAgICB2YXIgZmlsdHJvUmVhPWNvbnNpc3Rpcl9maWx0cm8oZGVwb3Qucm93LnRhcmVhLCBkZXBvdC5yb3cudXRsX3JlYSwgZGVwb3Qucm93LnJlYSlcclxuICAgICAgICByZXR1cm4gZmlsdHJvUmVhPyBteU93bi5hamF4LmNvbnNpc3Rpcl9lbmN1ZXN0YSh7XHJcbiAgICAgICAgICAgIG9wZXJhdGl2bzogZGVwb3Qucm93Lm9wZXJhdGl2byxcclxuICAgICAgICAgICAgaWRfY2FzbzogZGVwb3Qucm93LmVuY1xyXG4gICAgICAgIH0pOiBhbGVydFByb21pc2UoJ0xhIGVuY3Vlc3RhIGRlYmUgdGVuZXIgZGF0byBlbiByZWEgcGFyYSBwb2RlciBjb25zaXN0aXJsYS4nKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5teU93bi53U2NyZWVucy5jb25zaXN0aXJfZW5jdWVzdGE9e1xyXG4gICAgcGFyYW1ldGVyczpbXHJcbiAgICAgICAge25hbWU6J29wZXJhdGl2bycgLCB0eXBlTmFtZTondGV4dCcsIGRlZmF1bHRWYWx1ZTpPUEVSQVRJVk9fREVGQVVMVCwgcmVmZXJlbmNlczonb3BlcmF0aXZvcyd9LFxyXG4gICAgICAgIHtuYW1lOid0YXJlYScgICAgICwgdHlwZU5hbWU6J3RleHQnfSxcclxuICAgICAgICB7bmFtZTonZW5jdWVzdGEnICAsIHR5cGVOYW1lOidpbnRlZ2VyJ31cclxuICAgIF0sXHJcbiAgICBhdXRvcHJvY2VkOnRydWUsXHJcbiAgICBtYWluQWN0aW9uOmFzeW5jIChwYXJhbXMpPT57XHJcbiAgICAgICAgdmFyIHtvcGVyYXRpdm8sIHRhcmVhLCBlbmN1ZXN0YSB9ID0gcGFyYW1zO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBteU93bi5hamF4LmNvbnNpc3Rpcl9lbmN1ZXN0YSh7XHJcbiAgICAgICAgICAgIG9wZXJhdGl2bzogb3BlcmF0aXZvLFxyXG4gICAgICAgICAgICBpZF9jYXNvOiBlbmN1ZXN0YVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmKHJlc3VsdC5vayl7XHJcbiAgICAgICAgICAgIHZhciBmaXhlZEZpZWxkcyA9IFtdO1xyXG4gICAgICAgICAgICBmaXhlZEZpZWxkcy5wdXNoKHtmaWVsZE5hbWU6ICdvcGVyYXRpdm8nLCB2YWx1ZTogb3BlcmF0aXZvfSk7XHJcbiAgICAgICAgICAgIGZpeGVkRmllbGRzLnB1c2goe2ZpZWxkTmFtZTogJ3ZpdmllbmRhJywgdmFsdWU6IGVuY3Vlc3RhfSk7XHJcbiAgICAgICAgICAgIHZhciBtYWluTGF5b3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fbGF5b3V0JykhO1xyXG4gICAgICAgICAgICB2YXIgZGl2R3JpbGxhID0gaHRtbC5kaXYoe2lkOidpbmNvbnNpc3RlbmNpYXMnfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgIG1haW5MYXlvdXQuaW5zZXJ0QmVmb3JlKGRpdkdyaWxsYSwgbWFpbkxheW91dC5maXJzdENoaWxkKTtcclxuICAgICAgICAgICAgbWFpbkxheW91dC5pbnNlcnRCZWZvcmUoXHJcbiAgICAgICAgICAgICAgICBjcmVhckJvdG9uVmVyQWJyaXJFbmN1ZXN0YShcclxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRpdm8sXHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZWEsXHJcbiAgICAgICAgICAgICAgICAgICAgZW5jdWVzdGEsIFxyXG4gICAgICAgICAgICAgICAgICAgIGBpciBhIGVuY3Vlc3RhICR7ZW5jdWVzdGF9YFxyXG4gICAgICAgICAgICAgICAgKSwgXHJcbiAgICAgICAgICAgICAgICBtYWluTGF5b3V0LmZpcnN0Q2hpbGRcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgbXkudGFibGVHcmlkKFwiaW5jb25zaXN0ZW5jaWFzXCIsIGRpdkdyaWxsYSx7dGFibGVEZWY6e30sZml4ZWRGaWVsZHM6IGZpeGVkRmllbGRzfSk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5teU93bi53U2NyZWVucy5kZW1vPWFzeW5jIGZ1bmN0aW9uKF9hZGRyUGFyYW1zKXtcclxuICAgIC8vIEB0cy1pZ25vcmUgZGVzcGxlZ2FyRm9ybXVsYXJpb0FjdHVhbCBnbG9iYWxcclxuICAgIHdpbmRvdy5kZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsKHttb2RvRGVtbzp0cnVlfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFycmF5RmxhdDxUPihhcnJheXM6VFtdW10pOlRbXXtcclxuICAgIHJldHVybiAoW10gYXMgVFtdKS5jb25jYXQuYXBwbHkoW10sIGFycmF5cyk7XHJcbn1cclxuIl19
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|