Fase 1 [Descripciones Multivariantes]

En esta primera etapa del estudio, se realizará un conjunto de cálculos, visualizaciones y análisis exploratorios sobre los datos relacionados con la deserción de empleados en la empresa IBM, los cuales se describen detalladamente en la sección 1.2. El análisis se abordará desde la perspectiva de la estadística descriptiva multivariante, lo que permitirá obtener no solo una visión general del comportamiento del personal dentro de la organización, sino también una comprensión más profunda de las relaciones entre las diversas variables asociadas a la permanencia o renuncia de los empleados.

Este enfoque contribuirá a identificar patrones clave, tendencias relevantes y posibles factores asociados al abandono laboral, tales como el nivel de satisfacción, las condiciones laborales, la experiencia o la edad.Las visualizaciones ocuparán un papel fundamental, pues facilitarán la representación gráfica de estas relaciones y permitirán explorar los datos de forma clara, intuitiva y accesible.

Todo el proceso se desarrollará utilizando las herramientas R y RStudio, que posibilitan una ejecución eficiente de los cálculos, el manejo adecuado del conjunto de datos y la creación de gráficos dinámicos que enriquecen la interpretación de los resultados obtenidos.

1.1. Objetivos

El objetivo de este proyecto es aplicar técnicas de análisis de datos para estudiar el conjunto de datos IBM HR Analytics Employee Attrition & Performance, con el fin de identificar patrones relacionados con la deserción y el rendimiento de los empleados. A través de este análisis, se busca fortalecer las habilidades en la gestión y exploración de información, contribuyendo a la comprensión de los factores que influyen en la productividad y la toma de decisiones dentro de una organización. Este trabajo se enmarca dentro del curso de Gestión de Datos durante el periodo academico 2025-2.

1.2. Descripción de los datos

El conjunto de datos fue obtenido en su totalidad de Kaggle: (https://www.kaggle.com/uniabhi). Kaggle es una plataforma en línea de ciencia de datos y aprendizaje automático, propiedad de Google LLC. Esta facilita la participación en competencias donde las empresas publican conjuntos de datos y problemas, permitiendo a los usuarios desarrollar modelos predictivos y competir. La plataforma también ofrece notebooks para compartir y colaborar en proyectos utilizando Python y R, así como una amplia colección de conjuntos de datos de acceso público. Además, Kaggle Learn, una sección de la plataforma dedicada a la educación y el aprendizaje en ciencia de datos y aprendizaje automático, proporciona tutoriales y cursos interactivos en temas como Python, SQL, visualización de datos y aprendizaje automático, dirigidos a principiantes y usuarios avanzados.

Este conjunto de datos sobre la desercion y rendimiento de empleados, fue creado por la empresa IBM con el objetivo de analizar las causas por las que los trabajadores dejan una empresa y los factores que influyen en su rendimiento. Es un conjunto muy usado en estudios de recursos humanos y análisis de datos por la cantidad y variedad de información que contiene.

Este conjunto de datos se relaciona con las áreas: 3. Engineering Economic Analysis(Analisis de Ingenieria Economica), 6. Ergonomics & Human Factors(Ergonomia y Factores Humanos), 7. Operations Engineering & Management(Ingenieria de Operaciones y Gestión) y 9. Engineering Management(Gestión de Ingeniria) del IISE Body of Knowledge. Debido a que permite analizar factores económicos, humanos y organizacionales que influyen en la rotación y desempeño de los empleados. Su estudio ayuda a tomar decisiones estratégicas para mejorar la productividad, el bienestar del personal y la eficiencia en la gestión del talento dentro de la empresa.

El conjunto de datos Consta de 1470 registros de empleados y 35 variables relacionadas con aspectos personales, laborales y de satisfacción. Algunas variables describen la edad, el salario, el área de trabajo, los años en la empresa, el nivel educativo y si el empleado ha dejado o no la organización. Algunos campos son de naturaleza cualitativa nominal o ordinal, como Department, EducationField o JobRole, mientras que otros son cuantitativos continuos o discretos, como Age, MonthlyIncome o YearsAtCompany. La variable Attrition (Sí/No) es de tipo dicotómica nominal, utilizada como variable objetivo en la mayoría de los análisis predictivos que se realizan con este conjunto.La lista siguiente describe las variables principales del conjunto de datos en el mismo orden en que aparecen y se establece para cada campo el tipo de variable y su escala de medición con base en la nomenclatura (tipo_de_variable::escala_de_medición[ordenamiento]):

  • Age (cuantitativa::razón): Indica la edad del empleado en años completos.

  • Attrition (cualitativa::nominal): Muestra si el empleado dejó la empresa (Yes) o continúa en ella (No).

  • Department (cualitativa::nominal): Señala el área donde trabaja el empleado, como Sales, Research & Development o Human Resources.

  • DistanceFromHome (cuantitativa::razón): Indica la distancia, en kilómetros, entre la casa del empleado y la oficina.

  • Education (cualitativa::ordinal): Representa el nivel educativo alcanzado, codificado en una escala del 1 al 5, donde 1 corresponde a “Below College” y 5 a “Doctor”.

  • EducationField (cualitativa::nominal): Indica el campo de formación académica del empleado, como Life Sciences, Medical o Marketing.

  • EmployeeNumber (cuantitativa::nominal): Asigna un código único a cada empleado dentro de la organización, usado como identificador. Gender (cualitativa::nominal): Registra el género del empleado, clasificado como Male o Female.

  • EnvironmentSatisfaction (cualitativa::ordinal): Mide el nivel de satisfacción del empleado con su entorno laboral (escala del 1 al 4).

  • JobLevel (cualitativa::ordinal): Representa el nivel jerárquico dentro de la empresa, con valores del 1 al 5, donde 1 corresponde a puestos más bajos y 5 a cargos directivos.

  • JobRole (cualitativa::nominal): Describe el cargo o función que desempeña el empleado dentro de la organización.

  • JobSatisfaction (cualitativa::ordinal): Evalúa el nivel de satisfacción con el trabajo, en una escala del 1 al 4, donde 1 es “Low” y 4 es “Very High”.

  • MaritalStatus (cualitativa::nominal): Indica el estado civil del empleado (Single, Married o Divorced).

  • MonthlyIncome (cuantitativa::razón): Representa el salario mensual del empleado en dólares.

  • OverTime (cualitativa::nominal): Indica si el empleado trabaja horas extra (Yes/No).

  • PerformanceRating (cualitativa::ordinal): Mide el desempeño del empleado según la empresa, en una escala del 1 al 4 (de “Low” a “Outstanding”).

  • TotalWorkingYears (cuantitativa::razón): Muestra el total de años de experiencia laboral que tiene el empleado.

  • YearsAtCompany (cuantitativa::razón): Registra los años que el empleado ha trabajado en la empresa actual.

  • WorkLifeBalance (cualitativa::ordinal): Evalúa el equilibrio entre la vida personal y laboral del empleado, en una escala de 1 a 4.

  • YearsSinceLastPromotion (cuantitativa::razón): Indica el número de años desde el último ascenso del empleado.

Estructura del Conjunto de Datos Original

str(desercion_empleados_IBM_original)
## tibble [1,470 × 35] (S3: tbl_df/tbl/data.frame)
##  $ Age                     : num [1:1470] 41 49 37 33 27 32 59 30 38 36 ...
##  $ Attrition               : chr [1:1470] "Yes" "No" "Yes" "No" ...
##  $ BusinessTravel          : chr [1:1470] "Travel_Rarely" "Travel_Frequently" "Travel_Rarely" "Travel_Frequently" ...
##  $ DailyRate               : num [1:1470] 1102 279 1373 1392 591 ...
##  $ Department              : chr [1:1470] "Sales" "Research & Development" "Research & Development" "Research & Development" ...
##  $ DistanceFromHome        : num [1:1470] 1 8 2 3 2 2 3 24 23 27 ...
##  $ Education               : num [1:1470] 2 1 2 4 1 2 3 1 3 3 ...
##  $ EducationField          : chr [1:1470] "Life Sciences" "Life Sciences" "Other" "Life Sciences" ...
##  $ EmployeeCount           : num [1:1470] 1 1 1 1 1 1 1 1 1 1 ...
##  $ EmployeeNumber          : num [1:1470] 1 2 4 5 7 8 10 11 12 13 ...
##  $ EnvironmentSatisfaction : num [1:1470] 2 3 4 4 1 4 3 4 4 3 ...
##  $ Gender                  : chr [1:1470] "Female" "Male" "Male" "Female" ...
##  $ HourlyRate              : num [1:1470] 94 61 92 56 40 79 81 67 44 94 ...
##  $ JobInvolvement          : num [1:1470] 3 2 2 3 3 3 4 3 2 3 ...
##  $ JobLevel                : num [1:1470] 2 2 1 1 1 1 1 1 3 2 ...
##  $ JobRole                 : chr [1:1470] "Sales Executive" "Research Scientist" "Laboratory Technician" "Research Scientist" ...
##  $ JobSatisfaction         : num [1:1470] 4 2 3 3 2 4 1 3 3 3 ...
##  $ MaritalStatus           : chr [1:1470] "Single" "Married" "Single" "Married" ...
##  $ MonthlyIncome           : num [1:1470] 5993 5130 2090 2909 3468 ...
##  $ MonthlyRate             : num [1:1470] 19479 24907 2396 23159 16632 ...
##  $ NumCompaniesWorked      : num [1:1470] 8 1 6 1 9 0 4 1 0 6 ...
##  $ Over18                  : chr [1:1470] "Y" "Y" "Y" "Y" ...
##  $ OverTime                : chr [1:1470] "Yes" "No" "Yes" "Yes" ...
##  $ PercentSalaryHike       : num [1:1470] 11 23 15 11 12 13 20 22 21 13 ...
##  $ PerformanceRating       : num [1:1470] 3 4 3 3 3 3 4 4 4 3 ...
##  $ RelationshipSatisfaction: num [1:1470] 1 4 2 3 4 3 1 2 2 2 ...
##  $ StandardHours           : num [1:1470] 80 80 80 80 80 80 80 80 80 80 ...
##  $ StockOptionLevel        : num [1:1470] 0 1 0 0 1 0 3 1 0 2 ...
##  $ TotalWorkingYears       : num [1:1470] 8 10 7 8 6 8 12 1 10 17 ...
##  $ TrainingTimesLastYear   : num [1:1470] 0 3 3 3 3 2 3 2 2 3 ...
##  $ WorkLifeBalance         : num [1:1470] 1 3 3 3 3 2 2 3 3 2 ...
##  $ YearsAtCompany          : num [1:1470] 6 10 0 8 2 7 1 1 9 7 ...
##  $ YearsInCurrentRole      : num [1:1470] 4 7 0 7 2 7 0 0 7 7 ...
##  $ YearsSinceLastPromotion : num [1:1470] 0 1 0 3 2 3 0 0 1 7 ...
##  $ YearsWithCurrManager    : num [1:1470] 5 7 0 0 2 6 0 0 8 7 ...

Estructura del Conjunto de Datos ETL

str(desercion_empleados_IBM_ETL)
## tibble [1,470 × 33] (S3: tbl_df/tbl/data.frame)
##  $ Age                     : num [1:1470] 41 49 37 33 27 32 59 30 38 36 ...
##  $ Attrition               : chr [1:1470] "Yes" "No" "Yes" "No" ...
##  $ BusinessTravel          : chr [1:1470] "Travel_Rarely" "Travel_Frequently" "Travel_Rarely" "Travel_Frequently" ...
##  $ DailyRate               : num [1:1470] 1102 279 1373 1392 591 ...
##  $ Department              : chr [1:1470] "Sales" "Research & Development" "Research & Development" "Research & Development" ...
##  $ DistanceFromHome        : num [1:1470] 1 8 2 3 2 2 3 24 23 27 ...
##  $ Education               : num [1:1470] 2 1 2 4 1 2 3 1 3 3 ...
##  $ EducationField          : chr [1:1470] "Life Sciences" "Life Sciences" "Other" "Life Sciences" ...
##  $ EmployeeNumber          : num [1:1470] 1 2 4 5 7 8 10 11 12 13 ...
##  $ Gender                  : chr [1:1470] "Female" "Male" "Male" "Female" ...
##  $ HourlyRate              : num [1:1470] 94 61 92 56 40 79 81 67 44 94 ...
##  $ JobInvolvement          : num [1:1470] 3 2 2 3 3 3 4 3 2 3 ...
##  $ JobLevel                : num [1:1470] 2 2 1 1 1 1 1 1 3 2 ...
##  $ JobRole                 : chr [1:1470] "Sales Executive" "Research Scientist" "Laboratory Technician" "Research Scientist" ...
##  $ JobSatisfaction         : num [1:1470] 4 2 3 3 2 4 1 3 3 3 ...
##  $ MaritalStatus           : chr [1:1470] "Single" "Married" "Single" "Married" ...
##  $ MonthlyIncome           : num [1:1470] 5993 5130 2090 2909 3468 ...
##  $ MonthlyRate             : num [1:1470] 19479 24907 2396 23159 16632 ...
##  $ NumCompaniesWorked      : num [1:1470] 8 1 6 1 9 0 4 1 0 6 ...
##  $ Over18                  : chr [1:1470] "Yes" "Yes" "Yes" "Yes" ...
##  $ OverTime                : chr [1:1470] "Yes" "No" "Yes" "Yes" ...
##  $ PercentSalaryHike       : num [1:1470] 11 23 15 11 12 13 20 22 21 13 ...
##  $ PerformanceRating       : num [1:1470] 3 4 3 3 3 3 4 4 4 3 ...
##  $ RelationshipSatisfaction: num [1:1470] 1 4 2 3 4 3 1 2 2 2 ...
##  $ StandardHours           : num [1:1470] 80 80 80 80 80 80 80 80 80 80 ...
##  $ StockOptionLevel        : num [1:1470] 0 1 0 0 1 0 3 1 0 2 ...
##  $ TotalWorkingYears       : num [1:1470] 8 10 7 8 6 8 12 1 10 17 ...
##  $ TrainingTimesLastYear   : num [1:1470] 0 3 3 3 3 2 3 2 2 3 ...
##  $ WorkLifeBalance         : num [1:1470] 1 3 3 3 3 2 2 3 3 2 ...
##  $ YearsAtCompany          : num [1:1470] 6 10 0 8 2 7 1 1 9 7 ...
##  $ YearsInCurrentRole      : num [1:1470] 4 7 0 7 2 7 0 0 7 7 ...
##  $ YearsSinceLastPromotion : num [1:1470] 0 1 0 3 2 3 0 0 1 7 ...
##  $ YearsWithCurrManager    : num [1:1470] 5 7 0 0 2 6 0 0 8 7 ...

1.3. Estimaciones multivariadas

El vector de medias y la matriz de varianzas-covarianzas conforman un conjunto de herramientas fundamentales para describir el comportamiento posicional, dispersivo y correlacional de las variables aleatorias en un conjunto de datos. Estas medidas son esenciales en el análisis multivariado, porque permiten capturar tanto la tendencia central como las interdependencias entre las variables.

El vector de medias refleja el valor esperado o punto medio de cada variable, sintetizando la información de todos los registros disponibles en el conjunto de datos. Por su parte, la matriz de varianzas-covarianzas describe la variabilidad y las relaciones entre las variables. En su diagonal principal, estima las dispersiones individuales de cada variable respecto a su media, mientras que los elementos por encima o por debajo de esta diagonal representan las covarianzas entre pares de variables, mostrando las relaciones lineales existentes entre ellas.

Vector de Promedios y Boxplots

apply(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)], 2, mean)
##              Age        DailyRate DistanceFromHome   EmployeeNumber 
##        36.923810       802.485714         9.192517      1024.865306 
##    MonthlyIncome 
##      6502.931293
desercion_empleados_IBM_ETL_Reducido = desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)]
nombres_boxplots <- c("Age", "DailyRate","DistanceFromHome", "EmployeeNumber", "MonthlyIncome")
par(mfrow = c(1, ncol(desercion_empleados_IBM_ETL_Reducido)))
invisible(lapply(1:ncol(desercion_empleados_IBM_ETL_Reducido), function(i) {
  boxplot(desercion_empleados_IBM_ETL_Reducido[, i],
          main = nombres_boxplots[i])}))

apply(desercion_empleados_IBM_ETL[,-c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], 2, mean)
##        MonthlyRate NumCompaniesWorked  PercentSalaryHike  TotalWorkingYears 
##       14313.103401           2.693197          15.209524          11.279592 
##     YearsAtCompany 
##           7.008163
desercion_empleados_IBM_ETL_Reducido = desercion_empleados_IBM_ETL[,-c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]
nombres_boxplots <- c("MonthlyRate", "NumCompaniesWorked", "PercentSalaryHike", "TotalWorkingYears", "YearsAtCompany")
par(mfrow = c(1, ncol(desercion_empleados_IBM_ETL_Reducido)))
invisible(lapply(1:ncol(desercion_empleados_IBM_ETL_Reducido), function(i) {
  boxplot(desercion_empleados_IBM_ETL_Reducido[, i],
          main = nombres_boxplots[i])}))

Matriz de Varianzas-Covarianzas

round(cov(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]),2)
##                         Age DailyRate DistanceFromHome EmployeeNumber
## Age                   83.46     39.30            -0.12         -55.80
## DailyRate             39.30 162819.59           -16.31      -12386.71
## DistanceFromHome      -0.12    -16.31            65.72         160.65
## EmployeeNumber       -55.80 -12386.71           160.65      362433.30
## MonthlyIncome      21412.20  14641.13          -649.39      -42028.53
## MonthlyRate         1823.99 -92428.50          1585.26       54198.68
## NumCompaniesWorked     6.84     38.46            -0.59          -1.88
## PercentSalaryHike      0.12     33.53             1.19         -28.52
## TotalWorkingYears     48.36     45.57             0.29         -67.29
## YearsAtCompany        17.42    -84.19             0.47         -41.46
##                    MonthlyIncome MonthlyRate NumCompaniesWorked
## Age                     21412.20     1823.99               6.84
## DailyRate               14641.13   -92428.50              38.46
## DistanceFromHome         -649.39     1585.26              -0.59
## EmployeeNumber         -42028.53    54198.68              -1.88
## MonthlyIncome        22164857.07  1166612.59            1758.38
## MonthlyRate           1166612.59 50662878.17             311.53
## NumCompaniesWorked       1758.38      311.53               6.24
## PercentSalaryHike        -469.86     -167.49              -0.09
## TotalWorkingYears       28312.30     1464.44               4.62
## YearsAtCompany          14833.73    -1031.54              -1.81
##                    PercentSalaryHike TotalWorkingYears YearsAtCompany
## Age                             0.12             48.36          17.42
## DailyRate                      33.53             45.57         -84.19
## DistanceFromHome                1.19              0.29           0.47
## EmployeeNumber                -28.52            -67.29         -41.46
## MonthlyIncome                -469.86          28312.30       14833.73
## MonthlyRate                  -167.49           1464.44       -1031.54
## NumCompaniesWorked             -0.09              4.62          -1.81
## PercentSalaryHike              13.40             -0.59          -0.81
## TotalWorkingYears              -0.59             60.54          29.94
## YearsAtCompany                 -0.81             29.94          37.53

Matriz de Correlaciones

round(cor(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]),3)
##                       Age DailyRate DistanceFromHome EmployeeNumber
## Age                 1.000     0.011           -0.002         -0.010
## DailyRate           0.011     1.000           -0.005         -0.051
## DistanceFromHome   -0.002    -0.005            1.000          0.033
## EmployeeNumber     -0.010    -0.051            0.033          1.000
## MonthlyIncome       0.498     0.008           -0.017         -0.015
## MonthlyRate         0.028    -0.032            0.027          0.013
## NumCompaniesWorked  0.300     0.038           -0.029         -0.001
## PercentSalaryHike   0.004     0.023            0.040         -0.013
## TotalWorkingYears   0.680     0.015            0.005         -0.014
## YearsAtCompany      0.311    -0.034            0.010         -0.011
##                    MonthlyIncome MonthlyRate NumCompaniesWorked
## Age                        0.498       0.028              0.300
## DailyRate                  0.008      -0.032              0.038
## DistanceFromHome          -0.017       0.027             -0.029
## EmployeeNumber            -0.015       0.013             -0.001
## MonthlyIncome              1.000       0.035              0.150
## MonthlyRate                0.035       1.000              0.018
## NumCompaniesWorked         0.150       0.018              1.000
## PercentSalaryHike         -0.027      -0.006             -0.010
## TotalWorkingYears          0.773       0.026              0.238
## YearsAtCompany             0.514      -0.024             -0.118
##                    PercentSalaryHike TotalWorkingYears YearsAtCompany
## Age                            0.004             0.680          0.311
## DailyRate                      0.023             0.015         -0.034
## DistanceFromHome               0.040             0.005          0.010
## EmployeeNumber                -0.013            -0.014         -0.011
## MonthlyIncome                 -0.027             0.773          0.514
## MonthlyRate                   -0.006             0.026         -0.024
## NumCompaniesWorked            -0.010             0.238         -0.118
## PercentSalaryHike              1.000            -0.021         -0.036
## TotalWorkingYears             -0.021             1.000          0.628
## YearsAtCompany                -0.036             0.628          1.000

Con base en los resultados obtenidos, es posible interpretar de manera conjunta la estructura interna del conjunto de datos. El vector de medias ofrece una referencia clara del nivel promedio de cada variable, mientras que la matriz de varianzas-covarianzas evidencia cuáles variables presentan mayor dispersión y cuáles tienden a variar en conjunto. Los boxplots permiten confirmar visualmente estas variaciones e identificar la presencia de asimetrías o valores atípicos que pueden influir en el análisis. Por último, la matriz de correlaciones revela la intensidad de las relaciones entre las variables, destacando aquellas con asociaciones fuertes que podrían tener un impacto significativo en estudios posteriores.

1.4. Gráficas multivariadas

: En el análisis multivariado, las representaciones gráficas desempeñan un papel fundamental para comprender simultáneamente la estructura y el comportamiento de varias variables. Estas visualizaciones permiten identificar patrones, relaciones y agrupamientos que no son evidentes mediante tablas numéricas. Entre las herramientas más utilizadas se encuentran los diagramas conjuntos de dispersión, las distribuciones multivariadas, los gráficos de correlación, los diagramas de estrellas y las caras de Chernoff.

Diagrama Conjunto de Dispersión, Distribución y Correlaciones [SA]

ggpairs(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)])

Diagrama Conjunto de Dispersión, Distribución y Correlaciones [CA:EF]

desercion_empleados_IBM_ETL$Gender <- factor(desercion_empleados_IBM_ETL$Gender)
levels= c (0,1)
labels= c ( "Female" , "Male")
ggpairs(desercion_empleados_IBM_ETL, column = c(1, 4, 6, 9), aes(color = Gender, alpha = 0.5), upper = list(continuous = wrap("cor", size = 2.5)))

Diagrama de estrellas

set.seed(120522)
desercion_empleados_IBM_ETL_Muestreado = desercion_empleados_IBM_ETL[sample(1:nrow(desercion_empleados_IBM_ETL),23),-c(2, 3, 5, 7, 8, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]
stars(desercion_empleados_IBM_ETL_Muestreado, len = 1, cex = 0.4, key.loc = c(10, 2), draw.segments = TRUE)

Caras de chernoff

set.seed(120522)
desercion_empleados_IBM_ETL_Muestreado = desercion_empleados_IBM_ETL [sample(1:nrow(desercion_empleados_IBM_ETL),23),-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]
faces(desercion_empleados_IBM_ETL_Muestreado)

## effect of variables:
##  modified item       Var                 
##  "height of face   " "Age"               
##  "width of face    " "DailyRate"         
##  "structure of face" "DistanceFromHome"  
##  "height of mouth  " "EmployeeNumber"    
##  "width of mouth   " "MonthlyIncome"     
##  "smiling          " "MonthlyRate"       
##  "height of eyes   " "NumCompaniesWorked"
##  "width of eyes    " "PercentSalaryHike" 
##  "height of hair   " "TotalWorkingYears" 
##  "width of hair   "  "YearsAtCompany"    
##  "style of hair   "  "Age"               
##  "height of nose  "  "DailyRate"         
##  "width of nose   "  "DistanceFromHome"  
##  "width of ear    "  "EmployeeNumber"    
##  "height of ear   "  "MonthlyIncome"

A partir de las gráficas multivariadas generadas, se logra obtener una comprensión más completa de la estructura interna del conjunto de datos. El diagrama conjunto de dispersión permitió identificar relaciones claras entre ciertas variables, así como posibles concentraciones o patrones de agrupamiento. Las gráficas de distribución ayudaron a caracterizar el comportamiento individual de cada variable, mostrando diferencias en su dispersión y posibles desviaciones respecto a una distribución simétrica. Por otro lado, el análisis mediante correlaciones visuales facilitó la detección de asociaciones fuertes que podrían ser relevantes para estudios posteriores. Los diagramas de estrellas y las caras de Chernoff ofrecieron una perspectiva complementaria al permitir comparar observaciones completas de forma simultánea, resaltando similitudes y diferencias generales entre los perfiles analizados.

1.5. Normalidad multivariada

PNM Mardia

mardia(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)])
## $mv.test
##           Test Statistic p-value Result
## 1     Skewness 3734.3782       0     NO
## 2     Kurtosis    9.9032       0     NO
## 3 MV Normality      <NA>    <NA>     NO
## 
## $uv.shapiro
##                    W      p-value UV.Normality
## Age                0.9774 0       No          
## DailyRate          0.9544 0       No          
## DistanceFromHome   0.8616 0       No          
## EmployeeNumber     0.9525 0       No          
## MonthlyIncome      0.8279 0       No          
## MonthlyRate        0.9545 0       No          
## NumCompaniesWorked 0.8488 0       No          
## PercentSalaryHike  0.9006 0       No          
## TotalWorkingYears  0.9074 0       No          
## YearsAtCompany     0.839  0       No

PNM Henze-Zirkler

mhz(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)])
## $mv.test
## Statistic   p-value    Result 
##    2.0712         0        NO 
## 
## $uv.shapiro
##                    W      p-value UV.Normality
## Age                0.9774 0       No          
## DailyRate          0.9544 0       No          
## DistanceFromHome   0.8616 0       No          
## EmployeeNumber     0.9525 0       No          
## MonthlyIncome      0.8279 0       No          
## MonthlyRate        0.9545 0       No          
## NumCompaniesWorked 0.8488 0       No          
## PercentSalaryHike  0.9006 0       No          
## TotalWorkingYears  0.9074 0       No          
## YearsAtCompany     0.839  0       No

PNM Rotational Robust Shapiro-Wilk

faTest((desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]), 10)
## $mv.test
## Statistic   p-value    Result 
##    0.1786         0        NO 
## 
## $uv.shapiro
##                    W      p-value UV.Normality
## Age                0.9774 0       No          
## DailyRate          0.9544 0       No          
## DistanceFromHome   0.8616 0       No          
## EmployeeNumber     0.9525 0       No          
## MonthlyIncome      0.8279 0       No          
## MonthlyRate        0.9545 0       No          
## NumCompaniesWorked 0.8488 0       No          
## PercentSalaryHike  0.9006 0       No          
## TotalWorkingYears  0.9074 0       No          
## YearsAtCompany     0.839  0       No

PNM Bowman and Shenton

msk((desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]), 10)
## $mv.test
## Statistic   p-value    Result 
## 3832.4519         0        NO 
## 
## $uv.shapiro
##                    W      p-value UV.Normality
## Age                0.9774 0       No          
## DailyRate          0.9544 0       No          
## DistanceFromHome   0.8616 0       No          
## EmployeeNumber     0.9525 0       No          
## MonthlyIncome      0.8279 0       No          
## MonthlyRate        0.9545 0       No          
## NumCompaniesWorked 0.8488 0       No          
## PercentSalaryHike  0.9006 0       No          
## TotalWorkingYears  0.9074 0       No          
## YearsAtCompany     0.839  0       No

Fase 2 [Componentes Principales]

En esta segunda fase del estudio se presentan los cálculos, visualizaciones e interpretaciones correspondientes al Análisis de Componentes Principales (ACP), aplicados a las variables cuantitativas del conjunto de datos analizado en la fase 1 (#sec1).

El propósito de esta etapa es identificar las combinaciones lineales que mejor resumen la variabilidad de los datos, examinando aspectos como la selección de componentes relevantes, la calidad de representación, las contribuciones de las variables originales y la interpretación de los componentes resultantes dentro del contexto del problema estudiado.

2.1. Objetivos

El Análisis de Componentes Principales (ACP) tiene como objetivo transformar un conjunto de variables originales correlacionadas en un nuevo conjunto de variables no correlacionadas denominadas componentes principales, que retienen la mayor parte de la información original. A través de este proceso, se busca reducir la dimensionalidad del espacio de los datos, eliminar redundancias y facilitar la interpretación de las estructuras subyacentes en el conjunto de observaciones.

Para una comprensión más profunda del procedimiento, los detalles del conjunto de datos se encuentran en la Sección 1.2 (#sec1.2), mientras que los fundamentos teóricos del análisis se desarrollan en la Fase 1. La revisión de dichas secciones permitirá una apreciación integral del enfoque metodológico implementado.

2.2. Selección de Componentes

En el Análisis de Componentes Principales (ACP), la selección de componentes permite reducir la dimensionalidad del conjunto de datos conservando la mayor parte de la variabilidad original. Para ello se utilizan herramientas como la matriz del ACP, la matriz de correlaciones y los valores y vectores propios. La matriz de correlaciones estandariza las variables y muestra sus relaciones iniciales, mientras que los valores propios indican la cantidad de varianza explicada por cada componente. Por su parte, los vectores propios determinan las combinaciones lineales que generan las nuevas componentes y describen el peso o contribución de cada variable en ellas. Este proceso permite identificar cuáles componentes son relevantes y cuántas deben retenerse para representar adecuadamente la estructura de los datos.

Matriz ACP

get_eigenvalue(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 6, scale.unit = TRUE, graph = F))
##        eigenvalue variance.percent cumulative.variance.percent
## Dim.1   2.7818978        27.818978                    27.81898
## Dim.2   1.1697362        11.697362                    39.51634
## Dim.3   1.0768477        10.768477                    50.28482
## Dim.4   1.0452657        10.452657                    60.73747
## Dim.5   0.9845549         9.845549                    70.58302
## Dim.6   0.9535769         9.535769                    80.11879
## Dim.7   0.9182050         9.182050                    89.30084
## Dim.8   0.5078936         5.078936                    94.37978
## Dim.9   0.4123738         4.123738                    98.50352
## Dim.10  0.1496485         1.496485                   100.00000

Matriz de Correlaciones

round(cor(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]),2)
##                      Age DailyRate DistanceFromHome EmployeeNumber
## Age                 1.00      0.01             0.00          -0.01
## DailyRate           0.01      1.00             0.00          -0.05
## DistanceFromHome    0.00      0.00             1.00           0.03
## EmployeeNumber     -0.01     -0.05             0.03           1.00
## MonthlyIncome       0.50      0.01            -0.02          -0.01
## MonthlyRate         0.03     -0.03             0.03           0.01
## NumCompaniesWorked  0.30      0.04            -0.03           0.00
## PercentSalaryHike   0.00      0.02             0.04          -0.01
## TotalWorkingYears   0.68      0.01             0.00          -0.01
## YearsAtCompany      0.31     -0.03             0.01          -0.01
##                    MonthlyIncome MonthlyRate NumCompaniesWorked
## Age                         0.50        0.03               0.30
## DailyRate                   0.01       -0.03               0.04
## DistanceFromHome           -0.02        0.03              -0.03
## EmployeeNumber             -0.01        0.01               0.00
## MonthlyIncome               1.00        0.03               0.15
## MonthlyRate                 0.03        1.00               0.02
## NumCompaniesWorked          0.15        0.02               1.00
## PercentSalaryHike          -0.03       -0.01              -0.01
## TotalWorkingYears           0.77        0.03               0.24
## YearsAtCompany              0.51       -0.02              -0.12
##                    PercentSalaryHike TotalWorkingYears YearsAtCompany
## Age                             0.00              0.68           0.31
## DailyRate                       0.02              0.01          -0.03
## DistanceFromHome                0.04              0.00           0.01
## EmployeeNumber                 -0.01             -0.01          -0.01
## MonthlyIncome                  -0.03              0.77           0.51
## MonthlyRate                    -0.01              0.03          -0.02
## NumCompaniesWorked             -0.01              0.24          -0.12
## PercentSalaryHike               1.00             -0.02          -0.04
## TotalWorkingYears              -0.02              1.00           0.63
## YearsAtCompany                 -0.04              0.63           1.00

Valores y Vectores Propios

princomp(desercion_empleados_IBM_ETL_Muestreado[,], cor = TRUE)$sdev^2
##     Comp.1     Comp.2     Comp.3     Comp.4     Comp.5     Comp.6     Comp.7 
## 3.51554311 1.68802405 1.28572770 1.01528731 0.86272019 0.72616546 0.45260470 
##     Comp.8     Comp.9    Comp.10 
## 0.28389834 0.14027025 0.02975891
princomp(desercion_empleados_IBM_ETL_Muestreado[,], cor = TRUE)$loadings[ ,1:5]
##                         Comp.1      Comp.2      Comp.3      Comp.4
## Age                 0.39045775  0.30934515  0.11528292  0.20046660
## DailyRate          -0.21997801  0.54874398  0.29178636  0.05820373
## DistanceFromHome   -0.13195668 -0.46971520  0.32923515 -0.01406989
## EmployeeNumber     -0.22141815  0.02528925 -0.33467654  0.34211345
## MonthlyIncome       0.49643148 -0.09959794  0.12573980 -0.01697499
## MonthlyRate        -0.16888423  0.13986193  0.71050204 -0.28867045
## NumCompaniesWorked  0.20197397  0.55846567 -0.11491038 -0.04680741
## PercentSalaryHike  -0.07628139 -0.05313237  0.33055355  0.85931225
## TotalWorkingYears   0.50054073 -0.05000336  0.03515381  0.11633385
## YearsAtCompany      0.40074232 -0.18768407  0.19192946 -0.03775011
##                           Comp.5
## Age                 0.0007722585
## DailyRate          -0.2952365609
## DistanceFromHome   -0.1864833882
## EmployeeNumber     -0.7845845397
## MonthlyIncome      -0.2714636239
## MonthlyRate        -0.1501968586
## NumCompaniesWorked  0.0836676009
## PercentSalaryHike   0.2761921502
## TotalWorkingYears  -0.0776418706
## YearsAtCompany     -0.2773510337
fviz_pca_var(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], scale.unit = T, graph = F),col.var="#3B83BD", repel = T, col.circle = "#CDCDCD", ggtheme = theme_bw())
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## ℹ The deprecated feature was likely used in the ggpubr package.
##   Please report the issue at <https://github.com/kassambara/ggpubr/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## ℹ The deprecated feature was likely used in the factoextra package.
##   Please report the issue at <https://github.com/kassambara/factoextra/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

2.3. Calidad de Representación

En el análisis de componentes principales, la calidad de representación permite evaluar qué tan bien cada variable y cada individuo queda proyectado en los nuevos ejes principales. El círculo de correlaciones muestra cómo se relacionan las variables originales con los componentes, indicando cuáles están mejor representadas en el plano factorial. La matriz de representación y los índices de calidad de representación (cos²) cuantifican qué porcentaje de la información de cada variable o individuo es capturado por los componentes seleccionados. Finalmente, las coordenadas individuales permiten ubicar cada observación en el espacio reducido, facilitando la identificación de patrones, similitudes o agrupamientos.

Circulo de correlaciones

fviz_pca_var(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], scale.unit = T, graph = F),col.var="#3B83BD", repel = T, col.circle = "#CDCDCD", ggtheme = theme_bw())

Matriz de Representación

(get_pca_var(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 5, scale.unit = TRUE, graph = F)))$cos2
##                           Dim.1        Dim.2        Dim.3        Dim.4
## Age                5.918913e-01 0.0674301364 6.238305e-03 5.999882e-04
## DailyRate          6.892638e-05 0.1110007453 2.408200e-01 8.770044e-02
## DistanceFromHome   6.528062e-05 0.0263907467 1.318982e-01 4.053947e-01
## EmployeeNumber     5.544640e-04 0.0125872183 3.474826e-01 7.203470e-03
## MonthlyIncome      7.257092e-01 0.0066595737 5.320516e-04 1.951714e-06
## MonthlyRate        1.299168e-03 0.0060241971 2.910606e-01 1.080539e-03
## NumCompaniesWorked 7.943876e-02 0.6754444783 3.838852e-02 7.273199e-03
## PercentSalaryHike  1.453985e-03 0.0081135290 2.468711e-03 5.351833e-01
## TotalWorkingYears  8.973925e-01 0.0002892877 1.438805e-05 4.969409e-04
## YearsAtCompany     4.840242e-01 0.2557962902 1.794434e-02 3.312545e-04
##                           Dim.5
## Age                1.930170e-03
## DailyRate          7.566337e-05
## DistanceFromHome   2.144007e-03
## EmployeeNumber     3.880558e-01
## MonthlyIncome      5.865329e-04
## MonthlyRate        5.696113e-01
## NumCompaniesWorked 1.600633e-02
## PercentSalaryHike  5.739645e-03
## TotalWorkingYears  8.434921e-05
## YearsAtCompany     3.210093e-04

Calidad de Representación

fviz_pca_var(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 5, scale.unit = TRUE, graph = F), col.var="cos2", gradient.cols=c("#00AFBB","#E7B800","#FC4E07"), repel = TRUE)

El círculo de correlaciones muestra que las variables YearsAtCompany, MonthlyIncome, TotalWorkingYears y Age están fuertemente asociadas con el primer componente (Dim1), indicando que este eje captura un patrón relacionado con la experiencia laboral y el crecimiento profesional dentro de la empresa. Estas variables se proyectan cerca de la circunferencia, lo que indica una buena representación y una alta correlación con este componente. Por otro lado, NumCompaniesWorked está más asociada al segundo componente (Dim2), reflejando un comportamiento diferente al de las variables de estabilidad laboral. En contraste, variables como EmployeeNumber, DailyRate, PercentSalaryHike, DistanceFromHome y MonthlyRate aparecen cerca del centro del círculo, lo que indica que no están bien explicadas por los dos primeros componentes y tienen menor aporte a la variabilidad capturada en el plano factorial.

Coordenadas Individuales

head((PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 5, scale.unit = TRUE, graph = F))$ind$coord, n = 23L)
##          Dim.1      Dim.2      Dim.3      Dim.4       Dim.5
## 1   0.27612321  2.3271579 -0.7783981 -1.2517336 -1.45637770
## 2   0.45845914 -0.3187750  0.1854987  1.3387796 -2.08630331
## 3  -1.04069354  2.2427806 -2.3898201 -0.2383880  0.38325206
## 4  -0.78665194  0.1042774 -1.3828867 -0.6541659 -2.21388201
## 5  -1.07777226  2.1975708 -0.2954737 -1.4465856 -1.12456640
## 6  -1.00673417 -0.4984299 -1.8846099 -0.6413899 -1.02954818
## 7   0.42172473  2.2499691 -1.7900208  0.9557929 -0.30592167
## 8  -2.06120392  0.3125982 -1.1653780  2.9935039 -0.80882753
## 9   0.19771002 -1.4423586 -0.4020514  1.9812215 -0.43364100
## 10  0.49678114  1.1874115 -0.3280470  1.3461509 -1.05258655
## 11 -1.20404659 -0.6161622 -0.6362351  0.3103685 -1.41887960
## 12 -0.76363169 -1.6594164 -0.3182923 -0.4438316 -1.09811357
## 13 -1.39550961 -0.6367666 -0.1470738  1.7082763 -1.11086561
## 14 -1.65865074 -0.1806836 -1.6152379  0.4801124 -0.60292697
## 15 -1.36114700  0.1028904  0.6131661  0.4089077 -0.75813375
## 16  0.01041904 -0.7402495 -1.6449348  0.6651293 -0.76839878
## 17 -1.11734626 -0.9846158 -0.6895683 -1.0814285 -1.37449793
## 18 -2.39941072 -0.2001905 -1.6142120  0.4000779 -0.43381887
## 19  4.45035587 -0.6251771 -1.5407962  0.2443245 -1.91827120
## 20 -0.70738693  0.8675555 -1.1431211 -1.6929386  0.02882653
## 21 -1.78402858 -0.8350144 -1.4270230  0.7324009 -0.51196542
## 22 -0.36369066  2.0881616 -1.6991578  1.7569246  0.14867933
## 23  0.79905708 -1.4749011 -0.3809076 -0.9980602 -2.08769964

2.4. Contribuciones y Biplots

En el análisis de componentes principales, las contribuciones permiten identificar qué variables influyen con mayor peso en la formación de cada componente. La matriz de contribuciones resume el porcentaje de aportación de cada variable a cada dimensión, mientras que los gráficos de contribución muestran visualmente cuáles variables superan el umbral esperado (línea roja) y, por lo tanto, son relevantes en la interpretación de cada componente. Los biplots complementan este análisis al representar simultáneamente las variables y a los individuos en el espacio de los componentes, permitiendo visualizar cómo se relacionan ambos elementos con las nuevas dimensiones generadas. En conjunto, estas herramientas ayudan a comprender la estructura interna de los datos y el papel específico que desempeña cada variable en la reducción dimensional.

Matriz de Contribuciones

(get_pca_var(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 5, scale.unit = TRUE, graph = F)))$contrib
##                           Dim.1       Dim.2        Dim.3        Dim.4
## Age                21.276529186  5.76455924  0.579311736 5.740055e-02
## DailyRate           0.002477675  9.48938273 22.363421654 8.390253e+00
## DistanceFromHome    0.002346622  2.25612806 12.248546727 3.878389e+01
## EmployeeNumber      0.019931143  1.07607324 32.268499904 6.891520e-01
## MonthlyIncome      26.086837755  0.56932270  0.049408245 1.867194e-04
## MonthlyRate         0.046700775  0.51500476 27.028947990 1.033746e-01
## NumCompaniesWorked  2.855560168 57.74331655  3.564897574 6.958230e-01
## PercentSalaryHike   0.052265921  0.69362041  0.229253518 5.120069e+01
## TotalWorkingYears  32.258286233  0.02473102  0.001336127 4.754206e-02
## YearsAtCompany     17.399064523 21.86786129  1.666376526 3.169093e-02
##                           Dim.5
## Age                 0.196044930
## DailyRate           0.007685034
## DistanceFromHome    0.217764071
## EmployeeNumber     39.414342326
## MonthlyIncome       0.059573406
## MonthlyRate        57.854707090
## NumCompaniesWorked  1.625742862
## PercentSalaryHike   0.582968529
## TotalWorkingYears   0.008567243
## YearsAtCompany      0.032604511

Contribuciones a D1

fviz_contrib(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 6, scale.unit = TRUE, graph = F), choice = "var", axes = 1, top = 10)

Contribuciones a D2

fviz_contrib(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 6, scale.unit = TRUE, graph = F), choice = "var", axes = 2, top = 10)

Contribuciones a D3

fviz_contrib(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 6, scale.unit = TRUE, graph = F), choice = "var", axes = 3, top = 10)

Contribuciones a D4

fviz_contrib(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 6, scale.unit = TRUE, graph = F), choice = "var", axes = 4, top = 10)

Contribuciones a D5

fviz_contrib(PCA(desercion_empleados_IBM_ETL[,-c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 6, scale.unit = TRUE, graph = F), choice = "var", axes = 5, top = 10)

Biplot de Variables y Registros [filtro:JobInvolvement]

Biplot de Variables y Registros [filtro:Education]

desercion_empleados_IBM_ETL <- read_excel("C:/Users/User/OneDrive/Escritorio/Gestion de Datos/desercion_empleados_IBM_ETL.xlsx")

set.seed(780729)
desercion_empleados_IBM_ETL_Muestreado = desercion_empleados_IBM_ETL[sample(1:nrow(desercion_empleados_IBM_ETL),200),-c(2, 3, 5, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]
desercion_empleados_IBM_ETL_Muestreado$Education <- factor(desercion_empleados_IBM_ETL_Muestreado$Education, levels = c(1, 2, 3, 4, 5), labels = c("poco", "masomenos", "aceptable", "mucho", "demasiado"))
desercion_empleados_IBM_ETL_Muestreado$Education <- as.factor(desercion_empleados_IBM_ETL_Muestreado$Education)
fviz_pca_biplot(PCA(desercion_empleados_IBM_ETL[, -c(2, 3, 5, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)], ncp = 5, scale.unit = TRUE, graph = F, quali.sup = "Education"), axes = c(1, 2), repel = TRUE, habillage = "Education")

Biplot de Variables y Registros [filtro:N.of Major Vessels]

desercion_empleados_IBM_ETL <- read_excel("C:/Users/User/OneDrive/Escritorio/Gestion de Datos/desercion_empleados_IBM_ETL.xlsx")

set.seed(780729)
desercion_empleados_IBM_ETL_Muestreado <- desercion_empleados_IBM_ETL[ sample(1:nrow(desercion_empleados_IBM_ETL), 150), -c(2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 24, 25, 26, 28, 29, 31, 32, 33)]

desercion_empleados_IBM_ETL$PerformanceRating <- factor(
desercion_empleados_IBM_ETL$PerformanceRating,
levels = c(3, 4),
labels = c("Insatisfecho", "PocoSatisfecho"))

pca_result <- PCA(
  desercion_empleados_IBM_ETL_Muestreado[, -which(names(desercion_empleados_IBM_ETL_Muestreado) == "PerformanceRating")], 
  ncp = 5, 
  scale.unit = TRUE, 
  graph = FALSE,
  quali.sup = which(names(desercion_empleados_IBM_ETL_Muestreado) == "PerformanceRating")
)

fviz_pca_biplot(PCA(desercion_empleados_IBM_ETL_Muestreado[,], ncp = 5, scale.unit = TRUE, graph = F, quali.sup = which(names(desercion_empleados_IBM_ETL_Muestreado) == "PerformanceRating")), axes = c(1, 2), repel = TRUE, habillage = "PerformanceRating")

Las contribuciones muestran que cada componente del PCA está determinado por grupos específicos de variables, lo que evidencia que la variabilidad del conjunto de datos se organiza en diferentes dimensiones. El primer componente está fuertemente influido por variables relacionadas con la experiencia laboral, mientras que los componentes posteriores reflejan información más operativa y de movilidad. Los biplots confirman estas relaciones al mostrar cómo las variables más influyentes orientan la posición de los individuos en los planos factoriales, permitiendo distinguir perfiles y patrones generales dentro de los datos. Estos resultados ofrecen una visión clara de qué variables son clave en cada dimensión y cómo estructuran la distribución de las observaciones.

Fase 3 [Correspondencias]

La tercera fase del estudio aborda el Análisis de Correspondencias, una técnica exploratoria destinada a representar gráficamente las relaciones entre categorías de variables cualitativas. A través de esta metodología, se busca identificar patrones de asociación y estructuras de similitud entre filas y columnas de tablas de contingencia, permitiendo una comprensión visual y estadística de las relaciones entre las modalidades observadas.

Esta fase constituye un puente entre los métodos aplicados a variables cuantitativas y aquellos orientados a la interpretación de datos categóricos.

3.1. Objetivos

En esta tercera fase, se presentan los cálculos, representaciones gráficas e interpretaciones derivadas del conjunto de datos previamente trabajado en las Fases 1 y 2. El objetivo es aplicar análisis de correspondencias simples y múltiples sobre las variables cualitativas, construyendo tablas de contingencia y tablas disyuntivas completas. Además, se evaluarán las calidades de representación, las contribuciones de las categorías y la interpretación de los ejes factoriales obtenidos, con el fin de comprender las relaciones entre las modalidades de las variables.

3.2. Correspondencias Simples

AC Parejas Totales

Contingencias
addmargins(table(desercion_empleados_IBM_ETL$Education, desercion_empleados_IBM_ETL$RelationshipSatisfaction))
##      
##          1    2    3    4  Sum
##   1     35   31   50   54  170
##   2     57   46   84   95  282
##   3    113  119  187  153  572
##   4     62   95  123  118  398
##   5      9   12   15   12   48
##   Sum  276  303  459  432 1470
addmargins(table(desercion_empleados_IBM_ETL$JobLevel, desercion_empleados_IBM_ETL$RelationshipSatisfaction))
##      
##          1    2    3    4  Sum
##   1     96  114  178  155  543
##   2    114  107  152  161  534
##   3     42   44   72   60  218
##   4     12   25   38   31  106
##   5     12   13   19   25   69
##   Sum  276  303  459  432 1470
addmargins(table(desercion_empleados_IBM_ETL$StockOptionLevel, desercion_empleados_IBM_ETL$WorkLifeBalance))
##      
##          1    2    3    4  Sum
##   0     37  134  392   68  631
##   1     37  147  352   60  596
##   2      6   42   92   18  158
##   3      0   21   57    7   85
##   Sum   80  344  893  153 1470
Probabilidades
addmargins(prop.table(table(desercion_empleados_IBM_ETL$Education, desercion_empleados_IBM_ETL$RelationshipSatisfaction))*100)
##      
##                 1           2           3           4         Sum
##   1     2.3809524   2.1088435   3.4013605   3.6734694  11.5646259
##   2     3.8775510   3.1292517   5.7142857   6.4625850  19.1836735
##   3     7.6870748   8.0952381  12.7210884  10.4081633  38.9115646
##   4     4.2176871   6.4625850   8.3673469   8.0272109  27.0748299
##   5     0.6122449   0.8163265   1.0204082   0.8163265   3.2653061
##   Sum  18.7755102  20.6122449  31.2244898  29.3877551 100.0000000
addmargins(prop.table(table(desercion_empleados_IBM_ETL$JobLevel, desercion_empleados_IBM_ETL$RelationshipSatisfaction))*100)
##      
##                 1           2           3           4         Sum
##   1     6.5306122   7.7551020  12.1088435  10.5442177  36.9387755
##   2     7.7551020   7.2789116  10.3401361  10.9523810  36.3265306
##   3     2.8571429   2.9931973   4.8979592   4.0816327  14.8299320
##   4     0.8163265   1.7006803   2.5850340   2.1088435   7.2108844
##   5     0.8163265   0.8843537   1.2925170   1.7006803   4.6938776
##   Sum  18.7755102  20.6122449  31.2244898  29.3877551 100.0000000
addmargins(prop.table(table(desercion_empleados_IBM_ETL$StockOptionLevel, desercion_empleados_IBM_ETL$WorkLifeBalance))*100)
##      
##                 1           2           3           4         Sum
##   0     2.5170068   9.1156463  26.6666667   4.6258503  42.9251701
##   1     2.5170068  10.0000000  23.9455782   4.0816327  40.5442177
##   2     0.4081633   2.8571429   6.2585034   1.2244898  10.7482993
##   3     0.0000000   1.4285714   3.8775510   0.4761905   5.7823129
##   Sum   5.4421769  23.4013605  60.7482993  10.4081633 100.0000000
Frecuencias [CPF y CPC]
round(addmargins(prop.table(table(desercion_empleados_IBM_ETL$Education, desercion_empleados_IBM_ETL$RelationshipSatisfaction), 1)*100, 2), 2)
##    
##          1      2      3      4    Sum
##   1  20.59  18.24  29.41  31.76 100.00
##   2  20.21  16.31  29.79  33.69 100.00
##   3  19.76  20.80  32.69  26.75 100.00
##   4  15.58  23.87  30.90  29.65 100.00
##   5  18.75  25.00  31.25  25.00 100.00
round(addmargins(prop.table(table(desercion_empleados_IBM_ETL$Education, desercion_empleados_IBM_ETL$RelationshipSatisfaction), 2)*100, 1), 2)
##      
##            1      2      3      4
##   1    12.68  10.23  10.89  12.50
##   2    20.65  15.18  18.30  21.99
##   3    40.94  39.27  40.74  35.42
##   4    22.46  31.35  26.80  27.31
##   5     3.26   3.96   3.27   2.78
##   Sum 100.00 100.00 100.00 100.00
round(addmargins(prop.table(table(desercion_empleados_IBM_ETL$JobLevel, desercion_empleados_IBM_ETL$RelationshipSatisfaction), 1)*100, 2), 2)
##    
##          1      2      3      4    Sum
##   1  17.68  20.99  32.78  28.55 100.00
##   2  21.35  20.04  28.46  30.15 100.00
##   3  19.27  20.18  33.03  27.52 100.00
##   4  11.32  23.58  35.85  29.25 100.00
##   5  17.39  18.84  27.54  36.23 100.00
round(addmargins(prop.table(table(desercion_empleados_IBM_ETL$JobLevel, desercion_empleados_IBM_ETL$RelationshipSatisfaction), 2)*100, 1), 2)
##      
##            1      2      3      4
##   1    34.78  37.62  38.78  35.88
##   2    41.30  35.31  33.12  37.27
##   3    15.22  14.52  15.69  13.89
##   4     4.35   8.25   8.28   7.18
##   5     4.35   4.29   4.14   5.79
##   Sum 100.00 100.00 100.00 100.00
round(addmargins(prop.table(table(desercion_empleados_IBM_ETL$StockOptionLevel, desercion_empleados_IBM_ETL$WorkLifeBalance), 1)*100, 2), 2)
##    
##          1      2      3      4    Sum
##   0   5.86  21.24  62.12  10.78 100.00
##   1   6.21  24.66  59.06  10.07 100.00
##   2   3.80  26.58  58.23  11.39 100.00
##   3   0.00  24.71  67.06   8.24 100.00
round(addmargins(prop.table(table(desercion_empleados_IBM_ETL$StockOptionLevel, desercion_empleados_IBM_ETL$WorkLifeBalance), 2)*100, 1), 2)
##      
##            1      2      3      4
##   0    46.25  38.95  43.90  44.44
##   1    46.25  42.73  39.42  39.22
##   2     7.50  12.21  10.30  11.76
##   3     0.00   6.10   6.38   4.58
##   Sum 100.00 100.00 100.00 100.00
Perfiles [CPF y CPC]
plotct(table(desercion_empleados_IBM_ETL$Education, desercion_empleados_IBM_ETL$RelationshipSatisfaction),"row")

plotct(table(desercion_empleados_IBM_ETL$Education, desercion_empleados_IBM_ETL$RelationshipSatisfaction),"col")

plotct(table(desercion_empleados_IBM_ETL$JobLevel, desercion_empleados_IBM_ETL$RelationshipSatisfaction),"row")

plotct(table(desercion_empleados_IBM_ETL$JobLevel, desercion_empleados_IBM_ETL$RelationshipSatisfaction),"col")

plotct(table(desercion_empleados_IBM_ETL$StockOptionLevel, desercion_empleados_IBM_ETL$WorkLifeBalance),"row")

plotct(table(desercion_empleados_IBM_ETL$StockOptionLevel, desercion_empleados_IBM_ETL$WorkLifeBalance),"col")

Pruebas de Hipótesis
chisq.test(table(desercion_empleados_IBM_ETL$Education, desercion_empleados_IBM_ETL$RelationshipSatisfaction))
## 
##  Pearson's Chi-squared test
## 
## data:  table(desercion_empleados_IBM_ETL$Education, desercion_empleados_IBM_ETL$RelationshipSatisfaction)
## X-squared = 13.125, df = 12, p-value = 0.36
chisq.test(table(desercion_empleados_IBM_ETL$JobLevel, desercion_empleados_IBM_ETL$RelationshipSatisfaction))
## 
##  Pearson's Chi-squared test
## 
## data:  table(desercion_empleados_IBM_ETL$JobLevel, desercion_empleados_IBM_ETL$RelationshipSatisfaction)
## X-squared = 10.742, df = 12, p-value = 0.5512
chisq.test(table(desercion_empleados_IBM_ETL$TotalWorkingYears, desercion_empleados_IBM_ETL$WorkLifeBalance))
## Warning in chisq.test(table(desercion_empleados_IBM_ETL$TotalWorkingYears, :
## Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  table(desercion_empleados_IBM_ETL$TotalWorkingYears, desercion_empleados_IBM_ETL$WorkLifeBalance)
## X-squared = 103.63, df = 117, p-value = 0.8067

AC Pareja Única

Contingencias y Residuales [T-CP]
chisq.test(table(desercion_empleados_IBM_ETL$RelationshipSatisfaction,desercion_empleados_IBM_ETL$StockOptionLevel))$observed
##    
##       0   1   2   3
##   1 111 114  35  16
##   2 120 134  34  15
##   3 193 191  41  34
##   4 207 157  48  20
chisq.test(table(desercion_empleados_IBM_ETL$RelationshipSatisfaction,desercion_empleados_IBM_ETL$StockOptionLevel))$expected 
##    
##            0       1        2        3
##   1 118.4735 111.902 29.66531 15.95918
##   2 130.0633 122.849 32.56735 17.52041
##   3 197.0265 186.098 49.33469 26.54082
##   4 185.4367 175.151 46.43265 24.97959
chisq.test(table(desercion_empleados_IBM_ETL$RelationshipSatisfaction,desercion_empleados_IBM_ETL$StockOptionLevel))$residuals
##    
##               0           1           2           3
##   1 -0.68661250  0.19832526  0.97945635  0.01021712
##   2 -0.88239207  1.00607147  0.25104400 -0.60214179
##   3 -0.28685911  0.35934046 -1.18662484  1.44788531
##   4  1.58349480 -1.37149652  0.23001353 -0.99632511
chisq.test(table(desercion_empleados_IBM_ETL$RelationshipSatisfaction,desercion_empleados_IBM_ETL$StockOptionLevel))$stdres
##    
##               0           1           2           3
##   1 -1.00843033  0.28538917  1.15035886  0.01167936
##   2 -1.31087875  1.46438417  0.29823927 -0.69623490
##   3 -0.45785654  0.56194286 -1.51456625  1.79866810
##   4  2.49433234 -2.11669191  0.28973778 -1.22150387
Contribuciones [T-CP]
chisq.test(table(desercion_empleados_IBM_ETL$RelationshipSatisfaction,desercion_empleados_IBM_ETL$StockOptionLevel))$residuals^2/chisq.test(table(desercion_empleados_IBM_ETL$RelationshipSatisfaction,desercion_empleados_IBM_ETL$StockOptionLevel))$statistic*100
##    
##                0            1            2            3
##   1  3.672628228  0.306414714  7.473494630  0.000813225
##   2  6.065641614  7.885172932  0.490968058  2.824561858
##   3  0.641048451  1.005925437 10.969338126 16.331342265
##   4 19.533804460 14.653554132  0.412154775  7.733137094
Correspondencia Simple Unidimensional [R-UR]
CA(table(desercion_empleados_IBM_ETL$RelationshipSatisfaction,desercion_empleados_IBM_ETL$StockOptionLevel), graph = FALSE)$eig
##         eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.0053437935              61.195651                          61.19565
## dim 2 0.0029135402              33.365060                          94.56071
## dim 3 0.0004749756               5.439289                         100.00000
CA(table(desercion_empleados_IBM_ETL$RelationshipSatisfaction,desercion_empleados_IBM_ETL$StockOptionLevel), graph = FALSE)$col
## $coord
##         Dim 1       Dim 2        Dim 3
## 0 -0.07115604  0.03169045 -0.004217638
## 1  0.06625604 -0.02294854 -0.014848700
## 2 -0.04299241 -0.10979225  0.042598975
## 3  0.14357255  0.12973912  0.056241379
## 
## $contrib
##       Dim 1     Dim 2     Dim 3
## 0 40.671101 14.796124  1.607605
## 1 33.306589  7.328547 18.820647
## 2  3.717695 44.469484 41.064522
## 3 22.304615 33.405846 38.507226
## 
## $cos2
##       Dim 1     Dim 2       Dim 3
## 0 0.8320410 0.1650358 0.002923209
## 1 0.8545607 0.1025184 0.042920907
## 2 0.1175991 0.7669443 0.115456597
## 3 0.5076061 0.4145013 0.077892554
## 
## $inertia
## [1] 0.002612106 0.002082749 0.001689349 0.002348105
CA(table(desercion_empleados_IBM_ETL$RelationshipSatisfaction,desercion_empleados_IBM_ETL$StockOptionLevel), graph = FALSE)$row
## $coord
##         Dim 1       Dim 2         Dim 3
## 1  0.02216965 -0.05808914  0.0382230539
## 2  0.04656636 -0.06475649 -0.0308707065
## 3  0.06081529  0.06630472  0.0008655914
## 4 -0.11144132  0.01208323 -0.0036876048
## 
## $contrib
##       Dim 1    Dim 2       Dim 3
## 1  1.726871 21.74506 57.75255957
## 2  8.364118 29.66682 41.35682154
## 3 21.610820 47.11544  0.04925496
## 4 68.298191  1.47269  0.84136393
## 
## $cos2
##       Dim 1      Dim 2        Dim 3
## 1 0.0922673 0.63346110 0.2742715997
## 2 0.2964424 0.57327426 0.1302833504
## 3 0.4568550 0.54305241 0.0000925505
## 4 0.9873117 0.01160721 0.0010810620
## 
## $inertia
## [1] 0.001000142 0.001507751 0.002527799 0.003696618

3.3. Correspondencias Múltiples

ACM

Biplot ACM

Calidad de Representación

Contribuciones

Biplot con Contribuciones

Fase 4 [Conglomerados]

En esta cuarta fase del estudio, se presentan los cálculos, visualizaciones e interpretaciones obtenidas a partir del conjunto de datos procesado en las fases 1, 2 y 3. El enfoque principal corresponde al Análisis de Conglomerados, tanto en su versión jerárquica, representada mediante dendrogramas, como en su modalidad no jerárquica, implementada mediante el algoritmo de K-medias. El objetivo general es determinar la existencia de agrupaciones naturales dentro de los datos, analizar su consistencia interna y describir las características de cada grupo identificado.

4.1. Objetivos

La cuarta fase del estudio se centra en el Análisis de Conglomerados, una técnica de clasificación cuyo propósito es agrupar individuos u observaciones en función de su similitud respecto a un conjunto de variables. Mediante el uso de algoritmos jerárquicos y no jerárquicos, se busca identificar estructuras naturales en los datos, permitiendo definir grupos homogéneos internamente y heterogéneos entre sí.

Esta etapa complementa las fases anteriores al facilitar la segmentación y caracterización de los individuos o unidades de análisis.

4.2. Agrupación Jerárquica

Campo Clasificador

desercion_empleados_IBM_ETL <- read_excel("C:/Users/User/OneDrive/Escritorio/Gestion de Datos/desercion_empleados_IBM_ETL.xlsx")
View(desercion_empleados_IBM_ETL)
head(as.data.frame(desercion_empleados_IBM_ETL))
##   Age Attrition    BusinessTravel DailyRate             Department
## 1  41       Yes     Travel_Rarely      1102                  Sales
## 2  49        No Travel_Frequently       279 Research & Development
## 3  37       Yes     Travel_Rarely      1373 Research & Development
## 4  33        No Travel_Frequently      1392 Research & Development
## 5  27        No     Travel_Rarely       591 Research & Development
## 6  32        No Travel_Frequently      1005 Research & Development
##   DistanceFromHome Education EducationField EmployeeNumber Gender HourlyRate
## 1                1         2  Life Sciences              1 Female         94
## 2                8         1  Life Sciences              2   Male         61
## 3                2         2          Other              4   Male         92
## 4                3         4  Life Sciences              5 Female         56
## 5                2         1        Medical              7   Male         40
## 6                2         2  Life Sciences              8   Male         79
##   JobInvolvement JobLevel               JobRole JobSatisfaction MaritalStatus
## 1              3        2       Sales Executive               4        Single
## 2              2        2    Research Scientist               2       Married
## 3              2        1 Laboratory Technician               3        Single
## 4              3        1    Research Scientist               3       Married
## 5              3        1 Laboratory Technician               2       Married
## 6              3        1 Laboratory Technician               4        Single
##   MonthlyIncome MonthlyRate NumCompaniesWorked Over18 OverTime
## 1          5993       19479                  8    Yes      Yes
## 2          5130       24907                  1    Yes       No
## 3          2090        2396                  6    Yes      Yes
## 4          2909       23159                  1    Yes      Yes
## 5          3468       16632                  9    Yes       No
## 6          3068       11864                  0    Yes       No
##   PercentSalaryHike PerformanceRating RelationshipSatisfaction StandardHours
## 1                11                 3                        1            80
## 2                23                 4                        4            80
## 3                15                 3                        2            80
## 4                11                 3                        3            80
## 5                12                 3                        4            80
## 6                13                 3                        3            80
##   StockOptionLevel TotalWorkingYears TrainingTimesLastYear WorkLifeBalance
## 1                0                 8                     0               1
## 2                1                10                     3               3
## 3                0                 7                     3               3
## 4                0                 8                     3               3
## 5                1                 6                     3               3
## 6                0                 8                     2               2
##   YearsAtCompany YearsInCurrentRole YearsSinceLastPromotion
## 1              6                  4                       0
## 2             10                  7                       1
## 3              0                  0                       0
## 4              8                  7                       3
## 5              2                  2                       2
## 6              7                  7                       3
##   YearsWithCurrManager
## 1                    5
## 2                    7
## 3                    0
## 4                    0
## 5                    2
## 6                    6

Disimilaridad

data_ = as.data.frame(desercion_empleados_IBM_ETL)[, -c(2, 3, 5, 8, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33)]
rownames(data_) = unclass(desercion_empleados_IBM_ETL$EmployeeNumber)
fviz_dist(get_dist(data_, stand = T, method = "euclidean"), gradient = list(low = "#00AFBB", mid = "white", high = "#FC4E07"))

Optimización de Mojena

Unión Simple
hc_single = hclust(get_dist(data_, stand = T, method = "euclidean"), method = "single")

mojena = function(hc){
  n_hd = length(hc$height)
  alp_g = 0 ; alpha = hc$height[n_hd:1]
  for(i in 1:(n_hd-1)){
    alp_g[i] = mean(alpha[(n_hd-i+1):1])+1.25*sd(alpha[(n_hd-i+1):1])
  }
  nog = sum(alp_g<= alpha[-n_hd]) + 1
  plot(alpha[-n_hd], pch=20, col=(alp_g>alpha[-n_hd])+1, main = paste("Optimal number of groups =",nog),
       ylab = expression(alpha[g]), xlab="Nodes")}
mojena(hc_single)

Unión Completa
hc_complete = hclust(get_dist(data_, stand = T, method = "euclidean"), method = "complete")

mojena = function(hc){
  n_hd = length(hc$height)
  alp_g = 0 ; alpha = hc$height[n_hd:1]
  for(i in 1:(n_hd-1)){
    alp_g[i] = mean(alpha[(n_hd-i+1):1])+1.25*sd(alpha[(n_hd-i+1):1])
  }
  nog = sum(alp_g<= alpha[-n_hd]) + 1
  plot(alpha[-n_hd], pch=20, col=(alp_g>alpha[-n_hd])+1, main = paste("Optimal number of groups =",nog),
       ylab = expression(alpha[g]), xlab="Nodes")}

mojena(hc_complete)

Unión Promedio
hc_average = hclust(get_dist(data_, stand = T, method = "euclidean"), method = "average")

mojena = function(hc){
  n_hd = length(hc$height)
  alp_g = 0 ; alpha = hc$height[n_hd:1]
  for(i in 1:(n_hd-1)){
    alp_g[i] = mean(alpha[(n_hd-i+1):1])+1.25*sd(alpha[(n_hd-i+1):1])
  }
  nog = sum(alp_g<= alpha[-n_hd]) + 1
  plot(alpha[-n_hd], pch=20, col=(alp_g>alpha[-n_hd])+1, main = paste("Optimal number of groups =",nog),
       ylab = expression(alpha[g]), xlab="Nodes")}

mojena(hc_average)

Dendogramas Optimizados

4.3. Agrupación No-Jerárquica

Según (Díaz Morales & Morales Rivera, 2012), los métodos de aglomeración no jerárquicos, también conocidos como métodos de partición, se basan en una partición inicial del conjunto de datos, generando subconjuntos o grupos. A cada uno de estos grupos se le calcula un centroide, y posteriormente, las observaciones se asignan al conglomerado cuyo centroide se encuentra más cercano. Este proceso se repite recursivamente, recalculando los centroides y ajustando las asignaciones hasta que las observaciones ya no puedan cambiar de grupo. A diferencia de los métodos jerárquicos, este enfoque permite que una observación cambie de grupo durante el proceso.

El análisis del conjunto de datos se cerrará con el método no jerárquico de K-medias, que divide un conjunto de \(n\) objetos en \(k\) grupos. Este método selecciona los centroides de los grupos de manera que minimicen la distancia euclidiana entre cada objeto y su centroide más cercano. Las observaciones se asignan al conglomerado cuyo centroide esté más próximo, con el objetivo de reorganizar los objetos en grupos que presenten la menor variabilidad interna posible.

K-Óptimo

Elbow
fviz_nbclust(data_, kmeans, method = "wss") + geom_vline(xintercept = 3, linetype = 2)

Silhouette
fviz_nbclust(data_, kmeans, method = "silhouette")

Gap Statistic
fviz_nbclust(data_, kmeans, method = "gap_stat")
## Warning: did not converge in 10 iterations

Majority Rule
suppressWarnings(NbClust(data_, diss = NULL, distance = "euclidean", min.nc = 2, max.nc = 10, method = "kmeans")$Best.nc)

## *** : The Hubert index is a graphical method of determining the number of clusters.
##                 In the plot of Hubert index, we seek a significant knee that corresponds to a 
##                 significant increase of the value of the measure i.e the significant peak in Hubert
##                 index second differences plot. 
## 

## *** : The D index is a graphical method of determining the number of clusters. 
##                 In the plot of D index, we seek a significant knee (the significant peak in Dindex
##                 second differences plot) that corresponds to a significant increase of the value of
##                 the measure. 
##  
## ******************************************************************* 
## * Among all indices:                                                
## * 3 proposed 2 as the best number of clusters 
## * 12 proposed 3 as the best number of clusters 
## * 1 proposed 4 as the best number of clusters 
## * 4 proposed 5 as the best number of clusters 
## * 1 proposed 6 as the best number of clusters 
## * 2 proposed 9 as the best number of clusters 
## 
##                    ***** Conclusion *****                            
##  
## * According to the majority rule, the best number of clusters is  3 
##  
##  
## *******************************************************************
##                     KL       CH Hartigan     CCC    Scott      Marriot
## Number_clusters 2.0000    5.000   5.0000  3.0000    3.000 3.000000e+00
## Value_Index     3.0351 1708.656 258.2942 44.9516 1309.618 7.977927e+67
##                       TrCovW     TraceW Friedman   Rubin Cindex     DB
## Number_clusters 3.000000e+00          3   6.0000  5.0000 4.0000 5.0000
## Value_Index     6.843775e+19 8334341159  18.0851 -2.0886 0.1944 0.7865
##                 Silhouette   Duda PseudoT2  Beale Ratkowsky        Ball
## Number_clusters     3.0000 3.0000   3.0000 2.0000    3.0000           3
## Value_Index         0.4878 0.8912 102.2692 1.2146    0.1771 14231915253
##                 PtBiserial Frey McClain   Dunn Hubert SDindex Dindex   SDbw
## Number_clusters     3.0000    1   2.000 9.0000      0   3e+00      0 9.0000
## Value_Index         0.6845   NA   0.515 0.0277      0   3e-04      0 0.3046

Resultados K-Means

K-Óptimo [El_Ma-Rul 3]
set.seed(121124)
print(kmeans(data_, 3, nstart = 25))
## K-means clustering with 3 clusters of sizes 645, 203, 622
## 
## Cluster means:
##        Age DailyRate DistanceFromHome Education EmployeeNumber MonthlyIncome
## 1 35.17984  804.6729         9.229457  2.944186      1034.8899      4761.464
## 2 46.28079  811.6946         8.738916  3.004926       979.4187     16110.394
## 3 35.67846  797.2122         9.302251  2.850482      1029.3023      5173.240
##   MonthlyRate NumCompaniesWorked PercentSalaryHike TotalWorkingYears
## 1    8096.366           2.590698          15.40000          9.120930
## 2   14022.360           3.394089          15.09852         23.645320
## 3   20854.609           2.570740          15.04823          9.482315
##   YearsAtCompany
## 1       6.071318
## 2      13.059113
## 3       6.004823
## 
## Clustering vector:
##    1    2    4    5    7    8   10   11   12   13   14   15   16   18   19   20 
##    3    3    1    3    3    1    1    1    1    3    3    1    3    1    1    1 
##   21   22   23   24   26   27   28   30   31   32   33   35   36   38   39   40 
##    3    1    2    1    1    1    3    3    3    2    1    3    1    2    1    3 
##   41   42   45   46   47   49   51   52   53   54   55   56   57   58   60   61 
##    3    1    1    3    1    1    1    1    1    3    1    1    1    2    1    1 
##   62   63   64   65   68   70   72   73   74   75   76   77   78   79   80   81 
##    3    1    3    1    1    1    3    2    1    3    1    1    1    1    2    1 
##   83   84   85   86   88   90   91   94   95   96   97   98  100  101  102  103 
##    1    2    3    3    1    3    3    1    3    1    3    3    3    2    3    1 
##  104  105  106  107  110  112  113  116  117  118  119  120  121  124  125  126 
##    3    3    3    3    3    3    1    3    3    2    2    1    3    1    3    3 
##  128  129  131  132  133  134  137  138  139  140  141  142  143  144  145  147 
##    3    1    3    3    3    3    3    1    3    2    2    3    3    3    3    3 
##  148  150  151  152  153  154  155  158  159  160  161  162  163  164  165  167 
##    2    1    3    3    1    3    1    2    3    3    1    2    3    3    1    3 
##  169  170  171  174  175  176  177  178  179  182  183  184  190  192  193  194 
##    3    1    3    1    3    3    1    1    3    3    3    1    1    1    1    3 
##  195  197  198  199  200  201  202  204  205  206  207  208  211  214  215  216 
##    3    1    1    2    1    3    1    1    3    1    3    3    1    1    1    1 
##  217  218  221  223  224  226  227  228  230  231  233  235  238  239  240  241 
##    1    1    1    3    3    2    1    1    1    1    1    3    3    1    1    1 
##  242  243  244  245  246  247  248  249  250  252  253  254  256  258  259  260 
##    1    1    1    1    1    1    3    1    3    1    2    2    2    2    2    1 
##  261  262  264  267  269  270  271  273  274  275  277  281  282  283  284  286 
##    3    1    2    3    3    3    1    1    1    3    1    3    1    3    1    1 
##  287  288  291  292  293  296  297  298  299  300  302  303  304  305  306  307 
##    1    1    3    3    2    2    1    2    3    3    3    3    1    1    2    1 
##  308  309  311  312  314  315  316  319  321  323  325  327  328  329  330  331 
##    1    1    1    1    1    3    1    2    3    2    3    2    3    2    3    1 
##  332  333  334  335  336  337  338  339  340  341  342  343  346  347  349  350 
##    3    1    3    3    2    2    3    3    3    1    3    1    3    3    1    1 
##  351  352  353  355  359  361  362  363  364  366  367  369  372  373  374  376 
##    1    2    3    1    3    3    3    2    3    1    1    3    2    3    2    2 
##  377  378  379  380  381  382  384  385  386  387  388  389  390  391  392  393 
##    1    3    1    2    2    3    3    2    2    3    3    3    3    3    3    3 
##  394  395  396  397  399  401  403  404  405  406  407  408  410  411  412  416 
##    1    1    2    3    1    1    1    2    3    1    1    3    2    1    1    1 
##  417  419  420  421  422  423  424  425  426  428  429  430  431  433  434  436 
##    1    1    3    3    3    1    3    3    1    3    2    1    2    3    3    3 
##  437  438  439  440  441  442  444  445  446  447  448  449  450  451  452  453 
##    1    1    1    3    1    2    2    3    1    2    1    3    3    1    1    1 
##  454  455  456  458  460  461  462  463  464  465  466  467  468  469  470  471 
##    1    1    1    1    3    2    3    1    3    3    1    3    2    3    3    1 
##  473  474  475  476  477  478  479  481  482  483  484  485  486  487  488  491 
##    3    3    1    3    3    1    3    1    1    3    1    1    3    3    1    1 
##  492  493  494  495  496  497  498  499  500  501  502  505  507  508  510  511 
##    1    1    3    3    3    3    3    2    3    1    1    2    1    3    1    3 
##  513  514  515  516  517  518  520  521  522  523  524  525  526  527  529  530 
##    1    1    3    3    3    3    2    1    2    1    1    3    1    1    3    3 
##  531  532  533  534  536  538  543  544  546  547  548  549  550  551  554  555 
##    2    2    3    3    1    1    3    1    2    1    3    2    3    1    3    1 
##  556  558  560  562  564  565  566  567  568  569  571  573  574  575  577  578 
##    1    2    1    3    3    3    3    1    2    2    1    1    1    2    3    3 
##  579  580  581  582  584  585  586  587  590  591  592  593  595  597  599  600 
##    1    1    2    3    1    3    1    3    1    1    2    1    3    2    1    3 
##  601  602  604  605  606  608  611  612  613  614  615  616  618  620  621  622 
##    2    3    1    1    3    3    3    2    3    1    2    1    1    1    3    3 
##  623  624  625  626  630  631  632  634  635  638  639  641  643  644  645  647 
##    3    1    2    3    3    3    1    3    3    2    3    1    1    2    3    1 
##  648  649  650  652  653  655  656  657  659  661  662  663  664  665  666  667 
##    1    3    1    1    1    1    1    1    1    2    3    3    2    3    1    3 
##  669  671  675  677  679  680  682  683  684  686  689  690  691  692  698  699 
##    3    2    1    3    3    3    1    1    1    3    1    1    3    1    1    1 
##  700  701  702  704  705  707  709  710  712  714  715  716  717  720  721  722 
##    3    3    1    3    1    3    1    3    3    3    3    1    3    3    3    3 
##  723  724  725  727  728  729  730  731  732  733  734  738  741  742  743  744 
##    3    3    1    3    1    3    2    2    1    1    2    1    1    3    3    1 
##  746  747  749  752  754  757  758  760  762  763  764  766  769  771  772  773 
##    2    3    1    3    3    1    1    3    3    3    3    3    1    1    3    3 
##  775  776  780  781  783  784  785  786  787  789  791  792  793  796  797  799 
##    1    2    1    3    1    3    1    3    2    1    3    1    3    1    1    3 
##  800  802  803  804  805  806  807  808  809  811  812  813  815  816  817  819 
##    3    3    3    1    3    3    1    1    2    1    3    3    2    1    3    3 
##  820  823  824  825  826  827  828  829  830  832  833  834  836  837  838  840 
##    2    3    3    2    1    1    3    3    3    1    3    1    1    1    1    1 
##  842  843  844  845  846  847  848  850  851  852  854  855  856  857  859  861 
##    3    2    2    3    1    1    3    3    2    1    3    3    3    1    1    1 
##  862  864  865  867  868  869  872  874  875  878  879  880  881  882  885  887 
##    3    3    3    2    3    3    3    1    1    1    1    3    3    1    3    1 
##  888  889  893  894  895  896  897  899  900  901  902  903  904  905  909  910 
##    1    1    1    3    3    3    3    1    3    2    3    3    1    2    1    3 
##  911  912  913  916  918  920  922  923  924  925  926  927  930  932  933  934 
##    3    1    1    3    1    3    3    1    1    1    1    3    1    1    3    1 
##  936  939  940  941  942  944  945  947  949  950  951  952  954  956  957  958 
##    1    1    1    1    3    3    1    3    3    2    1    3    3    1    1    1 
##  959  960  961  964  966  967  969  970  972  974  975  976  977  981  982  983 
##    1    1    3    3    1    1    1    2    3    3    1    2    3    2    1    3 
##  984  985  986  987  990  991  992  994  995  996  997  998  999 1001 1002 1003 
##    1    1    2    1    3    1    2    1    3    1    2    3    2    1    1    1 
## 1004 1005 1006 1007 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1022 
##    1    1    1    3    3    1    1    1    2    1    2    3    3    1    1    1 
## 1024 1025 1026 1027 1028 1029 1030 1032 1033 1034 1035 1036 1037 1038 1039 1040 
##    3    3    2    1    1    2    3    2    1    1    2    1    3    2    2    3 
## 1042 1043 1044 1045 1046 1047 1048 1049 1050 1052 1053 1055 1056 1060 1061 1062 
##    1    1    3    2    1    1    2    1    3    1    3    3    3    1    2    1 
## 1066 1068 1069 1070 1071 1073 1074 1076 1077 1079 1080 1081 1082 1083 1084 1085 
##    3    3    2    1    1    3    2    1    3    3    3    1    1    1    1    3 
## 1088 1092 1094 1096 1097 1098 1099 1100 1101 1102 1103 1105 1106 1107 1108 1109 
##    3    3    1    2    1    1    3    1    1    3    3    3    1    3    1    2 
## 1111 1113 1114 1115 1116 1117 1118 1119 1120 1121 1124 1125 1126 1127 1128 1131 
##    1    3    1    3    2    3    2    1    3    1    2    3    2    2    2    3 
## 1132 1133 1135 1136 1137 1138 1140 1143 1148 1150 1152 1154 1156 1157 1158 1160 
##    1    3    3    3    3    2    3    3    1    3    1    3    1    3    1    1 
## 1161 1162 1163 1164 1165 1166 1167 1171 1172 1173 1175 1177 1179 1180 1182 1184 
##    3    1    1    1    1    2    1    1    3    1    3    1    1    3    3    3 
## 1185 1188 1190 1191 1192 1193 1195 1196 1198 1200 1201 1202 1203 1204 1206 1207 
##    3    1    3    2    3    1    3    1    1    1    2    3    1    2    1    1 
## 1210 1211 1212 1215 1216 1217 1218 1219 1220 1221 1224 1225 1226 1228 1231 1233 
##    3    1    3    2    1    2    3    1    1    1    1    1    1    3    1    1 
## 1234 1235 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1248 1249 1250 1251 
##    1    1    1    1    1    3    1    3    2    1    1    3    1    1    2    3 
## 1252 1254 1255 1256 1257 1258 1259 1260 1263 1264 1265 1267 1268 1269 1270 1273 
##    3    3    2    2    1    3    1    1    2    2    3    2    3    3    3    1 
## 1275 1277 1278 1279 1280 1281 1282 1283 1285 1286 1288 1289 1291 1292 1293 1294 
##    1    2    3    3    2    1    2    3    3    1    2    3    1    1    3    1 
## 1295 1296 1297 1298 1299 1301 1303 1304 1306 1307 1308 1309 1310 1311 1312 1314 
##    1    1    1    1    3    1    3    1    2    2    3    3    3    3    1    3 
## 1315 1317 1318 1319 1321 1322 1324 1329 1331 1333 1334 1336 1338 1340 1344 1346 
##    3    2    3    3    3    1    1    3    1    3    2    2    2    1    1    3 
## 1349 1350 1352 1355 1356 1358 1360 1361 1362 1363 1364 1367 1368 1369 1371 1372 
##    1    1    2    3    3    1    2    1    1    3    1    3    3    1    3    2 
## 1373 1374 1375 1377 1379 1380 1382 1383 1387 1389 1390 1391 1392 1394 1395 1396 
##    2    3    1    3    1    3    3    1    3    3    1    2    1    1    3    3 
## 1397 1399 1401 1402 1403 1405 1407 1408 1409 1411 1412 1415 1417 1419 1420 1421 
##    1    1    2    3    1    3    1    2    3    3    3    1    3    1    3    3 
## 1422 1423 1424 1425 1427 1428 1430 1431 1433 1434 1435 1436 1438 1439 1440 1441 
##    2    2    2    3    3    1    2    3    3    1    3    1    1    3    3    1 
## 1443 1445 1446 1447 1448 1449 1453 1457 1458 1459 1460 1461 1464 1465 1466 1467 
##    2    3    3    1    1    3    1    2    3    1    3    3    3    2    3    1 
## 1468 1469 1471 1472 1473 1474 1475 1477 1478 1479 1480 1481 1482 1483 1484 1485 
##    3    3    1    2    3    1    3    3    3    1    3    1    1    1    3    2 
## 1486 1487 1489 1492 1494 1495 1496 1497 1499 1501 1502 1503 1504 1506 1507 1509 
##    3    3    1    3    3    1    3    3    3    3    1    3    1    1    1    3 
## 1513 1514 1515 1516 1520 1522 1523 1525 1527 1529 1533 1534 1535 1537 1539 1541 
##    1    1    3    3    2    1    2    1    2    3    3    3    1    1    3    1 
## 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 
##    3    1    1    3    1    3    3    3    2    1    1    3    3    3    3    1 
## 1558 1560 1562 1563 1564 1568 1569 1572 1573 1574 1576 1577 1578 1580 1581 1582 
##    3    1    1    3    3    3    3    2    1    3    3    3    2    1    1    2 
## 1583 1585 1586 1587 1588 1590 1591 1592 1594 1595 1596 1597 1598 1599 1601 1602 
##    3    3    3    1    1    3    2    1    3    2    3    3    1    1    1    2 
## 1604 1605 1606 1607 1608 1609 1611 1612 1613 1614 1615 1617 1618 1619 1621 1622 
##    1    1    3    3    2    1    3    3    3    1    3    3    1    3    3    3 
## 1623 1624 1625 1627 1628 1630 1631 1633 1635 1638 1639 1640 1641 1642 1644 1645 
##    3    3    2    1    3    1    3    1    1    1    3    1    3    1    2    3 
## 1646 1647 1648 1649 1650 1651 1653 1654 1655 1656 1657 1658 1659 1661 1662 1664 
##    3    3    1    1    3    3    1    1    2    3    1    3    1    2    3    3 
## 1665 1666 1667 1668 1669 1670 1671 1673 1674 1675 1676 1677 1678 1680 1681 1682 
##    2    2    1    1    1    1    3    3    3    3    2    2    1    3    3    1 
## 1683 1684 1687 1689 1691 1692 1693 1694 1696 1697 1698 1700 1701 1702 1703 1704 
##    1    3    3    1    1    3    1    3    1    3    1    1    3    3    3    1 
## 1706 1707 1708 1709 1710 1712 1714 1716 1718 1719 1720 1721 1722 1724 1725 1727 
##    1    3    3    3    1    1    1    3    1    2    3    3    3    1    1    1 
## 1728 1729 1731 1732 1733 1734 1735 1736 1737 1739 1740 1744 1745 1746 1747 1749 
##    1    1    1    1    1    1    1    1    1    1    2    1    3    1    1    3 
## 1751 1752 1753 1754 1755 1756 1757 1758 1760 1761 1762 1763 1764 1766 1767 1768 
##    1    3    3    1    1    1    1    1    3    3    1    1    3    3    3    1 
## 1770 1771 1772 1774 1775 1778 1779 1780 1782 1783 1784 1786 1787 1789 1790 1792 
##    2    1    3    1    3    1    3    1    3    3    1    3    1    2    3    1 
## 1794 1797 1798 1799 1800 1801 1802 1803 1804 1805 1807 1809 1812 1813 1814 1815 
##    1    1    1    1    2    3    3    1    3    1    1    1    3    3    3    3 
## 1816 1818 1821 1822 1823 1824 1826 1827 1829 1830 1833 1834 1835 1836 1837 1839 
##    1    1    1    1    3    2    1    3    1    3    1    1    1    1    2    1 
## 1842 1844 1845 1847 1849 1850 1852 1853 1854 1856 1857 1858 1859 1860 1862 1863 
##    3    1    3    3    3    3    1    3    1    1    3    1    3    1    3    2 
## 1864 1865 1866 1867 1868 1869 1870 1871 1873 1875 1876 1878 1880 1881 1882 1883 
##    1    3    2    2    3    1    3    1    1    1    3    3    1    3    3    3 
## 1885 1886 1888 1890 1892 1893 1898 1900 1903 1905 1907 1908 1909 1911 1912 1915 
##    1    3    3    1    2    3    3    2    1    1    1    3    3    2    3    3 
## 1916 1918 1922 1924 1927 1928 1929 1931 1932 1933 1934 1935 1936 1937 1938 1939 
##    3    1    3    1    3    1    1    1    3    3    1    3    1    3    2    3 
## 1940 1941 1943 1944 1945 1947 1948 1949 1950 1951 1952 1954 1955 1956 1960 1961 
##    1    2    1    3    3    1    1    1    1    3    3    1    3    1    3    1 
## 1962 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1979 1980 1981 
##    1    1    1    3    1    3    3    3    1    2    3    3    3    3    3    1 
## 1982 1985 1986 1987 1989 1992 1993 1994 1995 1996 1997 1998 1999 2000 2003 2007 
##    1    3    1    3    1    1    1    3    1    1    1    1    3    2    3    3 
## 2008 2009 2010 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 
##    3    3    3    1    3    1    1    3    2    1    3    1    3    2    3    1 
## 2025 2026 2027 2031 2032 2034 2035 2036 2037 2038 2040 2041 2044 2045 2046 2048 
##    1    3    3    2    1    2    1    1    1    1    3    1    1    1    3    1 
## 2049 2051 2052 2053 2054 2055 2056 2057 2060 2061 2062 2064 2065 2068 
##    3    1    1    3    1    2    2    1    3    1    3    1    1    1 
## 
## Within cluster sum of squares by cluster:
## [1] 12214481028  9502518319 12683716574
##  (between_SS / total_SS =  68.1 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"
K-Óptimo [sil 4]
set.seed(121124)
print(kmeans(data_, 4, nstart = 25))
## K-means clustering with 4 clusters of sizes 398, 442, 444, 186
## 
## Cluster means:
##        Age DailyRate DistanceFromHome Education EmployeeNumber MonthlyIncome
## 1 35.11055  804.3492         9.216080  2.849246      1026.6583      4459.435
## 2 36.24434  790.3303         9.527149  2.889140      1041.6946      5652.095
## 3 35.17793  809.5135         9.074324  2.954955      1027.5766      4968.086
## 4 46.58602  810.6075         8.629032  3.005376       974.5645     16561.280
##   MonthlyRate NumCompaniesWorked PercentSalaryHike TotalWorkingYears
## 1   14292.553           2.505025          15.12563          8.675879
## 2   22637.156           2.665158          15.24434         10.285068
## 3    6157.563           2.554054          15.31982          9.229730
## 4   14044.328           3.494624          15.04301         24.107527
##   YearsAtCompany
## 1       5.517588
## 2       6.436652
## 3       6.373874
## 4      13.069892
## 
## Clustering vector:
##    1    2    4    5    7    8   10   11   12   13   14   15   16   18   19   20 
##    2    2    3    2    1    1    3    1    3    1    1    1    1    3    1    3 
##   21   22   23   24   26   27   28   30   31   32   33   35   36   38   39   40 
##    1    3    4    3    3    3    2    2    1    4    3    2    3    4    3    2 
##   41   42   45   46   47   49   51   52   53   54   55   56   57   58   60   61 
##    1    3    3    2    3    3    1    3    1    2    1    3    1    4    3    1 
##   62   63   64   65   68   70   72   73   74   75   76   77   78   79   80   81 
##    2    3    2    1    3    3    2    4    1    1    3    3    1    3    4    3 
##   83   84   85   86   88   90   91   94   95   96   97   98  100  101  102  103 
##    3    4    2    2    3    2    2    3    1    3    2    2    2    4    2    1 
##  104  105  106  107  110  112  113  116  117  118  119  120  121  124  125  126 
##    1    2    2    1    1    2    3    1    1    1    4    3    2    3    2    2 
##  128  129  131  132  133  134  137  138  139  140  141  142  143  144  145  147 
##    1    3    2    2    2    1    2    1    1    4    4    2    2    2    2    2 
##  148  150  151  152  153  154  155  158  159  160  161  162  163  164  165  167 
##    4    1    1    1    3    2    3    4    2    1    3    4    2    2    3    2 
##  169  170  171  174  175  176  177  178  179  182  183  184  190  192  193  194 
##    2    3    1    3    2    2    3    3    2    1    2    1    1    3    3    2 
##  195  197  198  199  200  201  202  204  205  206  207  208  211  214  215  216 
##    2    1    1    4    3    1    3    1    1    1    1    2    1    1    3    1 
##  217  218  221  223  224  226  227  228  230  231  233  235  238  239  240  241 
##    1    3    3    2    2    4    3    3    1    1    1    2    1    1    3    1 
##  242  243  244  245  246  247  248  249  250  252  253  254  256  258  259  260 
##    1    3    3    3    3    3    2    3    2    3    4    4    1    4    4    1 
##  261  262  264  267  269  270  271  273  274  275  277  281  282  283  284  286 
##    1    3    4    2    1    1    3    3    3    2    3    1    1    2    1    3 
##  287  288  291  292  293  296  297  298  299  300  302  303  304  305  306  307 
##    1    1    2    2    1    4    3    4    2    2    1    1    3    1    4    3 
##  308  309  311  312  314  315  316  319  321  323  325  327  328  329  330  331 
##    3    3    3    3    3    1    3    4    2    4    2    4    2    4    2    3 
##  332  333  334  335  336  337  338  339  340  341  342  343  346  347  349  350 
##    1    1    2    2    4    4    1    2    2    3    2    3    2    2    1    3 
##  351  352  353  355  359  361  362  363  364  366  367  369  372  373  374  376 
##    3    4    2    1    2    2    2    4    1    3    1    1    4    2    4    4 
##  377  378  379  380  381  382  384  385  386  387  388  389  390  391  392  393 
##    3    2    1    4    4    2    2    4    4    2    2    1    2    1    2    2 
##  394  395  396  397  399  401  403  404  405  406  407  408  410  411  412  416 
##    1    3    4    2    3    3    1    4    2    3    3    1    4    3    3    1 
##  417  419  420  421  422  423  424  425  426  428  429  430  431  433  434  436 
##    1    3    1    2    1    3    1    2    3    2    4    1    4    1    2    2 
##  437  438  439  440  441  442  444  445  446  447  448  449  450  451  452  453 
##    3    3    1    2    1    1    4    1    3    4    3    2    1    3    3    1 
##  454  455  456  458  460  461  462  463  464  465  466  467  468  469  470  471 
##    3    3    3    3    2    4    2    1    2    1    3    2    4    1    2    3 
##  473  474  475  476  477  478  479  481  482  483  484  485  486  487  488  491 
##    2    1    3    2    1    3    1    3    3    2    3    3    1    1    3    3 
##  492  493  494  495  496  497  498  499  500  501  502  505  507  508  510  511 
##    3    3    2    1    2    1    2    4    1    1    3    4    3    1    3    2 
##  513  514  515  516  517  518  520  521  522  523  524  525  526  527  529  530 
##    3    3    2    2    2    2    3    1    4    1    3    1    3    1    2    1 
##  531  532  533  534  536  538  543  544  546  547  548  549  550  551  554  555 
##    4    4    2    2    1    3    2    3    4    1    2    4    2    3    2    1 
##  556  558  560  562  564  565  566  567  568  569  571  573  574  575  577  578 
##    1    4    3    1    2    1    1    3    4    4    3    3    3    4    2    2 
##  579  580  581  582  584  585  586  587  590  591  592  593  595  597  599  600 
##    3    1    4    2    3    1    1    2    1    3    1    3    2    4    1    2 
##  601  602  604  605  606  608  611  612  613  614  615  616  618  620  621  622 
##    4    1    3    3    1    2    2    4    2    3    4    3    3    3    2    2 
##  623  624  625  626  630  631  632  634  635  638  639  641  643  644  645  647 
##    2    3    4    2    2    2    3    2    1    4    2    3    3    4    2    1 
##  648  649  650  652  653  655  656  657  659  661  662  663  664  665  666  667 
##    1    2    1    1    3    3    3    1    3    4    1    2    4    2    3    1 
##  669  671  675  677  679  680  682  683  684  686  689  690  691  692  698  699 
##    2    4    1    2    1    2    3    3    3    1    3    3    2    3    3    1 
##  700  701  702  704  705  707  709  710  712  714  715  716  717  720  721  722 
##    1    2    3    1    3    1    3    2    2    1    1    3    1    2    2    2 
##  723  724  725  727  728  729  730  731  732  733  734  738  741  742  743  744 
##    2    2    3    2    1    2    4    4    1    3    4    3    3    2    1    3 
##  746  747  749  752  754  757  758  760  762  763  764  766  769  771  772  773 
##    4    2    3    2    2    3    3    2    2    2    2    1    1    3    2    2 
##  775  776  780  781  783  784  785  786  787  789  791  792  793  796  797  799 
##    3    4    3    2    1    2    1    2    4    1    2    3    2    3    1    2 
##  800  802  803  804  805  806  807  808  809  811  812  813  815  816  817  819 
##    2    2    2    3    2    2    3    1    4    3    2    2    4    3    2    2 
##  820  823  824  825  826  827  828  829  830  832  833  834  836  837  838  840 
##    4    2    2    4    1    3    1    2    2    1    2    3    1    3    3    3 
##  842  843  844  845  846  847  848  850  851  852  854  855  856  857  859  861 
##    2    4    4    2    3    3    2    1    4    3    2    2    1    3    3    3 
##  862  864  865  867  868  869  872  874  875  878  879  880  881  882  885  887 
##    2    2    2    4    2    2    2    3    3    3    1    2    1    3    1    1 
##  888  889  893  894  895  896  897  899  900  901  902  903  904  905  909  910 
##    1    3    1    2    1    2    2    3    2    4    2    1    3    4    3    2 
##  911  912  913  916  918  920  922  923  924  925  926  927  930  932  933  934 
##    1    3    3    2    1    2    2    3    3    1    3    1    3    3    1    3 
##  936  939  940  941  942  944  945  947  949  950  951  952  954  956  957  958 
##    3    3    3    1    2    2    3    2    2    4    3    1    2    1    3    1 
##  959  960  961  964  966  967  969  970  972  974  975  976  977  981  982  983 
##    3    1    1    2    1    3    1    4    2    1    3    4    2    4    3    2 
##  984  985  986  987  990  991  992  994  995  996  997  998  999 1001 1002 1003 
##    3    3    4    3    2    1    4    1    1    1    4    2    4    1    1    3 
## 1004 1005 1006 1007 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1022 
##    1    3    1    2    2    3    1    1    4    3    4    1    2    3    3    1 
## 1024 1025 1026 1027 1028 1029 1030 1032 1033 1034 1035 1036 1037 1038 1039 1040 
##    2    2    3    3    3    4    2    2    1    1    4    3    2    4    4    2 
## 1042 1043 1044 1045 1046 1047 1048 1049 1050 1052 1053 1055 1056 1060 1061 1062 
##    3    3    2    4    1    1    4    3    2    3    1    1    2    3    4    1 
## 1066 1068 1069 1070 1071 1073 1074 1076 1077 1079 1080 1081 1082 1083 1084 1085 
##    2    2    4    3    1    1    4    3    1    1    2    1    1    1    3    2 
## 1088 1092 1094 1096 1097 1098 1099 1100 1101 1102 1103 1105 1106 1107 1108 1109 
##    2    2    3    4    3    3    2    3    3    2    2    2    3    2    3    4 
## 1111 1113 1114 1115 1116 1117 1118 1119 1120 1121 1124 1125 1126 1127 1128 1131 
##    3    1    1    2    4    1    1    3    2    3    4    2    4    4    4    2 
## 1132 1133 1135 1136 1137 1138 1140 1143 1148 1150 1152 1154 1156 1157 1158 1160 
##    3    2    2    2    2    4    1    1    3    1    3    2    1    2    3    3 
## 1161 1162 1163 1164 1165 1166 1167 1171 1172 1173 1175 1177 1179 1180 1182 1184 
##    1    3    3    3    1    4    3    3    1    3    2    1    3    2    2    2 
## 1185 1188 1190 1191 1192 1193 1195 1196 1198 1200 1201 1202 1203 1204 1206 1207 
##    2    3    1    4    2    3    2    3    1    1    4    2    3    4    3    3 
## 1210 1211 1212 1215 1216 1217 1218 1219 1220 1221 1224 1225 1226 1228 1231 1233 
##    2    1    2    4    1    4    2    3    3    3    1    3    3    1    1    1 
## 1234 1235 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1248 1249 1250 1251 
##    3    3    3    3    1    2    3    2    1    1    3    2    3    3    4    1 
## 1252 1254 1255 1256 1257 1258 1259 1260 1263 1264 1265 1267 1268 1269 1270 1273 
##    1    1    4    4    3    1    3    3    4    4    2    4    2    2    1    3 
## 1275 1277 1278 1279 1280 1281 1282 1283 1285 1286 1288 1289 1291 1292 1293 1294 
##    3    4    2    2    4    3    4    2    2    3    4    2    3    3    2    3 
## 1295 1296 1297 1298 1299 1301 1303 1304 1306 1307 1308 1309 1310 1311 1312 1314 
##    1    1    3    1    1    3    1    1    4    4    2    2    2    2    3    2 
## 1315 1317 1318 1319 1321 1322 1324 1329 1331 1333 1334 1336 1338 1340 1344 1346 
##    1    4    1    2    2    1    3    2    3    1    4    4    4    3    3    2 
## 1349 1350 1352 1355 1356 1358 1360 1361 1362 1363 1364 1367 1368 1369 1371 1372 
##    3    3    4    2    2    3    1    3    3    2    3    2    2    1    2    4 
## 1373 1374 1375 1377 1379 1380 1382 1383 1387 1389 1390 1391 1392 1394 1395 1396 
##    4    1    1    1    1    2    1    3    2    2    3    4    1    3    2    2 
## 1397 1399 1401 1402 1403 1405 1407 1408 1409 1411 1412 1415 1417 1419 1420 1421 
##    3    1    4    2    3    2    3    4    1    2    2    3    2    3    2    2 
## 1422 1423 1424 1425 1427 1428 1430 1431 1433 1434 1435 1436 1438 1439 1440 1441 
##    4    4    4    2    1    1    4    2    2    3    2    1    1    1    2    1 
## 1443 1445 1446 1447 1448 1449 1453 1457 1458 1459 1460 1461 1464 1465 1466 1467 
##    2    1    2    3    3    2    3    1    1    3    2    2    2    1    2    3 
## 1468 1469 1471 1472 1473 1474 1475 1477 1478 1479 1480 1481 1482 1483 1484 1485 
##    2    2    3    4    2    3    2    1    1    3    1    3    3    3    2    4 
## 1486 1487 1489 1492 1494 1495 1496 1497 1499 1501 1502 1503 1504 1506 1507 1509 
##    1    1    3    1    1    3    2    2    1    1    3    2    3    1    1    2 
## 1513 1514 1515 1516 1520 1522 1523 1525 1527 1529 1533 1534 1535 1537 1539 1541 
##    3    3    2    2    4    3    4    3    4    2    2    2    1    3    2    3 
## 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 
##    2    3    3    2    3    2    2    2    4    3    3    2    2    1    1    1 
## 1558 1560 1562 1563 1564 1568 1569 1572 1573 1574 1576 1577 1578 1580 1581 1582 
##    2    1    3    1    2    1    2    1    3    2    1    2    4    1    1    1 
## 1583 1585 1586 1587 1588 1590 1591 1592 1594 1595 1596 1597 1598 1599 1601 1602 
##    1    2    1    3    3    2    4    1    2    4    2    1    1    3    3    4 
## 1604 1605 1606 1607 1608 1609 1611 1612 1613 1614 1615 1617 1618 1619 1621 1622 
##    3    1    2    2    4    3    2    2    2    1    1    2    3    1    2    2 
## 1623 1624 1625 1627 1628 1630 1631 1633 1635 1638 1639 1640 1641 1642 1644 1645 
##    2    1    4    1    2    1    2    3    3    1    2    3    2    1    4    2 
## 1646 1647 1648 1649 1650 1651 1653 1654 1655 1656 1657 1658 1659 1661 1662 1664 
##    1    2    3    3    2    2    3    3    4    2    1    2    1    4    1    2 
## 1665 1666 1667 1668 1669 1670 1671 1673 1674 1675 1676 1677 1678 1680 1681 1682 
##    4    4    1    3    3    3    2    2    2    2    4    4    1    2    1    3 
## 1683 1684 1687 1689 1691 1692 1693 1694 1696 1697 1698 1700 1701 1702 1703 1704 
##    3    2    2    3    1    2    1    2    1    2    1    3    2    2    1    1 
## 1706 1707 1708 1709 1710 1712 1714 1716 1718 1719 1720 1721 1722 1724 1725 1727 
##    3    1    1    2    3    3    1    2    3    4    1    1    2    3    3    3 
## 1728 1729 1731 1732 1733 1734 1735 1736 1737 1739 1740 1744 1745 1746 1747 1749 
##    3    3    3    3    3    1    1    3    3    3    4    3    2    3    3    2 
## 1751 1752 1753 1754 1755 1756 1757 1758 1760 1761 1762 1763 1764 1766 1767 1768 
##    3    1    2    3    3    1    3    3    1    2    3    3    1    2    1    3 
## 1770 1771 1772 1774 1775 1778 1779 1780 1782 1783 1784 1786 1787 1789 1790 1792 
##    4    3    2    1    2    3    2    3    1    1    1    2    3    4    2    1 
## 1794 1797 1798 1799 1800 1801 1802 1803 1804 1805 1807 1809 1812 1813 1814 1815 
##    1    1    3    3    4    2    2    3    2    3    3    3    2    2    1    2 
## 1816 1818 1821 1822 1823 1824 1826 1827 1829 1830 1833 1834 1835 1836 1837 1839 
##    3    3    1    3    2    4    3    2    1    1    3    1    3    3    4    3 
## 1842 1844 1845 1847 1849 1850 1852 1853 1854 1856 1857 1858 1859 1860 1862 1863 
##    2    3    2    2    2    2    3    2    3    3    2    1    2    1    2    4 
## 1864 1865 1866 1867 1868 1869 1870 1871 1873 1875 1876 1878 1880 1881 1882 1883 
##    3    1    4    4    1    1    2    3    3    3    1    2    3    2    2    2 
## 1885 1886 1888 1890 1892 1893 1898 1900 1903 1905 1907 1908 1909 1911 1912 1915 
##    1    2    2    3    4    1    2    4    3    1    1    1    2    4    2    1 
## 1916 1918 1922 1924 1927 1928 1929 1931 1932 1933 1934 1935 1936 1937 1938 1939 
##    1    3    1    1    2    1    3    3    2    2    3    2    1    1    4    1 
## 1940 1941 1943 1944 1945 1947 1948 1949 1950 1951 1952 1954 1955 1956 1960 1961 
##    1    4    3    2    1    3    3    3    3    2    2    3    1    3    1    1 
## 1962 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1979 1980 1981 
##    1    3    3    2    3    2    1    1    3    4    1    2    1    2    2    1 
## 1982 1985 1986 1987 1989 1992 1993 1994 1995 1996 1997 1998 1999 2000 2003 2007 
##    1    2    3    2    3    3    1    2    3    3    1    1    2    4    2    1 
## 2008 2009 2010 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 
##    2    2    1    3    1    3    3    2    4    1    2    1    2    4    2    1 
## 2025 2026 2027 2031 2032 2034 2035 2036 2037 2038 2040 2041 2044 2045 2046 2048 
##    3    2    2    4    3    3    3    1    1    1    1    3    1    1    2    3 
## 2049 2051 2052 2053 2054 2055 2056 2057 2060 2061 2062 2064 2065 2068 
##    2    1    3    2    3    4    4    3    2    1    2    3    1    1 
## 
## Within cluster sum of squares by cluster:
## [1] 4420806219 6883354374 5923475317 8510495972
##  (between_SS / total_SS =  76.1 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Gráficos K-Means

K-Óptimo [Elb_Ma-Rul 3]
fviz_cluster(kmeans(data_, 3, nstart = 25), data = data_, palette = c("#2E9FDF", "#00AFBB", "#E7B800", "#E7B801"), ellipse.type = "euclid", star.plot = TRUE, repel = TRUE, ggtheme = theme_minimal()
)

K-Óptimo [sil 4]
fviz_cluster(kmeans(data_, 2, nstart = 25), data = data_, palette = c("#2E9FDF", "#00AFBB", "#E7B800", "#E7B801"), ellipse.type = "euclid", star.plot = TRUE, repel = TRUE, ggtheme = theme_minimal()
)

Fase 5 [Análisis de Regresión]

La regresión multiple se centra sobre la dependencia de una variable respuesta respecto a un conjunto de variables regresoras o predictoras. Mediante un modelo de regresión se mide el efecto de cada una de las variables regresoras sobre la respuesta. Uno de los objetivos es la estimación para la predicción del valor medio de la variable dependiente, con base en el conocimiento de las variables independientes o predictoras.

5.1. Objetivos

El propósito de esta fase es establecer relaciones estadísticas entre dos o más variables mediante el uso de modelos de regresión que describen cómo una variable dependiente puede explicarse a partir de una o varias variables independientes. Dichas relaciones son de tipo probabilístico, lo que permite realizar conclusiones y predicciones sobre los fenómenos analizados.

Se calcularán medidas que expresen la intensidad y dirección de las asociaciones, aplicando modelos derivados del modelo lineal generalizado, entre ellos la Regresión Lineal Simple, la Regresión Lineal Múltiple y la Regresión Logística. Cada modelo será descrito teóricamente en su respectiva subsección y aplicado al conjunto de datos.

5.2. Regresión Lineal Simple

Resumen MonthlyIncome
boxplot_MonthlyIncome <- function(data, variable, main_title = "Diagrama de caja MonthlyIncome", color = "orange", ylim = NULL) {
  if (is.vector(data)) { 
  
    boxplot(data, 
            main = main_title, 
            col = color, 
            ylim = ylim)
  } else {
    
    boxplot(data[[variable]], 
            main = main_title, 
            col = color, 
            ylim = ylim)
  }
}
summary(desercion_empleados_IBM_ETL$MonthlyIncome)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1009    2911    4919    6503    8379   19999
boxplot_MonthlyIncome(
  data = desercion_empleados_IBM_ETL, 
  variable = "MonthlyIncome", 
  main_title = "Diagrama de caja MonthlyIncome", 
  color = "orange", 
  ylim = c(1000,20000) )

Resumen de Total de años trabajados
boxplot_TotalWorkingYears <- function(data, variable, main_title = "Diagrama de caja TotalWorkingYears", color = "blue", ylim = NULL) {
  if (is.vector(data)) { 
  
    boxplot(data, 
            main = main_title, 
            col = color, 
            ylim = ylim)
  } else {
    
    boxplot(data[[variable]], 
            main = main_title, 
            col = color, 
            ylim = ylim)
  }
}
summary(desercion_empleados_IBM_ETL$TotalWorkingYears)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    6.00   10.00   11.28   15.00   40.00
boxplot_TotalWorkingYears(
  data = desercion_empleados_IBM_ETL, 
  variable = "TotalWorkingYears", 
  main_title = "Diagrama de caja TotalWorkingYears", 
  color = "blue", 
  ylim = c(0, 42) )

Diagrama de Dispersión: MonthlyIncome y TotalWorkingYearsl
plot(desercion_empleados_IBM_ETL$TotalWorkingYears, desercion_empleados_IBM_ETL$MonthlyIncome, main = "Diagrama de Dispersión")

Diagramas Totales de Dispersión
pairs(~MonthlyIncome + TotalWorkingYears + DistanceFromHome + YearsAtCompany + Age, data = desercion_empleados_IBM_ETL)

Formulación del modelo de RLS

Coeficientes del Modelo RLS
modelo_RL_Simple = lm(desercion_empleados_IBM_ETL$MonthlyIncome~desercion_empleados_IBM_ETL$TotalWorkingYears)
coef(modelo_RL_Simple)
##                                   (Intercept) 
##                                     1227.9353 
## desercion_empleados_IBM_ETL$TotalWorkingYears 
##                                      467.6584
Resumen Estadístico del Modelo RLS
summary(modelo_RL_Simple)
## 
## Call:
## lm(formula = desercion_empleados_IBM_ETL$MonthlyIncome ~ desercion_empleados_IBM_ETL$TotalWorkingYears)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -11271.3  -1750.8    -87.5   1398.6  11539.5 
## 
## Coefficients:
##                                               Estimate Std. Error t value
## (Intercept)                                    1227.94     137.30   8.944
## desercion_empleados_IBM_ETL$TotalWorkingYears   467.66      10.02  46.669
##                                               Pr(>|t|)    
## (Intercept)                                     <2e-16 ***
## desercion_empleados_IBM_ETL$TotalWorkingYears   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2988 on 1468 degrees of freedom
## Multiple R-squared:  0.5974, Adjusted R-squared:  0.5971 
## F-statistic:  2178 on 1 and 1468 DF,  p-value: < 2.2e-16
Tabla ANOVA para el Modelo RLS
anova(modelo_RL_Simple)
## Analysis of Variance Table
## 
## Response: desercion_empleados_IBM_ETL$MonthlyIncome
##                                                 Df    Sum Sq    Mean Sq F value
## desercion_empleados_IBM_ETL$TotalWorkingYears    1 1.945e+10 1.9450e+10    2178
## Residuals                                     1468 1.311e+10 8.9304e+06        
##                                                  Pr(>F)    
## desercion_empleados_IBM_ETL$TotalWorkingYears < 2.2e-16 ***
## Residuals                                                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Intervalo de Confianza para B1
confint(modelo_RL_Simple, level = 0.95)
##                                                  2.5 %   97.5 %
## (Intercept)                                   958.6119 1497.259
## desercion_empleados_IBM_ETL$TotalWorkingYears 448.0018  487.315
Predicciones y sus Intervalos de Predicción
predict(modelo_RL_Simple, data.frame(seq(1,1470)), interval='prediction', level = 0.95)
##            fit        lwr       upr
## 1     4969.203  -895.1068 10833.512
## 2     5904.519    40.5104 11768.528
## 3     4501.544 -1363.0143 10366.103
## 4     4969.203  -895.1068 10833.512
## 5     4033.886 -1830.9876  9898.759
## 6     4969.203  -895.1068 10833.512
## 7     6839.836   975.8641 12703.808
## 8     1695.594 -4171.8417  7563.029
## 9     5904.519    40.5104 11768.528
## 10    9178.128  3313.0952 15043.161
## 11    4033.886 -1830.9876  9898.759
## 12    5904.519    40.5104 11768.528
## 13    3566.227 -2299.0267  9431.481
## 14    2630.911 -3235.3026  8497.124
## 15    4033.886 -1830.9876  9898.759
## 16    5904.519    40.5104 11768.528
## 17    4501.544 -1363.0143 10366.103
## 18    1695.594 -4171.8417  7563.029
## 19   15725.346  9848.5926 21602.099
## 20    4033.886 -1830.9876  9898.759
## 21    3566.227 -2299.0267  9431.481
## 22    5904.519    40.5104 11768.528
## 23    7307.495  1443.4421 13171.547
## 24    1227.935 -4640.2099  7096.080
## 25    4969.203  -895.1068 10833.512
## 26   13387.054  7515.9643 19258.144
## 27    5904.519    40.5104 11768.528
## 28    5904.519    40.5104 11768.528
## 29   12451.737  6582.4537 18321.021
## 30   11516.420  5648.6802 17384.161
## 31    4501.544 -1363.0143 10366.103
## 32    5436.861  -427.2653 11300.987
## 33    5904.519    40.5104 11768.528
## 34   10113.445  4247.5267 15979.364
## 35    4033.886 -1830.9876  9898.759
## 36    4033.886 -1830.9876  9898.759
## 37    2630.911 -3235.3026  8497.124
## 38    2163.252 -3703.5392  8030.043
## 39    4033.886 -1830.9876  9898.759
## 40    5904.519    40.5104 11768.528
## 41    1695.594 -4171.8417  7563.029
## 42    1695.594 -4171.8417  7563.029
## 43    1695.594 -4171.8417  7563.029
## 44    5436.861  -427.2653 11300.987
## 45    6839.836   975.8641 12703.808
## 46   11984.079  6115.5998 17852.558
## 47    5904.519    40.5104 11768.528
## 48    4969.203  -895.1068 10833.512
## 49    7775.153  1910.9542 13639.352
## 50    1695.594 -4171.8417  7563.029
## 51   11984.079  6115.5998 17852.558
## 52    2163.252 -3703.5392  8030.043
## 53    5436.861  -427.2653 11300.987
## 54    5904.519    40.5104 11768.528
## 55    3566.227 -2299.0267  9431.481
## 56    8242.811  2378.4004 14107.223
## 57    5436.861  -427.2653 11300.987
## 58    3098.569 -2767.1317  8964.270
## 59    5904.519    40.5104 11768.528
## 60    4501.544 -1363.0143 10366.103
## 61    5436.861  -427.2653 11300.987
## 62    5904.519    40.5104 11768.528
## 63   14790.029  8915.7379 20664.321
## 64   14322.371  8449.2123 20195.529
## 65    9178.128  3313.0952 15043.161
## 66   11048.762  5181.6948 16915.829
## 67    4033.886 -1830.9876  9898.759
## 68   12919.396  7049.2418 18789.549
## 69    3566.227 -2299.0267  9431.481
## 70    2163.252 -3703.5392  8030.043
## 71   10581.104  4714.6436 16447.563
## 72    4033.886 -1830.9876  9898.759
## 73    1695.594 -4171.8417  7563.029
## 74    5904.519    40.5104 11768.528
## 75    3566.227 -2299.0267  9431.481
## 76    6372.178   508.2202 12236.135
## 77    8710.470  2845.7808 14575.159
## 78    9178.128  3313.0952 15043.161
## 79    8710.470  2845.7808 14575.159
## 80    8710.470  2845.7808 14575.159
## 81    5904.519    40.5104 11768.528
## 82    4033.886 -1830.9876  9898.759
## 83   12451.737  6582.4537 18321.021
## 84    9178.128  3313.0952 15043.161
## 85    3566.227 -2299.0267  9431.481
## 86   18531.297 12645.5870 24417.006
## 87    2630.911 -3235.3026  8497.124
## 88    5904.519    40.5104 11768.528
## 89    6372.178   508.2202 12236.135
## 90    5436.861  -427.2653 11300.987
## 91   11516.420  5648.6802 17384.161
## 92    6372.178   508.2202 12236.135
## 93    6372.178   508.2202 12236.135
## 94   11048.762  5181.6948 16915.829
## 95    6839.836   975.8641 12703.808
## 96    8710.470  2845.7808 14575.159
## 97    3098.569 -2767.1317  8964.270
## 98    3566.227 -2299.0267  9431.481
## 99   18998.955 13111.5244 24886.385
## 100   9178.128  3313.0952 15043.161
## 101   4501.544 -1363.0143 10366.103
## 102   1695.594 -4171.8417  7563.029
## 103   1695.594 -4171.8417  7563.029
## 104   8710.470  2845.7808 14575.159
## 105   9178.128  3313.0952 15043.161
## 106  15257.688  9382.1980 21133.177
## 107  14322.371  8449.2123 20195.529
## 108   4033.886 -1830.9876  9898.759
## 109   2163.252 -3703.5392  8030.043
## 110   1695.594 -4171.8417  7563.029
## 111  11984.079  6115.5998 17852.558
## 112   5436.861  -427.2653 11300.987
## 113  11984.079  6115.5998 17852.558
## 114   4033.886 -1830.9876  9898.759
## 115   6839.836   975.8641 12703.808
## 116   6839.836   975.8641 12703.808
## 117   7775.153  1910.9542 13639.352
## 118   5904.519    40.5104 11768.528
## 119   4501.544 -1363.0143 10366.103
## 120  12919.396  7049.2418 18789.549
## 121   5904.519    40.5104 11768.528
## 122   4969.203  -895.1068 10833.512
## 123   4501.544 -1363.0143 10366.103
## 124  11984.079  6115.5998 17852.558
## 125   6839.836   975.8641 12703.808
## 126   3566.227 -2299.0267  9431.481
## 127  19934.272 14043.2038 25825.340
## 128   1227.935 -4640.2099  7096.080
## 129   2630.911 -3235.3026  8497.124
## 130   8710.470  2845.7808 14575.159
## 131   9645.787  3780.3439 15511.230
## 132   8710.470  2845.7808 14575.159
## 133   3098.569 -2767.1317  8964.270
## 134   6839.836   975.8641 12703.808
## 135   4969.203  -895.1068 10833.512
## 136   4501.544 -1363.0143 10366.103
## 137   9645.787  3780.3439 15511.230
## 138   9178.128  3313.0952 15043.161
## 139   4033.886 -1830.9876  9898.759
## 140   6839.836   975.8641 12703.808
## 141   5904.519    40.5104 11768.528
## 142   5436.861  -427.2653 11300.987
## 143  10113.445  4247.5267 15979.364
## 144   3566.227 -2299.0267  9431.481
## 145   5436.861  -427.2653 11300.987
## 146   4969.203  -895.1068 10833.512
## 147   4033.886 -1830.9876  9898.759
## 148  11048.762  5181.6948 16915.829
## 149   4501.544 -1363.0143 10366.103
## 150   1695.594 -4171.8417  7563.029
## 151  10581.104  4714.6436 16447.563
## 152   5904.519    40.5104 11768.528
## 153   7307.495  1443.4421 13171.547
## 154  10581.104  4714.6436 16447.563
## 155   5436.861  -427.2653 11300.987
## 156   5904.519    40.5104 11768.528
## 157   5904.519    40.5104 11768.528
## 158   5436.861  -427.2653 11300.987
## 159   8242.811  2378.4004 14107.223
## 160   4033.886 -1830.9876  9898.759
## 161   2163.252 -3703.5392  8030.043
## 162   4033.886 -1830.9876  9898.759
## 163   3566.227 -2299.0267  9431.481
## 164   6839.836   975.8641 12703.808
## 165   1695.594 -4171.8417  7563.029
## 166  11048.762  5181.6948 16915.829
## 167   7307.495  1443.4421 13171.547
## 168   6839.836   975.8641 12703.808
## 169   6839.836   975.8641 12703.808
## 170   4969.203  -895.1068 10833.512
## 171   4033.886 -1830.9876  9898.759
## 172   1695.594 -4171.8417  7563.029
## 173   7307.495  1443.4421 13171.547
## 174   6839.836   975.8641 12703.808
## 175   5436.861  -427.2653 11300.987
## 176  10113.445  4247.5267 15979.364
## 177   3098.569 -2767.1317  8964.270
## 178   1695.594 -4171.8417  7563.029
## 179  12451.737  6582.4537 18321.021
## 180   2163.252 -3703.5392  8030.043
## 181   4501.544 -1363.0143 10366.103
## 182   5436.861  -427.2653 11300.987
## 183   3098.569 -2767.1317  8964.270
## 184   3566.227 -2299.0267  9431.481
## 185   3566.227 -2299.0267  9431.481
## 186   4969.203  -895.1068 10833.512
## 187  11048.762  5181.6948 16915.829
## 188  18063.638 12179.5845 23947.692
## 189   5904.519    40.5104 11768.528
## 190  11048.762  5181.6948 16915.829
## 191  17128.321 11247.3838 23009.259
## 192   4501.544 -1363.0143 10366.103
## 193   4969.203  -895.1068 10833.512
## 194   4501.544 -1363.0143 10366.103
## 195  11516.420  5648.6802 17384.161
## 196   4969.203  -895.1068 10833.512
## 197   5904.519    40.5104 11768.528
## 198   6372.178   508.2202 12236.135
## 199   7775.153  1910.9542 13639.352
## 200   5436.861  -427.2653 11300.987
## 201   4033.886 -1830.9876  9898.759
## 202   4501.544 -1363.0143 10366.103
## 203   3566.227 -2299.0267  9431.481
## 204   8242.811  2378.4004 14107.223
## 205   9178.128  3313.0952 15043.161
## 206   5904.519    40.5104 11768.528
## 207   3098.569 -2767.1317  8964.270
## 208   4969.203  -895.1068 10833.512
## 209   3566.227 -2299.0267  9431.481
## 210   9178.128  3313.0952 15043.161
## 211   7775.153  1910.9542 13639.352
## 212   6839.836   975.8641 12703.808
## 213   4501.544 -1363.0143 10366.103
## 214   8710.470  2845.7808 14575.159
## 215   4969.203  -895.1068 10833.512
## 216   8710.470  2845.7808 14575.159
## 217   5436.861  -427.2653 11300.987
## 218   4501.544 -1363.0143 10366.103
## 219  11984.079  6115.5998 17852.558
## 220   8710.470  2845.7808 14575.159
## 221   8710.470  2845.7808 14575.159
## 222   4501.544 -1363.0143 10366.103
## 223   5904.519    40.5104 11768.528
## 224   9178.128  3313.0952 15043.161
## 225   4033.886 -1830.9876  9898.759
## 226   4501.544 -1363.0143 10366.103
## 227   7307.495  1443.4421 13171.547
## 228   6372.178   508.2202 12236.135
## 229   5904.519    40.5104 11768.528
## 230   3098.569 -2767.1317  8964.270
## 231   4033.886 -1830.9876  9898.759
## 232  11516.420  5648.6802 17384.161
## 233   4501.544 -1363.0143 10366.103
## 234  16193.004 10314.9217 22071.087
## 235   4969.203  -895.1068 10833.512
## 236  11516.420  5648.6802 17384.161
## 237   7307.495  1443.4421 13171.547
## 238  16660.663 10781.1854 22540.140
## 239   4033.886 -1830.9876  9898.759
## 240   3098.569 -2767.1317  8964.270
## 241   4501.544 -1363.0143 10366.103
## 242   3098.569 -2767.1317  8964.270
## 243   9178.128  3313.0952 15043.161
## 244   5436.861  -427.2653 11300.987
## 245  12919.396  7049.2418 18789.549
## 246   5436.861  -427.2653 11300.987
## 247   2163.252 -3703.5392  8030.043
## 248   7307.495  1443.4421 13171.547
## 249   9178.128  3313.0952 15043.161
## 250   5436.861  -427.2653 11300.987
## 251   9178.128  3313.0952 15043.161
## 252  10581.104  4714.6436 16447.563
## 253   4033.886 -1830.9876  9898.759
## 254   5904.519    40.5104 11768.528
## 255   5904.519    40.5104 11768.528
## 256   3566.227 -2299.0267  9431.481
## 257   5904.519    40.5104 11768.528
## 258  11516.420  5648.6802 17384.161
## 259   1695.594 -4171.8417  7563.029
## 260   4033.886 -1830.9876  9898.759
## 261   3566.227 -2299.0267  9431.481
## 262   7307.495  1443.4421 13171.547
## 263   5436.861  -427.2653 11300.987
## 264  14322.371  8449.2123 20195.529
## 265   3566.227 -2299.0267  9431.481
## 266   5904.519    40.5104 11768.528
## 267   5904.519    40.5104 11768.528
## 268   4033.886 -1830.9876  9898.759
## 269  11048.762  5181.6948 16915.829
## 270   8710.470  2845.7808 14575.159
## 271  18531.297 12645.5870 24417.006
## 272   5904.519    40.5104 11768.528
## 273   3566.227 -2299.0267  9431.481
## 274   4501.544 -1363.0143 10366.103
## 275   2630.911 -3235.3026  8497.124
## 276   8242.811  2378.4004 14107.223
## 277   5904.519    40.5104 11768.528
## 278   4969.203  -895.1068 10833.512
## 279   4033.886 -1830.9876  9898.759
## 280  14322.371  8449.2123 20195.529
## 281  11048.762  5181.6948 16915.829
## 282  10581.104  4714.6436 16447.563
## 283   5904.519    40.5104 11768.528
## 284   6839.836   975.8641 12703.808
## 285   3566.227 -2299.0267  9431.481
## 286   9178.128  3313.0952 15043.161
## 287  10113.445  4247.5267 15979.364
## 288   5904.519    40.5104 11768.528
## 289   3566.227 -2299.0267  9431.481
## 290   3566.227 -2299.0267  9431.481
## 291  11516.420  5648.6802 17384.161
## 292   5904.519    40.5104 11768.528
## 293   2163.252 -3703.5392  8030.043
## 294   4969.203  -895.1068 10833.512
## 295   3098.569 -2767.1317  8964.270
## 296  11984.079  6115.5998 17852.558
## 297   1227.935 -4640.2099  7096.080
## 298   6839.836   975.8641 12703.808
## 299   3098.569 -2767.1317  8964.270
## 300   7307.495  1443.4421 13171.547
## 301  11516.420  5648.6802 17384.161
## 302   1227.935 -4640.2099  7096.080
## 303   5436.861  -427.2653 11300.987
## 304   5904.519    40.5104 11768.528
## 305  10113.445  4247.5267 15979.364
## 306   6372.178   508.2202 12236.135
## 307   7307.495  1443.4421 13171.547
## 308  10113.445  4247.5267 15979.364
## 309   6839.836   975.8641 12703.808
## 310   4033.886 -1830.9876  9898.759
## 311   5436.861  -427.2653 11300.987
## 312  12451.737  6582.4537 18321.021
## 313   2630.911 -3235.3026  8497.124
## 314   6839.836   975.8641 12703.808
## 315  11048.762  5181.6948 16915.829
## 316   5436.861  -427.2653 11300.987
## 317  12919.396  7049.2418 18789.549
## 318   6372.178   508.2202 12236.135
## 319   3098.569 -2767.1317  8964.270
## 320   7307.495  1443.4421 13171.547
## 321   3566.227 -2299.0267  9431.481
## 322   7307.495  1443.4421 13171.547
## 323   5904.519    40.5104 11768.528
## 324   3566.227 -2299.0267  9431.481
## 325   6372.178   508.2202 12236.135
## 326   5904.519    40.5104 11768.528
## 327  11048.762  5181.6948 16915.829
## 328   6839.836   975.8641 12703.808
## 329   5436.861  -427.2653 11300.987
## 330  11048.762  5181.6948 16915.829
## 331   5436.861  -427.2653 11300.987
## 332   4033.886 -1830.9876  9898.759
## 333  10581.104  4714.6436 16447.563
## 334   5904.519    40.5104 11768.528
## 335   6839.836   975.8641 12703.808
## 336   4033.886 -1830.9876  9898.759
## 337   4501.544 -1363.0143 10366.103
## 338   3098.569 -2767.1317  8964.270
## 339   5904.519    40.5104 11768.528
## 340   4969.203  -895.1068 10833.512
## 341   4969.203  -895.1068 10833.512
## 342   6839.836   975.8641 12703.808
## 343   6372.178   508.2202 12236.135
## 344   4501.544 -1363.0143 10366.103
## 345   9178.128  3313.0952 15043.161
## 346   3098.569 -2767.1317  8964.270
## 347   4969.203  -895.1068 10833.512
## 348   3566.227 -2299.0267  9431.481
## 349   8710.470  2845.7808 14575.159
## 350   3098.569 -2767.1317  8964.270
## 351   3098.569 -2767.1317  8964.270
## 352   4969.203  -895.1068 10833.512
## 353   8242.811  2378.4004 14107.223
## 354   7307.495  1443.4421 13171.547
## 355   3098.569 -2767.1317  8964.270
## 356   4969.203  -895.1068 10833.512
## 357   7775.153  1910.9542 13639.352
## 358   2630.911 -3235.3026  8497.124
## 359   4501.544 -1363.0143 10366.103
## 360   8710.470  2845.7808 14575.159
## 361   8242.811  2378.4004 14107.223
## 362   5904.519    40.5104 11768.528
## 363   2630.911 -3235.3026  8497.124
## 364   1695.594 -4171.8417  7563.029
## 365   9178.128  3313.0952 15043.161
## 366   4501.544 -1363.0143 10366.103
## 367   4969.203  -895.1068 10833.512
## 368  10581.104  4714.6436 16447.563
## 369   4969.203  -895.1068 10833.512
## 370   2630.911 -3235.3026  8497.124
## 371   1695.594 -4171.8417  7563.029
## 372   4033.886 -1830.9876  9898.759
## 373   5904.519    40.5104 11768.528
## 374   3566.227 -2299.0267  9431.481
## 375   4501.544 -1363.0143 10366.103
## 376  13387.054  7515.9643 19258.144
## 377   9645.787  3780.3439 15511.230
## 378   4033.886 -1830.9876  9898.759
## 379   5436.861  -427.2653 11300.987
## 380  15257.688  9382.1980 21133.177
## 381   3566.227 -2299.0267  9431.481
## 382   1695.594 -4171.8417  7563.029
## 383   4501.544 -1363.0143 10366.103
## 384   2163.252 -3703.5392  8030.043
## 385   5904.519    40.5104 11768.528
## 386   2630.911 -3235.3026  8497.124
## 387   9645.787  3780.3439 15511.230
## 388   4969.203  -895.1068 10833.512
## 389   4969.203  -895.1068 10833.512
## 390   9645.787  3780.3439 15511.230
## 391  12919.396  7049.2418 18789.549
## 392  10581.104  4714.6436 16447.563
## 393  12451.737  6582.4537 18321.021
## 394   4033.886 -1830.9876  9898.759
## 395   7307.495  1443.4421 13171.547
## 396   4969.203  -895.1068 10833.512
## 397   4969.203  -895.1068 10833.512
## 398   3566.227 -2299.0267  9431.481
## 399   8242.811  2378.4004 14107.223
## 400   3098.569 -2767.1317  8964.270
## 401  11048.762  5181.6948 16915.829
## 402  18063.638 12179.5845 23947.692
## 403   4033.886 -1830.9876  9898.759
## 404   5904.519    40.5104 11768.528
## 405   5904.519    40.5104 11768.528
## 406   4033.886 -1830.9876  9898.759
## 407  14322.371  8449.2123 20195.529
## 408   4969.203  -895.1068 10833.512
## 409  15725.346  9848.5926 21602.099
## 410  10113.445  4247.5267 15979.364
## 411   6372.178   508.2202 12236.135
## 412  16660.663 10781.1854 22540.140
## 413  10113.445  4247.5267 15979.364
## 414   4501.544 -1363.0143 10366.103
## 415   4033.886 -1830.9876  9898.759
## 416   2630.911 -3235.3026  8497.124
## 417   1695.594 -4171.8417  7563.029
## 418  11048.762  5181.6948 16915.829
## 419   2630.911 -3235.3026  8497.124
## 420   5436.861  -427.2653 11300.987
## 421   5904.519    40.5104 11768.528
## 422   4033.886 -1830.9876  9898.759
## 423   1695.594 -4171.8417  7563.029
## 424   5904.519    40.5104 11768.528
## 425  16193.004 10314.9217 22071.087
## 426  14322.371  8449.2123 20195.529
## 427   6839.836   975.8641 12703.808
## 428  11516.420  5648.6802 17384.161
## 429  10581.104  4714.6436 16447.563
## 430  13387.054  7515.9643 19258.144
## 431   4033.886 -1830.9876  9898.759
## 432  10113.445  4247.5267 15979.364
## 433   7775.153  1910.9542 13639.352
## 434   8242.811  2378.4004 14107.223
## 435   7307.495  1443.4421 13171.547
## 436   8242.811  2378.4004 14107.223
## 437   4969.203  -895.1068 10833.512
## 438   3098.569 -2767.1317  8964.270
## 439   5904.519    40.5104 11768.528
## 440   6839.836   975.8641 12703.808
## 441   6372.178   508.2202 12236.135
## 442   4969.203  -895.1068 10833.512
## 443   5904.519    40.5104 11768.528
## 444   3098.569 -2767.1317  8964.270
## 445   7775.153  1910.9542 13639.352
## 446  18531.297 12645.5870 24417.006
## 447   8710.470  2845.7808 14575.159
## 448   8242.811  2378.4004 14107.223
## 449  11516.420  5648.6802 17384.161
## 450   4969.203  -895.1068 10833.512
## 451   5904.519    40.5104 11768.528
## 452   5904.519    40.5104 11768.528
## 453   5436.861  -427.2653 11300.987
## 454   4969.203  -895.1068 10833.512
## 455   4969.203  -895.1068 10833.512
## 456   5904.519    40.5104 11768.528
## 457   5904.519    40.5104 11768.528
## 458   1227.935 -4640.2099  7096.080
## 459  10581.104  4714.6436 16447.563
## 460   5904.519    40.5104 11768.528
## 461   4969.203  -895.1068 10833.512
## 462   3566.227 -2299.0267  9431.481
## 463   5904.519    40.5104 11768.528
## 464   1695.594 -4171.8417  7563.029
## 465   6839.836   975.8641 12703.808
## 466  14322.371  8449.2123 20195.529
## 467  11516.420  5648.6802 17384.161
## 468   5436.861  -427.2653 11300.987
## 469   9645.787  3780.3439 15511.230
## 470   4033.886 -1830.9876  9898.759
## 471   2630.911 -3235.3026  8497.124
## 472   9645.787  3780.3439 15511.230
## 473   4969.203  -895.1068 10833.512
## 474  15725.346  9848.5926 21602.099
## 475   4033.886 -1830.9876  9898.759
## 476   4033.886 -1830.9876  9898.759
## 477   1695.594 -4171.8417  7563.029
## 478  16193.004 10314.9217 22071.087
## 479   4501.544 -1363.0143 10366.103
## 480   4033.886 -1830.9876  9898.759
## 481   1695.594 -4171.8417  7563.029
## 482   4033.886 -1830.9876  9898.759
## 483   5436.861  -427.2653 11300.987
## 484   5436.861  -427.2653 11300.987
## 485   7307.495  1443.4421 13171.547
## 486   4033.886 -1830.9876  9898.759
## 487   9178.128  3313.0952 15043.161
## 488   1695.594 -4171.8417  7563.029
## 489   5904.519    40.5104 11768.528
## 490  11048.762  5181.6948 16915.829
## 491   4969.203  -895.1068 10833.512
## 492   5904.519    40.5104 11768.528
## 493  11048.762  5181.6948 16915.829
## 494   5904.519    40.5104 11768.528
## 495   4969.203  -895.1068 10833.512
## 496   3566.227 -2299.0267  9431.481
## 497   2630.911 -3235.3026  8497.124
## 498  13387.054  7515.9643 19258.144
## 499   2630.911 -3235.3026  8497.124
## 500   4033.886 -1830.9876  9898.759
## 501   4033.886 -1830.9876  9898.759
## 502   1695.594 -4171.8417  7563.029
## 503   9645.787  3780.3439 15511.230
## 504   5904.519    40.5104 11768.528
## 505   3566.227 -2299.0267  9431.481
## 506   2630.911 -3235.3026  8497.124
## 507   5904.519    40.5104 11768.528
## 508   4033.886 -1830.9876  9898.759
## 509   9178.128  3313.0952 15043.161
## 510   8242.811  2378.4004 14107.223
## 511   8710.470  2845.7808 14575.159
## 512   7307.495  1443.4421 13171.547
## 513   3566.227 -2299.0267  9431.481
## 514   1695.594 -4171.8417  7563.029
## 515   5904.519    40.5104 11768.528
## 516   1695.594 -4171.8417  7563.029
## 517   3566.227 -2299.0267  9431.481
## 518   3098.569 -2767.1317  8964.270
## 519   4969.203  -895.1068 10833.512
## 520   5904.519    40.5104 11768.528
## 521   6839.836   975.8641 12703.808
## 522   4033.886 -1830.9876  9898.759
## 523   3098.569 -2767.1317  8964.270
## 524  10581.104  4714.6436 16447.563
## 525   5436.861  -427.2653 11300.987
## 526   3098.569 -2767.1317  8964.270
## 527  10581.104  4714.6436 16447.563
## 528   5904.519    40.5104 11768.528
## 529   9645.787  3780.3439 15511.230
## 530   5904.519    40.5104 11768.528
## 531   5436.861  -427.2653 11300.987
## 532   5904.519    40.5104 11768.528
## 533  10581.104  4714.6436 16447.563
## 534  10581.104  4714.6436 16447.563
## 535  16193.004 10314.9217 22071.087
## 536  11984.079  6115.5998 17852.558
## 537   5904.519    40.5104 11768.528
## 538   5436.861  -427.2653 11300.987
## 539  11516.420  5648.6802 17384.161
## 540   3098.569 -2767.1317  8964.270
## 541   5904.519    40.5104 11768.528
## 542   5904.519    40.5104 11768.528
## 543   5904.519    40.5104 11768.528
## 544   5436.861  -427.2653 11300.987
## 545  14322.371  8449.2123 20195.529
## 546   5904.519    40.5104 11768.528
## 547   1695.594 -4171.8417  7563.029
## 548   4501.544 -1363.0143 10366.103
## 549   4501.544 -1363.0143 10366.103
## 550   5904.519    40.5104 11768.528
## 551   3566.227 -2299.0267  9431.481
## 552   6839.836   975.8641 12703.808
## 553  15257.688  9382.1980 21133.177
## 554   3566.227 -2299.0267  9431.481
## 555   5436.861  -427.2653 11300.987
## 556   2163.252 -3703.5392  8030.043
## 557  10113.445  4247.5267 15979.364
## 558   8710.470  2845.7808 14575.159
## 559   5904.519    40.5104 11768.528
## 560   4033.886 -1830.9876  9898.759
## 561   4501.544 -1363.0143 10366.103
## 562  17128.321 11247.3838 23009.259
## 563   5904.519    40.5104 11768.528
## 564   4033.886 -1830.9876  9898.759
## 565   5436.861  -427.2653 11300.987
## 566   2163.252 -3703.5392  8030.043
## 567   4969.203  -895.1068 10833.512
## 568   4033.886 -1830.9876  9898.759
## 569  12451.737  6582.4537 18321.021
## 570   5904.519    40.5104 11768.528
## 571   3566.227 -2299.0267  9431.481
## 572   3566.227 -2299.0267  9431.481
## 573   6372.178   508.2202 12236.135
## 574   4033.886 -1830.9876  9898.759
## 575   5904.519    40.5104 11768.528
## 576   5436.861  -427.2653 11300.987
## 577   3566.227 -2299.0267  9431.481
## 578   4033.886 -1830.9876  9898.759
## 579   9178.128  3313.0952 15043.161
## 580   4033.886 -1830.9876  9898.759
## 581   2630.911 -3235.3026  8497.124
## 582   4501.544 -1363.0143 10366.103
## 583   4969.203  -895.1068 10833.512
## 584   4033.886 -1830.9876  9898.759
## 585  12451.737  6582.4537 18321.021
## 586   1695.594 -4171.8417  7563.029
## 587   1695.594 -4171.8417  7563.029
## 588   5436.861  -427.2653 11300.987
## 589  15257.688  9382.1980 21133.177
## 590   1695.594 -4171.8417  7563.029
## 591   7775.153  1910.9542 13639.352
## 592   4033.886 -1830.9876  9898.759
## 593  13387.054  7515.9643 19258.144
## 594   5904.519    40.5104 11768.528
## 595   5904.519    40.5104 11768.528
## 596  19934.272 14043.2038 25825.340
## 597   4501.544 -1363.0143 10366.103
## 598   4969.203  -895.1068 10833.512
## 599   3566.227 -2299.0267  9431.481
## 600   4969.203  -895.1068 10833.512
## 601   7775.153  1910.9542 13639.352
## 602   5904.519    40.5104 11768.528
## 603   6839.836   975.8641 12703.808
## 604   1695.594 -4171.8417  7563.029
## 605   5904.519    40.5104 11768.528
## 606   7307.495  1443.4421 13171.547
## 607   4033.886 -1830.9876  9898.759
## 608   5436.861  -427.2653 11300.987
## 609   6839.836   975.8641 12703.808
## 610  11516.420  5648.6802 17384.161
## 611   5436.861  -427.2653 11300.987
## 612   9178.128  3313.0952 15043.161
## 613   4969.203  -895.1068 10833.512
## 614   3098.569 -2767.1317  8964.270
## 615   4969.203  -895.1068 10833.512
## 616   1227.935 -4640.2099  7096.080
## 617  14790.029  8915.7379 20664.321
## 618   5904.519    40.5104 11768.528
## 619   4033.886 -1830.9876  9898.759
## 620   5436.861  -427.2653 11300.987
## 621   4033.886 -1830.9876  9898.759
## 622   9645.787  3780.3439 15511.230
## 623   4969.203  -895.1068 10833.512
## 624   5904.519    40.5104 11768.528
## 625  17595.980 11713.5168 23478.443
## 626   9645.787  3780.3439 15511.230
## 627   5436.861  -427.2653 11300.987
## 628  15725.346  9848.5926 21602.099
## 629   5436.861  -427.2653 11300.987
## 630   4033.886 -1830.9876  9898.759
## 631   3098.569 -2767.1317  8964.270
## 632   5904.519    40.5104 11768.528
## 633   4969.203  -895.1068 10833.512
## 634   4033.886 -1830.9876  9898.759
## 635   3566.227 -2299.0267  9431.481
## 636   9178.128  3313.0952 15043.161
## 637   5904.519    40.5104 11768.528
## 638   3098.569 -2767.1317  8964.270
## 639   3566.227 -2299.0267  9431.481
## 640   4501.544 -1363.0143 10366.103
## 641   4033.886 -1830.9876  9898.759
## 642   5904.519    40.5104 11768.528
## 643   2630.911 -3235.3026  8497.124
## 644   9178.128  3313.0952 15043.161
## 645   4969.203  -895.1068 10833.512
## 646   3566.227 -2299.0267  9431.481
## 647  14322.371  8449.2123 20195.529
## 648   8710.470  2845.7808 14575.159
## 649   5904.519    40.5104 11768.528
## 650  16660.663 10781.1854 22540.140
## 651   6839.836   975.8641 12703.808
## 652   4969.203  -895.1068 10833.512
## 653   5904.519    40.5104 11768.528
## 654  15725.346  9848.5926 21602.099
## 655   7307.495  1443.4421 13171.547
## 656   4501.544 -1363.0143 10366.103
## 657   1695.594 -4171.8417  7563.029
## 658   4969.203  -895.1068 10833.512
## 659   4969.203  -895.1068 10833.512
## 660   3098.569 -2767.1317  8964.270
## 661   2630.911 -3235.3026  8497.124
## 662   3098.569 -2767.1317  8964.270
## 663   2163.252 -3703.5392  8030.043
## 664   1695.594 -4171.8417  7563.029
## 665   9178.128  3313.0952 15043.161
## 666   2630.911 -3235.3026  8497.124
## 667   3098.569 -2767.1317  8964.270
## 668   5904.519    40.5104 11768.528
## 669   4033.886 -1830.9876  9898.759
## 670   4969.203  -895.1068 10833.512
## 671   1695.594 -4171.8417  7563.029
## 672   1695.594 -4171.8417  7563.029
## 673   5904.519    40.5104 11768.528
## 674   4033.886 -1830.9876  9898.759
## 675  12451.737  6582.4537 18321.021
## 676   7307.495  1443.4421 13171.547
## 677   5904.519    40.5104 11768.528
## 678  14790.029  8915.7379 20664.321
## 679   7307.495  1443.4421 13171.547
## 680   5436.861  -427.2653 11300.987
## 681   4969.203  -895.1068 10833.512
## 682   8242.811  2378.4004 14107.223
## 683   3566.227 -2299.0267  9431.481
## 684   1695.594 -4171.8417  7563.029
## 685   6372.178   508.2202 12236.135
## 686   4501.544 -1363.0143 10366.103
## 687  10581.104  4714.6436 16447.563
## 688   8710.470  2845.7808 14575.159
## 689   1695.594 -4171.8417  7563.029
## 690   1695.594 -4171.8417  7563.029
## 691   5904.519    40.5104 11768.528
## 692   2630.911 -3235.3026  8497.124
## 693   4969.203  -895.1068 10833.512
## 694   8710.470  2845.7808 14575.159
## 695   4033.886 -1830.9876  9898.759
## 696   9178.128  3313.0952 15043.161
## 697   5436.861  -427.2653 11300.987
## 698   2630.911 -3235.3026  8497.124
## 699   3566.227 -2299.0267  9431.481
## 700  13387.054  7515.9643 19258.144
## 701   4501.544 -1363.0143 10366.103
## 702  11516.420  5648.6802 17384.161
## 703   5904.519    40.5104 11768.528
## 704   4033.886 -1830.9876  9898.759
## 705   6839.836   975.8641 12703.808
## 706   5436.861  -427.2653 11300.987
## 707  11516.420  5648.6802 17384.161
## 708  10581.104  4714.6436 16447.563
## 709   6839.836   975.8641 12703.808
## 710   3098.569 -2767.1317  8964.270
## 711   5904.519    40.5104 11768.528
## 712   2630.911 -3235.3026  8497.124
## 713   3566.227 -2299.0267  9431.481
## 714   4969.203  -895.1068 10833.512
## 715  16193.004 10314.9217 22071.087
## 716   4033.886 -1830.9876  9898.759
## 717  11048.762  5181.6948 16915.829
## 718   3098.569 -2767.1317  8964.270
## 719   5436.861  -427.2653 11300.987
## 720   5436.861  -427.2653 11300.987
## 721   4501.544 -1363.0143 10366.103
## 722  11516.420  5648.6802 17384.161
## 723   2630.911 -3235.3026  8497.124
## 724   7307.495  1443.4421 13171.547
## 725   3566.227 -2299.0267  9431.481
## 726   3566.227 -2299.0267  9431.481
## 727   3098.569 -2767.1317  8964.270
## 728   1227.935 -4640.2099  7096.080
## 729  11516.420  5648.6802 17384.161
## 730   8710.470  2845.7808 14575.159
## 731   5436.861  -427.2653 11300.987
## 732   1695.594 -4171.8417  7563.029
## 733   3098.569 -2767.1317  8964.270
## 734   4969.203  -895.1068 10833.512
## 735   3098.569 -2767.1317  8964.270
## 736  10113.445  4247.5267 15979.364
## 737  13854.712  7982.6211 19726.804
## 738   4969.203  -895.1068 10833.512
## 739  11048.762  5181.6948 16915.829
## 740   3098.569 -2767.1317  8964.270
## 741   2630.911 -3235.3026  8497.124
## 742  11048.762  5181.6948 16915.829
## 743   4969.203  -895.1068 10833.512
## 744  15257.688  9382.1980 21133.177
## 745   8242.811  2378.4004 14107.223
## 746   9178.128  3313.0952 15043.161
## 747  11048.762  5181.6948 16915.829
## 748  10113.445  4247.5267 15979.364
## 749   4501.544 -1363.0143 10366.103
## 750  16660.663 10781.1854 22540.140
## 751  11984.079  6115.5998 17852.558
## 752  10113.445  4247.5267 15979.364
## 753   9645.787  3780.3439 15511.230
## 754  11048.762  5181.6948 16915.829
## 755   2630.911 -3235.3026  8497.124
## 756  13387.054  7515.9643 19258.144
## 757   5904.519    40.5104 11768.528
## 758   8710.470  2845.7808 14575.159
## 759   7775.153  1910.9542 13639.352
## 760   4033.886 -1830.9876  9898.759
## 761  15257.688  9382.1980 21133.177
## 762   5436.861  -427.2653 11300.987
## 763   4033.886 -1830.9876  9898.759
## 764   1695.594 -4171.8417  7563.029
## 765   1695.594 -4171.8417  7563.029
## 766   4969.203  -895.1068 10833.512
## 767  14790.029  8915.7379 20664.321
## 768   4969.203  -895.1068 10833.512
## 769   4969.203  -895.1068 10833.512
## 770   3566.227 -2299.0267  9431.481
## 771  11984.079  6115.5998 17852.558
## 772   7307.495  1443.4421 13171.547
## 773   9645.787  3780.3439 15511.230
## 774   8242.811  2378.4004 14107.223
## 775  15725.346  9848.5926 21602.099
## 776   9645.787  3780.3439 15511.230
## 777   2163.252 -3703.5392  8030.043
## 778   1695.594 -4171.8417  7563.029
## 779  10113.445  4247.5267 15979.364
## 780   9645.787  3780.3439 15511.230
## 781   5904.519    40.5104 11768.528
## 782   4033.886 -1830.9876  9898.759
## 783   4501.544 -1363.0143 10366.103
## 784   5904.519    40.5104 11768.528
## 785  10581.104  4714.6436 16447.563
## 786   7775.153  1910.9542 13639.352
## 787   2630.911 -3235.3026  8497.124
## 788  11984.079  6115.5998 17852.558
## 789   5904.519    40.5104 11768.528
## 790  12451.737  6582.4537 18321.021
## 791   5436.861  -427.2653 11300.987
## 792   5436.861  -427.2653 11300.987
## 793   7775.153  1910.9542 13639.352
## 794   3098.569 -2767.1317  8964.270
## 795   4501.544 -1363.0143 10366.103
## 796   4969.203  -895.1068 10833.512
## 797   4501.544 -1363.0143 10366.103
## 798   1695.594 -4171.8417  7563.029
## 799   3566.227 -2299.0267  9431.481
## 800  11984.079  6115.5998 17852.558
## 801   1695.594 -4171.8417  7563.029
## 802   3566.227 -2299.0267  9431.481
## 803   3098.569 -2767.1317  8964.270
## 804   4033.886 -1830.9876  9898.759
## 805  13854.712  7982.6211 19726.804
## 806   8242.811  2378.4004 14107.223
## 807   9645.787  3780.3439 15511.230
## 808   5436.861  -427.2653 11300.987
## 809   6372.178   508.2202 12236.135
## 810   5904.519    40.5104 11768.528
## 811  11984.079  6115.5998 17852.558
## 812   5904.519    40.5104 11768.528
## 813   9645.787  3780.3439 15511.230
## 814  11048.762  5181.6948 16915.829
## 815  11048.762  5181.6948 16915.829
## 816   2163.252 -3703.5392  8030.043
## 817   5436.861  -427.2653 11300.987
## 818   9645.787  3780.3439 15511.230
## 819   2630.911 -3235.3026  8497.124
## 820   4033.886 -1830.9876  9898.759
## 821   3566.227 -2299.0267  9431.481
## 822  11516.420  5648.6802 17384.161
## 823   3566.227 -2299.0267  9431.481
## 824   4969.203  -895.1068 10833.512
## 825   8710.470  2845.7808 14575.159
## 826   5904.519    40.5104 11768.528
## 827   4501.544 -1363.0143 10366.103
## 828   2630.911 -3235.3026  8497.124
## 829   1227.935 -4640.2099  7096.080
## 830   4033.886 -1830.9876  9898.759
## 831   4033.886 -1830.9876  9898.759
## 832   2163.252 -3703.5392  8030.043
## 833   5436.861  -427.2653 11300.987
## 834   3098.569 -2767.1317  8964.270
## 835   4033.886 -1830.9876  9898.759
## 836   4033.886 -1830.9876  9898.759
## 837   6372.178   508.2202 12236.135
## 838  10581.104  4714.6436 16447.563
## 839  11516.420  5648.6802 17384.161
## 840   5436.861  -427.2653 11300.987
## 841   5904.519    40.5104 11768.528
## 842   4033.886 -1830.9876  9898.759
## 843   1695.594 -4171.8417  7563.029
## 844   4969.203  -895.1068 10833.512
## 845   5904.519    40.5104 11768.528
## 846   8710.470  2845.7808 14575.159
## 847   8242.811  2378.4004 14107.223
## 848   7775.153  1910.9542 13639.352
## 849   2163.252 -3703.5392  8030.043
## 850   4501.544 -1363.0143 10366.103
## 851   1695.594 -4171.8417  7563.029
## 852  14322.371  8449.2123 20195.529
## 853   5904.519    40.5104 11768.528
## 854   1695.594 -4171.8417  7563.029
## 855   4501.544 -1363.0143 10366.103
## 856   7775.153  1910.9542 13639.352
## 857   2163.252 -3703.5392  8030.043
## 858   4033.886 -1830.9876  9898.759
## 859  13387.054  7515.9643 19258.144
## 860   4033.886 -1830.9876  9898.759
## 861   1695.594 -4171.8417  7563.029
## 862  14322.371  8449.2123 20195.529
## 863   4033.886 -1830.9876  9898.759
## 864   3566.227 -2299.0267  9431.481
## 865   3566.227 -2299.0267  9431.481
## 866   4969.203  -895.1068 10833.512
## 867   3566.227 -2299.0267  9431.481
## 868  16193.004 10314.9217 22071.087
## 869   4033.886 -1830.9876  9898.759
## 870  12919.396  7049.2418 18789.549
## 871   8242.811  2378.4004 14107.223
## 872   1695.594 -4171.8417  7563.029
## 873   5904.519    40.5104 11768.528
## 874   4501.544 -1363.0143 10366.103
## 875   5904.519    40.5104 11768.528
## 876  10581.104  4714.6436 16447.563
## 877   2163.252 -3703.5392  8030.043
## 878   6839.836   975.8641 12703.808
## 879   5904.519    40.5104 11768.528
## 880   6839.836   975.8641 12703.808
## 881   2163.252 -3703.5392  8030.043
## 882   5904.519    40.5104 11768.528
## 883   9178.128  3313.0952 15043.161
## 884   8242.811  2378.4004 14107.223
## 885   4501.544 -1363.0143 10366.103
## 886   3566.227 -2299.0267  9431.481
## 887   6839.836   975.8641 12703.808
## 888  10581.104  4714.6436 16447.563
## 889   8710.470  2845.7808 14575.159
## 890   5436.861  -427.2653 11300.987
## 891  16660.663 10781.1854 22540.140
## 892   5904.519    40.5104 11768.528
## 893   1695.594 -4171.8417  7563.029
## 894   2630.911 -3235.3026  8497.124
## 895  18063.638 12179.5845 23947.692
## 896   4033.886 -1830.9876  9898.759
## 897   5904.519    40.5104 11768.528
## 898   7307.495  1443.4421 13171.547
## 899  12919.396  7049.2418 18789.549
## 900  11984.079  6115.5998 17852.558
## 901   6839.836   975.8641 12703.808
## 902   4501.544 -1363.0143 10366.103
## 903   3566.227 -2299.0267  9431.481
## 904   4033.886 -1830.9876  9898.759
## 905  12919.396  7049.2418 18789.549
## 906   5436.861  -427.2653 11300.987
## 907   2163.252 -3703.5392  8030.043
## 908  13387.054  7515.9643 19258.144
## 909   5904.519    40.5104 11768.528
## 910   1695.594 -4171.8417  7563.029
## 911   1695.594 -4171.8417  7563.029
## 912   1695.594 -4171.8417  7563.029
## 913   4969.203  -895.1068 10833.512
## 914  13387.054  7515.9643 19258.144
## 915  17128.321 11247.3838 23009.259
## 916   2163.252 -3703.5392  8030.043
## 917  13387.054  7515.9643 19258.144
## 918   3098.569 -2767.1317  8964.270
## 919  15725.346  9848.5926 21602.099
## 920  12919.396  7049.2418 18789.549
## 921   8242.811  2378.4004 14107.223
## 922   3566.227 -2299.0267  9431.481
## 923  13387.054  7515.9643 19258.144
## 924   7775.153  1910.9542 13639.352
## 925   3098.569 -2767.1317  8964.270
## 926   9645.787  3780.3439 15511.230
## 927  11984.079  6115.5998 17852.558
## 928   9645.787  3780.3439 15511.230
## 929   5904.519    40.5104 11768.528
## 930   2163.252 -3703.5392  8030.043
## 931   4969.203  -895.1068 10833.512
## 932   5904.519    40.5104 11768.528
## 933   5904.519    40.5104 11768.528
## 934   3566.227 -2299.0267  9431.481
## 935   2163.252 -3703.5392  8030.043
## 936   5904.519    40.5104 11768.528
## 937  11516.420  5648.6802 17384.161
## 938  11048.762  5181.6948 16915.829
## 939   2163.252 -3703.5392  8030.043
## 940   5904.519    40.5104 11768.528
## 941   4033.886 -1830.9876  9898.759
## 942   5904.519    40.5104 11768.528
## 943   5904.519    40.5104 11768.528
## 944   5904.519    40.5104 11768.528
## 945   5904.519    40.5104 11768.528
## 946  12919.396  7049.2418 18789.549
## 947   5436.861  -427.2653 11300.987
## 948   5904.519    40.5104 11768.528
## 949   5436.861  -427.2653 11300.987
## 950   5436.861  -427.2653 11300.987
## 951   5904.519    40.5104 11768.528
## 952  10113.445  4247.5267 15979.364
## 953   2630.911 -3235.3026  8497.124
## 954   5904.519    40.5104 11768.528
## 955  11048.762  5181.6948 16915.829
## 956  11984.079  6115.5998 17852.558
## 957  18063.638 12179.5845 23947.692
## 958   4033.886 -1830.9876  9898.759
## 959   5904.519    40.5104 11768.528
## 960   5436.861  -427.2653 11300.987
## 961   5904.519    40.5104 11768.528
## 962   5436.861  -427.2653 11300.987
## 963  16660.663 10781.1854 22540.140
## 964   6372.178   508.2202 12236.135
## 965   5904.519    40.5104 11768.528
## 966   4501.544 -1363.0143 10366.103
## 967  15725.346  9848.5926 21602.099
## 968   4501.544 -1363.0143 10366.103
## 969   9178.128  3313.0952 15043.161
## 970   6372.178   508.2202 12236.135
## 971   3566.227 -2299.0267  9431.481
## 972  14790.029  8915.7379 20664.321
## 973   1227.935 -4640.2099  7096.080
## 974   5904.519    40.5104 11768.528
## 975   4969.203  -895.1068 10833.512
## 976  12451.737  6582.4537 18321.021
## 977  16660.663 10781.1854 22540.140
## 978   3566.227 -2299.0267  9431.481
## 979   8242.811  2378.4004 14107.223
## 980   5904.519    40.5104 11768.528
## 981   2630.911 -3235.3026  8497.124
## 982   3566.227 -2299.0267  9431.481
## 983   3098.569 -2767.1317  8964.270
## 984   7775.153  1910.9542 13639.352
## 985   3566.227 -2299.0267  9431.481
## 986   5904.519    40.5104 11768.528
## 987   4969.203  -895.1068 10833.512
## 988   7775.153  1910.9542 13639.352
## 989   6839.836   975.8641 12703.808
## 990   4969.203  -895.1068 10833.512
## 991   4969.203  -895.1068 10833.512
## 992   3098.569 -2767.1317  8964.270
## 993   7307.495  1443.4421 13171.547
## 994   4033.886 -1830.9876  9898.759
## 995  12451.737  6582.4537 18321.021
## 996  10581.104  4714.6436 16447.563
## 997   4033.886 -1830.9876  9898.759
## 998   4969.203  -895.1068 10833.512
## 999   3566.227 -2299.0267  9431.481
## 1000 11048.762  5181.6948 16915.829
## 1001  6839.836   975.8641 12703.808
## 1002  4969.203  -895.1068 10833.512
## 1003  5904.519    40.5104 11768.528
## 1004  4501.544 -1363.0143 10366.103
## 1005  4969.203  -895.1068 10833.512
## 1006  5904.519    40.5104 11768.528
## 1007 10581.104  4714.6436 16447.563
## 1008  5436.861  -427.2653 11300.987
## 1009 14790.029  8915.7379 20664.321
## 1010 16193.004 10314.9217 22071.087
## 1011 15725.346  9848.5926 21602.099
## 1012  8242.811  2378.4004 14107.223
## 1013  1695.594 -4171.8417  7563.029
## 1014  4969.203  -895.1068 10833.512
## 1015  5436.861  -427.2653 11300.987
## 1016  5904.519    40.5104 11768.528
## 1017  1695.594 -4171.8417  7563.029
## 1018  4033.886 -1830.9876  9898.759
## 1019  5904.519    40.5104 11768.528
## 1020  6372.178   508.2202 12236.135
## 1021  9178.128  3313.0952 15043.161
## 1022  4033.886 -1830.9876  9898.759
## 1023  4501.544 -1363.0143 10366.103
## 1024  3566.227 -2299.0267  9431.481
## 1025 13387.054  7515.9643 19258.144
## 1026  3566.227 -2299.0267  9431.481
## 1027  4501.544 -1363.0143 10366.103
## 1028  4501.544 -1363.0143 10366.103
## 1029  4501.544 -1363.0143 10366.103
## 1030  6372.178   508.2202 12236.135
## 1031  7307.495  1443.4421 13171.547
## 1032 14322.371  8449.2123 20195.529
## 1033  6372.178   508.2202 12236.135
## 1034  5904.519    40.5104 11768.528
## 1035 12451.737  6582.4537 18321.021
## 1036  4969.203  -895.1068 10833.512
## 1037  4501.544 -1363.0143 10366.103
## 1038  5904.519    40.5104 11768.528
## 1039  8242.811  2378.4004 14107.223
## 1040  2163.252 -3703.5392  8030.043
## 1041  8710.470  2845.7808 14575.159
## 1042  4033.886 -1830.9876  9898.759
## 1043  4501.544 -1363.0143 10366.103
## 1044 17595.980 11713.5168 23478.443
## 1045 10581.104  4714.6436 16447.563
## 1046  4969.203  -895.1068 10833.512
## 1047  4033.886 -1830.9876  9898.759
## 1048  3566.227 -2299.0267  9431.481
## 1049  8242.811  2378.4004 14107.223
## 1050  3098.569 -2767.1317  8964.270
## 1051  6839.836   975.8641 12703.808
## 1052  6372.178   508.2202 12236.135
## 1053  1695.594 -4171.8417  7563.029
## 1054  7307.495  1443.4421 13171.547
## 1055 14790.029  8915.7379 20664.321
## 1056  8710.470  2845.7808 14575.159
## 1057  3566.227 -2299.0267  9431.481
## 1058  4501.544 -1363.0143 10366.103
## 1059  8710.470  2845.7808 14575.159
## 1060  1695.594 -4171.8417  7563.029
## 1061  3098.569 -2767.1317  8964.270
## 1062  1695.594 -4171.8417  7563.029
## 1063  8710.470  2845.7808 14575.159
## 1064  5904.519    40.5104 11768.528
## 1065  4033.886 -1830.9876  9898.759
## 1066  3098.569 -2767.1317  8964.270
## 1067  4969.203  -895.1068 10833.512
## 1068  6372.178   508.2202 12236.135
## 1069  4969.203  -895.1068 10833.512
## 1070  1695.594 -4171.8417  7563.029
## 1071  3566.227 -2299.0267  9431.481
## 1072  5904.519    40.5104 11768.528
## 1073  3098.569 -2767.1317  8964.270
## 1074  4969.203  -895.1068 10833.512
## 1075  7775.153  1910.9542 13639.352
## 1076  5904.519    40.5104 11768.528
## 1077 13387.054  7515.9643 19258.144
## 1078  6372.178   508.2202 12236.135
## 1079 12451.737  6582.4537 18321.021
## 1080  5436.861  -427.2653 11300.987
## 1081 11984.079  6115.5998 17852.558
## 1082  6372.178   508.2202 12236.135
## 1083  3566.227 -2299.0267  9431.481
## 1084  8242.811  2378.4004 14107.223
## 1085  5904.519    40.5104 11768.528
## 1086  4501.544 -1363.0143 10366.103
## 1087 16193.004 10314.9217 22071.087
## 1088  6839.836   975.8641 12703.808
## 1089  3098.569 -2767.1317  8964.270
## 1090  5904.519    40.5104 11768.528
## 1091  5436.861  -427.2653 11300.987
## 1092  3566.227 -2299.0267  9431.481
## 1093  4969.203  -895.1068 10833.512
## 1094 12451.737  6582.4537 18321.021
## 1095  5436.861  -427.2653 11300.987
## 1096  8242.811  2378.4004 14107.223
## 1097 11048.762  5181.6948 16915.829
## 1098  2163.252 -3703.5392  8030.043
## 1099  4969.203  -895.1068 10833.512
## 1100  5904.519    40.5104 11768.528
## 1101  4033.886 -1830.9876  9898.759
## 1102  6839.836   975.8641 12703.808
## 1103  4501.544 -1363.0143 10366.103
## 1104  9645.787  3780.3439 15511.230
## 1105  3566.227 -2299.0267  9431.481
## 1106  4969.203  -895.1068 10833.512
## 1107  5904.519    40.5104 11768.528
## 1108  5904.519    40.5104 11768.528
## 1109  2630.911 -3235.3026  8497.124
## 1110  5436.861  -427.2653 11300.987
## 1111  1695.594 -4171.8417  7563.029
## 1112 17128.321 11247.3838 23009.259
## 1113  4501.544 -1363.0143 10366.103
## 1114  5436.861  -427.2653 11300.987
## 1115  5904.519    40.5104 11768.528
## 1116  1695.594 -4171.8417  7563.029
## 1117 18063.638 12179.5845 23947.692
## 1118  5436.861  -427.2653 11300.987
## 1119  1695.594 -4171.8417  7563.029
## 1120  5904.519    40.5104 11768.528
## 1121  4969.203  -895.1068 10833.512
## 1122  8242.811  2378.4004 14107.223
## 1123  5904.519    40.5104 11768.528
## 1124  5904.519    40.5104 11768.528
## 1125  6372.178   508.2202 12236.135
## 1126  4033.886 -1830.9876  9898.759
## 1127 13854.712  7982.6211 19726.804
## 1128  3098.569 -2767.1317  8964.270
## 1129  5436.861  -427.2653 11300.987
## 1130 12451.737  6582.4537 18321.021
## 1131  5904.519    40.5104 11768.528
## 1132  4969.203  -895.1068 10833.512
## 1133  3566.227 -2299.0267  9431.481
## 1134  4969.203  -895.1068 10833.512
## 1135  1695.594 -4171.8417  7563.029
## 1136 13854.712  7982.6211 19726.804
## 1137  1695.594 -4171.8417  7563.029
## 1138  3098.569 -2767.1317  8964.270
## 1139 16193.004 10314.9217 22071.087
## 1140  4033.886 -1830.9876  9898.759
## 1141 11984.079  6115.5998 17852.558
## 1142  4033.886 -1830.9876  9898.759
## 1143  5904.519    40.5104 11768.528
## 1144  5904.519    40.5104 11768.528
## 1145  5904.519    40.5104 11768.528
## 1146  4501.544 -1363.0143 10366.103
## 1147  5436.861  -427.2653 11300.987
## 1148  5904.519    40.5104 11768.528
## 1149  5904.519    40.5104 11768.528
## 1150  4501.544 -1363.0143 10366.103
## 1151  8710.470  2845.7808 14575.159
## 1152  4033.886 -1830.9876  9898.759
## 1153  2630.911 -3235.3026  8497.124
## 1154  1227.935 -4640.2099  7096.080
## 1155 13854.712  7982.6211 19726.804
## 1156  6372.178   508.2202 12236.135
## 1157  9645.787  3780.3439 15511.230
## 1158  8242.811  2378.4004 14107.223
## 1159  5436.861  -427.2653 11300.987
## 1160  5904.519    40.5104 11768.528
## 1161  5904.519    40.5104 11768.528
## 1162  5904.519    40.5104 11768.528
## 1163  8242.811  2378.4004 14107.223
## 1164  4969.203  -895.1068 10833.512
## 1165  9645.787  3780.3439 15511.230
## 1166  7775.153  1910.9542 13639.352
## 1167 11984.079  6115.5998 17852.558
## 1168  4501.544 -1363.0143 10366.103
## 1169  4033.886 -1830.9876  9898.759
## 1170  3566.227 -2299.0267  9431.481
## 1171  4033.886 -1830.9876  9898.759
## 1172  5904.519    40.5104 11768.528
## 1173  4969.203  -895.1068 10833.512
## 1174  5436.861  -427.2653 11300.987
## 1175  4501.544 -1363.0143 10366.103
## 1176  4501.544 -1363.0143 10366.103
## 1177 13854.712  7982.6211 19726.804
## 1178 10113.445  4247.5267 15979.364
## 1179  2163.252 -3703.5392  8030.043
## 1180  6372.178   508.2202 12236.135
## 1181  8242.811  2378.4004 14107.223
## 1182 15257.688  9382.1980 21133.177
## 1183  3098.569 -2767.1317  8964.270
## 1184  7307.495  1443.4421 13171.547
## 1185 18063.638 12179.5845 23947.692
## 1186  7775.153  1910.9542 13639.352
## 1187  7307.495  1443.4421 13171.547
## 1188 10113.445  4247.5267 15979.364
## 1189  5904.519    40.5104 11768.528
## 1190  4033.886 -1830.9876  9898.759
## 1191  5904.519    40.5104 11768.528
## 1192  5904.519    40.5104 11768.528
## 1193  9178.128  3313.0952 15043.161
## 1194  3098.569 -2767.1317  8964.270
## 1195 14790.029  8915.7379 20664.321
## 1196 11984.079  6115.5998 17852.558
## 1197 11048.762  5181.6948 16915.829
## 1198  2163.252 -3703.5392  8030.043
## 1199  4501.544 -1363.0143 10366.103
## 1200  5904.519    40.5104 11768.528
## 1201  4969.203  -895.1068 10833.512
## 1202  3566.227 -2299.0267  9431.481
## 1203  4501.544 -1363.0143 10366.103
## 1204  6372.178   508.2202 12236.135
## 1205 10113.445  4247.5267 15979.364
## 1206  1695.594 -4171.8417  7563.029
## 1207  4501.544 -1363.0143 10366.103
## 1208  4969.203  -895.1068 10833.512
## 1209  8242.811  2378.4004 14107.223
## 1210 10113.445  4247.5267 15979.364
## 1211  7775.153  1910.9542 13639.352
## 1212  4033.886 -1830.9876  9898.759
## 1213  5904.519    40.5104 11768.528
## 1214  2630.911 -3235.3026  8497.124
## 1215  5436.861  -427.2653 11300.987
## 1216  4033.886 -1830.9876  9898.759
## 1217  5904.519    40.5104 11768.528
## 1218  3566.227 -2299.0267  9431.481
## 1219  5904.519    40.5104 11768.528
## 1220  5436.861  -427.2653 11300.987
## 1221  9178.128  3313.0952 15043.161
## 1222 12919.396  7049.2418 18789.549
## 1223  1695.594 -4171.8417  7563.029
## 1224 12919.396  7049.2418 18789.549
## 1225  2630.911 -3235.3026  8497.124
## 1226 11048.762  5181.6948 16915.829
## 1227  5904.519    40.5104 11768.528
## 1228  4033.886 -1830.9876  9898.759
## 1229  5904.519    40.5104 11768.528
## 1230  9645.787  3780.3439 15511.230
## 1231  4033.886 -1830.9876  9898.759
## 1232 10113.445  4247.5267 15979.364
## 1233  9178.128  3313.0952 15043.161
## 1234  5904.519    40.5104 11768.528
## 1235  3098.569 -2767.1317  8964.270
## 1236  7307.495  1443.4421 13171.547
## 1237  8710.470  2845.7808 14575.159
## 1238  5904.519    40.5104 11768.528
## 1239  2630.911 -3235.3026  8497.124
## 1240  5436.861  -427.2653 11300.987
## 1241  5436.861  -427.2653 11300.987
## 1242  5904.519    40.5104 11768.528
## 1243 11048.762  5181.6948 16915.829
## 1244  5436.861  -427.2653 11300.987
## 1245  5904.519    40.5104 11768.528
## 1246  2630.911 -3235.3026  8497.124
## 1247  4033.886 -1830.9876  9898.759
## 1248  4033.886 -1830.9876  9898.759
## 1249  4033.886 -1830.9876  9898.759
## 1250  2163.252 -3703.5392  8030.043
## 1251  5904.519    40.5104 11768.528
## 1252  6839.836   975.8641 12703.808
## 1253  4033.886 -1830.9876  9898.759
## 1254  7307.495  1443.4421 13171.547
## 1255  4969.203  -895.1068 10833.512
## 1256  6372.178   508.2202 12236.135
## 1257  5436.861  -427.2653 11300.987
## 1258  5904.519    40.5104 11768.528
## 1259  1695.594 -4171.8417  7563.029
## 1260  5904.519    40.5104 11768.528
## 1261  6839.836   975.8641 12703.808
## 1262  8242.811  2378.4004 14107.223
## 1263  4033.886 -1830.9876  9898.759
## 1264  4501.544 -1363.0143 10366.103
## 1265 17128.321 11247.3838 23009.259
## 1266  6372.178   508.2202 12236.135
## 1267  3566.227 -2299.0267  9431.481
## 1268  8242.811  2378.4004 14107.223
## 1269 13854.712  7982.6211 19726.804
## 1270  5904.519    40.5104 11768.528
## 1271  4033.886 -1830.9876  9898.759
## 1272  1695.594 -4171.8417  7563.029
## 1273  3566.227 -2299.0267  9431.481
## 1274  1695.594 -4171.8417  7563.029
## 1275  7307.495  1443.4421 13171.547
## 1276  8242.811  2378.4004 14107.223
## 1277  3566.227 -2299.0267  9431.481
## 1278 12451.737  6582.4537 18321.021
## 1279  8242.811  2378.4004 14107.223
## 1280  4033.886 -1830.9876  9898.759
## 1281 10113.445  4247.5267 15979.364
## 1282  5904.519    40.5104 11768.528
## 1283  7775.153  1910.9542 13639.352
## 1284  3566.227 -2299.0267  9431.481
## 1285  5436.861  -427.2653 11300.987
## 1286  4033.886 -1830.9876  9898.759
## 1287  4501.544 -1363.0143 10366.103
## 1288  5904.519    40.5104 11768.528
## 1289  8242.811  2378.4004 14107.223
## 1290  7307.495  1443.4421 13171.547
## 1291  6372.178   508.2202 12236.135
## 1292  5904.519    40.5104 11768.528
## 1293  4501.544 -1363.0143 10366.103
## 1294  4501.544 -1363.0143 10366.103
## 1295  6372.178   508.2202 12236.135
## 1296 11984.079  6115.5998 17852.558
## 1297  5436.861  -427.2653 11300.987
## 1298  4033.886 -1830.9876  9898.759
## 1299  7307.495  1443.4421 13171.547
## 1300  6839.836   975.8641 12703.808
## 1301  5904.519    40.5104 11768.528
## 1302 18531.297 12645.5870 24417.006
## 1303  4033.886 -1830.9876  9898.759
## 1304 14322.371  8449.2123 20195.529
## 1305  8242.811  2378.4004 14107.223
## 1306  7775.153  1910.9542 13639.352
## 1307  5436.861  -427.2653 11300.987
## 1308  2630.911 -3235.3026  8497.124
## 1309 10581.104  4714.6436 16447.563
## 1310  3566.227 -2299.0267  9431.481
## 1311 11984.079  6115.5998 17852.558
## 1312  1227.935 -4640.2099  7096.080
## 1313  2163.252 -3703.5392  8030.043
## 1314  3098.569 -2767.1317  8964.270
## 1315  5904.519    40.5104 11768.528
## 1316  8242.811  2378.4004 14107.223
## 1317  4501.544 -1363.0143 10366.103
## 1318  4033.886 -1830.9876  9898.759
## 1319  6372.178   508.2202 12236.135
## 1320  3098.569 -2767.1317  8964.270
## 1321  5904.519    40.5104 11768.528
## 1322  4501.544 -1363.0143 10366.103
## 1323  6839.836   975.8641 12703.808
## 1324  2630.911 -3235.3026  8497.124
## 1325  6372.178   508.2202 12236.135
## 1326  4969.203  -895.1068 10833.512
## 1327  4501.544 -1363.0143 10366.103
## 1328 12919.396  7049.2418 18789.549
## 1329  5436.861  -427.2653 11300.987
## 1330  1695.594 -4171.8417  7563.029
## 1331 11048.762  5181.6948 16915.829
## 1332 14790.029  8915.7379 20664.321
## 1333  1695.594 -4171.8417  7563.029
## 1334  7775.153  1910.9542 13639.352
## 1335  4969.203  -895.1068 10833.512
## 1336  4501.544 -1363.0143 10366.103
## 1337 10113.445  4247.5267 15979.364
## 1338  1695.594 -4171.8417  7563.029
## 1339  1695.594 -4171.8417  7563.029
## 1340  1695.594 -4171.8417  7563.029
## 1341  5904.519    40.5104 11768.528
## 1342  5904.519    40.5104 11768.528
## 1343  5436.861  -427.2653 11300.987
## 1344  6372.178   508.2202 12236.135
## 1345  8710.470  2845.7808 14575.159
## 1346  3098.569 -2767.1317  8964.270
## 1347  5904.519    40.5104 11768.528
## 1348  5904.519    40.5104 11768.528
## 1349 11516.420  5648.6802 17384.161
## 1350  1695.594 -4171.8417  7563.029
## 1351  5436.861  -427.2653 11300.987
## 1352 12451.737  6582.4537 18321.021
## 1353  5904.519    40.5104 11768.528
## 1354  3566.227 -2299.0267  9431.481
## 1355  3566.227 -2299.0267  9431.481
## 1356  6839.836   975.8641 12703.808
## 1357  7775.153  1910.9542 13639.352
## 1358  9645.787  3780.3439 15511.230
## 1359  4969.203  -895.1068 10833.512
## 1360  5436.861  -427.2653 11300.987
## 1361  3098.569 -2767.1317  8964.270
## 1362  4969.203  -895.1068 10833.512
## 1363  6839.836   975.8641 12703.808
## 1364  5904.519    40.5104 11768.528
## 1365  4501.544 -1363.0143 10366.103
## 1366  1695.594 -4171.8417  7563.029
## 1367  5904.519    40.5104 11768.528
## 1368  4033.886 -1830.9876  9898.759
## 1369  8710.470  2845.7808 14575.159
## 1370  4033.886 -1830.9876  9898.759
## 1371  8710.470  2845.7808 14575.159
## 1372  4033.886 -1830.9876  9898.759
## 1373  5904.519    40.5104 11768.528
## 1374 10581.104  4714.6436 16447.563
## 1375 14790.029  8915.7379 20664.321
## 1376  4969.203  -895.1068 10833.512
## 1377  5904.519    40.5104 11768.528
## 1378 14322.371  8449.2123 20195.529
## 1379  7775.153  1910.9542 13639.352
## 1380  1695.594 -4171.8417  7563.029
## 1381  4033.886 -1830.9876  9898.759
## 1382  3566.227 -2299.0267  9431.481
## 1383  3098.569 -2767.1317  8964.270
## 1384  3566.227 -2299.0267  9431.481
## 1385  7775.153  1910.9542 13639.352
## 1386  5436.861  -427.2653 11300.987
## 1387  4969.203  -895.1068 10833.512
## 1388  4033.886 -1830.9876  9898.759
## 1389  5436.861  -427.2653 11300.987
## 1390  5904.519    40.5104 11768.528
## 1391  4033.886 -1830.9876  9898.759
## 1392 10581.104  4714.6436 16447.563
## 1393  5904.519    40.5104 11768.528
## 1394  4501.544 -1363.0143 10366.103
## 1395  4969.203  -895.1068 10833.512
## 1396  5904.519    40.5104 11768.528
## 1397  8242.811  2378.4004 14107.223
## 1398  5436.861  -427.2653 11300.987
## 1399  5436.861  -427.2653 11300.987
## 1400  5904.519    40.5104 11768.528
## 1401  4501.544 -1363.0143 10366.103
## 1402 17595.980 11713.5168 23478.443
## 1403  1695.594 -4171.8417  7563.029
## 1404 11048.762  5181.6948 16915.829
## 1405 10581.104  4714.6436 16447.563
## 1406  7307.495  1443.4421 13171.547
## 1407  5436.861  -427.2653 11300.987
## 1408  3098.569 -2767.1317  8964.270
## 1409  3566.227 -2299.0267  9431.481
## 1410  5904.519    40.5104 11768.528
## 1411  8242.811  2378.4004 14107.223
## 1412  4033.886 -1830.9876  9898.759
## 1413  6839.836   975.8641 12703.808
## 1414  4501.544 -1363.0143 10366.103
## 1415 12919.396  7049.2418 18789.549
## 1416  1695.594 -4171.8417  7563.029
## 1417  8710.470  2845.7808 14575.159
## 1418  2630.911 -3235.3026  8497.124
## 1419  5904.519    40.5104 11768.528
## 1420  5436.861  -427.2653 11300.987
## 1421  6839.836   975.8641 12703.808
## 1422  7775.153  1910.9542 13639.352
## 1423  3566.227 -2299.0267  9431.481
## 1424  3098.569 -2767.1317  8964.270
## 1425  5904.519    40.5104 11768.528
## 1426  5904.519    40.5104 11768.528
## 1427  4033.886 -1830.9876  9898.759
## 1428  4969.203  -895.1068 10833.512
## 1429  2630.911 -3235.3026  8497.124
## 1430  9645.787  3780.3439 15511.230
## 1431 10581.104  4714.6436 16447.563
## 1432  7775.153  1910.9542 13639.352
## 1433  8710.470  2845.7808 14575.159
## 1434  4033.886 -1830.9876  9898.759
## 1435  8710.470  2845.7808 14575.159
## 1436  4033.886 -1830.9876  9898.759
## 1437  2163.252 -3703.5392  8030.043
## 1438 11048.762  5181.6948 16915.829
## 1439  1695.594 -4171.8417  7563.029
## 1440  5904.519    40.5104 11768.528
## 1441  9645.787  3780.3439 15511.230
## 1442  7307.495  1443.4421 13171.547
## 1443  3098.569 -2767.1317  8964.270
## 1444 12451.737  6582.4537 18321.021
## 1445  7775.153  1910.9542 13639.352
## 1446 11048.762  5181.6948 16915.829
## 1447  4969.203  -895.1068 10833.512
## 1448  8242.811  2378.4004 14107.223
## 1449  7775.153  1910.9542 13639.352
## 1450  3098.569 -2767.1317  8964.270
## 1451  5436.861  -427.2653 11300.987
## 1452  5904.519    40.5104 11768.528
## 1453  6839.836   975.8641 12703.808
## 1454  4969.203  -895.1068 10833.512
## 1455  4969.203  -895.1068 10833.512
## 1456  4969.203  -895.1068 10833.512
## 1457  5904.519    40.5104 11768.528
## 1458 10581.104  4714.6436 16447.563
## 1459  3098.569 -2767.1317  8964.270
## 1460  5904.519    40.5104 11768.528
## 1461  3566.227 -2299.0267  9431.481
## 1462 10581.104  4714.6436 16447.563
## 1463 11048.762  5181.6948 16915.829
## 1464  5904.519    40.5104 11768.528
## 1465  3566.227 -2299.0267  9431.481
## 1466  9178.128  3313.0952 15043.161
## 1467  5436.861  -427.2653 11300.987
## 1468  4033.886 -1830.9876  9898.759
## 1469  9178.128  3313.0952 15043.161
## 1470  4033.886 -1830.9876  9898.759
Predicciones y sus Intervalos de Confianza
predict(modelo_RL_Simple, data.frame(seq(1,1470)), interval='confidence', level = 0.95)
##            fit        lwr       upr
## 1     4969.203  4803.2757  5135.129
## 2     5904.519  5749.5724  6059.466
## 3     4501.544  4327.0378  4676.051
## 4     4969.203  4803.2757  5135.129
## 5     4033.886  3849.0995  4218.672
## 6     4969.203  4803.2757  5135.129
## 7     6839.836  6686.2900  6993.382
## 8     1695.594  1442.2067  1948.981
## 9     5904.519  5749.5724  6059.466
## 10    9178.128  8988.3401  9367.916
## 11    4033.886  3849.0995  4218.672
## 12    5904.519  5749.5724  6059.466
## 13    3566.227  3369.7274  3762.727
## 14    2630.911  2407.6101  2854.211
## 15    4033.886  3849.0995  4218.672
## 16    5904.519  5749.5724  6059.466
## 17    4501.544  4327.0378  4676.051
## 18    1695.594  1442.2067  1948.981
## 19   15725.346 15308.6471 16142.045
## 20    4033.886  3849.0995  4218.672
## 21    3566.227  3369.7274  3762.727
## 22    5904.519  5749.5724  6059.466
## 23    7307.495  7150.9075  7464.082
## 24    1227.935   958.6119  1497.259
## 25    4969.203  4803.2757  5135.129
## 26   13387.054 13059.7906 13714.317
## 27    5904.519  5749.5724  6059.466
## 28    5904.519  5749.5724  6059.466
## 29   12451.737 12158.6569 12744.817
## 30   11516.420 11256.0710 11776.770
## 31    4501.544  4327.0378  4676.051
## 32    5436.861  5277.5382  5596.184
## 33    5904.519  5749.5724  6059.466
## 34   10113.445  9898.0243 10328.866
## 35    4033.886  3849.0995  4218.672
## 36    4033.886  3849.0995  4218.672
## 37    2630.911  2407.6101  2854.211
## 38    2163.252  1925.2445  2401.260
## 39    4033.886  3849.0995  4218.672
## 40    5904.519  5749.5724  6059.466
## 41    1695.594  1442.2067  1948.981
## 42    1695.594  1442.2067  1948.981
## 43    1695.594  1442.2067  1948.981
## 44    5436.861  5277.5382  5596.184
## 45    6839.836  6686.2900  6993.382
## 46   11984.079 11707.5783 12260.579
## 47    5904.519  5749.5724  6059.466
## 48    4969.203  4803.2757  5135.129
## 49    7775.153  7613.1796  7937.126
## 50    1695.594  1442.2067  1948.981
## 51   11984.079 11707.5783 12260.579
## 52    2163.252  1925.2445  2401.260
## 53    5436.861  5277.5382  5596.184
## 54    5904.519  5749.5724  6059.466
## 55    3566.227  3369.7274  3762.727
## 56    8242.811  8073.3299  8412.293
## 57    5436.861  5277.5382  5596.184
## 58    3098.569  2889.1620  3307.976
## 59    5904.519  5749.5724  6059.466
## 60    4501.544  4327.0378  4676.051
## 61    5436.861  5277.5382  5596.184
## 62    5904.519  5749.5724  6059.466
## 63   14790.029 14409.6281 15170.430
## 64   14322.371 13959.8826 14684.859
## 65    9178.128  8988.3401  9367.916
## 66   11048.762 10804.0503 11293.474
## 67    4033.886  3849.0995  4218.672
## 68   12919.396 12609.3757 13229.415
## 69    3566.227  3369.7274  3762.727
## 70    2163.252  1925.2445  2401.260
## 71   10581.104 10351.4112 10810.796
## 72    4033.886  3849.0995  4218.672
## 73    1695.594  1442.2067  1948.981
## 74    5904.519  5749.5724  6059.466
## 75    3566.227  3369.7274  3762.727
## 76    6372.178  6219.1872  6525.168
## 77    8710.470  8531.6253  8889.314
## 78    9178.128  8988.3401  9367.916
## 79    8710.470  8531.6253  8889.314
## 80    8710.470  8531.6253  8889.314
## 81    5904.519  5749.5724  6059.466
## 82    4033.886  3849.0995  4218.672
## 83   12451.737 12158.6569 12744.817
## 84    9178.128  8988.3401  9367.916
## 85    3566.227  3369.7274  3762.727
## 86   18531.297 18003.1078 19059.485
## 87    2630.911  2407.6101  2854.211
## 88    5904.519  5749.5724  6059.466
## 89    6372.178  6219.1872  6525.168
## 90    5436.861  5277.5382  5596.184
## 91   11516.420 11256.0710 11776.770
## 92    6372.178  6219.1872  6525.168
## 93    6372.178  6219.1872  6525.168
## 94   11048.762 10804.0503 11293.474
## 95    6839.836  6686.2900  6993.382
## 96    8710.470  8531.6253  8889.314
## 97    3098.569  2889.1620  3307.976
## 98    3566.227  3369.7274  3762.727
## 99   18998.955 18451.9216 19545.988
## 100   9178.128  8988.3401  9367.916
## 101   4501.544  4327.0378  4676.051
## 102   1695.594  1442.2067  1948.981
## 103   1695.594  1442.2067  1948.981
## 104   8710.470  8531.6253  8889.314
## 105   9178.128  8988.3401  9367.916
## 106  15257.688 14859.2091 15656.166
## 107  14322.371 13959.8826 14684.859
## 108   4033.886  3849.0995  4218.672
## 109   2163.252  1925.2445  2401.260
## 110   1695.594  1442.2067  1948.981
## 111  11984.079 11707.5783 12260.579
## 112   5436.861  5277.5382  5596.184
## 113  11984.079 11707.5783 12260.579
## 114   4033.886  3849.0995  4218.672
## 115   6839.836  6686.2900  6993.382
## 116   6839.836  6686.2900  6993.382
## 117   7775.153  7613.1796  7937.126
## 118   5904.519  5749.5724  6059.466
## 119   4501.544  4327.0378  4676.051
## 120  12919.396 12609.3757 13229.415
## 121   5904.519  5749.5724  6059.466
## 122   4969.203  4803.2757  5135.129
## 123   4501.544  4327.0378  4676.051
## 124  11984.079 11707.5783 12260.579
## 125   6839.836  6686.2900  6993.382
## 126   3566.227  3369.7274  3762.727
## 127  19934.272 19349.3886 20519.155
## 128   1227.935   958.6119  1497.259
## 129   2630.911  2407.6101  2854.211
## 130   8710.470  8531.6253  8889.314
## 131   9645.787  9443.7311  9847.842
## 132   8710.470  8531.6253  8889.314
## 133   3098.569  2889.1620  3307.976
## 134   6839.836  6686.2900  6993.382
## 135   4969.203  4803.2757  5135.129
## 136   4501.544  4327.0378  4676.051
## 137   9645.787  9443.7311  9847.842
## 138   9178.128  8988.3401  9367.916
## 139   4033.886  3849.0995  4218.672
## 140   6839.836  6686.2900  6993.382
## 141   5904.519  5749.5724  6059.466
## 142   5436.861  5277.5382  5596.184
## 143  10113.445  9898.0243 10328.866
## 144   3566.227  3369.7274  3762.727
## 145   5436.861  5277.5382  5596.184
## 146   4969.203  4803.2757  5135.129
## 147   4033.886  3849.0995  4218.672
## 148  11048.762 10804.0503 11293.474
## 149   4501.544  4327.0378  4676.051
## 150   1695.594  1442.2067  1948.981
## 151  10581.104 10351.4112 10810.796
## 152   5904.519  5749.5724  6059.466
## 153   7307.495  7150.9075  7464.082
## 154  10581.104 10351.4112 10810.796
## 155   5436.861  5277.5382  5596.184
## 156   5904.519  5749.5724  6059.466
## 157   5904.519  5749.5724  6059.466
## 158   5436.861  5277.5382  5596.184
## 159   8242.811  8073.3299  8412.293
## 160   4033.886  3849.0995  4218.672
## 161   2163.252  1925.2445  2401.260
## 162   4033.886  3849.0995  4218.672
## 163   3566.227  3369.7274  3762.727
## 164   6839.836  6686.2900  6993.382
## 165   1695.594  1442.2067  1948.981
## 166  11048.762 10804.0503 11293.474
## 167   7307.495  7150.9075  7464.082
## 168   6839.836  6686.2900  6993.382
## 169   6839.836  6686.2900  6993.382
## 170   4969.203  4803.2757  5135.129
## 171   4033.886  3849.0995  4218.672
## 172   1695.594  1442.2067  1948.981
## 173   7307.495  7150.9075  7464.082
## 174   6839.836  6686.2900  6993.382
## 175   5436.861  5277.5382  5596.184
## 176  10113.445  9898.0243 10328.866
## 177   3098.569  2889.1620  3307.976
## 178   1695.594  1442.2067  1948.981
## 179  12451.737 12158.6569 12744.817
## 180   2163.252  1925.2445  2401.260
## 181   4501.544  4327.0378  4676.051
## 182   5436.861  5277.5382  5596.184
## 183   3098.569  2889.1620  3307.976
## 184   3566.227  3369.7274  3762.727
## 185   3566.227  3369.7274  3762.727
## 186   4969.203  4803.2757  5135.129
## 187  11048.762 10804.0503 11293.474
## 188  18063.638 17554.2327 18573.043
## 189   5904.519  5749.5724  6059.466
## 190  11048.762 10804.0503 11293.474
## 191  17128.321 16656.2692 17600.373
## 192   4501.544  4327.0378  4676.051
## 193   4969.203  4803.2757  5135.129
## 194   4501.544  4327.0378  4676.051
## 195  11516.420 11256.0710 11776.770
## 196   4969.203  4803.2757  5135.129
## 197   5904.519  5749.5724  6059.466
## 198   6372.178  6219.1872  6525.168
## 199   7775.153  7613.1796  7937.126
## 200   5436.861  5277.5382  5596.184
## 201   4033.886  3849.0995  4218.672
## 202   4501.544  4327.0378  4676.051
## 203   3566.227  3369.7274  3762.727
## 204   8242.811  8073.3299  8412.293
## 205   9178.128  8988.3401  9367.916
## 206   5904.519  5749.5724  6059.466
## 207   3098.569  2889.1620  3307.976
## 208   4969.203  4803.2757  5135.129
## 209   3566.227  3369.7274  3762.727
## 210   9178.128  8988.3401  9367.916
## 211   7775.153  7613.1796  7937.126
## 212   6839.836  6686.2900  6993.382
## 213   4501.544  4327.0378  4676.051
## 214   8710.470  8531.6253  8889.314
## 215   4969.203  4803.2757  5135.129
## 216   8710.470  8531.6253  8889.314
## 217   5436.861  5277.5382  5596.184
## 218   4501.544  4327.0378  4676.051
## 219  11984.079 11707.5783 12260.579
## 220   8710.470  8531.6253  8889.314
## 221   8710.470  8531.6253  8889.314
## 222   4501.544  4327.0378  4676.051
## 223   5904.519  5749.5724  6059.466
## 224   9178.128  8988.3401  9367.916
## 225   4033.886  3849.0995  4218.672
## 226   4501.544  4327.0378  4676.051
## 227   7307.495  7150.9075  7464.082
## 228   6372.178  6219.1872  6525.168
## 229   5904.519  5749.5724  6059.466
## 230   3098.569  2889.1620  3307.976
## 231   4033.886  3849.0995  4218.672
## 232  11516.420 11256.0710 11776.770
## 233   4501.544  4327.0378  4676.051
## 234  16193.004 15757.9600 16628.049
## 235   4969.203  4803.2757  5135.129
## 236  11516.420 11256.0710 11776.770
## 237   7307.495  7150.9075  7464.082
## 238  16660.663 16207.1631 17114.163
## 239   4033.886  3849.0995  4218.672
## 240   3098.569  2889.1620  3307.976
## 241   4501.544  4327.0378  4676.051
## 242   3098.569  2889.1620  3307.976
## 243   9178.128  8988.3401  9367.916
## 244   5436.861  5277.5382  5596.184
## 245  12919.396 12609.3757 13229.415
## 246   5436.861  5277.5382  5596.184
## 247   2163.252  1925.2445  2401.260
## 248   7307.495  7150.9075  7464.082
## 249   9178.128  8988.3401  9367.916
## 250   5436.861  5277.5382  5596.184
## 251   9178.128  8988.3401  9367.916
## 252  10581.104 10351.4112 10810.796
## 253   4033.886  3849.0995  4218.672
## 254   5904.519  5749.5724  6059.466
## 255   5904.519  5749.5724  6059.466
## 256   3566.227  3369.7274  3762.727
## 257   5904.519  5749.5724  6059.466
## 258  11516.420 11256.0710 11776.770
## 259   1695.594  1442.2067  1948.981
## 260   4033.886  3849.0995  4218.672
## 261   3566.227  3369.7274  3762.727
## 262   7307.495  7150.9075  7464.082
## 263   5436.861  5277.5382  5596.184
## 264  14322.371 13959.8826 14684.859
## 265   3566.227  3369.7274  3762.727
## 266   5904.519  5749.5724  6059.466
## 267   5904.519  5749.5724  6059.466
## 268   4033.886  3849.0995  4218.672
## 269  11048.762 10804.0503 11293.474
## 270   8710.470  8531.6253  8889.314
## 271  18531.297 18003.1078 19059.485
## 272   5904.519  5749.5724  6059.466
## 273   3566.227  3369.7274  3762.727
## 274   4501.544  4327.0378  4676.051
## 275   2630.911  2407.6101  2854.211
## 276   8242.811  8073.3299  8412.293
## 277   5904.519  5749.5724  6059.466
## 278   4969.203  4803.2757  5135.129
## 279   4033.886  3849.0995  4218.672
## 280  14322.371 13959.8826 14684.859
## 281  11048.762 10804.0503 11293.474
## 282  10581.104 10351.4112 10810.796
## 283   5904.519  5749.5724  6059.466
## 284   6839.836  6686.2900  6993.382
## 285   3566.227  3369.7274  3762.727
## 286   9178.128  8988.3401  9367.916
## 287  10113.445  9898.0243 10328.866
## 288   5904.519  5749.5724  6059.466
## 289   3566.227  3369.7274  3762.727
## 290   3566.227  3369.7274  3762.727
## 291  11516.420 11256.0710 11776.770
## 292   5904.519  5749.5724  6059.466
## 293   2163.252  1925.2445  2401.260
## 294   4969.203  4803.2757  5135.129
## 295   3098.569  2889.1620  3307.976
## 296  11984.079 11707.5783 12260.579
## 297   1227.935   958.6119  1497.259
## 298   6839.836  6686.2900  6993.382
## 299   3098.569  2889.1620  3307.976
## 300   7307.495  7150.9075  7464.082
## 301  11516.420 11256.0710 11776.770
## 302   1227.935   958.6119  1497.259
## 303   5436.861  5277.5382  5596.184
## 304   5904.519  5749.5724  6059.466
## 305  10113.445  9898.0243 10328.866
## 306   6372.178  6219.1872  6525.168
## 307   7307.495  7150.9075  7464.082
## 308  10113.445  9898.0243 10328.866
## 309   6839.836  6686.2900  6993.382
## 310   4033.886  3849.0995  4218.672
## 311   5436.861  5277.5382  5596.184
## 312  12451.737 12158.6569 12744.817
## 313   2630.911  2407.6101  2854.211
## 314   6839.836  6686.2900  6993.382
## 315  11048.762 10804.0503 11293.474
## 316   5436.861  5277.5382  5596.184
## 317  12919.396 12609.3757 13229.415
## 318   6372.178  6219.1872  6525.168
## 319   3098.569  2889.1620  3307.976
## 320   7307.495  7150.9075  7464.082
## 321   3566.227  3369.7274  3762.727
## 322   7307.495  7150.9075  7464.082
## 323   5904.519  5749.5724  6059.466
## 324   3566.227  3369.7274  3762.727
## 325   6372.178  6219.1872  6525.168
## 326   5904.519  5749.5724  6059.466
## 327  11048.762 10804.0503 11293.474
## 328   6839.836  6686.2900  6993.382
## 329   5436.861  5277.5382  5596.184
## 330  11048.762 10804.0503 11293.474
## 331   5436.861  5277.5382  5596.184
## 332   4033.886  3849.0995  4218.672
## 333  10581.104 10351.4112 10810.796
## 334   5904.519  5749.5724  6059.466
## 335   6839.836  6686.2900  6993.382
## 336   4033.886  3849.0995  4218.672
## 337   4501.544  4327.0378  4676.051
## 338   3098.569  2889.1620  3307.976
## 339   5904.519  5749.5724  6059.466
## 340   4969.203  4803.2757  5135.129
## 341   4969.203  4803.2757  5135.129
## 342   6839.836  6686.2900  6993.382
## 343   6372.178  6219.1872  6525.168
## 344   4501.544  4327.0378  4676.051
## 345   9178.128  8988.3401  9367.916
## 346   3098.569  2889.1620  3307.976
## 347   4969.203  4803.2757  5135.129
## 348   3566.227  3369.7274  3762.727
## 349   8710.470  8531.6253  8889.314
## 350   3098.569  2889.1620  3307.976
## 351   3098.569  2889.1620  3307.976
## 352   4969.203  4803.2757  5135.129
## 353   8242.811  8073.3299  8412.293
## 354   7307.495  7150.9075  7464.082
## 355   3098.569  2889.1620  3307.976
## 356   4969.203  4803.2757  5135.129
## 357   7775.153  7613.1796  7937.126
## 358   2630.911  2407.6101  2854.211
## 359   4501.544  4327.0378  4676.051
## 360   8710.470  8531.6253  8889.314
## 361   8242.811  8073.3299  8412.293
## 362   5904.519  5749.5724  6059.466
## 363   2630.911  2407.6101  2854.211
## 364   1695.594  1442.2067  1948.981
## 365   9178.128  8988.3401  9367.916
## 366   4501.544  4327.0378  4676.051
## 367   4969.203  4803.2757  5135.129
## 368  10581.104 10351.4112 10810.796
## 369   4969.203  4803.2757  5135.129
## 370   2630.911  2407.6101  2854.211
## 371   1695.594  1442.2067  1948.981
## 372   4033.886  3849.0995  4218.672
## 373   5904.519  5749.5724  6059.466
## 374   3566.227  3369.7274  3762.727
## 375   4501.544  4327.0378  4676.051
## 376  13387.054 13059.7906 13714.317
## 377   9645.787  9443.7311  9847.842
## 378   4033.886  3849.0995  4218.672
## 379   5436.861  5277.5382  5596.184
## 380  15257.688 14859.2091 15656.166
## 381   3566.227  3369.7274  3762.727
## 382   1695.594  1442.2067  1948.981
## 383   4501.544  4327.0378  4676.051
## 384   2163.252  1925.2445  2401.260
## 385   5904.519  5749.5724  6059.466
## 386   2630.911  2407.6101  2854.211
## 387   9645.787  9443.7311  9847.842
## 388   4969.203  4803.2757  5135.129
## 389   4969.203  4803.2757  5135.129
## 390   9645.787  9443.7311  9847.842
## 391  12919.396 12609.3757 13229.415
## 392  10581.104 10351.4112 10810.796
## 393  12451.737 12158.6569 12744.817
## 394   4033.886  3849.0995  4218.672
## 395   7307.495  7150.9075  7464.082
## 396   4969.203  4803.2757  5135.129
## 397   4969.203  4803.2757  5135.129
## 398   3566.227  3369.7274  3762.727
## 399   8242.811  8073.3299  8412.293
## 400   3098.569  2889.1620  3307.976
## 401  11048.762 10804.0503 11293.474
## 402  18063.638 17554.2327 18573.043
## 403   4033.886  3849.0995  4218.672
## 404   5904.519  5749.5724  6059.466
## 405   5904.519  5749.5724  6059.466
## 406   4033.886  3849.0995  4218.672
## 407  14322.371 13959.8826 14684.859
## 408   4969.203  4803.2757  5135.129
## 409  15725.346 15308.6471 16142.045
## 410  10113.445  9898.0243 10328.866
## 411   6372.178  6219.1872  6525.168
## 412  16660.663 16207.1631 17114.163
## 413  10113.445  9898.0243 10328.866
## 414   4501.544  4327.0378  4676.051
## 415   4033.886  3849.0995  4218.672
## 416   2630.911  2407.6101  2854.211
## 417   1695.594  1442.2067  1948.981
## 418  11048.762 10804.0503 11293.474
## 419   2630.911  2407.6101  2854.211
## 420   5436.861  5277.5382  5596.184
## 421   5904.519  5749.5724  6059.466
## 422   4033.886  3849.0995  4218.672
## 423   1695.594  1442.2067  1948.981
## 424   5904.519  5749.5724  6059.466
## 425  16193.004 15757.9600 16628.049
## 426  14322.371 13959.8826 14684.859
## 427   6839.836  6686.2900  6993.382
## 428  11516.420 11256.0710 11776.770
## 429  10581.104 10351.4112 10810.796
## 430  13387.054 13059.7906 13714.317
## 431   4033.886  3849.0995  4218.672
## 432  10113.445  9898.0243 10328.866
## 433   7775.153  7613.1796  7937.126
## 434   8242.811  8073.3299  8412.293
## 435   7307.495  7150.9075  7464.082
## 436   8242.811  8073.3299  8412.293
## 437   4969.203  4803.2757  5135.129
## 438   3098.569  2889.1620  3307.976
## 439   5904.519  5749.5724  6059.466
## 440   6839.836  6686.2900  6993.382
## 441   6372.178  6219.1872  6525.168
## 442   4969.203  4803.2757  5135.129
## 443   5904.519  5749.5724  6059.466
## 444   3098.569  2889.1620  3307.976
## 445   7775.153  7613.1796  7937.126
## 446  18531.297 18003.1078 19059.485
## 447   8710.470  8531.6253  8889.314
## 448   8242.811  8073.3299  8412.293
## 449  11516.420 11256.0710 11776.770
## 450   4969.203  4803.2757  5135.129
## 451   5904.519  5749.5724  6059.466
## 452   5904.519  5749.5724  6059.466
## 453   5436.861  5277.5382  5596.184
## 454   4969.203  4803.2757  5135.129
## 455   4969.203  4803.2757  5135.129
## 456   5904.519  5749.5724  6059.466
## 457   5904.519  5749.5724  6059.466
## 458   1227.935   958.6119  1497.259
## 459  10581.104 10351.4112 10810.796
## 460   5904.519  5749.5724  6059.466
## 461   4969.203  4803.2757  5135.129
## 462   3566.227  3369.7274  3762.727
## 463   5904.519  5749.5724  6059.466
## 464   1695.594  1442.2067  1948.981
## 465   6839.836  6686.2900  6993.382
## 466  14322.371 13959.8826 14684.859
## 467  11516.420 11256.0710 11776.770
## 468   5436.861  5277.5382  5596.184
## 469   9645.787  9443.7311  9847.842
## 470   4033.886  3849.0995  4218.672
## 471   2630.911  2407.6101  2854.211
## 472   9645.787  9443.7311  9847.842
## 473   4969.203  4803.2757  5135.129
## 474  15725.346 15308.6471 16142.045
## 475   4033.886  3849.0995  4218.672
## 476   4033.886  3849.0995  4218.672
## 477   1695.594  1442.2067  1948.981
## 478  16193.004 15757.9600 16628.049
## 479   4501.544  4327.0378  4676.051
## 480   4033.886  3849.0995  4218.672
## 481   1695.594  1442.2067  1948.981
## 482   4033.886  3849.0995  4218.672
## 483   5436.861  5277.5382  5596.184
## 484   5436.861  5277.5382  5596.184
## 485   7307.495  7150.9075  7464.082
## 486   4033.886  3849.0995  4218.672
## 487   9178.128  8988.3401  9367.916
## 488   1695.594  1442.2067  1948.981
## 489   5904.519  5749.5724  6059.466
## 490  11048.762 10804.0503 11293.474
## 491   4969.203  4803.2757  5135.129
## 492   5904.519  5749.5724  6059.466
## 493  11048.762 10804.0503 11293.474
## 494   5904.519  5749.5724  6059.466
## 495   4969.203  4803.2757  5135.129
## 496   3566.227  3369.7274  3762.727
## 497   2630.911  2407.6101  2854.211
## 498  13387.054 13059.7906 13714.317
## 499   2630.911  2407.6101  2854.211
## 500   4033.886  3849.0995  4218.672
## 501   4033.886  3849.0995  4218.672
## 502   1695.594  1442.2067  1948.981
## 503   9645.787  9443.7311  9847.842
## 504   5904.519  5749.5724  6059.466
## 505   3566.227  3369.7274  3762.727
## 506   2630.911  2407.6101  2854.211
## 507   5904.519  5749.5724  6059.466
## 508   4033.886  3849.0995  4218.672
## 509   9178.128  8988.3401  9367.916
## 510   8242.811  8073.3299  8412.293
## 511   8710.470  8531.6253  8889.314
## 512   7307.495  7150.9075  7464.082
## 513   3566.227  3369.7274  3762.727
## 514   1695.594  1442.2067  1948.981
## 515   5904.519  5749.5724  6059.466
## 516   1695.594  1442.2067  1948.981
## 517   3566.227  3369.7274  3762.727
## 518   3098.569  2889.1620  3307.976
## 519   4969.203  4803.2757  5135.129
## 520   5904.519  5749.5724  6059.466
## 521   6839.836  6686.2900  6993.382
## 522   4033.886  3849.0995  4218.672
## 523   3098.569  2889.1620  3307.976
## 524  10581.104 10351.4112 10810.796
## 525   5436.861  5277.5382  5596.184
## 526   3098.569  2889.1620  3307.976
## 527  10581.104 10351.4112 10810.796
## 528   5904.519  5749.5724  6059.466
## 529   9645.787  9443.7311  9847.842
## 530   5904.519  5749.5724  6059.466
## 531   5436.861  5277.5382  5596.184
## 532   5904.519  5749.5724  6059.466
## 533  10581.104 10351.4112 10810.796
## 534  10581.104 10351.4112 10810.796
## 535  16193.004 15757.9600 16628.049
## 536  11984.079 11707.5783 12260.579
## 537   5904.519  5749.5724  6059.466
## 538   5436.861  5277.5382  5596.184
## 539  11516.420 11256.0710 11776.770
## 540   3098.569  2889.1620  3307.976
## 541   5904.519  5749.5724  6059.466
## 542   5904.519  5749.5724  6059.466
## 543   5904.519  5749.5724  6059.466
## 544   5436.861  5277.5382  5596.184
## 545  14322.371 13959.8826 14684.859
## 546   5904.519  5749.5724  6059.466
## 547   1695.594  1442.2067  1948.981
## 548   4501.544  4327.0378  4676.051
## 549   4501.544  4327.0378  4676.051
## 550   5904.519  5749.5724  6059.466
## 551   3566.227  3369.7274  3762.727
## 552   6839.836  6686.2900  6993.382
## 553  15257.688 14859.2091 15656.166
## 554   3566.227  3369.7274  3762.727
## 555   5436.861  5277.5382  5596.184
## 556   2163.252  1925.2445  2401.260
## 557  10113.445  9898.0243 10328.866
## 558   8710.470  8531.6253  8889.314
## 559   5904.519  5749.5724  6059.466
## 560   4033.886  3849.0995  4218.672
## 561   4501.544  4327.0378  4676.051
## 562  17128.321 16656.2692 17600.373
## 563   5904.519  5749.5724  6059.466
## 564   4033.886  3849.0995  4218.672
## 565   5436.861  5277.5382  5596.184
## 566   2163.252  1925.2445  2401.260
## 567   4969.203  4803.2757  5135.129
## 568   4033.886  3849.0995  4218.672
## 569  12451.737 12158.6569 12744.817
## 570   5904.519  5749.5724  6059.466
## 571   3566.227  3369.7274  3762.727
## 572   3566.227  3369.7274  3762.727
## 573   6372.178  6219.1872  6525.168
## 574   4033.886  3849.0995  4218.672
## 575   5904.519  5749.5724  6059.466
## 576   5436.861  5277.5382  5596.184
## 577   3566.227  3369.7274  3762.727
## 578   4033.886  3849.0995  4218.672
## 579   9178.128  8988.3401  9367.916
## 580   4033.886  3849.0995  4218.672
## 581   2630.911  2407.6101  2854.211
## 582   4501.544  4327.0378  4676.051
## 583   4969.203  4803.2757  5135.129
## 584   4033.886  3849.0995  4218.672
## 585  12451.737 12158.6569 12744.817
## 586   1695.594  1442.2067  1948.981
## 587   1695.594  1442.2067  1948.981
## 588   5436.861  5277.5382  5596.184
## 589  15257.688 14859.2091 15656.166
## 590   1695.594  1442.2067  1948.981
## 591   7775.153  7613.1796  7937.126
## 592   4033.886  3849.0995  4218.672
## 593  13387.054 13059.7906 13714.317
## 594   5904.519  5749.5724  6059.466
## 595   5904.519  5749.5724  6059.466
## 596  19934.272 19349.3886 20519.155
## 597   4501.544  4327.0378  4676.051
## 598   4969.203  4803.2757  5135.129
## 599   3566.227  3369.7274  3762.727
## 600   4969.203  4803.2757  5135.129
## 601   7775.153  7613.1796  7937.126
## 602   5904.519  5749.5724  6059.466
## 603   6839.836  6686.2900  6993.382
## 604   1695.594  1442.2067  1948.981
## 605   5904.519  5749.5724  6059.466
## 606   7307.495  7150.9075  7464.082
## 607   4033.886  3849.0995  4218.672
## 608   5436.861  5277.5382  5596.184
## 609   6839.836  6686.2900  6993.382
## 610  11516.420 11256.0710 11776.770
## 611   5436.861  5277.5382  5596.184
## 612   9178.128  8988.3401  9367.916
## 613   4969.203  4803.2757  5135.129
## 614   3098.569  2889.1620  3307.976
## 615   4969.203  4803.2757  5135.129
## 616   1227.935   958.6119  1497.259
## 617  14790.029 14409.6281 15170.430
## 618   5904.519  5749.5724  6059.466
## 619   4033.886  3849.0995  4218.672
## 620   5436.861  5277.5382  5596.184
## 621   4033.886  3849.0995  4218.672
## 622   9645.787  9443.7311  9847.842
## 623   4969.203  4803.2757  5135.129
## 624   5904.519  5749.5724  6059.466
## 625  17595.980 17105.2892 18086.670
## 626   9645.787  9443.7311  9847.842
## 627   5436.861  5277.5382  5596.184
## 628  15725.346 15308.6471 16142.045
## 629   5436.861  5277.5382  5596.184
## 630   4033.886  3849.0995  4218.672
## 631   3098.569  2889.1620  3307.976
## 632   5904.519  5749.5724  6059.466
## 633   4969.203  4803.2757  5135.129
## 634   4033.886  3849.0995  4218.672
## 635   3566.227  3369.7274  3762.727
## 636   9178.128  8988.3401  9367.916
## 637   5904.519  5749.5724  6059.466
## 638   3098.569  2889.1620  3307.976
## 639   3566.227  3369.7274  3762.727
## 640   4501.544  4327.0378  4676.051
## 641   4033.886  3849.0995  4218.672
## 642   5904.519  5749.5724  6059.466
## 643   2630.911  2407.6101  2854.211
## 644   9178.128  8988.3401  9367.916
## 645   4969.203  4803.2757  5135.129
## 646   3566.227  3369.7274  3762.727
## 647  14322.371 13959.8826 14684.859
## 648   8710.470  8531.6253  8889.314
## 649   5904.519  5749.5724  6059.466
## 650  16660.663 16207.1631 17114.163
## 651   6839.836  6686.2900  6993.382
## 652   4969.203  4803.2757  5135.129
## 653   5904.519  5749.5724  6059.466
## 654  15725.346 15308.6471 16142.045
## 655   7307.495  7150.9075  7464.082
## 656   4501.544  4327.0378  4676.051
## 657   1695.594  1442.2067  1948.981
## 658   4969.203  4803.2757  5135.129
## 659   4969.203  4803.2757  5135.129
## 660   3098.569  2889.1620  3307.976
## 661   2630.911  2407.6101  2854.211
## 662   3098.569  2889.1620  3307.976
## 663   2163.252  1925.2445  2401.260
## 664   1695.594  1442.2067  1948.981
## 665   9178.128  8988.3401  9367.916
## 666   2630.911  2407.6101  2854.211
## 667   3098.569  2889.1620  3307.976
## 668   5904.519  5749.5724  6059.466
## 669   4033.886  3849.0995  4218.672
## 670   4969.203  4803.2757  5135.129
## 671   1695.594  1442.2067  1948.981
## 672   1695.594  1442.2067  1948.981
## 673   5904.519  5749.5724  6059.466
## 674   4033.886  3849.0995  4218.672
## 675  12451.737 12158.6569 12744.817
## 676   7307.495  7150.9075  7464.082
## 677   5904.519  5749.5724  6059.466
## 678  14790.029 14409.6281 15170.430
## 679   7307.495  7150.9075  7464.082
## 680   5436.861  5277.5382  5596.184
## 681   4969.203  4803.2757  5135.129
## 682   8242.811  8073.3299  8412.293
## 683   3566.227  3369.7274  3762.727
## 684   1695.594  1442.2067  1948.981
## 685   6372.178  6219.1872  6525.168
## 686   4501.544  4327.0378  4676.051
## 687  10581.104 10351.4112 10810.796
## 688   8710.470  8531.6253  8889.314
## 689   1695.594  1442.2067  1948.981
## 690   1695.594  1442.2067  1948.981
## 691   5904.519  5749.5724  6059.466
## 692   2630.911  2407.6101  2854.211
## 693   4969.203  4803.2757  5135.129
## 694   8710.470  8531.6253  8889.314
## 695   4033.886  3849.0995  4218.672
## 696   9178.128  8988.3401  9367.916
## 697   5436.861  5277.5382  5596.184
## 698   2630.911  2407.6101  2854.211
## 699   3566.227  3369.7274  3762.727
## 700  13387.054 13059.7906 13714.317
## 701   4501.544  4327.0378  4676.051
## 702  11516.420 11256.0710 11776.770
## 703   5904.519  5749.5724  6059.466
## 704   4033.886  3849.0995  4218.672
## 705   6839.836  6686.2900  6993.382
## 706   5436.861  5277.5382  5596.184
## 707  11516.420 11256.0710 11776.770
## 708  10581.104 10351.4112 10810.796
## 709   6839.836  6686.2900  6993.382
## 710   3098.569  2889.1620  3307.976
## 711   5904.519  5749.5724  6059.466
## 712   2630.911  2407.6101  2854.211
## 713   3566.227  3369.7274  3762.727
## 714   4969.203  4803.2757  5135.129
## 715  16193.004 15757.9600 16628.049
## 716   4033.886  3849.0995  4218.672
## 717  11048.762 10804.0503 11293.474
## 718   3098.569  2889.1620  3307.976
## 719   5436.861  5277.5382  5596.184
## 720   5436.861  5277.5382  5596.184
## 721   4501.544  4327.0378  4676.051
## 722  11516.420 11256.0710 11776.770
## 723   2630.911  2407.6101  2854.211
## 724   7307.495  7150.9075  7464.082
## 725   3566.227  3369.7274  3762.727
## 726   3566.227  3369.7274  3762.727
## 727   3098.569  2889.1620  3307.976
## 728   1227.935   958.6119  1497.259
## 729  11516.420 11256.0710 11776.770
## 730   8710.470  8531.6253  8889.314
## 731   5436.861  5277.5382  5596.184
## 732   1695.594  1442.2067  1948.981
## 733   3098.569  2889.1620  3307.976
## 734   4969.203  4803.2757  5135.129
## 735   3098.569  2889.1620  3307.976
## 736  10113.445  9898.0243 10328.866
## 737  13854.712 13509.9471 14199.478
## 738   4969.203  4803.2757  5135.129
## 739  11048.762 10804.0503 11293.474
## 740   3098.569  2889.1620  3307.976
## 741   2630.911  2407.6101  2854.211
## 742  11048.762 10804.0503 11293.474
## 743   4969.203  4803.2757  5135.129
## 744  15257.688 14859.2091 15656.166
## 745   8242.811  8073.3299  8412.293
## 746   9178.128  8988.3401  9367.916
## 747  11048.762 10804.0503 11293.474
## 748  10113.445  9898.0243 10328.866
## 749   4501.544  4327.0378  4676.051
## 750  16660.663 16207.1631 17114.163
## 751  11984.079 11707.5783 12260.579
## 752  10113.445  9898.0243 10328.866
## 753   9645.787  9443.7311  9847.842
## 754  11048.762 10804.0503 11293.474
## 755   2630.911  2407.6101  2854.211
## 756  13387.054 13059.7906 13714.317
## 757   5904.519  5749.5724  6059.466
## 758   8710.470  8531.6253  8889.314
## 759   7775.153  7613.1796  7937.126
## 760   4033.886  3849.0995  4218.672
## 761  15257.688 14859.2091 15656.166
## 762   5436.861  5277.5382  5596.184
## 763   4033.886  3849.0995  4218.672
## 764   1695.594  1442.2067  1948.981
## 765   1695.594  1442.2067  1948.981
## 766   4969.203  4803.2757  5135.129
## 767  14790.029 14409.6281 15170.430
## 768   4969.203  4803.2757  5135.129
## 769   4969.203  4803.2757  5135.129
## 770   3566.227  3369.7274  3762.727
## 771  11984.079 11707.5783 12260.579
## 772   7307.495  7150.9075  7464.082
## 773   9645.787  9443.7311  9847.842
## 774   8242.811  8073.3299  8412.293
## 775  15725.346 15308.6471 16142.045
## 776   9645.787  9443.7311  9847.842
## 777   2163.252  1925.2445  2401.260
## 778   1695.594  1442.2067  1948.981
## 779  10113.445  9898.0243 10328.866
## 780   9645.787  9443.7311  9847.842
## 781   5904.519  5749.5724  6059.466
## 782   4033.886  3849.0995  4218.672
## 783   4501.544  4327.0378  4676.051
## 784   5904.519  5749.5724  6059.466
## 785  10581.104 10351.4112 10810.796
## 786   7775.153  7613.1796  7937.126
## 787   2630.911  2407.6101  2854.211
## 788  11984.079 11707.5783 12260.579
## 789   5904.519  5749.5724  6059.466
## 790  12451.737 12158.6569 12744.817
## 791   5436.861  5277.5382  5596.184
## 792   5436.861  5277.5382  5596.184
## 793   7775.153  7613.1796  7937.126
## 794   3098.569  2889.1620  3307.976
## 795   4501.544  4327.0378  4676.051
## 796   4969.203  4803.2757  5135.129
## 797   4501.544  4327.0378  4676.051
## 798   1695.594  1442.2067  1948.981
## 799   3566.227  3369.7274  3762.727
## 800  11984.079 11707.5783 12260.579
## 801   1695.594  1442.2067  1948.981
## 802   3566.227  3369.7274  3762.727
## 803   3098.569  2889.1620  3307.976
## 804   4033.886  3849.0995  4218.672
## 805  13854.712 13509.9471 14199.478
## 806   8242.811  8073.3299  8412.293
## 807   9645.787  9443.7311  9847.842
## 808   5436.861  5277.5382  5596.184
## 809   6372.178  6219.1872  6525.168
## 810   5904.519  5749.5724  6059.466
## 811  11984.079 11707.5783 12260.579
## 812   5904.519  5749.5724  6059.466
## 813   9645.787  9443.7311  9847.842
## 814  11048.762 10804.0503 11293.474
## 815  11048.762 10804.0503 11293.474
## 816   2163.252  1925.2445  2401.260
## 817   5436.861  5277.5382  5596.184
## 818   9645.787  9443.7311  9847.842
## 819   2630.911  2407.6101  2854.211
## 820   4033.886  3849.0995  4218.672
## 821   3566.227  3369.7274  3762.727
## 822  11516.420 11256.0710 11776.770
## 823   3566.227  3369.7274  3762.727
## 824   4969.203  4803.2757  5135.129
## 825   8710.470  8531.6253  8889.314
## 826   5904.519  5749.5724  6059.466
## 827   4501.544  4327.0378  4676.051
## 828   2630.911  2407.6101  2854.211
## 829   1227.935   958.6119  1497.259
## 830   4033.886  3849.0995  4218.672
## 831   4033.886  3849.0995  4218.672
## 832   2163.252  1925.2445  2401.260
## 833   5436.861  5277.5382  5596.184
## 834   3098.569  2889.1620  3307.976
## 835   4033.886  3849.0995  4218.672
## 836   4033.886  3849.0995  4218.672
## 837   6372.178  6219.1872  6525.168
## 838  10581.104 10351.4112 10810.796
## 839  11516.420 11256.0710 11776.770
## 840   5436.861  5277.5382  5596.184
## 841   5904.519  5749.5724  6059.466
## 842   4033.886  3849.0995  4218.672
## 843   1695.594  1442.2067  1948.981
## 844   4969.203  4803.2757  5135.129
## 845   5904.519  5749.5724  6059.466
## 846   8710.470  8531.6253  8889.314
## 847   8242.811  8073.3299  8412.293
## 848   7775.153  7613.1796  7937.126
## 849   2163.252  1925.2445  2401.260
## 850   4501.544  4327.0378  4676.051
## 851   1695.594  1442.2067  1948.981
## 852  14322.371 13959.8826 14684.859
## 853   5904.519  5749.5724  6059.466
## 854   1695.594  1442.2067  1948.981
## 855   4501.544  4327.0378  4676.051
## 856   7775.153  7613.1796  7937.126
## 857   2163.252  1925.2445  2401.260
## 858   4033.886  3849.0995  4218.672
## 859  13387.054 13059.7906 13714.317
## 860   4033.886  3849.0995  4218.672
## 861   1695.594  1442.2067  1948.981
## 862  14322.371 13959.8826 14684.859
## 863   4033.886  3849.0995  4218.672
## 864   3566.227  3369.7274  3762.727
## 865   3566.227  3369.7274  3762.727
## 866   4969.203  4803.2757  5135.129
## 867   3566.227  3369.7274  3762.727
## 868  16193.004 15757.9600 16628.049
## 869   4033.886  3849.0995  4218.672
## 870  12919.396 12609.3757 13229.415
## 871   8242.811  8073.3299  8412.293
## 872   1695.594  1442.2067  1948.981
## 873   5904.519  5749.5724  6059.466
## 874   4501.544  4327.0378  4676.051
## 875   5904.519  5749.5724  6059.466
## 876  10581.104 10351.4112 10810.796
## 877   2163.252  1925.2445  2401.260
## 878   6839.836  6686.2900  6993.382
## 879   5904.519  5749.5724  6059.466
## 880   6839.836  6686.2900  6993.382
## 881   2163.252  1925.2445  2401.260
## 882   5904.519  5749.5724  6059.466
## 883   9178.128  8988.3401  9367.916
## 884   8242.811  8073.3299  8412.293
## 885   4501.544  4327.0378  4676.051
## 886   3566.227  3369.7274  3762.727
## 887   6839.836  6686.2900  6993.382
## 888  10581.104 10351.4112 10810.796
## 889   8710.470  8531.6253  8889.314
## 890   5436.861  5277.5382  5596.184
## 891  16660.663 16207.1631 17114.163
## 892   5904.519  5749.5724  6059.466
## 893   1695.594  1442.2067  1948.981
## 894   2630.911  2407.6101  2854.211
## 895  18063.638 17554.2327 18573.043
## 896   4033.886  3849.0995  4218.672
## 897   5904.519  5749.5724  6059.466
## 898   7307.495  7150.9075  7464.082
## 899  12919.396 12609.3757 13229.415
## 900  11984.079 11707.5783 12260.579
## 901   6839.836  6686.2900  6993.382
## 902   4501.544  4327.0378  4676.051
## 903   3566.227  3369.7274  3762.727
## 904   4033.886  3849.0995  4218.672
## 905  12919.396 12609.3757 13229.415
## 906   5436.861  5277.5382  5596.184
## 907   2163.252  1925.2445  2401.260
## 908  13387.054 13059.7906 13714.317
## 909   5904.519  5749.5724  6059.466
## 910   1695.594  1442.2067  1948.981
## 911   1695.594  1442.2067  1948.981
## 912   1695.594  1442.2067  1948.981
## 913   4969.203  4803.2757  5135.129
## 914  13387.054 13059.7906 13714.317
## 915  17128.321 16656.2692 17600.373
## 916   2163.252  1925.2445  2401.260
## 917  13387.054 13059.7906 13714.317
## 918   3098.569  2889.1620  3307.976
## 919  15725.346 15308.6471 16142.045
## 920  12919.396 12609.3757 13229.415
## 921   8242.811  8073.3299  8412.293
## 922   3566.227  3369.7274  3762.727
## 923  13387.054 13059.7906 13714.317
## 924   7775.153  7613.1796  7937.126
## 925   3098.569  2889.1620  3307.976
## 926   9645.787  9443.7311  9847.842
## 927  11984.079 11707.5783 12260.579
## 928   9645.787  9443.7311  9847.842
## 929   5904.519  5749.5724  6059.466
## 930   2163.252  1925.2445  2401.260
## 931   4969.203  4803.2757  5135.129
## 932   5904.519  5749.5724  6059.466
## 933   5904.519  5749.5724  6059.466
## 934   3566.227  3369.7274  3762.727
## 935   2163.252  1925.2445  2401.260
## 936   5904.519  5749.5724  6059.466
## 937  11516.420 11256.0710 11776.770
## 938  11048.762 10804.0503 11293.474
## 939   2163.252  1925.2445  2401.260
## 940   5904.519  5749.5724  6059.466
## 941   4033.886  3849.0995  4218.672
## 942   5904.519  5749.5724  6059.466
## 943   5904.519  5749.5724  6059.466
## 944   5904.519  5749.5724  6059.466
## 945   5904.519  5749.5724  6059.466
## 946  12919.396 12609.3757 13229.415
## 947   5436.861  5277.5382  5596.184
## 948   5904.519  5749.5724  6059.466
## 949   5436.861  5277.5382  5596.184
## 950   5436.861  5277.5382  5596.184
## 951   5904.519  5749.5724  6059.466
## 952  10113.445  9898.0243 10328.866
## 953   2630.911  2407.6101  2854.211
## 954   5904.519  5749.5724  6059.466
## 955  11048.762 10804.0503 11293.474
## 956  11984.079 11707.5783 12260.579
## 957  18063.638 17554.2327 18573.043
## 958   4033.886  3849.0995  4218.672
## 959   5904.519  5749.5724  6059.466
## 960   5436.861  5277.5382  5596.184
## 961   5904.519  5749.5724  6059.466
## 962   5436.861  5277.5382  5596.184
## 963  16660.663 16207.1631 17114.163
## 964   6372.178  6219.1872  6525.168
## 965   5904.519  5749.5724  6059.466
## 966   4501.544  4327.0378  4676.051
## 967  15725.346 15308.6471 16142.045
## 968   4501.544  4327.0378  4676.051
## 969   9178.128  8988.3401  9367.916
## 970   6372.178  6219.1872  6525.168
## 971   3566.227  3369.7274  3762.727
## 972  14790.029 14409.6281 15170.430
## 973   1227.935   958.6119  1497.259
## 974   5904.519  5749.5724  6059.466
## 975   4969.203  4803.2757  5135.129
## 976  12451.737 12158.6569 12744.817
## 977  16660.663 16207.1631 17114.163
## 978   3566.227  3369.7274  3762.727
## 979   8242.811  8073.3299  8412.293
## 980   5904.519  5749.5724  6059.466
## 981   2630.911  2407.6101  2854.211
## 982   3566.227  3369.7274  3762.727
## 983   3098.569  2889.1620  3307.976
## 984   7775.153  7613.1796  7937.126
## 985   3566.227  3369.7274  3762.727
## 986   5904.519  5749.5724  6059.466
## 987   4969.203  4803.2757  5135.129
## 988   7775.153  7613.1796  7937.126
## 989   6839.836  6686.2900  6993.382
## 990   4969.203  4803.2757  5135.129
## 991   4969.203  4803.2757  5135.129
## 992   3098.569  2889.1620  3307.976
## 993   7307.495  7150.9075  7464.082
## 994   4033.886  3849.0995  4218.672
## 995  12451.737 12158.6569 12744.817
## 996  10581.104 10351.4112 10810.796
## 997   4033.886  3849.0995  4218.672
## 998   4969.203  4803.2757  5135.129
## 999   3566.227  3369.7274  3762.727
## 1000 11048.762 10804.0503 11293.474
## 1001  6839.836  6686.2900  6993.382
## 1002  4969.203  4803.2757  5135.129
## 1003  5904.519  5749.5724  6059.466
## 1004  4501.544  4327.0378  4676.051
## 1005  4969.203  4803.2757  5135.129
## 1006  5904.519  5749.5724  6059.466
## 1007 10581.104 10351.4112 10810.796
## 1008  5436.861  5277.5382  5596.184
## 1009 14790.029 14409.6281 15170.430
## 1010 16193.004 15757.9600 16628.049
## 1011 15725.346 15308.6471 16142.045
## 1012  8242.811  8073.3299  8412.293
## 1013  1695.594  1442.2067  1948.981
## 1014  4969.203  4803.2757  5135.129
## 1015  5436.861  5277.5382  5596.184
## 1016  5904.519  5749.5724  6059.466
## 1017  1695.594  1442.2067  1948.981
## 1018  4033.886  3849.0995  4218.672
## 1019  5904.519  5749.5724  6059.466
## 1020  6372.178  6219.1872  6525.168
## 1021  9178.128  8988.3401  9367.916
## 1022  4033.886  3849.0995  4218.672
## 1023  4501.544  4327.0378  4676.051
## 1024  3566.227  3369.7274  3762.727
## 1025 13387.054 13059.7906 13714.317
## 1026  3566.227  3369.7274  3762.727
## 1027  4501.544  4327.0378  4676.051
## 1028  4501.544  4327.0378  4676.051
## 1029  4501.544  4327.0378  4676.051
## 1030  6372.178  6219.1872  6525.168
## 1031  7307.495  7150.9075  7464.082
## 1032 14322.371 13959.8826 14684.859
## 1033  6372.178  6219.1872  6525.168
## 1034  5904.519  5749.5724  6059.466
## 1035 12451.737 12158.6569 12744.817
## 1036  4969.203  4803.2757  5135.129
## 1037  4501.544  4327.0378  4676.051
## 1038  5904.519  5749.5724  6059.466
## 1039  8242.811  8073.3299  8412.293
## 1040  2163.252  1925.2445  2401.260
## 1041  8710.470  8531.6253  8889.314
## 1042  4033.886  3849.0995  4218.672
## 1043  4501.544  4327.0378  4676.051
## 1044 17595.980 17105.2892 18086.670
## 1045 10581.104 10351.4112 10810.796
## 1046  4969.203  4803.2757  5135.129
## 1047  4033.886  3849.0995  4218.672
## 1048  3566.227  3369.7274  3762.727
## 1049  8242.811  8073.3299  8412.293
## 1050  3098.569  2889.1620  3307.976
## 1051  6839.836  6686.2900  6993.382
## 1052  6372.178  6219.1872  6525.168
## 1053  1695.594  1442.2067  1948.981
## 1054  7307.495  7150.9075  7464.082
## 1055 14790.029 14409.6281 15170.430
## 1056  8710.470  8531.6253  8889.314
## 1057  3566.227  3369.7274  3762.727
## 1058  4501.544  4327.0378  4676.051
## 1059  8710.470  8531.6253  8889.314
## 1060  1695.594  1442.2067  1948.981
## 1061  3098.569  2889.1620  3307.976
## 1062  1695.594  1442.2067  1948.981
## 1063  8710.470  8531.6253  8889.314
## 1064  5904.519  5749.5724  6059.466
## 1065  4033.886  3849.0995  4218.672
## 1066  3098.569  2889.1620  3307.976
## 1067  4969.203  4803.2757  5135.129
## 1068  6372.178  6219.1872  6525.168
## 1069  4969.203  4803.2757  5135.129
## 1070  1695.594  1442.2067  1948.981
## 1071  3566.227  3369.7274  3762.727
## 1072  5904.519  5749.5724  6059.466
## 1073  3098.569  2889.1620  3307.976
## 1074  4969.203  4803.2757  5135.129
## 1075  7775.153  7613.1796  7937.126
## 1076  5904.519  5749.5724  6059.466
## 1077 13387.054 13059.7906 13714.317
## 1078  6372.178  6219.1872  6525.168
## 1079 12451.737 12158.6569 12744.817
## 1080  5436.861  5277.5382  5596.184
## 1081 11984.079 11707.5783 12260.579
## 1082  6372.178  6219.1872  6525.168
## 1083  3566.227  3369.7274  3762.727
## 1084  8242.811  8073.3299  8412.293
## 1085  5904.519  5749.5724  6059.466
## 1086  4501.544  4327.0378  4676.051
## 1087 16193.004 15757.9600 16628.049
## 1088  6839.836  6686.2900  6993.382
## 1089  3098.569  2889.1620  3307.976
## 1090  5904.519  5749.5724  6059.466
## 1091  5436.861  5277.5382  5596.184
## 1092  3566.227  3369.7274  3762.727
## 1093  4969.203  4803.2757  5135.129
## 1094 12451.737 12158.6569 12744.817
## 1095  5436.861  5277.5382  5596.184
## 1096  8242.811  8073.3299  8412.293
## 1097 11048.762 10804.0503 11293.474
## 1098  2163.252  1925.2445  2401.260
## 1099  4969.203  4803.2757  5135.129
## 1100  5904.519  5749.5724  6059.466
## 1101  4033.886  3849.0995  4218.672
## 1102  6839.836  6686.2900  6993.382
## 1103  4501.544  4327.0378  4676.051
## 1104  9645.787  9443.7311  9847.842
## 1105  3566.227  3369.7274  3762.727
## 1106  4969.203  4803.2757  5135.129
## 1107  5904.519  5749.5724  6059.466
## 1108  5904.519  5749.5724  6059.466
## 1109  2630.911  2407.6101  2854.211
## 1110  5436.861  5277.5382  5596.184
## 1111  1695.594  1442.2067  1948.981
## 1112 17128.321 16656.2692 17600.373
## 1113  4501.544  4327.0378  4676.051
## 1114  5436.861  5277.5382  5596.184
## 1115  5904.519  5749.5724  6059.466
## 1116  1695.594  1442.2067  1948.981
## 1117 18063.638 17554.2327 18573.043
## 1118  5436.861  5277.5382  5596.184
## 1119  1695.594  1442.2067  1948.981
## 1120  5904.519  5749.5724  6059.466
## 1121  4969.203  4803.2757  5135.129
## 1122  8242.811  8073.3299  8412.293
## 1123  5904.519  5749.5724  6059.466
## 1124  5904.519  5749.5724  6059.466
## 1125  6372.178  6219.1872  6525.168
## 1126  4033.886  3849.0995  4218.672
## 1127 13854.712 13509.9471 14199.478
## 1128  3098.569  2889.1620  3307.976
## 1129  5436.861  5277.5382  5596.184
## 1130 12451.737 12158.6569 12744.817
## 1131  5904.519  5749.5724  6059.466
## 1132  4969.203  4803.2757  5135.129
## 1133  3566.227  3369.7274  3762.727
## 1134  4969.203  4803.2757  5135.129
## 1135  1695.594  1442.2067  1948.981
## 1136 13854.712 13509.9471 14199.478
## 1137  1695.594  1442.2067  1948.981
## 1138  3098.569  2889.1620  3307.976
## 1139 16193.004 15757.9600 16628.049
## 1140  4033.886  3849.0995  4218.672
## 1141 11984.079 11707.5783 12260.579
## 1142  4033.886  3849.0995  4218.672
## 1143  5904.519  5749.5724  6059.466
## 1144  5904.519  5749.5724  6059.466
## 1145  5904.519  5749.5724  6059.466
## 1146  4501.544  4327.0378  4676.051
## 1147  5436.861  5277.5382  5596.184
## 1148  5904.519  5749.5724  6059.466
## 1149  5904.519  5749.5724  6059.466
## 1150  4501.544  4327.0378  4676.051
## 1151  8710.470  8531.6253  8889.314
## 1152  4033.886  3849.0995  4218.672
## 1153  2630.911  2407.6101  2854.211
## 1154  1227.935   958.6119  1497.259
## 1155 13854.712 13509.9471 14199.478
## 1156  6372.178  6219.1872  6525.168
## 1157  9645.787  9443.7311  9847.842
## 1158  8242.811  8073.3299  8412.293
## 1159  5436.861  5277.5382  5596.184
## 1160  5904.519  5749.5724  6059.466
## 1161  5904.519  5749.5724  6059.466
## 1162  5904.519  5749.5724  6059.466
## 1163  8242.811  8073.3299  8412.293
## 1164  4969.203  4803.2757  5135.129
## 1165  9645.787  9443.7311  9847.842
## 1166  7775.153  7613.1796  7937.126
## 1167 11984.079 11707.5783 12260.579
## 1168  4501.544  4327.0378  4676.051
## 1169  4033.886  3849.0995  4218.672
## 1170  3566.227  3369.7274  3762.727
## 1171  4033.886  3849.0995  4218.672
## 1172  5904.519  5749.5724  6059.466
## 1173  4969.203  4803.2757  5135.129
## 1174  5436.861  5277.5382  5596.184
## 1175  4501.544  4327.0378  4676.051
## 1176  4501.544  4327.0378  4676.051
## 1177 13854.712 13509.9471 14199.478
## 1178 10113.445  9898.0243 10328.866
## 1179  2163.252  1925.2445  2401.260
## 1180  6372.178  6219.1872  6525.168
## 1181  8242.811  8073.3299  8412.293
## 1182 15257.688 14859.2091 15656.166
## 1183  3098.569  2889.1620  3307.976
## 1184  7307.495  7150.9075  7464.082
## 1185 18063.638 17554.2327 18573.043
## 1186  7775.153  7613.1796  7937.126
## 1187  7307.495  7150.9075  7464.082
## 1188 10113.445  9898.0243 10328.866
## 1189  5904.519  5749.5724  6059.466
## 1190  4033.886  3849.0995  4218.672
## 1191  5904.519  5749.5724  6059.466
## 1192  5904.519  5749.5724  6059.466
## 1193  9178.128  8988.3401  9367.916
## 1194  3098.569  2889.1620  3307.976
## 1195 14790.029 14409.6281 15170.430
## 1196 11984.079 11707.5783 12260.579
## 1197 11048.762 10804.0503 11293.474
## 1198  2163.252  1925.2445  2401.260
## 1199  4501.544  4327.0378  4676.051
## 1200  5904.519  5749.5724  6059.466
## 1201  4969.203  4803.2757  5135.129
## 1202  3566.227  3369.7274  3762.727
## 1203  4501.544  4327.0378  4676.051
## 1204  6372.178  6219.1872  6525.168
## 1205 10113.445  9898.0243 10328.866
## 1206  1695.594  1442.2067  1948.981
## 1207  4501.544  4327.0378  4676.051
## 1208  4969.203  4803.2757  5135.129
## 1209  8242.811  8073.3299  8412.293
## 1210 10113.445  9898.0243 10328.866
## 1211  7775.153  7613.1796  7937.126
## 1212  4033.886  3849.0995  4218.672
## 1213  5904.519  5749.5724  6059.466
## 1214  2630.911  2407.6101  2854.211
## 1215  5436.861  5277.5382  5596.184
## 1216  4033.886  3849.0995  4218.672
## 1217  5904.519  5749.5724  6059.466
## 1218  3566.227  3369.7274  3762.727
## 1219  5904.519  5749.5724  6059.466
## 1220  5436.861  5277.5382  5596.184
## 1221  9178.128  8988.3401  9367.916
## 1222 12919.396 12609.3757 13229.415
## 1223  1695.594  1442.2067  1948.981
## 1224 12919.396 12609.3757 13229.415
## 1225  2630.911  2407.6101  2854.211
## 1226 11048.762 10804.0503 11293.474
## 1227  5904.519  5749.5724  6059.466
## 1228  4033.886  3849.0995  4218.672
## 1229  5904.519  5749.5724  6059.466
## 1230  9645.787  9443.7311  9847.842
## 1231  4033.886  3849.0995  4218.672
## 1232 10113.445  9898.0243 10328.866
## 1233  9178.128  8988.3401  9367.916
## 1234  5904.519  5749.5724  6059.466
## 1235  3098.569  2889.1620  3307.976
## 1236  7307.495  7150.9075  7464.082
## 1237  8710.470  8531.6253  8889.314
## 1238  5904.519  5749.5724  6059.466
## 1239  2630.911  2407.6101  2854.211
## 1240  5436.861  5277.5382  5596.184
## 1241  5436.861  5277.5382  5596.184
## 1242  5904.519  5749.5724  6059.466
## 1243 11048.762 10804.0503 11293.474
## 1244  5436.861  5277.5382  5596.184
## 1245  5904.519  5749.5724  6059.466
## 1246  2630.911  2407.6101  2854.211
## 1247  4033.886  3849.0995  4218.672
## 1248  4033.886  3849.0995  4218.672
## 1249  4033.886  3849.0995  4218.672
## 1250  2163.252  1925.2445  2401.260
## 1251  5904.519  5749.5724  6059.466
## 1252  6839.836  6686.2900  6993.382
## 1253  4033.886  3849.0995  4218.672
## 1254  7307.495  7150.9075  7464.082
## 1255  4969.203  4803.2757  5135.129
## 1256  6372.178  6219.1872  6525.168
## 1257  5436.861  5277.5382  5596.184
## 1258  5904.519  5749.5724  6059.466
## 1259  1695.594  1442.2067  1948.981
## 1260  5904.519  5749.5724  6059.466
## 1261  6839.836  6686.2900  6993.382
## 1262  8242.811  8073.3299  8412.293
## 1263  4033.886  3849.0995  4218.672
## 1264  4501.544  4327.0378  4676.051
## 1265 17128.321 16656.2692 17600.373
## 1266  6372.178  6219.1872  6525.168
## 1267  3566.227  3369.7274  3762.727
## 1268  8242.811  8073.3299  8412.293
## 1269 13854.712 13509.9471 14199.478
## 1270  5904.519  5749.5724  6059.466
## 1271  4033.886  3849.0995  4218.672
## 1272  1695.594  1442.2067  1948.981
## 1273  3566.227  3369.7274  3762.727
## 1274  1695.594  1442.2067  1948.981
## 1275  7307.495  7150.9075  7464.082
## 1276  8242.811  8073.3299  8412.293
## 1277  3566.227  3369.7274  3762.727
## 1278 12451.737 12158.6569 12744.817
## 1279  8242.811  8073.3299  8412.293
## 1280  4033.886  3849.0995  4218.672
## 1281 10113.445  9898.0243 10328.866
## 1282  5904.519  5749.5724  6059.466
## 1283  7775.153  7613.1796  7937.126
## 1284  3566.227  3369.7274  3762.727
## 1285  5436.861  5277.5382  5596.184
## 1286  4033.886  3849.0995  4218.672
## 1287  4501.544  4327.0378  4676.051
## 1288  5904.519  5749.5724  6059.466
## 1289  8242.811  8073.3299  8412.293
## 1290  7307.495  7150.9075  7464.082
## 1291  6372.178  6219.1872  6525.168
## 1292  5904.519  5749.5724  6059.466
## 1293  4501.544  4327.0378  4676.051
## 1294  4501.544  4327.0378  4676.051
## 1295  6372.178  6219.1872  6525.168
## 1296 11984.079 11707.5783 12260.579
## 1297  5436.861  5277.5382  5596.184
## 1298  4033.886  3849.0995  4218.672
## 1299  7307.495  7150.9075  7464.082
## 1300  6839.836  6686.2900  6993.382
## 1301  5904.519  5749.5724  6059.466
## 1302 18531.297 18003.1078 19059.485
## 1303  4033.886  3849.0995  4218.672
## 1304 14322.371 13959.8826 14684.859
## 1305  8242.811  8073.3299  8412.293
## 1306  7775.153  7613.1796  7937.126
## 1307  5436.861  5277.5382  5596.184
## 1308  2630.911  2407.6101  2854.211
## 1309 10581.104 10351.4112 10810.796
## 1310  3566.227  3369.7274  3762.727
## 1311 11984.079 11707.5783 12260.579
## 1312  1227.935   958.6119  1497.259
## 1313  2163.252  1925.2445  2401.260
## 1314  3098.569  2889.1620  3307.976
## 1315  5904.519  5749.5724  6059.466
## 1316  8242.811  8073.3299  8412.293
## 1317  4501.544  4327.0378  4676.051
## 1318  4033.886  3849.0995  4218.672
## 1319  6372.178  6219.1872  6525.168
## 1320  3098.569  2889.1620  3307.976
## 1321  5904.519  5749.5724  6059.466
## 1322  4501.544  4327.0378  4676.051
## 1323  6839.836  6686.2900  6993.382
## 1324  2630.911  2407.6101  2854.211
## 1325  6372.178  6219.1872  6525.168
## 1326  4969.203  4803.2757  5135.129
## 1327  4501.544  4327.0378  4676.051
## 1328 12919.396 12609.3757 13229.415
## 1329  5436.861  5277.5382  5596.184
## 1330  1695.594  1442.2067  1948.981
## 1331 11048.762 10804.0503 11293.474
## 1332 14790.029 14409.6281 15170.430
## 1333  1695.594  1442.2067  1948.981
## 1334  7775.153  7613.1796  7937.126
## 1335  4969.203  4803.2757  5135.129
## 1336  4501.544  4327.0378  4676.051
## 1337 10113.445  9898.0243 10328.866
## 1338  1695.594  1442.2067  1948.981
## 1339  1695.594  1442.2067  1948.981
## 1340  1695.594  1442.2067  1948.981
## 1341  5904.519  5749.5724  6059.466
## 1342  5904.519  5749.5724  6059.466
## 1343  5436.861  5277.5382  5596.184
## 1344  6372.178  6219.1872  6525.168
## 1345  8710.470  8531.6253  8889.314
## 1346  3098.569  2889.1620  3307.976
## 1347  5904.519  5749.5724  6059.466
## 1348  5904.519  5749.5724  6059.466
## 1349 11516.420 11256.0710 11776.770
## 1350  1695.594  1442.2067  1948.981
## 1351  5436.861  5277.5382  5596.184
## 1352 12451.737 12158.6569 12744.817
## 1353  5904.519  5749.5724  6059.466
## 1354  3566.227  3369.7274  3762.727
## 1355  3566.227  3369.7274  3762.727
## 1356  6839.836  6686.2900  6993.382
## 1357  7775.153  7613.1796  7937.126
## 1358  9645.787  9443.7311  9847.842
## 1359  4969.203  4803.2757  5135.129
## 1360  5436.861  5277.5382  5596.184
## 1361  3098.569  2889.1620  3307.976
## 1362  4969.203  4803.2757  5135.129
## 1363  6839.836  6686.2900  6993.382
## 1364  5904.519  5749.5724  6059.466
## 1365  4501.544  4327.0378  4676.051
## 1366  1695.594  1442.2067  1948.981
## 1367  5904.519  5749.5724  6059.466
## 1368  4033.886  3849.0995  4218.672
## 1369  8710.470  8531.6253  8889.314
## 1370  4033.886  3849.0995  4218.672
## 1371  8710.470  8531.6253  8889.314
## 1372  4033.886  3849.0995  4218.672
## 1373  5904.519  5749.5724  6059.466
## 1374 10581.104 10351.4112 10810.796
## 1375 14790.029 14409.6281 15170.430
## 1376  4969.203  4803.2757  5135.129
## 1377  5904.519  5749.5724  6059.466
## 1378 14322.371 13959.8826 14684.859
## 1379  7775.153  7613.1796  7937.126
## 1380  1695.594  1442.2067  1948.981
## 1381  4033.886  3849.0995  4218.672
## 1382  3566.227  3369.7274  3762.727
## 1383  3098.569  2889.1620  3307.976
## 1384  3566.227  3369.7274  3762.727
## 1385  7775.153  7613.1796  7937.126
## 1386  5436.861  5277.5382  5596.184
## 1387  4969.203  4803.2757  5135.129
## 1388  4033.886  3849.0995  4218.672
## 1389  5436.861  5277.5382  5596.184
## 1390  5904.519  5749.5724  6059.466
## 1391  4033.886  3849.0995  4218.672
## 1392 10581.104 10351.4112 10810.796
## 1393  5904.519  5749.5724  6059.466
## 1394  4501.544  4327.0378  4676.051
## 1395  4969.203  4803.2757  5135.129
## 1396  5904.519  5749.5724  6059.466
## 1397  8242.811  8073.3299  8412.293
## 1398  5436.861  5277.5382  5596.184
## 1399  5436.861  5277.5382  5596.184
## 1400  5904.519  5749.5724  6059.466
## 1401  4501.544  4327.0378  4676.051
## 1402 17595.980 17105.2892 18086.670
## 1403  1695.594  1442.2067  1948.981
## 1404 11048.762 10804.0503 11293.474
## 1405 10581.104 10351.4112 10810.796
## 1406  7307.495  7150.9075  7464.082
## 1407  5436.861  5277.5382  5596.184
## 1408  3098.569  2889.1620  3307.976
## 1409  3566.227  3369.7274  3762.727
## 1410  5904.519  5749.5724  6059.466
## 1411  8242.811  8073.3299  8412.293
## 1412  4033.886  3849.0995  4218.672
## 1413  6839.836  6686.2900  6993.382
## 1414  4501.544  4327.0378  4676.051
## 1415 12919.396 12609.3757 13229.415
## 1416  1695.594  1442.2067  1948.981
## 1417  8710.470  8531.6253  8889.314
## 1418  2630.911  2407.6101  2854.211
## 1419  5904.519  5749.5724  6059.466
## 1420  5436.861  5277.5382  5596.184
## 1421  6839.836  6686.2900  6993.382
## 1422  7775.153  7613.1796  7937.126
## 1423  3566.227  3369.7274  3762.727
## 1424  3098.569  2889.1620  3307.976
## 1425  5904.519  5749.5724  6059.466
## 1426  5904.519  5749.5724  6059.466
## 1427  4033.886  3849.0995  4218.672
## 1428  4969.203  4803.2757  5135.129
## 1429  2630.911  2407.6101  2854.211
## 1430  9645.787  9443.7311  9847.842
## 1431 10581.104 10351.4112 10810.796
## 1432  7775.153  7613.1796  7937.126
## 1433  8710.470  8531.6253  8889.314
## 1434  4033.886  3849.0995  4218.672
## 1435  8710.470  8531.6253  8889.314
## 1436  4033.886  3849.0995  4218.672
## 1437  2163.252  1925.2445  2401.260
## 1438 11048.762 10804.0503 11293.474
## 1439  1695.594  1442.2067  1948.981
## 1440  5904.519  5749.5724  6059.466
## 1441  9645.787  9443.7311  9847.842
## 1442  7307.495  7150.9075  7464.082
## 1443  3098.569  2889.1620  3307.976
## 1444 12451.737 12158.6569 12744.817
## 1445  7775.153  7613.1796  7937.126
## 1446 11048.762 10804.0503 11293.474
## 1447  4969.203  4803.2757  5135.129
## 1448  8242.811  8073.3299  8412.293
## 1449  7775.153  7613.1796  7937.126
## 1450  3098.569  2889.1620  3307.976
## 1451  5436.861  5277.5382  5596.184
## 1452  5904.519  5749.5724  6059.466
## 1453  6839.836  6686.2900  6993.382
## 1454  4969.203  4803.2757  5135.129
## 1455  4969.203  4803.2757  5135.129
## 1456  4969.203  4803.2757  5135.129
## 1457  5904.519  5749.5724  6059.466
## 1458 10581.104 10351.4112 10810.796
## 1459  3098.569  2889.1620  3307.976
## 1460  5904.519  5749.5724  6059.466
## 1461  3566.227  3369.7274  3762.727
## 1462 10581.104 10351.4112 10810.796
## 1463 11048.762 10804.0503 11293.474
## 1464  5904.519  5749.5724  6059.466
## 1465  3566.227  3369.7274  3762.727
## 1466  9178.128  8988.3401  9367.916
## 1467  5436.861  5277.5382  5596.184
## 1468  4033.886  3849.0995  4218.672
## 1469  9178.128  8988.3401  9367.916
## 1470  4033.886  3849.0995  4218.672

5.3. Regresión Lineal Múltiple

Resumen Variables Cuantitativas
summary(desercion_empleados_IBM_ETL$Age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   18.00   30.00   36.00   36.92   43.00   60.00
summary(desercion_empleados_IBM_ETL$MonthlyIncome)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1009    2911    4919    6503    8379   19999
summary(desercion_empleados_IBM_ETL$DistanceFromHome)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   7.000   9.193  14.000  29.000
summary(desercion_empleados_IBM_ETL$TotalWorkingYears)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    6.00   10.00   11.28   15.00   40.00
summary(desercion_empleados_IBM_ETL$YearsAtCompany)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   3.000   5.000   7.008   9.000  40.000
summary(desercion_empleados_IBM_ETL$YearsSinceLastPromotion)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.000   2.188   3.000  15.000
Resumen Variables Cualitativas
table(desercion_empleados_IBM_ETL$WorkLifeBalance)
## 
##   1   2   3   4 
##  80 344 893 153
prop.table(table(desercion_empleados_IBM_ETL$WorkLifeBalancet))
## Warning: Unknown or uninitialised column: `WorkLifeBalancet`.
## numeric(0)
barplot(table(desercion_empleados_IBM_ETL$WorkLifeBalance))

table(desercion_empleados_IBM_ETL$BusinessTravel)
## 
##        Non-Travel Travel_Frequently     Travel_Rarely 
##               150               277              1043
prop.table(table(desercion_empleados_IBM_ETL$BusinessTravel))
## 
##        Non-Travel Travel_Frequently     Travel_Rarely 
##         0.1020408         0.1884354         0.7095238
barplot(table(desercion_empleados_IBM_ETL$BusinessTravel))

table(desercion_empleados_IBM_ETL$EducationField)
## 
##  Human Resources    Life Sciences        Marketing          Medical 
##               27              606              159              464 
##            Other Technical Degree 
##               82              132
prop.table(table(desercion_empleados_IBM_ETL$EducationField))
## 
##  Human Resources    Life Sciences        Marketing          Medical 
##       0.01836735       0.41224490       0.10816327       0.31564626 
##            Other Technical Degree 
##       0.05578231       0.08979592
barplot(table(desercion_empleados_IBM_ETL$EducationField))

table(desercion_empleados_IBM_ETL$JobRole)
## 
## Healthcare Representative           Human Resources     Laboratory Technician 
##                       131                        52                       259 
##                   Manager    Manufacturing Director         Research Director 
##                       102                       145                        80 
##        Research Scientist           Sales Executive      Sales Representative 
##                       292                       326                        83
prop.table(table(desercion_empleados_IBM_ETL$JobRole))
## 
## Healthcare Representative           Human Resources     Laboratory Technician 
##                0.08911565                0.03537415                0.17619048 
##                   Manager    Manufacturing Director         Research Director 
##                0.06938776                0.09863946                0.05442177 
##        Research Scientist           Sales Executive      Sales Representative 
##                0.19863946                0.22176871                0.05646259
barplot(table(desercion_empleados_IBM_ETL$JobRole))

table(desercion_empleados_IBM_ETL$MaritalStatus)
## 
## Divorced  Married   Single 
##      327      673      470
prop.table(table(desercion_empleados_IBM_ETL$MaritalStatus))
## 
##  Divorced   Married    Single 
## 0.2224490 0.4578231 0.3197279
barplot(table(desercion_empleados_IBM_ETL$MaritalStatus))

table(desercion_empleados_IBM_ETL$OverTime)
## 
##   No  Yes 
## 1054  416
prop.table(table(desercion_empleados_IBM_ETL$OverTime))
## 
##        No       Yes 
## 0.7170068 0.2829932
barplot(table(desercion_empleados_IBM_ETL$OverTime))

table(desercion_empleados_IBM_ETL$Gender)
## 
## Female   Male 
##    588    882
prop.table(table(desercion_empleados_IBM_ETL$Gender))
## 
## Female   Male 
##    0.4    0.6
barplot(table(desercion_empleados_IBM_ETL$Gender))

table(desercion_empleados_IBM_ETL$JobLevel)
## 
##   1   2   3   4   5 
## 543 534 218 106  69
prop.table(table(desercion_empleados_IBM_ETL$JobLevel))
## 
##          1          2          3          4          5 
## 0.36938776 0.36326531 0.14829932 0.07210884 0.04693878
barplot(table(desercion_empleados_IBM_ETL$JobLevel))

Diagramas de Dispersión Variables Cuantitativas
pairs(~MonthlyIncome + TotalWorkingYears + DistanceFromHome + YearsAtCompany + Age, data = desercion_empleados_IBM_ETL)

5.3.1 Formulación del modelo de RLM entre las variables de estudio.

Resumen y ANOVA del Modelo RLM Total
summary(lm(desercion_empleados_IBM_ETL$MonthlyIncome~desercion_empleados_IBM_ETL$Age+desercion_empleados_IBM_ETL$DistanceFromHome+desercion_empleados_IBM_ETL$TotalWorkingYears+desercion_empleados_IBM_ETL$YearsAtCompany+as.factor(desercion_empleados_IBM_ETL$Gender)+as.factor(desercion_empleados_IBM_ETL$Department)+as.factor(desercion_empleados_IBM_ETL$JobRole)+as.factor(desercion_empleados_IBM_ETL$MaritalStatus)+as.factor(desercion_empleados_IBM_ETL$OverTime)+as.factor(desercion_empleados_IBM_ETL$Attrition)))
## 
## Call:
## lm(formula = desercion_empleados_IBM_ETL$MonthlyIncome ~ desercion_empleados_IBM_ETL$Age + 
##     desercion_empleados_IBM_ETL$DistanceFromHome + desercion_empleados_IBM_ETL$TotalWorkingYears + 
##     desercion_empleados_IBM_ETL$YearsAtCompany + as.factor(desercion_empleados_IBM_ETL$Gender) + 
##     as.factor(desercion_empleados_IBM_ETL$Department) + as.factor(desercion_empleados_IBM_ETL$JobRole) + 
##     as.factor(desercion_empleados_IBM_ETL$MaritalStatus) + as.factor(desercion_empleados_IBM_ETL$OverTime) + 
##     as.factor(desercion_empleados_IBM_ETL$Attrition))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5488.0 -1114.6   -95.4   965.9  5567.3 
## 
## Coefficients:
##                                                                           Estimate
## (Intercept)                                                              4760.7127
## desercion_empleados_IBM_ETL$Age                                            -6.5757
## desercion_empleados_IBM_ETL$DistanceFromHome                               -0.1109
## desercion_empleados_IBM_ETL$TotalWorkingYears                             195.5898
## desercion_empleados_IBM_ETL$YearsAtCompany                                 19.0682
## as.factor(desercion_empleados_IBM_ETL$Gender)Male                         167.1945
## as.factor(desercion_empleados_IBM_ETL$Department)Research & Development   -61.7069
## as.factor(desercion_empleados_IBM_ETL$Department)Sales                   -678.2870
## as.factor(desercion_empleados_IBM_ETL$JobRole)Human Resources           -2203.1571
## as.factor(desercion_empleados_IBM_ETL$JobRole)Laboratory Technician     -3041.0926
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manager                    7762.6672
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manufacturing Director       40.3063
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Director          7059.6536
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Scientist        -3037.5758
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Executive             576.6225
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Representative      -2442.3279
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Married                71.8608
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Single                 58.3186
## as.factor(desercion_empleados_IBM_ETL$OverTime)Yes                         75.6673
## as.factor(desercion_empleados_IBM_ETL$Attrition)Yes                       120.5454
##                                                                         Std. Error
## (Intercept)                                                               628.1286
## desercion_empleados_IBM_ETL$Age                                             6.6571
## desercion_empleados_IBM_ETL$DistanceFromHome                                5.3709
## desercion_empleados_IBM_ETL$TotalWorkingYears                              10.6928
## desercion_empleados_IBM_ETL$YearsAtCompany                                  9.3310
## as.factor(desercion_empleados_IBM_ETL$Gender)Male                          88.9531
## as.factor(desercion_empleados_IBM_ETL$Department)Research & Development   549.5399
## as.factor(desercion_empleados_IBM_ETL$Department)Sales                    569.4099
## as.factor(desercion_empleados_IBM_ETL$JobRole)Human Resources             617.9647
## as.factor(desercion_empleados_IBM_ETL$JobRole)Laboratory Technician       184.9092
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manager                     277.1406
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manufacturing Director      200.1163
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Director           241.9007
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Scientist          180.7885
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Executive             394.9429
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Representative        433.7515
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Married               111.9668
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Single                121.7650
## as.factor(desercion_empleados_IBM_ETL$OverTime)Yes                         99.9225
## as.factor(desercion_empleados_IBM_ETL$Attrition)Yes                       128.1752
##                                                                         t value
## (Intercept)                                                               7.579
## desercion_empleados_IBM_ETL$Age                                          -0.988
## desercion_empleados_IBM_ETL$DistanceFromHome                             -0.021
## desercion_empleados_IBM_ETL$TotalWorkingYears                            18.292
## desercion_empleados_IBM_ETL$YearsAtCompany                                2.044
## as.factor(desercion_empleados_IBM_ETL$Gender)Male                         1.880
## as.factor(desercion_empleados_IBM_ETL$Department)Research & Development  -0.112
## as.factor(desercion_empleados_IBM_ETL$Department)Sales                   -1.191
## as.factor(desercion_empleados_IBM_ETL$JobRole)Human Resources            -3.565
## as.factor(desercion_empleados_IBM_ETL$JobRole)Laboratory Technician     -16.446
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manager                    28.010
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manufacturing Director      0.201
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Director          29.184
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Scientist        -16.802
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Executive             1.460
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Representative       -5.631
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Married               0.642
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Single                0.479
## as.factor(desercion_empleados_IBM_ETL$OverTime)Yes                        0.757
## as.factor(desercion_empleados_IBM_ETL$Attrition)Yes                       0.940
##                                                                         Pr(>|t|)
## (Intercept)                                                             6.17e-14
## desercion_empleados_IBM_ETL$Age                                         0.323429
## desercion_empleados_IBM_ETL$DistanceFromHome                            0.983525
## desercion_empleados_IBM_ETL$TotalWorkingYears                            < 2e-16
## desercion_empleados_IBM_ETL$YearsAtCompany                              0.041181
## as.factor(desercion_empleados_IBM_ETL$Gender)Male                       0.060366
## as.factor(desercion_empleados_IBM_ETL$Department)Research & Development 0.910610
## as.factor(desercion_empleados_IBM_ETL$Department)Sales                  0.233766
## as.factor(desercion_empleados_IBM_ETL$JobRole)Human Resources           0.000375
## as.factor(desercion_empleados_IBM_ETL$JobRole)Laboratory Technician      < 2e-16
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manager                    < 2e-16
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manufacturing Director    0.840403
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Director          < 2e-16
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Scientist         < 2e-16
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Executive           0.144503
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Representative      2.15e-08
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Married             0.521101
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Single              0.632051
## as.factor(desercion_empleados_IBM_ETL$OverTime)Yes                      0.449017
## as.factor(desercion_empleados_IBM_ETL$Attrition)Yes                     0.347131
##                                                                            
## (Intercept)                                                             ***
## desercion_empleados_IBM_ETL$Age                                            
## desercion_empleados_IBM_ETL$DistanceFromHome                               
## desercion_empleados_IBM_ETL$TotalWorkingYears                           ***
## desercion_empleados_IBM_ETL$YearsAtCompany                              *  
## as.factor(desercion_empleados_IBM_ETL$Gender)Male                       .  
## as.factor(desercion_empleados_IBM_ETL$Department)Research & Development    
## as.factor(desercion_empleados_IBM_ETL$Department)Sales                     
## as.factor(desercion_empleados_IBM_ETL$JobRole)Human Resources           ***
## as.factor(desercion_empleados_IBM_ETL$JobRole)Laboratory Technician     ***
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manager                   ***
## as.factor(desercion_empleados_IBM_ETL$JobRole)Manufacturing Director       
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Director         ***
## as.factor(desercion_empleados_IBM_ETL$JobRole)Research Scientist        ***
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Executive              
## as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Representative      ***
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Married                
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Single                 
## as.factor(desercion_empleados_IBM_ETL$OverTime)Yes                         
## as.factor(desercion_empleados_IBM_ETL$Attrition)Yes                        
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1656 on 1450 degrees of freedom
## Multiple R-squared:  0.8779, Adjusted R-squared:  0.8763 
## F-statistic: 548.6 on 19 and 1450 DF,  p-value: < 2.2e-16
anova(lm(desercion_empleados_IBM_ETL$MonthlyIncome~desercion_empleados_IBM_ETL$Age+desercion_empleados_IBM_ETL$DistanceFromHome+desercion_empleados_IBM_ETL$TotalWorkingYears+desercion_empleados_IBM_ETL$YearsAtCompany+as.factor(desercion_empleados_IBM_ETL$Gender)+as.factor(desercion_empleados_IBM_ETL$Department)+as.factor(desercion_empleados_IBM_ETL$JobRole)+as.factor(desercion_empleados_IBM_ETL$MaritalStatus)+as.factor(desercion_empleados_IBM_ETL$OverTime)+as.factor(desercion_empleados_IBM_ETL$Attrition)))
## Analysis of Variance Table
## 
## Response: desercion_empleados_IBM_ETL$MonthlyIncome
##                                                        Df     Sum Sq    Mean Sq
## desercion_empleados_IBM_ETL$Age                         1 8.0703e+09 8.0703e+09
## desercion_empleados_IBM_ETL$DistanceFromHome            1 8.5188e+06 8.5188e+06
## desercion_empleados_IBM_ETL$TotalWorkingYears           1 1.1433e+10 1.1433e+10
## desercion_empleados_IBM_ETL$YearsAtCompany              1 2.9342e+07 2.9342e+07
## as.factor(desercion_empleados_IBM_ETL$Gender)           1 5.6459e+05 5.6459e+05
## as.factor(desercion_empleados_IBM_ETL$Department)       2 1.8106e+08 9.0528e+07
## as.factor(desercion_empleados_IBM_ETL$JobRole)          8 8.8544e+09 1.1068e+09
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)    2 1.3055e+06 6.5275e+05
## as.factor(desercion_empleados_IBM_ETL$OverTime)         1 2.9902e+06 2.9902e+06
## as.factor(desercion_empleados_IBM_ETL$Attrition)        1 2.4254e+06 2.4254e+06
## Residuals                                            1450 3.9761e+09 2.7421e+06
##                                                        F value    Pr(>F)    
## desercion_empleados_IBM_ETL$Age                      2943.1031 < 2.2e-16 ***
## desercion_empleados_IBM_ETL$DistanceFromHome            3.1066  0.078184 .  
## desercion_empleados_IBM_ETL$TotalWorkingYears        4169.4472 < 2.2e-16 ***
## desercion_empleados_IBM_ETL$YearsAtCompany             10.7004  0.001096 ** 
## as.factor(desercion_empleados_IBM_ETL$Gender)           0.2059  0.650071    
## as.factor(desercion_empleados_IBM_ETL$Department)      33.0138 9.531e-15 ***
## as.factor(desercion_empleados_IBM_ETL$JobRole)        403.6315 < 2.2e-16 ***
## as.factor(desercion_empleados_IBM_ETL$MaritalStatus)    0.2380  0.788196    
## as.factor(desercion_empleados_IBM_ETL$OverTime)         1.0905  0.296540    
## as.factor(desercion_empleados_IBM_ETL$Attrition)        0.8845  0.347131    
## Residuals                                                                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Coeficientes del Modelo RLM Total
coefficients(lm(desercion_empleados_IBM_ETL$MonthlyIncome~desercion_empleados_IBM_ETL$Age+desercion_empleados_IBM_ETL$DistanceFromHome+desercion_empleados_IBM_ETL$TotalWorkingYears+desercion_empleados_IBM_ETL$YearsAtCompany+as.factor(desercion_empleados_IBM_ETL$Gender)+as.factor(desercion_empleados_IBM_ETL$Department)+as.factor(desercion_empleados_IBM_ETL$JobRole)+as.factor(desercion_empleados_IBM_ETL$MaritalStatus)+as.factor(desercion_empleados_IBM_ETL$OverTime)+as.factor(desercion_empleados_IBM_ETL$Attrition)))
##                                                             (Intercept) 
##                                                            4760.7126741 
##                                         desercion_empleados_IBM_ETL$Age 
##                                                              -6.5757276 
##                            desercion_empleados_IBM_ETL$DistanceFromHome 
##                                                              -0.1109269 
##                           desercion_empleados_IBM_ETL$TotalWorkingYears 
##                                                             195.5897707 
##                              desercion_empleados_IBM_ETL$YearsAtCompany 
##                                                              19.0681717 
##                       as.factor(desercion_empleados_IBM_ETL$Gender)Male 
##                                                             167.1945466 
## as.factor(desercion_empleados_IBM_ETL$Department)Research & Development 
##                                                             -61.7069286 
##                  as.factor(desercion_empleados_IBM_ETL$Department)Sales 
##                                                            -678.2870175 
##           as.factor(desercion_empleados_IBM_ETL$JobRole)Human Resources 
##                                                           -2203.1571390 
##     as.factor(desercion_empleados_IBM_ETL$JobRole)Laboratory Technician 
##                                                           -3041.0925971 
##                   as.factor(desercion_empleados_IBM_ETL$JobRole)Manager 
##                                                            7762.6672295 
##    as.factor(desercion_empleados_IBM_ETL$JobRole)Manufacturing Director 
##                                                              40.3062649 
##         as.factor(desercion_empleados_IBM_ETL$JobRole)Research Director 
##                                                            7059.6536500 
##        as.factor(desercion_empleados_IBM_ETL$JobRole)Research Scientist 
##                                                           -3037.5757772 
##           as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Executive 
##                                                             576.6225055 
##      as.factor(desercion_empleados_IBM_ETL$JobRole)Sales Representative 
##                                                           -2442.3278666 
##             as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Married 
##                                                              71.8608351 
##              as.factor(desercion_empleados_IBM_ETL$MaritalStatus)Single 
##                                                              58.3186283 
##                      as.factor(desercion_empleados_IBM_ETL$OverTime)Yes 
##                                                              75.6672676 
##                     as.factor(desercion_empleados_IBM_ETL$Attrition)Yes 
##                                                             120.5454382
Coeficientes del Modelo RLM Reducido
coefficients(lm(desercion_empleados_IBM_ETL$MonthlyIncome~desercion_empleados_IBM_ETL$Age+desercion_empleados_IBM_ETL$TotalWorkingYears+as.factor (desercion_empleados_IBM_ETL$Gender)+as.factor(desercion_empleados_IBM_ETL$Department)+as.factor(desercion_empleados_IBM_ETL$Attrition)))
##                                                             (Intercept) 
##                                                              2109.66229 
##                                         desercion_empleados_IBM_ETL$Age 
##                                                               -27.25187 
##                           desercion_empleados_IBM_ETL$TotalWorkingYears 
##                                                               486.38641 
##                       as.factor(desercion_empleados_IBM_ETL$Gender)Male 
##                                                                68.06153 
## as.factor(desercion_empleados_IBM_ETL$Department)Research & Development 
##                                                              -310.28897 
##                  as.factor(desercion_empleados_IBM_ETL$Department)Sales 
##                                                               503.93966 
##                     as.factor(desercion_empleados_IBM_ETL$Attrition)Yes 
##                                                              -481.39273

5.4. Regresión Logística Simple

Resumen y Boxplot Total de años trabajados
summary(desercion_empleados_IBM_ETL$TotalWorkingYears)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    6.00   10.00   11.28   15.00   40.00
boxplot(desercion_empleados_IBM_ETL$TotalWorkingYears, main = "Diagrama de Caja de Total de años trabajados", col = c("orange"))

Histograma de años trabajados
summary(desercion_empleados_IBM_ETL$TotalWorkingYears)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    6.00   10.00   11.28   15.00   40.00
hist(desercion_empleados_IBM_ETL$TotalWorkingYears, main = "Histograma de Total de años trabajados", col = c("Purple"))

Resumen y Diagrama de Barras de Target
table(desercion_empleados_IBM_ETL$Attrition)
## 
##   No  Yes 
## 1233  237
prop.table(table(desercion_empleados_IBM_ETL$Attrition))
## 
##        No       Yes 
## 0.8387755 0.1612245
barplot(table(desercion_empleados_IBM_ETL$Attrition), main = "Renuncia", col = c("violet"))

Resumen y Diagrama de Cajas Conjunto
tapply(desercion_empleados_IBM_ETL_1$MonthlyIncome, desercion_empleados_IBM_ETL_1$Attrition, mean)
##        0        1 
## 6832.740 4787.093
tapply(desercion_empleados_IBM_ETL_1$MonthlyIncome, desercion_empleados_IBM_ETL_1$Attrition, median)
##    0    1 
## 5204 3202
boxplot(desercion_empleados_IBM_ETL_1$MonthlyIncome~ desercion_empleados_IBM_ETL_1$Attrition, main = "Boxplot Conjunto: Ingreso mensual-TotalWorkingYears" , col = c("purple", "blue"))

5.4.1. Formulación del modelo de RLogS entre las variables de estudio

Gráfica del Modelo RLogS

5.5. Ajuste de Varianza

6. Conclusiones

7. Bibliografía

Díaz Morales, L. G., & Morales Rivera, M. A. (2012). Análisis estadístico de datos multivariados (1st ed.). UNAL.
LS0tDQp0aXRsZTogIioqVEZDX0dERF8yMDI1XzJfR1JVUE9fMSoqIg0Kc3VidGl0bGU6ICJFc3R1ZGlvIGRlIEFuw6FsaXNpcyBNdWx0aXZhcmlhZG8gY29uIGJhc2UgZW4gdW4gY29uanVudG8gZGUgZGF0b3Mgc29icmUgbGEgZGVzZXJjacOzbiB5IHJlbmRpbWllbnRvIGRlIGVtcGxlYWRvcyBlbiBsYSBlbXByZXNhIElCTS4iDQphdXRob3I6ICJQb3I6DQpOaWNvbGUgTWFudWVsYSBBY29zdGEgQ29yZG9iYSAobmljb2xlLmFjb3N0YUBjb3JyZW91bml2YWxsZS5lZHUuY28pLA0KQ2hlaWxhIEFsZWphbmRyYSBSZWFzY29zIE1vbnRlbmVncm8gKGNoZWlsYS5yZWFzY29zQGNvcnJlb3VuaXZhbGxlLmVkdS5jbyksDQpNYWlyYSBBbGVqYW5kcmEgUm9kcmlndWV6IFNlcm5hIChtYWlyYS5zZXJuYUBjb3JyZW91bml2YWxsZS5lZHUuY28pLA0KR2VyYXJkbyBWYXJlbGEgQ2FyZG9uYSAoZ2VyYXJkby52YXJlbGFAY29ycmVvdW5pdmFsbGUuZWR1LmNvKSINCg0KZGF0ZTogIlRyYWJham8gZWxhYm9yYWRvIGVuIGVsIHBlcmlvZG8gYWNhZMOpbWljbyAyMDI1LTIsIHBhcmEgZWwgY3Vyc28gR2VzdGnDs24gZGUgRGF0b3MgcGFyYSBJbmdlbmllcsOtYSBJbmR1c3RyaWFsLiINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IFRSVUUNCiAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQogICAgdGhlbWU6IGx1bWVuDQpiaWJsaW9ncmFwaHk6IGJpYmxpb2dyYWZpYV9NRS5iaWINCmNzbDogYXBhLmNzbA0KbGluay1jaXRhdGlvbnM6IHllcw0KLS0tDQo8IS0tIENvbmZpZ3VyYWNpw7NuIEdsb2JhbCBkZSBSIC0tPg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQpsaWJyYXJ5KHJlYWR4bCkNCmxpYnJhcnkoY29ycnBsb3QpDQpsaWJyYXJ5KEdHYWxseSkNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoYW5kcmV3cykNCmxpYnJhcnkodGNsdGspDQpsaWJyYXJ5KGFwbHBhY2spDQpsaWJyYXJ5KGdyYXBoaWNzKQ0KDQpsaWJyYXJ5KHJlc2hhcGUyKQ0KbGlicmFyeShGYWN0b01pbmVSKQ0KbGlicmFyeShmYWN0b2V4dHJhKQ0KbGlicmFyeShwc3ljaCkNCmxpYnJhcnkoRmFjdG9DbGFzcykNCmxpYnJhcnkoY2x1c3RlcikNCmxpYnJhcnkoZGVuZGV4dGVuZCkNCmxpYnJhcnkobWFncml0dHIpDQpsaWJyYXJ5KE5iQ2x1c3QpDQpsaWJyYXJ5KHN0YXJnYXplcikNCg0KbGlicmFyeShtdm5vcm1hbFRlc3QpDQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQoNCmxpYnJhcnkocmVhZHhsKQ0KZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fb3JpZ2luYWwgPC0gcmVhZF9leGNlbCgiQzovVXNlcnMvVXNlci9PbmVEcml2ZS9Fc2NyaXRvcmlvL0dlc3Rpb24gZGUgRGF0b3MvZGVzZXJjaW9uX2VtcGxlYWRvc19JQk0ueGxzeCIpDQoNCmRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCA8LSByZWFkX2V4Y2VsKCJDOi9Vc2Vycy9Vc2VyL09uZURyaXZlL0VzY3JpdG9yaW8vR2VzdGlvbiBkZSBEYXRvcy9kZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwueGxzeCIpDQoNCmRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF9WMiA8LSByZWFkX2V4Y2VsKCJDOi9Vc2Vycy9Vc2VyL09uZURyaXZlL0VzY3JpdG9yaW8vR2VzdGlvbiBkZSBEYXRvcy9kZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfVjIueGxzeCIpDQoNCmRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF8xIDwtIHJlYWRfZXhjZWwoIkM6L1VzZXJzL1VzZXIvT25lRHJpdmUvRXNjcml0b3Jpby9HZXN0aW9uIGRlIERhdG9zL2Rlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF8xLnhsc3giKQ0KDQoNCg0KYGBgDQoNCiMjICoqRmFzZSAxIFtEZXNjcmlwY2lvbmVzIE11bHRpdmFyaWFudGVzXSoqDQoNCkVuIGVzdGEgKipwcmltZXJhIGV0YXBhKiogZGVsIGVzdHVkaW8sIHNlIHJlYWxpemFyw6EgdW4gY29uanVudG8gZGUgY8OhbGN1bG9zLCB2aXN1YWxpemFjaW9uZXMgeSBhbsOhbGlzaXMgZXhwbG9yYXRvcmlvcyBzb2JyZSBsb3MgZGF0b3MgcmVsYWNpb25hZG9zIGNvbiBsYSBkZXNlcmNpw7NuIGRlIGVtcGxlYWRvcyBlbiBsYSBlbXByZXNhIElCTSwgbG9zIGN1YWxlcyBzZSBkZXNjcmliZW4gZGV0YWxsYWRhbWVudGUgZW4gbGEgc2VjY2nDs24gMS4yLiBFbCBhbsOhbGlzaXMgc2UgYWJvcmRhcsOhIGRlc2RlIGxhIHBlcnNwZWN0aXZhIGRlIGxhIGVzdGFkw61zdGljYSBkZXNjcmlwdGl2YSBtdWx0aXZhcmlhbnRlLCBsbyBxdWUgcGVybWl0aXLDoSBvYnRlbmVyIG5vIHNvbG8gdW5hIHZpc2nDs24gZ2VuZXJhbCBkZWwgY29tcG9ydGFtaWVudG8gZGVsIHBlcnNvbmFsIGRlbnRybyBkZSBsYSBvcmdhbml6YWNpw7NuLCBzaW5vIHRhbWJpw6luIHVuYSBjb21wcmVuc2nDs24gbcOhcyBwcm9mdW5kYSBkZSBsYXMgcmVsYWNpb25lcyBlbnRyZSBsYXMgZGl2ZXJzYXMgdmFyaWFibGVzIGFzb2NpYWRhcyBhIGxhIHBlcm1hbmVuY2lhIG8gcmVudW5jaWEgZGUgbG9zIGVtcGxlYWRvcy4NCg0KRXN0ZSBlbmZvcXVlIGNvbnRyaWJ1aXLDoSBhIGlkZW50aWZpY2FyIHBhdHJvbmVzIGNsYXZlLCB0ZW5kZW5jaWFzIHJlbGV2YW50ZXMgeSBwb3NpYmxlcyBmYWN0b3JlcyBhc29jaWFkb3MgYWwgYWJhbmRvbm8gbGFib3JhbCwgdGFsZXMgY29tbyBlbCBuaXZlbCBkZSBzYXRpc2ZhY2Npw7NuLCBsYXMgY29uZGljaW9uZXMgbGFib3JhbGVzLCBsYSBleHBlcmllbmNpYSBvIGxhIGVkYWQuTGFzIHZpc3VhbGl6YWNpb25lcyBvY3VwYXLDoW4gdW4gcGFwZWwgZnVuZGFtZW50YWwsIHB1ZXMgZmFjaWxpdGFyw6FuIGxhIHJlcHJlc2VudGFjacOzbiBncsOhZmljYSBkZSBlc3RhcyByZWxhY2lvbmVzIHkgcGVybWl0aXLDoW4gZXhwbG9yYXIgbG9zIGRhdG9zIGRlIGZvcm1hIGNsYXJhLCBpbnR1aXRpdmEgeSBhY2Nlc2libGUuDQoNClRvZG8gZWwgcHJvY2VzbyBzZSBkZXNhcnJvbGxhcsOhIHV0aWxpemFuZG8gbGFzIGhlcnJhbWllbnRhcyBSIHkgUlN0dWRpbywgcXVlIHBvc2liaWxpdGFuIHVuYSBlamVjdWNpw7NuIGVmaWNpZW50ZSBkZSBsb3MgY8OhbGN1bG9zLCBlbCBtYW5lam8gYWRlY3VhZG8gZGVsIGNvbmp1bnRvIGRlIGRhdG9zIHkgbGEgY3JlYWNpw7NuIGRlIGdyw6FmaWNvcyBkaW7DoW1pY29zIHF1ZSBlbnJpcXVlY2VuIGxhIGludGVycHJldGFjacOzbiBkZSBsb3MgcmVzdWx0YWRvcyBvYnRlbmlkb3MuDQoNCiMjIyAxLjEuIE9iamV0aXZvcw0KRWwgb2JqZXRpdm8gZGUgZXN0ZSBwcm95ZWN0byBlcyBhcGxpY2FyIHTDqWNuaWNhcyBkZSBhbsOhbGlzaXMgZGUgZGF0b3MgcGFyYSBlc3R1ZGlhciBlbCBjb25qdW50byBkZSBkYXRvcyAqKklCTSBIUiBBbmFseXRpY3MgRW1wbG95ZWUgQXR0cml0aW9uICYgUGVyZm9ybWFuY2UqKiwgY29uIGVsIGZpbiBkZSBpZGVudGlmaWNhciBwYXRyb25lcyByZWxhY2lvbmFkb3MgY29uIGxhIGRlc2VyY2nDs24gIHkgZWwgcmVuZGltaWVudG8gZGUgbG9zIGVtcGxlYWRvcy4gQSB0cmF2w6lzIGRlIGVzdGUgYW7DoWxpc2lzLCBzZSBidXNjYSBmb3J0YWxlY2VyIGxhcyBoYWJpbGlkYWRlcyBlbiBsYSBnZXN0acOzbiB5IGV4cGxvcmFjacOzbiBkZSBpbmZvcm1hY2nDs24sIGNvbnRyaWJ1eWVuZG8gYSBsYSBjb21wcmVuc2nDs24gZGUgbG9zIGZhY3RvcmVzIHF1ZSBpbmZsdXllbiBlbiBsYSBwcm9kdWN0aXZpZGFkIHkgbGEgdG9tYSBkZSBkZWNpc2lvbmVzIGRlbnRybyBkZSB1bmEgb3JnYW5pemFjacOzbi4gRXN0ZSB0cmFiYWpvIHNlIGVubWFyY2EgZGVudHJvIGRlbCBjdXJzbyBkZSAqKkdlc3Rpw7NuIGRlIERhdG9zKiogZHVyYW50ZSBlbCBwZXJpb2RvIGFjYWRlbWljbyAyMDI1LTIuDQoNCiMjIyAxLjIuIERlc2NyaXBjacOzbiBkZSBsb3MgZGF0b3Mgey50YWJzZXQgLnRhYnNldC1waWxsc30NCkVsIGNvbmp1bnRvIGRlIGRhdG9zIGZ1ZSBvYnRlbmlkbyBlbiBzdSB0b3RhbGlkYWQgZGUgKipLYWdnbGUqKjogKGh0dHBzOi8vd3d3LmthZ2dsZS5jb20vdW5pYWJoaSkuIEthZ2dsZSBlcyB1bmEgcGxhdGFmb3JtYSBlbiBsw61uZWEgZGUgY2llbmNpYSBkZSBkYXRvcyB5IGFwcmVuZGl6YWplIGF1dG9tw6F0aWNvLCBwcm9waWVkYWQgZGUgR29vZ2xlIExMQy4gRXN0YSBmYWNpbGl0YSBsYSBwYXJ0aWNpcGFjacOzbiBlbiBjb21wZXRlbmNpYXMgZG9uZGUgbGFzIGVtcHJlc2FzIHB1YmxpY2FuIGNvbmp1bnRvcyBkZSBkYXRvcyB5IHByb2JsZW1hcywgcGVybWl0aWVuZG8gYSBsb3MgdXN1YXJpb3MgZGVzYXJyb2xsYXIgbW9kZWxvcyBwcmVkaWN0aXZvcyB5IGNvbXBldGlyLiBMYSBwbGF0YWZvcm1hIHRhbWJpw6luIG9mcmVjZSBub3RlYm9va3MgcGFyYSBjb21wYXJ0aXIgeSBjb2xhYm9yYXIgZW4gcHJveWVjdG9zIHV0aWxpemFuZG8gUHl0aG9uIHkgUiwgYXPDrSBjb21vIHVuYSBhbXBsaWEgY29sZWNjacOzbiBkZSBjb25qdW50b3MgZGUgZGF0b3MgZGUgYWNjZXNvIHDDumJsaWNvLiBBZGVtw6FzLCBLYWdnbGUgTGVhcm4sIHVuYSBzZWNjacOzbiBkZSBsYSBwbGF0YWZvcm1hIGRlZGljYWRhIGEgbGEgZWR1Y2FjacOzbiB5IGVsIGFwcmVuZGl6YWplIGVuIGNpZW5jaWEgZGUgZGF0b3MgeSBhcHJlbmRpemFqZSBhdXRvbcOhdGljbywgcHJvcG9yY2lvbmEgdHV0b3JpYWxlcyB5IGN1cnNvcyBpbnRlcmFjdGl2b3MgZW4gdGVtYXMgY29tbyBQeXRob24sIFNRTCwgdmlzdWFsaXphY2nDs24gZGUgZGF0b3MgeSBhcHJlbmRpemFqZSBhdXRvbcOhdGljbywgZGlyaWdpZG9zIGEgcHJpbmNpcGlhbnRlcyB5IHVzdWFyaW9zIGF2YW56YWRvcy4NCg0KRXN0ZSAqKmNvbmp1bnRvIGRlIGRhdG9zIHNvYnJlIGxhIGRlc2VyY2lvbiB5IHJlbmRpbWllbnRvIGRlIGVtcGxlYWRvcyoqLCBmdWUgY3JlYWRvIHBvciBsYSBlbXByZXNhIElCTSBjb24gZWwgb2JqZXRpdm8gZGUgYW5hbGl6YXIgbGFzIGNhdXNhcyBwb3IgbGFzIHF1ZSBsb3MgdHJhYmFqYWRvcmVzIGRlamFuIHVuYSBlbXByZXNhIHkgbG9zIGZhY3RvcmVzIHF1ZSBpbmZsdXllbiBlbiBzdSByZW5kaW1pZW50by4gRXMgdW4gY29uanVudG8gbXV5IHVzYWRvIGVuIGVzdHVkaW9zIGRlIHJlY3Vyc29zIGh1bWFub3MgeSBhbsOhbGlzaXMgZGUgZGF0b3MgcG9yIGxhIGNhbnRpZGFkIHkgdmFyaWVkYWQgZGUgaW5mb3JtYWNpw7NuIHF1ZSBjb250aWVuZS4NCg0KRXN0ZSBjb25qdW50byBkZSBkYXRvcyBzZSByZWxhY2lvbmEgY29uIGxhcyDDoXJlYXM6ICoqMy4gRW5naW5lZXJpbmcgRWNvbm9taWMgQW5hbHlzaXMqKihBbmFsaXNpcyBkZSBJbmdlbmllcmlhIEVjb25vbWljYSksICoqNi4gRXJnb25vbWljcyAmIEh1bWFuIEZhY3RvcnMqKihFcmdvbm9taWEgeSBGYWN0b3JlcyBIdW1hbm9zKSwgKio3LiBPcGVyYXRpb25zIEVuZ2luZWVyaW5nICYgTWFuYWdlbWVudCoqKEluZ2VuaWVyaWEgZGUgT3BlcmFjaW9uZXMgeSBHZXN0acOzbikgIHkgKio5LiBFbmdpbmVlcmluZyBNYW5hZ2VtZW50KiooR2VzdGnDs24gZGUgSW5nZW5pcmlhKSBkZWwgKipJSVNFIEJvZHkgb2YgS25vd2xlZGdlKiouIERlYmlkbyBhIHF1ZSBwZXJtaXRlIGFuYWxpemFyIGZhY3RvcmVzIGVjb27Ds21pY29zLCBodW1hbm9zIHkgb3JnYW5pemFjaW9uYWxlcyBxdWUgaW5mbHV5ZW4gZW4gbGEgcm90YWNpw7NuIHkgZGVzZW1wZcOxbyBkZSBsb3MgZW1wbGVhZG9zLiBTdSBlc3R1ZGlvIGF5dWRhIGEgdG9tYXIgZGVjaXNpb25lcyBlc3RyYXTDqWdpY2FzIHBhcmEgbWVqb3JhciBsYSBwcm9kdWN0aXZpZGFkLCBlbCBiaWVuZXN0YXIgZGVsIHBlcnNvbmFsIHkgbGEgZWZpY2llbmNpYSBlbiBsYSBnZXN0acOzbiBkZWwgdGFsZW50byBkZW50cm8gZGUgbGEgZW1wcmVzYS4NCg0KRWwgY29uanVudG8gZGUgZGF0b3MgQ29uc3RhIGRlIDE0NzAgcmVnaXN0cm9zIGRlIGVtcGxlYWRvcyB5IDM1IHZhcmlhYmxlcyByZWxhY2lvbmFkYXMgY29uIGFzcGVjdG9zIHBlcnNvbmFsZXMsIGxhYm9yYWxlcyB5IGRlIHNhdGlzZmFjY2nDs24uIEFsZ3VuYXMgdmFyaWFibGVzIGRlc2NyaWJlbiBsYSBlZGFkLCBlbCBzYWxhcmlvLCBlbCDDoXJlYSBkZSB0cmFiYWpvLCBsb3MgYcOxb3MgZW4gbGEgZW1wcmVzYSwgZWwgbml2ZWwgZWR1Y2F0aXZvIHkgc2kgZWwgZW1wbGVhZG8gaGEgZGVqYWRvIG8gbm8gbGEgb3JnYW5pemFjacOzbi4gQWxndW5vcyBjYW1wb3Mgc29uIGRlIG5hdHVyYWxlemEgY3VhbGl0YXRpdmEgbm9taW5hbCBvIG9yZGluYWwsIGNvbW8gRGVwYXJ0bWVudCwgRWR1Y2F0aW9uRmllbGQgbyBKb2JSb2xlLCBtaWVudHJhcyBxdWUgb3Ryb3Mgc29uIGN1YW50aXRhdGl2b3MgY29udGludW9zIG8gZGlzY3JldG9zLCBjb21vIEFnZSwgTW9udGhseUluY29tZSBvIFllYXJzQXRDb21wYW55LiBMYSB2YXJpYWJsZSBBdHRyaXRpb24gKFPDrS9ObykgZXMgZGUgdGlwbyBkaWNvdMOzbWljYSBub21pbmFsLCB1dGlsaXphZGEgY29tbyB2YXJpYWJsZSBvYmpldGl2byBlbiBsYSBtYXlvcsOtYSBkZSBsb3MgYW7DoWxpc2lzIHByZWRpY3Rpdm9zIHF1ZSBzZSByZWFsaXphbiBjb24gZXN0ZSBjb25qdW50by5MYSBsaXN0YSBzaWd1aWVudGUgZGVzY3JpYmUgbGFzIHZhcmlhYmxlcyBwcmluY2lwYWxlcyBkZWwgY29uanVudG8gZGUgZGF0b3MgZW4gZWwgbWlzbW8gb3JkZW4gZW4gcXVlIGFwYXJlY2VuIHkgc2UgZXN0YWJsZWNlIHBhcmEgY2FkYSBjYW1wbyBlbCB0aXBvIGRlIHZhcmlhYmxlIHkgc3UgZXNjYWxhIGRlIG1lZGljacOzbiBjb24gYmFzZSBlbiBsYSBub21lbmNsYXR1cmEgKHRpcG9fZGVfdmFyaWFibGU6OmVzY2FsYV9kZV9tZWRpY2nDs25bb3JkZW5hbWllbnRvXSk6DQoNCi0gKipBZ2UqKiAoY3VhbnRpdGF0aXZhOjpyYXrDs24pOiBJbmRpY2EgbGEgZWRhZCBkZWwgZW1wbGVhZG8gZW4gYcOxb3MgY29tcGxldG9zLg0KDQotICoqQXR0cml0aW9uKiogKGN1YWxpdGF0aXZhOjpub21pbmFsKTogTXVlc3RyYSBzaSBlbCBlbXBsZWFkbyBkZWrDsyBsYSBlbXByZXNhIChZZXMpIG8gY29udGluw7phIGVuIGVsbGEgKE5vKS4NCg0KLSAqKkRlcGFydG1lbnQqKiAoY3VhbGl0YXRpdmE6Om5vbWluYWwpOiBTZcOxYWxhIGVsIMOhcmVhIGRvbmRlIHRyYWJhamEgZWwgZW1wbGVhZG8sIGNvbW8gU2FsZXMsIFJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgbyBIdW1hbiBSZXNvdXJjZXMuDQoNCi0gKipEaXN0YW5jZUZyb21Ib21lKiogKGN1YW50aXRhdGl2YTo6cmF6w7NuKTogSW5kaWNhIGxhIGRpc3RhbmNpYSwgZW4ga2lsw7NtZXRyb3MsIGVudHJlIGxhIGNhc2EgZGVsIGVtcGxlYWRvIHkgbGEgb2ZpY2luYS4NCg0KLSAqKkVkdWNhdGlvbioqIChjdWFsaXRhdGl2YTo6b3JkaW5hbCk6IFJlcHJlc2VudGEgZWwgbml2ZWwgZWR1Y2F0aXZvIGFsY2FuemFkbywgY29kaWZpY2FkbyBlbiB1bmEgZXNjYWxhIGRlbCAxIGFsIDUsIGRvbmRlIDEgY29ycmVzcG9uZGUgYSDigJxCZWxvdyBDb2xsZWdl4oCdIHkgNSBhIOKAnERvY3RvcuKAnS4NCg0KLSAqKkVkdWNhdGlvbkZpZWxkKiogKGN1YWxpdGF0aXZhOjpub21pbmFsKTogSW5kaWNhIGVsIGNhbXBvIGRlIGZvcm1hY2nDs24gYWNhZMOpbWljYSBkZWwgZW1wbGVhZG8sIGNvbW8gTGlmZSBTY2llbmNlcywgTWVkaWNhbCBvIE1hcmtldGluZy4NCg0KLSAqKkVtcGxveWVlTnVtYmVyKiogKGN1YW50aXRhdGl2YTo6bm9taW5hbCk6IEFzaWduYSB1biBjw7NkaWdvIMO6bmljbyBhIGNhZGEgZW1wbGVhZG8gZGVudHJvIGRlIGxhIG9yZ2FuaXphY2nDs24sIHVzYWRvIGNvbW8gaWRlbnRpZmljYWRvci4NCkdlbmRlciAoY3VhbGl0YXRpdmE6Om5vbWluYWwpOiBSZWdpc3RyYSBlbCBnw6luZXJvIGRlbCBlbXBsZWFkbywgY2xhc2lmaWNhZG8gY29tbyBNYWxlIG8gRmVtYWxlLg0KDQotICoqRW52aXJvbm1lbnRTYXRpc2ZhY3Rpb24qKiAoY3VhbGl0YXRpdmE6Om9yZGluYWwpOiBNaWRlIGVsIG5pdmVsIGRlIHNhdGlzZmFjY2nDs24gZGVsIGVtcGxlYWRvIGNvbiBzdSBlbnRvcm5vIGxhYm9yYWwgKGVzY2FsYSBkZWwgMSBhbCA0KS4NCg0KLSAqKkpvYkxldmVsKiogKGN1YWxpdGF0aXZhOjpvcmRpbmFsKTogUmVwcmVzZW50YSBlbCBuaXZlbCBqZXLDoXJxdWljbyBkZW50cm8gZGUgbGEgZW1wcmVzYSwgY29uIHZhbG9yZXMgZGVsIDEgYWwgNSwgZG9uZGUgMSBjb3JyZXNwb25kZSBhIHB1ZXN0b3MgbcOhcyBiYWpvcyB5IDUgYSBjYXJnb3MgZGlyZWN0aXZvcy4NCg0KLSAqKkpvYlJvbGUqKiAoY3VhbGl0YXRpdmE6Om5vbWluYWwpOiBEZXNjcmliZSBlbCBjYXJnbyBvIGZ1bmNpw7NuIHF1ZSBkZXNlbXBlw7FhIGVsIGVtcGxlYWRvIGRlbnRybyBkZSBsYSBvcmdhbml6YWNpw7NuLg0KDQotICoqSm9iU2F0aXNmYWN0aW9uKiogKGN1YWxpdGF0aXZhOjpvcmRpbmFsKTogRXZhbMO6YSBlbCBuaXZlbCBkZSBzYXRpc2ZhY2Npw7NuIGNvbiBlbCB0cmFiYWpvLCBlbiB1bmEgZXNjYWxhIGRlbCAxIGFsIDQsIGRvbmRlIDEgZXMg4oCcTG934oCdIHkgNCBlcyDigJxWZXJ5IEhpZ2jigJ0uDQoNCi0gKipNYXJpdGFsU3RhdHVzKiogKGN1YWxpdGF0aXZhOjpub21pbmFsKTogSW5kaWNhIGVsIGVzdGFkbyBjaXZpbCBkZWwgZW1wbGVhZG8gKFNpbmdsZSwgTWFycmllZCBvIERpdm9yY2VkKS4NCg0KLSAqKk1vbnRobHlJbmNvbWUqKiAoY3VhbnRpdGF0aXZhOjpyYXrDs24pOiBSZXByZXNlbnRhIGVsIHNhbGFyaW8gbWVuc3VhbCBkZWwgZW1wbGVhZG8gZW4gZMOzbGFyZXMuDQoNCi0gKipPdmVyVGltZSoqIChjdWFsaXRhdGl2YTo6bm9taW5hbCk6IEluZGljYSBzaSBlbCBlbXBsZWFkbyB0cmFiYWphIGhvcmFzIGV4dHJhIChZZXMvTm8pLg0KDQotICoqUGVyZm9ybWFuY2VSYXRpbmcqKiAoY3VhbGl0YXRpdmE6Om9yZGluYWwpOiBNaWRlIGVsIGRlc2VtcGXDsW8gZGVsIGVtcGxlYWRvIHNlZ8O6biBsYSBlbXByZXNhLCBlbiB1bmEgZXNjYWxhIGRlbCAxIGFsIDQgKGRlIOKAnExvd+KAnSBhIOKAnE91dHN0YW5kaW5n4oCdKS4NCg0KLSAqKlRvdGFsV29ya2luZ1llYXJzKiogKGN1YW50aXRhdGl2YTo6cmF6w7NuKTogTXVlc3RyYSBlbCB0b3RhbCBkZSBhw7FvcyBkZSBleHBlcmllbmNpYSBsYWJvcmFsIHF1ZSB0aWVuZSBlbCBlbXBsZWFkby4NCg0KLSAqKlllYXJzQXRDb21wYW55KiogKGN1YW50aXRhdGl2YTo6cmF6w7NuKTogUmVnaXN0cmEgbG9zIGHDsW9zIHF1ZSBlbCBlbXBsZWFkbyBoYSB0cmFiYWphZG8gZW4gbGEgZW1wcmVzYSBhY3R1YWwuDQoNCi0gKipXb3JrTGlmZUJhbGFuY2UqKiAoY3VhbGl0YXRpdmE6Om9yZGluYWwpOiBFdmFsw7phIGVsIGVxdWlsaWJyaW8gZW50cmUgbGEgdmlkYSBwZXJzb25hbCB5IGxhYm9yYWwgZGVsIGVtcGxlYWRvLCBlbiB1bmEgZXNjYWxhIGRlIDEgYSA0Lg0KDQotICoqWWVhcnNTaW5jZUxhc3RQcm9tb3Rpb24qKiAoY3VhbnRpdGF0aXZhOjpyYXrDs24pOiBJbmRpY2EgZWwgbsO6bWVybyBkZSBhw7FvcyBkZXNkZSBlbCDDumx0aW1vIGFzY2Vuc28gZGVsIGVtcGxlYWRvLg0KDQojIyMjIEVzdHJ1Y3R1cmEgZGVsIENvbmp1bnRvIGRlIERhdG9zIE9yaWdpbmFsDQpgYGB7ciBFc3RydWN0dXJhX2RlbF9Db25qdW50b19kZV9EYXRvc19PcmlnaW5hbCwgZmlnLmFsaWduPSdjZW50ZXInfQ0Kc3RyKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX29yaWdpbmFsKQ0KYGBgDQoNCiMjIyMgRXN0cnVjdHVyYSBkZWwgQ29uanVudG8gZGUgRGF0b3MgRVRMDQpgYGB7ciBFc3RydWN0dXJhX2RlbF9Db25qdW50b19kZV9EYXRvc19FVEwsIGZpZy5hbGlnbj0nY2VudGVyJ30NCnN0cihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwpDQpgYGANCg0KDQojIyMgMS4zLiBFc3RpbWFjaW9uZXMgbXVsdGl2YXJpYWRhc3sudGFic2V0IC50YWJzZXQtcGlsbHN9DQoNCkVsICoqdmVjdG9yIGRlIG1lZGlhcyoqIHkgbGEgKiptYXRyaXogZGUgdmFyaWFuemFzLWNvdmFyaWFuemFzKiogY29uZm9ybWFuIHVuIGNvbmp1bnRvIGRlIGhlcnJhbWllbnRhcyBmdW5kYW1lbnRhbGVzIHBhcmEgZGVzY3JpYmlyIGVsIGNvbXBvcnRhbWllbnRvIHBvc2ljaW9uYWwsIGRpc3BlcnNpdm8geSBjb3JyZWxhY2lvbmFsIGRlIGxhcyB2YXJpYWJsZXMgYWxlYXRvcmlhcyBlbiB1biBjb25qdW50byBkZSBkYXRvcy4gRXN0YXMgbWVkaWRhcyBzb24gZXNlbmNpYWxlcyBlbiBlbCBhbsOhbGlzaXMgbXVsdGl2YXJpYWRvLCBwb3JxdWUgcGVybWl0ZW4gY2FwdHVyYXIgdGFudG8gbGEgdGVuZGVuY2lhIGNlbnRyYWwgY29tbyBsYXMgaW50ZXJkZXBlbmRlbmNpYXMgZW50cmUgbGFzIHZhcmlhYmxlcy4NCg0KRWwgdmVjdG9yIGRlIG1lZGlhcyByZWZsZWphIGVsIHZhbG9yIGVzcGVyYWRvIG8gcHVudG8gbWVkaW8gZGUgY2FkYSB2YXJpYWJsZSwgc2ludGV0aXphbmRvIGxhIGluZm9ybWFjacOzbiBkZSB0b2RvcyBsb3MgcmVnaXN0cm9zIGRpc3BvbmlibGVzIGVuIGVsIGNvbmp1bnRvIGRlIGRhdG9zLiBQb3Igc3UgcGFydGUsIGxhIG1hdHJpeiBkZSB2YXJpYW56YXMtY292YXJpYW56YXMgZGVzY3JpYmUgbGEgdmFyaWFiaWxpZGFkIHkgbGFzIHJlbGFjaW9uZXMgZW50cmUgbGFzIHZhcmlhYmxlcy4gRW4gc3UgZGlhZ29uYWwgcHJpbmNpcGFsLCBlc3RpbWEgbGFzIGRpc3BlcnNpb25lcyBpbmRpdmlkdWFsZXMgZGUgY2FkYSB2YXJpYWJsZSByZXNwZWN0byBhIHN1IG1lZGlhLCBtaWVudHJhcyBxdWUgbG9zIGVsZW1lbnRvcyBwb3IgZW5jaW1hIG8gcG9yIGRlYmFqbyBkZSBlc3RhIGRpYWdvbmFsIHJlcHJlc2VudGFuIGxhcyBjb3ZhcmlhbnphcyBlbnRyZSBwYXJlcyBkZSB2YXJpYWJsZXMsIG1vc3RyYW5kbyBsYXMgcmVsYWNpb25lcyBsaW5lYWxlcyBleGlzdGVudGVzIGVudHJlIGVsbGFzLg0KDQojIyMjIFZlY3RvciBkZSBQcm9tZWRpb3MgeSBCb3hwbG90cw0KDQpgYGB7ciBWZWN0b3JfZGVfUHJvbWVkaW9zX3lfQm94cGxvdHNfMSwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQphcHBseShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDIsIDMsIDUsIDcsIDgsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMyldLCAyLCBtZWFuKQ0KZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMX1JlZHVjaWRvID0gZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMWywtYygyLCAzLCA1LCA3LCA4LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMpXQ0Kbm9tYnJlc19ib3hwbG90cyA8LSBjKCJBZ2UiLCAiRGFpbHlSYXRlIiwiRGlzdGFuY2VGcm9tSG9tZSIsICJFbXBsb3llZU51bWJlciIsICJNb250aGx5SW5jb21lIikNCnBhcihtZnJvdyA9IGMoMSwgbmNvbChkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfUmVkdWNpZG8pKSkNCmludmlzaWJsZShsYXBwbHkoMTpuY29sKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF9SZWR1Y2lkbyksIGZ1bmN0aW9uKGkpIHsNCiAgYm94cGxvdChkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfUmVkdWNpZG9bLCBpXSwNCiAgICAgICAgICBtYWluID0gbm9tYnJlc19ib3hwbG90c1tpXSl9KSkNCmBgYA0KDQpgYGB7ciBWZWN0b3JfZGVfUHJvbWVkaW9zX3lfQm94cGxvdHNfMiwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQphcHBseShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMjAsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjgsIDI5LCAzMSwgMzIsIDMzKV0sIDIsIG1lYW4pDQpkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfUmVkdWNpZG8gPSBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMjAsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjgsIDI5LCAzMSwgMzIsIDMzKV0NCm5vbWJyZXNfYm94cGxvdHMgPC0gYygiTW9udGhseVJhdGUiLCAiTnVtQ29tcGFuaWVzV29ya2VkIiwgIlBlcmNlbnRTYWxhcnlIaWtlIiwgIlRvdGFsV29ya2luZ1llYXJzIiwgIlllYXJzQXRDb21wYW55IikNCnBhcihtZnJvdyA9IGMoMSwgbmNvbChkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfUmVkdWNpZG8pKSkNCmludmlzaWJsZShsYXBwbHkoMTpuY29sKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF9SZWR1Y2lkbyksIGZ1bmN0aW9uKGkpIHsNCiAgYm94cGxvdChkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfUmVkdWNpZG9bLCBpXSwNCiAgICAgICAgICBtYWluID0gbm9tYnJlc19ib3hwbG90c1tpXSl9KSkNCmBgYA0KDQojIyMjIE1hdHJpeiBkZSBWYXJpYW56YXMtQ292YXJpYW56YXMNCmBgYHtyIE1hdHJpel9kZV9WYXJpYW56YXNfQ292YXJpYW56YXMsIGZpZy5hbGlnbj0nY2VudGVyJ30NCnJvdW5kKGNvdihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDIsIDMsIDUsIDcsIDgsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyOCwgMjksIDMxLCAzMiwgMzMpXSksMikNCmBgYA0KDQoNCiMjIyMgTWF0cml6IGRlIENvcnJlbGFjaW9uZXMNCmBgYHtyIE1hdHJpel9kZV9Db3JyZWxhY2lvbmVzLCBmaWcuYWxpZ249J2NlbnRlcid9DQpyb3VuZChjb3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMWywtYygyLCAzLCA1LCA3LCA4LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMjAsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjgsIDI5LCAzMSwgMzIsIDMzKV0pLDMpDQpgYGANCg0KQ29uIGJhc2UgZW4gbG9zIHJlc3VsdGFkb3Mgb2J0ZW5pZG9zLCBlcyBwb3NpYmxlIGludGVycHJldGFyIGRlIG1hbmVyYSBjb25qdW50YSBsYSBlc3RydWN0dXJhIGludGVybmEgZGVsIGNvbmp1bnRvIGRlIGRhdG9zLiBFbCB2ZWN0b3IgZGUgbWVkaWFzIG9mcmVjZSB1bmEgcmVmZXJlbmNpYSBjbGFyYSBkZWwgbml2ZWwgcHJvbWVkaW8gZGUgY2FkYSB2YXJpYWJsZSwgbWllbnRyYXMgcXVlIGxhIG1hdHJpeiBkZSB2YXJpYW56YXMtY292YXJpYW56YXMgZXZpZGVuY2lhIGN1w6FsZXMgdmFyaWFibGVzIHByZXNlbnRhbiBtYXlvciBkaXNwZXJzacOzbiB5IGN1w6FsZXMgdGllbmRlbiBhIHZhcmlhciBlbiBjb25qdW50by4gTG9zIGJveHBsb3RzIHBlcm1pdGVuIGNvbmZpcm1hciB2aXN1YWxtZW50ZSBlc3RhcyB2YXJpYWNpb25lcyBlIGlkZW50aWZpY2FyIGxhIHByZXNlbmNpYSBkZSBhc2ltZXRyw61hcyBvIHZhbG9yZXMgYXTDrXBpY29zIHF1ZSBwdWVkZW4gaW5mbHVpciBlbiBlbCBhbsOhbGlzaXMuIFBvciDDumx0aW1vLCBsYSBtYXRyaXogZGUgY29ycmVsYWNpb25lcyByZXZlbGEgbGEgaW50ZW5zaWRhZCBkZSBsYXMgcmVsYWNpb25lcyBlbnRyZSBsYXMgdmFyaWFibGVzLCBkZXN0YWNhbmRvIGFxdWVsbGFzIGNvbiBhc29jaWFjaW9uZXMgZnVlcnRlcyBxdWUgcG9kcsOtYW4gdGVuZXIgdW4gaW1wYWN0byBzaWduaWZpY2F0aXZvIGVuIGVzdHVkaW9zIHBvc3RlcmlvcmVzLg0KDQojIyMgMS40LiBHcsOhZmljYXMgbXVsdGl2YXJpYWRhc3sudGFic2V0IC50YWJzZXQtcGlsbHN9DQoNCjogRW4gZWwgYW7DoWxpc2lzIG11bHRpdmFyaWFkbywgbGFzIHJlcHJlc2VudGFjaW9uZXMgZ3LDoWZpY2FzIGRlc2VtcGXDsWFuIHVuIHBhcGVsIGZ1bmRhbWVudGFsIHBhcmEgY29tcHJlbmRlciBzaW11bHTDoW5lYW1lbnRlIGxhIGVzdHJ1Y3R1cmEgeSBlbCBjb21wb3J0YW1pZW50byBkZSB2YXJpYXMgdmFyaWFibGVzLiBFc3RhcyB2aXN1YWxpemFjaW9uZXMgcGVybWl0ZW4gaWRlbnRpZmljYXIgcGF0cm9uZXMsIHJlbGFjaW9uZXMgeSBhZ3J1cGFtaWVudG9zIHF1ZSBubyBzb24gZXZpZGVudGVzIG1lZGlhbnRlIHRhYmxhcyBudW3DqXJpY2FzLiBFbnRyZSBsYXMgaGVycmFtaWVudGFzIG3DoXMgdXRpbGl6YWRhcyBzZSBlbmN1ZW50cmFuIGxvcyBkaWFncmFtYXMgY29uanVudG9zIGRlIGRpc3BlcnNpw7NuLCBsYXMgZGlzdHJpYnVjaW9uZXMgbXVsdGl2YXJpYWRhcywgbG9zIGdyw6FmaWNvcyBkZSBjb3JyZWxhY2nDs24sIGxvcyBkaWFncmFtYXMgZGUgZXN0cmVsbGFzIHkgbGFzIGNhcmFzIGRlIENoZXJub2ZmLg0KDQojIyMjIERpYWdyYW1hIENvbmp1bnRvIGRlIERpc3BlcnNpw7NuLCBEaXN0cmlidWNpw7NuIHkgQ29ycmVsYWNpb25lcyBbU0FdDQpgYGB7ciBEaWFncmFtYV9Db25qdW50b19kZV9EaXNwZXJzaW9uX0Rpc3RyaWJ1Y2lvbl95X0NvcnJlbGFjaW9uZXNfW1NBXSwgZmlnLmFsaWduPSdjZW50ZXInfQ0KZ2dwYWlycyhkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDIsIDMsIDUsIDcsIDgsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyOCwgMjksIDMxLCAzMiwgMzMpXSkNCmBgYA0KDQojIyMjIERpYWdyYW1hIENvbmp1bnRvIGRlIERpc3BlcnNpw7NuLCBEaXN0cmlidWNpw7NuIHkgQ29ycmVsYWNpb25lcyBbQ0E6RUZdDQpgYGB7ciBEaWFncmFtYV9kaXNwZXJzaW9uX0dlbmRlciwgZmlnLmFsaWduPSdjZW50ZXInfQ0KZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEdlbmRlciA8LSBmYWN0b3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEdlbmRlcikNCmxldmVscz0gYyAoMCwxKQ0KbGFiZWxzPSBjICggIkZlbWFsZSIgLCAiTWFsZSIpDQpnZ3BhaXJzKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCwgY29sdW1uID0gYygxLCA0LCA2LCA5KSwgYWVzKGNvbG9yID0gR2VuZGVyLCBhbHBoYSA9IDAuNSksIHVwcGVyID0gbGlzdChjb250aW51b3VzID0gd3JhcCgiY29yIiwgc2l6ZSA9IDIuNSkpKQ0KYGBgDQoNCiMjIyMgRGlhZ3JhbWEgZGUgZXN0cmVsbGFzDQoNCmBgYHtyIERpYWdyYW1hX2RlX2VzdHJlbGxhcywgZmlnLmFsaWduPSdjZW50ZXInfQ0KDQpzZXQuc2VlZCgxMjA1MjIpDQpkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfTXVlc3RyZWFkbyA9IGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFtzYW1wbGUoMTpucm93KGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCksMjMpLC1jKDIsIDMsIDUsIDcsIDgsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldDQpzdGFycyhkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfTXVlc3RyZWFkbywgbGVuID0gMSwgY2V4ID0gMC40LCBrZXkubG9jID0gYygxMCwgMiksIGRyYXcuc2VnbWVudHMgPSBUUlVFKQ0KYGBgDQoNCiMjIyMgQ2FyYXMgZGUgY2hlcm5vZmYNCg0KYGBge3IgQ2FyYXNfZGVfY2hlcm5vZmYsIGZpZy5hbGlnbj0nY2VudGVyJ30NCg0Kc2V0LnNlZWQoMTIwNTIyKQ0KZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMX011ZXN0cmVhZG8gPSBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwgW3NhbXBsZSgxOm5yb3coZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMKSwyMyksLWMoMiwgMywgNSwgNywgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldDQpmYWNlcyhkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfTXVlc3RyZWFkbykNCmBgYA0KQSBwYXJ0aXIgZGUgbGFzIGdyw6FmaWNhcyBtdWx0aXZhcmlhZGFzIGdlbmVyYWRhcywgc2UgbG9ncmEgb2J0ZW5lciB1bmEgY29tcHJlbnNpw7NuIG3DoXMgY29tcGxldGEgZGUgbGEgZXN0cnVjdHVyYSBpbnRlcm5hIGRlbCBjb25qdW50byBkZSBkYXRvcy4gRWwgZGlhZ3JhbWEgY29uanVudG8gZGUgZGlzcGVyc2nDs24gcGVybWl0acOzIGlkZW50aWZpY2FyIHJlbGFjaW9uZXMgY2xhcmFzIGVudHJlIGNpZXJ0YXMgdmFyaWFibGVzLCBhc8OtIGNvbW8gcG9zaWJsZXMgY29uY2VudHJhY2lvbmVzIG8gcGF0cm9uZXMgZGUgYWdydXBhbWllbnRvLiBMYXMgZ3LDoWZpY2FzIGRlIGRpc3RyaWJ1Y2nDs24gYXl1ZGFyb24gYSBjYXJhY3Rlcml6YXIgZWwgY29tcG9ydGFtaWVudG8gaW5kaXZpZHVhbCBkZSBjYWRhIHZhcmlhYmxlLCBtb3N0cmFuZG8gZGlmZXJlbmNpYXMgZW4gc3UgZGlzcGVyc2nDs24geSBwb3NpYmxlcyBkZXN2aWFjaW9uZXMgcmVzcGVjdG8gYSB1bmEgZGlzdHJpYnVjacOzbiBzaW3DqXRyaWNhLiBQb3Igb3RybyBsYWRvLCBlbCBhbsOhbGlzaXMgbWVkaWFudGUgY29ycmVsYWNpb25lcyB2aXN1YWxlcyBmYWNpbGl0w7MgbGEgZGV0ZWNjacOzbiBkZSBhc29jaWFjaW9uZXMgZnVlcnRlcyBxdWUgcG9kcsOtYW4gc2VyIHJlbGV2YW50ZXMgcGFyYSBlc3R1ZGlvcyBwb3N0ZXJpb3Jlcy4NCkxvcyBkaWFncmFtYXMgZGUgZXN0cmVsbGFzIHkgbGFzIGNhcmFzIGRlIENoZXJub2ZmIG9mcmVjaWVyb24gdW5hIHBlcnNwZWN0aXZhIGNvbXBsZW1lbnRhcmlhIGFsIHBlcm1pdGlyIGNvbXBhcmFyIG9ic2VydmFjaW9uZXMgY29tcGxldGFzIGRlIGZvcm1hIHNpbXVsdMOhbmVhLCByZXNhbHRhbmRvIHNpbWlsaXR1ZGVzIHkgZGlmZXJlbmNpYXMgZ2VuZXJhbGVzIGVudHJlIGxvcyBwZXJmaWxlcyBhbmFsaXphZG9zLg0KDQojIyMgMS41LiBOb3JtYWxpZGFkIG11bHRpdmFyaWFkYSB7LnRhYnNldCAudGFic2V0LXBpbGxzfQ0KDQojIyMjIFBOTSBNYXJkaWENCmBgYHtyIFBOTV9NYXJkaWEsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KDQptYXJkaWEoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMWywtYygyLCAzLCA1LCA3LCA4LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMjAsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjgsIDI5LCAzMSwgMzIsIDMzKV0pDQpgYGANCg0KIyMjIyBQTk0gSGVuemUtWmlya2xlcg0KYGBge3IgUE5NX0hlbnplX1ppcmtsZXIsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KDQoNCm1oeihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDIsIDMsIDUsIDcsIDgsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyOCwgMjksIDMxLCAzMiwgMzMpXSkNCmBgYA0KDQojIyMjIFBOTSBSb3RhdGlvbmFsIFJvYnVzdCBTaGFwaXJvLVdpbGsNCmBgYHtyIFBOTV9Sb3RhdGlvbmFsX1JvYnVzdF9TaGFwaXJvLVdpbGssIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KDQpmYVRlc3QoKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFssLWMoMiwgMywgNSwgNywgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldKSwgMTApDQpgYGANCg0KIyMjIyBQTk0gQm93bWFuIGFuZCBTaGVudG9uDQpgYGB7ciBQTk1fQm93bWFuX1NoZW50b24sIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KDQptc2soKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFssLWMoMiwgMywgNSwgNywgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldKSwgMTApDQpgYGANCg0KDQojIyAqKkZhc2UgMiBbQ29tcG9uZW50ZXMgUHJpbmNpcGFsZXNdKiogDQoNCkVuIGVzdGEgKipzZWd1bmRhIGZhc2UqKiBkZWwgZXN0dWRpbyBzZSBwcmVzZW50YW4gbG9zIGPDoWxjdWxvcywgdmlzdWFsaXphY2lvbmVzIGUgaW50ZXJwcmV0YWNpb25lcyBjb3JyZXNwb25kaWVudGVzIGFsIEFuw6FsaXNpcyBkZSBDb21wb25lbnRlcyBQcmluY2lwYWxlcyAoQUNQKSwgYXBsaWNhZG9zIGEgbGFzIHZhcmlhYmxlcyBjdWFudGl0YXRpdmFzIGRlbCBjb25qdW50byBkZSBkYXRvcyBhbmFsaXphZG8gZW4gbGEgZmFzZSAxICgjc2VjMSkuDQoNCkVsIHByb3DDs3NpdG8gZGUgZXN0YSBldGFwYSBlcyBpZGVudGlmaWNhciBsYXMgY29tYmluYWNpb25lcyBsaW5lYWxlcyBxdWUgbWVqb3IgcmVzdW1lbiBsYSB2YXJpYWJpbGlkYWQgZGUgbG9zIGRhdG9zLCBleGFtaW5hbmRvIGFzcGVjdG9zIGNvbW8gbGEgc2VsZWNjacOzbiBkZSBjb21wb25lbnRlcyByZWxldmFudGVzLCBsYSBjYWxpZGFkIGRlIHJlcHJlc2VudGFjacOzbiwgbGFzIGNvbnRyaWJ1Y2lvbmVzIGRlIGxhcyB2YXJpYWJsZXMgb3JpZ2luYWxlcyB5IGxhIGludGVycHJldGFjacOzbiBkZSBsb3MgY29tcG9uZW50ZXMgcmVzdWx0YW50ZXMgZGVudHJvIGRlbCBjb250ZXh0byBkZWwgcHJvYmxlbWEgZXN0dWRpYWRvLg0KDQojIyMgMi4xLiBPYmpldGl2b3MNCg0KRWwgKipBbsOhbGlzaXMgZGUgQ29tcG9uZW50ZXMgUHJpbmNpcGFsZXMgKEFDUCkqKiB0aWVuZSBjb21vIG9iamV0aXZvIHRyYW5zZm9ybWFyIHVuIGNvbmp1bnRvIGRlIHZhcmlhYmxlcyBvcmlnaW5hbGVzIGNvcnJlbGFjaW9uYWRhcyBlbiB1biBudWV2byBjb25qdW50byBkZSB2YXJpYWJsZXMgbm8gY29ycmVsYWNpb25hZGFzIGRlbm9taW5hZGFzIGNvbXBvbmVudGVzIHByaW5jaXBhbGVzLCBxdWUgcmV0aWVuZW4gbGEgbWF5b3IgcGFydGUgZGUgbGEgaW5mb3JtYWNpw7NuIG9yaWdpbmFsLiBBIHRyYXbDqXMgZGUgZXN0ZSBwcm9jZXNvLCBzZSBidXNjYSByZWR1Y2lyIGxhIGRpbWVuc2lvbmFsaWRhZCBkZWwgZXNwYWNpbyBkZSBsb3MgZGF0b3MsIGVsaW1pbmFyIHJlZHVuZGFuY2lhcyB5IGZhY2lsaXRhciBsYSBpbnRlcnByZXRhY2nDs24gZGUgbGFzIGVzdHJ1Y3R1cmFzIHN1YnlhY2VudGVzIGVuIGVsIGNvbmp1bnRvIGRlIG9ic2VydmFjaW9uZXMuDQoNClBhcmEgdW5hIGNvbXByZW5zacOzbiBtw6FzIHByb2Z1bmRhIGRlbCBwcm9jZWRpbWllbnRvLCBsb3MgZGV0YWxsZXMgZGVsIGNvbmp1bnRvIGRlIGRhdG9zIHNlIGVuY3VlbnRyYW4gZW4gbGEgU2VjY2nDs24gMS4yICgjc2VjMS4yKSwgbWllbnRyYXMgcXVlIGxvcyBmdW5kYW1lbnRvcyB0ZcOzcmljb3MgZGVsIGFuw6FsaXNpcyBzZSBkZXNhcnJvbGxhbiBlbiBsYSBGYXNlIDEuIExhIHJldmlzacOzbiBkZSBkaWNoYXMgc2VjY2lvbmVzIHBlcm1pdGlyw6EgdW5hIGFwcmVjaWFjacOzbiBpbnRlZ3JhbCBkZWwgZW5mb3F1ZSBtZXRvZG9sw7NnaWNvIGltcGxlbWVudGFkby4NCg0KIyMjIDIuMi4gU2VsZWNjacOzbiBkZSBDb21wb25lbnRlcyB7LnRhYnNldCAudGFic2V0LXBpbGxzfQ0KDQpFbiBlbCBBbsOhbGlzaXMgZGUgQ29tcG9uZW50ZXMgUHJpbmNpcGFsZXMgKEFDUCksIGxhIHNlbGVjY2nDs24gZGUgY29tcG9uZW50ZXMgcGVybWl0ZSByZWR1Y2lyIGxhIGRpbWVuc2lvbmFsaWRhZCBkZWwgY29uanVudG8gZGUgZGF0b3MgY29uc2VydmFuZG8gbGEgbWF5b3IgcGFydGUgZGUgbGEgdmFyaWFiaWxpZGFkIG9yaWdpbmFsLiBQYXJhIGVsbG8gc2UgdXRpbGl6YW4gaGVycmFtaWVudGFzIGNvbW8gbGEgbWF0cml6IGRlbCBBQ1AsIGxhIG1hdHJpeiBkZSBjb3JyZWxhY2lvbmVzIHkgbG9zIHZhbG9yZXMgeSB2ZWN0b3JlcyBwcm9waW9zLiBMYSBtYXRyaXogZGUgY29ycmVsYWNpb25lcyBlc3RhbmRhcml6YSBsYXMgdmFyaWFibGVzIHkgbXVlc3RyYSBzdXMgcmVsYWNpb25lcyBpbmljaWFsZXMsIG1pZW50cmFzIHF1ZSBsb3MgdmFsb3JlcyBwcm9waW9zIGluZGljYW4gbGEgY2FudGlkYWQgZGUgdmFyaWFuemEgZXhwbGljYWRhIHBvciBjYWRhIGNvbXBvbmVudGUuIFBvciBzdSBwYXJ0ZSwgbG9zIHZlY3RvcmVzIHByb3Bpb3MgZGV0ZXJtaW5hbiBsYXMgY29tYmluYWNpb25lcyBsaW5lYWxlcyBxdWUgZ2VuZXJhbiBsYXMgbnVldmFzIGNvbXBvbmVudGVzIHkgZGVzY3JpYmVuIGVsIHBlc28gbyBjb250cmlidWNpw7NuIGRlIGNhZGEgdmFyaWFibGUgZW4gZWxsYXMuIEVzdGUgcHJvY2VzbyBwZXJtaXRlIGlkZW50aWZpY2FyIGN1w6FsZXMgY29tcG9uZW50ZXMgc29uIHJlbGV2YW50ZXMgeSBjdcOhbnRhcyBkZWJlbiByZXRlbmVyc2UgcGFyYSByZXByZXNlbnRhciBhZGVjdWFkYW1lbnRlIGxhIGVzdHJ1Y3R1cmEgZGUgbG9zIGRhdG9zLg0KDQojIyMjIE1hdHJpeiBBQ1ANCmBgYHtyIE1hdHJpel9BQ1AsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KZ2V0X2VpZ2VudmFsdWUoUENBKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFssLWMoMiwgMywgNSwgNywgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldLCBuY3AgPSA2LCBzY2FsZS51bml0ID0gVFJVRSwgZ3JhcGggPSBGKSkNCmBgYA0KDQojIyMjIE1hdHJpeiBkZSBDb3JyZWxhY2lvbmVzDQpgYGB7ciBNYXRyaXpfZGVfQ29ycmVsYWNpb25lc19BQ1B9DQpyb3VuZChjb3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMWywtYygyLCAzLCA1LCA3LCA4LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMjAsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjgsIDI5LCAzMSwgMzIsIDMzKV0pLDIpDQpgYGANCg0KIyMjIyBWYWxvcmVzIHkgVmVjdG9yZXMgUHJvcGlvcw0KYGBge3IgVmFsb3Jlc195X1ZlY3RvcmVzX1Byb3Bpb3MsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KDQoNCg0KDQpwcmluY29tcChkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfTXVlc3RyZWFkb1ssXSwgY29yID0gVFJVRSkkc2Rldl4yDQpwcmluY29tcChkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfTXVlc3RyZWFkb1ssXSwgY29yID0gVFJVRSkkbG9hZGluZ3NbICwxOjVdDQpgYGANCg0KYGBge3IgQ2lyY3Vsb19kZV9Db3JyZWxhY2lvbmVzX0FDUCwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQpmdml6X3BjYV92YXIoUENBKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFssLWMoMiwgMywgNSwgNywgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldLCBzY2FsZS51bml0ID0gVCwgZ3JhcGggPSBGKSxjb2wudmFyPSIjM0I4M0JEIiwgcmVwZWwgPSBULCBjb2wuY2lyY2xlID0gIiNDRENEQ0QiLCBnZ3RoZW1lID0gdGhlbWVfYncoKSkNCmBgYA0KDQojIyMgMi4zLiBDYWxpZGFkIGRlIFJlcHJlc2VudGFjacOzbiAgey50YWJzZXQgLnRhYnNldC1waWxsc30NCg0KRW4gZWwgYW7DoWxpc2lzIGRlIGNvbXBvbmVudGVzIHByaW5jaXBhbGVzLCBsYSBjYWxpZGFkIGRlIHJlcHJlc2VudGFjacOzbiBwZXJtaXRlIGV2YWx1YXIgcXXDqSB0YW4gYmllbiBjYWRhIHZhcmlhYmxlIHkgY2FkYSBpbmRpdmlkdW8gcXVlZGEgcHJveWVjdGFkbyBlbiBsb3MgbnVldm9zIGVqZXMgcHJpbmNpcGFsZXMuIEVsIGPDrXJjdWxvIGRlIGNvcnJlbGFjaW9uZXMgbXVlc3RyYSBjw7NtbyBzZSByZWxhY2lvbmFuIGxhcyB2YXJpYWJsZXMgb3JpZ2luYWxlcyBjb24gbG9zIGNvbXBvbmVudGVzLCBpbmRpY2FuZG8gY3XDoWxlcyBlc3TDoW4gbWVqb3IgcmVwcmVzZW50YWRhcyBlbiBlbCBwbGFubyBmYWN0b3JpYWwuIExhIG1hdHJpeiBkZSByZXByZXNlbnRhY2nDs24geSBsb3Mgw61uZGljZXMgZGUgY2FsaWRhZCBkZSByZXByZXNlbnRhY2nDs24gKGNvc8KyKSBjdWFudGlmaWNhbiBxdcOpIHBvcmNlbnRhamUgZGUgbGEgaW5mb3JtYWNpw7NuIGRlIGNhZGEgdmFyaWFibGUgbyBpbmRpdmlkdW8gZXMgY2FwdHVyYWRvIHBvciBsb3MgY29tcG9uZW50ZXMgc2VsZWNjaW9uYWRvcy4gRmluYWxtZW50ZSwgbGFzIGNvb3JkZW5hZGFzIGluZGl2aWR1YWxlcyBwZXJtaXRlbiB1YmljYXIgY2FkYSBvYnNlcnZhY2nDs24gZW4gZWwgZXNwYWNpbyByZWR1Y2lkbywgZmFjaWxpdGFuZG8gbGEgaWRlbnRpZmljYWNpw7NuIGRlIHBhdHJvbmVzLCBzaW1pbGl0dWRlcyBvIGFncnVwYW1pZW50b3MuDQoNCiMjIyMgQ2lyY3VsbyBkZSBjb3JyZWxhY2lvbmVzDQpgYGB7ciBDaXJjdWxvX2RlX0NvcnJlbGFjaW9uZXMsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KZnZpel9wY2FfdmFyKFBDQShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDIsIDMsIDUsIDcsIDgsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyOCwgMjksIDMxLCAzMiwgMzMpXSwgc2NhbGUudW5pdCA9IFQsIGdyYXBoID0gRiksY29sLnZhcj0iIzNCODNCRCIsIHJlcGVsID0gVCwgY29sLmNpcmNsZSA9ICIjQ0RDRENEIiwgZ2d0aGVtZSA9IHRoZW1lX2J3KCkpDQpgYGANCg0KIyMjIyBNYXRyaXogZGUgUmVwcmVzZW50YWNpw7NuDQpgYGB7ciBNYXRyaXpfZGVfUmVwcmVzc2VudGFjaW9uX0NPUzIsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KKGdldF9wY2FfdmFyKFBDQShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDIsIDMsIDUsIDcsIDgsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyOCwgMjksIDMxLCAzMiwgMzMpXSwgbmNwID0gNSwgc2NhbGUudW5pdCA9IFRSVUUsIGdyYXBoID0gRikpKSRjb3MyDQpgYGANCg0KIyMjIyBDYWxpZGFkIGRlIFJlcHJlc2VudGFjacOzbg0KYGBge3IgQ2FsaWRhZF9kZV9sYV9SZXByZXNlbnRhY2lvbiwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQpmdml6X3BjYV92YXIoUENBKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFssLWMoMiwgMywgNSwgNywgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldLCBuY3AgPSA1LCBzY2FsZS51bml0ID0gVFJVRSwgZ3JhcGggPSBGKSwgY29sLnZhcj0iY29zMiIsIGdyYWRpZW50LmNvbHM9YygiIzAwQUZCQiIsIiNFN0I4MDAiLCIjRkM0RTA3IiksIHJlcGVsID0gVFJVRSkNCmBgYA0KRWwgY8OtcmN1bG8gZGUgY29ycmVsYWNpb25lcyBtdWVzdHJhIHF1ZSBsYXMgdmFyaWFibGVzIFllYXJzQXRDb21wYW55LCBNb250aGx5SW5jb21lLCBUb3RhbFdvcmtpbmdZZWFycyB5IEFnZSBlc3TDoW4gZnVlcnRlbWVudGUgYXNvY2lhZGFzIGNvbiBlbCBwcmltZXIgY29tcG9uZW50ZSAoRGltMSksIGluZGljYW5kbyBxdWUgZXN0ZSBlamUgY2FwdHVyYSB1biBwYXRyw7NuIHJlbGFjaW9uYWRvIGNvbiBsYSBleHBlcmllbmNpYSBsYWJvcmFsIHkgZWwgY3JlY2ltaWVudG8gcHJvZmVzaW9uYWwgZGVudHJvIGRlIGxhIGVtcHJlc2EuIEVzdGFzIHZhcmlhYmxlcyBzZSBwcm95ZWN0YW4gY2VyY2EgZGUgbGEgY2lyY3VuZmVyZW5jaWEsIGxvIHF1ZSBpbmRpY2EgdW5hIGJ1ZW5hIHJlcHJlc2VudGFjacOzbiB5IHVuYSBhbHRhIGNvcnJlbGFjacOzbiBjb24gZXN0ZSBjb21wb25lbnRlLg0KUG9yIG90cm8gbGFkbywgTnVtQ29tcGFuaWVzV29ya2VkIGVzdMOhIG3DoXMgYXNvY2lhZGEgYWwgc2VndW5kbyBjb21wb25lbnRlIChEaW0yKSwgcmVmbGVqYW5kbyB1biBjb21wb3J0YW1pZW50byBkaWZlcmVudGUgYWwgZGUgbGFzIHZhcmlhYmxlcyBkZSBlc3RhYmlsaWRhZCBsYWJvcmFsLiBFbiBjb250cmFzdGUsIHZhcmlhYmxlcyBjb21vIEVtcGxveWVlTnVtYmVyLCBEYWlseVJhdGUsIFBlcmNlbnRTYWxhcnlIaWtlLCBEaXN0YW5jZUZyb21Ib21lIHkgTW9udGhseVJhdGUgYXBhcmVjZW4gY2VyY2EgZGVsIGNlbnRybyBkZWwgY8OtcmN1bG8sIGxvIHF1ZSBpbmRpY2EgcXVlIG5vIGVzdMOhbiBiaWVuIGV4cGxpY2FkYXMgcG9yIGxvcyBkb3MgcHJpbWVyb3MgY29tcG9uZW50ZXMgeSB0aWVuZW4gbWVub3IgYXBvcnRlIGEgbGEgdmFyaWFiaWxpZGFkIGNhcHR1cmFkYSBlbiBlbCBwbGFubyBmYWN0b3JpYWwuDQoNCiMjIyMgQ29vcmRlbmFkYXMgSW5kaXZpZHVhbGVzDQpgYGB7ciBDb29yZGVuYWRhc19SZWdpc3Ryb3MsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KaGVhZCgoUENBKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFssLWMoMiwgMywgNSwgNywgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldLCBuY3AgPSA1LCBzY2FsZS51bml0ID0gVFJVRSwgZ3JhcGggPSBGKSkkaW5kJGNvb3JkLCBuID0gMjNMKQ0KYGBgDQoNCiMjIyAyLjQuIENvbnRyaWJ1Y2lvbmVzIHkgQmlwbG90cyB7LnRhYnNldCAudGFic2V0LXBpbGxzfQ0KDQpFbiBlbCBhbsOhbGlzaXMgZGUgY29tcG9uZW50ZXMgcHJpbmNpcGFsZXMsIGxhcyBjb250cmlidWNpb25lcyBwZXJtaXRlbiBpZGVudGlmaWNhciBxdcOpIHZhcmlhYmxlcyBpbmZsdXllbiBjb24gbWF5b3IgcGVzbyBlbiBsYSBmb3JtYWNpw7NuIGRlIGNhZGEgY29tcG9uZW50ZS4gTGEgbWF0cml6IGRlIGNvbnRyaWJ1Y2lvbmVzIHJlc3VtZSBlbCBwb3JjZW50YWplIGRlIGFwb3J0YWNpw7NuIGRlIGNhZGEgdmFyaWFibGUgYSBjYWRhIGRpbWVuc2nDs24sIG1pZW50cmFzIHF1ZSBsb3MgZ3LDoWZpY29zIGRlIGNvbnRyaWJ1Y2nDs24gbXVlc3RyYW4gdmlzdWFsbWVudGUgY3XDoWxlcyB2YXJpYWJsZXMgc3VwZXJhbiBlbCB1bWJyYWwgZXNwZXJhZG8gKGzDrW5lYSByb2phKSB5LCBwb3IgbG8gdGFudG8sIHNvbiByZWxldmFudGVzIGVuIGxhIGludGVycHJldGFjacOzbiBkZSBjYWRhIGNvbXBvbmVudGUuIExvcyBiaXBsb3RzIGNvbXBsZW1lbnRhbiBlc3RlIGFuw6FsaXNpcyBhbCByZXByZXNlbnRhciBzaW11bHTDoW5lYW1lbnRlIGxhcyB2YXJpYWJsZXMgeSBhIGxvcyBpbmRpdmlkdW9zIGVuIGVsIGVzcGFjaW8gZGUgbG9zIGNvbXBvbmVudGVzLCBwZXJtaXRpZW5kbyB2aXN1YWxpemFyIGPDs21vIHNlIHJlbGFjaW9uYW4gYW1ib3MgZWxlbWVudG9zIGNvbiBsYXMgbnVldmFzIGRpbWVuc2lvbmVzIGdlbmVyYWRhcy4gRW4gY29uanVudG8sIGVzdGFzIGhlcnJhbWllbnRhcyBheXVkYW4gYSBjb21wcmVuZGVyIGxhIGVzdHJ1Y3R1cmEgaW50ZXJuYSBkZSBsb3MgZGF0b3MgeSBlbCBwYXBlbCBlc3BlY8OtZmljbyBxdWUgZGVzZW1wZcOxYSBjYWRhIHZhcmlhYmxlIGVuIGxhIHJlZHVjY2nDs24gZGltZW5zaW9uYWwuDQoNCiMjIyMgTWF0cml6IGRlIENvbnRyaWJ1Y2lvbmVzDQpgYGB7ciBNYXRyaXpfZGVfQ29udHJpYnVjaW9uZXMsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KKGdldF9wY2FfdmFyKFBDQShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDIsIDMsIDUsIDcsIDgsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyOCwgMjksIDMxLCAzMiwgMzMpXSwgbmNwID0gNSwgc2NhbGUudW5pdCA9IFRSVUUsIGdyYXBoID0gRikpKSRjb250cmliDQpgYGANCg0KIyMjIyBDb250cmlidWNpb25lcyBhIEQxDQpgYGB7ciBDb250cmlidWNpb25lc19ESU1fMSwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQpmdml6X2NvbnRyaWIoUENBKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFssLWMoMiwgMywgNSwgNywgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldLCBuY3AgPSA2LCBzY2FsZS51bml0ID0gVFJVRSwgZ3JhcGggPSBGKSwgY2hvaWNlID0gInZhciIsIGF4ZXMgPSAxLCB0b3AgPSAxMCkNCmBgYA0KDQojIyMjIENvbnRyaWJ1Y2lvbmVzIGEgRDINCmBgYHtyIENvbnRyaWJ1Y2lvbmVzX0RJTV8yLCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCmZ2aXpfY29udHJpYihQQ0EoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMWywtYygyLCAzLCA1LCA3LCA4LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMjAsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjgsIDI5LCAzMSwgMzIsIDMzKV0sIG5jcCA9IDYsIHNjYWxlLnVuaXQgPSBUUlVFLCBncmFwaCA9IEYpLCBjaG9pY2UgPSAidmFyIiwgYXhlcyA9IDIsIHRvcCA9IDEwKQ0KYGBgDQoNCiMjIyMgQ29udHJpYnVjaW9uZXMgYSBEMw0KYGBge3IgQ29udHJpYnVjaW9uZXNfRElNXzMsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KZnZpel9jb250cmliKFBDQShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExbLC1jKDIsIDMsIDUsIDcsIDgsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyOCwgMjksIDMxLCAzMiwgMzMpXSwgbmNwID0gNiwgc2NhbGUudW5pdCA9IFRSVUUsIGdyYXBoID0gRiksIGNob2ljZSA9ICJ2YXIiLCBheGVzID0gMywgdG9wID0gMTApDQpgYGANCg0KIyMjIyBDb250cmlidWNpb25lcyBhIEQ0DQpgYGB7ciBDb250cmlidWNpb25lc19ESU1fNCwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQpmdml6X2NvbnRyaWIoUENBKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFssLWMoMiwgMywgNSwgNywgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldLCBuY3AgPSA2LCBzY2FsZS51bml0ID0gVFJVRSwgZ3JhcGggPSBGKSwgY2hvaWNlID0gInZhciIsIGF4ZXMgPSA0LCB0b3AgPSAxMCkNCmBgYA0KDQojIyMjIENvbnRyaWJ1Y2lvbmVzIGEgRDUNCmBgYHtyIENvbnRyaWJ1Y2lvbmVzX0RJTV81LCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCmZ2aXpfY29udHJpYihQQ0EoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMWywtYygyLCAzLCA1LCA3LCA4LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMjAsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjgsIDI5LCAzMSwgMzIsIDMzKV0sIG5jcCA9IDYsIHNjYWxlLnVuaXQgPSBUUlVFLCBncmFwaCA9IEYpLCBjaG9pY2UgPSAidmFyIiwgYXhlcyA9IDUsIHRvcCA9IDEwKQ0KYGBgDQoNCiMjIyMgQmlwbG90IGRlIFZhcmlhYmxlcyB5IFJlZ2lzdHJvcyBbZmlsdHJvOkpvYkludm9sdmVtZW50XQ0KDQoNCg0KDQojIyMjIEJpcGxvdCBkZSBWYXJpYWJsZXMgeSBSZWdpc3Ryb3MgW2ZpbHRybzpFZHVjYXRpb25dDQpgYGB7ciBCaXBsb3RfZGVfVmFyaWFibGVzX3lfUmVnaXN0cm9zX2ZpbHRyb19FZHVjYXRpb259DQpkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwgPC0gcmVhZF9leGNlbCgiQzovVXNlcnMvVXNlci9PbmVEcml2ZS9Fc2NyaXRvcmlvL0dlc3Rpb24gZGUgRGF0b3MvZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMLnhsc3giKQ0KDQpzZXQuc2VlZCg3ODA3MjkpDQpkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfTXVlc3RyZWFkbyA9IGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFtzYW1wbGUoMTpucm93KGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCksMjAwKSwtYygyLCAzLCA1LCA4LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMjAsIDIxLCAyMywgMjQsIDI1LCAyNiwgMjgsIDI5LCAzMSwgMzIsIDMzKV0NCmRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF9NdWVzdHJlYWRvJEVkdWNhdGlvbiA8LSBmYWN0b3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMX011ZXN0cmVhZG8kRWR1Y2F0aW9uLCBsZXZlbHMgPSBjKDEsIDIsIDMsIDQsIDUpLCBsYWJlbHMgPSBjKCJwb2NvIiwgIm1hc29tZW5vcyIsICJhY2VwdGFibGUiLCAibXVjaG8iLCAiZGVtYXNpYWRvIikpDQpkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfTXVlc3RyZWFkbyRFZHVjYXRpb24gPC0gYXMuZmFjdG9yKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF9NdWVzdHJlYWRvJEVkdWNhdGlvbikNCmZ2aXpfcGNhX2JpcGxvdChQQ0EoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMWywgLWMoMiwgMywgNSwgOCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDIwLCAyMSwgMjMsIDI0LCAyNSwgMjYsIDI4LCAyOSwgMzEsIDMyLCAzMyldLCBuY3AgPSA1LCBzY2FsZS51bml0ID0gVFJVRSwgZ3JhcGggPSBGLCBxdWFsaS5zdXAgPSAiRWR1Y2F0aW9uIiksIGF4ZXMgPSBjKDEsIDIpLCByZXBlbCA9IFRSVUUsIGhhYmlsbGFnZSA9ICJFZHVjYXRpb24iKQ0KDQpgYGANCg0KDQojIyMjIEJpcGxvdCBkZSBWYXJpYWJsZXMgeSBSZWdpc3Ryb3MgW2ZpbHRybzpOLm9mIE1ham9yIFZlc3NlbHNdDQpgYGB7ciBCaXBsb3RfZGVfVmFyaWFibGVzX3lfUmVnaXN0cm9zX2ZpbHRyb19yZXN0aW5nZWxlY3Ryb30NCmRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCA8LSByZWFkX2V4Y2VsKCJDOi9Vc2Vycy9Vc2VyL09uZURyaXZlL0VzY3JpdG9yaW8vR2VzdGlvbiBkZSBEYXRvcy9kZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwueGxzeCIpDQoNCnNldC5zZWVkKDc4MDcyOSkNCmRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF9NdWVzdHJlYWRvIDwtIGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTFsgc2FtcGxlKDE6bnJvdyhkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwpLCAxNTApLCAtYygyLCAzLCA1LCA3LCA4LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMjAsIDIxLCAyNCwgMjUsIDI2LCAyOCwgMjksIDMxLCAzMiwgMzMpXQ0KDQpkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUGVyZm9ybWFuY2VSYXRpbmcgPC0gZmFjdG9yKA0KZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFBlcmZvcm1hbmNlUmF0aW5nLA0KbGV2ZWxzID0gYygzLCA0KSwNCmxhYmVscyA9IGMoIkluc2F0aXNmZWNobyIsICJQb2NvU2F0aXNmZWNobyIpKQ0KDQpwY2FfcmVzdWx0IDwtIFBDQSgNCiAgZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMX011ZXN0cmVhZG9bLCAtd2hpY2gobmFtZXMoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMX011ZXN0cmVhZG8pID09ICJQZXJmb3JtYW5jZVJhdGluZyIpXSwgDQogIG5jcCA9IDUsIA0KICBzY2FsZS51bml0ID0gVFJVRSwgDQogIGdyYXBoID0gRkFMU0UsDQogIHF1YWxpLnN1cCA9IHdoaWNoKG5hbWVzKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF9NdWVzdHJlYWRvKSA9PSAiUGVyZm9ybWFuY2VSYXRpbmciKQ0KKQ0KDQpmdml6X3BjYV9iaXBsb3QoUENBKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF9NdWVzdHJlYWRvWyxdLCBuY3AgPSA1LCBzY2FsZS51bml0ID0gVFJVRSwgZ3JhcGggPSBGLCBxdWFsaS5zdXAgPSB3aGljaChuYW1lcyhkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfTXVlc3RyZWFkbykgPT0gIlBlcmZvcm1hbmNlUmF0aW5nIikpLCBheGVzID0gYygxLCAyKSwgcmVwZWwgPSBUUlVFLCBoYWJpbGxhZ2UgPSAiUGVyZm9ybWFuY2VSYXRpbmciKQ0KDQpgYGANCkxhcyBjb250cmlidWNpb25lcyBtdWVzdHJhbiBxdWUgY2FkYSBjb21wb25lbnRlIGRlbCBQQ0EgZXN0w6EgZGV0ZXJtaW5hZG8gcG9yIGdydXBvcyBlc3BlY8OtZmljb3MgZGUgdmFyaWFibGVzLCBsbyBxdWUgZXZpZGVuY2lhIHF1ZSBsYSB2YXJpYWJpbGlkYWQgZGVsIGNvbmp1bnRvIGRlIGRhdG9zIHNlIG9yZ2FuaXphIGVuIGRpZmVyZW50ZXMgZGltZW5zaW9uZXMuIEVsIHByaW1lciBjb21wb25lbnRlIGVzdMOhIGZ1ZXJ0ZW1lbnRlIGluZmx1aWRvIHBvciB2YXJpYWJsZXMgcmVsYWNpb25hZGFzIGNvbiBsYSBleHBlcmllbmNpYSBsYWJvcmFsLCBtaWVudHJhcyBxdWUgbG9zIGNvbXBvbmVudGVzIHBvc3RlcmlvcmVzIHJlZmxlamFuIGluZm9ybWFjacOzbiBtw6FzIG9wZXJhdGl2YSB5IGRlIG1vdmlsaWRhZC4gTG9zIGJpcGxvdHMgY29uZmlybWFuIGVzdGFzIHJlbGFjaW9uZXMgYWwgbW9zdHJhciBjw7NtbyBsYXMgdmFyaWFibGVzIG3DoXMgaW5mbHV5ZW50ZXMgb3JpZW50YW4gbGEgcG9zaWNpw7NuIGRlIGxvcyBpbmRpdmlkdW9zIGVuIGxvcyBwbGFub3MgZmFjdG9yaWFsZXMsIHBlcm1pdGllbmRvIGRpc3Rpbmd1aXIgcGVyZmlsZXMgeSBwYXRyb25lcyBnZW5lcmFsZXMgZGVudHJvIGRlIGxvcyBkYXRvcy4gRXN0b3MgcmVzdWx0YWRvcyBvZnJlY2VuIHVuYSB2aXNpw7NuIGNsYXJhIGRlIHF1w6kgdmFyaWFibGVzIHNvbiBjbGF2ZSBlbiBjYWRhIGRpbWVuc2nDs24geSBjw7NtbyBlc3RydWN0dXJhbiBsYSBkaXN0cmlidWNpw7NuIGRlIGxhcyBvYnNlcnZhY2lvbmVzLg0KDQoNCiMjICoqRmFzZSAzIFtDb3JyZXNwb25kZW5jaWFzXSoqDQoNCkxhICoqdGVyY2VyYSBmYXNlKiogZGVsIGVzdHVkaW8gYWJvcmRhIGVsIEFuw6FsaXNpcyBkZSBDb3JyZXNwb25kZW5jaWFzLCB1bmEgdMOpY25pY2EgZXhwbG9yYXRvcmlhIGRlc3RpbmFkYSBhIHJlcHJlc2VudGFyIGdyw6FmaWNhbWVudGUgbGFzIHJlbGFjaW9uZXMgZW50cmUgY2F0ZWdvcsOtYXMgZGUgdmFyaWFibGVzIGN1YWxpdGF0aXZhcy4gQSB0cmF2w6lzIGRlIGVzdGEgbWV0b2RvbG9nw61hLCBzZSBidXNjYSBpZGVudGlmaWNhciBwYXRyb25lcyBkZSBhc29jaWFjacOzbiB5IGVzdHJ1Y3R1cmFzIGRlIHNpbWlsaXR1ZCBlbnRyZSBmaWxhcyB5IGNvbHVtbmFzIGRlIHRhYmxhcyBkZSBjb250aW5nZW5jaWEsIHBlcm1pdGllbmRvIHVuYSBjb21wcmVuc2nDs24gdmlzdWFsIHkgZXN0YWTDrXN0aWNhIGRlIGxhcyByZWxhY2lvbmVzIGVudHJlIGxhcyBtb2RhbGlkYWRlcyBvYnNlcnZhZGFzLg0KDQpFc3RhIGZhc2UgY29uc3RpdHV5ZSB1biBwdWVudGUgZW50cmUgbG9zIG3DqXRvZG9zIGFwbGljYWRvcyBhIHZhcmlhYmxlcyBjdWFudGl0YXRpdmFzIHkgYXF1ZWxsb3Mgb3JpZW50YWRvcyBhIGxhIGludGVycHJldGFjacOzbiBkZSBkYXRvcyBjYXRlZ8Ozcmljb3MuDQoNCiMjIyAzLjEuIE9iamV0aXZvcw0KDQpFbiBlc3RhICoqdGVyY2VyYSBmYXNlKiosIHNlIHByZXNlbnRhbiBsb3MgY8OhbGN1bG9zLCByZXByZXNlbnRhY2lvbmVzIGdyw6FmaWNhcyBlIGludGVycHJldGFjaW9uZXMgZGVyaXZhZGFzIGRlbCBjb25qdW50byBkZSBkYXRvcyBwcmV2aWFtZW50ZSB0cmFiYWphZG8gZW4gbGFzIEZhc2VzIDEgeSAyLiBFbCBvYmpldGl2byBlcyBhcGxpY2FyIGFuw6FsaXNpcyBkZSBjb3JyZXNwb25kZW5jaWFzIHNpbXBsZXMgeSBtw7psdGlwbGVzIHNvYnJlIGxhcyB2YXJpYWJsZXMgY3VhbGl0YXRpdmFzLCBjb25zdHJ1eWVuZG8gdGFibGFzIGRlIGNvbnRpbmdlbmNpYSB5IHRhYmxhcyBkaXN5dW50aXZhcyBjb21wbGV0YXMuIEFkZW3DoXMsIHNlIGV2YWx1YXLDoW4gbGFzIGNhbGlkYWRlcyBkZSByZXByZXNlbnRhY2nDs24sIGxhcyBjb250cmlidWNpb25lcyBkZSBsYXMgY2F0ZWdvcsOtYXMgeSBsYSBpbnRlcnByZXRhY2nDs24gZGUgbG9zIGVqZXMgZmFjdG9yaWFsZXMgb2J0ZW5pZG9zLCBjb24gZWwgZmluIGRlIGNvbXByZW5kZXIgbGFzIHJlbGFjaW9uZXMgZW50cmUgbGFzIG1vZGFsaWRhZGVzIGRlIGxhcyB2YXJpYWJsZXMuDQoNCiMjIyAzLjIuIENvcnJlc3BvbmRlbmNpYXMgU2ltcGxlcw0KIyMjIyBBQyBQYXJlamFzIFRvdGFsZXMgey50YWJzZXQgLnRhYnNldC1waWxsc30NCg0KIyMjIyMgQ29udGluZ2VuY2lhcw0KYGBge3IgVGFibGFzX2RlX0NvbnRpbmdlbmNpYSwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQphZGRtYXJnaW5zKHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRFZHVjYXRpb24sIGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRSZWxhdGlvbnNoaXBTYXRpc2ZhY3Rpb24pKQ0KYWRkbWFyZ2lucyh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkSm9iTGV2ZWwsIGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRSZWxhdGlvbnNoaXBTYXRpc2ZhY3Rpb24pKQ0KYWRkbWFyZ2lucyh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkU3RvY2tPcHRpb25MZXZlbCwgZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFdvcmtMaWZlQmFsYW5jZSkpDQpgYGANCg0KIyMjIyMgUHJvYmFiaWxpZGFkZXMNCmBgYHtyIFRhYmxhc19kZV9Qcm9iYWJpbGlkYWRlcywgZmlnLmFsaWduID0gJ2NlbnRlcid9DQphZGRtYXJnaW5zKHByb3AudGFibGUodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEVkdWNhdGlvbiwgZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFJlbGF0aW9uc2hpcFNhdGlzZmFjdGlvbikpKjEwMCkNCmFkZG1hcmdpbnMocHJvcC50YWJsZSh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkSm9iTGV2ZWwsIGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRSZWxhdGlvbnNoaXBTYXRpc2ZhY3Rpb24pKSoxMDApDQphZGRtYXJnaW5zKHByb3AudGFibGUodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFN0b2NrT3B0aW9uTGV2ZWwsIGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRXb3JrTGlmZUJhbGFuY2UpKSoxMDApDQpgYGANCg0KIyMjIyMgRnJlY3VlbmNpYXMgW0NQRiB5IENQQ10NCmBgYHtyIFRhYmxhc19kZV9GcmVjdWVuY2lhc19Db25kaWNpb25hZGFzLCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCnJvdW5kKGFkZG1hcmdpbnMocHJvcC50YWJsZSh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkRWR1Y2F0aW9uLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uKSwgMSkqMTAwLCAyKSwgMikNCnJvdW5kKGFkZG1hcmdpbnMocHJvcC50YWJsZSh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkRWR1Y2F0aW9uLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uKSwgMikqMTAwLCAxKSwgMikNCg0Kcm91bmQoYWRkbWFyZ2lucyhwcm9wLnRhYmxlKHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRKb2JMZXZlbCwgZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFJlbGF0aW9uc2hpcFNhdGlzZmFjdGlvbiksIDEpKjEwMCwgMiksIDIpDQpyb3VuZChhZGRtYXJnaW5zKHByb3AudGFibGUodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEpvYkxldmVsLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uKSwgMikqMTAwLCAxKSwgMikNCg0Kcm91bmQoYWRkbWFyZ2lucyhwcm9wLnRhYmxlKHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRTdG9ja09wdGlvbkxldmVsLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkV29ya0xpZmVCYWxhbmNlKSwgMSkqMTAwLCAyKSwgMikNCnJvdW5kKGFkZG1hcmdpbnMocHJvcC50YWJsZSh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkU3RvY2tPcHRpb25MZXZlbCwgZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFdvcmtMaWZlQmFsYW5jZSksIDIpKjEwMCwgMSksIDIpDQpgYGANCg0KIyMjIyMgUGVyZmlsZXMgW0NQRiB5IENQQ10NCmBgYHtyIEdyYWZpY29zX2RlX1BlcmZpbGVzLCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCnBsb3RjdCh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkRWR1Y2F0aW9uLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uKSwicm93IikNCnBsb3RjdCh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkRWR1Y2F0aW9uLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uKSwiY29sIikNCg0KcGxvdGN0KHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRKb2JMZXZlbCwgZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFJlbGF0aW9uc2hpcFNhdGlzZmFjdGlvbiksInJvdyIpDQpwbG90Y3QodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEpvYkxldmVsLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uKSwiY29sIikNCg0KcGxvdGN0KHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRTdG9ja09wdGlvbkxldmVsLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkV29ya0xpZmVCYWxhbmNlKSwicm93IikNCnBsb3RjdCh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkU3RvY2tPcHRpb25MZXZlbCwgZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFdvcmtMaWZlQmFsYW5jZSksImNvbCIpDQpgYGANCg0KIyMjIyMgUHJ1ZWJhcyBkZSBIaXDDs3Rlc2lzDQpgYGB7ciBQcnVlYmFzX2RlX0NvcnJlc3BvbmRlbmNpYSwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQpjaGlzcS50ZXN0KHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRFZHVjYXRpb24sIGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRSZWxhdGlvbnNoaXBTYXRpc2ZhY3Rpb24pKQ0KY2hpc3EudGVzdCh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkSm9iTGV2ZWwsIGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRSZWxhdGlvbnNoaXBTYXRpc2ZhY3Rpb24pKQ0KY2hpc3EudGVzdCh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkVG90YWxXb3JraW5nWWVhcnMsIGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRXb3JrTGlmZUJhbGFuY2UpKQ0KYGBgDQoNCiMjIyMgQUMgUGFyZWphIMOabmljYSB7LnRhYnNldCAudGFic2V0LXBpbGxzfQ0KDQojIyMjIyBDb250aW5nZW5jaWFzIHkgUmVzaWR1YWxlcyBbVC1DUF0NCmBgYHtyIENvbnRpbmdlbmNpYXNfeV9SZXNpZHVhbGVzLCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCmNoaXNxLnRlc3QodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFJlbGF0aW9uc2hpcFNhdGlzZmFjdGlvbixkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkU3RvY2tPcHRpb25MZXZlbCkpJG9ic2VydmVkDQpjaGlzcS50ZXN0KHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRSZWxhdGlvbnNoaXBTYXRpc2ZhY3Rpb24sZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFN0b2NrT3B0aW9uTGV2ZWwpKSRleHBlY3RlZCANCmNoaXNxLnRlc3QodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFJlbGF0aW9uc2hpcFNhdGlzZmFjdGlvbixkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkU3RvY2tPcHRpb25MZXZlbCkpJHJlc2lkdWFscw0KY2hpc3EudGVzdCh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uLGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRTdG9ja09wdGlvbkxldmVsKSkkc3RkcmVzDQpgYGANCg0KIyMjIyMgQ29udHJpYnVjaW9uZXMgW1QtQ1BdDQpgYGB7ciBDb250cmlidWNpb25lc19SLVVSLCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCmNoaXNxLnRlc3QodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFJlbGF0aW9uc2hpcFNhdGlzZmFjdGlvbixkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkU3RvY2tPcHRpb25MZXZlbCkpJHJlc2lkdWFsc14yL2NoaXNxLnRlc3QodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFJlbGF0aW9uc2hpcFNhdGlzZmFjdGlvbixkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkU3RvY2tPcHRpb25MZXZlbCkpJHN0YXRpc3RpYyoxMDANCmBgYA0KDQojIyMjIyBDb3JyZXNwb25kZW5jaWEgU2ltcGxlIFVuaWRpbWVuc2lvbmFsIFtSLVVSXQ0KYGBge3IgQmlwbG90X0NvcnJlc3BvbmRlbmNpYV9TaW1wbGVfUi1VUiwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQpDQSh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uLGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRTdG9ja09wdGlvbkxldmVsKSwgZ3JhcGggPSBGQUxTRSkkZWlnDQpDQSh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uLGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRTdG9ja09wdGlvbkxldmVsKSwgZ3JhcGggPSBGQUxTRSkkY29sDQpDQSh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkUmVsYXRpb25zaGlwU2F0aXNmYWN0aW9uLGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRTdG9ja09wdGlvbkxldmVsKSwgZ3JhcGggPSBGQUxTRSkkcm93DQpgYGANCg0KIyMjIDMuMy4gQ29ycmVzcG9uZGVuY2lhcyBNw7psdGlwbGVzDQoNCiMjIyMgQUNNDQoNCg0KDQoNCiMjIyMgQmlwbG90IEFDTQ0KDQoNCg0KIyMjIyBDYWxpZGFkIGRlIFJlcHJlc2VudGFjacOzbg0KDQoNCiMjIyMgQ29udHJpYnVjaW9uZXMNCg0KDQojIyMjIEJpcGxvdCBjb24gQ29udHJpYnVjaW9uZXMNCg0KDQojIyAqKkZhc2UgNCBbQ29uZ2xvbWVyYWRvc10qKg0KDQpFbiBlc3RhICoqY3VhcnRhIGZhc2UqKiBkZWwgZXN0dWRpbywgc2UgcHJlc2VudGFuIGxvcyBjw6FsY3Vsb3MsIHZpc3VhbGl6YWNpb25lcyBlIGludGVycHJldGFjaW9uZXMgb2J0ZW5pZGFzIGEgcGFydGlyIGRlbCBjb25qdW50byBkZSBkYXRvcyBwcm9jZXNhZG8gZW4gbGFzIGZhc2VzIDEsIDIgeSAzLg0KRWwgZW5mb3F1ZSBwcmluY2lwYWwgY29ycmVzcG9uZGUgYWwgQW7DoWxpc2lzIGRlIENvbmdsb21lcmFkb3MsIHRhbnRvIGVuIHN1IHZlcnNpw7NuIGplcsOhcnF1aWNhLCByZXByZXNlbnRhZGEgbWVkaWFudGUgZGVuZHJvZ3JhbWFzLCBjb21vIGVuIHN1IG1vZGFsaWRhZCBubyBqZXLDoXJxdWljYSwgaW1wbGVtZW50YWRhIG1lZGlhbnRlIGVsIGFsZ29yaXRtbyBkZSBLLW1lZGlhcy4NCkVsIG9iamV0aXZvIGdlbmVyYWwgZXMgZGV0ZXJtaW5hciBsYSBleGlzdGVuY2lhIGRlIGFncnVwYWNpb25lcyBuYXR1cmFsZXMgZGVudHJvIGRlIGxvcyBkYXRvcywgYW5hbGl6YXIgc3UgY29uc2lzdGVuY2lhIGludGVybmEgeSBkZXNjcmliaXIgbGFzIGNhcmFjdGVyw61zdGljYXMgZGUgY2FkYSBncnVwbyBpZGVudGlmaWNhZG8uDQoNCg0KIyMjIDQuMS4gT2JqZXRpdm9zDQoNCkxhICoqY3VhcnRhIGZhc2UqKiBkZWwgZXN0dWRpbyBzZSBjZW50cmEgZW4gZWwgKipBbsOhbGlzaXMgZGUgQ29uZ2xvbWVyYWRvcyoqLCB1bmEgdMOpY25pY2EgZGUgY2xhc2lmaWNhY2nDs24gY3V5byBwcm9ww7NzaXRvIGVzIGFncnVwYXIgaW5kaXZpZHVvcyB1IG9ic2VydmFjaW9uZXMgZW4gZnVuY2nDs24gZGUgc3Ugc2ltaWxpdHVkIHJlc3BlY3RvIGEgdW4gY29uanVudG8gZGUgdmFyaWFibGVzLiBNZWRpYW50ZSBlbCB1c28gZGUgYWxnb3JpdG1vcyBqZXLDoXJxdWljb3MgeSBubyBqZXLDoXJxdWljb3MsIHNlIGJ1c2NhIGlkZW50aWZpY2FyIGVzdHJ1Y3R1cmFzIG5hdHVyYWxlcyBlbiBsb3MgZGF0b3MsIHBlcm1pdGllbmRvIGRlZmluaXIgZ3J1cG9zIGhvbW9nw6luZW9zIGludGVybmFtZW50ZSB5IGhldGVyb2fDqW5lb3MgZW50cmUgc8OtLg0KDQpFc3RhIGV0YXBhIGNvbXBsZW1lbnRhIGxhcyBmYXNlcyBhbnRlcmlvcmVzIGFsIGZhY2lsaXRhciBsYSBzZWdtZW50YWNpw7NuIHkgY2FyYWN0ZXJpemFjacOzbiBkZSBsb3MgaW5kaXZpZHVvcyBvIHVuaWRhZGVzIGRlIGFuw6FsaXNpcy4NCg0KIyMjIDQuMi4gQWdydXBhY2nDs24gSmVyw6FycXVpY2ENCg0KIyMjIyBDYW1wbyBDbGFzaWZpY2Fkb3INCmBgYHtyIENhbXBvX0NsYXNpZmljYWRvciwgZmlnLmFsaWduPSdjZW50ZXInfQ0KZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMIDwtIHJlYWRfZXhjZWwoIkM6L1VzZXJzL1VzZXIvT25lRHJpdmUvRXNjcml0b3Jpby9HZXN0aW9uIGRlIERhdG9zL2Rlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTC54bHN4IikNClZpZXcoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMKQ0KaGVhZChhcy5kYXRhLmZyYW1lKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCkpDQpgYGANCg0KIyMjIyBEaXNpbWlsYXJpZGFkDQpgYGB7ciBEaXNpbWlsYXJpZGFkLCBmaWcuYWxpZ249J2NlbnRlcid9DQpkYXRhXyA9IGFzLmRhdGEuZnJhbWUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMKVssIC1jKDIsIDMsIDUsIDgsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAyMCwgMjEsIDIzLCAyNCwgMjUsIDI2LCAyOCwgMjksIDMxLCAzMiwgMzMpXQ0Kcm93bmFtZXMoZGF0YV8pID0gdW5jbGFzcyhkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkRW1wbG95ZWVOdW1iZXIpDQpmdml6X2Rpc3QoZ2V0X2Rpc3QoZGF0YV8sIHN0YW5kID0gVCwgbWV0aG9kID0gImV1Y2xpZGVhbiIpLCBncmFkaWVudCA9IGxpc3QobG93ID0gIiMwMEFGQkIiLCBtaWQgPSAid2hpdGUiLCBoaWdoID0gIiNGQzRFMDciKSkNCmBgYA0KDQojIyMjIE9wdGltaXphY2nDs24gZGUgTW9qZW5hIHsudGFic2V0IC50YWJzZXQtcGlsbHN9DQoNCiMjIyMjIFVuacOzbiBTaW1wbGUNCmBgYHtyIFVuaW9uX3NpbXBsZSwgZmlnLmFsaWduPSdjZW50ZXInfQ0KaGNfc2luZ2xlID0gaGNsdXN0KGdldF9kaXN0KGRhdGFfLCBzdGFuZCA9IFQsIG1ldGhvZCA9ICJldWNsaWRlYW4iKSwgbWV0aG9kID0gInNpbmdsZSIpDQoNCm1vamVuYSA9IGZ1bmN0aW9uKGhjKXsNCiAgbl9oZCA9IGxlbmd0aChoYyRoZWlnaHQpDQogIGFscF9nID0gMCA7IGFscGhhID0gaGMkaGVpZ2h0W25faGQ6MV0NCiAgZm9yKGkgaW4gMToobl9oZC0xKSl7DQogICAgYWxwX2dbaV0gPSBtZWFuKGFscGhhWyhuX2hkLWkrMSk6MV0pKzEuMjUqc2QoYWxwaGFbKG5faGQtaSsxKToxXSkNCiAgfQ0KICBub2cgPSBzdW0oYWxwX2c8PSBhbHBoYVstbl9oZF0pICsgMQ0KICBwbG90KGFscGhhWy1uX2hkXSwgcGNoPTIwLCBjb2w9KGFscF9nPmFscGhhWy1uX2hkXSkrMSwgbWFpbiA9IHBhc3RlKCJPcHRpbWFsIG51bWJlciBvZiBncm91cHMgPSIsbm9nKSwNCiAgICAgICB5bGFiID0gZXhwcmVzc2lvbihhbHBoYVtnXSksIHhsYWI9Ik5vZGVzIil9DQptb2plbmEoaGNfc2luZ2xlKQ0KDQpgYGANCg0KDQojIyMjIyBVbmnDs24gQ29tcGxldGENCmBgYHtyIFVuaW9uX0NvbXBsZXRhLCBmaWcuYWxpZ249J2NlbnRlcid9DQpoY19jb21wbGV0ZSA9IGhjbHVzdChnZXRfZGlzdChkYXRhXywgc3RhbmQgPSBULCBtZXRob2QgPSAiZXVjbGlkZWFuIiksIG1ldGhvZCA9ICJjb21wbGV0ZSIpDQoNCm1vamVuYSA9IGZ1bmN0aW9uKGhjKXsNCiAgbl9oZCA9IGxlbmd0aChoYyRoZWlnaHQpDQogIGFscF9nID0gMCA7IGFscGhhID0gaGMkaGVpZ2h0W25faGQ6MV0NCiAgZm9yKGkgaW4gMToobl9oZC0xKSl7DQogICAgYWxwX2dbaV0gPSBtZWFuKGFscGhhWyhuX2hkLWkrMSk6MV0pKzEuMjUqc2QoYWxwaGFbKG5faGQtaSsxKToxXSkNCiAgfQ0KICBub2cgPSBzdW0oYWxwX2c8PSBhbHBoYVstbl9oZF0pICsgMQ0KICBwbG90KGFscGhhWy1uX2hkXSwgcGNoPTIwLCBjb2w9KGFscF9nPmFscGhhWy1uX2hkXSkrMSwgbWFpbiA9IHBhc3RlKCJPcHRpbWFsIG51bWJlciBvZiBncm91cHMgPSIsbm9nKSwNCiAgICAgICB5bGFiID0gZXhwcmVzc2lvbihhbHBoYVtnXSksIHhsYWI9Ik5vZGVzIil9DQoNCm1vamVuYShoY19jb21wbGV0ZSkNCg0KYGBgDQoNCg0KIyMjIyMgVW5pw7NuIFByb21lZGlvDQpgYGB7ciBVbmlvbl9Qcm9tZWRpbywgZmlnLmFsaWduPSdjZW50ZXInfQ0KaGNfYXZlcmFnZSA9IGhjbHVzdChnZXRfZGlzdChkYXRhXywgc3RhbmQgPSBULCBtZXRob2QgPSAiZXVjbGlkZWFuIiksIG1ldGhvZCA9ICJhdmVyYWdlIikNCg0KbW9qZW5hID0gZnVuY3Rpb24oaGMpew0KICBuX2hkID0gbGVuZ3RoKGhjJGhlaWdodCkNCiAgYWxwX2cgPSAwIDsgYWxwaGEgPSBoYyRoZWlnaHRbbl9oZDoxXQ0KICBmb3IoaSBpbiAxOihuX2hkLTEpKXsNCiAgICBhbHBfZ1tpXSA9IG1lYW4oYWxwaGFbKG5faGQtaSsxKToxXSkrMS4yNSpzZChhbHBoYVsobl9oZC1pKzEpOjFdKQ0KICB9DQogIG5vZyA9IHN1bShhbHBfZzw9IGFscGhhWy1uX2hkXSkgKyAxDQogIHBsb3QoYWxwaGFbLW5faGRdLCBwY2g9MjAsIGNvbD0oYWxwX2c+YWxwaGFbLW5faGRdKSsxLCBtYWluID0gcGFzdGUoIk9wdGltYWwgbnVtYmVyIG9mIGdyb3VwcyA9Iixub2cpLA0KICAgICAgIHlsYWIgPSBleHByZXNzaW9uKGFscGhhW2ddKSwgeGxhYj0iTm9kZXMiKX0NCg0KbW9qZW5hKGhjX2F2ZXJhZ2UpDQoNCmBgYA0KDQoNCiMjIyMgRGVuZG9ncmFtYXMgT3B0aW1pemFkb3Mgey50YWJzZXQgLnRhYnNldC1waWxsc30NCg0KDQoNCg0KDQoNCiMjIyA0LjMuIEFncnVwYWNpw7NuIE5vLUplcsOhcnF1aWNhDQpTZWfDum4gIFtAQUVETURpYXotTW9yYWxlczFlZF0sIGxvcyAqKm3DqXRvZG9zIGRlIGFnbG9tZXJhY2nDs24gbm8gamVyw6FycXVpY29zKiosIHRhbWJpw6luIGNvbm9jaWRvcyBjb21vIG3DqXRvZG9zIGRlICoqcGFydGljacOzbioqLCBzZSBiYXNhbiBlbiB1bmEgKipwYXJ0aWNpw7NuIGluaWNpYWwqKiBkZWwgY29uanVudG8gZGUgZGF0b3MsIGdlbmVyYW5kbyBzdWJjb25qdW50b3MgbyBncnVwb3MuIEEgY2FkYSB1bm8gZGUgZXN0b3MgZ3J1cG9zIHNlIGxlIGNhbGN1bGEgdW4gY2VudHJvaWRlLCB5IHBvc3Rlcmlvcm1lbnRlLCBsYXMgb2JzZXJ2YWNpb25lcyBzZSBhc2lnbmFuIGFsIGNvbmdsb21lcmFkbyBjdXlvIGNlbnRyb2lkZSBzZSBlbmN1ZW50cmEgbcOhcyBjZXJjYW5vLiBFc3RlIHByb2Nlc28gc2UgcmVwaXRlIHJlY3Vyc2l2YW1lbnRlLCByZWNhbGN1bGFuZG8gbG9zIGNlbnRyb2lkZXMgeSBhanVzdGFuZG8gbGFzIGFzaWduYWNpb25lcyBoYXN0YSBxdWUgbGFzIG9ic2VydmFjaW9uZXMgeWEgbm8gcHVlZGFuIGNhbWJpYXIgZGUgZ3J1cG8uIEEgZGlmZXJlbmNpYSBkZSBsb3MgbcOpdG9kb3MgamVyw6FycXVpY29zLCBlc3RlIGVuZm9xdWUgcGVybWl0ZSBxdWUgdW5hIG9ic2VydmFjacOzbiBjYW1iaWUgZGUgZ3J1cG8gZHVyYW50ZSBlbCBwcm9jZXNvLg0KDQpFbCAqKmFuw6FsaXNpcyBkZWwgY29uanVudG8gZGUgZGF0b3Mgc2UgY2VycmFyw6EqKiBjb24gZWwgbcOpdG9kbyBubyBqZXLDoXJxdWljbyBkZSAqKkstbWVkaWFzKiosIHF1ZSBkaXZpZGUgdW4gY29uanVudG8gZGUgJG4kIG9iamV0b3MgZW4gJGskIGdydXBvcy4gRXN0ZSBtw6l0b2RvIHNlbGVjY2lvbmEgbG9zIGNlbnRyb2lkZXMgZGUgbG9zIGdydXBvcyBkZSBtYW5lcmEgcXVlIG1pbmltaWNlbiBsYSBkaXN0YW5jaWEgKmV1Y2xpZGlhbmEqIGVudHJlIGNhZGEgb2JqZXRvIHkgc3UgY2VudHJvaWRlIG3DoXMgY2VyY2Fuby4gTGFzIG9ic2VydmFjaW9uZXMgc2UgYXNpZ25hbiBhbCBjb25nbG9tZXJhZG8gY3V5byBjZW50cm9pZGUgZXN0w6kgbcOhcyBwcsOzeGltbywgY29uIGVsIG9iamV0aXZvIGRlIHJlb3JnYW5pemFyIGxvcyBvYmpldG9zIGVuIGdydXBvcyBxdWUgcHJlc2VudGVuIGxhIG1lbm9yIHZhcmlhYmlsaWRhZCBpbnRlcm5hIHBvc2libGUuDQoNCiMjIyMgSy3Dk3B0aW1vIHsudGFic2V0IC50YWJzZXQtcGlsbHN9DQoNCiMjIyMjIEVsYm93DQpgYGB7ciBFbGJvdywgZmlnLmFsaWduPSdjZW50ZXInfQ0KZnZpel9uYmNsdXN0KGRhdGFfLCBrbWVhbnMsIG1ldGhvZCA9ICJ3c3MiKSArIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IDMsIGxpbmV0eXBlID0gMikNCmBgYA0KDQoNCiMjIyMjIFNpbGhvdWV0dGUNCmBgYHtyIFNpbGhvdWV0dGUsZmlnLmFsaWduPSdjZW50ZXInfQ0KZnZpel9uYmNsdXN0KGRhdGFfLCBrbWVhbnMsIG1ldGhvZCA9ICJzaWxob3VldHRlIikNCmBgYA0KDQoNCiMjIyMjIEdhcCBTdGF0aXN0aWMNCmBgYHtyIEdhcF9TdGF0aXN0aWMsZmlnLmFsaWduPSdjZW50ZXInfQ0KZnZpel9uYmNsdXN0KGRhdGFfLCBrbWVhbnMsIG1ldGhvZCA9ICJnYXBfc3RhdCIpDQpgYGANCg0KDQojIyMjIyBNYWpvcml0eSBSdWxlDQpgYGB7ciBNYWpvcml0eV9SdWxlLCBmaWcuYWxpZ249J2NlbnRlcid9DQpzdXBwcmVzc1dhcm5pbmdzKE5iQ2x1c3QoZGF0YV8sIGRpc3MgPSBOVUxMLCBkaXN0YW5jZSA9ICJldWNsaWRlYW4iLCBtaW4ubmMgPSAyLCBtYXgubmMgPSAxMCwgbWV0aG9kID0gImttZWFucyIpJEJlc3QubmMpDQpgYGANCg0KIyMjIyBSZXN1bHRhZG9zIEstTWVhbnN7LnRhYnNldCAudGFic2V0LXBpbGxzfQ0KDQojIyMjIyBLLcOTcHRpbW8gW0VsX01hLVJ1bCAzXQ0KYGBge3Igay1vcHRpbW9zLCBmaWcuYWxpZ249J2NlbnRlcid9DQpzZXQuc2VlZCgxMjExMjQpDQpwcmludChrbWVhbnMoZGF0YV8sIDMsIG5zdGFydCA9IDI1KSkNCmBgYA0KDQojIyMjIyBLLcOTcHRpbW8gW3NpbCA0XQ0KYGBge3Igay1vcHRpbW9fc2lsLCBmaWcuYWxpZ249J2NlbnRlcid9DQpzZXQuc2VlZCgxMjExMjQpDQpwcmludChrbWVhbnMoZGF0YV8sIDQsIG5zdGFydCA9IDI1KSkNCmBgYA0KDQojIyMjIEdyw6FmaWNvcyBLLU1lYW5zey50YWJzZXQgLnRhYnNldC1waWxsc30NCg0KIyMjIyMgSy3Dk3B0aW1vIFtFbGJfTWEtUnVsIDNdDQpgYGB7ciBHcmFmX0VsYl9NYS1SdWwsIGZpZy5hbGlnbj0nY2VudGVyJ30NCmZ2aXpfY2x1c3RlcihrbWVhbnMoZGF0YV8sIDMsIG5zdGFydCA9IDI1KSwgZGF0YSA9IGRhdGFfLCBwYWxldHRlID0gYygiIzJFOUZERiIsICIjMDBBRkJCIiwgIiNFN0I4MDAiLCAiI0U3QjgwMSIpLCBlbGxpcHNlLnR5cGUgPSAiZXVjbGlkIiwgc3Rhci5wbG90ID0gVFJVRSwgcmVwZWwgPSBUUlVFLCBnZ3RoZW1lID0gdGhlbWVfbWluaW1hbCgpDQopDQpgYGANCg0KIyMjIyMgSy3Dk3B0aW1vICBbc2lsIDRdDQpgYGB7ciBHcmFmX3NpbCwgZmlnLmFsaWduPSdjZW50ZXInfQ0KZnZpel9jbHVzdGVyKGttZWFucyhkYXRhXywgMiwgbnN0YXJ0ID0gMjUpLCBkYXRhID0gZGF0YV8sIHBhbGV0dGUgPSBjKCIjMkU5RkRGIiwgIiMwMEFGQkIiLCAiI0U3QjgwMCIsICIjRTdCODAxIiksIGVsbGlwc2UudHlwZSA9ICJldWNsaWQiLCBzdGFyLnBsb3QgPSBUUlVFLCByZXBlbCA9IFRSVUUsIGdndGhlbWUgPSB0aGVtZV9taW5pbWFsKCkNCikNCg0KYGBgDQoNCjxhIG5hbWU9InNlYzUiPjwvYT4NCg0KIyMgKipGYXNlIDUgW0Fuw6FsaXNpcyBkZSBSZWdyZXNpw7NuXSoqDQoNCkxhIHJlZ3Jlc2nDs24gbXVsdGlwbGUgc2UgY2VudHJhIHNvYnJlIGxhIGRlcGVuZGVuY2lhIGRlIHVuYSB2YXJpYWJsZSByZXNwdWVzdGEgcmVzcGVjdG8gYSB1biBjb25qdW50byBkZSB2YXJpYWJsZXMgKipyZWdyZXNvcmFzIG8gcHJlZGljdG9yYXMqKi4gTWVkaWFudGUgdW4gbW9kZWxvIGRlIHJlZ3Jlc2nDs24gc2UgbWlkZSBlbCBlZmVjdG8gZGUgY2FkYSB1bmEgZGUgbGFzIHZhcmlhYmxlcyByZWdyZXNvcmFzIHNvYnJlIGxhIHJlc3B1ZXN0YS4gVW5vIGRlIGxvcyBvYmpldGl2b3MgZXMgbGEgZXN0aW1hY2nDs24gcGFyYSBsYSBwcmVkaWNjacOzbiBkZWwgdmFsb3IgbWVkaW8gZGUgbGEgdmFyaWFibGUgZGVwZW5kaWVudGUsIGNvbiBiYXNlIGVuIGVsIGNvbm9jaW1pZW50byBkZSBsYXMgdmFyaWFibGVzIGluZGVwZW5kaWVudGVzIG8gcHJlZGljdG9yYXMuDQoNCiMjIyA1LjEuIE9iamV0aXZvcw0KDQpFbCBwcm9ww7NzaXRvIGRlIGVzdGEgZmFzZSBlcyBlc3RhYmxlY2VyICoqcmVsYWNpb25lcyBlc3RhZMOtc3RpY2FzIGVudHJlIGRvcyBvIG3DoXMgdmFyaWFibGVzKiogbWVkaWFudGUgZWwgdXNvIGRlIG1vZGVsb3MgZGUgcmVncmVzacOzbiBxdWUgZGVzY3JpYmVuIGPDs21vIHVuYSB2YXJpYWJsZSBkZXBlbmRpZW50ZSBwdWVkZSBleHBsaWNhcnNlIGEgcGFydGlyIGRlIHVuYSBvIHZhcmlhcyB2YXJpYWJsZXMgaW5kZXBlbmRpZW50ZXMuIERpY2hhcyByZWxhY2lvbmVzIHNvbiBkZSB0aXBvIHByb2JhYmlsw61zdGljbywgbG8gcXVlIHBlcm1pdGUgcmVhbGl6YXIgY29uY2x1c2lvbmVzIHkgcHJlZGljY2lvbmVzIHNvYnJlIGxvcyBmZW7Ds21lbm9zIGFuYWxpemFkb3MuDQoNClNlIGNhbGN1bGFyw6FuIG1lZGlkYXMgcXVlIGV4cHJlc2VuIGxhIGludGVuc2lkYWQgeSBkaXJlY2Npw7NuIGRlIGxhcyBhc29jaWFjaW9uZXMsIGFwbGljYW5kbyBtb2RlbG9zIGRlcml2YWRvcyBkZWwgbW9kZWxvIGxpbmVhbCBnZW5lcmFsaXphZG8sIGVudHJlIGVsbG9zIGxhICoqUmVncmVzacOzbiBMaW5lYWwgU2ltcGxlKiosIGxhICoqUmVncmVzacOzbiBMaW5lYWwgTcO6bHRpcGxlKiogeSBsYSAqKlJlZ3Jlc2nDs24gTG9nw61zdGljYSoqLiBDYWRhIG1vZGVsbyBzZXLDoSBkZXNjcml0byB0ZcOzcmljYW1lbnRlIGVuIHN1IHJlc3BlY3RpdmEgc3Vic2VjY2nDs24geSBhcGxpY2FkbyBhbCBjb25qdW50byBkZSBkYXRvcy4NCg0KDQojIyMgNS4yLiBSZWdyZXNpw7NuIExpbmVhbCBTaW1wbGUNCg0KIyMjIyMgUmVzdW1lbiBNb250aGx5SW5jb21lDQpgYGB7ciBSZXN1bWVuX01JfQ0KDQpib3hwbG90X01vbnRobHlJbmNvbWUgPC0gZnVuY3Rpb24oZGF0YSwgdmFyaWFibGUsIG1haW5fdGl0bGUgPSAiRGlhZ3JhbWEgZGUgY2FqYSBNb250aGx5SW5jb21lIiwgY29sb3IgPSAib3JhbmdlIiwgeWxpbSA9IE5VTEwpIHsNCiAgaWYgKGlzLnZlY3RvcihkYXRhKSkgeyANCiAgDQogICAgYm94cGxvdChkYXRhLCANCiAgICAgICAgICAgIG1haW4gPSBtYWluX3RpdGxlLCANCiAgICAgICAgICAgIGNvbCA9IGNvbG9yLCANCiAgICAgICAgICAgIHlsaW0gPSB5bGltKQ0KICB9IGVsc2Ugew0KICAgIA0KICAgIGJveHBsb3QoZGF0YVtbdmFyaWFibGVdXSwgDQogICAgICAgICAgICBtYWluID0gbWFpbl90aXRsZSwgDQogICAgICAgICAgICBjb2wgPSBjb2xvciwgDQogICAgICAgICAgICB5bGltID0geWxpbSkNCiAgfQ0KfQ0Kc3VtbWFyeShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkTW9udGhseUluY29tZSkNCg0KYm94cGxvdF9Nb250aGx5SW5jb21lKA0KICBkYXRhID0gZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMLCANCiAgdmFyaWFibGUgPSAiTW9udGhseUluY29tZSIsIA0KICBtYWluX3RpdGxlID0gIkRpYWdyYW1hIGRlIGNhamEgTW9udGhseUluY29tZSIsIA0KICBjb2xvciA9ICJvcmFuZ2UiLCANCiAgeWxpbSA9IGMoMTAwMCwyMDAwMCkgKQ0KDQpgYGANCg0KIyMjIyMgUmVzdW1lbiBkZSBUb3RhbCBkZSBhw7FvcyB0cmFiYWphZG9zDQpgYGB7ciBSZXN1bWVuX1NlcnVtQ30NCg0KYm94cGxvdF9Ub3RhbFdvcmtpbmdZZWFycyA8LSBmdW5jdGlvbihkYXRhLCB2YXJpYWJsZSwgbWFpbl90aXRsZSA9ICJEaWFncmFtYSBkZSBjYWphIFRvdGFsV29ya2luZ1llYXJzIiwgY29sb3IgPSAiYmx1ZSIsIHlsaW0gPSBOVUxMKSB7DQogIGlmIChpcy52ZWN0b3IoZGF0YSkpIHsgDQogIA0KICAgIGJveHBsb3QoZGF0YSwgDQogICAgICAgICAgICBtYWluID0gbWFpbl90aXRsZSwgDQogICAgICAgICAgICBjb2wgPSBjb2xvciwgDQogICAgICAgICAgICB5bGltID0geWxpbSkNCiAgfSBlbHNlIHsNCiAgICANCiAgICBib3hwbG90KGRhdGFbW3ZhcmlhYmxlXV0sIA0KICAgICAgICAgICAgbWFpbiA9IG1haW5fdGl0bGUsIA0KICAgICAgICAgICAgY29sID0gY29sb3IsIA0KICAgICAgICAgICAgeWxpbSA9IHlsaW0pDQogIH0NCn0NCnN1bW1hcnkoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFRvdGFsV29ya2luZ1llYXJzKQ0KDQpib3hwbG90X1RvdGFsV29ya2luZ1llYXJzKA0KICBkYXRhID0gZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMLCANCiAgdmFyaWFibGUgPSAiVG90YWxXb3JraW5nWWVhcnMiLCANCiAgbWFpbl90aXRsZSA9ICJEaWFncmFtYSBkZSBjYWphIFRvdGFsV29ya2luZ1llYXJzIiwgDQogIGNvbG9yID0gImJsdWUiLCANCiAgeWxpbSA9IGMoMCwgNDIpICkNCg0KYGBgDQoNCiMjIyMjIERpYWdyYW1hIGRlIERpc3BlcnNpw7NuOiBNb250aGx5SW5jb21lIHkgVG90YWxXb3JraW5nWWVhcnNsDQpgYGB7ciBEaWFncmFtYV9kZV9EaXNwZXJzacOzbl9mY3NjLGZpZy5hbGlnbj0nY2VudGVyJ30NCnBsb3QoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFRvdGFsV29ya2luZ1llYXJzLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkTW9udGhseUluY29tZSwgbWFpbiA9ICJEaWFncmFtYSBkZSBEaXNwZXJzacOzbiIpDQpgYGANCg0KIyMjIyMgRGlhZ3JhbWFzIFRvdGFsZXMgZGUgRGlzcGVyc2nDs24NCmBgYHtyIERpYWdyYW1hc19Ub3RhbGVzX0R9DQpwYWlycyh+TW9udGhseUluY29tZSArIFRvdGFsV29ya2luZ1llYXJzICsgRGlzdGFuY2VGcm9tSG9tZSArIFllYXJzQXRDb21wYW55ICsgQWdlLCBkYXRhID0gZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMKQ0KYGBgDQoNCiMjIyBGb3JtdWxhY2nDs24gZGVsIG1vZGVsbyBkZSBSTFMgey50YWJzZXQgLnRhYnNldC1waWxsc30NCiMjIyMjIENvZWZpY2llbnRlcyBkZWwgTW9kZWxvIFJMUw0KYGBge3IgQ29lZmljaWVudGVzX01vZGVsb19STFMsIGZpZy5hbGlnbj0nY2VudGVyJ30NCm1vZGVsb19STF9TaW1wbGUgPSBsbShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkTW9udGhseUluY29tZX5kZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkVG90YWxXb3JraW5nWWVhcnMpDQpjb2VmKG1vZGVsb19STF9TaW1wbGUpDQpgYGANCg0KIyMjIyMgUmVzdW1lbiBFc3RhZMOtc3RpY28gZGVsIE1vZGVsbyBSTFMNCmBgYHtyIFJlc3VtZW4gRXN0YWTDrXN0aWNvX2RlbF9Nb2RlbG9fUkxTLGZpZy5hbGlnbj0nY2VudGVyJ30NCnN1bW1hcnkobW9kZWxvX1JMX1NpbXBsZSkNCmBgYA0KDQojIyMjIyBUYWJsYSBBTk9WQSBwYXJhIGVsIE1vZGVsbyBSTFMNCmBgYHtyIFRhYmxhX0FOT1ZBX3BhcmFfZWxfTW9kZWxvX1JMUyxmaWcuYWxpZ249J2NlbnRlcid9DQphbm92YShtb2RlbG9fUkxfU2ltcGxlKQ0KDQpgYGANCiMjIw0KIyMjIyMgSW50ZXJ2YWxvIGRlIENvbmZpYW56YSBwYXJhIEIxIA0KYGBge3IgSW50ZXJ2YWxvX2RlX0NvbmZpYW56YV9wYXJhX0IxLGZpZy5hbGlnbj0nY2VudGVyJ30NCmNvbmZpbnQobW9kZWxvX1JMX1NpbXBsZSwgbGV2ZWwgPSAwLjk1KQ0KYGBgDQoNCiMjIyMjIFByZWRpY2Npb25lcyB5IHN1cyBJbnRlcnZhbG9zIGRlIFByZWRpY2Npw7NuDQpgYGB7ciBQcmVkaWNjaW9uZXNfeV9zdXNfSW50ZXJ2YWxvc19kZV9QcmVkaWNjacOzbiwgZmlnLmFsaWduPSdjZW50ZXInfQ0KcHJlZGljdChtb2RlbG9fUkxfU2ltcGxlLCBkYXRhLmZyYW1lKHNlcSgxLDE0NzApKSwgaW50ZXJ2YWw9J3ByZWRpY3Rpb24nLCBsZXZlbCA9IDAuOTUpDQoNCmBgYA0KDQojIyMjIyBQcmVkaWNjaW9uZXMgeSBzdXMgSW50ZXJ2YWxvcyBkZSBDb25maWFuemENCmBgYHtyIFByZWRpY2Npb25lc195X3N1c19JbnRlcnZhbG9zX2RlX0NvbmZpYW56YSwgZmlnLmFsaWduPSdjZW50ZXInfQ0KcHJlZGljdChtb2RlbG9fUkxfU2ltcGxlLCBkYXRhLmZyYW1lKHNlcSgxLDE0NzApKSwgaW50ZXJ2YWw9J2NvbmZpZGVuY2UnLCBsZXZlbCA9IDAuOTUpDQoNCmBgYA0KDQojIyMgNS4zLiBSZWdyZXNpw7NuIExpbmVhbCBNw7psdGlwbGUNCiMjIyMjIFJlc3VtZW4gVmFyaWFibGVzIEN1YW50aXRhdGl2YXMNCmBgYHtyIFJlc3VtZW5fVmFyaWFibGVzX0N1YW50aXRhdGl2YXMsZmlnLmFsaWduPSdjZW50ZXInfQ0Kc3VtbWFyeShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkQWdlKQ0Kc3VtbWFyeShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkTW9udGhseUluY29tZSkNCnN1bW1hcnkoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJERpc3RhbmNlRnJvbUhvbWUpDQpzdW1tYXJ5KGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRUb3RhbFdvcmtpbmdZZWFycykNCnN1bW1hcnkoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFllYXJzQXRDb21wYW55KQ0Kc3VtbWFyeShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkWWVhcnNTaW5jZUxhc3RQcm9tb3Rpb24pDQpgYGANCg0KIyMjIyMgUmVzdW1lbiBWYXJpYWJsZXMgQ3VhbGl0YXRpdmFzDQpgYGB7ciBSZXN1bWVuX1ZhcmlhYmxlc19DdWFsaXRhdGl2YXMsZmlnLmFsaWduPSdjZW50ZXInfQ0KDQp0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkV29ya0xpZmVCYWxhbmNlKQ0KcHJvcC50YWJsZSh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkV29ya0xpZmVCYWxhbmNldCkpDQpiYXJwbG90KHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRXb3JrTGlmZUJhbGFuY2UpKQ0KDQp0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkQnVzaW5lc3NUcmF2ZWwpDQpwcm9wLnRhYmxlKHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRCdXNpbmVzc1RyYXZlbCkpDQpiYXJwbG90KHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRCdXNpbmVzc1RyYXZlbCkpDQoNCnRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRFZHVjYXRpb25GaWVsZCkNCnByb3AudGFibGUodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEVkdWNhdGlvbkZpZWxkKSkNCmJhcnBsb3QodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEVkdWNhdGlvbkZpZWxkKSkNCg0KdGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEpvYlJvbGUpDQpwcm9wLnRhYmxlKHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRKb2JSb2xlKSkNCmJhcnBsb3QodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEpvYlJvbGUpKQ0KDQp0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkTWFyaXRhbFN0YXR1cykNCnByb3AudGFibGUodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJE1hcml0YWxTdGF0dXMpKQ0KYmFycGxvdCh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkTWFyaXRhbFN0YXR1cykpDQoNCnRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRPdmVyVGltZSkNCnByb3AudGFibGUodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJE92ZXJUaW1lKSkNCmJhcnBsb3QodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJE92ZXJUaW1lKSkNCg0KdGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEdlbmRlcikNCnByb3AudGFibGUodGFibGUoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEdlbmRlcikpDQpiYXJwbG90KHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRHZW5kZXIpKQ0KDQp0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkSm9iTGV2ZWwpDQpwcm9wLnRhYmxlKHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRKb2JMZXZlbCkpDQpiYXJwbG90KHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRKb2JMZXZlbCkpDQpgYGANCg0KIyMjIyMgRGlhZ3JhbWFzIGRlIERpc3BlcnNpw7NuIFZhcmlhYmxlcyBDdWFudGl0YXRpdmFzDQpgYGB7ciBEaWFncmFtYXNfVG90YWxlc19kZV9EaXNwZXJzaW9ufQ0KcGFpcnMofk1vbnRobHlJbmNvbWUgKyBUb3RhbFdvcmtpbmdZZWFycyArIERpc3RhbmNlRnJvbUhvbWUgKyBZZWFyc0F0Q29tcGFueSArIEFnZSwgZGF0YSA9IGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCkNCmBgYA0KDQoNCiMjIyMgNS4zLjEgRm9ybXVsYWNpw7NuIGRlbCBtb2RlbG8gZGUgUkxNIGVudHJlIGxhcyB2YXJpYWJsZXMgZGUgZXN0dWRpby4gey50YWJzZXQgLnRhYnNldC1waWxsc30NCiMjIyMjIFJlc3VtZW4geSBBTk9WQSBkZWwgTW9kZWxvIFJMTSBUb3RhbA0KYGBge3IsIHJlc3VtZW5feV9BTk9WQV9STE1fVG90YWwsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0Kc3VtbWFyeShsbShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkTW9udGhseUluY29tZX5kZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkQWdlK2Rlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCREaXN0YW5jZUZyb21Ib21lK2Rlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRUb3RhbFdvcmtpbmdZZWFycytkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkWWVhcnNBdENvbXBhbnkrYXMuZmFjdG9yKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRHZW5kZXIpK2FzLmZhY3RvcihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkRGVwYXJ0bWVudCkrYXMuZmFjdG9yKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRKb2JSb2xlKSthcy5mYWN0b3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJE1hcml0YWxTdGF0dXMpK2FzLmZhY3RvcihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkT3ZlclRpbWUpK2FzLmZhY3RvcihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkQXR0cml0aW9uKSkpDQoNCmFub3ZhKGxtKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRNb250aGx5SW5jb21lfmRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRBZ2UrZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJERpc3RhbmNlRnJvbUhvbWUrZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFRvdGFsV29ya2luZ1llYXJzK2Rlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRZZWFyc0F0Q29tcGFueSthcy5mYWN0b3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEdlbmRlcikrYXMuZmFjdG9yKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCREZXBhcnRtZW50KSthcy5mYWN0b3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEpvYlJvbGUpK2FzLmZhY3RvcihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkTWFyaXRhbFN0YXR1cykrYXMuZmFjdG9yKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRPdmVyVGltZSkrYXMuZmFjdG9yKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRBdHRyaXRpb24pKSkNCmBgYA0KIyMjIyMgQ29lZmljaWVudGVzIGRlbCBNb2RlbG8gUkxNIFRvdGFsDQpgYGB7ciwgY29lZmljaWVudGVzX1JMTV9Ub3RhbCwgZmlnLmFsaWduID0gJ2NlbnRlcid9DQpjb2VmZmljaWVudHMobG0oZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJE1vbnRobHlJbmNvbWV+ZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEFnZStkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkRGlzdGFuY2VGcm9tSG9tZStkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkVG90YWxXb3JraW5nWWVhcnMrZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFllYXJzQXRDb21wYW55K2FzLmZhY3RvcihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkR2VuZGVyKSthcy5mYWN0b3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJERlcGFydG1lbnQpK2FzLmZhY3RvcihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkSm9iUm9sZSkrYXMuZmFjdG9yKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRNYXJpdGFsU3RhdHVzKSthcy5mYWN0b3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJE92ZXJUaW1lKSthcy5mYWN0b3IoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJEF0dHJpdGlvbikpKQ0KYGBgDQoNCg0KIyMjIyMgQ29lZmljaWVudGVzIGRlbCBNb2RlbG8gUkxNIFJlZHVjaWRvDQpgYGB7ciBjb2VmaWNpZW50ZXNfUkxNX1JlZHVjaWRvLCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCmNvZWZmaWNpZW50cyhsbShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkTW9udGhseUluY29tZX5kZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkQWdlK2Rlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRUb3RhbFdvcmtpbmdZZWFycythcy5mYWN0b3IgKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRHZW5kZXIpK2FzLmZhY3RvcihkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkRGVwYXJ0bWVudCkrYXMuZmFjdG9yKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRBdHRyaXRpb24pKSkNCmBgYA0KIyMjIDUuNC4gUmVncmVzacOzbiBMb2fDrXN0aWNhIFNpbXBsZQ0KIyMjIyMgUmVzdW1lbiB5IEJveHBsb3QgVG90YWwgZGUgYcOxb3MgdHJhYmFqYWRvcw0KYGBge3IgcmVzdW1lbl9jb2xlc3Rlcm9sc2VyaWNvLCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCnN1bW1hcnkoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFRvdGFsV29ya2luZ1llYXJzKQ0KYm94cGxvdChkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkVG90YWxXb3JraW5nWWVhcnMsIG1haW4gPSAiRGlhZ3JhbWEgZGUgQ2FqYSBkZSBUb3RhbCBkZSBhw7FvcyB0cmFiYWphZG9zIiwgY29sID0gYygib3JhbmdlIikpDQpgYGANCg0KIyMjIyMgSGlzdG9ncmFtYSBkZSBhw7FvcyB0cmFiYWphZG9zDQpgYGB7ciBoaXN0b2dyYW1hX0NTLCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCnN1bW1hcnkoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMJFRvdGFsV29ya2luZ1llYXJzKQ0KaGlzdChkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkVG90YWxXb3JraW5nWWVhcnMsIG1haW4gPSAiSGlzdG9ncmFtYSBkZSBUb3RhbCBkZSBhw7FvcyB0cmFiYWphZG9zIiwgY29sID0gYygiUHVycGxlIikpDQpgYGANCg0KIyMjIyMgUmVzdW1lbiB5IERpYWdyYW1hIGRlIEJhcnJhcyBkZSBUYXJnZXQNCmBgYHtyIHJlc3VtZW5fdGFyZ2V0LCBmaWcuYWxpZ24gPSAnY2VudGVyJ30NCnRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRBdHRyaXRpb24pDQpwcm9wLnRhYmxlKHRhYmxlKGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTCRBdHRyaXRpb24pKQ0KYmFycGxvdCh0YWJsZShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVEwkQXR0cml0aW9uKSwgbWFpbiA9ICJSZW51bmNpYSIsIGNvbCA9IGMoInZpb2xldCIpKQ0KYGBgDQoNCiMjIyMjIFJlc3VtZW4geSBEaWFncmFtYSBkZSBDYWphcyBDb25qdW50bw0KYGBge3IgYm94cGxvdF9Db25qdW50b19DaGFuY2Utb2YtQWRtaXRfUmVzZWFyY2gsIGZpZy5hbGlnbiA9ICdjZW50ZXInfQ0KdGFwcGx5KGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF8xJE1vbnRobHlJbmNvbWUsIGRlc2VyY2lvbl9lbXBsZWFkb3NfSUJNX0VUTF8xJEF0dHJpdGlvbiwgbWVhbikNCnRhcHBseShkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfMSRNb250aGx5SW5jb21lLCBkZXNlcmNpb25fZW1wbGVhZG9zX0lCTV9FVExfMSRBdHRyaXRpb24sIG1lZGlhbikNCmJveHBsb3QoZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMXzEkTW9udGhseUluY29tZX4gZGVzZXJjaW9uX2VtcGxlYWRvc19JQk1fRVRMXzEkQXR0cml0aW9uLCBtYWluID0gIkJveHBsb3QgQ29uanVudG86IEluZ3Jlc28gbWVuc3VhbC1Ub3RhbFdvcmtpbmdZZWFycyIgLCBjb2wgPSBjKCJwdXJwbGUiLCAiYmx1ZSIpKQ0KYGBgDQoNCiMjIyMgNS40LjEuIEZvcm11bGFjacOzbiBkZWwgbW9kZWxvIGRlIFJMb2dTIGVudHJlIGxhcyB2YXJpYWJsZXMgZGUgZXN0dWRpbyB7LnRhYnNldCAudGFic2V0LXBpbGxzfQ0KDQoNCiMjIyMjIEdyw6FmaWNhIGRlbCBNb2RlbG8gUkxvZ1MNCg0KIyMjIDUuNS4gQWp1c3RlIGRlIFZhcmlhbnphDQoNCiMjICoqNi4gQ29uY2x1c2lvbmVzKioNCg0KIyMgKio3LiBCaWJsaW9ncmFmw61hKioNCg0KDQoNCg0KDQo=