sigesp 0.10.0-20240129 → 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 (402) 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} +641 -327
  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/interfaces/Nomina.d.ts +3 -0
  192. package/lib/core/interfaces/Presupuesto.d.ts +18 -6
  193. package/lib/core/interfaces/RecursosHumanos.d.ts +6 -0
  194. package/lib/core/models/SNO/MAuditoria.model.d.ts +1 -1
  195. package/lib/core/models/SNO/MFamiliares.model.d.ts +2 -2
  196. package/lib/core/models/SNO/MPersonal.model.d.ts +3 -0
  197. package/lib/core/models/SNO/MPersonalJubilado.model.d.ts +3 -0
  198. package/lib/core/models/SNO/MPersonalNomina.model.d.ts +3 -0
  199. package/lib/core/models/SPG/UnidadAdministradoraCentral.d.ts +15 -0
  200. package/lib/core/models/SPG/administrativeUnit.model.d.ts +4 -2
  201. package/lib/shared/components/catalogo/catalogo.component.d.ts +4 -1
  202. package/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.d.ts +3 -0
  203. package/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.d.ts +4 -1
  204. package/lib/shared/components/confirm/confirm.component.d.ts +3 -0
  205. package/lib/shared/components/icon/icon.component.d.ts +3 -0
  206. package/lib/shared/components/table-select/table-select.component.d.ts +4 -1
  207. package/lib/shared/material/material.module.d.ts +46 -0
  208. package/lib/shared/pipes/iso-currency.pipe.d.ts +3 -0
  209. package/lib/shared/shared.module.d.ts +14 -0
  210. package/lib/sigesp.service.d.ts +12 -7
  211. package/lib/validation.service.d.ts +3 -0
  212. package/package.json +23 -11
  213. package/public-api.d.ts +10 -1
  214. package/bundles/sigesp.umd.js +0 -15496
  215. package/bundles/sigesp.umd.js.map +0 -1
  216. package/bundles/sigesp.umd.min.js +0 -2
  217. package/bundles/sigesp.umd.min.js.map +0 -1
  218. package/esm2015/lib/app/app.component.js +0 -15
  219. package/esm2015/lib/app/app.module.js +0 -23
  220. package/esm2015/lib/core/interfaces/Auditoria.js +0 -49
  221. package/esm2015/lib/core/interfaces/Banco.js +0 -2
  222. package/esm2015/lib/core/interfaces/Catalogo.js +0 -2
  223. package/esm2015/lib/core/interfaces/CentroCosto.js +0 -2
  224. package/esm2015/lib/core/interfaces/Clasificacion.js +0 -2
  225. package/esm2015/lib/core/interfaces/Cliente.js +0 -2
  226. package/esm2015/lib/core/interfaces/ComprobantePresupuestario.js +0 -2
  227. package/esm2015/lib/core/interfaces/Comunidad.js +0 -2
  228. package/esm2015/lib/core/interfaces/Configuracion.js +0 -2
  229. package/esm2015/lib/core/interfaces/ConfiguracionRPC.js +0 -2
  230. package/esm2015/lib/core/interfaces/ConfiguracionSCG.js +0 -2
  231. package/esm2015/lib/core/interfaces/ConfigurationSPG.js +0 -2
  232. package/esm2015/lib/core/interfaces/Constantes.js +0 -359
  233. package/esm2015/lib/core/interfaces/CuentaEgresos.js +0 -2
  234. package/esm2015/lib/core/interfaces/CuentaIngreso.js +0 -2
  235. package/esm2015/lib/core/interfaces/CuentaIngresoEstructura.js +0 -2
  236. package/esm2015/lib/core/interfaces/CuentaInstitucional.js +0 -2
  237. package/esm2015/lib/core/interfaces/CuentaPresupuesto.js +0 -2
  238. package/esm2015/lib/core/interfaces/CuentasPorPagar.js +0 -2
  239. package/esm2015/lib/core/interfaces/Documento.js +0 -2
  240. package/esm2015/lib/core/interfaces/EntradaSuministro.js +0 -2
  241. package/esm2015/lib/core/interfaces/Especialidad.js +0 -2
  242. package/esm2015/lib/core/interfaces/EstructuraPresupuestaria.js +0 -2
  243. package/esm2015/lib/core/interfaces/FuenteFinanciamiento.js +0 -2
  244. package/esm2015/lib/core/interfaces/IBancoCuentasPorPagar.js +0 -2
  245. package/esm2015/lib/core/interfaces/ITipoDepositos.js +0 -2
  246. package/esm2015/lib/core/interfaces/Integracion.js +0 -2
  247. package/esm2015/lib/core/interfaces/Lugares.js +0 -2
  248. package/esm2015/lib/core/interfaces/Moneda.js +0 -2
  249. package/esm2015/lib/core/interfaces/Nomina.js +0 -27
  250. package/esm2015/lib/core/interfaces/PlanUnicoCuenta.js +0 -2
  251. package/esm2015/lib/core/interfaces/Presupuesto.js +0 -2
  252. package/esm2015/lib/core/interfaces/Proveedor.js +0 -2
  253. package/esm2015/lib/core/interfaces/RecursosHumanos.js +0 -4
  254. package/esm2015/lib/core/interfaces/Request.js +0 -2
  255. package/esm2015/lib/core/interfaces/Response.js +0 -2
  256. package/esm2015/lib/core/interfaces/Seguridad.js +0 -2
  257. package/esm2015/lib/core/interfaces/Servicios.js +0 -2
  258. package/esm2015/lib/core/interfaces/Sistema.js +0 -2
  259. package/esm2015/lib/core/interfaces/Tributos.js +0 -2
  260. package/esm2015/lib/core/interfaces/UnidadTributaria.js +0 -2
  261. package/esm2015/lib/core/interfaces/Usuario.js +0 -2
  262. package/esm2015/lib/core/interfaces/UsuarioPrefijo.js +0 -2
  263. package/esm2015/lib/core/models/CFG/Empresa.model.js +0 -151
  264. package/esm2015/lib/core/models/CFG/Enterprise.model.js +0 -70
  265. package/esm2015/lib/core/models/CFG/MPrefijo.model.js +0 -64
  266. package/esm2015/lib/core/models/CFG/Procede.model.js +0 -31
  267. package/esm2015/lib/core/models/CFG/TasaCambio.model.js +0 -34
  268. package/esm2015/lib/core/models/CFG/comunidad.model.js +0 -22
  269. package/esm2015/lib/core/models/CFG/locations.model.js +0 -170
  270. package/esm2015/lib/core/models/CFG/moneda.model.js +0 -72
  271. package/esm2015/lib/core/models/CFG/userPrefix.model.js +0 -46
  272. package/esm2015/lib/core/models/CXP/MConceptosCXP.model.js +0 -34
  273. package/esm2015/lib/core/models/CXP/MTipoDocumentoCXP.model.js +0 -44
  274. package/esm2015/lib/core/models/RPC/clasification.model.js +0 -16
  275. package/esm2015/lib/core/models/RPC/configuracionRPC.model.js +0 -23
  276. package/esm2015/lib/core/models/RPC/document.model.js +0 -16
  277. package/esm2015/lib/core/models/RPC/proveedores.model.js +0 -9
  278. package/esm2015/lib/core/models/RPC/providerBeneficiary.model.js +0 -164
  279. package/esm2015/lib/core/models/RPC/specialty.model.js +0 -12
  280. package/esm2015/lib/core/models/SCB/bank.model.js +0 -181
  281. package/esm2015/lib/core/models/SCG/IncomeAccount.js +0 -83
  282. package/esm2015/lib/core/models/SCG/accountMarriage.model.js +0 -29
  283. package/esm2015/lib/core/models/SCG/centroCosto.model.js +0 -65
  284. package/esm2015/lib/core/models/SCG/configuracionSCG.model.js +0 -169
  285. package/esm2015/lib/core/models/SCG/cuentaInstitucional.model.js +0 -89
  286. package/esm2015/lib/core/models/SCG/planUnicoCuenta.model.js +0 -17
  287. package/esm2015/lib/core/models/SFV/MClienteModel.js +0 -116
  288. package/esm2015/lib/core/models/SIV/MDetaContable.model.js +0 -62
  289. package/esm2015/lib/core/models/SIV/MDetaEntrada.model.js +0 -94
  290. package/esm2015/lib/core/models/SIV/MEntradaSuministro.model.js +0 -132
  291. package/esm2015/lib/core/models/SIV/MTipoDepositos.model.js +0 -61
  292. package/esm2015/lib/core/models/SNO/MAnticipoPrestaciones.model.js +0 -100
  293. package/esm2015/lib/core/models/SNO/MArchivoTxtCampo.model.js +0 -61
  294. package/esm2015/lib/core/models/SNO/MArchivosTxt.model.js +0 -41
  295. package/esm2015/lib/core/models/SNO/MAsignacionCargo.model.js +0 -205
  296. package/esm2015/lib/core/models/SNO/MAspectoEvaluacion.model.js +0 -90
  297. package/esm2015/lib/core/models/SNO/MAuditoria.model.js +0 -61
  298. package/esm2015/lib/core/models/SNO/MBeneficiario.model.js +0 -137
  299. package/esm2015/lib/core/models/SNO/MCargaFamiliar.model.js +0 -52
  300. package/esm2015/lib/core/models/SNO/MCargaMasiva.model.js +0 -34
  301. package/esm2015/lib/core/models/SNO/MCargosPersonal.model.js +0 -101
  302. package/esm2015/lib/core/models/SNO/MClasificacionObrero.mdel.js +0 -46
  303. package/esm2015/lib/core/models/SNO/MCodigoUnicoRac.model.js +0 -39
  304. package/esm2015/lib/core/models/SNO/MComponete.model.js +0 -38
  305. package/esm2015/lib/core/models/SNO/MConceptoVacaciones.model.js +0 -85
  306. package/esm2015/lib/core/models/SNO/MConceptosNomina.model.js +0 -234
  307. package/esm2015/lib/core/models/SNO/MConceptosPersonalNomina.model.js +0 -97
  308. package/esm2015/lib/core/models/SNO/MConcursante.model.js +0 -317
  309. package/esm2015/lib/core/models/SNO/MConcurso.model.js +0 -246
  310. package/esm2015/lib/core/models/SNO/MConfiguracionSNO.model.js +0 -404
  311. package/esm2015/lib/core/models/SNO/MConstanteNomina.model.js +0 -67
  312. package/esm2015/lib/core/models/SNO/MConstantePersonalNomina.model.js +0 -79
  313. package/esm2015/lib/core/models/SNO/MDedicacion.model.js +0 -35
  314. package/esm2015/lib/core/models/SNO/MDefinicionNomina.model.js +0 -343
  315. package/esm2015/lib/core/models/SNO/MDefinicionesBasicas.model.js +0 -84
  316. package/esm2015/lib/core/models/SNO/MDeudaAnterior.model.js +0 -40
  317. package/esm2015/lib/core/models/SNO/MEncargaduria.model.js +0 -138
  318. package/esm2015/lib/core/models/SNO/MEscalaEvaluacion.model.js +0 -38
  319. package/esm2015/lib/core/models/SNO/MEscalaEvaluacionDt.model.js +0 -37
  320. package/esm2015/lib/core/models/SNO/MEstructuraOrganizativa.model.js +0 -119
  321. package/esm2015/lib/core/models/SNO/MFamiliares.model.js +0 -86
  322. package/esm2015/lib/core/models/SNO/MFeriados.model.js +0 -43
  323. package/esm2015/lib/core/models/SNO/MFideicomiso.model.js +0 -406
  324. package/esm2015/lib/core/models/SNO/MFormacionAcademica.model.js +0 -49
  325. package/esm2015/lib/core/models/SNO/MGrado.model.js +0 -47
  326. package/esm2015/lib/core/models/SNO/MHojaTiempo.model.js +0 -117
  327. package/esm2015/lib/core/models/SNO/MImpuestoSobreRenta.model.js +0 -73
  328. package/esm2015/lib/core/models/SNO/MMetodoBanco.model.js +0 -105
  329. package/esm2015/lib/core/models/SNO/MNominaSimple.model.js +0 -86
  330. package/esm2015/lib/core/models/SNO/MPeriodoNomina.model.js +0 -95
  331. package/esm2015/lib/core/models/SNO/MPermisos.model.js +0 -68
  332. package/esm2015/lib/core/models/SNO/MPersonal.model.js +0 -617
  333. package/esm2015/lib/core/models/SNO/MPersonalJubilado.model.js +0 -58
  334. package/esm2015/lib/core/models/SNO/MPersonalNomina.model.js +0 -307
  335. package/esm2015/lib/core/models/SNO/MPlanHorario.model.js +0 -116
  336. package/esm2015/lib/core/models/SNO/MPlantillaConstancia.model.js +0 -31
  337. package/esm2015/lib/core/models/SNO/MPrestamo.model.js +0 -221
  338. package/esm2015/lib/core/models/SNO/MPrimaGrados.model.js +0 -43
  339. package/esm2015/lib/core/models/SNO/MPrimasConcepto.model.js +0 -43
  340. package/esm2015/lib/core/models/SNO/MRango.model.js +0 -43
  341. package/esm2015/lib/core/models/SNO/MReportesRRHH.js +0 -402
  342. package/esm2015/lib/core/models/SNO/MRequisitosConcursante.model.js +0 -46
  343. package/esm2015/lib/core/models/SNO/MRequisitosConcursos.model.js +0 -37
  344. package/esm2015/lib/core/models/SNO/MRequisitosMinimos.model.js +0 -113
  345. package/esm2015/lib/core/models/SNO/MSalarioHistorico.model.js +0 -70
  346. package/esm2015/lib/core/models/SNO/MSolicitudEmpleo.model.js +0 -121
  347. package/esm2015/lib/core/models/SNO/MTablaVacaciones.model.js +0 -57
  348. package/esm2015/lib/core/models/SNO/MTablaVacacionesPeriodo.model.js +0 -40
  349. package/esm2015/lib/core/models/SNO/MTabulador.model.js +0 -96
  350. package/esm2015/lib/core/models/SNO/MTipoEvaluacion.model.js +0 -75
  351. package/esm2015/lib/core/models/SNO/MTipoPersonal.model.js +0 -34
  352. package/esm2015/lib/core/models/SNO/MTiposEnfermedad.model.js +0 -37
  353. package/esm2015/lib/core/models/SNO/MTrabajoAnterior.model.js +0 -65
  354. package/esm2015/lib/core/models/SNO/MUbicacionFisica.model.js +0 -61
  355. package/esm2015/lib/core/models/SNO/MVacacionesPersonal.model.js +0 -115
  356. package/esm2015/lib/core/models/SOC/charge.model.js +0 -66
  357. package/esm2015/lib/core/models/SOC/clause.model.js +0 -31
  358. package/esm2015/lib/core/models/SOC/clauseModality.model.js +0 -35
  359. package/esm2015/lib/core/models/SOC/configuracionSOC.model.js +0 -62
  360. package/esm2015/lib/core/models/SOC/service.model.js +0 -46
  361. package/esm2015/lib/core/models/SOC/serviceCharge.model.js +0 -37
  362. package/esm2015/lib/core/models/SOC/serviceType.model.js +0 -31
  363. package/esm2015/lib/core/models/SPG/administrativeUnit.model.js +0 -106
  364. package/esm2015/lib/core/models/SPG/comprobantePresupuestario.model.js +0 -51
  365. package/esm2015/lib/core/models/SPG/configurationSPG.model.js +0 -59
  366. package/esm2015/lib/core/models/SPG/cuentaPresupuesto.model.js +0 -120
  367. package/esm2015/lib/core/models/SPG/estructuraPresupuestaria.model.js +0 -176
  368. package/esm2015/lib/core/models/SPG/expensiveAccount.model.js +0 -108
  369. package/esm2015/lib/core/models/SPG/fuenteFinanciamiento.model.js +0 -26
  370. package/esm2015/lib/core/models/SPG/incomeStructureAccount.model.js +0 -81
  371. package/esm2015/lib/core/models/SPG/organizationType.model.js +0 -12
  372. package/esm2015/lib/core/models/SSS/component.model.js +0 -44
  373. package/esm2015/lib/core/models/SSS/group.model.js +0 -30
  374. package/esm2015/lib/core/models/SSS/log.model.js +0 -29
  375. package/esm2015/lib/core/models/SSS/securityConfiguration.model.js +0 -20
  376. package/esm2015/lib/core/models/SSS/sistema.js +0 -71
  377. package/esm2015/lib/core/models/SSS/user.model.js +0 -32
  378. package/esm2015/lib/core/models/SSS/userDetail.model.js +0 -73
  379. package/esm2015/lib/core/models/SSS/userPermit.model.js +0 -47
  380. package/esm2015/lib/core/models/SSS/userRights.model.js +0 -104
  381. package/esm2015/lib/core/models/STB/MCargosAdicionales.js +0 -84
  382. package/esm2015/lib/core/models/STB/deduction.model.js +0 -90
  383. package/esm2015/lib/core/models/STB/deductionType.model.js +0 -20
  384. package/esm2015/lib/core/models/STB/unidadTributaria.model.js +0 -14
  385. package/esm2015/lib/core/models/basic-model.model.js +0 -8
  386. package/esm2015/lib/shared/components/catalogo/catalogo.component.js +0 -59
  387. package/esm2015/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.js +0 -70
  388. package/esm2015/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.js +0 -62
  389. package/esm2015/lib/shared/components/confirm/confirm.component.js +0 -30
  390. package/esm2015/lib/shared/components/icon/icon.component.js +0 -20
  391. package/esm2015/lib/shared/components/table-select/table-select.component.js +0 -85
  392. package/esm2015/lib/shared/material/customPaginator.js +0 -24
  393. package/esm2015/lib/shared/material/material.module.js +0 -145
  394. package/esm2015/lib/shared/pipes/iso-currency.pipe.js +0 -39
  395. package/esm2015/lib/shared/shared.module.js +0 -51
  396. package/esm2015/lib/sigesp.service.js +0 -2082
  397. package/esm2015/lib/validation.service.js +0 -130
  398. package/esm2015/public-api.js +0 -147
  399. package/esm2015/sigesp.js +0 -15
  400. package/fesm2015/sigesp.js.map +0 -1
  401. package/sigesp.d.ts +0 -32
  402. package/sigesp.metadata.json +0 -1
@@ -1,617 +0,0 @@
1
- import { EstatusEstudio, EstatusPersonal, Estudios, SituacionPersonal } from '../../interfaces/Constantes';
2
- import { MBasicModel } from '../basic-model.model';
3
- export class MPersonal extends MBasicModel {
4
- constructor(p = null) {
5
- super();
6
- this.idEmpresa = 0;
7
- this.idEnterprise = 0;
8
- this.idPersonal = 0;
9
- this.codigoPersonal = ''; //10
10
- this.cedulaPersonal = ''; //10
11
- this.rifPersonal = ''; //15
12
- this.nombrePersonal = ''; //60
13
- this.apellidoPersonal = '';
14
- this.fechaNacimientoPersonal = '1900-01-01';
15
- this.codigoPaisNacimiento = '--';
16
- this.codigoEstadoNacimiento = '---';
17
- this.codigoMunicipioNacimiento = '---';
18
- this.codigoParroquiaNacimiento = '---';
19
- this.nacionalidadPersonal = '';
20
- this.estadoCivilPersonal = 'S';
21
- this.telefonoHabitacionPersonal = ''; //15
22
- this.telefonoMovilPersobal = ''; //15
23
- this.correoElectronicoPersonal = ''; //60
24
- this.direccionPersonal = ''; //255
25
- this.codigoPais = '--';
26
- this.codigoEstado = '--';
27
- this.codigoMunicipio = '---';
28
- this.codigoParroquia = '---';
29
- this.sexoPersonal = '';
30
- this.numeroHijo = 0;
31
- this.conyugueTrabaja = 0;
32
- this.cedulaBeneficiarioPersonal = '';
33
- this.estatura = 0;
34
- this.peso = 0;
35
- this.tallaCamisa = '';
36
- this.tallaPantalon = '';
37
- this.tallaZapato = '';
38
- this.idProfesion = 0;
39
- this.nivelAcademicoPersonal = ''; //1
40
- this.idComponente = 0;
41
- this.idRango = 0;
42
- this.fotoPersonal = '';
43
- this.observacionPersonal = '';
44
- this.estatusPersonal = '1';
45
- this.idClasificacionPersonal = 0;
46
- this.centroMedicoIVVS = ''; //155
47
- this.turnoPersonal = ''; //1
48
- this.horarioPersonal = ''; //10
49
- this.estatusHCMPersonal = 0;
50
- this.tipoSangrePersonal = ''; //10
51
- this.numeroExpedientePersonal = ''; //20
52
- this.cargoOriginalPersonal = ''; //100
53
- this.tipoViviendaPersonal = 0; //ojo
54
- this.tenenciaViviendaPersonal = ''; //40/ojo
55
- this.montoPagadoViviendaPersonal = 0;
56
- this.estatusCajaAhorro = 0;
57
- this.cuentaCajaAhorroPersonal = ''; //25
58
- this.porcentajeCajaAhorro = 0;
59
- this.cuetaLeyPoliticaHabitacionaPersonal = ''; //25
60
- this.cuentaFideicomiso = ''; //25
61
- this.estatusSindicato = 0;
62
- this.fechaIngresoAdministracionPublica = '1900-01-01';
63
- this.anoServicioPrevioFijoAP = 0; //integer
64
- this.anoServicioPrevioContratadoAP = 0; //integer
65
- this.anoPersonalObrero = 0; //integer
66
- this.anoServicioPrevioPersonal = 0; //integer
67
- this.mesesServicioPrevioPersonal = 0; //integer
68
- this.diasServicioPrevioPersonal = 0; //integer
69
- this.fechaIngerosPersonal = '1900-01-01';
70
- this.fechaReingresoPersonal = '1900-01-01';
71
- this.fechajubilacionPersonal = '1900-01-01';
72
- this.fechaEgresoPersonal = '1900-01-01';
73
- this.causaEgresoPersonal = 'N'; //1
74
- this.observacionEgresoPersonal = ''; //254
75
- this.preaviso = '0'; //1
76
- this.fechaLOSFAN = '1900-01-01';
77
- this.situacion = 'N'; //1
78
- this.fechaSituacion = '1900-01-01';
79
- this.idCausales = 0;
80
- this.fechaRegistroSistema = '1900-01-01';
81
- this.codidoUsuario = '';
82
- this.observacion = '';
83
- this.idCentroMedico = 0;
84
- this.idTipoPersonal = 0;
85
- this.codigoComponente = '';
86
- this.denominacionComponente = '';
87
- this.codigoRango = '';
88
- this.denominacionRango = '';
89
- this.codigoCentroMedico = '';
90
- this.denominacionCentroMedico = '';
91
- this.codigoTipoPersonal = '';
92
- this.denominacionTipoPersonal = '';
93
- this.codigoCausaRetiro = '';
94
- this.denominacionCausaRetiro = '';
95
- this.idProveedorBeneficiario = 0;
96
- this.denominacionEstatus = '';
97
- this.conapdis = false;
98
- this.idSindicato = 0;
99
- this.codigoSindicato = '00000';
100
- this.denominacionSindicato = '';
101
- this.nombrePais = '';
102
- this.nombreEstado = '';
103
- this.nombreMunicipio = '';
104
- this.nombreParroquia = '';
105
- this.nombrePaisNacimiento = '';
106
- this.nombreEstadoNacimiento = '';
107
- this.nombreMunicipioNacimiento = '';
108
- this.nombreParroquiaNacimiento = '';
109
- this.codigoProfesion = '';
110
- this.denominacionProfesion = '';
111
- this.montoPension = 0;
112
- this.idPlanHorario = 0;
113
- this.idHora = 0;
114
- this.descripcionPlanHorario = '';
115
- this.codigoPlanHorario = '--';
116
- this.idPuestoTrabajo = 0;
117
- this.descripcionPuestoTrabajo = '';
118
- this.codigoPuestoTrabajo = '--';
119
- this.descripcionHorario = '';
120
- this.fechaDefuncion = '1900-01-01';
121
- this.fechaActaDefuncion = '1900-01-01';
122
- this.numeroActaDefuncion = '';
123
- this.denominacionSituacion = '';
124
- this.codigoClasificadorPersonal = '';
125
- this.denominacionClasificadorPersonal = '';
126
- if (p) {
127
- this.idEnterprise = +p.id_enterprise;
128
- this.idEmpresa = p.id_empresa;
129
- this.idPersonal = +p.id_personal;
130
- this.codigoPersonal = p.codper;
131
- this.cedulaPersonal = p.cedper;
132
- this.rifPersonal = p.rifper;
133
- this.nombrePersonal = p.nomper;
134
- this.apellidoPersonal = p.apeper;
135
- this.fechaNacimientoPersonal = p.fecnacper;
136
- this.codigoPaisNacimiento = p.codpainac;
137
- this.codigoEstadoNacimiento = p.codestnac;
138
- this.codigoMunicipioNacimiento = p.codmunnac;
139
- this.codigoParroquiaNacimiento = p.codparnac;
140
- this.nacionalidadPersonal = p.nacper;
141
- this.estadoCivilPersonal = p.estcivper;
142
- this.telefonoHabitacionPersonal = p.telhabper;
143
- this.telefonoMovilPersobal = p.telmovper;
144
- this.correoElectronicoPersonal = p.coreleper;
145
- this.direccionPersonal = p.dirper;
146
- this.codigoPais = p.codpai;
147
- this.codigoEstado = p.codest;
148
- this.codigoMunicipio = p.codmun;
149
- this.codigoParroquia = p.codpar;
150
- this.sexoPersonal = p.sexper;
151
- this.numeroHijo = +p.numhijper;
152
- this.conyugueTrabaja = +p.contra;
153
- this.cedulaBeneficiarioPersonal = p.cedbenper;
154
- this.estatura = +p.estatura;
155
- this.peso = +p.peso;
156
- this.tallaCamisa = p.tallcam;
157
- this.tallaPantalon = p.tallpan;
158
- 1;
159
- this.tallaZapato = p.tallzap;
160
- this.idProfesion = +p.id_profesion;
161
- this.nivelAcademicoPersonal = p.nivacaper;
162
- this.idComponente = +p.id_componente;
163
- this.idRango = +p.id_rango;
164
- this.fotoPersonal = p.fotper;
165
- this.observacionPersonal = p.obsegrper;
166
- this.estatusPersonal = p.estper;
167
- this.idClasificacionPersonal = +p.id_claper;
168
- this.turnoPersonal = p.turper;
169
- this.horarioPersonal = p.horper;
170
- this.estatusHCMPersonal = +p.hcmper;
171
- this.tipoSangrePersonal = p.tipsanper;
172
- this.numeroExpedientePersonal = p.numexpper;
173
- this.cargoOriginalPersonal = p.caroriper;
174
- this.tipoViviendaPersonal = +p.tipvivper;
175
- this.tenenciaViviendaPersonal = p.tenvivper;
176
- this.montoPagadoViviendaPersonal = +p.monpagvivper;
177
- this.estatusCajaAhorro = +p.estcajaho;
178
- this.cuentaCajaAhorroPersonal = p.cuecajahoper;
179
- this.porcentajeCajaAhorro = +p.porcajaho;
180
- this.cuetaLeyPoliticaHabitacionaPersonal = p.cuelphper;
181
- this.cuentaFideicomiso = p.cuefidper;
182
- 1;
183
- this.estatusSindicato = +p.estsindicato;
184
- this.fechaIngresoAdministracionPublica = p.fecingadmpubper;
185
- this.anoServicioPrevioFijoAP = +p.anoservprefijo;
186
- this.anoServicioPrevioContratadoAP = +p.anoservprecont;
187
- this.anoPersonalObrero = +p.anoperobr;
188
- this.anoServicioPrevioPersonal = +p.anoservpreper;
189
- this.mesesServicioPrevioPersonal = +p.messervpreper;
190
- this.diasServicioPrevioPersonal = +p.diaservpreper;
191
- this.fechaIngerosPersonal = p.fecingper;
192
- this.fechaReingresoPersonal = p.fecreingper;
193
- this.fechajubilacionPersonal = p.fecjubper;
194
- this.fechaEgresoPersonal = p.fecegrper;
195
- this.causaEgresoPersonal = p.cauegrper;
196
- this.observacionEgresoPersonal = p.obsegrper;
197
- this.preaviso = p.preaviso;
198
- this.fechaLOSFAN = p.feclossfan;
199
- this.situacion = p.situacion;
200
- this.fechaSituacion = p.fecsitu;
201
- this.idCausales = +p.id_causales;
202
- this.fechaRegistroSistema = p.fecregsis;
203
- this.codidoUsuario = p.codusu;
204
- this.observacion = p.observacion;
205
- this.idCentroMedico = p.id_cenmedss,
206
- this.idTipoPersonal = p.id_tipopersonal,
207
- this.codigoComponente = p.codcom;
208
- this.denominacionComponente = p.dencom;
209
- this.codigoRango = p.codran;
210
- this.denominacionRango = p.denran;
211
- this.codigoCentroMedico = p.codcenmedss;
212
- this.denominacionCentroMedico = p.dencenmedss;
213
- this.codigoTipoPersonal = p.codtipper;
214
- this.denominacionTipoPersonal = p.dentipper;
215
- this.codigoCausaRetiro = p.dencau;
216
- this.denominacionCausaRetiro = p.codcau;
217
- this.idProveedorBeneficiario = parseInt(p.id_proveedorbeneficiario);
218
- this.idSindicato = parseInt(p.id_sindicato);
219
- this.codigoSindicato = p.codsin;
220
- this.denominacionSindicato = p.densin;
221
- this.denominacionEstatus = (EstatusPersonal.find(e => e.value == p.estper).denominacion).toUpperCase();
222
- this.conapdis = p.conapdis == '1' ? true : false;
223
- this.idSindicato = parseInt(p.id_sindicato);
224
- this.codigoSindicato = p.codsin;
225
- this.denominacionSindicato = p.densin;
226
- this.nombrePais = p.despai;
227
- this.nombreEstado = p.desest;
228
- this.nombreMunicipio = p.desmun;
229
- this.nombreParroquia = p.despar;
230
- this.nombreEstadoNacimiento = p.desest_nac;
231
- this.nombrePaisNacimiento = p.despai_nac;
232
- this.codigoProfesion = p.codpro;
233
- this.denominacionProfesion = p.denpro;
234
- this.montoPension = +p.monpen;
235
- this.idPlanHorario = +p.id_planhor;
236
- this.idHora = +p.id_hora;
237
- this.fechaDefuncion = p.fecdef;
238
- this.fechaActaDefuncion = p.fecactdef;
239
- this.numeroActaDefuncion = p.numactdef;
240
- if (this.idPlanHorario > 0) {
241
- this.codigoPlanHorario = p.codplanhor;
242
- this.descripcionPlanHorario = p.denplanhor;
243
- }
244
- else if (this.idHora > 0) {
245
- this.descripcionHorario = p.horini + '-' + p.horfin;
246
- }
247
- this.descripcionPuestoTrabajo = p.despuetra;
248
- this.codigoPuestoTrabajo = p.codpuetra;
249
- this.denominacionSituacion = (SituacionPersonal.find(e => e.value == p.situacion).denominacion).toLocaleUpperCase();
250
- this.codigoClasificadorPersonal = p.codclaper;
251
- this.denominacionClasificadorPersonal = p.denclaper;
252
- }
253
- else {
254
- this.isNew = true;
255
- }
256
- }
257
- ;
258
- ;
259
- dataInterface() {
260
- return {
261
- id_empresa: this.idEmpresa,
262
- id_enterprise: this.idEnterprise.toString(),
263
- id_personal: +this.idPersonal,
264
- codper: this.codigoPersonal,
265
- cedper: this.cedulaPersonal,
266
- rifper: this.rifPersonal,
267
- nomper: this.nombrePersonal,
268
- apeper: this.apellidoPersonal,
269
- fecnacper: this.fechaNacimientoPersonal,
270
- codpainac: this.codigoPaisNacimiento,
271
- codestnac: this.codigoEstadoNacimiento,
272
- codmunnac: this.codigoMunicipioNacimiento,
273
- codparnac: this.codigoParroquiaNacimiento,
274
- nacper: this.nacionalidadPersonal,
275
- estcivper: this.estadoCivilPersonal,
276
- telhabper: this.telefonoHabitacionPersonal,
277
- telmovper: this.telefonoMovilPersobal,
278
- coreleper: this.correoElectronicoPersonal,
279
- dirper: this.direccionPersonal,
280
- codpai: this.codigoPais,
281
- codest: this.codigoEstado,
282
- codmun: this.codigoMunicipio,
283
- codpar: this.codigoParroquia,
284
- sexper: this.sexoPersonal,
285
- numhijper: +this.numeroHijo,
286
- contra: +this.conyugueTrabaja,
287
- cedbenper: this.cedulaBeneficiarioPersonal,
288
- estatura: this.estatura,
289
- peso: this.peso,
290
- tallcam: this.tallaCamisa,
291
- tallpan: this.tallaPantalon,
292
- tallzap: this.tallaZapato,
293
- id_profesion: this.idProfesion,
294
- nivacaper: this.nivelAcademicoPersonal,
295
- id_componente: +this.idComponente,
296
- id_rango: +this.idRango,
297
- fotper: this.fotoPersonal,
298
- obsper: this.observacionPersonal,
299
- estper: this.estatusPersonal,
300
- id_claper: +this.idClasificacionPersonal,
301
- turper: this.turnoPersonal,
302
- horper: this.horarioPersonal,
303
- hcmper: this.estatusHCMPersonal,
304
- tipsanper: this.tipoSangrePersonal,
305
- numexpper: this.numeroExpedientePersonal,
306
- caroriper: this.cargoOriginalPersonal,
307
- tipvivper: this.tipoViviendaPersonal,
308
- tenvivper: this.tenenciaViviendaPersonal,
309
- monpagvivper: this.montoPagadoViviendaPersonal,
310
- estcajaho: this.estatusCajaAhorro,
311
- cuecajahoper: this.cuentaCajaAhorroPersonal,
312
- porcajaho: this.porcentajeCajaAhorro,
313
- cuelphper: this.cuetaLeyPoliticaHabitacionaPersonal,
314
- cuefidper: this.cuentaFideicomiso,
315
- estsindicato: this.estatusSindicato,
316
- fecingadmpubper: this.fechaIngresoAdministracionPublica,
317
- anoservprefijo: this.anoServicioPrevioFijoAP,
318
- anoservprecont: this.anoServicioPrevioContratadoAP,
319
- anoperobr: this.anoPersonalObrero,
320
- anoservpreper: this.anoServicioPrevioPersonal,
321
- messervpreper: this.mesesServicioPrevioPersonal,
322
- diaservpreper: this.diasServicioPrevioPersonal,
323
- fecingper: this.fechaIngerosPersonal,
324
- fecreingper: this.fechaReingresoPersonal,
325
- fecjubper: this.fechajubilacionPersonal,
326
- fecegrper: this.fechaEgresoPersonal,
327
- cauegrper: this.causaEgresoPersonal,
328
- obsegrper: this.observacionEgresoPersonal,
329
- preaviso: this.preaviso,
330
- feclossfan: this.fechaLOSFAN,
331
- situacion: this.situacion,
332
- fecsitu: this.fechaSituacion,
333
- id_causales: +this.idCausales,
334
- fecregsis: this.fechaRegistroSistema,
335
- codusu: this.codidoUsuario,
336
- observacion: this.observacion,
337
- id_cenmedss: +this.idCentroMedico,
338
- id_tipopersonal: +this.idTipoPersonal,
339
- codcom: this.codigoComponente,
340
- dencom: this.denominacionComponente,
341
- codran: this.codigoRango,
342
- denran: this.denominacionRango,
343
- codcenmedss: this.codigoCentroMedico,
344
- dencenmedss: this.denominacionCentroMedico,
345
- codtipper: this.codigoTipoPersonal,
346
- dentipper: this.denominacionTipoPersonal,
347
- codcau: this.codigoCausaRetiro,
348
- dencau: this.denominacionCausaRetiro,
349
- id_proveedorbeneficiario: this.idProveedorBeneficiario.toString(),
350
- id_sindicato: this.idSindicato.toString(),
351
- codsin: this.codigoSindicato,
352
- densin: this.denominacionSindicato,
353
- conapdis: this.conapdis ? '1' : '0',
354
- despai: this.nombrePais,
355
- desest: this.nombreEstado,
356
- desmun: this.nombreMunicipio,
357
- despar: this.nombreParroquia,
358
- desest_nac: this.nombreEstadoNacimiento,
359
- despai_nac: this.nombrePaisNacimiento,
360
- id_planhor: this.idPlanHorario.toString(),
361
- id_hora: this.idHora.toString(),
362
- id_puetra: this.idPuestoTrabajo.toString(),
363
- fecdef: this.fechaDefuncion,
364
- fecactdef: this.fechaActaDefuncion,
365
- numactdef: this.numeroActaDefuncion,
366
- };
367
- }
368
- }
369
- export class MCambioEstatusPersonal extends MBasicModel {
370
- constructor(e = null) {
371
- super();
372
- this.idEmpresa = 0;
373
- this.idEnterprise = 0;
374
- this.idPersonal = 0;
375
- this.codigoPersonal = '';
376
- this.estatusActual = '2';
377
- this.estatusNuevo = '2';
378
- this.fechaEgreso = '';
379
- this.causaEgreso = '';
380
- this.preaviso = '1';
381
- this.idCausales = 0;
382
- this.observacion = '';
383
- this.fechaReingreso = '1900-01-01';
384
- if (e) {
385
- this.idEnterprise = +e.id_enterprise;
386
- this.idEmpresa = e.id_empresa;
387
- this.idPersonal = e.idPersonal;
388
- this.codigoPersonal = e.codigoPersonal;
389
- this.estatusActual = e.estatusActual;
390
- this.estatusNuevo = e.estatusNuevo;
391
- this.fechaEgreso = e.fechaEgreso;
392
- this.causaEgreso = e.causaEgreso;
393
- this.preaviso = e.preaviso;
394
- this.idCausales = e.idCausales;
395
- this.observacion = e.observacion;
396
- this.fechaReingreso = e.fechaReingreso;
397
- }
398
- }
399
- dataInterface() {
400
- return {
401
- id_empresa: this.idEmpresa,
402
- id_enterprise: this.idEnterprise.toString(),
403
- idPersonal: this.idPersonal,
404
- codigoPersonal: this.codigoPersonal,
405
- estatusActual: this.estatusActual,
406
- estatusNuevo: this.estatusNuevo,
407
- fechaEgreso: this.fechaEgreso,
408
- causaEgreso: this.causaEgreso,
409
- preaviso: this.preaviso,
410
- idCausales: this.idCausales,
411
- observacion: this.observacion,
412
- fechaReingreso: this.fechaReingreso,
413
- };
414
- }
415
- }
416
- export class MPersonalCuentaBanco extends MBasicModel {
417
- constructor(e) {
418
- super();
419
- this.idEmpresa = 0;
420
- this.idEnterprise = 0;
421
- this.idPersonal = 0;
422
- this.idCuentaBancoPersonal = -1;
423
- this.codigoCuentaBancoPersonal = '';
424
- this.denominacionCuentaBancoPersonal = '';
425
- this.idBanco = 0;
426
- this.idTipoCuentaBanco = 0;
427
- this.cuentaBancoPersonal = '';
428
- this.estatusCuentaBanco = true;
429
- this.tipoCuentaPrincipal = false;
430
- this.codigoBanco = '';
431
- this.cuentaReducida = '';
432
- this.nombreBanco = '';
433
- this.nombreTipoCuentaBanco = '';
434
- if (e) {
435
- this.idEnterprise = +e.id_enterprise;
436
- this.idEmpresa = e.id_empresa;
437
- this.idPersonal = parseInt(e.id_personal);
438
- this.idCuentaBancoPersonal = parseInt(e.id_ctabanper);
439
- this.codigoCuentaBancoPersonal = e.codctabanper;
440
- this.denominacionCuentaBancoPersonal = e.denctabanper;
441
- this.idBanco = parseInt(e.id_banco);
442
- this.idTipoCuentaBanco = parseInt(e.id_tipocta);
443
- this.cuentaBancoPersonal = e.ctabanper;
444
- this.estatusCuentaBanco = e.estctabco == '1' ? true : false;
445
- this.tipoCuentaPrincipal = e.tipctapri == '1' ? true : false;
446
- this.codigoBanco = this.cuentaBancoPersonal.substring(0, 4);
447
- this.cuentaReducida = this.cuentaBancoPersonal.slice(4);
448
- this.nombreBanco = e.nomban;
449
- this.nombreTipoCuentaBanco = e.nomtipcta;
450
- }
451
- else {
452
- this.isNew = true;
453
- }
454
- }
455
- dataInterface() {
456
- return {
457
- id_enterprise: this.idEnterprise.toString(),
458
- id_empresa: this.idEmpresa,
459
- id_personal: this.idPersonal.toString(),
460
- id_ctabanper: this.idCuentaBancoPersonal.toString(),
461
- codctabanper: this.codigoCuentaBancoPersonal,
462
- denctabanper: this.denominacionCuentaBancoPersonal,
463
- id_banco: this.idBanco.toString(),
464
- id_tipocta: this.idTipoCuentaBanco.toString(),
465
- ctabanper: this.cuentaBancoPersonal,
466
- estctabco: this.estatusCuentaBanco ? '1' : '0',
467
- tipctapri: this.tipoCuentaPrincipal ? '1' : '0',
468
- };
469
- }
470
- }
471
- export class MEstudiosRealizados {
472
- constructor(e = null) {
473
- this.idEmpresa = 0;
474
- this.idEnterprise = 0;
475
- this.idPersonal = 0;
476
- this.idEstudio = 0;
477
- this.codigoEstudioRealizado = '';
478
- this.tipoEstudioRealizado = '1';
479
- this.denominacionEstudioRealizado = '1';
480
- this.institutoEstudioRealizado = '';
481
- this.descripcionEstudioRealizado = '';
482
- this.tituloEstudioRealizado = '';
483
- this.calificacionEstudioRealizado = 0;
484
- this.escalaValores = '';
485
- this.fechaInicioEstudioRealizado = '1900-01-01';
486
- this.fechaFinEstudioRealizado = '1900-01-01';
487
- this.fechaGradoEstudioRealizado = '1900-01-01';
488
- this.aprobacionEstudioRealizado = '1';
489
- this.anoAprobacionEstudioRealizado = 0;
490
- this.horasEstudioRealizado = 0;
491
- this.TipoEstudio = Estudios;
492
- this.Aprobado = EstatusEstudio;
493
- if (e) {
494
- this.idEmpresa = e.id_empresa;
495
- this.idEnterprise = +e.id_enterprise;
496
- this.idPersonal = parseInt(e.id_personal);
497
- this.idEstudio = parseInt(e.id_estudio);
498
- this.codigoEstudioRealizado = e.codestrea;
499
- this.tipoEstudioRealizado = e.tipestrea;
500
- this.institutoEstudioRealizado = e.insestrea;
501
- this.descripcionEstudioRealizado = e.desestrea;
502
- this.tituloEstudioRealizado = e.titestrea;
503
- this.calificacionEstudioRealizado = +e.calestrea;
504
- this.escalaValores = e.escval;
505
- this.fechaInicioEstudioRealizado = e.fecinireaest;
506
- this.fechaFinEstudioRealizado = e.fecfinestrea;
507
- this.fechaGradoEstudioRealizado = e.fecgraestrea;
508
- this.aprobacionEstudioRealizado = e.aprestrea;
509
- this.anoAprobacionEstudioRealizado = parseInt(e.anoaprestrea);
510
- this.horasEstudioRealizado = parseInt(e.horestrea);
511
- this.denominacionEstudioRealizado = this.TipoEstudio.find(e => e.value == this.tipoEstudioRealizado).denominacion;
512
- this.denominacionAprobacionEstudioRealizado = this.Aprobado.find(e => e.value == this.aprobacionEstudioRealizado).denominacion;
513
- }
514
- }
515
- dataInterface() {
516
- return {
517
- id_empresa: this.idEmpresa,
518
- id_enterprise: this.idEnterprise.toString(),
519
- id_personal: this.idPersonal.toString(),
520
- id_estudio: this.idEstudio.toString(),
521
- codestrea: this.codigoEstudioRealizado,
522
- tipestrea: this.tipoEstudioRealizado,
523
- insestrea: this.institutoEstudioRealizado,
524
- desestrea: this.descripcionEstudioRealizado,
525
- titestrea: this.tituloEstudioRealizado,
526
- calestrea: this.calificacionEstudioRealizado,
527
- escval: this.escalaValores,
528
- fecinireaest: this.fechaInicioEstudioRealizado,
529
- fecfinestrea: this.fechaFinEstudioRealizado,
530
- fecgraestrea: this.fechaGradoEstudioRealizado,
531
- aprestrea: this.aprobacionEstudioRealizado,
532
- anoaprestrea: this.anoAprobacionEstudioRealizado.toString(),
533
- horestrea: this.horasEstudioRealizado.toString(),
534
- };
535
- }
536
- }
537
- export class MPrestacionesAntiguedad extends MBasicModel {
538
- constructor(e = null) {
539
- super();
540
- this.idEmpresa = 0;
541
- this.idEnterprice = 0;
542
- this.idPersonal = 0;
543
- this.idFideicomiso = 0;
544
- this.anoCurPeriodo = 0;
545
- this.mesCurPeriodo = 0;
546
- this.sueldoIntegralPersonal = 0;
547
- this.bonoExtraPersonal = 0;
548
- this.bonoVacacionesPersonal = 0;
549
- this.bonoFinAnnoPersonal = 0;
550
- this.aportePersonal = 0;
551
- this.diaFideicomiso = 0;
552
- this.diaAdicional = 0;
553
- this.metodoPresatciones = '';
554
- this.metodoDiasAdicionales = '';
555
- this.bonoVacacionalDiasAdicionalesPersonal = 0;
556
- this.bonoFinAnnoDiasAdicionalesPersonal = 0;
557
- this.sueldoIntegralDiasAdicionalesPersonal = 0;
558
- this.aportePrestacionesPersonal = 0;
559
- this.aporteAdicionalPersonal = 0;
560
- this.codigoUsuario = '';
561
- this.idDtFideicomisoPeriodo = 0;
562
- if (e) {
563
- this.idEmpresa = e.id_empresa;
564
- this.idEmpresa = +e.id_enterprise;
565
- this.idPersonal = parseInt(e.id_personal);
566
- this.idFideicomiso = parseInt(e.id_fideicomiso);
567
- this.anoCurPeriodo = parseInt(e.anocurper);
568
- this.mesCurPeriodo = parseInt(e.mescurper);
569
- this.sueldoIntegralPersonal = +e.sueintper;
570
- this.bonoExtraPersonal = +e.bonextper;
571
- this.bonoVacacionesPersonal = +e.bonvacper;
572
- this.bonoFinAnnoPersonal = +e.bonfinper;
573
- this.aportePersonal = +e.apoper;
574
- this.diaFideicomiso = +e.diafid;
575
- this.diaAdicional = +e.diaadi;
576
- this.metodoPresatciones = e.metodopre;
577
- this.metodoDiasAdicionales = e.metodoadi;
578
- this.bonoVacacionalDiasAdicionalesPersonal = +e.bonvacadiper;
579
- this.bonoFinAnnoDiasAdicionalesPersonal = +e.bonfinadiper;
580
- this.sueldoIntegralDiasAdicionalesPersonal = +e.sueintadiper;
581
- this.aportePrestacionesPersonal = +e.apopreper;
582
- this.aporteAdicionalPersonal = +e.apoadiper;
583
- this.codigoUsuario = e.codusu;
584
- this.idDtFideicomisoPeriodo = parseInt(e.id_dt_fideiperiodo);
585
- }
586
- else {
587
- this.isNew = true;
588
- }
589
- }
590
- dataInterface() {
591
- return {
592
- id_empresa: this.idEmpresa,
593
- id_enterprise: this.idEnterprice.toString(),
594
- id_personal: this.idPersonal.toString(),
595
- id_fideicomiso: this.idFideicomiso.toString(),
596
- anocurper: this.anoCurPeriodo.toString(),
597
- mescurper: this.mesCurPeriodo.toString(),
598
- sueintper: this.sueldoIntegralPersonal,
599
- bonextper: this.bonoExtraPersonal,
600
- bonvacper: this.bonoVacacionesPersonal,
601
- bonfinper: this.bonoFinAnnoPersonal,
602
- apoper: this.aportePersonal,
603
- diafid: this.diaFideicomiso,
604
- diaadi: this.diaAdicional,
605
- metodopre: this.metodoPresatciones,
606
- metodoadi: this.metodoDiasAdicionales,
607
- bonvacadiper: this.bonoVacacionalDiasAdicionalesPersonal,
608
- bonfinadiper: this.bonoFinAnnoDiasAdicionalesPersonal,
609
- sueintadiper: this.sueldoIntegralDiasAdicionalesPersonal,
610
- apopreper: this.aportePrestacionesPersonal,
611
- apoadiper: this.aporteAdicionalPersonal,
612
- codusu: this.codigoUsuario,
613
- id_dt_fideiperiodo: this.idDtFideicomisoPeriodo.toString(),
614
- };
615
- }
616
- }
617
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTVBlcnNvbmFsLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L0FwcFNlcnYvd3d3L3NpZ2VzcF9tb2R1bG9zL3NpZ2VzcF9jb3JlL3Byb2plY3RzL3NpZ2VzcC9zcmMvIiwic291cmNlcyI6WyJsaWIvY29yZS9tb2RlbHMvU05PL01QZXJzb25hbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsTUFBTSxPQUFPLFNBQVUsU0FBUSxXQUFXO0lBMEh0QyxZQUFhLElBQVksSUFBSTtRQUN6QixLQUFLLEVBQUUsQ0FBQTtRQTFISixjQUFTLEdBQVEsQ0FBQyxDQUFDO1FBQ25CLGlCQUFZLEdBQVEsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBUyxDQUFDLENBQUM7UUFDdEIsbUJBQWMsR0FBUyxFQUFFLENBQUMsQ0FBQSxLQUFLO1FBQy9CLG1CQUFjLEdBQVUsRUFBRSxDQUFDLENBQUMsS0FBSztRQUNqQyxnQkFBVyxHQUFTLEVBQUUsQ0FBQyxDQUFBLEtBQUs7UUFDNUIsbUJBQWMsR0FBUyxFQUFFLENBQUMsQ0FBQSxLQUFLO1FBQy9CLHFCQUFnQixHQUFTLEVBQUUsQ0FBQztRQUM1Qiw0QkFBdUIsR0FBUyxZQUFZLENBQUM7UUFDN0MseUJBQW9CLEdBQVMsSUFBSSxDQUFDO1FBQ2xDLDJCQUFzQixHQUFTLEtBQUssQ0FBQztRQUNyQyw4QkFBeUIsR0FBUyxLQUFLLENBQUM7UUFDeEMsOEJBQXlCLEdBQVMsS0FBSyxDQUFDO1FBQ3hDLHlCQUFvQixHQUFRLEVBQUUsQ0FBQztRQUMvQix3QkFBbUIsR0FBUSxHQUFHLENBQUM7UUFDL0IsK0JBQTBCLEdBQVEsRUFBRSxDQUFDLENBQUMsSUFBSTtRQUMxQywwQkFBcUIsR0FBUSxFQUFFLENB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QUMsYUFBYTtZQUN6QixrQkFBa0IsRUFBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO1NBQzVELENBQUE7SUFDTCxDQUFDO0NBR0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc3RhdHVzRXN0dWRpbywgRXN0YXR1c1BlcnNvbmFsLCBFc3R1ZGlvcywgU2l0dWFjaW9uUGVyc29uYWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0NvbnN0YW50ZXMnO1xyXG5pbXBvcnQgeyBJQ2FtYmlvRXN0YXR1c1BlcnNvbmFsLCBJRXN0dWRpb1JlYWxpemFkbywgSVBlcnNvbmFsLCBJUGVyc29uYWxDdWVudGFzQmFuY2FyaWFzLCBJUHJlc3RhY2lvbmVzQW50aWd1ZWRhZCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUmVjdXJzb3NIdW1hbm9zJztcclxuaW1wb3J0IHsgTUJhc2ljTW9kZWwgfSBmcm9tICcuLi9iYXNpYy1tb2RlbC5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgTVBlcnNvbmFsIGV4dGVuZHMgTUJhc2ljTW9kZWwge1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgIHB1YmxpYyBpZFBlcnNvbmFsOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY29kaWdvUGVyc29uYWw6IHN0cmluZz0nJzsvLzEwIFxyXG4gICAgcHVibGljIGNlZHVsYVBlcnNvbmFsOiBzdHJpbmc9ICcnOyAvLzEwIFxyXG4gICAgcHVibGljIHJpZlBlcnNvbmFsOiBzdHJpbmc9Jyc7Ly8xNSBcclxuICAgIHB1YmxpYyBub21icmVQZXJzb25hbDogc3RyaW5nPScnOy8vNjAgXHJcbiAgICBwdWJsaWMgYXBlbGxpZG9QZXJzb25hbDogc3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyBmZWNoYU5hY2ltaWVudG9QZXJzb25hbDogc3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgY29kaWdvUGFpc05hY2ltaWVudG86c3RyaW5nID0nLS0nOyAgICAgXHJcbiAgICBwdWJsaWMgY29kaWdvRXN0YWRvTmFjaW1pZW50bzpzdHJpbmcgPSctLS0nOyBcclxuICAgIHB1YmxpYyBjb2RpZ29NdW5pY2lwaW9OYWNpbWllbnRvOnN0cmluZyA9Jy0tLSc7IFxyXG4gICAgcHVibGljIGNvZGlnb1BhcnJvcXVpYU5hY2ltaWVudG86c3RyaW5nID0nLS0tJzsgIFxyXG4gICAgcHVibGljIG5hY2lvbmFsaWRhZFBlcnNvbmFsOnN0cmluZz0nJzsgICBcclxuICAgIHB1YmxpYyBlc3RhZG9DaXZpbFBlcnNvbmFsOnN0cmluZz0nUyc7XHJcbiAgICBwdWJsaWMgdGVsZWZvbm9IYWJpdGFjaW9uUGVyc29uYWw6c3RyaW5nPScnOyAvLzE1XHJcbiAgICBwdWJsaWMgdGVsZWZvbm9Nb3ZpbFBlcnNvYmFsOnN0cmluZz0nJzsgICAgICAgIC8vMTVcclxuICAgIHB1YmxpYyBjb3JyZW9FbGVjdHJvbmljb1BlcnNvbmFsOnN0cmluZz0nJzsgLy82MFxyXG4gICAgcHVibGljIGRpcmVjY2lvblBlcnNvbmFsOnN0cmluZz0nJzsgLy8yNTVcclxuICAgIHB1YmxpYyBjb2RpZ29QYWlzOnN0cmluZz0nLS0nOyBcclxuICAgIHB1YmxpYyBjb2RpZ29Fc3RhZG86c3RyaW5nPSctLSc7IFxyXG4gICAgcHVibGljIGNvZGlnb011bmljaXBpbzpzdHJpbmc9Jy0tLSc7IFxyXG4gICAgcHVibGljIGNvZGlnb1BhcnJvcXVpYTpzdHJpbmc9Jy0tLSc7XHJcbiAgICBwdWJsaWMgc2V4b1BlcnNvbmFsOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgbnVtZXJvSGlqbzpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY29ueXVndWVUcmFiYWphOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBjZWR1bGFCZW5lZmljaWFyaW9QZXJzb25hbDpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIGVzdGF0dXJhOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgcGVzbzogbnVtYmVyPTA7IFxyXG4gICAgcHVibGljIHRhbGxhQ2FtaXNhOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgdGFsbGFQYW50YWxvbjpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIHRhbGxhWmFwYXRvOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgaWRQcm9mZXNpb246bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIG5pdmVsQWNhZGVtaWNvUGVyc29uYWw6c3RyaW5nPScnOyAvLzFcclxuICAgIHB1YmxpYyBpZENvbXBvbmVudGU6IG51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBpZFJhbmdvOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgZm90b1BlcnNvbmFsOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgb2JzZXJ2YWNpb25QZXJzb25hbDpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIGVzdGF0dXNQZXJzb25hbDpzdHJpbmc9JzEnOyBcclxuICAgIHB1YmxpYyBpZENsYXNpZmljYWNpb25QZXJzb25hbDogbnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGNlbnRyb01lZGljb0lWVlM6c3RyaW5nPScnOyAvLzE1NVxyXG4gICAgcHVibGljIHR1cm5vUGVyc29uYWw6c3RyaW5nPScnOyAvLzFcclxuICAgIHB1YmxpYyBob3JhcmlvUGVyc29uYWw6c3RyaW5nPScnOyAvLzEwXHJcbiAgICBwdWJsaWMgZXN0YXR1c0hDTVBlcnNvbmFsOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyB0aXBvU2FuZ3JlUGVyc29uYWw6c3RyaW5nPScnOy8vMTBcclxuICAgIHB1YmxpYyBudW1lcm9FeHBlZGllbnRlUGVyc29uYWw6c3RyaW5nPScnOyAvLzIwXHJcbiAgICBwdWJsaWMgY2FyZ29PcmlnaW5hbFBlcnNvbmFsOnN0cmluZz0nJzsgLy8xMDBcclxuICAgIHB1YmxpYyB0aXBvVml2aWVuZGFQZXJzb25hbDpudW1iZXI9MDsgLy9vam9cclxuICAgIHB1YmxpYyB0ZW5lbmNpYVZpdmllbmRhUGVyc29uYWw6c3RyaW5nPScnOyAvLzQwL29qb1xyXG4gICAgcHVibGljIG1vbnRvUGFnYWRvVml2aWVuZGFQZXJzb25hbDpudW1iZXIgPTA7IFxyXG4gICAgcHVibGljIGVzdGF0dXNDYWphQWhvcnJvOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBjdWVudGFDYWphQWhvcnJvUGVyc29uYWw6c3RyaW5nPScnOyAvLzI1XHJcbiAgICBwdWJsaWMgcG9yY2VudGFqZUNhamFBaG9ycm86bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGN1ZXRhTGV5UG9saXRpY2FIYWJpdGFjaW9uYVBlcnNvbmFsOnN0cmluZz0nJzsgLy8yNVxyXG4gICAgcHVibGljIGN1ZW50YUZpZGVpY29taXNvOnN0cmluZz0nJzsgLy8yNVxyXG4gICAgcHVibGljIGVzdGF0dXNTaW5kaWNhdG86IG51bWJlcj0wO1xyXG4gICAgcHVibGljIGZlY2hhSW5ncmVzb0FkbWluaXN0cmFjaW9uUHVibGljYTpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBhbm9TZXJ2aWNpb1ByZXZpb0Zpam9BUDpudW1iZXI9MDsgLy9pbnRlZ2VyXHJcbiAgICBwdWJsaWMgYW5vU2VydmljaW9QcmV2aW9Db250cmF0YWRvQVA6bnVtYmVyPTA7IC8vaW50ZWdlclxyXG4gICAgcHVibGljIGFub1BlcnNvbmFsT2JyZXJvOm51bWJlcj0wOyAvL2ludGVnZXJcclxuICAgIHB1YmxpYyBhbm9TZXJ2aWNpb1ByZXZpb1BlcnNvbmFsOm51bWJlcj0wOyAvL2ludGVnZXJcclxuICAgIHB1YmxpYyBtZXNlc1NlcnZpY2lvUHJldmlvUGVyc29uYWw6bnVtYmVyPTA7IC8vaW50ZWdlclxyXG4gICAgcHVibGljIGRpYXNTZXJ2aWNpb1ByZXZpb1BlcnNvbmFsOm51bWJlcj0wOyAvL2ludGVnZXJcclxuICAgIHB1YmxpYyBmZWNoYUluZ2Vyb3NQZXJzb25hbDpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBmZWNoYVJlaW5ncmVzb1BlcnNvbmFsOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGZlY2hhanViaWxhY2lvblBlcnNvbmFsOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGZlY2hhRWdyZXNvUGVyc29uYWw6c3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgY2F1c2FFZ3Jlc29QZXJzb25hbDpzdHJpbmc9J04nOyAvLzFcclxuICAgIHB1YmxpYyBvYnNlcnZhY2lvbkVncmVzb1BlcnNvbmFsOnN0cmluZz0nJzsgLy8yNTRcclxuICAgIHB1YmxpYyBwcmVhdmlzbzpzdHJpbmc9JzAnOyAvLzFcclxuICAgIHB1YmxpYyBmZWNoYUxPU0ZBTjpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBzaXR1YWNpb246c3RyaW5nPSdOJzsgLy8xXHJcbiAgICBwdWJsaWMgZmVjaGFTaXR1YWNpb246c3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgaWRDYXVzYWxlczogbnVtYmVyID0wOyBcclxuICAgIHB1YmxpYyBmZWNoYVJlZ2lzdHJvU2lzdGVtYTpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBjb2RpZG9Vc3VhcmlvOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgb2JzZXJ2YWNpb246IHN0cmluZyA9Jyc7XHJcbiAgICBwdWJsaWMgaWRDZW50cm9NZWRpY286IG51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBpZFRpcG9QZXJzb25hbDpudW1iZXI9MDsgICAgICAgXHJcbiAgICBwdWJsaWMgY29kaWdvQ29tcG9uZW50ZTogc3RyaW5nID0nJztcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25Db21wb25lbnRlOiBzdHJpbmcgPScnO1xyXG4gICAgcHVibGljIGNvZGlnb1JhbmdvOiBzdHJpbmcgPScnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvblJhbmdvOiBzdHJpbmcgPScnOyBcclxuICAgIHB1YmxpYyBjb2RpZ29DZW50cm9NZWRpY286IHN0cmluZyA9Jyc7XHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uQ2VudHJvTWVkaWNvOiBzdHJpbmcgPScnO1xyXG4gICAgcHVibGljIGNvZGlnb1RpcG9QZXJzb25hbDogc3RyaW5nID0nJztcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25UaXBvUGVyc29uYWw6IHN0cmluZyA9Jyc7XHJcbiAgICBwdWJsaWMgY29kaWdvQ2F1c2FSZXRpcm86c3RyaW5nPScnOyAgXHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uQ2F1c2FSZXRpcm86IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZFByb3ZlZWRvckJlbmVmaWNpYXJpbzpudW1iZXI9MDsgICBcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25Fc3RhdHVzOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjb25hcGRpczpib29sZWFuPWZhbHNlO1xyXG4gICAgcHVibGljIGlkU2luZGljYXRvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGNvZGlnb1NpbmRpY2F0bzpzdHJpbmc9JzAwMDAwJztcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25TaW5kaWNhdG86c3RyaW5nPScnOyAgXHJcbiAgICBwdWJsaWMgbm9tYnJlUGFpczpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlRXN0YWRvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVNdW5pY2lwaW86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZVBhcnJvcXVpYTpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlUGFpc05hY2ltaWVudG86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZUVzdGFkb05hY2ltaWVudG86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZU11bmljaXBpb05hY2ltaWVudG86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZVBhcnJvcXVpYU5hY2ltaWVudG86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNvZGlnb1Byb2Zlc2lvbjogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvblByb2Zlc2lvbjogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG1vbnRvUGVuc2lvbjpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZFBsYW5Ib3JhcmlvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkSG9yYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBkZXNjcmlwY2lvblBsYW5Ib3JhcmlvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjb2RpZ29QbGFuSG9yYXJpbzpzdHJpbmc9Jy0tJzsgIFxyXG4gICAgcHVibGljIGlkUHVlc3RvVHJhYmFqbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBkZXNjcmlwY2lvblB1ZXN0b1RyYWJham86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNvZGlnb1B1ZXN0b1RyYWJham86c3RyaW5nPSctLSc7XHJcbiAgICBwdWJsaWMgZGVzY3JpcGNpb25Ib3JhcmlvOnN0cmluZz0nJzsgICBcclxuICAgIHB1YmxpYyBmZWNoYURlZnVuY2lvbjpzdHJpbmc9JzE5MDAtMDEtMDEnOyA7XHJcbiAgICBwdWJsaWMgZmVjaGFBY3RhRGVmdW5jaW9uOnN0cmluZz0nMTkwMC0wMS0wMSc7IDsgICAgIFxyXG4gICAgcHVibGljIG51bWVyb0FjdGFEZWZ1bmNpb246c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvblNpdHVhY2lvbjpzdHJpbmc9Jyc7ICAgXHJcbiAgICBwdWJsaWMgY29kaWdvQ2xhc2lmaWNhZG9yUGVyc29uYWw6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvbkNsYXNpZmljYWRvclBlcnNvbmFsOnN0cmluZz0nJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvciAocDpJUGVyc29uYWw9bnVsbCl7XHJcbiAgICAgICAgc3VwZXIoKVxyXG4gICAgICAgIGlmIChwKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K3AuaWRfZW50ZXJwcmlzZTtcclxuICAgICAgICAgICAgdGhpcy5pZEVtcHJlc2E9cC5pZF9lbXByZXNhOyAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuaWRQZXJzb25hbD0gK3AuaWRfcGVyc29uYWw7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGVyc29uYWw9IHAuY29kcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNlZHVsYVBlcnNvbmFsPSBwLmNlZHBlcjtcclxuICAgICAgICAgICAgdGhpcy5yaWZQZXJzb25hbD0gcC5yaWZwZXI7XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlUGVyc29uYWw9IHAubm9tcGVyOyBcclxuICAgICAgICAgICAgdGhpcy5hcGVsbGlkb1BlcnNvbmFsPSBwLmFwZXBlcjtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYU5hY2ltaWVudG9QZXJzb25hbD0gcC5mZWNuYWNwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGFpc05hY2ltaWVudG89IHAuY29kcGFpbmFjO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0VzdGFkb05hY2ltaWVudG89IHAuY29kZXN0bmFjOyAgXHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvTXVuaWNpcGlvTmFjaW1pZW50bz0gcC5jb2RtdW5uYWM7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGFycm9xdWlhTmFjaW1pZW50bz0gcC5jb2RwYXJuYWM7XHJcbiAgICAgICAgICAgIHRoaXMubmFjaW9uYWxpZGFkUGVyc29uYWw9IHAubmFjcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmVzdGFkb0NpdmlsUGVyc29uYWw9IHAuZXN0Y2l2cGVyO1xyXG4gICAgICAgICAgICB0aGlzLnRlbGVmb25vSGFiaXRhY2lvblBlcnNvbmFsPSBwLnRlbGhhYnBlcjtcclxuICAgICAgICAgICAgdGhpcy50ZWxlZm9ub01vdmlsUGVyc29iYWw9IHAudGVsbW92cGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNvcnJlb0VsZWN0cm9uaWNvUGVyc29uYWw9IHAuY29yZWxlcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmRpcmVjY2lvblBlcnNvbmFsPSBwLmRpcnBlcjtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29QYWlzPSBwLmNvZHBhaTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29Fc3RhZG89IHAuY29kZXN0O1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb011bmljaXBpbz0gcC5jb2RtdW47XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGFycm9xdWlhPSBwLmNvZHBhcjtcclxuICAgICAgICAgICAgdGhpcy5zZXhvUGVyc29uYWw9IHAuc2V4cGVyO1xyXG4gICAgICAgICAgICB0aGlzLm51bWVyb0hpam89K3AubnVtaGlqcGVyOyBcclxuICAgICAgICAgICAgdGhpcy5jb255dWd1ZVRyYWJhamE9ICtwLmNvbnRyYTsgXHJcbiAgICAgICAgICAgIHRoaXMuY2VkdWxhQmVuZWZpY2lhcmlvUGVyc29uYWw9IHAuY2VkYmVucGVyOyBcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVyYT0rcC5lc3RhdHVyYTtcclxuICAgICAgICAgICAgdGhpcy5wZXNvPStwLnBlc287XHJcbiAgICAgICAgICAgIHRoaXMudGFsbGFDYW1pc2E9IHAudGFsbGNhbVxyXG4gICAgICAgICAgICB0aGlzLnRhbGxhUGFudGFsb249cC50YWxscGFuOzEgXHJcbiAgICAgICAgICAgIHRoaXMudGFsbGFaYXBhdG89IHAudGFsbHphcDtcclxuICAgICAgICAgICAgdGhpcy5pZFByb2Zlc2lvbj0gK3AuaWRfcHJvZmVzaW9uOyBcclxuICAgICAgICAgICAgdGhpcy5uaXZlbEFjYWRlbWljb1BlcnNvbmFsPSBwLm5pdmFjYXBlcjtcclxuICAgICAgICAgICAgdGhpcy5pZENvbXBvbmVudGU9K3AuaWRfY29tcG9uZW50ZTtcclxuICAgICAgICAgICAgdGhpcy5pZFJhbmdvPStwLmlkX3JhbmdvO1xyXG4gICAgICAgICAgICB0aGlzLmZvdG9QZXJzb25hbD0gcC5mb3RwZXI7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2YWNpb25QZXJzb25hbD0gcC5vYnNlZ3JwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1BlcnNvbmFsPSBwLmVzdHBlcjtcclxuICAgICAgICAgICAgdGhpcy5pZENsYXNpZmljYWNpb25QZXJzb25hbD0rcC5pZF9jbGFwZXI7XHJcbiAgICAgICAgICAgIHRoaXMudHVybm9QZXJzb25hbD0gcC50dXJwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuaG9yYXJpb1BlcnNvbmFsPSBwLmhvcnBlcjtcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzSENNUGVyc29uYWw9ICtwLmhjbXBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMudGlwb1NhbmdyZVBlcnNvbmFsPSBwLnRpcHNhbnBlcjtcclxuICAgICAgICAgICAgdGhpcy5udW1lcm9FeHBlZGllbnRlUGVyc29uYWw9IHAubnVtZXhwcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNhcmdvT3JpZ2luYWxQZXJzb25hbD0gcC5jYXJvcmlwZXI7XHJcbiAgICAgICAgICAgIHRoaXMudGlwb1ZpdmllbmRhUGVyc29uYWw9ICtwLnRpcHZpdnBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMudGVuZW5jaWFWaXZpZW5kYVBlcnNvbmFsPSBwLnRlbnZpdnBlcjtcclxuICAgICAgICAgICAgdGhpcy5tb250b1BhZ2Fkb1ZpdmllbmRhUGVyc29uYWw9ICtwLm1vbnBhZ3ZpdnBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c0NhamFBaG9ycm89ICtwLmVzdGNhamFobzsgXHJcbiAgICAgICAgICAgIHRoaXMuY3VlbnRhQ2FqYUFob3Jyb1BlcnNvbmFsPSBwLmN1ZWNhamFob3BlcjtcclxuICAgICAgICAgICAgdGhpcy5wb3JjZW50YWplQ2FqYUFob3Jybz0gK3AucG9yY2FqYWhvOyBcclxuICAgICAgICAgICAgdGhpcy5jdWV0YUxleVBvbGl0aWNhSGFiaXRhY2lvbmFQZXJzb25hbD0gcC5jdWVscGhwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY3VlbnRhRmlkZWljb21pc289IHAuY3VlZmlkcGVyOzFcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzU2luZGljYXRvPStwLmVzdHNpbmRpY2F0bztcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUluZ3Jlc29BZG1pbmlzdHJhY2lvblB1YmxpY2E9IHAuZmVjaW5nYWRtcHVicGVyO1xyXG4gICAgICAgICAgICB0aGlzLmFub1NlcnZpY2lvUHJldmlvRmlqb0FQPSArcC5hbm9zZXJ2cHJlZmlqbztcclxuICAgICAgICAgICAgdGhpcy5hbm9TZXJ2aWNpb1ByZXZpb0NvbnRyYXRhZG9BUD0gK3AuYW5vc2VydnByZWNvbnQ7IFxyXG4gICAgICAgICAgICB0aGlzLmFub1BlcnNvbmFsT2JyZXJvPSArcC5hbm9wZXJvYnI7XHJcbiAgICAgICAgICAgIHRoaXMuYW5vU2VydmljaW9QcmV2aW9QZXJzb25hbD0gK3AuYW5vc2VydnByZXBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMubWVzZXNTZXJ2aWNpb1ByZXZpb1BlcnNvbmFsPSArcC5tZXNzZXJ2cHJlcGVyOyBcclxuICAgICAgICAgICAgdGhpcy5kaWFzU2VydmljaW9QcmV2aW9QZXJzb25hbD0gK3AuZGlhc2VydnByZXBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFJbmdlcm9zUGVyc29uYWw9IHAuZmVjaW5ncGVyOyBcclxuICAgICAgICAgICAgdGhpcy5mZWNoYVJlaW5ncmVzb1BlcnNvbmFsPSBwLmZlY3JlaW5ncGVyOyBcclxuICAgICAgICAgICAgdGhpcy5mZWNoYWp1YmlsYWNpb25QZXJzb25hbD0gcC5mZWNqdWJwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmZlY2hhRWdyZXNvUGVyc29uYWw9IHAuZmVjZWdycGVyOyBcclxuICAgICAgICAgICAgdGhpcy5jYXVzYUVncmVzb1BlcnNvbmFsPSBwLmNhdWVncnBlcjtcclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZhY2lvbkVncmVzb1BlcnNvbmFsPSBwLm9ic2VncnBlcjtcclxuICAgICAgICAgICAgdGhpcy5wcmVhdmlzbz0gcC5wcmVhdmlzbztcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUxPU0ZBTj0gcC5mZWNsb3NzZmFuO1xyXG4gICAgICAgICAgICB0aGlzLnNpdHVhY2lvbj0gcC5zaXR1YWNpb247XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFTaXR1YWNpb249IHAuZmVjc2l0dTtcclxuICAgICAgICAgICAgdGhpcy5pZENhdXNhbGVzPSArcC5pZF9jYXVzYWxlcztcclxuICAgICAgICAgICAgdGhpcy5mZWNoYVJlZ2lzdHJvU2lzdGVtYT0gcC5mZWNyZWdzaXM7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWRvVXN1YXJpbz0gcC5jb2R1c3U7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2YWNpb24gPXAub2JzZXJ2YWNpb247XHJcbiAgICAgICAgICAgIHRoaXMuaWRDZW50cm9NZWRpY289IHAuaWRfY2VubWVkc3MsIFxyXG4gICAgICAgICAgICB0aGlzLmlkVGlwb1BlcnNvbmFsPSBwLmlkX3RpcG9wZXJzb25hbCxcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29Db21wb25lbnRlPXAuY29kY29tO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkNvbXBvbmVudGU9cC5kZW5jb207XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUmFuZ289cC5jb2RyYW47XHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uUmFuZ289cC5kZW5yYW47IFxyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NlbnRyb01lZGljbz1wLmNvZGNlbm1lZHNzO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkNlbnRyb01lZGljbz1wLmRlbmNlbm1lZHNzO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1RpcG9QZXJzb25hbD1wLmNvZHRpcHBlcjtcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25UaXBvUGVyc29uYWw9cC5kZW50aXBwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvQ2F1c2FSZXRpcm89cC5kZW5jYXU7XHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uQ2F1c2FSZXRpcm89cC5jb2RjYXU7XHJcbiAgICAgICAgICAgIHRoaXMuaWRQcm92ZWVkb3JCZW5lZmljaWFyaW89cGFyc2VJbnQocC5pZF9wcm92ZWVkb3JiZW5lZmljaWFyaW8pO1xyXG4gICAgICAgICAgICB0aGlzLmlkU2luZGljYXRvPXBhcnNlSW50KHAuaWRfc2luZGljYXRvKTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29TaW5kaWNhdG89cC5jb2RzaW47XHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uU2luZGljYXRvPXAuZGVuc2luO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkVzdGF0dXM9IChFc3RhdHVzUGVyc29uYWwuZmluZChlPT5lLnZhbHVlPT1wLmVzdHBlcikuZGVub21pbmFjaW9uKS50b1VwcGVyQ2FzZSgpOyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLmNvbmFwZGlzPXAuY29uYXBkaXM9PScxJz8gdHJ1ZTpmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5pZFNpbmRpY2F0bz0gcGFyc2VJbnQocC5pZF9zaW5kaWNhdG8pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1NpbmRpY2F0bz1wLmNvZHNpbjtcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25TaW5kaWNhdG89cC5kZW5zaW47XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlUGFpcz1wLmRlc3BhaTtcclxuICAgICAgICAgICAgdGhpcy5ub21icmVFc3RhZG89cC5kZXNlc3Q7XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlTXVuaWNpcGlvPXAuZGVzbXVuO1xyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZVBhcnJvcXVpYT1wLmRlc3BhcjsgXHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlRXN0YWRvTmFjaW1pZW50bz1wLmRlc2VzdF9uYWM7XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlUGFpc05hY2ltaWVudG89cC5kZXNwYWlfbmFjO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1Byb2Zlc2lvbj1wLmNvZHBybztcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25Qcm9mZXNpb249cC5kZW5wcm87XHJcbiAgICAgICAgICAgIHRoaXMubW9udG9QZW5zaW9uPStwLm1vbnBlbjtcclxuICAgICAgICAgICAgdGhpcy5pZFBsYW5Ib3JhcmlvPStwLmlkX3BsYW5ob3I7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuaWRIb3JhPStwLmlkX2hvcmE7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFEZWZ1bmNpb249cC5mZWNkZWY7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFBY3RhRGVmdW5jaW9uPXAuZmVjYWN0ZGVmOyAgXHJcbiAgICAgICAgICAgIHRoaXMubnVtZXJvQWN0YURlZnVuY2lvbj1wLm51bWFjdGRlZjtcclxuICAgICAgICAgICAgaWYodGhpcy5pZFBsYW5Ib3JhcmlvPjApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2RpZ29QbGFuSG9yYXJpbz1wLmNvZHBsYW5ob3I7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXBjaW9uUGxhbkhvcmFyaW89cC5kZW5wbGFuaG9yO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYodGhpcy5pZEhvcmE+MCl7IFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kZXNjcmlwY2lvbkhvcmFyaW89cC5ob3JpbmkrJy0nK3AuaG9yZmluO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcGNpb25QdWVzdG9UcmFiYWpvPXAuZGVzcHVldHJhO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1B1ZXN0b1RyYWJham89cC5jb2RwdWV0cmE7XHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uU2l0dWFjaW9uPSAoU2l0dWFjaW9uUGVyc29uYWwuZmluZChlPT5lLnZhbHVlPT1wLnNpdHVhY2lvbikuZGVub21pbmFjaW9uKS50b0xvY2FsZVVwcGVyQ2FzZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NsYXNpZmljYWRvclBlcnNvbmFsPXAuY29kY2xhcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkNsYXNpZmljYWRvclBlcnNvbmFsPXAuZGVuY2xhcGVyOyAgICBcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlOyAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJUGVyc29uYWwge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2E6dGhpcy5pZEVtcHJlc2EsXHJcbiAgICAgICAgICAgIGlkX2VudGVycHJpc2U6dGhpcy5pZEVudGVycHJpc2UudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfcGVyc29uYWw6K3RoaXMuaWRQZXJzb25hbCxcclxuICAgICAgICAgICAgY29kcGVyOnRoaXMuY29kaWdvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGNlZHBlcjp0aGlzLmNlZHVsYVBlcnNvbmFsLFxyXG4gICAgICAgICAgICByaWZwZXI6dGhpcy5yaWZQZXJzb25hbCxcclxuICAgICAgICAgICAgbm9tcGVyOnRoaXMubm9tYnJlUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGFwZXBlcjp0aGlzLmFwZWxsaWRvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGZlY25hY3Blcjp0aGlzLmZlY2hhTmFjaW1pZW50b1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBjb2RwYWluYWM6dGhpcy5jb2RpZ29QYWlzTmFjaW1pZW50byxcclxuICAgICAgICAgICAgY29kZXN0bmFjOnRoaXMuY29kaWdvRXN0YWRvTmFjaW1pZW50byxcclxuICAgICAgICAgICAgY29kbXVubmFjOnRoaXMuY29kaWdvTXVuaWNpcGlvTmFjaW1pZW50byxcclxuICAgICAgICAgICAgY29kcGFybmFjOnRoaXMuY29kaWdvUGFycm9xdWlhTmFjaW1pZW50byxcclxuICAgICAgICAgICAgbmFjcGVyOnRoaXMubmFjaW9uYWxpZGFkUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGVzdGNpdnBlcjp0aGlzLmVzdGFkb0NpdmlsUGVyc29uYWwsXHJcbiAgICAgICAgICAgIHRlbGhhYnBlcjp0aGlzLnRlbGVmb25vSGFiaXRhY2lvblBlcnNvbmFsLFxyXG4gICAgICAgICAgICB0ZWxtb3ZwZXI6dGhpcy50ZWxlZm9ub01vdmlsUGVyc29iYWwsXHJcbiAgICAgICAgICAgIGNvcmVsZXBlcjp0aGlzLmNvcnJlb0VsZWN0cm9uaWNvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGRpcnBlcjp0aGlzLmRpcmVjY2lvblBlcnNvbmFsLFxyXG4gICAgICAgICAgICBjb2RwYWk6dGhpcy5jb2RpZ29QYWlzLFxyXG4gICAgICAgICAgICBjb2Rlc3Q6dGhpcy5jb2RpZ29Fc3RhZG8sXHJcbiAgICAgICAgICAgIGNvZG11bjp0aGlzLmNvZGlnb011bmljaXBpbyxcclxuICAgICAgICAgICAgY29kcGFyOnRoaXMuY29kaWdvUGFycm9xdWlhLFxyXG4gICAgICAgICAgICBzZXhwZXI6dGhpcy5zZXhvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIG51bWhpanBlcjordGhpcy5udW1lcm9IaWpvLFxyXG4gICAgICAgICAgICBjb250cmE6K3RoaXMuY29ueXVndWVUcmFiYWphLFxyXG4gICAgICAgICAgICBjZWRiZW5wZXI6dGhpcy5jZWR1bGFCZW5lZmljaWFyaW9QZXJzb25hbCxcclxuICAgICAgICAgICAgZXN0YXR1cmE6dGhpcy5lc3RhdHVyYSxcclxuICAgICAgICAgICAgcGVzbzp0aGlzLnBlc28sXHJcbiAgICAgICAgICAgIHRhbGxjYW06dGhpcy50YWxsYUNhbWlzYSxcclxuICAgICAgICAgICAgdGFsbHBhbjp0aGlzLnRhbGxhUGFudGFsb24sXHJcbiAgICAgICAgICAgIHRhbGx6YXA6dGhpcy50YWxsYVphcGF0byxcclxuICAgICAgICAgICAgaWRfcHJvZmVzaW9uOnRoaXMuaWRQcm9mZXNpb24sXHJcbiAgICAgICAgICAgIG5pdmFjYXBlcjp0aGlzLm5pdmVsQWNhZGVtaWNvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGlkX2NvbXBvbmVudGU6K3RoaXMuaWRDb21wb25lbnRlLFxyXG4gICAgICAgICAgICBpZF9yYW5nbzordGhpcy5pZFJhbmdvLFxyXG4gICAgICAgICAgICBmb3RwZXI6dGhpcy5mb3RvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIG9ic3Blcjp0aGlzLm9ic2VydmFjaW9uUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGVzdHBlcjp0aGlzLmVzdGF0dXNQZXJzb25hbCwgICBcclxuICAgICAgICAgICAgaWRfY2xhcGVyOit0aGlzLmlkQ2xhc2lmaWNhY2lvblBlcnNvbmFsLCAgICAgICAgXHJcbiAgICAgICAgICAgIHR1cnBlcjp0aGlzLnR1cm5vUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGhvcnBlcjp0aGlzLmhvcmFyaW9QZXJzb25hbCxcclxuICAgICAgICAgICAgaGNtcGVyOnRoaXMuZXN0YXR1c0hDTVBlcnNvbmFsLFxyXG4gICAgICAgICAgICB0aXBzYW5wZXI6dGhpcy50aXBvU2FuZ3JlUGVyc29uYWwsXHJcbiAgICAgICAgICAgIG51bWV4cHBlcjp0aGlzLm51bWVyb0V4cGVkaWVudGVQZXJzb25hbCxcclxuICAgICAgICAgICAgY2Fyb3JpcGVyOnRoaXMuY2FyZ29PcmlnaW5hbFBlcnNvbmFsLFxyXG4gICAgICAgICAgICB0aXB2aXZwZXI6dGhpcy50aXBvVml2aWVuZGFQZXJzb25hbCxcclxuICAgICAgICAgICAgdGVudml2cGVyOnRoaXMudGVuZW5jaWFWaXZpZW5kYVBlcnNvbmFsLFxyXG4gICAgICAgICAgICBtb25wYWd2aXZwZXI6dGhpcy5tb250b1BhZ2Fkb1ZpdmllbmRhUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGVzdGNhamFobzp0aGlzLmVzdGF0dXNDYWphQWhvcnJvLFxyXG4gICAgICAgICAgICBjdWVjYWphaG9wZXI6dGhpcy5jdWVudGFDYWphQWhvcnJvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIHBvcmNhamFobzp0aGlzLnBvcmNlbnRhamVDYWphQWhvcnJvLFxyXG4gICAgICAgICAgICBjdWVscGhwZXI6dGhpcy5jdWV0YUxleVBvbGl0aWNhSGFiaXRhY2lvbmFQZXJzb25hbCxcclxuICAgICAgICAgICAgY3VlZmlkcGVyOnRoaXMuY3VlbnRhRmlkZWljb21pc28sXHJcbiAgICAgICAgICAgIGVzdHNpbmRpY2F0bzp0aGlzLmVzdGF0dXNTaW5kaWNhdG8sXHJcbiAgICAgICAgICAgIGZlY2luZ2FkbXB1YnBlcjp0aGlzLmZlY2hhSW5ncmVzb0FkbWluaXN0cmFjaW9uUHVibGljYSxcclxuICAgICAgICAgICAgYW5vc2VydnByZWZpam86dGhpcy5hbm9TZXJ2aWNpb1ByZXZpb0Zpam9BUCxcclxuICAgICAgICAgICAgYW5vc2VydnByZWNvbnQ6dGhpcy5hbm9TZXJ2aWNpb1ByZXZpb0NvbnRyYXRhZG9BUCxcclxuICAgICAgICAgICAgYW5vcGVyb2JyOnRoaXMuYW5vUGVyc29uYWxPYnJlcm8sXHJcbiAgICAgICAgICAgIGFub3NlcnZwcmVwZXI6dGhpcy5hbm9TZXJ2aWNpb1ByZXZpb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBtZXNzZXJ2cHJlcGVyOnRoaXMubWVzZXNTZXJ2aWNpb1ByZXZpb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBkaWFzZXJ2cHJlcGVyOnRoaXMuZGlhc1NlcnZpY2lvUHJldmlvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGZlY2luZ3Blcjp0aGlzLmZlY2hhSW5nZXJvc1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBmZWNyZWluZ3Blcjp0aGlzLmZlY2hhUmVpbmdyZXNvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGZlY2p1YnBlcjp0aGlzLmZlY2hhanViaWxhY2lvblBlcnNvbmFsLFxyXG4gICAgICAgICAgICBmZWNlZ3JwZXI6dGhpcy5mZWNoYUVncmVzb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBjYXVlZ3JwZXI6dGhpcy5jYXVzYUVncmVzb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBvYnNlZ3JwZXI6dGhpcy5vYnNlcnZhY2lvbkVncmVzb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBwcmVhdmlzbzp0aGlzLnByZWF2aXNvLFxyXG4gICAgICAgICAgICBmZWNsb3NzZmFuOnRoaXMuZmVjaGFMT1NGQU4sXHJcbiAgICAgICAgICAgIHNpdHVhY2lvbjp0aGlzLnNpdHVhY2lvbixcclxuICAgICAgICAgICAgZmVjc2l0dTp0aGlzLmZlY2hhU2l0dWFjaW9uLFxyXG4gICAgICAgICAgICBpZF9jYXVzYWxlczordGhpcy5pZENhdXNhbGVzLFxyXG4gICAgICAgICAgICBmZWNyZWdzaXM6dGhpcy5mZWNoYVJlZ2lzdHJvU2lzdGVtYSxcclxuICAgICAgICAgICAgY29kdXN1OnRoaXMuY29kaWRvVXN1YXJpbyxcclxuICAgICAgICAgICAgb2JzZXJ2YWNpb246dGhpcy5vYnNlcnZhY2lvbiwgXHJcbiAgICAgICAgICAgIGlkX2Nlbm1lZHNzOit0aGlzLmlkQ2VudHJvTWVkaWNvLCBcclxuICAgICAgICAgICAgaWRfdGlwb3BlcnNvbmFsOit0aGlzLmlkVGlwb1BlcnNvbmFsLCAgXHJcbiAgICAgICAgICAgIGNvZGNvbTp0aGlzLmNvZGlnb0NvbXBvbmVudGUsXHJcbiAgICAgICAgICAgIGRlbmNvbTp0aGlzLmRlbm9taW5hY2lvbkNvbXBvbmVudGUsXHJcbiAgICAgICAgICAgIGNvZHJhbjp0aGlzLmNvZGlnb1JhbmdvLFxyXG4gICAgICAgICAgICBkZW5yYW46dGhpcy5kZW5vbWluYWNpb25SYW5nbyxcclxuICAgICAgICAgICAgY29kY2VubWVkc3M6dGhpcy5jb2RpZ29DZW50cm9NZWRpY28sXHJcbiAgICAgICAgICAgIGRlbmNlbm1lZHNzOnRoaXMuZGVub21pbmFjaW9uQ2VudHJvTWVkaWNvLFxyXG4gICAgICAgICAgICBjb2R0aXBwZXI6dGhpcy5jb2RpZ29UaXBvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGRlbnRpcHBlcjp0aGlzLmRlbm9taW5hY2lvblRpcG9QZXJzb25hbCxcclxuICAgICAgICAgICAgY29kY2F1OnRoaXMuY29kaWdvQ2F1c2FSZXRpcm8sXHJcbiAgICAgICAgICAgIGRlbmNhdTp0aGlzLmRlbm9taW5hY2lvbkNhdXNhUmV0aXJvLCAgIFxyXG4gICAgICAgICAgICBpZF9wcm92ZWVkb3JiZW5lZmljaWFyaW86dGhpcy5pZFByb3ZlZWRvckJlbmVmaWNpYXJpby50b1N0cmluZygpLCAgICAgXHJcbiAgICAgICAgICAgIGlkX3NpbmRpY2F0bzp0aGlzLmlkU2luZGljYXRvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZHNpbjp0aGlzLmNvZGlnb1NpbmRpY2F0byxcclxuICAgICAgICAgICAgZGVuc2luOnRoaXMuZGVub21pbmFjaW9uU2luZGljYXRvLCBcclxuICAgICAgICAgICAgY29uYXBkaXM6dGhpcy5jb25hcGRpcz8gJzEnOicwJyxcclxuICAgICAgICAgICAgZGVzcGFpOnRoaXMubm9tYnJlUGFpcyxcclxuICAgICAgICAgICAgZGVzZXN0OnRoaXMubm9tYnJlRXN0YWRvLFxyXG4gICAgICAgICAgICBkZXNtdW46dGhpcy5ub21icmVNdW5pY2lwaW8sXHJcbiAgICAgICAgICAgIGRlc3Bhcjp0aGlzLm5vbWJyZVBhcnJvcXVpYSwgIFxyXG4gICAgICAgICAgICBkZXNlc3RfbmFjOnRoaXMubm9tYnJlRXN0YWRvTmFjaW1pZW50byxcclxuICAgICAgICAgICAgZGVzcGFpX25hYzp0aGlzLm5vbWJyZVBhaXNOYWNpbWllbnRvLFxyXG4gICAgICAgICAgICBpZF9wbGFuaG9yOnRoaXMuaWRQbGFuSG9yYXJpby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9ob3JhOnRoaXMuaWRIb3JhLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX3B1ZXRyYTp0aGlzLmlkUHVlc3RvVHJhYmFqby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBmZWNkZWY6dGhpcy5mZWNoYURlZnVuY2lvbixcclxuICAgICAgICAgICAgZmVjYWN0ZGVmOnRoaXMuZmVjaGFBY3RhRGVmdW5jaW9uLFxyXG4gICAgICAgICAgICBudW1hY3RkZWY6dGhpcy5udW1lcm9BY3RhRGVmdW5jaW9uLFxyXG4gICAgICAgIFxyXG4gICAgICAgIH0gXHJcbiAgICB9ICAgXHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTUNhbWJpb0VzdGF0dXNQZXJzb25hbCBleHRlbmRzIE1CYXNpY01vZGVse1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkUGVyc29uYWw6IG51bWJlcj0wO1xyXG4gICAgcHVibGljIGNvZGlnb1BlcnNvbmFsOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZXN0YXR1c0FjdHVhbDogc3RyaW5nPScyJztcclxuICAgIHB1YmxpYyBlc3RhdHVzTnVldm86IHN0cmluZz0nMic7XHJcbiAgICBwdWJsaWMgZmVjaGFFZ3Jlc286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjYXVzYUVncmVzbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIHByZWF2aXNvOiBzdHJpbmc9JzEnO1xyXG4gICAgcHVibGljIGlkQ2F1c2FsZXM6IG51bWJlcj0wO1xyXG4gICAgcHVibGljIG9ic2VydmFjaW9uOiBzdHJpbmc9Jyc7ICBcclxuICAgIHB1YmxpYyBmZWNoYVJlaW5ncmVzbzpzdHJpbmc9JzE5MDAtMDEtMDEnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yIChlOklDYW1iaW9Fc3RhdHVzUGVyc29uYWw9bnVsbCkgeyAgXHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBpZihlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTtcclxuICAgICAgICAgICAgdGhpcy5pZEVtcHJlc2E9ZS5pZF9lbXByZXNhOyBcclxuICAgICAgICAgICAgdGhpcy5pZFBlcnNvbmFsID0gZS5pZFBlcnNvbmFsO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1BlcnNvbmFsID0gZS5jb2RpZ29QZXJzb25hbDtcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzQWN0dWFsID0gZS5lc3RhdHVzQWN0dWFsO1xyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNOdWV2byA9IGUuZXN0YXR1c051ZXZvO1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhRWdyZXNvID0gZS5mZWNoYUVncmVzbztcclxuICAgICAgICAgICAgdGhpcy5jYXVzYUVncmVzbyA9IGUuY2F1c2FFZ3Jlc287XHJcbiAgICAgICAgICAgIHRoaXMucHJlYXZpc28gPSBlLnByZWF2aXNvO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ2F1c2FsZXM9IGUuaWRDYXVzYWxlcztcclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZhY2lvbiA9IGUub2JzZXJ2YWNpb247ICBcclxuICAgICAgICAgICAgdGhpcy5mZWNoYVJlaW5ncmVzbz0gZS5mZWNoYVJlaW5ncmVzbztcclxuIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHB1YmxpYyBkYXRhSW50ZXJmYWNlKCk6SUNhbWJpb0VzdGF0dXNQZXJzb25hbHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbXByZXNhOnRoaXMuaWRFbXByZXNhLFxyXG4gICAgICAgICAgICBpZF9lbnRlcnByaXNlOnRoaXMuaWRFbnRlcnByaXNlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkUGVyc29uYWw6IHRoaXMuaWRQZXJzb25hbCxcclxuICAgICAgICAgICAgY29kaWdvUGVyc29uYWw6IHRoaXMuY29kaWdvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGVzdGF0dXNBY3R1YWw6IHRoaXMuZXN0YXR1c0FjdHVhbCxcclxuICAgICAgICAgICAgZXN0YXR1c051ZXZvOiB0aGlzLmVzdGF0dXNOdWV2byxcclxuICAgICAgICAgICAgZmVjaGFFZ3Jlc286IHRoaXMuZmVjaGFFZ3Jlc28sXHJcbiAgICAgICAgICAgIGNhdXNhRWdyZXNvOiB0aGlzLmNhdXNhRWdyZXNvLFxyXG4gICAgICAgICAgICBwcmVhdmlzbzogdGhpcy5wcmVhdmlzbyxcclxuICAgICAgICAgICAgaWRDYXVzYWxlczogdGhpcy5pZENhdXNhbGVzLFxyXG4gICAgICAgICAgICBvYnNlcnZhY2lvbjogdGhpcy5vYnNlcnZhY2lvbiwgXHJcbiAgICAgICAgICAgIGZlY2hhUmVpbmdyZXNvOnRoaXMuZmVjaGFSZWluZ3Jlc28sXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNUGVyc29uYWxDdWVudGFCYW5jbyBleHRlbmRzIE1CYXNpY01vZGVsIHtcclxuICAgIHB1YmxpYyBpZEVtcHJlc2E6bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGlkRW50ZXJwcmlzZTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZFBlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkQ3VlbnRhQmFuY29QZXJzb25hbDpudW1iZXI9LTE7XHJcbiAgICBwdWJsaWMgY29kaWdvQ3VlbnRhQmFuY29QZXJzb25hbDpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uQ3VlbnRhQmFuY29QZXJzb25hbDpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgaWRCYW5jbzpudW1iZXI9MDsgICBcclxuICAgIHB1YmxpYyBpZFRpcG9DdWVudGFCYW5jbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjdWVudGFCYW5jb1BlcnNvbmFsOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBlc3RhdHVzQ3VlbnRhQmFuY286Ym9vbGVhbj10cnVlO1xyXG4gICAgcHVibGljIHRpcG9DdWVudGFQcmluY2lwYWw6Ym9vbGVhbj1mYWxzZTtcclxuICAgIHB1YmxpYyBjb2RpZ29CYW5jbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgY3VlbnRhUmVkdWNpZGE6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZUJhbmNvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVUaXBvQ3VlbnRhQmFuY286c3RyaW5nPScnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGU/OklQZXJzb25hbEN1ZW50YXNCYW5jYXJpYXMpe1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgaWYgKGUpe1xyXG4gICAgICAgICAgICB0aGlzLmlkRW50ZXJwcmlzZT0rZS5pZF9lbnRlcnByaXNlO1xyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT1lLmlkX2VtcHJlc2E7ICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy5pZFBlcnNvbmFsPXBhcnNlSW50KGUuaWRfcGVyc29uYWwpO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ3VlbnRhQmFuY29QZXJzb25hbD1wYXJzZUludChlLmlkX2N0YWJhbnBlcik7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvQ3VlbnRhQmFuY29QZXJzb25hbD1lLmNvZGN0YWJhbnBlcjtcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25DdWVudGFCYW5jb1BlcnNvbmFsPWUuZGVuY3RhYmFucGVyO1xyXG4gICAgICAgICAgICB0aGlzLmlkQmFuY289cGFyc2VJbnQoZS5pZF9iYW5jbyk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRUaXBvQ3VlbnRhQmFuY289cGFyc2VJbnQoZS5pZF90aXBvY3RhKTtcclxuICAgICAgICAgICAgdGhpcy5jdWVudGFCYW5jb1BlcnNvbmFsPWUuY3RhYmFucGVyO1xyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNDdWVudGFCYW5jbz1lLmVzdGN0YWJjbz09JzEnPyB0cnVlOmZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnRpcG9DdWVudGFQcmluY2lwYWw9ZS50aXBjdGFwcmk9PScxJz8gdHJ1ZTpmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29CYW5jbz10aGlzLmN1ZW50YUJhbmNvUGVyc29uYWwuc3Vic3RyaW5nKDAsNCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VlbnRhUmVkdWNpZGE9dGhpcy5jdWVudGFCYW5jb1BlcnNvbmFsLnNsaWNlKDQpXHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlQmFuY289ZS5ub21iYW47XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlVGlwb0N1ZW50YUJhbmNvPWUubm9tdGlwY3RhO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXc9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGF0YUludGVyZmFjZSgpOklQZXJzb25hbEN1ZW50YXNCYW5jYXJpYXN7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRfZW50ZXJwcmlzZTp0aGlzLmlkRW50ZXJwcmlzZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9lbXByZXNhOnRoaXMuaWRFbXByZXNhLCBcclxuICAgICAgICAgICAgaWRfcGVyc29uYWw6dGhpcy5pZFBlcnNvbmFsLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBpZF9jdGFiYW5wZXI6dGhpcy5pZEN1ZW50YUJhbmNvUGVyc29uYWwudG9TdHJpbmcoKSwgXHJcbiAgICAgICAgICAgIGNvZGN0YWJhbnBlcjp0aGlzLmNvZGlnb0N1ZW50YUJhbmNvUGVyc29uYWwsIFxyXG4gICAgICAgICAgICBkZW5jdGFiYW5wZXI6dGhpcy5kZW5vbWluYWNpb25DdWVudGFCYW5jb1BlcnNvbmFsLCBcclxuICAgICAgICAgICAgaWRfYmFuY286dGhpcy5pZEJhbmNvLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBpZF90aXBvY3RhOnRoaXMuaWRUaXBvQ3VlbnRhQmFuY28udG9TdHJpbmcoKSwgXHJcbiAgICAgICAgICAgIGN0YWJhbnBlcjp0aGlzLmN1ZW50YUJhbmNvUGVyc29uYWwsIFxyXG4gICAgICAgICAgICBlc3RjdGFiY286dGhpcy5lc3RhdHVzQ3VlbnRhQmFuY28/ICcxJzonMCcsIFxyXG4gICAgICAgICAgICB0aXBjdGFwcmk6dGhpcy50aXBvQ3VlbnRhUHJpbmNpcGFsPyAnMSc6JzAnLFxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1Fc3R1ZGlvc1JlYWxpemFkb3Mge1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEVudGVycHJpc2U6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEVzdHVkaW86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgdGlwb0VzdHVkaW9SZWFsaXphZG86c3RyaW5nPScxJztcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nMSc7XHJcbiAgICBwdWJsaWMgaW5zdGl0dXRvRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZGVzY3JpcGNpb25Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgdGl0dWxvRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIGNhbGlmaWNhY2lvbkVzdHVkaW9SZWFsaXphZG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgZXNjYWxhVmFsb3JlczpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIGZlY2hhSW5pY2lvRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBmZWNoYUZpbkVzdHVkaW9SZWFsaXphZG86c3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgZmVjaGFHcmFkb0VzdHVkaW9SZWFsaXphZG86c3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgYXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG86c3RyaW5nPScxJzsgXHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uQXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG86c3RyaW5nOyBcclxuICAgIHB1YmxpYyBhbm9BcHJvYmFjaW9uRXN0dWRpb1JlYWxpemFkbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBob3Jhc0VzdHVkaW9SZWFsaXphZG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgVGlwb0VzdHVkaW89RXN0dWRpb3NcclxuICAgIHB1YmxpYyBBcHJvYmFkbz1Fc3RhdHVzRXN0dWRpb1xyXG5cclxuICAgIGNvbnN0cnVjdG9yIChlOklFc3R1ZGlvUmVhbGl6YWRvPSBudWxsKXtcclxuICAgICAgICBpZihlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVtcHJlc2E9IGUuaWRfZW1wcmVzYTtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTtcclxuICAgICAgICAgICAgdGhpcy5pZFBlcnNvbmFsPSBwYXJzZUludChlLmlkX3BlcnNvbmFsKTtcclxuICAgICAgICAgICAgdGhpcy5pZEVzdHVkaW89IHBhcnNlSW50KGUuaWRfZXN0dWRpbyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvRXN0dWRpb1JlYWxpemFkbz0gZS5jb2Rlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMudGlwb0VzdHVkaW9SZWFsaXphZG89IGUudGlwZXN0cmVhO1xyXG4gICAgICAgICAgICB0aGlzLmluc3RpdHV0b0VzdHVkaW9SZWFsaXphZG89IGUuaW5zZXN0cmVhO1xyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXBjaW9uRXN0dWRpb1JlYWxpemFkbz0gZS5kZXNlc3RyZWE7IFxyXG4gICAgICAgICAgICB0aGlzLnRpdHVsb0VzdHVkaW9SZWFsaXphZG89IGUudGl0ZXN0cmVhOyBcclxuICAgICAgICAgICAgdGhpcy5jYWxpZmljYWNpb25Fc3R1ZGlvUmVhbGl6YWRvPSArZS5jYWxlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMuZXNjYWxhVmFsb3Jlcz0gZS5lc2N2YWw7IFxyXG4gICAgICAgICAgICB0aGlzLmZlY2hhSW5pY2lvRXN0dWRpb1JlYWxpemFkbz0gZS5mZWNpbmlyZWFlc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFGaW5Fc3R1ZGlvUmVhbGl6YWRvPSBlLmZlY2ZpbmVzdHJlYTtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUdyYWRvRXN0dWRpb1JlYWxpemFkbz0gZS5mZWNncmFlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMuYXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG89IGUuYXByZXN0cmVhOyBcclxuICAgICAgICAgICAgdGhpcy5hbm9BcHJvYmFjaW9uRXN0dWRpb1JlYWxpemFkbz0gcGFyc2VJbnQoZS5hbm9hcHJlc3RyZWEpO1xyXG4gICAgICAgICAgICB0aGlzLmhvcmFzRXN0dWRpb1JlYWxpemFkbz0gcGFyc2VJbnQoZS5ob3Jlc3RyZWEpOyAgXHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uRXN0dWRpb1JlYWxpemFkbz10aGlzLlRpcG9Fc3R1ZGlvLmZpbmQoZT0+ZS52YWx1ZT09dGhpcy50aXBvRXN0dWRpb1JlYWxpemFkbykuZGVub21pbmFjaW9uICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uQXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG89dGhpcy5BcHJvYmFkby5maW5kKGU9PmUudmFsdWU9PXRoaXMuYXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG8pLmRlbm9taW5hY2lvbiAgICAgIFxyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkYXRhSW50ZXJmYWNlKCk6SUVzdHVkaW9SZWFsaXphZG97XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRfZW1wcmVzYTp0aGlzLmlkRW1wcmVzYSwgXHJcbiAgICAgICAgICAgIGlkX2VudGVycHJpc2U6dGhpcy5pZEVudGVycHJpc2UudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfcGVyc29uYWw6dGhpcy5pZFBlcnNvbmFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2VzdHVkaW86dGhpcy5pZEVzdHVkaW8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgY29kZXN0cmVhOnRoaXMuY29kaWdvRXN0dWRpb1JlYWxpemFkbyxcclxuICAgICAgICAgICAgdGlwZXN0cmVhOnRoaXMudGlwb0VzdHVkaW9SZWFsaXphZG8sXHJcbiAgICAgICAgICAgIGluc2VzdHJlYTp0aGlzLmluc3RpdHV0b0VzdHVkaW9SZWFsaXphZG8sXHJcbiAgICAgICAgICAgIGRlc2VzdHJlYTp0aGlzLmRlc2NyaXBjaW9uRXN0dWRpb1JlYWxpemFkbywgXHJcbiAgICAgICAgICAgIHRpdGVzdHJlYTp0aGlzLnRpdHVsb0VzdHVkaW9SZWFsaXphZG8sIFxyXG4gICAgICAgICAgICBjYWxlc3RyZWE6dGhpcy5jYWxpZmljYWNpb25Fc3R1ZGlvUmVhbGl6YWRvLCBcclxuICAgICAgICAgICAgZXNjdmFsOnRoaXMuZXNjYWxhVmFsb3JlcywgXHJcbiAgICAgICAgICAgIGZlY2luaXJlYWVzdDp0aGlzLmZlY2hhSW5pY2lvRXN0dWRpb1JlYWxpemFkbywgXHJcbiAgICAgICAgICAgIGZlY2ZpbmVzdHJlYTp0aGlzLmZlY2hhRmluRXN0dWRpb1JlYWxpemFkbywgXHJcbiAgICAgICAgICAgIGZlY2dyYWVzdHJlYTp0aGlzLmZlY2hhR3JhZG9Fc3R1ZGlvUmVhbGl6YWRvLCBcclxuICAgICAgICAgICAgYXByZXN0cmVhOnRoaXMuYXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG8sXHJcbiAgICAgICAgICAgIGFub2FwcmVzdHJlYTp0aGlzLmFub0Fwcm9iYWNpb25Fc3R1ZGlvUmVhbGl6YWRvLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBob3Jlc3RyZWE6dGhpcy5ob3Jhc0VzdHVkaW9SZWFsaXphZG8udG9TdHJpbmcoKSxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNUHJlc3RhY2lvbmVzQW50aWd1ZWRhZCBleHRlbmRzIE1CYXNpY01vZGVse1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEVudGVycHJpY2U6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEZpZGVpY29taXNvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGFub0N1clBlcmlvZG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgbWVzQ3VyUGVyaW9kbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBzdWVsZG9JbnRlZ3JhbFBlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGJvbm9FeHRyYVBlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGJvbm9WYWNhY2lvbmVzUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYm9ub0ZpbkFubm9QZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBhcG9ydGVQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBkaWFGaWRlaWNvbWlzbzpudW1iZXI9MFxyXG4gICAgcHVibGljIGRpYUFkaWNpb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBtZXRvZG9QcmVzYXRjaW9uZXM6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG1ldG9kb0RpYXNBZGljaW9uYWxlczpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgYm9ub1ZhY2FjaW9uYWxEaWFzQWRpY2lvbmFsZXNQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBib25vRmluQW5ub0RpYXNBZGljaW9uYWxlc1BlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIHN1ZWxkb0ludGVncmFsRGlhc0FkaWNpb25hbGVzUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYXBvcnRlUHJlc3RhY2lvbmVzUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYXBvcnRlQWRpY2lvbmFsUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvVXN1YXJpbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgaWREdEZpZGVpY29taXNvUGVyaW9kbzpudW1iZXI9MDtcclxuICAgICBcclxuICAgIGNvbnN0cnVjdG9yKGU6SVByZXN0YWNpb25lc0FudGlndWVkYWQ9bnVsbCl7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBpZiAoZSkge1xyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT1lLmlkX2VtcHJlc2E7IFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbnRlcnByaXNlXHJcbiAgICAgICAgICAgIHRoaXMuaWRQZXJzb25hbD1wYXJzZUludChlLmlkX3BlcnNvbmFsKTtcclxuICAgICAgICAgICAgdGhpcy5pZEZpZGVpY29taXNvPXBhcnNlSW50KGUuaWRfZmlkZWljb21pc28pO1xyXG4gICAgICAgICAgICB0aGlzLmFub0N1clBlcmlvZG89cGFyc2VJbnQoZS5hbm9jdXJwZXIpO1xyXG4gICAgICAgICAgICB0aGlzLm1lc0N1clBlcmlvZG89cGFyc2VJbnQoZS5tZXNjdXJwZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnN1ZWxkb0ludGVncmFsUGVyc29uYWw9K2Uuc3VlaW50cGVyO1xyXG4gICAgICAgICAgICB0aGlzLmJvbm9FeHRyYVBlcnNvbmFsPStlLmJvbmV4dHBlcjtcclxuICAgICAgICAgICAgdGhpcy5ib25vVmFjYWNpb25lc1BlcnNvbmFsPStlLmJvbnZhY3BlcjtcclxuICAgICAgICAgICAgdGhpcy5ib25vRmluQW5ub1BlcnNvbmFsPStlLmJvbmZpbnBlcjtcclxuICAgICAgICAgICAgdGhpcy5hcG9ydGVQZXJzb25hbD0rZS5hcG9wZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhRmlkZWljb21pc289K2UuZGlhZmlkO1xyXG4gICAgICAgICAgICB0aGlzLmRpYUFkaWNpb25hbD0rZS5kaWFhZGk7XHJcbiAgICAgICAgICAgIHRoaXMubWV0b2RvUHJlc2F0Y2lvbmVzPWUubWV0b2RvcHJlO1xyXG4gICAgICAgICAgICB0aGlzLm1ldG9kb0RpYXNBZGljaW9uYWxlcz1lLm1ldG9kb2FkaTtcclxuICAgICAgICAgICAgdGhpcy5ib25vVmFjYWNpb25hbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsPStlLmJvbnZhY2FkaXBlcjtcclxuICAgICAgICAgICAgdGhpcy5ib25vRmluQW5ub0RpYXNBZGljaW9uYWxlc1BlcnNvbmFsPStlLmJvbmZpbmFkaXBlcjtcclxuICAgICAgICAgICAgdGhpcy5zdWVsZG9JbnRlZ3JhbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsPStlLnN1ZWludGFkaXBlcjtcclxuICAgICAgICAgICAgdGhpcy5hcG9ydGVQcmVzdGFjaW9uZXNQZXJzb25hbD0rZS5hcG9wcmVwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYXBvcnRlQWRpY2lvbmFsUGVyc29uYWw9K2UuYXBvYWRpcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1VzdWFyaW89ZS5jb2R1c3U7XHJcbiAgICAgICAgICAgIHRoaXMuaWREdEZpZGVpY29taXNvUGVyaW9kbz1wYXJzZUludChlLmlkX2R0X2ZpZGVpcGVyaW9kbyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklQcmVzdGFjaW9uZXNBbnRpZ3VlZGFke1xyXG4gICAgICAgIHJldHVybntcclxuICAgICAgICAgICAgaWRfZW1wcmVzYTp0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgICAgICAgaWRfZW50ZXJwcmlzZTp0aGlzLmlkRW50ZXJwcmljZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9wZXJzb25hbDp0aGlzLmlkUGVyc29uYWwudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfZmlkZWljb21pc286dGhpcy5pZEZpZGVpY29taXNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGFub2N1cnBlcjp0aGlzLmFub0N1clBlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgbWVzY3VycGVyOnRoaXMubWVzQ3VyUGVyaW9kby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBzdWVpbnRwZXI6dGhpcy5zdWVsZG9JbnRlZ3JhbFBlcnNvbmFsLFxyXG4gICAgICAgICAgICBib25leHRwZXI6dGhpcy5ib25vRXh0cmFQZXJzb25hbCxcclxuICAgICAgICAgICAgYm9udmFjcGVyOnRoaXMuYm9ub1ZhY2FjaW9uZXNQZXJzb25hbCxcclxuICAgICAgICAgICAgYm9uZmlucGVyOnRoaXMuYm9ub0ZpbkFubm9QZXJzb25hbCxcclxuICAgICAgICAgICAgYXBvcGVyOnRoaXMuYXBvcnRlUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGRpYWZpZDp0aGlzLmRpYUZpZGVpY29taXNvLFxyXG4gICAgICAgICAgICBkaWFhZGk6dGhpcy5kaWFBZGljaW9uYWwsXHJcbiAgICAgICAgICAgIG1ldG9kb3ByZTp0aGlzLm1ldG9kb1ByZXNhdGNpb25lcyxcclxuICAgICAgICAgICAgbWV0b2RvYWRpOnRoaXMubWV0b2RvRGlhc0FkaWNpb25hbGVzLFxyXG4gICAgICAgICAgICBib252YWNhZGlwZXI6dGhpcy5ib25vVmFjYWNpb25hbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBib25maW5hZGlwZXI6dGhpcy5ib25vRmluQW5ub0RpYXNBZGljaW9uYWxlc1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBzdWVpbnRhZGlwZXI6dGhpcy5zdWVsZG9JbnRlZ3JhbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBhcG9wcmVwZXI6dGhpcy5hcG9ydGVQcmVzdGFjaW9uZXNQZXJzb25hbCxcclxuICAgICAgICAgICAgYXBvYWRpcGVyOnRoaXMuYXBvcnRlQWRpY2lvbmFsUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGNvZHVzdTp0aGlzLmNvZGlnb1VzdWFyaW8sXHJcbiAgICAgICAgICAgIGlkX2R0X2ZpZGVpcGVyaW9kbzp0aGlzLmlkRHRGaWRlaWNvbWlzb1BlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICBcclxufVxyXG5cclxuIl19