delorie.com/archives/browse.cgi | search |
Date: | Wed, 6 Aug 2003 12:54:47 -0400 |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sources.redhat.com/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
From: | strujeque <strujeque AT grupoado DOT com DOT mx> |
To: | cygwin AT cygwin DOT com |
Subject: | Parent.SetFinish(1) |
MIME-Version: | 1.0 |
Message-ID: | <MDAEMON-F200308061151.AA5127225md50000000241@grupoado.com.mx> |
Note-from-DJ: | This may be spam |
--Tnb22epso009Aszg054KI90x3jeE3 Content-Type: text/plain ****************************** ADVERTENCIA******************************* Este mensaje ha sido analizado por MDaemon AntiVirus and se encontró que contiene adjuntos infectados. Revise la lista de abajo. Adjunto Nombre del virus Acción realizada ---------------------------------------------------------------------- cf548920905.att Exploit.IFrame.FileDownloadRemoved pHeader.pif I-Worm.Klez.h Removed ********************************************************************** --Tnb22epso009Aszg054KI90x3jeE3 Content-Type: application/octet-stream; name=header[1].htm Content-Transfer-Encoding: base64 Content-ID: <Ugv793Xk59K7oIZ862F> PEhUTUw+CjxIRUFEPgo8VElUTEU+IENvbmV4aSZvYWN1dGU7biBQZXJzb25hbCA8L1RJVExF Pgo8TUVUQSBIVFRQLUVRVUlWPSJQcmFnbWEiICBDT05URU5UPSJuby1jYWNoZSI+CjwvSEVB RD4KPEJPRFkgQkdDT0xPUj13aGl0ZSBURVhUPWJsYWNrPgo8QlI+CjxUQUJMRSBCT1JERVI9 MD4KIDxUUj4KIDxURCB2YWxpZ249bWlkZGxlIGFsaWduPWNlbnRlcj48SU1HIFNSQz0iL2Nv bnBlci9pbWFnZW5lcy9jb25leF9vay5qcGciPjwvVEQ+CiA8L1RSPgo8L1RBQkxFPiA8L0JS PgoKPFNDUklQVD4KCnZhciBUTzsKdmFyIEFjY0ltcD0wOwp2YXIgQWNjQ2xpPTA7CkRlc1Rp dD0wOwoKZnVuY3Rpb24gdGl0dWxvSFRNTCh0aXR1bG8sIGRvY3VtZW50bykKewlkb2N1bWVu dG8ud3JpdGVsbignPEZPTlQgU0laRT0zIENPTE9SPSIjMDAwMDAwIiBGQUNFPSJIRUxWRVRJ Q0EiPjxCPicgKyB0aXR1bG8gKyAnPC9CPjwvRk9OVD4nKTsKCXJldHVybjsKfQoKZnVuY3Rp b24gdGl0dWxvMkhUTUwodGl0dWxvLCBpbmRpY2UpCnsJZG9jdW1lbnRvLndyaXRlbG4oJzxG T05UIFNJWkU9MiBDT0xPUj0iIzAwMDAwMCIgRkFDRT0iSEVMVkVUSUNBIj48Qj4nICsgdGl0 dWxvICsgJzwvQj48L0ZPTlQ+Jyk7CglyZXR1cm47Cn0KCmZ1bmN0aW9uIGxpZ2EodGl0dWxv KQp7CXRleHRvID0gJzxGT05UIFNJWkU9MSBDT0xPUj1cIiMyMTIxRkZcIiBGQUNFPVwiSEVM VkVUSUNBXCI+PEI+JyArIHRpdHVsbyArICc8L0I+PC9GT05UPic7CglyZXR1cm4gdGV4dG87 Cn0KCmZ1bmN0aW9uIGxpZ2EyKHRpdHVsbykKewl0ZXh0byA9ICc8Rk9OVCBTSVpFPTIgQ09M T1I9XCIjMjEyMUZGXCIgRkFDRT1cIkhFTFZFVElDQVwiPjxCPicgKyB0aXR1bG8gKyAnPC9C PjwvRk9OVD4nOwoJcmV0dXJuIHRleHRvOwp9CgovLyBGVU5DSU9ORVMKLypBY3R1YWxpemEg QmFuVERDIHNvbG8gcGFyYSBlbnZpYXIgdW5hIHBldGljafNuIGFsIElWUiovCmZ1bmN0aW9u IEFjdHVhQmFuVERDKGJhblREQyl7CiAgICAgdmFyIHBIZWFkZXI9bnVsbDsgICBwSGVhZGVy PSBwYXJlbnQuR2V0UG9pbnRlckhkKCk7CiAgICAgcEhlYWRlci5jYmFuVERDPWJhblREQzsg fQoKLyogQUNUVUFMSVpBIENPUlJFT1MgKi8KZnVuY3Rpb24gQWN0dWFsaXphQ29ycmVvMWFj dChjb3JyZW8xYWN0KXsKICAgICB2YXIgcEhlYWRlcj1udWxsOwkgcEhlYWRlcj0gcGFyZW50 LkdldFBvaW50ZXJIZCgpOwogICAgIHBIZWFkZXIuY2NvcnJlbzFhY3Q9Y29ycmVvMWFjdDsg fQpmdW5jdGlvbiBBY3R1YWxpemFDb3JyZW8xYW50KGNvcnJlbzFhbnQpewogICAgIHZhciBw SGVhZGVyPW51bGw7CSBwSGVhZGVyPSBwYXJlbnQuR2V0UG9pbnRlckhkKCk7CiAgICAgcEhl YWRlci5jY29ycmVvMWFudD1jb3JyZW8xYW50OyB9CmZ1bmN0aW9uIEFjdHVhbGl6YUNvcnJl bzJhY3QoY29ycmVvMmFjdCl7CiAgICAgIHZhciBwSGVhZGVyPW51bGw7CSBwSGVhZGVyPSBw YXJlbnQuR2V0UG9pbnRlckhkKCk7CiAgICAgIHBIZWFkZXIuY2NvcnJlbzJhY3Q9Y29ycmVv MmFjdDsgfQpmdW5jdGlvbiBBY3R1YWxpemFDb3JyZW8yYW50KGNvcnJlbzJhbnQpewogICAg ICAgdmFyIHBIZWFkZXI9bnVsbDsgcEhlYWRlcj0gcGFyZW50LkdldFBvaW50ZXJIZCgpOwoJ cEhlYWRlci5jY29ycmVvMmFudD1jb3JyZW8yYW50OyB9CmZ1bmN0aW9uIEFjdHVhbGl6YUNv cnJlbzNhY3QoY29ycmVvM2FjdCl7CiAgICAgICB2YXIgcEhlYWRlcj1udWxsOyAgcEhlYWRl cj0gcGFyZW50LkdldFBvaW50ZXJIZCgpOwoJcEhlYWRlci5jY29ycmVvM2FjdD1jb3JyZW8z YWN0OyB9CmZ1bmN0aW9uIEFjdHVhbGl6YUNvcnJlbzNhbnQoY29ycmVvM2FudCkgeyAKICAg ICAgdmFyIHBIZWFkZXI9bnVsbDsgcEhlYWRlcj0gcGFyZW50LkdldFBvaW50ZXJIZCgpOwoJ cEhlYWRlci5jY29ycmVvM2FudD1jb3JyZW8zYW50OyB9CmZ1bmN0aW9uIEFjdHVhbGl6YUF2 aXNvKGF2aXNvKXsKICAgICAgIHZhciBwSGVhZGVyPW51bGw7IHBIZWFkZXI9IHBhcmVudC5H ZXRQb2ludGVySGQoKTsKCXBIZWFkZXIuY2F2aXNvdDM9YXZpc287fQpmdW5jdGlvbiBBY3R1 YWxpemFTb2xQYXNzd2Qoc29scGFzc3dkKXsKICAgICAgIHZhciBwSGVhZGVyPW51bGw7IHBI ZWFkZXI9IHBhcmVudC5HZXRQb2ludGVySGQoKTsKICAgICAgICBwSGVhZGVyLnNvbHBhc3N3 ZD1zb2xwYXNzd2Q7fQpmdW5jdGlvbiBBY3R1YWxpemFTdGF0dXMoc3RhdHVzKXsKICAgICAg IHZhciBwSGVhZGVyPW51bGw7IHBIZWFkZXI9IHBhcmVudC5HZXRQb2ludGVySGQoKTsKCXBI ZWFkZXIuY3N0YXR1c2NvcnJlbz1zdGF0dXM7IH0KZnVuY3Rpb24gQWN0dWFsaXphRm9ybWF0 b0NvcnJlbyhzdGF0dXMpewogICAgICAgdmFyIHBIZWFkZXI9bnVsbDsgcEhlYWRlcj0gcGFy ZW50LkdldFBvaW50ZXJIZCgpOwogICAgICAgIHBIZWFkZXIuY3Rwb2Zvcm1hdG89c3RhdHVz OyB9CmZ1bmN0aW9uIEFjdHVhbGl6YVNlcnZpY2lvQ29ycmVvKHN0YXR1cyl7CiAgICAgICB2 YXIgcEhlYWRlcj1udWxsOyBwSGVhZGVyPSBwYXJlbnQuR2V0UG9pbnRlckhkKCk7CiAgICAg ICAgcEhlYWRlci5jY29ycmVvc2Vydj1zdGF0dXM7IH0KZnVuY3Rpb24gQWN0dWFsaXphU3Rh dHVzZW4oc3RhdHUpewogICAgICAgdmFyIHBIZWFkZXI9bnVsbDsgcEhlYWRlcj0gcGFyZW50 LkdldFBvaW50ZXJIZCgpOwoJcEhlYWRlci5jU3RhdHVzZW49c3RhdHU7IH0KZnVuY3Rpb24g QWN0dWFsaXphRW5jdWVzdGEoZW5jdWVzdCl7CiAgICAgICB2YXIgcEhlYWRlcj1udWxsOyBw SGVhZGVyPSBwYXJlbnQuR2V0UG9pbnRlckhkKCk7CglwSGVhZGVyLmNFbmN1ZXN0YT1lbmN1 ZXN0OyB9CmZ1bmN0aW9uIEFjdHVhbGl6YVByaW9yaWRhZChwcmlvcmlkYSl7CiAgICAgICB2 YXIgcEhlYWRlcj1udWxsOyBwSGVhZGVyPSBwYXJlbnQuR2V0UG9pbnRlckhkKCk7CglwSGVh ZGVyLmNQcmlvcmlkYWQ9cHJpb3JpZGE7IH0KZnVuY3Rpb24gQXZpc29Ob21pbmEoYXZpc29u b20pewogICAgICAgdmFyIHBIZWFkZXI9bnVsbDsgcEhlYWRlcj0gcGFyZW50LkdldFBvaW50 ZXJIZCgpOwogICAgICAgIHBIZWFkZXIuY2F2aXNvbm9tPWF2aXNvbm9tOyB9CgovKkNPTlRS QSBPUEUgUFJPRyovCmZ1bmN0aW9uIEFjdENvbk9QKGNvcCl7CiAgdmFyIHBIZWFkZXI9bnVs bDsgcEhlYWRlcj0gcGFyZW50LkdldFBvaW50ZXJIZCgpOwoJcEhlYWRlci5jQ29udHJhb3A9 Y29wOyB9CgovL0ZVTkNJT05FUyBQQVJBIFBBR08gSU5URVJCQU5DQVJJTyAgKCBCeSByb3Nh Y2NyICkKZnVuY3Rpb24gQWN0dWFsaXphVHBvQ3VlbnRhUElCKHRpcG8pCnsgdmFyIHBIZWFk ZXI9bnVsbDsKCXBIZWFkZXI9IHBhcmVudC5HZXRQb2ludGVySGQoKTsKCXBIZWFkZXIuY3Rp cG9jdGFwaWI9dGlwbzsgfQpmdW5jdGlvbiBBY3R1YWxpemFDdWVudGFQSUIoY3VlbnRhKQp7 IHZhciBwSGVhZGVyPW51bGw7CglwSGVhZGVyPSBwYXJlbnQuR2V0UG9pbnRlckhkKCk7Cglw SGVhZGVyLmNjdWVudGFwaWI9Y3VlbnRhOyB9CmZ1bmN0aW9uIEFjdHVhbGl6YVBhc3N3b3Jk UElCKHBhc3N3ZCkKewl2YXIgcEhlYWRlcj1udWxsOyBwSGVhZGVyPSBwYXJlbnQuR2V0UG9p bnRlckhkKCk7CiAgcEhlYWRlci5jcGFzc3dvcmRwaWI9cGFzc3dkOyB9CgovKlByb21vY2lv bmVzKi8KZnVuY3Rpb24gQWN0dWFsaXphU3RhdHVzUHJvKHN0YXR1cCl7CiAgICAgICAgdmFy IHBIZWFkZXI9bnVsbDsgcEhlYWRlcj0gcGFyZW50LkdldFBvaW50ZXJIZCgpOwogICAgICAg IHBIZWFkZXIuY1N0YXR1c1Bybz1zdGF0dXA7IH0KCmZ1bmN0aW9uIEFjdHVhbGl6YVByb21v Y2lvbihwcm9tbyl7CiAgICAgICB2YXIgcEhlYWRlcj1udWxsOyBwSGVhZGVyPSBwYXJlbnQu R2V0UG9pbnRlckhkKCk7CiAgICAgICAgcEhlYWRlci5jUHJvbW9jaW9uPXByb21vOyB9CmZ1 bmN0aW9uIEFjdHVhbGl6YVByaW9Qcm9tbyhwcmlvcHJvbW8pewogICAgICAgdmFyIHBIZWFk ZXI9bnVsbDsgcEhlYWRlcj0gcGFyZW50LkdldFBvaW50ZXJIZCgpOwogICAgICAgIHBIZWFk ZXIuY1ByaW9Qcm9tbz1wcmlvcHJvbW87IH0KZnVuY3Rpb24gQWN0dWFsaXphTmlwKG52b25p cCkKeyAgICAgICB2YXIgcEhlYWRlcj1udWxsOwogICAgICAgIHBIZWFkZXI9IHBhcmVudC5H ZXRQb2ludGVySGQoKTsKICAgICAgICBwSGVhZGVyLmNOSVA9bnZvbmlwOyB9CgpmdW5jdGlv biBTYWxkb3MyKCl7CiB2YXIgcE9wPW51bGw7CiB2YXIgcEhlYWRlcj1udWxsOwoKICAgIHBI ZWFkZXI9IHBhcmVudC5HZXRQb2ludGVySGQoKTsKICAgIEZvbGlvPXBIZWFkZXIuY0ZvbGlv YzsKICAgIGlmKHBIZWFkZXIuY0ZvbGlvYyA9PSAiTk5OTiIpeyBTYWxkb3MoKTsgfQogICAg ZWxzZXsgRm9saW9Db250cmF0b0NQQigpOyB9Cn0KCgpmdW5jdGlvbiBGb2xpb0NvbnRyYXRv Q1BCKCl7CiAgdmFyIHBPcD1udWxsOwogIHZhciBwSGVhZGVyPW51bGw7CiAgcEhlYWRlcj0g cGFyZW50LkdldFBvaW50ZXJIZCgpOyAvL1RyYWUgYXB1bnRhZG9yIGRlbCBoZWFkZXIgZXh0 cmFlciBTZWdtZW50bwogIEZlY2hhPXBIZWFkZXIuY0ZlY2hhOwogIEhvcmE9cEhlYWRlci5j SG9yYTsKICBGb2xpbz1wSGVhZGVyLmNGb2xpb2M7CiAgcE9wPXRvcC5mcmFtZXNbM10uZG9j dW1lbnQ7CiAgdG9wLmZyYW1lc1szXS5kb2N1bWVudC5vcGVuKCk7CiAgcE9wLmNsZWFyKCk7 CiAgcE9wLndyaXRlbG4oIjxIVE1MPjxIRUFEPiIpOwogIHBPcC53cml0ZWxuKCc8TUVUQSBI VFRQLUVRVUlWPSJFeHBpcmVzIiBDT05URU5UPSIwIj4nKTsKICBwT3Aud3JpdGVsbigiPFRJ VExFPiBDb250cmF0b0NQQjwvVElUTEU+IDwvSEVBRD4iKTsKICBwT3Aud3JpdGVsbignPEJP RFkgQkdDT0xPUj13aGl0ZSBURVhUPWJsYWNrPicpOwogIHBPcC53cml0ZWxuKCI8QlI+PEJS PiIpOwogIHBPcC53cml0ZWxuKCI8Q0VOVEVSPjxUQUJMRSBCT1JERVI9MCB3aWR0aD01MCU+ Iik7CiAgcE9wLndyaXRlbG4oIjxUUj48VEQgYWxpZ249Y2VudGVyPiIpOwogIHBPcC53cml0 ZWxuKCI8Rk9OVCBTSVpFPTM+VXN0ZWQgYWNhYmEgZGUgZmlybWFyIHN1IENvbnRyYXRvIGRl IENvbmV4aSZvYWN1dGU7biBQZXJzb25hbCBCaXRhbDwvRk9OVD48QlI+Iik7CiAgcE9wLndy aXRlbG4oIjxGT05UIFNJWkU9Mz5lbCBkJmlhY3V0ZTthIDxCPiIrRmVjaGErIjwvQj4gYSBs YXMgPEI+IitIb3JhKyI8L0I+LCBjb24gZWwgbiZ1YWN1dGU7bWVybyBkZSBGT0xJTzogPC9G T05UPiIpOwogIHBPcC53cml0ZWxuKCI8Rk9OVCBTSVpFPTMgQ09MT1I9UkVEPiIrRm9saW8r IjwvRk9OVD48Rk9OVCBTSVpFPTM+LCBlbCBjdWFsIGxlIHNlcnZpcuEgPC9GT05UPiIpOwog IHBPcC53cml0ZWxuKCI8Rk9OVCBTSVpFPTM+IHBhcmEgY3VhbHF1aWVyIGFjbGFyYWNp824u PC9GT05UPjwvQj4iKTsKICBwT3Aud3JpdGVsbigiPC9URD48L1RSPjxUUj48L1RSPjxUUj48 VEQgYWxpZ249Y2VudGVyPiIpOwogIHBPcC53cml0ZWxuKCI8Rk9OVCBzaXplPScyJz48QSBI UkVGPSdqYXZhc2NyaXB0OlByZWltcENvbnRyYXRvKCk7Jz48Rk9OVCBTSVpFPTEgQ09MT1I9 JyNGRjAwMDAnIEZBQ0U9J0hFTFZFVElDQSc+PEI+UFJFSU1QUklNSVI8L0I+PC9GT05UPjwv QT4iKTsKICBwT3Aud3JpdGVsbigiPC9URD48L1RSPiIpOwogIHBPcC53cml0ZWxuKCI8L1RB QkxFPjwvQ0VOVEVSPiIpOwogIHBPcC53cml0ZWxuKCI8L0JPRFk+PC9IVE1MPiIpOwogIHBP cC53cml0ZWxuKCI8UyIrIkNSSVBUIisiPiIpOwogIHBPcC53cml0ZWxuKCJmdW5jdGlvbiBQ cmVpbXBDb250cmF0bygpIik7CiAgcE9wLndyaXRlbG4oInsiKTsKICBwT3Aud3JpdGVsbigi aWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmxhc3RJbmRleE9mKCczLjAgTkFWSU8gKDg7IDcp Jyk9PSAtMSkiKTsKICBwT3Aud3JpdGVsbigieyIpOwogIHBPcC53cml0ZWxuKCJ2YXIgdmVu dGFuYT1vcGVuKCcnLCd0bXBXaW5kb3cnLCdzY3JvbGxiYXJzPXllcyx3aWR0aD02MDAsaGVp Z2h0PTM1MCx0b29sYmFyPXllcyxtZW51YmFyPXllcycpOyIpOwogIHBPcC53cml0ZWxuKCJ2 YXIgcE9wPXZlbnRhbmEuZG9jdW1lbnQ7Iik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9j dW1lbnQub3BlbigpIik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQuY2xlYXIo KTsiKTsKICBwT3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVudC53cml0ZSgnPEhUTUw+Jyk7 Iik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQud3JpdGUoJzxCT0RZIEJHQ09M T1I9V0hJVEU+Jyk7Iik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQud3JpdGUo JzxUQUJMRSBCT1JERVI9MD48VEQ+PEZPTlQgU0laRT0yIENPTE9SPVwiRkZDQzAwXCIgRkFD RT1cIkhFTFZFVElDQVwiPjxCPkNPTkVYSU9OPC9CPjwvRk9OVD48QlI+PEZPTlQgU0laRT0z IENPTE9SPVwiI0ZGMDAwMFwiIEZBQ0U9XCJIRUxDRVRJQ0FcIj48Qj5QZXJzb25hbDwvQj48 L0ZPTlQ+PEJSPjxGT05UIFNJWkU9MiBDT0xPUj1cIiMwMDAwMDBcIiBGQUNFPVwiSEVMVkVU SUNBXCI+PEI+QklUQUw8L0I+PC9GT05UPjwvVEQ+Jyk7Iik7CiAgcE9wLndyaXRlbG4oInZl bnRhbmEuZG9jdW1lbnQud3JpdGUoJzxURD48SDI+PEZPTlQgQ09MT1I9Ymx1ZT5Db25leGkm b2FjdXRlO24gUGVyc29uYWwgQml0YWw8L0ZPTlQ+PC9IMj48L1REPjwvVEFCTEU+PEJSPicp OyIpOwogIHBPcC53cml0ZWxuKCJ2ZW50YW5hLmRvY3VtZW50LndyaXRlKCc8Q0VOVEVSPlVz dGVkIGZpcm0mb2FjdXRlOyBzdSBjb250cmF0byBkZSBDb25leGkmb2FjdXRlO24gUGVyc29u YWwgQml0YWwgZWwgZCZpYWN1dGU7YTxCUj48Qj4iK0ZlY2hhKyI8L0I+IGEgbGFzIDxCPiIr SG9yYSsiPC9CPicpOyIpOwogIHBPcC53cml0ZWxuKCJ2ZW50YW5hLmRvY3VtZW50LndyaXRl KCcgY29uIGVsIG4mdWFjdXRlO21lcm8gZGUgRk9MSU86ICcpOyIpOwogIHBPcC53cml0ZWxu KCJ2ZW50YW5hLmRvY3VtZW50LndyaXRlKCc8Qj4iK0ZvbGlvKyI8L0I+LicpOyIpOwogIHBP cC53cml0ZWxuKCJ2ZW50YW5hLmRvY3VtZW50LndyaXRlKCc8L0NFTlRFUj4nKTsiKTsKICBw T3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVudC53cml0ZSgnPENFTlRFUj4nKTsiKTsKICBw T3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVudC53cml0ZSgnPEJSPjxGT05UIFNJWkU9LTI+ TGEgaW5mb3JtYWNpJm9hY3V0ZTtuIGxpc3RhZGEgZXMgc29sbyBkZSBjYXJhY3RlciBpbmZv cm1hdGl2bzwvRk9OVD48QlI+Jyk7Iik7CgogcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1l bnQud3JpdGUoJzxCUj4gUGFyYSBjdWFscXVpZXIgZHVkYSBvIGFjbGFyYWNp824gbm9zIHBv bmVtb3MgYSBzdXMg83JkZW5lcyBlbiA8Qj5jb250YWN0b0BiaXRhbC5jb20ubXggPC9CPm8g c2kgbG8gcHJlZmllcmUgcHVlZGUgY29tdW5pY2Fyc2UgYSBM7W5lYSBCaXRhbCBhIGxvcyB0 ZWzpZm9ub3MgNTcyMS0zMzkwIGRlc2RlIGVsIEQuRi4gbyBhbCAwMSA4MDAgNzEyNDgyNSBs YWRhIHNpbiBjb3N0byBkZXNkZSBlbCBpbnRlcmlvciBkZWwgcGHtcywgZGlnaXRlIGxhIG9w Y2nzbiAzIChBc2lzdGVuY2lhIFBlcnNvbmFsKSB5IHBvc3Rlcmlvcm1lbnRlIGxhIG9wY2nz biAzIChCaXRhbCBlbiBJbnRlcm5ldCkuIENvbiBndXN0byBsZSBhdGVuZGVyZW1vcy4gIDxC Uj48QlI+IDxGT05UIFNJWkU9Mj4gU2kgZGVzZWEgY2FtYmlhciBzdSBjbGF2ZSBkZSBjb3Jy ZW8gbyBkYXIgZGUgYmFqYSBlbCBzZXJ2aWNpbywgYWN1ZGEgYWwgbWVu+iBkZSBvdHJvcyBz ZXJ2aWNpb3MuIDwvRk9OVD48QlI+Jyk7Iik7CgogIHBPcC53cml0ZWxuKCJ2ZW50YW5hLmRv Y3VtZW50LndyaXRlKCc8QlI+Jyk7Iik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1l bnQud3JpdGUoJzxCPlNlbGVjY2lvbmUgbGEgb3BjaSZvYWN1dGU7biBQcmludCAoSW1wcmlt aXIpIGRlIHN1IE5hdmVnYWRvciBzaSBkZXNlYSBpbXByaW1pciBlc3RhIHBhbnRhbGxhLjwv Qj48QlI+Jyk7Iik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQud3JpdGUoJzxC Uj48Q0VOVEVSPjxBIEhSRUY9XCJqYXZhc2NyaXB0OnNlbGYuY2xvc2UoKVwiPiAiICsgbGln YTIoIkFjY2VzbyBhIGxhIEFwbGljYWNpJm9hY3V0ZTtuIikgKyAiIDwvQT4nKTsiKTsKICBw T3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVudC53cml0ZSgnPC9DRU5URVI+Jyk7Iik7CiAg cE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQud3JpdGUoJzwvQk9EWT4nKTsiKTsKICBw T3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVudC53cml0ZSgnPC9IVE1MPicpOyIpOwogIHBP cC53cml0ZWxuKCJ2ZW50YW5hLmRvY3VtZW50LmNsb3NlKCk7Iik7CiAgcE9wLndyaXRlbG4o In0iKTsKICBwT3Aud3JpdGVsbigiZWxzZSIpOwogIHBPcC53cml0ZWxuKCJhbGVydCgnT3Bj afNuIG5vIFNvcG9ydGFkYSBwb3IgTmV0Rm9yQWxsJykiKTsKICBwT3Aud3JpdGVsbigifSIp OwogIHBPcC53cml0ZWxuKCI8L1MiKyJDUklQVCIrIj4iKTsKIHRvcC5mcmFtZXNbM10uZG9j dW1lbnQuY2xvc2UoKQp9CgoKCgoKZnVuY3Rpb24gU2FsZG9zMSgpCnsgdmFyIHBPcD1udWxs OwogIHZhciBwSGVhZGVyPW51bGw7CiAgcEhlYWRlcj0gcGFyZW50LkdldFBvaW50ZXJIZCgp OyAvL1RyYWUgYXB1bnRhZG9yIGRlbCBoZWFkZXIgZXh0cmFlciBTZWdtZW50bwogIEZvbGlv PXBIZWFkZXIuY0ZvbGlvYzsKICBpZihwSGVhZGVyLmNGb2xpb2MgPT0gIk5OTk4iKXsKICAg ICAgIHBPcD10b3AuZnJhbWVzWzJdLmRvY3VtZW50OwogICAgICAgdG9wLmZyYW1lc1syXS5k b2N1bWVudC5vcGVuKCk7CiAgICAgICBwT3AuY2xlYXIoKTsKICAgICAgIHBPcC53cml0ZWxu KCI8SFRNTD48SEVBRD4iKTsKICAgICAgIHBPcC53cml0ZWxuKCc8TUVUQSBIVFRQLUVRVUlW PSJFeHBpcmVzIiBDT05URU5UPSIwIj4nKTsKICAgICAgIHBPcC53cml0ZWxuKCI8VElUTEU+ IFJlZnJlc2hTYWxkb3M8L1RJVExFPiA8L0hFQUQ+Iik7CiAgICAgICBwT3Aud3JpdGVsbign PEJPRFkgQkdDT0xPUj13aGl0ZSBURVhUPWJsYWNrJyk7CiAgICAgICBwT3Aud3JpdGVsbigi PEJSPjxCUj4iKTsKICAgICAgICAgIHRvcC5mcmFtZXNbMF0udGl0dWxvSFRNTCgiU0FMRE8g Q1VFTlRBIERFIENIRVFVRVMiLCBwT3ApOwoJICBwT3Aud3JpdGVsbigiPEJSPjxCUj4iKTsK ICAgICAgIHBPcC53cml0ZWxuKCI8L0JPRFk+PC9IVE1MPiIpOwogICAgICAgdG9wLmZyYW1l c1syXS5kb2N1bWVudC5jbG9zZSgpCiAgICAgICBTYWxkb3MoKTsgfQogIGVsc2V7IEZvbGlv Q29udHJhdG9DUEIoKTsgfQp9CgpmdW5jdGlvbiBRdWl0YUd1aW9uKGNhZGVuYSkKewogICAg ICAgIHZhciBjYWRmb3JtID0gIiI7CiAgICAgICAgdmFyIGk9MDsKICAgICAgICB2YXIgbGVu PTA7CiAgICAgICAgdmFyIG5vY2Vybz0wOwoKICAgICAgIGxlbiA9IGNhZGVuYS5sZW5ndGg7 CiAgICAgICBpPTA7CiAgICAgICB3aGlsZSAoY2FkZW5hLmNoYXJBdChpKSA9PSAnLScpIGkr KzsKICAgICAgIGZvciAoO2k8bGVuOyBpKyspIHsKICAgICAgICAgICAgICAgY2FkZm9ybT1j YWRmb3JtK2NhZGVuYS5jaGFyQXQoaSk7CiAgICAgICB9CiAgICAgICByZXR1cm4gY2FkZm9y bTsKfQoKZnVuY3Rpb24gUG9uTGlzdGFTYWxkb3MocE9wKSAvL1RhYmxhIGRlIFNhbGRvcwp7 ICAgICAgIHZhciBwTGlzdGE9bnVsbDsKCXZhciBpOwoJdmFyIGNvbnQ9MDsKCXZhciBwT2Jq PW51bGw7Cgl2YXIgVG90YWxTYWxkbz0wLjAwOwoJdmFyIFRvdGFsU2FsZG9uPTAuMDA7Cgl2 YXIgVG90YWxTYWxkb1NCQz0wLjAwOwoJdmFyIFRvdGFsU2FsZG9ETEw9MC4wMDsKCXZhciBU b3RhbFNhbGRvU0JDRExMPTAuMDA7Cgl2YXIgU2FsZG9DdWVudGE9IiI7Cgl2YXIgU2FsZG9T QkM9IiI7Cgl2YXIgaVRtcDMgPSAiICI7Cgl2YXIgaVRtcDQgPSAiICI7Cgl2YXIgaVRtcDNE TEwgPSAiICI7Cgl2YXIgaVRtcDRETEwgPSAiICI7Cgl2YXIgTnVtZXJvRGVDdWVudGE9IiAi OwoJdmFyIENVRU5UQT0iICI7Cgl2YXIgYXV4Y3RhPSIgIjsKCXBMaXN0YSA9IHBhcmVudC5H ZXRQb2ludGVyUmcoKTsKCWlmIChwTGlzdGEgPT0gbnVsbCkKCQlhbGVydCgiTGlzdGEgTnVs YSIpOwoJZWxzZSB7ICBpPTE7CgkJcE9iaiA9IHBMaXN0YVtpXTsKCQl3aGlsZSAocE9iaiAh PSBudWxsKSB7CgkJCQlpZiAoIHBPYmouY1Byb2R1Y3RvID09ICJEREEiICkgeyAgY29udCsr OyAgfQoJCQkJaSsrOyBwT2JqPXBMaXN0YVtpXTsgIH0KCQlpZiAoIGNvbnQgPiAwKSB7ICBp PTE7ICBwT2JqID0gcExpc3RhW2ldOwoJCQl3aGlsZSAocE9iaiAhPSBudWxsKSB7CgkJCQlp ZiAoIHBPYmouY1Byb2R1Y3RvID09ICJEREEiICkgewoJCQkJICAgU2FsZG9DdWVudGE9Rm9y bWF0ZWFTYWxkbyhwT2JqLmNzZG9fY3RhKTsKCQkJCSAgIFNhbGRvU0JDPUZvcm1hdGVhU2Fs ZG8ocE9iai5jc2RvX3NiYyk7CgkJCQkgICBOdW1lcm9EZUN1ZW50YT1RdWl0YUNlcm9zKHBP YmouY251bV9jdWVudGEpOwoJCQkJICAgQ1VFTlRBPVF1aXRhQ2Vyb3MyKE51bWVyb0RlQ3Vl bnRhKTsKCQkJCSAgIHBPcC53cml0ZWxuKCI8VFI+PFREIEFMSUdOPUNFTlRFUj48Rk9OVCBT SVpFPTIgQ09MT1I9JyMwMDAwMDAnPiIrTnVtZXJvRGVDdWVudGErIjwvRk9OVD48L1REPjxU RD48Rk9OVCBTSVpFPTIgQ09MT1I9JyMwMDAwMDAnPiIrcE9iai5jZGVzY19jdGErIjwvRk9O VD48L1REPjxURCBBTElHTj1SSUdIVD48Rk9OVCBTSVpFPTIgQ09MT1I9JyMwMDAwMDAnPiQi K1NhbGRvQ3VlbnRhKyI8L0ZPTlQ+PC9URD48VEQgQUxJR049UklHSFQ+PEZPTlQgU0laRT0y IENPTE9SPScjMDAwMDAwJz4gJCIrU2FsZG9TQkMrIjwvRk9OVD48L1REPjxURCBBTElHTj1D RU5URVI+PElOUFVUIFRZUEU9cmFkaW8gTkFNRT1zYWxkb3JlcyBvbkNsaWNrPXRvcC5mcmFt ZXNbMF0uRGVzcGxpZWdhU2FsZG9SZXN0cmluZ2lkbygiK0NVRU5UQSsiKTs+PC9URD48L1RS PiIpOwoKCQkJCQlpZiAoKHBPYmouY3Rwb19jdGEgPT0gJ0ExJykgfHwgKHBPYmouY3Rwb19j dGEgPT0gJ0EyJykgfHwgKHBPYmouY3Rwb19jdGEgPT0gJ0EzJykgfHwgKHBPYmouY3Rwb19j dGEgPT0gJzAwJykgfHwgKHBPYmouY3Rwb19jdGEgPT0gJzE1JykgfHwgKHBPYmouY3Rwb19j dGEgPT0gJzE2JykgfHwgKHBPYmouY3Rwb19jdGEgPT0gJzE3JykgfHwgKHBPYmouY3Rwb19j dGEgPT0gJzE4JykgfHwgKHBPYmouY3Rwb19jdGEgPT0gJzYxJykgfHwgKHBPYmouY3Rwb19j dGEgPT0gJzYyJykgfHwgKHBPYmouY3Rwb19jdGEgPT0gJzY1JykgfHwgKHBPYmouY3Rwb19j dGEgPT0gJzY2JykgfHwgKHBPYmouY3Rwb19jdGEgPT0gJzY5JykgfHwgKHBPYmouY3Rwb19j dGEgPT0gJzg1JykgfHwgKHBPYmouY3Rwb19jdGEgPT0gJzg3JykpIHsKCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdXhjdGEgPSBwT2JqLmNzZG9fY3RhOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2lnbm8gPSBhdXhjdGEuc3Vic3RyaW5nKDEsMCk7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzaWdubyA9PSAnLScpewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXhjdGEgPSBRdWl0YUd1aW9uKHBPYmou Y3Nkb19jdGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbFNh bGRvbj1wYXJzZUZsb2F0KFRvdGFsU2FsZG9uKStwYXJzZUZsb2F0KGF1eGN0YSk7ICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbFNhbGRvPXBhcnNlRmxv YXQoVG90YWxTYWxkbykrcGFyc2VGbG9hdChwT2JqLmNzZG9fY3RhKTsgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbFNhbGRvU0JDPXBhcnNl RmxvYXQoVG90YWxTYWxkb1NCQykrcGFyc2VGbG9hdChwT2JqLmNzZG9fc2JjKTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKCQkJICAgIAkgaWYgKChwT2JqLmN0cG9f Y3RhID09ICc2MycpIHx8IChwT2JqLmN0cG9fY3RhID09ICc2NCcpIHx8IChwT2JqLmN0cG9f Y3RhID09ICc2NycpIHx8IChwT2JqLmN0cG9fY3RhID09ICc2OCcpKSB7ICAKICAgICAgICAg ICAgICAgICAgICAgICBUb3RhbFNhbGRvU0JDRExMPVRvdGFsU2FsZG9TQkNETEwrJysnK3BP YmouY3Nkb19zYmM7CgkJCQkgICAgICAgVG90YWxTYWxkb0RMTD1Ub3RhbFNhbGRvRExMKycr JytwT2JqLmNzZG9fY3RhOwoJCQkJCX0KCQkJCX0gIGkrKzsgIHBPYmo9cExpc3RhW2ldOwoJ CQl9CiAgICAgICAgICAgICAgICAgICAgICBUb3RhbFNhbGRvPXBhcnNlRmxvYXQoVG90YWxT YWxkbyktcGFyc2VGbG9hdChUb3RhbFNhbGRvbik7CgkJCS8vVE9UQUwgTU9ORURBIE5BQ0lP TkFMCgkJdmFyIGlUbXAxID0gKE1hdGgucm91bmQoZXZhbChUb3RhbFNhbGRvKSoxMDAuMDAp KS8xMDAuMDA7CgkJdmFyIGlUbXAyID0gKE1hdGgucm91bmQoZXZhbChUb3RhbFNhbGRvU0JD KSoxMDAuMDApKS8xMDAuMDA7CgkJCWlUbXAzID0gIiAiK2lUbXAxOwoJCQlpZiAoIGlUbXAz LmluZGV4T2YoIi4iKSA9PSAtMSApCgkJCQlpVG1wMyA9IGlUbXAzICsgIi4wMCI7CgkJCWlm ICggKGlUbXAzLmxlbmd0aCAtIGlUbXAzLmluZGV4T2YoIi4iKSk8MyApCgkJCQlpVG1wMyA9 IGlUbXAzICsgIjAiOwoJCQlpVG1wMz1Gb3JtYXRlYVNhbGRvKGlUbXAzKTsKCQkJaVRtcDQg PSAiICIraVRtcDI7CgkJCWlmICggaVRtcDQuaW5kZXhPZigiLiIpID09IC0xICkKCQkJCWlU bXA0ID0gaVRtcDQgKyAiLjAwIjsKCQkJaVRtcDQ9Rm9ybWF0ZWFTYWxkbyhpVG1wNCk7CgkJ CXBPcC53cml0ZWxuKCI8VFI+PFREPjwvVEQ+PFREIEFMSUdOPVJJR0hUPjxCPjxGT05UIFNJ WkU9MiBDT0xPUj1ibGFjaz5Ub3RhbCBNLk48L0ZPTlQ+PC9CPjwvVEQ+PFREIEFMSUdOPVJJ R0hUPjxCPjxGT05UIFNJWkU9MiBDT0xPUj1ibGFjaz4kIitpVG1wMysiPC9GT05UPjwvQj48 L1REPjxURCBBTElHTj1SSUdIVD4gPC9URD4iKTsKCQkvL1RPVEFMIERPTEFSRVMKCXZhciBp VG1wMURMTCA9IChNYXRoLnJvdW5kKGV2YWwoVG90YWxTYWxkb0RMTCkqMTAwLjAwKSkvMTAw LjAwOwoJdmFyIGlUbXAyRExMID0gKE1hdGgucm91bmQoZXZhbChUb3RhbFNhbGRvU0JDRExM KSoxMDAuMDApKS8xMDAuMDA7CgkJCWlUbXAzRExMID0gIiAiK2lUbXAxRExMOwoJCQlpZiAo IGlUbXAzRExMLmluZGV4T2YoIi4iKSA9PSAtMSApCgkJCQlpVG1wM0RMTCA9IGlUbXAzRExM ICsgIi4wMCI7CgkJCWlmICggKGlUbXAzRExMLmxlbmd0aCAtIGlUbXAzRExMLmluZGV4T2Yo Ii4iKSk8MyApCgkJCQlpVG1wM0RMTCA9IGlUbXAzRExMICsgIjAiOwoJCQlpVG1wM0RMTD1G b3JtYXRlYVNhbGRvKGlUbXAzRExMKTsKCQkJaVRtcDRETEwgPSAiICIraVRtcDJETEw7CgkJ CWlmICggaVRtcDRETEwuaW5kZXhPZigiLiIpID09IC0xICkKCQkJCWlUbXA0RExMID0gaVRt cDRETEwgKyAiLjAwIjsKCQkJaVRtcDRETEw9Rm9ybWF0ZWFTYWxkbyhpVG1wNERMTCk7CgkJ CXBPcC53cml0ZWxuKCI8VFI+PFREPjwvVEQ+PFREIEFMSUdOPVJJR0hUPjxCPjxGT05UIFNJ WkU9MiBDT0xPUj1ibGFjaz5Ub3RhbCBETEw8L0ZPTlQ+PC9CPjwvVEQ+PFREIEFMSUdOPVJJ R0hUPjxCPjxGT05UIFNJWkU9MiBDT0xPUj1ibGFjaz4kIitpVG1wM0RMTCsiPC9GT05UPjwv Qj48L1REPjxURCBBTElHTj1SSUdIVD4gPC9URD4iKTsKICAgIGlmIChwYXJzZUZsb2F0KGlU bXAzRExMKT09MCAmJiBwYXJzZUZsb2F0KGlUbXAzKT09MCkKICAgICAgIHsgYWxlcnQoIlNh bGRvcyBubyBkaXNwb25pYmxlcyBwb3IgZWwgbW9tZW50byIpOyB9IH0KICAgIGVsc2UgeyBh bGVydCgiT3BlcmFjafNuIG5vIGRpc3BvbmlibGUgcG9yIGVsIG1vbWVudG8sIEludGVudGUg beFzIHRhcmRlIik7CgkJCUFjY0ltcD0xOyAgfSAgfQp9CmZ1bmN0aW9uIERlc3BsaWVnYVNh bGRvUmVzdHJpbmdpZG8oY3VlbnRhKSAvL0VqZWN1dGEgUlBDIGluM2I2MDgKeyBpZiAobmF2 aWdhdG9yLmFwcFZlcnNpb24ubGFzdEluZGV4T2YoJzMuMCBOQVZJTyAoODsgNyknKT09IC0x KQogICAgICAgIHZlbnRhbmE9b3BlbigiL2NnaS1iaW4vY29ucGVyL2NsaWVudGUvY2dpLWJp bi9jZ2lzYWxyZXM/Y3VlbnRhPSIrY3VlbnRhKyIgIiwidG1wV2luZG93Iiwic2Nyb2xsYmFy cz15ZXMsd2lkdGg9NTAwLGhlaWdodD00MDAsdG9vbGJhcj15ZXMsbWVudWJhcj15ZXMiKTsK ZWxzZSAgIGFsZXJ0KCdPcGNp824gbm8gU29wb3J0YWRhIHBvciBOZXRGb3JBbGwnKTsgfQpm dW5jdGlvbiBGb3JtYXRlYVNhbGRvKGNhZGVuYSkKeyAgICAgICB2YXIgY2FkZm9ybSA9ICIg IjsKCXZhciBjYWRyZXR1cm4gPSAiICI7Cgl2YXIgaT0wOwoJdmFyIGNvbnQ9MAoJdmFyIGxl bj0wOwoJbGVuID0gY2FkZW5hLmxlbmd0aDsKCWNhZGZvcm09Y2FkZm9ybSsoY2FkZW5hLmNo YXJBdChsZW4tMSkpOwoJY2FkZm9ybT1jYWRmb3JtKyhjYWRlbmEuY2hhckF0KGxlbi0yKSk7 CgljYWRmb3JtPWNhZGZvcm0rKGNhZGVuYS5jaGFyQXQobGVuLTMpKTsKCWZvciAoaT0obGVu LTQpLCBjb250PTA7IGk+PTA7IGktLSwgY29udCsrKSB7CgkJaWYgKCBjYWRlbmEuY2hhckF0 KGkpICE9ICcgJyApIHsKCQkJaWYgKCBjb250ID09IDMgKSB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICggY2FkZW5hLmNoYXJBdChpKSA9PSAiLSIpCgkJCQljYWRmb3Jt PWNhZGZvcm0rJyAnK2NhZGVuYS5jaGFyQXQoaSk7CiAgICAgIAkJCSAgICAgIGVsc2UgewoJ CQkJY2FkZm9ybT1jYWRmb3JtKycsJytjYWRlbmEuY2hhckF0KGkpOwoJCQkJY29udCA9IDA7 IH0gIH0KCQkJZWxzZSAgaWYgKCBjYWRlbmEuY2hhckF0KGkpID09ICItIikKCQkJCWNhZGZv cm09Y2FkZm9ybSsnICcrY2FkZW5hLmNoYXJBdChpKTsKICAgICAgCQkJICAgICAgZWxzZSAK CQkJCWNhZGZvcm09Y2FkZm9ybStjYWRlbmEuY2hhckF0KGkpOwoJCX0KCQllbHNlICBjb250 LS07ICB9Cglmb3IgKGk9KGNhZGZvcm0ubGVuZ3RoLTEpOyBpPj0wOyBpLS0pCgkJIGNhZHJl dHVybj1jYWRyZXR1cm4rY2FkZm9ybS5jaGFyQXQoaSk7CglyZXR1cm4gY2FkcmV0dXJuOwp9 CmZ1bmN0aW9uIFF1aXRhQ2Vyb3MoY2FkZW5hKQp7ICAgICAgIHZhciBjYWRmb3JtID0gIiI7 Cgl2YXIgaT0wOwoJdmFyIGxlbj0wOwoJdmFyIG5vY2Vybz0wOwoJbGVuID0gY2FkZW5hLmxl bmd0aDsKCWk9MDsKCXdoaWxlIChjYWRlbmEuY2hhckF0KGkpID09ICcwJykKCQkJaSsrOwoJ Zm9yICg7aTxsZW47IGkrKykgewoJCWNhZGZvcm09Y2FkZm9ybStjYWRlbmEuY2hhckF0KGkp OwoJfQoJaWYgKCBjYWRmb3JtLmxlbmd0aCA8IDEwKQoJY2FkZm9ybSA9ICcwJytjYWRmb3Jt OwoJcmV0dXJuIGNhZGZvcm07Cn0KZnVuY3Rpb24gUXVpdGFDZXJvczIoY2FkZW5hKQp7ICAg ICAgIHZhciBjYWRmb3JtID0gIiI7Cgl2YXIgaT0wOwoJdmFyIGxlbj0wOwoJbGVuID0gY2Fk ZW5hLmxlbmd0aDsKCWk9MDsKCXdoaWxlIChjYWRlbmEuY2hhckF0KGkpID09ICcwJykgIGkr KzsKCWZvciAoO2k8bGVuOyBpKyspIHsgIGNhZGZvcm09Y2FkZm9ybStjYWRlbmEuY2hhckF0 KGkpOyAgfQoJcmV0dXJuIGNhZGZvcm07Cn0KZnVuY3Rpb24gQWN0dWFsaXphU2FsZG8obmN1 ZW50YSxzYWxkbykKeyAgIHZhciBwTGlzdGE9bnVsbDsKCXZhciBwT2JqPW51bGw7CglwTGlz dGEgPSBwYXJlbnQuR2V0UG9pbnRlclJnKCk7CglpZiAocExpc3RhID09IG51bGwpCgkJYWxl cnQoIkxpc3RhIE51bGEiKTsKCWVsc2UgeyAgdmFyIGk9MTsKCQlwT2JqID0gcExpc3RhW2ld OwoJCXdoaWxlIChwT2JqICE9IG51bGwpIHsKCSBpZiAocGFyc2VGbG9hdChwT2JqLmNudW1f Y3VlbnRhKSA9PSBwYXJzZUZsb2F0KG5jdWVudGEpKQogICAgICAgICAgICAgICBwT2JqLmNz ZG9fY3RhPXNhbGRvOwoJCQlpKys7ICBwT2JqPXBMaXN0YVtpXTsgIH0KCX0KfQovKkZ1bmNp b24gcGFyYSBtb3N0cmFyIGxhIGxpc3RhIGRlIGxhcyBjdWVudGFzKi8KZnVuY3Rpb24gQWN0 dWFMaWdEZXMobmN1ZW50YSkKewogICB2YXIgcExpc3RhPW51bGw7CiAgIHZhciBwT2JqMjsK ICAgdmFyIGluZGljZT0xOwogICB2YXIgaT0xOwoKICAgIHBPYmoyPSBuZXcgcGFyZW50Lm1h a2VBcnJheSAoNDApOwogICAgcExpc3RhID0gcGFyZW50LkdldFBvaW50ZXJSZygpOwogICAg d2hpbGUgKHBMaXN0YVtpbmRpY2VdIT0gbnVsbCkgCiAgICAgewogICAgICAgaWYocExpc3Rh W2luZGljZV0uY251bV9jdWVudGEhPW5jdWVudGEpCiAgICAgICAgIHsgIAogICAgICAgICAg cE9iajJbaSsrXT1wTGlzdGFbaW5kaWNlXTsKICAgICAgICAgfQogICAgICAgaW5kaWNlKys7 CiAgICAgfQogICAgIHBhcmVudC5PYmpzQ21wPXBPYmoyOwp9CgpmdW5jdGlvbiBBY3R1YUxp Z2EocGlkUmVnLG5jdWVudGEsZmlybWEsY29kX3JldCxwcm9kdWN0byx0cG9fY3RhLGRlc2Nf Y3RhLHNkb19jdGEsc2RvX3NiYyxjZW5sYWNlKQp7CQogICB2YXIgcExpc3RhPW51bGw7CiAg IHZhciBwT2JqPW51bGw7CiAgIHZhciBpbmRpY2UgPSAxOwogICBwTGlzdGEgPSBwYXJlbnQu R2V0UG9pbnRlclJnKCk7CiAgIHBPYmogPSBwTGlzdGFbaW5kaWNlXTsKICAgd2hpbGUgKHBP YmogIT0gbnVsbCkgCiAgIHsJaW5kaWNlID0gaW5kaWNlICsgMTsKCXBPYmo9cExpc3RhW2lu ZGljZV07CiAgICB9CiAgIHBPYmogPSBuZXcgcGFyZW50Lk9iakNhbXBhKHBpZFJlZyxuY3Vl bnRhLGZpcm1hLGNvZF9yZXQscHJvZHVjdG8sdHBvX2N0YSxkZXNjX2N0YSxzZG9fY3RhLHNk b19zYmMsY2VubGFjZSk7CiAgIHBMaXN0YVtpbmRpY2VdID0gcE9iajsKICAgcGFyZW50Lk9i anNDbXAgPSBwTGlzdGE7Cn0KCi8qRnVuY2lvbiBwYXJhIG1vc3RyYXIgbGEgbGlzdGEgZGUg bGFzIGN1ZW50YXMqLwoKZnVuY3Rpb24gYWRpY2lvbmFDdWVudGEobmN1ZW50YSxzYWxkbykK ewl2YXIgcExpc3RhPW51bGw7Cgl2YXIgcE9iaj1udWxsOwoJcExpc3RhID0gcGFyZW50Lkdl dFBvaW50ZXJSZygpOwoJdmFyIGluZGljZSA9IDE7CglwT2JqID0gcExpc3RhW2luZGljZV07 Cgl3aGlsZSAocE9iaiAhPSBudWxsKSAKCXsJaW5kaWNlID0gaW5kaWNlICsgMTsKCQlwT2Jq PXBMaXN0YVtpbmRpY2VdOwoJfQoJcE9iaiA9IG5ldyBwYXJlbnQuT2JqQ2FtcGEoJ0InLG5j dWVudGEsJzEnLCcwJywnQ0RBJywnUVEnLCdJTlYuIERVTU1ZICAgICAnLHNhbGRvLCcwLjAw JywnTk8nKTsKCXBMaXN0YVtpbmRpY2VdID0gcE9iajsKCXBhcmVudC5PYmpzQ21wID0gcExp c3RhOwp9CgoKCmZ1bmN0aW9uIFNhbGRvcygpCnsgdmFyIHRtcE9iakNtcDsKICB2YXIgcE9w PW51bGw7CiAgdmFyIHBIZWFkZXI9bnVsbDsKICBwSGVhZGVyPSBwYXJlbnQuR2V0UG9pbnRl ckhkKCk7CiAgRmVjaGE9cEhlYWRlci5jRmVjaGE7CiAgSG9yYT1wSGVhZGVyLmNIb3JhOwoK ICBwT3A9dG9wLmZzYWxkb3MuZG9jdW1lbnQ7CiAgdG9wLmZzYWxkb3MuZG9jdW1lbnQub3Bl bigpCiAgcE9wLmNsZWFyKCk7IAogIHBPcC53cml0ZWxuKCI8SFRNTD4gPEhFQUQ+Iik7CiAg cE9wLndyaXRlbG4oJzxNRVRBIEhUVFAtRVFVSVY9IkV4cGlyZXMiIENPTlRFTlQ9IjAiPicp OwogIHBPcC53cml0ZWxuKCI8VElUTEU+IFNhbGRvcyA8L1RJVExFPiA8L0hFQUQ+Iik7CiAg cE9wLndyaXRlbG4oIjxCT0RZIEJHQ09MT1I9d2hpdGUgVEVYVD1ibGFjaz4iKTsKIGlmIChE ZXNUaXQgPT0gMCkKIHsgcE9wLndyaXRlbG4oIjxGT1JNIE5BTUU9ZlRpdHVsb0NvbnRyYXRv IE1FVEhPRD0nUE9TVCcgVEFSR0VUPWZvcGNpb25lcyBBQ1RJT049b3BjaW9uZXMuaHRtPiIp OwogIHBPcC53cml0ZWxuKCI8SU5QVVQgVFlQRT1ISURERU4gTkFNRT1vY3VsdG8+Iik7CiAg cE9wLndyaXRlbG4oIjwvRk9STT5cbiIpOwogIHBPcC53cml0ZWxuKCI8UyIrIkNSSVBUIisi PlxuIik7CiAgLy9wT3Aud3JpdGVsbignZG9jdW1lbnQuZlRpdHVsb0NvbnRyYXRvLnN1Ym1p dCgpO1xuJyk7CiAgcE9wLndyaXRlbG4oIjwvUyIrIkNSSVBUIisiPlxuIik7IAogIERlc1Rp dD0xOyB9CiAgcE9wLndyaXRlbG4oIjxGT1JNIE5BTUU9ZlNhbGRvcz4iKTsKICBwT3Aud3Jp dGVsbigiPENFTlRFUj4iKTsKICBwT3Aud3JpdGVsbigiPFRBQkxFIEJPUkRFUj0yIFdJRFRI PTgwJT4iKTsKICAgIHBPcC53cml0ZWxuKCI8VFI+PFREIEJHQ09MT1I9TkFWWSBBTElHTj1D RU5URVI+PEZPTlQgQ09MT1I9V0hJVEUgU0laRT0yPjxCPiIrcEhlYWRlci5jbm9tYnJlKyI8 L0I+PC9GT05UPjwvVEQ+PFREIGFsaWduPWNlbnRlcj48QSBIUkVGPSdqYXZhc2NyaXB0OlBy ZWltcCh0aGlzLmZvcm0pOyc+PEZPTlQgU0laRT0xIENPTE9SPVwiI0ZGMDAwMFwiIEZBQ0U9 XCJIRUxWRVRJQ0FcIj48Qj5QUkVJTVBSSU1JUjwvQj48L0ZPTlQ+PC9BPjwvVEQ+Iik7CiAg cE9wLndyaXRlbG4oJzxURCBhbGlnbj0iY2VudGVyIj48QSBIUkVGPSJqYXZhc2NyaXB0OkF5 dWRhKCk7Ij48Rk9OVCBTSVpFPTEgQ09MT1I9XCIjRkYwMDAwXCIgRkFDRT1cIkhFTFZFVElD QVwiPjxCPkFZVURBPC9CPjwvRk9OVD48L0E+PC9URD48L1RSPjwvVEFCTEU+PEJSPicpOwog IHBPcC53cml0ZWxuKCI8VEFCTEUgQk9SREVSPTIgV0lEVEg9ODAlPiIpOwogIHBPcC53cml0 ZWxuKCI8VFI+PFREIGFsaWduPWNlbnRlciBCR0NPTE9SPU5BVlk+IDxGT05UIFNJWkU9MiBD T0xPUj1XSElURT48Qj5OdW0uIEN1ZW50YTwvQj48L0ZPTlQ+PC9URD48VEQgYWxpZ249Y2Vu dGVyIEJHQ09MT1I9TkFWWT48Rk9OVCBTSVpFPTIgQ09MT1I9V0hJVEU+PEI+IERlc2NyaXBj aSZvYWN1dGU7biA8L0I+PC9GT05UPjwvVEQ+PFREIGFsaWduPWNlbnRlciBCR0NPTE9SPU5B Vlk+IDxGT05UIFNJWkU9MiBDT0xPUj1XSElURT48Qj4gU2FsZG8gPC9CPjwvRk9OVD48L1RE PjxURCBhbGlnbj1jZW50ZXIgQkdDT0xPUj1OQVZZPiA8Rk9OVCBTSVpFPTIgQ09MT1I9V0hJ VEU+PEI+IFNhbGRvIHBvciBhcGxpY2FyIDwvQj48L0ZPTlQ+PC9URD48VEQgYWxpZ249ZW50 ZXIgQkdDT0xPUj0nTkFWWSc+PEZPTlQgU0laRT0yIENPTE9SPSd3aGl0ZSc+PEI+RGV0YWxs ZTwvQj48L0ZPTlQ+PC9URD48L1RSPiIpOwogIFBvbkxpc3RhU2FsZG9zKHBPcCk7IAogIHBP cC53cml0ZWxuKCI8L1RBQkxFPiIpOwogIHBPcC53cml0ZWxuKCI8L0NFTlRFUj4iKTsKICBw T3Aud3JpdGVsbigiPC9GT1JNPiIpOwogIHBPcC53cml0ZWxuKCI8UyIrIkNSSVBUIisiPiIp OwogIHBPcC53cml0ZWxuKCJmdW5jdGlvbiBBeXVkYSgpIik7CiAgcE9wLndyaXRlbG4oInsi KTsKICBwT3Aud3JpdGVsbigiaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmxhc3RJbmRleE9m KCczLjAgTkFWSU8gKDg7IDcpJyk9PSAtMSkiKTsKICBwT3Aud3JpdGVsbigib3BlbignL2Nv bnBlci9hX3ByZWltcHJlLmh0bScsJ0FZVURBJywnY29uZmlybSxyZXNpemFibGU9bm8sd2lk dGg9NDAwLGhlaWdodD0xMzAnKTsiKTsKICBwT3Aud3JpdGVsbigiZWxzZSIpOwogIHBPcC53 cml0ZWxuKCJhbGVydCgnT3BjafNuIG5vIFNvcG9ydGFkYSBwb3IgTmV0Rm9yQWxsJykiKTsK ICBwT3Aud3JpdGVsbigifSIpOwogIHBPcC53cml0ZWxuKCJmdW5jdGlvbiBQcmVpbXAoZm9y bWEpIik7CiAgcE9wLndyaXRlbG4oInsiKTsKICBwT3Aud3JpdGVsbigiaWYgKG5hdmlnYXRv ci5hcHBWZXJzaW9uLmxhc3RJbmRleE9mKCczLjAgTkFWSU8gKDg7IDcpJyk9PSAtMSkiKTsK ICBwT3Aud3JpdGVsbigieyIpOwogIHBPcC53cml0ZWxuKCJ2YXIgdmVudGFuYT1vcGVuKCcn LCd0bXBXaW5kb3cnLCdzY3JvbGxiYXJzPXllcyx3aWR0aD02MDAsaGVpZ2h0PTM1MCx0b29s YmFyPXllcyxtZW51YmFyPXllcycpOyIpOwogIHBPcC53cml0ZWxuKCJ2YXIgcE9wPXZlbnRh bmEuZG9jdW1lbnQ7Iik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQub3Blbigp Iik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQuY2xlYXIoKTsiKTsKICBwT3Au d3JpdGVsbigidmFyIHBMaXN0YT1udWxsOyIpOwogIHBPcC53cml0ZWxuKCJ2YXIgaTsiKTsK ICBwT3Aud3JpdGVsbigidmFyIGNvbnQ9MDsiKTsKICBwT3Aud3JpdGVsbigidmFyIHBPYmo9 bnVsbDsiKTsKICBwT3Aud3JpdGVsbigidmFyIFRvdGFsU2FsZG89MC4wMDsiKTsKICBwT3Au d3JpdGVsbigidmFyIFRvdGFsU2FsZG9TQkM9MC4wMDsiKTsKICBwT3Aud3JpdGVsbigidmFy IFRvdGFsU2FsZG9ETEw9MC4wMDsiKTsKICBwT3Aud3JpdGVsbigidmFyIFRvdGFsU2FsZG9T QkNETEw9MC4wMDsiKTsKICBwT3Aud3JpdGVsbigidmFyIFNhbGRvQ3VlbnRhPScnOyIpOwog IHBPcC53cml0ZWxuKCJ2YXIgU2FsZG9TQkM9Jyc7Iik7CiAgcE9wLndyaXRlbG4oInZhciBp VG1wMT0nICc7Iik7CiAgcE9wLndyaXRlbG4oInZhciBpVG1wMj0nICc7Iik7CiAgcE9wLndy aXRlbG4oInZhciBpVG1wMz0nICc7Iik7CiAgcE9wLndyaXRlbG4oInZhciBpVG1wND0nICc7 Iik7CiAgcE9wLndyaXRlbG4oInZhciBpVG1wMURMTD0nICc7Iik7CiAgcE9wLndyaXRlbG4o InZhciBpVG1wMkRMTD0nICc7Iik7CiAgcE9wLndyaXRlbG4oInZhciBpVG1wM0RMTD0nICc7 Iik7CiAgcE9wLndyaXRlbG4oInZhciBpVG1wNERMTD0nICc7Iik7CiAgcE9wLndyaXRlbG4o InZhciBOdW1lcm9EZUN1ZW50YT0nJzsiKTsKICBwT3Aud3JpdGVsbigidmVudGFuYS5kb2N1 bWVudC53cml0ZSgnPEhUTUw+Jyk7Iik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1l bnQud3JpdGUoJzxCT0RZIEJHQ09MT1I9V0hJVEU+Jyk7Iik7CiAgcE9wLndyaXRlbG4oInZl bnRhbmEuZG9jdW1lbnQud3JpdGUoJzxUQUJMRSBCT1JERVI9MD48VEQ+PEZPTlQgU0laRT0y IENPTE9SPVwiRkZDQzAwXCIgRkFDRT1cIkhFTFZFVElDQVwiPjxCPkNPTkVYSU9OPC9CPjwv Rk9OVD48QlI+PEZPTlQgU0laRT0zIENPTE9SPVwiI0ZGMDAwMFwiIEZBQ0U9XCJIRUxDRVRJ Q0FcIj48Qj5QZXJzb25hbDwvQj48L0ZPTlQ+PEJSPjxGT05UIFNJWkU9MiBDT0xPUj1cIiMw MDAwMDBcIiBGQUNFPVwiSEVMVkVUSUNBXCI+PEI+QklUQUw8L0I+PC9GT05UPjwvVEQ+Jyk7 Iik7CiAgcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQud3JpdGUoJzxURD48SDI+PEZP TlQgQ09MT1I9Ymx1ZT5Db25leGkmb2FjdXRlO24gUGVyc29uYWwgQml0YWw8L0ZPTlQ+PC9I Mj48L1REPjwvVEFCTEU+PEJSPicpOyIpOwogIHBPcC53cml0ZWxuKCJ2ZW50YW5hLmRvY3Vt ZW50LndyaXRlKCc8Q0VOVEVSPlVzdGVkIHJlYWxpeiZvYWN1dGU7IHVuYSBDb25zdWx0YSBk ZSBTYWxkb3MgZGUgQ3VlbnRhcyBkZSBDaGVxdWVzIGVsIGQmaWFjdXRlO2E8QlI+PEI+IiAr RmVjaGErIjwvQj4gYSBsYXMgPEI+IitIb3JhKyI8L0I+IDwvQ0VOVEVSPicpOyIpOwogIHBP cC53cml0ZWxuKCJ2ZW50YW5hLmRvY3VtZW50LndyaXRlKCc8QlI+PENFTlRFUj4nKTsiKTsK ICBwT3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVudC53cml0ZSgnPFRBQkxFIEJPUkRFUj0y PicpOyIpOwogIHBPcC53cml0ZWxuKCJ2ZW50YW5hLmRvY3VtZW50LndyaXRlKCc8VFI+PFRE IGFsaWduPWNlbnRlciBCR0NPTE9SPU5BVlk+PEZPTlQgU0laRT0yIENPTE9SPVdISVRFPjxC Pk51bS5DdWVudGE8L0I+PC9GT05UPjwvVEQ+PFREIGFsaWduPWNlbnRlciBCR0NPTE9SPU5B Vlk+PEZPTlQgU0laRT0yIENPTE9SPVdISVRFPjxCPkRlc2NyaXBjaSZvYWN1dGU7bjwvQj48 L0ZPTlQ+PC9URD48VEQgYWxpZ249Y2VudGVyIEJHQ09MT1I9TkFWWT48Rk9OVCBTSVpFPTIg Q09MT1I9V0hJVEU+PEI+U2FsZG88L0I+PC9GT05UPjwvVEQ+PFREIGFsaWduPWNlbnRlciBC R0NPTE9SPU5BVlk+PEZPTlQgU0laRT0yIENPTE9SPVdISVRFPjxCPlNhbGRvIHBvciBBcGxp Y2FyPC9CPjwvRk9OVD48L1REPjwvVFI+Jyk7Iik7CglwTGlzdGEgPSBwYXJlbnQuR2V0UG9p bnRlclJnKCk7CiAgICAgICAgY29udD0wOwoJcE9iaj1udWxsOwoJVG90YWxTYWxkbz0wLjAw OwoJVG90YWxTYWxkb249MC4wMDsKCVRvdGFsU2FsZG9TQkM9MC4wMDsKCVRvdGFsU2FsZG9E TEw9MC4wMDsKCVRvdGFsU2FsZG9TQkNETEw9MC4wMDsKCVNhbGRvQ3VlbnRhPSIiOwoJU2Fs ZG9TQkM9IiI7CglpVG1wMyA9ICIgIjsKCWlUbXA0ID0gIiAiOwoJaVRtcDNETEwgPSAiICI7 CglpVG1wNERMTCA9ICIgIjsKCU51bWVyb0RlQ3VlbnRhPSIgIjsKICAgICAgICBhdXhjdGE9 IiAiOwoJaWYgKHBMaXN0YSA9PSBudWxsKQoJCWFsZXJ0KCJMaXN0YSBOdWxhIik7CgllbHNl IHsKICAgICAgICAgaT0xOwoJCXBPYmogPSBwTGlzdGFbaV07CgkJd2hpbGUgKHBPYmogIT0g bnVsbCkgewoJCQkJaWYgKCBwT2JqLmNQcm9kdWN0byA9PSAiRERBIiApIHsKCQkgICAgICAg ICAgICAgICAgICAgY29udCsrOwoJCQkJfQoJCQkJaSsrOwoJCQkJcE9iaj1wTGlzdGFbaV07 CgkJfQoJCWlmICggY29udCA+IDApIHsKCQkJaT0xOwoJCQlwT2JqID0gcExpc3RhW2ldOwoJ CQl3aGlsZSAocE9iaiAhPSBudWxsKSB7CgkJCQlpZiAoIHBPYmouY1Byb2R1Y3RvID09ICJE REEiICkgewoJCQkgICAgICAgIFNhbGRvQ3VlbnRhPUZvcm1hdGVhU2FsZG8ocE9iai5jc2Rv X2N0YSk7CgkJCQkJU2FsZG9TQkM9Rm9ybWF0ZWFTYWxkbyhwT2JqLmNzZG9fc2JjKTsKCQkJ CQlOdW1lcm9EZUN1ZW50YT1RdWl0YUNlcm9zKHBPYmouY251bV9jdWVudGEpOwogICAgICAg ICAgICAgICAgICAgIHBPcC53cml0ZWxuKCJ2ZW50YW5hLmRvY3VtZW50LndyaXRlKCc8VFI+ PFREIEFMSUdOPUNFTlRFUj48Rk9OVCBTSVpFPTIgQ09MT1I9IzAwMDAwMD4iK051bWVyb0Rl Q3VlbnRhKyI8L0ZPTlQ+PC9URD48VEQ+PEZPTlQgU0laRT0yIENPTE9SPSMwMDAwMDA+Iitw T2JqLmNkZXNjX2N0YSsiPC9GT05UPjwvVEQ+PFREIEFMSUdOPVJJR0hUPjxGT05UIFNJWkU9 MiBDT0xPUj0jMDAwMDAwPiQiK1NhbGRvQ3VlbnRhKyI8L0ZPTlQ+PC9URD48VEQgQUxJR049 UklHSFQ+PEZPTlQgU0laRT0yIENPTE9SPSMwMDAwMDA+ICQiK1NhbGRvU0JDKyI8L0ZPTlQ+ PC9URD4nKTsiKTsKCgkJCQkJaWYgKChwT2JqLmN0cG9fY3RhID09ICdBMScpIHx8IChwT2Jq LmN0cG9fY3RhID09ICdBMicpIHx8IChwT2JqLmN0cG9fY3RhID09ICdBMycpIHx8IChwT2Jq LmN0cG9fY3RhID09ICcwMCcpIHx8IChwT2JqLmN0cG9fY3RhID09ICcxNScpIHx8IChwT2Jq LmN0cG9fY3RhID09ICcxNicpIHx8IChwT2JqLmN0cG9fY3RhID09ICcxNycpIHx8IChwT2Jq LmN0cG9fY3RhID09ICcxOCcpIHx8IChwT2JqLmN0cG9fY3RhID09ICc2MScpIHx8IChwT2Jq LmN0cG9fY3RhID09ICc2MicpIHx8IChwT2JqLmN0cG9fY3RhID09ICc2NScpIHx8IChwT2Jq LmN0cG9fY3RhID09ICc2NicpIHx8IChwT2JqLmN0cG9fY3RhID09ICc2OScpIHx8IChwT2Jq LmN0cG9fY3RhID09ICc4NScpIHx8IChwT2JqLmN0cG9fY3RhID09ICc4NycpKSB7CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV4Y3RhID0gcE9iai5jc2RvX2N0YTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25vID0gYXV4Y3RhLnN1YnN0cmluZygx LDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2lnbm8gPT0gJy0nKXsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV4Y3RhID0gUXVpdGFHdWlv bihwT2JqLmNzZG9fY3RhKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VG90YWxTYWxkb249cGFyc2VGbG9hdChUb3RhbFNhbGRvbikrcGFyc2VGbG9hdChhdXhjdGEp OyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG90YWxTYWxkbz1w YXJzZUZsb2F0KFRvdGFsU2FsZG8pK3BhcnNlRmxvYXQocE9iai5jc2RvX2N0YSk7ICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG90YWxTYWxkb1NC Qz1wYXJzZUZsb2F0KFRvdGFsU2FsZG9TQkMpK3BhcnNlRmxvYXQocE9iai5jc2RvX3NiYyk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCQkJCQlpZiAoKHBPYmouY3Rw b19jdGEgPT0gJzYzJykgfHwgKHBPYmouY3Rwb19jdGEgPT0gJzY0JykgfHwgKHBPYmouY3Rw b19jdGEgPT0gJzY3JykgfHwgKHBPYmouY3Rwb19jdGEgPT0gJzY4JykpIHsgIAoJCQkJCVRv dGFsU2FsZG9TQkNETEw9VG90YWxTYWxkb1NCQ0RMTCsnKycrcE9iai5jc2RvX3NiYzsKCQkJ CSAgICBUb3RhbFNhbGRvRExMPVRvdGFsU2FsZG9ETEwrJysnK3BPYmouY3Nkb19jdGE7CgkJ CQkJfQoJCQkJfQoJCQkJaSsrOwoJCQkJcE9iaj1wTGlzdGFbaV07CgkJCX0KCSAgICAgICAg VG90YWxTYWxkbz1wYXJzZUZsb2F0KFRvdGFsU2FsZG8pLXBhcnNlRmxvYXQoVG90YWxTYWxk b24pOwkKCQkgICAgLy9UT1RBTCBNT05FREEgTkFDSU9OQUwKCQkJaVRtcDEgPSAoTWF0aC5y b3VuZChldmFsKFRvdGFsU2FsZG8pKjEwMC4wMCkpLzEwMC4wMDsKCQkJaVRtcDIgPSAoTWF0 aC5yb3VuZChldmFsKFRvdGFsU2FsZG9TQkMpKjEwMC4wMCkpLzEwMC4wMDsKCQkJaVRtcDMg PSAiICIraVRtcDE7CgkJCWlmICggaVRtcDMuaW5kZXhPZigiLiIpID09IC0xICkKCQkJCWlU bXAzID0gaVRtcDMgKyAiLjAwIjsKCQkJaWYgKCAoaVRtcDMubGVuZ3RoIC0gaVRtcDMuaW5k ZXhPZigiLiIpKTwzICkKCQkJCWlUbXAzID0gaVRtcDMgKyAiMCI7CgkJCWlUbXAzPUZvcm1h dGVhU2FsZG8oaVRtcDMpOwoJCQlpVG1wNCA9ICIgIitpVG1wMjsKCQkJaWYgKCBpVG1wNC5p bmRleE9mKCIuIikgPT0gLTEgKQoJCQkJaVRtcDQgPSBpVG1wNCArICIuMDAiOwoJCQlpVG1w ND1Gb3JtYXRlYVNhbGRvKGlUbXA0KTsKICAgICAgICAgICAgcE9wLndyaXRlbG4oInZlbnRh bmEuZG9jdW1lbnQud3JpdGUoJzxUUj48VEQ+PC9URD48VEQgQUxJR049UklHSFQ+PEI+PEZP TlQgU0laRT0yIENPTE9SPWJsYWNrPlRvdGFsIE0uTjwvRk9OVD48L0I+PC9URD48VEQgQUxJ R049UklHSFQ+PEI+PEZPTlQgU0laRT0yIENPTE9SPWJsYWNrPiQiK2lUbXAzKyI8L0ZPTlQ+ PC9CPjwvVEQ+PFREIEFMSUdOPVJJR0hUPjwvVEQ+Jyk7Iik7CgogICAgICAgICAgICAvL1RP VEFMIERPTEFSRVMKCQkJaVRtcDFETEwgPSAoTWF0aC5yb3VuZChldmFsKFRvdGFsU2FsZG9E TEwpKjEwMC4wMCkpLzEwMC4wMDsKCQkJaVRtcDJETEwgPSAoTWF0aC5yb3VuZChldmFsKFRv dGFsU2FsZG9TQkNETEwpKjEwMC4wMCkpLzEwMC4wMDsKCQkJaVRtcDNETEw9ICIgIitpVG1w MURMTDsKCQkJaWYgKCBpVG1wM0RMTC5pbmRleE9mKCIuIikgPT0gLTEgKQoJCQkJaVRtcDNE TEwgPSBpVG1wM0RMTCArICIuMDAiOwoJCQlpZiAoIChpVG1wM0RMTC5sZW5ndGggLSBpVG1w M0RMTC5pbmRleE9mKCIuIikpPDMgKQoJCQkJaVRtcDNETEwgPSBpVG1wM0RMTCArICIwIjsK CQkJaVRtcDNETEw9Rm9ybWF0ZWFTYWxkbyhpVG1wM0RMTCk7CgkJCWlUbXA0RExMID0gIiAi K2lUbXAyRExMOwoJCQlpZiAoIGlUbXA0RExMLmluZGV4T2YoIi4iKSA9PSAtMSApCgkJCQlp VG1wNERMTCA9IGlUbXA0RExMICsgIi4wMCI7CgkJCWlUbXA0RExMPUZvcm1hdGVhU2FsZG8o aVRtcDRETEwpOwogICAgICAgICAgICBwT3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVudC53 cml0ZSgnPFRSPjxURD48L1REPjxURCBBTElHTj1SSUdIVD48Qj48Rk9OVCBTSVpFPTIgQ09M T1I9YmxhY2s+VG90YWwgRExMPC9GT05UPjwvQj48L1REPjxURCBBTElHTj1SSUdIVD48Qj48 Rk9OVCBTSVpFPTIgQ09MT1I9YmxhY2s+JCIraVRtcDNETEwrIjwvRk9OVD48L0I+PC9URD48 VEQgQUxJR049UklHSFQ+PC9URD4nKTsiKTsKCQl9CgkJCgkJZWxzZSB7CgkJCWFsZXJ0KCJP cGVyYWNp824gbm8gZGlzcG9uaWJsZSBwb3IgZWwgbW9tZW50bywgSW50ZW50ZSBt4XMgdGFy ZGUiKTsKCQkJQWNjSW1wPTE7CgkJfQoJfQogcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1l bnQud3JpdGUoJzwvVEFCTEU+Jyk7Iik7CiBwT3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVu dC53cml0ZSgnPC9DRU5URVI+Jyk7Iik7CiBwT3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVu dC53cml0ZSgnPFRSPicpOyIpOwogcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQud3Jp dGUoJzxDRU5URVI+Jyk7Iik7CiBwT3Aud3JpdGVsbigidmVudGFuYS5kb2N1bWVudC53cml0 ZSgnPEZPTlQgU0laRT0tMj5MYSBpbmZvcm1hY2kmb2FjdXRlO24gbGlzdGFkYSBlcyBzb2xv IGRlIGNhcmFjdGVyIGluZm9ybWF0aXZvPC9GT05UPjxCUj4nKTsiKTsKIHBPcC53cml0ZWxu KCJ2ZW50YW5hLmRvY3VtZW50LndyaXRlKCc8QlI+IFBhcmEgY3VhbHF1aWVyIGR1ZGEgbyBh Y2xhcmFjafNuIG5vcyBwb25lbW9zIGEgc3VzIPNyZGVuZXMgZW4gPEI+Y29udGFjdG9AYml0 YWwuY29tLm14IDwvQj5vIHNpIGxvIHByZWZpZXJlIHB1ZWRlIGNvbXVuaWNhcnNlIGEgTO1u ZWEgQml0YWwgYSBsb3MgdGVs6WZvbm9zIDU3MjEtMzM5MCBkZXNkZSBlbCBELkYuIG8gYWwg MDEgODAwIDcxMjQ4MjUgbGFkYSBzaW4gY29zdG8gZGVzZGUgZWwgaW50ZXJpb3IgZGVsIHBh 7XMsIGRpZ2l0ZSBsYSBvcGNp824gMyAoQXNpc3RlbmNpYSBQZXJzb25hbCkgeSBwb3N0ZXJp b3JtZW50ZSBsYSBvcGNp824gMyAoQml0YWwgZW4gSW50ZXJuZXQpLiBDb24gZ3VzdG8gbGUg YXRlbmRlcmVtb3MuICA8QlI+PEJSPiA8Rk9OVCBTSVpFPTI+IFNpIGRlc2VhIGNhbWJpYXIg c3UgY2xhdmUgZGUgY29ycmVvIG8gZGFyIGRlIGJhamEgZWwgc2VydmljaW8sIGFjdWRhIGFs IG1lbvogZGUgb3Ryb3Mgc2VydmljaW9zLiA8L0ZPTlQ+PEJSPicpOyIpOwpwT3Aud3JpdGVs bigidmVudGFuYS5kb2N1bWVudC53cml0ZSgnPEJSPicpOyIpOwpwT3Aud3JpdGVsbigidmVu dGFuYS5kb2N1bWVudC53cml0ZSgnPEI+U2VsZWNjaW9uZSBsYSBvcGNpJm9hY3V0ZTtuIFBy aW50IChJbXByaW1pcikgZGUgc3UgTmF2ZWdhZG9yIHNpIGRlc2VhIGltcHJpbWlyIGVzdGEg cGFudGFsbGEuPC9CPjxCUj4nKTsiKTsKcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQu d3JpdGUoJzxCUj48Q0VOVEVSPjxBIEhSRUY9XCJqYXZhc2NyaXB0OnNlbGYuY2xvc2UoKVwi PiIgKyBsaWdhMigiQWNjZXNvIGEgbGEgQXBsaWNhY2kmb2FjdXRlO24iKSArICI8L0E+Jyk7 Iik7CnBPcC53cml0ZWxuKCJ2ZW50YW5hLmRvY3VtZW50LndyaXRlKCc8L0NFTlRFUj4nKTsi KTsKcE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQud3JpdGUoJzwvQk9EWT4nKTsiKTsK cE9wLndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQud3JpdGUoJzwvSFRNTD4nKTsiKTsKcE9w LndyaXRlbG4oInZlbnRhbmEuZG9jdW1lbnQuY2xvc2UoKTsiKTsKcE9wLndyaXRlbG4oIn0i KTsKcE9wLndyaXRlbG4oImVsc2UiKTsKcE9wLndyaXRlbG4oImFsZXJ0KCdPcGNp824gbm8g U29wb3J0YWRhIHBvciBOZXRGb3JBbGwnKSIpOwpwT3Aud3JpdGVsbigifSIpOwpwT3Aud3Jp dGVsbigiPC9TIisiQ1JJUFQiKyI+Iik7CnRvcC5mc2FsZG9zLmRvY3VtZW50LmNsb3NlKCk7 IAogfQoKZnVuY3Rpb24gQWN0dWFsaXphRmVjaGEoRmVjaGEsSG9yYSkKeyB2YXIgcEhlYWRl cj1udWxsOwogICBwSGVhZGVyPXBhcmVudC5HZXRQb2ludGVySGQoKTsKICAgcEhlYWRlci5j RmVjaGE9RmVjaGE7CiAgIHBIZWFkZXIuY0hvcmE9SG9yYTsgfQpmdW5jdGlvbiBBY3R1YWxp emFDb250cmF0b3MoY29udHJhdG9zKQp7ICAgICAgIHZhciBwSGVhZGVyPW51bGw7CglwSGVh ZGVyPSBwYXJlbnQuR2V0UG9pbnRlckhkKCk7CglwSGVhZGVyLmNDb250cmF0b3M9Y29udHJh dG9zOyB9CgpmdW5jdGlvbiBBY3R1YWxpemFDb250cmF0byhjb250cmF0bykKeyAgICAgICB2 YXIgcEhlYWRlcj1udWxsOwoJcEhlYWRlcj0gcGFyZW50LkdldFBvaW50ZXJIZCgpOwoJcEhl YWRlci5jQ29udHJhdG89Y29udHJhdG87IH0KCmZ1bmN0aW9uIEFjdHVhbGl6YVBhc3N3b3Jk KHBhc3MpCnsgICAgICAgdmFyIHBIZWFkZXI9bnVsbDsKCXBIZWFkZXI9IHBhcmVudC5HZXRQ b2ludGVySGQoKTsKCXBIZWFkZXIuY1BBU1M9cGFzczsgfQoKZnVuY3Rpb24gQWN0aXZhUmVs b2ooKQp7IFRPPXNldFRpbWVvdXQoICdsb2dvZmYoKScsMTIwMDAwMCk7Cn0KCmZ1bmN0aW9u IEFjdGl2YVJlbG9qSU1QVSgpCnsKICAgICAgICB0aW1lPTg0MDAwMDA7CiAgICAgICAgY2xl YXJUaW1lb3V0KFRPKTsKICAgICAgICBUTz1zZXRUaW1lb3V0KCAnbG9nb2ZmKCknLHRpbWUp Owp9CgpmdW5jdGlvbiBsb2dvZmYoKQp7ICAgICAgIERlc2FjdGl2YVJlbG9qKCk7CiAgICAg ICAgd2luZG93LmxvY2F0aW9uLmhyZWY9ImphdmFzY3JpcHQ6dG9wLmZyYW1lc1s0XS5FeHBp cmEoKTsiOwp9CmZ1bmN0aW9uIERlc2FjdGl2YVJlbG9qKCkKewogICAgICAgIGNsZWFyVGlt ZW91dChUTyk7Cn0KZnVuY3Rpb24gUmVsb2FkUmVsb2ooKQp7ICAgICAgICBEZXNhY3RpdmFS ZWxvaigpOwogICAgICAgICBBY3RpdmFSZWxvaigpO30KCkFjdGl2YVJlbG9qKCk7IHBhcmVu dC5TZXRGaW5pc2goMSk7Cgo8L1NDUklQVD48L0JPRFk+PC9IVE1MPg=9 --Tnb22epso009Aszg054KI90x3jeE3--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |