Como parte del aprendizaje en el curso de Seminario de Construcciones, se realizó una encuesta a los estudiantes, incluyendo a la profesora, que están asistiendo a la clase.Cada uno pasó por el puesto de los demás compañeros, realizando una serie de preguntas, que fueron consignadas inicialmente a mano y posteriormente en una matriz en excel, donde se asignaron números a las variables cualitativas y además se guardó como un archivo con extensión .csv, de tal manera que cumpliera con las condiciones de R.
A continuación se carga la matriz al programa, para iniciar el análisis de las variables que contempla.
M<-read.csv("Matriz.csv", sep = ";")
Al leer la matriz y cargarla en el programa, inmediatamente es visible que se trata una matriz de 13 variables, con una muestra de 25 encuestados.
Las variables que se consideraron en la encuesta son las siguientes:
colnames(M)
[1] "X" "NOMBRE" "EDAD" "PESO"
[5] "ESTATURA" "ESTRATO" "NIVEL.ACADÉMICO" "X.HNOS"
[9] "SEXO" "X..HIJOS" "EST..CIVIL" "MATRICULADO.S.N"
[13] "REGIÓN"
En total son 13 variables. Para mayor claridad, la primera indica el orden en que fueron entrevistados los estudiantes.
Creamos los vectores de cada variable:
ORDEN.ENC<-M$X
NOMBRE<-M$NOMBRE
EDAD<-M$EDAD
PESO<-M$PESO
ESTATURA<-M$ESTATURA
ESTRATO<-M$ESTRATO
NIVEL.ACAD<-M$NIVEL.ACADÉMICO
No.HNOS<-M$X.HNOS
SEXO<-M$SEXO
No.HIJOS<-M$X..HIJOS
EST.CIVIL<-M$EST..CIVIL
MATRICULADO<-M$MATRICULADO.S.N
REGIÓN<-M$REGIÓN
Una vez cargados los vectores de cada variable, definimos las variables cualitativas:
NOMBRE<-as.factor(NOMBRE)
NIVEL.ACAD<-as.factor(NIVEL.ACAD)
SEXO<-as.factor(SEXO)
EST.CIVIL<-as.factor(EST.CIVIL)
MATRICULADO<-as.factor(MATRICULADO)
REGIÓN<-as.factor(REGIÓN)
De acuerdo con el siguiente gráfico, se puede informar sobre la cantidad de hombres y mujeres que están asistiendo a la clase, donde 1 es hombres y 2 es mujeres:
plot(SEXO)

Se obtiene entonces que hay 11 hombres y 14 mujeres, que en porcentaje sería:
S<-table(SEXO)
prop.table(S, margin = NULL)*100
SEXO
1 2
44 56
Es decir, que los estudiantes están conformados en un 44% por hombres y un 56% por mujeres. Estos datos y el hecho de que la mayoría de los estudiantes de la clase sean mujeres, confirman que cada vez, con el pasar de los años, la ingeniería civil se ha expandido progresivamente entre el sexo femenino, lo que puede ser consecuencia de la evolución de la sociedad al respecto, pues cada vez mas, la mujer tiende a tener iguales oportunidades laborales que los hombres.
Por otro lado, en cuanto al estado civil de los estudiantes, podemos decir:
X<-table(EST.CIVIL)
prop.table(X, margin = NULL)*100
EST.CIVIL
1 2
84 16
El 84% de los estudiantes son solteros y sólo un 16% son casados.
A las diferentes regiones de donde son originarios, se les asignó un número de la siguiente manera: VALLE…..1 CAUCA…..2 QUINDÍO…3 NARIÑO….4 CUNDINAM..5 De acuerdo con esta clasificación, sacamos entonces los porcentajes:
R<-table(REGIÓN)
prop.table(R, margin = NULL)*100
REGIÓN
1 2 3 4 5
76 8 4 8 4
Se evidencia entonces, que el mayor porcentaje de los estudiantes, 76% provienen del Valle y una minoría del Quindio y Cundinamarca.
En cuanto al nivel de estudios, se clasificaron así: EST PREGRADO 1 EST MAESTRÍA 2 EST DOCTOR 3
NE<-table(NIVEL.ACAD)
prop.table(NE, margin = NULL)*100
NIVEL.ACAD
1 2 3
52 40 8
De acuerdo con lo anterior, se observa que el 52% de los encuestados son estudiantes de pregrado, seguido por un 40% de estudiantes de maestría y un 8% de estudiantes de doctorado.
Con la encuesta, podemos evaluar también la tendencia a tener hijos, aunque hay varios factores que influyen en este aspecto, principalmente el hecho de que la mayoría de los estudiantes están en un rango de edad menor a los 30 años, es decir, que están muy jóvenes aún. Dentro de los encuestados, observamos lo siguiente:
H<-table(No.HIJOS)
prop.table(H, margin = NULL)*100
No.HIJOS
0 1 2 3
76 12 8 4
El 76% de los estudiantes no tiene hijos, esto quiere decir que la tendencia a tener hijos es muy baja y mucho mas baja el tener mas de uno.
De los 25 estudiantes, no todos están matriculados, por lo tanto, los que se encuentran en esta situación, no podrán aprobar oficialmente la materia. A los matriculados se les asignó el No.1 y a los No matriculados el No.2:
MT<-table(MATRICULADO)
prop.table(MT, margin = NULL)*100
MATRICULADO
1 2
48 52
Teniendo en cuenta estos datos, se puede afirmar entonces que sólo el 48% de los estudiantes tienen la probabilidad de aprobar oficialmente la materia, siempre y cuando, cumplan con los requerimientos de la profesora.
ANÁLISIS DE LA VARIABLE EDAD
La variable “EDAD” es una variable numérica.
Como primer paso para el análisis de esta variable, realizamos un histograma:
hist(EDAD)

Teniendo en cuenta que el histograma me está mostrando un rango sin valores, organizo la información en menos rangos, para evitar esta situación.
hist(EDAD,nclass = 3, col = "orange")

Dejando solamente 3 rangos de edades, puedo deducir que la mayor parte de los estudiantes que asisten a la clase de Seminario de Construcciones tiene entre 20 y 30 años.
En el siguiente gráfico, se observan puntualmente las edades de todos los estudiantes, en el orden en que fueron encuestados.
plot(EDAD)

Se realiza un resumen de la variable EDAD:
summary(EDAD)
Min. 1st Qu. Median Mean 3rd Qu. Max.
21.00 23.00 25.00 28.56 30.00 49.00
De lo anterior se puede deducir que el estudiante mas joven tiene 21 años y el de mas edad tiene 49 años.El promedio de edad es de 28,56 años. De igual manera, se puede identificar que el valor de la mediana es de 25 años, lo cual quiere decir que el 50% de los estudiantes tiene menos de 25 años y el otro 50%tiene mas de 25 años.
La moda, es decir, la edad que mas se repite entre los estudiantes encuestados, es:
as.numeric(names(table(EDAD))[table(EDAD)==max(table(EDAD))])
[1] 23
La varianza de los datos de la edad de los estudiantes es:
var(M$EDAD)
[1] 74.92333
Se considera que es una varianza alta, lo cual nos permite inferir que el grupo de datos es muy disperso y que la edad de los estudiantes no es homogénea; sin embargo, de la gráfica anterior, se puede observar que el valor de la varianza se vé afectado por 4 valores que están bastante lejanos de la media (28.56 años), estos son 40, 47,48 y 49.
A continuación se calcula la desviación estandar:
sd(M$EDAD)
[1] 8.655827
Con este dato, se puede deducir que en general, la edad de los estudiantes se desvía de 28.56 años (media) en 8,65 años, es decir, está entre 20 y 37 años.
ANÁLISIS DE LA VARIABLE PESO
Seguimos el mismo procedimietno utilizado para el análisis de la variable “EDAD”.
La variable “PESO” es una variable numérica.
Realizamos un histograma:
hist(PESO, col = "purple")

En esta gráfica se puede apreciar que la mayor parte de los estudiantes tiene un peso entre 50 y 60 kg o entre 70 y 80kg. En la siguiente gráfica se observan todos los datos, así como que hay 2 valores muy alejados del rango general.
plot(PESO, main = "Datos de PESO")

Se realiza un resumen de la variable, oara identificar la media y la mediana:
summary(PESO)
Min. 1st Qu. Median Mean 3rd Qu. Max.
50.00 57.00 70.00 67.64 75.00 98.00
El promedio del peso entre los estudiantes es de 67,64kg y la mediana es de 70kg, osea que el 50% de los estudiantes pesa menos de 70kg y el otro 50% pesa mas. También se puede identificar que el estudiante mas liviano pesa 50kg y que el mas pesado pesa 98kg. Por otro lado, al calcula la moda:
as.numeric(names(table(PESO))[table(PESO)==max(table(PESO))])
[1] 57
Se puede concluir que el peso que mas se repite entre los estdiantes es de 57kg.
La varianza de los datos del peso de los estudiantes es:
var(M$PESO)
[1] 156.1567
Este dato tiene un valor muy alto, por lo que se puede afirmar que no hay datos homogéneos, por el contrario, son datos muy dispersos, tal como se observa también gráficamente (gráfico Datos de PESO).
Seguidamente, calculamos la desviación estandar:
sd(M$PESO)
[1] 12.49627
Que nos muestra que los demás datos están alejados 12,49 de la media.
ANÁLISIS DE LA VARIABLE REGIÓN
La variable “REGIÓN” es una variable cualitativa, por lo tanto no me permite hacer histograma sino diagrama de barras:
plot(REGIÓN, main = "REGIÓN DE ORÍGEN")

En donde:
VALLE…..1 CAUCA…..2 QUINDÍO…3 NARIÑO….4 CUNDINAM..5 Se puede afirmar entonces, que el mayor porcentaje de los estudiantes es de origen valluno.
prop.table(R, margin = NULL)*100
REGIÓN
1 2 3 4 5
76 8 4 8 4
Tal como se afirmó en la primera parte de este informe, el 76% de los estudiantes son del Valle, lo cual coincide con el diagrama de barras mostrado.
En resumen:
summary(REGIÓN)
1 2 3 4 5
19 2 1 2 1
Confirmando lo expuesto anteriormente, se tiene que 19 estudiantes son del Valle, 2 son del Cauca, 1 del Quindío, 2 de Nariño y 1 de Cundinamarca.
Al ser una variable cualitativa no e sposible calcular la Media, Mediana o Moda.
var(M$REGIÓN)
[1] 1.34
La varianza es muy baja, es decir que contamos con datos homogéneos, la mayoría (76%) pertenece a la región del Valle.
sd(M$REGIÓN)
[1] 1.157584
Lo mismo confirma la desviación estandar, siendo tan bajo el valor, se deduce que la mayor parte de los estudiantes pertenecen a una sola región.
LS0tDQp0aXRsZTogIkFOwUxJU0lTIEVOQ1VFU1RBIEVTVFVESUFOVEVTIFNFTUlOQVJJTyBERSBDT05TVFJVQ0NJT05FUyIgDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KQ29tbyBwYXJ0ZSBkZWwgYXByZW5kaXphamUgZW4gZWwgY3Vyc28gZGUgU2VtaW5hcmlvIGRlIENvbnN0cnVjY2lvbmVzLCBzZSByZWFsaXrzIHVuYSBlbmN1ZXN0YSBhIGxvcyBlc3R1ZGlhbnRlcywgaW5jbHV5ZW5kbyBhIGxhIHByb2Zlc29yYSwgcXVlIGVzdOFuIGFzaXN0aWVuZG8gYSBsYSBjbGFzZS5DYWRhIHVubyBwYXPzIHBvciBlbCBwdWVzdG8gZGUgbG9zIGRlbeFzIGNvbXBh8WVyb3MsIHJlYWxpemFuZG8gdW5hIHNlcmllIGRlIHByZWd1bnRhcywgcXVlIGZ1ZXJvbiBjb25zaWduYWRhcyBpbmljaWFsbWVudGUgYSBtYW5vIHkgcG9zdGVyaW9ybWVudGUgZW4gdW5hIG1hdHJpeiBlbiBleGNlbCwgZG9uZGUgc2UgYXNpZ25hcm9uIG76bWVyb3MgYSBsYXMgdmFyaWFibGVzIGN1YWxpdGF0aXZhcyB5IGFkZW3hcyBzZSBndWFyZPMgY29tbyB1biBhcmNoaXZvIGNvbiBleHRlbnNp824gLmNzdiwgZGUgdGFsIG1hbmVyYSBxdWUgY3VtcGxpZXJhIGNvbiBsYXMgY29uZGljaW9uZXMgZGUgUi4NCg0KQSBjb250aW51YWNp824gc2UgY2FyZ2EgbGEgbWF0cml6IGFsIHByb2dyYW1hLCBwYXJhIGluaWNpYXIgZWwgYW7hbGlzaXMgZGUgbGFzIHZhcmlhYmxlcyBxdWUgY29udGVtcGxhLg0KYGBge3J9DQpNPC1yZWFkLmNzdigiTWF0cml6LmNzdiIsIHNlcCA9ICI7IikNCmBgYA0KQWwgbGVlciBsYSBtYXRyaXogeSBjYXJnYXJsYSBlbiBlbCBwcm9ncmFtYSwgaW5tZWRpYXRhbWVudGUgZXMgdmlzaWJsZSBxdWUgc2UgdHJhdGEgdW5hIG1hdHJpeiBkZSAxMyB2YXJpYWJsZXMsIGNvbiB1bmEgbXVlc3RyYSBkZSAyNSBlbmN1ZXN0YWRvcy4NCg0KTGFzIHZhcmlhYmxlcyBxdWUgc2UgY29uc2lkZXJhcm9uIGVuIGxhIGVuY3Vlc3RhIHNvbiBsYXMgc2lndWllbnRlczoNCmBgYHtyfQ0KY29sbmFtZXMoTSkNCmBgYA0KRW4gdG90YWwgc29uIDEzIHZhcmlhYmxlcy4gUGFyYSBtYXlvciBjbGFyaWRhZCwgbGEgcHJpbWVyYSBpbmRpY2EgZWwgb3JkZW4gZW4gcXVlIGZ1ZXJvbiBlbnRyZXZpc3RhZG9zIGxvcyBlc3R1ZGlhbnRlcy4NCg0KQ3JlYW1vcyBsb3MgdmVjdG9yZXMgZGUgY2FkYSB2YXJpYWJsZToNCg0KYGBge3J9DQpPUkRFTi5FTkM8LU0kWA0KTk9NQlJFPC1NJE5PTUJSRQ0KRURBRDwtTSRFREFEDQpQRVNPPC1NJFBFU08NCkVTVEFUVVJBPC1NJEVTVEFUVVJBDQpFU1RSQVRPPC1NJEVTVFJBVE8NCk5JVkVMLkFDQUQ8LU0kTklWRUwuQUNBRMlNSUNPDQpOby5ITk9TPC1NJFguSE5PUw0KU0VYTzwtTSRTRVhPDQpOby5ISUpPUzwtTSRYLi5ISUpPUw0KRVNULkNJVklMPC1NJEVTVC4uQ0lWSUwNCk1BVFJJQ1VMQURPPC1NJE1BVFJJQ1VMQURPLlMuTg0KUkVHSdNOPC1NJFJFR0nTTg0KYGBgDQpVbmEgdmV6IGNhcmdhZG9zIGxvcyB2ZWN0b3JlcyBkZSBjYWRhIHZhcmlhYmxlLCBkZWZpbmltb3MgbGFzIHZhcmlhYmxlcyBjdWFsaXRhdGl2YXM6DQpgYGB7cn0NCk5PTUJSRTwtYXMuZmFjdG9yKE5PTUJSRSkNCk5JVkVMLkFDQUQ8LWFzLmZhY3RvcihOSVZFTC5BQ0FEKQ0KU0VYTzwtYXMuZmFjdG9yKFNFWE8pDQpFU1QuQ0lWSUw8LWFzLmZhY3RvcihFU1QuQ0lWSUwpDQpNQVRSSUNVTEFETzwtYXMuZmFjdG9yKE1BVFJJQ1VMQURPKQ0KUkVHSdNOPC1hcy5mYWN0b3IoUkVHSdNOKQ0KYGBgDQpEZSBhY3VlcmRvIGNvbiBlbCBzaWd1aWVudGUgZ3LhZmljbywgc2UgcHVlZGUgaW5mb3JtYXIgc29icmUgbGEgY2FudGlkYWQgZGUgaG9tYnJlcyB5IG11amVyZXMgcXVlIGVzdOFuIGFzaXN0aWVuZG8gYSBsYSBjbGFzZSwgZG9uZGUgMSBlcyBob21icmVzIHkgMiBlcyBtdWplcmVzOg0KYGBge3J9DQpwbG90KFNFWE8pDQpgYGANClNlIG9idGllbmUgZW50b25jZXMgcXVlIGhheSAxMSBob21icmVzIHkgMTQgbXVqZXJlcywgcXVlIGVuIHBvcmNlbnRhamUgc2Vy7WE6DQoNCmBgYHtyfQ0KUzwtdGFibGUoU0VYTykNCnByb3AudGFibGUoUywgbWFyZ2luID0gTlVMTCkqMTAwDQpgYGANCkVzIGRlY2lyLCBxdWUgbG9zIGVzdHVkaWFudGVzIGVzdOFuIGNvbmZvcm1hZG9zIGVuIHVuIDQ0JSBwb3IgaG9tYnJlcyB5IHVuIDU2JSBwb3IgbXVqZXJlcy4gDQpFc3RvcyBkYXRvcyB5IGVsIGhlY2hvIGRlIHF1ZSBsYSBtYXlvcu1hIGRlIGxvcyBlc3R1ZGlhbnRlcyBkZSBsYSBjbGFzZSBzZWFuIG11amVyZXMsIGNvbmZpcm1hbiBxdWUgY2FkYSB2ZXosIGNvbiBlbCBwYXNhciBkZSBsb3MgYfFvcywgbGEgaW5nZW5pZXLtYSBjaXZpbCBzZSBoYSBleHBhbmRpZG8gcHJvZ3Jlc2l2YW1lbnRlIGVudHJlIGVsIHNleG8gZmVtZW5pbm8sIGxvIHF1ZSBwdWVkZSBzZXIgY29uc2VjdWVuY2lhIGRlIGxhIGV2b2x1Y2nzbiBkZSBsYSBzb2NpZWRhZCBhbCByZXNwZWN0bywgcHVlcyBjYWRhIHZleiBtYXMsIGxhIG11amVyIHRpZW5kZSBhIHRlbmVyIGlndWFsZXMgb3BvcnR1bmlkYWRlcyBsYWJvcmFsZXMgcXVlIGxvcyBob21icmVzLiANCg0KUG9yIG90cm8gbGFkbywgZW4gY3VhbnRvIGFsIGVzdGFkbyBjaXZpbCBkZSBsb3MgZXN0dWRpYW50ZXMsIHBvZGVtb3MgZGVjaXI6DQpgYGB7cn0NClg8LXRhYmxlKEVTVC5DSVZJTCkNCnByb3AudGFibGUoWCwgbWFyZ2luID0gTlVMTCkqMTAwDQpgYGANCkVsIDg0JSBkZSBsb3MgZXN0dWRpYW50ZXMgc29uIHNvbHRlcm9zIHkgc/NsbyB1biAxNiUgc29uIGNhc2Fkb3MuDQogDQpBIGxhcyBkaWZlcmVudGVzIHJlZ2lvbmVzIGRlIGRvbmRlIHNvbiBvcmlnaW5hcmlvcywgc2UgbGVzIGFzaWdu8yB1biBu+m1lcm8gZGUgbGEgc2lndWllbnRlIG1hbmVyYTogDQpWQUxMRS4uLi4uMQ0KQ0FVQ0EuLi4uLjINClFVSU5EzU8uLi4zDQpOQVJJ0U8uLi4uNA0KQ1VORElOQU0uLjUNCkRlIGFjdWVyZG8gY29uIGVzdGEgY2xhc2lmaWNhY2nzbiwgc2FjYW1vcyBlbnRvbmNlcyBsb3MgcG9yY2VudGFqZXM6DQpgYGB7cn0NClI8LXRhYmxlKFJFR0nTTikNCnByb3AudGFibGUoUiwgbWFyZ2luID0gTlVMTCkqMTAwDQpgYGANClNlIGV2aWRlbmNpYSBlbnRvbmNlcywgcXVlIGVsIG1heW9yIHBvcmNlbnRhamUgZGUgbG9zIGVzdHVkaWFudGVzLCA3NiUgcHJvdmllbmVuIGRlbCBWYWxsZSB5IHVuYSBtaW5vcu1hIGRlbCBRdWluZGlvIHkgQ3VuZGluYW1hcmNhLg0KDQpFbiBjdWFudG8gYWwgbml2ZWwgZGUgZXN0dWRpb3MsIHNlIGNsYXNpZmljYXJvbiBhc+06DQpFU1QgUFJFR1JBRE8JMQ0KRVNUIE1BRVNUUs1BCTINCkVTVCBET0NUT1IJMw0KYGBge3J9DQpORTwtdGFibGUoTklWRUwuQUNBRCkNCnByb3AudGFibGUoTkUsIG1hcmdpbiA9IE5VTEwpKjEwMA0KYGBgDQpEZSBhY3VlcmRvIGNvbiBsbyBhbnRlcmlvciwgc2Ugb2JzZXJ2YSBxdWUgZWwgNTIlIGRlIGxvcyBlbmN1ZXN0YWRvcyBzb24gZXN0dWRpYW50ZXMgZGUgcHJlZ3JhZG8sIHNlZ3VpZG8gcG9yIHVuIDQwJSBkZSBlc3R1ZGlhbnRlcyBkZSBtYWVzdHLtYSB5IHVuIDglIGRlIGVzdHVkaWFudGVzIGRlIGRvY3RvcmFkby4NCg0KQ29uIGxhIGVuY3Vlc3RhLCBwb2RlbW9zIGV2YWx1YXIgdGFtYmnpbiBsYSB0ZW5kZW5jaWEgYSB0ZW5lciBoaWpvcywgYXVucXVlIGhheSB2YXJpb3MgZmFjdG9yZXMgcXVlIGluZmx1eWVuIGVuIGVzdGUgYXNwZWN0bywgcHJpbmNpcGFsbWVudGUgZWwgaGVjaG8gZGUgcXVlIGxhIG1heW9y7WEgZGUgbG9zIGVzdHVkaWFudGVzIGVzdOFuIGVuIHVuIHJhbmdvIGRlIGVkYWQgbWVub3IgYSBsb3MgMzAgYfFvcywgZXMgZGVjaXIsIHF1ZSBlc3ThbiBtdXkgavN2ZW5lcyBh+m4uIERlbnRybyBkZSBsb3MgZW5jdWVzdGFkb3MsIG9ic2VydmFtb3MgbG8gc2lndWllbnRlOg0KYGBge3J9DQpIPC10YWJsZShOby5ISUpPUykNCnByb3AudGFibGUoSCwgbWFyZ2luID0gTlVMTCkqMTAwDQpgYGANCkVsIDc2JSBkZSBsb3MgZXN0dWRpYW50ZXMgbm8gdGllbmUgaGlqb3MsIGVzdG8gcXVpZXJlIGRlY2lyIHF1ZSBsYSB0ZW5kZW5jaWEgYSB0ZW5lciBoaWpvcyBlcyBtdXkgYmFqYSB5IG11Y2hvIG1hcyBiYWphIGVsIHRlbmVyIG1hcyBkZSB1bm8uDQoNCkRlIGxvcyAyNSBlc3R1ZGlhbnRlcywgbm8gdG9kb3MgZXN04W4gbWF0cmljdWxhZG9zLCBwb3IgbG8gdGFudG8sIGxvcyBxdWUgc2UgZW5jdWVudHJhbiBlbiBlc3RhIHNpdHVhY2nzbiwgbm8gcG9kcuFuIGFwcm9iYXIgb2ZpY2lhbG1lbnRlIGxhIG1hdGVyaWEuIEEgbG9zIG1hdHJpY3VsYWRvcyBzZSBsZXMgYXNpZ27zIGVsIE5vLjEgeSBhIGxvcyBObyBtYXRyaWN1bGFkb3MgZWwgTm8uMjoNCmBgYHtyfQ0KTVQ8LXRhYmxlKE1BVFJJQ1VMQURPKQ0KcHJvcC50YWJsZShNVCwgbWFyZ2luID0gTlVMTCkqMTAwDQpgYGANClRlbmllbmRvIGVuIGN1ZW50YSBlc3RvcyBkYXRvcywgc2UgcHVlZGUgYWZpcm1hciBlbnRvbmNlcyBxdWUgc/NsbyBlbCA0OCUgZGUgbG9zIGVzdHVkaWFudGVzIHRpZW5lbiBsYSBwcm9iYWJpbGlkYWQgZGUgYXByb2JhciBvZmljaWFsbWVudGUgbGEgbWF0ZXJpYSwgc2llbXByZSB5IGN1YW5kbywgY3VtcGxhbiBjb24gbG9zIHJlcXVlcmltaWVudG9zIGRlIGxhIHByb2Zlc29yYS4NCiANCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFOwUxJU0lTIERFIExBIFZBUklBQkxFIEVEQUQNCg0KDQpMYSB2YXJpYWJsZSAiRURBRCIgZXMgdW5hIHZhcmlhYmxlIG51belyaWNhLg0KDQoNCkNvbW8gcHJpbWVyIHBhc28gcGFyYSBlbCBhbuFsaXNpcyBkZSBlc3RhIHZhcmlhYmxlLCByZWFsaXphbW9zIHVuIGhpc3RvZ3JhbWE6DQpgYGB7cn0NCmhpc3QoRURBRCkNCmBgYA0KVGVuaWVuZG8gZW4gY3VlbnRhIHF1ZSBlbCBoaXN0b2dyYW1hIG1lIGVzdOEgbW9zdHJhbmRvIHVuIHJhbmdvIHNpbiB2YWxvcmVzLCBvcmdhbml6byBsYSBpbmZvcm1hY2nzbiBlbiBtZW5vcyByYW5nb3MsIHBhcmEgZXZpdGFyIGVzdGEgc2l0dWFjafNuLg0KDQpgYGB7cn0NCmhpc3QoRURBRCxuY2xhc3MgPSAzLCBjb2wgPSAib3JhbmdlIikNCmBgYA0KRGVqYW5kbyBzb2xhbWVudGUgMyByYW5nb3MgZGUgZWRhZGVzLCBwdWVkbyBkZWR1Y2lyIHF1ZSBsYSBtYXlvciBwYXJ0ZSBkZSBsb3MgZXN0dWRpYW50ZXMgcXVlIGFzaXN0ZW4gYSBsYSBjbGFzZSBkZSBTZW1pbmFyaW8gZGUgQ29uc3RydWNjaW9uZXMgdGllbmUgZW50cmUgMjAgeSAzMCBh8W9zLiANCg0KRW4gZWwgc2lndWllbnRlIGdy4WZpY28sIHNlIG9ic2VydmFuIHB1bnR1YWxtZW50ZSBsYXMgZWRhZGVzIGRlIHRvZG9zIGxvcyBlc3R1ZGlhbnRlcywgZW4gZWwgb3JkZW4gZW4gcXVlIGZ1ZXJvbiBlbmN1ZXN0YWRvcy4NCmBgYHtyfQ0KcGxvdChFREFEKQ0KYGBgDQpTZSByZWFsaXphIHVuIHJlc3VtZW4gZGUgbGEgdmFyaWFibGUgRURBRDoNCmBgYHtyfQ0Kc3VtbWFyeShFREFEKQ0KYGBgDQpEZSBsbyBhbnRlcmlvciBzZSBwdWVkZSBkZWR1Y2lyIHF1ZSBlbCBlc3R1ZGlhbnRlIG1hcyBqb3ZlbiB0aWVuZSAyMSBh8W9zIHkgZWwgZGUgbWFzIGVkYWQgdGllbmUgNDkgYfFvcy5FbCBwcm9tZWRpbyBkZSBlZGFkIGVzIGRlIDI4LDU2IGHxb3MuDQpEZSBpZ3VhbCBtYW5lcmEsIHNlIHB1ZWRlIGlkZW50aWZpY2FyIHF1ZSBlbCB2YWxvciBkZSBsYSBtZWRpYW5hIGVzIGRlIDI1IGHxb3MsIGxvIGN1YWwgcXVpZXJlIGRlY2lyIHF1ZSBlbCA1MCUgZGUgbG9zIGVzdHVkaWFudGVzIHRpZW5lIG1lbm9zIGRlIDI1IGHxb3MgeSBlbCBvdHJvIDUwJXRpZW5lIG1hcyBkZSAyNSBh8W9zLg0KDQpMYSBtb2RhLCBlcyBkZWNpciwgbGEgZWRhZCBxdWUgbWFzIHNlIHJlcGl0ZSBlbnRyZSBsb3MgZXN0dWRpYW50ZXMgZW5jdWVzdGFkb3MsIGVzOg0KYGBge3J9DQphcy5udW1lcmljKG5hbWVzKHRhYmxlKEVEQUQpKVt0YWJsZShFREFEKT09bWF4KHRhYmxlKEVEQUQpKV0pDQpgYGANCkxhIHZhcmlhbnphIGRlIGxvcyBkYXRvcyBkZSBsYSBlZGFkIGRlIGxvcyBlc3R1ZGlhbnRlcyBlczoNCmBgYHtyfQ0KdmFyKE0kRURBRCkNCmBgYA0KU2UgY29uc2lkZXJhIHF1ZSBlcyB1bmEgdmFyaWFuemEgYWx0YSwgbG8gY3VhbCBub3MgcGVybWl0ZSBpbmZlcmlyIHF1ZSBlbCBncnVwbyBkZSBkYXRvcyBlcyBtdXkgZGlzcGVyc28geSBxdWUgbGEgZWRhZCBkZSBsb3MgZXN0dWRpYW50ZXMgbm8gZXMgaG9tb2fpbmVhOyBzaW4gZW1iYXJnbywgZGUgbGEgZ3LhZmljYSBhbnRlcmlvciwgc2UgcHVlZGUgb2JzZXJ2YXIgcXVlIGVsIHZhbG9yIGRlIGxhIHZhcmlhbnphIHNlIHbpIGFmZWN0YWRvIHBvciA0IHZhbG9yZXMgcXVlIGVzdOFuIGJhc3RhbnRlIGxlamFub3MgZGUgbGEgbWVkaWEgKDI4LjU2IGHxb3MpLCBlc3RvcyBzb24gNDAsIDQ3LDQ4IHkgNDkuDQoNCkEgY29udGludWFjafNuIHNlIGNhbGN1bGEgbGEgZGVzdmlhY2nzbiBlc3RhbmRhcjoNCmBgYHtyfQ0Kc2QoTSRFREFEKQ0KYGBgDQpDb24gZXN0ZSBkYXRvLCBzZSBwdWVkZSBkZWR1Y2lyIHF1ZSBlbiBnZW5lcmFsLCBsYSBlZGFkIGRlIGxvcyBlc3R1ZGlhbnRlcyBzZSBkZXN27WEgZGUgMjguNTYgYfFvcyAobWVkaWEpIGVuIDgsNjUgYfFvcywgZXMgZGVjaXIsIGVzdOEgZW50cmUgMjAgeSAzNyBh8W9zLg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIEFOwUxJU0lTIERFIExBIFZBUklBQkxFIFBFU08NCg0KU2VndWltb3MgZWwgbWlzbW8gcHJvY2VkaW1pZXRubyB1dGlsaXphZG8gcGFyYSBlbCBhbuFsaXNpcyBkZSBsYSB2YXJpYWJsZSAiRURBRCIuDQoNCkxhIHZhcmlhYmxlICJQRVNPIiBlcyB1bmEgdmFyaWFibGUgbnVt6XJpY2EuDQoNClJlYWxpemFtb3MgdW4gaGlzdG9ncmFtYToNCmBgYHtyfQ0KaGlzdChQRVNPLCBjb2wgPSAicHVycGxlIikNCmBgYA0KRW4gZXN0YSBncuFmaWNhIHNlIHB1ZWRlIGFwcmVjaWFyIHF1ZSBsYSBtYXlvciBwYXJ0ZSBkZSBsb3MgZXN0dWRpYW50ZXMgdGllbmUgdW4gcGVzbyBlbnRyZSA1MCB5IDYwIGtnIG8gZW50cmUgNzAgeSA4MGtnLg0KRW4gbGEgc2lndWllbnRlIGdy4WZpY2Egc2Ugb2JzZXJ2YW4gdG9kb3MgbG9zIGRhdG9zLCBhc+0gY29tbyBxdWUgaGF5IDIgdmFsb3JlcyBtdXkgYWxlamFkb3MgZGVsIHJhbmdvIGdlbmVyYWwuDQpgYGB7cn0NCnBsb3QoUEVTTywgbWFpbiA9ICJEYXRvcyBkZSBQRVNPIikNCmBgYA0KU2UgcmVhbGl6YSB1biByZXN1bWVuIGRlIGxhIHZhcmlhYmxlLCBvYXJhIGlkZW50aWZpY2FyIGxhIG1lZGlhIHkgbGEgbWVkaWFuYToNCmBgYHtyfQ0Kc3VtbWFyeShQRVNPKQ0KYGBgDQpFbCBwcm9tZWRpbyBkZWwgcGVzbyBlbnRyZSBsb3MgZXN0dWRpYW50ZXMgZXMgZGUgNjcsNjRrZyB5IGxhIG1lZGlhbmEgZXMgZGUgNzBrZywgb3NlYSBxdWUgZWwgNTAlIGRlIGxvcyBlc3R1ZGlhbnRlcyBwZXNhIG1lbm9zIGRlIDcwa2cgeSBlbCBvdHJvIDUwJSBwZXNhIG1hcy4NClRhbWJp6W4gc2UgcHVlZGUgaWRlbnRpZmljYXIgcXVlIGVsIGVzdHVkaWFudGUgbWFzIGxpdmlhbm8gcGVzYSA1MGtnIHkgcXVlIGVsIG1hcyBwZXNhZG8gcGVzYSA5OGtnLg0KUG9yIG90cm8gbGFkbywgYWwgY2FsY3VsYSBsYSBtb2RhOg0KYGBge3J9DQphcy5udW1lcmljKG5hbWVzKHRhYmxlKFBFU08pKVt0YWJsZShQRVNPKT09bWF4KHRhYmxlKFBFU08pKV0pDQpgYGANClNlIHB1ZWRlIGNvbmNsdWlyIHF1ZSBlbCBwZXNvIHF1ZSBtYXMgc2UgcmVwaXRlIGVudHJlIGxvcyBlc3RkaWFudGVzIGVzIGRlIDU3a2cuDQoNCkxhIHZhcmlhbnphIGRlIGxvcyBkYXRvcyBkZWwgcGVzbyBkZSBsb3MgZXN0dWRpYW50ZXMgZXM6DQpgYGB7cn0NCnZhcihNJFBFU08pDQpgYGANCkVzdGUgZGF0byB0aWVuZSB1biB2YWxvciBtdXkgYWx0bywgcG9yIGxvIHF1ZSBzZSBwdWVkZSBhZmlybWFyIHF1ZSBubyBoYXkgZGF0b3MgaG9tb2fpbmVvcywgcG9yIGVsIGNvbnRyYXJpbywgc29uIGRhdG9zIG11eSBkaXNwZXJzb3MsIHRhbCBjb21vIHNlIG9ic2VydmEgdGFtYmnpbiBncuFmaWNhbWVudGUgKGdy4WZpY28gRGF0b3MgZGUgUEVTTykuICANCg0KU2VndWlkYW1lbnRlLCBjYWxjdWxhbW9zIGxhIGRlc3ZpYWNp824gZXN0YW5kYXI6DQpgYGB7cn0NCnNkKE0kUEVTTykNCmBgYA0KUXVlIG5vcyBtdWVzdHJhIHF1ZSBsb3MgZGVt4XMgZGF0b3MgZXN04W4gYWxlamFkb3MgMTIsNDkgZGUgbGEgbWVkaWEuDQoNCg0KICAgICAgICAgICAgICAgICAgICBBTsFMSVNJUyBERSBMQSBWQVJJQUJMRSBSRUdJ004NCg0KTGEgdmFyaWFibGUgIlJFR0nTTiIgZXMgdW5hIHZhcmlhYmxlIGN1YWxpdGF0aXZhLCBwb3IgbG8gdGFudG8gbm8gbWUgcGVybWl0ZSBoYWNlciBoaXN0b2dyYW1hIHNpbm8gZGlhZ3JhbWEgZGUgYmFycmFzOg0KYGBge3J9DQpwbG90KFJFR0nTTiwgbWFpbiA9ICJSRUdJ004gREUgT1LNR0VOIikNCmBgYA0KRW4gZG9uZGU6ICANClZBTExFLi4uLi4xDQpDQVVDQS4uLi4uMg0KUVVJTkTNTy4uLjMNCk5BUknRTy4uLi40DQpDVU5ESU5BTS4uNQ0KU2UgcHVlZGUgYWZpcm1hciBlbnRvbmNlcywgcXVlIGVsIG1heW9yIHBvcmNlbnRhamUgZGUgbG9zIGVzdHVkaWFudGVzIGVzIGRlIG9yaWdlbiB2YWxsdW5vLg0KYGBge3J9DQpwcm9wLnRhYmxlKFIsIG1hcmdpbiA9IE5VTEwpKjEwMA0KYGBgDQpUYWwgY29tbyBzZSBhZmlybfMgZW4gbGEgcHJpbWVyYSBwYXJ0ZSBkZSBlc3RlIGluZm9ybWUsIGVsIDc2JSBkZSBsb3MgZXN0dWRpYW50ZXMgc29uIGRlbCBWYWxsZSwgbG8gY3VhbCBjb2luY2lkZSBjb24gZWwgZGlhZ3JhbWEgZGUgYmFycmFzIG1vc3RyYWRvLg0KDQpFbiByZXN1bWVuOg0KYGBge3J9DQpzdW1tYXJ5KFJFR0nTTikNCmBgYA0KQ29uZmlybWFuZG8gbG8gZXhwdWVzdG8gYW50ZXJpb3JtZW50ZSwgc2UgdGllbmUgcXVlIDE5IGVzdHVkaWFudGVzIHNvbiBkZWwgVmFsbGUsIDIgc29uIGRlbCBDYXVjYSwgMSBkZWwgUXVpbmTtbywgMiBkZSBOYXJp8W8geSAxIGRlIEN1bmRpbmFtYXJjYS4NCg0KQWwgc2VyIHVuYSB2YXJpYWJsZSBjdWFsaXRhdGl2YSBubyBlIHNwb3NpYmxlIGNhbGN1bGFyIGxhIE1lZGlhLCBNZWRpYW5hIG8gTW9kYS4NCmBgYHtyfQ0KdmFyKE0kUkVHSdNOKQ0KYGBgDQpMYSB2YXJpYW56YSBlcyBtdXkgYmFqYSwgZXMgZGVjaXIgcXVlIGNvbnRhbW9zIGNvbiBkYXRvcyBob21vZ+luZW9zLCBsYSBtYXlvcu1hICg3NiUpIHBlcnRlbmVjZSBhIGxhIHJlZ2nzbiBkZWwgVmFsbGUuDQpgYGB7cn0NCnNkKE0kUkVHSdNOKQ0KYGBgDQpMbyBtaXNtbyBjb25maXJtYSBsYSBkZXN2aWFjafNuIGVzdGFuZGFyLCBzaWVuZG8gdGFuIGJham8gZWwgdmFsb3IsIHNlIGRlZHVjZSBxdWUgbGEgbWF5b3IgcGFydGUgZGUgbG9zIGVzdHVkaWFudGVzIHBlcnRlbmVjZW4gYSB1bmEgc29sYSByZWdp824uDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K