From: HTTrack Website Copier Subject: Local mirror Date: Thu, 18 Mar 2010 08:27:38 GMT Message-ID: Content-Type: multipart/related; boundary="----=_MIMEPart_1268900858_1004552910_=----"; type="text/html" MIME-Version: 1.0 This message is a RFC MIME-compliant multipart message. ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/v/20100318/zamora/desbordante-creatividad-20100318.html" Content-Type: text/html Content-Transfer-Encoding: 8bit Content-ID: Desbordante creatividad. nortecastilla.es
nuboso
Hoy8.3 / 17.7||Mañana10 / 16.1|
más información sobre el tiempo
Estás en: > > >
Desbordante creatividad

SEMANA SANTA 2010

Desbordante creatividad

Cientos de obras se presentan al Concurso de Dibujo y Pintura Infantil sobre la Semana Santa de El Norte, que cumple 15 años

18.03.10 - 01:56 -
0 Comentarios | Comparte esta noticia »
CerrarEnvía la noticia

Rellena los siguientes campos para enviar esta información a otras personas.

* campos obligatorios
Cerrar Rectificar la noticia

Rellene todos los campos con sus datos.

* campos obligatorios
Esta decimoquinta ha sido una de las ediciones a las que se han presentado más obras, «cientos de dibujos», como indicó el secretario del jurado, Luis Pablos Flórez, y con más calidad. El tribunal calificador, que se reunión en la tarde de ayer en las dependencias de la Junta pro Semana Santa, dedicó largo tiempo a las deliberaciones para elegir las mejores obras en las diferentes categorías.
Alumnos de 16 colegios de la capital han presentado dibujos sobre la Semana Santa de Zamora al concurso que organizan EL NORTE DE CASTILLA en Zamora y la Junta Pro Semana Santa, con el patrocinio de Caja Rural y la colaboración de la Dirección Provincial de Educación.
En concreto, han sido los colegios Virgen del Castillo, María Inmaculada, Juan XXIII, Arias Gonzalo, Santísima Trinidad, San José de Calasanz, Gonzalo de Berceo, Sagrado Corazón de Jesús, Nuestra Señora de la Candelaria, Divina Providencia, La Villarina, Corazón de María, Obispo Nieto, Siervas de San José, La Viña y Medalla Milagrosa los que han aportado concursantes al certamen.
Los mejores
Los autores de las mejores obras, recibirán como premio un MP3.
En la categoría de Educación Infantil son: Héctor Miguel Febre, del colegio Juan XXII; Esther Avedillo, del Gonzalo de Berceo, y Lidia Mercedes Filgueira, de La Villarina.
Del primer ciclo de Educación Primaria los premiados son: Gala Mayado, del Corazón de María; Alejandro Torres Martín, del colegio La Viña, y Lucía Barba Rapado, del Corazón de María.
Del segundo ciclo de Educación Primaria, Carla Martín Montesu, del colegio Sancho II; María Palacios Chimeno, del Corazón de María, y Marta Verónica Cabezas Ferrero, del colegio Arias Gonzalo.
Del tercer ciclo de Primaria, Carmen González Matellanes, del Arias Gonzalo; José Manuel Alejandro Hernández, del María Inmaculada, y Claudia Barba Rapado, del Corazón de María.
Del Primer ciclo de ESO, Lucía González Vizán, del colegio Medalla Milagrosa; Lucía Pérez Arias, del mismo centro, y Manuel Martín Castillo, del María Inmaculada.
En la categoría de Educación Especial, los premiados son Guillermo Escalante Membibre, Cristina García Agustinho y María de los Ángeles Fínez, todos ellos del Virgen del Castillo.
El jurado ha estado integrado por el pintor Antonio Pedrero Yéboles; Cristina Rodríguez Domínguez, licenciada en Bellas Artes; Alberto Beltrán González, director del colegio Arias Gonzalo, y Pilar Aragón, delegada comercial del periódico en Zamora.
La entrega de premios tendrá lugar el día 26 de marzo, Viernes de Dolores, en el salón de la Alhóndiga, a las 17.30 horas. Las obras premiadas, así como una selección de los dibujos presentados se expondrán en la sala de la Alhóndiga desde ese día y durante toda la Semana Santa.
TAGS RELACIONADOS
0 Comentarios | Comparte esta noticia »
Opina

Aprovecha las ventajas de ser un usuario registrado y Regístrate Para realizar un comentario con tu perfil, primero debes identificarte: Login. También puedes escribir un comentario sin tener perfil:

* campos obligatorios


Listado de Comentarios
Desbordante creatividad

Los miembros del jurado analizan la multitud de dibujos presentados. :: LUIS CALLEJA

Pueblos de Zamora
Nuestra provincia
Información, fotos y concursos
El Norte de Castilla

EN CUALQUIER CASO TODOS LOS DERECHOS RESERVADOS:
Queda prohibida la reproducción, distribución, puesta a disposición, comunicación pública y utilización, total o parcial, de los contenidos de esta web, en cualquier forma o modalidad, sin previa, expresa y escrita autorización, incluyendo, en particular, su mera reproducción y/o puesta a disposición como resúmenes, reseñas o revistas de prensa con fines comerciales o directa o indirectamente lucrativos, a la que se manifiesta oposición expresa.

------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/css/ppll.css" Content-Type: text/css Content-Transfer-Encoding: base64 Content-ID: QGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQuZ2VuZXJhbC5jc3Mi KTsKQGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQubW9kdWxvcy5j c3MiKTsKQGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQubW9kdWxv c0RUUy5jc3MiKTsKQGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQu bXVsdGltZWRpYURUUy5jc3MiKTsKQGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5l cy9jc3MvcmQuZWNvbm9taWFEVFMuY3NzIik7CkBpbXBvcnQgdXJsKCJodHRwOi8vd3d3Lm5vcnRlY2Fz dGlsbGEuZXMvY3NzL3JkLnBhcnRpY2lwYWNpb24uY3NzIik7CkBpbXBvcnQgdXJsKCJodHRwOi8vd3d3 Lm5vcnRlY2FzdGlsbGEuZXMvY3NzL3JkLnNlcnZpY2lvcy5jc3MiKTsKQGltcG9ydCB1cmwoImh0dHA6 Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3NwL3JkLnBvcnRhbC5jc3MiKTsKQGltcG9ydCB1cmwoImh0 dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQub2Npby1jb3JyZW9EVFMuY3NzIik7CkBpbXBv cnQgdXJsKCJodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvY3NzL3JkLmNvbXVuZXNEVFMuY3NzIik7 Cg== ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.jquery.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoKICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2MS4zLjIKICogaHR0cDovL2pxdWVyeS5jb20v CiAqCiAqIENvcHlyaWdodCAoYykgMjAwOSBKb2huIFJlc2lnCiAqIER1YWwgbGljZW5zZWQgdW5kZXIg dGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL0xpY2Vuc2UK ICoKICogRGF0ZTogMjAwOS0wMi0xOSAxNzozNDoyMSAtMDUwMCAoVGh1LCAxOSBGZWIgMjAwOSkKICog UmV2aXNpb246IDYyNDYKICovCihmdW5jdGlvbigpe3ZhciBsPXRoaXMsZyx5PWwualF1ZXJ5LHA9bC4k LG89bC5qUXVlcnk9bC4kPWZ1bmN0aW9uKEUsRil7cmV0dXJuIG5ldyBvLmZuLmluaXQoRSxGKX0sRD0v XltePF0qKDwoLnxccykrPilbXj5dKiR8XiMoW1x3LV0rKSQvLGY9L14uW146I1xbXC4sXSokLztvLmZu PW8ucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKEUsSCl7RT1FfHxkb2N1bWVudDtpZihFLm5vZGVUeXBl KXt0aGlzWzBdPUU7dGhpcy5sZW5ndGg9MTt0aGlzLmNvbnRleHQ9RTtyZXR1cm4gdGhpc31pZih0eXBl b2YgRT09PSJzdHJpbmciKXt2YXIgRz1ELmV4ZWMoRSk7aWYoRyYmKEdbMV18fCFIKSl7aWYoR1sxXSl7 RT1vLmNsZWFuKFtHWzFdXSxIKX1lbHNle3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEdbM10p O2lmKEkmJkkuaWQhPUdbM10pe3JldHVybiBvKCkuZmluZChFKX12YXIgRj1vKEl8fFtdKTtGLmNvbnRl eHQ9ZG9jdW1lbnQ7Ri5zZWxlY3Rvcj1FO3JldHVybiBGfX1lbHNle3JldHVybiBvKEgpLmZpbmQoRSl9 fWVsc2V7aWYoby5pc0Z1bmN0aW9uKEUpKXtyZXR1cm4gbyhkb2N1bWVudCkucmVhZHkoRSl9fWlmKEUu c2VsZWN0b3ImJkUuY29udGV4dCl7dGhpcy5zZWxlY3Rvcj1FLnNlbGVjdG9yO3RoaXMuY29udGV4dD1F LmNvbnRleHR9cmV0dXJuIHRoaXMuc2V0QXJyYXkoby5pc0FycmF5KEUpP0U6by5tYWtlQXJyYXkoRSkp fSxzZWxlY3RvcjoiIixqcXVlcnk6IjEuMy4yIixzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVu Z3RofSxnZXQ6ZnVuY3Rpb24oRSl7cmV0dXJuIEU9PT1nP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxs KHRoaXMpOnRoaXNbRV19LHB1c2hTdGFjazpmdW5jdGlvbihGLEgsRSl7dmFyIEc9byhGKTtHLnByZXZP YmplY3Q9dGhpcztHLmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKEg9PT0iZmluZCIpe0cuc2VsZWN0b3I9 dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIpK0V9ZWxzZXtpZihIKXtHLnNlbGVjdG9y PXRoaXMuc2VsZWN0b3IrIi4iK0grIigiK0UrIikifX1yZXR1cm4gR30sc2V0QXJyYXk6ZnVuY3Rpb24o RSl7dGhpcy5sZW5ndGg9MDtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLEUpO3JldHVybiB0 aGlzfSxlYWNoOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIG8uZWFjaCh0aGlzLEYsRSl9LGluZGV4OmZ1bmN0 aW9uKEUpe3JldHVybiBvLmluQXJyYXkoRSYmRS5qcXVlcnk/RVswXTpFLHRoaXMpfSxhdHRyOmZ1bmN0 aW9uKEYsSCxHKXt2YXIgRT1GO2lmKHR5cGVvZiBGPT09InN0cmluZyIpe2lmKEg9PT1nKXtyZXR1cm4g dGhpc1swXSYmb1tHfHwiYXR0ciJdKHRoaXNbMF0sRil9ZWxzZXtFPXt9O0VbRl09SH19cmV0dXJuIHRo aXMuZWFjaChmdW5jdGlvbihJKXtmb3IoRiBpbiBFKXtvLmF0dHIoRz90aGlzLnN0eWxlOnRoaXMsRixv LnByb3AodGhpcyxFW0ZdLEcsSSxGKSl9fSl9LGNzczpmdW5jdGlvbihFLEYpe2lmKChFPT0id2lkdGgi fHxFPT0iaGVpZ2h0IikmJnBhcnNlRmxvYXQoRik8MCl7Rj1nfXJldHVybiB0aGlzLmF0dHIoRSxGLCJj dXJDU1MiKX0sdGV4dDpmdW5jdGlvbihGKXtpZih0eXBlb2YgRiE9PSJvYmplY3QiJiZGIT1udWxsKXty ZXR1cm4gdGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxk b2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoRikpfXZhciBFPSIiO28uZWFjaChGfHx0aGlzLGZ1bmN0aW9u KCl7by5lYWNoKHRoaXMuY2hpbGROb2RlcyxmdW5jdGlvbigpe2lmKHRoaXMubm9kZVR5cGUhPTgpe0Ur PXRoaXMubm9kZVR5cGUhPTE/dGhpcy5ub2RlVmFsdWU6by5mbi50ZXh0KFt0aGlzXSl9fSl9KTtyZXR1 cm4gRX0sd3JhcEFsbDpmdW5jdGlvbihFKXtpZih0aGlzWzBdKXt2YXIgRj1vKEUsdGhpc1swXS5vd25l ckRvY3VtZW50KS5jbG9uZSgpO2lmKHRoaXNbMF0ucGFyZW50Tm9kZSl7Ri5pbnNlcnRCZWZvcmUodGhp c1swXSl9Ri5tYXAoZnVuY3Rpb24oKXt2YXIgRz10aGlzO3doaWxlKEcuZmlyc3RDaGlsZCl7Rz1HLmZp cnN0Q2hpbGR9cmV0dXJuIEd9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5j dGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS5jb250ZW50cygpLndyYXBB bGwoRSl9KX0sd3JhcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlz KS53cmFwQWxsKEUpfSl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3Vt ZW50cyx0cnVlLGZ1bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuYXBwZW5kQ2hpbGQo RSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsdHJ1 ZSxmdW5jdGlvbihFKXtpZih0aGlzLm5vZGVUeXBlPT0xKXt0aGlzLmluc2VydEJlZm9yZShFLHRoaXMu Zmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3Vt ZW50cyxmYWxzZSxmdW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcyl9 KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVu Y3Rpb24oRSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShFLHRoaXMubmV4dFNpYmxpbmcpfSl9 LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fG8oW10pfSxwdXNoOltdLnB1c2gs c29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2UsZmluZDpmdW5jdGlvbihFKXtpZih0aGlzLmxlbmd0 aD09PTEpe3ZhciBGPXRoaXMucHVzaFN0YWNrKFtdLCJmaW5kIixFKTtGLmxlbmd0aD0wO28uZmluZChF LHRoaXNbMF0sRik7cmV0dXJuIEZ9ZWxzZXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoby5t YXAodGhpcyxmdW5jdGlvbihHKXtyZXR1cm4gby5maW5kKEUsRyl9KSksImZpbmQiLEUpfX0sY2xvbmU6 ZnVuY3Rpb24oRyl7dmFyIEU9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighby5zdXBwb3J0Lm5vQ2xvbmVF dmVudCYmIW8uaXNYTUxEb2ModGhpcykpe3ZhciBJPXRoaXMub3V0ZXJIVE1MO2lmKCFJKXt2YXIgSj10 aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Si5hcHBlbmRDaGlsZCh0aGlzLmNs b25lTm9kZSh0cnVlKSk7ST1KLmlubmVySFRNTH1yZXR1cm4gby5jbGVhbihbSS5yZXBsYWNlKC8galF1 ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpLnJlcGxhY2UoL15ccyovLCIiKV0pWzBdfWVsc2V7cmV0 dXJuIHRoaXMuY2xvbmVOb2RlKHRydWUpfX0pO2lmKEc9PT10cnVlKXt2YXIgSD10aGlzLmZpbmQoIioi KS5hbmRTZWxmKCksRj0wO0UuZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1bmN0aW9uKCl7aWYodGhp cy5ub2RlTmFtZSE9PUhbRl0ubm9kZU5hbWUpe3JldHVybn12YXIgST1vLmRhdGEoSFtGXSwiZXZlbnRz Iik7Zm9yKHZhciBLIGluIEkpe2Zvcih2YXIgSiBpbiBJW0tdKXtvLmV2ZW50LmFkZCh0aGlzLEssSVtL XVtKXSxJW0tdW0pdLmRhdGEpfX1GKyt9KX1yZXR1cm4gRX0sZmlsdGVyOmZ1bmN0aW9uKEUpe3JldHVy biB0aGlzLnB1c2hTdGFjayhvLmlzRnVuY3Rpb24oRSkmJm8uZ3JlcCh0aGlzLGZ1bmN0aW9uKEcsRil7 cmV0dXJuIEUuY2FsbChHLEYpfSl8fG8ubXVsdGlGaWx0ZXIoRSxvLmdyZXAodGhpcyxmdW5jdGlvbihG KXtyZXR1cm4gRi5ub2RlVHlwZT09PTF9KSksImZpbHRlciIsRSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oRSl7 dmFyIEc9by5leHByLm1hdGNoLlBPUy50ZXN0KEUpP28oRSk6bnVsbCxGPTA7cmV0dXJuIHRoaXMubWFw KGZ1bmN0aW9uKCl7dmFyIEg9dGhpczt3aGlsZShIJiZILm93bmVyRG9jdW1lbnQpe2lmKEc/Ry5pbmRl eChIKT4tMTpvKEgpLmlzKEUpKXtvLmRhdGEoSCwiY2xvc2VzdCIsRik7cmV0dXJuIEh9SD1ILnBhcmVu dE5vZGU7RisrfX0pfSxub3Q6ZnVuY3Rpb24oRSl7aWYodHlwZW9mIEU9PT0ic3RyaW5nIil7aWYoZi50 ZXN0KEUpKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tdWx0aUZpbHRlcihFLHRoaXMsdHJ1ZSksIm5v dCIsRSl9ZWxzZXtFPW8ubXVsdGlGaWx0ZXIoRSx0aGlzKX19dmFyIEY9RS5sZW5ndGgmJkVbRS5sZW5n dGgtMV0hPT1nJiYhRS5ub2RlVHlwZTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4g Rj9vLmluQXJyYXkodGhpcyxFKTwwOnRoaXMhPUV9KX0sYWRkOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlz LnB1c2hTdGFjayhvLnVuaXF1ZShvLm1lcmdlKHRoaXMuZ2V0KCksdHlwZW9mIEU9PT0ic3RyaW5nIj9v KEUpOm8ubWFrZUFycmF5KEUpKSkpfSxpczpmdW5jdGlvbihFKXtyZXR1cm4gISFFJiZvLm11bHRpRmls dGVyKEUsdGhpcykubGVuZ3RoPjB9LGhhc0NsYXNzOmZ1bmN0aW9uKEUpe3JldHVybiAhIUUmJnRoaXMu aXMoIi4iK0UpfSx2YWw6ZnVuY3Rpb24oSyl7aWYoSz09PWcpe3ZhciBFPXRoaXNbMF07aWYoRSl7aWYo by5ub2RlTmFtZShFLCJvcHRpb24iKSl7cmV0dXJuKEUuYXR0cmlidXRlcy52YWx1ZXx8e30pLnNwZWNp ZmllZD9FLnZhbHVlOkUudGV4dH1pZihvLm5vZGVOYW1lKEUsInNlbGVjdCIpKXt2YXIgST1FLnNlbGVj dGVkSW5kZXgsTD1bXSxNPUUub3B0aW9ucyxIPUUudHlwZT09InNlbGVjdC1vbmUiO2lmKEk8MCl7cmV0 dXJuIG51bGx9Zm9yKHZhciBGPUg/STowLEo9SD9JKzE6TS5sZW5ndGg7RjxKO0YrKyl7dmFyIEc9TVtG XTtpZihHLnNlbGVjdGVkKXtLPW8oRykudmFsKCk7aWYoSCl7cmV0dXJuIEt9TC5wdXNoKEspfX1yZXR1 cm4gTH1yZXR1cm4oRS52YWx1ZXx8IiIpLnJlcGxhY2UoL1xyL2csIiIpfXJldHVybiBnfWlmKHR5cGVv ZiBLPT09Im51bWJlciIpe0srPSIifXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5v ZGVUeXBlIT0xKXtyZXR1cm59aWYoby5pc0FycmF5KEspJiYvcmFkaW98Y2hlY2tib3gvLnRlc3QodGhp cy50eXBlKSl7dGhpcy5jaGVja2VkPShvLmluQXJyYXkodGhpcy52YWx1ZSxLKT49MHx8by5pbkFycmF5 KHRoaXMubmFtZSxLKT49MCl9ZWxzZXtpZihvLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgTj1v Lm1ha2VBcnJheShLKTtvKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVk PShvLmluQXJyYXkodGhpcy52YWx1ZSxOKT49MHx8by5pbkFycmF5KHRoaXMudGV4dCxOKT49MCl9KTtp ZighTi5sZW5ndGgpe3RoaXMuc2VsZWN0ZWRJbmRleD0tMX19ZWxzZXt0aGlzLnZhbHVlPUt9fX0pfSxo dG1sOmZ1bmN0aW9uKEUpe3JldHVybiBFPT09Zz8odGhpc1swXT90aGlzWzBdLmlubmVySFRNTC5yZXBs YWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpOm51bGwpOnRoaXMuZW1wdHkoKS5hcHBl bmQoRSl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmFmdGVyKEUpLnJlbW92ZSgp fSxlcTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5zbGljZShFLCtFKzEpfSxzbGljZTpmdW5jdGlvbigp e3JldHVybiB0aGlzLnB1c2hTdGFjayhBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkodGhpcyxhcmd1 bWVudHMpLCJzbGljZSIsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIs IikpfSxtYXA6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubWFwKHRoaXMsZnVuY3Rp b24oRyxGKXtyZXR1cm4gRS5jYWxsKEcsRixHKX0pKX0sYW5kU2VsZjpmdW5jdGlvbigpe3JldHVybiB0 aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpfSxkb21NYW5pcDpmdW5jdGlvbihKLE0sTCl7aWYodGhpc1sw XSl7dmFyIEk9KHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1swXSkuY3JlYXRlRG9jdW1lbnRGcmFn bWVudCgpLEY9by5jbGVhbihKLCh0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLEkpLEg9SS5m aXJzdENoaWxkO2lmKEgpe2Zvcih2YXIgRz0wLEU9dGhpcy5sZW5ndGg7RzxFO0crKyl7TC5jYWxsKEso dGhpc1tHXSxIKSx0aGlzLmxlbmd0aD4xfHxHPjA/SS5jbG9uZU5vZGUodHJ1ZSk6SSl9fWlmKEYpe28u ZWFjaChGLHopfX1yZXR1cm4gdGhpcztmdW5jdGlvbiBLKE4sTyl7cmV0dXJuIE0mJm8ubm9kZU5hbWUo TiwidGFibGUiKSYmby5ub2RlTmFtZShPLCJ0ciIpPyhOLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9k eSIpWzBdfHxOLmFwcGVuZENoaWxkKE4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIp KSk6Tn19fTtvLmZuLmluaXQucHJvdG90eXBlPW8uZm47ZnVuY3Rpb24geihFLEYpe2lmKEYuc3JjKXtv LmFqYXgoe3VybDpGLnNyYyxhc3luYzpmYWxzZSxkYXRhVHlwZToic2NyaXB0In0pfWVsc2V7by5nbG9i YWxFdmFsKEYudGV4dHx8Ri50ZXh0Q29udGVudHx8Ri5pbm5lckhUTUx8fCIiKX1pZihGLnBhcmVudE5v ZGUpe0YucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChGKX19ZnVuY3Rpb24gZSgpe3JldHVybiArbmV3IERh dGV9by5leHRlbmQ9by5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgSj1hcmd1bWVudHNbMF18fHt9LEg9 MSxJPWFyZ3VtZW50cy5sZW5ndGgsRT1mYWxzZSxHO2lmKHR5cGVvZiBKPT09ImJvb2xlYW4iKXtFPUo7 Sj1hcmd1bWVudHNbMV18fHt9O0g9Mn1pZih0eXBlb2YgSiE9PSJvYmplY3QiJiYhby5pc0Z1bmN0aW9u KEopKXtKPXt9fWlmKEk9PUgpe0o9dGhpczstLUh9Zm9yKDtIPEk7SCsrKXtpZigoRz1hcmd1bWVudHNb SF0pIT1udWxsKXtmb3IodmFyIEYgaW4gRyl7dmFyIEs9SltGXSxMPUdbRl07aWYoSj09PUwpe2NvbnRp bnVlfWlmKEUmJkwmJnR5cGVvZiBMPT09Im9iamVjdCImJiFMLm5vZGVUeXBlKXtKW0ZdPW8uZXh0ZW5k KEUsS3x8KEwubGVuZ3RoIT1udWxsP1tdOnt9KSxMKX1lbHNle2lmKEwhPT1nKXtKW0ZdPUx9fX19fXJl dHVybiBKfTt2YXIgYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWln aHQvaSxxPWRvY3VtZW50LmRlZmF1bHRWaWV3fHx7fSxzPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7 by5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oRSl7bC4kPXA7aWYoRSl7bC5qUXVlcnk9eX1yZXR1 cm4gb30saXNGdW5jdGlvbjpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgRnVu Y3Rpb25dIn0saXNBcnJheTpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgQXJy YXldIn0saXNYTUxEb2M6ZnVuY3Rpb24oRSl7cmV0dXJuIEUubm9kZVR5cGU9PT05JiZFLmRvY3VtZW50 RWxlbWVudC5ub2RlTmFtZSE9PSJIVE1MInx8ISFFLm93bmVyRG9jdW1lbnQmJm8uaXNYTUxEb2MoRS5v d25lckRvY3VtZW50KX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihHKXtpZihHJiYvXFMvLnRlc3QoRykpe3Zh ciBGPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3Vt ZW50RWxlbWVudCxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0UudHlwZT0idGV4dC9q YXZhc2NyaXB0IjtpZihvLnN1cHBvcnQuc2NyaXB0RXZhbCl7RS5hcHBlbmRDaGlsZChkb2N1bWVudC5j cmVhdGVUZXh0Tm9kZShHKSl9ZWxzZXtFLnRleHQ9R31GLmluc2VydEJlZm9yZShFLEYuZmlyc3RDaGls ZCk7Ri5yZW1vdmVDaGlsZChFKX19LG5vZGVOYW1lOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIEYubm9kZU5h bWUmJkYubm9kZU5hbWUudG9VcHBlckNhc2UoKT09RS50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9u KEcsSyxGKXt2YXIgRSxIPTAsST1HLmxlbmd0aDtpZihGKXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYo Sy5hcHBseShHW0VdLEYpPT09ZmFsc2Upe2JyZWFrfX19ZWxzZXtmb3IoO0g8STspe2lmKEsuYXBwbHko R1tIKytdLEYpPT09ZmFsc2Upe2JyZWFrfX19fWVsc2V7aWYoST09PWcpe2ZvcihFIGluIEcpe2lmKEsu Y2FsbChHW0VdLEUsR1tFXSk9PT1mYWxzZSl7YnJlYWt9fX1lbHNle2Zvcih2YXIgSj1HWzBdO0g8SSYm Sy5jYWxsKEosSCxKKSE9PWZhbHNlO0o9R1srK0hdKXt9fX1yZXR1cm4gR30scHJvcDpmdW5jdGlvbihI LEksRyxGLEUpe2lmKG8uaXNGdW5jdGlvbihJKSl7ST1JLmNhbGwoSCxGKX1yZXR1cm4gdHlwZW9mIEk9 PT0ibnVtYmVyIiYmRz09ImN1ckNTUyImJiFiLnRlc3QoRSk/SSsicHgiOkl9LGNsYXNzTmFtZTp7YWRk OmZ1bmN0aW9uKEUsRil7by5lYWNoKChGfHwiIikuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKEcsSCl7aWYo RS5ub2RlVHlwZT09MSYmIW8uY2xhc3NOYW1lLmhhcyhFLmNsYXNzTmFtZSxIKSl7RS5jbGFzc05hbWUr PShFLmNsYXNzTmFtZT8iICI6IiIpK0h9fSl9LHJlbW92ZTpmdW5jdGlvbihFLEYpe2lmKEUubm9kZVR5 cGU9PTEpe0UuY2xhc3NOYW1lPUYhPT1nP28uZ3JlcChFLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyksZnVu Y3Rpb24oRyl7cmV0dXJuICFvLmNsYXNzTmFtZS5oYXMoRixHKX0pLmpvaW4oIiAiKToiIn19LGhhczpm dW5jdGlvbihGLEUpe3JldHVybiBGJiZvLmluQXJyYXkoRSwoRi5jbGFzc05hbWV8fEYpLnRvU3RyaW5n KCkuc3BsaXQoL1xzKy8pKT4tMX19LHN3YXA6ZnVuY3Rpb24oSCxHLEkpe3ZhciBFPXt9O2Zvcih2YXIg RiBpbiBHKXtFW0ZdPUguc3R5bGVbRl07SC5zdHlsZVtGXT1HW0ZdfUkuY2FsbChIKTtmb3IodmFyIEYg aW4gRyl7SC5zdHlsZVtGXT1FW0ZdfX0sY3NzOmZ1bmN0aW9uKEgsRixKLEUpe2lmKEY9PSJ3aWR0aCJ8 fEY9PSJoZWlnaHQiKXt2YXIgTCxHPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRl biIsZGlzcGxheToiYmxvY2sifSxLPUY9PSJ3aWR0aCI/WyJMZWZ0IiwiUmlnaHQiXTpbIlRvcCIsIkJv dHRvbSJdO2Z1bmN0aW9uIEkoKXtMPUY9PSJ3aWR0aCI/SC5vZmZzZXRXaWR0aDpILm9mZnNldEhlaWdo dDtpZihFPT09ImJvcmRlciIpe3JldHVybn1vLmVhY2goSyxmdW5jdGlvbigpe2lmKCFFKXtMLT1wYXJz ZUZsb2F0KG8uY3VyQ1NTKEgsInBhZGRpbmciK3RoaXMsdHJ1ZSkpfHwwfWlmKEU9PT0ibWFyZ2luIil7 TCs9cGFyc2VGbG9hdChvLmN1ckNTUyhILCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHwwfWVsc2V7TC09cGFy c2VGbG9hdChvLmN1ckNTUyhILCJib3JkZXIiK3RoaXMrIldpZHRoIix0cnVlKSl8fDB9fSl9aWYoSC5v ZmZzZXRXaWR0aCE9PTApe0koKX1lbHNle28uc3dhcChILEcsSSl9cmV0dXJuIE1hdGgubWF4KDAsTWF0 aC5yb3VuZChMKSl9cmV0dXJuIG8uY3VyQ1NTKEgsRixKKX0sY3VyQ1NTOmZ1bmN0aW9uKEksRixHKXt2 YXIgTCxFPUkuc3R5bGU7aWYoRj09Im9wYWNpdHkiJiYhby5zdXBwb3J0Lm9wYWNpdHkpe0w9by5hdHRy KEUsIm9wYWNpdHkiKTtyZXR1cm4gTD09IiI/IjEiOkx9aWYoRi5tYXRjaCgvZmxvYXQvaSkpe0Y9d31p ZighRyYmRSYmRVtGXSl7TD1FW0ZdfWVsc2V7aWYocS5nZXRDb21wdXRlZFN0eWxlKXtpZihGLm1hdGNo KC9mbG9hdC9pKSl7Rj0iZmxvYXQifUY9Ri5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJD YXNlKCk7dmFyIE09cS5nZXRDb21wdXRlZFN0eWxlKEksbnVsbCk7aWYoTSl7TD1NLmdldFByb3BlcnR5 VmFsdWUoRil9aWYoRj09Im9wYWNpdHkiJiZMPT0iIil7TD0iMSJ9fWVsc2V7aWYoSS5jdXJyZW50U3R5 bGUpe3ZhciBKPUYucmVwbGFjZSgvXC0oXHcpL2csZnVuY3Rpb24oTixPKXtyZXR1cm4gTy50b1VwcGVy Q2FzZSgpfSk7TD1JLmN1cnJlbnRTdHlsZVtGXXx8SS5jdXJyZW50U3R5bGVbSl07aWYoIS9eXGQrKHB4 KT8kL2kudGVzdChMKSYmL15cZC8udGVzdChMKSl7dmFyIEg9RS5sZWZ0LEs9SS5ydW50aW1lU3R5bGUu bGVmdDtJLnJ1bnRpbWVTdHlsZS5sZWZ0PUkuY3VycmVudFN0eWxlLmxlZnQ7RS5sZWZ0PUx8fDA7TD1F LnBpeGVsTGVmdCsicHgiO0UubGVmdD1IO0kucnVudGltZVN0eWxlLmxlZnQ9S319fX1yZXR1cm4gTH0s Y2xlYW46ZnVuY3Rpb24oRixLLEkpe0s9S3x8ZG9jdW1lbnQ7aWYodHlwZW9mIEsuY3JlYXRlRWxlbWVu dD09PSJ1bmRlZmluZWQiKXtLPUsub3duZXJEb2N1bWVudHx8S1swXSYmS1swXS5vd25lckRvY3VtZW50 fHxkb2N1bWVudH1pZighSSYmRi5sZW5ndGg9PT0xJiZ0eXBlb2YgRlswXT09PSJzdHJpbmciKXt2YXIg SD0vXjwoXHcrKVxzKlwvPz4kLy5leGVjKEZbMF0pO2lmKEgpe3JldHVybltLLmNyZWF0ZUVsZW1lbnQo SFsxXSldfX12YXIgRz1bXSxFPVtdLEw9Sy5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmVhY2goRixmdW5j dGlvbihQLFMpe2lmKHR5cGVvZiBTPT09Im51bWJlciIpe1MrPSIifWlmKCFTKXtyZXR1cm59aWYodHlw ZW9mIFM9PT0ic3RyaW5nIil7Uz1TLnJlcGxhY2UoLyg8KFx3KylbXj5dKj8pXC8+L2csZnVuY3Rpb24o VSxWLFQpe3JldHVybiBULm1hdGNoKC9eKGFiYnJ8YnJ8Y29sfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFy YW18aHJ8YXJlYXxlbWJlZCkkL2kpP1U6VisiPjwvIitUKyI+In0pO3ZhciBPPVMucmVwbGFjZSgvXlxz Ky8sIiIpLnN1YnN0cmluZygwLDEwKS50b0xvd2VyQ2FzZSgpO3ZhciBRPSFPLmluZGV4T2YoIjxvcHQi KSYmWzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXXx8IU8uaW5kZXhP ZigiPGxlZyIpJiZbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il18fE8ubWF0Y2goL148KHRoZWFk fHRib2R5fHRmb290fGNvbGd8Y2FwKS8pJiZbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il18fCFPLmluZGV4 T2YoIjx0ciIpJiZbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il18fCghTy5pbmRl eE9mKCI8dGQiKXx8IU8uaW5kZXhPZigiPHRoIikpJiZbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90 cj48L3Rib2R5PjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjxjb2wiKSYmWzIsIjx0YWJsZT48dGJvZHk+ PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdfHwhby5zdXBwb3J0Lmh0bWxT ZXJpYWxpemUmJlsxLCJkaXY8ZGl2PiIsIjwvZGl2PiJdfHxbMCwiIiwiIl07TC5pbm5lckhUTUw9UVsx XStTK1FbMl07d2hpbGUoUVswXS0tKXtMPUwubGFzdENoaWxkfWlmKCFvLnN1cHBvcnQudGJvZHkpe3Zh ciBSPS88dGJvZHkvaS50ZXN0KFMpLE49IU8uaW5kZXhPZigiPHRhYmxlIikmJiFSP0wuZmlyc3RDaGls ZCYmTC5maXJzdENoaWxkLmNoaWxkTm9kZXM6UVsxXT09Ijx0YWJsZT4iJiYhUj9MLmNoaWxkTm9kZXM6 W107Zm9yKHZhciBNPU4ubGVuZ3RoLTE7TT49MDstLU0pe2lmKG8ubm9kZU5hbWUoTltNXSwidGJvZHki KSYmIU5bTV0uY2hpbGROb2Rlcy5sZW5ndGgpe05bTV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChOW01d KX19fWlmKCFvLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJi9eXHMvLnRlc3QoUykpe0wuaW5zZXJ0 QmVmb3JlKEsuY3JlYXRlVGV4dE5vZGUoUy5tYXRjaCgvXlxzKi8pWzBdKSxMLmZpcnN0Q2hpbGQpfVM9 by5tYWtlQXJyYXkoTC5jaGlsZE5vZGVzKX1pZihTLm5vZGVUeXBlKXtHLnB1c2goUyl9ZWxzZXtHPW8u bWVyZ2UoRyxTKX19KTtpZihJKXtmb3IodmFyIEo9MDtHW0pdO0orKyl7aWYoby5ub2RlTmFtZShHW0pd LCJzY3JpcHQiKSYmKCFHW0pdLnR5cGV8fEdbSl0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2 YXNjcmlwdCIpKXtFLnB1c2goR1tKXS5wYXJlbnROb2RlP0dbSl0ucGFyZW50Tm9kZS5yZW1vdmVDaGls ZChHW0pdKTpHW0pdKX1lbHNle2lmKEdbSl0ubm9kZVR5cGU9PT0xKXtHLnNwbGljZS5hcHBseShHLFtK KzEsMF0uY29uY2F0KG8ubWFrZUFycmF5KEdbSl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIp KSkpfUkuYXBwZW5kQ2hpbGQoR1tKXSl9fXJldHVybiBFfXJldHVybiBHfSxhdHRyOmZ1bmN0aW9uKEos RyxLKXtpZighSnx8Si5ub2RlVHlwZT09M3x8Si5ub2RlVHlwZT09OCl7cmV0dXJuIGd9dmFyIEg9IW8u aXNYTUxEb2MoSiksTD1LIT09ZztHPUgmJm8ucHJvcHNbR118fEc7aWYoSi50YWdOYW1lKXt2YXIgRj0v aHJlZnxzcmN8c3R5bGUvLnRlc3QoRyk7aWYoRz09InNlbGVjdGVkIiYmSi5wYXJlbnROb2RlKXtKLnBh cmVudE5vZGUuc2VsZWN0ZWRJbmRleH1pZihHIGluIEomJkgmJiFGKXtpZihMKXtpZihHPT0idHlwZSIm Jm8ubm9kZU5hbWUoSiwiaW5wdXQiKSYmSi5wYXJlbnROb2RlKXt0aHJvdyJ0eXBlIHByb3BlcnR5IGNh bid0IGJlIGNoYW5nZWQifUpbR109S31pZihvLm5vZGVOYW1lKEosImZvcm0iKSYmSi5nZXRBdHRyaWJ1 dGVOb2RlKEcpKXtyZXR1cm4gSi5nZXRBdHRyaWJ1dGVOb2RlKEcpLm5vZGVWYWx1ZX1pZihHPT0idGFi SW5kZXgiKXt2YXIgST1KLmdldEF0dHJpYnV0ZU5vZGUoInRhYkluZGV4Iik7cmV0dXJuIEkmJkkuc3Bl Y2lmaWVkP0kudmFsdWU6Si5ub2RlTmFtZS5tYXRjaCgvKGJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0 fHRleHRhcmVhKS9pKT8wOkoubm9kZU5hbWUubWF0Y2goL14oYXxhcmVhKSQvaSkmJkouaHJlZj8wOmd9 cmV0dXJuIEpbR119aWYoIW8uc3VwcG9ydC5zdHlsZSYmSCYmRz09InN0eWxlIil7cmV0dXJuIG8uYXR0 cihKLnN0eWxlLCJjc3NUZXh0IixLKX1pZihMKXtKLnNldEF0dHJpYnV0ZShHLCIiK0spfXZhciBFPSFv LnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJkgmJkY/Si5nZXRBdHRyaWJ1dGUoRywyKTpKLmdldEF0dHJp YnV0ZShHKTtyZXR1cm4gRT09PW51bGw/ZzpFfWlmKCFvLnN1cHBvcnQub3BhY2l0eSYmRz09Im9wYWNp dHkiKXtpZihMKXtKLnpvb209MTtKLmZpbHRlcj0oSi5maWx0ZXJ8fCIiKS5yZXBsYWNlKC9hbHBoYVwo W14pXSpcKS8sIiIpKyhwYXJzZUludChLKSsiIj09Ik5hTiI/IiI6ImFscGhhKG9wYWNpdHk9IitLKjEw MCsiKSIpfXJldHVybiBKLmZpbHRlciYmSi5maWx0ZXIuaW5kZXhPZigib3BhY2l0eT0iKT49MD8ocGFy c2VGbG9hdChKLmZpbHRlci5tYXRjaCgvb3BhY2l0eT0oW14pXSopLylbMV0pLzEwMCkrIiI6IiJ9Rz1H LnJlcGxhY2UoLy0oW2Etel0pL2lnLGZ1bmN0aW9uKE0sTil7cmV0dXJuIE4udG9VcHBlckNhc2UoKX0p O2lmKEwpe0pbR109S31yZXR1cm4gSltHXX0sdHJpbTpmdW5jdGlvbihFKXtyZXR1cm4oRXx8IiIpLnJl cGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKEcpe3ZhciBFPVtdO2lmKEch PW51bGwpe3ZhciBGPUcubGVuZ3RoO2lmKEY9PW51bGx8fHR5cGVvZiBHPT09InN0cmluZyJ8fG8uaXNG dW5jdGlvbihHKXx8Ry5zZXRJbnRlcnZhbCl7RVswXT1HfWVsc2V7d2hpbGUoRil7RVstLUZdPUdbRl19 fX1yZXR1cm4gRX0saW5BcnJheTpmdW5jdGlvbihHLEgpe2Zvcih2YXIgRT0wLEY9SC5sZW5ndGg7RTxG O0UrKyl7aWYoSFtFXT09PUcpe3JldHVybiBFfX1yZXR1cm4gLTF9LG1lcmdlOmZ1bmN0aW9uKEgsRSl7 dmFyIEY9MCxHLEk9SC5sZW5ndGg7aWYoIW8uc3VwcG9ydC5nZXRBbGwpe3doaWxlKChHPUVbRisrXSkh PW51bGwpe2lmKEcubm9kZVR5cGUhPTgpe0hbSSsrXT1HfX19ZWxzZXt3aGlsZSgoRz1FW0YrK10pIT1u dWxsKXtIW0krK109R319cmV0dXJuIEh9LHVuaXF1ZTpmdW5jdGlvbihLKXt2YXIgRj1bXSxFPXt9O3Ry eXtmb3IodmFyIEc9MCxIPUsubGVuZ3RoO0c8SDtHKyspe3ZhciBKPW8uZGF0YShLW0ddKTtpZighRVtK XSl7RVtKXT10cnVlO0YucHVzaChLW0ddKX19fWNhdGNoKEkpe0Y9S31yZXR1cm4gRn0sZ3JlcDpmdW5j dGlvbihGLEosRSl7dmFyIEc9W107Zm9yKHZhciBIPTAsST1GLmxlbmd0aDtIPEk7SCsrKXtpZighRSE9 IUooRltIXSxIKSl7Ry5wdXNoKEZbSF0pfX1yZXR1cm4gR30sbWFwOmZ1bmN0aW9uKEUsSil7dmFyIEY9 W107Zm9yKHZhciBHPTAsSD1FLmxlbmd0aDtHPEg7RysrKXt2YXIgST1KKEVbR10sRyk7aWYoSSE9bnVs bCl7RltGLmxlbmd0aF09SX19cmV0dXJuIEYuY29uY2F0LmFwcGx5KFtdLEYpfX0pO3ZhciBDPW5hdmln YXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtvLmJyb3dzZXI9e3ZlcnNpb246KEMubWF0Y2goLy4r KD86cnZ8aXR8cmF8aWUpW1wvOiBdKFtcZC5dKykvKXx8WzAsIjAiXSlbMV0sc2FmYXJpOi93ZWJraXQv LnRlc3QoQyksb3BlcmE6L29wZXJhLy50ZXN0KEMpLG1zaWU6L21zaWUvLnRlc3QoQykmJiEvb3BlcmEv LnRlc3QoQyksbW96aWxsYTovbW96aWxsYS8udGVzdChDKSYmIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50 ZXN0KEMpfTtvLmVhY2goe3BhcmVudDpmdW5jdGlvbihFKXtyZXR1cm4gRS5wYXJlbnROb2RlfSxwYXJl bnRzOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwYXJlbnROb2RlIil9LG5leHQ6ZnVuY3Rpb24o RSl7cmV0dXJuIG8ubnRoKEUsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihFKXtyZXR1cm4g by5udGgoRSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5k aXIoRSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwicHJl dmlvdXNTaWJsaW5nIil9LHNpYmxpbmdzOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5wYXJl bnROb2RlLmZpcnN0Q2hpbGQsRSl9LGNoaWxkcmVuOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmco RS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubm9kZU5hbWUoRSwiaWZy YW1lIik/RS5jb250ZW50RG9jdW1lbnR8fEUuY29udGVudFdpbmRvdy5kb2N1bWVudDpvLm1ha2VBcnJh eShFLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oRSxGKXtvLmZuW0VdPWZ1bmN0aW9uKEcpe3ZhciBIPW8u bWFwKHRoaXMsRik7aWYoRyYmdHlwZW9mIEc9PSJzdHJpbmciKXtIPW8ubXVsdGlGaWx0ZXIoRyxIKX1y ZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoSCksRSxHKX19KTtvLmVhY2goe2FwcGVuZFRvOiJh cHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVy OiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVu Y3Rpb24oRyl7dmFyIEo9W10sTD1vKEcpO2Zvcih2YXIgSz0wLEg9TC5sZW5ndGg7SzxIO0srKyl7dmFy IEk9KEs+MD90aGlzLmNsb25lKHRydWUpOnRoaXMpLmdldCgpO28uZm5bRl0uYXBwbHkobyhMW0tdKSxJ KTtKPUouY29uY2F0KEkpfXJldHVybiB0aGlzLnB1c2hTdGFjayhKLEUsRyl9fSk7by5lYWNoKHtyZW1v dmVBdHRyOmZ1bmN0aW9uKEUpe28uYXR0cih0aGlzLEUsIiIpO2lmKHRoaXMubm9kZVR5cGU9PTEpe3Ro aXMucmVtb3ZlQXR0cmlidXRlKEUpfX0sYWRkQ2xhc3M6ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUuYWRk KHRoaXMsRSl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKEUpe28uY2xhc3NOYW1lLnJlbW92ZSh0aGlzLEUp fSx0b2dnbGVDbGFzczpmdW5jdGlvbihGLEUpe2lmKHR5cGVvZiBFIT09ImJvb2xlYW4iKXtFPSFvLmNs YXNzTmFtZS5oYXModGhpcyxGKX1vLmNsYXNzTmFtZVtFPyJhZGQiOiJyZW1vdmUiXSh0aGlzLEYpfSxy ZW1vdmU6ZnVuY3Rpb24oRSl7aWYoIUV8fG8uZmlsdGVyKEUsW3RoaXNdKS5sZW5ndGgpe28oIioiLHRo aXMpLmFkZChbdGhpc10pLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzKTtvLnJlbW92 ZURhdGEodGhpcyl9KTtpZih0aGlzLnBhcmVudE5vZGUpe3RoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGls ZCh0aGlzKX19fSxlbXB0eTpmdW5jdGlvbigpe28odGhpcykuY2hpbGRyZW4oKS5yZW1vdmUoKTt3aGls ZSh0aGlzLmZpcnN0Q2hpbGQpe3RoaXMucmVtb3ZlQ2hpbGQodGhpcy5maXJzdENoaWxkKX19fSxmdW5j dGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEYsYXJndW1lbnRzKX19 KTtmdW5jdGlvbiBqKEUsRil7cmV0dXJuIEVbMF0mJnBhcnNlSW50KG8uY3VyQ1NTKEVbMF0sRix0cnVl KSwxMCl8fDB9dmFyIGg9ImpRdWVyeSIrZSgpLHY9MCxBPXt9O28uZXh0ZW5kKHtjYWNoZTp7fSxkYXRh OmZ1bmN0aW9uKEYsRSxHKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoIUgpe0g9RltoXT0rK3Z9aWYo RSYmIW8uY2FjaGVbSF0pe28uY2FjaGVbSF09e319aWYoRyE9PWcpe28uY2FjaGVbSF1bRV09R31yZXR1 cm4gRT9vLmNhY2hlW0hdW0VdOkh9LHJlbW92ZURhdGE6ZnVuY3Rpb24oRixFKXtGPUY9PWw/QTpGO3Zh ciBIPUZbaF07aWYoRSl7aWYoby5jYWNoZVtIXSl7ZGVsZXRlIG8uY2FjaGVbSF1bRV07RT0iIjtmb3Io RSBpbiBvLmNhY2hlW0hdKXticmVha31pZighRSl7by5yZW1vdmVEYXRhKEYpfX19ZWxzZXt0cnl7ZGVs ZXRlIEZbaF19Y2F0Y2goRyl7aWYoRi5yZW1vdmVBdHRyaWJ1dGUpe0YucmVtb3ZlQXR0cmlidXRlKGgp fX1kZWxldGUgby5jYWNoZVtIXX19LHF1ZXVlOmZ1bmN0aW9uKEYsRSxIKXtpZihGKXtFPShFfHwiZngi KSsicXVldWUiO3ZhciBHPW8uZGF0YShGLEUpO2lmKCFHfHxvLmlzQXJyYXkoSCkpe0c9by5kYXRhKEYs RSxvLm1ha2VBcnJheShIKSl9ZWxzZXtpZihIKXtHLnB1c2goSCl9fX1yZXR1cm4gR30sZGVxdWV1ZTpm dW5jdGlvbihILEcpe3ZhciBFPW8ucXVldWUoSCxHKSxGPUUuc2hpZnQoKTtpZighR3x8Rz09PSJmeCIp e0Y9RVswXX1pZihGIT09Zyl7Ri5jYWxsKEgpfX19KTtvLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihF LEcpe3ZhciBIPUUuc3BsaXQoIi4iKTtIWzFdPUhbMV0/Ii4iK0hbMV06IiI7aWYoRz09PWcpe3ZhciBG PXRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiK0hbMV0rIiEiLFtIWzBdXSk7aWYoRj09PWcmJnRo aXMubGVuZ3RoKXtGPW8uZGF0YSh0aGlzWzBdLEUpfXJldHVybiBGPT09ZyYmSFsxXT90aGlzLmRhdGEo SFswXSk6Rn1lbHNle3JldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK0hbMV0rIiEiLFtIWzBdLEdd KS5lYWNoKGZ1bmN0aW9uKCl7by5kYXRhKHRoaXMsRSxHKX0pfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihF KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5yZW1vdmVEYXRhKHRoaXMsRSl9KX0scXVldWU6 ZnVuY3Rpb24oRSxGKXtpZih0eXBlb2YgRSE9PSJzdHJpbmciKXtGPUU7RT0iZngifWlmKEY9PT1nKXty ZXR1cm4gby5xdWV1ZSh0aGlzWzBdLEUpfXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgRz1v LnF1ZXVlKHRoaXMsRSxGKTtpZihFPT0iZngiJiZHLmxlbmd0aD09MSl7R1swXS5jYWxsKHRoaXMpfX0p fSxkZXF1ZXVlOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmRlcXVldWUo dGhpcyxFKX0pfX0pOwovKgogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSAtIHYwLjkuMwogKiAg Q29weXJpZ2h0IDIwMDksIFRoZSBEb2pvIEZvdW5kYXRpb24KICogIFJlbGVhc2VkIHVuZGVyIHRoZSBN SVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNlcy4KICogIE1vcmUgaW5mb3JtYXRpb246IGh0dHA6Ly9zaXp6 bGVqcy5jb20vCiAqLwooZnVuY3Rpb24oKXt2YXIgUj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSsp K1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+ LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/L2csTD0wLEg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmlu Zzt2YXIgRj1mdW5jdGlvbihZLFUsYWIsYWMpe2FiPWFifHxbXTtVPVV8fGRvY3VtZW50O2lmKFUubm9k ZVR5cGUhPT0xJiZVLm5vZGVUeXBlIT09OSl7cmV0dXJuW119aWYoIVl8fHR5cGVvZiBZIT09InN0cmlu ZyIpe3JldHVybiBhYn12YXIgWj1bXSxXLGFmLGFpLFQsYWQsVixYPXRydWU7Ui5sYXN0SW5kZXg9MDt3 aGlsZSgoVz1SLmV4ZWMoWSkpIT09bnVsbCl7Wi5wdXNoKFdbMV0pO2lmKFdbMl0pe1Y9UmVnRXhwLnJp Z2h0Q29udGV4dDticmVha319aWYoWi5sZW5ndGg+MSYmTS5leGVjKFkpKXtpZihaLmxlbmd0aD09PTIm JkkucmVsYXRpdmVbWlswXV0pe2FmPUooWlswXStaWzFdLFUpfWVsc2V7YWY9SS5yZWxhdGl2ZVtaWzBd XT9bVV06RihaLnNoaWZ0KCksVSk7d2hpbGUoWi5sZW5ndGgpe1k9Wi5zaGlmdCgpO2lmKEkucmVsYXRp dmVbWV0pe1krPVouc2hpZnQoKX1hZj1KKFksYWYpfX19ZWxzZXt2YXIgYWU9YWM/e2V4cHI6Wi5wb3Ao KSxzZXQ6RShhYyl9OkYuZmluZChaLnBvcCgpLFoubGVuZ3RoPT09MSYmVS5wYXJlbnROb2RlP1UucGFy ZW50Tm9kZTpVLFEoVSkpO2FmPUYuZmlsdGVyKGFlLmV4cHIsYWUuc2V0KTtpZihaLmxlbmd0aD4wKXth aT1FKGFmKX1lbHNle1g9ZmFsc2V9d2hpbGUoWi5sZW5ndGgpe3ZhciBhaD1aLnBvcCgpLGFnPWFoO2lm KCFJLnJlbGF0aXZlW2FoXSl7YWg9IiJ9ZWxzZXthZz1aLnBvcCgpfWlmKGFnPT1udWxsKXthZz1VfUku cmVsYXRpdmVbYWhdKGFpLGFnLFEoVSkpfX1pZighYWkpe2FpPWFmfWlmKCFhaSl7dGhyb3ciU3ludGF4 IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIisoYWh8fFkpfWlmKEguY2FsbChhaSk9PT0i W29iamVjdCBBcnJheV0iKXtpZighWCl7YWIucHVzaC5hcHBseShhYixhaSl9ZWxzZXtpZihVLm5vZGVU eXBlPT09MSl7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJihhaVthYV09 PT10cnVlfHxhaVthYV0ubm9kZVR5cGU9PT0xJiZLKFUsYWlbYWFdKSkpe2FiLnB1c2goYWZbYWFdKX19 fWVsc2V7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJmFpW2FhXS5ub2Rl VHlwZT09PTEpe2FiLnB1c2goYWZbYWFdKX19fX19ZWxzZXtFKGFpLGFiKX1pZihWKXtGKFYsVSxhYixh Yyk7aWYoRyl7aGFzRHVwbGljYXRlPWZhbHNlO2FiLnNvcnQoRyk7aWYoaGFzRHVwbGljYXRlKXtmb3Io dmFyIGFhPTE7YWE8YWIubGVuZ3RoO2FhKyspe2lmKGFiW2FhXT09PWFiW2FhLTFdKXthYi5zcGxpY2Uo YWEtLSwxKX19fX19cmV0dXJuIGFifTtGLm1hdGNoZXM9ZnVuY3Rpb24oVCxVKXtyZXR1cm4gRihULG51 bGwsbnVsbCxVKX07Ri5maW5kPWZ1bmN0aW9uKGFhLFQsYWIpe3ZhciBaLFg7aWYoIWFhKXtyZXR1cm5b XX1mb3IodmFyIFc9MCxWPUkub3JkZXIubGVuZ3RoO1c8VjtXKyspe3ZhciBZPUkub3JkZXJbV10sWDtp ZigoWD1JLm1hdGNoW1ldLmV4ZWMoYWEpKSl7dmFyIFU9UmVnRXhwLmxlZnRDb250ZXh0O2lmKFUuc3Vi c3RyKFUubGVuZ3RoLTEpIT09IlxcIil7WFsxXT0oWFsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO1o9 SS5maW5kW1ldKFgsVCxhYik7aWYoWiE9bnVsbCl7YWE9YWEucmVwbGFjZShJLm1hdGNoW1ldLCIiKTti cmVha319fX1pZighWil7Wj1ULmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9cmV0dXJue3NldDpaLGV4 cHI6YWF9fTtGLmZpbHRlcj1mdW5jdGlvbihhZCxhYyxhZyxXKXt2YXIgVj1hZCxhaT1bXSxhYT1hYyxZ LFQsWj1hYyYmYWNbMF0mJlEoYWNbMF0pO3doaWxlKGFkJiZhYy5sZW5ndGgpe2Zvcih2YXIgYWIgaW4g SS5maWx0ZXIpe2lmKChZPUkubWF0Y2hbYWJdLmV4ZWMoYWQpKSE9bnVsbCl7dmFyIFU9SS5maWx0ZXJb YWJdLGFoLGFmO1Q9ZmFsc2U7aWYoYWE9PWFpKXthaT1bXX1pZihJLnByZUZpbHRlclthYl0pe1k9SS5w cmVGaWx0ZXJbYWJdKFksYWEsYWcsYWksVyxaKTtpZighWSl7VD1haD10cnVlfWVsc2V7aWYoWT09PXRy dWUpe2NvbnRpbnVlfX19aWYoWSl7Zm9yKHZhciBYPTA7KGFmPWFhW1hdKSE9bnVsbDtYKyspe2lmKGFm KXthaD1VKGFmLFksWCxhYSk7dmFyIGFlPVdeISFhaDtpZihhZyYmYWghPW51bGwpe2lmKGFlKXtUPXRy dWV9ZWxzZXthYVtYXT1mYWxzZX19ZWxzZXtpZihhZSl7YWkucHVzaChhZik7VD10cnVlfX19fX1pZihh aCE9PWcpe2lmKCFhZyl7YWE9YWl9YWQ9YWQucmVwbGFjZShJLm1hdGNoW2FiXSwiIik7aWYoIVQpe3Jl dHVybltdfWJyZWFrfX19aWYoYWQ9PVYpe2lmKFQ9PW51bGwpe3Rocm93IlN5bnRheCBlcnJvciwgdW5y ZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYWR9ZWxzZXticmVha319Vj1hZH1yZXR1cm4gYWF9O3ZhciBJ PUYuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdc dTAwYzAtXHVGRkZGXy1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwu KSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKylbJyJdKlxd LyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKVxzKig/OihcUz89KVxzKihb JyJdKikoLio/KVwzfClccypcXS8sVEFHOi9eKCg/Oltcd1x1MDBjMC1cdUZGRkZcKl8tXXxcXC4pKykv LENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSop XCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/ KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspKD86XCgoWyci XSopKCg/OlwoW15cKV0rXCl8W15cMlwoXCldKikrKVwyXCkpPy99LGF0dHJNYXA6eyJjbGFzcyI6ImNs YXNzTmFtZSIsImZvciI6Imh0bWxGb3IifSxhdHRySGFuZGxlOntocmVmOmZ1bmN0aW9uKFQpe3JldHVy biBULmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0scmVsYXRpdmU6eyIrIjpmdW5jdGlvbihhYSxULFope3Zh ciBYPXR5cGVvZiBUPT09InN0cmluZyIsYWI9WCYmIS9cVy8udGVzdChUKSxZPVgmJiFhYjtpZihhYiYm IVope1Q9VC50b1VwcGVyQ2FzZSgpfWZvcih2YXIgVz0wLFY9YWEubGVuZ3RoLFU7VzxWO1crKyl7aWYo KFU9YWFbV10pKXt3aGlsZSgoVT1VLnByZXZpb3VzU2libGluZykmJlUubm9kZVR5cGUhPT0xKXt9YWFb V109WXx8VSYmVS5ub2RlTmFtZT09PVQ/VXx8ZmFsc2U6VT09PVR9fWlmKFkpe0YuZmlsdGVyKFQsYWEs dHJ1ZSl9fSwiPiI6ZnVuY3Rpb24oWixVLGFhKXt2YXIgWD10eXBlb2YgVT09PSJzdHJpbmciO2lmKFgm JiEvXFcvLnRlc3QoVSkpe1U9YWE/VTpVLnRvVXBwZXJDYXNlKCk7Zm9yKHZhciBWPTAsVD1aLmxlbmd0 aDtWPFQ7VisrKXt2YXIgWT1aW1ZdO2lmKFkpe3ZhciBXPVkucGFyZW50Tm9kZTtaW1ZdPVcubm9kZU5h bWU9PT1VP1c6ZmFsc2V9fX1lbHNle2Zvcih2YXIgVj0wLFQ9Wi5sZW5ndGg7VjxUO1YrKyl7dmFyIFk9 WltWXTtpZihZKXtaW1ZdPVg/WS5wYXJlbnROb2RlOlkucGFyZW50Tm9kZT09PVV9fWlmKFgpe0YuZmls dGVyKFUsWix0cnVlKX19fSwiIjpmdW5jdGlvbihXLFUsWSl7dmFyIFY9TCsrLFQ9UztpZighVS5tYXRj aCgvXFcvKSl7dmFyIFg9VT1ZP1U6VS50b1VwcGVyQ2FzZSgpO1Q9UH1UKCJwYXJlbnROb2RlIixVLFYs VyxYLFkpfSwifiI6ZnVuY3Rpb24oVyxVLFkpe3ZhciBWPUwrKyxUPVM7aWYodHlwZW9mIFU9PT0ic3Ry aW5nIiYmIVUubWF0Y2goL1xXLykpe3ZhciBYPVU9WT9VOlUudG9VcHBlckNhc2UoKTtUPVB9VCgicHJl dmlvdXNTaWJsaW5nIixVLFYsVyxYLFkpfX0sZmluZDp7SUQ6ZnVuY3Rpb24oVSxWLFcpe2lmKHR5cGVv ZiBWLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFXKXt2YXIgVD1WLmdldEVsZW1lbnRCeUlk KFVbMV0pO3JldHVybiBUP1tUXTpbXX19LE5BTUU6ZnVuY3Rpb24oVixZLFope2lmKHR5cGVvZiBZLmdl dEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5lZCIpe3ZhciBVPVtdLFg9WS5nZXRFbGVtZW50c0J5TmFt ZShWWzFdKTtmb3IodmFyIFc9MCxUPVgubGVuZ3RoO1c8VDtXKyspe2lmKFhbV10uZ2V0QXR0cmlidXRl KCJuYW1lIik9PT1WWzFdKXtVLnB1c2goWFtXXSl9fXJldHVybiBVLmxlbmd0aD09PTA/bnVsbDpVfX0s VEFHOmZ1bmN0aW9uKFQsVSl7cmV0dXJuIFUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVFsxXSl9fSxwcmVG aWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKFcsVSxWLFQsWixhYSl7Vz0iICIrV1sxXS5yZXBsYWNlKC9cXC9n LCIiKSsiICI7aWYoYWEpe3JldHVybiBXfWZvcih2YXIgWD0wLFk7KFk9VVtYXSkhPW51bGw7WCsrKXtp ZihZKXtpZihaXihZLmNsYXNzTmFtZSYmKCIgIitZLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoVyk+PTAp KXtpZighVil7VC5wdXNoKFkpfX1lbHNle2lmKFYpe1VbWF09ZmFsc2V9fX19cmV0dXJuIGZhbHNlfSxJ RDpmdW5jdGlvbihUKXtyZXR1cm4gVFsxXS5yZXBsYWNlKC9cXC9nLCIiKX0sVEFHOmZ1bmN0aW9uKFUs VCl7Zm9yKHZhciBWPTA7VFtWXT09PWZhbHNlO1YrKyl7fXJldHVybiBUW1ZdJiZRKFRbVl0pP1VbMV06 VVsxXS50b1VwcGVyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihUKXtpZihUWzFdPT0ibnRoIil7dmFyIFU9 LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhUWzJdPT0iZXZlbiImJiIybiJ8fFRbMl09PSJv ZGQiJiYiMm4rMSJ8fCEvXEQvLnRlc3QoVFsyXSkmJiIwbisiK1RbMl18fFRbMl0pO1RbMl09KFVbMV0r KFVbMl18fDEpKS0wO1RbM109VVszXS0wfVRbMF09TCsrO3JldHVybiBUfSxBVFRSOmZ1bmN0aW9uKFgs VSxWLFQsWSxaKXt2YXIgVz1YWzFdLnJlcGxhY2UoL1xcL2csIiIpO2lmKCFaJiZJLmF0dHJNYXBbV10p e1hbMV09SS5hdHRyTWFwW1ddfWlmKFhbMl09PT0ifj0iKXtYWzRdPSIgIitYWzRdKyIgIn1yZXR1cm4g WH0sUFNFVURPOmZ1bmN0aW9uKFgsVSxWLFQsWSl7aWYoWFsxXT09PSJub3QiKXtpZihYWzNdLm1hdGNo KFIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KFhbM10pKXtYWzNdPUYoWFszXSxudWxsLG51bGwsVSl9ZWxz ZXt2YXIgVz1GLmZpbHRlcihYWzNdLFUsVix0cnVlXlkpO2lmKCFWKXtULnB1c2guYXBwbHkoVCxXKX1y ZXR1cm4gZmFsc2V9fWVsc2V7aWYoSS5tYXRjaC5QT1MudGVzdChYWzBdKXx8SS5tYXRjaC5DSElMRC50 ZXN0KFhbMF0pKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIFh9LFBPUzpmdW5jdGlvbihUKXtULnVuc2hpZnQo dHJ1ZSk7cmV0dXJuIFR9fSxmaWx0ZXJzOntlbmFibGVkOmZ1bmN0aW9uKFQpe3JldHVybiBULmRpc2Fi bGVkPT09ZmFsc2UmJlQudHlwZSE9PSJoaWRkZW4ifSxkaXNhYmxlZDpmdW5jdGlvbihUKXtyZXR1cm4g VC5kaXNhYmxlZD09PXRydWV9LGNoZWNrZWQ6ZnVuY3Rpb24oVCl7cmV0dXJuIFQuY2hlY2tlZD09PXRy dWV9LHNlbGVjdGVkOmZ1bmN0aW9uKFQpe1QucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBU LnNlbGVjdGVkPT09dHJ1ZX0scGFyZW50OmZ1bmN0aW9uKFQpe3JldHVybiAhIVQuZmlyc3RDaGlsZH0s ZW1wdHk6ZnVuY3Rpb24oVCl7cmV0dXJuICFULmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihWLFUsVCl7 cmV0dXJuICEhRihUWzNdLFYpLmxlbmd0aH0saGVhZGVyOmZ1bmN0aW9uKFQpe3JldHVybi9oXGQvaS50 ZXN0KFQubm9kZU5hbWUpfSx0ZXh0OmZ1bmN0aW9uKFQpe3JldHVybiJ0ZXh0Ij09PVQudHlwZX0scmFk aW86ZnVuY3Rpb24oVCl7cmV0dXJuInJhZGlvIj09PVQudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oVCl7 cmV0dXJuImNoZWNrYm94Ij09PVQudHlwZX0sZmlsZTpmdW5jdGlvbihUKXtyZXR1cm4iZmlsZSI9PT1U LnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKFQpe3JldHVybiJwYXNzd29yZCI9PT1ULnR5cGV9LHN1Ym1p dDpmdW5jdGlvbihUKXtyZXR1cm4ic3VibWl0Ij09PVQudHlwZX0saW1hZ2U6ZnVuY3Rpb24oVCl7cmV0 dXJuImltYWdlIj09PVQudHlwZX0scmVzZXQ6ZnVuY3Rpb24oVCl7cmV0dXJuInJlc2V0Ij09PVQudHlw ZX0sYnV0dG9uOmZ1bmN0aW9uKFQpe3JldHVybiJidXR0b24iPT09VC50eXBlfHxULm5vZGVOYW1lLnRv VXBwZXJDYXNlKCk9PT0iQlVUVE9OIn0saW5wdXQ6ZnVuY3Rpb24oVCl7cmV0dXJuL2lucHV0fHNlbGVj dHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KFQubm9kZU5hbWUpfX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVu Y3Rpb24oVSxUKXtyZXR1cm4gVD09PTB9LGxhc3Q6ZnVuY3Rpb24oVixVLFQsVyl7cmV0dXJuIFU9PT1X Lmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFQlMj09PTB9LG9kZDpmdW5jdGlvbihV LFQpe3JldHVybiBUJTI9PT0xfSxsdDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU8VFszXS0wfSxndDpm dW5jdGlvbihWLFUsVCl7cmV0dXJuIFU+VFszXS0wfSxudGg6ZnVuY3Rpb24oVixVLFQpe3JldHVybiBU WzNdLTA9PVV9LGVxOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gVFszXS0wPT1VfX0sZmlsdGVyOntQU0VV RE86ZnVuY3Rpb24oWixWLFcsYWEpe3ZhciBVPVZbMV0sWD1JLmZpbHRlcnNbVV07aWYoWCl7cmV0dXJu IFgoWixXLFYsYWEpfWVsc2V7aWYoVT09PSJjb250YWlucyIpe3JldHVybihaLnRleHRDb250ZW50fHxa LmlubmVyVGV4dHx8IiIpLmluZGV4T2YoVlszXSk+PTB9ZWxzZXtpZihVPT09Im5vdCIpe3ZhciBZPVZb M107Zm9yKHZhciBXPTAsVD1ZLmxlbmd0aDtXPFQ7VysrKXtpZihZW1ddPT09Wil7cmV0dXJuIGZhbHNl fX1yZXR1cm4gdHJ1ZX19fX0sQ0hJTEQ6ZnVuY3Rpb24oVCxXKXt2YXIgWj1XWzFdLFU9VDtzd2l0Y2go Wil7Y2FzZSJvbmx5IjpjYXNlImZpcnN0Ijp3aGlsZShVPVUucHJldmlvdXNTaWJsaW5nKXtpZihVLm5v ZGVUeXBlPT09MSl7cmV0dXJuIGZhbHNlfX1pZihaPT0iZmlyc3QiKXtyZXR1cm4gdHJ1ZX1VPVQ7Y2Fz ZSJsYXN0Ijp3aGlsZShVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtyZXR1cm4gZmFs c2V9fXJldHVybiB0cnVlO2Nhc2UibnRoIjp2YXIgVj1XWzJdLGFjPVdbM107aWYoVj09MSYmYWM9PTAp e3JldHVybiB0cnVlfXZhciBZPVdbMF0sYWI9VC5wYXJlbnROb2RlO2lmKGFiJiYoYWIuc2l6Y2FjaGUh PT1ZfHwhVC5ub2RlSW5kZXgpKXt2YXIgWD0wO2ZvcihVPWFiLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNp Ymxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtVLm5vZGVJbmRleD0rK1h9fWFiLnNpemNhY2hlPVl9dmFy IGFhPVQubm9kZUluZGV4LWFjO2lmKFY9PTApe3JldHVybiBhYT09MH1lbHNle3JldHVybihhYSVWPT0w JiZhYS9WPj0wKX19fSxJRDpmdW5jdGlvbihVLFQpe3JldHVybiBVLm5vZGVUeXBlPT09MSYmVS5nZXRB dHRyaWJ1dGUoImlkIik9PT1UfSxUQUc6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oVD09PSIqIiYmVS5ub2Rl VHlwZT09PTEpfHxVLm5vZGVOYW1lPT09VH0sQ0xBU1M6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oIiAiKyhV LmNsYXNzTmFtZXx8VS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihUKT4tMX0sQVRU UjpmdW5jdGlvbihZLFcpe3ZhciBWPVdbMV0sVD1JLmF0dHJIYW5kbGVbVl0/SS5hdHRySGFuZGxlW1Zd KFkpOllbVl0hPW51bGw/WVtWXTpZLmdldEF0dHJpYnV0ZShWKSxaPVQrIiIsWD1XWzJdLFU9V1s0XTty ZXR1cm4gVD09bnVsbD9YPT09IiE9IjpYPT09Ij0iP1o9PT1VOlg9PT0iKj0iP1ouaW5kZXhPZihVKT49 MDpYPT09In49Ij8oIiAiK1orIiAiKS5pbmRleE9mKFUpPj0wOiFVP1omJlQhPT1mYWxzZTpYPT09IiE9 Ij9aIT1VOlg9PT0iXj0iP1ouaW5kZXhPZihVKT09PTA6WD09PSIkPSI/Wi5zdWJzdHIoWi5sZW5ndGgt VS5sZW5ndGgpPT09VTpYPT09Inw9Ij9aPT09VXx8Wi5zdWJzdHIoMCxVLmxlbmd0aCsxKT09PVUrIi0i OmZhbHNlfSxQT1M6ZnVuY3Rpb24oWCxVLFYsWSl7dmFyIFQ9VVsyXSxXPUkuc2V0RmlsdGVyc1tUXTtp ZihXKXtyZXR1cm4gVyhYLFYsVSxZKX19fX07dmFyIE09SS5tYXRjaC5QT1M7Zm9yKHZhciBPIGluIEku bWF0Y2gpe0kubWF0Y2hbT109UmVnRXhwKEkubWF0Y2hbT10uc291cmNlKy8oPyFbXlxbXSpcXSkoPyFb XlwoXSpcKSkvLnNvdXJjZSl9dmFyIEU9ZnVuY3Rpb24oVSxUKXtVPUFycmF5LnByb3RvdHlwZS5zbGlj ZS5jYWxsKFUpO2lmKFQpe1QucHVzaC5hcHBseShULFUpO3JldHVybiBUfXJldHVybiBVfTt0cnl7QXJy YXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMp fWNhdGNoKE4pe0U9ZnVuY3Rpb24oWCxXKXt2YXIgVT1XfHxbXTtpZihILmNhbGwoWCk9PT0iW29iamVj dCBBcnJheV0iKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShVLFgpfWVsc2V7aWYodHlwZW9mIFgu bGVuZ3RoPT09Im51bWJlciIpe2Zvcih2YXIgVj0wLFQ9WC5sZW5ndGg7VjxUO1YrKyl7VS5wdXNoKFhb Vl0pfX1lbHNle2Zvcih2YXIgVj0wO1hbVl07VisrKXtVLnB1c2goWFtWXSl9fX1yZXR1cm4gVX19dmFy IEc7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtHPWZ1 bmN0aW9uKFUsVCl7dmFyIFY9VS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihUKSY0Py0xOlU9PT1UPzA6 MTtpZihWPT09MCl7aGFzRHVwbGljYXRlPXRydWV9cmV0dXJuIFZ9fWVsc2V7aWYoInNvdXJjZUluZGV4 IiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpe0c9ZnVuY3Rpb24oVSxUKXt2YXIgVj1VLnNvdXJj ZUluZGV4LVQuc291cmNlSW5kZXg7aWYoVj09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBWfX1l bHNle2lmKGRvY3VtZW50LmNyZWF0ZVJhbmdlKXtHPWZ1bmN0aW9uKFcsVSl7dmFyIFY9Vy5vd25lckRv Y3VtZW50LmNyZWF0ZVJhbmdlKCksVD1VLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtWLnNlbGVj dE5vZGUoVyk7Vi5jb2xsYXBzZSh0cnVlKTtULnNlbGVjdE5vZGUoVSk7VC5jb2xsYXBzZSh0cnVlKTt2 YXIgWD1WLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19FTkQsVCk7aWYoWD09PTAp e2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBYfX19fShmdW5jdGlvbigpe3ZhciBVPWRvY3VtZW50LmNy ZWF0ZUVsZW1lbnQoImZvcm0iKSxWPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO1UuaW5uZXJI VE1MPSI8aW5wdXQgbmFtZT0nIitWKyInLz4iO3ZhciBUPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtU Lmluc2VydEJlZm9yZShVLFQuZmlyc3RDaGlsZCk7aWYoISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChW KSl7SS5maW5kLklEPWZ1bmN0aW9uKFgsWSxaKXtpZih0eXBlb2YgWS5nZXRFbGVtZW50QnlJZCE9PSJ1 bmRlZmluZWQiJiYhWil7dmFyIFc9WS5nZXRFbGVtZW50QnlJZChYWzFdKTtyZXR1cm4gVz9XLmlkPT09 WFsxXXx8dHlwZW9mIFcuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZXLmdldEF0dHJpYnV0 ZU5vZGUoImlkIikubm9kZVZhbHVlPT09WFsxXT9bV106ZzpbXX19O0kuZmlsdGVyLklEPWZ1bmN0aW9u KFksVyl7dmFyIFg9dHlwZW9mIFkuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZZLmdldEF0 dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIFkubm9kZVR5cGU9PT0xJiZYJiZYLm5vZGVWYWx1ZT09PVd9 fVQucmVtb3ZlQ2hpbGQoVSl9KSgpOyhmdW5jdGlvbigpe3ZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1l bnQoImRpdiIpO1QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIikpO2lmKFQuZ2V0 RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCl7SS5maW5kLlRBRz1mdW5jdGlvbihVLFkpe3Zh ciBYPVkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVVsxXSk7aWYoVVsxXT09PSIqIil7dmFyIFc9W107Zm9y KHZhciBWPTA7WFtWXTtWKyspe2lmKFhbVl0ubm9kZVR5cGU9PT0xKXtXLnB1c2goWFtWXSl9fVg9V31y ZXR1cm4gWH19VC5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iO2lmKFQuZmlyc3RDaGlsZCYmdHlw ZW9mIFQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUhPT0idW5kZWZpbmVkIiYmVC5maXJzdENoaWxkLmdl dEF0dHJpYnV0ZSgiaHJlZiIpIT09IiMiKXtJLmF0dHJIYW5kbGUuaHJlZj1mdW5jdGlvbihVKXtyZXR1 cm4gVS5nZXRBdHRyaWJ1dGUoImhyZWYiLDIpfX19KSgpO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB bGwpeyhmdW5jdGlvbigpe3ZhciBUPUYsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtVLmlu bmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKFUucXVlcnlTZWxlY3RvckFsbCYmVS5xdWVy eVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApe3JldHVybn1GPWZ1bmN0aW9uKFksWCxWLFcp e1g9WHx8ZG9jdW1lbnQ7aWYoIVcmJlgubm9kZVR5cGU9PT05JiYhUShYKSl7dHJ5e3JldHVybiBFKFgu cXVlcnlTZWxlY3RvckFsbChZKSxWKX1jYXRjaChaKXt9fXJldHVybiBUKFksWCxWLFcpfTtGLmZpbmQ9 VC5maW5kO0YuZmlsdGVyPVQuZmlsdGVyO0Yuc2VsZWN0b3JzPVQuc2VsZWN0b3JzO0YubWF0Y2hlcz1U Lm1hdGNoZXN9KSgpfWlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmRvY3VtZW50LmRv Y3VtZW50RWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXsoZnVuY3Rpb24oKXt2YXIgVD1kb2N1 bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtULmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48 L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgi ZSIpLmxlbmd0aD09PTApe3JldHVybn1ULmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiO2lmKFQuZ2V0RWxl bWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTEpe3JldHVybn1JLm9yZGVyLnNwbGljZSgxLDAs IkNMQVNTIik7SS5maW5kLkNMQVNTPWZ1bmN0aW9uKFUsVixXKXtpZih0eXBlb2YgVi5nZXRFbGVtZW50 c0J5Q2xhc3NOYW1lIT09InVuZGVmaW5lZCImJiFXKXtyZXR1cm4gVi5nZXRFbGVtZW50c0J5Q2xhc3NO YW1lKFVbMV0pfX19KSgpfWZ1bmN0aW9uIFAoVSxaLFksYWQsYWEsYWMpe3ZhciBhYj1VPT0icHJldmlv dXNTaWJsaW5nIiYmIWFjO2Zvcih2YXIgVz0wLFY9YWQubGVuZ3RoO1c8VjtXKyspe3ZhciBUPWFkW1dd O2lmKFQpe2lmKGFiJiZULm5vZGVUeXBlPT09MSl7VC5zaXpjYWNoZT1ZO1Quc2l6c2V0PVd9VD1UW1Vd O3ZhciBYPWZhbHNlO3doaWxlKFQpe2lmKFQuc2l6Y2FjaGU9PT1ZKXtYPWFkW1Quc2l6c2V0XTticmVh a31pZihULm5vZGVUeXBlPT09MSYmIWFjKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31pZihULm5vZGVO YW1lPT09Wil7WD1UO2JyZWFrfVQ9VFtVXX1hZFtXXT1YfX19ZnVuY3Rpb24gUyhVLFosWSxhZCxhYSxh Yyl7dmFyIGFiPVU9PSJwcmV2aW91c1NpYmxpbmciJiYhYWM7Zm9yKHZhciBXPTAsVj1hZC5sZW5ndGg7 VzxWO1crKyl7dmFyIFQ9YWRbV107aWYoVCl7aWYoYWImJlQubm9kZVR5cGU9PT0xKXtULnNpemNhY2hl PVk7VC5zaXpzZXQ9V31UPVRbVV07dmFyIFg9ZmFsc2U7d2hpbGUoVCl7aWYoVC5zaXpjYWNoZT09PVkp e1g9YWRbVC5zaXpzZXRdO2JyZWFrfWlmKFQubm9kZVR5cGU9PT0xKXtpZighYWMpe1Quc2l6Y2FjaGU9 WTtULnNpenNldD1XfWlmKHR5cGVvZiBaIT09InN0cmluZyIpe2lmKFQ9PT1aKXtYPXRydWU7YnJlYWt9 fWVsc2V7aWYoRi5maWx0ZXIoWixbVF0pLmxlbmd0aD4wKXtYPVQ7YnJlYWt9fX1UPVRbVV19YWRbV109 WH19fXZhciBLPWRvY3VtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKFUsVCl7cmV0 dXJuIFUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oVCkmMTZ9OmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFUh PT1UJiYoVS5jb250YWlucz9VLmNvbnRhaW5zKFQpOnRydWUpfTt2YXIgUT1mdW5jdGlvbihUKXtyZXR1 cm4gVC5ub2RlVHlwZT09PTkmJlQuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lIT09IkhUTUwifHwhIVQu b3duZXJEb2N1bWVudCYmUShULm93bmVyRG9jdW1lbnQpfTt2YXIgSj1mdW5jdGlvbihULGFhKXt2YXIg Vz1bXSxYPSIiLFksVj1hYS5ub2RlVHlwZT9bYWFdOmFhO3doaWxlKChZPUkubWF0Y2guUFNFVURPLmV4 ZWMoVCkpKXtYKz1ZWzBdO1Q9VC5yZXBsYWNlKEkubWF0Y2guUFNFVURPLCIiKX1UPUkucmVsYXRpdmVb VF0/VCsiKiI6VDtmb3IodmFyIFo9MCxVPVYubGVuZ3RoO1o8VTtaKyspe0YoVCxWW1pdLFcpfXJldHVy biBGLmZpbHRlcihYLFcpfTtvLmZpbmQ9RjtvLmZpbHRlcj1GLmZpbHRlcjtvLmV4cHI9Ri5zZWxlY3Rv cnM7by5leHByWyI6Il09by5leHByLmZpbHRlcnM7Ri5zZWxlY3RvcnMuZmlsdGVycy5oaWRkZW49ZnVu Y3Rpb24oVCl7cmV0dXJuIFQub2Zmc2V0V2lkdGg9PT0wfHxULm9mZnNldEhlaWdodD09PTB9O0Yuc2Vs ZWN0b3JzLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihUKXtyZXR1cm4gVC5vZmZzZXRXaWR0aD4wfHxU Lm9mZnNldEhlaWdodD4wfTtGLnNlbGVjdG9ycy5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKFQpe3Jl dHVybiBvLmdyZXAoby50aW1lcnMsZnVuY3Rpb24oVSl7cmV0dXJuIFQ9PT1VLmVsZW19KS5sZW5ndGh9 O28ubXVsdGlGaWx0ZXI9ZnVuY3Rpb24oVixULFUpe2lmKFUpe1Y9Ijpub3QoIitWKyIpIn1yZXR1cm4g Ri5tYXRjaGVzKFYsVCl9O28uZGlyPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W10sVz1WW1VdO3doaWxlKFcm JlchPWRvY3VtZW50KXtpZihXLm5vZGVUeXBlPT0xKXtULnB1c2goVyl9Vz1XW1VdfXJldHVybiBUfTtv Lm50aD1mdW5jdGlvbihYLFQsVixXKXtUPVR8fDE7dmFyIFU9MDtmb3IoO1g7WD1YW1ZdKXtpZihYLm5v ZGVUeXBlPT0xJiYrK1U9PVQpe2JyZWFrfX1yZXR1cm4gWH07by5zaWJsaW5nPWZ1bmN0aW9uKFYsVSl7 dmFyIFQ9W107Zm9yKDtWO1Y9Vi5uZXh0U2libGluZyl7aWYoVi5ub2RlVHlwZT09MSYmViE9VSl7VC5w dXNoKFYpfX1yZXR1cm4gVH07cmV0dXJuO2wuU2l6emxlPUZ9KSgpO28uZXZlbnQ9e2FkZDpmdW5jdGlv bihJLEYsSCxLKXtpZihJLm5vZGVUeXBlPT0zfHxJLm5vZGVUeXBlPT04KXtyZXR1cm59aWYoSS5zZXRJ bnRlcnZhbCYmSSE9bCl7ST1sfWlmKCFILmd1aWQpe0guZ3VpZD10aGlzLmd1aWQrK31pZihLIT09Zyl7 dmFyIEc9SDtIPXRoaXMucHJveHkoRyk7SC5kYXRhPUt9dmFyIEU9by5kYXRhKEksImV2ZW50cyIpfHxv LmRhdGEoSSwiZXZlbnRzIix7fSksSj1vLmRhdGEoSSwiaGFuZGxlIil8fG8uZGF0YShJLCJoYW5kbGUi LGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBvIT09InVuZGVmaW5lZCImJiFvLmV2ZW50LnRyaWdnZXJl ZD9vLmV2ZW50LmhhbmRsZS5hcHBseShhcmd1bWVudHMuY2FsbGVlLmVsZW0sYXJndW1lbnRzKTpnfSk7 Si5lbGVtPUk7by5lYWNoKEYuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKE0sTil7dmFyIE89Ti5zcGxpdCgi LiIpO049Ty5zaGlmdCgpO0gudHlwZT1PLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4iKTt2YXIgTD1FW05d O2lmKG8uZXZlbnQuc3BlY2lhbEFsbFtOXSl7by5ldmVudC5zcGVjaWFsQWxsW05dLnNldHVwLmNhbGwo SSxLLE8pfWlmKCFMKXtMPUVbTl09e307aWYoIW8uZXZlbnQuc3BlY2lhbFtOXXx8by5ldmVudC5zcGVj aWFsW05dLnNldHVwLmNhbGwoSSxLLE8pPT09ZmFsc2Upe2lmKEkuYWRkRXZlbnRMaXN0ZW5lcil7SS5h ZGRFdmVudExpc3RlbmVyKE4sSixmYWxzZSl9ZWxzZXtpZihJLmF0dGFjaEV2ZW50KXtJLmF0dGFjaEV2 ZW50KCJvbiIrTixKKX19fX1MW0guZ3VpZF09SDtvLmV2ZW50Lmdsb2JhbFtOXT10cnVlfSk7ST1udWxs fSxndWlkOjEsZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihLLEgsSil7aWYoSy5ub2RlVHlwZT09M3x8 Sy5ub2RlVHlwZT09OCl7cmV0dXJufXZhciBHPW8uZGF0YShLLCJldmVudHMiKSxGLEU7aWYoRyl7aWYo SD09PWd8fCh0eXBlb2YgSD09PSJzdHJpbmciJiZILmNoYXJBdCgwKT09Ii4iKSl7Zm9yKHZhciBJIGlu IEcpe3RoaXMucmVtb3ZlKEssSSsoSHx8IiIpKX19ZWxzZXtpZihILnR5cGUpe0o9SC5oYW5kbGVyO0g9 SC50eXBlfW8uZWFjaChILnNwbGl0KC9ccysvKSxmdW5jdGlvbihNLE8pe3ZhciBRPU8uc3BsaXQoIi4i KTtPPVEuc2hpZnQoKTt2YXIgTj1SZWdFeHAoIihefFxcLikiK1Euc2xpY2UoKS5zb3J0KCkuam9pbigi LipcXC4iKSsiKFxcLnwkKSIpO2lmKEdbT10pe2lmKEope2RlbGV0ZSBHW09dW0ouZ3VpZF19ZWxzZXtm b3IodmFyIFAgaW4gR1tPXSl7aWYoTi50ZXN0KEdbT11bUF0udHlwZSkpe2RlbGV0ZSBHW09dW1BdfX19 aWYoby5ldmVudC5zcGVjaWFsQWxsW09dKXtvLmV2ZW50LnNwZWNpYWxBbGxbT10udGVhcmRvd24uY2Fs bChLLFEpfWZvcihGIGluIEdbT10pe2JyZWFrfWlmKCFGKXtpZighby5ldmVudC5zcGVjaWFsW09dfHxv LmV2ZW50LnNwZWNpYWxbT10udGVhcmRvd24uY2FsbChLLFEpPT09ZmFsc2Upe2lmKEsucmVtb3ZlRXZl bnRMaXN0ZW5lcil7Sy5yZW1vdmVFdmVudExpc3RlbmVyKE8sby5kYXRhKEssImhhbmRsZSIpLGZhbHNl KX1lbHNle2lmKEsuZGV0YWNoRXZlbnQpe0suZGV0YWNoRXZlbnQoIm9uIitPLG8uZGF0YShLLCJoYW5k bGUiKSl9fX1GPW51bGw7ZGVsZXRlIEdbT119fX0pfWZvcihGIGluIEcpe2JyZWFrfWlmKCFGKXt2YXIg TD1vLmRhdGEoSywiaGFuZGxlIik7aWYoTCl7TC5lbGVtPW51bGx9by5yZW1vdmVEYXRhKEssImV2ZW50 cyIpO28ucmVtb3ZlRGF0YShLLCJoYW5kbGUiKX19fSx0cmlnZ2VyOmZ1bmN0aW9uKEksSyxILEUpe3Zh ciBHPUkudHlwZXx8STtpZighRSl7ST10eXBlb2YgST09PSJvYmplY3QiP0lbaF0/STpvLmV4dGVuZChv LkV2ZW50KEcpLEkpOm8uRXZlbnQoRyk7aWYoRy5pbmRleE9mKCIhIik+PTApe0kudHlwZT1HPUcuc2xp Y2UoMCwtMSk7SS5leGNsdXNpdmU9dHJ1ZX1pZighSCl7SS5zdG9wUHJvcGFnYXRpb24oKTtpZih0aGlz Lmdsb2JhbFtHXSl7by5lYWNoKG8uY2FjaGUsZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50cyYmdGhpcy5l dmVudHNbR10pe28uZXZlbnQudHJpZ2dlcihJLEssdGhpcy5oYW5kbGUuZWxlbSl9fSl9fWlmKCFIfHxI Lm5vZGVUeXBlPT0zfHxILm5vZGVUeXBlPT04KXtyZXR1cm4gZ31JLnJlc3VsdD1nO0kudGFyZ2V0PUg7 Sz1vLm1ha2VBcnJheShLKTtLLnVuc2hpZnQoSSl9SS5jdXJyZW50VGFyZ2V0PUg7dmFyIEo9by5kYXRh KEgsImhhbmRsZSIpO2lmKEope0ouYXBwbHkoSCxLKX1pZigoIUhbR118fChvLm5vZGVOYW1lKEgsImEi KSYmRz09ImNsaWNrIikpJiZIWyJvbiIrR10mJkhbIm9uIitHXS5hcHBseShILEspPT09ZmFsc2Upe0ku cmVzdWx0PWZhbHNlfWlmKCFFJiZIW0ddJiYhSS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIShvLm5vZGVO YW1lKEgsImEiKSYmRz09ImNsaWNrIikpe3RoaXMudHJpZ2dlcmVkPXRydWU7dHJ5e0hbR10oKX1jYXRj aChMKXt9fXRoaXMudHJpZ2dlcmVkPWZhbHNlO2lmKCFJLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3Zh ciBGPUgucGFyZW50Tm9kZXx8SC5vd25lckRvY3VtZW50O2lmKEYpe28uZXZlbnQudHJpZ2dlcihJLEss Rix0cnVlKX19fSxoYW5kbGU6ZnVuY3Rpb24oSyl7dmFyIEosRTtLPWFyZ3VtZW50c1swXT1vLmV2ZW50 LmZpeChLfHxsLmV2ZW50KTtLLmN1cnJlbnRUYXJnZXQ9dGhpczt2YXIgTD1LLnR5cGUuc3BsaXQoIi4i KTtLLnR5cGU9TC5zaGlmdCgpO0o9IUwubGVuZ3RoJiYhSy5leGNsdXNpdmU7dmFyIEk9UmVnRXhwKCIo XnxcXC4pIitMLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwuIikrIihcXC58JCkiKTtFPShvLmRhdGEo dGhpcywiZXZlbnRzIil8fHt9KVtLLnR5cGVdO2Zvcih2YXIgRyBpbiBFKXt2YXIgSD1FW0ddO2lmKEp8 fEkudGVzdChILnR5cGUpKXtLLmhhbmRsZXI9SDtLLmRhdGE9SC5kYXRhO3ZhciBGPUguYXBwbHkodGhp cyxhcmd1bWVudHMpO2lmKEYhPT1nKXtLLnJlc3VsdD1GO2lmKEY9PT1mYWxzZSl7Sy5wcmV2ZW50RGVm YXVsdCgpO0suc3RvcFByb3BhZ2F0aW9uKCl9fWlmKEsuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3Bw ZWQoKSl7YnJlYWt9fX19LHByb3BzOiJhbHRLZXkgYXR0ckNoYW5nZSBhdHRyTmFtZSBidWJibGVzIGJ1 dHRvbiBjYW5jZWxhYmxlIGNoYXJDb2RlIGNsaWVudFggY2xpZW50WSBjdHJsS2V5IGN1cnJlbnRUYXJn ZXQgZGF0YSBkZXRhaWwgZXZlbnRQaGFzZSBmcm9tRWxlbWVudCBoYW5kbGVyIGtleUNvZGUgbWV0YUtl eSBuZXdWYWx1ZSBvcmlnaW5hbFRhcmdldCBwYWdlWCBwYWdlWSBwcmV2VmFsdWUgcmVsYXRlZE5vZGUg cmVsYXRlZFRhcmdldCBzY3JlZW5YIHNjcmVlblkgc2hpZnRLZXkgc3JjRWxlbWVudCB0YXJnZXQgdG9F bGVtZW50IHZpZXcgd2hlZWxEZWx0YSB3aGljaCIuc3BsaXQoIiAiKSxmaXg6ZnVuY3Rpb24oSCl7aWYo SFtoXSl7cmV0dXJuIEh9dmFyIEY9SDtIPW8uRXZlbnQoRik7Zm9yKHZhciBHPXRoaXMucHJvcHMubGVu Z3RoLEo7Rzspe0o9dGhpcy5wcm9wc1stLUddO0hbSl09RltKXX1pZighSC50YXJnZXQpe0gudGFyZ2V0 PUguc3JjRWxlbWVudHx8ZG9jdW1lbnR9aWYoSC50YXJnZXQubm9kZVR5cGU9PTMpe0gudGFyZ2V0PUgu dGFyZ2V0LnBhcmVudE5vZGV9aWYoIUgucmVsYXRlZFRhcmdldCYmSC5mcm9tRWxlbWVudCl7SC5yZWxh dGVkVGFyZ2V0PUguZnJvbUVsZW1lbnQ9PUgudGFyZ2V0P0gudG9FbGVtZW50OkguZnJvbUVsZW1lbnR9 aWYoSC5wYWdlWD09bnVsbCYmSC5jbGllbnRYIT1udWxsKXt2YXIgST1kb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQsRT1kb2N1bWVudC5ib2R5O0gucGFnZVg9SC5jbGllbnRYKyhJJiZJLnNjcm9sbExlZnR8fEUm JkUuc2Nyb2xsTGVmdHx8MCktKEkuY2xpZW50TGVmdHx8MCk7SC5wYWdlWT1ILmNsaWVudFkrKEkmJkku c2Nyb2xsVG9wfHxFJiZFLnNjcm9sbFRvcHx8MCktKEkuY2xpZW50VG9wfHwwKX1pZighSC53aGljaCYm KChILmNoYXJDb2RlfHxILmNoYXJDb2RlPT09MCk/SC5jaGFyQ29kZTpILmtleUNvZGUpKXtILndoaWNo PUguY2hhckNvZGV8fEgua2V5Q29kZX1pZighSC5tZXRhS2V5JiZILmN0cmxLZXkpe0gubWV0YUtleT1I LmN0cmxLZXl9aWYoIUgud2hpY2gmJkguYnV0dG9uKXtILndoaWNoPShILmJ1dHRvbiYxPzE6KEguYnV0 dG9uJjI/MzooSC5idXR0b24mND8yOjApKSl9cmV0dXJuIEh9LHByb3h5OmZ1bmN0aW9uKEYsRSl7RT1F fHxmdW5jdGlvbigpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07RS5ndWlkPUYuZ3VpZD1G Lmd1aWR8fEUuZ3VpZHx8dGhpcy5ndWlkKys7cmV0dXJuIEV9LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpC LHRlYXJkb3duOmZ1bmN0aW9uKCl7fX19LHNwZWNpYWxBbGw6e2xpdmU6e3NldHVwOmZ1bmN0aW9uKEUs Ril7by5ldmVudC5hZGQodGhpcyxGWzBdLGMpfSx0ZWFyZG93bjpmdW5jdGlvbihHKXtpZihHLmxlbmd0 aCl7dmFyIEU9MCxGPVJlZ0V4cCgiKF58XFwuKSIrR1swXSsiKFxcLnwkKSIpO28uZWFjaCgoby5kYXRh KHRoaXMsImV2ZW50cyIpLmxpdmV8fHt9KSxmdW5jdGlvbigpe2lmKEYudGVzdCh0aGlzLnR5cGUpKXtF Kyt9fSk7aWYoRTwxKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEdbMF0sYyl9fX19fX07by5FdmVudD1mdW5j dGlvbihFKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdCl7cmV0dXJuIG5ldyBvLkV2ZW50KEUpfWlmKEUm JkUudHlwZSl7dGhpcy5vcmlnaW5hbEV2ZW50PUU7dGhpcy50eXBlPUUudHlwZX1lbHNle3RoaXMudHlw ZT1FfXRoaXMudGltZVN0YW1wPWUoKTt0aGlzW2hdPXRydWV9O2Z1bmN0aW9uIGsoKXtyZXR1cm4gZmFs c2V9ZnVuY3Rpb24gdSgpe3JldHVybiB0cnVlfW8uRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVs dDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXU7dmFyIEU9dGhpcy5vcmlnaW5hbEV2 ZW50O2lmKCFFKXtyZXR1cm59aWYoRS5wcmV2ZW50RGVmYXVsdCl7RS5wcmV2ZW50RGVmYXVsdCgpfUUu cmV0dXJuVmFsdWU9ZmFsc2V9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNQcm9wYWdh dGlvblN0b3BwZWQ9dTt2YXIgRT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoIUUpe3JldHVybn1pZihFLnN0 b3BQcm9wYWdhdGlvbil7RS5zdG9wUHJvcGFnYXRpb24oKX1FLmNhbmNlbEJ1YmJsZT10cnVlfSxzdG9w SW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25T dG9wcGVkPXU7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOmssaXNQcm9w YWdhdGlvblN0b3BwZWQ6ayxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDprfTt2YXIgYT1mdW5j dGlvbihGKXt2YXIgRT1GLnJlbGF0ZWRUYXJnZXQ7d2hpbGUoRSYmRSE9dGhpcyl7dHJ5e0U9RS5wYXJl bnROb2RlfWNhdGNoKEcpe0U9dGhpc319aWYoRSE9dGhpcyl7Ri50eXBlPUYuZGF0YTtvLmV2ZW50Lmhh bmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTtvLmVhY2goe21vdXNlb3ZlcjoibW91c2VlbnRlciIs bW91c2VvdXQ6Im1vdXNlbGVhdmUifSxmdW5jdGlvbihGLEUpe28uZXZlbnQuc3BlY2lhbFtFXT17c2V0 dXA6ZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEYsYSxFKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtv LmV2ZW50LnJlbW92ZSh0aGlzLEYsYSl9fX0pO28uZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKEYsRyxF KXtyZXR1cm4gRj09InVubG9hZCI/dGhpcy5vbmUoRixHLEUpOnRoaXMuZWFjaChmdW5jdGlvbigpe28u ZXZlbnQuYWRkKHRoaXMsRixFfHxHLEUmJkcpfSl9LG9uZTpmdW5jdGlvbihHLEgsRil7dmFyIEU9by5l dmVudC5wcm94eShGfHxILGZ1bmN0aW9uKEkpe28odGhpcykudW5iaW5kKEksRSk7cmV0dXJuKEZ8fEgp LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50 LmFkZCh0aGlzLEcsRSxGJiZIKX0pfSx1bmJpbmQ6ZnVuY3Rpb24oRixFKXtyZXR1cm4gdGhpcy5lYWNo KGZ1bmN0aW9uKCl7by5ldmVudC5yZW1vdmUodGhpcyxGLEUpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oRSxG KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC50cmlnZ2VyKEUsRix0aGlzKX0pfSx0 cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihFLEcpe2lmKHRoaXNbMF0pe3ZhciBGPW8uRXZlbnQoRSk7Ri5w cmV2ZW50RGVmYXVsdCgpO0Yuc3RvcFByb3BhZ2F0aW9uKCk7by5ldmVudC50cmlnZ2VyKEYsRyx0aGlz WzBdKTtyZXR1cm4gRi5yZXN1bHR9fSx0b2dnbGU6ZnVuY3Rpb24oRyl7dmFyIEU9YXJndW1lbnRzLEY9 MTt3aGlsZShGPEUubGVuZ3RoKXtvLmV2ZW50LnByb3h5KEcsRVtGKytdKX1yZXR1cm4gdGhpcy5jbGlj ayhvLmV2ZW50LnByb3h5KEcsZnVuY3Rpb24oSCl7dGhpcy5sYXN0VG9nZ2xlPSh0aGlzLmxhc3RUb2dn bGV8fDApJUY7SC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBFW3RoaXMubGFzdFRvZ2dsZSsrXS5hcHBs eSh0aGlzLGFyZ3VtZW50cyl8fGZhbHNlfSkpfSxob3ZlcjpmdW5jdGlvbihFLEYpe3JldHVybiB0aGlz Lm1vdXNlZW50ZXIoRSkubW91c2VsZWF2ZShGKX0scmVhZHk6ZnVuY3Rpb24oRSl7QigpO2lmKG8uaXNS ZWFkeSl7RS5jYWxsKGRvY3VtZW50LG8pfWVsc2V7by5yZWFkeUxpc3QucHVzaChFKX1yZXR1cm4gdGhp c30sbGl2ZTpmdW5jdGlvbihHLEYpe3ZhciBFPW8uZXZlbnQucHJveHkoRik7RS5ndWlkKz10aGlzLnNl bGVjdG9yK0c7byhkb2N1bWVudCkuYmluZChpKEcsdGhpcy5zZWxlY3RvciksdGhpcy5zZWxlY3RvcixF KTtyZXR1cm4gdGhpc30sZGllOmZ1bmN0aW9uKEYsRSl7byhkb2N1bWVudCkudW5iaW5kKGkoRix0aGlz LnNlbGVjdG9yKSxFP3tndWlkOkUuZ3VpZCt0aGlzLnNlbGVjdG9yK0Z9Om51bGwpO3JldHVybiB0aGlz fX0pO2Z1bmN0aW9uIGMoSCl7dmFyIEU9UmVnRXhwKCIoXnxcXC4pIitILnR5cGUrIihcXC58JCkiKSxH PXRydWUsRj1bXTtvLmVhY2goby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKEks Sil7aWYoRS50ZXN0KEoudHlwZSkpe3ZhciBLPW8oSC50YXJnZXQpLmNsb3Nlc3QoSi5kYXRhKVswXTtp ZihLKXtGLnB1c2goe2VsZW06SyxmbjpKfSl9fX0pO0Yuc29ydChmdW5jdGlvbihKLEkpe3JldHVybiBv LmRhdGEoSi5lbGVtLCJjbG9zZXN0Iiktby5kYXRhKEkuZWxlbSwiY2xvc2VzdCIpfSk7by5lYWNoKEYs ZnVuY3Rpb24oKXtpZih0aGlzLmZuLmNhbGwodGhpcy5lbGVtLEgsdGhpcy5mbi5kYXRhKT09PWZhbHNl KXtyZXR1cm4oRz1mYWxzZSl9fSk7cmV0dXJuIEd9ZnVuY3Rpb24gaShGLEUpe3JldHVyblsibGl2ZSIs RixFLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csInwiKV0uam9pbigiLiIpfW8uZXh0ZW5k KHtpc1JlYWR5OmZhbHNlLHJlYWR5TGlzdDpbXSxyZWFkeTpmdW5jdGlvbigpe2lmKCFvLmlzUmVhZHkp e28uaXNSZWFkeT10cnVlO2lmKG8ucmVhZHlMaXN0KXtvLmVhY2goby5yZWFkeUxpc3QsZnVuY3Rpb24o KXt0aGlzLmNhbGwoZG9jdW1lbnQsbyl9KTtvLnJlYWR5TGlzdD1udWxsfW8oZG9jdW1lbnQpLnRyaWdn ZXJIYW5kbGVyKCJyZWFkeSIpfX19KTt2YXIgeD1mYWxzZTtmdW5jdGlvbiBCKCl7aWYoeCl7cmV0dXJu fXg9dHJ1ZTtpZihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtkb2N1bWVudC5hZGRFdmVudExpc3Rl bmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVu ZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGFyZ3VtZW50cy5jYWxsZWUsZmFsc2UpO28ucmVhZHkoKX0sZmFs c2UpfWVsc2V7aWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQpe2RvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJl YWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0 ZSIpe2RvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGFyZ3VtZW50cy5jYWxs ZWUpO28ucmVhZHkoKX19KTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJmw9PWwu dG9wKXsoZnVuY3Rpb24oKXtpZihvLmlzUmVhZHkpe3JldHVybn10cnl7ZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goRSl7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVl LDApO3JldHVybn1vLnJlYWR5KCl9KSgpfX19by5ldmVudC5hZGQobCwibG9hZCIsby5yZWFkeSl9by5l YWNoKCgiYmx1cixmb2N1cyxsb2FkLHJlc2l6ZSxzY3JvbGwsdW5sb2FkLGNsaWNrLGRibGNsaWNrLG1v dXNlZG93bixtb3VzZXVwLG1vdXNlbW92ZSxtb3VzZW92ZXIsbW91c2VvdXQsbW91c2VlbnRlcixtb3Vz ZWxlYXZlLGNoYW5nZSxzZWxlY3Qsc3VibWl0LGtleWRvd24sa2V5cHJlc3Msa2V5dXAsZXJyb3IiKS5z cGxpdCgiLCIpLGZ1bmN0aW9uKEYsRSl7by5mbltFXT1mdW5jdGlvbihHKXtyZXR1cm4gRz90aGlzLmJp bmQoRSxHKTp0aGlzLnRyaWdnZXIoRSl9fSk7byhsKS5iaW5kKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9y KHZhciBFIGluIG8uY2FjaGUpe2lmKEUhPTEmJm8uY2FjaGVbRV0uaGFuZGxlKXtvLmV2ZW50LnJlbW92 ZShvLmNhY2hlW0VdLmhhbmRsZS5lbGVtKX19fSk7KGZ1bmN0aW9uKCl7by5zdXBwb3J0PXt9O3ZhciBG PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxHPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIp LEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSj0ic2NyaXB0IisobmV3IERhdGUpLmdldFRp bWUoKTtLLnN0eWxlLmRpc3BsYXk9Im5vbmUiO0suaW5uZXJIVE1MPScgICA8bGluay8+PHRhYmxlPjwv dGFibGU+PGEgaHJlZj0iL2EiIHN0eWxlPSJjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41OyI+ YTwvYT48c2VsZWN0PjxvcHRpb24+dGV4dDwvb3B0aW9uPjwvc2VsZWN0PjxvYmplY3Q+PHBhcmFtLz48 L29iamVjdD4nO3ZhciBIPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxFPUsuZ2V0RWxlbWVudHNC eVRhZ05hbWUoImEiKVswXTtpZighSHx8IUgubGVuZ3RofHwhRSl7cmV0dXJufW8uc3VwcG9ydD17bGVh ZGluZ1doaXRlc3BhY2U6Sy5maXJzdENoaWxkLm5vZGVUeXBlPT0zLHRib2R5OiFLLmdldEVsZW1lbnRz QnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxvYmplY3RBbGw6ISFLLmdldEVsZW1lbnRzQnlUYWdOYW1l KCJvYmplY3QiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aCxodG1sU2VyaWFsaXpl OiEhSy5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KEUu Z2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpFLmdldEF0dHJpYnV0ZSgiaHJlZiIp PT09Ii9hIixvcGFjaXR5OkUuc3R5bGUub3BhY2l0eT09PSIwLjUiLGNzc0Zsb2F0OiEhRS5zdHlsZS5j c3NGbG9hdCxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9O0cu dHlwZT0idGV4dC9qYXZhc2NyaXB0Ijt0cnl7Ry5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0 Tm9kZSgid2luZG93LiIrSisiPTE7IikpfWNhdGNoKEkpe31GLmluc2VydEJlZm9yZShHLEYuZmlyc3RD aGlsZCk7aWYobFtKXSl7by5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgbFtKXX1GLnJlbW92 ZUNoaWxkKEcpO2lmKEsuYXR0YWNoRXZlbnQmJksuZmlyZUV2ZW50KXtLLmF0dGFjaEV2ZW50KCJvbmNs aWNrIixmdW5jdGlvbigpe28uc3VwcG9ydC5ub0Nsb25lRXZlbnQ9ZmFsc2U7Sy5kZXRhY2hFdmVudCgi b25jbGljayIsYXJndW1lbnRzLmNhbGxlZSl9KTtLLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9u Y2xpY2siKX1vKGZ1bmN0aW9uKCl7dmFyIEw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7TC5z dHlsZS53aWR0aD1MLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp bGQoTCk7by5ib3hNb2RlbD1vLnN1cHBvcnQuYm94TW9kZWw9TC5vZmZzZXRXaWR0aD09PTI7ZG9jdW1l bnQuYm9keS5yZW1vdmVDaGlsZChMKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pfSkoKTt2YXIgdz1vLnN1 cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCI7by5wcm9wcz17ImZvciI6Imh0bWxG b3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsImZsb2F0Ijp3LGNzc0Zsb2F0Oncsc3R5bGVGbG9hdDp3LHJl YWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3Bh Y2luZyIscm93c3Bhbjoicm93U3BhbiIsdGFiaW5kZXg6InRhYkluZGV4In07by5mbi5leHRlbmQoe19s b2FkOm8uZm4ubG9hZCxsb2FkOmZ1bmN0aW9uKEcsSixLKXtpZih0eXBlb2YgRyE9PSJzdHJpbmciKXty ZXR1cm4gdGhpcy5fbG9hZChHKX12YXIgST1HLmluZGV4T2YoIiAiKTtpZihJPj0wKXt2YXIgRT1HLnNs aWNlKEksRy5sZW5ndGgpO0c9Ry5zbGljZSgwLEkpfXZhciBIPSJHRVQiO2lmKEope2lmKG8uaXNGdW5j dGlvbihKKSl7Sz1KO0o9bnVsbH1lbHNle2lmKHR5cGVvZiBKPT09Im9iamVjdCIpe0o9by5wYXJhbShK KTtIPSJQT1NUIn19fXZhciBGPXRoaXM7by5hamF4KHt1cmw6Ryx0eXBlOkgsZGF0YVR5cGU6Imh0bWwi LGRhdGE6Sixjb21wbGV0ZTpmdW5jdGlvbihNLEwpe2lmKEw9PSJzdWNjZXNzInx8TD09Im5vdG1vZGlm aWVkIil7Ri5odG1sKEU/bygiPGRpdi8+IikuYXBwZW5kKE0ucmVzcG9uc2VUZXh0LnJlcGxhY2UoLzxz Y3JpcHQoLnxccykqP1wvc2NyaXB0Pi9nLCIiKSkuZmluZChFKTpNLnJlc3BvbnNlVGV4dCl9aWYoSyl7 Ri5lYWNoKEssW00ucmVzcG9uc2VUZXh0LEwsTV0pfX19KTtyZXR1cm4gdGhpc30sc2VyaWFsaXplOmZ1 bmN0aW9uKCl7cmV0dXJuIG8ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJy YXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50 cz9vLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJu IHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fC9zZWxlY3R8dGV4dGFyZWEv aS50ZXN0KHRoaXMubm9kZU5hbWUpfHwvdGV4dHxoaWRkZW58cGFzc3dvcmR8c2VhcmNoL2kudGVzdCh0 aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihFLEYpe3ZhciBHPW8odGhpcykudmFsKCk7cmV0dXJuIEc9 PW51bGw/bnVsbDpvLmlzQXJyYXkoRyk/by5tYXAoRyxmdW5jdGlvbihJLEgpe3JldHVybntuYW1lOkYu bmFtZSx2YWx1ZTpJfX0pOntuYW1lOkYubmFtZSx2YWx1ZTpHfX0pLmdldCgpfX0pO28uZWFjaCgiYWph eFN0YXJ0LGFqYXhTdG9wLGFqYXhDb21wbGV0ZSxhamF4RXJyb3IsYWpheFN1Y2Nlc3MsYWpheFNlbmQi LnNwbGl0KCIsIiksZnVuY3Rpb24oRSxGKXtvLmZuW0ZdPWZ1bmN0aW9uKEcpe3JldHVybiB0aGlzLmJp bmQoRixHKX19KTt2YXIgcj1lKCk7by5leHRlbmQoe2dldDpmdW5jdGlvbihFLEcsSCxGKXtpZihvLmlz RnVuY3Rpb24oRykpe0g9RztHPW51bGx9cmV0dXJuIG8uYWpheCh7dHlwZToiR0VUIix1cmw6RSxkYXRh Okcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKEUsRil7cmV0dXJuIG8u Z2V0KEUsbnVsbCxGLCJzY3JpcHQiKX0sZ2V0SlNPTjpmdW5jdGlvbihFLEYsRyl7cmV0dXJuIG8uZ2V0 KEUsRixHLCJqc29uIil9LHBvc3Q6ZnVuY3Rpb24oRSxHLEgsRil7aWYoby5pc0Z1bmN0aW9uKEcpKXtI PUc7Rz17fX1yZXR1cm4gby5hamF4KHt0eXBlOiJQT1NUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRh dGFUeXBlOkZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKEUpe28uZXh0ZW5kKG8uYWpheFNldHRpbmdzLEUp fSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLGdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29u dGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0RhdGE6dHJ1 ZSxhc3luYzp0cnVlLHhocjpmdW5jdGlvbigpe3JldHVybiBsLkFjdGl2ZVhPYmplY3Q/bmV3IEFjdGl2 ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIik6bmV3IFhNTEh0dHBSZXF1ZXN0KCl9LGFjY2VwdHM6 e3htbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRl eHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRpb24vanNv biwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0OiJ0ZXh0L3BsYWluIixfZGVmYXVsdDoiKi8qIn19LGxhc3RN b2RpZmllZDp7fSxhamF4OmZ1bmN0aW9uKE0pe009by5leHRlbmQodHJ1ZSxNLG8uZXh0ZW5kKHRydWUs e30sby5hamF4U2V0dGluZ3MsTSkpO3ZhciBXLEY9Lz1cPygmfCQpL2csUixWLEc9TS50eXBlLnRvVXBw ZXJDYXNlKCk7aWYoTS5kYXRhJiZNLnByb2Nlc3NEYXRhJiZ0eXBlb2YgTS5kYXRhIT09InN0cmluZyIp e00uZGF0YT1vLnBhcmFtKE0uZGF0YSl9aWYoTS5kYXRhVHlwZT09Impzb25wIil7aWYoRz09IkdFVCIp e2lmKCFNLnVybC5tYXRjaChGKSl7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKSsoTS5q c29ucHx8ImNhbGxiYWNrIikrIj0/In19ZWxzZXtpZighTS5kYXRhfHwhTS5kYXRhLm1hdGNoKEYpKXtN LmRhdGE9KE0uZGF0YT9NLmRhdGErIiYiOiIiKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19TS5k YXRhVHlwZT0ianNvbiJ9aWYoTS5kYXRhVHlwZT09Impzb24iJiYoTS5kYXRhJiZNLmRhdGEubWF0Y2go Ril8fE0udXJsLm1hdGNoKEYpKSl7Vz0ianNvbnAiK3IrKztpZihNLmRhdGEpe00uZGF0YT0oTS5kYXRh KyIiKS5yZXBsYWNlKEYsIj0iK1crIiQxIil9TS51cmw9TS51cmwucmVwbGFjZShGLCI9IitXKyIkMSIp O00uZGF0YVR5cGU9InNjcmlwdCI7bFtXXT1mdW5jdGlvbihYKXtWPVg7SSgpO0woKTtsW1ddPWc7dHJ5 e2RlbGV0ZSBsW1ddfWNhdGNoKFkpe31pZihIKXtILnJlbW92ZUNoaWxkKFQpfX19aWYoTS5kYXRhVHlw ZT09InNjcmlwdCImJk0uY2FjaGU9PW51bGwpe00uY2FjaGU9ZmFsc2V9aWYoTS5jYWNoZT09PWZhbHNl JiZHPT0iR0VUIil7dmFyIEU9ZSgpO3ZhciBVPU0udXJsLnJlcGxhY2UoLyhcP3wmKV89Lio/KCZ8JCkv LCIkMV89IitFKyIkMiIpO00udXJsPVUrKChVPT1NLnVybCk/KE0udXJsLm1hdGNoKC9cPy8pPyImIjoi PyIpKyJfPSIrRToiIil9aWYoTS5kYXRhJiZHPT0iR0VUIil7TS51cmwrPShNLnVybC5tYXRjaCgvXD8v KT8iJiI6Ij8iKStNLmRhdGE7TS5kYXRhPW51bGx9aWYoTS5nbG9iYWwmJiFvLmFjdGl2ZSsrKXtvLmV2 ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpfXZhciBRPS9eKFx3KzopP1wvXC8oW15cLz8jXSspLy5leGVj KE0udXJsKTtpZihNLmRhdGFUeXBlPT0ic2NyaXB0IiYmRz09IkdFVCImJlEmJihRWzFdJiZRWzFdIT1s b2NhdGlvbi5wcm90b2NvbHx8UVsyXSE9bG9jYXRpb24uaG9zdCkpe3ZhciBIPWRvY3VtZW50LmdldEVs ZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2Ny aXB0Iik7VC5zcmM9TS51cmw7aWYoTS5zY3JpcHRDaGFyc2V0KXtULmNoYXJzZXQ9TS5zY3JpcHRDaGFy c2V0fWlmKCFXKXt2YXIgTz1mYWxzZTtULm9ubG9hZD1ULm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlv bigpe2lmKCFPJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT0ibG9hZGVkInx8dGhp cy5yZWFkeVN0YXRlPT0iY29tcGxldGUiKSl7Tz10cnVlO0koKTtMKCk7VC5vbmxvYWQ9VC5vbnJlYWR5 c3RhdGVjaGFuZ2U9bnVsbDtILnJlbW92ZUNoaWxkKFQpfX19SC5hcHBlbmRDaGlsZChUKTtyZXR1cm4g Z312YXIgSz1mYWxzZTt2YXIgSj1NLnhocigpO2lmKE0udXNlcm5hbWUpe0oub3BlbihHLE0udXJsLE0u YXN5bmMsTS51c2VybmFtZSxNLnBhc3N3b3JkKX1lbHNle0oub3BlbihHLE0udXJsLE0uYXN5bmMpfXRy eXtpZihNLmRhdGEpe0ouc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixNLmNvbnRlbnRUeXBl KX1pZihNLmlmTW9kaWZpZWQpe0ouc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLG8u bGFzdE1vZGlmaWVkW00udXJsXXx8IlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIil9Si5zZXRS ZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTtKLnNldFJlcXVl c3RIZWFkZXIoIkFjY2VwdCIsTS5kYXRhVHlwZSYmTS5hY2NlcHRzW00uZGF0YVR5cGVdP00uYWNjZXB0 c1tNLmRhdGFUeXBlXSsiLCAqLyoiOk0uYWNjZXB0cy5fZGVmYXVsdCl9Y2F0Y2goUyl7fWlmKE0uYmVm b3JlU2VuZCYmTS5iZWZvcmVTZW5kKEosTSk9PT1mYWxzZSl7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZl KXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9Si5hYm9ydCgpO3JldHVybiBmYWxzZX1pZihNLmds b2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U2VuZCIsW0osTV0pfXZhciBOPWZ1bmN0aW9uKFgpe2lm KEoucmVhZHlTdGF0ZT09MCl7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGw7aWYoTS5nbG9iYWwm JiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9fX1lbHNle2lmKCFLJiZKJiYo Si5yZWFkeVN0YXRlPT00fHxYPT0idGltZW91dCIpKXtLPXRydWU7aWYoUCl7Y2xlYXJJbnRlcnZhbChQ KTtQPW51bGx9Uj1YPT0idGltZW91dCI/InRpbWVvdXQiOiFvLmh0dHBTdWNjZXNzKEopPyJlcnJvciI6 TS5pZk1vZGlmaWVkJiZvLmh0dHBOb3RNb2RpZmllZChKLE0udXJsKT8ibm90bW9kaWZpZWQiOiJzdWNj ZXNzIjtpZihSPT0ic3VjY2VzcyIpe3RyeXtWPW8uaHR0cERhdGEoSixNLmRhdGFUeXBlLE0pfWNhdGNo KFope1I9InBhcnNlcmVycm9yIn19aWYoUj09InN1Y2Nlc3MiKXt2YXIgWTt0cnl7WT1KLmdldFJlc3Bv bnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIil9Y2F0Y2goWil7fWlmKE0uaWZNb2RpZmllZCYmWSl7by5s YXN0TW9kaWZpZWRbTS51cmxdPVl9aWYoIVcpe0koKX19ZWxzZXtvLmhhbmRsZUVycm9yKE0sSixSKX1M KCk7aWYoWCl7Si5hYm9ydCgpfWlmKE0uYXN5bmMpe0o9bnVsbH19fX07aWYoTS5hc3luYyl7dmFyIFA9 c2V0SW50ZXJ2YWwoTiwxMyk7aWYoTS50aW1lb3V0PjApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihK JiYhSyl7TigidGltZW91dCIpfX0sTS50aW1lb3V0KX19dHJ5e0ouc2VuZChNLmRhdGEpfWNhdGNoKFMp e28uaGFuZGxlRXJyb3IoTSxKLG51bGwsUyl9aWYoIU0uYXN5bmMpe04oKX1mdW5jdGlvbiBJKCl7aWYo TS5zdWNjZXNzKXtNLnN1Y2Nlc3MoVixSKX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4 U3VjY2VzcyIsW0osTV0pfX1mdW5jdGlvbiBMKCl7aWYoTS5jb21wbGV0ZSl7TS5jb21wbGV0ZShKLFIp fWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW0osTV0pfWlmKE0uZ2xv YmFsJiYhLS1vLmFjdGl2ZSl7by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX1yZXR1cm4gSn0saGFu ZGxlRXJyb3I6ZnVuY3Rpb24oRixILEUsRyl7aWYoRi5lcnJvcil7Ri5lcnJvcihILEUsRyl9aWYoRi5n bG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheEVycm9yIixbSCxGLEddKX19LGFjdGl2ZTowLGh0dHBT dWNjZXNzOmZ1bmN0aW9uKEYpe3RyeXtyZXR1cm4gIUYuc3RhdHVzJiZsb2NhdGlvbi5wcm90b2NvbD09 ImZpbGU6Inx8KEYuc3RhdHVzPj0yMDAmJkYuc3RhdHVzPDMwMCl8fEYuc3RhdHVzPT0zMDR8fEYuc3Rh dHVzPT0xMjIzfWNhdGNoKEUpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihH LEUpe3RyeXt2YXIgSD1HLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7cmV0dXJuIEcu c3RhdHVzPT0zMDR8fEg9PW8ubGFzdE1vZGlmaWVkW0VdfWNhdGNoKEYpe31yZXR1cm4gZmFsc2V9LGh0 dHBEYXRhOmZ1bmN0aW9uKEosSCxHKXt2YXIgRj1KLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5 cGUiKSxFPUg9PSJ4bWwifHwhSCYmRiYmRi5pbmRleE9mKCJ4bWwiKT49MCxJPUU/Si5yZXNwb25zZVhN TDpKLnJlc3BvbnNlVGV4dDtpZihFJiZJLmRvY3VtZW50RWxlbWVudC50YWdOYW1lPT0icGFyc2VyZXJy b3IiKXt0aHJvdyJwYXJzZXJlcnJvciJ9aWYoRyYmRy5kYXRhRmlsdGVyKXtJPUcuZGF0YUZpbHRlcihJ LEgpfWlmKHR5cGVvZiBJPT09InN0cmluZyIpe2lmKEg9PSJzY3JpcHQiKXtvLmdsb2JhbEV2YWwoSSl9 aWYoSD09Impzb24iKXtJPWxbImV2YWwiXSgiKCIrSSsiKSIpfX1yZXR1cm4gSX0scGFyYW06ZnVuY3Rp b24oRSl7dmFyIEc9W107ZnVuY3Rpb24gSChJLEope0dbRy5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVu dChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEopfWlmKG8uaXNBcnJheShFKXx8RS5qcXVlcnkpe28u ZWFjaChFLGZ1bmN0aW9uKCl7SCh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KX1lbHNle2Zvcih2YXIgRiBp biBFKXtpZihvLmlzQXJyYXkoRVtGXSkpe28uZWFjaChFW0ZdLGZ1bmN0aW9uKCl7SChGLHRoaXMpfSl9 ZWxzZXtIKEYsby5pc0Z1bmN0aW9uKEVbRl0pP0VbRl0oKTpFW0ZdKX19fXJldHVybiBHLmpvaW4oIiYi KS5yZXBsYWNlKC8lMjAvZywiKyIpfX0pO3ZhciBtPXt9LG4sZD1bWyJoZWlnaHQiLCJtYXJnaW5Ub3Ai LCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJn aW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0 eSJdXTtmdW5jdGlvbiB0KEYsRSl7dmFyIEc9e307by5lYWNoKGQuY29uY2F0LmFwcGx5KFtdLGQuc2xp Y2UoMCxFKSksZnVuY3Rpb24oKXtHW3RoaXNdPUZ9KTtyZXR1cm4gR31vLmZuLmV4dGVuZCh7c2hvdzpm dW5jdGlvbihKLEwpe2lmKEope3JldHVybiB0aGlzLmFuaW1hdGUodCgic2hvdyIsMyksSixMKX1lbHNl e2Zvcih2YXIgSD0wLEY9dGhpcy5sZW5ndGg7SDxGO0grKyl7dmFyIEU9by5kYXRhKHRoaXNbSF0sIm9s ZGRpc3BsYXkiKTt0aGlzW0hdLnN0eWxlLmRpc3BsYXk9RXx8IiI7aWYoby5jc3ModGhpc1tIXSwiZGlz cGxheSIpPT09Im5vbmUiKXt2YXIgRz10aGlzW0hdLnRhZ05hbWUsSztpZihtW0ddKXtLPW1bR119ZWxz ZXt2YXIgST1vKCI8IitHKyIgLz4iKS5hcHBlbmRUbygiYm9keSIpO0s9SS5jc3MoImRpc3BsYXkiKTtp ZihLPT09Im5vbmUiKXtLPSJibG9jayJ9SS5yZW1vdmUoKTttW0ddPUt9by5kYXRhKHRoaXNbSF0sIm9s ZGRpc3BsYXkiLEspfX1mb3IodmFyIEg9MCxGPXRoaXMubGVuZ3RoO0g8RjtIKyspe3RoaXNbSF0uc3R5 bGUuZGlzcGxheT1vLmRhdGEodGhpc1tIXSwib2xkZGlzcGxheSIpfHwiIn1yZXR1cm4gdGhpc319LGhp ZGU6ZnVuY3Rpb24oSCxJKXtpZihIKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQoImhpZGUiLDMpLEgsSSl9 ZWxzZXtmb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3ZhciBFPW8uZGF0YSh0aGlzW0dd LCJvbGRkaXNwbGF5Iik7aWYoIUUmJkUhPT0ibm9uZSIpe28uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5 IixvLmNzcyh0aGlzW0ddLCJkaXNwbGF5IikpfX1mb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtH Kyspe3RoaXNbR10uc3R5bGUuZGlzcGxheT0ibm9uZSJ9cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOm8uZm4u dG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihHLEYpe3ZhciBFPXR5cGVvZiBHPT09ImJvb2xlYW4iO3JldHVy biBvLmlzRnVuY3Rpb24oRykmJm8uaXNGdW5jdGlvbihGKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxh cmd1bWVudHMpOkc9PW51bGx8fEU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIEg9RT9HOm8odGhpcyku aXMoIjpoaWRkZW4iKTtvKHRoaXMpW0g/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZSh0KCJ0 b2dnbGUiLDMpLEcsRil9LGZhZGVUbzpmdW5jdGlvbihFLEcsRil7cmV0dXJuIHRoaXMuYW5pbWF0ZSh7 b3BhY2l0eTpHfSxFLEYpfSxhbmltYXRlOmZ1bmN0aW9uKEksRixILEcpe3ZhciBFPW8uc3BlZWQoRixI LEcpO3JldHVybiB0aGlzW0UucXVldWU9PT1mYWxzZT8iZWFjaCI6InF1ZXVlIl0oZnVuY3Rpb24oKXt2 YXIgSz1vLmV4dGVuZCh7fSxFKSxNLEw9dGhpcy5ub2RlVHlwZT09MSYmbyh0aGlzKS5pcygiOmhpZGRl biIpLEo9dGhpcztmb3IoTSBpbiBJKXtpZihJW01dPT0iaGlkZSImJkx8fElbTV09PSJzaG93IiYmIUwp e3JldHVybiBLLmNvbXBsZXRlLmNhbGwodGhpcyl9aWYoKE09PSJoZWlnaHQifHxNPT0id2lkdGgiKSYm dGhpcy5zdHlsZSl7Sy5kaXNwbGF5PW8uY3NzKHRoaXMsImRpc3BsYXkiKTtLLm92ZXJmbG93PXRoaXMu c3R5bGUub3ZlcmZsb3d9fWlmKEsub3ZlcmZsb3chPW51bGwpe3RoaXMuc3R5bGUub3ZlcmZsb3c9Imhp ZGRlbiJ9Sy5jdXJBbmltPW8uZXh0ZW5kKHt9LEkpO28uZWFjaChJLGZ1bmN0aW9uKE8sUyl7dmFyIFI9 bmV3IG8uZngoSixLLE8pO2lmKC90b2dnbGV8c2hvd3xoaWRlLy50ZXN0KFMpKXtSW1M9PSJ0b2dnbGUi P0w/InNob3ciOiJoaWRlIjpTXShJKX1lbHNle3ZhciBRPVMudG9TdHJpbmcoKS5tYXRjaCgvXihbKy1d PSk/KFtcZCstLl0rKSguKikkLyksVD1SLmN1cih0cnVlKXx8MDtpZihRKXt2YXIgTj1wYXJzZUZsb2F0 KFFbMl0pLFA9UVszXXx8InB4IjtpZihQIT0icHgiKXtKLnN0eWxlW09dPShOfHwxKStQO1Q9KChOfHwx KS9SLmN1cih0cnVlKSkqVDtKLnN0eWxlW09dPVQrUH1pZihRWzFdKXtOPSgoUVsxXT09Ii09Ij8tMTox KSpOKStUfVIuY3VzdG9tKFQsTixQKX1lbHNle1IuY3VzdG9tKFQsUywiIil9fX0pO3JldHVybiB0cnVl fSl9LHN0b3A6ZnVuY3Rpb24oRixFKXt2YXIgRz1vLnRpbWVycztpZihGKXt0aGlzLnF1ZXVlKFtdKX10 aGlzLmVhY2goZnVuY3Rpb24oKXtmb3IodmFyIEg9Ry5sZW5ndGgtMTtIPj0wO0gtLSl7aWYoR1tIXS5l bGVtPT10aGlzKXtpZihFKXtHW0hdKHRydWUpfUcuc3BsaWNlKEgsMSl9fX0pO2lmKCFFKXt0aGlzLmRl cXVldWUoKX1yZXR1cm4gdGhpc319KTtvLmVhY2goe3NsaWRlRG93bjp0KCJzaG93IiwxKSxzbGlkZVVw OnQoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOnQoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93 In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24o RyxIKXtyZXR1cm4gdGhpcy5hbmltYXRlKEYsRyxIKX19KTtvLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24o RyxILEYpe3ZhciBFPXR5cGVvZiBHPT09Im9iamVjdCI/Rzp7Y29tcGxldGU6Rnx8IUYmJkh8fG8uaXNG dW5jdGlvbihHKSYmRyxkdXJhdGlvbjpHLGVhc2luZzpGJiZIfHxIJiYhby5pc0Z1bmN0aW9uKEgpJiZI fTtFLmR1cmF0aW9uPW8uZngub2ZmPzA6dHlwZW9mIEUuZHVyYXRpb249PT0ibnVtYmVyIj9FLmR1cmF0 aW9uOm8uZnguc3BlZWRzW0UuZHVyYXRpb25dfHxvLmZ4LnNwZWVkcy5fZGVmYXVsdDtFLm9sZD1FLmNv bXBsZXRlO0UuY29tcGxldGU9ZnVuY3Rpb24oKXtpZihFLnF1ZXVlIT09ZmFsc2Upe28odGhpcykuZGVx dWV1ZSgpfWlmKG8uaXNGdW5jdGlvbihFLm9sZCkpe0Uub2xkLmNhbGwodGhpcyl9fTtyZXR1cm4gRX0s ZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oRyxILEUsRil7cmV0dXJuIEUrRipHfSxzd2luZzpmdW5jdGlv bihHLEgsRSxGKXtyZXR1cm4oKC1NYXRoLmNvcyhHKk1hdGguUEkpLzIpKzAuNSkqRitFfX0sdGltZXJz OltdLGZ4OmZ1bmN0aW9uKEYsRSxHKXt0aGlzLm9wdGlvbnM9RTt0aGlzLmVsZW09Rjt0aGlzLnByb3A9 RztpZighRS5vcmlnKXtFLm9yaWc9e319fX0pO28uZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24o KXtpZih0aGlzLm9wdGlvbnMuc3RlcCl7dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhp cy5ub3csdGhpcyl9KG8uZnguc3RlcFt0aGlzLnByb3BdfHxvLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMp O2lmKCh0aGlzLnByb3A9PSJoZWlnaHQifHx0aGlzLnByb3A9PSJ3aWR0aCIpJiZ0aGlzLmVsZW0uc3R5 bGUpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fSxjdXI6ZnVuY3Rpb24oRil7aWYodGhp cy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVb dGhpcy5wcm9wXT09bnVsbCkpe3JldHVybiB0aGlzLmVsZW1bdGhpcy5wcm9wXX12YXIgRT1wYXJzZUZs b2F0KG8uY3NzKHRoaXMuZWxlbSx0aGlzLnByb3AsRikpO3JldHVybiBFJiZFPi0xMDAwMD9FOnBhcnNl RmxvYXQoby5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oSSxI LEcpe3RoaXMuc3RhcnRUaW1lPWUoKTt0aGlzLnN0YXJ0PUk7dGhpcy5lbmQ9SDt0aGlzLnVuaXQ9R3x8 dGhpcy51bml0fHwicHgiO3RoaXMubm93PXRoaXMuc3RhcnQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0wO3Zh ciBFPXRoaXM7ZnVuY3Rpb24gRihKKXtyZXR1cm4gRS5zdGVwKEopfUYuZWxlbT10aGlzLmVsZW07aWYo RigpJiZvLnRpbWVycy5wdXNoKEYpJiYhbil7bj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBLPW8u dGltZXJzO2Zvcih2YXIgSj0wO0o8Sy5sZW5ndGg7SisrKXtpZighS1tKXSgpKXtLLnNwbGljZShKLS0s MSl9fWlmKCFLLmxlbmd0aCl7Y2xlYXJJbnRlcnZhbChuKTtuPWd9fSwxMyl9fSxzaG93OmZ1bmN0aW9u KCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1vLmF0dHIodGhpcy5lbGVtLnN0eWxlLHRoaXMu cHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLnByb3A9PSJ3aWR0aCJ8 fHRoaXMucHJvcD09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO28odGhpcy5lbGVtKS5zaG93KCl9LGhp ZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPW8uYXR0cih0aGlzLmVsZW0u c3R5bGUsdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuaGlkZT10cnVlO3RoaXMuY3VzdG9tKHRoaXMuY3Vy KCksMCl9LHN0ZXA6ZnVuY3Rpb24oSCl7dmFyIEc9ZSgpO2lmKEh8fEc+PXRoaXMub3B0aW9ucy5kdXJh dGlvbit0aGlzLnN0YXJ0VGltZSl7dGhpcy5ub3c9dGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0x O3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO3ZhciBFPXRy dWU7Zm9yKHZhciBGIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtpZih0aGlzLm9wdGlvbnMuY3VyQW5p bVtGXSE9PXRydWUpe0U9ZmFsc2V9fWlmKEUpe2lmKHRoaXMub3B0aW9ucy5kaXNwbGF5IT1udWxsKXt0 aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhpcy5vcHRpb25zLm92ZXJmbG93O3RoaXMuZWxlbS5zdHls ZS5kaXNwbGF5PXRoaXMub3B0aW9ucy5kaXNwbGF5O2lmKG8uY3NzKHRoaXMuZWxlbSwiZGlzcGxheSIp PT0ibm9uZSIpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fWlmKHRoaXMub3B0aW9ucy5o aWRlKXtvKHRoaXMuZWxlbSkuaGlkZSgpfWlmKHRoaXMub3B0aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMu c2hvdyl7Zm9yKHZhciBJIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtvLmF0dHIodGhpcy5lbGVtLnN0 eWxlLEksdGhpcy5vcHRpb25zLm9yaWdbSV0pfX10aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlz LmVsZW0pfXJldHVybiBmYWxzZX1lbHNle3ZhciBKPUctdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1K L3RoaXMub3B0aW9ucy5kdXJhdGlvbjt0aGlzLnBvcz1vLmVhc2luZ1t0aGlzLm9wdGlvbnMuZWFzaW5n fHwoby5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIildKHRoaXMuc3RhdGUsSiwwLDEsdGhpcy5v cHRpb25zLmR1cmF0aW9uKTt0aGlzLm5vdz10aGlzLnN0YXJ0KygodGhpcy5lbmQtdGhpcy5zdGFydCkq dGhpcy5wb3MpO3RoaXMudXBkYXRlKCl9cmV0dXJuIHRydWV9fTtvLmV4dGVuZChvLmZ4LHtzcGVlZHM6 e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlvbihFKXtv LmF0dHIoRS5lbGVtLnN0eWxlLCJvcGFjaXR5IixFLm5vdyl9LF9kZWZhdWx0OmZ1bmN0aW9uKEUpe2lm KEUuZWxlbS5zdHlsZSYmRS5lbGVtLnN0eWxlW0UucHJvcF0hPW51bGwpe0UuZWxlbS5zdHlsZVtFLnBy b3BdPUUubm93K0UudW5pdH1lbHNle0UuZWxlbVtFLnByb3BdPUUubm93fX19fSk7aWYoZG9jdW1lbnQu ZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7by5mbi5vZmZzZXQ9ZnVuY3Rpb24o KXtpZighdGhpc1swXSl7cmV0dXJue3RvcDowLGxlZnQ6MH19aWYodGhpc1swXT09PXRoaXNbMF0ub3du ZXJEb2N1bWVudC5ib2R5KXtyZXR1cm4gby5vZmZzZXQuYm9keU9mZnNldCh0aGlzWzBdKX12YXIgRz10 aGlzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEo9dGhpc1swXS5vd25lckRvY3VtZW50LEY9Si5i b2R5LEU9Si5kb2N1bWVudEVsZW1lbnQsTD1FLmNsaWVudFRvcHx8Ri5jbGllbnRUb3B8fDAsSz1FLmNs aWVudExlZnR8fEYuY2xpZW50TGVmdHx8MCxJPUcudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0fHxvLmJveE1v ZGVsJiZFLnNjcm9sbFRvcHx8Ri5zY3JvbGxUb3ApLUwsSD1HLmxlZnQrKHNlbGYucGFnZVhPZmZzZXR8 fG8uYm94TW9kZWwmJkUuc2Nyb2xsTGVmdHx8Ri5zY3JvbGxMZWZ0KS1LO3JldHVybnt0b3A6SSxsZWZ0 Okh9fX1lbHNle28uZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pe3JldHVybnt0b3A6MCxs ZWZ0OjB9fWlmKHRoaXNbMF09PT10aGlzWzBdLm93bmVyRG9jdW1lbnQuYm9keSl7cmV0dXJuIG8ub2Zm c2V0LmJvZHlPZmZzZXQodGhpc1swXSl9by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRp YWxpemUoKTt2YXIgSj10aGlzWzBdLEc9Si5vZmZzZXRQYXJlbnQsRj1KLE89Si5vd25lckRvY3VtZW50 LE0sSD1PLmRvY3VtZW50RWxlbWVudCxLPU8uYm9keSxMPU8uZGVmYXVsdFZpZXcsRT1MLmdldENvbXB1 dGVkU3R5bGUoSixudWxsKSxOPUoub2Zmc2V0VG9wLEk9Si5vZmZzZXRMZWZ0O3doaWxlKChKPUoucGFy ZW50Tm9kZSkmJkohPT1LJiZKIT09SCl7TT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKTtOLT1KLnNj cm9sbFRvcCxJLT1KLnNjcm9sbExlZnQ7aWYoSj09PUcpe04rPUoub2Zmc2V0VG9wLEkrPUoub2Zmc2V0 TGVmdDtpZihvLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKG8ub2Zmc2V0LmRvZXNBZGRCb3JkZXJG b3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoSi50YWdOYW1lKSkpe04rPXBhcnNl SW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEw KXx8MH1GPUcsRz1KLm9mZnNldFBhcmVudH1pZihvLm9mZnNldC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVy Zmxvd05vdFZpc2libGUmJk0ub3ZlcmZsb3chPT0idmlzaWJsZSIpe04rPXBhcnNlSW50KE0uYm9yZGVy VG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1FPU19aWYo RS5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fEUucG9zaXRpb249PT0ic3RhdGljIil7Tis9Sy5vZmZzZXRU b3AsSSs9Sy5vZmZzZXRMZWZ0fWlmKEUucG9zaXRpb249PT0iZml4ZWQiKXtOKz1NYXRoLm1heChILnNj cm9sbFRvcCxLLnNjcm9sbFRvcCksSSs9TWF0aC5tYXgoSC5zY3JvbGxMZWZ0LEsuc2Nyb2xsTGVmdCl9 cmV0dXJue3RvcDpOLGxlZnQ6SX19fW8ub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7aWYodGhp cy5pbml0aWFsaXplZCl7cmV0dXJufXZhciBMPWRvY3VtZW50LmJvZHksRj1kb2N1bWVudC5jcmVhdGVF bGVtZW50KCJkaXYiKSxILEcsTixJLE0sRSxKPUwuc3R5bGUubWFyZ2luVG9wLEs9JzxkaXYgc3R5bGU9 InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMw MDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PGRpdj48L2Rpdj48L2Rpdj48dGFibGUg c3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNv bGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyIgY2VsbHBhZGRpbmc9IjAiIGNl bGxzcGFjaW5nPSIwIj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPic7TT17cG9zaXRpb246ImFic29s dXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgi LHZpc2liaWxpdHk6ImhpZGRlbiJ9O2ZvcihFIGluIE0pe0Yuc3R5bGVbRV09TVtFXX1GLmlubmVySFRN TD1LO0wuaW5zZXJ0QmVmb3JlKEYsTC5maXJzdENoaWxkKTtIPUYuZmlyc3RDaGlsZCxHPUguZmlyc3RD aGlsZCxJPUgubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxkO3RoaXMuZG9lc05vdEFkZEJv cmRlcj0oRy5vZmZzZXRUb3AhPT01KTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPShJ Lm9mZnNldFRvcD09PTUpO0guc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsSC5zdHlsZS5wb3NpdGlvbj0i cmVsYXRpdmUiO3RoaXMuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlPShHLm9mZnNl dFRvcD09PS01KTtMLnN0eWxlLm1hcmdpblRvcD0iMXB4Ijt0aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2lu SW5Cb2R5T2Zmc2V0PShMLm9mZnNldFRvcD09PTApO0wuc3R5bGUubWFyZ2luVG9wPUo7TC5yZW1vdmVD aGlsZChGKTt0aGlzLmluaXRpYWxpemVkPXRydWV9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oRSl7by5vZmZz ZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgRz1FLm9mZnNldFRvcCxGPUUu b2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Rys9 cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luVG9wIix0cnVlKSwxMCl8fDAsRis9cGFyc2VJbnQoby5j dXJDU1MoRSwibWFyZ2luTGVmdCIsdHJ1ZSksMTApfHwwfXJldHVybnt0b3A6RyxsZWZ0OkZ9fX07by5m bi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIEk9MCxIPTAsRjtpZih0aGlzWzBdKXt2YXIg Rz10aGlzLm9mZnNldFBhcmVudCgpLEo9dGhpcy5vZmZzZXQoKSxFPS9eYm9keXxodG1sJC9pLnRlc3Qo R1swXS50YWdOYW1lKT97dG9wOjAsbGVmdDowfTpHLm9mZnNldCgpO0oudG9wLT1qKHRoaXMsIm1hcmdp blRvcCIpO0oubGVmdC09aih0aGlzLCJtYXJnaW5MZWZ0Iik7RS50b3ArPWooRywiYm9yZGVyVG9wV2lk dGgiKTtFLmxlZnQrPWooRywiYm9yZGVyTGVmdFdpZHRoIik7Rj17dG9wOkoudG9wLUUudG9wLGxlZnQ6 Si5sZWZ0LUUubGVmdH19cmV0dXJuIEZ9LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3ZhciBFPXRoaXNb MF0ub2Zmc2V0UGFyZW50fHxkb2N1bWVudC5ib2R5O3doaWxlKEUmJighL15ib2R5fGh0bWwkL2kudGVz dChFLnRhZ05hbWUpJiZvLmNzcyhFLCJwb3NpdGlvbiIpPT0ic3RhdGljIikpe0U9RS5vZmZzZXRQYXJl bnR9cmV0dXJuIG8oRSl9fSk7by5lYWNoKFsiTGVmdCIsIlRvcCJdLGZ1bmN0aW9uKEYsRSl7dmFyIEc9 InNjcm9sbCIrRTtvLmZuW0ddPWZ1bmN0aW9uKEgpe2lmKCF0aGlzWzBdKXtyZXR1cm4gbnVsbH1yZXR1 cm4gSCE9PWc/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09bHx8dGhpcz09ZG9jdW1lbnQ/bC5zY3Jv bGxUbyghRj9IOm8obCkuc2Nyb2xsTGVmdCgpLEY/SDpvKGwpLnNjcm9sbFRvcCgpKTp0aGlzW0ddPUh9 KTp0aGlzWzBdPT1sfHx0aGlzWzBdPT1kb2N1bWVudD9zZWxmW0Y/InBhZ2VZT2Zmc2V0IjoicGFnZVhP ZmZzZXQiXXx8by5ib3hNb2RlbCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W0ddfHxkb2N1bWVudC5i b2R5W0ddOnRoaXNbMF1bR119fSk7by5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihJLEcp e3ZhciBFPUk/IkxlZnQiOiJUb3AiLEg9ST8iUmlnaHQiOiJCb3R0b20iLEY9Ry50b0xvd2VyQ2FzZSgp O28uZm5bImlubmVyIitHXT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBdP28uY3NzKHRoaXNbMF0sRixm YWxzZSwicGFkZGluZyIpOm51bGx9O28uZm5bIm91dGVyIitHXT1mdW5jdGlvbihLKXtyZXR1cm4gdGhp c1swXT9vLmNzcyh0aGlzWzBdLEYsZmFsc2UsSz8ibWFyZ2luIjoiYm9yZGVyIik6bnVsbH07dmFyIEo9 Ry50b0xvd2VyQ2FzZSgpO28uZm5bSl09ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXNbMF09PWw/ZG9jdW1l bnQuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVu dCIrR118fGRvY3VtZW50LmJvZHlbImNsaWVudCIrR106dGhpc1swXT09ZG9jdW1lbnQ/TWF0aC5tYXgo ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK0ddLGRvY3VtZW50LmJvZHlbInNjcm9sbCIr R10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK0ddLGRvY3VtZW50LmJvZHlbIm9mZnNl dCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJvZmZzZXQiK0ddKTpLPT09Zz8odGhpcy5sZW5n dGg/by5jc3ModGhpc1swXSxKKTpudWxsKTp0aGlzLmNzcyhKLHR5cGVvZiBLPT09InN0cmluZyI/SzpL KyJweCIpfX0pfSkoKTs= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/jquery.template.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoqCiAqIGpRdWVyeSBUZW1wbGF0ZXMKICoKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUICho dHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCkKICogYW5kIEdQ TCAoaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHApIGxpY2Vu c2VzLgogKgogKiBXcml0dGVuIGJ5OiBTdGFuIExlbW9uIDxzdGFubGVtb25AbWFjLmNvbT4KICoKICog QmFzZWQgb2ZmIG9mIHRoZSBFeHQuVGVtcGxhdGUgbGlicmFyeSwgYXZhaWxhYmxlIGF0OgogKiBodHRw Oi8vd3d3LmV4dGpzLmNvbQogKgogKiBUaGlzIGxpYnJhcnkgcHJvdmlkZXMgYmFzaWMgdGVtcGxhdGlu ZyBmdW5jdGlvbmFsaXR5LCBhbGxvd2luZyBmb3IgbWFjcm8tYmFzZWQKICogdGVtcGxhdGVzIHdpdGhp biBqUXVlcnkuCiAqCiAqIEJhc2ljIFVzYWdlOgogKgogKiB2YXIgdCA9ICQudGVtcGxhdGUoJzxkaXYg aWQ9ImZvbyI+SGVsbG8gJHtuYW1lfSwgaG93IGFyZSB5b3UgJHtxdWVzdGlvbn0/ICBJIGFtICR7bWU6 c3Vic3RyKDAsMTApfTwvZGl2PicpOwogKgogKiAkKHNlbGVjdG9yKS5hcHBlbmQoIHQgLCB7CiAqICAg ICBuYW1lOiAnU3RhbicsCiAqICAgICBxdWVzdGlvbjogJ2ZlZWxpbmcnLAogKiAgICAgbWU6ICdkb2lu ZyBxdWl0ZSB3ZWxsIG15c2VsZiwgdGhhbmsgeW91IHZlcnkgbXVjaCEnCiAqIH0pOwogKgogKiBSZXF1 aXJlczogalF1ZXJ5IDEuMisKICoKICoKICogQHRvZG8gICAgQWRkIGNhbGxiYWNrcyB0byB0aGUgRE9N IG1hbmlwdWxhdGlvbiBtZXRob2RzLCBzbyB0aGF0IGV2ZW50cyBjYW4gYmUgYm91bmQKICogICAgICAg ICAgdG8gdGVtcGxhdGUgbm9kZXMgYWZ0ZXIgY3JlYXRpb24uCiAqLwooZnVuY3Rpb24oJCl7CgkKCS8q KgoJICogQ3JlYXRlIGEgTmV3IFRlbXBsYXRlCgkgKi8KCSQudGVtcGxhdGUgPSBmdW5jdGlvbihodG1s LCBvcHRpb25zKSB7CgkJcmV0dXJuIG5ldyAkLnRlbXBsYXRlLmluc3RhbmNlKGh0bWwsIG9wdGlvbnMp OwoJfTsKCgkvKioKCSAqIFRlbXBsYXRlIGNvbnN0cnVjdG9yIC0gQ3JlYXRlcyBhIG5ldyB0ZW1wbGF0 ZSBpbnN0YW5jZS4KCSAqCgkgKiBAcGFyYW0gCWh0bWwgCVRoZSBzdHJpbmcgb2YgSFRNTCB0byBiZSB1 c2VkIGZvciB0aGUgdGVtcGxhdGUuCgkgKiBAcGFyYW0gCW9wdGlvbnMgQW4gb2JqZWN0IG9mIGNvbmZp Z3VyYWJsZSBvcHRpb25zLiAgQ3VycmVudGx5CgkgKiAJCQl5b3UgY2FuIHRvZ2dsZSBjb21waWxlIGFz IGEgYm9vbGVhbiB2YWx1ZSBhbmQgc2V0IGEgY3VzdG9tCgkgKiAgICAgICAgICB0ZW1wbGF0ZSByZWd1 bGFyIGV4cHJlc3Npb24gb24gdGhlIHByb3BlcnR5IHJlZ3ggYnkKCSAqICAgICAgICAgIHNwZWNpZnlp bmcgdGhlIGtleSBvZiB0aGUgcmVneCB0byB1c2UgZnJvbSB0aGUgcmVneCBvYmplY3QuCgkgKi8KCSQu dGVtcGxhdGUuaW5zdGFuY2UgPSBmdW5jdGlvbihodG1sLCBvcHRpb25zKSB7CiAgICAgICAgLy8gSWYg YSBjdXN0b20gcmVndWxhciBleHByZXNzaW9uIGhhcyBiZWVuIHNldCwgZ3JhYiBpdCBmcm9tIHRoZSBy ZWd4IG9iamVjdAogICAgICAgIGlmICggb3B0aW9ucyAmJiBvcHRpb25zWydyZWd4J10gKSBvcHRpb25z LnJlZ3ggPSB0aGlzLnJlZ3hbIG9wdGlvbnMucmVneCBdOwoKCQl0aGlzLm9wdGlvbnMgPSAkLmV4dGVu ZCh7CgkJCWNvbXBpbGU6IAkJZmFsc2UsCgkJCXJlZ3g6ICAgICAgICAgICB0aGlzLnJlZ3guc3RhbmRh cmQKCQl9LCBvcHRpb25zIHx8IHt9KTsKCgkJdGhpcy5odG1sID0gaHRtbDsKCgkJaWYgKHRoaXMub3B0 aW9ucy5jb21waWxlKSB7CgkJCXRoaXMuY29tcGlsZSgpOyAgIAoJCX0KCQl0aGlzLmlzVGVtcGxhdGUg PSB0cnVlOwoJfTsKCgkvKioKCSAqIFJlZ3VsYXIgRXhwcmVzc2lvbiBmb3IgRmluZGluZyBWYXJpYWJs ZXMKCSAqCgkgKiBUaGUgZGVmYXVsdCBwYXR0ZXJuIGxvb2tzIGZvciB2YXJpYWJsZXMgaW4gSlNQIHN0 eWxlLCB0aGUgZm9ybSBvZjogJHt2YXJpYWJsZX0KCSAqIFRoZXJlIGFyZSBhbHNvIHJlZ3VsYXIgZXhw cmVzc2lvbnMgYXZhaWxhYmxlIGZvciBleHQtc3R5bGUgdmFyaWFibGVzIGFuZAoJICogalRlbXBsYXRl IHN0eWxlIHZhcmlhYmxlcy4KCSAqCgkgKiBZb3UgY2FuIGFkZCB5b3VyIG93biByZWd1bGFyIGV4cHJl c3Npb25zIGZvciB2YXJpYWJsZSB1c3NhZ2UgYnkgZG9pbmcuCgkgKiAkLmV4dGVuZCh7ICQudGVtcGxh dGUucmUgLCB7CgkgKiAgICAgbXl2YXJ0eXBlOiAvLi4uLi4vZwoJICogfQoJICoKCSAqIFRoZW4gd2hl biBjcmVhdGluZyBhIHRlbXBsYXRlIGRvOgoJICogdmFyIHQgPSAkLnRlbXBsYXRlKCI8ZGl2Pi4uLjwv ZGl2PiIsIHsgcmVneDogJ215dmFydHlwZScgfSk7CgkgKi8KCSQudGVtcGxhdGUucmVneCA9ICQudGVt cGxhdGUuaW5zdGFuY2UucHJvdG90eXBlLnJlZ3ggPSB7CgkgICAganNwOiAgICAgICAgL1wkXHsoW1x3 LV0rKSg/Olw6KFtcd1wuXSopKD86XCgoLio/KT9cKSk/KT9cfS9nLAogICAgICAgIGV4dDogICAgICAg IC9ceyhbXHctXSspKD86XDooW1x3XC5dKikoPzpcKCguKj8pP1wpKT8pP1x9L2csCiAgICAgICAganRl bXBsYXRlczogL1x7XHsoW1x3LV0rKSg/Olw6KFtcd1wuXSopKD86XCgoLio/KT9cKSk/KT9cfVx9L2cK CX07CgkKCS8qKgoJICogU2V0IHRoZSBzdGFuZGFyZCByZWd1bGFyIGV4cHJlc3Npb24gdG8gYmUgdXNl ZC4KCSAqLwoJJC50ZW1wbGF0ZS5yZWd4LnN0YW5kYXJkID0gJC50ZW1wbGF0ZS5yZWd4LmpzcDsKCQoJ LyoqCgkgKiBWYXJpYWJsZSBIZWxwZXIgTWV0aG9kcwoJICoKCSAqIFRoaXMgaXMgYSBjb2xsZWN0aW9u IG9mIG1ldGhvZHMgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aGluIHRoZSB2YXJpYWJsZSBzeW50YXgsIGll OgoJICogJHt2YXJpYWJsZTpzdWJzdHIoMCwzMCl9IFdoaWNoIHdvdWxkIG9ubHkgcHJpbnQgYSBzdWJz dHJpbmcsIDMwIGNoYXJhY3RlcnMgaW4gbGVuZ3RoCgkgKiBiZWdpbmluZyBhdCB0aGUgZmlyc3QgY2hh cmFjdGVyIGZvciB0aGUgdmFyaWFibGUgbmFtZWQgInZhcmlhYmxlIi4KCSAqCgkgKiBBIGJhc2ljIHN1 YnN0cmluZyBoZWxwZXIgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgeW91IGNhbiBkZWZp bmUgaGVscGVycy4KCSAqIFRvIGFkZCBtb3JlIGhlbHBlcnMgc2ltcGx5IGRvOgoJICogJC5leHRlbmQo ICQudGVtcGxhdGUuaGVscGVycyAsIHsKCSAqCSBzYW1wbGVIZWxwZXI6IGZ1bmN0aW9uKCkgeyAuLi4g fQkKCSAqIH0pOwoJICovCgkkLnRlbXBsYXRlLmhlbHBlcnMgPSAkLnRlbXBsYXRlLmluc3RhbmNlLnBy b3RvdHlwZS5oZWxwZXJzID0gewoJCXN1YnN0ciA6IGZ1bmN0aW9uKHZhbHVlLCBzdGFydCwgbGVuZ3Ro KXsKCQkJcmV0dXJuIFN0cmluZyh2YWx1ZSkuc3Vic3RyKHN0YXJ0LCBsZW5ndGgpOwoJCX0KCX07CgoK CS8qKgoJICogVGVtcGxhdGUgSW5zdGFuY2UgTWV0aG9kcwoJICovCgkkLmV4dGVuZCggJC50ZW1wbGF0 ZS5pbnN0YW5jZS5wcm90b3R5cGUsIHsKCQkKCQkvKioKCQkgKiBBcHBseSBWYWx1ZXMgdG8gYSBUZW1w bGF0ZQoJCSAqCgkJICogVGhpcyBpcyB0aGUgbWFjcm8td29yayBob3JzZSBvZiB0aGUgbGlicmFyeSwg aXQgcmVjZWl2ZXMgYW4gb2JqZWN0CgkJICogYW5kIHRoZSBwcm9wZXJ0aWVzIG9mIHRoYXQgb2JqZWN0 cyBhcmUgYXNzaWduZWQgdG8gdGhlIHRlbXBsYXRlLCB3aGVyZQoJCSAqIHRoZSB2YXJpYWJsZXMgaW4g dGhlIHRlbXBsYXRlIHJlcHJlc2VudCBrZXlzIHdpdGhpbiB0aGUgb2JqZWN0IGl0c2VsZi4KCQkgKgoJ CSAqIEBwYXJhbSAJdmFsdWVzIAlBbiBvYmplY3Qgb2YgcHJvcGVydGllcyBtYXBwZWQgdG8gdGVtcGxh dGUgdmFyaWFibGVzCgkJICovCgkJYXBwbHk6IGZ1bmN0aW9uKHZhbHVlcykgewoJCQlpZiAodGhpcy5v cHRpb25zLmNvbXBpbGUpIHsKCQkJCXJldHVybiB0aGlzLmNvbXBpbGVkKHZhbHVlcyk7CgkJCX0gZWxz ZSB7CgkJCQl2YXIgdHBsID0gdGhpczsKCQkJCXZhciBmbSA9IHRoaXMuaGVscGVyczsKCgkJCQl2YXIg Zm4gPSBmdW5jdGlvbihtLCBuYW1lLCBmb3JtYXQsIGFyZ3MpIHsKCQkJCQlpZiAoZm9ybWF0KSB7CgkJ CQkJCWlmIChmb3JtYXQuc3Vic3RyKDAsIDUpID09ICJ0aGlzLiIpewoJCQkJCQkJcmV0dXJuIHRwbC5j YWxsKGZvcm1hdC5zdWJzdHIoNSksIHZhbHVlc1tuYW1lXSwgdmFsdWVzKTsKCQkJCQkJfSBlbHNlIHsK CQkJCQkJCWlmIChhcmdzKSB7CgkJCQkJCQkJLy8gcXVvdGVkIHZhbHVlcyBhcmUgcmVxdWlyZWQgZm9y IHN0cmluZ3MgaW4gY29tcGlsZWQgdGVtcGxhdGVzLCAKCQkJCQkJCQkvLyBidXQgZm9yIG5vbiBjb21w aWxlZCB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KCQkJCQkJCQkvLyBxdW90ZWQgcmV2ZXJzZWQgZm9yIGpz bWluCgkJCQkJCQkJdmFyIHJlID0gL15ccypbJyJdKC4qKVsiJ11ccyokLzsKCQkJCQkJCQlhcmdzID0g YXJncy5zcGxpdCgnLCcpOwoKCQkJCQkJCQlmb3IodmFyIGkgPSAwLCBsZW4gPSBhcmdzLmxlbmd0aDsg aSA8IGxlbjsgaSsrKSB7CgkJCQkJCQkJCWFyZ3NbaV0gPSBhcmdzW2ldLnJlcGxhY2UocmUsICIkMSIp OwoJCQkJCQkJCX0KCQkJCQkJCQlhcmdzID0gW3ZhbHVlc1tuYW1lXV0uY29uY2F0KGFyZ3MpOwoJCQkJ CQkJfSBlbHNlIHsKCQkJCQkJCQlhcmdzID0gW3ZhbHVlc1tuYW1lXV07CgkJCQkJCQl9CgoJCQkJCQkJ cmV0dXJuIGZtW2Zvcm1hdF0uYXBwbHkoZm0sIGFyZ3MpOwoJCQkJCQl9CgkJCQkJfSBlbHNlIHsKCQkJ CQkJcmV0dXJuIHZhbHVlc1tuYW1lXSAhPT0gdW5kZWZpbmVkID8gdmFsdWVzW25hbWVdIDogIiI7CgkJ CQkJfQoJCQkJfTsKCgkJCQlyZXR1cm4gdGhpcy5odG1sLnJlcGxhY2UodGhpcy5vcHRpb25zLnJlZ3gs IGZuKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIENvbXBpbGUgYSB0ZW1wbGF0ZSBmb3Igc3BlZWRpZXIg dXNhZ2UKCQkgKi8KCQljb21waWxlOiBmdW5jdGlvbigpIHsKCQkJdmFyIHNlcCA9ICQuYnJvd3Nlci5t b3ppbGxhID8gIisiIDogIiwiOwoJCQl2YXIgZm0gPSB0aGlzLmhlbHBlcnM7CgoJCQl2YXIgZm4gPSBm dW5jdGlvbihtLCBuYW1lLCBmb3JtYXQsIGFyZ3MpewoJCQkJaWYgKGZvcm1hdCkgewoJCQkJCWFyZ3Mg PSBhcmdzID8gJywnICsgYXJncyA6ICIiOwoKCQkJCQlpZiAoZm9ybWF0LnN1YnN0cigwLCA1KSAhPSAi dGhpcy4iKSB7CgkJCQkJCWZvcm1hdCA9ICJmbS4iICsgZm9ybWF0ICsgJygnOwoJCQkJCX0gZWxzZSB7 CgkJCQkJCWZvcm1hdCA9ICd0aGlzLmNhbGwoIicrIGZvcm1hdC5zdWJzdHIoNSkgKyAnIiwgJzsKCQkJ CQkJYXJncyA9ICIsIHZhbHVlcyI7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQlhcmdzPSAnJzsgZm9y bWF0ID0gIih2YWx1ZXNbJyIgKyBuYW1lICsgIiddID09IHVuZGVmaW5lZCA/ICcnIDogIjsKCQkJCX0K CQkJCXJldHVybiAiJyIrIHNlcCArIGZvcm1hdCArICJ2YWx1ZXNbJyIgKyBuYW1lICsgIiddIiArIGFy Z3MgKyAiKSIrc2VwKyInIjsKCQkJfTsKCgkJCXZhciBib2R5OwoKCQkJaWYgKCQuYnJvd3Nlci5tb3pp bGxhKSB7CgkJCQlib2R5ID0gInRoaXMuY29tcGlsZWQgPSBmdW5jdGlvbih2YWx1ZXMpeyByZXR1cm4g JyIgKwoJCQkJCSAgIHRoaXMuaHRtbC5yZXBsYWNlKC9cXC9nLCAnXFxcXCcpLnJlcGxhY2UoLyhcclxu fFxuKS9nLCAnXFxuJykucmVwbGFjZSgvJy9nLCAiXFwnIikucmVwbGFjZSh0aGlzLm9wdGlvbnMucmVn eCwgZm4pICsKCQkJCQkJIic7fTsiOwoJCQl9IGVsc2UgewoJCQkJYm9keSA9IFsidGhpcy5jb21waWxl ZCA9IGZ1bmN0aW9uKHZhbHVlcyl7IHJldHVybiBbJyJdOwoJCQkJYm9keS5wdXNoKHRoaXMuaHRtbC5y ZXBsYWNlKC9cXC9nLCAnXFxcXCcpLnJlcGxhY2UoLyhcclxufFxuKS9nLCAnXFxuJykucmVwbGFjZSgv Jy9nLCAiXFwnIikucmVwbGFjZSh0aGlzLm9wdGlvbnMucmVneCwgZm4pKTsKCQkJCWJvZHkucHVzaCgi J10uam9pbignJyk7fTsiKTsKCQkJCWJvZHkgPSBib2R5LmpvaW4oJycpOwoJCQl9CgkJCWV2YWwoYm9k eSk7CgkJCXJldHVybiB0aGlzOwoJCX0KCX0pOwoKCgkvKioKCSAqIFNhdmUgYSByZWZlcmVuY2UgaW4g dGhpcyBsb2NhbCBzY29wZSB0byB0aGUgb3JpZ2luYWwgbWV0aG9kcyB3aGljaCB3ZSdyZSAKCSAqIGdv aW5nIHRvIG92ZXJsb2FkLgoJICoqLwoJdmFyICRfb2xkID0gewoJICAgIGRvbU1hbmlwOiAkLmZuLmRv bU1hbmlwLAoJICAgIHRleHQ6ICQuZm4udGV4dCwKCSAgICBodG1sOiAkLmZuLmh0bWwKCX07CgoJLyoq CgkgKiBPdmVyd3JpdGUgdGhlIGRvbU1hbmlwIG1ldGhvZCBzbyB0aGF0IHdlIGNhbiB1c2UgdGhpbmdz IGxpa2UgYXBwZW5kKCkgYnkgcGFzc2luZyBhIAoJICogdGVtcGxhdGUgb2JqZWN0IGFuZCBtYWNybyBw YXJhbWV0ZXJzLgoJICovCgkkLmZuLmRvbU1hbmlwID0gZnVuY3Rpb24oIGFyZ3MsIHRhYmxlLCByZXZl cnNlLCBjYWxsYmFjayApIHsKCQlpZiAoYXJnc1swXS5pc1RlbXBsYXRlKSB7CgkJCS8vIEFwcGx5IHRo ZSB0ZW1wbGF0ZSBhbmQgaXQncyBhcmd1bWVudHMuLi4KCQkJYXJnc1swXSA9IGFyZ3NbMF0uYXBwbHko IGFyZ3NbMV0gKTsKCQkJLy8gR2V0IHJpZCBvZiB0aGUgYXJndWVtZW50cywgd2UgZG9uJ3Qgd2FudCB0 byBwYXNzIHRoZW0gb24KCQkJZGVsZXRlIGFyZ3NbMV07CgkJfQoKCQkvLyBDYWxsIHRoZSBvcmlnaW5h bCBtZXRob2QKCQl2YXIgciA9ICRfb2xkLmRvbU1hbmlwLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CgoJ CXJldHVybiByOwoJfTsKCiAgICAvKioKICAgICAqIE92ZXJ3cml0ZSB0aGUgaHRtbCgpIG1ldGhvZAog ICAgICovCgkkLmZuLmh0bWwgPSBmdW5jdGlvbiggdmFsdWUgLCBvICkgewoJICAgIGlmICh2YWx1ZSAm JiB2YWx1ZS5pc1RlbXBsYXRlKSB2YXIgdmFsdWUgPSB2YWx1ZS5hcHBseSggbyApOwoKCQl2YXIgciA9 ICRfb2xkLmh0bWwuYXBwbHkodGhpcywgW3ZhbHVlXSk7CgoJCXJldHVybiByOwoJfTsKCQoJLyoqCgkg KiBPdmVyd3JpdGUgdGhlIHRleHQoKSBtZXRob2QKCSAqLwoJJC5mbi50ZXh0ID0gZnVuY3Rpb24oIHZh bHVlICwgbyApIHsKCSAgICBpZiAodmFsdWUgJiYgdmFsdWUuaXNUZW1wbGF0ZSkgdmFyIHZhbHVlID0g dmFsdWUuYXBwbHkoIG8gKTsKCgkJdmFyIHIgPSAkX29sZC50ZXh0LmFwcGx5KHRoaXMsIFt2YWx1ZV0p OwoKCQlyZXR1cm4gcjsKCX07Cgp9KShqUXVlcnkpOwo= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/jquery.cookie.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoqCiAqIENvb2tpZSBwbHVnaW4KICoKICogQ29weXJpZ2h0IChjKSAyMDA2IEtsYXVzIEhhcnRsIChz dGlsYnVlcm8uZGUpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2Vz OgogKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogKiBo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwKICoKICovCgovKioKICogQ3JlYXRlIGEg Y29va2llIHdpdGggdGhlIGdpdmVuIG5hbWUgYW5kIHZhbHVlIGFuZCBvdGhlciBvcHRpb25hbCBwYXJh bWV0ZXJzLgogKgogKiBAZXhhbXBsZSAkLmNvb2tpZSgndGhlX2Nvb2tpZScsICd0aGVfdmFsdWUnKTsK ICogQGRlc2MgU2V0IHRoZSB2YWx1ZSBvZiBhIGNvb2tpZS4KICogQGV4YW1wbGUgJC5jb29raWUoJ3Ro ZV9jb29raWUnLCAndGhlX3ZhbHVlJywgeyBleHBpcmVzOiA3LCBwYXRoOiAnLycsIGRvbWFpbjogJ2px dWVyeS5jb20nLCBzZWN1cmU6IHRydWUgfSk7CiAqIEBkZXNjIENyZWF0ZSBhIGNvb2tpZSB3aXRoIGFs bCBhdmFpbGFibGUgb3B0aW9ucy4KICogQGV4YW1wbGUgJC5jb29raWUoJ3RoZV9jb29raWUnLCAndGhl X3ZhbHVlJyk7CiAqIEBkZXNjIENyZWF0ZSBhIHNlc3Npb24gY29va2llLgogKiBAZXhhbXBsZSAkLmNv b2tpZSgndGhlX2Nvb2tpZScsIG51bGwpOwogKiBAZGVzYyBEZWxldGUgYSBjb29raWUgYnkgcGFzc2lu ZyBudWxsIGFzIHZhbHVlLiBLZWVwIGluIG1pbmQgdGhhdCB5b3UgaGF2ZSB0byB1c2UgdGhlIHNhbWUg cGF0aCBhbmQgZG9tYWluCiAqICAgICAgIHVzZWQgd2hlbiB0aGUgY29va2llIHdhcyBzZXQuCiAqCiAq IEBwYXJhbSBTdHJpbmcgbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29va2llLgogKiBAcGFyYW0gU3RyaW5n IHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgY29va2llLgogKiBAcGFyYW0gT2JqZWN0IG9wdGlvbnMgQW4g b2JqZWN0IGxpdGVyYWwgY29udGFpbmluZyBrZXkvdmFsdWUgcGFpcnMgdG8gcHJvdmlkZSBvcHRpb25h bCBjb29raWUgYXR0cmlidXRlcy4KICogQG9wdGlvbiBOdW1iZXJ8RGF0ZSBleHBpcmVzIEVpdGhlciBh biBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIGV4cGlyYXRpb24gZGF0ZSBmcm9tIG5vdyBvbiBpbiBkYXlz IG9yIGEgRGF0ZSBvYmplY3QuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiBhIG5lZ2F0 aXZlIHZhbHVlIGlzIHNwZWNpZmllZCAoZS5nLiBhIGRhdGUgaW4gdGhlIHBhc3QpLCB0aGUgY29va2ll IHdpbGwgYmUgZGVsZXRlZC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHNldCB0byBu dWxsIG9yIG9taXR0ZWQsIHRoZSBjb29raWUgd2lsbCBiZSBhIHNlc3Npb24gY29va2llIGFuZCB3aWxs IG5vdCBiZSByZXRhaW5lZAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiB0aGUgdGhl IGJyb3dzZXIgZXhpdHMuCiAqIEBvcHRpb24gU3RyaW5nIHBhdGggVGhlIHZhbHVlIG9mIHRoZSBwYXRo IGF0cmlidXRlIG9mIHRoZSBjb29raWUgKGRlZmF1bHQ6IHBhdGggb2YgcGFnZSB0aGF0IGNyZWF0ZWQg dGhlIGNvb2tpZSkuCiAqIEBvcHRpb24gU3RyaW5nIGRvbWFpbiBUaGUgdmFsdWUgb2YgdGhlIGRvbWFp biBhdHRyaWJ1dGUgb2YgdGhlIGNvb2tpZSAoZGVmYXVsdDogZG9tYWluIG9mIHBhZ2UgdGhhdCBjcmVh dGVkIHRoZSBjb29raWUpLgogKiBAb3B0aW9uIEJvb2xlYW4gc2VjdXJlIElmIHRydWUsIHRoZSBzZWN1 cmUgYXR0cmlidXRlIG9mIHRoZSBjb29raWUgd2lsbCBiZSBzZXQgYW5kIHRoZSBjb29raWUgdHJhbnNt aXNzaW9uIHdpbGwKICogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlIGEgc2VjdXJlIHByb3Rv Y29sIChsaWtlIEhUVFBTKS4KICogQHR5cGUgdW5kZWZpbmVkCiAqCiAqIEBuYW1lICQuY29va2llCiAq IEBjYXQgUGx1Z2lucy9Db29raWUKICogQGF1dGhvciBLbGF1cyBIYXJ0bC9rbGF1cy5oYXJ0bEBzdGls YnVlcm8uZGUKICovCgovKioKICogR2V0IHRoZSB2YWx1ZSBvZiBhIGNvb2tpZSB3aXRoIHRoZSBnaXZl biBuYW1lLgogKgogKiBAZXhhbXBsZSAkLmNvb2tpZSgndGhlX2Nvb2tpZScpOwogKiBAZGVzYyBHZXQg dGhlIHZhbHVlIG9mIGEgY29va2llLgogKgogKiBAcGFyYW0gU3RyaW5nIG5hbWUgVGhlIG5hbWUgb2Yg dGhlIGNvb2tpZS4KICogQHJldHVybiBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZS4KICogQHR5cGUgU3Ry aW5nCiAqCiAqIEBuYW1lICQuY29va2llCiAqIEBjYXQgUGx1Z2lucy9Db29raWUKICogQGF1dGhvciBL bGF1cyBIYXJ0bC9rbGF1cy5oYXJ0bEBzdGlsYnVlcm8uZGUKICovCmV2YWwoZnVuY3Rpb24ocCxhLGMs ayxlLHIpe2U9ZnVuY3Rpb24oYyl7cmV0dXJuKGM8YT8nJzplKHBhcnNlSW50KGMvYSkpKSsoKGM9YyVh KT4zNT9TdHJpbmcuZnJvbUNoYXJDb2RlKGMrMjkpOmMudG9TdHJpbmcoMzYpKX07aWYoIScnLnJlcGxh Y2UoL14vLFN0cmluZykpe3doaWxlKGMtLSlyW2UoYyldPWtbY118fGUoYyk7az1bZnVuY3Rpb24oZSl7 cmV0dXJuIHJbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTF9O3doaWxlKGMtLSlpZihr W2NdKXA9cC5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcYicrZShjKSsnXFxiJywnZycpLGtbY10pO3JldHVy biBwfSgnbi41PXYoYSxiLGMpezQoNyBiIT1cJ3dcJyl7Yz1jfHx7fTs0KGI9PT1vKXtiPVwnXCc7Yy4z PS0xfTIgZD1cJ1wnOzQoYy4zJiYoNyBjLjM9PVwncFwnfHxjLjMucSkpezIgZTs0KDcgYy4zPT1cJ3Bc Jyl7ZT14IHkoKTtlLnooZS5BKCkrKGMuMypCKnIqcipDKSl9c3tlPWMuM31kPVwnOyAzPVwnK2UucSgp fTIgZj1jLjg/XCc7IDg9XCcrKGMuOCk6XCdcJzsyIGc9Yy45P1wnOyA5PVwnKyhjLjkpOlwnXCc7MiBo PWMudD9cJzsgdFwnOlwnXCc7Ni41PVthLFwnPVwnLEQoYiksZCxmLGcsaF0uRShcJ1wnKX1zezIgaj1v OzQoNi41JiY2LjUhPVwnXCcpezIgaz02LjUuRihcJztcJyk7RygyIGk9MDtpPGsubTtpKyspezIgbD1u Lkgoa1tpXSk7NChsLnUoMCxhLm0rMSk9PShhK1wnPVwnKSl7aj1JKGwudShhLm0rMSkpO0p9fX1LIGp9 fTsnLDQ3LDQ3LCd8fHZhcnxleHBpcmVzfGlmfGNvb2tpZXxkb2N1bWVudHx0eXBlb2Z8cGF0aHxkb21h aW58fHx8fHx8fHx8fHx8bGVuZ3RofGpRdWVyeXxudWxsfG51bWJlcnx0b1VUQ1N0cmluZ3w2MHxlbHNl fHNlY3VyZXxzdWJzdHJpbmd8ZnVuY3Rpb258dW5kZWZpbmVkfG5ld3xEYXRlfHNldFRpbWV8Z2V0VGlt ZXwyNHwxMDAwfGVuY29kZVVSSUNvbXBvbmVudHxqb2lufHNwbGl0fGZvcnx0cmltfGRlY29kZVVSSUNv bXBvbmVudHxicmVha3xyZXR1cm4nLnNwbGl0KCd8JyksMCx7fSkp ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.dts.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIERUUyA9IHt9OwpEVFMuY2FtYmlhck1vZHVsbyA9IGZ1bmN0aW9uIChtb2R1bG8sIGFjdHVhbCwg bnVldm8pIHsKCXZhciBhTmF2ZWdhY2lvbiA9IG1vZHVsby5zcGxpdCgnLicpOwoJdmFyIG5hdmVnYWNp b24gPSAkKCcjJythTmF2ZWdhY2lvblswXSsnXFwuJythTmF2ZWdhY2lvblsxXSsnXFwuJythTmF2ZWdh Y2lvblsyXSsnLTEnKS5wYXJlbnQoKS5zaWJsaW5ncygnLm1vZG5hdicpOwoJCgkkKCcjJyArIGFOYXZl Z2FjaW9uWzBdKydcXC4nK2FOYXZlZ2FjaW9uWzFdKydcXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy0nICsg bnVldm8pLmZpbmQoJ2ltZ1tyZWwqPSIvIl0nKS5hdHRyKCdzcmMnLCAkKCcjJyArIGFOYXZlZ2FjaW9u WzBdKydcXC4nK2FOYXZlZ2FjaW9uWzFdKydcXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy0nICsgbnVldm8p LmZpbmQoJ2ltZ1tyZWwqPSIvIl0nKS5hdHRyKCdyZWwnKSk7CgkKCSQoJyMnICsgYU5hdmVnYWNpb25b MF0rJ1xcLicrYU5hdmVnYWNpb25bMV0rJ1xcLicrYU5hdmVnYWNpb25bMl0gKyAnLScgKyBhY3R1YWwp LmhpZGUoKTsKCSQoJyMnICsgYU5hdmVnYWNpb25bMF0rJ1xcLicrYU5hdmVnYWNpb25bMV0rJ1xcLicr YU5hdmVnYWNpb25bMl0gKyAnLScgKyBudWV2bykuc2hvdygpOwoJCgkkKG5hdmVnYWNpb24pLmZpbmQo J2EubmdfbnVtZXJvOmVxKCcgKyAoYWN0dWFsIC0gMSkgKyAnKScpLnJlbW92ZUNsYXNzKCdhY3Rpdm8n KTsKCSQobmF2ZWdhY2lvbikuZmluZCgnYS5uZ19udW1lcm86ZXEoJyArIChudWV2byAtIDEpICsgJykn KS5hZGRDbGFzcygnYWN0aXZvJyk7CgkKfTsKCkRUUy5wYWdpbmFjaW9uTW9kdWxvcyA9IGZ1bmN0aW9u IChtb2R1bG8pIHsKCgkJdmFyIGFOYXZlZ2FjaW9uID0gbW9kdWxvLnNwbGl0KCcuJyk7CgkJdmFyIG5h dmVnYWNpb24gPSAkKCcjJythTmF2ZWdhY2lvblswXSsnXFwuJythTmF2ZWdhY2lvblsxXSsnXFwuJyth TmF2ZWdhY2lvblsyXSsnLTEnKS5wYXJlbnQoKS5zaWJsaW5ncygnLm1vZG5hdicpOwoJCXZhciBudW1f Zm90b25vdGljaWFzID0gJChuYXZlZ2FjaW9uKS5maW5kKCdhLm5nX251bWVybyAnKS5sZW5ndGg7CgkK CQlpZihudW1fZm90b25vdGljaWFzID09ICcnKSB7CgkJCW51bV9mb3Rvbm90aWNpYXMgPSAxOwoJCX0K CQkKCQkKCQl2YXIgYWN0dWFsID0gMTsKCQoJCWlmKG51bV9mb3Rvbm90aWNpYXMgPT0gMSkgewoJCQlh Y3R1YWwgPSAxOwoJCX0KCQoJCWlmKCQoJyMnICsgYU5hdmVnYWNpb25bMF0rJ1xcLicrYU5hdmVnYWNp b25bMV0rJ1xcLicrYU5hdmVnYWNpb25bMl0gKyAnLScgKyBhY3R1YWwpLmZpbmQoJ2ltZ1tyZWwqPSIv Il0nKS5hdHRyKCdyZWwnKSkgewoJCQkkKCcjJyArIGFOYXZlZ2FjaW9uWzBdKydcXC4nK2FOYXZlZ2Fj aW9uWzFdKydcXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy0nICsgYWN0dWFsKS5maW5kKCdpbWdbcmVsKj0i LyJdJykuYXR0cignc3JjJywgJCgnIycgKyBhTmF2ZWdhY2lvblswXSsnXFwuJythTmF2ZWdhY2lvblsx XSsnXFwuJythTmF2ZWdhY2lvblsyXSArICctJyArIGFjdHVhbCkuZmluZCgnaW1nW3JlbCo9Ii8iXScp LmF0dHIoJ3JlbCcpKTsKCQl9IGVsc2UgewoJCQlpZihhY3R1YWwgPT0gMSAmJiAkKCcjJyArIGFOYXZl Z2FjaW9uWzBdKydcXC4nK2FOYXZlZ2FjaW9uWzFdKydcXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy0nICsg YWN0dWFsKS5maW5kKCdpbWdbcmVsKj0iLyJdJykuY3NzKCdkaXNwbGF5JykgPT0gJ25vbmUnKSB7CgkJ CQkkKCcjJyArIGFOYXZlZ2FjaW9uWzBdKydcXC4nK2FOYXZlZ2FjaW9uWzFdKydcXC4nK2FOYXZlZ2Fj aW9uWzJdICsgJy0nICsgYWN0dWFsKS5maW5kKCdpbWdbcmVsKj0iLyJdJykuY3NzKCdkaXNwbGF5Jywg J2Jsb2NrJyk7CgkJCX0KCQl9CgkKCQoJCSQobmF2ZWdhY2lvbikuZmluZCgnYS5uZ19udW1lcm86ZXEo JyArIChhY3R1YWwgLSAxKSArICcpJykuYWRkQ2xhc3MoJ2FjdGl2bycpOwoJCQoJCgkJLy8gT2N1bHRh bW9zIHRvZGFzIG1lbm9zIGxhIGFjdHVhbAoJCQoJCSQoJ1tpZF49JyArYU5hdmVnYWNpb25bMF0rJ1wu JythTmF2ZWdhY2lvblsxXSsnXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy1dJykuZWFjaChmdW5jdGlvbiAo aSkgewoJCQkJaWYgKGkgIT0gKGFjdHVhbCAtIDEpKSB7CgkJCQkJJCh0aGlzKS5oaWRlKCk7CgkJCQl9 IAoJCQl9CgkJKTsKCQkKCQkvLyBOdW1lcm9zCgkJCgkJJChuYXZlZ2FjaW9uKS5maW5kKCdhLm5nX251 bWVybycpLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkkKHRoaXMpLmF0dHIoJ2hyZWYnLCAnamF2YXNjcmlw dDp2b2lkKDApJyk7CgkJCQkKCQkJCXZhciBwb3NpY2lvbiA9ICQodGhpcykudGV4dCgpOwoJCQkJCgkJ CQkkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkgewoJCgkJCQkJCURUUy5jYW1iaWFyTW9kdWxvKG1vZHVs bywgYWN0dWFsLCBwb3NpY2lvbik7CgkJCQkJCQoJCQkJCQlhY3R1YWwgPSBwb3NpY2lvbjsKCQkJCQl9 CgkJCQkpOwoJCQl9CgkJKTsKCQkKCQkKCQkvLyBTaWd1aWVudGUKCQkKCQkkKG5hdmVnYWNpb24pLmZp bmQoJy5uZ2FzX3NpZycpLmF0dHIoJ2hyZWYnLCAnamF2YXNjcmlwdDp2b2lkKDApJyk7CgkJJChuYXZl Z2FjaW9uKS5maW5kKCcubmdhc19zaWcnKS5jbGljayhmdW5jdGlvbigpewoJCQkJCgkJCQl2YXIgc2ln dWllbnRlID0gKChhY3R1YWwgKyAxKSA+IG51bV9mb3Rvbm90aWNpYXMpID8gMSA6IChhY3R1YWwgKyAx KTsKCQkJCQkKCQkJCURUUy5jYW1iaWFyTW9kdWxvKG1vZHVsbywgYWN0dWFsLCBzaWd1aWVudGUpOwoJ CQkJCgkJCQlhY3R1YWwgPSBzaWd1aWVudGU7CgkJCX0KCQkpOwoJCQoJCS8vIEFudGVyaW9yCgkJCgkJ JChuYXZlZ2FjaW9uKS5maW5kKCcubmdhc19hbnQnKS5hdHRyKCdocmVmJywgJ2phdmFzY3JpcHQ6dm9p ZCgwKScpOwoJCSQobmF2ZWdhY2lvbikuZmluZCgnLm5nYXNfYW50JykuY2xpY2soZnVuY3Rpb24oKXsK CQkJCQoJCQkJdmFyIGFudGVyaW9yID0gKChhY3R1YWwgLSAxKSA8IDEpID8gbnVtX2ZvdG9ub3RpY2lh cyA6IChhY3R1YWwgLSAxKTsKCQkJCQoJCQkJRFRTLmNhbWJpYXJNb2R1bG8obW9kdWxvLCBhY3R1YWws IGFudGVyaW9yKTsKCQkJCQoJCQkJYWN0dWFsID0gYW50ZXJpb3I7CgkJCX0KCQkpOwoKfTs= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.maquetacion.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: Ly8gbWFuZWpvIGRlIGVsZW1lbnRvcyBkZSBsYSBtYXF1ZXRhY2nzbgp2YXIgTVFUID0ge307Ck1RVC5m b3RvQXJ0aWN1bG9BY3R1YWwgPSAnJzsKTVFULnZhcmlhYmxlR2xvYmFsU2VydiA9IDA7Ck1RVC52YXJp YWJsZUdsb2JhbENhbWIgPSAwOwpNUVQudmFyaWFibGVHbG9iYWxQZXJzID0gMDsKTVFULnZhcmlhYmxl R2xvYmFsTWV0ZW8gPSAwCgpNUVQubW9kdWxvc0xvbWFzID0gZnVuY3Rpb24gKCkgewoJJCgiZGl2Lm1v ZF9sb21hcyA+IGRpdi5ibG9xdWVfbG9tYXMgPiBkaXYuYmxtX2hlYWRlciIpLmNsaWNrKCBmdW5jdGlv bigpIHsKCQkJCXZhciAkb3JpZ2VuID0gJCh0aGlzKTsKCQkJCSRvcmlnZW4uZmluZCgiYS5ib3Rvbl9k ZXNwbGllZ2EiKS5hdHRyKHsgaHJlZjogImphdmFzY3JpcHQ6dm9pZCgwKSJ9KTsKCQkJCS8vIG1vdmlt aWVudG8gZGVsIGNvbnRlbmlkbwoJCQkJJCgiZGl2LmJsbV9jb250ZW50Iikuc2xpZGVVcCgic2xvdyIp OwoJCQkJJG9yaWdlbi5wYXJlbnQoKS5maW5kKCJkaXYuYmxtX2NvbnRlbnQiKS5zbGlkZURvd24oInNs b3ciKTsKCQkJCgkJCQkvLyBjb2xvcmVzIGFjdGl2b3Mvbm8gYWN0aXZvcyBlbmNhYmV6YWRvCgkJCQkk KCJkaXYuYmxtX2hlYWRlciIpLnJlbW92ZUNsYXNzKCJibG1faGVhZGVyX2FjdGl2YSIpOwoJCQkJJG9y aWdlbi5hZGRDbGFzcygiYmxtX2hlYWRlcl9hY3RpdmEiKTsKCQkJCgkJCQkvLyBjb2xvcmVzIGFjdGl2 b3Mvbm8gYWN0aXZvcyBlbmNhYmV6YWRvCgkJCQkkKCJhLmJvdG9uX2Rlc3BsaWVnYSIpLnJlbW92ZUNs YXNzKCJidG5fZGVzb24iKTsKCQkJCSRvcmlnZW4uZmluZCgiYS5ib3Rvbl9kZXNwbGllZ2EiKS5hZGRD bGFzcygiYnRuX2Rlc29uIik7Cgl9KTsKfTsKCk1RVC5hY3RpdmFfbG9tYXMgPSBmdW5jdGlvbihpZHBh cmFhY3RpdmFyKSB7CgkvLyBvcGNpb25lcyBpZHBhcmFhY3RpdmFyOiBtYXNsZWlkbywgbWFzY29tZW50 YWRvLCBtYXN1bHRpbW9zCgkkKCIjIiArIGlkcGFyYWFjdGl2YXIpLmZpbmQoImRpdi5ibG1fY29udGVu dCIpLnNsaWRlRG93bigic2xvdyIpOwoJJCgiIyIgKyBpZHBhcmFhY3RpdmFyKS5maW5kKCJkaXYuYmxt X2hlYWRlciIpLmFkZENsYXNzKCJibG1faGVhZGVyX2FjdGl2YSIpOwoJJCgiIyIgKyBpZHBhcmFhY3Rp dmFyKS5maW5kKCJhLmJvdG9uX2Rlc3BsaWVnYSIpLmFkZENsYXNzKCJidG5fZGVzb24iKTsKfTsKCk1R VC5hYnJpckZvcm11bGFyaW9FbnZpYXIgPSBmdW5jdGlvbigpIHsKCSQoIi5haF9lbnZpYXIiKS5jbGlj ayggZnVuY3Rpb24oKSB7CgkJJCgiLmZybV9hcnRfcmVjdGlmaWNhIikuc2xpZGVVcCgic2xvdyIpOwoJ CSQoIiNmb3JtLWFydGljdWxvLXRvcCIpLmZpbmQoIi5haF9lbnZpYXIiKS5hdHRyKHsgaHJlZjogImph dmFzY3JpcHQ6dm9pZCgwKSJ9KTsKCQkkKCIuYXJ0X2hlcnJhbWllbnRhcyBhIikucmVtb3ZlQ2xhc3Mo ImFjdGl2byIpOwoJCSQodGhpcykuYWRkQ2xhc3MoImFjdGl2byIpOwoJCSQoIi5mcm1fYXJ0X2Vudmlh Iikuc2xpZGVEb3duKCJzbG93Iik7Cgl9KTsKfTsKCk1RVC5jZXJyYXJGb3JtdWxhcmlvRW52aWFyID0g ZnVuY3Rpb24oKSB7CgkkKCIuZnJtX2FydF9lbnZpYSAuY2VycmFyIikuY2xpY2soIGZ1bmN0aW9uKCkg ewoJCSQodGhpcykuYXR0cih7IGhyZWY6ICJqYXZhc2NyaXB0OnZvaWQoMCkifSk7CgkJJCgiLmFydF9o ZXJyYW1pZW50YXMgYSIpLnJlbW92ZUNsYXNzKCJhY3Rpdm8iKTsKCQkkKCIuZnJtX2FydF9lbnZpYSIp LnNsaWRlVXAoInNsb3ciKTsKCX0pOwp9OwoKTVFULmFicmlyRm9ybXVsYXJpb1JlY3RpZmljYXIgPSBm dW5jdGlvbigpIHsKCSQoIi5haF9yZWN0aWZpY2FyIikuY2xpY2soIGZ1bmN0aW9uKCkgewoJCSQoIi5m cm1fYXJ0X2VudmlhIikuc2xpZGVVcCgic2xvdyIpOwoJCSQoIiNmb3JtLWFydGljdWxvLXRvcCIpLmZp bmQoIi5haF9yZWN0aWZpY2FyIikuYXR0cih7IGhyZWY6ICJqYXZhc2NyaXB0OnZvaWQoMCkifSk7CgkJ JCgiLmFydF9oZXJyYW1pZW50YXMgYSIpLnJlbW92ZUNsYXNzKCJhY3Rpdm8iKTsKCQkkKHRoaXMpLmFk ZENsYXNzKCJhY3Rpdm8iKTsKCQkkKCIuZnJtX2FydF9yZWN0aWZpY2EiKS5zbGlkZURvd24oInNsb3ci KTsKCX0pOwp9OwoKTVFULmNlcnJhckZvcm11bGFyaW9SZWN0aWZpY2FyID0gZnVuY3Rpb24oKSB7Cgkk KCIuZnJtX2FydF9yZWN0aWZpY2EgLmNlcnJhciIpLmNsaWNrKCBmdW5jdGlvbigpIHsKCQkkKHRoaXMp LmF0dHIoeyBocmVmOiAiamF2YXNjcmlwdDp2b2lkKDApIn0pOwoJCSQoIi5mcm1fYXJ0X2VudmlhIiku c2xpZGVVcCgic2xvdyIpOwoJCSQoIi5hcnRfaGVycmFtaWVudGFzIGEiKS5yZW1vdmVDbGFzcygiYWN0 aXZvIik7CgkJJCgiLmZybV9hcnRfcmVjdGlmaWNhIikuc2xpZGVVcCgic2xvdyIpOwoJfSk7Cn07CgpN UVQubW9kdWxvc2NhYmVjZXJhMSA9IGZ1bmN0aW9uKCkgewoKJEhUTUxjYWphID0gJzxzcGFuIGNsYXNz PSJjaiI+PHNwYW4gY2xhc3M9ImNqdGwiPjxzcGFuIGNsYXNzPSJjanRyIj48c3BhbiBjbGFzcz0iY2p0 Ij48L3NwYW4+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2psIj48c3BhbiBjbGFzcz0iY2pyIj48 c3BhbiBjbGFzcz0iY2pjIj48c3BhbiBjbGFzcz0iY2xlYXIiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwv c3Bhbj48c3BhbiBjbGFzcz0iY2pibCI+PHNwYW4gY2xhc3M9ImNqYnIiPjxzcGFuIGNsYXNzPSJjamIi Pjwvc3Bhbj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjbGVhciI+PC9zcGFuPjwvc3Bhbj4nOwoJ Ly8gbWVudSBkZSBzZXJ2aWNpb3MKCSQoIiNtaS1zZXJ2aWNpb3MiKS5tb3VzZW92ZXIoIGZ1bmN0aW9u KCkgewoJCQlpZihNUVQudmFyaWFibGVHbG9iYWxTZXJ2ID09IDApIHsKCQkJCU1RVC52YXJpYWJsZUds b2JhbFNlcnYgPSAxOwoJCQkJJCgiI21pLXNlcnZpY2lvcyIpLnByZXBlbmQoJEhUTUxjYWphKTsKCQkJ CSQoIiNtaS1zZXJ2aWNpb3MgLmNqYyIpLnByZXBlbmQoJCgiZGl2Lm1lbnVuYXYgdWwuc3VibW5fc2Vy dmljaW9zIikpOwoJCQkJTVFULm1vZHVsb3NjYWJlY2VyYTIoKTsKCQkJfQoJCQkkKCIjbWktc2Vydmlj aW9zIC5tbl9pdGVtX2EiKS5hZGRDbGFzcygiYWN0aXZvIik7CQkJCQkJCSAgIAoJCQkkKCIjbWktc2Vy dmljaW9zIC5jaiIpLnNob3coKTsKCQkJJCgiZGl2Lm1lbnVuYXYgdWwuc3VibW5fc2VydmljaW9zIiku c2hvdygpOwoJfSk7CgkkKCIjbWktc2VydmljaW9zIikubW91c2VvdXQoIGZ1bmN0aW9uKCkgewoJCQkk KCIjbWktc2VydmljaW9zIC5tbl9pdGVtX2EiKS5yZW1vdmVDbGFzcygiYWN0aXZvIik7CgkJCSQoIiNt aS1zZXJ2aWNpb3MgLmNqIikuaGlkZSgpOwoJCQkkKCIjbWktc2VydmljaW9zIC5zdWJtbl9zZXJ2aWNp b3MiKS5oaWRlKCk7Cgl9KTsKCSQoIiNtaS1zZXJ2aWNpb3MgLmNqIikubW91c2VvdmVyKCBmdW5jdGlv bigpIHsKCQkJJCgiI21pLXNlcnZpY2lvcyAubW5faXRlbV9hIikuYWRkQ2xhc3MoImFjdGl2byIpOwoJ CQkkKCIjbWktc2VydmljaW9zIC5jaiIpLnNob3coKTsKCQkJJCgiZGl2Lm1lbnVuYXYgdWwuc3VibW5f c2VydmljaW9zIikuc2hvdygpOwoJfSk7CgoJLy8gY2FtYmlvcwoJJCgiZGl2LmNlZl9jYW1iaWFyID4g YS5jZWZfY2FtYmlhcl9zZWxlY2Npb24iKS5jbGljayggZnVuY3Rpb24oKSB7CgkJaWYoTVFULnZhcmlh YmxlR2xvYmFsQ2FtYiA9PSAwKSB7CgkJCU1RVC52YXJpYWJsZUdsb2JhbENhbWIgPSAxOwoJCQkkKCJz cGFuLmNlZl9jYW1iaW9fbHN0IikucHJlcGVuZCgkSFRNTGNhamEpOwoJCQkkKCJzcGFuLmNlZl9jYW1i aW9fbHN0ICBzcGFuLmNqYyIpLnByZXBlbmQoJCgic3Bhbi5jZWZfY2FtYmlvX2xzdCA+IC5sc3RjYWIi KSk7CgkJfQkJCQkJCQkJCQkKCQkKCQkkKCJkaXYuY2VmX2NhbWJpYXIgPiBhLmNlZl9jYW1iaWFyX3Nl bGVjY2lvbiIpLmFkZENsYXNzKCJjZWZfcGVyc29fYWN0aXZhIik7CgkJJCgic3Bhbi5jZWZfY2FtYmlv X2xzdCAgc3Bhbi5jaiIpLnNob3coKTsKCQkkKCJzcGFuLmNlZl9jYW1iaW9fbHN0ICB1bC5sc3RjYWIi KS5zaG93KCk7Cgl9KTsKCSQoInNwYW4uY2VmX2NhbWJpb19sc3QiKS5tb3VzZW91dCggZnVuY3Rpb24o KSB7CQoJCSQoImRpdi5jZWZfY2FtYmlhciBhLmNlZl9jYW1iaWFyX3NlbGVjY2lvbiIpLnJlbW92ZUNs YXNzKCJjZWZfcGVyc29fYWN0aXZhIik7CgkJJCgic3Bhbi5jZWZfY2FtYmlvX2xzdCBzcGFuLmNqIiku aGlkZSgpOwoJCSQoInNwYW4uY2VmX2NhbWJpb19sc3QgdWwubHN0Y2FiIikuaGlkZSgpOwoJfSk7Cgkk KCJzcGFuLmNlZl9jYW1iaW9fbHN0IikubW91c2VvdmVyKCBmdW5jdGlvbigpIHsKCQkkKCJkaXYuY2Vm X2NhbWJpYXIgYS5jZWZfY2FtYmlhcl9zZWxlY2Npb24iKS5hZGRDbGFzcygiY2VmX3BlcnNvX2FjdGl2 YSIpOwoJCSQoInNwYW4uY2VmX2NhbWJpb19sc3Qgc3Bhbi5jaiIpLnNob3coKTsKCQkkKCJzcGFuLmNl Zl9jYW1iaW9fbHN0IHVsLmxzdGNhYiIpLnNob3coKTsKCX0pOwoJLy8gcGVyc28KCSQoImEuY2VmX3Bl cnNvX3NlbGVjY2lvbiIpLmNsaWNrKCBmdW5jdGlvbigpIHsKCQlpZihNUVQudmFyaWFibGVHbG9iYWxQ ZXJzID09IDApIHsKCQkJTVFULnZhcmlhYmxlR2xvYmFsUGVycyA9IDE7CgkJCSQoInNwYW4uY2VmX3Bl cnNvX2xzdCIpLnByZXBlbmQoJEhUTUxjYWphKTsKCQkJJCgic3Bhbi5jZWZfcGVyc29fbHN0IHNwYW4u Y2pjIikucHJlcGVuZCgkKCJzcGFuLmNlZl9wZXJzb19sc3QgPiAubHN0Y2FiIikpOwoJCX0JCgkJCQkJ CQkJCQkJICAKCQkkKCJhLmNlZl9wZXJzb19zZWxlY2Npb24iKS5hZGRDbGFzcygiY2VmX3BlcnNvX2Fj dGl2YSIpOwkJICAKCQkkKCJzcGFuLmNlZl9wZXJzb19sc3Qgc3Bhbi5jaiIpLnNob3coKTsKCQkkKCJz cGFuLmNlZl9wZXJzb19sc3QgdWwubHN0Y2FiIikuc2hvdygpOwoJfSk7CgkkKCJzcGFuLmNlZl9wZXJz b19sc3QiKS5tb3VzZW91dCggZnVuY3Rpb24oKSB7CQoJCSQoImEuY2VmX3BlcnNvX3NlbGVjY2lvbiIp LnJlbW92ZUNsYXNzKCJjZWZfcGVyc29fYWN0aXZhIik7CgkJJCgic3Bhbi5jZWZfcGVyc29fbHN0IHNw YW4uY2oiKS5oaWRlKCk7CgkJJCgic3Bhbi5jZWZfcGVyc29fbHN0IHVsLmxzdGNhYiIpLmhpZGUoKTsK CX0pOwoJJCgic3Bhbi5jZWZfcGVyc29fbHN0IikubW91c2VvdmVyKCBmdW5jdGlvbigpIHsKCQkkKCJh LmNlZl9wZXJzb19zZWxlY2Npb24iKS5hZGRDbGFzcygiY2VmX3BlcnNvX2FjdGl2YSIpOwoJCSQoInNw YW4uY2VmX3BlcnNvX2xzdCBzcGFuLmNqIikuc2hvdygpOwoJCSQoInNwYW4uY2VmX3BlcnNvX2xzdCB1 bC5sc3RjYWIiKS5zaG93KCk7Cgl9KTsKfTsKCgpNUVQubW9kdWxvc2NhYmVjZXJhMiA9IGZ1bmN0aW9u ICgpIHsKCS8qcGFnaW5hIGRlIGluaWNpbyovCgl2YXIgdXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJB Z2VudC50b0xvd2VyQ2FzZSgpOwoJalF1ZXJ5LmJyb3dzZXIgPSB7Cgl2ZXJzaW9uOiAodXNlckFnZW50 Lm1hdGNoKCAvLisoPzpydnxpdHxyYXxpZXxtZSlbXC86IF0oW1xkLl0rKS8gKSB8fCBbXSlbMV0sCglj aHJvbWU6IC9jaHJvbWUvLnRlc3QoIHVzZXJBZ2VudCApLAoJc2FmYXJpOiAvd2Via2l0Ly50ZXN0KCB1 c2VyQWdlbnQgKSAmJiAhL2Nocm9tZS8udGVzdCggdXNlckFnZW50ICksCglvcGVyYTogL29wZXJhLy50 ZXN0KCB1c2VyQWdlbnQgKSwKCW1zaWU6IC9tc2llLy50ZXN0KCB1c2VyQWdlbnQgKSAmJiAhL29wZXJh Ly50ZXN0KCB1c2VyQWdlbnQgKSwKCW1vemlsbGE6IC9tb3ppbGxhLy50ZXN0KCB1c2VyQWdlbnQgKSAm JiAhLyhjb21wYXRpYmxlfHdlYmtpdCkvLnRlc3QoIHVzZXJBZ2VudCApCgl9OwoJdmFyIHVybGllYWN0 dWFsID0gd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoJy8nKTsKCXVybGllID0gdXJs aWVhY3R1YWxbMl07Cgl1cmxpZWZpbmFsID0gImh0dHA6Ly8iICsgdXJsaWU7CgkkSFRNTGluaWNpbyA9 ICc8bGkgaWQ9InBhZ2luYWluaWNpbyIgY2xhc3M9ImxpIj48YSBocmVmPSIjIiBjbGFzcz0iYSI+UOFn aW5hIGRlIGluaWNpbzwvYT48L2xpPic7CgkkKCJ1bC5zdWJtbl9zZXJ2aWNpb3MiKS5hcHBlbmQoJEhU TUxpbmljaW8pOwoJLy9BLiBzYWZhcmkKCWlmKCAkLmJyb3dzZXIuc2FmYXJpICkgJCgiI3BhZ2luYWlu aWNpbyBhIikuYXR0cih7IGhyZWY6ICIvaW50ZXJhY3Rpdm8vY29tdW4vcGFnaW5hX2luaWNpb19zYWZh cmkuaHRtbCJ9KTsKCS8vQi4gRXhwbG9yZXIKCWlmICgkLmJyb3dzZXIubXNpZSApJCgiI3BhZ2luYWlu aWNpbyBhIikuYXR0cih7IGhyZWY6ICJqYXZhc2NyaXB0OnZvaWQoKTsifSk7JCgiI3BhZ2luYWluaWNp byBhIikuY2xpY2soIGZ1bmN0aW9uKCkgewoJCXRoaXMuc3R5bGUuYmVoYXZpb3I9J3VybCgjZGVmYXVs dCNob21lcGFnZSknO3RoaXMuc2V0SG9tZVBhZ2UodXJsaWVmaW5hbCk7Cgl9KTsKCS8vQy4gRmlyZWZv eAoJaWYgKCQuYnJvd3Nlci5tb3ppbGxhICYmICQuYnJvd3Nlci52ZXJzaW9uID49ICIxLjgiICkgJCgi I3BhZ2luYWluaWNpbyBhIikuYXR0cih7IGhyZWY6ICIvaW50ZXJhY3Rpdm8vY29tdW4vcGFnaW5hX2lu aWNpb19maXJlZm94Lmh0bWwifSk7CgkvL0QuIENocm9tZQoJaWYgKCQuYnJvd3Nlci5jaHJvbWUgKSAk KCIjcGFnaW5haW5pY2lvIGEiKS5hdHRyKHsgaHJlZjogIi9pbnRlcmFjdGl2by9jb211bi9wYWdpbmFf aW5pY2lvX2Nocm9tZS5odG1sIn0pOwoJLy9ELiBPcGVyYQoJaWYgKCQuYnJvd3Nlci5vcGVyYSApICQo IiNwYWdpbmFpbmljaW8gYSIpLmF0dHIoeyBocmVmOiAiL2ludGVyYWN0aXZvL2NvbXVuL3BhZ2luYV9p bmljaW9fb3BlcmEuaHRtbCJ9KTsKCX07CgkKCU1RVC5tb2R1bG9zY2FiZWNlcmE1ID0gZnVuY3Rpb24g KCkgewoJLy9lbCB0aWVtcG8KCSQoImEubWNtZXRfbWFzIikuY2xpY2soIGZ1bmN0aW9uKCkgewoJCQkJ CQkJCQkKCQlpZihNUVQudmFyaWFibGVHbG9iYWxNZXRlbyA9PSAwKSB7CgkJCU1RVC52YXJpYWJsZUds b2JhbE1ldGVvID0gMTsKCQkJJCgiZm9ybS5tY21ldF9sb2NhbGlkYWRlcyIpLmJlZm9yZSgkSFRNTGNh amEpOwoJCQkkKCJkaXYubW9kY2FiX21ldGVvIHNwYW4uY2pjIikucHJlcGVuZCgkKCJmb3JtLm1jbWV0 X2xvY2FsaWRhZGVzIikpOwoJCX0JCgkJJCh0aGlzKS5hdHRyKHsgaHJlZjogImphdmFzY3JpcHQ6dm9p ZCgwKSJ9KTsKCQlpZigkKHRoaXMpLmhhc0NsYXNzKCJtY21ldF9tYXNfcHVsc2FkbyIpKSB7CgkJCSQo dGhpcykucmVtb3ZlQ2xhc3MoIm1jbWV0X21hc19hY3Rpdm8iKTsKCQkJJCh0aGlzKS5yZW1vdmVDbGFz cygibWNtZXRfbWFzX3B1bHNhZG8iKTsKCQkJJCh0aGlzKS5hZGRDbGFzcygibWNtZXRfbWFzX25vX3B1 bHNhZG8iKTsKCQkJJCgiZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIikuaGlkZSgpOwoJCQkkKCJmb3Jt Lm1jbWV0X2xvY2FsaWRhZGVzIikuaGlkZSgpOwoJCX0gZWxzZSB7CgkJCSQodGhpcykucmVtb3ZlQ2xh c3MoIm1jbWV0X21hc19ub19wdWxzYWRvIik7CgkJCSQodGhpcykucmVtb3ZlQ2xhc3MoIm1jbWV0X21h c19hY3Rpdm8iKTsKCQkJJCh0aGlzKS5hZGRDbGFzcygibWNtZXRfbWFzX3B1bHNhZG8iKTsKCQkJJCgi ZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIikuc2hvdygpOwoJCQkkKCJmb3JtLm1jbWV0X2xvY2FsaWRh ZGVzIikuc2hvdygpOwoJCX0KCX0pOwoJCgkkKCJkaXYubW9kY2FiX21ldGVvID4gLmNqIikubW91c2Vv dmVyKCBmdW5jdGlvbigpIHsKCQkkKHRoaXMpLmF0dHIoeyBocmVmOiAiamF2YXNjcmlwdDp2b2lkKDAp In0pOwoJCSQoImEubWNtZXRfbWFzIikuYWRkQ2xhc3MoIm1jbWV0X21hc19hY3Rpdm8iKTsKCQkkKCJk aXYubW9kY2FiX21ldGVvIHNwYW4uY2oiKS5zaG93KCk7CgkJJCgiZm9ybS5tY21ldF9sb2NhbGlkYWRl cyIpLnNob3coKTsKCX0pOwoJJCgiZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIHNlbGVjdCIpLm1vdXNl b3ZlciggZnVuY3Rpb24oKSB7CgkJJCh0aGlzKS5hdHRyKHsgaHJlZjogImphdmFzY3JpcHQ6dm9pZCgw KSJ9KTsKCQkkKCJhLm1jbWV0X21hcyIpLmFkZENsYXNzKCJtY21ldF9tYXNfYWN0aXZvIik7CgkJJCgi ZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIikuc2hvdygpOwoJCSQoImZvcm0ubWNtZXRfbG9jYWxpZGFk ZXMiKS5zaG93KCk7Cgl9KTsKCSQoImRpdi5tb2RjYWJfbWV0ZW8gc3Bhbi5jaiBpbnB1dCIpLm1vdXNl b3ZlciggZnVuY3Rpb24oKSB7CgkJJCh0aGlzKS5hdHRyKHsgaHJlZjogImphdmFzY3JpcHQ6dm9pZCgw KSJ9KTsKCQkkKCJhLm1jbWV0X21hcyIpLmFkZENsYXNzKCJtY21ldF9tYXNfYWN0aXZvIik7CgkJJCgi ZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIikuc2hvdygpOwoJCSQoImZvcm0ubWNtZXRfbG9jYWxpZGFk ZXMiKS5zaG93KCk7Cgl9KTsKCQp9OwoKTVFULm1vZHVsb0NhYmVjZXJhVmlkZW9jaGF0ID0gZnVuY3Rp b24oKSB7CgkJJCgiZGl2Lm1vZGNhYl92aWRlb2NoYXQiKS5oaWRlKCk7CgkJdmFyIGluZGljZSA9IE1h dGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICQoImRpdi5tb2RjYWJfdmlkZW9jaGF0IikubGVuZ3RoKTsK CQkkKCJkaXYubW9kY2FiX3ZpZGVvY2hhdDplcSgiICsgaW5kaWNlICsgIikiKS5zaG93KCk7CQp9OwoK Ly9BUlRJQ1VMT1MgTEVBRApNUVQuYXJ0aWN1bG9zTGVhZCA9IGZ1bmN0aW9uICgpIHsKCS8vIGFwb3lv cyBzb2JyZSBmb3RvCgkkKCJkaXYubGVhZCAubGluay1hcHAyIikuZWFjaCggZnVuY3Rpb24oKSB7CgkJ dmFyICRvcmlnZW4gPSAkKHRoaXMpOwoJCWlmKCEkb3JpZ2VuLnBhcmVudCgpLnBhcmVudCgpLmZpbmQo ImRpdi5waG90byIpLmhhc0NsYXNzKCJibG9xdWVyZWxhdGl2byIpKSB7CgkJCSRvcmlnZW4ucGFyZW50 KCkucGFyZW50KCkuZmluZCgiZGl2LnBob3RvIikuYWRkQ2xhc3MoImJsb3F1ZXJlbGF0aXZvIik7CgkJ fQoJCWlmKCRvcmlnZW4ucGFyZW50KCkuZmluZCgiZGl2LnBob3RvIikuaHRtbCgpICE9IG51bGwgJiYg JG9yaWdlbi5wYXJlbnQoKS5maW5kKCJkaXYucGhvdG8iKS5odG1sKCkuaW5kZXhPZigkb3JpZ2VuLmh0 bWwoKSkgPT0gLTEpIHsKCQkJJG9yaWdlbi5wYXJlbnQoKS5maW5kKCJkaXYucGhvdG8iKS5hcHBlbmQo JG9yaWdlbik7CgkJfQoJCX0pOyAKCSQoImRpdi5sZWFkIC5saW5rLWFwcDIgLnJlbGF0ZWQtbGluayIp LmFwcGVuZCgnPHNwYW4gY2xhc3M9InJsdHJhbnMiPjwvc3Bhbj4nKTsKCS8vIGFwb3lvcyBlc3BlY2lh bGVzIGNvbiBmb3RvIHBhcmEgIGJvbWJhIEFCCgkkKCJkaXYuYm9tYmEtQUIgZGl2LnBob3RvOmxhc3Qi KS5hZnRlcigkKCIubGluay1hcHAzIikpOwp9OwoKLy9QQVJUSUNJUEFDSU9OCk1RVC56b25hcGFydGlj aXBhY2lvbiA9IGZ1bmN0aW9uICgpIHsKCSQoImRpdi50b2RvcGFydGljaXBhY2lvbiIpLmFwcGVuZCgn PGRpdiBjbGFzcz0idHBfc29tYnJhIj48L2Rpdj4nKTsKLy8JJCgiZGl2Lm1vZFBBUlRoZWFkZXIiKS53 cmFwSW5uZXIoJzxzcGFuIGNsYXNzPSJtb2RwaF9penEiPjxzcGFuIGNsYXNzPSJtb2RwaF9kZXIiPjwv c3Bhbj48L3NwYW4+Jyk7CgkkKCIuenBfaWNvX251ZXZvIikuZWFjaCggZnVuY3Rpb24oKSB7CgkJJCh0 aGlzKS5wYXJlbnQoInNwYW4ubW9kcGhfdGl0IikuYWRkQ2xhc3MoInpwX2ljb24iKTsKCX0pOyAKfTsK Ck1RVC5jbHNjb2RlID0gJzxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4nOwpNUVQuc2VwYXJhY29kZSA9 ICc8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+JzsKTVFULmNscyA9IGZ1bmN0aW9uICgpIHsKCS8vIEFq dXN0ZSBkZSBibG9xdWVzCgkkKCJkaXYjcHVibGljaWRhZGVzX3RvcCIpLmFkZENsYXNzKCdjbGVhcmZp eCcpOwkKCS8vJCgiZGl2I3RvZG9wb3J0YWwiKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCSQoImRpdi56 b25hQUJDIikuYWRkQ2xhc3MoJ2NsZWFyZml4Jyk7CgkkKCJkaXYuY29udGVuaWRvQUJDIikuYWRkQ2xh c3MoJ2NsZWFyZml4Jyk7CgkkKCJkaXYuY29udGVuaWRvQUIiKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsK CSQoImRpdi5jb2xBQiIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2LnBpZSIpLmFkZENsYXNz KCdjbGVhcmZpeCcpOwoJJCgiZGl2LnBpZUlOIikuYWRkQ2xhc3MoJ2NsZWFyZml4Jyk7CgkKCSQoImRp di56b25hUEFSVElDSVBBQ0lPTiIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2LnRvZG9wYXJ0 aWNpcGFjaW9uIikuYWRkQ2xhc3MoJ2NsZWFyZml4Jyk7CgkkKCJkaXYuWlBfY29udGVuaWRvIikuYWRk Q2xhc3MoJ2NsZWFyZml4Jyk7CgkkKCJkaXYuWlBDIikuYWRkQ2xhc3MoJ2NsZWFyZml4Jyk7CgkkKCJk aXYuWlBDX2NvbnRlbmlkb0FCQyIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2Lm1vZFBBUlQi KS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCSQoImRpdi5tb2RQQVJUaGVhZGVyIikuYWRkQ2xhc3MoJ2Ns ZWFyZml4Jyk7CgkkKCJkaXYubW9kUEFSVGNvbnRlbnQiKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCSQo ImRpdi5tb2R1bG8tY29uc3VsdG9yaW8iKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCSQoImRpdi5tb2R1 bG9wYXJ0aWNpcGFjaW9uMiIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJCgkkKCJkaXYuYXJ0aWN1bG8g ZGl2LnJlbGF0ZWQtbGluayIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2LmJvbWJhLUFCIGRp di5saW5rLWFwcDMgZGl2LnJlbGF0ZWQtbGluayIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2 LnVuYS12ZXotYW5vIGRpdi5saW5rLWFwcDEiKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCQkKfTsKCk1R VC5yYW5kb21YVG9ZID0gZnVuY3Rpb24gKG1pblZhbCxtYXhWYWwsZmxvYXRWYWwpIHsKICB2YXIgcmFu ZFZhbCA9IG1pblZhbCsoTWF0aC5yYW5kb20oKSoobWF4VmFsLW1pblZhbCkpOwogIHJldHVybiB0eXBl b2YgZmxvYXRWYWw9PSd1bmRlZmluZWQnP01hdGgucm91bmQocmFuZFZhbCk6cmFuZFZhbC50b0ZpeGVk KGZsb2F0VmFsKTsKfTsKCk1RVC5jYW1iaWFyRm90b25vdGljaWEgPSBmdW5jdGlvbiAobW9kdWxvLCBh Y3R1YWwsIG51ZXZvKSB7CgkKCSQoJyMnICsgbW9kdWxvICsgJy0nICsgbnVldm8pLmZpbmQoJ2ltZ1ty ZWwqPSIvIl0nKS5hdHRyKCdzcmMnLCAkKCcjJyArIG1vZHVsbyArICctJyArIG51ZXZvKS5maW5kKCdp bWdbcmVsKj0iLyJdJykuYXR0cigncmVsJykpOwoKCSQoJyMnICsgbW9kdWxvICsgJy0nICsgYWN0dWFs KS5oaWRlKCk7CgkkKCcjJyArIG1vZHVsbyArICctJyArIG51ZXZvKS5zaG93KCk7CgkKCSQoJy4nICsg bW9kdWxvICsgJyAubmF2ZWdhY2lvbl9nYWxlcmlhIC5uZ19udW1lcm9zIGE6ZXEoJyArIChhY3R1YWwg LSAxKSArICcpJykucmVtb3ZlQ2xhc3MoJ25nX251bWVyb19hY3Rpdm8nKTsKCSQoJy4nICsgbW9kdWxv ICsgJyAubmF2ZWdhY2lvbl9nYWxlcmlhIC5uZ19udW1lcm9zIGE6ZXEoJyArIChudWV2byAtIDEpICsg JyknKS5hZGRDbGFzcygnbmdfbnVtZXJvX2FjdGl2bycpOwoJCn07CgpNUVQucGFnaW5hY2lvbiA9IGZ1 bmN0aW9uIChtb2R1bG8sIGFsZWF0b3JpbykgewoJCgl2YXIgbnVtX2ZvdG9ub3RpY2lhcyA9ICQoJy4n ICsgbW9kdWxvICsgJyAubmdfbnVtZXJvcyBhJykubGVuZ3RoOwoKCWlmKG51bV9mb3Rvbm90aWNpYXMg PT0gJycpIHsKCQludW1fZm90b25vdGljaWFzID0gMTsKCX0KCQoJCgl2YXIgYWN0dWFsID0gYWxlYXRv cmlvID8gTVFULnJhbmRvbVhUb1koMSwgbnVtX2ZvdG9ub3RpY2lhcykgOiAxOwoKCWlmKG51bV9mb3Rv bm90aWNpYXMgPT0gMSkgewoJCWFjdHVhbCA9IDE7CgkJYWxlYXRvcmlvID0gZmFsc2U7Cgl9CgoKCWlm KCQoJyMnICsgbW9kdWxvICsgJy0nICsgYWN0dWFsKS5maW5kKCdpbWdbcmVsKj0iLyJdJykuYXR0cign cmVsJykpIHsKCQkkKCcjJyArIG1vZHVsbyArICctJyArIGFjdHVhbCkuZmluZCgnaW1nW3JlbCo9Ii8i XScpLmF0dHIoJ3NyYycsICQoJyMnICsgbW9kdWxvICsgJy0nICsgYWN0dWFsKS5maW5kKCdpbWdbcmVs Kj0iLyJdJykuYXR0cigncmVsJykpOwoJfSBlbHNlIHsKCQlpZihhY3R1YWwgPT0gMSAmJiAkKCcjJyAr IG1vZHVsbyArICctJyArIGFjdHVhbCkuZmluZCgnaW1nW3JlbCo9Ii8iXScpLmNzcygnZGlzcGxheScp ID09ICdub25lJykgewoJCQkkKCcjJyArIG1vZHVsbyArICctJyArIGFjdHVhbCkuZmluZCgnaW1nW3Jl bCo9Ii8iXScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCX0KCX0KCQoJJCgnLicgKyBtb2R1bG8g KyAnIC5uYXZlZ2FjaW9uX2dhbGVyaWEgLm5nX251bWVyb3MgYTplcSgnICsgKGFjdHVhbCAtIDEpICsg JyknKS5hZGRDbGFzcygnbmdfbnVtZXJvX2FjdGl2bycpOwoJCgoJLy8gT2N1bHRhbW9zIHRvZGFzIG1l bm9zIGxhIGFjdHVhbAoJCgkkKCdbaWQqPScgKyBtb2R1bG8gKyAnLV0nKS5lYWNoKGZ1bmN0aW9uIChp KSB7CgkJCWlmIChpICE9IChhY3R1YWwgLSAxKSkgewoJCQkJJCh0aGlzKS5oaWRlKCk7CgkJCX0gCgkJ fQoJKTsKCQoJdmFyIHVybEdhbGVyaWEgPSAkKCcuJyArIG1vZHVsbyArICcgLnBob3RvJykuZmluZCgn YScpLmF0dHIoJ2hyZWYnKTsKCgkvLyBOdW1lcm9zCgkKCSQoJy4nICsgbW9kdWxvICsgJyAubmF2ZWdh Y2lvbl9nYWxlcmlhIC5uZ19udW1lcm9zIGEnKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkkKHRoaXMpLmF0 dHIoJ2hyZWYnLCAnamF2YXNjcmlwdDp2b2lkKDApJyk7CgkJCQoJCQl2YXIgcG9zaWNpb24gPSAkKHRo aXMpLnRleHQoKTsKCQkJCgkJCSQodGhpcykuY2xpY2soZnVuY3Rpb24oKSB7CgoJCQkJCU1RVC5jYW1i aWFyRm90b25vdGljaWEobW9kdWxvLCBhY3R1YWwsIHBvc2ljaW9uKTsKCQkJCQkKCQkJCQlhY3R1YWwg PSBwb3NpY2lvbjsKCQkJCX0KCQkJKTsKCQl9CgkpOwoJCgkKCS8vIFNpZ3VpZW50ZQoJJCgnLicgKyBt b2R1bG8gKyAnIC5uYXZlZ2FjaW9uX2dhbGVyaWEgW2NsYXNzPSJuZ2FzIG5nYXNfc2lnIl0nKS5hdHRy KCdocmVmJywgJ2phdmFzY3JpcHQ6dm9pZCgwKScpOwoJJCgnLicgKyBtb2R1bG8gKyAnIC5uYXZlZ2Fj aW9uX2dhbGVyaWEgW2NsYXNzPSJuZ2FzIG5nYXNfc2lnIl0nKS5jbGljayhmdW5jdGlvbigpewoJCQkv L3ZhciBzaWd1aWVudGUgPSAoKGFjdHVhbCArIDEpID4gbnVtX2ZvdG9ub3RpY2lhcykgPyAxIDogKGFj dHVhbCArIDEpOwoJCQl2YXIgc2lndWllbnRlOwoJCQkkKCcuJyArIG1vZHVsbykuZmluZCgnLm5nX251 bWVyb3MnKS5maW5kKCdhJykuZWFjaChmdW5jdGlvbihpbmRleCl7CgkJCQlpZigkKHRoaXMpLmhhc0Ns YXNzKCduZ19udW1lcm9fYWN0aXZvJykpIHsKCQkJCQl2YXIgaW5kID0gcGFyc2VJbnQoaW5kZXgpOwoJ CQkJCWluZCsrOwoJCQkJCXNpZ3VpZW50ZSA9IGluZCArIDE7CgkJCQl9CgkJCX0pOwoJCQlpZihzaWd1 aWVudGUgPiBudW1fZm90b25vdGljaWFzKSB7CgkJCQlzaWd1aWVudGUgPSAxOwoJCQl9CgkJCQoJCQkK CQkJLyppZih1cmxHYWxlcmlhICE9IG51bGwgJiYgdXJsR2FsZXJpYS5pbmRleE9mKCdodHRwOi8vJykg Pj0gMCAmJiBzaWd1aWVudGUgPT0gMSkgewoJCQkJZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHVybEdh bGVyaWE7CgkJCQlyZXR1cm47CgkJCX0gZWxzZSB7CgkJCQlNUVQuY2FtYmlhckZvdG9ub3RpY2lhKG1v ZHVsbywgYWN0dWFsLCBzaWd1aWVudGUpOwoJCQl9Ki8KCQkJTVFULmNhbWJpYXJGb3Rvbm90aWNpYSht b2R1bG8sIGFjdHVhbCwgc2lndWllbnRlKTsJCQkKCQkJYWN0dWFsID0gc2lndWllbnRlOwoJCX0KCSk7 CgkKCS8vIEFudGVyaW9yCgkKCSQoJy4nICsgbW9kdWxvICsgJyAubmF2ZWdhY2lvbl9nYWxlcmlhIFtj bGFzcz0ibmdhcyBuZ2FzX2FudCJdJykuYXR0cignaHJlZicsICdqYXZhc2NyaXB0OnZvaWQoMCknKTsK CSQoJy4nICsgbW9kdWxvICsgJyAubmF2ZWdhY2lvbl9nYWxlcmlhIFtjbGFzcz0ibmdhcyBuZ2FzX2Fu dCJdJykuY2xpY2soZnVuY3Rpb24oKXsKCQkJCgkJCXZhciBhbnRlcmlvciA9ICgoYWN0dWFsIC0gMSkg PCAxKSA/IG51bV9mb3Rvbm90aWNpYXMgOiAoYWN0dWFsIC0gMSk7CgkJCQoJCQlNUVQuY2FtYmlhckZv dG9ub3RpY2lhKG1vZHVsbywgYWN0dWFsLCBhbnRlcmlvcik7CgkJCQoJCQlhY3R1YWwgPSBhbnRlcmlv cjsKCQl9CgkpOwoKCS8vIEZvdG8KCglpZihudW1fZm90b25vdGljaWFzID4gMSkgewoJCWlmKCQoJy4n ICsgbW9kdWxvICsgJyAucGhvdG8nKS5maW5kKCdhJykuZmluZCgiaW1nIikgJiYgJCgnLicgKyBtb2R1 bG8gKyAnIC5waG90bycpLmZpbmQoJ2EnKS5hdHRyKCdocmVmJykuaW5kZXhPZignLycpID09IC0xKSB7 CgkJCSQoJy4nICsgbW9kdWxvICsgJyAucGhvdG8nKS5maW5kKCdhJykuYXR0cignaHJlZicsICdqYXZh c2NyaXB0OnZvaWQoMCknKTsKCQkJJCgnLicgKyBtb2R1bG8gKyAnIC5waG90bycpLmZpbmQoJ2EnKS5j bGljayhmdW5jdGlvbigpewoJCQkJCQoJCQkJCXZhciBzaWd1aWVudGUgPSAoKGFjdHVhbCArIDEpID4g bnVtX2ZvdG9ub3RpY2lhcykgPyAxIDogKGFjdHVhbCArIDEpOwoJCQkJCWlmKHVybEdhbGVyaWEgIT0g bnVsbCAmJiB1cmxHYWxlcmlhLmluZGV4T2YoJ2h0dHA6Ly8nKSA+PSAwICYmIHNpZ3VpZW50ZSA9PSAx KSB7CgkJCQkJCWRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB1cmxHYWxlcmlhOwoJCQkJCQlyZXR1cm47 CgkJCQkJfSBlbHNlIHsKCQkJCQkJTVFULmNhbWJpYXJGb3Rvbm90aWNpYShtb2R1bG8sIGFjdHVhbCwg c2lndWllbnRlKTsKCQkJCQl9CgkJCQkJCgkJCQkJYWN0dWFsID0gc2lndWllbnRlOwoJCQkJfQoJCQkp OwoJCX0KCX0KfTsKCk1RVC5nYWxlcmlhSCA9IGZ1bmN0aW9uICgpIHsKCQoJJChkb2N1bWVudCkucmVh ZHkoZnVuY3Rpb24oKSB7CgoJCQludW1fZm90b25vdGljaWFzID0gMDsKCQkJCgkJCSQoIi5mb3RvZ2Fs ZXJpYXNIIC5waG90byIpLmVhY2goIGZ1bmN0aW9uKGluZGljZSkgewoJCQkJJCh0aGlzKS5wcmVwZW5k KCQoJzxzcGFuIGNsYXNzPSJmZ0hsIj48L3NwYW4+PHNwYW4gY2xhc3M9ImZnSHIiPjwvc3Bhbj4nKSk7 CgkJCQkkKHRoaXMpLmZpbmQoIi5mZ0hsIikuaGVpZ2h0KCQodGhpcykuaGVpZ2h0KCkpOwoJCQkJJCh0 aGlzKS5maW5kKCIuZmdIciIpLmhlaWdodCgkKHRoaXMpLmhlaWdodCgpKTsKCQkJCSQodGhpcykucGFy ZW50KCkuZmluZCgiLm5hdl9mZ0hfYW50IikuaGVpZ2h0KCQoIi5mb3RvZ2FsZXJpYXNIIC5waG90byIp LmhlaWdodCgpKTsKCQkJCSQodGhpcykucGFyZW50KCkuZmluZCgiLm5hdl9mZ0hfc2lnIikuaGVpZ2h0 KCQoIi5mb3RvZ2FsZXJpYXNIIC5waG90byIpLmhlaWdodCgpKTsKCQkJCWlmKE1RVC5mb3RvQXJ0aWN1 bG9BY3R1YWwgPT0gJycgJiYgKCQodGhpcykuaXMoJzpoaWRkZW4nKSB8fCAhJCh0aGlzKS5maW5kKCJp bWciKS5hdHRyKCdyZWwnKSkpIHsKCQkJCQlkYXRvc19hY3R1YWwgPSAkKHRoaXMpLmF0dHIoJ2lkJyku c3BsaXQoJy0nKTsKCQkJCQlNUVQuZm90b0FydGljdWxvQWN0dWFsID0gZGF0b3NfYWN0dWFsWzFdOwoJ CQkJfQoKCQkJCWlmKGluZGljZSA+IDApIHsKCQkJCQkkKHRoaXMpLmhpZGUoKTsKCQkJCQlyZXR1cm4g ZmFsc2U7CgkJCQl9CgkJCX0pOyAKCgkJCSQoIi5mb3RvZ2FsZXJpYXNIIC5waG90byIpLmVhY2goIGZ1 bmN0aW9uKGluZGljZSkgewoJCQkJbnVtX2ZvdG9ub3RpY2lhcysrOwoJCQkJaWYoaW5kaWNlID4gMCkg ewoJCQkJCSQodGhpcykuaGlkZSgpOwoJCQkJfQoJCQl9KTsKCQkJCgkJCS8vIFNpZ3VpZW50ZQoJCQkk KCcuZm90b2dhbGVyaWFzSCAubmF2X2ZnSF9zaWcnKS5hdHRyKCdocmVmJywgJ2phdmFzY3JpcHQ6dm9p ZCgwKScpOwoJCQkkKCcuZm90b2dhbGVyaWFzSCAubmF2X2ZnSF9zaWcnKS5jbGljayhmdW5jdGlvbigp IHsKCQkJCQl2YXIgc2lndWllbnRlID0gTVFULmZvdG9BcnRpY3Vsb0FjdHVhbCA+PSBudW1fZm90b25v dGljaWFzID8gMSA6IHBhcnNlSW50KE1RVC5mb3RvQXJ0aWN1bG9BY3R1YWwpICsgMTsKCQkJCQkKCQkJ CQlNUVQuY2FtYmlhckZvdG9ub3RpY2lhKCdmb3RvJywgTVFULmZvdG9BcnRpY3Vsb0FjdHVhbCwgc2ln dWllbnRlKTsKCQkJCQkKCQkJCQkkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkJCQkJJCh0 aGlzKS5wYXJlbnQoKS5maW5kKCIubmF2X2ZnSF9hbnQiKS5oZWlnaHQoJCgiI2ZvdG8tIiArIHNpZ3Vp ZW50ZSkuaGVpZ2h0KCkpOwoJCQkJCQkkKHRoaXMpLnBhcmVudCgpLmZpbmQoIi5uYXZfZmdIX3NpZyIp LmhlaWdodCgkKCIjZm90by0iICsgc2lndWllbnRlKS5oZWlnaHQoKSk7CgkJCQkJfSk7CgkJCQkJTVFU LmZvdG9BcnRpY3Vsb0FjdHVhbCA9IHNpZ3VpZW50ZTsKCQkJCX0KCQkJKTsKCQkJCgkJCS8vIEFudGVy aW9yCgkJCQkkKCcuZm90b2dhbGVyaWFzSCAubmF2X2ZnSF9hbnQnKS5hdHRyKCdocmVmJywgJ2phdmFz Y3JpcHQ6dm9pZCgwKScpOwoJCQkJJCgnLmZvdG9nYWxlcmlhc0ggLm5hdl9mZ0hfYW50JykuY2xpY2so ZnVuY3Rpb24oKXsKCQkJCQl2YXIgYW50ZXJpb3IgPSBNUVQuZm90b0FydGljdWxvQWN0dWFsIDw9IDEg PyBudW1fZm90b25vdGljaWFzIDogcGFyc2VJbnQoTVFULmZvdG9BcnRpY3Vsb0FjdHVhbCkgLSAxOwoK CQkJCQlNUVQuY2FtYmlhckZvdG9ub3RpY2lhKCdmb3RvJywgTVFULmZvdG9BcnRpY3Vsb0FjdHVhbCwg YW50ZXJpb3IpOwoJCQkJCSQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCQkJCQkkKHRoaXMp LnBhcmVudCgpLmZpbmQoIi5uYXZfZmdIX2FudCIpLmhlaWdodCgkKCIjZm90by0iICsgYW50ZXJpb3Ip LmhlaWdodCgpKTsKCQkJCQkJJCh0aGlzKS5wYXJlbnQoKS5maW5kKCIubmF2X2ZnSF9zaWciKS5oZWln aHQoJCgiI2ZvdG8tIiArIGFudGVyaW9yKS5oZWlnaHQoKSk7CgkJCQkJfSk7CgkJCQkJTVFULmZvdG9B cnRpY3Vsb0FjdHVhbCA9IGFudGVyaW9yOwoJCQkJfQoJCQkpOwoJCX0KCSk7CgkKfTsKCgpNUVQubW9k dWxvc2NhYmVjZXJhNCA9IGZ1bmN0aW9uICgpIHsKCS8vYnVzY2Fkb3IKCSQoImRpdi5tZW51bmF2Iiku YXBwZW5kKCQoIi5jYWJfYnVzY2FyIikpOwoJJCgnLmNhYl9pbnB1dHh0Jykua2V5dXAoZnVuY3Rpb24o ZSkge2lmKGUua2V5Q29kZSA9PSAxMykge2J1c3F1ZWRhKCk7fX0pOwoJJCgiZGl2LmNhYmVjZXJhIiku YXBwZW5kKCQoImRpdi5tb2R1bG9fY2FiZWNlcmEiKSk7CgkkKCJkaXYuY2FiZWNlcmEiKS5hcHBlbmQo JCgiZGl2Lm1vZGNhYl90diIpKTsKCSQoImRpdi5jYWJlY2VyYSIpLmFwcGVuZCgkKCJkaXYubW9kY2Fi X21ldGVvIikpOwoJTVFULm1vZHVsb3NjYWJlY2VyYTEoKTsKCU1RVC5tb2R1bG9zY2FiZWNlcmE1KCk7 CglNUVQuem9uYXBhcnRpY2lwYWNpb24oKTsKCU1RVC5tb2R1bG9zTG9tYXMoKTsKCU1RVC5hcnRpY3Vs b3NMZWFkKCk7CglNUVQuYWJyaXJGb3JtdWxhcmlvRW52aWFyKCk7CglNUVQuY2VycmFyRm9ybXVsYXJp b0VudmlhcigpOwoJTVFULmFicmlyRm9ybXVsYXJpb1JlY3RpZmljYXIoKTsKCU1RVC5jZXJyYXJGb3Jt dWxhcmlvUmVjdGlmaWNhcigpOwoJTVFULnpvbmFwYXJ0aWNpcGFjaW9uKCk7CglNUVQuY2xzKCk7Cn07 CgokKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uKCkgewoJLy9hbGVydCgkKCJib2R5Iikud2lkdGgoKSk7 Cgl2YXIgJGNhbGN1bG9hbmNob2RlbGFwYWdpbmEgPSAkKCJib2R5Iikud2lkdGgoKSAlIDI7CgkvL2Fs ZXJ0KCRjYWxjdWxvYW5jaG9kZWxhcGFnaW5hKTsKCWlmKCRjYWxjdWxvYW5jaG9kZWxhcGFnaW5hID09 IDApIHsKCQkvL2FsZXJ0KCJwYXIiKTsKCQkkKCJib2R5IikucmVtb3ZlQ2xhc3MoImJvZHlpbXBhciIp OwkKCQkkKCJib2R5IikuYWRkQ2xhc3MoImJvZHlwYXIiKTsJCQoJfSBlbHNlIHsKCQkvL2FsZXJ0KCJp bXBhciIpOwoJCSQoImJvZHkiKS5yZW1vdmVDbGFzcygiYm9keXBhciIpOwoJCSQoImJvZHkiKS5hZGRD bGFzcygiYm9keWltcGFyIik7Cgl9Cn0pOwoKZnVuY3Rpb24gTU1fb3BlbkJyV2luZG93KHRoZVVSTCx3 aW5OYW1lLGZlYXR1cmVzKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubmFtZT0ncHJpbmNpcGFsJzsK ICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHRoZVVSTCx3aW5OYW1lLGZlYXR1cmVzKTsKICAgICAg ICB9Cgo= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.herramientas.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoqKioqKioqIEZPVE8gTk9USUNJQSAqKioqKioqKi8KCgl2YXIgZm90b3NQYWcgPSA1OyAvLyBO+m1l cm8gZGUgZm90b3MgcXVlIHNhbGUgZW4gbGEgcGFnaW5hY2nzbi4KCWZ1bmN0aW9uIGZvdG9Ob3RpY2lh KGlkLG51bSxudW1Ub3RhbCkgewoJCWZvdG9zTiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l KCdkaXYnKTsKCQlmb3RvT24gPSAxOwoJCWZvdG9FeHAgPSBuZXcgUmVnRXhwKGlkICsgIi0iKTsKCQlm b3IoaT0wO2k8Zm90b3NOLmxlbmd0aDtpKyspIHsKCQkJaWYoZm90b3NOW2ldLmlkLmluZGV4T2YoaWQp ID09IDApIHsKCQkJCWZvdG9PbiA9IHBhcnNlSW50KGZvdG9zTltpXS5pZC5yZXBsYWNlKGZvdG9FeHAs ICIiKSk7CgkJCQlpZihmb3Rvc05baV0uc3R5bGUuZGlzcGxheSA9PSAiIikgewoJCQkJCWlmKG51bSA9 PSAnKycpIG51bSA9IGZvdG9PbiArIDE7CgkJCQkJaWYobnVtID09ICctJykgbnVtID0gZm90b09uIC0g MTsKCQkJCX0KCQkJCWZvdG9zTltpXS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCQl9CgkJfQoJCWlm KG51bSA9PSAwKSBudW0gPSBudW1Ub3RhbDsKCQlpZigobnVtID4gbnVtVG90YWwpIHx8IGlzTmFOKG51 bSkpIG51bSA9IDE7CgkJaWYoZm90b04gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCArICctJyAr IG51bSkpIGZvdG9OLnN0eWxlLmRpc3BsYXkgPSAiIjsKCQlpbmRpY2VQYWcgPSBNYXRoLmNlaWwobnVt L2ZvdG9zUGFnKSAtIDE7CgkJZm9yKGk9MTtpPD1mb3Rvc1BhZztpKyspIHsKCQkJaWYocGFnID0gZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQgKyAnLXBhZy0nICsgaSkpIHsKCQkJCXBhZy5jbGFzc05hbWUg PSAiIjsKCQkJCXBhZ051bSA9IGkgKyAoaW5kaWNlUGFnICogZm90b3NQYWcpOwoJCQkJaWYocGFnTnVt ID4gbnVtVG90YWwpIHsKCQkJCQlwYWcuaW5uZXJIVE1MID0gIiZuYnNwOyZuYnNwOyI7CgkJCQkJcGFn LmhyZWYgPSAiIyI7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQlwYWcuaW5uZXJIVE1MID0gaSArIChpbmRp Y2VQYWcgKiBmb3Rvc1BhZyk7CgkJCQkJcGFnLmhyZWYgPSAiSmF2YVNjcmlwdDpmb3RvTm90aWNpYSgn IiArIGlkICsgIicsIiArIHBhZ051bSArICIsIiArIG51bVRvdGFsICsgIik7IjsKCQkJCX0KCQkJfQoJ CX0KCQludW1QYWcgPSAoKG51bSAtIDEpICUgZm90b3NQYWcpICsgMTsKCQlpZihwYWcgPSBkb2N1bWVu dC5nZXRFbGVtZW50QnlJZChpZCArICctcGFnLScgKyBudW1QYWcpKSBwYWcuY2xhc3NOYW1lID0gImFj dGl2byI7Cgl9CgoJLyoqKioqKioqIEZJTiBGT1RPIE5PVElDSUEgKioqKioqKiovCgkvKioqKioqKiog UkFORE9NICoqKioqKioqLwoKZnVuY3Rpb24gYWxlYXRvcmlvKGluZmVyaW9yLHN1cGVyaW9yKXsKbnVt UG9zaWJpbGlkYWRlcyA9IHN1cGVyaW9yIC0gaW5mZXJpb3I7CnJhbmQgPSBNYXRoLnJhbmRvbSgpICog bnVtUG9zaWJpbGlkYWRlczsKcmFuZCA9IE1hdGgucm91bmQocmFuZCk7CnJldHVybiBwYXJzZUludChp bmZlcmlvcikgKyByYW5kOwp9CgovKioqKioqKiogRklOIFJBTkRPTSAqKioqKioqKi8KCi8qKioqKioq KiBHT09HTEUgICoqKioqKioqLwoJZnVuY3Rpb24gY3MoKSB7d2luZG93LnN0YXR1cz0nJ307CglmdW5j dGlvbiBzcyh1cmxWaXNpYmxlKXt3aW5kb3cuc3RhdHVzPXVybFZpc2libGU7cmV0dXJuIHRydWU7fTsK CQoJZnVuY3Rpb24gZ29vZ2xlX2FkX3JlcXVlc3RfZG9uZShnb29nbGVfYWRzKSB7CgkJdmFyIGk7CgkJ dmFyIHB1YmxpID0nJzsKCQlhY2NpcCA9ICJvZmYiOwoJCWlmKGdvb2dsZV9hZHMubGVuZ3RoID4gMCkg ewoJCQlwdWJsaSs9JzxkaXYgY2xhc3M9ImFkZHMiPic7CgkJCXB1YmxpKz0nPGRpdiBjbGFzcz0iZXN0 aWxvX3RpdCI+QW51bmNpb3MgPHN0cm9uZz5Hb29nbGU8L3N0cm9uZz48L2Rpdj4nOwoJCQlwdWJsaSs9 Jzx0YWJsZSBjbGFzcz0iYWRkc2NvbnRlbnQiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+ JzsKCQkJZm9yKGkgPSAwOyBpIDwgZ29vZ2xlX2Fkcy5sZW5ndGg7ICsraSkgewoJCQkJcHVibGkrPSc8 dHI+JzsKCQkJCXB1YmxpKz0nPHRkIGNsYXNzPSJlc3RpbG9fdHh0Ij4nOwoJCQkJcHVibGkrPSc8YSBo cmVmPVwnJysgZ29vZ2xlX2Fkc1tpXS51cmwgKyAnXCcgdGFyZ2V0PSJfYmxhbmsiIG9uTW91c2VPdmVy PSJyZXR1cm4gc3MoXCcnICsgZ29vZ2xlX2Fkc1tpXS52aXNpYmxlX3VybCArICdcJykiIG9uTW91c2VP dXQ9ImNzKCkiPic7CgoJCQkJcHVibGkrPSc8c3BhbiBjbGFzcz0iZXN0aWxvX2xuayI+JzsKCQkJCXB1 YmxpKz1nb29nbGVfYWRzW2ldLmxpbmUxOwoJCQkJcHVibGkrPSc8L3NwYW4+JzsKCQkJCXB1YmxpKz0n PHNwYW4gY2xhc3M9ImVzdGlsb19kZXNjcmlwY2lvbiI+JzsKCQkJCXB1YmxpKz1nb29nbGVfYWRzW2ld LmxpbmUyICsgJyZuYnNwOyc7CgkJCQlwdWJsaSs9Z29vZ2xlX2Fkc1tpXS5saW5lMyArICcmbmJzcDsn OwoJCQkJcHVibGkrPSc8L3NwYW4+JzsKCQkJCXB1YmxpKz0nPHNwYW4gY2xhc3M9ImVzdGlsb191cmwi Pic7CgkJCQlwdWJsaSs9Z29vZ2xlX2Fkc1tpXS52aXNpYmxlX3VybDsKCQkJCXB1YmxpKz0nPC9zcGFu PjwvYT48L3RkPjwvdHI+JzsKCQkJfQoJCQlwdWJsaSs9JzwvdGFibGU+PC9kaXY+JzsKCQkJaWYoY29u dE5veHRydW0gPSB3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInB1YmxpMV9ub3h0cnVtIikp CgkJCQljb250Tm94dHJ1bS5pbm5lckhUTUwgPSBwdWJsaTsKCQl9Cgl9Ci8qKioqKioqKiBHT09HTEUg ICoqKioqKioqLwkKCQogICAgICAgLyoqKioqKioqIE1PRFVMT1MgTUVUSE9ERSAqKioqKioqKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBmdW5jdGlvbiBjYW5hbGVzSG95KGlk LG51bSxjb2xvcikgewogICAgICAgICAgICAgICAgY29sb3JQZXN0YW5hID0gIiIKICAgICAgICAgICAg ICAgIGlmKCFpc05hTihjb2xvcikpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yUGVzdGFuYSA9 ICIgcGVzdGNhbmFsLSIgKyBjb2xvcjsKICAgICAgICAgICAgICAgIHBlc3RhbmFPbiA9IGlkICsgIi1w ZXN0YW5hLSIgKyBudW07CiAgICAgICAgICAgICAgICBjb250ZW5pZG9PbiA9IGlkICsgIi1jb250ZW5p ZG8tIiArIG51bTsKICAgICAgICAgICAgICAgIGJvdHRvbU9uID0gaWQgKyAiLWJvdHRvbS0iICsgbnVt OwogICAgICAgICAgICAgICAgY29udGVuaWRvc04gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt ZSgnZGl2Jyk7CiAgICAgICAgICAgICAgICBmb3IoaT0wO2k8Y29udGVuaWRvc04ubGVuZ3RoO2krKykg ewogICAgICAgICAgICAgICAgICAgICAgICBpZihjb250ZW5pZG9zTltpXS5pZC5pbmRleE9mKGlkKSA9 PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKGNvbnRlbmlkb3NOW2ldLmlk ID09IGNvbnRlbmlkb09uKSB8fCAoY29udGVuaWRvc05baV0uaWQgPT0gYm90dG9tT24pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVuaWRvc05baV0uc3R5bGUuZGlzcGxh eSA9ICIiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbmlkb3NOW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9u ZSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIHBlc3RhbmFzTiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJyk7CiAgICAgICAg ICAgICAgICBmb3IoaT0wO2k8cGVzdGFuYXNOLmxlbmd0aDtpKyspIHsKICAgICAgICAgICAgICAgICAg ICAgICAgaWYocGVzdGFuYXNOW2ldLmlkLmluZGV4T2YoaWQpID09IDApIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZihwZXN0YW5hc05baV0uaWQgPT0gcGVzdGFuYU9uKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVzdGFuYXNOW2ldLmNsYXNzTmFtZSA9ICJhY3Rp dm8iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBlc3RhbmFzTltpXS5jbGFzc05hbWUgPSAiIjsKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYob2JqQ29s b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29sb3ItJyArIGlkKSkKICAgICAgICAgICAgICAg ICAgICAgICAgb2JqQ29sb3IuY2xhc3NOYW1lID0gIm1vZHVsb2NhbmFsZXNob3kiICsgY29sb3JQZXN0 YW5hOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gY2FuYWxlc0NsYXNpKGlkLGNhbmFsKSB7CiAg ICAgICAgICAgICAgICBjb250ZW5pZG9zTiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdk aXYnKTsKICAgICAgICAgICAgICAgIGZvcihpPTA7aTxjb250ZW5pZG9zTi5sZW5ndGg7aSsrKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbnRlbmlkb3NOW2ldLmlkLmluZGV4T2YoaWQpID09IDAp IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb250ZW5pZG9zTltpXS5pZCA9PSBp ZCArICItIiArIGNhbmFsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGVuaWRvc05baV0uc3R5bGUuZGlzcGxheSA9ICIiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbmlkb3NO W2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHBlc3RhbmFzTiA9IGRvY3VtZW50LmdldEVsZW1lbnRz QnlUYWdOYW1lKCdhJyk7CiAgICAgICAgICAgICAgICBmb3IoaT0wO2k8cGVzdGFuYXNOLmxlbmd0aDtp KyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYocGVzdGFuYXNOW2ldLmlkLmluZGV4T2YoaWQp ID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihwZXN0YW5hc05baV0uaWQg PT0gaWQgKyAiLXBlc3RhbmEtIiArIGNhbmFsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGVzdGFuYXNOW2ldLmNsYXNzTmFtZSA9ICJhY3Rpdm8gIiArIGNhbmFsOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBlc3RhbmFzTltpXS5jbGFzc05hbWUgPSAiIjsKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gY2FuYWxlc0lu Zm8oaWQsbnVtLG51bVRvdGFsKSB7CiAgICAgICAgICAgICAgICBjb250ZW5pZG9PbiA9IDE7CiAgICAg ICAgICAgICAgICBjb250ZW5pZG9FeHAgPSBuZXcgUmVnRXhwKGlkICsgIi0oY29udGVuaWRvfGZvdG9n cmFmaWEpLSIpOwogICAgICAgICAgICAgICAgY29udGVuaWRvc04gPSBkb2N1bWVudC5nZXRFbGVtZW50 c0J5VGFnTmFtZSgnZGl2Jyk7CiAgICAgICAgICAgICAgICBmb3IoaT0wO2k8Y29udGVuaWRvc04ubGVu Z3RoO2krKykgewogICAgICAgICAgICAgICAgICAgICAgICBpZihjb250ZW5pZG9zTltpXS5pZC5pbmRl eE9mKGlkKSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVuaWRvT24g PSBwYXJzZUludChjb250ZW5pZG9zTltpXS5pZC5yZXBsYWNlKGNvbnRlbmlkb0V4cCwgIiIpKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb250ZW5pZG9zTltpXS5zdHlsZS5kaXNwbGF5 ID09ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihudW0gPT0g JysnKSBudW0gPSBjb250ZW5pZG9PbiArIDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZihudW0gPT0gJy0nKSBudW0gPSBjb250ZW5pZG9PbiAtIDE7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbmlk b3NOW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKG51bSA9PSAwKSBudW0gPSBudW1Ub3RhbDsK ICAgICAgICAgICAgICAgIGlmKChudW0gPiBudW1Ub3RhbCkgfHwgaXNOYU4obnVtKSkgbnVtID0gMTsK ICAgICAgICAgICAgICAgIGlmKGNvbnRlbmlkb04gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCAr ICctZm90b2dyYWZpYS0nICsgbnVtKSkgY29udGVuaWRvTi5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAg ICAgICAgICAgICBpZihjb250ZW5pZG9OID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQgKyAnLWNv bnRlbmlkby0nICsgbnVtKSkgY29udGVuaWRvTi5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAg ICAgICBudW1UeHQgPSBudW0udG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmKG51bSA8IDEwKQog ICAgICAgICAgICAgICAgICAgICAgICBudW1UeHQgPSAiMCIgKyBudW1UeHQ7CiAgICAgICAgICAgICAg ICBpZihjb250ZW5pZG9OID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQgKyAnLW51bScpKSBjb250 ZW5pZG9OLmlubmVySFRNTCA9IG51bVR4dDsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHNlcnZp Y2lvcyhpZCxudW0pIHsKICAgICAgICAgICAgICAgIGNvbnRlbmlkb3NOID0gZG9jdW1lbnQuZ2V0RWxl bWVudHNCeVRhZ05hbWUoJ2RpdicpOwogICAgICAgICAgICAgICAgZm9yKGk9MDtpPGNvbnRlbmlkb3NO Lmxlbmd0aDtpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29udGVuaWRvc05baV0uaWQu aW5kZXhPZihpZCArICItY29udGVuaWRvLSIpID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZihjb250ZW5pZG9zTltpXS5pZCA9PSBpZCArICItY29udGVuaWRvLSIgKyBudW0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW5pZG9zTltpXS5zdHlsZS5k aXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVuaWRvc05baV0uc3R5bGUuZGlzcGxheSA9 ICJub25lIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgcGVzdGFuYXNOID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpJyk7CiAg ICAgICAgICAgICAgICBmb3IoaT0wO2k8cGVzdGFuYXNOLmxlbmd0aDtpKyspIHsKICAgICAgICAgICAg ICAgICAgICAgICAgaWYocGVzdGFuYXNOW2ldLmlkLmluZGV4T2YoaWQgKyAiLXBlc3RhbmEtIikgPT0g MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHBlc3RhbmFzTltpXS5pZCA9PSBp ZCArICItcGVzdGFuYS0iICsgbnVtKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGVzdGFuYXNOW2ldLmNsYXNzTmFtZSA9ICJhY3RpdmEiOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlc3Rh bmFzTltpXS5jbGFzc05hbWUgPSAiIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyoqKioqKioqIE1PRFVMT1MgTUVUSE9ERSAgKioqKioq KiovCQoKCS8qKioqKioqKioqKiogQUpBWCAqKioqKioqKioqLwoJCglmdW5jdGlvbiBjcmVhdGVSZXF1 ZXN0T2JqZWN0KCkgewoJCXZhciBybzsKCQl2YXIgYnJvd3NlciA9IG5hdmlnYXRvci5hcHBOYW1lOwoJ CQoJCWlmKGJyb3dzZXIgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpewoJCQlybyA9IG5l dyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpOwoJCX0KCQllbHNlewoJCQlybyA9IG5l dyBYTUxIdHRwUmVxdWVzdCgpOwoJCX0KCQlyZXR1cm4gcm87Cgl9ICAKCQoJLyoqKioqKioqKioqKiBG SU4gQUpBWCAqKioqKioqKioqLwoKCgpmdW5jdGlvbiB2b3RhcnRpY3VsbyhwdW50b3MpIHsKCQkKCQl2 YXIgZGlyZWNjaW9uOwoJCQoJCWlmICh3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZi5pbmRleE9m KCc/JykgPiAwKSB7CgkJCXZhciBjYW1wb3MgPSB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZi5z cGxpdCgnPycpOwoJCQlkaXJlY2Npb24gPSBjYW1wb3NbMF07CgkJfQoJCWVsc2UgewoJCQlkaXJlY2Np b24gPSB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZjsKCQl9CQoJCQoJCXZhciBodHRwID0gY3Jl YXRlUmVxdWVzdE9iamVjdCgpOwoJCWh0dHAub3BlbigiZ2V0IiwgIi9iYWNrZW5kL3ZvdGFjaW9uZXMv dm90YXIucGhwP3B1bnRvcz0iICsgcHVudG9zICsgIiZ1cmw9IiArIGRpcmVjY2lvbiArICImcj0iICsg TWF0aC5yYW5kb20oKSk7CgkJaHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CgkJ CWlmKGh0dHAucmVhZHlTdGF0ZSA9PSA0KXsKCQkJCWlmIChodHRwLnJlc3BvbnNlVGV4dCkgewoJCQkJ CWdyYWNpYXMgPSAiPGRpdiBjbGFzcz1sYWJlbD5HcmFjaWFzIHBvciB2b3RhcjwvZGl2PiI7CgkJCQkJ ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRlbmlkb2VzdHJlbGxhcycpLmlubmVySFRNTCA9IGdy YWNpYXM7CgkJCQkJZ2V0RXN0cmVsbGFzKCk7CgkJCQkJZ2V0Vm90b3MoKTsKCQkJCQkJCgkJCQl9CgkJ CX0JCgkJfTsKCQlodHRwLnNlbmQobnVsbCk7CQkKCX0KCQoJZnVuY3Rpb24gZ2V0RXN0cmVsbGFzKCkg ewoJCQoJCXZhciBkaXJlY2Npb247CgkJCgkJaWYgKHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVm LmluZGV4T2YoJz8nKSA+IDApIHsKCQkJdmFyIGNhbXBvcyA9IHdpbmRvdy5kb2N1bWVudC5sb2NhdGlv bi5ocmVmLnNwbGl0KCc/Jyk7CgkJCWRpcmVjY2lvbiA9IGNhbXBvc1swXTsKCQl9CgkJZWxzZSB7CgkJ CWRpcmVjY2lvbiA9IHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmOwoJCX0KCQkKCQl2YXIgaHR0 cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKCQlodHRwLm9wZW4oImdldCIsICIvYmFja2VuZC92b3Rh Y2lvbmVzL2VzdHJlbGxhcy5waHA/dXJsPSIgKyBkaXJlY2Npb24pOwoJCWh0dHAub25yZWFkeXN0YXRl Y2hhbmdlID0gZnVuY3Rpb24gKCkgewoJCQlpZihodHRwLnJlYWR5U3RhdGUgPT0gNCl7CgkJCQlpZiAo aHR0cC5yZXNwb25zZVRleHQpIHsKCQkJCQl2YXIgZXN0cmVsbGFzID0gaHR0cC5yZXNwb25zZVRleHQ7 CgkJCQkJCgkJCQkJaWYgKGVzdHJlbGxhcy5pbmRleE9mKCIuIikpIHsKCQkJCgkJCQkJCWNhbXBvcyA9 IGVzdHJlbGxhcy5zcGxpdCgiLiIpOwoJCQkJCQllc3RyZWxsYXMgPSBjYW1wb3NbMF07CQoJCQkJCQl2 YXIgbWVkaWEgPSAoY2FtcG9zWzFdID4gMCkgPyAxIDogMDsKCQkJCQl9CgkJCQkJCgkJCQkJdmFyIGNv bnRlbmlkbyA9ICcnOwoJCQkJCQoJCQkJCWZvciAoaSA9IDA7IGkgPCBlc3RyZWxsYXM7IGkrKykgewoJ CQkJCQljb250ZW5pZG8gKz0gJzxpbWcgc3JjPSIvaW1nL3N0YXJfb24uZ2lmIiBhbHQ9IicgKyBpICsn IHZvdG9zIiAvPic7CgkJCQkJfQoJCQkJCQoJCQkJCWlmIChtZWRpYSA9PSAxKSB7CgkJCQkJCWNvbnRl bmlkbyArPSAnPGltZyBzcmM9Ii9pbWcvc3Rhcl9vbl9tZC5naWYiIGFsdD0iJyArIGVzdHJlbGxhcyAr JyB2b3RvcyIgLz4nOwoJCQkJCQllc3RyZWxsYXMrKzsKCQkJCQl9CgkJCQkJCgkJCQkJZm9yIChpID0g ZXN0cmVsbGFzOyBpIDwgNTsgaSsrKSB7CgkJCQkJCWNvbnRlbmlkbyArPSAnPGltZyBzcmM9Ii9pbWcv c3Rhcl9vZmYuZ2lmIiBhbHQ9IicgKyBpICsnIHZvdG9zIiAvPic7CQoJCQkJCX0KCQkJCQkKCQkJCQl3 aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdGFkb3Mtdm90b3MnKS5pbm5lckhUTUwg PSBjb250ZW5pZG87CgkJCQkJCQoJCQkJfQoJCQl9CQoJCX07CgkJaHR0cC5zZW5kKG51bGwpOwoJCQkK CX0KCQoJZnVuY3Rpb24gZ2V0Vm90b3MoKSB7CgkJCgkJdmFyIGRpcmVjY2lvbjsKCQkKCQlpZiAod2lu ZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuaW5kZXhPZignPycpID4gMCkgewoJCQl2YXIgY2FtcG9z ID0gd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKTsKCQkJZGlyZWNjaW9uID0g Y2FtcG9zWzBdOwoJCX0KCQllbHNlIHsKCQkJZGlyZWNjaW9uID0gd2luZG93LmRvY3VtZW50LmxvY2F0 aW9uLmhyZWY7CgkJfQoJCQoJCXZhciBodHRwID0gY3JlYXRlUmVxdWVzdE9iamVjdCgpOwoJCS8vaHR0 cC5vcGVuKCJnZXQiLCAiL2JhY2tlbmQvdm90YWNpb25lcy92b3Rvcy5waHA/dXJsPSIgKyBkaXJlY2Np b24gKyImcj0iICsgTWF0aC5yYW5kb20oKSk7CgkJaHR0cC5vcGVuKCJnZXQiLCAiL2JhY2tlbmQvdm90 YWNpb25lcy92b3Rvcy5waHA/dXJsPSIgKyBkaXJlY2Npb24pOwoJCWh0dHAub25yZWFkeXN0YXRlY2hh bmdlID0gZnVuY3Rpb24gKCkgewoJCQlpZihodHRwLnJlYWR5U3RhdGUgPT0gNCl7CgkJCQlpZiAoaHR0 cC5yZXNwb25zZVRleHQpIHsKCQkJCQl2YXIgdm90b3MgPSBodHRwLnJlc3BvbnNlVGV4dDsKCQkJCQlp ZiAodm90b3MgPT0gMSkgewoJCQkJCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ251bXZv dG9zLXZvdG9zJykuaW5uZXJIVE1MID0gdm90b3MgKyAnIHZvdG8nOwoJCQkJCX0KCQkJCQllbHNlIHsK CQkJCQkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW12b3Rvcy12b3RvcycpLmlubmVy SFRNTCA9IHZvdG9zICsgJyB2b3Rvcyc7CgkJCQkJfQoJCQkJfQoJCQl9CQoJCX07CgkJaHR0cC5zZW5k KG51bGwpOwoJCQkKCX0KCgl2YXIgaHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBodHRwLm9wZW4oJ2dldCcsICcvYWNjZXNvLnBo cD9wYWc9JyArIHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmICsgJyZyZXNvbHVjaW9uPScgKyBz Y3JlZW4ud2lkdGggKyAneCcgKyBzY3JlZW4uaGVpZ2h0ICsgJyZyPScgKyBNYXRoLnJhbmRvbSgpKTsK ICAgICAgICBodHRwLnNlbmQobnVsbCk7CgoJLyoqKioqKioqKioqKiBDT09LSUVTICoqKioqKioqKioq LwoKICAgICAgICBmdW5jdGlvbiBzZXRDb29raWUobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRv bWFpbiwgc2VjdXJlKSB7CiAgICAgICAgICAgICAgICB2YXIgY3VyQ29va2llID0gbmFtZSArICI9IiAr IGVzY2FwZSh2YWx1ZSkgKyAoKGV4cGlyZXMpID8gIjsgZXhwaXJlcz0iICsgZXhwaXJlcyA6ICIiKSAr ICgocGF0aCkgPyAiOyBwYXRoPSIgKyBwYXRoIDogIiIpICsgKChkb21haW4pID8gIjsgZG9tYWluPSIg KyBkb21haW4gOiAiIikgKyAoKHNlY3VyZSkgPyAiOyBzZWN1cmUiIDogIiIpOwogICAgICAgICAgICAg ICAgZG9jdW1lbnQuY29va2llID0gY3VyQ29va2llOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24g Z2V0Q29va2llKG5hbWUpIHsKICAgICAgICAgICAgICAgIHZhciBkYyA9IGRvY3VtZW50LmNvb2tpZTsK ICAgICAgICAgICAgICAgIHZhciBwcmVmaXggPSBuYW1lICsgIj0iOwogICAgICAgICAgICAgICAgdmFy IGJlZ2luID0gZGMuaW5kZXhPZigiOyAiICsgcHJlZml4KTsKICAgICAgICAgICAgICAgIGlmIChiZWdp biA9PSAtMSkgewogICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGRjLmluZGV4T2YocHJlZml4 KTsKICAgICAgICAgICAgICAgIGlmIChiZWdpbiAhPSAwKSByZXR1cm4gbnVsbDsKICAgICAgICAgICAg ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiArPSAyOwogICAgICAgICAgICAg ICAgdmFyIGVuZCA9IGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCI7IiwgYmVnaW4pOwogICAgICAgICAg ICAgICAgaWYgKGVuZCA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gZGMubGVuZ3Ro OwogICAgICAgICAgICAgICAgcmV0dXJuIHVuZXNjYXBlKGRjLnN1YnN0cmluZyhiZWdpbiArIHByZWZp eC5sZW5ndGgsIGVuZCkpOwogICAgICAgIH0KCiAgICAgICAgLyoqKioqKioqKioqKiBGSU4gQ09PS0lF UyAqKioqKioqKioqKi8KCgpmdW5jdGlvbiBwcmVzZW50YXJ0aWNrZXIoY2FwYSl7CiAgICAgICAgZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RpY2tlcmVjb25vbWlhb2ZmJykuc3R5bGUuZGlzcGxheSA9ICdu b25lJzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGlja2VyZWNvbm9taWEnKS5zdHls ZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKfQoKZnVuY3Rpb24gdGllbmRhKG1vZHVsbyxtYXhpbW8pewogICAg ICAgICAgICAgICAgZm9yIChpcSA9IDE7IGlxIDwgbWF4aW1vKzE7IGlxKyspIHsKICAgICAgICAgICAg ICAgICAgICAgICAgYmxvcXVlID0gIm1vZHVsb3RpZW5kYSIgKyBpcTsKICAgICAgICAgICAgICAgICAg ICAgICAgLy9hbGVydCgnb2N1bHRvICcgKyBibG9xdWUpOwogICAgICAgICAgICAgICAgICAgICAgICBk b2N1bWVudC5nZXRFbGVtZW50QnlJZChibG9xdWUpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAg ICAgICAgICAgICB9CiAgICAgICAKICAgICAgICAgICAgICAgIHByZXNlbnRhciA9ICJtb2R1bG90aWVu ZGEiICsgbW9kdWxvOwogICAgICAgICAgICAgICAgLy9hbGVydCgncHJlc2VudG8gJyArIHByZXNlbnRh ciApOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJlc2VudGFyKS5zdHls ZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgICAgIAoJfQoKLyoqKioqKioqKioqKiBURVhUTElOSyAqKioq KioqKioqKi8KCmZ1bmN0aW9uIGFjdGl2YVRleHRMaW5rKCl7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0 aW9uKCkgewppZiggJCgiI3B1YmxpRXNwZWNpYWwiKS5jc3MoImRpc3BsYXkiKSA9PSAnbm9uZScgKSB7 CiQoIiNwdWJsaUVzcGVjaWFsIikuY3NzKCJkaXNwbGF5IiwiIik7Cn0KfSk7Cn0KCi8qKioqKioqKioq KiogRklOIFRFWFRMSU5LICoqKioqKioqKioqLwo= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.tus-fotos.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIFRVU0ZPVE9TID0ge307CgpUVVNGT1RPUy5mb3RvR2FsZXJpYSA9IGZ1bmN0aW9uKGZpY2hJbmNs dWRlLCBlZGljaW9uKSB7CgkKCWNhdGVnb3JpYUF1eCA9IGZpY2hJbmNsdWRlLnJlcGxhY2UoJ2MtJywg JycpOwoJY2F0ZWdvcmlhID0gZmljaEluY2x1ZGUucmVwbGFjZSgnYy0nLCAnJyk7CglkYXRvcyA9IGNh dGVnb3JpYS5zcGxpdCgiLSIpOwoJdmFyIGNhdGVnb3JpYSA9ICcnOwoJZm9yKGk9MDsgaTxkYXRvcy5s ZW5ndGg7IGkrKykgewoJCWlmKGlzTmFOKGRhdG9zW2ldKSB8fCBkYXRvc1tpXSA+IDEwKSB7CgkJCWlm KGNhdGVnb3JpYSAhPSAnJykgCgkJCQljYXRlZ29yaWEgPSBjYXRlZ29yaWEgKyAiLSIgKyBkYXRvc1tp XTsKCQkJZWxzZQoJCQkJY2F0ZWdvcmlhID0gZGF0b3NbaV07CgkJfQoJfQoJaWYoY2F0ZWdvcmlhID09 ICcnKSB7CgkJY2F0ZWdvcmlhID0gY2F0ZWdvcmlhQXV4LnN1YnN0cigxKTsKCX0KCWlmKGVkaWNpb24g IT0gbnVsbCAmJiBlZGljaW9uICE9ICcnKSB7CgkJJCgiI3JkLVRVU0ZPVE9TLSIgKyBjYXRlZ29yaWEp LmxvYWQoIi9pbmNsdWRlc19lZS9wYXJ0aWNpcGFjaW9uLyIgKyBlZGljaW9uICsgIi90dXMtZm90b3Mv IiArIGZpY2hJbmNsdWRlICsgIi5odG1sIik7Cgl9IGVsc2UgewoJCSQoIiNyZC1UVVNGT1RPUy0iICsg Y2F0ZWdvcmlhKS5sb2FkKCIvaW5jbHVkZXNfZWUvcGFydGljaXBhY2lvbi90dXMtZm90b3MvIiArIGZp Y2hJbmNsdWRlICsgIi5odG1sIik7Cgl9Cn0KClRVU0ZPVE9TLnZpZGVvR2FsZXJpYSA9IGZ1bmN0aW9u KGZpY2hJbmNsdWRlLCBlZGljaW9uKSB7CgkKCWNhdGVnb3JpYUF1eCA9IGZpY2hJbmNsdWRlLnJlcGxh Y2UoJ2MtdHVzLXZpZGVvcycsICcnKTsKCWNhdGVnb3JpYSA9IGZpY2hJbmNsdWRlLnJlcGxhY2UoJ2Mt dHVzLXZpZGVvcycsICcnKTsKCWRhdG9zID0gY2F0ZWdvcmlhLnNwbGl0KCItIik7CgljYXRlZ29yaWEg PSAnJzsKCWZvcihpPTA7IGk8ZGF0b3MubGVuZ3RoOyBpKyspIHsKCQlpZihpc05hTihkYXRvc1tpXSkg fHwgZGF0b3NbaV0gPiAxMCkgewoJCQlpZihjYXRlZ29yaWEgIT0gJycpIAoJCQkJY2F0ZWdvcmlhID0g Y2F0ZWdvcmlhICsgIi0iICsgZGF0b3NbaV07CgkJCWVsc2UKCQkJCWNhdGVnb3JpYSA9IGRhdG9zW2ld OwoJCX0KCX0KCWlmKGNhdGVnb3JpYSA9PSAnJykgewoJCWNhdGVnb3JpYSA9IGNhdGVnb3JpYUF1eC5z dWJzdHIoMSk7Cgl9CglpZihlZGljaW9uICE9IG51bGwgJiYgZWRpY2lvbiAhPSAnJykgewoJCSQoIiNy ZC1UVVNWSURFT1MtIiArIGNhdGVnb3JpYSkubG9hZCgiL2luY2x1ZGVzX2VlL3BhcnRpY2lwYWNpb24v IiArIGVkaWNpb24gKyAiL3ZpZGVvcy8iICsgZmljaEluY2x1ZGUgKyAiLmh0bWwiKTsKCX0gZWxzZSB7 CgkJJCgiI3JkLVRVU1ZJREVPUy0iICsgY2F0ZWdvcmlhKS5sb2FkKCIvaW5jbHVkZXNfZWUvcGFydGlj aXBhY2lvbi92aWRlb3MvIiArIGZpY2hJbmNsdWRlICsgIi5odG1sIik7Cgl9Cn0= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.tiempo.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIEFfQ29ydW5uYSA9IG5ldyBBcnJheSgnQmV0YW56b3MnLCAnRmVycm9sJywgJ0xhIENvcnXxYScs ICdOb2lhJywgJ1BhZHLzbicsICdTYW50aWFnbycpOwp2YXIgQWxhdmEgPSBuZXcgQXJyYXkoJ0FtdXJy aW8nLCAnTGFiYXN0aWRhJywgJ0xhdWRpbycsICdPafNuJywgJ1NhbHZhdGllcnJhJywgJ1ZpdG9yaWEg LSBHYXN0ZWl6Jyk7CnZhciBBbGJhY2V0ZSA9IG5ldyBBcnJheSgnQWxiYWNldGUnLCAnQWxtYW5zYScs ICdIZWxs7W4nKTsKdmFyIEFsaWNhbnRlID0gbmV3IEFycmF5KCdBbGNvaScsICdBbGljYW50ZScsICdB bHRlYScsICdCZW5pZG9ybScsICdDYWxwZScsICdEZW5pYScsICdFbGRhJywgJ0VseCcsICdK4XZlYScs ICdMYSBWaWxhIEpvaW9zYScsICdPcmlodWVsYScsICdTYW50YSBQb2xhJywgJ1RvcnJldmllamEnKTsK dmFyIEFsbWVyaWEgPSBuZXcgQXJyYXkoJ0FkcmEnLCAnQWxtZXLtYScsICdDYWJvIEdhdGEnLCAnTW9q 4WNhcicsICdSb3F1ZXRhcycsICdWZXJhJyk7CnZhciBBc3R1cmlhcyA9IG5ldyBBcnJheSgnQXZpbOlz JywgJ0NhbmdhcyBkZSBOYXJjZWEnLCAnR2lq824nLCAnTGxhbmVzJywgJ0x1YXJjYScsICdPdmllZG8n LCAnUGljb3MgZGUgRXVyb3BhJywgJ1JpYmFkZXNlbGxhJyk7CnZhciBBdmlsYSA9IG5ldyBBcnJheSgn wXZpbGEnKTsKdmFyIEJhZGFqb3ogPSBuZXcgQXJyYXkoJ0FsbWVuZHJhbGVqbycsICdCYWRham96Jywg J0RvbiBCZW5pdG8nLCAnSmVyZXogZGUgbG9zIEMuJywgJ01lcmlkYScsICdWaWxsYW51ZXZhJywgJ1ph ZnJhJyk7CnZhciBCYWxlYXJlcyA9IG5ldyBBcnJheSgnQWxjdWRpYScsICdBbmRyYXR4JywgJ0FydOEn LCAnQ2FsdmnhJywgJ0NpdXRhZGVsbGEnLCAnRGVp4ScsICdGZWxhbml0eCcsICdJYml6YScsICdJbmNh JywgJ0xsdWNtYWpvcicsICdNYWxsb3JjYScsICdNYW5hY29yJywgJ01h8ycsICdQb2xsZW7nYScsICdT YW4gQW50b25pbycsICdTYW50YSBFdWxhbGlhJywgJ1NvbGxlcicpOwp2YXIgQmFyY2Vsb25hID0gbmV3 IEFycmF5KCdCYXJjZWxvbmEnLCAnQ2FsZWxsYScsICdHcmFub2xsZXJzJywgJ0lndWFsYWRhJywgJ01h dGFy8ycsICdTYWJhZGVsbCcsICdTaXRnZXMnLCAnVGVycmFzc2EnLCAnVmljJywgJ1ZpbGFmcmFuY2En LCAnVmlsYW5vdmEnKTsKdmFyIEJpemthaWEgPSBuZXcgQXJyYXkoJ0JhbG1hc2VkYScsICdCZXJtZW8n LCAnQmlsYmFvJywgJ0R1cmFuZ28nLCAnRXJtdWEnLCAnR2VybmlrYS1MdW1vJywgJ0f8ZfFlcycsICdM ZWtlaXRpbycsICdNdW5n7WEnLCAnT25kYXJyb2EnLCAnT3JkdfFhJywgJ09ydHVlbGxhJywgJ1VyaWJl LUtvc3RhJywgJ1pvcm5vdHphJyk7CnZhciBCdXJnb3MgPSBuZXcgQXJyYXkoJ0FyYW5kYScsICdCdXJn b3MnLCAnTWlyYW5kYScpOwp2YXIgQ2FjZXJlcyA9IG5ldyBBcnJheSgnQ+FjZXJlcycsICdQbGFzZW5j aWEnLCAnVHJ1amlsbG8nKTsKdmFyIENhZGl6ID0gbmV3IEFycmF5KCdBbGdlY2lyYXMnLCAnQ+FkaXon LCAnQ2hpY2xhbmEnLCAnR3JhemFsZW1hJywgJ0plcmV6JywgJ0xhIExpbmVhJywgJ1NhbiBGZXJuYW5k bycsICdTYW5s+mNhcicsICdUYXJpZmEnKTsKdmFyIENhbnRhYnJpYSA9IG5ldyBBcnJheSgnQXJyZWRv bmRvJywgJ0Nhc3RybycsICdDb21pbGxhcycsICdMYXJlZG8nLCAnTm9qYScsICdQb3RlcycsICdQdWVu dGUgVmllc2dvJywgJ1JlaW5vc2EnLCAnU2FuIFZpY2VudGUgZGUgbGEgQmFycXVlcmEnLCAnU2FudGFu ZGVyJywgJ1NhbnRpbGxhbmEnLCAnU3VhbmNlcycsICdUb3JyZWxhdmVnYScpOwp2YXIgQ2FzdGVsbG9u ID0gbmV3IEFycmF5KCdCZW5pY2Fzc2ltJywgJ0Nhc3RlbGzzbicsICdPcm9wZXNhJywgJ1Bl8WlzY29s YScsICdWaW5hcm9zJyk7CnZhciBDZXV0YSA9IG5ldyBBcnJheSgnQ2V1dGEnKTsKdmFyIENpdWRhZF9S ZWFsID0gbmV3IEFycmF5KCdBbGNhemEgUy5KLicsICdBbG1hZ3JvJywgJ0NpdWRhZCBSZWFsJywgJ1Zh bGRlcGXxYXMnKTsKdmFyIENvcmRvYmEgPSBuZXcgQXJyYXkoJ0PzcmRvYmEnLCAnTHVjZW5hJywgJ01v bnRpbGxhJywgJ1BhbG1hIGRlbCBS7W8nKTsKdmFyIEN1ZW5jYSA9IG5ldyBBcnJheSgnQ3VlbmNhJywg J1RhcmFuY/NuJyk7CnZhciBHaXB1emtvYSA9IG5ldyBBcnJheSgnQW5kb2FpbicsICdBcnJhc2F0ZScs ICdBenBlaXRpYScsICdCZWFzYWluJywgJ0JlcmdhcmEnLCAnRG9ub3N0aWEnLCAnRWliYXInLCAnSG9u ZGFycmliaWEnLCAnSXL6bicsICdMYXNhcnRlJywgJ0xlZ2F6cGknLCAnT2lhcnR6dW4nLCAnT/FhdGkn LCAnT3JkaXppYScsICdUb2xvc2EnLCAnWmFyYXV0eicsICdadW1haWEnLCAnWnVt4XJyYWdhJyk7CnZh ciBHaXJvbmEgPSBuZXcgQXJyYXkoJ0JsYW5lcycsICdDYWRhcXXpcycsICdGaWd1ZXJlcycsICdHaXJv bmEnLCAnTGxvcmV0JywgJ1BhbGFt83MnLCAnUHVpZ2NlcmThJywgJ1NhbnQgRmVsaXUgZGUgR3VpeG9s cycpOwp2YXIgR3JhbmFkYSA9IG5ldyBBcnJheSgnQWxtdfHpY2FyJywgJ0JhemEnLCAnR3JhbmFkYScs ICdHdWFkaXgnLCAnTW90cmlsJywgJ05ldmFkYScsICdTaWVycmEnKTsKdmFyIEd1YWRhbGFqYXJhID0g bmV3IEFycmF5KCdHdWFkYWxhamFyYScpOwp2YXIgSHVlbHZhID0gbmV3IEFycmF5KCdBeWFtb250ZScs ICdIdWVsdmEnLCAnVXRlcmEnKTsKdmFyIEh1ZXNjYSA9IG5ldyBBcnJheSgnQmFyYmFzdHJvJywgJ0Jl bmFzcXVlJywgJ0JpZWxzYScsICdGcmFnYScsICdIdWVzY2EnLCAnSmFjYScsICdNb256824nLCAnU2Fi afHhbmlnbycsICdTYWxsZW50Jyk7CnZhciBKYWVuID0gbmV3IEFycmF5KCdBbmT6amFyJywgJ0JhZXph JywgJ0Nhem9ybGEnLCAnSmHpbicsICdMaW5hcmVzJywgJ9piZWRhJyk7CnZhciBMYV9SaW9qYSA9IG5l dyBBcnJheSgnQWxmYXJvJywgJ0FybmVkbycsICdDYWxhaG9ycmEnLCAnRXpjYXJheScsICdIYXJvJywg J0xvZ3Jv8W8nLCAnTuFqZXJhJywgJ1N0by4gRG9taW5nbycpOwp2YXIgTGFzX1BhbG1hcyA9IG5ldyBB cnJheSgnRnVlcnRldmVudHVyYScsICdMYW56YXJvdGUnLCAnTGFzIFBhbG1hcycpOwp2YXIgTGVvbiA9 IG5ldyBBcnJheSgnQXN0b3JnYScsICdMZfNuJywgJ1BvbmZlcnJhZGEnKTsKdmFyIExsZWlkYSA9IG5l dyBBcnJheSgnTGxlaWRhJywgJ1NldSBktFVyZ2VsbCcsICdUYXJyZWfhJyk7CnZhciBMdWdvID0gbmV3 IEFycmF5KCdMdWdvJywgJ01vbmZvcnRlIGRlIExlbW9zJywgJ1JpYmFkZW8nKTsKdmFyIE1hZHJpZCA9 IG5ldyBBcnJheSgnQWxjYWzhJywgJ0FyYW5qdWV6JywgJ0JydW5ldGUnLCAnQnVpdHJhZ28nLCAnQ29s bGFkbyBWaWxsYWxiYScsICdDb2xtZW5hcicsICdFbCBFc2NvcmlhbCcsICdHZXRhZmUnLCAnTWFkcmlk JywgJ01hamFkYWhvbmRhJywgJ03zc3RvbGVzJywgJ05hdmFjZXJyYWRhJywgJ1BhcmxhJywgJ1BvenVl bG8nLCAnUi4gQ2hhdmVsYScsICdUb3JyZWrzbicpOwp2YXIgTWFsYWdhID0gbmV3IEFycmF5KCdBbnRl cXVlcmEnLCAnQmVuYWxt4WRlbmEnLCAnRXN0ZXBvbmEnLCAnTeFsYWdhJywgJ01hcmJlbGxhJywgJ01p amFzJywgJ05lcmphJywgJ1JvbmRhJywgJ1RvcnJlbW9saW5vcycpOwp2YXIgTWVsaWxsYSA9IG5ldyBB cnJheSgnTWVsaWxsYScpOwp2YXIgTXVyY2lhID0gbmV3IEFycmF5KCdBZ3VpbGFzJywgJ0NhcmF2YWNh JywgJ0NhcnRhZ2VuYScsICdKdW1pbGxhJywgJ0xhIE1hbmdhJywgJ0xvcmNhJywgJ0xvcyBBbGPhemFy ZXMnLCAnTWF6YXJy824nLCAnTXVsYScsICdNdXJjaWEnLCAnU2FuIEphdmllcicsICdZZWNsYScpOwp2 YXIgTmF2YXJyYSA9IG5ldyBBcnJheSgnQW9peicsICdFc3RlbGxhJywgJ0lzYWJhJywgJ0xlaXphJywg J0xlc2FrYScsICdQYW1wbG9uYScsICdSb25jZXN2YWxsZXMnLCAnU2FuZ/xlc2EnLCAnVGFmYWxsYScs ICdUdWRlbGEnKTsKdmFyIE91cmVuc2UgPSBuZXcgQXJyYXkoJ091cmVuc2UnLCAnVmVy7W4nKTsKdmFy IFBhbGVuY2lhID0gbmV3IEFycmF5KCdQYWxlbmNpYScpOwp2YXIgUG9udGV2ZWRyYSA9IG5ldyBBcnJh eSgnQmFpb25hJywgJ0NhbWJhZG9zJywgJ08gR3JvdmUnLCAnUG9udGV2ZWRyYScsICdUdWknLCAnVmln bycsICdWaWxhZ2FyY+1hIGRlIEFyb3VzYScpOwp2YXIgU2FsYW1hbmNhID0gbmV3IEFycmF5KCdC6Wph cicsICdDaXVkYWQgUm9kcmlnbycsICdTYWxhbWFuY2EnKTsKdmFyIFNhbnRhX0NydXpfZGVfVGVuZXJp ZmUgPSBuZXcgQXJyYXkoJ0dvbWVyYScsICdIaWVycm8nLCAnTGEgUGFsbWEnLCAnU2FudGEgQ3J1eics ICdUZW5lcmlmZSBDZW50cm8nLCAnVGVuZXJpZmUgU3VyJyk7CnZhciBTZWdvdmlhID0gbmV3IEFycmF5 KCdDdWVsbGFyJywgJ1NlZ292aWEnKTsKdmFyIFNldmlsbGEgPSBuZXcgQXJyYXkoJ0FsY2Fs4SBkZSBH dWFkYWlyYScsICdDYXJtb25hJywgJ0RvcyBIZXJtYW5hcycsICfJY2lqYScsICdTZXZpbGxhJywgJ1V0 cmVyYScpOwp2YXIgU29yaWEgPSBuZXcgQXJyYXkoJ0J1cmdvIGRlIE9zbWEnLCAnU29yaWEnKTsKdmFy IFRhcnJhZ29uYSA9IG5ldyBBcnJheSgnQ2FtYnJpbHMnLCAnUmV1cycsICdTYWxvdScsICdUYXJyYWdv bmEnLCAnVG9ydG9zYScpOwp2YXIgVGVydWVsID0gbmV3IEFycmF5KCdBbGJhcnJhY+1uJywgJ0FsY2Hx aXonLCAnQ2FsYW1vY2hhJywgJ1RlcnVlbCcpOwp2YXIgVG9sZWRvID0gbmV3IEFycmF5KCdUYWxhdmVy YSBkZSBsYSBSZWluYScsICdUb2xlZG8nKTsKdmFyIFZhbGVuY2lhID0gbmV3IEFycmF5KCdBbHppcmEn LCAnQ3VsbGVyYScsICdHYW5k7WEnLCAnT250aW55ZW50JywgJ1NhZ3VudCcsICdWYWxlbmNpYScsICdY YXRpdmEnKTsKdmFyIFZhbGxhZG9saWQgPSBuZXcgQXJyYXkoJ01lZGluYSBkZWwgQ2FtcG8nLCAnVmFs bGFkb2xpZCcpOwp2YXIgWmFtb3JhID0gbmV3IEFycmF5KCdCZW5hdmVudGUnLCAnVG9ybycsICdaYW1v cmEnKTsKdmFyIFphcmFnb3phID0gbmV3IEFycmF5KCdDYWxhdGF5dWQnLCAnQ2FzcGUnLCAnVGFyYXpv bmEnLCAnWmFyYWdvemEnKTsKCgpmdW5jdGlvbiBwb2JsYXIoKSB7Cgl2YXIgc2VsZWNjaW9uYWRvID0g d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm92aW5jaWEiKS5vcHRpb25zW3dpbmRvdy5k b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvdmluY2lhIikuc2VsZWN0ZWRJbmRleF0udmFsdWU7Cglp ZiAoc2VsZWNjaW9uYWRvICE9ICIiKSB7CgkJZXZhbCgncG9ibGFjaW9uZXMgPSAnICsgc2VsZWNjaW9u YWRvKTsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvY2FsaWRhZCIpLmxlbmd0aCA9 IHBvYmxhY2lvbmVzLmxlbmd0aCArIDE7CgkJb3B0aW9uID0gbmV3IE9wdGlvbigiU2VsZWNjaW9uZSBM b2NhbGlkYWQiLCIiKTsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvY2FsaWRhZCIp Lm9wdGlvbnNbMF0gPSBvcHRpb247CgkJZm9yIChpID0gMDsgaSA8IHBvYmxhY2lvbmVzLmxlbmd0aDsg aSsrKSB7CgkJCWV2YWwoJ29wdGlvbicgKyBpICsgJz0gbmV3IE9wdGlvbihcIicgKyBwb2JsYWNpb25l c1tpXSArICdcIiwgXCInICsgcG9ibGFjaW9uZXNbaV0gKyAnXCIpJyk7CgkJCWV2YWwoJ3dpbmRvdy5k b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9jYWxpZGFkIikub3B0aW9uc1tpICsgMV09b3B0aW9uJyAr IGkpOwkKCQl9CgkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2NhbGlkYWQiKS5zZWxl Y3RlZEluZGV4ID0gMDsKCX0KCWVsc2UgewoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi bG9jYWxpZGFkIikubGVuZ3RoID0gMTsKCQlvcHRpb24gPSBuZXcgT3B0aW9uKCJTZWxlY2Npb25lIExv Y2FsaWRhZCIsIiIpOwoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9jYWxpZGFkIiku b3B0aW9uc1swXSA9IG9wdGlvbjsgCgl9CgkJCn0KCmZ1bmN0aW9uIHBvYmxhcjIoKSB7Cgl2YXIgc2Vs ZWNjaW9uYWRvID0gd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm92aW5jaWEyIikub3B0 aW9uc1t3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb3ZpbmNpYTIiKS5zZWxlY3RlZElu ZGV4XS52YWx1ZTsKCWlmIChzZWxlY2Npb25hZG8gIT0gIiIpIHsKCQlldmFsKCdwb2JsYWNpb25lcyA9 ICcgKyBzZWxlY2Npb25hZG8pOwoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9jYWxp ZGFkMiIpLmxlbmd0aCA9IHBvYmxhY2lvbmVzLmxlbmd0aCArIDE7CgkJb3B0aW9uID0gbmV3IE9wdGlv bigiU2VsZWNjaW9uZSBMb2NhbGlkYWQiLCIiKTsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoImxvY2FsaWRhZDIiKS5vcHRpb25zWzBdID0gb3B0aW9uOwoJCWZvciAoaSA9IDA7IGkgPCBwb2Js YWNpb25lcy5sZW5ndGg7IGkrKykgewoJCQlldmFsKCdvcHRpb24nICsgaSArICc9IG5ldyBPcHRpb24o XCInICsgcG9ibGFjaW9uZXNbaV0gKyAnXCIsIFwiJyArIHBvYmxhY2lvbmVzW2ldICsgJ1wiKScpOwoJ CQlldmFsKCd3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvY2FsaWRhZDIiKS5vcHRpb25z W2kgKyAxXT1vcHRpb24nICsgaSk7CQoJCX0KCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo ImxvY2FsaWRhZDIiKS5zZWxlY3RlZEluZGV4ID0gMDsKCX0KCWVsc2UgewoJCXdpbmRvdy5kb2N1bWVu dC5nZXRFbGVtZW50QnlJZCgibG9jYWxpZGFkMiIpLmxlbmd0aCA9IDE7CgkJb3B0aW9uID0gbmV3IE9w dGlvbigiU2VsZWNjaW9uZSBMb2NhbGlkYWQiLCIiKTsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoImxvY2FsaWRhZDIiKS5vcHRpb25zWzBdID0gb3B0aW9uOyAKCX0KCQkKfQoKZnVuY3Rpb24g c2V0Q29va2llX3QobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlKSB7Cgl2 YXIgY3VyQ29va2llID0gbmFtZSArICI9IiArIGVzY2FwZSh2YWx1ZSkgKyAoKGV4cGlyZXMpID8gIjsg ZXhwaXJlcz0iICsgZXhwaXJlcyA6ICIiKSArICgocGF0aCkgPyAiOyBwYXRoPSIgKyBwYXRoIDogIiIp ICsgKChkb21haW4pID8gIjsgZG9tYWluPSIgKyBkb21haW4gOiAiIikgKyAoKHNlY3VyZSkgPyAiOyBz ZWN1cmUiIDogIiIpOwoJZG9jdW1lbnQuY29va2llID0gY3VyQ29va2llOwp9CiAgICAJCmZ1bmN0aW9u IGdldENvb2tpZV90KG5hbWUpIHsKCXZhciBkYyA9IGRvY3VtZW50LmNvb2tpZTsKCXZhciBwcmVmaXgg PSBuYW1lICsgIj0iOwoJdmFyIGJlZ2luID0gZGMuaW5kZXhPZigiOyAiICsgcHJlZml4KTsKCWlmIChi ZWdpbiA9PSAtMSkgewoJCWJlZ2luID0gZGMuaW5kZXhPZihwcmVmaXgpOwoJaWYgKGJlZ2luICE9IDAp IHJldHVybiBudWxsOwoJfSBlbHNlCgkJYmVnaW4gKz0gMjsKCXZhciBlbmQgPSBkb2N1bWVudC5jb29r aWUuaW5kZXhPZigiOyIsIGJlZ2luKTsKCWlmIChlbmQgPT0gLTEpCgkJZW5kID0gZGMubGVuZ3RoOwoJ cmV0dXJuIHVuZXNjYXBlKGRjLnN1YnN0cmluZyhiZWdpbiArIHByZWZpeC5sZW5ndGgsIGVuZCkpOwp9 CgpmdW5jdGlvbiB3aXRob3V0Q3V0ZXMoY2FkZW5hKSB7CgkKCWNhZGVuYSA9IGNhZGVuYS5yZXBsYWNl KC8gL2csICcnKTsKCWNhZGVuYSA9IGNhZGVuYS5yZXBsYWNlKC/hL2dpLCAnYScpOwoJY2FkZW5hID0g Y2FkZW5hLnJlcGxhY2UoL+kvZ2ksICdlJyk7CgljYWRlbmEgPSBjYWRlbmEucmVwbGFjZSgv7S9naSwg J2knKTsKCWNhZGVuYSA9IGNhZGVuYS5yZXBsYWNlKC/zL2dpLCAnbycpOwoJY2FkZW5hID0gY2FkZW5h LnJlcGxhY2UoL/ovZ2ksICd1Jyk7CgljYWRlbmEgPSBjYWRlbmEucmVwbGFjZSgv/C9naSwgJ3UnKTsK CWNhZGVuYSA9IGNhZGVuYS5yZXBsYWNlKC/xL2dpLCAnbm4nKTsKCWNhZGVuYSA9IGNhZGVuYS5yZXBs YWNlKC8tL2dpLCAnJyk7CgkKCXJldHVybiBjYWRlbmE7Cgp9CgoKZnVuY3Rpb24gYWN0dWFsaXphVGll bXBvKGNpdWRhZCwgdGlwbykgewoJCglpZiAoY2l1ZGFkKSB7CgkJY2l1ZGFkID0gd2l0aG91dEN1dGVz KGNpdWRhZC50b0xvd2VyQ2FzZSgpKTsKCQl2YXIgaHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsK CQlodHRwLm9wZW4oImdldCIsICIvaW5jbHVkZXMvbWFudWFsZXMvdGllbXBvL2luY2x1ZGVfIiArIGNp dWRhZCArICIueG1sP3I9IiArIE1hdGgucmFuZG9tKCkpOwoJCWh0dHAub25yZWFkeXN0YXRlY2hhbmdl ID0gZnVuY3Rpb24gKCkgewoJCQlpZihodHRwLnJlYWR5U3RhdGUgPT0gNCl7CgkJCQlpZiAoaHR0cC5y ZXNwb25zZVhNTCkgewoJCQkJCWNhbWJpYVRpZW1wbyhodHRwLnJlc3BvbnNlWE1MLCB0aXBvKTsKCQkJ CQkJCgkJCQl9CgkJCX0JCgkJfTsKCQlodHRwLnNlbmQobnVsbCk7Cgl9CQoJZWxzZSB7CgkJd2luZG93 LmFsZXJ0KCJQb3IgZmF2b3IsIHNlbGVjY2lvbmUgdW5hIGxvY2FsaWRhZC4iKTsKCQlyZXR1cm47CQkK CX0KfQoKZnVuY3Rpb24gY2FtYmlhVGllbXBvKHJlc3BvbnNlLCB0aXBvKSB7CglpZiAocmVzcG9uc2Up IHsKCQl2YXIgbG9jYWxpZGFkID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xvY2FsaWRh ZCcpLml0ZW0oMCkuZmlyc3RDaGlsZC5kYXRhOyAKCQl2YXIgbWFwYSA9IHJlc3BvbnNlLmdldEVsZW1l bnRzQnlUYWdOYW1lKCdtYXBhJykuaXRlbSgwKS5maXJzdENoaWxkLmRhdGE7CgkJCgkJLy8gRXN0byBl cyBwb3JxdWUgZWwgRXhwbG9yZXIgeSBlbCBGaXJlZm94IGludGVycHJldGFuIGRpc3RpbnRvIGVsIFhN TAoJCQoJCWlmIChyZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHJldmlzaW9uZXMnKS5pdGVt KDApLmNoaWxkTm9kZXMubGVuZ3RoID09IDEzKSB7CgkJCQoJCQl2YXIgdGllbXBvX2hveSA9IHJlc3Bv bnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGROb2Rlc1s3 XS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBlcmF0dXJhbWF4X2hveSA9 IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGRO b2Rlc1s3XS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBlcmF0dXJhbWlu X2hveSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCku Y2hpbGROb2Rlc1s3XS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuZGF0YTsKCQkJCgkJCXZhciBkaWFf bWFuYW5hID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZXZpc2lvbmVzJykuaXRlbSgw KS5jaGlsZE5vZGVzWzldLmNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZC5kYXRhOwoJCQl2YXIgdGllbXBv X21hbmFuYSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0o MCkuY2hpbGROb2Rlc1s5XS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBl cmF0dXJhbWF4X21hbmFuYSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25l cycpLml0ZW0oMCkuY2hpbGROb2Rlc1s5XS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJ dmFyIHRlbXBlcmF0dXJhbWluX21hbmFuYSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdw cmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGROb2Rlc1s5XS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQu ZGF0YTsKCQkJCgkJCXZhciBkaWFfcGFzYWRvID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUo J3ByZXZpc2lvbmVzJykuaXRlbSgwKS5jaGlsZE5vZGVzWzExXS5jaGlsZE5vZGVzWzFdLmZpcnN0Q2hp bGQuZGF0YTsKCQkJdmFyIHRpZW1wb19wYXNhZG8gPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFt ZSgncHJldmlzaW9uZXMnKS5pdGVtKDApLmNoaWxkTm9kZXNbMTFdLmNoaWxkTm9kZXNbM10uZmlyc3RD aGlsZC5kYXRhOwoJCQl2YXIgdGVtcGVyYXR1cmFtYXhfcGFzYWRvID0gcmVzcG9uc2UuZ2V0RWxlbWVu dHNCeVRhZ05hbWUoJ3ByZXZpc2lvbmVzJykuaXRlbSgwKS5jaGlsZE5vZGVzWzExXS5jaGlsZE5vZGVz WzVdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBlcmF0dXJhbWluX3Bhc2FkbyA9IHJlc3BvbnNl LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGROb2Rlc1sxMV0u Y2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmRhdGE7CgkJfQoJCWVsc2UgewoJCQl2YXIgdGllbXBvX2hv eSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hp bGROb2Rlc1szXS5jaGlsZE5vZGVzWzFdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBlcmF0dXJh bWF4X2hveSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0o MCkuY2hpbGROb2Rlc1szXS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBl cmF0dXJhbWluX2hveSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycp Lml0ZW0oMCkuY2hpbGROb2Rlc1szXS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFy IGRpYV9tYW5hbmEgPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHJldmlzaW9uZXMnKS5p dGVtKDApLmNoaWxkTm9kZXNbNF0uY2hpbGROb2Rlc1swXS5maXJzdENoaWxkLmRhdGE7CgkJCXZhciB0 aWVtcG9fbWFuYW5hID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZXZpc2lvbmVzJyku aXRlbSgwKS5jaGlsZE5vZGVzWzRdLmNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZC5kYXRhOwoJCQl2YXIg dGVtcGVyYXR1cmFtYXhfbWFuYW5hID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZXZp c2lvbmVzJykuaXRlbSgwKS5jaGlsZE5vZGVzWzRdLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5kYXRh OwoJCQl2YXIgdGVtcGVyYXR1cmFtaW5fbWFuYW5hID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05h bWUoJ3ByZXZpc2lvbmVzJykuaXRlbSgwKS5jaGlsZE5vZGVzWzRdLmNoaWxkTm9kZXNbM10uZmlyc3RD aGlsZC5kYXRhOwoJCQl2YXIgZGlhX3Bhc2FkbyA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1l KCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGROb2Rlc1s1XS5jaGlsZE5vZGVzWzBdLmZpcnN0Q2hp bGQuZGF0YTsKCQkJdmFyIHRpZW1wb19wYXNhZG8gPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFt ZSgncHJldmlzaW9uZXMnKS5pdGVtKDApLmNoaWxkTm9kZXNbNV0uY2hpbGROb2Rlc1sxXS5maXJzdENo aWxkLmRhdGE7CgkJCXZhciB0ZW1wZXJhdHVyYW1heF9wYXNhZG8gPSByZXNwb25zZS5nZXRFbGVtZW50 c0J5VGFnTmFtZSgncHJldmlzaW9uZXMnKS5pdGVtKDApLmNoaWxkTm9kZXNbNV0uY2hpbGROb2Rlc1sy XS5maXJzdENoaWxkLmRhdGE7CgkJCXZhciB0ZW1wZXJhdHVyYW1pbl9wYXNhZG8gPSByZXNwb25zZS5n ZXRFbGVtZW50c0J5VGFnTmFtZSgncHJldmlzaW9uZXMnKS5pdGVtKDApLmNoaWxkTm9kZXNbNV0uY2hp bGROb2Rlc1szXS5maXJzdENoaWxkLmRhdGE7CgkJfQoJCQoJCWlmICh0aXBvID09ICAwKSB7CgkJCXZh ciBjb250ZW5pZG8gPSAnPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5n PSIwIj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgICA8dHI+JzsKCQkJY29udGVuaWRvICs9ICcg ICAgICAgICAgICA8dGQgcm93c3Bhbj0iMyIgc2NvcGU9ImNvbCIgY2xhc3M9ImltYWdlbnRpZW1wbyI+ PGltZyBhbHQ9IiIgd2lkdGg9IjEwNiIgaGVpZ2h0PSI4MSIgc3JjPSInICsgbWFwYSArICciPjwvdGQ+ JzsKCQkJY29udGVuaWRvICs9ICcgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCI+JzsKCQkJY29udGVu aWRvICs9ICcgICAgICAgICAgICAgIDxzdHJvbmc+SG95PC9zdHJvbmc+JzsKCQkJY29udGVuaWRvICs9 ICcgICAgICAgICAgICA8L3RoPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPHRoIHNjb3Bl PSJjb2wiPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgICA8c3Ryb25nPicgKyBkaWFfbWFu YW5hICsgJzwvc3Ryb25nPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPC90aD4nOwoJCQlj b250ZW5pZG8gKz0gJyAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIj4nOwoJCQljb250ZW5pZG8gKz0g JyAgICAgICAgICAgICAgPHN0cm9uZz4nICsgZGlhX3Bhc2FkbyArICc8L3N0cm9uZz4nOwoJCQljb250 ZW5pZG8gKz0gJyAgICAgICAgICAgIDwvdGg+JzsKCQkJY29udGVuaWRvICs9ICcgICAgICAgICAgICA8 dGQgcm93c3Bhbj0iMyIgc2NvcGU9ImNvbCIgY2xhc3M9ImVubGFjZXRpZW1wbyI+JzsKCQkJY29udGVu aWRvICs9ICcgICAgICAgICAgICAgIDxwPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgICAg IDxhIGhyZWY9IiMiIG9uY2xpY2s9ImNhbWJpYXJMb2NhbGlkYWQoKSI+Q2FtYmlhcjxicj4nOwoJCQlj b250ZW5pZG8gKz0gJyAgICAgICAgICAgICAgICAgIGxvY2FsaWRhZDwvYT4nOwoJCQljb250ZW5pZG8g Kz0gJyAgICAgICAgICAgICAgPC9wPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgICA8ZGl2 IGNsYXNzPSJzZXBhcmEiPjwvZGl2Pic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgICA8cD4n OwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBvbmNsaWNrPSJpck1l dGVvKFwnJyArIGxvY2FsaWRhZCArICdcJykiPlZlcjxicj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAg ICAgICAgICAgICAgICAgcHJldmlzaSZvYWN1dGU7bjwvYT4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAg ICAgICAgICAgPC9wPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPC90ZD4nOwoJCQljb250 ZW5pZG8gKz0gJyAgICAgICAgICA8L3RyPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgIDx0cj4n OwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgICAgIDx0ZD48aW1nIHNyYz0iL2ltZy9tZXRlby8nICsg dGllbXBvX2hveSArICcuZ2lmIiBhbHQ9IiIgd2lkdGg9IjI5IiBoZWlnaHQ9IjIyIj48L3RkPic7CgkJ CWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPHRkPjxpbWcgc3JjPSIvaW1nL21ldGVvLycgKyB0aWVt cG9fbWFuYW5hICsgJy5naWYiIGFsdD0iIiB3aWR0aD0iMjkiIGhlaWdodD0iMjIiPjwvdGQ+JzsKCQkJ Y29udGVuaWRvICs9ICcgICAgICAgICAgICA8dGQ+PGltZyBzcmM9Ii9pbWcvbWV0ZW8vJyArIHRpZW1w b19wYXNhZG8gKyAnLmdpZiIgYWx0PSIiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyMiI+PC90ZD4nOwoJCQlj b250ZW5pZG8gKz0gJyAgICAgICAgICA8L3RyPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgIDx0 cj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgICAgIDx0ZCBjbGFzcz0idGVtcGVyYXR1cmEiPicg KyB0ZW1wZXJhdHVyYW1heF9ob3kgKyAnJm9yZG07IC8gJyArIHRlbXBlcmF0dXJhbWluX2hveSArICcm b3JkbTs8L3RkPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZW1wZXJh dHVyYSI+JyArIHRlbXBlcmF0dXJhbWF4X21hbmFuYSArICcmb3JkbTsgLyAnICsgdGVtcGVyYXR1cmFt aW5fbWFuYW5hICsgJyZvcmRtOzwvdGQ+JzsKCQkJY29udGVuaWRvICs9ICcgICAgICAgICAgICA8dGQg Y2xhc3M9InRlbXBlcmF0dXJhIj4nICsgdGVtcGVyYXR1cmFtYXhfcGFzYWRvICsgJyZvcmRtOyAvICcg KyB0ZW1wZXJhdHVyYW1pbl9wYXNhZG8gKyAnJm9yZG07PC90ZD4nOwoJCQljb250ZW5pZG8gKz0gJyAg ICAgICAgICA8L3RyPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICA8L3RhYmxlPic7CgkJCQoJCQl3 aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NpdWRhZCcpLmlubmVySFRNTCA9ICdlbiAnICsg bG9jYWxpZGFkOyAKCQl9CgkJZWxzZSB7CgkJCXZhciBjb250ZW5pZG8gPSAnPHRhYmxlIGJvcmRlcj0i MCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICA8 dHI+JzsKCQkJY29udGVuaWRvICs9ICcgICAgICA8dGQgcm93c3Bhbj0iMyIgc2NvcGU9ImNvbCIgY2xh c3M9ImltYWdlbnRpZW1wbyI+PGltZyBhbHQ9IiIgd2lkdGg9IjEwNiIgaGVpZ2h0PSI4MSIgaWQ9Im1h cGEiIHNyYz0iJyArIG1hcGEgKyAnIj48L3RkPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgPHRoIHNj b3BlPSJjb2wiPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICA8c3Ryb25nPkhveTwvc3Ryb25nPic7 CgkJCWNvbnRlbmlkbyArPSAnICAgICAgPC90aD4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgIDx0aCBz Y29wZT0iY29sIj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgPHN0cm9uZz4nICsgZGlhX21hbmFu YSArICc8L3N0cm9uZz4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgIDwvdGg+JzsKCQkJY29udGVuaWRv ICs9ICcgICAgIDx0aCBzY29wZT0iY29sIj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgPHN0cm9u Zz4nICsgZGlhX3Bhc2FkbyArICc8L3N0cm9uZz4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgIDwvdGg+ JzsKCQkJY29udGVuaWRvICs9ICcgICAgPC90cj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICA8dHI+JzsK CQkJY29udGVuaWRvICs9ICcgICAgICA8dGQ+PGltZyBzcmM9Ii9pbWcvbWV0ZW8vJyArIHRpZW1wb19o b3kgKyAnLmdpZiIgYWx0PSIiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyMiI+PC90ZD4nOwoJCQljb250ZW5p ZG8gKz0gJyAgICAgIDx0ZD48aW1nIHNyYz0iL2ltZy9tZXRlby8nICsgdGllbXBvX21hbmFuYSArICcu Z2lmIiBhbHQ9IiIgd2lkdGg9IjI5IiBoZWlnaHQ9IjIyIj48L3RkPic7CgkJCWNvbnRlbmlkbyArPSAn ICAgICAgPHRkPjxpbWcgc3JjPSIvaW1nL21ldGVvLycgKyB0aWVtcG9fcGFzYWRvICsgJy5naWYiIGFs dD0iIiB3aWR0aD0iMjkiIGhlaWdodD0iMjIiPjwvdGQ+JzsKCQkJY29udGVuaWRvICs9ICcgICAgPC90 cj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICA8dHI+JzsKCQkJY29udGVuaWRvICs9ICcgICAgICAgIDx0 ZCBjbGFzcz0idGVtcGVyYXR1cmEiPicgKyB0ZW1wZXJhdHVyYW1heF9ob3kgKyAnJm9yZG07IC8gJyAr IHRlbXBlcmF0dXJhbWluX2hveSArICcmb3JkbTs8L3RkPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAg ICA8dGQgY2xhc3M9InRlbXBlcmF0dXJhIj4nICsgdGVtcGVyYXR1cmFtYXhfbWFuYW5hICsgJyZvcmRt OyAvICcgKyB0ZW1wZXJhdHVyYW1pbl9tYW5hbmEgKyAnJm9yZG07PC90ZD4nOwoJCQljb250ZW5pZG8g Kz0gJyAgICAgICAgPHRkIGNsYXNzPSJ0ZW1wZXJhdHVyYSI+JyArIHRlbXBlcmF0dXJhbWF4X3Bhc2Fk byArICcmb3JkbTsgLyAnICsgdGVtcGVyYXR1cmFtaW5fcGFzYWRvICsgJyZvcmRtOzwvdGQ+JzsKCQkJ Y29udGVuaWRvICs9ICcgICAgPC90cj4nOwoJCQljb250ZW5pZG8gKz0gJyAgPC90YWJsZT4nOwoJCX0K CQkKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VsdGllbXBvLWRhdG9zJykuaW5uZXJI VE1MID0gY29udGVuaWRvOwoJCQoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWx0aWVt cG8tZGF0b3MnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoJ2VsdGllbXBvLXNlbGVjY2lvbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZScJCgkJCgkJ c2V0Q29va2llX3QoJ2NpdWRhZCcsIGxvY2FsaWRhZCwgJ1R1ZSwgMzEtRGVjLTIwMTAgMDA6MDA6MDAg R01UJyk7Cgl9CgkKfQoKCmZ1bmN0aW9uIGNhbWJpYXJMb2NhbGlkYWQoKSB7Cgl3aW5kb3cuZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoJ2VsdGllbXBvLWRhdG9zJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsK CXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWx0aWVtcG8tc2VsZWNjaW9uJykuc3R5bGUu ZGlzcGxheSA9ICdibG9jaycJCQp9CgpmdW5jdGlvbiBpck1ldGVvKGNpdWRhZCkgewoJCgljaXVkYWQg PSBnZXRDb29raWVfdCgnY2l1ZGFkJykgPyBnZXRDb29raWVfdCgnY2l1ZGFkJykgOiBjaXVkYWQ7CgkK CWlmIChjaXVkYWQpIHsKCQl2YXIgZGlyID0gZG9jdW1lbnQubG9jYXRpb24uaHJlZjsKCQljYW1wb3Mg PSBkaXIuc3BsaXQoIi8iKTsKCQljYW1wb3MyID0gY2FtcG9zWzJdLnNwbGl0KCIuIik7CgkJd2luZG93 LmxvY2F0aW9uID0gJ2h0dHA6Ly9jYW5hbG1ldGVvLicgKyBjYW1wb3MyWzFdICsgJy4nICsgY2FtcG9z MlsyXSsgIi9jaXVkYWQucGhwP2NpdWRhZD0iICsgZXNjYXBlKGNpdWRhZCk7CQoJfQp9CgpmdW5jdGlv biB0aWVuZUNvb2tpZSh0aXBvKSB7Cgl2YXIgY2l1ZGFkID0gZ2V0Q29va2llX3QoJ2NpdWRhZCcpOwoJ aWYgKGNpdWRhZCkgewoJCWFjdHVhbGl6YVRpZW1wbyhjaXVkYWQsIHRpcG8pOwoJfQkKfQoKCgoK ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/css/barranavegacion.css" Content-Type: text/css Content-Transfer-Encoding: base64 Content-ID: Ym9keXtwYWRkaW5nLWJvdHRvbTozN3B4IWltcG9ydGFudDt9DQojbWVuc2Vud2F0ew0KICBtYXJnaW46 IDA7DQogIGxlZnQ6MDsNCiAgYm90dG9tOiAwOw0KICB3aWR0aDogMTAwJTsNCiAgYmFja2dyb3VuZDp1 cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2lkX2ZvbmRvLmpwZykgcmVwZWF0LXgg dG9wOw0KICBtaW4taGVpZ2h0OjM2cHg7DQogIGhlaWdodDozNnB4Ow0KICB0ZXh0LWFsaWduOmNlbnRl cjsNCiAgcG9zaXRpb246Zml4ZWQ7DQogIHotaW5kZXg6OTk5OTk5OTk5Ow0KIA0KfQ0KKiBodG1sIGRp diNtZW5zZW53YXQgew0KcG9zaXRpb246YWJzb2x1dGU7DQpib3R0b206MHB4Ow0KbGVmdDogZXhwcmVz c2lvbiggKCAtMCAtIG1lbnNlbndhdC5vZmZzZXRXaWR0aCArICggZG9jdW1lbnQuZG9jdW1lbnRFbGVt ZW50LmNsaWVudFdpZHRoID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDogZG9j dW1lbnQuYm9keS5jbGllbnRXaWR0aCApICsgKCBpZ25vcmVNZTIgPSBkb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQuc2Nyb2xsTGVmdCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IDogZG9j dW1lbnQuYm9keS5zY3JvbGxMZWZ0ICkgKSArICdweCcgKTsNCiAgdG9wOiBleHByZXNzaW9uKCAoLW1l bnNlbndhdC5vZmZzZXRIZWlnaHQgKyAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWln aHQgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IDogZG9jdW1lbnQuYm9keS5j bGllbnRIZWlnaHQgKSArICggaWdub3JlTWUgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs VG9wID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA6IGRvY3VtZW50LmJvZHkuc2Ny b2xsVG9wICkgKSArICdweCcgKTsNCn0NCiNtZW5zZW53YXQgLmdlYnJ1aWtlcnsNCgltYXJnaW46IDAg YXV0bzsNCglwYWRkaW5nOjA7DQoJdGV4dC1hbGlnbjpsZWZ0Ow0KCXdpZHRoOjk5MHB4Ow0KCWZvbnQt ZmFtaWx5OkFyaWFsLCBzYW5zLXNlcmlmOw0KCWNvbG9yOiNGRkY7DQoJZm9udC1zaXplOjExcHg7DQoJ cG9zaXRpb246cmVsYXRpdmU7DQp9DQoNCiNnZWJydWlrZXJfc2hhZG93IHsNCmZvbnQtc2l6ZTowOw0K aGVpZ2h0OjFweDsNCndpZHRoOjEwMCU7DQp6LWluZGV4Ojk5OTk7DQpiYWNrZ3JvdW5kOnRyYW5zcGFy ZW50IHVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kvcy5wbmcpIHJlcGVhdC14IHNj cm9sbCB0b3A7DQpoZWlnaHQ6MTJweDsNCmxlZnQ6MDsNCnBvc2l0aW9uOmZpeGVkOw0KYm90dG9tOjMy cHg7DQp9DQoqIGh0bWwgI2dlYnJ1aWtlcl9zaGFkb3cgew0KIGRpc3BsYXk6bm9uZTsNCn0NCiNtZW5z ZW53YXQgLmdlYnJ1aWtlciBhe2NvbG9yOiNmZmY7IF9mbG9hdDpsZWZ0O30NCiNtZW5zZW53YXQgLmdl YnJ1aWtlciBoMywgI21lbnNlbndhdCAuZ2VicnVpa2VyIHAsICNtZW5zZW53YXQgLmdlYnJ1aWtlciB1 bHttYXJnaW46MDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowOyB9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIg aDN7cGFkZGluZzowcHggMTBweCAwcHggMDsgKnBhZGRpbmc6MHB4IDEwcHggMHB4IDA7IGZvbnQtc2l6 ZToxMXB4OyBoZWlnaHQ6MzRweDsgbGluZS1oZWlnaHQ6MzRweDt9DQovKmJpZW52ZW5pZGEqLw0KI21l bnNlbndhdCAuZ2VicnVpa2VyIGgzLmluUXVlaWR7IGZsb2F0OmxlZnQ7fQ0KI2luUXVlaWRXZWxjb21l eyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MTFweDsgZm9udC13ZWlnaHQ6Ym9s ZDsgY29sb3I6I0ZGRjt9DQojaW5RdWVpZE5hbWV7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IG1h cmdpbjo4cHggNXB4IDAgNXB4OyBjb2xvcjojRkZGOyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6 MTJweDtwYWRkaW5nOjAgNXB4fQ0KI2luUXVlaWRQdWxzb3sgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVm dDt9DQoNCiNtZW5zZW53YXQgLmdlYnJ1aWtlciBoMyBpbWd7dmVydGljYWwtYWxpZ246IG1pZGRsZTt9 DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgcHtmbG9hdDpsZWZ0O30NCiNtZW5zZW53YXQgLmdlYnJ1aWtl ciBwLmF2YXRhcmVueyBoZWlnaHQ6MzZweDsgYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICM2OTZDNkY7IHBh ZGRpbmc6MHB4IDEwcHggMCA1cHg7IG1hcmdpbjowIDAgMCAxMHB4O30NCipodG1sICNtZW5zZW53YXQg LmdlYnJ1aWtlciBwLmF2YXRhcmVueyBoZWlnaHQ6MzRweDt9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIg cC5hdmF0YXJlbiBpbWd7Ym9yZGVyOm5vbmU7IG1hcmdpbjozcHggMCAwIDA7fQ0KI21lbnNlbndhdCAu Z2VicnVpa2VyIHAuc3RhdHVzLCAjbWVuc2Vud2F0IC5nZWJydWlrZXIgcC53ZWxrb21lbnt3aWR0aDoz NDBweDsgcGFkZGluZzowcHggNXB4IDAgMDsgaGVpZ2h0OjM0cHg7IGxpbmUtaGVpZ2h0OjM0cHg7IGZv bnQtc2l6ZToxM3B4OyBjb2xvcjojRkZGO30NCiNtZW5zZW53YXQgLmdlYnJ1aWtlciBwLnN0YXR1cyBz dHJvbmcsICNtZW5zZW53YXQgLmdlYnJ1aWtlciBwLndlbGtvbWVueyBmb250LXNpemU6MTZweDt9DQoj bWVuc2Vud2F0IC5nZWJydWlrZXIgcC5zdGF0dXMgYXt0ZXh0LWRlY29yYXRpb246bm9uZX0NCiNtZW5z ZW53YXQgLmdlYnJ1aWtlciBwLndlbGtvbWVueyBwYWRkaW5nOjdweCA1cHggMCAxMHB4O2JvcmRlcjow IDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICM5MkE0QzM7fQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHAu cmVjb3JkZW57cGFkZGluZzo3cHggNXB4IDAgMjVweDsgYmFja2dyb3VuZDp1cmwoaHR0cDovL3d3dy5u b3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2ljX2ZhY2Vib29rLmdpZikgbm8tcmVwZWF0IGxlZnQgNnB4OyBo ZWlnaHQ6MzRweDsgfQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHAucmVjb3JkZW4gYXtmbG9hdDpub25l OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHVse2xpc3Qt c3R5bGU6bm9uZTsgbWFyZ2luOjAgMDt9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwgbGl7ZmxvYXQ6 bGVmdDtwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjAgMnB4O30NCiNtZW5zZW53YXQgLmdlYnJ1aWtl ciB1bCBsaSBhe2Rpc3BsYXk6YmxvY2s7IHBhZGRpbmc6MCA0cHg7IGhlaWdodDozNHB4O30NCiNtZW5z ZW53YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluaWNpZW57IGZvbnQtc2l6ZToxMXB4OyBsaW5lLWhlaWdo dDozNHB4O30NCiNtZW5zZW53YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluaWNpZW5fc2Fsb257IGRpc3Bs YXk6YmxvY2s7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDoyN3B4O2JhY2tncm91bmQ6dXJsKGh0dHA6 Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvaS9wdWxzby5naWYpIG5vLXJlcGVhdCAwcHggNTAlO30N CiNtZW5zZW53YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluaWNpZW5fcGVyZmlseyBkaXNwbGF5OmJsb2Nr OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MjZweDtiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3Lm5v cnRlY2FzdGlsbGEuZXMvaW1nL2kvcGVyZmlsLmdpZikgbm8tcmVwZWF0IDAgNTAlO30NCiNtZW5zZW53 YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluaWNpZW5fZGVzY29uZWN0YXJ7IGRpc3BsYXk6YmxvY2s7IGZs b2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6MThweDtiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3Lm5vcnRl Y2FzdGlsbGEuZXMvaW1nL2kvZXhpdC5naWYpIG5vLXJlcGVhdCAxMDAlIDUwJTt9DQoNCiNtZW5zZW53 YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluZm97IGZvbnQtc2l6ZToxMXB4OyBsaW5lLWhlaWdodDozNHB4 O30NCiNtZW5zZW53YXQgLmdlYnJ1aWtlciB1bC5wbHVnbGluaywgI21lbnNlbndhdCAuZ2VicnVpa2Vy IHVsLnNlcnZpY2VzbGlua3tib3JkZXItbGVmdDoxcHggc29saWQgIzZCODRBRTsgdGV4dC1hbGlnbjps ZWZ0IDt9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwucGx1Z2xpbmt7cGFkZGluZy1sZWZ0OjEwcHh9 DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwuc2VydmljZXNsaW5re2JvcmRlcjpub25lO30NCiNtZW5z ZW53YXQgLmdlYnJ1aWtlciB1bC5zZXJ2aWNlc2xpbmsgbGl7bWFyZ2luLXJpZ2h0OjA7fQ0KI21lbnNl bndhdCAuZ2VicnVpa2VyIHVsIGxpIGEuZ2VicnVpa2Vyc25hYW17YmFja2dyb3VuZDp1cmwoaHR0cDov L3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2ljX2dlYnJ1aWtlcnNuYWFtLmdpZikgbm8tcmVwZWF0 IGxlZnQgN3B4O3RleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAyMHB4IDAgMjBweDt9DQoj bWVuc2Vud2F0IC5nZWJydWlrZXIgdWwgbGkgYS52YW5wdWxzZW57YmFja2dyb3VuZDp1cmwoaHR0cDov L3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2ljX3ZhbnB1bHNlbi5naWYpIG5vLXJlcGVhdCBsZWZ0 IDdweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDIwcHggMCAyMHB4fQ0KI21lbnNl bndhdCAuZ2VicnVpa2VyIHVsIGxpIGEuZGljaHRfZG9lbntiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3 Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kvaWNfc2Vzc2llLmdpZikgbm8tcmVwZWF0IGxlZnQgN3B4OyB0 ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzo3cHggMCAwIDIwcHh9DQphLmlmYWNlYm9vayxhLml3 aW5kb3dzLGEuaXlhaG9vSWQsYS5pb3Blbklke3dpZHRoOjE4cHghaW1wb3J0YW50OyBoZWlnaHQ6MThw eCFpbXBvcnRhbnQ7IHBhZGRpbmc6MHB4IWltcG9ydGFudDsgbWFyZ2luOjhweCAycHggMCAycHghaW1w b3J0YW50fQ0KYS5pZmFjZWJvb2s6aG92ZXIsYS5pd2luZG93czpob3ZlcixhLml5YWhvb0lkOmhvdmVy LGEuaW9wZW5JZDpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojNjk2QzZGO30NCmEuaWZhY2Vib29rIHNw YW4gLGEuaXdpbmRvd3Mgc3BhbixhLml5YWhvb0lkIHNwYW4sYS5pb3BlbklkIHNwYW57ZGlzcGxheTpu b25lO30NCmEuaWZhY2Vib29re2JhY2tncm91bmQ6dXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5l cy9pbWcvaS9pY19mYWNlYm9vay5naWYpIG5vLXJlcGVhdCBjZW50ZXI7fQ0KYS5pd2luZG93c3tiYWNr Z3JvdW5kOnVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kvaWNfd2luZG93c2xpdmUu Z2lmKSBuby1yZXBlYXQgY2VudGVyO30NCmEuaXlhaG9vSWR7YmFja2dyb3VuZDp1cmwoaHR0cDovL3d3 dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2ljX3lhaG9vSWQuZ2lmKSBuby1yZXBlYXQgY2VudGVyO30N CmEuaW9wZW5JZHtiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kv aWNfb3BlbklkLmdpZikgbm8tcmVwZWF0IGNlbnRlcjt9DQojbWVuc2Vud2F0IGZvcm17bWFyZ2luOjA7 IHBhZGRpbmc6NHB4OyB0ZXh0LWFsaWduOnJpZ2h0fQ0KI21lbnNlbndhdCBmb3JtIGxhYmVseyB0ZXh0 LWFsaWduOmxlZnQ7IGRpc3BsYXk6YmxvY2t9DQojbWVuc2Vud2F0IGZvcm0gaW5wdXQudGV4dHtkaXNw bGF5OmlubGluZTsgZm9udC1zaXplOjEwcHg7IGJvcmRlcjoxcHggc29saWQgIzMyNTU4RjsgYmFja2dy b3VuZDojZmZmOyB3aWR0aDoxODBweDsgZm9udC1zaXplOjExcHg7IHBhZGRpbmc6M3B4IH0NCiNtZW5z ZW53YXQgZm9ybSBpbnB1dC5ib3RvbjMgew0KYmFja2dyb3VuZDojRTNFM0UzOw0KYm9yZGVyOjFweCBz b2xpZCAjRTNFM0UzOw0KYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOw0KY29sb3I6IzMyNTU4RjsNCmN1 cnNvcjpwb2ludGVyOw0KZm9udC1zaXplOjExcHg7DQpmb250LXdlaWdodDpub3JtYWw7DQpoZWlnaHQ6 MjJweDsNCm1hcmdpbjoycHggYXV0byA1cHggYXV0bzsNCnBhZGRpbmc6MDsNCnZlcnRpY2FsLWFsaWdu Om1pZGRsZTsNCn0NCi5tYXNJbmZvLCAuaW5vcGVuSWR7DQoJei1pbmRleDo5OTk7DQoJZGlzcGxheTpu b25lOw0KCXBvc2l0aW9uOmFic29sdXRlOw0KCXRleHQtYWxpZ246IGxlZnQ7DQoJdGV4dC1kZWNvcmF0 aW9uOm5vbmUNCn0NCi5tYXNJbmZvew0KCWJvdHRvbTozNnB4OyBsZWZ0Oi0ycHg7IF9sZWZ0Oi00cHg7 IHdpZHRoOjMwMHB4Ow0KfQ0KLmlub3Blbklkew0KCWJvdHRvbToyOXB4OyBfYm90dG9tOjI4cHg7IGxl ZnQ6LTJweDsgX2xlZnQ6LTRweDsgd2lkdGg6MjAwcHg7DQp9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIg dWwuc2VydmljZXNsaW5rIGxpIGEuYmFyU2VsZWN0ZWR7DQoJYmFja2dyb3VuZC1jb2xvcjojRjlFRkNB OyANCgljb2xvcjojMzMzOw0KCWZvbnQtd2VpZ2h0OmJvbGQ7DQoJYm9yZGVyLWxlZnQ6MXB4IHNvbGlk ICNFMEM4OTY7DQoJYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjRTBDODk2Ow0KfQ0KI21lbnNlbndhdCAu Z2VicnVpa2VyIHVsLnNlcnZpY2VzbGluayBsaSBhLmJhclNlbGVjdGVkO2hvdmVyew0KCWNvbG9yOiMz MzMhaW1wb3J0YW50Ow0KfQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHVsLnNlcnZpY2VzbGluayBsaSBh OmhvdmVye2NvbG9yOiNDQ0M7fQ0KDQoubWFzSW5mbyBsaSwgLmlub3BlbklkIGxpew0KCS1tb3otYm9y ZGVyLXJhZGl1cy10b3BsZWZ0OiAzcHg7DQoJLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OiAzcHg7 DQoJYm9yZGVyOjFweCBzb2xpZCAjRTBDODk2OyBib3JkZXItYm90dG9tOm5vbmU7DQoJYmFja2dyb3Vu ZC1jb2xvcjojRjlFRkNBOyBjb2xvcjojMzMzOyBmb250LXNpemU6MTJweCFpbXBvcnRhbnQ7IGZvbnQt ZmFtaWx5OkFyaWFsLCBWZXJkYW5hLCBzYW5zLXNlcmlmOw0KCWRpc3BsYXk6YmxvY2s7DQp9DQojbWVu c2Vud2F0IC5nZWJydWlrZXIgdWwgbGkgdWwgbGl7Zm9udC1zaXplOjExcHg7fQ0KI21lbnNlbndhdCAu Z2VicnVpa2VyIHVsIGxpIHVsIGxpIHB7cGFkZGluZzo0cHg7fQ0KI21lbnNlbndhdCAuZ2VicnVpa2Vy IHVsIGxpIHVsIGxpIHAudGl0e2Rpc3BsYXk6YmxvY2s7IGJhY2tncm91bmQ6I0Y2MzEzMTsgZmxvYXQ6 bm9uZTsgcGFkZGluZzoycHg7IGNvbG9yOiNmZmY7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXdlaWdo dDpib2xkO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM0MDVDOTY7IGJvcmRlci10b3A6MXB4IHNvbGlk ICM5RUFCQzQ7fQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHVsIGxpIHVsIGxpIHAudGl0IGF7cG9zaXRp b246YWJzb2x1dGU7IHJpZ2h0OjJweDsgdG9wOjJweDsgZm9udC1zaXplOjEwcHg7IGZvbnQtd2VpZ2h0 OmJvbGQ7IGZvbnQtZmFtaWx5OlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IHBh ZGRpbmc6MCAycHg7IGhlaWdodDphdXRvOyB3aWR0aDphdXRvOyB0ZXh0LWRlY29yYXRpb246bm9uZTsg Y29sb3I6IzQ0NDsgYmFja2dyb3VuZDojQzFCRkJGOyBib3JkZXI6MXB4IHNvbGlkICM0NDQ7fQ0KLmxv Z2luX3JlZ3sgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDo1cHg7fQ0KI21lbnNlbndhdCAu Z2VicnVpa2VyIHVsLmxvZ2luX3JlZyBhLCAjbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwubG9naW5fcmVn IGxpLnRvcDZ7IGZvbnQtc2l6ZToxMXB4IWltcG9ydGFudDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1o ZWlnaHQ6MzRweDt9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwubG9naW5fcmVnIGE6aG92ZXJ7IGNv bG9yOiNDQ0M7fQ0KDQphLmluZm97cG9zaXRpb246cmVsYXRpdmU7IC8qdGhpcyBpcyB0aGUga2V5Ki8g ei1pbmRleDo5OTk5OTk7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHBhZGRpbmc6NXB4fQ0KYS5p bmZvIHNwYW57ZGlzcGxheTogbm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fQ0KYS5pbmZvOmhvdmVy IHNwYW57bGluZS1oZWlnaHQ6MTlweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRv bToyM3B4OyBsZWZ0Oi0yODhweDsgd2lkdGg6MzkwcHg7IHBhZGRpbmc6NXB4OyBib3JkZXI6MXB4IHNv bGlkICM0MDVDOTY7Ym9yZGVyLWJvdHRvbTpub25lO2JhY2tncm91bmQtY29sb3I6I0UzRTNFMzsgY29s b3I6IzJCMkIyQjsgZm9udC1zaXplOjEycHg7IGZvbnQtZmFtaWx5OkFyaWFsLCBWZXJkYW5hLCBzYW5z LXNlcmlmO3RleHQtYWxpZ246IGxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lO30NCiogaHRtbCBhLmlu Zm86aG92ZXIgc3Bhbntib3R0b206MHB4OyB0b3A6MjNweDsgbGVmdDotMjgzcHg7IHotaW5kZXg6MDsg dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci10b3A6MHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xp ZCAjNDA1Qzk2O30NCg0KDQoucXVlV2luZG93dG9vbHRpcCB7Zm9udDoxMnB4IEFyaWFsLCBzZXJpZjtw b3NpdGlvbjphYnNvbHV0ZTsgZGlzcGxheTpibG9jazsgcGFkZGluZzowIDsgei1pbmRleDo5OTk5OyBj b2xvcjojMkIyQjJCOyBsaW5lLWhlaWdodDoyMHB4O30NCiNxdWVUb29sdGlwe3dpZHRoOjQ2OXB4O2Jv dHRvbTotMnB4OyAqYm90dG9tOjMxcHg7bGVmdDoxMHB4O30NCgkucXVlV2luZG93dG9vbHRpcCAuY29u dGVudHF1ZVRvb2x0aXB7IHBhZGRpbmctYm90dG9tOjExcHg7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQg dXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvaS9sb2dpbmlfcHJldmlldy5naWYpIGJv dHRvbSByaWdodCByZXBlYXQteDt9DQoucXVlV2luZG93dG9vbHRpcCAuZm9ybWF0e3BhZGRpbmc6M3B4 IDdweCA3cHggN3B4OyBiYWNrZ3JvdW5kOiNGQ0Y5QjU7Ym9yZGVyOjFweCBzb2xpZCAjQzBCQjUzOyBi b3JkZXItYm90dG9tOm5vbmU7fQ0KLnF1ZVdpbmRvd3Rvb2x0aXAgLmZvcm1hdCBzdHJvbmd7Zm9udC1z aXplOjE0cHh9DQoucXVlV2luZG93dG9vbHRpcCAuZm9ybWF0IC5jbG9zZVF1ZVRvb2x0aXB7DQpiYWNr Z3JvdW5kOnVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kvY2xvc2VUb29sdGlwLmdp Zikgbm8tcmVwZWF0Ow0KZGlzcGxheTpibG9jazsNCnBvc2l0aW9uOmFic29sdXRlOw0KcmlnaHQ6NXB4 Ow0KdG9wOjVweDsNCndpZHRoOjE2cHg7DQpoZWlnaHQ6MTVweDsNCn0NCi5xdWVXaW5kb3d0b29sdGlw IC5mb3JtYXQgLmNsb3NlUXVlVG9vbHRpcCBzcGFueyBkaXNwbGF5Om5vbmV9DQo= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="comunidad.nortecastilla.es/js/vocid.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: Ly8gVk9DRU5UTy5JRCBqcyB2MzENCmV2YWwoZnVuY3Rpb24ocCxhLGMsayxlLGQpe2U9ZnVuY3Rpb24o Yyl7cmV0dXJuKGM8YT8iIjplKHBhcnNlSW50KGMvYSkpKSsoKGM9YyVhKT4zNT9TdHJpbmcuZnJvbUNo YXJDb2RlKGMrMjkpOmMudG9TdHJpbmcoMzYpKX07aWYoIScnLnJlcGxhY2UoL14vLFN0cmluZykpe3do aWxlKGMtLSlkW2UoYyldPWtbY118fGUoYyk7az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1 bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTE7fTt3aGlsZShjLS0paWYoa1tjXSlwPXAucmVwbGFjZShu ZXcgUmVnRXhwKCdcXGInK2UoYykrJ1xcYicsJ2cnKSxrW2NdKTtyZXR1cm4gcDt9KCc5IEM9Ny5XLlk7 eShcJ3ogPSBcJytDKTs5IDJuPUQ7OSAzZT0ybSg3LjI5KTt5KFwnM2cgPSBcJys3LjI5KTs1KGggbSE9 XCdsXCcpezkgMVU9Mm0obSk7eShcJzQ1ID0gXCcrbSl9NShoIDJEPT1cJ2xcJ3x8ITJEKXtHKFwnM2xc Jyl9OCAxRyhVLEosMTgpezUoMTgpezkgUD0xMiAyaSgpO1AuMnkoUC4ydigpKygxOCoydyoyQSkpOzkg Vj0iOyBWPSIrUC4yRSgpfXF7OSBWPSIifTcuMmI9VSsiPSIrSitWKyI7IDJGPS8ifTs4IDJ4KFUsSiwx OCl7NSgxOCl7OSBQPTEyIDJpKCk7UC4yeShQLjJ2KCkrKDE4KjJ3KjJBKSk7OSBWPSI7IFY9IitQLjJF KCl9cXs5IFY9IiJ9Ny4yYj1VKyI9IitKK1YrIjsgMkY9LzsgMjk9IisxVX07OCAxZShVKXs5IDJoPVUr Ij0iOzkgMmc9Ny4yYi4yVChcJztcJyk7MVAoOSBpPTA7aTwyZy5UO2krKyl7OSBjPTJnW2ldOzFXKGMu MXAoMCk9PVwnIFwnKXtjPWMuMnIoMSxjLlQpfTUoYy4yWCgyaCk9PTApe2ogYy4ycigyaC5ULGMuVCl9 fWogMXp9OzggMzUoVSl7MUcoVSwiIiwtMSl9OzggTCh6LDJwKXs5IDFCPTcuNDgoXCcxQlwnKS4zWCgw KTs5IDJlPTcubigycCk7NSgyZSl7MUIuMjAoMmUpfTkgTT03LjFPKFwnTVwnKTs5IDNWPTEyIDJpKCk7 TS40MT16O00uNDI9XCczWi80MFwnO00uaz0ycDs0bSgxQi4xVihNKSl9OzggMXYoSSl7aiBJLjFLKC9e KFxcc3xcXCYydTspKnwoXFxzfFxcJjJ1OykqJC9nLFwnXCcpfTs4IHkoMnQpezUoaCA0bCE9XCdsXCcm JmggMnMhPVwnbFwnKXsycy40cSgydCl9fTs4IDJtKEkpezUoST09MXp8fEkuVD09MCl7alwnXCd9OSBp PUkuMlgoXCcvXCcpOzUoaT4tMSl7ST1JLjJyKDAsaSl9OSAxbz1JLjJUKFwnLlwnKTs5IDEzPTFvLlQ7 NSgxMzwzKXtqIEl9OSAyVT0xb1sxMy0xXTs5IDJWPTFvWzEzLTJdOzkgMUo9Mjs1KDJVPT0iNGQiJiYy Vj09IjRqIil7KysxSn01KDEzPj0wKXtqIDFvLjRnKDEzLTFKLDFKKS40aChcJy5cJyl9alwnXCd9Ozgg MlIoKXs5IFo9M0YuM0kuM0goKTs1KC8zQ3wzRS8uMTcoWikpe2ogQn01KC8zRHwzSi8uMTcoWikpe2og Qn01KC8zUi8uMTcoWikpe2ogQn01KC8zUSAzUy8uMTcoWikpe2ogQn01KC8zVS8uMTcoWikpe2ogQn01 KC8zVC8uMTcoWikpe2ogQn1qIER9OzggMzAoMWgpezkgMXE9XCdcJzs5IDFsPVwnM0srLz1cJzs5IDFI LDFkLDFqLDI4LDJsLDFzLDFmOzkgaT0wOzFXKGk8MWguVCl7MUg9MWguMmMoaSsrKTsxZD0xaC4yYyhp KyspOzFqPTFoLjJjKGkrKyk7Mjg9MUg+PjI7Mmw9KCgxSCYzKTw8NCl8KDFkPj40KTsxcz0oKDFkJjE1 KTw8Mil8KDFqPj42KTsxZj0xaiYzTzs1KDMyKDFkKSl7MXM9MWY9Mlp9cSA1KDMyKDFqKSl7MWY9Mlp9 MXE9MXErMWwuMXAoMjgpKzFsLjFwKDJsKSsxbC4xcCgxcykrMWwuMXAoMWYpfWogMXF9OzggMUMoMmop ezUoaCBtPT1cJ2xcJyl7aiBEfTNoKDJqKXtBXCcySFwnOjUoMXYoNy5uKFwnMlFcJykuSik9PVwnXCcp ezJOKFwnNShoIFwnKzFtK1wnID09IFxcXCc4XFxcJykge1wnKzFtK1wnKCk7fSA7XCcpfXF7Ny5XLlk9 XCd3Oi8vXCcrbStcJy8xWi54P3M9XCcrZShIKStcJyZ0PTJIJm89XCcrZSg3Lm4oXCcyUVwnKS5KKStc JyZyPVwnK2UoQyl9RTtBXCcxSVwnOkcoXCdGXCcpO0U7QVwnMUZcJzo3LlcuWT1cJ3c6Ly9cJyttK1wn LzUxLng/cz1cJytlKEgpK1wnJnI9XCcrZShDKTtFO0FcJzViXCc6QVwnNWNcJzo3LlcuWT1cJ3c6Ly9c JyttK1wnLzFaLng/cz1cJytlKEgpK1wnJnQ9XCcrMmorXCcmcj1cJytlKEMpO0U7QVwnMkxcJzo3Llcu WT1cJ3c6Ly9cJyttK1wnL0YuMjc/cz1cJytlKEgpK1wnJnI9XCcrZShDKTtFOzVhOjUoMXYoNy5uKFwn Mk9cJykuSik9PVwnXCd8fDF2KDcubihcJzJQXCcpLkopPT1cJ1wnKXsyTihcJzUoaCBcJysxbStcJyA9 PSBcXFwnOFxcXCcpIHtcJysxbStcJygpO30gO1wnKX05IDFyPVwnMFwnOzUoNy5uKFwnNWdcJykuNWQp ezFyPVwnMVwnfUwoXCd3Oi8vXCcrbStcJy9GLng/cz1cJytlKEgpK1wnJmY9XCcrZSgxbSkrXCcmdT1c JytlKDcubihcJzJPXCcpLkopK1wnJnA9XCcrZSg3Lm4oXCcyUFwnKS5KKStcJyZyPVwnK2UoQykrXCcm MXI9XCcrMXIsXCcya1wnKX19OzggMlMoMVEsMXQpezUoaCBtIT1cJ2xcJyl7OSAxMD1cJ1wnOzFQKDFT IDUyIDFRKXsxMD0xMCsxUytcJz1cJysxUVsxU10rXCcmXCd9NSgxdCE9XCdcJyl7MTA9MTArXCcxdD1c JysxdH01KDEwIT1cJ1wnKXtMKFwndzovL1wnK20rXCcvNTYueD9cJysxMCxcJzJTXCcpfX19OzggNW0o KXs1KGggbSE9XCdsXCcpe0coXCdYXCcpO0woXCd3Oi8vXCcrbStcJy9YLng/cz1cJytlKEgpK1wnJnI9 XCcrZShDKSxcJzVwXCcpfX07OCAzcygpezUoaCBtIT1cJ2xcJyYmMWUoXCcyelwnKT09MXomJiEyUigp KXs1KCE3Lm4oTikpezkgMU49Ny4xTyhcJzJKXCcpOzFOLms9XCcxNFwnOzcuMkkuMVYoMU4pOzkgMjI9 Ny4xTyhcJzJKXCcpOzIyLms9Tjs3LjJJLjFWKDIyKX05IDIzPVwnMFwnOzUoaCAyTSE9XCdsXCcpezIz PTJNfUwoXCd3Oi8vXCcrbStcJy8yTC54P3M9XCcrZShIKStcJyZyPVwnK2UoQykrXCcmZD1cJytlKE4p K1wnJmI9XCcrMjMsXCc0RVwnKX1xezUoaCBOIT1cJ2xcJyYmNy5uKE4pKXs5IDF4PTcubihOKS4ySzsx eC4yMCg3Lm4oTikpfTUoNy5uKFwnMTRcJykpezkgMXg9Ny5uKFwnMTRcJykuMks7MXguMjAoNy5uKFwn MTRcJykpfX19OzggNEQoMXUpezUoaCBtPT1cJ2xcJ3x8MXU9PVwnXCcpezUoaCAzMT09XCc4XCcpezMx KFwnNEpcJyl9O2p9TChcJ3c6Ly9cJyttK1wnLzRHLng/MXU9XCcrMzAoMXUpLFwnNHZcJyl9OzggNHco MjUsUSl7UT0oaCBRPT1cJ2xcJyk/MDpROzUoaCAzND09XCdsXCcpe2p9NShoICQuMTY9PVwnbFwnKXsz NC40dShcJ3c6Ly9cJyttK1wnL3gvMTYueFwnLDgoKXskLjE2LjMzLlE9UTskLjE2KCQoXCcjXCcrMjUp LjJZKCkuMUsoLzJXL2csXCdcJykpfSl9cXskLjE2LjMzLlE9UTskLjE2KCQoXCcjXCcrMjUpLjJZKCku MUsoLzJXL2csXCdcJykpfX07M3Q9KDgoKXs5IDFEPVtdLDJHLE0sMVQsMVgsMUUsMWk9OCgpezFUPUI7 NHgoMkcpOzFXKDFYPTFELjRXKCkpMVgoKTs1KE0pTS40VT1cJ1wnfTtqIDgoMVIpezUoMVQpaiAxUigp OzUoITFEWzBdKXs1KDcuMkMpNy4yQygiNFoiLDFpLEQpOzFFPTJmLjJCOzJmLjJCPTgoKXsxaSgpOzUo MUUpMUUoKX19MUQuNFkoMVIpfX0pKCk7OCA0TSgpezUoNy5uKE4pKXsxOShOKTs1KDcubihcJzE0XCcp KXsxOShcJzE0XCcpfTJ4KFwnMnpcJyxcJzRLXCcsMCl9fTs4IDRMKGspezFHKFwnNFFcJytrLFwnNFJc JywzbyozcCk7MTkoayl9OzggNE8oayl7NSgxZShrKSE9MXopezM1KGspfXF7MUcoayxcJzRQXCcraywz byozcCl9MTkoayl9OzggNE4oayl7M0EoKTszYihrKX07OCAzQSgpezkgMU09MTIgNFMoXCc0WFwnLFwn NTBcJyk7MVAoOSBpPTA7aTwxTS5UO2krKyl7MTkoMU1baV0pfX07OCAxOShrKXs1KDcubil7Ny5uKGsp LjFBLjFiPVwnMjFcJ31xezUoNy4zYSl7Ny5rLjFiPVwnMjFcJ31xezcuM2Muay4xQS4xYj1cJzIxXCd9 fX07OCAzYihrKXs1KDcubil7Ny5uKGspLjFBLjFiPVwnMjRcJ31xezUoNy4zYSl7Ny5rLjFiPVwnMjRc J31xezcuM2Muay4xQS4xYj1cJzI0XCd9fX07OCAxWShPLFIpe2ogTy4xTC40VCgxMiAzayhcJyhcXFxc c3xeKVwnK1IrXCcoXFxcXHN8JClcJykpfTs4IDRWKE8sUil7NSghNHkuMVkoTyxSKSl7Ty4xTCs9IiAi K1J9fTs4IDRBKE8sUil7NSgxWShPLFIpKXs5IDNmPTEyIDNrKFwnKFxcXFxzfF4pXCcrUitcJyhcXFxc c3wkKVwnKTtPLjFMPU8uMUwuMUsoM2YsXCcgXCcpfX07OCBHKDJkKXs1KDNlPT0xVSl7M2goMmQpe0Fc J0ZcJzo1KGggdiE9XCdsXCcmJjJuKXsxY3t2LjR6KDgoKXt2LjFhLjR0KDgoKXt2LjJhLjRCKCkuNEgo OCg0SSl7Ny5XLlk9XCd3Oi8vXCcrbStcJy8xWi54P3Q9MUkmcz1cJytlKEgpK1wnJnI9XCcrZShDKX0p fSl9KX0xZygxeSl7eShcJzJxIDFrIEYgdiAxYS4gM2kgYSBGIDNyIDNqXCcpOzFDKFwnMUZcJyl9fXF7 eShcJ3YgMW4gMjYgbyAxbiA0QyA0Ri4gM2kgYSBGIDNyIDNqXCcpOzFDKFwnMUZcJyl9RTtBXCdYXCc6 NShoIHYhPVwnbFwnKXsxY3t2LjFhLjNCKDgoKXt2LjFhLlgoKX0sOCgpe30pfTFnKDF5KXt9fXF7eShc J3YgMW4gMjYgMWsgWFwnKX1FO0FcJzNsXCc6TChcJ3c6Ly81ai41ay41bC4xSS4zOC94LzVoLzVpLjQv NW4ueC4yN1wnLFwnNTVcJyk7RTtBXCc1OFwnOjUoaCB2IT1cJ2xcJyl7MWN7NTcoWyI1byIsIjU0Il0s OCgpezFje3YuMzYuNTM9Qjt2LjM2LjVlPTY7di4xaSg1ZixcJy81OS40c1wnKTsybj1CfTFnKDNHKXt5 KFwnMnEgMm8gM24gMmFcJyl9fSl9MWcoMXkpe3koXCcycSAybyAzbiAyYVwnKX19cXt5KFwndiAxbiAy NiAxayAxaVwnKX1FO0FcJzNOXCc6OSB6PUtbMV07OSBTPUtbMl07OSAxdz1COzUoaCB2PT1cJ2xcJyl7 RyhcJzExXCcsRCx6LFMpO2ogRH1xezFje3YuMWEuM0IoOCgpezUoaCBtIT1cJ2xcJyl7NSgxZShcJzN6 XCcpPT0xKXtHKFwnMTFcJyxCLHosUyl9cXs1KDF3KXszdyhcJzN2IDN5IDN4IDNtIDFrIDNkLmsgMzcg MzlcJyk7MXc9RDtHKFwnRlwnKX19fXF7RyhcJzExXCcsQix6LFMpfX0sOCgpezN3KFwnM3YgM3kgM3gg M20gMWsgM2QuayAzNyAzOVwnKTsxdz1EO0coXCdGXCcpfSl9MWcoMXkpe0coXCcxMVwnLEQseixTKTtq IER9fUU7QVwnMTFcJzo1KChoIEtbMl09PVwnbFwnKXx8KGggS1szXT09XCdsXCcpfHxLWzJdPT1cJ1wn fHxLWzNdPT1cJ1wnKXt6PVcuWTtTPTcuM019cXt6PUtbMl07Uz1LWzNdfTUoIUtbMV0pezJmLjNMKFwn dzovLzNQLjFJLjM4LzExLjI3P3U9XCcrZSh6KStcJyZ0PVwnK2UoUyksXCcxMVwnLFwnNGk9MCw0Yz0w LDRmPTRlLDRwPTRvXCcpfXEgNShoIHYhPVwnbFwnKXt2LjFhLjRyKHosOCgpe30pfWogRDtFfX1xe3ko XCczZyA0ayAybyA0biA0YiwgMW4gM1cgM1kgNDcgdlwnKTs1KDJkPT1cJ0ZcJyl7MUMoXCcxRlwnKX19 fTs1KGggbSE9XCdsXCcpe3koXCc0YSA0OSA0NFwnKTs1KDFlKFwnM3pcJyk9PTEpe3koXCczdSBYXCcp O0woXCd3Oi8vXCcrbStcJy9YLng/cz1cJytlKEgpK1wnJnI9XCcrZShDKStcJyZjPTFcJyxcJzJrXCcp fXF7eShcJzN1IDQzXCcpO0woXCd3Oi8vXCcrbStcJy80Ni54P3M9XCcrZShIKStcJyZyPVwnK2UoQyks XCcya1wnKX19NShoIDNxPT1cJ2xcJ3x8M3EpezN0KDNzKX0nLDYyLDMzNiwnfHx8fHxpZnx8ZG9jdW1l bnR8ZnVuY3Rpb258dmFyfHx8fHxlbmNvZGVVUklDb21wb25lbnR8fHx0eXBlb2Z8fHJldHVybnxpZHx1 bmRlZmluZWR8cXVlaWRfbWFzdGVyfGdldEVsZW1lbnRCeUlkfHx8ZWxzZXx8fHx8RkJ8aHR0cHxqc3xx dWVpZF9lY2hvX2RlYnVnfHVybHxjYXNlfHRydWV8cXVlaWRfdXJsX2FjdHVhbHxmYWxzZXxicmVha3xs b2dpbnx2b2NpZF9mYWNlYm9va3xxdWVpZF9zZXJ2fHN0cnx2YWx1ZXxhcmd1bWVudHN8cXVlaWRfcmVs b2FkU2NyaXB0fHNjcmlwdHxxdWVpZF9iYXJyYV9kaXZ8ZWxlfGRhdGV8b3BhY2l0eXxjbHN8dGl0dWxv fGxlbmd0aHxuYW1lfGV4cGlyZXN8bG9jYXRpb258bG9nb3V0fGhyZWZ8bmF2ZWdhZG9yfHJlcXVlc3R8 c2hhcmVyfG5ld3xsZW58Z2VicnVpa2VyX3NoYWRvd3x8ZmFjZWJveHx0ZXN0fG1pbnxxdWVpZF9oaWRl ZGl2fENvbm5lY3R8ZGlzcGxheXx0cnl8Y2hyMnxxdWVpZF9yZWFkQ29va2llfGVuYzR8Y2F0Y2h8Y2Fk ZW5hfGluaXR8Y2hyM3xlbnxrZXlTdHJ8cXVlaWRfZXJyb3JfZnVuY3xub3xwYXJ0c3xjaGFyQXR8b3V0 cHV0fHJlY3xlbmMzfGNhbGxiYWNrfGVtYWlsfHF1ZWlkX3N0cnRyaW18cHVsc2Fkb1NoYXJlfHBhZHJl fGVyfG51bGx8c3R5bGV8aGVhZHxxdWVpZF9sb2dpbnxsb2FkX2V2ZW50c3xvbGRfb25sb2FkfGZhY2Vi b29rX2FsdGVybmF0aXZvfHF1ZWlkX2NyZWF0ZUNvb2tpZXxjaHIxfGZhY2Vib29rfHR3b3xyZXBsYWNl fGNsYXNzTmFtZXxpZHN8ZGl2X3NvbWJyYXxjcmVhdGVFbGVtZW50fGZvcnxkYXRvc191c3VhcmlvfGZ1 bmN8Y2FtcG98ZG9uZXx2b2NpZF9tYXN0ZXJfYmFzZXxhcHBlbmRDaGlsZHx3aGlsZXxleGVjfHF1ZWlk X2hhc0NsYXNzfGxvZ2luX2V4dHxyZW1vdmVDaGlsZHxub25lfGRpdl9iYXJyYXx0aXBvX2JhcnJhfGJs b2NrfGRpdl9vY3VsdG98ZGVmaW5pZG98cGhwfGVuYzF8ZG9tYWlufEZhY2Vib29rfGNvb2tpZXxjaGFy Q29kZUF0fGFjY2lvbnxvbGR8d2luZG93fGNhfG5hbWVFUXxEYXRlfHRpcG98dm9jaWRfbG9nfGVuYzJ8 dm9jaWRfZ2V0X2RvbWluaW98dm9jaWRfZmJjb25uZWN0X2luaXRlZHxhbHxpZF9zY3JpcHR8RXJyb3J8 c3Vic3RyaW5nfGNvbnNvbGV8bXNnfG5ic3B8Z2V0VGltZXw2MHxxdWVpZF9jcmVhdGVDb29raWVfZ2xv YmFsfHNldFRpbWV8dm9jaWRfbm9iYXJyYXwxMDAwfG9ubG9hZHxhZGRFdmVudExpc3RlbmVyfHZvY2lk X2ZiX2hlYWR8dG9HTVRTdHJpbmd8cGF0aHxsb2FkX3RpbWVyfG9wZW5pZHxib2R5fGRpdnxwYXJlbnRO b2RlfGJhcnJhfHF1ZWlkX2JhcnJhX3RpcG98ZXZhbHxxdWVpZF91fHF1ZWlkX3B8cXVlaWRfb3x2b2Np ZF9tb3ZpbHx2b2NpZF9yZWdpc3Ryb3xzcGxpdHxsYXN0UGFydHxzZWNvbmRQYXJ0fGZhY2Vib3hffGlu ZGV4T2Z8aHRtbHw2NHx2b2NpZF9iYXNlNjR8dm9jaWRfcmVlbnZpb19yZXNwfGlzTmFOfHNldHRpbmdz fGpRdWVyeXxxdWVpZF9lcmFzZUNvb2tpZXxGQkRlYnVnfHBhcmF8Y29tfGNvbXBhcnRpcnxsYXllcnN8 cXVlaWRfc2hvd2RpdnxhbGx8dm9jZW50b3x2b2NpZF9kb21pbmlvX2Jhc2V8cmVnfGRvbWluaW98c3dp dGNofFJlZGlyZWNjaW9uYW5kb3xhbHRlcm5hdGl2b3xSZWdFeHB8Y2FyZ2F8cmVnaXN0cmFkb3xpbmlj aWFsaXphcnw4NjQwMHwzNjV8cXVlaWRfYmFycmFfYXV0b3xGQkNvbm5lY3R8cXVlaWRfYmFycmF8cXVl aWRfYWRkRE9NTG9hZEV2ZW50fGNvbXByb2JhcnxFc3xhbGVydHxlc3RhcnxuZWNlc2FyaW98cXVlaWRf bG9nfHF1ZWlkX2hpZGVhbGxpZHN8aWZVc2VyQ29ubmVjdGVkfGlwaG9uZXxzZXJpZXM2MHxpcG9kfG5h dmlnYXRvcnxlcklubmVyfHRvTG93ZXJDYXNlfHVzZXJBZ2VudHxzeW1iaWFufEFCQ0RFRkdISUpLTE1O T1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5fG9wZW58dGl0bGV8 c2hhcmV8NjN8d3d3fHdpbmRvd3N8YW5kcm9pZHxjZXxwYWxtfGJsYWNrYmVycnl8bm93fGhhY2Vtb3N8 aXRlbXxuYWRhfHRleHR8amF2YXNjcmlwdHxzcmN8dHlwZXxzZXNpb258Y29tcHJvYmFjaW9uZXN8bWFz dGVyfGxvZ2luX2F1dHxkZXxnZXRFbGVtZW50c0J5VGFnTmFtZXxsYXN8ZW1wZXphbW9zfGNsb258c3Rh dHVzfHVrfDYyNnx3aWR0aHxzcGxpY2V8am9pbnx0b29sYmFyfGNvfGRpc3RpbnRvfHF1ZWlkX2RlYnVn fHZvaWR8ZGVsfDQzNnxoZWlnaHR8aW5mb3xzaG93U2hhcmVEaWFsb2d8aHRtfHJlcXVpcmVTZXNzaW9u fGdldFNjcmlwdHx2b2NpZF9yZWVudmlvfHZvY2lkX2ZhY2Vib3h8Y2xlYXJJbnRlcnZhbHx0aGlzfGVu c3VyZUluaXR8cXVlaWRfcmVtb3ZlQ2xhc3N8Z2V0X3Nlc3Npb25TdGF0ZXxpbmljaWFsaXphZG98dm9j aWRfcmVlbnZpb19jb25maXJtYWNpb258dm9jaWRfYmFycnxDb3JyZWN0YW1lbnRlfHJ2X2NvbmZpcm1h Y2lvbnx3YWl0VW50aWxSZWFkeXxzZXNzaW9ufHJlZW52aW9fZXJyb3J8bm9fY2FyZ2FyX2JhcnJhX3Zv Y2lkfGNlcnJhcl9hdmlzb3x2b2NpZF9jZXJyYXJfYmFycmF8cXVlaWRfc3dpdGNoaWR8dm9jaWRfY2Vy cmFyX3Rvb2x0aXB8Y2VycmFkb198cXVlaWRfdG9vbHRpcF98Y2VycmFkb19hdmlzb19nZW50ZXF1ZXxB cnJheXxtYXRjaHxvbnJlYWR5c3RhdGVjaGFuZ2V8cXVlaWRfYWRkQ2xhc3N8c2hpZnR8bWFzSW5mb1Fp ZHxwdXNofERPTUNvbnRlbnRMb2FkZWR8c2VuZE9JRHxsb2dpbl9mYnxpbnxpc0VuYWJsZWR8WGRDb21t fHZvY2lkX2ZifHJlZ2lzdHJvfEZCX1JlcXVpcmVGZWF0dXJlc3xpbmljaW98eGRfcmVjZWl2ZXJ8ZGVm YXVsdHx5YWhvb3x3aW5kb3dzbGl2ZXxjaGVja2VkfExvZ0xldmVsfHZvY2lkX2ZhY2Vib29rX2FwaV9r ZXl8cXVlaWRfcnxhcGlfbGlifHYwfHN0YXRpY3xha3xjb25uZWN0fHF1ZWlkX2xvZ291dHxGZWF0dXJl TG9hZGVyfFhGQk1MfHZvY2lkX2xvZ291Jy5zcGxpdCgnfCcpLDAse30pKQ0K ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/css/rd.articulos.css" Content-Type: text/css Content-Transfer-Encoding: base64 Content-ID: LmFydGljdWxveyBjbGVhcjpib3RoOyBwYWRkaW5nOjAgMnB4IDAgNnB4fQ0KLmFydF9oZWFkeyBjbGVh cjpib3RoO30vKnpvbmEgc3VwZXJpb3IgZGUgYXJ07WN1bG8qLw0KLmFydGljdWxvIC5vdmVyaGVhZHsg Y29sb3I6I0MwMDsgZm9udC1zaXplOjEwcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9DQouYXJ0 aWN1bG8gLm92ZXJoZWFkIGF7IGNvbG9yOiNDMDA7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0K LmFydGljdWxvIC5oZWFkbGluZXsgY29sb3I6IzAzNjsgZm9udC1zaXplOjM2cHg7IGZvbnQtd2VpZ2h0 Om5vcm1hbDt9DQouYXJ0aWN1bG8gLmhlYWRsaW5lIGEsLmFydGljdWxvIC5oZWFkbGluZSBhOmhvdmVy eyBjb2xvcjojMDM2OyBjdXJzb3I6ZGVmYXVsdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fQ0KLmFydGlj dWxvIC5zdWJoZWFkeyBjb2xvcjojNjg2ODY4OyBmb250LXNpemU6MTZweDsgZm9udC13ZWlnaHQ6bm9y bWFsOyBtYXJnaW46MCAwIDVweCAwfQ0KLmFydGljdWxvIC5zdWJoZWFkIGF7dGV4dC1kZWNvcmF0aW9u OnVuZGVybGluZTsgY29sb3I6IzAzNn0vKnBldGljaW9uIFJDKi8NCi5hcnRpY3VsbyAuZGF0ZSwuYXJ0 aWN1bG8gLmJ5bGluZSwuYXJ0aWN1bG8gLmF1dGhvciwuYXJ0aWN1bG8gLm5hbWUsLmFydGljdWxvIC5k ZXNjcmlwdGlvbnsgZGlzcGxheTppbmxpbmU7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjojOEU4RThFOyBm b250LXdlaWdodDpib2xkO30NCi5hcnRpY3VsbyAuYnlsaW5lIGF7IGNvbG9yOiM4RThFOEU7fQ0KLmFy dGljdWxvIC5iYXJoZWFkeyBmb250LXNpemU6MTRweDsgY29sb3I6IzY2NjsgZm9udC13ZWlnaHQ6bm9y bWFsOyBwYWRkaW5nOjAgMCAxNXB4IDB9DQouYXJ0aWN1bG8gLmJhcmhlYWQgYXt0ZXh0LWRlY29yYXRp b246dW5kZXJsaW5lOyBjb2xvcjojMDM2fS8qcGV0aWNpb24gUkMqLw0KLmFydGljdWxvIC50ZXh0eyBm b250LXNpemU6MTRweDsgY29sb3I6IzY2NjsgZm9udC13ZWlnaHQ6bm9ybWFsO30NCi5hcnRpY3VsbyAu dGV4dCAucHsgbGluZS1oZWlnaHQ6MThweDsgcGFkZGluZzowIDAgMTVweCAwfQ0KDQouYXJ0aWN1bG8g LnRleHQgLnAgYXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzAzNn0NCi5hcnRpY3Vs byAudGV4dCAucCBhOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6I2NjMDAwMH0gDQoN Ci5hcnRpY3VsbyAudGV4dCAubGluay1hcHAxeyBiYWNrZ3JvdW5kLWNvbG9yOiNGMkYyRjI7IHBhZGRp bmc6OHB4OyBtYXJnaW46MCAwIDEwcHggMH0NCi5hcnRpY3VsbyAudGV4dCAubGluay1hcHAxIC5yZWxh dGVkLWxpbmt7IHBhZGRpbmc6MCAwIDdweCAyNXB4OyBoZWlnaHQ6YXV0bzsgYmFja2dyb3VuZDogdXJs KGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvcmQubWFyY2EucG5nKSBuby1yZXBlYXQgMTBw eCA1cHg7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojNjY2O30NCi5hcnRpY3VsbyAudGV4dCAubGluay1h cHAxIC5yZWxhdGVkLWxpbmsgYXsgY29sb3I6IzY2Njt9DQoNCi5hcnRpY3VsbyAubGluay1hcHAzeyBj bGVhcjpib3RoOyBiYWNrZ3JvdW5kLWNvbG9yOiNGMkYyRjI7IG1hcmdpbjowIDAgMTBweCAwOyBwYWRk aW5nOjAgMCA1cHggMH0NCi5hcnRpY3VsbyAubGluay1hcHAzIC5sbmtfZW5jYWJ7IGJvcmRlci1ib3R0 b206MXB4IHNvbGlkICNDNkM4Q0E7IG1hcmdpbjowIDAgNXB4IDA7fQ0KLmFydGljdWxvIC5saW5rLWFw cDMgLnJlbGF0ZWQtbGlua3sgY2xlYXI6Ym90aDsgcGFkZGluZzowcHggNXB4IDNweCA3cHg7ICBmb250 LXNpemU6MTRweDsgY29sb3I6IzY2Njt9DQouYXJ0aWN1bG8gLmxpbmstYXBwMyAucmVsYXRlZC1saW5r LWVwaWdyYWZleyBtYXJnaW46NXB4IDAgMHB4IDA7fQ0KLmFydGljdWxvIC5saW5rLWFwcDMgLnJlbGF0 ZWQtbGluayBoMiwuYXJ0aWN1bG8gLmxpbmstYXBwMyAucmVsYXRlZC1saW5rIC5yZWxhdGVkLWxpbmst aHsgZm9udC1zaXplOjEycHg7IGNvbG9yOiM0NzQ3NDc7IG1hcmdpbjowIDAgMCA1MHB4fQ0KLmFydGlj dWxvIC5saW5rLWFwcDMgLnJlbGF0ZWQtbGluayAucmVsYXRlZC1saW5rLWggaW1neyBtYXJnaW46MCAw IDAgNXB4fQ0KLmFydGljdWxvIC5saW5rLWFwcDMgLnJlbGF0ZWQtbGluayBheyBjb2xvcjojNDc0NzQ3 O30NCg0KLmFydGljdWxvIC5saW5rLWFwcDR7IGNsZWFyOmJvdGg7IGJhY2tncm91bmQtY29sb3I6I0Yy RjJGMjsgbWFyZ2luOjAgMCAxMHB4IDB9DQouYXJ0aWN1bG8gLmxpbmstYXBwNCAucmVsYXRlZC1saW5r eyBjbGVhcjpib3RoOyBwYWRkaW5nOjVweCA1cHggM3B4IDdweDsgYm9yZGVyLXRvcDoxcHggc29saWQg I0M2QzhDQTsgfQ0KLmFydGljdWxvIC5saW5rLWFwcDQgLnJlbGF0ZWQtbGluayBoM3sgZm9udC1zaXpl OjEycHg7IGNvbG9yOiM0NzQ3NDc7IG1hcmdpbjowIDAgMCA1MHB4fQ0KLmFydGljdWxvIC5saW5rLWFw cDQgLnJlbGF0ZWQtbGluayBheyBjb2xvcjojNDc0NzQ3O30NCi5hcnRpY3VsbyAubGluay1hcHA0IC5y ZWxhdGVkLWxpbmsgLnBob3RvLWFsdDJ7IGZsb2F0OmxlZnQ7fQ0KLmFydGljdWxvIC5saW5rLWFwcDQg LnJlbGF0ZWQtbGluayAucGhvdG8tYWx0MiBpbWd7IGJvcmRlcjoxcHggc29saWQgI0NDQ30NCg0KLmFy dGljdWxvIC5saW5rLWFwcDMgLmxua19lbmNhYiwuYXJ0aWN1bG8gLmxpbmstYXBwNCAubG5rX2VuY2Fi eyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxNHB4 OyBjb2xvcjojNDc0NzQ3OyBsaW5lLWhlaWdodDoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7IGhl aWdodDoyMHB4OyBwYWRkaW5nOjAgNXB4fQ0KDQouYXJ0aWN1bG8gLnBob3RvLWFsdDEsLmNvbENfYXJ0 aWN1bG8gLnBob3RveyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0 bzsgYmFja2dyb3VuZC1jb2xvcjojRjJGMkYyO30NCi5hcnRpY3VsbyAucGhvdG8tYWx0MSBpbWcsLmNv bENfYXJ0aWN1bG8gLnBob3RvIGltZ3sgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87fQ0K DQouYXJ0aWN1bG8gLnBob3RvLWNhcHRpb257IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjU7IGRp c3BsYXk6YmxvY2s7IGJhY2tncm91bmQtY29sb3I6I0YyRjJGMjsgZm9udC1zaXplOjExcHg7IGNvbG9y OiM2NjY7IHBhZGRpbmc6MnB4IDVweDsgdGV4dC1hbGlnbjpsZWZ0O30NCi5hcnRpY3VsbyAucGhvdG8t Y2FwdGlvbiBheyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjojNjY2O30NCg0KLmFydGlj dWxvIC5wYm94eyB3aWR0aDoyNjNweDsgZmxvYXQ6cmlnaHQ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJn aW46MCBhdXRvIDAgMTBweDsgdGV4dC1hbGlnbjpsZWZ0O30NCi5hcnRpY3VsbyAucGJveCAubGluay1h cHAyeyBtYXJnaW46MCAwIDEwcHggMDsgYm9yZGVyOjFweCBzb2xpZCAjRTJFM0U0OyBiYWNrZ3JvdW5k LWNvbG9yOiNGMkYyRjI7IHBhZGRpbmc6NXB4fQ0KLmFydGljdWxvIC5wYm94IC5saW5rLWFwcDIgaDJ7 Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICMzMzM7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6Ym9s ZDttYXJnaW4tYm90dG9tOjVweH0NCi5hcnRpY3VsbyAucGJveCAubGluay1hcHAyIC5sbmtfZW5jYWJ7 IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxNHB4OyBib3JkZXItYm90dG9tOjFweCBkYXNoZWQg I0U3RTdFODsgY29sb3I6IzY2NjsgcGFkZGluZzowIDAgNnB4IDVweDsgbWFyZ2luOjAgMCA2cHggMH0N Ci5hcnRpY3VsbyAucGJveCAubGluay1hcHAyIC5yZWxhdGVkLWxpbmsge2NvbG9yOiM2NjY2NjY7Zm9u dC1zaXplOjEycHg7aGVpZ2h0OmF1dG87cGFkZGluZzoycHggNXB4fQ0KLyouYXJ0aWN1bG8gLnBib3gg LmxpbmstYXBwMiAucmVsYXRlZC1saW5reyBmb250LXNpemU6MTJweDsgY29sb3I6IzY2NjsgcGFkZGlu ZzowIDVweDsgaGVpZ2h0OmF1dG87fSovDQouYXJ0aWN1bG8gLnBib3ggLmxpbmstYXBwMiAucmVsYXRl ZC1saW5rIC5weyBwYWRkaW5nOjAgMCA4cHggMDt9DQoNCi5hcnRpY3VsbyAucGJveCAubGluay1kbGR7 IG1hcmdpbjowIDAgMTBweCAwOyBib3JkZXI6MXB4IHNvbGlkICNFMkUzRTQ7IGJhY2tncm91bmQ6ICNG MkYyRjIgdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvcmQubWFyY2FfY2l0YV9pbmlj aW8uZ2lmKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IDhweCA4cHg7IHBhZGRpbmc6MTBw eCAwcHggOHB4IDM1cHg7fQ0KLmFydGljdWxvIC5wYm94IC5saW5rLWRsZCAucmVsYXRlZC1saW5reyBm b250LXNpemU6MTRweDsgYmFja2dyb3VuZDogdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9p bWcvcmQubWFyY2FfY2l0YV9maW4uZ2lmKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IDk3 JSA5OCU7IHBhZGRpbmc6MCAzM3B4IDEwcHggMDt9DQouYXJ0aWN1bG8gLnBib3ggLmxpbmstZGxkIC5y ZWxhdGVkLWxpbmsgYXsgY29sb3I6IzY2NjY2Njt9DQoNCi8qdGFibGEgZGUgZGF0b3MqLw0KLnRleHQg dGFibGV7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNENEQwQzg7IGJvcmRlci1yaWdo dDoxcHggc29saWQgI0Q0RDBDODsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO30NCi50ZXh0IHRoLC50 ZXh0IHRkeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRDREMEM4OyBib3JkZXItbGVmdDoxcHggc29s aWQgI0Q0RDBDODsgZm9udC1zaXplOjExcHg7IGNvbG9yOiM2NjY2NjY7IHBhZGRpbmc6M3B4OyBib3Jk ZXItY29sbGFwc2U6Y29sbGFwc2U7fQ0KLnRleHQgdGggYSwudGV4dCB0ZCBheyBjb2xvcjojOTkwMDAw OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCi50ZXh0IHRoIHsgYmFja2dyb3VuZC1jb2xvcjoj RjhGOEY4fQ0KLnRleHQgdGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9DQoNCi8qdGFibGEgZGUg ZGF0b3MqLw0KLnRhYmxhZGF0b3MgdGFibGV7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IHNvbGlk ICNENEQwQzg7IGJvcmRlci1yaWdodDoxcHggc29saWQgI0Q0RDBDODsgYm9yZGVyLWNvbGxhcHNlOmNv bGxhcHNlO30NCi50YWJsYWRhdG9zIHRoLC50YWJsYWRhdG9zIHRkeyBib3JkZXItYm90dG9tOjFweCBz b2xpZCAjRDREMEM4OyBib3JkZXItbGVmdDoxcHggc29saWQgI0Q0RDBDODsgZm9udC1zaXplOjExcHg7 IGNvbG9yOiM2NjY2NjY7IHBhZGRpbmc6M3B4OyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7fQ0KLnRh YmxhZGF0b3MgdGggYSwudGFibGFkYXRvcyB0ZCBheyBjb2xvcjojOTkwMDAwO30NCi50YWJsYWRhdG9z IHRoIHsgYmFja2dyb3VuZC1jb2xvcjojRjhGOEY4fQ0KLnRhYmxhZGF0b3MgdGQgeyBiYWNrZ3JvdW5k LWNvbG9yOiNGRkZGRkZ9DQoNCi5mb3RvZ2FsZXJpYXN7IGJhY2tncm91bmQtY29sb3I6I0YyRjJGMjsg cGFkZGluZzo1cHggMDsgbWFyZ2luOjAgMCAxMHB4IDB9DQouZm90b2dhbGVyaWFzIC5uYXZlZ2FjaW9u X2dhbGVyaWF7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MHB4IDVweCAzcHggNXB4O30NCi5mb3RvZ2FsZXJp YXNIeyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiNEQ0RDREM7IHBvc2l0aW9uOnJlbGF0aXZl OyBtYXJnaW46MCAwIDEwcHggMDsgb3ZlcmZsb3c6aGlkZGVuO30NCi5mb3RvZ2FsZXJpYXNIIC5waG90 b3sgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IGJhY2tncm91 bmQtY29sb3I6I0RDRENEQzsgcGFkZGluZzo1cHggMCAwIDB9DQouZm90b2dhbGVyaWFzSCAucGhvdG8g aW1neyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0bzsgZGlzcGxheTpibG9jazt9DQoubmF2 X2ZnSF9hbnQsLm5hdl9mZ0hfc2lneyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9w OjVweDsgei1pbmRleDozOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3Rp bGxhLmVzL2ltZy9yZC5uYXZfZmdILnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IHdp ZHRoOjIxcHg7IGZvbnQtc2l6ZToxcHg7IHRleHQtaW5kZW50Oi05OTk5cHg7IG92ZXJmbG93OmhpZGRl bjt9DQoubmF2X2ZnSF9hbnR7IGJhY2tncm91bmQtcG9zaXRpb246MCA1MCU7IGxlZnQ6MHB4O30NCi5u YXZfZmdIX3NpZ3sgYmFja2dyb3VuZC1wb3NpdGlvbjotMjFweCA1MCU7IHJpZ2h0OjBweDt9DQphLm5h dl9mZ0hfYW50OmhvdmVyeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MnB4IDUwJTsgbGVmdDowcHg7fQ0K YS5uYXZfZmdIX3NpZzpob3ZlcnsgYmFja2dyb3VuZC1wb3NpdGlvbjotNjNweCA1MCU7IHJpZ2h0OjBw eDt9DQoubmF2X2ZnSF9mb25kb3sgZGlzcGxheTpub25lO30NCi5mZ0hse2Rpc3BsYXk6YmxvY2s7IHBv c2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjVweDsgd2lkdGg6OHB4OyBiYWNrZ3JvdW5kLWNv bG9yOiNEQ0RDREM7fQ0KLmZnSHJ7ZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0 OjBweDsgdG9wOjVweDsgaGVpZ2h0OjE4MHB4OyB3aWR0aDo4cHg7IGJhY2tncm91bmQtY29sb3I6I0RD RENEQzt9DQoNCi5jb2xBQl9hcnRpY3Vsb3sgZmxvYXQ6bGVmdDsgd2lkdGg6NjYycHg7fQ0KLmNvbENf YXJ0aWN1bG97IGZsb2F0OnJpZ2h0OyB3aWR0aDozMTJweDt9DQouY29sQ19hcnRpY3VsbyAuY29sQ3sg ZmxvYXQ6bm9uZTsgd2lkdGg6YXV0bzt9DQouY29sQ19hcnRpY3Vsb19jb250ZW5pZG97IGJvcmRlci1i b3R0b206MXB4IHNvbGlkICNFREVERUQ7IHBhZGRpbmc6MCAwIDJweCAwOyBtYXJnaW46MCAwIDEwcHgg MH0NCg0KLmFydGljdWxvMiAuY29sQUJfYXJ0aWN1bG97IGZsb2F0OnJpZ2h0O30NCi5hcnRpY3VsbzIg LmNvbENfYXJ0aWN1bG97IGZsb2F0OmxlZnQ7fQ0KDQovKi0tLSBCQVJSQSBERSBBUlRJQ1VMTyAtLS0q Lw0KLmFydF9iYXJyYXsgY2xlYXI6Ym90aDsgaGVpZ2h0OjMwcHg7IGJvcmRlcjoxcHggc29saWQgI0U4 RThFODsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTA7fQ0KDQovKmVzdHJlbGxhcyovDQouY29u dGVuaWRvZXN0cmVsbGFzeyBmbG9hdDpsZWZ0OyBtYXJnaW46OHB4IDAgMCAwOyBwYWRkaW5nOjAgMCAw IDlweH0NCi5zdGFydm90b3Mge3Bvc2l0aW9uOnJlbGF0aXZlOyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDov L3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5zcHJfZXN0cmVsbGFzLnBuZykgcmVwZWF0LXggMCAw OyB3aWR0aDo4N3B4OyBoZWlnaHQ6MTZweDsgZmxvYXQ6bGVmdDsgZGlzcGxheTppbmxpbmU7IH0NCgku dnRkbyB7IGJhY2tncm91bmQ6ICNGRkYgdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcv cmQuc3ByX2VzdHJlbGxhcy5wbmcpIHJlcGVhdC14IDAgLTE2cHg7fS8qcmVzdWx0YWRvcyBhbnRlcmlv cmVzIGEgbGEgdm90YWNp824gZGVsIHVzdWFyaW8gYWN0dWFsKi8NCgkuc3RhcnZvdG9zIGEgeyBvdXRs aW5lLXN0eWxlOm5vbmU7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyBoZWlnaHQ6MTZw eDsgdGV4dC1pbmRlbnQ6LTk5OTlweDt9DQoJLnN0YXJ2b3RvcyBhOmhvdmVyIHsgYmFja2dyb3VuZDog I0ZGRiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5zcHJfZXN0cmVsbGFzLnBu ZykgcmVwZWF0LXggMHB4IC0xNnB4O30NCgkuc3RhcnZvdG9zIC52dDEge3dpZHRoOjE3cHg7IHotaW5k ZXg6Nzt9DQoJLnN0YXJ2b3RvcyAudnQyIHt3aWR0aDozNHB4OyB6LWluZGV4OjY7fQ0KCS5zdGFydm90 b3MgLnZ0MyB7d2lkdGg6NTFweDsgei1pbmRleDo1O30NCgkuc3RhcnZvdG9zIC52dDQge3dpZHRoOjY4 cHg7IHotaW5kZXg6NDt9DQoJLnN0YXJ2b3RvcyAudnQ1IHt3aWR0aDo4NXB4OyB6LWluZGV4OjM7fQ0K Lm51bWVyb192b3Rvc3sgZmxvYXQ6bGVmdDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjExcHg7IGNv bG9yOiMzMzM7IGxpbmUtaGVpZ2h0OjE2cHg7IG1hcmdpbjowIDAgMCA2cHh9DQoNCi8qY29tcGFydGly Ki8NCi5hcnRfY29tcGFydGlyeyBmbG9hdDpyaWdodDt9DQouYXJ0X2NoNXsgZmxvYXQ6bGVmdDsgcGFk ZGluZzowIDVweCAwIDA7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjojNDc0NzQ3OyBsaW5lLWhlaWdodDoz MHB4O30NCi5hcnRfY2g1X2NvbWVudGFyaW9zeyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojQzAwO30N Ci5hcnRfY29tcGFydGlyIHVseyBmbG9hdDpsZWZ0O30NCi5hcnRfY29tcGFydGlyIGxpeyBmbG9hdDps ZWZ0OyBtYXJnaW46MCA0cHg7fQ0KLmFydF9jb21wYXJ0aXIgbGkgYXsgb3V0bGluZS1zdHlsZTpub25l OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxh LmVzL2ltZy9yZC5zcHJfY29tcGF0aXIucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsg ZGlzcGxheTpibG9jazsgaGVpZ2h0OjMwcHg7IHRleHQtaW5kZW50Oi05OTk5cHg7IGZvbnQtc2l6ZTox cHg7IH0NCi5hcnRfY29tcGFydGlyIGxpIGE6aG92ZXJ7IGZpbHRlcjphbHBoYShvcGFjaXR5PTc4KTst bW96LW9wYWNpdHk6Ljc4O29wYWNpdHk6Ljc4O30NCg0KLmFjX2J0bjEgYXsgYmFja2dyb3VuZC1wb3Np dGlvbjogMHB4IDUwJTsgd2lkdGg6MTVweDt9DQouYWNfYnRuMiBheyBiYWNrZ3JvdW5kLXBvc2l0aW9u OiAtMTVweCA1MCU7IHdpZHRoOjE0cHg7fQ0KLmFjX2J0bjMgYXsgYmFja2dyb3VuZC1wb3NpdGlvbjog LTI5cHggNTAlOyB3aWR0aDoxNXB4O30NCi5hY19idG40IGF7IGJhY2tncm91bmQtcG9zaXRpb246IC00 NHB4IDUwJTsgd2lkdGg6MjBweDt9DQouYWNfYnRuNSBheyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRw eCA1MCU7IHdpZHRoOjE2cHg7fQ0KLmFjX2J0bjYgYXsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHgg NTAlOyB3aWR0aDoxNnB4O30NCi5hY19idG43IGF7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IDUw JTsgd2lkdGg6MTZweDt9DQoNCi8qaGVycmFtaWVudGFzKi8NCi5hcnRfaGVycmFtaWVudGFzeyBoZWln aHQ6MzBweDsgbGluZS1oZWlnaHQ6MzBweDsgYmFja2dyb3VuZC1jb2xvcjojRjZGNkY2OyBmbG9hdDpy aWdodDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNFOEU4RTh9DQouYXJ0X2hlcnJhbWllbnRhcyBsaXsg ZmxvYXQ6bGVmdDsgbWFyZ2luOjAgNHB4O30NCi5hcnRfaGVycmFtaWVudGFzIGxpIGF7ZmxvYXQ6bGVm dDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvcmQu c3ByX2hlcnJhbWllbnRhc19hcnRpY3Vsby5wbmcpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0 OyB3aWR0aDoxNXB4OyBoZWlnaHQ6MzBweDsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmJsb2NrOyB0 ZXh0LWluZGVudDotOTk5OXB4OyBmb250LXNpemU6MXB4OyB9DQouYXJ0X2hlcnJhbWllbnRhcyBsaSBh e2Zsb2F0OmxlZnQ7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEu ZXMvaW1nL3JkLnNwcl9oZXJyYW1pZW50YXNfYXJ0aWN1bG8ucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6 IG5vLXJlcGVhdDsgd2lkdGg6MTVweDsgaGVpZ2h0OjMwcHg7IG92ZXJmbG93OmhpZGRlbjsgZGlzcGxh eTpibG9jazsgdGV4dC1pbmRlbnQ6LTk5OTlweDsgZm9udC1zaXplOjFweDsgfQ0KLmFydF9oZXJyYW1p ZW50YXMgbGkgYS5hY3Rpdm97fQ0KLmFoX2ltcHJpbWlyeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjBweCA1 MCV9DQouYWhfZW52aWFyeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTVweCA1MCV9DQouYWhfcmVjdGlm aWNhcnsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMwcHggNTAlfQ0KDQouYW5jbGFvcGluYXsgY29sb3I6 IzQ3NDc0Nzt9DQoNCi8qZm9ybXVsYXJpb3MgZGUgZW52aWFyIHkgcmVjdGlmaWNhciovDQouY29udGVu aWRvX2Zvcm1fYXJ0aWN1bG97IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmJsb2NrOyBtaW4taGVp Z2h0OjFweDsgaGVpZ2h0OmF1dG87IGNsZWFyOmJvdGg7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luOjEw cHggMDt9DQouY29udGVuaWRvX2Zvcm1fYXJ0aWN1bG8gLmZvcm1fYXJ0eyBwb3NpdGlvbjphYnNvbHV0 ZTsgd2lkdGg6MTAwJTsgbGVmdDowcHg7fQ0KI2Zvcm0tYXJ0aWN1bG8tdG9wIC5mb3JtX2FydHsgdG9w OjMwcHg7fQ0KI2Zvcm0tYXJ0aWN1bG8tYm90dG9tIC5mb3JtX2FydHsgYm90dG9tOjMwcHg7fQ0KDQov KmZvcm11bGFyaW9zIGFydO1jdWxvIGNvbWVudGFyaW9zKi8NCi5mb3JtX2FydHsgYm9yZGVyOjFweCBz b2xpZCAjQ0VDRUNFO30NCi5mcm1faGVhZGVyeyBwYWRkaW5nOjAgNXB4OyBmb250LXNpemU6MThweDsg Y29sb3I6IzMzMzsgbGluZS1oZWlnaHQ6MzZweDsgaGVpZ2h0OjM2cHg7IGJhY2tncm91bmQ6IHVybCho dHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL3JkLmJnX2ZybW9faGVhZGVyLmpwZykgcmVwZWF0 LXggdG9wOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjQ0VDRUNFO30NCi5mcm1fY29udGVudHsgcGFk ZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjQ7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjoj NjY2O30NCi5mcm1fdHh0eyBwYWRkaW5nOjAgMCAxMHB4IDB9DQouZnJtX3R4dCBheyBmb250LXdlaWdo dDpib2xkOyBjb2xvcjojNjY2O30NCi5mcm1fY29udGVudCAuZW5sYWNleyBmb250LXdlaWdodDpib2xk OyBjb2xvcjojNjY2O30NCi5mb3JtX2FydCB0ZXh0YXJlYXsgY29sb3I6IzMzMzsgYm9yZGVyOjFweCBz b2xpZCAjQ0VDRUNFO30NCi5mb3JtX2FydCAuY2FqYXsgd2lkdGg6OTklOyBib3JkZXI6MXB4IHNvbGlk ICNDRUNFQ0U7fQ0KLmZvcm1fYXJ0IC5hc3RlcmlzY28sLmZvcm1fYXJ0IC5vYmxpZ2F0b3Jpb3sgY29s b3I6IzkwMDsgZm9udC1zaXplOjEwcHg7fQ0KLmZvcm1fYXJ0IGEuY2VycmFyeyBkaXNwbGF5OmJsb2Nr OyBtYXJnaW46NHB4IDAgMCAwOyBwYWRkaW5nOjAgNHB4OyBmbG9hdDpyaWdodDsgaGVpZ2h0OjIwcHgh aW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNHB4O30NCg0KLmZybV9penF7IGZsb2F0OmxlZnQ7IHBhZGRp bmc6MCAxMHB4IDAgMH0NCi5mcm1faXpxIC5jYWpheyB3aWR0aDoyMDBweDt9DQouZnJtX2RlcnsgZmxv YXQ6cmlnaHQ7fQ0KLmZybV9kZXIgdGV4dGFyZWF7IHdpZHRoOjE5MHB4OyBoZWlnaHQ6NzBweDt9DQoN Ci5mcm1fYXJ0X2VudmlheyBkaXNwbGF5Om5vbmU7fQ0KLmZybV9hcnRfcmVjdGlmaWNheyBkaXNwbGF5 Om5vbmU7fQ0KLmZybV9hcnRfcmVjdGlmaWNhIC5mcm1faXpxIC5jYWphe3dpZHRoOjMwMHB4O30NCi5m cm1fYXJ0X3JlY3RpZmljYSAuZnJtX2RlciB0ZXh0YXJlYXsgd2lkdGg6MjkwcHg7fQ0KDQouZnJtb19p enF7IGZsb2F0OmxlZnQ7IHdpZHRoOjM1JTt9DQouZnJtb19kZXJ7IGZsb2F0OnJpZ2h0OyB3aWR0aDo2 MiU7fQ0KLmZvcm1fb3BpbmF7IG1hcmdpbjowIDAgMTBweCAwfQ0KLmZvcm1fb3BpbmEgdGV4dGFyZWF7 IHdpZHRoOjM5MHB4OyBoZWlnaHQ6ODBweDt9DQouZm9ybV9vcGluYSAuY2FqYXsgd2lkdGg6OTklO30N Ci5mcm1vcF9ib3R0b217IGJvcmRlci10b3A6MXB4IHNvbGlkICNDRUNFQ0U7IGJhY2tncm91bmQtY29s b3I6I0VFRTsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IHBhZGRpbmc6MnB4IDAgfQ0K LmZybW9wX2JvdHRvbSAuYm90b257IGxpbmUtaGVpZ2h0OjI0cHg7fQ0KDQovKmNvbWVudGFyaW9zKi8N Ci5hcnRfY29tZW50YXJpb3N7IGNsZWFyOmJvdGg7fQ0KLmNvbWVudF9oZWFkZXJ7IGZvbnQtc2l6ZToy MHB4OyBwYWRkaW5nOjAgNXB4OyBoZWlnaHQ6MzZweDsgbGluZS1oZWlnaHQ6MzZweDsgZm9udC13ZWln aHQ6Ym9sZDsgY29sb3I6IzMzMzsgYm9yZGVyLXRvcDoxcHggZG90dGVkICMzMzM7IGJvcmRlci1ib3R0 b206MXB4IGRvdHRlZCAjMzMzOyBtYXJnaW46MCAwIDZweCAwfQ0KLmJsb3F1ZV9jb21lbnRhcmlvc3t9 DQouY29udGVuaWRvX2NvbWVudGFyaW9zeyBwYWRkaW5nOjVweH0NCi5udW1fb3BpbmlvbmVzeyBmb250 LXNpemU6MTRweDsgY29sb3I6IzkwMDsgcGFkZGluZzowIDAgM3B4IDA7IGZvbnQtd2VpZ2h0OmJvbGQ7 fQ0KLnBlc3RhbmFzX2NvbWVudGFyaW9zeyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNh c3RpbGxhLmVzL2ltZy9yZC5mX3Blc3RhbmEuanBnKSByZXBlYXQteCAwIDA7IGhlaWdodDoyNXB4O30N Ci5wZXN0YW5hc19jb21lbnRhcmlvcyBsaXsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI1cHg7fQ0KLnBlc3Rh bmFzX2NvbWVudGFyaW9zIGxpIGF7IGZsb2F0OmxlZnQ7IGhlaWdodDoyNXB4OyBsaW5lLWhlaWdodDoz MHB4OyBjb2xvcjojMzMzOyBmb250LXNpemU6MTFweDsgcGFkZGluZzowIDVweDt9DQoucGVzdGFuYXNf Y29tZW50YXJpb3MgbGkgYS5hY3Rpdm97ICBsaW5lLWhlaWdodDoyNXB4OyBoZWlnaHQ6MjVweDsgZm9u dC13ZWlnaHQ6Ym9sZDsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyBib3JkZXItbGVmdDoxcHggc29saWQg I0NFQ0VDRTsgYm9yZGVyLXRvcDoxcHggc29saWQgI0NFQ0VDRTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xp ZCAjQ0VDRUNFO30NCi5jb250ZW5pZG9fY29tZW50YXJpb3N7IGNsZWFyOmJvdGg7fQ0KLm9waW5pb257 ICBwYWRkaW5nOjExcHggMCAwIDA7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjojNkQ2RDZEOyAgYmFja2dy b3VuZDogdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvcmQuYnJkX3B1bnRvc0guZ2lm KSByZXBlYXQteCB0b3A7IH0NCi5vcGluaW9uIC5hdXRvcnsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEx cHg7IHBhZGRpbmc6MCAwIDAgMTBweDsgY29sb3I6IzMzMzsgZm9udC13ZWlnaHQ6Ym9sZDsgIGJhY2tn cm91bmQ6IHVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL3JkLm1hcmNhX29waW5pb25f YXV0b3IuZ2lmKSBuby1yZXBlYXQgMHB4IDZweDsgbGluZS1oZWlnaHQ6MTRweDsgfQkJLm9waW5pb24g LmZlY2hheyBmbG9hdDpyaWdodDsgZm9udC1zaXplOjEwcHg7IGxpbmUtaGVpZ2h0OjE0cHg7fQ0KLm9w aW5pb24gLmhvcmF7IGNvbG9yOiM5NDAwMDA7fQ0KLm9waW5pb24gLnRleHRveyBjbGVhcjpib3RoOyBw YWRkaW5nOjNweCAwIDEwcHggMTBweDsgd29yZC13cmFwOiBicmVhay13b3JkO30NCi5kZXRhbGxlcy1v cGluaW9ueyBjbGVhcjpib3RoO30NCi5mYXZvcmNvbnRyYXsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHgg MCA2cHggMDsgZm9udC1zaXplOjExcHg7IGNvbG9yOiM2RDZENkQ7fQ0KLmZvcm1kZW51bmNpYXJ7IGNs ZWFyOmxlZnQ7IHBhZGRpbmc6NnB4IDAgNnB4IDB9DQpzcGFuLmFmYXZvcixhLmFmYXZvcjpob3Zlcnsg Zm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzY2Q0MwMDsgZGlzcGxheTpibG9jazsgcGFkZGluZzo2cHgg NnB4IDZweCAyMnB4OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2lt Zy9yZC5pY29fYWZhdm9yLmdpZikgbm8tcmVwZWF0IDBweCA0cHg7IGZsb2F0OmxlZnQ7fQ0Kc3Bhbi5l bmNvbnRyYSxhLmVuY29udHJhOmhvdmVyeyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojQ0MwMDAwOyBk aXNwbGF5OmJsb2NrOyBwYWRkaW5nOjZweCA2cHggNnB4IDIycHg7IGJhY2tncm91bmQ6IHVybChodHRw Oi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL3JkLmljb19lbmNvbnRyYS5naWYpIG5vLXJlcGVhdDsg YmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDRweDsgZmxvYXQ6bGVmdDt9DQphLmFmYXZvcnsgY29sb3I6 IzZENkQ2RDsgZGlzcGxheTpibG9jazsgcGFkZGluZzo2cHggNnB4IDZweCAyMnB4OyBiYWNrZ3JvdW5k OiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5pY29fYWZhdm9yLmdpZikgbm8t cmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggNHB4OyBmbG9hdDpsZWZ0O30NCmEuZW5jb250 cmF7Y29sb3I6IzZENkQ2RDsgZGlzcGxheTpibG9jazsgcGFkZGluZzo2cHggNnB4IDZweCAyMnB4OyBi YWNrZ3JvdW5kOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5pY29fZW5jb250 cmEuZ2lmKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCA0cHg7IGZsb2F0OmxlZnQ7 fQ0KLmZhdm9yY29udHJhIC5tZW5zYWple2Rpc3BsYXk6YmxvY2s7IHBhZGRpbmc6NnB4OyBmbG9hdDps ZWZ0O30NCmEuaW5hZGVjdWFkb3sgZGlzcGxheTpibG9jazsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmc6NHB4 IDZweCA0cHggNnB4O30JDQphLmluYWRlY3VhZG8gaW1neyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IHBh ZGRpbmc6MCA4cHggMCAwfQ0KDQoub3BpbmlvbiBhLm9waW5pb25fYWNjaW9ueyBmbG9hdDpsZWZ0OyBt YXJnaW46MCAwIDAgNXB4OyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxNnB4OyBoZWlnaHQ6MTVweDsgb3Zl cmZsb3c6aGlkZGVuOyB0ZXh0LWluZGVudDotOTk5OXB4OyBmb250LXNpemU6MXB4OyBiYWNrZ3JvdW5k LWltYWdlOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5zcHJfYWNjaW9uX2Nv bWVudGFyaW9zLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7fQ0KLm9waW5pb24gYS5k ZXNhcHJvYmFyeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAwcHg7IH0ub3BpbmlvbiBhLmRlc2Fw cm9iYXI6aG92ZXJ7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNnB4OyB9Lm9waW5pb24gYS5l bGltaW5hcnsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDBweDsgfS5vcGluaW9uIGEuZWxpbWluYXI6 aG92ZXJ7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTZweDsgfQ0KDQouYm90b25lc19saXN0YWRv eyBjbGVhcjpib3RoOyBwYWRkaW5nOjVweCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0 bzt9DQouYm90b25lc19saXN0YWRvIC5saXN0YWRvX3NlZ3VpbWllbnRveyBoZWlnaHQ6MjVweDsgYm9y ZGVyOjFweCBzb2xpZCAjQ0VDRUNFOyBiYWNrZ3JvdW5kLWNvbG9yOiNGN0Y3Rjc7IGZvbnQtc2l6ZTox MHB4OyBjb2xvcjojMDAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHh9DQouYm90b25lc19s aXN0YWRvIC5saXN0YWRvX3NlZ3VpbWllbnRvIHN0cm9uZ3sgY29sb3I6IzkwMDt9DQoJCQkNCi5mb3Jt ZGVudW5jaWFyeyBiYWNrZ3JvdW5kOiNGNkY2RjQgdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5l cy9pbWcvcmQuYnJkX3B1bnRvc0guZ2lmKSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9w OyBwYWRkaW5nOjZweDt9DQouZm9ybWRlbnVuY2lhciBweyBjb2xvcjojMzMzMzMzOyBmb250LXNpemU6 MTBweDsgcGFkZGluZzowIDAgNnB4IDB9DQouZm9ybWRlbnVuY2lhciB0ZXh0YXJlYXsgd2lkdGg6NjYl OyBoZWlnaHQ6NTVweDsgbWFyZ2luOjAgNnB4IDAgMDsgZm9udC1mYW1pbHk6QXJpYWwsIEhlbHZldGlj YSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOjExcHg7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfQ0KLmZv cm1kZW51bmNpYXIgLmdyYWNpYXN7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjhweCAwIDhweCAw fQ0KDQoNCi8qKi8NCi50YWdzX3JlbGFjaW9uYWRvc3sgY2xlYXI6Ym90aDsgcGFkZGluZzoxNXB4IDAg MCAwO30NCi5hdHJfZW5jYWJ7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojNDc0NzQ3OyBsaW5lLWhlaWdo dDoxOHB4OyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjAgMCAwIDVweH0NCi5hdHJfdGFnc3sgYm9y ZGVyLXRvcDoxcHggc29saWQgI0M2QzhDQTsgYmFja2dyb3VuZC1jb2xvcjojRjdGN0Y3OyBwYWRkaW5n OjhweCAxMHB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojNDc0NzQ3O30N Ci5hdHJfdGFneyBkaXNwbGF5OmlubGluZTsgY29sb3I6IzQ3NDc0NzsgZm9udC13ZWlnaHQ6bm9ybWFs OyB9DQo= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/css/rd.print.css" Content-Type: text/css Content-Transfer-Encoding: base64 Content-ID: ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.comentarios.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqIENvbWVudGFyaW9zICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCgp2YXIgaWRzX25vdGljaWFzID0gJyc7CgpmdW5jdGlvbiBnZXROdW1D b21lbnRhcmlvc1BvcnRhZGEoaWQpIHsKCglpZHNfbm90aWNpYXMgPSAoaWRzX25vdGljaWFzICE9ICcn KSA/IGlkc19ub3RpY2lhcyArICd8JyArIGlkIDogaWQ7CgoJaWYgKHdpbmRvdy5kb2N1bWVudC5nZXRF bGVtZW50QnlJZCgnbnVtLWNvbWVudGFyaW9zLScgKyBpZCkpIHdpbmRvdy5kb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgnbnVtLWNvbWVudGFyaW9zLScgKyBpZCkuaW5uZXJIVE1MID0gJ0NvbWVudGEgZXN0YSBu b3RpY2lhJzsKCiB9CgogZnVuY3Rpb24gc2V0TnVtQ29tZW50YXJpb3NQb3J0YWRhKGlkLCB2KSB7Cgog CXYgPSB0eXBlb2YodikgIT0gJ3VuZGVmaW5lZCcgPyB2IDogJyc7CgogCXZhciBkaXI7CgogCWlmIChp ZCkgewogCQl2YXIgaHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKCiAJCWRpciA9ICcvYmFja2Vu ZC9jb21lbnRhcmlvcycgKyB2ICsgJy9nZXRDb21lbnRhcmlvc1BvcnRhZGEucGhwP2lkPScgKyBpZCAr ICcmYnk9ZGF0ZSc7CgogICAgICAgICAgICAgICAgICAgIGh0dHAub3BlbignZ2V0JywgZGlyKTsKICAg ICAgICAgICAgICAgICAgICBodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAg CQkJCSBpZihodHRwLnJlYWR5U3RhdGUgPT0gNCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAJ aWYgKGh0dHAucmVzcG9uc2VUZXh0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmFyIGNhbXBvcyA9IGh0dHAucmVzcG9uc2VUZXh0LnNwbGl0KCd8Jyk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpbWl0ZSA9IGNhbXBvcy5sZW5n dGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSBsaW1p dGUgLSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJY2FtcG9zMiA9IGNhbXBvc1tp XS5zcGxpdCgnQCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCXZhciBudW0gPSBjYW1wb3MyWzFdOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobnVtKSB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJY2FzZSAnMCc6CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJCWlmICh3aW5kb3cuZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoJ251bS1jb21lbnRhcmlvcy0nICsgY2FtcG9zMlswXSkpIHdpbmRvdy5kb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgnbnVtLWNvbWVudGFyaW9zLScgKyBjYW1wb3MyWzBdKS5pbm5lckhUTUwgPSAn Q29tZW50YSBlc3RhIG5vdGljaWEnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCQlicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAljYXNlICcxJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAkJaWYgKHdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVt LWNvbWVudGFyaW9zLScgKyBjYW1wb3MyWzBdKSkgd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCdudW0tY29tZW50YXJpb3MtJyArIGNhbXBvczJbMF0pLmlubmVySFRNTCA9ICc8c3Ryb25nPicgKyBu dW0gKyAnPC9zdHJvbmc+IENvbWVudGFyaW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCQlicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAlkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCQlpZiAod2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCdudW0tY29tZW50YXJpb3MtJyArIGNhbXBvczJbMF0pKSB3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoJ251bS1jb21lbnRhcmlvcy0nICsgY2FtcG9zMlswXSkuaW5uZXJIVE1MID0gJzxzdHJvbmc+ JyArIG51bSArICc8L3N0cm9uZz4gQ29tZW50YXJpb3MnOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCQlicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 aGlsZSAoaS0tKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAg ICAgIGh0dHAuc2VuZChudWxsKTsKIAl9CiB9CgogICAJZnVuY3Rpb24gZ2V0TnVtQ29tZW50YXJpb3Mo aWQpIHsKCWlmIChpZCkgewoJCXZhciBodHRwID0gY3JlYXRlUmVxdWVzdE9iamVjdCgpOwoJCS8vaHR0 cC5vcGVuKCJnZXQiLCAiL2JhY2tlbmQvY29tZW50YXJpb3MvZ2V0Q29tZW50YXJpb3MucGhwP2lkPSIg KyBpZCArICImYnk9ZGF0ZSZyPSIgKyBNYXRoLnJhbmRvbSgpKTsKCQlodHRwLm9wZW4oImdldCIsICIv YmFja2VuZC9jb21lbnRhcmlvcy9nZXRDb21lbnRhcmlvcy5waHA/aWQ9IiArIGlkICsgIiZieT1kYXRl Iik7CgkJaHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CgoJCQlpZihodHRwLnJl YWR5U3RhdGUgPT0gNCl7CgkJCQlpZiAoaHR0cC5yZXNwb25zZVhNTCkgewoJCQkJCWlmIChodHRwLnJl c3BvbnNlVGV4dC5pbmRleE9mKCdjb21tZW50cycpICE9IC0xKSB7CgkJCQkJLy9pZiAoaHR0cC5yZXNw b25zZVhNTC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29tbWVudHMnKSkgewoJCQkJCQl2YXIgbnVtID0g aHR0cC5yZXNwb25zZVhNTC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndG90YWxfY29tbWVudHMnKVswXS5m aXJzdENoaWxkLmRhdGE7CgkJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVtLWNv bWVudGFyaW9zJykuaW5uZXJIVE1MID0gJygnICsgbnVtICsgJyknOwoJCQkJCX0KCgkJCQl9CgkJCX0K CQl9OwoJCWh0dHAuc2VuZChudWxsKTsKCX0KfQoKCmZ1bmN0aW9uIGdldENvbWVudGFyaW9zKGlkLCBi eSwgdiwgYSkgewoKCXYgPSB0eXBlb2YodikgIT0gJ3VuZGVmaW5lZCcgPyB2IDogJyc7CglhID0gdHlw ZW9mKGEpICE9ICd1bmRlZmluZWQnID8gYSA6IDE7CgoJdmFyIGRpcjsKCglpZiAoaWQpIHsKCQl2YXIg aHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKCgkJZGlyID0gJy9iYWNrZW5kL2NvbWVudGFyaW9z JyArIHYgKyAnL2dldENvbWVudGFyaW9zLnBocD9pZD0nICsgaWQgKyAnJmJ5PScgKyBieSArIChhID8g JycgOiAnJnI9JyArIE1hdGgucmFuZG9tKCkpOwoKCQlodHRwLm9wZW4oJ2dldCcsIGRpcik7CgkJaHR0 cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CgoJCQlpZihodHRwLnJlYWR5U3RhdGUg PT0gNCl7CgkJCQlpZiAoaHR0cC5yZXNwb25zZVhNTCkgewoJCQkJCWlmIChodHRwLnJlc3BvbnNlVGV4 dC5pbmRleE9mKCdjb21tZW50cycpICE9IC0xKSB7CgoJCQkJCQlldmFsKCdtdWVzdHJhQ29tZW50YXJp b3MnICsgdiArICcoaHR0cC5yZXNwb25zZVhNTCknKTsKCgkJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRF bGVtZW50QnlJZCgnbG9tYXNyZWNpZW50ZScpLmNsYXNzTmFtZSA9IChieSA9PSAnZGF0ZScpID8gJ2Fj dGl2bycgOiAnJzsKCQkJCQkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb21hc3ZhbG9y YWRvJykuY2xhc3NOYW1lID0gKGJ5ID09ICd2b3RlcycpID8gJ2FjdGl2bycgOiAnJzsKCQkJCQl9CgoJ CQkJfQoJCQl9CgkJfTsKCQlodHRwLnNlbmQobnVsbCk7Cgl9Cn0KCgoKZnVuY3Rpb24gbXVlc3RyYUNv bWVudGFyaW9zKHJlc3BvbnNlKSB7CgoJdmFyIGNvbnRlbmlkbzsKCXZhciBodG1sOwoJdmFyIGZlY2hh X2xvYWQgPSBuZXcgRGF0ZSgpOwoJdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsKCXZhciBw b3NpdGl2ZV92b3RlczsKCXZhciBuZWdhdGl2ZV92b3RlczsKCgl2YXIgbGltaXRlID0gcmVzcG9uc2Uu Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NvbW1lbnQnKS5sZW5ndGg7CglodG1sID0gJzxkaXYgY2xhc3M9 Im51bW9waW5pb25lcyI+PHNwYW4+JyArIHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0b3Rh bF9jb21tZW50cycpWzBdLmZpcnN0Q2hpbGQuZGF0YSArICcgT1BJTklPTkVTPC9zcGFuPjwvZGl2Pic7 CgoJbGltaXRlX2IgPSAobGltaXRlID4gNSkgPyA1IDogbGltaXRlOwoKCWZvciAoaSA9IDA7IGkgPCBs aW1pdGVfYjsgaSsrKSB7CgoJCWlkID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lkJylb aV0uZmlyc3RDaGlsZC5kYXRhOwoJCWZlY2hhID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUo J2RhdGUnKVtpXS5maXJzdENoaWxkLmRhdGE7CgkJY2FtcG9zID0gZmVjaGEuc3BsaXQoJyAnKTsKCQlo b3JhID0gY2FtcG9zWzNdOwoJCW5vbWJyZSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdu YW1lJylbaV0uZmlyc3RDaGlsZCA/IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCduYW1lJylb aV0uZmlyc3RDaGlsZC5kYXRhIDogJyc7CgkJaWYgKGJyb3dzZXIgPT0gJ01pY3Jvc29mdCBJbnRlcm5l dCBFeHBsb3JlcicpewoJCQl0ZXh0byA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjb250 ZW50JylbaV0uZmlyc3RDaGlsZC5kYXRhOwoJCX0KCQllbHNlIHsKCQkJdGV4dG8gPSByZXNwb25zZS5n ZXRFbGVtZW50c0J5VGFnTmFtZSgnY29udGVudCcpW2ldLmNoaWxkTm9kZXNbMV0uZGF0YTsKCQl9CgoJ CXBvc2l0aXZlX3ZvdGVzID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Bvc2l0aXZlX3Zv dGVzJylbaV0uZmlyc3RDaGlsZC5kYXRhOwoJCW5lZ2F0aXZlX3ZvdGVzID0gcmVzcG9uc2UuZ2V0RWxl bWVudHNCeVRhZ05hbWUoJ25lZ2F0aXZlX3ZvdGVzJylbaV0uZmlyc3RDaGlsZC5kYXRhOwoKCQlmZWNo YSA9IGNhbXBvc1syXSArICIvIiArIGNhbXBvc1sxXSArICIvIiArIGNhbXBvc1s1XTsKCgkJY29udGVu aWRvID0gJwk8ZGl2IGNsYXNzPSJvcGluaW9uIj4nOwogICAgICAgICAgICAgIAljb250ZW5pZG8gKz0g JzxkaXYgY2xhc3M9ImZlY2hhIj4nICsgZmVjaGEgKyAnIHwgPHNwYW4gY2xhc3M9ImhvcmEiPicgKyBo b3JhICsgJzwvc3Bhbj48L2Rpdj4nOwogICAJCWNvbnRlbmlkbyArPSAnPGgzPicgKyB1bmVzY2FwZShu b21icmUpICsgJzwvaDM+JzsKICAgICAgICAgICAgICAJY29udGVuaWRvICs9ICc8ZGl2IGNsYXNzPSJ0 ZXh0byI+JyArIHVuZXNjYXBlKHRleHRvKSArICc8L2Rpdj4nOwogICAgICAgICAgICAgIAljb250ZW5p ZG8gKz0gJzxkaXYgY2xhc3M9ImRldGFsbGVzLW9waW5pb24iPic7CiAgICAgICAgICAgICAgICBjb250 ZW5pZG8gKz0gJzxkaXYgY2xhc3M9ImZhdm9yY29udHJhIiBpZD0iZmF2b3Jjb250cmEtJyArIGlkICsg JyI+PGEgaHJlZj0iamF2YXNjcmlwdDp2b3RhckNvbWVudGFyaW8oJyArIGlkKyAnLCAxKTsiIGNsYXNz PSJhZmF2b3IiPkEnOwogICAgICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgZmF2b3IgKCcgKyBw b3NpdGl2ZV92b3RlcyArICcpPC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm90YXJDb21lbnRhcmlvKCcg KyBpZCArICcsIDIpOyIgY2xhc3M9ImVuY29udHJhIj5Fbic7CiAgICAgICAgICAgICAgICBjb250ZW5p ZG8gKz0gJyAgICBjb250cmEgKCcgKyBuZWdhdGl2ZV92b3RlcyArICcpPC9hPjwvZGl2Pic7CiAgICAg ICAgICAgICAgICBjb250ZW5pZG8gKz0gJzxkaXYgY2xhc3M9ImluYWRlY3VhZG8iIGlkPSJpbmFkZWN1 YWRvYm90b24iPjxhIGhyZWY9ImphdmFzY3JpcHQ6bW9zdHJhckRlbnVuY2lhcignICsgaWQgKyAnKTsi IGNsYXNzPSJib3RvbiIgdGl0bGU9IkNvbWVudGFyaW8gaW5hZGVjdWFkbyI+PGltZyBzcmM9Ii9pbWcv aWNvX2luYWRlY3VhZG8uZ2lmIiBhbHQ9IkNvbWVudGFyaW8gaW5hZGVjdWFkbyIgLz5Db21lbnRhcmlv JzsKICAgICAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnICAgIGluYWRlY3VhZG88L2E+PC9kaXY+JzsK ICAgICAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pic7CiAg ICAgICAgICAgICAgCWNvbnRlbmlkbyArPSAnPC9kaXY+JzsKICAgICAgICAgICAgICAJY29udGVuaWRv ICs9ICc8ZGl2IGNsYXNzPSJmb3JtZGVudW5jaWFyIiBpZD0iZm9ybWRlbnVuY2lhci0nICsgaWQgKyAn IiBzdHlsZT0iZGlzcGxheTpub25lOyI+JzsKICAgICAgICAgICAgICAJY29udGVuaWRvICs9ICc8Zm9y bSBuYW1lPSJmb3JtdWxhcmlvXycgKyBpZCArICciIGFjdGlvbj0iL2JhY2tlbmQvQ09NRU5UQVJJT1Mu ZGVudW5jaWFyQ29tZW50YXJpby5waHAiIG1ldGhvZD0icG9zdCI+JzsKICAgICAgICAgICAgICAgIGNv bnRlbmlkbyArPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibG9hZF90aW1lIiB2YWx1ZT0iJyAr IGZlY2hhX2xvYWQuZ2V0VGltZSgpICsgJyI+JzsKCQljb250ZW5pZG8gKz0gJzxpbnB1dCB0eXBlPSJo aWRkZW4iIG5hbWU9InN1Ym1pdF90aW1lIiB2YWx1ZT0iMCI+JzsKCQljb250ZW5pZG8gKz0gJzxpbnB1 dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlkIiB2YWx1ZT0iJyArIGlkICsgJyI+JzsKCQljb250ZW5pZG8g Kz0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFuY2hvciIgdmFsdWU9ImNvbWVudGFyaW9zIj4n OwogICAgICAgICAgICAgICAgY29udGVuaWRvICs9ICc8cD5Qb3IgZmF2b3Igc2VsZWNjaW9uYSBlbCBt b3Rpdm8gcG9yIGVsIHF1ZSBjcmVlcyBxdWUgZXN0ZSBjb21lbnRhcmlvJzsKICAgICAgICAgICAgICAg IGNvbnRlbmlkbyArPSAnICBlcyBpbmFkZWN1YWRvIDwvcD4nOwogICAgICAgICAgICAgICAgY29udGVu aWRvICs9ICc8dGV4dGFyZWEgbmFtZT0iZGVudW5jaWFfJyArIGlkICsgJyI+RXNjcmliYSBhcXXDrSBl bCBtb3Rpdm8gZGUgbGEgZGVudW5jaWEuPC90ZXh0YXJlYT4nOwogICAgICAgICAgICAgICAgY29udGVu aWRvICs9ICc8YSBocmVmPSJqYXZhc2NyaXB0OmRlbnVuY2lhckNvbWVudGFyaW8oJyArIGlkICsgJyk7 IiBjbGFzcz0iYm90b24iPmRlbnVuY2lhciBjb21lbnRhcmlvPC9hPic7CiAgICAgICAgICAgICAgICBj b250ZW5pZG8gKz0gJzwvbGFiZWw+JzsKICAgICAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnPGRpdiBj bGFzcz0iY2xlYXIiPjwvZGl2Pic7CiAgICAgICAgICAgICAgCWNvbnRlbmlkbyArPSAnPC9kaXY+JzsK ICAgICAgICAgICAgICAJY29udGVuaWRvICs9ICc8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+JzsKICAg ICAgICAgICAgICAJY29udGVuaWRvICs9ICc8L2Zvcm0+JzsKICAgICAgICAgICAgCWNvbnRlbmlkbyAr PSAnPC9kaXY+JzsKCiAgICAgICAgICAgIAlodG1sICs9IGNvbnRlbmlkbzsKICAgICAgICAJfQoKICAg ICAgICAJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaXN0YWRvLWNvbWVudGFyaW9zJyku aW5uZXJIVE1MID0gaHRtbDsKCiAgICAgICAgCXZlck1hcyhsaW1pdGUpOwoKfQoKZnVuY3Rpb24gbXVl c3RyYUNvbWVudGFyaW9zMihyZXNwb25zZSwgcGFnaW5hKSB7Cgl2YXIgY29udGVuaWRvOwoJdmFyIGh0 bWw7Cgl2YXIgZmVjaGFfbG9hZCA9IG5ldyBEYXRlKCk7Cgl2YXIgYnJvd3NlciA9IG5hdmlnYXRvci5h cHBOYW1lOwoJdmFyIHBvc2l0aXZlX3ZvdGVzOwoJdmFyIG5lZ2F0aXZlX3ZvdGVzOwoJdmFyIG1heF9j b21lbnRhcmlvcyA9IDU7CgoJcGFnaW5hID0gdHlwZW9mKHBhZ2luYSkgIT0gJ3VuZGVmaW5lZCcgPyBw YWdpbmEgOiAxOwoKCXZhciBsaW1pdGUgPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29t bWVudCcpLmxlbmd0aDsKCWh0bWwgPSAnPGRpdiBjbGFzcz0ibnVtb3BpbmlvbmVzIj48c3Bhbj4nICsg cmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RvdGFsX2NvbW1lbnRzJylbMF0uZmlyc3RDaGls ZC5kYXRhICsgJyBPUElOSU9ORVM8L3NwYW4+PC9kaXY+JzsKCglpZiAod2luZG93LmRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCdudW0tY29tZW50YXJpb3MnKSkgewoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgnbnVtLWNvbWVudGFyaW9zJykuaW5uZXJIVE1MID0gJygnICsgcmVzcG9uc2UuZ2V0RWxl bWVudHNCeVRhZ05hbWUoJ3RvdGFsX2NvbW1lbnRzJylbMF0uZmlyc3RDaGlsZC5kYXRhICsgJyknOwoJ fQoKCXZhciBsaW1pdGVfYiA9ICgoKChwYWdpbmEgLSAxKSAqIG1heF9jb21lbnRhcmlvcykgKyBtYXhf Y29tZW50YXJpb3MpID4gbGltaXRlKSA/IGxpbWl0ZSA6ICgoKHBhZ2luYSAtIDEpICogbWF4X2NvbWVu dGFyaW9zKSArIG1heF9jb21lbnRhcmlvcyk7Cgl2YXIgaW5pY2lvID0gKHBhZ2luYSAtIDEpICogbWF4 X2NvbWVudGFyaW9zOwoJdmFyIHBhZ2luYXMgPSBNYXRoLmNlaWwobGltaXRlIC8gbWF4X2NvbWVudGFy aW9zKTsKCgl2YXIgcGFnaW5hX3ZlciA9IChwYWdpbmEgPCAxMCkgPyAnMCcgKyBwYWdpbmEgOiBwYWdp bmE7Cgl2YXIgcGFnaW5hc192ZXIgPSAocGFnaW5hcyA8IDEwKSA/ICcwJyArIHBhZ2luYXMgOiBwYWdp bmFzOwoKCWZvciAodmFyIGkgPSBpbmljaW87IGkgPCBsaW1pdGVfYjsgaSsrKSB7CgoJCXZhciBpZCA9 IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZCcpW2ldLmZpcnN0Q2hpbGQuZGF0YTsKCgkJ dmFyIGZlY2hhID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RhdGUnKVtpXS5maXJzdENo aWxkLmRhdGE7CgkJdmFyIGNhbXBvcyA9IGZlY2hhLnNwbGl0KCcgJyk7CgkJdmFyIGhvcmEgPSBjYW1w b3NbM107CgoJCWZlY2hhID0gY2FtcG9zWzJdICsgIi8iICsgY2FtcG9zWzFdICsgIi8iICsgY2FtcG9z WzVdOwoKCQkvKgoJCXZhciBmZWNoYSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkYXRl JylbaV0uZmlyc3RDaGlsZC5kYXRhOwoJCXZhciBob3JhID0gZmVjaGEuc3Vic3RyKDgsMikgKyAnOicg KyBmZWNoYS5zdWJzdHIoMTAsMikKCQkqLwoJCXZhciBub21icmUgPSByZXNwb25zZS5nZXRFbGVtZW50 c0J5VGFnTmFtZSgnbmFtZScpW2ldLmZpcnN0Q2hpbGQgPyByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFn TmFtZSgnbmFtZScpW2ldLmZpcnN0Q2hpbGQuZGF0YSA6ICcnOwoJCWlmIChicm93c2VyID09ICdNaWNy b3NvZnQgSW50ZXJuZXQgRXhwbG9yZXInKXsKCQkJdmFyIHRleHRvID0gcmVzcG9uc2UuZ2V0RWxlbWVu dHNCeVRhZ05hbWUoJ2NvbnRlbnQnKVtpXS5maXJzdENoaWxkLmRhdGE7CgkJfQoJCWVsc2UgewoJCQl2 YXIgdGV4dG8gPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29udGVudCcpW2ldLmNoaWxk Tm9kZXNbMV0uZGF0YTsKCQl9CgoJCXBvc2l0aXZlX3ZvdGVzID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNC eVRhZ05hbWUoJ3Bvc2l0aXZlX3ZvdGVzJylbaV0uZmlyc3RDaGlsZC5kYXRhOwoJCW5lZ2F0aXZlX3Zv dGVzID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ25lZ2F0aXZlX3ZvdGVzJylbaV0uZmly c3RDaGlsZC5kYXRhOwoJCS8vZmVjaGEgPSBmZWNoYS5zdWJzdHIoNiwyKSArICIvIiArIGZlY2hhLnN1 YnN0cig0LDIpICsgIi8iICsgZmVjaGEuc3Vic3RyKDAsNCk7CgkJY29udGVuaWRvID0gJwk8ZGl2IGNs YXNzPSJvcGluaW9uIj4nOwoJCWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iZmVjaGEiPicgKyBmZWNo YSArICcgfCA8c3BhbiBjbGFzcz0iaG9yYSI+JyArIGhvcmEgKyAnPC9zcGFuPjwvZGl2Pic7CiAgIAkJ Y29udGVuaWRvICs9ICc8aDM+JyArIHVuZXNjYXBlKG5vbWJyZSkgKyAnPC9oMz4nOwoJCWNvbnRlbmlk byArPSAnPGRpdiBjbGFzcz0idGV4dG8iPicgKyB1bmVzY2FwZSh0ZXh0bykgKyAnPC9kaXY+JzsKCQlj b250ZW5pZG8gKz0gJzxkaXYgY2xhc3M9ImRldGFsbGVzLW9waW5pb24iPic7CgkJY29udGVuaWRvICs9 ICc8ZGl2IGNsYXNzPSJmYXZvcmNvbnRyYSIgaWQ9ImZhdm9yY29udHJhLScgKyBpZCArICciPjxhIGhy ZWY9ImphdmFzY3JpcHQ6dm90YXJDb21lbnRhcmlvKCcgKyBpZCsgJywgMSwgMik7IiBjbGFzcz0iYWZh dm9yIj5BJzsKCQljb250ZW5pZG8gKz0gJyAgICBmYXZvciAoJyArIHBvc2l0aXZlX3ZvdGVzICsgJyk8 L2E+PGEgaHJlZj0iamF2YXNjcmlwdDp2b3RhckNvbWVudGFyaW8oJyArIGlkICsgJywgMiwgMik7IiBj bGFzcz0iZW5jb250cmEiPkVuJzsKCQljb250ZW5pZG8gKz0gJyAgICBjb250cmEgKCcgKyBuZWdhdGl2 ZV92b3RlcyArICcpPC9hPjwvZGl2Pic7CgkJY29udGVuaWRvICs9ICc8ZGl2IGNsYXNzPSJpbmFkZWN1 YWRvIiBpZD0iaW5hZGVjdWFkb2JvdG9uIj48YSBocmVmPSJqYXZhc2NyaXB0Om1vc3RyYXJEZW51bmNp YXIoJyArIGlkICsgJyk7IiBjbGFzcz0iYm90b24iIHRpdGxlPSJDb21lbnRhcmlvIGluYWRlY3VhZG8i PjxpbWcgc3JjPSIvaW1nL2ljb19pbmFkZWN1YWRvLmdpZiIgYWx0PSJDb21lbnRhcmlvIGluYWRlY3Vh ZG8iIC8+Q29tZW50YXJpbyc7CgkJY29udGVuaWRvICs9ICcgICAgaW5hZGVjdWFkbzwvYT48L2Rpdj4n OwoJCWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pic7CgkJY29udGVuaWRvICs9 ICc8L2Rpdj4nOwoJCWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iZm9ybWRlbnVuY2lhciIgaWQ9ImZv cm1kZW51bmNpYXItJyArIGlkICsgJyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPic7CgkJY29udGVuaWRv ICs9ICc8Zm9ybSBuYW1lPSJmb3JtdWxhcmlvXycgKyBpZCArICciIGFjdGlvbj0iL2JhY2tlbmQvY29t ZW50YXJpb3MyL2RlbnVuY2lhckNvbWVudGFyaW8ucGhwIiBtZXRob2Q9InBvc3QiPic7CgkJY29udGVu aWRvICs9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsb2FkX3RpbWUiIHZhbHVlPSInICsgZmVj aGFfbG9hZC5nZXRUaW1lKCkgKyAnIj4nOwoJCWNvbnRlbmlkbyArPSAnPGlucHV0IHR5cGU9ImhpZGRl biIgbmFtZT0ic3VibWl0X3RpbWUiIHZhbHVlPSIwIj4nOwoJCWNvbnRlbmlkbyArPSAnPGlucHV0IHR5 cGU9ImhpZGRlbiIgbmFtZT0iaWQiIHZhbHVlPSInICsgaWQgKyAnIj4nOwoJCWNvbnRlbmlkbyArPSAn PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYW5jaG9yIiB2YWx1ZT0iY29tZW50YXJpb3MiPic7CgkJ Y29udGVuaWRvICs9ICc8cD5Qb3IgZmF2b3Igc2VsZWNjaW9uYSBlbCBtb3Rpdm8gcG9yIGVsIHF1ZSBj cmVlcyBxdWUgZXN0ZSBjb21lbnRhcmlvJzsKCQljb250ZW5pZG8gKz0gJyAgZXMgaW5hZGVjdWFkbyA8 L3A+JzsKCQljb250ZW5pZG8gKz0gJzx0ZXh0YXJlYSBuYW1lPSJkZW51bmNpYSI+RXNjcmliYSBhcXXD rSBlbCBtb3Rpdm8gZGUgbGEgZGVudW5jaWEuPC90ZXh0YXJlYT4nOwoJCWNvbnRlbmlkbyArPSAnPGEg aHJlZj0iamF2YXNjcmlwdDpkZW51bmNpYXJDb21lbnRhcmlvKCcgKyBpZCArICcpOyIgY2xhc3M9ImJv dG9uIj5kZW51bmNpYXIgY29tZW50YXJpbzwvYT4nOwoJCWNvbnRlbmlkbyArPSAnPC9sYWJlbD4nOwoJ CWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pic7CgkJY29udGVuaWRvICs9ICc8 L2Rpdj4nOwoJCWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pic7CgkJY29udGVu aWRvICs9ICc8L2Zvcm0+JzsKCQljb250ZW5pZG8gKz0gJzwvZGl2Pic7CgoJCWh0bWwgKz0gY29udGVu aWRvOwoJfQoKCWlmIChsaW1pdGUgPiBtYXhfY29tZW50YXJpb3MpIHsKCQlodG1sICs9ICc8ZGl2IGNs YXNzPSJib3RvbmVzLWxpc3RhZG8iPjxhIGlkPSJhbnRlcmlvciIgaHJlZj0iamF2YXNjcmlwdDpuYWRh KCkiIGNsYXNzPSJib3RvbiBhbnRlcmlvciI+Jmx0OyZsdDsnOwogICAgICAgICAgICAgIAlodG1sICs9 ICdBbnRlcmlvcjwvYT4mbmJzcDsmbmJzcDs8c3Bhbj48c3Ryb25nPicgKyBwYWdpbmFfdmVyICsgJzwv c3Ryb25nPi8nICsgcGFnaW5hc192ZXIgKyAnPC9zcGFuPiZuYnNwOyZuYnNwOzxhIGlkPSJzaWd1aWVu dGUiIGhyZWY9ImphdmFzY3JpcHQ6bmFkYSgpIiBjbGFzcz0iYm90b24gc2lndWllbnRlIj5TaWd1aWVu dGUnOwogICAgICAgICAgICAgIAlodG1sICs9ICcmZ3Q7Jmd0OyA8L2E+PC9kaXY+JzsKCX0KCgl3aW5k b3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpc3RhZG8tY29tZW50YXJpb3MnKS5pbm5lckhUTUwg PSBodG1sOwoKCglpZiAobGltaXRlID4gbWF4X2NvbWVudGFyaW9zKSB7CgoJCXdpbmRvdy5kb2N1bWVu dC5nZXRFbGVtZW50QnlJZCgnYW50ZXJpb3InKS5vbmNsaWNrID0gZnVuY3Rpb24gKCkgewoJCQlpZiAo cGFnaW5hICE9IDEpIHsKCQkJCW11ZXN0cmFDb21lbnRhcmlvczIocmVzcG9uc2UsIChwYWdpbmEgLSAx KSk7CgkJCX0KCQkJZWxzZSB7CgkJCQltdWVzdHJhQ29tZW50YXJpb3MyKHJlc3BvbnNlLCBwYWdpbmEp OwoJCQl9CgoJCX0KCgkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaWd1aWVudGUnKS5v bmNsaWNrID0gZnVuY3Rpb24gKCkgewoJCQlpZiAocGFnaW5hICE9IHBhZ2luYXMpIHsKCQkJCW11ZXN0 cmFDb21lbnRhcmlvczIocmVzcG9uc2UsIChwYWdpbmEgKyAxKSk7CgkJCX0KCQkJZWxzZSB7CgkJCQlt dWVzdHJhQ29tZW50YXJpb3MyKHJlc3BvbnNlLCBwYWdpbmEpOwoJCQl9CgoJCX0KCX0KCn0KCmZ1bmN0 aW9uIG5hZGEoKSB7CglyZXR1cm47Cn0KCgpmdW5jdGlvbiBkZXNjb25lY3RhcigpIHsKCXdpbmRvdy5s b2NhdGlvbiA9ICcvYmFja2VuZC9kZXNjb25lY3Rhci5waHA/dXJsPScgKyB3aW5kb3cubG9jYXRpb24u aHJlZjsKCn0KCmZ1bmN0aW9uIGNvbmVjdGFyKCkgewoKCXZhciBkaXJlY2Npb247CgoJaWYgKHdpbmRv dy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJz8nKSA+IDApIHsKCQl2YXIgY2FtcG9zID0g d2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKTsKCQlkaXJlY2Npb24gPSBjYW1w b3NbMF07Cgl9CgllbHNlIHsKCQlkaXJlY2Npb24gPSB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJl ZjsKCX0KCgl2YXIgcXMgPSAndXJsPScgKyBkaXJlY2Npb247CglxcyArPSAnJmVtYWlsPScgKyB3aW5k b3cuZG9jdW1lbnQubG9ndWVvLmVtYWlsLnZhbHVlOwoJcXMgKz0gJyZjb250cmFzZW5hPScgKyB3aW5k b3cuZG9jdW1lbnQubG9ndWVvLmNvbnRyYXNlbmEudmFsdWU7CgoJd2luZG93LmxvY2F0aW9uID0gJy9i YWNrZW5kL2NvbmVjdGFyLnBocD8nICsgcXM7Cn0KCmZ1bmN0aW9uIGVudmlhQ29tZW50YXJpbygpIHsK ICB2YXIgZmVjaGFfc3VibWl0ID0gbmV3IERhdGUoKTsKICAgICAgdmFyIGZpbHRlcj0vXihbXHctXSso PzpcLltcdy1dKykqKUAoKD86W1x3LV0rXC4pKlx3W1x3LV17MCw2Nn0pXC4oW2Etel17Miw2fSg/Olwu W2Etel17Mn0pPykkL2k7CgogIGlmICh3aW5kb3cuZG9jdW1lbnQuZm9ybXVsYXJpby5hdXRob3JfbmFt ZS52YWx1ZSA9PSAnJykgewogIAlhbGVydCgnUG9yIGZhdm9yLCBpbnRyb2R1Y2UgdHUgbm9tYnJlJyk7 CiAgCXdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvLmF1dGhvcl9uYW1lLmZvY3VzKCk7CiAgCXJldHVy bjsKICB9CgogIGlmICh3aW5kb3cuZG9jdW1lbnQuZm9ybXVsYXJpby5hdXRob3JfZW1haWwudmFsdWUg PT0gJycpIHsKICAJYWxlcnQoJ1BvciBmYXZvciwgaW50cm9kdWNlIHR1IGVtYWlsJyk7CiAgCXdpbmRv dy5kb2N1bWVudC5mb3JtdWxhcmlvLmF1dGhvcl9lbWFpbC5mb2N1cygpOwogIAlyZXR1cm47CiAgfQoK ICBpZiAoIWZpbHRlci50ZXN0KHdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvLmF1dGhvcl9lbWFpbC52 YWx1ZSkpIHsKCWFsZXJ0KCdFbCBlbWFpbCBpbnRyb2R1Y2lkbyBubyBlcyB2w6FsaWRvJyk7Cgkgd2lu ZG93LmRvY3VtZW50LmZvcm11bGFyaW8uYXV0aG9yX2VtYWlsLmZvY3VzKCk7CiAgICAgICAgICAgIHJl dHVybjsKCiAgfQoKICBpZiAod2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS52YWx1ZSA9 PSAnJykgewogIAlhbGVydCgnUG9yIGZhdm9yLCBpbnRyb2R1Y2UgdHUgb3BpbmnDs24nKTsKICAJd2lu ZG93LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS5mb2N1cygpOwogIAlyZXR1cm47CiAgfQoKICBp ZiAoIXdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvLmFjZXB0by5jaGVja2VkKSB7CiAgCWFsZXJ0KCdU aWVuZXMgcXVlIGFjZXB0YXIgbGFzIGNvbmRpY2lvbmVzIGRlIHVzbycpOwogIAlyZXR1cm47CiAgfQoK ICB2YXIgcmVnaXN0cmFkbyA9IGdldENvb2tpZSgncmVnaXN0cmFkbycpID8gJyAoVXN1YXJpbyByZWdp c3RyYWRvKScgOiAnJzsKCiAgd2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS52YWx1ZSA9 IHdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvLm1lc3NhZ2UudmFsdWU7CiAgd2luZG93LmRvY3VtZW50 LmZvcm11bGFyaW8uYXV0aG9yX25hbWUudmFsdWUgPSB3aW5kb3cuZG9jdW1lbnQuZm9ybXVsYXJpby5h dXRob3JfbmFtZS52YWx1ZSArIHJlZ2lzdHJhZG87CgogIHdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlv LnN1Ym1pdF90aW1lLnZhbHVlID0gZmVjaGFfc3VibWl0LmdldFRpbWUoKTsKICB3aW5kb3cuZG9jdW1l bnQuZm9ybXVsYXJpby5zdWJtaXQoKTsKICBhbGVydCgnR3JhY2lhcyBwb3IgZXNjcmliaXIgdW4gY29t ZW50YXJpbycpOwp9CgpmdW5jdGlvbiB2b3RhckNvbWVudGFyaW8oaWQsIHRpcG8sIHYpIHsKCgl2ID0g dHlwZW9mKHYpICE9ICd1bmRlZmluZWQnID8gdiA6ICcnOwoKCXZhciBkaXI7CgoJaWYgKGlkKSB7CgkJ dmFyIGh0dHAgPSBjcmVhdGVSZXF1ZXN0T2JqZWN0KCk7CgoJCWRpciA9ICcvYmFja2VuZC9jb21lbnRh cmlvcycgKyB2ICsgJy92b3RhckNvbWVudGFyaW8ucGhwP2lkPScgKyBpZCArICcmdGlwbz0nICsgdGlw byArICcmcj0nICsgTWF0aC5yYW5kb20oKTsKCgkJaHR0cC5vcGVuKCdnZXQnLCBkaXIpOwoKCQlodHRw Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKCQkJaWYoaHR0cC5yZWFkeVN0YXRlID09 IDQpewoJCQkJaWYgKGh0dHAucmVzcG9uc2VUZXh0KSB7CgkJCQkJdmFyIHJlc3BvbnNlID0gaHR0cC5y ZXNwb25zZVRleHQ7CgoJCQkJCWlmIChyZXNwb25zZS5pbmRleE9mKCdvaycpKSB7CgkJCQkJCWlmICh0 aXBvID09IDEpIHsKCQkJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmF2b3Jjb250 cmEtJyArIGlkKS5pbm5lckhUTUwgPSAnPHNwYW4gY2xhc3M9ImFmYXZvciI+QSBmYXZvcjwvc3Bhbj4g PHNwYW4gY2xhc3M9Im1lbnNhamUiPnwgR3JhY2lhcyBwb3Igdm90YXI8L3NwYW4+JzsKCQkJCQkJfQoJ CQkJCQllbHNlIHsKCQkJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmF2b3Jjb250 cmEtJyArIGlkKS5pbm5lckhUTUwgPSAnPHNwYW4gY2xhc3M9ImVuY29udHJhIj5FbiBjb250cmE8L3Nw YW4+IDxzcGFuIGNsYXNzPSJtZW5zYWplIj58IEdyYWNpYXMgcG9yIHZvdGFyPC9zcGFuPic7CgkJCQkJ CX0KCQkJCQl9CgoJCQkJfQoJCQl9CgkJfTsKCQlodHRwLnNlbmQobnVsbCk7Cgl9Cn0KCmZ1bmN0aW9u IG1vc3RyYXJEZW51bmNpYXIoaWQpIHsKCXZhciBkaXNwbGF5ID0gd2luZG93LmRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCdmb3JtZGVudW5jaWFyLScgKyBpZCkuc3R5bGUuZGlzcGxheTsKCS8qCglpZiAoZGlz cGxheSA9PSAnbm9uZScgJiYgIWdldENvb2tpZSgncmVnaXN0cmFkbycpKSB7CgkJYWxlcnQoJ1BhcmEg ZGVudW5jaWFyIHVuIGNvbWVudGFyaW8gUmVnw61zdHJhdGUnKTsKCQlyZXR1cm47Cgl9CgkqLwoJd2lu ZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JtZGVudW5jaWFyLScgKyBpZCkuc3R5bGUuZGlz cGxheSA9IChkaXNwbGF5ID09ICdub25lJykgPyAnYmxvY2snIDogJ25vbmUnOwp9CgpmdW5jdGlvbiBk ZW51bmNpYXJDb21lbnRhcmlvKGlkKSB7Cgl2YXIgZmVjaGFfc3VibWl0ID0gbmV3IERhdGUoKTsKCWV2 YWwoJ3ZhciBmb3JtdSA9IHdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvXycgKyBpZCk7Cglmb3JtdS5z dWJtaXRfdGltZS52YWx1ZSA9IGZlY2hhX3N1Ym1pdC5nZXRUaW1lKCk7Cglmb3JtdS5zdWJtaXQoKTsK CSBhbGVydCgnR3JhY2lhcyBwb3IgZGVudW5jaWFyIGVsIGNvbWVudGFyaW8nKTsKCn0KCmZ1bmN0aW9u IG11ZXN0cmFMb2d1ZW8oKSB7Cgl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FydGxvZ2Vv Jykuc3R5bGUuZGlzcGxheSA9ICcnOwp9CgpmdW5jdGlvbiBib3JyYXJUZXh0bygpIHsKCWlmICh3aW5k b3cuZG9jdW1lbnQuZm9ybXVsYXJpby5tZXNzYWdlLnZhbHVlID09ICdlc2NyaWJlIGFxdcOtIHR1IGNv bWVudGFyaW8nKSB7CgkJd2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS52YWx1ZSA9ICcn OwoJfQp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogRklOIENvbWVudGFyaW9zICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCg== ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.noticias.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: ZnVuY3Rpb24gY2hlY2tlbWFpbChlbWFpbCkgewoJdmFyIGZpbHRlcj0vXihbXHctXSsoPzpcLltcdy1d KykqKUAoKD86W1x3LV0rXC4pKlx3W1x3LV17MCw2Nn0pXC4oW2Etel17Miw2fSg/OlwuW2Etel17Mn0p PykkL2kKCWlmIChmaWx0ZXIudGVzdChlbWFpbCkpIHsKCQlyZXR1cm4gdHJ1ZQoJfQoJZWxzZXsKCQly ZXR1cm4gZmFsc2U7Cgl9Cn0KCmZ1bmN0aW9uIGVudmlhck5vdGljaWEoKXsKCXZhciBtYXhfbG9uZ2l0 dWQgPSAxMjA7Cgl2YXIgZm9ybXVsYXJpbyA9ICB3aW5kb3cuZG9jdW1lbnQuZW52aW9fbm90aWNpYTsK CQoJdmFyIG5vbWJyZSA9IGZvcm11bGFyaW8ubm9tYnJlLnZhbHVlOwoJdmFyIGVtYWlsX3JlbWl0ZW50 ZSA9IGZvcm11bGFyaW8uZW1haWxfcmVtaXRlbnRlLnZhbHVlOwoJdmFyIHBhcmEgPSBmb3JtdWxhcmlv LnBhcmEudmFsdWU7Cgl2YXIgZW1haWxfZGVzdGluYXRhcmlvID0gZm9ybXVsYXJpby5lbWFpbF9kZXN0 aW5hdGFyaW8udmFsdWU7Cgl2YXIgY29tZW50YXJpbyA9IGZvcm11bGFyaW8uY29tZW50YXJpby52YWx1 ZTsKCQoJaWYgKCFub21icmUgfHwgIWVtYWlsX3JlbWl0ZW50ZSB8fCAhcGFyYSB8fCAhZW1haWxfZGVz dGluYXRhcmlvKSAgewoJCWFsZXJ0KCdObyBoYSByZWxsZW5hZG8gdG9kb3MgbG9zIGNhbXBvcycpOwoJ CXJldHVybjsJCgl9CgkKCWlmICghY2hlY2tlbWFpbChlbWFpbF9yZW1pdGVudGUpKSB7CgkJYWxlcnQo J0VsIGVtYWlsIGRlbCByZW1pdGVudGUgbm8gZXMgY29ycmVjdG8nKTsKCQlmb3JtdWxhcmlvLmVtYWls X3JlbWl0ZW50ZS5mb2N1cygpOwoJCXJldHVybjsJCgl9CgkKCQoJCglpZiAoIWNoZWNrZW1haWwoZW1h aWxfZGVzdGluYXRhcmlvKSkgewoJCWFsZXJ0KCdFbCBlbWFpbCBkZWwgZGVzdGluYXRhcmlvIG5vIGVz IGNvcnJlY3RvJyk7CgkJZm9ybXVsYXJpby5lbWFpbF9kZXN0aW5hdGFyaW8uZm9jdXMoKTsKCQlyZXR1 cm47CQoJfQoJCgl2YXIgaHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKCXZhciBxcyA9ICJub21i cmU9IiArIG5vbWJyZSArICImZW1haWxfcmVtaXRlbnRlPSIgKyBlbWFpbF9yZW1pdGVudGUgKyAiJnBh cmE9IiArIHBhcmE7CglxcyArPSAiJmVtYWlsX2Rlc3RpbmF0YXJpbz0iICsgZW1haWxfZGVzdGluYXRh cmlvICsgIiZjb21lbnRhcmlvPSIgKyBjb21lbnRhcmlvOwoJcXMgKz0gIiZ1cmw9IiArIHdpbmRvdy5k b2N1bWVudC5sb2NhdGlvbi5ocmVmOwoJaHR0cC5vcGVuKCJodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEu ZXMvdi8yMDEwMDMxOC96YW1vcmEvZ2V0IiwgImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9iYWNr ZW5kL2Vudmlhcl9ub3RpY2lhLnBocD8iICsgcXMgKyImcj0iICsgTWF0aC5yYW5kb20oKSk7CglodHRw Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKCQlpZihodHRwLnJlYWR5U3RhdGUgPT0g NCl7CgkJCWlmIChodHRwLnJlc3BvbnNlVGV4dCkgewoJCQkJaWYgKGh0dHAucmVzcG9uc2VUZXh0Lmlu ZGV4T2YoJ09LJykgPiAtMSkgewoJCQkJCXZhciB1cmxfbW9zdHJhciA9ICh3aW5kb3cuZG9jdW1lbnQu bG9jYXRpb24uaHJlZi5sZW5ndGggPiBtYXhfbG9uZ2l0dWQpID8gd2luZG93LmRvY3VtZW50LmxvY2F0 aW9uLmhyZWYuc3Vic3RyKDAsIG1heF9sb25naXR1ZCkgKyAiLi4uIiA6IHdpbmRvdy5kb2N1bWVudC5s b2NhdGlvbi5ocmVmOwoJCQkJCWVsSFRNTCA9ICI8Zm9ybSBhY3Rpb249PjxkaXYgY2xhc3M9ZW52aWFu b3RpY2lhPjxkaXYgY2xhc3M9ZW52aWFub3RpY2lhT0s+PHA+U3UgY29ycmVvIGhhIHNpZG8gZW52aWFk byBjb3JyZWN0YW1lbnRlLjwvcD48cD5Qw6FnaW5hIGVudmlhZGE6PC9wPjxwIGNsYXNzPXVybD48YSBo cmVmPSciICsgd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYgKyAiJyB0aXRsZT0nIiArIHdpbmRv dy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmICsgIic+IiArIHVybF9tb3N0cmFyICsgIjwvYT48L3A+PC9k aXY+PGRpdiBjbGFzcz1jbGVhcj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdlbnZpYW5vdGljaWEtYm90 b25lcyBib3Rvbic+PGEgaHJlZj1qYXZhc2NyaXB0OmNlcnJhckVudmlhck5vdGljaWEoKTs+Q2VycmFy PC9hPjwvZGl2PjwvZm9ybT4iOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJZWxIVE1MID0gIjxmb3JtIGFj dGlvbj0+PGRpdiBjbGFzcz1lbnZpYW5vdGljaWE+PGRpdiBjbGFzcz1lbnZpYW5vdGljaWFPSz48cD5I YSBvY3VycmlkbyB1biBFUlJPUiBhbCBlbnZpYXIgbGEgcMOhZ2luYSwgcG9yIGZhdm9yIGludGVudGVs byBtw6FzIHRhcmRlLjwvcD48L2Rpdj48ZGl2IGNsYXNzPWNsZWFyPjwvZGl2PjwvZGl2PjxkaXYgY2xh c3M9J2Vudmlhbm90aWNpYS1ib3RvbmVzIGJvdG9uJz48YSBocmVmPWphdmFzY3JpcHQ6Y2VycmFyRW52 aWFyTm90aWNpYSgpOz5DZXJyYXI8L2E+PC9kaXY+PC9mb3JtPiI7CgkJCQkKCQkJCX0KCQkJCQoJCQkJ Zm9ybXVsYXJpby5yZXNldCgpOwkJCQoJCQkKCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgnY29udGVuaWRvZW52aWFub3RpY2lhJykuaW5uZXJIVE1MID0gZWxIVE1MOwoKCQkJCQkKCQkJfQoJ CQllbHNlIHsKCQkJCWFsZXJ0KCJIYSBoYWJpZG8gdW4gcHJvYmxlbWEgYWwgZW52aWFyIGxhIG5vdGlj aWEsIHBvciBmYXZvciwgaW50ZW50ZWxvIG3DoXMgdGFyZGUuIik7CgkJCX0KCQkJCgkJfQkKCX07Cglo dHRwLnNlbmQobnVsbCk7CQoJCgkKfQoKZnVuY3Rpb24gY2VycmFyRW52aWFyTm90aWNpYSgpIHsKCXZh ciBjb250ZW5pZG87CgkKCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW52aWFsYW5vdGlj aWEnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCgljb250ZW5pZG8gPSAnPGZvcm0gbmFtZT0iZW52 aW9fbm90aWNpYSI+JzsKCWNvbnRlbmlkbyArPSAnCTxmaWVsZHNldD4nOwoJY29udGVuaWRvICs9ICcJ CTxkaXYgY2xhc3M9ImVudmlhbm90aWNpYSI+JzsKCWNvbnRlbmlkbyArPSAnCQkJPHA+UmVsbGVuYSBs b3Mgc2lndWllbnRlcyBjYW1wb3MgcGFyYSBlbnZpYXIgZXN0YSBpbmZvcm1hY2nDs24gYSBvdHJhcyBw ZXJzb25hcy48L3A+JzsKCWNvbnRlbmlkbyArPSAnCQkJPGRpdiBjbGFzcz0iZW52aWFub3RpY2lhSSI+ JzsKCWNvbnRlbmlkbyArPSAnCQkJCTx0YWJsZSB3aWR0aD0iOTklIiBib3JkZXI9IjAiIGNlbGxzcGFj aW5nPSIwIiBjZWxscGFkZGluZz0iMCI+JzsKCWNvbnRlbmlkbyArPSAnCQkJCQk8dHI+JzsKCWNvbnRl bmlkbyArPSAnCQkJCQkJPHRoPk5vbWJyZTwvdGg+JzsKCWNvbnRlbmlkbyArPSAnCQkJCQkJPHRkPjxp bnB1dCBuYW1lPSJub21icmUiIHR5cGU9InRleHQiIHZhbHVlPSIiIC8+PC90ZD4nOwoJY29udGVuaWRv ICs9ICcJCQkJCQk8dGg+RW1haWwgcmVtaXRlbnRlPC90aD4nOwoJY29udGVuaWRvICs9ICcJCQkJCQk8 dGQ+PGlucHV0IG5hbWU9ImVtYWlsX3JlbWl0ZW50ZSIgdHlwZT0idGV4dCIgdmFsdWU9IiIgLz48L3Rk Pic7Cgljb250ZW5pZG8gKz0gJwkJCQkJPC90cj4nOwoJY29udGVuaWRvICs9ICcJCQkJCTx0cj4nOwoJ Y29udGVuaWRvICs9ICcJCQkJCQk8dGg+UGFyYTwvdGg+JzsKCWNvbnRlbmlkbyArPSAnCQkJCQkJPHRk PjxpbnB1dCBuYW1lPSJwYXJhIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiAvPjwvdGQ+JzsKCWNvbnRlbmlk byArPSAnCQkJCQkJPHRoPkVtYWlsIGRlc3RpbmF0YXJpbyA8L3RoPic7Cgljb250ZW5pZG8gKz0gJwkJ CQkJCTx0ZD48aW5wdXQgbmFtZT0iZW1haWxfZGVzdGluYXRhcmlvIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0i IiAvPjwvdGQ+JzsKCWNvbnRlbmlkbyArPSAnCQkJCQk8L3RyPic7Cgljb250ZW5pZG8gKz0gJwkJCQk8 L3RhYmxlPic7Cgljb250ZW5pZG8gKz0gJwkJCTwvZGl2Pic7Cgljb250ZW5pZG8gKz0gJwkJCTxkaXYg Y2xhc3M9ImVudmlhbm90aWNpYUQiPic7Cgljb250ZW5pZG8gKz0gJwkJCQk8dGV4dGFyZWEgbmFtZT0i Y29tZW50YXJpbyIgY29scz0iNSIgcm93cz0iNSI+PC90ZXh0YXJlYT4nOwoJY29udGVuaWRvICs9ICcJ CQk8L2Rpdj4nOwoJY29udGVuaWRvICs9ICcJCQk8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+JzsKCWNv bnRlbmlkbyArPSAnCQk8L2Rpdj4nOwoJY29udGVuaWRvICs9ICcJCTxkaXYgY2xhc3M9ImVudmlhbm90 aWNpYS1ib3RvbmVzIGJvdG9uIj48YSBocmVmPSIjIiBvbmNsaWNrPSJ3aW5kb3cuZG9jdW1lbnQuZW52 aW9fbm90aWNpYS5yZXNldCgpIj5Cb3JyYXI8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgaHJl Zj0iamF2YXNjcmlwdDplbnZpYXJOb3RpY2lhKCk7Ij5FbnZpYXI8L2E+PC9kaXY+JzsKCWNvbnRlbmlk byArPSAnCTwvZmllbGRzZXQ+JzsKCWNvbnRlbmlkbyArPSAnPC9mb3JtPgknOwoJCgl3aW5kb3cuZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRlbmlkb2Vudmlhbm90aWNpYScpLmlubmVySFRNTCA9IGNv bnRlbmlkbzsKfQoKCmZ1bmN0aW9uIHJlY3RpZmljYXJOb3RpY2lhKCl7CgkKCXZhciBtYXhfbG9uZ2l0 dWQgPSAxMjA7CgkKCXZhciBmb3JtdWxhcmlvID0gIHdpbmRvdy5kb2N1bWVudC5yZWN0aWZpY2FyX25v dGljaWE7CgkKCXZhciBub21icmUgPSBmb3JtdWxhcmlvLm5vbWJyZS52YWx1ZTsKCXZhciBlbWFpbCA9 IGZvcm11bGFyaW8uZW1haWwudmFsdWU7Cgl2YXIgY29tZW50YXJpbyA9IGZvcm11bGFyaW8uY29tZW50 YXJpby52YWx1ZTsKCQoJaWYgKCFub21icmUgfHwgIWVtYWlsIHx8ICFjb21lbnRhcmlvKSAgewoJCWFs ZXJ0KCdObyBoYSByZWxsZW5hZG8gdG9kb3MgbG9zIGNhbXBvcycpOwoJCXJldHVybjsJCgl9CgkKCWlm ICghY2hlY2tlbWFpbChlbWFpbCkpIHsKCQlhbGVydCgnRWwgZW1haWwgbm8gZXMgY29ycmVjdG8nKTsK CQlmb3JtdWxhcmlvLmVtYWlsX3JlbWl0ZW50ZS5mb2N1cygpOwoJCXJldHVybjsJCgl9CgkKCXZhciBo dHRwID0gY3JlYXRlUmVxdWVzdE9iamVjdCgpOwoJdmFyIHFzID0gIm5vbWJyZT0iICsgZW5jb2RlVVJJ Q29tcG9uZW50KG5vbWJyZSkgKyAiJmVtYWlsPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZW1haWwpICsg IiZjb21lbnRhcmlvPSIgKyBlbmNvZGVVUklDb21wb25lbnQoY29tZW50YXJpbyk7CglxcyArPSAiJnVy bD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmKTsKLy8J CWh0dHAub3BlbigiZ2V0IiwgIi9iYWNrZW5kL3JlY3RpZmljYXJfbm90aWNpYS5waHA/IiArIHFzICsi JnI9IiArIE1hdGgucmFuZG9tKCkpOwogIGh0dHAub3BlbigiaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxh LmVzL3YvMjAxMDAzMTgvemFtb3JhL3Bvc3QiLCAiaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2Jh Y2tlbmQvcmVjdGlmaWNhcl9ub3RpY2lhLnBocCIsIHRydWUpOwogIGh0dHAuc2V0UmVxdWVzdEhlYWRl cignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpOwoJaHR0 cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CgkJaWYoaHR0cC5yZWFkeVN0YXRlID09 IDQpewoJCQlpZiAoaHR0cC5yZXNwb25zZVRleHQpIHsKCQkJCWlmIChodHRwLnJlc3BvbnNlVGV4dC5p bmRleE9mKCdPSycpID4gLTEpIHsKCQkJCQl2YXIgdXJsX21vc3RyYXIgPSAod2luZG93LmRvY3VtZW50 LmxvY2F0aW9uLmhyZWYubGVuZ3RoID4gbWF4X2xvbmdpdHVkKSA/IHdpbmRvdy5kb2N1bWVudC5sb2Nh dGlvbi5ocmVmLnN1YnN0cigwLCBtYXhfbG9uZ2l0dWQpICsgIi4uLiIgOiB3aW5kb3cuZG9jdW1lbnQu bG9jYXRpb24uaHJlZjsKCQkJCQllbEhUTUwgPSAiPGZvcm0gYWN0aW9uPT48ZGl2IGNsYXNzPWVudmlh bm90aWNpYT48ZGl2IGNsYXNzPWVudmlhbm90aWNpYU9LPjxwPlN1IHJlY3RpZmljYWNpw7NuIGhhIHNp ZG8gZW52aWFkYSBjb3JyZWN0YW1lbnRlLjwvcD48cD5Qw6FnaW5hIGVudmlhZGE6PC9wPjxwIGNsYXNz PXVybD48YSBocmVmPSciICsgd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYgKyAiJyB0aXRsZT0n IiArIHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmICsgIic+IiArIHVybF9tb3N0cmFyICsgIjwv YT48L3A+PC9kaXY+PGRpdiBjbGFzcz1jbGVhcj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdlbnZpYW5v dGljaWEtYm90b25lcyBib3Rvbic+PGEgaHJlZj1qYXZhc2NyaXB0OmNlcnJhclJlY3RpZmljYXJOb3Rp Y2lhKCk7PkNlcnJhcjwvYT48L2Rpdj48L2Zvcm0+IjsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCWVsSFRN TCA9ICI8Zm9ybSBhY3Rpb249PjxkaXYgY2xhc3M9ZW52aWFub3RpY2lhPjxkaXYgY2xhc3M9ZW52aWFu b3RpY2lhT0s+PHA+SGEgb2N1cnJpZG8gdW4gRVJST1IgYWwgZW52aWFyIGxhIHJlY3RpZmljYWNpw7Nu LCBwb3IgZmF2b3IgaW50ZW50ZWxvIG3DoXMgdGFyZGUuPC9wPjwvZGl2PjxkaXYgY2xhc3M9Y2xlYXI+ PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nZW52aWFub3RpY2lhLWJvdG9uZXMgYm90b24nPjxhIGhyZWY9 amF2YXNjcmlwdDpjZXJyYXJSZWN0aWZpY2FyTm90aWNpYSgpOz5DZXJyYXI8L2E+PC9kaXY+PC9mb3Jt PiI7CgkJCQkKCQkJCX0KCQkJCQoJCQkJZm9ybXVsYXJpby5yZXNldCgpOwkJCQoJCQkKCQkJCXdpbmRv dy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGVuaWRvcmVjdGlmaWNhbm90aWNpYScpLmlubmVy SFRNTCA9IGVsSFRNTDsKCgkJCQkJCgkJCX0KCQl9CQoJfTsKLy8JCWh0dHAuc2VuZChudWxsKTsJCglo dHRwLnNlbmQocXMpOyAgIAp9CgpmdW5jdGlvbiBjZXJyYXJSZWN0aWZpY2FyTm90aWNpYSgpIHsKCXZh ciBjb250ZW5pZG87CgkKCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjdGlmaWNhbGFu b3RpY2lhJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQoJY29udGVuaWRvID0gJzxmb3JtIG5hbWU9 InJlY3RpZmljYXJfbm90aWNpYSI+JzsKICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICA8Zmll bGRzZXQ+JzsKICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICA8ZGl2IGNsYXNzPSJyZWN0aWZp Y2Fub3RpY2lhIj4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgICAgPHA+UmVsbGVuZSB0 b2RvcyBsb3MgY2FtcG9zIGNvbiBzdXMgZGF0b3MuPC9wPic7CiAgICAgICAgICAgIGNvbnRlbmlkbyAr PSAnICAgICAgICA8ZGl2IGNsYXNzPSJyZWN0aWZpY2Fub3RpY2lhSSI+JzsKICAgICAgICAgICAgY29u dGVuaWRvICs9ICcgICAgICAgICAgPHRhYmxlIHdpZHRoPSI5OSUiIGJvcmRlcj0iMCIgY2VsbHNwYWNp bmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgICAg ICAgIDx0cj4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgICAgICAgICAgPHRoIHdpZHRo PSIxMiUiPk5vbWJyZTxzcGFuIGNsYXNzPSJvYmxpZ2F0b3JpbyI+Kjwvc3Bhbj48L3RoPic7CiAgICAg ICAgICAgIGNvbnRlbmlkbyArPSAnICAgICAgICAgICAgICA8dGQgd2lkdGg9IjM4JSI+PGlucHV0IG5h bWU9Im5vbWJyZSIgdHlwZT0idGV4dCIgdmFsdWU9IiIgLz48L3RkPic7CiAgICAgICAgICAgIGNvbnRl bmlkbyArPSAnICAgICAgICAgICAgICA8dGggd2lkdGg9IjklIj5FbWFpbDxzcGFuIGNsYXNzPSJvYmxp Z2F0b3JpbyI+Kjwvc3Bhbj48L3RoPic7CiAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnICAgICAgICAg ICAgICA8dGQgd2lkdGg9IjQxJSI+PGlucHV0IG5hbWU9ImVtYWlsIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0i IiAvPjwvdGQ+JzsKICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICAgICAgICA8L3RyPic7CiAg ICAgICAgICAgIGNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPCEtLXRyPic7CiAgICAgICAgICAgIGNv bnRlbmlkbyArPSAnICAgICAgICAgICAgICA8dGggY29sc3Bhbj0iNCI+VVJMIGRlIGxhIG5vdGljaWE8 c3BhbiBjbGFzcz0ib2JsaWdhdG9yaW8iPionOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAg ICAgICAgICAgICA8aW5wdXQgbmFtZT0idGV4dDIiIGNsYXNzPSJ1cmwiIHR5cGU9InRleHQiIHZhbHVl PSJodHRwOi8vd3d3LmVsY29ycmVvZGlnaXRhbC5jb20vdml6Y2F5YS8yMDA3MDMxOS9wb2xpdGljYXNk YXMlMjBkYXMlMjBkYXMlMjBkYXMlMjBkYXMlMjBkYXMlMjBkYXMlMjAuLi4iIC8+JzsKCWNvbnRlbmlk byArPSAnCQk8L3NwYW4+PC90aD4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgICAgICAg IDwvdHItLT4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgICAgICA8L3RhYmxlPic7Cglj b250ZW5pZG8gKz0gJwkJCQkgIDwvZGl2Pic7CiAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnICAgICAg ICA8ZGl2IGNsYXNzPSJyZWN0aWZpY2Fub3RpY2lhRCI+JzsKICAgICAgICAgICAgY29udGVuaWRvICs9 ICcgICAgICAgICAgPHRleHRhcmVhIGNvbHM9IjUiIHJvd3M9IjUiIG5hbWU9ImNvbWVudGFyaW8iPjwv dGV4dGFyZWE+JzsKICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICAgIDwvZGl2Pic7CiAgICAg ICAgICAgIGNvbnRlbmlkbyArPSAnICAgICAgICA8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+JzsKICAg ICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICA8L2Rpdj4nOwogICAgICAgICAgICBjb250ZW5pZG8g Kz0gJyAgICAgIDxkaXYgY2xhc3M9ImVudmlhbm90aWNpYS1ib3RvbmVzIGJvdG9uIj48c3BhbiBjbGFz cz0ib2JsaWdhdG9yaW8iIHN0eWxlPSJmbG9hdDpsZWZ0OyI+KiBjYW1wbyBvYmxpZ2F0b3Jpbzwvc3Bh bj48YSBocmVmPSIjIiBvbmNsaWNrPSJ3aW5kb3cuZG9jdW1lbnQucmVjdGlmaWNhcl9ub3RpY2lhLnJl c2V0KCkiPkJvcnJhcjwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8YSBocmVmPSJqYXZhc2NyaXB0 OnJlY3RpZmljYXJOb3RpY2lhKCk7Ij5FbnZpYXI8L2E+PC9kaXY+JzsKICAgICAgICAgICAgY29udGVu aWRvICs9ICcgICAgICA8L2ZpZWxkc2V0Pic7CiAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnICAgIDwv Zm9ybT4JJzsKCQoJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250ZW5pZG9yZWN0aWZp Y2Fub3RpY2lhJykuaW5uZXJIVE1MID0gY29udGVuaWRvOwp9CgpmdW5jdGlvbiB2b3RhcnRpY3Vsbyhw dW50b3MpIHsKCQoJdmFyIGRpcmVjY2lvbjsKCQoJaWYgKHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5o cmVmLmluZGV4T2YoJz8nKSA+IDApIHsKCQl2YXIgY2FtcG9zID0gd2luZG93LmRvY3VtZW50LmxvY2F0 aW9uLmhyZWYuc3BsaXQoJz8nKTsKCQlkaXJlY2Npb24gPSBjYW1wb3NbMF07Cgl9CgllbHNlIHsKCQlk aXJlY2Npb24gPSB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZjsKCX0JCgkKCXZhciBodHRwID0g Y3JlYXRlUmVxdWVzdE9iamVjdCgpOwoJaHR0cC5vcGVuKCJodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEu ZXMvdi8yMDEwMDMxOC96YW1vcmEvZ2V0IiwgImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9iYWNr ZW5kL3ZvdGFjaW9uZXMvdm90YXIucGhwP3B1bnRvcz0iICsgcHVudG9zICsgIiZ1cmw9IiArIGRpcmVj Y2lvbiArICImcj0iICsgTWF0aC5yYW5kb20oKSk7CglodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1 bmN0aW9uICgpIHsKCQlpZihodHRwLnJlYWR5U3RhdGUgPT0gNCl7CgkJCWlmIChodHRwLnJlc3BvbnNl VGV4dCkgewoJCQkJZ3JhY2lhcyA9ICI8ZGl2IGNsYXNzPWxhYmVsPkdyYWNpYXMgcG9yIHZvdGFyPC9k aXY+IjsKCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250ZW5pZG9lc3RyZWxsYXMnKS5pbm5l ckhUTUwgPSBncmFjaWFzOwoJCQkJZ2V0RXN0cmVsbGFzKCk7CgkJCQlnZXRWb3RvcygpOwoJCQkJCQoJ CQl9CgkJfQkKCX07CglodHRwLnNlbmQobnVsbCk7CQkKfQoKZnVuY3Rpb24gZ2V0RXN0cmVsbGFzKCkg ewoJCgl2YXIgZGlyZWNjaW9uOwoJCglpZiAod2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuaW5k ZXhPZignPycpID4gMCkgewoJCXZhciBjYW1wb3MgPSB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJl Zi5zcGxpdCgnPycpOwoJCWRpcmVjY2lvbiA9IGNhbXBvc1swXTsKCX0KCWVsc2UgewoJCWRpcmVjY2lv biA9IHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmOwoJfQoJCgl2YXIgaHR0cCA9IGNyZWF0ZVJl cXVlc3RPYmplY3QoKTsKCWh0dHAub3BlbigiaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL3YvMjAx MDAzMTgvemFtb3JhL2dldCIsICJodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvYmFja2VuZC92b3Rh Y2lvbmVzL2VzdHJlbGxhcy5waHA/dXJsPSIgKyBkaXJlY2Npb24pOwoJaHR0cC5vbnJlYWR5c3RhdGVj aGFuZ2UgPSBmdW5jdGlvbiAoKSB7CgkJaWYoaHR0cC5yZWFkeVN0YXRlID09IDQpewoJCQlpZiAoaHR0 cC5yZXNwb25zZVRleHQpIHsKCQkJCXZhciBlc3RyZWxsYXMgPSBodHRwLnJlc3BvbnNlVGV4dDsKCQkJ CQoJCQkJaWYgKGVzdHJlbGxhcy5pbmRleE9mKCIuIikpIHsKCQkKCQkJCQljYW1wb3MgPSBlc3RyZWxs YXMuc3BsaXQoIi4iKTsKCQkJCQllc3RyZWxsYXMgPSBjYW1wb3NbMF07CQoJCQkJCXZhciBtZWRpYSA9 IChjYW1wb3NbMV0gPiAwKSA/IDEgOiAwOwoJCQkJfQoJCQkJCgkJCQl2YXIgY29udGVuaWRvID0gJyc7 CgkJCQkKCQkJCWZvciAoaSA9IDA7IGkgPCBlc3RyZWxsYXM7IGkrKykgewoJCQkJCWNvbnRlbmlkbyAr PSAnPGltZyBzcmM9Ii9pbWcvc3Rhcl9vbi5naWYiIGFsdD0iJyArIGkgKycgdm90b3MiIC8+JzsKCQkJ CX0KCQkJCQoJCQkJaWYgKG1lZGlhID09IDEpIHsKCQkJCQljb250ZW5pZG8gKz0gJzxpbWcgc3JjPSIv aW1nL3N0YXJfb25fbWQuZ2lmIiBhbHQ9IicgKyBlc3RyZWxsYXMgKycgdm90b3MiIC8+JzsKCQkJCQll c3RyZWxsYXMrKzsKCQkJCX0KCQkJCQoJCQkJZm9yIChpID0gZXN0cmVsbGFzOyBpIDwgNTsgaSsrKSB7 CgkJCQkJY29udGVuaWRvICs9ICc8aW1nIHNyYz0iL2ltZy9zdGFyX29mZi5naWYiIGFsdD0iJyArIGkg Kycgdm90b3MiIC8+JzsJCgkJCQl9CgkJCQkKCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgncmVzdWx0YWRvcy12b3RvcycpLmlubmVySFRNTCA9IGNvbnRlbmlkbzsKCQkJCQkKCQkJfQoJCX0J Cgl9OwoJaHR0cC5zZW5kKG51bGwpOwoJCQp9CgpmdW5jdGlvbiBnZXRWb3RvcygpIHsKCQoJdmFyIGRp cmVjY2lvbjsKCQoJaWYgKHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJz8nKSA+ IDApIHsKCQl2YXIgY2FtcG9zID0gd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8n KTsKCQlkaXJlY2Npb24gPSBjYW1wb3NbMF07Cgl9CgllbHNlIHsKCQlkaXJlY2Npb24gPSB3aW5kb3cu ZG9jdW1lbnQubG9jYXRpb24uaHJlZjsKCX0KCQoJdmFyIGh0dHAgPSBjcmVhdGVSZXF1ZXN0T2JqZWN0 KCk7CgkvL2h0dHAub3BlbigiZ2V0IiwgIi9iYWNrZW5kL3ZvdGFjaW9uZXMvdm90b3MucGhwP3VybD0i ICsgZGlyZWNjaW9uICsiJnI9IiArIE1hdGgucmFuZG9tKCkpOwoJaHR0cC5vcGVuKCJodHRwOi8vd3d3 Lm5vcnRlY2FzdGlsbGEuZXMvdi8yMDEwMDMxOC96YW1vcmEvZ2V0IiwgImh0dHA6Ly93d3cubm9ydGVj YXN0aWxsYS5lcy9iYWNrZW5kL3ZvdGFjaW9uZXMvdm90b3MucGhwP3VybD0iICsgZGlyZWNjaW9uKTsK CWh0dHAub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgewoJCWlmKGh0dHAucmVhZHlTdGF0 ZSA9PSA0KXsKCQkJaWYgKGh0dHAucmVzcG9uc2VUZXh0KSB7CgkJCQl2YXIgdm90b3MgPSBodHRwLnJl c3BvbnNlVGV4dDsKCQkJCWlmICh2b3RvcyA9PSAxKSB7CgkJCQkJd2luZG93LmRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCdudW12b3Rvcy12b3RvcycpLmlubmVySFRNTCA9IHZvdG9zICsgJyB2b3RvJzsKCQkJ CQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ251bXZvdG9zLXZvdG9zMicpLmlubmVySFRN TCA9IHZvdG9zICsgJyB2b3RvJzsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCXdpbmRvdy5kb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgnbnVtdm90b3Mtdm90b3MnKS5pbm5lckhUTUwgPSB2b3RvcyArICcgdm90b3Mn OwoJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVtdm90b3Mtdm90b3MyJykuaW5u ZXJIVE1MID0gdm90b3MgKyAnIHZvdG9zJzsKCQkJCX0KCQkJfQoJCX0JCgl9OwoJaHR0cC5zZW5kKG51 bGwpOwoJCQp9 ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/publicidad-conf-resto-de-paginas.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: CnBvc3RjYXJnYSA9IDE7CgkKCQ== ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/publicidad.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: CS8qKioqKioqKiBQVUJMSUNJREFEICoqKioqKioqLw0KCQ0KCUFycmF5LnByb3RvdHlwZS5pbl9hcnJh eSA9IGZ1bmN0aW9uKHNlYXJjaF90ZXJtKSB7DQoJICB2YXIgaSA9IHRoaXMubGVuZ3RoOw0KCSAgaWYg KGkgPiAwKSB7DQoJCSBkbyB7DQoJCQlpZiAodGhpc1tpXSA9PT0gc2VhcmNoX3Rlcm0pIHsNCgkJCSAg IHJldHVybiB0cnVlOw0KCQkJfQ0KCQkgfSB3aGlsZSAoaS0tKTsNCgkgIH0NCgkgIHJldHVybiBmYWxz ZTsNCgl9DQoNCgkvLyBQb3N0Y2FyZ2EgZGUgbGEgcHVibGljaWRhZA0KCXZhciBwb3N0Y2FyZ2EgPSAx Ow0KCWlmKHR5cGVvZihwb3N0Y2FyZ2EpID09ICJ1bmRlZmluZWQiKQ0KCQl2YXIgcG9zdGNhcmdhID0g MjsNCgkNCglmdW5jdGlvbiBwdWJsaU1KWChwb3NpdGlvbixkZXNkZSkgew0KCQlpZihwb3N0Y2FyZ2Eg PT0gZGVzZGUpIHsNCgkJCWlmIChwb3NpdGlvbiA9PSAnJykgcmV0dXJuOw0KCQkJdmFyIHBvc2l0aW9u X2RjID0gJyc7DQoJCQkvL3ZfdGlsZSsrOw0KCQkJc3dpdGNoIChwb3NpdGlvbikgew0KCQkJCWNhc2Ug J1Bvc2l0aW9uMSc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1tZWdhYmFubmVyO3RpbGU9JyArIHZf dGlsZSArICc7c3o9NzI4eDkwLDQ2OHg2MCw5ODJ4OTAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4 NjknOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25fc3VwZXJpb3I7dGlsZT0nICsgdl90aWxl ICsgJztzej0yMzR4NDUsMjM0eDkwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDk2JzoNCgkJCQkJ cG9zaXRpb25fZGMgPSAncG9zPWJvdG9uX2luZmVyaW9yO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MjM0 eDQ1JzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDQzJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9z PWNpbnRpbGxvX3N1cGVyaW9yO3RpbGU9JyArIHZfdGlsZSArICc7c3o9Njc1eDMwJzsNCgkJCQkJYnJl YWs7DQoJCQkJY2FzZSAnUG9zaXRpb24zJzoNCgkJCQljYXNlICd4MjYnOg0KCQkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9cm9iYXBhZ2luYXM7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwLDIwMHgyMDAn Ow0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4NTEnOg0KCQkJCWNhc2UgJ1Bvc2l0aW9uNCc6DQoJCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9kb2JsZV9sb2NhbDt0aWxlPScgKyB2X3RpbGUgKyAnO3N6 PTMwMHg5MCw1MDB4NzUnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4NTYnOg0KCQkJCQlwb3NpdGlv bl9kYyA9ICdwb3M9Ym90b25fbG9jYWwzO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1LDE0N3g4 MCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3g1Myc6DQoJCQkJY2FzZSAnVG9wMSc6DQoJCQkJY2Fz ZSAnVG9wMic6DQoJCQkJY2FzZSAnTWlkZGxlJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPWJvdG9u X2xvY2FsMTt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTMwMHg0NSwxNDd4ODAsMTIweDYwLDkweDE1MCwx NjB4NTAsMTIweDEyMCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3g1NCc6DQoJCQkJY2FzZSAnVG9w Myc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9uYWwyO3RpbGU9JyArIHZfdGlsZSArICc7 c3o9MzAweDQ1LDE0N3g4MCw5MHgxNTAsMzAweDkwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDQ0 JzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPWNpbnRpbGxvX2xvY2FsO3RpbGU9JyArIHZfdGlsZSAr ICc7c3o9Njc1eDMwLDY3MHgzMCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3gyNyc6DQoJCQkJCXBv c2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9sb2NhbDQ7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUn Ow0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4MjknOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90 b25fbG9jYWw1O3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1JzsNCgkJCQkJYnJlYWs7DQoJCQkJ Y2FzZSAneDQ5JzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPWNpbnRpbGxvX2luZmVyaW9yO3RpbGU9 JyArIHZfdGlsZSArICc7c3o9Njc1eDMwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDYwJzoNCgkJ CQkJcG9zaXRpb25fZGMgPSAncG9zPWNhamFfaW5mZXJpb3I7dGlsZT0nICsgdl90aWxlICsgJztzej0z MDB4NDUnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdSaWdodCc6DQoJCQkJCXBvc2l0aW9uX2RjID0g J3Bvcz1oYWxmYmFubmVyO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MjM0eDkwJzsNCgkJCQkJYnJlYWs7 DQoJCQkJY2FzZSAneDMyJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPXNreXNjcmFwZXI7dGlsZT0n ICsgdl90aWxlICsgJztzej1zej0xMjB4NjAwLDIwMHg2MDAsMTYweDYwMCwxMjB4MjQwJzsNCgkJCQkJ YnJlYWs7DQoJCQkJY2FzZSAnTGVmdCc6DQoJCQkJY2FzZSAnTWlkZGxlMic6DQoJCQkJCXBvc2l0aW9u X2RjID0gJ3Bvcz1ib3Rvbl9uYWwzO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDkwJzsNCgkJCQkJ YnJlYWs7DQoJCQkJY2FzZSAnTWlkZGxlMyc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0xYm90b24x MDV4NjA7dGlsZT0nICsgdl90aWxlICsgJztzej0xMDV4NjAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNl ICd4MTEnOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9MmJvdG9uMTA1eDYwO3RpbGU9JyArIHZfdGls ZSArICc7c3o9MTA1eDYwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnQm90dG9tUmlnaHQnOg0KCQkJ CQlwb3NpdGlvbl9kYyA9ICdwb3M9M2JvdG9uMTA1eDYwO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTA1 eDYwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnTWlkZGxlMSc6DQoJCQkJCXBvc2l0aW9uX2RjID0g J3Bvcz01Ym90b24xMDV4NjA7dGlsZT0nICsgdl90aWxlICsgJztzej0xMDV4NjAnOw0KCQkJCQlicmVh azsNCgkJCQljYXNlICd4NDgnOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9NGJvdG9uMTA1eDYwO3Rp bGU9JyArIHZfdGlsZSArICc7c3o9MTA1eDYwJzsNCgkJCQkJYnJlYWs7CQ0KCQkJCWNhc2UgJ3gxMCcg Og0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9MWJvdG9uMTgweDEyNTt0aWxlPScrIHZfdGlsZSArJztz ej0xODB4MTI1JzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDA1JyA6DQoJCQkJCXBvc2l0aW9uX2Rj ID0gJ3Bvcz0yYm90b24xODB4MTI1O3RpbGU9Jysgdl90aWxlICsnO3N6PTE4MHgxMjUnOyAgICAgICAg ICAgIA0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4MDcnIDoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9z PTFib3RvbjEyMHg1MDt0aWxlPScrIHZfdGlsZSArJztzej0xMjB4MTUwJzsgICAgICAgICAgICANCgkJ CQkJYnJlYWs7DQoJCQkJY2FzZSAneDA5JyA6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0yYm90b24x MjB4NTA7dGlsZT0nKyB2X3RpbGUgKyc7c3o9MTIweDE1MCw0Njh4NjAnOyAgDQoJCQkJCWJyZWFrOw0K CQkJCWNhc2UgJ3gxMicgOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9M2JvdG9uMTgweDEyNTt0aWxl PScrIHZfdGlsZSArJztzej0xODB4MTI1JzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDEzJyA6DQoJ CQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz00Ym90b24xODB4MTI1O3RpbGU9Jysgdl90aWxlICsnO3N6PTE4 MHgxMjUnOyAgICAgICAgICAgIA0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4MjAnOg0KCQkJCQlwb3Np dGlvbl9kYyA9ICdwb3M9cm9iYXBhZ2luYXNfc21hbGw7dGlsZT0nICsgdl90aWxlICsgJztzej0yMDB4 MjAwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnbWVnYWJhbm5lcic6DQoJCQkJCXBvc2l0aW9uX2Rj ID0gJ3Bvcz0nICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9NzI4eDkwLDQ2OHg2 MCw5ODJ4OTAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdtZWdhYmFubmVyX2luZic6DQoJCQkJCXBv c2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9NzI4 eDkwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnYm90b25fc3VwZXJpb3InOg0KCQkJCWNhc2UgJ2Jv dG9uX2luZmVyaW9yJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7dGls ZT0nICsgdl90aWxlICsgJztzej0yMzR4NDUnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdjaW50aWxs b19zdXBlcmlvcic6DQoJCQkJY2FzZSAnY2ludGlsbG9fbG9jYWwnOg0KCQkJCWNhc2UgJ2NpbnRpbGxv X2luZmVyaW9yJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7dGlsZT0n ICsgdl90aWxlICsgJztzej02NzV4MzAsNjcweDMwLDcyOHg3NSc7DQoJCQkJCWJyZWFrOw0KCQkJCWNh c2UgJ3JvYmFwYWdpbmFzJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7 dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwLDIwMHgyMDAsMjgweDIzMyc7DQoJCQkJCWJyZWFr Ow0KCQkJCWNhc2UgJ3JvYmFwYWdpbmFzX3NtYWxsJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScg KyBwb3NpdGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0yMDB4MjAwJzsNCgkJCQkJYnJlYWs7 DQoJCQkJY2FzZSAncm9iYXBhZ2luYXNfZG9zJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBw b3NpdGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwJzsNCgkJCQkJYnJlYWs7DQoJ CQkJY2FzZSAnYm90b25fbG9jYWwxJzoJDQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zaXRp b24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1LDE0N3g4MCwxMjB4NjAsOTB4MTUwLDE2 MHg1MCwxMjB4MTIwJzsNCgkJCQkJYnJlYWs7CQkNCgkJCQljYXNlICdib3Rvbl9sb2NhbDMnOg0KCQkJ CQlwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6 PTMwMHg0NSwxNDd4ODAsOTB4MTUwLDMwMHg5MCwxNjB4NTAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNl ICdib3Rvbl9uYWwyJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7dGls ZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUsMTQ3eDgwLDkweDE1MCwzMDB4OTAnOw0KCQkJCQlicmVh azsNCgkJCQljYXNlICdyZWN1ZXJkb19jb3J0aV9sYXllcl9uYWwnOg0KCQkJCWNhc2UgJ2JvdG9uX2xv Y19zdXBlcmlvcic6DQoJCQkJY2FzZSAnYm90b25fbG9jYWwyJzoNCgkJCQljYXNlICdib3Rvbl9sb2Nh bDQnOg0KCQkJCWNhc2UgJ2JvdG9uX2xvY2FsNSc6DQoJCQkJY2FzZSAnYm90b25fbG9jYWw2JzoNCgkJ CQljYXNlICdib3Rvbl9sb2NhbDcnOg0KCQkJCWNhc2UgJ2JvdG9uX2xvY2FsOCc6DQoJCQkJY2FzZSAn Ym90b25fbG9jYWw5JzoNCgkJCQljYXNlICdib3Rvbl9sb2NhbDEwJzoNCgkJCQkJcG9zaXRpb25fZGMg PSAncG9zPScgKyBwb3NpdGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUnOw0KCQkJ CQlicmVhazsNCgkJCQljYXNlICdib3Rvbl9kb2JsZV9sb2NhbCc6DQoJCQkJY2FzZSAnYm90b25fZG9i bGVfbG9jYWwyJzoNCgkJCQljYXNlICdib3Rvbl9kb2JsZV9sb2NhbDMnOg0KCQkJCWNhc2UgJ2JvdG9u X2RvYmxlX25hY2lvbmFsJzoNCgkJCQljYXNlICdib3Rvbl9uYWxfYWJham8nOg0KCQkJCWNhc2UgJ2Jv dG9uX25hbDMnOg0KCQkJCWNhc2UgJ2JvdG9uX25hbDEnOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9 JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTMwMHg5MCc7DQoJCQkJCWJyZWFr Ow0KCQkJCWNhc2UgJ2JvdG9uXzI1NHg5MCc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9z aXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MjU0eDkwJzsNCgkJCQkJYnJlYWs7CQ0KCQkJ CWNhc2UgJ2JvdG9uX2JvdG9uMURfMTcweDUwJzoNCgkJCQljYXNlICdib3Rvbl9ib3RvbjJEXzE3MHg1 MCc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGls ZSArICc7c3o9MTcweDUwJzsNCgkJCQkJYnJlYWs7CQ0KCQkJCWNhc2UgJ2hhbGZiYW5uZXInOg0KCQkJ CQlwb3NpdGlvbl9kYyA9ICdwb3M9aGFsZmJhbm5lcjt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTIzNHg5 MCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3NreXNjcmFwZXInOg0KCQkJCQlwb3NpdGlvbl9kYyA9 ICdwb3M9c2t5c2NyYXBlcjt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTEyMHg2MDAsMjAweDYwMCwxMjB4 MjQwLDE2MHg2MDAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdza3lzY3JhcGVyX2Rlcic6DQoJCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz1za3lzY3JhcGVyX2Rlcjt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTEy MHg2MDAsMjAweDYwMCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3NreXNjcmFwZXJfaXpxJzoNCgkJ CQkJcG9zaXRpb25fZGMgPSAncG9zPXNreXNjcmFwZXJfaXpxO3RpbGU9JyArIHZfdGlsZSArICc7c3o9 MTIweDYwMCwyMDB4NjAwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnMWJvdG9uMTA1eDYwJzoNCgkJ CQljYXNlICcyYm90b24xMDV4NjAnOg0KCQkJCWNhc2UgJzNib3RvbjEwNXg2MCc6DQoJCQkJY2FzZSAn NWJvdG9uMTA1eDYwJzoNCgkJCQljYXNlICc0Ym90b24xMDV4NjAnOg0KCQkJCQlwb3NpdGlvbl9kYyA9 ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTEwNXg2MCc7DQoJCQkJ CWJyZWFrOw0KCQkJCWNhc2UgJzVib3RvbjE4MHgxMjUnOg0KCQkJCWNhc2UgJzZib3RvbjE4MHgxMjUn Og0KCQkJCWNhc2UgJzdib3RvbjE4MHgxMjUnOg0KCQkJCWNhc2UgJzhib3RvbjE4MHgxMjUnOg0KCQkJ CQlwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6 PTE4MHgxMjUnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICcxYm90b24xMTV4NTQnOg0KCQkJCWNhc2Ug JzJib3RvbjExNXg1NCc6DQoJCQkJY2FzZSAnM2JvdG9uMTE1eDU0JzoNCgkJCQljYXNlICc0Ym90b24x MTV4NTQnOg0KCQkJCWNhc2UgJzVib3RvbjExNXg1NCc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0n ICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTE1eDU0JzsNCgkJCQkJYnJlYWs7 DQoJCQkJY2FzZSAnYmFubmVyJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiAr ICc7dGlsZT0nICsgdl90aWxlICsgJztzej00Njh4NjAsNDIweDgwJzsNCgkJCQkJYnJlYWs7DQoJCQkJ Y2FzZSAnbHZhX3JvYmFwYWdpbmFzLWxvY2FsJzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3Rp bGUgKyAnO3N6PTMwMHgyNTAsMjAweDIwMCc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2JvdG9u MWlfMTcweDUwJzogDQoJCQkJY2FzZSAnYm90b24yaV8xNzB4NTAnOiANCgkJCQljYXNlICdib3RvbjNp XzE3MHg1MCc6ICANCgkJCQljYXNlICdib3RvbjRpXzE3MHg1MCc6ICANCgkJCQljYXNlICdib3RvbjVp XzE3MHg1MCc6DQoJCQkJY2FzZSAnYm90b24zZF8xNzB4NTAnOg0KCQkJCWNhc2UgJ2JvdG9uNGRfMTcw eDUwJzoNCgkJCQljYXNlICdib3RvbjVkXzE3MHg1MCc6DQoJCQkJY2FzZSAnYm90b242ZF8xNzB4NTAn Og0KCQkJCWNhc2UgJ2JvdG9uN2RfMTcweDUwJzoNCgkJCQljYXNlICdib3RvbjhkXzE3MHg1MCc6DQoJ CQkJY2FzZSAnYm90b245ZF8xNzB4NTAnOg0KCQkJCWNhc2UgJ2JvdG9uMTBkXzE3MHg1MCc6DQoJCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9 MTcweDUwJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCgkJ CQljYXNlICdib3Rvbl9jZW50cmFsJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlv biArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0yNTR4MTIwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2Fz ZSAnYm90b25fZXNwZWNpYWxfaHNwb3J0JzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3Np dGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MTIwJzsNCgkJCQkJYnJlYWs7CQ0KCQkJ CWNhc2UgJ2NpbnRpbGxvX3N1cGVyaW9yOTgweDI4JzoNCgkJCQljYXNlICdjaW50aWxsb19tZWRpbzk4 MHgyOCc6DQoJCQkJY2FzZSAnY2ludGlsbG9faW5mZXJpb3I5ODB4MjgnOg0KCQkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTk4MHgyOCc7DQoJ CQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2ludGVycyc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsg cG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MngyJzsNCgkJCQkJYnJlYWs7DQoJCQl9 DQoJCQkNCgkJCWlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHVibGkxIikpIHsNCgkJCQlpZiAo KHBvc2l0aW9uID09ICdib3Rvbl9zdXBlcmlvcicgfHwgcG9zaXRpb24gPT0gJ2JvdG9uX2luZmVyaW9y JykgJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInB1YmxpMSIpLm9mZnNldFdpZHRoID4gNzQ1KSB7 DQoJCQkJCWlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHVibGkyIikpIHsNCgkJCQkJCWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCJwdWJsaTIiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KCQkJCQkJ JCgiYm9keSIpLmFkZENsYXNzKCdvcmVqYXMnKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQllbHNlIHsNCgkJ CQkJT0FTX0FEKHBvc2l0aW9uX2RjKTsNCgkJCQl9DQoJCQl9DQoJCQllbHNlIHsNCgkJCQlPQVNfQUQo cG9zaXRpb25fZGMpOw0KCQkJfQ0KCQl9DQoJfQ0KCQ0KCWZ1bmN0aW9uIGNhcmdhclB1YmxpTWV0aG9k ZShwb3NpY2lvbikgew0KCQlpZihwb3N0Y2FyZ2EgIT0gMikNCgkJCXJldHVybjsNCgkJaWYobmF2aWdh dG9yLnVzZXJBZ2VudC5pbmRleE9mKCJOZXRzY2FwZS83LjAiKSA+IC0xKSB7DQoJCQliSXNOUzcwID0g dHJ1ZTsNCgkJfQ0KCQllbHNlIHsNCgkJCWJJc05TNzAgPSBmYWxzZTsNCgkJfQ0KCQl2YXIgaWU0ID0g ZG9jdW1lbnQuYWxsOw0KCQl2YXIgbnM2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQ7DQoJCWlmIChp ZTQgfHwgbnM2KSB7DQoJCQl2YXIgb2JqT3JpZ2VuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInB1 YmxpMl8iICsgcG9zaWNpb24pOw0KCQkJdmFyIG9iakRlc3Rpbm8gPSBkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgicHVibGkxXyIgKyBwb3NpY2lvbik7DQoJCQlpZigob2JqRGVzdGlubyAhPSBudWxsKSAmJiAo IWJJc05TNzApKQ0KCQkJCW9iakRlc3Rpbm8uYXBwZW5kQ2hpbGQob2JqT3JpZ2VuKTsNCgkJCWVsc2UN CgkJCQlvYmpPcmlnZW4uc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCgkJfQ0KCX0NCgkNCgkvLyBEQw0K CQ0KCXZhciBjYW1wb3MgPSBPQVNfc2l0ZXBhZ2Uuc3BsaXQoJy8nKTsNCgkJDQoJdmFyIGNhbXBvczIg PSBjYW1wb3NbMF0uc3BsaXQoJy4nKTsNCgkNCglzd2l0Y2ggKGNhbXBvczJbMV0pIHsNCgkJY2FzZSAn ZWxjb21lcmNpby1zYSc6DQoJCQl2YXIgcGVyaW9kaWNvID0gJ2VsY29tZXJjaW9kaWdpdGFsJzsNCgkJ CWJyZWFrOw0KCQljYXNlICdkaWFyaW8tZWxjb3JyZW8nOg0KCQkJdmFyIHBlcmlvZGljbyA9ICdlbGNv cnJlb2RpZ2l0YWwnOw0KCQkJYnJlYWs7DQoJCWNhc2UgJ2xhLXZlcmRhZCc6DQoJCQl2YXIgcGVyaW9k aWNvID0gJ2xhdmVyZGFkJzsNCgkJCWJyZWFrOw0KCQljYXNlICdsYXZvemRlY2FkaXonOg0KCQkJdmFy IHBlcmlvZGljbyA9ICdsYXZvemRpZ2l0YWwnOw0KCQkJYnJlYWs7DQoJCWRlZmF1bHQ6DQoJCQl2YXIg cGVyaW9kaWNvID0gY2FtcG9zMlsxXTsNCgkJCWJyZWFrOwkNCgl9DQoJDQoJdmFyIGVkaWNpb25lcyA9 IG5ldyBBcnJheSgnYWxhdmEnLCAndml6Y2F5YScsICdhdmlsZXMnLCAnZ2lqb24nLCAnb3ZpZWRvJywg J2FsbWVyaWEnLCAnZ3JhbmFkYScsICdqYWVuJywgJ2FsaWNhbnRlJywgJ3ZhbGVuY2lhJywgJ2FsYmFj ZXRlJywgJ211cmNpYScsICdjYWRpeicsICdqZXJleicsICdjYXN0ZWxsb24nKTsNCgkJDQoJLy92YXIg c2VwYXJhZG9yID0gZWRpY2lvbmVzLmluX2FycmF5KGNhbXBvc1sxXSkgPyAnLicgOiAnLyc7CQ0KCXZh ciBzZXBhcmFkb3IgPSAnLyc7DQoJDQoJdmFyIE9BU19zaXRlcGFnZV9kYyA9ICd2b2NlbnRvLicgKyBw ZXJpb2RpY28gKyBzZXBhcmFkb3IgKyBjYW1wb3NbMV07DQoJCQ0KCWZvciAodmFyIGkgPSAyOyBpIDwg Y2FtcG9zLmxlbmd0aDsgaSsrKSB7DQoJCU9BU19zaXRlcGFnZV9kYyArPSAnLycgKyBjYW1wb3NbaV07 CQ0KCX0NCgkNCgkvL2FsZXJ0KE9BU19zaXRlcGFnZV9kYyk7DQoJDQoJdmFyIHZfdGlsZSA9IDE7DQoJ DQoJLy9PQVNfc2l0ZXBhZ2VfZGMgPSAndm9jZW50by5wcnVlYmEvcG9ydGFkYSc7IC8vIDwtLS0gUHJ1 ZWJhcw0KCQ0KCWlmKHR5cGVvZih2X3JhbmRvbW51bWJlcik9PSJ1bmRlZmluZWQiKXt2YXIgdl9yYW5k b21udW1iZXI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMDAwMDAwMDAwKX0NCgkNCglmdW5jdGlv biBPQVNfQUQocG9zKSB7DQoJCQ0KCQl2YXIgcG9zaXRpb25fZGMgPSAnJzsNCgkJdl90aWxlKys7DQoJ CXN3aXRjaCAocG9zKSB7DQoJCQljYXNlICdQb3NpdGlvbjEnOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bv cz1tZWdhYmFubmVyO3RpbGU9JyArIHZfdGlsZSArICc7c3o9NzI4eDkwLDQ2OHg2MCw5ODJ4OTAnOw0K CQkJCWJyZWFrOw0KCQkJY2FzZSAneDY5JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25fc3Vw ZXJpb3I7dGlsZT0nICsgdl90aWxlICsgJztzej0yMzR4NDUnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAn eDk2JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25faW5mZXJpb3I7dGlsZT0nICsgdl90aWxl ICsgJztzej0yMzR4NDUnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDQzJzoNCgkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9Y2ludGlsbG9fc3VwZXJpb3I7dGlsZT0nICsgdl90aWxlICsgJztzej02NzV4MzAsNjcw eDMwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ1Bvc2l0aW9uMyc6DQoJCQljYXNlICd4MjYnOg0KCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz1yb2JhcGFnaW5hczt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTMwMHgy NTAsMjAweDIwMCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICd4NTEnOg0KCQkJY2FzZSAnUG9zaXRpb240 JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25fZG9ibGVfbG9jYWw7dGlsZT0nICsgdl90aWxl ICsgJztzej0zMDB4OTAsNTAweDc1JzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ3g1Nic6DQoJCQkJcG9z aXRpb25fZGMgPSAncG9zPWJvdG9uX2xvY2FsMzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTMwMHg0NSwx NDd4ODAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDUzJzoNCgkJCWNhc2UgJ1RvcDEnOg0KCQkJY2Fz ZSAnVG9wMic6DQoJCQljYXNlICdNaWRkbGUnOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9s b2NhbDE7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUsMTQ3eDgwLDEyMHg2MCw5MHgxNTAsMTYw eDUwLDEyMHgxMjAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDU0JzoNCgkJCWNhc2UgJ1RvcDMnOg0K CQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9uYWwyO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAw eDQ1LDE0N3g4MCw5MHgxNTAsMzAweDkwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ3g0NCc6DQoJCQkJ cG9zaXRpb25fZGMgPSAncG9zPWNpbnRpbGxvX2xvY2FsO3RpbGU9JyArIHZfdGlsZSArICc7c3o9Njc1 eDMwLDY3MHgzMCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICd4MjcnOg0KCQkJCXBvc2l0aW9uX2RjID0g J3Bvcz1ib3Rvbl9sb2NhbDQ7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUnOw0KCQkJCWJyZWFr Ow0KCQkJY2FzZSAneDI5JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25fbG9jYWw1O3RpbGU9 JyArIHZfdGlsZSArICc7c3o9MzAweDQ1JzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ3g0OSc6DQoJCQkJ cG9zaXRpb25fZGMgPSAncG9zPWNpbnRpbGxvX2luZmVyaW9yO3RpbGU9JyArIHZfdGlsZSArICc7c3o9 Njc1eDMwLDY3MHgzMCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICd4NjAnOg0KCQkJCXBvc2l0aW9uX2Rj ID0gJ3Bvcz1jYWphX2luZmVyaW9yO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1JzsNCgkJCQli cmVhazsNCgkJCWNhc2UgJ1JpZ2h0JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9aGFsZmJhbm5lcjt0 aWxlPScgKyB2X3RpbGUgKyAnO3N6PTIzNHg5MCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICd4MzInOg0K CQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1za3lzY3JhcGVyO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTIw eDYwMCwyMDB4NjAwLDE2MHg2MDAsMTIweDI0MCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdMZWZ0JzoN CgkJCWNhc2UgJ01pZGRsZTInOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9uYWwzO3RpbGU9 JyArIHZfdGlsZSArICc7c3o9MzAweDkwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ01pZGRsZTMnOg0K CQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0xYm90b24xMDV4NjA7dGlsZT0nICsgdl90aWxlICsgJztzej0x MDV4NjAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDExJzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9 MmJvdG9uMTA1eDYwO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTA1eDYwJzsNCgkJCQlicmVhazsNCgkJ CWNhc2UgJ0JvdHRvbVJpZ2h0JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9M2JvdG9uMTA1eDYwO3Rp bGU9JyArIHZfdGlsZSArICc7c3o9MTA1eDYwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ01pZGRsZTEn Og0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz01Ym90b24xMDV4NjA7dGlsZT0nICsgdl90aWxlICsgJztz ej0xMDV4NjAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDQ4JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdw b3M9NGJvdG9uMTA1eDYwO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTA1eDYwJzsNCgkJCQlicmVhazsN CgkJCQlicmVhazsJDQoJCQljYXNlICd4MTAnIDoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9MWJvdG9u MTgweDEyNTt0aWxlPScrIHZfdGlsZSArJztzej0xODB4MTI1JzsNCgkJCQlicmVhazsNCgkJCWNhc2Ug J3gwNScgOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0yYm90b24xODB4MTI1O3RpbGU9Jysgdl90aWxl ICsnO3N6PTE4MHgxMjUnOyAgICAgICAgICAgIA0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDA3JyA6DQoJ CQkJcG9zaXRpb25fZGMgPSAncG9zPTFib3RvbjEyMHg1MDt0aWxlPScrIHZfdGlsZSArJztzej0xMjB4 MTUwJzsgICAgICAgICAgICANCgkJCQlicmVhazsNCgkJCWNhc2UgJ3gwOScgOg0KCQkJCXBvc2l0aW9u X2RjID0gJ3Bvcz0yYm90b24xMjB4NTA7dGlsZT0nKyB2X3RpbGUgKyc7c3o9MTIweDE1MCw0Njh4NjAn OyAgDQoJCQkJYnJlYWs7DQoJCQljYXNlICd4MTInIDoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9M2Jv dG9uMTgweDEyNTt0aWxlPScrIHZfdGlsZSArJztzej0xODB4MTI1JzsNCgkJCQlicmVhazsNCgkJCWNh c2UgJ3gxMycgOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz00Ym90b24xODB4MTI1O3RpbGU9Jysgdl90 aWxlICsnO3N6PTE4MHgxMjUnOyAgICAgICAgICAgIA0KCQkJCWJyZWFrOwkNCgkJCWNhc2UgJ3gyMCc6 DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPXJvYmFwYWdpbmFzX3NtYWxsO3RpbGU9JyArIHZfdGlsZSAr ICc7c3o9MjAweDIwMCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdtZWdhYmFubmVyJzoNCgkJCQlwb3Np dGlvbl9kYyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej03Mjh4OTAsNDY4 eDYwLDk4Mng5MCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdtZWdhYmFubmVyX2luZic6DQoJCQkJcG9z aXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej03Mjh4 OTAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnYm90b25fc3VwZXJpb3InOg0KCQkJY2FzZSAnYm90b25f aW5mZXJpb3InOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxlPScgKyB2X3Rp bGUgKyAnO3N6PTIzNHg0NSc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdjaW50aWxsb19zdXBlcmlvcic6 DQoJCQljYXNlICdjaW50aWxsb19sb2NhbCc6DQoJCQljYXNlICdjaW50aWxsb19pbmZlcmlvcic6DQoJ CQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9Njc1 eDMwLDcyOHg3NSc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdyb2JhcGFnaW5hcyc6DQoJCQkJcG9zaXRp b25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDI1MCwyMDB4 MjAwLDI4MHgyMzMnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAncm9iYXBhZ2luYXNfc21hbGwnOg0KCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTIwMHgy MDAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAncm9iYXBhZ2luYXNfZG9zJzoNCgkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwJzsNCgkJCQli cmVhazsJDQoJCQljYXNlICdib3Rvbl9sb2NhbDEnOgkNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9JyAr IHBvcyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUsMTQ3eDgwLDEyMHg2MCw5MHgxNTAs MTYweDUwLDEyMHgxMjAnOw0KCQkJCWJyZWFrOwkNCgkJCWNhc2UgJ2JvdG9uX2xvY2FsMyc6DQoJCQlj YXNlICdib3Rvbl9uYWwyJzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0n ICsgdl90aWxlICsgJztzej0zMDB4NDUsMTQ3eDgwLDkweDE1MCwzMDB4OTAnOw0KCQkJCWJyZWFrOw0K CQkJY2FzZSAncmVjdWVyZG9fY29ydGlfbGF5ZXJfbmFsJzoNCgkJCWNhc2UgJ2JvdG9uX2xvY19zdXBl cmlvcic6DQoJCQljYXNlICdib3Rvbl9sb2NhbDInOg0KCQkJY2FzZSAnYm90b25fbG9jYWw0JzoNCgkJ CWNhc2UgJ2JvdG9uX2xvY2FsNSc6DQoJCQljYXNlICdib3Rvbl9sb2NhbDYnOg0KCQkJY2FzZSAnYm90 b25fbG9jYWw3JzoNCgkJCWNhc2UgJ2JvdG9uX2xvY2FsOCc6DQoJCQljYXNlICdib3Rvbl9sb2NhbDkn Og0KCQkJY2FzZSAnYm90b25fbG9jYWwxMCc6DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3Mg KyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1JzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ2Jv dG9uX2RvYmxlX2xvY2FsJzoNCgkJCWNhc2UgJ2JvdG9uX2RvYmxlX2xvY2FsMic6DQoJCQljYXNlICdi b3Rvbl9kb2JsZV9sb2NhbDMnOg0KCQkJY2FzZSAnYm90b25fZG9ibGVfbmFjaW9uYWwnOg0KCQkJY2Fz ZSAnYm90b25fbmFsX2FiYWpvJzoNCgkJCWNhc2UgJ2JvdG9uX25hbDMnOg0KCQkJY2FzZSAnYm90b25f bmFsMSc6DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSAr ICc7c3o9MzAweDkwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ2JvdG9uXzI1NHg5MCc6DQoJCQkJcG9z aXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MjU0eDkwJzsN CgkJCQlicmVhazsJDQoJCQljYXNlICdib3Rvbl9ib3RvbjFEXzE3MHg1MCc6DQoJCQljYXNlICdib3Rv bl9ib3RvbjJEXzE3MHg1MCc6DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9 JyArIHZfdGlsZSArICc7c3o9MTcweDUwJzsNCgkJCQlicmVhazsJCQ0KCQkJY2FzZSAnaGFsZmJhbm5l cic6DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7 c3o9MjM0eDkwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ3NreXNjcmFwZXInOg0KCQkJCXBvc2l0aW9u X2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTEyMHg2MDAsMjAweDYw MCwxMjB4MjQwLDE2MHg2MDAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnc2t5c2NyYXBlcl9kZXInOg0K CQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9c2t5c2NyYXBlcl9kZXI7dGlsZT0nICsgdl90aWxlICsgJztz ej0xMjB4NjAwLDIwMHg2MDAnOw0KCQkJCQlicmVhazsNCgkJCWNhc2UgJ3NreXNjcmFwZXJfaXpxJzoN CgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPXNreXNjcmFwZXJfaXpxO3RpbGU9JyArIHZfdGlsZSArICc7 c3o9MTIweDYwMCwyMDB4NjAwJzsNCgkJCQkJYnJlYWs7DQoJCQkJDQoJCQljYXNlICcxYm90b24xMDV4 NjAnOg0KCQkJY2FzZSAnMmJvdG9uMTA1eDYwJzoNCgkJCWNhc2UgJzNib3RvbjEwNXg2MCc6DQoJCQlj YXNlICc1Ym90b24xMDV4NjAnOg0KCQkJY2FzZSAnNGJvdG9uMTA1eDYwJzoNCgkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0xMDV4NjAnOw0KCQkJCWJy ZWFrOw0KCQkJY2FzZSAnNWJvdG9uMTgweDEyNSc6DQoJCQljYXNlICc2Ym90b24xODB4MTI1JzoNCgkJ CWNhc2UgJzdib3RvbjE4MHgxMjUnOg0KCQkJY2FzZSAnOGJvdG9uMTgweDEyNSc6DQoJCQkJcG9zaXRp b25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTgweDEyNSc7DQoJ CQkJYnJlYWs7DQoJCQljYXNlICcxYm90b24xMTV4NTQnOg0KCQkJCWNhc2UgJzJib3RvbjExNXg1NCc6 DQoJCQkJY2FzZSAnM2JvdG9uMTE1eDU0JzoNCgkJCQljYXNlICc0Ym90b24xMTV4NTQnOg0KCQkJCWNh c2UgJzVib3RvbjExNXg1NCc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxl PScgKyB2X3RpbGUgKyAnO3N6PTExNXg1NCc7DQoJCQkJCWJyZWFrOwkJDQoJCQljYXNlICdiYW5uZXIn Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBv cyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej00Njh4NjAsNDIweDgwJzsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQoJCQljYXNlICdsdmFfcm9iYXBhZ2luYXMtbG9jYWwnOg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvcyAr ICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwLDIwMHgyMDAnOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NhYmVj ZXJhJzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0nICsgdl90aWxlICsg Jztzej0xMDAyeDc1JzsNCgkJCQlicmVhazsJDQoJCQljYXNlICdpbnRlcnMnOg0KICAgICAgCXBvc2l0 aW9uX2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTJ4Mic7DQogICAg ICAgIGJyZWFrOw0KCQkJZGVmYXVsdDoNCgkJCQlwb3NpdGlvbl9kYyA9IHBvczsNCgkJCQlicmVhazsJ DQoJCX0NCgkJDQoJCXBvcyA9IHBvc2l0aW9uX2RjOw0KCQkvL2FsZXJ0KHBvcyArICctPicgKyB2X3Jh bmRvbW51bWJlcik7DQoJCWRvY3VtZW50LndyaXRlKCc8c2NyJysnaXB0IHNyYz0iaHR0cDovL2FkLmVz LmRvdWJsZWNsaWNrLm5ldC9hZGovJyArIE9BU19zaXRlcGFnZV9kYyArICc7JyArIHBvcyArICc7b3Jk PScrdl9yYW5kb21udW1iZXIrJz8iPjxcL3NjcicrJ2lwdD4nKTsNCgkJLy9kb2N1bWVudC53cml0ZSgn PHNjcicrJ2lwdCBzcmM9Imh0dHA6Ly9hZC51ay5kb3VibGVjbGljay5uZXQvYWRqLycgKyBPQVNfc2l0 ZXBhZ2VfZGMgKyAnOycgKyBwb3MgKyAnO29yZD0nK3ZfcmFuZG9tbnVtYmVyKyc/Ij48XC9zY3InKydp cHQ+Jyk7DQoJfQ0KDQoJLyoqKioqKioqIEZJTiBQVUJMSUNJREFEICoqKioqKioqLw0KCQ0KZnVuY3Rp b24gcHVibGlNSlhPQ3VsdGFEaXZQdWJsaShkaXZDb250ZW5lZG9yLHBvc2l0aW9uLGRlc2RlKXsNCnB1 YmxpTUpYKHBvc2l0aW9uLGRlc2RlKTsNCiQod2luZG93KS5sb2FkKGZ1bmN0aW9uICgpIHsNCnZhciBh bHRvRGl2ID0gJCgnIycrZGl2Q29udGVuZWRvcikuaGVpZ2h0KCk7DQppZiggbmF2aWdhdG9yLmFwcE5h bWU9PSdNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXInICYmIGFsdG9EaXYgPCAyMCApew0KZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoZGl2Q29udGVuZWRvcikuc3R5bGUuc2V0QXR0cmlidXRlKCJjc3NUZXh0 IiwgJ2Rpc3BsYXk6bm9uZTsnICk7DQp9IGVsc2UgaWYoIGFsdG9EaXYgPCA1ICkgew0KJCgnIycrZGl2 Q29udGVuZWRvcikuYXR0cignc3R5bGUnLCdkaXNwbGF5Om5vbmU7Jyk7DQp9DQp9KTsNCn0= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/ctv/swfobject_publi.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: Ly8gQ2FyZ2EgZGUgU1dGT2JqZWN0IChsaWJyZXJpYSBkZSBpbmNsdXNpb24gZGUgb2JqZXRvcyBmbGFz aCBlbiBodG1sKQppZiAoIVNXRk9iamVjdCkgewppZih0eXBlb2YgZGVjb25jZXB0PT0idW5kZWZpbmVk Iil7dmFyIGRlY29uY2VwdD1uZXcgT2JqZWN0KCk7fWlmKHR5cGVvZiBkZWNvbmNlcHQudXRpbD09InVu ZGVmaW5lZCIpe2RlY29uY2VwdC51dGlsPW5ldyBPYmplY3QoKTt9aWYodHlwZW9mIGRlY29uY2VwdC5T V0ZPYmplY3RVdGlsPT0idW5kZWZpbmVkIil7ZGVjb25jZXB0LlNXRk9iamVjdFV0aWw9bmV3IE9iamVj dCgpO31kZWNvbmNlcHQuU1dGT2JqZWN0PWZ1bmN0aW9uKF8xLGlkLHcsaCxfNSxjLF83LF84LF85LF9h KXtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQpe3JldHVybjt9dGhpcy5ERVRFQ1RfS0VZPV9hP19h OiJkZXRlY3RmbGFzaCI7dGhpcy5za2lwRGV0ZWN0PWRlY29uY2VwdC51dGlsLmdldFJlcXVlc3RQYXJh bWV0ZXIodGhpcy5ERVRFQ1RfS0VZKTt0aGlzLnBhcmFtcz1uZXcgT2JqZWN0KCk7dGhpcy52YXJpYWJs ZXM9bmV3IE9iamVjdCgpO3RoaXMuYXR0cmlidXRlcz1uZXcgQXJyYXkoKTtpZihfMSl7dGhpcy5zZXRB dHRyaWJ1dGUoInN3ZiIsXzEpO31pZihpZCl7dGhpcy5zZXRBdHRyaWJ1dGUoImlkIixpZCk7fWlmKHcp e3RoaXMuc2V0QXR0cmlidXRlKCJ3aWR0aCIsdyk7fWlmKGgpe3RoaXMuc2V0QXR0cmlidXRlKCJoZWln aHQiLGgpO31pZihfNSl7dGhpcy5zZXRBdHRyaWJ1dGUoInZlcnNpb24iLG5ldyBkZWNvbmNlcHQuUGxh eWVyVmVyc2lvbihfNS50b1N0cmluZygpLnNwbGl0KCIuIikpKTt9dGhpcy5pbnN0YWxsZWRWZXI9ZGVj b25jZXB0LlNXRk9iamVjdFV0aWwuZ2V0UGxheWVyVmVyc2lvbigpO2lmKCF3aW5kb3cub3BlcmEmJmRv Y3VtZW50LmFsbCYmdGhpcy5pbnN0YWxsZWRWZXIubWFqb3I+Nyl7ZGVjb25jZXB0LlNXRk9iamVjdC5k b1ByZXBVbmxvYWQ9dHJ1ZTt9aWYoYyl7dGhpcy5hZGRQYXJhbSgiYmdjb2xvciIsYyk7fXZhciBxPV83 P183OiJoaWdoIjt0aGlzLmFkZFBhcmFtKCJxdWFsaXR5IixxKTt0aGlzLnNldEF0dHJpYnV0ZSgidXNl RXhwcmVzc0luc3RhbGwiLGZhbHNlKTt0aGlzLnNldEF0dHJpYnV0ZSgiZG9FeHByZXNzSW5zdGFsbCIs ZmFsc2UpO3ZhciBfYz0oXzgpP184OndpbmRvdy5sb2NhdGlvbjt0aGlzLnNldEF0dHJpYnV0ZSgieGlS ZWRpcmVjdFVybCIsX2MpO3RoaXMuc2V0QXR0cmlidXRlKCJyZWRpcmVjdFVybCIsIiIpO2lmKF85KXt0 aGlzLnNldEF0dHJpYnV0ZSgicmVkaXJlY3RVcmwiLF85KTt9fTtkZWNvbmNlcHQuU1dGT2JqZWN0LnBy b3RvdHlwZT17dXNlRXhwcmVzc0luc3RhbGw6ZnVuY3Rpb24oX2Qpe3RoaXMueGlTV0ZQYXRoPSFfZD8i ZXhwcmVzc2luc3RhbGwuc3dmIjpfZDt0aGlzLnNldEF0dHJpYnV0ZSgidXNlRXhwcmVzc0luc3RhbGwi LHRydWUpO30sc2V0QXR0cmlidXRlOmZ1bmN0aW9uKF9lLF9mKXt0aGlzLmF0dHJpYnV0ZXNbX2VdPV9m O30sZ2V0QXR0cmlidXRlOmZ1bmN0aW9uKF8xMCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc1tfMTBdO30s YWRkUGFyYW06ZnVuY3Rpb24oXzExLF8xMil7dGhpcy5wYXJhbXNbXzExXT1fMTI7fSxnZXRQYXJhbXM6 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJhbXM7fSxhZGRWYXJpYWJsZTpmdW5jdGlvbihfMTMsXzE0 KXt0aGlzLnZhcmlhYmxlc1tfMTNdPV8xNDt9LGdldFZhcmlhYmxlOmZ1bmN0aW9uKF8xNSl7cmV0dXJu IHRoaXMudmFyaWFibGVzW18xNV07fSxnZXRWYXJpYWJsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52 YXJpYWJsZXM7fSxnZXRWYXJpYWJsZVBhaXJzOmZ1bmN0aW9uKCl7dmFyIF8xNj1uZXcgQXJyYXkoKTt2 YXIga2V5O3ZhciBfMTg9dGhpcy5nZXRWYXJpYWJsZXMoKTtmb3Ioa2V5IGluIF8xOCl7XzE2W18xNi5s ZW5ndGhdPWtleSsiPSIrXzE4W2tleV07fXJldHVybiBfMTY7fSxnZXRTV0ZIVE1MOmZ1bmN0aW9uKCl7 dmFyIF8xOT0iIjtpZihuYXZpZ2F0b3IucGx1Z2lucyYmbmF2aWdhdG9yLm1pbWVUeXBlcyYmbmF2aWdh dG9yLm1pbWVUeXBlcy5sZW5ndGgpe2lmKHRoaXMuZ2V0QXR0cmlidXRlKCJkb0V4cHJlc3NJbnN0YWxs Iikpe3RoaXMuYWRkVmFyaWFibGUoIk1NcGxheWVyVHlwZSIsIlBsdWdJbiIpO3RoaXMuc2V0QXR0cmli dXRlKCJzd2YiLHRoaXMueGlTV0ZQYXRoKTt9XzE5PSI8ZW1iZWQgdHlwZT1cImFwcGxpY2F0aW9uL3gt c2hvY2t3YXZlLWZsYXNoXCIgc3JjPVwiIit0aGlzLmdldEF0dHJpYnV0ZSgic3dmIikrIlwiIHdpZHRo PVwiIit0aGlzLmdldEF0dHJpYnV0ZSgid2lkdGgiKSsiXCIgaGVpZ2h0PVwiIit0aGlzLmdldEF0dHJp YnV0ZSgiaGVpZ2h0IikrIlwiIHN0eWxlPVwiIit0aGlzLmdldEF0dHJpYnV0ZSgic3R5bGUiKSsiXCIi O18xOSs9IiBpZD1cIiIrdGhpcy5nZXRBdHRyaWJ1dGUoImlkIikrIlwiIG5hbWU9XCIiK3RoaXMuZ2V0 QXR0cmlidXRlKCJpZCIpKyJcIiAiO3ZhciBfMWE9dGhpcy5nZXRQYXJhbXMoKTtmb3IodmFyIGtleSBp biBfMWEpe18xOSs9W2tleV0rIj1cIiIrXzFhW2tleV0rIlwiICI7fXZhciBfMWM9dGhpcy5nZXRWYXJp YWJsZVBhaXJzKCkuam9pbigiJiIpO2lmKF8xYy5sZW5ndGg+MCl7XzE5Kz0iZmxhc2h2YXJzPVwiIitf MWMrIlwiIjt9XzE5Kz0iLz4iO31lbHNle2lmKHRoaXMuZ2V0QXR0cmlidXRlKCJkb0V4cHJlc3NJbnN0 YWxsIikpe3RoaXMuYWRkVmFyaWFibGUoIk1NcGxheWVyVHlwZSIsIkFjdGl2ZVgiKTt0aGlzLnNldEF0 dHJpYnV0ZSgic3dmIix0aGlzLnhpU1dGUGF0aCk7fV8xOT0iPG9iamVjdCBpZD1cIiIrdGhpcy5nZXRB dHRyaWJ1dGUoImlkIikrIlwiIGNsYXNzaWQ9XCJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00 NDQ1NTM1NDAwMDBcIiB3aWR0aD1cIiIrdGhpcy5nZXRBdHRyaWJ1dGUoIndpZHRoIikrIlwiIGhlaWdo dD1cIiIrdGhpcy5nZXRBdHRyaWJ1dGUoImhlaWdodCIpKyJcIiBzdHlsZT1cIiIrdGhpcy5nZXRBdHRy aWJ1dGUoInN0eWxlIikrIlwiPiI7XzE5Kz0iPHBhcmFtIG5hbWU9XCJtb3ZpZVwiIHZhbHVlPVwiIit0 aGlzLmdldEF0dHJpYnV0ZSgic3dmIikrIlwiIC8+Ijt2YXIgXzFkPXRoaXMuZ2V0UGFyYW1zKCk7Zm9y KHZhciBrZXkgaW4gXzFkKXtfMTkrPSI8cGFyYW0gbmFtZT1cIiIra2V5KyJcIiB2YWx1ZT1cIiIrXzFk W2tleV0rIlwiIC8+Ijt9dmFyIF8xZj10aGlzLmdldFZhcmlhYmxlUGFpcnMoKS5qb2luKCImIik7aWYo XzFmLmxlbmd0aD4wKXtfMTkrPSI8cGFyYW0gbmFtZT1cImZsYXNodmFyc1wiIHZhbHVlPVwiIitfMWYr IlwiIC8+Ijt9XzE5Kz0iPC9vYmplY3Q+Ijt9cmV0dXJuIF8xOTt9LHdyaXRlOmZ1bmN0aW9uKF8yMCl7 aWYodGhpcy5nZXRBdHRyaWJ1dGUoInVzZUV4cHJlc3NJbnN0YWxsIikpe3ZhciBfMjE9bmV3IGRlY29u Y2VwdC5QbGF5ZXJWZXJzaW9uKFs2LDAsNjVdKTtpZih0aGlzLmluc3RhbGxlZFZlci52ZXJzaW9uSXNW YWxpZChfMjEpJiYhdGhpcy5pbnN0YWxsZWRWZXIudmVyc2lvbklzVmFsaWQodGhpcy5nZXRBdHRyaWJ1 dGUoInZlcnNpb24iKSkpe3RoaXMuc2V0QXR0cmlidXRlKCJkb0V4cHJlc3NJbnN0YWxsIix0cnVlKTt0 aGlzLmFkZFZhcmlhYmxlKCJNTXJlZGlyZWN0VVJMIixlc2NhcGUodGhpcy5nZXRBdHRyaWJ1dGUoInhp UmVkaXJlY3RVcmwiKSkpO2RvY3VtZW50LnRpdGxlPWRvY3VtZW50LnRpdGxlLnNsaWNlKDAsNDcpKyIg LSBGbGFzaCBQbGF5ZXIgSW5zdGFsbGF0aW9uIjt0aGlzLmFkZFZhcmlhYmxlKCJNTWRvY3RpdGxlIixk b2N1bWVudC50aXRsZSk7fX1pZih0aGlzLnNraXBEZXRlY3R8fHRoaXMuZ2V0QXR0cmlidXRlKCJkb0V4 cHJlc3NJbnN0YWxsIil8fHRoaXMuaW5zdGFsbGVkVmVyLnZlcnNpb25Jc1ZhbGlkKHRoaXMuZ2V0QXR0 cmlidXRlKCJ2ZXJzaW9uIikpKXt2YXIgbj0odHlwZW9mIF8yMD09InN0cmluZyIpP2RvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKF8yMCk6XzIwO24uaW5uZXJIVE1MPXRoaXMuZ2V0U1dGSFRNTCgpO3JldHVybiB0 cnVlO31lbHNle2lmKHRoaXMuZ2V0QXR0cmlidXRlKCJyZWRpcmVjdFVybCIpIT0iIil7ZG9jdW1lbnQu bG9jYXRpb24ucmVwbGFjZSh0aGlzLmdldEF0dHJpYnV0ZSgicmVkaXJlY3RVcmwiKSk7fX1yZXR1cm4g ZmFsc2U7fX07ZGVjb25jZXB0LlNXRk9iamVjdFV0aWwuZ2V0UGxheWVyVmVyc2lvbj1mdW5jdGlvbigp e3ZhciBfMjM9bmV3IGRlY29uY2VwdC5QbGF5ZXJWZXJzaW9uKFswLDAsMF0pO2lmKG5hdmlnYXRvci5w bHVnaW5zJiZuYXZpZ2F0b3IubWltZVR5cGVzLmxlbmd0aCl7dmFyIHg9bmF2aWdhdG9yLnBsdWdpbnNb IlNob2Nrd2F2ZSBGbGFzaCJdO2lmKHgmJnguZGVzY3JpcHRpb24pe18yMz1uZXcgZGVjb25jZXB0LlBs YXllclZlcnNpb24oeC5kZXNjcmlwdGlvbi5yZXBsYWNlKC8oW2EtekEtWl18XHMpKy8sIiIpLnJlcGxh Y2UoLyhccytyfFxzK2JbMC05XSspLywiLiIpLnNwbGl0KCIuIikpO319ZWxzZXtpZihuYXZpZ2F0b3Iu dXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIldpbmRvd3MgQ0UiKT49MCl7dmFy IGF4bz0xO3ZhciBfMjY9Mzt3aGlsZShheG8pe3RyeXtfMjYrKztheG89bmV3IEFjdGl2ZVhPYmplY3Qo IlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoLiIrXzI2KTtfMjM9bmV3IGRlY29uY2VwdC5QbGF5 ZXJWZXJzaW9uKFtfMjYsMCwwXSk7fWNhdGNoKGUpe2F4bz1udWxsO319fWVsc2V7dHJ5e3ZhciBheG89 bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoLjciKTt9Y2F0Y2go ZSl7dHJ5e3ZhciBheG89bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZs YXNoLjYiKTtfMjM9bmV3IGRlY29uY2VwdC5QbGF5ZXJWZXJzaW9uKFs2LDAsMjFdKTtheG8uQWxsb3dT Y3JpcHRBY2Nlc3M9ImFsd2F5cyI7fWNhdGNoKGUpe2lmKF8yMy5tYWpvcj09Nil7cmV0dXJuIF8yMzt9 fXRyeXtheG89bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIik7 fWNhdGNoKGUpe319aWYoYXhvIT1udWxsKXtfMjM9bmV3IGRlY29uY2VwdC5QbGF5ZXJWZXJzaW9uKGF4 by5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKS5zcGxpdCgiICIpWzFdLnNwbGl0KCIsIikpO319fXJldHVy biBfMjM7fTtkZWNvbmNlcHQuUGxheWVyVmVyc2lvbj1mdW5jdGlvbihfMjkpe3RoaXMubWFqb3I9XzI5 WzBdIT1udWxsP3BhcnNlSW50KF8yOVswXSk6MDt0aGlzLm1pbm9yPV8yOVsxXSE9bnVsbD9wYXJzZUlu dChfMjlbMV0pOjA7dGhpcy5yZXY9XzI5WzJdIT1udWxsP3BhcnNlSW50KF8yOVsyXSk6MDt9O2RlY29u Y2VwdC5QbGF5ZXJWZXJzaW9uLnByb3RvdHlwZS52ZXJzaW9uSXNWYWxpZD1mdW5jdGlvbihmdil7aWYo dGhpcy5tYWpvcjxmdi5tYWpvcil7cmV0dXJuIGZhbHNlO31pZih0aGlzLm1ham9yPmZ2Lm1ham9yKXty ZXR1cm4gdHJ1ZTt9aWYodGhpcy5taW5vcjxmdi5taW5vcil7cmV0dXJuIGZhbHNlO31pZih0aGlzLm1p bm9yPmZ2Lm1pbm9yKXtyZXR1cm4gdHJ1ZTt9aWYodGhpcy5yZXY8ZnYucmV2KXtyZXR1cm4gZmFsc2U7 fXJldHVybiB0cnVlO307ZGVjb25jZXB0LnV0aWw9e2dldFJlcXVlc3RQYXJhbWV0ZXI6ZnVuY3Rpb24o XzJiKXt2YXIgcT1kb2N1bWVudC5sb2NhdGlvbi5zZWFyY2h8fGRvY3VtZW50LmxvY2F0aW9uLmhhc2g7 aWYoXzJiPT1udWxsKXtyZXR1cm4gcTt9aWYocSl7dmFyIF8yZD1xLnN1YnN0cmluZygxKS5zcGxpdCgi JiIpO2Zvcih2YXIgaT0wO2k8XzJkLmxlbmd0aDtpKyspe2lmKF8yZFtpXS5zdWJzdHJpbmcoMCxfMmRb aV0uaW5kZXhPZigiPSIpKT09XzJiKXtyZXR1cm4gXzJkW2ldLnN1YnN0cmluZygoXzJkW2ldLmluZGV4 T2YoIj0iKSsxKSk7fX19cmV0dXJuICIiO319O2RlY29uY2VwdC5TV0ZPYmplY3RVdGlsLmNsZWFudXBT V0ZzPWZ1bmN0aW9uKCl7dmFyIF8yZj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiT0JKRUNU Iik7Zm9yKHZhciBpPV8yZi5sZW5ndGgtMTtpPj0wO2ktLSl7XzJmW2ldLnN0eWxlLmRpc3BsYXk9Im5v bmUiO2Zvcih2YXIgeCBpbiBfMmZbaV0pe2lmKHR5cGVvZiBfMmZbaV1beF09PSJmdW5jdGlvbiIpe18y ZltpXVt4XT1mdW5jdGlvbigpe307fX19fTtpZihkZWNvbmNlcHQuU1dGT2JqZWN0LmRvUHJlcFVubG9h ZCl7aWYoIWRlY29uY2VwdC51bmxvYWRTZXQpe2RlY29uY2VwdC5TV0ZPYmplY3RVdGlsLnByZXBVbmxv YWQ9ZnVuY3Rpb24oKXtfX2ZsYXNoX3VubG9hZEhhbmRsZXI9ZnVuY3Rpb24oKXt9O19fZmxhc2hfc2F2 ZWRVbmxvYWRIYW5kbGVyPWZ1bmN0aW9uKCl7fTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixk ZWNvbmNlcHQuU1dGT2JqZWN0VXRpbC5jbGVhbnVwU1dGcyk7fTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9u YmVmb3JldW5sb2FkIixkZWNvbmNlcHQuU1dGT2JqZWN0VXRpbC5wcmVwVW5sb2FkKTtkZWNvbmNlcHQu dW5sb2FkU2V0PXRydWU7fX1pZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQmJmRvY3VtZW50LmFsbCl7 ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQ9ZnVuY3Rpb24oaWQpe3JldHVybiBkb2N1bWVudC5hbGxbaWRd O307fXZhciBnZXRRdWVyeVBhcmFtVmFsdWU9ZGVjb25jZXB0LnV0aWwuZ2V0UmVxdWVzdFBhcmFtZXRl cjt2YXIgRmxhc2hPYmplY3Q9ZGVjb25jZXB0LlNXRk9iamVjdDt2YXIgU1dGT2JqZWN0PWRlY29uY2Vw dC5TV0ZPYmplY3Q7Cn0KCnZhciBpQ29udCA9IDA7CnZhciBpV2lkdGgxID0gMDsKdmFyIGlIZWlnaHQx ID0gMDsKdmFyIHNEaXYxID0gIiI7CnZhciBzRmlsZTEgPSAiIjsKdmFyIHNQcmV2aWV3MSA9ICIiOwp2 YXIgZmxvYXRpbmcxID0gZmFsc2U7CnZhciBmdWxsc2NyZWVuID0gZmFsc2U7CnZhciBzWm9uYXMgPSAi IjsKZnVuY3Rpb24gZ2V0S2V5V29yZHModGl0bGUpIHsKCXRpdGxlID0gdGl0bGUudG9Mb3dlckNhc2Uo KTsKCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW+Dh4uRdKy9nLCAiYSIpOwoJdGl0bGUgPSB0aXRsZS5y ZXBsYWNlKC9b6ejq610rL2csICJlIik7Cgl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vs7e7vXSsvZywg ImkiKTsKCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW/Py9PZdKy9nLCAibyIpOwoJdGl0bGUgPSB0aXRs ZS5yZXBsYWNlKC9b+vn7/F0rL2csICJ1Iik7Cgl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vnXSsvZywg ImMiKTsKCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvXGIvZywgIl8iKTsKCXRpdGxlID0gdGl0bGUucmVw bGFjZSgvXFcvZywgIiIpOwoJdmFyIHdvcmRzID0gdGl0bGUuc3BsaXQoIl8iKTsKCXZhciBrZXl3b3Jk cyA9ICIiOwoJZm9yICggdmFyIGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpKyspIHsKCQlpZiAoMyA8 IHdvcmRzW2ldLmxlbmd0aCkKCQkJa2V5d29yZHMgKz0gIiwiICsgd29yZHNbaV07Cgl9CglpZiAoa2V5 d29yZHMgIT0gIiIpCgkJa2V5d29yZHMgPSBrZXl3b3Jkcy5zdWJzdHJpbmcoMSk7CgoJcmV0dXJuIGtl eXdvcmRzOwp9Ci8vUGxheWVyIGFudGlndW8KZnVuY3Rpb24gc2hvd1BsYXllcihzUGxheWVyLCBzVGFn cywgc1pvbmFzLCBiU3RyZXRjaCkgewoJdmFyIGZvID0gbmV3IFNXRk9iamVjdChzUGxheWVyLCAibW92 aWVfcGxheWVyIiwgaVdpZHRoMSwgaUhlaWdodDEsIDgsCgkJCSIjMDAwMDAwIik7Cglmby5hZGRQYXJh bSgiYWxsb3dmdWxsc2NyZWVuIiwgZnVsbHNjcmVlbjEpOwoJZm8uYWRkUGFyYW0oIndtb2RlIiwgInRy YW5zcGFyZW50Iik7Cglmby5hZGRWYXJpYWJsZSgiaW1hZ2UiLCBzUHJldmlldzEpOwoJZm8uYWRkVmFy aWFibGUoIndpZHRoIiwgaVdpZHRoMSk7CglpZiAodHlwZW9mIChiU3RyZXRjaCkgIT0gJ3VuZGVmaW5l ZCcpCgkJZm8uYWRkVmFyaWFibGUoIm92ZXJzdHJldGNoIiwgYlN0cmV0Y2gpOwoJZWxzZQoJCWZvLmFk ZFZhcmlhYmxlKCJvdmVyc3RyZXRjaCIsICJ0cnVlIik7Cglmby5hZGRWYXJpYWJsZSgiaGVpZ2h0Iiwg aUhlaWdodDEpOwoJZm8uYWRkVmFyaWFibGUoImZpbGUiLCBzRmlsZTEpOwoJaWYgKGZsb2F0aW5nMSkK CQlmby5hZGRWYXJpYWJsZSgiZGlzcGxheWhlaWdodCIsIGlIZWlnaHQxKTsKCWZvLmFkZFZhcmlhYmxl KCJzWm9uYXMiLCBzWm9uYXMpOwoJZm8uYWRkVmFyaWFibGUoInAxVSIsIHNab25hcyk7Cglmby5hZGRW YXJpYWJsZSgic1RhZ3MiLCBzVGFncyk7Cglmby53cml0ZShzRGl2MSk7Cn0KCmZ1bmN0aW9uIGxvYWRN ZXRob2RlVmlkZW8oZGl2LCB3LCBoLCBzRmlsZSwgc1ByZXZpZXcsIGZ1bGxzY3JlZW4sIGZsb2F0aW5n LAoJCXNQb3J0YWwsIHNab25hcywgc1RpdGxlLCBzQ2F0ZWdvcnksIGJTdHJldGNoKSB7CgkKCS8qdmFy IG9wY2lvbmVzID0gewoJCWNhdGVnb3JpYVB1YmxpOiBzQ2F0ZWdvcnksCgkJdGl0dWxvOiBzVGl0bGUs CgkJaW1nUHJldmlhOiBzUHJldmlldywKCQlzaXRlOiBzUG9ydGFsCgl9OwoJCglQbGF5ZXJXZWJUVi5j YXJnYVZpZGVvKGRpdiwgc0ZpbGUsIHcsIGgsIG9wY2lvbmVzKTsqLwoJbG9hZE11bHRpbWVkaWEoZGl2 LCB3LCBoLCBzRmlsZSwgc1ByZXZpZXcsIHNQb3J0YWwsIHNUaXRsZSwgc0NhdGVnb3J5KTsKfQoKZnVu Y3Rpb24gbG9hZE11bHRpbWVkaWEoZGl2LCB3LCBoLCBzRmlsZSwgc1ByZXZpZXcsIHNQb3J0YWwsIHNU aXRsZSwgc0NhdGVnb3J5KSB7CQoJdmFyIG9wY2lvbmVzID0gewoJCWNhdGVnb3JpYVB1YmxpOiBzQ2F0 ZWdvcnksCgkJdGl0dWxvOiBzVGl0bGUsCgkJaW1nUHJldmlhOiBzUHJldmlldywKCQlzaXRlOiBzUG9y dGFsCgl9OwoJCglQbGF5ZXJXZWJUVi5jYXJnYVZpZGVvKGRpdiwgc0ZpbGUsIHcsIGgsIG9wY2lvbmVz KTsKfQoKLyoqCiAgT2J0aWVuZSBlbCBPQVMgU2l0ZSBQYWdlIGNvcnJlY3RvIGVuIGZ1bmNp824gZGVs IHZhbG9yIGRlIGxhIHZhcmlhYmxlIHF1ZSB0aWVuZSBlc3RhIHBhZ2luYQoqLwpmdW5jdGlvbiBnZXRP QVNfc2l0ZXBhZ2Uoc09BU19zaXRlcGFnZSkgewoKCXZhciBjYW1wb3MgPSBzT0FTX3NpdGVwYWdlLnNw bGl0KCcvJyk7CQkKCXZhciBjYW1wb3MyID0gY2FtcG9zWzBdLnNwbGl0KCcuJyk7CgkKCXN3aXRjaCAo Y2FtcG9zMlsxXSkgewoJCWNhc2UgJ2VsY29tZXJjaW8tc2EnOgoJCQl2YXIgcGVyaW9kaWNvID0gJ2Vs Y29tZXJjaW9kaWdpdGFsJzsKCQkJYnJlYWs7CgkJY2FzZSAnZGlhcmlvLWVsY29ycmVvJzoKCQkJdmFy IHBlcmlvZGljbyA9ICdlbGNvcnJlb2RpZ2l0YWwnOwoJCQlicmVhazsKCQljYXNlICdsYS12ZXJkYWQn OgoJCQl2YXIgcGVyaW9kaWNvID0gJ2xhdmVyZGFkJzsKCQkJYnJlYWs7CgkJY2FzZSAnbGF2b3pkZWNh ZGl6JzoKCQkJdmFyIHBlcmlvZGljbyA9ICdsYXZvemRpZ2l0YWwnOwoJCQlicmVhazsKCQlkZWZhdWx0 OgoJCQl2YXIgcGVyaW9kaWNvID0gY2FtcG9zMlsxXTsKCQkJYnJlYWs7CQoJfQoJCgkvL3ZhciBlZGlj aW9uZXMgPSBuZXcgQXJyYXkoJ2FsYXZhJywgJ3ZpemNheWEnLCAnYXZpbGVzJywgJ2dpam9uJywgJ292 aWVkbycsICdhbG1lcmlhJywgJ2dyYW5hZGEnLCAnamFlbicsICdhbGljYW50ZScsICd2YWxlbmNpYScs ICdhbGJhY2V0ZScsICdtdXJjaWEnLCAnY2FkaXonLCAnamVyZXonLCAnY2FzdGVsbG9uJyk7CQkKCXZh ciBzZXBhcmFkb3IgPSAnLyc7CQoJcmV0dXJuICd2b2NlbnRvLicgKyBwZXJpb2RpY28gKyBzZXBhcmFk b3IgKyBjYW1wb3NbMV07Cgp9CgkKCi8qKgogKiBDb25zdHJ1Y3RvcgogKi8KZnVuY3Rpb24gUGxheWVy V2ViVFYoKSB7Cgl0aGlzLmluaXR0ZWQgPSBmYWxzZTsKCXRoaXMucG9ydGFsID0gbnVsbDsKCXRoaXMu bW9zY2EgID0gbnVsbDsKCXRoaXMucnV0YUNvbmZpZyAgPSBudWxsOwp9CgovLyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK Ly8gKioqKioqKioqKioqKioqKioqICBDT05TVEFOVEVTICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqClBsYXllcldlYlRWLk1JTl9BTkNIT19QTEFZRVIg PSAxODA7ClBsYXllcldlYlRWLk1JTl9BTFRPX1BMQVlFUiA9IDEwMDsKUGxheWVyV2ViVFYuQkFTRV9D T05GSUcgID0gIi9pbmNsdWRlcy9tYW51YWxlcy9zd2YvcGxheWVyV2ViVFYvIjsKUGxheWVyV2ViVFYu VkVSU0lPTl9GTEFTSCAgPSA4OwoKLyoqCiAqIENURVMgaWRlbnRpZmljYWRvcmFzIGRlIGxvcyBwb3J0 YWxlcwogKi8KUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTID0gewoJQUJDOiAiYWJjIiwKCUFCQ19TRVZJ TExBOiAiYWJjZGVzZXZpbGxhIiwKCU5PUlRFX0NBU1RJTExBOiAibm9ydGVjYXN0aWxsYSIsCglMQV9W T1o6ICJsYXZvemRpZ2l0YWwiLAoJRElBUklPX01PTlRBTkVTOiAiZWxkaWFyaW9tb250YW5lcyIsCglE SUFSSU9fU1VSOiAiZGlhcmlvc3VyIiwKCURJQVJJT19WQVNDTzogImRpYXJpb3Zhc2NvIiwKCUVMX0NP TUVSQ0lPOiAiZWxjb21lcmNpb2RpZ2l0YWwiLAoJRUxfQ09SUkVPOiAiZWxjb3JyZW8iLAoJRUxfQ09S UkVPRElHSVRBTDogImVsY29ycmVvZGlnaXRhbCIsCglIT1k6ICJob3kiLAoJSURFQUw6ICJpZGVhbCIs CglMQV9SSU9KQTogImxhcmlvamEiLAoJTEFfVkVSREFEOiAibGF2ZXJkYWQiLAoJTEFTX1BST1ZJTkNJ QVM6ICJsYXNwcm92aW5jaWFzIiwKCVNVUl9JTkdMRVM6CSJzdXJlbmciCn07CgovKioKICogQ29udGFk b3IgcGFyYSByZXRyYXNhciBsYSBjYXJnYSBkZSBtdWx0aXBsZXMgdmlkZW9zIGEgbGEgdmV6IGVuIElF eHBsb3JlcgogKi8KUGxheWVyV2ViVFYuaWVDb3VudGVyID0gMTsKCi8qKgogKiBlbnRvcm5vIGVuIGVs IHF1ZSBub3MgZW5jb250cmFtb3MKICovClBsYXllcldlYlRWLmVudG9ybm8gPSBnZXRFbnRvcm5vKCk7 CgovL1RPRE86IGZhbHRhbiBtYXMgY29uZmlndXJhY2lvbmVzIGRlIHBvcnRhbGVzCi8qKgogKiBJbmZv cm1hY2lvbiBkZSBsb3MgcG9ydGFsZXMKICovClBsYXllcldlYlRWLklORk9fUE9SVEFMRVMgPSB7fTsK UGxheWVyV2ViVFYuSU5GT19QT1JUQUxFU1tQbGF5ZXJXZWJUVi5JRFNfUE9SVEFMRVMuQUJDXSA9IHsK CSJyZXNpemVyIjogImFiYy5lcyIsCgkic2Vydmlkb3JlcyI6IFsiYWJjLmVzIiwgImh0dHA6Ly8yMTIu ODEuMTI5LjI1OjgyODAiLCAiaHR0cDovLzIxMi44MS4xMjkuMjUiLCAiaHR0cDovL3ByZXByb2R1Y2Np b25hYmMuYWJjLmVzIl0sCgkiZG9taW5pbyI6IFBsYXllcldlYlRWLmVudG9ybm8sCgkiYmFzZUNvbmZp ZyI6ICIvc3dmL3BsYXllcldlYlRWLyIKfTsKUGxheWVyV2ViVFYuSU5GT19QT1JUQUxFU1tQbGF5ZXJX ZWJUVi5JRFNfUE9SVEFMRVMuQUJDX1NFVklMTEFdID0gewoJInJlc2l6ZXIiOiAiYWJjLmVzIiwKCSJz ZXJ2aWRvcmVzIjogWyJhYmNkZXNldmlsbGEuZXMiLCAiaHR0cDovLzIxMi44MS4xMjkuMjU6ODI4MSIs ICJodHRwOi8vMjEyLjgxLjEyOS4yNSIsICJodHRwOi8vcHJlcHJvZHVjY2lvbnNldmlsbGEuYWJjLmVz Il0sCgkiZG9taW5pbyI6IFBsYXllcldlYlRWLmVudG9ybm8sCgkiYmFzZUNvbmZpZyI6ICIvc3dmL3Bs YXllcldlYlRWLyIKfTsKUGxheWVyV2ViVFYuSU5GT19QT1JUQUxFU1tQbGF5ZXJXZWJUVi5JRFNfUE9S VEFMRVMuTk9SVEVfQ0FTVElMTEFdID0gewoJInJlc2l6ZXIiOiAibm9ydGVjYXN0aWxsYS5lcyIsCgki c2Vydmlkb3JlcyI6IFtQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5ub3J0ZWNhc3RpbGxhLmVzIl0sCgki ZG9taW5pbyI6ICJodHRwOi8vIiArIFBsYXllcldlYlRWLmVudG9ybm8gKyAiLm5vcnRlY2FzdGlsbGEu ZXMiCn07ClBsYXllcldlYlRWLklORk9fUE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTLkxB X1ZPWl0gPSB7CgkicmVzaXplciI6ICJsYXZvemRpZ2l0YWwuZXMiLAoJInNlcnZpZG9yZXMiOiBbUGxh eWVyV2ViVFYuZW50b3JubyArICIubGF2b3pkaWdpdGFsLmVzIl0sCgkiZG9taW5pbyI6ICJodHRwOi8v IiArIFBsYXllcldlYlRWLmVudG9ybm8gKyAiLmxhdm96ZGlnaXRhbC5lcyIKfTsKUGxheWVyV2ViVFYu SU5GT19QT1JUQUxFU1tQbGF5ZXJXZWJUVi5JRFNfUE9SVEFMRVMuRElBUklPX01PTlRBTkVTXSA9IHsK CSJyZXNpemVyIjogImVsZGlhcmlvbW9udGFuZXMuZXMiLAoJInNlcnZpZG9yZXMiOiBbUGxheWVyV2Vi VFYuZW50b3JubyArICIuZWxkaWFyaW9tb250YW5lcy5lcyJdLAoJImRvbWluaW8iOiAiaHR0cDovLyIg KyBQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5lbGRpYXJpb21vbnRhbmVzLmVzIgp9OwpQbGF5ZXJXZWJU Vi5JTkZPX1BPUlRBTEVTW1BsYXllcldlYlRWLklEU19QT1JUQUxFUy5ESUFSSU9fU1VSXSA9IHsKCSJy ZXNpemVyIjogImRpYXJpb3N1ci5lcyIsCgkic2Vydmlkb3JlcyI6IFtQbGF5ZXJXZWJUVi5lbnRvcm5v ICsgIi5kaWFyaW9zdXIuZXMiXSwKCSJkb21pbmlvIjogImh0dHA6Ly8iICsgUGxheWVyV2ViVFYuZW50 b3JubyArICIuZGlhcmlvc3VyLmVzIgp9OwpQbGF5ZXJXZWJUVi5JTkZPX1BPUlRBTEVTW1BsYXllcldl YlRWLklEU19QT1JUQUxFUy5TVVJfSU5HTEVTXSA9IHsKCQkicmVzaXplciI6ICJzdXJpbmVuZ2xpc2gu Y29tIiwKCQkic2Vydmlkb3JlcyI6IFtQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5zdXJpbmVuZ2xpc2gu Y29tIl0sCgkJImRvbWluaW8iOiAiaHR0cDovLyIgKyBQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5zdXJp bmVuZ2xpc2guY29tIgp9OwpQbGF5ZXJXZWJUVi5JTkZPX1BPUlRBTEVTW1BsYXllcldlYlRWLklEU19Q T1JUQUxFUy5ESUFSSU9fVkFTQ09dID0gewoJInJlc2l6ZXIiOiAiZGlhcmlvdmFzY28uY29tIiwKCSJz ZXJ2aWRvcmVzIjogW1BsYXllcldlYlRWLmVudG9ybm8gKyAiLmRpYXJpb3Zhc2NvLmNvbSJdLAoJImRv bWluaW8iOiAiaHR0cDovLyIgKyBQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5kaWFyaW92YXNjby5jb20i Cn07ClBsYXllcldlYlRWLklORk9fUE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTLkVMX0NP TUVSQ0lPXSA9IHsKCSJyZXNpemVyIjogImVsY29tZXJjaW9kaWdpdGFsLmNvbSIsCgkic2Vydmlkb3Jl cyI6IFtQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5lbGNvbWVyY2lvZGlnaXRhbC5jb20iXSwKCSJkb21p bmlvIjogImh0dHA6Ly8iICsgUGxheWVyV2ViVFYuZW50b3JubyArICIuZWxjb21lcmNpb2RpZ2l0YWwu Y29tIgp9OwpQbGF5ZXJXZWJUVi5JTkZPX1BPUlRBTEVTW1BsYXllcldlYlRWLklEU19QT1JUQUxFUy5F TF9DT1JSRU9dID0gewoJInJlc2l6ZXIiOiAiZWxjb3JyZW8uY29tIiwKCSJzZXJ2aWRvcmVzIjogW1Bs YXllcldlYlRWLmVudG9ybm8gKyAiLmVsY29ycmVvLmNvbSJdLAoJImRvbWluaW8iOiAiaHR0cDovLyIg KyBQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5lbGNvcnJlby5jb20iCn07ClBsYXllcldlYlRWLklORk9f UE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTLkVMX0NPUlJFT0RJR0lUQUxdID0gewoJInJl c2l6ZXIiOiAiZWxjb3JyZW8uY29tIiwKCSJzZXJ2aWRvcmVzIjogW1BsYXllcldlYlRWLmVudG9ybm8g KyAiLmVsY29ycmVvLmNvbSJdLAoJImRvbWluaW8iOiAiaHR0cDovLyIgKyBQbGF5ZXJXZWJUVi5lbnRv cm5vICsgIi5lbGNvcnJlby5jb20iCn07ClBsYXllcldlYlRWLklORk9fUE9SVEFMRVNbUGxheWVyV2Vi VFYuSURTX1BPUlRBTEVTLkhPWV0gPSB7CgkicmVzaXplciI6ICJob3kuZXMiLAoJInNlcnZpZG9yZXMi OiBbUGxheWVyV2ViVFYuZW50b3JubyArICIuaG95LmVzIl0sCgkiZG9taW5pbyI6ICJodHRwOi8vIiAr IFBsYXllcldlYlRWLmVudG9ybm8gKyAiLmhveS5lcyIKfTsKUGxheWVyV2ViVFYuSU5GT19QT1JUQUxF U1tQbGF5ZXJXZWJUVi5JRFNfUE9SVEFMRVMuSURFQUxdID0gewoJInJlc2l6ZXIiOiAiaWRlYWwuZXMi LAoJInNlcnZpZG9yZXMiOiBbUGxheWVyV2ViVFYuZW50b3JubyArICIuaWRlYWwuZXMiXSwKCSJkb21p bmlvIjogImh0dHA6Ly8iICsgUGxheWVyV2ViVFYuZW50b3JubyArICIuaWRlYWwuZXMiCn07ClBsYXll cldlYlRWLklORk9fUE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTLkxBX1JJT0pBXSA9IHsK CSJyZXNpemVyIjogImxhcmlvamEuY29tIiwKCSJzZXJ2aWRvcmVzIjogW1BsYXllcldlYlRWLmVudG9y bm8gKyAiLmxhcmlvamEuY29tIl0sCgkiZG9taW5pbyI6ICJodHRwOi8vIiArIFBsYXllcldlYlRWLmVu dG9ybm8gKyAiLmxhcmlvamEuY29tIgp9OwpQbGF5ZXJXZWJUVi5JTkZPX1BPUlRBTEVTW1BsYXllcldl YlRWLklEU19QT1JUQUxFUy5MQV9WRVJEQURdID0gewoJInJlc2l6ZXIiOiAibGF2ZXJkYWQuZXMiLAoJ InNlcnZpZG9yZXMiOiBbUGxheWVyV2ViVFYuZW50b3JubyArICIubGF2ZXJkYWQuZXMiXSwKCSJkb21p bmlvIjogImh0dHA6Ly8iICsgUGxheWVyV2ViVFYuZW50b3JubyArICIubGF2ZXJkYWQuZXMiCn07ClBs YXllcldlYlRWLklORk9fUE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTLkxBU19QUk9WSU5D SUFTXSA9IHsKCSJyZXNpemVyIjogImxhc3Byb3ZpbmNpYXMuZXMiLAoJInNlcnZpZG9yZXMiOiBbUGxh eWVyV2ViVFYuZW50b3JubyArICIubGFzcHJvdmluY2lhcy5lcyJdLAoJImRvbWluaW8iOiAiaHR0cDov LyIgKyBQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5sYXNwcm92aW5jaWFzLmVzIgp9OwoKLyoqCiAqIENh Y2jpIGRlIGNvbnRyb2xhZG9yZXMgcGFyYSBlbCBwbGF5ZXIKICovClBsYXllcldlYlRWLmNhY2hlID0g e307CgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgovLyoqKioqKioqKioqKioqKioqKiAgTUVUT0RPUyBFU1RBVElDT1Mg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKLyoqCiAqIE9i dGllbmUgbGEgZXh0ZW5zaW9uIGRlbCBmaWNoZXJvIG11bHRpbWVkaWEKICovClBsYXllcldlYlRWLmdl dEV4dGVuc2lvbiA9IGZ1bmN0aW9uKHZpZGVvKSB7Cgl2YXIgcmVzdWx0ID0gdmlkZW87CgkKCXdoaWxl IChyZXN1bHQuaW5kZXhPZignLycpICE9IC0xKSB7CgkJcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZyhy ZXN1bHQuaW5kZXhPZignLycpKzEsIHJlc3VsdC5sZW5ndGgpOwoJfQoJCglpZiAocmVzdWx0LmluZGV4 T2YoJy4nKSAhPSAtMSkgewoJCXJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcocmVzdWx0LmluZGV4T2Yo Jy4nKSsxLCByZXN1bHQubGVuZ3RoKTsKCX0KCQoJcmV0dXJuIHJlc3VsdDsKfTsKCi8qKgogKiBPYnRp ZW5lIGVsIGVudG9ybm8gZW4gZWwgcXVlIG5vcyBlbmNvbnRyYW1vcwogKi8KZnVuY3Rpb24gZ2V0RW50 b3JubygpIHsKCXZhciByZXN1bHQgPSAid3d3IjsKCglpZiAJCShsb2NhdGlvbi5ocmVmLmluZGV4T2Yo J2h0dHA6Ly93d3cuYWJjLmVzJykgIT0gLTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7Cgll bHNlIGlmIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly93d3cuYWJjZGVzZXZpbGxhLmVzJykg IT0gLTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiY2Rlc2V2aWxsYS5lcyc7CgllbHNlIGlmIChsb2Nh dGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly8yMTIuODEuMTI5LjI1OjgyODAnKSAhPSAtMSkgcmVzdWx0 ID0gJ2h0dHA6Ly8yMTIuODEuMTI5LjI1OjgyODAnOwoJZWxzZSBpZiAobG9jYXRpb24uaHJlZi5pbmRl eE9mKCdodHRwOi8vMjEyLjgxLjEyOS4yNTo4MjgxJykgIT0gLTEpIHJlc3VsdCA9ICdodHRwOi8vMjEy LjgxLjEyOS4yNTo4MjgxJzsKCWVsc2UgaWYgKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignaHR0cDovL3Nl dmlsbGEtb3JpZ2luLmFiYy5lcycpICE9IC0xKSByZXN1bHQgPSAnaHR0cDovL3d3dy5hYmNkZXNldmls bGEuZXMnOwoJZWxzZSBpZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdodHRwOi8vd3d3LW9yaWdpbi5h YmMuZXMvJykgIT0gLTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7CgllbHNlIGlmIChsb2Nh dGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly9uMWFiYzEwLmFiYy5lcycpICE9LTEpIHJlc3VsdCA9ICdo dHRwOi8vd3d3LmFiYy5lcyc7CgllbHNlIGlmIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly9u MmFiYzEwLmFiYy5lcycpICE9LTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7CgllbHNlIGlm IChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly9uM2FiYzEwLmFiYy5lcycpICE9LTEpIHJlc3Vs dCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7CgllbHNlIGlmIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0 dHA6Ly9uNGFiYzEwLmFiYy5lcycpICE9LTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7Cgll bHNlIGlmIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly9wcmVwcm9kdWNjaW9uYWJjLmFiYy5l cycpICE9LTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7CgllbHNlIGlmIChsb2NhdGlvbi5o cmVmLmluZGV4T2YoJ2h0dHA6Ly9wcmVwcm9kdWNjaW9uc2V2aWxsYS5hYmMuZXMnKSAhPS0xKSByZXN1 bHQgPSAnaHR0cDovL3d3dy5hYmNkZXNldmlsbGEuZXMnOwkKCWVsc2UgewkJCgkJdHJ5IHsKCQkJcmVz dWx0ID0gbG9jYXRpb24uaHJlZi5zcGxpdCgnLycpWzJdLnNwbGl0KCcuJylbMF07CgkJCWlmICggKHJl c3VsdCAhPSAnd3d3JykgJiYgKHJlc3VsdCAhPSAnZGVzYXJyb2xsbycpICYmIChyZXN1bHQgIT0gJ3Jl ZGlzZW5vJykgJiYgKHJlc3VsdCAhPSAncmVkaXNlbm9kZXYnKSApIHsKCQkJCXJlc3VsdCA9ICd3d3cn OwoJCQl9CgkJfSBjYXRjaCAoZSkgewoJCX0JCQoJfQoJCglyZXR1cm4gcmVzdWx0Owp9CgovKioKICog Q29tcHJ1ZWJhIHNpIGVzIEFCQyBEZXNhcnJvbGxvCiAqLwpmdW5jdGlvbiBpc0Rlc2Fycm9sbG9BQkMo KSB7Cgl2YXIgcmVzdWx0ID0gZmFsc2U7CgoJaWYgKCAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdodHRw Oi8vMjEyLjgxLjEyOS4yNTo4MjgwJykgIT0gLTEpICB8fAoJCSAobG9jYXRpb24uaHJlZi5pbmRleE9m KCdodHRwOi8vMjEyLjgxLjEyOS4yNTo4MjgxJykgIT0gLTEpICkgewoJCQlyZXN1bHQgPSB0cnVlOwoJ fQoJCglyZXR1cm4gcmVzdWx0Owp9CgovKioKICogQ29tcHJ1ZWJhIHNpIGVzIEFCQyBlbiBjdWFscXVp ZXIgZW50b3JubwogKi8KZnVuY3Rpb24gaXNBQkMoKSB7Cgl2YXIgcmVzdWx0ID0gZmFsc2U7CgoJaWYg KCAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdodHRwOi8vd3d3LmFiYy5lcycpICE9IC0xKSAgfHwKCQkg KGxvY2F0aW9uLmhyZWYuaW5kZXhPZignaHR0cDovL3d3dy5hYmNkZXNldmlsbGEuZXMnKSAhPSAtMSkg IHx8CgkJIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly8yMTIuODEuMTI5LjI1OjgyODAnKSAh PSAtMSkgIHx8CgkJIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly8yMTIuODEuMTI5LjI1Ojgy ODEnKSAhPSAtMSkgfHwKCQkgKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignaHR0cDovL3NldmlsbGEtb3Jp Z2luLmFiYy5lcycpICE9IC0xKSAgfHwKCQkgKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignaHR0cDovL3d3 dy1vcmlnaW4uYWJjLmVzLycpICE9IC0xKSAgfHwKCQkgKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignaHR0 cDovL24xYWJjMTAuYWJjLmVzJykgIT0gLTEpICB8fAoJCSAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdo dHRwOi8vbjJhYmMxMC5hYmMuZXMnKSAhPSAtMSkgIHx8CgkJIChsb2NhdGlvbi5ocmVmLmluZGV4T2Yo J2h0dHA6Ly9uM2FiYzEwLmFiYy5lcycpICE9IC0xKSAgfHwKCQkgKGxvY2F0aW9uLmhyZWYuaW5kZXhP ZignaHR0cDovL240YWJjMTAuYWJjLmVzJykgIT0gLTEpICkgewoJCQlyZXN1bHQgPSB0cnVlOwoJfQoJ CglyZXR1cm4gcmVzdWx0Owp9CgovKioKICogT2J0aWVuZSBlbCBjb2xvciBkZSBmb25kbwogKi8KZnVu Y3Rpb24gZ2V0Q29sb3JGb25kbygpIHsKCXZhciBjb2xvckZvbmRvID0gJyMwMDAwMDAnOwoKCWlmIChp c0FCQygpKSBjb2xvckZvbmRvID0gJyNmMWYxZjEnOwoJCglyZXR1cm4gY29sb3JGb25kbzsKfQoKLyoq CiAqIE11ZXN0cmEgZWwgcGxheWVyIGNhcmdhbmRvbG8gZW4gbGEgY2FjaGUgZGUgcG9ydGFsZXMKICov ClBsYXllcldlYlRWLmNhcmdhVmlkZW8gPSBmdW5jdGlvbihkaXYsIHNGaWxlLCB3LCBoLCBvcGNpb25l cykgewoJdmFyIGZ1bmNpb24gPSBQbGF5ZXJXZWJUVi5jYXJnYVZpZGVvOyAKCWlmIChhcmd1bWVudHMu bGVuZ3RoIDwgNSkgewoJCS8vIFNpIG5vIG5vcyBwYXNhbiB1biBpZCBkZSBjYXBhLCBjcmVhbW9zIDEg ZW4gbGEgcG9zaWNpb24gYWN0dWFsIHkgbGEgdXNhbW9zIHBhcmEgZXNjcmliaXIgZWwgdmlkZW8KCQkv LyAoQ1VJREFETyEgIFNpIGxhIHBhZ2luYSB5YSBlc3RhIGNhcmdhZGEsIHNpZW1wcmUgaGF5IHF1ZSBp bmRpY2FyIHVuIGlkLCBzaW5vIGJvcnJhcmlhIGxhIHBhZ2luYSBhY3R1YWwpCgkJdmFyIHVpZCA9IHRo aXMuZ2V0VUlEKCJ2aWRlbyIpOwoJCWRvY3VtZW50LndyaXRlKCc8ZGl2IGlkPSInICsgdWlkICsgJyI+ PC9kaXY+Jyk7CgkJCgkJdmFyIGFyZ3MgPSBuZXcgQXJyYXkoNSk7CgkJYXJnc1swXSA9IHVpZDsKCQlm b3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJCQlhcmdzW2kgKyAxXSA9 IGFyZ3VtZW50c1tpXTsKCQl9CgkJCgkJZnVuY2lvbi5jYWxsKHRoaXMsIGFyZ3NbMF0sIGFyZ3NbMV0s IGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0pOwoJCXJldHVybjsKCX0KCXZhciBwbGF5ZXIgPSBudWxs OwoJdmFyIGNvbmZpZyA9IG51bGw7CglpZiAoIW9wY2lvbmVzKSB7CgkJb3BjaW9uZXMgPSB7fTsKCX0K CQoJaWYgKG9wY2lvbmVzKSB7CgkJY29uZmlnID0gb3BjaW9uZXMuY29uZmlnIHx8IG9wY2lvbmVzLnNp dGU7Cgl9CglpZiAoY29uZmlnKSB7CgkJY29uZmlnID0gY29uZmlnLnRvTG93ZXJDYXNlKCk7Cgl9Cglp ZiAoY29uZmlnID09IHRoaXMuSURTX1BPUlRBTEVTLkFCQykgewoJCXZhciBleHAgPSAvKHNldmlsbGEp fCgyMTJcLjgxXC4xMjlcLjI1OjgyODEpL2dpOwoJCWlmIChleHAudGVzdChsb2NhdGlvbi5ob3N0KSkg ewoJCQljb25maWcgPSB0aGlzLklEU19QT1JUQUxFUy5BQkNfU0VWSUxMQTsKCQl9Cgl9IGVsc2UgaWYg KGNvbmZpZyA9PSAiYWJjc2V2aWxsYSIpIHsKCQljb25maWcgPSB0aGlzLklEU19QT1JUQUxFUy5BQkNf U0VWSUxMQTsKCX0gZWxzZSBpZiAoY29uZmlnID09ICJzdXIiKSB7CgkJY29uZmlnID0gdGhpcy5JRFNf UE9SVEFMRVMuRElBUklPX1NVUjsKCX0gZWxzZSBpZiAoY29uZmlnID09ICJkaWF2YXMiKSB7CgkJY29u ZmlnID0gdGhpcy5JRFNfUE9SVEFMRVMuRElBUklPX1ZBU0NPOwoJfSBlbHNlIGlmIChjb25maWcgPT0g ImNvbWVyYyIpIHsKCQljb25maWcgPSB0aGlzLklEU19QT1JUQUxFUy5FTF9DT01FUkNJTzsKCX0gZWxz ZSBpZiAoY29uZmlnID09ICJjb3JyZW8iKSB7CgkJY29uZmlnID0gdGhpcy5JRFNfUE9SVEFMRVMuRUxf Q09SUkVPOwoJfSBlbHNlIGlmIChjb25maWcgPT0gImRpYW1vbiIpIHsKCQljb25maWcgPSB0aGlzLklE U19QT1JUQUxFUy5ESUFSSU9fTU9OVEFORVM7Cgl9IGVsc2UgaWYgKGNvbmZpZyA9PSAiaWRlYWxtIikg ewoJCWNvbmZpZyA9IHRoaXMuSURTX1BPUlRBTEVTLklERUFMOwoJfSBlbHNlIGlmIChjb25maWcgPT0g InJpb2phIikgewoJCWNvbmZpZyA9IHRoaXMuSURTX1BPUlRBTEVTLkxBX1JJT0pBOwoJfSBlbHNlIGlm IChjb25maWcgPT0gInByb3ZhbCIpIHsKCQljb25maWcgPSB0aGlzLklEU19QT1JUQUxFUy5MQVNfUFJP VklOQ0lBUzsKCX0gZWxzZSBpZiAoY29uZmlnID09ICJ2ZXJtdXIiKSB7CgkJY29uZmlnID0gdGhpcy5J RFNfUE9SVEFMRVMuTEFfVkVSREFEOwoJfSBlbHNlIGlmIChjb25maWcgPT0gInZvemNhZCIgfHwgY29u ZmlnID09ICJMYXZveiIgfHwgY29uZmlnID09ICJsYXZveiIpIHsKCQljb25maWcgPSB0aGlzLklEU19Q T1JUQUxFUy5MQV9WT1o7Cgl9IGVsc2UgaWYgKGNvbmZpZyA9PSAibm9yY2FzIikgewoJCWNvbmZpZyA9 IHRoaXMuSURTX1BPUlRBTEVTLk5PUlRFX0NBU1RJTExBOwoJfQoJCglpZiAoIWNvbmZpZykgewoJCXBs YXllciA9IG5ldyBQbGF5ZXJXZWJUVigpOwoJfSBlbHNlIHsKCQlvcGNpb25lcy5zaXRlID0gY29uZmln OwoJCW9wY2lvbmVzLmNvbmZpZyA9IGNvbmZpZzsKCQlpZiAoIVBsYXllcldlYlRWLmNhY2hlW2NvbmZp Z10pIHsKCQkJUGxheWVyV2ViVFYuY2FjaGVbY29uZmlnXSA9IG5ldyBQbGF5ZXJXZWJUVigpOwoJCX0K CQlwbGF5ZXIgPSBQbGF5ZXJXZWJUVi5jYWNoZVtjb25maWddOwoJfQoJCglwbGF5ZXIuc2hvd1ZpZGVv KGRpdiwgc0ZpbGUsIHcsIGgsIG9wY2lvbmVzKTsKfTsKCi8qKgogKiBGdW5jaW9uIHV0aWxpZGFkIHBh cmEgZWxpbWluYXIgZXZlbnRvcwogKi8KUGxheWVyV2ViVFYubmFkYSA9IGZ1bmN0aW9uKCkge307CgoK LyoqCiAqIE9idGllbmUgZWwgcG9ydGFsIGRlbCBxdWUgY2FyZ2FyIHN1IGNvbmZpZ3VyYWNpb24KICog CiAqIFNpIHNlIGluZGljYSBjb21vIHBhcmFtZXRybywgc2UgZGV2dWVsdmUgZXNlLCBlbiBvdHJvIGNh c28sIHNlIGNhbGN1bGEgZGUgbGEgVVJMCiAqLwpQbGF5ZXJXZWJUVi5nZXRQb3J0YWwgPSBmdW5jdGlv bihvcGNpb25lcykgewoJdmFyIHJlc3VsdCA9IG51bGw7CgkKCWlmIChvcGNpb25lcyAmJiBvcGNpb25l cy5zaXRlKSB7CgkJcmVzdWx0ID0gb3BjaW9uZXMuc2l0ZTsKCX0gZWxzZSB7CgkJLy8gSWRlbnRpZmlj YWNp824gcG9yIFVSTAoJCXZhciBzZXJ2aWRvciA9IGxvY2F0aW9uLmhvc3Q7CgoJCWZvciAodmFyIHBv cnRhbCBpbiB0aGlzLklORk9fUE9SVEFMRVMpIHsKCQkJdmFyIHNlcnZpZG9yZXMgPSB0aGlzLklORk9f UE9SVEFMRVNbcG9ydGFsXS5zZXJ2aWRvcmVzOwoJCQkKCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJ2 aWRvcmVzLmxlbmd0aDsgaSsrKSB7CgkJCQl2YXIgY2FuZGlkYXRvID0gc2Vydmlkb3Jlc1tpXTsKCQkJ CWlmIChzZXJ2aWRvci5pbmRleE9mKGNhbmRpZGF0bykgIT0gLTEpIHsKCQkJCQlyZXN1bHQgPSBwb3J0 YWw7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9Cgl9CgkKCXJldHVybiByZXN1bHQ7Cn07CgoKCgoK LyoqCiAqIEVsaW1pbmEgY2FyYWN0ZXJlcyBleHRyYfFvcyBkZWwgdGl0dWxvCiAqLwpQbGF5ZXJXZWJU Vi5nZXRDbGVhblRpdGxlID0gZnVuY3Rpb24odGl0bGUpIHsKCXRpdGxlID0gdGl0bGUudG9Mb3dlckNh c2UoKTsKCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW+Dh4uRdKy9nLCAiYSIpOwoJdGl0bGUgPSB0aXRs ZS5yZXBsYWNlKC9b6ejq610rL2csICJlIik7Cgl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vs7e7vXSsv ZywgImkiKTsKCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW/Py9PZdKy9nLCAibyIpOwoJdGl0bGUgPSB0 aXRsZS5yZXBsYWNlKC9b+vn7/F0rL2csICJ1Iik7Cgl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vnXSsv ZywgImMiKTsKCXRpdGxlID0gdGl0bGUucmVwbGFjZSgv8S9nLCAibiIpOwoJdGl0bGUgPSB0aXRsZS5y ZXBsYWNlKC9bXiBcd10vZywgIiIpOwoJcmV0dXJuIHRpdGxlOwp9OwoKCi8qKgogKiBFeHRyYWUgbGFz IHBhbGFicmFzIGNsYXZlIGRlbCB0aXR1bG8KICovClBsYXllcldlYlRWLmdldEtleVdvcmRzID0gZnVu Y3Rpb24odGl0bGUpIHsKCXZhciBrZXl3b3JkcyA9ICIiOwoJaWYgKHRpdGxlKSB7CgkJdGl0bGUgPSB0 aXRsZS50b0xvd2VyQ2FzZSgpOwoJCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW+Dh4uRdKy9nLCAiYSIp OwoJCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW+no6utdKy9nLCAiZSIpOwoJCXRpdGxlID0gdGl0bGUu cmVwbGFjZSgvW+zt7u9dKy9nLCAiaSIpOwoJCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW/Py9PZdKy9n LCAibyIpOwoJCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW/r5+/xdKy9nLCAidSIpOwoJCXRpdGxlID0g dGl0bGUucmVwbGFjZSgvW+ddKy9nLCAiYyIpOwoJCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW/FdKy9n LCAibiIpOwoJCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvXGIvZywgIl8iKTsKCQl0aXRsZSA9IHRpdGxl LnJlcGxhY2UoL1xXL2csICIiKTsKCQl2YXIgd29yZHMgPSB0aXRsZS5zcGxpdCgiXyIpOwoJCXZhciBr ZXl3b3JkcyA9ICIiOwoJCWZvciAoIHZhciBpID0gMDsgaSA8IHdvcmRzLmxlbmd0aDsgaSsrKSB7CgkJ CWlmICgzIDwgd29yZHNbaV0ubGVuZ3RoKQoJCQkJa2V5d29yZHMgKz0gIiwiICsgd29yZHNbaV07CgkJ fQoJCWlmIChrZXl3b3JkcyAhPSAiIikgewoJCQlrZXl3b3JkcyA9IGtleXdvcmRzLnN1YnN0cmluZygx KTsKCQl9Cgl9CglyZXR1cm4ga2V5d29yZHM7Cn0KCi8qKgogKiBFbGltaW5hIGNhcmFjdGVyZXMgZXh0 cmHxb3MgZGUgdW5hIFVSTAogKi8KUGxheWVyV2ViVFYuY2xlYW5VUkwgPSBmdW5jdGlvbih1cmwpIHsK CWlmICh1cmwpIHsKCQlyZXR1cm4gdXJsLnJlcGxhY2UoL1teXHctIF0vLCAiIik7Cgl9IGVsc2UgewoJ CXJldHVybiB1cmw7Cgl9Cn0KCi8qKgogKiBHZW5lcmEgdW4gaWRlbnRpZmljYWRvciB1bmljbyAoc2Ug dXNhbiAyIG51bWVyb3MgYWxlYXRvcmlvcywgeWEgcXVlIHZhcmlhcyBsbGFtYWRhcyBjb25zZWN1dGl2 YXMgcHVlZGVuIGRhciBsb3MKICogbWlzbW9zIG5hbm9zZWd1bmRvcy4KICogQHBhcmFtIHByZWZpam8g Q2FkZW5hIHF1ZSBzZSBjb250YW5lcmEgYWwgcHJpbmNpcGlvIGRlbCBpZGVudGlmaWNhZG9yCiAqIEBy ZXR1cm4gcHJlZmlqb19udW1BbGVhdF9udW1BbGVhdAogKi8KUGxheWVyV2ViVFYuZ2V0VUlEID0gZnVu Y3Rpb24ocHJlZmlqbykgewoJdmFyIHJlc3VsdCA9IFtuZXcgRGF0ZSgpLmdldFRpbWUoKSwgTWF0aC5j ZWlsKE1hdGgucmFuZG9tKCkgKiAxMDAwKV07CglpZiAocHJlZmlqbykgewoJCXJlc3VsdC5zcGxpY2Uo MCwgMCwgcHJlZmlqbyk7Cgl9CglyZXR1cm4gcmVzdWx0LmpvaW4oIl8iKTsKfQoKLy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKLy8qKioqKioqKioqKioqKioqKiogIE1FVE9ET1MgREUgQ0xBU0UgICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKUGxheWVyV2ViVFYucHJvdG90eXBlID0gewoJ LyoqCgkgKiBJbmljaWFsaXphIGVsIHBsYXllciBjbiBsYSBjb25maWd1cmFjafNuIHBhc2FkYSBjb21v IHBhcmFtZXRybwoJICovCglpbml0OiBmdW5jdGlvbihvcGNpb25lcywgdmlkZW8pIHsKCQl2YXIgcnV0 YUNvbmZpZyA9IG51bGw7CgkJCgkJLy8gSW50ZW50YW1vcyBjYWxjdWxhciBlbCBwb3J0YWwgZGVzZGUg ZWwgcXVlIHNlIGNhcmdhIGxhIGxpYnJlcmlhCgkJdmFyIHBvcnRhbCA9IHRoaXMucG9ydGFsOwoJCWlm ICghdGhpcy5wb3J0YWwpIHsKCQkJcG9ydGFsID0gdGhpcy5wb3J0YWwgPSB0aGlzLmdldFBvcnRhbChv cGNpb25lcyk7CgkJfQoJCQoJCXZhciBjb25maWcgPSBudWxsOwoJCQoJCWlmIChvcGNpb25lcykgewoJ CQljb25maWcgPSBvcGNpb25lcy5jb25maWcgfHwgcG9ydGFsOwoJCX0KCQkKCQlpZiAoIXRoaXMucnV0 YUNvbmZpZykgewoJCQl2YXIgZXh0ZW5zaW9uID0gUGxheWVyV2ViVFYuZ2V0RXh0ZW5zaW9uKHZpZGVv KTsKCQkJdmFyIHJ1dGFDb25maWc7CgkJCWlmIChleHRlbnNpb24gPT0gJ21wMycpIHsKCQkJCXJ1dGFD b25maWcgPSAiY29uZmlnLXBvci1kZWZlY3RvLWF1ZGlvLnhtbCI7CgkJCQlpZiAoY29uZmlnKSB7CgkJ CQkJcnV0YUNvbmZpZyA9ICJjb25maWctIiArIGNvbmZpZyArICItYXVkaW8ueG1sIjsKCQkJCX0KCQkJ fQoJCQllbHNlIHsKCQkJCXJ1dGFDb25maWcgPSAiY29uZmlnLXBvci1kZWZlY3RvLnhtbCI7CgkJCQlp ZiAoY29uZmlnKSB7CgkJCQkJcnV0YUNvbmZpZyA9ICJjb25maWctIiArIGNvbmZpZyArICIueG1sIjsK CQkJCX0KCQkJfQkJCQoJCQkKCQkJdGhpcy5ydXRhQ29uZmlnID0gdGhpcy5nZXRVUkxCYXNlKCJjb25m aWcvIiArIHJ1dGFDb25maWcpOwoJCX0KCQkKCQlpZiAoIXRoaXMubW9zY2EpIHsKCQkJLy8gTW9zY2EK CQkJdGhpcy5tb3NjYSA9IHsKCQkJCXVybDogIiIsCgkJCQlhbmNobzogLTEsCgkJCQlhbHRvOiAtMSwK CQkJCWltZzogbnVsbAoJCQl9OwoJCX0KCQoJCWlmIChjb25maWcpIHsKCQkJaWYgKCF0aGlzLm1vc2Nh LmltZykgewoJCQkJdGhpcy5tb3NjYS5pbWcgPSBuZXcgSW1hZ2UoKTsKCQkJCXZhciB1cmxNb3NjYSA9 IHRoaXMuZ2V0VVJMQmFzZSgiaW1hZ2VuZXMvIiArIGNvbmZpZyArICIvbW9zY2EucG5nIik7CgkJCQl0 aGlzLm1vc2NhLmltZy5zcmMgPSB0aGlzLm1vc2NhLnVybCA9IHVybE1vc2NhOwoJCQkJdmFyIG1vc2Nh SW1nID0gdGhpcy5tb3NjYS5pbWc7CgkJCQkKCQkJCXZhciBfdGhpcyA9IHRoaXM7CgkJCQlpZiAobW9z Y2FJbWcuY29tcGxldGUpIHsKCQkJCQlfdGhpcy5jYXJnYXJDb25maWdNb3NjYShtb3NjYUltZyk7CgkJ CQl9IGVsc2UgewoJCQkJCWlmICghbW9zY2FJbWcub25sb2FkKSB7CgkJCQkJCW1vc2NhSW1nLm9ubG9h ZCA9IGZ1bmN0aW9uKCkgewoJCQkJCQkJX3RoaXMuY2FyZ2FyQ29uZmlnTW9zY2EobW9zY2FJbWcpOwoJ CQkJCQl9CgkJCQkJCW1vc2NhSW1nLm9uYWJvcnQgPSBtb3NjYUltZy5vbmVycm9yID0gZnVuY3Rpb24o KSB7CgkJCQkJCQlfdGhpcy5pbml0dGVkID0gdHJ1ZTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJ CX0gZWxzZSB7CgkJCXRoaXMuaW5pdHRlZCA9IHRydWU7CgkJfQoJCQoJCXJldHVybiB0aGlzLmluaXR0 ZWQ7Cgl9LAoJCgljYXJnYXJDb25maWdNb3NjYSA6IGZ1bmN0aW9uKGxvZ28pIHsKCQl0aGlzLm1vc2Nh LmFuY2hvID0gcGFyc2VJbnQobG9nby53aWR0aCwgMTApOwoJCXRoaXMubW9zY2EuYWx0byA9IHBhcnNl SW50KGxvZ28uaGVpZ2h0LCAxMCk7CgkJCgkJdGhpcy5pbml0dGVkID0gdHJ1ZTsKCX0sCgkKCWNhbGN1 bGFNb3NjYTogZnVuY3Rpb24oYW5jaG8sIGFsdG8pIHsKCQl0cnkgewoJCQl2YXIgY29uZmlnID0gdGhp cy5tb3NjYTsKCQkJdmFyIG1vc2NhID0gIm1vc2NhLnBuZyI7CgkJCXZhciBpQW5jaG8gPSBwYXJzZUlu dChhbmNobywgMTApOwoJCQl2YXIgaUFsdG8gPSBwYXJzZUludChhbHRvLCAxMCk7CgkJCQoJCQl2YXIg YWx0b01vc2NhID0gY29uZmlnLmFsdG87CgkJCXZhciBhbmNob01vc2NhID0gY29uZmlnLmFuY2hvOwoJ CQkKCQkJaWYgKChpQW5jaG8gKiAwLjUpIDwgYW5jaG9Nb3NjYSB8fCAoaUFsdG8gKiAwLjMpIDwgYWx0 b01vc2NhKSB7CgkJCQltb3NjYSA9ICJtb3NjYS1zbWFsbC5wbmciOwoJCQl9CgkJCQoJCQlpZiAoaUFu Y2hvIDwgdGhpcy5NSU5fQU5DSE9fUExBWUVSIHx8IGlBbHRvIDwgdGhpcy5NSU5fQUxUT19QTEFZRVIp IHsKCQkJCW1vc2NhID0gIiI7CgkJCX0KCQkJCgkJCWlmIChtb3NjYSkgewoJCQkJcmV0dXJuIGNvbmZp Zy51cmwuc3Vic3RyaW5nKDAsIGNvbmZpZy51cmwubGFzdEluZGV4T2YoIi8iKSArIDEpICsgbW9zY2E7 CgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gIiI7CgkJCX0KCQl9IGNhdGNoIChlKSB7CgkJCXJldHVybiAi IjsKCQl9Cgl9LAoJLyoKCXV0bWFjCVVBLTY3NzM4MDYtMwoJdXRtY2MJX191dG1hPTY1OTIyMzAyLjIw MjUzNTU1OTcwMTI1OTc4MDAuMTI1MjQ4MjQxOC4xMjUzODc1MTE2LjEyNTUwMTY2MjMuMTg7K19fdXRt ej02NTkyMjMwMi4xMjUzNjk5NTQyLjEyLjIudXRtY3NyPTIxMi44MS4xMjkuMjU6ODI4MXx1dG1jY249 KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS9pbmRleC5hc3A7Cgl1dG1jcwlVVEYtOAoJ dXRtZHQJQUJDIFdFQiBUVgoJdXRtZQk1KHZpZGVvKlZpZGVvIHNlcnZpZG8qYWJjdHYuX2dlbnRlLmVu LWFiY3R2LkluZGlvcyB5IFZhcXVlcm9zOiBBbG9uZHJhIEJlbnRsZXkpCgl1dG1mbAkxMC4wIHIzMgoJ dXRtaGlkCTEyNzM2MjE2NTkKCXV0bWhuCXd3dy5hYmN0di5lcwoJdXRtamUJMAoJdXRtbgkzNDMwNzM3 OTYKCXV0bXAJLwoJdXRtcgktCgl1dG1zYwkzMi1iaXQKCXV0bXNyCTEyODB4ODAwCgl1dG10CWV2ZW50 Cgl1dG11bAllcy1lcwoJdXRtd3YJNC4zYXMKCSAqLwoJc2V0VmFsb3Jlc0dvb2dsZUFuYWx5dGljcyA6 IGZ1bmN0aW9uKGZvLCBvcGNpb25lcykgewoJCXZhciBjYXRlZ29yaWFzID0gdGhpcy5nZXRDYXRlZ29y aWFzR29vZ2xlQW5hbHl0aWNzKG9wY2lvbmVzKTsKCQl2YXIgcmVzdWx0ID0gW107CgkJcmVzdWx0LnB1 c2goImNoYW5uZWw6OiIgKyBjYXRlZ29yaWFzWzBdKTsKCQlyZXN1bHQucHVzaCgic3ViQ2hhbm5lbDo6 IiArIGNhdGVnb3JpYXNbMV0pOwoJCWZvLmFkZFZhcmlhYmxlKCJnb29nbGVBbmFseXRpY3MiLCByZXN1 bHQuam9pbigiLCIpKTsKCX0sCgkJCglnZXRDYXRlZ29yaWFzR29vZ2xlQW5hbHl0aWNzIDogZnVuY3Rp b24ob3BjaW9uZXMpIHsKCQl2YXIgY2F0ZWdvcmlhID0gIiI7CgkJdmFyIHN1YmNhdGVnb3JpYSA9ICIi OwoJCQoJCXRyeSB7CgkJCWlmICh0aGlzLmVzRG9taW5pb0Nvbm9jaWRvKCkpIHsKCQkJCXZhciB1cmwg PSBsb2NhdGlvbi5wYXRobmFtZTsKCQkJCXZhciBwYXJ0ZXMgPSB1cmwuc3BsaXQoIi8iKTsKCQkJCQoJ CQkJLy8gZWxpbWluYW1vcyBsYSAxqiBwcSBzaWVtcHJlIGxsZWdhIHZhY2lhCgkJCQlwYXJ0ZXMuc3Bs aWNlKDAsIDEpOwoJCQkJCgkJCQlpZiAocGFydGVzW3BhcnRlcy5sZW5ndGggLSAxXSA9PSAiIikgewoJ CQkJCS8vIGNvbXByb2JhbW9zIHNpIGxhIHVsdGltYSBwYXJ0ZXMgZXMgdmFjaWEKCQkJCQlwYXJ0ZXMu c3BsaWNlKHBhcnRlcy5sZW5ndGggLSAxLCAxKTsKCQkJCX0KCQkJCQoJCQkJaWYgKHBhcnRlcy5sZW5n dGggPiAwKSB7CgkJCQkJaWYgKC9eXGR7OH0vLnRlc3QocGFydGVzWzBdKSkgewoJCQkJCQkvLyBsYSAx qiBjb21wb25lbnRlIGVzIDEgZmVjaGEsIGx1ZWdvIGVzIHVuIGRldGFsbGUgZGUgbm90aWNpYQoJCQkJ CQkvLyBsYSBlbGltaW5hbW9zCgkJCQkJCXBhcnRlcy5zcGxpY2UoMCwgMSk7CgkJCQkJfQoJCQkJfQoJ CQkJaWYgKHBhcnRlcy5sZW5ndGggPiAwKSB7CgkJCQkJaWYgKHBhcnRlc1twYXJ0ZXMubGVuZ3RoIC0g MV0uaW5kZXhPZigiLiIpICE9IC0xKSB7CgkJCQkJCWlmIChwYXJ0ZXNbcGFydGVzLmxlbmd0aCAtIDFd LmluZGV4T2YoIi5hc3AiKSAhPSAtMSkgewoJCQkJCQkJLy8gc2kgYWNhYmEgZW4gYXNwIGVzIHVuYSBw b3J0YWRhIGRlIEFCQywgbGEgcHJlcGFyYW1vcyBwYXJhIGludGVudGFyIHNhY2FyIGx1ZWdvIGxhIHN1 YmNhdGVnb3JpYQoJCQkJCQkJdmFyIHBhZ2luYVRlbXAgPSBwYXJ0ZXNbcGFydGVzLmxlbmd0aCAtIDFd OwoJCQkJCQkJcGFydGVzW3BhcnRlcy5sZW5ndGggLSAxXSA9IHBhZ2luYVRlbXAucmVwbGFjZSgvXC5h c3AvZ2ksICIiKTsKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCS8vIGVzIHVuYSBw4WdpbmEgaHRtbCwgYXNw Li4uCgkJCQkJCQkvLyBsbyBlbGltaW5hbW9zCgkJCQkJCQlwYXJ0ZXMuc3BsaWNlKHBhcnRlcy5sZW5n dGggLSAxLCAxKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJaWYgKHBhcnRlcy5sZW5ndGgg PT0gMCkgewoJCQkJCWNhdGVnb3JpYSA9ICJwb3J0YWRhIjsKCQkJCX0gZWxzZSBpZiAocGFydGVzLmxl bmd0aCA9PSAxKSB7CgkJCQkJaWYodGhpcy5jbGVhblVSTChwYXJ0ZXNbMF0pPT0iYWxhdmEiIHx8IHRo aXMuY2xlYW5VUkwocGFydGVzWzBdKT09ImFsbWVyaWEiIHx8IHRoaXMuY2xlYW5VUkwocGFydGVzWzBd KT09ImphZW4iIHx8IHRoaXMuY2xlYW5VUkwocGFydGVzWzBdKT09ImFsYmFjZXRlIiB8fCB0aGlzLmNs ZWFuVVJMKHBhcnRlc1swXSk9PSJhbGljYW50ZSIgfHwgdGhpcy5jbGVhblVSTChwYXJ0ZXNbMF0pPT0i amVyZXoiKQoJCQkJCQljYXRlZ29yaWEgPSAicG9ydGFkYSI7CgkJCQkJZWxzZQoJCQkJCQljYXRlZ29y aWEgPSB0aGlzLmNsZWFuVVJMKHBhcnRlc1swXSk7CgkJCQl9IGVsc2UgewoJCQkJCS8vIHRlbmVtb3Mg bWFzIGRlIDIgcG9yY2lvbmVzIGRlIHVybCwgbGFzIGNvZ2Vtb3MgY29tbyBjYXRlZ29yaWEgeSBzdWJj YXRlZ29yaWEKCQkJCQljYXRlZ29yaWEgPSB0aGlzLmNsZWFuVVJMKHBhcnRlc1swXSk7CgkJCQkJaWYo L15cZHs4fS8udGVzdChwYXJ0ZXNbMV0pKXsKCQkJCQkJc3ViY2F0ZWdvcmlhID0gdGhpcy5jbGVhblVS TChwYXJ0ZXNbMl0pOwoJCQkJCX0KCQkJCQllbHNlewoJCQkJCQlzdWJjYXRlZ29yaWEgPSB0aGlzLmNs ZWFuVVJMKHBhcnRlc1sxXSk7CgkJCQkJCWlmICh0aGlzLmNsZWFuVVJMKHBhcnRlc1syXSkpCgkJCQkJ CQlzdWJjYXRlZ29yaWErPSAiLyIgK3RoaXMuY2xlYW5VUkwocGFydGVzWzJdKTsKCQkJCQl9CgkJCQl9 CgkJCX0gZWxzZSB7CgkJCQl2YXIgdXJsID0gbG9jYXRpb24uaHJlZjsKCQkJCXZhciBwYXJ0ZXNVUkwg PSB1cmwuc3BsaXQoIi8iKTsKCQkJCXZhciBwYWdpbmEgPSBwYXJ0ZXNVUkxbcGFydGVzVVJMLmxlbmd0 aCAtIDFdOwoJCQkJaWYgKC9cLiguKSskLy50ZXN0KHBhZ2luYSkpIHsKCQkJCQlzdWJjYXRlZ29yaWEg PSBwYXJ0ZXNVUkwuc3BsaWNlKHBhcnRlc1VSTC5sZW5ndGggLSAxLCAxKTsKCQkJCQljYXRlZ29yaWEg PSBwYXJ0ZXNVUkwuam9pbigiLyIpOwoJCQkJfSBlbHNlIHsKCQkJCQljYXRlZ29yaWEgPSB1cmw7CgkJ CQl9CgkJCX0KCQl9IGNhdGNoIChlKSB7CgkJfQoJCQoJCXJldHVybiBbY2F0ZWdvcmlhLCBzdWJjYXRl Z29yaWFdOwoJfSwKCQoJZXNEb21pbmlvQ29ub2NpZG86IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBk b21pbmlvID0gbG9jYXRpb24uaG9zdG5hbWU7CiAgICAgICAgZm9yICh2YXIgcG9ydGFsIGluIHRoaXMu SU5GT19QT1JUQUxFUykgewogICAgICAgIAl2YXIgc2Vydmlkb3JlcyA9IHRoaXMuSU5GT19QT1JUQUxF U1twb3J0YWxdLnNlcnZpZG9yZXM7CiAgICAgICAgCWZvciAodmFyIGkgPSAwOyBpIDwgc2Vydmlkb3Jl cy5sZW5ndGg7IGkrKykgewogICAgICAgIAkJdmFyIGNhbmRpZGF0byA9IHNlcnZpZG9yZXNbaV07CiAg ICAgICAgCQlpZiAoY2FuZGlkYXRvID09IGRvbWluaW8pIHsKICAgICAgICAJCQlyZXR1cm4gdHJ1ZTsK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFs c2U7Cgl9LAoKCS8vIHpvbmVpZDoxMjYsQ0FUX2dlbnRlLFNDQVRlbi1hYmN0dixQT1JhYmN0dixpbmRp b3MtdmFxdWVyb3MtYWxvbmRyYS1iZW50bGV5LTU0NDQxCgkvKioKCSAqIExhcyB6b25hcyBzZSBjYXJn YXJhbiBkZSBsYSBjb25maWd1cmFjaW9uLCBhc2kgY29tbyBlbCBwb3J0YWwgbyBzaXRlCgkgKi8KCS8q c2V0VmFsb3Jlc0FkdmVybmV0OiBmdW5jdGlvbihmbywgb3BjaW9uZXMpIHsKCQl2YXIgcmVzdWx0ID0g W107CgkJCgkJdmFyIHRhZ3MgPSBudWxsOwoJCWlmIChvcGNpb25lcykgewoJCQl0YWdzID0gb3BjaW9u ZXMudGFncyB8fCB0aGlzLmdldEtleVdvcmRzKG9wY2lvbmVzLnRpdHVsbykgfHwgIiI7CgkJfQoJCWlm ICh0YWdzKSB7CgkJCXRhZ3MgPSB0YWdzLnJlcGxhY2UoL1ssIF0vZywgIi0iKTsKCQkJcmVzdWx0LnB1 c2goInRhZ3M6OiIgKyB0YWdzKTsKCQl9CgkJdmFyIGNhdGVnb3JpYSA9IHVuZGVmaW5lZDsKCQl2YXIg c3ViY2F0ZWdvcmlhID0gdW5kZWZpbmVkOwoJCWlmIChvcGNpb25lcykgewoJCQljYXRlZ29yaWEgPSBv cGNpb25lcy5jYXRlZ29yaWFQdWJsaSB8fCB1bmRlZmluZWQ7CgkJCXN1YmNhdGVnb3JpYSA9IG9wY2lv bmVzLnN1YmNhdGVnb3JpYVB1YmxpIHx8IHVuZGVmaW5lZDsKCQl9CgkJcmVzdWx0LnB1c2goImNoYW5u ZWw6OiIgKyBjYXRlZ29yaWEpOwoJCXJlc3VsdC5wdXNoKCJzdWJDaGFubmVsOjoiICsgc3ViY2F0ZWdv cmlhKTsKCQkKCQlmby5hZGRWYXJpYWJsZSgiYWR2ZXJuZXQiLCByZXN1bHQuam9pbigiLCIpKTsKCX0s Ki8KCQoJX3Nob3dWaWRlbyA6IGZ1bmN0aW9uKGlkLCB2aWRlbywgdywgaCwgb3BjaW9uZXMpIHsKCQl2 YXIgZnVuY2lvbiA9IHRoaXMuX3Nob3dWaWRlbzsKCQkKCQlpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDUp IHsKCQkJLy8gU2kgbm8gbm9zIHBhc2FuIHVuIGlkIGRlIGNhcGEsIGNyZWFtb3MgMSBlbiBsYSBwb3Np Y2lvbiBhY3R1YWwgeSBsYSB1c2Ftb3MgcGFyYSBlc2NyaWJpciBlbCB2aWRlbwoJCQkvLyAoQ1VJREFE TyEgIFNpIGxhIHBhZ2luYSB5YSBlc3RhIGNhcmdhZGEsIHNpZW1wcmUgaGF5IHF1ZSBpbmRpY2FyIHVu IGlkLCBzaW5vIGJvcnJhcmlhIGxhIHBhZ2luYSBhY3R1YWwpCgkJCXZhciB1aWQgPSB0aGlzLmdldFVJ RCgidmlkZW8iKTsKCQkJZG9jdW1lbnQud3JpdGUoJzxkaXYgaWQ9IicgKyB1aWQgKyAnIj48L2Rpdj4n KTsKCQkJCgkJCXZhciBhcmdzID0gbmV3IEFycmF5KDUpOwoJCQlhcmdzWzBdID0gdWlkOwoJCQlmb3Ig KHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJCQkJYXJnc1tpICsgMV0gPSBh cmd1bWVudHNbaV07CgkJCX0KCQkJCgkJCWZ1bmNpb24uY2FsbCh0aGlzLCBhcmdzWzBdLCBhcmdzWzFd LCBhcmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdKTsKCQkJcmV0dXJuOwoJCX0KCQkKCQkKCQlpZiAoIW9w Y2lvbmVzKSB7CgkJCW9wY2lvbmVzID0ge307CgkJfQoJCQoJCS8vIEVzcGVyYW1vcyBxdWUgc2UgY2Fy Z3VlIGxhIGltYWdlbiBkZSBtb3NjYSBwYXJhIHBvZGVyIGNhbGN1bGFyIGN1YWwgZGUgbGFzIGRvcyBt b3N0cmFyCgkJLy8gc2kgbGEgcGVxdWXxYSBvIGxhIG5vcm1hbCBvIG5pbmd1bmEKCQlpZiAoIXRoaXMu aW5pdChvcGNpb25lcywgdmlkZW8pKSB7CgkJCXZhciBfdGhpcyA9IHRoaXM7CgkJCXNldFRpbWVvdXQo ZnVuY3Rpb24oKSB7CgkJCQlmdW5jaW9uLmNhbGwoX3RoaXMsIGlkLCB2aWRlbywgdywgaCwgb3BjaW9u ZXMpOwoJCQl9LCA1MDApOwoJCQlyZXR1cm47CgkJfQoJCQoJCS8vIGNvbiBlc3RvIGNvbnNlZ3VpbW9z IGlkcyB1bmljb3MKCQl2YXIgaWRQbGF5ZXIgPSB0aGlzLmdldFVJRCgibW92aWVfcGxheWVyIik7CgkK CQl2YXIgZm8gPSBuZXcgU1dGT2JqZWN0KHRoaXMuZ2V0VVJMQmFzZSgiRkxWUGxheWVyLnN3ZiIpLCBp ZFBsYXllciwgdywgaCwgdGhpcy5WRVJTSU9OX0ZMQVNILCBnZXRDb2xvckZvbmRvKCkpOwoJCgkJLy8g dHJhbnNwYXJlbmNpYQoJCWZvLmFkZFBhcmFtKCJ3bW9kZSIsICJ0cmFuc3BhcmVudCIpOwoJCQoJCWZv LmFkZFBhcmFtKCJzd0xpdmVDb25uZWN0IiwgInRydWUiKTsKCQlmby5hZGRQYXJhbSgiYWxsb3dTY3Jp cHRBY2Nlc3MiLCAiYWx3YXlzIik7CgkKCQkvLyBydXRhIGRlbCBmaWNoZXJvIGRlIGNvbmZpZ3VyYWNp b24KCQlpZiAodGhpcy5ydXRhQ29uZmlnKSB7CgkJCWZvLmFkZFZhcmlhYmxlKCJjb25maWciLCB0aGlz LnJ1dGFDb25maWcpOwoJCX0KCQkKCQkvLyBVUkwgZGVsIHZpZGVvCgkJaWYgKHZpZGVvLmluZGV4T2Yo J3lvdXR1YmUuY29tJykgIT0gLTEpIHsKCQkJdmFyIGlkWW91dHViZSA9IHZpZGVvLnN1YnN0cmluZyh2 aWRlby5pbmRleE9mKCc9JykrMSwgdmlkZW8ubGVuZ3RoKTsKCQkJZm8uYWRkVmFyaWFibGUoImZpbGUi LCBpZFlvdXR1YmUpOwoJCQlmby5hZGRWYXJpYWJsZSgiY2RuIiwgInlvdXR1YmUiKTsKCQl9CgkJZWxz ZSB7CgkJCWZvLmFkZFZhcmlhYmxlKCJmaWxlIiwgdmlkZW8pOwoJCX0KCQkKCQkvL2NvbXBydWViYSBz aSBlcyBsaXZlCgkJaWYgKCAodmlkZW8uaW5kZXhPZigncnRtcDovLycpICE9IC0xKSB8fCAodmlkZW8u aW5kZXhPZigncnRtcHQ6Ly8nKSAhPSAtMSkgKSB7CgkJCWZvLmFkZFZhcmlhYmxlKCJpc0xpdmUiLCAi dHJ1ZSIpOwoJCX0KCQkKCQkvLyBhbHRvIHkgYW5jaG8KCQlmby5hZGRWYXJpYWJsZSgid2lkdGgiLCBw YXJzZUludCh3LCAxMCkpOwoJCWZvLmFkZFZhcmlhYmxlKCJoZWlnaHQiLCBwYXJzZUludChoLCAxMCkp OwoJCQoJCS8vIGdvb2dsZSBhbmFseXRpY3MKCQl0aGlzLnNldFZhbG9yZXNHb29nbGVBbmFseXRpY3Mo Zm8sIG9wY2lvbmVzKTsKCQkKCQkvLyBhZHZlcm5ldAoJCS8vdGhpcy5zZXRWYWxvcmVzQWR2ZXJuZXQo Zm8sIG9wY2lvbmVzKTsKCQkKCQkvL0RBUlQKCQlpZiAodHlwZW9mIChPQVNfc2l0ZXBhZ2UpICE9ICd1 bmRlZmluZWQnKXsKCQkJZm8uYWRkVmFyaWFibGUoImFkdmVydGlzZW1lbnQiLCJPQVNfc2l0ZXBhZ2U6 OiIgKyBnZXRPQVNfc2l0ZXBhZ2UoT0FTX3NpdGVwYWdlKSk7CgkJfWVsc2V7CgkJCWZvLmFkZFZhcmlh YmxlKCJhZHZlcnRpc2VtZW50IiwiT0FTX3NpdGVwYWdlOjoiKTsKCQl9CgkJCgkJaWYgKG9wY2lvbmVz KSB7CgkJCWlmICghb3BjaW9uZXMudGl0dWxvKSB7CgkJCQlvcGNpb25lcy50aXR1bG8gPSAiRGVzY29u b2NpZG8iOwoJCQl9CgkJCW9wY2lvbmVzLnRpdHVsbyA9IHRoaXMuZ2V0Q2xlYW5UaXRsZShvcGNpb25l cy50aXR1bG8pOwoJCQkKCQkJLy8gcGFudGFsbGEgY29tcGxldGEKCQkJaWYgKG9wY2lvbmVzLmZ1bGxz Y3JlZW4gIT09IGZhbHNlKSB7CgkJCQlmby5hZGRQYXJhbSgiYWxsb3dmdWxsc2NyZWVuIiwgInRydWUi KTsKCQkJfQoJCQkKCQkJLy8gaW1hZ2VuIGRlIHByZXZpYQoJCQlpZiAob3BjaW9uZXMuaW1nUHJldmlh KSB7CgkJCQl2YXIgaW1hZ2VuID0gdGhpcy5nZXRVUkxSZXNpemVyKG9wY2lvbmVzLmltZ1ByZXZpYSwg dywgaCk7CgkJCQlpbWFnZW4gPSBpbWFnZW4ucmVwbGFjZSgvJi9nLCIlMjYiKTsKCQkJCWZvLmFkZFZh cmlhYmxlKCJpbWFnZSIsIGltYWdlbik7CgkJCX0JCQkKCQkJaWYgKG9wY2lvbmVzLmF1dG9wbGF5KSB7 CgkJCQlmby5hZGRWYXJpYWJsZSgiYXV0b3N0YXJ0IiwgInRydWUiKTsKCQkJfQoJCQkKCQkJLy8gbW9z Y2EKCQkJdmFyIG1vc2NhID0gdGhpcy5jYWxjdWxhTW9zY2EodywgaCk7CgkJCWlmIChtb3NjYSkgewoJ CQkJZm8uYWRkVmFyaWFibGUoImxvZ28iLCAiaW1hZ2U6OiIgKyBtb3NjYSk7CgkJCX0KCQkJCgkJCS8v IGFqdXN0YXIKCQkJaWYgKG9wY2lvbmVzLmFqdXN0YXIgPT09IHRydWUpIHsKCQkJCWZvLmFkZFZhcmlh YmxlKCJvdmVyc3RyZXRjaCIsICJvdmVyc3RyZXRjaCIpOwoJCQl9IGVsc2UgaWYgKG9wY2lvbmVzLmFq dXN0YXIgPT09IGZhbHNlKSB7CgkJCQlmby5hZGRWYXJpYWJsZSgib3ZlcnN0cmV0Y2giLCAibWFpbnRh aW4iKTsKCQkJfSBlbHNlIGlmIChvcGNpb25lcy5hanVzdGFyKSB7CgkJCQlmby5hZGRWYXJpYWJsZSgi b3ZlcnN0cmV0Y2giLCBvcGNpb25lcy5hanVzdGFyKTsKCQkJfSBlbHNlIHsKCQkJCWZvLmFkZFZhcmlh YmxlKCJvdmVyc3RyZXRjaCIsICJtYWludGFpbiIpOwoJCQl9CgkJCQoJCQkvLyB0aXR1bG8gZGVsIHZp ZGVvCgkJCWlmIChvcGNpb25lcy50aXR1bG8pIHsKCQkJCWZvLmFkZFZhcmlhYmxlKCJ0aXRsZSIsIG9w Y2lvbmVzLnRpdHVsbyk7CgkJCX0KCQl9IGVsc2UgewoJCQkvLyBTaSBubyBub3MgbGxlZ2EgY29uZmln dXJhY2lvbgoJCQlmby5hZGRQYXJhbSgiYWxsb3dmdWxsc2NyZWVuIiwgInRydWUiKTsKCQkJZm8uYWRk VmFyaWFibGUoImF1dG9zdGFydCIsICJmYWxzZSIpOwoJCQlmby5hZGRWYXJpYWJsZSgib3ZlcnN0cmV0 Y2giLCAibWFpbnRhaW4iKTsKCQl9CgkKCQlpZiAobmF2aWdhdG9yICYmIG5hdmlnYXRvci5hcHBOYW1l ICYmIG5hdmlnYXRvci5hcHBOYW1lID09ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiKSB7CgkJ CXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CgkJCQl2YXIgY29udGVuZWRvciA9IGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKGlkKTsKCQkJCWlmIChjb250ZW5lZG9yKSB7CgkJCQkJY29udGVuZWRvci5pbm5lckhU TUwgPSAnPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW46MCBhdXRvIj48L2Rpdj4n OwoJCQkJCWZvLndyaXRlKGNvbnRlbmVkb3IuZmlyc3RDaGlsZCk7CgkJCQl9CgkJCQlQbGF5ZXJXZWJU Vi5pZUNvdW50ZXItLTsKCQkJfSwgNTAwICogUGxheWVyV2ViVFYuaWVDb3VudGVyKyspOwoJCX0gZWxz ZSB7CgkJCXZhciBjb250ZW5lZG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwoJCQlpZiAo Y29udGVuZWRvcikgewoJCQkJY29udGVuZWRvci5pbm5lckhUTUwgPSAnPGRpdiBzdHlsZT0idGV4dC1h bGlnbjogY2VudGVyOyBtYXJnaW46MCBhdXRvIj48L2Rpdj4nOwoJCQkJZm8ud3JpdGUoY29udGVuZWRv ci5maXJzdENoaWxkKTsKCQkJfQoJCX0KCX0sCgkKCV9zaG93QXVkaW8gOiBmdW5jdGlvbihpZCwgdmlk ZW8sIHcsIGgsIG9wY2lvbmVzKSB7CgkJdmFyIGZ1bmNpb24gPSB0aGlzLl9zaG93QXVkaW87CgkJCgkJ aWYgKGFyZ3VtZW50cy5sZW5ndGggPCA1KSB7CgkJCS8vIFNpIG5vIG5vcyBwYXNhbiB1biBpZCBkZSBj YXBhLCBjcmVhbW9zIDEgZW4gbGEgcG9zaWNpb24gYWN0dWFsIHkgbGEgdXNhbW9zIHBhcmEgZXNjcmli aXIgZWwgdmlkZW8KCQkJLy8gKENVSURBRE8hICBTaSBsYSBwYWdpbmEgeWEgZXN0YSBjYXJnYWRhLCBz aWVtcHJlIGhheSBxdWUgaW5kaWNhciB1biBpZCwgc2lubyBib3JyYXJpYSBsYSBwYWdpbmEgYWN0dWFs KQoJCQl2YXIgdWlkID0gdGhpcy5nZXRVSUQoInZpZGVvIik7CgkJCWRvY3VtZW50LndyaXRlKCc8ZGl2 IGlkPSInICsgdWlkICsgJyI+PC9kaXY+Jyk7CgkJCQoJCQl2YXIgYXJncyA9IG5ldyBBcnJheSg1KTsK CQkJYXJnc1swXSA9IHVpZDsKCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBp KyspIHsKCQkJCWFyZ3NbaSArIDFdID0gYXJndW1lbnRzW2ldOwoJCQl9CgkJCQoJCQlmdW5jaW9uLmNh bGwodGhpcywgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSk7CgkJCXJl dHVybjsKCQl9CgkJCgkJCgkJaWYgKCFvcGNpb25lcykgewoJCQlvcGNpb25lcyA9IHt9OwoJCX0KCQkK CQkvLyBFc3BlcmFtb3MgcXVlIHNlIGNhcmd1ZSBsYSBpbWFnZW4gZGUgbW9zY2EgcGFyYSBwb2RlciBj YWxjdWxhciBjdWFsIGRlIGxhcyBkb3MgbW9zdHJhcgoJCS8vIHNpIGxhIHBlcXVl8WEgbyBsYSBub3Jt YWwgbyBuaW5ndW5hCgkJaWYgKCF0aGlzLmluaXQob3BjaW9uZXMsIHZpZGVvKSkgewoJCQl2YXIgX3Ro aXMgPSB0aGlzOwoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJZnVuY2lvbi5jYWxsKF90aGlz LCBpZCwgdmlkZW8sIHcsIGgsIG9wY2lvbmVzKTsKCQkJfSwgNTAwKTsKCQkJcmV0dXJuOwoJCX0KCQkK CQkvLyBjb24gZXN0byBjb25zZWd1aW1vcyBpZHMgdW5pY29zCgkJdmFyIGlkUGxheWVyID0gdGhpcy5n ZXRVSUQoIm1vdmllX3BsYXllciIpOwoJCgkJdmFyIGZvID0gbmV3IFNXRk9iamVjdCh0aGlzLmdldFVS TEJhc2UoIkZMVlBsYXllci5zd2YiKSwgaWRQbGF5ZXIsIHcsIGgsdGhpcy5WRVJTSU9OX0ZMQVNILCBn ZXRDb2xvckZvbmRvKCkpOwoJCgkJLy8gdHJhbnNwYXJlbmNpYQoJCWZvLmFkZFBhcmFtKCJ3bW9kZSIs ICJ0cmFuc3BhcmVudCIpOwoJCQoJCWZvLmFkZFBhcmFtKCJzd0xpdmVDb25uZWN0IiwgInRydWUiKTsK CQlmby5hZGRQYXJhbSgiYWxsb3dTY3JpcHRBY2Nlc3MiLCAiYWx3YXlzIik7CgkKCQkvLyBydXRhIGRl bCBmaWNoZXJvIGRlIGNvbmZpZ3VyYWNpb24KCQlpZiAodGhpcy5ydXRhQ29uZmlnKSB7CgkJCWZvLmFk ZFZhcmlhYmxlKCJjb25maWciLCB0aGlzLnJ1dGFDb25maWcpOwoJCX0KCQkKCQkvLyBVUkwgZGVsIGF1 ZGlvCgkJZm8uYWRkVmFyaWFibGUoImZpbGUiLCB2aWRlbyk7CgkJCgkJLy8gYWx0byB5IGFuY2hvCgkJ Zm8uYWRkVmFyaWFibGUoIndpZHRoIiwgcGFyc2VJbnQodywgMTApKTsKCQlmby5hZGRWYXJpYWJsZSgi aGVpZ2h0IiwgcGFyc2VJbnQoaCwgMTApKTsKCQkKCQkvLyBnb29nbGUgYW5hbHl0aWNzCgkJLy90aGlz LnNldFZhbG9yZXNHb29nbGVBbmFseXRpY3MoZm8sIG9wY2lvbmVzKTsKCQkKCQkvLyBhZHZlcm5ldAoJ CS8vdGhpcy5zZXRWYWxvcmVzQWR2ZXJuZXQoZm8sIG9wY2lvbmVzKTsKCQkKCQlpZiAob3BjaW9uZXMp IHsKCQkJaWYgKCFvcGNpb25lcy50aXR1bG8pIHsKCQkJCW9wY2lvbmVzLnRpdHVsbyA9ICJEZXNjb25v Y2lkbyI7CgkJCX0KCQkJb3BjaW9uZXMudGl0dWxvID0gdGhpcy5nZXRDbGVhblRpdGxlKG9wY2lvbmVz LnRpdHVsbyk7CgkJCQoJCQkvLyBwYW50YWxsYSBjb21wbGV0YQoJCQlpZiAob3BjaW9uZXMuZnVsbHNj cmVlbiAhPT0gZmFsc2UpIHsKCQkJCWZvLmFkZFBhcmFtKCJhbGxvd2Z1bGxzY3JlZW4iLCAidHJ1ZSIp OwoJCQl9CgkJCQoJCQkvLyBpbWFnZW4gZGUgcHJldmlhCgkJCWlmIChvcGNpb25lcy5pbWdQcmV2aWEp IHsKCQkJCS8vZm8uYWRkVmFyaWFibGUoImltYWdlIiwgdGhpcy5nZXRVUkxSZXNpemVyKG9wY2lvbmVz LmltZ1ByZXZpYSwgdywgaCkpOwoJCQkJaWYgKHcgPD0gMjUzKSB2YXIgYW5jaG8gPSAgMjUzOwoJCQkJ ZWxzZSBpZiAodyA+IDI1MyAmJiB3IDw9IDMwMCkgdmFyIGFuY2hvID0gIDMwMDsKCQkJCWVsc2UgaWYg KHcgPiAzMDAgJiYgdyA8PSAzODQpIHZhciBhbmNobyA9ICAzODQ7CgkJCQllbHNlIGlmICh3ID4gMzg0 ICYmIHcgPD0gMzkwKSB2YXIgYW5jaG8gPSAgMzkwOwoJCQkJZWxzZSBpZiAodyA+IDM5MCAmJiB3IDw9 IDY2NSkgdmFyIGFuY2hvID0gIDY2NTsKCQkJCXZhciBpbWFnZW4gPSB0aGlzLmdldFVSTFJlc2l6ZXIo b3BjaW9uZXMuaW1nUHJldmlhLCB3LCBoLCAnYXVkaW8tb25kYV8nICsgYW5jaG8gKyAnLnBuZycpOwoJ CQkJaW1hZ2VuID0gaW1hZ2VuLnJlcGxhY2UoLyYvZywiJTI2Iik7CgkJCQlmby5hZGRWYXJpYWJsZSgi aW1hZ2UiLCBpbWFnZW4pOwoJCQl9CgkJCQoJCQlpZiAob3BjaW9uZXMuYXV0b3BsYXkpIHsKCQkJCWZv LmFkZFZhcmlhYmxlKCJhdXRvc3RhcnQiLCAidHJ1ZSIpOwoJCQl9CgkJCQoJCQkvLyBtb3NjYQoJCQkv L3ZhciBtb3NjYSA9IHRoaXMuY2FsY3VsYU1vc2NhKHcsIGgpOwoJCQkvL2lmIChtb3NjYSkgewoJCQkv Lwlmby5hZGRWYXJpYWJsZSgibG9nbyIsICJpbWFnZTo6IiArIG1vc2NhKTsKCQkJLy99CgkJCQoJCQkv LyBhanVzdGFyCgkJCWlmIChvcGNpb25lcy5hanVzdGFyID09PSB0cnVlKSB7CgkJCQlmby5hZGRWYXJp YWJsZSgib3ZlcnN0cmV0Y2giLCAib3ZlcnN0cmV0Y2giKTsKCQkJfSBlbHNlIGlmIChvcGNpb25lcy5h anVzdGFyID09PSBmYWxzZSkgewoJCQkJZm8uYWRkVmFyaWFibGUoIm92ZXJzdHJldGNoIiwgIm1haW50 YWluIik7CgkJCX0gZWxzZSBpZiAob3BjaW9uZXMuYWp1c3RhcikgewoJCQkJZm8uYWRkVmFyaWFibGUo Im92ZXJzdHJldGNoIiwgb3BjaW9uZXMuYWp1c3Rhcik7CgkJCX0gZWxzZSB7CgkJCQlmby5hZGRWYXJp YWJsZSgib3ZlcnN0cmV0Y2giLCAibWFpbnRhaW4iKTsKCQkJfQoJCQkKCQkJLy8gdGl0dWxvIGRlbCB2 aWRlbwoJCQlpZiAob3BjaW9uZXMudGl0dWxvKSB7CgkJCQlmby5hZGRWYXJpYWJsZSgidGl0bGUiLCBv cGNpb25lcy50aXR1bG8pOwoJCQl9CgkJfSBlbHNlIHsKCQkJLy8gU2kgbm8gbm9zIGxsZWdhIGNvbmZp Z3VyYWNpb24KCQkJZm8uYWRkUGFyYW0oImFsbG93ZnVsbHNjcmVlbiIsICJ0cnVlIik7CgkJCWZvLmFk ZFZhcmlhYmxlKCJhdXRvc3RhcnQiLCAiZmFsc2UiKTsKCQkJZm8uYWRkVmFyaWFibGUoIm92ZXJzdHJl dGNoIiwgIm1haW50YWluIik7CgkJfQoJCgkJaWYgKG5hdmlnYXRvciAmJiBuYXZpZ2F0b3IuYXBwTmFt ZSAmJiBuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVyIikgewoJ CQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJdmFyIGNvbnRlbmVkb3IgPSBkb2N1bWVudC5nZXRF bGVtZW50QnlJZChpZCk7CgkJCQlpZiAoY29udGVuZWRvcikgewoJCQkJCWNvbnRlbmVkb3IuaW5uZXJI VE1MID0gJzxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjwvZGl2Pic7CgkJCQkJZm8ud3Jp dGUoY29udGVuZWRvci5maXJzdENoaWxkKTsKCQkJCX0KCQkJCVBsYXllcldlYlRWLmllQ291bnRlci0t OwoJCQl9LCA1MDAgKiBQbGF5ZXJXZWJUVi5pZUNvdW50ZXIrKyk7CgkJfSBlbHNlIHsKCQkJdmFyIGNv bnRlbmVkb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CgkJCWlmIChjb250ZW5lZG9yKSB7 CgkJCQljb250ZW5lZG9yLmlubmVySFRNTCA9ICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7 Ij48L2Rpdj4nOwoJCQkJZm8ud3JpdGUoY29udGVuZWRvci5maXJzdENoaWxkKTsKCQkJfQoJCX0KCX0s CQoJCglzaG93VmlkZW86IGZ1bmN0aW9uKGlkLCB2aWRlbywgdywgaCwgb3BjaW9uZXMpIHsKCQl2YXIg ZXh0ZW5zaW9uID0gUGxheWVyV2ViVFYuZ2V0RXh0ZW5zaW9uKHZpZGVvKTsKCQkKCQl2YXIgZnVuY2lv biA9IHRoaXMuc2hvd1ZpZGVvOwoJCWlmIChhcmd1bWVudHMubGVuZ3RoIDwgNSkgewoJCQkvLyBTaSBu byBub3MgcGFzYW4gdW4gaWQgZGUgY2FwYSwgY3JlYW1vcyAxIGVuIGxhIHBvc2ljaW9uIGFjdHVhbCB5 IGxhIHVzYW1vcyBwYXJhIGVzY3JpYmlyIGVsIHZpZGVvCgkJCS8vIChDVUlEQURPISAgU2kgbGEgcGFn aW5hIHlhIGVzdGEgY2FyZ2FkYSwgc2llbXByZSBoYXkgcXVlIGluZGljYXIgdW4gaWQsIHNpbm8gYm9y cmFyaWEgbGEgcGFnaW5hIGFjdHVhbCkKCQkJdmFyIHVpZCA9IHRoaXMuZ2V0VUlEKCJ2aWRlbyIpOwoJ CQlkb2N1bWVudC53cml0ZSgnPGRpdiBpZD0iJyArIHVpZCArICciPjwvZGl2PicpOwoJCQkKCQkJdmFy IGFyZ3MgPSBuZXcgQXJyYXkoNSk7CgkJCWFyZ3NbMF0gPSB1aWQ7CgkJCWZvciAodmFyIGkgPSAwOyBp IDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CgkJCQlhcmdzW2kgKyAxXSA9IGFyZ3VtZW50c1tpXTsK CQkJfQoJCQkKCQkJZnVuY2lvbi5jYWxsKHRoaXMsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFy Z3NbM10sIGFyZ3NbNF0pOwoJCQlyZXR1cm47CgkJfQoJCWlmICghb3BjaW9uZXMpIHsKCQkJb3BjaW9u ZXMgPSB7fTsKCQl9CgkJCgkJdmFyIF90aGlzID0gdGhpczsKCQlpZiAoIXRoaXMuaW5pdChvcGNpb25l cywgdmlkZW8pKSB7CgkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CgkJCQlmdW5jaW9uLmNhbGwoX3Ro aXMsIGlkLCB2aWRlbywgdywgaCwgb3BjaW9uZXMpOwoJCQl9LCA1MDApOwoJCQlyZXR1cm47CgkJfQoJ CQoJCXZhciBjb250ZW5lZG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwoJCQoJCWlmIChj b250ZW5lZG9yKSB7CgkJCWlmIChvcGNpb25lcyAmJiBvcGNpb25lcy5pbWdQcmV2aWEpIHsKCQkJCWlm IChleHRlbnNpb24gPT0gJ21wMycpIHsKCQkJCQl2YXIgbWFyY2FBZ3VhID0gJ2F1ZGlvLXBsYXkucG5n JzsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCXZhciBtYXJjYUFndWEgPSAncGxheS5wbmcnOwoJCQkJfQoJ CQkJCgkJCQl2YXIgdXJsUHJldmlhUmVkaW1lbnNpb25hZGEgPSB0aGlzLmdldFVSTFJlc2l6ZXIob3Bj aW9uZXMuaW1nUHJldmlhLCB3LCBoLCBtYXJjYUFndWEpOwoJCQkJdGhpcy5waW50YXJJbWFnZW4oaWQs IHZpZGVvLCB3LCBoLCBvcGNpb25lcywgdXJsUHJldmlhUmVkaW1lbnNpb25hZGEpOwoJCQl9IGVsc2Ug ewoJCQkJdGhpcy5waW50YXJJbWFnZW4oaWQsIHZpZGVvLCB3LCBoLCBvcGNpb25lcywgbnVsbCk7CgkJ CX0KCQl9Cgl9LAoJCglwaW50YXJJbWFnZW46IGZ1bmN0aW9uKGlkLCB2aWRlbywgdywgaCwgb3BjaW9u ZXMsIHVybEltZ1ByZXZpYSwgaW1nUHJldmlhKSB7CgkJdmFyIGV4dGVuc2lvbiA9IFBsYXllcldlYlRW LmdldEV4dGVuc2lvbih2aWRlbyk7CgkJCgkJdmFyIF90aGlzID0gdGhpczsKCQl2YXIgZnVuY2lvbiA9 IHRoaXMucGludGFySW1hZ2VuOwoJCQoJCWlmICh1cmxJbWdQcmV2aWEgJiYgIWltZ1ByZXZpYSkgewoJ CQl2YXIgaW1nUHJldmlhID0gbmV3IEltYWdlKCk7CgkJCWltZ1ByZXZpYS5zcmMgPSB1cmxJbWdQcmV2 aWE7CgkJCWlmIChpbWdQcmV2aWEuY29tcGxldGUpIHsKCQkJCWZ1bmNpb24uY2FsbChfdGhpcywgaWQs IHZpZGVvLCB3LCBoLCBvcGNpb25lcywgdXJsSW1nUHJldmlhLCBpbWdQcmV2aWEpOwoJCQl9IGVsc2Ug ewoJCQkJaW1nUHJldmlhLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewoJCQkJCWZ1bmNpb24uY2FsbChfdGhp cywgaWQsIHZpZGVvLCB3LCBoLCBvcGNpb25lcywgdXJsSW1nUHJldmlhLCBpbWdQcmV2aWEpOwoJCQkJ fTsKCQkJCWltZ1ByZXZpYS5vbmVycm9yID0gaW1nUHJldmlhLm9uYWJvcnQgPSBmdW5jdGlvbigpIHsK CQkJCQlmdW5jaW9uLmNhbGwoX3RoaXMsIGlkLCB2aWRlbywgdywgaCwgb3BjaW9uZXMsIHVybEltZ1By ZXZpYSwgbmV3IEltYWdlKCkpOwoJCQkJfTsKCQkJfQoJCX0gZWxzZSBpZiAoIXVybEltZ1ByZXZpYSB8 fCAodXJsSW1nUHJldmlhICYmIGltZ1ByZXZpYSkpIHsKCQkJaWYgKCF1cmxJbWdQcmV2aWEpIHsKCQkJ CWltZ1ByZXZpYSA9IG5ldyBJbWFnZSgpOwoJCQl9CgkJCQoJCQl2YXIgY29udGVuZWRvciA9IGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKCQkJdmFyIGFsdG8gPSBwYXJzZUludChoLCAxMCk7CgkJCXZh ciBhbmNobyA9IHBhcnNlSW50KHcsIDEwKTsKCQkJdmFyIHRhbUljb25vID0gWzY0LCA2MV07CgkJCQoJ CQlvcGNpb25lcy5hdXRvcGxheSA9IHRydWU7CgkJCQoJCQl2YXIgYWNjaW9uID0gZnVuY3Rpb24oKSB7 CgkJCQlpZiAoZXh0ZW5zaW9uID09ICdtcDMnKSB7CgkJCQkJX3RoaXMuX3Nob3dBdWRpbyhpZCwgdmlk ZW8sIHcsIGgsIG9wY2lvbmVzKTsKCQkJCQl0aGlzLm9uY2xpY2sgPSBfdGhpcy5uYWRhOwoJCQkJfQoJ CQkJZWxzZSB7CgkJCQkJX3RoaXMuX3Nob3dWaWRlbyhpZCwgdmlkZW8sIHcsIGgsIG9wY2lvbmVzKTsK CQkJCQl0aGlzLm9uY2xpY2sgPSBfdGhpcy5uYWRhOwoJCQkJfQoJCQl9OwoJCQkKCQkJdmFyIGVzdHJh dGVnaWEgPSAiTWFyY2FBZ3VhRW5jYWphciI7CgkJCXN3aXRjaCAoZXN0cmF0ZWdpYSkgewoJCQkJY2Fz ZSAiU2luTWFyY2FBZ3VhUG9zaWNpb25hZG8iOgoJCQkJCS8vIFZlcnNpb24gY29uIHBsYXkgcG9zaWNp b25hZG8gKHByb2JsZW1hcyBjb24gSUU2KQoJCQkJCXRoaXMuZ2V0SFRNTEltYWdlblBvc2ljaW9uKGFu Y2hvLCBhbHRvLCB0YW1JY29ubywgaW1nUHJldmlhLCBjb250ZW5lZG9yLCBhY2Npb24sIGV4dGVuc2lv bik7CgkJCQlicmVhazsKCQkJCWNhc2UgIk1hcmNhQWd1YUFuY2hvMTAwQWx0b1Byb3BvcmNpb25hbCI6 CgkJCQkJLy8gVmVyc2lvbiBjb24gYW5jaG8gMTAwJSB5IGFsdG8gcHJvcG9yY2lvbmFsCgkJCQkJdGhp cy5nZXRIVE1MSW1hZ2VuTWFyY2FBZ3VhQWx0b1Byb3BvcmNpb25hbChhbmNobywgYWx0bywgdGFtSWNv bm8sIGltZ1ByZXZpYSwgY29udGVuZWRvciwgYWNjaW9uLCBleHRlbnNpb24pOwoJCQkJYnJlYWs7CgkJ CQljYXNlICJNYXJjYUFndWFFbmNhamFyIjoKCQkJCWRlZmF1bHQ6CgkJCQkJLy8gVmVyc2lvbiBjb24g bWFyY2EgZGUgYWd1YSBlIGltYWdlbiBjZW50cmFkYSBob3Jpem9udGFsIHkgdmVydGljYWxtZW50ZQoJ CQkJCXRoaXMuZ2V0SFRNTEltYWdlbk1hcmNhQWd1YShhbmNobywgYWx0bywgdGFtSWNvbm8sIGltZ1By ZXZpYSwgY29udGVuZWRvciwgYWNjaW9uLCBleHRlbnNpb24pOwoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9 LAoJCgkvLyBWZXJzaW9uIGNvbiBwbGF5IHBvc2ljaW9uYWRvIChwcm9ibGVtYXMgY29uIElFNikKCWdl dEhUTUxJbWFnZW5Qb3NpY2lvbjogZnVuY3Rpb24oYW5jaG8sIGFsdG8sIHRhbUljb25vLCBpbWdQcmV2 aWEsIGNvbnRlbmVkb3IsIGFjY2lvbiwgZXh0ZW5zaW9uKSB7CgkJaWYgKGV4dGVuc2lvbiA9PSAnbXAz JykgewoJCQl2YXIgdGV4dG9BbHQgPSAnUHVsc2UgcGFyYSBlc2N1Y2hhciBlbCBhdWRpbyc7CgkJCXZh ciBpbWFnZW5QbGF5ID0gJ2ltYWdlbmVzL2F1ZGlvLXBsYXkucG5nJzsKCQl9CgkJZWxzZSB7CgkJCXZh ciB0ZXh0b0FsdCA9ICdQdWxzZSBwYXJhIHZlciBlbCB2aWRlbyc7CgkJCXZhciBpbWFnZW5QbGF5ID0g J2ltYWdlbmVzL3BsYXkucG5nJzsKCQl9CgkJCgkJdmFyIHN0eWxlSWNvbm8gPSAibWFyZ2luLWxlZnQ6 ICIgKyAoYW5jaG8vMiAtIHRhbUljb25vWzBdLzIpICsgInB4OyB0b3A6ICIgKyAoYWx0by8yIC0gdGFt SWNvbm9bMV0vMikgKyAicHg7IjsKCQl2YXIgaHRtbCA9ICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBj ZW50ZXI7IG1hcmdpbjowIGF1dG8iPjxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2lu OjAgYXV0bztjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6ICcgKyBnZXRDb2xvckZvbmRv KCkgKyAnOyB3aWR0aDogJyArIGFuY2hvICsgJ3B4OyBoZWlnaHQ6ICcgKyBhbHRvICsgJ3B4OyI+JzsK CQlodG1sICs9ICc8aW1nIHNyYz0iJyArIHRoaXMuZ2V0VVJMQmFzZShpbWFnZW5QbGF5KSArICciIGFs dD0iJyArIHRleHRvQWx0ICsgJyIgdGl0bGU9IicgKyB0ZXh0b0FsdCArICciIHN0eWxlPSJtYXJnaW46 MCBhdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyOiAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IHot aW5kZXg6IDEwMTsgJyArIHN0eWxlSWNvbm8gKyAnIiAvPic7CgkJaWYgKGltZ1ByZXZpYSAmJiAoaW1n UHJldmlhLndpZHRoICsgaW1nUHJldmlhLmhlaWdodCkgPiAwKSB7CgkJCXZhciBzdHlsZSA9ICIiOwoJ CQl2YXIgcHJvcG9yY2lvblBsYXllciA9IGFuY2hvIC8gYWx0bzsKCQkJdmFyIHByb3BvcmNpb25JbWFn ZW4gPSBpbWdQcmV2aWEud2lkdGggLyBpbWdQcmV2aWEuaGVpZ2h0OwoJCQkKCQkJdmFyIGFsdG9GaW5h bCA9IGltZ1ByZXZpYS5oZWlnaHQ7CgkJCXZhciBhbmNob0ZpbmFsID0gaW1nUHJldmlhLndpZHRoOwoJ CQkKCQkJaWYgKHByb3BvcmNpb25QbGF5ZXIgPiBwcm9wb3JjaW9uSW1hZ2VuKSB7CgkJCQlhbmNob0Zp bmFsID0gYW5jaG9GaW5hbCAqIGFsdG8gLyBhbHRvRmluYWw7CgkJCQlhbHRvRmluYWwgPSBhbHRvOwoJ CQl9IGVsc2UgewoJCQkJYWx0b0ZpbmFsID0gYWx0b0ZpbmFsICogYW5jaG8gLyBhbmNob0ZpbmFsOwoJ CQkJYW5jaG9GaW5hbCA9IGFuY2hvOwoJCQl9CgkJCS8vIGNlbnRyYW1vcyBsYSBpbWFnZW4KCQkJdmFy IGNvb3JkcyA9IFsoYW5jaG8gLSBhbmNob0ZpbmFsKSAvIDIsIChhbHRvIC0gYWx0b0ZpbmFsKSAvIDJd OwoJCQl2YXIgc3R5bGUgPSAiaGVpZ2h0OiAiICsgYWx0b0ZpbmFsICsgInB4OyB3aWR0aDogIiArIGFu Y2hvRmluYWwgKyAicHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogMTAwOyB0b3A6ICIgKyBj b29yZHNbMV0gKyAicHg7IGxlZnQ6ICIgKyBjb29yZHNbMF0gKyAicHg7IjsKCQkJCgkJCWh0bWwgKz0g JzxpbWcgc3JjPSInICsgaW1nUHJldmlhLnNyYyArICciIGFsdD0iJyArIHRleHRvQWx0ICsgJyIgdGl0 bGU9IicgKyB0ZXh0b0FsdCArICciIHN0eWxlPSJib3JkZXI6IDA7IG1hcmdpbjowIGF1dG87IHRleHQt YWxpZ246Y2VudGVyOycgKyBzdHlsZSArICciIC8+JzsKCQl9IGVsc2UgewoJCQlodG1sICs9ICc8aW1n IHNyYz0iJyArIHRoaXMuZ2V0VVJMQmFzZShpbWFnZW5QbGF5KSArICciIGFsdD0iJyArIHRleHRvQWx0 ICsgJyIgdGl0bGU9IicgKyB0ZXh0b0FsdCArICciIHN0eWxlPSJtYXJnaW46MCBhdXRvOyB0ZXh0LWFs aWduOmNlbnRlcjsgYm9yZGVyOiAwOyBtYXJnaW4tdG9wOiAnICsgKChhbHRvIC0gdGFtSWNvbm9bMV0p IC8gMikgKyAncHg7IiAvPic7CgkJfQoJCWh0bWwgKz0gJzwvZGl2PjwvZGl2Pic7CgkJCgkJY29udGVu ZWRvci5pbm5lckhUTUwgPSBodG1sOwoJCWNvbnRlbmVkb3IuZmlyc3RDaGlsZC5maXJzdENoaWxkLm9u Y2xpY2sgPSBhY2Npb247Cgl9LAoJCgkvLyBWZXJzaW9uIGNvbiBtYXJjYSBkZSBhZ3VhIGUgaW1hZ2Vu IGNlbnRyYWRhIGhvcml6b250YWwgeSB2ZXJ0aWNhbG1lbnRlCglnZXRIVE1MSW1hZ2VuTWFyY2FBZ3Vh OiBmdW5jdGlvbihhbmNobywgYWx0bywgdGFtSWNvbm8sIGltZ1ByZXZpYSwgY29udGVuZWRvciwgYWNj aW9uLCBleHRlbnNpb24pIHsKCQlpZiAoZXh0ZW5zaW9uID09ICdtcDMnKSB7CgkJCXZhciB0ZXh0b0Fs dCA9ICdQdWxzZSBwYXJhIGVzY3VjaGFyIGVsIGF1ZGlvJzsKCQkJdmFyIGltYWdlblBsYXkgPSAnaW1h Z2VuZXMvYXVkaW8tcGxheS5wbmcnOwoJCX0KCQllbHNlIHsKCQkJdmFyIHRleHRvQWx0ID0gJ1B1bHNl IHBhcmEgdmVyIGVsIHZpZGVvJzsKCQkJdmFyIGltYWdlblBsYXkgPSAnaW1hZ2VuZXMvcGxheS5wbmcn OwoJCX0KCQkKCQl2YXIgaHRtbCA9ICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdp bjowIGF1dG8iPjxkaXYgc3R5bGU9Im1hcmdpbjowIGF1dG87Y3Vyc29yOiBwb2ludGVyOyBiYWNrZ3Jv dW5kLWNvbG9yOiAnICsgZ2V0Q29sb3JGb25kbygpICsgJzsgd2lkdGg6ICcgKyBhbmNobyArICdweDsg aGVpZ2h0OiAnICsgYWx0byArICdweDsiPic7CgkJaWYgKGltZ1ByZXZpYSAmJiAoaW1nUHJldmlhLndp ZHRoICsgaW1nUHJldmlhLmhlaWdodCkgPiAwKSB7CgkJCXZhciBzdHlsZSA9ICIiOwoJCQl2YXIgcHJv cG9yY2lvblBsYXllciA9IGFuY2hvIC8gYWx0bzsKCQkJdmFyIHByb3BvcmNpb25JbWFnZW4gPSBpbWdQ cmV2aWEud2lkdGggLyBpbWdQcmV2aWEuaGVpZ2h0OwoJCQkKCQkJdmFyIGFsdG9GaW5hbCA9IGltZ1By ZXZpYS5oZWlnaHQ7CgkJCXZhciBhbmNob0ZpbmFsID0gaW1nUHJldmlhLndpZHRoOwoJCQkKCQkJaWYg KHByb3BvcmNpb25QbGF5ZXIgPiBwcm9wb3JjaW9uSW1hZ2VuKSB7CgkJCQlhbmNob0ZpbmFsID0gYW5j aG9GaW5hbCAqIGFsdG8gLyBhbHRvRmluYWw7CgkJCQlhbHRvRmluYWwgPSBhbHRvOwoJCQl9IGVsc2Ug ewoJCQkJYWx0b0ZpbmFsID0gYWx0b0ZpbmFsICogYW5jaG8gLyBhbmNob0ZpbmFsOwoJCQkJYW5jaG9G aW5hbCA9IGFuY2hvOwoJCQl9CgkJCS8vIGNlbnRyYW1vcyBsYSBpbWFnZW4KCQkJdmFyIGNvb3JkcyA9 IFsoYW5jaG8gLSBhbmNob0ZpbmFsKSAvIDIsIChhbHRvIC0gYWx0b0ZpbmFsKSAvIDJdOwoJCQl2YXIg c3R5bGUgPSAiaGVpZ2h0OiAiICsgYWx0b0ZpbmFsICsgInB4OyB3aWR0aDogIiArIGFuY2hvRmluYWwg KyAicHg7IG1hcmdpbi10b3A6ICIgKyBjb29yZHNbMV0gKyAicHg7IjsKCQkJCgkJCWh0bWwgKz0gJzxp bWcgc3JjPSInICsgaW1nUHJldmlhLnNyYyArICciIGFsdD0iJyArIHRleHRvQWx0ICsgJyIgdGl0bGU9 IicgKyB0ZXh0b0FsdCArICciIHN0eWxlPSJtYXJnaW46MCBhdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsg Ym9yZGVyOiAwOyAnICsgc3R5bGUgKyAnIiAvPic7CgkJfSBlbHNlIHsKCQkJaHRtbCArPSAnPGltZyBz cmM9IicgKyB0aGlzLmdldFVSTEJhc2UoaW1hZ2VuUGxheSkgKyAnIiBhbHQ9IicgKyB0ZXh0b0FsdCAr ICciIHRpdGxlPSInICsgdGV4dG9BbHQgKyAnIiBzdHlsZT0ibWFyZ2luOjAgYXV0bzsgdGV4dC1hbGln bjpjZW50ZXI7IGJvcmRlcjogMDsgbWFyZ2luLXRvcDogJyArICgoYWx0byAtIHRhbUljb25vWzFdKSAv IDIpICsgJ3B4OyIgLz4nOwoJCX0KCQlodG1sICs9ICc8L2Rpdj48L2Rpdj4nOwoJCQoJCWNvbnRlbmVk b3IuaW5uZXJIVE1MID0gaHRtbDsKCQljb250ZW5lZG9yLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5vbmNs aWNrID0gYWNjaW9uOwoJfSwKCQoJLy8gVmVyc2lvbiBjb24gYW5jaG8gMTAwJSB5IGFsdG8gcHJvcG9y Y2lvbmFsCglnZXRIVE1MSW1hZ2VuTWFyY2FBZ3VhQWx0b1Byb3BvcmNpb25hbDogZnVuY3Rpb24oYW5j aG8sIGFsdG8sIHRhbUljb25vLCBpbWdQcmV2aWEsIGNvbnRlbmVkb3IsIGFjY2lvbiwgZXh0ZW5zaW9u KSB7CgkJaWYgKGV4dGVuc2lvbiA9PSAnbXAzJykgewoJCQl2YXIgdGV4dG9BbHQgPSAnUHVsc2UgcGFy YSBlc2N1Y2hhciBlbCBhdWRpbyc7CgkJCXZhciBpbWFnZW5QbGF5ID0gJ2ltYWdlbmVzL2F1ZGlvLXBs YXkucG5nJzsKCQl9CgkJZWxzZSB7CgkJCXZhciB0ZXh0b0FsdCA9ICdQdWxzZSBwYXJhIHZlciBlbCB2 aWRlbyc7CgkJCXZhciBpbWFnZW5QbGF5ID0gJ2ltYWdlbmVzL3BsYXkucG5nJzsKCQl9CgkJCgkJLy8g VmVyc2lvbiBjb24gbWFyY2EgZGUgYWd1YSBlIGltYWdlbiBvY3VwYSB0b2RvIGVsIGFuY2hvIHkgYWx0 byBwcm9wb3JjaW9uYWwKCQl2YXIgaHRtbCA9ICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7 IG1hcmdpbjowIGF1dG8iPjxkaXYgc3R5bGU9Im1hcmdpbjowIGF1dG87IGJhY2tncm91bmQtY29sb3I6 ICcgKyBnZXRDb2xvckZvbmRvKCkgKyAnOyBjdXJzb3I6IHBvaW50ZXI7IHdpZHRoOiAnICsgYW5jaG8g KyAncHg7Ij4nOwoJCWlmIChpbWdQcmV2aWEgJiYgKGltZ1ByZXZpYS53aWR0aCArIGltZ1ByZXZpYS5o ZWlnaHQpID4gMCkgewoJCQlodG1sICs9ICc8aW1nIHNyYz0iJyArIGltZ1ByZXZpYS5zcmMgKyAnIiBh bHQ9IicgKyB0ZXh0b0FsdCArICciIHRpdGxlPSInICsgdGV4dG9BbHQgKyAnIiBzdHlsZT0ibWFyZ2lu OjAgYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlcjogMCAiIC8+JzsKCQl9IGVsc2UgewoJCQlo dG1sICs9ICc8aW1nIHNyYz0iJyArIHRoaXMuZ2V0VVJMQmFzZShpbWFnZW5QbGF5KSArICciIGFsdD0i JyArIHRleHRvQWx0ICsgJyIgdGl0bGU9IicgKyB0ZXh0b0FsdCArICciIHN0eWxlPSJtYXJnaW46MCBh dXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyOiAwOyBtYXJnaW4tdG9wOiAnICsgKChhbHRvIC0g dGFtSWNvbm9bMV0pIC8gMikgKyAncHg7IiAvPic7CgkJfQoJCWh0bWwgKz0gJzwvZGl2PjwvZGl2Pic7 CgkJCgkJY29udGVuZWRvci5pbm5lckhUTUwgPSBodG1sOwoJCWNvbnRlbmVkb3IuZmlyc3RDaGlsZC5m aXJzdENoaWxkLm9uY2xpY2sgPSBhY2Npb247Cgl9LAoJCgkvKioKCSAqIE9idGllbmUgbGEgVVJMIGNv bXBsZXRhIHBhcmEgdW4gcmVjdXJzbywgc2Vn+m4gZWwgcG9ydGFsIGVzcGVjaWZpY2FkbwoJICovCgln ZXRVUkxCYXNlOiBmdW5jdGlvbih1cmwpIHsKCQlpZiAodGhpcy5wb3J0YWwgJiYgdGhpcy5JTkZPX1BP UlRBTEVTW3RoaXMucG9ydGFsXSkgewoJCQlpZiAodGhpcy5JTkZPX1BPUlRBTEVTW3RoaXMucG9ydGFs XS5iYXNlQ29uZmlnKSB7CgkJCQkvLyBzaSBlbCBwb3J0YWwgdGllbmUgdW4gYmFzZUNvbmZpZyBlc3Bl Y2lmaWNvLCBsbyB1c28KCQkJCXJldHVybiB0aGlzLklORk9fUE9SVEFMRVNbdGhpcy5wb3J0YWxdLmRv bWluaW8gKyB0aGlzLklORk9fUE9SVEFMRVNbdGhpcy5wb3J0YWxdLmJhc2VDb25maWcgKyB1cmw7CgkJ CX0gZWxzZSB7CgkJCQlyZXR1cm4gdGhpcy5JTkZPX1BPUlRBTEVTW3RoaXMucG9ydGFsXS5kb21pbmlv ICsgdGhpcy5CQVNFX0NPTkZJRyArIHVybDsKCQkJfQoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLkJB U0VfQ09ORklHICsgdXJsOwoJCX0KCX0sCgkKCS8qKgoJICogQ29tYmllcnRlIFVSTCdzIHJlbGF0aXZh cyBhbCBzZXJ2aWRvciBlbiBVUkwncyBhYnNvbHV0YXMuICBVdGlsaXphZG8gcGFyYSBlbCByZXNpemVy CgkgKi8KCWdldEZ1bGxVUkw6IGZ1bmN0aW9uKHNyYykgewoJCWlmIChzcmMuaW5kZXhPZigiLy8iKSA9 PSAtMSAmJiAhKHNyYy5jaGFyQXQoMCkgPT0gIi8iKSkgewoJCQkvLyBsYSBydXRhIGVzIHJlbGF0aXZh IGEgbGEgcGFnaW5hCgkJCS8vIHNyYyA9ICJuaXZlbDIvaW1hZ2VuLnBuZyIKCQkJdmFyIHJ1dGEgPSBs b2NhdGlvbi5ocmVmLnN1YnN0cmluZygwLCBsb2NhdGlvbi5ocmVmLmxhc3RJbmRleE9mKCIvIikgKyAx KTsKCQkJc3JjID0gcnV0YSArIHNyYzsKCQl9IGVsc2UgaWYgKHNyYy5jaGFyQXQoMCkgPT0gIi8iKSB7 CgkJCS8vIGxhIHJ1dGEgZGUgbGEgaW1hZ2VuIGVzIHJlbGF0aXZhIGFsIHNlcnZpZG9yLCBjb25jYXRl bmFtb3MgZWwgc2Vydmlkb3IgYWN0dWFsCgkJCS8vIHNyYyA9ICIvY2FycGV0YS9pbWFnZW4ucG5nIgoJ CQlzcmMgPSBsb2NhdGlvbi5wcm90b2NvbCArICIvLyIgKyBsb2NhdGlvbi5ob3N0ICsgc3JjOwoJCX0K CQlyZXR1cm4gc3JjOwoJfSwKCQoJLyoqCgkgKiBEZXZ1ZWx2ZSBsYSBVUkwgcGFyYSBwZWRpciBhbCBy ZXNpemVyIGxhIG51ZXZhIGltYWdlbgoJICovCglnZXRVUkxSZXNpemVyOiBmdW5jdGlvbihzcmMsIGFu Y2hvLCBhbHRvLCBtYXJjYUFndWEpIHsKCQl2YXIgcmVzdWx0ID0gdGhpcy5nZXRGdWxsVVJMKHNyYyk7 CgkJCgkJaWYgKHRoaXMucG9ydGFsKSB7CgkJCXZhciBtZWRpbyA9ICIiOwoJCQl2YXIgbWVkaW8gPSB0 aGlzLklORk9fUE9SVEFMRVNbdGhpcy5wb3J0YWxdLnJlc2l6ZXI7CgkJCQoJCQlpZiAoIW1lZGlvKSB7 CgkJCQltZWRpbyA9IHRoaXMucG9ydGFsICsgIi5lcyI7CgkJCX0KCQkJCgkJCWlmICghaXNEZXNhcnJv bGxvQUJDKCkpIHsKCQkJCWlmIChtYXJjYUFndWEpIHsKCQkJCQlyZXN1bHQgPSAiaHR0cDovL2ZvdG8t Y2FjaGUuIiArIG1lZGlvICsgIi9yZXNpemVyL3Jlc2l6ZXIucGhwP2ltYWdlbj0iICsgcmVzdWx0ICsg IiZudWV2b2FuY2hvPSIgKyBhbmNobyArICImbnVldm9hbHRvPSIgKyBhbHRvICsgIiZjb3B5cmlnaHQ9 ZmFsc2UmZW5jcnlwdD1mYWxzZSZtYXJjYWFndWE9bWFyY2FzYWd1YS8iICsgbWFyY2FBZ3VhICsgIiZw b3NtYXJjYT1DJnRyYW5zcGFyZW5jaWE9ODUiOwoJCQkJfSBlbHNlIHsKCQkJCQlyZXN1bHQgPSAiaHR0 cDovL2ZvdG8tY2FjaGUuIiArIG1lZGlvICsgIi9yZXNpemVyL3Jlc2l6ZXIucGhwP2ltYWdlbj0iICsg cmVzdWx0ICsgIiZudWV2b2FuY2hvPSIgKyBhbmNobyArICImbnVldm9hbHRvPSIgKyBhbHRvICsgIiZj b3B5cmlnaHQ9Y29uQ29weXJpZ2h0JmVuY3J5cHQ9ZmFsc2UiOwoJCQkJfQoJCQl9CgkJfQoJCQoJCXJl dHVybiByZXN1bHQ7Cgl9Cn07CgovKioKICogSW5jbHVpbW9zIGxhcyBwcm9waWVkYWRlcyBlc3RhdGlj YXMgZW4gZWwgcHJvdG90aXBvCiAqLwooZnVuY3Rpb24oKSB7Cgl2YXIgcHJvdG90aXBvID0gUGxheWVy V2ViVFYucHJvdG90eXBlOwoJZm9yICh2YXIgcHJvcCBpbiBQbGF5ZXJXZWJUVikgewoJCWlmIChwcm9w ICE9ICJwcm90b3R5cGUiKSB7CgkJCXByb3RvdGlwb1twcm9wXSA9IFBsYXllcldlYlRWW3Byb3BdOwoJ CX0KCX0KfSkoKTsK ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="secure-uk.imrworldwide.com/v53.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: Ly8gTmV0cmF0aW5ncyBTaXRlQ2Vuc3VzIHY1My5qcwovLyBDT1BZUklHSFQgMjAwNyBOaWVsc2VuLy9O ZXRyYXRpbmdzCgpmdW5jdGlvbiByYW5kb20oKQp7CiAgICByYW5kb20uc2VlZCA9IChyYW5kb20uc2Vl ZCpyYW5kb20uYSArIHJhbmRvbS5jKSAlIHJhbmRvbS5tOwogICAgcmV0dXJuIHJhbmRvbS5zZWVkIC8g cmFuZG9tLm07Cn0KcmFuZG9tLm09NzE0MDI1OwpyYW5kb20uYT00MDk2OwpyYW5kb20uYz0xNTA4ODk7 CnJhbmRvbS5zZWVkID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSVyYW5kb20ubTsKCmZ1bmN0aW9uIF9y c0VIKCl7fQp3aW5kb3cub25lcnJvcj1fcnNFSDsKCnZhciBfcnNMUD1sb2NhdGlvbi5wcm90b2NvbC5p bmRleE9mKCdodHRwcycpPi0xPydodHRwczonOidodHRwOic7CnZhciBfcnNORD1fcnNMUCtfcnNETjsK dmFyIF9yc1JEPShuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7CmlmICh0eXBlb2YoX3JzQ0MpPT0idW5kZWZp bmVkIikge3ZhciBfcnNDQz0xO30KaWYgKHR5cGVvZihfcnNEVCk9PSJ1bmRlZmluZWQiKSB7dmFyIF9y c0RUPTA7fQppZiAodHlwZW9mKF9yc1NFKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzU0U9MDt9CmlmICh0 eXBlb2YoX3JzU1YpPT0idW5kZWZpbmVkIikge3ZhciBfcnNTVj0iIjt9CmlmICh0eXBlb2YoX3JzU00p PT0idW5kZWZpbmVkIikge3ZhciBfcnNTTT0wO30KaWYgKHR5cGVvZihfcnNTUyk9PSJ1bmRlZmluZWQi KSB7dmFyIF9yc1NTPTE7fQppZiAodHlwZW9mKF9yc1VUKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzVVQ9 MDt9CmlmICh0eXBlb2YoX3JzTVApPT0idW5kZWZpbmVkIikge3ZhciBfcnNNUD0xO30KaWYgKHR5cGVv ZihfcnNJUCk9PSJ1bmRlZmluZWQiKSB7dmFyIF9yc0lQPTA7fQppZiAodHlwZW9mKF9yc0NHKT09InVu ZGVmaW5lZCIpIHt2YXIgX3JzQ0c9MDt9CmlmICh0eXBlb2YoX3JzVEMpPT0idW5kZWZpbmVkIikge3Zh ciBfcnNUQz01MDA7fQppZiAodHlwZW9mKF9yc1NJKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzU0k9ZXNj YXBlKHdpbmRvdy5sb2NhdGlvbik7fQppZiAodHlwZW9mKF9yc0NMKT09InVuZGVmaW5lZCIpIHt2YXIg X3JzQ0w9MDt9CmlmICh0eXBlb2YoX3JzQ1UpPT0idW5kZWZpbmVkIikge3ZhciBfcnNDVT13aW5kb3cu bG9jYXRpb247fQppZiAodHlwZW9mKF9yc1BMZmwpPT0idW5kZWZpbmVkIikge3ZhciBfcnNQTGZsPTE7 IH0KaWYgKHR5cGVvZihfcnNQTHF0KT09InVuZGVmaW5lZCIpIHt2YXIgX3JzUExxdD0wOyB9CmlmICh0 eXBlb2YoX3JzUExyZSk9PSJ1bmRlZmluZWQiKSB7dmFyIF9yc1BMcmU9MDsgfQppZiAodHlwZW9mKF9y c1BMd20pPT0idW5kZWZpbmVkIikge3ZhciBfcnNQTHdtPTA7IH0KaWYgKHR5cGVvZihfcnNQTGpqKT09 InVuZGVmaW5lZCIpIHt2YXIgX3JzUExqaj0wOyB9CmlmICh0eXBlb2YoX3JzUExhYyk9PSJ1bmRlZmlu ZWQiKSB7dmFyIF9yc1BMYWM9MDsgfQppZiAodHlwZW9mKF9yc0MwKT09InVuZGVmaW5lZCIpIHt2YXIg X3JzQzA7fQppZiAodHlwZW9mKF9yc0MxKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzE7fQppZiAodHlw ZW9mKF9yc0MyKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzI7fQppZiAodHlwZW9mKF9yc0MzKT09InVu ZGVmaW5lZCIpIHt2YXIgX3JzQzM7fQppZiAodHlwZW9mKF9yc0M0KT09InVuZGVmaW5lZCIpIHt2YXIg X3JzQzQ7fQppZiAodHlwZW9mKF9yc0M1KT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzU7fQppZiAodHlw ZW9mKF9yc0M2KT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzY7fQppZiAodHlwZW9mKF9yc0M3KT09InVu ZGVmaW5lZCIpIHt2YXIgX3JzQzc7fQppZiAodHlwZW9mKF9yc0M4KT09InVuZGVmaW5lZCIpIHt2YXIg X3JzQzg7fQppZiAodHlwZW9mKF9yc0M5KT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzk7fQoKZnVuY3Rp b24gX3JzUGF1c2UoX3JzTWlsbGlzKSB7Cgl2YXIgX3JzRGF0ZSA9IG5ldyBEYXRlKCk7Cgl2YXIgX3Jz Q3VyckRhdGU7CgkKCWRvIHsgCgkJX3JzQ3VyckRhdGUgPSBuZXcgRGF0ZSgpOyAKCX0gd2hpbGUoX3Jz Q3VyckRhdGUgLSBfcnNEYXRlIDwgX3JzTWlsbGlzKTsKfSAKCmZ1bmN0aW9uIF9yc1JlY29yZEZhY3Rv cnkoX3JzQ2xpY2tVcmwsIF9yc05ld0NHKSB7Cgl2YXIgX3JzU3JjID0gX3JzTkQgKyAnY2dpLWJpbi9t P3JuZD0nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCV9yc1NyYyArPSAnJmNpPScgKyBfcnNDSTsK CV9yc1NyYyArPSAnJmNnPScgKyBlc2NhcGUoX3JzTmV3Q0cpOwoJX3JzU3JjICs9ICcmY2M9MCc7Cglf cnNTcmMgKz0gJyZzaT0nICsgX3JzQ0kgKyAnLWN0Z3ctJyArIGVzY2FwZShfcnNDbGlja1VybCk7Cglf cnNTcmMgKz0gJyZycD0nICsgZXNjYXBlKHdpbmRvdy5sb2NhdGlvbik7CglpZihfcnNTcmMubGVuZ3Ro ID4gMjA0OCkJewoJCV9yc1NyYyA9IF9yc1NyYy5zdWJzdHJpbmcoMCwgMjA0OCk7Cgl9CglyZXR1cm4g X3JzU3JjOwp9CgpmdW5jdGlvbiBfcnNFdmVudChfcnNDbGlja1VybCkgewoJdmFyIF9yc05ld0NHID0g X3JzRXZlbnQuYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBfcnNFdmVudC5hcmd1bWVudHNbMV0gOiBfcnND RzsKCShuZXcgSW1hZ2UoMSwxKSkuc3JjID0gX3JzUmVjb3JkRmFjdG9yeShfcnNDbGlja1VybCwgX3Jz TmV3Q0cpOwp9CgpmdW5jdGlvbiBfcnNMaW5rVHJhY2soX3JzQ2xpY2tVcmwpIHsKCiAgICAgICAgdmFy IF9yc05ld0NHID0gX3JzTGlua1RyYWNrLmFyZ3VtZW50cy5sZW5ndGggPiAxID8gX3JzTGlua1RyYWNr LmFyZ3VtZW50c1sxXSA6IF9yc0NHOwogICAgICAgIHZhciBfcnNDbGlja0ltZyA9IG5ldyBJbWFnZSgx LDEpOwogICAgICAgIF9yc0NsaWNrSW1nLnNyYyA9IF9yc1JlY29yZEZhY3RvcnkoX3JzQ2xpY2tVcmws IF9yc05ld0NHKTsKICAgICAgICBfcnNQYXVzZShfcnNUQyk7Cn0KCnZhciBfcnNDbGlja0RzdDsKZnVu Y3Rpb24gX3JzQ2xpY2soX3JzQ2xpY2tVcmwpIHsKICAgICAgICB2YXIgX3JzTmV3Q0cgPSBfcnNDbGlj ay5hcmd1bWVudHMubGVuZ3RoID4gMSA/IF9yc0NsaWNrLmFyZ3VtZW50c1sxXSA6IF9yc0NHOwogICAg ICAgIHZhciBfcnNDbGlja0ltZyA9IG5ldyBJbWFnZSgxLDEpOwogICAgICAgIF9yc0NsaWNrSW1nLnNy YyA9IF9yc1JlY29yZEZhY3RvcnkoX3JzQ2xpY2tVcmwsIF9yc05ld0NHKTsKICAgICAgICBfcnNDbGlj a0RzdCA9IF9yc0NsaWNrVXJsOwogICAgICAgIHNldFRpbWVvdXQoIndpbmRvdy5sb2NhdGlvbiA9IF9y c0NsaWNrRHN0IiwgX3JzVEMpOwp9CgpmdW5jdGlvbiBfcnNWZXJJbmZvKHN0ciwgY3QpIHsKCXZhciBw ID0gMDsKICAgICAgICB2YXIgc3AgPSAwOwoJZm9yKHZhciBpPTA7aTxjdCYmcD49MDtpKyspIHsgc3A9 cCsxOyBwID0gc3RyLmluZGV4T2YoJy4nLCBzcCk7IH0KCWlmKHA+MCkgewogICAgICAgICAgICAgICAg dmFyIHYgPSBzdHIuc3Vic3RyaW5nKHNwLCBwKS5tYXRjaCgvXGQrJC8pOwogICAgICAgICAgICAgICAg cmV0dXJuIHYgPyB2IDogMDsKCX0gZWxzZSB7CgkJcmV0dXJuIDA7Cgl9Cn0KCmZ1bmN0aW9uIF9yc1Bs dWdpbkRldGVjdCgpIHsKICAgICAgICB2YXIgX3JzUGx1Z2lucyA9IFtdOwoJdmFyIF9yc01UID0gbmF2 aWdhdG9yLm1pbWVUeXBlczsgLy8gLTEgaW5kaWNhdGVzIHVua25vd24KCWlmKF9yc01UICYmIF9yc01U Lmxlbmd0aCA+IDApIHsKCQl2YXIgazsKCQlpZihfcnNQTGZsPT0xKSB7CgkJICAgICAgICBfcnNQbHVn aW5zWydGTCddPS0xOwoJCQlrID0gJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJzsKCQkJaWYo X3JzTVRba10gJiYgX3JzTVRba10uZW5hYmxlZFBsdWdpbikgewoJCQkJX3JzUGx1Z2luc1snRkwnXSA9 IF9yc1ZlckluZm8oX3JzTVRba10uZW5hYmxlZFBsdWdpbi5kZXNjcmlwdGlvbiwgMSk7CgkJCX0KCQl9 CgkJaWYoX3JzUExxdD09MSkgewoJCQlfcnNQbHVnaW5zWydRVCddPS0xOwoJCQlrID0gJ3ZpZGVvL3F1 aWNrdGltZSc7CgkJCWlmKF9yc01UW2tdICYmIF9yc01UW2tdLmVuYWJsZWRQbHVnaW4pIHsKCQkJCV9y c1BsdWdpbnNbJ1FUJ10gPSBfcnNWZXJJbmZvKF9yc01UW2tdLmVuYWJsZWRQbHVnaW4ubmFtZSwgMSk7 CgkJCX0KCQl9CgkJaWYoX3JzUExyZT09MSkgewoJCQlfcnNQbHVnaW5zWydSRSddPS0xOwoJCQlrID0g J2F1ZGlvL3gtcG4tcmVhbGF1ZGlvLXBsdWdpbic7CgkJCWlmKF9yc01UW2tdICYmIF9yc01UW2tdLmVu YWJsZWRQbHVnaW4pIHsKCQkJCV9yc1BsdWdpbnNbJ1JFJ10gPSAwOwoJCQl9CgkJfQoJCWlmKF9yc1BM d209PTEpIHsKCQkJX3JzUGx1Z2luc1snUVQnXT0tMTsKCQkJdmFyIHJ0ID0gdHJ1ZTsKCQkJaWYod2lu ZG93LkdlY2tvQWN0aXZlWE9iamVjdCkgewoJCQkJdHJ5IHsKCQkJCQl2YXIgcCA9IG5ldyBHZWNrb0Fj dGl2ZVhPYmplY3QoIldNUGxheWVyLk9DWC43Iik7CgkJCQkJX3JzUGx1Z2luc1snV00nXSA9IF9yc1Zl ckluZm8ocC52ZXJzaW9uSW5mbywgMSk7CgkJCQkJcnQgPSBmYWxzZTsKCQkJCX0gY2F0Y2goZSkge30K CQkJfSAKCQkJaWYocnQpIHsKCQkJCWsgPSAnYXBwbGljYXRpb24veC1tcGxheWVyMic7CgkJCQlpZihf cnNNVFtrXSAmJiBfcnNNVFtrXS5lbmFibGVkUGx1Z2luKSB7CgkJCQkJX3JzUGx1Z2luc1snV00nXSA9 IDA7CgkJCQl9CgkJCX0KCQkJCgkJfQoJCWlmKF9yc1BMamo9PTEpIHsKCQkJX3JzUGx1Z2luc1snSkon XT0tMTsKCQkJayA9ICdhcHBsaWNhdGlvbi94LWphdmEtYXBwbGV0JzsKCQkJaWYoX3JzTVRba10gJiYg X3JzTVRba10uZW5hYmxlZFBsdWdpbikgewoJCQkJdmFyIHYgPSBfcnNWZXJJbmZvKF9yc01UW2tdLmVu YWJsZWRQbHVnaW4uZGVzY3JpcHRpb24sIDIpOwoJCQkJX3JzUGx1Z2luc1snSkonXSA9ICh2ID09IDAg PyB2IDogJzEuJyt2KTsKCQkJfQoJCX0KCQlpZihfcnNQTGFjPT0xKSB7CgkJCV9yc1BsdWdpbnNbJ0FD J109LTE7CgkJCWsgPSAnYXBwbGljYXRpb24vcGRmJzsKCQkJaWYoX3JzTVRba10gJiYgX3JzTVRba10u ZW5hYmxlZFBsdWdpbikgewoJCQkJX3JzUGx1Z2luc1snQUMnXSA9IDA7CgkJCX0KCQl9Cgl9IGVsc2Ug aWYod2luZG93LkFjdGl2ZVhPYmplY3QpIHsKCQl2YXIgX3JzUDsKCgkJaWYoX3JzUExmbD09MSkgewoJ CQlfcnNQbHVnaW5zWydGTCddPS0xOwoJCQlmb3IodmFyIGk9MTQ7aT4wO2ktLSkgewoJCQkJdHJ5IHsK CQkJCQlfcnNQID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1Nob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNo LicraSk7CgkJCQkJaWYoX3JzUCAhPSBudWxsKSB7IF9yc1BsdWdpbnNbJ0ZMJ10gPSBpOyBicmVhazsg fQoJCQkJfSBjYXRjaChlKSB7fQoJCQl9CgkJfQoJCWlmKF9yc1BMcXQ9PTEpIHsKCQkJX3JzUGx1Z2lu c1snUVQnXT0tMTsKCQkJdHJ5IHsKCQkJCV9yc1AgPSBuZXcgQWN0aXZlWE9iamVjdCgnUXVpY2tUaW1l Q2hlY2tPYmplY3QuUXVpY2tUaW1lQ2hlY2suMScpOwoJCQkJaWYoX3JzUCAhPSBudWxsKSB7IF9yc1Bs dWdpbnNbJ1FUJ10gPSBwYXJzZUludChfcnNQLlF1aWNrVGltZVZlcnNpb24udG9TdHJpbmcoMTYpLnN1 YnN0cmluZygwLDEpKTsgfQoJCQl9IGNhdGNoKGUpIHt9CgkJfQoJCWlmKF9yc1BMcmU9PTEpIHsKCQkJ X3JzUGx1Z2luc1snUkUnXT0tMTsKCQkJdHJ5IHsKCQkJCV9yc1AgPSBuZXcgQWN0aXZlWE9iamVjdCgn cm1vY3guUmVhbFBsYXllciBHMiBDb250cm9sLjEnKTsKCQkJCWlmKF9yc1AgIT0gbnVsbCkgeyBfcnNQ bHVnaW5zWydSRSddID0gMDsgfQoJCQl9IGNhdGNoKGUpIHt9CgkJfQoJCWlmKF9yc1BMd209PTEpIHsK CQkJX3JzUGx1Z2luc1snV00nXT0tMTsKCQkJdHJ5IHsKCQkJCV9yc1AgPSBuZXcgQWN0aXZlWE9iamVj dCgnV01QbGF5ZXIuT0NYLjcnKTsKCQkJCWlmKF9yc1AgIT0gbnVsbCkgeyBfcnNQbHVnaW5zWydXTSdd ID0gX3JzVmVySW5mbyhfcnNQLnZlcnNpb25JbmZvLCAxKTsgfQoJCQl9IGNhdGNoKGUpIHt9CgkJfQoJ CWlmKF9yc1BMamo9PTEpIHsKCQkJX3JzUGx1Z2luc1snSkonXT0tMTsKCQkJdHJ5IHsKCQkJCV9yc1Ag PSBuZXcgQWN0aXZlWE9iamVjdCgnSmF2YVBsdWdpbicpOwoJCQkJaWYoX3JzUCAhPSBudWxsKSB7IF9y c1BsdWdpbnNbJ0pKJ10gPSAwOyB9CgkJCX0gY2F0Y2goZSkge30KCQl9CgkJaWYoX3JzUExhYz09MSkg ewoJCQlfcnNQbHVnaW5zWydBQyddPS0xOwoJCQl2YXIgcnQgPSB0cnVlOwoJCQl0cnkgewoJCQkJX3Jz UCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdBY3JvUERGLlBERi4xJyk7CgkJCQlpZihfcnNQICE9IG51bGwp IHsgX3JzUGx1Z2luc1snQUMnXSA9IF9yc1ZlckluZm8oX3JzUC5HZXRWZXJzaW9ucygpLCAxKTsgcnQg PSBmYWxzZTsgfQoJCQl9IGNhdGNoKGUpIHt9CgkJCWlmKHJ0KSB7CgkJCQlmb3IodmFyIGk9NjtpPjI7 aS0tKSB7CgkJCQkJdHJ5IHsKCQkJCQkJX3JzUCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdQREYuUGRmQ3Ry bC4nK2kpOwoJCQkJCQlpZihfcnNQICE9IG51bGwpIHsgX3JzUGx1Z2luc1snQUMnXSA9IGk7IGJyZWFr OyB9CgkJCQkJfSBjYXRjaChlKSB7fQoJCQkJfQoJCQl9CgkJfQoJfQoJcmV0dXJuIF9yc1BsdWdpbnM7 Cn0KCmZ1bmN0aW9uIHJzQ2koKQp7Cgl2YXIgX3JzVUE9bmF2aWdhdG9yLmFwcE5hbWUrIiAiK25hdmln YXRvci5hcHBWZXJzaW9uOwoJdmFyIF9yc1JVQT1uYXZpZ2F0b3IudXNlckFnZW50OwoJdmFyIF9yc1dT PXdpbmRvdy5zY3JlZW47Cgl2YXIgX3JzQlY9bmF2aWdhdG9yLmFwcFZlcnNpb24uc3Vic3RyaW5nKDAs IDEpOwoJdmFyIF9yc05OPShfcnNVQS5pbmRleE9mKCdOZXRzY2FwZScpKTsKCXZhciBfcnNNQz0oX3Jz VUEuaW5kZXhPZignTWFjJykpOwoJdmFyIF9yc0lFPShfcnNVQS5pbmRleE9mKCdNU0lFJykpOwoJdmFy IF9yc09QPShfcnNSVUEuaW5kZXhPZignT3BlcmEnKSk7Cgl2YXIgX3JzSUVWPShwYXJzZUludChfcnNV QS5zdWJzdHIoX3JzSUUrNSkpKTsKCXZhciBfcnNSUD1lc2NhcGUoZG9jdW1lbnQucmVmZXJyZXIpOwoJ dmFyIF9yc1NSOwoJdmFyIF9yc0NEOwoJdmFyIF9yc0xHOwoJdmFyIF9yc0pFOwoJdmFyIF9yc0NLOwoJ dmFyIF9yc1RaOwoJdmFyIF9yc0NUOwoJdmFyIF9yc0hQOwoJdmFyIF9yc1RMOwoJdmFyIF9yc1NXOwoJ dmFyIF9yc1NIOwoJdmFyIF9yc0ZMOwoJdmFyIF9yc1FUOwoJdmFyIF9yc1JFOwoJdmFyIF9yc1dNOwoJ dmFyIF9yc0pKOwoJdmFyIF9yc0FDOwoJaWYgKF9yc01QPT0wKSB7cmV0dXJuO30KICAgICAgICBfcnNK RT0obmF2aWdhdG9yLmphdmFFbmFibGVkKCk9PXRydWUpPyJ5IjoibiI7CiAgICAgICAgaWYgKF9yc0RU PT0xKSB7CgkJX3JzVEw9ZXNjYXBlKGRvY3VtZW50LnRpdGxlKTsKCX0KCWlmKChfcnNJRT4wKXx8KChf cnNOTiE9LTEpJiYoX3JzQlYgPj01KSkpIHsKCQlfcnNDSz0obmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQ9 PXRydWUpPyJ5IjoibiI7Cgl9CglpZigoX3JzSUU+PTApJiYoX3JzSUVWPj01KSYmKF9yc01DPT0tMSkm JihfcnNPUD09LTEpKSB7CgkJZG9jdW1lbnQuYm9keS5hZGRCZWhhdmlvcigiI2RlZmF1bHQjY2xpZW50 Q2FwcyIpOwoJCV9yc0NUPWRvY3VtZW50LmJvZHkuY29ubmVjdGlvblR5cGU7CgkJZG9jdW1lbnQuYm9k eS5hZGRCZWhhdmlvcigiI2RlZmF1bHQjaG9tZVBhZ2UiKTsKCQlfcnNIUD0oZG9jdW1lbnQuYm9keS5p c0hvbWVQYWdlKGxvY2F0aW9uLmhyZWYpKT8ieSI6Im4iOwoJfQoJdmFyIF9yc0QgPSBuZXcgRGF0ZSgp OwoJX3JzVFogPSBfcnNELmdldFRpbWV6b25lT2Zmc2V0KCkvLTYwOwoJaWYoKHR5cGVvZihfcnNXUykh PSJ1bmRlZmluZWQiKSYmKF9yc1dTIT1udWxsKSkgewoJCV9yc1NXPV9yc1dTLndpZHRoOwoJCV9yc1NI PV9yc1dTLmhlaWdodDsKCQlfcnNDRD1fcnNXUy5jb2xvckRlcHRoOwoJCV9yc1NSPV9yc1NXKyd4Jytf cnNTSDsKCQlpZigoX3JzTk4hPS0xKSYmKF9yc0JWID49NCkpIHsKCQkJX3JzQ0Q9X3JzV1MucGl4ZWxE ZXB0aDsKCQl9Cgl9CglpZigoX3JzTk4hPS0xKSYmKF9yc0JWID49NCl8fChfcnNPUD49MCkpIHsKCQlf cnNMRz1uYXZpZ2F0b3IubGFuZ3VhZ2U7Cgl9CglpZigoX3JzSUUhPS0xKSYmKF9yc0JWID49NCkmJihf cnNPUD09LTEpKSB7CgkJX3JzTEc9bmF2aWdhdG9yLnVzZXJMYW5ndWFnZTsKCX0KCXZhciBfcnNQbHVn aW5zID0gX3JzUGx1Z2luRGV0ZWN0KCk7Cgl2YXIgX3JzUFI9IiI7CglfcnNQUj0nPGltZyBzcmM9Iic7 CglfcnNQUj1fcnNQUitfcnNORCsnY2dpLWJpbi9tP3JuZD0nKyhuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7 CglfcnNQUj1fcnNQUisnJmNpPScrX3JzQ0k7CglfcnNQUj1fcnNQUisnJmNnPScrZXNjYXBlKF9yc0NH KTsKCV9yc1BSPV9yc1BSKycmY2M9JytfcnNDQzsKCWlmIChfcnNTUiE9bnVsbCkge19yc1BSPV9yc1BS Kycmc3I9JytfcnNTUjt9CglpZiAoX3JzQ0QhPW51bGwpIHtfcnNQUj1fcnNQUisnJmNkPScrX3JzQ0Q7 fQoJaWYgKF9yc0xHIT1udWxsKSB7X3JzUFI9X3JzUFIrJyZsZz0nK19yc0xHO30KCWlmIChfcnNKRSE9 bnVsbCkge19yc1BSPV9yc1BSKycmamU9JytfcnNKRTt9CglpZiAoX3JzQ0shPW51bGwpIHtfcnNQUj1f cnNQUisnJmNrPScrX3JzQ0s7fQoJaWYgKF9yc1RaIT1udWxsKSB7X3JzUFI9X3JzUFIrJyZ0ej0nK19y c1RaO30KCWlmIChfcnNDVCE9bnVsbCkge19yc1BSPV9yc1BSKycmY3Q9JytfcnNDVDt9CglpZiAoX3Jz SFAhPW51bGwpIHtfcnNQUj1fcnNQUisnJmhwPScrX3JzSFA7fQoJaWYgKF9yc1RMIT1udWxsKSB7X3Jz UFI9X3JzUFIrJyZ0bD0nK19yc1RMO30KCWlmIChfcnNVVD09MSkgewoJICAgaWYgKF9yc0MwIT1udWxs KSB7X3JzUFI9X3JzUFIrJyZjMD0nK2VzY2FwZShfcnNDMCk7fQoJICAgaWYgKF9yc0MxIT1udWxsKSB7 X3JzUFI9X3JzUFIrJyZjMT0nK2VzY2FwZShfcnNDMSk7fQoJICAgaWYgKF9yc0MyIT1udWxsKSB7X3Jz UFI9X3JzUFIrJyZjMj0nK2VzY2FwZShfcnNDMik7fQoJICAgaWYgKF9yc0MzIT1udWxsKSB7X3JzUFI9 X3JzUFIrJyZjMz0nK2VzY2FwZShfcnNDMyk7fQoJICAgaWYgKF9yc0M0IT1udWxsKSB7X3JzUFI9X3Jz UFIrJyZjND0nK2VzY2FwZShfcnNDNCk7fQoJICAgaWYgKF9yc0M1IT1udWxsKSB7X3JzUFI9X3JzUFIr JyZjNT0nK2VzY2FwZShfcnNDNSk7fQoJICAgaWYgKF9yc0M2IT1udWxsKSB7X3JzUFI9X3JzUFIrJyZj Nj0nK2VzY2FwZShfcnNDNik7fQoJICAgaWYgKF9yc0M3IT1udWxsKSB7X3JzUFI9X3JzUFIrJyZjNz0n K2VzY2FwZShfcnNDNyk7fQoJICAgaWYgKF9yc0M4IT1udWxsKSB7X3JzUFI9X3JzUFIrJyZjOD0nK2Vz Y2FwZShfcnNDOCk7fQoJICAgaWYgKF9yc0M5IT1udWxsKSB7X3JzUFI9X3JzUFIrJyZjOT0nK2VzY2Fw ZShfcnNDOSk7fQoJfQoJaWYgKF9yc1BsdWdpbnNbJ0ZMJ10hPW51bGwpIHtfcnNQUj1fcnNQUisnJmZs PScrX3JzUGx1Z2luc1snRkwnXTt9CglpZiAoX3JzUGx1Z2luc1snUVQnXSE9bnVsbCkge19yc1BSPV9y c1BSKycmcXQ9JytfcnNQbHVnaW5zWydRVCddO30KCWlmIChfcnNQbHVnaW5zWydSRSddIT1udWxsKSB7 X3JzUFI9X3JzUFIrJyZyZT0nK19yc1BsdWdpbnNbJ1JFJ107fQoJaWYgKF9yc1BsdWdpbnNbJ1dNJ10h PW51bGwpIHtfcnNQUj1fcnNQUisnJndtPScrX3JzUGx1Z2luc1snV00nXTt9CglpZiAoX3JzUGx1Z2lu c1snSkonXSE9bnVsbCkge19yc1BSPV9yc1BSKycmamo9JytfcnNQbHVnaW5zWydKSiddO30KCWlmIChf cnNQbHVnaW5zWydBQyddIT1udWxsKSB7X3JzUFI9X3JzUFIrJyZhYz0nK19yc1BsdWdpbnNbJ0FDJ107 fQoJX3JzUFI9X3JzUFIrJyZzaT0nK19yc1NJOwoJX3JzUFI9X3JzUFIrJyZycD0nK19yc1JQOwoJaWYg KF9yc0lQPT0xKSB7X3JzUFI9X3JzUFIrJyIgc3R5bGU9InZpc2liaWxpdHk6aGlkZGVuO3Bvc2l0aW9u OmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7ei1pbmRleDotMSc7fQoJX3JzUFI9X3JzUFIrJyIgd2lk dGg9IjEiIGhlaWdodD0iMSIgYWx0PSIiLz4nOwoJZG9jdW1lbnQud3JpdGUoX3JzUFIpOwp9CgpmdW5j dGlvbiBfcnNDTFNlbmRJdChfcnNTcmMsIF9yc0Rlc3QsIF9yc1RhcmdldFR5cGUsIF9yc0NsaWNrTmFt ZSwgX3JzQ2xpY2tWYWx1ZSkgewoJdmFyIF9yc0NMRGF0YSA9IF9yc05EKydjZ2ktYmluL20/cm5kPScr KG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCV9yc0NMRGF0YSAgPSBfcnNDTERhdGErJyZjaT0nK19yc0NJ OwoJX3JzQ0xEYXRhICA9IF9yc0NMRGF0YSsnJmNnPScrZXNjYXBlKF9yc0NHKTsKCV9yc0NMRGF0YSAg PSBfcnNDTERhdGErJyZjYz0wJzsKCV9yc0NMRGF0YSA9IF9yc0NMRGF0YSsnJnNpPScrX3JzQ0krJy1j dHBvLScrZXNjYXBlKF9yc0Rlc3QpOwoJX3JzQ0xEYXRhID0gX3JzQ0xEYXRhKycmcnA9Jytlc2NhcGUo X3JzU3JjKTsKCV9yc0NMRGF0YSA9IF9yc0NMRGF0YSsnJnR0PScrZXNjYXBlKF9yc1RhcmdldFR5cGUp OwoJX3JzQ0xEYXRhID0gX3JzQ0xEYXRhKycmY249Jytlc2NhcGUoX3JzQ2xpY2tOYW1lKTsKCV9yc0NM RGF0YSA9IF9yc0NMRGF0YSsnJmN2PScrZXNjYXBlKF9yc0NsaWNrVmFsdWUpOwoJaWYoX3JzQ0xEYXRh Lmxlbmd0aCA+IDIwNDgpCXsKCQlfcnNDTERhdGEgPSBfcnNDTERhdGEuc3Vic3RyaW5nKDAsIDIwNDgp OwoJfQoJdmFyIF9yc1B4ID0gbmV3IEltYWdlKDEsMSk7CglfcnNQeC5zcmMgPSBfcnNDTERhdGE7Cglf cnNQYXVzZShfcnNUQyk7Cn0KZnVuY3Rpb24gX3JzQ0xTZW5kQUxpbmsoX3JzQUxpbmspIHsKCXZhciBf cnNOYW1lID0gX3JzQUxpbmsuaW5uZXJIVE1MLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignaW1nJykgPiAt MSA/ICdpbWFnZScgOiAndGV4dCc7CglfcnNDTFNlbmRJdChfcnNDVSwgX3JzQUxpbmsuaHJlZiwgX3Jz QUxpbmsudGFnTmFtZS50b0xvd2VyQ2FzZSgpLCBfcnNOYW1lLCBfcnNBTGluay5pbm5lckhUTUwpOwp9 CmZ1bmN0aW9uIF9yc0NMU2VuZEZvcm0oX3JzSW5wdXQpIHsKCWlmKF9yc0lucHV0LmZvcm0gPT0gdW5k ZWZpbmVkIHx8IF9yc0lucHV0LmZvcm0uYWN0aW9uID09IHVuZGVmaW5lZCkgewoJCXJldHVybjsKCX0K CiAgICAgICAgaWYgKF9yc0lucHV0LnR5cGUgPT0gJ2ltYWdlJykgewogICAgICAgICAgICAgICAgdmFy IF9yc1ZhbHVlID0gX3JzSW5wdXQuc3JjOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChfcnNJbnB1 dC50YWdOYW1lID09ICdCVVRUT04nKSB7CiAgICAgICAgICAgICAgICB2YXIgX3JzVmFsdWUgPSBfcnNJ bnB1dC5pbm5lckhUTUwucmVwbGFjZSgvXlxzK3xccyskL2csICcnKS5yZXBsYWNlKC9ccysvZywgJyAn KTsKICAgICAgICAgICAgICAgIGlmIChfcnNWYWx1ZSA9PSAiIikgX3JzVmFsdWUgPSBfcnNJbnB1dC52 YWx1ZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciBfcnNWYWx1ZSA9IF9y c0lucHV0LnZhbHVlOwogICAgICAgIH0KCglfcnNDTFNlbmRJdChfcnNDVSwgX3JzSW5wdXQuZm9ybS5h Y3Rpb24sIF9yc0lucHV0LmZvcm0udGFnTmFtZS50b0xvd2VyQ2FzZSgpLCBfcnNJbnB1dC50eXBlLnRv TG93ZXJDYXNlKCksIF9yc1ZhbHVlKTsKfQpmdW5jdGlvbiBfcnNDTENhdGNoSXQoZSkgewoJdmFyIF9y c0N1cnIgPSBlID8gZS50YXJnZXQgOiB3aW5kb3cuZXZlbnQuc3JjRWxlbWVudDsKCWlmICgoX3JzQ3Vy ci50YWdOYW1lID09ICdJTlBVVCcgfHwgX3JzQ3Vyci50YWdOYW1lID09ICdCVVRUT04nKQoJCSYmIChf cnNDdXJyLnR5cGUgPT0gJ2ltYWdlJyB8fCBfcnNDdXJyLnR5cGUgPT0gJ3N1Ym1pdCcgfHwgX3JzQ3Vy ci50eXBlID09ICdidXR0b24nKSkgewoJCV9yc0NMU2VuZEZvcm0oX3JzQ3Vycik7Cgl9CgllbHNlCgl7 CgkJZG8gewoJCQlpZiAoKF9yc0N1cnIudGFnTmFtZSA9PSAnQScpICYmIChfcnNDdXJyLmhyZWYubGVu Z3RoID4gMCkpIHsKCQkJCV9yc0NMU2VuZEFMaW5rKF9yc0N1cnIpOwoJCQkJYnJlYWs7CgkJCX0KCQkJ X3JzQ3VyciA9IF9yc0N1cnIucGFyZW50Tm9kZTsKCQl9IHdoaWxlIChfcnNDdXJyICE9IG51bGwgJiYg X3JzQ3Vyci50YWdOYW1lICE9ICdCT0RZJykKCX0KfQoKZnVuY3Rpb24gX3JzQ0xSZWdpc3Rlckl0KCkg ewoJaWYoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKSB7CgkJcmV0dXJuOwoJfQoJdmFyIF9yc09sZCA9 IGRvY3VtZW50LmJvZHkub25jbGljazsKCWlmKF9yc09sZCkgewoJCWRvY3VtZW50LmJvZHkub25jbGlj ayA9IGZ1bmN0aW9uIChlKSB7CgkJCV9yc0NMQ2F0Y2hJdChlKTsKCQkJX3JzT2xkKGUpOwoJCX0KCX0K CWVsc2UgewoJCWRvY3VtZW50LmJvZHkub25jbGljayA9IF9yc0NMQ2F0Y2hJdDsKCX0KfQoKLy8gbWFp bgppZigoX3JzU0UpJiYocmFuZG9tKCkgPD0gX3JzU00pKSB7CiAgICAgICAgdmFyIF9yc0lNPSc8c2Ny JysnaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJytf cnNORCsnY2dpLWJpbi9qP2NpPScrX3JzQ0krJyZzcz0nK19yc1NTKycmY2M9JytfcnNDQysnJnJkPScr X3JzUkQrJyZzZT0nK19yc1NFKycmc3Y9JytfcnNTVisnIj48XC9zY3InKydpcHQ+JzsKICAgIGRvY3Vt ZW50LndyaXRlKF9yc0lNKTsKfQplbHNlIHsKICAgIHJzQ2koKTsKfQppZihfcnNDTD09MSkgewoJX3Jz Q0xSZWdpc3Rlckl0KCk7Cn0K ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/noticias/201003/18/Media/miguelangelmunoz--80x70.gif" Content-Type: image/gif Content-Transfer-Encoding: base64 Content-ID: R0lGODlhUABGAPcAAAgGBRMNChgSDRwWEyMVDiUbFjMdFS0iHDUjHC0lJDgqJTcuMjwxLD00N0YnHUQt JEg0LEQ6OlYtI1U2K1Q8M2Y3LGo8MkU9Qk5DPVhDO2ZGO3ZIOktER1tJQ1ROUlxSTltYXWVNRGpTSmRY V3dOQXZWSnddUmRfY2NgWnxiWGxnaXVta3xzbXhzd356goE7LopIO4NUP4ZZSYRdUJpORZdPU5VYSJ5W U4lgT4hmWYxwXphiTpZrWZtxXoltZI5xaIF6fZJvYZh1Z5p6cqdbWalfYaNkTqVpWalyXrFzX6xoYqh6 Z6N+c7NoaLR7aLl5dcR8e4R9gJyCeqyBbauEdbaDbbiJdr2RfMCDa8OLd8aTfYeBhZaJhZeSj5uYmp6a oaqNg6yThaOWlbyPhbuUg7CamaGbo6iin7umj7uilaqmqauosbimpLits7u3uMiGg8qZhMibk9GcidWf kMyhjMmmlsyzn9KjjdWplNmxnMetpM22psS5udquoNe2ptS+s8G6w8PBvdvHusnEydnLx9bN1djU2tvY 5ebXyebb1+Le6O3i3PHm3+rn6+zp9O/w7/Ps5/Hu9/by7P7+/sKSfAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ACH5BAEAAJQALAAAAABQAEYAAAj/ACkJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3IhxEqVJgU4I AECypMmTKAEEUFmgQIIDAzBgSDDA5QEFGBAQECDgQIGVJoECUOFxkkeGRSe54ZCyadMAAgYcQMAAwc0M DLIywJlBQYGpCBAIELoSKAhHH48uLBrJSwGUUAMIdaqSQAIIEDBkwMCgQwYNIgLvxQthq9i5JjkYStuw aKMtY8nyLIs4qNwBOEWk8JFCc4oUOqRICayhdAYICAqMTdkgEGOklCLx+bC6ZNQBY3niFtCSgO+fAggg wCDiB5XjVKZcuXJ8yhQdJUyU0NDVZ+S5A7q8XvtRTQIAI0lC/5XaEqyCCXtDhMhA4YABBBFSSLlCpz6d Olrs0LlSxfkUHCaQcFpqBAxQlkoktbCdQkZR8ggX4pEUVQEKZBVBBiFo9sMQyAlRAgUPZOADGXjgUUcd dpSoxR1aXKGFFf39R4IGDrRkIAAGhgfEggx+lMh3QAlggAIUdNCBCSn8MB8ZZMBBBxxkUKFDDj+QiMcd efjhR4klsqjFlzHiIEJOBeS4G45b8IhQg5M0goFKcvEGgQjR6TAFFUxqYd99ddChp5Yl5iFol156CeMU PaSQgVUGDkDTAJCm2WBjHzWCgkqQSoVBCSnwIIRyZOip5x11cIlHHoIImgeXd1xZ6JdZHP+qw6JlZmqr gpPCNgkkKqyUaQIZ4NDDFFUsp4WT9bW6an2nrmpqq1d+KW2LVkyRQ1e2OgppALiqxd0kj6gwEk83hfCp Fcst56ccetJxx7utxvsuoXpeiceXV8CIRA4dHJZpAI4GwIKaa370SAsjXcaACEKgOy2L7rI4r72Ewgvv itPyNwUPITxwAKYJJxDACgQfxJYXA4DHEwLmptvuw8w6G6jEF0uMcYv99YDDognQVJaBKqTlbUJJBfIx bgEUkIEOxbr48Ip3uNsl1O/WN+3VL/a3RA8lQNDzWxGSzCalkyTSQFwAFIBBDsphvaK77b77pdTw2tvq tDBWkbMIDLT/FJ5KOUjC2NAGsSmJB3ElDUEKdzo995fsaiFHfXBQ7arFflKOb7XOzeq3bSTUIUlRZEui wm49KaDBfOlmfqyecshhMbSzV/1k1sXG2B8OD0xG0gExwFDHUYQXnhYXH+80AAIZNOyytFazC22zXSYb NRk5A2iCCaH5N4UGPwEFgQwvGDH6R0gVFYgCARwQ1QEa9EBFvsZOy+661Mdbn8Y6pBACBhHYCgMy8BfG 9QcDUBlLBpZABBokgnS6ksQHAvAb+MmPClZAF31c9CQ6yG5iXmqRtUoAwAYkoEIY0EAJVkiCEOgAgymA yfJwkAUl0GAPgiteQdg0CS8ggIICQEAJ/5ZwHHUtB1l+klbkwDSFHyiKATeBgAZwYCf+xIgHO1COECAA qRBUIQtOsIEVIIE+XU3CEBPcCQJ4UMTkTEEKP7iTG/WGtSrwAAcl2MAE9qgBEshgBjjAQRb1FqMrTCED BzhACaqAhSoYIQmLKCNsKAGJFfCGAA4QAhioIIUUGKkDMlEPYEqQAydYIQvSysIUZBCDGGyAOhTQCU8w uQEj+Gd+UxBBWGrpBCcgwQmRFFz6BAIJFvhGABAgog9CkBUFnFABBjDAAUK0AR4wclpYMIIRZLCBB1CA ATgqQF4moAEZIME5xaKCCbKyARscIQlLAKYkuUMJRPBALALIwBRSgP8BCBCQgBNATTQfsIEY2CAJqMyD tJCwAxmQMwcp4JQPiOU9YlkBgzp4AAR4gAQjKCGejJhnjyghCBw4oItCCBBHk3CEGEzAAToxwAQ2UFAj YEFZWsiZEHoghCVYgUlwSJcVGlmFvFlBBynU2w6QkAR56tB49TyCBFpigiEIAQl6M4IGJtA3qExABBOw gAx4gAUt3CunxOpPFZxQrFgRsqhFzeByDomDona0l5F86g4FIoknVCA1JgDDRauwgwkYAAIReADzTMCD EsyAB9bUwhzkhgUsyDVfQ21kBk+ZhSxg1pBT1BsSmFqFvDqEeHGAwQQKYIIoTQEJG8jABqaUgyD/UGEJ S5iCE4RwBCesaA5fquwXJVc5fLmtRcwRQQ6QwAMlOGEHVQipXglCvDwcQQQJMEEGR8sD5TDHRbHCIG7j mYUlviiDkDvu45ZDhRTgIAZGqMISdqAFMk53IMT7wxJk8AARYPCWestgL6eQQd2y1UUhzEJlUXk1L8kB DhDbj5SWOtQlHAGHIiUa+ghhhR1kwL+DpQIhifUEK4wBRk5YwhPaCgfzfqnFLZbDHGQ8hxnPmF0XlQLT FMxWRECwMR5BhBaM0EImMIcJAd6skvNmSnTBobhaeMOJrSC5OfThyn2wco0n94blCCEHX4QRFs53X4GQ DhJxaKgGhECGi2Jw/8mY5exFHZYxGDkXC3LAA5azvGU6kMHLdQXjEwQxttN6RBJ9MMIONBCEMOTrxOnK 1xue/IbwmnjSkZNDpa9g4V5mocagtnFQmaMDHCChsn8otKE/8ocjwLYEeELXTyfdpBbHAYy5RSW7Yrfl OMghC3rrbXlpHDt8kboESNACoQf3EDYJopc7CMEQ4BAGJlnhyXCIw4y14EtTVo7GoH6yghm5BKZCIb1a 8Gy6guBfRiQlwwwqCiKqgNUSBIFJtX6DjIudBXhWIcpwqLGg0u2EIwi7skvQphM6y3CHWSGlg0Bfrppd FEjUgY1LsC2UxoDp2P06CUlQwhfZik0jbGCsbP8FthWUsAMcOAEKldXsi3Twg0S8pszUTYogfGpHKUCp ScX+UsFBXnAb2OCXvTzCK0swLBQzAVEmwMEUFhxXKUkhmCXT1SLgsAQs6IDNV3jy6xTc1F4mgQfclIHR bSADEmwvB0JgwhJ+4AMd2L0EOMACsItKaiksBudr0rldNQ6rdGMhxWndbQ5m1Mc/PjYHVGJCSk0ggqin QAZfDLAW/nN1eEMkKZLwQ7+DwIQWMRyMTR3vEnRgghB0wLFBEMIPlsCE41iBCUGYjgY2wPQRF2uffvf8 59MiCUTsoVqc7ezhk/BlKkFUOimIfe1PuZwnWH+/E2DeBgjMuTstwQTBB7z/ho1CfkbYoagx7+X3A6MZ IQxhCD5FZayaoAQiGPwGFpDAFCPagwIjIbceMgU2J34mc3NGMW+ElARYYC0ioB4m4FNOYH1P0AT0RwT2 91FLMAMVsH3VogM9ECPDsgQ5AGumdRFJwSaJYEWElFLTMVPvpAT1Z3/21wRvUAd6YAdWkAM1QGX8wVDO 0QPnxDWMk1cEWDASBwl2gFWEpDMaQAETUAESUAE1cAQlBgd9YgeI8Ad6EAdOoARPQC3V0gNb01NLwAMi 8EKmNXEm+BGIMAVJQEjMJQIaYAIyAIUlwARhUAeBIAh7UAd7EAcT2ARPAAdyVS1b0wM8lSgakFsPNClF /2gyRSEJaPBLavUcHphBRFADRKAETZBtbwAFoPgEUDAGqEQ/btQDPJADPKADgXEnfBAJQiN8FFcUiVCG uaU3X+ZTXfYEnCiIoggFb/CJk1Y5ciUliIiIjbU0GQQGhPBuj1iARmEHqJhWiGJRVxAr1geKnRWMnZVu zIEuVCAEU8IDPaAD6uFTVlAGhcBDsrhqRgEJZECOelNucjQ/ngUFsQIFK+YETMBW6OI9PQB5iOg/JUBg VNAGjRAJjjA2z7hXB0gFwoIEPGUntudWzKcEOgBZ8ihrx8h6OXB3LlRUVEAIkRAJh+AGj0A6DWlmkRh6 QrAD5CgE5OgfeuMEqAh5eP8nhpZVe2/kRJwCUXRCLFSwB45Qko3QAl7QCBC0kmUECYgQBowVBFJZW+Ol W0AokzPwUcViBfAne5wRHTmgHt1VVImgkArpAgtgBifYjmvRIIuABj+AA2WYAz5QW0LQUyvWH3fZS18k eT8gBEGQA4FRAiOgQkvQH4GQkkVZCCDQABzgBfb1YxLhjILwHM2XAivgA1bVMFNGBbX3BEwgeVRCd/6T ISnEA7kVBwtplF9wAREQAR4gBjkkmRFxgpKwB6xnAjmwPT4ge38Zd8dRe2DABVblA3XZGZ+UATNQblZg CCVZkoPQmBfgmifQBuRHm5NpMGFQApW3PSbgA3T3A+Lo6Znv937iaZwpQHkcQAEQEAK4NZLPaZJb0ADT WZ8qYAiqNhEMmQhCkCHdaQKZ+ZcbYp7iSXec8RkfgBcTwFhIUAfxGQlrwAH0WZ/0CQQp+W4VQTqSUAet 55+aAZ4FSqBD8AMs8Bki8AE5MQGkhANgUJYlOQmH0AKOOZ0TOp1qQGZsGW9sKAQkMJ0ZMgLfCZ6hOaDv 1xkisBdUgXc48AODMAnx+QUccAFRSqNUap2xmKGRaAUl0AEUEAEfUHmfsSG++X4jqBccsADMQwI4kANs UJRFaZIr4JgcMKUNUKd1egFr4BGRMAkBAQA7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAA= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/portada/zona-CAB/imagenes/logo_nortetv.png" Content-Type: image/png Content-Transfer-Encoding: base64 Content-ID: iVBORw0KGgoAAAANSUhEUgAAAFIAAAASCAYAAADIdIn3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFn ZVJlYWR5ccllPAAABb9JREFUeNrsmGlsVFUUx8+brTOdTmk7ldpOYVhFQUQQZLFsigVSYhRcgLAY16B+ cAEMBBdQdgEtRiOgkbggKB+QqKgYI6gIIoulBC22tWlR6GKX6UxnOu89/9f+J3k2YGIkfDBzk1/um3fv u/e8c/7n3NdqpmlKsv33Zku6IOnIpCP/j80xdOjQi7leV1AIfgNfAuMSvksKmGhomrm0rGxvTixW7DKM McXB4OaDGRlTPbpej/ED4E6wAWy1PhzRNFnc0CKF4TZpttk+0ET6/Iu9w46L/DK9wevgG/DFJRaFmw6y uQ1jcKquO+HILLtp+nGcjsT9c0A5cxDo1vlhJ3gzPVXy2+MSjMWHxTWtu+AgNmMxrKiJ5nT9syKBn30T CIAeoA78CBJHencQZCn4BVTzOhu0gXbQTzoMVjteDm6iApQqBwIv+BVUdFLRAJDBlywFcY6p+Vezj4Kf aJdqvegMCEcqaU8uSNNM0/5GIJCbYpqrbab5SoXH408xjIUYa1bK4fNtlj3U/mkO0wyXuxxl+9zO+gci kZZGKFRLcYn7uuvFaAlJtBSmOS6ou5Aa+RxcA47QcA8HF4OV4EmwRG3G+8qg+WAv+B40MNo3WBa+iuPL 6dARvK8cvgI8C/LBu2C05blPwN0MxDbQ3zJWybRUpWMpsPN+lBlwo9CzJ3y+k4YKiKZFocqNykmdPvJi DPz7DHKHVw2z+rTLMfWsTVpdkYiIL03ytm6RyKHDUl40Weyp6WLzwD2aTYxwGJ1NNLf7r03teXl5DzGa XcAicBZcSxUqBbxKByiH7uGLFIFyMBz0BJl0XB2VUs+Xm02VK8e/zEBNB9+CBWAK2A2eAjlgAtU5BhSA F7mGl45SNt0KfOzXc243zlXrx+C4RU7TzAfdbB1ZMUyphjYP43vcDCaDteAeJSCoalyFy6WNaAkF/Lqe m7Nxg6QOGSz2rCzxDh8h3rFjJXzkqMQbGyV31UpJmzBeQge+EyMajVm1ug5spFNmgXT2qhXT0ESaPw6m qRrNezPAR1Tl1+AoWE1j67iWCk4L5z9Nlarf80ANn7kLVPF6D+cWUuEJ9cV4/SjrsLLtU1BLNauSswWM Zaadr6mS+BI4zN8qSFco1bpM0yGG7ozrcYlWV8NJMYnXN4g9kCddpk2Vhp07RcvKlOxH5knD9h0ShVNt TqdYHXmGvUFsLOCqlVnmVbPP4JwWvriwPgpra19eq5LwMFNR1eEfOK72bqUTVTvNUqBRrQ8yqGeowMTe zzE7RoFxtPUr7pGw22NJ/fO1KJ23mJl4jqoX3TD09nDYiIWa5cyqNeKfOUPCx49LzdJlMrC0RNInTZT2 uo5SXb99u+jRiJhO+9++IzVLr3GzRt4baZk3hH0VnRFnb11DrXuS1zVURpAptJefHiEGI1GjpjAgm1iT 1YFyL9N1PecoVd9B9fej4pUTxoNJzBBrMC/UAnRib9qkDpwVuq5L1+xsb07RZGd60RSxZfspD6c0nzwh 4ZIS8c+dI/7Zs6StvFya9u8XEweSes5h2djeSfoqqjsY9fuZnmrO7TT+HY65LA5MnLijmNp/0Ni3wM/g NtZjVf9eA0+w4O8Dt7BOvs0a62Op6EsFJr4y5jNQPbh+Fyq7hDZfRkdfaXkmhXY6LE5OnNwFnLswHo9L j/z8vEHFxT4P0rW0sFB0HDrunr3EV1Agtdvek+CK5eLIzJSaF9ZJtK5W7F4knKmnqIWPcZPfubAODjG6 n4GZYBmVIEyjJSzcxyzqFf7eRGf3Yf1Tzp7L07uSClAH0SmWjjngPip3PmuxsmUNa3EDP+6D3FvV8sfA M9xTBeh5Kn0zS8IAlgqTex5kcMpZppTy99PWBfwD4mNN0/pF29pqdU3L11yuUHtT0+loVZUnffToQP9d u+Knpk+v1Ftbg3av116/+8MKLN5umIYSV6uW/O9P8m/tpCOTjky2C7Y/BRgA5ubdR1jJO3YAAAAASUVO RK5CYII= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/img/rd.titu_publiroba.png" Content-Type: image/png Content-Transfer-Encoding: base64 Content-ID: iVBORw0KGgoAAAANSUhEUgAAADgAAAAHBAMAAACvhJNVAAAAA3NCSVQICAjb4U/gAAAAJ1BMVEX////3 9/fr6+vj4+PX19fKysrCwsK2traurq6ioqKampqOjo6GhoZlajFFAAAADXRSTlMA//////////////// LQRBrQAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wOeiVOIEA AAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAAAsElEQVQImTXLsQqCQBzH 8Z+HHVkNPkBDRDTdIzRIaw0+gINIGBwOjQUOPUK0tR1EzS5BNP1Rkch7qO7C1u+HL9IEMQt4GiIGC9wN ZjydwI1hAE0+Ja5E+mQErl7ZToptjVHFmjwADRKLOFi8khNIgTVWe0Yu/U9dWrwrwKDAY8zIhCZhvzOy eCs6fGdLiwRU3rFDVfYLg5deI8/knSxGrS90zbSeq0XrS6HVMHQq/cEX5dBBP2fDvxYAAAAASUVORK5C YII= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.articulo.herramientas.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIEhFUlJBTUlFTlRBUyA9IHt9OwoKSEVSUkFNSUVOVEFTLmNsaWNrX2RlbnVuY2lhID0gMDsKSEVS UkFNSUVOVEFTLmNsaWNrX2VudmlhID0gMDsKCkhFUlJBTUlFTlRBUy52b3RhckFydGljdWxvID0gZnVu Y3Rpb24obnVtKSB7CgkKLy8JdmFyIGlkID0gJCgnW25hbWU9InVybCJdJykudmFsKCk7Cgl2YXIgaWQg PSAiaHR0cDovLyIgK2xvY2F0aW9uLmhvc3RuYW1lICsgbG9jYXRpb24ucGF0aG5hbWU7CgkKCSQuZ2V0 KCcvYmFja2VuZC9IRVJSQU1JRU5UQVMudm90YXIucGhwJywgCgkJewoJCQl1cmw6IGlkLCAKCQkJcHVu dG9zOiBudW0sCgkJCXI6IE1hdGgucmFuZG9tKCkKCQl9LCAKCQlmdW5jdGlvbihkYXRhKSB7CgkJCUhF UlJBTUlFTlRBUy5nZXRFc3RyZWxsYXNQdW50b3MoaWQpOwoJCX0KCSk7Cn07CgpIRVJSQU1JRU5UQVMu Z2V0RXN0cmVsbGFzUHVudG9zID0gZnVuY3Rpb24oaWQpIHsKCQoJJC5nZXRKU09OKCcvYmFja2VuZC9I RVJSQU1JRU5UQVMuZXN0cmVsbGFzUHVudG9zLnBocCcsIAoJCXsKCQkJdXJsIDogaWQKCQkJLHI6IE1h dGgucmFuZG9tKCkKCQl9LCAKCQlmdW5jdGlvbihkYXRhKSB7CgkJCQoJCQl2YXIgZXN0cmVsbGFzID0g ZGF0YS5wdW50b3M7CgkJCQoJCQlmb3IgKHZhciBpID0gMTsgaSA8PSBlc3RyZWxsYXM7IGkrKykgeyAK CQkJCSQoJy52dCcgKyBpKS5hZGRDbGFzcygndnRkbycpOwoJCQl9CgkJCQoJCQkkKCcubnVtZXJvX3Zv dG9zJykuZWFjaChmdW5jdGlvbigpIHsKCQkJCQkkKHRoaXMpLmh0bWwoZGF0YS5udW12b3RvcyArICcg dm90b3MnKTsKCQkJCX0KCQkJKTsKCQl9CgkpOwp9OwoKSEVSUkFNSUVOVEFTLmVudmlhclJlY3RpZmlj YWNpb24gPSBmdW5jdGlvbigpIHsKCQoJdmFyIGZpbHRlciA9IC9eW0EtWmEtel1bQS1aYS16MC05Xy5d KkBbQS1aYS16MC05X10rXC5bQS1aYS16MC05Xy5dK1tBLXphLXpdJC87CgkKCWlmICgkKCdbbmFtZT0i YXV0aG9yX25hbWVfciJdJykudmFsKCkgPT0gJycpIHsKCQlhbGVydCgnUG9yIGZhdm9yLCBpbnRyb2R1 Y2UgdHUgbm9tYnJlJyk7CgkJcmV0dXJuOwoJfQoJCglpZiAoJCgnW25hbWU9ImF1dGhvcl9lbWFpbF9y Il0nKS52YWwoKSA9PSAnJykgewoJCWFsZXJ0KCdQb3IgZmF2b3IsIGludHJvZHVjZSB0dSBlbWFpbCcp OwoJCXJldHVybjsKCX0KCQoJaWYgKCFmaWx0ZXIudGVzdCgkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX3Ii XScpLnZhbCgpKSkgewogICAgICAgIGFsZXJ0KCdFbCBlbWFpbCBpbnRyb2R1Y2lkbyBubyBlcyB24Wxp ZG8nKTsKICAgICAgICByZXR1cm47CiAgICB9CgoJaWYgKCQoJ1tuYW1lPSJtZXNzYWdlX3IiXScpLnZh bCgpID09ICcnKSB7CgkJYWxlcnQoJ1BvciBmYXZvciwgaW50cm9kdWNlIGVsIHRleHRvIGRlIGxhIGRl bnVuY2lhJyk7CgkJcmV0dXJuOwoJfQoJCgkkLnBvc3QoJy9iYWNrZW5kL0hFUlJBTUlFTlRBUy5lbnZp YXJSZWN0aWZpY2FjaW9uLnBocCcsIAoJCXsKCQkJbm9tYnJlOiAkKCdbbmFtZT0iYXV0aG9yX25hbWVf ciJdJykudmFsKCksCgkJCWVtYWlsOiAkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX3IiXScpLnZhbCgpLAoJ CQlkZW51bmNpYTogJCgnW25hbWU9Im1lc3NhZ2VfciJdJykudmFsKCksCgkJCXVybDogZG9jdW1lbnQu bG9jYXRpb24uaHJlZiAKCQl9LAoJCWZ1bmN0aW9uKGRhdGEpIHsKCQkJCQoJCQkJYWxlcnQoZGF0YSk7 CgkJCQkKCQkJCSQoIi5mcm1fYXJ0X2VudmlhIikuc2xpZGVVcCgic2xvdyIpOwoJCQkJJCgiLmFydF9o ZXJyYW1pZW50YXMgYSIpLnJlbW92ZUNsYXNzKCJhY3Rpdm8iKTsKCQkJCSQoIi5mcm1fYXJ0X3JlY3Rp ZmljYSIpLnNsaWRlVXAoInNsb3ciKTsKCQkJCQoJCQkJJCgnW25hbWU9ImF1dGhvcl9uYW1lX3IiXScp LnZhbCgnJyk7CgkJCQkkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX3IiXScpLnZhbCgnJyk7CgkJCQkkKCdb bmFtZT0ibWVzc2FnZV9yIl0nKS52YWwoJycpOwoJCX0KCSk7Cn07CgpIRVJSQU1JRU5UQVMuZW52aWFy Tm90aWNpYSA9IGZ1bmN0aW9uKCkgewoJCgl2YXIgZmlsdGVyID0gL15bQS1aYS16XVtBLVphLXowLTlf XC0uXSpAW0EtWmEtejAtOV9dK1wuW0EtWmEtejAtOV8uXStbQS16YS16XSQvOwoJCglpZiAoJCgnW25h bWU9ImF1dGhvcl9uYW1lX2VyIl0nKS52YWwoKSA9PSAnJykgewoJCWFsZXJ0KCdQb3IgZmF2b3IsIGlu dHJvZHVjZSB0dSBub21icmUnKTsKCQlyZXR1cm47Cgl9CgkKCWlmICgkKCdbbmFtZT0iYXV0aG9yX2Vt YWlsX2VyIl0nKS52YWwoKSA9PSAnJykgewoJCWFsZXJ0KCdQb3IgZmF2b3IsIGludHJvZHVjZSB0dSBl bWFpbCcpOwoJCXJldHVybjsKCX0KCQoJaWYgKCFmaWx0ZXIudGVzdCgkKCdbbmFtZT0iYXV0aG9yX2Vt YWlsX2VyIl0nKS52YWwoKSkpIHsKICAgICAgICBhbGVydCgnRWwgZW1haWwgaW50cm9kdWNpZG8gbm8g ZXMgduFsaWRvJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKCWlmICgkKCdbbmFtZT0iYXV0aG9yX25h bWVfZWQiXScpLnZhbCgpID09ICcnKSB7CgkJYWxlcnQoJ1BvciBmYXZvciwgaW50cm9kdWNlIGVsIG5v bWJyZSBkZWwgZGVzdGluYXRhcmlvJyk7CgkJcmV0dXJuOwoJfQoJCglpZiAoJCgnW25hbWU9ImF1dGhv cl9lbWFpbF9lZCJdJykudmFsKCkgPT0gJycpIHsKCQlhbGVydCgnUG9yIGZhdm9yLCBpbnRyb2R1Y2Ug ZWwgZW1haWwgZGVsIGRlc3RpbmF0YXJpbycpOwoJCXJldHVybjsKCX0KCQoJaWYgKCFmaWx0ZXIudGVz dCgkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX2VkIl0nKS52YWwoKSkpIHsKICAgICAgICBhbGVydCgnRWwg ZW1haWwgaW50cm9kdWNpZG8gbm8gZXMgduFsaWRvJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoJCgkk LnBvc3QoJy9iYWNrZW5kL0hFUlJBTUlFTlRBUy5lbnZpYXJOb3RpY2lhLnBocCcsIAoJCXsKCQkJbm9t YnJlX3I6ICQoJ1tuYW1lPSJhdXRob3JfbmFtZV9lciJdJykudmFsKCksCgkJCWVtYWlsX3I6ICQoJ1tu YW1lPSJhdXRob3JfZW1haWxfZXIiXScpLnZhbCgpLAoJCQlub21icmVfZDogJCgnW25hbWU9ImF1dGhv cl9uYW1lX2VkIl0nKS52YWwoKSwKCQkJZW1haWxfZDogJCgnW25hbWU9ImF1dGhvcl9lbWFpbF9lZCJd JykudmFsKCksCgkJCW1lbnNhamU6ICQoJ1tuYW1lPSJtZXNzYWdlX2UiXScpLnZhbCgpLAoJCQl1cmw6 IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgCgkJfSwKCQlmdW5jdGlvbihkYXRhKSB7CgkJCQkKCQkJCWFs ZXJ0KGRhdGEpOwoJCQkJCgkJCQkkKCIuYXJ0X2hlcnJhbWllbnRhcyBhIikucmVtb3ZlQ2xhc3MoImFj dGl2byIpOwoJCQkJJCgiLmZybV9hcnRfZW52aWEiKS5zbGlkZVVwKCJzbG93Iik7CgkJCQkKCQkJCSQo J1tuYW1lPSJhdXRob3JfbmFtZV9lciJdJykudmFsKCcnKTsKCQkJCSQoJ1tuYW1lPSJhdXRob3JfZW1h aWxfZXIiXScpLnZhbCgnJyk7CgkJCQkkKCdbbmFtZT0iYXV0aG9yX25hbWVfZWQiXScpLnZhbCgnJyk7 CgkJCQkkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX2VkIl0nKS52YWwoJycpOwoJCQkJJCgnW25hbWU9Im1l c3NhZ2VfZSJdJykudmFsKCcnKTsKCQl9CgkpOwp9OwoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24o KSB7CgkJCi8vCQlIRVJSQU1JRU5UQVMuZ2V0RXN0cmVsbGFzUHVudG9zKCQoJ1tuYW1lPSJ1cmwiXScp LnZhbCgpKTsKCQlIRVJSQU1JRU5UQVMuZ2V0RXN0cmVsbGFzUHVudG9zKCJodHRwOi8vIiArbG9jYXRp b24uaG9zdG5hbWUgKyBsb2NhdGlvbi5wYXRobmFtZSk7CgkJCgkJJCgnI3ZvdGFjaW9uJykuZmluZCgn YScpLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJJCh0aGlzKS5jbGljayhmdW5jdGlvbigpewoJCQkJCQlI RVJSQU1JRU5UQVMudm90YXJBcnRpY3VsbyhpICsgMSk7CgkJCQkJfQoJCQkJKTsKCQkJfQoJCSk7CgkJ JCgnI3ZvdGFjaW9uMicpLmZpbmQoJ2EnKS5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCSQodGhpcykuY2xp Y2soZnVuY3Rpb24oKXsKCQkJCQkJSEVSUkFNSUVOVEFTLnZvdGFyQXJ0aWN1bG8oaSArIDEpOwoJCQkJ CX0KCQkJCSk7CgkJCX0KCQkpOwoJCQoJfQopOwo= ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/comentarios.registro.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIENPTUVOVEFSSU9TID0ge307CgpDT01FTlRBUklPUy5nZXRDb21lbnRhcmlvcyA9IGZ1bmN0aW9u KGlkLCBieSwgcGFnaW5hKSB7CgoJaWYgKHR5cGVvZiBpZCA9PSAndW5kZWZpbmVkJykgewoJCXJldHVy bjsKCX0KCQogICAgJC5nZXQoJ2h0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9iYWNrZW5kL0NPTUVO VEFSSU9TLmdldENvbWVudGFyaW9zLnBocCcsCiAgICB7CiAgICAgICAgaWQ6IGlkLAogICAgICAgIGJ5 OiBieSwKICAgICAgICByOiBNYXRoLnJhbmRvbSgpCiAgICB9LAogICAgZnVuY3Rpb24oeG1sKSB7Cgog ICAgICAgIHZhciBpID0gMDsKICAgICAgICB2YXIgaHRtbCA9ICcnOwogICAgICAgIHZhciB2YXJpYWJs ZXNfcGxhbnRpbGxhID0gQXJyYXkoKTsKICAgICAgICB2YXIgZmVjaGFfbG9hZCA9IG5ldyBEYXRlKCk7 CgogICAgICAgIHZhciBsaW1pdGUgPSAkKHhtbCkuZmluZCgnY29tbWVudCcpLmxlbmd0aDsKCiAgICAg ICAgJCh4bWwpLmZpbmQoJ2NvbW1lbnQnKS5lYWNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgdmFy ICRjb21tZW50ID0gJCh0aGlzKTsKCiAgICAgICAgICAgIHZhciBjYW1wb3MgPSAkY29tbWVudC5maW5k KCdkYXRlJykudGV4dCgpLnNwbGl0KCcgJyk7CgogICAgICAgICAgICB2YXJpYWJsZXNfcGxhbnRpbGxh W2ldID0gewoKICAgICAgICAgICAgICAgIGZlY2hhOiBjYW1wb3NbMl0gKyAnLycgKyBjYW1wb3NbMV0g KyAnLycgKyBjYW1wb3NbNV0sCiAgICAgICAgICAgICAgICBob3JhOiBjYW1wb3NbM10sCiAgICAgICAg ICAgICAgICBhdXRob3I6ICRjb21tZW50LmZpbmQoJ2F1dGhvcicpLmZpbmQoJ25hbWUnKS50ZXh0KCks CiAgICAgICAgICAgICAgICBjb250ZW50OiAkY29tbWVudC5maW5kKCdjb250ZW50JykudGV4dCgpLAog ICAgICAgICAgICAgICAgaWQ6ICRjb21tZW50LmZpbmQoJ2lkJykudGV4dCgpLAogICAgICAgICAgICAg ICAgcG9zaXRpdmVfdm90ZXM6ICRjb21tZW50LmZpbmQoJ3Bvc2l0aXZlX3ZvdGVzJykudGV4dCgpLAog ICAgICAgICAgICAgICAgbmVnYXRpdmVfdm90ZXM6ICRjb21tZW50LmZpbmQoJ25lZ2F0aXZlX3ZvdGVz JykudGV4dCgpLAogICAgICAgICAgICAgICAgbG9hZF90aW1lOiBmZWNoYV9sb2FkLmdldFRpbWUoKQoK ICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgKTsKCiAgICAg ICAgJC5hamF4KHsKICAgICAgICAgICAgdHlwZTogJ0dFVCcsCiAgICAgICAgICAgIHVybDogJy9iYWNr ZW5kL3BsYW50aWxsYXMvY29tZW50YXJpb3MuaHRtbCcsCiAgICAgICAgICAgIGFzeW5jOiBmYWxzZSwK ICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICAgICAgaHRtbCA9 IGRhdGE7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgQ09NRU5UQVJJT1MubXVlc3Ry YUNvbWVudGFyaW9zKHZhcmlhYmxlc19wbGFudGlsbGEsIGh0bWwsIHBhZ2luYSwgbGltaXRlKTsKCiAg ICAgICAgaWYgKGJ5ID09ICdkYXRlJykgewogICAgICAgICAgICAkKCcjbG9tYXNyZWNpZW50ZScpLmFk ZENsYXNzKCdhY3Rpdm8nKTsKICAgICAgICAgICAgJCgnI2xvbWFzdmFsb3JhZG8nKS5yZW1vdmVDbGFz cygnYWN0aXZvJyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkKCcjbG9tYXN2 YWxvcmFkbycpLmFkZENsYXNzKCdhY3Rpdm8nKTsKICAgICAgICAgICAgJCgnI2xvbWFzcmVjaWVudGUn KS5yZW1vdmVDbGFzcygnYWN0aXZvJyk7CiAgICAgICAgfQoKICAgIH0KICAgICk7Cn07CgpDT01FTlRB UklPUy5tdWVzdHJhQ29tZW50YXJpb3MgPSBmdW5jdGlvbih2YXJpYWJsZXNfcGxhbnRpbGxhLCBodG1s LCBwYWdpbmEsIGxpbWl0ZSkgewoKICAgIHZhciBtYXhfY29tZW50YXJpb3MgPSA1OwoKICAgIHZhciBs aW1pdGVfYiA9ICgoKChwYWdpbmEgLSAxKSAqIG1heF9jb21lbnRhcmlvcykgKyBtYXhfY29tZW50YXJp b3MpID4gbGltaXRlKSA/IGxpbWl0ZTogKCgocGFnaW5hIC0gMSkgKiBtYXhfY29tZW50YXJpb3MpICsg bWF4X2NvbWVudGFyaW9zKTsKICAgIHZhciBpbmljaW8gPSAocGFnaW5hIC0gMSkgKiBtYXhfY29tZW50 YXJpb3M7CiAgICB2YXIgcGFnaW5hcyA9IE1hdGguY2VpbChsaW1pdGUgLyBtYXhfY29tZW50YXJpb3Mp OwoKICAgIHZhciAkY29udGVuaWRvID0gJCgnPGRpdj48L2Rpdj4nKTsKCiAgICBmb3IgKGkgPSBpbmlj aW87IGkgPCBsaW1pdGVfYjsgaSsrKSB7CgogICAgICAgIHZhciB0ID0gJC50ZW1wbGF0ZShodG1sKTsK CiAgICAgICAgaWYgKGkgPT0gaW5pY2lvKSB7CiAgICAgICAgICAgICRjb250ZW5pZG8uaHRtbCh0LCB7 CiAgICAgICAgICAgICAgICBmZWNoYTogdmFyaWFibGVzX3BsYW50aWxsYVtpXS5mZWNoYSwKICAgICAg ICAgICAgICAgIGhvcmE6IHZhcmlhYmxlc19wbGFudGlsbGFbaV0uaG9yYSwKICAgICAgICAgICAgICAg IGF1dGhvcjogdmFyaWFibGVzX3BsYW50aWxsYVtpXS5hdXRob3IsCiAgICAgICAgICAgICAgICBjb250 ZW50OiB2YXJpYWJsZXNfcGxhbnRpbGxhW2ldLmNvbnRlbnQsCiAgICAgICAgICAgICAgICBpZDogdmFy aWFibGVzX3BsYW50aWxsYVtpXS5pZCwKICAgICAgICAgICAgICAgIHBvc2l0aXZlX3ZvdGVzOiB2YXJp YWJsZXNfcGxhbnRpbGxhW2ldLnBvc2l0aXZlX3ZvdGVzLAogICAgICAgICAgICAgICAgbmVnYXRpdmVf dm90ZXM6IHZhcmlhYmxlc19wbGFudGlsbGFbaV0ubmVnYXRpdmVfdm90ZXMsCiAgICAgICAgICAgICAg ICBsb2FkX3RpbWU6IHZhcmlhYmxlc19wbGFudGlsbGFbaV0ubG9hZF90aW1lCiAgICAgICAgICAgIH0K ICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRjb250ZW5p ZG8uYXBwZW5kKHQsIHsKICAgICAgICAgICAgICAgIGZlY2hhOiB2YXJpYWJsZXNfcGxhbnRpbGxhW2ld LmZlY2hhLAogICAgICAgICAgICAgICAgaG9yYTogdmFyaWFibGVzX3BsYW50aWxsYVtpXS5ob3JhLAog ICAgICAgICAgICAgICAgYXV0aG9yOiB2YXJpYWJsZXNfcGxhbnRpbGxhW2ldLmF1dGhvciwKICAgICAg ICAgICAgICAgIGNvbnRlbnQ6IHZhcmlhYmxlc19wbGFudGlsbGFbaV0uY29udGVudCwKICAgICAgICAg ICAgICAgIGlkOiB2YXJpYWJsZXNfcGxhbnRpbGxhW2ldLmlkLAogICAgICAgICAgICAgICAgcG9zaXRp dmVfdm90ZXM6IHZhcmlhYmxlc19wbGFudGlsbGFbaV0ucG9zaXRpdmVfdm90ZXMsCiAgICAgICAgICAg ICAgICBuZWdhdGl2ZV92b3RlczogdmFyaWFibGVzX3BsYW50aWxsYVtpXS5uZWdhdGl2ZV92b3RlcywK ICAgICAgICAgICAgICAgIGxvYWRfdGltZTogdmFyaWFibGVzX3BsYW50aWxsYVtpXS5sb2FkX3RpbWUK ICAgICAgICAgICAgfQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCQuY29va2ll KCdhZG1pbicpID09IDEpIHsKICAgICAgICAgICAgJGNvbnRlbmlkby5maW5kKCcjbW9kZXJhY2lvbi0n ICsgdmFyaWFibGVzX3BsYW50aWxsYVtpXS5pZCkuc2hvdygpOwogICAgICAgIH0KCiAgICB9CgogICAg d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdibG9xdWUtb3BpbmlvbmVzJykuaW5uZXJIVE1M ID0gJGNvbnRlbmlkby5odG1sKCk7CgkvKgogICAgdmFyIG9waW5pb25lcyA9ICQoJy5udW1fb3Bpbmlv bmVzJykudGV4dCgpLnNwbGl0KCcgJyk7CiAgICAKCWlmICgkKCcubnVtX29waW5pb25lcycpLnRleHQo KS5pbmRleE9mKCcgJykgIT0gLTEpIHsKCQkkKCcubnVtX29waW5pb25lcycpLnRleHQobGltaXRlICsg JyAnICsgb3BpbmlvbmVzWzFdKTsKCX0KCWVsc2UgewoJCSQoJy5udW1fb3BpbmlvbmVzJykudGV4dChs aW1pdGUgKyAnICcgKyAkKCcubnVtX29waW5pb25lcycpLnRleHQoKSk7Cgl9CgkqLwoJCgkkKCcuYXJ0 X2NoNV9jb21lbnRhcmlvcycpLnRleHQobGltaXRlKTsKCQogICAgdmFyICRsaXN0YWRvX3NlZ3VpbWll bnRvID0gJCgnLmxpc3RhZG9fc2VndWltaWVudG8nKTsKCiAgICAkbGlzdGFkb19zZWd1aW1pZW50by5m aW5kKCdzdHJvbmcnKS50ZXh0KChwYWdpbmEgPCAxMCkgPyAnMCcgKyBwYWdpbmE6IHBhZ2luYSk7CiAg ICAkbGlzdGFkb19zZWd1aW1pZW50by5odG1sKCRsaXN0YWRvX3NlZ3VpbWllbnRvLmZpbmQoJ3N0cm9u ZycpKTsKICAgICRsaXN0YWRvX3NlZ3VpbWllbnRvLmFwcGVuZCgnLycgKyAoKHBhZ2luYXMgPCAxMCkg PyAnMCcgKyBwYWdpbmFzOiBwYWdpbmFzKSk7CgogICAgdmFyICRhbnRlcmlvciA9ICQoJyNhbnRlcmlv cicpOwogICAgdmFyICRzaWd1aWVudGUgPSAkKCcjc2lndWllbnRlJyk7CgogICAgJGFudGVyaW9yLmF0 dHIoJ2hyZWYnLCAnamF2YXNjcmlwdDp2b2lkKDApJyk7CiAgICAkc2lndWllbnRlLmF0dHIoJ2hyZWYn LCAnamF2YXNjcmlwdDp2b2lkKDApJyk7CgogICAgaWYgKHBhZ2luYSA+IDEpIHsKICAgICAgICAkYW50 ZXJpb3IudW5iaW5kKCdjbGljaycpOwogICAgICAgICRhbnRlcmlvci5iaW5kKCdjbGljaycsCiAgICAg ICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIENPTUVOVEFSSU9TLm11ZXN0cmFDb21lbnRhcmlvcyh2 YXJpYWJsZXNfcGxhbnRpbGxhLCBodG1sLCAocGFnaW5hIC0gMSksIGxpbWl0ZSk7CiAgICAgICAgfQog ICAgICAgICk7CiAgICB9CgogICAgaWYgKHBhZ2luYSAhPSBwYWdpbmFzKSB7CiAgICAgICAgJHNpZ3Vp ZW50ZS51bmJpbmQoJ2NsaWNrJyk7CiAgICAgICAgJHNpZ3VpZW50ZS5iaW5kKCdjbGljaycsCiAgICAg ICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIENPTUVOVEFSSU9TLm11ZXN0cmFDb21lbnRhcmlvcyh2 YXJpYWJsZXNfcGxhbnRpbGxhLCBodG1sLCAocGFnaW5hICsgMSksIGxpbWl0ZSk7CiAgICAgICAgfQog ICAgICAgICk7CiAgICB9Cn07CgpDT01FTlRBUklPUy5tb3N0cmFyRGVudW5jaWFyID0gZnVuY3Rpb24o aWQpIHsKICAgICQoJyNmb3JtZGVudW5jaWFyLScgKyBpZCkuc2xpZGVEb3duKCJzbG93Iik7Cn07CgpD T01FTlRBUklPUy52b3RhckNvbWVudGFyaW8gPSBmdW5jdGlvbihpZCwgdGlwbykgewoKICAgICQucG9z dCgnaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2JhY2tlbmQvQ09NRU5UQVJJT1Mudm90YXJDb21l bnRhcmlvLnBocCcsCiAgICB7CiAgICAgICAgaWQ6IGlkLAogICAgICAgIHRpcG86IHRpcG8KICAgIH0s CiAgICBmdW5jdGlvbihkYXRhKSB7CgogICAgICAgIGlmIChkYXRhID09ICdvaycpIHsKICAgICAgICAg ICAgJCgnI2Zhdm9yY29udHJhLScgKyBpZCkucGFyZW50KCkuaHRtbCgnR3JhY2lhcyBwb3Igdm90YXIn KTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGFsZXJ0KGRhdGEpOwogICAgICAg IH0KICAgIH0KICAgICk7Cn07CgpDT01FTlRBUklPUy5kZW51bmNpYXJDb21lbnRhcmlvID0gZnVuY3Rp b24oaWQpIHsKCiAgICB2YXIgZmVjaGFfc3VibWl0ID0gbmV3IERhdGUoKTsKICAgIHZhciBmaWx0ZXIg PSAvXltBLVphLXpdW0EtWmEtejAtOV8uXSpAW0EtWmEtejAtOV9dK1wuW0EtWmEtejAtOV8uXStbQS16 YS16XSQvOwogICAgCiAgICAvL2V2YWwoInZhciBmb3JtdSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCdmb3JtdWxhcmlvXyIgKyBpZCArICInKSIpOwogICAgZXZhbCgndmFyIGZvcm11ID0gd2luZG93LmRv Y3VtZW50LmZvcm11bGFyaW9fJyArIGlkKTsKICAgIC8qCiAgICBpZiAoZm9ybXUubm9tYnJlLnZhbHVl ID09ICcnKSB7CiAgICAgICAgYWxlcnQoJ1BvciBmYXZvciwgaW50cm9kdXpjYSBzdSBub21icmUnKTsK ICAgICAgICBmb3JtdS5ub21icmUuZm9jdXMoKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYg KGZvcm11LmVtYWlsLnZhbHVlID09ICcnKSB7CiAgICAgICAgYWxlcnQoJ1BvciBmYXZvciwgaW50cm9k dXpjYSBzdSBlbWFpbCcpOwogICAgICAgIGZvcm11LmVtYWlsLmZvY3VzKCk7CiAgICAgICAgcmV0dXJu OwogICAgfQoKICAgIGlmICghZmlsdGVyLnRlc3QoZm9ybXUuZW1haWwudmFsdWUpKSB7CiAgICAgICAg YWxlcnQoJ0VsIGVtYWlsIGludHJvZHVjaWRvIG5vIGVzIHaHbGlkbycpOwogICAgICAgIGZvcm11LmVt YWlsLnZhbHVlLmZvY3VzKCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgKi8KICAgIGlmIChmb3Jt dS5kZW51bmNpYS52YWx1ZSA9PSAnJykgewogICAgICAgIGFsZXJ0KCdQb3IgZmF2b3IsIGludHJvZHV6 Y2Egc3UgZGVudW5jaWEnKTsKICAgICAgICBmb3JtdS5kZW51bmNpYS5mb2N1cygpOwogICAgICAgIHJl dHVybjsKICAgIH0KICAgIGZvcm11LnN1Ym1pdF90aW1lLnZhbHVlID0gZmVjaGFfc3VibWl0LmdldFRp bWUoKTsKICAgIGZvcm11LnN1Ym1pdCgpOwoKICAgIGFsZXJ0KCdHcmFjaWFzIHBvciBkZW51bmNpYXIg ZWwgY29tZW50YXJpbycpOwoKfTsKCkNPTUVOVEFSSU9TLmVudmlhckNvbWVudGFyaW8gPSBmdW5jdGlv bigpIHsKICAgIAoJdmFyIGZlY2hhX3N1Ym1pdCA9IG5ldyBEYXRlKCk7CiAgICAKCglpZiAod2luZG93 LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS52YWx1ZSA9PSAnJykgewoJCWFsZXJ0KCdQb3IgZmF2 b3IsIGludHJvZHVjZSB0dSBvcGluaZduJyk7CgkgICAgd2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8u bWVzc2FnZS5mb2N1cygpOwoJICAgIHJldHVybjsKCX0KCQoJaWYgKCF3aW5kb3cuZG9jdW1lbnQuZm9y bXVsYXJpby5hY2VwdG8uY2hlY2tlZCkgewoJICAJYWxlcnQoJ1RpZW5lcyBxdWUgYWNlcHRhciBsYXMg Y29uZGljaW9uZXMgZGUgdXNvJyk7CgkgIAlyZXR1cm47Cgl9CgkJCgl3aW5kb3cuZG9jdW1lbnQuZm9y bXVsYXJpby5zdWJtaXRfdGltZS52YWx1ZSA9IGZlY2hhX3N1Ym1pdC5nZXRUaW1lKCk7CgoJd2luZG93 LmRvY3VtZW50LmZvcm11bGFyaW8uc3VibWl0KCk7CglpZiAoJC5icm93c2VyLm1zaWUgJiYgJC5icm93 c2VyLnZlcnNpb24gPD0gNiApIHNldFRpbWVvdXQoIndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKSIsNTAw KTsKCQoJICAKfTsKCkNPTUVOVEFSSU9TLnNldE51bUNvbWVudGFyaW9zUG9ydGFkYSA9IGZ1bmN0aW9u KCkgewoKICAgIHZhciBpZCA9ICcnOwoKICAgICQoJy5udW1fY29tZW50YXJpb3MnKS5lYWNoKGZ1bmN0 aW9uKCkgewogICAgICAgIAl2YXIgY2FtcG9zID0gJCh0aGlzKS5hdHRyKCdpZCcpLnNwbGl0KCctJyk7 CgkJCWlmICh0eXBlb2YgY2FtcG9zWzJdICE9ICd1bmRlZmluZWQnKSB7CgkgICAgICAgIAlpZCA9IGlk ID8gaWQgKyAnfCcgKyBjYW1wb3NbMl0gOiBjYW1wb3NbMl07CgkJCX0KICAgIAl9CiAgICApOwoKCSQo Jy5udW0tY29tZW50YXJpb3MnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgIAl2YXIgY2FtcG9zID0g JCh0aGlzKS5hdHRyKCdpZCcpLnNwbGl0KCctJyk7CgkgICAgICAgIGlmICh0eXBlb2YgY2FtcG9zWzJd ICE9ICd1bmRlZmluZWQnKSB7CgkgICAgICAgIAlpZCA9IGlkID8gaWQgKyAnfCcgKyBjYW1wb3NbMl0g OiBjYW1wb3NbMl07CgkJCX0KICAgIAl9CiAgICApOwoKICAgIGlmIChpZCAhPSAnJykgewogICAgICAg ICQuZ2V0KCJodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvYmFja2VuZC9DT01FTlRBUklPUy5nZXRD b21lbnRhcmlvc1BvcnRhZGEucGhwIiwKICAgICAgICB7CiAgICAgICAgICAgIGlkOiBpZCwKICAgICAg ICAgICAgYnk6ICdkYXRlJwogICAgICAgIH0sCiAgICAgICAgZnVuY3Rpb24oZGF0YSkgewogICAgICAg ICAgICAKCQkJdmFyIGNhbXBvcyA9IGRhdGEuc3BsaXQoJ3wnKTsKICAgICAgICAgICAgdmFyIGxpbWl0 ZSA9IGNhbXBvcy5sZW5ndGg7CiAgICAgICAgICAgIHZhciBpID0gbGltaXRlIC0gMTsKICAgICAgICAg ICAgZG8gewoJCQkJCiAgICAgICAgICAgICAgICB2YXIgY2FtcG9zMiA9IGNhbXBvc1tpXS5zcGxpdCgn QCcpOwogICAgICAgICAgICAgICAgdmFyIG51bSA9IGNhbXBvczJbMV07CgkJCQkKICAgICAgICAgICAg ICAgIHZhciB0ZXh0byA9ICcnOwoKICAgICAgICAgICAgICAgIHN3aXRjaCAodHJ1ZSkgewogICAgICAg ICAgICAgICAgY2FzZShudW0gPT0gMCB8fCBudW0gPT0gJycpIDoKICAgICAgICAgICAgICAgICAgICB0 ZXh0byA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW0tY29tZW50YXJpb3MtJyArIGNhbXBvczJb MF0pLmlubmVySFRNTDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNh c2UgKG51bSA9PSAxKSA6CiAgICAgICAgICAgICAgICAgICAgdGV4dG8gPSAnMSBDb21lbnRhcmlvJzsK ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg ICAgICAgICAgICAgdGV4dG8gPSBudW0gKyAnICBDb21lbnRhcmlvcyc7CiAgICAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgkJCQkKCQkJCWlmIChkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgnbnVtLWNvbWVudGFyaW9zLScgKyBjYW1wb3MyWzBdKSkgewoJCQkJCWRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCdudW0tY29tZW50YXJpb3MtJyArIGNhbXBvczJbMF0pLmlubmVySFRNTCA9IHRleHRv OwoJCQkJfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICAgICAgd2hpbGUgKGkt LSk7CiAgICAgICAgfQogICAgICAgICk7CiAgICB9Cn07CgpDT01FTlRBUklPUy5kZXNhcHJvYmFyID0g ZnVuY3Rpb24oaWQpIHsKCiAgICBpZiAoY29uZmlybSgnUXVpZXJlIGRlc2Fwcm9iYXIgZXN0ZSBjb21l bmFyaW8/JykpIHsKCiAgICAgICAgJC5wb3N0KCdodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvYmFj a2VuZC9DT01FTlRBUklPUy5kZXNhcHJvYmFyLnBocCcsCiAgICAgICAgewogICAgICAgICAgICBpZDog aWQKICAgICAgICB9LAogICAgICAgIGZ1bmN0aW9uKHhtbCkgewoKICAgICAgICAgICAgdmFyIGVzdGFk byA9ICQoeG1sKS5maW5kKCdlc3RhZG8nKS50ZXh0KCk7CgogICAgICAgICAgICBpZiAoZXN0YWRvID09 ICdPSycpIHsKCiAgICAgICAgICAgICAgICAkKCcjb3Bpbmlvbi0nICsgaWQpLnJlbW92ZSgpOwoKICAg ICAgICAgICAgICAgIHZhciBvcGluaW9uZXMgPSAkKCcubnVtX29waW5pb25lcycpLnRleHQoKS5zcGxp dCgnICcpOwogICAgICAgICAgICAgICAgJCgnLm51bV9vcGluaW9uZXMnKS50ZXh0KChwYXJzZUludChv cGluaW9uZXNbMF0pIC0gMSkgKyAnICcgKyBvcGluaW9uZXNbMV0pOwogICAgICAgICAgICB9CiAgICAg ICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgYWxlcnQoJCh4bWwpLmZpbmQoJ2Rlc2MnKS50ZXh0 KCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICk7CiAgICB9Cn07CgpDT01FTlRBUklP Uy5lbGltaW5hciA9IGZ1bmN0aW9uKGlkKSB7CgogICAgaWYgKGNvbmZpcm0oJ1F1aWVyZSBlbGltaW5h ciBlc3RlIGNvbWVuYXJpbz8nKSkgewoKICAgICAgICAkLnBvc3QoJ2h0dHA6Ly93d3cubm9ydGVjYXN0 aWxsYS5lcy9iYWNrZW5kL0NPTUVOVEFSSU9TLmVsaW1pbmFyLnBocCcsCiAgICAgICAgewogICAgICAg ICAgICBpZDogaWQKICAgICAgICB9LAogICAgICAgIGZ1bmN0aW9uKHhtbCkgewoKICAgICAgICAgICAg dmFyIGVzdGFkbyA9ICQoeG1sKS5maW5kKCdlc3RhZG8nKS50ZXh0KCk7CgogICAgICAgICAgICBpZiAo ZXN0YWRvID09ICdPSycpIHsKCiAgICAgICAgICAgICAgICAkKCcjb3Bpbmlvbi0nICsgaWQpLnJlbW92 ZSgpOwoKICAgICAgICAgICAgICAgIHZhciBvcGluaW9uZXMgPSAkKCcubnVtX29waW5pb25lcycpLnRl eHQoKS5zcGxpdCgnICcpOwogICAgICAgICAgICAgICAgJCgnLm51bV9vcGluaW9uZXMnKS50ZXh0KChw YXJzZUludChvcGluaW9uZXNbMF0pIC0gMSkgKyAnICcgKyBvcGluaW9uZXNbMV0pOwogICAgICAgICAg ICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgYWxlcnQoJCh4bWwpLmZpbmQoJ2Rl c2MnKS50ZXh0KCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICk7CiAgICB9Cn07CgpD T01FTlRBUklPUy5zdHJfcmVwbGFjZSA9IGZ1bmN0aW9uKHNlYXJjaCwgcmVwbGFjZSwgc3ViamVjdCkg ewoKICAgIHZhciBmID0gc2VhcmNoLAogICAgciA9IHJlcGxhY2UsCiAgICBzID0gc3ViamVjdDsKICAg IHZhciByYSA9IHIgaW5zdGFuY2VvZiBBcnJheSwKICAgIHNhID0gcyBpbnN0YW5jZW9mIEFycmF5LAog ICAgZiA9IFtdLmNvbmNhdChmKSwKICAgIHIgPSBbXS5jb25jYXQociksCiAgICBpID0gKHMgPSBbXS5j b25jYXQocykpLmxlbmd0aDsKCiAgICB3aGlsZSAoaiA9IDAsIGktLSkgewogICAgICAgIGlmIChzW2ld KSB7CiAgICAgICAgICAgIHdoaWxlIChzW2ldID0gKHNbaV0gKyAnJykuc3BsaXQoZltqXSkuam9pbihy YSA/IHJbal0gfHwgIiI6IHJbMF0pLCArK2ogaW4gZikge307CiAgICAgICAgfQogICAgfTsKCiAgICBy ZXR1cm4gc2EgPyBzOiBzWzBdOwp9OwoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkKCWlm ICgkLmNvb2tpZSgncmVnaXN0cm8nKSAhPSAnJyAmJiAkLmNvb2tpZSgncmVnaXN0cm8nKSAhPSBudWxs KSB7CgoJCXZhciB4bWw7CgkJdmFyIHhtbHN0ciA9ICQuY29va2llKCdyZWdpc3RybycpOwoJCXhtbHN0 ciA9IENPTUVOVEFSSU9TLnN0cl9yZXBsYWNlKCcrJywgJyAnLCB4bWxzdHIpOwoKCQkvLyBQYXJjaGUg cGFyYSBJRQoJCWlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkgewoJCSAgICB2YXIgeG1sRG9jID0gbmV3 IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKTsKCQkgCXhtbERvYy5hc3luYyA9IGZhbHNl OwoJCQl4bWxEb2Mub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CgkJCQlpZiAoeG1sRG9j LnJlYWR5U3RhdGUgIT0gNCkgewoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfTsKCQkJeG1sRG9j LmxvYWRYTUwoeG1sc3RyKTsKCQkJeG1sID0geG1sRG9jOwogICAgICAgIH0KCQllbHNlIHsKCQkJeG1s ID0geG1sc3RyOwoJCX0KCQkKCQkkKCdbbmFtZT0iYXV0aG9yX25hbWUiXScpLnZhbCgkKHhtbCkuZmlu ZCgndXNlcicpLnRleHQoKSk7CgkJJCgnW25hbWU9ImF1dGhvcl9lbWFpbCJdJykudmFsKCQoeG1sKS5m aW5kKCd1c2VyX2VtYWlsJykudGV4dCgpKTsKCQkKCX0KCWVsc2UgewoJCXdpbmRvdy5kb2N1bWVudC5m b3JtdWxhcmlvLmF1dGhvcl9uYW1lLnZhbHVlID0gJyc7CgkJd2luZG93LmRvY3VtZW50LmZvcm11bGFy aW8uYXV0aG9yX2VtYWlsLnZhbHVlID0gJyc7Cgl9CgoJCglpZiAoJCgnW25hbWU9aWRfaXRlbV0nKS5s ZW5ndGgpIHsKICAgIAlDT01FTlRBUklPUy5nZXRDb21lbnRhcmlvcygkKCdbbmFtZT1pZF9pdGVtXScp LnZhbCgpLCAnZGF0ZScsIDEpOwoJfQoJCgkvL0NPTUVOVEFSSU9TLnNldE51bUNvbWVudGFyaW9zUG9y dGFkYSgpOwp9Cik7Cg== ------=_MIMEPart_1268900858_1004552910_=---- Content-disposition: attachment; filename="pagead2.googlesyndication.com/pagead/show_ads.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: KGZ1bmN0aW9uKCl7dmFyIGg9dHJ1ZSxpPW51bGwsaj1mYWxzZSxhYT0obmV3IERhdGUpLmdldFRpbWUo KSxiYT1mdW5jdGlvbihhKXt2YXIgYj0obmV3IERhdGUpLmdldFRpbWUoKS1hYTtiPSImZHRkPSIrKGI8 MUUzP2I6Ik0iKTtyZXR1cm4gYStifTt2YXIgaz10aGlzLGNhPWZ1bmN0aW9uKGEsYixjKXthPWEuc3Bs aXQoIi4iKTtjPWN8fGs7IShhWzBdaW4gYykmJmMuZXhlY1NjcmlwdCYmYy5leGVjU2NyaXB0KCJ2YXIg IithWzBdKTtmb3IodmFyIGQ7YS5sZW5ndGgmJihkPWEuc2hpZnQoKSk7KWlmKCFhLmxlbmd0aCYmYiE9 PXVuZGVmaW5lZCljW2RdPWI7ZWxzZSBjPWNbZF0/Y1tkXTooY1tkXT17fSl9LGw9ZnVuY3Rpb24oYSl7 dmFyIGI9dHlwZW9mIGE7aWYoYj09Im9iamVjdCIpaWYoYSl7aWYoYSBpbnN0YW5jZW9mIEFycmF5fHwh KGEgaW5zdGFuY2VvZiBPYmplY3QpJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk9PSJb b2JqZWN0IEFycmF5XSJ8fHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciImJnR5cGVvZiBhLnNwbGljZSE9 InVuZGVmaW5lZCImJnR5cGVvZiBhLnByb3BlcnR5SXNFbnVtZXJhYmxlIT0idW5kZWZpbmVkIiYmIWEu cHJvcGVydHlJc0VudW1lcmFibGUoInNwbGljZSIpKXJldHVybiJhcnJheSI7CmlmKCEoYSBpbnN0YW5j ZW9mIE9iamVjdCkmJihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk9PSJbb2JqZWN0IEZ1 bmN0aW9uXSJ8fHR5cGVvZiBhLmNhbGwhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgYS5wcm9wZXJ0eUlzRW51 bWVyYWJsZSE9InVuZGVmaW5lZCImJiFhLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJjYWxsIikpKXJldHVy biJmdW5jdGlvbiJ9ZWxzZSByZXR1cm4ibnVsbCI7ZWxzZSBpZihiPT0iZnVuY3Rpb24iJiZ0eXBlb2Yg YS5jYWxsPT0idW5kZWZpbmVkIilyZXR1cm4ib2JqZWN0IjtyZXR1cm4gYn0sbT1mdW5jdGlvbihhKXty ZXR1cm4gbChhKT09ImFycmF5In0sZGE9ZnVuY3Rpb24oYSl7dmFyIGI9bChhKTtyZXR1cm4gYj09ImFy cmF5Inx8Yj09Im9iamVjdCImJnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciJ9LG49ZnVuY3Rpb24oYSl7 cmV0dXJuIHR5cGVvZiBhPT0ic3RyaW5nIn0sZWE9ZnVuY3Rpb24oYSl7YT1sKGEpO3JldHVybiBhPT0i b2JqZWN0Inx8CmE9PSJhcnJheSJ8fGE9PSJmdW5jdGlvbiJ9LGZhPWZ1bmN0aW9uKGEpe3ZhciBiPWwo YSk7aWYoYj09Im9iamVjdCJ8fGI9PSJhcnJheSIpe2lmKGEuY2xvbmUpcmV0dXJuIGEuY2xvbmUuY2Fs bChhKTtiPWI9PSJhcnJheSI/W106e307Zm9yKHZhciBjIGluIGEpYltjXT1mYShhW2NdKTtyZXR1cm4g Yn1yZXR1cm4gYX0sZ2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxrO2lmKGFyZ3VtZW50cy5sZW5ndGg+ Mil7dmFyIGQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpO3JldHVybiBmdW5j dGlvbigpe3ZhciBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7QXJyYXkucHJv dG90eXBlLnVuc2hpZnQuYXBwbHkoZSxkKTtyZXR1cm4gYS5hcHBseShjLGUpfX1lbHNlIHJldHVybiBm dW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGMsYXJndW1lbnRzKX19LHA9ZnVuY3Rpb24oYSxiLGMpe2Nh KGEsYixjKX0saGE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7fQpjLnByb3RvdHlwZT1iLnByb3Rv dHlwZTthLlk9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0 b3I9YX07dmFyIHE9ZnVuY3Rpb24oYSxiKXthPXBhcnNlRmxvYXQoYSk7cmV0dXJuIGlzTmFOKGEpfHxh PjF8fGE8MD9iOmF9LGlhPWZ1bmN0aW9uKGEsYil7aWYoYT09InRydWUiKXJldHVybiBoO2lmKGE9PSJm YWxzZSIpcmV0dXJuIGo7cmV0dXJuIGJ9LGphPS9eKFtcdy1dK1wuKSooW1x3LV17Mix9KShcOlswLTld Kyk/JC8scj1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiBiO3JldHVybihhPWEubWF0Y2goamEpKT9h WzBdOmJ9O3ZhciBrYT1mdW5jdGlvbigpe3JldHVybiByKCIiLCJnb29nbGVhZHMuZy5kb3VibGVjbGlj ay5uZXQiKX0sbGE9ZnVuY3Rpb24oKXtyZXR1cm4gcigiIiwicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlv bi5jb20iKX0scz1mdW5jdGlvbigpe3JldHVybiByKCIiLCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9u LmNvbSIpfTt2YXIgdD1BcnJheS5wcm90b3R5cGUsbWE9dC5mb3JFYWNoP2Z1bmN0aW9uKGEsYixjKXt0 LmZvckVhY2guY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9YS5sZW5ndGgsZT1u KGEpP2Euc3BsaXQoIiIpOmEsZj0wO2Y8ZDtmKyspZiBpbiBlJiZiLmNhbGwoYyxlW2ZdLGYsYSl9LG5h PWZ1bmN0aW9uKCl7cmV0dXJuIHQuY29uY2F0LmFwcGx5KHQsYXJndW1lbnRzKX0sb2E9ZnVuY3Rpb24o YSl7aWYobShhKSlyZXR1cm4gbmEoYSk7ZWxzZXtmb3IodmFyIGI9W10sYz0wLGQ9YS5sZW5ndGg7Yzxk O2MrKyliW2NdPWFbY107cmV0dXJuIGJ9fTt2YXIgdT1mdW5jdGlvbihhLGIpe3RoaXMud2lkdGg9YTt0 aGlzLmhlaWdodD1ifTt1LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdSh0aGlz LndpZHRoLHRoaXMuaGVpZ2h0KX07dS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4i KCIrdGhpcy53aWR0aCsiIHggIit0aGlzLmhlaWdodCsiKSJ9O3UucHJvdG90eXBlLmNlaWw9ZnVuY3Rp b24oKXt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwo dGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTt1LnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbigpe3RoaXMu d2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVp Z2h0KTtyZXR1cm4gdGhpc307CnUucHJvdG90eXBlLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1N YXRoLnJvdW5kKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGgucm91bmQodGhpcy5oZWlnaHQpO3Jl dHVybiB0aGlzfTt1LnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbihhKXt0aGlzLndpZHRoKj1hO3RoaXMu aGVpZ2h0Kj1hO3JldHVybiB0aGlzfTt2YXIgcGE9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBh KWIuY2FsbChjLGFbZF0sZCxhKX07dmFyIHFhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0xO2I8YXJndW1l bnRzLmxlbmd0aDtiKyspe3ZhciBjPVN0cmluZyhhcmd1bWVudHNbYl0pLnJlcGxhY2UoL1wkL2csIiQk JCQiKTthPWEucmVwbGFjZSgvXCVzLyxjKX1yZXR1cm4gYX0sd2E9ZnVuY3Rpb24oYSxiKXtpZihiKXJl dHVybiBhLnJlcGxhY2UocmEsIiZhbXA7IikucmVwbGFjZShzYSwiJmx0OyIpLnJlcGxhY2UodGEsIiZn dDsiKS5yZXBsYWNlKHVhLCImcXVvdDsiKTtlbHNle2lmKCF2YS50ZXN0KGEpKXJldHVybiBhO2lmKGEu aW5kZXhPZigiJiIpIT0tMSlhPWEucmVwbGFjZShyYSwiJmFtcDsiKTtpZihhLmluZGV4T2YoIjwiKSE9 LTEpYT1hLnJlcGxhY2Uoc2EsIiZsdDsiKTtpZihhLmluZGV4T2YoIj4iKSE9LTEpYT1hLnJlcGxhY2Uo dGEsIiZndDsiKTtpZihhLmluZGV4T2YoJyInKSE9LTEpYT1hLnJlcGxhY2UodWEsIiZxdW90OyIpO3Jl dHVybiBhfX0scmE9LyYvZyxzYT0vPC9nLHRhPS8+L2csdWE9L1wiL2csCnZhPS9bJjw+XCJdLyx6YT1m dW5jdGlvbihhKXtpZihhLmluZGV4T2YoIiYiKSE9LTEpcmV0dXJuImRvY3VtZW50ImluIGsmJmEuaW5k ZXhPZigiPCIpPT0tMT94YShhKTp5YShhKTtyZXR1cm4gYX0seGE9ZnVuY3Rpb24oYSl7dmFyIGI9ay5k b2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Yi5pbm5lckhUTUw9YTtiLm5vcm1hbGl6ZSYmYi5ub3Jt YWxpemUoKTthPWIuZmlyc3RDaGlsZC5ub2RlVmFsdWU7Yi5pbm5lckhUTUw9IiI7cmV0dXJuIGF9LHlh PWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoLyYoW147XSspOy9nLGZ1bmN0aW9uKGIsYyl7c3dp dGNoKGMpe2Nhc2UgImFtcCI6cmV0dXJuIiYiO2Nhc2UgImx0IjpyZXR1cm4iPCI7Y2FzZSAiZ3QiOnJl dHVybiI+IjtjYXNlICJxdW90IjpyZXR1cm4nIic7ZGVmYXVsdDppZihjLmNoYXJBdCgwKT09IiMiKXtj PU51bWJlcigiMCIrYy5zdWJzdHIoMSkpO2lmKCFpc05hTihjKSlyZXR1cm4gU3RyaW5nLmZyb21DaGFy Q29kZShjKX1yZXR1cm4gYn19KX0sCkFhPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWIubGVuZ3RoLGQ9 MDtkPGM7ZCsrKXt2YXIgZT1jPT0xP2I6Yi5jaGFyQXQoZCk7aWYoYS5jaGFyQXQoMCk9PWUmJmEuY2hh ckF0KGEubGVuZ3RoLTEpPT1lKXJldHVybiBhLnN1YnN0cmluZygxLGEubGVuZ3RoLTEpfXJldHVybiBh fSxDYT1mdW5jdGlvbihhLGIpe3ZhciBjPTA7YT1TdHJpbmcoYSkucmVwbGFjZSgvXltcc1x4YTBdK3xb XHNceGEwXSskL2csIiIpLnNwbGl0KCIuIik7Yj1TdHJpbmcoYikucmVwbGFjZSgvXltcc1x4YTBdK3xb XHNceGEwXSskL2csIiIpLnNwbGl0KCIuIik7Zm9yKHZhciBkPU1hdGgubWF4KGEubGVuZ3RoLGIubGVu Z3RoKSxlPTA7Yz09MCYmZTxkO2UrKyl7dmFyIGY9YVtlXXx8IiIsZz1iW2VdfHwiIixvPW5ldyBSZWdF eHAoIihcXGQqKShcXEQqKSIsImciKSxBPW5ldyBSZWdFeHAoIihcXGQqKShcXEQqKSIsImciKTtkb3t2 YXIgSD1vLmV4ZWMoZil8fFsiIiwiIiwiIl0sST1BLmV4ZWMoZyl8fFsiIiwKIiIsIiJdO2lmKEhbMF0u bGVuZ3RoPT0wJiZJWzBdLmxlbmd0aD09MClicmVhaztjPUhbMV0ubGVuZ3RoPT0wPzA6cGFyc2VJbnQo SFsxXSwxMCk7dmFyIERiPUlbMV0ubGVuZ3RoPT0wPzA6cGFyc2VJbnQoSVsxXSwxMCk7Yz1CYShjLERi KXx8QmEoSFsyXS5sZW5ndGg9PTAsSVsyXS5sZW5ndGg9PTApfHxCYShIWzJdLElbMl0pfXdoaWxlKGM9 PTApfXJldHVybiBjfSxCYT1mdW5jdGlvbihhLGIpe2lmKGE8YilyZXR1cm4tMTtlbHNlIGlmKGE+Yily ZXR1cm4gMTtyZXR1cm4gMH07dmFyIHYsRGEsdyxFYSxGYSxHYSxIYSxJYSxKYSxLYT1mdW5jdGlvbigp e3JldHVybiBrLm5hdmlnYXRvcj9rLm5hdmlnYXRvci51c2VyQWdlbnQ6aX0seD1mdW5jdGlvbigpe3Jl dHVybiBrLm5hdmlnYXRvcn0sTGE9ZnVuY3Rpb24oKXtGYT1FYT13PURhPXY9ajt2YXIgYTtpZihhPUth KCkpe3ZhciBiPXgoKTt2PWEuaW5kZXhPZigiT3BlcmEiKT09MDtEYT0hdiYmYS5pbmRleE9mKCJNU0lF IikhPS0xO0VhPSh3PSF2JiZhLmluZGV4T2YoIldlYktpdCIpIT0tMSkmJmEuaW5kZXhPZigiTW9iaWxl IikhPS0xO0ZhPSF2JiYhdyYmYi5wcm9kdWN0PT0iR2Vja28ifX07TGEoKTsKdmFyIHk9dix6PURhLE1h PUZhLE5hPXcsT2E9RWEsUGE9ZnVuY3Rpb24oKXt2YXIgYT14KCk7cmV0dXJuIGEmJmEucGxhdGZvcm18 fCIifSxRYT1QYSgpLFJhPWZ1bmN0aW9uKCl7R2E9UWEuaW5kZXhPZigiTWFjIikhPS0xO0hhPVFhLmlu ZGV4T2YoIldpbiIpIT0tMTtJYT1RYS5pbmRleE9mKCJMaW51eCIpIT0tMTtKYT0hIXgoKSYmKHgoKS5h cHBWZXJzaW9ufHwiIikuaW5kZXhPZigiWDExIikhPS0xfTtSYSgpOwp2YXIgU2E9R2EsVGE9SGEsVWE9 SWEsVmE9ZnVuY3Rpb24oKXt2YXIgYT0iIixiO2lmKHkmJmsub3BlcmEpe2E9ay5vcGVyYS52ZXJzaW9u O2E9dHlwZW9mIGE9PSJmdW5jdGlvbiI/YSgpOmF9ZWxzZXtpZihNYSliPS9ydlw6KFteXCk7XSspKFwp fDspLztlbHNlIGlmKHopYj0vTVNJRVxzKyhbXlwpO10rKShcKXw7KS87ZWxzZSBpZihOYSliPS9XZWJL aXRcLyhcUyspLztpZihiKWE9KGE9Yi5leGVjKEthKCkpKT9hWzFdOiIifXJldHVybiBhfSxXYT1WYSgp LFhhPXt9LEI9ZnVuY3Rpb24oYSl7cmV0dXJuIFhhW2FdfHwoWGFbYV09Q2EoV2EsYSk+PTApfTt2YXIg WWE9ZnVuY3Rpb24oYSl7cmV0dXJuIG4oYSk/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk6YX0sWmE9 WWEsYWI9ZnVuY3Rpb24oYSxiKXtwYShiLGZ1bmN0aW9uKGMsZCl7aWYoZD09InN0eWxlIilhLnN0eWxl LmNzc1RleHQ9YztlbHNlIGlmKGQ9PSJjbGFzcyIpYS5jbGFzc05hbWU9YztlbHNlIGlmKGQ9PSJmb3Ii KWEuaHRtbEZvcj1jO2Vsc2UgaWYoZCBpbiAkYSlhLnNldEF0dHJpYnV0ZSgkYVtkXSxjKTtlbHNlIGFb ZF09Y30pfSwkYT17Y2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixjZWxsc3BhY2luZzoiY2VsbFNwYWNp bmciLGNvbHNwYW46ImNvbFNwYW4iLHJvd3NwYW46InJvd1NwYW4iLHZhbGlnbjoidkFsaWduIixoZWln aHQ6ImhlaWdodCIsd2lkdGg6IndpZHRoIix1c2VtYXA6InVzZU1hcCIsZnJhbWVib3JkZXI6ImZyYW1l Qm9yZGVyIix0eXBlOiJ0eXBlIn0sYmI9ZnVuY3Rpb24oYSl7dmFyIGI9YS5kb2N1bWVudDtpZihOYSYm IUIoIjUwMCIpJiYhT2Epe2lmKHR5cGVvZiBhLmlubmVySGVpZ2h0PT0KInVuZGVmaW5lZCIpYT13aW5k b3c7Yj1hLmlubmVySGVpZ2h0O3ZhciBjPWEuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhl aWdodDtpZihhPT1hLnRvcClpZihjPGIpYi09MTU7cmV0dXJuIG5ldyB1KGEuaW5uZXJXaWR0aCxiKX1h PWIuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiJiYoIXl8fHkmJkIoIjkuNTAiKSk/Yi5kb2N1bWVudEVs ZW1lbnQ6Yi5ib2R5O3JldHVybiBuZXcgdShhLmNsaWVudFdpZHRoLGEuY2xpZW50SGVpZ2h0KX0sZGI9 ZnVuY3Rpb24oKXtyZXR1cm4gY2IoZG9jdW1lbnQsYXJndW1lbnRzKX0sY2I9ZnVuY3Rpb24oYSxiKXt2 YXIgYz1iWzBdLGQ9YlsxXTtpZih6JiZkJiYoZC5uYW1lfHxkLnR5cGUpKXtjPVsiPCIsY107ZC5uYW1l JiZjLnB1c2goJyBuYW1lPSInLHdhKGQubmFtZSksJyInKTtpZihkLnR5cGUpe2MucHVzaCgnIHR5cGU9 Iicsd2EoZC50eXBlKSwnIicpO2Q9ZmEoZCk7ZGVsZXRlIGQudHlwZX1jLnB1c2goIj4iKTtjPWMuam9p bigiIil9dmFyIGU9CmEuY3JlYXRlRWxlbWVudChjKTtpZihkKWlmKG4oZCkpZS5jbGFzc05hbWU9ZDtl bHNlIGFiKGUsZCk7aWYoYi5sZW5ndGg+Mil7ZD1mdW5jdGlvbihnKXtpZihnKWUuYXBwZW5kQ2hpbGQo bihnKT9hLmNyZWF0ZVRleHROb2RlKGcpOmcpfTtmb3IoYz0yO2M8Yi5sZW5ndGg7YysrKXt2YXIgZj1i W2NdO2RhKGYpJiYhKGVhKGYpJiZmLm5vZGVUeXBlPjApP21hKGViKGYpP29hKGYpOmYsZCk6ZChmKX19 cmV0dXJuIGV9LGZiPWZ1bmN0aW9uKGEsYil7YS5hcHBlbmRDaGlsZChiKX0sZWI9ZnVuY3Rpb24oYSl7 aWYoYSYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilpZihlYShhKSlyZXR1cm4gdHlwZW9mIGEuaXRl bT09ImZ1bmN0aW9uInx8dHlwZW9mIGEuaXRlbT09InN0cmluZyI7ZWxzZSBpZihsKGEpPT0iZnVuY3Rp b24iKXJldHVybiB0eXBlb2YgYS5pdGVtPT0iZnVuY3Rpb24iO3JldHVybiBqfTt2YXIgZ2I9ZG9jdW1l bnQsQz13aW5kb3c7cygpO3ZhciBEPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjIGluIGEpT2JqZWN0LnBy b3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIuY2FsbChpLGFbY10sYyxhKX0saWI9ZnVu Y3Rpb24oYSxiKXtpZighYXx8IWVhKGEpKXJldHVybiBoO3JldHVybiFoYihhLGIucHJvdG90eXBlKX0s aGI9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm4gajt2YXIgYz1oO0QoYixmdW5jdGlvbihkLGUpe2lm KCFjfHwhKGUgaW4gYSl8fHR5cGVvZiBkIT10eXBlb2YgYVtlXSljPWp9KTtyZXR1cm4gY30samI9ZnVu Y3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybiBhLmxlbmd0aDtmb3IodmFyIGI9MSxj PWFyZ3VtZW50cy5sZW5ndGg7YjxjOysrYilhLnB1c2goYXJndW1lbnRzW2JdKTtyZXR1cm4gYS5sZW5n dGh9OwpmdW5jdGlvbiBFKGEpe3JldHVybiB0eXBlb2YgZW5jb2RlVVJJQ29tcG9uZW50PT0iZnVuY3Rp b24iP2VuY29kZVVSSUNvbXBvbmVudChhKTplc2NhcGUoYSl9ZnVuY3Rpb24ga2IoYSxiLGMpe3ZhciBk PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2QudHlwZT0idGV4dC9qYXZhc2NyaXB0Ijtp ZihiKWQub25sb2FkPWI7aWYoYylkLmlkPWM7ZC5zcmM9YTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50 c0J5VGFnTmFtZSgiaGVhZCIpWzBdO2lmKCFlKXJldHVybiBqO3dpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0 aW9uKCl7ZS5hcHBlbmRDaGlsZChkKX0sMCk7cmV0dXJuIGh9ZnVuY3Rpb24gbGIoYSxiKXtpZihhLmF0 dGFjaEV2ZW50KXthLmF0dGFjaEV2ZW50KCJvbmxvYWQiLGIpO3JldHVybiBofWlmKGEuYWRkRXZlbnRM aXN0ZW5lcil7YS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixiLGopO3JldHVybiBofXJldHVybiBqfQpm dW5jdGlvbiBtYihhLGIpe2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzfHwoYS5nb29nbGVfaW1hZ2VfcmVx dWVzdHM9W10pO3ZhciBjPW5ldyBJbWFnZTtjLnNyYz1iO2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzLnB1 c2goYyl9ZnVuY3Rpb24gbmIoYSl7aWYoYSBpbiBvYilyZXR1cm4gb2JbYV07cmV0dXJuIG9iW2FdPW5h dmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKGEpIT0tMX12YXIgb2I9e307CmZ1 bmN0aW9uIHBiKCl7aWYobmF2aWdhdG9yLnBsdWdpbnMmJm5hdmlnYXRvci5taW1lVHlwZXMubGVuZ3Ro KXt2YXIgYT1uYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl07aWYoYSYmYS5kZXNjcmlw dGlvbilyZXR1cm4gYS5kZXNjcmlwdGlvbi5yZXBsYWNlKC8oW2EtekEtWl18XHMpKy8sIiIpLnJlcGxh Y2UoLyhccykrci8sIi4iKX1lbHNlIGlmKG5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2Vy QWdlbnQuaW5kZXhPZigiV2luZG93cyBDRSIpPj0wKXthPTM7Zm9yKHZhciBiPTE7YjspdHJ5e2I9bmV3 IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoLiIrKGErMSkpO2ErK31j YXRjaChjKXtiPWl9cmV0dXJuIGEudG9TdHJpbmcoKX1lbHNlIGlmKG5iKCJtc2llIikmJiF3aW5kb3cu b3BlcmEpe2I9aTt0cnl7Yj1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZl Rmxhc2guNyIpfWNhdGNoKGQpe2E9CjA7dHJ5e2I9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZs YXNoLlNob2Nrd2F2ZUZsYXNoLjYiKTthPTY7Yi5BbGxvd1NjcmlwdEFjY2Vzcz0iYWx3YXlzIn1jYXRj aChlKXtpZihhPT02KXJldHVybiBhLnRvU3RyaW5nKCl9dHJ5e2I9bmV3IEFjdGl2ZVhPYmplY3QoIlNo b2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIil9Y2F0Y2goZil7fX1pZihiKXthPWIuR2V0VmFyaWFi bGUoIiR2ZXJzaW9uIikuc3BsaXQoIiAiKVsxXTtyZXR1cm4gYS5yZXBsYWNlKC8sL2csIi4iKX19cmV0 dXJuIjAifWZ1bmN0aW9uIEYoYSl7dmFyIGI9YS5nb29nbGVfYWRfZm9ybWF0O2lmKGIpcmV0dXJuIGIu aW5kZXhPZigiXzBhZHMiKT4wO3JldHVybiBhLmdvb2dsZV9hZF9vdXRwdXQhPSJodG1sIiYmYS5nb29n bGVfbnVtX3JhZGxpbmtzPjB9ZnVuY3Rpb24gRyhhKXtyZXR1cm4hIWEmJmEuaW5kZXhPZigiX3NkbyIp IT0tMX0KZnVuY3Rpb24gSihhLGIpe2lmKCEoTWF0aC5yYW5kb20oKTwxLjBFLTQpKXt2YXIgYz1NYXRo LnJhbmRvbSgpO2lmKGM8Yil7Yj1NYXRoLmZsb29yKGMvYiphLmxlbmd0aCk7cmV0dXJuIGFbYl19fXJl dHVybiIifQp2YXIgcWI9ZnVuY3Rpb24oYSl7YS51X3R6PS0obmV3IERhdGUpLmdldFRpbWV6b25lT2Zm c2V0KCk7YS51X2hpcz13aW5kb3cuaGlzdG9yeS5sZW5ndGg7YS51X2phdmE9bmF2aWdhdG9yLmphdmFF bmFibGVkKCk7aWYod2luZG93LnNjcmVlbil7YS51X2g9d2luZG93LnNjcmVlbi5oZWlnaHQ7YS51X3c9 d2luZG93LnNjcmVlbi53aWR0aDthLnVfYWg9d2luZG93LnNjcmVlbi5hdmFpbEhlaWdodDthLnVfYXc9 d2luZG93LnNjcmVlbi5hdmFpbFdpZHRoO2EudV9jZD13aW5kb3cuc2NyZWVuLmNvbG9yRGVwdGh9aWYo bmF2aWdhdG9yLnBsdWdpbnMpYS51X25wbHVnPW5hdmlnYXRvci5wbHVnaW5zLmxlbmd0aDtpZihuYXZp Z2F0b3IubWltZVR5cGVzKWEudV9ubWltZT1uYXZpZ2F0b3IubWltZVR5cGVzLmxlbmd0aH0scmI9ZnVu Y3Rpb24oYSl7dmFyIGI9QztpZihhJiZiLnRvcCE9YiliPWIudG9wO3RyeXtyZXR1cm4gYi5kb2N1bWVu dCYmIWIuZG9jdW1lbnQuYm9keT9uZXcgdSgtMSwKLTEpOmJiKGJ8fHdpbmRvdyl9Y2F0Y2goYyl7cmV0 dXJuIG5ldyB1KC0xMjI0NTkzMywtMTIyNDU5MzMpfX0sc2I9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxl bmd0aDtpZihjPT0wKXJldHVybiAwO2I9Ynx8MzA1NDE5ODk2O2Zvcih2YXIgZD0wO2Q8YztkKyspe3Zh ciBlPWEuY2hhckNvZGVBdChkKTtiXj0oYjw8NSkrKGI+PjIpK2UmNDI5NDk2NzI5NX1yZXR1cm4gYn0s dGI9ZnVuY3Rpb24oYSl7aWYoYT09YS50b3ApcmV0dXJuIDA7dmFyIGI9W107Yi5wdXNoKGRvY3VtZW50 LlVSTCk7YS5uYW1lJiZiLnB1c2goYS5uYW1lKTthPWg7YT1yYighYSk7Yi5wdXNoKGEud2lkdGgudG9T dHJpbmcoKSk7Yi5wdXNoKGEuaGVpZ2h0LnRvU3RyaW5nKCkpO2I9c2IoYi5qb2luKCIiKSk7cmV0dXJu IGI+MD9iOjQyOTQ5NjcyOTYrYn07dmFyIHViPXtnb29nbGVfYWRfY2hhbm5lbDoiY2hhbm5lbCIsZ29v Z2xlX2FkX2hvc3Q6Imhvc3QiLGdvb2dsZV9hZF9ob3N0X2NoYW5uZWw6ImhfY2giLGdvb2dsZV9hZF9o b3N0X3RpZXJfaWQ6Imh0X2lkIixnb29nbGVfYWRfc2VjdGlvbjoicmVnaW9uIixnb29nbGVfYWRfdHlw ZToiYWRfdHlwZSIsZ29vZ2xlX2FkdGVzdDoiYWR0ZXN0Iixnb29nbGVfYWxsb3dfZXhwYW5kYWJsZV9h ZHM6ImVhIixnb29nbGVfYWx0ZXJuYXRlX2FkX3VybDoiYWx0ZXJuYXRlX2FkX3VybCIsZ29vZ2xlX2Fs dGVybmF0ZV9jb2xvcjoiYWx0X2NvbG9yIixnb29nbGVfYmlkOiJiaWQiLGdvb2dsZV9jaXR5OiJnY3Mi LGdvb2dsZV9jb2xvcl9iZzoiY29sb3JfYmciLGdvb2dsZV9jb2xvcl9ib3JkZXI6ImNvbG9yX2JvcmRl ciIsZ29vZ2xlX2NvbG9yX2xpbmU6ImNvbG9yX2xpbmUiLGdvb2dsZV9jb2xvcl9saW5rOiJjb2xvcl9s aW5rIixnb29nbGVfY29sb3JfdGV4dDoiY29sb3JfdGV4dCIsZ29vZ2xlX2NvbG9yX3VybDoiY29sb3Jf dXJsIiwKZ29vZ2xlX2NvbnRlbnRzOiJjb250ZW50cyIsZ29vZ2xlX2NvdW50cnk6ImdsIixnb29nbGVf Y3BtOiJjcG0iLGdvb2dsZV9jdXN0X2FnZToiY3VzdF9hZ2UiLGdvb2dsZV9jdXN0X2NoOiJjdXN0X2No Iixnb29nbGVfY3VzdF9nZW5kZXI6ImN1c3RfZ2VuZGVyIixnb29nbGVfY3VzdF9pZDoiY3VzdF9pZCIs Z29vZ2xlX2N1c3RfaW50ZXJlc3RzOiJjdXN0X2ludGVyZXN0cyIsZ29vZ2xlX2N1c3Rfam9iOiJjdXN0 X2pvYiIsZ29vZ2xlX2N1c3RfbDoiY3VzdF9sIixnb29nbGVfY3VzdF9saDoiY3VzdF9saCIsZ29vZ2xl X2N1c3RfdV91cmw6ImN1c3RfdV91cmwiLGdvb2dsZV9kaXNhYmxlX3ZpZGVvX2F1dG9wbGF5OiJkaXNh YmxlX3ZpZGVvX2F1dG9wbGF5Iixnb29nbGVfZWQ6ImVkIixnb29nbGVfZW5jb2Rpbmc6Im9lIixnb29n bGVfZmVlZGJhY2s6ImZlZWRiYWNrX2xpbmsiLGdvb2dsZV9mbGFzaF92ZXJzaW9uOiJmbGFzaCIsZ29v Z2xlX2ZvbnRfZmFjZToiZiIsZ29vZ2xlX2ZvbnRfc2l6ZToiZnMiLApnb29nbGVfaGludHM6ImhpbnRz Iixnb29nbGVfa3c6Imt3Iixnb29nbGVfa3dfdHlwZToia3dfdHlwZSIsZ29vZ2xlX2xhbmd1YWdlOiJo bCIsZ29vZ2xlX3BhZ2VfdXJsOiJ1cmwiLGdvb2dsZV9yZWdpb246ImdyIixnb29nbGVfcmV1c2VfY29s b3JzOiJyZXVzZV9jb2xvcnMiLGdvb2dsZV9zYWZlOiJhZHNhZmUiLGdvb2dsZV90YWdfaW5mbzoiZ3V0 Iixnb29nbGVfdGFyZ2V0aW5nOiJ0YXJnZXRpbmciLGdvb2dsZV91aV9mZWF0dXJlczoidWkiLGdvb2ds ZV91aV92ZXJzaW9uOiJ1aXYiLGdvb2dsZV92aWRlb19kb2NfaWQ6InZpZGVvX2RvY19pZCIsZ29vZ2xl X3ZpZGVvX3Byb2R1Y3RfdHlwZToidmlkZW9fcHJvZHVjdF90eXBlIn0sdmI9e2dvb2dsZV9hZF9jbGll bnQ6ImNsaWVudCIsZ29vZ2xlX2FkX2Zvcm1hdDoiZm9ybWF0Iixnb29nbGVfYWRfb3V0cHV0OiJvdXRw dXQiLGdvb2dsZV9hZF9jYWxsYmFjazoiY2FsbGJhY2siLGdvb2dsZV9hZF9oZWlnaHQ6ImgiLGdvb2ds ZV9hZF9vdmVycmlkZToiZ29vZ2xlX2FkX292ZXJyaWRlIiwKZ29vZ2xlX2FkX3Nsb3Q6InNsb3RuYW1l Iixnb29nbGVfYWRfd2lkdGg6InciLGdvb2dsZV9jdHJfdGhyZXNob2xkOiJjdHJfdCIsZ29vZ2xlX2lt YWdlX3NpemU6ImltYWdlX3NpemUiLGdvb2dsZV9sYXN0X21vZGlmaWVkX3RpbWU6ImxtdCIsZ29vZ2xl X21heF9udW1fYWRzOiJudW1fYWRzIixnb29nbGVfbWF4X3JhZGxpbmtfbGVuOiJtYXhfcmFkbGlua19s ZW4iLGdvb2dsZV9udW1fcmFkbGlua3M6Im51bV9yYWRsaW5rcyIsZ29vZ2xlX251bV9yYWRsaW5rc19w ZXJfdW5pdDoibnVtX3JhZGxpbmtzX3Blcl91bml0Iixnb29nbGVfb25seV9hZHNfd2l0aF92aWRlbzoi b25seV9hZHNfd2l0aF92aWRlbyIsZ29vZ2xlX3JsX2Rlc3RfdXJsOiJybF9kZXN0X3VybCIsZ29vZ2xl X3JsX2ZpbHRlcmluZzoicmxfZmlsdGVyaW5nIixnb29nbGVfcmxfbW9kZToicmxfbW9kZSIsZ29vZ2xl X3J0OiJydCIsZ29vZ2xlX3NraXA6InNraXAifSx3Yj17Z29vZ2xlX29ubHlfcHl2X2FkczoicHl2IiwK Z29vZ2xlX3dpdGhfcHl2X2Fkczoid2l0aHB5diJ9O2Z1bmN0aW9uIHhiKGEsYil7dHJ5e3JldHVybiBh LnRvcC5kb2N1bWVudC5VUkw9PWIuVVJMfWNhdGNoKGMpe31yZXR1cm4gan1mdW5jdGlvbiB5YihhLGIs YyxkKXtjPWN8fGEuZ29vZ2xlX2FkX3dpZHRoO2Q9ZHx8YS5nb29nbGVfYWRfaGVpZ2h0O2lmKHhiKGEs YikpcmV0dXJuIGo7dmFyIGU9Yi5kb2N1bWVudEVsZW1lbnQ7aWYoYyYmZCl7dmFyIGY9MSxnPTE7aWYo YS5pbm5lckhlaWdodCl7Zj1hLmlubmVyV2lkdGg7Zz1hLmlubmVySGVpZ2h0fWVsc2UgaWYoZSYmZS5j bGllbnRIZWlnaHQpe2Y9ZS5jbGllbnRXaWR0aDtnPWUuY2xpZW50SGVpZ2h0fWVsc2UgaWYoYi5ib2R5 KXtmPWIuYm9keS5jbGllbnRXaWR0aDtnPWIuYm9keS5jbGllbnRIZWlnaHR9aWYoZz4yKmR8fGY+Mipj KXJldHVybiBqfXJldHVybiBofWZ1bmN0aW9uIHpiKGEsYil7RChiLGZ1bmN0aW9uKGMsZCl7YVsiZ29v Z2xlXyIrZF09Y30pfQpmdW5jdGlvbiBBYihhLGIpe2lmKCFiKXJldHVybiBhLlVSTDtyZXR1cm4gYS5y ZWZlcnJlcn1mdW5jdGlvbiBCYihhLGIpe2lmKCFiJiZhLmdvb2dsZV9yZWZlcnJlcl91cmw9PWkpcmV0 dXJuIjAiO2Vsc2UgaWYoYiYmYS5nb29nbGVfcmVmZXJyZXJfdXJsPT1pKXJldHVybiIxIjtlbHNlIGlm KCFiJiZhLmdvb2dsZV9yZWZlcnJlcl91cmwhPWkpcmV0dXJuIjIiO2Vsc2UgaWYoYiYmYS5nb29nbGVf cmVmZXJyZXJfdXJsIT1pKXJldHVybiIzIjtyZXR1cm4iNCJ9ZnVuY3Rpb24gQ2IoYSxiLGMsZCl7YS5w YWdlX3VybD1BYihjLGQpO2EucGFnZV9sb2NhdGlvbj1pfWZ1bmN0aW9uIEViKGEsYixjLGQpe2EucGFn ZV91cmw9Yi5nb29nbGVfcGFnZV91cmw7YS5wYWdlX2xvY2F0aW9uPUFiKGMsZCl8fCJFTVBUWSJ9CmZ1 bmN0aW9uIEZiKGEsYil7dmFyIGM9e30sZD15YihhLGIsYS5nb29nbGVfYWRfd2lkdGgsYS5nb29nbGVf YWRfaGVpZ2h0KTtjLmlmcmFtaW5nPUJiKGEsZCk7YS5nb29nbGVfcGFnZV91cmw/RWIoYyxhLGIsZCk6 Q2IoYyxhLGIsZCk7Yy5sYXN0X21vZGlmaWVkX3RpbWU9Yi5VUkw9PWMucGFnZV91cmw/RGF0ZS5wYXJz ZShiLmxhc3RNb2RpZmllZCkvMUUzOmk7Yy5yZWZlcnJlcl91cmw9ZD9hLmdvb2dsZV9yZWZlcnJlcl91 cmw6YS5nb29nbGVfcGFnZV91cmwmJmEuZ29vZ2xlX3JlZmVycmVyX3VybD9hLmdvb2dsZV9yZWZlcnJl cl91cmw6Yi5yZWZlcnJlcjtyZXR1cm4gY31mdW5jdGlvbiBHYihhKXt2YXIgYj17fSxjPWEuVVJMLnN1 YnN0cmluZyhhLlVSTC5sYXN0SW5kZXhPZigiaHR0cCIpKTtiLmlmcmFtaW5nPWk7Yi5wYWdlX3VybD1j O2IucGFnZV9sb2NhdGlvbj1hLlVSTDtiLmxhc3RfbW9kaWZpZWRfdGltZT1pO2IucmVmZXJyZXJfdXJs PWM7cmV0dXJuIGJ9CmZ1bmN0aW9uIEhiKGEsYil7Yj1JYihhLGIpO3piKGEsYil9ZnVuY3Rpb24gSWIo YSxiKXtyZXR1cm4gYT1hLmdvb2dsZV9wYWdlX3VybD09aSYmSmJbYi5kb21haW5dP0diKGIpOkZiKGEs Yil9dmFyIEpiPXt9O0piWyJhZC55aWVsZG1hbmFnZXIuY29tIl09aDt2YXIgS2I9cSgiMC4wMDAxIiww KSxMYj1xKCIxIiwwKSxNYj1xKCIwLjAxIiwwKSxOYj1xKCIwLjAxIiwwKSxPYj1xKCIwLjAwOCIsMCks UGI9cSgiMC4wMSIsMCksUWI9cSgiMCIsMCk7dmFyIFJiPWlhKCJmYWxzZSIsaiksU2I9aWEoImZhbHNl IixqKSxUYj1pYSgiZmFsc2UiLGopO3ZhciBVYj1mdW5jdGlvbihhLGIsYyl7Yj1nYShiLGssYSk7YT13 aW5kb3cub25lcnJvcjt3aW5kb3cub25lcnJvcj1iO3RyeXtjKCl9Y2F0Y2goZCl7Yz1kLnRvU3RyaW5n KCk7dmFyIGU9IiI7aWYoZC5maWxlTmFtZSllPWQuZmlsZU5hbWU7dmFyIGY9LTE7aWYoZC5saW5lTnVt YmVyKWY9ZC5saW5lTnVtYmVyO2I9YihjLGUsZik7aWYoIWIpdGhyb3cgZDt9d2luZG93Lm9uZXJyb3I9 YX07cCgiZ29vZ2xlX3Byb3RlY3RBbmRSdW4iLFViKTsKdmFyIFdiPWZ1bmN0aW9uKGEsYixjLGQpe2lm KE1hdGgucmFuZG9tKCk8MC4wMSl7dmFyIGU9Z2I7YT1bImh0dHA6Ly8iLGxhKCksIi9wYWdlYWQvZ2Vu XzIwNCIsIj9pZD1qc2Vycm9yIiwiJmpzY2I9IixSYj8xOjAsIiZqc2NkPSIsU2I/MTowLCImY29udGV4 dD0iLEUoYSksIiZtc2c9IixFKGIpLCImZmlsZT0iLEUoYyksIiZsaW5lPSIsRShkLnRvU3RyaW5nKCkp LCImdXJsPSIsRShlLlVSTC5zdWJzdHJpbmcoMCw1MTIpKSwiJnJlZj0iLEUoZS5yZWZlcnJlci5zdWJz dHJpbmcoMCw1MTIpKV07YS5wdXNoKFZiKCkpO21iKEMsYS5qb2luKCIiKSl9cmV0dXJuIVRifTtwKCJn b29nbGVfaGFuZGxlRXJyb3IiLFdiKTsKdmFyIFliPWZ1bmN0aW9uKGEpe1hifD1hfSxYYj0wLFZiPWZ1 bmN0aW9uKCl7dmFyIGE9WyImY2xpZW50PSIsRShDLmdvb2dsZV9hZF9jbGllbnQpLCImZm9ybWF0PSIs RShDLmdvb2dsZV9hZF9mb3JtYXQpLCImc2xvdG5hbWU9IixFKEMuZ29vZ2xlX2FkX3Nsb3QpLCImb3V0 cHV0PSIsRShDLmdvb2dsZV9hZF9vdXRwdXQpLCImYWRfdHlwZT0iLEUoQy5nb29nbGVfYWRfdHlwZSld O3JldHVybiBhLmpvaW4oIiIpfTt2YXIgWmI9IiIsYmM9ZnVuY3Rpb24oKXtpZih3aW5kb3cuZ29vZ2xl X2FkX2ZyYW1lYm9yZGVyPT1pKXdpbmRvdy5nb29nbGVfYWRfZnJhbWVib3JkZXI9MDtpZih3aW5kb3cu Z29vZ2xlX2FkX291dHB1dD09aSl3aW5kb3cuZ29vZ2xlX2FkX291dHB1dD0iaHRtbCI7aWYoRyh3aW5k b3cuZ29vZ2xlX2FkX2Zvcm1hdCkpe3ZhciBhPXdpbmRvdy5nb29nbGVfYWRfZm9ybWF0Lm1hdGNoKC9e KFxkKyl4KFxkKylfLiovKTtpZihhKXt3aW5kb3cuZ29vZ2xlX2FkX3dpZHRoPXBhcnNlSW50KGFbMV0s MTApO3dpbmRvdy5nb29nbGVfYWRfaGVpZ2h0PXBhcnNlSW50KGFbMl0sMTApO3dpbmRvdy5nb29nbGVf YWRfb3V0cHV0PSJodG1sIn19d2luZG93Lmdvb2dsZV9hZF9mb3JtYXQ9JGIod2luZG93Lmdvb2dsZV9h ZF9mb3JtYXQsd2luZG93Lmdvb2dsZV9hZF9vdXRwdXQsd2luZG93Lmdvb2dsZV9hZF93aWR0aCx3aW5k b3cuZ29vZ2xlX2FkX2hlaWdodCx3aW5kb3cuZ29vZ2xlX2FkX3Nsb3QsCiEhd2luZG93Lmdvb2dsZV9v dmVycmlkZV9mb3JtYXQpO1piPXdpbmRvdy5nb29nbGVfYWRfY2xpZW50fHwiIjt3aW5kb3cuZ29vZ2xl X2FkX2NsaWVudD1hYyh3aW5kb3cuZ29vZ2xlX2FkX2Zvcm1hdCx3aW5kb3cuZ29vZ2xlX2FkX2NsaWVu dCk7SGIod2luZG93LGRvY3VtZW50KTtpZih3aW5kb3cuZ29vZ2xlX2ZsYXNoX3ZlcnNpb249PWkpd2lu ZG93Lmdvb2dsZV9mbGFzaF92ZXJzaW9uPXBiKCk7d2luZG93Lmdvb2dsZV9hZF9zZWN0aW9uPXdpbmRv dy5nb29nbGVfYWRfc2VjdGlvbnx8d2luZG93Lmdvb2dsZV9hZF9yZWdpb258fCIiO3dpbmRvdy5nb29n bGVfY291bnRyeT13aW5kb3cuZ29vZ2xlX2NvdW50cnl8fHdpbmRvdy5nb29nbGVfZ2x8fCIiO2E9KG5l dyBEYXRlKS5nZXRUaW1lKCk7aWYobSh3aW5kb3cuZ29vZ2xlX2NvbG9yX2JnKSl3aW5kb3cuZ29vZ2xl X2NvbG9yX2JnPUsod2luZG93Lmdvb2dsZV9jb2xvcl9iZyxhKTtpZihtKHdpbmRvdy5nb29nbGVfY29s b3JfdGV4dCkpd2luZG93Lmdvb2dsZV9jb2xvcl90ZXh0PQpLKHdpbmRvdy5nb29nbGVfY29sb3JfdGV4 dCxhKTtpZihtKHdpbmRvdy5nb29nbGVfY29sb3JfbGluaykpd2luZG93Lmdvb2dsZV9jb2xvcl9saW5r PUsod2luZG93Lmdvb2dsZV9jb2xvcl9saW5rLGEpO2lmKG0od2luZG93Lmdvb2dsZV9jb2xvcl91cmwp KXdpbmRvdy5nb29nbGVfY29sb3JfdXJsPUsod2luZG93Lmdvb2dsZV9jb2xvcl91cmwsYSk7aWYobSh3 aW5kb3cuZ29vZ2xlX2NvbG9yX2JvcmRlcikpd2luZG93Lmdvb2dsZV9jb2xvcl9ib3JkZXI9Syh3aW5k b3cuZ29vZ2xlX2NvbG9yX2JvcmRlcixhKTtpZihtKHdpbmRvdy5nb29nbGVfY29sb3JfbGluZSkpd2lu ZG93Lmdvb2dsZV9jb2xvcl9saW5lPUsod2luZG93Lmdvb2dsZV9jb2xvcl9saW5lLGEpfSxjYz1mdW5j dGlvbihhKXtEKHViLGZ1bmN0aW9uKGIsYyl7YVtjXT1pfSk7RCh2YixmdW5jdGlvbihiLGMpe2FbY109 aX0pO0Qod2IsZnVuY3Rpb24oYixjKXthW2NdPWl9KTthLmdvb2dsZV9jb250YWluZXJfaWQ9aTsKYS5n b29nbGVfZWlkcz1pO2EuZ29vZ2xlX3BhZ2VfbG9jYXRpb249aTthLmdvb2dsZV9yZWZlcnJlcl91cmw9 aTthLmdvb2dsZV9hZF9yZWdpb249aTthLmdvb2dsZV9nbD1pfSxLPWZ1bmN0aW9uKGEsYil7WWIoMik7 cmV0dXJuIGFbYiVhLmxlbmd0aF19LGFjPWZ1bmN0aW9uKGEsYil7aWYoIWIpcmV0dXJuIiI7Yj1iLnRv TG93ZXJDYXNlKCk7cmV0dXJuIGI9RyhhKT9kYyhiKTplYyhiKX0sZWM9ZnVuY3Rpb24oYSl7aWYoYSYm YS5zdWJzdHJpbmcoMCwzKSE9ImNhLSIpYT0iY2EtIithO3JldHVybiBhfSxkYz1mdW5jdGlvbihhKXtp ZihhJiZhLnN1YnN0cmluZygwLDcpIT0iY2EtYWZmLSIpYT0iY2EtYWZmLSIrYTtyZXR1cm4gYX0sJGI9 ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2lmKCFhJiZiPT0iaHRtbCIpYT1jKyJ4IitkO3JldHVybiBhPWZj KGEsZSxmKT9hLnRvTG93ZXJDYXNlKCk6IiJ9LGZjPWZ1bmN0aW9uKGEsYixjKXtpZighYSlyZXR1cm4g ajtpZighYilyZXR1cm4gaDtyZXR1cm4gY307dmFyIEw9ZG9jdW1lbnQsTT1uYXZpZ2F0b3IsTj13aW5k b3c7CmZ1bmN0aW9uIGdjKCl7dmFyIGE9TC5jb29raWUsYj1NYXRoLnJvdW5kKChuZXcgRGF0ZSkuZ2V0 VGltZSgpLzFFMyksYz1OLmdvb2dsZV9hbmFseXRpY3NfZG9tYWluX25hbWU7Yz10eXBlb2YgYz09InVu ZGVmaW5lZCI/aGMoImF1dG8iKTpoYyhjKTt2YXIgZD1hLmluZGV4T2YoIl9fdXRtYT0iK2MrIi4iKT4t MSxlPWEuaW5kZXhPZigiX191dG1iPSIrYyk+LTEsZj1hLmluZGV4T2YoIl9fdXRtYz0iK2MpPi0xLGc9 e30sbz0hIU4mJiEhTi5nYUdsb2JhbDtpZihkKXthPWEuc3BsaXQoIl9fdXRtYT0iK2MrIi4iKVsxXS5z cGxpdCgiOyIpWzBdLnNwbGl0KCIuIik7Zy5zaWQ9ZSYmZj9hWzNdKyIiOm8mJk4uZ2FHbG9iYWwuc2lk P04uZ2FHbG9iYWwuc2lkOmIrIiI7Zy52aWQ9YVswXSsiLiIrYVsxXTtnLmZyb21fY29va2llPWh9ZWxz ZXtnLnNpZD1vJiZOLmdhR2xvYmFsLnNpZD9OLmdhR2xvYmFsLnNpZDpiKyIiO2cudmlkPW8mJk4uZ2FH bG9iYWwudmlkP04uZ2FHbG9iYWwudmlkOgooTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjIxNDc0ODM2 NDcpXmljKCkmMjE0NzQ4MzY0NykrIi4iK2I7Zy5mcm9tX2Nvb2tpZT1qfWcuZGg9YztnLmhpZD1vJiZO LmdhR2xvYmFsLmhpZD9OLmdhR2xvYmFsLmhpZDpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMjE0NzQ4 MzY0Nyk7cmV0dXJuIE4uZ2FHbG9iYWw9Z30KZnVuY3Rpb24gaWMoKXt2YXIgYT1MLmNvb2tpZT9MLmNv b2tpZToiIixiPU4uaGlzdG9yeS5sZW5ndGgsYyxkPVtNLmFwcE5hbWUsTS52ZXJzaW9uLE0ubGFuZ3Vh Z2U/TS5sYW5ndWFnZTpNLmJyb3dzZXJMYW5ndWFnZSxNLnBsYXRmb3JtLE0udXNlckFnZW50LE0uamF2 YUVuYWJsZWQoKT8xOjBdLmpvaW4oIiIpO2lmKE4uc2NyZWVuKWQrPU4uc2NyZWVuLndpZHRoKyJ4IitO LnNjcmVlbi5oZWlnaHQrTi5zY3JlZW4uY29sb3JEZXB0aDtlbHNlIGlmKE4uamF2YSl7Yz1qYXZhLmF3 dC5Ub29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U2NyZWVuU2l6ZSgpO2QrPWMuc2NyZWVuLndp ZHRoKyJ4IitjLnNjcmVlbi5oZWlnaHR9ZCs9YTtkKz1MLnJlZmVycmVyP0wucmVmZXJyZXI6IiI7Zm9y KGE9ZC5sZW5ndGg7Yj4wOylkKz1iLS1eYSsrO3JldHVybiBqYyhkKX0KZnVuY3Rpb24gamMoYSl7dmFy IGI9MSxjPTAsZDtpZighKGE9PXVuZGVmaW5lZHx8YT09IiIpKXtiPTA7Zm9yKGQ9YS5sZW5ndGgtMTtk Pj0wO2QtLSl7Yz1hLmNoYXJDb2RlQXQoZCk7Yj0oYjw8NiYyNjg0MzU0NTUpK2MrKGM8PDE0KTtjPWIm MjY2MzM4MzA0O2I9YyE9MD9iXmM+PjIxOmJ9fXJldHVybiBifWZ1bmN0aW9uIGhjKGEpe2lmKCFhfHxh PT0iInx8YT09Im5vbmUiKXJldHVybiAxO2lmKCJhdXRvIj09YSl7YT1MLmRvbWFpbjtpZigid3d3LiI9 PWEuc3Vic3RyaW5nKDAsNCkpYT1hLnN1YnN0cmluZyg0LGEubGVuZ3RoKX1yZXR1cm4gamMoYS50b0xv d2VyQ2FzZSgpKX07dmFyIGtjLGxjLG1jLG5jLG9jLHBjLHFjPWZ1bmN0aW9uKCl7cGM9b2M9bmM9bWM9 bGM9a2M9ajt2YXIgYT1LYSgpO2lmKGEpaWYoYS5pbmRleE9mKCJGaXJlZm94IikhPS0xKWtjPWg7ZWxz ZSBpZihhLmluZGV4T2YoIkNhbWlubyIpIT0tMSlsYz1oO2Vsc2UgaWYoYS5pbmRleE9mKCJpUGhvbmUi KSE9LTF8fGEuaW5kZXhPZigiaVBvZCIpIT0tMSltYz1oO2Vsc2UgaWYoYS5pbmRleE9mKCJBbmRyb2lk IikhPS0xKW5jPWg7ZWxzZSBpZihhLmluZGV4T2YoIkNocm9tZSIpIT0tMSlvYz1oO2Vsc2UgaWYoYS5p bmRleE9mKCJTYWZhcmkiKSE9LTEpcGM9aH07cWMoKTt2YXIgcmM9ZnVuY3Rpb24oYSl7dmFyIGI9Imdv b2dsZV90ZXN0Ijt0cnl7dmFyIGM9YVtiXTthW2JdPSFjO2lmKGFbYl09PT0hYyl7YVtiXT1jO3JldHVy biBofX1jYXRjaChkKXt9cmV0dXJuIGp9LHNjPWZ1bmN0aW9uKGEpe2Zvcig7YSE9YS5wYXJlbnQmJnJj KGEucGFyZW50KTspYT1hLnBhcmVudDtyZXR1cm4gYX0sTz1pLHRjPWZ1bmN0aW9uKCl7aWYoIU8pe089 c2Mod2luZG93KTtPIT13aW5kb3cmJlliKDQpfXJldHVybiBPfTt2YXIgUD1mdW5jdGlvbihhKXt0aGlz LnN0YWNrPShuZXcgRXJyb3IpLnN0YWNrfHwiIjtpZihhKXRoaXMubWVzc2FnZT1TdHJpbmcoYSl9O2hh KFAsRXJyb3IpO1AucHJvdG90eXBlLm5hbWU9IkN1c3RvbUVycm9yIjt2YXIgUT1mdW5jdGlvbihhLGIp e2IudW5zaGlmdChhKTtQLmNhbGwodGhpcyxxYS5hcHBseShpLGIpKTtiLnNoaWZ0KCk7dGhpcy5tZXNz YWdlUGF0dGVybj1hfTtoYShRLFApO1EucHJvdG90eXBlLm5hbWU9IkFzc2VydGlvbkVycm9yIjt2YXIg dWM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9IkFzc2VydGlvbiBmYWlsZWQiO2lmKGMpe2UrPSI6ICIr Yzt2YXIgZj1kfWVsc2UgaWYoYSl7ZSs9IjogIithO2Y9Yn10aHJvdyBuZXcgUSgiIitlLGZ8fFtdKTt9 LHZjPWZ1bmN0aW9uKGEsYil7YXx8dWMoIiIsaSxiLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFy Z3VtZW50cywyKSl9LHdjPWZ1bmN0aW9uKGEpe3Rocm93IG5ldyBRKCJGYWlsdXJlIisoYT8iOiAiK2E6 IiIpLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7fTt2YXIgUj1mdW5jdGlv bigpe3RoaXMuZGVmYXVsdEJ1Y2tldD1bXTt0aGlzLmxheWVycz17fTtmb3IodmFyIGE9MCxiPWFyZ3Vt ZW50cy5sZW5ndGg7YTxiOysrYSl0aGlzLmxheWVyc1thcmd1bWVudHNbYV1dPSIifSx4Yz1mdW5jdGlv bihhKXtmb3IodmFyIGI9bmV3IFIsYz0wLGQ9YS5kZWZhdWx0QnVja2V0Lmxlbmd0aDtjPGQ7KytjKWIu ZGVmYXVsdEJ1Y2tldC5wdXNoKGEuZGVmYXVsdEJ1Y2tldFtjXSk7RChhLmxheWVycyxnYShSLnByb3Rv dHlwZS5pLGIpKTtyZXR1cm4gYn07Ui5wcm90b3R5cGUuaT1mdW5jdGlvbihhLGIpe3RoaXMubGF5ZXJz W2JdPWF9O1IucHJvdG90eXBlLlU9ZnVuY3Rpb24oYSxiKXtpZihhPT0iIilyZXR1cm4iIjtpZighYil7 dGhpcy5kZWZhdWx0QnVja2V0LnB1c2goYSk7cmV0dXJuIGF9aWYodGhpcy5sYXllcnMuaGFzT3duUHJv cGVydHkoYikpcmV0dXJuIHRoaXMubGF5ZXJzW2JdPWE7cmV0dXJuIiJ9OwpSLnByb3RvdHlwZS5nPWZ1 bmN0aW9uKGEsYixjKXtpZighKE1hdGgucmFuZG9tKCk8MS4wRS00KSYmdGhpcy5LKGMpKXt2YXIgZD1N YXRoLnJhbmRvbSgpO2lmKGQ8Yil7Yj1NYXRoLmZsb29yKGEubGVuZ3RoKmQvYik7aWYoYT1hW2JdKXJl dHVybiB0aGlzLlUoYSxjKX19cmV0dXJuIiJ9O1IucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7aWYoIWEp cmV0dXJuIGg7cmV0dXJuIHRoaXMubGF5ZXJzLmhhc093blByb3BlcnR5KGEpJiZ0aGlzLmxheWVyc1th XT09IiJ9O1IucHJvdG90eXBlLmw9ZnVuY3Rpb24oYSl7aWYodGhpcy5sYXllcnMuaGFzT3duUHJvcGVy dHkoYSkpcmV0dXJuIHRoaXMubGF5ZXJzW2FdO3JldHVybiIifTsKUi5wcm90b3R5cGUuQj1mdW5jdGlv bigpe3ZhciBhPVtdLGI9ZnVuY3Rpb24oYyl7YyE9IiImJmEucHVzaChjKX07RCh0aGlzLmxheWVycyxi KTtpZih0aGlzLmRlZmF1bHRCdWNrZXQubGVuZ3RoPjAmJmEubGVuZ3RoPjApcmV0dXJuIHRoaXMuZGVm YXVsdEJ1Y2tldC5qb2luKCIsIikrIiwiK2Euam9pbigiLCIpO3JldHVybiB0aGlzLmRlZmF1bHRCdWNr ZXQuam9pbigiLCIpK2Euam9pbigiLCIpfTt2YXIgUz1mdW5jdGlvbihhKXt0aGlzLlc9YTt0aGlzLlMo KX0sVCxVPWZ1bmN0aW9uKCl7aWYoVClyZXR1cm4gVDtpZihpYih3aW5kb3cuZ29vZ2xlX3BlcnNpc3Rl bnRfc3RhdGUsUykpe3ZhciBhPXdpbmRvdztyZXR1cm4gd2luZG93Lmdvb2dsZV9wZXJzaXN0ZW50X3N0 YXRlPVQ9bmV3IFMoYSl9cmV0dXJuIFQ9d2luZG93Lmdvb2dsZV9wZXJzaXN0ZW50X3N0YXRlfTtTLnBy b3RvdHlwZS5TPWZ1bmN0aW9uKCl7dGhpcy5hKDEsaik7dGhpcy5hKDIsaik7dGhpcy5hKDMsaSk7dGhp cy5hKDQsMCk7dGhpcy5hKDUsMCk7dGhpcy5hKDYsMCk7dGhpcy5hKDgse30pO3RoaXMuYSg5LHt9KTt0 aGlzLmEoMTAse30pO3RoaXMuYSgxMSxbXSk7dGhpcy5hKDEzLDApO3RoaXMuVCgobmV3IERhdGUpLmdl dFRpbWUoKSk7dGhpcy50KDApfTsKdmFyIHljPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0 dXJuImdvb2dsZV9uZXdfZG9tYWluX2VuYWJsZWQiO2Nhc2UgMjpyZXR1cm4iZ29vZ2xlX25ld19kb21h aW5fY2hlY2tlZCI7Y2FzZSAzOnJldHVybiJnb29nbGVfZXhwX3BlcnNpc3RlbnQiO2Nhc2UgNDpyZXR1 cm4iZ29vZ2xlX251bV9zZG9fc2xvdHMiO2Nhc2UgNTpyZXR1cm4iZ29vZ2xlX251bV8wYWRfc2xvdHMi O2Nhc2UgNjpyZXR1cm4iZ29vZ2xlX251bV9hZF9zbG90cyI7Y2FzZSA3OnJldHVybiJnb29nbGVfY29y cmVsYXRvciI7Y2FzZSA4OnJldHVybiJnb29nbGVfcHJldl9hZF9mb3JtYXRzX2J5X3JlZ2lvbiI7Y2Fz ZSA5OnJldHVybiJnb29nbGVfcHJldl9hZF9zbG90bmFtZXNfYnlfcmVnaW9uIjtjYXNlIDEwOnJldHVy biJnb29nbGVfbnVtX3Nsb3RzX2J5X2NoYW5uZWwiO2Nhc2UgMTE6cmV0dXJuImdvb2dsZV92aWV3ZWRf aG9zdF9jaGFubmVscyI7Y2FzZSAxMjpyZXR1cm4iZ29vZ2xlX251bV9zbG90X3RvX3Nob3ciOwpjYXNl IDEzOnJldHVybiJnb29nbGVfdW5pcXVlX2lkIn13YygiVW5yZWNvZ25pemVkIHB1YmxpYyBrZXk6ICIr YSl9O1MucHJvdG90eXBlLmI9ZnVuY3Rpb24oYSl7YT15YyhhKTthPXRoaXMuV1thXTt2YyhhIT09dW5k ZWZpbmVkLCJWYWx1ZXMgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZXkgYXJlIGFjY2Vzc2VkIG9yIHdlIG1p Z2h0IHZpb2xhdGUgQHR5cGUuIik7cmV0dXJuIGF9O1MucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSxiKXty ZXR1cm4gdGhpcy5XW3ljKGEpXT1ifTtTLnByb3RvdHlwZS5jPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlz LmEoYSx0aGlzLmIoYSkrMSl9O1MucHJvdG90eXBlLmo9ZnVuY3Rpb24oKXtpZih0aGlzLmIoMSkpcmV0 dXJuIGg7cmV0dXJuIHRoaXMuYSgxLCEhd2luZG93Lmdvb2dsZV9uZXdfZG9tYWluX2VuYWJsZWQpfTtT LnByb3RvdHlwZS5rPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYigyKX07ClMucHJvdG90eXBlLnM9ZnVu Y3Rpb24oKXtyZXR1cm4gdGhpcy5hKDIsaCl9O1MucHJvdG90eXBlLkM9ZnVuY3Rpb24oKXtyZXR1cm4g dGhpcy5iKDMpfTtTLnByb3RvdHlwZS5WPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmEoMyxhKX07Uy5w cm90b3R5cGUuSj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmMoNCl9O1MucHJvdG90eXBlLkk9ZnVuY3Rp b24oKXtyZXR1cm4gdGhpcy5jKDUpfTtTLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu Yyg2KX07Uy5wcm90b3R5cGUuZ2V0Q29ycmVsYXRvcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmIoNyl9 O1MucHJvdG90eXBlLlQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYSg3LGEpfTtTLnByb3RvdHlwZS5u PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYig4KX07Uy5wcm90b3R5cGUubz1mdW5jdGlvbigpe3JldHVy biB0aGlzLmIoOSl9O1MucHJvdG90eXBlLkQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iKDEwKX07ClMu cHJvdG90eXBlLkY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iKDExKX07Uy5wcm90b3R5cGUucD1mdW5j dGlvbigpe3JldHVybiB0aGlzLmIoMTIpfTtTLnByb3RvdHlwZS50PWZ1bmN0aW9uKGEpe3JldHVybiB0 aGlzLmEoMTIsYSl9O1MucHJvdG90eXBlLmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iKDEzKX07Uy5w cm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmMoMTMpfTt2YXIgVix6YyxXPWZ1bmN0aW9u KCl7aWYoVilyZXR1cm4gVjt2YXIgYT1VKCksYj1hLkMoKTtpZihpYihiLFIpKXJldHVybiBWPWEuVihu ZXcgUigxLDIpKTtyZXR1cm4gVj1ifSxBYz1mdW5jdGlvbigpe3pjfHwoemM9eGMoVygpKSk7cmV0dXJu IHpjfTt2YXIgQmM9e2dvb2dsZToxLGdvb2dsZWdyb3VwczoxLGdtYWlsOjEsZ29vZ2xlbWFpbDoxLGdv b2dsZWltYWdlczoxLGdvb2dsZXByaW50OjF9O2Z1bmN0aW9uIENjKGEpe2E9YS5nb29nbGVfcGFnZV9s b2NhdGlvbnx8YS5nb29nbGVfcGFnZV91cmw7aWYoIWEpcmV0dXJuIGo7YT1hLnRvU3RyaW5nKCk7aWYo YS5pbmRleE9mKCJodHRwOi8vIik9PTApYT1hLnN1YnN0cmluZyg3LGEubGVuZ3RoKTtlbHNlIGlmKGEu aW5kZXhPZigiaHR0cHM6Ly8iKT09MClhPWEuc3Vic3RyaW5nKDgsYS5sZW5ndGgpO3ZhciBiPWEuaW5k ZXhPZigiLyIpO2lmKGI9PS0xKWI9YS5sZW5ndGg7YT1hLnN1YnN0cmluZygwLGIpO2E9YS5zcGxpdCgi LiIpO2I9ajtpZihhLmxlbmd0aD49MyliPWFbYS5sZW5ndGgtM11pbiBCYztpZihhLmxlbmd0aD49Mili PWJ8fGFbYS5sZW5ndGgtMl1pbiBCYztyZXR1cm4gYn0KZnVuY3Rpb24gRGMoYSxiLGMpe3ZhciBkPVUo KTtpZihDYyhhKSlyZXR1cm4hZC5zKCk7aWYoIWQuaygpKXthPU1hdGgucmFuZG9tKCk7aWYoYTw9Yyl7 Yz0iaHR0cDovLyIra2EoKSsiL3BhZ2VhZC90ZXN0X2RvbWFpbi5qcyI7YT0ic2NyaXB0IjtiLndyaXRl KCI8IithKycgc3JjPSInK2MrJyI+PC8nK2ErIj4iKTtyZXR1cm4gZC5zKCl9fXJldHVybiBqfXZhciBF Yz1mdW5jdGlvbihhKXt2YXIgYj1XKCk7aWYoYi5sKDEpPT0iNDQ5MDEyMTYiKXJldHVybiAxPT1NYXRo LmZsb29yKGEvMiklMjtyZXR1cm4gan07ZnVuY3Rpb24gRmMoYSl7dmFyIGI9VSgpO2lmKCFDYyhhKSYm Yi5qKCkpcmV0dXJuIEVjKGIuZCgpKT8iaHR0cDovLyIrcigiIiwiZ29vZ2xlYWRzMi5nLmRvdWJsZWNs aWNrLm5ldCIpOiJodHRwOi8vIitrYSgpO3JldHVybiJodHRwOi8vIitsYSgpfTt2YXIgWD1mdW5jdGlv bihhKXt0aGlzLlg9YTt0aGlzLnI9W107dGhpcy5xPTA7dGhpcy5lPVtdO3RoaXMuTz0wO3RoaXMuZj1b XTt0aGlzLk09ajt0aGlzLnU9dGhpcy52PSIiO3RoaXMuTD1qfTtYLnByb3RvdHlwZS5RPWZ1bmN0aW9u KGEsYil7dmFyIGM9dGhpcy5YW2JdLGQ9dGhpcy5yO3RoaXMuWFtiXT1mdW5jdGlvbihlKXtpZihlJiZl Lmxlbmd0aD4wKXt2YXIgZj1lLmxlbmd0aD4xP2VbMV0udXJsOmk7ZC5wdXNoKFthLHphKGVbMF0udXJs KSxmXSl9YyhlKX19O1gucHJvdG90eXBlLlA9ZnVuY3Rpb24oKXt0aGlzLnErK307WC5wcm90b3R5cGUu Uj1mdW5jdGlvbihhKXt0aGlzLmUucHVzaChhKX07dmFyIEdjPSJodHRwOi8vIitzKCkrIi9wYWdlYWQv b3NkLmpzIjtYLnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7aWYoIXRoaXMuTSl7bGIoQyxIYyk7a2IoR2Mp O3RoaXMuTT1ofX07ClgucHJvdG90eXBlLnc9ZnVuY3Rpb24oYSl7aWYodGhpcy5xPjApZm9yKHZhciBi PWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKSxjPXRoaXMuTD8iZ29vZ2xlX2Fk c19pZnJhbWVfIjoiZ29vZ2xlX2Fkc19mcmFtZSIsZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iLml0 ZW0oZCk7ZS5zcmMmJmUubmFtZSYmZS5uYW1lLmluZGV4T2YoYyk9PTAmJmEoZSxlLnNyYyl9fTsKWC5w cm90b3R5cGUuej1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnI7aWYoYi5sZW5ndGg+MClmb3IodmFyIGM9 ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKSxkPTA7ZDxjLmxlbmd0aDtkKyspZm9yKHZh ciBlPTA7ZTxiLmxlbmd0aDtlKyspaWYoYy5pdGVtKGQpLmhyZWY9PWJbZV1bMV0pe3ZhciBmPWMuaXRl bShkKS5wYXJlbnROb2RlO2lmKGJbZV1bMl0pZm9yKHZhciBnPWYsbz0wO288NDtvKyspe2lmKGcuaW5u ZXJIVE1MLmluZGV4T2YoYltlXVsyXSk+MCl7Zj1nO2JyZWFrfWc9Zy5wYXJlbnROb2RlfWEoZixiW2Vd WzBdKTtiLnNwbGljZShlLDEpO2JyZWFrfX07WC5wcm90b3R5cGUuQT1mdW5jdGlvbihhKXtmb3IodmFy IGI9MDtiPHRoaXMuZS5sZW5ndGg7YisrKXt2YXIgYz10aGlzLmVbYl0sZD1JYyhjKTtpZihkKShkPWRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJnb29nbGVfYWRzX2Rpdl8iK2QpKSYmYShkLGMpfX07ClgucHJv dG90eXBlLmg9ZnVuY3Rpb24oYSl7dGhpcy56KGEpO3RoaXMuQShhKTt0aGlzLncoYSl9O1gucHJvdG90 eXBlLnNldHVwT3NkPWZ1bmN0aW9uKGEsYixjKXt0aGlzLk89YTt0aGlzLnY9Yjt0aGlzLnU9Y307WC5w cm90b3R5cGUuZ2V0T3NkTW9kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk99O1gucHJvdG90eXBlLmdl dEVpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZ9O1gucHJvdG90eXBlLmdldENvcnJlbGF0b3I9ZnVu Y3Rpb24oKXtyZXR1cm4gdGhpcy51fTtYLnByb3RvdHlwZS5tPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu ci5sZW5ndGgrdGhpcy5xK3RoaXMuZS5sZW5ndGh9O1gucHJvdG90eXBlLnNldFZhbGlkT3V0cHV0VHlw ZXM9ZnVuY3Rpb24oYSl7dGhpcy5mPWF9OwpYLnByb3RvdHlwZS5yZWdpc3RlckFkQmxvY2tCeVR5cGU9 ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuZi5sZW5ndGg+MCl7Zm9yKHZhciBkPTA7ZDx0aGlzLmYubGVu Z3RoO2QrKylpZih0aGlzLmZbZF09PWEpe3RoaXMuTD1jO2lmKGE9PSJqcyIpdGhpcy5RKGIsImdvb2ds ZV9hZF9yZXF1ZXN0X2RvbmUiKTtlbHNlIGlmKGE9PSJodG1sIil0aGlzLlAoKTtlbHNlIGE9PSJqc29u X2h0bWwiJiZ0aGlzLlIoYil9dGhpcy5OKCl9fTt2YXIgSWM9ZnVuY3Rpb24oYSl7aWYoKGE9YS5tYXRj aCgvWyZcP10oPzpzbG90bmFtZSk9KFteJl0rKS8pKSYmYS5sZW5ndGg9PTIpcmV0dXJuIGFbMV07cmV0 dXJuIiJ9LEhjPWZ1bmN0aW9uKCl7Qy5nb29nbGVfb3NkX3BhZ2VfbG9hZGVkPWh9LEpjPWZ1bmN0aW9u KCl7d2luZG93Ll9fZ29vZ2xlX2FkX3VybHN8fCh3aW5kb3cuX19nb29nbGVfYWRfdXJscz1uZXcgWCh3 aW5kb3cpKTtyZXR1cm4gd2luZG93Ll9fZ29vZ2xlX2FkX3VybHN9OwpwKCJHb29nX0FkU2Vuc2VfZ2V0 QWRBZGFwdGVySW5zdGFuY2UiLEpjKTtwKCJHb29nX0FkU2Vuc2VfT3NkQWRhcHRlciIsWCk7cCgiR29v Z19BZFNlbnNlX09zZEFkYXB0ZXIucHJvdG90eXBlLm51bUJsb2NrcyIsWC5wcm90b3R5cGUubSk7cCgi R29vZ19BZFNlbnNlX09zZEFkYXB0ZXIucHJvdG90eXBlLmZpbmRCbG9ja3MiLFgucHJvdG90eXBlLmgp O3AoIkdvb2dfQWRTZW5zZV9Pc2RBZGFwdGVyLnByb3RvdHlwZS5nZXRPc2RNb2RlIixYLnByb3RvdHlw ZS5nZXRPc2RNb2RlKTtwKCJHb29nX0FkU2Vuc2VfT3NkQWRhcHRlci5wcm90b3R5cGUuZ2V0RWlkIixY LnByb3RvdHlwZS5nZXRFaWQpO3AoIkdvb2dfQWRTZW5zZV9Pc2RBZGFwdGVyLnByb3RvdHlwZS5nZXRD b3JyZWxhdG9yIixYLnByb3RvdHlwZS5nZXRDb3JyZWxhdG9yKTtwKCJHb29nX0FkU2Vuc2VfT3NkQWRh cHRlci5wcm90b3R5cGUuc2V0VmFsaWRPdXRwdXRUeXBlcyIsWC5wcm90b3R5cGUuc2V0VmFsaWRPdXRw dXRUeXBlcyk7CnAoIkdvb2dfQWRTZW5zZV9Pc2RBZGFwdGVyLnByb3RvdHlwZS5zZXR1cE9zZCIsWC5w cm90b3R5cGUuc2V0dXBPc2QpO3AoIkdvb2dfQWRTZW5zZV9Pc2RBZGFwdGVyLnByb3RvdHlwZS5yZWdp c3RlckFkQmxvY2tCeVR5cGUiLFgucHJvdG90eXBlLnJlZ2lzdGVyQWRCbG9ja0J5VHlwZSk7dmFyIEtj PWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5ub2RlVHlwZT09OT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1 bWVudDtpZihjLmRlZmF1bHRWaWV3JiZjLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpaWYoYT1j LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSwiIikpcmV0dXJuIGFbYl07cmV0dXJuIGl9LExj PWZ1bmN0aW9uKGEsYil7cmV0dXJuIEtjKGEsYil8fChhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHls ZVtiXTppKXx8YS5zdHlsZVtiXX0sTWM9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoL15cZCtweD8kLy50ZXN0 KGIpKXJldHVybiBwYXJzZUludChiLDEwKTtlbHNle3ZhciBlPWEuc3R5bGVbY10sZj1hLnJ1bnRpbWVT dHlsZVtjXTthLnJ1bnRpbWVTdHlsZVtjXT1hLmN1cnJlbnRTdHlsZVtjXTthLnN0eWxlW2NdPWI7Yj1h LnN0eWxlW2RdO2Euc3R5bGVbY109ZTthLnJ1bnRpbWVTdHlsZVtjXT1mO3JldHVybiBifX0sTmM9ZnVu Y3Rpb24oYSl7dmFyIGI9CmEubm9kZVR5cGU9PTk/YTphLm93bmVyRG9jdW1lbnR8fGEuZG9jdW1lbnQs Yz0iIjtpZihiLmNyZWF0ZVRleHRSYW5nZSl7Yz1iLmJvZHkuY3JlYXRlVGV4dFJhbmdlKCk7Yy5tb3Zl VG9FbGVtZW50VGV4dChhKTtjPWMucXVlcnlDb21tYW5kVmFs