• PORTADA
    • Últimas noticias
    • España
      • Andalucía
      • Aragón
      • Canarias
      • Castilla y León
      • Castilla-La Mancha
      • Cataluña
      • Comunidad Valenciana
      • Madrid
      • Galicia
      • País Vasco
    • OKBaleares
    • Navarra.com
    • Opinión
    • Investigación
    • Economía
      • Empresas
      • Consumo
      • Empleo
    • Sociedad
    • Metabolic
    • Talent24H
    • Techy
    • Diario Madridista
      • Últimas noticias
      • Real Madrid
    • Deportes
      • Fútbol
      • Atlético de Madrid
      • Barcelona
      • Champions League
      • Tenis
      • Fórmula 1
    • Mundial 2026
    • Sucesos
    • Internacional
    • Cool
      • Actualidad
      • Belleza
      • Casa Real
      • Famosos
      • Moda
      • Lifestyle
      • Televisión
    • HappyFM
    • Cine y Series
    • OKMotor
    • OKSalud
    • OKGreen
    • Curiosidades
    • ESPECIALES
      • Recetas
      • ¿Cómo se hace?
      • Religión
      • Mascotas
      • Bebés
      • Tecnología
      • Naturaleza
      • Educación
      • Historia
      • Ciencia
      • Listas
      • Gastronomía
      • Historia
      • Horóscopo
    • OKPlanes
    • OKCLUB
    • OkShopping
    • Lotería
    • SER PADRES
    • MIA REVISTA
    • Muy interesante
Destacados:
  • ERTMS del AVE Sevilla
  • Novia de Ábalos
  • Feijóo retorno de menas
  • Sánchez tragedia de Urda
  • Patronal de FCC y Acciona
  • Pedro Sánchez Koldo García
  • Precio de la gasolina Madrid
  • Precio de la gasolina Andalucía
  • GP de Qatar MotoGP
  • Atlanta Falcons – Cincinnati Bengals
  • Atlético de Madrid – Barcelona
  • Horario Alcaraz – Shelton
  • Árbitro Atlético-Barcelona
  • Alineación del Atlético
  • Parrilla de salida GP de Brasil
  • Resumen Valencia – Real Madrid
  • GP Brasil F1
  • Últimas noticias
  • Crisis del AVE
Más

    El sitio de los inconformistas

    8 Nov 2026
    Actualizado 15:31 CET
    INICIAR SESIÓN
    Es Noticia
    • PROVERBIO africano del día, sobre la RESILIENCIA
    • PSICOLOGÍA alerta de los efectos de la SOBREPROTECCIÓN
    • Los SUELOS laminados tienen los días CONTADOS
    • La LECCIÓN de vida de Robert de NIRO
    • MALLORCA podría tener una nueva base AÉREA
    • RODILLAS fuertes a los 60 con este EJERCICIO
    • LUIS DE GÓNGORA y el refrán contra el FRÍO
    • TRABAJADORES recibirán un mes de sueldo si hay CIERRE
    • SARA CARBONERO compra una casa en LA MANCHA
    • ROBERT DE NIRO y su reflexión sobre la VIDA
    • VOLCÁN SUBMARINO genera electricidad a 1.500 METROS
    • ESPAÑA podría llamar a filas en caso de GUERRA
    • PSICOLOGÍA explica por qué dibujar ayuda a MEMORIZAR
    • AZAFATA revela el error que cometen los PASAJEROS
    • Los zapatos de los CAMPESINOS que conquistan la MODA
    • SEÑAL DE TRÁFICO que obliga a llevar CADENAS
    • Lo que una NOTARIA nunca recomendaría a los MAYORES
    • PUEBLO con palacios y solo 7 HABITANTES
    • SERVICIO MILITAR para los nacidos en 2008
    • BIODIVERSIDAD y el valor oculto de ESTAS regiones
    • ADIÓS a la decoración de NAVIDAD recargada
    • ANDRÉ ALONSO revela cómo cuidar las FLORES

    Okdiario

    • España
    • Economía
    • Deportes
    • Diario Madridista
    • Investigación
    • Cool
    • Opinión
    • Sociedad
    • Lotería de Navidad
    • Directo
    • Alcaraz – Shelton hoy, en directo
    • Atlanta Falcons – Cincinnati Bengals, en directo
    • Sánchez olvida la tragedia de Urda 11 días después: ni una mención en su mitin a las víctimas ni al dimitido Puente
        • España
        • España

      Sánchez olvida la tragedia de Urda 11 días después: ni una mención en su mitin a las víctimas ni al dimitido Puente

      • Rafael Molina
      • 2026-11-08 13:43
    • CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLTR0NW85e21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay00dDVvOSBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstNHQ1bzkgLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstNHQ1bzkgLnBhZ2UgLmNvbHVtbntvcmRlcjozfQouYmxrLTR0NW85IC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstNHQ1bzl7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay00dDVvOSAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstNHQ1bzkgLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLTR0NW85IC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstNHQ1bzkgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay00dDVvOSAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86MTYvOSAhaW1wb3J0YW50O30KICAuYmxrLTR0NW85IC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay00dDVvOSAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay00dDVvOSAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLTR0NW85IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGstNHQ1bzkgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay00dDVvOSAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay00dDVvOSAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGstNHQ1bzkgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay00dDVvOSAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay00dDVvOSAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstNHQ1bzkgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstNHQ1bzkgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstNHQ1bzkgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay00dDVvOSAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLTR0NW85IC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLTR0NW85IC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstNHQ1bzkgLmxlYWQtdGl0bGV7Zm9udC1zaXplOjIuMDVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIC5ibGstNHQ1bzkgLmxlYWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay00dDVvOSAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay00dDVvOSAuYXV0aG9yLWxhYmVse3RleHQtYWxpZ246Y2VudGVyO30KICAuYmxrLTR0NW85IC5sZWFkLWtpY2tlci1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTR0NW85IC5sZWFkLWtpY2tlci1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay00dDVvOSAubGVhZC1zdWJ0aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTR0NW85IC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLTR0NW85IC5sZWFkLWFuaW0taGVhZGxpbmVze2ZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMDIgIWltcG9ydGFudDt9CiAgCiAgLmJsay00dDVvOSAucmVsYXRlZC10aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLTR0NW85IC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KfQouYmxrLTR0NW85IC5sZWFke2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZjtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLTR0NW85IC5sZWFkLW1lZGlhe3Bvc2l0aW9uOnJlbGF0aXZlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW59Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZTogYWx0byBmaWpvIGVuIHDteGVsZXMgZW4gdmV6IGRlIGxhIHByb3BvcmNp824gZGUKICAgYXJyaWJhICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBzdGF0ZS5sZWFkLmlmcmFtZUhlaWdodCkgJiM4MjEyOyBlbAogICB2YWxvciBkZSBN83ZpbCBzZSBzb2JyZXNjcmliZSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywgaWd1YWwgcXVlIGVsCiAgIHJlc3RvIGRlIG92ZXJyaWRlcyByZXNwb25zaXZlIGRlIGVzdGUgSFRNTCBleHBvcnRhZG8uICovCi5ibGstNHQ1bzkgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2FzcGVjdC1yYXRpbzpub25lO2Jsb2NrLXNpemU6NjQwcHg7fQouYmxrLTR0NW85IC5sZWFkLW1lZGlhIGltZywKLmJsay00dDVvOSAubGVhZC1tZWRpYSB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci8qIENhcnJ1c2VsIGRlIGZvdG9zIGRlIGZvbmRvIGNvbiBlZmVjdG8gS2VuIEJ1cm5zICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuCiAgIExhIGR1cmFjafNuIGRlIGxhcyBhbmltYWNpb25lcyAoNnMpIGNvaW5jaWRlIGNvbgogICBMRUFEX0NBUk9VU0VMX0lOVEVSVkFMLCBxdWUgdGFtYmnpbiBnb2JpZXJuYSBlbCBzY3JpcHQgZGUgcm90YWNp824KICAgKGJ1aWxkTGVhZENhcm91c2VsU2NyaXB0KSBh8WFkaWRvIGFsIGZpbmFsIGRlbCBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay00dDVvOSAubGVhZC1jYXJvdXNlbHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstNHQ1bzkgLmxlYWQtY2Fyb3VzZWwtc2xpZGV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDEuNXMgZWFzZTt9Ci5ibGstNHQ1bzkgLmxlYWQtY2Fyb3VzZWwtc2xpZGUuaXMtYWN0aXZle29wYWNpdHk6MTt6LWluZGV4OjE7fQouYmxrLTR0NW85IC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7fQouYmxrLTR0NW85IC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChvZGQpIGltZ3thbmltYXRpb246YmxrLTR0NW85LWtlbmJ1cm5zLWEgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQouYmxrLTR0NW85IC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChldmVuKSBpbWd7YW5pbWF0aW9uOmJsay00dDVvOS1rZW5idXJucy1iIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KQGtleWZyYW1lcyBibGstNHQ1bzkta2VuYnVybnMtYXsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gfQpAa2V5ZnJhbWVzIGJsay00dDVvOS1rZW5idXJucy1ieyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoNCUsMyUpO30gfQovKiBDb24gdW5hIPpuaWNhIGZvdG8gKHNpbiByb3RhY2nzbiBwb3NpYmxlKSBzZSBhcGxpY2EgdW4gem9vbSBpbi9vdXQgZW4KICAgYnVjbGUgaW5maW5pdG8gZW4gdmV6IGRlbCByZWNvcnJpZG8g+m5pY28gKGZvcndhcmRzKSBkZSBhcnJpYmEuICovCi5ibGstNHQ1bzkgLmxlYWQtY2Fyb3VzZWwuaXMtc2luZ2xlIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3thbmltYXRpb246YmxrLTR0NW85LWtlbmJ1cm5zLWxvb3AgMTRzIGVhc2UtaW4tb3V0IGluZmluaXRlO30KQGtleWZyYW1lcyBibGstNHQ1bzkta2VuYnVybnMtbG9vcHsgMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gNTAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSAxMDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IH0KLyogQ29tcGFyYWRvciBhbnRlcy9kZXNwdelzIChkZXNsaXphZG9yKSAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTR0NW85IC5sZWFkLWNvbXBhcmV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7dG91Y2gtYWN0aW9uOm5vbmU7ei1pbmRleDoyO30KLmJsay00dDVvOSAubGVhZC1jb21wYXJlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7b2JqZWN0LXBvc2l0aW9uOmNlbnRlcjtkaXNwbGF5OmJsb2NrO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLWRyYWc6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay00dDVvOSAubGVhZC1jb21wYXJlLWJlZm9yZXtjbGlwLXBhdGg6aW5zZXQoMCA1MCUgMCAwKTt3aWxsLWNoYW5nZTpjbGlwLXBhdGg7fQouYmxrLTR0NW85IC5sZWFkLWNvbXBhcmUtcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTttYXJnaW46MDtvcGFjaXR5OjA7Y3Vyc29yOmV3LXJlc2l6ZTt9Ci5ibGstNHQ1bzkgLmxlYWQtY29tcGFyZS1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDo1MCU7aW5saW5lLXNpemU6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6Mjt9Ci5ibGstNHQ1bzkgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtpbmxpbmUtc2l6ZToycHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC4yNSk7fQouYmxrLTR0NW85IC5sZWFkLWNvbXBhcmUtaGFuZGxlOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDotMTVweDtpbmxpbmUtc2l6ZTozMHB4O2Jsb2NrLXNpemU6MzBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmYgdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnPjxnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMDAwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCc+PHBhdGggZD0nTTggNiBMNCAxMCBMOCAxNCcvPjxwYXRoIGQ9J00xMiA2IEwxNiAxMCBMMTIgMTQnLz48L2c+PC9zdmc+IikgY2VudGVyLzE2cHggMTZweCBuby1yZXBlYXQ7Ym94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwuMjUpO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMjUpO30KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE1pc21vIHotaW5kZXg6MiBxdWUKICAgLmxlYWQtY29tcGFyZSwgcG9yIGVsIG1pc21vIG1vdGl2byAoZ2FuYXJsZSBhIC5sZWFkLWxpbmspLiAqLwouYmxrLTR0NW85IC5sZWFkLWlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt6LWluZGV4OjI7fQouYmxrLTR0NW85IC5sZWFkLWlmcmFtZSBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay00dDVvOSAubGVhZC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLTR0NW85IC5sZWFkLWJvZHl7cGFkZGluZzowcHggMjBweCAyMHB4IDIwcHg7O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjY7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGlubGluZS1zaXplOjk1JTsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi10b3A6LTMwcHg7IGJhY2tncm91bmQ6IzBFMTExQTsgZmxleDoxIDEgYXV0bzt9Ci8qIEFudGV07XR1bG8vdGl0dWxhci9zdWJ07XR1bG8vYXV0b3IgY2VudHJhZG9zIGVuIHZlcnRpY2FsIGRlbnRybyBkZWwgYWx0bwogICBzb2JyYW50ZSBiYWpvIGxhIGNhdGVnb3LtYSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLTR0NW85IC5sZWFkLWJvZHktbWFpbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2lubGluZS1zaXplOjEwMCU7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjA7fQovKiBBcGFyaWVuY2lhIG5lZ2F0aXZhIChwb3IgZGVmZWN0bykgdnMuIHBvc2l0aXZhIGRlIGxhIGNhamEgZGUgdGl0dWxhciAmIzgyMTI7IHZlcgogICBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLTR0NW85IC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtYm9keXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO30KLmJsay00dDVvOSAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLXRpdGxlLAouYmxrLTR0NW85IC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmF1dGhvci1sYWJlbHtjb2xvcjojMEUxMTFBO30KLyogUG9zaWNp824gZGVsIGxlYWQtYm9keSByZXNwZWN0byBhbCBsZWFkLW1lZGlhICgnbGVmdCcvJ3JpZ2h0JykgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay00dDVvOSAubGVhZC5sZWFkLWJvZHktbGVmdCwKLmJsay00dDVvOSAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246cm93O2FzcGVjdC1yYXRpbzoyLjk2Mjk2Mjk2Mjk2Mjk2Mzt9Ci5ibGstNHQ1bzkgLmxlYWQubGVhZC1ib2R5LWxlZnR7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fQouYmxrLTR0NW85IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAouYmxrLTR0NW85IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjAgMCA2MCU7fQouYmxrLTR0NW85IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCi5ibGstNHQ1bzkgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDowIDAgY2FsYyg0MCUgKyAzMHB4KTtpbmxpbmUtc2l6ZTphdXRvO21hcmdpbi10b3A6MDtibG9jay1zaXplOmNhbGMoMTAwJSAtIDQycHgpO2FsaWduLXNlbGY6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30KLmJsay00dDVvOSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi0zMHB4O30KLmJsay00dDVvOSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDotMzBweDttYXJnaW4tcmlnaHQ6MDt9Ci8qIFBvc2ljafNuICdib3R0b20tZnVsbCcgZGVsIGxlYWQtYm9keSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBpbmxpbmUtc2l6ZQogICBlbiB2ZXogZGUgd2lkdGggcG9yIGVsIG1pc21vIG1vdGl2byBxdWUgZWwgcmVzdG8gZGUgZXN0ZSBibG9xdWUgKGV2aXRhcgogICBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUwogICBkaXJlY3RhbWVudGUpLiAqLwouYmxrLTR0NW85IC5sZWFkLmxlYWQtYm9keS1ib3R0b20tZnVsbCAubGVhZC1ib2R5ewogIGlubGluZS1zaXplOjEwMCU7CiAgbWFyZ2luOjA7CiAgcGFkZGluZy10b3A6MzBweDsKICBwYWRkaW5nLWJvdHRvbTozMHB4OwogIGJvcmRlcjpub25lOwp9Ci8qIEV0aXF1ZXRhIGRlIGV4Y2x1c2l2YSAobyB0ZXh0byBwZXJzb25hbGl6YWRvKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTR0NW85IC5sZWFkLWV4Y2x1c2l2ZS10YWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4O3otaW5kZXg6MztkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2xldHRlci1zcGFjaW5nOjAuNXB4O3BhZGRpbmc6MnB4IDhweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOi44ZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7fQovKiBTZWxlY3RvciBjb24gMyBjbGFzZXMgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoIi5sZWFkLW1lZGlhIGltZyIgdGFtYmnpbgogICBtYXRjaGVhIGVzdGUgPGltZz4geSBsZSBnYW5hYmEgZW4gZXNwZWNpZmljaWRhZCkuICovCi5ibGstNHQ1bzkgLmxlYWQtZXhjbHVzaXZlLXRhZyAubGVhZC1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstNHQ1bzkgLmxlYWQtY2F0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpza2V3WSgtNmRlZyk7bWFyZ2luLXRvcDotMTVweDttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLTR0NW85IC5sZWFkLWtpY2tlciwgLmJsay00dDVvOSAubGVhZC1zdWJ0aXRsZXsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7dGV4dC10cmFuc2Zvcm06bm9uZTttYXJnaW46MDsKfQouYmxrLTR0NW85IC5sZWFkLWtpY2tlcntmb250LXdlaWdodDo3MDA7fQouYmxrLTR0NW85IC5sZWFkLXN1YnRpdGxle2ZvbnQtd2VpZ2h0OjYwMDt9Ci8qIFRhbWHxby9pbnRlcmxpbmVhZG8vY29sb3IgZGUgYW50ZXTtdHVsbyB5IHN1YnTtdHVsbyBlbiBEZXNrICh2YWxvcmVzIHBvcgogICBkZWZlY3RvIGRlbCBibG9xdWU7IGVsIG92ZXJyaWRlIGRlIE3zdmlsIHZhIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLAogICB5YSBxdWUgZWwgSFRNTCBleHBvcnRhZG8gZXMgcmVzcG9uc2l2ZSB5IG5vIGRlcGVuZGUgZGUgcXXpIHZpc3RhIHR1dmllcmFzCiAgIHNlbGVjY2lvbmFkYSBlbiBlbCBnZXN0b3IgYWwgZXhwb3J0YXIvY29waWFyKS4gKi8KLmJsay00dDVvOSAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci5ibGstNHQ1bzkgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci8qIHRleHQtd3JhcDpiYWxhbmNlICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGVsIGdlc3RvciAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgZXNhIHJlZ2xhKTogcmVwYXJ0ZSBsYXMKICAgbO1uZWFzIGRlbCB0aXR1bGFyIGRlIGZvcm1hIG3hcyB1bmlmb3JtZSBkZW50cm8gZGUgY2FkYSBkaXNwb3NpdGl2bywgc2luCiAgIHByZXRlbmRlciBpZ3VhbGFyIGVsIG76bWVybyBkZSBs7W5lYXMgZW50cmUgcGxhdGFmb3JtYXMgZGlzdGludGFzLiAqLwouYmxrLTR0NW85IC5sZWFkLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6MTttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO3RleHQtd3JhcDpiYWxhbmNlO30KLyogVGl0dWxhciBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YSAodmVyIGJ1aWxkU2NvcGVkSFRNTCk6CiAgIHNlIGdlbmVyYW4gbG9zIGRvcyB0ZXh0b3MgKERlc2svTfN2aWwpIHkgYXF17SBzZSBtdWVzdHJhIHNvbG8gdW5vIHNlZ/puIGVsCiAgIGFuY2hvIHJlYWwgZGVsIGNvbnRlbmVkb3IgJiM4MjEyOyBlbCBtaXNtbyBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgeWEgdXNhIGVsCiAgIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbyBwYXJhIGFkYXB0YXJzZSBzaW4gZGVwZW5kZXIgZGUgSlMuICovCi5ibGstNHQ1bzkgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIEFudGV07XR1bG8vc3VidO10dWxvIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhOiBtaXNtbwogICBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciAodmVyIGFycmliYSkuICovCi5ibGstNHQ1bzkgLmxlYWQta2lja2VyLW1vYmlsZSwgLmJsay00dDVvOSAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogVGl0dWxhciBkZSBub3RpY2lhIHJlbGFjaW9uYWRhIChjb2x1bW5hKSBjb24gdGV4dG8gcHJvcGlvIGVuIE3zdmlsICh2ZXIKICAgaXRlbS50aXRsZU1vYmlsZSBlbiBidWlsZENvbHVtbkl0ZW1UaXRsZUhUTUwpOiBtaXNtbyBtZWNhbmlzbW8gZGUKICAgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciBwcmluY2lwYWwgZGUgYXJyaWJhLiAqLwouYmxrLTR0NW85IC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQouYmxrLTR0NW85IC5hdXRob3ItbGFiZWx7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOnJpZ2h0O2Rpc3BsYXk6YmxvY2t9Ci5ibGstNHQ1bzkgLmNvbHVtbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjt9Ci5ibGstNHQ1bzkgLmNvbHVtbi1pdGVte2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstNHQ1bzkgLnRodW1ie3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjQvMztiYWNrZ3JvdW5kOiNlZWU7b3ZlcmZsb3c6aGlkZGVufQouYmxrLTR0NW85IC50aHVtYiBpbWcsCi5ibGstNHQ1bzkgLnRodW1iIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLmJsay00dDVvOSAudGh1bWIgLnBsYXktc3F1YXJlLAouYmxrLTR0NW85IC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjVweDsgbGVmdDo1cHg7CiAgaW5saW5lLXNpemU6MjVweDtibG9jay1zaXplOjI1cHg7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtZ3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7CiAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogIGN1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLCB0cmFuc2Zvcm0gLjEyczsKICB6LWluZGV4OjI7IGFuaW1hdGlvbjpibGstNHQ1bzktYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay00dDVvOSAudGh1bWIgLnBsYXktc3F1YXJlOjpiZWZvcmUsCi5ibGstNHQ1bzkgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjZweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIG1hcmdpbi1sZWZ0OjJweDsKfQouYmxrLTR0NW85IC50aHVtYiAucGxheS1zcXVhcmU6aG92ZXIsCi5ibGstNHQ1bzkgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOmhvdmVyeyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC44NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOyB9Ci5ibGstNHQ1bzkgLnN0YWNrLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS4xNWVtO21hcmdpbjowO2NvbG9yOiMyYzNlNTM7fQouYmxrLTR0NW85IC5zdGFjay1hdXRob3J7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1ib29rIixzYW5zLXNlcmlmO2NvbG9yOiM4Mjg1OTU7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjExcHg7bGV0dGVyLXNwYWNpbmc6MDt0ZXh0LWFsaWduOnJpZ2h0O30KLyogU2luIGVzdGEgcmVnbGEgZWwgYXV0b3IgcXVlZGEgcGVnYWRvIGp1c3RvIGRlYmFqbyBkZWwgdGl0dWxhciBlbiB2ZXogZGUKICAgYWJham8gZGUgbGEgdGFyamV0YTogLm1vZC1zdGFjayBuZWNlc2l0YSBzZXIgZmxleC1jb2x1bW4gY29uCiAgIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIHBhcmEgcXVlIGVsIGh1ZWNvIHNvYnJhbnRlIChjdWFuZG8gbGEKICAgdGFyamV0YSBjcmVjZSBt4XMgcXVlIHN1IGNvbnRlbmlkbywgdmVyIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jaykKICAgbeFzIGFiYWpvKSBlbXB1amUgZWwgYXV0b3IgaGFjaWEgZWwgYm9yZGUgaW5mZXJpb3IuICovCi5ibGstNHQ1bzkgLm1vZC1zdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZsZXg6MSAxIGF1dG87fQovKiBFc3RpbG8gImZvdG8gcGVxdWXxYSArIHRpdHVsYXIiOiBmb3RvIDQ6MyBhIGxhIGl6cXVpZXJkYSwgdGV4dG8gYSBsYSBkZXJlY2hhLiAqLwouYmxrLTR0NW85IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tbGVmdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExMHB4IDFmcjtnYXA6MTBweDt9Ci8qIEVzdGlsbyAic29sbyB0ZXh0byIgKHBvciBkZWZlY3RvKTogZWwgYXV0b3Igc2UgcG9zaWNpb25hIGVuIGFic29sdXRvLAogICBhbmNsYWRvIGEgbGEgZXNxdWluYSBpbmZlcmlvciBkZXJlY2hhIGRlIGxhIHRhcmpldGEgKGlndWFsIHF1ZSBlbCBwbGF5IGRlCiAgIGxhcyBtaW5pYXR1cmFzKSwgZW4gdmV6IGRlIGRlcGVuZGVyIGRlIHF1ZSBlbCBibG9xdWUgZGUgdGV4dG8gdGVuZ2EgaHVlY28KICAgZGUgc29icmEgcGFyYSBlbXB1amFybG8gYWJham8gY29uIGZsZXhib3ggJiM4MjEyOyBjb24gdO10dWxvcyBkZSAyLTMgbO1uZWFzIGVzZQogICBodWVjbyBubyBleGlzdGUgeSBlbCBhdXRvciBudW5jYSBsbGVnYWJhIGEgYmFqYXIuIHBhZGRpbmctYm90dG9tIGVuCiAgIGxlZnQtYm9keSByZXNlcnZhIGVsIGVzcGFjaW8gcGFyYSBxdWUgZWwgdO10dWxvIG5vIHNlIHNvbGFwZSBjb24g6WwuICovCi5ibGstNHQ1bzkgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5sZWZ0LWJvZHl7cGFkZGluZy1ib3R0b206MzNweDt9Ci5ibGstNHQ1bzkgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5zdGFjay1hdXRob3J7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDtib3R0b206MTBweDttYXJnaW4tdG9wOjA7fQouYmxrLTR0NW85IC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9Ci5ibGstNHQ1bzkgLmxlZnQtcGxheXsKICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTogNHB4Owp9Ci5ibGstNHQ1bzkgLmxlZnQtcGxheTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7Cn0KLmJsay00dDVvOSAucmVsYXRlZC1saXZlLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGRjUwNTA7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGRjUwNTA7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstNHQ1bzkgLnJlbGF0ZWQtZWRpdG9yaWFsLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGQUIxMjE7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGQUIxMjE7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstNHQ1bzkgLnBsYXktYnV0dG9uewogIC8qIEFuY2hvL2FsdG8gZmlqb3MgZW4gdmV6IGRlIGFzcGVjdC1yYXRpbzoxLzEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhIChlbAogICAgIGPhbGN1bG8gZGUgInNocmluay10by1maXQiIHBhcmEgdW4gPGJ1dHRvbj4gZW4gYWJzb2x1dG8gc2luIHRhbWHxbwogICAgIGV4cGztY2l0byBubyBlcyBmaWFibGUgZW50cmUgbW90b3JlczsgZW4gV2ViS2l0L2lPUyBkYWJhIHVuIHJlY3Thbmd1bG8KICAgICB2ZXJ0aWNhbCBlc3RyZWNo7XNpbW8gZW4gdmV6IGRlIHVuIGN1YWRyYWRvKS4gKi8KICBhcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7CiAgcG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4OwogIGlubGluZS1zaXplOjM0cHg7YmxvY2stc2l6ZTozNHB4OwogIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEycHg7CiAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQyKTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4OwogIGN1cnNvcjpwb2ludGVyO3otaW5kZXg6MjthbmltYXRpb246YmxrLTR0NW85LWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstNHQ1bzkgLnBsYXktYnV0dG9uLnBvcy10b3AtcmlnaHR7dG9wOjEwcHg7cmlnaHQ6MTBweDtsZWZ0OmF1dG87Ym90dG9tOmF1dG87fQouYmxrLTR0NW85IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnR7Ym90dG9tOjEwcHg7bGVmdDoxMHB4O3RvcDphdXRvO3JpZ2h0OmF1dG87fQouYmxrLTR0NW85IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLXJpZ2h0e2JvdHRvbToxMHB4O3JpZ2h0OjEwcHg7dG9wOmF1dG87bGVmdDphdXRvO30KLyogQ29uIGVsIHRleHRvIChsZWFkLWJvZHkpIGEgbGEgaXpxdWllcmRhIG8gbGEgZGVyZWNoYSwgZXNlIGJsb3F1ZSBzb2xhcGEKICAgMzBweCBkZWwgbGFkbyBkZSBsYSBmb3RvL3btZGVvIHBlZ2FkbyBhIOlsICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstNHQ1bzkgLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9uLnBvcy10b3AtbGVmdCwKLmJsay00dDVvOSAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0eyBsZWZ0OjQwcHg7IH0KLmJsay00dDVvOSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLnBsYXktYnV0dG9uLnBvcy10b3AtcmlnaHQsCi5ibGstNHQ1bzkgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLXJpZ2h0eyByaWdodDo0MHB4OyB9Ci8qIFBvc2ljafNuICdib3R0b20nIHBvciBkZWZlY3RvOiBlbCBsZWFkLWJvZHkgc29sYXBhIDMwcHggc29icmUgZWwgYm9yZGUKICAgSU5GRVJJT1IgZGUgbGEgZm90by927WRlbyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgY29uICdib3R0b20tZnVsbCcKICAgbmkgY29uICdsZWZ0Jy8ncmlnaHQnIChhanVzdGUgaG9yaXpvbnRhbCBwcm9waW8sIHZlciBhcnJpYmEpLiAqLwouYmxrLTR0NW85IC5sZWFkOm5vdCgubGVhZC1ib2R5LWxlZnQpOm5vdCgubGVhZC1ib2R5LXJpZ2h0KTpub3QoLmxlYWQtYm9keS1ib3R0b20tZnVsbCkgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdCwKLmJsay00dDVvOSAubGVhZDpub3QoLmxlYWQtYm9keS1sZWZ0KTpub3QoLmxlYWQtYm9keS1yaWdodCk6bm90KC5sZWFkLWJvZHktYm90dG9tLWZ1bGwpIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NDBweDsgfQouYmxrLTR0NW85IC5wbGF5LWJ1dHRvbiAucGxheS1pY29uewogIGlubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjEwcHggc29saWQgI2ZmZjtib3JkZXItdG9wOjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjZweCBzb2xpZCB0cmFuc3BhcmVudDsKfQouYmxrLTR0NW85IC5wbGF5LWJ1dHRvbiAucGxheS10ZXh0e2Rpc3BsYXk6bm9uZTt9CgovKiBUaXR1bGFyZXMgYW5pbWFkb3MgKGNhcGEgYWx0ZXJuYXRpdmEgc29icmUgbGVhZC1tZWRpYSkgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYQogICBoZXJyYW1pZW50YS4gQ2FkYSB0aXR1bGFyIHRpZW5lIHN1IHByb3BpYSBwb3NpY2nzbiAoY2xhc2UgcG9zLSosIHZlcgogICBidWlsZFNjb3BlZEhUTUwpIHkgc2UgcmV2ZWxhIGztbmVhIHBvciBs7W5lYSAodW5hIHZleiBtZWRpZGFzIHN1cyBs7W5lYXMKICAgcmVhbGVzIHBvciBlbCBzY3JpcHQgc3RhbmRhbG9uZSwgdmVyIGJ1aWxkQW5pbUhlYWRsaW5lc1NjcmlwdCkgY29uIHVuYQogICBjYWphIGRlIGZvbmRvIGRldHLhcyBkZSBjYWRhIGztbmVhIHkgdW4gZmFkZSBkZSBvcGFjaWRhZCBlbnRyZSB0aXR1bGFyZXMuICovCi5ibGstNHQ1bzkgLmxlYWQtYW5pbS1oZWFkbGluZXN7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICB6LWluZGV4OjQ7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKfQouYmxrLTR0NW85IC5sZWFkLWFuaW0taGVhZGxpbmV7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgbGVmdDoxNXB4OwogIG9wYWNpdHk6MDsKfQouYmxrLTR0NW85IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBib3R0b206NjBweDsgfQouYmxrLTR0NW85IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0eyB0b3A6NjBweDsgfQouYmxrLTR0NW85IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0eyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgfQouYmxrLTR0NW85IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay00dDVvOSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGstNHQ1bzkgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBsZWZ0OmF1dG87IHJpZ2h0OjE1cHg7IH0KLmJsay00dDVvOSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHR7IHRvcDo2MHB4OyB9Ci5ibGstNHQ1bzkgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0eyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgfQouYmxrLTR0NW85IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgYm90dG9tOjYwcHg7IH0KLyogQ29uIGVsIHRleHRvIChsZWFkLWJvZHkpIGEgbGEgaXpxdWllcmRhIG8gbGEgZGVyZWNoYSwgZXNlIGJsb3F1ZSBzb2xhcGEKICAgMzBweCBkZWwgbGFkbyBkZSBsYSBmb3RvL3btZGVvIHBlZ2FkbyBhIOlsICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstNHQ1bzkgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnQsCi5ibGstNHQ1bzkgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnQsCi5ibGstNHQ1bzkgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLTR0NW85IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGstNHQ1bzkgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay00dDVvOSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyByaWdodDo0MHB4OyB9Ci5ibGstNHQ1bzkgLmxlYWQtYW5pbS1oZWFkbGluZS5pcy1hY3RpdmV7IG9wYWNpdHk6MTsgfQouYmxrLTR0NW85IC5sZWFkLWFuaW0tbGluZXsKICBwb3NpdGlvbjpyZWxhdGl2ZTsKICBkaXNwbGF5OnRhYmxlOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjsKICBmb250LXdlaWdodDo5MDA7CiAgY29sb3I6I2ZmZjsKICBwYWRkaW5nOjJweCA4cHg7CiAgY2xpcC1wYXRoOmluc2V0KDAgMTAwJSAwIDApOwogIG9wYWNpdHk6MTsKICB0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBlYXNlOwp9Ci5ibGstNHQ1bzkgLmxlYWQtYW5pbS1saW5lLmlzLWhpZGluZ3sgb3BhY2l0eTowOyB9Ci8qIFNvbGFwZSBkZSAxcHggZW50ZXJhIGVudHJlIGztbmVhcyBwYXJhIGNlcnJhciBlbCBoaWxvIGRlIHN1Yi1w7XhlbCBxdWUKICAgcHVlZGUgcXVlZGFyIGVudHJlIHN1cyBjYWphcyBkZSBmb25kbyAocmVkb25kZW8gZGUgYWx0dXJhcyBmcmFjY2lvbmFyaWFzKSAmIzgyMTI7CiAgIHZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstNHQ1bzkgLmxlYWQtYW5pbS1saW5lICsgLmxlYWQtYW5pbS1saW5lewogIG1hcmdpbi10b3A6LTFweDsKfQouYmxrLTR0NW85IC5sZWFkLWFuaW0tbGluZTpmaXJzdC1jaGlsZHsgcGFkZGluZy10b3A6NnB4OyB9Ci5ibGstNHQ1bzkgLmxlYWQtYW5pbS1saW5lOmxhc3QtY2hpbGR7IHBhZGRpbmctYm90dG9tOjZweDsgfQouYmxrLTR0NW85IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGstNHQ1bzkgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay00dDVvOSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHQgLmxlYWQtYW5pbS1saW5leyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6MDsgfQouYmxrLTR0NW85IC5sZWFkLWFuaW0taGVhZGxpbmVzLmlzLXBvc2l0aXZlIC5sZWFkLWFuaW0tbGluZXsgY29sb3I6IzBFMTExQTsgfQouYmxrLTR0NW85IC5sZWFkLWFuaW0tbGluZS1iZ3sgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OjA7IHotaW5kZXg6LTE7IH0KLmJsay00dDVvOSAubGVhZC1hbmltLWxpbmUtdGV4dHsgcG9zaXRpb246cmVsYXRpdmU7IH0KQGtleWZyYW1lcyBibGstNHQ1bzktYW5pbS1saW5lLXJldmVhbHsgdG97IGNsaXAtcGF0aDppbnNldCgwIDAgMCAwKTsgfSB9CgovKiBBbmNob3Igb3ZlcmxheSBmb3IgZnVsbCBjbGlja2FibGUgbGVhZCAqLwouYmxrLTR0NW85IC5sZWFkLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjF9CgovKiBIb3ZlciBvcGFjaXR5IGFuaW1hdGlvbiAqLwouYmxrLTR0NW85IC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAouYmxrLTR0NW85IC5jb2x1bW4taXRlbTpob3ZlcntvcGFjaXR5Oi44fQovKiBGb3RvIHByaW5jaXBhbCAoZmFsbGJhY2svc2luZ2xlKSBvIGNhcnJ1c2VsIGRlIGZvdG9zOiBvcGFjaWRhZCAwLjkgYWwKICAgcGFzYXIgZWwgcmF0824gcG9yIGxhIHRhcmpldGEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4KICAgbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTm8gYXBsaWNhIGEgdu1kZW8gbmkgYWwKICAgY29tcGFyYWRvciBhbnRlcy9kZXNwdelzLiAqLwouYmxrLTR0NW85IC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLTR0NW85IC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay00dDVvOSAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IGltZywKLmJsay00dDVvOSAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6Ljk7fQovKiBFbiBlbCBhbmNobyBt83ZpbCAobWlzbW8gQGNvbnRhaW5lciBxdWUgZWwgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvKSBubwogICBhcGxpY2EgZXN0YSBhbmltYWNp824gZGUgb3BhY2lkYWQgc29icmUgbGEgbm90aWNpYSBwcmluY2lwYWw6IHZhIERFU1BVyVMKICAgZGUgbGEgcmVnbGEgZ2VuZXJhbCBkZSBhcnJpYmEgKG1pc21hIGVzcGVjaWZpY2lkYWQpIHBhcmEgcG9kZXIgZ2FuYXJsZS4KICAgT21pdGlkbywgaWd1YWwgcXVlIGVsIGJsb3F1ZSBkZSB0aXBvZ3JhZu1hIGRlIGFycmliYSwgbWllbnRyYXMgbGEKICAgc2ltdWxhY2nzbiBkZSBhbmNobyBlc3TpIGFjdGl2YSAodmVyIGxlYWRXaWR0aFByZXZpZXcpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstNHQ1bzkgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCiAgLmJsay00dDVvOSAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IGltZywKICAuYmxrLTR0NW85IC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eToxO30KfQoKLyogQW5pbWFjafNuIGNvbXBhcnRpZGEgcGxheSBwcmluY2lwYWwgKyBjdWFkcmFkb3MgcGxheSBhcGlsYWRhcyAqLwpAa2V5ZnJhbWVzIGJsay00dDVvOS1ibGlua3sKICAwJSwxMDAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjcpfQogIDUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LDAuOSl9Cn0KLyogQ2FiZWNlcmEgKi8KLmJsay00dDVvOSAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjoxMHB4IDAgMzJweH0KLmJsay00dDVvOSAuZm5kLWxpbmVhe2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTo1cHg7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW4tdG9wOi0xOHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICMzMzM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzMzM30KLmJsay00dDVvOSAuc2VjdGlvbi10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDtsaW5lLWhlaWdodDoxLjI7bGV0dGVyLXNwYWNpbmc6LTFweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6NHB4IDEzcHg7Ym9yZGVyOjFweCBzb2xpZCAjMEUxMTFBO3RyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTtmb250LXNpemU6NDJweDtjb2xvcjojMEUxMTFBO30KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsuYmxrLTR0NW85IC5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmc6MCAxMHB4fX0KLyogQ2FiZWNlcmEgJiM4MjEyOyBEaXNl8W8gMiAodGl0dWxhciArIGNhcnJ1c2VsIGRlIGxvZ290aXBvcykgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay00dDVvOSAuaGVhZGVyMntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzBFMTExQTt9Ci8qIGFsaWduLXNlbGY6ZmxleC1lbmQgZmlqYSBlbCB0aXR1bGFyIFNJRU1QUkUgYSAxNXB4IGRlIGxhIGztbmVhIHNlcGFyYWRvcmEKICAgZW4gRGVzayAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MKICAgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTR0NW85IC5oZWFkZXIyLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmbGV4OjEgMSA1MCU7bWluLWlubGluZS1zaXplOjA7YWxpZ24tc2VsZjpmbGV4LWVuZDt9Ci5ibGstNHQ1bzkgLmhlYWRlcjItdGFnc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleDowIDAgYXV0bzt9Ci8qIE1pc21vIHRhbWHxby90aXBvZ3JhZu1hIHF1ZSAubGVhZC1leGNsdXNpdmUtdGFnIChsYSBkZSBsYSBub3RpY2lhCiAgIHByaW5jaXBhbCkgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZQogICBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay00dDVvOSAuaGVhZGVyMi1jYXQtdGFnLAouYmxrLTR0NW85IC5oZWFkZXIyLWV4Y2x1c2l2ZS10YWd7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6LjhlbTtsZXR0ZXItc3BhY2luZzouNXB4O3BhZGRpbmc6MnB4IDhweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiNmZmY7fQouYmxrLTR0NW85IC5oZWFkZXIyLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay00dDVvOSAuaGVhZGVyMi10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZTozNnB4O2xpbmUtaGVpZ2h0OjEuMDU7Y29sb3I6IzBFMTExQTttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWluLWlubGluZS1zaXplOjA7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO30KLyogU2VwYXJhY2nzbiBkZSAxMHB4IGVudHJlIGVsIHRleHRvIGRlIHBhdHJvY2luaW8geSBlbCBsb2dvIGVuIERlc2sgJiM4MjEyOyBlbgogICBN83ZpbCBzaWd1ZSBzaW4gc2VwYXJhY2nzbiAoZ2FwOjAsIHZlciBAY29udGFpbmVyIG3hcyBhYmFqbykuICovCi5ibGstNHQ1bzkgLmhlYWRlcjItbG9nb3Mtd3JhcHtmbGV4OjAgMCBhdXRvO21heC1pbmxpbmUtc2l6ZTo1MCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7fQovKiBFdGlxdWV0YSBvcGNpb25hbCBqdW50byBhbCBjYXJydXNlbCBkZSBsb2dvcyAocC5lai4gIlBhdHJvY2luYWRvIHBvcjoiKSAmIzgyMTI7CiAgIHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsCiAgIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLTR0NW85IC5oZWFkZXIyLWxvZ29zLWxhYmVse2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojNjY3O3doaXRlLXNwYWNlOm5vd3JhcDt9Ci5ibGstNHQ1bzkgLmhlYWRlcjItbG9nb3N7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTYwcHg7YmxvY2stc2l6ZTo1MHB4O2ZsZXgtc2hyaW5rOjA7fQouYmxrLTR0NW85IC5oZWFkZXIyLWxvZ29zIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO21hcmdpbjphdXRvO21heC1pbmxpbmUtc2l6ZToxMDAlO21heC1ibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb250YWluO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjdzIGVhc2UtaW4tb3V0O30KLmJsay00dDVvOSAuaGVhZGVyMi1sb2dvcyBpbWcuaXMtYWN0aXZle29wYWNpdHk6MTt9Ci8qIElndWFsIHF1ZSBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsOiBwb3IgZGViYWpvIGRlIGVzdGUgYW5jaG8gc2UKICAgaW50ZW50YSBwcmltZXJvIDEgU09MQSBGSUxBIChldGlxdWV0YXMrdGl0dWxhciBqdW50byBhbCBsb2dvLCBpZ3VhbCBxdWUKICAgZW4gRGVzaywgYSB0YW1h8W8gcmVkdWNpZG8pLiBFbCBibG9xdWUgZGUgbG9nb3MgbWFudGllbmUgU0lFTVBSRSBzdQogICBkaXNwb3NpY2nzbiBlbiBjb2x1bW5hIChldGlxdWV0YSBkZSBwYXRyb2NpbmlvIGVuY2ltYSBkZWwgbG9nbywKICAgYWxpbmVhZG9zIGEgbGEgZGVyZWNoYSwgc2luIHNlcGFyYWNp824pIHRhbnRvIGVuIGVzdGEgZmlsYSD6bmljYSBjb21vIGVuCiAgIGVsIHJlc2d1YXJkbyBkZSBhYmFqby4gU2kgZWwgdGl0dWxhciwgc3VtYWRvIGFsIGFuY2hvIGRlIGxhcyBldGlxdWV0YXMKICAgYWN0aXZhcyAoY2F0ZWdvcu1hIHkvbyBleGNsdXNpdmEsIHNpIGxhcyBoYXkpLCBzdXBlcmEgZWwgNTUlIGRlbCBhbmNobwogICB0b3RhbCBkZSBsYSBjYWJlY2VyYSAoY2FkYSB1bm8gbWVkaWRvIGEgdW5hIHNvbGEgbO1uZWEpLCBlbCBzY3JpcHQKICAgc3RhbmRhbG9uZSBh8WFkaWRvIGFsIGZpbmFsIGRlIGVzdGUgSFRNTCAodmVyCiAgIGJ1aWxkSGVhZGVyMlN0YWNraW5nU2NyaXB0KCkpIGxvIGRldGVjdGEgbWlkaWVuZG8gc3UgYW5jaG8gbmF0dXJhbAogICB5IGHxYWRlIGxhIGNsYXNlICJoZWFkZXIyLXN0YWNrZWQiOiBlbCBibG9xdWUgZGUKICAgbG9nb3Mgc3ViZSBlbnRvbmNlcyBhIHN1IHByb3BpYSBmaWxhIChhbGluZWFkbyBhIGxhIGRlcmVjaGEpIHkKICAgdGl0dWxhcitldGlxdWV0YXMgYmFqYW4gYSBsYSBmaWxhIGRlIGFiYWpvLCBhIGFuY2hvIGNvbXBsZXRvICYjODIxMjsgbWlzbW8KICAgbGF5b3V0IGRlIDIgZmlsYXMgcXVlIGhhYu1hIGFudGVzIHNpZW1wcmUgcG9yIGRlYmFqbyBkZSBlc3RlIGJyZWFrcG9pbnQsCiAgIGFob3JhIHNvbG8gY29tbyByZXNndWFyZG8uIERlbnRybyBkZSBlc2UgcmVzZ3VhcmRvLCBjb24gZXRpcXVldGEocykgZWwKICAgdGl0dWxhciBwYXNhIGFkZW3hcyBhIHN1IFBST1BJQSBmaWxhIGEgYW5jaG8gY29tcGxldG8sIGRlYmFqbyBkZSBsYSBmaWxhIGRlIGV0aXF1ZXRhcyAodmVyCiAgICIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnQiIG3hcyBhYmFqbykuIEVsIGxvZ28gc2UgcmVkdWNlIHVuIDIwJQogICAoMTYweDUwICYjODU5NDsgMTI4eDQwKS4KICAgYWxpZ24tc2VsZjpmbGV4LWVuZCBlbiBoZWFkZXIyLWxlZnQgZmlqYSBlbCB0aXR1bGFyIFNJRU1QUkUgYSBsb3MgMTBweAogICBkZWwgcGFkZGluZy1ib3R0b20gcmVzcGVjdG8gYSBsYSBs7W5lYSBzZXBhcmFkb3JhICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlCiAgIGVuIERlc2sgKHZlciBoZWFkZXIyLWxlZnQgbeFzIGFycmliYSk6IHNpbiBlc3RvLCBhbCBzZXIgZWwgYmxvcXVlIGRlCiAgIGxvZ29zIG3hcyBhbHRvIHF1ZSBlbCB0aXR1bGFyLCBlbCBjZW50cmFkbyB2ZXJ0aWNhbCBkZWwgcm93IGRlamFiYSB1bgogICBodWVjbyBtYXlvciBlbnRyZSBlbCB0aXR1bGFyIHkgbGEgbO1uZWEuIEVsIGJsb3F1ZSBkZSBsb2dvcyBzaWd1ZQogICBjZW50cmFkbyAoc2luIGVzZSBvdmVycmlkZSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay00dDVvOSAuaGVhZGVyMntmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWJvdHRvbToxMHB4O30KICAuYmxrLTR0NW85IC5oZWFkZXIyLWxlZnR7b3JkZXI6MTthbGlnbi1zZWxmOmZsZXgtZW5kO30KICAuYmxrLTR0NW85IC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MjthbGlnbi1zZWxmOmNlbnRlcjttYXgtaW5saW5lLXNpemU6bm9uZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjA7fQogIC5ibGstNHQ1bzkgLmhlYWRlcjItbG9nb3N7aW5saW5lLXNpemU6MTI4cHg7YmxvY2stc2l6ZTo0MHB4O30KICAuYmxrLTR0NW85IC5oZWFkZXIyLXRpdGxle2ZvbnQtc2l6ZToyN3B4O30KICAuYmxrLTR0NW85IC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9CiAgLmJsay00dDVvOSAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdHtvcmRlcjoyO2FsaWduLXNlbGY6ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDtnYXA6NXB4O30KICAuYmxrLTR0NW85IC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjE7bWF4LWlubGluZS1zaXplOjEwMCU7YWxpZ24tc2VsZjpmbGV4LWVuZDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjA7fQogIC8qIFJlc2d1YXJkbyBpbnRlcm1lZGlvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YTogc29sbyBlbCB0aXR1bGFyIGJhamEgYSBzdQogICAgIHByb3BpYSBmaWxhIGEgYW5jaG8gY29tcGxldG8gY3VhbmRvIGxhcyBldGlxdWV0YXMgU80gY2FiZW4ganVudG8gYWwKICAgICBsb2dvIHBlcm8gZWwgdGl0dWxhciBuby4gaGVhZGVyMi1sZWZ0IHBhc2EgZGUgZmlsYSBhIGNvbHVtbmEKICAgICAoZXRpcXVldGFzIGFycmliYSwgdGl0dWxhciBkZWJham8pIHkgcmVjdXBlcmEgYWxpZ24tc2VsZjphdXRvIHBhcmEKICAgICBjZW50cmFyc2UgdmVydGljYWxtZW50ZSBjb250cmEgZWwgbG9nbyAoYWxpZ24tc2VsZjpjZW50ZXIgZGUgbGEgcmVnbGEKICAgICBiYXNlIGRlIC5oZWFkZXIyLWxvZ29zLXdyYXAsIGFycmliYSksIGlndWFsIHF1ZSBlbiBlbCByZXN0byBkZSBlc3RhZG9zLiAqLwogIC5ibGstNHQ1bzkgLmhlYWRlcjIuaGVhZGVyMi10aXRsZS1iZWxvdyAuaGVhZGVyMi1sZWZ0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLXNlbGY6YXV0bztnYXA6NXB4O30KfQoKLyogRXN0aWxvICJmb3RvIGdyYW5kZSArIHRpdHVsYXIiOiBmb3RvIDE2OjkgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbyAmIzgyMTI7IGVsZWdpYmxlCiAgIHBvciBub3RpY2lhIGRlc2RlIGVsIGdlc3Rvci4gTm8gc2UgcmVzdHJpbmdlIGNvbiBAY29udGFpbmVyIHBvcnF1ZQogICAuY29sdW1uLWl0ZW0geWEgZXMgYmxvY2sgcG9yIGRlZmVjdG8gKGVsIHRodW1iIHkgZWwgdGV4dG8gc2UgYXBpbGFuIHNvbG9zCiAgIHNpbiBt4XMgYWp1c3RlKSwgYXPtIHF1ZSBlbCBkaXNl8W8gZnVuY2lvbmEgaWd1YWwgZGUgYmllbiBlbiBjdWFscXVpZXIKICAgYW5jaG8sIERlc2sgbyBN83ZpbC4gKi8KLmJsay00dDVvOSAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay00dDVvOSAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAudGh1bWJ7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLTR0NW85IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXdlaWdodDo5MDA7fQovKiBFbiBN83ZpbCBlbCB0aXR1bGFyIGRlIGVzdGUgZGlzZfFvIHNlIG11ZXN0cmEgbeFzIGdyYW5kZSAoMS41cmVtIGVuIHZleiBkZQogICBsb3MgMS4ycmVtIGRlIERlc2spICYjODIxMjsgbWlzbWEgZXNwZWNpZmljaWRhZCAoMyBjbGFzZXMpIHF1ZSBsYSByZWdsYSBkZQogICBhcnJpYmE7IGFsIGlyIERFU1BVyVMgZW4gZWwgQ1NTIGdhbmEgcG9yIG9yZGVuIGRlIGNhc2NhZGEuIFNlIHVzYSBlbAogICBicmVha3BvaW50IGRlIDQ4MHB4IChlbCBkZSB0aXBvZ3JhZu1hIGVuIGVzdGEgYXBwLCBubyBlbCBkZSA4NjBweCBxdWUgYXF17QogICBzb2xvIGdvYmllcm5hIGVsIGFwaWxhZG8gZGUgY29sdW1uYXMpIHBhcmEgcXVlIGNvaW5jaWRhIGNvbiBlbCByZXN0byBkZQogICBjYW1iaW9zIGRlIHRleHRvL3RhbWHxbyBwb3IgdmlzdGEuIE5vIGFmZWN0YSBhbCByZXNndWFyZG8gZGUgMiBjb2x1bW5hcyBlbgogICBt83ZpbCAobW9iLWdyaWQpLCBt4XMgZXNwZWPtZmljbyAoMThweCwgdmVyIG3hcyBhcnJpYmEpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstNHQ1bzkgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1zaXplOjEuNXJlbTt9Cn0KLyogRXN0aWxvICJCbG9xdWUgbWVkaWEiICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstNHQ1bzkgLm1lZGlhLWJsb2NrLW1lZGlhe2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOmF1dG87fQouYmxrLTR0NW85IC5tZWRpYS1ibG9jay13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7fQouYmxrLTR0NW85IC5tZWRpYS1ibG9jay1pZnJhbWUtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLTR0NW85IC5tZWRpYS1ibG9jay1pZnJhbWUtd3JhcCBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay00dDVvOSAuY29sdW1uLWl0ZW0ubGF5b3V0LW1lZGlhLWJsb2Nre2JvcmRlcjpub25lO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2Jsb2NrLXNpemU6YXV0bztmbGV4OjAgMCBhdXRvO30KLmJsay00dDVvOSAuY29sdW1uLWl0ZW06bm90KC5sYXlvdXQtbWVkaWEtYmxvY2spe2ZsZXg6MSAxIGF1dG87fQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iYmxrLTR0NW85Ij4KICAKICA8bWFpbiBjbGFzcz0icGFnZSI+CiAgICAKICAgIDxhcnRpY2xlIGNsYXNzPSJsZWFkIGxlYWQtYm9keS1sZWZ0Ij4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1tZWRpYSI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9lbC1lcnRtcy1kZWwtYXZlLWEtc2V2aWxsYS1oYS1zaWRvLWluc3RhbGFkby1wb3ItdW5hLWVtcHJlc2EtcXVlLWJlbGdpY2EtYXBhcnRvLXBvci1yaWVzZ29zLWltcG9ydGFudGVzLWRlLXNlZ3VyaWRhZC0yMDI2MTEwOC0xMjM3MjctY2RhMTU2LmpwZyIgYWx0PSJFbCBFUlRNUyBkZWwgQVZFIGEgU2V2aWxsYSBoYSBzaWRvIGluc3RhbGFkbyBwb3IgdW5hIGVtcHJlc2EgcXVlIELpbGdpY2EgYXBhcnTzIHBvciAmcXVvdDtyaWVzZ29zIGltcG9ydGFudGVzIGRlIHNlZ3VyaWRhZCZxdW90OyIgbG9hZGluZz0iZWFnZXIiIGZldGNocHJpb3JpdHk9ImhpZ2giIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1vdmVybGF5IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE0LDE3LDI2LDAuMDApOyI+PC9kaXY+CiAgICAgICAgCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icGxheS1idXR0b24gcG9zLXRvcC1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjxkaXYgY2xhc3M9InBsYXktaWNvbiI+PC9kaXY+PHNwYW4gY2xhc3M9InBsYXktdGV4dCI+UGxheTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keSIgc3R5bGU9ImJhY2tncm91bmQ6IzAwQTdGRjsiPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZWFkLWNhdCIgc3R5bGU9ImJhY2tncm91bmQ6I2ZmZjtjb2xvcjojMDBBN0ZGIj5FU1BB0UE8L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5LW1haW4iPgogICAgICAgICAgCiAgICAgICAgICA8aDIgY2xhc3M9ImxlYWQtdGl0bGUiPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLWRlc2siPkVsIEVSVE1TIGRlbCBBVkUgYSBTZXZpbGxhIGhhIHNpZG8gaW5zdGFsYWRvIHBvciB1bmEgZW1wcmVzYSBxdWUgQulsZ2ljYSBhcGFydPMgcG9yICZxdW90O3JpZXNnb3MgaW1wb3J0YW50ZXMgZGUgc2VndXJpZGFkJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLW1vYmlsZSI+RWwgRVJUTVMgZGVsIEFWRSBhIFNldmlsbGEgaGEgc2lkbyBpbnN0YWxhZG8gcG9yIHVuYSBlbXByZXNhIHF1ZSBC6WxnaWNhIGFwYXJ08yBwb3IgJnF1b3Q7cmllc2dvcyBpbXBvcnRhbnRlcyBkZSBzZWd1cmlkYWQmcXVvdDs8L3NwYW4+PC9oMj4KICAgICAgICAgIAogICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGhvci1sYWJlbCI+QWxiYSBNYXJ07W48L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YSBjbGFzcz0ibGVhZC1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvZXJ0bXMtZGVsLWF2ZS1zZXZpbGxhLXNpZG8taW5zdGFsYWRvLWVtcHJlc2EtcXVlLWJlbGdpY2EtYXBhcnRvLXJpZXNnb3MtaW1wb3J0YW50ZXMtc2VndXJpZGFkLTIwNzE5MjI0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgdGl0bGU9IkVsIEVSVE1TIGRlbCBBVkUgYSBTZXZpbGxhIGhhIHNpZG8gaW5zdGFsYWRvIHBvciB1bmEgZW1wcmVzYSBxdWUgQulsZ2ljYSBhcGFydPMgcG9yICZxdW90O3JpZXNnb3MgaW1wb3J0YW50ZXMgZGUgc2VndXJpZGFkJnF1b3Q7IiBhcmlhLWxhYmVsPSJFbCBFUlRNUyBkZWwgQVZFIGEgU2V2aWxsYSBoYSBzaWRvIGluc3RhbGFkbyBwb3IgdW5hIGVtcHJlc2EgcXVlIELpbGdpY2EgYXBhcnTzIHBvciAmcXVvdDtyaWVzZ29zIGltcG9ydGFudGVzIGRlIHNlZ3VyaWRhZCZxdW90OyI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstNHQ1bzkgLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
      CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLXNpYnYye21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay1zaWJ2MiBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstc2lidjIgLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstc2lidjIgLnBhZ2UgLmNvbHVtbntvcmRlcjozfQouYmxrLXNpYnYyIC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstc2lidjJ7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay1zaWJ2MiAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstc2lidjIgLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLXNpYnYyIC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstc2lidjIgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay1zaWJ2MiAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86MTYvOSAhaW1wb3J0YW50O30KICAuYmxrLXNpYnYyIC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay1zaWJ2MiAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay1zaWJ2MiAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLXNpYnYyIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGstc2lidjIgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay1zaWJ2MiAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay1zaWJ2MiAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGstc2lidjIgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay1zaWJ2MiAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay1zaWJ2MiAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstc2lidjIgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstc2lidjIgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstc2lidjIgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay1zaWJ2MiAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLXNpYnYyIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLXNpYnYyIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstc2lidjIgLmxlYWQtdGl0bGV7Zm9udC1zaXplOjIuMDVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIC5ibGstc2lidjIgLmxlYWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1zaWJ2MiAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1zaWJ2MiAuYXV0aG9yLWxhYmVse3RleHQtYWxpZ246Y2VudGVyO30KICAuYmxrLXNpYnYyIC5sZWFkLWtpY2tlci1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLXNpYnYyIC5sZWFkLWtpY2tlci1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1zaWJ2MiAubGVhZC1zdWJ0aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLXNpYnYyIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLXNpYnYyIC5sZWFkLWFuaW0taGVhZGxpbmVze2ZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMDIgIWltcG9ydGFudDt9CiAgCiAgLmJsay1zaWJ2MiAucmVsYXRlZC10aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLXNpYnYyIC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KfQouYmxrLXNpYnYyIC5sZWFke2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZjtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLXNpYnYyIC5sZWFkLW1lZGlhe3Bvc2l0aW9uOnJlbGF0aXZlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW59Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZTogYWx0byBmaWpvIGVuIHDteGVsZXMgZW4gdmV6IGRlIGxhIHByb3BvcmNp824gZGUKICAgYXJyaWJhICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBzdGF0ZS5sZWFkLmlmcmFtZUhlaWdodCkgJiM4MjEyOyBlbAogICB2YWxvciBkZSBN83ZpbCBzZSBzb2JyZXNjcmliZSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywgaWd1YWwgcXVlIGVsCiAgIHJlc3RvIGRlIG92ZXJyaWRlcyByZXNwb25zaXZlIGRlIGVzdGUgSFRNTCBleHBvcnRhZG8uICovCi5ibGstc2lidjIgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2FzcGVjdC1yYXRpbzpub25lO2Jsb2NrLXNpemU6NjQwcHg7fQouYmxrLXNpYnYyIC5sZWFkLW1lZGlhIGltZywKLmJsay1zaWJ2MiAubGVhZC1tZWRpYSB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci8qIENhcnJ1c2VsIGRlIGZvdG9zIGRlIGZvbmRvIGNvbiBlZmVjdG8gS2VuIEJ1cm5zICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuCiAgIExhIGR1cmFjafNuIGRlIGxhcyBhbmltYWNpb25lcyAoNnMpIGNvaW5jaWRlIGNvbgogICBMRUFEX0NBUk9VU0VMX0lOVEVSVkFMLCBxdWUgdGFtYmnpbiBnb2JpZXJuYSBlbCBzY3JpcHQgZGUgcm90YWNp824KICAgKGJ1aWxkTGVhZENhcm91c2VsU2NyaXB0KSBh8WFkaWRvIGFsIGZpbmFsIGRlbCBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay1zaWJ2MiAubGVhZC1jYXJvdXNlbHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstc2lidjIgLmxlYWQtY2Fyb3VzZWwtc2xpZGV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDEuNXMgZWFzZTt9Ci5ibGstc2lidjIgLmxlYWQtY2Fyb3VzZWwtc2xpZGUuaXMtYWN0aXZle29wYWNpdHk6MTt6LWluZGV4OjE7fQouYmxrLXNpYnYyIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7fQouYmxrLXNpYnYyIC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChvZGQpIGltZ3thbmltYXRpb246YmxrLXNpYnYyLWtlbmJ1cm5zLWEgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQouYmxrLXNpYnYyIC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChldmVuKSBpbWd7YW5pbWF0aW9uOmJsay1zaWJ2Mi1rZW5idXJucy1iIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KQGtleWZyYW1lcyBibGstc2lidjIta2VuYnVybnMtYXsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gfQpAa2V5ZnJhbWVzIGJsay1zaWJ2Mi1rZW5idXJucy1ieyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoNCUsMyUpO30gfQovKiBDb24gdW5hIPpuaWNhIGZvdG8gKHNpbiByb3RhY2nzbiBwb3NpYmxlKSBzZSBhcGxpY2EgdW4gem9vbSBpbi9vdXQgZW4KICAgYnVjbGUgaW5maW5pdG8gZW4gdmV6IGRlbCByZWNvcnJpZG8g+m5pY28gKGZvcndhcmRzKSBkZSBhcnJpYmEuICovCi5ibGstc2lidjIgLmxlYWQtY2Fyb3VzZWwuaXMtc2luZ2xlIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3thbmltYXRpb246YmxrLXNpYnYyLWtlbmJ1cm5zLWxvb3AgMTRzIGVhc2UtaW4tb3V0IGluZmluaXRlO30KQGtleWZyYW1lcyBibGstc2lidjIta2VuYnVybnMtbG9vcHsgMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gNTAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSAxMDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IH0KLyogQ29tcGFyYWRvciBhbnRlcy9kZXNwdelzIChkZXNsaXphZG9yKSAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXNpYnYyIC5sZWFkLWNvbXBhcmV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7dG91Y2gtYWN0aW9uOm5vbmU7ei1pbmRleDoyO30KLmJsay1zaWJ2MiAubGVhZC1jb21wYXJlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7b2JqZWN0LXBvc2l0aW9uOmNlbnRlcjtkaXNwbGF5OmJsb2NrO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLWRyYWc6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay1zaWJ2MiAubGVhZC1jb21wYXJlLWJlZm9yZXtjbGlwLXBhdGg6aW5zZXQoMCA1MCUgMCAwKTt3aWxsLWNoYW5nZTpjbGlwLXBhdGg7fQouYmxrLXNpYnYyIC5sZWFkLWNvbXBhcmUtcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTttYXJnaW46MDtvcGFjaXR5OjA7Y3Vyc29yOmV3LXJlc2l6ZTt9Ci5ibGstc2lidjIgLmxlYWQtY29tcGFyZS1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDo1MCU7aW5saW5lLXNpemU6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6Mjt9Ci5ibGstc2lidjIgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtpbmxpbmUtc2l6ZToycHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC4yNSk7fQouYmxrLXNpYnYyIC5sZWFkLWNvbXBhcmUtaGFuZGxlOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDotMTVweDtpbmxpbmUtc2l6ZTozMHB4O2Jsb2NrLXNpemU6MzBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmYgdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnPjxnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMDAwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCc+PHBhdGggZD0nTTggNiBMNCAxMCBMOCAxNCcvPjxwYXRoIGQ9J00xMiA2IEwxNiAxMCBMMTIgMTQnLz48L2c+PC9zdmc+IikgY2VudGVyLzE2cHggMTZweCBuby1yZXBlYXQ7Ym94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwuMjUpO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMjUpO30KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE1pc21vIHotaW5kZXg6MiBxdWUKICAgLmxlYWQtY29tcGFyZSwgcG9yIGVsIG1pc21vIG1vdGl2byAoZ2FuYXJsZSBhIC5sZWFkLWxpbmspLiAqLwouYmxrLXNpYnYyIC5sZWFkLWlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt6LWluZGV4OjI7fQouYmxrLXNpYnYyIC5sZWFkLWlmcmFtZSBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay1zaWJ2MiAubGVhZC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLXNpYnYyIC5sZWFkLWJvZHl7cGFkZGluZzowcHggMjBweCAyMHB4IDIwcHg7O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjY7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGlubGluZS1zaXplOjk1JTsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi10b3A6LTMwcHg7IGJhY2tncm91bmQ6IzBFMTExQTsgZmxleDoxIDEgYXV0bzt9Ci8qIEFudGV07XR1bG8vdGl0dWxhci9zdWJ07XR1bG8vYXV0b3IgY2VudHJhZG9zIGVuIHZlcnRpY2FsIGRlbnRybyBkZWwgYWx0bwogICBzb2JyYW50ZSBiYWpvIGxhIGNhdGVnb3LtYSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLXNpYnYyIC5sZWFkLWJvZHktbWFpbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2lubGluZS1zaXplOjEwMCU7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjA7fQovKiBBcGFyaWVuY2lhIG5lZ2F0aXZhIChwb3IgZGVmZWN0bykgdnMuIHBvc2l0aXZhIGRlIGxhIGNhamEgZGUgdGl0dWxhciAmIzgyMTI7IHZlcgogICBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLXNpYnYyIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtYm9keXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO30KLmJsay1zaWJ2MiAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLXRpdGxlLAouYmxrLXNpYnYyIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmF1dGhvci1sYWJlbHtjb2xvcjojMEUxMTFBO30KLyogUG9zaWNp824gZGVsIGxlYWQtYm9keSByZXNwZWN0byBhbCBsZWFkLW1lZGlhICgnbGVmdCcvJ3JpZ2h0JykgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1zaWJ2MiAubGVhZC5sZWFkLWJvZHktbGVmdCwKLmJsay1zaWJ2MiAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246cm93O2FzcGVjdC1yYXRpbzoyLjk2Mjk2Mjk2Mjk2Mjk2Mzt9Ci5ibGstc2lidjIgLmxlYWQubGVhZC1ib2R5LWxlZnR7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fQouYmxrLXNpYnYyIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAouYmxrLXNpYnYyIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjAgMCA2MCU7fQouYmxrLXNpYnYyIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCi5ibGstc2lidjIgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDowIDAgY2FsYyg0MCUgKyAzMHB4KTtpbmxpbmUtc2l6ZTphdXRvO21hcmdpbi10b3A6MDtibG9jay1zaXplOmNhbGMoMTAwJSAtIDQycHgpO2FsaWduLXNlbGY6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30KLmJsay1zaWJ2MiAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi0zMHB4O30KLmJsay1zaWJ2MiAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDotMzBweDttYXJnaW4tcmlnaHQ6MDt9Ci8qIFBvc2ljafNuICdib3R0b20tZnVsbCcgZGVsIGxlYWQtYm9keSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBpbmxpbmUtc2l6ZQogICBlbiB2ZXogZGUgd2lkdGggcG9yIGVsIG1pc21vIG1vdGl2byBxdWUgZWwgcmVzdG8gZGUgZXN0ZSBibG9xdWUgKGV2aXRhcgogICBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUwogICBkaXJlY3RhbWVudGUpLiAqLwouYmxrLXNpYnYyIC5sZWFkLmxlYWQtYm9keS1ib3R0b20tZnVsbCAubGVhZC1ib2R5ewogIGlubGluZS1zaXplOjEwMCU7CiAgbWFyZ2luOjA7CiAgcGFkZGluZy10b3A6MzBweDsKICBwYWRkaW5nLWJvdHRvbTozMHB4OwogIGJvcmRlcjpub25lOwp9Ci8qIEV0aXF1ZXRhIGRlIGV4Y2x1c2l2YSAobyB0ZXh0byBwZXJzb25hbGl6YWRvKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXNpYnYyIC5sZWFkLWV4Y2x1c2l2ZS10YWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4O3otaW5kZXg6MztkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2xldHRlci1zcGFjaW5nOjAuNXB4O3BhZGRpbmc6MnB4IDhweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOi44ZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7fQovKiBTZWxlY3RvciBjb24gMyBjbGFzZXMgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoIi5sZWFkLW1lZGlhIGltZyIgdGFtYmnpbgogICBtYXRjaGVhIGVzdGUgPGltZz4geSBsZSBnYW5hYmEgZW4gZXNwZWNpZmljaWRhZCkuICovCi5ibGstc2lidjIgLmxlYWQtZXhjbHVzaXZlLXRhZyAubGVhZC1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstc2lidjIgLmxlYWQtY2F0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpza2V3WSgtNmRlZyk7bWFyZ2luLXRvcDotMTVweDttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLXNpYnYyIC5sZWFkLWtpY2tlciwgLmJsay1zaWJ2MiAubGVhZC1zdWJ0aXRsZXsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7dGV4dC10cmFuc2Zvcm06bm9uZTttYXJnaW46MDsKfQouYmxrLXNpYnYyIC5sZWFkLWtpY2tlcntmb250LXdlaWdodDo3MDA7fQouYmxrLXNpYnYyIC5sZWFkLXN1YnRpdGxle2ZvbnQtd2VpZ2h0OjYwMDt9Ci8qIFRhbWHxby9pbnRlcmxpbmVhZG8vY29sb3IgZGUgYW50ZXTtdHVsbyB5IHN1YnTtdHVsbyBlbiBEZXNrICh2YWxvcmVzIHBvcgogICBkZWZlY3RvIGRlbCBibG9xdWU7IGVsIG92ZXJyaWRlIGRlIE3zdmlsIHZhIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLAogICB5YSBxdWUgZWwgSFRNTCBleHBvcnRhZG8gZXMgcmVzcG9uc2l2ZSB5IG5vIGRlcGVuZGUgZGUgcXXpIHZpc3RhIHR1dmllcmFzCiAgIHNlbGVjY2lvbmFkYSBlbiBlbCBnZXN0b3IgYWwgZXhwb3J0YXIvY29waWFyKS4gKi8KLmJsay1zaWJ2MiAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci5ibGstc2lidjIgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci8qIHRleHQtd3JhcDpiYWxhbmNlICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGVsIGdlc3RvciAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgZXNhIHJlZ2xhKTogcmVwYXJ0ZSBsYXMKICAgbO1uZWFzIGRlbCB0aXR1bGFyIGRlIGZvcm1hIG3hcyB1bmlmb3JtZSBkZW50cm8gZGUgY2FkYSBkaXNwb3NpdGl2bywgc2luCiAgIHByZXRlbmRlciBpZ3VhbGFyIGVsIG76bWVybyBkZSBs7W5lYXMgZW50cmUgcGxhdGFmb3JtYXMgZGlzdGludGFzLiAqLwouYmxrLXNpYnYyIC5sZWFkLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6MTttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO3RleHQtd3JhcDpiYWxhbmNlO30KLyogVGl0dWxhciBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YSAodmVyIGJ1aWxkU2NvcGVkSFRNTCk6CiAgIHNlIGdlbmVyYW4gbG9zIGRvcyB0ZXh0b3MgKERlc2svTfN2aWwpIHkgYXF17SBzZSBtdWVzdHJhIHNvbG8gdW5vIHNlZ/puIGVsCiAgIGFuY2hvIHJlYWwgZGVsIGNvbnRlbmVkb3IgJiM4MjEyOyBlbCBtaXNtbyBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgeWEgdXNhIGVsCiAgIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbyBwYXJhIGFkYXB0YXJzZSBzaW4gZGVwZW5kZXIgZGUgSlMuICovCi5ibGstc2lidjIgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIEFudGV07XR1bG8vc3VidO10dWxvIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhOiBtaXNtbwogICBtZWNhbmlzbW8gZGUgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciAodmVyIGFycmliYSkuICovCi5ibGstc2lidjIgLmxlYWQta2lja2VyLW1vYmlsZSwgLmJsay1zaWJ2MiAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogVGl0dWxhciBkZSBub3RpY2lhIHJlbGFjaW9uYWRhIChjb2x1bW5hKSBjb24gdGV4dG8gcHJvcGlvIGVuIE3zdmlsICh2ZXIKICAgaXRlbS50aXRsZU1vYmlsZSBlbiBidWlsZENvbHVtbkl0ZW1UaXRsZUhUTUwpOiBtaXNtbyBtZWNhbmlzbW8gZGUKICAgQGNvbnRhaW5lciBxdWUgZWwgdGl0dWxhciBwcmluY2lwYWwgZGUgYXJyaWJhLiAqLwouYmxrLXNpYnYyIC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQouYmxrLXNpYnYyIC5hdXRob3ItbGFiZWx7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOnJpZ2h0O2Rpc3BsYXk6YmxvY2t9Ci5ibGstc2lidjIgLmNvbHVtbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjt9Ci5ibGstc2lidjIgLmNvbHVtbi1pdGVte2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstc2lidjIgLnRodW1ie3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjQvMztiYWNrZ3JvdW5kOiNlZWU7b3ZlcmZsb3c6aGlkZGVufQouYmxrLXNpYnYyIC50aHVtYiBpbWcsCi5ibGstc2lidjIgLnRodW1iIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLmJsay1zaWJ2MiAudGh1bWIgLnBsYXktc3F1YXJlLAouYmxrLXNpYnYyIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjVweDsgbGVmdDo1cHg7CiAgaW5saW5lLXNpemU6MjVweDtibG9jay1zaXplOjI1cHg7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtZ3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7CiAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogIGN1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLCB0cmFuc2Zvcm0gLjEyczsKICB6LWluZGV4OjI7IGFuaW1hdGlvbjpibGstc2lidjItYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay1zaWJ2MiAudGh1bWIgLnBsYXktc3F1YXJlOjpiZWZvcmUsCi5ibGstc2lidjIgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjZweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIG1hcmdpbi1sZWZ0OjJweDsKfQouYmxrLXNpYnYyIC50aHVtYiAucGxheS1zcXVhcmU6aG92ZXIsCi5ibGstc2lidjIgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlOmhvdmVyeyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC44NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOyB9Ci5ibGstc2lidjIgLnN0YWNrLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS4xNWVtO21hcmdpbjowO2NvbG9yOiMyYzNlNTM7fQouYmxrLXNpYnYyIC5zdGFjay1hdXRob3J7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1ib29rIixzYW5zLXNlcmlmO2NvbG9yOiM4Mjg1OTU7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc2l6ZTouOHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjExcHg7bGV0dGVyLXNwYWNpbmc6MDt0ZXh0LWFsaWduOnJpZ2h0O30KLyogU2luIGVzdGEgcmVnbGEgZWwgYXV0b3IgcXVlZGEgcGVnYWRvIGp1c3RvIGRlYmFqbyBkZWwgdGl0dWxhciBlbiB2ZXogZGUKICAgYWJham8gZGUgbGEgdGFyamV0YTogLm1vZC1zdGFjayBuZWNlc2l0YSBzZXIgZmxleC1jb2x1bW4gY29uCiAgIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIHBhcmEgcXVlIGVsIGh1ZWNvIHNvYnJhbnRlIChjdWFuZG8gbGEKICAgdGFyamV0YSBjcmVjZSBt4XMgcXVlIHN1IGNvbnRlbmlkbywgdmVyIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jaykKICAgbeFzIGFiYWpvKSBlbXB1amUgZWwgYXV0b3IgaGFjaWEgZWwgYm9yZGUgaW5mZXJpb3IuICovCi5ibGstc2lidjIgLm1vZC1zdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZsZXg6MSAxIGF1dG87fQovKiBFc3RpbG8gImZvdG8gcGVxdWXxYSArIHRpdHVsYXIiOiBmb3RvIDQ6MyBhIGxhIGl6cXVpZXJkYSwgdGV4dG8gYSBsYSBkZXJlY2hhLiAqLwouYmxrLXNpYnYyIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tbGVmdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExMHB4IDFmcjtnYXA6MTBweDt9Ci8qIEVzdGlsbyAic29sbyB0ZXh0byIgKHBvciBkZWZlY3RvKTogZWwgYXV0b3Igc2UgcG9zaWNpb25hIGVuIGFic29sdXRvLAogICBhbmNsYWRvIGEgbGEgZXNxdWluYSBpbmZlcmlvciBkZXJlY2hhIGRlIGxhIHRhcmpldGEgKGlndWFsIHF1ZSBlbCBwbGF5IGRlCiAgIGxhcyBtaW5pYXR1cmFzKSwgZW4gdmV6IGRlIGRlcGVuZGVyIGRlIHF1ZSBlbCBibG9xdWUgZGUgdGV4dG8gdGVuZ2EgaHVlY28KICAgZGUgc29icmEgcGFyYSBlbXB1amFybG8gYWJham8gY29uIGZsZXhib3ggJiM4MjEyOyBjb24gdO10dWxvcyBkZSAyLTMgbO1uZWFzIGVzZQogICBodWVjbyBubyBleGlzdGUgeSBlbCBhdXRvciBudW5jYSBsbGVnYWJhIGEgYmFqYXIuIHBhZGRpbmctYm90dG9tIGVuCiAgIGxlZnQtYm9keSByZXNlcnZhIGVsIGVzcGFjaW8gcGFyYSBxdWUgZWwgdO10dWxvIG5vIHNlIHNvbGFwZSBjb24g6WwuICovCi5ibGstc2lidjIgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5sZWZ0LWJvZHl7cGFkZGluZy1ib3R0b206MzNweDt9Ci5ibGstc2lidjIgLmNvbHVtbi1pdGVtLmxheW91dC10aXRsZS1vbmx5IC5zdGFjay1hdXRob3J7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDtib3R0b206MTBweDttYXJnaW4tdG9wOjA7fQouYmxrLXNpYnYyIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MS4xNTtjb2xvcjojMmMzZTUzO21hcmdpbjowO3RleHQtYWxpZ246bGVmdDt9Ci5ibGstc2lidjIgLmxlZnQtcGxheXsKICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogIGJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMGE3ZmY7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTogNHB4Owp9Ci5ibGstc2lidjIgLmxlZnQtcGxheTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7Cn0KLmJsay1zaWJ2MiAucmVsYXRlZC1saXZlLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGRjUwNTA7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGRjUwNTA7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstc2lidjIgLnJlbGF0ZWQtZWRpdG9yaWFsLXRhZ3sKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo2MDA7CiAgZm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjAuODtsZXR0ZXItc3BhY2luZzouM3B4O2NvbG9yOiNGQUIxMjE7CiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNGQUIxMjE7CiAgcGFkZGluZzozcHggNHB4IDJweCA0cHg7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwp9Ci5ibGstc2lidjIgLnBsYXktYnV0dG9uewogIC8qIEFuY2hvL2FsdG8gZmlqb3MgZW4gdmV6IGRlIGFzcGVjdC1yYXRpbzoxLzEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhIChlbAogICAgIGPhbGN1bG8gZGUgInNocmluay10by1maXQiIHBhcmEgdW4gPGJ1dHRvbj4gZW4gYWJzb2x1dG8gc2luIHRhbWHxbwogICAgIGV4cGztY2l0byBubyBlcyBmaWFibGUgZW50cmUgbW90b3JlczsgZW4gV2ViS2l0L2lPUyBkYWJhIHVuIHJlY3Thbmd1bG8KICAgICB2ZXJ0aWNhbCBlc3RyZWNo7XNpbW8gZW4gdmV6IGRlIHVuIGN1YWRyYWRvKS4gKi8KICBhcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7CiAgcG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4OwogIGlubGluZS1zaXplOjM0cHg7YmxvY2stc2l6ZTozNHB4OwogIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEycHg7CiAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQyKTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4OwogIGN1cnNvcjpwb2ludGVyO3otaW5kZXg6MjthbmltYXRpb246YmxrLXNpYnYyLWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstc2lidjIgLnBsYXktYnV0dG9uLnBvcy10b3AtcmlnaHR7dG9wOjEwcHg7cmlnaHQ6MTBweDtsZWZ0OmF1dG87Ym90dG9tOmF1dG87fQouYmxrLXNpYnYyIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnR7Ym90dG9tOjEwcHg7bGVmdDoxMHB4O3RvcDphdXRvO3JpZ2h0OmF1dG87fQouYmxrLXNpYnYyIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLXJpZ2h0e2JvdHRvbToxMHB4O3JpZ2h0OjEwcHg7dG9wOmF1dG87bGVmdDphdXRvO30KLyogQ29uIGVsIHRleHRvIChsZWFkLWJvZHkpIGEgbGEgaXpxdWllcmRhIG8gbGEgZGVyZWNoYSwgZXNlIGJsb3F1ZSBzb2xhcGEKICAgMzBweCBkZWwgbGFkbyBkZSBsYSBmb3RvL3btZGVvIHBlZ2FkbyBhIOlsICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstc2lidjIgLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9uLnBvcy10b3AtbGVmdCwKLmJsay1zaWJ2MiAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0eyBsZWZ0OjQwcHg7IH0KLmJsay1zaWJ2MiAubGVhZC5sZWFkLWJvZHktcmlnaHQgLnBsYXktYnV0dG9uLnBvcy10b3AtcmlnaHQsCi5ibGstc2lidjIgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLXJpZ2h0eyByaWdodDo0MHB4OyB9Ci8qIFBvc2ljafNuICdib3R0b20nIHBvciBkZWZlY3RvOiBlbCBsZWFkLWJvZHkgc29sYXBhIDMwcHggc29icmUgZWwgYm9yZGUKICAgSU5GRVJJT1IgZGUgbGEgZm90by927WRlbyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgY29uICdib3R0b20tZnVsbCcKICAgbmkgY29uICdsZWZ0Jy8ncmlnaHQnIChhanVzdGUgaG9yaXpvbnRhbCBwcm9waW8sIHZlciBhcnJpYmEpLiAqLwouYmxrLXNpYnYyIC5sZWFkOm5vdCgubGVhZC1ib2R5LWxlZnQpOm5vdCgubGVhZC1ib2R5LXJpZ2h0KTpub3QoLmxlYWQtYm9keS1ib3R0b20tZnVsbCkgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdCwKLmJsay1zaWJ2MiAubGVhZDpub3QoLmxlYWQtYm9keS1sZWZ0KTpub3QoLmxlYWQtYm9keS1yaWdodCk6bm90KC5sZWFkLWJvZHktYm90dG9tLWZ1bGwpIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NDBweDsgfQouYmxrLXNpYnYyIC5wbGF5LWJ1dHRvbiAucGxheS1pY29uewogIGlubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjEwcHggc29saWQgI2ZmZjtib3JkZXItdG9wOjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjZweCBzb2xpZCB0cmFuc3BhcmVudDsKfQouYmxrLXNpYnYyIC5wbGF5LWJ1dHRvbiAucGxheS10ZXh0e2Rpc3BsYXk6bm9uZTt9CgovKiBUaXR1bGFyZXMgYW5pbWFkb3MgKGNhcGEgYWx0ZXJuYXRpdmEgc29icmUgbGVhZC1tZWRpYSkgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYQogICBoZXJyYW1pZW50YS4gQ2FkYSB0aXR1bGFyIHRpZW5lIHN1IHByb3BpYSBwb3NpY2nzbiAoY2xhc2UgcG9zLSosIHZlcgogICBidWlsZFNjb3BlZEhUTUwpIHkgc2UgcmV2ZWxhIGztbmVhIHBvciBs7W5lYSAodW5hIHZleiBtZWRpZGFzIHN1cyBs7W5lYXMKICAgcmVhbGVzIHBvciBlbCBzY3JpcHQgc3RhbmRhbG9uZSwgdmVyIGJ1aWxkQW5pbUhlYWRsaW5lc1NjcmlwdCkgY29uIHVuYQogICBjYWphIGRlIGZvbmRvIGRldHLhcyBkZSBjYWRhIGztbmVhIHkgdW4gZmFkZSBkZSBvcGFjaWRhZCBlbnRyZSB0aXR1bGFyZXMuICovCi5ibGstc2lidjIgLmxlYWQtYW5pbS1oZWFkbGluZXN7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICB6LWluZGV4OjQ7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0taGVhZGxpbmV7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgbGVmdDoxNXB4OwogIG9wYWNpdHk6MDsKfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBib3R0b206NjBweDsgfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0eyB0b3A6NjBweDsgfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0eyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay1zaWJ2MiAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGstc2lidjIgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBsZWZ0OmF1dG87IHJpZ2h0OjE1cHg7IH0KLmJsay1zaWJ2MiAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHR7IHRvcDo2MHB4OyB9Ci5ibGstc2lidjIgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0eyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgYm90dG9tOjYwcHg7IH0KLyogQ29uIGVsIHRleHRvIChsZWFkLWJvZHkpIGEgbGEgaXpxdWllcmRhIG8gbGEgZGVyZWNoYSwgZXNlIGJsb3F1ZSBzb2xhcGEKICAgMzBweCBkZWwgbGFkbyBkZSBsYSBmb3RvL3btZGVvIHBlZ2FkbyBhIOlsICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstc2lidjIgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnQsCi5ibGstc2lidjIgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnQsCi5ibGstc2lidjIgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLXNpYnYyIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGstc2lidjIgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay1zaWJ2MiAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyByaWdodDo0MHB4OyB9Ci5ibGstc2lidjIgLmxlYWQtYW5pbS1oZWFkbGluZS5pcy1hY3RpdmV7IG9wYWNpdHk6MTsgfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0tbGluZXsKICBwb3NpdGlvbjpyZWxhdGl2ZTsKICBkaXNwbGF5OnRhYmxlOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjsKICBmb250LXdlaWdodDo5MDA7CiAgY29sb3I6I2ZmZjsKICBwYWRkaW5nOjJweCA4cHg7CiAgY2xpcC1wYXRoOmluc2V0KDAgMTAwJSAwIDApOwogIG9wYWNpdHk6MTsKICB0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBlYXNlOwp9Ci5ibGstc2lidjIgLmxlYWQtYW5pbS1saW5lLmlzLWhpZGluZ3sgb3BhY2l0eTowOyB9Ci8qIFNvbGFwZSBkZSAxcHggZW50ZXJhIGVudHJlIGztbmVhcyBwYXJhIGNlcnJhciBlbCBoaWxvIGRlIHN1Yi1w7XhlbCBxdWUKICAgcHVlZGUgcXVlZGFyIGVudHJlIHN1cyBjYWphcyBkZSBmb25kbyAocmVkb25kZW8gZGUgYWx0dXJhcyBmcmFjY2lvbmFyaWFzKSAmIzgyMTI7CiAgIHZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstc2lidjIgLmxlYWQtYW5pbS1saW5lICsgLmxlYWQtYW5pbS1saW5lewogIG1hcmdpbi10b3A6LTFweDsKfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0tbGluZTpmaXJzdC1jaGlsZHsgcGFkZGluZy10b3A6NnB4OyB9Ci5ibGstc2lidjIgLmxlYWQtYW5pbS1saW5lOmxhc3QtY2hpbGR7IHBhZGRpbmctYm90dG9tOjZweDsgfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGstc2lidjIgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay1zaWJ2MiAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHQgLmxlYWQtYW5pbS1saW5leyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6MDsgfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0taGVhZGxpbmVzLmlzLXBvc2l0aXZlIC5sZWFkLWFuaW0tbGluZXsgY29sb3I6IzBFMTExQTsgfQouYmxrLXNpYnYyIC5sZWFkLWFuaW0tbGluZS1iZ3sgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OjA7IHotaW5kZXg6LTE7IH0KLmJsay1zaWJ2MiAubGVhZC1hbmltLWxpbmUtdGV4dHsgcG9zaXRpb246cmVsYXRpdmU7IH0KQGtleWZyYW1lcyBibGstc2lidjItYW5pbS1saW5lLXJldmVhbHsgdG97IGNsaXAtcGF0aDppbnNldCgwIDAgMCAwKTsgfSB9CgovKiBBbmNob3Igb3ZlcmxheSBmb3IgZnVsbCBjbGlja2FibGUgbGVhZCAqLwouYmxrLXNpYnYyIC5sZWFkLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjF9CgovKiBIb3ZlciBvcGFjaXR5IGFuaW1hdGlvbiAqLwouYmxrLXNpYnYyIC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAouYmxrLXNpYnYyIC5jb2x1bW4taXRlbTpob3ZlcntvcGFjaXR5Oi44fQovKiBGb3RvIHByaW5jaXBhbCAoZmFsbGJhY2svc2luZ2xlKSBvIGNhcnJ1c2VsIGRlIGZvdG9zOiBvcGFjaWRhZCAwLjkgYWwKICAgcGFzYXIgZWwgcmF0824gcG9yIGxhIHRhcmpldGEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4KICAgbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTm8gYXBsaWNhIGEgdu1kZW8gbmkgYWwKICAgY29tcGFyYWRvciBhbnRlcy9kZXNwdelzLiAqLwouYmxrLXNpYnYyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLXNpYnYyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay1zaWJ2MiAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IGltZywKLmJsay1zaWJ2MiAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6Ljk7fQovKiBFbiBlbCBhbmNobyBt83ZpbCAobWlzbW8gQGNvbnRhaW5lciBxdWUgZWwgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvKSBubwogICBhcGxpY2EgZXN0YSBhbmltYWNp824gZGUgb3BhY2lkYWQgc29icmUgbGEgbm90aWNpYSBwcmluY2lwYWw6IHZhIERFU1BVyVMKICAgZGUgbGEgcmVnbGEgZ2VuZXJhbCBkZSBhcnJpYmEgKG1pc21hIGVzcGVjaWZpY2lkYWQpIHBhcmEgcG9kZXIgZ2FuYXJsZS4KICAgT21pdGlkbywgaWd1YWwgcXVlIGVsIGJsb3F1ZSBkZSB0aXBvZ3JhZu1hIGRlIGFycmliYSwgbWllbnRyYXMgbGEKICAgc2ltdWxhY2nzbiBkZSBhbmNobyBlc3TpIGFjdGl2YSAodmVyIGxlYWRXaWR0aFByZXZpZXcpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstc2lidjIgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCiAgLmJsay1zaWJ2MiAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IGltZywKICAuYmxrLXNpYnYyIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eToxO30KfQoKLyogQW5pbWFjafNuIGNvbXBhcnRpZGEgcGxheSBwcmluY2lwYWwgKyBjdWFkcmFkb3MgcGxheSBhcGlsYWRhcyAqLwpAa2V5ZnJhbWVzIGJsay1zaWJ2Mi1ibGlua3sKICAwJSwxMDAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjcpfQogIDUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LDAuOSl9Cn0KLyogQ2FiZWNlcmEgKi8KLmJsay1zaWJ2MiAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjoxMHB4IDAgMzJweH0KLmJsay1zaWJ2MiAuZm5kLWxpbmVhe2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTo1cHg7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW4tdG9wOi0xOHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICMzMzM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzMzM30KLmJsay1zaWJ2MiAuc2VjdGlvbi10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDtsaW5lLWhlaWdodDoxLjI7bGV0dGVyLXNwYWNpbmc6LTFweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6NHB4IDEzcHg7Ym9yZGVyOjFweCBzb2xpZCAjMEUxMTFBO3RyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTtmb250LXNpemU6NDJweDtjb2xvcjojMEUxMTFBO30KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsuYmxrLXNpYnYyIC5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmc6MCAxMHB4fX0KLyogQ2FiZWNlcmEgJiM4MjEyOyBEaXNl8W8gMiAodGl0dWxhciArIGNhcnJ1c2VsIGRlIGxvZ290aXBvcykgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1zaWJ2MiAuaGVhZGVyMntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzBFMTExQTt9Ci8qIGFsaWduLXNlbGY6ZmxleC1lbmQgZmlqYSBlbCB0aXR1bGFyIFNJRU1QUkUgYSAxNXB4IGRlIGxhIGztbmVhIHNlcGFyYWRvcmEKICAgZW4gRGVzayAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MKICAgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXNpYnYyIC5oZWFkZXIyLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmbGV4OjEgMSA1MCU7bWluLWlubGluZS1zaXplOjA7YWxpZ24tc2VsZjpmbGV4LWVuZDt9Ci5ibGstc2lidjIgLmhlYWRlcjItdGFnc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleDowIDAgYXV0bzt9Ci8qIE1pc21vIHRhbWHxby90aXBvZ3JhZu1hIHF1ZSAubGVhZC1leGNsdXNpdmUtdGFnIChsYSBkZSBsYSBub3RpY2lhCiAgIHByaW5jaXBhbCkgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZQogICBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1zaWJ2MiAuaGVhZGVyMi1jYXQtdGFnLAouYmxrLXNpYnYyIC5oZWFkZXIyLWV4Y2x1c2l2ZS10YWd7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6LjhlbTtsZXR0ZXItc3BhY2luZzouNXB4O3BhZGRpbmc6MnB4IDhweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiNmZmY7fQouYmxrLXNpYnYyIC5oZWFkZXIyLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay1zaWJ2MiAuaGVhZGVyMi10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZTozNnB4O2xpbmUtaGVpZ2h0OjEuMDU7Y29sb3I6IzBFMTExQTttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWluLWlubGluZS1zaXplOjA7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO30KLyogU2VwYXJhY2nzbiBkZSAxMHB4IGVudHJlIGVsIHRleHRvIGRlIHBhdHJvY2luaW8geSBlbCBsb2dvIGVuIERlc2sgJiM4MjEyOyBlbgogICBN83ZpbCBzaWd1ZSBzaW4gc2VwYXJhY2nzbiAoZ2FwOjAsIHZlciBAY29udGFpbmVyIG3hcyBhYmFqbykuICovCi5ibGstc2lidjIgLmhlYWRlcjItbG9nb3Mtd3JhcHtmbGV4OjAgMCBhdXRvO21heC1pbmxpbmUtc2l6ZTo1MCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7fQovKiBFdGlxdWV0YSBvcGNpb25hbCBqdW50byBhbCBjYXJydXNlbCBkZSBsb2dvcyAocC5lai4gIlBhdHJvY2luYWRvIHBvcjoiKSAmIzgyMTI7CiAgIHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsCiAgIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXNpYnYyIC5oZWFkZXIyLWxvZ29zLWxhYmVse2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojNjY3O3doaXRlLXNwYWNlOm5vd3JhcDt9Ci5ibGstc2lidjIgLmhlYWRlcjItbG9nb3N7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTYwcHg7YmxvY2stc2l6ZTo1MHB4O2ZsZXgtc2hyaW5rOjA7fQouYmxrLXNpYnYyIC5oZWFkZXIyLWxvZ29zIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO21hcmdpbjphdXRvO21heC1pbmxpbmUtc2l6ZToxMDAlO21heC1ibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb250YWluO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjdzIGVhc2UtaW4tb3V0O30KLmJsay1zaWJ2MiAuaGVhZGVyMi1sb2dvcyBpbWcuaXMtYWN0aXZle29wYWNpdHk6MTt9Ci8qIElndWFsIHF1ZSBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsOiBwb3IgZGViYWpvIGRlIGVzdGUgYW5jaG8gc2UKICAgaW50ZW50YSBwcmltZXJvIDEgU09MQSBGSUxBIChldGlxdWV0YXMrdGl0dWxhciBqdW50byBhbCBsb2dvLCBpZ3VhbCBxdWUKICAgZW4gRGVzaywgYSB0YW1h8W8gcmVkdWNpZG8pLiBFbCBibG9xdWUgZGUgbG9nb3MgbWFudGllbmUgU0lFTVBSRSBzdQogICBkaXNwb3NpY2nzbiBlbiBjb2x1bW5hIChldGlxdWV0YSBkZSBwYXRyb2NpbmlvIGVuY2ltYSBkZWwgbG9nbywKICAgYWxpbmVhZG9zIGEgbGEgZGVyZWNoYSwgc2luIHNlcGFyYWNp824pIHRhbnRvIGVuIGVzdGEgZmlsYSD6bmljYSBjb21vIGVuCiAgIGVsIHJlc2d1YXJkbyBkZSBhYmFqby4gU2kgZWwgdGl0dWxhciwgc3VtYWRvIGFsIGFuY2hvIGRlIGxhcyBldGlxdWV0YXMKICAgYWN0aXZhcyAoY2F0ZWdvcu1hIHkvbyBleGNsdXNpdmEsIHNpIGxhcyBoYXkpLCBzdXBlcmEgZWwgNTUlIGRlbCBhbmNobwogICB0b3RhbCBkZSBsYSBjYWJlY2VyYSAoY2FkYSB1bm8gbWVkaWRvIGEgdW5hIHNvbGEgbO1uZWEpLCBlbCBzY3JpcHQKICAgc3RhbmRhbG9uZSBh8WFkaWRvIGFsIGZpbmFsIGRlIGVzdGUgSFRNTCAodmVyCiAgIGJ1aWxkSGVhZGVyMlN0YWNraW5nU2NyaXB0KCkpIGxvIGRldGVjdGEgbWlkaWVuZG8gc3UgYW5jaG8gbmF0dXJhbAogICB5IGHxYWRlIGxhIGNsYXNlICJoZWFkZXIyLXN0YWNrZWQiOiBlbCBibG9xdWUgZGUKICAgbG9nb3Mgc3ViZSBlbnRvbmNlcyBhIHN1IHByb3BpYSBmaWxhIChhbGluZWFkbyBhIGxhIGRlcmVjaGEpIHkKICAgdGl0dWxhcitldGlxdWV0YXMgYmFqYW4gYSBsYSBmaWxhIGRlIGFiYWpvLCBhIGFuY2hvIGNvbXBsZXRvICYjODIxMjsgbWlzbW8KICAgbGF5b3V0IGRlIDIgZmlsYXMgcXVlIGhhYu1hIGFudGVzIHNpZW1wcmUgcG9yIGRlYmFqbyBkZSBlc3RlIGJyZWFrcG9pbnQsCiAgIGFob3JhIHNvbG8gY29tbyByZXNndWFyZG8uIERlbnRybyBkZSBlc2UgcmVzZ3VhcmRvLCBjb24gZXRpcXVldGEocykgZWwKICAgdGl0dWxhciBwYXNhIGFkZW3hcyBhIHN1IFBST1BJQSBmaWxhIGEgYW5jaG8gY29tcGxldG8sIGRlYmFqbyBkZSBsYSBmaWxhIGRlIGV0aXF1ZXRhcyAodmVyCiAgICIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnQiIG3hcyBhYmFqbykuIEVsIGxvZ28gc2UgcmVkdWNlIHVuIDIwJQogICAoMTYweDUwICYjODU5NDsgMTI4eDQwKS4KICAgYWxpZ24tc2VsZjpmbGV4LWVuZCBlbiBoZWFkZXIyLWxlZnQgZmlqYSBlbCB0aXR1bGFyIFNJRU1QUkUgYSBsb3MgMTBweAogICBkZWwgcGFkZGluZy1ib3R0b20gcmVzcGVjdG8gYSBsYSBs7W5lYSBzZXBhcmFkb3JhICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlCiAgIGVuIERlc2sgKHZlciBoZWFkZXIyLWxlZnQgbeFzIGFycmliYSk6IHNpbiBlc3RvLCBhbCBzZXIgZWwgYmxvcXVlIGRlCiAgIGxvZ29zIG3hcyBhbHRvIHF1ZSBlbCB0aXR1bGFyLCBlbCBjZW50cmFkbyB2ZXJ0aWNhbCBkZWwgcm93IGRlamFiYSB1bgogICBodWVjbyBtYXlvciBlbnRyZSBlbCB0aXR1bGFyIHkgbGEgbO1uZWEuIEVsIGJsb3F1ZSBkZSBsb2dvcyBzaWd1ZQogICBjZW50cmFkbyAoc2luIGVzZSBvdmVycmlkZSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay1zaWJ2MiAuaGVhZGVyMntmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWJvdHRvbToxMHB4O30KICAuYmxrLXNpYnYyIC5oZWFkZXIyLWxlZnR7b3JkZXI6MTthbGlnbi1zZWxmOmZsZXgtZW5kO30KICAuYmxrLXNpYnYyIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MjthbGlnbi1zZWxmOmNlbnRlcjttYXgtaW5saW5lLXNpemU6bm9uZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjA7fQogIC5ibGstc2lidjIgLmhlYWRlcjItbG9nb3N7aW5saW5lLXNpemU6MTI4cHg7YmxvY2stc2l6ZTo0MHB4O30KICAuYmxrLXNpYnYyIC5oZWFkZXIyLXRpdGxle2ZvbnQtc2l6ZToyN3B4O30KICAuYmxrLXNpYnYyIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9CiAgLmJsay1zaWJ2MiAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdHtvcmRlcjoyO2FsaWduLXNlbGY6ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDtnYXA6NXB4O30KICAuYmxrLXNpYnYyIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjE7bWF4LWlubGluZS1zaXplOjEwMCU7YWxpZ24tc2VsZjpmbGV4LWVuZDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjA7fQogIC8qIFJlc2d1YXJkbyBpbnRlcm1lZGlvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YTogc29sbyBlbCB0aXR1bGFyIGJhamEgYSBzdQogICAgIHByb3BpYSBmaWxhIGEgYW5jaG8gY29tcGxldG8gY3VhbmRvIGxhcyBldGlxdWV0YXMgU80gY2FiZW4ganVudG8gYWwKICAgICBsb2dvIHBlcm8gZWwgdGl0dWxhciBuby4gaGVhZGVyMi1sZWZ0IHBhc2EgZGUgZmlsYSBhIGNvbHVtbmEKICAgICAoZXRpcXVldGFzIGFycmliYSwgdGl0dWxhciBkZWJham8pIHkgcmVjdXBlcmEgYWxpZ24tc2VsZjphdXRvIHBhcmEKICAgICBjZW50cmFyc2UgdmVydGljYWxtZW50ZSBjb250cmEgZWwgbG9nbyAoYWxpZ24tc2VsZjpjZW50ZXIgZGUgbGEgcmVnbGEKICAgICBiYXNlIGRlIC5oZWFkZXIyLWxvZ29zLXdyYXAsIGFycmliYSksIGlndWFsIHF1ZSBlbiBlbCByZXN0byBkZSBlc3RhZG9zLiAqLwogIC5ibGstc2lidjIgLmhlYWRlcjIuaGVhZGVyMi10aXRsZS1iZWxvdyAuaGVhZGVyMi1sZWZ0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLXNlbGY6YXV0bztnYXA6NXB4O30KfQoKLyogRXN0aWxvICJmb3RvIGdyYW5kZSArIHRpdHVsYXIiOiBmb3RvIDE2OjkgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbyAmIzgyMTI7IGVsZWdpYmxlCiAgIHBvciBub3RpY2lhIGRlc2RlIGVsIGdlc3Rvci4gTm8gc2UgcmVzdHJpbmdlIGNvbiBAY29udGFpbmVyIHBvcnF1ZQogICAuY29sdW1uLWl0ZW0geWEgZXMgYmxvY2sgcG9yIGRlZmVjdG8gKGVsIHRodW1iIHkgZWwgdGV4dG8gc2UgYXBpbGFuIHNvbG9zCiAgIHNpbiBt4XMgYWp1c3RlKSwgYXPtIHF1ZSBlbCBkaXNl8W8gZnVuY2lvbmEgaWd1YWwgZGUgYmllbiBlbiBjdWFscXVpZXIKICAgYW5jaG8sIERlc2sgbyBN83ZpbC4gKi8KLmJsay1zaWJ2MiAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay1zaWJ2MiAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAudGh1bWJ7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLXNpYnYyIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXdlaWdodDo5MDA7fQovKiBFbiBN83ZpbCBlbCB0aXR1bGFyIGRlIGVzdGUgZGlzZfFvIHNlIG11ZXN0cmEgbeFzIGdyYW5kZSAoMS41cmVtIGVuIHZleiBkZQogICBsb3MgMS4ycmVtIGRlIERlc2spICYjODIxMjsgbWlzbWEgZXNwZWNpZmljaWRhZCAoMyBjbGFzZXMpIHF1ZSBsYSByZWdsYSBkZQogICBhcnJpYmE7IGFsIGlyIERFU1BVyVMgZW4gZWwgQ1NTIGdhbmEgcG9yIG9yZGVuIGRlIGNhc2NhZGEuIFNlIHVzYSBlbAogICBicmVha3BvaW50IGRlIDQ4MHB4IChlbCBkZSB0aXBvZ3JhZu1hIGVuIGVzdGEgYXBwLCBubyBlbCBkZSA4NjBweCBxdWUgYXF17QogICBzb2xvIGdvYmllcm5hIGVsIGFwaWxhZG8gZGUgY29sdW1uYXMpIHBhcmEgcXVlIGNvaW5jaWRhIGNvbiBlbCByZXN0byBkZQogICBjYW1iaW9zIGRlIHRleHRvL3RhbWHxbyBwb3IgdmlzdGEuIE5vIGFmZWN0YSBhbCByZXNndWFyZG8gZGUgMiBjb2x1bW5hcyBlbgogICBt83ZpbCAobW9iLWdyaWQpLCBt4XMgZXNwZWPtZmljbyAoMThweCwgdmVyIG3hcyBhcnJpYmEpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstc2lidjIgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1zaXplOjEuNXJlbTt9Cn0KLyogRXN0aWxvICJCbG9xdWUgbWVkaWEiICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstc2lidjIgLm1lZGlhLWJsb2NrLW1lZGlhe2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOmF1dG87fQouYmxrLXNpYnYyIC5tZWRpYS1ibG9jay13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7fQouYmxrLXNpYnYyIC5tZWRpYS1ibG9jay1pZnJhbWUtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLXNpYnYyIC5tZWRpYS1ibG9jay1pZnJhbWUtd3JhcCBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay1zaWJ2MiAuY29sdW1uLWl0ZW0ubGF5b3V0LW1lZGlhLWJsb2Nre2JvcmRlcjpub25lO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2Jsb2NrLXNpemU6YXV0bztmbGV4OjAgMCBhdXRvO30KLmJsay1zaWJ2MiAuY29sdW1uLWl0ZW06bm90KC5sYXlvdXQtbWVkaWEtYmxvY2spe2ZsZXg6MSAxIGF1dG87fQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iYmxrLXNpYnYyIj4KICAKICA8bWFpbiBjbGFzcz0icGFnZSI+CiAgICAKICAgIDxhcnRpY2xlIGNsYXNzPSJsZWFkIGxlYWQtYm9keS1sZWZ0Ij4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1tZWRpYSI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9lbC1lcnRtcy1kZWwtYXZlLWEtc2V2aWxsYS1oYS1zaWRvLWluc3RhbGFkby1wb3ItdW5hLWVtcHJlc2EtcXVlLWJlbGdpY2EtYXBhcnRvLXBvci1yaWVzZ29zLWltcG9ydGFudGVzLWRlLXNlZ3VyaWRhZC0yMDI2MTEwOC0xMjM3MjctY2RhMTU2LmpwZyIgYWx0PSJFbCBFUlRNUyBkZWwgQVZFIGEgU2V2aWxsYSBoYSBzaWRvIGluc3RhbGFkbyBwb3IgdW5hIGVtcHJlc2EgcXVlIELpbGdpY2EgYXBhcnTzIHBvciAmcXVvdDtyaWVzZ29zIGltcG9ydGFudGVzIGRlIHNlZ3VyaWRhZCZxdW90OyIgbG9hZGluZz0iZWFnZXIiIGZldGNocHJpb3JpdHk9ImhpZ2giIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1vdmVybGF5IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE0LDE3LDI2LDAuMDApOyI+PC9kaXY+CiAgICAgICAgCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icGxheS1idXR0b24gcG9zLXRvcC1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjxkaXYgY2xhc3M9InBsYXktaWNvbiI+PC9kaXY+PHNwYW4gY2xhc3M9InBsYXktdGV4dCI+UGxheTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keSIgc3R5bGU9ImJhY2tncm91bmQ6IzAwQTdGRjsiPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZWFkLWNhdCIgc3R5bGU9ImJhY2tncm91bmQ6I2ZmZjtjb2xvcjojMDBBN0ZGIj5FU1BB0UE8L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5LW1haW4iPgogICAgICAgICAgCiAgICAgICAgICA8aDIgY2xhc3M9ImxlYWQtdGl0bGUiPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLWRlc2siPkVsIEVSVE1TIGRlbCBBVkUgYSBTZXZpbGxhIGhhIHNpZG8gaW5zdGFsYWRvIHBvciB1bmEgZW1wcmVzYSBxdWUgQulsZ2ljYSBhcGFydPMgcG9yICZxdW90O3JpZXNnb3MgaW1wb3J0YW50ZXMgZGUgc2VndXJpZGFkJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLW1vYmlsZSI+RWwgRVJUTVMgZGVsIEFWRSBhIFNldmlsbGEgaGEgc2lkbyBpbnN0YWxhZG8gcG9yIHVuYSBlbXByZXNhIHF1ZSBC6WxnaWNhIGFwYXJ08yBwb3IgJnF1b3Q7cmllc2dvcyBpbXBvcnRhbnRlcyBkZSBzZWd1cmlkYWQmcXVvdDs8L3NwYW4+PC9oMj4KICAgICAgICAgIAogICAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGhvci1sYWJlbCI+QWxiYSBNYXJ07W48L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YSBjbGFzcz0ibGVhZC1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvZXJ0bXMtZGVsLWF2ZS1zZXZpbGxhLXNpZG8taW5zdGFsYWRvLWVtcHJlc2EtcXVlLWJlbGdpY2EtYXBhcnRvLXJpZXNnb3MtaW1wb3J0YW50ZXMtc2VndXJpZGFkLTIwNzE5MjI0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgdGl0bGU9IkVsIEVSVE1TIGRlbCBBVkUgYSBTZXZpbGxhIGhhIHNpZG8gaW5zdGFsYWRvIHBvciB1bmEgZW1wcmVzYSBxdWUgQulsZ2ljYSBhcGFydPMgcG9yICZxdW90O3JpZXNnb3MgaW1wb3J0YW50ZXMgZGUgc2VndXJpZGFkJnF1b3Q7IiBhcmlhLWxhYmVsPSJFbCBFUlRNUyBkZWwgQVZFIGEgU2V2aWxsYSBoYSBzaWRvIGluc3RhbGFkbyBwb3IgdW5hIGVtcHJlc2EgcXVlIELpbGdpY2EgYXBhcnTzIHBvciAmcXVvdDtyaWVzZ29zIGltcG9ydGFudGVzIGRlIHNlZ3VyaWRhZCZxdW90OyI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstc2lidjIgLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
    • Con el precedente belga, es para echarse a temblar
    • Pedro vuelve a contratar a Koldo
    • Las primeras palabras de la novia de Ábalos tras el registro de su piso: Pones cualquier cadena y parece que me han condenado
        • España
        • España

      Las primeras palabras de la novia de Ábalos tras el registro de su piso: "Pones cualquier cadena y parece que me han condenado"

      • Irene Tabera
      • 2026-11-08 05:45
    • Rodríguez Ibarra, ex presidente socialista de Extremadura, retrata al PSOE de Sánchez: Es un partido sin sustancia y enclenque
        • España
        • España

      Rodríguez Ibarra, ex presidente socialista de Extremadura, retrata al PSOE de Sánchez: "Es un partido sin sustancia y enclenque"

      • Rafael Molina
      • 2026-11-08 14:31
    • Feijóo arremete contra Sánchez en Málaga: Menos mirar a Trump y más mirar a los trenes
        • España
        • España

      Feijóo deja claras sus prioridades a Sánchez en Málaga: "Menos mirar a Trump y más mirar a los trenes"

      El presidente del Partido Popular, Alberto Núñez Feijóo, ha situado la vivienda y las pensiones entre los principales compromisos de su proyecto para España en un acto en el Pabellón Javier Imbroda de Málaga ante 6.000 personas. El líder popular ha defendido la construcción de al menos un millón de viviendas y ha garantizado que, si llega al Palacio de la Moncloa, las pensiones continuarán revalorizándose cada año conforme al Índice de Precios de Consumo (IPC).
      • Ezequiel Marín
      • 2026-11-08 14:04
    • CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLW9peTMwe21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay1vaXkzMCBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstb2l5MzAgLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstb2l5MzAgLnBhZ2UgLmNvbHVtbntvcmRlcjozfQouYmxrLW9peTMwIC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstb2l5MzB7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay1vaXkzMCAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstb2l5MzAgLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLW9peTMwIC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstb2l5MzAgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay1vaXkzMCAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86MTYvOSAhaW1wb3J0YW50O30KICAuYmxrLW9peTMwIC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay1vaXkzMCAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay1vaXkzMCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLW9peTMwIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGstb2l5MzAgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay1vaXkzMCAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay1vaXkzMCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGstb2l5MzAgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay1vaXkzMCAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay1vaXkzMCAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstb2l5MzAgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstb2l5MzAgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstb2l5MzAgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay1vaXkzMCAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLW9peTMwIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLW9peTMwIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstb2l5MzAgLmxlYWQtdGl0bGV7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAuYmxrLW9peTMwIC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstb2l5MzAgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstb2l5MzAgLmF1dGhvci1sYWJlbHt0ZXh0LWFsaWduOmNlbnRlcjt9CiAgLmJsay1vaXkzMCAubGVhZC1raWNrZXItZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1vaXkzMCAubGVhZC1raWNrZXItbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstb2l5MzAgLmxlYWQtc3VidGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1vaXkzMCAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1vaXkzMCAubGVhZC1hbmltLWhlYWRsaW5lc3tmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIAogIC5ibGstb2l5MzAgLnJlbGF0ZWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1vaXkzMCAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9Cn0KLmJsay1vaXkzMCAubGVhZHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmY7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay1vaXkzMCAubGVhZC1tZWRpYXtwb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVufQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWU6IGFsdG8gZmlqbyBlbiBw7XhlbGVzIGVuIHZleiBkZSBsYSBwcm9wb3JjafNuIGRlCiAgIGFycmliYSAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgc3RhdGUubGVhZC5pZnJhbWVIZWlnaHQpICYjODIxMjsgZWwKICAgdmFsb3IgZGUgTfN2aWwgc2Ugc29icmVzY3JpYmUgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sIGlndWFsIHF1ZSBlbAogICByZXN0byBkZSBvdmVycmlkZXMgcmVzcG9uc2l2ZSBkZSBlc3RlIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLW9peTMwIC5sZWFkLW1lZGlhLmlzLWlmcmFtZXthc3BlY3QtcmF0aW86bm9uZTtibG9jay1zaXplOjY0MHB4O30KLmJsay1vaXkzMCAubGVhZC1tZWRpYSBpbWcsCi5ibGstb2l5MzAgLmxlYWQtbWVkaWEgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQovKiBDYXJydXNlbCBkZSBmb3RvcyBkZSBmb25kbyBjb24gZWZlY3RvIEtlbiBCdXJucyAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLgogICBMYSBkdXJhY2nzbiBkZSBsYXMgYW5pbWFjaW9uZXMgKDZzKSBjb2luY2lkZSBjb24KICAgTEVBRF9DQVJPVVNFTF9JTlRFUlZBTCwgcXVlIHRhbWJp6W4gZ29iaWVybmEgZWwgc2NyaXB0IGRlIHJvdGFjafNuCiAgIChidWlsZExlYWRDYXJvdXNlbFNjcmlwdCkgYfFhZGlkbyBhbCBmaW5hbCBkZWwgSFRNTCBleHBvcnRhZG8uICovCi5ibGstb2l5MzAgLmxlYWQtY2Fyb3VzZWx7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLW9peTMwIC5sZWFkLWNhcm91c2VsLXNsaWRle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAxLjVzIGVhc2U7fQouYmxrLW9peTMwIC5sZWFkLWNhcm91c2VsLXNsaWRlLmlzLWFjdGl2ZXtvcGFjaXR5OjE7ei1pbmRleDoxO30KLmJsay1vaXkzMCAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO30KLmJsay1vaXkzMCAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQob2RkKSBpbWd7YW5pbWF0aW9uOmJsay1vaXkzMC1rZW5idXJucy1hIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KLmJsay1vaXkzMCAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQoZXZlbikgaW1ne2FuaW1hdGlvbjpibGstb2l5MzAta2VuYnVybnMtYiA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9CkBrZXlmcmFtZXMgYmxrLW9peTMwLWtlbmJ1cm5zLWF7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IH0KQGtleWZyYW1lcyBibGstb2l5MzAta2VuYnVybnMtYnsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKDQlLDMlKTt9IH0KLyogQ29uIHVuYSD6bmljYSBmb3RvIChzaW4gcm90YWNp824gcG9zaWJsZSkgc2UgYXBsaWNhIHVuIHpvb20gaW4vb3V0IGVuCiAgIGJ1Y2xlIGluZmluaXRvIGVuIHZleiBkZWwgcmVjb3JyaWRvIPpuaWNvIChmb3J3YXJkcykgZGUgYXJyaWJhLiAqLwouYmxrLW9peTMwIC5sZWFkLWNhcm91c2VsLmlzLXNpbmdsZSAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7YW5pbWF0aW9uOmJsay1vaXkzMC1rZW5idXJucy1sb29wIDE0cyBlYXNlLWluLW91dCBpbmZpbml0ZTt9CkBrZXlmcmFtZXMgYmxrLW9peTMwLWtlbmJ1cm5zLWxvb3B7IDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IDUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gMTAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB9Ci8qIENvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcyAoZGVzbGl6YWRvcikgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1vaXkzMCAubGVhZC1jb21wYXJle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3RvdWNoLWFjdGlvbjpub25lO3otaW5kZXg6Mjt9Ci5ibGstb2l5MzAgLmxlYWQtY29tcGFyZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpjZW50ZXI7ZGlzcGxheTpibG9jazt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1kcmFnOm5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstb2l5MzAgLmxlYWQtY29tcGFyZS1iZWZvcmV7Y2xpcC1wYXRoOmluc2V0KDAgNTAlIDAgMCk7d2lsbC1jaGFuZ2U6Y2xpcC1wYXRoO30KLmJsay1vaXkzMCAubGVhZC1jb21wYXJlLXJhbmdle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7bWFyZ2luOjA7b3BhY2l0eTowO2N1cnNvcjpldy1yZXNpemU7fQouYmxrLW9peTMwIC5sZWFkLWNvbXBhcmUtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6NTAlO2lubGluZS1zaXplOjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjI7fQouYmxrLW9peTMwIC5sZWFkLWNvbXBhcmUtaGFuZGxlOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7aW5saW5lLXNpemU6MnB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOSk7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgwLDAsMCwuMjUpO30KLmJsay1vaXkzMCAubGVhZC1jb21wYXJlLWhhbmRsZTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6LTE1cHg7aW5saW5lLXNpemU6MzBweDtibG9jay1zaXplOjMwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmIHVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJz48ZyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAwMCcgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnPjxwYXRoIGQ9J004IDYgTDQgMTAgTDggMTQnLz48cGF0aCBkPSdNMTIgNiBMMTYgMTAgTDEyIDE0Jy8+PC9nPjwvc3ZnPiIpIGNlbnRlci8xNnB4IDE2cHggbm8tcmVwZWF0O2JveC1zaGFkb3c6MCAycHggNnB4IHJnYmEoMCwwLDAsLjI1KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjI1KTt9Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBNaXNtbyB6LWluZGV4OjIgcXVlCiAgIC5sZWFkLWNvbXBhcmUsIHBvciBlbCBtaXNtbyBtb3Rpdm8gKGdhbmFybGUgYSAubGVhZC1saW5rKS4gKi8KLmJsay1vaXkzMCAubGVhZC1pZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7ei1pbmRleDoyO30KLmJsay1vaXkzMCAubGVhZC1pZnJhbWUgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstb2l5MzAgLmxlYWQtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay1vaXkzMCAubGVhZC1ib2R5e3BhZGRpbmc6MHB4IDIwcHggMjBweCAyMHB4OztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo2OyBwb2ludGVyLWV2ZW50czpub25lOyBpbmxpbmUtc2l6ZTo5NSU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBtYXJnaW4tdG9wOi0zMHB4OyBiYWNrZ3JvdW5kOiMwRTExMUE7IGZsZXg6MSAxIGF1dG87fQovKiBBbnRldO10dWxvL3RpdHVsYXIvc3VidO10dWxvL2F1dG9yIGNlbnRyYWRvcyBlbiB2ZXJ0aWNhbCBkZW50cm8gZGVsIGFsdG8KICAgc29icmFudGUgYmFqbyBsYSBjYXRlZ29y7WEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1vaXkzMCAubGVhZC1ib2R5LW1haW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtpbmxpbmUtc2l6ZToxMDAlO2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO30KLyogQXBhcmllbmNpYSBuZWdhdGl2YSAocG9yIGRlZmVjdG8pIHZzLiBwb3NpdGl2YSBkZSBsYSBjYWphIGRlIHRpdHVsYXIgJiM4MjEyOyB2ZXIKICAgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1vaXkzMCAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLWJvZHl7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTt9Ci5ibGstb2l5MzAgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC10aXRsZSwKLmJsay1vaXkzMCAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5hdXRob3ItbGFiZWx7Y29sb3I6IzBFMTExQTt9Ci8qIFBvc2ljafNuIGRlbCBsZWFkLWJvZHkgcmVzcGVjdG8gYWwgbGVhZC1tZWRpYSAoJ2xlZnQnLydyaWdodCcpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstb2l5MzAgLmxlYWQubGVhZC1ib2R5LWxlZnQsCi5ibGstb2l5MzAgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOnJvdzthc3BlY3QtcmF0aW86Mi45NjI5NjI5NjI5NjI5NjM7fQouYmxrLW9peTMwIC5sZWFkLmxlYWQtYm9keS1sZWZ0e2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO30KLmJsay1vaXkzMCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKLmJsay1vaXkzMCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDowIDAgNjAlO30KLmJsay1vaXkzMCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAouYmxrLW9peTMwIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MCAwIGNhbGMoNDAlICsgMzBweCk7aW5saW5lLXNpemU6YXV0bzttYXJnaW4tdG9wOjA7YmxvY2stc2l6ZTpjYWxjKDEwMCUgLSA0MnB4KTthbGlnbi1zZWxmOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt9Ci5ibGstb2l5MzAgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDotMzBweDt9Ci5ibGstb2l5MzAgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6LTMwcHg7bWFyZ2luLXJpZ2h0OjA7fQovKiBQb3NpY2nzbiAnYm90dG9tLWZ1bGwnIGRlbCBsZWFkLWJvZHkgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gaW5saW5lLXNpemUKICAgZW4gdmV6IGRlIHdpZHRoIHBvciBlbCBtaXNtbyBtb3Rpdm8gcXVlIGVsIHJlc3RvIGRlIGVzdGUgYmxvcXVlIChldml0YXIKICAgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbCB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MKICAgZGlyZWN0YW1lbnRlKS4gKi8KLmJsay1vaXkzMCAubGVhZC5sZWFkLWJvZHktYm90dG9tLWZ1bGwgLmxlYWQtYm9keXsKICBpbmxpbmUtc2l6ZToxMDAlOwogIG1hcmdpbjowOwogIHBhZGRpbmctdG9wOjMwcHg7CiAgcGFkZGluZy1ib3R0b206MzBweDsKICBib3JkZXI6bm9uZTsKfQovKiBFdGlxdWV0YSBkZSBleGNsdXNpdmEgKG8gdGV4dG8gcGVyc29uYWxpemFkbykgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1vaXkzMCAubGVhZC1leGNsdXNpdmUtdGFne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDt6LWluZGV4OjM7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtsZXR0ZXItc3BhY2luZzowLjVweDtwYWRkaW5nOjJweCA4cHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTouOGVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojZmZmO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtwb2ludGVyLWV2ZW50czpub25lO30KLyogU2VsZWN0b3IgY29uIDMgY2xhc2VzICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKCIubGVhZC1tZWRpYSBpbWciIHRhbWJp6W4KICAgbWF0Y2hlYSBlc3RlIDxpbWc+IHkgbGUgZ2FuYWJhIGVuIGVzcGVjaWZpY2lkYWQpLiAqLwouYmxrLW9peTMwIC5sZWFkLWV4Y2x1c2l2ZS10YWcgLmxlYWQtZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLW9peTMwIC5sZWFkLWNhdHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06c2tld1koLTZkZWcpO21hcmdpbi10b3A6LTE1cHg7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay1vaXkzMCAubGVhZC1raWNrZXIsIC5ibGstb2l5MzAgLmxlYWQtc3VidGl0bGV7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO3RleHQtdHJhbnNmb3JtOm5vbmU7bWFyZ2luOjA7Cn0KLmJsay1vaXkzMCAubGVhZC1raWNrZXJ7Zm9udC13ZWlnaHQ6NzAwO30KLmJsay1vaXkzMCAubGVhZC1zdWJ0aXRsZXtmb250LXdlaWdodDo2MDA7fQovKiBUYW1h8W8vaW50ZXJsaW5lYWRvL2NvbG9yIGRlIGFudGV07XR1bG8geSBzdWJ07XR1bG8gZW4gRGVzayAodmFsb3JlcyBwb3IKICAgZGVmZWN0byBkZWwgYmxvcXVlOyBlbCBvdmVycmlkZSBkZSBN83ZpbCB2YSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywKICAgeWEgcXVlIGVsIEhUTUwgZXhwb3J0YWRvIGVzIHJlc3BvbnNpdmUgeSBubyBkZXBlbmRlIGRlIHF16SB2aXN0YSB0dXZpZXJhcwogICBzZWxlY2Npb25hZGEgZW4gZWwgZ2VzdG9yIGFsIGV4cG9ydGFyL2NvcGlhcikuICovCi5ibGstb2l5MzAgLmxlYWQta2lja2Vye2ZvbnQtc2l6ZToxLjMxMjVyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiMwMEE3RkY7fQouYmxrLW9peTMwIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiMwMEE3RkY7fQovKiB0ZXh0LXdyYXA6YmFsYW5jZSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZSBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsCiAgIGRlbCBnZXN0b3IgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIGVzYSByZWdsYSk6IHJlcGFydGUgbGFzCiAgIGztbmVhcyBkZWwgdGl0dWxhciBkZSBmb3JtYSBt4XMgdW5pZm9ybWUgZGVudHJvIGRlIGNhZGEgZGlzcG9zaXRpdm8sIHNpbgogICBwcmV0ZW5kZXIgaWd1YWxhciBlbCBu+m1lcm8gZGUgbO1uZWFzIGVudHJlIHBsYXRhZm9ybWFzIGRpc3RpbnRhcy4gKi8KLmJsay1vaXkzMCAubGVhZC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZToycmVtO2xpbmUtaGVpZ2h0OjE7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt0ZXh0LXdyYXA6YmFsYW5jZTt9Ci8qIFRpdHVsYXIgY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGEgKHZlciBidWlsZFNjb3BlZEhUTUwpOgogICBzZSBnZW5lcmFuIGxvcyBkb3MgdGV4dG9zIChEZXNrL03zdmlsKSB5IGFxde0gc2UgbXVlc3RyYSBzb2xvIHVubyBzZWf6biBlbAogICBhbmNobyByZWFsIGRlbCBjb250ZW5lZG9yICYjODIxMjsgZWwgbWlzbW8gbWVjYW5pc21vIGRlIEBjb250YWluZXIgcXVlIHlhIHVzYSBlbAogICByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8gcGFyYSBhZGFwdGFyc2Ugc2luIGRlcGVuZGVyIGRlIEpTLiAqLwouYmxrLW9peTMwIC5sZWFkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBBbnRldO10dWxvL3N1YnTtdHVsbyBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YTogbWlzbW8KICAgbWVjYW5pc21vIGRlIEBjb250YWluZXIgcXVlIGVsIHRpdHVsYXIgKHZlciBhcnJpYmEpLiAqLwouYmxrLW9peTMwIC5sZWFkLWtpY2tlci1tb2JpbGUsIC5ibGstb2l5MzAgLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIFRpdHVsYXIgZGUgbm90aWNpYSByZWxhY2lvbmFkYSAoY29sdW1uYSkgY29uIHRleHRvIHByb3BpbyBlbiBN83ZpbCAodmVyCiAgIGl0ZW0udGl0bGVNb2JpbGUgZW4gYnVpbGRDb2x1bW5JdGVtVGl0bGVIVE1MKTogbWlzbW8gbWVjYW5pc21vIGRlCiAgIEBjb250YWluZXIgcXVlIGVsIHRpdHVsYXIgcHJpbmNpcGFsIGRlIGFycmliYS4gKi8KLmJsay1vaXkzMCAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLmJsay1vaXkzMCAuYXV0aG9yLWxhYmVse2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXNpemU6LjhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpyaWdodDtkaXNwbGF5OmJsb2NrfQouYmxrLW9peTMwIC5jb2x1bW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47fQouYmxrLW9peTMwIC5jb2x1bW4taXRlbXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZmZmO2Jsb2NrLXNpemU6c3RyZXRjaDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLW9peTMwIC50aHVtYntwb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzo0LzM7YmFja2dyb3VuZDojZWVlO292ZXJmbG93OmhpZGRlbn0KLmJsay1vaXkzMCAudGh1bWIgaW1nLAouYmxrLW9peTMwIC50aHVtYiB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci5ibGstb2l5MzAgLnRodW1iIC5wbGF5LXNxdWFyZSwKLmJsay1vaXkzMCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmV7CiAgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTo1cHg7IGxlZnQ6NXB4OwogIGlubGluZS1zaXplOjI1cHg7YmxvY2stc2l6ZToyNXB4O2JvcmRlci1yYWRpdXM6MnB4O2Rpc3BsYXk6aW5saW5lLWdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyOwogIGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE4KTsKICBjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cywgdHJhbnNmb3JtIC4xMnM7CiAgei1pbmRleDoyOyBhbmltYXRpb246YmxrLW9peTMwLWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstb2l5MzAgLnRodW1iIC5wbGF5LXNxdWFyZTo6YmVmb3JlLAouYmxrLW9peTMwIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo2cHggc29saWQgI2ZmZjtib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjVweCBzb2xpZCB0cmFuc3BhcmVudDsKICBtYXJnaW4tbGVmdDoycHg7Cn0KLmJsay1vaXkzMCAudGh1bWIgLnBsYXktc3F1YXJlOmhvdmVyLAouYmxrLW9peTMwIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZTpob3ZlcnsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuODUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTsgfQouYmxrLW9peTMwIC5zdGFjay10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuMTVlbTttYXJnaW46MDtjb2xvcjojMmMzZTUzO30KLmJsay1vaXkzMCAuc3RhY2stYXV0aG9ye2ZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtYm9vayIsc2Fucy1zZXJpZjtjb2xvcjojODI4NTk1O2ZvbnQtd2VpZ2h0OjIwMDtmb250LXNpemU6LjhyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxMXB4O2xldHRlci1zcGFjaW5nOjA7dGV4dC1hbGlnbjpyaWdodDt9Ci8qIFNpbiBlc3RhIHJlZ2xhIGVsIGF1dG9yIHF1ZWRhIHBlZ2FkbyBqdXN0byBkZWJham8gZGVsIHRpdHVsYXIgZW4gdmV6IGRlCiAgIGFiYWpvIGRlIGxhIHRhcmpldGE6IC5tb2Qtc3RhY2sgbmVjZXNpdGEgc2VyIGZsZXgtY29sdW1uIGNvbgogICBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiBwYXJhIHF1ZSBlbCBodWVjbyBzb2JyYW50ZSAoY3VhbmRvIGxhCiAgIHRhcmpldGEgY3JlY2UgbeFzIHF1ZSBzdSBjb250ZW5pZG8sIHZlciAuY29sdW1uLWl0ZW06bm90KC5sYXlvdXQtbWVkaWEtYmxvY2spCiAgIG3hcyBhYmFqbykgZW1wdWplIGVsIGF1dG9yIGhhY2lhIGVsIGJvcmRlIGluZmVyaW9yLiAqLwouYmxrLW9peTMwIC5tb2Qtc3RhY2t7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtmbGV4OjEgMSBhdXRvO30KLyogRXN0aWxvICJmb3RvIHBlcXVl8WEgKyB0aXR1bGFyIjogZm90byA0OjMgYSBsYSBpenF1aWVyZGEsIHRleHRvIGEgbGEgZGVyZWNoYS4gKi8KLmJsay1vaXkzMCAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLWxlZnR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxMTBweCAxZnI7Z2FwOjEwcHg7fQovKiBFc3RpbG8gInNvbG8gdGV4dG8iIChwb3IgZGVmZWN0byk6IGVsIGF1dG9yIHNlIHBvc2ljaW9uYSBlbiBhYnNvbHV0bywKICAgYW5jbGFkbyBhIGxhIGVzcXVpbmEgaW5mZXJpb3IgZGVyZWNoYSBkZSBsYSB0YXJqZXRhIChpZ3VhbCBxdWUgZWwgcGxheSBkZQogICBsYXMgbWluaWF0dXJhcyksIGVuIHZleiBkZSBkZXBlbmRlciBkZSBxdWUgZWwgYmxvcXVlIGRlIHRleHRvIHRlbmdhIGh1ZWNvCiAgIGRlIHNvYnJhIHBhcmEgZW1wdWphcmxvIGFiYWpvIGNvbiBmbGV4Ym94ICYjODIxMjsgY29uIHTtdHVsb3MgZGUgMi0zIGztbmVhcyBlc2UKICAgaHVlY28gbm8gZXhpc3RlIHkgZWwgYXV0b3IgbnVuY2EgbGxlZ2FiYSBhIGJhamFyLiBwYWRkaW5nLWJvdHRvbSBlbgogICBsZWZ0LWJvZHkgcmVzZXJ2YSBlbCBlc3BhY2lvIHBhcmEgcXVlIGVsIHTtdHVsbyBubyBzZSBzb2xhcGUgY29uIOlsLiAqLwouYmxrLW9peTMwIC5jb2x1bW4taXRlbS5sYXlvdXQtdGl0bGUtb25seSAubGVmdC1ib2R5e3BhZGRpbmctYm90dG9tOjMzcHg7fQouYmxrLW9peTMwIC5jb2x1bW4taXRlbS5sYXlvdXQtdGl0bGUtb25seSAuc3RhY2stYXV0aG9ye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7Ym90dG9tOjEwcHg7bWFyZ2luLXRvcDowO30KLmJsay1vaXkzMCAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQouYmxrLW9peTMwIC5sZWZ0LXBsYXl7CiAgZmxleDowIDAgYXV0bztpbmxpbmUtc2l6ZToxNXB4O2Jsb2NrLXNpemU6MTVweDtib3JkZXItcmFkaXVzOjJweDsKICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowOwogIHZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206IDRweDsKfQouYmxrLW9peTMwIC5sZWZ0LXBsYXk6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMGE3ZmY7Ym9yZGVyLXRvcDozcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luLWxlZnQ6MXB4Owp9Ci5ibGstb2l5MzAgLnJlbGF0ZWQtbGl2ZS10YWd7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwOwogIGZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDowLjg7bGV0dGVyLXNwYWNpbmc6LjNweDtjb2xvcjojRkY1MDUwOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRkY1MDUwOwogIHBhZGRpbmc6M3B4IDRweCAycHggNHB4O21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouYmxrLW9peTMwIC5yZWxhdGVkLWVkaXRvcmlhbC10YWd7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwOwogIGZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDowLjg7bGV0dGVyLXNwYWNpbmc6LjNweDtjb2xvcjojRkFCMTIxOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRkFCMTIxOwogIHBhZGRpbmc6M3B4IDRweCAycHggNHB4O21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouYmxrLW9peTMwIC5wbGF5LWJ1dHRvbnsKICAvKiBBbmNoby9hbHRvIGZpam9zIGVuIHZleiBkZSBhc3BlY3QtcmF0aW86MS8xICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoZWwKICAgICBj4WxjdWxvIGRlICJzaHJpbmstdG8tZml0IiBwYXJhIHVuIDxidXR0b24+IGVuIGFic29sdXRvIHNpbiB0YW1h8W8KICAgICBleHBs7WNpdG8gbm8gZXMgZmlhYmxlIGVudHJlIG1vdG9yZXM7IGVuIFdlYktpdC9pT1MgZGFiYSB1biByZWN04W5ndWxvCiAgICAgdmVydGljYWwgZXN0cmVjaO1zaW1vIGVuIHZleiBkZSB1biBjdWFkcmFkbykuICovCiAgYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOwogIHBvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDsKICBpbmxpbmUtc2l6ZTozNHB4O2Jsb2NrLXNpemU6MzRweDsKICBkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoxMHB4IDEwcHggMTBweCAxMnB4OwogIGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC40Mik7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjNweDsKICBjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjI7YW5pbWF0aW9uOmJsay1vaXkzMC1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLW9peTMwIC5wbGF5LWJ1dHRvbi5wb3MtdG9wLXJpZ2h0e3RvcDoxMHB4O3JpZ2h0OjEwcHg7bGVmdDphdXRvO2JvdHRvbTphdXRvO30KLmJsay1vaXkzMCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0e2JvdHRvbToxMHB4O2xlZnQ6MTBweDt0b3A6YXV0bztyaWdodDphdXRvO30KLmJsay1vaXkzMCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1yaWdodHtib3R0b206MTBweDtyaWdodDoxMHB4O3RvcDphdXRvO2xlZnQ6YXV0bzt9Ci8qIENvbiBlbCB0ZXh0byAobGVhZC1ib2R5KSBhIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEsIGVzZSBibG9xdWUgc29sYXBhCiAgIDMwcHggZGVsIGxhZG8gZGUgbGEgZm90by927WRlbyBwZWdhZG8gYSDpbCAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW9peTMwIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbi5wb3MtdG9wLWxlZnQsCi5ibGstb2l5MzAgLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstb2l5MzAgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5wbGF5LWJ1dHRvbi5wb3MtdG9wLXJpZ2h0LAouYmxrLW9peTMwIC5sZWFkLmxlYWQtYm9keS1yaWdodCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1yaWdodHsgcmlnaHQ6NDBweDsgfQovKiBQb3NpY2nzbiAnYm90dG9tJyBwb3IgZGVmZWN0bzogZWwgbGVhZC1ib2R5IHNvbGFwYSAzMHB4IHNvYnJlIGVsIGJvcmRlCiAgIElORkVSSU9SIGRlIGxhIGZvdG8vdu1kZW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTm8gYXBsaWNhIGNvbiAnYm90dG9tLWZ1bGwnCiAgIG5pIGNvbiAnbGVmdCcvJ3JpZ2h0JyAoYWp1c3RlIGhvcml6b250YWwgcHJvcGlvLCB2ZXIgYXJyaWJhKS4gKi8KLmJsay1vaXkzMCAubGVhZDpub3QoLmxlYWQtYm9keS1sZWZ0KTpub3QoLmxlYWQtYm9keS1yaWdodCk6bm90KC5sZWFkLWJvZHktYm90dG9tLWZ1bGwpIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnQsCi5ibGstb2l5MzAgLmxlYWQ6bm90KC5sZWFkLWJvZHktbGVmdCk6bm90KC5sZWFkLWJvZHktcmlnaHQpOm5vdCgubGVhZC1ib2R5LWJvdHRvbS1mdWxsKSAucGxheS1idXR0b24ucG9zLWJvdHRvbS1yaWdodHsgYm90dG9tOjQwcHg7IH0KLmJsay1vaXkzMCAucGxheS1idXR0b24gLnBsYXktaWNvbnsKICBpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnQ7Cn0KLmJsay1vaXkzMCAucGxheS1idXR0b24gLnBsYXktdGV4dHtkaXNwbGF5Om5vbmU7fQoKLyogVGl0dWxhcmVzIGFuaW1hZG9zIChjYXBhIGFsdGVybmF0aXZhIHNvYnJlIGxlYWQtbWVkaWEpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEKICAgaGVycmFtaWVudGEuIENhZGEgdGl0dWxhciB0aWVuZSBzdSBwcm9waWEgcG9zaWNp824gKGNsYXNlIHBvcy0qLCB2ZXIKICAgYnVpbGRTY29wZWRIVE1MKSB5IHNlIHJldmVsYSBs7W5lYSBwb3IgbO1uZWEgKHVuYSB2ZXogbWVkaWRhcyBzdXMgbO1uZWFzCiAgIHJlYWxlcyBwb3IgZWwgc2NyaXB0IHN0YW5kYWxvbmUsIHZlciBidWlsZEFuaW1IZWFkbGluZXNTY3JpcHQpIGNvbiB1bmEKICAgY2FqYSBkZSBmb25kbyBkZXRy4XMgZGUgY2FkYSBs7W5lYSB5IHVuIGZhZGUgZGUgb3BhY2lkYWQgZW50cmUgdGl0dWxhcmVzLiAqLwouYmxrLW9peTMwIC5sZWFkLWFuaW0taGVhZGxpbmVzewogIHBvc2l0aW9uOmFic29sdXRlOwogIGluc2V0OjA7CiAgei1pbmRleDo0OwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLmJsay1vaXkzMCAubGVhZC1hbmltLWhlYWRsaW5lewogIHBvc2l0aW9uOmFic29sdXRlOwogIGxlZnQ6MTVweDsKICBvcGFjaXR5OjA7Cn0KLmJsay1vaXkzMCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgYm90dG9tOjYwcHg7IH0KLmJsay1vaXkzMCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdHsgdG9wOjYwcHg7IH0KLmJsay1vaXkzMCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay1vaXkzMCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGstb2l5MzAgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLW9peTMwIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgbGVmdDphdXRvOyByaWdodDoxNXB4OyB9Ci5ibGstb2l5MzAgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0eyB0b3A6NjBweDsgfQouYmxrLW9peTMwIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay1vaXkzMCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo2MHB4OyB9Ci8qIENvbiBlbCB0ZXh0byAobGVhZC1ib2R5KSBhIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEsIGVzZSBibG9xdWUgc29sYXBhCiAgIDMwcHggZGVsIGxhZG8gZGUgbGEgZm90by927WRlbyBwZWdhZG8gYSDpbCAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW9peTMwIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0LAouYmxrLW9peTMwIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0LAouYmxrLW9peTMwIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBsZWZ0OjQwcHg7IH0KLmJsay1vaXkzMCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLW9peTMwIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGstb2l5MzAgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgcmlnaHQ6NDBweDsgfQouYmxrLW9peTMwIC5sZWFkLWFuaW0taGVhZGxpbmUuaXMtYWN0aXZleyBvcGFjaXR5OjE7IH0KLmJsay1vaXkzMCAubGVhZC1hbmltLWxpbmV7CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgZGlzcGxheTp0YWJsZTsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgZm9udC13ZWlnaHQ6OTAwOwogIGNvbG9yOiNmZmY7CiAgcGFkZGluZzoycHggOHB4OwogIGNsaXAtcGF0aDppbnNldCgwIDEwMCUgMCAwKTsKICBvcGFjaXR5OjE7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZTsKfQouYmxrLW9peTMwIC5sZWFkLWFuaW0tbGluZS5pcy1oaWRpbmd7IG9wYWNpdHk6MDsgfQovKiBTb2xhcGUgZGUgMXB4IGVudGVyYSBlbnRyZSBs7W5lYXMgcGFyYSBjZXJyYXIgZWwgaGlsbyBkZSBzdWItcO14ZWwgcXVlCiAgIHB1ZWRlIHF1ZWRhciBlbnRyZSBzdXMgY2FqYXMgZGUgZm9uZG8gKHJlZG9uZGVvIGRlIGFsdHVyYXMgZnJhY2Npb25hcmlhcykgJiM4MjEyOwogICB2ZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLW9peTMwIC5sZWFkLWFuaW0tbGluZSArIC5sZWFkLWFuaW0tbGluZXsKICBtYXJnaW4tdG9wOi0xcHg7Cn0KLmJsay1vaXkzMCAubGVhZC1hbmltLWxpbmU6Zmlyc3QtY2hpbGR7IHBhZGRpbmctdG9wOjZweDsgfQouYmxrLW9peTMwIC5sZWFkLWFuaW0tbGluZTpsYXN0LWNoaWxkeyBwYWRkaW5nLWJvdHRvbTo2cHg7IH0KLmJsay1vaXkzMCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLW9peTMwIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGstb2l5MzAgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0IC5sZWFkLWFuaW0tbGluZXsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjA7IH0KLmJsay1vaXkzMCAubGVhZC1hbmltLWhlYWRsaW5lcy5pcy1wb3NpdGl2ZSAubGVhZC1hbmltLWxpbmV7IGNvbG9yOiMwRTExMUE7IH0KLmJsay1vaXkzMCAubGVhZC1hbmltLWxpbmUtYmd7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDowOyB6LWluZGV4Oi0xOyB9Ci5ibGstb2l5MzAgLmxlYWQtYW5pbS1saW5lLXRleHR7IHBvc2l0aW9uOnJlbGF0aXZlOyB9CkBrZXlmcmFtZXMgYmxrLW9peTMwLWFuaW0tbGluZS1yZXZlYWx7IHRveyBjbGlwLXBhdGg6aW5zZXQoMCAwIDAgMCk7IH0gfQoKLyogQW5jaG9yIG92ZXJsYXkgZm9yIGZ1bGwgY2xpY2thYmxlIGxlYWQgKi8KLmJsay1vaXkzMCAubGVhZC1saW5re3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxfQoKLyogSG92ZXIgb3BhY2l0eSBhbmltYXRpb24gKi8KLmJsay1vaXkzMCAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKLmJsay1vaXkzMCAuY29sdW1uLWl0ZW06aG92ZXJ7b3BhY2l0eTouOH0KLyogRm90byBwcmluY2lwYWwgKGZhbGxiYWNrL3NpbmdsZSkgbyBjYXJydXNlbCBkZSBmb3Rvczogb3BhY2lkYWQgMC45IGFsCiAgIHBhc2FyIGVsIHJhdPNuIHBvciBsYSB0YXJqZXRhICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuCiAgIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBhIHbtZGVvIG5pIGFsCiAgIGNvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcy4gKi8KLmJsay1vaXkzMCAubGVhZC1tZWRpYSA+IGltZywKLmJsay1vaXkzMCAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstb2l5MzAgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstb2l5MzAgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5Oi45O30KLyogRW4gZWwgYW5jaG8gbfN2aWwgKG1pc21vIEBjb250YWluZXIgcXVlIGVsIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbykgbm8KICAgYXBsaWNhIGVzdGEgYW5pbWFjafNuIGRlIG9wYWNpZGFkIHNvYnJlIGxhIG5vdGljaWEgcHJpbmNpcGFsOiB2YSBERVNQVclTCiAgIGRlIGxhIHJlZ2xhIGdlbmVyYWwgZGUgYXJyaWJhIChtaXNtYSBlc3BlY2lmaWNpZGFkKSBwYXJhIHBvZGVyIGdhbmFybGUuCiAgIE9taXRpZG8sIGlndWFsIHF1ZSBlbCBibG9xdWUgZGUgdGlwb2dyYWbtYSBkZSBhcnJpYmEsIG1pZW50cmFzIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06SBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsKICAuYmxrLW9peTMwIC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAogIC5ibGstb2l5MzAgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCiAgLmJsay1vaXkzMCAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6MTt9Cn0KCi8qIEFuaW1hY2nzbiBjb21wYXJ0aWRhIHBsYXkgcHJpbmNpcGFsICsgY3VhZHJhZG9zIHBsYXkgYXBpbGFkYXMgKi8KQGtleWZyYW1lcyBibGstb2l5MzAtYmxpbmt7CiAgMCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KX0KICA1MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTY1LDI1NSwwLjkpfQp9Ci8qIENhYmVjZXJhICovCi5ibGstb2l5MzAgLmJnLXNlY3Rpb24tdGl0bGV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MTBweCAwIDMycHh9Ci5ibGstb2l5MzAgLmZuZC1saW5lYXtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMThweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9Ci5ibGstb2l5MzAgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzBFMTExQTt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyk7Zm9udC1zaXplOjQycHg7Y29sb3I6IzBFMTExQTt9CkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7LmJsay1vaXkzMCAuc2VjdGlvbi10aXRsZXtmb250LXNpemU6MjdweDtwYWRkaW5nOjAgMTBweH19Ci8qIENhYmVjZXJhICYjODIxMjsgRGlzZfFvIDIgKHRpdHVsYXIgKyBjYXJydXNlbCBkZSBsb2dvdGlwb3MpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstb2l5MzAgLmhlYWRlcjJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7bWFyZ2luLWJvdHRvbToxMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMwRTExMUE7fQovKiBhbGlnbi1zZWxmOmZsZXgtZW5kIGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgMTVweCBkZSBsYSBs7W5lYSBzZXBhcmFkb3JhCiAgIGVuIERlc2sgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zCiAgIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1vaXkzMCAuaGVhZGVyMi1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleDoxIDEgNTAlO21pbi1pbmxpbmUtc2l6ZTowO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQouYmxrLW9peTMwIC5oZWFkZXIyLXRhZ3N7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXg6MCAwIGF1dG87fQovKiBNaXNtbyB0YW1h8W8vdGlwb2dyYWbtYSBxdWUgLmxlYWQtZXhjbHVzaXZlLXRhZyAobGEgZGUgbGEgbm90aWNpYQogICBwcmluY2lwYWwpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUKICAgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstb2l5MzAgLmhlYWRlcjItY2F0LXRhZywKLmJsay1vaXkzMCAuaGVhZGVyMi1leGNsdXNpdmUtdGFne2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi44ZW07bGV0dGVyLXNwYWNpbmc6LjVweDtwYWRkaW5nOjJweCA4cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojZmZmO30KLmJsay1vaXkzMCAuaGVhZGVyMi1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstb2l5MzAgLmhlYWRlcjItdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6MzZweDtsaW5lLWhlaWdodDoxLjA1O2NvbG9yOiMwRTExMUE7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21pbi1pbmxpbmUtc2l6ZTowO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt9Ci8qIFNlcGFyYWNp824gZGUgMTBweCBlbnRyZSBlbCB0ZXh0byBkZSBwYXRyb2NpbmlvIHkgZWwgbG9nbyBlbiBEZXNrICYjODIxMjsgZW4KICAgTfN2aWwgc2lndWUgc2luIHNlcGFyYWNp824gKGdhcDowLCB2ZXIgQGNvbnRhaW5lciBt4XMgYWJham8pLiAqLwouYmxrLW9peTMwIC5oZWFkZXIyLWxvZ29zLXdyYXB7ZmxleDowIDAgYXV0bzttYXgtaW5saW5lLXNpemU6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO30KLyogRXRpcXVldGEgb3BjaW9uYWwganVudG8gYWwgY2FycnVzZWwgZGUgbG9nb3MgKHAuZWouICJQYXRyb2NpbmFkbyBwb3I6IikgJiM4MjEyOwogICB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1vaXkzMCAuaGVhZGVyMi1sb2dvcy1sYWJlbHtmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzY2Nzt3aGl0ZS1zcGFjZTpub3dyYXA7fQouYmxrLW9peTMwIC5oZWFkZXIyLWxvZ29ze3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjE2MHB4O2Jsb2NrLXNpemU6NTBweDtmbGV4LXNocmluazowO30KLmJsay1vaXkzMCAuaGVhZGVyMi1sb2dvcyBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDttYXJnaW46YXV0bzttYXgtaW5saW5lLXNpemU6MTAwJTttYXgtYmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y29udGFpbjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC43cyBlYXNlLWluLW91dDt9Ci5ibGstb2l5MzAgLmhlYWRlcjItbG9nb3MgaW1nLmlzLWFjdGl2ZXtvcGFjaXR5OjE7fQovKiBJZ3VhbCBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbDogcG9yIGRlYmFqbyBkZSBlc3RlIGFuY2hvIHNlCiAgIGludGVudGEgcHJpbWVybyAxIFNPTEEgRklMQSAoZXRpcXVldGFzK3RpdHVsYXIganVudG8gYWwgbG9nbywgaWd1YWwgcXVlCiAgIGVuIERlc2ssIGEgdGFtYfFvIHJlZHVjaWRvKS4gRWwgYmxvcXVlIGRlIGxvZ29zIG1hbnRpZW5lIFNJRU1QUkUgc3UKICAgZGlzcG9zaWNp824gZW4gY29sdW1uYSAoZXRpcXVldGEgZGUgcGF0cm9jaW5pbyBlbmNpbWEgZGVsIGxvZ28sCiAgIGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEsIHNpbiBzZXBhcmFjafNuKSB0YW50byBlbiBlc3RhIGZpbGEg+m5pY2EgY29tbyBlbgogICBlbCByZXNndWFyZG8gZGUgYWJham8uIFNpIGVsIHRpdHVsYXIsIHN1bWFkbyBhbCBhbmNobyBkZSBsYXMgZXRpcXVldGFzCiAgIGFjdGl2YXMgKGNhdGVnb3LtYSB5L28gZXhjbHVzaXZhLCBzaSBsYXMgaGF5KSwgc3VwZXJhIGVsIDU1JSBkZWwgYW5jaG8KICAgdG90YWwgZGUgbGEgY2FiZWNlcmEgKGNhZGEgdW5vIG1lZGlkbyBhIHVuYSBzb2xhIGztbmVhKSwgZWwgc2NyaXB0CiAgIHN0YW5kYWxvbmUgYfFhZGlkbyBhbCBmaW5hbCBkZSBlc3RlIEhUTUwgKHZlcgogICBidWlsZEhlYWRlcjJTdGFja2luZ1NjcmlwdCgpKSBsbyBkZXRlY3RhIG1pZGllbmRvIHN1IGFuY2hvIG5hdHVyYWwKICAgeSBh8WFkZSBsYSBjbGFzZSAiaGVhZGVyMi1zdGFja2VkIjogZWwgYmxvcXVlIGRlCiAgIGxvZ29zIHN1YmUgZW50b25jZXMgYSBzdSBwcm9waWEgZmlsYSAoYWxpbmVhZG8gYSBsYSBkZXJlY2hhKSB5CiAgIHRpdHVsYXIrZXRpcXVldGFzIGJhamFuIGEgbGEgZmlsYSBkZSBhYmFqbywgYSBhbmNobyBjb21wbGV0byAmIzgyMTI7IG1pc21vCiAgIGxheW91dCBkZSAyIGZpbGFzIHF1ZSBoYWLtYSBhbnRlcyBzaWVtcHJlIHBvciBkZWJham8gZGUgZXN0ZSBicmVha3BvaW50LAogICBhaG9yYSBzb2xvIGNvbW8gcmVzZ3VhcmRvLiBEZW50cm8gZGUgZXNlIHJlc2d1YXJkbywgY29uIGV0aXF1ZXRhKHMpIGVsCiAgIHRpdHVsYXIgcGFzYSBhZGVt4XMgYSBzdSBQUk9QSUEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvLCBkZWJham8gZGUgbGEgZmlsYSBkZSBldGlxdWV0YXMgKHZlcgogICAiLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0IiBt4XMgYWJham8pLiBFbCBsb2dvIHNlIHJlZHVjZSB1biAyMCUKICAgKDE2MHg1MCAmIzg1OTQ7IDEyOHg0MCkuCiAgIGFsaWduLXNlbGY6ZmxleC1lbmQgZW4gaGVhZGVyMi1sZWZ0IGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgbG9zIDEwcHgKICAgZGVsIHBhZGRpbmctYm90dG9tIHJlc3BlY3RvIGEgbGEgbO1uZWEgc2VwYXJhZG9yYSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZQogICBlbiBEZXNrICh2ZXIgaGVhZGVyMi1sZWZ0IG3hcyBhcnJpYmEpOiBzaW4gZXN0bywgYWwgc2VyIGVsIGJsb3F1ZSBkZQogICBsb2dvcyBt4XMgYWx0byBxdWUgZWwgdGl0dWxhciwgZWwgY2VudHJhZG8gdmVydGljYWwgZGVsIHJvdyBkZWphYmEgdW4KICAgaHVlY28gbWF5b3IgZW50cmUgZWwgdGl0dWxhciB5IGxhIGztbmVhLiBFbCBibG9xdWUgZGUgbG9nb3Mgc2lndWUKICAgY2VudHJhZG8gKHNpbiBlc2Ugb3ZlcnJpZGUpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstb2l5MzAgLmhlYWRlcjJ7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1ib3R0b206MTBweDt9CiAgLmJsay1vaXkzMCAuaGVhZGVyMi1sZWZ0e29yZGVyOjE7YWxpZ24tc2VsZjpmbGV4LWVuZDt9CiAgLmJsay1vaXkzMCAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjI7YWxpZ24tc2VsZjpjZW50ZXI7bWF4LWlubGluZS1zaXplOm5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAuYmxrLW9peTMwIC5oZWFkZXIyLWxvZ29ze2lubGluZS1zaXplOjEyOHB4O2Jsb2NrLXNpemU6NDBweDt9CiAgLmJsay1vaXkzMCAuaGVhZGVyMi10aXRsZXtmb250LXNpemU6MjdweDt9CiAgLmJsay1vaXkzMCAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fQogIC5ibGstb2l5MzAgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnR7b3JkZXI6MjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Z2FwOjVweDt9CiAgLmJsay1vaXkzMCAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoxO21heC1pbmxpbmUtc2l6ZToxMDAlO2FsaWduLXNlbGY6ZmxleC1lbmQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAvKiBSZXNndWFyZG8gaW50ZXJtZWRpbyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGE6IHNvbG8gZWwgdGl0dWxhciBiYWphIGEgc3UKICAgICBwcm9waWEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvIGN1YW5kbyBsYXMgZXRpcXVldGFzIFPNIGNhYmVuIGp1bnRvIGFsCiAgICAgbG9nbyBwZXJvIGVsIHRpdHVsYXIgbm8uIGhlYWRlcjItbGVmdCBwYXNhIGRlIGZpbGEgYSBjb2x1bW5hCiAgICAgKGV0aXF1ZXRhcyBhcnJpYmEsIHRpdHVsYXIgZGViYWpvKSB5IHJlY3VwZXJhIGFsaWduLXNlbGY6YXV0byBwYXJhCiAgICAgY2VudHJhcnNlIHZlcnRpY2FsbWVudGUgY29udHJhIGVsIGxvZ28gKGFsaWduLXNlbGY6Y2VudGVyIGRlIGxhIHJlZ2xhCiAgICAgYmFzZSBkZSAuaGVhZGVyMi1sb2dvcy13cmFwLCBhcnJpYmEpLCBpZ3VhbCBxdWUgZW4gZWwgcmVzdG8gZGUgZXN0YWRvcy4gKi8KICAuYmxrLW9peTMwIC5oZWFkZXIyLmhlYWRlcjItdGl0bGUtYmVsb3cgLmhlYWRlcjItbGVmdHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1zZWxmOmF1dG87Z2FwOjVweDt9Cn0KCi8qIEVzdGlsbyAiZm90byBncmFuZGUgKyB0aXR1bGFyIjogZm90byAxNjo5IGFycmliYSwgdGl0dWxhciBkZWJham8gJiM4MjEyOyBlbGVnaWJsZQogICBwb3Igbm90aWNpYSBkZXNkZSBlbCBnZXN0b3IuIE5vIHNlIHJlc3RyaW5nZSBjb24gQGNvbnRhaW5lciBwb3JxdWUKICAgLmNvbHVtbi1pdGVtIHlhIGVzIGJsb2NrIHBvciBkZWZlY3RvIChlbCB0aHVtYiB5IGVsIHRleHRvIHNlIGFwaWxhbiBzb2xvcwogICBzaW4gbeFzIGFqdXN0ZSksIGFz7SBxdWUgZWwgZGlzZfFvIGZ1bmNpb25hIGlndWFsIGRlIGJpZW4gZW4gY3VhbHF1aWVyCiAgIGFuY2hvLCBEZXNrIG8gTfN2aWwuICovCi5ibGstb2l5MzAgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3B7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstb2l5MzAgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLnRodW1ie2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay1vaXkzMCAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6OTAwO30KLyogRW4gTfN2aWwgZWwgdGl0dWxhciBkZSBlc3RlIGRpc2XxbyBzZSBtdWVzdHJhIG3hcyBncmFuZGUgKDEuNXJlbSBlbiB2ZXogZGUKICAgbG9zIDEuMnJlbSBkZSBEZXNrKSAmIzgyMTI7IG1pc21hIGVzcGVjaWZpY2lkYWQgKDMgY2xhc2VzKSBxdWUgbGEgcmVnbGEgZGUKICAgYXJyaWJhOyBhbCBpciBERVNQVclTIGVuIGVsIENTUyBnYW5hIHBvciBvcmRlbiBkZSBjYXNjYWRhLiBTZSB1c2EgZWwKICAgYnJlYWtwb2ludCBkZSA0ODBweCAoZWwgZGUgdGlwb2dyYWbtYSBlbiBlc3RhIGFwcCwgbm8gZWwgZGUgODYwcHggcXVlIGFxde0KICAgc29sbyBnb2JpZXJuYSBlbCBhcGlsYWRvIGRlIGNvbHVtbmFzKSBwYXJhIHF1ZSBjb2luY2lkYSBjb24gZWwgcmVzdG8gZGUKICAgY2FtYmlvcyBkZSB0ZXh0by90YW1h8W8gcG9yIHZpc3RhLiBObyBhZmVjdGEgYWwgcmVzZ3VhcmRvIGRlIDIgY29sdW1uYXMgZW4KICAgbfN2aWwgKG1vYi1ncmlkKSwgbeFzIGVzcGVj7WZpY28gKDE4cHgsIHZlciBt4XMgYXJyaWJhKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLW9peTMwIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxLjVyZW07fQp9Ci8qIEVzdGlsbyAiQmxvcXVlIG1lZGlhIiAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW9peTMwIC5tZWRpYS1ibG9jay1tZWRpYXtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTphdXRvO30KLmJsay1vaXkzMCAubWVkaWEtYmxvY2std3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO30KLmJsay1vaXkzMCAubWVkaWEtYmxvY2staWZyYW1lLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay1vaXkzMCAubWVkaWEtYmxvY2staWZyYW1lLXdyYXAgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstb2l5MzAgLmNvbHVtbi1pdGVtLmxheW91dC1tZWRpYS1ibG9ja3tib3JkZXI6bm9uZTtwYWRkaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtibG9jay1zaXplOmF1dG87ZmxleDowIDAgYXV0bzt9Ci5ibGstb2l5MzAgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKXtmbGV4OjEgMSBhdXRvO30KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImJsay1vaXkzMCI+CiAgCiAgPG1haW4gY2xhc3M9InBhZ2UiPgogICAgCiAgICA8YXJ0aWNsZSBjbGFzcz0ibGVhZCBsZWFkLWJvZHktbGVmdCI+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtbWVkaWEiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvZmVpam9vLWxsZXZhLWVuLXN1LXByb2dyYW1hLWVsLXJldG9ybm8tZGUtbG9zLW1lbmFzLWFsLXBhaXMtZGUtb3JpZ2VuLWVuLWx1Z2FyLWRlLXJlcGFydGlybG9zLXBvci1sYXMtY29tdW5pZGFkZXMtMjAyNjExMDgtMTAyMzE3LTA1ZWFkOS5qcGciIGFsdD0iRmVpavNvIGxsZXZhIGVuIHN1IHByb2dyYW1hIGVsIHJldG9ybm8gZGUgbG9zIG1lbmFzIGFsIHBh7XMgZGUgb3JpZ2VuIGVuIGx1Z2FyIGRlIHJlcGFydGlybG9zIHBvciBsYXMgY29tdW5pZGFkZXMiIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIDxidXR0b24gY2xhc3M9InBsYXktYnV0dG9uIHBvcy10b3AtcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48ZGl2IGNsYXNzPSJwbGF5LWljb24iPjwvZGl2PjxzcGFuIGNsYXNzPSJwbGF5LXRleHQiPlBsYXk8L3NwYW4+PC9idXR0b24+CiAgICAgICAgCiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHkiIHN0eWxlPSJiYWNrZ3JvdW5kOiMwMEE3RkY7Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzAwQTdGRiI+RVNQQdFBPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keS1tYWluIj4KICAgICAgICAgIAogICAgICAgICAgPGgyIGNsYXNzPSJsZWFkLXRpdGxlIj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1kZXNrIj5GZWlq828gbGxldmEgZW4gc3UgcHJvZ3JhbWEgZWwgcmV0b3JubyBkZSBsb3MgbWVuYXMgYWwgcGHtcyBkZSBvcmlnZW4gZW4gbHVnYXIgZGUgcmVwYXJ0aXJsb3MgcG9yIGxhcyBjb211bmlkYWRlczwvc3Bhbj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1tb2JpbGUiPkZlaWrzbyBsbGV2YSBlbiBzdSBwcm9ncmFtYSBlbCByZXRvcm5vIGRlIGxvcyBtZW5hcyBhbCBwYe1zIGRlIG9yaWdlbiBlbiBsdWdhciBkZSByZXBhcnRpcmxvcyBwb3IgbGFzIGNvbXVuaWRhZGVzPC9zcGFuPjwvaDI+CiAgICAgICAgICAKICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRob3ItbGFiZWwiPlNlZ3VuZG8gU2Fuejwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxhIGNsYXNzPSJsZWFkLWxpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGFuYS9mZWlqb28tbGxldmEtcHJvZ3JhbWEtcmV0b3Juby1tZW5hcy1wYWlzLW9yaWdlbi1sdWdhci1yZXBhcnRpcmxvcy1jb211bmlkYWRlcy0yMDcyMDQyNCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJGZWlq828gbGxldmEgZW4gc3UgcHJvZ3JhbWEgZWwgcmV0b3JubyBkZSBsb3MgbWVuYXMgYWwgcGHtcyBkZSBvcmlnZW4gZW4gbHVnYXIgZGUgcmVwYXJ0aXJsb3MgcG9yIGxhcyBjb211bmlkYWRlcyIgYXJpYS1sYWJlbD0iRmVpavNvIGxsZXZhIGVuIHN1IHByb2dyYW1hIGVsIHJldG9ybm8gZGUgbG9zIG1lbmFzIGFsIHBh7XMgZGUgb3JpZ2VuIGVuIGx1Z2FyIGRlIHJlcGFydGlybG9zIHBvciBsYXMgY29tdW5pZGFkZXMiPjwvYT4KICAgIDwvYXJ0aWNsZT4KICA8L21haW4+CjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYmxrLW9peTMwIC5sZWFkJyk7CiAgaWYgKCFhcnRpY2xlKSByZXR1cm47CiAgdmFyIG1haW4gPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLWJvZHktbWFpbicpOwogIHZhciB0aXRsZUVsID0gYXJ0aWNsZS5xdWVyeVNlbGVjdG9yKCcubGVhZC10aXRsZScpOwogIGlmICghbWFpbiB8fCAhdGl0bGVFbCkgcmV0dXJuOwogIHZhciBiYXNlRm9udFNpemVQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aXRsZUVsKS5mb250U2l6ZSkgfHwgMDsKICBpZiAoIWJhc2VGb250U2l6ZVB4KSByZXR1cm47CiAgdmFyIE1BWF9TQ0FMRSA9IDEuODsKICB2YXIgTUlOX1NDQUxFID0gMC41OwogIHZhciBNQVhfRk9OVF9QWCA9IDY0OyAvLyB+NHJlbSBjb24gbGEgYmFzZSBoYWJpdHVhbCBkZSAxNnB4IChtaXNtbyB0b3BlIHF1ZSBmaXRMZWFkVGl0bGVUb0JveCgpIGVuIGVsIGdlc3RvcikKICB2YXIgYm9keVBvc2l0aW9uQmxvY2tzRml0ID0gYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1sZWZ0JykgfHwgYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1yaWdodCcpOwogIGZ1bmN0aW9uIGZpdCgpewogICAgaWYgKGJvZHlQb3NpdGlvbkJsb2Nrc0ZpdCkgcmV0dXJuOwogICAgdGl0bGVFbC5zdHlsZS5mb250U2l6ZSA9IGJhc2VGb250U2l6ZVB4ICsgJ3B4JzsKICAgIHZhciBhdmFpbGFibGVIZWlnaHQgPSBtYWluLmNsaWVudEhlaWdodDsKICAgIGlmICghYXZhaWxhYmxlSGVpZ2h0KSByZXR1cm47CiAgICAvLyBWZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBmaXRMZWFkVGl0bGVUb0JveCgpIGRlbCBnZXN0b3I6CiAgICAvLyBtYWluLnNjcm9sbEhlaWdodCBudW5jYSBiYWphIGRlIGNsaWVudEhlaWdodCBhdW5xdWUgZWwgY29udGVuaWRvIHJlYWwKICAgIC8vIG9jdXBlIG1lbm9zLCBhc+0gcXVlIG5vIHNpcnZlIHBhcmEgZGV0ZWN0YXIgY3XhbnRvIHNvYnJhIG8gZmFsdGEgY29uCiAgICAvLyBlbCB0aXR1bGFyIGFjdHVhbCAmIzgyMTI7IHNlIHN1bWEgZW4gc3UgbHVnYXIgZWwgYWx0byByZWFsIGRlIGNhZGEgaGlqbwogICAgLy8gVklTSUJMRSBkZWwgYmxvcXVlLCBzYWx2byBlbCBwcm9waW8gdGl0dWxhciwgbeFzIGVsIGh1ZWNvICgiZ2FwIikKICAgIC8vIGVudHJlIGVsbG9zOyBubyBjYW1iaWEgY29uIGVsIHRhbWHxbyBkZWwgdGl0dWxhciwgYXPtIHF1ZSBzZSBtaWRlIHVuYQogICAgLy8gc29sYSB2ZXosIGFudGVzIGRlIGxhIGL6c3F1ZWRhIGJpbmFyaWEuCiAgICB2YXIgZ2FwUHggPSBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikucm93R2FwKSB8fCBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikuZ2FwKSB8fCAwOwogICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IFtdLnNsaWNlLmNhbGwobWFpbi5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uKGMpeyByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShjKS5kaXNwbGF5ICE9PSAnbm9uZSc7IH0pOwogICAgdmFyIG90aGVyc0hlaWdodCA9IHZpc2libGVDaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBjICE9PSB0aXRsZUVsOyB9KS5yZWR1Y2UoZnVuY3Rpb24oc3VtLCBjKXsgcmV0dXJuIHN1bSArIGMub2Zmc2V0SGVpZ2h0OyB9LCAwKQogICAgICArIGdhcFB4ICogTWF0aC5tYXgoMCwgdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCAtIDEpOwogICAgdmFyIGF2YWlsYWJsZUZvclRpdGxlID0gTWF0aC5tYXgoMCwgYXZhaWxhYmxlSGVpZ2h0IC0gb3RoZXJzSGVpZ2h0KTsKICAgIGlmICghYXZhaWxhYmxlRm9yVGl0bGUpIHJldHVybjsKICAgIGZ1bmN0aW9uIGhlaWdodEF0U2NhbGUoc2NhbGUpewogICAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gTWF0aC5taW4oYmFzZUZvbnRTaXplUHggKiBzY2FsZSwgTUFYX0ZPTlRfUFgpICsgJ3B4JzsKICAgICAgcmV0dXJuIHRpdGxlRWwub2Zmc2V0SGVpZ2h0OwogICAgfQogICAgdmFyIGxvID0gTUlOX1NDQUxFLCBoaSA9IE1BWF9TQ0FMRTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKXsKICAgICAgdmFyIG1pZCA9IChsbyArIGhpKSAvIDI7CiAgICAgIGlmIChoZWlnaHRBdFNjYWxlKG1pZCkgPD0gYXZhaWxhYmxlRm9yVGl0bGUpIGxvID0gbWlkOyBlbHNlIGhpID0gbWlkOwogICAgfQogICAgaGVpZ2h0QXRTY2FsZShsbyk7CiAgfQogIGZpdCgpOwogIGlmIChkb2N1bWVudC5mb250cyAmJiBkb2N1bWVudC5mb250cy5yZWFkeSl7IGRvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oZml0KTsgfQogIGlmICh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpeyBuZXcgUmVzaXplT2JzZXJ2ZXIoZml0KS5vYnNlcnZlKGFydGljbGUpOyB9CiAgZWxzZSB7IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXQpOyB9Cn0pKCk7Cjwvc2NyaXB0Pg==
      CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLWJ1eXY4e21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay1idXl2OCBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstYnV5djggLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstYnV5djggLnBhZ2UgLmNvbHVtbntvcmRlcjozfQouYmxrLWJ1eXY4IC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstYnV5djh7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay1idXl2OCAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstYnV5djggLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLWJ1eXY4IC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstYnV5djggLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay1idXl2OCAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86MTYvOSAhaW1wb3J0YW50O30KICAuYmxrLWJ1eXY4IC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay1idXl2OCAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay1idXl2OCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLWJ1eXY4IC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGstYnV5djggLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay1idXl2OCAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay1idXl2OCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGstYnV5djggLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay1idXl2OCAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay1idXl2OCAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstYnV5djggLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstYnV5djggLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstYnV5djggLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay1idXl2OCAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLWJ1eXY4IC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLWJ1eXY4IC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstYnV5djggLmxlYWQtdGl0bGV7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAuYmxrLWJ1eXY4IC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGstYnV5djggLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstYnV5djggLmF1dGhvci1sYWJlbHt0ZXh0LWFsaWduOmNlbnRlcjt9CiAgLmJsay1idXl2OCAubGVhZC1raWNrZXItZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1idXl2OCAubGVhZC1raWNrZXItbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstYnV5djggLmxlYWQtc3VidGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1idXl2OCAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1idXl2OCAubGVhZC1hbmltLWhlYWRsaW5lc3tmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIAogIC5ibGstYnV5djggLnJlbGF0ZWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1idXl2OCAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9Cn0KLmJsay1idXl2OCAubGVhZHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmY7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay1idXl2OCAubGVhZC1tZWRpYXtwb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVufQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWU6IGFsdG8gZmlqbyBlbiBw7XhlbGVzIGVuIHZleiBkZSBsYSBwcm9wb3JjafNuIGRlCiAgIGFycmliYSAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgc3RhdGUubGVhZC5pZnJhbWVIZWlnaHQpICYjODIxMjsgZWwKICAgdmFsb3IgZGUgTfN2aWwgc2Ugc29icmVzY3JpYmUgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sIGlndWFsIHF1ZSBlbAogICByZXN0byBkZSBvdmVycmlkZXMgcmVzcG9uc2l2ZSBkZSBlc3RlIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLWJ1eXY4IC5sZWFkLW1lZGlhLmlzLWlmcmFtZXthc3BlY3QtcmF0aW86bm9uZTtibG9jay1zaXplOjY0MHB4O30KLmJsay1idXl2OCAubGVhZC1tZWRpYSBpbWcsCi5ibGstYnV5djggLmxlYWQtbWVkaWEgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQovKiBDYXJydXNlbCBkZSBmb3RvcyBkZSBmb25kbyBjb24gZWZlY3RvIEtlbiBCdXJucyAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLgogICBMYSBkdXJhY2nzbiBkZSBsYXMgYW5pbWFjaW9uZXMgKDZzKSBjb2luY2lkZSBjb24KICAgTEVBRF9DQVJPVVNFTF9JTlRFUlZBTCwgcXVlIHRhbWJp6W4gZ29iaWVybmEgZWwgc2NyaXB0IGRlIHJvdGFjafNuCiAgIChidWlsZExlYWRDYXJvdXNlbFNjcmlwdCkgYfFhZGlkbyBhbCBmaW5hbCBkZWwgSFRNTCBleHBvcnRhZG8uICovCi5ibGstYnV5djggLmxlYWQtY2Fyb3VzZWx7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLWJ1eXY4IC5sZWFkLWNhcm91c2VsLXNsaWRle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAxLjVzIGVhc2U7fQouYmxrLWJ1eXY4IC5sZWFkLWNhcm91c2VsLXNsaWRlLmlzLWFjdGl2ZXtvcGFjaXR5OjE7ei1pbmRleDoxO30KLmJsay1idXl2OCAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO30KLmJsay1idXl2OCAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQob2RkKSBpbWd7YW5pbWF0aW9uOmJsay1idXl2OC1rZW5idXJucy1hIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KLmJsay1idXl2OCAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQoZXZlbikgaW1ne2FuaW1hdGlvbjpibGstYnV5djgta2VuYnVybnMtYiA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9CkBrZXlmcmFtZXMgYmxrLWJ1eXY4LWtlbmJ1cm5zLWF7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IH0KQGtleWZyYW1lcyBibGstYnV5djgta2VuYnVybnMtYnsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKDQlLDMlKTt9IH0KLyogQ29uIHVuYSD6bmljYSBmb3RvIChzaW4gcm90YWNp824gcG9zaWJsZSkgc2UgYXBsaWNhIHVuIHpvb20gaW4vb3V0IGVuCiAgIGJ1Y2xlIGluZmluaXRvIGVuIHZleiBkZWwgcmVjb3JyaWRvIPpuaWNvIChmb3J3YXJkcykgZGUgYXJyaWJhLiAqLwouYmxrLWJ1eXY4IC5sZWFkLWNhcm91c2VsLmlzLXNpbmdsZSAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7YW5pbWF0aW9uOmJsay1idXl2OC1rZW5idXJucy1sb29wIDE0cyBlYXNlLWluLW91dCBpbmZpbml0ZTt9CkBrZXlmcmFtZXMgYmxrLWJ1eXY4LWtlbmJ1cm5zLWxvb3B7IDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IDUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gMTAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB9Ci8qIENvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcyAoZGVzbGl6YWRvcikgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1idXl2OCAubGVhZC1jb21wYXJle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3RvdWNoLWFjdGlvbjpub25lO3otaW5kZXg6Mjt9Ci5ibGstYnV5djggLmxlYWQtY29tcGFyZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpjZW50ZXI7ZGlzcGxheTpibG9jazt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1kcmFnOm5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstYnV5djggLmxlYWQtY29tcGFyZS1iZWZvcmV7Y2xpcC1wYXRoOmluc2V0KDAgNTAlIDAgMCk7d2lsbC1jaGFuZ2U6Y2xpcC1wYXRoO30KLmJsay1idXl2OCAubGVhZC1jb21wYXJlLXJhbmdle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7bWFyZ2luOjA7b3BhY2l0eTowO2N1cnNvcjpldy1yZXNpemU7fQouYmxrLWJ1eXY4IC5sZWFkLWNvbXBhcmUtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6NTAlO2lubGluZS1zaXplOjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjI7fQouYmxrLWJ1eXY4IC5sZWFkLWNvbXBhcmUtaGFuZGxlOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7aW5saW5lLXNpemU6MnB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOSk7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgwLDAsMCwuMjUpO30KLmJsay1idXl2OCAubGVhZC1jb21wYXJlLWhhbmRsZTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6LTE1cHg7aW5saW5lLXNpemU6MzBweDtibG9jay1zaXplOjMwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmIHVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJz48ZyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAwMCcgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnPjxwYXRoIGQ9J004IDYgTDQgMTAgTDggMTQnLz48cGF0aCBkPSdNMTIgNiBMMTYgMTAgTDEyIDE0Jy8+PC9nPjwvc3ZnPiIpIGNlbnRlci8xNnB4IDE2cHggbm8tcmVwZWF0O2JveC1zaGFkb3c6MCAycHggNnB4IHJnYmEoMCwwLDAsLjI1KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjI1KTt9Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBNaXNtbyB6LWluZGV4OjIgcXVlCiAgIC5sZWFkLWNvbXBhcmUsIHBvciBlbCBtaXNtbyBtb3Rpdm8gKGdhbmFybGUgYSAubGVhZC1saW5rKS4gKi8KLmJsay1idXl2OCAubGVhZC1pZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7ei1pbmRleDoyO30KLmJsay1idXl2OCAubGVhZC1pZnJhbWUgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstYnV5djggLmxlYWQtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay1idXl2OCAubGVhZC1ib2R5e3BhZGRpbmc6MHB4IDIwcHggMjBweCAyMHB4OztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo2OyBwb2ludGVyLWV2ZW50czpub25lOyBpbmxpbmUtc2l6ZTo5NSU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBtYXJnaW4tdG9wOi0zMHB4OyBiYWNrZ3JvdW5kOiMwRTExMUE7IGZsZXg6MSAxIGF1dG87fQovKiBBbnRldO10dWxvL3RpdHVsYXIvc3VidO10dWxvL2F1dG9yIGNlbnRyYWRvcyBlbiB2ZXJ0aWNhbCBkZW50cm8gZGVsIGFsdG8KICAgc29icmFudGUgYmFqbyBsYSBjYXRlZ29y7WEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1idXl2OCAubGVhZC1ib2R5LW1haW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtpbmxpbmUtc2l6ZToxMDAlO2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO30KLyogQXBhcmllbmNpYSBuZWdhdGl2YSAocG9yIGRlZmVjdG8pIHZzLiBwb3NpdGl2YSBkZSBsYSBjYWphIGRlIHRpdHVsYXIgJiM4MjEyOyB2ZXIKICAgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1idXl2OCAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLWJvZHl7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTt9Ci5ibGstYnV5djggLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC10aXRsZSwKLmJsay1idXl2OCAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5hdXRob3ItbGFiZWx7Y29sb3I6IzBFMTExQTt9Ci8qIFBvc2ljafNuIGRlbCBsZWFkLWJvZHkgcmVzcGVjdG8gYWwgbGVhZC1tZWRpYSAoJ2xlZnQnLydyaWdodCcpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstYnV5djggLmxlYWQubGVhZC1ib2R5LWxlZnQsCi5ibGstYnV5djggLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOnJvdzthc3BlY3QtcmF0aW86Mi45NjI5NjI5NjI5NjI5NjM7fQouYmxrLWJ1eXY4IC5sZWFkLmxlYWQtYm9keS1sZWZ0e2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO30KLmJsay1idXl2OCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKLmJsay1idXl2OCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDowIDAgNjAlO30KLmJsay1idXl2OCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAouYmxrLWJ1eXY4IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MCAwIGNhbGMoNDAlICsgMzBweCk7aW5saW5lLXNpemU6YXV0bzttYXJnaW4tdG9wOjA7YmxvY2stc2l6ZTpjYWxjKDEwMCUgLSA0MnB4KTthbGlnbi1zZWxmOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt9Ci5ibGstYnV5djggLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDotMzBweDt9Ci5ibGstYnV5djggLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6LTMwcHg7bWFyZ2luLXJpZ2h0OjA7fQovKiBQb3NpY2nzbiAnYm90dG9tLWZ1bGwnIGRlbCBsZWFkLWJvZHkgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gaW5saW5lLXNpemUKICAgZW4gdmV6IGRlIHdpZHRoIHBvciBlbCBtaXNtbyBtb3Rpdm8gcXVlIGVsIHJlc3RvIGRlIGVzdGUgYmxvcXVlIChldml0YXIKICAgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbCB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MKICAgZGlyZWN0YW1lbnRlKS4gKi8KLmJsay1idXl2OCAubGVhZC5sZWFkLWJvZHktYm90dG9tLWZ1bGwgLmxlYWQtYm9keXsKICBpbmxpbmUtc2l6ZToxMDAlOwogIG1hcmdpbjowOwogIHBhZGRpbmctdG9wOjMwcHg7CiAgcGFkZGluZy1ib3R0b206MzBweDsKICBib3JkZXI6bm9uZTsKfQovKiBFdGlxdWV0YSBkZSBleGNsdXNpdmEgKG8gdGV4dG8gcGVyc29uYWxpemFkbykgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1idXl2OCAubGVhZC1leGNsdXNpdmUtdGFne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDt6LWluZGV4OjM7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtsZXR0ZXItc3BhY2luZzowLjVweDtwYWRkaW5nOjJweCA4cHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTouOGVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojZmZmO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtwb2ludGVyLWV2ZW50czpub25lO30KLyogU2VsZWN0b3IgY29uIDMgY2xhc2VzICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKCIubGVhZC1tZWRpYSBpbWciIHRhbWJp6W4KICAgbWF0Y2hlYSBlc3RlIDxpbWc+IHkgbGUgZ2FuYWJhIGVuIGVzcGVjaWZpY2lkYWQpLiAqLwouYmxrLWJ1eXY4IC5sZWFkLWV4Y2x1c2l2ZS10YWcgLmxlYWQtZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLWJ1eXY4IC5sZWFkLWNhdHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06c2tld1koLTZkZWcpO21hcmdpbi10b3A6LTE1cHg7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay1idXl2OCAubGVhZC1raWNrZXIsIC5ibGstYnV5djggLmxlYWQtc3VidGl0bGV7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO3RleHQtdHJhbnNmb3JtOm5vbmU7bWFyZ2luOjA7Cn0KLmJsay1idXl2OCAubGVhZC1raWNrZXJ7Zm9udC13ZWlnaHQ6NzAwO30KLmJsay1idXl2OCAubGVhZC1zdWJ0aXRsZXtmb250LXdlaWdodDo2MDA7fQovKiBUYW1h8W8vaW50ZXJsaW5lYWRvL2NvbG9yIGRlIGFudGV07XR1bG8geSBzdWJ07XR1bG8gZW4gRGVzayAodmFsb3JlcyBwb3IKICAgZGVmZWN0byBkZWwgYmxvcXVlOyBlbCBvdmVycmlkZSBkZSBN83ZpbCB2YSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywKICAgeWEgcXVlIGVsIEhUTUwgZXhwb3J0YWRvIGVzIHJlc3BvbnNpdmUgeSBubyBkZXBlbmRlIGRlIHF16SB2aXN0YSB0dXZpZXJhcwogICBzZWxlY2Npb25hZGEgZW4gZWwgZ2VzdG9yIGFsIGV4cG9ydGFyL2NvcGlhcikuICovCi5ibGstYnV5djggLmxlYWQta2lja2Vye2ZvbnQtc2l6ZToxLjMxMjVyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiMwMEE3RkY7fQouYmxrLWJ1eXY4IC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW07bGluZS1oZWlnaHQ6MS4xO2NvbG9yOiMwMEE3RkY7fQovKiB0ZXh0LXdyYXA6YmFsYW5jZSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZSBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsCiAgIGRlbCBnZXN0b3IgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIGVzYSByZWdsYSk6IHJlcGFydGUgbGFzCiAgIGztbmVhcyBkZWwgdGl0dWxhciBkZSBmb3JtYSBt4XMgdW5pZm9ybWUgZGVudHJvIGRlIGNhZGEgZGlzcG9zaXRpdm8sIHNpbgogICBwcmV0ZW5kZXIgaWd1YWxhciBlbCBu+m1lcm8gZGUgbO1uZWFzIGVudHJlIHBsYXRhZm9ybWFzIGRpc3RpbnRhcy4gKi8KLmJsay1idXl2OCAubGVhZC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZToycmVtO2xpbmUtaGVpZ2h0OjE7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt0ZXh0LXdyYXA6YmFsYW5jZTt9Ci8qIFRpdHVsYXIgY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGEgKHZlciBidWlsZFNjb3BlZEhUTUwpOgogICBzZSBnZW5lcmFuIGxvcyBkb3MgdGV4dG9zIChEZXNrL03zdmlsKSB5IGFxde0gc2UgbXVlc3RyYSBzb2xvIHVubyBzZWf6biBlbAogICBhbmNobyByZWFsIGRlbCBjb250ZW5lZG9yICYjODIxMjsgZWwgbWlzbW8gbWVjYW5pc21vIGRlIEBjb250YWluZXIgcXVlIHlhIHVzYSBlbAogICByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8gcGFyYSBhZGFwdGFyc2Ugc2luIGRlcGVuZGVyIGRlIEpTLiAqLwouYmxrLWJ1eXY4IC5sZWFkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBBbnRldO10dWxvL3N1YnTtdHVsbyBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YTogbWlzbW8KICAgbWVjYW5pc21vIGRlIEBjb250YWluZXIgcXVlIGVsIHRpdHVsYXIgKHZlciBhcnJpYmEpLiAqLwouYmxrLWJ1eXY4IC5sZWFkLWtpY2tlci1tb2JpbGUsIC5ibGstYnV5djggLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIFRpdHVsYXIgZGUgbm90aWNpYSByZWxhY2lvbmFkYSAoY29sdW1uYSkgY29uIHRleHRvIHByb3BpbyBlbiBN83ZpbCAodmVyCiAgIGl0ZW0udGl0bGVNb2JpbGUgZW4gYnVpbGRDb2x1bW5JdGVtVGl0bGVIVE1MKTogbWlzbW8gbWVjYW5pc21vIGRlCiAgIEBjb250YWluZXIgcXVlIGVsIHRpdHVsYXIgcHJpbmNpcGFsIGRlIGFycmliYS4gKi8KLmJsay1idXl2OCAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLmJsay1idXl2OCAuYXV0aG9yLWxhYmVse2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXNpemU6LjhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpyaWdodDtkaXNwbGF5OmJsb2NrfQouYmxrLWJ1eXY4IC5jb2x1bW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47fQouYmxrLWJ1eXY4IC5jb2x1bW4taXRlbXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZmZmO2Jsb2NrLXNpemU6c3RyZXRjaDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLWJ1eXY4IC50aHVtYntwb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzo0LzM7YmFja2dyb3VuZDojZWVlO292ZXJmbG93OmhpZGRlbn0KLmJsay1idXl2OCAudGh1bWIgaW1nLAouYmxrLWJ1eXY4IC50aHVtYiB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci5ibGstYnV5djggLnRodW1iIC5wbGF5LXNxdWFyZSwKLmJsay1idXl2OCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmV7CiAgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTo1cHg7IGxlZnQ6NXB4OwogIGlubGluZS1zaXplOjI1cHg7YmxvY2stc2l6ZToyNXB4O2JvcmRlci1yYWRpdXM6MnB4O2Rpc3BsYXk6aW5saW5lLWdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyOwogIGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE4KTsKICBjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cywgdHJhbnNmb3JtIC4xMnM7CiAgei1pbmRleDoyOyBhbmltYXRpb246YmxrLWJ1eXY4LWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstYnV5djggLnRodW1iIC5wbGF5LXNxdWFyZTo6YmVmb3JlLAouYmxrLWJ1eXY4IC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo2cHggc29saWQgI2ZmZjtib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjVweCBzb2xpZCB0cmFuc3BhcmVudDsKICBtYXJnaW4tbGVmdDoycHg7Cn0KLmJsay1idXl2OCAudGh1bWIgLnBsYXktc3F1YXJlOmhvdmVyLAouYmxrLWJ1eXY4IC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZTpob3ZlcnsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuODUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTsgfQouYmxrLWJ1eXY4IC5zdGFjay10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuMTVlbTttYXJnaW46MDtjb2xvcjojMmMzZTUzO30KLmJsay1idXl2OCAuc3RhY2stYXV0aG9ye2ZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtYm9vayIsc2Fucy1zZXJpZjtjb2xvcjojODI4NTk1O2ZvbnQtd2VpZ2h0OjIwMDtmb250LXNpemU6LjhyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxMXB4O2xldHRlci1zcGFjaW5nOjA7dGV4dC1hbGlnbjpyaWdodDt9Ci8qIFNpbiBlc3RhIHJlZ2xhIGVsIGF1dG9yIHF1ZWRhIHBlZ2FkbyBqdXN0byBkZWJham8gZGVsIHRpdHVsYXIgZW4gdmV6IGRlCiAgIGFiYWpvIGRlIGxhIHRhcmpldGE6IC5tb2Qtc3RhY2sgbmVjZXNpdGEgc2VyIGZsZXgtY29sdW1uIGNvbgogICBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiBwYXJhIHF1ZSBlbCBodWVjbyBzb2JyYW50ZSAoY3VhbmRvIGxhCiAgIHRhcmpldGEgY3JlY2UgbeFzIHF1ZSBzdSBjb250ZW5pZG8sIHZlciAuY29sdW1uLWl0ZW06bm90KC5sYXlvdXQtbWVkaWEtYmxvY2spCiAgIG3hcyBhYmFqbykgZW1wdWplIGVsIGF1dG9yIGhhY2lhIGVsIGJvcmRlIGluZmVyaW9yLiAqLwouYmxrLWJ1eXY4IC5tb2Qtc3RhY2t7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtmbGV4OjEgMSBhdXRvO30KLyogRXN0aWxvICJmb3RvIHBlcXVl8WEgKyB0aXR1bGFyIjogZm90byA0OjMgYSBsYSBpenF1aWVyZGEsIHRleHRvIGEgbGEgZGVyZWNoYS4gKi8KLmJsay1idXl2OCAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLWxlZnR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxMTBweCAxZnI7Z2FwOjEwcHg7fQovKiBFc3RpbG8gInNvbG8gdGV4dG8iIChwb3IgZGVmZWN0byk6IGVsIGF1dG9yIHNlIHBvc2ljaW9uYSBlbiBhYnNvbHV0bywKICAgYW5jbGFkbyBhIGxhIGVzcXVpbmEgaW5mZXJpb3IgZGVyZWNoYSBkZSBsYSB0YXJqZXRhIChpZ3VhbCBxdWUgZWwgcGxheSBkZQogICBsYXMgbWluaWF0dXJhcyksIGVuIHZleiBkZSBkZXBlbmRlciBkZSBxdWUgZWwgYmxvcXVlIGRlIHRleHRvIHRlbmdhIGh1ZWNvCiAgIGRlIHNvYnJhIHBhcmEgZW1wdWphcmxvIGFiYWpvIGNvbiBmbGV4Ym94ICYjODIxMjsgY29uIHTtdHVsb3MgZGUgMi0zIGztbmVhcyBlc2UKICAgaHVlY28gbm8gZXhpc3RlIHkgZWwgYXV0b3IgbnVuY2EgbGxlZ2FiYSBhIGJhamFyLiBwYWRkaW5nLWJvdHRvbSBlbgogICBsZWZ0LWJvZHkgcmVzZXJ2YSBlbCBlc3BhY2lvIHBhcmEgcXVlIGVsIHTtdHVsbyBubyBzZSBzb2xhcGUgY29uIOlsLiAqLwouYmxrLWJ1eXY4IC5jb2x1bW4taXRlbS5sYXlvdXQtdGl0bGUtb25seSAubGVmdC1ib2R5e3BhZGRpbmctYm90dG9tOjMzcHg7fQouYmxrLWJ1eXY4IC5jb2x1bW4taXRlbS5sYXlvdXQtdGl0bGUtb25seSAuc3RhY2stYXV0aG9ye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7Ym90dG9tOjEwcHg7bWFyZ2luLXRvcDowO30KLmJsay1idXl2OCAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQouYmxrLWJ1eXY4IC5sZWZ0LXBsYXl7CiAgZmxleDowIDAgYXV0bztpbmxpbmUtc2l6ZToxNXB4O2Jsb2NrLXNpemU6MTVweDtib3JkZXItcmFkaXVzOjJweDsKICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowOwogIHZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206IDRweDsKfQouYmxrLWJ1eXY4IC5sZWZ0LXBsYXk6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMGE3ZmY7Ym9yZGVyLXRvcDozcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luLWxlZnQ6MXB4Owp9Ci5ibGstYnV5djggLnJlbGF0ZWQtbGl2ZS10YWd7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwOwogIGZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDowLjg7bGV0dGVyLXNwYWNpbmc6LjNweDtjb2xvcjojRkY1MDUwOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRkY1MDUwOwogIHBhZGRpbmc6M3B4IDRweCAycHggNHB4O21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouYmxrLWJ1eXY4IC5yZWxhdGVkLWVkaXRvcmlhbC10YWd7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwOwogIGZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDowLjg7bGV0dGVyLXNwYWNpbmc6LjNweDtjb2xvcjojRkFCMTIxOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRkFCMTIxOwogIHBhZGRpbmc6M3B4IDRweCAycHggNHB4O21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouYmxrLWJ1eXY4IC5wbGF5LWJ1dHRvbnsKICAvKiBBbmNoby9hbHRvIGZpam9zIGVuIHZleiBkZSBhc3BlY3QtcmF0aW86MS8xICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoZWwKICAgICBj4WxjdWxvIGRlICJzaHJpbmstdG8tZml0IiBwYXJhIHVuIDxidXR0b24+IGVuIGFic29sdXRvIHNpbiB0YW1h8W8KICAgICBleHBs7WNpdG8gbm8gZXMgZmlhYmxlIGVudHJlIG1vdG9yZXM7IGVuIFdlYktpdC9pT1MgZGFiYSB1biByZWN04W5ndWxvCiAgICAgdmVydGljYWwgZXN0cmVjaO1zaW1vIGVuIHZleiBkZSB1biBjdWFkcmFkbykuICovCiAgYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOwogIHBvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDsKICBpbmxpbmUtc2l6ZTozNHB4O2Jsb2NrLXNpemU6MzRweDsKICBkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoxMHB4IDEwcHggMTBweCAxMnB4OwogIGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC40Mik7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjNweDsKICBjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjI7YW5pbWF0aW9uOmJsay1idXl2OC1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLWJ1eXY4IC5wbGF5LWJ1dHRvbi5wb3MtdG9wLXJpZ2h0e3RvcDoxMHB4O3JpZ2h0OjEwcHg7bGVmdDphdXRvO2JvdHRvbTphdXRvO30KLmJsay1idXl2OCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0e2JvdHRvbToxMHB4O2xlZnQ6MTBweDt0b3A6YXV0bztyaWdodDphdXRvO30KLmJsay1idXl2OCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1yaWdodHtib3R0b206MTBweDtyaWdodDoxMHB4O3RvcDphdXRvO2xlZnQ6YXV0bzt9Ci8qIENvbiBlbCB0ZXh0byAobGVhZC1ib2R5KSBhIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEsIGVzZSBibG9xdWUgc29sYXBhCiAgIDMwcHggZGVsIGxhZG8gZGUgbGEgZm90by927WRlbyBwZWdhZG8gYSDpbCAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWJ1eXY4IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbi5wb3MtdG9wLWxlZnQsCi5ibGstYnV5djggLmxlYWQubGVhZC1ib2R5LWxlZnQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstYnV5djggLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5wbGF5LWJ1dHRvbi5wb3MtdG9wLXJpZ2h0LAouYmxrLWJ1eXY4IC5sZWFkLmxlYWQtYm9keS1yaWdodCAucGxheS1idXR0b24ucG9zLWJvdHRvbS1yaWdodHsgcmlnaHQ6NDBweDsgfQovKiBQb3NpY2nzbiAnYm90dG9tJyBwb3IgZGVmZWN0bzogZWwgbGVhZC1ib2R5IHNvbGFwYSAzMHB4IHNvYnJlIGVsIGJvcmRlCiAgIElORkVSSU9SIGRlIGxhIGZvdG8vdu1kZW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTm8gYXBsaWNhIGNvbiAnYm90dG9tLWZ1bGwnCiAgIG5pIGNvbiAnbGVmdCcvJ3JpZ2h0JyAoYWp1c3RlIGhvcml6b250YWwgcHJvcGlvLCB2ZXIgYXJyaWJhKS4gKi8KLmJsay1idXl2OCAubGVhZDpub3QoLmxlYWQtYm9keS1sZWZ0KTpub3QoLmxlYWQtYm9keS1yaWdodCk6bm90KC5sZWFkLWJvZHktYm90dG9tLWZ1bGwpIC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnQsCi5ibGstYnV5djggLmxlYWQ6bm90KC5sZWFkLWJvZHktbGVmdCk6bm90KC5sZWFkLWJvZHktcmlnaHQpOm5vdCgubGVhZC1ib2R5LWJvdHRvbS1mdWxsKSAucGxheS1idXR0b24ucG9zLWJvdHRvbS1yaWdodHsgYm90dG9tOjQwcHg7IH0KLmJsay1idXl2OCAucGxheS1idXR0b24gLnBsYXktaWNvbnsKICBpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnQ7Cn0KLmJsay1idXl2OCAucGxheS1idXR0b24gLnBsYXktdGV4dHtkaXNwbGF5Om5vbmU7fQoKLyogVGl0dWxhcmVzIGFuaW1hZG9zIChjYXBhIGFsdGVybmF0aXZhIHNvYnJlIGxlYWQtbWVkaWEpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEKICAgaGVycmFtaWVudGEuIENhZGEgdGl0dWxhciB0aWVuZSBzdSBwcm9waWEgcG9zaWNp824gKGNsYXNlIHBvcy0qLCB2ZXIKICAgYnVpbGRTY29wZWRIVE1MKSB5IHNlIHJldmVsYSBs7W5lYSBwb3IgbO1uZWEgKHVuYSB2ZXogbWVkaWRhcyBzdXMgbO1uZWFzCiAgIHJlYWxlcyBwb3IgZWwgc2NyaXB0IHN0YW5kYWxvbmUsIHZlciBidWlsZEFuaW1IZWFkbGluZXNTY3JpcHQpIGNvbiB1bmEKICAgY2FqYSBkZSBmb25kbyBkZXRy4XMgZGUgY2FkYSBs7W5lYSB5IHVuIGZhZGUgZGUgb3BhY2lkYWQgZW50cmUgdGl0dWxhcmVzLiAqLwouYmxrLWJ1eXY4IC5sZWFkLWFuaW0taGVhZGxpbmVzewogIHBvc2l0aW9uOmFic29sdXRlOwogIGluc2V0OjA7CiAgei1pbmRleDo0OwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLmJsay1idXl2OCAubGVhZC1hbmltLWhlYWRsaW5lewogIHBvc2l0aW9uOmFic29sdXRlOwogIGxlZnQ6MTVweDsKICBvcGFjaXR5OjA7Cn0KLmJsay1idXl2OCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgYm90dG9tOjYwcHg7IH0KLmJsay1idXl2OCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdHsgdG9wOjYwcHg7IH0KLmJsay1idXl2OCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay1idXl2OCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGstYnV5djggLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLWJ1eXY4IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgbGVmdDphdXRvOyByaWdodDoxNXB4OyB9Ci5ibGstYnV5djggLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0eyB0b3A6NjBweDsgfQouYmxrLWJ1eXY4IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay1idXl2OCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo2MHB4OyB9Ci8qIENvbiBlbCB0ZXh0byAobGVhZC1ib2R5KSBhIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEsIGVzZSBibG9xdWUgc29sYXBhCiAgIDMwcHggZGVsIGxhZG8gZGUgbGEgZm90by927WRlbyBwZWdhZG8gYSDpbCAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWJ1eXY4IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0LAouYmxrLWJ1eXY4IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0LAouYmxrLWJ1eXY4IC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBsZWZ0OjQwcHg7IH0KLmJsay1idXl2OCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLWJ1eXY4IC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGstYnV5djggLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgcmlnaHQ6NDBweDsgfQouYmxrLWJ1eXY4IC5sZWFkLWFuaW0taGVhZGxpbmUuaXMtYWN0aXZleyBvcGFjaXR5OjE7IH0KLmJsay1idXl2OCAubGVhZC1hbmltLWxpbmV7CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgZGlzcGxheTp0YWJsZTsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgZm9udC13ZWlnaHQ6OTAwOwogIGNvbG9yOiNmZmY7CiAgcGFkZGluZzoycHggOHB4OwogIGNsaXAtcGF0aDppbnNldCgwIDEwMCUgMCAwKTsKICBvcGFjaXR5OjE7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZTsKfQouYmxrLWJ1eXY4IC5sZWFkLWFuaW0tbGluZS5pcy1oaWRpbmd7IG9wYWNpdHk6MDsgfQovKiBTb2xhcGUgZGUgMXB4IGVudGVyYSBlbnRyZSBs7W5lYXMgcGFyYSBjZXJyYXIgZWwgaGlsbyBkZSBzdWItcO14ZWwgcXVlCiAgIHB1ZWRlIHF1ZWRhciBlbnRyZSBzdXMgY2FqYXMgZGUgZm9uZG8gKHJlZG9uZGVvIGRlIGFsdHVyYXMgZnJhY2Npb25hcmlhcykgJiM4MjEyOwogICB2ZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLWJ1eXY4IC5sZWFkLWFuaW0tbGluZSArIC5sZWFkLWFuaW0tbGluZXsKICBtYXJnaW4tdG9wOi0xcHg7Cn0KLmJsay1idXl2OCAubGVhZC1hbmltLWxpbmU6Zmlyc3QtY2hpbGR7IHBhZGRpbmctdG9wOjZweDsgfQouYmxrLWJ1eXY4IC5sZWFkLWFuaW0tbGluZTpsYXN0LWNoaWxkeyBwYWRkaW5nLWJvdHRvbTo2cHg7IH0KLmJsay1idXl2OCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLWJ1eXY4IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGstYnV5djggLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0IC5sZWFkLWFuaW0tbGluZXsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjA7IH0KLmJsay1idXl2OCAubGVhZC1hbmltLWhlYWRsaW5lcy5pcy1wb3NpdGl2ZSAubGVhZC1hbmltLWxpbmV7IGNvbG9yOiMwRTExMUE7IH0KLmJsay1idXl2OCAubGVhZC1hbmltLWxpbmUtYmd7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDowOyB6LWluZGV4Oi0xOyB9Ci5ibGstYnV5djggLmxlYWQtYW5pbS1saW5lLXRleHR7IHBvc2l0aW9uOnJlbGF0aXZlOyB9CkBrZXlmcmFtZXMgYmxrLWJ1eXY4LWFuaW0tbGluZS1yZXZlYWx7IHRveyBjbGlwLXBhdGg6aW5zZXQoMCAwIDAgMCk7IH0gfQoKLyogQW5jaG9yIG92ZXJsYXkgZm9yIGZ1bGwgY2xpY2thYmxlIGxlYWQgKi8KLmJsay1idXl2OCAubGVhZC1saW5re3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxfQoKLyogSG92ZXIgb3BhY2l0eSBhbmltYXRpb24gKi8KLmJsay1idXl2OCAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKLmJsay1idXl2OCAuY29sdW1uLWl0ZW06aG92ZXJ7b3BhY2l0eTouOH0KLyogRm90byBwcmluY2lwYWwgKGZhbGxiYWNrL3NpbmdsZSkgbyBjYXJydXNlbCBkZSBmb3Rvczogb3BhY2lkYWQgMC45IGFsCiAgIHBhc2FyIGVsIHJhdPNuIHBvciBsYSB0YXJqZXRhICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuCiAgIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBhIHbtZGVvIG5pIGFsCiAgIGNvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcy4gKi8KLmJsay1idXl2OCAubGVhZC1tZWRpYSA+IGltZywKLmJsay1idXl2OCAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGstYnV5djggLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstYnV5djggLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5Oi45O30KLyogRW4gZWwgYW5jaG8gbfN2aWwgKG1pc21vIEBjb250YWluZXIgcXVlIGVsIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbykgbm8KICAgYXBsaWNhIGVzdGEgYW5pbWFjafNuIGRlIG9wYWNpZGFkIHNvYnJlIGxhIG5vdGljaWEgcHJpbmNpcGFsOiB2YSBERVNQVclTCiAgIGRlIGxhIHJlZ2xhIGdlbmVyYWwgZGUgYXJyaWJhIChtaXNtYSBlc3BlY2lmaWNpZGFkKSBwYXJhIHBvZGVyIGdhbmFybGUuCiAgIE9taXRpZG8sIGlndWFsIHF1ZSBlbCBibG9xdWUgZGUgdGlwb2dyYWbtYSBkZSBhcnJpYmEsIG1pZW50cmFzIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06SBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsKICAuYmxrLWJ1eXY4IC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAogIC5ibGstYnV5djggLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCiAgLmJsay1idXl2OCAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6MTt9Cn0KCi8qIEFuaW1hY2nzbiBjb21wYXJ0aWRhIHBsYXkgcHJpbmNpcGFsICsgY3VhZHJhZG9zIHBsYXkgYXBpbGFkYXMgKi8KQGtleWZyYW1lcyBibGstYnV5djgtYmxpbmt7CiAgMCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KX0KICA1MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTY1LDI1NSwwLjkpfQp9Ci8qIENhYmVjZXJhICovCi5ibGstYnV5djggLmJnLXNlY3Rpb24tdGl0bGV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MTBweCAwIDMycHh9Ci5ibGstYnV5djggLmZuZC1saW5lYXtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMThweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9Ci5ibGstYnV5djggLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzBFMTExQTt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyk7Zm9udC1zaXplOjQycHg7Y29sb3I6IzBFMTExQTt9CkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7LmJsay1idXl2OCAuc2VjdGlvbi10aXRsZXtmb250LXNpemU6MjdweDtwYWRkaW5nOjAgMTBweH19Ci8qIENhYmVjZXJhICYjODIxMjsgRGlzZfFvIDIgKHRpdHVsYXIgKyBjYXJydXNlbCBkZSBsb2dvdGlwb3MpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstYnV5djggLmhlYWRlcjJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7bWFyZ2luLWJvdHRvbToxMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMwRTExMUE7fQovKiBhbGlnbi1zZWxmOmZsZXgtZW5kIGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgMTVweCBkZSBsYSBs7W5lYSBzZXBhcmFkb3JhCiAgIGVuIERlc2sgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zCiAgIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1idXl2OCAuaGVhZGVyMi1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleDoxIDEgNTAlO21pbi1pbmxpbmUtc2l6ZTowO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQouYmxrLWJ1eXY4IC5oZWFkZXIyLXRhZ3N7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXg6MCAwIGF1dG87fQovKiBNaXNtbyB0YW1h8W8vdGlwb2dyYWbtYSBxdWUgLmxlYWQtZXhjbHVzaXZlLXRhZyAobGEgZGUgbGEgbm90aWNpYQogICBwcmluY2lwYWwpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUKICAgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstYnV5djggLmhlYWRlcjItY2F0LXRhZywKLmJsay1idXl2OCAuaGVhZGVyMi1leGNsdXNpdmUtdGFne2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi44ZW07bGV0dGVyLXNwYWNpbmc6LjVweDtwYWRkaW5nOjJweCA4cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojZmZmO30KLmJsay1idXl2OCAuaGVhZGVyMi1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstYnV5djggLmhlYWRlcjItdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6MzZweDtsaW5lLWhlaWdodDoxLjA1O2NvbG9yOiMwRTExMUE7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21pbi1pbmxpbmUtc2l6ZTowO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt9Ci8qIFNlcGFyYWNp824gZGUgMTBweCBlbnRyZSBlbCB0ZXh0byBkZSBwYXRyb2NpbmlvIHkgZWwgbG9nbyBlbiBEZXNrICYjODIxMjsgZW4KICAgTfN2aWwgc2lndWUgc2luIHNlcGFyYWNp824gKGdhcDowLCB2ZXIgQGNvbnRhaW5lciBt4XMgYWJham8pLiAqLwouYmxrLWJ1eXY4IC5oZWFkZXIyLWxvZ29zLXdyYXB7ZmxleDowIDAgYXV0bzttYXgtaW5saW5lLXNpemU6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO30KLyogRXRpcXVldGEgb3BjaW9uYWwganVudG8gYWwgY2FycnVzZWwgZGUgbG9nb3MgKHAuZWouICJQYXRyb2NpbmFkbyBwb3I6IikgJiM4MjEyOwogICB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1idXl2OCAuaGVhZGVyMi1sb2dvcy1sYWJlbHtmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzY2Nzt3aGl0ZS1zcGFjZTpub3dyYXA7fQouYmxrLWJ1eXY4IC5oZWFkZXIyLWxvZ29ze3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjE2MHB4O2Jsb2NrLXNpemU6NTBweDtmbGV4LXNocmluazowO30KLmJsay1idXl2OCAuaGVhZGVyMi1sb2dvcyBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDttYXJnaW46YXV0bzttYXgtaW5saW5lLXNpemU6MTAwJTttYXgtYmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y29udGFpbjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC43cyBlYXNlLWluLW91dDt9Ci5ibGstYnV5djggLmhlYWRlcjItbG9nb3MgaW1nLmlzLWFjdGl2ZXtvcGFjaXR5OjE7fQovKiBJZ3VhbCBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbDogcG9yIGRlYmFqbyBkZSBlc3RlIGFuY2hvIHNlCiAgIGludGVudGEgcHJpbWVybyAxIFNPTEEgRklMQSAoZXRpcXVldGFzK3RpdHVsYXIganVudG8gYWwgbG9nbywgaWd1YWwgcXVlCiAgIGVuIERlc2ssIGEgdGFtYfFvIHJlZHVjaWRvKS4gRWwgYmxvcXVlIGRlIGxvZ29zIG1hbnRpZW5lIFNJRU1QUkUgc3UKICAgZGlzcG9zaWNp824gZW4gY29sdW1uYSAoZXRpcXVldGEgZGUgcGF0cm9jaW5pbyBlbmNpbWEgZGVsIGxvZ28sCiAgIGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEsIHNpbiBzZXBhcmFjafNuKSB0YW50byBlbiBlc3RhIGZpbGEg+m5pY2EgY29tbyBlbgogICBlbCByZXNndWFyZG8gZGUgYWJham8uIFNpIGVsIHRpdHVsYXIsIHN1bWFkbyBhbCBhbmNobyBkZSBsYXMgZXRpcXVldGFzCiAgIGFjdGl2YXMgKGNhdGVnb3LtYSB5L28gZXhjbHVzaXZhLCBzaSBsYXMgaGF5KSwgc3VwZXJhIGVsIDU1JSBkZWwgYW5jaG8KICAgdG90YWwgZGUgbGEgY2FiZWNlcmEgKGNhZGEgdW5vIG1lZGlkbyBhIHVuYSBzb2xhIGztbmVhKSwgZWwgc2NyaXB0CiAgIHN0YW5kYWxvbmUgYfFhZGlkbyBhbCBmaW5hbCBkZSBlc3RlIEhUTUwgKHZlcgogICBidWlsZEhlYWRlcjJTdGFja2luZ1NjcmlwdCgpKSBsbyBkZXRlY3RhIG1pZGllbmRvIHN1IGFuY2hvIG5hdHVyYWwKICAgeSBh8WFkZSBsYSBjbGFzZSAiaGVhZGVyMi1zdGFja2VkIjogZWwgYmxvcXVlIGRlCiAgIGxvZ29zIHN1YmUgZW50b25jZXMgYSBzdSBwcm9waWEgZmlsYSAoYWxpbmVhZG8gYSBsYSBkZXJlY2hhKSB5CiAgIHRpdHVsYXIrZXRpcXVldGFzIGJhamFuIGEgbGEgZmlsYSBkZSBhYmFqbywgYSBhbmNobyBjb21wbGV0byAmIzgyMTI7IG1pc21vCiAgIGxheW91dCBkZSAyIGZpbGFzIHF1ZSBoYWLtYSBhbnRlcyBzaWVtcHJlIHBvciBkZWJham8gZGUgZXN0ZSBicmVha3BvaW50LAogICBhaG9yYSBzb2xvIGNvbW8gcmVzZ3VhcmRvLiBEZW50cm8gZGUgZXNlIHJlc2d1YXJkbywgY29uIGV0aXF1ZXRhKHMpIGVsCiAgIHRpdHVsYXIgcGFzYSBhZGVt4XMgYSBzdSBQUk9QSUEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvLCBkZWJham8gZGUgbGEgZmlsYSBkZSBldGlxdWV0YXMgKHZlcgogICAiLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0IiBt4XMgYWJham8pLiBFbCBsb2dvIHNlIHJlZHVjZSB1biAyMCUKICAgKDE2MHg1MCAmIzg1OTQ7IDEyOHg0MCkuCiAgIGFsaWduLXNlbGY6ZmxleC1lbmQgZW4gaGVhZGVyMi1sZWZ0IGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgbG9zIDEwcHgKICAgZGVsIHBhZGRpbmctYm90dG9tIHJlc3BlY3RvIGEgbGEgbO1uZWEgc2VwYXJhZG9yYSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZQogICBlbiBEZXNrICh2ZXIgaGVhZGVyMi1sZWZ0IG3hcyBhcnJpYmEpOiBzaW4gZXN0bywgYWwgc2VyIGVsIGJsb3F1ZSBkZQogICBsb2dvcyBt4XMgYWx0byBxdWUgZWwgdGl0dWxhciwgZWwgY2VudHJhZG8gdmVydGljYWwgZGVsIHJvdyBkZWphYmEgdW4KICAgaHVlY28gbWF5b3IgZW50cmUgZWwgdGl0dWxhciB5IGxhIGztbmVhLiBFbCBibG9xdWUgZGUgbG9nb3Mgc2lndWUKICAgY2VudHJhZG8gKHNpbiBlc2Ugb3ZlcnJpZGUpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstYnV5djggLmhlYWRlcjJ7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1ib3R0b206MTBweDt9CiAgLmJsay1idXl2OCAuaGVhZGVyMi1sZWZ0e29yZGVyOjE7YWxpZ24tc2VsZjpmbGV4LWVuZDt9CiAgLmJsay1idXl2OCAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjI7YWxpZ24tc2VsZjpjZW50ZXI7bWF4LWlubGluZS1zaXplOm5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAuYmxrLWJ1eXY4IC5oZWFkZXIyLWxvZ29ze2lubGluZS1zaXplOjEyOHB4O2Jsb2NrLXNpemU6NDBweDt9CiAgLmJsay1idXl2OCAuaGVhZGVyMi10aXRsZXtmb250LXNpemU6MjdweDt9CiAgLmJsay1idXl2OCAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fQogIC5ibGstYnV5djggLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnR7b3JkZXI6MjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Z2FwOjVweDt9CiAgLmJsay1idXl2OCAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoxO21heC1pbmxpbmUtc2l6ZToxMDAlO2FsaWduLXNlbGY6ZmxleC1lbmQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAvKiBSZXNndWFyZG8gaW50ZXJtZWRpbyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGE6IHNvbG8gZWwgdGl0dWxhciBiYWphIGEgc3UKICAgICBwcm9waWEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvIGN1YW5kbyBsYXMgZXRpcXVldGFzIFPNIGNhYmVuIGp1bnRvIGFsCiAgICAgbG9nbyBwZXJvIGVsIHRpdHVsYXIgbm8uIGhlYWRlcjItbGVmdCBwYXNhIGRlIGZpbGEgYSBjb2x1bW5hCiAgICAgKGV0aXF1ZXRhcyBhcnJpYmEsIHRpdHVsYXIgZGViYWpvKSB5IHJlY3VwZXJhIGFsaWduLXNlbGY6YXV0byBwYXJhCiAgICAgY2VudHJhcnNlIHZlcnRpY2FsbWVudGUgY29udHJhIGVsIGxvZ28gKGFsaWduLXNlbGY6Y2VudGVyIGRlIGxhIHJlZ2xhCiAgICAgYmFzZSBkZSAuaGVhZGVyMi1sb2dvcy13cmFwLCBhcnJpYmEpLCBpZ3VhbCBxdWUgZW4gZWwgcmVzdG8gZGUgZXN0YWRvcy4gKi8KICAuYmxrLWJ1eXY4IC5oZWFkZXIyLmhlYWRlcjItdGl0bGUtYmVsb3cgLmhlYWRlcjItbGVmdHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1zZWxmOmF1dG87Z2FwOjVweDt9Cn0KCi8qIEVzdGlsbyAiZm90byBncmFuZGUgKyB0aXR1bGFyIjogZm90byAxNjo5IGFycmliYSwgdGl0dWxhciBkZWJham8gJiM4MjEyOyBlbGVnaWJsZQogICBwb3Igbm90aWNpYSBkZXNkZSBlbCBnZXN0b3IuIE5vIHNlIHJlc3RyaW5nZSBjb24gQGNvbnRhaW5lciBwb3JxdWUKICAgLmNvbHVtbi1pdGVtIHlhIGVzIGJsb2NrIHBvciBkZWZlY3RvIChlbCB0aHVtYiB5IGVsIHRleHRvIHNlIGFwaWxhbiBzb2xvcwogICBzaW4gbeFzIGFqdXN0ZSksIGFz7SBxdWUgZWwgZGlzZfFvIGZ1bmNpb25hIGlndWFsIGRlIGJpZW4gZW4gY3VhbHF1aWVyCiAgIGFuY2hvLCBEZXNrIG8gTfN2aWwuICovCi5ibGstYnV5djggLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3B7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGstYnV5djggLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLnRodW1ie2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay1idXl2OCAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6OTAwO30KLyogRW4gTfN2aWwgZWwgdGl0dWxhciBkZSBlc3RlIGRpc2XxbyBzZSBtdWVzdHJhIG3hcyBncmFuZGUgKDEuNXJlbSBlbiB2ZXogZGUKICAgbG9zIDEuMnJlbSBkZSBEZXNrKSAmIzgyMTI7IG1pc21hIGVzcGVjaWZpY2lkYWQgKDMgY2xhc2VzKSBxdWUgbGEgcmVnbGEgZGUKICAgYXJyaWJhOyBhbCBpciBERVNQVclTIGVuIGVsIENTUyBnYW5hIHBvciBvcmRlbiBkZSBjYXNjYWRhLiBTZSB1c2EgZWwKICAgYnJlYWtwb2ludCBkZSA0ODBweCAoZWwgZGUgdGlwb2dyYWbtYSBlbiBlc3RhIGFwcCwgbm8gZWwgZGUgODYwcHggcXVlIGFxde0KICAgc29sbyBnb2JpZXJuYSBlbCBhcGlsYWRvIGRlIGNvbHVtbmFzKSBwYXJhIHF1ZSBjb2luY2lkYSBjb24gZWwgcmVzdG8gZGUKICAgY2FtYmlvcyBkZSB0ZXh0by90YW1h8W8gcG9yIHZpc3RhLiBObyBhZmVjdGEgYWwgcmVzZ3VhcmRvIGRlIDIgY29sdW1uYXMgZW4KICAgbfN2aWwgKG1vYi1ncmlkKSwgbeFzIGVzcGVj7WZpY28gKDE4cHgsIHZlciBt4XMgYXJyaWJhKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLWJ1eXY4IC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxLjVyZW07fQp9Ci8qIEVzdGlsbyAiQmxvcXVlIG1lZGlhIiAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWJ1eXY4IC5tZWRpYS1ibG9jay1tZWRpYXtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTphdXRvO30KLmJsay1idXl2OCAubWVkaWEtYmxvY2std3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO30KLmJsay1idXl2OCAubWVkaWEtYmxvY2staWZyYW1lLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay1idXl2OCAubWVkaWEtYmxvY2staWZyYW1lLXdyYXAgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstYnV5djggLmNvbHVtbi1pdGVtLmxheW91dC1tZWRpYS1ibG9ja3tib3JkZXI6bm9uZTtwYWRkaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtibG9jay1zaXplOmF1dG87ZmxleDowIDAgYXV0bzt9Ci5ibGstYnV5djggLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKXtmbGV4OjEgMSBhdXRvO30KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImJsay1idXl2OCI+CiAgCiAgPG1haW4gY2xhc3M9InBhZ2UiPgogICAgCiAgICA8YXJ0aWNsZSBjbGFzcz0ibGVhZCBsZWFkLWJvZHktbGVmdCI+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtbWVkaWEiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvZmVpam9vLWxsZXZhLWVuLXN1LXByb2dyYW1hLWVsLXJldG9ybm8tZGUtbG9zLW1lbmFzLWFsLXBhaXMtZGUtb3JpZ2VuLWVuLWx1Z2FyLWRlLXJlcGFydGlybG9zLXBvci1sYXMtY29tdW5pZGFkZXMtMjAyNjExMDgtMTAyMzE3LTA1ZWFkOS5qcGciIGFsdD0iRmVpavNvIGxsZXZhIGVuIHN1IHByb2dyYW1hIGVsIHJldG9ybm8gZGUgbG9zIG1lbmFzIGFsIHBh7XMgZGUgb3JpZ2VuIGVuIGx1Z2FyIGRlIHJlcGFydGlybG9zIHBvciBsYXMgY29tdW5pZGFkZXMiIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIDxidXR0b24gY2xhc3M9InBsYXktYnV0dG9uIHBvcy10b3AtcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48ZGl2IGNsYXNzPSJwbGF5LWljb24iPjwvZGl2PjxzcGFuIGNsYXNzPSJwbGF5LXRleHQiPlBsYXk8L3NwYW4+PC9idXR0b24+CiAgICAgICAgCiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLWJvZHkiIHN0eWxlPSJiYWNrZ3JvdW5kOiMwMEE3RkY7Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzAwQTdGRiI+RVNQQdFBPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keS1tYWluIj4KICAgICAgICAgIAogICAgICAgICAgPGgyIGNsYXNzPSJsZWFkLXRpdGxlIj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1kZXNrIj5GZWlq828gbGxldmEgZW4gc3UgcHJvZ3JhbWEgZWwgcmV0b3JubyBkZSBsb3MgbWVuYXMgYWwgcGHtcyBkZSBvcmlnZW4gZW4gbHVnYXIgZGUgcmVwYXJ0aXJsb3MgcG9yIGxhcyBjb211bmlkYWRlczwvc3Bhbj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1tb2JpbGUiPkZlaWrzbyBsbGV2YSBlbiBzdSBwcm9ncmFtYSBlbCByZXRvcm5vIGRlIGxvcyBtZW5hcyBhbCBwYe1zIGRlIG9yaWdlbiBlbiBsdWdhciBkZSByZXBhcnRpcmxvcyBwb3IgbGFzIGNvbXVuaWRhZGVzPC9zcGFuPjwvaDI+CiAgICAgICAgICAKICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdXRob3ItbGFiZWwiPlNlZ3VuZG8gU2Fuejwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxhIGNsYXNzPSJsZWFkLWxpbmsiIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGFuYS9mZWlqb28tbGxldmEtcHJvZ3JhbWEtcmV0b3Juby1tZW5hcy1wYWlzLW9yaWdlbi1sdWdhci1yZXBhcnRpcmxvcy1jb211bmlkYWRlcy0yMDcyMDQyNCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJGZWlq828gbGxldmEgZW4gc3UgcHJvZ3JhbWEgZWwgcmV0b3JubyBkZSBsb3MgbWVuYXMgYWwgcGHtcyBkZSBvcmlnZW4gZW4gbHVnYXIgZGUgcmVwYXJ0aXJsb3MgcG9yIGxhcyBjb211bmlkYWRlcyIgYXJpYS1sYWJlbD0iRmVpavNvIGxsZXZhIGVuIHN1IHByb2dyYW1hIGVsIHJldG9ybm8gZGUgbG9zIG1lbmFzIGFsIHBh7XMgZGUgb3JpZ2VuIGVuIGx1Z2FyIGRlIHJlcGFydGlybG9zIHBvciBsYXMgY29tdW5pZGFkZXMiPjwvYT4KICAgIDwvYXJ0aWNsZT4KICA8L21haW4+CjwvZGl2PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgdmFyIGFydGljbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYmxrLWJ1eXY4IC5sZWFkJyk7CiAgaWYgKCFhcnRpY2xlKSByZXR1cm47CiAgdmFyIG1haW4gPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLWJvZHktbWFpbicpOwogIHZhciB0aXRsZUVsID0gYXJ0aWNsZS5xdWVyeVNlbGVjdG9yKCcubGVhZC10aXRsZScpOwogIGlmICghbWFpbiB8fCAhdGl0bGVFbCkgcmV0dXJuOwogIHZhciBiYXNlRm9udFNpemVQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aXRsZUVsKS5mb250U2l6ZSkgfHwgMDsKICBpZiAoIWJhc2VGb250U2l6ZVB4KSByZXR1cm47CiAgdmFyIE1BWF9TQ0FMRSA9IDEuODsKICB2YXIgTUlOX1NDQUxFID0gMC41OwogIHZhciBNQVhfRk9OVF9QWCA9IDY0OyAvLyB+NHJlbSBjb24gbGEgYmFzZSBoYWJpdHVhbCBkZSAxNnB4IChtaXNtbyB0b3BlIHF1ZSBmaXRMZWFkVGl0bGVUb0JveCgpIGVuIGVsIGdlc3RvcikKICB2YXIgYm9keVBvc2l0aW9uQmxvY2tzRml0ID0gYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1sZWZ0JykgfHwgYXJ0aWNsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2xlYWQtYm9keS1yaWdodCcpOwogIGZ1bmN0aW9uIGZpdCgpewogICAgaWYgKGJvZHlQb3NpdGlvbkJsb2Nrc0ZpdCkgcmV0dXJuOwogICAgdGl0bGVFbC5zdHlsZS5mb250U2l6ZSA9IGJhc2VGb250U2l6ZVB4ICsgJ3B4JzsKICAgIHZhciBhdmFpbGFibGVIZWlnaHQgPSBtYWluLmNsaWVudEhlaWdodDsKICAgIGlmICghYXZhaWxhYmxlSGVpZ2h0KSByZXR1cm47CiAgICAvLyBWZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBmaXRMZWFkVGl0bGVUb0JveCgpIGRlbCBnZXN0b3I6CiAgICAvLyBtYWluLnNjcm9sbEhlaWdodCBudW5jYSBiYWphIGRlIGNsaWVudEhlaWdodCBhdW5xdWUgZWwgY29udGVuaWRvIHJlYWwKICAgIC8vIG9jdXBlIG1lbm9zLCBhc+0gcXVlIG5vIHNpcnZlIHBhcmEgZGV0ZWN0YXIgY3XhbnRvIHNvYnJhIG8gZmFsdGEgY29uCiAgICAvLyBlbCB0aXR1bGFyIGFjdHVhbCAmIzgyMTI7IHNlIHN1bWEgZW4gc3UgbHVnYXIgZWwgYWx0byByZWFsIGRlIGNhZGEgaGlqbwogICAgLy8gVklTSUJMRSBkZWwgYmxvcXVlLCBzYWx2byBlbCBwcm9waW8gdGl0dWxhciwgbeFzIGVsIGh1ZWNvICgiZ2FwIikKICAgIC8vIGVudHJlIGVsbG9zOyBubyBjYW1iaWEgY29uIGVsIHRhbWHxbyBkZWwgdGl0dWxhciwgYXPtIHF1ZSBzZSBtaWRlIHVuYQogICAgLy8gc29sYSB2ZXosIGFudGVzIGRlIGxhIGL6c3F1ZWRhIGJpbmFyaWEuCiAgICB2YXIgZ2FwUHggPSBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikucm93R2FwKSB8fCBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobWFpbikuZ2FwKSB8fCAwOwogICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IFtdLnNsaWNlLmNhbGwobWFpbi5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uKGMpeyByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShjKS5kaXNwbGF5ICE9PSAnbm9uZSc7IH0pOwogICAgdmFyIG90aGVyc0hlaWdodCA9IHZpc2libGVDaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBjICE9PSB0aXRsZUVsOyB9KS5yZWR1Y2UoZnVuY3Rpb24oc3VtLCBjKXsgcmV0dXJuIHN1bSArIGMub2Zmc2V0SGVpZ2h0OyB9LCAwKQogICAgICArIGdhcFB4ICogTWF0aC5tYXgoMCwgdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCAtIDEpOwogICAgdmFyIGF2YWlsYWJsZUZvclRpdGxlID0gTWF0aC5tYXgoMCwgYXZhaWxhYmxlSGVpZ2h0IC0gb3RoZXJzSGVpZ2h0KTsKICAgIGlmICghYXZhaWxhYmxlRm9yVGl0bGUpIHJldHVybjsKICAgIGZ1bmN0aW9uIGhlaWdodEF0U2NhbGUoc2NhbGUpewogICAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gTWF0aC5taW4oYmFzZUZvbnRTaXplUHggKiBzY2FsZSwgTUFYX0ZPTlRfUFgpICsgJ3B4JzsKICAgICAgcmV0dXJuIHRpdGxlRWwub2Zmc2V0SGVpZ2h0OwogICAgfQogICAgdmFyIGxvID0gTUlOX1NDQUxFLCBoaSA9IE1BWF9TQ0FMRTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKXsKICAgICAgdmFyIG1pZCA9IChsbyArIGhpKSAvIDI7CiAgICAgIGlmIChoZWlnaHRBdFNjYWxlKG1pZCkgPD0gYXZhaWxhYmxlRm9yVGl0bGUpIGxvID0gbWlkOyBlbHNlIGhpID0gbWlkOwogICAgfQogICAgaGVpZ2h0QXRTY2FsZShsbyk7CiAgfQogIGZpdCgpOwogIGlmIChkb2N1bWVudC5mb250cyAmJiBkb2N1bWVudC5mb250cy5yZWFkeSl7IGRvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oZml0KTsgfQogIGlmICh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpeyBuZXcgUmVzaXplT2JzZXJ2ZXIoZml0KS5vYnNlcnZlKGFydGljbGUpOyB9CiAgZWxzZSB7IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXQpOyB9Cn0pKCk7Cjwvc2NyaXB0Pg==
    • Muere un soldado del Ejército de Tierra durante una instrucción militar en Zaragoza
        • España
        • España

      Muere un soldado del Ejército de Tierra durante una instrucción militar en Zaragoza

      Un soldado del Ejército de Tierra ha fallecido este domingo durante unas maniobras de instrucción en el Centro de Adiestramiento de San Gregorio, en Zaragoza, según ha confirmado el Ministerio de Defensa. Las causas del trágico suceso se encuentran actualmente bajo investigación.
      • Carlos Carpio
      • 2026-11-08 10:09
    • Los trackings del PSOE colocan a Vox como 3ª fuerza en Cataluña y Colau se desploma
        • España
        • España

      Los trackings del PSOE colocan a Vox como 3ª fuerza en Cataluña y Colau se desploma

      • Esther Jaén
      • 2026-11-08 05:45
    • La crisis del AVE amenaza 200.000 millones del turismo: Andalucía pierde 3,6 millones de viajeros 
        • Economía
        • Economía

      La crisis del AVE amenaza 200.000 millones del turismo: Andalucía pierde 3,6 millones de viajeros 

      • Celia Amayuelas
      • 2026-11-08 05:45
    • CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLW94OXFse21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay1veDlxbCBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstb3g5cWwgLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstb3g5cWwgLnBhZ2UgLmNvbHVtbntvcmRlcjoxfQouYmxrLW94OXFsIC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstb3g5cWx7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay1veDlxbCAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstb3g5cWwgLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLW94OXFsIC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstb3g5cWwgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay1veDlxbCAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86MTYvOSAhaW1wb3J0YW50O30KICAuYmxrLW94OXFsIC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay1veDlxbCAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay1veDlxbCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLW94OXFsIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGstb3g5cWwgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay1veDlxbCAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay1veDlxbCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGstb3g5cWwgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay1veDlxbCAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay1veDlxbCAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstb3g5cWwgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstb3g5cWwgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstb3g5cWwgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay1veDlxbCAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLW94OXFsIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS41cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLW94OXFsIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstb3g5cWwgLmxlYWQtdGl0bGV7Zm9udC1zaXplOjIuMTVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIC5ibGstb3g5cWwgLmxlYWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1veDlxbCAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1veDlxbCAuYXV0aG9yLWxhYmVse3RleHQtYWxpZ246Y2VudGVyO30KICAuYmxrLW94OXFsIC5sZWFkLWtpY2tlci1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLW94OXFsIC5sZWFkLWtpY2tlci1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1veDlxbCAubGVhZC1zdWJ0aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLW94OXFsIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLW94OXFsIC5sZWFkLWFuaW0taGVhZGxpbmVze2ZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMDIgIWltcG9ydGFudDt9CiAgCiAgLmJsay1veDlxbCAucmVsYXRlZC10aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLW94OXFsIC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KfQouYmxrLW94OXFsIC5sZWFke2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZjtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLW94OXFsIC5sZWFkLW1lZGlhe3Bvc2l0aW9uOnJlbGF0aXZlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW59Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZTogYWx0byBmaWpvIGVuIHDteGVsZXMgZW4gdmV6IGRlIGxhIHByb3BvcmNp824gZGUKICAgYXJyaWJhICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBzdGF0ZS5sZWFkLmlmcmFtZUhlaWdodCkgJiM4MjEyOyBlbAogICB2YWxvciBkZSBN83ZpbCBzZSBzb2JyZXNjcmliZSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywgaWd1YWwgcXVlIGVsCiAgIHJlc3RvIGRlIG92ZXJyaWRlcyByZXNwb25zaXZlIGRlIGVzdGUgSFRNTCBleHBvcnRhZG8uICovCi5ibGstb3g5cWwgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2FzcGVjdC1yYXRpbzpub25lO2Jsb2NrLXNpemU6NjQwcHg7fQouYmxrLW94OXFsIC5sZWFkLW1lZGlhIGltZywKLmJsay1veDlxbCAubGVhZC1tZWRpYSB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci8qIENhcnJ1c2VsIGRlIGZvdG9zIGRlIGZvbmRvIGNvbiBlZmVjdG8gS2VuIEJ1cm5zICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuCiAgIExhIGR1cmFjafNuIGRlIGxhcyBhbmltYWNpb25lcyAoNnMpIGNvaW5jaWRlIGNvbgogICBMRUFEX0NBUk9VU0VMX0lOVEVSVkFMLCBxdWUgdGFtYmnpbiBnb2JpZXJuYSBlbCBzY3JpcHQgZGUgcm90YWNp824KICAgKGJ1aWxkTGVhZENhcm91c2VsU2NyaXB0KSBh8WFkaWRvIGFsIGZpbmFsIGRlbCBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay1veDlxbCAubGVhZC1jYXJvdXNlbHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstb3g5cWwgLmxlYWQtY2Fyb3VzZWwtc2xpZGV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDEuNXMgZWFzZTt9Ci5ibGstb3g5cWwgLmxlYWQtY2Fyb3VzZWwtc2xpZGUuaXMtYWN0aXZle29wYWNpdHk6MTt6LWluZGV4OjE7fQouYmxrLW94OXFsIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7fQouYmxrLW94OXFsIC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChvZGQpIGltZ3thbmltYXRpb246YmxrLW94OXFsLWtlbmJ1cm5zLWEgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQouYmxrLW94OXFsIC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChldmVuKSBpbWd7YW5pbWF0aW9uOmJsay1veDlxbC1rZW5idXJucy1iIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KQGtleWZyYW1lcyBibGstb3g5cWwta2VuYnVybnMtYXsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gfQpAa2V5ZnJhbWVzIGJsay1veDlxbC1rZW5idXJucy1ieyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoNCUsMyUpO30gfQovKiBDb24gdW5hIPpuaWNhIGZvdG8gKHNpbiByb3RhY2nzbiBwb3NpYmxlKSBzZSBhcGxpY2EgdW4gem9vbSBpbi9vdXQgZW4KICAgYnVjbGUgaW5maW5pdG8gZW4gdmV6IGRlbCByZWNvcnJpZG8g+m5pY28gKGZvcndhcmRzKSBkZSBhcnJpYmEuICovCi5ibGstb3g5cWwgLmxlYWQtY2Fyb3VzZWwuaXMtc2luZ2xlIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3thbmltYXRpb246YmxrLW94OXFsLWtlbmJ1cm5zLWxvb3AgMTRzIGVhc2UtaW4tb3V0IGluZmluaXRlO30KQGtleWZyYW1lcyBibGstb3g5cWwta2VuYnVybnMtbG9vcHsgMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gNTAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSAxMDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IH0KLyogQ29tcGFyYWRvciBhbnRlcy9kZXNwdelzIChkZXNsaXphZG9yKSAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW94OXFsIC5sZWFkLWNvbXBhcmV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7dG91Y2gtYWN0aW9uOm5vbmU7ei1pbmRleDoyO30KLmJsay1veDlxbCAubGVhZC1jb21wYXJlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7b2JqZWN0LXBvc2l0aW9uOmNlbnRlcjtkaXNwbGF5OmJsb2NrO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLWRyYWc6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay1veDlxbCAubGVhZC1jb21wYXJlLWJlZm9yZXtjbGlwLXBhdGg6aW5zZXQoMCA1MCUgMCAwKTt3aWxsLWNoYW5nZTpjbGlwLXBhdGg7fQouYmxrLW94OXFsIC5sZWFkLWNvbXBhcmUtcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTttYXJnaW46MDtvcGFjaXR5OjA7Y3Vyc29yOmV3LXJlc2l6ZTt9Ci5ibGstb3g5cWwgLmxlYWQtY29tcGFyZS1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDo1MCU7aW5saW5lLXNpemU6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6Mjt9Ci5ibGstb3g5cWwgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtpbmxpbmUtc2l6ZToycHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC4yNSk7fQouYmxrLW94OXFsIC5sZWFkLWNvbXBhcmUtaGFuZGxlOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDotMTVweDtpbmxpbmUtc2l6ZTozMHB4O2Jsb2NrLXNpemU6MzBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmYgdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnPjxnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMDAwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCc+PHBhdGggZD0nTTggNiBMNCAxMCBMOCAxNCcvPjxwYXRoIGQ9J00xMiA2IEwxNiAxMCBMMTIgMTQnLz48L2c+PC9zdmc+IikgY2VudGVyLzE2cHggMTZweCBuby1yZXBlYXQ7Ym94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwuMjUpO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMjUpO30KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE1pc21vIHotaW5kZXg6MiBxdWUKICAgLmxlYWQtY29tcGFyZSwgcG9yIGVsIG1pc21vIG1vdGl2byAoZ2FuYXJsZSBhIC5sZWFkLWxpbmspLiAqLwouYmxrLW94OXFsIC5sZWFkLWlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt6LWluZGV4OjI7fQouYmxrLW94OXFsIC5sZWFkLWlmcmFtZSBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay1veDlxbCAubGVhZC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLW94OXFsIC5sZWFkLWJvZHl7cGFkZGluZzowcHggMjBweCAyMHB4IDIwcHg7O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjY7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGlubGluZS1zaXplOjk1JTsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi10b3A6LTMwcHg7IGJhY2tncm91bmQ6IzBFMTExQTsgZmxleDoxIDEgYXV0bzt9Ci8qIEFudGV07XR1bG8vdGl0dWxhci9zdWJ07XR1bG8vYXV0b3IgY2VudHJhZG9zIGVuIHZlcnRpY2FsIGRlbnRybyBkZWwgYWx0bwogICBzb2JyYW50ZSBiYWpvIGxhIGNhdGVnb3LtYSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLW94OXFsIC5sZWFkLWJvZHktbWFpbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2lubGluZS1zaXplOjEwMCU7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjA7fQovKiBBcGFyaWVuY2lhIG5lZ2F0aXZhIChwb3IgZGVmZWN0bykgdnMuIHBvc2l0aXZhIGRlIGxhIGNhamEgZGUgdGl0dWxhciAmIzgyMTI7IHZlcgogICBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLW94OXFsIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtYm9keXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO30KLmJsay1veDlxbCAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLXRpdGxlLAouYmxrLW94OXFsIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmF1dGhvci1sYWJlbHtjb2xvcjojMEUxMTFBO30KLyogUG9zaWNp824gZGVsIGxlYWQtYm9keSByZXNwZWN0byBhbCBsZWFkLW1lZGlhICgnbGVmdCcvJ3JpZ2h0JykgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktbGVmdCwKLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246cm93O2FzcGVjdC1yYXRpbzoyLjk2Mjk2Mjk2Mjk2Mjk2Mzt9Ci5ibGstb3g5cWwgLmxlYWQubGVhZC1ib2R5LWxlZnR7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fQouYmxrLW94OXFsIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAouYmxrLW94OXFsIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjAgMCA2MCU7fQouYmxrLW94OXFsIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCi5ibGstb3g5cWwgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDowIDAgY2FsYyg0MCUgKyAzMHB4KTtpbmxpbmUtc2l6ZTphdXRvO21hcmdpbi10b3A6MDtibG9jay1zaXplOmNhbGMoMTAwJSAtIDQycHgpO2FsaWduLXNlbGY6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30KLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi0zMHB4O30KLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDotMzBweDttYXJnaW4tcmlnaHQ6MDt9Ci8qIFBvc2ljafNuICdib3R0b20tZnVsbCcgZGVsIGxlYWQtYm9keSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBpbmxpbmUtc2l6ZQogICBlbiB2ZXogZGUgd2lkdGggcG9yIGVsIG1pc21vIG1vdGl2byBxdWUgZWwgcmVzdG8gZGUgZXN0ZSBibG9xdWUgKGV2aXRhcgogICBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUwogICBkaXJlY3RhbWVudGUpLiAqLwouYmxrLW94OXFsIC5sZWFkLmxlYWQtYm9keS1ib3R0b20tZnVsbCAubGVhZC1ib2R5ewogIGlubGluZS1zaXplOjEwMCU7CiAgbWFyZ2luOjA7CiAgcGFkZGluZy10b3A6MzBweDsKICBwYWRkaW5nLWJvdHRvbTozMHB4OwogIGJvcmRlcjpub25lOwp9Ci8qIEV0aXF1ZXRhIGRlIGV4Y2x1c2l2YSAobyB0ZXh0byBwZXJzb25hbGl6YWRvKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW94OXFsIC5sZWFkLWV4Y2x1c2l2ZS10YWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4O3otaW5kZXg6MztkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2xldHRlci1zcGFjaW5nOjAuNXB4O3BhZGRpbmc6MnB4IDhweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOi44ZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7fQovKiBTZWxlY3RvciBjb24gMyBjbGFzZXMgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoIi5sZWFkLW1lZGlhIGltZyIgdGFtYmnpbgogICBtYXRjaGVhIGVzdGUgPGltZz4geSBsZSBnYW5hYmEgZW4gZXNwZWNpZmljaWRhZCkuICovCi5ibGstb3g5cWwgLmxlYWQtZXhjbHVzaXZlLXRhZyAubGVhZC1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstb3g5cWwgLmxlYWQtY2F0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpza2V3WSgtNmRlZyk7bWFyZ2luLXRvcDotMTVweDttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLW94OXFsIC5sZWFkLWtpY2tlciwgLmJsay1veDlxbCAubGVhZC1zdWJ0aXRsZXsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7dGV4dC10cmFuc2Zvcm06bm9uZTttYXJnaW46MDsKfQouYmxrLW94OXFsIC5sZWFkLWtpY2tlcntmb250LXdlaWdodDo3MDA7fQouYmxrLW94OXFsIC5sZWFkLXN1YnRpdGxle2ZvbnQtd2VpZ2h0OjYwMDt9Ci8qIFRhbWHxby9pbnRlcmxpbmVhZG8vY29sb3IgZGUgYW50ZXTtdHVsbyB5IHN1YnTtdHVsbyBlbiBEZXNrICh2YWxvcmVzIHBvcgogICBkZWZlY3RvIGRlbCBibG9xdWU7IGVsIG92ZXJyaWRlIGRlIE3zdmlsIHZhIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLAogICB5YSBxdWUgZWwgSFRNTCBleHBvcnRhZG8gZXMgcmVzcG9uc2l2ZSB5IG5vIGRlcGVuZGUgZGUgcXXpIHZpc3RhIHR1dmllcmFzCiAgIHNlbGVjY2lvbmFkYSBlbiBlbCBnZXN0b3IgYWwgZXhwb3J0YXIvY29waWFyKS4gKi8KLmJsay1veDlxbCAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci5ibGstb3g5cWwgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci8qIHRleHQtd3JhcDpiYWxhbmNlICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGVsIGdlc3RvciAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgZXNhIHJlZ2xhKTogcmVwYXJ0ZSBsYXMKICAgbO1uZWFzIGRlbCB0aXR1bGFyIGRlIGZvcm1hIG3hcyB1bmlmb3JtZSBkZW50cm8gZGUgY2FkYSBkaXNwb3NpdGl2bywgc2luCiAgIHByZXRlbmRlciBpZ3VhbGFyIGVsIG76bWVybyBkZSBs7W5lYXMgZW50cmUgcGxhdGFmb3JtYXMgZGlzdGludGFzLiAqLwouYmxrLW94OXFsIC5sZWFkLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjIuMnJlbTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7dGV4dC13cmFwOmJhbGFuY2U7fQovKiBUaXR1bGFyIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhICh2ZXIgYnVpbGRTY29wZWRIVE1MKToKICAgc2UgZ2VuZXJhbiBsb3MgZG9zIHRleHRvcyAoRGVzay9N83ZpbCkgeSBhcXXtIHNlIG11ZXN0cmEgc29sbyB1bm8gc2Vn+m4gZWwKICAgYW5jaG8gcmVhbCBkZWwgY29udGVuZWRvciAmIzgyMTI7IGVsIG1pc21vIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSB5YSB1c2EgZWwKICAgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvIHBhcmEgYWRhcHRhcnNlIHNpbiBkZXBlbmRlciBkZSBKUy4gKi8KLmJsay1veDlxbCAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogQW50ZXTtdHVsby9zdWJ07XR1bG8gY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGE6IG1pc21vCiAgIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyICh2ZXIgYXJyaWJhKS4gKi8KLmJsay1veDlxbCAubGVhZC1raWNrZXItbW9iaWxlLCAuYmxrLW94OXFsIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBUaXR1bGFyIGRlIG5vdGljaWEgcmVsYWNpb25hZGEgKGNvbHVtbmEpIGNvbiB0ZXh0byBwcm9waW8gZW4gTfN2aWwgKHZlcgogICBpdGVtLnRpdGxlTW9iaWxlIGVuIGJ1aWxkQ29sdW1uSXRlbVRpdGxlSFRNTCk6IG1pc21vIG1lY2FuaXNtbyBkZQogICBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyIHByaW5jaXBhbCBkZSBhcnJpYmEuICovCi5ibGstb3g5cWwgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci5ibGstb3g5cWwgLmF1dGhvci1sYWJlbHtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30KLmJsay1veDlxbCAuY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO30KLmJsay1veDlxbCAuY29sdW1uLWl0ZW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay1veDlxbCAudGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86NC8zO2JhY2tncm91bmQ6I2VlZTtvdmVyZmxvdzpoaWRkZW59Ci5ibGstb3g5cWwgLnRodW1iIGltZywKLmJsay1veDlxbCAudGh1bWIgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQouYmxrLW94OXFsIC50aHVtYiAucGxheS1zcXVhcmUsCi5ibGstb3g5cWwgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlewogIHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NXB4OyBsZWZ0OjVweDsKICBpbmxpbmUtc2l6ZToyNXB4O2Jsb2NrLXNpemU6MjVweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7CiAgY3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsIHRyYW5zZm9ybSAuMTJzOwogIHotaW5kZXg6MjsgYW5pbWF0aW9uOmJsay1veDlxbC1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLW94OXFsIC50aHVtYiAucGxheS1zcXVhcmU6OmJlZm9yZSwKLmJsay1veDlxbCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgbWFyZ2luLWxlZnQ6MnB4Owp9Ci5ibGstb3g5cWwgLnRodW1iIC5wbGF5LXNxdWFyZTpob3ZlciwKLmJsay1veDlxbCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6aG92ZXJ7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjg1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IH0KLmJsay1veDlxbCAuc3RhY2stdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjE1ZW07bWFyZ2luOjA7Y29sb3I6IzJjM2U1Mzt9Ci5ibGstb3g5cWwgLnN0YWNrLWF1dGhvcntmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7Y29sb3I6IzgyODU5NTtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTFweDtsZXR0ZXItc3BhY2luZzowO3RleHQtYWxpZ246cmlnaHQ7fQovKiBTaW4gZXN0YSByZWdsYSBlbCBhdXRvciBxdWVkYSBwZWdhZG8ganVzdG8gZGViYWpvIGRlbCB0aXR1bGFyIGVuIHZleiBkZQogICBhYmFqbyBkZSBsYSB0YXJqZXRhOiAubW9kLXN0YWNrIG5lY2VzaXRhIHNlciBmbGV4LWNvbHVtbiBjb24KICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4gcGFyYSBxdWUgZWwgaHVlY28gc29icmFudGUgKGN1YW5kbyBsYQogICB0YXJqZXRhIGNyZWNlIG3hcyBxdWUgc3UgY29udGVuaWRvLCB2ZXIgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKQogICBt4XMgYWJham8pIGVtcHVqZSBlbCBhdXRvciBoYWNpYSBlbCBib3JkZSBpbmZlcmlvci4gKi8KLmJsay1veDlxbCAubW9kLXN0YWNre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleDoxIDEgYXV0bzt9Ci8qIEVzdGlsbyAiZm90byBwZXF1ZfFhICsgdGl0dWxhciI6IGZvdG8gNDozIGEgbGEgaXpxdWllcmRhLCB0ZXh0byBhIGxhIGRlcmVjaGEuICovCi5ibGstb3g5cWwgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by1sZWZ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEwcHggMWZyO2dhcDoxMHB4O30KLyogRXN0aWxvICJzb2xvIHRleHRvIiAocG9yIGRlZmVjdG8pOiBlbCBhdXRvciBzZSBwb3NpY2lvbmEgZW4gYWJzb2x1dG8sCiAgIGFuY2xhZG8gYSBsYSBlc3F1aW5hIGluZmVyaW9yIGRlcmVjaGEgZGUgbGEgdGFyamV0YSAoaWd1YWwgcXVlIGVsIHBsYXkgZGUKICAgbGFzIG1pbmlhdHVyYXMpLCBlbiB2ZXogZGUgZGVwZW5kZXIgZGUgcXVlIGVsIGJsb3F1ZSBkZSB0ZXh0byB0ZW5nYSBodWVjbwogICBkZSBzb2JyYSBwYXJhIGVtcHVqYXJsbyBhYmFqbyBjb24gZmxleGJveCAmIzgyMTI7IGNvbiB07XR1bG9zIGRlIDItMyBs7W5lYXMgZXNlCiAgIGh1ZWNvIG5vIGV4aXN0ZSB5IGVsIGF1dG9yIG51bmNhIGxsZWdhYmEgYSBiYWphci4gcGFkZGluZy1ib3R0b20gZW4KICAgbGVmdC1ib2R5IHJlc2VydmEgZWwgZXNwYWNpbyBwYXJhIHF1ZSBlbCB07XR1bG8gbm8gc2Ugc29sYXBlIGNvbiDpbC4gKi8KLmJsay1veDlxbCAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLmxlZnQtYm9keXtwYWRkaW5nLWJvdHRvbTozM3B4O30KLmJsay1veDlxbCAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLnN0YWNrLWF1dGhvcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2JvdHRvbToxMHB4O21hcmdpbi10b3A6MDt9Ci5ibGstb3g5cWwgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KLmJsay1veDlxbCAubGVmdC1wbGF5ewogIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmJsay1veDlxbCAubGVmdC1wbGF5OjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKfQouYmxrLW94OXFsIC5yZWxhdGVkLWxpdmUtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZGNTA1MDsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZGNTA1MDsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay1veDlxbCAucmVsYXRlZC1lZGl0b3JpYWwtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZBQjEyMTsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZBQjEyMTsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay1veDlxbCAucGxheS1idXR0b257CiAgLyogQW5jaG8vYWx0byBmaWpvcyBlbiB2ZXogZGUgYXNwZWN0LXJhdGlvOjEvMSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKGVsCiAgICAgY+FsY3VsbyBkZSAic2hyaW5rLXRvLWZpdCIgcGFyYSB1biA8YnV0dG9uPiBlbiBhYnNvbHV0byBzaW4gdGFtYfFvCiAgICAgZXhwbO1jaXRvIG5vIGVzIGZpYWJsZSBlbnRyZSBtb3RvcmVzOyBlbiBXZWJLaXQvaU9TIGRhYmEgdW4gcmVjdOFuZ3VsbwogICAgIHZlcnRpY2FsIGVzdHJlY2jtc2ltbyBlbiB2ZXogZGUgdW4gY3VhZHJhZG8pLiAqLwogIGFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7CiAgaW5saW5lLXNpemU6MzRweDtibG9jay1zaXplOjM0cHg7CiAgZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggMTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7CiAgY3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO2FuaW1hdGlvbjpibGstb3g5cWwtYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay1veDlxbCAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodHt0b3A6MTBweDtyaWdodDoxMHB4O2xlZnQ6YXV0bztib3R0b206YXV0bzt9Ci5ibGstb3g5cWwgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdHtib3R0b206MTBweDtsZWZ0OjEwcHg7dG9wOmF1dG87cmlnaHQ6YXV0bzt9Ci5ibGstb3g5cWwgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7Ym90dG9tOjEwcHg7cmlnaHQ6MTBweDt0b3A6YXV0bztsZWZ0OmF1dG87fQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b24ucG9zLXRvcC1sZWZ0LAouYmxrLW94OXFsIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLW94OXFsIC5sZWFkLmxlYWQtYm9keS1yaWdodCAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodCwKLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLyogUG9zaWNp824gJ2JvdHRvbScgcG9yIGRlZmVjdG86IGVsIGxlYWQtYm9keSBzb2xhcGEgMzBweCBzb2JyZSBlbCBib3JkZQogICBJTkZFUklPUiBkZSBsYSBmb3RvL3btZGVvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBjb24gJ2JvdHRvbS1mdWxsJwogICBuaSBjb24gJ2xlZnQnLydyaWdodCcgKGFqdXN0ZSBob3Jpem9udGFsIHByb3BpbywgdmVyIGFycmliYSkuICovCi5ibGstb3g5cWwgLmxlYWQ6bm90KC5sZWFkLWJvZHktbGVmdCk6bm90KC5sZWFkLWJvZHktcmlnaHQpOm5vdCgubGVhZC1ib2R5LWJvdHRvbS1mdWxsKSAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0LAouYmxrLW94OXFsIC5sZWFkOm5vdCgubGVhZC1ib2R5LWxlZnQpOm5vdCgubGVhZC1ib2R5LXJpZ2h0KTpub3QoLmxlYWQtYm9keS1ib3R0b20tZnVsbCkgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo0MHB4OyB9Ci5ibGstb3g5cWwgLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstb3g5cWwgLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay1veDlxbCAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLW94OXFsIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay1veDlxbCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLW94OXFsIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay1veDlxbCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstb3g5cWwgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay1veDlxbCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLW94OXFsIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay1veDlxbCAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay1veDlxbCAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1veDlxbCAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay1veDlxbCAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay1veDlxbCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLW94OXFsIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstb3g5cWwgLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLW94OXFsIC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay1veDlxbC1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstb3g5cWwgLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstb3g5cWwgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstb3g5cWwgLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstb3g5cWwgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstb3g5cWwgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLW94OXFsIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLW94OXFsIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay1veDlxbCAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLW94OXFsIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstb3g5cWwgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLW94OXFsLWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLW94OXFsIC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLW94OXFsIC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLW94OXFsIC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstb3g5cWwgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW94OXFsIC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstb3g5cWwgLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay1veDlxbCAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLW94OXFsIC5oZWFkZXIyLWNhdC10YWcsCi5ibGstb3g5cWwgLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstb3g5cWwgLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLW94OXFsIC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay1veDlxbCAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstb3g5cWwgLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay1veDlxbCAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstb3g5cWwgLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLW94OXFsIC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLW94OXFsIC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstb3g5cWwgLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstb3g5cWwgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay1veDlxbCAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstb3g5cWwgLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstb3g5cWwgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLW94OXFsIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstb3g5cWwgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay1veDlxbCAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CgovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLW94OXFsIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLW94OXFsIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstb3g5cWwgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay1veDlxbCAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1veDlxbCAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstb3g5cWwgLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstb3g5cWwgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstb3g5cWwgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLW94OXFsIC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLW94OXFsIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstb3g5cWwiPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIAogICAgPGFydGljbGUgY2xhc3M9ImxlYWQgbGVhZC1ib2R5LWxlZnQiPgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLW1lZGlhIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2xhcy1heXVkYXMtZGVsLWdvYmllcm5vLXBvci1sb3MtZmFsbGVjaWRvcy1kZS11cmRhLXNvbi1sYXMtbWlzbWFzLXF1ZS1lbi0yMDE0LXBlcm8tY29uLXVuYS1pbmZsYWNpb24tZGVsLTM0LTIwMjYxMTA3LTIzMjAzNi1lNGJkZDMuanBnIiBhbHQ9IkxhcyBheXVkYXMgZGVsIEdvYmllcm5vIHBvciBsb3MgZmFsbGVjaWRvcyBkZSBVcmRhIHNvbiBsYXMgbWlzbWFzIHF1ZSBlbiAyMDE0LCBwZXJvIGNvbiB1bmEgaW5mbGFjafNuIGRlbCAzNCUiIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiMwMEE3RkY7Y29sb3I6I2ZmZiI+RVNQQdFBPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keS1tYWluIj4KICAgICAgICAgIAogICAgICAgICAgPGgyIGNsYXNzPSJsZWFkLXRpdGxlIj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1kZXNrIj5MYXMgYXl1ZGFzIGRlbCBHb2JpZXJubyBwb3IgbG9zIGZhbGxlY2lkb3MgZGUgVXJkYSBzb24gbGFzIG1pc21hcyBxdWUgZW4gMjAxNCwgcGVybyBjb24gdW5hIGluZmxhY2nzbiBkZWwgMzQlPC9zcGFuPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLW1vYmlsZSI+TGFzIGF5dWRhcyBkZWwgR29iaWVybm8gcG9yIGxvcyBmYWxsZWNpZG9zIGRlIFVyZGEgc29uIGxhcyBtaXNtYXMgcXVlIGVuIDIwMTQsIHBlcm8gY29uIHVuYSBpbmZsYWNp824gZGVsIDM0JTwvc3Bhbj48L2gyPgogICAgICAgICAgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aG9yLWxhYmVsIj5GZXJu4W4gR29ueuFsZXo8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YSBjbGFzcz0ibGVhZC1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvYXl1ZGFzLWRlbC1nb2JpZXJuby1mYWxsZWNpZG9zLXVyZGEtc29uLW1pc21hcy1xdWUtMjAxNC1wZXJvLWluZmxhY2lvbi1kZWwtMzQtMjA3MTgyODUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iTGFzIGF5dWRhcyBkZWwgR29iaWVybm8gcG9yIGxvcyBmYWxsZWNpZG9zIGRlIFVyZGEgc29uIGxhcyBtaXNtYXMgcXVlIGVuIDIwMTQsIHBlcm8gY29uIHVuYSBpbmZsYWNp824gZGVsIDM0JSIgYXJpYS1sYWJlbD0iTGFzIGF5dWRhcyBkZWwgR29iaWVybm8gcG9yIGxvcyBmYWxsZWNpZG9zIGRlIFVyZGEgc29uIGxhcyBtaXNtYXMgcXVlIGVuIDIwMTQsIHBlcm8gY29uIHVuYSBpbmZsYWNp824gZGVsIDM0JSI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstb3g5cWwgLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
      CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQiIGNyb3Nzb3JpZ2luPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcC50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiPgo8c3R5bGU+Ci8qIGFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkOiB2ZXIgcmVsYXRlZFVwcGVyY2FzZVRpdGxlRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwTWVkaXVtJTIwQ25kLm90ZiIpOwp9Ci8qIGFtcGxpdHVkZS1ib29rOiB2ZXIgcmVsYXRlZEF1dGhvckZvbnQgbeFzIGFiYWpvLiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogImFtcGxpdHVkZS1ib29rIjsKICBzcmM6IHVybCgiaHR0cHM6Ly9va2RpYXJpby5jb20vd2ViL3RoZW1lcy92MTAvY3NzL19mb250c19hbXBsaXR1ZGUvQW1wbGl0dWRlJTIwQXViaSUyMEJvb2sub3RmIik7Cn0KLyogY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUgYXF17SBlcyBpbXByZXNjaW5kaWJsZTogY29udmllcnRlIGVzdGUgYmxvcXVlCiAgIGVuIGVsIGNvbnRlbmVkb3IgZGUgcmVmZXJlbmNpYSBwYXJhIGxvcyAiQGNvbnRhaW5lciAoLi4uLWlubGluZS1zaXplLi4uKSIKICAgZGUgbeFzIGFiYWpvLiBVc2Ftb3MgQGNvbnRhaW5lciBlbiB2ZXogZGUgQG1lZGlhIHBvcnF1ZSAiQG1lZGlhCiAgIChtYXgtaW5saW5lLXNpemU6Li4uKSIgTk8gZXMgdW5hIGNvbmRpY2nzbiBDU1MgduFsaWRhICYjODIxMjsgaW5saW5lLXNpemUgc29sbwogICBleGlzdGUgY29tbyBjYXJhY3Rlcu1zdGljYSBkZSBAY29udGFpbmVyLCBudW5jYSBkZSBAbWVkaWEgJiM4MjEyOyBhc+0gcXVlIGVzYXMKICAgcmVnbGFzIGphbeFzIHNlIGFjdGl2YWJhbiAodmVyaWZpY2FkbyBjb24gbWF0Y2hNZWRpYTogc2llbXByZSBmYWxzZSwgc2luCiAgIGltcG9ydGFyIGVsIGFuY2hvKSwgeSBwb3IgZXNvIGxhIG5vdGljaWEgcHJpbmNpcGFsIHBvZO1hIGRlc2FwYXJlY2VyIG8gZWwKICAgZGlzZfFvIG3zdmlsIG5vIHNlIGFjdGl2YWJhIG51bmNhLiBAY29udGFpbmVyIHPtIHNvcG9ydGEgaW5saW5lLXNpemUgZGUKICAgZm9ybWEgduFsaWRhLCB5IGV2aXRhIGlndWFsbWVudGUgbGEgcGFsYWJyYSAid2lkdGg6IiBxdWUgZWwgQ01TIGRlbAogICB1c3VhcmlvIGVsaW1pbmEgYWwgcGVnYXIgSFRNTC9DU1MgZGlyZWN0YW1lbnRlLiAqLwovKiBGSVggT0tESUFSSU8gKi8KICAgIC5pdGVtIGFydGljbGUgLmFydGljbGUtc2NyaXB0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgfQovKiBDb250ZW5lZG9yIGRlIHRvZGEgbGEgYXBlcnR1cmEgKGNhYmVjZXJhICsgbm90aWNpYSBwcmluY2lwYWwgKyBjb2x1bW5hKToKICAgZm9uZG8gYmxhbmNvIHkgYWlyZSBhbHJlZGVkb3IsIHNvbG8gZW4gRGVzayAmIzgyMTI7IHZlciBvdmVycmlkZSBkZW50cm8gZGVsCiAgIEBjb250YWluZXIobWF4LWlubGluZS1zaXplOjg2MHB4KSBkZSBt4XMgYWJham8sIHF1ZSBsbyBhbnVsYSBwb3IgZGViYWpvCiAgIGRlIGVzZSBhbmNobyAoZXF1aXZhbGVudGUgYSBsYSB2aXN0YSBN83ZpbCksIHkgYXF17SBtaXNtbyBjb24gZWwgdGV4dG8gYQogICBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhIChib2R5UG9zaXRpb25CbG9ja3NDb2x1bW4pOiBjb24gZXNlIGxheW91dCBsYQogICBub3RpY2lhIHByaW5jaXBhbCB5YSBvY3VwYSBlbCAxMDAlIGRlbCBhbmNobyB5IHNvbGFwYSBzdSBwcm9waWEgZm90byBkZQogICBib3JkZSBhIGJvcmRlLCBhc+0gcXVlIGVsIGFpcmUvZm9uZG8gYmxhbmNvIHNvYnJhLiAqLwouYmxrLWIxbGlke21heC1pbmxpbmUtc2l6ZTo5NjBweDttYXJnaW46MCBhdXRvO2NvbnRhaW5lci10eXBlOmlubGluZS1zaXplO30KLmJsay1iMWxpZCBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstYjFsaWQgLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstYjFsaWQgLnBhZ2UgLmNvbHVtbntvcmRlcjoxfQouYmxrLWIxbGlkIC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstYjFsaWR7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay1iMWxpZCAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstYjFsaWQgLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLWIxbGlkIC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstYjFsaWQgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay1iMWxpZCAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86MTYvOSAhaW1wb3J0YW50O30KICAuYmxrLWIxbGlkIC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay1iMWxpZCAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay1iMWxpZCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLWIxbGlkIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGstYjFsaWQgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay1iMWxpZCAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay1iMWxpZCAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGstYjFsaWQgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay1iMWxpZCAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay1iMWxpZCAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstYjFsaWQgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstYjFsaWQgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstYjFsaWQgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay1iMWxpZCAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLWIxbGlkIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS41cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6IzAwQTdGRiAhaW1wb3J0YW50O30KICAuYmxrLWIxbGlkIC5sZWFkLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojMDBBN0ZGICFpbXBvcnRhbnQ7fQogIC5ibGstYjFsaWQgLmxlYWQtdGl0bGV7Zm9udC1zaXplOjIuMTVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIC5ibGstYjFsaWQgLmxlYWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay1iMWxpZCAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1iMWxpZCAuYXV0aG9yLWxhYmVse3RleHQtYWxpZ246Y2VudGVyO30KICAuYmxrLWIxbGlkIC5sZWFkLWtpY2tlci1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLWIxbGlkIC5sZWFkLWtpY2tlci1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay1iMWxpZCAubGVhZC1zdWJ0aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLWIxbGlkIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLWIxbGlkIC5sZWFkLWFuaW0taGVhZGxpbmVze2ZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMDIgIWltcG9ydGFudDt9CiAgCiAgLmJsay1iMWxpZCAucmVsYXRlZC10aXRsZS1kZXNre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30KICAuYmxrLWIxbGlkIC5yZWxhdGVkLXRpdGxlLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KfQouYmxrLWIxbGlkIC5sZWFke2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZjtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLWIxbGlkIC5sZWFkLW1lZGlhe3Bvc2l0aW9uOnJlbGF0aXZlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW59Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZTogYWx0byBmaWpvIGVuIHDteGVsZXMgZW4gdmV6IGRlIGxhIHByb3BvcmNp824gZGUKICAgYXJyaWJhICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBzdGF0ZS5sZWFkLmlmcmFtZUhlaWdodCkgJiM4MjEyOyBlbAogICB2YWxvciBkZSBN83ZpbCBzZSBzb2JyZXNjcmliZSBlbiBlbCBAY29udGFpbmVyIGRlIG3hcyBhYmFqbywgaWd1YWwgcXVlIGVsCiAgIHJlc3RvIGRlIG92ZXJyaWRlcyByZXNwb25zaXZlIGRlIGVzdGUgSFRNTCBleHBvcnRhZG8uICovCi5ibGstYjFsaWQgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2FzcGVjdC1yYXRpbzpub25lO2Jsb2NrLXNpemU6NjQwcHg7fQouYmxrLWIxbGlkIC5sZWFkLW1lZGlhIGltZywKLmJsay1iMWxpZCAubGVhZC1tZWRpYSB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci8qIENhcnJ1c2VsIGRlIGZvdG9zIGRlIGZvbmRvIGNvbiBlZmVjdG8gS2VuIEJ1cm5zICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuCiAgIExhIGR1cmFjafNuIGRlIGxhcyBhbmltYWNpb25lcyAoNnMpIGNvaW5jaWRlIGNvbgogICBMRUFEX0NBUk9VU0VMX0lOVEVSVkFMLCBxdWUgdGFtYmnpbiBnb2JpZXJuYSBlbCBzY3JpcHQgZGUgcm90YWNp824KICAgKGJ1aWxkTGVhZENhcm91c2VsU2NyaXB0KSBh8WFkaWRvIGFsIGZpbmFsIGRlbCBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay1iMWxpZCAubGVhZC1jYXJvdXNlbHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstYjFsaWQgLmxlYWQtY2Fyb3VzZWwtc2xpZGV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDEuNXMgZWFzZTt9Ci5ibGstYjFsaWQgLmxlYWQtY2Fyb3VzZWwtc2xpZGUuaXMtYWN0aXZle29wYWNpdHk6MTt6LWluZGV4OjE7fQouYmxrLWIxbGlkIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7fQouYmxrLWIxbGlkIC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChvZGQpIGltZ3thbmltYXRpb246YmxrLWIxbGlkLWtlbmJ1cm5zLWEgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQouYmxrLWIxbGlkIC5sZWFkLWNhcm91c2VsLXNsaWRlOm50aC1jaGlsZChldmVuKSBpbWd7YW5pbWF0aW9uOmJsay1iMWxpZC1rZW5idXJucy1iIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KQGtleWZyYW1lcyBibGstYjFsaWQta2VuYnVybnMtYXsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gfQpAa2V5ZnJhbWVzIGJsay1iMWxpZC1rZW5idXJucy1ieyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoNCUsMyUpO30gfQovKiBDb24gdW5hIPpuaWNhIGZvdG8gKHNpbiByb3RhY2nzbiBwb3NpYmxlKSBzZSBhcGxpY2EgdW4gem9vbSBpbi9vdXQgZW4KICAgYnVjbGUgaW5maW5pdG8gZW4gdmV6IGRlbCByZWNvcnJpZG8g+m5pY28gKGZvcndhcmRzKSBkZSBhcnJpYmEuICovCi5ibGstYjFsaWQgLmxlYWQtY2Fyb3VzZWwuaXMtc2luZ2xlIC5sZWFkLWNhcm91c2VsLXNsaWRlIGltZ3thbmltYXRpb246YmxrLWIxbGlkLWtlbmJ1cm5zLWxvb3AgMTRzIGVhc2UtaW4tb3V0IGluZmluaXRlO30KQGtleWZyYW1lcyBibGstYjFsaWQta2VuYnVybnMtbG9vcHsgMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gNTAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSAxMDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IH0KLyogQ29tcGFyYWRvciBhbnRlcy9kZXNwdelzIChkZXNsaXphZG9yKSAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWIxbGlkIC5sZWFkLWNvbXBhcmV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7dG91Y2gtYWN0aW9uOm5vbmU7ei1pbmRleDoyO30KLmJsay1iMWxpZCAubGVhZC1jb21wYXJlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXI7b2JqZWN0LXBvc2l0aW9uOmNlbnRlcjtkaXNwbGF5OmJsb2NrO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLWRyYWc6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay1iMWxpZCAubGVhZC1jb21wYXJlLWJlZm9yZXtjbGlwLXBhdGg6aW5zZXQoMCA1MCUgMCAwKTt3aWxsLWNoYW5nZTpjbGlwLXBhdGg7fQouYmxrLWIxbGlkIC5sZWFkLWNvbXBhcmUtcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTttYXJnaW46MDtvcGFjaXR5OjA7Y3Vyc29yOmV3LXJlc2l6ZTt9Ci5ibGstYjFsaWQgLmxlYWQtY29tcGFyZS1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDo1MCU7aW5saW5lLXNpemU6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6Mjt9Ci5ibGstYjFsaWQgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtpbmxpbmUtc2l6ZToycHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC4yNSk7fQouYmxrLWIxbGlkIC5sZWFkLWNvbXBhcmUtaGFuZGxlOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDotMTVweDtpbmxpbmUtc2l6ZTozMHB4O2Jsb2NrLXNpemU6MzBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmYgdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnPjxnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMDAwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCc+PHBhdGggZD0nTTggNiBMNCAxMCBMOCAxNCcvPjxwYXRoIGQ9J00xMiA2IEwxNiAxMCBMMTIgMTQnLz48L2c+PC9zdmc+IikgY2VudGVyLzE2cHggMTZweCBuby1yZXBlYXQ7Ym94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwuMjUpO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMjUpO30KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE1pc21vIHotaW5kZXg6MiBxdWUKICAgLmxlYWQtY29tcGFyZSwgcG9yIGVsIG1pc21vIG1vdGl2byAoZ2FuYXJsZSBhIC5sZWFkLWxpbmspLiAqLwouYmxrLWIxbGlkIC5sZWFkLWlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt6LWluZGV4OjI7fQouYmxrLWIxbGlkIC5sZWFkLWlmcmFtZSBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay1iMWxpZCAubGVhZC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLWIxbGlkIC5sZWFkLWJvZHl7cGFkZGluZzowcHggMjBweCAyMHB4IDIwcHg7O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjY7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGlubGluZS1zaXplOjk1JTsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi10b3A6LTMwcHg7IGJhY2tncm91bmQ6IzBFMTExQTsgZmxleDoxIDEgYXV0bzt9Ci8qIEFudGV07XR1bG8vdGl0dWxhci9zdWJ07XR1bG8vYXV0b3IgY2VudHJhZG9zIGVuIHZlcnRpY2FsIGRlbnRybyBkZWwgYWx0bwogICBzb2JyYW50ZSBiYWpvIGxhIGNhdGVnb3LtYSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLWIxbGlkIC5sZWFkLWJvZHktbWFpbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2lubGluZS1zaXplOjEwMCU7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjA7fQovKiBBcGFyaWVuY2lhIG5lZ2F0aXZhIChwb3IgZGVmZWN0bykgdnMuIHBvc2l0aXZhIGRlIGxhIGNhamEgZGUgdGl0dWxhciAmIzgyMTI7IHZlcgogICBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLWIxbGlkIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtYm9keXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO30KLmJsay1iMWxpZCAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLXRpdGxlLAouYmxrLWIxbGlkIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmF1dGhvci1sYWJlbHtjb2xvcjojMEUxMTFBO30KLyogUG9zaWNp824gZGVsIGxlYWQtYm9keSByZXNwZWN0byBhbCBsZWFkLW1lZGlhICgnbGVmdCcvJ3JpZ2h0JykgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktbGVmdCwKLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246cm93O2FzcGVjdC1yYXRpbzoyLjk2Mjk2Mjk2Mjk2Mjk2Mzt9Ci5ibGstYjFsaWQgLmxlYWQubGVhZC1ib2R5LWxlZnR7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fQouYmxrLWIxbGlkIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAouYmxrLWIxbGlkIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjAgMCA2MCU7fQouYmxrLWIxbGlkIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCi5ibGstYjFsaWQgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDowIDAgY2FsYyg0MCUgKyAzMHB4KTtpbmxpbmUtc2l6ZTphdXRvO21hcmdpbi10b3A6MDtibG9jay1zaXplOmNhbGMoMTAwJSAtIDQycHgpO2FsaWduLXNlbGY6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30KLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi0zMHB4O30KLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDotMzBweDttYXJnaW4tcmlnaHQ6MDt9Ci8qIFBvc2ljafNuICdib3R0b20tZnVsbCcgZGVsIGxlYWQtYm9keSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBpbmxpbmUtc2l6ZQogICBlbiB2ZXogZGUgd2lkdGggcG9yIGVsIG1pc21vIG1vdGl2byBxdWUgZWwgcmVzdG8gZGUgZXN0ZSBibG9xdWUgKGV2aXRhcgogICBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUwogICBkaXJlY3RhbWVudGUpLiAqLwouYmxrLWIxbGlkIC5sZWFkLmxlYWQtYm9keS1ib3R0b20tZnVsbCAubGVhZC1ib2R5ewogIGlubGluZS1zaXplOjEwMCU7CiAgbWFyZ2luOjA7CiAgcGFkZGluZy10b3A6MzBweDsKICBwYWRkaW5nLWJvdHRvbTozMHB4OwogIGJvcmRlcjpub25lOwp9Ci8qIEV0aXF1ZXRhIGRlIGV4Y2x1c2l2YSAobyB0ZXh0byBwZXJzb25hbGl6YWRvKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWIxbGlkIC5sZWFkLWV4Y2x1c2l2ZS10YWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4O3otaW5kZXg6MztkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2xldHRlci1zcGFjaW5nOjAuNXB4O3BhZGRpbmc6MnB4IDhweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOi44ZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7fQovKiBTZWxlY3RvciBjb24gMyBjbGFzZXMgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoIi5sZWFkLW1lZGlhIGltZyIgdGFtYmnpbgogICBtYXRjaGVhIGVzdGUgPGltZz4geSBsZSBnYW5hYmEgZW4gZXNwZWNpZmljaWRhZCkuICovCi5ibGstYjFsaWQgLmxlYWQtZXhjbHVzaXZlLXRhZyAubGVhZC1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGstYjFsaWQgLmxlYWQtY2F0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpza2V3WSgtNmRlZyk7bWFyZ2luLXRvcDotMTVweDttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLWIxbGlkIC5sZWFkLWtpY2tlciwgLmJsay1iMWxpZCAubGVhZC1zdWJ0aXRsZXsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7dGV4dC10cmFuc2Zvcm06bm9uZTttYXJnaW46MDsKfQouYmxrLWIxbGlkIC5sZWFkLWtpY2tlcntmb250LXdlaWdodDo3MDA7fQouYmxrLWIxbGlkIC5sZWFkLXN1YnRpdGxle2ZvbnQtd2VpZ2h0OjYwMDt9Ci8qIFRhbWHxby9pbnRlcmxpbmVhZG8vY29sb3IgZGUgYW50ZXTtdHVsbyB5IHN1YnTtdHVsbyBlbiBEZXNrICh2YWxvcmVzIHBvcgogICBkZWZlY3RvIGRlbCBibG9xdWU7IGVsIG92ZXJyaWRlIGRlIE3zdmlsIHZhIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLAogICB5YSBxdWUgZWwgSFRNTCBleHBvcnRhZG8gZXMgcmVzcG9uc2l2ZSB5IG5vIGRlcGVuZGUgZGUgcXXpIHZpc3RhIHR1dmllcmFzCiAgIHNlbGVjY2lvbmFkYSBlbiBlbCBnZXN0b3IgYWwgZXhwb3J0YXIvY29waWFyKS4gKi8KLmJsay1iMWxpZCAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci5ibGstYjFsaWQgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzAwQTdGRjt9Ci8qIHRleHQtd3JhcDpiYWxhbmNlICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGVsIGdlc3RvciAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgZXNhIHJlZ2xhKTogcmVwYXJ0ZSBsYXMKICAgbO1uZWFzIGRlbCB0aXR1bGFyIGRlIGZvcm1hIG3hcyB1bmlmb3JtZSBkZW50cm8gZGUgY2FkYSBkaXNwb3NpdGl2bywgc2luCiAgIHByZXRlbmRlciBpZ3VhbGFyIGVsIG76bWVybyBkZSBs7W5lYXMgZW50cmUgcGxhdGFmb3JtYXMgZGlzdGludGFzLiAqLwouYmxrLWIxbGlkIC5sZWFkLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjIuMnJlbTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7dGV4dC13cmFwOmJhbGFuY2U7fQovKiBUaXR1bGFyIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhICh2ZXIgYnVpbGRTY29wZWRIVE1MKToKICAgc2UgZ2VuZXJhbiBsb3MgZG9zIHRleHRvcyAoRGVzay9N83ZpbCkgeSBhcXXtIHNlIG11ZXN0cmEgc29sbyB1bm8gc2Vn+m4gZWwKICAgYW5jaG8gcmVhbCBkZWwgY29udGVuZWRvciAmIzgyMTI7IGVsIG1pc21vIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSB5YSB1c2EgZWwKICAgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvIHBhcmEgYWRhcHRhcnNlIHNpbiBkZXBlbmRlciBkZSBKUy4gKi8KLmJsay1iMWxpZCAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogQW50ZXTtdHVsby9zdWJ07XR1bG8gY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGE6IG1pc21vCiAgIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyICh2ZXIgYXJyaWJhKS4gKi8KLmJsay1iMWxpZCAubGVhZC1raWNrZXItbW9iaWxlLCAuYmxrLWIxbGlkIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBUaXR1bGFyIGRlIG5vdGljaWEgcmVsYWNpb25hZGEgKGNvbHVtbmEpIGNvbiB0ZXh0byBwcm9waW8gZW4gTfN2aWwgKHZlcgogICBpdGVtLnRpdGxlTW9iaWxlIGVuIGJ1aWxkQ29sdW1uSXRlbVRpdGxlSFRNTCk6IG1pc21vIG1lY2FuaXNtbyBkZQogICBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyIHByaW5jaXBhbCBkZSBhcnJpYmEuICovCi5ibGstYjFsaWQgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci5ibGstYjFsaWQgLmF1dGhvci1sYWJlbHtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30KLmJsay1iMWxpZCAuY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO30KLmJsay1iMWxpZCAuY29sdW1uLWl0ZW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay1iMWxpZCAudGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86NC8zO2JhY2tncm91bmQ6I2VlZTtvdmVyZmxvdzpoaWRkZW59Ci5ibGstYjFsaWQgLnRodW1iIGltZywKLmJsay1iMWxpZCAudGh1bWIgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQouYmxrLWIxbGlkIC50aHVtYiAucGxheS1zcXVhcmUsCi5ibGstYjFsaWQgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlewogIHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NXB4OyBsZWZ0OjVweDsKICBpbmxpbmUtc2l6ZToyNXB4O2Jsb2NrLXNpemU6MjVweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7CiAgY3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsIHRyYW5zZm9ybSAuMTJzOwogIHotaW5kZXg6MjsgYW5pbWF0aW9uOmJsay1iMWxpZC1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLWIxbGlkIC50aHVtYiAucGxheS1zcXVhcmU6OmJlZm9yZSwKLmJsay1iMWxpZCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgbWFyZ2luLWxlZnQ6MnB4Owp9Ci5ibGstYjFsaWQgLnRodW1iIC5wbGF5LXNxdWFyZTpob3ZlciwKLmJsay1iMWxpZCAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6aG92ZXJ7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjg1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IH0KLmJsay1iMWxpZCAuc3RhY2stdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjE1ZW07bWFyZ2luOjA7Y29sb3I6IzJjM2U1Mzt9Ci5ibGstYjFsaWQgLnN0YWNrLWF1dGhvcntmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7Y29sb3I6IzgyODU5NTtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTFweDtsZXR0ZXItc3BhY2luZzowO3RleHQtYWxpZ246cmlnaHQ7fQovKiBTaW4gZXN0YSByZWdsYSBlbCBhdXRvciBxdWVkYSBwZWdhZG8ganVzdG8gZGViYWpvIGRlbCB0aXR1bGFyIGVuIHZleiBkZQogICBhYmFqbyBkZSBsYSB0YXJqZXRhOiAubW9kLXN0YWNrIG5lY2VzaXRhIHNlciBmbGV4LWNvbHVtbiBjb24KICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4gcGFyYSBxdWUgZWwgaHVlY28gc29icmFudGUgKGN1YW5kbyBsYQogICB0YXJqZXRhIGNyZWNlIG3hcyBxdWUgc3UgY29udGVuaWRvLCB2ZXIgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKQogICBt4XMgYWJham8pIGVtcHVqZSBlbCBhdXRvciBoYWNpYSBlbCBib3JkZSBpbmZlcmlvci4gKi8KLmJsay1iMWxpZCAubW9kLXN0YWNre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleDoxIDEgYXV0bzt9Ci8qIEVzdGlsbyAiZm90byBwZXF1ZfFhICsgdGl0dWxhciI6IGZvdG8gNDozIGEgbGEgaXpxdWllcmRhLCB0ZXh0byBhIGxhIGRlcmVjaGEuICovCi5ibGstYjFsaWQgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by1sZWZ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEwcHggMWZyO2dhcDoxMHB4O30KLyogRXN0aWxvICJzb2xvIHRleHRvIiAocG9yIGRlZmVjdG8pOiBlbCBhdXRvciBzZSBwb3NpY2lvbmEgZW4gYWJzb2x1dG8sCiAgIGFuY2xhZG8gYSBsYSBlc3F1aW5hIGluZmVyaW9yIGRlcmVjaGEgZGUgbGEgdGFyamV0YSAoaWd1YWwgcXVlIGVsIHBsYXkgZGUKICAgbGFzIG1pbmlhdHVyYXMpLCBlbiB2ZXogZGUgZGVwZW5kZXIgZGUgcXVlIGVsIGJsb3F1ZSBkZSB0ZXh0byB0ZW5nYSBodWVjbwogICBkZSBzb2JyYSBwYXJhIGVtcHVqYXJsbyBhYmFqbyBjb24gZmxleGJveCAmIzgyMTI7IGNvbiB07XR1bG9zIGRlIDItMyBs7W5lYXMgZXNlCiAgIGh1ZWNvIG5vIGV4aXN0ZSB5IGVsIGF1dG9yIG51bmNhIGxsZWdhYmEgYSBiYWphci4gcGFkZGluZy1ib3R0b20gZW4KICAgbGVmdC1ib2R5IHJlc2VydmEgZWwgZXNwYWNpbyBwYXJhIHF1ZSBlbCB07XR1bG8gbm8gc2Ugc29sYXBlIGNvbiDpbC4gKi8KLmJsay1iMWxpZCAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLmxlZnQtYm9keXtwYWRkaW5nLWJvdHRvbTozM3B4O30KLmJsay1iMWxpZCAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLnN0YWNrLWF1dGhvcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2JvdHRvbToxMHB4O21hcmdpbi10b3A6MDt9Ci5ibGstYjFsaWQgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KLmJsay1iMWxpZCAubGVmdC1wbGF5ewogIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmJsay1iMWxpZCAubGVmdC1wbGF5OjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKfQouYmxrLWIxbGlkIC5yZWxhdGVkLWxpdmUtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZGNTA1MDsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZGNTA1MDsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay1iMWxpZCAucmVsYXRlZC1lZGl0b3JpYWwtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZBQjEyMTsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZBQjEyMTsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay1iMWxpZCAucGxheS1idXR0b257CiAgLyogQW5jaG8vYWx0byBmaWpvcyBlbiB2ZXogZGUgYXNwZWN0LXJhdGlvOjEvMSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKGVsCiAgICAgY+FsY3VsbyBkZSAic2hyaW5rLXRvLWZpdCIgcGFyYSB1biA8YnV0dG9uPiBlbiBhYnNvbHV0byBzaW4gdGFtYfFvCiAgICAgZXhwbO1jaXRvIG5vIGVzIGZpYWJsZSBlbnRyZSBtb3RvcmVzOyBlbiBXZWJLaXQvaU9TIGRhYmEgdW4gcmVjdOFuZ3VsbwogICAgIHZlcnRpY2FsIGVzdHJlY2jtc2ltbyBlbiB2ZXogZGUgdW4gY3VhZHJhZG8pLiAqLwogIGFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7CiAgaW5saW5lLXNpemU6MzRweDtibG9jay1zaXplOjM0cHg7CiAgZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggMTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7CiAgY3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO2FuaW1hdGlvbjpibGstYjFsaWQtYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay1iMWxpZCAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodHt0b3A6MTBweDtyaWdodDoxMHB4O2xlZnQ6YXV0bztib3R0b206YXV0bzt9Ci5ibGstYjFsaWQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tbGVmdHtib3R0b206MTBweDtsZWZ0OjEwcHg7dG9wOmF1dG87cmlnaHQ6YXV0bzt9Ci5ibGstYjFsaWQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7Ym90dG9tOjEwcHg7cmlnaHQ6MTBweDt0b3A6YXV0bztsZWZ0OmF1dG87fQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b24ucG9zLXRvcC1sZWZ0LAouYmxrLWIxbGlkIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbi5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLWIxbGlkIC5sZWFkLmxlYWQtYm9keS1yaWdodCAucGxheS1idXR0b24ucG9zLXRvcC1yaWdodCwKLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLyogUG9zaWNp824gJ2JvdHRvbScgcG9yIGRlZmVjdG86IGVsIGxlYWQtYm9keSBzb2xhcGEgMzBweCBzb2JyZSBlbCBib3JkZQogICBJTkZFUklPUiBkZSBsYSBmb3RvL3btZGVvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBjb24gJ2JvdHRvbS1mdWxsJwogICBuaSBjb24gJ2xlZnQnLydyaWdodCcgKGFqdXN0ZSBob3Jpem9udGFsIHByb3BpbywgdmVyIGFycmliYSkuICovCi5ibGstYjFsaWQgLmxlYWQ6bm90KC5sZWFkLWJvZHktbGVmdCk6bm90KC5sZWFkLWJvZHktcmlnaHQpOm5vdCgubGVhZC1ib2R5LWJvdHRvbS1mdWxsKSAucGxheS1idXR0b24ucG9zLWJvdHRvbS1sZWZ0LAouYmxrLWIxbGlkIC5sZWFkOm5vdCgubGVhZC1ib2R5LWxlZnQpOm5vdCgubGVhZC1ib2R5LXJpZ2h0KTpub3QoLmxlYWQtYm9keS1ib3R0b20tZnVsbCkgLnBsYXktYnV0dG9uLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo0MHB4OyB9Ci5ibGstYjFsaWQgLnBsYXktYnV0dG9uIC5wbGF5LWljb257CiAgaW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5ibGstYjFsaWQgLnBsYXktYnV0dG9uIC5wbGF5LXRleHR7ZGlzcGxheTpub25lO30KCi8qIFRpdHVsYXJlcyBhbmltYWRvcyAoY2FwYSBhbHRlcm5hdGl2YSBzb2JyZSBsZWFkLW1lZGlhKSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhCiAgIGhlcnJhbWllbnRhLiBDYWRhIHRpdHVsYXIgdGllbmUgc3UgcHJvcGlhIHBvc2ljafNuIChjbGFzZSBwb3MtKiwgdmVyCiAgIGJ1aWxkU2NvcGVkSFRNTCkgeSBzZSByZXZlbGEgbO1uZWEgcG9yIGztbmVhICh1bmEgdmV6IG1lZGlkYXMgc3VzIGztbmVhcwogICByZWFsZXMgcG9yIGVsIHNjcmlwdCBzdGFuZGFsb25lLCB2ZXIgYnVpbGRBbmltSGVhZGxpbmVzU2NyaXB0KSBjb24gdW5hCiAgIGNhamEgZGUgZm9uZG8gZGV0cuFzIGRlIGNhZGEgbO1uZWEgeSB1biBmYWRlIGRlIG9wYWNpZGFkIGVudHJlIHRpdHVsYXJlcy4gKi8KLmJsay1iMWxpZCAubGVhZC1hbmltLWhlYWRsaW5lc3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHotaW5kZXg6NDsKICBwb2ludGVyLWV2ZW50czpub25lOwp9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1oZWFkbGluZXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjE1cHg7CiAgb3BhY2l0eTowOwp9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGJvdHRvbTo2MHB4OyB9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnR7IHRvcDo2MHB4OyB9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLWIxbGlkIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay1iMWxpZCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGxlZnQ6YXV0bzsgcmlnaHQ6MTVweDsgfQouYmxrLWIxbGlkIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodHsgdG9wOjYwcHg7IH0KLmJsay1iMWxpZCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHR7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBib3R0b206NjBweDsgfQovKiBDb24gZWwgdGV4dG8gKGxlYWQtYm9keSkgYSBsYSBpenF1aWVyZGEgbyBsYSBkZXJlY2hhLCBlc2UgYmxvcXVlIHNvbGFwYQogICAzMHB4IGRlbCBsYWRvIGRlIGxhIGZvdG8vdu1kZW8gcGVnYWRvIGEg6WwgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8KICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdCwKLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdCwKLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgbGVmdDo0MHB4OyB9Ci5ibGstYjFsaWQgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay1iMWxpZCAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLWIxbGlkIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IHJpZ2h0OjQwcHg7IH0KLmJsay1iMWxpZCAubGVhZC1hbmltLWhlYWRsaW5lLmlzLWFjdGl2ZXsgb3BhY2l0eToxOyB9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1saW5lewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGRpc3BsYXk6dGFibGU7CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjkwMDsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDhweDsKICBjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCk7CiAgb3BhY2l0eToxOwogIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7Cn0KLmJsay1iMWxpZCAubGVhZC1hbmltLWxpbmUuaXMtaGlkaW5neyBvcGFjaXR5OjA7IH0KLyogU29sYXBlIGRlIDFweCBlbnRlcmEgZW50cmUgbO1uZWFzIHBhcmEgY2VycmFyIGVsIGhpbG8gZGUgc3ViLXDteGVsIHF1ZQogICBwdWVkZSBxdWVkYXIgZW50cmUgc3VzIGNhamFzIGRlIGZvbmRvIChyZWRvbmRlbyBkZSBhbHR1cmFzIGZyYWNjaW9uYXJpYXMpICYjODIxMjsKICAgdmVyIG1pc21vIGNvbWVudGFyaW8sIGRldGFsbGFkbywgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay1iMWxpZCAubGVhZC1hbmltLWxpbmUgKyAubGVhZC1hbmltLWxpbmV7CiAgbWFyZ2luLXRvcDotMXB4Owp9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1saW5lOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDo2cHg7IH0KLmJsay1iMWxpZCAubGVhZC1hbmltLWxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1ib3R0b206NnB4OyB9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay1iMWxpZCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLWIxbGlkIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodCAubGVhZC1hbmltLWxpbmV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDowOyB9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1oZWFkbGluZXMuaXMtcG9zaXRpdmUgLmxlYWQtYW5pbS1saW5leyBjb2xvcjojMEUxMTFBOyB9Ci5ibGstYjFsaWQgLmxlYWQtYW5pbS1saW5lLWJneyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgei1pbmRleDotMTsgfQouYmxrLWIxbGlkIC5sZWFkLWFuaW0tbGluZS10ZXh0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQpAa2V5ZnJhbWVzIGJsay1iMWxpZC1hbmltLWxpbmUtcmV2ZWFseyB0b3sgY2xpcC1wYXRoOmluc2V0KDAgMCAwIDApOyB9IH0KCi8qIEFuY2hvciBvdmVybGF5IGZvciBmdWxsIGNsaWNrYWJsZSBsZWFkICovCi5ibGstYjFsaWQgLmxlYWQtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MX0KCi8qIEhvdmVyIG9wYWNpdHkgYW5pbWF0aW9uICovCi5ibGstYjFsaWQgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCi5ibGstYjFsaWQgLmNvbHVtbi1pdGVtOmhvdmVye29wYWNpdHk6Ljh9Ci8qIEZvdG8gcHJpbmNpcGFsIChmYWxsYmFjay9zaW5nbGUpIG8gY2FycnVzZWwgZGUgZm90b3M6IG9wYWNpZGFkIDAuOSBhbAogICBwYXNhciBlbCByYXTzbiBwb3IgbGEgdGFyamV0YSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbgogICBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBObyBhcGxpY2EgYSB27WRlbyBuaSBhbAogICBjb21wYXJhZG9yIGFudGVzL2Rlc3B16XMuICovCi5ibGstYjFsaWQgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGstYjFsaWQgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLWIxbGlkIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLWIxbGlkIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eTouOTt9Ci8qIEVuIGVsIGFuY2hvIG3zdmlsIChtaXNtbyBAY29udGFpbmVyIHF1ZSBlbCByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8pIG5vCiAgIGFwbGljYSBlc3RhIGFuaW1hY2nzbiBkZSBvcGFjaWRhZCBzb2JyZSBsYSBub3RpY2lhIHByaW5jaXBhbDogdmEgREVTUFXJUwogICBkZSBsYSByZWdsYSBnZW5lcmFsIGRlIGFycmliYSAobWlzbWEgZXNwZWNpZmljaWRhZCkgcGFyYSBwb2RlciBnYW5hcmxlLgogICBPbWl0aWRvLCBpZ3VhbCBxdWUgZWwgYmxvcXVlIGRlIHRpcG9ncmFm7WEgZGUgYXJyaWJhLCBtaWVudHJhcyBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGVzdOkgYWN0aXZhICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7CiAgLmJsay1iMWxpZCAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKICAuYmxrLWIxbGlkIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gaW1nLAogIC5ibGstYjFsaWQgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5OjE7fQp9CgovKiBBbmltYWNp824gY29tcGFydGlkYSBwbGF5IHByaW5jaXBhbCArIGN1YWRyYWRvcyBwbGF5IGFwaWxhZGFzICovCkBrZXlmcmFtZXMgYmxrLWIxbGlkLWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyl9CiAgNTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsMC45KX0KfQovKiBDYWJlY2VyYSAqLwouYmxrLWIxbGlkIC5iZy1zZWN0aW9uLXRpdGxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjEwcHggMCAzMnB4fQouYmxrLWIxbGlkIC5mbmQtbGluZWF7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjVweDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbi10b3A6LTE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzMzfQouYmxrLWIxbGlkIC5zZWN0aW9uLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo0cHggMTNweDtib3JkZXI6MXB4IHNvbGlkICMwRTExMUE7dHJhbnNmb3JtOnJvdGF0ZVgoNWRlZykgcm90YXRlWSgtMjVkZWcpIHNrZXdYKDBkZWcpO2ZvbnQtc2l6ZTo0MnB4O2NvbG9yOiMwRTExMUE7fQpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpey5ibGstYjFsaWQgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzowIDEwcHh9fQovKiBDYWJlY2VyYSAmIzgyMTI7IERpc2XxbyAyICh0aXR1bGFyICsgY2FycnVzZWwgZGUgbG9nb3RpcG9zKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWIxbGlkIC5oZWFkZXIye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMEUxMTFBO30KLyogYWxpZ24tc2VsZjpmbGV4LWVuZCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIDE1cHggZGUgbGEgbO1uZWEgc2VwYXJhZG9yYQogICBlbiBEZXNrICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcwogICBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstYjFsaWQgLmhlYWRlcjItbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXg6MSAxIDUwJTttaW4taW5saW5lLXNpemU6MDthbGlnbi1zZWxmOmZsZXgtZW5kO30KLmJsay1iMWxpZCAuaGVhZGVyMi10YWdze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4OjAgMCBhdXRvO30KLyogTWlzbW8gdGFtYfFvL3RpcG9ncmFm7WEgcXVlIC5sZWFkLWV4Y2x1c2l2ZS10YWcgKGxhIGRlIGxhIG5vdGljaWEKICAgcHJpbmNpcGFsKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlCiAgIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLWIxbGlkIC5oZWFkZXIyLWNhdC10YWcsCi5ibGstYjFsaWQgLmhlYWRlcjItZXhjbHVzaXZlLXRhZ3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xldHRlci1zcGFjaW5nOi41cHg7cGFkZGluZzoycHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt9Ci5ibGstYjFsaWQgLmhlYWRlcjItZXhjbHVzaXZlLXRhZy1pY29ue3Bvc2l0aW9uOnN0YXRpYztpbnNldDphdXRvO2lubGluZS1zaXplOjE0cHg7YmxvY2stc2l6ZToxNHB4O29iamVjdC1maXQ6Y29udGFpbjtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6YmxvY2s7fQouYmxrLWIxbGlkIC5oZWFkZXIyLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6MS4wNTtjb2xvcjojMEUxMTFBO21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttaW4taW5saW5lLXNpemU6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7fQovKiBTZXBhcmFjafNuIGRlIDEwcHggZW50cmUgZWwgdGV4dG8gZGUgcGF0cm9jaW5pbyB5IGVsIGxvZ28gZW4gRGVzayAmIzgyMTI7IGVuCiAgIE3zdmlsIHNpZ3VlIHNpbiBzZXBhcmFjafNuIChnYXA6MCwgdmVyIEBjb250YWluZXIgbeFzIGFiYWpvKS4gKi8KLmJsay1iMWxpZCAuaGVhZGVyMi1sb2dvcy13cmFwe2ZsZXg6MCAwIGF1dG87bWF4LWlubGluZS1zaXplOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9Ci8qIEV0aXF1ZXRhIG9wY2lvbmFsIGp1bnRvIGFsIGNhcnJ1c2VsIGRlIGxvZ29zIChwLmVqLiAiUGF0cm9jaW5hZG8gcG9yOiIpICYjODIxMjsKICAgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstYjFsaWQgLmhlYWRlcjItbG9nb3MtbGFiZWx7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2Njc7d2hpdGUtc3BhY2U6bm93cmFwO30KLmJsay1iMWxpZCAuaGVhZGVyMi1sb2dvc3twb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxNjBweDtibG9jay1zaXplOjUwcHg7ZmxleC1zaHJpbms6MDt9Ci5ibGstYjFsaWQgLmhlYWRlcjItbG9nb3MgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87bWF4LWlubGluZS1zaXplOjEwMCU7bWF4LWJsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7fQouYmxrLWIxbGlkIC5oZWFkZXIyLWxvZ29zIGltZy5pcy1hY3RpdmV7b3BhY2l0eToxO30KLyogSWd1YWwgcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWw6IHBvciBkZWJham8gZGUgZXN0ZSBhbmNobyBzZQogICBpbnRlbnRhIHByaW1lcm8gMSBTT0xBIEZJTEEgKGV0aXF1ZXRhcyt0aXR1bGFyIGp1bnRvIGFsIGxvZ28sIGlndWFsIHF1ZQogICBlbiBEZXNrLCBhIHRhbWHxbyByZWR1Y2lkbykuIEVsIGJsb3F1ZSBkZSBsb2dvcyBtYW50aWVuZSBTSUVNUFJFIHN1CiAgIGRpc3Bvc2ljafNuIGVuIGNvbHVtbmEgKGV0aXF1ZXRhIGRlIHBhdHJvY2luaW8gZW5jaW1hIGRlbCBsb2dvLAogICBhbGluZWFkb3MgYSBsYSBkZXJlY2hhLCBzaW4gc2VwYXJhY2nzbikgdGFudG8gZW4gZXN0YSBmaWxhIPpuaWNhIGNvbW8gZW4KICAgZWwgcmVzZ3VhcmRvIGRlIGFiYWpvLiBTaSBlbCB0aXR1bGFyLCBzdW1hZG8gYWwgYW5jaG8gZGUgbGFzIGV0aXF1ZXRhcwogICBhY3RpdmFzIChjYXRlZ29y7WEgeS9vIGV4Y2x1c2l2YSwgc2kgbGFzIGhheSksIHN1cGVyYSBlbCA1NSUgZGVsIGFuY2hvCiAgIHRvdGFsIGRlIGxhIGNhYmVjZXJhIChjYWRhIHVubyBtZWRpZG8gYSB1bmEgc29sYSBs7W5lYSksIGVsIHNjcmlwdAogICBzdGFuZGFsb25lIGHxYWRpZG8gYWwgZmluYWwgZGUgZXN0ZSBIVE1MICh2ZXIKICAgYnVpbGRIZWFkZXIyU3RhY2tpbmdTY3JpcHQoKSkgbG8gZGV0ZWN0YSBtaWRpZW5kbyBzdSBhbmNobyBuYXR1cmFsCiAgIHkgYfFhZGUgbGEgY2xhc2UgImhlYWRlcjItc3RhY2tlZCI6IGVsIGJsb3F1ZSBkZQogICBsb2dvcyBzdWJlIGVudG9uY2VzIGEgc3UgcHJvcGlhIGZpbGEgKGFsaW5lYWRvIGEgbGEgZGVyZWNoYSkgeQogICB0aXR1bGFyK2V0aXF1ZXRhcyBiYWphbiBhIGxhIGZpbGEgZGUgYWJham8sIGEgYW5jaG8gY29tcGxldG8gJiM4MjEyOyBtaXNtbwogICBsYXlvdXQgZGUgMiBmaWxhcyBxdWUgaGFi7WEgYW50ZXMgc2llbXByZSBwb3IgZGViYWpvIGRlIGVzdGUgYnJlYWtwb2ludCwKICAgYWhvcmEgc29sbyBjb21vIHJlc2d1YXJkby4gRGVudHJvIGRlIGVzZSByZXNndWFyZG8sIGNvbiBldGlxdWV0YShzKSBlbAogICB0aXR1bGFyIHBhc2EgYWRlbeFzIGEgc3UgUFJPUElBIGZpbGEgYSBhbmNobyBjb21wbGV0bywgZGViYWpvIGRlIGxhIGZpbGEgZGUgZXRpcXVldGFzICh2ZXIKICAgIi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdCIgbeFzIGFiYWpvKS4gRWwgbG9nbyBzZSByZWR1Y2UgdW4gMjAlCiAgICgxNjB4NTAgJiM4NTk0OyAxMjh4NDApLgogICBhbGlnbi1zZWxmOmZsZXgtZW5kIGVuIGhlYWRlcjItbGVmdCBmaWphIGVsIHRpdHVsYXIgU0lFTVBSRSBhIGxvcyAxMHB4CiAgIGRlbCBwYWRkaW5nLWJvdHRvbSByZXNwZWN0byBhIGxhIGztbmVhIHNlcGFyYWRvcmEgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUKICAgZW4gRGVzayAodmVyIGhlYWRlcjItbGVmdCBt4XMgYXJyaWJhKTogc2luIGVzdG8sIGFsIHNlciBlbCBibG9xdWUgZGUKICAgbG9nb3MgbeFzIGFsdG8gcXVlIGVsIHRpdHVsYXIsIGVsIGNlbnRyYWRvIHZlcnRpY2FsIGRlbCByb3cgZGVqYWJhIHVuCiAgIGh1ZWNvIG1heW9yIGVudHJlIGVsIHRpdHVsYXIgeSBsYSBs7W5lYS4gRWwgYmxvcXVlIGRlIGxvZ29zIHNpZ3VlCiAgIGNlbnRyYWRvIChzaW4gZXNlIG92ZXJyaWRlKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLWIxbGlkIC5oZWFkZXIye2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fQogIC5ibGstYjFsaWQgLmhlYWRlcjItbGVmdHtvcmRlcjoxO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQogIC5ibGstYjFsaWQgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoyO2FsaWduLXNlbGY6Y2VudGVyO21heC1pbmxpbmUtc2l6ZTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLmJsay1iMWxpZCAuaGVhZGVyMi1sb2dvc3tpbmxpbmUtc2l6ZToxMjhweDtibG9jay1zaXplOjQwcHg7fQogIC5ibGstYjFsaWQgLmhlYWRlcjItdGl0bGV7Zm9udC1zaXplOjI3cHg7fQogIC5ibGstYjFsaWQgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2Vke2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30KICAuYmxrLWIxbGlkIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0e29yZGVyOjI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo1cHg7fQogIC5ibGstYjFsaWQgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MTttYXgtaW5saW5lLXNpemU6MTAwJTthbGlnbi1zZWxmOmZsZXgtZW5kO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MDt9CiAgLyogUmVzZ3VhcmRvIGludGVybWVkaW8gJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhOiBzb2xvIGVsIHRpdHVsYXIgYmFqYSBhIHN1CiAgICAgcHJvcGlhIGZpbGEgYSBhbmNobyBjb21wbGV0byBjdWFuZG8gbGFzIGV0aXF1ZXRhcyBTzSBjYWJlbiBqdW50byBhbAogICAgIGxvZ28gcGVybyBlbCB0aXR1bGFyIG5vLiBoZWFkZXIyLWxlZnQgcGFzYSBkZSBmaWxhIGEgY29sdW1uYQogICAgIChldGlxdWV0YXMgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbykgeSByZWN1cGVyYSBhbGlnbi1zZWxmOmF1dG8gcGFyYQogICAgIGNlbnRyYXJzZSB2ZXJ0aWNhbG1lbnRlIGNvbnRyYSBlbCBsb2dvIChhbGlnbi1zZWxmOmNlbnRlciBkZSBsYSByZWdsYQogICAgIGJhc2UgZGUgLmhlYWRlcjItbG9nb3Mtd3JhcCwgYXJyaWJhKSwgaWd1YWwgcXVlIGVuIGVsIHJlc3RvIGRlIGVzdGFkb3MuICovCiAgLmJsay1iMWxpZCAuaGVhZGVyMi5oZWFkZXIyLXRpdGxlLWJlbG93IC5oZWFkZXIyLWxlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tc2VsZjphdXRvO2dhcDo1cHg7fQp9CgovKiBFc3RpbG8gImZvdG8gZ3JhbmRlICsgdGl0dWxhciI6IGZvdG8gMTY6OSBhcnJpYmEsIHRpdHVsYXIgZGViYWpvICYjODIxMjsgZWxlZ2libGUKICAgcG9yIG5vdGljaWEgZGVzZGUgZWwgZ2VzdG9yLiBObyBzZSByZXN0cmluZ2UgY29uIEBjb250YWluZXIgcG9ycXVlCiAgIC5jb2x1bW4taXRlbSB5YSBlcyBibG9jayBwb3IgZGVmZWN0byAoZWwgdGh1bWIgeSBlbCB0ZXh0byBzZSBhcGlsYW4gc29sb3MKICAgc2luIG3hcyBhanVzdGUpLCBhc+0gcXVlIGVsIGRpc2XxbyBmdW5jaW9uYSBpZ3VhbCBkZSBiaWVuIGVuIGN1YWxxdWllcgogICBhbmNobywgRGVzayBvIE3zdmlsLiAqLwouYmxrLWIxbGlkIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fQouYmxrLWIxbGlkIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC50aHVtYntpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstYjFsaWQgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImFtcGxpdHVkZS1tZWRpdW0tY29uZGVuc2VkIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjkwMDt9Ci8qIEVuIE3zdmlsIGVsIHRpdHVsYXIgZGUgZXN0ZSBkaXNl8W8gc2UgbXVlc3RyYSBt4XMgZ3JhbmRlICgxLjVyZW0gZW4gdmV6IGRlCiAgIGxvcyAxLjJyZW0gZGUgRGVzaykgJiM4MjEyOyBtaXNtYSBlc3BlY2lmaWNpZGFkICgzIGNsYXNlcykgcXVlIGxhIHJlZ2xhIGRlCiAgIGFycmliYTsgYWwgaXIgREVTUFXJUyBlbiBlbCBDU1MgZ2FuYSBwb3Igb3JkZW4gZGUgY2FzY2FkYS4gU2UgdXNhIGVsCiAgIGJyZWFrcG9pbnQgZGUgNDgwcHggKGVsIGRlIHRpcG9ncmFm7WEgZW4gZXN0YSBhcHAsIG5vIGVsIGRlIDg2MHB4IHF1ZSBhcXXtCiAgIHNvbG8gZ29iaWVybmEgZWwgYXBpbGFkbyBkZSBjb2x1bW5hcykgcGFyYSBxdWUgY29pbmNpZGEgY29uIGVsIHJlc3RvIGRlCiAgIGNhbWJpb3MgZGUgdGV4dG8vdGFtYfFvIHBvciB2aXN0YS4gTm8gYWZlY3RhIGFsIHJlc2d1YXJkbyBkZSAyIGNvbHVtbmFzIGVuCiAgIG3zdmlsIChtb2ItZ3JpZCksIG3hcyBlc3BlY+1maWNvICgxOHB4LCB2ZXIgbeFzIGFycmliYSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay1iMWxpZCAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LXNpemU6MS41cmVtO30KfQovKiBFc3RpbG8gIkJsb3F1ZSBtZWRpYSIgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay1iMWxpZCAubWVkaWEtYmxvY2stbWVkaWF7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6YXV0bzt9Ci5ibGstYjFsaWQgLm1lZGlhLWJsb2NrLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt9Ci5ibGstYjFsaWQgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbjt9Ci5ibGstYjFsaWQgLm1lZGlhLWJsb2NrLWlmcmFtZS13cmFwIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLWIxbGlkIC5jb2x1bW4taXRlbS5sYXlvdXQtbWVkaWEtYmxvY2t7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7YmxvY2stc2l6ZTphdXRvO2ZsZXg6MCAwIGF1dG87fQouYmxrLWIxbGlkIC5jb2x1bW4taXRlbTpub3QoLmxheW91dC1tZWRpYS1ibG9jayl7ZmxleDoxIDEgYXV0bzt9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSJibGstYjFsaWQiPgogIAogIDxtYWluIGNsYXNzPSJwYWdlIj4KICAgIAogICAgPGFydGljbGUgY2xhc3M9ImxlYWQgbGVhZC1ib2R5LWxlZnQiPgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLW1lZGlhIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2xhcy1heXVkYXMtZGVsLWdvYmllcm5vLXBvci1sb3MtZmFsbGVjaWRvcy1kZS11cmRhLXNvbi1sYXMtbWlzbWFzLXF1ZS1lbi0yMDE0LXBlcm8tY29uLXVuYS1pbmZsYWNpb24tZGVsLTM0LTIwMjYxMTA3LTIzMjAzNi1lNGJkZDMuanBnIiBhbHQ9IkxhcyBheXVkYXMgZGVsIEdvYmllcm5vIHBvciBsb3MgZmFsbGVjaWRvcyBkZSBVcmRhIHNvbiBsYXMgbWlzbWFzIHF1ZSBlbiAyMDE0LCBwZXJvIGNvbiB1bmEgaW5mbGFjafNuIGRlbCAzNCUiIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiMwMEE3RkY7Y29sb3I6I2ZmZiI+RVNQQdFBPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keS1tYWluIj4KICAgICAgICAgIAogICAgICAgICAgPGgyIGNsYXNzPSJsZWFkLXRpdGxlIj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1kZXNrIj5MYXMgYXl1ZGFzIGRlbCBHb2JpZXJubyBwb3IgbG9zIGZhbGxlY2lkb3MgZGUgVXJkYSBzb24gbGFzIG1pc21hcyBxdWUgZW4gMjAxNCwgcGVybyBjb24gdW5hIGluZmxhY2nzbiBkZWwgMzQlPC9zcGFuPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLW1vYmlsZSI+TGFzIGF5dWRhcyBkZWwgR29iaWVybm8gcG9yIGxvcyBmYWxsZWNpZG9zIGRlIFVyZGEgc29uIGxhcyBtaXNtYXMgcXVlIGVuIDIwMTQsIHBlcm8gY29uIHVuYSBpbmZsYWNp824gZGVsIDM0JTwvc3Bhbj48L2gyPgogICAgICAgICAgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYXV0aG9yLWxhYmVsIj5GZXJu4W4gR29ueuFsZXo8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YSBjbGFzcz0ibGVhZC1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvYXl1ZGFzLWRlbC1nb2JpZXJuby1mYWxsZWNpZG9zLXVyZGEtc29uLW1pc21hcy1xdWUtMjAxNC1wZXJvLWluZmxhY2lvbi1kZWwtMzQtMjA3MTgyODUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiB0aXRsZT0iTGFzIGF5dWRhcyBkZWwgR29iaWVybm8gcG9yIGxvcyBmYWxsZWNpZG9zIGRlIFVyZGEgc29uIGxhcyBtaXNtYXMgcXVlIGVuIDIwMTQsIHBlcm8gY29uIHVuYSBpbmZsYWNp824gZGVsIDM0JSIgYXJpYS1sYWJlbD0iTGFzIGF5dWRhcyBkZWwgR29iaWVybm8gcG9yIGxvcyBmYWxsZWNpZG9zIGRlIFVyZGEgc29uIGxhcyBtaXNtYXMgcXVlIGVuIDIwMTQsIHBlcm8gY29uIHVuYSBpbmZsYWNp824gZGVsIDM0JSI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+Cgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICB2YXIgYXJ0aWNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibGstYjFsaWQgLmxlYWQnKTsKICBpZiAoIWFydGljbGUpIHJldHVybjsKICB2YXIgbWFpbiA9IGFydGljbGUucXVlcnlTZWxlY3RvcignLmxlYWQtYm9keS1tYWluJyk7CiAgdmFyIHRpdGxlRWwgPSBhcnRpY2xlLnF1ZXJ5U2VsZWN0b3IoJy5sZWFkLXRpdGxlJyk7CiAgaWYgKCFtYWluIHx8ICF0aXRsZUVsKSByZXR1cm47CiAgdmFyIGJhc2VGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRpdGxlRWwpLmZvbnRTaXplKSB8fCAwOwogIGlmICghYmFzZUZvbnRTaXplUHgpIHJldHVybjsKICB2YXIgTUFYX1NDQUxFID0gMS44OwogIHZhciBNSU5fU0NBTEUgPSAwLjU7CiAgdmFyIE1BWF9GT05UX1BYID0gNjQ7IC8vIH40cmVtIGNvbiBsYSBiYXNlIGhhYml0dWFsIGRlIDE2cHggKG1pc21vIHRvcGUgcXVlIGZpdExlYWRUaXRsZVRvQm94KCkgZW4gZWwgZ2VzdG9yKQogIHZhciBib2R5UG9zaXRpb25CbG9ja3NGaXQgPSBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LWxlZnQnKSB8fCBhcnRpY2xlLmNsYXNzTGlzdC5jb250YWlucygnbGVhZC1ib2R5LXJpZ2h0Jyk7CiAgZnVuY3Rpb24gZml0KCl7CiAgICBpZiAoYm9keVBvc2l0aW9uQmxvY2tzRml0KSByZXR1cm47CiAgICB0aXRsZUVsLnN0eWxlLmZvbnRTaXplID0gYmFzZUZvbnRTaXplUHggKyAncHgnOwogICAgdmFyIGF2YWlsYWJsZUhlaWdodCA9IG1haW4uY2xpZW50SGVpZ2h0OwogICAgaWYgKCFhdmFpbGFibGVIZWlnaHQpIHJldHVybjsKICAgIC8vIFZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGZpdExlYWRUaXRsZVRvQm94KCkgZGVsIGdlc3RvcjoKICAgIC8vIG1haW4uc2Nyb2xsSGVpZ2h0IG51bmNhIGJhamEgZGUgY2xpZW50SGVpZ2h0IGF1bnF1ZSBlbCBjb250ZW5pZG8gcmVhbAogICAgLy8gb2N1cGUgbWVub3MsIGFz7SBxdWUgbm8gc2lydmUgcGFyYSBkZXRlY3RhciBjdeFudG8gc29icmEgbyBmYWx0YSBjb24KICAgIC8vIGVsIHRpdHVsYXIgYWN0dWFsICYjODIxMjsgc2Ugc3VtYSBlbiBzdSBsdWdhciBlbCBhbHRvIHJlYWwgZGUgY2FkYSBoaWpvCiAgICAvLyBWSVNJQkxFIGRlbCBibG9xdWUsIHNhbHZvIGVsIHByb3BpbyB0aXR1bGFyLCBt4XMgZWwgaHVlY28gKCJnYXAiKQogICAgLy8gZW50cmUgZWxsb3M7IG5vIGNhbWJpYSBjb24gZWwgdGFtYfFvIGRlbCB0aXR1bGFyLCBhc+0gcXVlIHNlIG1pZGUgdW5hCiAgICAvLyBzb2xhIHZleiwgYW50ZXMgZGUgbGEgYvpzcXVlZGEgYmluYXJpYS4KICAgIHZhciBnYXBQeCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5yb3dHYXApIHx8IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nYXApIHx8IDA7CiAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW10uc2xpY2UuY2FsbChtYWluLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGMpLmRpc3BsYXkgIT09ICdub25lJzsgfSk7CiAgICB2YXIgb3RoZXJzSGVpZ2h0ID0gdmlzaWJsZUNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMgIT09IHRpdGxlRWw7IH0pLnJlZHVjZShmdW5jdGlvbihzdW0sIGMpeyByZXR1cm4gc3VtICsgYy5vZmZzZXRIZWlnaHQ7IH0sIDApCiAgICAgICsgZ2FwUHggKiBNYXRoLm1heCgwLCB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMSk7CiAgICB2YXIgYXZhaWxhYmxlRm9yVGl0bGUgPSBNYXRoLm1heCgwLCBhdmFpbGFibGVIZWlnaHQgLSBvdGhlcnNIZWlnaHQpOwogICAgaWYgKCFhdmFpbGFibGVGb3JUaXRsZSkgcmV0dXJuOwogICAgZnVuY3Rpb24gaGVpZ2h0QXRTY2FsZShzY2FsZSl7CiAgICAgIHRpdGxlRWwuc3R5bGUuZm9udFNpemUgPSBNYXRoLm1pbihiYXNlRm9udFNpemVQeCAqIHNjYWxlLCBNQVhfRk9OVF9QWCkgKyAncHgnOwogICAgICByZXR1cm4gdGl0bGVFbC5vZmZzZXRIZWlnaHQ7CiAgICB9CiAgICB2YXIgbG8gPSBNSU5fU0NBTEUsIGhpID0gTUFYX1NDQUxFOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspewogICAgICB2YXIgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgaWYgKGhlaWdodEF0U2NhbGUobWlkKSA8PSBhdmFpbGFibGVGb3JUaXRsZSkgbG8gPSBtaWQ7IGVsc2UgaGkgPSBtaWQ7CiAgICB9CiAgICBoZWlnaHRBdFNjYWxlKGxvKTsKICB9CiAgZml0KCk7CiAgaWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLnJlYWR5KXsgZG9jdW1lbnQuZm9udHMucmVhZHkudGhlbihmaXQpOyB9CiAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcil7IG5ldyBSZXNpemVPYnNlcnZlcihmaXQpLm9ic2VydmUoYXJ0aWNsZSk7IH0KICBlbHNlIHsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpdCk7IH0KfSkoKTsKPC9zY3JpcHQ+
    • El Gobierno recorta en 23.000 euros las ayudas por cada muerto de Adamuz y Urda
    • Moreno en Málaga: Sánchez castiga a Andalucía porque hemos querido un destino distinto al suyo
        • España
        • España

      Moreno: "Sánchez castiga a Andalucía porque hemos querido un destino distinto al suyo"

      • Ezequiel Marín
      • 2026-11-08 13:37
    • Vox recupera el
        • España
        • España

      Vox recupera el 'Es sentido común' como lema para las elecciones del 29-N

      • Rafael Alejandro Escalona
      • 2026-11-08 15:13
    • El Madrid salva la emboscada
    • Alcaraz – Shelton hoy, en directo: sigue en vivo el partido, el resultado y la última hora de la final del Masters 1000 de París
        • Deportes
        • Deportes

      Alcaraz – Shelton, en directo: sigue en vivo aquí la final del Masters 1000 de París

      • Pablo Villanueva
      • 2026-11-08 14:00
    • Atlanta Falcons - Cincinnati Bengals, en directo: sigue el resultado en tiempo real y cómo va el partido de NFL hoy en vivo
        • Deportes
        • Deportes

      Atlanta Falcons - Cincinnati Bengals, en directo: 

      • Miguel Zorío
      • 2026-11-08 15:21
    • La reflexión de Cañizares en la que despelleja a Maffeo: Hacerse el guapo y el fuerte está muy bien pero sin...
        • Real Madrid
        • Real Madrid

      Cañizares despelleja a Maffeo: "Hacerse el guapo y el fuerte está muy bien pero sin..."

      • Pablo Villanueva
      • 2026-11-08 10:29
    • La patronal de FCC y Acciona gana el recurso y anula el megacontrato de basuras de Madrid de 1.300 millones
    • Kate Middleton homenajea a Lady Di en el Día del Recuerdo con una de sus joyas más valiosas: los pendientes de diamantes que Diana llevó en su boda
        • Cool
        • Cool

      Kate Middleton homenajea a Lady Di en el Día del Recuerdo con una de sus joyas más valiosas: los pendientes de diamantes que Diana llevó en su boda

      Los estilismos de Kate Middleton vuelven a convertirse en protagonistas de una de las citas más señaladas del calendario de la familia real británica. La princesa de Gales ha participado en la ceremonia del Día del Recuerdo, en la que Reino Unido rinde homenaje a los miembros de las Fuerzas Armadas y a todas las víctimas de conflictos bélicos. Para la ocasión, ha vuelto a demostrar que la elegancia no necesita artificios con un conjunto negro de inspiración clásica, una pieza de sastrería como protagonista y varios detalles cargados de simbolismo. Entre ellas, unas joyas muy especiales que pertenecieron a Diana de Gales.
      • Javi Fernández
      • 2026-11-08 13:53
    • El
        • Cool
        • Cool

      El 'Golf Force One' de Trump, un carrito de golf de casi 170.000 euros que cuesta más que muchos coches de lujo

      • Marta Morales
      • 2026-11-08 11:39
    • Todos a la cárcel
    • PGlmcmFtZSBoZWlnaHQ9JzM1MHB4JyB3aWR0aD0nMTAwJScgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvaHRtbC95N2hzcnYtY2FycnVzZWwtZGlyZWN0b3MucGhwP21vZGU9ZGVzayIgICBmcmFtZWJvcmRlcj0iMCIgc2Nyb2xsaW5nPSJubyIgc3R5bGU9ImJvcmRlcjowO2Rpc3BsYXk6YmxvY2s7bWF4LSI+PC9pZnJhbWU+
      PGlmcmFtZSBoZWlnaHQ9JzY1MHB4JyB3aWR0aD0nMTAwJScgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvaHRtbC95N2hzcnYtY2FycnVzZWwtZGlyZWN0b3MucGhwP21vZGU9bW9iaWxlIiAgIGZyYW1lYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIiBzdHlsZT0iYm9yZGVyOjA7ZGlzcGxheTpibG9jazttYXgtIj48L2lmcmFtZT4=
    • La Policía impide protestas violentas por el caso Maricarmen este sábado, hay 200 identificados
        • Sucesos
        • Sucesos

      La Policía impide protestas violentas por el caso Maricarmen este sábado, hay 200 identificados

      • Ángel Moya
      • 2026-11-08 11:17
    • El delirio chavista de Ada Colau para solucionar el problema de la vivienda: ¡Exprópiese a los
        • España
        • España

      El delirio chavista de Ada Colau para solucionar el problema de la vivienda: "¡Exprópiese a los 'fondos buitre'!"

      • Rafael Alejandro Escalona
      • 2026-11-07 19:32
    • El Gobierno de Polonia investiga como atentado un tiroteo en pleno centro de Cracovia que deja al menos nueve muertos
        • Internacional
        • Internacional

      El Gobierno de Polonia investiga como "atentado" un tiroteo en pleno centro de Cracovia que deja al menos nueve muertos

      Un hombre ha matado a nueve personas y ha herido a otras 14 tras desatar un tiroteo desde un coche en marcha en pleno centro de Cracovia (Polonia) este sábado por la tarde. El tirador fue neutralizado por la Policía, que posteriormente ha encontrado otros tres cadáveres en la vivienda del sospechoso, pertenecientes a sus padres y su hermana.. El Ministerio del Interior polaco ya investiga el suceso, calificado por el primer ministro Donald Tusk como un "atentado".
      • Rafael Alejandro Escalona
      • 2026-11-07 17:01
    • Los reyes también cumplen años
    • Sube & baja, por Jaime Peñafiel: semana del 31 de octubre al 6 de noviembre
    • Vuelven las Jornadas Jurídicas de OKDIARIO: Marbella reunirá a la élite del Derecho español el 12 y 13 de noviembre
    • Se acabó el solomillo de boda
    • OK AL DÍA

    • Proverbio africano del día, sobre la resiliencia y la constancia: «El río se llena con arroyos pequeños»
        • Curiosidades
        • Curiosidades

      Proverbio africano sobre la resiliencia y la constancia: «El río se llena con arroyos pequeños»

      • Sofía Crotti
      • 2026-11-08 11:40
    • La lección de vida de Robert de Niro (82 años): Lo más importante es tener una buena conciencia, si puedes dormir por la noche y sentirte bien contigo mismo, eso es lo que importa
        • Curiosidades
        • Curiosidades

      Robert de Niro: "Lo importante es tener una buena conciencia y sentirte bien contigo mismo"

      • Javier Martínez
      • 2026-11-08 08:00
    • Albert Einstein y su reflexión sobre la vida: Es como una bicicleta: si quieres mantener el equilibrio, pedalea hacia delante
        • Curiosidades
        • Curiosidades

      Albert Einstein y su reflexión sobre la vida: "Es como una bicicleta: si quieres mantener el equilibrio, pedalea hacia delante"

      Albert Einstein dejó una de esas reflexiones que, décadas después, continúa utilizándose para hablar de superación personal, cambios y dificultades. "La vida es como una bicicleta: si quieres mantener el equilibrio, pedalea hacia delante". Detrás de esta sencilla comparación existe una idea mucho más profunda, ya que la estabilidad no siempre significa permanecer inmóvil, sino tener la capacidad de avanzar mientras se afrontan los cambios.
      • Aitana Pascual
      • 2026-11-08 11:25
    • Poner vinagre en la sartén al freír los huevos: para qué sirve y por qué lo recomiendan
        • Curiosidades
        • Curiosidades

      Poner vinagre en la sartén al freír los huevos: para qué sirve y por qué lo recomiendan

      • Javier Martínez
      • 2026-11-08 11:40
    • Los expertos instan a rociar vinagre alrededor del inodoro con frecuencia en casa: para qué sirve y por qué recomiendan hacerlo
        • Curiosidades
        • Curiosidades

      por esto Los expertos instan a rociar vinagre alrededor del inodoro con frecuencia en casa

      • Álvaro Olivero
      • 2026-11-08 11:22
    • Los bomberos coinciden y advierten: Por la noche es recomendable cerrar la puerta del dormitorio antes de dormir
        • Curiosidades
        • Curiosidades

      Los bomberos advierten: "de noche es recomendable cerrar la puerta del dormitorio antes de dormir"

      • Alejo Lucarás
      • 2026-11-08 10:10
    • Adiós al papel higiénico de toda la vida: la tendencia que está reemplazando los baños en 2026 y es más limpio y práctico
        • Curiosidades
        • Curiosidades

      Adiós al papel higiénico: la tendencia que está reemplazando los baños y es más limpio

      • Pedro Antolinos
      • 2026-11-08 11:24
    • María Cristina Clemente, notaria: “Nunca aconsejaría a una persona de 70 u 80 años que haga donación de sus bienes”
        • Economía
        • Economía

      una notaria: “Nunca aconsejaría a una persona de 70 u 80 años que haga donación de sus bienes”

      • Blanca Espada
      • 2026-11-08 08:15
    • Iluminar una habitación con una botella llena de agua sin usar electricidad: cómo funciona y qué ventajas tiene
        • Curiosidades
        • Curiosidades

      Iluminar una habitación con una botella llena de agua sin usar electricidad: qué ventajas tiene

      • Ana López Vera
      • 2026-11-08 11:22
    • Goya como nunca lo habías visto: el museo que merece un viaje a Zaragoza
    • CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBsaW1pdGFkbyBhIDk2MHB4IGVuIGVzY3JpdG9yaW8gKi8KICAgIC5jdi1pZjh5cSAuc2VjdGlvbnttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlfQoKICAgIC5jdi1pZjh5cSAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjo4cHggMCA1MHB4fQogICAgLmN2LWlmOHlxIC5mbmQtbGluZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMjVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9CiAgICAuY3YtaWY4eXEgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzMzMztmb250LXNpemU6NDJweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CgogICAgLmN2LWlmOHlxIC5jYXJvdXNlbHstLWdhcDoxNnB4Oy0tcGVlazoxMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tZ2FwKTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206NnB4fQogICAgLmN2LWlmOHlxIC50cmFja3tkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLWJlaGF2aW9yOnNtb290aDtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtwYWRkaW5nLXJpZ2h0OjB9CiAgICAuY3YtaWY4eXEgLnRyYWNrOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9CiAgICAuY3YtaWY4eXEgLmNhcmR7cG9zaXRpb246cmVsYXRpdmU7ZmxleDowIDAgYXV0bztzY3JvbGwtc25hcC1hbGlnbjpzdGFydDt3aWR0aDpjYWxjKCgxMDAlIC0gMip2YXIoLS1nYXApIC0gdmFyKC0tcGVlaykpLzMpO2FzcGVjdC1yYXRpbzo5LzE2O2JvcmRlci1yYWRpdXM6MTBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMDAwO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpO3RyYW5zaXRpb246b3BhY2l0eSAuNHMgZWFzZSwgdHJhbnNmb3JtIC40cyBlYXNlfQogICAgLmN2LWlmOHlxIC5jYXJkLmlzLWlue29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX0KCiAgICAuY3YtaWY4eXEgLnRodW1ie3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXMgZWFzZSwgb3BhY2l0eSAuMjVzIGVhc2U7dHJhbnNmb3JtOnNjYWxlKDEuMDEpfQogICAgLmN2LWlmOHlxIC5jYXJkOmhvdmVyIC50aHVtYiwuY3YtaWY4eXEgLmNhcmQ6Zm9jdXMtdmlzaWJsZSAudGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDEuMDYpfQogICAgLyogU2luIG92ZXJsYXlzIHBlcnNvbmFsaXphZG9zOiBzZSB1c2FuIGNvbnRyb2xlcyBuYXRpdm9zIGRlbCBwbGF5ZXIgKi8KCiAgICAuY3YtaWY4eXEgLmFye3Bvc2l0aW9uOnJlbGF0aXZlfQogICAgLmN2LWlmOHlxIC5hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpO2JveC1zaGFkb3c6MCA2cHggMTZweCByZ2IoMCAwIDAgLyAyMCUpO2JvcmRlcjoxcHggc29saWQgI2ZmZjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO3RyYW5zaXRpb246LjNzfQogICAgLmN2LWlmOHlxIC5hcnJvdzpob3ZlcntiYWNrZ3JvdW5kOnJnYigwIDAgMCAvIDIwJSk7Ym9yZGVyOjFweCBzb2xpZCAjZmZmfQogICAgLmN2LWlmOHlxIC5hcnJvdzpmb2N1c3tiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSl9CiAgICAuY3YtaWY4eXEgLmFycm93IHN2Z3t3aWR0aDoyMHB4O2hlaWdodDoyMHB4fQogICAgLmN2LWlmOHlxIC5hcnJvdy5sZWZ0e2xlZnQ6MTBweH0KICAgIC5jdi1pZjh5cSAuYXJyb3cucmlnaHR7cmlnaHQ6MTBweH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAgIC8qIEVuIG3zdmlsLCBlbCBjb250ZW5lZG9yIG9jdXBhIHRvZG8gZWwgYW5jaG8gKi8KICAgICAgLmN2LWlmOHlxIC5zZWN0aW9ue21heC13aWR0aDoxMDAlfQogICAgICAuY3YtaWY4eXEgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKX0KICAgICAgLmN2LWlmOHlxIC5jYXJvdXNlbHstLXBlZWs6MTIlfQogICAgICAvKiAyIHRhcmpldGFzIGNvbXBsZXRhcyArIHVuIHBlZWsgZGUgbGEgM6ogKi8KICAgICAgLmN2LWlmOHlxIC5jYXJke3dpZHRoOmNhbGMoKDEwMCUgLSA0KnZhcigtLWdhcCkgLSB2YXIoLS1wZWVrKSkvMSl9CiAgICAgIC5jdi1pZjh5cSAuYXJyb3d7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9CiAgICAgIC5jdi1pZjh5cSAudHJhY2t7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3BhZGRpbmctcmlnaHQ6MH0KICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iY3YtaWY4eXEiPgogICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgYXJpYS1sYWJlbD0iQ2FycnVzZWwgZGUgdu1kZW9zIChTaG9ydHMpIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiZy1zZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Vu1kZW9zIGRlIGxhIGFjdHVhbGlkYWQ8L2gyPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZuZC1saW5lYSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9Ikxpc3RhZG8gZGUgdu1kZW9zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IGxlZnQiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQW50ZXJpb3IiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IHJpZ2h0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTkgMThsNi02LTYtNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIiByb2xlPSJsaXN0Ij4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9WODZIOGNoR1NGWSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IlY4Nkg4Y2hHU0ZZIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvVjg2SDhjaEdTRlkvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDEiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvQVA4SEJ6Qzd6RjgiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJBUDhIQnpDN3pGOCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL0FQOEhCekM3ekY4L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAyIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzLzliNDFpT2xMazR3IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iOWI0MWlPbExrNHciIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS85YjQxaU9sTGs0dy9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9KaXdya0lEQXozdyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9Ikppd3JrSURBejN3IiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvSml3cmtJREF6M3cvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDQiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvWEhvb2NEZWVheW8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJYSG9vY0RlZWF5byIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL1hIb29jRGVlYXlvL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA1IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzLy1KVXlJMDJ1UnRnIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iLUpVeUkwMnVSdGciIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS8tSlV5STAydVJ0Zy9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9tX1JjNGZBLW5kYyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9Im1fUmM0ZkEtbmRjIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvbV9SYzRmQS1uZGMvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDciIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvcUZVOWtVZnVuWlkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJxRlU5a1VmdW5aWSIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL3FGVTlrVWZ1blpZL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA4IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgogICAgPC9kaXY+CiAgICA8c2NyaXB0PgogICAgKGZ1bmN0aW9uKCl7CiAgICAgIHZhciByb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmN2LWlmOHlxJyk7CiAgICAgIGlmICghcm9vdCkgcmV0dXJuOwogICAgICB2YXIgdHJhY2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFjaycpOwogICAgICBpZiAoIXRyYWNrKSByZXR1cm47CgogICAgICB2YXIgYXJyb3dzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXJyb3cnKTsKICAgICAgdmFyIEdBUCA9IDE2OwoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZFdpZHRoKCl7CiAgICAgICAgdmFyIGZpcnN0ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuY2FyZCcpOwogICAgICAgIGlmICghZmlyc3QpIHJldHVybiAwOwogICAgICAgIHJldHVybiBmaXJzdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZHNQZXJQYWdlKCl7CiAgICAgICAgLy8gRGVzazogYXZhbnphIGRlIHVuYSBlbiB1bmEgdGFyamV0YQogICAgICAgIHJldHVybiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSA/IDIgOiAxOwogICAgICB9CgogICAgICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgdmFyIGRpciA9IHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykgPyAtMSA6IDE7CiAgICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICAgIHZhciBzdGVwID0gKGNhcmRXICsgR0FQKSAqIGdldENhcmRzUGVyUGFnZSgpICogZGlyOwogICAgICAgICAgdHJhY2suc2Nyb2xsQnkoeyBsZWZ0OiBzdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgLy8gRmFkZS1pbiBhbCBlbnRyYXIgZW4gdmlld3BvcnQKICAgICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7IGlmKGVuLmlzSW50ZXJzZWN0aW5nKXsgZW4udGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2lzLWluJyk7IH0gfSk7CiAgICAgIH0sIHsgcm9vdDogdHJhY2ssIHRocmVzaG9sZDogMC4xIH0pOwogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgaW8ub2JzZXJ2ZShjKTsgfSk7CgogICAgICAvLyBDbGljayBwZXJzaXN0ZW50ZSAoc2luIHRlYXNlciBwb3IgaG92ZXIpCiAgICAgIGZ1bmN0aW9uIG1ha2VFbWJlZFVybChpZCwgb3B0cyl7CiAgICAgICAgdmFyIHFzID0gWwogICAgICAgICAgJ2F1dG9wbGF5PScgKyAob3B0cyAmJiBvcHRzLmF1dG9wbGF5PyAnMSc6JzAnKSwKICAgICAgICAgICdwbGF5c2lubGluZT0xJywnZnM9MScsJ2l2X2xvYWRfcG9saWN5PTMnLCdzaG93aW5mbz0xJywncmVsPTAnLCdjY19sb2FkX3BvbGljeT0wJywnc3RhcnQ9MCcsCiAgICAgICAgICAnbXV0ZT0nICsgKG9wdHMgJiYgb3B0cy5tdXRlPyAnMSc6JzAnKSwKICAgICAgICAgIChvcHRzICYmIG9wdHMuY29udHJvbHM9PT0wPyAnY29udHJvbHM9MCc6J2NvbnRyb2xzPTEnKSwKICAgICAgICAgICdtb2Rlc3RicmFuZGluZz0xJywnZW5hYmxlanNhcGk9MScKICAgICAgICBdLmpvaW4oJyYnKTsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/JyArIHFzOwogICAgICB9CgogICAgICAvLyBDYXJnYXIgQVBJIGRlIFlvdVR1YmUgYmFqbyBkZW1hbmRhCiAgICAgIHZhciB5dEFwaVByb21pc2UgPSBudWxsOwogICAgICBmdW5jdGlvbiBlbnN1cmVZVEFwaSgpewogICAgICAgIGlmICh3aW5kb3cuWVQgJiYgd2luZG93LllULlBsYXllcikgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlmICh5dEFwaVByb21pc2UpIHJldHVybiB5dEFwaVByb21pc2U7CiAgICAgICAgeXRBcGlQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSl7CiAgICAgICAgICB2YXIgcHJldkNiID0gd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5OwogICAgICAgICAgd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5ID0gZnVuY3Rpb24oKXsgaWYgKHR5cGVvZiBwcmV2Q2I9PT0nZnVuY3Rpb24nKSB7IHRyeXsgcHJldkNiKCk7IH1jYXRjaChfKXt9IH0gcmVzb2x2ZSgpOyB9OwogICAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknOwogICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4geXRBcGlQcm9taXNlOwogICAgICB9CgogICAgICAvLyBJbnN0YW5jaWFyIHBsYXllciBuYXRpdm8gZW4gdGFyamV0YXMgdmlzaWJsZXMgcGFyYSBxdWUgZWwgaWNvbm8gZGUgcGxheSBhcGFyZXpjYSBkZXNkZSBlbCBpbmljaW8KICAgICAgZnVuY3Rpb24gaW5pdFBsYXllckZvckNhcmQoY2FyZCl7CiAgICAgICAgaWYoIWNhcmQgfHwgY2FyZC5feXRQbGF5ZXIgfHwgY2FyZC5feXRJbml0KSByZXR1cm47CiAgICAgICAgdmFyIGlkID0gY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEteXQtaWQnKTsKICAgICAgICBpZighaWQpIHJldHVybjsKICAgICAgICBjYXJkLl95dEluaXQgPSB0cnVlOwogICAgICAgIHZhciBwb3N0ZXIgPSBjYXJkLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBjYXJkLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGNhcmQuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQogICAgICAgIC8vIE9jdWx0YW1vcyBlbCBw83N0ZXIgY3VhbnRvIGFudGVzIHBhcmEgZGVqYXIgdmVyIGVsIG92ZXJsYXkgbmF0aXZvCiAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gPSBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiB8fCAnb3BhY2l0eSAuMTVzIGVhc2UnOyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgIGVuc3VyZVlUQXBpKCkudGhlbihmdW5jdGlvbigpewogICAgICAgICAgdmFyIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoaG9sZGVyLCB7CiAgICAgICAgICAgIHZpZGVvSWQ6IGlkLAogICAgICAgICAgICBwbGF5ZXJWYXJzOiB7IGF1dG9wbGF5OjAsIGNvbnRyb2xzOjEsIHJlbDowLCBwbGF5c2lubGluZToxLCBpdl9sb2FkX3BvbGljeTozLCBtb2Rlc3RicmFuZGluZzoxLCBmczoxLCBvcmlnaW46IChsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4pID8gbG9jYXRpb24ub3JpZ2luIDogdW5kZWZpbmVkIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAgICAgICAgICAgIG9uUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgICAgICAgICAgLy8gRm9yemFyIHBlcm1pc29zIGRlIHBhbnRhbGxhIGNvbXBsZXRhIGVuIGVsIGlmcmFtZSBnZW5lcmFkbwogICAgICAgICAgICAgICAgdHJ5ewogICAgICAgICAgICAgICAgICB2YXIgaWZyID0gcGxheWVyLmdldElmcmFtZSAmJiBwbGF5ZXIuZ2V0SWZyYW1lKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZnIpewogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsJycpOwogICAgICAgICAgICAgICAgICAgIHZhciBjdXIgPSBpZnIuZ2V0QXR0cmlidXRlKCdhbGxvdycpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgKGN1ciA/IGN1ciArICc7ICcgOiAnJykgKyAnZnVsbHNjcmVlbicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgICAgIGNhcmQuX3l0UGxheWVyID0gcGxheWVyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsgY2FyZC5yZW1vdmVDaGlsZChob2xkZXIpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgIC8vIFNpIGZhbGxhIGxhIEFQSSwgZGVqYW1vcyBlbCBw83N0ZXIgaGFzdGEgaW50ZXJhY2Np824KICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nJzsgfQogICAgICAgICAgY2FyZC5feXRJbml0ID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIC8vIEluaWNpYWxpemFyIGF1dG9t4XRpY2FtZW50ZSBsb3MgcGxheWVycyBkZSBsYXMgdGFyamV0YXMgdmlzaWJsZXMgYWwgY2FyZ2FyCiAgICAgIHZhciBpbml0SU8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7CiAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVuKXsgaWYoZW4uaXNJbnRlcnNlY3RpbmcpeyBpbml0UGxheWVyRm9yQ2FyZChlbi50YXJnZXQpOyB9IH0pOwogICAgICB9LCB7IHJvb3Q6IG51bGwsIHRocmVzaG9sZDogMC4yNSB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IGluaXRJTy5vYnNlcnZlKGMpOyB9KTsKCiAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIgYSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2EuY2FyZFtkYXRhLXl0LWlkXScpOwogICAgICAgIGlmKCFhIHx8ICFyb290LmNvbnRhaW5zKGEpKSByZXR1cm47CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBwb3N0ZXIgPSBhLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIC8vIHNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvcwoKICAgICAgICAvLyBUb2dnbGUgc2kgeWEgaGF5IHBsYXllcgogICAgICAgIGlmIChhLl95dFBsYXllcil7CiAgICAgICAgICB2YXIgcCA9IGEuX3l0UGxheWVyOwogICAgICAgICAgaWYgKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1wYXVzZWQnKSl7CiAgICAgICAgICAgIHRyeXsgcC51bk11dGUoKTsgcC5zZXRWb2x1bWUoMTAwKTsgcC5wbGF5VmlkZW8oKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAgIGEuY2xhc3NMaXN0LnJlbW92ZSgnaXMtcGF1c2VkJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0cnl7IHAucGF1c2VWaWRlbygpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCdpcy1wYXVzZWQnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgc3RvcFRlYXNlcihhKTsKICAgICAgICB2YXIgaWQgPSBhLmdldEF0dHJpYnV0ZSgnZGF0YS15dC1pZCcpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBhLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGEuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQoKICAgICAgICBlbnN1cmVZVEFwaSgpLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKGhvbGRlciwgewogICAgICAgICAgICB2aWRlb0lkOiBpZCwKICAgICAgICAgICAgcGxheWVyVmFyczogeyBhdXRvcGxheToxLCBjb250cm9sczoxLCByZWw6MCwgcGxheXNpbmxpbmU6MSwgaXZfbG9hZF9wb2xpY3k6MywgbW9kZXN0YnJhbmRpbmc6MSwgZnM6MSwgb3JpZ2luOiAobG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luKSA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZCB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICBvblJlYWR5OiBmdW5jdGlvbihldil7CiAgICAgICAgICAgICAgICB0cnl7IGV2LnRhcmdldC51bk11dGUoKTsgZXYudGFyZ2V0LnNldFZvbHVtZSgxMDApOyBldi50YXJnZXQucGxheVZpZGVvKCk7IH1jYXRjaChfKXt9CiAgICAgICAgICAgICAgICAvLyBGb3J6YXIgZnVsbHNjcmVlbiBkaXNwb25pYmxlIGVuIGlmcmFtZSBJRnJhbWUgQVBJCiAgICAgICAgICAgICAgICB0cnl7CiAgICAgICAgICAgICAgICAgIHZhciBpZnIgPSBwbGF5ZXIuZ2V0SWZyYW1lICYmIHBsYXllci5nZXRJZnJhbWUoKTsKICAgICAgICAgICAgICAgICAgaWYgKGlmcil7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywnJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ciA9IGlmci5nZXRBdHRyaWJ1dGUoJ2FsbG93JykgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAoY3VyID8gY3VyICsgJzsgJyA6ICcnKSArICdmdWxsc2NyZWVuJyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH1jYXRjaChfKXsgfQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiA9IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uIHx8ICdvcGFjaXR5IC4xNXMgZWFzZSc7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgfQogICAgICAgICAgICAgICAgICBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBsYXlpbmcnKTsKICAgICAgICAgICAgICAgICAgYS5feXRQbGF5ZXIgPSBwbGF5ZXI7CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIC8vIEZhbGxiYWNrOiBpZnJhbWUgc2ltcGxlCiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgICBpZnJhbWUuc3JjID0gbWFrZUVtYmVkVXJsKGlkLCB7YXV0b3BsYXk6dHJ1ZSwgbXV0ZTpmYWxzZX0pOwogICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgcGljdHVyZS1pbi1waWN0dXJlJyk7CiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCAnJyk7CiAgICAgICAgICBpZnJhbWUuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaWZyYW1lLnN0eWxlLmluc2V0PScwJzsgaWZyYW1lLnN0eWxlLndpZHRoPScxMDAlJzsgaWZyYW1lLnN0eWxlLmhlaWdodD0nMTAwJSc7IGlmcmFtZS5zdHlsZS5ib3JkZXI9JzAnOyBpZnJhbWUuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZnJhbWUuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgICBob2xkZXIucmVwbGFjZVdpdGgoaWZyYW1lKTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgYS5jbGFzc0xpc3QuYWRkKCdpcy1wbGF5aW5nJyk7IH0sIDE1MCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgCiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
      CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBsaW1pdGFkbyBhIDk2MHB4IGVuIGVzY3JpdG9yaW8gKi8KICAgIC5jdi05Zm1lYyAuc2VjdGlvbnttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlfQoKICAgIC5jdi05Zm1lYyAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjo4cHggMCA1MHB4fQogICAgLmN2LTlmbWVjIC5mbmQtbGluZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMjVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9CiAgICAuY3YtOWZtZWMgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzMzMztmb250LXNpemU6NDJweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CgogICAgLmN2LTlmbWVjIC5jYXJvdXNlbHstLWdhcDoxNnB4Oy0tcGVlazoxMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tZ2FwKTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206NnB4fQogICAgLmN2LTlmbWVjIC50cmFja3tkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLWJlaGF2aW9yOnNtb290aDtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtwYWRkaW5nLXJpZ2h0OjB9CiAgICAuY3YtOWZtZWMgLnRyYWNrOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9CiAgICAuY3YtOWZtZWMgLmNhcmR7cG9zaXRpb246cmVsYXRpdmU7ZmxleDowIDAgYXV0bztzY3JvbGwtc25hcC1hbGlnbjpzdGFydDt3aWR0aDpjYWxjKCgxMDAlIC0gMip2YXIoLS1nYXApIC0gdmFyKC0tcGVlaykpLzMpO2FzcGVjdC1yYXRpbzo5LzE2O2JvcmRlci1yYWRpdXM6MTBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMDAwO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpO3RyYW5zaXRpb246b3BhY2l0eSAuNHMgZWFzZSwgdHJhbnNmb3JtIC40cyBlYXNlfQogICAgLmN2LTlmbWVjIC5jYXJkLmlzLWlue29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX0KCiAgICAuY3YtOWZtZWMgLnRodW1ie3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXMgZWFzZSwgb3BhY2l0eSAuMjVzIGVhc2U7dHJhbnNmb3JtOnNjYWxlKDEuMDEpfQogICAgLmN2LTlmbWVjIC5jYXJkOmhvdmVyIC50aHVtYiwuY3YtOWZtZWMgLmNhcmQ6Zm9jdXMtdmlzaWJsZSAudGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDEuMDYpfQogICAgLyogU2luIG92ZXJsYXlzIHBlcnNvbmFsaXphZG9zOiBzZSB1c2FuIGNvbnRyb2xlcyBuYXRpdm9zIGRlbCBwbGF5ZXIgKi8KCiAgICAuY3YtOWZtZWMgLmFye3Bvc2l0aW9uOnJlbGF0aXZlfQogICAgLmN2LTlmbWVjIC5hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpO2JveC1zaGFkb3c6MCA2cHggMTZweCByZ2IoMCAwIDAgLyAyMCUpO2JvcmRlcjoxcHggc29saWQgI2ZmZjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO3RyYW5zaXRpb246LjNzfQogICAgLmN2LTlmbWVjIC5hcnJvdzpob3ZlcntiYWNrZ3JvdW5kOnJnYigwIDAgMCAvIDIwJSk7Ym9yZGVyOjFweCBzb2xpZCAjZmZmfQogICAgLmN2LTlmbWVjIC5hcnJvdzpmb2N1c3tiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSl9CiAgICAuY3YtOWZtZWMgLmFycm93IHN2Z3t3aWR0aDoyMHB4O2hlaWdodDoyMHB4fQogICAgLmN2LTlmbWVjIC5hcnJvdy5sZWZ0e2xlZnQ6MTBweH0KICAgIC5jdi05Zm1lYyAuYXJyb3cucmlnaHR7cmlnaHQ6MTBweH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAgIC8qIEVuIG3zdmlsLCBlbCBjb250ZW5lZG9yIG9jdXBhIHRvZG8gZWwgYW5jaG8gKi8KICAgICAgLmN2LTlmbWVjIC5zZWN0aW9ue21heC13aWR0aDoxMDAlfQogICAgICAuY3YtOWZtZWMgLnNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOjI3cHg7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKX0KICAgICAgLmN2LTlmbWVjIC5jYXJvdXNlbHstLXBlZWs6MTIlfQogICAgICAvKiAyIHRhcmpldGFzIGNvbXBsZXRhcyArIHVuIHBlZWsgZGUgbGEgM6ogKi8KICAgICAgLmN2LTlmbWVjIC5jYXJke3dpZHRoOmNhbGMoKDEwMCUgLSA0KnZhcigtLWdhcCkgLSB2YXIoLS1wZWVrKSkvMSl9CiAgICAgIC5jdi05Zm1lYyAuYXJyb3d7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9CiAgICAgIC5jdi05Zm1lYyAudHJhY2t7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3BhZGRpbmctcmlnaHQ6MH0KICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iY3YtOWZtZWMiPgogICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgYXJpYS1sYWJlbD0iQ2FycnVzZWwgZGUgdu1kZW9zIChTaG9ydHMpIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiZy1zZWN0aW9uLXRpdGxlIj4KICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Vu1kZW9zIGRlIGxhIGFjdHVhbGlkYWQ8L2gyPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZuZC1saW5lYSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9Ikxpc3RhZG8gZGUgdu1kZW9zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IGxlZnQiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQW50ZXJpb3IiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IHJpZ2h0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTkgMThsNi02LTYtNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIiByb2xlPSJsaXN0Ij4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9WODZIOGNoR1NGWSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IlY4Nkg4Y2hHU0ZZIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvVjg2SDhjaEdTRlkvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDEiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvQVA4SEJ6Qzd6RjgiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJBUDhIQnpDN3pGOCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL0FQOEhCekM3ekY4L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAyIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzLzliNDFpT2xMazR3IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iOWI0MWlPbExrNHciIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS85YjQxaU9sTGs0dy9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9KaXdya0lEQXozdyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9Ikppd3JrSURBejN3IiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvSml3cmtJREF6M3cvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDQiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvWEhvb2NEZWVheW8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJYSG9vY0RlZWF5byIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL1hIb29jRGVlYXlvL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA1IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzLy1KVXlJMDJ1UnRnIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iLUpVeUkwMnVSdGciIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS8tSlV5STAydVJ0Zy9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9tX1JjNGZBLW5kYyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9Im1fUmM0ZkEtbmRjIiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvbV9SYzRmQS1uZGMvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDciIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvcUZVOWtVZnVuWlkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJxRlU5a1VmdW5aWSIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL3FGVTlrVWZ1blpZL2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA4IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgogICAgPC9kaXY+CiAgICA8c2NyaXB0PgogICAgKGZ1bmN0aW9uKCl7CiAgICAgIHZhciByb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmN2LTlmbWVjJyk7CiAgICAgIGlmICghcm9vdCkgcmV0dXJuOwogICAgICB2YXIgdHJhY2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFjaycpOwogICAgICBpZiAoIXRyYWNrKSByZXR1cm47CgogICAgICB2YXIgYXJyb3dzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXJyb3cnKTsKICAgICAgdmFyIEdBUCA9IDE2OwoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZFdpZHRoKCl7CiAgICAgICAgdmFyIGZpcnN0ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuY2FyZCcpOwogICAgICAgIGlmICghZmlyc3QpIHJldHVybiAwOwogICAgICAgIHJldHVybiBmaXJzdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZHNQZXJQYWdlKCl7CiAgICAgICAgLy8gRGVzazogYXZhbnphIGRlIHVuYSBlbiB1bmEgdGFyamV0YQogICAgICAgIHJldHVybiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSA/IDIgOiAxOwogICAgICB9CgogICAgICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgdmFyIGRpciA9IHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykgPyAtMSA6IDE7CiAgICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICAgIHZhciBzdGVwID0gKGNhcmRXICsgR0FQKSAqIGdldENhcmRzUGVyUGFnZSgpICogZGlyOwogICAgICAgICAgdHJhY2suc2Nyb2xsQnkoeyBsZWZ0OiBzdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgLy8gRmFkZS1pbiBhbCBlbnRyYXIgZW4gdmlld3BvcnQKICAgICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7IGlmKGVuLmlzSW50ZXJzZWN0aW5nKXsgZW4udGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2lzLWluJyk7IH0gfSk7CiAgICAgIH0sIHsgcm9vdDogdHJhY2ssIHRocmVzaG9sZDogMC4xIH0pOwogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgaW8ub2JzZXJ2ZShjKTsgfSk7CgogICAgICAvLyBDbGljayBwZXJzaXN0ZW50ZSAoc2luIHRlYXNlciBwb3IgaG92ZXIpCiAgICAgIGZ1bmN0aW9uIG1ha2VFbWJlZFVybChpZCwgb3B0cyl7CiAgICAgICAgdmFyIHFzID0gWwogICAgICAgICAgJ2F1dG9wbGF5PScgKyAob3B0cyAmJiBvcHRzLmF1dG9wbGF5PyAnMSc6JzAnKSwKICAgICAgICAgICdwbGF5c2lubGluZT0xJywnZnM9MScsJ2l2X2xvYWRfcG9saWN5PTMnLCdzaG93aW5mbz0xJywncmVsPTAnLCdjY19sb2FkX3BvbGljeT0wJywnc3RhcnQ9MCcsCiAgICAgICAgICAnbXV0ZT0nICsgKG9wdHMgJiYgb3B0cy5tdXRlPyAnMSc6JzAnKSwKICAgICAgICAgIChvcHRzICYmIG9wdHMuY29udHJvbHM9PT0wPyAnY29udHJvbHM9MCc6J2NvbnRyb2xzPTEnKSwKICAgICAgICAgICdtb2Rlc3RicmFuZGluZz0xJywnZW5hYmxlanNhcGk9MScKICAgICAgICBdLmpvaW4oJyYnKTsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/JyArIHFzOwogICAgICB9CgogICAgICAvLyBDYXJnYXIgQVBJIGRlIFlvdVR1YmUgYmFqbyBkZW1hbmRhCiAgICAgIHZhciB5dEFwaVByb21pc2UgPSBudWxsOwogICAgICBmdW5jdGlvbiBlbnN1cmVZVEFwaSgpewogICAgICAgIGlmICh3aW5kb3cuWVQgJiYgd2luZG93LllULlBsYXllcikgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlmICh5dEFwaVByb21pc2UpIHJldHVybiB5dEFwaVByb21pc2U7CiAgICAgICAgeXRBcGlQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSl7CiAgICAgICAgICB2YXIgcHJldkNiID0gd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5OwogICAgICAgICAgd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5ID0gZnVuY3Rpb24oKXsgaWYgKHR5cGVvZiBwcmV2Q2I9PT0nZnVuY3Rpb24nKSB7IHRyeXsgcHJldkNiKCk7IH1jYXRjaChfKXt9IH0gcmVzb2x2ZSgpOyB9OwogICAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknOwogICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4geXRBcGlQcm9taXNlOwogICAgICB9CgogICAgICAvLyBJbnN0YW5jaWFyIHBsYXllciBuYXRpdm8gZW4gdGFyamV0YXMgdmlzaWJsZXMgcGFyYSBxdWUgZWwgaWNvbm8gZGUgcGxheSBhcGFyZXpjYSBkZXNkZSBlbCBpbmljaW8KICAgICAgZnVuY3Rpb24gaW5pdFBsYXllckZvckNhcmQoY2FyZCl7CiAgICAgICAgaWYoIWNhcmQgfHwgY2FyZC5feXRQbGF5ZXIgfHwgY2FyZC5feXRJbml0KSByZXR1cm47CiAgICAgICAgdmFyIGlkID0gY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEteXQtaWQnKTsKICAgICAgICBpZighaWQpIHJldHVybjsKICAgICAgICBjYXJkLl95dEluaXQgPSB0cnVlOwogICAgICAgIHZhciBwb3N0ZXIgPSBjYXJkLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBjYXJkLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGNhcmQuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQogICAgICAgIC8vIE9jdWx0YW1vcyBlbCBw83N0ZXIgY3VhbnRvIGFudGVzIHBhcmEgZGVqYXIgdmVyIGVsIG92ZXJsYXkgbmF0aXZvCiAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gPSBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiB8fCAnb3BhY2l0eSAuMTVzIGVhc2UnOyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgIGVuc3VyZVlUQXBpKCkudGhlbihmdW5jdGlvbigpewogICAgICAgICAgdmFyIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoaG9sZGVyLCB7CiAgICAgICAgICAgIHZpZGVvSWQ6IGlkLAogICAgICAgICAgICBwbGF5ZXJWYXJzOiB7IGF1dG9wbGF5OjAsIGNvbnRyb2xzOjEsIHJlbDowLCBwbGF5c2lubGluZToxLCBpdl9sb2FkX3BvbGljeTozLCBtb2Rlc3RicmFuZGluZzoxLCBmczoxLCBvcmlnaW46IChsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4pID8gbG9jYXRpb24ub3JpZ2luIDogdW5kZWZpbmVkIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAgICAgICAgICAgIG9uUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgICAgICAgICAgLy8gRm9yemFyIHBlcm1pc29zIGRlIHBhbnRhbGxhIGNvbXBsZXRhIGVuIGVsIGlmcmFtZSBnZW5lcmFkbwogICAgICAgICAgICAgICAgdHJ5ewogICAgICAgICAgICAgICAgICB2YXIgaWZyID0gcGxheWVyLmdldElmcmFtZSAmJiBwbGF5ZXIuZ2V0SWZyYW1lKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZnIpewogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsJycpOwogICAgICAgICAgICAgICAgICAgIHZhciBjdXIgPSBpZnIuZ2V0QXR0cmlidXRlKCdhbGxvdycpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgKGN1ciA/IGN1ciArICc7ICcgOiAnJykgKyAnZnVsbHNjcmVlbicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgICAgIGNhcmQuX3l0UGxheWVyID0gcGxheWVyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsgY2FyZC5yZW1vdmVDaGlsZChob2xkZXIpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgIC8vIFNpIGZhbGxhIGxhIEFQSSwgZGVqYW1vcyBlbCBw83N0ZXIgaGFzdGEgaW50ZXJhY2Np824KICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nJzsgfQogICAgICAgICAgY2FyZC5feXRJbml0ID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIC8vIEluaWNpYWxpemFyIGF1dG9t4XRpY2FtZW50ZSBsb3MgcGxheWVycyBkZSBsYXMgdGFyamV0YXMgdmlzaWJsZXMgYWwgY2FyZ2FyCiAgICAgIHZhciBpbml0SU8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7CiAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVuKXsgaWYoZW4uaXNJbnRlcnNlY3RpbmcpeyBpbml0UGxheWVyRm9yQ2FyZChlbi50YXJnZXQpOyB9IH0pOwogICAgICB9LCB7IHJvb3Q6IG51bGwsIHRocmVzaG9sZDogMC4yNSB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IGluaXRJTy5vYnNlcnZlKGMpOyB9KTsKCiAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIgYSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2EuY2FyZFtkYXRhLXl0LWlkXScpOwogICAgICAgIGlmKCFhIHx8ICFyb290LmNvbnRhaW5zKGEpKSByZXR1cm47CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBwb3N0ZXIgPSBhLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIC8vIHNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvcwoKICAgICAgICAvLyBUb2dnbGUgc2kgeWEgaGF5IHBsYXllcgogICAgICAgIGlmIChhLl95dFBsYXllcil7CiAgICAgICAgICB2YXIgcCA9IGEuX3l0UGxheWVyOwogICAgICAgICAgaWYgKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1wYXVzZWQnKSl7CiAgICAgICAgICAgIHRyeXsgcC51bk11dGUoKTsgcC5zZXRWb2x1bWUoMTAwKTsgcC5wbGF5VmlkZW8oKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAgIGEuY2xhc3NMaXN0LnJlbW92ZSgnaXMtcGF1c2VkJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0cnl7IHAucGF1c2VWaWRlbygpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCdpcy1wYXVzZWQnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgc3RvcFRlYXNlcihhKTsKICAgICAgICB2YXIgaWQgPSBhLmdldEF0dHJpYnV0ZSgnZGF0YS15dC1pZCcpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBhLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGEuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQoKICAgICAgICBlbnN1cmVZVEFwaSgpLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKGhvbGRlciwgewogICAgICAgICAgICB2aWRlb0lkOiBpZCwKICAgICAgICAgICAgcGxheWVyVmFyczogeyBhdXRvcGxheToxLCBjb250cm9sczoxLCByZWw6MCwgcGxheXNpbmxpbmU6MSwgaXZfbG9hZF9wb2xpY3k6MywgbW9kZXN0YnJhbmRpbmc6MSwgZnM6MSwgb3JpZ2luOiAobG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luKSA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZCB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICBvblJlYWR5OiBmdW5jdGlvbihldil7CiAgICAgICAgICAgICAgICB0cnl7IGV2LnRhcmdldC51bk11dGUoKTsgZXYudGFyZ2V0LnNldFZvbHVtZSgxMDApOyBldi50YXJnZXQucGxheVZpZGVvKCk7IH1jYXRjaChfKXt9CiAgICAgICAgICAgICAgICAvLyBGb3J6YXIgZnVsbHNjcmVlbiBkaXNwb25pYmxlIGVuIGlmcmFtZSBJRnJhbWUgQVBJCiAgICAgICAgICAgICAgICB0cnl7CiAgICAgICAgICAgICAgICAgIHZhciBpZnIgPSBwbGF5ZXIuZ2V0SWZyYW1lICYmIHBsYXllci5nZXRJZnJhbWUoKTsKICAgICAgICAgICAgICAgICAgaWYgKGlmcil7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywnJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ciA9IGlmci5nZXRBdHRyaWJ1dGUoJ2FsbG93JykgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAoY3VyID8gY3VyICsgJzsgJyA6ICcnKSArICdmdWxsc2NyZWVuJyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH1jYXRjaChfKXsgfQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiA9IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uIHx8ICdvcGFjaXR5IC4xNXMgZWFzZSc7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgfQogICAgICAgICAgICAgICAgICBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBsYXlpbmcnKTsKICAgICAgICAgICAgICAgICAgYS5feXRQbGF5ZXIgPSBwbGF5ZXI7CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIC8vIEZhbGxiYWNrOiBpZnJhbWUgc2ltcGxlCiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgICBpZnJhbWUuc3JjID0gbWFrZUVtYmVkVXJsKGlkLCB7YXV0b3BsYXk6dHJ1ZSwgbXV0ZTpmYWxzZX0pOwogICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgcGljdHVyZS1pbi1waWN0dXJlJyk7CiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCAnJyk7CiAgICAgICAgICBpZnJhbWUuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaWZyYW1lLnN0eWxlLmluc2V0PScwJzsgaWZyYW1lLnN0eWxlLndpZHRoPScxMDAlJzsgaWZyYW1lLnN0eWxlLmhlaWdodD0nMTAwJSc7IGlmcmFtZS5zdHlsZS5ib3JkZXI9JzAnOyBpZnJhbWUuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZnJhbWUuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgICBob2xkZXIucmVwbGFjZVdpdGgoaWZyYW1lKTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgYS5jbGFzc0xpc3QuYWRkKCdpcy1wbGF5aW5nJyk7IH0sIDE1MCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgCiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
    • Josep Escandell: Nuestras diez peticiones para la caza no son ideológicas, las puede firmar cualquier partido antes del 29-N
        • OKGREEN
        • OKGREEN
      • okentrevista

      "Nuestras diez peticiones para la caza no son ideológicas, las puede firmar cualquier partido antes del 29-N"

      La caza también se juega su futuro el 29-N. A tres semanas de las elecciones generales, el presidente de la Real Federación Española de Caza (RFEC), Josep Escandell, ha pasado por el plató de OKDIARIO para defender en OKGREEN el decálogo que la federación pide a los partidos que firmen. Bajo el lema La Caza También Vota, el documento resume un paquete más amplio de propuestas en seis ejes estratégicos. Según Escandell, es un texto que «puede firmar absolutamente cualquier partido político, porque no va de ideologías, va de cuestiones prácticas».
      • Antonio Quilis
      • 2026-11-08 05:45
    • Ignacio Hoces: El máximo responsable de la tragedia de Urda es Pedro Sánchez, queremos su dimisión y que se ponga a disposición judicial
        • España
        • España

      "El máximo responsable de la tragedia de Urda es Pedro Sánchez, queremos su dimisión y que se ponga a disposición judicial"

      • María Zabay
      • 2026-11-06 08:34
    • Gadi Eisenkot asumirá el reto de formar gobierno en Israel frente al bloque de Netanyahu
        • Internacional
        • Internacional

      Gadi Eisenkot asumirá el reto de formar gobierno en Israel frente al bloque de Netanyahu

      • Rafael Alejandro Escalona
      • 2026-11-07 21:37
    • El melifluo rasputín vuelve con el cazo puesto
    • ¿Queda algo más que decir de Sánchez?
    • Lo de Puente
    • PHN0eWxlPgogICNjaW50aWxsby1lY2kgewogICAgLyogQSBjb250aW51YWNp824gc2UgZXNwZWNpZmljYSBlbCBjb2xvciBkZWwgZm9uZG8gKi8KICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7CiAgICAvKiBBIGNvbnRpbnVhY2nzbiBzZSBlc3BlY2lmaWNhIGVsIGNvbG9yIGRlbCB0ZXh0byAqLwogICAgY29sb3I6ICMwMDA7CiAgICAvKiBSZWxsZW5vIHBhcmEgZGFyIGVzcGFjaW8gYWwgY29udGVuaWRvICovCiAgICBwYWRkaW5nOiA4cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gQ29uZGVuc2VkJzsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KICAuZWNpLXRpdHVsbyB7CiAgICAvKiBFbCB0YW1h8W8gZGVsIHRleHRvIGRlbCBjb250aWxsbyAqLwogICAgICBmb250LXNpemU6IDI0cHg7CiAgfQogIC5lY2ktbG9nbyB7fQogIC5lY2ktbG9nbyBwIHsKICAgIC8qIEVsIHRhbWHxbyBkZWwgdGV4dG8ganVudG8gYWwgbG9nbyAqLwogICAgZm9udC1zaXplOiAxMHB4OwogIH0KICAuZWNpLWxvZ28gaW1nIHsKICAgIC8qIEVsIHRhbWHxbyBkZWwgbG9nbyAqLwogICAgd2lkdGg6IDEyMHB4OwogICAgaGVpZ2h0OiAzMHB4OwogICAgb2JqZWN0LWZpdDogY292ZXI7CiAgfQoKPC9zdHlsZT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWxjb3J0ZWluZ2xlcy5lcy8iIHRhcmdldD0iX2JsYW5rIiBpZD0iY2ludGlsbG8tZWNpIj4KICA8ZGl2IGNsYXNzPSJlY2ktdGl0dWxvIj4KICAgIDwhLS0gRWRpdGFyIGVzdGUgdGV4dG8gSU5JQ0lPIC0tPgogICAgSW5zcGlyYWNp824geSB0ZW5kZW5jaWFzCiAgICA8IS0tIEVkaXRhciBlc3RlIHRleHRvIEZJTiAtLT4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJlY2ktbG9nbyI+CiAgICA8cD4KICAgICAgPCEtLSBFZGl0YXIgZXN0ZSB0ZXh0byBJTklDSU8gLS0+CiAgICAgIEVuIGNvbGFib3JhY2nzbiBjb24KICAgICAgPCEtLSBFZGl0YXIgZXN0ZSB0ZXh0byBGSU4gLS0+CiAgICA8L3A+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2ltZy8yMDI2LzA4LzI3L2xvZ28tZWwtY29ydGUtaW5nbGVzLW5lZ3JvLmpwZyIgYWx0PSJFbCBDb3J0ZSBJbmds6XMiPgogIDwvZGl2Pgo8L2E+Cg==
      PHN0eWxlPgogICNjaW50aWxsby1lY2kgewogICAgLyogQSBjb250aW51YWNp824gc2UgZXNwZWNpZmljYSBlbCBjb2xvciBkZWwgZm9uZG8gKi8KICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7CiAgICAvKiBBIGNvbnRpbnVhY2nzbiBzZSBlc3BlY2lmaWNhIGVsIGNvbG9yIGRlbCB0ZXh0byAqLwogICAgY29sb3I6ICMwMDA7CiAgICAvKiBSZWxsZW5vIHBhcmEgZGFyIGVzcGFjaW8gYWwgY29udGVuaWRvICovCiAgICBwYWRkaW5nOiA4cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gQ29uZGVuc2VkJzsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KICAuZWNpLXRpdHVsbyB7CiAgICAvKiBFbCB0YW1h8W8gZGVsIHRleHRvIGRlbCBjb250aWxsbyAqLwogICAgICBmb250LXNpemU6IDI0cHg7CiAgfQogIC5lY2ktbG9nbyB7fQogIC5lY2ktbG9nbyBwIHsKICAgIC8qIEVsIHRhbWHxbyBkZWwgdGV4dG8ganVudG8gYWwgbG9nbyAqLwogICAgZm9udC1zaXplOiAxMHB4OwogIH0KICAuZWNpLWxvZ28gaW1nIHsKICAgIC8qIEVsIHRhbWHxbyBkZWwgbG9nbyAqLwogICAgd2lkdGg6IDEyMHB4OwogICAgaGVpZ2h0OiAzMHB4OwogICAgb2JqZWN0LWZpdDogY292ZXI7CiAgfQoKPC9zdHlsZT4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWxjb3J0ZWluZ2xlcy5lcy8iIHRhcmdldD0iX2JsYW5rIiBpZD0iY2ludGlsbG8tZWNpIj4KICA8ZGl2IGNsYXNzPSJlY2ktdGl0dWxvIj4KICAgIDwhLS0gRWRpdGFyIGVzdGUgdGV4dG8gSU5JQ0lPIC0tPgogICAgSW5zcGlyYWNp824geSB0ZW5kZW5jaWFzCiAgICA8IS0tIEVkaXRhciBlc3RlIHRleHRvIEZJTiAtLT4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJlY2ktbG9nbyI+CiAgICA8cD4KICAgICAgPCEtLSBFZGl0YXIgZXN0ZSB0ZXh0byBJTklDSU8gLS0+CiAgICAgIEVuIGNvbGFib3JhY2nzbiBjb24KICAgICAgPCEtLSBFZGl0YXIgZXN0ZSB0ZXh0byBGSU4gLS0+CiAgICA8L3A+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2ltZy8yMDI2LzA4LzI3L2xvZ28tZWwtY29ydGUtaW5nbGVzLW5lZ3JvLmpwZyIgYWx0PSJFbCBDb3J0ZSBJbmds6XMiPgogIDwvZGl2Pgo8L2E+Cg==
    • Canarias fuerza a Sánchez a convocar de urgencia una Comisión Interministerial tras la llegada de 8.000 inmigrantes en 5 semanas
        • España
        • España

      Canarias fuerza a Sánchez a convocar "de urgencia" una Comisión Interministerial tras la llegada de 8.000 inmigrantes en 5 semanas

      El presidente de Canarias, Fernando Clavijo, ha forzado al Gobierno de Pedro Sánchez a convocar de urgencia una Comisión Interministerial de Inmigración por la "presión migratoria" que está sufriendo estos días el archipiélago. La Isla de El Hierro declaró este viernes la emergencia social ante la llegada de más de 8.000 inmigrantes ilegales en las últimas cinco semanas.
      • Rafael Molina
      • 2026-11-07 19:15
    • Un cliente de Mallorca nos ha estafado: despluma a una tienda con transferencias falsas y se fuga en una bici de alta gama
        • OkBaleares
        • OkBaleares

      "Un cliente de Mallorca nos ha estafado": despluma a una tienda con transferencias falsas y se fuga en una bici de alta gama

      • Julio Bastida
      • 2026-11-08 04:00
    • El 84% de las empresas aumentará su presupuesto de ciberseguridad ante la aceleración tecnológica y la incertidumbre geopolítica 
    • Prohens redobla la contratación de policías locales en Baleares mientras Sánchez tiene 1.000 plazas vacantes de Policía Nacional y Guardia Civil
        • OkBaleares
        • OkBaleares

      Prohens redobla la contratación de policías locales en Baleares mientras Sánchez tiene 1.000 plazas vacantes de Policía Nacional y Guardia Civil

      La presidenta del Govern, Marga Prohens, redobla y dispara la contratación de policías locales en Baleares, mientras Pedro Sánchez tiene 1.000 plazas vacantes de Policía Nacional y Guardia Civil, lo que agrava las consecuencias negativas que en materia de seguridad está teniendo la avalancha migratoria alentada por los constantes efectos llamada del Gobierno. La presidenta finalizará la legislatura con 659 nuevos agentes, superando en 130 los 529 que incorporó la ex presidenta Francina Armengol, que en 2023, a las puertas de las elecciones autonómicas afirmaba que el número de agentes incorporados era una cifra histórica.
      • Indalecio Ribelles
      • 2026-11-08 04:00
    • Brutal agresión en Palma: detenido un chino por reventarle la cabeza con una llave inglesa a un hombre
        • OkBaleares
        • OkBaleares

      Brutal agresión en Palma: detenido un chino por reventarle la cabeza con una llave inglesa a un hombre

      • Pedro Serra
      • 2026-11-08 09:56
    • Un hombre le mete un puñetazo a un taxista de Ibiza y le rompe dos dientes tras una discusión por su forma de conducir
        • OkBaleares
        • OkBaleares

      Un hombre le mete un puñetazo a un taxista de Ibiza y le rompe dos dientes tras una discusión por su forma de conducir

      • Julio Bastida
      • 2026-11-08 04:00
    • El mapa de la sequía: alerta en los pueblos del levante de Mallorca pese a un octubre con mucha más lluvias de lo habitual
        • OkBaleares
        • OkBaleares

      El mapa de la sequía: alerta en los pueblos del levante de Mallorca pese a un octubre con mucha más lluvias de lo habitual

      • Indalecio Ribelles
      • 2026-11-08 04:00
    • Obras públicas que se eternizan en Baleares: diez años para construir una residencia de ancianos
        • OkBaleares
        • OkBaleares

      Obras públicas que se eternizan en Baleares: diez años para construir una residencia de ancianos

      • Indalecio Ribelles
      • 2026-11-08 04:00
    • Ofertas flash Amazon del día, en directo: productos rebajados por tiempo limitado y ofertas del viernes 6 de noviembre
        • Sociedad
        • Sociedad
      • EN DIRECTO

      Ofertas flash Amazon del día: productos rebajados por tiempo limitado y ofertas

      • OKDIARIO
      • 2026-11-06 08:58
    • Propósito, legado e impacto social: cómo diseñar la estrategia para canalizar proyectos filantrópicos
    • si te lo perdiste...

    • Ya está confirmado por el Gobierno y es oficial: da comienzo en España el Servicio Militar para los jóvenes nacidos en el año 2008
        • Sociedad
        • Sociedad

      oficial: da comienzo en España el Servicio Militar para los jóvenes nacidos en el año 2008

      • Janire Manzanas
      • 2026-11-08 08:35
    • Los suelos laminados tienen los días contados: los expertos en interiorismo los están remplazando por una alternativa mucho más práctica, cómoda y elegante
        • Curiosidades
        • Curiosidades

      Los suelos laminados tienen los días contados ante esta alternativa mucho más práctica

      • Pedro Antolinos
      • 2026-11-08 08:00
    • Irina (26 años) vive aislada en las montañas de León construyendo su propia casa de madera: Desde los 11 años tenía claro que quería vivir así; lo que más valoro es la libertad
        • Curiosidades
        • Curiosidades

      Irina (26 años) vive aislada en las montañas de León construyendo su propia casa de madera: "lo que más valoro es la libertad"

      Matavenero, un pueblo de la provincia de León sin acceso por carretera, quedó abandonado en los años 60 y volvió a habitarse unos 20 años después. Irina vive allí desde hace 11 años, tras irse de casa a los 15. La joven construyó su propia casa de madera sobre una ruina de piedra y combina el huerto con trabajos de temporada fuera del pueblo. Todo lo que entra y sale de sus calles, desde la compra a la basura, viaja en un teleférico casero de poleas.
      • Sofía Narváez
      • 2026-11-08 11:00
    • Los fontaneros profesionales avisan: para desatascar el fregadero o el váter lo recomendable es usar una ventosa; la sosa cáustica puede dañar las tuberías de PVC
        • Curiosidades
        • Curiosidades

      Los fontaneros avisan: para desatascar el fregadero o el váter usa una ventosa

      • Sofía Crotti
      • 2026-11-08 10:30
    • Se acabó la jubilación a los 66 años en España y es oficial: se confirma que desde el 1 de enero de 2027 cambia para siempre la edad de jubilación
        • Economía
        • Economía

      Se acabó la jubilación a los 66 años en España: desde el 1 de enero cambia para siempre la edad

      • Pedro Antolinos
      • 2026-11-08 10:10
    • Mahoma nos dejó una reflexión sobre la riqueza: La verdadera riqueza de un hombre es el bien que hace en este mundo
        • Curiosidades
        • Curiosidades

      Mahoma y su reflexión: "La verdadera riqueza de un hombre es el bien que hace en este mundo"

      • Aitana Pascual
      • 2026-11-08 11:23
    • Portugal busca voluntarios para vivir gratis en una granja a cambio de cuidar 82 animales solo 24 horas a la semana: incluyen alimentos para que prepares tu propia comida
        • Curiosidades
        • Curiosidades

      Portugal busca voluntarios para vivir gratis en una granja cuidando 82 animales 

      • Alejo Lucarás
      • 2026-11-08 11:24
    • Los albañiles advierten a los propietarios: Si no se localiza con exactitud el punto de entrada del agua, cualquier impermeabilización tendrá opciones de fallar con el tiempo
        • Curiosidades
        • Curiosidades

      albañiles advierten: Si no localiza con exactitud el punto de entrada de agua, impermeabilizar...

      • Sofía Narváez
      • 2026-11-08 10:00
    • Ha entrado en vigor y ya es oficial: se confirma la indemnización de 1 mes para los trabajadores que se queden sin trabajo si su empresa cierra por jubilación
        • Economía
        • Economía

      es oficial: la indemnización de un mes para los trabajadores que se queden sin trabajo si su empresa...

      • Pedro Antolinos
      • 2026-11-08 07:30
    • Los OK y KO del domingo, 8 de noviembre de 2026
    • Diario Madridista

    • Un equipo llamado Real Madrid
    • El dato insólito que retrata al Valencia y Maffeo: 51 minutos sin faltas ante el Barcelona y 26 contra el Real Madrid
        • Real Madrid
        • Real Madrid

      El dato insólito que retrata al Valencia y Maffeo: 51 minutos sin faltas ante el Barcelona y 26 contra el Real Madrid

      Vinicius se quedó en casa, pero Mestalla fue el mismo polvorín. Esa fue la lectura de lo que se vivió este sábado en otra victoria del Real Madrid ante el Valencia pese a la hostilidad que se respiró durante el partido. Los de Javier Aguirre mostraron una agresividad que cabreó al equipo de José Mourinho, que se marchó con varias heridas de guerra de un duelo que los locales vivieron como si hubiese sido una final. Aunque el fútbol es un deporte donde el contacto es normal, lo que sí llamó la atención fue la gran diferencia de carácter que hubo respecto al partido que hicieron contra el Barcelona hace unas semanas.
      • Pablo Villanueva
      • 2026-11-08 12:05
    • La Policía tuvo que sujetar y apartar a Braulio en el túnel de Mestalla por su altercado con el árbitro
        • Real Madrid
        • Real Madrid

      La Policía tuvo que sujetar a Braulio en el túnel de Mestalla por su altercado con el árbitro

      • Iván Martín
      • Enviado especial
      • VALENCIA
      • 2026-11-08 00:16
    • Iturralde insinúa que Maffeo mereció la expulsión contra el Real Madrid: Su comportamiento sobra en el fútbol
        • Real Madrid
        • Real Madrid

      Iturralde insinúa que Maffeo mereció la expulsión contra el Real Madrid: "Su comportamiento sobra en el fútbol"

      • Pablo Villanueva
      • 2026-11-08 13:02
    • Zidane revela el disgusto de Mbappé tras quedarse sin el Balón de Oro: Estaba decepcionado
        • Real Madrid
        • Real Madrid

      Zidane revela el disgusto de Mbappé tras quedarse sin el Balón de Oro: "Estaba decepcionado"

      Hace dos semanas Harry Kane ganó el Balón de Oro y frustró otro año más el deseo de Kylian Mbappé de hacerse con el trofeo individual más prestigioso del mundo. Apenas 28 puntos le separaron del éxito de levantar el trofeo en Londres. Un jarro de agua fría del que no quiso pronunciarse y que ya ha olvidado para centrarse en ganar títulos con el Real Madrid. Ahora se va al parón de selecciones para reencontrarse con Zidane, que reconoció que se vivió una injusticia.
      • Pablo Villanueva
      • 2026-11-08 13:48
    • Deportes

    • El
    • Así son los Cincinnati Bengals: jugadores destacados, resultados en la NFL...
        • Deportes
        • Deportes

      Así son los Cincinnati Bengals: jugadores destacados, resultados en la NFL...

      • Javier Molero
      • 2026-11-07 20:46
    • Así son los Atlanta Falcons: jugadores a seguir, cómo van en la NFL, pronósticos...
        • Deportes
        • Deportes

      Así son los Atlanta Falcons: jugadores a seguir, cómo van en la NFL, pronósticos...

      • Miguel Zorío
      • 2026-11-07 22:20
    • La NFL invade la tienda del Bernabéu: camisetas especiales del Madrid, vasos, ropa interior, calcetines y cascos
        • Estadio Santiago Bernabéu
        • Estadio Santiago Bernabéu

      La NFL invade la tienda del Bernabéu: camisetas especiales del Madrid, vasos, ropa interior, calcetines y cascos

      • Miguel Zorío
      • 2026-11-06 18:46
    • Atlético de Madrid - Barcelona: jaque por el liderato
    • La metamorfosis de Oblak que explica el
        • Deportes
        • Deportes

      La metamorfosis de Oblak que explica el 'nuevo' Atlético: "Antes era menos protagonista porque Simeone pedía eso"

      • Alejandro Peinado
      • 2026-11-08 11:00
    • El gran examen para la defensa del Barcelona
        • Deportes
        • Deportes

      El gran examen para la defensa del Barcelona

      • Luis Cobos
      • 2026-11-08 12:00
    • El pichichi Raphinha es un avión: promedia más de un gol por partido en Liga
        • Deportes
        • Deportes

      El pichichi Raphinha es un avión: promedia más de un gol por partido en Liga

      Raphinha es el pichichi de la Liga y es un auténtico avión dentro del Barcelona. El equipo culé ha encontrado a su delantero perfecto tras no poder firmar a Julián Álvarez el pasado verano. Ahora, el brasileño amenaza el Metropolitano para mantener el liderato de la Liga.
      • Luis Cobos
      • 2026-11-08 10:00
    • Convocatoria del Barcelona contra el Atlético de Madrid: Eric García y Christensen vuelve a una lista con tres canteranos
        • Deportes
        • Deportes

      Eric García y Christensen ya están recuperados y viajan a Madrid con el Barcelona

      • Luis Cobos
      • 2026-11-08 11:07
    • Lamine busca su gran noche
        • Deportes
        • Deportes

      Lamine busca su gran noche

      • Luis Cobos
      • 2026-11-08 14:00
    • Alineación del Atlético contra el Barcelona: Koke a los  mandos y Kang-in Lee acompañará a Julián Álvarez
        • Deportes
        • Deportes

      Alineación del Atlético contra el Barcelona: Koke a los mandos y Kang-in Lee acompañará a Julián Álvarez

      • Alejandro Peinado
      • 2026-11-07 22:00
    • Julián Álvarez, de sueño a ser la pesadilla del Barcelona
    • Valverde y Le Normand, protagonistas de las notas de Pipi Estrada con homenaje a Jesús de Miguel
    • Las cuentas de Marc Márquez para ser campeón del Mundial de MotoGP 2026
        • Deportes
        • Deportes

      Las cuentas de Márquez para ser campeón este domingo: ganar y que Martín no puntúe

      • Miguel Zorío
      • 2026-11-07 21:25
    • España jugará la final de la Finalíssima de fútbol sala tras ganar a Portugal en una tanda de ¡18 penaltis!
        • Deportes
        • Deportes

      España jugará la final de la Finalíssima de fútbol sala tras ganar a Portugal en una tanda de ¡18 penaltis!

      • Luis Cobos
      • 2026-11-07 11:05
    • Adamy Mara rompe su techo en la NBA con un nuevo récord de puntos para pedir la titularidad con Oklahoma
        • Deportes
        • Deportes

      Adamy Mara rompe su techo en la NBA con un nuevo récord de puntos para pedir la titularidad con Oklahoma

      Aday Mara ha firmado su mejor partido de la NBA rompiendo su propio récord. El español, con tan solo 21 años, aprovechó sus 27 minutos en la cancha ante unos Wizards sin Anthony Davis y estableció su mejor marca anotadora en la liga norteamericana, superando los 11 puntos que había conseguido ante los Phoenix Suns el pasado 27 de octubre y anotando hasta 18 puntos. También consiguió su primer triple partiendo de titular, para contribuir a la victoria de Oklahoma City Thunder sobre Washington Wizards (114-75).
      • Pablo Villanueva
      • 2026-11-08 11:13
    • España vuelve a dominar a Argentina y se proclama pentacampeona del mundo de pádel
        • Deportes
        • Deportes

      España vuelve a dominar a Argentina y se proclama pentacampeona del mundo de pádel

      • Pablo Villanueva
      • 2026-11-07 23:34
    • Fernando Alonso pesca un mágico octavo puesto bajo la lluvia en Brasil y Norris la pole
        • Deportes
        • Deportes

      Fernando Alonso pesca un mágico octavo puesto bajo la lluvia en Brasil y Norris la pole

      • Kike Sáez
      • 2026-11-07 21:27
    • Así queda la parrilla de salida para el GP de Brasil de F1 2026 tras la clasificación en Interlagos
        • Deportes
        • Deportes

      Así queda la parrilla: ¡Mejor posición de Fernando Alonso en toda la temporada!

      • Pablo Villanueva
      • 2026-11-07 22:02
    • El nuevo Opel Grandland: calidad y diseño alemán, oferta multienergía e innovación y tecnología al alcance de todos
    • economía

    • El Gobierno incumple su pacto con Bruselas de aumentar los trenes de mercancías para evitar los peajes en autovías
    • Las elecciones ponen en guardia al automóvil: los españoles ya retrasan la decisión de comprar un coche a 2027
        • Motor
        • Motor

      Las elecciones ponen en guardia al automóvil: los españoles ya retrasan la decisión de comprar un coche a 2027

      La convocatoria de elecciones generales pone en guardia al sector del automóvil tras la alerta de los concesionarios de un enfriamiento de las ventas en el mes de octubre. Las matriculaciones de coches han pasado de crecer más de un 10% a subir tan sólo un 1% en el último mes, cifra que evidencia el impacto directo de la inestabilidad política en las operaciones comerciales.
      • Andrea Aguado
      • 2026-11-08 14:00
    • La flota mercante pide menos impuestos tras caer al mínimo histórico los buques con pabellón español
        • Economía
        • Economía

      La flota mercante pide menos impuestos tras caer al mínimo histórico los buques con pabellón español

      • Xavier Vilaltella
      • 2026-11-08 05:45
    • Potencia, eficiencia y etiqueta ECO: las claves del OMODA 5 SHS híbrido para revolucionar las carreteras españolas
    • COOL

    • La Séptima contraprograma la visita de Abascal a
        • Cool
        • Cool

      La Séptima contraprograma la visita de Abascal a 'La Revuelta' con una entrevista a Pedro Sánchez

      • Javi Fernández
      • 2026-11-07 15:38
    • Amaia Montero da la nota en su concierto de Barcelona y las redes se le echan encima: ¿Qué le han hecho a La Oreja de Van Gogh?
        • Cool
        • Cool

      Amaia Montero da la nota en su concierto de Barcelona y las redes se le echan encima: "¿Qué le han hecho a La Oreja de Van Gogh?"

      • Javi Fernández
      • 2026-11-07 14:50
    • Un intruso irrumpe a patadas en la casa de Marius Borg en plena madrugada y se enfrenta a golpes con el hijo de Mette-Marit
        • Cool
        • Cool

      Un intruso irrumpe a patadas en la casa de Marius Borg en plena madrugada y se enfrenta a golpes con el hijo de Mette-Marit

      Se han vivido momentos de tensión en la residencia de Skaugum, donde Marius Borg, hijo de la princesa Mette-Marit, permanece bajo arresto domiciliario y vigilancia electrónica. El joven ha sufrido un asalto en su propia vivienda después de que un desconocido consiguiera acceder al interior de la propiedad el pasado 7 de noviembre. El individuo comenzó a golpear y dar patadas a la puerta principal hasta lograr entrar en la casa, situada en la finca donde también se encuentra la residencia oficial de los reyes de Noruega. Un episodio inesperado que ha vuelto a situar al hijo de la futura reina consorte en el centro de la actualidad y surge después de su petición para levantar al arresto domiciliario.
      • Javi Fernández
      • 2026-11-08 13:14
    • El ritual japonés del carbón conquista Madrid: así es Akaneya, una experiencia gastronómica entre Kobe, Matsusaka y el famoso Crown Melon
        • Cool
        • Cool

      El ritual japonés del carbón conquista Madrid: así es Akaneya, una experiencia gastronómica entre Kobe, Matsusaka y el famoso Crown Melon

      • Ana Márquez
      • 2026-11-08 13:33
    • Mar Flores no se cree las disculpas de Ana Obregón a Antonia Dell’Atte y carga contra ella: Habría querido ver su empatía con Antonia dirigida a mí
        • Cool
        • Cool

      Mar Flores no se cree las disculpas de Ana Obregón a Antonia Dell’Atte y carga contra ella: "Habría querido ver su empatía con Antonia dirigida a mí"

      • Javi Fernández
      • 2026-11-07 13:45
    • Fabián Ruiz debuta en la paternidad: las primeras imágenes junto a Rosa Pereira para dar la bienvenida a su hijo Bertín
        • Cool
        • Cool

      Fabián Ruiz debuta en la paternidad: las primeras imágenes junto a Rosa Pereira para dar la bienvenida a su hijo Bertín

      • Javi Fernández
      • 2026-11-07 12:50
    • Sostenibilidad e innovación para mejorar la salud y la competitividad
    • Okmotor

    • Peugeot regala más de 2.000 euros en extras en todos sus coches con nuevos acabados y más equipamiento
        • Motor
        • Motor

      Peugeot regala más de 2.000 euros en extras en todos sus coches con nuevos acabados

      • Andrea Aguado
      • 2026-11-06 12:16
    • Tesla es la marca de coches que más valor pierde: se deja 11.200 millones de dólares en un año
        • Motor
        • Motor

      Tesla es la marca de coches que más valor pierde: se deja 11.200 millones de dólares en un año

      • Andrea Aguado
      • 2026-11-06 05:45
    • Renault entra en la industria de la Defensa con una fórmula para fabricar vehículos militares a menor coste
        • Motor
        • Motor

      Renault entra en la industria de la Defensa con una fórmula para fabricar vehículos militares

      • Andrea Aguado
      • 2026-11-05 05:45
    • Agricultura sostenible y relevo generacional: los retos del campo que reconocen los Premios Big Good de McDonald
    • OKGreen

    • Hawái no tiene pájaros carpinteros pero sí un ave que perfora la madera como si manejara una navaja suiza
        • OKGREEN
        • OKGREEN

      Hawái no tiene pájaros carpinteros pero sí un ave que perfora la madera como si manejara una navaja suiza

      En Hawái no hay pájaros carpinteros, pero la evolución encontró la manera de cubrir ese hueco. Un pequeño pájaro amarillo en peligro de extinción ha desarrollado un pico que funciona como una navaja suiza y un cuerpo entero preparado para perforar la madera en busca de alimento.
      • Antonio Quilis
      • 2026-11-08 05:00
    • Fue la gran sensación en su día y una apuesta sorprendente: después conmocionar al mundo entero Musk decide dejar de fabricarla
        • OKGREEN
        • OKGREEN

      Fue la gran sensación en su día y una apuesta sorprendente: después conmocionar al mundo entero Musk decide dejar de fabricarla

      • Antonio Quilis
      • 2026-11-07 14:21
    • En 2022 California decidió salvar a los pumas: 4 años después ya se ha construido el puente para animales más grande del mundo
        • OKGREEN
        • OKGREEN

      En 2022 California decidió salvar a los pumas: 4 años después ya se ha construido el puente para animales más grande del mundo

      • Janire Manzanas
      • 2026-11-07 11:30
    • OKSalud

    • La vivencia del ‘no riesgo’ en adolescentes incrementa los embarazos no deseados y las infecciones de transmisión sexual
    • Dr. Raúl de Lucas, dermatólogo de La Paz: Entender la piel exige comprender el resto del organismo
        • OkSalud
        • OkSalud

      Dr. Raúl de Lucas, dermatólogo de La Paz: "Entender la piel exige comprender el resto del organismo"

      El jefe de Sección de Dermatología Pediátrica en el Hospital Universitario La Paz, Raúl de Lucas, ha abogado por un abordaje holístico de la salud cutánea, con colaboración y coordinación entre especialidades, porque "la piel no es un órgano aislado" y "muchas veces es el reflejo de lo que ocurre en el resto del organismo".
      • Diego Buenosvinos
      • 2026-11-08 05:40
    • Los científicos alertan del repunte del cáncer colorrectal tras 20 años de descenso: aumenta hasta los 69 años
        • OkSalud
        • OkSalud

      Los científicos alertan del repunte del cáncer colorrectal tras 20 años de descenso: aumenta hasta los 69 años

      • Diego Buenosvinos
      • 2026-11-08 05:40
    • El gas radón es la segunda causa de cáncer de pulmón por detrás del tabaco
        • OkSalud
        • OkSalud

      El gas radón es la segunda causa de cáncer de pulmón por detrás del tabaco

      • B. Muñoz
      • 2026-11-07 05:40
    • OKCLUB

    • Hazte socio de OKCLUB por sólo 10 euros y disfruta de todas las ventajas de OKDIARIO
        • OKCLUB
        • OKCLUB

      Hazte socio de OKCLUB por sólo 10 euros y disfruta de las ventajas de OKDIARIO

      • OKDIARIO
      • 2026-09-03 10:38
    • Francisco Rabadán: ¿Cambio de líder a la vista en la Liga?
        • OKCLUB
        • OKCLUB

      Francisco Rabadán: ¿Cambio de líder a la vista en la Liga?

      • Francisco Rabadán
      • 2026-11-07 05:34
    • navarra

    • Angélica, experta en máquinas de coser en Pamplona:
        • Comercio local

      Angélica, experta en máquinas de coser en Pamplona: "Cada vez se está animando más gente joven"

    • Álvarez de Toledo alerta de la kale borroka en Pamplona y carga contra
        • Política

      Álvarez de Toledo alerta de la kale borroka en Pamplona y carga contra "los años de la indecencia" de Sánchez y Chivite

    • Guillén, el navarro experto en mantenimiento que cambia de empresa:
        • Comercio local

      Guillén, el navarro experto en mantenimiento que cambia de empresa: "Ahora la furgoneta es mi taller"

    • Un incendio en una chimenea alcanza la cubierta de una vivienda de cuatro plantas en un pueblo de Navarra
        • Sucesos

      Un incendio en una chimenea alcanza la cubierta de una vivienda de cuatro plantas en un pueblo de Navarra

    • La paradoja del Frente Amplio en Navarra: pide el voto de quien
        • Política

      La paradoja del Frente Amplio en Navarra: pide el voto de quien "no vota nunca" al PSOE y se alía con él para el Senado

    • Cinco pueblos de Navarra plantean sus retos a estudiantes de FP: así ha sido su encuentro en Petilla de Aragón
        • Sociedad

      Cinco pueblos de Navarra plantean sus retos a estudiantes de FP: así ha sido su encuentro en Petilla de Aragón

    • metabolic

    • María Luisa López, a sus 100 años, cuenta qué alimentos forman parte de su dieta y el hábito que nunca ha abandonado: «Siempre me permito una copa de Albariño»
        • Alimentos

      María Luisa López, a sus 100 años, cuenta qué alimentos forman parte de su dieta y el hábito que nunca ha abandonado: «Siempre me permito una copa de Albariño»

    • Los entrenadores personales coinciden: a partir de los 60 para conseguir unos brazos tonificados, haz este ejercicio dos veces por semana para ganar masa muscular y fortalecer los brazos
        • Deporte

      Los entrenadores personales coinciden: a partir de los 60 para conseguir unos brazos tonificados, haz este ejercicio dos veces por semana para ganar masa muscular y fortalecer los brazos

    • La psicología confirma que las personas que pasan más tiempo en la naturaleza no sólo les ayuda a combatir la soledad, sino que también les ayuda a sentirse mejor emocionalmente
        • Desarrollo Personal y Autoayuda

      La psicología confirma que las personas que pasan más tiempo en la naturaleza no sólo les ayuda a combatir la soledad, sino que también les ayuda a sentirse mejor emocionalmente

    • Anna Serra, nutricionista: «A los 60 años, un plato de lentejas, verduras y aceite de oliva puede ser nutricionalmente más interesante que muchos superalimentos»
        • Alimentos

      Anna Serra, nutricionista: «A los 60 años, un plato de lentejas, verduras y aceite de oliva puede ser nutricionalmente más interesante que muchos superalimentos»

    • La psicología confirma que las personas nacidas entre 1950 y 1970 ya no buscan ampliar su círculo de amigos, sino que prefieren la paz mental y proteger su tranquilidad
        • Emociones y Salud Mental

      La psicología confirma que las personas nacidas entre 1950 y 1970 ya no buscan ampliar su círculo de amigos, sino que prefieren la paz mental y proteger su tranquilidad

    • Lucía Aguado, especialista en Ciencias del Deporte: «Aguantar minutos en plancha es como intentar ganar músculo en las piernas solo caminando. Es saludable, pero falta intensidad»
        • Deporte

      Lucía Aguado, especialista en Ciencias del Deporte: «Aguantar minutos en plancha es como intentar ganar músculo en las piernas solo caminando. Es saludable, pero falta intensidad»

    • talent24h

    • El Gobierno aprueba exigir sanciones efectivas en las ZBE y acreditar que los controles municipales funcionan
        • Actualidad

      El Gobierno aprueba exigir sanciones efectivas en las ZBE y acreditar que los controles municipales funcionan

    • La industria farmacéutica crea 6.700 empleos en dos años y uno de cada cinco nuevos contratados tiene FP
        • Empleo

      La industria farmacéutica crea 6.700 empleos en dos años y uno de cada cinco nuevos contratados tiene FP

    • Alicante activa el Bono Comercio 2026 y permite gastar 400 euros pagando solo 200
        • Actualidad

      Alicante activa el Bono Comercio 2026 y permite gastar 400 euros pagando solo 200

    • Salobreña (Granada) convoca una plaza fija de bibliotecario con acceso a una bolsa de empleo aprobando el examen
        • Empleo

      Salobreña (Granada) convoca una plaza fija de bibliotecario con acceso a una bolsa de empleo aprobando el examen

    • Este municipio de Tenerife revisará casi 7.000 viviendas vacacionales para comprobar su situación legal
        • Actualidad

      Este municipio de Tenerife revisará casi 7.000 viviendas vacacionales para comprobar su situación legal

    • El Supremo permite completar los cinco días de permiso aunque el reposo domiciliario dure menos
        • Actualidad

      El Supremo permite completar los cinco días de permiso aunque el reposo domiciliario dure menos

    • Muy Interesante

    • Así era entrar en un quirófano hace 2.000 años: los médicos romanos utilizaban bisturíes y pinzas, pero no tenían anestesia moderna
        • Historia

      Así era entrar en un quirófano hace 2.000 años: los médicos romanos utilizaban bisturíes y pinzas, pero no tenían anestesia moderna

    • ¿Cómo respiran las arañas bajo el agua?
        • Naturaleza

      ¿Cómo respiran las arañas bajo el agua?

    • Descubren por qué han desaparecido 1.000 millones de años de la historia de la Tierra: la respuesta estaba bajo nuestros pies
        • Naturaleza

      Descubren por qué han desaparecido 1.000 millones de años de la historia de la Tierra: la respuesta estaba bajo nuestros pies

    • Este híbrido enchufable apunta a 200 kilómetros en eléctrico y la clave está en un sitio que no se ve: bajo el suelo
        • Actualidad

      Este híbrido enchufable apunta a 200 kilómetros en eléctrico y la clave está en un sitio que no se ve: bajo el suelo

    • Saúl Craviotto cambia de coche y elige un eléctrico de poco más de 4 metros para ir del entrenamiento a los planes en familia
        • Actualidad

      Saúl Craviotto cambia de coche y elige un eléctrico de poco más de 4 metros para ir del entrenamiento a los planes en familia

    • Sorprendente pero cierto: hace 2.000 años ya existía el diseño de una máquina expendedora que funcionaba introduciendo monedas
        • Historia

      Sorprendente pero cierto: hace 2.000 años ya existía el diseño de una máquina expendedora que funcionaba introduciendo monedas

    • okzinet

    • Llanto, sueño y culpa tras el nacimiento: cómo entender a tu bebé y afrontar los primeros meses
        • Ser Padres

      Llanto, sueño y culpa tras el nacimiento: cómo entender a tu bebé y afrontar los primeros meses

    • Walking epidural: alivio del dolor y movilidad durante las primeras fases del parto
        • Ser Padres

      Walking epidural: alivio del dolor y movilidad durante las primeras fases del parto

    • Tener un amigo imaginario podría ayudar a tu hijo a comprender mejor a los demás: esto dice un estudio
        • Ser Padres

      Tener un amigo imaginario podría ayudar a tu hijo a comprender mejor a los demás: esto dice un estudio

    • 3 formas muy sencillas de añadir sabor a las cremas de verduras (sin añadir nata)
        • Mia Revista

      3 formas muy sencillas de añadir sabor a las cremas de verduras (sin añadir nata)

    • Matcha latte cremoso y suave en casa: 3 g de polvo, agua a 80 °C y un colador
        • Mia Revista

      Matcha latte cremoso y suave en casa: 3 g de polvo, agua a 80 °C y un colador

    • Sal y suavizante, el ambientador casero que perfuma el baño, y la rutina que sí deja la mampara y los grifos sin cal
        • Mia Revista

      Sal y suavizante, el ambientador casero que perfuma el baño, y la rutina que sí deja la mampara y los grifos sin cal

    • Techy

    • Vista aérea de la construcción de los dos brazos del edificio en U de la planta K-25 de Oak Ridge
        • Techy

      Más grande que el Pentágono y con 2.892 etapas para separar uranio: así era la planta K-25 de Oak Ridge, el mayor edificio del mundo en 1945

      • Adrián Villellas
    • Submarino en superficie al amanecer en la imagen de Indra que acompaña la presentación del radar Prisma-S en Euronaval
        • Techy

      Indra enseña por primera vez su radar Prisma-S: cuatro dimensiones, todo digital y pensado para ser el sensor principal de los próximos buques de guerra europeos

      • Adrián Villellas
    • Uno de los robotaxis de Waymo, un Jaguar I-PACE eléctrico, recogiendo pasajeros en San Francisco
        • Techy

      Los robotaxis de Waymo ganan casi 650 km² en una semana: llegan a Torrance, La Jolla y el zoo de Nashville y casi duplican su zona en el este de Orlando

      • Adrián Villellas
    • El Edificio de Ensamblaje de Vehículos de la NASA de noche, con el cohete SLS sobre el lanzador móvil a su lado
        • Techy

      Sus puertas miden 139 metros y tardan 45 minutos en abrirse: así es el Edificio de Ensamblaje de Vehículos de la NASA, que montó los cohetes del Apolo

      • Adrián Villellas
    • Ceremonia de botadura de la corbeta Neom de Navantia en el astillero de San Fernando
        • Techy

      Navantia bota en San Fernando la corbeta Neom, la séptima para Arabia Saudí, y ya lanza un buque de guerra cada cuatro meses con 2.200 empleos al día

      • Adrián Villellas
    • Cara frontal del reactor B de Hanford con los extremos de sus 2.004 tubos de proceso
        • Techy

      2.004 tubos de aluminio y agua del río Columbia: así era el reactor B de Hanford, el que fabricó el plutonio de la bomba de Nagasaki

      • Adrián Villellas
    • OkPlanes

    • Rabo de Toro, Madrid, 2026
        • OkPlanes

      Los mejores platos de rabo de toro estofado en Madrid

      • Sandra Quintana C
    • restaurantes por menos de 20 euros
        • OkPlanes

      Cinco restaurantes donde comer bien en Madrid por menos de 20 euros

      • Sandra Quintana C
    • luces de navidad
        • OkPlanes

      Suma Cruz, Bimani y Marcos Luengo diseñarán la iluminación navideña de Madrid

      • Sandra Quintana C
    • buñuelos y huesos de santo
        • OkPlanes

      Dónde comprar los mejores buñuelos y huesos de santo en Madrid

      • Sandra Quintana C
    • floristerias madrid
        • OkPlanes

      Las mejores floristerías para encargar flores el puente de Todos los Santos

      • Sandra Quintana C
    • estrenos de cine
        • OkPlanes

      Las películas que llegan a la cartelera de cine el 30 de octubre

      • Sandra Quintana C
    • Curiosidades

    • Imagen generada con IA.
        • Curiosidades

      La psicología confirma que los adultos que desean el mal ajeno a otros no son malos, en realidad es una forma inconsciente de protegerse

      • Aitana Pascual
    • Vivir gratis en Tenerife
        • Curiosidades

      Se buscan voluntarios veganos y no fumadores para vivir gratis en Tenerife: el principal requisito es ayudar con las tareas domésticas y el mantenimiento de la casa

      • Alejo Lucarás
    • toalla, incendio
        • Curiosidades

      Poner una toalla húmeda al pie de la puerta si hay humo fuera: para qué sirve y por qué lo recomiendan siempre los bomberos

      • Sofía Crotti
    • Bola de papel de aluminio parrilla
        • Curiosidades

      Por qué debes hacer una bola de papel de aluminio y frotarla por las rejillas de la parrilla antes de cocinar

      • Janire Manzanas
    • Ramo de flores
        • Curiosidades

      André Alonso, especialista en plantas: «Si te regalan un ramo de flores, primero córtalas todas a la misma medida»

      • Alejo Lucarás
    • Rociar vinagre en la entrada de casa
        • Curiosidades

      Rociar vinagre en la entrada de casa durante noviembre: por qué lo recomiendan los expertos y para qué sirve

      • Janire Manzanas
    • Recetas de cocina

    • Avena con pudin de vainilla
        • Recetas de cocina

      Avena con pudin de vainilla: cómo preparar este desayuno saludable y cremoso

      • Janire Manzanas
        • Recetas de cocina

      Pato navideño: receta al horno para una comida de Navidad especial

      • Francisco María
    • Samantha Vallejo-Nágera boquerones
        • Recetas de cocina

      Samantha Vallejo-Nágera desvela el truco para hacer unos boquerones fritos más crujientes: «No uses pan rallado»

      • Blanca Espada
    • Patatas asadas
        • Recetas de cocina

      Olvídate de la sal y la pimienta: añade este condimento y tendrás patatas asadas mucho más ricas

      • Janire Manzanas
    • Ensalada navideña
        • Recetas de cocina

      Ensalada de marisco para Navidad: receta fácil y perfecta para las fiestas

      • Francisco María
    • niños 90 postres
        • Recetas de cocina

      Sólo los verdaderos niños de los 90 lo recuerdan: estos siete postres fueron todo un éxito en aquella época

      • Blanca Espada
    • OkShopping

    • Mejores tarjetas con beneficios
        • OkShopping

      Tarjetas con ventajas: así puedes rentabilizar los pagos que haces cada día

      • New Mall Media
    • almohadas
        • OkShopping

      ¿Qué almohada comprar en 2026? Comparativa de Pikolin, Flex, Ikea y más

      • New Mall Media
    • mejores canapés abatibles
        • OkShopping

      Encuentra los mejores canapés abatibles para tu hogar: guía definitiva y comparativa de los modelos más top

      • New Mall Media
    • mejores mesitas de noche
        • OkShopping

      Qué mesita de noche comprar en 2026: comparativa y guía de compra

      • New Mall Media
    • mejores muebles de TV
        • OkShopping

      Los 10 mejores muebles de TV de 2026: ¿cómo elegir según el tamaño de tu televisor?

      • New Mall Media
    • Qué cabecero comprar para tu dormitorio
        • OkShopping

      Qué cabecero comprar para tu dormitorio en 2026: tendencias en materiales y precios

      • New Mall Media
    • Mascotas

    • Imagen generada por IA.
        • Mascotas

      Veterinarios y expertos coinciden: éste es el error que muchos dueños cometen al dejar solo a su perro o gato cuando hace frío

      • Carmen Ruiz
    • Perro, animales, mascotas
        • Mascotas

      Los veterinarios lo recomiendan: en los días de lluvia, lo recomendable para evitar hongos es cepillar al perro con regularidad y mantener su cama seca

      • Ana López Vera
    • Ardilla macho
        • Mascotas

      ¿Cómo se llama la ardilla macho? La respuesta que pocos conocen y que sorprende al escucharlo

      • Janire Manzanas
    • Retrato de dos gatos siameses idénticos. Foto: Magnific - @ArthurHidden
        • Mascotas

      En 1884 fue un regalo del rey de Siam a una inglesa; más de 140 años después es una de las razas de gato más populares del mundo

      • Naiara Philpotts
    • Imagen generada por IA.
        • Mascotas

      Según los veterinarios expertos, esta es la edad a la que envejece tu perro según su tamaño y raza

      • Carmen Ruiz
    • Imagen generada por IA.
        • Mascotas

      La Ley de Propiedad Horizontal lo confirma: se puede apelar al artículo 7.2 si el perro de tu vecino ladra constantemente

      • Carmen Ruiz
    • Ciencia

    • Regiones con menos especies
        • Ciencia

      Suena extraño, pero la ciencia lo avala: las regiones con menos especies son en realidad las más importantes para la biodiversidad del planeta

      • Alejo Lucarás
    • Fotosíntesis
        • Ciencia

      La biología cuántica de la fotosíntesis: cómo las plantas utilizan efectos de la física subatómica para aprovechar al máximo la luz solar

      • Francisco María
    • Imagen generada con IA
        • Ciencia

      Una turbina girando a 26.000 revoluciones por minuto en el fondo del océano: así es la central experimental que ha logrado sacar electricidad de un volcán submarino activo a más de 1.500 metros de profundidad

      • Javier Martínez
    • Izquierda, colillas de cigarrillo recolectadas para el experimento; derecha, ladrillos de arcilla cocida fabricados con distintos porcentajes. Fuente: Kurmus y Mohajerani, Materials (MDPI, 2020), CC BY 4.0.
        • Ciencia

      Investigadores australianos fabrican un ladrillo ecológico aislante a partir de residuos de cigarros: las colillas reemplazan hasta un 2 % del peso de la mezcla de arcilla

      • Naiara Philpotts
    • Árboles tropicales
        • Ciencia

      En 1860, un agricultor sembró 12 árboles tropicales en un parque y 165 años después, uno de ellos es el único ejemplar vivo de toda Sudamérica

      • Janire Manzanas
    • Titán, Saturno
        • Ciencia

      Más allá de los anillos: el inminente plan espacial para enviar una sonda directa a explorar los océanos ocultos de Titán

      • Francisco María
    • Bebés

    • antojos aversiones embarazo
        • Bebés

      Antojos y aversiones en el embarazo: ¿Qué los causa y cómo manejarlos?

      • Blanca Espada
    • embarazo ectópico
        • Bebés

      Embarazo Ectópico: Síntomas, Causas y Tratamiento

      • Blanca Espada
    • ansiedad embarazo
        • Bebés

      Cómo gestionar la ansiedad en el embarazo: consejos y recursos para sentirte mejor

      • Blanca Espada
    • alimentación complementaria
        • Bebés

      Cómo introducir la alimentación complementaria sin morir en el intento: trucos y recetas para padres primerizos

      • Blanca Espada
    • urticaria niños
        • Bebés

      Urticaria en niños: causas, síntomas, tratamiento y complicaciones

      • Blanca Espada
    • granuloma umbilical
        • Bebés

      Granuloma umbilical del bebé: ¿Qué es y cómo tratarlo?

      • Blanca Espada
    • Tecnología

    • Cosori ICONIC Dual
        • Tecnología

      He probado la Cosori ICONIC Dual, una freidora de aire de doble cesta con diseño de electrodoméstico

      • Nacho Grosso
    • IA móvil
        • Tecnología

      Las funciones de IA del móvil que sí se usan, y las que casi nadie toca

      • Nacho Grosso
    • GTA VI
        • Tecnología

      La precarga de GTA VI se come hasta 212 GB y arranca en la madrugada del martes

      • Nacho Grosso
    • Tineco Pure One S70
        • Tecnología

      Tineco Pure One S70: la aspiradora inalámbrica que ajusta sola la succión

      • Nacho Grosso
    • subrayar acciones whatsapp
        • Tecnología

      WhatsApp subraya teléfonos, fechas y direcciones en tus chats para que dejes de copiar y pegar

      • Nacho Grosso
    • Sam Altman
        • Tecnología

      Sam Altman, CEO de ChatGPT, lanza una reflexión sobre los ordenadores: «Es terrible que la RAM sólo se utilice un 5% del tiempo»

      • Janire Manzanas
    Ir Arriba

    Noticias de última hora

    • Alcaraz – Ben Shelton, en directo: resultado de la final del Masters 1000 de París hoy, última hora y cómo va el partido en tiempo real
    • Más grande que el Pentágono y con 2.892 etapas para separar uranio: así era la planta K-25 de Oak Ridge, el mayor edificio del mundo en 1945
    • Garriga alerta del «efecto llamada» ante la avalancha de cayucos en El Hierro: más de 8.000 inmigrantes en cinco semanas
    • A qué hora juegan Atlanta Falcons – Cincinnati Bengals y dónde ver gratis por televisión en directo y en vivo online gratis el partido de la NFL en el Bernabéu
    • Atlanta Falcons – Cincinnati Bengals, en directo: sigue el resultado en tiempo real y cómo va el partido de NFL hoy en vivo
    • Vox recupera el ‘Es sentido común’ como lema para las elecciones del 29-N
    • El surrealista piropo de Alba Carrillo a Sarah Santaolalla en La Séptima: “Tus tetas son pequeñas en comparación con tu cerebro»
    • Los expertos en psicología coinciden: las personas que disfrutan de los días lluviosos no son tristes, en realidad aprovechan el ambiente tranquilo para reflexionar
    • En 2024 derribaron 4 presas que bloqueaban un río de EEUU: un año después, las cámaras subacuáticas confirman el regreso de 13.310 salmones que ya ocupan 345 km de su antiguo hábitat
    • A qué hora es el partido de Alcaraz – Shelton y dónde ver la final del Masters 1000 de París en directo por TV gratis

    Noticias más vistas

    • Moncloa recluta youtubers para captar el voto joven el 29-N: pagó 36.000 euros al podcaster que entrevistó a Sánchez
    • Moreno en la presentación de los candidatos del PP de Andalucía: «Unos colocan a sus amigos; nosotros a los mejores»
    • La rutina de Arturo Pérez-Reverte (74 años) en Sevilla: «Desayuno siempre en el bar Stratos, con churros de la calentería San Pablo. Pero a la hora del aperitivo sigo colgando el sombrero en Las Piletas»
    • España vuelve a dominar a Argentina y se proclama pentacampeona del mundo de pádel
    • El punto de Alcaraz que va a dar la vuelta al mundo: sale de la pista para rematar y pone a la grada en pie
    • El drama de Fernando Romay, ex jugador de baloncesto español, con su pensión: «No puedo cobrar el 100% de lo que me correspondería»
    • Jean Todt, amigo y persona de máxima confianza de Schumacher, vuelve a hablar claro sobre el ex piloto alemán
    • Gesta histórica de Jódar: primer tenista que se mete en las ATP en su año de debut como profesional
    • Otro favor de la FIFA a Argentina: rebaja la sanción a Nahuel Molina por el puñetazo a Rodri en la final del Mundial
    • Resultado Alcaraz – Ruud: resumen y cómo ha quedado el partido de la semifinal del Masters 1000 de París

    Noticias virales

    • Un venezolano que vive en España lo dice claro: «Las políticas que está aplicando Pedro Sánchez aquí son las mismas que en Venezuela»
    • La mejor reflexión de la historia es de Steve Jobs: «Las únicas personas que no malgastan su tiempo son las que no dejan que la opinión de los demás acalle su voz interior»
    • La psicología concluye que los adultos que dan las gracias al conductor del autobús no sólo son educados, en realidad están demostrando gran empatía y consideración por los demás
    • La psicología dice que los niños cuyos padres siempre han hecho todo por ellos suelen desarrollar hábitos problemáticos en la edad adulta
    • Los psicólogos coinciden: «Las personas que anotan las cosas en un calendario de papel en lugar de en su teléfono móvil tienen un procesamiento mental diferente»
    • Felipe, jubilado: «Me jubilé pensando que por fin iba a descansar, pero la realidad ha sido muy distinta de lo que esperaba en realidad»
    • Fernando Fernán Gómez, sobre la Guerra Civil: «Lo que más recuerdo es la tremenda diferencia entre el sentir de los protagonistas y el de la gente común»
    • Los albañiles lo dejan claro: aplicar caucho líquido con un rodillo es la mejor opción para impermeabilizar una terraza sin tener que levantar el suelo
    • Pío Baroja, escritor español de la generación del 98, sobre la amistad: «Solo los tontos tienen muchas amistades»
    • Los expertos en psicología coinciden: las personas que disfrutan de los días lluviosos no son tristes, en realidad aprovechan el ambiente tranquilo para reflexionar
    Gobierno de España

    Esta empresa se ha acogido a las subvenciones del Gobierno de España cofinanciadas con el Fondo Europeo de Desarrollo Regional para las regiones ultraperiféricas para el transporte de mercancías en Canarias.”Una manera de hacer Europa”

    Unión Europea. Fondo europeo de desarollo regional.
    • DOS MIL PALABRAS S.L. 2026.
    • Contacto
    • Aviso Legal
    • Política de Privacidad
    • Política de Cookies
    • Noticias
    • RSS
    • Quiénes somos
    • Auditado por ComScore