De cada uno de los siguientes ejercicios, determinar cómo estará la subpoblación en 50 generaciones. Además, deben realizar un gráfico para visualizar el comportamiento de la población de cada organismo.

Ejercicio 1

En un parche de bosque húmedo de Sarapiquí crece una población de 300 plantas de Heliconia latispatha. Las brácteas son hojas modificadas de color vistoso que rodean las pequeñas flores verdaderas de la inflorescencia. En esta población, el 75 % de las plantas tiene brácteas rojas, con genotipos RR o Rr, por lo que el alelo R es dominante. El 25 % restante tiene brácteas amarillas, con genotipo rr, y el alelo r es recesivo.

La reproducción de estas plantas depende de la polinización. Los colibríes visitan las inflorescencias para alimentarse del néctar, y el color de las brácteas es la principal señal que los atrae. Cuando un colibrí se posa y luego vuela a otra planta, transporta polen de una inflorescencia a otra, lo que permite la formación de frutos. Una inflorescencia visitada con frecuencia produce más frutos y, por lo tanto, más semillas que pueden dar origen a nuevas plantas.

Durante una temporada de floración se contó el número de frutos por inflorescencia. Las plantas de brácteas rojas produjeron en promedio 14 frutos, mientras que las de brácteas amarillas produjeron 11.

Supuesto de tiempo: una generación equivale a 4 años. FitnessRR <- 14/225 FitnessRR

Fitnessaa <- 11/75 Fitnessaa

FitnessAA/Fitnessaa

library(deSolve)

modelo <- function(time, state, parameters) {
  with(as.list(c(state, parameters)), {
    # Parámetros de fitness
    w_RR <- 0.062  # Fitness relativo de RR
    w_aa <- 0.147 # Fitness relativo de aa
    
    # Frecuencias alélicas
    p <- R  # Frecuencia de R
    q <- a  # Frecuencia de a
    
    # Fitness promedio poblacional
    w_prom <- p^2 * w_RR + q^2 * w_aa  
    
    # Tasa de cambio en la frecuencia del alelo A
    dp <- (p * q * (w_RR - w_aa)) / w_prom
    dq <- -dp  # La suma de frecuencias debe ser 1
    
    return(list(c(dp, dq)))
  })
}

<!-- rnb-source-end -->


<!-- rnb-output-end -->

<!-- rnb-output-begin eyJkYXRhIjoiRXJyb3I6IHNlIGludGVudGEgdXNhciB1biBub21icmUgZGUgdmFyaWJsZSBkZSBsb25naXR1ZCBjZXJvXG4ifQ== -->

Error: se intenta usar un nombre de varible de longitud cero




<!-- rnb-output-end -->

<!-- rnb-chunk-end -->


<!-- rnb-text-begin -->



# Condiciones iniciales
estado_inicial <- c(R = 0.062, a = 0.147)

# Parámetros
parametros <- NULL

# Tiempo
tiempo <- seq(0, 50, by = 0.5)






<!-- rnb-text-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-output-begin eyJkYXRhIjoiXG48IS0tIHJuYi1zb3VyY2UtYmVnaW4gZXlKa1lYUmhJam9pWUdCZ2NseHVjMjlzSUR3dElHOWtaU2g1SUQwZ1pYTjBZV1J2WDJsdWFXTnBZV3dzSUhScGJXVnpJRDBnZEdsbGJYQnZMQ0JtZFc1aklEMGdiVzlrWld4dkxDQndZWEp0Y3lBOUlIQmhjbUZ0WlhSeWIzTXBJQ01qSUVWemRHRWdac096Y20xMWJHRWdiV1VnY21WemRXVnNkbVVnYkdFZ1pXTjFZV05wdzdOdUlHUnBabVZ5Wlc1amFXRnNYRzVjYmx4dWRHRnBiQ2h6YjJ3cFhHNWNibUJnWUNKOSAtLT5cblxuYGBgclxuc29sIDwtIG9kZSh5ID0gZXN0YWRvX2luaWNpYWwsIHRpbWVzID0gdGllbXBvLCBmdW5jID0gbW9kZWxvLCBwYXJtcyA9IHBhcmFtZXRyb3MpICMjIEVzdGEgZsOzcm11bGEgbWUgcmVzdWVsdmUgbGEgZWN1YWNpw7NuIGRpZmVyZW5jaWFsXG5cblxudGFpbChzb2wpXG5cbmBgYFxuXG48IS0tIHJuYi1zb3VyY2UtZW5kIC0tPlxuIn0= -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxuc29sIDwtIG9kZSh5ID0gZXN0YWRvX2luaWNpYWwsIHRpbWVzID0gdGllbXBvLCBmdW5jID0gbW9kZWxvLCBwYXJtcyA9IHBhcmFtZXRyb3MpICMjIEVzdGEgZsOzcm11bGEgbWUgcmVzdWVsdmUgbGEgZWN1YWNpw7NuIGRpZmVyZW5jaWFsXG5cblxudGFpbChzb2wpXG5cbmBgYCJ9 -->

```r
sol <- ode(y = estado_inicial, times = tiempo, func = modelo, parms = parametros) ## Esta fórmula me resuelve la ecuación diferencial


tail(sol)
       time             R     a
 [96,] 47.5 -5.438880e-40 0.209
 [97,] 48.0 -2.282052e-40 0.209
 [98,] 48.5 -9.575064e-41 0.209
 [99,] 49.0 -4.017518e-41 0.209
[100,] 49.5 -1.685675e-41 0.209
[101,] 50.0 -7.072778e-42 0.209
# Graficar los resultados
plot(sol,
     xlab = "Tiempo", ylab = "Frecuencia de alelos",
     col = c("blue", "red"), lwd = 2) 

head(sol)

library(ggplot2)

```{r}
Error: se intenta usar un nombre de varible de longitud cero
```{r}
Error: se intenta usar un nombre de varible de longitud cero
# Graficar con ggplot2 
ggplot(df, aes(x = tiempo)) +
  geom_line(aes(y = log(R), color = "Alelo R")) + 
  geom_line(aes(y = log(a), color = "Alelo a")) +
  labs(title = "Evolución de alelos genéticos en una población",
       x = "Tiempo", y = "Frecuencia de alelos") +
  scale_color_manual(name = "Alelos", values = c("blue", "red")) +
  theme_minimal()
Error en ggplot(df, aes(x = tiempo)): 
  no se pudo encontrar la función "ggplot"

Ejercicio 2

En una finca de Upala se estudian 200 árboles de cacao criollo. El color de la mazorca está controlado por un gen con dos alelos: R, que produce mazorca roja y es dominante, y r, que produce mazorca verde y es recesivo. El 60 % de los árboles tiene mazorca roja, con genotipos RR o Rr, y el 40 % tiene mazorca verde, con genotipo rr.

El cacao se reproduce mediante flores que aparecen directamente sobre el tronco y las ramas gruesas. Estas flores son polinizadas principalmente por pequeños insectos, como los mosquitos del género Forcipomyia, que se desplazan entre flores buscando alimento. Para que una flor se convierta en mazorca, el polen debe llegar a su estigma y la planta debe ser compatible con ese polen, ya que el cacao tiene un sistema de autoincompatibilidad que favorece el cruce entre árboles distintos. Una flor bien polinizada se transforma en una mazorca que contiene semillas, y las semillas son el producto que el agricultor cosecha. El color de la mazorca depende del genotipo de la planta que la produce, así que la cantidad de mazorcas sanas que produce cada árbol se relaciona directamente con su éxito reproductivo.

Durante tres años se registró el promedio anual de mazorcas sanas por árbol. Los árboles de mazorca roja produjeron 22 mazorcas por año, y los de mazorca verde produjeron 18.

Supuesto de tiempo: una generación equivale a 10 años.

FitnessRR
[1] 22
Fitnessaa
[1] 18
q_inicial
[1] 0.6324555
p_inicial
[1] 0.3675445

<!-- rnb-source-end -->


<!-- rnb-output-end -->

<!-- rnb-output-begin eyJkYXRhIjoiRXJyb3I6IHNlIGludGVudGEgdXNhciB1biBub21icmUgZGUgdmFyaWJsZSBkZSBsb25naXR1ZCBjZXJvXG4ifQ== -->

Error: se intenta usar un nombre de varible de longitud cero




<!-- rnb-output-end -->

<!-- rnb-chunk-end -->


<!-- rnb-chunk-begin -->



<!-- rnb-chunk-end -->


<!-- rnb-text-begin -->



<!-- rnb-text-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-output-begin eyJkYXRhIjoiXG48IS0tIHJuYi1zb3VyY2UtYmVnaW4gZXlKa1lYUmhJam9pWUdCZ2NseHVkR0ZwYkNoemIyeGZZMkZqWVc4cFhHNWNibUJnWUNKOSAtLT5cblxuYGBgclxudGFpbChzb2xfY2FjYW8pXG5cbmBgYFxuXG48IS0tIHJuYi1zb3VyY2UtZW5kIC0tPlxuIn0= -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxudGFpbChzb2xfY2FjYW8pXG5cbmBgYCJ9 -->

```r
tail(sol_cacao)
       time         R            a
 [96,] 47.5 0.9999194 8.064887e-05
 [97,] 48.0 0.9999264 7.364023e-05
 [98,] 48.5 0.9999328 6.724071e-05
 [99,] 49.0 0.9999386 6.139735e-05
[100,] 49.5 0.9999439 5.606183e-05
[101,] 50.0 0.9999488 5.118999e-05

<!-- rnb-source-end -->


<!-- rnb-output-end -->

<!-- rnb-output-begin eyJkYXRhIjoiRXJyb3I6IHNlIGludGVudGEgdXNhciB1biBub21icmUgZGUgdmFyaWJsZSBkZSBsb25naXR1ZCBjZXJvXG4ifQ== -->

Error: se intenta usar un nombre de varible de longitud cero




<!-- rnb-output-end -->

<!-- rnb-chunk-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-output-begin eyJkYXRhIjoiXG48IS0tIHJuYi1zb3VyY2UtYmVnaW4gZXlKa1lYUmhJam9pWUdCZ2NseHVhR1ZoWkNoemIyeGZZMkZqWVc4cFhHNWNibUJnWUNKOSAtLT5cblxuYGBgclxuaGVhZChzb2xfY2FjYW8pXG5cbmBgYFxuXG48IS0tIHJuYi1zb3VyY2UtZW5kIC0tPlxuIn0= -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxuaGVhZChzb2xfY2FjYW8pXG5cbmBgYCJ9 -->

```r
head(sol_cacao)
     time         R         a
[1,]  0.0 0.3675445 0.6324555
[2,]  0.5 0.4149121 0.5850879
[3,]  1.0 0.4645764 0.5354236
[4,]  1.5 0.5146587 0.4853413
[5,]  2.0 0.5632242 0.4367758
[6,]  2.5 0.6087563 0.3912437
# Gráfico con ggplot2
library(ggplot2)
Error: package or namespace load failed for ‘ggplot2’:
 .onLoad falló en loadNamespace() para 'scales', detalles:
  llamada: loadNamespace(x)
  error: no hay paquete llamado ‘farver’

Ejercicio 3

En un embalse de la vertiente del Pacífico vive una población de 500 individuos de guapote. Esta especie de cíclido presenta dos morfos de coloración que dependen de un gen con dos alelos. El morfo dominante tiene coloración oscura con franjas laterales, con genotipos AA o Aa. El morfo recesivo tiene coloración clara y uniforme, con genotipo aa. En la población, el 84 % pertenece al morfo dominante y el 16 % al morfo recesivo.

El guapote tiene cuidado parental biparental. Después de la reproducción, la pareja construye un nido, defiende los huevos y luego protege a las crías durante sus primeras semanas. Esta defensa reduce la depredación, pero las crías siguen enfrentando riesgos como la competencia por alimento, los depredadores de mayor tamaño y los cambios en la calidad del agua. La supervivencia de las crías hasta los 6 meses de edad determina cuántos individuos llegan a reproducirse. En este caso, sobrevivió el 92 % de las crías del morfo dominante y el 78 % de las del morfo recesivo.

Supuesto de tiempo: una generación equivale a 3 años.

FitnessRR
[1] 0.92
Fitnessaa
[1] 0.78
q_inicial
[1] 0.4
p_inicial
[1] 0.6

<!-- rnb-source-end -->


<!-- rnb-output-end -->

<!-- rnb-output-begin eyJkYXRhIjoiRXJyb3I6IHNlIGludGVudGEgdXNhciB1biBub21icmUgZGUgdmFyaWJsZSBkZSBsb25naXR1ZCBjZXJvXG4ifQ== -->

Error: se intenta usar un nombre de varible de longitud cero




<!-- rnb-output-end -->

<!-- rnb-chunk-end -->


<!-- rnb-chunk-begin -->



<!-- rnb-chunk-end -->


<!-- rnb-text-begin -->



<!-- rnb-text-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-output-begin eyJkYXRhIjoiXG48IS0tIHJuYi1zb3VyY2UtYmVnaW4gZXlKa1lYUmhJam9pWUdCZ2NseHVkR0ZwYkNoemIyeGZaM1ZoY0c5MFpTbGNibHh1WUdCZ0luMD0gLS0+XG5cbmBgYHJcbnRhaWwoc29sX2d1YXBvdGUpXG5cbmBgYFxuXG48IS0tIHJuYi1zb3VyY2UtZW5kIC0tPlxuIn0= -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxudGFpbChzb2xfZ3VhcG90ZSlcblxuYGBgIn0= -->

```r
tail(sol_guapote)
       time         R            a
 [96,] 47.5 0.9997862 0.0002138211
 [97,] 48.0 0.9998018 0.0001981525
 [98,] 48.5 0.9998164 0.0001836323
 [99,] 49.0 0.9998298 0.0001701763
[100,] 49.5 0.9998423 0.0001577064
[101,] 50.0 0.9998538 0.0001461506

<!-- rnb-source-end -->


<!-- rnb-output-end -->

<!-- rnb-output-begin eyJkYXRhIjoiRXJyb3I6IHNlIGludGVudGEgdXNhciB1biBub21icmUgZGUgdmFyaWJsZSBkZSBsb25naXR1ZCBjZXJvXG4ifQ== -->

Error: se intenta usar un nombre de varible de longitud cero




<!-- rnb-output-end -->

<!-- rnb-chunk-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-output-begin eyJkYXRhIjoiXG48IS0tIHJuYi1wbG90LWJlZ2luIGV5Sm9aV2xuYUhRaU9qTTVPQzQyTkRBekxDSjNhV1IwYUNJNk5qUTFMQ0prY0draU9pMHhMQ0p6YVhwbFgySmxhR0YyYVc5eUlqb3dMQ0pqYjI1a2FYUnBiMjV6SWpwYlhYMD0gLS0+XG5cbjxpbWcgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFvVUFBQUdPQ0FNQUFBRFcySW00QUFBQWsxQk1WRVVBQUFBQUFEb0FBR1lBQVA4QU9tWUFPcEFBWnBBQVpyWTZBQUE2QURvNkFHWTZPZ0E2T2pvNk9tWTZPcEE2Wm1ZNmtOdG1BQUJtQURwbU9nQm1rSkJtdHJabXR2K1FPZ0NRWmdDUVpqcVFrR2FRa0xhUXRwQ1F0dHVRMi8rMlpnQzJrRHEya0dhMjI1QzIyLysyLzdhMi8vL2JrRHJidHBEYjI3YmIyLy9iLy8vL3RtYi8yNUQvMjdiLy83Yi8vOXYvLy8rL3NyNVJBQUFBQ1hCSVdYTUFBQTdEQUFBT3d3SEhiNmhrQUFBVm8wbEVRVlI0bk8yZEM1dWp0aFdHbloxczdVMmIxazdiY1c5WmVsdWFqcWMyLy8vWEZVbUFQYlpCMHBFT1J3ZSs5M215MmN4Z1pMNjgzSVE0MmpRQVNMT1IvZ0lBd0VKUUFMQVF5QU1MZ1R5d0VNZ0RDNEU4c0JESUF3dUJQTEFReUFNTGdUeXdFTWdEQzRFOHNCRElBd3VCUExBUXlBTUxnVHl3RU1nREM0RThzQkRJQXd1QlBMQVF5QU1MZ1R5d0VNZ0RDNEU4c0JESUF3dUJQTEFReUFNTGdUeXdFTWdEQzRFOHNCRElBd3VCUExvc3ZCdzNsdTkrL0pmMFZ3RVowV2xoNitGWDZlOEM4cUhWd3MxVytydUFmS2l6OFBOYisrLzNuZnMzSVBDZjM3Yzc4WTlGblV0MFd0aFVzSkRLcWNCTEdwMFc0bGhJcG8zd1YyOG13TDMwTjdsQm5ZVTllK252b3BoZi92SHJzaTZzdFZxNHhhR1F5T1hQNWQzZTZiVHcrNStsdjRsYVRJVGYvL1dYQXl3a1k2OExMMy9mNEtxUWpMc2lQTU5DT3QzZFNWM1crVVFWN1MzeWE0TzdreFQ2ZStUS1Jna0kyTzZGL3gzTDJvOTFXdGhHK2VtYjlKZlJ5WENEQnd1cDNQUmFGNVdpSnN3OTh2Yy8xMFh0eHJvc0JNc0VGZ0o1WUNHUUJ4WUNlV0Foa0FjV0FubGdJWkFIRmdKNVlDR1FCeFlDZVdBaGtBY1dBbmxnSVpBSEZnSjVZQ0dRQnhZQ2VXQWhrQWNXQW5sZ0laQUhGZ0o1WUNHUUJ4WUNlV0Foa0FjV0FubGdJWkFIRmdKNVlDR1FCeFlDZVdBaGtDZk93cjdzV0VuMW5sVHl2a1A5eFJ1aUxLejdBcUNub2lxQkt1SjhHQ1lwd0s1OEpjYkN5M0hmLzdVZUtTeTlXUktKMFQ2bDIzOG5qb1hTVzUyVDBGUmlvajRmaHVoT0l6dnlraTR6ZWJibGZEQTc4SlNGTE0yS3dHSmh5TEV3WW5XbHc3VXQxWGRmWVNGeFFVUGQxelFmdlM1Y1VJUjgyOUplWHNOQzJvS1cvdUo2ZExxUkJVWEl1QzN2dTRrNUNoWVVJWk9GYzY5T0ZNWnR1UnhoSVdsQmtkV0pJclF0QzRxUTI4SjZPZmZJTHc5MHYyRGVsZ1ZGT01iTXg4TDRIaUkySHFXS3BsdlRyTnR5MzhrMmZBdk5yT2FNbkUrNkIyVFB5RXZRY09rV0VxU0tCaGFtc2x3TDJhUjdnR2RidkFOQ1lPRjg3VktZUjc0QmxtM3hEd2lCaGRNRURBaGhzM0JXL3h3YzJ4TCtFQlFXam5FNStrWWpzVmc0djRBV2ptMEpIeEFDQzBlNUhEM3p3V2IvUHlka29BSEh3bFM0cmd0UG5qbmFNLytmRXpQUXdIUmRHRGdnQkJiTzBHNEFrZ1lhdU1ZWGhnMElnWVV6dE90RjJrSHAvc0lsYUtqZFFuRUZHMWlZam00TFMzQVFGcWFqMmNJeUhJU0Y2ZWkxc0JRSFlXRTZXaTBzeDBGWW1JNVNDd3R5RUJhbW85UENraHlFaGVtb3RMQXNDV0ZoTWdvdExPcHNiSUNGcWVpenNEZ0pwUzFjZ0licUxDek9RVmlZampZTEM1UVFGaWFqek1JU0pZU0Z5ZWl5c0VnSllXRXlxaXdzVTBKWW1Jd21Dd3VWRUJZbW84akNVaVdFaGNub3NiQllDY1V0MUsraEdndkxsUkFXSmtPdzhIellOL1hFV3psNTIrMG9XTUo0QzdNa3VISUxxODl2Nzd0dFUzbmVPTTdVYmtmSlFVZGJtQ1hCZFZ0b3FnYVl0NDNIU2daa2J0ZFJkTTZ4RnVaSkVCWldiWDVqSlVZenQyc3ArWHhNc3pBOXdYVmIySjVJeklRdzU4T01aK1N5WTQ0L0krZEljT1VXbmcrYjc3NTZDOUhrYXRkUWVNcUV1NU1NQ2E3Y3dubmJiVW8vSHhmUVU2TmVReDBXNW0wN043QXdGWXFGWmthaTlwUXlUN3ROK1JuSFc1Z2p3WlZiNkVxWjFaN1NjTG5hVlJCeHRJVlpFbHkzaFgxOXg3SGlqcG5iVlJCeHJJVjVFbHkzaFgydDI3bDZyY3RQbU5KZmFNaldhNjBnbzJtWWpvWDlOQW5wVXdtV2ZvUGNzQjRMVHhPWGo2dTJNT1NxNXYzTFZ6ZC9XelcydTBkWUdMcWtHRHpYaGRWbXMzLy83ZHR0bmZYUlpoV0VOQW5MUFhLM3MxZjdadlNKZldpN0d2Smx1VWV1MmdObFpSZnhWRmUzYUlocEFwYit3bTczTmZGNXBrbndvZUI4ek5OZmFDTzBwNVNnQ0RYRU5BR0xoZjJ4Y0pzOHJhcUtkSGtzM0xkL1h2N2I0RmhJV3RCUW0xT0oyWk5IbjlpSHJVNUh1Q3pQVG9iZDEvbm9hVlpIVUtORVdoZ3d0NWpsNUs1N3hvZU5yTmJDMEFUZG5qdzFjY3g2TFp5M1hTWFp5ajlIMXBMVUdMQXdIVmlZQ3NYQzlxVHkrYzEwd3dTUWRIZWlKTnQ0QzJNU0RJcFFTVkpqVUhxdHYvdGFtNUhDZTBwekF3RUxhNGsydnRjNlM0SWZtdFdTMVhOb1QvQk01d0gvZXlkYWtxVTh3VXRQc0ZtMWhhWS9kYW8vT2x1N2FvS2xqR1pJVDNEZEZ2WjdjaFV5bW1FMDV6VmJHSlJnWklScXdub0srYnB3OGxsODNjL3A2NXZjZHdJOXVSS3ZDNmRITTBSR3FDZXRaeER2a1lOR014aENIajg5UjArdXBIdGt6MmlHMkFqMXBQVU16dEVNQnZKb0JrV3hzbzFtY0FSRnFDaXVKM0NPWmpDUWo0V0tZdVd3TURwQ1JYazl3alNhb2Iva29WOFhLa3FWWnpSRFpJU0s4bnFFYVRSRHY5em9YYUN2WFUyaDhveG1pSXhRVTJBUGxQb2NXVk9vQlR4SDFoWFlBNFZhcUNwVFdKZ0t3Y0wrVk1INTdFUlZwdEVXWmtsdzVSWlduOS9xYmZPKzQ2ek5vQ3JUYUF1ekpMaHVDODFRa0pONUZzOVltMEZYcFBIUGtYTWtlTitzcnN3K1Fodk44UDdETi9zUFY3dTZFcVdNWmtoUGNOMFdtdjdVODA5ZlllRUFaVFJEZW9McnR0RFZYTmh6bnBHVkJScDlYWmdsd1pWYmFONHpidS95Y3Q3ZzNhRXMwUGllbWh3SnJ0MUM5bmFWQlZwRWY2RzIwRDVRb29YYThpekRRbld4M1FBTDA0R0ZxY0RDZEdCaEtnVmFxQzVOV0pnS0xFd0hGcVpDZk84a3ZMSkFmTHZxMGlTOWQ1S2M0TW90VEtrc0VOS3V1alNKNytBbEp2allyTHJnQnVqdkk3UFZabEFYSnZWOTVKeTFHUXpxZ2h1Z2pXWmdyYzJnTGt6S2FJYmN0UmtNNm9JYm9COExweXNMSkxTckxrenFzVEF0d1hWYkdGUlpJS0ZkZlZrU3J3c3p6a0RtMEpkY0QvRWVtWEUyUm4xWmt1NlJzODdHMktFdnVvN3krZ3YxUlZsSWY2SEc2RHBnWVRxd01CV210K0xwN1NwTWt1ZXRlRUt6Q3JOelVPNU9iTW1LVTlwbHpXb3ROR1JKY04wV1hvNXVEaE9tRWY4S2s0enZxY21SNExvdFpKNGZXV0dTbEY1clErNWVhNVhoV1dpOTFnYWVYbXVOT1ZKNnJRMjVlNjExcG1jZ1hSZWFYYm5tdVM3VW1DUGh1akJEZ2l1MzBOM21wZTNINjdZd1M0SnJ0ekNBYXJQWjJpTDFJVk1KM3FJeFI1Nyt3cnBQTDJMNkxJM3BHWGdzdE0vcU45dkFhVlZ2VUJramk0WDFNS1VxTENRczJIU1gzNjQ3TExLdXRjb1lPU3gwZHpDWDQ4UXdSRmc0amUyS2NQMFFrVFgrVmNiSVlXSGZtMk9Lek1IQytBVWJIQXN6TU5UNHI3YXdrTENnWWJndXZKa3dJV1IxT2xQa3VTN3MzQnV2WjdOdUMwUHE0Ukx2a1hXbUdHMWhVRVhoZmhEczVRZ0xueXpJV0ZGWVo0clJGbkpVRkhib0RKRDBISm12b3JET0VPT2ZJM05VRkxib0RKQTRtaUc4SG03RXBYV2pOVVRLYUlhSWlzSXhFZW9Na0RpYWdWd1A5enJDODlsdmw1NWhSNllFVjIwaFkwWGhwV2ZZdzFKUjJLRXpRa3BQRFZ0RllaMFJFbnBxT0NvS08zUkd5RFNhd2ZiU1RQVkZMQ2hDcHRFTWE0cVFxZGU2bjAwMWFtWmFuUWx5OVZxVElsU2FJZDhUUEVmTUV6eWRDVEkvd1l0OENLb3p3K2czUWZmRHE0empselg5by9nbWJqU0R6Z1NqM3dRTlNaQWFvZElRY1N4TXA2UmpvYzRRdWE0THV6MFoxNFZVYUJFcURaSFVVMk5xNzQxbDQraFBPcU05WWd0NkZFL3BxZkVuU0lxd1Vab2liVFJEMDNTajBYTzJxekkvQTJVMFE1T2M0SktHYUJiMFZyekcrQ3psdkJWdjBCZ2ovYTM0N0hXdE5jWm5vYjRWbjd1dXRVTmpqSlRueVBhNitYMjN6OXl1eHZnczhjK1JjeVM0Y2d2YitEaHF1V3BNenhGL2Q1SWp3U1c5MHMzMEhKbXdPb1hoZGZBOFJ5WTNxekJJV0pnT0xFeUZZS0Yzc0FldFhZWGhkVVJibUNYQmxWdFlKWTZMRzJsWFlYZ2Q4ZjJGT1JJY2IxWmZrclMzbnpqYTFaZGREK1h0Sjg1bTlTVko3N1hPM0s2KzZBYW92ZFpjemVxTGt0SnJuZmJnYWFSZGZkRU54UGRhNTBodzNSWjJsVWh6dDZzdnVvSG82OElzQ1U0MHF5NUx5aG1aWmI0VGRjbGRpVDhqTTgxMzBxTXV5Mkw2QzlVbGQ2V3cva0tGV2NMQ2RJcXpVRjJZRkF2Yk04cm50MnFmdFYxdHVkMFNiMkdPQkZkdW9admRON0hUYTlVV1prbHczUmIyTTUzbkhWK29MYmRiS09NTDB4TmN0NFdtejlWa21IZXN0YmJjYnFIMFdxY25PTm1zc2pqcHg4SzhNNUFwaSswRDFHTmgvaG5JQnBURlNiNHVyTk42WHRkc1laNEVWMjZoNjNYTk85WmFXV29mSWQwajg0MjF0dWdLdEpEK1FsMmgzVkZlZjZHMlFHRmhPckF3bFVLZUkrc0s3WTdpbmlNYlZDVktQaGJtN1daUWxkazl4R05oWW9LdzBGRGxyQkNpS3JON3FHZmt0QVI5eldxS2xHNWh6bDVyVFlrOVFyV1FzZGU2MFpVcDNjS2NUL0EwSmZZSTFVSytKM2dHVFptU0xjeGFzMHRUWW84UUxXU3EyVFdnS0ZUNlBmTEU0NmZ6d2Z0c2FzMFdCaVNZbzFsRm9iTDBGNTRQdi9OVkFscXpoVE0xcXloVUpndjNUYjJaUE4vQXdtbUdQc1h4YmtWdnMzcFNwVmpvcllmcnhtK2VOaE1pcnR2Q2dJckNvOU1paHplckoxV0NoZjU2dU1NbzRsUFlqcXducnFkRVd4aFVVZGo3MXZLcUxReW9oeHN3bG4zTkZnWldGUGE5dGV4dlZrMnV0Rkd1aG9uZUxsZzRDVzlGNFJ2VTVFbzRJK2V2S0t3bXJlZEVuNUZaS3dyZm9pVll5dDFKOW9yQ1dzSWFJZjd1aExXaThBMWFndVVlWHpoMjFsbTNoVkVFUlRpQ2ttUm5IdVY2N1FTNy9hbVNyTWFZdGRkNjh6ekNFWlFrUzN6dkpHdHRCaVZSalVKNjc0UzFOc09Ba21qSjcrQmxyTTJnSktwUmlPL2dNZFptR0ZBU0xmMTk1TWwrQm0vOThEVmJHRmFiSVNyQ1VYUmtTK3UxOWxVV3FQdW5VMEhUcXVwSWFoeEtyN1czTmtOY2hLUG95SlorTEp5b0xCQTV4YlNPcE1haEhndW5hak9RWittK1IwVzQ1T3ZDcWNvQ04rWER4L2IzTlZzWVVwc2hNc0p4VklSTHZFZWU3blBGc2RDRHZ6WkR0bU9oaW5SNStndUgzUnpYaFZUaUlweEFRN3IwMFF5VGVBZTFyOW5Db0FUaklweENRYnowa1YzNTJsVVEweVRVa1Ywek5mdFNmcjZVdTVQYzgrQ1ZuOUkwOFhjbnZQUGczVk4rdnZSMzhQTFZxU2svcFdtbzcrQ3gxcW01cGZpQVp4N044SFIxeFlma29kQjM4SzRVZjA2R2hla1ViMkh4Q1VkYW1PbkNlc1VXWmtzd3F0bkNJNlpZR05iVEVOeHU0UW41aWJjd1I0S1JGaFlkTWl4TVI0R0ZoWWNNQzlQUllHSFpLY1BDZEpSWVdIRE1zREFkRlJZV3JTRXNURWVIaFNWckdHMmh0NVJVZEx2bGhoTklwSVdaRW96dnBpdzM2QUo2cmNzTko1RHllNjA3aWswYUZxWURDMU9SdDdEWWFJSlJZMkd4V2NQQ2REUlpXR2JZc0RBZFBSYVdxaUVzVEVlUmhZVnFDQXZUMFdSaG1SckN3blJVV1dnMExDNXhXSmlPTGd0TDFCQVdwcVBNd2dMUHl1SVdsaFlJQVhVV0ZuYzRoSVhwNkxPd05BMWhZVG9LTFN6c3JBd0wwMUZwWVZHSFExaVlqazRMcllhRmhBOEwwMUZxWVVHSFExaVlqbG9MaS9FUUZxYWoyTUpDVHN0TUZsYWZ2dGxwdGticmxjSkNIM2xxL1B0NWVaRTNrY2RDSytHWHJ4UDFNUHJWTFVCQ0hnc3oxZmdQUWQ1REZndnRmREtWbldUYVY1UVpGajRuWDEzck1HUk5aTEx3dFkvUlY2QWVGajRuVzQzL1lGNEVSV1E2STdmSHdSckh3Z1RtUGhZNlhsNWtYT1N4OEh6NDlNM21lQnE3UFlHRkhyTFYrSS9rUmNKRXJwNmFrN3ZCMi9wV0J3dkh5RmJqbjhMTHZESks5eGZDd21LYmZYa0NVMU93TUoyRld0anhUTWJjV25KYk9EYjdLaXdNeGhmaGpFd2JTU0Z5VS9Kczg3VlNVTDlaV1ZZcnk2dzZiTzRqRkVXbmhWeXJFMlhaWitRNWdJWHB3TUpVbUN5YzYxRjhFZWdlelZBQ1BCYk8rQ2krQUxTUFpwQ0h4VUtaeDA5aUxPY0puaFJzb3hrNlpub1VMOG95UmpOSWdtTmhPamdXcHNKMVhTanpLRjZHUlkxbUVJSHBIdG4vS0g1SlJFV0RDSjhRR2dyVG5oZTAyckMyTXk2VnMwRnVWSWNUR3lFc0pDN0ZqZXB3WU9GTURYS2pPaHhZT0ZPRDNLZ09CeGJPMUNBM3FzT0JoVE0xeUkzcWNHRGhUQTF5b3pvY1dEaFRnOXlvRGdjV3p0UWdONnJES2NSQ0FDS0FoVUFlV0Fqa2dZVkFIbGdJNUlHRlFCNVlDT1NCaFVBZVdBamtnWVZBSGxnSTVJR0ZRQjVZQ09UaHNQQTBNVGxVeC9zUDMzeEwyckpDZSsvNjZ2NlhubFlyKytybDFFTHVIYzF0MkFid0V2SUZza1VZbWlCamhBd1dtZ2tBUmljQmNKakpBanhMWG83dEwycXpSWlByTXhWUjdTODlyWjdzQzhDVEM5bFpyUUkzZ0plUUw1QXR3dEFFT1NQTWI2RXJnbEdOVGdQUTJCM0ZSRGk1NVB2T0ZER291Nmt0eHBheTAxRmRqbHRmcSsxTzJrWTR2VkJmT0NaZ0EzZ0orUUxaSWd4TmtEWEMvQllPMno2NnhHbXp0MS9YdjZUWm4veExtUXc5UzlXZi85UkdPTDFRdlEzZEFHWkNjc2tiWVVDQ3JCRXlXR2lQeW1NVnFUcGNoUDRscTAvZi9FdlY3YUYvZXFuMnQrYWlabnFoNmpmdUtpcG9BemdKK3dJNUkvUW55QnRoZmd2ZDVZRG5vc0IrUWYrU3BxU1FiNm1UM2U3SnBjd0p3a1E0dWRENVlDNTdLbitEN0lSOWdYd1JCaVRJSEdIUkZwNzZLK3ZwOVYyT245OG1sekpGMnJ3UkRsOXNVUmFHUmVoTmtEbkNrcy9JcnJoYXdQck1wYy9FVXZaMy90T0pXM2IzdXFRemNtaUVuZ1M1STVTNE8ybjZDRDEzRks2cksyQjlacnNubHFxN09tYVRDL1dyK2hKd084Uk0yQmZJR3FFblFlNElSWHBxdWdpbmwrenJUUVowUnB3OC9UbUd5dGZORUw0cWJzSytRS1lJSXphYkwwS1pYdXZ1WUQyMTVQdHVIN0srSVJsZnE1VzN5OVdHVmdXc2lwMmdMNUFyd3VBRUdTUGtlSUpYKzUvZWRKY01FMHQyNXdEejY4bjFWZVk4RWRDcWUveVVaVlg4aEh5QmJCRUdielpmaEJqTkFPU0JoVUFlV0Fqa2dZVkFIbGdJNUlHRlFCNVlDT1NCaFVBZVdBamtnWVZBSGxnSTVJR0ZRQjVZQ09TQmhVQWVXQWprZ1lWQUhsZ0k1SUdGUUI1WUNPU0JoVUFlV0Fqa2dZVkFIbGdJNUlHRlFCNVlDT1NCaFVBZVdBamtZYmZRVFQ3UTh1bmZoOWZJejE2T3IvMGFiSW1VNktaREdqei9KRnFTeHM4S0VwemxXRGhNUUJDSkxkWnR5NTlkam56bEJFK1Uvejh6cy9BRVM3YlE3b211SnA2dFFzK0VPMTZVemNJVG5ORkNkM2l2dXlyd3V6KzJwNG45Kzg1VUdudi84cmZkZFpJaTk1ZW1xNDFXZGZ0WmZmUGg4OEY4K1BZSFAvM0ZUUDl4Vzdkc3MrMGFQSTE4cGpGdHV4K1VmekJjZUlKelcyam5OTmp0MjMvc3ZFVHRodGVmdnJWYjg5cHU2MnRqL3pnZnVwM1cxR1IwVlVFNytnK2ZEK2JEM1QvdUI3YTQvTll0WXY4NEgvYTJ3WDZORDUreGh3alhxR3l4d2hBV251RE1GdHFaaHN3dWF1dU1kbis4dXFLajdRN2xFdXUyeVM1N2UzMDhmTmorcGYzY3h4L1lpMlNUalB1eCsreXd4b2ZQWEd0L2Q2ZXNrbGw0Z2pOYjZPTHBhM24zZjNUMWtQdEppcnB0c3ZHNURNMkpvcCsvd09iZ2Z2UHhCNGFUUFQxMW1aaWZEbXQ4OHBrK3hEN3pnbGw0Z25OYitLRlcvSkRobDI1NkRMZkZYU0wyUDRidE0vdGUvK0Voanc4L01KY3JuLzY1ZXgwdTVhOFp0bjk3K0l5Yk1kUDlkajlIQ2lrc1BFR1JZMkZ6amU5WmhyZDc4bkJ0UGN6bDBsejM4WTgvR0ZZWnNDZjNWT2EvZEZtNHhBUm52eTdzRHZ4MzU1TjlZOU42dktvWkFySFhMdDJIK3p3Ky9zQk5oclFadmFxNSs4ejFnOHF1Q3hlWW9NUTlzdGwvN2pJMEV4TTh2Y1ByWjQ2cE50dnJoNGZyblE4L2NKZlZabW56NDh0eGUzZUhkL2VaWVU1Z2hmZklTMHRRcEwrdzNlWHVNdnpEcnV1bmV1anQ2cDQvRGRNcW1MOWRyN3B2ZitCbU42aTZpUlVlZTd2dVBtTi9ZZE5UMkYrNHNBU0xHTTB3Y2tBUGU0cVp6RXpOc0tJOHdaSXRIQ1o5NWtYRGMyUWZ5aE1zMnNKWm52QVdQNlltQk9VSkZtRWhXRG13RU1nREM0RThzQkRJQXd1QlBMQVF5QU1MZ1R5d0VNZ0RDNEU4c0JESUF3dUJQTEFReUFNTGdUeXdFTWdEQzRFOHNCRElBd3VCUExBUXlBTUxnVHl3RU1nREM0RTgvd2NXbWtxUVhGaUFBd0FBQUFCSlJVNUVya0pnZ2c9PVwiIC8+XG5cbjwhLS0gcm5iLXBsb3QtZW5kIC0tPlxuIn0= -->


<!-- rnb-plot-begin eyJoZWlnaHQiOjM5OC42NDAzLCJ3aWR0aCI6NjQ1LCJkcGkiOi0xLCJzaXplX2JlaGF2aW9yIjowLCJjb25kaXRpb25zIjpbXX0= -->

<img src="data:image/png;base64,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" />

<!-- rnb-plot-end -->


<!-- rnb-output-end -->

<!-- rnb-output-begin eyJkYXRhIjoiXG48IS0tIHJuYi1zb3VyY2UtYmVnaW4gZXlKa1lYUmhJam9pWUdCZ2NseHVJeUJIY3NPaFptbGpieUJpWVhObFhHNXdiRzkwS0hOdmJGOW5kV0Z3YjNSbExGeHVJQ0FnSUNCNGJHRmlJRDBnWENKVWFXVnRjRzhnS0VkbGJtVnlZV05wYjI1bGN5bGNJaXdnZVd4aFlpQTlJRndpUm5KbFkzVmxibU5wWVNCa1pTQmhiR1ZzYjNOY0lpeGNiaUFnSUNBZ1kyOXNJRDBnWXloY0ltSnNkV1ZjSWl3Z1hDSnlaV1JjSWlrc0lHeDNaQ0E5SURJcFhHNWNibWhsWVdRb2MyOXNYMmQxWVhCdmRHVXBYRzVjYm1CZ1lDSjkgLS0+XG5cbmBgYHJcbiMgR3LDoWZpY28gYmFzZVxucGxvdChzb2xfZ3VhcG90ZSxcbiAgICAgeGxhYiA9IFwiVGllbXBvIChHZW5lcmFjaW9uZXMpXCIsIHlsYWIgPSBcIkZyZWN1ZW5jaWEgZGUgYWxlbG9zXCIsXG4gICAgIGNvbCA9IGMoXCJibHVlXCIsIFwicmVkXCIpLCBsd2QgPSAyKVxuXG5oZWFkKHNvbF9ndWFwb3RlKVxuXG5gYGBcblxuPCEtLSBybmItc291cmNlLWVuZCAtLT5cbiJ9 -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxuIyBHcsOhZmljbyBiYXNlXG5wbG90KHNvbF9ndWFwb3RlLFxuICAgICB4bGFiID0gXCJUaWVtcG8gKEdlbmVyYWNpb25lcylcIiwgeWxhYiA9IFwiRnJlY3VlbmNpYSBkZSBhbGVsb3NcIixcbiAgICAgY29sID0gYyhcImJsdWVcIiwgXCJyZWRcIiksIGx3ZCA9IDIpXG5cbmhlYWQoc29sX2d1YXBvdGUpXG5cbmBgYCJ9 -->

```r
# Gráfico base
plot(sol_guapote,
     xlab = "Tiempo (Generaciones)", ylab = "Frecuencia de alelos",
     col = c("blue", "red"), lwd = 2)

head(sol_guapote)
     time         R         a
[1,]  0.0 0.6000000 0.4000000
[2,]  0.5 0.6355047 0.3644953
[3,]  1.0 0.6681954 0.3318046
[4,]  1.5 0.6980162 0.3019838
[5,]  2.0 0.7250633 0.2749367
[6,]  2.5 0.7495171 0.2504829
LS0tDQp0aXRsZTogIkVqZXJjaWNpb3MgQ2FtYmlvcyBHZW7DqXRpY29zIFBvYmxhY2lvbmFsZXMiDQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOiANCiAgICB0b2M6IHRydWUNCiAgICB0aGVtZTogZmxhdGx5DQotLS0NCg0KRGUgY2FkYSB1bm8gZGUgbG9zIHNpZ3VpZW50ZXMgZWplcmNpY2lvcywgZGV0ZXJtaW5hciBjw7NtbyBlc3RhcsOhIGxhIHN1YnBvYmxhY2nDs24gZW4gNTAgZ2VuZXJhY2lvbmVzLiBBZGVtw6FzLCBkZWJlbiByZWFsaXphciB1biBncsOhZmljbyBwYXJhIHZpc3VhbGl6YXIgZWwgY29tcG9ydGFtaWVudG8gZGUgbGEgcG9ibGFjacOzbiBkZSBjYWRhIG9yZ2FuaXNtby4NCg0KIyBFamVyY2ljaW8gMQ0KDQpFbiB1biBwYXJjaGUgZGUgYm9zcXVlIGjDum1lZG8gZGUgU2FyYXBpcXXDrSBjcmVjZSB1bmEgcG9ibGFjacOzbiBkZSAzMDAgcGxhbnRhcyBkZcKgKkhlbGljb25pYSBsYXRpc3BhdGhhKi4gTGFzIGJyw6FjdGVhcyBzb24gaG9qYXMgbW9kaWZpY2FkYXMgZGUgY29sb3IgdmlzdG9zbyBxdWUgcm9kZWFuIGxhcyBwZXF1ZcOxYXMgZmxvcmVzIHZlcmRhZGVyYXMgZGUgbGEgaW5mbG9yZXNjZW5jaWEuIEVuIGVzdGEgcG9ibGFjacOzbiwgZWwgNzUgJSBkZSBsYXMgcGxhbnRhcyB0aWVuZSBicsOhY3RlYXMgcm9qYXMsIGNvbiBnZW5vdGlwb3MgUlIgbyBSciwgcG9yIGxvIHF1ZSBlbCBhbGVsbyBSIGVzIGRvbWluYW50ZS4gRWwgMjUgJSByZXN0YW50ZSB0aWVuZSBicsOhY3RlYXMgYW1hcmlsbGFzLCBjb24gZ2Vub3RpcG8gcnIsIHkgZWwgYWxlbG8gciBlcyByZWNlc2l2by4NCg0KTGEgcmVwcm9kdWNjacOzbiBkZSBlc3RhcyBwbGFudGFzIGRlcGVuZGUgZGUgbGEgcG9saW5pemFjacOzbi4gTG9zIGNvbGlicsOtZXMgdmlzaXRhbiBsYXMgaW5mbG9yZXNjZW5jaWFzIHBhcmEgYWxpbWVudGFyc2UgZGVsIG7DqWN0YXIsIHkgZWwgY29sb3IgZGUgbGFzIGJyw6FjdGVhcyBlcyBsYSBwcmluY2lwYWwgc2XDsWFsIHF1ZSBsb3MgYXRyYWUuIEN1YW5kbyB1biBjb2xpYnLDrSBzZSBwb3NhIHkgbHVlZ28gdnVlbGEgYSBvdHJhIHBsYW50YSwgdHJhbnNwb3J0YSBwb2xlbiBkZSB1bmEgaW5mbG9yZXNjZW5jaWEgYSBvdHJhLCBsbyBxdWUgcGVybWl0ZSBsYSBmb3JtYWNpw7NuIGRlIGZydXRvcy4gVW5hIGluZmxvcmVzY2VuY2lhIHZpc2l0YWRhIGNvbiBmcmVjdWVuY2lhIHByb2R1Y2UgbcOhcyBmcnV0b3MgeSwgcG9yIGxvIHRhbnRvLCBtw6FzIHNlbWlsbGFzIHF1ZSBwdWVkZW4gZGFyIG9yaWdlbiBhIG51ZXZhcyBwbGFudGFzLg0KDQpEdXJhbnRlIHVuYSB0ZW1wb3JhZGEgZGUgZmxvcmFjacOzbiBzZSBjb250w7MgZWwgbsO6bWVybyBkZSBmcnV0b3MgcG9yIGluZmxvcmVzY2VuY2lhLiBMYXMgcGxhbnRhcyBkZSBicsOhY3RlYXMgcm9qYXMgcHJvZHVqZXJvbiBlbiBwcm9tZWRpbyAxNCBmcnV0b3MsIG1pZW50cmFzIHF1ZSBsYXMgZGUgYnLDoWN0ZWFzIGFtYXJpbGxhcyBwcm9kdWplcm9uIDExLg0KDQoqKlN1cHVlc3RvIGRlIHRpZW1wbzoqKsKgdW5hIGdlbmVyYWNpw7NuIGVxdWl2YWxlIGEgNCBhw7Fvcy4NCkZpdG5lc3NSUiA8LSAxNC8yMjUNCkZpdG5lc3NSUg0KDQpGaXRuZXNzYWEgPC0gMTEvNzUNCkZpdG5lc3NhYQ0KDQpGaXRuZXNzQUEvRml0bmVzc2FhDQoNCg0KbGlicmFyeShkZVNvbHZlKQ0KDQoNCmBgYHtyfQ0KbW9kZWxvIDwtIGZ1bmN0aW9uKHRpbWUsIHN0YXRlLCBwYXJhbWV0ZXJzKSB7DQogIHdpdGgoYXMubGlzdChjKHN0YXRlLCBwYXJhbWV0ZXJzKSksIHsNCiAgICAjIFBhcsOhbWV0cm9zIGRlIGZpdG5lc3MNCiAgICB3X1JSIDwtIDAuMDYyICAjIEZpdG5lc3MgcmVsYXRpdm8gZGUgUlINCiAgICB3X2FhIDwtIDAuMTQ3ICMgRml0bmVzcyByZWxhdGl2byBkZSBhYQ0KICAgIA0KICAgICMgRnJlY3VlbmNpYXMgYWzDqWxpY2FzDQogICAgcCA8LSBSICAjIEZyZWN1ZW5jaWEgZGUgUg0KICAgIHEgPC0gYSAgIyBGcmVjdWVuY2lhIGRlIGENCiAgICANCiAgICAjIEZpdG5lc3MgcHJvbWVkaW8gcG9ibGFjaW9uYWwNCiAgICB3X3Byb20gPC0gcF4yICogd19SUiArIHFeMiAqIHdfYWEgIA0KICAgIA0KICAgICMgVGFzYSBkZSBjYW1iaW8gZW4gbGEgZnJlY3VlbmNpYSBkZWwgYWxlbG8gQQ0KICAgIGRwIDwtIChwICogcSAqICh3X1JSIC0gd19hYSkpIC8gd19wcm9tDQogICAgZHEgPC0gLWRwICAjIExhIHN1bWEgZGUgZnJlY3VlbmNpYXMgZGViZSBzZXIgMQ0KICAgIA0KICAgIHJldHVybihsaXN0KGMoZHAsIGRxKSkpDQogIH0pDQp9DQpgYGANCg0KDQojIENvbmRpY2lvbmVzIGluaWNpYWxlcw0KZXN0YWRvX2luaWNpYWwgPC0gYyhSID0gMC4wNjIsIGEgPSAwLjE0NykNCg0KIyBQYXLDoW1ldHJvcw0KcGFyYW1ldHJvcyA8LSBOVUxMDQoNCiMgVGllbXBvDQp0aWVtcG8gPC0gc2VxKDAsIDUwLCBieSA9IDAuNSkNCg0KDQoNCg0KDQpgYGB7cn0NCnNvbCA8LSBvZGUoeSA9IGVzdGFkb19pbmljaWFsLCB0aW1lcyA9IHRpZW1wbywgZnVuYyA9IG1vZGVsbywgcGFybXMgPSBwYXJhbWV0cm9zKSAjIyBFc3RhIGbDs3JtdWxhIG1lIHJlc3VlbHZlIGxhIGVjdWFjacOzbiBkaWZlcmVuY2lhbA0KDQoNCnRhaWwoc29sKQ0KYGBgDQoNCg0KDQpgYGB7cn0NCiMgR3JhZmljYXIgbG9zIHJlc3VsdGFkb3MNCnBsb3Qoc29sLA0KICAgICB4bGFiID0gIlRpZW1wbyIsIHlsYWIgPSAiRnJlY3VlbmNpYSBkZSBhbGVsb3MiLA0KICAgICBjb2wgPSBjKCJibHVlIiwgInJlZCIpLCBsd2QgPSAyKSANCg0KaGVhZChzb2wpDQpgYGANCg0KDQpsaWJyYXJ5KGdncGxvdDIpDQoNCg0KDQpgYGB7cn0NCiMgQ29udmVydGlyIGxvcyByZXN1bHRhZG9zIGRlIGxhIHNpbXVsYWNpw7NuIGVuIHVuIG1hcmNvIGRlIGRhdG9zDQpkZiA8LSBhcy5kYXRhLmZyYW1lKHNvbCkNCmBgYA0KDQoNCmBgYHtyfQ0KIyBBZ3JlZ2FyIGVsIHRpZW1wbyBjb21vIHVuYSBjb2x1bW5hDQpkZiA8LSBjYmluZCh0aWVtcG8gPSB0aWVtcG8sIGRmKQ0KYGBgDQoNCmBgYHtyfQ0KIyBHcmFmaWNhciBjb24gZ2dwbG90MiANCmdncGxvdChkZiwgYWVzKHggPSB0aWVtcG8pKSArDQogIGdlb21fbGluZShhZXMoeSA9IGxvZyhSKSwgY29sb3IgPSAiQWxlbG8gUiIpKSArIA0KICBnZW9tX2xpbmUoYWVzKHkgPSBsb2coYSksIGNvbG9yID0gIkFsZWxvIGEiKSkgKw0KICBsYWJzKHRpdGxlID0gIkV2b2x1Y2nDs24gZGUgYWxlbG9zIGdlbsOpdGljb3MgZW4gdW5hIHBvYmxhY2nDs24iLA0KICAgICAgIHggPSAiVGllbXBvIiwgeSA9ICJGcmVjdWVuY2lhIGRlIGFsZWxvcyIpICsNCiAgc2NhbGVfY29sb3JfbWFudWFsKG5hbWUgPSAiQWxlbG9zIiwgdmFsdWVzID0gYygiYmx1ZSIsICJyZWQiKSkgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KIyBFamVyY2ljaW8gMg0KDQpFbiB1bmEgZmluY2EgZGUgVXBhbGEgc2UgZXN0dWRpYW4gMjAwIMOhcmJvbGVzIGRlIGNhY2FvIGNyaW9sbG8uIEVsIGNvbG9yIGRlIGxhIG1hem9yY2EgZXN0w6EgY29udHJvbGFkbyBwb3IgdW4gZ2VuIGNvbiBkb3MgYWxlbG9zOiBSLCBxdWUgcHJvZHVjZSBtYXpvcmNhIHJvamEgeSBlcyBkb21pbmFudGUsIHkgciwgcXVlIHByb2R1Y2UgbWF6b3JjYSB2ZXJkZSB5IGVzIHJlY2VzaXZvLiBFbCA2MCAlIGRlIGxvcyDDoXJib2xlcyB0aWVuZSBtYXpvcmNhIHJvamEsIGNvbiBnZW5vdGlwb3MgUlIgbyBSciwgeSBlbCA0MCAlIHRpZW5lIG1hem9yY2EgdmVyZGUsIGNvbiBnZW5vdGlwbyByci4NCg0KRWwgY2FjYW8gc2UgcmVwcm9kdWNlIG1lZGlhbnRlIGZsb3JlcyBxdWUgYXBhcmVjZW4gZGlyZWN0YW1lbnRlIHNvYnJlIGVsIHRyb25jbyB5IGxhcyByYW1hcyBncnVlc2FzLiBFc3RhcyBmbG9yZXMgc29uIHBvbGluaXphZGFzIHByaW5jaXBhbG1lbnRlIHBvciBwZXF1ZcOxb3MgaW5zZWN0b3MsIGNvbW8gbG9zIG1vc3F1aXRvcyBkZWwgZ8OpbmVyb8KgKkZvcmNpcG9teWlhKiwgcXVlIHNlIGRlc3BsYXphbiBlbnRyZSBmbG9yZXMgYnVzY2FuZG8gYWxpbWVudG8uIFBhcmEgcXVlIHVuYSBmbG9yIHNlIGNvbnZpZXJ0YSBlbiBtYXpvcmNhLCBlbCBwb2xlbiBkZWJlIGxsZWdhciBhIHN1IGVzdGlnbWEgeSBsYSBwbGFudGEgZGViZSBzZXIgY29tcGF0aWJsZSBjb24gZXNlIHBvbGVuLCB5YSBxdWUgZWwgY2FjYW8gdGllbmUgdW4gc2lzdGVtYSBkZSBhdXRvaW5jb21wYXRpYmlsaWRhZCBxdWUgZmF2b3JlY2UgZWwgY3J1Y2UgZW50cmUgw6FyYm9sZXMgZGlzdGludG9zLiBVbmEgZmxvciBiaWVuIHBvbGluaXphZGEgc2UgdHJhbnNmb3JtYSBlbiB1bmEgbWF6b3JjYSBxdWUgY29udGllbmUgc2VtaWxsYXMsIHkgbGFzIHNlbWlsbGFzIHNvbiBlbCBwcm9kdWN0byBxdWUgZWwgYWdyaWN1bHRvciBjb3NlY2hhLiBFbCBjb2xvciBkZSBsYSBtYXpvcmNhIGRlcGVuZGUgZGVsIGdlbm90aXBvIGRlIGxhIHBsYW50YSBxdWUgbGEgcHJvZHVjZSwgYXPDrSBxdWUgbGEgY2FudGlkYWQgZGUgbWF6b3JjYXMgc2FuYXMgcXVlIHByb2R1Y2UgY2FkYSDDoXJib2wgc2UgcmVsYWNpb25hIGRpcmVjdGFtZW50ZSBjb24gc3Ugw6l4aXRvIHJlcHJvZHVjdGl2by4NCg0KRHVyYW50ZSB0cmVzIGHDsW9zIHNlIHJlZ2lzdHLDsyBlbCBwcm9tZWRpbyBhbnVhbCBkZSBtYXpvcmNhcyBzYW5hcyBwb3Igw6FyYm9sLiBMb3Mgw6FyYm9sZXMgZGUgbWF6b3JjYSByb2phIHByb2R1amVyb24gMjIgbWF6b3JjYXMgcG9yIGHDsW8sIHkgbG9zIGRlIG1hem9yY2EgdmVyZGUgcHJvZHVqZXJvbiAxOC4NCg0KKipTdXB1ZXN0byBkZSB0aWVtcG86KirCoHVuYSBnZW5lcmFjacOzbiBlcXVpdmFsZSBhIDEwIGHDsW9zLg0KYGBge3J9DQojIEZpdG5lc3MgeSBmcmVjdWVuY2lhcyBpbmljaWFsZXMgcGFyYSBlbCBFamVyY2ljaW8gMg0KRml0bmVzc1JSIDwtIDIyDQpGaXRuZXNzYWEgPC0gMTgNCg0KIyBGcmVjdWVuY2lhIGRlbCBnZW5vdGlwbyByZWNlc2l2byAoYWEpID0gNDAlICgwLjQwKQ0KcV9pbmljaWFsIDwtIHNxcnQoMC40MCkNCnBfaW5pY2lhbCA8LSAxIC0gcV9pbmljaWFsDQoNCkZpdG5lc3NSUg0KRml0bmVzc2FhDQpxX2luaWNpYWwNCnBfaW5pY2lhbA0KYGBgDQpgYGB7cn0NCmxpYnJhcnkoZGVTb2x2ZSkNCg0KbW9kZWxvX2NhY2FvIDwtIGZ1bmN0aW9uKHRpbWUsIHN0YXRlLCBwYXJhbWV0ZXJzKSB7DQogIHdpdGgoYXMubGlzdChjKHN0YXRlLCBwYXJhbWV0ZXJzKSksIHsNCiAgICAjIFBhcsOhbWV0cm9zIGRlIGZpdG5lc3MNCiAgICB3X1JSIDwtIDIyICANCiAgICB3X2FhIDwtIDE4ICANCiAgICANCiAgICAjIEZyZWN1ZW5jaWFzIGFsw6lsaWNhcw0KICAgIHAgPC0gUiAgDQogICAgcSA8LSBhICANCiAgICANCiAgICAjIEZpdG5lc3MgcHJvbWVkaW8gcG9ibGFjaW9uYWwNCiAgICB3X3Byb20gPC0gcF4yICogd19SUiArIHFeMiAqIHdfYWEgIA0KICAgIA0KICAgICMgVGFzYSBkZSBjYW1iaW8gZW4gbGEgZnJlY3VlbmNpYSBkZWwgYWxlbG8NCiAgICBkcCA8LSAocCAqIHEgKiAod19SUiAtIHdfYWEpKSAvIHdfcHJvbQ0KICAgIGRxIDwtIC1kcCAgDQogICAgDQogICAgcmV0dXJuKGxpc3QoYyhkcCwgZHEpKSkNCiAgfSkNCn0NCmBgYA0KDQpgYGB7cn0NCiMgQ29uZGljaW9uZXMgaW5pY2lhbGVzIGJhc2FkYXMgZW4gcCB5IHEgY2FsY3VsYWRvcw0KZXN0YWRvX2luaWNpYWwgPC0gYyhSID0gcF9pbmljaWFsLCBhID0gcV9pbmljaWFsKQ0KDQojIFBhcsOhbWV0cm9zIHkgdGllbXBvICg1MCBnZW5lcmFjaW9uZXMpDQpwYXJhbWV0cm9zIDwtIE5VTEwNCnRpZW1wbyA8LSBzZXEoMCwgNTAsIGJ5ID0gMC41KQ0KDQojIFJlc29sdmVyIGxhIGVjdWFjacOzbiBkaWZlcmVuY2lhbA0Kc29sX2NhY2FvIDwtIG9kZSh5ID0gZXN0YWRvX2luaWNpYWwsIHRpbWVzID0gdGllbXBvLCBmdW5jID0gbW9kZWxvX2NhY2FvLCBwYXJtcyA9IHBhcmFtZXRyb3MpDQoNCnRhaWwoc29sX2NhY2FvKQ0KYGBgDQpgYGB7cn0NCiMgR3LDoWZpY28gYmFzZQ0KcGxvdChzb2xfY2FjYW8sDQogICAgIHhsYWIgPSAiVGllbXBvIChHZW5lcmFjaW9uZXMpIiwgeWxhYiA9ICJGcmVjdWVuY2lhIGRlIGFsZWxvcyIsDQogICAgIGNvbCA9IGMoImJsdWUiLCAicmVkIiksIGx3ZCA9IDIpDQoNCmhlYWQoc29sX2NhY2FvKQ0KDQojIEdyw6FmaWNvIGNvbiBnZ3Bsb3QyDQpsaWJyYXJ5KGdncGxvdDIpDQoNCmRmX2NhY2FvIDwtIGFzLmRhdGEuZnJhbWUoc29sX2NhY2FvKQ0KZGZfY2FjYW8gPC0gY2JpbmQodGllbXBvID0gdGllbXBvLCBkZl9jYWNhbykNCg0KZ2dwbG90KGRmX2NhY2FvLCBhZXMoeCA9IHRpZW1wbykpICsNCiAgZ2VvbV9saW5lKGFlcyh5ID0gUiwgY29sb3IgPSAiQWxlbG8gUiIpKSArIA0KICBnZW9tX2xpbmUoYWVzKHkgPSBhLCBjb2xvciA9ICJBbGVsbyBhIikpICsNCiAgbGFicyh0aXRsZSA9ICJFdm9sdWNpw7NuIGdlbsOpdGljYSBlbiBwb2JsYWNpw7NuIGRlIENhY2FvIiwNCiAgICAgICB4ID0gIlRpZW1wbyAoR2VuZXJhY2lvbmVzKSIsIHkgPSAiRnJlY3VlbmNpYSBkZSBhbGVsb3MiKSArDQogIHNjYWxlX2NvbG9yX21hbnVhbChuYW1lID0gIkFsZWxvcyIsIHZhbHVlcyA9IGMoImJsdWUiLCAicmVkIikpICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KIyBFamVyY2ljaW8gMw0KDQpFbiB1biBlbWJhbHNlIGRlIGxhIHZlcnRpZW50ZSBkZWwgUGFjw61maWNvIHZpdmUgdW5hIHBvYmxhY2nDs24gZGUgNTAwIGluZGl2aWR1b3MgZGUgZ3VhcG90ZS4gRXN0YSBlc3BlY2llIGRlIGPDrWNsaWRvIHByZXNlbnRhIGRvcyBtb3Jmb3MgZGUgY29sb3JhY2nDs24gcXVlIGRlcGVuZGVuIGRlIHVuIGdlbiBjb24gZG9zIGFsZWxvcy4gRWwgbW9yZm8gZG9taW5hbnRlIHRpZW5lIGNvbG9yYWNpw7NuIG9zY3VyYSBjb24gZnJhbmphcyBsYXRlcmFsZXMsIGNvbiBnZW5vdGlwb3MgQUEgbyBBYS4gRWwgbW9yZm8gcmVjZXNpdm8gdGllbmUgY29sb3JhY2nDs24gY2xhcmEgeSB1bmlmb3JtZSwgY29uIGdlbm90aXBvIGFhLiBFbiBsYSBwb2JsYWNpw7NuLCBlbCA4NCAlIHBlcnRlbmVjZSBhbCBtb3JmbyBkb21pbmFudGUgeSBlbCAxNiAlIGFsIG1vcmZvIHJlY2VzaXZvLg0KDQpFbCBndWFwb3RlIHRpZW5lIGN1aWRhZG8gcGFyZW50YWwgYmlwYXJlbnRhbC4gRGVzcHXDqXMgZGUgbGEgcmVwcm9kdWNjacOzbiwgbGEgcGFyZWphIGNvbnN0cnV5ZSB1biBuaWRvLCBkZWZpZW5kZSBsb3MgaHVldm9zIHkgbHVlZ28gcHJvdGVnZSBhIGxhcyBjcsOtYXMgZHVyYW50ZSBzdXMgcHJpbWVyYXMgc2VtYW5hcy4gRXN0YSBkZWZlbnNhIHJlZHVjZSBsYSBkZXByZWRhY2nDs24sIHBlcm8gbGFzIGNyw61hcyBzaWd1ZW4gZW5mcmVudGFuZG8gcmllc2dvcyBjb21vIGxhIGNvbXBldGVuY2lhIHBvciBhbGltZW50bywgbG9zIGRlcHJlZGFkb3JlcyBkZSBtYXlvciB0YW1hw7FvIHkgbG9zIGNhbWJpb3MgZW4gbGEgY2FsaWRhZCBkZWwgYWd1YS4gTGEgc3VwZXJ2aXZlbmNpYSBkZSBsYXMgY3LDrWFzIGhhc3RhIGxvcyA2IG1lc2VzIGRlIGVkYWQgZGV0ZXJtaW5hIGN1w6FudG9zIGluZGl2aWR1b3MgbGxlZ2FuIGEgcmVwcm9kdWNpcnNlLiBFbiBlc3RlIGNhc28sIHNvYnJldml2acOzIGVsIDkyICUgZGUgbGFzIGNyw61hcyBkZWwgbW9yZm8gZG9taW5hbnRlIHkgZWwgNzggJSBkZSBsYXMgZGVsIG1vcmZvIHJlY2VzaXZvLg0KDQoqKlN1cHVlc3RvIGRlIHRpZW1wbzoqKsKgdW5hIGdlbmVyYWNpw7NuIGVxdWl2YWxlIGEgMyBhw7Fvcy4NCmBgYHtyfQ0KIyBGaXRuZXNzIHkgZnJlY3VlbmNpYXMgaW5pY2lhbGVzIHBhcmEgZWwgRWplcmNpY2lvIDMNCkZpdG5lc3NSUiA8LSAwLjkyDQpGaXRuZXNzYWEgPC0gMC43OA0KDQojIEZyZWN1ZW5jaWEgZGVsIGdlbm90aXBvIHJlY2VzaXZvIChhYSkgPSAxNiUgKDAuMTYpDQpxX2luaWNpYWwgPC0gc3FydCgwLjE2KQ0KcF9pbmljaWFsIDwtIDEgLSBxX2luaWNpYWwNCg0KRml0bmVzc1JSDQpGaXRuZXNzYWENCnFfaW5pY2lhbA0KcF9pbmljaWFsDQpgYGANCmBgYHtyfQ0KbGlicmFyeShkZVNvbHZlKQ0KDQptb2RlbG9fZ3VhcG90ZSA8LSBmdW5jdGlvbih0aW1lLCBzdGF0ZSwgcGFyYW1ldGVycykgew0KICB3aXRoKGFzLmxpc3QoYyhzdGF0ZSwgcGFyYW1ldGVycykpLCB7DQogICAgIyBQYXLDoW1ldHJvcyBkZSBmaXRuZXNzIChzdXBlcnZpdmVuY2lhKQ0KICAgIHdfUlIgPC0gMC45MiAgDQogICAgd19hYSA8LSAwLjc4ICANCiAgICANCiAgICAjIEZyZWN1ZW5jaWFzIGFsw6lsaWNhcw0KICAgIHAgPC0gUiAgDQogICAgcSA8LSBhICANCiAgICANCiAgICAjIEZpdG5lc3MgcHJvbWVkaW8gcG9ibGFjaW9uYWwNCiAgICB3X3Byb20gPC0gcF4yICogd19SUiArIHFeMiAqIHdfYWEgIA0KICAgIA0KICAgICMgVGFzYSBkZSBjYW1iaW8gZW4gbGEgZnJlY3VlbmNpYSBkZWwgYWxlbG8NCiAgICBkcCA8LSAocCAqIHEgKiAod19SUiAtIHdfYWEpKSAvIHdfcHJvbQ0KICAgIGRxIDwtIC1kcCAgDQogICAgDQogICAgcmV0dXJuKGxpc3QoYyhkcCwgZHEpKSkNCiAgfSkNCn0NCmBgYA0KDQpgYGB7cn0NCiMgQ29uZGljaW9uZXMgaW5pY2lhbGVzDQplc3RhZG9faW5pY2lhbCA8LSBjKFIgPSBwX2luaWNpYWwsIGEgPSBxX2luaWNpYWwpDQoNCiMgUGFyw6FtZXRyb3MgeSB0aWVtcG8gKDUwIGdlbmVyYWNpb25lcykNCnBhcmFtZXRyb3MgPC0gTlVMTA0KdGllbXBvIDwtIHNlcSgwLCA1MCwgYnkgPSAwLjUpDQoNCiMgUmVzb2x2ZXIgbGEgZWN1YWNpw7NuIGRpZmVyZW5jaWFsDQpzb2xfZ3VhcG90ZSA8LSBvZGUoeSA9IGVzdGFkb19pbmljaWFsLCB0aW1lcyA9IHRpZW1wbywgZnVuYyA9IG1vZGVsb19ndWFwb3RlLCBwYXJtcyA9IHBhcmFtZXRyb3MpDQoNCnRhaWwoc29sX2d1YXBvdGUpDQpgYGANCmBgYHtyfQ0KIyBHcsOhZmljbyBiYXNlDQpwbG90KHNvbF9ndWFwb3RlLA0KICAgICB4bGFiID0gIlRpZW1wbyAoR2VuZXJhY2lvbmVzKSIsIHlsYWIgPSAiRnJlY3VlbmNpYSBkZSBhbGVsb3MiLA0KICAgICBjb2wgPSBjKCJibHVlIiwgInJlZCIpLCBsd2QgPSAyKQ0KDQpoZWFkKHNvbF9ndWFwb3RlKQ0KDQojIEdyw6FmaWNvIGNvbiBnZ3Bsb3QyDQpsaWJyYXJ5KGdncGxvdDIpDQoNCmRmX2d1YXBvdGUgPC0gYXMuZGF0YS5mcmFtZShzb2xfZ3VhcG90ZSkNCmRmX2d1YXBvdGUgPC0gY2JpbmQodGllbXBvID0gdGllbXBvLCBkZl9ndWFwb3RlKQ0KDQpnZ3Bsb3QoZGZfZ3VhcG90ZSwgYWVzKHggPSB0aWVtcG8pKSArDQogIGdlb21fbGluZShhZXMoeSA9IFIsIGNvbG9yID0gIkFsZWxvIFIiKSkgKyANCiAgZ2VvbV9saW5lKGFlcyh5ID0gYSwgY29sb3IgPSAiQWxlbG8gYSIpKSArDQogIGxhYnModGl0bGUgPSAiRXZvbHVjacOzbiBnZW7DqXRpY2EgZW4gcG9ibGFjacOzbiBkZSBHdWFwb3RlIiwNCiAgICAgICB4ID0gIlRpZW1wbyAoR2VuZXJhY2lvbmVzKSIsIHkgPSAiRnJlY3VlbmNpYSBkZSBhbGVsb3MiKSArDQogIHNjYWxlX2NvbG9yX21hbnVhbChuYW1lID0gIkFsZWxvcyIsIHZhbHVlcyA9IGMoImJsdWUiLCAicmVkIikpICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0K