library(pscl)
library(tidyverse)
library(tidymodels)
library(modelr) 
library(here)
library(janitor)
library(ggbeeswarm)
library(broom)


theme_set(theme_bw())

Os dados que vamos usar foram retirados desse estudo https://ourworldindata.org/life-expectancy que tenta compreender o que aconteceu com a expectativa de vida dos humanos desde 1800. Para isso, temos um conjundo de variaveis que buscam quantificar algumas caracteristicas que podem mudar essa espectativa, tal como morte infantil, uso de alcohol, campanhas de vacinação contra hepatiteb, polio, diphteria, mortes por aids a cada 1000 pessoas, tamanho da população, magreza de adolecentes e criança e escolaridade. Atravéz disso, vamos pegar uma amostra desses dados, onde examinaremos alguns paises que geram atenção desde 2000 até 2015.

paises = c("Brazil","Burundi","Canada","China","Germany","Japan","Mexico", "Russian Federation","Central African Republic", "United States of America")

life_exp<- read_csv(here('Life_Expectancy_Data.csv'), col_types = 'cdcddddddddddddddddddd') %>% 
  clean_names(., "lower_camel") %>% 
  filter(country %in% paises, !is.na(life_expectancy))

Expectativa de vida

Vamos começar com uma breve analise desses paises. Estamos mostrando a expectativa de vida nos mesmos.

life_exp %>%
  ggplot(aes(x= year, y = lifeExpectancy)) +
  geom_point(size=.9)+
  geom_line()+
  facet_wrap(~country)+
  labs(
    x = "Ano",
    y = "Expectativa de vida em anos"
  )

Em uma primeira analise podemos ver que :

Mortalidade de adultos

life_exp %>%
  ggplot(aes(x= year, y = adultMortality)) +
  geom_point(size=.9)+
  geom_line()+
  facet_wrap(~country)+
  labs(
    x = "Ano",
    y = "Mortalidade entre adultos"
  )

Dentre todos os paises, o que causa uma analise é a Federação russa, Burundi, republica africana centrao , os paises com expectativa de vida menores entre os observados, possuem peridos com grande mortalidade entre os adultos.

Mortalidade infantil

life_exp %>%
  ggplot(aes(x= year, y = adultMortality)) +
  geom_point(size=.9)+
  geom_line()+
  facet_wrap(~country)+
  labs(
    x = "Ano",
    y = "Mortalidade entre adultos"
  )

Podemos destacar aqui 2 paises, Brazil e a China, onde possuiam indices altos de mortes a cada 1000 crianças, e que conseguiram diminuir. China porém, em 2015, ficou na faixa de 150 mortes a cada 1000 crianças, enquanto no brasil, um pouco abaixo de 50 crianças.

Sumarios estatisticos

sumarios = life_exp %>%
  group_by(country) %>% 
  summarise(mediana_expectativa = median(lifeExpectancy),
            mediana_mortalidade_adulta = median(adultMortality),
            mediana_mortalidade_infantil = median(infantDeaths),
            .groups = "drop")
sumarios

temos que Central African Republic é o pais onde existe a maior media de probabilidade de morrer adulto e a china é o pais onde existem a maior media de mortes infantis a cada 1000 crianças nascidas.

sumarios %>% 
  mutate(country = fct_reorder(country, desc(mediana_expectativa))) %>% 
  ggplot(aes(x = country, y = mediana_expectativa))+
  coord_flip() +
  geom_point()+
  labs(y = "Mediana de expectativa de vida", x ="País")

Podemos ver que Japão é o pais com maior mediana na expectativa de vida, e Repulica da africa possui a menor.

sumarios %>% 
  mutate(country = fct_reorder(country, desc(mediana_mortalidade_adulta))) %>% 
  ggplot(aes(x = country, y = mediana_mortalidade_adulta))+
  coord_flip() +
  geom_point() +
  labs(y = "Mediana de mortalidade adulta", x ="País")

Temos os USA com pais com menor mediana de mortalidade adulta, enquanto Replublica Africana como a maior.

sumarios %>% 
  mutate(country = fct_reorder(country, desc(mediana_mortalidade_infantil))) %>% 
  ggplot(aes(x = country, y = mediana_mortalidade_infantil))+
  coord_flip() +
  geom_point() + 
  labs(y = "Mediana de mortalidade Infantil", x ="País")

Evidenciamos a china como o país com maior mediana na mortalidade infantil.

Como o que campanhas de vacinação influenciam na expectativa de vida de sua população.

regressao = lm(lifeExpectancy ~  polio + diphtheria + hepatitisB, data = life_exp)
tidy(regressao, conf.int = TRUE)
glance(regressao)
tidy(regressao, conf.int = TRUE)%>% 
  filter(term != "(Intercept)") %>% 
  ggplot(aes(x= reorder(term,estimate), y = estimate, ymin=conf.low, ymax = conf.high))+
  geom_linerange()+
  geom_point()+
  coord_flip() +
  labs(x = "Variaveis", y ="Estimativa")

Temos nossa função como lifeExpectancy = 47.6971 + polio * 0.0988 + diphtheria * 0.2750 - hepatitisB * 0.1046

Podemos afirmar que 2 das 3 campanhas de vacinação podem influenciar positivamente no aumento de expectativa de vida.

Entretanto, devemos que por mais que sua diferença seja positiva ou negativa, não existe uma grande mudança, pois no maximo, 0.4 em idade pode ser mudada . Porem, levando em consideração só a campanha de vacinação, sua influencia é de grande importancia para saude das crianças e consequentemente uma melhora na expectativa de vida.

Esse modelo explica 28 % da variavel de reposta(R2 = 0.2815348).

LS0tCnRpdGxlOiAiQW5hbGlzZSBzb2JyZSBleHBlY3RhdGl2YSBkZSB2aWRhIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpgYGB7ciBlcnJvcj1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1UUlVFLCBwYWdlZC5wcmludD1GQUxTRX0KbGlicmFyeShwc2NsKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeSh0aWR5bW9kZWxzKQpsaWJyYXJ5KG1vZGVscikgCmxpYnJhcnkoaGVyZSkKbGlicmFyeShqYW5pdG9yKQpsaWJyYXJ5KGdnYmVlc3dhcm0pCmxpYnJhcnkoYnJvb20pCgoKdGhlbWVfc2V0KHRoZW1lX2J3KCkpCmBgYAoKT3MgZGFkb3MgcXVlIHZhbW9zIHVzYXIgZm9yYW0gcmV0aXJhZG9zIGRlc3NlIGVzdHVkbyA8aHR0cHM6Ly9vdXJ3b3JsZGluZGF0YS5vcmcvbGlmZS1leHBlY3RhbmN5PiBxdWUgdGVudGEgY29tcHJlZW5kZXIgbyBxdWUgYWNvbnRlY2V1IGNvbSBhIGV4cGVjdGF0aXZhIGRlIHZpZGEgZG9zIGh1bWFub3MgZGVzZGUgMTgwMC4gUGFyYSBpc3NvLCB0ZW1vcyB1bSBjb25qdW5kbyBkZSB2YXJpYXZlaXMgcXVlIGJ1c2NhbSBxdWFudGlmaWNhciBhbGd1bWFzIGNhcmFjdGVyaXN0aWNhcyBxdWUgcG9kZW0gbXVkYXIgZXNzYSBlc3BlY3RhdGl2YSwgdGFsIGNvbW8gbW9ydGUgaW5mYW50aWwsIHVzbyBkZSBhbGNvaG9sLCBjYW1wYW5oYXMgZGUgdmFjaW5hw6fDo28gY29udHJhIGhlcGF0aXRlYiwgcG9saW8sIGRpcGh0ZXJpYSwgbW9ydGVzIHBvciBhaWRzIGEgY2FkYSAxMDAwIHBlc3NvYXMsIHRhbWFuaG8gZGEgcG9wdWxhw6fDo28sIG1hZ3JlemEgZGUgYWRvbGVjZW50ZXMgZSBjcmlhbsOnYSBlIGVzY29sYXJpZGFkZS4gQXRyYXbDqXogZGlzc28sIHZhbW9zIHBlZ2FyIHVtYSBhbW9zdHJhIGRlc3NlcyBkYWRvcywgb25kZSBleGFtaW5hcmVtb3MgYWxndW5zIHBhaXNlcyBxdWUgZ2VyYW0gYXRlbsOnw6NvIGRlc2RlIDIwMDAgYXTDqSAyMDE1LgoKYGBge3J9CnBhaXNlcyA9IGMoIkJyYXppbCIsIkJ1cnVuZGkiLCJDYW5hZGEiLCJDaGluYSIsIkdlcm1hbnkiLCJKYXBhbiIsIk1leGljbyIsICJSdXNzaWFuIEZlZGVyYXRpb24iLCJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiLCAiVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhIikKCmxpZmVfZXhwPC0gcmVhZF9jc3YoaGVyZSgnTGlmZV9FeHBlY3RhbmN5X0RhdGEuY3N2JyksIGNvbF90eXBlcyA9ICdjZGNkZGRkZGRkZGRkZGRkZGRkZGRkJykgJT4lIAogIGNsZWFuX25hbWVzKC4sICJsb3dlcl9jYW1lbCIpICU+JSAKICBmaWx0ZXIoY291bnRyeSAlaW4lIHBhaXNlcywgIWlzLm5hKGxpZmVfZXhwZWN0YW5jeSkpCmBgYAoKIyMgRXhwZWN0YXRpdmEgZGUgdmlkYQoKVmFtb3MgY29tZcOnYXIgY29tIHVtYSBicmV2ZSBhbmFsaXNlIGRlc3NlcyBwYWlzZXMuIEVzdGFtb3MgbW9zdHJhbmRvIGEgZXhwZWN0YXRpdmEgZGUgdmlkYSBub3MgbWVzbW9zLgoKYGBge3J9CmxpZmVfZXhwICU+JQogIGdncGxvdChhZXMoeD0geWVhciwgeSA9IGxpZmVFeHBlY3RhbmN5KSkgKwogIGdlb21fcG9pbnQoc2l6ZT0uOSkrCiAgZ2VvbV9saW5lKCkrCiAgZmFjZXRfd3JhcCh+Y291bnRyeSkrCiAgbGFicygKICAgIHggPSAiQW5vIiwKICAgIHkgPSAiRXhwZWN0YXRpdmEgZGUgdmlkYSBlbSBhbm9zIgogICkKYGBgCgpFbSB1bWEgcHJpbWVpcmEgYW5hbGlzZSBwb2RlbW9zIHZlciBxdWUgOgoKLSAgIFBhaXNlcyBhZnJpY2Fub3MgY29tIEJ1cmluZGkgZSBSZXB1YmxpY2EgYWZyaWNhbmEgY2VudHJhbCBzw6NvIG9zIHBhaXNlcyBvbmRlIG9zIHZhbG9yZXMgZGUgZXhwZWN0YXRpdmEgZGUgdmlkYSBzw6NvIG9zIG1lbm9yZXMgZGVudHJlIHRvZG9zIG9zIG91dHJvcywgbsOjbyBwb3NzdWluZG8gdmFsb3JlcyBhY2ltYSBkZSA2MCBhbm9zIGRlIGlkYWRlLgoKLSAgIEEgRmVkZXJhw6fDo28gUnVzc2EgcGFydGUgZGUgdW0gcG9udG8gZGUgYXByb3ggNjUgYW5vcyBlbSAyMDAwIGF0w6kgYXByb3ggNzUgYW5vcyBlbSAyMDE1IGNvbnN0YW5kbyBjb21vIHVtYSBncmFuZGUgZXZvbHXDp8OjbyBubyBkZWNvcnJlciBkZXNzZSAxNSBhbm9zLgoKLSAgIFBhaXNlcyBjb21vIEphcMOjbywgQWxlbWFuaGEgZSBDYW5hZGEgcGFyZWNlbSBwb3NzdWlyIGVtIHRvZG9zIG9zIGFub3MgdmFsb3JlcyBkZSBleHBlY3RhdGl2YSBkZSB2aWRhIGFjaW1hIGRvcyA4MCBhbm9zLCB0ZW5kbyBBbGVtYW5oYSBlIENhbmFkYSBjb20gYWxndW1hcyBvc2NpbGHDp29lcyBuZXNzZSBwZXJpb2RvLgoKLSAgIFBhaXNlcyBjb21vIEJyYXNpbCwgQ2hpbmEsIFVTQSwgTWV4aWNvIGVzdMOjbyBubyBtZWlvIHRlcm1vIGRhIGV4cGVjdGF0aXZhIGRlIHZpZGEsIGVudHJlIDcwIGUgODAgYW5vcy4KCiMjIE1vcnRhbGlkYWRlIGRlIGFkdWx0b3MKCmBgYHtyfQpsaWZlX2V4cCAlPiUKICBnZ3Bsb3QoYWVzKHg9IHllYXIsIHkgPSBhZHVsdE1vcnRhbGl0eSkpICsKICBnZW9tX3BvaW50KHNpemU9LjkpKwogIGdlb21fbGluZSgpKwogIGZhY2V0X3dyYXAofmNvdW50cnkpKwogIGxhYnMoCiAgICB4ID0gIkFubyIsCiAgICB5ID0gIk1vcnRhbGlkYWRlIGVudHJlIGFkdWx0b3MiCiAgKQpgYGAKCkRlbnRyZSB0b2RvcyBvcyBwYWlzZXMsIG8gcXVlIGNhdXNhIHVtYSBhbmFsaXNlIMOpIGEgRmVkZXJhw6fDo28gcnVzc2EsIEJ1cnVuZGksIHJlcHVibGljYSBhZnJpY2FuYSBjZW50cmFvICwgb3MgcGFpc2VzIGNvbSBleHBlY3RhdGl2YSBkZSB2aWRhIG1lbm9yZXMgZW50cmUgb3Mgb2JzZXJ2YWRvcywgcG9zc3VlbSBwZXJpZG9zIGNvbSBncmFuZGUgbW9ydGFsaWRhZGUgZW50cmUgb3MgYWR1bHRvcy4KCiMjIE1vcnRhbGlkYWRlIGluZmFudGlsCgpgYGB7cn0KbGlmZV9leHAgJT4lCiAgZ2dwbG90KGFlcyh4PSB5ZWFyLCB5ID0gaW5mYW50RGVhdGhzKSkgKwogIGdlb21fcG9pbnQoc2l6ZT0uOSkrCiAgZ2VvbV9saW5lKCkrCiAgZmFjZXRfd3JhcCh+Y291bnRyeSkrCiAgbGFicygKICAgIHggPSAiQW5vIiwKICAgIHkgPSAiTW9ydGFsaWRhZGUgaW5mYW50aWwiCiAgKQpgYGAKClBvZGVtb3MgZGVzdGFjYXIgYXF1aSAyIHBhaXNlcywgQnJhemlsIGUgYSBDaGluYSwgb25kZSBwb3NzdWlhbSBpbmRpY2VzIGFsdG9zIGRlIG1vcnRlcyBhIGNhZGEgMTAwMCBjcmlhbsOnYXMsIGUgcXVlIGNvbnNlZ3VpcmFtIGRpbWludWlyLiBDaGluYSBwb3LDqW0sIGVtIDIwMTUsIGZpY291IG5hIGZhaXhhIGRlIDE1MCBtb3J0ZXMgYSBjYWRhIDEwMDAgY3JpYW7Dp2FzLCBlbnF1YW50byBubyBicmFzaWwsIHVtIHBvdWNvIGFiYWl4byBkZSA1MCBjcmlhbsOnYXMuCgojIyBTdW1hcmlvcyBlc3RhdGlzdGljb3MKCmBgYHtyfQpzdW1hcmlvcyA9IGxpZmVfZXhwICU+JQogIGdyb3VwX2J5KGNvdW50cnkpICU+JSAKICBzdW1tYXJpc2UobWVkaWFuYV9leHBlY3RhdGl2YSA9IG1lZGlhbihsaWZlRXhwZWN0YW5jeSksCiAgICAgICAgICAgIG1lZGlhbmFfbW9ydGFsaWRhZGVfYWR1bHRhID0gbWVkaWFuKGFkdWx0TW9ydGFsaXR5KSwKICAgICAgICAgICAgbWVkaWFuYV9tb3J0YWxpZGFkZV9pbmZhbnRpbCA9IG1lZGlhbihpbmZhbnREZWF0aHMpLAogICAgICAgICAgICAuZ3JvdXBzID0gImRyb3AiKQpzdW1hcmlvcwpgYGAKCnRlbW9zIHF1ZSBDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMgw6kgbyBwYWlzIG9uZGUgZXhpc3RlIGEgbWFpb3IgbWVkaWEgZGUgcHJvYmFiaWxpZGFkZSBkZSBtb3JyZXIgYWR1bHRvIGUgYSBjaGluYSDDqSBvIHBhaXMgb25kZSBleGlzdGVtIGEgbWFpb3IgbWVkaWEgZGUgbW9ydGVzIGluZmFudGlzIGEgY2FkYSAxMDAwIGNyaWFuw6dhcyBuYXNjaWRhcy4KCmBgYHtyfQpzdW1hcmlvcyAlPiUgCiAgbXV0YXRlKGNvdW50cnkgPSBmY3RfcmVvcmRlcihjb3VudHJ5LCBkZXNjKG1lZGlhbmFfZXhwZWN0YXRpdmEpKSkgJT4lIAogIGdncGxvdChhZXMoeCA9IGNvdW50cnksIHkgPSBtZWRpYW5hX2V4cGVjdGF0aXZhKSkrCiAgY29vcmRfZmxpcCgpICsKICBnZW9tX3BvaW50KCkrCiAgbGFicyh5ID0gIk1lZGlhbmEgZGUgZXhwZWN0YXRpdmEgZGUgdmlkYSIsIHggPSJQYcOtcyIpCmBgYAoKUG9kZW1vcyB2ZXIgcXVlIEphcMOjbyDDqSBvIHBhaXMgY29tIG1haW9yIG1lZGlhbmEgbmEgZXhwZWN0YXRpdmEgZGUgdmlkYSwgZSBSZXB1bGljYSBkYSBhZnJpY2EgcG9zc3VpIGEgbWVub3IuCgpgYGB7cn0Kc3VtYXJpb3MgJT4lIAogIG11dGF0ZShjb3VudHJ5ID0gZmN0X3Jlb3JkZXIoY291bnRyeSwgZGVzYyhtZWRpYW5hX21vcnRhbGlkYWRlX2FkdWx0YSkpKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gY291bnRyeSwgeSA9IG1lZGlhbmFfbW9ydGFsaWRhZGVfYWR1bHRhKSkrCiAgY29vcmRfZmxpcCgpICsKICBnZW9tX3BvaW50KCkgKwogIGxhYnMoeSA9ICJNZWRpYW5hIGRlIG1vcnRhbGlkYWRlIGFkdWx0YSIsIHggPSJQYcOtcyIpCmBgYAoKVGVtb3Mgb3MgVVNBIGNvbSBwYWlzIGNvbSBtZW5vciBtZWRpYW5hIGRlIG1vcnRhbGlkYWRlIGFkdWx0YSwgZW5xdWFudG8gUmVwbHVibGljYSBBZnJpY2FuYSBjb21vIGEgbWFpb3IuCgpgYGB7cn0Kc3VtYXJpb3MgJT4lIAogIG11dGF0ZShjb3VudHJ5ID0gZmN0X3Jlb3JkZXIoY291bnRyeSwgZGVzYyhtZWRpYW5hX21vcnRhbGlkYWRlX2luZmFudGlsKSkpICU+JSAKICBnZ3Bsb3QoYWVzKHggPSBjb3VudHJ5LCB5ID0gbWVkaWFuYV9tb3J0YWxpZGFkZV9pbmZhbnRpbCkpKwogIGNvb3JkX2ZsaXAoKSArCiAgZ2VvbV9wb2ludCgpICsgCiAgbGFicyh5ID0gIk1lZGlhbmEgZGUgbW9ydGFsaWRhZGUgSW5mYW50aWwiLCB4ID0iUGHDrXMiKQpgYGAKCkV2aWRlbmNpYW1vcyBhIGNoaW5hIGNvbW8gbyBwYcOtcyBjb20gbWFpb3IgbWVkaWFuYSBuYSBtb3J0YWxpZGFkZSBpbmZhbnRpbC4KCiMjIENvbW8gbyBxdWUgY2FtcGFuaGFzIGRlIHZhY2luYcOnw6NvIGluZmx1ZW5jaWFtIG5hIGV4cGVjdGF0aXZhIGRlIHZpZGEgZGUgc3VhIHBvcHVsYcOnw6NvLgoKYGBge3J9CnJlZ3Jlc3NhbyA9IGxtKGxpZmVFeHBlY3RhbmN5IH4gIHBvbGlvICsgZGlwaHRoZXJpYSArIGhlcGF0aXRpc0IsIGRhdGEgPSBsaWZlX2V4cCkKdGlkeShyZWdyZXNzYW8sIGNvbmYuaW50ID0gVFJVRSkKZ2xhbmNlKHJlZ3Jlc3NhbykKYGBgCgpgYGB7cn0KdGlkeShyZWdyZXNzYW8sIGNvbmYuaW50ID0gVFJVRSklPiUgCiAgZmlsdGVyKHRlcm0gIT0gIihJbnRlcmNlcHQpIikgJT4lIAogIGdncGxvdChhZXMoeD0gcmVvcmRlcih0ZXJtLGVzdGltYXRlKSwgeSA9IGVzdGltYXRlLCB5bWluPWNvbmYubG93LCB5bWF4ID0gY29uZi5oaWdoKSkrCiAgZ2VvbV9saW5lcmFuZ2UoKSsKICBnZW9tX3BvaW50KCkrCiAgY29vcmRfZmxpcCgpICsKICBsYWJzKHggPSAiVmFyaWF2ZWlzIiwgeSA9IkVzdGltYXRpdmEiKQpgYGAKClRlbW9zIG5vc3NhIGZ1bsOnw6NvIGNvbW8gbGlmZUV4cGVjdGFuY3kgPSA0Ny42OTcxICsgcG9saW8gXCogMC4wOTg4ICsgZGlwaHRoZXJpYSBcKiAwLjI3NTAgLSBoZXBhdGl0aXNCIFwqIDAuMTA0NgoKUG9kZW1vcyBhZmlybWFyIHF1ZSAyIGRhcyAzIGNhbXBhbmhhcyBkZSB2YWNpbmHDp8OjbyBwb2RlbSBpbmZsdWVuY2lhciBwb3NpdGl2YW1lbnRlIG5vIGF1bWVudG8gZGUgZXhwZWN0YXRpdmEgZGUgdmlkYS4KCi0gICBwb2xpbyBjb20gdmFsb3IgZXN0aW1hZG8gZGUgMC4wOTg4LCBwb3NzdWkgdW0gaW50ZXZhbG8gZGUgY29uZmlhbsOnYSBlbnRyZSBbLTAuMDAwOCwgMC4xOTg0XSBjb20gOTUlIGRlIGNvbmZpYW7Dp2EsIG91IHNlamEsIGVsYSBwb2RlIGdlcmFyIG91IG7Do28gaW5mbHVlbmNpYSBwb3NpdGl2YSBuYSBleHBlY3RhdGl2YSBkZSB2aWRhLgoKLSAgIGRpcGh0ZXJpYSBlbnRyZXRhbnRvLCBjb20gc2V1IElDIGEgOTUgJSBkZSBjb25maWFuw6dhWzAuMTYwMCwgMC4zOTAwXSBlc3RpbWEgcXVlIHN1YSBtdWRhbsOnYSDDqSBwb3NpdGl2YS4KCi0gICBoZXBhdGl0ZSBiIGluZmx1ZW5jaWEgbmVnYXRpdmFtZW50ZSBuYSBleHBlY3RhdGl2YSBkZSB2aWRhLCBjb250cmFyaWFuZG8gYXMgZXNwZWN0YXRpdmFzIElDWy0wLjE1OTMsLSAwLjA0OThdCgpFbnRyZXRhbnRvLCBkZXZlbW9zIHF1ZSBwb3IgbWFpcyBxdWUgc3VhIGRpZmVyZW7Dp2Egc2VqYSBwb3NpdGl2YSBvdSBuZWdhdGl2YSwgbsOjbyBleGlzdGUgdW1hIGdyYW5kZSBtdWRhbsOnYSwgcG9pcyBubyBtYXhpbW8sIDAuNCBlbSBpZGFkZSBwb2RlIHNlciBtdWRhZGEgLiBQb3JlbSwgbGV2YW5kbyBlbSBjb25zaWRlcmHDp8OjbyBzw7MgYSBjYW1wYW5oYSBkZSB2YWNpbmHDp8Ojbywgc3VhIGluZmx1ZW5jaWEgw6kgZGUgZ3JhbmRlIGltcG9ydGFuY2lhIHBhcmEgc2F1ZGUgZGFzIGNyaWFuw6dhcyBlIGNvbnNlcXVlbnRlbWVudGUgdW1hIG1lbGhvcmEgbmEgZXhwZWN0YXRpdmEgZGUgdmlkYS4KCkVzc2UgbW9kZWxvIGV4cGxpY2EgMjggJSBkYSB2YXJpYXZlbCBkZSByZXBvc3RhKFIyID0gMC4yODE1MzQ4KS4K