sigesp 0.9.104-20240402 → 1.0.0-20240419

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/esm2020/lib/app/app.component.mjs +14 -0
  2. package/esm2020/lib/app/app.module.mjs +34 -0
  3. package/esm2020/lib/core/interfaces/Auditoria.mjs +49 -0
  4. package/esm2020/lib/core/interfaces/Banco.mjs +2 -0
  5. package/esm2020/lib/core/interfaces/Catalogo.mjs +2 -0
  6. package/esm2020/lib/core/interfaces/CentroCosto.mjs +2 -0
  7. package/esm2020/lib/core/interfaces/Clasificacion.mjs +2 -0
  8. package/esm2020/lib/core/interfaces/Cliente.mjs +2 -0
  9. package/esm2020/lib/core/interfaces/ComprobantePresupuestario.mjs +2 -0
  10. package/esm2020/lib/core/interfaces/Comunidad.mjs +2 -0
  11. package/esm2020/lib/core/interfaces/Configuracion.mjs +2 -0
  12. package/esm2020/lib/core/interfaces/ConfiguracionRPC.mjs +2 -0
  13. package/esm2020/lib/core/interfaces/ConfiguracionSCG.mjs +2 -0
  14. package/esm2020/lib/core/interfaces/ConfigurationSPG.mjs +2 -0
  15. package/esm2020/lib/core/interfaces/Constantes.mjs +360 -0
  16. package/esm2020/lib/core/interfaces/CuentaEgresos.mjs +2 -0
  17. package/esm2020/lib/core/interfaces/CuentaIngreso.mjs +2 -0
  18. package/esm2020/lib/core/interfaces/CuentaIngresoEstructura.mjs +2 -0
  19. package/esm2020/lib/core/interfaces/CuentaInstitucional.mjs +2 -0
  20. package/esm2020/lib/core/interfaces/CuentaPresupuesto.mjs +2 -0
  21. package/esm2020/lib/core/interfaces/CuentasPorPagar.mjs +2 -0
  22. package/esm2020/lib/core/interfaces/Documento.mjs +2 -0
  23. package/esm2020/lib/core/interfaces/EntradaSuministro.mjs +2 -0
  24. package/esm2020/lib/core/interfaces/Especialidad.mjs +2 -0
  25. package/esm2020/lib/core/interfaces/EstructuraPresupuestaria.mjs +2 -0
  26. package/esm2020/lib/core/interfaces/FuenteFinanciamiento.mjs +2 -0
  27. package/esm2020/lib/core/interfaces/IBancoCuentasPorPagar.mjs +2 -0
  28. package/esm2020/lib/core/interfaces/ITipoDepositos.mjs +2 -0
  29. package/esm2020/lib/core/interfaces/Integracion.mjs +2 -0
  30. package/esm2020/lib/core/interfaces/Lugares.mjs +2 -0
  31. package/esm2020/lib/core/interfaces/Moneda.mjs +2 -0
  32. package/esm2020/lib/core/interfaces/Nomina.mjs +27 -0
  33. package/esm2020/lib/core/interfaces/PlanUnicoCuenta.mjs +2 -0
  34. package/esm2020/lib/core/interfaces/Presupuesto.mjs +2 -0
  35. package/esm2020/lib/core/interfaces/Proveedor.mjs +2 -0
  36. package/esm2020/lib/core/interfaces/RecursosHumanos.mjs +4 -0
  37. package/esm2020/lib/core/interfaces/Request.mjs +2 -0
  38. package/esm2020/lib/core/interfaces/Response.mjs +2 -0
  39. package/esm2020/lib/core/interfaces/Seguridad.mjs +2 -0
  40. package/esm2020/lib/core/interfaces/Servicios.mjs +2 -0
  41. package/esm2020/lib/core/interfaces/Sistema.mjs +2 -0
  42. package/esm2020/lib/core/interfaces/Tributos.mjs +2 -0
  43. package/esm2020/lib/core/interfaces/UnidadTributaria.mjs +2 -0
  44. package/esm2020/lib/core/interfaces/Usuario.mjs +2 -0
  45. package/esm2020/lib/core/interfaces/UsuarioPrefijo.mjs +2 -0
  46. package/esm2020/lib/core/models/CFG/Empresa.model.mjs +151 -0
  47. package/esm2020/lib/core/models/CFG/Enterprise.model.mjs +70 -0
  48. package/esm2020/lib/core/models/CFG/MPrefijo.model.mjs +64 -0
  49. package/esm2020/lib/core/models/CFG/Procede.model.mjs +31 -0
  50. package/esm2020/lib/core/models/CFG/TasaCambio.model.mjs +34 -0
  51. package/esm2020/lib/core/models/CFG/comunidad.model.mjs +22 -0
  52. package/esm2020/lib/core/models/CFG/locations.model.mjs +170 -0
  53. package/esm2020/lib/core/models/CFG/moneda.model.mjs +72 -0
  54. package/esm2020/lib/core/models/CFG/userPrefix.model.mjs +46 -0
  55. package/esm2020/lib/core/models/CXP/MConceptosCXP.model.mjs +34 -0
  56. package/esm2020/lib/core/models/CXP/MTipoDocumentoCXP.model.mjs +44 -0
  57. package/esm2020/lib/core/models/RPC/clasification.model.mjs +16 -0
  58. package/esm2020/lib/core/models/RPC/configuracionRPC.model.mjs +23 -0
  59. package/esm2020/lib/core/models/RPC/document.model.mjs +16 -0
  60. package/esm2020/lib/core/models/RPC/proveedores.model.mjs +9 -0
  61. package/esm2020/lib/core/models/RPC/providerBeneficiary.model.mjs +164 -0
  62. package/esm2020/lib/core/models/RPC/specialty.model.mjs +12 -0
  63. package/esm2020/lib/core/models/SCB/bank.model.mjs +181 -0
  64. package/esm2020/lib/core/models/SCG/IncomeAccount.mjs +83 -0
  65. package/esm2020/lib/core/models/SCG/accountMarriage.model.mjs +29 -0
  66. package/esm2020/lib/core/models/SCG/centroCosto.model.mjs +65 -0
  67. package/esm2020/lib/core/models/SCG/configuracionSCG.model.mjs +169 -0
  68. package/esm2020/lib/core/models/SCG/cuentaInstitucional.model.mjs +89 -0
  69. package/esm2020/lib/core/models/SCG/planUnicoCuenta.model.mjs +17 -0
  70. package/esm2020/lib/core/models/SFV/MClienteModel.mjs +116 -0
  71. package/esm2020/lib/core/models/SIV/MDetaContable.model.mjs +62 -0
  72. package/esm2020/lib/core/models/SIV/MDetaEntrada.model.mjs +94 -0
  73. package/esm2020/lib/core/models/SIV/MEntradaSuministro.model.mjs +132 -0
  74. package/esm2020/lib/core/models/SIV/MTipoDepositos.model.mjs +61 -0
  75. package/esm2020/lib/core/models/SNO/MAnticipoPrestaciones.model.mjs +100 -0
  76. package/esm2020/lib/core/models/SNO/MArchivoTxtCampo.model.mjs +61 -0
  77. package/esm2020/lib/core/models/SNO/MArchivosTxt.model.mjs +41 -0
  78. package/esm2020/lib/core/models/SNO/MAsignacionCargo.model.mjs +205 -0
  79. package/esm2020/lib/core/models/SNO/MAspectoEvaluacion.model.mjs +90 -0
  80. package/esm2020/lib/core/models/SNO/MAuditoria.model.mjs +61 -0
  81. package/esm2020/lib/core/models/SNO/MBeneficiario.model.mjs +137 -0
  82. package/esm2020/lib/core/models/SNO/MCargaFamiliar.model.mjs +52 -0
  83. package/esm2020/lib/core/models/SNO/MCargaMasiva.model.mjs +34 -0
  84. package/esm2020/lib/core/models/SNO/MCargosPersonal.model.mjs +101 -0
  85. package/esm2020/lib/core/models/SNO/MClasificacionObrero.mdel.mjs +46 -0
  86. package/esm2020/lib/core/models/SNO/MCodigoUnicoRac.model.mjs +39 -0
  87. package/esm2020/lib/core/models/SNO/MComponete.model.mjs +38 -0
  88. package/esm2020/lib/core/models/SNO/MConceptoVacaciones.model.mjs +85 -0
  89. package/esm2020/lib/core/models/SNO/MConceptosNomina.model.mjs +234 -0
  90. package/esm2020/lib/core/models/SNO/MConceptosPersonalNomina.model.mjs +97 -0
  91. package/esm2020/lib/core/models/SNO/MConcursante.model.mjs +317 -0
  92. package/esm2020/lib/core/models/SNO/MConcurso.model.mjs +246 -0
  93. package/esm2020/lib/core/models/SNO/MConfiguracionSNO.model.mjs +404 -0
  94. package/esm2020/lib/core/models/SNO/MConstanteNomina.model.mjs +67 -0
  95. package/esm2020/lib/core/models/SNO/MConstantePersonalNomina.model.mjs +79 -0
  96. package/esm2020/lib/core/models/SNO/MDedicacion.model.mjs +35 -0
  97. package/esm2020/lib/core/models/SNO/MDefinicionNomina.model.mjs +343 -0
  98. package/esm2020/lib/core/models/SNO/MDefinicionesBasicas.model.mjs +84 -0
  99. package/esm2020/lib/core/models/SNO/MDeudaAnterior.model.mjs +40 -0
  100. package/esm2020/lib/core/models/SNO/MEncargaduria.model.mjs +138 -0
  101. package/esm2020/lib/core/models/SNO/MEscalaEvaluacion.model.mjs +38 -0
  102. package/esm2020/lib/core/models/SNO/MEscalaEvaluacionDt.model.mjs +37 -0
  103. package/esm2020/lib/core/models/SNO/MEstructuraOrganizativa.model.mjs +119 -0
  104. package/esm2020/lib/core/models/SNO/MFamiliares.model.mjs +86 -0
  105. package/esm2020/lib/core/models/SNO/MFeriados.model.mjs +43 -0
  106. package/esm2020/lib/core/models/SNO/MFideicomiso.model.mjs +406 -0
  107. package/esm2020/lib/core/models/SNO/MFormacionAcademica.model.mjs +49 -0
  108. package/esm2020/lib/core/models/SNO/MGrado.model.mjs +47 -0
  109. package/esm2020/lib/core/models/SNO/MHojaTiempo.model.mjs +117 -0
  110. package/esm2020/lib/core/models/SNO/MImpuestoSobreRenta.model.mjs +73 -0
  111. package/esm2020/lib/core/models/SNO/MMetodoBanco.model.mjs +105 -0
  112. package/esm2020/lib/core/models/SNO/MNominaSimple.model.mjs +86 -0
  113. package/esm2020/lib/core/models/SNO/MPeriodoNomina.model.mjs +95 -0
  114. package/esm2020/lib/core/models/SNO/MPermisos.model.mjs +68 -0
  115. package/esm2020/lib/core/models/SNO/MPersonal.model.mjs +626 -0
  116. package/esm2020/lib/core/models/SNO/MPersonalJubilado.model.mjs +64 -0
  117. package/esm2020/lib/core/models/SNO/MPersonalNomina.model.mjs +313 -0
  118. package/esm2020/lib/core/models/SNO/MPlanHorario.model.mjs +116 -0
  119. package/esm2020/lib/core/models/SNO/MPlantillaConstancia.model.mjs +31 -0
  120. package/esm2020/lib/core/models/SNO/MPrestamo.model.mjs +221 -0
  121. package/esm2020/lib/core/models/SNO/MPrimaGrados.model.mjs +43 -0
  122. package/esm2020/lib/core/models/SNO/MPrimasConcepto.model.mjs +43 -0
  123. package/esm2020/lib/core/models/SNO/MRango.model.mjs +43 -0
  124. package/esm2020/lib/core/models/SNO/MReportesRRHH.mjs +402 -0
  125. package/esm2020/lib/core/models/SNO/MRequisitosConcursante.model.mjs +46 -0
  126. package/esm2020/lib/core/models/SNO/MRequisitosConcursos.model.mjs +37 -0
  127. package/esm2020/lib/core/models/SNO/MRequisitosMinimos.model.mjs +113 -0
  128. package/esm2020/lib/core/models/SNO/MSalarioHistorico.model.mjs +70 -0
  129. package/esm2020/lib/core/models/SNO/MSolicitudEmpleo.model.mjs +121 -0
  130. package/esm2020/lib/core/models/SNO/MTablaVacaciones.model.mjs +57 -0
  131. package/esm2020/lib/core/models/SNO/MTablaVacacionesPeriodo.model.mjs +40 -0
  132. package/esm2020/lib/core/models/SNO/MTabulador.model.mjs +96 -0
  133. package/esm2020/lib/core/models/SNO/MTipoEvaluacion.model.mjs +75 -0
  134. package/esm2020/lib/core/models/SNO/MTipoPersonal.model.mjs +34 -0
  135. package/esm2020/lib/core/models/SNO/MTiposEnfermedad.model.mjs +37 -0
  136. package/esm2020/lib/core/models/SNO/MTrabajoAnterior.model.mjs +65 -0
  137. package/esm2020/lib/core/models/SNO/MUbicacionFisica.model.mjs +61 -0
  138. package/esm2020/lib/core/models/SNO/MVacacionesPersonal.model.mjs +115 -0
  139. package/esm2020/lib/core/models/SOC/charge.model.mjs +66 -0
  140. package/esm2020/lib/core/models/SOC/clause.model.mjs +31 -0
  141. package/esm2020/lib/core/models/SOC/clauseModality.model.mjs +35 -0
  142. package/esm2020/lib/core/models/SOC/configuracionSOC.model.mjs +62 -0
  143. package/esm2020/lib/core/models/SOC/service.model.mjs +46 -0
  144. package/esm2020/lib/core/models/SOC/serviceCharge.model.mjs +37 -0
  145. package/esm2020/lib/core/models/SOC/serviceType.model.mjs +31 -0
  146. package/esm2020/lib/core/models/SPG/UnidadAdministradoraCentral.mjs +43 -0
  147. package/esm2020/lib/core/models/SPG/administrativeUnit.model.mjs +112 -0
  148. package/esm2020/lib/core/models/SPG/comprobantePresupuestario.model.mjs +51 -0
  149. package/esm2020/lib/core/models/SPG/configurationSPG.model.mjs +59 -0
  150. package/esm2020/lib/core/models/SPG/cuentaPresupuesto.model.mjs +120 -0
  151. package/esm2020/lib/core/models/SPG/estructuraPresupuestaria.model.mjs +176 -0
  152. package/esm2020/lib/core/models/SPG/expensiveAccount.model.mjs +108 -0
  153. package/esm2020/lib/core/models/SPG/fuenteFinanciamiento.model.mjs +31 -0
  154. package/esm2020/lib/core/models/SPG/incomeStructureAccount.model.mjs +81 -0
  155. package/esm2020/lib/core/models/SPG/organizationType.model.mjs +12 -0
  156. package/esm2020/lib/core/models/SSS/component.model.mjs +44 -0
  157. package/esm2020/lib/core/models/SSS/group.model.mjs +30 -0
  158. package/esm2020/lib/core/models/SSS/log.model.mjs +29 -0
  159. package/esm2020/lib/core/models/SSS/securityConfiguration.model.mjs +20 -0
  160. package/esm2020/lib/core/models/SSS/sistema.mjs +71 -0
  161. package/esm2020/lib/core/models/SSS/user.model.mjs +32 -0
  162. package/esm2020/lib/core/models/SSS/userDetail.model.mjs +73 -0
  163. package/esm2020/lib/core/models/SSS/userPermit.model.mjs +47 -0
  164. package/esm2020/lib/core/models/SSS/userRights.model.mjs +104 -0
  165. package/esm2020/lib/core/models/STB/MCargosAdicionales.mjs +84 -0
  166. package/esm2020/lib/core/models/STB/deduction.model.mjs +90 -0
  167. package/esm2020/lib/core/models/STB/deductionType.model.mjs +20 -0
  168. package/esm2020/lib/core/models/STB/unidadTributaria.model.mjs +14 -0
  169. package/esm2020/lib/core/models/basic-model.model.mjs +8 -0
  170. package/esm2020/lib/shared/components/catalogo/catalogo.component.mjs +72 -0
  171. package/esm2020/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.mjs +83 -0
  172. package/esm2020/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.mjs +74 -0
  173. package/esm2020/lib/shared/components/confirm/confirm.component.mjs +35 -0
  174. package/esm2020/lib/shared/components/icon/icon.component.mjs +22 -0
  175. package/esm2020/lib/shared/components/table-select/table-select.component.mjs +99 -0
  176. package/esm2020/lib/shared/material/customPaginator.mjs +24 -0
  177. package/esm2020/lib/shared/material/material.module.mjs +322 -0
  178. package/esm2020/lib/shared/pipes/iso-currency.pipe.mjs +43 -0
  179. package/esm2020/lib/shared/shared.module.mjs +66 -0
  180. package/esm2020/lib/sigesp.service.mjs +2050 -0
  181. package/esm2020/lib/validation.service.mjs +131 -0
  182. package/esm2020/public-api.mjs +156 -0
  183. package/esm2020/sigesp.mjs +5 -0
  184. package/fesm2015/{sigesp.js → sigesp.mjs} +524 -286
  185. package/fesm2015/sigesp.mjs.map +1 -0
  186. package/fesm2020/sigesp.mjs +14485 -0
  187. package/fesm2020/sigesp.mjs.map +1 -0
  188. package/index.d.ts +5 -0
  189. package/lib/app/app.component.d.ts +3 -0
  190. package/lib/app/app.module.d.ts +8 -0
  191. package/lib/core/models/SNO/MAuditoria.model.d.ts +1 -1
  192. package/lib/core/models/SNO/MFamiliares.model.d.ts +2 -2
  193. package/lib/shared/components/catalogo/catalogo.component.d.ts +4 -1
  194. package/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.d.ts +3 -0
  195. package/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.d.ts +4 -1
  196. package/lib/shared/components/confirm/confirm.component.d.ts +3 -0
  197. package/lib/shared/components/icon/icon.component.d.ts +3 -0
  198. package/lib/shared/components/table-select/table-select.component.d.ts +4 -1
  199. package/lib/shared/material/material.module.d.ts +46 -0
  200. package/lib/shared/pipes/iso-currency.pipe.d.ts +3 -0
  201. package/lib/shared/shared.module.d.ts +14 -0
  202. package/lib/sigesp.service.d.ts +6 -3
  203. package/lib/validation.service.d.ts +3 -0
  204. package/package.json +23 -11
  205. package/public-api.d.ts +8 -0
  206. package/bundles/sigesp.umd.js +0 -15577
  207. package/bundles/sigesp.umd.js.map +0 -1
  208. package/bundles/sigesp.umd.min.js +0 -2
  209. package/bundles/sigesp.umd.min.js.map +0 -1
  210. package/esm2015/lib/app/app.component.js +0 -15
  211. package/esm2015/lib/app/app.module.js +0 -23
  212. package/esm2015/lib/core/interfaces/Auditoria.js +0 -49
  213. package/esm2015/lib/core/interfaces/Banco.js +0 -2
  214. package/esm2015/lib/core/interfaces/Catalogo.js +0 -2
  215. package/esm2015/lib/core/interfaces/CentroCosto.js +0 -2
  216. package/esm2015/lib/core/interfaces/Clasificacion.js +0 -2
  217. package/esm2015/lib/core/interfaces/Cliente.js +0 -2
  218. package/esm2015/lib/core/interfaces/ComprobantePresupuestario.js +0 -2
  219. package/esm2015/lib/core/interfaces/Comunidad.js +0 -2
  220. package/esm2015/lib/core/interfaces/Configuracion.js +0 -2
  221. package/esm2015/lib/core/interfaces/ConfiguracionRPC.js +0 -2
  222. package/esm2015/lib/core/interfaces/ConfiguracionSCG.js +0 -2
  223. package/esm2015/lib/core/interfaces/ConfigurationSPG.js +0 -2
  224. package/esm2015/lib/core/interfaces/Constantes.js +0 -360
  225. package/esm2015/lib/core/interfaces/CuentaEgresos.js +0 -2
  226. package/esm2015/lib/core/interfaces/CuentaIngreso.js +0 -2
  227. package/esm2015/lib/core/interfaces/CuentaIngresoEstructura.js +0 -2
  228. package/esm2015/lib/core/interfaces/CuentaInstitucional.js +0 -2
  229. package/esm2015/lib/core/interfaces/CuentaPresupuesto.js +0 -2
  230. package/esm2015/lib/core/interfaces/CuentasPorPagar.js +0 -2
  231. package/esm2015/lib/core/interfaces/Documento.js +0 -2
  232. package/esm2015/lib/core/interfaces/EntradaSuministro.js +0 -2
  233. package/esm2015/lib/core/interfaces/Especialidad.js +0 -2
  234. package/esm2015/lib/core/interfaces/EstructuraPresupuestaria.js +0 -2
  235. package/esm2015/lib/core/interfaces/FuenteFinanciamiento.js +0 -2
  236. package/esm2015/lib/core/interfaces/IBancoCuentasPorPagar.js +0 -2
  237. package/esm2015/lib/core/interfaces/ITipoDepositos.js +0 -2
  238. package/esm2015/lib/core/interfaces/Integracion.js +0 -2
  239. package/esm2015/lib/core/interfaces/Lugares.js +0 -2
  240. package/esm2015/lib/core/interfaces/Moneda.js +0 -2
  241. package/esm2015/lib/core/interfaces/Nomina.js +0 -27
  242. package/esm2015/lib/core/interfaces/PlanUnicoCuenta.js +0 -2
  243. package/esm2015/lib/core/interfaces/Presupuesto.js +0 -2
  244. package/esm2015/lib/core/interfaces/Proveedor.js +0 -2
  245. package/esm2015/lib/core/interfaces/RecursosHumanos.js +0 -4
  246. package/esm2015/lib/core/interfaces/Request.js +0 -2
  247. package/esm2015/lib/core/interfaces/Response.js +0 -2
  248. package/esm2015/lib/core/interfaces/Seguridad.js +0 -2
  249. package/esm2015/lib/core/interfaces/Servicios.js +0 -2
  250. package/esm2015/lib/core/interfaces/Sistema.js +0 -2
  251. package/esm2015/lib/core/interfaces/Tributos.js +0 -2
  252. package/esm2015/lib/core/interfaces/UnidadTributaria.js +0 -2
  253. package/esm2015/lib/core/interfaces/Usuario.js +0 -2
  254. package/esm2015/lib/core/interfaces/UsuarioPrefijo.js +0 -2
  255. package/esm2015/lib/core/models/CFG/Empresa.model.js +0 -151
  256. package/esm2015/lib/core/models/CFG/Enterprise.model.js +0 -70
  257. package/esm2015/lib/core/models/CFG/MPrefijo.model.js +0 -64
  258. package/esm2015/lib/core/models/CFG/Procede.model.js +0 -31
  259. package/esm2015/lib/core/models/CFG/TasaCambio.model.js +0 -34
  260. package/esm2015/lib/core/models/CFG/comunidad.model.js +0 -22
  261. package/esm2015/lib/core/models/CFG/locations.model.js +0 -170
  262. package/esm2015/lib/core/models/CFG/moneda.model.js +0 -72
  263. package/esm2015/lib/core/models/CFG/userPrefix.model.js +0 -46
  264. package/esm2015/lib/core/models/CXP/MConceptosCXP.model.js +0 -34
  265. package/esm2015/lib/core/models/CXP/MTipoDocumentoCXP.model.js +0 -44
  266. package/esm2015/lib/core/models/RPC/clasification.model.js +0 -16
  267. package/esm2015/lib/core/models/RPC/configuracionRPC.model.js +0 -23
  268. package/esm2015/lib/core/models/RPC/document.model.js +0 -16
  269. package/esm2015/lib/core/models/RPC/proveedores.model.js +0 -9
  270. package/esm2015/lib/core/models/RPC/providerBeneficiary.model.js +0 -164
  271. package/esm2015/lib/core/models/RPC/specialty.model.js +0 -12
  272. package/esm2015/lib/core/models/SCB/bank.model.js +0 -181
  273. package/esm2015/lib/core/models/SCG/IncomeAccount.js +0 -83
  274. package/esm2015/lib/core/models/SCG/accountMarriage.model.js +0 -29
  275. package/esm2015/lib/core/models/SCG/centroCosto.model.js +0 -65
  276. package/esm2015/lib/core/models/SCG/configuracionSCG.model.js +0 -169
  277. package/esm2015/lib/core/models/SCG/cuentaInstitucional.model.js +0 -89
  278. package/esm2015/lib/core/models/SCG/planUnicoCuenta.model.js +0 -17
  279. package/esm2015/lib/core/models/SFV/MClienteModel.js +0 -116
  280. package/esm2015/lib/core/models/SIV/MDetaContable.model.js +0 -62
  281. package/esm2015/lib/core/models/SIV/MDetaEntrada.model.js +0 -94
  282. package/esm2015/lib/core/models/SIV/MEntradaSuministro.model.js +0 -132
  283. package/esm2015/lib/core/models/SIV/MTipoDepositos.model.js +0 -61
  284. package/esm2015/lib/core/models/SNO/MAnticipoPrestaciones.model.js +0 -100
  285. package/esm2015/lib/core/models/SNO/MArchivoTxtCampo.model.js +0 -61
  286. package/esm2015/lib/core/models/SNO/MArchivosTxt.model.js +0 -41
  287. package/esm2015/lib/core/models/SNO/MAsignacionCargo.model.js +0 -205
  288. package/esm2015/lib/core/models/SNO/MAspectoEvaluacion.model.js +0 -90
  289. package/esm2015/lib/core/models/SNO/MAuditoria.model.js +0 -61
  290. package/esm2015/lib/core/models/SNO/MBeneficiario.model.js +0 -137
  291. package/esm2015/lib/core/models/SNO/MCargaFamiliar.model.js +0 -52
  292. package/esm2015/lib/core/models/SNO/MCargaMasiva.model.js +0 -34
  293. package/esm2015/lib/core/models/SNO/MCargosPersonal.model.js +0 -101
  294. package/esm2015/lib/core/models/SNO/MClasificacionObrero.mdel.js +0 -46
  295. package/esm2015/lib/core/models/SNO/MCodigoUnicoRac.model.js +0 -39
  296. package/esm2015/lib/core/models/SNO/MComponete.model.js +0 -38
  297. package/esm2015/lib/core/models/SNO/MConceptoVacaciones.model.js +0 -85
  298. package/esm2015/lib/core/models/SNO/MConceptosNomina.model.js +0 -234
  299. package/esm2015/lib/core/models/SNO/MConceptosPersonalNomina.model.js +0 -97
  300. package/esm2015/lib/core/models/SNO/MConcursante.model.js +0 -317
  301. package/esm2015/lib/core/models/SNO/MConcurso.model.js +0 -246
  302. package/esm2015/lib/core/models/SNO/MConfiguracionSNO.model.js +0 -404
  303. package/esm2015/lib/core/models/SNO/MConstanteNomina.model.js +0 -67
  304. package/esm2015/lib/core/models/SNO/MConstantePersonalNomina.model.js +0 -79
  305. package/esm2015/lib/core/models/SNO/MDedicacion.model.js +0 -35
  306. package/esm2015/lib/core/models/SNO/MDefinicionNomina.model.js +0 -343
  307. package/esm2015/lib/core/models/SNO/MDefinicionesBasicas.model.js +0 -84
  308. package/esm2015/lib/core/models/SNO/MDeudaAnterior.model.js +0 -40
  309. package/esm2015/lib/core/models/SNO/MEncargaduria.model.js +0 -138
  310. package/esm2015/lib/core/models/SNO/MEscalaEvaluacion.model.js +0 -38
  311. package/esm2015/lib/core/models/SNO/MEscalaEvaluacionDt.model.js +0 -37
  312. package/esm2015/lib/core/models/SNO/MEstructuraOrganizativa.model.js +0 -119
  313. package/esm2015/lib/core/models/SNO/MFamiliares.model.js +0 -86
  314. package/esm2015/lib/core/models/SNO/MFeriados.model.js +0 -43
  315. package/esm2015/lib/core/models/SNO/MFideicomiso.model.js +0 -406
  316. package/esm2015/lib/core/models/SNO/MFormacionAcademica.model.js +0 -49
  317. package/esm2015/lib/core/models/SNO/MGrado.model.js +0 -47
  318. package/esm2015/lib/core/models/SNO/MHojaTiempo.model.js +0 -117
  319. package/esm2015/lib/core/models/SNO/MImpuestoSobreRenta.model.js +0 -73
  320. package/esm2015/lib/core/models/SNO/MMetodoBanco.model.js +0 -105
  321. package/esm2015/lib/core/models/SNO/MNominaSimple.model.js +0 -86
  322. package/esm2015/lib/core/models/SNO/MPeriodoNomina.model.js +0 -95
  323. package/esm2015/lib/core/models/SNO/MPermisos.model.js +0 -68
  324. package/esm2015/lib/core/models/SNO/MPersonal.model.js +0 -626
  325. package/esm2015/lib/core/models/SNO/MPersonalJubilado.model.js +0 -64
  326. package/esm2015/lib/core/models/SNO/MPersonalNomina.model.js +0 -313
  327. package/esm2015/lib/core/models/SNO/MPlanHorario.model.js +0 -116
  328. package/esm2015/lib/core/models/SNO/MPlantillaConstancia.model.js +0 -31
  329. package/esm2015/lib/core/models/SNO/MPrestamo.model.js +0 -221
  330. package/esm2015/lib/core/models/SNO/MPrimaGrados.model.js +0 -43
  331. package/esm2015/lib/core/models/SNO/MPrimasConcepto.model.js +0 -43
  332. package/esm2015/lib/core/models/SNO/MRango.model.js +0 -43
  333. package/esm2015/lib/core/models/SNO/MReportesRRHH.js +0 -402
  334. package/esm2015/lib/core/models/SNO/MRequisitosConcursante.model.js +0 -46
  335. package/esm2015/lib/core/models/SNO/MRequisitosConcursos.model.js +0 -37
  336. package/esm2015/lib/core/models/SNO/MRequisitosMinimos.model.js +0 -113
  337. package/esm2015/lib/core/models/SNO/MSalarioHistorico.model.js +0 -70
  338. package/esm2015/lib/core/models/SNO/MSolicitudEmpleo.model.js +0 -121
  339. package/esm2015/lib/core/models/SNO/MTablaVacaciones.model.js +0 -57
  340. package/esm2015/lib/core/models/SNO/MTablaVacacionesPeriodo.model.js +0 -40
  341. package/esm2015/lib/core/models/SNO/MTabulador.model.js +0 -96
  342. package/esm2015/lib/core/models/SNO/MTipoEvaluacion.model.js +0 -75
  343. package/esm2015/lib/core/models/SNO/MTipoPersonal.model.js +0 -34
  344. package/esm2015/lib/core/models/SNO/MTiposEnfermedad.model.js +0 -37
  345. package/esm2015/lib/core/models/SNO/MTrabajoAnterior.model.js +0 -65
  346. package/esm2015/lib/core/models/SNO/MUbicacionFisica.model.js +0 -61
  347. package/esm2015/lib/core/models/SNO/MVacacionesPersonal.model.js +0 -115
  348. package/esm2015/lib/core/models/SOC/charge.model.js +0 -66
  349. package/esm2015/lib/core/models/SOC/clause.model.js +0 -31
  350. package/esm2015/lib/core/models/SOC/clauseModality.model.js +0 -35
  351. package/esm2015/lib/core/models/SOC/configuracionSOC.model.js +0 -62
  352. package/esm2015/lib/core/models/SOC/service.model.js +0 -46
  353. package/esm2015/lib/core/models/SOC/serviceCharge.model.js +0 -37
  354. package/esm2015/lib/core/models/SOC/serviceType.model.js +0 -31
  355. package/esm2015/lib/core/models/SPG/UnidadAdministradoraCentral.js +0 -43
  356. package/esm2015/lib/core/models/SPG/administrativeUnit.model.js +0 -112
  357. package/esm2015/lib/core/models/SPG/comprobantePresupuestario.model.js +0 -51
  358. package/esm2015/lib/core/models/SPG/configurationSPG.model.js +0 -59
  359. package/esm2015/lib/core/models/SPG/cuentaPresupuesto.model.js +0 -120
  360. package/esm2015/lib/core/models/SPG/estructuraPresupuestaria.model.js +0 -176
  361. package/esm2015/lib/core/models/SPG/expensiveAccount.model.js +0 -108
  362. package/esm2015/lib/core/models/SPG/fuenteFinanciamiento.model.js +0 -31
  363. package/esm2015/lib/core/models/SPG/incomeStructureAccount.model.js +0 -81
  364. package/esm2015/lib/core/models/SPG/organizationType.model.js +0 -12
  365. package/esm2015/lib/core/models/SSS/component.model.js +0 -44
  366. package/esm2015/lib/core/models/SSS/group.model.js +0 -30
  367. package/esm2015/lib/core/models/SSS/log.model.js +0 -29
  368. package/esm2015/lib/core/models/SSS/securityConfiguration.model.js +0 -20
  369. package/esm2015/lib/core/models/SSS/sistema.js +0 -71
  370. package/esm2015/lib/core/models/SSS/user.model.js +0 -32
  371. package/esm2015/lib/core/models/SSS/userDetail.model.js +0 -73
  372. package/esm2015/lib/core/models/SSS/userPermit.model.js +0 -47
  373. package/esm2015/lib/core/models/SSS/userRights.model.js +0 -104
  374. package/esm2015/lib/core/models/STB/MCargosAdicionales.js +0 -84
  375. package/esm2015/lib/core/models/STB/deduction.model.js +0 -90
  376. package/esm2015/lib/core/models/STB/deductionType.model.js +0 -20
  377. package/esm2015/lib/core/models/STB/unidadTributaria.model.js +0 -14
  378. package/esm2015/lib/core/models/basic-model.model.js +0 -8
  379. package/esm2015/lib/shared/components/catalogo/catalogo.component.js +0 -59
  380. package/esm2015/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.js +0 -70
  381. package/esm2015/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.js +0 -62
  382. package/esm2015/lib/shared/components/confirm/confirm.component.js +0 -30
  383. package/esm2015/lib/shared/components/icon/icon.component.js +0 -20
  384. package/esm2015/lib/shared/components/table-select/table-select.component.js +0 -85
  385. package/esm2015/lib/shared/material/customPaginator.js +0 -24
  386. package/esm2015/lib/shared/material/material.module.js +0 -145
  387. package/esm2015/lib/shared/pipes/iso-currency.pipe.js +0 -39
  388. package/esm2015/lib/shared/shared.module.js +0 -51
  389. package/esm2015/lib/sigesp.service.js +0 -2084
  390. package/esm2015/lib/validation.service.js +0 -130
  391. package/esm2015/public-api.js +0 -148
  392. package/esm2015/sigesp.js +0 -15
  393. package/fesm2015/sigesp.js.map +0 -1
  394. package/sigesp.d.ts +0 -32
  395. package/sigesp.metadata.json +0 -1
@@ -0,0 +1,246 @@
1
+ import { MBasicModel } from "../basic-model.model";
2
+ import { MRequisitosConcursos } from "./MRequisitosConcursos.model";
3
+ export class MConcurso extends MBasicModel {
4
+ constructor(e = null) {
5
+ super();
6
+ this.idEnterprise = 0;
7
+ this.idEmpresa = 0;
8
+ this.idConcurso = 0;
9
+ this.codigoConcurso = '';
10
+ this.denominacionConcurso = '';
11
+ this.fechaAperturaConcurso = '';
12
+ this.fechaCierreConcurso = '';
13
+ this.idCargo = 0;
14
+ this.codigoCargo = '';
15
+ this.denominacionCargo = '';
16
+ this.tipo = '';
17
+ this.cantidadCargos = 0;
18
+ this.estatusConcurso = '1';
19
+ this.denominacionEstatus = '';
20
+ this.detalleRequisitos = [];
21
+ this.eliminarDetalles = [];
22
+ if (e) {
23
+ this.idEnterprise = +e.id_enterprise;
24
+ this.idEmpresa = +e.id_empresa;
25
+ this.idConcurso = parseInt(e.id_concurso);
26
+ this.codigoConcurso = e.codcon;
27
+ this.denominacionConcurso = e.dencon;
28
+ this.fechaAperturaConcurso = e.fecapecon;
29
+ this.fechaCierreConcurso = e.fecciecon;
30
+ this.idCargo = parseInt(e.id_carper);
31
+ this.codigoCargo = e.codcar;
32
+ this.denominacionCargo = e.descar;
33
+ this.tipo = e.tipo;
34
+ this.cantidadCargos = parseInt(e.cantcar);
35
+ this.estatusConcurso = e.estcon;
36
+ this.denominacionEstatus = this.estatusConcurso == '1' ? 'Abierto' : 'Cerrado';
37
+ if (e.detalles_requisitos) {
38
+ this.detalleRequisitos = e.detalles_requisitos.map(e => new MRequisitosConcursos(e));
39
+ }
40
+ }
41
+ }
42
+ dataInterface() {
43
+ return {
44
+ id_enterprise: this.idEnterprise.toString(),
45
+ id_empresa: this.idEmpresa,
46
+ id_concurso: this.idConcurso.toString(),
47
+ codcon: this.codigoConcurso,
48
+ dencon: this.denominacionConcurso,
49
+ fecapecon: this.fechaAperturaConcurso,
50
+ fecciecon: this.fechaCierreConcurso,
51
+ id_carper: this.idCargo.toString(),
52
+ codcar: this.codigoCargo,
53
+ descar: this.denominacionCargo,
54
+ tipo: this.tipo,
55
+ cantcar: this.cantidadCargos.toString(),
56
+ estcon: this.estatusConcurso,
57
+ detalles_requisitos: this.detalleRequisitos.map(function (e) { return e.dataInterface(); }),
58
+ eliminar_detalles: this.eliminarDetalles,
59
+ };
60
+ }
61
+ }
62
+ export class MPrevioEvaluacion extends MBasicModel {
63
+ constructor(e = null) {
64
+ super();
65
+ this.idEnterprise = 0;
66
+ this.idEmpresa = 0;
67
+ this.idPrevio = 0;
68
+ this.proceso = '';
69
+ this.idConcurso = 0;
70
+ this.codigoConcurso = '';
71
+ this.nombreConcurso = '';
72
+ this.idConcursante = 0;
73
+ this.codigoConcursante = '';
74
+ this.nombreConcursante = '';
75
+ this.idTipoEvaluacion = 0;
76
+ this.codigoTipoEvaluacion = '';
77
+ this.nombreTipoEvaluacion = '';
78
+ this.fechaRegistro = '';
79
+ this.valorMinimoRequerido = 0;
80
+ this.usuarioRegistro = '';
81
+ this.horaRegistro = '';
82
+ this.estatusRegistro = 0;
83
+ this.detallesRegistro = [];
84
+ if (e) {
85
+ this.idEnterprise = +e.id_enterprise;
86
+ this.idEmpresa = +e.id_empresa;
87
+ this.idPrevio = parseInt(e.id_previo);
88
+ this.proceso = e.proceso;
89
+ this.idConcurso = parseInt(e.id_concurso);
90
+ this.codigoConcurso = e.codcon,
91
+ this.nombreConcurso = e.dencon,
92
+ this.idConcursante = parseInt(e.id_concursante);
93
+ this.codigoConcursante = e.cedper,
94
+ this.nombreConcursante = e.nomper,
95
+ this.idTipoEvaluacion = parseInt(e.id_tipoeval);
96
+ this.codigoTipoEvaluacion = e.codtipeval;
97
+ this.nombreTipoEvaluacion = e.dentipeval;
98
+ this.fechaRegistro = e.fecha;
99
+ this.valorMinimoRequerido = parseFloat(e.punreqmin);
100
+ this.usuarioRegistro = e.usuario;
101
+ this.horaRegistro = e.hora;
102
+ this.estatusRegistro = parseInt(e.estatus);
103
+ this.tipo = e.tipo;
104
+ this.detallesRegistro = e.detalles.map(e => new MPrevioEvaluacionDt(e));
105
+ }
106
+ else {
107
+ this.isNew = true;
108
+ }
109
+ }
110
+ dataInterface() {
111
+ return {
112
+ id_enterprise: this.idEnterprise.toString(),
113
+ id_empresa: this.idEmpresa,
114
+ id_previo: this.idPrevio.toString(),
115
+ proceso: this.proceso,
116
+ id_concurso: this.idConcurso.toString(),
117
+ codcon: this.codigoConcurso,
118
+ dencon: this.nombreConcurso,
119
+ id_concursante: this.idConcursante.toString(),
120
+ cedper: this.codigoConcursante,
121
+ nomper: this.nombreConcursante,
122
+ id_tipoeval: this.idTipoEvaluacion.toString(),
123
+ codtipeval: this.codigoTipoEvaluacion,
124
+ dentipeval: this.nombreTipoEvaluacion,
125
+ fecha: this.fechaRegistro,
126
+ punreqmin: this.valorMinimoRequerido.toString(),
127
+ usuario: this.usuarioRegistro,
128
+ hora: this.horaRegistro,
129
+ estatus: this.estatusRegistro.toString(),
130
+ tipo: this.tipo,
131
+ detalles: this.detallesRegistro.map(function (e) { return e.dataInterface(); })
132
+ };
133
+ }
134
+ }
135
+ export class MPrevioEvaluacionDt extends MBasicModel {
136
+ constructor(e = null) {
137
+ super();
138
+ this.idEnterprise = 0;
139
+ this.idEmpresa = 0;
140
+ this.idPrevio = 0;
141
+ this.idAspecto = 0;
142
+ this.idTipoEvaluacion = 0;
143
+ this.idItem = 0;
144
+ this.idDtPrevio = 0;
145
+ this.codigo = '';
146
+ this.descripcion = '';
147
+ this.puntos = 0;
148
+ this.valorMaximo = 0;
149
+ if (e) {
150
+ this.idEnterprise = +e.id_enterprise;
151
+ this.idEmpresa = +e.id_empresa;
152
+ this.idPrevio = parseInt(e.id_previo);
153
+ this.idAspecto = parseInt(e.id_aspecto);
154
+ this.idTipoEvaluacion = parseInt(e.id_tipoeval);
155
+ this.idItem = parseInt(e.id_item);
156
+ this.idDtPrevio = parseInt(e.id_dt_previo);
157
+ this.codigo = e.codite;
158
+ this.descripcion = e.denite;
159
+ this.puntos = parseInt(e.puntos);
160
+ this.valorMaximo = parseInt(e.valormax);
161
+ }
162
+ else {
163
+ this.isNew = true;
164
+ }
165
+ }
166
+ dataInterface() {
167
+ return {
168
+ id_enterprise: this.idEnterprise.toString(),
169
+ id_empresa: this.idEmpresa,
170
+ id_previo: this.idPrevio.toString(),
171
+ id_tipoeval: this.idTipoEvaluacion.toString(),
172
+ id_aspecto: this.idAspecto.toString(),
173
+ id_item: this.idItem.toString(),
174
+ codite: this.codigo,
175
+ denite: this.descripcion,
176
+ puntos: this.puntos.toString(),
177
+ valormax: this.valorMaximo.toString(),
178
+ id_dt_previo: this.idDtPrevio.toString(),
179
+ };
180
+ }
181
+ }
182
+ export class MResultadosEvaluacion extends MBasicModel {
183
+ constructor(e) {
184
+ super();
185
+ this.idEnterprise = 0;
186
+ this.idEmpresa = 0;
187
+ this.idEvaluacion = 0;
188
+ this.idConcurso = 0;
189
+ this.codigoConcurso = '';
190
+ this.nombreConcurso = '';
191
+ this.idConcursante = 0;
192
+ this.codigoConcursante = '';
193
+ this.nombreConcursante = '';
194
+ this.observacion = '';
195
+ this.fechaRegistro = '';
196
+ this.resultado_tec = 0;
197
+ this.resultado_total = 0;
198
+ this.resultado_psi = 0;
199
+ this.resultado_rqm = 0;
200
+ this.usuarioRegistro = '';
201
+ if (e) {
202
+ this.idEnterprise = +e.id_enterprise;
203
+ this.idEmpresa = +e.id_empresa;
204
+ this.idEvaluacion = parseInt(e.id_evaluacion);
205
+ this.idConcurso = parseInt(e.id_concurso);
206
+ this.codigoConcurso = e.codcon,
207
+ this.nombreConcurso = e.dencon,
208
+ this.idConcursante = parseInt(e.id_concursante);
209
+ this.codigoConcursante = e.cedper,
210
+ this.nombreConcursante = e.nomper,
211
+ this.observacion = e.observacion,
212
+ this.fechaRegistro = e.fecha;
213
+ this.usuarioRegistro = e.usuario;
214
+ this.resultado_tec = parseFloat(e.resultado_tec);
215
+ this.resultado_total = parseFloat(e.resultado_total);
216
+ this.resultado_psi = parseFloat(e.resultado_psi);
217
+ this.resultado_rqm = parseFloat(e.resultado_rqm);
218
+ this.conclusion = e.conclusion;
219
+ }
220
+ else {
221
+ this.isNew = true;
222
+ }
223
+ }
224
+ dataInterface() {
225
+ return {
226
+ id_enterprise: this.idEnterprise.toString(),
227
+ id_empresa: this.idEmpresa,
228
+ id_evaluacion: this.idEvaluacion.toString(),
229
+ id_concurso: this.idConcurso.toString(),
230
+ codcon: this.codigoConcurso,
231
+ dencon: this.nombreConcurso,
232
+ id_concursante: this.idConcursante.toString(),
233
+ cedper: this.codigoConcursante,
234
+ nomper: this.nombreConcursante,
235
+ observacion: this.observacion,
236
+ fecha: this.fechaRegistro,
237
+ usuario: this.usuarioRegistro,
238
+ resultado_tec: this.resultado_tec.toString(),
239
+ resultado_psi: this.resultado_psi.toString(),
240
+ resultado_total: this.resultado_total.toString(),
241
+ resultado_rqm: this.resultado_rqm.toString(),
242
+ conclusion: this.conclusion,
243
+ };
244
+ }
245
+ }
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNvbmN1cnNvLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lnZXNwL3NyYy9saWIvY29yZS9tb2RlbHMvU05PL01Db25jdXJzby5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFcEUsTUFBTSxPQUFPLFNBQVUsU0FBUSxXQUFXO0lBa0J0QyxZQUFhLElBQVksSUFBSTtRQUN6QixLQUFLLEVBQUUsQ0FBQztRQWxCTCxpQkFBWSxHQUFRLENBQUMsQ0FBQztRQUN0QixjQUFTLEdBQVEsQ0FBQyxDQUFDO1FBQ25CLGVBQVUsR0FBUyxDQUFDLENBQUM7UUFDckIsbUJBQWMsR0FBUyxFQUFFLENBQUM7UUFDMUIseUJBQW9CLEdBQVMsRUFBRSxDQUFDO1FBQ2hDLDBCQUFxQixHQUFTLEVBQUUsQ0FBQztRQUNqQyx3QkFBbUIsR0FBUyxFQUFFLENBQUM7UUFDL0IsWUFBTyxHQUFTLENBQUMsQ0FBQztRQUNsQixnQkFBVyxHQUFTLEVBQUUsQ0FBQztRQUN2QixzQkFBaUIsR0FBUyxFQUFFLENBQUM7UUFDN0IsU0FBSSxHQUFTLEVBQUUsQ0FBQztRQUNoQixtQkFBYyxHQUFTLENBQUMsQ0FBQztRQUN6QixvQkFBZSxHQUFTLEdBQUcsQ0FBQztRQUM1Qix3QkFBbUIsR0FBUSxFQUFFLENBQUM7UUFDOUIsc0JBQWlCLEdBQXlCLEVBQUUsQ0FBQztRQUM3QyxxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFJaEMsSUFBSSxDQUFDLEVBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxHQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQTtZQUM1QixJ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QUMsUUFBUSxFQUFFO1lBQzFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUztZQUMxQixhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDM0MsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYztZQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDM0IsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQzdDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQzlCLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQzdCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUM1QyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDNUMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFO1lBQ2hELGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUM1QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDOUIsQ0FBQTtJQUNMLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1CYXNpY01vZGVsIH0gZnJvbSBcIi4uL2Jhc2ljLW1vZGVsLm1vZGVsXCI7XHJcbmltcG9ydCB7IElDb25jdXJzbywgSVByZXZpb0V2YWx1YWNpb24sIElQcmV2aW9FdmFsdWFjaW9uRHQsIElSZXN1bHRhZG9zRXZhbHVhY2lvbiB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL1JlY3Vyc29zSHVtYW5vc1wiO1xyXG5pbXBvcnQgeyBNUmVxdWlzaXRvc0NvbmN1cnNvcyB9IGZyb20gXCIuL01SZXF1aXNpdG9zQ29uY3Vyc29zLm1vZGVsXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTUNvbmN1cnNvIGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRDb25jdXJzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvQ29uY3Vyc286IHN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uQ29uY3Vyc286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBmZWNoYUFwZXJ0dXJhQ29uY3Vyc286IHN0cmluZz0nJztcdFxyXG4gICAgcHVibGljIGZlY2hhQ2llcnJlQ29uY3Vyc286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZENhcmdvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjb2RpZ29DYXJnbzogc3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25DYXJnbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIHRpcG86IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjYW50aWRhZENhcmdvczogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgZXN0YXR1c0NvbmN1cnNvOiBzdHJpbmc9JzEnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvbkVzdGF0dXM6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGRldGFsbGVSZXF1aXNpdG9zOiBNUmVxdWlzaXRvc0NvbmN1cnNvc1tdPVtdO1xyXG4gICAgcHVibGljIGVsaW1pbmFyRGV0YWxsZXM6bnVtYmVyW109W107XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yIChlOklDb25jdXJzbz1udWxsKXtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNvPXBhcnNlSW50KGUuaWRfY29uY3Vyc28pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NvbmN1cnNvPWUuY29kY29uO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkNvbmN1cnNvPWUuZGVuY29uO1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhQXBlcnR1cmFDb25jdXJzbz1lLmZlY2FwZWNvbjtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUNpZXJyZUNvbmN1cnNvPWUuZmVjY2llY29uO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ2FyZ289cGFyc2VJbnQoZS5pZF9jYXJwZXIpO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NhcmdvPWUuY29kY2FyO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkNhcmdvPWUuZGVzY2FyO1xyXG4gICAgICAgICAgICB0aGlzLnRpcG89ZS50aXBvO1xyXG4gICAgICAgICAgICB0aGlzLmNhbnRpZGFkQ2FyZ29zPXBhcnNlSW50KGUuY2FudGNhcik7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c0NvbmN1cnNvPWUuZXN0Y29uO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkVzdGF0dXM9dGhpcy5lc3RhdHVzQ29uY3Vyc289PScxJz8gJ0FiaWVydG8nOidDZXJyYWRvJztcclxuICAgICAgICAgICAgaWYoZS5kZXRhbGxlc19yZXF1aXNpdG9zKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGV0YWxsZVJlcXVpc2l0b3M9ZS5kZXRhbGxlc19yZXF1aXNpdG9zLm1hcChlPT4gbmV3IE1SZXF1aXNpdG9zQ29uY3Vyc29zKGUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklDb25jdXJzb3tcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbnRlcnByaXNlOnRoaXMuaWRFbnRlcnByaXNlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2HCoDp0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc286IHRoaXMuaWRDb25jdXJzby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjb2Rjb246IHRoaXMuY29kaWdvQ29uY3Vyc28sXHJcbiAgICAgICAgICAgIGRlbmNvbjogdGhpcy5kZW5vbWluYWNpb25Db25jdXJzbyxcclxuICAgICAgICAgICAgZmVjYXBlY29uOiB0aGlzLmZlY2hhQXBlcnR1cmFDb25jdXJzbyxcclxuICAgICAgICAgICAgZmVjY2llY29uOiB0aGlzLmZlY2hhQ2llcnJlQ29uY3Vyc28sXHJcbiAgICAgICAgICAgIGlkX2NhcnBlcjogdGhpcy5pZENhcmdvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZGNhcjp0aGlzLmNvZGlnb0NhcmdvLFxyXG4gICAgICAgICAgICBkZXNjYXI6dGhpcy5kZW5vbWluYWNpb25DYXJnbyxcclxuICAgICAgICAgICAgdGlwbzogdGhpcy50aXBvLFxyXG4gICAgICAgICAgICBjYW50Y2FyOiB0aGlzLmNhbnRpZGFkQ2FyZ29zLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGVzdGNvbjogdGhpcy5lc3RhdHVzQ29uY3Vyc28sXHJcbiAgICAgICAgICAgIGRldGFsbGVzX3JlcXVpc2l0b3M6IHRoaXMuZGV0YWxsZVJlcXVpc2l0b3MubWFwKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLmRhdGFJbnRlcmZhY2UoKTsgfSksXHJcbiAgICAgICAgICAgIGVsaW1pbmFyX2RldGFsbGVzOiB0aGlzLmVsaW1pbmFyRGV0YWxsZXMsXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1QcmV2aW9FdmFsdWFjaW9uIGV4dGVuZHMgTUJhc2ljTW9kZWwge1xyXG4gICAgcHVibGljIGlkRW50ZXJwcmlzZTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEVtcHJlc2E6bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGlkUHJldmlvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBwcm9jZXNvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZENvbmN1cnNvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjb2RpZ29Db25jdXJzbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZUNvbmN1cnNvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgaWRDb25jdXJzYW50ZTogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvQ29uY3Vyc2FudGU6IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVDb25jdXJzYW50ZTogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGlkVGlwb0V2YWx1YWNpb246IG51bWJlcj0wO1xyXG4gICAgcHVibGljIGNvZGlnb1RpcG9FdmFsdWFjaW9uOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlVGlwb0V2YWx1YWNpb246IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBmZWNoYVJlZ2lzdHJvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyB2YWxvck1pbmltb1JlcXVlcmlkbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgdXN1YXJpb1JlZ2lzdHJvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBob3JhUmVnaXN0cm86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGVzdGF0dXNSZWdpc3RybzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgdGlwbzpzdHJpbmc7XHJcbiAgICBwdWJsaWMgZGV0YWxsZXNSZWdpc3RybzpNUHJldmlvRXZhbHVhY2lvbkR0W109W107XHJcblxyXG4gICAgY29uc3RydWN0b3IgKGU6IElQcmV2aW9FdmFsdWFjaW9uPW51bGwpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZFByZXZpbz0gcGFyc2VJbnQoZS5pZF9wcmV2aW8pO1xyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc289ZS5wcm9jZXNvO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc289IHBhcnNlSW50KGUuaWRfY29uY3Vyc28pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NvbmN1cnNvPWUuY29kY29uLFxyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZUNvbmN1cnNvPWUuZGVuY29uLFxyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc2FudGU9IHBhcnNlSW50KGUuaWRfY29uY3Vyc2FudGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NvbmN1cnNhbnRlPWUuY2VkcGVyLFxyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZUNvbmN1cnNhbnRlPWUubm9tcGVyLFxyXG4gICAgICAgICAgICB0aGlzLmlkVGlwb0V2YWx1YWNpb249IHBhcnNlSW50KGUuaWRfdGlwb2V2YWwpO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1RpcG9FdmFsdWFjaW9uPWUuY29kdGlwZXZhbDtcclxuICAgICAgICAgICAgdGhpcy5ub21icmVUaXBvRXZhbHVhY2lvbj1lLmRlbnRpcGV2YWw7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFSZWdpc3Rybz1lLmZlY2hhO1xyXG4gICAgICAgICAgICB0aGlzLnZhbG9yTWluaW1vUmVxdWVyaWRvPSBwYXJzZUZsb2F0KGUucHVucmVxbWluKTtcclxuICAgICAgICAgICAgdGhpcy51c3VhcmlvUmVnaXN0cm89ZS51c3VhcmlvO1xyXG4gICAgICAgICAgICB0aGlzLmhvcmFSZWdpc3Rybz1lLmhvcmE7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1JlZ2lzdHJvPSBwYXJzZUludChlLmVzdGF0dXMpO1xyXG4gICAgICAgICAgICB0aGlzLnRpcG89ZS50aXBvO1xyXG4gICAgICAgICAgICB0aGlzLmRldGFsbGVzUmVnaXN0cm89IGUuZGV0YWxsZXMubWFwKGU9Pm5ldyBNUHJldmlvRXZhbHVhY2lvbkR0KGUpKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJUHJldmlvRXZhbHVhY2lvbntcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbnRlcnByaXNlOnRoaXMuaWRFbnRlcnByaXNlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2HCoDp0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgICAgICAgaWRfcHJldmlvOiB0aGlzLmlkUHJldmlvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIHByb2Nlc286IHRoaXMucHJvY2VzbyxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc286IHRoaXMuaWRDb25jdXJzby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjb2Rjb246IHRoaXMuY29kaWdvQ29uY3Vyc28sXHJcbiAgICAgICAgICAgIGRlbmNvbjogdGhpcy5ub21icmVDb25jdXJzbyxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc2FudGU6IHRoaXMuaWRDb25jdXJzYW50ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjZWRwZXI6IHRoaXMuY29kaWdvQ29uY3Vyc2FudGUsXHJcbiAgICAgICAgICAgIG5vbXBlcjogdGhpcy5ub21icmVDb25jdXJzYW50ZSxcclxuICAgICAgICAgICAgaWRfdGlwb2V2YWw6IHRoaXMuaWRUaXBvRXZhbHVhY2lvbi50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjb2R0aXBldmFsOiB0aGlzLmNvZGlnb1RpcG9FdmFsdWFjaW9uLFxyXG4gICAgICAgICAgICBkZW50aXBldmFsOiB0aGlzLm5vbWJyZVRpcG9FdmFsdWFjaW9uLFxyXG4gICAgICAgICAgICBmZWNoYTogdGhpcy5mZWNoYVJlZ2lzdHJvLFxyXG4gICAgICAgICAgICBwdW5yZXFtaW46IHRoaXMudmFsb3JNaW5pbW9SZXF1ZXJpZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgdXN1YXJpbzogdGhpcy51c3VhcmlvUmVnaXN0cm8sXHJcbiAgICAgICAgICAgIGhvcmE6IHRoaXMuaG9yYVJlZ2lzdHJvLFxyXG4gICAgICAgICAgICBlc3RhdHVzOiB0aGlzLmVzdGF0dXNSZWdpc3Ryby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB0aXBvOiB0aGlzLnRpcG8sXHJcbiAgICAgICAgICAgIGRldGFsbGVzOnRoaXMuZGV0YWxsZXNSZWdpc3Ryby5tYXAoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGUuZGF0YUludGVyZmFjZSgpOyB9KVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNUHJldmlvRXZhbHVhY2lvbkR0IGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRQcmV2aW86IG51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkQXNwZWN0bzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRUaXBvRXZhbHVhY2lvbjogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRJdGVtOiBudW1iZXI9MDsgICAgXHJcbiAgICBwdWJsaWMgaWREdFByZXZpbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjb2RpZ286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBkZXNjcmlwY2lvbjogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIHB1bnRvczogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgdmFsb3JNYXhpbW86IG51bWJlcj0wO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yIChlOiBJUHJldmlvRXZhbHVhY2lvbkR0PW51bGwpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZFByZXZpbz0gcGFyc2VJbnQoZS5pZF9wcmV2aW8pO1xyXG4gICAgICAgICAgICB0aGlzLmlkQXNwZWN0bz0gcGFyc2VJbnQoZS5pZF9hc3BlY3RvKTtcclxuICAgICAgICAgICAgdGhpcy5pZFRpcG9FdmFsdWFjaW9uPSBwYXJzZUludChlLmlkX3RpcG9ldmFsKTtcclxuICAgICAgICAgICAgdGhpcy5pZEl0ZW09IHBhcnNlSW50KGUuaWRfaXRlbSk7XHJcbiAgICAgICAgICAgIHRoaXMuaWREdFByZXZpbz0gcGFyc2VJbnQoZS5pZF9kdF9wcmV2aW8pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnbz1lLmNvZGl0ZTtcclxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwY2lvbj1lLmRlbml0ZTtcclxuICAgICAgICAgICAgdGhpcy5wdW50b3M9IHBhcnNlSW50KGUucHVudG9zKTtcclxuICAgICAgICAgICAgdGhpcy52YWxvck1heGltbz0gcGFyc2VJbnQoZS52YWxvcm1heCk7XHJcbiAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmlzTmV3PXRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklQcmV2aW9FdmFsdWFjaW9uRHR7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRfZW50ZXJwcmlzZTp0aGlzLmlkRW50ZXJwcmlzZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9lbXByZXNhwqA6dGhpcy5pZEVtcHJlc2EsXHJcbiAgICAgICAgICAgIGlkX3ByZXZpbzogdGhpcy5pZFByZXZpby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF90aXBvZXZhbDogdGhpcy5pZFRpcG9FdmFsdWFjaW9uLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2FzcGVjdG86IHRoaXMuaWRBc3BlY3RvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2l0ZW06IHRoaXMuaWRJdGVtLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZGl0ZTogdGhpcy5jb2RpZ28sXHJcbiAgICAgICAgICAgIGRlbml0ZTogdGhpcy5kZXNjcmlwY2lvbixcclxuICAgICAgICAgICAgcHVudG9zOiB0aGlzLnB1bnRvcy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB2YWxvcm1heDogdGhpcy52YWxvck1heGltby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9kdF9wcmV2aW86IHRoaXMuaWREdFByZXZpby50b1N0cmluZygpLFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNUmVzdWx0YWRvc0V2YWx1YWNpb24gZXh0ZW5kcyBNQmFzaWNNb2RlbHtcclxuICAgIHB1YmxpYyBpZEVudGVycHJpc2U6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRFbXByZXNhOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBpZEV2YWx1YWNpb246IG51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkQ29uY3Vyc286IG51bWJlcj0wO1xyXG4gICAgcHVibGljIGNvZGlnb0NvbmN1cnNvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlQ29uY3Vyc286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZENvbmN1cnNhbnRlOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjb2RpZ29Db25jdXJzYW50ZTogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZUNvbmN1cnNhbnRlOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgb2JzZXJ2YWNpb246IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBmZWNoYVJlZ2lzdHJvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyByZXN1bHRhZG9fdGVjOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyByZXN1bHRhZG9fdG90YWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgcmVzdWx0YWRvX3BzaTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyByZXN1bHRhZG9fcnFtOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyB1c3VhcmlvUmVnaXN0cm86IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjb25jbHVzaW9uOnN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvciAoZT86IElSZXN1bHRhZG9zRXZhbHVhY2lvbikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgaWYgKGUpe1xyXG4gICAgICAgICAgICB0aGlzLmlkRW50ZXJwcmlzZT0rZS5pZF9lbnRlcnByaXNlOyAgXHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPStlLmlkX2VtcHJlc2HCoFxyXG4gICAgICAgICAgICB0aGlzLmlkRXZhbHVhY2lvbj0gcGFyc2VJbnQoZS5pZF9ldmFsdWFjaW9uKTtcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNvPSBwYXJzZUludChlLmlkX2NvbmN1cnNvKTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29Db25jdXJzbz1lLmNvZGNvbixcclxuICAgICAgICAgICAgdGhpcy5ub21icmVDb25jdXJzbz1lLmRlbmNvbixcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNhbnRlPSBwYXJzZUludChlLmlkX2NvbmN1cnNhbnRlKTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29Db25jdXJzYW50ZT1lLmNlZHBlcixcclxuICAgICAgICAgICAgdGhpcy5ub21icmVDb25jdXJzYW50ZT1lLm5vbXBlcixcclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZhY2lvbj1lLm9ic2VydmFjaW9uLFxyXG4gICAgICAgICAgICB0aGlzLmZlY2hhUmVnaXN0cm89ZS5mZWNoYTtcclxuICAgICAgICAgICAgdGhpcy51c3VhcmlvUmVnaXN0cm89ZS51c3VhcmlvO1xyXG4gICAgICAgICAgICB0aGlzLnJlc3VsdGFkb190ZWM9IHBhcnNlRmxvYXQoZS5yZXN1bHRhZG9fdGVjKTtcclxuICAgICAgICAgICAgdGhpcy5yZXN1bHRhZG9fdG90YWw9cGFyc2VGbG9hdChlLnJlc3VsdGFkb190b3RhbCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzdWx0YWRvX3BzaT1wYXJzZUZsb2F0KGUucmVzdWx0YWRvX3BzaSk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzdWx0YWRvX3JxbT0gcGFyc2VGbG9hdChlLnJlc3VsdGFkb19ycW0pO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmNsdXNpb249ZS5jb25jbHVzaW9uO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlzTmV3PXRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklSZXN1bHRhZG9zRXZhbHVhY2lvbntcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbnRlcnByaXNlOnRoaXMuaWRFbnRlcnByaXNlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2HCoDp0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgICAgICAgaWRfZXZhbHVhY2lvbjogdGhpcy5pZEV2YWx1YWNpb24udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc286IHRoaXMuaWRDb25jdXJzby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjb2Rjb246IHRoaXMuY29kaWdvQ29uY3Vyc28sXHJcbiAgICAgICAgICAgIGRlbmNvbjogdGhpcy5ub21icmVDb25jdXJzbyxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc2FudGU6IHRoaXMuaWRDb25jdXJzYW50ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjZWRwZXI6IHRoaXMuY29kaWdvQ29uY3Vyc2FudGUsXHJcbiAgICAgICAgICAgIG5vbXBlcjogdGhpcy5ub21icmVDb25jdXJzYW50ZSxcclxuICAgICAgICAgICAgb2JzZXJ2YWNpb246IHRoaXMub2JzZXJ2YWNpb24sXHJcbiAgICAgICAgICAgIGZlY2hhOiB0aGlzLmZlY2hhUmVnaXN0cm8sXHJcbiAgICAgICAgICAgIHVzdWFyaW86IHRoaXMudXN1YXJpb1JlZ2lzdHJvLFxyXG4gICAgICAgICAgICByZXN1bHRhZG9fdGVjOiB0aGlzLnJlc3VsdGFkb190ZWMudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgcmVzdWx0YWRvX3BzaTogdGhpcy5yZXN1bHRhZG9fcHNpLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIHJlc3VsdGFkb190b3RhbDogdGhpcy5yZXN1bHRhZG9fdG90YWwudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgcmVzdWx0YWRvX3JxbTogdGhpcy5yZXN1bHRhZG9fcnFtLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvbmNsdXNpb246IHRoaXMuY29uY2x1c2lvbixcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcbiJdfQ==