Sesión 1. Medidas de Tendencia Central y Dispersión

Ejercicio 1

recibos <- c(266.63, 163.41, 219.41, 162.64, 187.16, 289.17, 306.55, 335.48, 343.50, 226.80, 208.99, 230.46)

Media o Promedio

media <- mean(recibos)
media
## [1] 245.0167

Mediana

mediana <- median(recibos)
mediana
## [1] 228.63

Moda En R no hay una función directa para sacar moda

Rango

rango <- max(recibos)-min(recibos)
rango
## [1] 180.86

Varianza (la varianza en R es para muestra y en este caso es población -> se saca paso a paso)

recibos1 <- recibos-media
recibos1
##  [1]  21.61333 -81.60667 -25.60667 -82.37667 -57.85667  44.15333  61.53333
##  [8]  90.46333  98.48333 -18.21667 -36.02667 -14.55667
recibos2 <- recibos1*recibos1
recibos2
##  [1]  467.1362 6659.6480  655.7014 6785.9152 3347.3939 1949.5168 3786.3511
##  [8] 8183.6147 9698.9669  331.8469 1297.9207  211.8965
recibos3 <- sum(recibos2)
recibos3
## [1] 43375.91
varianza_pobl <- recibos3/12
varianza_pobl
## [1] 3614.659

Desviación estandar

desviacion_estandar_pobl <- sqrt(varianza_pobl)
desviacion_estandar_pobl
## [1] 60.12203

Sesión 2. Distribución Normal

Ejemplo 1

  1. % menos 600
a <- (pnorm(600,1300,600))*100
a
## [1] 12.16725
  1. % entre 1000 y 1500
b <- (pnorm(1500,1300,600)- pnorm(1000,1300,600))*100
b
## [1] 32.20211
  1. % más de 2200
c <- (1-pnorm(2200,1300,600))*100
c
## [1] 6.68072

Ejemplo 2

  1. temperatura por debajo de 21
a2 <- (pnorm(21,18.7,5))*100
a2
## [1] 67.72419
  1. temperatura encima de 21
b2 <- (1-pnorm(21, 18.7,5))*100
b2
## [1] 32.27581

Ejemplo 3

  1. Mas de 90 horas
a3 <- (1-pnorm(90,80,4))*100
a3
## [1] 0.6209665
  1. Entre 70 y 85 horas
b3 <- (pnorm(85,80,4)-pnorm(70,80,4))*100
b3
## [1] 88.81406

Si un comerciante compra un lote de 1000 pilas, calcula cuantas pilas tendran una vida superior

  1. 100 horas
c3 <- (1-pnorm(100,80,4))*1000
c3
## [1] 0.0002866516
  1. 90 horas
d <- (1-pnorm(90,80,4))*1000
d
## [1] 6.209665

Sesión 3. Pruebas de Hipótesis

Paso 1. Plantear Hipótesis

Paso 2. Nivel de significancia

Paso 3. Zona de aceptación / Rechazo

Paso 4. Función Pivotal

Paso 5. Conclusión

Ejercicios del mundo real

“Reto: Ejercicios del mundo real”

Capítulo 3: Medidas de Tendencia Central y Dispersión.

3-84

¿Qué reacción tendría usted si un aficionado al fútbol americano le dijera lo siguiente? “Los Raiders de Rockland tienen un promedio de 3.6 yardas de recorrido por tierra. Como sólo necesitan 10 yardas para anotar y tienen cuatro oportunidades para lograrlo, la anotación es segura, siempre y cuando mantengan su forma de jugar por tierra.”

RESUPUESTA: La afirmación es incorrecta porque ignora completamente la variabilidad en yardas ganadas por carrera.

3-86

A continuación, se tienen 3 partes del presupuesto de defensa de un año, a cada una de éstas se le asignó, por parte del Congreso mexicano, la misma cantidad de financiamiento:
  • Salario de oficiales (total).
  • Mantenimiento de la flota aérea.
  • Adquisiciones de alimentos (total).
  • Tomando en cuenta la distribución de posibles resultados para los gastos reales en cada una de éstas áreas, haga corresponder cada sección a una de las curvas de la siguiente figura, fundamente su respuesta.

#### RESUPUESTA: Salarios de funcionarios: A; mantenimiento de flota: C; adquisiciones de alimentos: B.

3-92

El 30 de junio de 1992, la capitalización de nueve mercados de valores del Pacífico y Asia fue:
País Capitalización (en miles de millones de dólares)
Filipinas 17
Indonesia 21
Tailandia 44
Singapur 50
Malasia 79
Corea del Sur 86
Taiwan 140
Hong Kong 178
Australia 203
    1. Encuentre la media aritmética de los datos.
    1. Encuentre la mediana de los datos.
    1. Encuentre la moda de los datos.
    1. ¿Cuál es la mejor medida de la tendencia central del conjunto de datos?
    1. Encuentre la desviación estándar de los datos. (La población completa está incluida en ellos.)
RESPUESTA:
capitalizacion <- c(17,21,44,50,79,86,140,178,203)

# a)
media <- mean(capitalizacion)
media
## [1] 90.88889
# b)
mediana <- median(capitalizacion)
mediana
## [1] 79
# c)
# No hay moda para datos in agrupar.

# d)
histograma <- hist(capitalizacion)

histograma
## $breaks
## [1]   0  50 100 150 200 250
## 
## $counts
## [1] 4 2 1 1 1
## 
## $density
## [1] 0.008888889 0.004444444 0.002222222 0.002222222 0.002222222
## 
## $mids
## [1]  25  75 125 175 225
## 
## $xname
## [1] "capitalizacion"
## 
## $equidist
## [1] TRUE
## 
## attr(,"class")
## [1] "histogram"
# Como la distribución está sesgada a la derecha la mejor medida de tendencia central es la mediana.

# e)
capitalizacion2 <- capitalizacion-media
capitalizacion2
## [1] -73.888889 -69.888889 -46.888889 -40.888889 -11.888889  -4.888889  49.111111
## [8]  87.111111 112.111111
capitalizacion3 <- capitalizacion2*capitalizacion2
capitalizacion3
## [1]  5459.56790  4884.45679  2198.56790  1671.90123   141.34568    23.90123
## [7]  2411.90123  7588.34568 12568.90123
capitalizacion4 <- sum(capitalizacion3)
capitalizacion4
## [1] 36948.89
varianza_pobl_capitalizacion <- capitalizacion4/9
desv_est_pobl_capitalizacion <- sqrt(varianza_pobl_capitalizacion)
desv_est_pobl_capitalizacion
## [1] 64.07365

3-100

Matthews, Young y Asociados, una agencia de consultorías de Chapell Hill, tiene los siguientes registros que indican el número de días que cada uno de sus 10 consultores de planta cobró el último año:
212 220 230 210 228 229 231 219 221 222
    1. Sin calcular el valor de las medidas, ¿cuál de ellas cree usted que le daría una mayor información acerca de esta distribución: el rango (alcance) o la desviación estándar?
    1. Calcule: Rango, Varianza y Desviación Estándar.
    1. Tomando en cuenta la dificultad y el tiempo para calcular cada medida que revisó en el inciso a), ¿cuál sugeriría como la mejor?
    1. ¿Qué haría que usted cambiara su opinión al respecto?
RESPUESTA:

a) Desviación Estándar b)

dias <- c(212,220,230,210,228,229,231,219,221,222)
dias
##  [1] 212 220 230 210 228 229 231 219 221 222
rango_dias <- max(dias)-min(dias)
rango_dias
## [1] 21
media_dias <- mean(dias)
media_dias
## [1] 222.2
dias2 <- dias - media_dias
dias2
##  [1] -10.2  -2.2   7.8 -12.2   5.8   6.8   8.8  -3.2  -1.2  -0.2
dias3 <- dias2*dias2
dias3
##  [1] 104.04   4.84  60.84 148.84  33.64  46.24  77.44  10.24   1.44   0.04
dias4 <- sum(dias3)
dias4
## [1] 487.6
varianza_pob_dias <- dias4/10
varianza_pob_dias
## [1] 48.76
desv_est_dias <- sqrt(varianza_pob_dias)
desv_est_dias
## [1] 6.982836

c) Desviación Estándar d) Nada

3-106

Allison Barett realiza análisis estadísticos para un equipo de carreras automovilísticas. A continuación, se presentan las cifras en kilómetros por litro del gasto de combustible de sus automóviles en las carreras recientes:
    1. Calcule la mediana del consumo de combustible.
    1. Calcule la media del mismo consumo.
    1. Agrupe los datos en 5 clases de igual tamaño. ¿Cuál es el intervalo del valor de consumo de combustible para la clase modal?
    1. ¿Cuál de las 3 medidas de tendencia central es la que mejor puede servirle a Allison cuando haga un pedido de combustible? Explique su respuesta.
    1. ¿Cuál es el rango?
    1. ¿Cuál es la varianza?
    1. ¿Cuál es la desviación estándar? Establezca una conclusión a partir de las medidas de dispersión?
RESPUESTA:
kilometros <- c(4.77,6.11,6.11,5.05,5.99,4.91,5.27,6.01,5.75,4.89,6.05,5.22,6.02,5.24,6.11,5.02)

# a)
mediana_km <- median(kilometros)
mediana_km
## [1] 5.51
# b)
media_km <- mean(kilometros)
media_km
## [1] 5.5325
# c)
clases_km <- cut(kilometros, breaks = 5)
clases_km
##  [1] (4.77,5.04] (5.84,6.11] (5.84,6.11] (5.04,5.31] (5.84,6.11] (4.77,5.04]
##  [7] (5.04,5.31] (5.84,6.11] (5.57,5.84] (4.77,5.04] (5.84,6.11] (5.04,5.31]
## [13] (5.84,6.11] (5.04,5.31] (5.84,6.11] (4.77,5.04]
## Levels: (4.77,5.04] (5.04,5.31] (5.31,5.57] (5.57,5.84] (5.84,6.11]
clases_km2 <- table(clases_km)
clases_km2
## clases_km
## (4.77,5.04] (5.04,5.31] (5.31,5.57] (5.57,5.84] (5.84,6.11] 
##           4           4           0           1           7
# d)
histograma_km <- hist(kilometros)

histograma_km
## $breaks
## [1] 4.6 4.8 5.0 5.2 5.4 5.6 5.8 6.0 6.2
## 
## $counts
## [1] 1 2 2 3 0 1 1 6
## 
## $density
## [1] 0.3125 0.6250 0.6250 0.9375 0.0000 0.3125 0.3125 1.8750
## 
## $mids
## [1] 4.7 4.9 5.1 5.3 5.5 5.7 5.9 6.1
## 
## $xname
## [1] "kilometros"
## 
## $equidist
## [1] TRUE
## 
## attr(,"class")
## [1] "histogram"
# Depende...

# e) 
rango_km <- max(kilometros)-min(kilometros)
rango_km
## [1] 1.34

Capítulo 8: Prueba de hipótesis de una sola muestra.

8-64

Inspectores del gobierno, al investigar los cargos levantados contra una embotelladora de bebidas no alcohólicas, de Texas, que no llenaba adecuadamente sus productos, han muestreado 200 botellas y encontraron que el promedio de llenado es de 31.7 onzas líquidas (aproximadamente 930 ml.) Se anuncia que las botellas contienen 32 onzas líquidas (946.33 ml.). Se sabe que la desviación estándar de la población es de 1.5 onzas líquidas (44.36 ml.). ¿Deberían concluir los inspectores, al nivel de significancia de 2%, que las botellas están siendo llenadas con menos contenido, y emitir una sanción?
RESPUESTA:
Paso 1. Plantear Hipótesis
H0: xbar = μ
H1: xbar ≠ μ
Paso 2. Nivel de significancia
α = 0.02
Paso 3. Zona de aceptación / Rechazo

Paso 4. Función Pivotal
# n>30, n=200
z_lleno <-  (31.7-32)/(1.5/sqrt(200))
z_lleno
## [1] -2.828427
Paso 5. Conclusión
Se rechaza H0: Las botellas se llenan con menos contenido.
LS0tDQp0aXRsZTogIldvcmtzaG9wIDEiDQphdXRob3I6ICJNYXJpYW5hIFJhbcOtcmV6IFJhbW9zIHwgQTAxMTc0MTU1Ig0KZGF0ZTogIjIwMjMtMDUtMTgiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogVFJVRQ0KICAgIHRvYyBmbG9hdDogVFJVRQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCi0tLQ0KDQohW10oQzpcXFVzZXJzXFxtYXJpMFxcT25lRHJpdmVcXERvY3VtZW50c1xcUiBTdHVkaW9cXERpYV9saW5fYWNjaW9uXFxyZWNpYm8tZGUtbHV6LnBuZykNCg0KDQojIyMgU2VzacOzbiAxLiBNZWRpZGFzIGRlIFRlbmRlbmNpYSBDZW50cmFsIHkgRGlzcGVyc2nDs24NCg0KIyMjIyBFamVyY2ljaW8gMQ0KYGBge3J9DQpyZWNpYm9zIDwtIGMoMjY2LjYzLCAxNjMuNDEsIDIxOS40MSwgMTYyLjY0LCAxODcuMTYsIDI4OS4xNywgMzA2LjU1LCAzMzUuNDgsIDM0My41MCwgMjI2LjgwLCAyMDguOTksIDIzMC40NikNCmBgYA0KDQpNZWRpYSBvIFByb21lZGlvDQpgYGB7cn0NCm1lZGlhIDwtIG1lYW4ocmVjaWJvcykNCm1lZGlhDQpgYGANCg0KTWVkaWFuYQ0KYGBge3J9DQptZWRpYW5hIDwtIG1lZGlhbihyZWNpYm9zKQ0KbWVkaWFuYQ0KYGBgDQoNCk1vZGENCkVuIFIgbm8gaGF5IHVuYSBmdW5jacOzbiBkaXJlY3RhIHBhcmEgc2FjYXIgbW9kYQ0KDQpSYW5nbw0KYGBge3J9DQpyYW5nbyA8LSBtYXgocmVjaWJvcyktbWluKHJlY2lib3MpDQpyYW5nbw0KYGBgDQoNClZhcmlhbnphIChsYSB2YXJpYW56YSBlbiBSIGVzIHBhcmEgbXVlc3RyYSB5IGVuIGVzdGUgY2FzbyBlcyBwb2JsYWNpw7NuIC0+IHNlIHNhY2EgcGFzbyBhIHBhc28pDQpgYGB7cn0NCnJlY2lib3MxIDwtIHJlY2lib3MtbWVkaWENCnJlY2lib3MxDQpgYGANCmBgYHtyfQ0KcmVjaWJvczIgPC0gcmVjaWJvczEqcmVjaWJvczENCnJlY2lib3MyDQpgYGANCmBgYHtyfQ0KcmVjaWJvczMgPC0gc3VtKHJlY2lib3MyKQ0KcmVjaWJvczMNCmBgYA0KYGBge3J9DQp2YXJpYW56YV9wb2JsIDwtIHJlY2lib3MzLzEyDQp2YXJpYW56YV9wb2JsDQpgYGANCg0KRGVzdmlhY2nDs24gZXN0YW5kYXINCmBgYHtyfQ0KZGVzdmlhY2lvbl9lc3RhbmRhcl9wb2JsIDwtIHNxcnQodmFyaWFuemFfcG9ibCkNCmRlc3ZpYWNpb25fZXN0YW5kYXJfcG9ibA0KYGBgDQoNCg0KIVtdKEM6XFxVc2Vyc1xcbWFyaTBcXE9uZURyaXZlXFxEb2N1bWVudHNcXFIgU3R1ZGlvXFxEaWFfbGluX2FjY2lvblxcUHJvY2Vzb19kZV9yZWNpY2xhamVfcGlsYXMucG5nKQ0KDQojIyMgU2VzacOzbiAyLiBEaXN0cmlidWNpw7NuIE5vcm1hbA0KDQojIyMjIEVqZW1wbG8gMQ0KDQphKSAlIG1lbm9zIDYwMA0KYGBge3J9DQphIDwtIChwbm9ybSg2MDAsMTMwMCw2MDApKSoxMDANCmENCmBgYA0KDQpiKSAlIGVudHJlIDEwMDAgeSAxNTAwDQpgYGB7cn0NCmIgPC0gKHBub3JtKDE1MDAsMTMwMCw2MDApLSBwbm9ybSgxMDAwLDEzMDAsNjAwKSkqMTAwDQpiDQpgYGANCg0KYykgJSBtw6FzICBkZSAyMjAwDQpgYGB7cn0NCmMgPC0gKDEtcG5vcm0oMjIwMCwxMzAwLDYwMCkpKjEwMA0KYw0KYGBgDQoNCg0KIyMjIyBFamVtcGxvIDINCg0KYSkgdGVtcGVyYXR1cmEgcG9yIGRlYmFqbyBkZSAyMQ0KYGBge3J9DQphMiA8LSAocG5vcm0oMjEsMTguNyw1KSkqMTAwDQphMg0KYGBgDQoNCmIpIHRlbXBlcmF0dXJhIGVuY2ltYSBkZSAyMQ0KYGBge3J9DQpiMiA8LSAoMS1wbm9ybSgyMSwgMTguNyw1KSkqMTAwDQpiMg0KYGBgDQoNCg0KIyMjIyBFamVtcGxvIDMNCg0KYSkgTWFzIGRlIDkwIGhvcmFzDQpgYGB7cn0NCmEzIDwtICgxLXBub3JtKDkwLDgwLDQpKSoxMDANCmEzDQpgYGANCg0KYikgRW50cmUgNzAgeSA4NSBob3Jhcw0KYGBge3J9DQpiMyA8LSAocG5vcm0oODUsODAsNCktcG5vcm0oNzAsODAsNCkpKjEwMA0KYjMNCmBgYA0KDQoNClNpIHVuIGNvbWVyY2lhbnRlIGNvbXByYSB1biBsb3RlIGRlIDEwMDAgcGlsYXMsIGNhbGN1bGEgY3VhbnRhcyBwaWxhcyB0ZW5kcmFuIHVuYSB2aWRhIHN1cGVyaW9yDQoNCmMpIDEwMCBob3Jhcw0KYGBge3J9DQpjMyA8LSAoMS1wbm9ybSgxMDAsODAsNCkpKjEwMDANCmMzDQpgYGANCg0KZCkgOTAgaG9yYXMNCmBgYHtyfQ0KZCA8LSAoMS1wbm9ybSg5MCw4MCw0KSkqMTAwMA0KZA0KYGBgDQoNCiFbXShDOlxcVXNlcnNcXG1hcmkwXFxPbmVEcml2ZVxcRG9jdW1lbnRzXFxSIFN0dWRpb1xcRGlhX2xpbl9hY2Npb25cXGxsYW50YXMucG5nKQ0KDQojIyMgU2VzacOzbiAzLiBQcnVlYmFzIGRlIEhpcMOzdGVzaXMNCg0KIyMjIyBQYXNvIDEuIFBsYW50ZWFyIEhpcMOzdGVzaXMNCiMjIyMgUGFzbyAyLiBOaXZlbCBkZSBzaWduaWZpY2FuY2lhDQojIyMjIFBhc28gMy4gWm9uYSBkZSBhY2VwdGFjacOzbiAvIFJlY2hhem8NCiMjIyMgUGFzbyA0LiBGdW5jacOzbiBQaXZvdGFsDQojIyMjIFBhc28gNS4gQ29uY2x1c2nDs24NCg0KIVtdKEM6XFxVc2Vyc1xcbWFyaTBcXE9uZURyaXZlXFxEb2N1bWVudHNcXFIgU3R1ZGlvXFxEaWFfbGluX2FjY2lvblxcZXN0YWRpc3RpY2EucG5nKQ0KDQojIyMgRWplcmNpY2lvcyBkZWwgbXVuZG8gcmVhbA0KDQojIyMjICJSZXRvOiBFamVyY2ljaW9zIGRlbCBtdW5kbyByZWFsIg0KIyMjIyBDYXDDrXR1bG8gMzogTWVkaWRhcyBkZSBUZW5kZW5jaWEgQ2VudHJhbCB5IERpc3BlcnNpw7NuLg0KIyMjIyAqKjMtODQqKg0KIyMjIyMgwr9RdcOpIHJlYWNjacOzbiB0ZW5kcsOtYSB1c3RlZCBzaSB1biBhZmljaW9uYWRvIGFsIGbDunRib2wgYW1lcmljYW5vIGxlIGRpamVyYSBsbyBzaWd1aWVudGU/IOKAnExvcyBSYWlkZXJzIGRlIFJvY2tsYW5kIHRpZW5lbiB1biBwcm9tZWRpbyBkZSAzLjYgeWFyZGFzIGRlIHJlY29ycmlkbyBwb3IgdGllcnJhLiBDb21vIHPDs2xvIG5lY2VzaXRhbiAxMCB5YXJkYXMgcGFyYSBhbm90YXIgeSB0aWVuZW4gY3VhdHJvIG9wb3J0dW5pZGFkZXMgcGFyYSBsb2dyYXJsbywgbGEgYW5vdGFjacOzbiBlcyBzZWd1cmEsIHNpZW1wcmUgeSBjdWFuZG8gbWFudGVuZ2FuIHN1IGZvcm1hIGRlIGp1Z2FyIHBvciB0aWVycmEu4oCdDQoNCiMjIyMgKipSRVNVUFVFU1RBOiBMYSBhZmlybWFjacOzbiBlcyBpbmNvcnJlY3RhIHBvcnF1ZSBpZ25vcmEgY29tcGxldGFtZW50ZSBsYSB2YXJpYWJpbGlkYWQgZW4geWFyZGFzIGdhbmFkYXMgcG9yIGNhcnJlcmEuKioNCg0KIyMjIyAqKjMtODYqKg0KIyMjIyMgQSBjb250aW51YWNpw7NuLCBzZSB0aWVuZW4gMyBwYXJ0ZXMgZGVsIHByZXN1cHVlc3RvIGRlIGRlZmVuc2EgZGUgdW4gYcOxbywgYSBjYWRhIHVuYSBkZSDDqXN0YXMgc2UgbGUgYXNpZ27DsywgcG9yIHBhcnRlIGRlbCBDb25ncmVzbyBtZXhpY2FubywgbGEgbWlzbWEgY2FudGlkYWQgZGUgZmluYW5jaWFtaWVudG86DQoqIFNhbGFyaW8gZGUgb2ZpY2lhbGVzICh0b3RhbCkuDQoqIE1hbnRlbmltaWVudG8gZGUgbGEgZmxvdGEgYcOpcmVhLg0KKiBBZHF1aXNpY2lvbmVzIGRlIGFsaW1lbnRvcyAodG90YWwpLg0KKiBUb21hbmRvIGVuIGN1ZW50YSBsYSBkaXN0cmlidWNpw7NuIGRlIHBvc2libGVzIHJlc3VsdGFkb3MgcGFyYSBsb3MgZ2FzdG9zIHJlYWxlcyBlbiBjYWRhIHVuYSBkZSDDqXN0YXMgw6FyZWFzLCBoYWdhIGNvcnJlc3BvbmRlciBjYWRhIHNlY2Npw7NuIGEgdW5hIGRlIGxhcyBjdXJ2YXMgZGUgbGEgc2lndWllbnRlIGZpZ3VyYSwgZnVuZGFtZW50ZSBzdSByZXNwdWVzdGEuDQoNCiFbXShDOlxcVXNlcnNcXG1hcmkwXFxPbmVEcml2ZVxcRG9jdW1lbnRzXFxSIFN0dWRpb1xcRGlhX2xpbl9hY2Npb25cXGVqZXJjaWNpbzIucG5nKQ0KIyMjIyAqKlJFU1VQVUVTVEE6IFNhbGFyaW9zIGRlIGZ1bmNpb25hcmlvczogQTsgbWFudGVuaW1pZW50byBkZSBmbG90YTogQzsgYWRxdWlzaWNpb25lcyBkZSBhbGltZW50b3M6IEIuICoqDQoNCiMjIyMgKiozLTkyKioNCiMjIyMjIEVsIDMwIGRlIGp1bmlvIGRlIDE5OTIsIGxhIGNhcGl0YWxpemFjacOzbiBkZSBudWV2ZSBtZXJjYWRvcyBkZSB2YWxvcmVzIGRlbCBQYWPDrWZpY28geSBBc2lhIGZ1ZToNCg0KUGHDrXMgICAgICAgICAgfCBDYXBpdGFsaXphY2nDs24gKGVuIG1pbGVzIGRlIG1pbGxvbmVzIGRlIGTDs2xhcmVzKQ0KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0NCkZpbGlwaW5hcyAgICAgfCAxNw0KSW5kb25lc2lhICAgICB8IDIxDQpUYWlsYW5kaWEgICAgIHwgNDQNClNpbmdhcHVyICAgICAgfCA1MA0KTWFsYXNpYSAgICAgICB8IDc5DQpDb3JlYSBkZWwgU3VyIHwgODYNClRhaXdhbiAgICAgICAgfCAxNDANCkhvbmcgS29uZyAgICAgfCAxNzgNCkF1c3RyYWxpYSAgICAgfCAyMDMNCg0KDQoqIGEpIEVuY3VlbnRyZSBsYSBtZWRpYSBhcml0bcOpdGljYSBkZSBsb3MgZGF0b3MuDQoqIGIpIEVuY3VlbnRyZSBsYSBtZWRpYW5hIGRlIGxvcyBkYXRvcy4NCiogYykgRW5jdWVudHJlIGxhIG1vZGEgZGUgbG9zIGRhdG9zLg0KKiBkKSDCv0N1w6FsIGVzIGxhIG1lam9yIG1lZGlkYSBkZSBsYSB0ZW5kZW5jaWEgY2VudHJhbCBkZWwgY29uanVudG8gZGUgZGF0b3M/DQoqIGUpIEVuY3VlbnRyZSBsYSBkZXN2aWFjacOzbiBlc3TDoW5kYXIgZGUgbG9zIGRhdG9zLiAoTGEgcG9ibGFjacOzbiBjb21wbGV0YSBlc3TDoSBpbmNsdWlkYSBlbiBlbGxvcy4pDQoNCiMjIyMjICoqUkVTUFVFU1RBOiAqKg0KYGBge3J9DQpjYXBpdGFsaXphY2lvbiA8LSBjKDE3LDIxLDQ0LDUwLDc5LDg2LDE0MCwxNzgsMjAzKQ0KDQojIGEpDQptZWRpYSA8LSBtZWFuKGNhcGl0YWxpemFjaW9uKQ0KbWVkaWENCg0KIyBiKQ0KbWVkaWFuYSA8LSBtZWRpYW4oY2FwaXRhbGl6YWNpb24pDQptZWRpYW5hDQoNCiMgYykNCiMgTm8gaGF5IG1vZGEgcGFyYSBkYXRvcyBpbiBhZ3J1cGFyLg0KDQojIGQpDQpoaXN0b2dyYW1hIDwtIGhpc3QoY2FwaXRhbGl6YWNpb24pDQpoaXN0b2dyYW1hDQojIENvbW8gbGEgZGlzdHJpYnVjacOzbiBlc3TDoSBzZXNnYWRhIGEgbGEgZGVyZWNoYSBsYSBtZWpvciBtZWRpZGEgZGUgdGVuZGVuY2lhIGNlbnRyYWwgZXMgbGEgbWVkaWFuYS4NCmBgYA0KDQohW10oQzpcXFVzZXJzXFxtYXJpMFxcT25lRHJpdmVcXERvY3VtZW50c1xcUiBTdHVkaW9cXERpYV9saW5fYWNjaW9uXFxzZXNnby5wbmcpDQpgYGB7cn0NCiMgZSkNCmNhcGl0YWxpemFjaW9uMiA8LSBjYXBpdGFsaXphY2lvbi1tZWRpYQ0KY2FwaXRhbGl6YWNpb24yDQpjYXBpdGFsaXphY2lvbjMgPC0gY2FwaXRhbGl6YWNpb24yKmNhcGl0YWxpemFjaW9uMg0KY2FwaXRhbGl6YWNpb24zDQpjYXBpdGFsaXphY2lvbjQgPC0gc3VtKGNhcGl0YWxpemFjaW9uMykNCmNhcGl0YWxpemFjaW9uNA0KdmFyaWFuemFfcG9ibF9jYXBpdGFsaXphY2lvbiA8LSBjYXBpdGFsaXphY2lvbjQvOQ0KZGVzdl9lc3RfcG9ibF9jYXBpdGFsaXphY2lvbiA8LSBzcXJ0KHZhcmlhbnphX3BvYmxfY2FwaXRhbGl6YWNpb24pDQpkZXN2X2VzdF9wb2JsX2NhcGl0YWxpemFjaW9uDQpgYGANCg0KDQojIyMjICoqMy0xMDAqKg0KIyMjIyMgTWF0dGhld3MsIFlvdW5nIHkgQXNvY2lhZG9zLCB1bmEgYWdlbmNpYSBkZSBjb25zdWx0b3LDrWFzIGRlIENoYXBlbGwgSGlsbCwgdGllbmUgbG9zIHNpZ3VpZW50ZXMgcmVnaXN0cm9zIHF1ZSBpbmRpY2FuIGVsIG7Dum1lcm8gZGUgZMOtYXMgcXVlIGNhZGEgdW5vIGRlIHN1cyAxMCBjb25zdWx0b3JlcyBkZSBwbGFudGEgY29icsOzIGVsIMO6bHRpbW8gYcOxbzoNCg0KIyMjIyMgMjEyICAyMjAgIDIzMCAgMjEwICAyMjggIDIyOSAgMjMxICAyMTkgIDIyMSAgMjIyDQoNCiogYSkgU2luIGNhbGN1bGFyIGVsIHZhbG9yIGRlIGxhcyBtZWRpZGFzLCDCv2N1w6FsIGRlIGVsbGFzIGNyZWUgdXN0ZWQgcXVlIGxlIGRhcsOtYSB1bmEgbWF5b3IgaW5mb3JtYWNpw7NuIGFjZXJjYSBkZSBlc3RhIGRpc3RyaWJ1Y2nDs246IGVsIHJhbmdvIChhbGNhbmNlKSBvIGxhIGRlc3ZpYWNpw7NuIGVzdMOhbmRhcj8NCiogYikgQ2FsY3VsZTogUmFuZ28sIFZhcmlhbnphIHkgRGVzdmlhY2nDs24gRXN0w6FuZGFyLg0KKiBjKSBUb21hbmRvIGVuIGN1ZW50YSBsYSBkaWZpY3VsdGFkIHkgZWwgdGllbXBvIHBhcmEgY2FsY3VsYXIgY2FkYSBtZWRpZGEgcXVlIHJldmlzw7MgZW4gZWwgaW5jaXNvIGEpLCDCv2N1w6FsIHN1Z2VyaXLDrWEgY29tbyBsYSBtZWpvcj8NCiogZCkgwr9RdcOpIGhhcsOtYSBxdWUgdXN0ZWQgY2FtYmlhcmEgc3Ugb3BpbmnDs24gYWwgcmVzcGVjdG8/DQoNCiMjIyMjICoqUkVTUFVFU1RBOiAqKg0KDQoqKmEpIERlc3ZpYWNpw7NuIEVzdMOhbmRhcioqDQoqKmIpKioNCmBgYHtyfQ0KZGlhcyA8LSBjKDIxMiwyMjAsMjMwLDIxMCwyMjgsMjI5LDIzMSwyMTksMjIxLDIyMikNCmRpYXMNCnJhbmdvX2RpYXMgPC0gbWF4KGRpYXMpLW1pbihkaWFzKQ0KcmFuZ29fZGlhcw0KbWVkaWFfZGlhcyA8LSBtZWFuKGRpYXMpDQptZWRpYV9kaWFzDQpkaWFzMiA8LSBkaWFzIC0gbWVkaWFfZGlhcw0KZGlhczINCmRpYXMzIDwtIGRpYXMyKmRpYXMyDQpkaWFzMw0KZGlhczQgPC0gc3VtKGRpYXMzKQ0KZGlhczQNCnZhcmlhbnphX3BvYl9kaWFzIDwtIGRpYXM0LzEwDQp2YXJpYW56YV9wb2JfZGlhcw0KZGVzdl9lc3RfZGlhcyA8LSBzcXJ0KHZhcmlhbnphX3BvYl9kaWFzKQ0KZGVzdl9lc3RfZGlhcw0KYGBgDQoNCioqYykgRGVzdmlhY2nDs24gRXN0w6FuZGFyKioNCioqZCkgTmFkYSoqDQoNCiMjIyMgKiozLTEwNioqDQojIyMjIyBBbGxpc29uIEJhcmV0dCByZWFsaXphIGFuw6FsaXNpcyBlc3RhZMOtc3RpY29zIHBhcmEgdW4gZXF1aXBvIGRlIGNhcnJlcmFzIGF1dG9tb3ZpbMOtc3RpY2FzLiBBIGNvbnRpbnVhY2nDs24sIHNlIHByZXNlbnRhbiBsYXMgY2lmcmFzIGVuIGtpbMOzbWV0cm9zIHBvciBsaXRybyBkZWwgZ2FzdG8gZGUgY29tYnVzdGlibGUgZGUgc3VzIGF1dG9tw7N2aWxlcyBlbiBsYXMgY2FycmVyYXMgcmVjaWVudGVzOg0KDQoqIGEpIENhbGN1bGUgbGEgbWVkaWFuYSBkZWwgY29uc3VtbyBkZSBjb21idXN0aWJsZS4NCiogYikgQ2FsY3VsZSBsYSBtZWRpYSBkZWwgbWlzbW8gY29uc3Vtby4NCiogYykgQWdydXBlIGxvcyBkYXRvcyBlbiA1IGNsYXNlcyBkZSBpZ3VhbCB0YW1hw7FvLiDCv0N1w6FsIGVzIGVsIGludGVydmFsbyBkZWwgdmFsb3IgZGUgY29uc3VtbyBkZSBjb21idXN0aWJsZSBwYXJhIGxhIGNsYXNlIG1vZGFsPw0KKiBkKSDCv0N1w6FsIGRlIGxhcyAzIG1lZGlkYXMgZGUgdGVuZGVuY2lhIGNlbnRyYWwgZXMgbGEgcXVlIG1lam9yIHB1ZWRlIHNlcnZpcmxlIGEgQWxsaXNvbiBjdWFuZG8gaGFnYSB1biBwZWRpZG8gZGUgY29tYnVzdGlibGU/IEV4cGxpcXVlIHN1IHJlc3B1ZXN0YS4NCiogZSkgwr9DdcOhbCBlcyBlbCByYW5nbz8NCiogZikgwr9DdcOhbCBlcyBsYSB2YXJpYW56YT8NCiogZykgwr9DdcOhbCBlcyBsYSBkZXN2aWFjacOzbiBlc3TDoW5kYXI/IEVzdGFibGV6Y2EgdW5hIGNvbmNsdXNpw7NuIGEgcGFydGlyIGRlIGxhcyBtZWRpZGFzIGRlIGRpc3BlcnNpw7NuPw0KDQojIyMjIyAqKlJFU1BVRVNUQTogKioNCmBgYHtyfQ0Ka2lsb21ldHJvcyA8LSBjKDQuNzcsNi4xMSw2LjExLDUuMDUsNS45OSw0LjkxLDUuMjcsNi4wMSw1Ljc1LDQuODksNi4wNSw1LjIyLDYuMDIsNS4yNCw2LjExLDUuMDIpDQoNCiMgYSkNCm1lZGlhbmFfa20gPC0gbWVkaWFuKGtpbG9tZXRyb3MpDQptZWRpYW5hX2ttDQoNCiMgYikNCm1lZGlhX2ttIDwtIG1lYW4oa2lsb21ldHJvcykNCm1lZGlhX2ttDQoNCiMgYykNCmNsYXNlc19rbSA8LSBjdXQoa2lsb21ldHJvcywgYnJlYWtzID0gNSkNCmNsYXNlc19rbQ0KY2xhc2VzX2ttMiA8LSB0YWJsZShjbGFzZXNfa20pDQpjbGFzZXNfa20yDQoNCiMgZCkNCmhpc3RvZ3JhbWFfa20gPC0gaGlzdChraWxvbWV0cm9zKQ0KaGlzdG9ncmFtYV9rbQ0KIyBEZXBlbmRlLi4uDQoNCiMgZSkgDQpyYW5nb19rbSA8LSBtYXgoa2lsb21ldHJvcyktbWluKGtpbG9tZXRyb3MpDQpyYW5nb19rbQ0KDQpgYGANCg0KDQojIyMjIENhcMOtdHVsbyA4OiBQcnVlYmEgZGUgaGlww7N0ZXNpcyBkZSB1bmEgc29sYSBtdWVzdHJhLg0KDQojIyMjICoqOC02NCoqDQojIyMjIyBJbnNwZWN0b3JlcyBkZWwgZ29iaWVybm8sIGFsIGludmVzdGlnYXIgbG9zIGNhcmdvcyBsZXZhbnRhZG9zIGNvbnRyYSB1bmEgZW1ib3RlbGxhZG9yYSBkZSBiZWJpZGFzIG5vIGFsY29ow7NsaWNhcywgZGUgVGV4YXMsIHF1ZSBubyBsbGVuYWJhIGFkZWN1YWRhbWVudGUgc3VzIHByb2R1Y3RvcywgaGFuIG11ZXN0cmVhZG8gMjAwIGJvdGVsbGFzIHkgZW5jb250cmFyb24gcXVlIGVsIHByb21lZGlvIGRlIGxsZW5hZG8gZXMgZGUgMzEuNyBvbnphcyBsw61xdWlkYXMgKGFwcm94aW1hZGFtZW50ZSA5MzAgbWwuKSBTZSBhbnVuY2lhIHF1ZSBsYXMgYm90ZWxsYXMgY29udGllbmVuIDMyIG9uemFzIGzDrXF1aWRhcyAoOTQ2LjMzIG1sLikuIFNlIHNhYmUgcXVlIGxhIGRlc3ZpYWNpw7NuIGVzdMOhbmRhciBkZSBsYSBwb2JsYWNpw7NuIGVzIGRlIDEuNSBvbnphcyBsw61xdWlkYXMgKDQ0LjM2IG1sLikuIMK/RGViZXLDrWFuIGNvbmNsdWlyIGxvcyBpbnNwZWN0b3JlcywgYWwgbml2ZWwgZGUgc2lnbmlmaWNhbmNpYSBkZSAyJSwgcXVlIGxhcyBib3RlbGxhcyBlc3TDoW4gc2llbmRvIGxsZW5hZGFzIGNvbiBtZW5vcyBjb250ZW5pZG8sIHkgZW1pdGlyIHVuYSBzYW5jacOzbj8NCiMjIyMjICoqUkVTUFVFU1RBOiAqKg0KDQojIyMjIyAqKlBhc28gMS4gUGxhbnRlYXIgSGlww7N0ZXNpcyoqDQojIyMjIyBIMDogeGJhciA9IM68DQojIyMjIyBIMTogeGJhciDiiaAgzrwNCg0KIyMjIyMgKipQYXNvIDIuIE5pdmVsIGRlIHNpZ25pZmljYW5jaWEqKg0KIyMjIyMgzrEgPSAwLjAyDQoNCiMjIyMjICoqUGFzbyAzLiBab25hIGRlIGFjZXB0YWNpw7NuIC8gUmVjaGF6byoqDQohW10oQzpcXFVzZXJzXFxtYXJpMFxcT25lRHJpdmVcXERvY3VtZW50c1xcUiBTdHVkaW9cXERpYV9saW5fYWNjaW9uXFxncmFmaWNhXzAuMDIuUE5HKQ0KDQojIyMjIyAqKlBhc28gNC4gRnVuY2nDs24gUGl2b3RhbCoqDQpgYGB7cn0NCiMgbj4zMCwgbj0yMDANCnpfbGxlbm8gPC0gICgzMS43LTMyKS8oMS41L3NxcnQoMjAwKSkNCnpfbGxlbm8NCmBgYA0KDQojIyMjIyAqKlBhc28gNS4gQ29uY2x1c2nDs24qKg0KIyMjIyMgU2UgcmVjaGF6YSBIMDogTGFzIGJvdGVsbGFzIHNlIGxsZW5hbiBjb24gbWVub3MgY29udGVuaWRvLg0K