“## My notebook”

This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

1. Cuaderno de R Markdown se ilustra las estadísticas agricolas para el departamento de LA GUAJIRA

Según un articulo publicado en la pagina del Instituto Geográfico Agustín Codazzi (IGAC) llamado " Hasta en la seca Guajirala actividad agropecuaria está extramilitada", informa que a pesar de que el 14.9% del departamento cuenta con suelos aptos para el establecimiento de cultivos y ganadería , actualmente se hace uso del 20.5%.

2. Estadísticas espaciales del comportamiento agrícola en el departamento

El IGAC dice que en LA GUAJIRA actualmente el 20,5% cuenta con producción de cultivos de yuca, banano y frutas, en conbinación con ganado tanto vacuno como caprino; en municipios como Dibulla, San Juan del Cesar, Riohacha, Distracción, Maicao, Hato Nuevo, Albania, Barrancas, Fonseca, San Juan del Cesar, El Molino, Villanueva, La Jagua del Pilar, El Molino y Urumita.

rm(list=ls())

Intalación de Paquetes necesarios

list.of.packages <- c("here", "tidyverse", "rgeos", "maptools", "raster", "sf",  "viridis", "rnaturalearth", "GSODR", "ggrepel", "cowplot")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)

cargar librerias

library(here)
here() starts at C:/Users/familiar/Downloads/gb2/trabajos en R/guaji
library(tidyverse)
Registered S3 methods overwritten by 'dbplyr':
  method         from
  print.tbl_lazy     
  print.tbl_sql      
-- Attaching packages --------------------------------------- tidyverse 1.3.0 --
v ggplot2 3.3.0     v purrr   0.3.3
v tibble  2.1.3     v dplyr   0.8.5
v tidyr   1.0.2     v stringr 1.4.0
v readr   1.3.1     v forcats 0.5.0
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
library(rgeos)
Loading required package: sp
rgeos version: 0.5-2, (SVN revision 621)
 GEOS runtime version: 3.6.1-CAPI-1.10.1 
 Linking to sp version: 1.4-1 
 Polygon checking: TRUE 
library(maptools)
Checking rgeos availability: TRUE
library(raster)

Attaching package: 㤼㸱raster㤼㸲

The following object is masked from 㤼㸱package:dplyr㤼㸲:

    select

The following object is masked from 㤼㸱package:tidyr㤼㸲:

    extract
library(sf)
Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
library(viridis)
Loading required package: viridisLite
library(rnaturalearth)
library(GSODR)
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     
library(ggrepel)
library(cowplot)

********************************************************
Note: As of version 1.0.0, cowplot does not change the
  default ggplot2 theme anymore. To recover the previous
  behavior, execute:
  theme_set(theme_cowplot())
********************************************************

3. Explorando estadisticas de agricultura en LA Guajira

datos <- read.csv("C:/Users/familiar/Downloads/gb2/La guajira/Eval_Agro_Mun_La_Guajira_EVA (1).csv")
class(datos)
[1] "data.frame"

En la tabla siguiente podemos ver las primeras 6 lineas de toda la base de datos de la evaluación agraria de La Guajira , con la cual se va a trabajar en este cuaderno.

head(datos)

Se hace visualisar los últimos seis datos de toda la información suministrada por el GOV.CO Datos Abiertos, indica que se trabajaran con 3286 filas que estan compuestas por 17 columnas.

tail(datos)

Se indica en la siguiente tabla algunos rendimientos de los cultivos de la región , en la cual podemos destacar que se tiene los mayores rendimientos en los cultivos de frutales con 12.9 ton/ha , seguido por hortalizas con 9.3 ton/ha , cereales y fibras entre otros

datos %>%
  group_by(MUNICIPIO,GRUPO.DE.CULTIVO) %>%
  summarise(rend_prom = mean(Rendimiento.t.ha,na.rm = TRUE)) -> rend_resumen
### luego mostrará los primeros 6 datos de toda la tabla
head(rend_resumen)

Aquí podemos visualizar algunos grupos de cultivo con su rendimiento en el departamento de La Guajira

datos %>%
  group_by(GRUPO.DE.CULTIVO) %>%
  summarise(rend_dep = mean(Rendimiento.t.ha,na.rm = TRUE)) -> rend_guajira

rend_guajira
datos %>% 
  filter(AÑO==2018) %>% 
  group_by(GRUPO.DE.CULTIVO, MUNICIPIO) %>%
  summarize(max_rend = max(Rendimiento.t.ha,na.rm = TRUE)) %>%
    slice(which.max(max_rend)) -> rend_max_18

rend_max_18

En los siguientes datos se tiene información del grupo de cultivo por municipio con su área maxima cosechada

datos %>% 
  filter(AÑO==2018) %>% 
  group_by(GRUPO.DE.CULTIVO, MUNICIPIO) %>%
  summarize(max_area_cosecha = max(A.rea.Cosechada.ha, na.rm = TRUE)) %>%
    slice(which.max(max_area_cosecha)) -> area_cosecha_max

area_cosecha_max

Podemos verificar un cultivo y municipio en especial , para este caso tomaremos el Banano , en el municipio de Riohacha

datos %>% 
  filter(MUNICIPIO=="RIOHACHA" & SUBGRUPO.DE.CULTIVO=="BANANO") %>% 
  group_by(AÑO, CULTIVO) ->  riohacha_banano

riohacha_banano
# we use the ggplot 2 library
g <- ggplot(aes(x=AÑO, y=Produccion.ton/1000), data = riohacha_banano) + geom_bar(stat='identity') + labs(y='Produccion.ton[Ton x 1000]')

Se realiza un grafico en donde nos muetra la evolución del banano en Riohacha , y podemos observar que ha tenido un incremento en su producción desde el 2007 hasta el 2018, pasando del 2007 de menos de 5000 toneladas a mas 80.000 ton en el 2018

g + ggtitle("Evolucion de produccion Banano en Riohacha de 2007 a 2018") + labs(caption= "Based on EMA data (DANE, 2018)")

datos %>% 
  filter(AÑO==2018) %>% 
  group_by(GRUPO.DE.CULTIVO) %>%
  summarize(sum_area_cosecha = sum(A.rea.Cosechada.ha, na.rm = TRUE)) %>%
     arrange(desc(sum_area_cosecha)) -> total_area_cosecha

total_area_cosecha

En la anterior tabla se calculó cada grupo de cultivo la suma del área de su cosecha , donde se destaca los cereales

datos %>%
  filter(GRUPO.DE.CULTIVO=="OTROS PERMANENTES" & AÑO==2018) %>%
  group_by(CULTIVO) %>%
  summarize(sum_cosecha = sum(A.rea.Cosechada.ha, na.rm = TRUE)) %>%
     arrange(desc(sum_cosecha)) -> total_cosecha


total_cosecha

Aquí se muestran otros datos de otros cultivos permanentes , encontrando primero al Café con la mayor área cosechada

datos %>% 
  filter(AÑO==2018 & GRUPO.DE.CULTIVO=="OTROS PERMANENTES") %>% 
  group_by(CULTIVO, MUNICIPIO) %>%
  summarize(max_area2 = max(A.rea.Cosechada.ha, na.rm = TRUE)) %>%
    slice(which.max(max_area2)) -> area_cosecha2

area_cosecha2
total_area_cosecha$CULTIVO <- abbreviate(total_area_cosecha$GRUPO.DE.CULTIVO, 3)
# we use the ggplot 2 library
g <- ggplot(aes(x=CULTIVO, y=sum_area_cosecha), data = total_area_cosecha) + geom_bar(stat='identity') + labs(y='Total Harvested Area [Ha]')

Basado en la información seleccionada se realiza un grafico donde se muestra el área cosechada por grupo de cultivo en el 2018 para La Guajira, donde la mayor área coschada es para los cereales.

g+ ggtitle("Total area cosechada por grupo de cultivo en 2018 for La Guajira") + theme(plot.title = element_text(hjust = 0.5)) +
   labs(caption= "Based on EMA data (DANE, 2018)")

4. Joining estadisticas de agricultura por municipios

library(sf)
ant_munic <- sf::st_read("C:/Users/familiar/Downloads/gb2/La guajira/44_LA_GUAJIRA/ADMINISTRATIVO/MGN_MPIO_POLITICO.shp")
Reading layer `MGN_MPIO_POLITICO' from data source `C:\Users\familiar\Downloads\gb2\La guajira\44_LA_GUAJIRA\ADMINISTRATIVO\MGN_MPIO_POLITICO.shp' using driver `ESRI Shapefile'
Simple feature collection with 15 features and 9 fields
geometry type:  MULTIPOLYGON
dimension:      XY
bbox:           xmin: -73.66494 ymin: 10.39676 xmax: -71.11296 ymax: 12.45944
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs
ant_munic
Simple feature collection with 15 features and 9 fields
geometry type:  MULTIPOLYGON
dimension:      XY
bbox:           xmin: -73.66494 ymin: 10.39676 xmax: -71.11296 ymax: 12.45944
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs
First 10 features:
   DPTO_CCDGO MPIO_CCDGO         MPIO_CNMBR                                                   MPIO_CRSLC
1          44      44078          BARRANCAS                                                         1935
2          44      44098        DISTRACCIÓN                         Ordenanza 41 de Noviembre 30 de 1995
3          44      44110          EL MOLINO                     Ordenanza015 del 29 de Noviembre de 1989
4          44      44279            FONSECA                                                         1954
5          44      44378          HATONUEVO                          Ordenanza 57 de Noviembre 9 de 1994
6          44      44420 LA JAGUA DEL PILAR Decreto presidencial 609 del 26 de Marzo de 1996 y ratificad
7          44      44855            URUMITA                         Ordenanza 36 de Diciembre 20 de 1983
8          44      44874         VILLANUEVA                                                         1888
9          44      44001           RIOHACHA                                                         1954
10         44      44035            ALBANIA                       Ordenanza 001 del 27 de Marzo del 2000
   MPIO_NAREA MPIO_NANO DPTO_CNMBR Shape_Leng Shape_Area                       geometry
1    800.9418      2017 LA GUAJIRA  1.4953574 0.06621447 MULTIPOLYGON (((-72.59885 1...
2    231.6880      2017 LA GUAJIRA  0.9018563 0.01916877 MULTIPOLYGON (((-72.89246 1...
3    242.1848      2017 LA GUAJIRA  0.7100496 0.02000174 MULTIPOLYGON (((-72.96901 1...
4    473.7073      2017 LA GUAJIRA  1.3186028 0.03912942 MULTIPOLYGON (((-72.91056 1...
5    214.6399      2017 LA GUAJIRA  1.1453524 0.01775162 MULTIPOLYGON (((-72.6568 11...
6    179.5909      2017 LA GUAJIRA  0.9805011 0.01482556 MULTIPOLYGON (((-73.08581 1...
7    246.2746      2017 LA GUAJIRA  1.0506924 0.02033173 MULTIPOLYGON (((-73.00927 1...
8    260.0959      2017 LA GUAJIRA  0.8830655 0.02147866 MULTIPOLYGON (((-72.9918 10...
9   3088.7157      2017 LA GUAJIRA  3.0307344 0.25561378 MULTIPOLYGON (((-72.89025 1...
10   546.0266      2017 LA GUAJIRA  1.4854163 0.04517060 MULTIPOLYGON (((-72.52248 1...
don’t do this inside the notebook ##### do it in the R console ##### ?left_join

datos %>% filter (MUNICIPIO =="RIOHACHA") ->  med_datos
med_datos
class(med_datos$C0D.MUN.)
[1] "integer"
datos2 <- datos
datos2$TEMP <-  as.character(datos2$C0D.MUN.)
datos2$MPIO_CCDGO <- as.factor(paste(datos2$TEMP, sep=""))  
head(datos2)
datos2 %>% filter(CULTIVO == "CAFE")  -> datos3
datos3
head(datos3)
class(datos3)
[1] "data.frame"
library(dplyr)
datos4 <- datos3 %>% dplyr::select(MUNICIPIO, AÑO, Produccion.ton, Rendimiento.t.ha,MPIO_CCDGO) 
datos4
datos4 %>% 
  gather("AÑO", "Produccion.ton", "Rendimiento.t.ha", key = variable, value = numeric)
datos4
head(datos4)
datos4 %>% 
  group_by(MPIO_CCDGO) %>% 
  mutate(Visit = 1:n()) %>% 
  gather("AÑO","Produccion.ton","Rendimiento.t.ha", key = variable, value = numeric) %>% 
  unite(combi, variable, Visit) %>%
  spread(combi, numeric) -> datos5
datos5
head(datos5)
tail(datos5)
class(datos5)
[1] "grouped_df" "tbl_df"     "tbl"        "data.frame"
ant_munic2 <- ant_munic
ant_munic2 
Simple feature collection with 15 features and 9 fields
geometry type:  MULTIPOLYGON
dimension:      XY
bbox:           xmin: -73.66494 ymin: 10.39676 xmax: -71.11296 ymax: 12.45944
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs
First 10 features:
   DPTO_CCDGO MPIO_CCDGO         MPIO_CNMBR                                                   MPIO_CRSLC
1          44      44078          BARRANCAS                                                         1935
2          44      44098        DISTRACCIÓN                         Ordenanza 41 de Noviembre 30 de 1995
3          44      44110          EL MOLINO                     Ordenanza015 del 29 de Noviembre de 1989
4          44      44279            FONSECA                                                         1954
5          44      44378          HATONUEVO                          Ordenanza 57 de Noviembre 9 de 1994
6          44      44420 LA JAGUA DEL PILAR Decreto presidencial 609 del 26 de Marzo de 1996 y ratificad
7          44      44855            URUMITA                         Ordenanza 36 de Diciembre 20 de 1983
8          44      44874         VILLANUEVA                                                         1888
9          44      44001           RIOHACHA                                                         1954
10         44      44035            ALBANIA                       Ordenanza 001 del 27 de Marzo del 2000
   MPIO_NAREA MPIO_NANO DPTO_CNMBR Shape_Leng Shape_Area                       geometry
1    800.9418      2017 LA GUAJIRA  1.4953574 0.06621447 MULTIPOLYGON (((-72.59885 1...
2    231.6880      2017 LA GUAJIRA  0.9018563 0.01916877 MULTIPOLYGON (((-72.89246 1...
3    242.1848      2017 LA GUAJIRA  0.7100496 0.02000174 MULTIPOLYGON (((-72.96901 1...
4    473.7073      2017 LA GUAJIRA  1.3186028 0.03912942 MULTIPOLYGON (((-72.91056 1...
5    214.6399      2017 LA GUAJIRA  1.1453524 0.01775162 MULTIPOLYGON (((-72.6568 11...
6    179.5909      2017 LA GUAJIRA  0.9805011 0.01482556 MULTIPOLYGON (((-73.08581 1...
7    246.2746      2017 LA GUAJIRA  1.0506924 0.02033173 MULTIPOLYGON (((-73.00927 1...
8    260.0959      2017 LA GUAJIRA  0.8830655 0.02147866 MULTIPOLYGON (((-72.9918 10...
9   3088.7157      2017 LA GUAJIRA  3.0307344 0.25561378 MULTIPOLYGON (((-72.89025 1...
10   546.0266      2017 LA GUAJIRA  1.4854163 0.04517060 MULTIPOLYGON (((-72.52248 1...
ant_munic_stat = left_join(ant_munic,datos5, by = "MPIO_CCDGO")
ant_munic_stat
Simple feature collection with 15 features and 46 fields
geometry type:  MULTIPOLYGON
dimension:      XY
bbox:           xmin: -73.66494 ymin: 10.39676 xmax: -71.11296 ymax: 12.45944
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs
First 10 features:
   DPTO_CCDGO MPIO_CCDGO         MPIO_CNMBR                                                   MPIO_CRSLC
1          44      44078          BARRANCAS                                                         1935
2          44      44098        DISTRACCIÓN                         Ordenanza 41 de Noviembre 30 de 1995
3          44      44110          EL MOLINO                     Ordenanza015 del 29 de Noviembre de 1989
4          44      44279            FONSECA                                                         1954
5          44      44378          HATONUEVO                          Ordenanza 57 de Noviembre 9 de 1994
6          44      44420 LA JAGUA DEL PILAR Decreto presidencial 609 del 26 de Marzo de 1996 y ratificad
7          44      44855            URUMITA                         Ordenanza 36 de Diciembre 20 de 1983
8          44      44874         VILLANUEVA                                                         1888
9          44      44001           RIOHACHA                                                         1954
10         44      44035            ALBANIA                       Ordenanza 001 del 27 de Marzo del 2000
   MPIO_NAREA MPIO_NANO DPTO_CNMBR Shape_Leng Shape_Area          MUNICIPIO AÑO_1 AÑO_10 AÑO_11 AÑO_12
1    800.9418      2017 LA GUAJIRA  1.4953574 0.06621447          BARRANCAS  2007   2016   2017   2018
2    231.6880      2017 LA GUAJIRA  0.9018563 0.01916877        DISTRACCION  2007     NA     NA     NA
3    242.1848      2017 LA GUAJIRA  0.7100496 0.02000174          EL MOLINO  2007   2016   2017   2018
4    473.7073      2017 LA GUAJIRA  1.3186028 0.03912942            FONSECA  2007   2016   2017   2018
5    214.6399      2017 LA GUAJIRA  1.1453524 0.01775162         HATO NUEVO  2007   2016   2017   2018
6    179.5909      2017 LA GUAJIRA  0.9805011 0.01482556 LA JAGUA DEL PILAR  2007   2016   2017   2018
7    246.2746      2017 LA GUAJIRA  1.0506924 0.02033173            URUMITA  2007   2016   2017   2018
8    260.0959      2017 LA GUAJIRA  0.8830655 0.02147866         VILLANUEVA  2007   2016   2017   2018
9   3088.7157      2017 LA GUAJIRA  3.0307344 0.25561378           RIOHACHA  2007   2016   2017   2018
10   546.0266      2017 LA GUAJIRA  1.4854163 0.04517060               <NA>    NA     NA     NA     NA
   AÑO_2 AÑO_3 AÑO_4 AÑO_5 AÑO_6 AÑO_7 AÑO_8 AÑO_9 Produccion.ton_1 Produccion.ton_10 Produccion.ton_11
1   2008  2009  2010  2011  2012  2013  2014  2015              421               582               418
2   2008    NA    NA    NA    NA    NA    NA    NA               15                NA                NA
3   2008  2009  2010  2011  2012  2013  2014  2015              219               251               246
4   2008  2009  2010  2011  2012  2013  2014  2015              171               297               190
5   2008  2009  2010  2011  2012  2013  2014  2015              171               109                75
6   2008  2009  2010  2011  2012  2013  2014  2015               81               517               395
7   2008  2009  2010  2011  2012  2013  2014  2015              963               929               827
8   2008  2009  2010  2011  2012  2013  2014  2015              348               841               723
9   2008  2009  2010  2011  2012  2013  2014  2015              132               297               222
10    NA    NA    NA    NA    NA    NA    NA    NA               NA                NA                NA
   Produccion.ton_12 Produccion.ton_2 Produccion.ton_3 Produccion.ton_4 Produccion.ton_5 Produccion.ton_6
1                390              431              340              258              215              351
2                 NA               21               NA               NA               NA               NA
3                232              192              217              144              120              275
4                207              142              170              211              146              245
5                 74               63               47               64               41               67
6                344              143              107              157              126              277
7                504              493              425              636              500             1009
8                602              370              490              320              439              665
9                222              185              215              240              159              306
10                NA               NA               NA               NA               NA               NA
   Produccion.ton_7 Produccion.ton_8 Produccion.ton_9 Rendimiento.t.ha_1 Rendimiento.t.ha_10
1               358              464              594                  1                   1
2                NA               NA               NA                  1                  NA
3               299              323              251                  1                   1
4               231              264              280                  1                   1
5                63               66              106                  2                   1
6               334              405              506                  1                   1
7               820              909              934                  1                   1
8               672              734              826                  1                   1
9               299              311              295                  1                   1
10               NA               NA               NA                 NA                  NA
   Rendimiento.t.ha_11 Rendimiento.t.ha_12 Rendimiento.t.ha_2 Rendimiento.t.ha_3 Rendimiento.t.ha_4
1                    1                   1                  1                  1                  1
2                   NA                  NA                  1                 NA                 NA
3                    1                   1                  1                  1                  1
4                    1                   1                  0                  1                  1
5                    1                   1                  1                  1                  1
6                    1                   1                  1                  1                  1
7                    1                   1                  0                  0                  1
8                    1                   1                  1                  1                  1
9                    1                   1                  1                  1                  1
10                  NA                  NA                 NA                 NA                 NA
   Rendimiento.t.ha_5 Rendimiento.t.ha_6 Rendimiento.t.ha_7 Rendimiento.t.ha_8 Rendimiento.t.ha_9
1                   1                  1                  1                  1                  1
2                  NA                 NA                 NA                 NA                 NA
3                   1                  1                  1                  1                  1
4                   1                  1                  1                  1                  1
5                   0                  1                  1                  1                  1
6                   0                  1                  1                  1                  1
7                   1                  1                  1                  1                  1
8                   1                  1                  1                  1                  1
9                   0                  1                  1                  1                  1
10                 NA                 NA                 NA                 NA                 NA
                         geometry
1  MULTIPOLYGON (((-72.59885 1...
2  MULTIPOLYGON (((-72.89246 1...
3  MULTIPOLYGON (((-72.96901 1...
4  MULTIPOLYGON (((-72.91056 1...
5  MULTIPOLYGON (((-72.6568 11...
6  MULTIPOLYGON (((-73.08581 1...
7  MULTIPOLYGON (((-73.00927 1...
8  MULTIPOLYGON (((-72.9918 10...
9  MULTIPOLYGON (((-72.89025 1...
10 MULTIPOLYGON (((-72.52248 1...
summary(ant_munic_stat)
 DPTO_CCDGO  MPIO_CCDGO              MPIO_CNMBR
 44:15      Length:15          ALBANIA    :1   
            Class :character   BARRANCAS  :1   
            Mode  :character   DIBULLA    :1   
                               DISTRACCIÓN:1   
                               EL MOLINO  :1   
                               FONSECA    :1   
                               (Other)    :9   
                                                        MPIO_CRSLC   MPIO_NAREA       MPIO_NANO   
 1954                                                        :4    Min.   : 179.6   Min.   :2017  
 1888                                                        :1    1st Qu.: 244.2   1st Qu.:2017  
 1935                                                        :1    Median : 546.0   Median :2017  
 1956                                                        :1    Mean   :1374.8   Mean   :2017  
 Decreto presidencial 609 del 26 de Marzo de 1996 y ratificad:1    3rd Qu.:1684.8   3rd Qu.:2017  
 Ordenanza 001 del 27 de Marzo del 2000                      :1    Max.   :7886.1   Max.   :2017  
 (Other)                                                     :6                                   
      DPTO_CNMBR   Shape_Leng      Shape_Area            MUNICIPIO     AÑO_1          AÑO_10    
 LA GUAJIRA:15   Min.   :0.710   Min.   :0.01483   BARRANCAS  :1   Min.   :2007   Min.   :2016  
                 1st Qu.:1.016   1st Qu.:0.02017   DIBULLA    :1   1st Qu.:2007   1st Qu.:2016  
                 Median :1.485   Median :0.04517   DISTRACCION:1   Median :2007   Median :2016  
                 Mean   :1.897   Mean   :0.11381   EL MOLINO  :1   Mean   :2007   Mean   :2016  
                 3rd Qu.:2.288   3rd Qu.:0.13948   FONSECA    :1   3rd Qu.:2007   3rd Qu.:2016  
                 Max.   :6.113   Max.   :0.65355   (Other)    :6   Max.   :2007   Max.   :2016  
                                                   NA's       :4   NA's   :4      NA's   :5     
     AÑO_11         AÑO_12         AÑO_2          AÑO_3          AÑO_4          AÑO_5          AÑO_6     
 Min.   :2017   Min.   :2018   Min.   :2008   Min.   :2009   Min.   :2010   Min.   :2011   Min.   :2012  
 1st Qu.:2017   1st Qu.:2018   1st Qu.:2008   1st Qu.:2009   1st Qu.:2010   1st Qu.:2011   1st Qu.:2012  
 Median :2017   Median :2018   Median :2008   Median :2009   Median :2010   Median :2011   Median :2012  
 Mean   :2017   Mean   :2018   Mean   :2008   Mean   :2009   Mean   :2010   Mean   :2011   Mean   :2012  
 3rd Qu.:2017   3rd Qu.:2018   3rd Qu.:2008   3rd Qu.:2009   3rd Qu.:2010   3rd Qu.:2011   3rd Qu.:2012  
 Max.   :2017   Max.   :2018   Max.   :2008   Max.   :2009   Max.   :2010   Max.   :2011   Max.   :2012  
 NA's   :5      NA's   :5      NA's   :4      NA's   :5      NA's   :5      NA's   :5      NA's   :5     
     AÑO_7          AÑO_8          AÑO_9      Produccion.ton_1 Produccion.ton_10 Produccion.ton_11
 Min.   :2013   Min.   :2014   Min.   :2015   Min.   : 15      Min.   :109.0     Min.   : 75.0    
 1st Qu.:2013   1st Qu.:2014   1st Qu.:2015   1st Qu.:150      1st Qu.:262.5     1st Qu.:198.0    
 Median :2013   Median :2014   Median :2015   Median :171      Median :321.5     Median :274.5    
 Mean   :2013   Mean   :2014   Mean   :2015   Mean   :269      Mean   :438.9     Mean   :351.6    
 3rd Qu.:2013   3rd Qu.:2014   3rd Qu.:2015   3rd Qu.:309      3rd Qu.:565.8     3rd Qu.:412.2    
 Max.   :2013   Max.   :2014   Max.   :2015   Max.   :963      Max.   :929.0     Max.   :827.0    
 NA's   :5      NA's   :5      NA's   :5      NA's   :4        NA's   :5         NA's   :5        
 Produccion.ton_12 Produccion.ton_2 Produccion.ton_3 Produccion.ton_4 Produccion.ton_5 Produccion.ton_6
 Min.   : 74.0     Min.   : 21.0    Min.   : 47.0    Min.   : 64.0    Min.   : 30.0    Min.   :  27.0  
 1st Qu.:210.8     1st Qu.:125.5    1st Qu.:164.2    1st Qu.:159.0    1st Qu.:121.5    1st Qu.: 221.0  
 Median :264.5     Median :180.0    Median :192.5    Median :204.5    Median :152.0    Median : 276.0  
 Mean   :299.1     Mean   :211.7    Mean   :234.2    Mean   :239.3    Mean   :193.4    Mean   : 343.5  
 3rd Qu.:378.5     3rd Qu.:281.0    3rd Qu.:309.2    3rd Qu.:253.5    3rd Qu.:201.0    3rd Qu.: 339.8  
 Max.   :602.0     Max.   :493.0    Max.   :490.0    Max.   :636.0    Max.   :500.0    Max.   :1009.0  
 NA's   :5         NA's   :4        NA's   :5        NA's   :5        NA's   :5        NA's   :5       
 Produccion.ton_7 Produccion.ton_8 Produccion.ton_9 Rendimiento.t.ha_1 Rendimiento.t.ha_10
 Min.   : 63.0    Min.   : 66.0    Min.   :106.0    Min.   :1.000      Min.   :1          
 1st Qu.:241.8    1st Qu.:273.0    1st Qu.:258.2    1st Qu.:1.000      1st Qu.:1          
 Median :299.0    Median :317.0    Median :306.5    Median :1.000      Median :1          
 Mean   :344.8    Mean   :392.4    Mean   :431.9    Mean   :1.091      Mean   :1          
 3rd Qu.:352.0    3rd Qu.:449.2    3rd Qu.:572.0    3rd Qu.:1.000      3rd Qu.:1          
 Max.   :820.0    Max.   :909.0    Max.   :934.0    Max.   :2.000      Max.   :1          
 NA's   :5        NA's   :5        NA's   :5        NA's   :4          NA's   :5          
 Rendimiento.t.ha_11 Rendimiento.t.ha_12 Rendimiento.t.ha_2 Rendimiento.t.ha_3 Rendimiento.t.ha_4
 Min.   :1           Min.   :1           Min.   :0.0000     Min.   :0.0        Min.   :1         
 1st Qu.:1           1st Qu.:1           1st Qu.:1.0000     1st Qu.:1.0        1st Qu.:1         
 Median :1           Median :1           Median :1.0000     Median :1.0        Median :1         
 Mean   :1           Mean   :1           Mean   :0.8182     Mean   :0.9        Mean   :1         
 3rd Qu.:1           3rd Qu.:1           3rd Qu.:1.0000     3rd Qu.:1.0        3rd Qu.:1         
 Max.   :1           Max.   :1           Max.   :1.0000     Max.   :1.0        Max.   :1         
 NA's   :5           NA's   :5           NA's   :4          NA's   :5          NA's   :5         
 Rendimiento.t.ha_5 Rendimiento.t.ha_6 Rendimiento.t.ha_7 Rendimiento.t.ha_8 Rendimiento.t.ha_9
 Min.   :0.0        Min.   :1          Min.   :1          Min.   :1          Min.   :1         
 1st Qu.:0.0        1st Qu.:1          1st Qu.:1          1st Qu.:1          1st Qu.:1         
 Median :1.0        Median :1          Median :1          Median :1          Median :1         
 Mean   :0.6        Mean   :1          Mean   :1          Mean   :1          Mean   :1         
 3rd Qu.:1.0        3rd Qu.:1          3rd Qu.:1          3rd Qu.:1          3rd Qu.:1         
 Max.   :1.0        Max.   :1          Max.   :1          Max.   :1          Max.   :1         
 NA's   :5          NA's   :5          NA's   :5          NA's   :5          NA's   :5         
          geometry 
 MULTIPOLYGON :15  
 epsg:4326    : 0  
 +proj=long...: 0  
                   
                   
                   
                   

5. Mapeando

#instalar paquete ("RColorBrewer")
library(RColorBrewer)
library(leaflet)
bins <- c(0, 25, 50, 100, 200, 400, 8000, 1200)
pal <- colorBin("YlOrRd", domain = ant_munic_stat$ Produccion.ton_12, bins = bins)

  mapa <- leaflet(data = ant_munic_stat) %>%
  addTiles() %>%
  addPolygons(label = ~ Produccion.ton_12,
              popup = ~MPIO_CNMBR,
              fillColor = ~pal( Produccion.ton_12),
              color = "#444444",
              weight = 1,
              smoothFactor = 0.5,
              opacity = 1.0,
              fillOpacity = 0.5,
              highlightOptions = highlightOptions(color = "white", weight = 2, bringToFront = TRUE)
              ) %>%
  addProviderTiles(providers$OpenStreetMap) %>%
  addLegend("bottomright", pal = pal, values = ~ Produccion.ton_12,
    title = "Producción de café en LA Guajira [Ton] (2018)",
    opacity = 1
  )
mapa
sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17134)

Matrix products: default

Random number generation:
 RNG:     Mersenne-Twister 
 Normal:  Inversion 
 Sample:  Rounding 
 
locale:
[1] LC_COLLATE=Spanish_Latin America.1252  LC_CTYPE=Spanish_Latin America.1252   
[3] LC_MONETARY=Spanish_Latin America.1252 LC_NUMERIC=C                          
[5] LC_TIME=Spanish_Latin America.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] leaflet_2.0.3       RColorBrewer_1.1-2  cowplot_1.0.0       ggrepel_0.8.2       GSODR_2.0.1        
 [6] rnaturalearth_0.1.0 viridis_0.5.1       viridisLite_0.3.0   sf_0.8-1            raster_3.0-12      
[11] maptools_0.9-9      rgeos_0.5-2         sp_1.4-1            forcats_0.5.0       stringr_1.4.0      
[16] dplyr_0.8.5         purrr_0.3.3         readr_1.3.1         tidyr_1.0.2         tibble_2.1.3       
[21] ggplot2_3.3.0       tidyverse_1.3.0     here_0.1           

loaded via a namespace (and not attached):
 [1] httr_1.4.1              jsonlite_1.6.1          modelr_0.1.6            assertthat_0.2.1       
 [5] cellranger_1.1.0        yaml_2.2.1              pillar_1.4.3            backports_1.1.5        
 [9] lattice_0.20-40         glue_1.3.2              digest_0.6.25           rvest_0.3.5            
[13] leaflet.providers_1.9.0 colorspace_1.4-1        htmltools_0.4.0         pkgconfig_2.0.3        
[17] broom_0.5.5             haven_2.2.0             scales_1.1.0            generics_0.0.2         
[21] farver_2.0.3            ellipsis_0.3.0          withr_2.1.2             cli_2.0.2              
[25] magrittr_1.5            crayon_1.3.4            readxl_1.3.1            fs_1.4.1               
[29] fansi_0.4.1             nlme_3.1-145            xml2_1.3.1              foreign_0.8-76         
[33] class_7.3-15            tools_3.6.3             data.table_1.12.8       hms_0.5.3              
[37] lifecycle_0.2.0         munsell_0.5.0           reprex_0.3.0            compiler_3.6.3         
[41] e1071_1.7-3             rlang_0.4.5             classInt_0.4-2          units_0.6-6            
[45] grid_3.6.3              rstudioapi_0.11         htmlwidgets_1.5.1       crosstalk_1.1.0.1      
[49] labeling_0.3            gtable_0.3.0            codetools_0.2-16        DBI_1.1.0              
[53] R6_2.4.1                gridExtra_2.3           lubridate_1.7.8         knitr_1.28             
[57] rprojroot_1.3-2         KernSmooth_2.23-16      stringi_1.4.6           Rcpp_1.0.4             
[61] vctrs_0.2.4             dbplyr_1.4.2            tidyselect_1.0.0        xfun_0.12              

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

LS0tDQp0aXRsZTogIkVzdGFkaXN0aWNhcyBtdW5pY2lwYWxlcyBkZSBsYSBhZ3JpY3VsdHVyYSBlbiBMYSBHdWFqaXJhICINCmF1dGhvcjogIkVkdWFyZG8gTGV6YW1hIE1lbmVzZXMiDQpkYXRlOiAgIjIyIGFicmlsIGRlIDIwMjAiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KIiMjIE15IG5vdGVib29rIg0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KIyAxLiBDdWFkZXJubyBkZSBSIE1hcmtkb3duIHNlIGlsdXN0cmEgbGFzIGVzdGFkw61zdGljYXMgYWdyaWNvbGFzIHBhcmEgZWwgZGVwYXJ0YW1lbnRvIGRlIExBIEdVQUpJUkENCg0KU2Vnw7puIHVuIGFydGljdWxvIHB1YmxpY2FkbyBlbiBsYSBwYWdpbmEgZGVsIEluc3RpdHV0byBHZW9ncsOhZmljbyBBZ3VzdMOtbiBDb2RhenppIChJR0FDKSBsbGFtYWRvICIgSGFzdGEgZW4gbGEgc2VjYSBHdWFqaXJhbGEgYWN0aXZpZGFkIGFncm9wZWN1YXJpYSBlc3TDoSBleHRyYW1pbGl0YWRhIiwgaW5mb3JtYSBxdWUgYSBwZXNhciBkZSBxdWUgZWwgMTQuOSUgZGVsIGRlcGFydGFtZW50byBjdWVudGEgY29uIHN1ZWxvcyBhcHRvcyBwYXJhIGVsIGVzdGFibGVjaW1pZW50byBkZSBjdWx0aXZvcyB5IGdhbmFkZXLDrWEgLCBhY3R1YWxtZW50ZSBzZSBoYWNlIHVzbyBkZWwgMjAuNSUuDQoNCg0KIyAyLiBFc3RhZMOtc3RpY2FzIGVzcGFjaWFsZXMgZGVsIGNvbXBvcnRhbWllbnRvIGFncsOtY29sYSBlbiBlbCBkZXBhcnRhbWVudG8NCg0KRWwgSUdBQyBkaWNlIHF1ZSBlbiBMQSBHVUFKSVJBIGFjdHVhbG1lbnRlIGVsIDIwLDUlIGN1ZW50YSBjb24gcHJvZHVjY2nDs24gZGUgY3VsdGl2b3MgZGUgeXVjYSwgYmFuYW5vIHkgZnJ1dGFzLCBlbiBjb25iaW5hY2nDs24gY29uIGdhbmFkbyB0YW50byB2YWN1bm8gY29tbyBjYXByaW5vOyBlbiBtdW5pY2lwaW9zIGNvbW8gRGlidWxsYSwgU2FuIEp1YW4gZGVsIENlc2FyLCBSaW9oYWNoYSwgRGlzdHJhY2Npw7NuLCBNYWljYW8sIEhhdG8gTnVldm8sIEFsYmFuaWEsIEJhcnJhbmNhcywgRm9uc2VjYSwgU2FuIEp1YW4gZGVsIENlc2FyLCBFbCBNb2xpbm8sIFZpbGxhbnVldmEsIExhIEphZ3VhIGRlbCBQaWxhciwgRWwgTW9saW5vIHkgVXJ1bWl0YS4NCmBgYHtyfQ0Kcm0obGlzdD1scygpKQ0KYGBgDQoNCkludGFsYWNpw7NuIGRlIFBhcXVldGVzIG5lY2VzYXJpb3MNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpsaXN0Lm9mLnBhY2thZ2VzIDwtIGMoImhlcmUiLCAidGlkeXZlcnNlIiwgInJnZW9zIiwgIm1hcHRvb2xzIiwgInJhc3RlciIsICJzZiIsICAidmlyaWRpcyIsICJybmF0dXJhbGVhcnRoIiwgIkdTT0RSIiwgImdncmVwZWwiLCAiY293cGxvdCIpDQpuZXcucGFja2FnZXMgPC0gbGlzdC5vZi5wYWNrYWdlc1shKGxpc3Qub2YucGFja2FnZXMgJWluJSBpbnN0YWxsZWQucGFja2FnZXMoKVssIlBhY2thZ2UiXSldDQppZihsZW5ndGgobmV3LnBhY2thZ2VzKSkgaW5zdGFsbC5wYWNrYWdlcyhuZXcucGFja2FnZXMpDQpgYGANCmNhcmdhciBsaWJyZXJpYXMNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpsaWJyYXJ5KGhlcmUpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkocmdlb3MpDQpsaWJyYXJ5KG1hcHRvb2xzKQ0KbGlicmFyeShyYXN0ZXIpDQpsaWJyYXJ5KHNmKQ0KbGlicmFyeSh2aXJpZGlzKQ0KbGlicmFyeShybmF0dXJhbGVhcnRoKQ0KbGlicmFyeShHU09EUikNCmxpYnJhcnkoZ2dyZXBlbCkNCmxpYnJhcnkoY293cGxvdCkNCmBgYA0KIyAzLiBFeHBsb3JhbmRvIGVzdGFkaXN0aWNhcyBkZSBhZ3JpY3VsdHVyYSBlbiBMQSBHdWFqaXJhDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpkYXRvcyA8LSByZWFkLmNzdigiQzovVXNlcnMvZmFtaWxpYXIvRG93bmxvYWRzL2diMi9MYSBndWFqaXJhL0V2YWxfQWdyb19NdW5fTGFfR3VhamlyYV9FVkEgKDEpLmNzdiIpDQpjbGFzcyhkYXRvcykNCmBgYA0KDQpFbiBsYSB0YWJsYSBzaWd1aWVudGUgcG9kZW1vcyB2ZXIgbGFzIHByaW1lcmFzIDYgbGluZWFzIGRlIHRvZGEgbGEgYmFzZSBkZSBkYXRvcyBkZSBsYSBldmFsdWFjacOzbiBhZ3JhcmlhIGRlIExhIEd1YWppcmEgLCBjb24gbGEgY3VhbCBzZSB2YSBhIHRyYWJhamFyIGVuIGVzdGUgY3VhZGVybm8uDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KaGVhZChkYXRvcykNCmBgYA0KDQpTZSBoYWNlIHZpc3VhbGlzYXIgbG9zIMO6bHRpbW9zIHNlaXMgZGF0b3MgZGUgIHRvZGEgbGEgaW5mb3JtYWNpw7NuIHN1bWluaXN0cmFkYSBwb3IgZWwgR09WLkNPIERhdG9zIEFiaWVydG9zLA0KaW5kaWNhIHF1ZSBzZSB0cmFiYWphcmFuIGNvbiAzMjg2IGZpbGFzIHF1ZSBlc3RhbiBjb21wdWVzdGFzIHBvciAxNyBjb2x1bW5hcy4NCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCnRhaWwoZGF0b3MpDQpgYGANCg0KDQpTZSBpbmRpY2EgZW4gbGEgc2lndWllbnRlIHRhYmxhIGFsZ3Vub3MgcmVuZGltaWVudG9zIGRlIGxvcyBjdWx0aXZvcyBkZSBsYSByZWdpw7NuICwgZW4gbGEgY3VhbCBwb2RlbW9zIGRlc3RhY2FyIHF1ZSBzZSB0aWVuZSBsb3MgbWF5b3JlcyByZW5kaW1pZW50b3MgZW4gbG9zIGN1bHRpdm9zIGRlIGZydXRhbGVzIGNvbiAxMi45IHRvbi9oYSAsIHNlZ3VpZG8gcG9yICBob3J0YWxpemFzIGNvbiA5LjMgdG9uL2hhICwgIGNlcmVhbGVzIHkgZmlicmFzIGVudHJlIG90cm9zICANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmRhdG9zICU+JQ0KICBncm91cF9ieShNVU5JQ0lQSU8sR1JVUE8uREUuQ1VMVElWTykgJT4lDQogIHN1bW1hcmlzZShyZW5kX3Byb20gPSBtZWFuKFJlbmRpbWllbnRvLnQuaGEsbmEucm0gPSBUUlVFKSkgLT4gcmVuZF9yZXN1bWVuDQojIyMgbHVlZ28gbW9zdHJhcsOhIGxvcyBwcmltZXJvcyA2IGRhdG9zIGRlIHRvZGEgbGEgdGFibGENCmhlYWQocmVuZF9yZXN1bWVuKQ0KYGBgDQoNCkFxdcOtIHBvZGVtb3MgdmlzdWFsaXphciAgYWxndW5vcyBncnVwb3MgZGUgY3VsdGl2byAgY29uIHN1IHJlbmRpbWllbnRvIGVuIGVsIGRlcGFydGFtZW50byBkZSBMYSBHdWFqaXJhDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KZGF0b3MgJT4lDQogIGdyb3VwX2J5KEdSVVBPLkRFLkNVTFRJVk8pICU+JQ0KICBzdW1tYXJpc2UocmVuZF9kZXAgPSBtZWFuKFJlbmRpbWllbnRvLnQuaGEsbmEucm0gPSBUUlVFKSkgLT4gcmVuZF9ndWFqaXJhDQoNCnJlbmRfZ3VhamlyYQ0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpkYXRvcyAlPiUgDQogIGZpbHRlcihBw5FPPT0yMDE4KSAlPiUgDQogIGdyb3VwX2J5KEdSVVBPLkRFLkNVTFRJVk8sIE1VTklDSVBJTykgJT4lDQogIHN1bW1hcml6ZShtYXhfcmVuZCA9IG1heChSZW5kaW1pZW50by50LmhhLG5hLnJtID0gVFJVRSkpICU+JQ0KICAgIHNsaWNlKHdoaWNoLm1heChtYXhfcmVuZCkpIC0+IHJlbmRfbWF4XzE4DQoNCnJlbmRfbWF4XzE4DQpgYGANCg0KRW4gbG9zIHNpZ3VpZW50ZXMgZGF0b3Mgc2UgdGllbmUgaW5mb3JtYWNpw7NuIGRlbCBncnVwbyBkZSBjdWx0aXZvIHBvciBtdW5pY2lwaW8gY29uIHN1IMOhcmVhIG1heGltYSBjb3NlY2hhZGENCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpkYXRvcyAlPiUgDQogIGZpbHRlcihBw5FPPT0yMDE4KSAlPiUgDQogIGdyb3VwX2J5KEdSVVBPLkRFLkNVTFRJVk8sIE1VTklDSVBJTykgJT4lDQogIHN1bW1hcml6ZShtYXhfYXJlYV9jb3NlY2hhID0gbWF4KEEucmVhLkNvc2VjaGFkYS5oYSwgbmEucm0gPSBUUlVFKSkgJT4lDQogICAgc2xpY2Uod2hpY2gubWF4KG1heF9hcmVhX2Nvc2VjaGEpKSAtPiBhcmVhX2Nvc2VjaGFfbWF4DQoNCmFyZWFfY29zZWNoYV9tYXgNCmBgYA0KDQpQb2RlbW9zIHZlcmlmaWNhciB1biBjdWx0aXZvIHkgbXVuaWNpcGlvIGVuIGVzcGVjaWFsICwgcGFyYSBlc3RlIGNhc28gdG9tYXJlbW9zIGVsIEJhbmFubyAsIGVuIGVsIG11bmljaXBpbyBkZSBSaW9oYWNoYQ0KYGBge3Igd2FybmluZz1GQUxTRX0NCmRhdG9zICU+JSANCiAgZmlsdGVyKE1VTklDSVBJTz09IlJJT0hBQ0hBIiAmIFNVQkdSVVBPLkRFLkNVTFRJVk89PSJCQU5BTk8iKSAlPiUgDQogIGdyb3VwX2J5KEHDkU8sIENVTFRJVk8pIC0+ICByaW9oYWNoYV9iYW5hbm8NCg0KcmlvaGFjaGFfYmFuYW5vDQpgYGANCg0KDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KIyB3ZSB1c2UgdGhlIGdncGxvdCAyIGxpYnJhcnkNCmcgPC0gZ2dwbG90KGFlcyh4PUHDkU8sIHk9UHJvZHVjY2lvbi50b24vMTAwMCksIGRhdGEgPSByaW9oYWNoYV9iYW5hbm8pICsgZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknKSArIGxhYnMoeT0nUHJvZHVjY2lvbi50b25bVG9uIHggMTAwMF0nKQ0KYGBgDQoNCg0KU2UgcmVhbGl6YSB1biBncmFmaWNvIGVuIGRvbmRlIG5vcyBtdWV0cmEgbGEgZXZvbHVjacOzbiBkZWwgYmFuYW5vIGVuIFJpb2hhY2hhICwgeSBwb2RlbW9zIG9ic2VydmFyIHF1ZSBoYSB0ZW5pZG8gdW4gaW5jcmVtZW50byBlbiBzdSBwcm9kdWNjacOzbiBkZXNkZSBlbCAyMDA3IGhhc3RhIGVsIDIwMTgsIHBhc2FuZG8gZGVsIDIwMDcgZGUgbWVub3MgZGUgNTAwMCB0b25lbGFkYXMgIGEgbWFzIDgwLjAwMCB0b24gZW4gZWwgMjAxOA0KYGBge3Igd2FybmluZz1GQUxTRX0NCmcgKyBnZ3RpdGxlKCJFdm9sdWNpb24gZGUgcHJvZHVjY2lvbiBCYW5hbm8gZW4gUmlvaGFjaGEgZGUgMjAwNyBhIDIwMTgiKSArIGxhYnMoY2FwdGlvbj0gIkJhc2VkIG9uIEVNQSBkYXRhIChEQU5FLCAyMDE4KSIpDQpgYGANCg0KDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpkYXRvcyAlPiUgDQogIGZpbHRlcihBw5FPPT0yMDE4KSAlPiUgDQogIGdyb3VwX2J5KEdSVVBPLkRFLkNVTFRJVk8pICU+JQ0KICBzdW1tYXJpemUoc3VtX2FyZWFfY29zZWNoYSA9IHN1bShBLnJlYS5Db3NlY2hhZGEuaGEsIG5hLnJtID0gVFJVRSkpICU+JQ0KICAgICBhcnJhbmdlKGRlc2Moc3VtX2FyZWFfY29zZWNoYSkpIC0+IHRvdGFsX2FyZWFfY29zZWNoYQ0KDQp0b3RhbF9hcmVhX2Nvc2VjaGENCmBgYA0KRW4gbGEgYW50ZXJpb3IgdGFibGEgc2UgY2FsY3Vsw7MgY2FkYSBncnVwbyBkZSBjdWx0aXZvIGxhIHN1bWEgZGVsIMOhcmVhIGRlIHN1IGNvc2VjaGEgLCBkb25kZSBzZSBkZXN0YWNhIGxvcyBjZXJlYWxlcyANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmRhdG9zICU+JQ0KICBmaWx0ZXIoR1JVUE8uREUuQ1VMVElWTz09Ik9UUk9TIFBFUk1BTkVOVEVTIiAmIEHDkU89PTIwMTgpICU+JQ0KICBncm91cF9ieShDVUxUSVZPKSAlPiUNCiAgc3VtbWFyaXplKHN1bV9jb3NlY2hhID0gc3VtKEEucmVhLkNvc2VjaGFkYS5oYSwgbmEucm0gPSBUUlVFKSkgJT4lDQogICAgIGFycmFuZ2UoZGVzYyhzdW1fY29zZWNoYSkpIC0+IHRvdGFsX2Nvc2VjaGENCg0KDQp0b3RhbF9jb3NlY2hhDQpgYGANCkFxdcOtIHNlIG11ZXN0cmFuIG90cm9zIGRhdG9zIGRlIG90cm9zIGN1bHRpdm9zIHBlcm1hbmVudGVzICwgZW5jb250cmFuZG8gcHJpbWVybyBhbCBDYWbDqSBjb24gbGEgbWF5b3Igw6FyZWEgY29zZWNoYWRhDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpkYXRvcyAlPiUgDQogIGZpbHRlcihBw5FPPT0yMDE4ICYgR1JVUE8uREUuQ1VMVElWTz09Ik9UUk9TIFBFUk1BTkVOVEVTIikgJT4lIA0KICBncm91cF9ieShDVUxUSVZPLCBNVU5JQ0lQSU8pICU+JQ0KICBzdW1tYXJpemUobWF4X2FyZWEyID0gbWF4KEEucmVhLkNvc2VjaGFkYS5oYSwgbmEucm0gPSBUUlVFKSkgJT4lDQogICAgc2xpY2Uod2hpY2gubWF4KG1heF9hcmVhMikpIC0+IGFyZWFfY29zZWNoYTINCg0KYXJlYV9jb3NlY2hhMg0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQp0b3RhbF9hcmVhX2Nvc2VjaGEkQ1VMVElWTyA8LSBhYmJyZXZpYXRlKHRvdGFsX2FyZWFfY29zZWNoYSRHUlVQTy5ERS5DVUxUSVZPLCAzKQ0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQojIHdlIHVzZSB0aGUgZ2dwbG90IDIgbGlicmFyeQ0KZyA8LSBnZ3Bsb3QoYWVzKHg9Q1VMVElWTywgeT1zdW1fYXJlYV9jb3NlY2hhKSwgZGF0YSA9IHRvdGFsX2FyZWFfY29zZWNoYSkgKyBnZW9tX2JhcihzdGF0PSdpZGVudGl0eScpICsgbGFicyh5PSdUb3RhbCBIYXJ2ZXN0ZWQgQXJlYSBbSGFdJykNCmBgYA0KDQpCYXNhZG8gZW4gbGEgaW5mb3JtYWNpw7NuIHNlbGVjY2lvbmFkYSBzZSByZWFsaXphIHVuIGdyYWZpY28gZG9uZGUgc2UgbXVlc3RyYSBlbCDDoXJlYSBjb3NlY2hhZGEgcG9yIGdydXBvIGRlIGN1bHRpdm8gZW4gZWwgMjAxOCBwYXJhIExhIEd1YWppcmEsIGRvbmRlIGxhIG1heW9yIMOhcmVhIGNvc2NoYWRhIGVzIHBhcmEgbG9zIGNlcmVhbGVzLg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmcrIGdndGl0bGUoIlRvdGFsIGFyZWEgY29zZWNoYWRhIHBvciBncnVwbyBkZSBjdWx0aXZvIGVuIDIwMTggZm9yIExhIEd1YWppcmEiKSArIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogICBsYWJzKGNhcHRpb249ICJCYXNlZCBvbiBFTUEgZGF0YSAoREFORSwgMjAxOCkiKQ0KYGBgDQojIDQuIEpvaW5pbmcgZXN0YWRpc3RpY2FzIGRlIGFncmljdWx0dXJhIHBvciBtdW5pY2lwaW9zDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpsaWJyYXJ5KHNmKQ0KYGBgDQoNCg0KDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KYW50X211bmljIDwtIHNmOjpzdF9yZWFkKCJDOi9Vc2Vycy9mYW1pbGlhci9Eb3dubG9hZHMvZ2IyL0xhIGd1YWppcmEvNDRfTEFfR1VBSklSQS9BRE1JTklTVFJBVElWTy9NR05fTVBJT19QT0xJVElDTy5zaHAiKQ0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQphbnRfbXVuaWMNCmBgYA0KDQojIyMjIyBkb24ndCBkbyB0aGlzIGluc2lkZSB0aGUgbm90ZWJvb2sgICAjIyMjIyBkbyBpdCBpbiB0aGUgUiBjb25zb2xlICAgIyMjIyMgP2xlZnRfam9pbg0KIyMNCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmRhdG9zICU+JSBmaWx0ZXIgKE1VTklDSVBJTyA9PSJSSU9IQUNIQSIpIC0+ICBtZWRfZGF0b3MNCm1lZF9kYXRvcw0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpjbGFzcyhtZWRfZGF0b3MkQzBELk1VTi4pDQoNCmBgYA0KDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KZGF0b3MyIDwtIGRhdG9zDQpgYGANCg0KDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KZGF0b3MyJFRFTVAgPC0gIGFzLmNoYXJhY3RlcihkYXRvczIkQzBELk1VTi4pDQpgYGANCg0KYGBge3J9DQpkYXRvczIkTVBJT19DQ0RHTyA8LSBhcy5mYWN0b3IocGFzdGUoZGF0b3MyJFRFTVAsIHNlcD0iIikpICANCg0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpoZWFkKGRhdG9zMikNCmBgYA0KDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpkYXRvczIgJT4lIGZpbHRlcihDVUxUSVZPID09ICJDQUZFIikgIC0+IGRhdG9zMw0KZGF0b3MzDQpgYGANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmhlYWQoZGF0b3MzKQ0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpjbGFzcyhkYXRvczMpDQpgYGANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoZHBseXIpDQpgYGANCg0KDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KZGF0b3M0IDwtIGRhdG9zMyAlPiUgZHBseXI6OnNlbGVjdChNVU5JQ0lQSU8sIEHDkU8sIFByb2R1Y2Npb24udG9uLCBSZW5kaW1pZW50by50LmhhLE1QSU9fQ0NER08pIA0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpkYXRvczQNCmBgYA0KDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KZGF0b3M0ICU+JSANCiAgZ2F0aGVyKCJBw5FPIiwgIlByb2R1Y2Npb24udG9uIiwgIlJlbmRpbWllbnRvLnQuaGEiLCBrZXkgPSB2YXJpYWJsZSwgdmFsdWUgPSBudW1lcmljKQ0KZGF0b3M0DQpgYGANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmhlYWQoZGF0b3M0KQ0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpkYXRvczQgJT4lIA0KICBncm91cF9ieShNUElPX0NDREdPKSAlPiUgDQogIG11dGF0ZShWaXNpdCA9IDE6bigpKSAlPiUgDQogIGdhdGhlcigiQcORTyIsIlByb2R1Y2Npb24udG9uIiwiUmVuZGltaWVudG8udC5oYSIsIGtleSA9IHZhcmlhYmxlLCB2YWx1ZSA9IG51bWVyaWMpICU+JSANCiAgdW5pdGUoY29tYmksIHZhcmlhYmxlLCBWaXNpdCkgJT4lDQogIHNwcmVhZChjb21iaSwgbnVtZXJpYykgLT4gZGF0b3M1DQpkYXRvczUNCmBgYA0KDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KaGVhZChkYXRvczUpDQpgYGANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCnRhaWwoZGF0b3M1KQ0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpjbGFzcyhkYXRvczUpDQpgYGANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmFudF9tdW5pYzIgPC0gYW50X211bmljDQphbnRfbXVuaWMyIA0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQphbnRfbXVuaWNfc3RhdCA9IGxlZnRfam9pbihhbnRfbXVuaWMsZGF0b3M1LCBieSA9ICJNUElPX0NDREdPIikNCmFudF9tdW5pY19zdGF0DQpgYGANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCnN1bW1hcnkoYW50X211bmljX3N0YXQpDQpgYGANCiMgNS4gTWFwZWFuZG8NCg0KDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KI2luc3RhbGFyIHBhcXVldGUgKCJSQ29sb3JCcmV3ZXIiKQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQpsaWJyYXJ5KGxlYWZsZXQpDQpgYGANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmJpbnMgPC0gYygwLCAyNSwgNTAsIDEwMCwgMjAwLCA0MDAsIDgwMDAsIDEyMDApDQpwYWwgPC0gY29sb3JCaW4oIllsT3JSZCIsIGRvbWFpbiA9IGFudF9tdW5pY19zdGF0JCBQcm9kdWNjaW9uLnRvbl8xMiwgYmlucyA9IGJpbnMpDQoNCiAgbWFwYSA8LSBsZWFmbGV0KGRhdGEgPSBhbnRfbXVuaWNfc3RhdCkgJT4lDQogIGFkZFRpbGVzKCkgJT4lDQogIGFkZFBvbHlnb25zKGxhYmVsID0gfiBQcm9kdWNjaW9uLnRvbl8xMiwNCiAgICAgICAgICAgICAgcG9wdXAgPSB+TVBJT19DTk1CUiwNCiAgICAgICAgICAgICAgZmlsbENvbG9yID0gfnBhbCggUHJvZHVjY2lvbi50b25fMTIpLA0KICAgICAgICAgICAgICBjb2xvciA9ICIjNDQ0NDQ0IiwNCiAgICAgICAgICAgICAgd2VpZ2h0ID0gMSwNCiAgICAgICAgICAgICAgc21vb3RoRmFjdG9yID0gMC41LA0KICAgICAgICAgICAgICBvcGFjaXR5ID0gMS4wLA0KICAgICAgICAgICAgICBmaWxsT3BhY2l0eSA9IDAuNSwNCiAgICAgICAgICAgICAgaGlnaGxpZ2h0T3B0aW9ucyA9IGhpZ2hsaWdodE9wdGlvbnMoY29sb3IgPSAid2hpdGUiLCB3ZWlnaHQgPSAyLCBicmluZ1RvRnJvbnQgPSBUUlVFKQ0KICAgICAgICAgICAgICApICU+JQ0KICBhZGRQcm92aWRlclRpbGVzKHByb3ZpZGVycyRPcGVuU3RyZWV0TWFwKSAlPiUNCiAgYWRkTGVnZW5kKCJib3R0b21yaWdodCIsIHBhbCA9IHBhbCwgdmFsdWVzID0gfiBQcm9kdWNjaW9uLnRvbl8xMiwNCiAgICB0aXRsZSA9ICJQcm9kdWNjacOzbiBkZSBjYWbDqSBlbiBMQSBHdWFqaXJhIFtUb25dICgyMDE4KSIsDQogICAgb3BhY2l0eSA9IDENCiAgKQ0KYGBgDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQptYXBhDQpgYGANCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCnNlc3Npb25JbmZvKCkNCmBgYA0KDQoNCiMNCkFkZCBhIG5ldyBjaHVuayBieSBjbGlja2luZyB0aGUgKkluc2VydCBDaHVuayogYnV0dG9uIG9uIHRoZSB0b29sYmFyIG9yIGJ5IHByZXNzaW5nICpDdHJsK0FsdCtJKi4NCg0KV2hlbiB5b3Ugc2F2ZSB0aGUgbm90ZWJvb2ssIGFuIEhUTUwgZmlsZSBjb250YWluaW5nIHRoZSBjb2RlIGFuZCBvdXRwdXQgd2lsbCBiZSBzYXZlZCBhbG9uZ3NpZGUgaXQgKGNsaWNrIHRoZSAqUHJldmlldyogYnV0dG9uIG9yIHByZXNzICpDdHJsK1NoaWZ0K0sqIHRvIHByZXZpZXcgdGhlIEhUTUwgZmlsZSkuDQoNClRoZSBwcmV2aWV3IHNob3dzIHlvdSBhIHJlbmRlcmVkIEhUTUwgY29weSBvZiB0aGUgY29udGVudHMgb2YgdGhlIGVkaXRvci4gQ29uc2VxdWVudGx5LCB1bmxpa2UgKktuaXQqLCAqUHJldmlldyogZG9lcyBub3QgcnVuIGFueSBSIGNvZGUgY2h1bmtzLiBJbnN0ZWFkLCB0aGUgb3V0cHV0IG9mIHRoZSBjaHVuayB3aGVuIGl0IHdhcyBsYXN0IHJ1biBpbiB0aGUgZWRpdG9yIGlzIGRpc3BsYXllZC4NCg==