Hepetofauna peruana

“El Perú es considerado como uno de los países con mayor biodiversidad en el mundo (MINAM, 2012) por su amplia gama de ecosistemas y su heterogeneidad espacial, aloja una de las diversidades de anfibios y reptiles más importantes del planeta, siendo considerado como uno de los 10 países megadiversos del mundo (Chaparro y Gutiérrez, 2010), registra 622 anfibios y 469 especies de reptiles (OSINFOR, 2020)


Afibios

“son de talla pequeña (Luna et al., 2010), su piel es lisa y algunos de piel rugosa (O’shea y Halliday, 2002), viven parte de su vida en el agua y otra en la tierra (Young et al., 2004), son organismos ectotérmicos, por lo que no regulan su temperatura corporal, la cual varía con la del ambiente (Monzó, 2002)

Reptiles

“Se caracterizan por tener piel seca, dura y recubierta de escamas (La Marca y Soriano, 2004), razón por la cual tienen una apariencia rugosa y áspera (Ávila, 2017). Las escamas se derivan de la capa exterior de la piel o epidermis y están formadas principalmente por queratina (Zug, 1993)


ÍNDICES DE DIVERSIDAD

“Se utilizan ampliamente en estudios ecológicos, de paisaje, de diversidad genética, de riesgo ambiental y de cambios en patrones de uso de las tierras. En estudios de biodiversidad, a partir del muestreo de comunidades, número de unidades de observación puede ser pequeño para realizar inferencia paramétrica sobre la diversidad existente”

(Pla, 2006)

Riqueza

“puede calcular la riqueza observada en la muestra (r), que es el número total de especies presentes en esa muestra. Esta estimación es siempre un valor no mayor a la verdadera riqueza de la comunidad.”

Blazarini, 2008

Riqueza Chao: Chao (1987) derivó un estimador para el número total de especies presentes en una comunidad como:

\[ S = r + \frac{f_1^2}{2f_2} \]

Índice de Shannon

“se basa en suponer que la heterogeneidad depende del número de especies presentes y de su abundancia relativa. Es una medida del grado de incertidumbre asociada a la selección aleatoria de un individuo en la comunidad”

Balzarini, 2008

Se calcula como:

\[ H = -\sum_{i=1}^x p_i ln p_i \]

Índice de Simpson

“Manifiesta la probabilidad de que dos individuos tomados al azar de una muestra sean de la misma especie”

Moreno, 2001

\[ D = \sum_{ }p_i^2 \]

Índice de McIntosh

“es un índice de dominancia que se basa en considerar que la comunidad es un punto en un hiperespacio definido por las especies, y que puede cuantificarse como la distancia euclidiana desde ese punto al origen, si hay tantas especies como individuos la diversidad es máxima, la diferencia entre este máximo (to) y la comunidad en estudio es una medida de la diversidad absoluta”

Balzarini, 2008

El estimador del índice se calcula como:

\[ U = \frac{to - \sqrt{\sum_{i=1}^r X_i^2}}{to - \sqrt{to}} \]

Índice de Bulla

“En un gráfico de la frecuencia relativa de aparición de las especies (ordenadas) versus el número de especies (abscisas) una línea horizontal en 1/r representaría una comunidad con diversidad máxima. Si se superpone a ésta una línea que representa la frecuencia relativa en la comunidad y se calcula el grado de solapamiento entre estas dos distribuciones”

Balzarini, 2008

El índice se calcula como:

\[ O = [\frac{\sum_{l=1}^r min(p_i,\frac{1}{r})}{r-1}] \]

Índice de Berger-Parker

“Donde Nmax es el número de individuos en la especie más abundante. Un incremento en el valor de este índice se interpreta como un aumento en la equidad y una disminución de la dominancia”

Moreno, 2001

\[ d = \frac{N_{max}}{N} \]

Índice de Menhinick

“Se basa en la relación entre el número de especies y el número total de individuos observados”

Moreni, 2001

\[ D_m = \frac{S}{\sqrt{N}} \]

Índice de Margalef

“Transforma el número de especies por muestra a una proporción a la cual las especies son añadidas por expansión de la muestra”

Moreno, 2001

\[ D_{mg} = \frac{S-1}{ln N} \]


GRÁFICOS

Lenguaje de programación: R

Video de intalación


se activan las siguientes librerias:

library(ggplot2)
library(tidyverse)
library(extrafont)
library(ggthemes)

Gráfico de barras

Leyenda = c("Anfibios", "Reptiles")
num = c(622,469)
Datos <- data.frame(Leyenda,num)
head(Datos)

ggplot(Datos, aes(x=reorder(Leyenda, -num), y=num, fill=Leyenda)) + 
geom_bar(stat = "identity") + 
geom_text(aes(label=num), vjust=-0.25) +
labs(x="", y= "Número")+
theme_base()

Adjuntamos la imagen del grafico obtenida con el codigo anterior:

EJEMPLO

Suponiendo que tenemos la siguiente tabla de especies:

Especies Quebradas Bosque Clase Total
Rhinella Marina 3 5 Amphibia 8
Iguana iguana 4 3 Reptilia 7
Micrurus tschudii 1 1 Reptilia 2
Hyloxalus elechohystus 14 2 Amphibia 16
Rhinella spinulosa 9 12 Amphibia 21
Dicrodon heterolepis 3 1 Reptilia 4
Rhinella poeppigii 5 1 Amphibia 6
Medopheos edracantus 6 9 Reptilia 15
Microlophus occipitalis 2 10 Reptilia 12
Epipedobates anthonyi 18 2 Amphibia 20

Lista de anfibios

Lista de reptiles

Evaluación de índices de diversidad

Índice Menhinick
dm = 10/sqrt(111) 
dm

Índice de riqueza Menhinick para esta comunidad de anfibios y reptiles es de 0.949158

* Índice de Berger – Parker*
D_Bp = 21/11
D_Bp

Índice de Índice de Berger – Parker para esta comunidad de anfibios y reptiles es de 1.909091

* Índice de diversidad de Margalef*

D_mg = (10 - 1) / log(111)
D_mg

Índice de Índice de Margalef para esta comunidad de anfibios y reptiles es de 1.911019


Resultados de los indices realizados en Past

LS0tDQp0aXRsZTogJyoqw41uZGljZXMgZGUgQmlvZGl2ZXJzaWRhZCoqJw0Kc3VidGl0bGU6ICdIZXJwZXRvbG9nw61hJw0KYXV0aG9yOiAiSnVhbiBDYXJsb3MgU290byBRdWlzcGUiDQpkYXRlOiAnMjAyMi0wNC0zMCcNCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KLS0tDQoNCioqKg0KDQojIyBIZXBldG9mYXVuYSBwZXJ1YW5hDQoNCj4gIkVsIFBlcsO6IGVzIGNvbnNpZGVyYWRvIGNvbW8gdW5vIGRlIGxvcyBwYcOtc2VzIGNvbiBtYXlvciBiaW9kaXZlcnNpZGFkIGVuIGVsIG11bmRvICoqKE1JTkFNLCAyMDEyKSoqIHBvciBzdSBhbXBsaWEgZ2FtYSBkZSBlY29zaXN0ZW1hcyB5IHN1IGhldGVyb2dlbmVpZGFkIGVzcGFjaWFsLCBhbG9qYSB1bmEgZGUgbGFzIGRpdmVyc2lkYWRlcyBkZSBhbmZpYmlvcyB5IHJlcHRpbGVzIG3DoXMgaW1wb3J0YW50ZXMgZGVsIHBsYW5ldGEsIHNpZW5kbyBjb25zaWRlcmFkbyBjb21vIHVubyBkZSBsb3MgMTAgcGHDrXNlcyBtZWdhZGl2ZXJzb3MgZGVsIG11bmRvICoqKENoYXBhcnJvIHkgR3V0acOpcnJleiwgMjAxMCkqKiwgcmVnaXN0cmEgNjIyIGFuZmliaW9zIHkgNDY5IGVzcGVjaWVzIGRlIHJlcHRpbGVzICoqKE9TSU5GT1IsIDIwMjApKioiDQo+DQoNCioqKg0KDQojIyMgKipBZmliaW9zKioNCg0KPiAic29uIGRlIHRhbGxhIHBlcXVlw7FhICoqKEx1bmEgZXQgYWwuLCAyMDEwKSoqLCBzdSBwaWVsIGVzIGxpc2EgeSBhbGd1bm9zIGRlIHBpZWwgcnVnb3NhICoqKE/igJlzaGVhIHkgSGFsbGlkYXksIDIwMDIpKiosIHZpdmVuIHBhcnRlIGRlIHN1IHZpZGEgZW4gZWwgYWd1YSB5IG90cmEgZW4gbGEgdGllcnJhICoqKFlvdW5nIGV0IGFsLiwgMjAwNCkqKiwgc29uIG9yZ2FuaXNtb3MgZWN0b3TDqXJtaWNvcywgcG9yIGxvIHF1ZSBubyByZWd1bGFuIHN1IHRlbXBlcmF0dXJhIGNvcnBvcmFsLCBsYSBjdWFsIHZhcsOtYSBjb24gbGEgZGVsIGFtYmllbnRlICoqKE1vbnrDsywgMjAwMikqKiINCj4NCg0KIyMjICoqUmVwdGlsZXMqKg0KDQo+ICJTZSBjYXJhY3Rlcml6YW4gcG9yIHRlbmVyIHBpZWwgc2VjYSwgZHVyYSB5IHJlY3ViaWVydGEgZGUgZXNjYW1hcyAqKihMYSBNYXJjYSB5IFNvcmlhbm8sIDIwMDQpKiosIHJhesOzbiBwb3IgbGEgY3VhbCB0aWVuZW4gdW5hIGFwYXJpZW5jaWEgcnVnb3NhIHkgw6FzcGVyYSAqKijDgXZpbGEsIDIwMTcpKiouIExhcyBlc2NhbWFzIHNlIGRlcml2YW4gZGUgbGEgY2FwYSBleHRlcmlvciBkZSBsYSBwaWVsIG8gZXBpZGVybWlzIHkgZXN0w6FuIGZvcm1hZGFzIHByaW5jaXBhbG1lbnRlIHBvciBxdWVyYXRpbmEgKiooWnVnLCAxOTkzKSoqIg0KPg0KDQoqKioNCg0KIyMjICoqKsONTkRJQ0VTIERFIERJVkVSU0lEQUQqKioNCg0KPiAiU2UgdXRpbGl6YW4gYW1wbGlhbWVudGUgZW4gZXN0dWRpb3MgZWNvbMOzZ2ljb3MsIGRlIHBhaXNhamUsIGRlIGRpdmVyc2lkYWQgZ2Vuw6l0aWNhLCBkZSByaWVzZ28gYW1iaWVudGFsIHkgZGUgY2FtYmlvcyBlbiBwYXRyb25lcyBkZSB1c28gZGUgbGFzIHRpZXJyYXMuIEVuIGVzdHVkaW9zIGRlIGJpb2RpdmVyc2lkYWQsIGEgcGFydGlyIGRlbCBtdWVzdHJlbyBkZSBjb211bmlkYWRlcywgbsO6bWVybyBkZSB1bmlkYWRlcyBkZSBvYnNlcnZhY2nDs24gcHVlZGUgc2VyIHBlcXVlw7FvIHBhcmEgcmVhbGl6YXIgaW5mZXJlbmNpYSBwYXJhbcOpdHJpY2Egc29icmUgbGEgZGl2ZXJzaWRhZCBleGlzdGVudGUiDQo+DQo+ICoqKFBsYSwgMjAwNikqKg0KDQojIyMjICpSaXF1ZXphKg0KDQo+ICJwdWVkZSBjYWxjdWxhciBsYSByaXF1ZXphIG9ic2VydmFkYSBlbiBsYSBtdWVzdHJhIChgcmApLCBxdWUgZXMgZWwgbsO6bWVybyB0b3RhbCBkZSBlc3BlY2llcyBwcmVzZW50ZXMgZW4gZXNhIG11ZXN0cmEuIEVzdGEgZXN0aW1hY2nDs24gZXMgc2llbXByZSB1biB2YWxvciBubyBtYXlvciBhIGxhIHZlcmRhZGVyYSByaXF1ZXphIGRlIGxhIGNvbXVuaWRhZC4iDQo+DQo+ICoqQmxhemFyaW5pLCAyMDA4KioNCg0KUmlxdWV6YSBDaGFvOiBDaGFvICgxOTg3KSBkZXJpdsOzIHVuIGVzdGltYWRvciBwYXJhIGVsIG7Dum1lcm8gdG90YWwgZGUgZXNwZWNpZXMgcHJlc2VudGVzIGVuIHVuYSBjb211bmlkYWQgY29tbzogDQoNCiQkDQpTID0gciArIFxmcmFje2ZfMV4yfXsyZl8yfQ0KJCQNCg0KIyMjIyAqw41uZGljZSBkZSBTaGFubm9uKg0KDQo+ICJzZSBiYXNhIGVuIHN1cG9uZXIgcXVlIGxhIGhldGVyb2dlbmVpZGFkIGRlcGVuZGUgZGVsIG7Dum1lcm8gZGUgZXNwZWNpZXMgcHJlc2VudGVzIHkgZGUgc3UgYWJ1bmRhbmNpYSByZWxhdGl2YS4gRXMgdW5hIG1lZGlkYSBkZWwgZ3JhZG8gZGUgaW5jZXJ0aWR1bWJyZSBhc29jaWFkYSBhIGxhIHNlbGVjY2nDs24gYWxlYXRvcmlhIGRlIHVuIGluZGl2aWR1byBlbiBsYSBjb211bmlkYWQiDQo+DQo+ICoqQmFsemFyaW5pLCAyMDA4KioNCg0KIFNlIGNhbGN1bGEgY29tbzogDQogDQokJA0KSCA9IC1cc3VtX3tpPTF9XnggcF9pIGxuIHBfaQ0KJCQNCg0KIyMjIyAqw41uZGljZSBkZSBTaW1wc29uKg0KDQo+ICJNYW5pZmllc3RhIGxhIHByb2JhYmlsaWRhZCBkZSBxdWUgZG9zIGluZGl2aWR1b3MgdG9tYWRvcyBhbCBhemFyIGRlIHVuYSBtdWVzdHJhIHNlYW4gZGUgbGEgbWlzbWEgZXNwZWNpZSINCj4NCj4gKipNb3Jlbm8sIDIwMDEqKg0KDQokJA0KRCA9IFxzdW1feyB9cF9pXjINCiQkDQoNCiMjIyMgKsONbmRpY2UgZGUgTWNJbnRvc2gqDQoNCj4gImVzIHVuIMOtbmRpY2UgZGUgZG9taW5hbmNpYSBxdWUgc2UgYmFzYSBlbiBjb25zaWRlcmFyIHF1ZSBsYSBjb211bmlkYWQgZXMgdW4gcHVudG8gZW4gdW4gaGlwZXJlc3BhY2lvIGRlZmluaWRvIHBvciBsYXMgZXNwZWNpZXMsIHkgcXVlIHB1ZWRlIGN1YW50aWZpY2Fyc2UgY29tbyBsYSBkaXN0YW5jaWEgZXVjbGlkaWFuYSBkZXNkZSBlc2UgcHVudG8gYWwgb3JpZ2VuLCBzaSBoYXkgdGFudGFzIGVzcGVjaWVzIGNvbW8gaW5kaXZpZHVvcyBsYSBkaXZlcnNpZGFkIGVzIG3DoXhpbWEsIGxhIGRpZmVyZW5jaWEgZW50cmUgZXN0ZSBtw6F4aW1vICh0bykgeSBsYSBjb211bmlkYWQgZW4gZXN0dWRpbyBlcyB1bmEgbWVkaWRhIGRlIGxhIGRpdmVyc2lkYWQgYWJzb2x1dGEiDQo+DQo+ICoqQmFsemFyaW5pLCAyMDA4KioNCg0KRWwgZXN0aW1hZG9yIGRlbCDDrW5kaWNlIHNlIGNhbGN1bGEgY29tbzoNCg0KJCQNClUgPSBcZnJhY3t0byAtIFxzcXJ0e1xzdW1fe2k9MX1eciBYX2leMn19e3RvIC0gXHNxcnR7dG99fQ0KJCQgDQoNCiMjIyMgKsONbmRpY2UgZGUgQnVsbGEqDQoNCj4gIkVuIHVuIGdyw6FmaWNvIGRlIGxhIGZyZWN1ZW5jaWEgcmVsYXRpdmEgZGUgYXBhcmljacOzbiBkZSBsYXMgZXNwZWNpZXMgKG9yZGVuYWRhcykgdmVyc3VzIGVsIG7Dum1lcm8gZGUgZXNwZWNpZXMgKGFic2Npc2FzKSB1bmEgbMOtbmVhIGhvcml6b250YWwgZW4gYDEvcmAgcmVwcmVzZW50YXLDrWEgdW5hIGNvbXVuaWRhZCBjb24gZGl2ZXJzaWRhZCBtw6F4aW1hLiBTaSBzZSBzdXBlcnBvbmUgYSDDqXN0YSB1bmEgbMOtbmVhIHF1ZSByZXByZXNlbnRhIGxhIGZyZWN1ZW5jaWEgcmVsYXRpdmEgZW4gbGEgY29tdW5pZGFkIHkgc2UgY2FsY3VsYSBlbCBncmFkbyBkZSBzb2xhcGFtaWVudG8gZW50cmUgZXN0YXMgZG9zIGRpc3RyaWJ1Y2lvbmVzIg0KPg0KPiAqKkJhbHphcmluaSwgMjAwOCoqDQoNCkVsIMOtbmRpY2Ugc2UgY2FsY3VsYSBjb21vOiANCg0KJCQNCk8gPSBbXGZyYWN7XHN1bV97bD0xfV5yIG1pbihwX2ksXGZyYWN7MX17cn0pfXtyLTF9XQ0KJCQNCg0KIyMjIyAqw41uZGljZSBkZSBCZXJnZXItUGFya2VyKg0KDQo+ICJEb25kZSBgTm1heGAgZXMgZWwgbsO6bWVybyBkZSBpbmRpdmlkdW9zIGVuIGxhIGVzcGVjaWUgbcOhcyBhYnVuZGFudGUuIFVuIGluY3JlbWVudG8gZW4gZWwgdmFsb3IgZGUgZXN0ZSDDrW5kaWNlIHNlIGludGVycHJldGEgY29tbyB1biBhdW1lbnRvIGVuIGxhIGVxdWlkYWQgeSB1bmEgZGlzbWludWNpw7NuIGRlIGxhIGRvbWluYW5jaWEiDQo+DQo+ICoqTW9yZW5vLCAyMDAxKioNCg0KJCQNCmQgPSBcZnJhY3tOX3ttYXh9fXtOfQ0KJCQNCg0KIyMjIyAqw41uZGljZSBkZSBNZW5oaW5pY2sqDQoNCj4gIlNlIGJhc2EgZW4gbGEgcmVsYWNpw7NuIGVudHJlIGVsIG7Dum1lcm8gZGUgZXNwZWNpZXMgeSBlbCBuw7ptZXJvIHRvdGFsIGRlIGluZGl2aWR1b3Mgb2JzZXJ2YWRvcyINCj4NCj4gKipNb3JlbmksIDIwMDEqKg0KDQokJA0KRF9tID0gXGZyYWN7U317XHNxcnR7Tn19DQokJA0KDQojIyMjICrDjW5kaWNlIGRlIE1hcmdhbGVmKg0KDQo+IlRyYW5zZm9ybWEgZWwgbsO6bWVybyBkZSBlc3BlY2llcyBwb3IgbXVlc3RyYSBhIHVuYSBwcm9wb3JjacOzbiBhIGxhIGN1YWwgbGFzIGVzcGVjaWVzIHNvbiBhw7FhZGlkYXMgcG9yIGV4cGFuc2nDs24gZGUgbGEgbXVlc3RyYSINCj4NCj4gKipNb3Jlbm8sIDIwMDEqKg0KDQokJA0KRF97bWd9ID0gXGZyYWN7Uy0xfXtsbiBOfQ0KJCQNCg0KKioqDQoNCiMjIyAqKkdSw4FGSUNPUyoqDQoNCiMjIyMgKioqTGVuZ3VhamUgZGUgcHJvZ3JhbWFjacOzbjogUioqKg0KDQo8Y2VudGVyPg0KDQohW10oTG9nb19SLmpwZykNCg0KPC9jZW50ZXI+DQoNCiMjIyMgPHU+KipWaWRlbyBkZSBpbnRhbGFjacOzbioqPC91PiA8IS0tSFRNTCB0YWdzLS0+DQoNCjxjZW50ZXI+DQoNCjxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvazBvQ1pkSlBzRFUiIGZyYW1lYm9yZGVyPSIwIiAgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZXh0ZXJuYWw9MT48L2lmcmFtZT4NCg0KPC9jZW50ZXI+DQoNCioqKg0KDQpzZSBhY3RpdmFuIGxhcyBzaWd1aWVudGVzIGxpYnJlcmlhczoNCg0KICAgIGxpYnJhcnkoZ2dwbG90MikNCiAgICBsaWJyYXJ5KHRpZHl2ZXJzZSkNCiAgICBsaWJyYXJ5KGV4dHJhZm9udCkNCiAgICBsaWJyYXJ5KGdndGhlbWVzKQ0KDQoqKioNCg0KIyMjIyA8dT5HcsOhZmljbyBkZSBiYXJyYXM8L3U+IDwhLS1IVE1MIHRhZ3MtLT4NCg0KICAgIExleWVuZGEgPSBjKCJBbmZpYmlvcyIsICJSZXB0aWxlcyIpDQogICAgbnVtID0gYyg2MjIsNDY5KQ0KICAgIERhdG9zIDwtIGRhdGEuZnJhbWUoTGV5ZW5kYSxudW0pDQogICAgaGVhZChEYXRvcykNCiAgICANCiAgICBnZ3Bsb3QoRGF0b3MsIGFlcyh4PXJlb3JkZXIoTGV5ZW5kYSwgLW51bSksIHk9bnVtLCBmaWxsPUxleWVuZGEpKSArIA0KICAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArIA0KICAgIGdlb21fdGV4dChhZXMobGFiZWw9bnVtKSwgdmp1c3Q9LTAuMjUpICsNCiAgICBsYWJzKHg9IiIsIHk9ICJOw7ptZXJvIikrDQogICAgdGhlbWVfYmFzZSgpDQoNCkFkanVudGFtb3MgbGEgaW1hZ2VuIGRlbCBncmFmaWNvIG9idGVuaWRhIGNvbiBlbCBjb2RpZ28gYW50ZXJpb3I6DQoNCjxjZW50ZXI+DQoNCiFbXShCYXJyYXNfaGVycGV0b19ybWQucG5nKQ0KDQo8L2NlbnRlcj4NCg0KDQojICoqRUpFTVBMTyoqDQoNClN1cG9uaWVuZG8gcXVlIHRlbmVtb3MgbGEgc2lndWllbnRlIHRhYmxhIGRlIGVzcGVjaWVzOg0KDQp8ICAgICAgICAgRXNwZWNpZXMgICAgICAgICAgfCBRdWVicmFkYXMgfCBCb3NxdWUgIHwgICBDbGFzZSAgfFRvdGFsfA0KfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOnw6LS0tLS0tLS0tOnw6LS0tLS0tLTp8Oi0tLS0tLS0tOnw6LS0tOnwNCnwgKlJoaW5lbGxhIE1hcmluYSogICAgICAgICB8ICAgIDMgICAgICB8ICAgIDUgICAgfCBBbXBoaWJpYSB8ICA4ICB8DQp8ICpJZ3VhbmEgaWd1YW5hKiAgICAgICAgICAgfCAgICA0ICAgICAgfCAgICAzICAgIHwgUmVwdGlsaWEgfCAgNyAgfA0KfCAqTWljcnVydXMgdHNjaHVkaWkqICAgICAgIHwgICAgMSAgICAgIHwgICAgMSAgICB8IFJlcHRpbGlhIHwgIDIgIHwgDQp8ICpIeWxveGFsdXMgZWxlY2hvaHlzdHVzKiAgfCAgICAxNCAgICAgfCAgICAyICAgIHwgQW1waGliaWEgfCAgMTYgfA0KfCAqUmhpbmVsbGEgc3BpbnVsb3NhKiAgICAgIHwgICAgOSAgICAgIHwgICAgMTIgICB8IEFtcGhpYmlhIHwgIDIxIHwNCnwgKkRpY3JvZG9uIGhldGVyb2xlcGlzKiAgICB8ICAgIDMgICAgICB8ICAgIDEgICAgfCBSZXB0aWxpYSB8ICA0ICB8DQp8ICpSaGluZWxsYSBwb2VwcGlnaWkqICAgICAgfCAgICA1ICAgICAgfCAgICAxICAgIHwgQW1waGliaWEgfCAgNiAgfA0KfCAqTWVkb3BoZW9zIGVkcmFjYW50dXMqICAgIHwgICAgNiAgICAgIHwgICAgOSAgICB8IFJlcHRpbGlhIHwgIDE1IHwNCnwgKk1pY3JvbG9waHVzIG9jY2lwaXRhbGlzKiB8ICAgIDIgICAgICB8ICAgIDEwICAgfCBSZXB0aWxpYSB8ICAxMiB8DQp8ICpFcGlwZWRvYmF0ZXMgYW50aG9ueWkqICAgfCAgICAxOCAgICAgfCAgICAyICAgIHwgQW1waGliaWEgfCAgMjAgfA0KDQoqKioNCg0KPHU+TGlzdGEgZGUgYW5maWJpb3M8L3U+IDwhLS1IVE1MIHRhZ3MtLT4NCg0KLSAgICpSaGluZWxsYSBNYXJpbmEqIA0KLSAgICpIeWxveGFsdXMgZWxlY2hvaHlzdHVzKg0KLSAgICpSaGluZWxsYSBzcGludWxvc2EqICANCi0gICAqUmhpbmVsbGEgcG9lcHBpZ2lpKiANCi0gICAqRXBpcGVkb2JhdGVzIGFudGhvbnlpKg0KDQo8dT5MaXN0YSBkZSByZXB0aWxlczwvdT4gPCEtLUhUTUwgdGFncy0tPg0KDQotICAgKklndWFuYSBpZ3VhbmEqDQotICAgKk1pY3J1cnVzIHRzY2h1ZGlpKiANCi0gICAqRGljcm9kb24gaGV0ZXJvbGVwaXMqIA0KLSAgICpNZWRvcGhlb3MgZWRyYWNhbnR1cyoNCi0gICAqTWljcm9sb3BodXMgb2NjaXBpdGFsaXMqIA0KDQojIEV2YWx1YWNpw7NuIGRlIMOtbmRpY2VzIGRlIGRpdmVyc2lkYWQNCg0KIyMjIyMgKsONbmRpY2UgTWVuaGluaWNrKg0KIA0KICAgIGRtID0gMTAvc3FydCgxMTEpIA0KICAgIGRtDQoNCsONbmRpY2UgZGUgcmlxdWV6YSBNZW5oaW5pY2sgcGFyYSBlc3RhIGNvbXVuaWRhZCBkZSBhbmZpYmlvcyB5IHJlcHRpbGVzIGVzIGRlIDAuOTQ5MTU4DQoNCiMjIyMjICogw41uZGljZSBkZSBCZXJnZXIg4oCTIFBhcmtlcioNCg0KICAgIERfQnAgPSAyMS8xMQ0KICAgIERfQnANCg0Kw41uZGljZSBkZSDDjW5kaWNlIGRlIEJlcmdlciDigJMgUGFya2VyIHBhcmEgZXN0YSBjb211bmlkYWQgZGUgYW5maWJpb3MgeSByZXB0aWxlcyBlcyBkZSAxLjkwOTA5MQ0KDQojIyMjICogw41uZGljZSBkZSBkaXZlcnNpZGFkIGRlIE1hcmdhbGVmKg0KDQogICAgRF9tZyA9ICgxMCAtIDEpIC8gbG9nKDExMSkNCiAgICBEX21nDQogICAgDQrDjW5kaWNlIGRlIMONbmRpY2UgZGUgTWFyZ2FsZWYgcGFyYSBlc3RhIGNvbXVuaWRhZCBkZSBhbmZpYmlvcyB5IHJlcHRpbGVzIGVzIGRlIDEuOTExMDE5DQoNCioqKg0KDQojIyMjICoqUmVzdWx0YWRvcyBkZSBsb3MgaW5kaWNlcyByZWFsaXphZG9zIGVuIGBQYXN0YCoqDQoNCjxjZW50ZXI+DQoNCiFbXShJbmRpY2VzX0Jpby5qcGcpDQoNCjwvY2VudGVyPg0KDQo8ZGl2IGNsYXNzPSJ0b2NpZnktZXh0ZW5kLXBhZ2UiIGRhdGEtdW5pcXVlPSJ0b2NpZnktZXh0ZW5kLXBhZ2UiIHN0eWxlPSJoZWlnaHQ6MDsiPjwvZGl2Pg0K