Política Pública Pueblos Mágicos
Desde la década de los noventa, el modelo de desarrollo conocido como “Nueva ruralidad“ fomentó en América Latina el implemento de políticas públicas a fin de diversificar las actividades económicas bajo la premisa de combatir la pobreza en contextos rurales (Rosado y González, 2016).
En dicho tenor, el Programa de Pueblos Mágicos de México, es una política pública que desde inicios de la década del 2000 buscaba impulsar el turismo como una herramienta que podría apoyar en el alcance de un desarrollo sostenible para las comunidades rurales del país. Dicho programa, consistía[1] en otorgar apoyo financiero a las cabeceras municipales que contaran con algún tipo de patrimonio biocultural que permitiera justificar su “magia” y así, poder mejorar la oferta e infraestructura (Madrid, 2016).
Tras dieciocho años de ejecución, y un total de 121 localidades declaradas “Pueblo Mágico”, los gobiernos locales e industria turística lo consideran como una iniciativa exitosa que ha permitido el desarrollo económico y bienestar social a partir del número de visitantes, ingresos y empleos generados en estos sitios (Secretaría de Turismo, 2020).
Con miras a un desarrollo sostenible, el éxito del programa es cuestionable si solo se prioriza el beneficio económico y se es permisivo con el replicamiento de impactos socio-ambientales típicos del turismo de masas en los Pueblos Mágicos, tales como la saturación del espacio público, injusta distribución de la riqueza, afectaciones directas al patrimonio, daño al recurso natural, homogenización de los destinos, incremento de los residuos sólidos y segregación social (Davidson, 1998; Mason, 2008)
A partir de ello, la intención del presente proyecto, es analizar cuantitativamente las condiciones socioeconómicas, medioambientales y de infraestructura en seis municipios con nombramiento de Pueblo Mágico a fin de delimitar los cambios generados a partir de la entrada en vigor del programa.
getwd
setwd("C:/RSC/S12")
rm(list=ls(all=T))
basecom <- read.csv("BF.csv", header=T)
En primer lugar, se despliega en gráficas de barras la evolución del crecimiento poblacional de los 6 Pueblos Mágicos seleccionados. Cabe recordar que el programa “Pueblos Mágicos” entró en vigor en el año 2001, por lo que se revisó el crecimiento poblacional del año previo (2000), para observar los cambios en dicha variable, a raíz del inicio del programa. En resumen, se eligieron los años 2000, 2005 y 2010 para observar el crecimiento poblacional en Tepoztlán, Huautla de Jimenez, Cuetzalan del Progreso, Zacatlán, Ezequiel Montes y Tequisquiapan.
Pob2000<-c(34055, 33130, 46682, 71985, 30502, 55265)
names(Pob2000)<-tabla1$PUEBLO
barplot(Pob2000, main="Población en el año 2000", xlab="Pueblos Mágicos",ylab="Cantidad de Población",col=c("lightblue","blue","yellow","red","green","purple"))

NA
Pob2005<-c(39463,33810,50352,75078,32941,59627)
names(Pob2005)<-tabla1$PUEBLO
barplot(Pob2005, main="Población en el año 2005", xlab="Pueblos Mágicos",ylab="Cantidad de Población",col=c("lightblue","blue","yellow","red","green","purple"))

Pob2010<-c(45906,34747,54202,78362,35716,64613)
Warning messages:
1: In readChar(file, size, TRUE) : truncating string with embedded nuls
2: In readChar(file, size, TRUE) : truncating string with embedded nuls
3: In readChar(file, size, TRUE) : truncating string with embedded nuls
4: In readChar(file, size, TRUE) : truncating string with embedded nuls
names(Pob2010)<-tabla1$PUEBLO
barplot(Pob2010, main="Población en el año 2010", xlab="Pueblos Mágicos",ylab="Cantidad de Población",col=c("lightblue","blue","yellow","red","green","purple"))

En el caso de Tepoztlán, se observa un crecimiento poblacional sostenido, a partir de la entrada en vigor del programa “Pueblos Mágicos”. De acuerdo con Guzmán y León (2005), esto puede deberse al desarrollo turístico que ha atraído a un gran número de extranjeros, los cuales eligieron establecer en Tepoztlán su lugar de residencia. Por otra parte, si se les compara con el resto de los pueblos elegidos, tanto Huautla de Jiménez como Ezequiel Montes son los dos territorios con menor cantidad de población; sin embargo, éste último registró un mayor incremento poblacional en 2010. Por su parte, Zacatlán es el pueblo mágico con mayor cantidad de población, cuestión que puede estar relacionada con el tamaño de su superficie, la cual equivale a 489.3 km². En este tenor, Tequisquiapan cuenta con una superficie territorial de 343.6 km², lo cual también puede explicar que sea el segundo pueblo con mayor cantidad de población de nuestra muestra. Finalmente, Cuetzalan del Progreso presentó un incremento poblacional del 7.8%, en 2005, con respecto al año 2000 y, para el año 2010, el incremento fue del 14.46%
Producción de la actividad turística
Los Censos económicos en México, generan indicadores, con información sobre producción y comercialización de bienes y mercancías, así como de la prestación de servicios.En este apartado se analizará la producción bruta total que se refiere al valor de todos los bienes y servicios producidos o comercializados por la unidad económica como resultado del ejercicio de sus actividades. La siguiente tabla muestra la Producción bruta total del Sector Económico de servicios de Alojamiento temporal y preparación de alimentos y bebidas.
basecom$CVE_MUN<-as.factor(basecom$CVE_MUN2)
basecom$CVE_MUN=factor(basecom$CVE_MUN2,levels=levels(basecom$CVE_MUN),labels = c("Tepoztlán","Huautla de Jiménez","Cuetzalán del Progreso","Zacatlán","Ezequiel Montes","Tequisquiapán"),ordered=F)
tabla1<-basecom[,217:223]
tabla1<-as.data.frame(tabla1)
tabla1
NA
La siguiente gráfica señala el cambio de está Producción Bruta Total durante 2004,2009 y 2014 en los destinos seleccionados.
tabla1$CVE_MUN2<-as.factor(tabla1$CVE_MUN2)
tabla1$CVE_MUN2=factor(tabla1$CVE_MUN2,levels=levels(tabla1$CVE_MUN2),labels = c("Tepoztlán","Huautla de Jiménez","Cuetzalán del Progreso","Zacatlán","Ezequiel Montes","Tequisquiapán"),ordered=F)
barplot(Producción,beside=T,xlab='Pueblos Mágicos', ylab='Producción bruta total',col=c("lightblue","blue","yellow"),ylim=c(0,150000))
legend(x = "topright", legend = c("2004", "2009","2014"), fill = c("lightblue", "blue","yellow"),
title = "Años")

Como pudimos observar, a excepción del Municipio de Huautla de Jiménez, todos los municipios experimentaron un incremento con respecto al año anterior.La siguiente tabla muestra la tasa de variación positiva de cada uno de ellos. El promedio de estas tasas de variación es 137%, es que el desempeño del sector turístico mejoró ampliamente durante esa década. Aunque, es importante mencionar que su inclusión en el programa de “Pueblos Mágicos,” difiere en años, incluso antes de este periodo.
| Tepoztlán |
224.2622 |
| Huautla de Jiménez |
-46.34955 |
| Cuetzalán del Progreso |
91.2418 |
| Zacatlán |
193.1157 |
| Ezequiel Montes |
280.4798 |
| Tequisquiapán |
79.2885 |
(tabla1[1,4]/tabla1[1,2]-1)*100
[1] 224.2622
(tabla1[2,4]/tabla1[2,2]-1)*100
[1] -46.34955
(tabla1[3,4]/tabla1[3,2]-1)*100
[1] 91.2418
(tabla1[4,4]/tabla1[4,2]-1)*100
[1] 193.1157
(tabla1[5,4]/tabla1[5,2]-1)*100
[1] 280.4798
(tabla1[6,4]/tabla1[6,2]-1)*100
[1] 79.2885
Inversión
La inversion se refiere al incremento en activos, insumos y productos que experimentaron las unidades económicas durante el año de referencia. Lo siguiente gráficos muestran la inversión en el sector de alojamiento y preparación de alimentos y bebidas , en azul y la producción del mismo sector en azul claro en 2004 y 2009. El año 2014 se omitió, dado que no es posible consultar el dato debido a problemas del Sistema Actualizado de información Censal del INEGI.
P_I2004<-rbind(tabla1$INV_2004,tabla1$PBAL_2004)
dimnames(P_I2004)=list(c("Inversión","Producción bruta total"),c("Tepoztlán","Huatla de Jiménez","Cuetzalán del Progreso","Zacatlán","Ezequiel Montes","Tequisquiapán"))
P_I2009<-rbind(tabla1$INV_2009,tabla1$PBAL_2009)
dimnames(P_I2009)=list(c("Inversión","Producción bruta total"),c("Tepoztlán","Huatla de Jiménez","Cuetzalán del Progreso","Zacatlán","Ezequiel Montes","Tequisquiapán"))
barplot(P_I2004,col=c("blue","light blue"),main = "2004")

barplot(P_I2009,col=c("blue","light blue"),main = "2009")

Personal ocupado
Por otro lado, se analizarán la cifras de Personal ocupado, que se refieren a las personas que trabajaron durante el periodo de referencia dependiendo contractualmente o no de la unidad económica, sujetas a su dirección y control.Al respecto, se tratará de identificar si existe una relación lineal simple entre la producción brutal total y el personal ocupado de 2004 en el sector. Como primer paso, se presentán los histogramas de ambas variables.
hist(tabla1$PBAL_2004)

hist(tabla1$PER_2004)

Para estudiar la normalidad, además se realiza la prueba de shapiro por ser una muestra menor. Dado que ambas cifras dadas del p-valor, son mayores a 0.05, podemos decir que no tenemos evidencia de que no se trate de distribuciones normales. Aunque, podemos observar en el histograma de la Producción bruta total existe un sesgo a la derecha, mientras que la de Personal es bastante simetrica.
shapiro.test(tabla1$PBAL_2004)
Shapiro-Wilk normality test
data: tabla1$PBAL_2004
W = 0.85611, p-value = 0.1762
shapiro.test(tabla1$PER_2004)
Shapiro-Wilk normality test
data: tabla1$PER_2004
W = 0.95213, p-value = 0.7575
Con el objetivo de seguir explorando los comandos de R, impartidos como parte del curso, se asumirá que ambas variables son normales. En ese sentido, se ejecutará el coeficiente de Pearson para identificar si existe una correlación. El coeficiente de 0.74 aparece como indicio de que existe una correlación directa media.
cor(tabla1$PER_2004,tabla1$PBAL_2004, method="pearson")
Por último, se llevará a cabo un ejercicio para tratar de establecer un modelo lineal. Las características del modelo lineal nos indican que el p valor es sólo ligeramente mayor a 0.05 y el ajuste nos dice que el modelo solo explicaría el 40% de la variabilidad del personal ocupado respecto a la Producción Bruta Total.
ejercicio <- lm(tabla1$PBAL_2004 ~ tabla1$PER_2004)
summary(ejercicio)
Call:
lm(formula = tabla1$PBAL_2004 ~ tabla1$PER_2004)
Residuals:
1 2 3 4 5 6
-5470 25260 -8010 -18800 -10347 17366
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4268.00 18094.56 0.236 0.8251
tabla1$PER_2004 88.38 39.91 2.214 0.0912 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 19330 on 4 degrees of freedom
Multiple R-squared: 0.5507, Adjusted R-squared: 0.4384
F-statistic: 4.904 on 1 and 4 DF, p-value: 0.09118
Así,el siguiente gráfico asocia el modelo planteado anteriormente y se puede identificar que la correlación no es muy precisa, como los parámetros, mencionados arriba, nos indican. A estós, podemos añadir los posibles errores que una muestra tan pequeña puedan suponer para este tipo de modelos.
plot(tabla1$PBAL_2004 ~ tabla1$PER_2004)
abline(lm(tabla1$PBAL_2004~ tabla1$PER_2004))

```
LS0tDQp0aXRsZTogIlB1ZWJsb3MgTcOhZ2ljb3MiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KX1BvbMOtdGljYSBQw7pibGljYSBQdWVibG9zIE3DoWdpY29zXw0KDQpEZXNkZSBsYSBkw6ljYWRhIGRlIGxvcyBub3ZlbnRhLCBlbCBtb2RlbG8gZGUgZGVzYXJyb2xsbyBjb25vY2lkbyBjb21vIOKAnE51ZXZhIHJ1cmFsaWRhZOKAnCBmb21lbnTDsyBlbiBBbcOpcmljYSBMYXRpbmEgZWwgaW1wbGVtZW50byBkZSBwb2zDrXRpY2FzIHDDumJsaWNhcyBhIGZpbiBkZSBkaXZlcnNpZmljYXIgbGFzIGFjdGl2aWRhZGVzIGVjb27Ds21pY2FzIGJham8gbGEgcHJlbWlzYSBkZSBjb21iYXRpciBsYSBwb2JyZXphIGVuIGNvbnRleHRvcyBydXJhbGVzIChSb3NhZG8geSBHb256w6FsZXosIDIwMTYpLg0KDQpFbiBkaWNobyB0ZW5vciwgZWwgUHJvZ3JhbWEgZGUgUHVlYmxvcyBNw6FnaWNvcyBkZSBNw6l4aWNvLCBlcyB1bmEgcG9sw610aWNhIHDDumJsaWNhIHF1ZSBkZXNkZSBpbmljaW9zIGRlIGxhIGTDqWNhZGEgZGVsIDIwMDAgYnVzY2FiYSBpbXB1bHNhciBlbCB0dXJpc21vIGNvbW8gdW5hIGhlcnJhbWllbnRhIHF1ZSBwb2Ryw61hIGFwb3lhciBlbiBlbCBhbGNhbmNlIGRlIHVuIGRlc2Fycm9sbG8gc29zdGVuaWJsZSBwYXJhIGxhcyBjb211bmlkYWRlcyBydXJhbGVzIGRlbCBwYcOtcy4gRGljaG8gcHJvZ3JhbWEsIGNvbnNpc3TDrWFbMV0gZW4gb3RvcmdhciBhcG95byBmaW5hbmNpZXJvIGEgbGFzIGNhYmVjZXJhcyBtdW5pY2lwYWxlcyBxdWUgY29udGFyYW4gY29uIGFsZ8O6biB0aXBvIGRlIHBhdHJpbW9uaW8gYmlvY3VsdHVyYWwgcXVlIHBlcm1pdGllcmEganVzdGlmaWNhciBzdSDigJxtYWdpYeKAnSB5IGFzw60sIHBvZGVyIG1lam9yYXIgbGEgb2ZlcnRhIGUgaW5mcmFlc3RydWN0dXJhIChNYWRyaWQsIDIwMTYpLg0KDQpUcmFzIGRpZWNpb2NobyBhw7FvcyBkZSBlamVjdWNpw7NuLCB5IHVuIHRvdGFsIGRlIDEyMSBsb2NhbGlkYWRlcyBkZWNsYXJhZGFzIOKAnFB1ZWJsbyBNw6FnaWNv4oCdLCBsb3MgZ29iaWVybm9zIGxvY2FsZXMgZSBpbmR1c3RyaWEgdHVyw61zdGljYSBsbyBjb25zaWRlcmFuIGNvbW8gdW5hIGluaWNpYXRpdmEgZXhpdG9zYSBxdWUgaGEgcGVybWl0aWRvIGVsIGRlc2Fycm9sbG8gZWNvbsOzbWljbyB5IGJpZW5lc3RhciBzb2NpYWwgYSBwYXJ0aXIgZGVsIG7Dum1lcm8gZGUgdmlzaXRhbnRlcywgaW5ncmVzb3MgeSBlbXBsZW9zIGdlbmVyYWRvcyBlbiBlc3RvcyBzaXRpb3MgKFNlY3JldGFyw61hIGRlIFR1cmlzbW8sIDIwMjApLiANCg0KQ29uIG1pcmFzIGEgdW4gZGVzYXJyb2xsbyBzb3N0ZW5pYmxlLCBlbCDDqXhpdG8gZGVsIHByb2dyYW1hIGVzIGN1ZXN0aW9uYWJsZSBzaSBzb2xvIHNlIHByaW9yaXphIGVsIGJlbmVmaWNpbyBlY29uw7NtaWNvIHkgc2UgZXMgcGVybWlzaXZvIGNvbiBlbCByZXBsaWNhbWllbnRvIGRlIGltcGFjdG9zIHNvY2lvLWFtYmllbnRhbGVzIHTDrXBpY29zIGRlbCB0dXJpc21vIGRlIG1hc2FzIGVuIGxvcyBQdWVibG9zIE3DoWdpY29zLCB0YWxlcyBjb21vIGxhIHNhdHVyYWNpw7NuIGRlbCBlc3BhY2lvIHDDumJsaWNvLCBpbmp1c3RhIGRpc3RyaWJ1Y2nDs24gZGUgbGEgcmlxdWV6YSwgYWZlY3RhY2lvbmVzIGRpcmVjdGFzIGFsIHBhdHJpbW9uaW8sIGRhw7FvIGFsIHJlY3Vyc28gbmF0dXJhbCwgaG9tb2dlbml6YWNpw7NuIGRlIGxvcyBkZXN0aW5vcywgaW5jcmVtZW50byBkZSBsb3MgcmVzaWR1b3Mgc8OzbGlkb3MgeSBzZWdyZWdhY2nDs24gc29jaWFsIChEYXZpZHNvbiwgMTk5ODsgTWFzb24sIDIwMDgpDQoNCkEgcGFydGlyIGRlIGVsbG8sIGxhIGludGVuY2nDs24gZGVsIHByZXNlbnRlIHByb3llY3RvLCBlcyBhbmFsaXphciBjdWFudGl0YXRpdmFtZW50ZSBsYXMgY29uZGljaW9uZXMgc29jaW9lY29uw7NtaWNhcywgbWVkaW9hbWJpZW50YWxlcyB5IGRlIGluZnJhZXN0cnVjdHVyYSBlbiBzZWlzIG11bmljaXBpb3MgY29uIG5vbWJyYW1pZW50byBkZSBQdWVibG8gTcOhZ2ljbyBhIGZpbiBkZSBkZWxpbWl0YXIgbG9zIGNhbWJpb3MgZ2VuZXJhZG9zIGEgcGFydGlyIGRlIGxhIGVudHJhZGEgZW4gdmlnb3IgZGVsIHByb2dyYW1hLg0KDQoNCmBgYHtyfQ0KZ2V0d2QNCnNldHdkKCJDOi9SU0MvUzEyIikNCnJtKGxpc3Q9bHMoYWxsPVQpKQ0KYmFzZWNvbSA8LSByZWFkLmNzdigiQkYuY3N2IiwgaGVhZGVyPVQpDQpgYGANCkVuIHByaW1lciBsdWdhciwgc2UgZGVzcGxpZWdhIGVuIGdyw6FmaWNhcyBkZSBiYXJyYXMgbGEgZXZvbHVjacOzbiBkZWwgY3JlY2ltaWVudG8gcG9ibGFjaW9uYWwgZGUgbG9zIDYgKlB1ZWJsb3MgTcOhZ2ljb3MqIHNlbGVjY2lvbmFkb3MuIENhYmUgcmVjb3JkYXIgcXVlIGVsIHByb2dyYW1hICJQdWVibG9zIE3DoWdpY29zIiBlbnRyw7MgZW4gdmlnb3IgZW4gZWwgYcOxbyAyMDAxLCBwb3IgbG8gcXVlIHNlIHJldmlzw7MgZWwgY3JlY2ltaWVudG8gcG9ibGFjaW9uYWwgZGVsIGHDsW8gcHJldmlvICgyMDAwKSwgcGFyYSBvYnNlcnZhciBsb3MgY2FtYmlvcyBlbiBkaWNoYSB2YXJpYWJsZSwgYSByYcOteiBkZWwgaW5pY2lvIGRlbCBwcm9ncmFtYS4gRW4gcmVzdW1lbiwgc2UgZWxpZ2llcm9uIGxvcyBhw7FvcyAyMDAwLCAyMDA1IHkgMjAxMCBwYXJhIG9ic2VydmFyIGVsIGNyZWNpbWllbnRvIHBvYmxhY2lvbmFsIGVuIFRlcG96dGzDoW4sIEh1YXV0bGEgZGUgSmltZW5leiwgQ3VldHphbGFuIGRlbCBQcm9ncmVzbywgWmFjYXRsw6FuLCBFemVxdWllbCBNb250ZXMgeSBUZXF1aXNxdWlhcGFuLg0KYGBge3J9DQpQb2IyMDAwPC1jKDM0MDU1LCAzMzEzMCwgNDY2ODIsIDcxOTg1LCAzMDUwMiwgNTUyNjUpDQpuYW1lcyhQb2IyMDAwKTwtdGFibGExJFBVRUJMTw0KYmFycGxvdChQb2IyMDAwLCBtYWluPSJQb2JsYWNpw7NuIGVuIGVsIGHDsW8gMjAwMCIsIHhsYWI9IlB1ZWJsb3MgTcOhZ2ljb3MiLHlsYWI9IkNhbnRpZGFkIGRlIFBvYmxhY2nDs24iLGNvbD1jKCJsaWdodGJsdWUiLCJibHVlIiwieWVsbG93IiwicmVkIiwiZ3JlZW4iLCJwdXJwbGUiKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KYGBgDQpgYGB7cn0NClBvYjIwMDU8LWMoMzk0NjMsMzM4MTAsNTAzNTIsNzUwNzgsMzI5NDEsNTk2MjcpDQpuYW1lcyhQb2IyMDA1KTwtdGFibGExJFBVRUJMTw0KYmFycGxvdChQb2IyMDA1LCBtYWluPSJQb2JsYWNpw7NuIGVuIGVsIGHDsW8gMjAwNSIsIHhsYWI9IlB1ZWJsb3MgTcOhZ2ljb3MiLHlsYWI9IkNhbnRpZGFkIGRlIFBvYmxhY2nDs24iLGNvbD1jKCJsaWdodGJsdWUiLCJibHVlIiwieWVsbG93IiwicmVkIiwiZ3JlZW4iLCJwdXJwbGUiKSkNCmBgYA0KYGBge3J9DQpQb2IyMDEwPC1jKDQ1OTA2LDM0NzQ3LDU0MjAyLDc4MzYyLDM1NzE2LDY0NjEzKQ0KbmFtZXMoUG9iMjAxMCk8LXRhYmxhMSRQVUVCTE8NCmJhcnBsb3QoUG9iMjAxMCwgbWFpbj0iUG9ibGFjacOzbiBlbiBlbCBhw7FvIDIwMTAiLCB4bGFiPSJQdWVibG9zIE3DoWdpY29zIix5bGFiPSJDYW50aWRhZCBkZSBQb2JsYWNpw7NuIixjb2w9YygibGlnaHRibHVlIiwiYmx1ZSIsInllbGxvdyIsInJlZCIsImdyZWVuIiwicHVycGxlIikpDQpgYGANCg0KRW4gZWwgY2FzbyBkZSBUZXBvenRsw6FuLCBzZSBvYnNlcnZhIHVuIGNyZWNpbWllbnRvIHBvYmxhY2lvbmFsIHNvc3RlbmlkbywgYSBwYXJ0aXIgZGUgbGEgZW50cmFkYSBlbiB2aWdvciBkZWwgcHJvZ3JhbWEgIlB1ZWJsb3MgTcOhZ2ljb3MiLiBEZSBhY3VlcmRvIGNvbiBHdXptw6FuIHkgTGXDs24gKDIwMDUpLCBlc3RvIHB1ZWRlIGRlYmVyc2UgYWwgZGVzYXJyb2xsbyB0dXLDrXN0aWNvIHF1ZSBoYSBhdHJhw61kbyBhIHVuIGdyYW4gbsO6bWVybyBkZSBleHRyYW5qZXJvcywgbG9zIGN1YWxlcyBlbGlnaWVyb24gZXN0YWJsZWNlciBlbiBUZXBvenRsw6FuIHN1IGx1Z2FyIGRlIHJlc2lkZW5jaWEuIFBvciBvdHJhIHBhcnRlLCBzaSBzZSBsZXMgY29tcGFyYSBjb24gZWwgcmVzdG8gZGUgbG9zIHB1ZWJsb3MgZWxlZ2lkb3MsIHRhbnRvIEh1YXV0bGEgZGUgSmltw6luZXogY29tbyBFemVxdWllbCBNb250ZXMgc29uIGxvcyBkb3MgdGVycml0b3Jpb3MgY29uIG1lbm9yIGNhbnRpZGFkIGRlIHBvYmxhY2nDs247IHNpbiBlbWJhcmdvLCDDqXN0ZSDDumx0aW1vIHJlZ2lzdHLDsyB1biBtYXlvciBpbmNyZW1lbnRvIHBvYmxhY2lvbmFsIGVuIDIwMTAuIA0KUG9yIHN1IHBhcnRlLCBaYWNhdGzDoW4gZXMgZWwgcHVlYmxvIG3DoWdpY28gY29uIG1heW9yIGNhbnRpZGFkIGRlIHBvYmxhY2nDs24sIGN1ZXN0acOzbiBxdWUgcHVlZGUgZXN0YXIgcmVsYWNpb25hZGEgY29uIGVsIHRhbWHDsW8gZGUgc3Ugc3VwZXJmaWNpZSwgbGEgY3VhbCBlcXVpdmFsZSBhIDQ4OS4zIGttwrIuIEVuIGVzdGUgdGVub3IsIFRlcXVpc3F1aWFwYW4gY3VlbnRhIGNvbiAgdW5hIHN1cGVyZmljaWUgdGVycml0b3JpYWwgZGUgMzQzLjYga23CsiwgbG8gY3VhbCB0YW1iacOpbiBwdWVkZSBleHBsaWNhciBxdWUgc2VhIGVsIHNlZ3VuZG8gcHVlYmxvIGNvbiBtYXlvciBjYW50aWRhZCBkZSBwb2JsYWNpw7NuIGRlIG51ZXN0cmEgbXVlc3RyYS4gDQpGaW5hbG1lbnRlLCBDdWV0emFsYW4gZGVsIFByb2dyZXNvIHByZXNlbnTDsyB1biBpbmNyZW1lbnRvIHBvYmxhY2lvbmFsIGRlbCA3LjglLCBlbiAyMDA1LCBjb24gcmVzcGVjdG8gYWwgYcOxbyAyMDAwIHksIHBhcmEgZWwgYcOxbyAyMDEwLCBlbCBpbmNyZW1lbnRvIGZ1ZSBkZWwgMTQuNDYlDQoNCl9Qcm9kdWNjacOzbiBkZSBsYSBhY3RpdmlkYWQgdHVyw61zdGljYV8NCg0KTG9zIENlbnNvcyBlY29uw7NtaWNvcyBlbiBNw6l4aWNvLCBnZW5lcmFuIGluZGljYWRvcmVzLCBjb24gaW5mb3JtYWNpw7NuIHNvYnJlIHByb2R1Y2Npw7NuIHkgY29tZXJjaWFsaXphY2nDs24gZGUgYmllbmVzIHkgbWVyY2FuY8OtYXMsIGFzw60gY29tbyBkZSBsYSBwcmVzdGFjacOzbiBkZSBzZXJ2aWNpb3MuRW4gZXN0ZSBhcGFydGFkbyBzZSBhbmFsaXphcsOhIGxhIHByb2R1Y2Npw7NuIGJydXRhIHRvdGFsIHF1ZSBzZSByZWZpZXJlIGFsIHZhbG9yIGRlIHRvZG9zIGxvcyBiaWVuZXMgeSBzZXJ2aWNpb3MgcHJvZHVjaWRvcyBvIGNvbWVyY2lhbGl6YWRvcyBwb3IgbGEgdW5pZGFkIGVjb27Ds21pY2EgY29tbyByZXN1bHRhZG8gZGVsIGVqZXJjaWNpbyBkZSBzdXMgYWN0aXZpZGFkZXMuIExhIHNpZ3VpZW50ZSB0YWJsYSBtdWVzdHJhIGxhIFByb2R1Y2Npw7NuIGJydXRhIHRvdGFsIGRlbCBTZWN0b3IgRWNvbsOzbWljbyBkZSBzZXJ2aWNpb3MgZGUgQWxvamFtaWVudG8gdGVtcG9yYWwgeSBwcmVwYXJhY2nDs24gZGUgYWxpbWVudG9zIHkgYmViaWRhcy4NCg0KYGBge3J9DQpiYXNlY29tJENWRV9NVU48LWFzLmZhY3RvcihiYXNlY29tJENWRV9NVU4yKQ0KYmFzZWNvbSRDVkVfTVVOPWZhY3RvcihiYXNlY29tJENWRV9NVU4yLGxldmVscz1sZXZlbHMoYmFzZWNvbSRDVkVfTVVOKSxsYWJlbHMgPSBjKCJUZXBvenRsw6FuIiwiSHVhdXRsYSBkZSBKaW3DqW5leiIsIkN1ZXR6YWzDoW4gZGVsIFByb2dyZXNvIiwiWmFjYXRsw6FuIiwiRXplcXVpZWwgTW9udGVzIiwiVGVxdWlzcXVpYXDDoW4iKSxvcmRlcmVkPUYpDQp0YWJsYTE8LWJhc2Vjb21bLDIxNzoyMjNdDQp0YWJsYTE8LWFzLmRhdGEuZnJhbWUodGFibGExKQ0KdGFibGExDQpgYGANCkxhIHNpZ3VpZW50ZSBncsOhZmljYSBzZcOxYWxhIGVsIGNhbWJpbyBkZSBlc3TDoSBQcm9kdWNjacOzbiBCcnV0YSBUb3RhbCAgZHVyYW50ZSAyMDA0LDIwMDkgeSAyMDE0IGVuIGxvcyBkZXN0aW5vcyBzZWxlY2Npb25hZG9zLg0KDQpgYGB7cn0NCnRhYmxhMSRDVkVfTVVOMjwtYXMuZmFjdG9yKHRhYmxhMSRDVkVfTVVOMikNCnRhYmxhMSRDVkVfTVVOMj1mYWN0b3IodGFibGExJENWRV9NVU4yLGxldmVscz1sZXZlbHModGFibGExJENWRV9NVU4yKSxsYWJlbHMgPSBjKCJUZXBvenRsw6FuIiwiSHVhdXRsYSBkZSBKaW3DqW5leiIsIkN1ZXR6YWzDoW4gZGVsIFByb2dyZXNvIiwiWmFjYXRsw6FuIiwiRXplcXVpZWwgTW9udGVzIiwiVGVxdWlzcXVpYXDDoW4iKSxvcmRlcmVkPUYpDQpiYXJwbG90KFByb2R1Y2Npw7NuLGJlc2lkZT1ULHhsYWI9J1B1ZWJsb3MgTcOhZ2ljb3MnLCB5bGFiPSdQcm9kdWNjacOzbiBicnV0YSB0b3RhbCcsY29sPWMoImxpZ2h0Ymx1ZSIsImJsdWUiLCJ5ZWxsb3ciKSx5bGltPWMoMCwxNTAwMDApKQ0KbGVnZW5kKHggPSAidG9wcmlnaHQiLCBsZWdlbmQgPSBjKCIyMDA0IiwgIjIwMDkiLCIyMDE0IiksIGZpbGwgPSBjKCJsaWdodGJsdWUiLCAiYmx1ZSIsInllbGxvdyIpLCANCiAgICAgICB0aXRsZSA9ICJBw7FvcyIpDQpgYGANCkNvbW8gcHVkaW1vcyBvYnNlcnZhciwgYSBleGNlcGNpw7NuIGRlbCBNdW5pY2lwaW8gZGUgSHVhdXRsYSBkZSBKaW3DqW5leiwgdG9kb3MgbG9zIG11bmljaXBpb3MgZXhwZXJpbWVudGFyb24gdW4gaW5jcmVtZW50byBjb24gcmVzcGVjdG8gYWwgYcOxbyBhbnRlcmlvci5MYSBzaWd1aWVudGUgdGFibGEgbXVlc3RyYSBsYSB0YXNhIGRlIHZhcmlhY2nDs24gcG9zaXRpdmEgZGUgY2FkYSB1bm8gZGUgZWxsb3MuIEVsIHByb21lZGlvIGRlIGVzdGFzIHRhc2FzIGRlIHZhcmlhY2nDs24gZXMgMTM3JSwgZXMgcXVlIGVsIGRlc2VtcGXDsW8gZGVsIHNlY3RvciB0dXLDrXN0aWNvIG1lam9yw7MgYW1wbGlhbWVudGUgZHVyYW50ZSBlc2EgZMOpY2FkYS4gQXVucXVlLCBlcyBpbXBvcnRhbnRlIG1lbmNpb25hciBxdWUgc3UgaW5jbHVzacOzbiBlbiBlbCBwcm9ncmFtYSBkZSAiUHVlYmxvcyBNw6FnaWNvcywiIGRpZmllcmUgZW4gYcOxb3MsIGluY2x1c28gYW50ZXMgZGUgZXN0ZSBwZXJpb2RvLiANCg0KDQoNCnwgIF9fUHVlYmxvIE3DoWdpY29fXyAgICAgIHwgICAgIF9fVGFzYSBkZSB2YXJpYWNpw7NuICgyMDA0LTIwMTQpX18gICAgICAgIHwNCnwtLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfA0KfCBUZXBvenRsw6FuICAgICAgICAgICAgICB8IDIyNC4yNjIyDQp8IEh1YXV0bGEgZGUgSmltw6luZXogICAgICAgICAgICAgIHwgLTQ2LjM0OTU1IHwNCnwgQ3VldHphbMOhbiBkZWwgUHJvZ3Jlc28gIHwgOTEuMjQxOCB8DQp8IFphY2F0bMOhbiAgfDE5My4xMTU3IHwNCnxFemVxdWllbCBNb250ZXMgfCAyODAuNDc5OHwgICANCnwgVGVxdWlzcXVpYXDDoW4gIHw3OS4yODg1IHwNCg0KYGBge3J9DQoodGFibGExWzEsNF0vdGFibGExWzEsMl0tMSkqMTAwDQoodGFibGExWzIsNF0vdGFibGExWzIsMl0tMSkqMTAwIA0KKHRhYmxhMVszLDRdL3RhYmxhMVszLDJdLTEpKjEwMA0KKHRhYmxhMVs0LDRdL3RhYmxhMVs0LDJdLTEpKjEwMA0KKHRhYmxhMVs1LDRdL3RhYmxhMVs1LDJdLTEpKjEwMA0KKHRhYmxhMVs2LDRdL3RhYmxhMVs2LDJdLTEpKjEwMA0KDQpgYGANCg0KDQoNCl9JbnZlcnNpw7NuXw0KDQogTGEgaW52ZXJzaW9uIHNlIHJlZmllcmUgYWwgaW5jcmVtZW50byBlbiBhY3Rpdm9zLCBpbnN1bW9zIHkgcHJvZHVjdG9zIHF1ZSBleHBlcmltZW50YXJvbiBsYXMgdW5pZGFkZXMgZWNvbsOzbWljYXMgZHVyYW50ZSBlbCBhw7FvIGRlIHJlZmVyZW5jaWEuDQpMbyBzaWd1aWVudGUgZ3LDoWZpY29zIG11ZXN0cmFuIGxhIGludmVyc2nDs24gZW4gZWwgc2VjdG9yIGRlIGFsb2phbWllbnRvIHkgcHJlcGFyYWNpw7NuIGRlIGFsaW1lbnRvcyB5IGJlYmlkYXMgLCBlbiBhenVsIHkgbGEgcHJvZHVjY2nDs24gZGVsIG1pc21vIHNlY3RvciBlbiBhenVsIGNsYXJvIGVuIDIwMDQgeSAyMDA5LiBFbCBhw7FvIDIwMTQgc2Ugb21pdGnDsywgZGFkbyBxdWUgbm8gZXMgcG9zaWJsZSBjb25zdWx0YXIgZWwgZGF0byBkZWJpZG8gYSBwcm9ibGVtYXMgZGVsIFNpc3RlbWEgQWN0dWFsaXphZG8gZGUgaW5mb3JtYWNpw7NuIENlbnNhbCBkZWwgSU5FR0kuIA0KIA0KYGBge3J9DQpQX0kyMDA0PC1yYmluZCh0YWJsYTEkSU5WXzIwMDQsdGFibGExJFBCQUxfMjAwNCkNCmRpbW5hbWVzKFBfSTIwMDQpPWxpc3QoYygiSW52ZXJzacOzbiIsIlByb2R1Y2Npw7NuIGJydXRhIHRvdGFsIiksYygiVGVwb3p0bMOhbiIsIkh1YXRsYSBkZSBKaW3DqW5leiIsIkN1ZXR6YWzDoW4gZGVsIFByb2dyZXNvIiwiWmFjYXRsw6FuIiwiRXplcXVpZWwgTW9udGVzIiwiVGVxdWlzcXVpYXDDoW4iKSkNClBfSTIwMDk8LXJiaW5kKHRhYmxhMSRJTlZfMjAwOSx0YWJsYTEkUEJBTF8yMDA5KQ0KZGltbmFtZXMoUF9JMjAwOSk9bGlzdChjKCJJbnZlcnNpw7NuIiwiUHJvZHVjY2nDs24gYnJ1dGEgdG90YWwiKSxjKCJUZXBvenRsw6FuIiwiSHVhdGxhIGRlIEppbcOpbmV6IiwiQ3VldHphbMOhbiBkZWwgUHJvZ3Jlc28iLCJaYWNhdGzDoW4iLCJFemVxdWllbCBNb250ZXMiLCJUZXF1aXNxdWlhcMOhbiIpKQ0KYmFycGxvdChQX0kyMDA0LGNvbD1jKCJibHVlIiwibGlnaHQgYmx1ZSIpLG1haW4gPSAiMjAwNCIpDQpgYGANCmBgYHtyfQ0KYmFycGxvdChQX0kyMDA5LGNvbD1jKCJibHVlIiwibGlnaHQgYmx1ZSIpLG1haW4gPSAiMjAwOSIpDQoNCmBgYA0KX1BlcnNvbmFsIG9jdXBhZG9fDQoNClBvciBvdHJvIGxhZG8sIHNlIGFuYWxpemFyw6FuIGxhIGNpZnJhcyBkZSBQZXJzb25hbCBvY3VwYWRvLCBxdWUgc2UgcmVmaWVyZW4gYSBsYXMgcGVyc29uYXMgcXVlIHRyYWJhamFyb24gZHVyYW50ZSBlbCBwZXJpb2RvIGRlIHJlZmVyZW5jaWEgZGVwZW5kaWVuZG8gY29udHJhY3R1YWxtZW50ZSBvIG5vIGRlIGxhIHVuaWRhZCBlY29uw7NtaWNhLCBzdWpldGFzIGEgc3UgZGlyZWNjacOzbiB5IGNvbnRyb2wuQWwgcmVzcGVjdG8sIHNlIHRyYXRhcsOhIGRlIGlkZW50aWZpY2FyIHNpIGV4aXN0ZSB1bmEgcmVsYWNpw7NuIGxpbmVhbCBzaW1wbGUgZW50cmUgbGEgcHJvZHVjY2nDs24gYnJ1dGFsIHRvdGFsIHkgZWwgcGVyc29uYWwgb2N1cGFkbyBkZSAyMDA0IGVuIGVsIHNlY3Rvci4gQ29tbyBwcmltZXIgcGFzbywgc2UgcHJlc2VudMOhbiBsb3MgaGlzdG9ncmFtYXMgZGUgYW1iYXMgdmFyaWFibGVzLiANCmBgYHtyfQ0KaGlzdCh0YWJsYTEkUEJBTF8yMDA0KQ0KaGlzdCh0YWJsYTEkUEVSXzIwMDQpDQpgYGANClBhcmEgZXN0dWRpYXIgbGEgbm9ybWFsaWRhZCwgYWRlbcOhcyBzZSByZWFsaXphIGxhIHBydWViYSBkZSBzaGFwaXJvIHBvciBzZXIgdW5hIG11ZXN0cmEgbWVub3IuIERhZG8gcXVlIGFtYmFzIGNpZnJhcyBkYWRhcyBkZWwgcC12YWxvciwgc29uIG1heW9yZXMgYSAwLjA1LCBwb2RlbW9zIGRlY2lyIHF1ZSBubyB0ZW5lbW9zIGV2aWRlbmNpYSBkZSBxdWUgbm8gc2UgdHJhdGUgZGUgZGlzdHJpYnVjaW9uZXMgbm9ybWFsZXMuIEF1bnF1ZSwgcG9kZW1vcyBvYnNlcnZhciBlbiBlbCBoaXN0b2dyYW1hIGRlIGxhIFByb2R1Y2Npw7NuIGJydXRhIHRvdGFsICBleGlzdGUgdW4gc2VzZ28gYSBsYSBkZXJlY2hhLCBtaWVudHJhcyBxdWUgbGEgZGUgUGVyc29uYWwgZXMgYmFzdGFudGUgc2ltZXRyaWNhLiAgDQpgYGB7cn0NCnNoYXBpcm8udGVzdCh0YWJsYTEkUEJBTF8yMDA0KQ0Kc2hhcGlyby50ZXN0KHRhYmxhMSRQRVJfMjAwNCkNCmBgYA0KQ29uIGVsIG9iamV0aXZvIGRlIHNlZ3VpciBleHBsb3JhbmRvIGxvcyBjb21hbmRvcyBkZSBSLCBpbXBhcnRpZG9zIGNvbW8gcGFydGUgZGVsIGN1cnNvLCBzZSBhc3VtaXLDoSBxdWUgYW1iYXMgdmFyaWFibGVzIHNvbiBub3JtYWxlcy4gRW4gZXNlIHNlbnRpZG8sIHNlIGVqZWN1dGFyw6EgZWwgY29lZmljaWVudGUgZGUgUGVhcnNvbiBwYXJhIGlkZW50aWZpY2FyIHNpIGV4aXN0ZSB1bmEgY29ycmVsYWNpw7NuLiBFbCBjb2VmaWNpZW50ZSBkZSAwLjc0IGFwYXJlY2UgY29tbyBpbmRpY2lvIGRlIHF1ZSBleGlzdGUgdW5hIGNvcnJlbGFjacOzbiBkaXJlY3RhIG1lZGlhLiAgDQpgYGB7cn0NCmNvcih0YWJsYTEkUEVSXzIwMDQsdGFibGExJFBCQUxfMjAwNCwgbWV0aG9kPSJwZWFyc29uIikNCg0KYGBgDQoNClBvciDDumx0aW1vLCBzZSBsbGV2YXLDoSBhIGNhYm8gdW4gZWplcmNpY2lvIHBhcmEgdHJhdGFyIGRlIGVzdGFibGVjZXIgdW4gbW9kZWxvIGxpbmVhbC4gTGFzIGNhcmFjdGVyw61zdGljYXMgZGVsIG1vZGVsbyBsaW5lYWwgbm9zIGluZGljYW4gcXVlIGVsIHAgdmFsb3IgZXMgc8OzbG8gbGlnZXJhbWVudGUgbWF5b3IgYSAwLjA1IHkgZWwgYWp1c3RlIG5vcyBkaWNlIHF1ZSBlbCBtb2RlbG8gc29sbyBleHBsaWNhcsOtYSBlbCA0MCUgZGUgbGEgdmFyaWFiaWxpZGFkIGRlbCBwZXJzb25hbCBvY3VwYWRvIHJlc3BlY3RvIGEgbGEgUHJvZHVjY2nDs24gQnJ1dGEgVG90YWwuIA0KDQpgYGB7cn0NCg0KZWplcmNpY2lvIDwtIGxtKHRhYmxhMSRQQkFMXzIwMDQgfiB0YWJsYTEkUEVSXzIwMDQpDQpzdW1tYXJ5KGVqZXJjaWNpbykNCmBgYA0KDQoNCg0KQXPDrSxlbCBzaWd1aWVudGUgZ3LDoWZpY28gYXNvY2lhIGVsIG1vZGVsbyBwbGFudGVhZG8gYW50ZXJpb3JtZW50ZSB5IHNlIHB1ZWRlIGlkZW50aWZpY2FyIHF1ZSBsYSBjb3JyZWxhY2nDs24gbm8gZXMgbXV5IHByZWNpc2EsIGNvbW8gbG9zIHBhcsOhbWV0cm9zLCBtZW5jaW9uYWRvcyBhcnJpYmEsIG5vcyBpbmRpY2FuLiBBIGVzdMOzcywgcG9kZW1vcyBhw7FhZGlyIGxvcyBwb3NpYmxlcyBlcnJvcmVzIHF1ZSB1bmEgbXVlc3RyYSB0YW4gcGVxdWXDsWEgcHVlZGFuIHN1cG9uZXIgcGFyYSBlc3RlIHRpcG8gZGUgbW9kZWxvcy4gDQpgYGB7cn0NCnBsb3QodGFibGExJFBCQUxfMjAwNCB+IHRhYmxhMSRQRVJfMjAwNCkNCmFibGluZShsbSh0YWJsYTEkUEJBTF8yMDA0fiB0YWJsYTEkUEVSXzIwMDQpKQ0KDQpgYGANCg0KDQoNCmBgYA0KDQoNCg0K