dmencu 0.1.51 → 0.1.53

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.
Files changed (42) hide show
  1. package/dist/client/client/carga-dm/dm-manifest.manifest +70 -0
  2. package/dist/client/client/css/etiquetas-qr.styl +84 -0
  3. package/dist/client/client/service-worker.js +114 -0
  4. package/dist/client/unlogged/bypass-formulario.js +3 -1
  5. package/dist/client/unlogged/digitov.js +59 -0
  6. package/dist/client/unlogged/generador-qr.js +60 -0
  7. package/dist/client/unlogged/img/PREJU_2022-logo-dm-192.png +0 -0
  8. package/dist/client/unlogged/img/PREJU_2022-logo-dm-32.png +0 -0
  9. package/dist/client/unlogged/img/PREJU_2022-logo-dm-48.png +0 -0
  10. package/dist/client/unlogged/img/PREJU_2022-logo-dm-512.png +0 -0
  11. package/dist/client/unlogged/img/PREJU_2022-logo-dm-64.png +0 -0
  12. package/dist/client/unlogged/img/PREJU_2022-logo-dm-72.png +0 -0
  13. package/dist/client/unlogged/img/_login-logo-icon.png +0 -0
  14. package/dist/client/unlogged/img/_logo-128.png +0 -0
  15. package/dist/client/unlogged/img/_logo.png +0 -0
  16. package/dist/server/server/app-dmencu.js +11 -3
  17. package/dist/server/server/app-dmencu.ts.BASE.js +580 -0
  18. package/dist/server/server/app-dmencu.ts.LOCAL.js +598 -0
  19. package/dist/server/server/app-dmencu.ts.REMOTE.js +582 -0
  20. package/dist/server/server/table-etiquetas.js +48 -0
  21. package/dist/server/server/table-etiquetas_resultado.js +113 -0
  22. package/dist/server/server/table-etiquetas_resultado_plus.js +19 -0
  23. package/dist/server/server/table-mis_relevadores.js +78 -0
  24. package/dist/server/server/table-planchas.js +38 -0
  25. package/dist/server/server/table-relevadores.js +19 -0
  26. package/dist/server/server/table-resultados-test.js +37 -0
  27. package/dist/server/server/table-tareas_tem.js +3 -3
  28. package/dist/unlogged/unlogged/bypass-formulario.js +3 -1
  29. package/dist/unlogged/unlogged/consola-errores.js +25 -0
  30. package/dist/unlogged/unlogged/digitov.js +59 -0
  31. package/dist/unlogged/unlogged/generador-qr.js +60 -0
  32. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-192.png +0 -0
  33. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-32.png +0 -0
  34. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-48.png +0 -0
  35. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-512.png +0 -0
  36. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-64.png +0 -0
  37. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-72.png +0 -0
  38. package/dist/unlogged/unlogged/img/_login-logo-icon.png +0 -0
  39. package/dist/unlogged/unlogged/img/_logo-128.png +0 -0
  40. package/dist/unlogged/unlogged/img/_logo.png +0 -0
  41. package/install/control_cargado_tareas_tem_trg.sql +15 -7
  42. package/package.json +1 -1
@@ -0,0 +1,70 @@
1
+ CACHE MANIFEST
2
+ #0813b
3
+
4
+ CACHE:
5
+ #--------------------------- JS ------------------------------------
6
+ ../lib/react.production.min.js
7
+ ../lib/react-dom.production.min.js
8
+ ../lib/material-ui.production.min.js
9
+ ../lib/clsx.min.js
10
+ ../lib/redux.min.js
11
+ ../lib/react-redux.min.js
12
+ ../lib/require-bro.js
13
+ ../lib/like-ar.js
14
+ ../lib/best-globals.js
15
+ ../lib/json4all.js
16
+ ../lib/js-to-html.js
17
+ ../lib/redux-typed-reducer.js
18
+ ../lib/memoize-one.js
19
+ ../adapt.js
20
+ ../tipos.js
21
+ ../digitov.js
22
+ ../redux-formulario.js
23
+ ../render-general.js
24
+ ../render-formulario.js
25
+ ../client_modules/row-validator.js
26
+ ../unlogged.js
27
+ ../lib/js-yaml.js
28
+ ../lib/xlsx.core.min.js
29
+ ../lib/lazy-some.js
30
+ ../lib/sql-tools.js
31
+ ../dialog-promise/dialog-promise.js
32
+ ../moment/min/moment.js
33
+ ../pikaday/pikaday.js
34
+ ../lib/polyfills-bro.js
35
+ ../lib/big.js
36
+ ../lib/type-store.js
37
+ ../lib/typed-controls.js
38
+ ../lib/ajax-best-promise.js
39
+ ../my-ajax.js
40
+ ../my-start.js
41
+ ../lib/my-localdb.js
42
+ ../lib/my-websqldb.js
43
+ ../lib/my-localdb.js.map
44
+ ../lib/my-websqldb.js.map
45
+ # NO VA ../lib/my-things.js
46
+ # NO VA ../lib/my-tables.js
47
+ ../lib/my-inform-net-status.js
48
+ # NO VA ../lib/my-menu.js
49
+ ../lib/my-skin.js
50
+ ../lib/cliente-en-castellano.js
51
+ ../client/client.js
52
+ ../client/menu.js
53
+
54
+ #------------------------------ CSS ---------------------------------
55
+ ../dialog-promise/dialog-promise.css
56
+ ../pikaday/pikaday.css
57
+ # NO VA ../css/my-things.css
58
+ # NO VA ../css/my-tables.css
59
+ # NO VA ../css/my-menu.css
60
+ ../css/offline-mode.css
61
+ ../css/formulario-react.css
62
+
63
+ #------------------------------ IMAGES ---------------------------------
64
+ ../img/main-loading.gif
65
+
66
+ FALLBACK:
67
+ ../menu* ../campo
68
+
69
+ NETWORK:
70
+ *
@@ -0,0 +1,84 @@
1
+ altoEtiqueta = 148px
2
+ mitadAltoEtiqueta = 75px
3
+ anchoEtiqueta = 390px
4
+ altoQr = 128px
5
+ altoLogoEstadistica = 73px
6
+ altoTexto = 41px
7
+ altoDmEncu = 73px
8
+ altoBA = 55px
9
+
10
+ .etiqueta
11
+ display flex
12
+ background-color #ffffff
13
+ width anchoEtiqueta
14
+ height altoEtiqueta
15
+ .columna
16
+ padding 11px 0px
17
+ .codigo-qr
18
+ height altoQr
19
+ width altoQr
20
+ img
21
+ height altoQr
22
+ .logo-estadistica
23
+ height altoLogoEstadistica
24
+ img
25
+ height altoLogoEstadistica
26
+ .texto-codigo
27
+ height altoTexto
28
+ padding 6px 0px
29
+ x-background-color yellow
30
+ text-align center
31
+ vertical-align middle
32
+ font-size 30px
33
+ .logo-dmencu
34
+ height altoDmEncu
35
+ img
36
+ height altoDmEncu
37
+ .logo-ba
38
+ height altoBA
39
+ img
40
+ height altoBA
41
+ .columna-derecha
42
+ padding 0px 0px
43
+
44
+ .not_print
45
+ @media print
46
+ display none
47
+
48
+ .pre-plancha
49
+ display flex
50
+ color #399947
51
+ margin-left 25px
52
+ padding-top 22px
53
+ min-height 32px
54
+ height 32px
55
+ vertical-align bottom
56
+ align-items bottom
57
+ font-size 130%
58
+ .plancha
59
+ margin-left 10px
60
+ display grid
61
+ grid-template-columns repeat(3, 1fr)
62
+ page-break-after always
63
+
64
+
65
+ .table-param-screen, .result-progress
66
+ @media print
67
+ display none
68
+
69
+ .etiqueta
70
+ @media screen
71
+ border 1px dashed orange
72
+
73
+ .result-div
74
+ @media print
75
+ zoom 0.65
76
+
77
+ .result-div[resultado-cargar=ok], .result-div[resultado-rectificar=ok]
78
+ background-color #5F5
79
+ .result-div[resultado-cargar='tenia']
80
+ background-color orange
81
+ .result-div[resultado-cargar]
82
+ .ficha-persona
83
+ label
84
+ font-weight 600
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ const CACHE_NAME = '#20-11-05';
12
+ const FALLBACK = 'campo';
13
+ var urlsToCache = [
14
+ "campo",
15
+ /*
16
+ "lib/react.production.min.js",
17
+ "lib/react-dom.production.min.js",
18
+ "lib/material-ui.production.min.js",
19
+ */
20
+ "lib/react.development.js",
21
+ "lib/react-dom.development.js",
22
+ "lib/material-ui.development.js",
23
+ "lib/clsx.min.js",
24
+ "lib/redux.min.js",
25
+ "lib/react-redux.min.js",
26
+ "lib/require-bro.js",
27
+ "lib/like-ar.js",
28
+ "lib/best-globals.js",
29
+ "lib/json4all.js",
30
+ "lib/js-to-html.js",
31
+ "lib/redux-typed-reducer.js",
32
+ "lib/memoize-one.js",
33
+ "adapt.js",
34
+ "tipos.js",
35
+ "digitov.js",
36
+ "redux-formulario.js",
37
+ "render-general.js",
38
+ "render-formulario.js",
39
+ "client_modules/row-validator.js",
40
+ "unlogged.js",
41
+ "lib/js-yaml.js",
42
+ "lib/xlsx.core.min.js",
43
+ "lib/lazy-some.js",
44
+ "lib/sql-tools.js",
45
+ "dialog-promise/dialog-promise.js",
46
+ "moment/min/moment.js",
47
+ "pikaday/pikaday.js",
48
+ "lib/polyfills-bro.js",
49
+ "lib/big.js",
50
+ "lib/type-store.js",
51
+ "lib/typed-controls.js",
52
+ "lib/ajax-best-promise.js",
53
+ "my-ajax.js",
54
+ "my-start.js",
55
+ "lib/my-localdb.js",
56
+ "lib/my-websqldb.js",
57
+ "lib/my-localdb.js.map",
58
+ "lib/my-websqldb.js.map",
59
+ "lib/my-inform-net-status.js",
60
+ "lib/my-skin.js",
61
+ "lib/cliente-en-castellano.js",
62
+ "client/client.js",
63
+ "client/menu.js",
64
+ "dialog-promise/dialog-promise.css",
65
+ "pikaday/pikaday.css",
66
+ "css/offline-mode.css",
67
+ "css/formulario-react.css",
68
+ "img/main-loading.gif",
69
+ ];
70
+ self.addEventListener('install', (event) => __awaiter(void 0, void 0, void 0, function* () {
71
+ //si hay cambios no espero para cambiarlo
72
+ self.skipWaiting();
73
+ console.log("instalando");
74
+ event.waitUntil(caches.open(CACHE_NAME).then((cache) => cache.addAll(urlsToCache)));
75
+ }));
76
+ self.addEventListener('fetch', (event) => {
77
+ var sourceParts = event.request.url.split('/');
78
+ var source = sourceParts[sourceParts.length - 1];
79
+ console.log("source", source);
80
+ if (source == '@version') {
81
+ var miBlob = new Blob();
82
+ var opciones = { "status": 200, "statusText": CACHE_NAME, ok: true };
83
+ var miRespuesta = new Response(miBlob, opciones);
84
+ event.respondWith(miRespuesta);
85
+ }
86
+ else {
87
+ event.respondWith(caches.open(CACHE_NAME).then((cache) => cache.match(event.request).then((response) => {
88
+ console.log("respuesta caché: ", response);
89
+ return response || fetch(event.request).then((response) => {
90
+ console.log("respuesta", response);
91
+ if (!response) {
92
+ console.log("no tiene respuesta");
93
+ throw Error('without response');
94
+ }
95
+ return response;
96
+ }).catch((err) => {
97
+ console.log(err);
98
+ return new Response(`<p>Se produjo un error al intentar cargar la p&aacute;gina, es posible que no haya conexi&oacute;n a internet</p><a href=${FALLBACK}>Volver a Hoja de Ruta</button>`, {
99
+ headers: { 'Content-Type': 'text/html' }
100
+ });
101
+ });
102
+ })));
103
+ }
104
+ });
105
+ self.addEventListener('activate', (event) => {
106
+ console.log("borrando caches viejas");
107
+ event.waitUntil(caches.keys().then((cacheNames) => {
108
+ return Promise.all(cacheNames.filter((cacheName) => cacheName != CACHE_NAME).map((cacheName) => {
109
+ console.log("borrando cache ", cacheName);
110
+ return caches.delete(cacheName);
111
+ }));
112
+ }));
113
+ });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L3NlcnZpY2Utd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7Ozs7OztBQUNiLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUMvQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUM7QUFDekIsSUFBSSxXQUFXLEdBQUc7SUFDZCxPQUFPO0lBQ1A7Ozs7TUFJRTtJQUNILDBCQUEwQjtJQUMxQiw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLGlCQUFpQjtJQUNoQixrQkFBa0I7SUFDbEIsd0JBQXdCO0lBQ3hCLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIscUJBQXFCO0lBQ3JCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsNEJBQTRCO0lBQzVCLG9CQUFvQjtJQUNwQixVQUFVO0lBQ1YsVUFBVTtJQUNWLFlBQVk7SUFDWixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixpQ0FBaUM7SUFDakMsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixrQ0FBa0M7SUFDbEMsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLFlBQVk7SUFDWixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLDZCQUE2QjtJQUM3QixnQkFBZ0I7SUFDaEIsOEJBQThCO0lBQzlCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsbUNBQW1DO0lBQ25DLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIsMEJBQTBCO0lBQzFCLHNCQUFzQjtDQUN6QixDQUFDO0FBQ0YsSUFBSSxDQUFD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R0FBRyxDQUNkLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUMsRUFBRSxDQUMzQixTQUFTLElBQUksVUFBVSxDQUMxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBQyxFQUFFO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMxQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUNMLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5jb25zdCBDQUNIRV9OQU1FID0gJyMyMC0xMS0wNSc7XHJcbmNvbnN0IEZBTExCQUNLID0gJ2NhbXBvJztcclxudmFyIHVybHNUb0NhY2hlID0gW1xyXG4gICAgXCJjYW1wb1wiLFxyXG4gICAgLypcclxuICAgIFwibGliL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICBcImxpYi9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanNcIixcclxuICAgIFwibGliL21hdGVyaWFsLXVpLnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICAqL1xyXG4gICBcImxpYi9yZWFjdC5kZXZlbG9wbWVudC5qc1wiLFxyXG4gICBcImxpYi9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanNcIixcclxuICAgXCJsaWIvbWF0ZXJpYWwtdWkuZGV2ZWxvcG1lbnQuanNcIixcclxuICAgXCJsaWIvY2xzeC5taW4uanNcIixcclxuICAgIFwibGliL3JlZHV4Lm1pbi5qc1wiLFxyXG4gICAgXCJsaWIvcmVhY3QtcmVkdXgubWluLmpzXCIsXHJcbiAgICBcImxpYi9yZXF1aXJlLWJyby5qc1wiLFxyXG4gICAgXCJsaWIvbGlrZS1hci5qc1wiLFxyXG4gICAgXCJsaWIvYmVzdC1nbG9iYWxzLmpzXCIsXHJcbiAgICBcImxpYi9qc29uNGFsbC5qc1wiLFxyXG4gICAgXCJsaWIvanMtdG8taHRtbC5qc1wiLFxyXG4gICAgXCJsaWIvcmVkdXgtdHlwZWQtcmVkdWNlci5qc1wiLFxyXG4gICAgXCJsaWIvbWVtb2l6ZS1vbmUuanNcIixcclxuICAgIFwiYWRhcHQuanNcIixcclxuICAgIFwidGlwb3MuanNcIixcclxuICAgIFwiZGlnaXRvdi5qc1wiLFxyXG4gICAgXCJyZWR1eC1mb3JtdWxhcmlvLmpzXCIsXHJcbiAgICBcInJlbmRlci1nZW5lcmFsLmpzXCIsXHJcbiAgICBcInJlbmRlci1mb3JtdWxhcmlvLmpzXCIsXHJcbiAgICBcImNsaWVudF9tb2R1bGVzL3Jvdy12YWxpZGF0b3IuanNcIixcclxuICAgIFwidW5sb2dnZWQuanNcIixcclxuICAgIFwibGliL2pzLXlhbWwuanNcIixcclxuICAgIFwibGliL3hsc3guY29yZS5taW4uanNcIixcclxuICAgIFwibGliL2xhenktc29tZS5qc1wiLFxyXG4gICAgXCJsaWIvc3FsLXRvb2xzLmpzXCIsXHJcbiAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmpzXCIsXHJcbiAgICBcIm1vbWVudC9taW4vbW9tZW50LmpzXCIsXHJcbiAgICBcInBpa2FkYXkvcGlrYWRheS5qc1wiLFxyXG4gICAgXCJsaWIvcG9seWZpbGxzLWJyby5qc1wiLFxyXG4gICAgXCJsaWIvYmlnLmpzXCIsXHJcbiAgICBcImxpYi90eXBlLXN0b3JlLmpzXCIsXHJcbiAgICBcImxpYi90eXBlZC1jb250cm9scy5qc1wiLFxyXG4gICAgXCJsaWIvYWpheC1iZXN0LXByb21pc2UuanNcIixcclxuICAgIFwibXktYWpheC5qc1wiLFxyXG4gICAgXCJteS1zdGFydC5qc1wiLFxyXG4gICAgXCJsaWIvbXktbG9jYWxkYi5qc1wiLFxyXG4gICAgXCJsaWIvbXktd2Vic3FsZGIuanNcIixcclxuICAgIFwibGliL215LWxvY2FsZGIuanMubWFwXCIsXHJcbiAgICBcImxpYi9teS13ZWJzcWxkYi5qcy5tYXBcIixcclxuICAgIFwibGliL215LWluZm9ybS1uZXQtc3RhdHVzLmpzXCIsXHJcbiAgICBcImxpYi9teS1za2luLmpzXCIsXHJcbiAgICBcImxpYi9jbGllbnRlLWVuLWNhc3RlbGxhbm8uanNcIixcclxuICAgIFwiY2xpZW50L2NsaWVudC5qc1wiLFxyXG4gICAgXCJjbGllbnQvbWVudS5qc1wiLFxyXG4gICAgXCJkaWFsb2ctcHJvbWlzZS9kaWFsb2ctcHJvbWlzZS5jc3NcIixcclxuICAgIFwicGlrYWRheS9waWthZGF5LmNzc1wiLFxyXG4gICAgXCJjc3Mvb2ZmbGluZS1tb2RlLmNzc1wiLFxyXG4gICAgXCJjc3MvZm9ybXVsYXJpby1yZWFjdC5jc3NcIixcclxuICAgIFwiaW1nL21haW4tbG9hZGluZy5naWZcIixcclxuXTtcclxuc2VsZi5hZGRFdmVudExpc3RlbmVyKCdpbnN0YWxsJywgYXN5bmMgKGV2ZW50KT0+e1xyXG4gICAgLy9zaSBoYXkgY2FtYmlvcyBubyBlc3Blcm8gcGFyYSBjYW1iaWFybG9cclxuICAgIHNlbGYuc2tpcFdhaXRpbmcoKTtcclxuICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsYW5kb1wiKVxyXG4gICAgZXZlbnQud2FpdFVudGlsKFxyXG4gICAgICAgIGNhY2hlcy5vcGVuKENBQ0hFX05BTUUpLnRoZW4oKGNhY2hlKT0+XHJcbiAgICAgICAgICAgIGNhY2hlLmFkZEFsbCh1cmxzVG9DYWNoZSlcclxuICAgICAgICApXHJcbiAgICApO1xyXG59KTtcclxuXHJcbnNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCAoZXZlbnQpPT57XHJcbiAgICB2YXIgc291cmNlUGFydHMgPSBldmVudC5yZXF1ZXN0LnVybC5zcGxpdCgnLycpO1xyXG4gICAgdmFyIHNvdXJjZTpzdHJpbmcgPSBzb3VyY2VQYXJ0c1tzb3VyY2VQYXJ0cy5sZW5ndGgtMV07XHJcbiAgICBjb25zb2xlLmxvZyhcInNvdXJjZVwiLHNvdXJjZSlcclxuICAgIGlmKHNvdXJjZT09J0B2ZXJzaW9uJyl7XHJcbiAgICAgICAgdmFyIG1pQmxvYiA9IG5ldyBCbG9iKCk7XHJcbiAgICAgICAgdmFyIG9wY2lvbmVzID0geyBcInN0YXR1c1wiIDogMjAwICwgXCJzdGF0dXNUZXh0XCIgOiBDQUNIRV9OQU1FLCBvazp0cnVlIH07XHJcbiAgICAgICAgdmFyIG1pUmVzcHVlc3RhID0gbmV3IFJlc3BvbnNlKG1pQmxvYixvcGNpb25lcyk7XHJcbiAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobWlSZXNwdWVzdGEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgoXHJcbiAgICAgICAgICAgIGNhY2hlcy5vcGVuKENBQ0hFX05BTUUpLnRoZW4oKGNhY2hlKT0+XHJcbiAgICAgICAgICAgICAgICBjYWNoZS5tYXRjaChldmVudC5yZXF1ZXN0KS50aGVuKChyZXNwb25zZSk9PntcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInJlc3B1ZXN0YSBjYWNow6k6IFwiLCByZXNwb25zZSlcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UgfHwgZmV0Y2goZXZlbnQucmVxdWVzdCkudGhlbigocmVzcG9uc2UpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwicmVzcHVlc3RhXCIsIHJlc3BvbnNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZighcmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibm8gdGllbmUgcmVzcHVlc3RhXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignd2l0aG91dCByZXNwb25zZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoYDxwPlNlIHByb2R1am8gdW4gZXJyb3IgYWwgaW50ZW50YXIgY2FyZ2FyIGxhIHAmYWFjdXRlO2dpbmEsIGVzIHBvc2libGUgcXVlIG5vIGhheWEgY29uZXhpJm9hY3V0ZTtuIGEgaW50ZXJuZXQ8L3A+PGEgaHJlZj0ke0ZBTExCQUNLfT5Wb2x2ZXIgYSBIb2phIGRlIFJ1dGE8L2J1dHRvbj5gLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7J0NvbnRlbnQtVHlwZSc6ICd0ZXh0L2h0bWwnfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59KTtcclxuc2VsZi5hZGRFdmVudExpc3RlbmVyKCdhY3RpdmF0ZScsIChldmVudCk9PntcclxuICAgIGNvbnNvbGUubG9nKFwiYm9ycmFuZG8gY2FjaGVzIHZpZWphc1wiKVxyXG4gICAgZXZlbnQud2FpdFVudGlsKFxyXG4gICAgICAgIGNhY2hlcy5rZXlzKCkudGhlbigoY2FjaGVOYW1lcyk9PntcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICAgICAgY2FjaGVOYW1lcy5maWx0ZXIoKGNhY2hlTmFtZSk9PlxyXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlTmFtZSAhPSBDQUNIRV9OQU1FXHJcbiAgICAgICAgICAgICAgICApLm1hcCgoY2FjaGVOYW1lKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYm9ycmFuZG8gY2FjaGUgXCIsIGNhY2hlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlcy5kZWxldGUoY2FjaGVOYW1lKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbn0pOyJdfQ==