Archive | Comunicados

El 25S reclamem Democràcia

Des de l’Assemblea Barcelona Real Ja Bcn donem suport a la convocatòria del 25S Rodea el Congreso a Madrid i també a les accions previstes al Parlament de Catalunya pel mateix dia.

Us convidem a que us informeu a través del web que s’ha creat específicament per aquesta data http://25sbcn.wordpress.com i a que participeu en aquesta convocatòria en defensa dels nostres drets i les nostres llibertats.

Reclamem una democràcia real on tota la ciutadania tingui veu i vot, i en la qual els drets fonamentals es respectin i estiguin garantits.

Volem seguir l’exemple d’Islàndia i aconseguir una nova Constitució que ens representi, escrita per les persones i no subordinada als poders financers. Tenim molts motius per envoltar el Congrés, però sobretot tenim el deure i el dret de fer-ho.

Reproduïm a continuació el manifest de la Coordinadora25s, el qual subscrivim:
Manifest de la Coordinadora25 (Madrid)
“La democràcia està segrestada. El 25S anem a rescatar-la.”

El proper 25 de setembre envoltarem el Congrés dels Diputats per rescatar-lo d’un segrest que ha convertit aquesta institució en un òrgan superflu. Un segrest de la sobirania popular dut a terme per la Troika i els mercats financers i executat amb el consentiment i la col·laboració de la majoria dels partits polítics. Partits que han traït els seus programes electorals, els seus votants i la ciutadania en general incomplint promeses i contribuint a l’empobriment progressiu de la població.

Envoltem el Congrés després de més d’un any d’intenses mobilitzacions en tots els sectors socials i al comprovar que no hi pot haver democràcia quan les institucions que diuen representar-la es mouen per interessos que no són els de la majoria. Perquè no tenim res a parlar amb un poder que ha demostrat sistemàticament ser cec, sord i mut a justes i concretes demandes d’igualtat i justícia social. L’envoltem per rescatar la política d’un règim econòmic insostenible i depredador: el sistema capitalista.

Envoltem el Congrés perquè volem fer un salt en la mobilització social i posar en el centre la recuperació de la sobirania i del poder ciutadà, és a dir, de la democràcia.

Hem creat nombrosos processos de lluita, espais de participació i discussió a les xarxes i a les places, als barris i als centres de treball, i hem dut a terme iniciatives que volem continuar desenvolupant des de baix, sense dreceres i pas a pas. Perquè creiem que el temps de les decisions preses per uns pocs ha acabat; perquè, davant dels que volen deixar-nos sense futur, tenim els mitjans i la intel·ligència col·lectiva per decidir i construir la societat que volem; perquè no necessitem falsos intermediaris, sinó recursos i eines col·lectives que fomentin activament la participació política de totes les persones en els assumptes comuns.

Envoltem el Congrés el 25S per dir-los, als que diuen manar-nos, que no, que desobeirem les seves imposicions injustes, com la de pagar el seu deute, i que defensarem els drets col·lectius: l’habitatge, l’educació, la salut, l’ocupació, la participació democràtica, la renda. Per iniciar un procés que permeti que els responsables de la crisi deixin de ser impunes, perquè els piròmans que han provocat la nostra crisi no siguin recompensats i comencin, en canvi, a ser jutjats.

El 25 de setembre ens manifestarem al voltant del Congrés perquè volem recuperar la responsabilitat sobre el nostre propi futur sense acceptar imposicions. Per dir als que tenen segrestada la democràcia que ha arribat el moment d’anar-se’n i per exigir la dimissió d’aquest Govern com a primer pas, perquè anem a alliberar-la iniciant un procés constituent. Un procés de participació directa obert on determinem i posem en marxa les institucions polítiques, eines de participació i mecanismes jurídics i polítics que necessitem per garantir que les decisions col·lectives siguin completament efectives. Un procés constituent sostingut i la definició col·lectiva comencen, però no acaben, el 25S.

Rescatar el Congrés és llançar una invitació a que s’articulin i s’uneixin altres moviments socials com la lluita dels funcionaris per la defensa dels serveis públics, les diverses “marees” i altres lluites per la igualtat i la justícia social. Significa negar-nos a acceptar la por, la impotència i la desorientació sorgides de la reducció del polític a l’econòmic i les seves conseqüències feixistes, xenòfobes, racistes i masclistes. I buscar una sortida col·lectiva.

Convidem a totes les persones que vulguin acompanyar-nos a envoltar el Congrés el 25 de setembre, a dir “ja n’hi ha prou!” i a continuar aquest camí per rescatar la democràcia i la sobirania.

Volem drets, democràcia, justícia i llibertat per a tothom.

Fins aquí hem arribat, no tenim por.

Ens veiem el 25S… i més enllà.

[Aquest manifest és fruit del debat en les assemblees d'aquesta Coordinadora, un esforç de síntesi dels motius per al 25S que compartim i una altra de les veus per les que pots sentir-te apel·lat/da a anar]

Posted in Comunicados, Convocatorias, Última horaComentarios desactivados

RedesDRY

RedesDRY es un grupo de trabajo autónomo dentro de Democracia Real Ya! Entendemos que el 15M es movimiento, no es simplemente una protesta, sino un proceso de cambio social de amplio espectro y largo recorrido. Por lo tanto, utiliza múltiples y diversas identidades para expresarse y es nuestro deseo trabajar por crear una herramienta que aglutine y nos ayude a seguir adelante: un Plan de Rescate Ciudadano http://www.planderescateciudadano.net

Hemos visto en la plaza durante el 12m15m el deseo de conseguir victorias concretas y de focalizar nuestra capacidad de trabajo hacia ellas. Necesitamos catalizadores para articular estos procesos y por eso lanzamos a la ciudadanía y a todo el movimento 15M esta herramienta.

Creemos que los puntos de reivindicaciones que se aprobaron en Barcelona (http://cos.as/2tn ), de manera conjunta con gran parte de los actores del movimiento 15M, son un buen punto de partida para construir una alianza entre grupos específicos, colectivos e iniciativas sociales que puedan conectar y transversalizar luchas y procesos.

El Plan de Rescate se articulará en cinco ejes:

  1. Ni un euro más para rescatar a los bancos
  2. Educación y sanidad públicas y de calidad.
  3. Por una vivienda digna garantizada.
  4. No a la precariedad laboral, distribución de la riqueza.
  5. Transparencia, democracia de red y libertades ciudadanas.

Aprovechando el trabajo que han desarrollado los diferentes agentes sociales, trabajaremos con diversos colectivos alrededor de los cinco ejes para ejecutar campañas y acciones concretas. La participación está abierta a todos los colectivos y la ciudadanía sensibilizada que hayan desarrollado propuestas en este sentido porque hoy más que nunca es necesario una respuesta constructiva para frenar la dictadura financiera y reinventar la democracia.

Posted in ComunicadosComments (2)

Si se puede. Propuestas 12M15M, comunicado DRY BCN

Ayer 12 de mayo, una multitud se manifestó en centenares de ciudades del Estado español y otros países del mundo. Solo en Barcelona, 200.000 personas recuperamos las calles y la Plaça de Catalunya. El nuevo movimiento global cuya emergencia protagonizamos en 2011 sigue creciendo; el proceso colectivo de cambio social que ahora cumple un año sigue su camino. El #15M ya ha demostrado ser el instrumento con el que reapropiarnos del presente y construir un futuro para las personas y no para los bancos. El trayecto de un #rescateciudadano.

Durante este año, banqueros y políticos han simulado no entender el mensaje. Su única respuesta ha sido la represión tanto para el movimiento como para la ciudadanía. Después de la demostración de democracia de ayer, los desalojos de Madrid, Palma, Valencia, Mallorca y Cádiz son la demostración de que un gobierno que reprime a ciudadanos pacíficos no es legítimo para gobernar. Reunirse no sólo es un derecho fundamental: es también bueno y legítimo. Por eso, os convocamos a recuperar todas las plazas hoy domingo 13 de mayo a las 17h. En solidaridad. Si tocan a una sola persona, nos tocan a todas.

Nos roban por encima de nuestras posibilidades. Rescatan bancos con dinero público mientras deshaucian a las familias endeudadas por los banqueros. Dinamitan el derecho a una sanidad y a una educación universal, mientras privatizan infraestructuras del bienestar levantadas con el esfuerzo de generaciones enteras. Promueven dividirnos y enfrentarnos mediante el sálvese quien pueda, para hacernos olvidar que ésta es una guerra de las élites contra las personas de abajo.

La indignación ha tomado cuerpo. El movimiento ha logrado ser expresión de alegría y esperanza. Con todo, la presión del espolio es acuciante para la vida de millones de personas. Necesitamos ahora ya cambios materiales, logros precisos, victorias concretas.

Hemos de tomar nuestras propias medidas y actuar. Hasta el #15M tendrán lugar acciones en torno a los seis puntos de acción consensuados:

#NiunEuroMas para los bancos, no pagaremos la deuda ílegitima. Mañana lunes empieza en Madrid el señalamiento público a Bankia. http://madrilonia.org/2012/05/senalamiento-a-bankia-este-lunes-14-de-mayo/. El martes 15m en Barcelona saldremos junto a la PAH, auditoria de la deuda, y los iaioflautas a conquistar daciones en pago de forma colectiva y a señalar los principales responsables de la crisis.

Liberemos el parque de vivienda de Bankia. Hemos pagado por ella no una sino tres veces. Nos pertenece al 99%. Sería una forma perfecta de rescatar a las personas y familias que sufren los desahucios.

Hoy empieza un nuevo ciclo,  ven con nosotros a preparar las 6 campañas y acciones.

Si queremos que esto cambie tendremos que hacerlo nosotros mismos, por nuestros propios medios’.

Posted in Comunicados, NoticiasComments (2)

Agenda de actividades 13M y 14M

Aquí tenéis la agenda con charlas, actividades y preparación de las acciones para el 15M. Todas las actividades tendrán lugar en plaza Catalunya los días 13 y 14 de mayo.

Posted in Comunicados, Convocatorias, NoticiasComments (1)

[Aclaración] Asociación con nuestro nombre, #EsoNoEsDRY

Ante la noticia publicada por la agencia EFE, de la que se han hecho eco varios medios de comunicación, en la que se recoge que “algunos impulsores del 15M, constituyen la Asociación Democracia Real Ya”, queremos comunicar que esta decisión no representa más que a una reducida minoría y que Democracia real Ya! no la asume como colectivo.

Algunos activistas de DRY han decidido de forma ilegítima y unilateral constituirse como asociación tras una asamblea celebrada en Madrid los días 21 y 22 de abril. La convocatoria de esa asamblea pasó por los mecanismos democráticos que rigen nuestro funcionamiento interno y fue rechazada al no contar con el quorum mínimo exigido de los miembros de la plataforma, siendo por tanto sus conclusiones, ni vinculantes ni legítimas.

Por este motivo la constitución de esta asociación no es una decisión tomada por nuestro colectivo. Es más, en la II Asamblea estatal, celebrada en Málaga el pasado verano, se consensuó que DRY no adoptaría ninguna forma jurídica ya que contradecía nuestros principios. Decisisón que fue ratificada posteriormente por todo el colectivo.

Al margen de estos lamentables hechos, queremos comunicar que seguimos creyendo en una red de personas coordinadas y sin líderes, que no puede ni debe confinarse a los limitados marcos del derecho. Es por ello que DRY seguirá funcionando como una red horizontal sin respresentantes, rigiéndose por los principios originales con los que se articuló hace más de un año.

Nadie puede apropiarse de DRY por que DRY no es una marca, DRY es una idea, unos valores, unos principios y unos objetivos políticos y sociales en base a la radicalidad democrática: una democracia participativa, horizontal y directa, por una democracia real ya!

Como hace un año, el #12M15M DRY estaremos en las calles!

Posted in ComunicadosComments (3)

Comunicado a Democracia Real Ya

COMUNICADO A DEMOCRACIA REAL YA

Democracia real YA! como plataforma se encuentra en una encrucijada que debe de resolverse a través de una asamblea estatal que cuente con la mayor participación posible de activistas, con el mayor grado posible de consenso, que resuelva los diferentes conflictos internos y que marque el futuro del colectivo, de forma que sus propuestas sean validadas por parte del conjunto de los activistas.

La necesidad de la realización de una asamblea estatal es por tanto una realidad, demandada por un gran número de activistas de DRY. La situación social crítica y la delicada situación del activismo requieren una preparación profunda y seria de la asamblea, y que esté basada en la máxima transparencia y horizontalidad.

Recientemente, se lanzó una propuesta de realizar una asamblea durante el fin de semana del 21 y 22 de abril, con carácter vinculante. La propuesta fue sometida a votación en el Ágora, no cumpliendo con los requisitos acordados para su aprobación. La legitimidad se basa en reglas de juego comunes y las vigentes ahora mismo en DRY son las que derivan de los acuerdos de Málaga, que estipulan que las decisiones que afectan a todo el colectivo se han de consensuar por un 75% de votos de los activistas, cifra que no se ha alcanzado. Por otro lado, la Plataforma Facebook en la cual se ha promocionado estas fechas para la III Asamblea estatal es un órgano cerrado, meramente informativo, sin capacidad de toma de decisiones. En definitiva, un canal no legitimado para convocar la III asamblea.

Organizar una asamblea estatal no es un asunto trivial que se solucione en dos semanas. Tiene que existir un trabajo previo de preparación, de planteamiento de diferentes propuestas y ponencias, así como una labor de logística para facilitar la asistencia tanto presencial como virtual.

Evidentemente, cualquier grupo de activistas de DRY pueden reunirse cuando quieran y como quieran para debatir y generar propuestas. Pero por lo expuesto, la reunión del 21-22 de abril en Madrid no puede tener consideración de Asamblea Estatal de Democracia real YA!, no está legitimada como tal, ni puede tener carácter vinculante en absoluto y cualquier acuerdo que salga de la misma no puede tener carácter vinculante para todo Dry, sino que tendrá que ser sometido a votación por los mecanismos democráticos que tenemos en el Agora.

Democracia Real Ja Barcelona

Posted in ComunicadosComments (11)

29 de Marzo. Respuesta masiva de la sociedad.


La ciudadanía seguimos diciendo que NO, ¿nos escuchan?
29 DE MARZO, RESPUESTA MASIVA DE LA SOCIEDAD
El 29 de marzo vivimos, de nuevo, una respuesta masiva por parte de la sociedad contra un programa que pretende destruir nuestros derechos y eliminar de raíz la posibilidad de una sociedad democrática que gobierne la economía y garantice las condiciones para una vida digna.
La violencia estructural y sistemática que nuestros gobiernos toleran y aplican cada día para proteger los beneficios del 1%: desahucios que dejan a las familias sin hogares y endeudadas, una sanidad que ya no garantiza el derecho a la vida, una educación que se hace inaccesible … se ha convertido en insoportable, y la sociedad ha entendido que la única salida es tomar las calles y reivindicar unos derechos y una riqueza que nos pertenecen.
Ante la avalancha de personas que entendieron la jornada de huelga general como espacio de protesta, nuestros gobernantes no sólo continúan mudos ante unas reivindicaciones que ya nadie puede negar como justas, sino que aprovechan para criminalizar el movimiento reivindicativo y aplicar una represión violenta e indiscriminada.
Así, el uso de gas lacrimógenos por primera vez en doce años, la represión violenta a porrazos contra piquetes o las balas de goma que dejaron a un chico sin ojo, entre otras acciones violentas por parte del cuerpo policial, son muestras claras de la falta de voluntad para establecer un diálogo y del ataque a nuestras vidas que se afirma tan a los presupuestos y las leyes como físicamente cuando nos manifestamos.
Creemos que en ningún caso las expresiones de rabia, como la quema de contenedores, pueden equipararse a, ni justifican, la violencia física contra las personas ejercida por los Mossos d’Esquadra en las órdenes de una clase política que nos gobierna a golpes de porra y gases. Condenamos también las detenciones con prisión preventiva de dos estudiantes que participaron en la huelga de forma legítima y que, retenidos sin motivos válidos, sufren una represión política.
Las declaraciones que provienen del Ministerio de Interior y del Consejero de Interior Felip Puig ponen en evidencia que se busca la manera de cortar de raíz la expresión masiva de la sociedad hacia el expolio constante de nuestra riqueza y nuestras vidas ampliando la noción de terrorismo para poder criminalizar la crítica política e incluso planteando una revisión de un derecho tan fundamental como es el derecho de reunión. Quieren robarnos también el derecho a expresarnos libremente?
Pretenden disgregar generando miedo. Conspiran para romper el proceso de movilización social en marcha por una democracia real. Intensifican la arbitrariedad del monopolio del uso de la fuerza y ​​restringen las libertades en el marco legal. Pero ya no nos los creemos.
El proceso no se detiene y tenemos la fuerza necesaria para seguir adelante y recuperar derechos perdidos y conquistar otros nuevos. Tanto es así que declaramos que el nuestro no es el camino de la violencia. Continuaremos manifestándonos como siempre hemos hecho: sin símbolos o banderas, pacíficamente, y tratando de canalizar las muestras de rabia no contra objetos o personas sino por la vía de la desobediencia civil. Es un proceso irreversible: somos mayoría, tenemos razón cuando exigimos unos derechos y una riqueza que son nuestros. Y hemos perdido el miedo porque caminamos juntas. No nos dejaremos robar ni la vida ni la democracia.
El 12 de mayo y el 15 de mayo en ciudades de todo el mundo afectadas por la dictadura financiera y el expolio del 1% de la población, la sociedad volverá masivamente a tomar las calles, y lo hará condenando la violencia estructural que nos aboca a la miseria. Nuestras armas son nuestras reivindicaciones, los derechos que queremos conquistar: el poder pretende ignorarlas, pero eso no nos detendrá. Sabemos que unidos somos imparables y que prevalecerán a pesar de todos los obstáculos que se interpongan en nuestro camino.

AHORA MÁS QUE NUNCA, SEGUIMOS EXIGIENDO UNA
¡DEMOCRACIA REAL YA!

Barcelona a 5 de abril de 2012

Posted in ComunicadosComentarios desactivados


Lo sentimos los eventos no están disponibles. Prueba más tarde
PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC90aGVtZXMvbmV3c3ByZXNzL2ltYWdlcy9hZC0xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzI8L3N0cm9uZz4gLSBodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC90aGVtZXMvbmV3c3ByZXNzL2ltYWdlcy9hZC0xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzM8L3N0cm9uZz4gLSBodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC90aGVtZXMvbmV3c3ByZXNzL2ltYWdlcy9hZC0xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC90aGVtZXMvbmV3c3ByZXNzL2ltYWdlcy9hZC0xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzU8L3N0cm9uZz4gLSBodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC90aGVtZXMvbmV3c3ByZXNzL2ltYWdlcy9hZC0xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzY8L3N0cm9uZz4gLSBodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC90aGVtZXMvbmV3c3ByZXNzL2ltYWdlcy9hZC0xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX21wdV9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfbXB1X2Rpc2FibGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYWRfbXB1X2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy8zMDB4MjUwYS5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9tcHVfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfcGFnZTwvc3Ryb25nPiAtIFNlbGVjdCBhIHBhZ2U6PC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2Fkc2Vuc2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfZGlzYWJsZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvZmlsZXMvMjAxMi8wMi9jYWJlY2VyYS1ibG9nLW5vLXNvbS1tZXJjYW5jaWEuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL2V4YW1wbGUuY29tL2Fkcy9hZDFfZGVzdGluYXRpb24uaHRtbDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8yPC9zdHJvbmc+IC0gaHR0cDovL2V4YW1wbGUuY29tL2Fkcy9hZDFfZGVzdGluYXRpb24uaHRtbDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8zPC9zdHJvbmc+IC0gaHR0cDovL2V4YW1wbGUuY29tL2Fkcy9hZDFfZGVzdGluYXRpb24uaHRtbDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF80PC9zdHJvbmc+IC0gaHR0cDovL2V4YW1wbGUuY29tL2Fkcy9hZDFfZGVzdGluYXRpb24uaHRtbDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF81PC9zdHJvbmc+IC0gaHR0cDovL2V4YW1wbGUuY29tL2Fkcy9hZDFfZGVzdGluYXRpb24uaHRtbDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF82PC9zdHJvbmc+IC0gaHR0cDovL2V4YW1wbGUuY29tL2Fkcy9hZDFfZGVzdGluYXRpb24uaHRtbDwvbGk+PGxpPjxzdHJvbmc+d29vX2FsdF9zdHlsZXNoZWV0PC9zdHJvbmc+IC0gZ3JlZW4uY3NzPC9saT48bGk+PHN0cm9uZz53b29fYXJjaGl2ZXM8L3N0cm9uZz4gLSBTZWxlY3QgYSBwYWdlOjwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dGhvcjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYXV0b19pbWc8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9jc3M8L3N0cm9uZz4gLSAvKiAgDQpUaGVtZSBOYW1lOiBHYXpldHRlIEVkaXRpb24NClRoZW1lIFVSSTogaHR0cDovL3d3dy53b290aGVtZXMuY29tLw0KRGVzY3JpcHRpb246IEdhemV0dGUgRWRpdGlvbiBieSBXb29UaGVtZXMNClZlcnNpb246IDIuMC4yDQpBdXRob3I6IFdvb1RoZW1lcw0KQXV0aG9yIFVSSTogaHR0cDovL3d3dy53b290aGVtZXMuY29tLw0KKi8NCg0KLyo9PT09PT09PT0gU0VUVVAgPT09PT09PT09Ki8NCg0KKnsNCglib3JkZXI6IDA7DQoJbWFyZ2luOiAwOw0KCXBhZGRpbmc6IDA7DQp9DQpib2R5ew0KCWNvbG9yOiAjNjY2NjY2Ow0KCWJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQoJZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQoJZm9udC1zaXplOiAxNHB4Ow0KCWxpbmUtaGVpZ2h0OiAxOXB4Ow0KCWJhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHA6Ly9iYXJjZWxvbmEuZGVtb2NyYWNpYXJlYWx5YS5lcy9maWxlcy8yMDEyLzA0L2JhY2tncm91bmQuZ2lmKTsgDQoJYmFja2dyb3VuZC1hdHRhY2htZW50OmZpeGVkOyANCgliYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbSBjZW50ZXI7IA0KCWJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsNCn0NCmF7DQoJY29sb3I6ICMwMDAwMDA7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KYTpob3ZlcnsNCgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCn0NCmlucHV0LHNlbGVjdCx0ZXh0YXJlYXsNCglib3JkZXI6ICNkZGRkZGQgMXB4IHNvbGlkOw0KCWZvbnQtc2l6ZTogMTRweDsNCglwYWRkaW5nOiA1cHg7DQp9DQpzZWxlY3R7DQoJcGFkZGluZzogMDsNCn0NCmxpew0KCWxpc3Qtc3R5bGU6IG5vbmU7DQp9DQoNCi8qPT09PT09PT09IExBWU9VVCA9PT09PT09PT0qLw0KDQojcGFnZXsNCgl3aWR0aDogOTYwcHg7DQoJYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsNCgltYXJnaW46MTVweCBhdXRvOw0KCWJvcmRlcjogMXB4IHNvbGlkICNDQ0NDQ0M7DQp9DQovKi0tLSBNYWluIENvbHVtbnMgLS0tKi8NCiNjb2x1bW5zew0KCXBhZGRpbmc6MTVweCAxNXB4IDI1cHg7DQoJYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsNCgltYXJnaW46IDBweDsNCn0NCi5jb2wxew0KCWZsb2F0OiBsZWZ0Ow0KCXdpZHRoOiA1OTVweDsNCglwYWRkaW5nLXJpZ2h0OjE1cHg7DQp9DQouY29sMnsNCglmbG9hdDogbGVmdDsNCgl3aWR0aDogMzIwcHg7DQp9DQovKi0tLSBTdWIgQ29sdW1ucyAtLS0qLw0KLnN1YmNvbHsNCgl3aWR0aDogMTUwcHg7DQp9DQouc3ViY29sIGgyew0KCWZvbnQtc2l6ZTogMThweDsNCglwYWRkaW5nOiAwIDAgMTBweDsNCgljb2xvcjogI0ZGRkZGRjsNCn0NCg0KLyo9PT09PT09PT0gSEVBREVSID09PT09PT09PSovDQoNCi8qLSBQYWdlIE5hdmlnYXRpb24gLSovDQojbmF2ew0KCWhlaWdodDogMzBweDsNCglwYWRkaW5nOiAycHggMHB4ICFpbXBvcnRhbnQ7DQoJYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsNCgltYXJnaW46MTVweCAxNXB4IDBweCAhaW1wb3J0YW50Ow0KCWJvcmRlci10b3A6MXB4IHNvbGlkICNkZGQ7DQoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDsNCgl3aWR0aDogOTMwcHggIWltcG9ydGFudDsNCn0NCiNuYXYtbGVmdCB7DQoJZmxvYXQ6bGVmdDsNCglkaXNwbGF5OmlubGluZTsNCgl3aWR0aDo2MDBweDsNCgl9DQojbmF2LXJpZ2h0IHsNCglmbG9hdDpyaWdodDsNCglkaXNwbGF5OmlubGluZTsNCgl3aWR0aDozMzBweDsNCgltYXJnaW46MHB4ICFpbXBvcnRhbnQ7DQoJcGFkZGluZzowcHggIWltcG9ydGFudDsNCgl9DQoNCi8qLSBEcm9wZG93bnMtKi8NCg0KI25hdjEsICNuYXYxIHVsew0KCXBhZGRpbmc6IDA7DQoJZmxvYXQ6bGVmdDsNCglsaXN0LXN0eWxlOiBub25lOw0KfQ0KI25hdjEgew0KCXBhZGRpbmc6IDA7DQoJZm9udC1zaXplOjE0cHg7DQoJZmxvYXQ6bGVmdDsNCn0NCiNuYXYxIGEgew0KCWRpc3BsYXk6IGJsb2NrOw0KCXBhZGRpbmctbGVmdDoxNXB4Ow0KCXBhZGRpbmctcmlnaHQ6MTVweDsNCn0NCiNuYXYxIGxpIHsNCglmbG9hdDogbGVmdDsNCglsaW5lLWhlaWdodDozMHB4Ow0KCWZvbnQtd2VpZ2h0OmJvbGQ7DQoJZm9udC1zaXplOjEycHg7CQ0KCXRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsNCn0NCiNuYXYxIGxpIGE6aG92ZXIgew0KCWJhY2tncm91bmQ6IG5vbmU7DQoJdGV4dC1kZWNvcmF0aW9uOm5vbmU7DQoJY29sb3I6I2ZmZmZmZjsNCn0NCiNuYXYxIGxpIHVsIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJd2lkdGg6IDE1ZW07DQoJbGVmdDogLTk5OWVtOw0KCXBhZGRpbmctdG9wOjFweDsNCn0NCiNuYXYxIGxpOmhvdmVyIHVsLCAjbmF2MSBsaS5zZmhvdmVyIHVsIHsNCglsZWZ0OiBhdXRvOw0KfQ0KI25hdjEgbGkgdWwgbGkgew0KICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7DQoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2RlZGJkMTsJDQoJYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZWRiZDE7CQ0KCWJvcmRlci1yaWdodDoxcHggc29saWQgI2RlZGJkMTsJCQkNCglsaW5lLWhlaWdodDoyOHB4OwkNCgl3aWR0aDoxNWVtOw0KfQ0KDQojbmF2MSBsaTpob3ZlciwgI25hdjEgbGkuaG92ZXIgew0KICAgIHBvc2l0aW9uOiBzdGF0aWM7DQp9DQojbmF2MSBsaSB1bCB1bCB7DQoJbWFyZ2luOiAtMjlweCAwIDAgMTVlbTsNCglib3JkZXItdG9wOjFweCBzb2xpZCAjZGVkYmQxOwkNCn0NCg0KI25hdjEgbGk6aG92ZXIgdWwgdWwsICNuYXYxIGxpLnNmaG92ZXIgdWwgdWwgew0KCWxlZnQ6IC05OTllbTsNCn0NCiNuYXYxIGxpOmhvdmVyIHVsLCAjbmF2MSBsaSBsaTpob3ZlciB1bCwgI25hdjEgbGkuc2Zob3ZlciB1bCwgI25hdjEgbGkgbGkuc2Zob3ZlciB1bCB7DQoJbGVmdDogYXV0bzsNCn0NCiNuYXYxIGxpOmhvdmVyIHVsIHVsLCAjbmF2MSBsaTpob3ZlciB1bCB1bCB1bCwgI25hdjEgbGkuc2Zob3ZlciB1bCB1bCwgI25hdjEgbGkuc2Zob3ZlciB1bCB1bCB1bCB7DQoJbGVmdDogLTk5OWVtOw0KfQ0KI25hdjEgbGk6aG92ZXIgdWwsICNuYXYxIGxpIGxpOmhvdmVyIHVsLCAjbmF2MSBsaSBsaSBsaTpob3ZlciB1bCwgI25hdjEgbGkuc2Zob3ZlciB1bCwgI25hdjEgbGkgbGkuc2Zob3ZlciB1bCwgI25hdjEgbGkgbGkgbGkuc2Zob3ZlciB1bCB7DQoJbGVmdDogYXV0bzsNCn0gDQoNCg0KLyotIENhdGVnb3J5IE5hdmlnYXRpb24gLSovDQoNCi8qLSBOYXYgLyBEcm9wZG93bnMtKi8NCiNuYXYyIHsNCgltYXJnaW46MCAwIDE1cHggMTVweCAhaW1wb3J0YW50Ow0KCW1hcmdpbjowIDAgN3B4IDdweDsJIA0KfQ0KDQojbmF2MiwgI25hdjIgdWx7DQoJcGFkZGluZzogMDsNCglmbG9hdDpsZWZ0Ow0KCWxpc3Qtc3R5bGU6IG5vbmU7DQp9DQojbmF2MiB7DQoJcGFkZGluZzogMDsNCglmb250LXNpemU6MTRweDsNCglmbG9hdDpsZWZ0Ow0KCXdpZHRoOjkzMHB4Ow0KCWJvcmRlci10b3A6IDFweCBzb2xpZCAjREREREREOw0KfQ0KI25hdjIgYSB7DQoJZGlzcGxheTogYmxvY2s7DQoJcGFkZGluZy1sZWZ0OjE1cHg7DQoJcGFkZGluZy1yaWdodDoxNXB4Ow0KCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICNEREREREQ7DQp9DQojbmF2MiBsaSB7DQoJZmxvYXQ6IGxlZnQ7DQoJbGluZS1oZWlnaHQ6MzBweDsNCn0NCiNuYXYyIGxpIGE6aG92ZXIgew0KCWJhY2tncm91bmQ6IG5vbmU7DQogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KI25hdjIgbGkgdWwgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl3aWR0aDogMTVlbTsNCglsZWZ0OiAtOTk5ZW07DQoJei1pbmRleDogOTk5OTk7DQp9DQojbmF2MiBsaTpob3ZlciB1bCwgI25hdjIgbGkuc2Zob3ZlciB1bCB7DQoJbGVmdDogYXV0bzsNCgl6LWluZGV4OjEwMDA7CQ0KfQ0KI25hdjIgbGkgdWwgbGkgew0KICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7DQoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2RlZGJkMTsJDQoJYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZWRiZDE7CQ0KCWJvcmRlci1yaWdodDoxcHggc29saWQgI2RlZGJkMTsJCQkNCglsaW5lLWhlaWdodDoyOHB4OwkNCgl3aWR0aDoxNWVtOw0KfQ0KI25hdjIgbGk6aG92ZXIsICNuYXYyIGxpLmhvdmVyIHsNCiAgICBwb3NpdGlvbjogc3RhdGljOw0KfQ0KI25hdjIgbGkgdWwgdWwgew0KCW1hcmdpbjogLTI5cHggMCAwIDE1ZW07DQp9DQojbmF2MiBsaTpob3ZlciB1bCB1bCwgI25hdjIgbGkuc2Zob3ZlciB1bCB1bCB7DQoJbGVmdDogLTk5OWVtOw0KfQ0KI25hdjIgbGk6aG92ZXIgdWwsICNuYXYyIGxpIGxpOmhvdmVyIHVsLCAjbmF2MiBsaS5zZmhvdmVyIHVsLCAjbmF2MiBsaSBsaS5zZmhvdmVyIHVsIHsNCglsZWZ0OiBhdXRvOw0KfQ0KI25hdjIgbGk6aG92ZXIgdWwgdWwsICNuYXYyIGxpOmhvdmVyIHVsIHVsIHVsLCAjbmF2MiBsaS5zZmhvdmVyIHVsIHVsLCAjbmF2MiBsaS5zZmhvdmVyIHVsIHVsIHVsIHsNCglsZWZ0OiAtOTk5ZW07DQp9DQojbmF2MiBsaTpob3ZlciB1bCwgI25hdjIgbGkgbGk6aG92ZXIgdWwsICNuYXYyIGxpIGxpIGxpOmhvdmVyIHVsLCAjbmF2MiBsaS5zZmhvdmVyIHVsLCAjbmF2MiBsaSBsaS5zZmhvdmVyIHVsLCAjbmF2MiBsaSBsaSBsaS5zZmhvdmVyIHVsIHsNCglsZWZ0OiBhdXRvOw0KfSANCg0KDQovKi0gU2VhcmNoIC0qLw0KI3NlYXJjaHsNCglmbG9hdDogcmlnaHQ7DQoJaGVpZ2h0OiAyN3B4Ow0KCXdpZHRoOjMxMHB4Ow0KCW1hcmdpbjogM3B4IDBweCAwcHggIWltcG9ydGFudDsNCglwYWRkaW5nOjBweCAhaW1wb3J0YW50Ow0KfQ0KKiBodG1sICNzZWFyY2h7DQoJbWFyZ2luLXJpZ2h0OiA4cHg7DQp9DQojc2VhcmNoIGlucHV0ew0KCWJhY2tncm91bmQ6ICNmZmZmZmY7DQoJYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDsNCgljb2xvcjogIzAwMDAwMDsNCglmbG9hdDogbGVmdDsNCglmb250LXNpemU6IDExcHg7DQoJd2lkdGg6MjIzcHg7DQoJbWFyZ2luOjFweCAwcHggMHB4Ow0KCXBhZGRpbmc6IDNweCA0cHggNHB4Ow0KfQ0KI3NlYXJjaCAuYnRuew0KCXBhZGRpbmc6IDA7DQoJaGVpZ2h0OjIycHg7DQoJd2lkdGg6IGF1dG87DQoJbWFyZ2luOjFweCAwcHggMHB4IDVweCAhaW1wb3J0YW50Ow0KCWJvcmRlcjpub25lOw0KCXdpZHRoOjY5cHg7DQp9DQovKi0gSGVhZGVyIC0qLw0KI2hlYWRlcnsNCgloZWlnaHQ6IDI2OHB4Ow0KCWJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQoJbWFyZ2luOiAwIDE1cHg7DQoJcGFkZGluZzogMHB4Ow0KfQ0KLyotIExvZ28gLSovDQojaGVhZGVyIGgxew0KCWZsb2F0OiBsZWZ0Ow0KCWRpc3BsYXk6aW5saW5lOw0KCWxpbmUtaGVpZ2h0OiAxMDBweDsNCglmb250LXNpemU6IDI0cHg7DQp9DQojaGVhZGVyIGgxIGF7DQoJZGlzcGxheTogYmxvY2s7DQoJaGVpZ2h0OiA5M3B4Ow0KCXdpZHRoOiAzODlweDsNCgljb2xvcjogIzAwMDAwMDsNCglmb250LXNpemU6IDI4cHg7DQp9DQoNCi8qLSBUb3AgQmFubmVyIC0qLw0KI3RvcGJhbm5lciB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCXdpZHRoOiA0NjhweDsNCglwYWRkaW5nOjIwcHggMHB4IDBweDsNCn0NCg0KI3RvcGJhbm5lciBpbWd7DQoJZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQovKi0gUlNTIC0qLw0KI3JzcyBhew0KCWNvbG9yOiAjNjY2NjY2Ow0KfQ0KI3JzcyBoMnsNCglwYWRkaW5nOjEwcHg7DQoJZm9udC1zaXplOjE4cHg7DQoJbWFyZ2luLWJvdHRvbToxMHB4Ow0KfQ0KI3JzcyB1bHsNCgltYXJnaW46IDBweDsNCglwYWRkaW5nOiAxMHB4Ow0KCWZsb2F0OmxlZnQ7DQp9DQojcnNzIGxpew0KCW1hcmdpbjogMHB4Ow0KCWJvcmRlcjpub25lICFpbXBvcnRhbnQ7DQoJcGFkZGluZzogNXB4Ow0KfQ0KI3JzcyBpbWd7DQoJZmxvYXQ6IHJpZ2h0Ow0KCXBhZGRpbmctbGVmdDogMTBweDsNCgltYXJnaW4tdG9wOiA1cHg7DQp9DQoNCi8qPT09PT09PT09IEZFQVRVUkVEIFBPU1RTIChGUk9OVC1QQUdFKSA9PT09PT09PT0qLw0KDQovKiBTZWUgc2xpZGVzaG93LmNzcyAqLw0KDQovKj09PT09PT09PSBGRUFUVVJFRCBWSURFT1MgKEZST05ULVBBR0UpID09PT09PT09PSovDQoNCiN2aWRlby1mcmFtZSB7DQoJYmFja2dyb3VuZDojZWVlOw0KCWZsb2F0OmxlZnQ7DQoJd2lkdGg6NTgzcHg7DQoJaGVpZ2h0OmF1dG87DQoJbWFyZ2luOjBweDsNCglwYWRkaW5nOiA1cHg7DQoJYm9yZGVyOiAxcHggc29saWQgI2RkZDsNCgl9DQoudmlkZW8tbGVmdCB7DQoJZmxvYXQ6bGVmdDsNCgl3aWR0aDoyODVweCAhaW1wb3J0YW50Ow0KCWRpc3BsYXk6aW5saW5lOw0KCWJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjsNCgl9DQoudmlkZW8tbGVmdCBwIHsNCglwYWRkaW5nOjBweCAhaW1wb3J0YW50Ow0KCW1hcmdpbjowcHggIWltcG9ydGFudDsNCgl9DQoudmlkZW8tbGVmdCBoMiB7DQoJZGlzcGxheTpub25lOw0KCX0NCi52aWRlby1yaWdodCB7DQoJZmxvYXQ6cmlnaHQ7DQoJd2lkdGg6MjczcHg7DQoJbWluLWhlaWdodDoyMTRweDsNCglkaXNwbGF5OmlubGluZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7DQoJcGFkZGluZzogMTBweDsNCgl9DQoudmlkZW8tcmlnaHQgaDJ7DQoJY29sb3I6ICMwMDAwMDA7DQoJZm9udC1zaXplOjExcHg7DQoJbGluZS1oZWlnaHQ6bm9ybWFsOw0KCWZvbnQtd2VpZ2h0OmJvbGQgIWltcG9ydGFudDsNCgltYXJnaW46MCAhaW1wb3J0YW50Ow0KCXBhZGRpbmctdG9wOiAwcHg7DQoJcGFkZGluZy1yaWdodDogMHB4Ow0KCXBhZGRpbmctYm90dG9tOiA1cHg7DQoJcGFkZGluZy1sZWZ0OiAwcHg7DQoJfQ0KLnZpZGVvLXJpZ2h0IHB7DQoJY29sb3I6ICM2NjY7DQoJZm9udC1zaXplOjExcHg7DQoJbGluZS1oZWlnaHQ6MTJweDsNCgltYXJnaW4tdG9wOiAxMHB4Ow0KCW1hcmdpbi1yaWdodDogMDsNCgltYXJnaW4tYm90dG9tOiAwcHg7DQoJbWFyZ2luLWxlZnQ6IDA7DQoJcGFkZGluZy10b3A6IDA7DQoJcGFkZGluZy1yaWdodDogMDsNCglwYWRkaW5nLWJvdHRvbTogMjBweDsNCglwYWRkaW5nLWxlZnQ6IDBweDsNCgl9DQoudmlkZW8tcmlnaHQgaDN7DQoJZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQoJZm9udC1zaXplOjE4cHg7DQoJbGluZS1oZWlnaHQ6MjBweDsNCglwYWRkaW5nLWJvdHRvbTogMHB4Ow0KCX0NCi52aWRlby1yaWdodCAubW9vdGFic190aXRsZSB7DQoJYm9yZGVyLXRvcDoxcHggc29saWQgI0ZGRjsNCglsaXN0LXN0eWxlOm5vbmU7DQoJbWFyZ2luOjBweDsNCglwYWRkaW5nOjBweDsNCgl9DQoudmlkZW8tcmlnaHQgLm1vb3RhYnNfdGl0bGUgbGkgew0KCWNvbG9yOiMwMDA7DQoJZm9udC13ZWlnaHQ6bm9ybWFsOw0KCWZvbnQtc2l6ZToxMXB4Ow0KCXRleHQtZGVjb3JhdGlvbjpub25lOw0KCWRpc3BsYXk6YmxvY2s7DQoJcGFkZGluZzoxMHB4Ow0KCWJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7DQoJYmFja2dyb3VuZDojZjdmN2Y3Ow0KCWxpbmUtaGVpZ2h0OjEwcHg7DQoJY3Vyc29yOiBwb2ludGVyOw0KCW1hcmdpbi10b3A6IDBweDsNCgltYXJnaW4tcmlnaHQ6IDBweDsNCgltYXJnaW4tYm90dG9tOiA1cHg7DQoJbWFyZ2luLWxlZnQ6IDBweDsNCgl9DQoudmlkZW8tcmlnaHQgLm1vb3RhYnNfdGl0bGUgbGk6aG92ZXIsIC52aWRlby1yaWdodCAubW9vdGFic190aXRsZSBsaS5hY3RpdmUgew0KCWJhY2tncm91bmQ6I2RkZGRkZCB1cmwoaW1hZ2VzL2ljby13YXRjaC5naWYpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQgIWltcG9ydGFudDsNCgl9DQoNCi8qPT09PT09PT09IEJMT0cgUE9TVCBTVFlMSU5HID09PT09PT09PSovDQoNCi8qPT09IFNtYWxsIEJveCBQb3N0ID09PSovDQoucG9zdHsNCgltYXJnaW46IDA7DQp9DQoucG9zdCBoMnsNCglmb250LXNpemU6IDE4cHg7DQoJcGFkZGluZzogMCAwIDVweDsNCn0NCi5wb3N0IGgzew0KCWZvbnQtc2l6ZTogMTRweDsNCn0NCi5wb3N0IGgzIGF7DQoJY29sb3I6ICMwMDAwMDA7DQp9DQoucG9zdCBwew0KCXBhZGRpbmc6IDAgMCAxNXB4Ow0KCWxpbmUtaGVpZ2h0OiAxOXB4Ow0KfQ0KDQovKi0gQm94IC0qLw0KLmJveHsNCgljbGVhcjogYm90aDsNCgloZWlnaHQ6IDElOw0KCXBhZGRpbmc6IDA7DQoJbWFyZ2luOiAwOw0KfQ0KLmJveCAucG9zdHsNCgl3aWR0aDogMjg4cHg7DQoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCglib3JkZXI6MXB4IHNvbGlkICNkZGQ7DQp9DQouYm94IC5wb3N0IGgyIGF7DQoJY29sb3I6IzMzMzMzMzsNCn0NCi5ib3ggLnBvc3QgaDJ7DQoJZm9udC1zaXplOiAxOHB4Ow0KCXBhZGRpbmc6IDEwcHg7DQoJbGluZS1oZWlnaHQ6IDIwcHg7DQp9DQouYm94IC5wb3N0IHB7DQoJZm9udC1zaXplOiAxNHB4Ow0KCXBhZGRpbmc6IDVweCAxMHB4Ow0KfQ0KDQouYm94IC5wb3N0IGltZ3sNCglib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkOw0KCWZsb2F0OiByaWdodDsNCglwYWRkaW5nOiA1cHg7DQoJYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsNCgltYXJnaW46IDEwcHg7DQp9DQoNCi8qPT09IFRyYWRpdGlvbmFsIEJsb2cgUG9zdCA9PT0qLw0KLnBvc3QtYWx0ew0KCW1hcmdpbjogMCAwIDE1cHggMDsNCgkNCn0NCi5wb3N0LWFsdCBoMnsNCglmb250LXNpemU6IDIycHg7DQoJcGFkZGluZzogMDsNCgljb2xvcjojMDAwMDAwOw0KCWxpbmUtaGVpZ2h0OiAyNnB4Ow0KfQ0KLnBvc3QtYWx0IGgzew0KCWZvbnQtc2l6ZTogMTRweDsNCglwYWRkaW5nLWJvdHRvbTogNXB4Ow0KCWxpbmUtaGVpZ2h0OiAxOHB4Ow0KCWNvbG9yOiAjMDAwMDAwOw0KfQ0KLnBvc3QtYWx0IGg0ew0KCWZvbnQtc2l6ZTogMTRweDsNCglwYWRkaW5nLWJvdHRvbTogNXB4Ow0KCWxpbmUtaGVpZ2h0OiAxNnB4Ow0KfQ0KLnBvc3QtYWx0IGgzIGEsIC5wb3N0LWFsdCBoMiBhew0KCWNvbG9yOiAjMDAwMDAwOw0KfQ0KLnBvc3QtYWx0IHB7DQoJcGFkZGluZzogMCAwIDE1cHg7DQp9DQoucG9zdC1hbHQgcC5wb3N0X2RhdGV7DQoJY29sb3I6ICM5OTk5OTk7DQoJcGFkZGluZzogNXB4IDBweCAxMHB4Ow0KCWZvbnQtc2l6ZTogMTFweDsNCglmb250LXdlaWdodDogbm9ybWFsOw0KfQ0KcC5wb3N0ZWR7DQoJZm9udC1zaXplOiAxNHB4Ow0KCWNvbG9yOiAjNjY2NjY2Ow0KCWZvbnQtc3R5bGU6IG5vcm1hbDsNCglmb250LXdlaWdodDogbm9ybWFsOw0KCWxpbmUtaGVpZ2h0OiAxOHB4Ow0KCWJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7DQoJcGFkZGluZzogNXB4Ow0KCW1hcmdpbi10b3A6IDEwcHg7DQoJdGV4dC1hbGlnbjogcmlnaHQ7DQoJYm9yZGVyLXRvcDoxcHggc29saWQgI2RkZDsNCgkvKmJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7Ki8NCgljbGVhcjpib3RoOw0KfQ0KaDMucG9zdGVkIGEgew0KCWNvbG9yOiAjMDAwMDAwOw0KCWZvbnQtc2l6ZToxMXB4Ow0KfQ0KDQouYm94IC5wb3N0IGgzLnBvc3RlZCB7DQoJYm9yZGVyLWJvdHRvbTpub25lOw0KfQ0KDQouYXV0aG9yX2luZm8gew0KCWZsb2F0OiBsZWZ0Ow0KCXdpZHRoOiA1NzNweDsNCglwYWRkaW5nOiAxMHB4Ow0KCWJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7DQoJYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYzsNCgltYXJnaW4tYm90dG9tOiAxNXB4Ow0KfQ0KDQouYXV0aG9yX2luZm8gaDMgew0KCW1hcmdpbi1ib3R0b206IDEwcHg7DQp9DQoNCi5hdXRob3JfcGhvdG8gew0KCWZsb2F0OiByaWdodDsNCgltYXJnaW46ICAwIDAgMCAxMHB4Ow0KCWJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQp9DQoNCi5hdXRob3JfcGhvdG8gaW1nIHsNCglib3JkZXI6IDFweCBzb2xpZCAjNjY2NjY2Ow0KfQ0KDQovKj09PSBCdXR0b25zID09PSovDQouY29udGludWV7DQoJYmFja2dyb3VuZDogdXJsKGltYWdlcy9pY28tYXJyb3cuZ2lmKSBuby1yZXBlYXQgbGVmdDsNCglmb250LXdlaWdodDpib2xkOw0KCXBhZGRpbmctbGVmdDogMTVweDsNCn0NCi5jb21tZW50cyB7DQoJcGFkZGluZy1ib3R0b206MHB4ICFpbXBvcnRhbnQ7DQp9DQouY29tbWVudHMgYXsNCgliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2ljby1jb21tLmdpZikgbm8tcmVwZWF0IGxlZnQ7DQoJY29sb3I6ICMwMDAwMDA7DQoJZm9udC13ZWlnaHQ6bm9ybWFsOw0KCWZvbnQtc2l6ZToxNHB4Ow0KCXBhZGRpbmc6MHB4IDBweCAwcHggMThweDsNCgltYXJnaW4tbGVmdDo1cHg7DQp9DQphLm1vcmV7DQoJYmFja2dyb3VuZDogdXJsKGltYWdlcy9pY28tYXJyb3cyLmdpZikgbm8tcmVwZWF0IHJpZ2h0Ow0KCWNvbG9yOiAjYzBjMGMwOw0KCWZvbnQtc2l6ZTogMS4yZW07DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQoJcGFkZGluZzogMCAyMHB4IDAgMDsNCn0NCi8qPT09IFRyYWRpdGlvbmFsIEJsb2cgUG9zdCA9PT0qLw0KLm5hdmlnYXRpb24gew0KCXdpZHRoOjU5NXB4Ow0KCW1hcmdpbi1ib3R0b206MTVweDsNCglmbG9hdDpsZWZ0Ow0KCXBhZGRpbmc6IDE1cHggMDsNCglib3JkZXItdG9wOiAgMXB4IHNvbGlkICNlZWU7DQoJYm9yZGVyLWJvdHRvbTogIDFweCBzb2xpZCAjZWVlOw0KfQ0KLm5hdmlnYXRpb24gYSB7DQoJY29sb3I6ICMwMDAwMDA7DQoJZm9udC1zaXplOiAxZW07DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQouYWxpZ25sZWZ0ew0KCWRpc3BsYXk6aW5saW5lOw0KCWZsb2F0OmxlZnQ7DQoJbWFyZ2luLXJpZ2h0OjE1cHg7DQp9DQouYWxpZ25yaWdodHsNCglkaXNwbGF5OmlubGluZTsNCglmbG9hdDpyaWdodDsNCgltYXJnaW4tbGVmdDoxNXB4Ow0KfQ0KDQovKiAgICBVc2luZyBcJ2NsYXNzPVwiYWxpZ25yaWdodFwiXCcgb24gYW4gaW1hZ2Ugd2lsbCAod2hvIHdvdWxkXCd2ZQ0KICAgIHRob3VnaHQ/ISkgYWxpZ24gdGhlIGltYWdlIHRvIHRoZSByaWdodC4gQW5kIHVzaW5nIFwnY2xhc3M9XCJjZW50ZXJlZFwnLA0KICAgIHdpbGwgb2YgY291cnNlIGNlbnRlciB0aGUgaW1hZ2UuIFRoaXMgaXMgbXVjaCBiZXR0ZXIgdGhhbiB1c2luZw0KICAgIGFsaWduPVwiY2VudGVyXCIsIGJlaW5nIG11Y2ggbW9yZSBmdXR1cmVwcm9vZiAoYW5kIHZhbGlkKSAqLw0KDQppbWcud3Atc21pbGV5ICB7DQogICAgcGFkZGluZzogMCFpbXBvcnRhbnQ7DQogICAgYm9yZGVyOiBub25lIWltcG9ydGFudDsNCn0NCg0KaW1nLmNlbnRlcmVkIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtYXJnaW4tbGVmdDogYXV0bzsNCiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogICAgfQ0KDQogICAgLyogRW5kIEltYWdlcyAqLw0KDQoNCi8qPT09PT09PT09IEFSQ0hJVkUgU1BFQ0lGSUMgPT09PT09PT09Ki8NCg0KI2FyY2hpdmVib3ggew0KCW1hcmdpbi1ib3R0b206MTVweDsNCglwYWRkaW5nOjEwcHg7DQoJY29sb3I6IzAwMCAhaW1wb3J0YW50Ow0KfQ0KI2FyY2hpdmVib3ggaDQsICNhcmNoaXZlYm94IGgzLCAjYXJjaGl2ZWJveCBoMnsNCgljb2xvcjojMzMzMzMzOw0KZm9udC1zaXplOiAxNHB4Ow0KfQ0KI2FyY2hpdmVib3ggaDQgZW0sICNhcmNoaXZlYm94IGgyIGVtLCAjYXJjaGl2ZWJveCBoMyBlbXsNCglmb250LXdlaWdodDogbm9ybWFsOw0KfQ0KI2FyY2hpdmVib3ggYSwgI2FyY2hpdmVib3ggaDIgew0KCWNvbG9yOiMwMDA7DQp9DQouYXJjaGl2ZWZlZWQgew0KCW1hcmdpbi10b3A6MTBweDsNCglwYWRkaW5nLWJvdHRvbTowcHg7DQp9DQouYXJjaGl2ZWZlZWQgYSB7DQoJYmFja2dyb3VuZDp1cmwoaW1hZ2VzL2ljby1hcmNmZWVkLmdpZikgY2VudGVyIGxlZnQgbm8tcmVwZWF0Ow0KCWhlaWdodDoyMHB4Ow0KCWNvbG9yOiMwMDA7DQoJZm9udC13ZWlnaHQ6Ym9sZDsNCglmb250LXNpemU6IDE0cHg7DQoJZm9udC13ZWlnaHQ6IG5vcm1hbDsNCglwYWRkaW5nOjNweCAwcHggMXB4IDIycHg7DQp9DQouYXJjbGlzdHsNCgl3aWR0aDogMjYwcHg7DQoJbWFyZ2luOjBweCAwcHggMjVweDsNCglwYWRkaW5nOjVweCAwcHggMHB4Ow0KCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOw0KfQ0KLmFyY2xpc3QgaDJ7DQoJY29sb3I6ICMwMDA7DQoJcGFkZGluZzowcHggMHB4IDE1cHg7DQp9DQoNCi5hcmNsaXN0IHVsIHsNCgltYXJnaW4tYm90dG9tOiAxNXB4Ow0KfQ0KDQouYXJjbGlzdCB1bCBsaXsNCgljb2xvcjojYzBjMGMwOw0KCWZvbnQtc2l6ZToxNHB4Ow0KCXBhZGRpbmc6OHB4IDAgOHB4IDEwcHg7DQoJYm9yZGVyLXRvcDoxcHggc29saWQgI2VlZTsNCn0NCg0KLyo9PT09PT09PT0gU0lOR0xFIFBPU1QgU1BFQ0lGSUMgPT09PT09PT09Ki8NCg0KLnNpbmdsZXRhZ3Mgew0KCW1hcmdpbi10b3A6NXB4Ow0KfQ0KLnNpbmdsZXRhZ3MgYSB7IGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtjb2xvcjojMDAwMDAwOyB9DQouZW50cnkgcHsNCgl0ZXh0LWFsaWduOmxlZnQ7DQoJZm9udC1zaXplOjE0cHg7DQoJbGluZS1oZWlnaHQ6MThweDsNCgl9DQouZW50cnkgYmxvY2txdW90ZSB7DQoJcGFkZGluZzogMTBweDsNCglib3JkZXI6IDFweCBzb2xpZCAjZGRkOw0KCWNvbG9yOiMwMDA7DQoJd2lkdGg6ODUlOw0KCWJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7DQoJZm9udC1zdHlsZTogaXRhbGljOw0KCW1hcmdpbjo1cHggYXV0byAxNXB4Ow0KCX0NCi5lbnRyeSBibG9ja3F1b3RlIHAgew0KCWZvbnQtc2l6ZToxNHB4Ow0KCXBhZGRpbmc6IDVweCAwcHg7DQoJbWFyZ2luOiA1cHggMHB4Ow0KCWxpbmUtaGVpZ2h0OiAyMHB4Ow0KCX0NCi5lbnRyeSBpbWcgew0KCXBhZGRpbmc6IDRweDsNCglib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkOw0KCWJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7DQoJfQ0KLndwLWNhcHRpb24gaW1nIHsNCgltYXJnaW4tYm90dG9tOjE1cHg7DQp9DQpwLndwLWNhcHRpb24tdGV4dCB7DQoJdGV4dC1hbGlnbjpjZW50ZXI7DQoJcGFkZGluZzogMCAwIDE1cHggMDsNCgltYXJnaW46MHB4Ow0KCWZvbnQtc2l6ZToxLjJlbTsNCglmb250LXN0eWxlOml0YWxpYzsNCgljb2xvcjojMDAwMDAwOw0KfQ0KLmVudHJ5IHVsLCAuZW50cnkgb2wgew0KCW1hcmdpbi1ib3R0b206MTVweDsNCglmb250LXNpemU6MTRweDsNCglsaW5lLWhlaWdodDoyMHB4Ow0KCX0NCi5lbnRyeSB1bCBsaSB1bCwgLmVudHJ5IG9sIGxpIG9sew0KCW1hcmdpbi1ib3R0b206MHB4Ow0KCXBhZGRpbmctdG9wOjNweDsNCgl9DQouZW50cnkgdWwgbGkgew0KCWxpc3Qtc3R5bGU6Y2lyY2xlIGluc2lkZSAhaW1wb3J0YW50Ow0KCW1hcmdpbi1sZWZ0OjE1cHg7DQoJcGFkZGluZzozcHggMHB4Ow0KCX0NCi5lbnRyeSB1bCBsaSB1bCBsaSB7DQoJbGlzdC1zdHlsZTpkaXNjIGluc2lkZSAhaW1wb3J0YW50Ow0KCX0NCi5lbnRyeSBvbCBsaSB7DQoJbGlzdC1zdHlsZTpkZWNpbWFsIGluc2lkZSAhaW1wb3J0YW50Ow0KCWZvbnQtc2l6ZToxNHB4Ow0KCXBhZGRpbmc6M3B4IDBweDsNCgl9DQouZW50cnkgb2wgbGkgb2wgbGkgew0KCWxpc3Qtc3R5bGU6ZGVjaW1hbC1sZWFkaW5nLXplcm8gaW5zaWRlICFpbXBvcnRhbnQ7DQoJfQ0KDQoNCi8qPT09PT09PT09IENPTU1FTlRTID09PT09PT09PSovDQoNCmgyLmNvbW1oMnsNCglmb250LXNpemU6IDEuNWVtOw0KCXBhZGRpbmc6IDAgMCA1cHg7DQoJbWFyZ2luOiAwIDAgMTVweCAwOw0KCWZvbnQtd2VpZ2h0OmJvbGQgIWltcG9ydGFudDsNCgljb2xvcjojMDAwMDAwOw0KfQ0Kb2wuY29tbWVudGxpc3R7DQoJbWFyZ2luOiAxMHB4IDAgMjBweDsNCglwYWRkaW5nOiAwOw0KCWxpc3Qtc3R5bGU6IG5vbmU7DQoJZm9udC1zaXplOiAxMnB4Ow0KCWxpbmUtaGVpZ2h0OiAyMHB4Ow0KfQ0Kb2wuY29tbWVudGxpc3QgcHsNCgltYXJnaW4tYm90dG9tOjEwcHg7DQoJbGluZS1oZWlnaHQ6IDIwcHg7DQp9DQpvbC5jb21tZW50bGlzdCBjaXRlew0KCWZvbnQtc3R5bGU6IG5vcm1hbDsNCglmb250LXdlaWdodDogYm9sZDsNCn0NCm9sLmNvbW1lbnRsaXN0IGxpew0KCXBhZGRpbmc6IDIwcHggMTBweCAxMHB4IDEwcHg7DQp9DQpvbC5jb21tZW50bGlzdCBsaS5hbHR7DQoJcGFkZGluZzogMTBweCAxMHB4IDAgMTBweCAhaW1wb3J0YW50Ow0KCWJhY2tncm91bmQ6I2Y3ZjdmNzsNCglib3JkZXI6MXB4IHNvbGlkICNlZWU7CQ0KfQ0KI2NvbW1lbnQgew0KCXdpZHRoOiA1OTVweDsNCglmbG9hdDogbGVmdDsNCn0NCg0KLyo9PT09PT09PT0gVEhSRUFERUQgQ09NTUVOVFMgPT09PT09PT09Ki8NCg0Kb2wuY29tbWVudGxpc3QgLmNvbW1lbnQtbWV0YXsNCglmb250LXNpemU6MC44ZW07DQp9DQpvbC5jb21tZW50bGlzdCBsaSAuYXZhdGFyIHsgCQ0KCWZsb2F0OmxlZnQ7DQoJYm9yZGVyOiAxcHggc29saWQgIzAwMDsNCgltYXJnaW4tcmlnaHQ6IDEwcHg7DQp9DQoNCm9sLmNvbW1lbnRsaXN0IGxpew0KCWJvcmRlcjoxcHggc29saWQgI2VlZTsJCQ0KCW1hcmdpbjoxMHB4IDAgMTBweDsNCglwYWRkaW5nOjE1cHggMTBweCAxMHB4Ow0KfQ0KDQpvbC5jb21tZW50bGlzdCBsaSAuZXZlbnsNCgliYWNrZ3JvdW5kOiNmZmZmZmY7DQp9DQoNCi5jb21tZW50bGlzdCBsaSB1bCBsaSB7DQoJbWFyZ2luLWxlZnQ6MTBweDsNCgltYXJnaW4tcmlnaHQ6LTVweDsNCn0NCg0Kb2wuY29tbWVudGxpc3QgbGkgLnJlcGx5IHsNCglwYWRkaW5nOjAgMCA1cHggMDsNCn0NCg0KI3Jlc3BvbmQgcHsNCgltYXJnaW4tYm90dG9tOjEwcHg7DQoJbGluZS1oZWlnaHQ6IDIwcHg7DQp9DQoNCi8qIFBhZ2VOYXZpICovDQoNCi5tb3JlX2VudHJpZXMge2ZvbnQtc2l6ZToxNHB4O30NCi5tb3JlX2VudHJpZXMgLndwLXBhZ2VuYXZpIHtjbGVhcjpib3RoO2Zsb2F0OiByaWdodDt9DQoubW9yZV9lbnRyaWVzIC53cC1wYWdlbmF2aSBhIHt0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDt9DQoNCi5tb3JlX2VudHJpZXMgLndwLXBhZ2VuYXZpIC5jdXJyZW50LCANCi5tb3JlX2VudHJpZXMgLndwLXBhZ2VuYXZpIC5vbiwNCi5tb3JlX2VudHJpZXMgLndwLXBhZ2VuYXZpIGE6aG92ZXIge2JhY2tncm91bmQ6ICM5ZjlmOWYgIWltcG9ydGFudDt9DQoNCi5tb3JlX2VudHJpZXMgLndwLXBhZ2VuYXZpIGEsDQoubW9yZV9lbnRyaWVzIC53cC1wYWdlbmF2aSBhOmxpbmssDQoubW9yZV9lbnRyaWVzIC53cC1wYWdlbmF2aSBhOnZpc2l0ZWQsIA0KLm1vcmVfZW50cmllcyAud3AtcGFnZW5hdmkgLmN1cnJlbnQsIA0KLm1vcmVfZW50cmllcyAud3AtcGFnZW5hdmkgLm9uLA0KLm1vcmVfZW50cmllcyAud3AtcGFnZW5hdmkgc3Bhbi5wYWdlcyB7IGJhY2tncm91bmQ6ICNFRUVFRUU7Y29sb3I6ICM2NjY7IHBhZGRpbmc6IDRweCAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDogNHB4OyBib3JkZXI6MXB4IHNvbGlkICNEREREREQ7IGxpbmUtaGVpZ2h0OjI0cHg7IH0NCg0KLm1vcmVfZW50cmllcyAud3AtcGFnZW5hdmkgLmV4dGVuZCB7IGJhY2tncm91bmQ6bm9uZTsgYm9yZGVyOm5vbmU7IH0NCg0KLyo9PT09PT09PT0gU0lERUJBUiA9PT09PT09PT0qLw0KDQovKiBUYWJzICovDQoNCiN0YWJzIHsNCgl3aWR0aDozMDhweCAhaW1wb3J0YW50Ow0KCWhlaWdodDphdXRvICFpbXBvcnRhbnQ7DQoJcGFkZGluZzo1cHg7DQoJYm9yZGVyOjFweCBzb2xpZCAjZGRkOw0KCWJhY2tncm91bmQtY29sb3I6I2VlZWVlZTsNCglmbG9hdDpsZWZ0Ow0KCWRpc3BsYXk6IGJsb2NrOw0KfQ0KDQouaW5zaWRlIHsNCgl3aWR0aDogMjkzcHggIWltcG9ydGFudDsNCglwYWRkaW5nOjVweCAhaW1wb3J0YW50Ow0KCWJvcmRlcjoxcHggc29saWQgI2RkZCAhaW1wb3J0YW50Ow0KCW1hcmdpbjo1cHggMHB4IDBweCAhaW1wb3J0YW50Ow0KCWJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7DQoNCn0NCg0KdWwud29vVGFicyB7DQoJd2lkdGg6IDEwMCU7DQoJcGFkZGluZzogMCAwIDdweCAwOw0KfQ0KDQp1bC53b29UYWJzIGxpIHsNCglmbG9hdDogbGVmdDsNCglkaXNwbGF5OmlubGluZTsNCglmb250LXNpemU6IDE0cHg7DQoJbGluZS1oZWlnaHQ6IDM0cHg7DQoJYmFja2dyb3VuZDogI2ZmZmZmZjsNCgljb2xvcjogIzAwMDAwMDsNCglib3JkZXI6MXB4IHNvbGlkICNkZGQ7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQoJZm9udC1zaXplOiAxMXB4Ow0KCW1hcmdpbjowcHggMnB4IDBweCAwcHggIWltcG9ydGFudDsNCgljdXJzb3I6IHBvaW50ZXI7DQp9DQoNCnVsLndvb1RhYnMgbGkgYSB7DQoJbGluZS1oZWlnaHQ6IDMxcHg7DQoJY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDsNCglkaXNwbGF5OiBibG9jazsNCglmbG9hdDogbGVmdDsNCglwYWRkaW5nOiAwIDZweDsNCn0NCg0KdWwud29vVGFicyBsaSBhLnNlbGVjdGVkLCB1bC53b29UYWJzIGxpIGE6aG92ZXIgew0KCXRleHQtZGVjb3JhdGlvbjpub25lOw0KCWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7DQp9DQoNCiN0YWdjbG91ZCB7DQoJcGFkZGluZzoxMHB4Ow0KfQ0KDQoNCg0KI3N1YiBpbWcgew0KCWZsb2F0OiByaWdodDsNCgltYXJnaW46IDAgMCA4cHggOHB4Ow0KfQ0KDQouaW5zaWRlIGxpIHsNCglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRUVFRUVFOw0KCXBhZGRpbmc6OHB4Ow0KfQ0KDQouaW5zaWRlIGxpIGltZy5hdmF0YXIsIC5pbnNpZGUgbGkgaW1nLnRodW1ibmFpbCB7DQoJYm9yZGVyOiAxcHggc29saWQgI2RkZDsNCglwYWRkaW5nOiAzcHg7DQoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCglmbG9hdDogbGVmdDsNCgltYXJnaW46IDAgOHB4IDAgMDsNCn0NCg0KLyotIEFkcyAtKi8NCg0KI21wdV9iYW5uZXIgew0KCXdpZHRoOjMwMHB4Ow0KCWhlaWdodDoyNTBweDsNCgliYWNrZ3JvdW5kLWNvbG9yOiNlZWVlZWU7DQoJbWFyZ2luLWJvdHRvbToxNXB4Ow0KCXBhZGRpbmc6IDlweDsNCglib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkOw0KfQ0KDQojYWR2ZXJ0XzEyNXgxMjUgew0KCXBhZGRpbmctbGVmdDogMTRweDsNCn0NCg0KI2FkdmVydF8xMjV4MTI1IGltZ3sNCglib3JkZXI6IDFweCBzb2xpZCAjZGRkOw0KCXBhZGRpbmc6IDVweDsNCgltYXJnaW46MCAxNHB4IDE0cHggMDsNCn0NCg0KLyotIEZsaWNrciAtKi8NCg0KI2ZsaWNrciAud3JhcCB7DQoJcGFkZGluZy10b3A6IDE1cHg7DQp9DQouZmxpY2tyX2JhZGdlX2ltYWdlIGltZyB7DQoJZmxvYXQ6bGVmdDsNCn0NCi8qPT09IFN0eWxpbmcgV2lkZ2V0IExpc3RzID09PSovDQoNCi53aWRnZXQgew0KCW1hcmdpbi1ib3R0b206MTVweDsNCn0JDQoud2lkZ2V0IGgzIHsNCglwYWRkaW5nOiA1cHg7DQp9DQoud2lkZ2V0IHVsIHsNCgltYXJnaW46MCAwIDEwcHggMDsNCglwYWRkaW5nOjVweCAwOw0KCWJvcmRlcjpub25lICFpbXBvcnRhbnQ7DQp9DQoud2lkZ2V0IHVsIGxpIHsNCglib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsNCglwYWRkaW5nOjVweCAwIDVweCA1cHg7DQoJbWFyZ2luOjBweDsNCn0NCi53aWRnZXQgdWwgbGkgYSB7DQoJY29sb3I6ICMwMDAwMDA7DQp9DQoud2lkZ2V0IHNlbGVjdCB7DQoJYm9yZGVyOjFweCBzb2xpZCAjZWVlOw0KCXdpZHRoOjE0OHB4Ow0KCW1hcmdpbjoxNXB4IDAgMCAwOw0KfQ0KDQoudGV4dHdpZGdldCB7DQoJcGFkZGluZy10b3A6IDE1cHg7DQp9DQoNCi8qPT09PT09PT09IEZPT1RFUiA9PT09PT09PT0qLw0KDQojZm9vdGVyew0KCWNsZWFyOiBib3RoOw0KCWNvbG9yOiAjNjY2NjY2Ow0KCWhlaWdodDogMzVweDsNCglsaW5lLWhlaWdodDogMzVweDsNCgltYXJnaW46MHB4IDE1cHggMTVweDsNCglwYWRkaW5nOjBweCAxNXB4Ow0KCWJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7DQoJYm9yZGVyOiAxcHggc29saWQgI2RkZDsNCn0NCg0KI2Zvb3RlciBpbWcgew0KCXZlcnRpY2FsLWFsaWduOm1pZGRsZTsNCgltYXJnaW4tbGVmdDo1cHg7DQp9DQoNCi8qPT09PT09PT09IE1JU0MgPT09PT09PT09Ki8NCg0KLmZpeHsNCgljbGVhcjogYm90aDsNCgloZWlnaHQ6IDFweDsNCgltYXJnaW46IDAgMCAtMXB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQp9DQouaGx7DQoJYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNlZWU7DQp9DQouaGwtZnVsbHsNCglmbG9hdDpsZWZ0Ow0KCWNsZWFyOmJvdGg7DQoJaGVpZ2h0OjFweDsNCgl3aWR0aDoxMDAlOw0KCXBhZGRpbmc6MCAhaW1wb3J0YW50Ow0KCW1hcmdpbjowcHggMHB4IDE1cHg7DQp9DQouaGwyew0KCWJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjYzBjMGMwOw0KfQ0KLmhsM3sNCglib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsNCn0NCi5ibG9new0KCXdpZHRoOjEwMCUgIWltcG9ydGFudDsNCglmbG9hdDpsZWZ0Ow0KfQ0KLmJldHdlZW57DQoJaGVpZ2h0OjJweDsNCgltYXJnaW4tYm90dG9tOjE1cHg7DQoJfQ0KLmZsew0KCWZsb2F0OiBsZWZ0Ow0KfQ0KLmZyew0KCWZsb2F0OiByaWdodDsNCn0NCi5hY3sNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQouYXJ7DQoJdGV4dC1hbGlnbjogcmlnaHQ7DQp9DQoudGh7DQoJYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDsNCglmbG9hdDogcmlnaHQ7DQoJcGFkZGluZzogNXB4Ow0KCWJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7DQoJbWFyZ2luOiAwIDAgNXB4IDEwcHg7DQp9DQoNCnRhYmxlI3dwLWNhbGVuZGFyIHsNCglib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOw0KCW1hcmdpbjogMHB4Ow0KCXBhZGRpbmc6IDBweDsNCn0NCg0KdGFibGUjd3AtY2FsZW5kYXIgYSB7DQoJY29sb3I6IzAwMDAwMDsgDQp9DQoNCnRhYmxlI3dwLWNhbGVuZGFyIGNhcHRpb24geyANCglmb250LXdlaWdodDogbm9ybWFsOyBmb250LXNpemU6IDAuOTE2NjdlbTsgbGluZS1oZWlnaHQ6IDEuNzI3MjdlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgYmFja2dyb3VuZDogI2U1ZTVlNTsgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjZGRkOyANCn0NCnRhYmxlI3dwLWNhbGVuZGFyIHRoIHsgDQoJd2lkdGg6IDI2cHg7IGZvbnQtc2l6ZTogMC45MTY2N2VtOyBsaW5lLWhlaWdodDogMS43MjcyN2VtOyBiYWNrZ3JvdW5kOiAjZjJmMmYyOyBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNkZGQ7IHRleHQtYWxpZ246IGNlbnRlcjsgDQp9DQp0YWJsZSN3cC1jYWxlbmRhciB0ZCB7IA0KCXdpZHRoOiAyNnB4OyBsaW5lLWhlaWdodDogMS42NjY2N2VtOyBjb2xvcjogIzk5OTsgdGV4dC1hbGlnbjogY2VudGVyOyANCn0NCnRhYmxlI3dwLWNhbGVuZGFyIHRkI25leHQsIHRhYmxlI3dwLWNhbGVuZGFyIHRkI3ByZXYgeyANCgl3aWR0aDogNzhweDsgZm9udC1zaXplOiAwLjgzMzMzZW07IGxldHRlci1zcGFjaW5nOiAxcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IA0KfQ0KLmdyYXZhdGFyIHsNCglmbG9hdDpsZWZ0Ow0KCWJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQoJbWFyZ2luLXJpZ2h0OiAxMHB4Ow0KfQ0KLmpkR2FsbGVyeSBhIHsgY3Vyc29yOnBvaW50ZXIgIWltcG9ydGFudDsgfQ0KDQovKiBTbGlkZXIgKi8NCg0KI3NsaWRlci1ob2xkZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGhlaWdodDogMjcwcHg7IHdpZHRoOiA1OTVweDsgbWFyZ2luLWJvdHRvbTogMjBweDsgb3ZlcmZsb3c6IGhpZGRlbiA7IGNvbG9yOiAjZmZmO30NCiNzbGlkZXItaG9sZGVyIC5zbGlkZXsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6MHB4OyBsZWZ0OiA1OTVweDsgei1pbmRleDogMTtoZWlnaHQ6IDI3MHB4OyB3aWR0aDogNTk1cHg7IG92ZXJmbG93OiBoaWRkZW47fQ0KI3NsaWRlci1ob2xkZXIgLnNsaWRlLTEgeyBkaXNwbGF5IDogYmxvY2s7IGxlZnQ6MHB4OyB0b3A6MHB4O30NCiNzbGlkZXItaG9sZGVyIC5zbGlkZSBhIHtkaXNwbGF5OiBibG9jazsgIH0NCiNzbGlkZXItaG9sZGVyIC5zbGlkZSBpbWcgeyAgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOjBweDsgbGVmdDogMHB4OyB9DQojc2xpZGVyLWhvbGRlciAgaW1nLmZ1bGwtbWFzayB7ICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDowOyBsZWZ0OiAwcHg7IHotaW5kZXg6IDA7IGRpc3BsYXk6IG5vbmU7IH0NCg0KI3NsaWRlci1ob2xkZXIgLnNsaWRlLWNvbnRlbnQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjcwcHg7IGxlZnQ6IDA7aGVpZ2h0OiA3MDBweDsgd2lkdGg6IDU3NXB4OyBiYWNrZ3JvdW5kOiAjMDAwOyBwYWRkaW5nOiAxMHB4IDEwcHggMCAxMHB4O3otaW5kZXg6IDk5OTt9DQoNCiNzbGlkZXItaG9sZGVyIC5zbGlkZXItbGVmdCwgI3NsaWRlci1ob2xkZXIgLnNsaWRlci1yaWdodCB7cG9zaXRpb246IGFic29sdXRlOyAgICBjdXJzb3I6IHBvaW50ZXI7IGhlaWdodDogMTUwcHg7IHdpZHRoOiAxMjBweDsgei1pbmRleDogOTk5OyBkaXNwbGF5OiBibG9jazsgY29sb3I6IHdoaXRlOyB9DQoNCiNzbGlkZXItaG9sZGVyIC5zbGlkZXItbGVmdCB7IGxlZnQ6IDA7ICB0b3A6IDA7IGJhY2tncm91bmQ6IHVybChcJ2ltYWdlcy9mbGVjaGUxLnBuZ1wnKSBuby1yZXBlYXQgY2VudGVyIGJvdHRvbTsgICB9DQoqIGh0bWwgI3NsaWRlci1ob2xkZXIgLnNsaWRlci1sZWZ0IHsgYmFja2dyb3VuZDogdXJsKFwnaW1hZ2VzL2ZsZWNoZTEuZ2lmXCcpIG5vLXJlcGVhdCBjZW50ZXIgbGVmdDsgfQ0KDQojc2xpZGVyLWhvbGRlciAuc2xpZGVyLXJpZ2h0e3JpZ2h0OiAwOyB0b3A6IDA7IGJhY2tncm91bmQ6IHVybChcJ2ltYWdlcy9mbGVjaGUyLnBuZ1wnKSBuby1yZXBlYXQgY2VudGVyIGJvdHRvbTt9DQoqIGh0bWwgI3NsaWRlci1ob2xkZXIgLnNsaWRlci1yaWdodCB7IGJhY2tncm91bmQ6IHVybChcJ2ltYWdlcy9mbGVjaGUyLmdpZlwnKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0OyB9DQoNCi5zbGlkZXItc2hlbGYgeyB6LWluZGV4OiA5OTk7IGJhY2tncm91bmQ6ICMwMDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOjA7IHdpZHRoOiA1OTVweDsgb3ZlcmZsb3c6IHZpc2libGU7fQ0Kc3Bhbi5jbGlja2VyIHsgei1pbmRleDogOTk5OyBiYWNrZ3JvdW5kOiAjMDAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDowcHg7IHJpZ2h0OjEyMHB4OyB3aWR0aDogYXV0bzsgZm9udC1zaXplOiAxMXB4OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogMnB4IDEwcHg7IGN1cnNvcjogcG9pbnRlcjt9DQouc2hlbGYtY29udGVudCB7IHotaW5kZXg6IDk5OTk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOjA7IHdpZHRoOiA1OTVweDt9DQouc2hlbGYtY29udGVudCBpbWcge2JvcmRlcjoxcHggc29saWQgI2ZmZjsgbWFyZ2luOiAxMHB4IDAgMCAxMHB4OyBjdXJzb3I6IHBvaW50ZXI7fQ0KDQouc2hlbGYtdGl0bGUge3BhZGRpbmc6IDBweCAxMHB4O30NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo8IS0tICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLS0+DQoNCg0KYXsNCgljb2xvcjogIzAwMDsNCn0NCi5zdWJjb2wgaDJ7DQoJY29sb3I6ICNmZmY7DQp9DQoubmF2MiBsaTpob3ZlciwNCi5uYXYyIGxpLnNmSG92ZXIsDQoubmF2MiBsaS5jdXJyZW50LA0KLm5hdjIgYTpmb2N1cywgLm5hdjIgYTpob3ZlciwgLm5hdjIgYTphY3RpdmUgew0KCWNvbG9yOiAjMzMzMzMzOw0KfQ0KLmZlYXR1cmVkIGgzIGE6aG92ZXIgew0KCWNvbG9yOiMwMDA7DQp9DQoudmlkZW8tcmlnaHQgaDJ7DQoJY29sb3I6ICMwMDA7DQp9DQouY2F0bGlzdCBoMnsNCgljb2xvcjogI2ZmZjsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOw0KCWJhY2tncm91bmQtaW1hZ2U6IHVybChkZWZhdWx0L2ljby1jYXRsaXN0LmdpZik7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7DQp9DQojbmF2MSAuY3VycmVudF9wYWdlX2l0ZW0gYSwNCiNuYXYxIGxpLnNmSG92ZXIsDQojbmF2MSBsaS5jdXJyZW50LA0KI25hdjEgbGkgYTpmb2N1cywgI25hdjEgbGkgYTpob3ZlciwgI25hdjEgbGkgYTphY3RpdmUgew0KCWJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQoJY29sb3I6ICNGRkZGRkY7DQp9DQojbmF2MSAuY3VycmVudF9wYWdlX2l0ZW0gdWwgbGkgYSB7DQoJYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsNCgljb2xvcjogIzYzN0QzNzsNCn0NCg0KI25hdjEgLmN1cnJlbnRfcGFnZV9pdGVtIHVsIGxpIGE6aG92ZXIgew0KCWJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQoJY29sb3I6ICNGRkZGRkY7DQp9DQojbmF2IHVsICBsaS5iYWNrIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOw0KCWNvbG9yOiAjRkZGRkZGOw0KfQ0KDQojbmF2IHVsICBsaSBhIHsNCgljb2xvcjogIzAwMDAwMDsNCn0NCiNuYXYyIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KCWJvcmRlci1ib3R0b206M3B4IHNvbGlkICMwMDAwMDA7DQp9DQojbmF2MiBsaSBhOmhvdmVyIHsNCgliYWNrZ3JvdW5kOiMwMDAwMDA7DQoJY29sb3I6I2ZmZjsNCn0NCi52aWRlby1yaWdodCBoM3sNCgljb2xvcjogIzYzN0QzNzsNCn0JDQp1bC53b29UYWJzIGxpIGEuc2VsZWN0ZWQsIHVsLndvb1RhYnMgbGkgYTpob3ZlciB7DQoJY29sb3I6ICNmY2ZmMDA7DQoJYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsNCn0NCg0KLndpZGdldCBoMyB7DQoJY29sb3I6ICNGRkZGRkY7DQoJYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsNCn0NCiNmb290ZXIgYXsNCgljb2xvcjogIzAwMDAwMDsNCn0NCiNhcmNoaXZlYm94IHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOw0KCWJvcmRlcjogbm9uZTsNCglmb250LXNpemU6MjhweDsNCglmb250LXdlaWdodDoxMDA7DQoJcGFkZGluZzogMCAwIDAgMDsNCgltYXJnaW4tdG9wOjEwcHg7DQp9DQojYXJjaGl2ZWJveCBoNCBlbSwgI2FyY2hpdmVib3ggaDIgZW0sICNhcmNoaXZlYm94IGgzIGVtew0KCWNvbG9yOiMwMDAwMDA7DQp9DQojcnNzIGgyew0KCWJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7DQoJYm9yZGVyOiBub25lOw0KCWNvbG9yOiMwMDAwMDA7DQp9DQoNCg0KDQoNCjwhLS0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAtLT4NCg0KLyogUEFSQ0hFUyAqLw0KDQouY2xlYXINCnsNCmNsZWFyOmJvdGg7DQpkaXNwbGF5OmJsb2NrOw0Kb3ZlcmZsb3c6aGlkZGVuOw0KdmlzaWJpbGl0eTpoaWRkZW47DQp3aWR0aDowO2hlaWdodDowDQp9DQoNCg0KDQo8IS0tICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLS0+DQoNCi8qIFBBUkNIRVMgKi8NCg0KLmRyeWJjbl9hIHsNCgljb2xvcjogI0ZGMDAwMDsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KfQ0KPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fc2VvX3RlbXBsYXRlPC9zdHJvbmc+IC0gYTozOntpOjA7YTo1OntzOjQ6Im5hbWUiO3M6MTA6InNlb19pbmZvXzEiO3M6Mzoic3RkIjtzOjA6IiI7czo1OiJsYWJlbCI7czo0OiJTRU8gIjtzOjQ6InR5cGUiO3M6NDoiaW5mbyI7czo0OiJkZXNjIjtzOjIwMjoiQWRkaXRpb25hbCBTRU8gY3VzdG9tIGZpZWxkcyBhdmFpbGFibGU6IDxzdHJvbmc+Q3VzdG9tIFBhZ2UgVGl0bGVzPC9zdHJvbmc+LiBHbyB0byA8YSBocmVmPSJodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtYWRtaW4vYWRtaW4ucGhwP3BhZ2U9d29vdGhlbWVzX3NlbyI+U0VPIFNldHRpbmdzPC9hPiBwYWdlIHRvIGFjdGl2YXRlLiI7fWk6MTthOjU6e3M6NDoibmFtZSI7czoxMDoic2VvX2ZvbGxvdyI7czozOiJzdGQiO3M6NToiZmFsc2UiO3M6NToibGFiZWwiO3M6MTY6IlNFTyAtIFNldCBmb2xsb3ciO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7czo0OiJkZXNjIjtzOjc3OiJNYWtlIGxpbmtzIGZyb20gdGhpcyBwb3N0L3BhZ2UgPHN0cm9uZz5mb2xsb3dhYmxlPC9zdHJvbmc+IGJ5IHNlYXJjaCBlbmdpbmVzLiI7fWk6MjthOjU6e3M6NDoibmFtZSI7czoxMToic2VvX25vaW5kZXgiO3M6Mzoic3RkIjtzOjU6ImZhbHNlIjtzOjU6ImxhYmVsIjtzOjEzOiJTRU8gLSBOb2luZGV4IjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO3M6NDoiZGVzYyI7czo1NjoiU2V0IHRoZSBQYWdlL1Bvc3QgdG8gbm90IGJlIGluZGV4ZWQgYnkgYSBzZWFyY2ggZW5naW5lcy4iO319PC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfY2F0ZWdvcnk8L3N0cm9uZz4gLSBTZWxlY3QgYSBjYXRlZ29yeTo8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9lbnRyaWVzPC9zdHJvbmc+IC0gU2VsZWN0IGEgTnVtYmVyOjwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlYXRfZW50cmllczwvc3Ryb25nPiAtIFNlbGVjdCBhIG51bWJlcjo8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX2lkPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZmVlZGJ1cm5lcl91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mcmFtZXdvcmtfdmVyc2lvbjwvc3Ryb25nPiAtIDQuMy41PC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPg0KDQogIHZhciBfZ2FxID0gX2dhcSB8fCBbXTsNCiAgX2dhcS5wdXNoKFtcJ19zZXRBY2NvdW50XCcsIFwnVUEtMzEyMDQxMDgtMVwnXSk7DQogIF9nYXEucHVzaChbXCdfdHJhY2tQYWdldmlld1wnXSk7DQoNCiAgKGZ1bmN0aW9uKCkgew0KICAgIHZhciBnYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCdzY3JpcHRcJyk7IGdhLnR5cGUgPSBcJ3RleHQvamF2YXNjcmlwdFwnOyBnYS5hc3luYyA9IHRydWU7DQogICAgZ2Euc3JjID0gKFwnaHR0cHM6XCcgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wgPyBcJ2h0dHBzOi8vc3NsXCcgOiBcJ2h0dHA6Ly93d3dcJykgKyBcJy5nb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qc1wnOw0KICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCdzY3JpcHRcJylbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZ2EsIHMpOw0KICB9KSgpOw0KDQo8L3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19ncmF2YXRhcjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faG9tZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSA0NTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAxMDA8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9zaW5nbGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2xheW91dDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC93b29fdXBsb2Fkcy82NS1oZWFkZXItZHJ5LmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX21hbnVhbDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9zdXBwb3J0L3RoZW1lLWRvY3VtZW50YXRpb24vZ2F6ZXR0ZS1lZGl0aW9uLzwvbGk+PGxpPjxzdHJvbmc+d29vX29wdGlvbnM8L3N0cm9uZz4gLSBhOjMyOntzOjE4OiJ3b29fYWx0X3N0eWxlc2hlZXQiO3M6MDoiIjtzOjEyOiJ3b29fZ3JhdmF0YXIiO3M6NToiZmFsc2UiO3M6ODoid29vX2xvZ28iO3M6MDoiIjtzOjIwOiJ3b29fZ29vZ2xlX2FuYWx5dGljcyI7TjtzOjE4OiJ3b29fZmVlZGJ1cm5lcl91cmwiO3M6MDoiIjtzOjE3OiJ3b29fZmVlZGJ1cm5lcl9pZCI7czowOiIiO3M6MTI6Indvb19hcmNoaXZlcyI7czoxNDoiU2VsZWN0IGEgcGFnZToiO3M6MTA6Indvb19sYXlvdXQiO3M6MDoiIjtzOjE3OiJ3b29fb3RoZXJfZW50cmllcyI7czoxNjoiU2VsZWN0IGEgTnVtYmVyOiI7czoxNDoid29vX3Nob3dfdmlkZW8iO3M6NToiZmFsc2UiO3M6MTg6Indvb192aWRlb19jYXRlZ29yeSI7czoxODoiU2VsZWN0IGEgY2F0ZWdvcnk6IjtzOjIxOiJ3b29fZmVhdHVyZWRfY2F0ZWdvcnkiO3M6MTg6IlNlbGVjdCBhIGNhdGVnb3J5OiI7czoyMDoid29vX2ZlYXR1cmVkX2VudHJpZXMiO3M6MTY6IlNlbGVjdCBhIE51bWJlcjoiO3M6MTE6Indvb19hZF9wYWdlIjtzOjE0OiJTZWxlY3QgYSBwYWdlOiI7czoxNjoid29vX3Nob3dfYWRzX3RvcCI7czo1OiJmYWxzZSI7czoxNDoid29vX2FkX2ltYWdlXzEiO3M6ODY6Imh0dHA6Ly9iYXJjZWxvbmEuZGVtb2NyYWNpYXJlYWx5YS5lcy93cC1jb250ZW50L3RoZW1lcy9uZXdzcHJlc3MvaW1hZ2VzL2FkLTEyNXgxMjUuZ2lmIjtzOjEyOiJ3b29fYWRfdXJsXzEiO3M6NDM6Imh0dHA6Ly9leGFtcGxlLmNvbS9hZHMvYWQxX2Rlc3RpbmF0aW9uLmh0bWwiO3M6MTQ6Indvb19hZF9pbWFnZV8yIjtzOjg2OiJodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC90aGVtZXMvbmV3c3ByZXNzL2ltYWdlcy9hZC0xMjV4MTI1LmdpZiI7czoxMjoid29vX2FkX3VybF8yIjtzOjQzOiJodHRwOi8vZXhhbXBsZS5jb20vYWRzL2FkMV9kZXN0aW5hdGlvbi5odG1sIjtzOjE0OiJ3b29fYWRfaW1hZ2VfMyI7czo4NjoiaHR0cDovL2JhcmNlbG9uYS5kZW1vY3JhY2lhcmVhbHlhLmVzL3dwLWNvbnRlbnQvdGhlbWVzL25ld3NwcmVzcy9pbWFnZXMvYWQtMTI1eDEyNS5naWYiO3M6MTI6Indvb19hZF91cmxfMyI7czo0MzoiaHR0cDovL2V4YW1wbGUuY29tL2Fkcy9hZDFfZGVzdGluYXRpb24uaHRtbCI7czoxOToid29vX3Nob3dfYWRzX2JvdHRvbSI7czo1OiJmYWxzZSI7czoxNDoid29vX2FkX2ltYWdlXzQiO3M6ODY6Imh0dHA6Ly9iYXJjZWxvbmEuZGVtb2NyYWNpYXJlYWx5YS5lcy93cC1jb250ZW50L3RoZW1lcy9uZXdzcHJlc3MvaW1hZ2VzL2FkLTEyNXgxMjUuZ2lmIjtzOjEyOiJ3b29fYWRfdXJsXzQiO3M6NDM6Imh0dHA6Ly9leGFtcGxlLmNvbS9hZHMvYWQxX2Rlc3RpbmF0aW9uLmh0bWwiO3M6MTQ6Indvb19hZF9pbWFnZV81IjtzOjg2OiJodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC90aGVtZXMvbmV3c3ByZXNzL2ltYWdlcy9hZC0xMjV4MTI1LmdpZiI7czoxMjoid29vX2FkX3VybF81IjtzOjQzOiJodHRwOi8vZXhhbXBsZS5jb20vYWRzL2FkMV9kZXN0aW5hdGlvbi5odG1sIjtzOjE0OiJ3b29fYWRfaW1hZ2VfNiI7czo4NjoiaHR0cDovL2JhcmNlbG9uYS5kZW1vY3JhY2lhcmVhbHlhLmVzL3dwLWNvbnRlbnQvdGhlbWVzL25ld3NwcmVzcy9pbWFnZXMvYWQtMTI1eDEyNS5naWYiO3M6MTI6Indvb19hZF91cmxfNiI7czo0MzoiaHR0cDovL2V4YW1wbGUuY29tL2Fkcy9hZDFfZGVzdGluYXRpb24uaHRtbCI7czoxMDoid29vX3Jlc2l6ZSI7czo1OiJmYWxzZSI7czoxNToid29vX3RodW1iX3dpZHRoIjtzOjA6IiI7czoxNjoid29vX3RodW1iX2hlaWdodCI7czowOiIiO3M6MTQ6Indvb19jdXN0b21fY3NzIjtOO308L2xpPjxsaT48c3Ryb25nPndvb19vdGhlcl9lbnRyaWVzPC9zdHJvbmc+IC0gU2VsZWN0IGEgTnVtYmVyOjwvbGk+PGxpPjxzdHJvbmc+d29vX3Jlc2l6ZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fc2hvcnRuYW1lPC9zdHJvbmc+IC0gd29vPC9saT48bGk+PHN0cm9uZz53b29fc2hvd19hZHNfYm90dG9tPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X2Fkc190b3A8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfY2Fyb3VzZWw8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfdmlkZW88L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX2hlaWdodDwvc3Ryb25nPiAtIDExMzwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV93aWR0aDwvc3Ryb25nPiAtIDI1MDwvbGk+PGxpPjxzdHJvbmc+d29vX3RhYnM8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIEdhemV0dGU8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93aWR0aDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3VwbG9hZHM8L3N0cm9uZz4gLSBhOjg6e2k6MDtzOjc3OiJodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC93b29fdXBsb2Fkcy82NS1oZWFkZXItZHJ5LmpwZyI7aToxO3M6ODM6Imh0dHA6Ly9iYXJjZWxvbmEuZGVtb2NyYWNpYXJlYWx5YS5lcy93cC1jb250ZW50L3dvb191cGxvYWRzLzIwLUhFQURFUi0xMk0xNU0tMDEuanBnIjtpOjI7czo4MzoiaHR0cDovL2JhcmNlbG9uYS5kZW1vY3JhY2lhcmVhbHlhLmVzL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTktSEVBREVSLTEyTTE1TS0wMS5qcGciO2k6MztzOjc3OiJodHRwOi8vYmFyY2Vsb25hLmRlbW9jcmFjaWFyZWFseWEuZXMvd3AtY29udGVudC93b29fdXBsb2Fkcy8xOC1oZWFkZXItZHJ5LmpwZyI7aTo0O3M6Nzc6Imh0dHA6Ly9iYXJjZWxvbmEuZGVtb2NyYWNpYXJlYWx5YS5lcy93cC1jb250ZW50L3dvb191cGxvYWRzLzE3LWhlYWRlci1kcnkuanBnIjtpOjU7czo4NToiaHR0cDovL2JhcmNlbG9uYS5kZW1vY3JhY2lhcmVhbHlhLmVzL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTYtY2FiZWNlcmFfYmxvZ19sb3cxLmpwZyI7aTo2O3M6ODE6Imh0dHA6Ly9iYXJjZWxvbmEuZGVtb2NyYWNpYXJlYWx5YS5lcy93cC1jb250ZW50L3dvb191cGxvYWRzLzE1LWNhYmVjZXJhX2Jsb2cxLmpwZyI7aTo3O3M6ODE6Imh0dHA6Ly9iYXJjZWxvbmEuZGVtb2NyYWNpYXJlYWx5YS5lcy93cC1jb250ZW50L3dvb191cGxvYWRzLzE0LWNhYmVjZXJhX2Jsb2cxLmpwZyI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX2NhdGVnb3J5PC9zdHJvbmc+IC0gU2VsZWN0IGEgY2F0ZWdvcnk6PC9saT48L3VsPg==