Ahora se desea predicir el comportamiento de esta enfermedad para los mesees 42, 44 y 46; para esto se deben utilizar modelos de prediccion y para este caso en especifico se empleara un modelo logistico y otro de regresion lineal simple.
Para determinar con que modelo se generaran los datos para los analisis posteriores se uso como base los datos de severidad del dia 0 al 1200.
Estos son los datos de severidad para el dia 1260 usando el modelo logistico, pero ya se observan las primeras inconsistencias ya que para el dia 1200 los primeros dos datos de severidad ya eran 5,el valor mas alto de la escala, y para el dia 1260 disminuyeron a 4 y esto en terminos agronomicos no es posible.
[1] 4 4 5 0 0 0
Nuevamente se calculo la prediccion para el dia 1320 y los primeros dos valores se mantienen en 4, cosa que no es posible.
[1] 3 3 5 0 0 0
Finalemente se calcula el dia 1380, pero los primeros dos valores decrecen a 3 evidenciando que el modelo no es adecuado ya que no se ajusta a la realidad.
Ajuste modelo temporal a partir de regresion lineal simple
Ahora se procede a determinar los valores a partir de regresion lineal simple, ya que el model logistico no suministro predicciones adecuadas.
Calculo de los meses 42, 44 y 46
[1] 5 5 5 0 0 0
[1] 5 5 5 0 0 0
[1] 5 5 5 0 0 0
A partir de estos tres valores que corresponden a las predicciones de los meses 42, 44 y 46 respectivamente, se observa que este modelo genero datos consistentes con los valores empleados para su prediccion, por tanto a partir de estos datos se prosigue con los siguientes analisis.
Organizando los valores inferidos en tabla de datos original
Una ves se obtuvieron los datos a partir de las predicciones del modelo de regresion lineal simple, se colocan en la base de datos original y a partir de todos los valores de severidad se procede con el calculo de AUDPC para los meses 42, 44 y 46.
Calculando AUDPC para los valores, fechas estimadas e incluyendo estos datos en la base de datos inicial
Luego de generar los datos de AUDPC para los meses 42, 44 y46 se colocan en la matriz inicial, para obtener completamente la base de datos no solo con los valores iniciales sino con los valores estimados paro los meses posteriores.
Incidencia en funcion del tiempo y con modelacion
Otro factor clave a evaluar es la incidencia, esta nos permite determinar el progreso de la enfermiedad en el lote respecto al tiempo

La figura representa la incidencia de la enfermedad en el cultivo con los datos muestreados hasta el día 1200 y lo proyectado según el modelo para los días 1260, 1320 y 1380. En este caso se observa que el número de plantas enfermas sobre el total de plantas evaluadas es creciente, es decir, el comportamiento de incidencia de la enfermedad en plantas de aguacate en su fase inicial es lineal, posteriormente es logarítmica y finalmente a partir de los 1000 días intenta aplanarse. A partir de esta figura, se plantea que el ajuste del modelo predictivo es lineal.
modelo de incidencia
Call:
lm(formula = vinci ~ datef, data = dtinci)
Residuals:
Min 1Q Median 3Q Max
-0.12193 -0.00425 0.00958 0.01775 0.03894
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.22e-01 1.41e-02 8.67 1.5e-08 ***
datef 3.28e-04 1.75e-05 18.76 5.0e-15 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.0355 on 22 degrees of freedom
Multiple R-squared: 0.941, Adjusted R-squared: 0.939
F-statistic: 352 on 1 and 22 DF, p-value: 5.04e-15


Posteriormente despues de utilizr un modelo de prediccion nuevamente de regresion lineal simple ya que dio buenos resultados en sevreidad se observa en los diagramas y en los datos presentados en el sumario del modelo que el R cuadrado ajustado es de 0.93 lo que es un valor aceptable para la predicicon de futuros datos a partir de este modelo.
Analisis espacial de los datos inferidos a partir de la modelacion temporal
Ahora que se tienen los datos de severidad y de AUDPC para los meses 42, 44 y 46 gracias al modelo anteriormente descrito, se procede con la elaboracion de maps que permitan ver el movimiento de esta enfermedad en el lote en los meses inferidos.




Partiendo del mapa de severidad para el dia 1200 se observa como esta enfermedad va avanzando tanto en espacio como esn severidad para los meses 42, 44 y 46.




Una mejor forma de visualizar lo anterior es descomponiendo los mapas por categorias de severidad, asi se evidencia como la mayor cantidad de puntos que estabam depositados en cierta categoria, en el siguente mapa ya avanzaron a la otra y asi sucesivamente generando una acumulacion dominante en la categoria 5 de maxima severidad.
Despues de analizar los datos de severidad se procede con el analisis de datos de AUDPC para los meses inferidos.
Graficando AUDPC

En la figura se observa cómo a través del tiempo se espera que se dé el avance de la enfermedad, la cual cada vez será más severa, es decir, los puntos color rojo al ser más grandes, indican que el efecto del AWC atacará cada vez más plantas y en mayor intensidad. Esto nos puede dar una idea de la velocidad de dispersión de los patógenos, asociado a las labores agronómicas desarrolladas en el cultivo, con el fin de generar estrategias que permitan manejar la enfermedad, principalmente en los focos de infección (zonas con mayor cantidad y tamaño de puntos). Por ejemplo, este complejo se puede dispersar por agua de riego, herramientas o material contaminado, malezas hospederas, entre otras; teniendo en cuenta esta característica del complejo, es oportuno realizar un manejo de malezas, descontaminación de herramientas, eliminación de desechos y plantas infectadas, asegurar un buen drenaje y flujo de agua que impidan el desarrollo óptimo de los patógenos y a su vez evitar el trastorno de hipoxia-anoxia, entre otras prácticas.
Relacionando las figuras anteriores , es importante tener en cuenta el período de tiempo crítico en el cual se debe tener más cuidado (aproximadamente previo a los 800 días), pues después de pasado este tiempo, es más difícil controlar la enfermedad.
Analisis de interpolacion
En la figura se puede evidenciar claramente como se encuentran distribuidos los focos de la enfermedad con base en los datos, en la zona del margen occidental del lote se evidencia un alto progreso de la enfermedad, así como en la zona nororiental y un poco hacia el centro del lote. Adicionalmente, al compararla con las figuras aneriores del analisis espacial para datos inferidos (a los 60 días vs a los 1200 días de muestreo, respectivamente) se comprueba que los focos iniciales (puntos azul claro de mayor tamaño) posteriormente representarán las zonas mas afectadas que requieren mayor atención y que son principal fuente de inoculo (representadas de color rojo y naranja en esta figura). Esta diferenciación en el espacio permite realizar un manejo diferencial, identificando las áreas que puedan tener condiciones desfavorables, como un mal manejo agronómico (presencia de malezas, suelos anegados, presencia de residuos contaminados, etc…) o características específicas del terreno (como el nivel freático, altura, parches en condición de salinidad, etc…), con el fin de controlar los focos del problema y manteniendo sanas otras áreas del lote.
Con base en el modelo realizado se tienen las simulaciones de las ultimas tres figuras en donde se presenta la predicción para los meses 42 (D1260), 44 (D1320) y 46 (D1380). Los cuales presentan una distribución espacial muy similar, lo que comprueba la viabilidad del modelo utilizado, pues es congruente al compararlo entre los mismos meses pues sigue una dispersión lógica.
Los resultados obtenidos permiten inferir que el modelo es útil y funcional para contribuir al manejo de la enfermedad, ya que muestra las áreas mayormente afectadas que requieren atención prioritaria (y así evitar la propagación o dispersión del complejo) y a su vez, no solo muestra el diagnóstico actual del lote, sino también es posible predecir el comportamiento a futuro de la enfermedad permitiendo actuar a tiempo, con la ventaja de visualizar de forma más amigable los resultados. Lo anterior se cumple mientras el manejo se realice en el momento adecuado, dado que las plantas severamente enfermas deben ser eliminadas, disminuyendo las ganancias para el agricultor. Sin embargo, es importante asociarlo con otras herramientas, pues por sí sola no aseguran el éxito del manejo de la enfermedad. Se puede añadir un monitoreo constante, prácticas preventivas (como por ejemplo un fungicida protectante o usar un sistema de riego adecuado), manejo integrado de plagas, enfermedades y malezas, alimentación de la base de datos para mejorar la predicción del modelo, entre otras; de esta manera se aumentan las probabilidades de tener un cultivo sano, con gran potencial agronómico que supla las necesidades del mercado, aumentando las ganancias del agricultor.
Referencias
Gil, J. G. 2018. Avocado wilt complex disease, implications and management in Colombia. Revista Facultad Nacional de Agronomía Medellín. 71(2) DOI: 10.15446/rfna.v71n2.66465
Gil, J. G. y Morales, J. 2020. Development and validation of severity scales of avocado wilt complex caused by Phytophthora cinnamomi, Verticillium dahliae and hypoxia-anoxia disorder and their physiological responses in avocado plants. Agronomía Colombiana. DOI: 10.15446/agron.colomb.v38n1.78527
, J. G,. y Morales, J. 2020. Integrated proposal for management of root rot caused by Phytophthora cinnamomi in avocado cv. Hass crops DOI: 10.1016 / j.cropro.2020.105271
Gil, J. G y Peterson, A. 2019. Potential distributions of the most important diseases affecting Hass avocado in Antioquia Colombia. Journal of Plant Protection Research. Vol. 59, No. 2: 214–228, 2019 DOI: 10.24425/jppr.2019.129288
ANEXOS
Mapas de severidad de los dias 0 a 1200 (aproximacion inicial.)




Mismos mapas de severidad de los dias 0 a 1200 pero empleando ggplot2





















LS0tDQp0aXRsZTogIk1PREVMQUNJw5NOIEVTUEFDSUFMIFkgVEVNUE9SQUwgREVMIENPTVBMRUpPIERFIE1BUkNISVRFWiBERUwgQUdVQUNBVEUgIChBV0MpIg0KYXV0aG9yOiB8IA0KICB8IE9zY2FyIEp1bGlhbiBMYSBSb3R0YSwgRGllZ28gQW5kcsOpcyBNYXJ0w61uZXosIEFuYSBNYXJpYSBGbG9yacOhbiwgQW5hIE1hcsOtYSBHYXJ6w7NuLCBLZWxseSBKaG9qYW5hIEFsemF0ZS4NCiAgfCBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYS4NCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCg0KDQoNCg0KDQoNCiMgSW50cm9kdWNjacOzbg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCkVsIGN1bHRpdm8gZGUgYWd1YWNhdGUgKFBlcnNlYSBhbWVyaWNhbmEpIGVuIENvbG9tYmlhIGhhIGlkbyB0b21hbmRvIGdyYW4gaW1wb3J0YW5jaWEgcmVjaWVudGVtZW50ZSBkZWJpZG8gYSBzdSBwb3RlbmNpYWwgZGUgZXhwb3J0YWNpw7NuIHkgY29uc3VtbyBpbnRlcm5vIHBlciBjw6FwaXRhIGNyZWNpZW50ZS4gRGVudHJvIGRlIGxvcyBwcmluY2lwYWxlcyBsaW1pdGFudGVzIHNlIGVuY3VlbnRyYSBlbCBjb21wbGVqbyBkZSBtYXJjaGl0ZXogZGVsIGFndWFjYXRlIChDTUE7IEFXQyBlbiBpbmdsw6lzKSwgcXVlIHNlIHJlZmllcmUgYWwgY29tcGxlam8gZGUgcGF0b2xvZ8OtYXMgb2Nhc2lvbmFkYXMgcG9yIGRpZmVyZW50ZXMgYWdlbnRlcyBjYXVzYWxlcyBkZSBvcmlnZW4gYmnDs3RpY28gbyBhYmnDs3RpY28sIHF1ZSBhZmVjdGFuIHRvZG9zIGxvcyBlc3RhZG9zIGZlbm9sw7NnaWNvcyBkZWwgY3VsdGl2byBlbiBsYSB6b25hIHJhZGljYWwgeSBiYXNhbC4gTG9zIGFnZW50ZXMgY2F1c2FsZXMgbcOhcyBjb211bmVzIGFzb2NpYWRvcyBjb24gQVdDIGVuIENvbG9tYmlhIHNvbiBQaHl0b3BodGhvcmEgY2lubmFtb21pIHkgVmVydGljaWxsaXVtIGRhaGxpYWUsIHkgZWwgdHJhc3Rvcm5vIGRlIGhpcG94aWEtYW5veGlhIGVuIHBsw6FudHVsYXMgeSBwbGFudGFzIGFkdWx0YXMuDQoNCkVsIG9iamV0aXZvIGRlIGVzdGUgdGFsbGVyIGVzIHByZXNlbnRhciB1biBhbsOhbGlzaXMgZXNwYWNpYWwgeSB0ZW1wb3JhbCBhIG5pdmVsIGRlIGZpbmNhIHF1ZSBwZXJtaXRhIHRvbWFyIGRlY2lzaW9uZXMgYWNlcnRhZGFzIGRlIG1hbmVqbyBkZSBlc3RhIHByb2JsZW3DoXRpY2EgZW4gY2FtcG8uIExvcyBkYXRvcyBhbmFsaXphZG9zIGZ1ZXJvbiBvYnRlbmlkb3MgZGUgdW5hIGJhc2UgZGUgZGF0b3MgY29uIGNvb3JkZW5hZGFzIHkgbGEgZXZhbHVhY2nDs24gZGUgbGEgaW5jaWRlbmNpYSB5IHNldmVyaWRhZCBlbiA5MDMgcGxhbnRhcyBkZSBhZ3VhY2F0ZSAoY29uIHVuYSBlc2NhbGEgZGUgMCBhIDUsIHNpZW5kbyA1IGVsIHF1ZSByZXByZXNlbnRhIGxhIG1heW9yIHNldmVyaWRhZCksIGVuIHVuIMOhcmVhIGRlIDQgaGEgdWJpY2FkYSBlbiBNYW7DrSwgQ2FzYW5hcmUsIGR1cmFudGUgdW4gcGVyaW9kbyBkZSA0MCBtZXNlcywgY29uIGRhdG9zIGNhZGEgNjAgZMOtYXMuIFBhcmEgbGEgbW9kZWxhY2nDs24gc2UgdXNhcm9uIGhlcnJhbWllbnRhcyBkZSBzb2Z0d2FyZSB0YWxlcyBjb21vIFIgU3R1ZGlvLCBBcmNnaXMgMTAuNQ0KPGRpdi8+DQoNCg0KDQojIEFuYWxpc2lzIGV4cGxvcmF0b3Jpby4NCg0KYGBge3IsIGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0KdGFsbGVyPVRhbGxlcl9lcGkNCnRhbGxlcg0KcGxvdCh0YWxsZXIkRWFzdGluZyx0YWxsZXIkTm9ydGhpbmcscGNoPTIwLGNleD0wLjUsY29sPSJEYXJrcmVkIixtYWluPSJNYXBhIGRlIGxhIHpvbmEgZGUgZXN0dWRpbyIseGxhYj0iT2NjaWRlbnRlIC0gT3JpZW50ZSIsIHlsYWI9IlN1ciAtIE5vcnRlIikNCiN2aXN1YWxpemFjaW9uIGRlIGRhdG9zIGkgbWFwZW8gZGUgcHVudG9zIGluaWNpYWxlcw0KYGBgDQpFbiBlc3RhIGltYWdlbiBzZSBvYnNlcnZhbiBsb3MgcHVudG9zIG11ZXN0cmVhZG9zIGVuIGVsIGxvdGUgcHJvdmllbmRvIGFzaSBsYSBmb3JtYSBkZWwgbG90ZSBkZSBlc3R1ZGlvLg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NClBvc3Rlcmlvcm1lbnRlIHBhcmEgaGFjZXIgdW4gYW5hbGlzaXMgZXhwbG9yYXRvcmlvIHNlIGdyYWZpY2FyYW4gbG9zIGRhdG9zIGRlIEFVRFBDIGRlbCBkaWEgMTIwMCByZXNwZWN0byBhIGxvcyBwdW50b3MgbXVlc3RyZWFkb3MgY29uIGVsIGZpbiBkZSBpZGVudGlmaWNhciBwYXRyb25lcyBlbiBsYSBlbmZlcm1lZGFkIG8gYXNvY2lhY2lvbmVzIGRlcGVuZGllbnRlcyBkZSBwcm94aW1pZGlkYWQgZGUgcHVudG9zLg0KPGRpdi8+DQoNCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0KbGlicmFyeShhZ3JpY29sYWUpDQpzZXY9dGFsbGVyWyw4OjI4XQ0KZGF0ZT1zZXEoMCwxMjAwLGJ5PTYwKQ0KYXVjPWF1ZHBjKHNldixkYXRlKQ0KcGxvdCh0YWxsZXIkT1JJR19GSUQsdGFsbGVyJEFVRFBDLG1haW49ICJQcmltZXJhIHZpc3VhbGl6YWNpb24gZ3JhZmljYSBkZSBkYXRvcyAtIGRpYSAxMjAwICIseGxhYj0iSUQgZGVsIHB1bnRvIiwgeWxhYj0iQVVEUEMiKQ0KIyB2aXN1YWxpemFjaW9uIGRlIGRhdG9zIGRlIGFydWEgYmFqbyBsYSBjdXJ2YSBkZSBwcm9ncmVzbyBkZSBlbmZlcm1lZGFkLCBwb3IgcHVudG8gZW4gbWFwYQ0KYGBgDQpFbiBlZmVjdG8gIHNlIHB1ZWRlIHZpc3VhbGlyYXIgY29tcG9ydGFtaWVudG9zIHNpbWlsYXJlcyBlbnRyZSBsb3MgcHVudG9zIGNlcmNhbm9zIGVudHJlIHNpIHlhIHF1ZSBzZSBkZXRlY3RhIGRlIGZvcm1hIGVtcGlyaWNhIGNpZXJ0YXMgYWdydXBhY2lvbmVzIGRlIHB1bnRvcy4NCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQpQb3Nlcmlvcm1lbnRlIHNlIGRlc2VhIG9ic2VydmFyIGRlIG1hbmVyYSBlc3BhY2lhbCBlc3RhIGRpc3RyaWJ1Y2lvbiBkZSBhc29jaWFjaW9uZXMgZW50cmUgcHVudG9zIHlhIHF1ZSBzZSBxdWllcmUgZXZpZGVuY2lhciBlc3RhIGFzb2NpYWNpb24gZGUgZm9ybWEgcXVlIHBlcm1pdGEgbGEgdG9tYSBkZSBkZWNpc2lvbmVzIHJlc3BlY3RvIGEgbWVuZWpvIG9hbGd1bmEgYWN0aXZpZGFkIGFmaW4uDQo8ZGl2Lz4NCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0KcGxvdCh0YWxsZXIkRWFzdGluZyx0YWxsZXIkTm9ydGhpbmcscGNoPTIwLGNleD0wLjAwMDM1KnRhbGxlciRBVURQQyx4bGFiPSJFYXN0aW5nIg0KICAgICAseWxhYj0iTm9ydGhpbmciLGNvbD0iZGFya3JlZCIsbWFpbj0iTWFwYSBkZSBBVURQQyBkaWEgMTIwMCIpDQoNCiNtYXBlbyBkZSBsb3MgcHVudG9zIGRvbmRlIGVsIEFVRFBDIGZ1ZSBtYXlvciBlbiBlbCBsb3RlIHBhcmEgZWwgbWVzIDEyMDANCmBgYA0KQSBwYXJ0aXIgZGUgbGEgdmlzdWFsaXphY2lvbiBkZSBsb3MgZGF0b3MgZGUgQVVEUEMgcGFyYSBlbCBkaWEgMTIwMCBkZSBmb3JtYSBncmFmaWNhIHNlIG9ic2VydmEgcXVlIGVuIGVsIGxvdGUgbG9zIG1heW9yZXMgdmFsb3JlcyBzZSBoYWxsYW4gZW4gYWdydXBhY2lvbmVzIHkgZGlzdHJpYnVpZG9zIGhhY2lhIGxvcyBib3JkZXMsIGNvbiBjaWVydG8gcmVjb3JyaWRvIGhhY2lhIGVsIGNlbnRyby4NCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0KcGFyKG1mcm93PWMoMiwyKSkNCmhpc3QodGFsbGVyJEFVRFBDLG1haW4gPSAiSGlzdG9ncmFtYSBkZSBBVURQQyBkaWEgMTIwMCIseGxhYiA9ICJBVURQQyIpDQphdWMxPXNxcnQodGFsbGVyJEFVRFBDKQ0KaGlzdChhdWMxLG1haW4gPSAiSGlzdG9ncmFtYSBkZSBzcXJ0KEFVRFBDKSBkaWEgMTIwMCIseGxhYiA9ICJzcXJ0KEFVRFBDKSIpDQphdWMyPWxvZyh0YWxsZXIkQVVEUEMpDQpoaXN0KGF1YzIsIG1haW4gPSAiSGlzdG9ncmFtYSBkZSBsb2coQVVEUEMpIGRpYSAxMjAwIix4bGFiID0gImxvZyhBVURQQykiKQ0KI2V2aWRlbmNpYSBkZSBubyBub3JtYWxpZGFkIGVuIGxvcyBkYXRvcyBhdW4gaGFjaWVuZG8gdHJhbnNmb3JtYWNpb25lcw0KYGBgDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCkx1ZWdvIHNlIHRyYXRhIGRlIGlkZW50aWZpY2FyIG5vcm1hbGlkYWQgZW4gbG9zIGRhdG9zIHBlcm8gbm8gZXMgcG9zaWJsZSB5YSBxdWUgaW5pY2lhbG1lbnRlIGVzdG9zIHZhbG9yZXMgc29uIGRlIHRpcG8gY2F0ZWdvcmljbyB5YSBxdWUgcHJvdmllbmVuIGRlIHVuYSBlc2NhbGEgZGUgc2V2ZXJpZGFkIHBvciB0YW50bywgYWwgbm8gc2VyIGNvbnRpbnVvcywgY29uY2VwdG9zIGNvbW8gbm9ybWFsaWRhZCBkZSBkYXRvcyBubyBlcyBwb3NpYmxlIG9idGVuZXJsYSBwb3IgbWV0b2RvcyBjb252ZW5jaW9uYWxlcy5hZGVtYXMgbGEgYmFzZSBkZSBkYXRvcyBjdWVudGEgY29uIG11Y2hvcyBkYXRvcyBjb24gY2Vyb3MgcXVlIG5vIHNlIHB1ZWRlbiBkZXNjYXJ0YXIgeWEgcXVlIGVsIGNlcm8gZW4gdGVybWlub3MgZGUgc2V2ZXJpZGFkIGltcGxpY2Egc2FuaWRhZCBkZSBsYSBwbGFudGEgeSBlcyB1biB2YWxvciBjbGF2ZSBwYXJhIGRlY2lzaW9uZXMgZGUgdGlwbyBhZ3Jvbm9taWNvLg0KPGRpdi8+DQpgYGB7cixlY2hvPUZBTFNFLHdhcm5pbmcgPSBGQUxTRSxyZXN1bHRzPSdoaWRlJ30NCnNldnQ9dChzZXYpDQptZGF0YT1kYXRhLmZyYW1lKGRhdGUsc2V2dCkNCiN0cmFuc3BvbmllbmRvIGRhdG9zIGRlIHNldmVyaWRhZCBwYXJhIGhhY2VybG9zIGNvaW5jaWRpciBjb24gdW4gdmVjdG9yIGRlIGZlY2hhcyA9IGRhdGUNCmBgYA0KDQoNCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQpBaG9yYSBzZSBkZXNlYSBvYnNlcnZhciBlbCBwYXRyb24gZGUgYXZhbmNlIG8gYXVtZW50byBkZSBsYSBzZXZlcmlkYWQgZW4gZWwgdGllbXBvLCBwYXJhIGVzdG8gc2Ugb3B0YSBwb3IgdXRpbGl6YXIgdW4gZ3JhZmljbyBjb252ZW5zaW9uYWwgc2ltaWxhciBhbCBpbmljaWFsIGRlIEFVRFBDIGRlbCBkaWEgMTIwMCByZXNwZWN0byBhIHB1bnRvcyBkZSBtdWVzdHJlbzsgcGVybyBlc3RhIHZleiBzZSBkZXNlYSBlbGFib3JhciBwYXJhIGNhZGEgZGlhIHBhcmEgZGV0ZWN0YXIgcGF0cm9uZXMgZGUgYXZhbmNlIGRlIHRpcG8gdGVtcG9yYWwuDQo8ZGl2Lz4NCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0Kc2V2dFsxMSw3ODBdDQojaWRlbnRpZmljYWNpb24gZGVsIHZhbG9yIGF0aXBpY28NCmBgYA0KRXN0ZSB2YWxvciBlcyB1biBkYXRvIGF0aXBpY28gZGVudHJvIGRlbCBkYXRhc2V0IGluaWNpYWwsIHBvciB0YW50byBzZSBjb3JyaWdlIHBhcmEgZ2VuZXJhciBsb3MgcG9zdGVyaW9yZXMgYW5hbGlzaXMgeWEgcXVlIHN1IHZhbG9yIG9yaWdpbmFsIGVzICIyIi4NCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0Kc2V2dFsxMSw3ODBdPTUNCnBhcihtZnJvdz1jKDIsMykpDQppPTENCmZvciAoaSBpbiAxOjIxKQ0Kew0KcGxvdChzZXZ0W2ksXSxtYWluID0gaSwgeGxhYiA9ICJJRCBkZSBwdW50byIseWxhYiA9ICJTZXZlcmlkYWQiKQ0KbGluZXMoc2V2dFtpLF0pDQppKzENCn0NCiNjb3JyZWNpb24gZGVsIHZhbG9yIHkgbnVldmEgZWplY3VjaW9uIGRlIGRhdG9zLCBpbXBsaWNpdGFtZW50ZSBzZSBvYnNlcnZhIHVuYSBkZXBlbmRlbmNpYSBlc3BhY2lhbCBvIGZvY29zIGRlIGF1bWVudG8gZGUgZW5mZXJtZWRhZA0KYGBgDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCkRlc3B1ZXMgZGUgY29ycmVnaXIgZWwgZGF0byBhdGlwaWNvIHNlIGdlbmVyYW4gZXN0b3MgZ3JhZmljb3MgcXVlIG11ZXN0cmFuIGNvbW8gc2UgdmEgZGlzdHJpYnVpZW5kbyBlbCBhdW1lbnRvIGRlIHNldmVyZGlkYWQgcG9yIHpvbmFzIHNpZ3VpZW5kbyBlbCBtaXNtbyBwYXRyb24gaGFsbGFkbyBlbiBlbCBncmFmaWNvIGRlIEFVRFBDIGRlbCBkaWEgMTIwMCByZXNwZWN0byBhbCBwdW50byBkZSBtdWVzdHJlbyxldmlkZW5jaWFuZG8gYXNpIHF1ZSBlbCBhdW1lbnRvIGRlIGxhIGVuZmVybWVkYWQgc2UgZGEgYSB0cmF2ZXogZGVsIHRpZW1wbyBhIHBhcnRpciBkZSBsYSBwcm94aW1pZGFkIGEgbG9zIHB1bnRvcyBtYXlvcm1lbnRlIGFmZWN0YWRvcy4gTG9zIHRpdHVsb3MgZGUgbG9zIGdyYWZpY29zIGVzdGFuIGVuIGZ1bmNpb24gZGUgbGEgcG9zaWNpb24gZGUgbGEgY29sdW1uYSBkZSBsb3MgZGF0b3MgZGVzZGUgZWwgZGlhIDAgYWwgMTIwMCBlbiBlbCBkYXRhc2V0IGluaWNpYWwuDQo8ZGl2Lz4NCg0KYGBge3IsZWNobz1GQUxTRSx3YXJuaW5nID0gRkFMU0V9DQp0YWxsZXJbNzgwLDE4XT0yDQojY29ycmVlY2lvbiBkZWwgdmFsb3IgYXRpcGljbyBlbiBlbCBkYXRhc2V0IGluaWNpYWwNCmBgYA0KDQojIEFuYWxpc2lzIGVzcGFjaWFsIHkgdGVtcG9yYWwgZGUgbGEgYmFzZSBkZSBkYXRvcy4NCg0KDQoNCg0KIyMgQW5hbGlzaXMgZXNwYWNpYWwuDQoNCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KQUhvcmEgc2UgZGVzZWEgc2FiZXIgY29tbyBlcyBsYSBkaXN0cmlidWNpb24gZXNwYWNpYWwgZGUgbG9zIGdyYWZpY29zIGFudGVyaW9ybWVudGUgcmVhbGl6YWRvcywgcGVybyB5YSBxdWUgZXN0byBnZW5lcmFyaWEgMjEgbWFwYXMgZGUgZGlzdHJpYnVjaW9uIGRlIGxhIGVuZmVybWVkYWQsIHNvbG8gc2UgdmFuIGEgbW9zdHJhciA0LCBwZXJvIHNlIGRlamFyYW4gdG9kb3MgZW4gbGEgc2VjY2lvbiBkZSBhbmV4b3MuIA0KPGRpdi8+DQpgYGB7cixlY2hvPUZBTFNFLHdhcm5pbmcgPSBGQUxTRX0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbTE9Z2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT0gRDApKStnZ3RpdGxlKCJEMCIpICArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQptNz1nZ3Bsb3QoZGF0YSA9IHRhbGxlcixhZXMoeD1FYXN0aW5nLHk9Tm9ydGhpbmcsY29sb3I9RDM2MCkpK2dlb21fcG9pbnQoYWVzKHNpemU9IEQzNjApKStnZ3RpdGxlKCJEMzYwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KbTE0PWdncGxvdChkYXRhID0gdGFsbGVyLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1ENzgwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT0gRDc4MCkpK2dndGl0bGUoIkQ3ODAiKSArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQptMjE9Z2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQxMjAwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT1EMTIwMCkpK2dndGl0bGUoIkQxMjAwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KI209Z2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQxMjAwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT1EMTIwMCkpK2dndGl0bGUoIkQxMjAwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArIGZhY2V0X2dyaWQoRDEyMDAgfiAuKQ0KIyByZXByZXNlbnRhY2lvbiBncmFmaWNhIHVzYW5kbyBHZ3Bsb3QyIHVsdGltbyBtYXBhIHNlIGRlc2NvbXB1c28gcG9yIGNhdGVyb3JpYSBkZSBzZXZlcmlkYWQNCm0xO203O20xNDttMjENCmBgYA0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQpBIHBhcnRpciBkZSBlc3RvcyBjdWF0cm8gbWFwYXMgZGUgZGlzdHJpYnVjaW9uIGRlIGxhIGVuZmVybWVkYWQgc2Ugb2JzZXJ2YSBjb21vIGxhIGVuZmVybWVkYWQgYXZhbnphIHBvciBlbCBsb3RlIHkgZWwgZWZlY3RvIHF1ZSB0aWVuZW4gbG9zIHB1bnRvcyBpbmljbGFtZW50ZSBtYXlvciBhZmVjdGFkb3MgZW4gbGEgcHJvcGFnYWNpb24gZGUgbGEgZW5mZXJtZWRhZCBjb2xvbml6YW5kbyBhc2kgbGEgbWF5b3IgcGFydGUgZGVsIGxvdGUgY29uIHVuIG1vdmltaWVudG8gZGVzZGUgYm9yZGVzIGhhY2lhIGVsIGNlbnRyby4NCjxkaXYvPg0KDQojIyBBbmFsaXNpcyB0ZW1wb3JhbCB5IHByZWRpY2Npb24gZGUgZGF0b3MgcGFyYSBsb3MgbWVzZSA0MiwgNDQgeSA0NiAtPiBkaWFzIDEyNjAsICAxMzIwIHkgMTM4MC4NCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQpBaG9yYSBzZSBkZXNlYSBwcmVkaWNpciBlbCBjb21wb3J0YW1pZW50byBkZSBlc3RhIGVuZmVybWVkYWQgcGFyYSBsb3MgbWVzZWVzIDQyLCA0NCB5IDQ2OyBwYXJhIGVzdG8gc2UgZGViZW4gdXRpbGl6YXIgbW9kZWxvcyBkZSBwcmVkaWNjaW9uIHkgcGFyYSBlc3RlIGNhc28gZW4gZXNwZWNpZmljbyBzZSBlbXBsZWFyYSB1biBtb2RlbG8gbG9naXN0aWNvIHkgb3RybyBkZSByZWdyZXNpb24gbGluZWFsIHNpbXBsZS4NCjxkaXYvPg0KDQoqKkFqdXN0ZSBtb2RlbG8gdGVtcG9yYWwgTG9naXN0aWNvKioNCg0KUGFyYSBkZXRlcm1pbmFyIGNvbiBxdWUgbW9kZWxvIHNlIGdlbmVyYXJhbiBsb3MgZGF0b3MgcGFyYSBsb3MgYW5hbGlzaXMgcG9zdGVyaW9yZXMgc2UgdXNvIGNvbW8gYmFzZSBsb3MgZGF0b3MgZGUgc2V2ZXJpZGFkIGRlbCBkaWEgMCBhbCAxMjAwLg0KYGBge3IsZWNobz1GQUxTRSx3YXJuaW5nID0gRkFMU0V9DQpoZWFkKFRhbGxlcl9lcGkkRDEyMDApDQpgYGANCg0KYGBge3IsZWNobz1GQUxTRSx3YXJuaW5nID0gRkFMU0V9DQpsaWJyYXJ5KCJnZ3Bsb3QyIikNCmxpYnJhcnkoImdncHViciIpDQpsaWJyYXJ5KCJNb2RlbE1ldHJpY3MiKQ0KbGlicmFyeSgibWdjdiIpDQojRGF0b3MgaW5mZXJpZG9zIGRlIGxhIGZlY2hhIDEyNjAgbWVzIDQyDQppPTENCnZlY3RvcjEyNjA9YygpDQpmb3IoaSBpbiAxOjkwMyl7DQpzZXYxPXNldnRbLGldDQpkdD1kYXRhLmZyYW1lKHNldjEsZGF0ZSkNCnBvbGk8LWxtKHNldjEgfiBwb2x5KGRhdGUsIDIsIHJhdyA9IFRSVUUpLCBkYXRhID0gZHQpDQpwcmVkaWN0aW9uc3BvbCA8LSBwb2xpICU+JSBwcmVkaWN0KGR0KQ0KbmV3IDwtIGRhdGEuZnJhbWUoZGF0ZT1jKDEyNjApKSANCmluZmVyZW5jZT1wcmVkaWN0KHBvbGksIG5ld2RhdGE9bmV3LCBpbnRlcnZhbD0iY29uZmlkZW5jZSIpDQp2ZWN0b3IxMjYwPWModmVjdG9yMTI2MCxyb3VuZChpbmZlcmVuY2VbLDFdKSkNCn0NCnZlY3RvcjEyNjBbdmVjdG9yMTI2MCA9PSA3XSA8LSA1DQp2ZWN0b3IxMjYwW3ZlY3RvcjEyNjAgPT0gNl0gPC0gNQ0KaGVhZCh2ZWN0b3IxMjYwKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KRXN0b3Mgc29uIGxvcyBkYXRvcyBkZSBzZXZlcmlkYWQgcGFyYSBlbCBkaWEgMTI2MCB1c2FuZG8gZWwgbW9kZWxvIGxvZ2lzdGljbywgcGVybyB5YSBzZSBvYnNlcnZhbiBsYXMgcHJpbWVyYXMgaW5jb25zaXN0ZW5jaWFzIHlhIHF1ZSBwYXJhIGVsIGRpYSAxMjAwIGxvcyBwcmltZXJvcyBkb3MgZGF0b3MgZGUgc2V2ZXJpZGFkIHlhIGVyYW4gNSxlbCB2YWxvciBtYXMgYWx0byBkZSBsYSBlc2NhbGEsIHkgcGFyYSBlbCBkaWEgMTI2MCBkaXNtaW51eWVyb24gYSA0IHkgZXN0byBlbiB0ZXJtaW5vcyBhZ3Jvbm9taWNvcyBubyBlcyBwb3NpYmxlLg0KPGRpdi8+DQpgYGB7cixlY2hvPUZBTFNFLHdhcm5pbmcgPSBGQUxTRX0NCiNEYXRvcyBpbmZlcmlkb3MgZGUgbGEgZmVjaGEgMTMyMCBtZXMgNDQNCmk9MQ0KdmVjdG9yMTMyMD1jKCkNCmZvcihpIGluIDE6OTAzKXsNCnNldjE9c2V2dFssaV0NCmR0PWRhdGEuZnJhbWUoc2V2MSxkYXRlKQ0KcG9saTwtbG0oc2V2MSB+IHBvbHkoZGF0ZSwgMiwgcmF3ID0gVFJVRSksIGRhdGEgPSBkdCkNCnByZWRpY3Rpb25zcG9sIDwtIHBvbGkgJT4lIHByZWRpY3QoZHQpDQpuZXcgPC0gZGF0YS5mcmFtZShkYXRlPWMoMTMyMCkpIA0KaW5mZXJlbmNlPXByZWRpY3QocG9saSwgbmV3ZGF0YT1uZXcsIGludGVydmFsPSJjb25maWRlbmNlIikNCnZlY3RvcjEzMjA9Yyh2ZWN0b3IxMzIwLHJvdW5kKGluZmVyZW5jZVssMV0pKQ0KfQ0KdmVjdG9yMTMyMFt2ZWN0b3IxMzIwID09IDhdIDwtIDUNCnZlY3RvcjEzMjBbdmVjdG9yMTMyMCA9PSA3XSA8LSA1DQp2ZWN0b3IxMzIwW3ZlY3RvcjEzMjAgPT0gNl0gPC0gNQ0KaGVhZCh2ZWN0b3IxMzIwKQ0KYGBgDQpOdWV2YW1lbnRlIHNlIGNhbGN1bG8gbGEgcHJlZGljY2lvbiBwYXJhIGVsIGRpYSAxMzIwIHkgbG9zIHByaW1lcm9zIGRvcyB2YWxvcmVzIHNlIG1hbnRpZW5lbiBlbiA0LCBjb3NhIHF1ZSBubyBlcyBwb3NpYmxlLg0KYGBge3IsZWNobz1GQUxTRSx3YXJuaW5nID0gRkFMU0V9DQojRGF0b3MgaW5mZXJpZG9zIGRlIGxhIGZlY2hhIDEzODAgbWVzIDQ2DQppPTENCnZlY3RvcjEzODA9YygpDQpmb3IoaSBpbiAxOjkwMyl7DQpzZXYxPXNldnRbLGldDQpkdD1kYXRhLmZyYW1lKHNldjEsZGF0ZSkNCnBvbGk8LWxtKHNldjEgfiBwb2x5KGRhdGUsIDIsIHJhdyA9IFRSVUUpLCBkYXRhID0gZHQpDQpwcmVkaWN0aW9uc3BvbCA8LSBwb2xpICU+JSBwcmVkaWN0KGR0KQ0KbmV3IDwtIGRhdGEuZnJhbWUoZGF0ZT1jKDEzODApKSANCmluZmVyZW5jZT1wcmVkaWN0KHBvbGksIG5ld2RhdGE9bmV3LCBpbnRlcnZhbD0iY29uZmlkZW5jZSIpDQp2ZWN0b3IxMzgwPWModmVjdG9yMTM4MCxyb3VuZChpbmZlcmVuY2VbLDFdKSkNCn0NCnZlY3RvcjEzODBbdmVjdG9yMTM4MCA9PSA5XSA8LSA1DQp2ZWN0b3IxMzgwW3ZlY3RvcjEzODAgPT0gOF0gPC0gNQ0KdmVjdG9yMTM4MFt2ZWN0b3IxMzgwID09IDddIDwtIDUNCnZlY3RvcjEzODBbdmVjdG9yMTM4MCA9PSA2XSA8LSA1DQpoZWFkKHZlY3RvcjEzODApDQpgYGANCkZpbmFsZW1lbnRlIHNlIGNhbGN1bGEgZWwgZGlhIDEzODAsIHBlcm8gbG9zIHByaW1lcm9zIGRvcyB2YWxvcmVzIGRlY3JlY2VuIGEgMyBldmlkZW5jaWFuZG8gcXVlIGVsIG1vZGVsbyBubyBlcyBhZGVjdWFkbyB5YSBxdWUgbm8gc2UgYWp1c3RhIGEgbGEgcmVhbGlkYWQuDQoNCioqKkFqdXN0ZSBtb2RlbG8gdGVtcG9yYWwgYSBwYXJ0aXIgZGUgcmVncmVzaW9uIGxpbmVhbCBzaW1wbGUqKioNCg0KDQpBaG9yYSBzZSBwcm9jZWRlIGEgZGV0ZXJtaW5hciBsb3MgdmFsb3JlcyBhIHBhcnRpciBkZSByZWdyZXNpb24gbGluZWFsIHNpbXBsZSwgeWEgcXVlIGVsIG1vZGVsIGxvZ2lzdGljbyBubyBzdW1pbmlzdHJvIHByZWRpY2Npb25lcyBhZGVjdWFkYXMuDQoNCg0KKipDYWxjdWxvIGRlIGxvcyBtZXNlcyA0MiwgNDQgeSA0NioqDQoNCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0KI0RhdG9zIGluZmVyaWRvcyBkZSBsYSBmZWNoYSAxMjYwIG1lcyA0Mg0KaT0xDQp2ZWN0b3IxMjYwPWMoKQ0KZm9yKGkgaW4gMTo5MDMpew0Kc2V2MT1zZXZ0WyxpXQ0KZHQ9ZGF0YS5mcmFtZShzZXYxLGRhdGUpDQpzZXZlcml0eS5sbT1sbShzZXYxfmRhdGUsZGF0YT1kdCkNCm9wdGlvbnMoZGlnaXRzPTQpDQpmaXQud2l0aC5zZTwtcHJlZGljdChzZXZlcml0eS5sbSwgc2UuZml0PVRSVUUpIA0KZGF0YS5mcmFtZShkdCwgZml0dGVkLnZhbHVlPXByZWRpY3Qoc2V2ZXJpdHkubG0pLCByZXNpZHVhbD1yZXNpZChzZXZlcml0eS5sbSksIGZpdC53aXRoLnNlKQ0KbmV3IDwtIGRhdGEuZnJhbWUoZGF0ZT1jKDEyNjApKSANCmluZmVyZW5jZT1wcmVkaWN0KHNldmVyaXR5LmxtLCBuZXdkYXRhPW5ldywgaW50ZXJ2YWw9ImNvbmZpZGVuY2UiKQ0KdmVjdG9yMTI2MD1jKHZlY3RvcjEyNjAscm91bmQoaW5mZXJlbmNlWywxXSkpDQp9DQp2ZWN0b3IxMjYwW3ZlY3RvcjEyNjAgPT0gN10gPC0gNQ0KdmVjdG9yMTI2MFt2ZWN0b3IxMjYwID09IDZdIDwtIDUNCmhlYWQodmVjdG9yMTI2MCkNCmBgYA0KYGBge3IsZWNobz1GQUxTRSx3YXJuaW5nID0gRkFMU0V9DQojRGF0b3MgaW5mZXJpZG9zIGRlIGxhIGZlY2hhIDEzMjAgbWVzIDQ0DQppPTENCnZlY3RvcjEzMjA9YygpDQpmb3IoaSBpbiAxOjkwMyl7DQpzZXYxPXNldnRbLGldDQpkdD1kYXRhLmZyYW1lKHNldjEsZGF0ZSkNCnNldmVyaXR5LmxtPWxtKHNldjF+ZGF0ZSxkYXRhPWR0KQ0Kb3B0aW9ucyhkaWdpdHM9NCkNCmZpdC53aXRoLnNlPC1wcmVkaWN0KHNldmVyaXR5LmxtLCBzZS5maXQ9VFJVRSkgDQpkYXRhLmZyYW1lKGR0LCBmaXR0ZWQudmFsdWU9cHJlZGljdChzZXZlcml0eS5sbSksIHJlc2lkdWFsPXJlc2lkKHNldmVyaXR5LmxtKSwgZml0LndpdGguc2UpDQpuZXcgPC0gZGF0YS5mcmFtZShkYXRlPWMoMTMyMCkpIA0KaW5mZXJlbmNlPXByZWRpY3Qoc2V2ZXJpdHkubG0sIG5ld2RhdGE9bmV3LCBpbnRlcnZhbD0iY29uZmlkZW5jZSIpDQp2ZWN0b3IxMzIwPWModmVjdG9yMTMyMCxyb3VuZChpbmZlcmVuY2VbLDFdKSkNCn0NCnZlY3RvcjEzMjBbdmVjdG9yMTMyMCA9PSA3XSA8LSA1DQp2ZWN0b3IxMzIwW3ZlY3RvcjEzMjAgPT0gNl0gPC0gNQ0KaGVhZCh2ZWN0b3IxMzIwKQ0KYGBgDQpgYGB7cixlY2hvPUZBTFNFLHdhcm5pbmcgPSBGQUxTRX0NCiNEYXRvcyBpbmZlcmlkb3MgZGUgbGEgZmVjaGEgMTM4MCBtZXMgNDYNCmk9MQ0KdmVjdG9yMTM4MD1jKCkNCmZvcihpIGluIDE6OTAzKXsNCnNldjE9c2V2dFssaV0NCmR0PWRhdGEuZnJhbWUoc2V2MSxkYXRlKQ0Kc2V2ZXJpdHkubG09bG0oc2V2MX5kYXRlLGRhdGE9ZHQpDQpvcHRpb25zKGRpZ2l0cz00KQ0KZml0LndpdGguc2U8LXByZWRpY3Qoc2V2ZXJpdHkubG0sIHNlLmZpdD1UUlVFKSANCmRhdGEuZnJhbWUoZHQsIGZpdHRlZC52YWx1ZT1wcmVkaWN0KHNldmVyaXR5LmxtKSwgcmVzaWR1YWw9cmVzaWQoc2V2ZXJpdHkubG0pLCBmaXQud2l0aC5zZSkNCm5ldyA8LSBkYXRhLmZyYW1lKGRhdGU9YygxMzgwKSkgDQppbmZlcmVuY2U9cHJlZGljdChzZXZlcml0eS5sbSwgbmV3ZGF0YT1uZXcsIGludGVydmFsPSJjb25maWRlbmNlIikNCnZlY3RvcjEzODA9Yyh2ZWN0b3IxMzgwLHJvdW5kKGluZmVyZW5jZVssMV0pKQ0KfQ0KdmVjdG9yMTM4MFt2ZWN0b3IxMzgwID09IDddIDwtIDUNCnZlY3RvcjEzODBbdmVjdG9yMTM4MCA9PSA2XSA8LSA1DQpoZWFkKHZlY3RvcjEzODApDQpgYGANCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KQSBwYXJ0aXIgZGUgZXN0b3MgdHJlcyB2YWxvcmVzIHF1ZSBjb3JyZXNwb25kZW4gYSBsYXMgcHJlZGljY2lvbmVzIGRlIGxvcyBtZXNlcyA0MiwgNDQgeSA0NiByZXNwZWN0aXZhbWVudGUsIHNlIG9ic2VydmEgcXVlIGVzdGUgbW9kZWxvIGdlbmVybyBkYXRvcyBjb25zaXN0ZW50ZXMgY29uIGxvcyB2YWxvcmVzIGVtcGxlYWRvcyBwYXJhIHN1IHByZWRpY2Npb24sIHBvciB0YW50byBhIHBhcnRpciBkZSBlc3RvcyBkYXRvcyBzZSBwcm9zaWd1ZSBjb24gbG9zIHNpZ3VpZW50ZXMgYW5hbGlzaXMuDQo8ZGl2Lz4NCioqT3JnYW5pemFuZG8gbG9zIHZhbG9yZXMgaW5mZXJpZG9zIGVuIHRhYmxhIGRlIGRhdG9zIG9yaWdpbmFsKioNCg0KYGBge3IsZWNobz1GQUxTRSx3YXJuaW5nID0gRkFMU0V9DQpwcmVkPWRhdGEuZnJhbWUodmVjdG9yMTI2MCx2ZWN0b3IxMzIwLHZlY3RvcjEzODApDQpuYW1lcyhwcmVkKT1jKCJEMTI2MCIsIkQxMzIwIiwiRDEzODAiKQ0KI3ByZWQNCnR3cHJlZD1kYXRhLmZyYW1lKHRhbGxlclsxOjI4XSxwcmVkKSN1bmllbmRvIGEgbGEgYmFzZSBkZSBkYXRvcyBvcmlnaW5hbA0KdHdwcmVkDQpgYGANCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KVW5hIHZlcyBzZSBvYnR1dmllcm9uIGxvcyBkYXRvcyBhIHBhcnRpciBkZSBsYXMgcHJlZGljY2lvbmVzIGRlbCBtb2RlbG8gZGUgcmVncmVzaW9uIGxpbmVhbCBzaW1wbGUsIHNlIGNvbG9jYW4gZW4gbGEgYmFzZSBkZSBkYXRvcyBvcmlnaW5hbCB5IGEgcGFydGlyIGRlIHRvZG9zIGxvcyB2YWxvcmVzIGRlIHNldmVyaWRhZCBzZSBwcm9jZWRlIGNvbiBlbCBjYWxjdWxvIGRlIEFVRFBDIHBhcmEgbG9zIG1lc2VzIDQyLCA0NCB5IDQ2Lg0KPGRpdi8+DQoNCioqQ2FsY3VsYW5kbyBBVURQQyBwYXJhIGxvcyB2YWxvcmVzLCBmZWNoYXMgZXN0aW1hZGFzIGUgaW5jbHV5ZW5kbyBlc3RvcyBkYXRvcyBlbiBsYSBiYXNlIGRlIGRhdG9zIGluaWNpYWwqKg0KDQpgYGB7cixlY2hvPUZBTFNFLHdhcm5pbmcgPSBGQUxTRX0NCmxpYnJhcnkoYWdyaWNvbGFlKQ0KI2F1ZHBjICBEMTIwMA0Kc2V2Mj10d3ByZWRbLDg6MjhdDQpkYXRlPXNlcSgwLDEyMDAsYnk9NjApDQphdWM9YXVkcGMoc2V2LGRhdGUpDQojYXVkcGMgRDEyNjANCnNldjI9dHdwcmVkWyw4OjI5XQ0KZGF0ZTI9c2VxKDAsMTI2MCxieT02MCkNCmF1Y3AxPWF1ZHBjKHNldjIsZGF0ZTIpDQojYXVkcGMgRDEzMjANCnNldjI9dHdwcmVkWyw4OjMwXQ0KZGF0ZTI9c2VxKDAsMTMyMCxieT02MCkNCmF1Y3AyPWF1ZHBjKHNldjIsZGF0ZTIpDQojYXVkcGMgRDEzODANCnNldjI9dHdwcmVkWyw4OjMxXQ0KZGF0ZTI9c2VxKDAsMTM4MCxieT02MCkNCmF1Y3AzPWF1ZHBjKHNldjIsZGF0ZTIpDQoNCmBgYA0KYGBge3IsZWNobz1GQUxTRSx3YXJuaW5nID0gRkFMU0V9DQojVW5pZW5kbyBsb3MgdmVjdG9yZXMgZGUgQVVEUEMgYSBsYSBiYXNlIGRlIGRhdG9zIG9yaWdpbmFsDQphdWNzPWRhdGEuZnJhbWUoYXVjLGF1Y3AxLGF1Y3AyLGF1Y3AzKQ0KbmFtZXMoYXVjcyk9YygiQVVEUEMxMjAwIiwiQVVEUEMxMjYwIiwiQVVEUEMxMzIwIiwiQVVEUEMxMzgwIikNCnRmaW5hbD1kYXRhLmZyYW1lKHR3cHJlZCxhdWNzLHRhbGxlciRpbmNpZGVuY2lhKQ0KdGZpbmFsDQpgYGANCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KTHVlZ28gZGUgZ2VuZXJhciBsb3MgZGF0b3MgZGUgQVVEUEMgcGFyYSBsb3MgbWVzZXMgNDIsIDQ0IHk0NiBzZSBjb2xvY2FuIGVuIGxhIG1hdHJpeiBpbmljaWFsLCBwYXJhIG9idGVuZXIgY29tcGxldGFtZW50ZSBsYSBiYXNlIGRlIGRhdG9zIG5vIHNvbG8gY29uIGxvcyB2YWxvcmVzIGluaWNpYWxlcyBzaW5vIGNvbiBsb3MgdmFsb3JlcyBlc3RpbWFkb3MgcGFybyBsb3MgbWVzZXMgcG9zdGVyaW9yZXMuDQo8ZGl2Lz4NCg0KKipJbmNpZGVuY2lhIGVuIGZ1bmNpb24gZGVsIHRpZW1wbyB5IGNvbiBtb2RlbGFjaW9uKioNCg0KT3RybyBmYWN0b3IgY2xhdmUgYSBldmFsdWFyIGVzIGxhIGluY2lkZW5jaWEsIGVzdGEgbm9zIHBlcm1pdGUgZGV0ZXJtaW5hciBlbCBwcm9ncmVzbyBkZSBsYSBlbmZlcm1pZWRhZCBlbiBlbCBsb3RlIHJlc3BlY3RvIGFsIHRpZW1wbw0KYGBge3IsZWNobz1GQUxTRSx3YXJuaW5nID0gRkFMU0V9DQpkYXRlZj1zZXEoMCwxMzgwLGJ5PTYwKQ0KaT04DQp2aW5jaT1jKCkNCmZvcihpIGluIDg6MzEpew0KdnBydWViYT10ZmluYWxbLGldDQp2cHJ1ZWJhW3ZwcnVlYmEgPT0yXSA8LSAxDQp2cHJ1ZWJhW3ZwcnVlYmEgPT0zXSA8LSAxDQp2cHJ1ZWJhW3ZwcnVlYmEgPT00XSA8LSAxDQp2cHJ1ZWJhW3ZwcnVlYmEgPT01XSA8LSAxDQp2cHJ1ZWJhMj1zdW0odnBydWViYSkvOTAzDQp2aW5jaT1jKHZpbmNpLHJvdW5kKHZwcnVlYmEyLDMpKQ0KdmluY2kNCn0NCiN2aW5jaQ0KcGxvdChkYXRlZix2aW5jaSx4bGFiPSJUaWVtcG8iLHlsYWI9IkluY2lkZW5jaWEiLG1haW49IkluY2lkZW5jaWEgcmVzcGVjdG8gYWwgdGllbXBvIikNCmBgYA0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQpMYSBmaWd1cmEgcmVwcmVzZW50YSBsYSBpbmNpZGVuY2lhIGRlIGxhIGVuZmVybWVkYWQgZW4gZWwgY3VsdGl2byBjb24gbG9zIGRhdG9zIG11ZXN0cmVhZG9zIGhhc3RhIGVsIGTDrWEgMTIwMCB5IGxvIHByb3llY3RhZG8gc2Vnw7puIGVsIG1vZGVsbyBwYXJhIGxvcyBkw61hcyAxMjYwLCAxMzIwIHkgMTM4MC4gRW4gZXN0ZSBjYXNvIHNlIG9ic2VydmEgcXVlIGVsIG7Dum1lcm8gZGUgcGxhbnRhcyBlbmZlcm1hcyBzb2JyZSBlbCB0b3RhbCBkZSBwbGFudGFzIGV2YWx1YWRhcyBlcyBjcmVjaWVudGUsIGVzIGRlY2lyLCBlbCBjb21wb3J0YW1pZW50byBkZSBpbmNpZGVuY2lhIGRlIGxhIGVuZmVybWVkYWQgZW4gcGxhbnRhcyBkZSBhZ3VhY2F0ZSBlbiBzdSBmYXNlIGluaWNpYWwgZXMgbGluZWFsLCBwb3N0ZXJpb3JtZW50ZSBlcyBsb2dhcsOtdG1pY2EgeSBmaW5hbG1lbnRlIGEgcGFydGlyIGRlIGxvcyAxMDAwIGTDrWFzIGludGVudGEgYXBsYW5hcnNlLiBBIHBhcnRpciBkZSBlc3RhIGZpZ3VyYSwgc2UgcGxhbnRlYSBxdWUgZWwgYWp1c3RlIGRlbCBtb2RlbG8gcHJlZGljdGl2byBlcyBsaW5lYWwuDQo8ZGl2Lz4NCg0KKioqbW9kZWxvIGRlIGluY2lkZW5jaWEqKioNCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0KZHRpbmNpPWRhdGEuZnJhbWUodmluY2ksZGF0ZWYpDQppbmNpLmxtPWxtKHZpbmNpfmRhdGVmLGRhdGE9ZHRpbmNpKQ0Kb3B0aW9ucyhkaWdpdHM9NCkNCmZpdC53aXRoLnNlMjwtcHJlZGljdChpbmNpLmxtLCBzZS5maXQ9VFJVRSkgDQojZGF0YS5mcmFtZShkdGluY2ksIGZpdHRlZC52YWx1ZT1wcmVkaWN0KGluY2kubG0pLCByZXNpZHVhbD1yZXNpZChpbmNpLmxtKSwgZml0LndpdGguc2UyKQ0KbmV3MiA8LSBkYXRhLmZyYW1lKGRhdGVmPWMoMTQ0MCkpIyBhY2Egc2UgY29sb2NhIGxhIGZlY2hhIG8gbGFzIGZlY2hhcyBxdWUgc2UgcXVpZXJlbiBpbmZlcmlyIA0KaW5mZXJlbmNlMj1wcmVkaWN0KGluY2kubG0sIG5ld2RhdGE9bmV3MiwgaW50ZXJ2YWw9ImNvbmZpZGVuY2UiKQ0KaW5jaTE0NDA9YygpDQppbmNpMTQ0MD1jKGluY2kxNDQwLHJvdW5kKGluZmVyZW5jZTJbLDFdLDMpKQ0KI2luY2kxNDQwDQpzdW1tYXJ5KGluY2kubG0pDQoNCnBsb3QoaW5jaS5sbSwgd2hpY2g9MSkNCnBsb3QoaW5jaS5sbSx3aGljaD0yKQ0KYGBgDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NClBvc3Rlcmlvcm1lbnRlIGRlc3B1ZXMgZGUgdXRpbGl6ciB1biBtb2RlbG8gZGUgcHJlZGljY2lvbiBudWV2YW1lbnRlIGRlIHJlZ3Jlc2lvbiBsaW5lYWwgc2ltcGxlIHlhIHF1ZSBkaW8gYnVlbm9zIHJlc3VsdGFkb3MgZW4gc2V2cmVpZGFkIHNlIG9ic2VydmEgZW4gbG9zIGRpYWdyYW1hcyB5IGVuIGxvcyBkYXRvcyBwcmVzZW50YWRvcyBlbiBlbCBzdW1hcmlvIGRlbCBtb2RlbG8gcXVlIGVsIFIgY3VhZHJhZG8gYWp1c3RhZG8gZXMgZGUgMC45MyBsbyBxdWUgZXMgdW4gdmFsb3IgYWNlcHRhYmxlIHBhcmEgbGEgcHJlZGljaWNvbiBkZSBmdXR1cm9zIGRhdG9zIGEgcGFydGlyIGRlIGVzdGUgbW9kZWxvLg0KPGRpdi8+DQoNCiMjIEFuYWxpc2lzIGVzcGFjaWFsIGRlIGxvcyBkYXRvcyBpbmZlcmlkb3MgYSBwYXJ0aXIgZGUgbGEgbW9kZWxhY2lvbiB0ZW1wb3JhbA0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCkFob3JhIHF1ZSBzZSB0aWVuZW4gbG9zIGRhdG9zIGRlIHNldmVyaWRhZCB5IGRlIEFVRFBDIHBhcmEgbG9zIG1lc2VzIDQyLCA0NCB5IDQ2IGdyYWNpYXMgYWwgbW9kZWxvIGFudGVyaW9ybWVudGUgZGVzY3JpdG8sIHNlIHByb2NlZGUgY29uIGxhIGVsYWJvcmFjaW9uIGRlIG1hcHMgcXVlIHBlcm1pdGFuIHZlciBlbCBtb3ZpbWllbnRvIGRlIGVzdGEgZW5mZXJtZWRhZCBlbiBlbCBsb3RlIGVuIGxvcyBtZXNlcyBpbmZlcmlkb3MuDQo8ZGl2Lz4NCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0KDQpwMjE9Z2dwbG90KGRhdGEgPSB0ZmluYWwsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQxMjAwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT1EMTIwMCkpK2dndGl0bGUoIkQxMjAwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KI2FjYSB2aWVuZW4gbG9zIGluZmVyaWRvcw0KcDIyPWdncGxvdChkYXRhID0gdGZpbmFsLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1EMTI2MCkpK2dlb21fcG9pbnQoYWVzKHNpemU9RDEyNjApKStnZ3RpdGxlKCJEMTI2MCAtIEluZmVyaWRvIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KcDIzPWdncGxvdChkYXRhID0gdGZpbmFsLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1EMTMyMCkpK2dlb21fcG9pbnQoYWVzKHNpemU9RDEzMjApKStnZ3RpdGxlKCJEMTMyMCAtIEluZmVyaWRvIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KcDI0PWdncGxvdChkYXRhID0gdGZpbmFsLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1EMTM4MCkpK2dlb21fcG9pbnQoYWVzKHNpemU9RDEzODApKStnZ3RpdGxlKCJEMTM4MCAtIEluZmVyaWRvIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KI2dyaWQuYXJyYW5nZShwMjEsIHAyMiwgIG5yb3cgPSAxLG5jb2w9MikNCiNncmlkLmFycmFuZ2UocDIzLCBwMjQsICBucm93ID0gMSxuY29sPTIpDQpwMjENCnAyMg0KcDIzDQpwMjQNCmBgYA0KUGFydGllbmRvIGRlbCBtYXBhIGRlIHNldmVyaWRhZCBwYXJhIGVsIGRpYSAxMjAwIHNlIG9ic2VydmEgY29tbyBlc3RhIGVuZmVybWVkYWQgdmEgYXZhbnphbmRvIHRhbnRvIGVuIGVzcGFjaW8gY29tbyBlc24gc2V2ZXJpZGFkIHBhcmEgbG9zIG1lc2VzIDQyLCA0NCB5IDQ2Lg0KDQpgYGB7cixlY2hvPUZBTFNFLHdhcm5pbmcgPSBGQUxTRX0NCiNkaXZpZGlkb3MgcG9yIGVzY2FsYSBkZSBzZXZlcmlkYWQNCg0KZ2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQxMjAwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT1EMTIwMCkpK2dndGl0bGUoIkQxMjAwIGJhc2UgZGUgZGF0b3Mgb3JpZ2luYWwiKSArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpICsgZmFjZXRfZ3JpZChEMTIwMCB+IC4pDQpnZ3Bsb3QoZGF0YSA9IHRmaW5hbCxhZXMoeD1FYXN0aW5nLHk9Tm9ydGhpbmcsY29sb3I9RDEyNjApKStnZW9tX3BvaW50KGFlcyhzaXplPUQxMjYwKSkrZ2d0aXRsZSgiRDEyNjAgLSBJbmZlcmlkbyIpICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkgKyBmYWNldF9ncmlkKEQxMjYwIH4gLikNCmdncGxvdChkYXRhID0gdGZpbmFsLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1EMTMyMCkpK2dlb21fcG9pbnQoYWVzKHNpemU9RDEzMjApKStnZ3RpdGxlKCJEMTMyMCAtIEluZmVyaWRvIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArIGZhY2V0X2dyaWQoRDEzMjAgfiAuKQ0KZ2dwbG90KGRhdGEgPSB0ZmluYWwsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQxMzgwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT1EMTM4MCkpK2dndGl0bGUoIkQxMzgwIC0gSW5mZXJpZG8iKSArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpICsgZmFjZXRfZ3JpZChEMTM4MCB+IC4pDQojc2Ugb2JzZXJ2YSB1biBhdW1lbnRvIGVuIGxhIHNldmVyaWRhZCBwYXJhIGxvcyBtZXNlcyA0MiwgNDQgeSA0NiBldmlkZW5jaWFuZG9zZSBlbCBjYW1iaW8gZW50cmUgZXNjYWxhIDIsIDMgeSA0Lg0KYGBgDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NClVuYSBtZWpvciBmb3JtYSBkZSB2aXN1YWxpemFyIGxvIGFudGVyaW9yIGVzIGRlc2NvbXBvbmllbmRvIGxvcyBtYXBhcyBwb3IgY2F0ZWdvcmlhcyBkZSBzZXZlcmlkYWQsIGFzaSBzZSBldmlkZW5jaWEgY29tbyBsYSBtYXlvciBjYW50aWRhZCBkZSBwdW50b3MgcXVlIGVzdGFiYW0gIGRlcG9zaXRhZG9zIGVuIGNpZXJ0YSBjYXRlZ29yaWEsIGVuIGVsIHNpZ3VlbnRlIG1hcGEgeWEgYXZhbnphcm9uIGEgbGEgb3RyYSB5IGFzaSBzdWNlc2l2YW1lbnRlIGdlbmVyYW5kbyB1bmEgYWN1bXVsYWNpb24gZG9taW5hbnRlIGVuIGxhIGNhdGVnb3JpYSA1IGRlIG1heGltYSBzZXZlcmlkYWQuDQo8ZGl2Lz4NCg0KRGVzcHVlcyBkZSBhbmFsaXphciBsb3MgZGF0b3MgZGUgc2V2ZXJpZGFkIHNlIHByb2NlZGUgY29uIGVsIGFuYWxpc2lzIGRlIGRhdG9zIGRlIEFVRFBDIHBhcmEgbG9zIG1lc2VzIGluZmVyaWRvcy4NCg0KKipHcmFmaWNhbmRvIEFVRFBDKioNCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0KdGZpbmFsWywzMjozNV0NCnBhcihtZnJvdz1jKDIsMikpDQpwbG90KHRhbGxlciRFYXN0aW5nLHRhbGxlciROb3J0aGluZyxwY2g9MjAsY2V4PTAuMDAwMTUqdGZpbmFsJEFVRFBDMTIwMCx4bGFiPSJFYXN0aW5nIg0KICAgICAseWxhYj0iTm9ydGhpbmciLGNvbD0iZGFya3JlZCIsbWFpbj0iTWFwYSBkZSBBVURQQyBkaWEgMTIwMCIpDQpwbG90KHRhbGxlciRFYXN0aW5nLHRhbGxlciROb3J0aGluZyxwY2g9MjAsY2V4PTAuMDAwMTUqdGZpbmFsJEFVRFBDMTI2MCx4bGFiPSJFYXN0aW5nIg0KICAgICAseWxhYj0iTm9ydGhpbmciLGNvbD0iZGFya3JlZCIsbWFpbj0iTWFwYSBkZSBBVURQQyBkaWEgMTI2MCIpDQpwbG90KHRhbGxlciRFYXN0aW5nLHRhbGxlciROb3J0aGluZyxwY2g9MjAsY2V4PTAuMDAwMTUqdGZpbmFsJEFVRFBDMTMyMCx4bGFiPSJFYXN0aW5nIg0KICAgICAseWxhYj0iTm9ydGhpbmciLGNvbD0iZGFya3JlZCIsbWFpbj0iTWFwYSBkZSBBVURQQyBkaWEgMTMyMCIpDQpwbG90KHRhbGxlciRFYXN0aW5nLHRhbGxlciROb3J0aGluZyxwY2g9MjAsY2V4PTAuMDAwMTUqdGZpbmFsJEFVRFBDMTM4MCx4bGFiPSJFYXN0aW5nIg0KICAgICAseWxhYj0iTm9ydGhpbmciLGNvbD0iZGFya3JlZCIsbWFpbj0iTWFwYSBkZSBBVURQQyBkaWEgMTM4MCIpDQpgYGANCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KRW4gbGEgZmlndXJhIHNlIG9ic2VydmEgY8OzbW8gYSB0cmF2w6lzIGRlbCB0aWVtcG8gc2UgZXNwZXJhIHF1ZSBzZSBkw6kgZWwgYXZhbmNlIGRlIGxhIGVuZmVybWVkYWQsIGxhIGN1YWwgY2FkYSB2ZXogc2Vyw6EgbcOhcyBzZXZlcmEsIGVzIGRlY2lyLCBsb3MgcHVudG9zIGNvbG9yIHJvam8gYWwgc2VyIG3DoXMgZ3JhbmRlcywgaW5kaWNhbiBxdWUgZWwgZWZlY3RvIGRlbCBBV0MgYXRhY2Fyw6EgY2FkYSB2ZXogbcOhcyBwbGFudGFzIHkgZW4gbWF5b3IgaW50ZW5zaWRhZC4gRXN0byBub3MgcHVlZGUgZGFyIHVuYSBpZGVhIGRlIGxhIHZlbG9jaWRhZCBkZSBkaXNwZXJzacOzbiBkZSBsb3MgcGF0w7NnZW5vcywgYXNvY2lhZG8gYSBsYXMgbGFib3JlcyBhZ3JvbsOzbWljYXMgZGVzYXJyb2xsYWRhcyBlbiBlbCBjdWx0aXZvLCBjb24gZWwgZmluIGRlIGdlbmVyYXIgZXN0cmF0ZWdpYXMgcXVlIHBlcm1pdGFuIG1hbmVqYXIgbGEgZW5mZXJtZWRhZCwgcHJpbmNpcGFsbWVudGUgZW4gbG9zIGZvY29zIGRlIGluZmVjY2nDs24gKHpvbmFzIGNvbiBtYXlvciBjYW50aWRhZCB5IHRhbWHDsW8gZGUgcHVudG9zKS4gUG9yIGVqZW1wbG8sIGVzdGUgY29tcGxlam8gc2UgcHVlZGUgZGlzcGVyc2FyIHBvciBhZ3VhIGRlIHJpZWdvLCBoZXJyYW1pZW50YXMgbyBtYXRlcmlhbCBjb250YW1pbmFkbywgbWFsZXphcyBob3NwZWRlcmFzLCBlbnRyZSBvdHJhczsgdGVuaWVuZG8gZW4gY3VlbnRhIGVzdGEgY2FyYWN0ZXLDrXN0aWNhIGRlbCBjb21wbGVqbywgZXMgb3BvcnR1bm8gcmVhbGl6YXIgdW4gbWFuZWpvIGRlIG1hbGV6YXMsIGRlc2NvbnRhbWluYWNpw7NuIGRlIGhlcnJhbWllbnRhcywgZWxpbWluYWNpw7NuIGRlIGRlc2VjaG9zIHkgcGxhbnRhcyBpbmZlY3RhZGFzLCBhc2VndXJhciB1biBidWVuIGRyZW5hamUgeSBmbHVqbyBkZSBhZ3VhIHF1ZSBpbXBpZGFuIGVsIGRlc2Fycm9sbG8gw7NwdGltbyBkZSBsb3MgcGF0w7NnZW5vcyB5IGEgc3UgdmV6IGV2aXRhciBlbCB0cmFzdG9ybm8gZGUgaGlwb3hpYS1hbm94aWEsIGVudHJlIG90cmFzIHByw6FjdGljYXMuIA0KDQpSZWxhY2lvbmFuZG8gbGFzIGZpZ3VyYXMgYW50ZXJpb3JlcyAsIGVzIGltcG9ydGFudGUgdGVuZXIgZW4gY3VlbnRhIGVsIHBlcsOtb2RvIGRlIHRpZW1wbyBjcsOtdGljbyBlbiBlbCBjdWFsIHNlIGRlYmUgdGVuZXIgbcOhcyBjdWlkYWRvIChhcHJveGltYWRhbWVudGUgcHJldmlvIGEgbG9zIDgwMCBkw61hcyksIHB1ZXMgZGVzcHXDqXMgZGUgcGFzYWRvIGVzdGUgdGllbXBvLCBlcyBtw6FzIGRpZsOtY2lsIGNvbnRyb2xhciBsYSBlbmZlcm1lZGFkLg0KPGRpdi8+DQoNCiMjIEFuYWxpc2lzIGRlIGludGVycG9sYWNpb24NCg0KIVsiS3JpZ2luZyBCYXllc2lhbm8gcGFyYSBlbCBkaWEgMTIwMCJdKGsxMjAwLmpwZyl7d2lkdGg9ODAlfQ0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCkVuIGxhIGZpZ3VyYSBzZSBwdWVkZSBldmlkZW5jaWFyIGNsYXJhbWVudGUgY29tbyBzZSBlbmN1ZW50cmFuIGRpc3RyaWJ1aWRvcyBsb3MgZm9jb3MgZGUgbGEgZW5mZXJtZWRhZCBjb24gYmFzZSBlbiBsb3MgZGF0b3MsIGVuIGxhIHpvbmEgZGVsIG1hcmdlbiBvY2NpZGVudGFsIGRlbCBsb3RlIHNlIGV2aWRlbmNpYSB1biBhbHRvIHByb2dyZXNvIGRlIGxhIGVuZmVybWVkYWQsIGFzw60gY29tbyBlbiBsYSB6b25hIG5vcm9yaWVudGFsIHkgdW4gcG9jbyBoYWNpYSBlbCBjZW50cm8gZGVsIGxvdGUuIEFkaWNpb25hbG1lbnRlLCBhbCBjb21wYXJhcmxhIGNvbiBsYXMgZmlndXJhcyBhbmVyaW9yZXMgZGVsIGFuYWxpc2lzIGVzcGFjaWFsIHBhcmEgZGF0b3MgaW5mZXJpZG9zICAoYSBsb3MgNjAgZMOtYXMgdnMgYSBsb3MgMTIwMCBkw61hcyBkZSBtdWVzdHJlbywgcmVzcGVjdGl2YW1lbnRlKSBzZSBjb21wcnVlYmEgcXVlIGxvcyBmb2NvcyBpbmljaWFsZXMgKHB1bnRvcyBhenVsIGNsYXJvIGRlIG1heW9yIHRhbWHDsW8pIHBvc3Rlcmlvcm1lbnRlIHJlcHJlc2VudGFyw6FuIGxhcyB6b25hcyBtYXMgYWZlY3RhZGFzIHF1ZSByZXF1aWVyZW4gbWF5b3IgYXRlbmNpw7NuIHkgcXVlIHNvbiBwcmluY2lwYWwgZnVlbnRlIGRlIGlub2N1bG8gKHJlcHJlc2VudGFkYXMgZGUgY29sb3Igcm9qbyB5IG5hcmFuamEgZW4gZXN0YSBmaWd1cmEpLiBFc3RhIGRpZmVyZW5jaWFjacOzbiBlbiBlbCBlc3BhY2lvIHBlcm1pdGUgcmVhbGl6YXIgdW4gbWFuZWpvIGRpZmVyZW5jaWFsLCBpZGVudGlmaWNhbmRvIGxhcyDDoXJlYXMgcXVlIHB1ZWRhbiB0ZW5lciBjb25kaWNpb25lcyBkZXNmYXZvcmFibGVzLCBjb21vIHVuIG1hbCBtYW5lam8gYWdyb27Ds21pY28gKHByZXNlbmNpYSBkZSBtYWxlemFzLCBzdWVsb3MgYW5lZ2Fkb3MsIHByZXNlbmNpYSBkZSByZXNpZHVvcyBjb250YW1pbmFkb3MsIGV0Y+KApikgbyBjYXJhY3RlcsOtc3RpY2FzIGVzcGVjw61maWNhcyBkZWwgdGVycmVubyAoY29tbyBlbCBuaXZlbCBmcmXDoXRpY28sIGFsdHVyYSwgcGFyY2hlcyBlbiBjb25kaWNpw7NuIGRlIHNhbGluaWRhZCwgZXRjLi4uKSwgY29uIGVsIGZpbiBkZSBjb250cm9sYXIgbG9zIGZvY29zIGRlbCBwcm9ibGVtYSB5IG1hbnRlbmllbmRvIHNhbmFzIG90cmFzIMOhcmVhcyBkZWwgbG90ZS4NCjxkaXYvPg0KDQohWyJLcmlnaW5nIEJheWVzaWFubyBwYXJhIGVsIGRpYSAxMjYwIl0oazEyNjAuanBnKXt3aWR0aD04MCV9DQohWyJLcmlnaW5nIEJheWVzaWFubyBwYXJhIGVsIGRpYSAxMzIwIl0oazEzMjAuanBnKXt3aWR0aD04MCV9DQohWyJLcmlnaW5nIEJheWVzaWFubyBwYXJhIGVsIGRpYSAxMzgwIl0oazEzODAuanBnKXt3aWR0aD04MCV9DQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCkNvbiBiYXNlIGVuIGVsIG1vZGVsbyByZWFsaXphZG8gc2UgdGllbmVuIGxhcyBzaW11bGFjaW9uZXMgZGUgbGFzIHVsdGltYXMgdHJlcyBmaWd1cmFzICBlbiBkb25kZSBzZSBwcmVzZW50YSBsYSBwcmVkaWNjacOzbiBwYXJhIGxvcyBtZXNlcyA0MiAoRDEyNjApLCA0NCAoRDEzMjApIHkgNDYgKEQxMzgwKS4gTG9zIGN1YWxlcyBwcmVzZW50YW4gdW5hIGRpc3RyaWJ1Y2nDs24gZXNwYWNpYWwgbXV5IHNpbWlsYXIsIGxvIHF1ZSBjb21wcnVlYmEgbGEgdmlhYmlsaWRhZCBkZWwgbW9kZWxvIHV0aWxpemFkbywgcHVlcyBlcyBjb25ncnVlbnRlIGFsIGNvbXBhcmFybG8gZW50cmUgbG9zIG1pc21vcyBtZXNlcyBwdWVzIHNpZ3VlIHVuYSBkaXNwZXJzacOzbiBsw7NnaWNhLg0KDQpMb3MgcmVzdWx0YWRvcyBvYnRlbmlkb3MgcGVybWl0ZW4gaW5mZXJpciBxdWUgZWwgbW9kZWxvIGVzIMO6dGlsIHkgZnVuY2lvbmFsIHBhcmEgY29udHJpYnVpciBhbCBtYW5lam8gZGUgbGEgZW5mZXJtZWRhZCwgeWEgcXVlIG11ZXN0cmEgbGFzIMOhcmVhcyBtYXlvcm1lbnRlIGFmZWN0YWRhcyBxdWUgcmVxdWllcmVuIGF0ZW5jacOzbiBwcmlvcml0YXJpYSAoeSBhc8OtIGV2aXRhciBsYSBwcm9wYWdhY2nDs24gbyBkaXNwZXJzacOzbiBkZWwgY29tcGxlam8pIHkgYSBzdSB2ZXosIG5vIHNvbG8gbXVlc3RyYSBlbCBkaWFnbsOzc3RpY28gYWN0dWFsIGRlbCBsb3RlLCBzaW5vIHRhbWJpw6luIGVzIHBvc2libGUgcHJlZGVjaXIgZWwgY29tcG9ydGFtaWVudG8gYSBmdXR1cm8gZGUgbGEgZW5mZXJtZWRhZCBwZXJtaXRpZW5kbyBhY3R1YXIgYSB0aWVtcG8sIGNvbiBsYSB2ZW50YWphIGRlIHZpc3VhbGl6YXIgZGUgZm9ybWEgbcOhcyBhbWlnYWJsZSBsb3MgcmVzdWx0YWRvcy4gTG8gYW50ZXJpb3Igc2UgY3VtcGxlIG1pZW50cmFzIGVsIG1hbmVqbyBzZSByZWFsaWNlIGVuIGVsIG1vbWVudG8gYWRlY3VhZG8sIGRhZG8gcXVlIGxhcyBwbGFudGFzIHNldmVyYW1lbnRlIGVuZmVybWFzIGRlYmVuIHNlciBlbGltaW5hZGFzLCBkaXNtaW51eWVuZG8gbGFzIGdhbmFuY2lhcyBwYXJhIGVsIGFncmljdWx0b3IuIFNpbiBlbWJhcmdvLCBlcyBpbXBvcnRhbnRlIGFzb2NpYXJsbyBjb24gb3RyYXMgaGVycmFtaWVudGFzLCBwdWVzIHBvciBzw60gc29sYSBubyBhc2VndXJhbiBlbCDDqXhpdG8gZGVsIG1hbmVqbyBkZSBsYSBlbmZlcm1lZGFkLiBTZSBwdWVkZSBhw7FhZGlyIHVuIG1vbml0b3JlbyBjb25zdGFudGUsIHByw6FjdGljYXMgcHJldmVudGl2YXMgKGNvbW8gcG9yIGVqZW1wbG8gdW4gZnVuZ2ljaWRhIHByb3RlY3RhbnRlIG8gdXNhciB1biBzaXN0ZW1hIGRlIHJpZWdvIGFkZWN1YWRvKSwgbWFuZWpvIGludGVncmFkbyBkZSBwbGFnYXMsIGVuZmVybWVkYWRlcyB5IG1hbGV6YXMsIGFsaW1lbnRhY2nDs24gZGUgbGEgYmFzZSBkZSBkYXRvcyBwYXJhIG1lam9yYXIgbGEgcHJlZGljY2nDs24gZGVsIG1vZGVsbywgZW50cmUgb3RyYXM7IGRlIGVzdGEgbWFuZXJhIHNlIGF1bWVudGFuIGxhcyBwcm9iYWJpbGlkYWRlcyBkZSB0ZW5lciB1biBjdWx0aXZvIHNhbm8sIGNvbiBncmFuIHBvdGVuY2lhbCBhZ3JvbsOzbWljbyBxdWUgc3VwbGEgbGFzIG5lY2VzaWRhZGVzIGRlbCBtZXJjYWRvLCBhdW1lbnRhbmRvIGxhcyBnYW5hbmNpYXMgZGVsIGFncmljdWx0b3IuDQo8ZGl2Lz4NCg0KIyBSZWZlcmVuY2lhcw0KDQoqIEdpbCwgSi4gRy4gMjAxOC4gQXZvY2FkbyB3aWx0IGNvbXBsZXggZGlzZWFzZSwgaW1wbGljYXRpb25zIGFuZCBtYW5hZ2VtZW50IGluIENvbG9tYmlhLiBSZXZpc3RhIEZhY3VsdGFkIE5hY2lvbmFsIGRlIEFncm9ub23DrWEgTWVkZWxsw61uLiA3MSgyKSBET0k6IDEwLjE1NDQ2L3JmbmEudjcxbjIuNjY0NjUNCg0KKiBHaWwsIEouIEcuIHkgTW9yYWxlcywgSi4gMjAyMC4gRGV2ZWxvcG1lbnQgYW5kIHZhbGlkYXRpb24gb2Ygc2V2ZXJpdHkgc2NhbGVzIG9mIGF2b2NhZG8gd2lsdCBjb21wbGV4IGNhdXNlZCBieSBQaHl0b3BodGhvcmEgY2lubmFtb21pLCBWZXJ0aWNpbGxpdW0gZGFobGlhZSBhbmQgaHlwb3hpYS1hbm94aWEgZGlzb3JkZXIgYW5kIHRoZWlyIHBoeXNpb2xvZ2ljYWwgcmVzcG9uc2VzIGluIGF2b2NhZG8gcGxhbnRzLiBBZ3Jvbm9tw61hIENvbG9tYmlhbmEuIERPSTogMTAuMTU0NDYvYWdyb24uY29sb21iLnYzOG4xLjc4NTI3DQoNCiogLCBKLiBHLC4geSBNb3JhbGVzLCBKLiAyMDIwLiBJbnRlZ3JhdGVkIHByb3Bvc2FsIGZvciBtYW5hZ2VtZW50IG9mIHJvb3Qgcm90IGNhdXNlZCBieSBQaHl0b3BodGhvcmEgY2lubmFtb21pIGluIGF2b2NhZG8gY3YuIEhhc3MgY3JvcHMgRE9JOiAxMC4xMDE2IC8gai5jcm9wcm8uMjAyMC4xMDUyNzENCg0KKiBHaWwsIEouIEcgeSBQZXRlcnNvbiwgQS4gMjAxOS4gUG90ZW50aWFsIGRpc3RyaWJ1dGlvbnMgb2YgdGhlIG1vc3QgaW1wb3J0YW50IGRpc2Vhc2VzIGFmZmVjdGluZyBIYXNzIGF2b2NhZG8gaW4gQW50aW9xdWlhIENvbG9tYmlhLiBKb3VybmFsIG9mIFBsYW50IFByb3RlY3Rpb24gUmVzZWFyY2guIFZvbC4gNTksIE5vLiAyOiAyMTTigJMyMjgsIDIwMTkgRE9JOiAxMC4yNDQyNS9qcHByLjIwMTkuMTI5Mjg4DQoNCiMgQU5FWE9TDQoNCiMjIyBNYXBhcyBkZSBzZXZlcmlkYWQgZGUgbG9zIGRpYXMgMCBhIDEyMDAgKGFwcm94aW1hY2lvbiBpbmljaWFsLikNCmBgYHtyLGVjaG89RkFMU0Usd2FybmluZyA9IEZBTFNFfQ0KaT04DQpwYXIobWZyb3c9YygyLDMpKQ0KZm9yIChpIGluIDg6MjgpDQp7DQp2ZWN0b3IxPXRhbGxlclssaV0NCnZlY3RvcjE9YXMubnVtZXJpYyh1bmxpc3QodmVjdG9yMSkpDQpwbG90KHRhbGxlciRFYXN0aW5nLHRhbGxlciROb3J0aGluZyxwY2g9MjAsY2V4PTAuNSp2ZWN0b3IxLGNvbD12ZWN0b3IxLG1haW49aSx4bGFiPSJFc3RlLU9lc3RlIix5bGFiPSJOb3J0ZS1zdXIiKQ0KaSsxDQp9DQojdmlzdWFsaXphY2lvbiBkZWxhIGVzY2FsYSBkZSBzZXZlcmlkYWQgcG9yIHRhbWHDsW9zIHkgY29sb3JlcyBkZSAxLTUNCmBgYA0KIyMjIE1pc21vcyBtYXBhcyBkZSBzZXZlcmlkYWQgZGUgbG9zIGRpYXMgMCBhIDEyMDAgcGVybyBlbXBsZWFuZG8gZ2dwbG90Mg0KYGBge3IsZWNobz1GQUxTRSx3YXJuaW5nID0gRkFMU0V9DQptMT1nZ3Bsb3QoZGF0YSA9IHRhbGxlcixhZXMoeD1FYXN0aW5nLHk9Tm9ydGhpbmcsY29sb3I9RDApKStnZW9tX3BvaW50KGFlcyhzaXplPSBEMCkpK2dndGl0bGUoIkQwIikgICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCm0yPWdncGxvdChkYXRhID0gdGFsbGVyLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1ENjApKStnZW9tX3BvaW50KGFlcyhzaXplPUQ2MCkpK2dndGl0bGUoIkQ2MCIpICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCm0zPWdncGxvdChkYXRhID0gdGFsbGVyLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1EMTIwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT0gRDEyMCkpK2dndGl0bGUoIkQxMjAiKSArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQptND1nZ3Bsb3QoZGF0YSA9IHRhbGxlcixhZXMoeD1FYXN0aW5nLHk9Tm9ydGhpbmcsY29sb3I9RDE4MCkpK2dlb21fcG9pbnQoYWVzKHNpemU9IEQxODApKStnZ3RpdGxlKCJEMTgwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KbTU9Z2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQyNDApKStnZW9tX3BvaW50KGFlcyhzaXplPSBEMjQwKSkrZ2d0aXRsZSgiRDI0MCIpICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCm02PWdncGxvdChkYXRhID0gdGFsbGVyLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1EMzAwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT0gRDMwMCkpK2dndGl0bGUoIkQzMDAiKSArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQptNz1nZ3Bsb3QoZGF0YSA9IHRhbGxlcixhZXMoeD1FYXN0aW5nLHk9Tm9ydGhpbmcsY29sb3I9RDM2MCkpK2dlb21fcG9pbnQoYWVzKHNpemU9IEQzNjApKStnZ3RpdGxlKCJEMzYwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KbTg9Z2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQ0MjApKStnZW9tX3BvaW50KGFlcyhzaXplPSBENDIwKSkrZ2d0aXRsZSgiRDQyMCIpICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCm05PWdncGxvdChkYXRhID0gdGFsbGVyLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1ENDgwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT0gRDQ4MCkpK2dndGl0bGUoIkQ0ODAiKSArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQptMTA9Z2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQ1NDApKStnZW9tX3BvaW50KGFlcyhzaXplPSBENTQwKSkrZ2d0aXRsZSgiRDU0MCIpICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCm0xMT1nZ3Bsb3QoZGF0YSA9IHRhbGxlcixhZXMoeD1FYXN0aW5nLHk9Tm9ydGhpbmcsY29sb3I9RDYwMCkpK2dlb21fcG9pbnQoYWVzKHNpemU9IEQ2MDApKStnZ3RpdGxlKCJENjAwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KbTEyPWdncGxvdChkYXRhID0gdGFsbGVyLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1ENjYwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT0gRDY2MCkpK2dndGl0bGUoIkQ2NjAiKSArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQptMTM9Z2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQ3MjApKStnZW9tX3BvaW50KGFlcyhzaXplPSBENzIwKSkrZ2d0aXRsZSgiRDcyMCIpICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCm0xND1nZ3Bsb3QoZGF0YSA9IHRhbGxlcixhZXMoeD1FYXN0aW5nLHk9Tm9ydGhpbmcsY29sb3I9RDc4MCkpK2dlb21fcG9pbnQoYWVzKHNpemU9IEQ3ODApKStnZ3RpdGxlKCJENzgwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KbTE1PWdncGxvdChkYXRhID0gdGFsbGVyLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1EODQwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT0gRDg0MCkpK2dndGl0bGUoIkQ4NDAiKSArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQptMTY9Z2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQ5MDApKStnZW9tX3BvaW50KGFlcyhzaXplPSBEOTAwKSkrZ2d0aXRsZSgiRDkwMCIpICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCm0xNz1nZ3Bsb3QoZGF0YSA9IHRhbGxlcixhZXMoeD1FYXN0aW5nLHk9Tm9ydGhpbmcsY29sb3I9RDk2MCkpK2dlb21fcG9pbnQoYWVzKHNpemU9IEQ5NjApKStnZ3RpdGxlKCJEOTYwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KbTE4PWdncGxvdChkYXRhID0gdGFsbGVyLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1EMTAyMCkpK2dlb21fcG9pbnQoYWVzKHNpemU9RDEwMjApKStnZ3RpdGxlKCJEMTAyMCIpICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCm0xOT1nZ3Bsb3QoZGF0YSA9IHRhbGxlcixhZXMoeD1FYXN0aW5nLHk9Tm9ydGhpbmcsY29sb3I9RDEwODApKStnZW9tX3BvaW50KGFlcyhzaXplPUQxMDgwKSkrZ2d0aXRsZSgiRDEwODAiKSArdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpDQptMjA9Z2dwbG90KGRhdGEgPSB0YWxsZXIsYWVzKHg9RWFzdGluZyx5PU5vcnRoaW5nLGNvbG9yPUQxMTQwKSkrZ2VvbV9wb2ludChhZXMoc2l6ZT1EMTE0MCkpK2dndGl0bGUoIkQxMTQwIikgK3RoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KbTIxPWdncGxvdChkYXRhID0gdGFsbGVyLGFlcyh4PUVhc3RpbmcseT1Ob3J0aGluZyxjb2xvcj1EMTIwMCkpK2dlb21fcG9pbnQoYWVzKHNpemU9RDEyMDApKStnZ3RpdGxlKCJEMTIwMCIpICt0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkNCm0xO20yO20zO200O201O202O203O204O205O20xMDttMTE7bTEyO20xMzttMTQ7bTE1O20xNjttMTc7bTE4O20xOTttMjA7bTIxDQpgYGANCg==