Problema 3 - Teorema del Límite Central
Enunciado
Problema 3
Teorema del límite central
El Teorema del Límite Central es uno de los más importantes en la
inferencia estadística y habla sobre la convergencia de los estimadores
como la proporción muestral a la distribución normal. Algunos autores
afirman que esta aproximación es bastante buena a partir del umbral
n>30.
Nota
- Funciones recomendadas : rbinom() , data.frame(), apply()
- Entregable : enlace en RPubs con informe 3
Punto a
- Realice una simulación en la cual genere una población de \(N = 1000\) (Lote), donde el porcentaje de
individuos enfermas sea del \(50\%\).
Se supondrán plantas.
# Item a
# creation of the population sick/healthy 50%/50%
population = rep (c(0,1), each = 500)
table(population)
## population
## 0 1
## 500 500
Punto b
- Genere una función que permita:
- Obtener una muestra aleatoria de la población y
- Calcule el estimador de la proporción muestral \(\hat{p}\) para un tamaño de muestra dado
n.
# Item b
# Create a function to Obtain a random sample of the population (example with 50 samples)
randomsample = function(n){
s = sample(population, n, replace = TRUE)
return (s)
}
# Calculate the estimator 'phat' for a given size of the sample.
# For this case, is the relation between the sick one agains the population
phat = function(n){
s = randomsample(n)
p = prop.table(table(s))
names(p) = c("1-p", "phat")
return(p[2]) # Return phat
}
#Let's try the functions for different sample sizes
v = c(10,30,50,75,100,200,500,1000,2000)
sapply(v, phat)
## phat phat phat phat phat phat phat phat
## 0.3000000 0.3333333 0.3600000 0.4933333 0.4700000 0.4950000 0.5260000 0.4920000
## phat
## 0.4905000
Punto c
- Repita el escenario anterior (b) \(n =
500\) veces y analice los resultados en cuanto al comportamiento
de los 500 resultados del estimador \(\hat{p}\).
- ¿Qué tan simétricos o sesgados son los resultados obtenidos?
- ¿Qué se puede observar en cuanto a la variabilidad?.
- Realice en su informe un comentario sobre los resultados
obtenidos.
# Item c
# Repeat the above with n = 500
graph = function(n){
m = 500
y = matrix(randomsample(n*m), ncol = n)
phat = function(v){
sum(v)/n
}
phat5 = apply(y, 1, phat)
par(mfrow=c(2,2))
hist(phat5)
boxplot(phat5)
qqnorm(phat5)
return(phat5)
}
g = graph(5)
summary(g)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.4000 0.4000 0.5028 0.6000 1.0000
##
## Shapiro-Wilk normality test
##
## data: g
## W = 0.93082, p-value = 1.931e-14

Se ven espacios en la gráfica porque los datos no son continuos sino
discretos. Los resultados se ven más simétricos que asimétricos, aunque
están un poco más a la izquierda del gráfico, pero se nota que en los
extremos hay mucho menos datos que hacia el centro del mismo. Tiene un
valor p muy pequeño. Los resultados son poco sesgados, pero tienen mucha
variabilidad dentro del rango.
Punto d
- Repita los puntos b y c para tamaños de muestra \(n=5, 10, 15, 20, 30, 50, 60, 100, 200,
500\). Compare los resultados obtenidos para los diferentes
tamaños de muestra en cuanto a la normalidad. Utilice pruebas de bondad
y ajuste (shapiro wilks :shapiro.test()) y métodos gráficos (gráfico de
normalidad: qqnorm()).
- Comente en su informe los resultados obtenidos










Se puede comprobar con este comportamiento el Teorema del Límite
Central, pues a medida que va aumentando el tamaño de la muestra, la
distribución se hace más simétrica y tiene una distribución normal.
LS0tDQpzdWJ0aXRsZTogIkFjdGl2aWRhZCAyLiBNw6l0b2RvcyB5IFNpbXVsYWNpw7NuIg0KdGl0bGU6ICJQcm9ibGVtYSAzIg0KYXV0aG9yOiAiRW5yaXF1ZSBKb3PDqSBQZcOxYSB5IExlYW5kcm8gTXXDsW96Ig0KZGF0ZTogIjIwMjQtMDMtMDQiDQpvdXRwdXQ6ICANCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICB0b2M6IGZhbHNlDQogICAgdG9jX2RlcHRoOiA0DQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgY29sbGFwc2VkOiB0cnVlDQogICAgc21vb3RoX3Njcm9sbDogdHJ1ZQ0KICAgIHRoZW1lOiBmbGF0bHkNCiAgICBoaWdobGlnaHQ6IGthdGUNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQpudW1iZXItc2VjdGlvbnM6IHRydWUNCi0tLQ0KDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSwgZmlnLndpZHRoID0gNSwgZmlnLmhlaWdodCA9IDUpDQojUi52ZXJzaW9uDQppZighcmVxdWlyZU5hbWVzcGFjZSgiZ2dwbG90MiIsIHF1aWV0bHkgPSBUUlVFKSl7DQogIGluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKQ0KfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KDQpzZXQuc2VlZCg2ODkpDQpgYGANCg0KIyMgUHJvYmxlbWEgMyAtIFRlb3JlbWEgZGVsIEzDrW1pdGUgQ2VudHJhbA0KDQojIyMgRW51bmNpYWRvDQoNCiMgUHJvYmxlbWEgMw0KIyMgVGVvcmVtYSBkZWwgbMOtbWl0ZSBjZW50cmFsDQoNCkVsIFRlb3JlbWEgZGVsIEzDrW1pdGUgQ2VudHJhbCBlcyB1bm8gZGUgbG9zIG3DoXMgaW1wb3J0YW50ZXMgZW4gbGEgaW5mZXJlbmNpYSBlc3RhZMOtc3RpY2EgeSBoYWJsYSBzb2JyZSBsYSBjb252ZXJnZW5jaWEgZGUgbG9zIGVzdGltYWRvcmVzIGNvbW8gbGEgcHJvcG9yY2nDs24gbXVlc3RyYWwgYSBsYSBkaXN0cmlidWNpw7NuIG5vcm1hbC4gQWxndW5vcyBhdXRvcmVzIGFmaXJtYW4gcXVlIGVzdGEgYXByb3hpbWFjacOzbiBlcyBiYXN0YW50ZSBidWVuYSBhIHBhcnRpciBkZWwgdW1icmFsIG4+MzAuDQoNCiMjIyBOb3RhDQoqIEZ1bmNpb25lcyByZWNvbWVuZGFkYXMgOiByYmlub20oKSAsIGRhdGEuZnJhbWUoKSwgYXBwbHkoKQ0KKiBFbnRyZWdhYmxlIDogZW5sYWNlIGVuIFJQdWJzIGNvbiBpbmZvcm1lIDMNCg0KIyMjIFB1bnRvIGENCiogUmVhbGljZSB1bmEgc2ltdWxhY2nDs24gZW4gbGEgY3VhbCBnZW5lcmUgdW5hIHBvYmxhY2nDs24gZGUgJE4gPSAxMDAwJCAoTG90ZSksIGRvbmRlIGVsIHBvcmNlbnRhamUgZGUgaW5kaXZpZHVvcyBlbmZlcm1hcyBzZWEgZGVsICQ1MFwlJC4gU2Ugc3Vwb25kcsOhbiBwbGFudGFzLg0KDQpgYGB7ciBpdGVtX2EgLCBpbmNsdWRlID0gVFJVRSwgZWNobyA9IFRSVUV9DQojIEl0ZW0gIGENCiMgY3JlYXRpb24gb2YgdGhlIHBvcHVsYXRpb24gc2ljay9oZWFsdGh5IDUwJS81MCUNCnBvcHVsYXRpb24gPSByZXAgKGMoMCwxKSwgZWFjaCA9IDUwMCkgDQp0YWJsZShwb3B1bGF0aW9uKQ0KYGBgDQoNCiMjIyBQdW50byBiDQoqIEdlbmVyZSB1bmEgZnVuY2nDs24gcXVlIHBlcm1pdGE6DQogICogT2J0ZW5lciB1bmEgbXVlc3RyYSBhbGVhdG9yaWEgZGUgbGEgcG9ibGFjacOzbiB5DQogICogQ2FsY3VsZSBlbCBlc3RpbWFkb3IgZGUgbGEgcHJvcG9yY2nDs24gbXVlc3RyYWwgJFxoYXR7cH0kIHBhcmEgdW4gdGFtYcOxbyBkZSBtdWVzdHJhIGRhZG8gbi4NCg0KYGBge3IgaXRlbV9iLCBpbmNsdWRlID0gVFJVRSwgZWNobyA9IFRSVUV9DQojIEl0ZW0gYg0KIyBDcmVhdGUgYSBmdW5jdGlvbiB0byBPYnRhaW4gYSByYW5kb20gc2FtcGxlIG9mIHRoZSBwb3B1bGF0aW9uICAoZXhhbXBsZSB3aXRoIDUwIHNhbXBsZXMpDQpyYW5kb21zYW1wbGUgPSBmdW5jdGlvbihuKXsNCiAgcyA9IHNhbXBsZShwb3B1bGF0aW9uLCBuLCByZXBsYWNlID0gVFJVRSkNCiAgcmV0dXJuIChzKQ0KfQ0KIyBDYWxjdWxhdGUgdGhlIGVzdGltYXRvciAncGhhdCcgZm9yIGEgZ2l2ZW4gc2l6ZSBvZiB0aGUgc2FtcGxlLg0KIyBGb3IgdGhpcyBjYXNlLCBpcyB0aGUgcmVsYXRpb24gYmV0d2VlbiB0aGUgc2ljayBvbmUgYWdhaW5zIHRoZSBwb3B1bGF0aW9uDQoNCnBoYXQgPSBmdW5jdGlvbihuKXsNCiAgcyA9IHJhbmRvbXNhbXBsZShuKQ0KICBwID0gcHJvcC50YWJsZSh0YWJsZShzKSkNCiAgbmFtZXMocCkgPSBjKCIxLXAiLCAicGhhdCIpDQogIHJldHVybihwWzJdKSAjIFJldHVybiBwaGF0DQp9DQojTGV0J3MgdHJ5IHRoZSBmdW5jdGlvbnMgZm9yIGRpZmZlcmVudCBzYW1wbGUgc2l6ZXMNCnYgPSBjKDEwLDMwLDUwLDc1LDEwMCwyMDAsNTAwLDEwMDAsMjAwMCkNCnNhcHBseSh2LCBwaGF0KQ0KYGBgDQoNCiMjIyBQdW50byBjDQoNCiogUmVwaXRhIGVsIGVzY2VuYXJpbyBhbnRlcmlvciAoYikgJG4gPSA1MDAkIHZlY2VzIHkgYW5hbGljZSBsb3MgcmVzdWx0YWRvcyBlbiBjdWFudG8gYWwgY29tcG9ydGFtaWVudG8gZGUgbG9zIDUwMCByZXN1bHRhZG9zIGRlbCBlc3RpbWFkb3IgJFxoYXR7cH0kLg0KICAqIMK/UXXDqSB0YW4gc2ltw6l0cmljb3MgbyBzZXNnYWRvcyBzb24gbG9zIHJlc3VsdGFkb3Mgb2J0ZW5pZG9zPw0KICAqIMK/UXXDqSBzZSBwdWVkZSBvYnNlcnZhciBlbiBjdWFudG8gYSBsYSB2YXJpYWJpbGlkYWQ/Lg0KICAqIFJlYWxpY2UgZW4gc3UgaW5mb3JtZSB1biBjb21lbnRhcmlvIHNvYnJlIGxvcyByZXN1bHRhZG9zIG9idGVuaWRvcy4NCg0KYGBge3IgaXRlbV9jLCBpbmNsdWRlID0gVFJVRSwgZWNobyA9IFRSVUV9DQojIEl0ZW0gYw0KIyBSZXBlYXQgdGhlIGFib3ZlIHdpdGggbiA9IDUwMA0KDQpncmFwaCA9IGZ1bmN0aW9uKG4pew0KICBtID0gNTAwDQogIHkgPSBtYXRyaXgocmFuZG9tc2FtcGxlKG4qbSksIG5jb2wgPSBuKQ0KICBwaGF0ID0gZnVuY3Rpb24odil7DQogIHN1bSh2KS9uDQogIH0NCiAgcGhhdDUgPSBhcHBseSh5LCAxLCBwaGF0KQ0KICBwYXIobWZyb3c9YygyLDIpKQ0KICBoaXN0KHBoYXQ1KQ0KICBib3hwbG90KHBoYXQ1KQ0KICBxcW5vcm0ocGhhdDUpDQogIHJldHVybihwaGF0NSkNCn0NCmcgPSBncmFwaCg1KQ0Kc3VtbWFyeShnKQ0Kc2hhcGlyby50ZXN0KGcpDQpgYGANCg0KU2UgdmVuIGVzcGFjaW9zIGVuIGxhIGdyw6FmaWNhIHBvcnF1ZSBsb3MgZGF0b3Mgbm8gc29uIGNvbnRpbnVvcyBzaW5vIGRpc2NyZXRvcy4gTG9zIHJlc3VsdGFkb3Mgc2UgdmVuIG3DoXMgc2ltw6l0cmljb3MgcXVlIGFzaW3DqXRyaWNvcywgYXVucXVlIGVzdMOhbiB1biBwb2NvIG3DoXMgYSBsYSBpenF1aWVyZGEgZGVsIGdyw6FmaWNvLCBwZXJvIHNlIG5vdGEgcXVlIGVuIGxvcyBleHRyZW1vcyBoYXkgbXVjaG8gbWVub3MgZGF0b3MgcXVlIGhhY2lhIGVsIGNlbnRybyBkZWwgbWlzbW8uICBUaWVuZSB1biB2YWxvciBwIG11eSBwZXF1ZcOxby4NCkxvcyByZXN1bHRhZG9zIHNvbiBwb2NvIHNlc2dhZG9zLCBwZXJvIHRpZW5lbiBtdWNoYSB2YXJpYWJpbGlkYWQgZGVudHJvIGRlbCByYW5nby4NCg0KIyMjIFB1bnRvIGQNCg0KKiBSZXBpdGEgbG9zIHB1bnRvcyBiIHkgYyBwYXJhIHRhbWHDsW9zIGRlIG11ZXN0cmEgJG49NSwgMTAsIDE1LCAyMCwgMzAsIDUwLCA2MCwgMTAwLCAyMDAsIDUwMCQuIENvbXBhcmUgbG9zIHJlc3VsdGFkb3Mgb2J0ZW5pZG9zIHBhcmEgbG9zIGRpZmVyZW50ZXMgdGFtYcOxb3MgZGUgbXVlc3RyYSBlbiBjdWFudG8gYSBsYSBub3JtYWxpZGFkLiBVdGlsaWNlIHBydWViYXMgZGUgYm9uZGFkIHkgYWp1c3RlIChzaGFwaXJvIHdpbGtzIDpzaGFwaXJvLnRlc3QoKSkgeSBtw6l0b2RvcyBncsOhZmljb3MgKGdyw6FmaWNvIGRlIG5vcm1hbGlkYWQ6IHFxbm9ybSgpKS4NCiAgKiBDb21lbnRlIGVuIHN1IGluZm9ybWUgbG9zIHJlc3VsdGFkb3Mgb2J0ZW5pZG9zDQoNCg0KYGBge3IgaXRlbV9kLCBpbmNsdWRlID0gVFJVRSwgZWNobyA9IEZBTFNFfQ0KIyBJdGVtIGQNCiMgUmVwZWF0IGZvciBuID0gNSwxMCwxNSwyMCwzMCw1MCw2MCwxMDAsMjAwLDUwMA0KZ3JhcGggPSBmdW5jdGlvbihuKXsNCiAgbSA9IDUwMA0KICB5ID0gbWF0cml4KHJhbmRvbXNhbXBsZShuKm0pLCBuY29sID0gbikNCiAgcGhhdCA9IGZ1bmN0aW9uKHYpew0KICAgIHN1bSh2KS9uDQogIH0NCiAgcGhhdDUgPSBhcHBseSh5LCAxLCBwaGF0KQ0KICBwID0gcm91bmQoc2hhcGlyby50ZXN0KHBoYXQ1KSRwLnZhbHVlLCA0KQ0KICB0aXRsZSA9IHBhc3RlICgibj0iLG4sInAtdmFsb3I9IiwgcCkNCiAgcGFyKG1mcm93PWMoMSwzKSkNCiAgaGlzdChwaGF0NSwgbWFpbiA9IHRpdGxlKQ0KICBib3hwbG90KHBoYXQ1LCBtYWluID0gdGl0bGUpDQogIHFxbm9ybShwaGF0NSwgbWFpbiA9IHRpdGxlKQ0KICBxcWxpbmUocGhhdDUsIGNvbCA9ICJyZWQiKQ0KICByZXR1cm4ocGhhdDUpDQp9DQp2ID0gYyg1LDEwLDE1LDIwLDMwLDUwLDYwLDEwMCwyMDAsNTAwKQ0KZm9yIChpIGluIHYpew0KICBncmFwaChpKQ0KfQ0KYGBgDQoNClNlIHB1ZWRlIGNvbXByb2JhciBjb24gZXN0ZSBjb21wb3J0YW1pZW50byBlbCBUZW9yZW1hIGRlbCBMw61taXRlIENlbnRyYWwsIHB1ZXMgYSBtZWRpZGEgcXVlIHZhIGF1bWVudGFuZG8gZWwgdGFtYcOxbyBkZSBsYSBtdWVzdHJhLCBsYSBkaXN0cmlidWNpw7NuIHNlIGhhY2UgbcOhcyBzaW3DqXRyaWNhIHkgdGllbmUgdW5hIGRpc3RyaWJ1Y2nDs24gbm9ybWFsLg0KDQojIyMgUHVudG8gZQ0KUmVwaXRhIHRvZGEgbGEgc2ltdWxhY2nDs24gKHB1bnRvcyBhIOKAkyBkKSwgcGVybyBhaG9yYSBwYXJhIGxvdGVzIGNvbiAkMTBcJSQgZGUgcGxhbnRhcyBlbmZlcm1hcyB5IGRlIG51ZXZvIHBhcmEgbG90ZXMgY29uIHVuICQ5MFwlJCBkZSBwbGFudGFzIGVuZmVybWFzLiBDb25jbHV5YSBzb2JyZSBsb3MgcmVzdWx0YWRvcyBkZWwgZWplcmNpY2lvLg0KDQpgYGB7ciBpdGVtX2UgLCBpbmNsdWRlID0gVFJVRSwgZWNobyA9IEZBTFNFfQ0KIyBJdGVtIGUNCiMgUGFydCBhDQojIENyZWF0aW9uIG9mIHRoZSBwb3B1bGF0aW9uIHNpY2svaGVhbHRoeSAxMCUvOTAlDQpwb3B1bGF0aW9uMiA9IGMocmVwKDEsMTAwKSwgcmVwKDAsOTAwKSkNCnRhYmxlKHBvcHVsYXRpb24yKSAgDQoNCiMgUGFydCBiDQojIENyZWF0ZSBhIGZ1bmN0aW9uIHRvIE9idGFpbiBhIHJhbmRvbSBzYW1wbGUgb2YgdGhlIHBvcHVsYXRpb24NCnJhbmRvbXNhbXBsZSA9IGZ1bmN0aW9uKG4pew0KICBzID0gc2FtcGxlKHBvcHVsYXRpb24sIG4sIHJlcGxhY2UgPSBUUlVFKQ0KICByZXR1cm4gKHMpDQp9DQojIENhbGN1bGF0ZSB0aGUgZXN0aW1hdG9yICdwaGF0JyBmb3IgYSBnaXZlbiBzaXplIG9mIHRoZSBzYW1wbGUuDQojIEZvciB0aGlzIGNhc2UsIGlzIHRoZSByZWxhdGlvbiBiZXR3ZWVuIHRoZSBzaWNrIG9uZSBhZ2FpbnMgdGhlIHBvcHVsYXRpb24NCg0KcGhhdCA9IGZ1bmN0aW9uKG4pew0KICBzID0gcmFuZG9tc2FtcGxlKG4pDQogIHAgPSBwcm9wLnRhYmxlKHRhYmxlKHMpKQ0KICBuYW1lcyhwKSA9IGMoIjEtcCIsICJwaGF0IikNCiAgcmV0dXJuKHBbMl0pICMgUmV0dXJuIHBoYXQNCn0NCiNMZXQncyB0cnkgdGhlIGZ1bmN0aW9ucyBmb3IgZGlmZmVyZW50IHNhbXBsZSBzaXplcw0KdiA9IGMoMTAsMzAsNTAsNzUsMTAwLDIwMCw1MDAsMTAwMCwyMDAwKQ0Kc2FwcGx5KHYsIHBoYXQpDQoNCiMgUGFydCBjDQojIFJlcGVhdCB0aGUgYWJvdmUgd2l0aCBuID0gNTAwDQpncmFwaCA9IGZ1bmN0aW9uKG4pew0KICBtID0gNTAwDQogIHkgPSBtYXRyaXgocmFuZG9tc2FtcGxlKG4qbSksIG5jb2wgPSBuKQ0KICBwaGF0ID0gZnVuY3Rpb24odil7DQogIHN1bSh2KS9uDQogIH0NCiAgcGhhdDUgPSBhcHBseSh5LCAxLCBwaGF0KQ0KICBwYXIobWZyb3c9YygyLDIpKQ0KICBoaXN0KHBoYXQ1KQ0KICBib3hwbG90KHBoYXQ1KQ0KICBxcW5vcm0ocGhhdDUpDQogIHJldHVybihwaGF0NSkNCn0NCg0KIyBQYXJ0IGQNCiMgUmVwZWF0IGZvciBuID0gNSwxMCwxNSwyMCwzMCw1MCw2MCwxMDAsMjAwLDUwMA0KZ3JhcGggPSBmdW5jdGlvbihuKXsNCiAgbSA9IDUwMA0KICB5ID0gbWF0cml4KHJhbmRvbXNhbXBsZShuKm0pLCBuY29sID0gbikNCiAgcGhhdCA9IGZ1bmN0aW9uKHYpew0KICAgIHN1bSh2KS9uDQogIH0NCiAgcGhhdDUgPSBhcHBseSh5LCAxLCBwaGF0KQ0KICBwID0gcm91bmQoc2hhcGlyby50ZXN0KHBoYXQ1KSRwLnZhbHVlLCA0KQ0KICB0aXRsZSA9IHBhc3RlICgibj0iLG4sInAtdmFsb3I9IiwgcCkNCiAgI3BhcihtZnJvdz1jKDIsMikpDQogICNoaXN0KHBoYXQ1LCBtYWluID0gdGl0bGUpDQogICNib3hwbG90KHBoYXQ1LCBtYWluID0gdGl0bGUpDQogIHFxbm9ybShwaGF0NSwgbWFpbiA9IHRpdGxlKQ0KICBxcWxpbmUocGhhdDUsIGNvbCA9ICJyZWQiKQ0KICBzaGFwaXJvLnRlc3QocGhhdDUpDQogIHJldHVybihwaGF0NSkNCn0NCnYgPSBjKDUsMTAsMTUsMjAsMzAsNTAsNjAsMTAwLDIwMCw1MDApDQpmb3IgKGkgaW4gdil7DQogIGdyYXBoKGkpDQp9DQoNCmBgYA0KDQoNCkNvbiBjYW50aWRhZGVzIHBlcXVlw7FhcyBlbiBsYXMgcHJpbWVyYXMgbXVlc3RyYXMsIHNlIG5vdGEgcXVlIGxhIGRpc3RyaWJ1Y2nDs24gbm8gZXMgbm9ybWFsLCBjb25kaWNpw7NuIG5lY2VzYXJpYSBwYXJhIHBvZGVyIHZhbGlkYXIgZWwgVGVvcmVtYSBkZWwgTMOtbWl0ZSBDZW50cmFsLiAgQSBtZWRpZGEgcXVlIGF1bWVudGEgZWwgdGFtYcOxbyBkZSBsYSBtdWVzdHJhLCBzZSB2ZSBxdWUgbGEgZGlzdHJpYnVjacOzbiBzZSBjb21wb3J0YSBjb21vIHVuYSBkaXN0cmlidWNpw7NuIG5vcm1hbC4gU2Ugbm90YSBjb21vIGxhIGxpbmVhIHJvamEgZXN0w6Egc29icmUgbGEgbWF5b3LDrWEgZGUgbG9zIHB1bnRvcywgcXVlIHNvbiB2YWxvcmVzIGRlIGxhIG11ZXN0cmEsIGxvIHF1ZSBkZW11ZXN0cmEgcXVlIHNlIGNvbXBvcnRhIGNvbW8gdW5hIGRpc3RyaWJ1Y2nDs24gbm9ybWFsLiA=