Asignacion de variables
x <- 3
y <- 2
Impresión de resultados
x
## [1] 3
y
## [1] 2
Operaciones Aritmétricas
suma <- x+y
suma
## [1] 5
resta <- x-y
resta
## [1] 1
multiplicación <- x*y
multiplicación
## [1] 6
division <- x/y
division
## [1] 1.5
residuo <- x%%y
residuo
## [1] 1
division_entera <- x%/%y
division_entera
## [1] 1
potencia <- x^y
potencia
## [1] 9
Funcion matematica
raiz_cuadrada <- sqrt(x)
raiz_cuadrada
## [1] 1.732051
raiz_cubica <- x^(1/3)
raiz_cubica
## [1] 1.44225
exponencial <- exp(1)
exponencial
## [1] 2.718282
absoluto <- abs(x)
absoluto
## [1] 3
signo <- sign(0)
signo
## [1] 0
redondeo_arriba <- ceiling(division)
redondeo_arriba
## [1] 2
redondeo_abajo <- floor(division)
redondeo_abajo
## [1] 1
truncar <- trunc(division)
truncar
## [1] 1
Constantes
pi
## [1] 3.141593
radio <- 5
area_circulo <- pi*radio**2
area_circulo
## [1] 78.53982
Vectores
a <- c(1,2,3,4,5)
a
## [1] 1 2 3 4 5
b <- c(1:100)
b
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
## [19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
## [37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
## [55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
## [73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
## [91] 91 92 93 94 95 96 97 98 99 100
c <- seq(1,5, by=0.5)
c
## [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
d <- rep(1:2, times=3)
d
## [1] 1 2 1 2 1 2
e <- rep(1:2, each=3)
e
## [1] 1 1 1 2 2 2
nombre <- c("Juan", "Sara", "Pedro")
nombre
## [1] "Juan" "Sara" "Pedro"
nombre <- sort(nombre, decreasing = TRUE)
nombre
## [1] "Sara" "Pedro" "Juan"
f <- c(1,2,3,4,5)
suma_vectores <- a+f
suma_vectores
## [1] 2 4 6 8 10
Graficar
año <- c(2020:2025)
PIB <- c(8744, 10250, 11500, 13800 , 14034, 13967)
plot(año,PIB, main="PIB per cápita en México", xlab="Año", ylab="USD",
type="b")

Tablas
persona <- c("Raúl", "Miguel", "Roberta", "Samanta", "Junior", "Meme")
altura <- c(1.80, 1.74, 1.64, 1.60, 1.69, 1.75)
peso <- c(80, 78, 55, 57, 62, 525)
df <- data.frame(persona,altura,peso)
df
## persona altura peso
## 1 Raúl 1.80 80
## 2 Miguel 1.74 78
## 3 Roberta 1.64 55
## 4 Samanta 1.60 57
## 5 Junior 1.69 62
## 6 Meme 1.75 525
max(df$peso)
## [1] 525
min(df$altura)
## [1] 1.6
df[1, ]
## persona altura peso
## 1 Raúl 1.8 80
df[ ,1]
## [1] "Raúl" "Miguel" "Roberta" "Samanta" "Junior" "Meme"
df[2,2]
## [1] 1.74
summary(df)
## persona altura peso
## Length:6 Min. :1.600 Min. : 55.00
## Class :character 1st Qu.:1.653 1st Qu.: 58.25
## Mode :character Median :1.715 Median : 70.00
## Mean :1.703 Mean :142.83
## 3rd Qu.:1.748 3rd Qu.: 79.50
## Max. :1.800 Max. :525.00
str(df)
## 'data.frame': 6 obs. of 3 variables:
## $ persona: chr "Raúl" "Miguel" "Roberta" "Samanta" ...
## $ altura : num 1.8 1.74 1.64 1.6 1.69 1.75
## $ peso : num 80 78 55 57 62 525
Logico: TRUE FALSE
Factor: Niveles
Medidas de Tendencia Central
Medidas de Dispersión
Rango, Varianza, Desviación Estándar, Coeficiente de Variación
var(df$peso)
## [1] 35163.77
sd(df$peso)
## [1] 187.52
sd(df$altura)
## [1] 0.07447595
cv_altura <- sd(df$altura)/mean(df$altura)*100
cv_altura
## [1] 4.372365
cv_peso <- sd(df$peso)/mean(df$peso)*100
cv_peso
## [1] 131.2859
Medidas de Posición
Percentiles y Cuartiles
boxplot(df$altura)

boxplot(df$peso)

df$IMC <- peso/(altura**2)
Regresión Lineal
Importar la base de datos de csv
data <- read.csv("/Users/paolasalas/Desktop/rentadebicis.csv")
Usar file.choose()
Entender la base de datos
str(data)
## 'data.frame': 10886 obs. of 14 variables:
## $ hora : int 0 1 2 3 4 5 6 7 8 9 ...
## $ dia : int 1 1 1 1 1 1 1 1 1 1 ...
## $ mes : int 1 1 1 1 1 1 1 1 1 1 ...
## $ año : int 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 ...
## $ estacion : int 1 1 1 1 1 1 1 1 1 1 ...
## $ dia_de_la_semana : int 6 6 6 6 6 6 6 6 6 6 ...
## $ asueto : int 0 0 0 0 0 0 0 0 0 0 ...
## $ temperatura : num 9.84 9.02 9.02 9.84 9.84 ...
## $ sensacion_termica : num 14.4 13.6 13.6 14.4 14.4 ...
## $ humedad : int 81 80 80 75 75 75 80 86 75 76 ...
## $ velocidad_del_viento : num 0 0 0 0 0 ...
## $ rentas_de_no_registrados: int 3 8 5 3 0 0 2 1 1 8 ...
## $ rentas_de_registrados : int 13 32 27 10 1 1 0 2 7 6 ...
## $ rentas_totales : int 16 40 32 13 1 1 2 3 8 14 ...
summary(data)
## hora dia mes año
## Min. : 0.00 Min. : 1.000 Min. : 1.000 Min. :2011
## 1st Qu.: 6.00 1st Qu.: 5.000 1st Qu.: 4.000 1st Qu.:2011
## Median :12.00 Median :10.000 Median : 7.000 Median :2012
## Mean :11.54 Mean : 9.993 Mean : 6.521 Mean :2012
## 3rd Qu.:18.00 3rd Qu.:15.000 3rd Qu.:10.000 3rd Qu.:2012
## Max. :23.00 Max. :19.000 Max. :12.000 Max. :2012
## estacion dia_de_la_semana asueto temperatura
## Min. :1.000 Min. :1.000 Min. :0.00000 Min. : 0.82
## 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:0.00000 1st Qu.:13.94
## Median :3.000 Median :4.000 Median :0.00000 Median :20.50
## Mean :2.507 Mean :4.014 Mean :0.02857 Mean :20.23
## 3rd Qu.:4.000 3rd Qu.:6.000 3rd Qu.:0.00000 3rd Qu.:26.24
## Max. :4.000 Max. :7.000 Max. :1.00000 Max. :41.00
## sensacion_termica humedad velocidad_del_viento
## Min. : 0.76 Min. : 0.00 Min. : 0.000
## 1st Qu.:16.66 1st Qu.: 47.00 1st Qu.: 7.002
## Median :24.24 Median : 62.00 Median :12.998
## Mean :23.66 Mean : 61.89 Mean :12.799
## 3rd Qu.:31.06 3rd Qu.: 77.00 3rd Qu.:16.998
## Max. :45.45 Max. :100.00 Max. :56.997
## rentas_de_no_registrados rentas_de_registrados rentas_totales
## Min. : 0.00 Min. : 0.0 Min. : 1.0
## 1st Qu.: 4.00 1st Qu.: 36.0 1st Qu.: 42.0
## Median : 17.00 Median :118.0 Median :145.0
## Mean : 36.02 Mean :155.6 Mean :191.6
## 3rd Qu.: 49.00 3rd Qu.:222.0 3rd Qu.:284.0
## Max. :367.00 Max. :886.0 Max. :977.0
# Generar el Modelo
regresion <- lm(rentas_totales~factor(hora)+factor(dia)+factor(mes)
+año+factor(dia_de_la_semana)+sensacion_termica
+humedad+velocidad_del_viento, data=data)
summary(regresion)
##
## Call:
## lm(formula = rentas_totales ~ factor(hora) + factor(dia) + factor(mes) +
## año + factor(dia_de_la_semana) + sensacion_termica + humedad +
## velocidad_del_viento, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -370.40 -61.37 -6.55 51.96 440.24
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.762e+05 3.972e+03 -44.364 < 2e-16 ***
## factor(hora)1 -1.764e+01 6.736e+00 -2.618 0.008845 **
## factor(hora)2 -2.765e+01 6.761e+00 -4.089 4.36e-05 ***
## factor(hora)3 -3.855e+01 6.826e+00 -5.648 1.66e-08 ***
## factor(hora)4 -3.908e+01 6.797e+00 -5.749 9.19e-09 ***
## factor(hora)5 -2.282e+01 6.762e+00 -3.375 0.000741 ***
## factor(hora)6 3.597e+01 6.754e+00 5.325 1.03e-07 ***
## factor(hora)7 1.697e+02 6.745e+00 25.156 < 2e-16 ***
## factor(hora)8 3.132e+02 6.735e+00 46.498 < 2e-16 ***
## factor(hora)9 1.636e+02 6.738e+00 24.284 < 2e-16 ***
## factor(hora)10 1.075e+02 6.759e+00 15.899 < 2e-16 ***
## factor(hora)11 1.333e+02 6.800e+00 19.598 < 2e-16 ***
## factor(hora)12 1.718e+02 6.844e+00 25.099 < 2e-16 ***
## factor(hora)13 1.666e+02 6.896e+00 24.165 < 2e-16 ***
## factor(hora)14 1.485e+02 6.934e+00 21.420 < 2e-16 ***
## factor(hora)15 1.586e+02 6.943e+00 22.839 < 2e-16 ***
## factor(hora)16 2.223e+02 6.933e+00 32.064 < 2e-16 ***
## factor(hora)17 3.792e+02 6.893e+00 55.017 < 2e-16 ***
## factor(hora)18 3.461e+02 6.853e+00 50.497 < 2e-16 ***
## factor(hora)19 2.377e+02 6.800e+00 34.956 < 2e-16 ***
## factor(hora)20 1.563e+02 6.768e+00 23.096 < 2e-16 ***
## factor(hora)21 1.067e+02 6.745e+00 15.822 < 2e-16 ***
## factor(hora)22 7.167e+01 6.734e+00 10.642 < 2e-16 ***
## factor(hora)23 3.169e+01 6.728e+00 4.710 2.50e-06 ***
## factor(dia)2 4.661e+00 6.010e+00 0.776 0.438043
## factor(dia)3 1.098e+01 6.018e+00 1.824 0.068110 .
## factor(dia)4 1.455e+01 6.007e+00 2.421 0.015479 *
## factor(dia)5 9.545e+00 6.006e+00 1.589 0.112063
## factor(dia)6 1.350e+01 6.009e+00 2.247 0.024649 *
## factor(dia)7 2.588e+00 6.003e+00 0.431 0.666368
## factor(dia)8 5.630e-02 5.999e+00 0.009 0.992512
## factor(dia)9 1.175e+01 6.008e+00 1.956 0.050487 .
## factor(dia)10 9.053e+00 6.022e+00 1.503 0.132788
## factor(dia)11 1.372e+01 6.034e+00 2.273 0.023018 *
## factor(dia)12 1.172e+01 6.016e+00 1.947 0.051503 .
## factor(dia)13 1.252e+01 6.023e+00 2.079 0.037677 *
## factor(dia)14 1.115e+01 6.010e+00 1.855 0.063574 .
## factor(dia)15 1.767e+01 6.002e+00 2.944 0.003244 **
## factor(dia)16 1.196e+01 6.005e+00 1.991 0.046509 *
## factor(dia)17 2.738e+01 6.007e+00 4.559 5.20e-06 ***
## factor(dia)18 8.182e+00 6.035e+00 1.356 0.175251
## factor(dia)19 9.357e+00 6.002e+00 1.559 0.119009
## factor(mes)2 1.029e+01 4.855e+00 2.119 0.034076 *
## factor(mes)3 3.055e+01 5.131e+00 5.954 2.70e-09 ***
## factor(mes)4 5.394e+01 5.460e+00 9.879 < 2e-16 ***
## factor(mes)5 8.399e+01 6.095e+00 13.781 < 2e-16 ***
## factor(mes)6 7.555e+01 6.780e+00 11.143 < 2e-16 ***
## factor(mes)7 5.105e+01 7.495e+00 6.811 1.02e-11 ***
## factor(mes)8 6.345e+01 7.179e+00 8.838 < 2e-16 ***
## factor(mes)9 8.809e+01 6.600e+00 13.349 < 2e-16 ***
## factor(mes)10 1.013e+02 5.828e+00 17.385 < 2e-16 ***
## factor(mes)11 8.487e+01 5.068e+00 16.745 < 2e-16 ***
## factor(mes)12 8.084e+01 5.032e+00 16.066 < 2e-16 ***
## año 8.760e+01 1.975e+00 44.359 < 2e-16 ***
## factor(dia_de_la_semana)2 1.931e+00 3.675e+00 0.526 0.599243
## factor(dia_de_la_semana)3 4.029e+00 3.662e+00 1.100 0.271250
## factor(dia_de_la_semana)4 6.044e+00 3.671e+00 1.646 0.099719 .
## factor(dia_de_la_semana)5 1.158e+01 3.695e+00 3.135 0.001725 **
## factor(dia_de_la_semana)6 1.360e+01 3.647e+00 3.730 0.000193 ***
## factor(dia_de_la_semana)7 -5.067e+00 3.652e+00 -1.387 0.165368
## sensacion_termica 4.347e+00 2.519e-01 17.261 < 2e-16 ***
## humedad -1.276e+00 6.312e-02 -20.217 < 2e-16 ***
## velocidad_del_viento -7.129e-01 1.297e-01 -5.497 3.95e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 101.5 on 10823 degrees of freedom
## Multiple R-squared: 0.6877, Adjusted R-squared: 0.6859
## F-statistic: 384.4 on 62 and 10823 DF, p-value: < 2.2e-16
Conclusiones
Modelo altamente significativo con un poder explicativo del
69%.
Efecto del horario: Picos de rentas en horarios de 8 am y 5-6
pm.
Efecto mensual con fuerte estacionalidad.
Clima afecta de forma positiva y la humedad y velocidad del
viento
LS0tCnRpdGxlOiAiQ29tYW5kb3MgYmFzaWNvcyIKYXV0aG9yOiAiUGFvbGEgU2FsYXMiCmRhdGU6ICIyMDI2LTAyLTE3IgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICB0aGVtZTogY29zbW8KCi0tLQojIEFzaWduYWNpb24gZGUgdmFyaWFibGVzCmBgYHtyfQp4IDwtIDMKeSA8LSAyIApgYGAKCiMgSW1wcmVzacOzbiBkZSByZXN1bHRhZG9zCmBgYHtyfQp4CnkKYGBgCgojIE9wZXJhY2lvbmVzIEFyaXRtw6l0cmljYXMKYGBge3J9CnN1bWEgPC0geCt5CnN1bWEKCnJlc3RhIDwtIHgteQpyZXN0YQoKbXVsdGlwbGljYWNpw7NuIDwtIHgqeQptdWx0aXBsaWNhY2nDs24KCmRpdmlzaW9uIDwtIHgveQpkaXZpc2lvbiAKCnJlc2lkdW8gPC0geCUleQpyZXNpZHVvIAoKZGl2aXNpb25fZW50ZXJhIDwtIHglLyV5CmRpdmlzaW9uX2VudGVyYSAKCnBvdGVuY2lhIDwtIHheeQpwb3RlbmNpYQpgYGAKCiMgRnVuY2lvbiBtYXRlbWF0aWNhCmBgYHtyfQpyYWl6X2N1YWRyYWRhIDwtIHNxcnQoeCkKcmFpel9jdWFkcmFkYQpyYWl6X2N1YmljYSA8LSB4XigxLzMpCnJhaXpfY3ViaWNhCmV4cG9uZW5jaWFsIDwtIGV4cCgxKQpleHBvbmVuY2lhbAphYnNvbHV0byA8LSBhYnMoeCkKYWJzb2x1dG8Kc2lnbm8gPC0gc2lnbigwKQpzaWdubwpyZWRvbmRlb19hcnJpYmEgPC0gY2VpbGluZyhkaXZpc2lvbikKcmVkb25kZW9fYXJyaWJhCnJlZG9uZGVvX2FiYWpvIDwtIGZsb29yKGRpdmlzaW9uKQpyZWRvbmRlb19hYmFqbwp0cnVuY2FyIDwtIHRydW5jKGRpdmlzaW9uKQp0cnVuY2FyCmBgYAoKIyBDb25zdGFudGVzCmBgYHtyfQpwaQpyYWRpbyA8LSA1CmFyZWFfY2lyY3VsbyA8LSBwaSpyYWRpbyoqMgphcmVhX2NpcmN1bG8KYGBgCgojIFZlY3RvcmVzCmBgYHtyfQphIDwtIGMoMSwyLDMsNCw1KQphCmIgPC0gYygxOjEwMCkKYgpjIDwtIHNlcSgxLDUsIGJ5PTAuNSkKYwpkIDwtIHJlcCgxOjIsIHRpbWVzPTMpCmQKZSA8LSByZXAoMToyLCBlYWNoPTMpCmUKbm9tYnJlIDwtIGMoIkp1YW4iLCAiU2FyYSIsICJQZWRybyIpCm5vbWJyZQpub21icmUgPC0gc29ydChub21icmUsIGRlY3JlYXNpbmcgPSBUUlVFKQpub21icmUKZiA8LSBjKDEsMiwzLDQsNSkKc3VtYV92ZWN0b3JlcyA8LSBhK2YKc3VtYV92ZWN0b3JlcwpgYGAKCiMgR3JhZmljYXIKYGBge3J9CmHDsW8gPC0gYygyMDIwOjIwMjUpClBJQiA8LSBjKDg3NDQsIDEwMjUwLCAxMTUwMCwgMTM4MDAgLCAxNDAzNCwgMTM5NjcpCnBsb3QoYcOxbyxQSUIsIG1haW49IlBJQiBwZXIgY8OhcGl0YSBlbiBNw6l4aWNvIiwgeGxhYj0iQcOxbyIsIHlsYWI9IlVTRCIsCiAgICAgdHlwZT0iYiIpCmBgYAoKIyBUYWJsYXMKYGBge3J9CnBlcnNvbmEgPC0gYygiUmHDumwiLCAiTWlndWVsIiwgIlJvYmVydGEiLCAiU2FtYW50YSIsICJKdW5pb3IiLCAiTWVtZSIpCmFsdHVyYSA8LSBjKDEuODAsIDEuNzQsIDEuNjQsIDEuNjAsIDEuNjksIDEuNzUpCnBlc28gPC0gYyg4MCwgNzgsIDU1LCA1NywgNjIsIDUyNSkKZGYgPC0gZGF0YS5mcmFtZShwZXJzb25hLGFsdHVyYSxwZXNvKQpkZgptYXgoZGYkcGVzbykKbWluKGRmJGFsdHVyYSkKZGZbMSwgXQpkZlsgLDFdCmRmWzIsMl0Kc3VtbWFyeShkZikKc3RyKGRmKQpgYGAKCiMgTG9naWNvOiBUUlVFIEZBTFNFCiMgRmFjdG9yOiBOaXZlbGVzCiMgTWVkaWRhcyBkZSBUZW5kZW5jaWEgQ2VudHJhbAoKIyBNZWRpYSAoUHJvbWVkaW8pLCBNZWRpYW5hIHkgTW9kYQpgYGB7cn0KbWVhbihkZiRwZXNvKQptZWRpYW4oZGYkYWx0dXJhKQpgYGAKCiMgTWVkaWRhcyBkZSBEaXNwZXJzacOzbgojIFJhbmdvLCBWYXJpYW56YSwgRGVzdmlhY2nDs24gRXN0w6FuZGFyLCBDb2VmaWNpZW50ZSBkZSBWYXJpYWNpw7NuCmBgYHtyfQp2YXIoZGYkcGVzbykKc2QoZGYkcGVzbykKc2QoZGYkYWx0dXJhKQpjdl9hbHR1cmEgPC0gc2QoZGYkYWx0dXJhKS9tZWFuKGRmJGFsdHVyYSkqMTAwCmN2X2FsdHVyYQpjdl9wZXNvIDwtIHNkKGRmJHBlc28pL21lYW4oZGYkcGVzbykqMTAwCmN2X3Blc28KYGBgCgojIE1lZGlkYXMgZGUgUG9zaWNpw7NuCiMgUGVyY2VudGlsZXMgeSBDdWFydGlsZXMKYGBge3J9CmJveHBsb3QoZGYkYWx0dXJhKQpib3hwbG90KGRmJHBlc28pCmRmJElNQyA8LSBwZXNvLyhhbHR1cmEqKjIpCmBgYAoKIyBSZWdyZXNpw7NuIExpbmVhbAojIEltcG9ydGFyIGxhIGJhc2UgZGUgZGF0b3MgZGUgY3N2CmBgYHtyfQpkYXRhIDwtIHJlYWQuY3N2KCIvVXNlcnMvcGFvbGFzYWxhcy9EZXNrdG9wL3JlbnRhZGViaWNpcy5jc3YiKQpgYGAKCiMgVXNhciBmaWxlLmNob29zZSgpCiMgRW50ZW5kZXIgbGEgYmFzZSBkZSBkYXRvcwpgYGB7cn0Kc3RyKGRhdGEpCnN1bW1hcnkoZGF0YSkKIyBHZW5lcmFyIGVsIE1vZGVsbwpyZWdyZXNpb24gPC0gbG0ocmVudGFzX3RvdGFsZXN+ZmFjdG9yKGhvcmEpK2ZhY3RvcihkaWEpK2ZhY3RvcihtZXMpCiAgICAgICAgICAgICAgICArYcOxbytmYWN0b3IoZGlhX2RlX2xhX3NlbWFuYSkrc2Vuc2FjaW9uX3Rlcm1pY2EKICAgICAgICAgICAgICAgICtodW1lZGFkK3ZlbG9jaWRhZF9kZWxfdmllbnRvLCBkYXRhPWRhdGEpCnN1bW1hcnkocmVncmVzaW9uKQpgYGAKCiMgQ29uY2x1c2lvbmVzCiMgTW9kZWxvIGFsdGFtZW50ZSBzaWduaWZpY2F0aXZvIGNvbiB1biBwb2RlciBleHBsaWNhdGl2byBkZWwgNjklLgojIEVmZWN0byBkZWwgaG9yYXJpbzogUGljb3MgZGUgcmVudGFzIGVuIGhvcmFyaW9zIGRlIDggYW0geSA1LTYgcG0uCiMgRWZlY3RvIG1lbnN1YWwgY29uIGZ1ZXJ0ZSBlc3RhY2lvbmFsaWRhZC4KIyBDbGltYSBhZmVjdGEgZGUgZm9ybWEgcG9zaXRpdmEgeSBsYSBodW1lZGFkIHkgdmVsb2NpZGFkIGRlbCB2aWVudG8KIyBkZSBmb3JtYSBuZWdhdGl2YS4KYGBge3J9CmRhdG9zX251ZXZvcyA8LSBkYXRhLmZyYW1lKGhvcmE9MTIsIGRpYT0xLCBtZXM9MToxMiwgYcOxbz0yMDEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFfZGVfbGFfc2VtYW5hPTEsIHNlbnNhY2lvbl90ZXJtaWNhPTI0LCBodW1lZGFkPTYyLAogICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWxvY2lkYWRfZGVsX3ZpZW50bz0xMykKcHJlZGljdChyZWdyZXNpb24sIGRhdG9zX251ZXZvcykKCmBgYAoK