Instrucciones generales
El Objetivo de este proyecto Desarrollar habilidades
de modelación y visualización con el software GeoGebra
en el curso de matemática básica 1.
Entregable
Un breve informe en formato PDF y enlace con un
video de 5 minutos máximo explicando los resultados de su proyecto.El
PDF debe incluir:
- Caratula en la primera hoja con tus datos personales
- Enunciado de cada problema
- Construcción realizada para cada problema
- Capturas de las construcciones de GeoGebra
- Ecuaciones finales
- Comentarios
entrega tu proyecto utilizando el nombre
Proyecto_Taller_Apellido_Nombre_carnet.pdf
Criterios de evaluación
- Modelos y cálculos correctos : 40 pts
- Construcción en GeoGebra (organización, uso de herramientas,
etiquetas): 30 pts
- Interpretación y comunicación (explicaciones, conclusiones):
20 pts
- Presentación (orden, formato solicitado): 10
pts
Recomendación:
- Trabaja en GeoGebra Clásico 5.
- Activa Vista Algebraica Vista
Gráfica y, cuando convenga, Hoja de
Cálculo.
- Para visualizar tu construcción utiliza la opción “ver todos los
objetos”
- Utiliza deslizadores para parámetros y nombra tus
objetos.
Problema 1
Por razones no del todo claras, el número de pececillos de salmón que
sobreviven al viaje desde los lugares de desove hasta el mar abierto
varía aproximadamente de forma senoidal. La tabla
muestra los nacimientos (en miles) durante 16 años.
Datos (año, salmón × 1000):
| 2011 |
42 |
2019 |
54 |
| 2012 |
36 |
2020 |
62 |
| 2013 |
27 |
2021 |
56 |
| 2014 |
24 |
2022 |
50 |
| 2015 |
26 |
2023 |
43 |
| 2016 |
32 |
2024 |
38 |
| 2017 |
42 |
2025 |
31 |
| 2018 |
51 |
2026 |
21 |
Realiza lo siguiente.
Dibuja los puntos sobre la vista gráfica de GeoGebra (Ajusta
correctamente la ventana de visualización)
Crea el deslizador c en GeoGebra con el objetivo
de ajustar el modelo \(y=a\sin(w(t-c))+b\)
- EL valor de b es el corrimiento encuentralo como (valor máximo +
valor mínimo)/2
- Ajusta la amplitud como (valor máximo - valor mínimo)/2
- Obtén w como \(2\pi/periodo\) en donde el periodo
lo calculas como 2(tiempo de valor máximo- tiempo de valor mínimo )
¿Cuál es tu modelo final \(y=a\sin(w(t-c))+b\)?
Gráfica tu modelo y los puntos en la misma ventana.
Utiliza una herramienta de ajuste senoidal en
GeoGebra para hallar el mejor ajuste (p. ej.,
FitSin() / AjusteSeno()) y compáralo con
tu modelo del inciso anterior. Reporta la función final y el
período observado.
Interpreta el modelo: ¿En qué años predice
máximos y mínimos?
Problema 2
En mecánica celeste (leyes de Kepler), las órbitas alrededor de un
cuerpo masivo son elipses con el cuerpo central ubicado
en un foco. Considera un satélite artificial orbitando
la Tierra en un plano. Su órbita tiene semieje mayor
\(a\) y excentricidad
\(e\) (con \(0<e<1\)). El semieje
menor es \(b=a\sqrt{1-e^2}\) y
la distancia del centro al foco es \(c=ae\).

Toma los siguientes datos
- a = 8,500 km y e = 0.45.
- Coloca la Tierra en el foco derecho \((c,0)\).
- La elipse está centrada en el origen con ecuación \(\frac{x^2}{a^2}+\frac{y^2}{b^2}=1\), \(b=a\sqrt{1-e^2}\), \(c=ae\)
Realiza lo siguiente:
Calcula \(b\) y \(c\). Escribe la ecuación
de la elipse.
Identifica y marca en la gráfica el periapsis
(punto más cercano al foco) y el apoapsis (más lejano).
¿Cuáles son sus distancias al foco \((c,0)\)?
Verifica la propiedad focal: para un punto \(P\) cualquiera en la elipse, la suma de
distancias a los dos focos es constante e igual a \(2a\). Compruébalo numéricamente con varios
puntos.
Discute por qué una mayor excentricidad \(e\) produce órbitas más “alargadas”. Repite
(rápido) con \(e=0.2\) para
comparar.
Sugerencias para GeoGebra.
- Crea deslizadores
a y e
(0<e<1). Define b = a * sqrt(1 - e^2) y
c = a * e.
- Dibuja la elipse con:
- Opción A:
Curva( a*cos(t), b*sin(t), t, 0, 2π ).
- Opción B: Herramienta Elipse (centro,
foco) usando centro en el origen y un foco en \((c,0)\).
- Marca los focos \((±c,0)\) y los puntos \((±a,0)\).
- Construye una línea desde \((c,0)\) a \((a,0)\) y a \((-a,0)\) para visualizar
periapsis/apoapsis; mide sus longitudes con Herramienta de
Distancia.
- Para comprobar la suma de distancias, crea un punto
P
sobre la elipse y calcula d1 = Distancia(P, (c,0)),
d2 = Distancia(P, (-c,0)) y d1 + d2 (debe ser
\(2a\)).
- Cambia el deslizador
e y observa la forma de la
órbita.
Problema 3
En un taller de metalurgia, una pieza de acero sale de un tratamiento
térmico y se deja enfriar en un ambiente que se mantiene a 25
°C. Según la Ley de enfriamiento de Newton, la
temperatura de la pieza decae de forma exponencial
hacia la temperatura ambiente:
\[T(t) = T_a + A\,e^{-kt}\]
donde \(T\) es la temperatura de la
pieza (°C), \(t\) el tiempo (minutos),
\(T_a = 25\) °C la temperatura
ambiente, \(A\) la diferencia inicial
de temperatura y \(k>0\) la
constante de enfriamiento.
Datos medidos (tiempo en minutos, temperatura en
°C):
| 0 |
180.0 |
25 |
46.3 |
| 5 |
129.4 |
30 |
38.8 |
| 10 |
94.1 |
35 |
34.6 |
| 15 |
72.2 |
40 |
31.1 |
| 20 |
56.0 |
|
|
Realiza lo siguiente:
Gráfica de los datos. Ingresa los datos en la
Hoja de Cálculo de GeoGebra, crea la lista de puntos y
ajusta la ventana de visualización. ¿Qué forma tiene la gráfica? ¿A qué
valor parece acercarse la temperatura cuando \(t\) crece?
Modelo con deslizadores. Crea los deslizadores
A y k y la función
T(x) = 25 + A*exp(-k*x). Usa el dato inicial \(T(0)=180\) para obtener \(A\) y ajusta k a mano
hasta que la curva pase lo más cerca posible de los puntos. Reporta los
valores elegidos.
Linealización con logaritmos. Aplica logaritmo
natural al modelo y demuestra que
\[\ln(T - 25) = \ln A - k\,t\]
es una recta en las variables \(t\) y \(Y=\ln(T-25)\). En la Hoja de Cálculo crea
los puntos \((t,\ \ln(T-25))\),
grafícalos y obtén la recta de mejor ajuste con
AjusteLineal() / FitLine(). A partir de la
pendiente y del intercepto calcula
\(k\) y \(A\) (recuerda que \(A = e^{\text{intercepto}}\)).
Ajuste exponencial de GeoGebra. Crea los puntos
\((t,\ T-25)\) y usa
AjusteExp() / FitExp(). Compara el resultado
con los valores obtenidos en b) y c). Escribe tu modelo
final \(T(t)\).
Preguntas de aplicación (resuélvelas
algebraicamente con logaritmos y verifícalas en
GeoGebra con el comando Interseca() o la herramienta
Intersección):
- ¿En cuántos minutos la pieza alcanza 40 °C,
temperatura a la que ya puede manipularse con seguridad?
- ¿Cuánto tiempo tarda la diferencia \(T -
25\) en reducirse a la mitad? (vida media del
enfriamiento, \(t_{1/2} = \ln 2 /
k\)).
- Según el modelo, ¿qué temperatura tendrá la pieza a los 60
minutos? ¿Alcanzará alguna vez exactamente los 25 °C?
Justifica.
Función inversa. Despeja \(t\) en función de \(T\) para obtener
\[t(T) =
-\frac{1}{k}\ln\!\left(\frac{T-25}{A}\right)\]
Grafícala en GeoGebra (puedes usar Inversa()) junto con
\(T(t)\) y la recta \(y=x\). Indica el dominio y
el rango de cada función e interpreta qué representa la
asíntota de cada una.
Sugerencias para GeoGebra.
- En la Hoja de Cálculo escribe \(t\)
en la columna A y \(T\) en la columna
B. En C2 escribe
=ln(B2 - 25) y arrastra hacia abajo.
- Selecciona las columnas A y B y usa Crear lista de
puntos (clic derecho → Crear). Repite con A y C para
los puntos linealizados (en la lista, la columna A va como x). Para
\((t,\ T-25)\) crea una columna D con
=B2 - 25.
- Para el ajuste lineal:
recta = AjusteLineal(listaLn);
la pendiente se obtiene con Pendiente(recta).
- Dibuja la asíntota horizontal
y = 25 con línea
punteada.
- Añade un texto dinámico que muestre los valores de
\(A\), \(k\) y \(t_{1/2}\).
Recomendaciones finales
- Nombra tus objetos y añade textos dinámicos, así tu
captura evidencia los valores usados.
- Guarda tu archivo PDF como
Proyecto_Taller_Apellido_Nombre_carnet.pdf.
- Incluye en el informe las ecuaciones finales y
capturas claras de cada construcción.
LS0tDQp0aXRsZTogIlByb3llY3RvIFRhbGxlciBNYXRlbcOhdGljYSBCw6FzaWNhIDEiDQphdXRob3I6ICJEZXBhcnRhbWVudG8gZGUgTWF0ZW1hdGljYSBGSVVTQUMiDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclZC8lbS8lWScpYCINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0aGVtZTogdW5pdGVkDQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdG9jX2RlcHRoOiAzDQogICAgbnVtYmVyX3NlY3Rpb25zOiBmYWxzZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBoaWdobGlnaHQ6IHRhbmdvDQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlDQpmb250c2l6ZTogMTNwdA0KZ2VvbWV0cnk6IG1hcmdpbj0yLjJjbQ0KbGFuZzogZXMNCi0tLQ0KDQoNCiMgKipJbnN0cnVjY2lvbmVzIGdlbmVyYWxlcyoqDQoNCkVsICoqT2JqZXRpdm8qKiAgZGUgZXN0ZSBwcm95ZWN0byBEZXNhcnJvbGxhciBoYWJpbGlkYWRlcyBkZSBtb2RlbGFjacOzbiB5IHZpc3VhbGl6YWNpw7NuIGNvbiBlbCBzb2Z0d2FyZSAqKkdlb0dlYnJhKiogZW4gZWwgY3Vyc28gZGUgbWF0ZW3DoXRpY2EgYsOhc2ljYSAxLiANCg0KIyMgKipFbnRyZWdhYmxlKioNCg0KVW4gYnJldmUgKippbmZvcm1lKiogZW4gZm9ybWF0byBQREYgeSBlbmxhY2UgY29uIHVuIHZpZGVvICBkZSA1IG1pbnV0b3MgbcOheGltbyBleHBsaWNhbmRvIGxvcyByZXN1bHRhZG9zIGRlIHN1IHByb3llY3RvLkVsIFBERiBkZWJlIGluY2x1aXI6DQoNCiogQ2FyYXR1bGEgZW4gbGEgcHJpbWVyYSBob2phIGNvbiB0dXMgZGF0b3MgcGVyc29uYWxlcw0KKiBFbnVuY2lhZG8gZGUgY2FkYSBwcm9ibGVtYQ0KKiBDb25zdHJ1Y2Npw7NuIHJlYWxpemFkYSBwYXJhIGNhZGEgcHJvYmxlbWEgIA0KKiBDYXB0dXJhcyAgZGUgbGFzIGNvbnN0cnVjY2lvbmVzICBkZSBHZW9HZWJyYQ0KKiBFY3VhY2lvbmVzIGZpbmFsZXMgDQoqIENvbWVudGFyaW9zDQoNCmVudHJlZ2EgdHUgIHByb3llY3RvIHV0aWxpemFuZG8gZWwgbm9tYnJlICBgUHJveWVjdG9fVGFsbGVyX0FwZWxsaWRvX05vbWJyZV9jYXJuZXQucGRmYA0KDQojIyAqKkNyaXRlcmlvcyBkZSBldmFsdWFjacOzbioqDQoNCi0gTW9kZWxvcyB5IGPDoWxjdWxvcyBjb3JyZWN0b3MgOiAqKjQwIHB0cyoqICANCi0gQ29uc3RydWNjacOzbiBlbiBHZW9HZWJyYSAob3JnYW5pemFjacOzbiwgdXNvIGRlIGhlcnJhbWllbnRhcywgZXRpcXVldGFzKTogKiozMCBwdHMqKiAgDQotIEludGVycHJldGFjacOzbiB5IGNvbXVuaWNhY2nDs24gKGV4cGxpY2FjaW9uZXMsIGNvbmNsdXNpb25lcyk6ICoqMjAgcHRzKiogIA0KLSBQcmVzZW50YWNpw7NuIChvcmRlbiwgZm9ybWF0byBzb2xpY2l0YWRvKTogKioxMCBwdHMqKg0KDQojIyAqKlJlY29tZW5kYWNpw7NuOioqIA0KDQoqIFRyYWJhamEgZW4gKipHZW9HZWJyYSBDbMOhc2ljbyA1KiouIA0KKiBBY3RpdmEgKipWaXN0YSBBbGdlYnJhaWNhKiogKipWaXN0YSBHcsOhZmljYSoqIHksIGN1YW5kbyBjb252ZW5nYSwgKipIb2phIGRlIEPDoWxjdWxvKiouIA0KKiBQYXJhIHZpc3VhbGl6YXIgIHR1IGNvbnN0cnVjY2nDs24gIHV0aWxpemEgbGEgb3BjacOzbiAidmVyIHRvZG9zIGxvcyBvYmpldG9zICINCiogVXRpbGl6YSAgKipkZXNsaXphZG9yZXMqKiBwYXJhIHBhcsOhbWV0cm9zIHkgbm9tYnJhIHR1cyBvYmpldG9zLg0KDQotLS0NCg0KIyAqKlByb2JsZW1hIDEqKiANCg0KUG9yIHJhem9uZXMgbm8gZGVsIHRvZG8gY2xhcmFzLCBlbCBuw7ptZXJvIGRlIHBlY2VjaWxsb3MgZGUgc2FsbcOzbiBxdWUgc29icmV2aXZlbiBhbCB2aWFqZSBkZXNkZSBsb3MgbHVnYXJlcyBkZSBkZXNvdmUgaGFzdGEgZWwgbWFyIGFiaWVydG8gKip2YXLDrWEgYXByb3hpbWFkYW1lbnRlIGRlIGZvcm1hIHNlbm9pZGFsKiouIExhIHRhYmxhIG11ZXN0cmEgbG9zIG5hY2ltaWVudG9zIChlbiAqKm1pbGVzKiopIGR1cmFudGUgMTYgYcOxb3MuDQoNCioqRGF0b3MgKGHDsW8sIHNhbG3Ds24gw5cgMTAwMCk6KioNCg0KfCBBw7FvICB8IE5hY2ltaWVudG9zIHwgQcOxbyAgfCBOYWNpbWllbnRvcyB8DQp8LS0tLS06fC0tLS0tLS0tLS0tLTp8LS0tLS06fC0tLS0tLS0tLS0tLTp8DQp8IDIwMTEgfCAgICAgICAgICA0MiB8IDIwMTkgfCAgICAgICAgICA1NCB8DQp8IDIwMTIgfCAgICAgICAgICAzNiB8IDIwMjAgfCAgICAgICAgICA2MiB8DQp8IDIwMTMgfCAgICAgICAgICAyNyB8IDIwMjEgfCAgICAgICAgICA1NiB8DQp8IDIwMTQgfCAgICAgICAgICAyNCB8IDIwMjIgfCAgICAgICAgICA1MCB8DQp8IDIwMTUgfCAgICAgICAgICAyNiB8IDIwMjMgfCAgICAgICAgICA0MyB8DQp8IDIwMTYgfCAgICAgICAgICAzMiB8IDIwMjQgfCAgICAgICAgICAzOCB8DQp8IDIwMTcgfCAgICAgICAgICA0MiB8IDIwMjUgfCAgICAgICAgICAzMSB8DQp8IDIwMTggfCAgICAgICAgICA1MSB8IDIwMjYgfCAgICAgICAgICAyMSB8DQoNCioqUmVhbGl6YSBsbyBzaWd1aWVudGUuKioNCg0KKiBEaWJ1amEgbG9zIHB1bnRvcyAgc29icmUgbGEgdmlzdGEgZ3LDoWZpY2EgZGUgR2VvR2VicmEgIChBanVzdGEgY29ycmVjdGFtZW50ZSBsYSB2ZW50YW5hIGRlIHZpc3VhbGl6YWNpw7NuKSANCiANCiogIENyZWEgZWwgZGVzbGl6YWRvciAgICoqYyoqICBlbiAgR2VvR2VicmEgY29uIGVsIG9iamV0aXZvIGRlIGFqdXN0YXIgZWwgIG1vZGVsbyAqKiR5PWFcc2luKHcodC1jKSkrYiQqKg0KDQogICAgKyBFTCB2YWxvciBkZSBiIGVzIGVsIGNvcnJpbWllbnRvIGVuY3VlbnRyYWxvICBjb21vICh2YWxvciBtw6F4aW1vICsgdmFsb3IgbcOtbmltbykvMg0KICAgICsgQWp1c3RhIGxhIGFtcGxpdHVkICBjb21vICh2YWxvciBtw6F4aW1vIC0gdmFsb3IgbcOtbmltbykvMg0KICAgICsgT2J0w6luICB3IGNvbW8gKiokMlxwaS9wZXJpb2RvJCoqIGVuIGRvbmRlIGVsIHBlcmlvZG8gIGxvIGNhbGN1bGFzIGNvbW8gMih0aWVtcG8gZGUgdmFsb3IgbcOheGltby0gdGllbXBvIGRlIHZhbG9yIG3DrW5pbW8gKQ0KICAgIA0KDQoqIMK/Q3XDoWwgZXMgdHUgbW9kZWxvIGZpbmFsICoqJHk9YVxzaW4odyh0LWMpKStiJCoqPw0KKiBHcsOhZmljYSB0dSBtb2RlbG8gIHkgbG9zIHB1bnRvcyAgZW4gbGEgbWlzbWEgdmVudGFuYS4NCg0KDQoqIFV0aWxpemEgdW5hIGhlcnJhbWllbnRhIGRlICoqYWp1c3RlIHNlbm9pZGFsKiogZW4gR2VvR2VicmEgcGFyYSBoYWxsYXIgZWwgKiptZWpvciBhanVzdGUqKiAocC4gZWouLCBgRml0U2luKClgIC8gKipBanVzdGVTZW5vKCkqKikgeSBjb21ww6FyYWxvIGNvbiB0dSBtb2RlbG8gZGVsIGluY2lzbyBhbnRlcmlvci4gUmVwb3J0YSBsYSBmdW5jacOzbiBmaW5hbCB5IGVsICoqcGVyw61vZG8qKiBvYnNlcnZhZG8uDQoNCiogSW50ZXJwcmV0YSBlbCBtb2RlbG86IMK/RW4gcXXDqSAqKmHDsW9zKiogcHJlZGljZSBtw6F4aW1vcyB5IG3DrW5pbW9zPw0KDQoNCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBWZXJpZmljYWNpw7NuIGludGVybmEgZGUgbG9zIGRhdG9zIChubyB2aXNpYmxlIHBhcmEgZWwgZXN0dWRpYW50ZSkNCiMgVmFsb3JlcyBvcmlnaW5hbGVzICsgcnVpZG8gTigwLDEpIHJlZG9uZGVhZG8g4oCUIHNlbWlsbGEgOTkNCnNldC5zZWVkKDk5KQ0KYW5pb3MgICAgPC0gMjAxMToyMDI2DQpiYXNlICAgICA8LSBjKDQzLCAzNiwgMjcsIDIzLCAyNiwgMzMsIDQzLCA1MCwgNTYsIDYzLCA1NywgNTAsIDQ0LCAzOCwgMzAsIDIyKQ0KcnVpZG8gICAgPC0gcm91bmQocm5vcm0oMTYsIG1lYW4gPSAwLCBzZCA9IDEpKQ0KbmFjaW0gICAgPC0gYmFzZSArIHJ1aWRvDQojIG5hY2ltID09IGMoNDIsIDM2LCAyNywgMjQsIDI2LCAzMiwgNDIsIDUxLCA1NCwgNjIsIDU2LCA1MCwgNDMsIDM4LCAzMSwgMjEpDQpgYGANCg0KDQoNCg0KIyAqKlByb2JsZW1hIDIqKg0KDQpFbiBtZWPDoW5pY2EgY2VsZXN0ZSAobGV5ZXMgZGUgS2VwbGVyKSwgbGFzIMOzcmJpdGFzIGFscmVkZWRvciBkZSB1biBjdWVycG8gbWFzaXZvIHNvbiAqKmVsaXBzZXMqKiBjb24gZWwgY3VlcnBvIGNlbnRyYWwgdWJpY2FkbyBlbiAqKnVuIGZvY28qKi4gQ29uc2lkZXJhIHVuIHNhdMOpbGl0ZSBhcnRpZmljaWFsIG9yYml0YW5kbyBsYSBUaWVycmEgZW4gdW4gcGxhbm8uIFN1IMOzcmJpdGEgdGllbmUgKipzZW1pZWplIG1heW9yKiogXChhXCkgeSAqKmV4Y2VudHJpY2lkYWQqKiBcKGVcKSAoY29uIFwoMDxlPDFcKSkuIEVsICoqc2VtaWVqZSBtZW5vcioqIGVzIFwoYj1hXHNxcnR7MS1lXjJ9XCkgeSBsYSBkaXN0YW5jaWEgZGVsIGNlbnRybyBhbCBmb2NvIGVzIFwoYz1hZVwpLg0KDQo8aW1nIHNyYz0iZWxsaXBzZV9vcmJpdC5wbmciIHdpZHRoPSIzMDAiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyBtYXJnaW46YXV0bzsiPg0KDQoNCioqVG9tYSBsb3Mgc2lndWllbnRlcyBkYXRvcyAqKg0KDQotIGEgPSA4LDUwMCBrbSAgeSAgZSA9IDAuNDUuICANCi0gQ29sb2NhIGxhICoqVGllcnJhKiogZW4gZWwgZm9jbyBkZXJlY2hvIFwoKGMsMClcKS4gIA0KLSBMYSBlbGlwc2UgZXN0w6EgY2VudHJhZGEgZW4gZWwgb3JpZ2VuIGNvbiBlY3VhY2nDs24gJFxmcmFje3heMn17YV4yfStcZnJhY3t5XjJ9e2JeMn09MSQsICRiPWFcc3FydHsxLWVeMn0kLCAkYz1hZSQNCg0KKipSZWFsaXphIGxvIHNpZ3VpZW50ZToqKg0KDQphKSBDYWxjdWxhIFwoYlwpIHkgXChjXCkuIEVzY3JpYmUgbGEgKiplY3VhY2nDs24qKiBkZSBsYSBlbGlwc2UuICANCg0KYikgSWRlbnRpZmljYSB5IG1hcmNhIGVuIGxhIGdyw6FmaWNhIGVsICoqcGVyaWFwc2lzKiogKHB1bnRvIG3DoXMgY2VyY2FubyBhbCBmb2NvKSB5IGVsICoqYXBvYXBzaXMqKiAobcOhcyBsZWphbm8pLiDCv0N1w6FsZXMgc29uIHN1cyAqKmRpc3RhbmNpYXMqKiBhbCBmb2NvIFwoKGMsMClcKT8gIA0KDQpjKSBWZXJpZmljYSBsYSAqKnByb3BpZWRhZCBmb2NhbCoqOiBwYXJhIHVuIHB1bnRvIFwoUFwpIGN1YWxxdWllcmEgZW4gbGEgZWxpcHNlLCBsYSBzdW1hIGRlIGRpc3RhbmNpYXMgYSBsb3MgZG9zIGZvY29zIGVzIGNvbnN0YW50ZSBlIGlndWFsIGEgXCgyYVwpLiBDb21wcnXDqWJhbG8gbnVtw6lyaWNhbWVudGUgY29uIHZhcmlvcyBwdW50b3MuICANCg0KZCkgRGlzY3V0ZSBwb3IgcXXDqSB1bmEgbWF5b3IgKipleGNlbnRyaWNpZGFkKiogXChlXCkgcHJvZHVjZSDDs3JiaXRhcyBtw6FzICJhbGFyZ2FkYXMiLiBSZXBpdGUgKHLDoXBpZG8pIGNvbiBcKGU9MC4yXCkgcGFyYSBjb21wYXJhci4NCg0KDQoqKlN1Z2VyZW5jaWFzIHBhcmEgR2VvR2VicmEuKioNCg0KMS4gQ3JlYSAqKmRlc2xpemFkb3JlcyoqIGBhYCB5IGBlYCAoMDxlPDEpLiBEZWZpbmUgYGIgPSBhICogc3FydCgxIC0gZV4yKWAgeSBgYyA9IGEgKiBlYC4gIA0KMi4gRGlidWphIGxhIGVsaXBzZSBjb246ICANCiAgIC0gKipPcGNpw7NuIEE6KiogYEN1cnZhKCBhKmNvcyh0KSwgYipzaW4odCksIHQsIDAsIDLPgCApYC4gIA0KICAgLSAqKk9wY2nDs24gQjoqKiBIZXJyYW1pZW50YSAqKkVsaXBzZSAoY2VudHJvLCBmb2NvKSoqIHVzYW5kbyBjZW50cm8gZW4gZWwgb3JpZ2VuIHkgdW4gZm9jbyBlbiBcKChjLDApXCkuICANCjMuIE1hcmNhIGxvcyAqKmZvY29zKiogXCgowrFjLDApXCkgeSBsb3MgcHVudG9zIFwoKMKxYSwwKVwpLiAgDQo0LiBDb25zdHJ1eWUgdW5hICoqbMOtbmVhKiogZGVzZGUgXCgoYywwKVwpIGEgXCgoYSwwKVwpIHkgYSBcKCgtYSwwKVwpIHBhcmEgdmlzdWFsaXphciBwZXJpYXBzaXMvYXBvYXBzaXM7IG1pZGUgc3VzIGxvbmdpdHVkZXMgY29uICoqSGVycmFtaWVudGEgZGUgRGlzdGFuY2lhKiouICANCjUuIFBhcmEgY29tcHJvYmFyIGxhIHN1bWEgZGUgZGlzdGFuY2lhcywgY3JlYSB1biBwdW50byBgUGAgc29icmUgbGEgZWxpcHNlIHkgY2FsY3VsYSBgZDEgPSBEaXN0YW5jaWEoUCwgKGMsMCkpYCwgYGQyID0gRGlzdGFuY2lhKFAsICgtYywwKSlgIHkgYGQxICsgZDJgIChkZWJlIHNlciBcKDJhXCkpLiAgDQo2LiBDYW1iaWEgZWwgZGVzbGl6YWRvciBgZWAgeSBvYnNlcnZhIGxhIGZvcm1hIGRlIGxhIMOzcmJpdGEuDQoNCi0tLQ0KDQojICoqUHJvYmxlbWEgMyoqDQoNCkVuIHVuIHRhbGxlciBkZSBtZXRhbHVyZ2lhLCB1bmEgcGllemEgZGUgYWNlcm8gc2FsZSBkZSB1biB0cmF0YW1pZW50byB0w6lybWljbyB5IHNlIGRlamEgZW5mcmlhciBlbiB1biBhbWJpZW50ZSBxdWUgc2UgbWFudGllbmUgYSAqKjI1IMKwQyoqLiBTZWfDum4gbGEgKipMZXkgZGUgZW5mcmlhbWllbnRvIGRlIE5ld3RvbioqLCBsYSB0ZW1wZXJhdHVyYSBkZSBsYSBwaWV6YSBkZWNhZSBkZSBmb3JtYSAqKmV4cG9uZW5jaWFsKiogaGFjaWEgbGEgdGVtcGVyYXR1cmEgYW1iaWVudGU6DQoNCiQkVCh0KSA9IFRfYSArIEFcLGVeey1rdH0kJA0KDQpkb25kZSBcKFRcKSBlcyBsYSB0ZW1wZXJhdHVyYSBkZSBsYSBwaWV6YSAowrBDKSwgXCh0XCkgZWwgdGllbXBvIChtaW51dG9zKSwgXChUX2EgPSAyNVwpIMKwQyBsYSB0ZW1wZXJhdHVyYSBhbWJpZW50ZSwgXChBXCkgbGEgZGlmZXJlbmNpYSBpbmljaWFsIGRlIHRlbXBlcmF0dXJhIHkgXChrPjBcKSBsYSBjb25zdGFudGUgZGUgZW5mcmlhbWllbnRvLg0KDQoqKkRhdG9zIG1lZGlkb3MgKHRpZW1wbyBlbiBtaW51dG9zLCB0ZW1wZXJhdHVyYSBlbiDCsEMpOioqDQoNCnwgXCh0XCkgKG1pbikgfCBcKFRcKSAowrBDKSB8IFwodFwpIChtaW4pIHwgXChUXCkgKMKwQykgfA0KfC0tLS0tLTp8LS0tLS0tOnwtLS0tLS06fC0tLS0tLTp8DQp8ICAgICAwIHwgMTgwLjAgfCAgICAyNSB8ICA0Ni4zIHwNCnwgICAgIDUgfCAxMjkuNCB8ICAgIDMwIHwgIDM4LjggfA0KfCAgICAxMCB8ICA5NC4xIHwgICAgMzUgfCAgMzQuNiB8DQp8ICAgIDE1IHwgIDcyLjIgfCAgICA0MCB8ICAzMS4xIHwNCnwgICAgMjAgfCAgNTYuMCB8ICAgICAgIHwgICAgICAgfA0KDQoqKlJlYWxpemEgbG8gc2lndWllbnRlOioqDQoNCmEpICoqR3LDoWZpY2EgZGUgbG9zIGRhdG9zLioqIEluZ3Jlc2EgbG9zIGRhdG9zIGVuIGxhICoqSG9qYSBkZSBDw6FsY3VsbyoqIGRlIEdlb0dlYnJhLCBjcmVhIGxhIGxpc3RhIGRlIHB1bnRvcyB5IGFqdXN0YSBsYSB2ZW50YW5hIGRlIHZpc3VhbGl6YWNpw7NuLiDCv1F1w6kgZm9ybWEgdGllbmUgbGEgZ3LDoWZpY2E/IMK/QSBxdcOpIHZhbG9yIHBhcmVjZSBhY2VyY2Fyc2UgbGEgdGVtcGVyYXR1cmEgY3VhbmRvIFwodFwpIGNyZWNlPw0KDQpiKSAqKk1vZGVsbyBjb24gZGVzbGl6YWRvcmVzLioqIENyZWEgbG9zIGRlc2xpemFkb3JlcyAqKkEqKiB5ICoqayoqIHkgbGEgZnVuY2nDs24gYFQoeCkgPSAyNSArIEEqZXhwKC1rKngpYC4gVXNhIGVsIGRhdG8gaW5pY2lhbCBcKFQoMCk9MTgwXCkgcGFyYSBvYnRlbmVyIFwoQVwpIHkgYWp1c3RhICoqayoqIGEgbWFubyBoYXN0YSBxdWUgbGEgY3VydmEgcGFzZSBsbyBtw6FzIGNlcmNhIHBvc2libGUgZGUgbG9zIHB1bnRvcy4gUmVwb3J0YSBsb3MgdmFsb3JlcyBlbGVnaWRvcy4NCg0KYykgKipMaW5lYWxpemFjacOzbiBjb24gbG9nYXJpdG1vcy4qKiBBcGxpY2EgbG9nYXJpdG1vIG5hdHVyYWwgYWwgbW9kZWxvIHkgZGVtdWVzdHJhIHF1ZQ0KDQokJFxsbihUIC0gMjUpID0gXGxuIEEgLSBrXCx0JCQNCg0KZXMgdW5hICoqcmVjdGEqKiBlbiBsYXMgdmFyaWFibGVzIFwodFwpIHkgXChZPVxsbihULTI1KVwpLiBFbiBsYSBIb2phIGRlIEPDoWxjdWxvIGNyZWEgbG9zIHB1bnRvcyBcKCh0LFwgXGxuKFQtMjUpKVwpLCBncmFmw61jYWxvcyB5IG9idMOpbiBsYSByZWN0YSBkZSBtZWpvciBhanVzdGUgY29uIGBBanVzdGVMaW5lYWwoKWAgLyBgRml0TGluZSgpYC4gQSBwYXJ0aXIgZGUgbGEgKipwZW5kaWVudGUqKiB5IGRlbCAqKmludGVyY2VwdG8qKiBjYWxjdWxhIFwoa1wpIHkgXChBXCkgKHJlY3VlcmRhIHF1ZSBcKEEgPSBlXntcdGV4dHtpbnRlcmNlcHRvfX1cKSkuDQoNCmQpICoqQWp1c3RlIGV4cG9uZW5jaWFsIGRlIEdlb0dlYnJhLioqIENyZWEgbG9zIHB1bnRvcyBcKCh0LFwgVC0yNSlcKSB5IHVzYSBgQWp1c3RlRXhwKClgIC8gYEZpdEV4cCgpYC4gQ29tcGFyYSBlbCByZXN1bHRhZG8gY29uIGxvcyB2YWxvcmVzIG9idGVuaWRvcyBlbiBiKSB5IGMpLiBFc2NyaWJlIHR1ICoqbW9kZWxvIGZpbmFsKiogXChUKHQpXCkuDQoNCmUpICoqUHJlZ3VudGFzIGRlIGFwbGljYWNpw7NuKiogKHJlc3XDqWx2ZWxhcyAqKmFsZ2VicmFpY2FtZW50ZSBjb24gbG9nYXJpdG1vcyoqIHkgdmVyaWbDrWNhbGFzIGVuIEdlb0dlYnJhIGNvbiBlbCBjb21hbmRvIGBJbnRlcnNlY2EoKWAgbyBsYSBoZXJyYW1pZW50YSAqKkludGVyc2VjY2nDs24qKik6DQoNCiAgIDEuIMK/RW4gY3XDoW50b3MgbWludXRvcyBsYSBwaWV6YSBhbGNhbnphICoqNDAgwrBDKiosIHRlbXBlcmF0dXJhIGEgbGEgcXVlIHlhIHB1ZWRlIG1hbmlwdWxhcnNlIGNvbiBzZWd1cmlkYWQ/DQogICAyLiDCv0N1w6FudG8gdGllbXBvIHRhcmRhIGxhIGRpZmVyZW5jaWEgXChUIC0gMjVcKSBlbiByZWR1Y2lyc2UgYSBsYSAqKm1pdGFkKio/ICh2aWRhIG1lZGlhIGRlbCBlbmZyaWFtaWVudG8sIFwodF97MS8yfSA9IFxsbiAyIC8ga1wpKS4NCiAgIDMuIFNlZ8O6biBlbCBtb2RlbG8sIMK/cXXDqSB0ZW1wZXJhdHVyYSB0ZW5kcsOhIGxhIHBpZXphIGEgbG9zICoqNjAgbWludXRvcyoqPyDCv0FsY2FuemFyw6EgYWxndW5hIHZleiBleGFjdGFtZW50ZSBsb3MgMjUgwrBDPyBKdXN0aWZpY2EuDQoNCmYpICoqRnVuY2nDs24gaW52ZXJzYS4qKiBEZXNwZWphIFwodFwpIGVuIGZ1bmNpw7NuIGRlIFwoVFwpIHBhcmEgb2J0ZW5lcg0KDQokJHQoVCkgPSAtXGZyYWN7MX17a31cbG5cIVxsZWZ0KFxmcmFje1QtMjV9e0F9XHJpZ2h0KSQkDQoNCkdyYWbDrWNhbGEgZW4gR2VvR2VicmEgKHB1ZWRlcyB1c2FyIGBJbnZlcnNhKClgKSBqdW50byBjb24gXChUKHQpXCkgeSBsYSByZWN0YSBcKHk9eFwpLiBJbmRpY2EgZWwgKipkb21pbmlvKiogeSBlbCAqKnJhbmdvKiogZGUgY2FkYSBmdW5jacOzbiBlIGludGVycHJldGEgcXXDqSByZXByZXNlbnRhIGxhIGFzw61udG90YSBkZSBjYWRhIHVuYS4NCg0KKipTdWdlcmVuY2lhcyBwYXJhIEdlb0dlYnJhLioqDQoNCjEuIEVuIGxhIEhvamEgZGUgQ8OhbGN1bG8gZXNjcmliZSBcKHRcKSBlbiBsYSBjb2x1bW5hIEEgeSBcKFRcKSBlbiBsYSBjb2x1bW5hIEIuIEVuIEMyIGVzY3JpYmUgYD1sbihCMiAtIDI1KWAgeSBhcnJhc3RyYSBoYWNpYSBhYmFqby4NCjIuIFNlbGVjY2lvbmEgbGFzIGNvbHVtbmFzIEEgeSBCIHkgdXNhICoqQ3JlYXIgbGlzdGEgZGUgcHVudG9zKiogKGNsaWMgZGVyZWNobyDihpIgKkNyZWFyKikuIFJlcGl0ZSBjb24gQSB5IEMgcGFyYSBsb3MgcHVudG9zIGxpbmVhbGl6YWRvcyAoZW4gbGEgbGlzdGEsIGxhIGNvbHVtbmEgQSB2YSBjb21vIHgpLiBQYXJhIFwoKHQsXCBULTI1KVwpIGNyZWEgdW5hIGNvbHVtbmEgRCBjb24gYD1CMiAtIDI1YC4gIA0KMy4gUGFyYSBlbCBhanVzdGUgbGluZWFsOiBgcmVjdGEgPSBBanVzdGVMaW5lYWwobGlzdGFMbilgOyBsYSBwZW5kaWVudGUgc2Ugb2J0aWVuZSBjb24gYFBlbmRpZW50ZShyZWN0YSlgLg0KNC4gRGlidWphIGxhIGFzw61udG90YSBob3Jpem9udGFsIGB5ID0gMjVgIGNvbiBsw61uZWEgcHVudGVhZGEuDQo1LiBBw7FhZGUgdW4gKip0ZXh0byBkaW7DoW1pY28qKiBxdWUgbXVlc3RyZSBsb3MgdmFsb3JlcyBkZSBcKEFcKSwgXChrXCkgeSBcKHRfezEvMn1cKS4NCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgVmVyaWZpY2FjacOzbiBpbnRlcm5hIFByb2JsZW1hIDMgKG5vIHZpc2libGUgcGFyYSBlbCBlc3R1ZGlhbnRlKQ0KIyBNb2RlbG8gYmFzZTogVCA9IDI1ICsgMTU1KmV4cCgtMC4wOCB0KSBjb24gcGVxdWXDsW8gcnVpZG8NCnQzIDwtIHNlcSgwLCA0MCwgYnkgPSA1KQ0KVDMgPC0gYygxODAuMCwgMTI5LjQsIDk0LjEsIDcyLjIsIDU2LjAsIDQ2LjMsIDM4LjgsIDM0LjYsIDMxLjEpDQpmaXQzIDwtIGxtKGxvZyhUMyAtIDI1KSB+IHQzKQ0KIyBrIOKJiCAwLjA4MDQsIEEg4omIIDE1NS44DQojIFQgPSA0MCDCsEMgIC0+IHQg4omIIDI5LjEgbWluDQojIHRfMS8yICAgICAg4omIIDguNiBtaW4NCiMgVCg2MCkgICAgICDiiYggMjYuMyDCsEMNCmBgYA0KDQotLS0NCg0KIyMgUmVjb21lbmRhY2lvbmVzIGZpbmFsZXMNCg0KLSBOb21icmEgdHVzIG9iamV0b3MgeSBhw7FhZGUgKip0ZXh0b3MgZGluw6FtaWNvcyoqLCBhc8OtIHR1IGNhcHR1cmEgZXZpZGVuY2lhIGxvcyB2YWxvcmVzIHVzYWRvcy4gIA0KLSBHdWFyZGEgdHUgYXJjaGl2byAgUERGIGNvbW8gIGBQcm95ZWN0b19UYWxsZXJfQXBlbGxpZG9fTm9tYnJlX2Nhcm5ldC5wZGZgLiAgDQotIEluY2x1eWUgZW4gZWwgaW5mb3JtZSBsYXMgKiplY3VhY2lvbmVzIGZpbmFsZXMqKiB5ICoqY2FwdHVyYXMqKiBjbGFyYXMgZGUgY2FkYSBjb25zdHJ1Y2Npw7NuLg0K