From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kenichi Handa Newsgroups: gmane.emacs.devel Subject: Re: rmail-get-attr-names: Corrupt attribute header in message Date: Tue, 17 Feb 2009 09:50:33 +0900 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1234831855 19355 80.91.229.12 (17 Feb 2009 00:50:55 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 17 Feb 2009 00:50:55 +0000 (UTC) Cc: emacs-devel@gnu.org To: Glenn Morris Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Feb 17 01:52:10 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LZEBs-0006u3-DV for ged-emacs-devel@m.gmane.org; Tue, 17 Feb 2009 01:52:01 +0100 Original-Received: from localhost ([127.0.0.1]:50237 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LZEAX-0006F8-Kf for ged-emacs-devel@m.gmane.org; Mon, 16 Feb 2009 19:50:37 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LZEAQ-0006Ew-SW for emacs-devel@gnu.org; Mon, 16 Feb 2009 19:50:30 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LZEAP-0006Ei-6s for emacs-devel@gnu.org; Mon, 16 Feb 2009 19:50:29 -0500 Original-Received: from [199.232.76.173] (port=41793 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LZEAP-0006Ef-2D for emacs-devel@gnu.org; Mon, 16 Feb 2009 19:50:29 -0500 Original-Received: from mx1.aist.go.jp ([150.29.246.133]:46438) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LZEAK-00029m-SP; Mon, 16 Feb 2009 19:50:25 -0500 Original-Received: from rqsmtp1.aist.go.jp (rqsmtp1.aist.go.jp [150.29.254.115]) by mx1.aist.go.jp with ESMTP id n1H0oLq6022884; Tue, 17 Feb 2009 09:50:21 +0900 (JST) env-from (handa@m17n.org) Original-Received: from smtp1.aist.go.jp by rqsmtp1.aist.go.jp with ESMTP id n1H0oKwh027411; Tue, 17 Feb 2009 09:50:20 +0900 (JST) env-from (handa@m17n.org) Original-Received: by smtp1.aist.go.jp with ESMTP id n1H0oJeK025407; Tue, 17 Feb 2009 09:50:19 +0900 (JST) env-from (handa@m17n.org) Original-Received: from handa by etlken with local (Exim 4.69) (envelope-from ) id 1LZEAT-00069k-O3; Tue, 17 Feb 2009 09:50:33 +0900 In-reply-to: (message from Glenn Morris on Mon, 16 Feb 2009 17:50:33 -0500) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.90 (gnu/linux) X-detected-operating-system: by monty-python.gnu.org: Solaris 9 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:109114 Archived-At: --=-=-= In article , Glenn Morris writes: > Kenichi Handa wrote: > > With today's update, I frequenty get the above error in > > rmail, and RMAIL buffer is left swapped (i.e. showing the > > RMAIL file itself). > Well, that sounds like it might be a bug. > > Content-Type: text/plain; charset=us-ascii > > X-RMAIL-ATTRIBUTES: -------- > What does the next line look like? Does it start with whitespace? The next line is empty. > What does (rmail-get-header rmail-attribute-header) return for this > message? "-------" I'll attach the small RMAIL file that causes this problem. --- Kenichi Handa handa@m17n.org --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=temprmail Content-Transfer-Encoding: base64 Content-Description: sample rmail file RnJvbSBzYWNoYUBteXhvbW9wLmNvbSBGcmkgQXVnIDAzIDAwOjIyOjI5IDIwMDcKWC1STUFJTC1L RVlXT1JEUzogbXVzdHJlcGx5ClJldHVybi1wYXRoOiA8c2FjaGFAbXl4b21vcC5jb20+ClgtU3Bh bS1DaGVja2VyLVZlcnNpb246IFNwYW1Bc3Nhc3NpbiAzLjIuMSAoMjAwNy0wNS0wMikgb24gZXRs a2VuLm0xN24ub3JnClgtU3BhbS1MZXZlbDogClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMi42 IHJlcXVpcmVkPTUuMCB0ZXN0cz1CQVlFU18wMCBhdXRvbGVhcm49aGFtCgl2ZXJzaW9uPTMuMi4x CkVudmVsb3BlLXRvOiBoYW5kYUBsb2NhbGhvc3QKRGVsaXZlcnktZGF0ZTogRnJpLCAwMyBBdWcg MjAwNyAwMDoyMjoyOSArMDkwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QKCShbMTI3LjAuMC4x XSBoZWxvPWV0bGtlbi5tMTduLm9yZyBpZGVudD1mZXRjaG1haWwpCglieSBldGxrZW4ubTE3bi5v cmcgd2l0aCBlc210cCAoRXhpbSA0LjY3KQoJKGVudmVsb3BlLWZyb20gPHNhY2hhQG15eG9tb3Au Y29tPikKCWlkIDFJR2NWUi0wMDAycmstUjEKCWZvciBoYW5kYUBsb2NhbGhvc3Q7IEZyaSwgMDMg QXVnIDIwMDcgMDA6MjI6MjkgKzA5MDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC5haXN0LmdvLmpwIFsx NTAuMjkuMjQ2LjEwXQoJYnkgZXRsa2VuLm0xN24ub3JnIHdpdGggUE9QMyAoZmV0Y2htYWlsLTYu My44KQoJZm9yIDxoYW5kYUBsb2NhbGhvc3Q+IChzaW5nbGUtZHJvcCk7IEZyaSwgMDMgQXVnIDIw MDcgMDA6MjI6MjkgKzA5MDAgKEpTVCkKUmVjZWl2ZWQ6IAoJYnkgc210cDIuYWlzdC5nby5qcCAg d2l0aCBFU01UUCBpZCBsNzJGTFJtZjAxMTg4MQoJZm9yIDxoYW5kYS5rZW5pY2hpQGFpc3QuZ28u anA+OyBGcmksIDMgQXVnIDIwMDcgMDA6MjE6MjkgKzA5MDAgKEpTVCkKCWVudi1mcm9tIChzYWNo YUBteXhvbW9wLmNvbSkKUmVjZWl2ZWQ6IGZyb20gbWFpbC5tMTduLm9yZyAobWFpbC5tMTduLm9y ZyBbMTY0LjQ2LjgxLjJdKQoJYnkgbXgyLmFpc3QuZ28uanAgIHdpdGggRVNNVFAgaWQgbDcyRkxL UVYwMjM5MzkKCWZvciA8aGFuZGEua2VuaWNoaUBhaXN0LmdvLmpwPjsgRnJpLCAzIEF1ZyAyMDA3 IDAwOjIxOjI1ICswOTAwIChKU1QpCgllbnYtZnJvbSAoc2FjaGFAbXl4b21vcC5jb20pClJlY2Vp dmVkOiBmcm9tIG15eG9tb3AuY29tIChteXhvbW9wLmNvbSBbNjkuNTUuMjMzLjhdKQoJYnkgbWFp bC5tMTduLm9yZyAoOC4xMi4xMS4yMDA2MDgyOS84LjExLjMpIHdpdGggRVNNVFAgaWQgbDcyRkxK NEwwMDk1MTgKCWZvciA8aGFuZGFAbTE3bi5vcmc+OyBGcmksIDMgQXVnIDIwMDcgMDA6MjE6MjAg KzA5MDAKUmVjZWl2ZWQ6IGZyb20gc2FjaGEgYnkgbXl4b21vcC5jb20gd2l0aCBsb2NhbCAoRXhp bSAzLjM2ICMxIChEZWJpYW4pKQoJaWQgMUlHY1F0LTAwMDdneS0wMAoJZm9yIDxoYW5kYUBtMTdu Lm9yZz47IFRodSwgMDIgQXVnIDIwMDcgMTE6MTc6NDcgLTA0MDAKVG86IEtlbmljaGkgSGFuZGEg PGhhbmRhQG0xN24ub3JnPgpTdWJqZWN0OiBSZTogW3NhY2hhQG15eG9tb3AuY29tOiBSZTogWENy ZWF0ZUZvbnRTZXQgY2FsbGVkIGZvciBlYWNoIFggd2luZG93CgllbWFjcyBmcmFtZSBpcyBoZWF2 eV0KUmVmZXJlbmNlczogPEUxSTUyTE4tMDAwNnV5LU55QGZlbmNlcG9zdC5nbnUub3JnPgoJPEUx SUF5RUotMDAwN2FRLVc5QGV0bGtlbi5tMTduLm9yZz4KRnJvbTogQWxleGFuZGVyIEtvdGVsbmlr b3YgPHNhY2hhQG15eG9tb3AuY29tPgpPcmdhbml6YXRpb246IEdsb2JhbCBkaXNpbnRveGljYXRp b24KTWFpbC1Db3BpZXMtVG86IG5ldmVyCkRhdGU6IFRodSwgMDIgQXVnIDIwMDcgMTk6MTc6NDcg KzA0MDAKSW4tUmVwbHktVG86IDxFMUlBeUVKLTAwMDdhUS1XOUBldGxrZW4ubTE3bi5vcmc+IChL ZW5pY2hpIEhhbmRhJ3MgbWVzc2FnZSBvZgogIldlZCwgMTggSnVsIDIwMDcgMTA6MjE6MjcgKzA5 MDAiKQpNZXNzYWdlLUlEOiA8ODVzbDcydnVjay5mc2ZAbXl4b21vcC5jb20+ClVzZXItQWdlbnQ6 IEdudXMvNS4xMDA3IChHbnVzIHY1LjEwLjcpIEVtYWNzLzIxLjQgKGdudS9saW51eCkKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpClgt Uk1BSUwtQVRUUklCVVRFUzogLS0tLS0tLS0KCkhlbGxvLCBLZW5pY2hpLgoKPj4+Pj4gT24gV2Vk LCAxOCBKdWwgMjAwNyAxMDoyMToyNyArMDkwMAo+Pj4+PiAiS0giID09IEtlbmljaGkgSGFuZGEg PGhhbmRhQG0xN24ub3JnPiB3cm90ZToKS0g+IApLSD4gU29ycnkgZm9yIHRoZSBsYXRlIHJlc3Bv bnNlLgoKQmluZ28uIEhhZCBtdWNoIHdvcmsgYW5kIHRoZW4gbGVmdCB0byBhIHNtYWxsIHRyaXAg b24gdmFjYXRpb24uCgoxOToxNyBwdHMvNyBzYWNoYUBiZW5pbmd0b246fi93b3JrL2VtYWNzIDE3 PiB0aW1lIC4veGZzCictbW9ub3R5cGUtY291cmllcgpuZXctbWVkaXVtLXItbm9ybWFsLSotMTMt OTItMTAwLTEwMC1tLTgwLWFkb2JlLXN0YW5kYXJkLC1tb25vdHlwZS1jb3VyaWVyCm5ldy1tZWRp dW0tci1ub3JtYWwtKi0xMy0qLSotKi0qLSotKi0qLC0qLSotbWVkaXVtLXItbm9ybWFsLSotMTMt Ki0qLSotKi0qLSotKiwtKi0qLSotKi0qLSotMTMtKi0qLSotKi0qLSotKicKRm9udHNldCBjcmVh dGVkIHN1Y2Nlc3NmdWxseS4KLi94ZnMgICAwLjAxcyB1c2VyIDAuMDBzIHN5c3RlbSAwJSBjcHUg Mi4yMTkgdG90YWwKMTk6MTcgcHRzLzcgc2FjaGFAYmVuaW5ndG9uOn4vd29yay9lbWFjcyAxOD4g dGltZSAuL3hmcwonLW1vbm90eXBlLWNvdXJpZXIKbmV3LW1lZGl1bS1yLW5vcm1hbC0qLTEzLTky LTEwMC0xMDAtbS04MC1hZG9iZS1zdGFuZGFyZCwtbW9ub3R5cGUtY291cmllcgpuZXctbWVkaXVt LXItbm9ybWFsLSotMTMtKi0qLSotKi0qLSotKiwtKi0qLW1lZGl1bS1yLW5vcm1hbC0qLTEzLSot Ki0qLSotKi0qLSonCgpGb250c2V0IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgouL3hmcyAgIDAuMDFz IHVzZXIgMC4wMXMgc3lzdGVtIDAlIGNwdSAyLjIxMCB0b3RhbAoxOToxOCBwdHMvNyBzYWNoYUBi ZW5pbmd0b246fi93b3JrL2VtYWNzIDE5PiAKMTk6MTggcHRzLzcgc2FjaGFAYmVuaW5ndG9uOn4v d29yay9lbWFjcyAxOT4gdGltZSAuL3hmcwonLW1vbm90eXBlLWNvdXJpZXIKbmV3LW1lZGl1bS1y LW5vcm1hbC0qLTEzLTkyLTEwMC0xMDAtbS04MC1hZG9iZS1zdGFuZGFyZCwtbW9ub3R5cGUtY291 cmllcgpuZXctbWVkaXVtLXItbm9ybWFsLSotMTMtKi0qLSotKi0qLSotKicKRm9udHNldCBjcmVh dGVkIHN1Y2Nlc3NmdWxseS4KTWlzc2luZyBmb250czoKICBKSVNYMDIwOC4xOTgzLTAKICBLU0M1 NjAxLjE5ODctMAogIEdCMjMxMi4xOTgwLTAKICBKSVNYMDIwMS4xOTc2LTAKLi94ZnMgICAwLjAx cyB1c2VyIDAuMDBzIHN5c3RlbSAxOSUgY3B1IDAuMDYxIHRvdGFsCjE5OjE4IHB0cy83IHNhY2hh QGJlbmluZ3Rvbjp+L3dvcmsvZW1hY3MgMjA+CgpTbyBmaXJzdCB0b28gYXJlIGhhcmQgY2FsbHMs IHdoaWxlIHRoZSBsYXN0IG9uZSBpcyBsaWdodC4KCkkgaGF2ZSBub3QgbWFkZSB0aGUgaW52ZXN0 aWdhdG9uIHlvdSByZXF1ZXN0ZWQgeWV0LCB3aWxsIHRyeSB0aGlzCndlZWsuCgpOb3RlIHRoYXQg aW4gOC1iaXQgbG9jYWxlcyBhbGwgdGhlc2UgY2FsbHMgYXJlIGxpZ2h0d2VpZ2h0OgoxOToxOSBw dHMvNyBzYWNoYUBiZW5pbmd0b246fi93b3JrL2VtYWNzIDIxPiB0aW1lIExDX0FMTD1lbl9VUyAu L3hmcwonLW1vbm90eXBlLWNvdXJpZXIKbmV3LW1lZGl1bS1yLW5vcm1hbC0qLTEzLTkyLTEwMC0x MDAtbS04MC1hZG9iZS1zdGFuZGFyZCwtbW9ub3R5cGUtY291cmllcgpuZXctbWVkaXVtLXItbm9y bWFsLSotMTMtKi0qLSotKi0qLSotKiwtKi0qLW1lZGl1bS1yLW5vcm1hbC0qLTEzLSotKi0qLSot Ki0qLSosLSotKi0qLSotKi0qLTEzLSotKi0qLSotKi0qLSonCkZvbnRzZXQgY3JlYXRlZCBzdWNj ZXNzZnVsbHkuCkxDX0FMTD1lbl9VUyAuL3hmcyAgIDAuMDBzIHVzZXIgMC4wMHMgc3lzdGVtIDEw JSBjcHUgMC4wNzMgdG90YWwKCmJ1dAoKMTk6MTkgcHRzLzcgc2FjaGFAYmVuaW5ndG9uOn4vd29y ay9lbWFjcyAyMj4gdGltZSBMQ19BTEw9ZW5fVVMuVVRGLTgKLi94ZnMgJy1tb25vdHlwZS1jb3Vy aWVyCm5ldy1tZWRpdW0tci1ub3JtYWwtKi0xMy05Mi0xMDAtMTAwLW0tODAtYWRvYmUtc3RhbmRh cmQsLW1vbm90eXBlLWNvdXJpZXIKbmV3LW1lZGl1bS1yLW5vcm1hbC0qLTEzLSotKi0qLSotKi0q LSosLSotKi1tZWRpdW0tci1ub3JtYWwtKi0xMy0qLSotKi0qLSotKi0qLC0qLSotKi0qLSotKi0x My0qLSotKi0qLSotKi0qJwpGb250c2V0IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgpMQ19BTEw9ZW5f VVMuVVRGLTggLi94ZnMgICAwLjAxcyB1c2VyIDAuMDBzIHN5c3RlbSAwJSBjcHUgMi4yNzkgdG90 YWwKCk1lIG15c2VsZiBJIHVzZSBydV9SVS5LT0k4LVIKClRoYW5rcywKU2FjaGEKCktIPiBJbiBh cnRpY2xlIDxFMUk1MkxOLTAwMDZ1eS1OeUBmZW5jZXBvc3QuZ251Lm9yZz4sIFJpY2hhcmQgU3Rh bGxtYW4gPHJtc0BnbnUub3JnPiB3cml0ZXM6CktIPiAKPj4gV291bGQgc29tZW9uZSBwbGVhc2Ug RFRSVCBhbmQgYWNrPyAgSSBoYXZlIGVuY2xvc2VkIHR3byBtZXNzYWdlcy4KPj4gSGFuZGEsIHRo aXMgaXMgaW4geW91ciBhcmVhLgpLSD4gCj4+IEZyb206IEFsZXhhbmRlciBLb3RlbG5pa292IDxz YWNoYUBteXhvbW9wLmNvbT4KPj4gRGF0ZTogU2F0LCAzMCBKdW4gMjAwNyAxNjozOTozNiArMDQw MAo+PiBTdWJqZWN0OiBYQ3JlYXRlRm9udFNldCBjYWxsZWQgZm9yIGVhY2ggWCB3aW5kb3cgZW1h Y3MgZnJhbWUgaXMgaGVhdnkKS0g+IFsuLi5dCj4+IEkgdGhpbmsgaXQgaXMgeWVhcnMgbm93IHNp bmNlIEkgaGFkIG5vdGljZWQgdGhhdCBldmVyeSBuZXcgZW1hY3MgZnJhbWUKPj4gZWl0aGVyIGZp cnN0IG9yIGFueSBzdWJzZXF1ZW50IG1ha2VzIGFsbCBteSBjb21wdXRlcnMgZmVlbCBiYWQuIFgK Pj4gZGlzcGxheSBzdGFuZHMgc3RpbGwsIGN1cnNvciBtb3ZlcywgYnV0IGRvZXMgbm90IHJlc3Bv bmQgdG8gY2xpY2tzLAo+PiBmb2N1cyBzd2l0Y2hlcyBzbG93bHkuIFRoaXMgY29udGludWVzIG9m IGEgc3BsaXQgc2Vjb25kLCBidXQgaXQKPj4gaHVydHMsIEkgYXNzdXJlIHlvdS4gSSBkbyBub3Qg a25vdyBhbnkgb3RoZXIgcHJvZ3JhbSwgdGhhdCBjYXVzZXMKPj4gc3VjaCBwcm9ibGVtcy4KS0g+ IFsuLi5dCj4+IDIxNTUgICAgICAgICAgeGZzID0gWENyZWF0ZUZvbnRTZXQgKEZSQU1FX1hfRElT UExBWSAoZiksCj4+IChnZGIpIApLSD4gCj4+IDIxNTggICAgICAgICAgaWYgKG1pc3NpbmdfbGlz dCkKPj4gKGdkYikgCj4+IDIxNjAgICAgICAgICAgaWYgKCEgeGZzKQo+PiAoZ2RiKSBwIGZvbnRz ZXRuYW1lCj4+ICQxID0gMHg4NWQwYzgwICItbW9ub3R5cGUtY291cmllcgo+PiBuZXctbWVkaXVt LXItbm9ybWFsLSotMTMtOTItMTAwLTEwMC1tLTgwLWFkb2JlLXN0YW5kYXJkLAo+PiAtIC1tb25v dHlwZS1jb3VyaWVyCj4+IG5ldy1tZWRpdW0tci1ub3JtYWwtKi0xMy0qLSotKi0qLSotKi0qLC0q LSotbWVkaXVtLXItbm9ybWFsLSotMTMtKi0qLSotKgo+PiAtIC0qLSotKiwtKi0qLSotKi0qLSot MTMtKi0qLSotKi0qLSotKiIKS0g+IApLSD4gSSd2ZSBuZXZlciBtZXQgc3VjaCBhIHByb2JsZW0s IGFuZCBpdCdzIHZlcnkgc3VycHJpc2luZyB0aGF0CktIPiBYQ3JlYXRlRm9udFNldCBpcyB0aGF0 IHNsb3cuCktIPiAKS0g+IENvdWxkIHlvdSBwbGVhc2UgY29tcGlsZSB0aGUgYXR0YWNoZWQgcHJv Z3JhbSAoeGZzLmMpLCBydW4KS0g+IGl0IHdpdGggdGhlc2UgYXJndW1lbnRzOgpLSD4gCktIPiAl IC4veGZzICctbW9ub3R5cGUtY291cmllciBuZXctbWVkaXVtLXItbm9ybWFsLSotMTMtOTItMTAw LTEwMC1tLTgwLWFkb2JlLXN0YW5kYXJkLC1tb25vdHlwZS1jb3VyaWVyIG5ldy1tZWRpdW0tci1u b3JtYWwtKi0xMy0qLSotKi0qLSotKi0qLC0qLSotbWVkaXVtLXItbm9ybWFsLSotMTMtKi0qLSot Ki0qLSotKiwtKi0qLSotKi0qLSotMTMtKi0qLSotKi0qLSotKicKS0g+IApLSD4gJS4veGZzICcn LW1vbm90eXBlLWNvdXJpZXIgbmV3LW1lZGl1bS1yLW5vcm1hbC0qLTEzLTkyLTEwMC0xMDAtbS04 MC1hZG9iZS1zdGFuZGFyZCwtbW9ub3R5cGUtY291cmllciBuZXctbWVkaXVtLXItbm9ybWFsLSot MTMtKi0qLSotKi0qLSotKiwtKi0qLW1lZGl1bS1yLW5vcm1hbC0qLTEzLSotKi0qLSotKi0qLSon CktIPiAKS0g+ICUuL3hmcyAnJy1tb25vdHlwZS1jb3VyaWVyIG5ldy1tZWRpdW0tci1ub3JtYWwt Ki0xMy05Mi0xMDAtMTAwLW0tODAtYWRvYmUtc3RhbmRhcmQsLW1vbm90eXBlLWNvdXJpZXIgbmV3 LW1lZGl1bS1yLW5vcm1hbC0qLTEzLSotKi0qLSotKi0qLSonCktIPiAKS0g+IGFuZCBjaGVjayBp ZiB0aGV5IGFyZSBzdXJlbHkgc2xvdz8KS0g+IApLSD4gQW5kIGFsc28gcGxlYXNlIGludmVzdGln YXRlIHdoeSB0aGUgZm9sbG93aW5nIGNvZGUgaW4KS0g+IHhpY19jcmVhdGVfeGZvbnRzZXQgZG9l c24ndCBmaW5kIGFuIGFscmVhZHkgY3JlYXRlZCBmb250c2V0CktIPiBmb3IgdGhlIHNlY29uZCBh bmQgdGhlIG90aGVyIGZyYW1lcy4KS0g+IApLSD4gICAvKiBTZWUgaWYgdGhlcmUgaXMgYW5vdGhl ciBmcmFtZSBhbHJlYWR5IHVzaW5nIHNhbWUgZm9udHNldC4gICovCktIPiAgIEZPUl9FQUNIX0ZS QU1FIChyZXN0LCBmcmFtZSkKS0g+ICAgICB7CktIPiAgICAgICBzdHJ1Y3QgZnJhbWUgKmNmID0g WEZSQU1FIChmcmFtZSk7CktIPiAgICAgICBpZiAoY2YgIT0gZiAmJiBGUkFNRV9MSVZFX1AgKGYp ICYmIEZSQU1FX1hfUCAoY2YpCktIPiAgICAgICAgICAgJiYgRlJBTUVfWF9ESVNQTEFZX0lORk8g KGNmKSA9PSBGUkFNRV9YX0RJU1BMQVlfSU5GTyAoZikKS0g+ICAgICAgICAgICAmJiBGUkFNRV9Y SUNfQkFTRV9GT05UTkFNRSAoY2YpCktIPiAgICAgICAgICAgJiYgIXN0cmNtcCAoRlJBTUVfWElD X0JBU0VfRk9OVE5BTUUgKGNmKSwgYmFzZV9mb250bmFtZSkpCktIPiAgICAgICAgIHsKS0g+ICAg ICAgICAgICB4ZnMgPSBGUkFNRV9YSUNfRk9OVFNFVCAoY2YpOwpLSD4gICAgICAgICAgIGJyZWFr OwpLSD4gICAgICAgICB9CktIPiAgICAgfQpLSD4gCktIPiAtLS0KS0g+IEtlbmljaGkgSGFuZGEK S0g+IGhhbmRhQG0xN24ub3JnCktIPiAKS0g+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSB4ZnMuYyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCktIPiAjaW5jbHVkZSA8c3RkaW8uaD4KS0g+ ICNpbmNsdWRlIDxzdGRsaWIuaD4KS0g+ICNpbmNsdWRlIDxsb2NhbGUuaD4KS0g+ICNpbmNsdWRl IDxYMTEvWGxpYi5oPgpLSD4gCktIPiBpbnQKS0g+IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJn dikKS0g+IHsKS0g+ICAgRGlzcGxheSAqZGlzcGxheTsKS0g+ICAgWEZvbnRTZXQgeGZzID0gTlVM TDsKS0g+ICAgY2hhciAqKm1pc3NpbmdfbGlzdCA9IE5VTEw7CktIPiAgIGludCBtaXNzaW5nX2Nv dW50OwpLSD4gICBjaGFyICpkZWZfc3RyaW5nOwpLSD4gCktIPiAgIHNldGxvY2FsZSAoTENfQUxM LCAiIik7CktIPiAKS0g+ICAgZGlzcGxheSA9IFhPcGVuRGlzcGxheSAoTlVMTCk7CktIPiAgIHhm cyA9IFhDcmVhdGVGb250U2V0IChkaXNwbGF5LCBhcmd2WzFdLCAmbWlzc2luZ19saXN0LCAmbWlz c2luZ19jb3VudCwKS0g+IAkJCSZkZWZfc3RyaW5nKTsKS0g+ICAgaWYgKCEgeGZzKQpLSD4gICAg IHByaW50ZiAoIkZvbnRzZXQgY2FuJ3QgYmUgY3JlYXRlZCBmcm9tIFwiJXNcIi5cbiIsIGFyZ3Zb MV0pOwpLSD4gICBlbHNlCktIPiAgICAgewpLSD4gICAgICAgcHJpbnRmICgiRm9udHNldCBjcmVh dGVkIHN1Y2Nlc3NmdWxseS5cbiIpOwpLSD4gICAgICAgaWYgKG1pc3NpbmdfbGlzdCkKS0g+IAl7 CktIPiAJICBpbnQgaTsKS0g+IApLSD4gCSAgcHJpbnRmICgiTWlzc2luZyBmb250czpcbiIpOwpL SD4gCSAgZm9yIChpID0gMDsgaSA8IG1pc3NpbmdfY291bnQ7IGkrKykKS0g+IAkgICAgcHJpbnRm ICgiICAlc1xuIiwgbWlzc2luZ19saXN0W2ldKTsKS0g+IAkgIFhGcmVlU3RyaW5nTGlzdCAobWlz c2luZ19saXN0KTsKS0g+IAl9CktIPiAgICAgICBYRnJlZUZvbnRTZXQgKGRpc3BsYXksIHhmcyk7 CktIPiAgICAgfQpLSD4gCktIPiAgIFhDbG9zZURpc3BsYXkgKGRpc3BsYXkpOwpLSD4gICBleGl0 ICgwKTsKS0g+IH0KS0g+IAotLSAKQWxleGFuZGVyIEtvdGVsbmlrb3YKU2FpbnQtUGV0ZXJzYnVy ZywgUnVzc2lhCgpGcm9tIHBuZW1hZGVAcmVkaGF0LmNvbSBGcmkgQXVnIDAzIDE0OjM2OjAzIDIw MDcKWC1STUFJTC1BVFRSSUJVVEVTOiAtLS0tLS0tClJldHVybi1wYXRoOiA8cG5lbWFkZUByZWRo YXQuY29tPgpYLVNwYW0tQ2hlY2tlci1WZXJzaW9uOiBTcGFtQXNzYXNzaW4gMy4yLjEgKDIwMDct MDUtMDIpIG9uIGV0bGtlbi5tMTduLm9yZwpYLVNwYW0tTGV2ZWw6IApYLVNwYW0tU3RhdHVzOiBO bywgc2NvcmU9LTIuNiByZXF1aXJlZD01LjAgdGVzdHM9QkFZRVNfMDAgYXV0b2xlYXJuPWhhbQoJ dmVyc2lvbj0zLjIuMQpFbnZlbG9wZS10bzogaGFuZGFAbG9jYWxob3N0CkRlbGl2ZXJ5LWRhdGU6 IEZyaSwgMDMgQXVnIDIwMDcgMTQ6MzY6MDMgKzA5MDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0 CgkoWzEyNy4wLjAuMV0gaGVsbz1ldGxrZW4ubTE3bi5vcmcgaWRlbnQ9ZmV0Y2htYWlsKQoJYnkg ZXRsa2VuLm0xN24ub3JnIHdpdGggZXNtdHAgKEV4aW0gNC42NykKCShlbnZlbG9wZS1mcm9tIDxw bmVtYWRlQHJlZGhhdC5jb20+KQoJaWQgMUlHcHBULTAwMDFoby1JZwoJZm9yIGhhbmRhQGxvY2Fs aG9zdDsgRnJpLCAwMyBBdWcgMjAwNyAxNDozNjowMyArMDkwMApSZWNlaXZlZDogZnJvbSBtYWls LmFpc3QuZ28uanAgWzE1MC4yOS4yNDYuMTBdCglieSBldGxrZW4ubTE3bi5vcmcgd2l0aCBQT1Az IChmZXRjaG1haWwtNi4zLjgpCglmb3IgPGhhbmRhQGxvY2FsaG9zdD4gKHNpbmdsZS1kcm9wKTsg RnJpLCAwMyBBdWcgMjAwNyAxNDozNjowMyArMDkwMCAoSlNUKQpSZWNlaXZlZDogCglieSBzbXRw Mi5haXN0LmdvLmpwICB3aXRoIEVTTVRQIGlkIGw3MzVaTDZwMDIzODkzOwoJRnJpLCAzIEF1ZyAy MDA3IDE0OjM1OjIxICswOTAwIChKU1QpCgllbnYtZnJvbSAocG5lbWFkZUByZWRoYXQuY29tKQpS ZWNlaXZlZDogZnJvbSBtYWlsLm0xN24ub3JnIChtYWlsLm0xN24ub3JnIFsxNjQuNDYuODEuMl0p CglieSBteDIuYWlzdC5nby5qcCAgd2l0aCBFU01UUCBpZCBsNzM1WklwQzAyNjUzMTsKCUZyaSwg MyBBdWcgMjAwNyAxNDozNToxOSArMDkwMCAoSlNUKQoJZW52LWZyb20gKHBuZW1hZGVAcmVkaGF0 LmNvbSkKUmVjZWl2ZWQ6IGZyb20gbXgxLnJlZGhhdC5jb20gKG14MS5yZWRoYXQuY29tIFs2Ni4x ODcuMjMzLjMxXSkKCWJ5IG1haWwubTE3bi5vcmcgKDguMTIuMTEuMjAwNjA4MjkvOC4xMS4zKSB3 aXRoIEVTTVRQIGlkIGw3MzVaSGhkMDMxNTE3OwoJRnJpLCAzIEF1ZyAyMDA3IDE0OjM1OjE4ICsw OTAwClJlY2VpdmVkOiBmcm9tIGludC1teDEuY29ycC5yZWRoYXQuY29tIChpbnQtbXgxLmNvcnAu cmVkaGF0LmNvbSBbMTcyLjE2LjUyLjI1NF0pCglieSBteDEucmVkaGF0LmNvbSAoOC4xMy4xLzgu MTMuMSkgd2l0aCBFU01UUCBpZCBsNzM1WkdvdDAwMzk3MDsKCUZyaSwgMyBBdWcgMjAwNyAwMToz NToxNiAtMDQwMApSZWNlaXZlZDogZnJvbSBwb2JveC5jb3JwLnJlZGhhdC5jb20gKHBvYm94LmNv cnAucmVkaGF0LmNvbSBbMTAuMTEuMjU1LjIwXSkKCWJ5IGludC1teDEuY29ycC5yZWRoYXQuY29t ICg4LjEzLjEvOC4xMy4xKSB3aXRoIEVTTVRQIGlkIGw3MzVaRFhFMDIzNjQyOwoJRnJpLCAzIEF1 ZyAyMDA3IDAxOjM1OjEzIC0wNDAwClJlY2VpdmVkOiBmcm9tIFsxMC42NS42LjE5Nl0gKGRoY3A2 LTE5Ni5wbnEucmVkaGF0LmNvbSBbMTAuNjUuNi4xOTZdKQoJYnkgcG9ib3guY29ycC5yZWRoYXQu Y29tICg4LjEzLjEvOC4xMy4xKSB3aXRoIEVTTVRQIGlkIGw3MzVaQlJZMDI4MjcwOwoJRnJpLCAz IEF1ZyAyMDA3IDAxOjM1OjEyIC0wNDAwClN1YmplY3Q6IFJlOiBVcmdlbnQgaGVscCBuZWVkZWQK RnJvbTogUGFyYWcgTmVtYWRlIDxwbmVtYWRlQHJlZGhhdC5jb20+ClRvOiBUQUtBSEFTSEkgTmFv dG8gPG50YWthaGFzQG0xN24ub3JnPgpDYzogaGFuZGFAbTE3bi5vcmcsIHBldGVyc2VuQHJlZGhh dC5jb20KSW4tUmVwbHktVG86IDwxMTg2MDU3OTc2LjQ1NTMuMTEuY2FtZWxAZGhjcDEtNDgucG5x LnJlZGhhdC5jb20+ClJlZmVyZW5jZXM6ICA8MTE4NjAzMjkyOC4xOTIxMy40LmNhbWVsQHJhd2hp ZGVUTS5wbnEucmVkaGF0LmNvbT4KCSA8RTFJR1psWi0wMDAwclQtOGRAZHVyb24ubTE3bi5vcmc+ CgkgPDExODYwNTc5NzYuNDU1My4xMS5jYW1lbEBkaGNwMS00OC5wbnEucmVkaGF0LmNvbT4KQ29u dGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9LS84TjZ0bUF4cWdZUTNNQ2Fp eTNjIgpEYXRlOiBGcmksIDAzIEF1ZyAyMDA3IDEwOjU3OjUzICswNTMwCk1lc3NhZ2UtSWQ6IDwx MTg2MTE4ODczLjI4NDcuOC5jYW1lbEByYXdoaWRlVE0ucG5xLnJlZGhhdC5jb20+Ck1pbWUtVmVy c2lvbjogMS4wClgtTWFpbGVyOiBFdm9sdXRpb24gMi4xMC4zICgyLjEwLjMtMS5mYzcpIAoKCi0t PS0vOE42dG1BeHFnWVEzTUNhaXkzYwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogN2JpdAoKSGksCk9uIFRodSwgMjAwNy0wOC0wMiBhdCAxODowMiAr MDUzMCwgUGFyYWcgTmVtYWRlIHdyb3RlOgo+IEhpLAo+IE9uIFRodSwgMjAwNy0wOC0wMiBhdCAy MToyNiArMDkwMCwgVEFLQUhBU0hJIE5hb3RvIHdyb3RlOgo+ID4gUGFyYWcgTmVtYWRlIHdyaXRl czoKPiA+IAo+ID4gPiBJIHdhbnQgdG8gd3JpdGUga2V5bWFwIGJ5IG1vZGlmeWluZyBleGlzdGlu Zwo+ID4gPiBoaS1yZW1pbmd0b24ubWltIHRvIGFkZCBhZGRpdGlvbmFsIGNvbWJpbmF0aW9ucyBv ZiB0eXBlCj4gPiA+IGFsdCs8a2V5Pgo+ID4gPiBzaGlmdCthbHQrPGtleT4KPiA+IAo+ID4gRWFj aCBsaW5lIGluIGFuIG1pbSBmaWxlIGxvb2tzIGxpa2UKPiA+IAo+ID4gKCJ4IiAiLi4uIikKPiA+ IAo+ID4gUmVwbGFjZSAieCIgdG8gKEEteCksIG5hbWVseQo+ID4gCj4gPiAoKEEteCkgIi4uLiIp Cj4gPiAKPiA+IHRvIGFzc2lnbiBhIGNoYXJhY3RlciBvciBhIHN0cmluZyB0byBhbHQreC4gIEZv ciBzaGlmdCthbHQreCwgdXNlCj4gPiAKPiA+ICgoQS1YKSAiLi4uIikKPiA+IAo+ID4gSWYgdGhl IHggYWJvdmUgaXMgbm90IGFuIGFscGhhYmV0LCBzaGlmdCthbHQreCBpcyByZXByZXNlbnRlZCBi eQo+ID4gKFMtQS14KS4gIEZvciBleGFtcGxlLAo+ID4gCj4gPiAoKEEtOykgIjsiKQo+ID4gKChT LUEtOykgIjoiKQogIFRoaXMgaXMgbm90IHdvcmtpbmcuIFVzaW5nIHRoZSBhdHRhY2hlZCBrZXlt YXAgSWYgSSBhbSB3cml0aW5nLAogQWx0K3NoaWZ0KzAgdGhlbiBpdCBzaG91bGQgZ2l2ZSBtZSAi KSIgYnV0IGl0cyBnaXZpbmcgbWUgcmVzdWx0cyBmcm9tCnNoaWZ0KzAgd2hpY2ggcmVzdWx0cyAi KSIuIAogIEluIGdlbmVyYWwsIApBbHQrc2hpZnQrPGtleT4gYXJlIG5vdCB3b3JraW5nIGJ1dCBp ZiBTaGlmdCtBbHQrPGtleT4gaXMgd29ya2luZyBidXQKaXRzIG91dHB1dCBpcyBub3QgdGhlIG9u ZSBJIHJlcXVpcmVkLiBJdHMgZ2l2aW5nIG91dHB1dCBhcyBTaGlmdCs8a2V5PgogIEF0dGFjaGlu ZyB0aGUgY3VycmVudCB1bmRlciBkZXZlbG9wbWVudCBoaS1yZW1pbmd0b24ubWltIGZpbGUuClJl Z2FyZHMsClBhcmFnLgoKLS09LS84TjZ0bUF4cWdZUTNNQ2FpeTNjCkNvbnRlbnQtRGlzcG9zaXRp b246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWhpLXJlbWluZ3Rvbi5taW0KQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBuYW1lPWhpLXJlbWluZ3Rvbi5taW07IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAoKOzsgaGktcmVtaW5ndG9uLm1pbSAtLSBIaW5kaSBpbnB1 dCBtZXRob2QgZm9yIFJlbWluZ3RvbiB0eXBld3JpdGVyIGxheW91dAo7OyBDb3B5cmlnaHQgKGMp IDIwMDYtMjAwNyBSZWQgSGF0LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCgo7OyBUaGlzIGZp bGUgaXMgcGFydCBvZiB0aGUgbTE3biBjb250cmliOyBhIHN1Yi1wYXJ0IG9mIHRoZSBtMTduCjs7 IGxpYnJhcnkuCgo7OyBUaGUgbTE3biBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgo7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKOzsgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZgo7OyB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCjs7IFRoZSBt MTduIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKOzsgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KCjs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKOzsgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZSBtMTduIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKOzsgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKOzsgQm9zdG9u LCBNQSAwMjExMC0xMzAxLCBVU0EuCgooaW5wdXQtbWV0aG9kIGhpIHJlbWluZ3RvbikKCihkZXNj cmlwdGlvbiAiSGluZGkgaW5wdXQgbWV0aG9kIGZvciBSZW1pbmd0b24gdHlwZXdyaXRlciBsYXlv dXQuCkF1dGhvcjogUmFqZXNoIFJhbmphbiA8cnJhbmphbkByZWRoYXQuY29tPgoiKQoKKHRpdGxl ICIbJCwxNVUbKEIiKQoKKG1hcAogKHRyYW5zCiAKICAoKEtQXzEpICIbJCwxNkcbKEIiKQogICgo S1BfMikgIhskLDE2SBsoQiIpCiAgKChLUF8zKSAiGyQsMTZJGyhCIikKICAoKEtQXzQpICIbJCwx NkobKEIiKQogICgoS1BfNSkgIhskLDE2SxsoQiIpCiAgKChLUF82KSAiGyQsMTZMGyhCIikKICAo KEtQXzcpICIbJCwxNk0bKEIiKQogICgoS1BfOCkgIhskLDE2ThsoQiIpCiAgKChLUF85KSAiGyQs MTZPGyhCIikKICAoKEtQXzApICIbJCwxNkYbKEIiKQogICgoS1BfRGVjaW1hbCkgIi4iKQogICgo S1BfRGl2aWRlKSAiLyIpCiAgKChLUF9NdWx0aXBseSkgIioiKQogICgoS1BfQWRkKSAiKyIpCiAg KChLUF9TdWJ0cmFjdCkgIi0iKSAKIAogICgifiIgIhskLDE1ZjYtNW8bKEIiKQogKCJgIiAiYCIp IAogKCIhIiAifCIpCiAgKCIxIiAiGyQsMTZHGyhCIikKICgiQCIgIi8iKQogICgiMiIgIhskLDE2 SBsoQiIpCiAoIiMiICI6IikKICAoIjMiICIbJCwxNkkbKEIiKQogKCIkIiAiPSIpCiAgKCI0IiAi GyQsMTZKGyhCIikKICgiJSIgIi0iKQogICgiNSIgIhskLDE2SxsoQiIpCiAoIl4iICJcIiIpCiAg KCI2IiAiGyQsMTZMGyhCIikKICgiJiIgIiciKQogICgiNyIgIhskLDE2TRsoQiIpCiAoIioiICIb JCwxNWY2LTVYGyhCIikKICAoIjgiICIbJCwxNk4bKEIiKQogKCIoIiAiGyQsMTVkNi01cBsoQiIp CiAgKCI5IiAiGyQsMTZPGyhCIikKICAoIikiICIbJCwxNUsbKEIiKQogICgiMCIgIhskLDE2Rhso QiIpCiAgKCJfIiAiGyQsMTV8GyhCIikKICgiLSIgIi0iKQogICgiKyIgIhskLDE2LRsoQiIpCiAg KCI9IiAiGyQsMTYjGyhCIikKICgiUSIgIhskLDE1axsoQiIpCiAoInEiICIbJCwxNiEbKEIiKQog KCJXIiAiGyQsMTYlGyhCIikKICgidyIgIhskLDE2IhsoQiIpCiAoIkUiICIbJCwxNW42LRsoQiIp CiAoImUiICIbJCwxNW4bKEIiKQogKCJSIiAiGyQsMTVkNi0bKEIiKQogKCJyIiAiGyQsMTVkGyhC IikKICgiVCIgIhskLDE1XDYtGyhCIikKICgidCIgIhskLDE1XBsoQiIpCiAoIlkiICIbJCwxNXI2 LRsoQiIpCiAoInkiICIbJCwxNXIbKEIiKQogKCJVIiAiGyQsMTVoNi0bKEIiKQogKCJ1IiAiGyQs MTVoGyhCIikKICgiSSIgIhskLDE1ajYtGyhCIikKICgiaSIgIhskLDE1ahsoQiIpCiAoIk8iICIb JCwxNXU2LRsoQiIpCiAoIm8iICIbJCwxNXUbKEIiKQogKCJQIiAiGyQsMTVaNi0bKEIiKQogKCJw IiAiGyQsMTVaGyhCIikKICAoInsiICIbJCwxNVU2LTV3Ni0bKEIiKQogICgiWyIgIhskLDE1VjYt GyhCIikKICAoIn0iICIbJCwxNWY2LTV1GyhCIikKICgiXSIgIiwiKQogKCJ8IiAiOiIpCgogKCJB IiAiGyQsMTZEGyhCIikKICgiYSIgIi4iKQogKCJTIiAiGyQsMTYoGyhCIikKICgicyIgIhskLDE2 JxsoQiIpCiAoIkQiICIbJCwxNVU2LRsoQiIpCiAoImQiICIbJCwxNVUbKEIiKQogKCJGIiAiGyQs MTVlNi0bKEIiKQogKCJmIiAiGyQsMTV/GyhCIikKICgiRyIgIhskLDE1cxsoQiIpCiAoImciICIb JCwxNXkbKEIiKQogKCJIIiAiGyQsMTVtNi0bKEIiKQogKCJoIiAiGyQsMTYgGyhCIikKICgiSiIg IhskLDE1djYtNXAbKEIiKQogKCJqIiAiGyQsMTVwGyhCIikKICgiSyIgIhskLDE1XDYtNV4bKEIi KQogKCJrIiAiGyQsMTV+GyhCIikKICgiTCIgIhskLDE1eDYtGyhCIikKICgibCIgIhskLDE1eBso QiIpCiAgKCI6IiAiGyQsMTVwNiIbKEIiKQogICgiOyIgIhskLDE1bxsoQiIpCiAgKCJcIiIgIhsk LDE1dzYtGyhCIikKICAoIiciICIbJCwxNXY2LRsoQiIpCiAoIloiICIbJCwxNXA2LRsoQiIpIAog KCJ6IiAieiIpCiAoIlgiICIbJCwxNVc2LRsoQiIpCiAoIngiICIbJCwxNVcbKEIiKQogKCJDIiAi GyQsMTVsNi0bKEIiKQogKCJjIiAiGyQsMTVsGyhCIikKICgiViIgIhskLDE1XxsoQiIpCiAoInYi ICIbJCwxNUUbKEIiKQogKCJCIiAiGyQsMTVgGyhCIikKICgiYiIgIhskLDE1RxsoQiIpCiAoIk4i ICIbJCwxNVsbKEIiKQogKCJuIiAiGyQsMTVmGyhCIikKICgiTSIgIhskLDE1YRsoQiIpCiAoIm0i ICIbJCwxNUkbKEIiKQogICgiPCIgIhskLDE1YhsoQiIpCiAgKCIsIiAiGyQsMTVPGyhCIikKICAo Ij4iICIbJCwxNV0bKEIiKQogICgiLiIgIhskLDE1YzYtGyhCIikKICAoIj8iICIbJCwxNVg2LRso QiIpCiAgKCIvIiAiGyQsMTVnNi0bKEIiKQoKICgoQS0xKSAiGyQsMTYwGyhCIikKICgoQS0yKSAi GyQsMTV9GyhCIikKICgoQS0zKSAiJyIpCiAoKEEtNSkgIiUiKQogKChBLTgpICJ4IikKICgoQS0w KSAiGyQsMTVLGyhCIikKICgoQS0tKSAiLSIpCiAoKEEtPSkgIj0iKQoKICgoQS1xKSAiGyQsMTV5 NWM2LRsoQiIpCiAoKEEtcikgIhskLDE1ZDYtNWQbKEIiKQogKChBLXQpICIbJCwxNV4bKEIiKQog KChBLXkpICIbJCwxNXIbKEIiKQoKICgoQS1hKSAiXCIiKQogKChBLWopICI9IikKICgoQS1sKSAi GyQsMTV2GyhCIikKICgoQS07KSAiOyIpCiAoKEEtJykgIiciKQoKICgoQS16KSAiXiIpCiAoKEEt bSkgIhskLDE1WRsoQiIpCiAoKEEtLCkgIiwiKQogKChBLS4pICIuIikKICgoQS0vKSAiLyIpCiAK ICgoUy1BLTEpICIhIikKICgoUy1BLTMpICInIikKICgoUy1BLTUpICIbLEF3GyhCIikKICgoUy1B LTgpICIqIikKICgoQS1TLTkpICIoIikKICgoQS1TLTApICIpIikKICgoUy1BLS0pICItLSIpCiAo KFMtQS09KSAiKyIpCgogKChTLUEtOykgIjoiKQoKICgoUy1BLScpICJcIiIpCgogKChTLUEtLykg Ij8iKQogICkpCgooc3RhdGUKICAoaW5pdAogICAgKHRyYW5zKSkpCgoKCgotLT0tLzhONnRtQXhx Z1lRM01DYWl5M2MtLQoKCkZyb20gcGV0ZXJzZW5AcmVkaGF0LmNvbSBGcmkgQXVnIDAzIDE1OjAy OjEyIDIwMDcKWC1STUFJTC1BVFRSSUJVVEVTOiAtLS0tLS0tClJldHVybi1wYXRoOiA8cGV0ZXJz ZW5AcmVkaGF0LmNvbT4KWC1TcGFtLUNoZWNrZXItVmVyc2lvbjogU3BhbUFzc2Fzc2luIDMuMi4x ICgyMDA3LTA1LTAyKSBvbiBldGxrZW4ubTE3bi5vcmcKWC1TcGFtLUxldmVsOiAKWC1TcGFtLVN0 YXR1czogTm8sIHNjb3JlPS0yLjYgcmVxdWlyZWQ9NS4wIHRlc3RzPUFXTCxCQVlFU18wMCBhdXRv bGVhcm49aGFtCgl2ZXJzaW9uPTMuMi4xCkVudmVsb3BlLXRvOiBoYW5kYUBsb2NhbGhvc3QKRGVs aXZlcnktZGF0ZTogRnJpLCAwMyBBdWcgMjAwNyAxNTowMjoxMiArMDkwMApSZWNlaXZlZDogZnJv bSBsb2NhbGhvc3QKCShbMTI3LjAuMC4xXSBoZWxvPWV0bGtlbi5tMTduLm9yZyBpZGVudD1mZXRj aG1haWwpCglieSBldGxrZW4ubTE3bi5vcmcgd2l0aCBlc210cCAoRXhpbSA0LjY3KQoJKGVudmVs b3BlLWZyb20gPHBldGVyc2VuQHJlZGhhdC5jb20+KQoJaWQgMUlHcUVtLTAwMDI4NS04agoJZm9y IGhhbmRhQGxvY2FsaG9zdDsgRnJpLCAwMyBBdWcgMjAwNyAxNTowMjoxMiArMDkwMApSZWNlaXZl ZDogZnJvbSBtYWlsLmFpc3QuZ28uanAgWzE1MC4yOS4yNDYuMTBdCglieSBldGxrZW4ubTE3bi5v cmcgd2l0aCBQT1AzIChmZXRjaG1haWwtNi4zLjgpCglmb3IgPGhhbmRhQGxvY2FsaG9zdD4gKHNp bmdsZS1kcm9wKTsgRnJpLCAwMyBBdWcgMjAwNyAxNTowMjoxMiArMDkwMCAoSlNUKQpSZWNlaXZl ZDogCglieSBzbXRwNC5haXN0LmdvLmpwICB3aXRoIEVTTVRQIGlkIGw3MzYyMWM5MDE5ODE2OwoJ RnJpLCAzIEF1ZyAyMDA3IDE1OjAyOjAyICswOTAwIChKU1QpCgllbnYtZnJvbSAocGV0ZXJzZW5A cmVkaGF0LmNvbSkKUmVjZWl2ZWQ6IGZyb20gbWFpbC5tMTduLm9yZyAobWFpbC5tMTduLm9yZyBb MTY0LjQ2LjgxLjJdKQoJYnkgbXgyLmFpc3QuZ28uanAgIHdpdGggRVNNVFAgaWQgbDczNjF4UU4w MDc5MzE7CglGcmksIDMgQXVnIDIwMDcgMTU6MDI6MDAgKzA5MDAgKEpTVCkKCWVudi1mcm9tIChw ZXRlcnNlbkByZWRoYXQuY29tKQpSZWNlaXZlZDogZnJvbSBteDEucmVkaGF0LmNvbSAobXgxLnJl ZGhhdC5jb20gWzY2LjE4Ny4yMzMuMzFdKQoJYnkgbWFpbC5tMTduLm9yZyAoOC4xMi4xMS4yMDA2 MDgyOS84LjExLjMpIHdpdGggRVNNVFAgaWQgbDczNjF3bjgwMTg3Nzg7CglGcmksIDMgQXVnIDIw MDcgMTU6MDE6NTkgKzA5MDAKUmVjZWl2ZWQ6IGZyb20gaW50LW14MS5jb3JwLnJlZGhhdC5jb20g KGludC1teDEuY29ycC5yZWRoYXQuY29tIFsxNzIuMTYuNTIuMjU0XSkKCWJ5IG14MS5yZWRoYXQu Y29tICg4LjEzLjEvOC4xMy4xKSB3aXRoIEVTTVRQIGlkIGw3MzYxdjIyMDIwMTc5OwoJRnJpLCAz IEF1ZyAyMDA3IDAyOjAxOjU3IC0wNDAwClJlY2VpdmVkOiBmcm9tIHBvYm94LmJyaXNiYW5lLnJl ZGhhdC5jb20gKHBvYm94LmJyaXNiYW5lLnJlZGhhdC5jb20gWzE3Mi4xNi40NC4xMF0pCglieSBp bnQtbXgxLmNvcnAucmVkaGF0LmNvbSAoOC4xMy4xLzguMTMuMSkgd2l0aCBFU01UUCBpZCBsNzM2 MXQwNzAzMDE4OTsKCUZyaSwgMyBBdWcgMjAwNyAwMjowMTo1NiAtMDQwMApSZWNlaXZlZDogZnJv bSBkaGNwLTY1LmJyaXNiYW5lLnJlZGhhdC5jb20gKGRoY3AtNjUuYnJpc2JhbmUucmVkaGF0LmNv bSBbMTcyLjE2LjQ1LjY1XSkKCWJ5IHBvYm94LmJyaXNiYW5lLnJlZGhhdC5jb20gKDguMTMuMS84 LjEzLjEpIHdpdGggRVNNVFAgaWQgbDczNjFzWDUwMTQ4MjE7CglGcmksIDMgQXVnIDIwMDcgMTY6 MDE6NTUgKzEwMDAKTWVzc2FnZS1JRDogPDQ2QjJDNEQyLjIwMjA4QHJlZGhhdC5jb20+CkRhdGU6 IEZyaSwgMDMgQXVnIDIwMDcgMTY6MDE6NTQgKzEwMDAKRnJvbTogSmVucyBQZXRlcnNlbiA8cGV0 ZXJzZW5AcmVkaGF0LmNvbT4KVXNlci1BZ2VudDogVGh1bmRlcmJpcmQgMi4wLjAuNSAoWDExLzIw MDcwNzE5KQpNSU1FLVZlcnNpb246IDEuMApUbzogUGFyYWcgTmVtYWRlIDxwbmVtYWRlQHJlZGhh dC5jb20+CkNDOiBUQUtBSEFTSEkgTmFvdG8gPG50YWthaGFzQG0xN24ub3JnPiwgaGFuZGFAbTE3 bi5vcmcKU3ViamVjdDogUmU6IFVyZ2VudCBoZWxwIG5lZWRlZApSZWZlcmVuY2VzOiA8MTE4NjAz MjkyOC4xOTIxMy40LmNhbWVsQHJhd2hpZGVUTS5wbnEucmVkaGF0LmNvbT4JIDxFMUlHWmxaLTAw MDByVC04ZEBkdXJvbi5tMTduLm9yZz4JIDwxMTg2MDU3OTc2LjQ1NTMuMTEuY2FtZWxAZGhjcDEt NDgucG5xLnJlZGhhdC5jb20+IDwxMTg2MTE4ODczLjI4NDcuOC5jYW1lbEByYXdoaWRlVE0ucG5x LnJlZGhhdC5jb20+CkluLVJlcGx5LVRvOiA8MTE4NjExODg3My4yODQ3LjguY2FtZWxAcmF3aGlk ZVRNLnBucS5yZWRoYXQuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKUGFyYWcg TmVtYWRlIBskQiQ1JHMkTz1xJC0kXiQ3JD8bKEI6Cj4gICBUaGlzIGlzIG5vdCB3b3JraW5nLiBV c2luZyB0aGUgYXR0YWNoZWQga2V5bWFwIElmIEkgYW0gd3JpdGluZywKPiAgQWx0K3NoaWZ0KzAg dGhlbiBpdCBzaG91bGQgZ2l2ZSBtZSAiKSIgYnV0IGl0cyBnaXZpbmcgbWUgcmVzdWx0cyBmcm9t Cj4gc2hpZnQrMCB3aGljaCByZXN1bHRzICIpIi4gCj4gICBJbiBnZW5lcmFsLCAKPiBBbHQrc2hp ZnQrPGtleT4gYXJlIG5vdCB3b3JraW5nIGJ1dCBpZiBTaGlmdCtBbHQrPGtleT4gaXMgd29ya2lu ZyBidXQKPiBpdHMgb3V0cHV0IGlzIG5vdCB0aGUgb25lIEkgcmVxdWlyZWQuIEl0cyBnaXZpbmcg b3V0cHV0IGFzIFNoaWZ0KzxrZXk+CgpDYW4geW91IHRyeSB3aXRoOgoKKEEtXCkpICIpIikKCmV0 Yz8gIE5vdCBzdXJlIGFib3V0IHRoZSBxdW90aW5nLi4uCgpKZW5zCi0tIApKZW5zIFBldGVyc2Vu CkludGVybmF0aW9uYWxpemF0aW9uIFRlYW0KUmVkIEhhdAoK --=-=-=--