dmencu 3.2.21 → 3.3.1
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/README.md +42 -42
- package/dist/client/client/client.js +3 -3
- package/dist/client/unlogged/abrir-formulario.js +1 -1
- package/dist/client/unlogged/bypass-formulario.d.ts +6 -42
- package/dist/client/unlogged/bypass-formulario.js +84 -219
- package/dist/client/unlogged/calculos-encuesta.js +112 -38
- package/dist/client/unlogged/helpers-casilleros.d.ts +1 -1
- package/dist/client/unlogged/helpers-casilleros.js +12 -18
- package/dist/client/unlogged/helpers-formulario.d.ts +16 -0
- package/dist/client/unlogged/helpers-formulario.js +88 -0
- package/dist/client/unlogged/redux-formulario.d.ts +1 -2
- package/dist/client/unlogged/redux-formulario.js +21 -31
- package/dist/client/unlogged/render-formulario.d.ts +2 -6
- package/dist/client/unlogged/render-formulario.js +29 -68
- package/dist/client/unlogged/render-formulario.tsx +29 -57
- package/dist/client/unlogged/render-general.js +1 -1
- package/dist/client/unlogged/render-general.tsx +1 -1
- package/dist/client/unlogged/tipos.d.ts +74 -40
- package/dist/client/unlogged/tipos.js +1 -1
- package/dist/server/app-dmencu.d.ts +1428 -0
- package/dist/server/app-dmencu.js +1054 -0
- package/dist/server/def-config.d.ts +1 -0
- package/dist/server/def-config.js +123 -0
- package/dist/server/procedures-dmencu.d.ts +43 -0
- package/dist/server/procedures-dmencu.js +2295 -0
- package/dist/server/server/app-dmencu.d.ts +42 -91
- package/dist/server/server/app-dmencu.js +114 -52
- package/dist/server/server/procedures-dmencu.d.ts +34 -2
- package/dist/server/server/procedures-dmencu.js +77 -51
- package/dist/server/server/setters-rea-no-rea.d.ts +13 -0
- package/dist/server/server/setters-rea-no-rea.js +35 -0
- package/dist/server/server/table-areas.js +4 -4
- package/dist/server/server/table-areas_asignacion_general.js +2 -1
- package/dist/server/server/table-control_campo.js +4 -4
- package/dist/server/server/table-no_rea.js +4 -2
- package/dist/server/server/table-no_rea_sup.js +7 -3
- package/dist/server/server/table-personal.js +1 -1
- package/dist/server/server/table-tareas_tem.js +2 -2
- package/dist/server/server/table-tem.js +2 -2
- package/dist/server/server/types-dmencu.d.ts +34 -2
- package/dist/server/server/types-dmencu.js +2 -1
- package/dist/server/setters-rea-no-rea.d.ts +13 -0
- package/dist/server/setters-rea-no-rea.js +35 -0
- package/dist/server/table-acciones.d.ts +2 -0
- package/dist/server/table-acciones.js +45 -0
- package/dist/server/table-area_enc_proximas.d.ts +2 -0
- package/dist/server/table-area_enc_proximas.js +30 -0
- package/dist/server/table-areas.d.ts +4 -0
- package/dist/server/table-areas.js +112 -0
- package/dist/server/table-areas_asignacion_general.d.ts +2 -0
- package/dist/server/table-areas_asignacion_general.js +86 -0
- package/dist/server/table-barrios.d.ts +2 -0
- package/dist/server/table-barrios.js +35 -0
- package/dist/server/table-comunas.d.ts +2 -0
- package/dist/server/table-comunas.js +33 -0
- package/dist/server/table-control_campo.d.ts +12 -0
- package/dist/server/table-control_campo.js +119 -0
- package/dist/server/table-control_dias_carga.d.ts +2 -0
- package/dist/server/table-control_dias_carga.js +63 -0
- package/dist/server/table-control_resumen.d.ts +2 -0
- package/dist/server/table-control_resumen.js +19 -0
- package/dist/server/table-diccionario.d.ts +2 -0
- package/dist/server/table-diccionario.js +32 -0
- package/dist/server/table-dictra.d.ts +2 -0
- package/dist/server/table-dictra.js +46 -0
- package/dist/server/table-dicvar.d.ts +2 -0
- package/dist/server/table-dicvar.js +32 -0
- package/dist/server/table-encuestadores.d.ts +13 -0
- package/dist/server/table-encuestadores.js +75 -0
- package/dist/server/table-estados.d.ts +2 -0
- package/dist/server/table-estados.js +47 -0
- package/dist/server/table-estados_acciones.d.ts +2 -0
- package/dist/server/table-estados_acciones.js +40 -0
- package/dist/server/table-fracciones.d.ts +2 -0
- package/dist/server/table-fracciones.js +37 -0
- package/dist/server/table-grilla_hoja_ruta.d.ts +2 -0
- package/dist/server/table-grilla_hoja_ruta.js +93 -0
- package/dist/server/table-historial_tem.d.ts +2 -0
- package/dist/server/table-historial_tem.js +57 -0
- package/dist/server/table-hogares.d.ts +2 -0
- package/dist/server/table-hogares.js +156 -0
- package/dist/server/table-hogares_sup.d.ts +2 -0
- package/dist/server/table-hogares_sup.js +191 -0
- package/dist/server/table-inconsistencias_cumplen_condicion.d.ts +2 -0
- package/dist/server/table-inconsistencias_cumplen_condicion.js +33 -0
- package/dist/server/table-manzanas.d.ts +2 -0
- package/dist/server/table-manzanas.js +36 -0
- package/dist/server/table-mis_encuestadores.d.ts +2 -0
- package/dist/server/table-mis_encuestadores.js +77 -0
- package/dist/server/table-mis_tareas.d.ts +2 -0
- package/dist/server/table-mis_tareas.js +18 -0
- package/dist/server/table-mis_tareas_areas.d.ts +2 -0
- package/dist/server/table-mis_tareas_areas.js +20 -0
- package/dist/server/table-modos_dm.d.ts +2 -0
- package/dist/server/table-modos_dm.js +28 -0
- package/dist/server/table-no_rea.js +38 -0
- package/dist/server/table-no_rea_sup.js +36 -0
- package/dist/server/table-operaciones.d.ts +2 -0
- package/dist/server/table-operaciones.js +30 -0
- package/dist/server/table-parametros.d.ts +2 -0
- package/dist/server/table-parametros.js +40 -0
- package/dist/server/table-permisos.d.ts +2 -0
- package/dist/server/table-permisos.js +31 -0
- package/dist/server/table-personal.d.ts +5 -0
- package/dist/server/table-personal.js +62 -0
- package/dist/server/table-personal_rol.d.ts +2 -0
- package/dist/server/table-personal_rol.js +42 -0
- package/dist/server/table-personas.d.ts +2 -0
- package/dist/server/table-personas.js +448 -0
- package/dist/server/table-personas_sup.d.ts +2 -0
- package/dist/server/table-personas_sup.js +93 -0
- package/dist/server/table-radios.d.ts +2 -0
- package/dist/server/table-radios.js +37 -0
- package/dist/server/table-rea.d.ts +2 -0
- package/dist/server/table-rea.js +38 -0
- package/dist/server/table-rea_sup.d.ts +2 -0
- package/dist/server/table-rea_sup.js +38 -0
- package/dist/server/table-recepcionistas.d.ts +2 -0
- package/dist/server/table-recepcionistas.js +18 -0
- package/dist/server/table-recuperadores.d.ts +2 -0
- package/dist/server/table-recuperadores.js +18 -0
- package/dist/server/table-roles.d.ts +2 -0
- package/dist/server/table-roles.js +33 -0
- package/dist/server/table-roles_permisos.d.ts +2 -0
- package/dist/server/table-roles_permisos.js +36 -0
- package/dist/server/table-roles_subordinados.d.ts +2 -0
- package/dist/server/table-roles_subordinados.js +31 -0
- package/dist/server/table-semanas.d.ts +2 -0
- package/dist/server/table-semanas.js +42 -0
- package/dist/server/table-sincronizaciones.d.ts +2 -0
- package/dist/server/table-sincronizaciones.js +30 -0
- package/dist/server/table-supervisores.d.ts +2 -0
- package/dist/server/table-supervisores.js +18 -0
- package/dist/server/table-tareas.d.ts +2 -0
- package/dist/server/table-tareas.js +48 -0
- package/dist/server/table-tareas_areas.d.ts +7 -0
- package/dist/server/table-tareas_areas.js +112 -0
- package/dist/server/table-tareas_proximas.d.ts +2 -0
- package/dist/server/table-tareas_proximas.js +48 -0
- package/dist/server/table-tareas_tem.d.ts +14 -0
- package/dist/server/table-tareas_tem.js +206 -0
- package/dist/server/table-tareas_tem_analisis_campo.d.ts +2 -0
- package/dist/server/table-tareas_tem_analisis_campo.js +31 -0
- package/dist/server/table-tareas_tem_fin_campo.d.ts +3 -0
- package/dist/server/table-tareas_tem_fin_campo.js +56 -0
- package/dist/server/table-tareas_tem_ingreso.d.ts +2 -0
- package/dist/server/table-tareas_tem_ingreso.js +31 -0
- package/dist/server/table-tareas_tem_procesamiento.d.ts +2 -0
- package/dist/server/table-tareas_tem_procesamiento.js +34 -0
- package/dist/server/table-tareas_tem_recepcion.d.ts +6 -0
- package/dist/server/table-tareas_tem_recepcion.js +59 -0
- package/dist/server/table-tem.d.ts +3 -0
- package/dist/server/table-tem.js +247 -0
- package/dist/server/table-tem_asignacion.d.ts +2 -0
- package/dist/server/table-tem_asignacion.js +50 -0
- package/dist/server/table-tem_borradas.d.ts +2 -0
- package/dist/server/table-tem_borradas.js +35 -0
- package/dist/server/table-usuarios.d.ts +2 -0
- package/dist/server/table-usuarios.js +63 -0
- package/dist/server/table-visitas.d.ts +2 -0
- package/dist/server/table-visitas.js +91 -0
- package/dist/server/table-visitas_sup.d.ts +2 -0
- package/dist/server/table-visitas_sup.js +91 -0
- package/dist/server/table-viviendas.d.ts +2 -0
- package/dist/server/table-viviendas.js +299 -0
- package/dist/server/types-dmencu.d.ts +95 -0
- package/dist/server/types-dmencu.js +34 -0
- package/dist/server/unlogged/tipos.d.ts +74 -40
- package/dist/server/unlogged/tipos.js +1 -1
- package/dist/test/app-para-tests.d.ts +1115 -0
- package/dist/test/app-para-tests.js +95 -0
- package/dist/test/test-caches-rea.d.ts +1 -0
- package/dist/test/test-caches-rea.js +243 -0
- package/dist/test/test-helpers-casilleros.d.ts +1 -0
- package/dist/test/test-helpers-casilleros.js +154 -0
- package/dist/test/test-helpers-formulario.d.ts +1 -0
- package/dist/test/test-helpers-formulario.js +95 -0
- package/dist/test/test-impacto-rea-no-rea-en-bd.d.ts +1 -0
- package/dist/test/test-impacto-rea-no-rea-en-bd.js +243 -0
- package/dist/test/test-menu-segun-rol.d.ts +1 -0
- package/dist/test/test-menu-segun-rol.js +170 -0
- package/dist/test/test-setters-rea-no-rea.d.ts +1 -0
- package/dist/test/test-setters-rea-no-rea.js +95 -0
- package/dist/test/test.d.ts +6 -0
- package/dist/test/test.js +8 -2
- package/dist/unlogged/helpers-casilleros.d.ts +1 -1
- package/dist/unlogged/helpers-casilleros.js +12 -18
- package/dist/unlogged/helpers-formulario.d.ts +16 -0
- package/dist/unlogged/helpers-formulario.js +88 -0
- package/dist/unlogged/tipos.d.ts +1 -1
- package/dist/unlogged/tipos.js +1 -1
- package/dist/unlogged/unlogged/abrir-formulario.js +1 -1
- package/dist/unlogged/unlogged/bypass-formulario.d.ts +6 -42
- package/dist/unlogged/unlogged/bypass-formulario.js +84 -219
- package/dist/unlogged/unlogged/helpers-casilleros.js +7 -14
- package/dist/unlogged/unlogged/helpers-formulario.d.ts +16 -0
- package/dist/unlogged/unlogged/helpers-formulario.js +88 -0
- package/dist/unlogged/unlogged/redux-formulario.d.ts +1 -2
- package/dist/unlogged/unlogged/redux-formulario.js +21 -31
- package/dist/unlogged/unlogged/render-formulario.d.ts +2 -6
- package/dist/unlogged/unlogged/render-formulario.js +29 -68
- package/dist/unlogged/unlogged/render-formulario.tsx +29 -57
- package/dist/unlogged/unlogged/render-general.js +1 -1
- package/dist/unlogged/unlogged/render-general.tsx +1 -1
- package/dist/unlogged/unlogged/tipos.d.ts +74 -40
- package/dist/unlogged/unlogged/tipos.js +1 -1
- package/dist/unlogged/unlogged/unlogged.js +2 -2
- package/install/accion_cumple_condicion.sql +1 -1
- package/install/generador_accion_cumple_condicion.sql +2 -2
- package/install/tarea_cumple_condicion.sql +1 -1
- package/install/xcalcular_resultado_trg.sql +1 -1
- package/package.json +20 -17
- package/dist/server/server/table-no_rea copy.js +0 -38
- package/dist/server/server/table-no_rea_sup copy.js +0 -36
- package/dist/unlogged/bypass-formulario.d.ts +0 -198
- package/dist/unlogged/bypass-formulario.js +0 -1226
- package/dist/unlogged/redux-formulario.d.ts +0 -440
- package/dist/unlogged/redux-formulario.js +0 -324
- package/dist/unlogged/render-config.d.ts +0 -52
- package/dist/unlogged/render-config.js +0 -161
- package/dist/unlogged/unlogged/bypass-formulario copy.d.ts +0 -198
- package/dist/unlogged/unlogged/bypass-formulario copy.js +0 -1226
- package/dist/unlogged/unlogged/helpers.d.ts +0 -14
- package/dist/unlogged/unlogged/helpers.js +0 -129
- /package/dist/server/{server/table-no_rea copy.d.ts → table-no_rea.d.ts} +0 -0
- /package/dist/server/{server/table-no_rea_sup copy.d.ts → table-no_rea_sup.d.ts} +0 -0
|
@@ -12,6 +12,15 @@ import {
|
|
|
12
12
|
mesReferencia,
|
|
13
13
|
obtenerTextoParentesco,
|
|
14
14
|
} from "./render-general";
|
|
15
|
+
import {
|
|
16
|
+
REGEX_SPLIT_COMODINES,
|
|
17
|
+
IS_TEM_PATTERN,
|
|
18
|
+
IS_VARIABLE_HASH_PATTERN,
|
|
19
|
+
IS_COMODIN_REDUX_PATTERN,
|
|
20
|
+
extraerComodinesRedux,
|
|
21
|
+
extraerVariablesInteres,
|
|
22
|
+
getBFVarNames,
|
|
23
|
+
} from "./helpers-formulario";
|
|
15
24
|
import {
|
|
16
25
|
Bloque, BotonFormulario,
|
|
17
26
|
CasilleroBase, CasoState, ConjuntoPreguntas, Consistencia,
|
|
@@ -51,7 +60,8 @@ import {
|
|
|
51
60
|
setEstructura,
|
|
52
61
|
setCalcularComodines,
|
|
53
62
|
suscribirCambioVariable,
|
|
54
|
-
ListenerCambioVariable
|
|
63
|
+
ListenerCambioVariable,
|
|
64
|
+
getResumenEstadoForTarea
|
|
55
65
|
} from "./bypass-formulario"
|
|
56
66
|
import {
|
|
57
67
|
comodinesIniciales,
|
|
@@ -84,8 +94,8 @@ import {
|
|
|
84
94
|
getEstructura,
|
|
85
95
|
defOperativo,
|
|
86
96
|
volcadoInicialElementosRegistrados,
|
|
87
|
-
numberOrStringIncIfArray,
|
|
88
97
|
calcularElementoEnfocado,
|
|
98
|
+
numberOrStringIncIfArray,
|
|
89
99
|
accion_registrar_respuesta,
|
|
90
100
|
accion_registrar_respuestas,
|
|
91
101
|
accion_id_pregunta,
|
|
@@ -165,43 +175,7 @@ export function formatearResultadoComodin(valor: string): string {
|
|
|
165
175
|
// 1. HELPERS PUROS Y EXPRESIONES REGULARES
|
|
166
176
|
// ==========================================
|
|
167
177
|
|
|
168
|
-
//
|
|
169
|
-
const REGEX_SPLIT_COMODINES = /(@(?:#?[\w-]+|\$[tT][eE][mM][^@]*)@)/g;
|
|
170
|
-
|
|
171
|
-
// Sub-RegExs para identificar el tipo de comodín
|
|
172
|
-
const IS_TEM_PATTERN = /^@\$(tem[^@]*)@$/i;
|
|
173
|
-
const IS_VARIABLE_HASH_PATTERN = /^@#([\w-]+)@$/;
|
|
174
|
-
const IS_COMODIN_REDUX_PATTERN = /^@([\w-]+)@$/;
|
|
175
|
-
|
|
176
|
-
/** Extrae nombres de comodines estándar (@comodin@) */
|
|
177
|
-
function extraerComodinesRedux(text: string): IdComodin[] {
|
|
178
|
-
if (!text || !text.includes('@')) return [];
|
|
179
|
-
const matches = text.match(/@([a-zA-Z0-9_-]+)@/g);
|
|
180
|
-
if (!matches) return [];
|
|
181
|
-
|
|
182
|
-
const ids: IdComodin[] = [];
|
|
183
|
-
for (const m of matches) {
|
|
184
|
-
if (!m.startsWith('@#') && !m.startsWith('@$')) {
|
|
185
|
-
const id = m.slice(1, -1) as IdComodin;
|
|
186
|
-
if (!ids.includes(id)) ids.push(id);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return ids;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/** Extrae nombres de variables dinámicas (@#variable@) */
|
|
193
|
-
function extraerVariablesInteres(text: string): string[] {
|
|
194
|
-
if (!text) return [];
|
|
195
|
-
const matches = text.match(/@#([\w-]+)@/g);
|
|
196
|
-
if (!matches) return [];
|
|
197
|
-
|
|
198
|
-
const vars: string[] = [];
|
|
199
|
-
for (const m of matches) {
|
|
200
|
-
const varName = m.slice(2, -1); // Remueve '@#' y '@'
|
|
201
|
-
if (!vars.includes(varName)) vars.push(varName);
|
|
202
|
-
}
|
|
203
|
-
return vars;
|
|
204
|
-
}
|
|
178
|
+
// (definidos en helpers-formulario.ts para poder testearlos sin React)
|
|
205
179
|
|
|
206
180
|
// ==========================================
|
|
207
181
|
// 2. HOOK PERSONALIZADO PARA BINDING DINÁMICO
|
|
@@ -344,14 +318,7 @@ export const BreakeableText = React.memo(function BreakeableText(props: {
|
|
|
344
318
|
return <span className={className} style={style}>{contenido}</span>;
|
|
345
319
|
});
|
|
346
320
|
|
|
347
|
-
export
|
|
348
|
-
const armoNomSalto = salto?.substring(0, 2) == 'F:' ? salto.slice(2) : salto;
|
|
349
|
-
return {
|
|
350
|
-
listo: '$B.F:' + armoNomSalto as IdVariable,
|
|
351
|
-
agregar: '$B.F:' + armoNomSalto + '_agregar' as IdVariable,
|
|
352
|
-
idFormulario: 'F:' + armoNomSalto as IdFormulario
|
|
353
|
-
};
|
|
354
|
-
}
|
|
321
|
+
export { getBFVarNames };
|
|
355
322
|
|
|
356
323
|
export function registrarRespuestasBotonFormulario(opts: {
|
|
357
324
|
forPkPadre: ForPk,
|
|
@@ -2060,11 +2027,12 @@ function BarraDeNavegacion(props: { forPk: ForPk, soloLectura: boolean, modoDire
|
|
|
2060
2027
|
const [confirmaCerrar, setConfirmaCerrar] = useState<boolean | null>(false);
|
|
2061
2028
|
var estructura = getEstructura();
|
|
2062
2029
|
var dominio = getDatosByPass().informacionHdr[forPk[estructura.pkAgregadaUaPpal]].tem.dominio;
|
|
2030
|
+
var tarea = getDatosByPass().informacionHdr[forPk[estructura.pkAgregadaUaPpal]].tarea.tarea;
|
|
2063
2031
|
var cerrarDirecto = async function () {
|
|
2064
2032
|
removeCSSById(BOOTSTRAP_5_1_3_SRC);
|
|
2065
2033
|
gotoConsistir(
|
|
2066
2034
|
estructura.operativo as IdOperativo,
|
|
2067
|
-
|
|
2035
|
+
tarea,
|
|
2068
2036
|
forPk[estructura.pkAgregadaUaPpal]
|
|
2069
2037
|
);
|
|
2070
2038
|
//var hash=new URLSearchParams(location.hash?.replace(/^\#/,'').split('&autoproced')[0]);
|
|
@@ -2086,10 +2054,11 @@ function BarraDeNavegacion(props: { forPk: ForPk, soloLectura: boolean, modoDire
|
|
|
2086
2054
|
r: Respuestas,
|
|
2087
2055
|
_feedbackForm: FormStructureState<IdVariable, Valor, IdFin>,
|
|
2088
2056
|
elemento: HTMLDivElement,
|
|
2089
|
-
|
|
2057
|
+
_feedbackAll: { [formulario in PlainForPk]: FormStructureState<IdVariable, Valor, IdFin> },
|
|
2090
2058
|
_estructura: Estructura
|
|
2091
2059
|
) => {
|
|
2092
|
-
|
|
2060
|
+
const resumenEstado = getResumenEstadoForTarea(r as RespuestasRaiz, tarea as IdTarea)
|
|
2061
|
+
elemento.setAttribute('resumen-estado', resumenEstado);
|
|
2093
2062
|
}
|
|
2094
2063
|
})
|
|
2095
2064
|
const cambiar = (modoDespliegue: ModoDespliegue) => {
|
|
@@ -2239,6 +2208,7 @@ function FormularioDespliegue(props: { forPk: ForPk }) {
|
|
|
2239
2208
|
= useSelectorVivienda(forPk);
|
|
2240
2209
|
var soloLectura = getDatosByPass().soloLectura;
|
|
2241
2210
|
var esVolver = opciones.pilaForPk.length > 0;
|
|
2211
|
+
const tarea = getDatosByPass().informacionHdr[forPk[getEstructura().pkAgregadaUaPpal]].tarea.tarea;
|
|
2242
2212
|
useEffect(() => {
|
|
2243
2213
|
var controlScroll = () => {
|
|
2244
2214
|
var arriba = document.getElementById('fab-activo-arriba');
|
|
@@ -2286,10 +2256,11 @@ function FormularioDespliegue(props: { forPk: ForPk }) {
|
|
|
2286
2256
|
r: Respuestas,
|
|
2287
2257
|
feedbackForm: FormStructureState<IdVariable, Valor, IdFin>,
|
|
2288
2258
|
elemento: HTMLDivElement,
|
|
2289
|
-
|
|
2259
|
+
_feedbackAll: { [formulario in PlainForPk]: FormStructureState<IdVariable, Valor, IdFin> },
|
|
2290
2260
|
_estructura: Estructura
|
|
2291
2261
|
) => {
|
|
2292
|
-
|
|
2262
|
+
const resumenEstado = getResumenEstadoForTarea(r as RespuestasRaiz, tarea as IdTarea)
|
|
2263
|
+
elemento.setAttribute('resumen-estado', esVolver ? feedbackForm.resumen : resumenEstado);
|
|
2293
2264
|
}
|
|
2294
2265
|
})
|
|
2295
2266
|
})
|
|
@@ -2378,22 +2349,23 @@ setDesplegarLineaResumenUAPrincipal((props: {
|
|
|
2378
2349
|
const dispatch = useDispatch();
|
|
2379
2350
|
useEffect(() => {
|
|
2380
2351
|
volcadoInicialElementosRegistrados(forPk);
|
|
2381
|
-
intentarBackup(forPk)
|
|
2382
|
-
})
|
|
2352
|
+
intentarBackup(forPk);
|
|
2353
|
+
}, [numVivienda, formPrincipal])
|
|
2383
2354
|
registrarElemento({
|
|
2384
2355
|
id, direct: true,
|
|
2385
2356
|
fun: (
|
|
2386
2357
|
r: Respuestas,
|
|
2387
2358
|
_feedbackForm: FormStructureState<IdVariable, Valor, IdFin>,
|
|
2388
2359
|
elemento: HTMLDivElement,
|
|
2389
|
-
|
|
2360
|
+
_feedbackAll: { [formulario in PlainForPk]: FormStructureState<IdVariable, Valor, IdFin> },
|
|
2390
2361
|
_estructura: Estructura
|
|
2391
2362
|
) => {
|
|
2392
|
-
//pregunto si es la misma vivienda porque la funcion se dispara
|
|
2363
|
+
//pregunto si es la misma vivienda porque la funcion se dispara
|
|
2393
2364
|
//con todas las combinaciones de respuestas para cada forPk
|
|
2394
2365
|
//@ts-ignore vivienda existe
|
|
2395
2366
|
if (r[estructura.pkAgregadaUaPpal] == forPk[estructura.pkAgregadaUaPpal]) {
|
|
2396
|
-
|
|
2367
|
+
const resumenEstado = getResumenEstadoForTarea(r as RespuestasRaiz, tarea as IdTarea)
|
|
2368
|
+
elemento.setAttribute('resumen-estado', resumenEstado);
|
|
2397
2369
|
}
|
|
2398
2370
|
}
|
|
2399
2371
|
|
|
@@ -278,4 +278,4 @@
|
|
|
278
278
|
return lista[p4 - 1] || '........';
|
|
279
279
|
}
|
|
280
280
|
});
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWdlbmVyYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvcmVuZGVyLWdlbmVyYWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTBFQSwwREFXQztJQVdELDhCQWlCQztJQU9ELDhCQWdCQztJQTBHRCxrQ0FVQztJQThDRCwwQ0FjQztJQUVELDBDQVdDO0lBS0QsMERBR0M7SUFFRCxzQ0FHQztJQUVELDBDQUdDO0lBS0Qsd0RBS0M7SUFqV0QsK0JBQStCO0lBQy9CLGlDQUE0QztJQUM1Qyw2Q0FBb0Q7SUFDcEQsa0NBQWtDO0lBRWxDLDJDQUFzQztJQUV0Qyw0Q0FJdUI7SUFJdkIscURBQXFEO0lBQ3hDLFFBQUEsc0JBQXNCLEdBQUc7UUFDbEMsR0FBRyxFQUFFLHFDQUFxQztRQUMxQyxTQUFTLEVBQUUsOERBQThEO1FBQ3pFLFVBQVUsRUFBRSxnT0FBZ087UUFDNU8sY0FBYyxFQUFFLDBMQUEwTDtRQUMxTSxLQUFLLEVBQUUsbURBQW1EO1FBQzFELDRCQUE0QixFQUFFLDRGQUE0RjtRQUMxSCxnQkFBZ0IsRUFBRSx1SkFBdUo7UUFDekssV0FBVyxFQUFFLHdLQUF3SztRQUNyTCxZQUFZLEVBQUUsMEtBQTBLO1FBQ3hMLEtBQUssRUFBRSx1R0FBdUc7UUFDOUcsS0FBSyxFQUFFLHVHQUF1RztRQUM5RyxTQUFTLEVBQUMsNFhBQTRYO1FBQ3RZLElBQUksRUFBRSw0RkFBNEY7UUFDbEcsTUFBTSxFQUFFLHFKQUFxSjtRQUM3SixNQUFNLEVBQUUsK0VBQStFO1FBQ3ZGLGFBQWEsRUFBRSw2TUFBNk07UUFDNU4sYUFBYSxFQUFFLHlGQUF5RjtRQUN4RyxXQUFXLEVBQUUsZ0lBQWdJO1FBQzdJLFlBQVksRUFBRSxtV0FBbVc7UUFDalgsU0FBUyxFQUFFLHNLQUFzSztRQUNqTCxVQUFVLEVBQUUsZ0RBQWdEO1FBQzVELFVBQVUsRUFBRSw4Q0FBOEM7UUFDMUQsaUJBQWlCLEVB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QUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBRVksUUFBQSxlQUFlLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNsTixRQUFBLGtCQUFrQixHQUFHLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFdk8sU0FBZ0Isc0JBQXNCLENBQUMsRUFBNkIsRUFBRSxTQUFrQjtRQUNwRixJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxHQUFHLENBQUM7WUFBRSxPQUFPLFVBQVUsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM5RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLDBCQUFrQixDQUFDLENBQUMsQ0FBQyx1QkFBZSxDQUFDO1FBQzNELE9BQU8sS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUM7SUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFByb3ZpZGVyLCB1c2VEaXNwYXRjaCB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgKiBhcyBsaWtlQXIgZnJvbSBcImxpa2UtYXJcIjtcclxuXHJcbmltcG9ydCB7IGV4cGVjdGVkIH0gZnJvbSBcImNhc3QtZXJyb3JcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDc3NCYXNlbGluZSwgU3ZnSWNvbiwgVGhlbWVQcm92aWRlciwgVHlwb2dyYXBoeSwgWm9vbSwgdXNlU2Nyb2xsVHJpZ2dlciwgY3JlYXRlVGhlbWUsXHJcbiAgICBNZW51LFxyXG4gICAgQnV0dG9uXHJcbn0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcclxuaW1wb3J0IHsgU3RvcmUsIEFjdGlvbiB9IGZyb20gXCJyZWR1eFwiO1xyXG5pbXBvcnQgeyBUaXBvVmFyaWFibGVzIH0gZnJvbSBcIi4vdGlwb3NcIjtcclxuXHJcbi8vIGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2NvbXBvbmVudHMvbWF0ZXJpYWwtaWNvbnMvXHJcbmV4cG9ydCBjb25zdCBtYXRlcmlhbElvSWNvbnNTdmdQYXRoID0ge1xyXG4gICAgQWRkOiBcIk0xOSAxM2gtNnY2aC0ydi02SDV2LTJoNlY1aDJ2Nmg2djJ6XCIsXHJcbiAgICBBcnJvd0JhY2s6IFwiTTIwIDExSDcuODNsNS41OS01LjU5TDEyIDRsLTggOCA4IDggMS40MS0xLjQxTDcuODMgMTNIMjB2LTJ6XCIsXHJcbiAgICBBc3NpZ25tZW50OiBcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMiAxNEg3di0yaDd2MnptMy00SDd2LTJoMTB2MnptMC00SDdWN2gxMHYyelwiLFxyXG4gICAgQnVzaW5lc3NDZW50ZXI6IFwiTTEwIDE2di0xSDMuMDFMMyAxOWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMnYtNGgtN3Yxem0xMC05aC00LjAxVjVsLTItMmgtNGwtMiAydjJINGMtMS4xIDAtMiAuOS0yIDJ2M2MwIDEuMTEuODkgMiAyIDJoNnYtMmg0djJoNmMxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0ybS02IDBoLTRWNWg0elwiLFxyXG4gICAgQ2hlY2s6IFwiTTkgMTYuMTdMNC44MyAxMmwtMS40MiAxLjQxTDkgMTkgMjEgN2wtMS40MS0xLjQxelwiLFxyXG4gICAgQ2hlY2tCb3hPdXRsaW5lQmxhbmtPdXRsaW5lZDogXCJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIixcclxuICAgIENoZWNrQm94T3V0bGluZWQ6IFwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNMTcuOTkgOWwtMS40MS0xLjQyLTYuNTkgNi41OS0yLjU4LTIuNTctMS40MiAxLjQxIDQgMy45OXpcIixcclxuICAgIENoZXZyb25MZWZ0OiBcIk0xNC43MSA2LjcxYS45OTU5Ljk5NTkgMCAwMC0xLjQxIDBMOC43MSAxMS4zYy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxbDQuNTkgNC41OWMuMzkuMzkgMS4wMi4zOSAxLjQxIDAgLjM5LS4zOS4zOS0xLjAyIDAtMS40MUwxMC44MyAxMmwzLjg4LTMuODhjLjM5LS4zOS4zOC0xLjAzIDAtMS40MXpcIixcclxuICAgIENoZXZyb25SaWdodDogXCJNOS4yOSA2LjcxYy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxTDEzLjE3IDEybC0zLjg4IDMuODhjLS4zOS4zOS0uMzkgMS4wMiAwIDEuNDEuMzkuMzkgMS4wMi4zOSAxLjQxIDBsNC41OS00LjU5Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFMMTAuNyA2LjdjLS4zOC0uMzgtMS4wMi0uMzgtMS40MS4wMXpcIixcclxuICAgIENsZWFyOiBcIk0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6XCIsXHJcbiAgICBDbG9zZTogXCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwiLFxyXG4gICAgQ2xvdWRTeW5jOlwiTTIxLjUgMTQuOThjLS4wMiAwLS4wMyAwLS4wNS4wMUMyMS4yIDEzLjMgMTkuNzYgMTIgMTggMTJjLTEuNCAwLTIuNi44My0zLjE2IDIuMDJDMTMuMjYgMTQuMSAxMiAxNS40IDEyIDE3YzAgMS42NiAxLjM0IDMgMyAzbDYuNS0uMDJjMS4zOCAwIDIuNS0xLjEyIDIuNS0yLjVzLTEuMTItMi41LTIuNS0yLjVNMTAgNC4yNnYyLjA5QzcuNjcgNy4xOCA2IDkuMzkgNiAxMmMwIDEuNzcuNzggMy4zNCAyIDQuNDRWMTRoMnY2SDR2LTJoMi43M0M1LjA2IDE2LjU0IDQgMTQuNCA0IDEyYzAtMy43MyAyLjU1LTYuODUgNi03Ljc0TTIwIDZoLTIuNzNjMS40MyAxLjI2IDIuNDEgMy4wMSAyLjY2IDVoLTIuMDJjLS4yMy0xLjM2LS45My0yLjU1LTEuOTEtMy40NFYxMGgtMlY0aDZ6XCIsXHJcbiAgICBDb2RlOiBcIk05LjQgMTYuNkw0LjggMTJsNC42LTQuNkw4IDZsLTYgNiA2IDYgMS40LTEuNHptNS4yIDBsNC42LTQuNi00LjYtNC42TDE2IDZsNiA2LTYgNi0xLjQtMS40elwiLFxyXG4gICAgQ3JlYXRlOiBcIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtMi4zNC0yLjM0YS45OTU5Ljk5NTkgMCAwMC0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzelwiLFxyXG4gICAgRGVsZXRlOiBcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTE5IDRoLTMuNWwtMS0xaC01bC0xIDFINXYyaDE0VjR6XCIsXHJcbiAgICBEZWxldGVGb3JldmVyOiBcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6bTIuNDYtNy4xMmwxLjQxLTEuNDFMMTIgMTIuNTlsMi4xMi0yLjEyIDEuNDEgMS40MUwxMy40MSAxNGwyLjEyIDIuMTItMS40MSAxLjQxTDEyIDE1LjQxbC0yLjEyIDIuMTItMS40MS0xLjQxTDEwLjU5IDE0bC0yLjEzLTIuMTJ6TTE1LjUgNGwtMS0xaC01bC0xIDFINXYyaDE0VjR6XCIsXHJcbiAgICBEZWxldGVPdXRsaW5lOiBcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTggOWg4djEwSDhWOXptNy41LTVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0elwiLFxyXG4gICAgRGVzY3JpcHRpb246IFwiTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptMiAxNkg4di0yaDh2MnptMC00SDh2LTJoOHYyem0tMy01VjMuNUwxOC41IDlIMTN6XCIsXHJcbiAgICBFbW9qaU9iamVjdHM6IFwiTTEyIDNjLS40NiAwLS45My4wNC0xLjQuMTQtMi43Ni41My00Ljk2IDIuNzYtNS40OCA1LjUyLS40OCAyLjYxLjQ4IDUuMDEgMi4yMiA2LjU2LjQzLjM4LjY2LjkxLjY2IDEuNDdWMTljMCAxLjEuOSAyIDIgMmguMjhjLjM1LjYuOTggMSAxLjcyIDFzMS4zOC0uNCAxLjcyLTFIMTRjMS4xIDAgMi0uOSAyLTJ2LTIuMzFjMC0uNTUuMjItMS4wOS42NC0xLjQ2QzE4LjA5IDEzLjk1IDE5IDEyLjA4IDE5IDEwYzAtMy44Ny0zLjEzLTctNy03em0yIDE2aC00di0xaDR2MXptMC0yaC00di0xaDR2MXptLTEuNS01LjU5VjE0aC0xdi0yLjU5TDkuNjcgOS41OWwuNzEtLjcxTDEyIDEwLjVsMS42Mi0xLjYyLjcxLjcxLTEuODMgMS44MnpcIixcclxuICAgIEV4aXRUb0FwcDogXCJNMTAuMDkgMTUuNTlMMTEuNSAxN2w1LTUtNS01LTEuNDEgMS40MUwxMi42NyAxMUgzdjJoOS42N2wtMi41OCAyLjU5ek0xOSAzSDVjLTEuMTEgMC0yIC45LTIgMnY0aDJWNWgxNHYxNEg1di00SDN2NGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwiLFxyXG4gICAgRXhwYW5kTGVzczogXCJNMTIgOGwtNiA2IDEuNDEgMS40MUwxMiAxMC44M2w0LjU5IDQuNThMMTggMTR6XCIsXHJcbiAgICBFeHBhbmRNb3JlOiBcIk0xNi41OSA4LjU5TDEyIDEzLjE3IDcuNDEgOC41OSA2IDEwbDYgNiA2LTZ6XCIsXHJcbiAgICBGb3JtYXRMaW5lU3BhY2luZzogXCJNNiA3aDIuNUw1IDMuNSAxLjUgN0g0djEwSDEuNUw1IDIwLjUgOC41IDE3SDZWN3ptNC0ydjJoMTJWNUgxMHptMCAxNGgxMnYtMkgxMHYyem0wLTZoMTJ2LTJIMTB2MnpcIixcclxuICAgIEZvcndhcmQ6IFwiTTEyIDhWNGw4IDgtOCA4di00SDRWOHpcIixcclxuICAgIEZvcndhcmRPdXRsaW5lZDogXCJNMTQgOC44M0wxNy4xNyAxMiAxNCAxNS4xN1YxNEg2di00aDhWOC44M00xMiA0djRINHY4aDh2NGw4LTgtOC04elwiLFxyXG4gICAgSW5mbzogXCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnpcIixcclxuICAgIEtleWJvYXJkQXJyb3dVcDogXCJNNy40MSAxNS40MUwxMiAxMC44M2w0LjU5IDQuNThMMTggMTRsLTYtNi02IDZ6XCIsXHJcbiAgICBLZXlib2FyZEFycm93RG93bjogXCJNNy40MSA4LjU5TDEyIDEzLjE3bDQuNTktNC41OEwxOCAxMGwtNiA2LTYtNiAxLjQxLTEuNDF6XCIsXHJcbiAgICBMYWJlbDogXCJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnpcIixcclxuICAgIExvY2FsQXRtOiBcIk0xMSAxN2gydi0xaDFjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMWgtM3YtMWg0VjhoLTJWN2gtMnYxaC0xYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWgzdjFIOXYyaDJ2MXptOS0xM0g0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2YzAtMS4xMS0uODktMi0yLTJ6bTAgMTRINFY2aDE2djEyelwiLFxyXG4gICAgTG9jYXRpb246IFwiTTEyIDJDOC4xMyAyIDUgNS4xMyA1IDljMCA1LjI1IDcgMTMgNyAxM3M3LTcuNzUgNy0xM2MwLTMuODctMy4xMy03LTctN20wIDkuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjVcIixcclxuICAgIE1lbnU6IFwiTTMgMThoMTh2LTJIM3Yyem0wLTVoMTh2LTJIM3Yyem0wLTd2MmgxOFY2SDN6XCIsXHJcbiAgICBOYXZpZ2F0aW9uOiBcIk0xMiAyTDQuNSAyMC4yOWwuNzEuNzFMMTIgMThsNi43OSAzIC43MS0uNzF6XCIsXHJcbiAgICBOYXZpZ2F0aW9uRG93bjogXCJNMTIgMjJMNC41IDMuNzFsLjcxIC0uNzFMMTIgNmw2Ljc5IC0zIC43MSAuNzF6XCIsXHJcbiAgICBSZWZyZXNoOiBcIk0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjR6XCIsXHJcbiAgICBSZW1vdmVTaG9wcGluZ0NhcnQ6IFwiTTIyLjczIDIyLjczTDIuNzcgMi43NyAyIDJsLS43My0uNzNMMCAyLjU0bDQuMzkgNC4zOSAyLjIxIDQuNjYtMS4zNSAyLjQ1Yy0uMTYuMjgtLjI1LjYxLS4yNS45NiAwIDEuMS45IDIgMiAyaDcuNDZsMS4zOCAxLjM4Yy0uNS4zNi0uODMuOTUtLjgzIDEuNjIgMCAxLjEuODkgMiAxLjk5IDIgLjY3IDAgMS4yNi0uMzMgMS42Mi0uODRMMjEuNDYgMjRsMS4yNy0xLjI3ek03LjQyIDE1Yy0uMTQgMC0uMjUtLjExLS4yNS0uMjVsLjAzLS4xMi45LTEuNjNoMi4zNmwyIDJINy40MnptOC4xMy0yYy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM2wzLjU4LTYuNDljLjA4LS4xNC4xMi0uMzEuMTItLjQ4IDAtLjU1LS40NS0xLTEtMUg2LjU0bDkuMDEgOXpNNyAxOGMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnpcIixcclxuICAgIFNhdmU6IFwiTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0elwiLFxyXG4gICAgU2Nob29sOiBcIk01IDEzLjE4djRMMTIgMjFsNy0zLjgydi00TDEyIDE3ek0xMiAzIDEgOWwxMSA2IDktNC45MVYxN2gyVjl6XCIsXHJcbiAgICBTZWFyY2g6IFwiTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6XCIsXHJcbiAgICBTZW5kOiBcIk0yLjAxIDIxTDIzIDEyIDIuMDEgMyAyIDEwbDE1IDItMTUgMnpcIixcclxuICAgIFNldHRpbmdzOiBcIk0xNS45NSAxMC43OGMuMDMtLjI1LjA1LS41MS4wNS0uNzhzLS4wMi0uNTMtLjA2LS43OGwxLjY5LTEuMzJjLjE1LS4xMi4xOS0uMzQuMS0uNTFsLTEuNi0yLjc3Yy0uMS0uMTgtLjMxLS4yNC0uNDktLjE4bC0xLjk5LjhjLS40Mi0uMzItLjg2LS41OC0xLjM1LS43OEwxMiAyLjM0Yy0uMDMtLjItLjItLjM0LS40LS4zNEg4LjRjLS4yIDAtLjM2LjE0LS4zOS4zNGwtLjMgMi4xMmMtLjQ5LjItLjk0LjQ3LTEuMzUuNzhsLTEuOTktLjhjLS4xOC0uMDctLjM5IDAtLjQ5LjE4bC0xLjYgMi43N2MtLjEuMTgtLjA2LjM5LjEuNTFsMS42OSAxLjMyYy0uMDQuMjUtLjA3LjUyLS4wNy43OHMuMDIuNTMuMDYuNzhMMi4zNyAxMi4xYy0uMTUuMTItLjE5LjM0LS4xLjUxbDEuNiAyLjc3Yy4xLjE4LjMxLjI0LjQ5LjE4bDEuOTktLjhjLjQyLjMyLjg2LjU4IDEuMzUuNzhsLjMgMi4xMmMuMDQuMi4yLjM0LjQuMzRoMy4yYy4yIDAgLjM3LS4xNC4zOS0uMzRsLjMtMi4xMmMuNDktLjIuOTQtLjQ3IDEuMzUtLjc4bDEuOTkuOGMuMTguMDcuMzkgMCAuNDktLjE4bDEuNi0yLjc3Yy4xLS4xOC4wNi0uMzktLjEtLjUxbC0xLjY3LTEuMzJ6TTEwIDEzYy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3pcIixcclxuICAgIFN5bmNBbHQ6IFwiTTIyIDhsLTQtNHYzSDN2MmgxNXYzbDQtNHpNMiAxNmw0IDR2LTNoMTV2LTJINnYtM2wtNCA0elwiLFxyXG4gICAgU3BvcnRzRXNwb3J0czogXCJtMjEuNTggMTYuMDktMS4wOS03LjY2QzIwLjIxIDYuNDYgMTguNTIgNSAxNi41MyA1SDcuNDdDNS40OCA1IDMuNzkgNi40NiAzLjUxIDguNDNsLTEuMDkgNy42NkMyLjIgMTcuNjMgMy4zOSAxOSA0Ljk0IDE5Yy42OCAwIDEuMzItLjI3IDEuOC0uNzVMOSAxNmg2bDIuMjUgMi4yNWMuNDguNDggMS4xMy43NSAxLjguNzUgMS41NiAwIDIuNzUtMS4zNyAyLjUzLTIuOTFNMTEgMTFIOXYySDh2LTJINnYtMWgyVjhoMXYyaDJ6bTQtMWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxbTIgM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxXCIsXHJcbiAgICBUcmVuZGluZ0ZsYXQ6IFwiTTIyIDEybC00LTR2M0gzdjJoMTV2M3pcIixcclxuICAgIFdhcm5pbmc6IFwiTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHpcIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IElDT04gPSBsaWtlQXIobWF0ZXJpYWxJb0ljb25zU3ZnUGF0aCkubWFwKHN2Z1RleHQgPT4gKCkgPT5cclxuICAgIDxTdmdJY29uPjxwYXRoIGQ9e3N2Z1RleHR9IC8+PC9TdmdJY29uPlxyXG4pLnBsYWluKCk7XHJcblxyXG5leHBvcnQgdHlwZSBTdHlsZXMgPSBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xyXG5cclxuZXhwb3J0IHR5cGUgT25VcGRhdGU8VD4gPSAoZGF0YTogVCkgPT4gdm9pZFxyXG5cclxuZXhwb3J0IHR5cGUgSW5wdXRUeXBlcyA9ICdkYXRlJyB8ICdudW1iZXInIHwgJ3RlbCcgfCAndGV4dCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRhcHRhclRpcG9WYXJDYXNpbGxlcm8oY2FzaWxsZXJvRGF0YVR5cGU6IFRpcG9WYXJpYWJsZXMgfCAnb3BjaW9uZXMnIHwgJ3NpX25vJyk6IElucHV0VHlwZXMge1xyXG4gICAgY29uc3QgYWRhcHRlcjogeyBba2V5IGluIFRpcG9WYXJpYWJsZXMgfCAnb3BjaW9uZXMnIHwgJ3NpX25vJ106IElucHV0VHlwZXMgfSA9IHtcclxuICAgICAgICAnb3BjaW9uZXMnOiAnbnVtYmVyJyxcclxuICAgICAgICAnc2lfbm8nOiAnbnVtYmVyJyxcclxuICAgICAgICAnbnVtZXJvJzogJ251bWJlcicsXHJcbiAgICAgICAgJ2hvcmEnOiAndGVsJyxcclxuICAgICAgICAnaG9yYXMnOiAnbnVtYmVyJyxcclxuICAgICAgICAndGV4dG8nOiAndGV4dCcsXHJcbiAgICAgICAgJ2ZlY2hhJzogJ3RleHQnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWRhcHRlcltjYXNpbGxlcm9EYXRhVHlwZV1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvVG9wID0gKCkgPT4ge1xyXG4gICAgd2luZG93LnNjcm9sbCh7IGJlaGF2aW9yOiAnc21vb3RoJywgdG9wOiAwLCBsZWZ0OiAwIH0pXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XHJcbiAgICB3aW5kb3cuc2Nyb2xsKHsgYmVoYXZpb3I6ICdzbW9vdGgnLCB0b3A6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0IC0gd2luZG93LmlubmVySGVpZ2h0LCBsZWZ0OiAwIH0pXHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNjcm9sbFRvcChwcm9wczogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3RFbGVtZW50IH0pIHtcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHByb3BzO1xyXG4gICAgLy9jb25zdCBjbGFzc2VzID0gdXNlU3R5bGVzU2Nyb2xsVG9wKCk7XHJcbiAgICAvLyBOb3RlIHRoYXQgeW91IG5vcm1hbGx5IHdvbid0IG5lZWQgdG8gc2V0IHRoZSB3aW5kb3cgcmVmIGFzIHVzZVNjcm9sbFRyaWdnZXJcclxuICAgIC8vIHdpbGwgZGVmYXVsdCB0byB3aW5kb3cuXHJcbiAgICAvLyBUaGlzIGlzIG9ubHkgYmVpbmcgc2V0IGhlcmUgYmVjYXVzZSB0aGUgZGVtbyBpcyBpbiBhbiBpZnJhbWUuXHJcbiAgICBjb25zdCB0cmlnZ2VyID0gdXNlU2Nyb2xsVHJpZ2dlcih7XHJcbiAgICAgICAgZGlzYWJsZUh5c3RlcmVzaXM6IHRydWUsXHJcbiAgICAgICAgdGhyZXNob2xkOiAxMDAsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPFpvb20gaW49e3RyaWdnZXJ9PlxyXG4gICAgICAgICAgICA8ZGl2IG9uQ2xpY2s9e3Njcm9sbFRvVG9wfSByb2xlPVwicHJlc2VudGF0aW9uXCIgLypjbGFzc05hbWU9e2NsYXNzZXMucm9vdH0qLz5cclxuICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9ab29tPlxyXG4gICAgKTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRm9jdXNPcHRzID0ge1xyXG4gICAgbW92ZVRvRWxlbWVudDogYm9vbGVhblxyXG4gICAgbW92ZUJlaGF2aW9yPzogJ2F1dG8nIHwgJ3Ntb290aCdcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzVG9JZChpZDogc3RyaW5nLCBvcHRzOiBGb2N1c09wdHMsIGNiPzogKGU6IEhUTUxFbGVtZW50KSA9PiB2b2lkKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgIHZhciBwYWRyZSA9IGVsZW1lbnQ7XHJcbiAgICB3aGlsZSAocGFkcmUgJiYgcGFkcmUuY2xhc3NOYW1lICE9ICdwcmVndW50YScgJiYgcGFkcmUgIT0gZG9jdW1lbnQuYm9keSkgcGFkcmUgPSBwYWRyZS5wYXJlbnRFbGVtZW50O1xyXG4gICAgaWYgKHBhZHJlICYmIHBhZHJlLmNsYXNzTmFtZSA9PSAncHJlZ3VudGEnKSBlbGVtZW50ID0gcGFkcmU7XHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgIGlmIChjYikge1xyXG4gICAgICAgICAgICBjYihlbGVtZW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIGlmIChvcHRzLm1vdmVUb0VsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoeyBiZWhhdmlvcjogb3B0cy5tb3ZlQmVoYXZpb3IgfHwgJ2F1dG8nLCB0b3A6IHdpbmRvdy5zY3JvbGxZIC0gMTAwLCBsZWZ0OiAwIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElEaXNwYXRjaGVycyA9IHsgUkVTRVRfT1BDSU9ORVM6IEZ1bmN0aW9uIH07XHJcblxyXG5mdW5jdGlvbiBnZXRCYWRnZVN0eWxlKGVzdGFkbzogc3RyaW5nKTogUmVhY3QuQ1NTUHJvcGVydGllcyB7XHJcbiAgICBjb25zdCBiYXNlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xyXG4gICAgICAgIHBhZGRpbmc6ICcycHggNnB4JyxcclxuICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxyXG4gICAgICAgIGZvbnRTaXplOiAnMTFweCcsXHJcbiAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxyXG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxyXG4gICAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnXHJcbiAgICB9O1xyXG4gICAgaWYgKGVzdGFkbyA9PT0gJ29rJykgcmV0dXJuIHsgLi4uYmFzZSwgYmFja2dyb3VuZENvbG9yOiAnI2M2ZjZkNScsIGNvbG9yOiAnIzIyNTQzZCcgfTtcclxuICAgIGlmIChlc3RhZG8gPT09ICdpbmNvbXBsZXRvJyB8fCBlc3RhZG8gPT09ICdjb24gcHJvYmxlbWFzJykgcmV0dXJuIHsgLi4uYmFzZSwgYmFja2dyb3VuZENvbG9yOiAnI2ZlZWJjOCcsIGNvbG9yOiAnIzc0NDIxMCcgfTtcclxuICAgIHJldHVybiB7IC4uLmJhc2UsIGJhY2tncm91bmRDb2xvcjogJyNlZGYyZjcnLCBjb2xvcjogJyM0YTU1NjgnIH07XHJcbn1cclxuaW50ZXJmYWNlIFJlbmRlcml6YWRvckpTT05Qcm9wcyB7XHJcbiAgICBkYXRvczogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICAgIG5pdmVsPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUmVuZGVyaXphZG9ySlNPTjogUmVhY3QuRkM8UmVuZGVyaXphZG9ySlNPTlByb3BzPiA9ICh7IGRhdG9zLCBuaXZlbCA9IDAgfSkgPT4ge1xyXG5cclxuICAgIGNvbnN0IGNsYXZlc0ZpbHRyYWRhcyA9IE9iamVjdC5rZXlzKGRhdG9zKS5maWx0ZXIoXHJcbiAgICAgICAgY2xhdmUgPT4gIWNsYXZlLnN0YXJ0c1dpdGgoJyQnKSAmJiBjbGF2ZSAhPT0gJ3RpbWVzdGFtcEVzdHJ1Y3R1cmEnXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nTGVmdDogbml2ZWwgPiAwID8gJzE2cHgnIDogJzBweCcgfX0+XHJcbiAgICAgICAgICAgIHtjbGF2ZXNGaWx0cmFkYXMubWFwKGNsYXZlID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbG9yID0gZGF0b3NbY2xhdmVdO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIERFVEVDQ0nDk04gREUgU1VCLVVOSURBREVTIERFIEFOw4FMSVNJUyAoaG9nYXJlcywgcGVyc29uYXMsIGV0Yy4pXHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWxvcikgJiYgdmFsb3IubGVuZ3RoID4gMCAmJiB0eXBlb2YgdmFsb3JbMF0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjbGF2ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAnMTJweCAwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJMZWZ0OiAnNHB4IHNvbGlkICMzMTgyY2UnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmN2ZhZmMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzAgNnB4IDZweCAwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnOHB4IDEycHgnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogVMOtdHVsbyBkZSBsYSBVQSAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnLCBjb2xvcjogJyMyYjZjYjAnLCBmb250U2l6ZTogJzEzcHgnLCB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJywgbWFyZ2luQm90dG9tOiAnNnB4JyB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmlkYWQgZGUgQW7DoWxpc2lzOiB7Y2xhdmV9ICh7dmFsb3IubGVuZ3RofSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWxvci5tYXAoKHJlZ2lzdHJvLCBmaWxhSW5kZXgpID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17ZmlsYUluZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBmaWxhSW5kZXggPCB2YWxvci5sZW5ndGggLSAxID8gJzEwcHgnIDogJzAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1RvcDogZmlsYUluZGV4ID4gMCA/ICc2cHgnIDogJzAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyVG9wOiBmaWxhSW5kZXggPiAwID8gJzFweCBkYXNoZWQgI2UyZThmMCcgOiAnbm9uZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZW5kZXJpemFkb3JKU09OIGRhdG9zPXtyZWdpc3Ryb30gbml2ZWw9e25pdmVsICsgMX0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIFNpIHBvciBsYXMgZHVkYXMgZXMgdW4gb2JqZXRvIGRpcmVjdG8gcXVlIG5vIGVzIGFycmF5LCBsbyBzYWx0ZWFtb3NcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsb3IgPT09ICdvYmplY3QnICYmIHZhbG9yICE9PSBudWxsKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBWQVJJQUJMRVMgRVNUw4FOREFSIChDbGF2ZSB5IHZhbG9yIGp1bnRvcylcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NsYXZlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4V3JhcDogJ3dyYXAnLCAvLyBQb3Igc2kgZWwgdmFsb3IgZXMgbXV5IGxhcmdvLCBxdWUgYmFqZSBsaW1waW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICc0cHggMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzEzcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAnMS40J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIENsYXZlOiBhaG9yYSBzaW4gYW5jaG8gZmlqbywgc2UgYWRhcHRhIGFsIHRleHRvICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGNvbG9yOiAnIzRhNTU2OCcsIGZvbnRXZWlnaHQ6IDUwMCwgbWFyZ2luUmlnaHQ6ICc2cHgnIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NsYXZlfTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7LyogVmFsb3I6IHBlZ2FkbyBpbm1lZGlhdGFtZW50ZSBhIGxhIGNsYXZlICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGNvbG9yOiAnIzFhMjAyYycsIGZvbnRXZWlnaHQ6IDYwMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbGF2ZS5zdGFydHNXaXRoKCdyZXN1bWVuRXN0YWRvJykgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e2dldEJhZGdlU3R5bGUoU3RyaW5nKHZhbG9yKSl9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7U3RyaW5nKHZhbG9yKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyh2YWxvciA/PyAnJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFJlc2V0ZXJGb3JtKHByb3BzOiB7IG9uVHJ5QWdhaW46ICgpID0+IHZvaWQsIGRpc3BhdGNoZXJzOiBJRGlzcGF0Y2hlcnMsIG1lbnNhamU6IHN0cmluZyB9KSB7XHJcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XHJcbiAgICByZXR1cm4gPD5cclxuICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHByb3BzLmRpc3BhdGNoZXJzLlJFU0VUX09QQ0lPTkVTKHt9KSk7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5vblRyeUFnYWluKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgPntwcm9wcy5tZW5zYWplfTwvQnV0dG9uPlxyXG4gICAgPC8+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVuZGVyQW5kQ2FwdHVyZUVycm9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFxyXG4gICAgeyBkaXNwYXRjaGVyczogSURpc3BhdGNoZXJzLCBtZW5zYWplUmV0b3Jubzogc3RyaW5nIH0sXHJcbiAgICB7IGhhc0Vycm9yOiBib29sZWFuLCBlcnJvcjogRXJyb3IgfCB7fSwgaW5mbz86IGFueSB9XHJcbj4ge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHM6IHsgZGlzcGF0Y2hlcnM6IElEaXNwYXRjaGVycywgbWVuc2FqZVJldG9ybm86IHN0cmluZyB9KSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IGhhc0Vycm9yOiBmYWxzZSwgZXJyb3I6IHt9IH07XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBjb21wb25lbnREaWRDYXRjaChlcnJvcjogRXJyb3IsIGluZm86IGFueSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBoYXNFcnJvcjogdHJ1ZSwgZXJyb3IsIGluZm8gfSk7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSByZW5kZXIoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuaGFzRXJyb3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+XHJcbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT5IdWJvIHVuIHByb2JsZW1hIGVuIGxhIHByb2dyYW1hY2nDs24gZGUgbGEgcGFudGFsbGEuPC9UeXBvZ3JhcGh5PlxyXG4gICAgICAgICAgICAgICAgPFJlc2V0ZXJGb3JtIGRpc3BhdGNoZXJzPXt0aGlzLnByb3BzLmRpc3BhdGNoZXJzfSBtZW5zYWplPXt0aGlzLnByb3BzLm1lbnNhamVSZXRvcm5vfSBvblRyeUFnYWluPXsoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBoYXNFcnJvcjogZmFsc2UsIGVycm9yOiB7fSB9KVxyXG4gICAgICAgICAgICAgICAgfSAvPlxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwib3V0bGluZWRcIiBjb2xvcj1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2dvdG9TaW5jcm9uaXphcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+aXIgYSBsYSBwYW50YWxsYSBkZSBzaW5jcm9uaXphY2nDs248L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5PkVycm9yIGRldGVjdGFkbzo8L1R5cG9ncmFwaHk+XHJcbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57ZXhwZWN0ZWQodGhpcy5zdGF0ZS5lcnJvcikubWVzc2FnZX08L1R5cG9ncmFwaHk+XHJcbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57SlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5pbmZvKX08L1R5cG9ncmFwaHk+XHJcbiAgICAgICAgICAgIDwvPjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW47XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IHRoZW1lID0gY3JlYXRlVGhlbWUoe1xyXG4gICAgY29tcG9uZW50czoge1xyXG4gICAgICAgIE11aUNzc0Jhc2VsaW5lOiB7XHJcbiAgICAgICAgICAgIHN0eWxlT3ZlcnJpZGVzOiB7XHJcbiAgICAgICAgICAgICAgICBodG1sOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgV2Via2l0Rm9udFNtb290aGluZzogJ2F1dG8nLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgfSxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXNlT25saW5lU3RhdHVzKCkge1xyXG4gICAgY29uc3QgW29ubGluZSwgc2V0T25saW5lXSA9IHVzZVN0YXRlKHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKTtcclxuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiBzZXRPbmxpbmUod2luZG93Lm5hdmlnYXRvci5vbkxpbmUpO1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvbmxpbmUnLCBoYW5kbGVyKTtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIGhhbmRsZXIpO1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvbmxpbmUnLCBoYW5kbGVyKTtcclxuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29mZmxpbmUnLCBoYW5kbGVyKTtcclxuICAgICAgICB9O1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIHJldHVybiBvbmxpbmU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBSZW5kZXJQcmluY2lwYWw8VCwgVDIgZXh0ZW5kcyBBY3Rpb24+KHByb3BzOiB7IHN0b3JlOiBTdG9yZTxULCBUMj4sIGRpc3BhdGNoZXJzOiBJRGlzcGF0Y2hlcnMsIG1lbnNhamVSZXRvcm5vOiBzdHJpbmcsIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xyXG4gICAgcmV0dXJuIDxSZWFjdC5TdHJpY3RNb2RlPlxyXG4gICAgICAgIDxQcm92aWRlciBzdG9yZT17cHJvcHMuc3RvcmV9PlxyXG4gICAgICAgICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxyXG4gICAgICAgICAgICAgICAgPFJlbmRlckFuZENhcHR1cmVFcnJvciBkaXNwYXRjaGVycz17cHJvcHMuZGlzcGF0Y2hlcnN9IG1lbnNhamVSZXRvcm5vPXtwcm9wcy5tZW5zYWplUmV0b3Jub30+XHJcbiAgICAgICAgICAgICAgICAgICAgPENzc0Jhc2VsaW5lIC8+XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxyXG4gICAgICAgICAgICAgICAgPC9SZW5kZXJBbmRDYXB0dXJlRXJyb3I+XHJcbiAgICAgICAgICAgIDwvVGhlbWVQcm92aWRlcj5cclxuICAgICAgICA8L1Byb3ZpZGVyPlxyXG4gICAgPC9SZWFjdC5TdHJpY3RNb2RlPlxyXG59XHJcblxyXG5leHBvcnQgY29uc3Qgbm9tYnJlTWVzZXMgPSBbJ2VuZXJvJywgJ2ZlYnJlcm8nLCAnbWFyem8nLCAnYWJyaWwnLCAnbWF5bycsICdqdW5pbycsICdqdWxpbycsICdhZ29zdG8nLCAnc2VwdGllbWJyZScsICdvY3R1YnJlJywgJ25vdmllbWJyZScsICdkaWNpZW1icmUnXTtcclxuZXhwb3J0IGNvbnN0IG5vbWJyZURpYXMgPSBbJ2RvbWluZ28nLCAnbHVuZXMnLCAnbWFydGVzJywgJ21pw6lyY29sZXMnLCAnanVldmVzJywgJ3ZpZXJuZXMnLCAnc8OhYmFkbyddO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWFyRmVjaGFEZXNkZVRleHRvSVNPKHRleHRvOiBzdHJpbmcpOiBEYXRlIHtcclxuICAgIHZhciBwYXJ0ZXMgPSB0ZXh0by5zcGxpdCgvWy8tXS9nKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShOdW1iZXIocGFydGVzWzBdKSwgTnVtYmVyKHBhcnRlc1sxXSkgLSAxLCBOdW1iZXIocGFydGVzWzJdKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZXNSZWZlcmVuY2lhKGZlY2hhOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgdmFyIGQgPSBjcmVhckZlY2hhRGVzZGVUZXh0b0lTTyhmZWNoYSk7XHJcbiAgICByZXR1cm4gbm9tYnJlTWVzZXNbZC5nZXRNb250aCgpXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZlY2hhUmVmZXJlbmNpYShmZWNoYTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHZhciBkID0gY3JlYXJGZWNoYURlc2RlVGV4dG9JU08oZmVjaGEpO1xyXG4gICAgcmV0dXJuIGAke25vbWJyZURpYXNbZC5nZXREYXkoKV19ICR7ZC5nZXREYXRlKCl9IGRlICR7bWVzUmVmZXJlbmNpYShmZWNoYSl9YDtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHRleHRvUGFyZW50ZXNjbyA9IFsnSmVmZS9hJywgJ0PDs255dWdlL3BhcmVqYScsICdIaWpvL2EnLCAnSGlqYXN0cm8vYScsICdZZXJubyBvIG51ZXJhJywgJ05pZXRvL2EnLCAnUGFkcmUvbWFkcmUvc3VlZ3JvL2EnLCAnSGVybWFuby9hJywgJ0N1w7FhZG8vYScsICdTb2JyaW5vL2EnLCAnQWJ1ZWxvL2EnLCAnT3RybyBmYW1pbGlhcicsICdPdHJvIG5vIGZhbWlsaWFyJ107XHJcbmV4cG9ydCBjb25zdCB0ZXh0b1BhcmVudGVzY29WY20gPSBbJ1Jlc3BvbmRlbnRlJywgJ0PDs255dWdlL3BhcmVqYScsICdIaWpvL2EnLCAnSGlqYXN0cm8vYScsICdZZXJubyBvIG51ZXJhJywgJ05pZXRvL2EnLCAnUGFkcmUvbWFkcmUvc3VlZ3JvL2EnLCAnSGVybWFuby9hJywgJ0N1w7FhZG8vYScsICdTb2JyaW5vL2EnLCAnQWJ1ZWxvL2EnLCAnT3RybyBmYW1pbGlhcicsICdPdHJvIG5vIGZhbWlsaWFyJ107XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gb2J0ZW5lclRleHRvUGFyZW50ZXNjbyhwNDogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgb3BlcmF0aXZvPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChwNCA9PSBudWxsIHx8IHA0IDwgMSkgcmV0dXJuICcuLi4uLi4uLic7XHJcbiAgICBjb25zdCBlc1ZjbSA9IG9wZXJhdGl2byA/IG9wZXJhdGl2by5zdGFydHNXaXRoKCd2Y20nKSA6IGZhbHNlO1xyXG4gICAgY29uc3QgbGlzdGEgPSBlc1ZjbSA/IHRleHRvUGFyZW50ZXNjb1ZjbSA6IHRleHRvUGFyZW50ZXNjbztcclxuICAgIHJldHVybiBsaXN0YVtwNCAtIDFdIHx8ICcuLi4uLi4uLic7XHJcbn1cclxuXHJcblxyXG5cclxuIl19
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWdlbmVyYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvcmVuZGVyLWdlbmVyYWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTBFQSwwREFXQztJQVdELDhCQWlCQztJQU9ELDhCQWdCQztJQTBHRCxrQ0FVQztJQThDRCwwQ0FjQztJQUVELDBDQVdDO0lBS0QsMERBR0M7SUFFRCxzQ0FHQztJQUVELDBDQUdDO0lBS0Qsd0RBS0M7SUFqV0QsK0JBQStCO0lBQy9CLGlDQUE0QztJQUM1Qyw2Q0FBb0Q7SUFDcEQsa0NBQW1DO0lBRW5DLDJDQUFzQztJQUV0Qyw0Q0FJdUI7SUFJdkIscURBQXFEO0lBQ3hDLFFBQUEsc0JBQXNCLEdBQUc7UUFDbEMsR0FBRyxFQUFFLHFDQUFxQztRQUMxQyxTQUFTLEVBQUUsOERBQThEO1FBQ3pFLFVBQVUsRUFBRSxnT0FBZ087UUFDNU8sY0FBYyxFQUFFLDBMQUEwTDtRQUMxTSxLQUFLLEVBQUUsbURBQW1EO1FBQzFELDRCQUE0QixFQUFFLDRGQUE0RjtRQUMxSCxnQkFBZ0IsRUFBRSx1SkFBdUo7UUFDekssV0FBVyxFQUFFLHdLQUF3SztRQUNyTCxZQUFZLEVBQUUsMEtBQTBLO1FBQ3hMLEtBQUssRUFBRSx1R0FBdUc7UUFDOUcsS0FBSyxFQUFFLHVHQUF1RztRQUM5RyxTQUFTLEVBQUMsNFhBQTRYO1FBQ3RZLElBQUksRUFBRSw0RkFBNEY7UUFDbEcsTUFBTSxFQUFFLHFKQUFxSjtRQUM3SixNQUFNLEVBQUUsK0VBQStFO1FBQ3ZGLGFBQWEsRUFBRSw2TUFBNk07UUFDNU4sYUFBYSxFQUFFLHlGQUF5RjtRQUN4RyxXQUFXLEVBQUUsZ0lBQWdJO1FBQzdJLFlBQVksRUFBRSxtV0FBbVc7UUFDalgsU0FBUyxFQUFFLHNLQUFzSztRQUNqTCxVQUFVLEVBQUUsZ0RBQWdEO1FBQzVELFVBQVUsRUFBRSw4Q0FBOEM7UUFDMUQsaUJBQWlCLEVBQUUsa0dBQWtHO1FBQ3JILE9BQU8sRUFBRSx5QkFBeUI7UUFDbEMsZUFBZSxFQUFFLG1FQUFtRTtRQUNwRixJQUFJLEVBQUUsa0dBQWtHO1FBQ3hHLGVBQWUsRUFBRSxnREFBZ0Q7UUFDakUsaUJBQWlCLEVBQUUseURBQXlEO1FBQzVFLEtBQUssRUFBRSxzSUFBc0k7UUFDN0ksUUFBUSxFQUFFLG1PQUFtTztRQUM3TyxRQUFRLEVBQUUsMEpBQTBKO1FBQ3BLLElBQUksRUFBRSwrQ0FBK0M7UUFDckQsVUFBVSxFQUFFLDhDQUE4QztRQUMxRCxjQUFjLEVBQUUsZ0RBQWdEO1FBQ2hFLE9BQU8sRUFBRSxpTUFBaU07UUFDMU0sa0JBQWtCLEVBQUUscWFBQXFhO1FBQ3piLElBQUksRUFBRSxnSkFBZ0o7UUFDdEosTUFBTSxFQUFFLGdFQUFnRTtRQUN4RSxNQUFNLEVBQUUsNE9BQTRPO1FBQ3BQLElBQUksRUFBRSx1Q0FBdUM7UUFDN0MsUUFBUSxFQUFFLDRuQkFBNG5CO1FBQ3RvQixPQUFPLEVBQUUseURBQXlEO1FBQ2xFLGFBQWEsRUFBRSxzVkFBc1Y7UUFDclcsWUFBWSxFQUFFLHlCQUF5QjtRQUN2QyxPQUFPLEVBQUUsb0RBQW9EO0tBQ2hFLENBQUE7SUFFWSxRQUFBLElBQUksR0FBRyxNQUFNLENBQUMsOEJBQXNCLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FDbkUsb0JBQUMsa0JBQU87UUFBQyw4QkFBTSxDQUFDLEVBQUUsT0FBTyxHQUFJLENBQVUsQ0FDMUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQVFWLFNBQWdCLHVCQUF1QixDQUFDLGlCQUF1RDtRQUMzRixNQUFNLE9BQU8sR0FBa0U7WUFDM0UsVUFBVSxFQUFFLFFBQVE7WUFDcEIsT0FBTyxFQUFFLFFBQVE7WUFDakIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsUUFBUTtZQUNqQixPQUFPLEVBQUUsTUFBTTtZQUNmLE9BQU8sRUFBRSxNQUFNO1NBQ2xCLENBQUE7UUFDRCxPQUFPLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFTSxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUU7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMxRCxDQUFDLENBQUM7SUFGVyxRQUFBLFdBQVcsZUFFdEI7SUFFSyxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7UUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDeEcsQ0FBQyxDQUFDO0lBRlcsUUFBQSxjQUFjLGtCQUV6QjtJQUdGLFNBQWdCLFNBQVMsQ0FBQyxLQUF1QztRQUM3RCxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHVDQUF1QztRQUN2Qyw4RUFBOEU7UUFDOUUsMEJBQTBCO1FBQzFCLGdFQUFnRTtRQUNoRSxNQUFNLE9BQU8sR0FBRyxJQUFBLDJCQUFnQixFQUFDO1lBQzdCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsU0FBUyxFQUFFLEdBQUc7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUNILG9CQUFDLGVBQUksSUFBQyxFQUFFLEVBQUUsT0FBTztZQUNiLDZCQUFLLE9BQU8sRUFBRSxtQkFBVyxFQUFFLElBQUksRUFBQyxjQUFjLENBQUMsNEJBQTRCLElBQ3RFLFFBQVEsQ0FDUCxDQUNILENBQ1YsQ0FBQztJQUNOLENBQUM7SUFPRCxTQUFnQixTQUFTLENBQUMsRUFBVSxFQUFFLElBQWUsRUFBRSxFQUE2QjtRQUNoRixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUNwQixPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLFVBQVUsSUFBSSxLQUFLLElBQUksUUFBUSxDQUFDLElBQUk7WUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUNyRyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLFVBQVU7WUFBRSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzVELElBQUksT0FBTyxFQUFFLENBQUM7WUFDVixJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNMLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtnQkFDaEcsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUlELFNBQVMsYUFBYSxDQUFDLE1BQWM7UUFDakMsTUFBTSxJQUFJLEdBQXdCO1lBQzlCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLGFBQWEsRUFBRSxXQUFXO1NBQzdCLENBQUM7UUFDRixJQUFJLE1BQU0sS0FBSyxJQUFJO1lBQUUsdUNBQVksSUFBSSxLQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsSUFBRztRQUN0RixJQUFJLE1BQU0sS0FBSyxZQUFZLElBQUksTUFBTSxLQUFLLGVBQWU7WUFBRSx1Q0FBWSxJQUFJLEtBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxJQUFHO1FBQzVILHVDQUFZLElBQUksS0FBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLElBQUc7SUFDckUsQ0FBQztJQU1NLE1BQU0sZ0JBQWdCLEdBQW9DLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFFdEYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQzdDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxxQkFBcUIsQ0FDckUsQ0FBQztRQUVGLE9BQU8sQ0FDSCw2QkFBSyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFDbEQsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFM0Isa0VBQWtFO1lBQ2xFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDM0UsT0FBTyxDQUNILDZCQUNJLEdBQUcsRUFBRSxLQUFLLEVBQ1YsS0FBSyxFQUFFO3dCQUNILE1BQU0sRUFBRSxRQUFRO3dCQUNoQixVQUFVLEVBQUUsbUJBQW1CO3dCQUMvQixlQUFlLEVBQUUsU0FBUzt3QkFDMUIsWUFBWSxFQUFFLGFBQWE7d0JBQzNCLE9BQU8sRUFBRSxVQUFVO3FCQUN0QjtvQkFHRCw2QkFBSyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUU7O3dCQUM5RixLQUFLOzt3QkFBSSxLQUFLLENBQUMsTUFBTTs0QkFDeEM7b0JBRUwsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQ2hDLDZCQUNJLEdBQUcsRUFBRSxTQUFTLEVBQ2QsS0FBSyxFQUFFOzRCQUNILFlBQVksRUFBRSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRzs0QkFDekQsVUFBVSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRzs0QkFDdkMsU0FBUyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxNQUFNO3lCQUMzRDt3QkFFRCxvQkFBQyx3QkFBZ0IsSUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFJLENBQ3JELENBQ1QsQ0FBQyxDQUNBLENBQ1QsQ0FBQztZQUNOLENBQUM7WUFFRCxzRUFBc0U7WUFDdEUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFN0QsNENBQTRDO1lBQzVDLE9BQU8sQ0FDSCw2QkFDSSxHQUFHLEVBQUUsS0FBSyxFQUNWLEtBQUssRUFBRTtvQkFDSCxPQUFPLEVBQUUsTUFBTTtvQkFDZixhQUFhLEVBQUUsS0FBSztvQkFDcEIsUUFBUSxFQUFFLE1BQU0sRUFBRSxnREFBZ0Q7b0JBQ2xFLE9BQU8sRUFBRSxPQUFPO29CQUNoQixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLFVBQVUsRUFBRSxLQUFLO2lCQUNwQjtnQkFHRCw2QkFBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtvQkFDaEUsS0FBSzt3QkFDSjtnQkFHTiw2QkFBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFDNUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDakMsOEJBQU0sS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFDcEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUNYLENBQ1YsQ0FBQyxDQUFDLENBQUMsQ0FDQSxNQUFNLENBQUMsS0FBSyxhQUFMLEtBQUssY0FBTCxLQUFLLEdBQUksRUFBRSxDQUFDLENBQ3RCLENBQ0MsQ0FDSixDQUNULENBQUM7UUFDTixDQUFDLENBQUMsQ0FDQSxDQUNULENBQUM7SUFDTixDQUFDLENBQUM7SUFsRlcsUUFBQSxnQkFBZ0Isb0JBa0YzQjtJQUVGLFNBQWdCLFdBQVcsQ0FBQyxLQUE2RTtRQUNyRyxNQUFNLFFBQVEsR0FBRyxJQUFBLHlCQUFXLEdBQUUsQ0FBQztRQUMvQixPQUFPO1lBQ0gsb0JBQUMsaUJBQU0sSUFBQyxPQUFPLEVBQUMsVUFBVSxFQUN0QixPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNWLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUMvQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3ZCLENBQUMsSUFDSCxLQUFLLENBQUMsT0FBTyxDQUFVLENBQzFCLENBQUM7SUFDUixDQUFDO0lBRUQsTUFBYSxxQkFBc0IsU0FBUSxLQUFLLENBQUMsU0FHaEQ7UUFDRyxZQUFZLEtBQTREO1lBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNoRCxDQUFDO1FBQ1EsaUJBQWlCLENBQUMsS0FBWSxFQUFFLElBQVM7WUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNRLE1BQU07WUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU87b0JBQ0gsb0JBQUMscUJBQVUsbUVBQWlFO29CQUM1RSxvQkFBQyxXQUFXLElBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQ25HLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUM3QztvQkFDSixvQkFBQyxpQkFBTSxJQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLFdBQVcsRUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRTs0QkFDVixvQkFBb0I7d0JBQ3hCLENBQUMsOENBQ3VDO29CQUM1QyxvQkFBQyxxQkFBVSwyQkFBOEI7b0JBQ3pDLG9CQUFDLHFCQUFVLFFBQUUsSUFBQSxxQkFBUSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFjO29CQUM3RCxvQkFBQyxxQkFBVSxRQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBYyxDQUMzRCxDQUFDO1lBQ1IsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsQ0FBQztLQUNKO0lBOUJELHNEQThCQztJQUVELE1BQU0sS0FBSyxHQUFHLElBQUEsc0JBQVcsRUFBQztRQUN0QixVQUFVLEVBQUU7WUFDUixjQUFjLEVBQUU7Z0JBQ1osY0FBYyxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDRixtQkFBbUIsRUFBRSxNQUFNO3FCQUM5QjtpQkFDSjthQUNKO1NBQ0o7S0FDSixDQUFDLENBQUM7SUFFSCxTQUFnQixlQUFlO1FBQzNCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUQsSUFBQSxpQkFBUyxFQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM1QyxPQUFPLEdBQUcsRUFBRTtnQkFDUixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QyxNQUFNLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELENBQUMsQ0FBQztRQUNOLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxTQUFnQixlQUFlLENBQXVCLEtBQTRHO1FBQzlKLE9BQU8sb0JBQUMsS0FBSyxDQUFDLFVBQVU7WUFDcEIsb0JBQUMsc0JBQVEsSUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ3hCLG9CQUFDLHdCQUFhLElBQUMsS0FBSyxFQUFFLEtBQUs7b0JBQ3ZCLG9CQUFDLHFCQUFxQixJQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYzt3QkFDdkYsb0JBQUMsc0JBQVcsT0FBRzt3QkFDZCxLQUFLLENBQUMsUUFBUSxDQUNLLENBQ1osQ0FDVCxDQUNJLENBQUE7SUFDdkIsQ0FBQztJQUVZLFFBQUEsV0FBVyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1SSxRQUFBLFVBQVUsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRXJHLFNBQWdCLHVCQUF1QixDQUFDLEtBQWE7UUFDakQsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxTQUFnQixhQUFhLENBQUMsS0FBYTtRQUN2QyxJQUFJLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxPQUFPLG1CQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFNBQWdCLGVBQWUsQ0FBQyxLQUFhO1FBQ3pDLElBQUksQ0FBQyxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxrQkFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBRVksUUFBQSxlQUFlLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNsTixRQUFBLGtCQUFrQixHQUFHLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFdk8sU0FBZ0Isc0JBQXNCLENBQUMsRUFBNkIsRUFBRSxTQUFrQjtRQUNwRixJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxHQUFHLENBQUM7WUFBRSxPQUFPLFVBQVUsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM5RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLDBCQUFrQixDQUFDLENBQUMsQ0FBQyx1QkFBZSxDQUFDO1FBQzNELE9BQU8sS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUM7SUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFByb3ZpZGVyLCB1c2VEaXNwYXRjaCB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xyXG5pbXBvcnQgbGlrZUFyID0gcmVxdWlyZShcImxpa2UtYXJcIik7XHJcblxyXG5pbXBvcnQgeyBleHBlY3RlZCB9IGZyb20gXCJjYXN0LWVycm9yXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgQ3NzQmFzZWxpbmUsIFN2Z0ljb24sIFRoZW1lUHJvdmlkZXIsIFR5cG9ncmFwaHksIFpvb20sIHVzZVNjcm9sbFRyaWdnZXIsIGNyZWF0ZVRoZW1lLFxyXG4gICAgTWVudSxcclxuICAgIEJ1dHRvblxyXG59IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XHJcbmltcG9ydCB7IFN0b3JlLCBBY3Rpb24gfSBmcm9tIFwicmVkdXhcIjtcclxuaW1wb3J0IHsgVGlwb1ZhcmlhYmxlcyB9IGZyb20gXCIuL3RpcG9zXCI7XHJcblxyXG4vLyBodHRwczovL21hdGVyaWFsLXVpLmNvbS9jb21wb25lbnRzL21hdGVyaWFsLWljb25zL1xyXG5leHBvcnQgY29uc3QgbWF0ZXJpYWxJb0ljb25zU3ZnUGF0aCA9IHtcclxuICAgIEFkZDogXCJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyelwiLFxyXG4gICAgQXJyb3dCYWNrOiBcIk0yMCAxMUg3LjgzbDUuNTktNS41OUwxMiA0bC04IDggOCA4IDEuNDEtMS40MUw3LjgzIDEzSDIwdi0yelwiLFxyXG4gICAgQXNzaWdubWVudDogXCJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTIgMTRIN3YtMmg3djJ6bTMtNEg3di0yaDEwdjJ6bTAtNEg3VjdoMTB2MnpcIixcclxuICAgIEJ1c2luZXNzQ2VudGVyOiBcIk0xMCAxNnYtMUgzLjAxTDMgMTljMCAxLjExLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS44OSAyLTJ2LTRoLTd2MXptMTAtOWgtNC4wMVY1bC0yLTJoLTRsLTIgMnYySDRjLTEuMSAwLTIgLjktMiAydjNjMCAxLjExLjg5IDIgMiAyaDZ2LTJoNHYyaDZjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMm0tNiAwaC00VjVoNHpcIixcclxuICAgIENoZWNrOiBcIk05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXpcIixcclxuICAgIENoZWNrQm94T3V0bGluZUJsYW5rT3V0bGluZWQ6IFwiTTE5IDV2MTRINVY1aDE0bTAtMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCIsXHJcbiAgICBDaGVja0JveE91dGxpbmVkOiBcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6TTE3Ljk5IDlsLTEuNDEtMS40Mi02LjU5IDYuNTktMi41OC0yLjU3LTEuNDIgMS40MSA0IDMuOTl6XCIsXHJcbiAgICBDaGV2cm9uTGVmdDogXCJNMTQuNzEgNi43MWEuOTk1OS45OTU5IDAgMDAtMS40MSAwTDguNzEgMTEuM2MtLjM5LjM5LS4zOSAxLjAyIDAgMS40MWw0LjU5IDQuNTljLjM5LjM5IDEuMDIuMzkgMS40MSAwIC4zOS0uMzkuMzktMS4wMiAwLTEuNDFMMTAuODMgMTJsMy44OC0zLjg4Yy4zOS0uMzkuMzgtMS4wMyAwLTEuNDF6XCIsXHJcbiAgICBDaGV2cm9uUmlnaHQ6IFwiTTkuMjkgNi43MWMtLjM5LjM5LS4zOSAxLjAyIDAgMS40MUwxMy4xNyAxMmwtMy44OCAzLjg4Yy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxLjM5LjM5IDEuMDIuMzkgMS40MSAwbDQuNTktNC41OWMuMzktLjM5LjM5LTEuMDIgMC0xLjQxTDEwLjcgNi43Yy0uMzgtLjM4LTEuMDItLjM4LTEuNDEuMDF6XCIsXHJcbiAgICBDbGVhcjogXCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwiLFxyXG4gICAgQ2xvc2U6IFwiTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnpcIixcclxuICAgIENsb3VkU3luYzpcIk0yMS41IDE0Ljk4Yy0uMDIgMC0uMDMgMC0uMDUuMDFDMjEuMiAxMy4zIDE5Ljc2IDEyIDE4IDEyYy0xLjQgMC0yLjYuODMtMy4xNiAyLjAyQzEzLjI2IDE0LjEgMTIgMTUuNCAxMiAxN2MwIDEuNjYgMS4zNCAzIDMgM2w2LjUtLjAyYzEuMzggMCAyLjUtMS4xMiAyLjUtMi41cy0xLjEyLTIuNS0yLjUtMi41TTEwIDQuMjZ2Mi4wOUM3LjY3IDcuMTggNiA5LjM5IDYgMTJjMCAxLjc3Ljc4IDMuMzQgMiA0LjQ0VjE0aDJ2Nkg0di0yaDIuNzNDNS4wNiAxNi41NCA0IDE0LjQgNCAxMmMwLTMuNzMgMi41NS02Ljg1IDYtNy43NE0yMCA2aC0yLjczYzEuNDMgMS4yNiAyLjQxIDMuMDEgMi42NiA1aC0yLjAyYy0uMjMtMS4zNi0uOTMtMi41NS0xLjkxLTMuNDRWMTBoLTJWNGg2elwiLFxyXG4gICAgQ29kZTogXCJNOS40IDE2LjZMNC44IDEybDQuNi00LjZMOCA2bC02IDYgNiA2IDEuNC0xLjR6bTUuMiAwbDQuNi00LjYtNC42LTQuNkwxNiA2bDYgNi02IDYtMS40LTEuNHpcIixcclxuICAgIENyZWF0ZTogXCJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGEuOTk1OS45OTU5IDAgMDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pcIixcclxuICAgIERlbGV0ZTogXCJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0elwiLFxyXG4gICAgRGVsZXRlRm9yZXZlcjogXCJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyem0yLjQ2LTcuMTJsMS40MS0xLjQxTDEyIDEyLjU5bDIuMTItMi4xMiAxLjQxIDEuNDFMMTMuNDEgMTRsMi4xMiAyLjEyLTEuNDEgMS40MUwxMiAxNS40MWwtMi4xMiAyLjEyLTEuNDEtMS40MUwxMC41OSAxNGwtMi4xMy0yLjEyek0xNS41IDRsLTEtMWgtNWwtMSAxSDV2MmgxNFY0elwiLFxyXG4gICAgRGVsZXRlT3V0bGluZTogXCJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek04IDloOHYxMEg4Vjl6bTcuNS01bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIixcclxuICAgIERlc2NyaXB0aW9uOiBcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTZIOHYtMmg4djJ6bTAtNEg4di0yaDh2MnptLTMtNVYzLjVMMTguNSA5SDEzelwiLFxyXG4gICAgRW1vamlPYmplY3RzOiBcIk0xMiAzYy0uNDYgMC0uOTMuMDQtMS40LjE0LTIuNzYuNTMtNC45NiAyLjc2LTUuNDggNS41Mi0uNDggMi42MS40OCA1LjAxIDIuMjIgNi41Ni40My4zOC42Ni45MS42NiAxLjQ3VjE5YzAgMS4xLjkgMiAyIDJoLjI4Yy4zNS42Ljk4IDEgMS43MiAxczEuMzgtLjQgMS43Mi0xSDE0YzEuMSAwIDItLjkgMi0ydi0yLjMxYzAtLjU1LjIyLTEuMDkuNjQtMS40NkMxOC4wOSAxMy45NSAxOSAxMi4wOCAxOSAxMGMwLTMuODctMy4xMy03LTctN3ptMiAxNmgtNHYtMWg0djF6bTAtMmgtNHYtMWg0djF6bS0xLjUtNS41OVYxNGgtMXYtMi41OUw5LjY3IDkuNTlsLjcxLS43MUwxMiAxMC41bDEuNjItMS42Mi43MS43MS0xLjgzIDEuODJ6XCIsXHJcbiAgICBFeGl0VG9BcHA6IFwiTTEwLjA5IDE1LjU5TDExLjUgMTdsNS01LTUtNS0xLjQxIDEuNDFMMTIuNjcgMTFIM3YyaDkuNjdsLTIuNTggMi41OXpNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2NGgyVjVoMTR2MTRINXYtNEgzdjRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIixcclxuICAgIEV4cGFuZExlc3M6IFwiTTEyIDhsLTYgNiAxLjQxIDEuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0elwiLFxyXG4gICAgRXhwYW5kTW9yZTogXCJNMTYuNTkgOC41OUwxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02elwiLFxyXG4gICAgRm9ybWF0TGluZVNwYWNpbmc6IFwiTTYgN2gyLjVMNSAzLjUgMS41IDdINHYxMEgxLjVMNSAyMC41IDguNSAxN0g2Vjd6bTQtMnYyaDEyVjVIMTB6bTAgMTRoMTJ2LTJIMTB2MnptMC02aDEydi0ySDEwdjJ6XCIsXHJcbiAgICBGb3J3YXJkOiBcIk0xMiA4VjRsOCA4LTggOHYtNEg0Vjh6XCIsXHJcbiAgICBGb3J3YXJkT3V0bGluZWQ6IFwiTTE0IDguODNMMTcuMTcgMTIgMTQgMTUuMTdWMTRINnYtNGg4VjguODNNMTIgNHY0SDR2OGg4djRsOC04LTgtOHpcIixcclxuICAgIEluZm86IFwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTZoMnY2em0wLThoLTJWN2gydjJ6XCIsXHJcbiAgICBLZXlib2FyZEFycm93VXA6IFwiTTcuNDEgMTUuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0bC02LTYtNiA2elwiLFxyXG4gICAgS2V5Ym9hcmRBcnJvd0Rvd246IFwiTTcuNDEgOC41OUwxMiAxMy4xN2w0LjU5LTQuNThMMTggMTBsLTYgNi02LTYgMS40MS0xLjQxelwiLFxyXG4gICAgTGFiZWw6IFwiTTE3LjYzIDUuODRDMTcuMjcgNS4zMyAxNi42NyA1IDE2IDVMNSA1LjAxQzMuOSA1LjAxIDMgNS45IDMgN3YxMGMwIDEuMS45IDEuOTkgMiAxLjk5TDE2IDE5Yy42NyAwIDEuMjctLjMzIDEuNjMtLjg0TDIyIDEybC00LjM3LTYuMTZ6XCIsXHJcbiAgICBMb2NhbEF0bTogXCJNMTEgMTdoMnYtMWgxYy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTFoLTN2LTFoNFY4aC0yVjdoLTJ2MWgtMWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoM3YxSDl2MmgydjF6bTktMTNINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIixcclxuICAgIExvY2F0aW9uOiBcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTdtMCA5LjVjLTEuMzggMC0yLjUtMS4xMi0yLjUtMi41czEuMTItMi41IDIuNS0yLjUgMi41IDEuMTIgMi41IDIuNS0xLjEyIDIuNS0yLjUgMi41XCIsXHJcbiAgICBNZW51OiBcIk0zIDE4aDE4di0ySDN2MnptMC01aDE4di0ySDN2MnptMC03djJoMThWNkgzelwiLFxyXG4gICAgTmF2aWdhdGlvbjogXCJNMTIgMkw0LjUgMjAuMjlsLjcxLjcxTDEyIDE4bDYuNzkgMyAuNzEtLjcxelwiLFxyXG4gICAgTmF2aWdhdGlvbkRvd246IFwiTTEyIDIyTDQuNSAzLjcxbC43MSAtLjcxTDEyIDZsNi43OSAtMyAuNzEgLjcxelwiLFxyXG4gICAgUmVmcmVzaDogXCJNMTcuNjUgNi4zNUMxNi4yIDQuOSAxNC4yMSA0IDEyIDRjLTQuNDIgMC03Ljk5IDMuNTgtNy45OSA4czMuNTcgOCA3Ljk5IDhjMy43MyAwIDYuODQtMi41NSA3LjczLTZoLTIuMDhjLS44MiAyLjMzLTMuMDQgNC01LjY1IDQtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNmMxLjY2IDAgMy4xNC42OSA0LjIyIDEuNzhMMTMgMTFoN1Y0elwiLFxyXG4gICAgUmVtb3ZlU2hvcHBpbmdDYXJ0OiBcIk0yMi43MyAyMi43M0wyLjc3IDIuNzcgMiAybC0uNzMtLjczTDAgMi41NGw0LjM5IDQuMzkgMi4yMSA0LjY2LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmg3LjQ2bDEuMzggMS4zOGMtLjUuMzYtLjgzLjk1LS44MyAxLjYyIDAgMS4xLjg5IDIgMS45OSAyIC42NyAwIDEuMjYtLjMzIDEuNjItLjg0TDIxLjQ2IDI0bDEuMjctMS4yN3pNNy40MiAxNWMtLjE0IDAtLjI1LS4xMS0uMjUtLjI1bC4wMy0uMTIuOS0xLjYzaDIuMzZsMiAySDcuNDJ6bTguMTMtMmMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5Yy4wOC0uMTQuMTItLjMxLjEyLS40OCAwLS41NS0uNDUtMS0xLTFINi41NGw5LjAxIDl6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6XCIsXHJcbiAgICBTYXZlOiBcIk0xNyAzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3bC00LTR6bS01IDE2Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3ptMy0xMEg1VjVoMTB2NHpcIixcclxuICAgIFNjaG9vbDogXCJNNSAxMy4xOHY0TDEyIDIxbDctMy44MnYtNEwxMiAxN3pNMTIgMyAxIDlsMTEgNiA5LTQuOTFWMTdoMlY5elwiLFxyXG4gICAgU2VhcmNoOiBcIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwiLFxyXG4gICAgU2VuZDogXCJNMi4wMSAyMUwyMyAxMiAyLjAxIDMgMiAxMGwxNSAyLTE1IDJ6XCIsXHJcbiAgICBTZXR0aW5nczogXCJNMTUuOTUgMTAuNzhjLjAzLS4yNS4wNS0uNTEuMDUtLjc4cy0uMDItLjUzLS4wNi0uNzhsMS42OS0xLjMyYy4xNS0uMTIuMTktLjM0LjEtLjUxbC0xLjYtMi43N2MtLjEtLjE4LS4zMS0uMjQtLjQ5LS4xOGwtMS45OS44Yy0uNDItLjMyLS44Ni0uNTgtMS4zNS0uNzhMMTIgMi4zNGMtLjAzLS4yLS4yLS4zNC0uNC0uMzRIOC40Yy0uMiAwLS4zNi4xNC0uMzkuMzRsLS4zIDIuMTJjLS40OS4yLS45NC40Ny0xLjM1Ljc4bC0xLjk5LS44Yy0uMTgtLjA3LS4zOSAwLS40OS4xOGwtMS42IDIuNzdjLS4xLjE4LS4wNi4zOS4xLjUxbDEuNjkgMS4zMmMtLjA0LjI1LS4wNy41Mi0uMDcuNzhzLjAyLjUzLjA2Ljc4TDIuMzcgMTIuMWMtLjE1LjEyLS4xOS4zNC0uMS41MWwxLjYgMi43N2MuMS4xOC4zMS4yNC40OS4xOGwxLjk5LS44Yy40Mi4zMi44Ni41OCAxLjM1Ljc4bC4zIDIuMTJjLjA0LjIuMi4zNC40LjM0aDMuMmMuMiAwIC4zNy0uMTQuMzktLjM0bC4zLTIuMTJjLjQ5LS4yLjk0LS40NyAxLjM1LS43OGwxLjk5LjhjLjE4LjA3LjM5IDAgLjQ5LS4xOGwxLjYtMi43N2MuMS0uMTguMDYtLjM5LS4xLS41MWwtMS42Ny0xLjMyek0xMCAxM2MtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6XCIsXHJcbiAgICBTeW5jQWx0OiBcIk0yMiA4bC00LTR2M0gzdjJoMTV2M2w0LTR6TTIgMTZsNCA0di0zaDE1di0ySDZ2LTNsLTQgNHpcIixcclxuICAgIFNwb3J0c0VzcG9ydHM6IFwibTIxLjU4IDE2LjA5LTEuMDktNy42NkMyMC4yMSA2LjQ2IDE4LjUyIDUgMTYuNTMgNUg3LjQ3QzUuNDggNSAzLjc5IDYuNDYgMy41MSA4LjQzbC0xLjA5IDcuNjZDMi4yIDE3LjYzIDMuMzkgMTkgNC45NCAxOWMuNjggMCAxLjMyLS4yNyAxLjgtLjc1TDkgMTZoNmwyLjI1IDIuMjVjLjQ4LjQ4IDEuMTMuNzUgMS44Ljc1IDEuNTYgMCAyLjc1LTEuMzcgMi41My0yLjkxTTExIDExSDl2Mkg4di0ySDZ2LTFoMlY4aDF2Mmgyem00LTFjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMW0yIDNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMVwiLFxyXG4gICAgVHJlbmRpbmdGbGF0OiBcIk0yMiAxMmwtNC00djNIM3YyaDE1djN6XCIsXHJcbiAgICBXYXJuaW5nOiBcIk0xIDIxaDIyTDEyIDIgMSAyMXptMTItM2gtMnYtMmgydjJ6bTAtNGgtMnYtNGgydjR6XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBJQ09OID0gbGlrZUFyKG1hdGVyaWFsSW9JY29uc1N2Z1BhdGgpLm1hcChzdmdUZXh0ID0+ICgpID0+XHJcbiAgICA8U3ZnSWNvbj48cGF0aCBkPXtzdmdUZXh0fSAvPjwvU3ZnSWNvbj5cclxuKS5wbGFpbigpO1xyXG5cclxuZXhwb3J0IHR5cGUgU3R5bGVzID0gUmVhY3QuQ1NTUHJvcGVydGllcztcclxuXHJcbmV4cG9ydCB0eXBlIE9uVXBkYXRlPFQ+ID0gKGRhdGE6IFQpID0+IHZvaWRcclxuXHJcbmV4cG9ydCB0eXBlIElucHV0VHlwZXMgPSAnZGF0ZScgfCAnbnVtYmVyJyB8ICd0ZWwnIHwgJ3RleHQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0YXJUaXBvVmFyQ2FzaWxsZXJvKGNhc2lsbGVyb0RhdGFUeXBlOiBUaXBvVmFyaWFibGVzIHwgJ29wY2lvbmVzJyB8ICdzaV9ubycpOiBJbnB1dFR5cGVzIHtcclxuICAgIGNvbnN0IGFkYXB0ZXI6IHsgW2tleSBpbiBUaXBvVmFyaWFibGVzIHwgJ29wY2lvbmVzJyB8ICdzaV9ubyddOiBJbnB1dFR5cGVzIH0gPSB7XHJcbiAgICAgICAgJ29wY2lvbmVzJzogJ251bWJlcicsXHJcbiAgICAgICAgJ3NpX25vJzogJ251bWJlcicsXHJcbiAgICAgICAgJ251bWVybyc6ICdudW1iZXInLFxyXG4gICAgICAgICdob3JhJzogJ3RlbCcsXHJcbiAgICAgICAgJ2hvcmFzJzogJ251bWJlcicsXHJcbiAgICAgICAgJ3RleHRvJzogJ3RleHQnLFxyXG4gICAgICAgICdmZWNoYSc6ICd0ZXh0J1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFkYXB0ZXJbY2FzaWxsZXJvRGF0YVR5cGVdXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBzY3JvbGxUb1RvcCA9ICgpID0+IHtcclxuICAgIHdpbmRvdy5zY3JvbGwoeyBiZWhhdmlvcjogJ3Ntb290aCcsIHRvcDogMCwgbGVmdDogMCB9KVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvQm90dG9tID0gKCkgPT4ge1xyXG4gICAgd2luZG93LnNjcm9sbCh7IGJlaGF2aW9yOiAnc21vb3RoJywgdG9wOiBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCAtIHdpbmRvdy5pbm5lckhlaWdodCwgbGVmdDogMCB9KVxyXG59O1xyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTY3JvbGxUb3AocHJvcHM6IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0RWxlbWVudCB9KSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBwcm9wcztcclxuICAgIC8vY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlc1Njcm9sbFRvcCgpO1xyXG4gICAgLy8gTm90ZSB0aGF0IHlvdSBub3JtYWxseSB3b24ndCBuZWVkIHRvIHNldCB0aGUgd2luZG93IHJlZiBhcyB1c2VTY3JvbGxUcmlnZ2VyXHJcbiAgICAvLyB3aWxsIGRlZmF1bHQgdG8gd2luZG93LlxyXG4gICAgLy8gVGhpcyBpcyBvbmx5IGJlaW5nIHNldCBoZXJlIGJlY2F1c2UgdGhlIGRlbW8gaXMgaW4gYW4gaWZyYW1lLlxyXG4gICAgY29uc3QgdHJpZ2dlciA9IHVzZVNjcm9sbFRyaWdnZXIoe1xyXG4gICAgICAgIGRpc2FibGVIeXN0ZXJlc2lzOiB0cnVlLFxyXG4gICAgICAgIHRocmVzaG9sZDogMTAwLFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxab29tIGluPXt0cmlnZ2VyfT5cclxuICAgICAgICAgICAgPGRpdiBvbkNsaWNrPXtzY3JvbGxUb1RvcH0gcm9sZT1cInByZXNlbnRhdGlvblwiIC8qY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9Ki8+XHJcbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvWm9vbT5cclxuICAgICk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvY3VzT3B0cyA9IHtcclxuICAgIG1vdmVUb0VsZW1lbnQ6IGJvb2xlYW5cclxuICAgIG1vdmVCZWhhdmlvcj86ICdhdXRvJyB8ICdzbW9vdGgnXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb2N1c1RvSWQoaWQ6IHN0cmluZywgb3B0czogRm9jdXNPcHRzLCBjYj86IChlOiBIVE1MRWxlbWVudCkgPT4gdm9pZCkge1xyXG4gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICB2YXIgcGFkcmUgPSBlbGVtZW50O1xyXG4gICAgd2hpbGUgKHBhZHJlICYmIHBhZHJlLmNsYXNzTmFtZSAhPSAncHJlZ3VudGEnICYmIHBhZHJlICE9IGRvY3VtZW50LmJvZHkpIHBhZHJlID0gcGFkcmUucGFyZW50RWxlbWVudDtcclxuICAgIGlmIChwYWRyZSAmJiBwYWRyZS5jbGFzc05hbWUgPT0gJ3ByZWd1bnRhJykgZWxlbWVudCA9IHBhZHJlO1xyXG4gICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICBpZiAoY2IpIHtcclxuICAgICAgICAgICAgY2IoZWxlbWVudCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICBpZiAob3B0cy5tb3ZlVG9FbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsKHsgYmVoYXZpb3I6IG9wdHMubW92ZUJlaGF2aW9yIHx8ICdhdXRvJywgdG9wOiB3aW5kb3cuc2Nyb2xsWSAtIDEwMCwgbGVmdDogMCB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJRGlzcGF0Y2hlcnMgPSB7IFJFU0VUX09QQ0lPTkVTOiBGdW5jdGlvbiB9O1xyXG5cclxuZnVuY3Rpb24gZ2V0QmFkZ2VTdHlsZShlc3RhZG86IHN0cmluZyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xyXG4gICAgY29uc3QgYmFzZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcclxuICAgICAgICBwYWRkaW5nOiAnMnB4IDZweCcsXHJcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcclxuICAgICAgICBmb250U2l6ZTogJzExcHgnLFxyXG4gICAgICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcclxuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcclxuICAgICAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJ1xyXG4gICAgfTtcclxuICAgIGlmIChlc3RhZG8gPT09ICdvaycpIHJldHVybiB7IC4uLmJhc2UsIGJhY2tncm91bmRDb2xvcjogJyNjNmY2ZDUnLCBjb2xvcjogJyMyMjU0M2QnIH07XHJcbiAgICBpZiAoZXN0YWRvID09PSAnaW5jb21wbGV0bycgfHwgZXN0YWRvID09PSAnY29uIHByb2JsZW1hcycpIHJldHVybiB7IC4uLmJhc2UsIGJhY2tncm91bmRDb2xvcjogJyNmZWViYzgnLCBjb2xvcjogJyM3NDQyMTAnIH07XHJcbiAgICByZXR1cm4geyAuLi5iYXNlLCBiYWNrZ3JvdW5kQ29sb3I6ICcjZWRmMmY3JywgY29sb3I6ICcjNGE1NTY4JyB9O1xyXG59XHJcbmludGVyZmFjZSBSZW5kZXJpemFkb3JKU09OUHJvcHMge1xyXG4gICAgZGF0b3M6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgICBuaXZlbD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFJlbmRlcml6YWRvckpTT046IFJlYWN0LkZDPFJlbmRlcml6YWRvckpTT05Qcm9wcz4gPSAoeyBkYXRvcywgbml2ZWwgPSAwIH0pID0+IHtcclxuXHJcbiAgICBjb25zdCBjbGF2ZXNGaWx0cmFkYXMgPSBPYmplY3Qua2V5cyhkYXRvcykuZmlsdGVyKFxyXG4gICAgICAgIGNsYXZlID0+ICFjbGF2ZS5zdGFydHNXaXRoKCckJykgJiYgY2xhdmUgIT09ICd0aW1lc3RhbXBFc3RydWN0dXJhJ1xyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZ0xlZnQ6IG5pdmVsID4gMCA/ICcxNnB4JyA6ICcwcHgnIH19PlxyXG4gICAgICAgICAgICB7Y2xhdmVzRmlsdHJhZGFzLm1hcChjbGF2ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxvciA9IGRhdG9zW2NsYXZlXTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBERVRFQ0NJw5NOIERFIFNVQi1VTklEQURFUyBERSBBTsOBTElTSVMgKGhvZ2FyZXMsIHBlcnNvbmFzLCBldGMuKVxyXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsb3IpICYmIHZhbG9yLmxlbmd0aCA+IDAgJiYgdHlwZW9mIHZhbG9yWzBdID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2xhdmV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJzEycHggMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyTGVmdDogJzRweCBzb2xpZCAjMzE4MmNlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjdmYWZjJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICcwIDZweCA2cHggMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzhweCAxMnB4J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFTDrXR1bG8gZGUgbGEgVUEgKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICdib2xkJywgY29sb3I6ICcjMmI2Y2IwJywgZm9udFNpemU6ICcxM3B4JywgdGV4dFRyYW5zZm9ybTogJ3VwcGVyY2FzZScsIG1hcmdpbkJvdHRvbTogJzZweCcgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pZGFkIGRlIEFuw6FsaXNpczoge2NsYXZlfSAoe3ZhbG9yLmxlbmd0aH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFsb3IubWFwKChyZWdpc3RybywgZmlsYUluZGV4KSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2ZpbGFJbmRleH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogZmlsYUluZGV4IDwgdmFsb3IubGVuZ3RoIC0gMSA/ICcxMHB4JyA6ICcwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdUb3A6IGZpbGFJbmRleCA+IDAgPyAnNnB4JyA6ICcwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclRvcDogZmlsYUluZGV4ID4gMCA/ICcxcHggZGFzaGVkICNlMmU4ZjAnIDogJ25vbmUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVuZGVyaXphZG9ySlNPTiBkYXRvcz17cmVnaXN0cm99IG5pdmVsPXtuaXZlbCArIDF9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyBTaSBwb3IgbGFzIGR1ZGFzIGVzIHVuIG9iamV0byBkaXJlY3RvIHF1ZSBubyBlcyBhcnJheSwgbG8gc2FsdGVhbW9zXHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbG9yID09PSAnb2JqZWN0JyAmJiB2YWxvciAhPT0gbnVsbCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gVkFSSUFCTEVTIEVTVMOBTkRBUiAoQ2xhdmUgeSB2YWxvciBqdW50b3MpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjbGF2ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleFdyYXA6ICd3cmFwJywgLy8gUG9yIHNpIGVsIHZhbG9yIGVzIG11eSBsYXJnbywgcXVlIGJhamUgbGltcGlvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNHB4IDAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxM3B4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogJzEuNCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBDbGF2ZTogYWhvcmEgc2luIGFuY2hvIGZpam8sIHNlIGFkYXB0YSBhbCB0ZXh0byAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBjb2xvcjogJyM0YTU1NjgnLCBmb250V2VpZ2h0OiA1MDAsIG1hcmdpblJpZ2h0OiAnNnB4JyB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbGF2ZX06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIFZhbG9yOiBwZWdhZG8gaW5tZWRpYXRhbWVudGUgYSBsYSBjbGF2ZSAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBjb2xvcjogJyMxYTIwMmMnLCBmb250V2VpZ2h0OiA2MDAgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2xhdmUuc3RhcnRzV2l0aCgncmVzdW1lbkVzdGFkbycpID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXtnZXRCYWRnZVN0eWxlKFN0cmluZyh2YWxvcikpfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1N0cmluZyh2YWxvcil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcodmFsb3IgPz8gJycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBSZXNldGVyRm9ybShwcm9wczogeyBvblRyeUFnYWluOiAoKSA9PiB2b2lkLCBkaXNwYXRjaGVyczogSURpc3BhdGNoZXJzLCBtZW5zYWplOiBzdHJpbmcgfSkge1xyXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gICAgcmV0dXJuIDw+XHJcbiAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwib3V0bGluZWRcIlxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaChwcm9wcy5kaXNwYXRjaGVycy5SRVNFVF9PUENJT05FUyh7fSkpO1xyXG4gICAgICAgICAgICAgICAgcHJvcHMub25UcnlBZ2FpbigpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgID57cHJvcHMubWVuc2FqZX08L0J1dHRvbj5cclxuICAgIDwvPjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJlbmRlckFuZENhcHR1cmVFcnJvciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcclxuICAgIHsgZGlzcGF0Y2hlcnM6IElEaXNwYXRjaGVycywgbWVuc2FqZVJldG9ybm86IHN0cmluZyB9LFxyXG4gICAgeyBoYXNFcnJvcjogYm9vbGVhbiwgZXJyb3I6IEVycm9yIHwge30sIGluZm8/OiBhbnkgfVxyXG4+IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzOiB7IGRpc3BhdGNoZXJzOiBJRGlzcGF0Y2hlcnMsIG1lbnNhamVSZXRvcm5vOiBzdHJpbmcgfSkge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0geyBoYXNFcnJvcjogZmFsc2UsIGVycm9yOiB7fSB9O1xyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgY29tcG9uZW50RGlkQ2F0Y2goZXJyb3I6IEVycm9yLCBpbmZvOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgaGFzRXJyb3I6IHRydWUsIGVycm9yLCBpbmZvIH0pO1xyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgcmVuZGVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmhhc0Vycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiA8PlxyXG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+SHVibyB1biBwcm9ibGVtYSBlbiBsYSBwcm9ncmFtYWNpw7NuIGRlIGxhIHBhbnRhbGxhLjwvVHlwb2dyYXBoeT5cclxuICAgICAgICAgICAgICAgIDxSZXNldGVyRm9ybSBkaXNwYXRjaGVycz17dGhpcy5wcm9wcy5kaXNwYXRjaGVyc30gbWVuc2FqZT17dGhpcy5wcm9wcy5tZW5zYWplUmV0b3Jub30gb25UcnlBZ2Fpbj17KCkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaGFzRXJyb3I6IGZhbHNlLCBlcnJvcjoge30gfSlcclxuICAgICAgICAgICAgICAgIH0gLz5cclxuICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCIgY29sb3I9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9nb3RvU2luY3Jvbml6YXIoKTtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPmlyIGEgbGEgcGFudGFsbGEgZGUgc2luY3Jvbml6YWNpw7NuPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT5FcnJvciBkZXRlY3RhZG86PC9UeXBvZ3JhcGh5PlxyXG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e2V4cGVjdGVkKHRoaXMuc3RhdGUuZXJyb3IpLm1lc3NhZ2V9PC9UeXBvZ3JhcGh5PlxyXG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e0pTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGUuaW5mbyl9PC9UeXBvZ3JhcGh5PlxyXG4gICAgICAgICAgICA8Lz47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKHtcclxuICAgIGNvbXBvbmVudHM6IHtcclxuICAgICAgICBNdWlDc3NCYXNlbGluZToge1xyXG4gICAgICAgICAgICBzdHlsZU92ZXJyaWRlczoge1xyXG4gICAgICAgICAgICAgICAgaHRtbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIFdlYmtpdEZvbnRTbW9vdGhpbmc6ICdhdXRvJyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgIH0sXHJcbn0pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9ubGluZVN0YXR1cygpIHtcclxuICAgIGNvbnN0IFtvbmxpbmUsIHNldE9ubGluZV0gPSB1c2VTdGF0ZSh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSk7XHJcblxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBoYW5kbGVyID0gKCkgPT4gc2V0T25saW5lKHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKTtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb25saW5lJywgaGFuZGxlcik7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29mZmxpbmUnLCBoYW5kbGVyKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb25saW5lJywgaGFuZGxlcik7XHJcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgaGFuZGxlcik7XHJcbiAgICAgICAgfTtcclxuICAgIH0sIFtdKTtcclxuXHJcbiAgICByZXR1cm4gb25saW5lO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gUmVuZGVyUHJpbmNpcGFsPFQsIFQyIGV4dGVuZHMgQWN0aW9uPihwcm9wczogeyBzdG9yZTogU3RvcmU8VCwgVDI+LCBkaXNwYXRjaGVyczogSURpc3BhdGNoZXJzLCBtZW5zYWplUmV0b3Jubzogc3RyaW5nLCBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcclxuICAgIHJldHVybiA8UmVhY3QuU3RyaWN0TW9kZT5cclxuICAgICAgICA8UHJvdmlkZXIgc3RvcmU9e3Byb3BzLnN0b3JlfT5cclxuICAgICAgICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cclxuICAgICAgICAgICAgICAgIDxSZW5kZXJBbmRDYXB0dXJlRXJyb3IgZGlzcGF0Y2hlcnM9e3Byb3BzLmRpc3BhdGNoZXJzfSBtZW5zYWplUmV0b3Jubz17cHJvcHMubWVuc2FqZVJldG9ybm99PlxyXG4gICAgICAgICAgICAgICAgICAgIDxDc3NCYXNlbGluZSAvPlxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cclxuICAgICAgICAgICAgICAgIDwvUmVuZGVyQW5kQ2FwdHVyZUVycm9yPlxyXG4gICAgICAgICAgICA8L1RoZW1lUHJvdmlkZXI+XHJcbiAgICAgICAgPC9Qcm92aWRlcj5cclxuICAgIDwvUmVhY3QuU3RyaWN0TW9kZT5cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IG5vbWJyZU1lc2VzID0gWydlbmVybycsICdmZWJyZXJvJywgJ21hcnpvJywgJ2FicmlsJywgJ21heW8nLCAnanVuaW8nLCAnanVsaW8nLCAnYWdvc3RvJywgJ3NlcHRpZW1icmUnLCAnb2N0dWJyZScsICdub3ZpZW1icmUnLCAnZGljaWVtYnJlJ107XHJcbmV4cG9ydCBjb25zdCBub21icmVEaWFzID0gWydkb21pbmdvJywgJ2x1bmVzJywgJ21hcnRlcycsICdtacOpcmNvbGVzJywgJ2p1ZXZlcycsICd2aWVybmVzJywgJ3PDoWJhZG8nXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhckZlY2hhRGVzZGVUZXh0b0lTTyh0ZXh0bzogc3RyaW5nKTogRGF0ZSB7XHJcbiAgICB2YXIgcGFydGVzID0gdGV4dG8uc3BsaXQoL1svLV0vZyk7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoTnVtYmVyKHBhcnRlc1swXSksIE51bWJlcihwYXJ0ZXNbMV0pIC0gMSwgTnVtYmVyKHBhcnRlc1syXSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVzUmVmZXJlbmNpYShmZWNoYTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHZhciBkID0gY3JlYXJGZWNoYURlc2RlVGV4dG9JU08oZmVjaGEpO1xyXG4gICAgcmV0dXJuIG5vbWJyZU1lc2VzW2QuZ2V0TW9udGgoKV07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmZWNoYVJlZmVyZW5jaWEoZmVjaGE6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICB2YXIgZCA9IGNyZWFyRmVjaGFEZXNkZVRleHRvSVNPKGZlY2hhKTtcclxuICAgIHJldHVybiBgJHtub21icmVEaWFzW2QuZ2V0RGF5KCldfSAke2QuZ2V0RGF0ZSgpfSBkZSAke21lc1JlZmVyZW5jaWEoZmVjaGEpfWA7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB0ZXh0b1BhcmVudGVzY28gPSBbJ0plZmUvYScsICdDw7NueXVnZS9wYXJlamEnLCAnSGlqby9hJywgJ0hpamFzdHJvL2EnLCAnWWVybm8gbyBudWVyYScsICdOaWV0by9hJywgJ1BhZHJlL21hZHJlL3N1ZWdyby9hJywgJ0hlcm1hbm8vYScsICdDdcOxYWRvL2EnLCAnU29icmluby9hJywgJ0FidWVsby9hJywgJ090cm8gZmFtaWxpYXInLCAnT3RybyBubyBmYW1pbGlhciddO1xyXG5leHBvcnQgY29uc3QgdGV4dG9QYXJlbnRlc2NvVmNtID0gWydSZXNwb25kZW50ZScsICdDw7NueXVnZS9wYXJlamEnLCAnSGlqby9hJywgJ0hpamFzdHJvL2EnLCAnWWVybm8gbyBudWVyYScsICdOaWV0by9hJywgJ1BhZHJlL21hZHJlL3N1ZWdyby9hJywgJ0hlcm1hbm8vYScsICdDdcOxYWRvL2EnLCAnU29icmluby9hJywgJ0FidWVsby9hJywgJ090cm8gZmFtaWxpYXInLCAnT3RybyBubyBmYW1pbGlhciddO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9idGVuZXJUZXh0b1BhcmVudGVzY28ocDQ6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIG9wZXJhdGl2bz86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAocDQgPT0gbnVsbCB8fCBwNCA8IDEpIHJldHVybiAnLi4uLi4uLi4nO1xyXG4gICAgY29uc3QgZXNWY20gPSBvcGVyYXRpdm8gPyBvcGVyYXRpdm8uc3RhcnRzV2l0aCgndmNtJykgOiBmYWxzZTtcclxuICAgIGNvbnN0IGxpc3RhID0gZXNWY20gPyB0ZXh0b1BhcmVudGVzY29WY20gOiB0ZXh0b1BhcmVudGVzY287XHJcbiAgICByZXR1cm4gbGlzdGFbcDQgLSAxXSB8fCAnLi4uLi4uLi4nO1xyXG59XHJcblxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -59,7 +59,7 @@ export type CasilleroBase = {
|
|
|
59
59
|
optativo?: boolean | null;
|
|
60
60
|
libre?: boolean | null;
|
|
61
61
|
valor_ns_nc?: any;
|
|
62
|
-
despliegue?: string;
|
|
62
|
+
despliegue?: string | null;
|
|
63
63
|
longitud?: string;
|
|
64
64
|
};
|
|
65
65
|
export type Opcion = CasilleroBase & {
|
|
@@ -225,15 +225,19 @@ export type RespuestasUnaUA = {
|
|
|
225
225
|
export type RespuestaLasUA = {
|
|
226
226
|
[ua in IdUnidadAnalisis]: ObjetoNumeradoOArray<Respuestas>;
|
|
227
227
|
};
|
|
228
|
-
export type
|
|
229
|
-
|
|
228
|
+
export type CodReaNoRea = {
|
|
229
|
+
codRea: number | null;
|
|
230
|
+
codNoRea: number | null;
|
|
231
|
+
codReaSup: number | null;
|
|
232
|
+
codNoReaSup: number | null;
|
|
233
|
+
};
|
|
234
|
+
export type ResultadoResumen = CodReaNoRea & {
|
|
230
235
|
resumenEstado: ResumenEstado;
|
|
231
236
|
resumenEstadoSup: ResumenEstado;
|
|
237
|
+
};
|
|
238
|
+
export type Respuestas = RespuestasUnaUA & RespuestaLasUA;
|
|
239
|
+
export type RespuestasRaiz = Respuestas & ResultadoResumen & {
|
|
232
240
|
$dirty: boolean;
|
|
233
|
-
codNoRea: string | null;
|
|
234
|
-
codRea: number | null;
|
|
235
|
-
codNoReaSup: string | null;
|
|
236
|
-
codReaSup: number | null;
|
|
237
241
|
};
|
|
238
242
|
export type UnidadAnalisis = {
|
|
239
243
|
unidad_analisis: IdUnidadAnalisis;
|
|
@@ -324,6 +328,53 @@ export type TareasEstructura = {
|
|
|
324
328
|
};
|
|
325
329
|
};
|
|
326
330
|
};
|
|
331
|
+
export type TipoCondicion = 'no_rea' | 'no_rea_sup' | 'rea' | 'rea_sup';
|
|
332
|
+
export type NoRea = {
|
|
333
|
+
operativo: string;
|
|
334
|
+
no_rea: number;
|
|
335
|
+
descripcion: string;
|
|
336
|
+
grupo: string;
|
|
337
|
+
variable: string;
|
|
338
|
+
valor: string;
|
|
339
|
+
grupo0: string;
|
|
340
|
+
orden: number;
|
|
341
|
+
};
|
|
342
|
+
export type NoReaSup = {
|
|
343
|
+
operativo: string;
|
|
344
|
+
no_rea_sup: number;
|
|
345
|
+
desc_norea_sup: string;
|
|
346
|
+
grupo_sup: string;
|
|
347
|
+
variable_sup: string;
|
|
348
|
+
valor_sup: string;
|
|
349
|
+
grupo0_sup: string;
|
|
350
|
+
orden: number;
|
|
351
|
+
};
|
|
352
|
+
export type Rea = {
|
|
353
|
+
operativo: string;
|
|
354
|
+
rea: number;
|
|
355
|
+
descripcion: string;
|
|
356
|
+
condicion: string;
|
|
357
|
+
condicion_js: string;
|
|
358
|
+
orden: number;
|
|
359
|
+
es_positiva: boolean;
|
|
360
|
+
tarea: string | null;
|
|
361
|
+
};
|
|
362
|
+
export type ReaSup = {
|
|
363
|
+
operativo: string;
|
|
364
|
+
rea_sup: number;
|
|
365
|
+
descripcion: string;
|
|
366
|
+
condicion: string;
|
|
367
|
+
condicion_js: string;
|
|
368
|
+
orden: number;
|
|
369
|
+
es_positiva: boolean;
|
|
370
|
+
tarea: string | null;
|
|
371
|
+
};
|
|
372
|
+
export type MapeoTipoItem = {
|
|
373
|
+
'rea': Rea;
|
|
374
|
+
'no_rea': NoRea;
|
|
375
|
+
'rea_sup': ReaSup;
|
|
376
|
+
'no_rea_sup': NoReaSup;
|
|
377
|
+
};
|
|
327
378
|
export type Estructura = {
|
|
328
379
|
formularios: {
|
|
329
380
|
[nombreFormulario in IdFormulario]: InfoFormulario;
|
|
@@ -339,22 +390,10 @@ export type Estructura = {
|
|
|
339
390
|
configSorteo: ConfiguracionSorteo;
|
|
340
391
|
habilitacionBotonFormulario: ConfiguracionHabilitarBotonFormulario;
|
|
341
392
|
conReaHogar: boolean;
|
|
342
|
-
noReas:
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
variable: string;
|
|
347
|
-
valor: string;
|
|
348
|
-
grupo0: string;
|
|
349
|
-
}[];
|
|
350
|
-
noReasSup: {
|
|
351
|
-
no_rea_sup: string;
|
|
352
|
-
desc_norea_sup: string;
|
|
353
|
-
grupo_sup: string;
|
|
354
|
-
variable_sup: string;
|
|
355
|
-
valor_sup: string;
|
|
356
|
-
grupo0_sup: string;
|
|
357
|
-
}[];
|
|
393
|
+
noReas: NoRea[];
|
|
394
|
+
noReasSup: NoReaSup[];
|
|
395
|
+
reas: Rea[];
|
|
396
|
+
reasSup: ReaSup[];
|
|
358
397
|
semanas: {
|
|
359
398
|
[idSemana in IdSemana]: Semana;
|
|
360
399
|
};
|
|
@@ -383,23 +422,18 @@ export type CasoState = {
|
|
|
383
422
|
};
|
|
384
423
|
};
|
|
385
424
|
};
|
|
386
|
-
export type
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
};
|
|
399
|
-
esRealizadaSup: (respuestas: Respuestas) => {
|
|
400
|
-
codReaSup: number | null;
|
|
401
|
-
esReaSup: boolean;
|
|
402
|
-
};
|
|
425
|
+
export type ResultadoReaNoRea<K extends keyof CodReaNoRea, B extends string> = {
|
|
426
|
+
[P in K]: CodReaNoRea[K];
|
|
427
|
+
} & {
|
|
428
|
+
[P in B]: boolean;
|
|
429
|
+
};
|
|
430
|
+
export type FuncionesCalculoReaNoRea = {
|
|
431
|
+
esNoRea: (respuestas: Respuestas, tarea: string) => ResultadoReaNoRea<'codNoRea', 'esNoRea'>;
|
|
432
|
+
esNoReaSup: (respuestas: Respuestas, tarea: string) => ResultadoReaNoRea<'codNoReaSup', 'esNoReaSup'>;
|
|
433
|
+
esRealizada: (respuestas: Respuestas, tarea: string) => ResultadoReaNoRea<'codRea', 'esRea'>;
|
|
434
|
+
esRealizadaSup: (respuestas: Respuestas, tarea: string) => ResultadoReaNoRea<'codReaSup', 'esReaSup'>;
|
|
435
|
+
};
|
|
436
|
+
export type DefOperativo = FuncionesCalculoReaNoRea & {
|
|
403
437
|
UAprincipal: IdUnidadAnalisis;
|
|
404
438
|
defUA: {
|
|
405
439
|
[i in IdUnidadAnalisis]: {
|