From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Daniel Pfeiffer Newsgroups: gmane.emacs.bugs Subject: CPerl mode cleaned up Date: Wed, 12 Feb 2003 00:11:31 +0100 Sender: bug-gnu-emacs-bounces+gnu-bug-gnu-emacs=m.gmane.org@gnu.org Message-ID: <20030212001131.3d6e6c97.occitan@esperanto.org> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Wed__12_Feb_2003_00:11:31_+0100_08761960" X-Trace: main.gmane.org 1045005235 15794 80.91.224.249 (11 Feb 2003 23:13:55 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Tue, 11 Feb 2003 23:13:55 +0000 (UTC) Cc: Ilya Zakharevich Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18ijb5-00046D-00 for ; Wed, 12 Feb 2003 00:13:51 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18ijbl-00087H-00 for gnu-bug-gnu-emacs@m.gmane.org; Tue, 11 Feb 2003 18:14:33 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18ijb5-00082E-00 for bug-gnu-emacs@gnu.org; Tue, 11 Feb 2003 18:13:51 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18ijb3-00080i-00 for bug-gnu-emacs@gnu.org; Tue, 11 Feb 2003 18:13:50 -0500 Original-Received: from mailout11.sul.t-online.com ([194.25.134.85]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18ijb1-0007rF-00; Tue, 11 Feb 2003 18:13:47 -0500 Original-Received: from fwd00.sul.t-online.de by mailout11.sul.t-online.com with smtp id 18ijb0-0001cY-00; Wed, 12 Feb 2003 00:13:46 +0100 Original-Received: from pfdabpc.inhouse.start.de (520007185214-0001@[80.128.211.8]) by fmrl00.sul.t-online.com with smtp id 18ijac-1x8Jl2C; Wed, 12 Feb 2003 00:13:22 +0100 Original-To: bug-gnu-emacs@gnu.org X-Mailer: Sylpheed version 0.8.1claws (GTK+ 1.2.10; ) X-Operating-System: GNU/Linux of course X-Face: #O4jYYB1q_#GM@+5bpI17zYh*qp]@lt"%.HQGbezyU>Cm@cp>rdE97{c:@). kR3O3H&LeNb(Q\/E^f{g|i~#u\4!\lJ"jR; Cx&[\,\xjKcLei-_1\d&TAm\E3&(c|>cQIoik]V8Vdf Qs)St&=rh'+N6/WxXf.VfUnD[<; 9{#[ZWC>]FP$xVRgTLssqs)7nQ'sH@l[9b5oo1@llkNJPx;&H(^ o~/ X-Sender: 520007185214-0001@t-dialin.net Original-cc: Richard Stallman X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Bug reports for GNU Emacs, the Swiss army knife of text editors List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: bug-gnu-emacs-bounces+gnu-bug-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.bugs:4430 X-Report-Spam: http://spam.gmane.org/gmane.emacs.bugs:4430 This is a multi-part message in MIME format. --Multipart_Wed__12_Feb_2003_00:11:31_+0100_08761960 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit Hi, the version of CPerl mode seems utter chaos. Both Emacs and Ilya's web-site have 4.32, but they are very different. While Emacs' newest copyright is much older, CVS with its many little fixes, shows that the opposite is true. Therefore I have updated both the copyright and version number to 4.33. I have changed no functionality (as the mode is rather intimidating). But I have continued the cleanup from CVS started in many places. Note that there are two diffs, as most changes concern indentation (which was often wrong and misleading). So the first shows only "real" non-whitespace changes. coralament / best Grötens / liebe Grüße / best regards / elkorajn salutojn Daniel Pfeiffer -- GPL 3: take the wind out of Palladium's sails! -- ------ -- My other stuff here too, sawfish, make.pl...: -- ------ -- http://dapfy.bei.t-online.de/ -- --Multipart_Wed__12_Feb_2003_00:11:31_+0100_08761960 Content-Type: application/octet-stream; name="ChangeLog" Content-Disposition: attachment; filename="ChangeLog" Content-Transfer-Encoding: base64 MjAwMy0wMi0xMSAgRGFuaWVsIFBmZWlmZmVyICA8b2NjaXRhbkBlc3BlcmFudG8ub3JnPgoKCSog Y3BlcmwtbW9kZS5lbDogbm9ybWFsaXplZCBjb21tZW50IHN0YXJ0ZXJzLCBub3JtYWxpemVkCglp bmRlbnRhdGlvbiAoZXhjZXB0IHdoZXJlIGNvbnN0cnVjdGVkIHJlZ2V4cHMgd2VyZSBwdXJwb3Nl bHkKCWluZGVudGVkIGRpZmZlcmVudGx5KSwgcmVhcnJhbmdlZCBsZXQtY2xhdXNlcyBzbyB0aGV5 IGluZGVudAoJcmlnaHQsIGRyZXcgdXAgZGFuZ2xpbmcgcGFyZW5zIGFuZCBkb2Mgc3RyaW5nIGVu ZHMsIHJlbW92ZWQKCW9ic29sZXRlIGZ1bmN0aW9uYHMgYXJvdW5kIGxhbWJkYWBzLCBjb25zaXN0 ZW50bHkgdXBjYXNlZCAiUE9EIiBpbgoJc3RyaW5ncwoJKGNwZXJsLXRpcHMpOiBoaW50IHRoYXQg ZnRwIHZlcnNpb24gaXNuJ3QgbmVjZXNzYXJpbHkgbmV3ZXIKCShjcGVybC1tb2RlKTogdW5sZXNz IGluc3RlYWQgb2YgKG9yIC4uIChwcm9nbikpCgkoY3BlcmwtZmluZC1wb2RzLWhlcmVzKTogd3Jp dGUgY29tcGxleCBjb25kaXRpb24gb25seSBvbmNlCgkoY3BlcmwtYmFja3dhcmQtdG8tbm9uY29t bWVudCk6IHNpbXBsaWZpZWQgaWYKCShjcGVybC1pbmRlbnQtcmVnaW9uKTogZWxpbWluYXRlIG5l c3RlZCBzYXZlLWV4Y3Vyc2lvbgoJKGNwZXJsLXNob3J0LWRvY3MpOiB1c2Ugc2FtZSBwc2V1ZG8t dmFsdWUgYXMgb3RoZXIgY3BlcmwgbWljcm8KCWRvY3MsIHJlbW92ZSBlbGltaW5hdGVkIGNvbXBh cmF0b3JzCgkoY3BlcmwtdmVyc2lvbik6IGluY3JlbWVudGVkLCB0byBlbmQgY29uZnVzaW9uCg== --Multipart_Wed__12_Feb_2003_00:11:31_+0100_08761960 Content-Type: application/octet-stream; name="cperl-bu.diff" Content-Disposition: attachment; filename="cperl-bu.diff" Content-Transfer-Encoding: base64 VGhpcyBvbmUgaXMgb25seSBmb3IgdW5kZXJzdGFuZGluZyB0aGUgcmVhbCBjaGFuZ2VzLiAgQXBw bHkgdGhlIG90aGVyIHBhdGNoCndoaWNoIGluY2x1ZGVzIGNvcnJlY3RlZCBpbmRlbnRhdGlvbi4K Ci0tLSBDVlMvY3BlcmwtbW9kZS5lbAkyMDAzLTAyLTA0IDE0OjI0OjM0LjAwMDAwMDAwMCArMDEw MAorKysgcGZlaWZmZXIvY3BlcmwtbW9kZS5lbAkyMDAzLTAyLTExIDIzOjAwOjI4LjAwMDAwMDAw MCArMDEwMApAQCAtMSwzICsxLDIgQEAKIDs7OyBjcGVybC1tb2RlLmVsIC0tLSBQZXJsIGNvZGUg ZWRpdGluZyBjb21tYW5kcyBmb3IgRW1hY3MKIAotOzsgQ29weXJpZ2h0IChDKSAxOTg1LCA4Niwg ODcsIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDE5OTcKKjs7IENvcHlyaWdodCAoQykgMTk4NSwg ODYsIDg3LCA5MSwgOTIsIDkzLCA5NCwgOTUsIDk2LCAxOTk3LCAyMDAwLCAyMDAzCiA7OyAgICAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKIDs7IEF1dGhvcjogSWx5YSBaYWtoYXJl dmljaCBhbmQgQm9iIE9sc29uCkBAIC0yOCw1ICsyOCwzIEBACiAKIDs7OyBDb21tZW50YXJ5Ogog Ci07OzsgWW91IGNhbiBlaXRoZXIgZmluZS10dW5lIHRoZSBiZWxscyBhbmQgd2hpc3RsZXMgb2Yg dGhpcyBtb2RlIG9yCi07OzsgYnVsayBlbmFibGUgdGhlbSBieSBwdXR0aW5nCio7OyBZb3UgY2Fu IGVpdGhlciBmaW5lLXR1bmUgdGhlIGJlbGxzIGFuZCB3aGlzdGxlcyBvZiB0aGlzIG1vZGUgb3IK Kjs7IGJ1bGsgZW5hYmxlIHRoZW0gYnkgcHV0dGluZwogCiA7OyAoc2V0cSBjcGVybC1oYWlyeSB0 KQogCi07OzsgaW4geW91ciAuZW1hY3MgZmlsZS4gIChFbWFjcyBydWxlcnMgZG8gbm90IGNvbnNp ZGVyIGl0IHBvbGl0aWNhbGx5Ci07OzsgY29ycmVjdCB0byBtYWtlIHdoaXN0bGVzIGVuYWJsZWQg YnkgZGVmYXVsdC4pCio7OyBpbiB5b3VyIC5lbWFjcyBmaWxlLiAgKEVtYWNzIHJ1bGVycyBkbyBu b3QgY29uc2lkZXIgaXQgcG9saXRpY2FsbHkKKjs7IGNvcnJlY3QgdG8gbWFrZSB3aGlzdGxlcyBl bmFibGVkIGJ5IGRlZmF1bHQuKQogCi07OzsgRE8gTk9UIEZPUkdFVCB0byByZWFkIG1pY3JvLWRv Y3MgKGF2YWlsYWJsZSBmcm9tIGBQZXJsJyBtZW51KSAgIDw8PDw8PAotOzs7IG9yIGFzIGhlbHAg b24gdmFyaWFibGVzIGBjcGVybC10aXBzJywgYGNwZXJsLXByb2JsZW1zJywgICAgICAgICA8PDw8 PDwKLTs7OyBgY3BlcmwtcHJhaXNlJywgYGNwZXJsLXNwZWVkJy4JCQkJICAgIDw8PDw8PAotCi07 OzsgVGhlIG1vZGUgaW5mb3JtYXRpb24gKG9uIEMtaCBtKSBwcm92aWRlcyBzb21lIGN1c3RvbWl6 YXRpb24gaGVscC4KLTs7OyBJZiB5b3UgdXNlIGZvbnQtbG9jayBmZWF0dXJlIG9mIHRoaXMgbW9k ZSwgaXQgaXMgYWR2aXNhYmxlIHRvIHVzZQotOzs7IGVpdGhlciBsYXp5LWxvY2stbW9kZSBvciBm YXN0LWxvY2stbW9kZS4gIEkgcHJlZmVyIGxhenktbG9jay4KLQotOzs7IEZhY2VzIHVzZWQgbm93 OiB0aHJlZSBmYWNlcyBmb3IgZmlyc3QtY2xhc3MgYW5kIHNlY29uZC1jbGFzcyBrZXl3b3Jkcwot Ozs7IGFuZCBjb250cm9sIGZsb3cgd29yZHMsIG9uZSBmb3IgZWFjaDogY29tbWVudHMsIHN0cmlu ZywgbGFiZWxzLAotOzs7IGZ1bmN0aW9ucyBkZWZpbml0aW9ucyBhbmQgcGFja2FnZXMsIGFycmF5 cywgaGFzaGVzLCBhbmQgdmFyaWFibGUKLTs7OyBkZWZpbml0aW9ucy4gIElmIHlvdSBkbyBub3Qg c2VlIGFsbCB0aGVzZSBmYWNlcywgeW91ciBmb250LWxvY2sgZG9lcwotOzs7IG5vdCBkZWZpbmUg dGhlbSwgc28geW91IG5lZWQgdG8gZGVmaW5lIHRoZW0gbWFudWFsbHkuCi0KLTs7OyBpbnRvIHlv dXIgLmVtYWNzIGZpbGUuCi0KLTs7OzsgVGhpcyBtb2RlIHN1cHBvcnRzIGZvbnQtbG9jaywgaW1l bnUgYW5kIG1vZGUtY29tcGlsZS4gIEluIHRoZQotOzs7OyBoYWlyeSB2ZXJzaW9uIGZvbnQtbG9j ayBpcyBvbiwgYnV0IHlvdSBzaG91bGQgYWN0aXZhdGUgaW1lbnUKLTs7OzsgeW91cnNlbGYgKG5v dGUgdGhhdCBtb2RlLWNvbXBpbGUgaXMgbm90IHN0YW5kYXJkIHlldCkuICBXZWxsLCB5b3UKLTs7 OzsgY2FuIHVzZSBpbWVudSBmcm9tIGtleWJvYXJkIGFueXdheSAoTS14IGltZW51KSwgYnV0IGl0 IGlzIGJldHRlcgotOzs7OyB0byBiaW5kIGl0IGxpa2UgdGhhdDoKKjs7IERPIE5PVCBGT1JHRVQg dG8gcmVhZCBtaWNyby1kb2NzIChhdmFpbGFibGUgZnJvbSBgUGVybCcgbWVudSkgICA8PDw8PDwK Kjs7IG9yIGFzIGhlbHAgb24gdmFyaWFibGVzIGBjcGVybC10aXBzJywgYGNwZXJsLXByb2JsZW1z JywgICAgICAgICA8PDw8PDwKKjs7IGBjcGVybC1wcmFpc2UnLCBgY3Blcmwtc3BlZWQnLgkJCQkg ICA8PDw8PDwKKgoqOzsgVGhlIG1vZGUgaW5mb3JtYXRpb24gKG9uIEMtaCBtKSBwcm92aWRlcyBz b21lIGN1c3RvbWl6YXRpb24gaGVscC4KKjs7IElmIHlvdSB1c2UgZm9udC1sb2NrIGZlYXR1cmUg b2YgdGhpcyBtb2RlLCBpdCBpcyBhZHZpc2FibGUgdG8gdXNlCio7OyBlaXRoZXIgbGF6eS1sb2Nr LW1vZGUgb3IgZmFzdC1sb2NrLW1vZGUuICBJIHByZWZlciBsYXp5LWxvY2suCioKKjs7IEZhY2Vz IHVzZWQgbm93OiB0aHJlZSBmYWNlcyBmb3IgZmlyc3QtY2xhc3MgYW5kIHNlY29uZC1jbGFzcyBr ZXl3b3JkcwoqOzsgYW5kIGNvbnRyb2wgZmxvdyB3b3Jkcywgb25lIGZvciBlYWNoOiBjb21tZW50 cywgc3RyaW5nLCBsYWJlbHMsCio7OyBmdW5jdGlvbnMgZGVmaW5pdGlvbnMgYW5kIHBhY2thZ2Vz LCBhcnJheXMsIGhhc2hlcywgYW5kIHZhcmlhYmxlCio7OyBkZWZpbml0aW9ucy4gIElmIHlvdSBk byBub3Qgc2VlIGFsbCB0aGVzZSBmYWNlcywgeW91ciBmb250LWxvY2sgZG9lcwoqOzsgbm90IGRl ZmluZSB0aGVtLCBzbyB5b3UgbmVlZCB0byBkZWZpbmUgdGhlbSBtYW51YWxseS4KKgoqOzsgVGhp cyBtb2RlIHN1cHBvcnRzIGZvbnQtbG9jaywgaW1lbnUgYW5kIG1vZGUtY29tcGlsZS4gIEluIHRo ZQoqOzsgaGFpcnkgdmVyc2lvbiBmb250LWxvY2sgaXMgb24sIGJ1dCB5b3Ugc2hvdWxkIGFjdGl2 YXRlIGltZW51Cio7OyB5b3Vyc2VsZiAobm90ZSB0aGF0IG1vZGUtY29tcGlsZSBpcyBub3Qgc3Rh bmRhcmQgeWV0KS4gIFdlbGwsIHlvdQoqOzsgY2FuIHVzZSBpbWVudSBmcm9tIGtleWJvYXJkIGFu eXdheSAoTS14IGltZW51KSwgYnV0IGl0IGlzIGJldHRlcgoqOzsgdG8gYmluZCBpdCBsaWtlIHRo YXQ6CiAKIDs7IChkZWZpbmUta2V5IGdsb2JhbC1tYXAgW00tUy1kb3duLW1vdXNlLTNdICdpbWVu dSkKIAoqOzs7IEZvbnQgbG9jayBidWdzOgoqCio7OyBUaGUgZm9sbG93aW5nIGtpbmRzIG9mIFBl cmwgY29kZSBlcnJvbmVvdXNseSBzdGFydCBzdHJpbmdzOgoqOzsgXCRgICBcJCcgIFwkIgoqOzsg JG9wdDo6cyAgJG9wdF9zICAkb3B0e3N9ICAocyA9PiAuLi4pICAvXHMrLi4uLwoqOzsgbGlrZXdp c2Ugd2l0aCBtLCB0ciwgeSwgcSwgcVggaW5zdGVhZCBvZiBzCioKIDs7OyBDb2RlOgogCiA7OyBT b21lIG1hY3JvcyBhcmUgbmVlZGVkIGZvciBgZGVmY3VzdG9tJwpAQCAtMTcwLDUgKzE3NSwzIEBA CiBpbnN0ZWFkIG9mOgogCiAJaWYgKCkgewotCX0KLSIKKgl9IgogICA6dHlwZSAnYm9vbGVhbgog ICA6Z3JvdXAgJ2NwZXJsLWF1dG9pbnNlcnQtZGV0YWlscykKIApAQCAtMzU0LDQgKzM1OCwzIEBA CiAgIDpncm91cCAnY3BlcmwtYWZmZWN0ZWQtYnktaGFpcnkpCiAKIChkZWZjdXN0b20gY3Blcmwt cG9kLWZhY2UgJ2ZvbnQtbG9jay1jb21tZW50LWZhY2UKLSAgIipGYWNlIGZvciBwb2QgaGlnaGxp Z2h0aW5nLiIKKiAgIipGYWNlIGZvciBQT0QgaGlnaGxpZ2h0aW5nLiIKICAgOnR5cGUgJ2ZhY2UK ICAgOmdyb3VwICdjcGVybC1mYWNlcykKIAogKGRlZmN1c3RvbSBjcGVybC1wb2QtaGVhZC1mYWNl ICdmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCi0gICIqRmFjZSBmb3IgcG9kIGhpZ2hsaWdo dGluZy4KKiAgIipGYWNlIGZvciBQT0QgaGlnaGxpZ2h0aW5nLgogRm9udCBmb3IgUE9EIGhlYWRl cnMuIgogICA6dHlwZSAnZmFjZQogICA6Z3JvdXAgJ2NwZXJsLWZhY2VzKQpAQCAtMzc2LDQgKzM4 MCwzIEBACiAgIDpncm91cCAnY3BlcmwtZmFjZXMpCiAKIChkZWZjdXN0b20gY3BlcmwtcG9kLWhl cmUtZm9udGlmeSAnKGZlYXR1cmVwICdmb250LWxvY2spCi0gICIqTm90LW5pbCBhZnRlciBldmFs dWF0aW9uIG1lYW5zIHRvIGhpZ2hsaWdodCBwb2QgYW5kIGhlcmUtZG9jcyBzZWN0aW9ucy4iCiog ICIqTm90LW5pbCBhZnRlciBldmFsdWF0aW9uIG1lYW5zIHRvIGhpZ2hsaWdodCBQT0QgYW5kIGhl cmUtZG9jcyBzZWN0aW9ucy4iCiAgIDp0eXBlICdib29sZWFuCiAgIDpncm91cCAnY3BlcmwtZmFj ZXMpCiAKQEAgLTM5NSw0ICszOTksMyBAQAogICA6Z3JvdXAgJ2NwZXJsKQogCiAoZGVmY3VzdG9t IGNwZXJsLXBvZC1oZXJlLXNjYW4gdAotICAiKk5vdC1uaWwgbWVhbnMgbG9vayBmb3IgcG9kIGFu ZCBoZXJlLWRvY3Mgc2VjdGlvbnMgZHVyaW5nIHN0YXJ0dXAuCiogICIqTm90LW5pbCBtZWFucyBs b29rIGZvciBQT0QgYW5kIGhlcmUtZG9jcyBzZWN0aW9ucyBkdXJpbmcgc3RhcnR1cC4KIFlvdSBj YW4gYWx3YXlzIG1ha2UgbG9va3VwIGZyb20gbWVudSBvciB1c2luZyBcXFtjcGVybC1maW5kLXBv ZHMtaGVyZXNdLiIKICAgOnR5cGUgJ2Jvb2xlYW4KICAgOmdyb3VwICdjcGVybC1zcGVlZCkKQEAg LTU5Myw0ICs1OTcsMyBAQAogOzs7IFNob3J0IGV4dHJhLWRvY3MuCiAKIChkZWZ2YXIgY3Blcmwt dGlwcyAncGxlYXNlLWlnbm9yZS10aGlzLWxpbmUKLSAgIkdldCBuZXdlc3QgdmVyc2lvbiBvZiB0 aGlzIHBhY2thZ2UgZnJvbQoqICAiR2V0IG1heWJlIG5ld2VyIHZlcnNpb24gb2YgdGhpcyBwYWNr YWdlIGZyb20KICAgZnRwOi8vZnRwLm1hdGgub2hpby1zdGF0ZS5lZHUvcHViL3VzZXJzL2lseWEv ZW1hY3MKIGFuZC9vcgogICBmdHA6Ly9mdHAubWF0aC5vaGlvLXN0YXRlLmVkdS9wdWIvdXNlcnMv aWx5YS9wZXJsCkBAIC02ODEsNCArNjg1LDMgQEAKIAogVGhpcyBtYXkgYmUgY29uZnVzaW5nLCBz aW5jZSB0aGUgcmVnZXhwIHMjLy8jLyNcOyBtYXkgYmUgaGlnaGxpZ2h0ZWQKIGFzIGEgY29tbWVu dCwgYnV0IGl0IHdpbGwgYmUgcmVjb2duaXplZCBhcyBhIHJlZ2V4cCBieSB0aGUgaW5kZW50YXRp b24KLWNvZGUuICBPciB0aGUgb3Bwb3NpdGUgY2FzZSwgd2hlbiBhIHBvZCBzZWN0aW9uIGlzIGhp Z2hsaWdodGVkLCBidXQKKmNvZGUuICBPciB0aGUgb3Bwb3NpdGUgY2FzZSwgd2hlbiBhIFBPRCBz ZWN0aW9uIGlzIGhpZ2hsaWdodGVkLCBidXQKIG1heSBicmVhayB0aGUgaW5kZW50YXRpb24gb2Yg dGhlIGZvbGxvd2luZyBjb2RlICh0aG91Z2ggaW5kZW50YXRpb24KIHNob3VsZCB3b3JrIGlmIHRo ZSBiYWxhbmNlIG9mIGRlbGltaXRlcnMgaXMgbm90IGJyb2tlbiBieSBQT0QpLgogCkBAIC02OTks NCArNzAzLDMgQEAKIAogSWYgdGhlc2UgYnVncyBjYW5ub3QgYmUgZml4ZWQgb24geW91ciBtYWNo aW5lIChzYXksIHlvdSBoYXZlIGFuIGluZmVyaW9yCiBlbnZpcm9ubWVudCBhbmQgY2Fubm90IHJl Y29tcGlsZSksIHlvdSBtYXkgc3RpbGwgZGlzYWJsZSBhbGwgdGhlIGZhbmN5IHN0dWZmCi12aWEg YGNwZXJsLXVzZS1zeW50YXgtdGFibGUtdGV4dC1wcm9wZXJ0eScuIiApCip2aWEgYGNwZXJsLXVz ZS1zeW50YXgtdGFibGUtdGV4dC1wcm9wZXJ0eScuIikKIAogKGRlZnZhciBjcGVybC1wcmFpc2Ug J3BsZWFzZS1pZ25vcmUtdGhpcy1saW5lCiAgICJBZHZhbnRhZ2VzIG9mIENQZXJsIG1vZGUuCkBA IC03ODMsNSArNzg3LDMgQEAKIGxpbmUtYnJlYWtzL3NwYWNpbmcgYmV0d2VlbiBlbGVtZW50cyBv ZiB0aGUgY29uc3RydWN0LgogCiAxMCkgVXNlcyBhIGxpbmVhci10aW1lIGFsZ29yaXRoIGZvciBp bmRlbnRhdGlvbiBvZiByZWdpb25zIChvbiBFbWF4ZW4gd2l0aAotY2FwYWJsZSBzeW50YXggZW5n aW5lcykuCi0iKQoqY2FwYWJsZSBzeW50YXggZW5naW5lcykuIikKIAogKGRlZnZhciBjcGVybC1z cGVlZCAncGxlYXNlLWlnbm9yZS10aGlzLWxpbmUKICAgIlRoaXMgaXMgYW4gaW5jb21wbGV0ZSBj b21wZW5kaXVtIG9mIHdoYXQgaXMgYXZhaWxhYmxlIGluIG90aGVyIHBhcnRzCkBAIC04MjgsNSAr ODMxLDMgQEAKICAgICB3cm9uZ2x5IG1hdGNoZWQgcGFyZW50aGVzZXMsIHdyb25nIGluZGVudGF0 aW9uLCBldGMuCiAKICAgICBPbmUgY2FuIHVuc2V0IGBjcGVybC1zeW50YXhpZnktdW53aW5kJy4g IFRoaXMgbWlnaHQgc3BlZWQgdXAgZWRpdGluZwotICAgIG9mLCBzYXksIGxvbmcgUE9EIHNlY3Rp b25zLgotIikKKiAgICBvZiwgc2F5LCBsb25nIFBPRCBzZWN0aW9ucy4iKQogCiAoZGVmdmFyIGNw ZXJsLXRpcHMtZmFjZXMgJ3BsZWFzZS1pZ25vcmUtdGhpcy1saW5lCiAgICJDUGVybCBtb2RlIHVz ZXMgZm9sbG93aW5nIGZhY2VzIGZvciBoaWdobGlnaHRpbmc6CkBAIC05NTUsMyArOTU3LDMgQEAK IDs7OyAgICAgKHNldHEgaW50ZXJwcmV0ZXItbW9kZS1hbGlzdCAoYXBwZW5kIGludGVycHJldGVy LW1vZGUtYWxpc3QKIDs7OwkJCQkJICAnKCgibWluaXBlcmwiIC4gcGVybC1tb2RlKSkpKSkpCiAo ZXZhbC13aGVuLWNvbXBpbGUKKiAgKG1hcGMgKGxhbWJkYSAocCkKICAgKGNvbmRpdGlvbi1jYXNl IG5pbAotICAgICAgKHJlcXVpcmUgJ2ltZW51KQotICAgIChlcnJvciBuaWwpKQotICAoY29uZGl0 aW9uLWNhc2UgbmlsCi0gICAgICAocmVxdWlyZSAnZWFzeW1lbnUpCi0gICAgKGVycm9yIG5pbCkp Ci0gIChjb25kaXRpb24tY2FzZSBuaWwKLSAgICAgIChyZXF1aXJlICdldGFncykKLSAgICAoZXJy b3IgbmlsKSkKLSAgKGNvbmRpdGlvbi1jYXNlIG5pbAotICAgICAgKHJlcXVpcmUgJ3RpbWVyKQot ICAgIChlcnJvciBuaWwpKQotICAoY29uZGl0aW9uLWNhc2UgbmlsCi0gICAgICAocmVxdWlyZSAn bWFuKQotICAgIChlcnJvciBuaWwpKQotICAoY29uZGl0aW9uLWNhc2UgbmlsCi0gICAgICAocmVx dWlyZSAnaW5mbykKLSAgICAoZXJyb3IgbmlsKSkKKgkgICAgICAocmVxdWlyZSBwKQoqCSAgICAo ZXJyb3IgbmlsKSkpCioJJyhpbWVudSBlYXN5bWVudSBldGFncyB0aW1lciBtYW4gaW5mbykpCiAg IChpZiAoZmJvdW5kcCAncHMtZXh0ZW5kLWZhY2UtbGlzdCkKICAgICAgIChkZWZtYWNybyBjcGVy bC1wcy1leHRlbmQtZmFjZS1saXN0IChhcmcpCiAJYChwcy1leHRlbmQtZmFjZS1saXN0ICxhcmcp KQpAQCAtMTIyNCw1ICsxMjEzLDMgQEAKICAgKG1vZGlmeS1zeW50YXgtZW50cnkgP3wgIi4iIGNw ZXJsLW1vZGUtc3ludGF4LXRhYmxlKQogICAoc2V0cSBjcGVybC1zdHJpbmctc3ludGF4LXRhYmxl IChjb3B5LXN5bnRheC10YWJsZSBjcGVybC1tb2RlLXN5bnRheC10YWJsZSkpCiAgIChtb2RpZnkt c3ludGF4LWVudHJ5ID8kICIuIiBjcGVybC1zdHJpbmctc3ludGF4LXRhYmxlKQotICAobW9kaWZ5 LXN5bnRheC1lbnRyeSA/IyAiLiIgY3Blcmwtc3RyaW5nLXN5bnRheC10YWJsZSkgOyAoPyMgY29t bWVudCApCi0pCiogIChtb2RpZnktc3ludGF4LWVudHJ5ID8jICIuIiBjcGVybC1zdHJpbmctc3lu dGF4LXRhYmxlKSkgOyAoPyMgY29tbWVudCApCiAKIAogDApAQCAtMTMzNyw0ICsxMzI1LDMgQEAK IHNwYW4gdGhlIG5lZWRlZCBhbW91bnQgb2YgbGluZXMuCiAKIFZhcmlhYmxlcyBgY3BlcmwtcG9k LWhlcmUtc2NhbicsIGBjcGVybC1wb2QtaGVyZS1mb250aWZ5JywKLWBjcGVybC1wb2QtZmFjZScs IGBjcGVybC1wb2QtaGVhZC1mYWNlJyBjb250cm9sIHByb2Nlc3Npbmcgb2YgcG9kIGFuZAoqYGNw ZXJsLXBvZC1mYWNlJywgYGNwZXJsLXBvZC1oZWFkLWZhY2UnIGNvbnRyb2wgcHJvY2Vzc2luZyBv ZiBQT0QgYW5kCiBoZXJlLWRvY3Mgc2VjdGlvbnMuICBXaXRoIGNhcGFibGUgRW1heGVuIHJlc3Vs dHMgb2Ygc2NhbiBhcmUgdXNlZAogZm9yIGluZGVudGF0aW9uIHRvbywgb3RoZXJ3aXNlIHRoZXkg YXJlIHVzZWQgZm9yIGhpZ2hsaWdodGluZyBvbmx5LgogCkBAIC0xNTA0LDQgKzE0OTIsMyBAQAog CSAgICAoc2V0ICdmb250LWxvY2stdW5mb250aWZ5LXJlZ2lvbi1mdW5jdGlvbgogCQkgICdmb250 LWxvY2stZGVmYXVsdC11bmZvbnRpZnktcmVnaW9uKSkKIAkobWFrZS1sb2NhbC12YXJpYWJsZSAn Zm9udC1sb2NrLXVuZm9udGlmeS1yZWdpb24tZnVuY3Rpb24pCi0JKHNldCAnZm9udC1sb2NrLXVu Zm9udGlmeS1yZWdpb24tZnVuY3Rpb24KKgkoc2V0cSBmb250LWxvY2stdW5mb250aWZ5LXJlZ2lv bi1mdW5jdGlvbgogCSAgICAgICdjcGVybC1mb250LWxvY2stdW5mb250aWZ5LXJlZ2lvbi1mdW5j dGlvbikKIAkobWFrZS1sb2NhbC12YXJpYWJsZSAnY3Blcmwtc3ludGF4LWRvbmUtdG8pCiAJOzsg QW5vdGhlciBidWc6IHVubGVzcyBmb250LWxvY2stc3ludGFjdGljLWtleXdvcmRzLCBmb250LWxv Y2sKQEAgLTE1MzEsOSArMTUxOSwzIEBACiAgIChydW4taG9va3MgJ2NwZXJsLW1vZGUtaG9vaykK ICAgOzsgQWZ0ZXIgaG9va3Mgc2luY2UgZm9udGlmaWNhdGlvbiB3aWxsIGJyZWFrIHRoaXMKICAg KGlmIGNwZXJsLXBvZC1oZXJlLXNjYW4KLSAgICAgIChvciA7OyhhbmQgKGJvdW5kcCAnZm9udC1s b2NrLW1vZGUpCi0JICA7OyAgICAgKGV2YWwgJ2ZvbnQtbG9jay1tb2RlKQk7IEF2b2lkIHdhcm5p bmcKLQkgIDs7ICAgICAoYm91bmRwICdmb250LWxvY2staG90LXBhc3MpIDsgTmV3ZXIgZm9udC1s b2NrCi0gICAgICAgY3Blcmwtc3ludGF4aWZ5LWJ5LWZvbnQtbG9jayAgOzspCi0gICAgICAgKHBy b2duIChvciBjcGVybC1mYWNlcy1pbml0IChjcGVybC1pbml0LWZhY2VzLXdlYWspKQotCSAgICAg IChjcGVybC1maW5kLXBvZHMtaGVyZXMpKSkpKQoqICAgICAgKHVubGVzcyBjcGVybC1zeW50YXhp ZnktYnktZm9udC1sb2NrCioJKG9yIGNwZXJsLWZhY2VzLWluaXQgKGNwZXJsLWluaXQtZmFjZXMt d2VhaykpCioJKGNwZXJsLWZpbmQtcG9kcy1oZXJlcykpKSkKIAwKIDs7IEZpeCBmb3IgcGVybGRi IC0gbWFrZSBkZWZhdWx0IHJlYXNvbmFibGUKIChkZWZ1biBjcGVybC1kYiAoKQpAQCAtMTY3NSw0 ICsxNjYwLDMgQEAKIAkgICAgKHNldHEgbGFzdC1jb21tYW5kLWNoYXIgP1x7KQogCSAgICAoY3Bl cmwtZWxlY3RyaWMtbGJyYWNlIGFyZyBpbnNlcnRwb3MpKQogCSAgKGZvcndhcmQtY2hhciAxKSkK LSAgICAgIDs6IENoZWNrIHdoZXRoZXIgd2UgY2xvc2Ugc29tZXRoaW5nICJ1c3VhbCIgd2l0aCBg fScKKiAgICAgIDs7IENoZWNrIHdoZXRoZXIgd2UgY2xvc2Ugc29tZXRoaW5nICJ1c3VhbCIgd2l0 aCBgfScKICAgICAgIChpZiAoYW5kIChlcSBsYXN0LWNvbW1hbmQtY2hhciA/XH0pCiAJICAgICAg IChub3QKIAkJKGNvbmRpdGlvbi1jYXNlIG5pbApAQCAtMTcyNSw1ICsxNzEwLDMgQEAKIChkZWZ1 biBjcGVybC1lbGVjdHJpYy1sYnJhY2UgKGFyZyAmb3B0aW9uYWwgZW5kKQogICAiSW5zZXJ0IGNo YXJhY3RlciwgY29ycmVjdCBsaW5lJ3MgaW5kZW50YXRpb24sIGNvcnJlY3QgcXVvdGluZyBieSBz cGFjZS4iCiAgIChpbnRlcmFjdGl2ZSAiUCIpCi0gIChsZXQgKHBvcyBhZnRlcgotCSAgICAoY3Bl cmwtYnJhY2UtcmVjdXJzaW5nIHQpCiogIChsZXQgKChjcGVybC1icmFjZS1yZWN1cnNpbmcgdCkK IAkgICAgKGNwZXJsLWF1dG8tbmV3bGluZSBjcGVybC1hdXRvLW5ld2xpbmUpCiAJICAgIChvdGhl ci1lbmQgKG9yIGVuZAogCQkJICAgKGlmIChhbmQgY3BlcmwtZWxlY3RyaWMtcGFyZW5zLW1hcmsK QEAgLTE3MzUsNCArMTcxOSwzIEBACiAJCQkgICAgICAgKHNhdmUtZXhjdXJzaW9uCiAJCQkJIChn b3RvLWNoYXIgKG1hcmspKQogCQkJCSAocG9pbnQtbWFya2VyKSkKLQkJCSAgICAgbmlsKSkpKQoq CQkJIG5pbCkpKQoqCXBvcyBhZnRlcikKICAgICAoYW5kIChjcGVybC12YWwgJ2NwZXJsLWVsZWN0 cmljLWxicmFjZS1zcGFjZSkKIAkgKGVxIChwcmVjZWRpbmctY2hhcikgPyQpCiAJIChzYXZlLWV4 Y3Vyc2lvbgpAQCAtMTg3OSw1ICsxODY0LDMgQEAKICAJICAgICAoaW5zZXJ0ICJcbn0iKQogCSAg ICAgKGFuZCBkbyAoaW5zZXJ0ICIgd2hpbGUgKCk7IikpKQogIAkgICAgKHQKLSAJICAgICAoaW5z ZXJ0IChpZiBkbyAiIHtcbn0gd2hpbGUgKCk7IiAiICgpIHtcbn0iKSkpCi0gCSAgICApCiogCSAg ICAgKGluc2VydCAoaWYgZG8gIiB7XG59IHdoaWxlICgpOyIgIiAoKSB7XG59IikpKSkKIAkgICAo b3IgKGxvb2tpbmctYXQgIlsgXHRdXFx8JCIpIChpbnNlcnQgIiAiKSkKIAkgICAoY3BlcmwtaW5k ZW50LWxpbmUpCiAJICAgKGlmIGRvbGxhciAocHJvZ24gKHNlYXJjaC1iYWNrd2FyZCAiJCIpCkBA IC0yMDAwLDUgKzE5ODQsMyBAQAogIAkgICAgIChjcGVybC1pbmRlbnQtbGluZSkKICAJICAgICAo aW5zZXJ0ICJcblxufSIpKQogIAkgICAgKHQKLSAJICAgICAoaW5zZXJ0ICIge1xuXG59IikpCi0g CSAgICApCiogCSAgICAgKGluc2VydCAiIHtcblxufSIpKSkKIAkgICAob3IgKGxvb2tpbmctYXQg IlsgXHRdXFx8JCIpIChpbnNlcnQgIiAiKSkKIAkgICAoY3BlcmwtaW5kZW50LWxpbmUpCiAJICAg KGZvcndhcmQtbGluZSAtMSkKQEAgLTIxMjksNCArMjExMiwzIEBACiAoZGVmdW4gY3BlcmwtZWxl Y3RyaWMtdGVybWluYXRvciAoYXJnKQogICAiSW5zZXJ0IGNoYXJhY3RlciBhbmQgY29ycmVjdCBs aW5lJ3MgaW5kZW50YXRpb24uIgogICAoaW50ZXJhY3RpdmUgIlAiKQotICAobGV0IChpbnNlcnRw b3MgKGVuZCAocG9pbnQpKQoqICAobGV0ICgoZW5kIChwb2ludCkpCiAJCSAgKGF1dG8gKGFuZCBj cGVybC1hdXRvLW5ld2xpbmUKIAkJCSAgICAgKG9yIChub3QgKGVxIGxhc3QtY29tbWFuZC1jaGFy ID86KSkKLQkJCQkgY3BlcmwtYXV0by1uZXdsaW5lLWFmdGVyLWNvbG9uKSkpKQoqCQkgICAgICAg Y3BlcmwtYXV0by1uZXdsaW5lLWFmdGVyLWNvbG9uKSkpCioJaW5zZXJ0cG9zKQogICAgIChpZiAo YW5kIDs7KG5vdCBhcmcpCiAJICAgICAoZW9scCkKIAkgICAgIChub3QgKHNhdmUtZXhjdXJzaW9u CkBAIC0yMjUxLDYgKzIyMzUsMyBAQAogKGRlZnVuIGNwZXJsLWluZGVudC1saW5lICgmb3B0aW9u YWwgcGFyc2UtZGF0YSkKICAgIkluZGVudCBjdXJyZW50IGxpbmUgYXMgUGVybCBjb2RlLgogUmV0 dXJuIHRoZSBhbW91bnQgdGhlIGluZGVudGF0aW9uIGNoYW5nZWQgYnkuIgotICAobGV0IChpbmRl bnQgaSBiZWcgc2hpZnQtYW10Ci0JKGNhc2UtZm9sZC1zZWFyY2ggbmlsKQotCShwb3MgKC0gKHBv aW50LW1heCkgKHBvaW50KSkpKQoqICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpCioJKHBv cyAoLSAocG9pbnQtbWF4KSAocG9pbnQpKSkKKglpbmRlbnQgaSBiZWcgc2hpZnQtYW10KQogICAg IChzZXRxIGluZGVudCAoY3BlcmwtY2FsY3VsYXRlLWluZGVudCBwYXJzZS1kYXRhKQogCSAgaSBp bmRlbnQpCiAgICAgKGJlZ2lubmluZy1vZi1saW5lKQpAQCAtMjM2OCw0ICsyMzUyLDMgQEAKIAkg ICAgICAobm90IChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdpbmRlbnRhYmxlKSkpCiAJIDs7 IGJlZm9yZSBzdGFydCBvZiBQT0QgLSB3aGl0ZXNwYWNlIGZvdW5kIHNpbmNlIGRvIG5vdCBoYXZl ICdwb2QhCiAJIChhbmQgKGxvb2tpbmctYXQgIlsgXHRdKlxuPSIpCi0JICAgICAgKGVycm9yICJT cGFjZXMgYmVmb3JlIHBvZCBzZWN0aW9uISIpKQoqCSAgICAgIChlcnJvciAiU3BhY2VzIGJlZm9y ZSBQT0Qgc2VjdGlvbiEiKSkKIAkgKGFuZCAobm90IGNwZXJsLWluZGVudC1sZWZ0LWFsaWduZWQt Y29tbWVudHMpCiAJICAgICAgKGxvb2tpbmctYXQgIl4jIikpKQogCW5pbApAQCAtMjM4Niw0ICsy MzcwLDMgQEAKIAkpCiAgICAgICAgKHQKIAkoc2F2ZS1leGN1cnNpb24KLQkgIDs7IE5vdCBpbiBw b2QKKgkgICAgOzsgTm90IGluIFBPRAogCSAgKGNwZXJsLWJhY2t3YXJkLXRvLW5vbmNvbW1lbnQg bmlsKQogCSAgKHNldHEgcCAobWF4IChwb2ludC1taW4pICgxLSAocG9pbnQpKSkKIAkJcHJvcCAo Z2V0LXRleHQtcHJvcGVydHkgcCAnc3ludGF4LXR5cGUpCkBAIC0yNTI5LDQgKzI1MTMsMyBAQAog CSAgICAgICA7OyAoSGFkIFwsIHRvbykKIAkgICAgICAgKHdoaWxlIDs7KG9yIChlcSAocHJlY2Vk aW5nLWNoYXIpID9cLCkKIAkJCSAgKGFuZCAoZXEgKHByZWNlZGluZy1jaGFyKSA/OikKLQkJCSAg ICAgICAob3I7OyhlcSAoY2hhci1hZnRlciAoLSAocG9pbnQpIDIpKSA/XCcpIDsgPz8/PwoqCQkJ ICAob3IgOzsoZXEgKGNoYXItYWZ0ZXIgKC0gKHBvaW50KSAyKSkgP1wnKSA7ID8/Pz8KIAkJCQko bWVtcSAoY2hhci1zeW50YXggKGNoYXItYWZ0ZXIgKC0gKHBvaW50KSAyKSkpCiAJCQkJICAgICAg Jyg/dyA/XykpKSkKIAkJCSAgOzspCkBAIC0yODgyLDUgKzI4NjYsMyBAQAogCQkgICAgICAoZ290 by1jaGFyICgxLSBjcG9pbnQpKSkpKQogCQkoc2V0cSBzdG9wLWluIHQpCTsgRmluaXNoCiAJCShm b3J3YXJkLWNoYXIgLTEpKQotCSAgICAoc2V0cSBzdG9wLWluIHQpKQkJOyBGaW5pc2gKLQkgICkK KgkgIChzZXRxIHN0b3AtaW4gdCkpKQkJOyBGaW5pc2ggCiAJKG50aCA0IHN0YXRlKSkpKQogCiAo ZGVmc3Vic3QgY3BlcmwtMS0gKHApCkBAIC0zMDk1LDQgKzMwNzgsMyBAQAogCQljcGVybC1zeW50 YXgtc3RhdGUgbmlsCiAJCWNwZXJsLXN5bnRheC1kb25lLXRvIG1pbikpCiAgIChvciBtYXggKHNl dHEgbWF4IChwb2ludC1tYXgpKSkKLSAgKGxldCogKGZhY2UgaGVhZC1mYWNlIGhlcmUtZmFjZSBi IGUgYmIgdGFnIHF0YWcgYjEgZTEgYXJndW1lbnQgaSBjIHRhaWwgdGIKKiAgKGxldCogKChjcGVy bC1wb2QtaGVyZS1mb250aWZ5IChldmFsIGNwZXJsLXBvZC1oZXJlLWZvbnRpZnkpKSBnbyB0bXBl bmQKKgkgZmFjZSBoZWFkLWZhY2UgaGVyZS1mYWNlIGIgZSBiYiB0YWcgcXRhZyBiMSBlMSBhcmd1 bWVudCBpIGMgdGFpbCB0YgogCSAgICAgIGlzLVJFeCBpcy14LVJFeCBSRXgtY29tbWVudC1zdGFy dCBSRXgtY29tbWVudC1lbmQgd2FzLWNvbW1lbnQgaTIKLQkgICAgICAoY3BlcmwtcG9kLWhlcmUt Zm9udGlmeSAoZXZhbCBjcGVybC1wb2QtaGVyZS1mb250aWZ5KSkgZ28gdG1wZW5kCiAJICAgICAg KGNhc2UtZm9sZC1zZWFyY2ggbmlsKSAoaW5oaWJpdC1yZWFkLW9ubHkgdCkgKGJ1ZmZlci11bmRv LWxpc3QgdCkKIAkgICAgICAobW9kaWZpZWQgKGJ1ZmZlci1tb2RpZmllZC1wKSkKIAkgICAgICAo YWZ0ZXItY2hhbmdlLWZ1bmN0aW9ucyBuaWwpCkBAIC0zMTc2LDUgKzMxNTksMyBAQAogCQkgICAg ICJfX1xcKEVORFxcfERBVEFcXClfXyIKIAkJICAgICA7OyAxKzYrMisxKzErMisxKzErMT0xNiBl eHRyYSAoKSBiZWZvcmUgdGhpczoKIAkJICAgICAiXFx8IgotCQkgICAgICJcXFxcXFwoWydgXCJd XFwpIgotCQkgICAgICkKKgkJIlxcXFxcXChbJ2BcIl1cXCkiKQogCQkgICIiKSkpKQogICAgICh1 bndpbmQtcHJvdGVjdAogCShwcm9nbgpAQCAtMzI3OSw0ICszMjYxLDMgQEAKIAkJICAoY3Blcmwt Y29tbWVudGlmeSBiYiBlIG5pbCkKIAkJICAoZ290by1jaGFyIGUpCiAJCSAgKG9yIChlcSBlIChw b2ludC1tYXgpKQotCQkgICAgICAoZm9yd2FyZC1jaGFyIC0xKSkpKSA7IFByZXBhcmUgZm9yIGlt bWVkaWF0ZSBwb2Qgc3RhcnQuCioJCSAgICAgIChmb3J3YXJkLWNoYXIgLTEpKSkpIDsgUHJlcGFy ZSBmb3IgaW1tZWRpYXRlIFBPRCBzdGFydC4KIAkgICAgICAgOzsgSGVyZSBkb2N1bWVudAogCSAg ICAgICA7OyBXZSBkbyBvbmx5IG9uZSBoZXJlLXBlci1saW5lCiAgICAgICAgICAgICAgICA7OyA7 OyBPbmUgZXh0cmEgKCkgYmVmb3JlIHRoaXM6CkBAIC0zNDQ4LDUgKzM0MzAsMyBAQAogCQkJCSAg ICAgIChhbmQgKGVxIChjaGFyLXN5bnRheCAocHJlY2VkaW5nLWNoYXIpKSA/dykKIAkJCQkJICAg KHByb2duCiAJCQkJCSAgICAgKGZvcndhcmQtc2V4cCAtMSkKLTs7IEFmdGVyIHRoZXNlIGtleXdv cmRzIGAvJyBzdGFydHMgYSBSRS4gIE9uZSBzaG91bGQgYWRkIGFsbCB0aGUKLTs7IGZ1bmN0aW9u cy9idWlsdGlucyB3aGljaCBleHBlY3QgYW4gYXJndW1lbnQsIGJ1dCAuLi4KKgkJCQkJICAgICA7 OyBBZnRlciB0aGVzZSBrZXl3b3JkcyBgLycgc3RhcnRzIGEgUkUuICBPbmUgc2hvdWxkIGFkZCBh bGwgdGhlCioJCQkJCSAgICAgOzsgZnVuY3Rpb25zL2J1aWx0aW5zIHdoaWNoIGV4cGVjdCBhbiBh cmd1bWVudCwgYnV0IC4uLgogCQkJCQkgICAgIChpZiAoZXEgKHByZWNlZGluZy1jaGFyKSA/LSkK IAkJCQkJCSA7OyAtZCA/Zm9vPyBpcyBhIFJFCiAJCQkJCQkgKGxvb2tpbmctYXQgIlthLXpBLVpd XFw+IikKQEAgLTM1OTYsNSArMzU3OCw0IEBACiAJCQkgICh3aGlsZQogCQkJICAgICAgKGFuZCAo PCAocG9pbnQpIGUpCiAJCQkJICAgKHJlLXNlYXJjaC1mb3J3YXJkCi0JCQkJICAgIChpZiBpcy14 LVJFeAogCQkJCQkoaWYgKGVxIChjaGFyLWFmdGVyIGIpID9cIykKKgkJCQkJKGlmIGlzLXgtUkV4 CiAJCQkJCSAgICAiXFwoKFxcP1xcXFwjXFwpXFx8XFwoXFxcXCNcXCkiCi0JCQkJCSAgICAiXFwo KFxcPyNcXClcXHxcXCgjXFwpIikKLQkJCQkJKGlmIChlcSAoY2hhci1hZnRlciBiKSA/XCMpCi0J CQkJCSAgICAiXFwoKFxcP1xcXFwjXFwpIgoqCQkJCQkgICJcXCgoXFw/XFxcXCNcXCkiKQoqCQkJ CSAgICAgIChpZiBpcy14LVJFeAoqCQkJCQkgICJcXCgoXFw/I1xcKVxcfFxcKCNcXCkiCiAJCQkJ CSAgIlxcKChcXD8jXFwpIikpCiAJCQkJICAgICgxLSBlKSAndG8tZW5kKSkKIAkJCSAgICAoZ290 by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCkBAIC0zNzQ0LDcgKzM3MjYsMyBAQAogICAgICAg KGlmIChtZW1xIChzZXRxIHByIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdzeW50YXgtdHlw ZSkpCiAJCScocG9kIGhlcmUtZG9jIGhlcmUtZG9jLWRlbGltKSkKIAkgIChjcGVybC11bndpbmQt dG8tc2FmZSBuaWwpCi0gICAgICAoaWYgKG9yIChsb29raW5nLWF0ICJeWyBcdF0qXFwoI1xcfCRc XCkiKQotCSAgICAgIChwcm9nbiAoY3BlcmwtdG8tY29tbWVudC1vci1lb2wpIChib2xwKSkpCi0J ICBuaWwJOyBPbmx5IGNvbW1lbnQsIHNraXAKLQk7OyBFbHNlCiogICAgICAob3IgKGxvb2tpbmct YXQgIl5bIFx0XSpcXCgjXFx8JFxcKSIpCioJICAocHJvZ24gKGNwZXJsLXRvLWNvbW1lbnQtb3It ZW9sKSAoYm9scCkpCioJICAocHJvZ24KIAkoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IikKIAko aWYgKDwgcCAocG9pbnQpKSAoZ290by1jaGFyIHApKQotCSAgKHNldHEgc3RvcCB0KSkpKSkpCioJ ICAgIChzZXRxIHN0b3AgdCkpKSkpKSkKIAogKGRlZnVuIGNwZXJsLWFmdGVyLWJsb2NrLXAgKGxp bSkKICAgOzsgV2Ugc3VwcG9zZSB0aGF0IHRoZSBwcmVjZWRpbmcgY2hhciBpcyB9LgpAQCAtMzc4 MCw1ICszNzYxLDMgQEAKIFRFU1QgaXMgdGhlIGV4cHJlc3Npb24gdG8gZXZhbHVhdGUgYXQgdGhl IGZvdW5kIHBvc2l0aW9uLiAgSWYgYWJzZW50LAogQ0hBUlMgaXMgYSBzdHJpbmcgdGhhdCBjb250 YWlucyBnb29kIGNoYXJhY3RlcnMgdG8gaGF2ZSBiZWZvcmUgdXMgKGhvd2V2ZXIsCiBgfScgaXMg dHJlYXRlZCBcInNtYXJ0bHlcIiBpZiBpdCBpcyBub3QgaW4gdGhlIGxpc3QpLiIKLSAgKGxldCAo c3RvcCBwCi0JICAgICAobGltIChvciBsaW0gKHBvaW50LW1pbikpKSkKKiAgKGxldCAoKGxpbSAo b3IgbGltIChwb2ludC1taW4pKSkKKglzdG9wIHApCiAgICAgKHNhdmUtZXhjdXJzaW9uCiAgICAg ICAod2hpbGUgKGFuZCAobm90IHN0b3ApICg+IChwb2ludCkgbGltKSkKIAkoc2tpcC1jaGFycy1i YWNrd2FyZCAiIFx0XG5cZiIgbGltKQpAQCAtMzg3NCw1ICszODU1LDMgQEAKICAgKGludGVyYWN0 aXZlKQogICAob3IgZW5kCiAgICAgICAoc2V0cSBlbmQgKHBvaW50LW1heCkpKQotICAobGV0IChw IHBwIG1sIGhhdmUtYnJhY2UgcmV0Ci0JICAoZWUgKHNhdmUtZXhjdXJzaW9uIChlbmQtb2YtbGlu ZSkgKHBvaW50KSkpCiogIChsZXQgKChlZSAoc2F2ZS1leGN1cnNpb24gKGVuZC1vZi1saW5lKSAo cG9pbnQpKSkKIAkgIChjcGVybC1pbmRlbnQtcmVnaW9uLWZpeC1jb25zdHJ1Y3RzCi0JICAgKG9y IGNwZXJsLWluZGVudC1yZWdpb24tZml4LWNvbnN0cnVjdHMgMSkpKQoqCSAob3IgY3BlcmwtaW5k ZW50LXJlZ2lvbi1maXgtY29uc3RydWN0cyAxKSkKKglwIHBwIG1sIGhhdmUtYnJhY2UgcmV0KQog ICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQogICAgICAgKHNl dHEgcmV0IChwb2ludCkpCkBAIC00MDY3LDUgKzQwNDgsMyBAQAogICAoY3BlcmwtdXBkYXRlLXN5 bnRheGlmaWNhdGlvbiBlbmQgZW5kKQogICAoc2F2ZS1leGN1cnNpb24KICAgICAobGV0IChjcGVy bC11cGRhdGUtc3RhcnQgY3BlcmwtdXBkYXRlLWVuZCAoaC1hLWMgYWZ0ZXItY2hhbmdlLWZ1bmN0 aW9ucykpCi0gICAgICAobGV0IChzdCBjb21tIG9sZC1jb21tLWluZGVudCBuZXctY29tbS1pbmRl bnQgcCBwcCBpIGVtcHR5Ci0JICAgICAgIChpbmRlbnQtaW5mbyAoaWYgY3BlcmwtZW1hY3MtY2Fu LXBhcnNlCiogICAgICAobGV0ICgoaW5kZW50LWluZm8gKGlmIGNwZXJsLWVtYWNzLWNhbi1wYXJz ZQogCQkJCShsaXN0IG5pbCBuaWwgbmlsKSA7IENhbm5vdCB1c2UgJygpLCBzaW5jZSB3aWxsIG1v ZGlmeQogCQkJICAgICAgbmlsKSkKKgkgICAgKHBtIDApIChpbWVudS1zY2FubmluZy1tZXNzYWdl ICJJbmRlbnRpbmcuLi4gKCUzZCUlKSIpCiAJICAgICAgIGFmdGVyLWNoYW5nZS1mdW5jdGlvbnMJ OyBTcGVlZCBpdCB1cCEKLQkgICAgIChwbSAwKSAoaW1lbnUtc2Nhbm5pbmctbWVzc2FnZSAiSW5k ZW50aW5nLi4uICglM2QlJSkiKSkKKgkgICAgc3QgY29tbSBvbGQtY29tbS1pbmRlbnQgbmV3LWNv bW0taW5kZW50IHAgcHAgaSBlbXB0eSkKIAkoaWYgaC1hLWMgKGFkZC1ob29rICdhZnRlci1jaGFu Z2UtZnVuY3Rpb25zICdjcGVybC1kZWxheS11cGRhdGUtaG9vaykpCiAgICAgICAoZ290by1jaGFy IHN0YXJ0KQogICAgICAgKHNldHEgb2xkLWNvbW0taW5kZW50IChhbmQgKGNwZXJsLXRvLWNvbW1l bnQtb3ItZW9sKQpAQCAtNDEyNyw2ICs0MTA4LDMgQEAKIAkgICAgIChpbWVudS1wcm9ncmVzcy1t ZXNzYWdlIHBtIDEwMCkKIAkgIChtZXNzYWdlIG5pbCkpKQogICAgICAgOzsgTm93IHJ1biB0aGUg dXBkYXRlIGhvb2tzCi0gICAgICAoaWYgYWZ0ZXItY2hhbmdlLWZ1bmN0aW9ucwotCSAgKHNhdmUt ZXhjdXJzaW9uCi0JICAgIChpZiBjcGVybC11cGRhdGUtZW5kCiogICAgICAoYW5kIGFmdGVyLWNo YW5nZS1mdW5jdGlvbnMKKgkgICBjcGVybC11cGRhdGUtZW5kCiAJCShwcm9nbgogCQkgIChnb3Rv LWNoYXIgY3BlcmwtdXBkYXRlLWVuZCkKIAkJICAoaW5zZXJ0ICIgIikKIAkJICAoZGVsZXRlLWNo YXIgLTEpCiAJCSAgKGdvdG8tY2hhciBjcGVybC11cGRhdGUtc3RhcnQpCiAJCSAgKGluc2VydCAi ICIpCi0JCSAgKGRlbGV0ZS1jaGFyIC0xKSkpKSkpKSkKKgkgICAgIChkZWxldGUtY2hhciAtMSkp KSkpKQogCiA7OyBTdG9sZW4gZnJvbSBsaXNwLW1vZGUgd2l0aCBhIGxvdCBvZiBpbXByb3ZlbWVu dHMKIApAQCAtNDE0Niw1ICs0MTI2LDMgQEAKIGJsb2NrIG9mIGl0IHRoYXQgcG9pbnQgaXMgaW4s IHByZXNlcnZpbmcgdGhlIGNvbW1lbnQncyBpbml0aWFsCiBpbmRlbnRhdGlvbiBhbmQgaW5pdGlh bCBoYXNoZXMuICBCZWhhdmVzIHVzdWFsbHkgb3V0c2lkZSBvZiBjb21tZW50LiIKICAgKGludGVy YWN0aXZlICJQIikKLSAgKGxldCAoCi0JOzsgTm9uLW5pbCBpZiB0aGUgY3VycmVudCBsaW5lIGNv bnRhaW5zIGEgY29tbWVudC4KKiAgKGxldCAoOzsgTm9uLW5pbCBpZiB0aGUgY3VycmVudCBsaW5l IGNvbnRhaW5zIGEgY29tbWVudC4KIAloYXMtY29tbWVudAogCiAJOzsgSWYgaGFzLWNvbW1lbnQs IHRoZSBhcHByb3ByaWF0ZSBmaWxsLXByZWZpeCBmb3IgdGhlIGNvbW1lbnQuCkBAIC00MjU1LDQg KzQyMzQsMyBAQAogCSh0CiAJIChvciBuYW1lCiAJICAgICAoc2V0cSBuYW1lICIrKytCQUNLKysr IikpCi0JIChtYXBjYXIgKGZ1bmN0aW9uIChsYW1iZGEgKGVsdCkKKgkgKG1hcGNhciAobGFtYmRh IChlbHQpCiAJCQkgICAgIChpZiAoYW5kIChsaXN0cCBlbHQpIChsaXN0cCAoY2RyIGVsdCkpKQog CQkJCSAocHJvZ24KIAkJCQkgICA7OyBJbiB0aGUgb3RoZXIgb3JkZXIgaXQgZ29lcyB1cAogCQkJ CSAgIDs7IG9uZSBsZXZlbCBvbmx5IDstKAogCQkJCSAgIChzZXRjZHIgZWx0IChjb25zIChjb25z IG5hbWUgbHN0KQogCQkJCQkJICAgICAoY2RyIGVsdCkpKQotCQkJCSAgIChjcGVybC1pbWVudS1h ZGRiYWNrIChjZHIgZWx0KSB0IG5hbWUpCi0JCQkJICAgKSkpKQoqCQkJIChjcGVybC1pbWVudS1h ZGRiYWNrIChjZHIgZWx0KSB0IG5hbWUpKSkpCiAJCSAoaWYgaXNiYWNrIChjZHIgbHN0KSBsc3Qp KQogCSBsc3QpKSkKIApAQCAtNDMwMSw1ICs0Mjc5LDMgQEAKIAkgICAobnVsbCAoZ2V0LXRleHQt cHJvcGVydHkgKG1hdGNoLWJlZ2lubmluZyAxKSAnaW4tcG9kKSkpCiAJICAoc2F2ZS1leGN1cnNp b24KIAkgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDIpKQotCSAgICAoc2V0cSBmY2hh ciAoZm9sbG93aW5nLWNoYXIpKQotCSAgICApCioJICAgIChzZXRxIGZjaGFyIChmb2xsb3dpbmct Y2hhcikpKQogCSAgOzsgKGlmIChsb29raW5nLWF0ICIoW14oKV0qKVsgXHRcblxmXSoiKQogCSAg OzsgICAgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSkJOyBNZXNzZXMgd2hhdCBmb2xsb3dzCiAJ ICAoc2V0cSBjaGFyIChmb2xsb3dpbmctY2hhcikJOyA/XDsgZm9yICJzdWIgZm9vICgpIDsiCkBA IC00MzQ1LDQgKzQzMjIsMyBAQAogCSAgICAgIChwdXNoIGluZGV4IGluZGV4LWFsaXN0KSkKIAkg ICAgKGlmIG1ldGggKHB1c2ggaW5kZXggaW5kZXgtbWV0aC1hbGlzdCkpCiAJICAgIChwdXNoIGlu ZGV4IGluZGV4LXVuc29ydGVkLWFsaXN0KSkpCi0JICgobWF0Y2gtYmVnaW5uaW5nIDUpCQk7IFBv ZCBzZWN0aW9uCioJICgobWF0Y2gtYmVnaW5uaW5nIDUpCQk7IFBPRCBzZWN0aW9uCiAJICA7OyAo YmVnaW5uaW5nLW9mLWxpbmUpCiAJICAoc2V0cSBpbmRleCAoaW1lbnUtZXhhbXBsZS0tbmFtZS1h bmQtcG9zaXRpb24pCiAJCW5hbWUgKGJ1ZmZlci1zdWJzdHJpbmcgKG1hdGNoLWJlZ2lubmluZyA2 KSAobWF0Y2gtZW5kIDYpKSkKQEAgLTQ0NDgsOCArNDQyNSw2IEBACiAgICAgICA7OyBOZWVkIHRv IGluaXQgYW55d2F5OgogICAgICAgKG9yIGNwZXJsLWZhY2VzLWluaXQgKGNwZXJsLWluaXQtZmFj ZXMpKQogICAgIChhZGQtaG9vayAnZm9udC1sb2NrLW1vZGUtaG9vawotCSAgICAgIChmdW5jdGlv bgogCSAgICAgICAobGFtYmRhICgpCiAJCSAoaWYgKG1lbXEgbWFqb3ItbW9kZSAnKHBlcmwtbW9k ZSBjcGVybC1tb2RlKSkKIAkJICAgICAocHJvZ24KLQkJICAgICAgIChvciBjcGVybC1mYWNlcy1p bml0IChjcGVybC1pbml0LWZhY2VzKSkpKSkpKQoqCQkgICAgICAob3IgY3BlcmwtZmFjZXMtaW5p dCAoY3BlcmwtaW5pdC1mYWNlcykpKSkpKQogICAgIChpZiAoZmJvdW5kcCAnZXZhbC1hZnRlci1s b2FkKQogCShldmFsLWFmdGVyLWxvYWQKIAkgInBzLXByaW50IgpAQCAtNDczOSw1ICs0NzE1LDMg QEAKIAkJICAgIG5pbAogCQkgICAgW25pbAkJbmlsCQl0CQl0CXRdCiAJCSAgICBuaWwKLQkJICAg IFtuaWwJCW5pbAkJdAkJdAl0XQotCQkgICAgKQoqCQkgICAgICBbbmlsCQluaWwJCXQJCXQJdF0p CiAJICAgICAgKGxpc3QgJ2ZvbnQtbG9jay1jb25zdGFudC1mYWNlCiAJCSAgICBbIkNhZGV0Qmx1 ZSIJIkFxdWFtYXJpbmUiIAkiR3JheTUwIgkiTGlnaHRHcmF5Il0KIAkJICAgIG5pbAogCQkgICAg W25pbAkJbmlsCQl0CQl0CXRdCiAJCSAgICBuaWwKLQkJICAgIFtuaWwJCW5pbAkJdAkJdAl0XQot CQkgICAgKQoqCQkgICAgICBbbmlsCQluaWwJCXQJCXQJdF0pCiAJICAgICAgKGxpc3QgJ2NwZXJs LW5vbm92ZXJyaWRhYmxlLWZhY2UKIAkJICAgIFsiY2hhcnRyZXVzZTMiCSgib3JjaGlkMSIgIm9y YW5nZSIpCiAJCSAgICAgbmlsCQkiR3JheTgwIl0KIAkJICAgIFtuaWwJCW5pbAkJImdyYXk5MCJd CiAJCSAgICBbbmlsCQluaWwJCW5pbAkJdAl0XQogCQkgICAgW25pbAkJbmlsCQl0CQl0XQotCQkg ICAgW25pbAkJbmlsCQl0CQl0CXRdCi0JCSAgICApCioJCSAgICAgIFtuaWwJCW5pbAkJdAkJdAl0 XSkKIAkgICAgICAobGlzdCAnY3BlcmwtYXJyYXktZmFjZQogCQkgICAgWyJibHVlIgkJInllbGxv dyIgCW5pbAkJIkdyYXk4MCJdCiAJCSAgICBbImxpZ2h0eWVsbG93MiIJKCJuYXZ5IiAib3MyYmx1 ZSIgImRhcmtncmVlbiIpCkBAIC00NzczLDEwICs0NzQ2LDMgQEAKIAkgIDs7IERvIGl0IHRoZSBk dWxsIHdheSwgd2l0aG91dCBjaG9vc2UtY29sb3IKIAkgIChkZWZ2YXIgY3BlcmwtZ3Vlc3NlZC1i YWNrZ3JvdW5kIG5pbAogCSAgICAiRGlzcGxheSBjaGFyYWN0ZXJpc3RpY3MgYXMgZ3Vlc3NlZCBi eSBjcGVybC4iKQotOzsJICAob3IgKGZib3VuZHAgJ3gtY29sb3ItZGVmaW5lZC1wKQotOzsJICAg ICAgKGRlZmFsaWFzICd4LWNvbG9yLWRlZmluZWQtcAotOzsJCShjb25kICgoZmJvdW5kcCAnY29s b3ItZGVmaW5lZC1wKSAnY29sb3ItZGVmaW5lZC1wKQotOzsJCSAgICAgIDs7IFhFbWFjcyA+PSAx OS4xMgotOzsJCSAgICAgICgoZmJvdW5kcCAndmFsaWQtY29sb3ItbmFtZS1wKSAndmFsaWQtY29s b3ItbmFtZS1wKQotOzsJCSAgICAgIDs7IFhFbWFjcyAxOS4xMQotOzsJCSAgICAgICh0ICd4LXZh bGlkLWNvbG9yLW5hbWUtcCkpKSkKKgkgIDs7CSAgKG9yIChmYm91bmRwICd4LWNvbG9yLWRlZmlu ZWQtcCkKKgkgIDs7CSAgICAgIChkZWZhbGlhcyAneC1jb2xvci1kZWZpbmVkLXAKKgkgIDs7CQko Y29uZCAoKGZib3VuZHAgJ2NvbG9yLWRlZmluZWQtcCkgJ2NvbG9yLWRlZmluZWQtcCkKKgkgIDs7 CQkgICAgICA7OyBYRW1hY3MgPj0gMTkuMTIKKgkgIDs7CQkgICAgICAoKGZib3VuZHAgJ3ZhbGlk LWNvbG9yLW5hbWUtcCkgJ3ZhbGlkLWNvbG9yLW5hbWUtcCkKKgkgIDs7CQkgICAgICA7OyBYRW1h Y3MgMTkuMTEKKgkgIDs7CQkgICAgICAodCAneC12YWxpZC1jb2xvci1uYW1lLXApKSkpCiAJICAo Y3BlcmwtZm9yY2UtZmFjZSBmb250LWxvY2stY29uc3RhbnQtZmFjZQogCQkJICAgICJGYWNlIGZv ciBjb25zdGFudCBhbmQgbGFiZWwgbmFtZXMiKQogCSAgKGNwZXJsLWZvcmNlLWZhY2UgZm9udC1s b2NrLXZhcmlhYmxlLW5hbWUtZmFjZQpAQCAtNDg0Niw2ICs0ODE5LDMgQEAKIAkJIChpZiAoYm91 bmRwICdmb250LWxvY2stYmFja2dyb3VuZC1tb2RlKQogCQkgICAgIGZvbnQtbG9jay1iYWNrZ3Jv dW5kLW1vZGUKIAkJICAgJ2xpZ2h0KSkKLQkJKGZhY2UtbGlzdCAoYW5kIChmYm91bmRwICdmYWNl LWxpc3QpIChmYWNlLWxpc3QpKSkKLQkJOzsgY3BlcmwtaXMtZmFjZQotCQkpCioJCShmYWNlLWxp c3QgKGFuZCAoZmJvdW5kcCAnZmFjZS1saXN0KSAoZmFjZS1saXN0KSkpKQogOzs7OwkgICAgKGZz ZXQgJ2NwZXJsLWlzLWZhY2UKIDs7OzsJCSAgKGNvbmQgKChmYm91bmRwICdmaW5kLWZhY2UpCiA7 Ozs7CQkJIChzeW1ib2wtZnVuY3Rpb24gJ2ZpbmQtZmFjZSkpCkBAIC00ODYyLDYgKzQ4MzMsMyBA QAogCQkgICdncmF5CiAJCWJhY2tncm91bmQpCiAJICAgICAgIkJhY2tncm91bmQgYXMgZ3Vlc3Nl ZCBieSBDUGVybCBtb2RlIikKLQkgICAgKGlmIChhbmQKLQkJIChub3QgKGNwZXJsLWlzLWZhY2Ug J2ZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkKLQkJIChjcGVybC1pcy1mYWNlICdmb250LWxvY2st cmVmZXJlbmNlLWZhY2UpKQoqCSAgICAoYW5kIChub3QgKGNwZXJsLWlzLWZhY2UgJ2ZvbnQtbG9j ay1jb25zdGFudC1mYWNlKSkKKgkJIChjcGVybC1pcy1mYWNlICdmb250LWxvY2stcmVmZXJlbmNl LWZhY2UpCiAJICAgICAgKGNvcHktZmFjZSAnZm9udC1sb2NrLXJlZmVyZW5jZS1mYWNlICdmb250 LWxvY2stY29uc3RhbnQtZmFjZSkpCiAJICAgIChpZiAoY3BlcmwtaXMtZmFjZSAnZm9udC1sb2Nr LXR5cGUtZmFjZSkgbmlsCiAJICAgICAgKGNvcHktZmFjZSAnZGVmYXVsdCAnZm9udC1sb2NrLXR5 cGUtZmFjZSkKQEAgLTUwOTMsNCArNTA2MywzIEBACiBDaG9zaW5nIFwiQ3VycmVudFwiIHN0eWxl IHdpbGwgbm90IGNoYW5nZSBzdHlsZSwgc28gdGhpcyBtYXkgYmUgdXNlZCBmb3IKIHNpZGUtZWZm ZWN0IG9mIG1lbW9yaXppbmcgb25seS4iCiAgIChpbnRlcmFjdGl2ZQotICAgKGxldCAoKGxpc3Qg KG1hcGNhciAoZnVuY3Rpb24gKGxhbWJkYSAoZWx0KSAobGlzdCAoY2FyIGVsdCkpKSkKKiAgIChs ZXQgKChsaXN0IChtYXBjYXIgKGxhbWJkYSAoZWx0KSAobGlzdCAoY2FyIGVsdCkpKQogCQkgICAg ICAgY3Blcmwtc3R5bGUtYWxpc3QpKSkKICAgICAgKGxpc3QgKGNvbXBsZXRpbmctcmVhZCAiRW50 ZXIgc3R5bGU6ICIgbGlzdCBuaWwgJ2luc2lzdCkpKSkKICAgKG9yIGNwZXJsLW9sZC1zdHlsZQog ICAgICAgKHNldHEgY3Blcmwtb2xkLXN0eWxlCi0JICAgIChtYXBjYXIgKGZ1bmN0aW9uCi0JCSAg ICAgKGxhbWJkYSAobmFtZSkKLQkJICAgICAgIChjb25zIG5hbWUgKGV2YWwgbmFtZSkpKSkKKgkg ICAgKG1hcGNhciAobGFtYmRhIChuYW1lKQoqCQkgICAgICAoY29ucyBuYW1lIChldmFsIG5hbWUp KSkKIAkJICAgIGNwZXJsLXN0eWxlcy1lbnRyaWVzKSkpCiAgIChsZXQgKChzdHlsZSAoY2RyIChh c3NvYyBzdHlsZSBjcGVybC1zdHlsZS1hbGlzdCkpKSBzZXR0aW5nIHN0ciBzeW0pCiAgICAgKHdo aWxlIHN0eWxlCkBAIC01MjM1LDUgKzUyMDQsMyBAQAogCQkJIDs7IE5vbi1mdW5jdGlvbmluZyB1 bmRlciBPUy8yOgogCQkJIChpZiAoZXEgY2hhci1oZWlnaHQgMSkgKHNldHEgY2hhci1oZWlnaHQg MTgpKQogCQkJIDs7IFRpdGxlLCBtZW51YmFyLCArIDIgZm9yIHNsYWNrCi0JCQkgKC0gKC8gKHgt ZGlzcGxheS1waXhlbC1oZWlnaHQpIGNoYXItaGVpZ2h0KSA0KQotCQkJICkpCioJCQkgKC0gKC8g KHgtZGlzcGxheS1waXhlbC1oZWlnaHQpIGNoYXItaGVpZ2h0KSA0KSkpCiAJCSAoaWYgKD4gaGVp Z2h0IG1heC1oZWlnaHQpIChzZXRxIGhlaWdodCBtYXgtaGVpZ2h0KSkKIAkJIDs7KG1lc3NhZ2Ug IndhcyAlcyBkb2luZyAlcyIgaW5paGVpZ2h0IGhlaWdodCkKIAkJIChpZiBub3QtbG9uZXIKQEAg LTUzNDMsNCArNTMxMSwzIEBACiAJICAgIChzZXRxIGUgKHBvaW50KSkKIAkgICAgKHNraXAtY2hh cnMtYmFja3dhcmQgIiBcdCIpCiAJICAgIChkZWxldGUtcmVnaW9uIChwb2ludCkgZSkKLQkgICAg KGluZGVudC10by1jb2x1bW4gY29sKTsgKG1ha2Utc3RyaW5nICgtIGNvbCAoY3VycmVudC1jb2x1 bW4pKSA/XCApKQoqCSAgICAoaW5kZW50LXRvLWNvbHVtbiBjb2wpIDsgKG1ha2Utc3RyaW5nICgt IGNvbCAoY3VycmVudC1jb2x1bW4pKSA/XCApKQogCSAgICAoYmVnaW5uaW5nLW9mLWxpbmUgMikK IAkgICAgKGFuZCAoPCAocG9pbnQpIGVuZCkKIAkJIChyZS1zZWFyY2gtZm9yd2FyZCBzZWFyY2gg ZW5kIHQpCkBAIC01NDkxLDQgKzU0NTksMyBAQAogKGRlZnZhciBjcGVybC11bnJlYWRhYmxlLW9r IG5pbCkKIAogKGRlZnVuIGNwZXJsLWZpbmQtdGFncyAoaWZpbGUgeHMgdG9wZGlyKQotICAobGV0 IChpbmQgKGIgKGdldC1idWZmZXIgY3BlcmwtdG1wLWJ1ZmZlcikpIGxzdCBlbHQgcG9zIHJldCBy ZWwKKiAgKGxldCAoKGIgKGdldC1idWZmZXIgY3BlcmwtdG1wLWJ1ZmZlcikpIGluZCBsc3QgZWx0 IHBvcyByZXQgcmVsCiAJICAgIChjcGVybC1wb2QtaGVyZS1mb250aWZ5IG5pbCkgZiBmaWxlKQog ICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAgKGlmIGIgKHNldC1idWZmZXIgYikKQEAgLTU1MTgs NyArNTQ4Niw2IEBACiAJKHNldHEgbHN0IChjZHIgKGFzc29jICIrVW5zb3J0ZWQgTGlzdCsuLi4i IGluZCkpKSkKICAgICAgIChzZXRxIGxzdAogCSAgICAobWFwY2FyCi0JICAgICAoZnVuY3Rpb24K IAkgICAgICAobGFtYmRhIChlbHQpCiAJCShjb25kICgoc3RyaW5nLW1hdGNoICJeW19hLXpBLVpd IiAoY2FyIGVsdCkpCiAJCSAgICAgICAoZ290by1jaGFyIChjZHIgZWx0KSkKQEAgLTU1MzMsNCAr NTUwMCwzIEBACiAJCQkJCQkgKHBvaW50KSkKIAkJCQkJICAgICAgIChwcm9nbgogCQkJCQkJIChi ZWdpbm5pbmctb2YtbGluZSkKLQkJCQkJCSAocG9pbnQpKSkpKSkpKQoqCQkJCQkJICAocG9pbnQp KSkpKSkpCiAJCSAgICBsc3QpKQogICAgICAgKGVyYXNlLWJ1ZmZlcikKICAgICAgICh3aGlsZSBs c3QKQEAgLTU2MjYsNCArNTU5MywzIEBACiAJCQkoc2V0cSBjcGVybC11bnJlYWRhYmxlLW9rIHQK IAkJCSAgICAgIHRtIG5pbCkgOyBSZXR1cm4gZW1wdHkgbGlzdAogCQkgICAgICAoZXJyb3IgIkFi b3J0aW5nOiB1bnJlYWRhYmxlIGRpcmVjdG9yeSAlcyIgZmlsZSkpKSkpKSkKLQkgIChtYXBjYXIg KGZ1bmN0aW9uIChsYW1iZGEgKGZpbGUpCioJICAobWFwY2FyIChsYW1iZGEgKGZpbGUpCiAJCQkg ICAgICAoY29uZAogCQkJICAgICAgICgoc3RyaW5nLW1hdGNoIGNwZXJsLW5vc2Nhbi1maWxlcy1y ZWdleHAgZmlsZSkKIAkJCQluaWwpCkBAIC01NjM0LDYgKzU2MDEsMyBAQAogCQkJCShpZiAoc3Ry aW5nLW1hdGNoIGNwZXJsLXNjYW4tZmlsZXMtcmVnZXhwIGZpbGUpCiAJCQkJICAgIChjcGVybC13 cml0ZS10YWdzIGZpbGUgZXJhc2UgcmVjdXJzZSBuaWwgdCBub3hzIHRvcGRpcikpKQogCQkJICAg ICAgICgobm90IHJlY3Vyc2UpIG5pbCkKLQkJCSAgICAgICAodCAoY3Blcmwtd3JpdGUtdGFncyBm aWxlIGVyYXNlIHJlY3Vyc2UgdCB0IG5veHMgdG9wZGlyKSkpKSkKLQkJICBmaWxlcykpCi0JKQoq CQkgICAgICh0IChjcGVybC13cml0ZS10YWdzIGZpbGUgZXJhc2UgcmVjdXJzZSB0IHQgbm94cyB0 b3BkaXIpKSkpCioJCSAgZmlsZXMpKSkKICAgICAgICAodAogCShzZXRxIHhzIChzdHJpbmctbWF0 Y2ggIlxcLnhzJCIgZmlsZSkpCiAJKGlmIChub3QgKGFuZCB4cyBub3hzKSkKQEAgLTU3MzMsNSAr NTY5OSwzIEBACiAgIChyZXF1aXJlICdldGFncykKICAgKHJlcXVpcmUgJ2ltZW51KQogICAoaWYg KG9yIHVwZGF0ZSAobnVsbCAobnRoIDIgY3BlcmwtaGllcmFyY2h5KSkpCi0gICAgICAobGV0IChw YWNrIG5hbWUgY29uczEgdG8gbDEgbDIgbDMgbDQgYgotCQkgKHJlbW92ZXIgKGZ1bmN0aW9uIChs YW1iZGEgKGVsdCkgOyAobmFtZSAoZmlsZTEuLi4pIChmaWxlMi4uKSkKKiAgICAgIChsZXQgKChy ZW1vdmVyIChsYW1iZGEgKGVsdCkgOyAobmFtZSAoZmlsZTEuLi4pIChmaWxlMi4uKSkKIAkJCQkg ICAgICAob3IgKG50aGNkciAyIGVsdCkKIAkJCQkJICA7OyBPbmx5IGluIG9uZSBmaWxlCi0JCQkJ CSAgKHNldGNkciBlbHQgKGNkciAobnRoIDEgZWx0KSkpKSkpKSkKKgkJCSAgIChzZXRjZHIgZWx0 IChjZHIgKG50aCAxIGVsdCkpKSkpKQoqCSAgICBwYWNrIG5hbWUgY29uczEgdG8gbDEgbDIgbDMg bDQgYikKIAk7OyAoc2V0cSBjcGVybC1oaWVyYXJjaHkgJygoKSAoKSAoKSkpIDsgV291bGQgd3Jp dGUgaW50byAnKCkgbGF0ZXIhCiAJKHNldHEgY3BlcmwtaGllcmFyY2h5IChsaXN0IGwxIGwyIGwz KSkKIAkoaWYgY3BlcmwteGVtYWNzLXAJCTsgTm90IGNoZWNrZWQKQEAgLTU3NTEsOCArNTcxNyw2 IEBACiAJICAob3IgdGFncy10YWJsZS1saXN0CiAJICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAn dmlzaXQtdGFncy10YWJsZSkpCiAJKG1hcGNhcgotCSAoZnVuY3Rpb24KIAkgIChsYW1iZGEgKHRh Z3NmaWxlKQogCSAgICAgIChtZXNzYWdlICJVcGRhdGluZyBsaXN0IG9mIGNsYXNzZXMuLi4gJXMi IHRhZ3NmaWxlKQogCSAgICAoc2V0LWJ1ZmZlciAoZ2V0LWZpbGUtYnVmZmVyIHRhZ3NmaWxlKSkK LQkgICAgKGNwZXJsLXRhZ3MtaGllci1maWxsKSkpCioJICAgICAoY3BlcmwtdGFncy1oaWVyLWZp bGwpKQogCSB0YWdzLXRhYmxlLWxpc3QpCiAJICAobWVzc2FnZSAiVXBkYXRpbmcgbGlzdCBvZiBj bGFzc2VzLi4uIHBvc3Rwcm9jZXNzaW5nLi4uIikpCiAJKG1hcGNhciByZW1vdmVyIChjYXIgY3Bl cmwtaGllcmFyY2h5KSkKQEAgLTU3OTcsNyArNTc2Miw2IEBACiAJIGwxIGhlYWQgdGFpbCBjb25z MSBjb25zMiBvcmQgd3JpdGV0byBwYWNrcyByZWN1cnNlCiAJIHJvb3QtcGFja2FnZXMgcm9vdC1m dW5jdGlvbnMgbXMgbWFueV9tcyBzYW1lX25hbWUgcHMKIAkgKG1vdmUtZGVlcGVyCi0JICAoZnVu Y3Rpb24KIAkgICAobGFtYmRhIChlbHQpCiAJICAgICAoY29uZCAoKGFuZCAoc3RyaW5nLW1hdGNo IHJlZ2V4cCAoY2FyIGVsdCkpCiAJCQkgKG9yIChlcSBvcmQgMSkgKG1hdGNoLWVuZCAyKSkpCkBA IC01ODE2LDQgKzU3ODAsMyBAQAogCQkgICAoKGVxIG9yZCAyKQogCQkgICAgKHNldHEgcm9vdC1m dW5jdGlvbnMgKGNvbnMgZWx0IHJvb3QtZnVuY3Rpb25zKSkpCiAJCSAgICh0Ci0JCSAgICAoc2V0 cSByb290LXBhY2thZ2VzIChjb25zIGVsdCByb290LXBhY2thZ2VzKSkpKSkpKSkKKgkJICAgKHNl dHEgcm9vdC1wYWNrYWdlcyAoY29ucyBlbHQgcm9vdC1wYWNrYWdlcykpKSkpKSkKICAgICAoc2V0 Y2RyIHRvIGwxKQkJCTsgSW5pdCB0byBkeW5hbWljIHNwYWNlCiAgICAgKHNldHEgd3JpdGV0byB0 bykKICAgICAoc2V0cSBvcmQgMSkKQEAgLTU4MjQsNSArNTc4OCwzIEBACiAgICAgKHNldHEgb3Jk IDIpCiAgICAgKG1hcGNhciBtb3ZlLWRlZXBlciBtZXRob2RzKQogICAgIChpZiByZWN1cnNlCi0J KG1hcGNhciAoZnVuY3Rpb24gKGxhbWJkYSAoZWx0KQotCQkJICAoY3BlcmwtdGFncy10cmVlaWZ5 IGVsdCAoMSsgbGV2ZWwpKSkpCioJKG1hcGNhciAobGFtYmRhIChlbHQpCioJCSAgKGNwZXJsLXRh Z3MtdHJlZWlmeSBlbHQgKDErIGxldmVsKSkpCiAJCShjZHIgdG8pKSkKICAgICA7O05vdyBjbGVh biB1cCBsZWFkZXJzIHdpdGggb25lIGNoaWxkIG9ubHkKLSAgICAobWFwY2FyIChmdW5jdGlvbiAo bGFtYmRhIChlbHQpCiogICAgKG1hcGNhciAobGFtYmRhIChlbHQpCiAJCQkoaWYgKG5vdCAoYW5k IChsaXN0cCAoY2RyIGVsdCkpCiAJCQkJICAgICAgKGVxIChsZW5ndGggZWx0KSAyKSkpIG5pbAog CQkJICAgIChzZXRjYXIgZWx0IChjYXIgKG50aCAxIGVsdCkpKQotCQkJICAgIChzZXRjZHIgZWx0 IChjZHIgKG50aCAxIGVsdCkpKSkpKQoqCQkoc2V0Y2RyIGVsdCAoY2RyIChudGggMSBlbHQpKSkp KQogCSAgICAoY2RyIHRvKSkKICAgICA7OyBTb3J0IHRoZSByb290cyBvZiBzdWJ0cmVlcwogICAg IChpZiAoZGVmYXVsdC12YWx1ZSAnaW1lbnUtc29ydC1mdW5jdGlvbikKIAkoc2V0Y2RyIHRvCiAJ CShzb3J0IChjZHIgdG8pIChkZWZhdWx0LXZhbHVlICdpbWVudS1zb3J0LWZ1bmN0aW9uKSkpKQog ICAgIDs7IE5vdyBhZGQgYmFjayBmdW5jdGlvbnMgcmVtb3ZlZCBmcm9tIGRpc3BsYXkKLSAgICAo bWFwY2FyIChmdW5jdGlvbiAobGFtYmRhIChlbHQpCi0JCQkoc2V0Y2RyIHRvIChjb25zIGVsdCAo Y2RyIHRvKSkpKSkKKiAgICAobWFwY2FyIChsYW1iZGEgKGVsdCkKKgkgICAgICAoc2V0Y2RyIHRv IChjb25zIGVsdCAoY2RyIHRvKSkpKQogCSAgICAoaWYgKGRlZmF1bHQtdmFsdWUgJ2ltZW51LXNv cnQtZnVuY3Rpb24pCiAJCShucmV2ZXJzZQogCQkgKHNvcnQgcm9vdC1mdW5jdGlvbnMgKGRlZmF1 bHQtdmFsdWUgJ2ltZW51LXNvcnQtZnVuY3Rpb24pKSkKIAkgICAgICByb290LWZ1bmN0aW9ucykp CiAgICAgOzsgTm93IGFkZCBiYWNrIHBhY2thZ2VzIHJlbW92ZWQgZnJvbSBkaXNwbGF5Ci0gICAg KG1hcGNhciAoZnVuY3Rpb24gKGxhbWJkYSAoZWx0KQoqICAgIChtYXBjYXIgKGxhbWJkYSAoZWx0 KQogCQkJKHNldGNkciB0byAoY29ucyAoY29ucyAoY29uY2F0ICJwYWNrYWdlICIgKGNhciBlbHQp KQogCQkJCQkgICAgICAgKGNkciBlbHQpKQotCQkJCQkgKGNkciB0bykpKSkpCioJCQkgICAgICAg KGNkciB0bykpKSkKIAkgICAgKGlmIChkZWZhdWx0LXZhbHVlICdpbWVudS1zb3J0LWZ1bmN0aW9u KQogCQkobnJldmVyc2UKIAkJIChzb3J0IHJvb3QtcGFja2FnZXMgKGRlZmF1bHQtdmFsdWUgJ2lt ZW51LXNvcnQtZnVuY3Rpb24pKSkKLQkgICAgICByb290LXBhY2thZ2VzKSkKLSAgICApKQoqCSAg ICAgIHJvb3QtcGFja2FnZXMpKSkpCiAKIDs7Oyh4LXBvcHVwLW1lbnUgdAogOzs7ICAgJyhrZXlt YXAgIk5hbWUxIgpAQCAtNTg4Niw3ICs1ODQ5LDYgQEAKICAgKGxldCAobGlzdCkKICAgICAoY29u cyAna2V5bWFwCiAJICAobWFwY2FyCi0JICAgKGZ1bmN0aW9uCiAJICAgIChsYW1iZGEgKGVsdCkK IAkgICAgICAoY29uZCAoKGxpc3RwIChjZHIgZWx0KSkKIAkJICAgICAoc2V0cSBsaXN0IChjcGVy bC1saXN0LWZvbGQKQEAgLTU4OTUsNCArNTg1NywzIEBACiAJCQkgICAoY29ucyAoY2FyIGVsdCkK IAkJCQkgKGNwZXJsLW1lbnUtdG8ta2V5bWFwIGxpc3QpKSkpCiAJCSAgICAodAotCQkgICAgIChs aXN0IChjZHIgZWx0KSAoY2FyIGVsdCkgdCkpKSkpIDsgdCBpcyBuZWVkZWQgaW4gMTkuMzQKKgkJ ICAgIChsaXN0IChjZHIgZWx0KSAoY2FyIGVsdCkgdCkpKSkgOyB0IGlzIG5lZWRlZCBpbiAxOS4z NAogCSAgIChjcGVybC1saXN0LWZvbGQgbWVudSAiUm9vdCIgaW1lbnUtbWF4LWl0ZW1zKSkpKSkK IAogDAogKGRlZnZhciBjcGVybC1iYWQtc3R5bGUtcmVnZXhwCiAgIChtYXBjb25jYXQgJ2lkZW50 aXR5CiAgICAnKCJbXi1cblx0IDw+PSshLiZ8KCovJ2BcIiNeXVstPSs8PiF8Jl5dIiA7IGNoYXIg c2lnbgotICAgICAiWy08Pj0rXiZ8XStbXi0gXHRcbj0rPD5+XSIJOyBzaWduKyBjaGFyCi0gICAg ICkKKgkgICAgICAgIlstPD49K14mfF0rW14tIFx0XG49Kzw+fl0iKSA7IHNpZ24rIGNoYXIgCiAg ICAiXFx8IikKICAgIkZpbmRzIHBsYWNlcyBzdWNoIHRoYXQgaW5zZXJ0aW9uIG9mIGEgd2hpdGVz cGFjZSBtYXkgaGVscCBhIGxvdC4iKQogCkBAIC01OTQ2LDQgKzU5MDcsMyBAQAogICAgIChzZXRx IGxhc3Qtbm9ubWVudS1ldmVudCAxMykJOyBUbyBkaXNhYmxlIHBvcHVwCiAgICAgKGJlZ2lubmlu Zy1vZi1idWZmZXIpCiAgICAgKG1hcC15LW9yLW4tcCAiSW5zZXJ0IHNwYWNlIGhlcmU/ICIKLQkJ ICAoZnVuY3Rpb24gKGxhbWJkYSAoYXJnKSAoaW5zZXJ0ICIgIikpKQoqCQkgIChsYW1iZGEgKGFy ZykgKGluc2VydCAiICIpKQogCQkgICdjcGVybC1uZXh0LWJhZC1zdHlsZQogCQkgICcoImxvY2F0 aW9uIiAibG9jYXRpb25zIiAiaW5zZXJ0IGEgc3BhY2UgaW50byIpCiAJCSAgJygoP1xDLXIgKGxh bWJkYSAoYXJnKQpAQCAtNjAwNCw0ICs1OTY1LDMgQEAKICAgICAgIlskQF1bXiBcblx0XSIJCQk7 IFNwZWNpYWwgdmFyaWFibGUKICAgICAgIi1bYS16QS1aXSIJCQk7IEZpbGUgdGVzdAogICAgICAi XFxcXFthLXpBLVowXSIJCQk7IFNwZWNpYWwgY2hhcnMKLSAgICAgIl49W2Etel1bYS16QS1aMC05 X10qIgkJOyBQb2Qgc2VjdGlvbnMKKiAgICAgIl49W2Etel1bYS16QS1aMC05X10qIgkJOyBQT0Qg c2VjdGlvbnMKICAgICAgIlstISYqKywtLi88PT4/XFxcXF58fl0rIgkJOyBPcGVyYXRvcgogICAg ICAiW2EtekEtWl8wLTk6XSsiCQkJOyBzeW1ib2wgb3IgbnVtYmVyCiAgICAgICJ4PSIKLSAgICAg IiMhIgotICAgICApCiogICAgICIjISIpCiAgICA7OyJcXClcXHxcXCgiCi0gICAiXFx8IgotICAg KQoqICAgIlxcfCIpCiAJICA7OyJcXCkiCiAJICA7OykKICAgIk1hdGNoZXMgcGxhY2VzIGluIHRo ZSBidWZmZXIgd2UgY2FuIGZpbmQgaGVscCBmb3IuIikKQEAgLTYxMzksNCArNjA5OCwzIEBACiAJ IChpZiBjcGVybC1tZXNzYWdlLW9uLWhlbHAtZXJyb3IKIAkgICAgIChtZXNzYWdlICJObyBkZWZp bml0aW9uIGZvciAlcyIgdmFsKSkpKSkpKQogCi0oZGVmdmFyIGNwZXJsLXNob3J0LWRvY3MgIkln bm9yZSBteSB2YWx1ZSIKKihkZWZ2YXIgY3Blcmwtc2hvcnQtZG9jcyAncGxlYXNlLWlnbm9yZS10 aGlzLWxpbmUKICAgOzsgUGVybDQgdmVyc2lvbiB3YXMgd3JpdHRlbiBieSBKb2hhbiBWcm9tYW5z IChqdnJvbWFuc0BzcXVpcnJlbC5ubCkKICAgIiMgYmFzZWQgb24gJ0AoIylAIHBlcmwtZGVzY3Iu ZWwgMS45IC0gZGVzY3JpYmUtcGVybC1zeW1ib2wnIFtQZXJsIDVdCiAhIC4uLglMb2dpY2FsIG5l Z2F0aW9uLgpAQCAtNjUxMiwxMiArNjQ3MSw2IEBACiBDT1JFOjoJCVByZWZpeCB0byBhY2Nlc3Mg YnVpbHRpbiBmdW5jdGlvbiBpZiBpbXBvcnRlZCBzdWIgb2JzY3VyZXMgaXQuCiBTVVBFUjo6CQlQ cmVmaXggdG8gbG9va3VwIGZvciBhIG1ldGhvZCBpbiBASVNBIGNsYXNzZXMuCiBERVNUUk9ZCQlT aG9ydGhhbmQgZm9yIGBzdWIgREVTVFJPWSB7Li4ufScuCi0uLi4gRVEgLi4uCU9ic29sZXRlIHN5 bm9ueW0gb2YgYGVxJy4KLS4uLiBHRSAuLi4JT2Jzb2xldGUgc3lub255bSBvZiBgZ2UnLgotLi4u IEdUIC4uLglPYnNvbGV0ZSBzeW5vbnltIG9mIGBndCcuCi0uLi4gTEUgLi4uCU9ic29sZXRlIHN5 bm9ueW0gb2YgYGxlJy4KLS4uLiBMVCAuLi4JT2Jzb2xldGUgc3lub255bSBvZiBgbHQnLgotLi4u IE5FIC4uLglPYnNvbGV0ZSBzeW5vbnltIG9mIGBuZScuCiBhYnMgWyBFWFBSIF0JYWJzb2x1dGUg dmFsdWUKIC4uLiBhbmQgLi4uCQlMb3ctcHJlY2VkZW5jZSBzeW5vbnltIGZvciAmJi4KIGJsZXNz IFJFRkVSRU5DRSBbLCBQQUNLQUdFXQlNYWtlcyByZWZlcmVuY2UgaW50byBhbiBvYmplY3Qgb2Yg YSBwYWNrYWdlLgpAQCAtNjYzMyw1ICs2NTg2LDMgQEAKIAkJICAgICAgICJcXHwiCQk7IEdyb3Vw aW5nCiAJCSAgICAgICAiXFwoKFxcKFxcP1xcKT9cXCkiIDsgNyA4CiAJCSAgICAgICAiXFx8IgkJ OyB8Ci0JCSAgICAgICAiXFwofFxcKSIJOyA5Ci0JCSAgICAgICApKSkKKgkJICAgICAgICJcXCh8 XFwpIikpKQk7IDkKIAkoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpCiAJKHNldHEgc3BhY2VzIHQp CiAJKGNvbmQgKChtYXRjaC1iZWdpbm5pbmcgMSkJOyBBbHBoYW51bSB3b3JkICsganVuawpAQCAt Njc1Niw1ICs2NzA4LDMgQEAKIAkgKHNldHEgcyAocG9pbnQpKQogCSAoc2tpcC1jaGFycy1mb3J3 YXJkICIgXHQiKQogCSAoZGVsZXRlLXJlZ2lvbiBzIChwb2ludCkpCi0JIChpbmRlbnQtdG8tY29s dW1uIGMpKSkKLSAgKSkKKgkgIChpbmRlbnQtdG8tY29sdW1uIGMpKSkpKQogCiAoZGVmdW4gY3Bl cmwtbWFrZS1yZWdleHAteCAoKQogICA7OyBSZXR1cm5zIHBvc2l0aW9uIG9mIHRoZSBzdGFydApA QCAtNzA5MSw1ICs3MDQyLDMgQEAKIChkZWZ1biBjcGVybC1mb250aWZ5LXN5bnRheGljYWxseSAo ZW5kKQogICA7OyBTb21lIHZhcnMgZm9yIGRlYnVnZ2luZyBvbmx5CiAgIDs7IChtZXNzYWdlICJT eW50YXhpZnlpbmcuLi4iKQotICAobGV0IChzdGFydCAoZGJnIChwb2ludCkpIChpZW5kIGVuZCkK LQkoaXN0YXRlIChjYXIgY3Blcmwtc3ludGF4LXN0YXRlKSkpCiogIChsZXQgKChkYmcgKHBvaW50 KSkgKGllbmQgZW5kKQoqCShpc3RhdGUgKGNhciBjcGVybC1zeW50YXgtc3RhdGUpKQoqCXN0YXJ0 KQogICAgIChhbmQgY3Blcmwtc3ludGF4aWZ5LXVud2luZAogCSAoc2V0cSBlbmQgKGNwZXJsLXVu d2luZC10by1zYWZlIHQgZW5kKSkpCiAgICAgKHNldHEgc3RhcnQgKHBvaW50KSkKQEAgLTcxMzUs NCArNzA4NywzIEBACiAJICAoY3BlcmwtZm9udGlmeS1zeW50YXhpY2FsbHkgdG8pKSkpKQogCiAo ZGVmdmFyIGNwZXJsLXZlcnNpb24KLSAgKGxldCAoKHYgICJSZXZpc2lvbjogNC4zMiIpKQoqICAo bGV0ICgodiAgIlJldmlzaW9uOiA0LjMzIikpCiAgICAgKHN0cmluZy1tYXRjaCAiOlxccyAqXFwo WzAtOS5dK1xcKSIgdikKICAgICAoc3Vic3RyaW5nIHYgKG1hdGNoLWJlZ2lubmluZyAxKSAobWF0 Y2gtZW5kIDEpKSkKICAgIlZlcnNpb24gb2YgSVotc3VwcG9ydGVkIENQZXJsIHBhY2thZ2UgdGhp cyBmaWxlIGlzIGJhc2VkIG9uLiIpCg== --Multipart_Wed__12_Feb_2003_00:11:31_+0100_08761960 Content-Type: application/octet-stream; name="cperl-u.diff" Content-Disposition: attachment; filename="cperl-u.diff" Content-Transfer-Encoding: base64 LS0tIENWUy9jcGVybC1tb2RlLmVsCTIwMDMtMDItMDQgMTQ6MjQ6MzQuMDAwMDAwMDAwICswMTAw CisrKyBwZmVpZmZlci9jcGVybC1tb2RlLmVsCTIwMDMtMDItMTEgMjM6MDA6MjguMDAwMDAwMDAw ICswMTAwCkBAIC0xLDYgKzEsNiBAQAogOzs7IGNwZXJsLW1vZGUuZWwgLS0tIFBlcmwgY29kZSBl ZGl0aW5nIGNvbW1hbmRzIGZvciBFbWFjcwogCi07OyBDb3B5cmlnaHQgKEMpIDE5ODUsIDg2LCA4 NywgOTEsIDkyLCA5MywgOTQsIDk1LCA5NiwgMTk5NworOzsgQ29weXJpZ2h0IChDKSAxOTg1LCA4 NiwgODcsIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDE5OTcsIDIwMDAsIDIwMDMKIDs7ICAgICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogOzsgQXV0aG9yOiBJbHlhIFpha2hhcmV2 aWNoIGFuZCBCb2IgT2xzb24KQEAgLTI4LDM4ICsyOCw0MyBAQAogCiA7OzsgQ29tbWVudGFyeToK IAotOzs7IFlvdSBjYW4gZWl0aGVyIGZpbmUtdHVuZSB0aGUgYmVsbHMgYW5kIHdoaXN0bGVzIG9m IHRoaXMgbW9kZSBvcgotOzs7IGJ1bGsgZW5hYmxlIHRoZW0gYnkgcHV0dGluZworOzsgWW91IGNh biBlaXRoZXIgZmluZS10dW5lIHRoZSBiZWxscyBhbmQgd2hpc3RsZXMgb2YgdGhpcyBtb2RlIG9y Cis7OyBidWxrIGVuYWJsZSB0aGVtIGJ5IHB1dHRpbmcKIAogOzsgKHNldHEgY3BlcmwtaGFpcnkg dCkKIAotOzs7IGluIHlvdXIgLmVtYWNzIGZpbGUuICAoRW1hY3MgcnVsZXJzIGRvIG5vdCBjb25z aWRlciBpdCBwb2xpdGljYWxseQotOzs7IGNvcnJlY3QgdG8gbWFrZSB3aGlzdGxlcyBlbmFibGVk IGJ5IGRlZmF1bHQuKQorOzsgaW4geW91ciAuZW1hY3MgZmlsZS4gIChFbWFjcyBydWxlcnMgZG8g bm90IGNvbnNpZGVyIGl0IHBvbGl0aWNhbGx5Cis7OyBjb3JyZWN0IHRvIG1ha2Ugd2hpc3RsZXMg ZW5hYmxlZCBieSBkZWZhdWx0LikKIAotOzs7IERPIE5PVCBGT1JHRVQgdG8gcmVhZCBtaWNyby1k b2NzIChhdmFpbGFibGUgZnJvbSBgUGVybCcgbWVudSkgICA8PDw8PDwKLTs7OyBvciBhcyBoZWxw IG9uIHZhcmlhYmxlcyBgY3BlcmwtdGlwcycsIGBjcGVybC1wcm9ibGVtcycsICAgICAgICAgPDw8 PDw8Ci07OzsgYGNwZXJsLXByYWlzZScsIGBjcGVybC1zcGVlZCcuCQkJCSAgICA8PDw8PDwKLQot Ozs7IFRoZSBtb2RlIGluZm9ybWF0aW9uIChvbiBDLWggbSkgcHJvdmlkZXMgc29tZSBjdXN0b21p emF0aW9uIGhlbHAuCi07OzsgSWYgeW91IHVzZSBmb250LWxvY2sgZmVhdHVyZSBvZiB0aGlzIG1v ZGUsIGl0IGlzIGFkdmlzYWJsZSB0byB1c2UKLTs7OyBlaXRoZXIgbGF6eS1sb2NrLW1vZGUgb3Ig ZmFzdC1sb2NrLW1vZGUuICBJIHByZWZlciBsYXp5LWxvY2suCi0KLTs7OyBGYWNlcyB1c2VkIG5v dzogdGhyZWUgZmFjZXMgZm9yIGZpcnN0LWNsYXNzIGFuZCBzZWNvbmQtY2xhc3Mga2V5d29yZHMK LTs7OyBhbmQgY29udHJvbCBmbG93IHdvcmRzLCBvbmUgZm9yIGVhY2g6IGNvbW1lbnRzLCBzdHJp bmcsIGxhYmVscywKLTs7OyBmdW5jdGlvbnMgZGVmaW5pdGlvbnMgYW5kIHBhY2thZ2VzLCBhcnJh eXMsIGhhc2hlcywgYW5kIHZhcmlhYmxlCi07OzsgZGVmaW5pdGlvbnMuICBJZiB5b3UgZG8gbm90 IHNlZSBhbGwgdGhlc2UgZmFjZXMsIHlvdXIgZm9udC1sb2NrIGRvZXMKLTs7OyBub3QgZGVmaW5l IHRoZW0sIHNvIHlvdSBuZWVkIHRvIGRlZmluZSB0aGVtIG1hbnVhbGx5LgotCi07OzsgaW50byB5 b3VyIC5lbWFjcyBmaWxlLgotCi07Ozs7IFRoaXMgbW9kZSBzdXBwb3J0cyBmb250LWxvY2ssIGlt ZW51IGFuZCBtb2RlLWNvbXBpbGUuICBJbiB0aGUKLTs7OzsgaGFpcnkgdmVyc2lvbiBmb250LWxv Y2sgaXMgb24sIGJ1dCB5b3Ugc2hvdWxkIGFjdGl2YXRlIGltZW51Ci07Ozs7IHlvdXJzZWxmIChu b3RlIHRoYXQgbW9kZS1jb21waWxlIGlzIG5vdCBzdGFuZGFyZCB5ZXQpLiAgV2VsbCwgeW91Ci07 Ozs7IGNhbiB1c2UgaW1lbnUgZnJvbSBrZXlib2FyZCBhbnl3YXkgKE0teCBpbWVudSksIGJ1dCBp dCBpcyBiZXR0ZXIKLTs7OzsgdG8gYmluZCBpdCBsaWtlIHRoYXQ6Cis7OyBETyBOT1QgRk9SR0VU IHRvIHJlYWQgbWljcm8tZG9jcyAoYXZhaWxhYmxlIGZyb20gYFBlcmwnIG1lbnUpICAgPDw8PDw8 Cis7OyBvciBhcyBoZWxwIG9uIHZhcmlhYmxlcyBgY3BlcmwtdGlwcycsIGBjcGVybC1wcm9ibGVt cycsICAgICAgICAgPDw8PDw8Cis7OyBgY3BlcmwtcHJhaXNlJywgYGNwZXJsLXNwZWVkJy4JCQkJ ICAgPDw8PDw8CisKKzs7IFRoZSBtb2RlIGluZm9ybWF0aW9uIChvbiBDLWggbSkgcHJvdmlkZXMg c29tZSBjdXN0b21pemF0aW9uIGhlbHAuCis7OyBJZiB5b3UgdXNlIGZvbnQtbG9jayBmZWF0dXJl IG9mIHRoaXMgbW9kZSwgaXQgaXMgYWR2aXNhYmxlIHRvIHVzZQorOzsgZWl0aGVyIGxhenktbG9j ay1tb2RlIG9yIGZhc3QtbG9jay1tb2RlLiAgSSBwcmVmZXIgbGF6eS1sb2NrLgorCis7OyBGYWNl cyB1c2VkIG5vdzogdGhyZWUgZmFjZXMgZm9yIGZpcnN0LWNsYXNzIGFuZCBzZWNvbmQtY2xhc3Mg a2V5d29yZHMKKzs7IGFuZCBjb250cm9sIGZsb3cgd29yZHMsIG9uZSBmb3IgZWFjaDogY29tbWVu dHMsIHN0cmluZywgbGFiZWxzLAorOzsgZnVuY3Rpb25zIGRlZmluaXRpb25zIGFuZCBwYWNrYWdl cywgYXJyYXlzLCBoYXNoZXMsIGFuZCB2YXJpYWJsZQorOzsgZGVmaW5pdGlvbnMuICBJZiB5b3Ug ZG8gbm90IHNlZSBhbGwgdGhlc2UgZmFjZXMsIHlvdXIgZm9udC1sb2NrIGRvZXMKKzs7IG5vdCBk ZWZpbmUgdGhlbSwgc28geW91IG5lZWQgdG8gZGVmaW5lIHRoZW0gbWFudWFsbHkuCisKKzs7IFRo aXMgbW9kZSBzdXBwb3J0cyBmb250LWxvY2ssIGltZW51IGFuZCBtb2RlLWNvbXBpbGUuICBJbiB0 aGUKKzs7IGhhaXJ5IHZlcnNpb24gZm9udC1sb2NrIGlzIG9uLCBidXQgeW91IHNob3VsZCBhY3Rp dmF0ZSBpbWVudQorOzsgeW91cnNlbGYgKG5vdGUgdGhhdCBtb2RlLWNvbXBpbGUgaXMgbm90IHN0 YW5kYXJkIHlldCkuICBXZWxsLCB5b3UKKzs7IGNhbiB1c2UgaW1lbnUgZnJvbSBrZXlib2FyZCBh bnl3YXkgKE0teCBpbWVudSksIGJ1dCBpdCBpcyBiZXR0ZXIKKzs7IHRvIGJpbmQgaXQgbGlrZSB0 aGF0OgogCiA7OyAoZGVmaW5lLWtleSBnbG9iYWwtbWFwIFtNLVMtZG93bi1tb3VzZS0zXSAnaW1l bnUpCiAKKzs7OyBGb250IGxvY2sgYnVnczoKKworOzsgVGhlIGZvbGxvd2luZyBraW5kcyBvZiBQ ZXJsIGNvZGUgZXJyb25lb3VzbHkgc3RhcnQgc3RyaW5nczoKKzs7IFwkYCAgXCQnICBcJCIKKzs7 ICRvcHQ6OnMgICRvcHRfcyAgJG9wdHtzfSAgKHMgPT4gLi4uKSAgL1xzKy4uLi8KKzs7IGxpa2V3 aXNlIHdpdGggbSwgdHIsIHksIHEsIHFYIGluc3RlYWQgb2YgcworCiA7OzsgQ29kZToKIAogOzsg U29tZSBtYWNyb3MgYXJlIG5lZWRlZCBmb3IgYGRlZmN1c3RvbScKQEAgLTE3MCw4ICsxNzUsNyBA QAogaW5zdGVhZCBvZjoKIAogCWlmICgpIHsKLQl9Ci0iCisJfSIKICAgOnR5cGUgJ2Jvb2xlYW4K ICAgOmdyb3VwICdjcGVybC1hdXRvaW5zZXJ0LWRldGFpbHMpCiAKQEAgLTM1NCwxMiArMzU4LDEy IEBACiAgIDpncm91cCAnY3BlcmwtYWZmZWN0ZWQtYnktaGFpcnkpCiAKIChkZWZjdXN0b20gY3Bl cmwtcG9kLWZhY2UgJ2ZvbnQtbG9jay1jb21tZW50LWZhY2UKLSAgIipGYWNlIGZvciBwb2QgaGln aGxpZ2h0aW5nLiIKKyAgIipGYWNlIGZvciBQT0QgaGlnaGxpZ2h0aW5nLiIKICAgOnR5cGUgJ2Zh Y2UKICAgOmdyb3VwICdjcGVybC1mYWNlcykKIAogKGRlZmN1c3RvbSBjcGVybC1wb2QtaGVhZC1m YWNlICdmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCi0gICIqRmFjZSBmb3IgcG9kIGhpZ2hs aWdodGluZy4KKyAgIipGYWNlIGZvciBQT0QgaGlnaGxpZ2h0aW5nLgogRm9udCBmb3IgUE9EIGhl YWRlcnMuIgogICA6dHlwZSAnZmFjZQogICA6Z3JvdXAgJ2NwZXJsLWZhY2VzKQpAQCAtMzc2LDcg KzM4MCw3IEBACiAgIDpncm91cCAnY3BlcmwtZmFjZXMpCiAKIChkZWZjdXN0b20gY3BlcmwtcG9k LWhlcmUtZm9udGlmeSAnKGZlYXR1cmVwICdmb250LWxvY2spCi0gICIqTm90LW5pbCBhZnRlciBl dmFsdWF0aW9uIG1lYW5zIHRvIGhpZ2hsaWdodCBwb2QgYW5kIGhlcmUtZG9jcyBzZWN0aW9ucy4i CisgICIqTm90LW5pbCBhZnRlciBldmFsdWF0aW9uIG1lYW5zIHRvIGhpZ2hsaWdodCBQT0QgYW5k IGhlcmUtZG9jcyBzZWN0aW9ucy4iCiAgIDp0eXBlICdib29sZWFuCiAgIDpncm91cCAnY3Blcmwt ZmFjZXMpCiAKQEAgLTM5NSw3ICszOTksNyBAQAogICA6Z3JvdXAgJ2NwZXJsKQogCiAoZGVmY3Vz dG9tIGNwZXJsLXBvZC1oZXJlLXNjYW4gdAotICAiKk5vdC1uaWwgbWVhbnMgbG9vayBmb3IgcG9k IGFuZCBoZXJlLWRvY3Mgc2VjdGlvbnMgZHVyaW5nIHN0YXJ0dXAuCisgICIqTm90LW5pbCBtZWFu cyBsb29rIGZvciBQT0QgYW5kIGhlcmUtZG9jcyBzZWN0aW9ucyBkdXJpbmcgc3RhcnR1cC4KIFlv dSBjYW4gYWx3YXlzIG1ha2UgbG9va3VwIGZyb20gbWVudSBvciB1c2luZyBcXFtjcGVybC1maW5k LXBvZHMtaGVyZXNdLiIKICAgOnR5cGUgJ2Jvb2xlYW4KICAgOmdyb3VwICdjcGVybC1zcGVlZCkK QEAgLTU5Myw3ICs1OTcsNyBAQAogOzs7IFNob3J0IGV4dHJhLWRvY3MuCiAKIChkZWZ2YXIgY3Bl cmwtdGlwcyAncGxlYXNlLWlnbm9yZS10aGlzLWxpbmUKLSAgIkdldCBuZXdlc3QgdmVyc2lvbiBv ZiB0aGlzIHBhY2thZ2UgZnJvbQorICAiR2V0IG1heWJlIG5ld2VyIHZlcnNpb24gb2YgdGhpcyBw YWNrYWdlIGZyb20KICAgZnRwOi8vZnRwLm1hdGgub2hpby1zdGF0ZS5lZHUvcHViL3VzZXJzL2ls eWEvZW1hY3MKIGFuZC9vcgogICBmdHA6Ly9mdHAubWF0aC5vaGlvLXN0YXRlLmVkdS9wdWIvdXNl cnMvaWx5YS9wZXJsCkBAIC02ODEsNyArNjg1LDcgQEAKIAogVGhpcyBtYXkgYmUgY29uZnVzaW5n LCBzaW5jZSB0aGUgcmVnZXhwIHMjLy8jLyNcOyBtYXkgYmUgaGlnaGxpZ2h0ZWQKIGFzIGEgY29t bWVudCwgYnV0IGl0IHdpbGwgYmUgcmVjb2duaXplZCBhcyBhIHJlZ2V4cCBieSB0aGUgaW5kZW50 YXRpb24KLWNvZGUuICBPciB0aGUgb3Bwb3NpdGUgY2FzZSwgd2hlbiBhIHBvZCBzZWN0aW9uIGlz IGhpZ2hsaWdodGVkLCBidXQKK2NvZGUuICBPciB0aGUgb3Bwb3NpdGUgY2FzZSwgd2hlbiBhIFBP RCBzZWN0aW9uIGlzIGhpZ2hsaWdodGVkLCBidXQKIG1heSBicmVhayB0aGUgaW5kZW50YXRpb24g b2YgdGhlIGZvbGxvd2luZyBjb2RlICh0aG91Z2ggaW5kZW50YXRpb24KIHNob3VsZCB3b3JrIGlm IHRoZSBiYWxhbmNlIG9mIGRlbGltaXRlcnMgaXMgbm90IGJyb2tlbiBieSBQT0QpLgogCkBAIC02 OTksNyArNzAzLDcgQEAKIAogSWYgdGhlc2UgYnVncyBjYW5ub3QgYmUgZml4ZWQgb24geW91ciBt YWNoaW5lIChzYXksIHlvdSBoYXZlIGFuIGluZmVyaW9yCiBlbnZpcm9ubWVudCBhbmQgY2Fubm90 IHJlY29tcGlsZSksIHlvdSBtYXkgc3RpbGwgZGlzYWJsZSBhbGwgdGhlIGZhbmN5IHN0dWZmCi12 aWEgYGNwZXJsLXVzZS1zeW50YXgtdGFibGUtdGV4dC1wcm9wZXJ0eScuIiApCit2aWEgYGNwZXJs LXVzZS1zeW50YXgtdGFibGUtdGV4dC1wcm9wZXJ0eScuIikKIAogKGRlZnZhciBjcGVybC1wcmFp c2UgJ3BsZWFzZS1pZ25vcmUtdGhpcy1saW5lCiAgICJBZHZhbnRhZ2VzIG9mIENQZXJsIG1vZGUu CkBAIC03ODMsOCArNzg3LDcgQEAKIGxpbmUtYnJlYWtzL3NwYWNpbmcgYmV0d2VlbiBlbGVtZW50 cyBvZiB0aGUgY29uc3RydWN0LgogCiAxMCkgVXNlcyBhIGxpbmVhci10aW1lIGFsZ29yaXRoIGZv ciBpbmRlbnRhdGlvbiBvZiByZWdpb25zIChvbiBFbWF4ZW4gd2l0aAotY2FwYWJsZSBzeW50YXgg ZW5naW5lcykuCi0iKQorY2FwYWJsZSBzeW50YXggZW5naW5lcykuIikKIAogKGRlZnZhciBjcGVy bC1zcGVlZCAncGxlYXNlLWlnbm9yZS10aGlzLWxpbmUKICAgIlRoaXMgaXMgYW4gaW5jb21wbGV0 ZSBjb21wZW5kaXVtIG9mIHdoYXQgaXMgYXZhaWxhYmxlIGluIG90aGVyIHBhcnRzCkBAIC04Mjgs OCArODMxLDcgQEAKICAgICB3cm9uZ2x5IG1hdGNoZWQgcGFyZW50aGVzZXMsIHdyb25nIGluZGVu dGF0aW9uLCBldGMuCiAKICAgICBPbmUgY2FuIHVuc2V0IGBjcGVybC1zeW50YXhpZnktdW53aW5k Jy4gIFRoaXMgbWlnaHQgc3BlZWQgdXAgZWRpdGluZwotICAgIG9mLCBzYXksIGxvbmcgUE9EIHNl Y3Rpb25zLgotIikKKyAgICBvZiwgc2F5LCBsb25nIFBPRCBzZWN0aW9ucy4iKQogCiAoZGVmdmFy IGNwZXJsLXRpcHMtZmFjZXMgJ3BsZWFzZS1pZ25vcmUtdGhpcy1saW5lCiAgICJDUGVybCBtb2Rl IHVzZXMgZm9sbG93aW5nIGZhY2VzIGZvciBoaWdobGlnaHRpbmc6CkBAIC05MDEsNyArOTAzLDcg QEAKIChkZWZzdWJzdCBjcGVybC1lbmFibGUtZm9udC1sb2NrICgpCiAgIChvciBjcGVybC14ZW1h Y3MtcCB3aW5kb3ctc3lzdGVtKSkKIAotKGRlZnVuIGNwZXJsLXB1dGJhY2stY2hhciAoYykJOyBF bWFjcyAxOQorKGRlZnVuIGNwZXJsLXB1dGJhY2stY2hhciAoYykJCTsgRW1hY3MgMTkKICAgKHNl dCAndW5yZWFkLWNvbW1hbmQtZXZlbnRzIChsaXN0IGMpKSkgOyBBdm9pZCB1bmRlZmluZWQgd2Fy bmluZwogCiAoaWYgKGJvdW5kcCAndW5yZWFkLWNvbW1hbmQtZXZlbnRzKQpAQCAtOTI2LDcgKzky OCw3IEBACiAgIDs7IElmIFBPU1QsIGRvIG5vdCBkbyBpdCB3aXRoIHBvc3Rwb25lZCBmb250aWZp Y2F0aW9uCiAgIChpZiAoYW5kIHBvc3QgY3Blcmwtc3ludGF4aWZ5LWJ5LWZvbnQtbG9jaykKICAg ICAgIG5pbAotICAocHV0LXRleHQtcHJvcGVydHkgKG1heCAocG9pbnQtbWluKSAoMS0gZnJvbSkp CisgICAgKHB1dC10ZXh0LXByb3BlcnR5IChtYXggKHBvaW50LW1pbikgKDEtIGZyb20pKQogCQkg ICAgICAgdG8gY3BlcmwtZG8tbm90LWZvbnRpZnkgdCkpKQogCiAoZGVmY3VzdG9tIGNwZXJsLW1v ZGUtaG9vayBuaWwKQEAgLTk1NSwyNCArOTU3LDExIEBACiA7OzsgICAgIChzZXRxIGludGVycHJl dGVyLW1vZGUtYWxpc3QgKGFwcGVuZCBpbnRlcnByZXRlci1tb2RlLWFsaXN0CiA7OzsJCQkJCSAg JygoIm1pbmlwZXJsIiAuIHBlcmwtbW9kZSkpKSkpKQogKGV2YWwtd2hlbi1jb21waWxlCi0gIChj b25kaXRpb24tY2FzZSBuaWwKLSAgICAgIChyZXF1aXJlICdpbWVudSkKLSAgICAoZXJyb3Igbmls KSkKLSAgKGNvbmRpdGlvbi1jYXNlIG5pbAotICAgICAgKHJlcXVpcmUgJ2Vhc3ltZW51KQotICAg IChlcnJvciBuaWwpKQotICAoY29uZGl0aW9uLWNhc2UgbmlsCi0gICAgICAocmVxdWlyZSAnZXRh Z3MpCi0gICAgKGVycm9yIG5pbCkpCi0gIChjb25kaXRpb24tY2FzZSBuaWwKLSAgICAgIChyZXF1 aXJlICd0aW1lcikKLSAgICAoZXJyb3IgbmlsKSkKLSAgKGNvbmRpdGlvbi1jYXNlIG5pbAotICAg ICAgKHJlcXVpcmUgJ21hbikKLSAgICAoZXJyb3IgbmlsKSkKLSAgKGNvbmRpdGlvbi1jYXNlIG5p bAotICAgICAgKHJlcXVpcmUgJ2luZm8pCi0gICAgKGVycm9yIG5pbCkpCisgIChtYXBjIChsYW1i ZGEgKHApCisJICAoY29uZGl0aW9uLWNhc2UgbmlsCisJICAgICAgKHJlcXVpcmUgcCkKKwkgICAg KGVycm9yIG5pbCkpKQorCScoaW1lbnUgZWFzeW1lbnUgZXRhZ3MgdGltZXIgbWFuIGluZm8pKQog ICAoaWYgKGZib3VuZHAgJ3BzLWV4dGVuZC1mYWNlLWxpc3QpCiAgICAgICAoZGVmbWFjcm8gY3Bl cmwtcHMtZXh0ZW5kLWZhY2UtbGlzdCAoYXJnKQogCWAocHMtZXh0ZW5kLWZhY2UtbGlzdCAsYXJn KSkKQEAgLTEwNzEsNTEgKzEwNjAsNTEgQEAKICAgICAocHJvZ24KICAgICAgIChyZXF1aXJlICdl YXN5bWVudSkKICAgICAgIChlYXN5LW1lbnUtZGVmaW5lIGNwZXJsLW1lbnUgY3BlcmwtbW9kZS1t YXAgIk1lbnUgZm9yIENQZXJsIG1vZGUiCi0gICAgICAgICAnKCJQZXJsIgotCSAgIFsiQmVnaW5u aW5nIG9mIGZ1bmN0aW9uIiBiZWdpbm5pbmctb2YtZGVmdW4gdF0KLQkgICBbIkVuZCBvZiBmdW5j dGlvbiIgZW5kLW9mLWRlZnVuIHRdCi0JICAgWyJNYXJrIGZ1bmN0aW9uIiBtYXJrLWRlZnVuIHRd Ci0JICAgWyJJbmRlbnQgZXhwcmVzc2lvbiIgY3BlcmwtaW5kZW50LWV4cCB0XQotCSAgIFsiRmls bCBwYXJhZ3JhcGgvY29tbWVudCIgY3BlcmwtZmlsbC1wYXJhZ3JhcGggdF0KLQkgICAiLS0tLSIK LQkgICBbIkxpbmUgdXAgYSBjb25zdHJ1Y3Rpb24iIGNwZXJsLWxpbmV1cCAoY3BlcmwtdXNlLXJl Z2lvbi1wKV0KLQkgICBbIkludmVydCBpZi91bmxlc3Mvd2hpbGUgZXRjIiBjcGVybC1pbnZlcnQt aWYtdW5sZXNzIHRdCi0JICAgKCJSZWdleHAiCi0JICAgIFsiQmVhdXRpZnkiIGNwZXJsLWJlYXV0 aWZ5LXJlZ2V4cAotCSAgICAgY3BlcmwtdXNlLXN5bnRheC10YWJsZS10ZXh0LXByb3BlcnR5XQot CSAgICBbIkJlYXV0aWZ5IG9uZSBsZXZlbCBkZWVwIiAoY3BlcmwtYmVhdXRpZnktcmVnZXhwIDEp Ci0JICAgICBjcGVybC11c2Utc3ludGF4LXRhYmxlLXRleHQtcHJvcGVydHldCi0JICAgIFsiQmVh dXRpZnkgYSBncm91cCIgY3BlcmwtYmVhdXRpZnktbGV2ZWwKLQkgICAgIGNwZXJsLXVzZS1zeW50 YXgtdGFibGUtdGV4dC1wcm9wZXJ0eV0KLQkgICAgWyJCZWF1dGlmeSBhIGdyb3VwIG9uZSBsZXZl bCBkZWVwIiAoY3BlcmwtYmVhdXRpZnktbGV2ZWwgMSkKLQkgICAgIGNwZXJsLXVzZS1zeW50YXgt dGFibGUtdGV4dC1wcm9wZXJ0eV0KLQkgICAgWyJDb250cmFjdCBhIGdyb3VwIiBjcGVybC1jb250 cmFjdC1sZXZlbAotCSAgICAgY3BlcmwtdXNlLXN5bnRheC10YWJsZS10ZXh0LXByb3BlcnR5XQot CSAgICBbIkNvbnRyYWN0IGdyb3VwcyIgY3BlcmwtY29udHJhY3QtbGV2ZWxzCi0JICAgICBjcGVy bC11c2Utc3ludGF4LXRhYmxlLXRleHQtcHJvcGVydHldKQotCSAgIFsiUmVmcmVzaCBcImhhcmRc IiBjb25zdHJ1Y3Rpb25zIiBjcGVybC1maW5kLXBvZHMtaGVyZXMgdF0KLQkgICAiLS0tLSIKLQkg ICBbIkluZGVudCByZWdpb24iIGNwZXJsLWluZGVudC1yZWdpb24gKGNwZXJsLXVzZS1yZWdpb24t cCldCi0JICAgWyJDb21tZW50IHJlZ2lvbiIgY3BlcmwtY29tbWVudC1yZWdpb24gKGNwZXJsLXVz ZS1yZWdpb24tcCldCi0JICAgWyJVbmNvbW1lbnQgcmVnaW9uIiBjcGVybC11bmNvbW1lbnQtcmVn aW9uIChjcGVybC11c2UtcmVnaW9uLXApXQotCSAgICItLS0tIgotCSAgIFsiUnVuIiBtb2RlLWNv bXBpbGUgKGZib3VuZHAgJ21vZGUtY29tcGlsZSldCi0JICAgWyJLaWxsIiBtb2RlLWNvbXBpbGUt a2lsbCAoYW5kIChmYm91bmRwICdtb2RlLWNvbXBpbGUta2lsbCkKLQkJCQkJICAoZ2V0LWJ1ZmZl ciAiKmNvbXBpbGF0aW9uKiIpKV0KLQkgICBbIk5leHQgZXJyb3IiIG5leHQtZXJyb3IgKGdldC1i dWZmZXIgIipjb21waWxhdGlvbioiKV0KLQkgICBbIkNoZWNrIHN5bnRheCIgY3BlcmwtY2hlY2st c3ludGF4IChmYm91bmRwICdtb2RlLWNvbXBpbGUpXQotCSAgICItLS0tIgotCSAgIFsiRGVidWdn ZXIiIGNwZXJsLWRiIHRdCi0JICAgIi0tLS0iCi0JICAgKCJUb29scyIKLQkgICAgWyJJbWVudSIg aW1lbnUgKGZib3VuZHAgJ2ltZW51KV0KLQkgICAgWyJJbnNlcnQgc3BhY2VzIGlmIG5lZWRlZCIg Y3BlcmwtZmluZC1iYWQtc3R5bGUgdF0KLQkgICAgWyJDbGFzcyBIaWVyYXJjaHkgZnJvbSBUQUdT IiBjcGVybC10YWdzLWhpZXItaW5pdCB0XQotCSAgICA7O1siVXBkYXRlIGNsYXNzZXMiIChjcGVy bC10YWdzLWhpZXItaW5pdCB0KSB0YWdzLXRhYmxlLWxpc3RdCi0JICAgIFsiQ1BlcmwgcHJldHR5 IHByaW50IChleHBybW50bCkiIGNwZXJsLXBzLXByaW50Ci0JICAgICAoZmJvdW5kcCAncHMtZXh0 ZW5kLWZhY2UtbGlzdCldCi0JICAgIFsiSW1lbnUgb24gaW5mbyIgY3BlcmwtaW1lbnUtb24taW5m byAoZmVhdHVyZXAgJ2ltZW51KV0KLQkgICAgKCJUYWdzIgorCScoIlBlcmwiCisJICBbIkJlZ2lu bmluZyBvZiBmdW5jdGlvbiIgYmVnaW5uaW5nLW9mLWRlZnVuIHRdCisJICBbIkVuZCBvZiBmdW5j dGlvbiIgZW5kLW9mLWRlZnVuIHRdCisJICBbIk1hcmsgZnVuY3Rpb24iIG1hcmstZGVmdW4gdF0K KwkgIFsiSW5kZW50IGV4cHJlc3Npb24iIGNwZXJsLWluZGVudC1leHAgdF0KKwkgIFsiRmlsbCBw YXJhZ3JhcGgvY29tbWVudCIgY3BlcmwtZmlsbC1wYXJhZ3JhcGggdF0KKwkgICItLS0tIgorCSAg WyJMaW5lIHVwIGEgY29uc3RydWN0aW9uIiBjcGVybC1saW5ldXAgKGNwZXJsLXVzZS1yZWdpb24t cCldCisJICBbIkludmVydCBpZi91bmxlc3Mvd2hpbGUgZXRjIiBjcGVybC1pbnZlcnQtaWYtdW5s ZXNzIHRdCisJICAoIlJlZ2V4cCIKKwkgICBbIkJlYXV0aWZ5IiBjcGVybC1iZWF1dGlmeS1yZWdl eHAKKwkgICAgY3BlcmwtdXNlLXN5bnRheC10YWJsZS10ZXh0LXByb3BlcnR5XQorCSAgIFsiQmVh dXRpZnkgb25lIGxldmVsIGRlZXAiIChjcGVybC1iZWF1dGlmeS1yZWdleHAgMSkKKwkgICAgY3Bl cmwtdXNlLXN5bnRheC10YWJsZS10ZXh0LXByb3BlcnR5XQorCSAgIFsiQmVhdXRpZnkgYSBncm91 cCIgY3BlcmwtYmVhdXRpZnktbGV2ZWwKKwkgICAgY3BlcmwtdXNlLXN5bnRheC10YWJsZS10ZXh0 LXByb3BlcnR5XQorCSAgIFsiQmVhdXRpZnkgYSBncm91cCBvbmUgbGV2ZWwgZGVlcCIgKGNwZXJs LWJlYXV0aWZ5LWxldmVsIDEpCisJICAgIGNwZXJsLXVzZS1zeW50YXgtdGFibGUtdGV4dC1wcm9w ZXJ0eV0KKwkgICBbIkNvbnRyYWN0IGEgZ3JvdXAiIGNwZXJsLWNvbnRyYWN0LWxldmVsCisJICAg IGNwZXJsLXVzZS1zeW50YXgtdGFibGUtdGV4dC1wcm9wZXJ0eV0KKwkgICBbIkNvbnRyYWN0IGdy b3VwcyIgY3BlcmwtY29udHJhY3QtbGV2ZWxzCisJICAgIGNwZXJsLXVzZS1zeW50YXgtdGFibGUt dGV4dC1wcm9wZXJ0eV0pCisJICBbIlJlZnJlc2ggXCJoYXJkXCIgY29uc3RydWN0aW9ucyIgY3Bl cmwtZmluZC1wb2RzLWhlcmVzIHRdCisJICAiLS0tLSIKKwkgIFsiSW5kZW50IHJlZ2lvbiIgY3Bl cmwtaW5kZW50LXJlZ2lvbiAoY3BlcmwtdXNlLXJlZ2lvbi1wKV0KKwkgIFsiQ29tbWVudCByZWdp b24iIGNwZXJsLWNvbW1lbnQtcmVnaW9uIChjcGVybC11c2UtcmVnaW9uLXApXQorCSAgWyJVbmNv bW1lbnQgcmVnaW9uIiBjcGVybC11bmNvbW1lbnQtcmVnaW9uIChjcGVybC11c2UtcmVnaW9uLXAp XQorCSAgIi0tLS0iCisJICBbIlJ1biIgbW9kZS1jb21waWxlIChmYm91bmRwICdtb2RlLWNvbXBp bGUpXQorCSAgWyJLaWxsIiBtb2RlLWNvbXBpbGUta2lsbCAoYW5kIChmYm91bmRwICdtb2RlLWNv bXBpbGUta2lsbCkKKwkJCQkJIChnZXQtYnVmZmVyICIqY29tcGlsYXRpb24qIikpXQorCSAgWyJO ZXh0IGVycm9yIiBuZXh0LWVycm9yIChnZXQtYnVmZmVyICIqY29tcGlsYXRpb24qIildCisJICBb IkNoZWNrIHN5bnRheCIgY3BlcmwtY2hlY2stc3ludGF4IChmYm91bmRwICdtb2RlLWNvbXBpbGUp XQorCSAgIi0tLS0iCisJICBbIkRlYnVnZ2VyIiBjcGVybC1kYiB0XQorCSAgIi0tLS0iCisJICAo IlRvb2xzIgorCSAgIFsiSW1lbnUiIGltZW51IChmYm91bmRwICdpbWVudSldCisJICAgWyJJbnNl cnQgc3BhY2VzIGlmIG5lZWRlZCIgY3BlcmwtZmluZC1iYWQtc3R5bGUgdF0KKwkgICBbIkNsYXNz IEhpZXJhcmNoeSBmcm9tIFRBR1MiIGNwZXJsLXRhZ3MtaGllci1pbml0IHRdCisJICAgOztbIlVw ZGF0ZSBjbGFzc2VzIiAoY3BlcmwtdGFncy1oaWVyLWluaXQgdCkgdGFncy10YWJsZS1saXN0XQor CSAgIFsiQ1BlcmwgcHJldHR5IHByaW50IChleHBybW50bCkiIGNwZXJsLXBzLXByaW50CisJICAg IChmYm91bmRwICdwcy1leHRlbmQtZmFjZS1saXN0KV0KKwkgICBbIkltZW51IG9uIGluZm8iIGNw ZXJsLWltZW51LW9uLWluZm8gKGZlYXR1cmVwICdpbWVudSldCisJICAgKCJUYWdzIgogOzs7CSAg ICAgWyJDcmVhdGUgdGFncyBmb3IgY3VycmVudCBmaWxlIiBjcGVybC1ldGFncyB0XQogOzs7CSAg ICAgWyJBZGQgdGFncyBmb3IgY3VycmVudCBmaWxlIiAoY3BlcmwtZXRhZ3MgdCkgdF0KIDs7Owkg ICAgIFsiQ3JlYXRlIHRhZ3MgZm9yIFBlcmwgZmlsZXMgaW4gZGlyZWN0b3J5IiAoY3BlcmwtZXRh Z3MgbmlsIHQpIHRdCkBAIC0xMTI1LDU3ICsxMTE0LDU3IEBACiA7OzsJICAgICBbIkFkZCB0YWdz IGZvciBQZXJsIGZpbGVzIGluIChzdWIpZGlyZWN0b3JpZXMiCiA7OzsJICAgICAgKGNwZXJsLWV0 YWdzIHQgJ3JlY3Vyc2l2ZSkgdF0pCiA7Ozs7IGNwZXJsLXdyaXRlLXRhZ3MgKCZvcHRpb25hbCBm aWxlIGVyYXNlIHJlY3Vyc2UgZGlyIGluYnVmZmVyKQotCSAgICAgWyJDcmVhdGUgdGFncyBmb3Ig Y3VycmVudCBmaWxlIiAoY3Blcmwtd3JpdGUtdGFncyBuaWwgdCkgdF0KLQkgICAgIFsiQWRkIHRh Z3MgZm9yIGN1cnJlbnQgZmlsZSIgKGNwZXJsLXdyaXRlLXRhZ3MpIHRdCi0JICAgICBbIkNyZWF0 ZSB0YWdzIGZvciBQZXJsIGZpbGVzIGluIGRpcmVjdG9yeSIKLQkgICAgICAoY3Blcmwtd3JpdGUt dGFncyBuaWwgdCBuaWwgdCkgdF0KLQkgICAgIFsiQWRkIHRhZ3MgZm9yIFBlcmwgZmlsZXMgaW4g ZGlyZWN0b3J5IgotCSAgICAgIChjcGVybC13cml0ZS10YWdzIG5pbCBuaWwgbmlsIHQpIHRdCi0J ICAgICBbIkNyZWF0ZSB0YWdzIGZvciBQZXJsIGZpbGVzIGluIChzdWIpZGlyZWN0b3JpZXMiCi0J ICAgICAgKGNwZXJsLXdyaXRlLXRhZ3MgbmlsIHQgdCB0KSB0XQotCSAgICAgWyJBZGQgdGFncyBm b3IgUGVybCBmaWxlcyBpbiAoc3ViKWRpcmVjdG9yaWVzIgotCSAgICAgIChjcGVybC13cml0ZS10 YWdzIG5pbCBuaWwgdCB0KSB0XSkpCi0JICAgKCJQZXJsIGRvY3MiCi0JICAgIFsiRGVmaW5lIHdv cmQgYXQgcG9pbnQiIGltZW51LWdvLWZpbmQtYXQtcG9zaXRpb24KLQkgICAgIChmYm91bmRwICdp bWVudS1nby1maW5kLWF0LXBvc2l0aW9uKV0KLQkgICAgWyJIZWxwIG9uIGZ1bmN0aW9uIiBjcGVy bC1pbmZvLW9uLWNvbW1hbmQgdF0KLQkgICAgWyJIZWxwIG9uIGZ1bmN0aW9uIGF0IHBvaW50IiBj cGVybC1pbmZvLW9uLWN1cnJlbnQtY29tbWFuZCB0XQotCSAgICBbIkhlbHAgb24gc3ltYm9sIGF0 IHBvaW50IiBjcGVybC1nZXQtaGVscCB0XQotCSAgICBbIlBlcmxkb2MiIGNwZXJsLXBlcmxkb2Mg dF0KLQkgICAgWyJQZXJsZG9jIG9uIHdvcmQgYXQgcG9pbnQiIGNwZXJsLXBlcmxkb2MtYXQtcG9p bnQgdF0KLQkgICAgWyJWaWV3IG1hbnBhZ2Ugb2YgUE9EIGluIHRoaXMgZmlsZSIgY3BlcmwtcG9k LXRvLW1hbnBhZ2UgdF0KLQkgICAgWyJBdXRvLWhlbHAgb24iIGNwZXJsLWxhenktaW5zdGFsbAot CSAgICAgKGFuZCAoZmJvdW5kcCAncnVuLXdpdGgtaWRsZS10aW1lcikKLQkJICAobm90IGNwZXJs LWxhenktaW5zdGFsbGVkKSldCi0JICAgIFsiQXV0by1oZWxwIG9mZiIgKGV2YWwgJyhjcGVybC1s YXp5LXVuc3RhbGwpKQotCSAgICAgKGFuZCAoZmJvdW5kcCAncnVuLXdpdGgtaWRsZS10aW1lcikK LQkJICBjcGVybC1sYXp5LWluc3RhbGxlZCldKQotCSAgICgiVG9nZ2xlLi4uIgotCSAgICBbIkF1 dG8gbmV3bGluZSIgY3BlcmwtdG9nZ2xlLWF1dG8tbmV3bGluZSB0XQotCSAgICBbIkVsZWN0cmlj IHBhcmVucyIgY3BlcmwtdG9nZ2xlLWVsZWN0cmljIHRdCi0JICAgIFsiRWxlY3RyaWMga2V5d29y ZHMiIGNwZXJsLXRvZ2dsZS1hYmJyZXYgdF0KLQkgICAgWyJGaXggd2hpdGVzcGFjZSBvbiBpbmRl bnQiIGNwZXJsLXRvZ2dsZS1jb25zdHJ1Y3QtZml4IHRdCi0JICAgIFsiQXV0byBmaWxsIiBhdXRv LWZpbGwtbW9kZSB0XSkKLQkgICAoIkluZGVudCBzdHlsZXMuLi4iCi0JICAgIFsiQ1BlcmwiIChj cGVybC1zZXQtc3R5bGUgIkNQZXJsIikgdF0KLQkgICAgWyJQZXJsU3R5bGUiIChjcGVybC1zZXQt c3R5bGUgIlBlcmxTdHlsZSIpIHRdCi0JICAgIFsiR05VIiAoY3Blcmwtc2V0LXN0eWxlICJHTlUi KSB0XQotCSAgICBbIkMrKyIgKGNwZXJsLXNldC1zdHlsZSAiQysrIikgdF0KLQkgICAgWyJGU0Yi IChjcGVybC1zZXQtc3R5bGUgIkZTRiIpIHRdCi0JICAgIFsiQlNEIiAoY3Blcmwtc2V0LXN0eWxl ICJCU0QiKSB0XQotCSAgICBbIldoaXRlc21pdGgiIChjcGVybC1zZXQtc3R5bGUgIldoaXRlc21p dGgiKSB0XQotCSAgICBbIkN1cnJlbnQiIChjcGVybC1zZXQtc3R5bGUgIkN1cnJlbnQiKSB0XQot CSAgICBbIk1lbW9yaXplZCIgKGNwZXJsLXNldC1zdHlsZS1iYWNrKSBjcGVybC1vbGQtc3R5bGVd KQotCSAgICgiTWljcm8tZG9jcyIKLQkgICAgWyJUaXBzIiAoZGVzY3JpYmUtdmFyaWFibGUgJ2Nw ZXJsLXRpcHMpIHRdCi0JICAgIFsiUHJvYmxlbXMiIChkZXNjcmliZS12YXJpYWJsZSAnY3Blcmwt cHJvYmxlbXMpIHRdCi0JICAgIFsiU3BlZWQiIChkZXNjcmliZS12YXJpYWJsZSAnY3Blcmwtc3Bl ZWQpIHRdCi0JICAgIFsiUHJhaXNlIiAoZGVzY3JpYmUtdmFyaWFibGUgJ2NwZXJsLXByYWlzZSkg dF0KLQkgICAgWyJGYWNlcyIgKGRlc2NyaWJlLXZhcmlhYmxlICdjcGVybC10aXBzLWZhY2VzKSB0 XQotCSAgICBbIkNQZXJsIG1vZGUiIChkZXNjcmliZS1mdW5jdGlvbiAnY3BlcmwtbW9kZSkgdF0K LQkgICAgWyJDUGVybCB2ZXJzaW9uIgotCSAgICAgKG1lc3NhZ2UgIlRoZSB2ZXJzaW9uIG9mIG1h c3Rlci1maWxlIGZvciB0aGlzIENQZXJsIGlzICVzLWVtYWNzIgotCQkgICAgICBjcGVybC12ZXJz aW9uKSB0XSkpKSkKKwkgICAgWyJDcmVhdGUgdGFncyBmb3IgY3VycmVudCBmaWxlIiAoY3Blcmwt d3JpdGUtdGFncyBuaWwgdCkgdF0KKwkgICAgWyJBZGQgdGFncyBmb3IgY3VycmVudCBmaWxlIiAo Y3Blcmwtd3JpdGUtdGFncykgdF0KKwkgICAgWyJDcmVhdGUgdGFncyBmb3IgUGVybCBmaWxlcyBp biBkaXJlY3RvcnkiCisJICAgICAoY3Blcmwtd3JpdGUtdGFncyBuaWwgdCBuaWwgdCkgdF0KKwkg ICAgWyJBZGQgdGFncyBmb3IgUGVybCBmaWxlcyBpbiBkaXJlY3RvcnkiCisJICAgICAoY3Blcmwt d3JpdGUtdGFncyBuaWwgbmlsIG5pbCB0KSB0XQorCSAgICBbIkNyZWF0ZSB0YWdzIGZvciBQZXJs IGZpbGVzIGluIChzdWIpZGlyZWN0b3JpZXMiCisJICAgICAoY3Blcmwtd3JpdGUtdGFncyBuaWwg dCB0IHQpIHRdCisJICAgIFsiQWRkIHRhZ3MgZm9yIFBlcmwgZmlsZXMgaW4gKHN1YilkaXJlY3Rv cmllcyIKKwkgICAgIChjcGVybC13cml0ZS10YWdzIG5pbCBuaWwgdCB0KSB0XSkpCisJICAoIlBl cmwgZG9jcyIKKwkgICBbIkRlZmluZSB3b3JkIGF0IHBvaW50IiBpbWVudS1nby1maW5kLWF0LXBv c2l0aW9uCisJICAgIChmYm91bmRwICdpbWVudS1nby1maW5kLWF0LXBvc2l0aW9uKV0KKwkgICBb IkhlbHAgb24gZnVuY3Rpb24iIGNwZXJsLWluZm8tb24tY29tbWFuZCB0XQorCSAgIFsiSGVscCBv biBmdW5jdGlvbiBhdCBwb2ludCIgY3BlcmwtaW5mby1vbi1jdXJyZW50LWNvbW1hbmQgdF0KKwkg ICBbIkhlbHAgb24gc3ltYm9sIGF0IHBvaW50IiBjcGVybC1nZXQtaGVscCB0XQorCSAgIFsiUGVy bGRvYyIgY3BlcmwtcGVybGRvYyB0XQorCSAgIFsiUGVybGRvYyBvbiB3b3JkIGF0IHBvaW50IiBj cGVybC1wZXJsZG9jLWF0LXBvaW50IHRdCisJICAgWyJWaWV3IG1hbnBhZ2Ugb2YgUE9EIGluIHRo aXMgZmlsZSIgY3BlcmwtcG9kLXRvLW1hbnBhZ2UgdF0KKwkgICBbIkF1dG8taGVscCBvbiIgY3Bl cmwtbGF6eS1pbnN0YWxsCisJICAgIChhbmQgKGZib3VuZHAgJ3J1bi13aXRoLWlkbGUtdGltZXIp CisJCSAobm90IGNwZXJsLWxhenktaW5zdGFsbGVkKSldCisJICAgWyJBdXRvLWhlbHAgb2ZmIiAo ZXZhbCAnKGNwZXJsLWxhenktdW5zdGFsbCkpCisJICAgIChhbmQgKGZib3VuZHAgJ3J1bi13aXRo LWlkbGUtdGltZXIpCisJCSBjcGVybC1sYXp5LWluc3RhbGxlZCldKQorCSAgKCJUb2dnbGUuLi4i CisJICAgWyJBdXRvIG5ld2xpbmUiIGNwZXJsLXRvZ2dsZS1hdXRvLW5ld2xpbmUgdF0KKwkgICBb IkVsZWN0cmljIHBhcmVucyIgY3BlcmwtdG9nZ2xlLWVsZWN0cmljIHRdCisJICAgWyJFbGVjdHJp YyBrZXl3b3JkcyIgY3BlcmwtdG9nZ2xlLWFiYnJldiB0XQorCSAgIFsiRml4IHdoaXRlc3BhY2Ug b24gaW5kZW50IiBjcGVybC10b2dnbGUtY29uc3RydWN0LWZpeCB0XQorCSAgIFsiQXV0byBmaWxs IiBhdXRvLWZpbGwtbW9kZSB0XSkKKwkgICgiSW5kZW50IHN0eWxlcy4uLiIKKwkgICBbIkNQZXJs IiAoY3Blcmwtc2V0LXN0eWxlICJDUGVybCIpIHRdCisJICAgWyJQZXJsU3R5bGUiIChjcGVybC1z ZXQtc3R5bGUgIlBlcmxTdHlsZSIpIHRdCisJICAgWyJHTlUiIChjcGVybC1zZXQtc3R5bGUgIkdO VSIpIHRdCisJICAgWyJDKysiIChjcGVybC1zZXQtc3R5bGUgIkMrKyIpIHRdCisJICAgWyJGU0Yi IChjcGVybC1zZXQtc3R5bGUgIkZTRiIpIHRdCisJICAgWyJCU0QiIChjcGVybC1zZXQtc3R5bGUg IkJTRCIpIHRdCisJICAgWyJXaGl0ZXNtaXRoIiAoY3Blcmwtc2V0LXN0eWxlICJXaGl0ZXNtaXRo IikgdF0KKwkgICBbIkN1cnJlbnQiIChjcGVybC1zZXQtc3R5bGUgIkN1cnJlbnQiKSB0XQorCSAg IFsiTWVtb3JpemVkIiAoY3Blcmwtc2V0LXN0eWxlLWJhY2spIGNwZXJsLW9sZC1zdHlsZV0pCisJ ICAoIk1pY3JvLWRvY3MiCisJICAgWyJUaXBzIiAoZGVzY3JpYmUtdmFyaWFibGUgJ2NwZXJsLXRp cHMpIHRdCisJICAgWyJQcm9ibGVtcyIgKGRlc2NyaWJlLXZhcmlhYmxlICdjcGVybC1wcm9ibGVt cykgdF0KKwkgICBbIlNwZWVkIiAoZGVzY3JpYmUtdmFyaWFibGUgJ2NwZXJsLXNwZWVkKSB0XQor CSAgIFsiUHJhaXNlIiAoZGVzY3JpYmUtdmFyaWFibGUgJ2NwZXJsLXByYWlzZSkgdF0KKwkgICBb IkZhY2VzIiAoZGVzY3JpYmUtdmFyaWFibGUgJ2NwZXJsLXRpcHMtZmFjZXMpIHRdCisJICAgWyJD UGVybCBtb2RlIiAoZGVzY3JpYmUtZnVuY3Rpb24gJ2NwZXJsLW1vZGUpIHRdCisJICAgWyJDUGVy bCB2ZXJzaW9uIgorCSAgICAobWVzc2FnZSAiVGhlIHZlcnNpb24gb2YgbWFzdGVyLWZpbGUgZm9y IHRoaXMgQ1BlcmwgaXMgJXMtZW1hY3MiCisJCSAgICAgY3BlcmwtdmVyc2lvbikgdF0pKSkpCiAg IChlcnJvciBuaWwpKQogCiAoYXV0b2xvYWQgJ2MtbWFjcm8tZXhwYW5kICJjbWFjZXhwIgpAQCAt MTE4Niw5ICsxMTc1LDkgQEAKIChkZWZ2YXIgY3BlcmwtaW1lbnUtLWZ1bmN0aW9uLW5hbWUtcmVn ZXhwLXBlcmwKICAgKGNvbmNhdAogICAgIl5cXCgiCi0gICAgICAgIlsgXHRdKlxcKHN1YlxcfHBh Y2thZ2VcXClbIFx0XG5dK1xcKFthLXpBLVpfMC05OiddK1xcKVsgXHRdKlxcKChbXigpXSopWyBc dF0qXFwpPyIKLSAgICAgIlxcfCIKLSAgICAgICAiPWhlYWRcXChbMTJdXFwpWyBcdF0rXFwoW15c bl0rXFwpJCIKKwkiWyBcdF0qXFwoc3ViXFx8cGFja2FnZVxcKVsgXHRcbl0rXFwoW2EtekEtWl8w LTk6J10rXFwpWyBcdF0qXFwoKFteKCldKilbIFx0XSpcXCk/IgorICAgIlxcfCIKKwkiPWhlYWRc XChbMTJdXFwpWyBcdF0rXFwoW15cbl0rXFwpJCIKICAgICJcXCkiKSkKIAogKGRlZnZhciBjcGVy bC1vdXRsaW5lLXJlZ2V4cApAQCAtMTIyNCw4ICsxMjEzLDcgQEAKICAgKG1vZGlmeS1zeW50YXgt ZW50cnkgP3wgIi4iIGNwZXJsLW1vZGUtc3ludGF4LXRhYmxlKQogICAoc2V0cSBjcGVybC1zdHJp bmctc3ludGF4LXRhYmxlIChjb3B5LXN5bnRheC10YWJsZSBjcGVybC1tb2RlLXN5bnRheC10YWJs ZSkpCiAgIChtb2RpZnktc3ludGF4LWVudHJ5ID8kICIuIiBjcGVybC1zdHJpbmctc3ludGF4LXRh YmxlKQotICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/IyAiLiIgY3Blcmwtc3RyaW5nLXN5bnRheC10 YWJsZSkgOyAoPyMgY29tbWVudCApCi0pCisgIChtb2RpZnktc3ludGF4LWVudHJ5ID8jICIuIiBj cGVybC1zdHJpbmctc3ludGF4LXRhYmxlKSkgOyAoPyMgY29tbWVudCApCiAKIAogDApAQCAtMTMz Nyw3ICsxMzI1LDcgQEAKIHNwYW4gdGhlIG5lZWRlZCBhbW91bnQgb2YgbGluZXMuCiAKIFZhcmlh YmxlcyBgY3BlcmwtcG9kLWhlcmUtc2NhbicsIGBjcGVybC1wb2QtaGVyZS1mb250aWZ5JywKLWBj cGVybC1wb2QtZmFjZScsIGBjcGVybC1wb2QtaGVhZC1mYWNlJyBjb250cm9sIHByb2Nlc3Npbmcg b2YgcG9kIGFuZAorYGNwZXJsLXBvZC1mYWNlJywgYGNwZXJsLXBvZC1oZWFkLWZhY2UnIGNvbnRy b2wgcHJvY2Vzc2luZyBvZiBQT0QgYW5kCiBoZXJlLWRvY3Mgc2VjdGlvbnMuICBXaXRoIGNhcGFi bGUgRW1heGVuIHJlc3VsdHMgb2Ygc2NhbiBhcmUgdXNlZAogZm9yIGluZGVudGF0aW9uIHRvbywg b3RoZXJ3aXNlIHRoZXkgYXJlIHVzZWQgZm9yIGhpZ2hsaWdodGluZyBvbmx5LgogCkBAIC0xNTAy LDkgKzE0OTAsOSBAQAogCTs7IEZpeCBicm9rZW4gZm9udC1sb2NrOgogCShvciAoYm91bmRwICdm b250LWxvY2stdW5mb250aWZ5LXJlZ2lvbi1mdW5jdGlvbikKIAkgICAgKHNldCAnZm9udC1sb2Nr LXVuZm9udGlmeS1yZWdpb24tZnVuY3Rpb24KLQkJICAnZm9udC1sb2NrLWRlZmF1bHQtdW5mb250 aWZ5LXJlZ2lvbikpCisJCSAnZm9udC1sb2NrLWRlZmF1bHQtdW5mb250aWZ5LXJlZ2lvbikpCiAJ KG1ha2UtbG9jYWwtdmFyaWFibGUgJ2ZvbnQtbG9jay11bmZvbnRpZnktcmVnaW9uLWZ1bmN0aW9u KQotCShzZXQgJ2ZvbnQtbG9jay11bmZvbnRpZnktcmVnaW9uLWZ1bmN0aW9uCisJKHNldHEgZm9u dC1sb2NrLXVuZm9udGlmeS1yZWdpb24tZnVuY3Rpb24KIAkgICAgICAnY3BlcmwtZm9udC1sb2Nr LXVuZm9udGlmeS1yZWdpb24tZnVuY3Rpb24pCiAJKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2NwZXJs LXN5bnRheC1kb25lLXRvKQogCTs7IEFub3RoZXIgYnVnOiB1bmxlc3MgZm9udC1sb2NrLXN5bnRh Y3RpYy1rZXl3b3JkcywgZm9udC1sb2NrCkBAIC0xNTMxLDEyICsxNTE5LDkgQEAKICAgKHJ1bi1o b29rcyAnY3BlcmwtbW9kZS1ob29rKQogICA7OyBBZnRlciBob29rcyBzaW5jZSBmb250aWZpY2F0 aW9uIHdpbGwgYnJlYWsgdGhpcwogICAoaWYgY3BlcmwtcG9kLWhlcmUtc2NhbgotICAgICAgKG9y IDs7KGFuZCAoYm91bmRwICdmb250LWxvY2stbW9kZSkKLQkgIDs7ICAgICAoZXZhbCAnZm9udC1s b2NrLW1vZGUpCTsgQXZvaWQgd2FybmluZwotCSAgOzsgICAgIChib3VuZHAgJ2ZvbnQtbG9jay1o b3QtcGFzcykgOyBOZXdlciBmb250LWxvY2sKLSAgICAgICBjcGVybC1zeW50YXhpZnktYnktZm9u dC1sb2NrICA7OykKLSAgICAgICAocHJvZ24gKG9yIGNwZXJsLWZhY2VzLWluaXQgKGNwZXJsLWlu aXQtZmFjZXMtd2VhaykpCi0JICAgICAgKGNwZXJsLWZpbmQtcG9kcy1oZXJlcykpKSkpCisgICAg ICAodW5sZXNzIGNwZXJsLXN5bnRheGlmeS1ieS1mb250LWxvY2sKKwkob3IgY3BlcmwtZmFjZXMt aW5pdCAoY3BlcmwtaW5pdC1mYWNlcy13ZWFrKSkKKwkoY3BlcmwtZmluZC1wb2RzLWhlcmVzKSkp KQogDAogOzsgRml4IGZvciBwZXJsZGIgLSBtYWtlIGRlZmF1bHQgcmVhc29uYWJsZQogKGRlZnVu IGNwZXJsLWRiICgpCkBAIC0xNTQ2LDEwICsxNTMxLDEwIEBACiAJCQkJKGlmIChjb25zcCBndWQt cGVybGRiLWhpc3RvcnkpCiAJCQkJICAgIChjYXIgZ3VkLXBlcmxkYi1oaXN0b3J5KQogCQkJCSAg KGNvbmNhdCAicGVybCAiIDs7KGZpbGUtbmFtZS1ub25kaXJlY3RvcnkKLQkJCQkJCSAgIDs7IEkg aGF2ZSBwcm9ibGVtcwotCQkJCQkJICAgOzsgaW4gT1MvMgotCQkJCQkJICAgOzsgb3RoZXJ3aXNl Ci0JCQkJCQkgICAoYnVmZmVyLWZpbGUtbmFtZSkpKQorCQkJCQkgIDs7IEkgaGF2ZSBwcm9ibGVt cworCQkJCQkgIDs7IGluIE9TLzIKKwkJCQkJICA7OyBvdGhlcndpc2UKKwkJCQkJICAoYnVmZmVy LWZpbGUtbmFtZSkpKQogCQkJCW5pbCBuaWwKIAkJCQknKGd1ZC1wZXJsZGItaGlzdG9yeSAuIDEp KSkpCiAMCkBAIC0xNjc1LDcgKzE2NjAsNyBAQAogCSAgICAoc2V0cSBsYXN0LWNvbW1hbmQtY2hh ciA/XHspCiAJICAgIChjcGVybC1lbGVjdHJpYy1sYnJhY2UgYXJnIGluc2VydHBvcykpCiAJICAo Zm9yd2FyZC1jaGFyIDEpKQotICAgICAgOzogQ2hlY2sgd2hldGhlciB3ZSBjbG9zZSBzb21ldGhp bmcgInVzdWFsIiB3aXRoIGB9JworICAgICAgOzsgQ2hlY2sgd2hldGhlciB3ZSBjbG9zZSBzb21l dGhpbmcgInVzdWFsIiB3aXRoIGB9JwogICAgICAgKGlmIChhbmQgKGVxIGxhc3QtY29tbWFuZC1j aGFyID9cfSkKIAkgICAgICAgKG5vdAogCQkoY29uZGl0aW9uLWNhc2UgbmlsCkBAIC0xNzI1LDE3 ICsxNzEwLDE3IEBACiAoZGVmdW4gY3BlcmwtZWxlY3RyaWMtbGJyYWNlIChhcmcgJm9wdGlvbmFs IGVuZCkKICAgIkluc2VydCBjaGFyYWN0ZXIsIGNvcnJlY3QgbGluZSdzIGluZGVudGF0aW9uLCBj b3JyZWN0IHF1b3RpbmcgYnkgc3BhY2UuIgogICAoaW50ZXJhY3RpdmUgIlAiKQotICAobGV0IChw b3MgYWZ0ZXIKLQkgICAgKGNwZXJsLWJyYWNlLXJlY3Vyc2luZyB0KQotCSAgICAoY3BlcmwtYXV0 by1uZXdsaW5lIGNwZXJsLWF1dG8tbmV3bGluZSkKLQkgICAgKG90aGVyLWVuZCAob3IgZW5kCi0J CQkgICAoaWYgKGFuZCBjcGVybC1lbGVjdHJpYy1wYXJlbnMtbWFyawotCQkJCSAgICAoY3Blcmwt bWFyay1hY3RpdmUpCi0JCQkJICAgICg+IChtYXJrKSAocG9pbnQpKSkKLQkJCSAgICAgICAoc2F2 ZS1leGN1cnNpb24KLQkJCQkgKGdvdG8tY2hhciAobWFyaykpCi0JCQkJIChwb2ludC1tYXJrZXIp KQotCQkJICAgICBuaWwpKSkpCisgIChsZXQgKChjcGVybC1icmFjZS1yZWN1cnNpbmcgdCkKKwko Y3BlcmwtYXV0by1uZXdsaW5lIGNwZXJsLWF1dG8tbmV3bGluZSkKKwkob3RoZXItZW5kIChvciBl bmQKKwkJICAgICAgIChpZiAoYW5kIGNwZXJsLWVsZWN0cmljLXBhcmVucy1tYXJrCisJCQkJKGNw ZXJsLW1hcmstYWN0aXZlKQorCQkJCSg+IChtYXJrKSAocG9pbnQpKSkKKwkJCSAgIChzYXZlLWV4 Y3Vyc2lvbgorCQkJICAgICAoZ290by1jaGFyIChtYXJrKSkKKwkJCSAgICAgKHBvaW50LW1hcmtl cikpCisJCQkgbmlsKSkpCisJcG9zIGFmdGVyKQogICAgIChhbmQgKGNwZXJsLXZhbCAnY3Blcmwt ZWxlY3RyaWMtbGJyYWNlLXNwYWNlKQogCSAoZXEgKHByZWNlZGluZy1jaGFyKSA/JCkKIAkgKHNh dmUtZXhjdXJzaW9uCkBAIC0xNzY4LDkgKzE3NTMsOSBAQAogCShvdGhlci1lbmQgKGlmIChhbmQg Y3BlcmwtZWxlY3RyaWMtcGFyZW5zLW1hcmsKIAkJCSAgICAoY3BlcmwtbWFyay1hY3RpdmUpCiAJ CQkgICAgKD4gKG1hcmspIChwb2ludCkpKQotCQkJICAgKHNhdmUtZXhjdXJzaW9uCi0JCQkgICAg IChnb3RvLWNoYXIgKG1hcmspKQotCQkJICAgICAocG9pbnQtbWFya2VyKSkKKwkJICAgICAgIChz YXZlLWV4Y3Vyc2lvbgorCQkJIChnb3RvLWNoYXIgKG1hcmspKQorCQkJIChwb2ludC1tYXJrZXIp KQogCQkgICAgIG5pbCkpKQogICAgIChpZiAoYW5kIChjcGVybC12YWwgJ2NwZXJsLWVsZWN0cmlj LXBhcmVucykKIAkgICAgIChtZW1xIGxhc3QtY29tbWFuZC1jaGFyCkBAIC0xODIyLDkgKzE4MDcs OSBAQAogCSAgKGluc2VydCAobWFrZS1zdHJpbmcKIAkJICAgKHByZWZpeC1udW1lcmljLXZhbHVl IGFyZykKIAkJICAgKGNkciAoYXNzb2MgbGFzdC1jb21tYW5kLWNoYXIgJygoP1x9IC4gP1x7KQot CQkJCQkJICAoP1xdIC4gP1xbKQotCQkJCQkJICAoP1wpIC4gP1woKQotCQkJCQkJICAoP1w+IC4g P1w8KSkpKSkpCisJCQkJCQkgICAoP1xdIC4gP1xbKQorCQkJCQkJICAgKD9cKSAuID9cKCkKKwkJ CQkJCSAgICg/XD4gLiA/XDwpKSkpKSkKIAkgIChnb3RvLWNoYXIgKDErIHApKSkKICAgICAgIChz ZWxmLWluc2VydC1jb21tYW5kIChwcmVmaXgtbnVtZXJpYy12YWx1ZSBhcmcpKSkpKQogCkBAIC0x ODc5LDggKzE4NjQsNyBAQAogIAkgICAgIChpbnNlcnQgIlxufSIpCiAJICAgICAoYW5kIGRvIChp bnNlcnQgIiB3aGlsZSAoKTsiKSkpCiAgCSAgICAodAotIAkgICAgIChpbnNlcnQgKGlmIGRvICIg e1xufSB3aGlsZSAoKTsiICIgKCkge1xufSIpKSkKLSAJICAgICkKKyAJICAgICAoaW5zZXJ0IChp ZiBkbyAiIHtcbn0gd2hpbGUgKCk7IiAiICgpIHtcbn0iKSkpKQogCSAgIChvciAobG9va2luZy1h dCAiWyBcdF1cXHwkIikgKGluc2VydCAiICIpKQogCSAgIChjcGVybC1pbmRlbnQtbGluZSkKIAkg ICAoaWYgZG9sbGFyIChwcm9nbiAoc2VhcmNoLWJhY2t3YXJkICIkIikKQEAgLTE5NDMsNyArMTky Nyw3IEBACiAJCQkgICAoc2F2ZS1leGN1cnNpb24KIAkJCSAgICAgKGZvcndhcmQtY2hhciAtMSkK IAkJCSAgICAgKHJlLXNlYXJjaC1iYWNrd2FyZCAiXFwoXFxgXG4/XFx8XG5cblxcKT1oZWFkMVxc PiIKLQkJCQkJCW5pbCB0KSkpKSA7IE9ubHkgb25lCisJCQkJCQkgbmlsIHQpKSkpIDsgT25seSBv bmUKIAkJICAgICAocHJvZ24KIAkJICAgICAgIChmb3J3YXJkLXdvcmQgMSkKIAkJICAgICAgIChz ZXRxIG5hbWUgKGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lvbgpAQCAtMjAwMCw4ICsxOTg0LDcgQEAK ICAJICAgICAoY3BlcmwtaW5kZW50LWxpbmUpCiAgCSAgICAgKGluc2VydCAiXG5cbn0iKSkKICAJ ICAgICh0Ci0gCSAgICAgKGluc2VydCAiIHtcblxufSIpKQotIAkgICAgKQorIAkgICAgIChpbnNl cnQgIiB7XG5cbn0iKSkpCiAJICAgKG9yIChsb29raW5nLWF0ICJbIFx0XVxcfCQiKSAoaW5zZXJ0 ICIgIikpCiAJICAgKGNwZXJsLWluZGVudC1saW5lKQogCSAgIChmb3J3YXJkLWxpbmUgLTEpCkBA IC0yMDIxLDcgKzIwMDQsNyBAQAogICAgIChpZiAoYW5kCQkJCTsgQ2hlY2sgaWYgd2UgbmVlZCB0 byBzcGxpdDoKIAkJCQkJOyBpLmUuLCBvbiBhIGJvdW5kYXJ5IGFuZCBpbnNpZGUgInsuLi59Igog CSAoc2F2ZS1leGN1cnNpb24gKGNwZXJsLXRvLWNvbW1lbnQtb3ItZW9sKQotCSAgICg+PSAocG9p bnQpIHBvcykpCQk7IE5vdCBpbiBhIGNvbW1lbnQKKwkJCSAoPj0gKHBvaW50KSBwb3MpKSA7IE5v dCBpbiBhIGNvbW1lbnQKIAkgKG9yIChzYXZlLWV4Y3Vyc2lvbgogCSAgICAgICAoc2tpcC1jaGFy cy1iYWNrd2FyZCAiIFx0IiBiZWcpCiAJICAgICAgIChmb3J3YXJkLWNoYXIgLTEpCkBAIC0yMDU4 LDcgKzIwNDEsNyBAQAogCSAgKGNwZXJsLWluZGVudC1saW5lKQogCSAgKGJlZ2lubmluZy1vZi1s aW5lKQogCSAgKG9yIChsb29raW5nLWF0ICJbIFx0XSp9Wyw7IFx0XSokIikgOyBJZiB0aGVyZSBp cyBhIHN0YXRlbWVudAotCQkJCQkgICAgOyBhZnRlciwgbW92ZSBpdCB0byBzZXBhcmF0ZSBsaW5l CisJCQkJCTsgYWZ0ZXIsIG1vdmUgaXQgdG8gc2VwYXJhdGUgbGluZQogCSAgICAgIChwcm9nbgog CQkoZW5kLW9mLWxpbmUpCiAJCShzZWFyY2gtYmFja3dhcmQgIn0iIGJlZykKQEAgLTIwNzcsNyAr MjA2MCw3IEBACiAJICAgICAoc2F2ZS1leGN1cnNpb24KIAkgICAgICAgKHNraXAtY2hhcnMtYmFj a3dhcmQgIiBcdCIpCiAJICAgICAgIChlcSAocHJlY2VkaW5nLWNoYXIpID9cKSkpKSA7IFByb2Jh Ymx5IGlmICgpIHt9IGdyb3VwCi0JCQkJCSAgIDsgd2l0aCBhbiBleHRyYSBuZXdsaW5lLgorCQkJ CQk7IHdpdGggYW4gZXh0cmEgbmV3bGluZS4KIAkoZm9yd2FyZC1saW5lIDIpCiAJKGNwZXJsLWlu ZGVudC1saW5lKSkKICAgICAgICAoKHNhdmUtZXhjdXJzaW9uCQkJOyBJbiBQT0QgaGVhZGVyCkBA IC0yMTI5LDEwICsyMTEyLDExIEBACiAoZGVmdW4gY3BlcmwtZWxlY3RyaWMtdGVybWluYXRvciAo YXJnKQogICAiSW5zZXJ0IGNoYXJhY3RlciBhbmQgY29ycmVjdCBsaW5lJ3MgaW5kZW50YXRpb24u IgogICAoaW50ZXJhY3RpdmUgIlAiKQotICAobGV0IChpbnNlcnRwb3MgKGVuZCAocG9pbnQpKQot CQkgIChhdXRvIChhbmQgY3BlcmwtYXV0by1uZXdsaW5lCi0JCQkgICAgIChvciAobm90IChlcSBs YXN0LWNvbW1hbmQtY2hhciA/OikpCi0JCQkJIGNwZXJsLWF1dG8tbmV3bGluZS1hZnRlci1jb2xv bikpKSkKKyAgKGxldCAoKGVuZCAocG9pbnQpKQorCShhdXRvIChhbmQgY3BlcmwtYXV0by1uZXds aW5lCisJCSAgIChvciAobm90IChlcSBsYXN0LWNvbW1hbmQtY2hhciA/OikpCisJCSAgICAgICBj cGVybC1hdXRvLW5ld2xpbmUtYWZ0ZXItY29sb24pKSkKKwlpbnNlcnRwb3MpCiAgICAgKGlmIChh bmQgOzsobm90IGFyZykKIAkgICAgIChlb2xwKQogCSAgICAgKG5vdCAoc2F2ZS1leGN1cnNpb24K QEAgLTIyNTEsOSArMjIzNSw5IEBACiAoZGVmdW4gY3BlcmwtaW5kZW50LWxpbmUgKCZvcHRpb25h bCBwYXJzZS1kYXRhKQogICAiSW5kZW50IGN1cnJlbnQgbGluZSBhcyBQZXJsIGNvZGUuCiBSZXR1 cm4gdGhlIGFtb3VudCB0aGUgaW5kZW50YXRpb24gY2hhbmdlZCBieS4iCi0gIChsZXQgKGluZGVu dCBpIGJlZyBzaGlmdC1hbXQKLQkoY2FzZS1mb2xkLXNlYXJjaCBuaWwpCi0JKHBvcyAoLSAocG9p bnQtbWF4KSAocG9pbnQpKSkpCisgIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkKKwkocG9z ICgtIChwb2ludC1tYXgpIChwb2ludCkpKQorCWluZGVudCBpIGJlZyBzaGlmdC1hbXQpCiAgICAg KHNldHEgaW5kZW50IChjcGVybC1jYWxjdWxhdGUtaW5kZW50IHBhcnNlLWRhdGEpCiAJICBpIGlu ZGVudCkKICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCkBAIC0yMzMxLDcgKzIzMTUsNyBAQAogICAg ICAgKG9yIHN0YXRlIChzZXRxIHN0YXRlIChwYXJzZS1wYXJ0aWFsLXNleHAgc3RhcnQgc3RhcnQt cG9pbnQgLTEgbmlsIHN0YXJ0LXN0YXRlKSkpCiAgICAgICAobGlzdCBzdGFydCBzdGF0ZSBkZXB0 aCBwcmVzdGFydCkpKSkKIAotKGRlZnVuIGNwZXJsLWJsb2NrLXAgKCkJCQk7IERvIG5vdCBDLU0t cSAhICBPbmUgc3RyaW5nIGNvbnRhaW5zICI7IiAhCisoZGVmdW4gY3BlcmwtYmxvY2stcCAoKQkJ ICAgOyBEbyBub3QgQy1NLXEgISAgT25lIHN0cmluZyBjb250YWlucyAiOyIgIQogICA7OyBQb3Np dGlvbnMgaXMgYmVmb3JlID9cey4gIENoZWNrcyB3aGV0aGVyIGl0IHN0YXJ0cyBhIGJsb2NrLgog ICA7OyBObyBzYXZlLWV4Y3Vyc2lvbiEKICAgKGNwZXJsLWJhY2t3YXJkLXRvLW5vbmNvbW1lbnQg KHBvaW50LW1pbikpCkBAIC0yMzY4LDEzNCArMjM1MiwxMzQgQEAKIAkgICAgICAobm90IChnZXQt dGV4dC1wcm9wZXJ0eSAocG9pbnQpICdpbmRlbnRhYmxlKSkpCiAJIDs7IGJlZm9yZSBzdGFydCBv ZiBQT0QgLSB3aGl0ZXNwYWNlIGZvdW5kIHNpbmNlIGRvIG5vdCBoYXZlICdwb2QhCiAJIChhbmQg KGxvb2tpbmctYXQgIlsgXHRdKlxuPSIpCi0JICAgICAgKGVycm9yICJTcGFjZXMgYmVmb3JlIHBv ZCBzZWN0aW9uISIpKQorCSAgICAgIChlcnJvciAiU3BhY2VzIGJlZm9yZSBQT0Qgc2VjdGlvbiEi KSkKIAkgKGFuZCAobm90IGNwZXJsLWluZGVudC1sZWZ0LWFsaWduZWQtY29tbWVudHMpCiAJICAg ICAgKGxvb2tpbmctYXQgIl4jIikpKQogCW5pbAotICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCi0g ICAgIChsZXQgKChpbmRlbnQtcG9pbnQgKHBvaW50KSkKLQkgICAoY2hhci1hZnRlciAoc2F2ZS1l eGN1cnNpb24KLQkJCSAgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdCIpCi0JCQkgICAoZm9sbG93 aW5nLWNoYXIpKSkKLQkgICAoaW4tcG9kIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdpbi1w b2QpKQotCSAgIChwcmUtaW5kZW50LXBvaW50IChwb2ludCkpCi0JICAgcCBwcm9wIGxvb2stcHJv cCBpcy1ibG9jayBkZWxpbSkKLSAgICAgIChjb25kCi0gICAgICAgKGluLXBvZAotCTs7IEluIHRo ZSB2ZXJiYXRpbSBwYXJ0LCBwcm9iYWJseSBjb2RlIGV4YW1wbGUuICBXaGF0IHRvIGRvPz8/Ci0J KQotICAgICAgICh0Ci0JKHNhdmUtZXhjdXJzaW9uCi0JICA7OyBOb3QgaW4gcG9kCi0JICAoY3Bl cmwtYmFja3dhcmQtdG8tbm9uY29tbWVudCBuaWwpCi0JICAoc2V0cSBwIChtYXggKHBvaW50LW1p bikgKDEtIChwb2ludCkpKQotCQlwcm9wIChnZXQtdGV4dC1wcm9wZXJ0eSBwICdzeW50YXgtdHlw ZSkKLQkJbG9vay1wcm9wIChvciAobnRoIDEgKGFzc29jIHByb3AgY3BlcmwtbG9vay1mb3ItcHJv cCkpCi0JCQkgICAgICAnc3ludGF4LXR5cGUpKQotCSAgKGlmIChtZW1xIHByb3AgJyhwb2QgaGVy ZS1kb2MgZm9ybWF0IGhlcmUtZG9jLWRlbGltKSkKKyAgICAgIChiZWdpbm5pbmctb2YtbGluZSkK KyAgICAgIChsZXQgKChpbmRlbnQtcG9pbnQgKHBvaW50KSkKKwkgICAgKGNoYXItYWZ0ZXIgKHNh dmUtZXhjdXJzaW9uCisJCQkgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdCIpCisJCQkgIChmb2xs b3dpbmctY2hhcikpKQorCSAgICAoaW4tcG9kIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdp bi1wb2QpKQorCSAgICAocHJlLWluZGVudC1wb2ludCAocG9pbnQpKQorCSAgICBwIHByb3AgbG9v ay1wcm9wIGlzLWJsb2NrIGRlbGltKQorCShjb25kCisJIChpbi1wb2QKKwkgIDs7IEluIHRoZSB2 ZXJiYXRpbSBwYXJ0LCBwcm9iYWJseSBjb2RlIGV4YW1wbGUuICBXaGF0IHRvIGRvPz8/CisJICAp CisJICh0CisJICAoc2F2ZS1leGN1cnNpb24KKwkgICAgOzsgTm90IGluIFBPRAorCSAgICAoY3Bl cmwtYmFja3dhcmQtdG8tbm9uY29tbWVudCBuaWwpCisJICAgIChzZXRxIHAgKG1heCAocG9pbnQt bWluKSAoMS0gKHBvaW50KSkpCisJCSAgcHJvcCAoZ2V0LXRleHQtcHJvcGVydHkgcCAnc3ludGF4 LXR5cGUpCisJCSAgbG9vay1wcm9wIChvciAobnRoIDEgKGFzc29jIHByb3AgY3BlcmwtbG9vay1m b3ItcHJvcCkpCisJCQkJJ3N5bnRheC10eXBlKSkKKwkgICAgKGlmIChtZW1xIHByb3AgJyhwb2Qg aGVyZS1kb2MgZm9ybWF0IGhlcmUtZG9jLWRlbGltKSkKKwkJKHByb2duCisJCSAgKGdvdG8tY2hh ciAob3IgKHByZXZpb3VzLXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UgcCBsb29rLXByb3ApCisJCQkJ IChwb2ludC1taW4pKSkKKwkJICAoYmVnaW5uaW5nLW9mLWxpbmUpCisJCSAgKHNldHEgcHJlLWlu ZGVudC1wb2ludCAocG9pbnQpKSkpKSkpCisJKGdvdG8tY2hhciBwcmUtaW5kZW50LXBvaW50KQor CShsZXQqICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpCisJICAgICAgIChzLXMgKGNwZXJsLWdldC1z dGF0ZSAoY2FyIHBhcnNlLWRhdGEpIChudGggMSBwYXJzZS1kYXRhKSkpCisJICAgICAgIChzdGFy dCAob3IgKG50aCAyIHBhcnNlLWRhdGEpCisJCQkgIChudGggMCBzLXMpKSkKKwkgICAgICAgKHN0 YXRlIChudGggMSBzLXMpKQorCSAgICAgICAoY29udGFpbmluZy1zZXhwIChjYXIgKGNkciBzdGF0 ZSkpKQorCSAgICAgICBvbGQtaW5kZW50KQorCSAgKGlmIChhbmQKKwkgICAgICAgOztjb250YWlu aW5nLXNleHAJCTs7IFdlIGFyZSBidWdneSBhdCB0b3BsZXZlbCA6LSgKKwkgICAgICAgcGFyc2Ut ZGF0YSkKIAkgICAgICAocHJvZ24KLQkJKGdvdG8tY2hhciAob3IgKHByZXZpb3VzLXNpbmdsZS1w cm9wZXJ0eS1jaGFuZ2UgcCBsb29rLXByb3ApCi0JCQkgICAgICAgKHBvaW50LW1pbikpKQotCQko YmVnaW5uaW5nLW9mLWxpbmUpCi0JCShzZXRxIHByZS1pbmRlbnQtcG9pbnQgKHBvaW50KSkpKSkp KQotICAgICAgKGdvdG8tY2hhciBwcmUtaW5kZW50LXBvaW50KQotICAgICAgKGxldCogKChjYXNl LWZvbGQtc2VhcmNoIG5pbCkKLQkgICAgIChzLXMgKGNwZXJsLWdldC1zdGF0ZSAoY2FyIHBhcnNl LWRhdGEpIChudGggMSBwYXJzZS1kYXRhKSkpCi0JICAgICAoc3RhcnQgKG9yIChudGggMiBwYXJz ZS1kYXRhKQotCQkJKG50aCAwIHMtcykpKQotCSAgICAgKHN0YXRlIChudGggMSBzLXMpKQotCSAg ICAgKGNvbnRhaW5pbmctc2V4cCAoY2FyIChjZHIgc3RhdGUpKSkKLQkgICAgIG9sZC1pbmRlbnQp Ci0JKGlmIChhbmQKLQkgICAgIDs7Y29udGFpbmluZy1zZXhwCQk7OyBXZSBhcmUgYnVnZ3kgYXQg dG9wbGV2ZWwgOi0oCi0JICAgICBwYXJzZS1kYXRhKQotCSAgICAocHJvZ24KLQkgICAgICAoc2V0 Y2FyIHBhcnNlLWRhdGEgcHJlLWluZGVudC1wb2ludCkKLQkgICAgICAoc2V0Y2FyIChjZHIgcGFy c2UtZGF0YSkgc3RhdGUpCi0JICAgICAgKG9yIChudGggMiBwYXJzZS1kYXRhKQotCQkgIChzZXRj YXIgKGNkZHIgcGFyc2UtZGF0YSkgc3RhcnQpKQotCSAgICAgIDs7IEJlZm9yZSB0aGlzIHBvaW50 OiBlbmQgb2Ygc3RhdGVtZW50Ci0JICAgICAgKHNldHEgb2xkLWluZGVudCAobnRoIDMgcGFyc2Ut ZGF0YSkpKSkKLQkoY29uZCAoKGdldC10ZXh0LXByb3BlcnR5IChwb2ludCkgJ2luZGVudGFibGUp Ci0JICAgICAgIDs7IGluZGVudCB0byBqdXN0IGFmdGVyIHRoZSBzdXJyb3VuZGluZyBvcGVuLAot CSAgICAgICA7OyBza2lwIGJsYW5rcyBpZiB3ZSBkbyBub3QgY2xvc2UgdGhlIGV4cHJlc3Npb24u Ci0JICAgICAgIChnb3RvLWNoYXIgKDErIChwcmV2aW91cy1zaW5nbGUtcHJvcGVydHktY2hhbmdl IChwb2ludCkgJ2luZGVudGFibGUpKSkKLQkgICAgICAgKG9yIChtZW1xIGNoYXItYWZ0ZXIgKGFw cGVuZCAiKV19IiBuaWwpKQotCQkgICAobG9va2luZy1hdCAiWyBcdF0qXFwoI1xcfCRcXCkiKQot CQkgICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHQiKSkKLQkgICAgICAgKGN1cnJlbnQtY29sdW1u KSkKLQkgICAgICAoKG9yIChudGggMyBzdGF0ZSkgKG50aCA0IHN0YXRlKSkKLQkgICAgICAgOzsg cmV0dXJuIG5pbCBvciB0IGlmIHNob3VsZCBub3QgY2hhbmdlIHRoaXMgbGluZQotCSAgICAgICAo bnRoIDQgc3RhdGUpKQotCSAgICAgIDs7IFhYWFggRG8gd2UgbmVlZCB0byBzcGVjaWFsLWNhc2Ug dGhpcz8KLQkgICAgICAoKG51bGwgY29udGFpbmluZy1zZXhwKQotCSAgICAgICA7OyBMaW5lIGlz IGF0IHRvcCBsZXZlbC4gIE1heSBiZSBkYXRhIG9yIGZ1bmN0aW9uIGRlZmluaXRpb24sCi0JICAg ICAgIDs7IG9yIG1heSBiZSBmdW5jdGlvbiBhcmd1bWVudCBkZWNsYXJhdGlvbi4KLQkgICAgICAg OzsgSW5kZW50IGxpa2UgdGhlIHByZXZpb3VzIHRvcCBsZXZlbCBsaW5lCi0JICAgICAgIDs7IHVu bGVzcyB0aGF0IGVuZHMgaW4gYSBjbG9zZXBhcmVuIHdpdGhvdXQgc2VtaWNvbG9uLAotCSAgICAg ICA7OyBpbiB3aGljaCBjYXNlIHRoaXMgbGluZSBpcyB0aGUgZmlyc3QgYXJndW1lbnQgZGVjbC4K LQkgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0IikKLQkgICAgICAgKCsgKHNhdmUtZXhj dXJzaW9uCi0JCSAgICAoZ290by1jaGFyIHN0YXJ0KQotCQkgICAgKC0gKGN1cnJlbnQtaW5kZW50 YXRpb24pCi0JCSAgICAgICAoaWYgKG50aCAyIHMtcykgY3BlcmwtaW5kZW50LWxldmVsIDApKSkK LQkJICAoaWYgKD0gY2hhci1hZnRlciA/eykgY3BlcmwtY29udGludWVkLWJyYWNlLW9mZnNldCAw KQotCQkgIChwcm9nbgotCQkgICAgKGNwZXJsLWJhY2t3YXJkLXRvLW5vbmNvbW1lbnQgKG9yIG9s ZC1pbmRlbnQgKHBvaW50LW1pbikpKQotCQkgICAgOzsgTG9vayBhdCBwcmV2aW91cyBsaW5lIHRo YXQncyBhdCBjb2x1bW4gMAotCQkgICAgOzsgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgYXJlIGlu IHRvcC1sZXZlbCBkZWNscwotCQkgICAgOzsgb3IgZnVuY3Rpb24ncyBhcmcgZGVjbHMuICBTZXQg YmFzaWMtaW5kZW50IGFjY29yZGluZ2x5LgotCQkgICAgOzsgTm93IGFkZCBhIGxpdHRsZSBpZiB0 aGlzIGlzIGEgY29udGludWF0aW9uIGxpbmUuCi0JCSAgICAoaWYgKG9yIChib2JwKQotCQkJICAg IChlcSAocG9pbnQpIG9sZC1pbmRlbnQpIDsgb2xkLWluZGVudCB3YXMgYXQgY29tbWVudAotCQkJ ICAgIChlcSAocHJlY2VkaW5nLWNoYXIpID9cOykKLQkJCSAgICA7OyAgSGFkID9cKSB0b28KLQkJ CSAgICAoYW5kIChlcSAocHJlY2VkaW5nLWNoYXIpID9cfSkKLQkJCQkgKGNwZXJsLWFmdGVyLWJs b2NrLWFuZC1zdGF0ZW1lbnQtYmVnCi0JCQkJICAocG9pbnQtbWluKSkpCTsgV2FzIHN0YXJ0IC0g dG9vIGNsb3NlCi0JCQkgICAgKG1lbXEgY2hhci1hZnRlciAoYXBwZW5kICIpXX0iIG5pbCkpCi0J CQkgICAgKGFuZCAoZXEgKHByZWNlZGluZy1jaGFyKSA/XDopIDsgbGFiZWwKLQkJCQkgKHByb2du Ci0JCQkJICAgKGZvcndhcmQtc2V4cCAtMSkKLQkJCQkgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAi IFx0IikKLQkJCQkgICAobG9va2luZy1hdCAiWyBcdF0qW2EtekEtWl9dW2EtekEtWl8wLTldKlsg XHRdKjoiKSkpKQotCQkJKHByb2duCi0JCQkgIChpZiAoYW5kIHBhcnNlLWRhdGEKLQkJCQkgICAo bm90IChlcSBjaGFyLWFmdGVyID9cQy1qKSkpCi0JCQkgICAgICAoc2V0Y2RyIChjZGRyIHBhcnNl LWRhdGEpCi0JCQkJICAgICAgKGxpc3QgcHJlLWluZGVudC1wb2ludCkpKQotCQkJICAwKQotCQkg ICAgICBjcGVybC1jb250aW51ZWQtc3RhdGVtZW50LW9mZnNldCkpKSkKLQkgICAgICAoKG5vdAot CQkob3IgKHNldHEgaXMtYmxvY2sKLQkJCSAgKGFuZCAoc2V0cSBkZWxpbSAoPSAoY2hhci1hZnRl ciBjb250YWluaW5nLXNleHApID97KSkKLQkJCSAgICAgICAoc2F2ZS1leGN1cnNpb24gOyBJcyBp dCBhIGhhc2g/Ci0JCQkJIChnb3RvLWNoYXIgY29udGFpbmluZy1zZXhwKQotCQkJCSAoY3Blcmwt YmxvY2stcCkpKSkKLQkJICAgIGNwZXJsLWluZGVudC1wYXJlbnMtYXMtYmxvY2spKQotCSAgICAg ICA7OyBncm91cCBpcyBhbiBleHByZXNzaW9uLCBub3QgYSBibG9jazoKLQkgICAgICAgOzsgaW5k ZW50IHRvIGp1c3QgYWZ0ZXIgdGhlIHN1cnJvdW5kaW5nIG9wZW4gcGFyZW5zLAotCSAgICAgICA7 OyBza2lwIGJsYW5rcyBpZiB3ZSBkbyBub3QgY2xvc2UgdGhlIGV4cHJlc3Npb24uCi0JICAgICAg IChnb3RvLWNoYXIgKDErIGNvbnRhaW5pbmctc2V4cCkpCi0JICAgICAgIChvciAobWVtcSBjaGFy LWFmdGVyIChhcHBlbmQgIildfSIgbmlsKSkKLQkJICAgKGxvb2tpbmctYXQgIlsgXHRdKlxcKCNc XHwkXFwpIikKLQkJICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0IikpCi0JICAgICAgIChjdXJy ZW50LWNvbHVtbikpCi0JICAgICAgKChwcm9nbgotCQkgOzsgQ29udGFpbmluZy1leHByIHN0YXJ0 cyB3aXRoIFx7LiAgQ2hlY2sgd2hldGhlciBpdCBpcyBhIGhhc2guCi0JCSAoZ290by1jaGFyIGNv bnRhaW5pbmctc2V4cCkKLQkJIChub3QgKGNwZXJsLWJsb2NrLXApKSkKLQkgICAgICAgKGdvdG8t Y2hhciAoMSsgY29udGFpbmluZy1zZXhwKSkKLQkgICAgICAgKG9yIChtZW1xIGNoYXItYWZ0ZXIK LQkJCSAoYXBwZW5kIChpZiBkZWxpbSAifSIgIildfSIpIG5pbCkpCi0JCSAgIChsb29raW5nLWF0 ICJbIFx0XSpcXCgjXFx8JFxcKSIpCi0JCSAgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdCIpKQot CSAgICAgICAoKyAoY3VycmVudC1jb2x1bW4pCi0JCSAgKGlmIChhbmQgZGVsaW0KLQkJCSAgIChl cSBjaGFyLWFmdGVyID9cfSkpCi0JCSAgICAgIDs7IENvcnJlY3QgaW5kZW50YXRpb24gb2YgdHJh aWxpbmcgP1x9Ci0JCSAgICAgICgrIGNwZXJsLWluZGVudC1sZXZlbCBjcGVybC1jbG9zZS1wYXJl bi1vZmZzZXQpCi0JCSAgICAwKSkpCisJCShzZXRjYXIgcGFyc2UtZGF0YSBwcmUtaW5kZW50LXBv aW50KQorCQkoc2V0Y2FyIChjZHIgcGFyc2UtZGF0YSkgc3RhdGUpCisJCShvciAobnRoIDIgcGFy c2UtZGF0YSkKKwkJICAgIChzZXRjYXIgKGNkZHIgcGFyc2UtZGF0YSkgc3RhcnQpKQorCQk7OyBC ZWZvcmUgdGhpcyBwb2ludDogZW5kIG9mIHN0YXRlbWVudAorCQkoc2V0cSBvbGQtaW5kZW50IChu dGggMyBwYXJzZS1kYXRhKSkpKQorCSAgKGNvbmQgKChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQp ICdpbmRlbnRhYmxlKQorCQkgOzsgaW5kZW50IHRvIGp1c3QgYWZ0ZXIgdGhlIHN1cnJvdW5kaW5n IG9wZW4sCisJCSA7OyBza2lwIGJsYW5rcyBpZiB3ZSBkbyBub3QgY2xvc2UgdGhlIGV4cHJlc3Np b24uCisJCSAoZ290by1jaGFyICgxKyAocHJldmlvdXMtc2luZ2xlLXByb3BlcnR5LWNoYW5nZSAo cG9pbnQpICdpbmRlbnRhYmxlKSkpCisJCSAob3IgKG1lbXEgY2hhci1hZnRlciAoYXBwZW5kICIp XX0iIG5pbCkpCisJCSAgICAgKGxvb2tpbmctYXQgIlsgXHRdKlxcKCNcXHwkXFwpIikKKwkJICAg ICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHQiKSkKKwkJIChjdXJyZW50LWNvbHVtbikpCisJCSgo b3IgKG50aCAzIHN0YXRlKSAobnRoIDQgc3RhdGUpKQorCQkgOzsgcmV0dXJuIG5pbCBvciB0IGlm IHNob3VsZCBub3QgY2hhbmdlIHRoaXMgbGluZQorCQkgKG50aCA0IHN0YXRlKSkKKwkJOzsgWFhY WCBEbyB3ZSBuZWVkIHRvIHNwZWNpYWwtY2FzZSB0aGlzPworCQkoKG51bGwgY29udGFpbmluZy1z ZXhwKQorCQkgOzsgTGluZSBpcyBhdCB0b3AgbGV2ZWwuICBNYXkgYmUgZGF0YSBvciBmdW5jdGlv biBkZWZpbml0aW9uLAorCQkgOzsgb3IgbWF5IGJlIGZ1bmN0aW9uIGFyZ3VtZW50IGRlY2xhcmF0 aW9uLgorCQkgOzsgSW5kZW50IGxpa2UgdGhlIHByZXZpb3VzIHRvcCBsZXZlbCBsaW5lCisJCSA7 OyB1bmxlc3MgdGhhdCBlbmRzIGluIGEgY2xvc2VwYXJlbiB3aXRob3V0IHNlbWljb2xvbiwKKwkJ IDs7IGluIHdoaWNoIGNhc2UgdGhpcyBsaW5lIGlzIHRoZSBmaXJzdCBhcmd1bWVudCBkZWNsLgor CQkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0IikKKwkJICgrIChzYXZlLWV4Y3Vyc2lvbgorCQkg ICAgICAoZ290by1jaGFyIHN0YXJ0KQorCQkgICAgICAoLSAoY3VycmVudC1pbmRlbnRhdGlvbikK KwkJCSAoaWYgKG50aCAyIHMtcykgY3BlcmwtaW5kZW50LWxldmVsIDApKSkKKwkJICAgIChpZiAo PSBjaGFyLWFmdGVyID97KSBjcGVybC1jb250aW51ZWQtYnJhY2Utb2Zmc2V0IDApCisJCSAgICAo cHJvZ24KKwkJICAgICAgKGNwZXJsLWJhY2t3YXJkLXRvLW5vbmNvbW1lbnQgKG9yIG9sZC1pbmRl bnQgKHBvaW50LW1pbikpKQorCQkgICAgICA7OyBMb29rIGF0IHByZXZpb3VzIGxpbmUgdGhhdCdz IGF0IGNvbHVtbiAwCisJCSAgICAgIDs7IHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGFyZSBpbiB0 b3AtbGV2ZWwgZGVjbHMKKwkJICAgICAgOzsgb3IgZnVuY3Rpb24ncyBhcmcgZGVjbHMuICBTZXQg YmFzaWMtaW5kZW50IGFjY29yZGluZ2x5LgorCQkgICAgICA7OyBOb3cgYWRkIGEgbGl0dGxlIGlm IHRoaXMgaXMgYSBjb250aW51YXRpb24gbGluZS4KKwkJICAgICAgKGlmIChvciAoYm9icCkKKwkJ CSAgICAgIChlcSAocG9pbnQpIG9sZC1pbmRlbnQpIDsgb2xkLWluZGVudCB3YXMgYXQgY29tbWVu dAorCQkJICAgICAgKGVxIChwcmVjZWRpbmctY2hhcikgP1w7KQorCQkJICAgICAgOzsgIEhhZCA/ XCkgdG9vCisJCQkgICAgICAoYW5kIChlcSAocHJlY2VkaW5nLWNoYXIpID9cfSkKKwkJCQkgICAo Y3BlcmwtYWZ0ZXItYmxvY2stYW5kLXN0YXRlbWVudC1iZWcKKwkJCQkgICAgKHBvaW50LW1pbikp KSA7IFdhcyBzdGFydCAtIHRvbyBjbG9zZQorCQkJICAgICAgKG1lbXEgY2hhci1hZnRlciAoYXBw ZW5kICIpXX0iIG5pbCkpCisJCQkgICAgICAoYW5kIChlcSAocHJlY2VkaW5nLWNoYXIpID9cOikg OyBsYWJlbAorCQkJCSAgIChwcm9nbgorCQkJCSAgICAgKGZvcndhcmQtc2V4cCAtMSkKKwkJCQkg ICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorCQkJCSAgICAgKGxvb2tpbmctYXQgIlsg XHRdKlthLXpBLVpfXVthLXpBLVpfMC05XSpbIFx0XSo6IikpKSkKKwkJCSAgKHByb2duCisJCQkg ICAgKGlmIChhbmQgcGFyc2UtZGF0YQorCQkJCSAgICAgKG5vdCAoZXEgY2hhci1hZnRlciA/XEMt aikpKQorCQkJCShzZXRjZHIgKGNkZHIgcGFyc2UtZGF0YSkKKwkJCQkJKGxpc3QgcHJlLWluZGVu dC1wb2ludCkpKQorCQkJICAgIDApCisJCQljcGVybC1jb250aW51ZWQtc3RhdGVtZW50LW9mZnNl dCkpKSkKKwkJKChub3QKKwkJICAob3IgKHNldHEgaXMtYmxvY2sKKwkJCSAgICAoYW5kIChzZXRx IGRlbGltICg9IChjaGFyLWFmdGVyIGNvbnRhaW5pbmctc2V4cCkgP3spKQorCQkJCSAoc2F2ZS1l eGN1cnNpb24gOyBJcyBpdCBhIGhhc2g/CisJCQkJICAgKGdvdG8tY2hhciBjb250YWluaW5nLXNl eHApCisJCQkJICAgKGNwZXJsLWJsb2NrLXApKSkpCisJCSAgICAgIGNwZXJsLWluZGVudC1wYXJl bnMtYXMtYmxvY2spKQorCQkgOzsgZ3JvdXAgaXMgYW4gZXhwcmVzc2lvbiwgbm90IGEgYmxvY2s6 CisJCSA7OyBpbmRlbnQgdG8ganVzdCBhZnRlciB0aGUgc3Vycm91bmRpbmcgb3BlbiBwYXJlbnMs CisJCSA7OyBza2lwIGJsYW5rcyBpZiB3ZSBkbyBub3QgY2xvc2UgdGhlIGV4cHJlc3Npb24uCisJ CSAoZ290by1jaGFyICgxKyBjb250YWluaW5nLXNleHApKQorCQkgKG9yIChtZW1xIGNoYXItYWZ0 ZXIgKGFwcGVuZCAiKV19IiBuaWwpKQorCQkgICAgIChsb29raW5nLWF0ICJbIFx0XSpcXCgjXFx8 JFxcKSIpCisJCSAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0IikpCisJCSAoY3VycmVudC1j b2x1bW4pKQorCQkoKHByb2duCisJCSAgIDs7IENvbnRhaW5pbmctZXhwciBzdGFydHMgd2l0aCBc ey4gIENoZWNrIHdoZXRoZXIgaXQgaXMgYSBoYXNoLgorCQkgICAoZ290by1jaGFyIGNvbnRhaW5p bmctc2V4cCkKKwkJICAgKG5vdCAoY3BlcmwtYmxvY2stcCkpKQorCQkgKGdvdG8tY2hhciAoMSsg Y29udGFpbmluZy1zZXhwKSkKKwkJIChvciAobWVtcSBjaGFyLWFmdGVyCisJCQkgICAoYXBwZW5k IChpZiBkZWxpbSAifSIgIildfSIpIG5pbCkpCisJCSAgICAgKGxvb2tpbmctYXQgIlsgXHRdKlxc KCNcXHwkXFwpIikKKwkJICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHQiKSkKKwkJICgrIChj dXJyZW50LWNvbHVtbikKKwkJICAgIChpZiAoYW5kIGRlbGltCisJCQkgICAgIChlcSBjaGFyLWFm dGVyID9cfSkpCisJCQk7OyBDb3JyZWN0IGluZGVudGF0aW9uIG9mIHRyYWlsaW5nID9cfQorCQkJ KCsgY3BlcmwtaW5kZW50LWxldmVsIGNwZXJsLWNsb3NlLXBhcmVuLW9mZnNldCkKKwkJICAgICAg MCkpKQogOzs7CSAgICAgICgoYW5kICgvPSAoY2hhci1hZnRlciBjb250YWluaW5nLXNleHApID97 KQogOzs7CQkgICAgKG5vdCBjcGVybC1pbmRlbnQtcGFyZW5zLWFzLWJsb2NrKSkKIDs7OwkgICAg ICAgOzsgbGluZSBpcyBleHByZXNzaW9uLCBub3Qgc3RhdGVtZW50OgpAQCAtMjUxOSwxNTEgKzI1 MDMsMTUxIEBACiA7OzsJCSAgKGlmIChlcSBjaGFyLWFmdGVyID9cfSkgKCsgY3BlcmwtaW5kZW50 LWxldmVsCiA7OzsJCQkJCSAgICAgY3BlcmwtY2xvc2UtcGFyZW4tb2Zmc2V0KQogOzs7CQkgICAg MCkpKQotCSAgICAgICh0Ci0JICAgICAgIDs7IFN0YXRlbWVudCBsZXZlbC4gIElzIGl0IGEgY29u dGludWF0aW9uIG9yIGEgbmV3IHN0YXRlbWVudD8KLQkgICAgICAgOzsgRmluZCBwcmV2aW91cyBu b24tY29tbWVudCBjaGFyYWN0ZXIuCi0JICAgICAgIChnb3RvLWNoYXIgcHJlLWluZGVudC1wb2lu dCkKLQkgICAgICAgKGNwZXJsLWJhY2t3YXJkLXRvLW5vbmNvbW1lbnQgY29udGFpbmluZy1zZXhw KQotCSAgICAgICA7OyBCYWNrIHVwIG92ZXIgbGFiZWwgbGluZXMsIHNpbmNlIHRoZXkgZG9uJ3QK LQkgICAgICAgOzsgYWZmZWN0IHdoZXRoZXIgb3VyIGxpbmUgaXMgYSBjb250aW51YXRpb24uCi0J ICAgICAgIDs7IChIYWQgXCwgdG9vKQotCSAgICAgICAod2hpbGUgOzsob3IgKGVxIChwcmVjZWRp bmctY2hhcikgP1wsKQotCQkJICAoYW5kIChlcSAocHJlY2VkaW5nLWNoYXIpID86KQotCQkJICAg ICAgIChvcjs7KGVxIChjaGFyLWFmdGVyICgtIChwb2ludCkgMikpID9cJykgOyA/Pz8/Ci0JCQkJ KG1lbXEgKGNoYXItc3ludGF4IChjaGFyLWFmdGVyICgtIChwb2ludCkgMikpKQotCQkJCSAgICAg ICcoP3cgP18pKSkpCi0JCQkgIDs7KQotCQkgKGlmIChlcSAocHJlY2VkaW5nLWNoYXIpID9cLCkK LQkJICAgICA7OyBXaWxsIGdvIHRvIGJlZ2lubmluZyBvZiBsaW5lLCBlc3NlbnRpYWxseS4KLQkJ ICAgICA7OyBXaWxsIGlnbm9yZSBlbWJlZGRlZCBzZXhwciBYWFhYLgotCQkgICAgIChjcGVybC1i YWNrd2FyZC10by1zdGFydC1vZi1jb250aW51ZWQtZXhwIGNvbnRhaW5pbmctc2V4cCkpCi0JCSAo YmVnaW5uaW5nLW9mLWxpbmUpCi0JCSAoY3BlcmwtYmFja3dhcmQtdG8tbm9uY29tbWVudCBjb250 YWluaW5nLXNleHApKQotCSAgICAgICA7OyBOb3cgd2UgZ2V0IHRoZSBhbnN3ZXIuCi0JICAgICAg IChpZiAobm90IChvciAoZXEgKDEtIChwb2ludCkpIGNvbnRhaW5pbmctc2V4cCkKLQkJCSAgICAo bWVtcSAocHJlY2VkaW5nLWNoYXIpCi0JCQkJICAoYXBwZW5kIChpZiBpcy1ibG9jayAiIDt7IiAi ICw7eyIpICcobmlsKSkpCi0JCQkgICAgKGFuZCAoZXEgKHByZWNlZGluZy1jaGFyKSA/XH0pCi0J CQkJIChjcGVybC1hZnRlci1ibG9jay1hbmQtc3RhdGVtZW50LWJlZwotCQkJCSAgY29udGFpbmlu Zy1zZXhwKSkpKQotCQkgICA7OyBUaGlzIGxpbmUgaXMgY29udGludWF0aW9uIG9mIHByZWNlZGlu ZyBsaW5lJ3Mgc3RhdGVtZW50OwotCQkgICA7OyBpbmRlbnQgIGBjcGVybC1jb250aW51ZWQtc3Rh dGVtZW50LW9mZnNldCcgIG1vcmUgdGhhbiB0aGUKLQkJICAgOzsgcHJldmlvdXMgbGluZSBvZiB0 aGUgc3RhdGVtZW50LgotCQkgICA7OwotCQkgICA7OyBUaGVyZSBtaWdodCBiZSBhIGxhYmVsIG9u IHRoaXMgbGluZSwganVzdAotCQkgICA7OyBjb25zaWRlciBpdCBiYWQgc3R5bGUgYW5kIGlnbm9y ZSBpdC4KLQkJICAgKHByb2duCi0JCSAgICAgKGNwZXJsLWJhY2t3YXJkLXRvLXN0YXJ0LW9mLWNv bnRpbnVlZC1leHAgY29udGFpbmluZy1zZXhwKQotCQkgICAgICgrIChpZiAobWVtcSBjaGFyLWFm dGVyIChhcHBlbmQgIn1dKSIgbmlsKSkKLQkJCSAgICAwCQk7IENsb3NpbmcgcGFyZW50aAotCQkJ ICBjcGVybC1jb250aW51ZWQtc3RhdGVtZW50LW9mZnNldCkKLQkJCShpZiAob3IgaXMtYmxvY2sK LQkJCQkobm90IGRlbGltKQotCQkJCShub3QgKGVxIGNoYXItYWZ0ZXIgP1x9KSkpCi0JCQkgICAg MAotCQkJICA7OyBOb3cgaXQgaXMgYSBoYXNoIHJlZmVyZW5jZQotCQkJICAoKyBjcGVybC1pbmRl bnQtbGV2ZWwgY3BlcmwtY2xvc2UtcGFyZW4tb2Zmc2V0KSkKLQkJCShpZiAobG9va2luZy1hdCAi XFx3K1sgXHRdKjoiKQotCQkJICAgIChpZiAoPiAoY3VycmVudC1pbmRlbnRhdGlvbikgY3Blcmwt bWluLWxhYmVsLWluZGVudCkKLQkJCQkoLSAoY3VycmVudC1pbmRlbnRhdGlvbikgY3BlcmwtbGFi ZWwtb2Zmc2V0KQotCQkJICAgICAgOzsgRG8gbm90IG1vdmUgYHBhcnNlLWRhdGEnLCB0aGlzIHNo b3VsZAotCQkJICAgICAgOzsgYmUgcXVpY2sgYW55d2F5ICh0aGlzIGNvbW1lbnQgY29tZXMKLQkJ CSAgICAgIDs7IGZyb20gZGlmZmVyZW50IGxvY2F0aW9uKToKLQkJCSAgICAgIChjcGVybC1jYWxj dWxhdGUtaW5kZW50KSkKLQkJCSAgKGN1cnJlbnQtY29sdW1uKSkKLQkJCShpZiAoZXEgY2hhci1h ZnRlciA/XHspCi0JCQkgICAgY3BlcmwtY29udGludWVkLWJyYWNlLW9mZnNldCAwKSkpCi0JCSA7 OyBUaGlzIGxpbmUgc3RhcnRzIGEgbmV3IHN0YXRlbWVudC4KLQkJIDs7IFBvc2l0aW9uIGZvbGxv d2luZyBsYXN0IHVuY2xvc2VkIG9wZW4uCi0JCSAoZ290by1jaGFyIGNvbnRhaW5pbmctc2V4cCkK LQkJIDs7IElzIGxpbmUgZmlyc3Qgc3RhdGVtZW50IGFmdGVyIGFuIG9wZW4tYnJhY2U/Ci0JCSAo b3IKLQkJICA7OyBJZiBubywgZmluZCB0aGF0IGZpcnN0IHN0YXRlbWVudCBhbmQgaW5kZW50IGxp a2UKLQkJICA7OyBpdC4gIElmIHRoZSBmaXJzdCBzdGF0ZW1lbnQgYmVnaW5zIHdpdGggbGFiZWws IGRvCi0JCSAgOzsgbm90IGJlbGlldmUgd2hlbiB0aGUgaW5kZW50YXRpb24gb2YgdGhlIGxhYmVs IGlzIHRvbwotCQkgIDs7IHNtYWxsLgotCQkgIChzYXZlLWV4Y3Vyc2lvbgotCQkgICAgKGZvcndh cmQtY2hhciAxKQotCQkgICAgKHNldHEgb2xkLWluZGVudCAoY3VycmVudC1pbmRlbnRhdGlvbikp Ci0JCSAgICAobGV0ICgoY29sb24tbGluZS1lbmQgMCkpCi0JCSAgICAgICh3aGlsZSAocHJvZ24g KHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQotCQkJCSAgICAobG9va2luZy1hdCAiI1xcfFth LXpBLVowLTlfJF0qOlteOl0iKSkKLQkJCTs7IFNraXAgb3ZlciBjb21tZW50cyBhbmQgbGFiZWxz IGZvbGxvd2luZyBvcGVuYnJhY2UuCi0JCQkoY29uZCAoKD0gKGZvbGxvd2luZy1jaGFyKSA/XCMp Ci0JCQkgICAgICAgKGZvcndhcmQtbGluZSAxKSkKLQkJCSAgICAgIDs7IGxhYmVsOgotCQkJICAg ICAgKHQKLQkJCSAgICAgICAoc2F2ZS1leGN1cnNpb24gKGVuZC1vZi1saW5lKQotCQkJCQkgICAg ICAgKHNldHEgY29sb24tbGluZS1lbmQgKHBvaW50KSkpCi0JCQkgICAgICAgKHNlYXJjaC1mb3J3 YXJkICI6IikpKSkKLQkJICAgICAgOzsgVGhlIGZpcnN0IGZvbGxvd2luZyBjb2RlIGNvdW50cwot CQkgICAgICA7OyBpZiBpdCBpcyBiZWZvcmUgdGhlIGxpbmUgd2Ugd2FudCB0byBpbmRlbnQuCi0J CSAgICAgIChhbmQgKDwgKHBvaW50KSBpbmRlbnQtcG9pbnQpCi0JCQkgICAoaWYgKD4gY29sb24t bGluZS1lbmQgKHBvaW50KSkgOyBBZnRlciBsYWJlbAotCQkJICAgICAgIChpZiAoPiAoY3VycmVu dC1pbmRlbnRhdGlvbikKLQkJCQkgICAgICBjcGVybC1taW4tbGFiZWwtaW5kZW50KQotCQkJCSAg ICgtIChjdXJyZW50LWluZGVudGF0aW9uKSBjcGVybC1sYWJlbC1vZmZzZXQpCi0JCQkJIDs7IERv IG5vdCBiZWxpZXZlOiBgbWF4JyBpcyBpbnZvbHZlZAotCQkJCSAoKyBvbGQtaW5kZW50IGNwZXJs LWluZGVudC1sZXZlbCkpCi0JCQkgICAgIChjdXJyZW50LWNvbHVtbikpKSkpCi0JCSAgOzsgSWYg bm8gcHJldmlvdXMgc3RhdGVtZW50LAotCQkgIDs7IGluZGVudCBpdCByZWxhdGl2ZSB0byBsaW5l IGJyYWNlIGlzIG9uLgotCQkgIDs7IEZvciBvcGVuIGJyYWNlIGluIGNvbHVtbiB6ZXJvLCBkb24n dCBsZXQgc3RhdGVtZW50Ci0JCSAgOzsgc3RhcnQgdGhlcmUgdG9vLiAgSWYgY3BlcmwtaW5kZW50 LWxldmVsIGlzIHplcm8sCi0JCSAgOzsgdXNlIGNwZXJsLWJyYWNlLW9mZnNldCArIGNwZXJsLWNv bnRpbnVlZC1zdGF0ZW1lbnQtb2Zmc2V0IGluc3RlYWQuCi0JCSAgOzsgRm9yIG9wZW4tYnJhY2Vz IG5vdCB0aGUgZmlyc3QgdGhpbmcgaW4gYSBsaW5lLAotCQkgIDs7IGFkZCBpbiBjcGVybC1icmFj ZS1pbWFnaW5hcnktb2Zmc2V0LgotCi0JCSAgOzsgSWYgZmlyc3QgdGhpbmcgb24gYSBsaW5lOiAg Pz8/Pz8KLQkJICAoKyAoaWYgKGFuZCAoYm9scCkgKHplcm9wIGNwZXJsLWluZGVudC1sZXZlbCkp Ci0JCQkgKCsgY3BlcmwtYnJhY2Utb2Zmc2V0IGNwZXJsLWNvbnRpbnVlZC1zdGF0ZW1lbnQtb2Zm c2V0KQotCQkgICAgICAgY3BlcmwtaW5kZW50LWxldmVsKQotCQkgICAgIChpZiAob3IgaXMtYmxv Y2sKLQkJCSAgICAgKG5vdCBkZWxpbSkKLQkJCSAgICAgKG5vdCAoZXEgY2hhci1hZnRlciA/XH0p KSkKLQkJCSAwCi0JCSAgICAgICA7OyBOb3cgaXQgaXMgYSBoYXNoIHJlZmVyZW5jZQotCQkgICAg ICAgKCsgY3BlcmwtaW5kZW50LWxldmVsIGNwZXJsLWNsb3NlLXBhcmVuLW9mZnNldCkpCi0JCSAg ICAgOzsgTW92ZSBiYWNrIG92ZXIgd2hpdGVzcGFjZSBiZWZvcmUgdGhlIG9wZW5icmFjZS4KLQkJ ICAgICA7OyBJZiBvcGVuYnJhY2UgaXMgbm90IGZpcnN0IG5vbndoaXRlIHRoaW5nIG9uIHRoZSBs aW5lLAotCQkgICAgIDs7IGFkZCB0aGUgY3BlcmwtYnJhY2UtaW1hZ2luYXJ5LW9mZnNldC4KLQkJ ICAgICAocHJvZ24gKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIpCi0JCQkgICAgKGlmIChib2xw KSAwIGNwZXJsLWJyYWNlLWltYWdpbmFyeS1vZmZzZXQpKQotCQkgICAgIDs7IElmIHRoZSBvcGVu YnJhY2UgaXMgcHJlY2VkZWQgYnkgYSBwYXJlbnRoZXNpemVkIGV4cCwKLQkJICAgICA7OyBtb3Zl IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhhdDsKLQkJICAgICA7OyBwb3NzaWJseSBhIGRpZmZlcmVu dCBsaW5lCisJCSh0CisJCSA7OyBTdGF0ZW1lbnQgbGV2ZWwuICBJcyBpdCBhIGNvbnRpbnVhdGlv biBvciBhIG5ldyBzdGF0ZW1lbnQ/CisJCSA7OyBGaW5kIHByZXZpb3VzIG5vbi1jb21tZW50IGNo YXJhY3Rlci4KKwkJIChnb3RvLWNoYXIgcHJlLWluZGVudC1wb2ludCkKKwkJIChjcGVybC1iYWNr d2FyZC10by1ub25jb21tZW50IGNvbnRhaW5pbmctc2V4cCkKKwkJIDs7IEJhY2sgdXAgb3ZlciBs YWJlbCBsaW5lcywgc2luY2UgdGhleSBkb24ndAorCQkgOzsgYWZmZWN0IHdoZXRoZXIgb3VyIGxp bmUgaXMgYSBjb250aW51YXRpb24uCisJCSA7OyAoSGFkIFwsIHRvbykKKwkJICh3aGlsZQk7Oyhv ciAoZXEgKHByZWNlZGluZy1jaGFyKSA/XCwpCisJCSAgICAgKGFuZCAoZXEgKHByZWNlZGluZy1j aGFyKSA/OikKKwkJCSAgKG9yIDs7KGVxIChjaGFyLWFmdGVyICgtIChwb2ludCkgMikpID9cJykg OyA/Pz8/CisJCQkgICAobWVtcSAoY2hhci1zeW50YXggKGNoYXItYWZ0ZXIgKC0gKHBvaW50KSAy KSkpCisJCQkJICcoP3cgP18pKSkpCisJCSAgIDs7KQorCQkgICAoaWYgKGVxIChwcmVjZWRpbmct Y2hhcikgP1wsKQorCQkgICAgICAgOzsgV2lsbCBnbyB0byBiZWdpbm5pbmcgb2YgbGluZSwgZXNz ZW50aWFsbHkuCisJCSAgICAgICA7OyBXaWxsIGlnbm9yZSBlbWJlZGRlZCBzZXhwciBYWFhYLgor CQkgICAgICAgKGNwZXJsLWJhY2t3YXJkLXRvLXN0YXJ0LW9mLWNvbnRpbnVlZC1leHAgY29udGFp bmluZy1zZXhwKSkKKwkJICAgKGJlZ2lubmluZy1vZi1saW5lKQorCQkgICAoY3BlcmwtYmFja3dh cmQtdG8tbm9uY29tbWVudCBjb250YWluaW5nLXNleHApKQorCQkgOzsgTm93IHdlIGdldCB0aGUg YW5zd2VyLgorCQkgKGlmIChub3QgKG9yIChlcSAoMS0gKHBvaW50KSkgY29udGFpbmluZy1zZXhw KQorCQkJICAgICAgKG1lbXEgKHByZWNlZGluZy1jaGFyKQorCQkJCSAgICAoYXBwZW5kIChpZiBp cy1ibG9jayAiIDt7IiAiICw7eyIpICcobmlsKSkpCisJCQkgICAgICAoYW5kIChlcSAocHJlY2Vk aW5nLWNoYXIpID9cfSkKKwkJCQkgICAoY3BlcmwtYWZ0ZXItYmxvY2stYW5kLXN0YXRlbWVudC1i ZWcKKwkJCQkgICAgY29udGFpbmluZy1zZXhwKSkpKQorCQkgICAgIDs7IFRoaXMgbGluZSBpcyBj b250aW51YXRpb24gb2YgcHJlY2VkaW5nIGxpbmUncyBzdGF0ZW1lbnQ7CisJCSAgICAgOzsgaW5k ZW50ICBgY3BlcmwtY29udGludWVkLXN0YXRlbWVudC1vZmZzZXQnICBtb3JlIHRoYW4gdGhlCisJ CSAgICAgOzsgcHJldmlvdXMgbGluZSBvZiB0aGUgc3RhdGVtZW50LgorCQkgICAgIDs7CisJCSAg ICAgOzsgVGhlcmUgbWlnaHQgYmUgYSBsYWJlbCBvbiB0aGlzIGxpbmUsIGp1c3QKKwkJICAgICA7 OyBjb25zaWRlciBpdCBiYWQgc3R5bGUgYW5kIGlnbm9yZSBpdC4KIAkJICAgICAocHJvZ24KLQkJ ICAgICAgIChpZiAoZXEgKHByZWNlZGluZy1jaGFyKSA/XCkpCi0JCQkgICAoZm9yd2FyZC1zZXhw IC0xKSkKLQkJICAgICAgIDs7IEluIHRoZSBjYXNlIGl0IHN0YXJ0cyBhIHN1YnJvdXRpbmUsIGlu ZGVudCB3aXRoCi0JCSAgICAgICA7OyByZXNwZWN0IHRvIGBzdWInLCBub3Qgd2l0aCByZXNwZWN0 IHRvIHRoZQotCQkgICAgICAgOzsgZmlyc3QgdGhpbmcgb24gdGhlIGxpbmUsIHNheSBpbiB0aGUg Y2FzZSBvZgotCQkgICAgICAgOzsgYW5vbnltb3VzIHN1YiBpbiBhIGhhc2guCi0JCSAgICAgICA7 OwotCQkgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIpCi0JCSAgICAgICAoaWYgKGFu ZCAoZXEgKHByZWNlZGluZy1jaGFyKSA/YikKLQkJCQkocHJvZ24KLQkJCQkgIChmb3J3YXJkLXNl eHAgLTEpCi0JCQkJICAobG9va2luZy1hdCAic3ViXFw+IikpCi0JCQkJKHNldHEgb2xkLWluZGVu dAotCQkJCSAgICAgIChudGggMQotCQkJCQkgICAocGFyc2UtcGFydGlhbC1zZXhwCi0JCQkJCSAg ICAoc2F2ZS1leGN1cnNpb24gKGJlZ2lubmluZy1vZi1saW5lKSAocG9pbnQpKQotCQkJCQkgICAg KHBvaW50KSkpKSkKLQkJCSAgIChwcm9nbiAoZ290by1jaGFyICgxKyBvbGQtaW5kZW50KSkKLQkJ CQkgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdCIpCi0JCQkJICAoY3VycmVudC1jb2x1bW4pKQot CQkJIDs7IEdldCBpbml0aWFsIGluZGVudGF0aW9uIG9mIHRoZSBsaW5lIHdlIGFyZSBvbi4KLQkJ CSA7OyBJZiBsaW5lIHN0YXJ0cyB3aXRoIGxhYmVsLCBjYWxjdWxhdGUgbGFiZWwgaW5kZW50YXRp b24KLQkJCSAoaWYgKHNhdmUtZXhjdXJzaW9uCi0JCQkgICAgICAgKGJlZ2lubmluZy1vZi1saW5l KQotCQkJICAgICAgIChsb29raW5nLWF0ICJbIFx0XSpbYS16QS1aX11bYS16QS1aXzAtOV0qOlte Ol0iKSkKLQkJCSAgICAgKGlmICg+IChjdXJyZW50LWluZGVudGF0aW9uKSBjcGVybC1taW4tbGFi ZWwtaW5kZW50KQotCQkJCSAoLSAoY3VycmVudC1pbmRlbnRhdGlvbikgY3BlcmwtbGFiZWwtb2Zm c2V0KQotCQkJICAgICAgIDs7IERvIG5vdCBtb3ZlIGBwYXJzZS1kYXRhJywgdGhpcyBzaG91bGQK LQkJCSAgICAgICA7OyBiZSBxdWljayBhbnl3YXk6Ci0JCQkgICAgICAgKGNwZXJsLWNhbGN1bGF0 ZS1pbmRlbnQpKQotCQkJICAgKGN1cnJlbnQtaW5kZW50YXRpb24pKSkpKSkpKSkpKSkpKQorCQkg ICAgICAgKGNwZXJsLWJhY2t3YXJkLXRvLXN0YXJ0LW9mLWNvbnRpbnVlZC1leHAgY29udGFpbmlu Zy1zZXhwKQorCQkgICAgICAgKCsgKGlmIChtZW1xIGNoYXItYWZ0ZXIgKGFwcGVuZCAifV0pIiBu aWwpKQorCQkJICAgICAgMAkJOyBDbG9zaW5nIHBhcmVudGgKKwkJCSAgICBjcGVybC1jb250aW51 ZWQtc3RhdGVtZW50LW9mZnNldCkKKwkJCSAgKGlmIChvciBpcy1ibG9jaworCQkJCSAgKG5vdCBk ZWxpbSkKKwkJCQkgIChub3QgKGVxIGNoYXItYWZ0ZXIgP1x9KSkpCisJCQkgICAgICAwCisJCQkg ICAgOzsgTm93IGl0IGlzIGEgaGFzaCByZWZlcmVuY2UKKwkJCSAgICAoKyBjcGVybC1pbmRlbnQt bGV2ZWwgY3BlcmwtY2xvc2UtcGFyZW4tb2Zmc2V0KSkKKwkJCSAgKGlmIChsb29raW5nLWF0ICJc XHcrWyBcdF0qOiIpCisJCQkgICAgICAoaWYgKD4gKGN1cnJlbnQtaW5kZW50YXRpb24pIGNwZXJs LW1pbi1sYWJlbC1pbmRlbnQpCisJCQkJICAoLSAoY3VycmVudC1pbmRlbnRhdGlvbikgY3Blcmwt bGFiZWwtb2Zmc2V0KQorCQkJCTs7IERvIG5vdCBtb3ZlIGBwYXJzZS1kYXRhJywgdGhpcyBzaG91 bGQKKwkJCQk7OyBiZSBxdWljayBhbnl3YXkgKHRoaXMgY29tbWVudCBjb21lcworCQkJCTs7IGZy b20gZGlmZmVyZW50IGxvY2F0aW9uKToKKwkJCQkoY3BlcmwtY2FsY3VsYXRlLWluZGVudCkpCisJ CQkgICAgKGN1cnJlbnQtY29sdW1uKSkKKwkJCSAgKGlmIChlcSBjaGFyLWFmdGVyID9ceykKKwkJ CSAgICAgIGNwZXJsLWNvbnRpbnVlZC1icmFjZS1vZmZzZXQgMCkpKQorCQkgICA7OyBUaGlzIGxp bmUgc3RhcnRzIGEgbmV3IHN0YXRlbWVudC4KKwkJICAgOzsgUG9zaXRpb24gZm9sbG93aW5nIGxh c3QgdW5jbG9zZWQgb3Blbi4KKwkJICAgKGdvdG8tY2hhciBjb250YWluaW5nLXNleHApCisJCSAg IDs7IElzIGxpbmUgZmlyc3Qgc3RhdGVtZW50IGFmdGVyIGFuIG9wZW4tYnJhY2U/CisJCSAgIChv cgorCQkgICAgOzsgSWYgbm8sIGZpbmQgdGhhdCBmaXJzdCBzdGF0ZW1lbnQgYW5kIGluZGVudCBs aWtlCisJCSAgICA7OyBpdC4gIElmIHRoZSBmaXJzdCBzdGF0ZW1lbnQgYmVnaW5zIHdpdGggbGFi ZWwsIGRvCisJCSAgICA7OyBub3QgYmVsaWV2ZSB3aGVuIHRoZSBpbmRlbnRhdGlvbiBvZiB0aGUg bGFiZWwgaXMgdG9vCisJCSAgICA7OyBzbWFsbC4KKwkJICAgIChzYXZlLWV4Y3Vyc2lvbgorCQkg ICAgICAoZm9yd2FyZC1jaGFyIDEpCisJCSAgICAgIChzZXRxIG9sZC1pbmRlbnQgKGN1cnJlbnQt aW5kZW50YXRpb24pKQorCQkgICAgICAobGV0ICgoY29sb24tbGluZS1lbmQgMCkpCisJCQkod2hp bGUgKHByb2duIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdFxuIikKKwkJCQkgICAgICAobG9va2lu Zy1hdCAiI1xcfFthLXpBLVowLTlfJF0qOlteOl0iKSkKKwkJCSAgOzsgU2tpcCBvdmVyIGNvbW1l bnRzIGFuZCBsYWJlbHMgZm9sbG93aW5nIG9wZW5icmFjZS4KKwkJCSAgKGNvbmQgKCg9IChmb2xs b3dpbmctY2hhcikgP1wjKQorCQkJCSAoZm9yd2FyZC1saW5lIDEpKQorCQkJCTs7IGxhYmVsOgor CQkJCSh0CisJCQkJIChzYXZlLWV4Y3Vyc2lvbiAoZW5kLW9mLWxpbmUpCisJCQkJCQkgKHNldHEg Y29sb24tbGluZS1lbmQgKHBvaW50KSkpCisJCQkJIChzZWFyY2gtZm9yd2FyZCAiOiIpKSkpCisJ CQk7OyBUaGUgZmlyc3QgZm9sbG93aW5nIGNvZGUgY291bnRzCisJCQk7OyBpZiBpdCBpcyBiZWZv cmUgdGhlIGxpbmUgd2Ugd2FudCB0byBpbmRlbnQuCisJCQkoYW5kICg8IChwb2ludCkgaW5kZW50 LXBvaW50KQorCQkJICAgICAoaWYgKD4gY29sb24tbGluZS1lbmQgKHBvaW50KSkgOyBBZnRlciBs YWJlbAorCQkJCSAoaWYgKD4gKGN1cnJlbnQtaW5kZW50YXRpb24pCisJCQkJCWNwZXJsLW1pbi1s YWJlbC1pbmRlbnQpCisJCQkJICAgICAoLSAoY3VycmVudC1pbmRlbnRhdGlvbikgY3BlcmwtbGFi ZWwtb2Zmc2V0KQorCQkJCSAgIDs7IERvIG5vdCBiZWxpZXZlOiBgbWF4JyBpcyBpbnZvbHZlZAor CQkJCSAgICgrIG9sZC1pbmRlbnQgY3BlcmwtaW5kZW50LWxldmVsKSkKKwkJCSAgICAgICAoY3Vy cmVudC1jb2x1bW4pKSkpKQorCQkgICAgOzsgSWYgbm8gcHJldmlvdXMgc3RhdGVtZW50LAorCQkg ICAgOzsgaW5kZW50IGl0IHJlbGF0aXZlIHRvIGxpbmUgYnJhY2UgaXMgb24uCisJCSAgICA7OyBG b3Igb3BlbiBicmFjZSBpbiBjb2x1bW4gemVybywgZG9uJ3QgbGV0IHN0YXRlbWVudAorCQkgICAg Ozsgc3RhcnQgdGhlcmUgdG9vLiAgSWYgY3BlcmwtaW5kZW50LWxldmVsIGlzIHplcm8sCisJCSAg ICA7OyB1c2UgY3BlcmwtYnJhY2Utb2Zmc2V0ICsgY3BlcmwtY29udGludWVkLXN0YXRlbWVudC1v ZmZzZXQgaW5zdGVhZC4KKwkJICAgIDs7IEZvciBvcGVuLWJyYWNlcyBub3QgdGhlIGZpcnN0IHRo aW5nIGluIGEgbGluZSwKKwkJICAgIDs7IGFkZCBpbiBjcGVybC1icmFjZS1pbWFnaW5hcnktb2Zm c2V0LgorCisJCSAgICA7OyBJZiBmaXJzdCB0aGluZyBvbiBhIGxpbmU6ICA/Pz8/PworCQkgICAg KCsgKGlmIChhbmQgKGJvbHApICh6ZXJvcCBjcGVybC1pbmRlbnQtbGV2ZWwpKQorCQkJICAgKCsg Y3BlcmwtYnJhY2Utb2Zmc2V0IGNwZXJsLWNvbnRpbnVlZC1zdGF0ZW1lbnQtb2Zmc2V0KQorCQkJ IGNwZXJsLWluZGVudC1sZXZlbCkKKwkJICAgICAgIChpZiAob3IgaXMtYmxvY2sKKwkJCSAgICAg ICAobm90IGRlbGltKQorCQkJICAgICAgIChub3QgKGVxIGNoYXItYWZ0ZXIgP1x9KSkpCisJCQkg ICAwCisJCQkgOzsgTm93IGl0IGlzIGEgaGFzaCByZWZlcmVuY2UKKwkJCSAoKyBjcGVybC1pbmRl bnQtbGV2ZWwgY3BlcmwtY2xvc2UtcGFyZW4tb2Zmc2V0KSkKKwkJICAgICAgIDs7IE1vdmUgYmFj ayBvdmVyIHdoaXRlc3BhY2UgYmVmb3JlIHRoZSBvcGVuYnJhY2UuCisJCSAgICAgICA7OyBJZiBv cGVuYnJhY2UgaXMgbm90IGZpcnN0IG5vbndoaXRlIHRoaW5nIG9uIHRoZSBsaW5lLAorCQkgICAg ICAgOzsgYWRkIHRoZSBjcGVybC1icmFjZS1pbWFnaW5hcnktb2Zmc2V0LgorCQkgICAgICAgKHBy b2duIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorCQkJICAgICAgKGlmIChib2xwKSAwIGNw ZXJsLWJyYWNlLWltYWdpbmFyeS1vZmZzZXQpKQorCQkgICAgICAgOzsgSWYgdGhlIG9wZW5icmFj ZSBpcyBwcmVjZWRlZCBieSBhIHBhcmVudGhlc2l6ZWQgZXhwLAorCQkgICAgICAgOzsgbW92ZSB0 byB0aGUgYmVnaW5uaW5nIG9mIHRoYXQ7CisJCSAgICAgICA7OyBwb3NzaWJseSBhIGRpZmZlcmVu dCBsaW5lCisJCSAgICAgICAocHJvZ24KKwkJCSAoaWYgKGVxIChwcmVjZWRpbmctY2hhcikgP1wp KQorCQkJICAgICAoZm9yd2FyZC1zZXhwIC0xKSkKKwkJCSA7OyBJbiB0aGUgY2FzZSBpdCBzdGFy dHMgYSBzdWJyb3V0aW5lLCBpbmRlbnQgd2l0aAorCQkJIDs7IHJlc3BlY3QgdG8gYHN1YicsIG5v dCB3aXRoIHJlc3BlY3QgdG8gdGhlCisJCQkgOzsgZmlyc3QgdGhpbmcgb24gdGhlIGxpbmUsIHNh eSBpbiB0aGUgY2FzZSBvZgorCQkJIDs7IGFub255bW91cyBzdWIgaW4gYSBoYXNoLgorCQkJIDs7 CisJCQkgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIpCisJCQkgKGlmIChhbmQgKGVxIChwcmVj ZWRpbmctY2hhcikgP2IpCisJCQkJICAocHJvZ24KKwkJCQkgICAgKGZvcndhcmQtc2V4cCAtMSkK KwkJCQkgICAgKGxvb2tpbmctYXQgInN1YlxcPiIpKQorCQkJCSAgKHNldHEgb2xkLWluZGVudAor CQkJCQkobnRoIDEKKwkJCQkJICAgICAocGFyc2UtcGFydGlhbC1zZXhwCisJCQkJCSAgICAgIChz YXZlLWV4Y3Vyc2lvbiAoYmVnaW5uaW5nLW9mLWxpbmUpIChwb2ludCkpCisJCQkJCSAgICAgIChw b2ludCkpKSkpCisJCQkgICAgIChwcm9nbiAoZ290by1jaGFyICgxKyBvbGQtaW5kZW50KSkKKwkJ CQkgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0IikKKwkJCQkgICAgKGN1cnJlbnQtY29sdW1u KSkKKwkJCSAgIDs7IEdldCBpbml0aWFsIGluZGVudGF0aW9uIG9mIHRoZSBsaW5lIHdlIGFyZSBv bi4KKwkJCSAgIDs7IElmIGxpbmUgc3RhcnRzIHdpdGggbGFiZWwsIGNhbGN1bGF0ZSBsYWJlbCBp bmRlbnRhdGlvbgorCQkJICAgKGlmIChzYXZlLWV4Y3Vyc2lvbgorCQkJCSAoYmVnaW5uaW5nLW9m LWxpbmUpCisJCQkJIChsb29raW5nLWF0ICJbIFx0XSpbYS16QS1aX11bYS16QS1aXzAtOV0qOlte Ol0iKSkKKwkJCSAgICAgICAoaWYgKD4gKGN1cnJlbnQtaW5kZW50YXRpb24pIGNwZXJsLW1pbi1s YWJlbC1pbmRlbnQpCisJCQkJICAgKC0gKGN1cnJlbnQtaW5kZW50YXRpb24pIGNwZXJsLWxhYmVs LW9mZnNldCkKKwkJCQkgOzsgRG8gbm90IG1vdmUgYHBhcnNlLWRhdGEnLCB0aGlzIHNob3VsZAor CQkJCSA7OyBiZSBxdWljayBhbnl3YXk6CisJCQkJIChjcGVybC1jYWxjdWxhdGUtaW5kZW50KSkK KwkJCSAgICAgKGN1cnJlbnQtaW5kZW50YXRpb24pKSkpKSkpKSkpKSkpKQogCiAoZGVmdmFyIGNw ZXJsLWluZGVudC1hbGlzdAogICAnKChzdHJpbmcgbmlsKQpAQCAtMjcyNSw5ICsyNzA5LDkgQEAK IAkJCQkgICAgIChwb2ludCkpKQogCQkJICAgICAoY29ucyAobGlzdCAnZXhwcmVzc2lvbiBjb250 YWluaW5nLXNleHApIHJlcykpKSkKIAkgICAgKChwcm9nbgotCSAgICAgIDs7IENvbnRhaW5pbmct ZXhwciBzdGFydHMgd2l0aCBcey4gIENoZWNrIHdoZXRoZXIgaXQgaXMgYSBoYXNoLgotCSAgICAg IChnb3RvLWNoYXIgY29udGFpbmluZy1zZXhwKQotCSAgICAgIChub3QgKGNwZXJsLWJsb2NrLXAp KSkKKwkgICAgICAgOzsgQ29udGFpbmluZy1leHByIHN0YXJ0cyB3aXRoIFx7LiAgQ2hlY2sgd2hl dGhlciBpdCBpcyBhIGhhc2guCisJICAgICAgIChnb3RvLWNoYXIgY29udGFpbmluZy1zZXhwKQor CSAgICAgICAobm90IChjcGVybC1ibG9jay1wKSkpCiAJICAgICAoc2V0cSByZXMgKGNvbnMgKGxp c3QgJ2V4cHJlc3Npb24tYmxhbmtzCiAJCQkJICAgKHByb2duCiAJCQkJICAgICAoZ290by1jaGFy ICgxKyBjb250YWluaW5nLXNleHApKQpAQCAtMjc0OCw3ICsyNzMyLDcgQEAKIAkJCShzYXZlLWV4 Y3Vyc2lvbiAoY3BlcmwtYWZ0ZXItbGFiZWwpKSkKIAkgICAgICAgKGlmIChlcSAocHJlY2VkaW5n LWNoYXIpID9cLCkKIAkJICAgOzsgV2lsbCBnbyB0byBiZWdpbm5pbmcgb2YgbGluZSwgZXNzZW50 aWFsbHkKLQkJICAgICA7OyBXaWxsIGlnbm9yZSBlbWJlZGRlZCBzZXhwciBYWFhYLgorCQkgICA7 OyBXaWxsIGlnbm9yZSBlbWJlZGRlZCBzZXhwciBYWFhYLgogCQkgICAoY3BlcmwtYmFja3dhcmQt dG8tc3RhcnQtb2YtY29udGludWVkLWV4cCBjb250YWluaW5nLXNleHApKQogCSAgICAgICAoYmVn aW5uaW5nLW9mLWxpbmUpCiAJICAgICAgIChjcGVybC1iYWNrd2FyZC10by1ub25jb21tZW50IGNv bnRhaW5pbmctc2V4cCkpCkBAIC0yODQ4LDQzICsyODMyLDQyIEBACiAgICJHbyB0byBwb3NpdGlv biBiZWZvcmUgY29tbWVudCBvbiB0aGUgY3VycmVudCBsaW5lLCBvciB0byBlbmQgb2YgbGluZS4K IFJldHVybnMgdHJ1ZSBpZiBjb21tZW50IGlzIGZvdW5kLiIKICAgKGxldCAoc3RhdGUgc3RvcC1p biBjcG9pbnQgKGxpbSAocHJvZ24gKGVuZC1vZi1saW5lKSAocG9pbnQpKSkpCi0gICAgICAoYmVn aW5uaW5nLW9mLWxpbmUpCi0gICAgICAoaWYgKG9yCi0JICAgKGVxIChnZXQtdGV4dC1wcm9wZXJ0 eSAocG9pbnQpICdzeW50YXgtdHlwZSkgJ3BvZCkKLQkgICAocmUtc2VhcmNoLWZvcndhcmQgIlxc PVsgXHRdKlxcKCNcXHwkXFwpIiBsaW0gdCkpCi0JICAoaWYgKGVxIChwcmVjZWRpbmctY2hhcikg P1wjKSAocHJvZ24gKGJhY2t3YXJkLWNoYXIgMSkgdCkpCi0JOzsgRWxzZQotCSh3aGlsZSAobm90 IHN0b3AtaW4pCi0JICAoc2V0cSBzdGF0ZSAocGFyc2UtcGFydGlhbC1zZXhwIChwb2ludCkgbGlt IG5pbCBuaWwgbmlsIHQpKQorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAoaWYgKG9yCisJ IChlcSAoZ2V0LXRleHQtcHJvcGVydHkgKHBvaW50KSAnc3ludGF4LXR5cGUpICdwb2QpCisJIChy ZS1zZWFyY2gtZm9yd2FyZCAiXFw9WyBcdF0qXFwoI1xcfCRcXCkiIGxpbSB0KSkKKwkoaWYgKGVx IChwcmVjZWRpbmctY2hhcikgP1wjKSAocHJvZ24gKGJhY2t3YXJkLWNoYXIgMSkgdCkpCisgICAg ICA7OyBFbHNlCisgICAgICAod2hpbGUgKG5vdCBzdG9wLWluKQorCShzZXRxIHN0YXRlIChwYXJz ZS1wYXJ0aWFsLXNleHAgKHBvaW50KSBsaW0gbmlsIG5pbCBuaWwgdCkpCiAJCQkJCTsgc3RvcCBh dCBjb21tZW50Ci0JICA7OyBJZiBmYWlscyAoYmVnaW5uaW5nLW9mLWxpbmUgaW5zaWRlIHNleHAp LCB0aGVuIGNvbnRhaW5zIG5vdC1jb21tZW50Ci0JICAoaWYgKG50aCA0IHN0YXRlKQkJOyBBZnRl ciBgIyc7CisJOzsgSWYgZmFpbHMgKGJlZ2lubmluZy1vZi1saW5lIGluc2lkZSBzZXhwKSwgdGhl biBjb250YWlucyBub3QtY29tbWVudAorCShpZiAobnRoIDQgc3RhdGUpCQk7IEFmdGVyIGAjJzsK IAkJCQkJOyAobnRoIDIgc3RhdGUpIGNhbiBiZQogCQkJCQk7IGJlZ2lubmluZyBvZiBtLHMscXEg YW5kIHNvCiAJCQkJCTsgb24KLQkgICAgICAoaWYgKG50aCAyIHN0YXRlKQotCQkgIChwcm9nbgot CQkgICAgKHNldHEgY3BvaW50IChwb2ludCkpCi0JCSAgICAoZ290by1jaGFyIChudGggMiBzdGF0 ZSkpCi0JCSAgICAoY29uZAotCQkgICAgICgobG9va2luZy1hdCAiXFwoc1xcfHRyXFwpXFw+IikK LQkJICAgICAgKG9yIChyZS1zZWFyY2gtZm9yd2FyZAotCQkJICAgIlxcPVxcdytbIFx0XSojXFwo W15cblxcXFwjXVxcfFxcXFxbXFxcXCNdXFwpKiNcXChbXlxuXFxcXCNdXFx8XFxcXFtcXFxcI11c XCkqIgotCQkJICAgbGltICdtb3ZlKQotCQkJICAoc2V0cSBzdG9wLWluIHQpKSkKLQkJICAgICAo KGxvb2tpbmctYXQgIlxcKG1cXHxxXFwoW3F4d3JdXFwpP1xcKVxcPiIpCi0JCSAgICAgIChvciAo cmUtc2VhcmNoLWZvcndhcmQKLQkJCSAgICJcXD1cXHcrWyBcdF0qI1xcKFteXG5cXFxcI11cXHxc XFxcW1xcXFwjXVxcKSojIgotCQkJICAgbGltICdtb3ZlKQotCQkJICAoc2V0cSBzdG9wLWluIHQp KSkKLQkJICAgICAodAkJCTsgSXQgd2FzIGZhaXIgY29tbWVudAotCQkgICAgICAoc2V0cSBzdG9w LWluIHQpCTsgRmluaXNoCi0JCSAgICAgIChnb3RvLWNoYXIgKDEtIGNwb2ludCkpKSkpCi0JCShz ZXRxIHN0b3AtaW4gdCkJOyBGaW5pc2gKLQkJKGZvcndhcmQtY2hhciAtMSkpCi0JICAgIChzZXRx IHN0b3AtaW4gdCkpCQk7IEZpbmlzaAotCSAgKQotCShudGggNCBzdGF0ZSkpKSkKKwkgICAgKGlm IChudGggMiBzdGF0ZSkKKwkJKHByb2duCisJCSAgKHNldHEgY3BvaW50IChwb2ludCkpCisJCSAg KGdvdG8tY2hhciAobnRoIDIgc3RhdGUpKQorCQkgIChjb25kCisJCSAgICgobG9va2luZy1hdCAi XFwoc1xcfHRyXFwpXFw+IikKKwkJICAgIChvciAocmUtc2VhcmNoLWZvcndhcmQKKwkJCSAiXFw9 XFx3K1sgXHRdKiNcXChbXlxuXFxcXCNdXFx8XFxcXFtcXFxcI11cXCkqI1xcKFteXG5cXFxcI11c XHxcXFxcW1xcXFwjXVxcKSoiCisJCQkgbGltICdtb3ZlKQorCQkJKHNldHEgc3RvcC1pbiB0KSkp CisJCSAgICgobG9va2luZy1hdCAiXFwobVxcfHFcXChbcXh3cl1cXCk/XFwpXFw+IikKKwkJICAg IChvciAocmUtc2VhcmNoLWZvcndhcmQKKwkJCSAiXFw9XFx3K1sgXHRdKiNcXChbXlxuXFxcXCNd XFx8XFxcXFtcXFxcI11cXCkqIyIKKwkJCSBsaW0gJ21vdmUpCisJCQkoc2V0cSBzdG9wLWluIHQp KSkKKwkJICAgKHQJCQk7IEl0IHdhcyBmYWlyIGNvbW1lbnQKKwkJICAgIChzZXRxIHN0b3AtaW4g dCkJOyBGaW5pc2gKKwkJICAgIChnb3RvLWNoYXIgKDEtIGNwb2ludCkpKSkpCisJICAgICAgKHNl dHEgc3RvcC1pbiB0KQkJOyBGaW5pc2gKKwkgICAgICAoZm9yd2FyZC1jaGFyIC0xKSkKKwkgIChz ZXRxIHN0b3AtaW4gdCkpKQkJOyBGaW5pc2ggCisgICAgICAobnRoIDQgc3RhdGUpKSkpCiAKIChk ZWZzdWJzdCBjcGVybC0xLSAocCkKICAgKG1heCAocG9pbnQtbWluKSAoMS0gcCkpKQpAQCAtMzAw OCw3ICsyOTkxLDcgQEAKIAkJKHNldHEgc2V0LXN0IG5pbCkKIAkJKHNldHEgZW5kZXIgKGNwZXJs LWZvcndhcmQtcmUgbGltIGVuZCBuaWwgdCBzdC1sIGVyci1sCiAJCQkJCSAgICAgIGFyZ3VtZW50 IHN0YXJ0ZXIgZW5kZXIpCi0JCSBlbmRlciAobnRoIDIgZW5kZXIpKSkpKQorCQkgICAgICBlbmRl ciAobnRoIDIgZW5kZXIpKSkpKQogICAgICAgKGVycm9yIChnb3RvLWNoYXIgbGltKQogCSAgICAg KHNldHEgc2V0LXN0IG5pbCkKIAkgICAgIChpZiByZXNldC1zdApAQCAtMzAzNSw3ICszMDE4LDcg QEAKICAgOzsgRG8gYWZ0ZXIgc3ludGFjdGljIGZvbnRpZmljYXRpb24/CiAgIChpZiBjcGVybC1z eW50YXhpZnktYnktZm9udC1sb2NrCiAgICAgICAob3Igbm93IChwdXQtdGV4dC1wcm9wZXJ0eSBi IGUgJ2NwZXJsLXBvc3Rwb25lIChjb25zIHR5cGUgdmFsKSkpCi0gICAgICAocHV0LXRleHQtcHJv cGVydHkgYiBlIHR5cGUgdmFsKSkpCisgICAgKHB1dC10ZXh0LXByb3BlcnR5IGIgZSB0eXBlIHZh bCkpKQogCiA7OzsgSGVyZSBpcyBob3cgdGhlIGdsb2JhbCBzdHJ1Y3R1cmVzICh0aG9zZSB3aGlj aCBjYW5ub3QgYmUKIDs7OyByZWNvZ25pemVkIGxvY2FsbHkpIGFyZSBtYXJrZWQ6CkBAIC0zMDk1 LDEwMCArMzA3OCw5OSBAQAogCQljcGVybC1zeW50YXgtc3RhdGUgbmlsCiAJCWNwZXJsLXN5bnRh eC1kb25lLXRvIG1pbikpCiAgIChvciBtYXggKHNldHEgbWF4IChwb2ludC1tYXgpKSkKLSAgKGxl dCogKGZhY2UgaGVhZC1mYWNlIGhlcmUtZmFjZSBiIGUgYmIgdGFnIHF0YWcgYjEgZTEgYXJndW1l bnQgaSBjIHRhaWwgdGIKLQkgICAgICBpcy1SRXggaXMteC1SRXggUkV4LWNvbW1lbnQtc3RhcnQg UkV4LWNvbW1lbnQtZW5kIHdhcy1jb21tZW50IGkyCi0JICAgICAgKGNwZXJsLXBvZC1oZXJlLWZv bnRpZnkgKGV2YWwgY3BlcmwtcG9kLWhlcmUtZm9udGlmeSkpIGdvIHRtcGVuZAotCSAgICAgIChj YXNlLWZvbGQtc2VhcmNoIG5pbCkgKGluaGliaXQtcmVhZC1vbmx5IHQpIChidWZmZXItdW5kby1s aXN0IHQpCi0JICAgICAgKG1vZGlmaWVkIChidWZmZXItbW9kaWZpZWQtcCkpCi0JICAgICAgKGFm dGVyLWNoYW5nZS1mdW5jdGlvbnMgbmlsKQotCSAgICAgICh1c2Utc3ludGF4LXN0YXRlIChhbmQg Y3Blcmwtc3ludGF4LXN0YXRlCi0JCQkJICAgICAoPj0gbWluIChjYXIgY3Blcmwtc3ludGF4LXN0 YXRlKSkpKQotCSAgICAgIChzdGF0ZS1wb2ludCAoaWYgdXNlLXN5bnRheC1zdGF0ZQotCQkJICAg ICAgIChjYXIgY3Blcmwtc3ludGF4LXN0YXRlKQotCQkJICAgICAocG9pbnQtbWluKSkpCi0JICAg ICAgKHN0YXRlIChpZiB1c2Utc3ludGF4LXN0YXRlCi0JCQkgKGNkciBjcGVybC1zeW50YXgtc3Rh dGUpKSkKLQkgICAgICA7OyAoc3QtbCAnKG5pbCkpIChlcnItbCAnKG5pbCkpIDsgV291bGQgb3Zl cndyaXRlIC0gcHJvcGFnYXRlcyBmcm9tIGEgZnVuY3Rpb24gY2FsbCB0byBhIGZ1bmN0aW9uIGNh bGwhCi0JICAgICAgKHN0LWwgKGxpc3QgbmlsKSkgKGVyci1sIChsaXN0IG5pbCkpCi0JICAgICAg OzsgU29tZWhvdyBmb250LWxvY2sgbWF5IGJlIG5vdCBsb2FkZWQgeWV0Li4uCi0JICAgICAgKGZv bnQtbG9jay1zdHJpbmctZmFjZSAoaWYgKGJvdW5kcCAnZm9udC1sb2NrLXN0cmluZy1mYWNlKQot CQkJCQkgZm9udC1sb2NrLXN0cmluZy1mYWNlCi0JCQkJICAgICAgICdmb250LWxvY2stc3RyaW5n LWZhY2UpKQotCSAgICAgIChmb250LWxvY2stY29uc3RhbnQtZmFjZSAoaWYgKGJvdW5kcCAnZm9u dC1sb2NrLWNvbnN0YW50LWZhY2UpCi0JCQkJCSBmb250LWxvY2stY29uc3RhbnQtZmFjZQotCQkJ CSAgICAgICAnZm9udC1sb2NrLWNvbnN0YW50LWZhY2UpKQotCSAgICAgIChmb250LWxvY2stZnVu Y3Rpb24tbmFtZS1mYWNlCi0JICAgICAgIChpZiAoYm91bmRwICdmb250LWxvY2stZnVuY3Rpb24t bmFtZS1mYWNlKQotCQkgICBmb250LWxvY2stZnVuY3Rpb24tbmFtZS1mYWNlCi0JCSAnZm9udC1s b2NrLWZ1bmN0aW9uLW5hbWUtZmFjZSkpCi0JICAgICAgKGZvbnQtbG9jay1jb21tZW50LWZhY2UK LQkgICAgICAgKGlmIChib3VuZHAgJ2ZvbnQtbG9jay1jb21tZW50LWZhY2UpCi0JCSAgIGZvbnQt bG9jay1jb21tZW50LWZhY2UKLQkJICdmb250LWxvY2stY29tbWVudC1mYWNlKSkKLQkgICAgICAo Y3Blcmwtbm9ub3ZlcnJpZGFibGUtZmFjZQotCSAgICAgICAoaWYgKGJvdW5kcCAnY3Blcmwtbm9u b3ZlcnJpZGFibGUtZmFjZSkKLQkJICAgY3Blcmwtbm9ub3ZlcnJpZGFibGUtZmFjZQotCQkgJ2Nw ZXJsLW5vbm92ZXJyaWRhYmxlLWZhY2UpKQotCSAgICAgIChzdG9wLXBvaW50IChpZiBpZ25vcmUt bWF4Ci0JCQkgICAgICAocG9pbnQtbWF4KQotCQkJICAgIG1heCkpCi0JICAgICAgKHNlYXJjaAor ICAobGV0KiAoKGNwZXJsLXBvZC1oZXJlLWZvbnRpZnkgKGV2YWwgY3BlcmwtcG9kLWhlcmUtZm9u dGlmeSkpIGdvIHRtcGVuZAorCSBmYWNlIGhlYWQtZmFjZSBoZXJlLWZhY2UgYiBlIGJiIHRhZyBx dGFnIGIxIGUxIGFyZ3VtZW50IGkgYyB0YWlsIHRiCisJIGlzLVJFeCBpcy14LVJFeCBSRXgtY29t bWVudC1zdGFydCBSRXgtY29tbWVudC1lbmQgd2FzLWNvbW1lbnQgaTIKKwkgKGNhc2UtZm9sZC1z ZWFyY2ggbmlsKSAoaW5oaWJpdC1yZWFkLW9ubHkgdCkgKGJ1ZmZlci11bmRvLWxpc3QgdCkKKwkg KG1vZGlmaWVkIChidWZmZXItbW9kaWZpZWQtcCkpCisJIChhZnRlci1jaGFuZ2UtZnVuY3Rpb25z IG5pbCkKKwkgKHVzZS1zeW50YXgtc3RhdGUgKGFuZCBjcGVybC1zeW50YXgtc3RhdGUKKwkJCQko Pj0gbWluIChjYXIgY3Blcmwtc3ludGF4LXN0YXRlKSkpKQorCSAoc3RhdGUtcG9pbnQgKGlmIHVz ZS1zeW50YXgtc3RhdGUKKwkJCSAgKGNhciBjcGVybC1zeW50YXgtc3RhdGUpCisJCQkocG9pbnQt bWluKSkpCisJIChzdGF0ZSAoaWYgdXNlLXN5bnRheC1zdGF0ZQorCQkgICAgKGNkciBjcGVybC1z eW50YXgtc3RhdGUpKSkKKwkgOzsgKHN0LWwgJyhuaWwpKSAoZXJyLWwgJyhuaWwpKSA7IFdvdWxk IG92ZXJ3cml0ZSAtIHByb3BhZ2F0ZXMgZnJvbSBhIGZ1bmN0aW9uIGNhbGwgdG8gYSBmdW5jdGlv biBjYWxsIQorCSAoc3QtbCAobGlzdCBuaWwpKSAoZXJyLWwgKGxpc3QgbmlsKSkKKwkgOzsgU29t ZWhvdyBmb250LWxvY2sgbWF5IGJlIG5vdCBsb2FkZWQgeWV0Li4uCisJIChmb250LWxvY2stc3Ry aW5nLWZhY2UgKGlmIChib3VuZHAgJ2ZvbnQtbG9jay1zdHJpbmctZmFjZSkKKwkJCQkgICAgZm9u dC1sb2NrLXN0cmluZy1mYWNlCisJCQkJICAnZm9udC1sb2NrLXN0cmluZy1mYWNlKSkKKwkgKGZv bnQtbG9jay1jb25zdGFudC1mYWNlIChpZiAoYm91bmRwICdmb250LWxvY2stY29uc3RhbnQtZmFj ZSkKKwkJCQkgICAgICBmb250LWxvY2stY29uc3RhbnQtZmFjZQorCQkJCSAgICAnZm9udC1sb2Nr LWNvbnN0YW50LWZhY2UpKQorCSAoZm9udC1sb2NrLWZ1bmN0aW9uLW5hbWUtZmFjZQorCSAgKGlm IChib3VuZHAgJ2ZvbnQtbG9jay1mdW5jdGlvbi1uYW1lLWZhY2UpCisJICAgICAgZm9udC1sb2Nr LWZ1bmN0aW9uLW5hbWUtZmFjZQorCSAgICAnZm9udC1sb2NrLWZ1bmN0aW9uLW5hbWUtZmFjZSkp CisJIChmb250LWxvY2stY29tbWVudC1mYWNlCisJICAoaWYgKGJvdW5kcCAnZm9udC1sb2NrLWNv bW1lbnQtZmFjZSkKKwkgICAgICBmb250LWxvY2stY29tbWVudC1mYWNlCisJICAgICdmb250LWxv Y2stY29tbWVudC1mYWNlKSkKKwkgKGNwZXJsLW5vbm92ZXJyaWRhYmxlLWZhY2UKKwkgIChpZiAo Ym91bmRwICdjcGVybC1ub25vdmVycmlkYWJsZS1mYWNlKQorCSAgICAgIGNwZXJsLW5vbm92ZXJy aWRhYmxlLWZhY2UKKwkgICAgJ2NwZXJsLW5vbm92ZXJyaWRhYmxlLWZhY2UpKQorCSAoc3RvcC1w b2ludCAoaWYgaWdub3JlLW1heAorCQkJIChwb2ludC1tYXgpCisJCSAgICAgICBtYXgpKQorCSAo c2VhcmNoCisJICAoY29uY2F0CisJICAgIlxcKFxcYFxuP1xcfF5cblxcKT0iCisJICAgIlxcfCIK KwkgICA7OyBPbmUgZXh0cmEgKCkgYmVmb3JlIHRoaXM6CisJICAgIjw8IgorCSAgICJcXCgiCQkJ OyAxICsgMQorCSAgIDs7IEZpcnN0IHZhcmlhbnQgIkJMQUgiIG9yIGp1c3QgYGAuCisJICAgIlsg XHRdKiIJCQk7IFllcywgd2hpdGVzcGFjZSBpcyBhbGxvd2VkIQorCSAgICJcXChbXCInYF1cXCki CQk7IDIgKyAxID0gMworCSAgICJcXChbXlwiJ2Bcbl0qXFwpIgkJOyAzICsgMQorCSAgICJcXDMi CisJICAgIlxcfCIKKwkgICA7OyBTZWNvbmQgdmFyaWFudDogSWRlbnRpZmllciBvciBcSUQgb3Ig ZW1wdHkKKwkgICAiXFxcXD9cXChcXChbYS16QS1aX11bYS16QS1aXzAtOV0qXFwpP1xcKSIgOyA0 ICsgMSwgNSArIDEKKwkgICA7OyBEbyBub3QgaGF2ZSA8PD0gb3IgPDwgMzAgb3IgPDwzMCBvciA8 PCAkYmxhaC4KKwkgICA7OyAiXFwoW149IFx0MC05JEAlJl1cXHxbIFx0XStbXiBcdFxuMC05JEAl Jl1cXCkiIDsgNiArIDEKKwkgICAiXFwoXFwpIgkJOyBUbyBwcmVzZXJ2ZSBjb3VudCBvZiBwYXJz IDotKCA2ICsgMQorCSAgICJcXCkiCisJICAgIlxcfCIKKwkgICA7OyAxKzYgZXh0cmEgKCkgYmVm b3JlIHRoaXM6CisJICAgIl5bIFx0XSpcXChmb3JtYXRcXClbIFx0XSpcXChbYS16QS1aMC05X10r XFwpP1sgXHRdKj1bIFx0XSokIgorCSAgIChpZiBjcGVybC11c2Utc3ludGF4LXRhYmxlLXRleHQt cHJvcGVydHkKIAkgICAgICAgKGNvbmNhdAotCQkiXFwoXFxgXG4/XFx8XlxuXFwpPSIKIAkJIlxc fCIKLQkJOzsgT25lIGV4dHJhICgpIGJlZm9yZSB0aGlzOgotCQkiPDwiCi0JCSAgIlxcKCIJCQk7 IDEgKyAxCi0JCSAgOzsgRmlyc3QgdmFyaWFudCAiQkxBSCIgb3IganVzdCBgYC4KLQkJICAgICAi WyBcdF0qIgkJOyBZZXMsIHdoaXRlc3BhY2UgaXMgYWxsb3dlZCEKLQkJICAgICAiXFwoW1wiJ2Bd XFwpIgk7IDIgKyAxID0gMwotCQkgICAgICJcXChbXlwiJ2Bcbl0qXFwpIgk7IDMgKyAxCi0JCSAg ICAgIlxcMyIKLQkJICAiXFx8IgotCQkgIDs7IFNlY29uZCB2YXJpYW50OiBJZGVudGlmaWVyIG9y IFxJRCBvciBlbXB0eQotCQkgICAgIlxcXFw/XFwoXFwoW2EtekEtWl9dW2EtekEtWl8wLTldKlxc KT9cXCkiIDsgNCArIDEsIDUgKyAxCi0JCSAgICA7OyBEbyBub3QgaGF2ZSA8PD0gb3IgPDwgMzAg b3IgPDwzMCBvciA8PCAkYmxhaC4KLQkJICAgIDs7ICJcXChbXj0gXHQwLTkkQCUmXVxcfFsgXHRd K1teIFx0XG4wLTkkQCUmXVxcKSIgOyA2ICsgMQotCQkgICAgIlxcKFxcKSIJCTsgVG8gcHJlc2Vy dmUgY291bnQgb2YgcGFycyA6LSggNiArIDEKLQkJICAiXFwpIgorCQk7OyAxKzYrMj05IGV4dHJh ICgpIGJlZm9yZSB0aGlzOgorCQkiXFw8XFwocVt3eHFyXT9cXHxbbXN5XVxcfHRyXFwpXFw+Igor CQkiXFx8IgorCQk7OyAxKzYrMisxPTEwIGV4dHJhICgpIGJlZm9yZSB0aGlzOgorCQkiXFwoWz8v PF1cXCkiCTsgL2JsYWgvIG9yID9ibGFoPyBvciA8ZmlsZSpnbG9iPgorCQkiXFx8IgorCQk7OyAx KzYrMisxKzE9MTEgZXh0cmEgKCkgYmVmb3JlIHRoaXM6CisJCSJcXDxzdWJcXD5bIFx0XSpcXChb YS16QS1aXzonMC05XStbIFx0XSpcXCk/XFwoKFteKCldKilcXCkiCiAJCSJcXHwiCi0JCTs7IDEr NiBleHRyYSAoKSBiZWZvcmUgdGhpczoKLQkJIl5bIFx0XSpcXChmb3JtYXRcXClbIFx0XSpcXChb YS16QS1aMC05X10rXFwpP1sgXHRdKj1bIFx0XSokIgotCQkoaWYgY3BlcmwtdXNlLXN5bnRheC10 YWJsZS10ZXh0LXByb3BlcnR5Ci0JCSAgICAoY29uY2F0Ci0JCSAgICAgIlxcfCIKLQkJICAgICA7 OyAxKzYrMj05IGV4dHJhICgpIGJlZm9yZSB0aGlzOgotCQkgICAgICJcXDxcXChxW3d4cXJdP1xc fFttc3ldXFx8dHJcXClcXD4iCi0JCSAgICAgIlxcfCIKLQkJICAgICA7OyAxKzYrMisxPTEwIGV4 dHJhICgpIGJlZm9yZSB0aGlzOgotCQkgICAgICJcXChbPy88XVxcKSIJOyAvYmxhaC8gb3IgP2Js YWg/IG9yIDxmaWxlKmdsb2I+Ci0JCSAgICAgIlxcfCIKLQkJICAgICA7OyAxKzYrMisxKzE9MTEg ZXh0cmEgKCkgYmVmb3JlIHRoaXM6Ci0JCSAgICAgIlxcPHN1YlxcPlsgXHRdKlxcKFthLXpBLVpf OicwLTldK1sgXHRdKlxcKT9cXCgoW14oKV0qKVxcKSIKLQkJICAgICAiXFx8IgotCQkgICAgIDs7 IDErNisyKzErMSsyPTEzIGV4dHJhICgpIGJlZm9yZSB0aGlzOgotCQkgICAgICJcXCRcXChbJ3td XFwpIgotCQkgICAgICJcXHwiCi0JCSAgICAgOzsgMSs2KzIrMSsxKzIrMT0xNCBleHRyYSAoKSBi ZWZvcmUgdGhpczoKLQkJICAgICAiXFwoXFw8c3ViWyBcdFxuXGZdK1xcfFsmKiRAJV1cXClbYS16 QS1aMC05X10qJyIKLQkJICAgICA7OyAxKzYrMisxKzErMisxKzE9MTUgZXh0cmEgKCkgYmVmb3Jl IHRoaXM6Ci0JCSAgICAgIlxcfCIKLQkJICAgICAiX19cXChFTkRcXHxEQVRBXFwpX18iCi0JCSAg ICAgOzsgMSs2KzIrMSsxKzIrMSsxKzE9MTYgZXh0cmEgKCkgYmVmb3JlIHRoaXM6Ci0JCSAgICAg IlxcfCIKLQkJICAgICAiXFxcXFxcKFsnYFwiXVxcKSIKLQkJICAgICApCi0JCSAgIiIpKSkpCisJ CTs7IDErNisyKzErMSsyPTEzIGV4dHJhICgpIGJlZm9yZSB0aGlzOgorCQkiXFwkXFwoWyd7XVxc KSIKKwkJIlxcfCIKKwkJOzsgMSs2KzIrMSsxKzIrMT0xNCBleHRyYSAoKSBiZWZvcmUgdGhpczoK KwkJIlxcKFxcPHN1YlsgXHRcblxmXStcXHxbJiokQCVdXFwpW2EtekEtWjAtOV9dKiciCisJCTs7 IDErNisyKzErMSsyKzErMT0xNSBleHRyYSAoKSBiZWZvcmUgdGhpczoKKwkJIlxcfCIKKwkJIl9f XFwoRU5EXFx8REFUQVxcKV9fIgorCQk7OyAxKzYrMisxKzErMisxKzErMT0xNiBleHRyYSAoKSBi ZWZvcmUgdGhpczoKKwkJIlxcfCIKKwkJIlxcXFxcXChbJ2BcIl1cXCkiKQorCSAgICAgIiIpKSkp CiAgICAgKHVud2luZC1wcm90ZWN0CiAJKHByb2duCiAJICAoc2F2ZS1leGN1cnNpb24KIAkgICAg KG9yIG5vbi1pbnRlcgogCQkobWVzc2FnZSAiU2Nhbm5pbmcgZm9yIFwiaGFyZFwiIFBlcmwgY29u c3RydWN0aW9ucy4uLiIpKQogCSAgICAoYW5kIGNwZXJsLXBvZC1oZXJlLWZvbnRpZnkKLQkJOzsg V2UgaGFkIGV2YWxzIGhlcmUsIGRvIG5vdCBrbm93IHdoeS4uLgotCQkoc2V0cSBmYWNlIGNwZXJs LXBvZC1mYWNlCi0JCSAgICAgIGhlYWQtZmFjZSBjcGVybC1wb2QtaGVhZC1mYWNlCi0JCSAgICAg IGhlcmUtZmFjZSBjcGVybC1oZXJlLWZhY2UpKQorCQkgOzsgV2UgaGFkIGV2YWxzIGhlcmUsIGRv IG5vdCBrbm93IHdoeS4uLgorCQkgKHNldHEgZmFjZSBjcGVybC1wb2QtZmFjZQorCQkgICAgICAg aGVhZC1mYWNlIGNwZXJsLXBvZC1oZWFkLWZhY2UKKwkJICAgICAgIGhlcmUtZmFjZSBjcGVybC1o ZXJlLWZhY2UpKQogCSAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyBtaW4gbWF4CiAJCQkJICAg ICcoc3ludGF4LXR5cGUgdCBpbi1wb2QgdCBzeW50YXgtdGFibGUgdAogCQkJCQkJICBjcGVybC1w b3N0cG9uZSB0CkBAIC0zMjc5LDcgKzMyNjEsNyBAQAogCQkgIChjcGVybC1jb21tZW50aWZ5IGJi IGUgbmlsKQogCQkgIChnb3RvLWNoYXIgZSkKIAkJICAob3IgKGVxIGUgKHBvaW50LW1heCkpCi0J CSAgICAgIChmb3J3YXJkLWNoYXIgLTEpKSkpIDsgUHJlcGFyZSBmb3IgaW1tZWRpYXRlIHBvZCBz dGFydC4KKwkJICAgICAgKGZvcndhcmQtY2hhciAtMSkpKSkgOyBQcmVwYXJlIGZvciBpbW1lZGlh dGUgUE9EIHN0YXJ0LgogCSAgICAgICA7OyBIZXJlIGRvY3VtZW50CiAJICAgICAgIDs7IFdlIGRv IG9ubHkgb25lIGhlcmUtcGVyLWxpbmUKICAgICAgICAgICAgICAgIDs7IDs7IE9uZSBleHRyYSAo KSBiZWZvcmUgdGhpczoKQEAgLTMzMzMsMTEgKzMzMTUsMTEgQEAKIAkJCSAgICAgKHByb2duCiAJ CQkgICAgICAgOzsgSGlnaGxpZ2h0IHRoZSBlbmRpbmcgZGVsaW1pdGVyCiAJCQkgICAgICAgKGNw ZXJsLXBvc3Rwb25lLWZvbnRpZmljYXRpb24gKG1hdGNoLWJlZ2lubmluZyAwKSAobWF0Y2gtZW5k IDApCi0JCQkJCQkgICdmYWNlIGZvbnQtbG9jay1jb25zdGFudC1mYWNlKQorCQkJCQkJCSAgICAg J2ZhY2UgZm9udC1sb2NrLWNvbnN0YW50LWZhY2UpCiAJCQkgICAgICAgKGNwZXJsLXB1dC1kby1u b3QtZm9udGlmeSBiIChtYXRjaC1lbmQgMCkgdCkKIAkJCSAgICAgICA7OyBIaWdobGlnaHQgdGhl IEhFUkUtRE9DCiAJCQkgICAgICAgKGNwZXJsLXBvc3Rwb25lLWZvbnRpZmljYXRpb24gYiAobWF0 Y2gtYmVnaW5uaW5nIDApCi0JCQkJCQkgICdmYWNlIGhlcmUtZmFjZSkpKQorCQkJCQkJCSAgICAg J2ZhY2UgaGVyZS1mYWNlKSkpCiAJCQkgKHNldHEgZTEgKGNwZXJsLTErIChtYXRjaC1lbmQgMCkp KQogCQkJIChwdXQtdGV4dC1wcm9wZXJ0eSBiIChtYXRjaC1iZWdpbm5pbmcgMCkKIAkJCQkJICAg ICdzeW50YXgtdHlwZSAnaGVyZS1kb2MpCkBAIC0zMzc5LDE4ICszMzYxLDE4IEBACiAJCQkoZW5k LW9mLWxpbmUpCiAJCQk7OyBIaWdobGlnaHQgdGhlIGZvcm1hdCBsaW5lCiAJCQkoY3BlcmwtcG9z dHBvbmUtZm9udGlmaWNhdGlvbiBiMSAocG9pbnQpCi0JCQkJCSAgICdmYWNlIGZvbnQtbG9jay1z dHJpbmctZmFjZSkKKwkJCQkJCSAgICAgICdmYWNlIGZvbnQtbG9jay1zdHJpbmctZmFjZSkKIAkJ CShjcGVybC1jb21tZW50aWZ5IGIxIChwb2ludCkgbmlsKQogCQkJKGNwZXJsLXB1dC1kby1ub3Qt Zm9udGlmeSBiMSAocG9pbnQpIHQpKSkpCiAJCSAgOzsgV2UgZG8gbm90IHNlYXJjaCB0byBtYXgs IHNpbmNlIHdlIG1heSBiZSBjYWxsZWQgZnJvbQogCQkgIDs7IHNvbWUgaG9vayBvZiBmb250aWZp Y2F0aW9uLCBhbmQgbWF4IGlzIHJhbmRvbQogCQkgIChyZS1zZWFyY2gtZm9yd2FyZCAiXlsuO10k IiBzdG9wLXBvaW50ICd0b2VuZCkpCiAJCShiZWdpbm5pbmctb2YtbGluZSkKLQkJKGlmIChsb29r aW5nLWF0ICJeXFwuJCIpCTsgIjsiIGlzIG5vdCBzdXBwb3J0ZWQgeWV0CisJCShpZiAobG9va2lu Zy1hdCAiXlxcLiQiKSA7ICI7IiBpcyBub3Qgc3VwcG9ydGVkIHlldAogCQkgICAgKHByb2duCiAJ CSAgICAgIDs7IEhpZ2hsaWdodCB0aGUgZW5kaW5nIGRlbGltaXRlcgogCQkgICAgICAoY3Blcmwt cG9zdHBvbmUtZm9udGlmaWNhdGlvbiAocG9pbnQpICgrIChwb2ludCkgMikKLQkJCQkJICdmYWNl IGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKwkJCQkJCSAgICAnZmFjZSBmb250LWxvY2stc3RyaW5n LWZhY2UpCiAJCSAgICAgIChjcGVybC1jb21tZW50aWZ5IChwb2ludCkgKCsgKHBvaW50KSAyKSBu aWwpCiAJCSAgICAgIChjcGVybC1wdXQtZG8tbm90LWZvbnRpZnkgKHBvaW50KSAoKyAocG9pbnQp IDIpIHQpKQogCQkgIChtZXNzYWdlICJFbmQgb2YgZm9ybWF0IGAlcycgbm90IGZvdW5kLiIgbmFt ZSkKQEAgLTM0MTgsNyArMzQwMCw3IEBACiAJCQkgICAgICAobWVtcSBiYiAnKD9cJCA/XEAgP1wl ID9cKiA/XCMpKSA7ICQjeQogCQkJICAgICAgKGFuZCAoZXEgYmIgPy0pIChlcSBjID9zKSkgOyAt cyBmaWxlIHRlc3QKIAkJCSAgICAgIChhbmQgKGVxIGJiID9cJikKLQkJCQkgICAobm90IChlcSAo Y2hhci1hZnRlciAgOyAmJm0vYmxhaC8KKwkJCQkgICAobm90IChlcSAoY2hhci1hZnRlcgk7ICYm bS9ibGFoLwogCQkJCQkgICAgICgtIChtYXRjaC1iZWdpbm5pbmcgYjEpIDIpKQogCQkJCQkgICAg P1wmKSkpKQogCQkJICAgOzsgPGZpbGU+IG9yIDwkZmlsZT4KQEAgLTM0NDgsOCArMzQzMCw4IEBA CiAJCQkJICAgICAgKGFuZCAoZXEgKGNoYXItc3ludGF4IChwcmVjZWRpbmctY2hhcikpID93KQog CQkJCQkgICAocHJvZ24KIAkJCQkJICAgICAoZm9yd2FyZC1zZXhwIC0xKQotOzsgQWZ0ZXIgdGhl c2Uga2V5d29yZHMgYC8nIHN0YXJ0cyBhIFJFLiAgT25lIHNob3VsZCBhZGQgYWxsIHRoZQotOzsg ZnVuY3Rpb25zL2J1aWx0aW5zIHdoaWNoIGV4cGVjdCBhbiBhcmd1bWVudCwgYnV0IC4uLgorCQkJ CQkgICAgIDs7IEFmdGVyIHRoZXNlIGtleXdvcmRzIGAvJyBzdGFydHMgYSBSRS4gIE9uZSBzaG91 bGQgYWRkIGFsbCB0aGUKKwkJCQkJICAgICA7OyBmdW5jdGlvbnMvYnVpbHRpbnMgd2hpY2ggZXhw ZWN0IGFuIGFyZ3VtZW50LCBidXQgLi4uCiAJCQkJCSAgICAgKGlmIChlcSAocHJlY2VkaW5nLWNo YXIpID8tKQogCQkJCQkJIDs7IC1kID9mb28/IGlzIGEgUkUKIAkJCQkJCSAobG9va2luZy1hdCAi W2EtekEtWl1cXD4iKQpAQCAtMzU5NiwxMyArMzU3OCwxMyBAQAogCQkJICAod2hpbGUKIAkJCSAg ICAgIChhbmQgKDwgKHBvaW50KSBlKQogCQkJCSAgIChyZS1zZWFyY2gtZm9yd2FyZAotCQkJCSAg ICAoaWYgaXMteC1SRXgKLQkJCQkJKGlmIChlcSAoY2hhci1hZnRlciBiKSA/XCMpCisJCQkJICAg IChpZiAoZXEgKGNoYXItYWZ0ZXIgYikgP1wjKQorCQkJCQkoaWYgaXMteC1SRXgKIAkJCQkJICAg ICJcXCgoXFw/XFxcXCNcXClcXHxcXChcXFxcI1xcKSIKLQkJCQkJICAgICJcXCgoXFw/I1xcKVxc fFxcKCNcXCkiKQotCQkJCQkoaWYgKGVxIChjaGFyLWFmdGVyIGIpID9cIykKLQkJCQkJICAgICJc XCgoXFw/XFxcXCNcXCkiCi0JCQkJCSAgIlxcKChcXD8jXFwpIikpCisJCQkJCSAgIlxcKChcXD9c XFxcI1xcKSIpCisJCQkJICAgICAgKGlmIGlzLXgtUkV4CisJCQkJCSAgIlxcKChcXD8jXFwpXFx8 XFwoI1xcKSIKKwkJCQkJIlxcKChcXD8jXFwpIikpCiAJCQkJICAgICgxLSBlKSAndG8tZW5kKSkK IAkJCSAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCiAJCQkgICAgKHNldHEgUkV4 LWNvbW1lbnQtc3RhcnQgKHBvaW50KQpAQCAtMzc0NCwxMyArMzcyNiwxMiBAQAogICAgICAgKGlm IChtZW1xIChzZXRxIHByIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdzeW50YXgtdHlwZSkp CiAJCScocG9kIGhlcmUtZG9jIGhlcmUtZG9jLWRlbGltKSkKIAkgIChjcGVybC11bndpbmQtdG8t c2FmZSBuaWwpCi0gICAgICAoaWYgKG9yIChsb29raW5nLWF0ICJeWyBcdF0qXFwoI1xcfCRcXCki KQotCSAgICAgIChwcm9nbiAoY3BlcmwtdG8tY29tbWVudC1vci1lb2wpIChib2xwKSkpCi0JICBu aWwJOyBPbmx5IGNvbW1lbnQsIHNraXAKLQk7OyBFbHNlCi0JKHNraXAtY2hhcnMtYmFja3dhcmQg IiBcdCIpCi0JKGlmICg8IHAgKHBvaW50KSkgKGdvdG8tY2hhciBwKSkKLQkgIChzZXRxIHN0b3Ag dCkpKSkpKQorICAgICAgKG9yIChsb29raW5nLWF0ICJeWyBcdF0qXFwoI1xcfCRcXCkiKQorCSAg KHByb2duIChjcGVybC10by1jb21tZW50LW9yLWVvbCkgKGJvbHApKQorCSAgKHByb2duCisJICAg IChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorCSAgICAoaWYgKDwgcCAocG9pbnQpKSAoZ290 by1jaGFyIHApKQorCSAgICAoc2V0cSBzdG9wIHQpKSkpKSkpCiAKIChkZWZ1biBjcGVybC1hZnRl ci1ibG9jay1wIChsaW0pCiAgIDs7IFdlIHN1cHBvc2UgdGhhdCB0aGUgcHJlY2VkaW5nIGNoYXIg aXMgfS4KQEAgLTM3ODAsOCArMzc2MSw4IEBACiBURVNUIGlzIHRoZSBleHByZXNzaW9uIHRvIGV2 YWx1YXRlIGF0IHRoZSBmb3VuZCBwb3NpdGlvbi4gIElmIGFic2VudCwKIENIQVJTIGlzIGEgc3Ry aW5nIHRoYXQgY29udGFpbnMgZ29vZCBjaGFyYWN0ZXJzIHRvIGhhdmUgYmVmb3JlIHVzIChob3dl dmVyLAogYH0nIGlzIHRyZWF0ZWQgXCJzbWFydGx5XCIgaWYgaXQgaXMgbm90IGluIHRoZSBsaXN0 KS4iCi0gIChsZXQgKHN0b3AgcAotCSAgICAgKGxpbSAob3IgbGltIChwb2ludC1taW4pKSkpCisg IChsZXQgKChsaW0gKG9yIGxpbSAocG9pbnQtbWluKSkpCisJc3RvcCBwKQogICAgIChzYXZlLWV4 Y3Vyc2lvbgogICAgICAgKHdoaWxlIChhbmQgKG5vdCBzdG9wKSAoPiAocG9pbnQpIGxpbSkpCiAJ KHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdFxuXGYiIGxpbSkKQEAgLTM4NzQsMTAgKzM4NTUsMTAg QEAKICAgKGludGVyYWN0aXZlKQogICAob3IgZW5kCiAgICAgICAoc2V0cSBlbmQgKHBvaW50LW1h eCkpKQotICAobGV0IChwIHBwIG1sIGhhdmUtYnJhY2UgcmV0Ci0JICAoZWUgKHNhdmUtZXhjdXJz aW9uIChlbmQtb2YtbGluZSkgKHBvaW50KSkpCi0JICAoY3BlcmwtaW5kZW50LXJlZ2lvbi1maXgt Y29uc3RydWN0cwotCSAgIChvciBjcGVybC1pbmRlbnQtcmVnaW9uLWZpeC1jb25zdHJ1Y3RzIDEp KSkKKyAgKGxldCAoKGVlIChzYXZlLWV4Y3Vyc2lvbiAoZW5kLW9mLWxpbmUpIChwb2ludCkpKQor CShjcGVybC1pbmRlbnQtcmVnaW9uLWZpeC1jb25zdHJ1Y3RzCisJIChvciBjcGVybC1pbmRlbnQt cmVnaW9uLWZpeC1jb25zdHJ1Y3RzIDEpKQorCXAgcHAgbWwgaGF2ZS1icmFjZSByZXQpCiAgICAg KHNhdmUtZXhjdXJzaW9uCiAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCiAgICAgICAoc2V0cSBy ZXQgKHBvaW50KSkKQEAgLTM4ODcsMTY1ICszODY4LDE2NSBAQAogCSAgIChvciAobG9va2luZy1h dCAiWyBcdF0qXFwoZWxzXFwoZVxcfGlmXFwpXFx8Y29udGludWVcXHxpZlxcfHdoaWxlXFx8Zm9y XFwoZWFjaFxcKT9cXHx1bnRpbFxcKSIpCiAJICAgICAgIChzZXRxIGhhdmUtYnJhY2UgKHNhdmUt ZXhjdXJzaW9uIChzZWFyY2gtZm9yd2FyZCAifSIgZWUgdCkpKSkpCiAJICBuaWwJCQkJOyBEbyBu b3QgbmVlZCB0byBkbyBhbnl0aGluZwotICAgICAgOzsgTG9va2luZyBhdDoKLSAgICAgIDs7IH0K LSAgICAgIDs7IGVsc2UKLSAgICAgIChpZiAoYW5kIGNwZXJsLW1lcmdlLXRyYWlsaW5nLWVsc2UK LQkgICAgICAgKGxvb2tpbmctYXQKLQkJIlsgXHRdKn1bIFx0XSpcblsgXHRcbl0qXFwoZWxzXFwo ZVxcfGlmXFwpXFx8Y29udGludWVcXClcXD4iKSkKLQkgIChwcm9nbgotCSAgICAoc2VhcmNoLWZv cndhcmQgIn0iKQotCSAgICAoc2V0cSBwIChwb2ludCkpCi0JICAgIChza2lwLWNoYXJzLWZvcndh cmQgIiBcdFxuIikKLQkgICAgKGRlbGV0ZS1yZWdpb24gcCAocG9pbnQpKQotCSAgICAoaW5zZXJ0 IChtYWtlLXN0cmluZyBjcGVybC1pbmRlbnQtcmVnaW9uLWZpeC1jb25zdHJ1Y3RzID9cICkpCi0J ICAgIChiZWdpbm5pbmctb2YtbGluZSkpKQotICAgICAgOzsgTG9va2luZyBhdDoKLSAgICAgIDs7 IH0gICAgIGVsc2UKLSAgICAgIChpZiAobG9va2luZy1hdCAiWyBcdF0qfVxcKFx0KlxcfFsgXHRd WyBcdF0rXFwpXFw8XFwoZWxzXFwoZVxcfGlmXFwpXFx8Y29udGludWVcXClcXD4iKQotCSAgKHBy b2duCi0JICAgIChzZWFyY2gtZm9yd2FyZCAifSIpCi0JICAgIChkZWxldGUtaG9yaXpvbnRhbC1z cGFjZSkKLQkgICAgKGluc2VydCAobWFrZS1zdHJpbmcgY3BlcmwtaW5kZW50LXJlZ2lvbi1maXgt Y29uc3RydWN0cyA/XCApKQotCSAgICAoYmVnaW5uaW5nLW9mLWxpbmUpKSkKLSAgICAgIDs7IExv b2tpbmcgYXQ6Ci0gICAgICA7OyBlbHNlICAgewotICAgICAgKGlmIChsb29raW5nLWF0Ci0JICAg IlsgXHRdKn0/WyBcdF0qXFw8XFwoXFxlbHNcXChlXFx8aWZcXClcXHxjb250aW51ZVxcfHVubGVz c1xcfGlmXFx8d2hpbGVcXHxmb3JcXChlYWNoXFwpP1xcfHVudGlsXFwpXFw+XFwoXHQqXFx8WyBc dF1bIFx0XStcXClbXiBcdFxuI10iKQotCSAgKHByb2duCi0JICAgIChmb3J3YXJkLXdvcmQgMSkK LQkgICAgKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKQotCSAgICAoaW5zZXJ0IChtYWtlLXN0cmlu ZyBjcGVybC1pbmRlbnQtcmVnaW9uLWZpeC1jb25zdHJ1Y3RzID9cICkpCi0JICAgIChiZWdpbm5p bmctb2YtbGluZSkpKQotICAgICAgOzsgTG9va2luZyBhdDoKLSAgICAgIDs7IGZvcmVhY2ggbXkg ICAgJHZhcgotICAgICAgKGlmIChsb29raW5nLWF0Ci0JICAgIlsgXHRdKlxcPGZvclxcKGVhY2hc XCk/WyBcdF0rXFwobXlcXHxsb2NhbFxcfG91clxcKVxcKFx0KlxcfFsgXHRdWyBcdF0rXFwpW14g XHRcbl0iKQotCSAgKHByb2duCi0JICAgIChmb3J3YXJkLXdvcmQgMikKLQkgICAgKGRlbGV0ZS1o b3Jpem9udGFsLXNwYWNlKQotCSAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyBjcGVybC1pbmRlbnQt cmVnaW9uLWZpeC1jb25zdHJ1Y3RzID9cICkpCi0JICAgIChiZWdpbm5pbmctb2YtbGluZSkpKQot ICAgICAgOzsgTG9va2luZyBhdDoKLSAgICAgIDs7IGZvcmVhY2ggbXkgJHZhciAgICAgKAotICAg ICAgKGlmIChsb29raW5nLWF0CisJOzsgTG9va2luZyBhdDoKKwk7OyB9CisJOzsgZWxzZQorCShp ZiAoYW5kIGNwZXJsLW1lcmdlLXRyYWlsaW5nLWVsc2UKKwkJIChsb29raW5nLWF0CisJCSAgIlsg XHRdKn1bIFx0XSpcblsgXHRcbl0qXFwoZWxzXFwoZVxcfGlmXFwpXFx8Y29udGludWVcXClcXD4i KSkKKwkgICAgKHByb2duCisJICAgICAgKHNlYXJjaC1mb3J3YXJkICJ9IikKKwkgICAgICAoc2V0 cSBwIChwb2ludCkpCisJICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQorCSAgICAg IChkZWxldGUtcmVnaW9uIHAgKHBvaW50KSkKKwkgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyBj cGVybC1pbmRlbnQtcmVnaW9uLWZpeC1jb25zdHJ1Y3RzID9cICkpCisJICAgICAgKGJlZ2lubmlu Zy1vZi1saW5lKSkpCisJOzsgTG9va2luZyBhdDoKKwk7OyB9ICAgICBlbHNlCisJKGlmIChsb29r aW5nLWF0ICJbIFx0XSp9XFwoXHQqXFx8WyBcdF1bIFx0XStcXClcXDxcXChlbHNcXChlXFx8aWZc XClcXHxjb250aW51ZVxcKVxcPiIpCisJICAgIChwcm9nbgorCSAgICAgIChzZWFyY2gtZm9yd2Fy ZCAifSIpCisJICAgICAgKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKQorCSAgICAgIChpbnNlcnQg KG1ha2Utc3RyaW5nIGNwZXJsLWluZGVudC1yZWdpb24tZml4LWNvbnN0cnVjdHMgP1wgKSkKKwkg ICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpKSkKKwk7OyBMb29raW5nIGF0OgorCTs7IGVsc2UgICB7 CisJKGlmIChsb29raW5nLWF0CisJICAgICAiWyBcdF0qfT9bIFx0XSpcXDxcXChcXGVsc1xcKGVc XHxpZlxcKVxcfGNvbnRpbnVlXFx8dW5sZXNzXFx8aWZcXHx3aGlsZVxcfGZvclxcKGVhY2hcXCk/ XFx8dW50aWxcXClcXD5cXChcdCpcXHxbIFx0XVsgXHRdK1xcKVteIFx0XG4jXSIpCisJICAgIChw cm9nbgorCSAgICAgIChmb3J3YXJkLXdvcmQgMSkKKwkgICAgICAoZGVsZXRlLWhvcml6b250YWwt c3BhY2UpCisJICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgY3BlcmwtaW5kZW50LXJlZ2lvbi1m aXgtY29uc3RydWN0cyA/XCApKQorCSAgICAgIChiZWdpbm5pbmctb2YtbGluZSkpKQorCTs7IExv b2tpbmcgYXQ6CisJOzsgZm9yZWFjaCBteSAgICAkdmFyCisJKGlmIChsb29raW5nLWF0CisJICAg ICAiWyBcdF0qXFw8Zm9yXFwoZWFjaFxcKT9bIFx0XStcXChteVxcfGxvY2FsXFx8b3VyXFwpXFwo XHQqXFx8WyBcdF1bIFx0XStcXClbXiBcdFxuXSIpCisJICAgIChwcm9nbgorCSAgICAgIChmb3J3 YXJkLXdvcmQgMikKKwkgICAgICAoZGVsZXRlLWhvcml6b250YWwtc3BhY2UpCisJICAgICAgKGlu c2VydCAobWFrZS1zdHJpbmcgY3BlcmwtaW5kZW50LXJlZ2lvbi1maXgtY29uc3RydWN0cyA/XCAp KQorCSAgICAgIChiZWdpbm5pbmctb2YtbGluZSkpKQorCTs7IExvb2tpbmcgYXQ6CisJOzsgZm9y ZWFjaCBteSAkdmFyICAgICAoCisJKGlmIChsb29raW5nLWF0CiAJICAgICAiWyBcdF0qXFw8Zm9y XFwoZWFjaFxcKT9bIFx0XStcXChteVxcfGxvY2FsXFx8b3VyXFwpWyBcdF0qXFwkW19hLXpBLVow LTldK1xcKFx0KlxcfFsgXHRdWyBcdF0rXFwpW14gXHRcbiNdIikKLQkgIChwcm9nbgotCSAgICAo Zm9yd2FyZC13b3JkIDMpCi0JICAgIChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKLQkgICAgKGlu c2VydAotCSAgICAgKG1ha2Utc3RyaW5nIGNwZXJsLWluZGVudC1yZWdpb24tZml4LWNvbnN0cnVj dHMgP1wgKSkKLQkgICAgKGJlZ2lubmluZy1vZi1saW5lKSkpCi0gICAgICA7OyBMb29raW5nIGF0 OgotICAgICAgOzsgfSBmb3JlYWNoIG15ICR2YXIgKCkgICAgewotICAgICAgKGlmIChsb29raW5n LWF0CisJICAgIChwcm9nbgorCSAgICAgIChmb3J3YXJkLXdvcmQgMykKKwkgICAgICAoZGVsZXRl LWhvcml6b250YWwtc3BhY2UpCisJICAgICAgKGluc2VydAorCSAgICAgICAobWFrZS1zdHJpbmcg Y3BlcmwtaW5kZW50LXJlZ2lvbi1maXgtY29uc3RydWN0cyA/XCApKQorCSAgICAgIChiZWdpbm5p bmctb2YtbGluZSkpKQorCTs7IExvb2tpbmcgYXQ6CisJOzsgfSBmb3JlYWNoIG15ICR2YXIgKCkg ICAgeworCShpZiAobG9va2luZy1hdAogCSAgICAgIlsgXHRdKlxcKH1bIFx0XSpcXCk/XFw8XFwo XFxlbHNcXChlXFx8aWZcXClcXHxjb250aW51ZVxcfGlmXFx8dW5sZXNzXFx8d2hpbGVcXHxmb3Jc XChlYWNoXFwpP1xcKFxcKFsgXHRdK1xcKG15XFx8bG9jYWxcXHxvdXJcXClcXCk/WyBcdF0qXFwk W19hLXpBLVowLTldK1xcKT9cXHx1bnRpbFxcKVxcPlxcKFsgXHRdKihcXHxbIFx0XG5dKntcXClc XHxbIFx0XSp7IikKLQkgIChwcm9nbgotCSAgICAoc2V0cSBtbCAobWF0Y2gtYmVnaW5uaW5nIDgp KQotCSAgICAocmUtc2VhcmNoLWZvcndhcmQgIlsoe10iKQotCSAgICAoZm9yd2FyZC1jaGFyIC0x KQotCSAgICAoc2V0cSBwIChwb2ludCkpCi0JICAgIChpZiAoZXEgKGZvbGxvd2luZy1jaGFyKSA/ XCggKQotCQkocHJvZ24KLQkJICAoZm9yd2FyZC1zZXhwIDEpCi0JCSAgKHNldHEgcHAgKHBvaW50 KSkpCi0JICAgICAgOzsgYWZ0ZXIgYGVsc2UnIG9yIG5vdGhpbmcKLQkgICAgICAoaWYgbWwJOyBh ZnRlciBgZWxzZScKLQkJICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0XG4iKQotCQkoYmVnaW5u aW5nLW9mLWxpbmUpKQotCSAgICAgIChzZXRxIHBwIG5pbCkpCi0JICAgIDs7IE5vdyBhZnRlciB0 aGUgc2V4cCBiZWZvcmUgdGhlIGJyYWNlCi0JICAgIDs7IE11bHRpbGluZSBleHByIHNob3VsZCBi ZSBzcGVjaWFsCi0JICAgIChzZXRxIG1sIChhbmQgcHAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNo YXIgcCkKLQkJCQkJICAgICAoc2VhcmNoLWZvcndhcmQgIlxuIiBwcCB0KSkpKQotCSAgICAoaWYg KGFuZCAob3IgKG5vdCBwcCkgKDwgcHAgZW5kKSkKLQkJICAgICAobG9va2luZy1hdCAiWyBcdFxu XSp7IikpCi0JCShwcm9nbgotCQkgIChjb25kCi0JCSAgICgoYm9scCkJCTsgV2VyZSBiZWZvcmUg YHsnLCBubyBpZi9lbHNlL2V0YwotCQkgICAgbmlsKQotCQkgICAoKGxvb2tpbmctYXQgIlxcKFx0 KlxcfCBbIFx0XStcXCl7IikKLQkJICAgIChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKLQkJICAg IChpZiAoaWYgbWwKLQkJCSAgICBjcGVybC1leHRyYS1uZXdsaW5lLWJlZm9yZS1icmFjZS1tdWx0 aWxpbmUKLQkJCSAgY3BlcmwtZXh0cmEtbmV3bGluZS1iZWZvcmUtYnJhY2UpCi0JCQkocHJvZ24K LQkJCSAgKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKQotCQkJICAoaW5zZXJ0ICJcbiIpCi0JCQkg IChzZXRxIHJldCAocG9pbnQpKQotCQkJICAoaWYgKGNwZXJsLWluZGVudC1saW5lIHBhcnNlLWRh dGEpCi0JCQkgICAgICAocHJvZ24KLQkJCQkoY3BlcmwtZml4LWxpbmUtc3BhY2luZyBlbmQgcGFy c2UtZGF0YSkKLQkJCQkoc2V0cSByZXQgKHBvaW50KSkpKSkKKwkgICAgKHByb2duCisJICAgICAg KHNldHEgbWwgKG1hdGNoLWJlZ2lubmluZyA4KSkKKwkgICAgICAocmUtc2VhcmNoLWZvcndhcmQg Ilsoe10iKQorCSAgICAgIChmb3J3YXJkLWNoYXIgLTEpCisJICAgICAgKHNldHEgcCAocG9pbnQp KQorCSAgICAgIChpZiAoZXEgKGZvbGxvd2luZy1jaGFyKSA/XCggKQorCQkgIChwcm9nbgorCQkg ICAgKGZvcndhcmQtc2V4cCAxKQorCQkgICAgKHNldHEgcHAgKHBvaW50KSkpCisJCTs7IGFmdGVy IGBlbHNlJyBvciBub3RoaW5nCisJCShpZiBtbAkJCTsgYWZ0ZXIgYGVsc2UnCisJCSAgICAoc2tp cC1jaGFycy1iYWNrd2FyZCAiIFx0XG4iKQorCQkgIChiZWdpbm5pbmctb2YtbGluZSkpCisJCShz ZXRxIHBwIG5pbCkpCisJICAgICAgOzsgTm93IGFmdGVyIHRoZSBzZXhwIGJlZm9yZSB0aGUgYnJh Y2UKKwkgICAgICA7OyBNdWx0aWxpbmUgZXhwciBzaG91bGQgYmUgc3BlY2lhbAorCSAgICAgIChz ZXRxIG1sIChhbmQgcHAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcCkKKwkJCQkJICAgICAg IChzZWFyY2gtZm9yd2FyZCAiXG4iIHBwIHQpKSkpCisJICAgICAgKGlmIChhbmQgKG9yIChub3Qg cHApICg8IHBwIGVuZCkpCisJCSAgICAgICAobG9va2luZy1hdCAiWyBcdFxuXSp7IikpCisJCSAg KHByb2duCisJCSAgICAoY29uZAorCQkgICAgICgoYm9scCkJCTsgV2VyZSBiZWZvcmUgYHsnLCBu byBpZi9lbHNlL2V0YworCQkgICAgICBuaWwpCisJCSAgICAgKChsb29raW5nLWF0ICJcXChcdCpc XHwgWyBcdF0rXFwpeyIpCisJCSAgICAgIChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKwkJICAg ICAgKGlmIChpZiBtbAorCQkJICAgICAgY3BlcmwtZXh0cmEtbmV3bGluZS1iZWZvcmUtYnJhY2Ut bXVsdGlsaW5lCisJCQkgICAgY3BlcmwtZXh0cmEtbmV3bGluZS1iZWZvcmUtYnJhY2UpCisJCQkg IChwcm9nbgorCQkJICAgIChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKwkJCSAgICAoaW5zZXJ0 ICJcbiIpCisJCQkgICAgKHNldHEgcmV0IChwb2ludCkpCisJCQkgICAgKGlmIChjcGVybC1pbmRl bnQtbGluZSBwYXJzZS1kYXRhKQorCQkJCShwcm9nbgorCQkJCSAgKGNwZXJsLWZpeC1saW5lLXNw YWNpbmcgZW5kIHBhcnNlLWRhdGEpCisJCQkJICAoc2V0cSByZXQgKHBvaW50KSkpKSkKKwkJCShp bnNlcnQKKwkJCSAobWFrZS1zdHJpbmcgY3BlcmwtaW5kZW50LXJlZ2lvbi1maXgtY29uc3RydWN0 cyA/XCApKSkpCisJCSAgICAgKChhbmQgKGxvb2tpbmctYXQgIlsgXHRdKlxuIikKKwkJCSAgIChu b3QgKGlmIG1sCisJCQkJICAgIGNwZXJsLWV4dHJhLW5ld2xpbmUtYmVmb3JlLWJyYWNlLW11bHRp bGluZQorCQkJCSAgY3BlcmwtZXh0cmEtbmV3bGluZS1iZWZvcmUtYnJhY2UpKSkKKwkJICAgICAg KHNldHEgcHAgKHBvaW50KSkKKwkJICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQor CQkgICAgICAoZGVsZXRlLXJlZ2lvbiBwcCAocG9pbnQpKQogCQkgICAgICAoaW5zZXJ0CiAJCSAg ICAgICAobWFrZS1zdHJpbmcgY3BlcmwtaW5kZW50LXJlZ2lvbi1maXgtY29uc3RydWN0cyA/XCAp KSkpCi0JCSAgICgoYW5kIChsb29raW5nLWF0ICJbIFx0XSpcbiIpCi0JCQkgKG5vdCAoaWYgbWwK LQkJCQkgIGNwZXJsLWV4dHJhLW5ld2xpbmUtYmVmb3JlLWJyYWNlLW11bHRpbGluZQotCQkJCWNw ZXJsLWV4dHJhLW5ld2xpbmUtYmVmb3JlLWJyYWNlKSkpCi0JCSAgICAoc2V0cSBwcCAocG9pbnQp KQotCQkgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQotCQkgICAgKGRlbGV0ZS1yZWdp b24gcHAgKHBvaW50KSkKLQkJICAgIChpbnNlcnQKLQkJICAgICAobWFrZS1zdHJpbmcgY3Blcmwt aW5kZW50LXJlZ2lvbi1maXgtY29uc3RydWN0cyA/XCApKSkpCi0JCSAgOzsgTm93IHdlIGFyZSBi ZWZvcmUgYHsnCi0JCSAgKGlmIChsb29raW5nLWF0ICJbIFx0XG5dKntbIFx0XSpbXiBcdFxuI10i KQotCQkgICAgICAocHJvZ24KLQkJCShza2lwLWNoYXJzLWZvcndhcmQgIiBcdFxuIikKLQkJCShz ZXRxIHBwIChwb2ludCkpCi0JCQkoZm9yd2FyZC1zZXhwIDEpCi0JCQkoc2V0cSBwIChwb2ludCkp Ci0JCQkoZ290by1jaGFyIHBwKQotCQkJKHNldHEgbWwgKHNlYXJjaC1mb3J3YXJkICJcbiIgcCB0 KSkKLQkJCShpZiAob3IgY3BlcmwtYnJlYWstb25lLWxpbmUtYmxvY2tzLXdoZW4taW5kZW50IG1s KQotCQkJICAgIDs7IG5vdCBnb29kOiBtdWx0aS1saW5lIEJMT0NLCi0JCQkgICAgKHByb2duCi0J CQkgICAgICAoZ290by1jaGFyICgxKyBwcCkpCi0JCQkgICAgICAoZGVsZXRlLWhvcml6b250YWwt c3BhY2UpCi0JCQkgICAgICAoaW5zZXJ0ICJcbiIpCi0JCQkgICAgICAoc2V0cSByZXQgKHBvaW50 KSkKLQkJCSAgICAgIChpZiAoY3BlcmwtaW5kZW50LWxpbmUgcGFyc2UtZGF0YSkKLQkJCQkgIChz ZXRxIHJldCAoY3BlcmwtZml4LWxpbmUtc3BhY2luZyBlbmQgcGFyc2UtZGF0YSkpKSkpKSkpKSkp Ci0gICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCi0gICAgICAoc2V0cSBwIChwb2ludCkgcHAgKHNh dmUtZXhjdXJzaW9uIChlbmQtb2YtbGluZSkgKHBvaW50KSkpIDsgTWF5IGJlIGRpZmZlcmVudCBm cm9tIGVlLgotICAgICAgOzsgTm93IGNoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYSBoYW5naW5nIGB9 JwotICAgICAgOzsgTG9va2luZyBhdDoKLSAgICAgIDs7IH0gYmxhaAotICAgICAgKGlmIChhbmQK LQkgICBjcGVybC1maXgtaGFuZ2luZy1icmFjZS13aGVuLWluZGVudAotCSAgIGhhdmUtYnJhY2UK LQkgICAobm90IChsb29raW5nLWF0ICJbIFx0XSp9WyBcdF0qXFwoXFw8XFwoZWxzXFwoaWZcXHxl XFwpXFx8Y29udGludWVcXHx3aGlsZVxcfHVudGlsXFwpXFw+XFx8JFxcfCNcXCkiKSkKLQkgICAo Y29uZGl0aW9uLWNhc2UgbmlsCi0JICAgICAgIChwcm9nbgotCQkgKHVwLWxpc3QgMSkKLQkJIChp ZiAoYW5kICg8PSAocG9pbnQpIHBwKQotCQkJICAoZXEgKHByZWNlZGluZy1jaGFyKSA/XH0gKQot CQkJICAoY3BlcmwtYWZ0ZXItYmxvY2stYW5kLXN0YXRlbWVudC1iZWcgKHBvaW50LW1pbikpKQot CQkgICAgIHQKLQkJICAgKGdvdG8tY2hhciBwKQotCQkgICBuaWwpKQotCSAgICAgKGVycm9yIG5p bCkpKQotCSAgKHByb2duCi0JICAgIChmb3J3YXJkLWNoYXIgLTEpCi0JICAgIChza2lwLWNoYXJz LWJhY2t3YXJkICIgXHQiKQotCSAgICAoaWYgKGJvbHApCi0JCTs7IGB9JyB3YXMgdGhlIGZpcnN0 IHRoaW5nIG9uIHRoZSBsaW5lLCBpbnNlcnQgTkwgKmFmdGVyKiBpdC4KLQkJKHByb2duCi0JCSAg KGNwZXJsLWluZGVudC1saW5lIHBhcnNlLWRhdGEpCi0JCSAgKHNlYXJjaC1mb3J3YXJkICJ9IikK LQkJICAoZGVsZXRlLWhvcml6b250YWwtc3BhY2UpCi0JCSAgKGluc2VydCAiXG4iKSkKLQkgICAg ICAoZGVsZXRlLWhvcml6b250YWwtc3BhY2UpCi0JICAgICAgKG9yIChlcSAocHJlY2VkaW5nLWNo YXIpID9cOykKLQkJICAoYm9scCkKLQkJICAoYW5kIChlcSAocHJlY2VkaW5nLWNoYXIpID9cfSAp Ci0JCSAgICAgICAoY3BlcmwtYWZ0ZXItYmxvY2stcCAocG9pbnQtbWluKSkpCi0JCSAgKGluc2Vy dCAiOyIpKQotCSAgICAgIChpbnNlcnQgIlxuIikKLQkgICAgICAoc2V0cSByZXQgKHBvaW50KSkp Ci0JICAgIChpZiAoY3BlcmwtaW5kZW50LWxpbmUgcGFyc2UtZGF0YSkKLQkJKHNldHEgcmV0IChj cGVybC1maXgtbGluZS1zcGFjaW5nIGVuZCBwYXJzZS1kYXRhKSkpCi0JICAgIChiZWdpbm5pbmct b2YtbGluZSkpKSkpCisJCSAgICA7OyBOb3cgd2UgYXJlIGJlZm9yZSBgeycKKwkJICAgIChpZiAo bG9va2luZy1hdCAiWyBcdFxuXSp7WyBcdF0qW14gXHRcbiNdIikKKwkJCShwcm9nbgorCQkJICAo c2tpcC1jaGFycy1mb3J3YXJkICIgXHRcbiIpCisJCQkgIChzZXRxIHBwIChwb2ludCkpCisJCQkg IChmb3J3YXJkLXNleHAgMSkKKwkJCSAgKHNldHEgcCAocG9pbnQpKQorCQkJICAoZ290by1jaGFy IHBwKQorCQkJICAoc2V0cSBtbCAoc2VhcmNoLWZvcndhcmQgIlxuIiBwIHQpKQorCQkJICAoaWYg KG9yIGNwZXJsLWJyZWFrLW9uZS1saW5lLWJsb2Nrcy13aGVuLWluZGVudCBtbCkKKwkJCSAgICAg IDs7IG5vdCBnb29kOiBtdWx0aS1saW5lIEJMT0NLCisJCQkgICAgICAocHJvZ24KKwkJCQkoZ290 by1jaGFyICgxKyBwcCkpCisJCQkJKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKQorCQkJCShpbnNl cnQgIlxuIikKKwkJCQkoc2V0cSByZXQgKHBvaW50KSkKKwkJCQkoaWYgKGNwZXJsLWluZGVudC1s aW5lIHBhcnNlLWRhdGEpCisJCQkJICAgIChzZXRxIHJldCAoY3BlcmwtZml4LWxpbmUtc3BhY2lu ZyBlbmQgcGFyc2UtZGF0YSkpKSkpKSkpKSkpCisJKGJlZ2lubmluZy1vZi1saW5lKQorCShzZXRx IHAgKHBvaW50KSBwcCAoc2F2ZS1leGN1cnNpb24gKGVuZC1vZi1saW5lKSAocG9pbnQpKSkgOyBN YXkgYmUgZGlmZmVyZW50IGZyb20gZWUuCisJOzsgTm93IGNoZWNrIHdoZXRoZXIgdGhlcmUgaXMg YSBoYW5naW5nIGB9JworCTs7IExvb2tpbmcgYXQ6CisJOzsgfSBibGFoCisJKGlmIChhbmQKKwkg ICAgIGNwZXJsLWZpeC1oYW5naW5nLWJyYWNlLXdoZW4taW5kZW50CisJICAgICBoYXZlLWJyYWNl CisJICAgICAobm90IChsb29raW5nLWF0ICJbIFx0XSp9WyBcdF0qXFwoXFw8XFwoZWxzXFwoaWZc XHxlXFwpXFx8Y29udGludWVcXHx3aGlsZVxcfHVudGlsXFwpXFw+XFx8JFxcfCNcXCkiKSkKKwkg ICAgIChjb25kaXRpb24tY2FzZSBuaWwKKwkJIChwcm9nbgorCQkgICAodXAtbGlzdCAxKQorCQkg ICAoaWYgKGFuZCAoPD0gKHBvaW50KSBwcCkKKwkJCSAgICAoZXEgKHByZWNlZGluZy1jaGFyKSA/ XH0gKQorCQkJICAgIChjcGVybC1hZnRlci1ibG9jay1hbmQtc3RhdGVtZW50LWJlZyAocG9pbnQt bWluKSkpCisJCSAgICAgICB0CisJCSAgICAgKGdvdG8tY2hhciBwKQorCQkgICAgIG5pbCkpCisJ ICAgICAgIChlcnJvciBuaWwpKSkKKwkgICAgKHByb2duCisJICAgICAgKGZvcndhcmQtY2hhciAt MSkKKwkgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IikKKwkgICAgICAoaWYgKGJvbHAp CisJCSAgOzsgYH0nIHdhcyB0aGUgZmlyc3QgdGhpbmcgb24gdGhlIGxpbmUsIGluc2VydCBOTCAq YWZ0ZXIqIGl0LgorCQkgIChwcm9nbgorCQkgICAgKGNwZXJsLWluZGVudC1saW5lIHBhcnNlLWRh dGEpCisJCSAgICAoc2VhcmNoLWZvcndhcmQgIn0iKQorCQkgICAgKGRlbGV0ZS1ob3Jpem9udGFs LXNwYWNlKQorCQkgICAgKGluc2VydCAiXG4iKSkKKwkJKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNl KQorCQkob3IgKGVxIChwcmVjZWRpbmctY2hhcikgP1w7KQorCQkgICAgKGJvbHApCisJCSAgICAo YW5kIChlcSAocHJlY2VkaW5nLWNoYXIpID9cfSApCisJCQkgKGNwZXJsLWFmdGVyLWJsb2NrLXAg KHBvaW50LW1pbikpKQorCQkgICAgKGluc2VydCAiOyIpKQorCQkoaW5zZXJ0ICJcbiIpCisJCShz ZXRxIHJldCAocG9pbnQpKSkKKwkgICAgICAoaWYgKGNwZXJsLWluZGVudC1saW5lIHBhcnNlLWRh dGEpCisJCSAgKHNldHEgcmV0IChjcGVybC1maXgtbGluZS1zcGFjaW5nIGVuZCBwYXJzZS1kYXRh KSkpCisJICAgICAgKGJlZ2lubmluZy1vZi1saW5lKSkpKSkKICAgICByZXQpKQogCiAoZGVmdmFy IGNwZXJsLXVwZGF0ZS1zdGFydCkJCTsgRG8gbm90IG5lZWQgdG8gbWFrZSB0aGVtIGxvY2FsCkBA IC00MDY3LDc2ICs0MDQ4LDc1IEBACiAgIChjcGVybC11cGRhdGUtc3ludGF4aWZpY2F0aW9uIGVu ZCBlbmQpCiAgIChzYXZlLWV4Y3Vyc2lvbgogICAgIChsZXQgKGNwZXJsLXVwZGF0ZS1zdGFydCBj cGVybC11cGRhdGUtZW5kIChoLWEtYyBhZnRlci1jaGFuZ2UtZnVuY3Rpb25zKSkKLSAgICAgIChs ZXQgKHN0IGNvbW0gb2xkLWNvbW0taW5kZW50IG5ldy1jb21tLWluZGVudCBwIHBwIGkgZW1wdHkK LQkgICAgICAgKGluZGVudC1pbmZvIChpZiBjcGVybC1lbWFjcy1jYW4tcGFyc2UKLQkJCQkobGlz dCBuaWwgbmlsIG5pbCkgOyBDYW5ub3QgdXNlICcoKSwgc2luY2Ugd2lsbCBtb2RpZnkKLQkJCSAg ICAgIG5pbCkpCi0JICAgICAgIGFmdGVyLWNoYW5nZS1mdW5jdGlvbnMJOyBTcGVlZCBpdCB1cCEK LQkgICAgIChwbSAwKSAoaW1lbnUtc2Nhbm5pbmctbWVzc2FnZSAiSW5kZW50aW5nLi4uICglM2Ql JSkiKSkKKyAgICAgIChsZXQgKChpbmRlbnQtaW5mbyAoaWYgY3BlcmwtZW1hY3MtY2FuLXBhcnNl CisJCQkgICAgIChsaXN0IG5pbCBuaWwgbmlsKQk7IENhbm5vdCB1c2UgJygpLCBzaW5jZSB3aWxs IG1vZGlmeQorCQkJICAgbmlsKSkKKwkgICAgKHBtIDApIChpbWVudS1zY2FubmluZy1tZXNzYWdl ICJJbmRlbnRpbmcuLi4gKCUzZCUlKSIpCisJICAgIGFmdGVyLWNoYW5nZS1mdW5jdGlvbnMJOyBT cGVlZCBpdCB1cCEKKwkgICAgc3QgY29tbSBvbGQtY29tbS1pbmRlbnQgbmV3LWNvbW0taW5kZW50 IHAgcHAgaSBlbXB0eSkKIAkoaWYgaC1hLWMgKGFkZC1ob29rICdhZnRlci1jaGFuZ2UtZnVuY3Rp b25zICdjcGVybC1kZWxheS11cGRhdGUtaG9vaykpCi0gICAgICAoZ290by1jaGFyIHN0YXJ0KQot ICAgICAgKHNldHEgb2xkLWNvbW0taW5kZW50IChhbmQgKGNwZXJsLXRvLWNvbW1lbnQtb3ItZW9s KQotCQkJCSAoY3VycmVudC1jb2x1bW4pKQotCSAgICBuZXctY29tbS1pbmRlbnQgb2xkLWNvbW0t aW5kZW50KQotICAgICAgKGdvdG8tY2hhciBzdGFydCkKLSAgICAgIChzZXRxIGVuZCAoc2V0LW1h cmtlciAobWFrZS1tYXJrZXIpIGVuZCkpCTsgaW5kZW50YXRpb24gY2hhbmdlcyBwb3MKLSAgICAg IChvciAoYm9scCkgKGJlZ2lubmluZy1vZi1saW5lIDIpKQotICAgICAgKG9yIChmYm91bmRwICdp bWVudS1wcm9ncmVzcy1tZXNzYWdlKQotCSAgKG1lc3NhZ2UgIkluZGVudGluZy4uLiBGb3IgZmVl ZGJhY2sgbG9hZCBgaW1lbnUnLi4uIikpCi0gICAgICAod2hpbGUgKGFuZCAoPD0gKHBvaW50KSBl bmQpIChub3QgKGVvYnApKSkgOyBib2wgdG8gY2hlY2sgc3RhcnQKLQkoYW5kIChmYm91bmRwICdp bWVudS1wcm9ncmVzcy1tZXNzYWdlKQotCSAgICAgKGltZW51LXByb2dyZXNzLW1lc3NhZ2UKLQkg ICAgICBwbSAoLyAoKiAxMDAgKC0gKHBvaW50KSBzdGFydCkpICgtIGVuZCBzdGFydCAtMSkpKSkK KwkoZ290by1jaGFyIHN0YXJ0KQorCShzZXRxIG9sZC1jb21tLWluZGVudCAoYW5kIChjcGVybC10 by1jb21tZW50LW9yLWVvbCkKKwkJCQkgICAoY3VycmVudC1jb2x1bW4pKQorCSAgICAgIG5ldy1j b21tLWluZGVudCBvbGQtY29tbS1pbmRlbnQpCisJKGdvdG8tY2hhciBzdGFydCkKKwkoc2V0cSBl bmQgKHNldC1tYXJrZXIgKG1ha2UtbWFya2VyKSBlbmQpKSA7IGluZGVudGF0aW9uIGNoYW5nZXMg cG9zCisJKG9yIChib2xwKSAoYmVnaW5uaW5nLW9mLWxpbmUgMikpCisJKG9yIChmYm91bmRwICdp bWVudS1wcm9ncmVzcy1tZXNzYWdlKQorCSAgICAobWVzc2FnZSAiSW5kZW50aW5nLi4uIEZvciBm ZWVkYmFjayBsb2FkIGBpbWVudScuLi4iKSkKKwkod2hpbGUgKGFuZCAoPD0gKHBvaW50KSBlbmQp IChub3QgKGVvYnApKSkgOyBib2wgdG8gY2hlY2sgc3RhcnQKKwkgIChhbmQgKGZib3VuZHAgJ2lt ZW51LXByb2dyZXNzLW1lc3NhZ2UpCisJICAgICAgIChpbWVudS1wcm9ncmVzcy1tZXNzYWdlCisJ CXBtICgvICgqIDEwMCAoLSAocG9pbnQpIHN0YXJ0KSkgKC0gZW5kIHN0YXJ0IC0xKSkpKQogCSAg KHNldHEgc3QgKHBvaW50KSkKIAkgIChpZiAob3IKIAkgICAgICAgKHNldHEgZW1wdHkgKGxvb2tp bmctYXQgIlsgXHRdKlxuIikpCiAJICAgICAgIChhbmQgKHNldHEgY29tbSAobG9va2luZy1hdCAi WyBcdF0qIyIpKQotCQkgKG9yIChlcSAoY3VycmVudC1pbmRlbnRhdGlvbikgKG9yIG9sZC1jb21t LWluZGVudAotCQkJCQkJICAgY29tbWVudC1jb2x1bW4pKQorCQkgICAgKG9yIChlcSAoY3VycmVu dC1pbmRlbnRhdGlvbikgKG9yIG9sZC1jb21tLWluZGVudAorCQkJCQkJICAgICAgY29tbWVudC1j b2x1bW4pKQogCQkJKHNldHEgb2xkLWNvbW0taW5kZW50IG5pbCkpKSkKLQkgICAgKGlmIChhbmQg b2xkLWNvbW0taW5kZW50CisJICAgICAgKGlmIChhbmQgb2xkLWNvbW0taW5kZW50CiAJCSAgICAg ICAobm90IGVtcHR5KQotCQkgICAgICg9IChjdXJyZW50LWluZGVudGF0aW9uKSBvbGQtY29tbS1p bmRlbnQpCisJCSAgICAgICAoPSAoY3VycmVudC1pbmRlbnRhdGlvbikgb2xkLWNvbW0taW5kZW50 KQogCQkgICAgICAgKG5vdCAoZXEgKGdldC10ZXh0LXByb3BlcnR5IChwb2ludCkgJ3N5bnRheC10 eXBlKSAncG9kKSkKIAkJICAgICAgIChub3QgKGVxIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQp ICdzeW50YXgtdGFibGUpCiAJCQkJY3Blcmwtc3QtY2ZlbmNlKSkpCi0JCShsZXQgKChjb21tZW50 LWNvbHVtbiBuZXctY29tbS1pbmRlbnQpKQotCQkgIChpbmRlbnQtZm9yLWNvbW1lbnQpKSkKLQkg IChwcm9nbgorCQkgIChsZXQgKChjb21tZW50LWNvbHVtbiBuZXctY29tbS1pbmRlbnQpKQorCQkg ICAgKGluZGVudC1mb3ItY29tbWVudCkpKQorCSAgICAocHJvZ24KIAkgICAgICAoc2V0cSBpIChj cGVybC1pbmRlbnQtbGluZSBpbmRlbnQtaW5mbykpCi0JICAgIChvciBjb21tCi0JCShub3QgaSkK LQkJKHByb2duCi0JCSAgKGlmIGNwZXJsLWluZGVudC1yZWdpb24tZml4LWNvbnN0cnVjdHMKKwkg ICAgICAob3IgY29tbQorCQkgIChub3QgaSkKKwkJICAocHJvZ24KKwkJICAgIChpZiBjcGVybC1p bmRlbnQtcmVnaW9uLWZpeC1jb25zdHJ1Y3RzCiAJCQkoZ290by1jaGFyIChjcGVybC1maXgtbGlu ZS1zcGFjaW5nIGVuZCBpbmRlbnQtaW5mbykpKQotCQkgIChpZiAoc2V0cSBvbGQtY29tbS1pbmRl bnQKLQkJCSAgICAoYW5kIChjcGVybC10by1jb21tZW50LW9yLWVvbCkKLQkJCQkgKG5vdCAobWVt cSAoZ2V0LXRleHQtcHJvcGVydHkgKHBvaW50KQotCQkJCQkJCSAgICAgICAnc3ludGF4LXR5cGUp Ci0JCQkJCSAgICAnKHBvZCBoZXJlLWRvYykpKQorCQkgICAgKGlmIChzZXRxIG9sZC1jb21tLWlu ZGVudAorCQkJICAgICAgKGFuZCAoY3BlcmwtdG8tY29tbWVudC1vci1lb2wpCisJCQkJICAgKG5v dCAobWVtcSAoZ2V0LXRleHQtcHJvcGVydHkgKHBvaW50KQorCQkJCQkJCQkgJ3N5bnRheC10eXBl KQorCQkJCQkgICAgICAnKHBvZCBoZXJlLWRvYykpKQogCQkJCSAgIChub3QgKGVxIChnZXQtdGV4 dC1wcm9wZXJ0eSAocG9pbnQpCiAJCQkJCQkJICAgICAgICdzeW50YXgtdGFibGUpCiAJCQkJCSAg ICBjcGVybC1zdC1jZmVuY2UpKQotCQkJCSAoY3VycmVudC1jb2x1bW4pKSkKLQkJICAgICAgKHBy b2duIChpbmRlbnQtZm9yLWNvbW1lbnQpCi0JCQkgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIg XHQiKQotCQkJICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIyIpCi0JCQkgICAgIChzZXRxIG5l dy1jb21tLWluZGVudCAoY3VycmVudC1jb2x1bW4pKSkpKSkpKQotCShiZWdpbm5pbmctb2YtbGlu ZSAyKSkKKwkJCQkgICAoY3VycmVudC1jb2x1bW4pKSkKKwkJCShwcm9nbiAoaW5kZW50LWZvci1j b21tZW50KQorCQkJICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorCQkJICAgICAg IChza2lwLWNoYXJzLWJhY2t3YXJkICIjIikKKwkJCSAgICAgICAoc2V0cSBuZXctY29tbS1pbmRl bnQgKGN1cnJlbnQtY29sdW1uKSkpKSkpKSkKKwkgIChiZWdpbm5pbmctb2YtbGluZSAyKSkKICAg ICAgIAkoaWYgKGZib3VuZHAgJ2ltZW51LXByb2dyZXNzLW1lc3NhZ2UpCi0JICAgICAoaW1lbnUt cHJvZ3Jlc3MtbWVzc2FnZSBwbSAxMDApCisJICAgIChpbWVudS1wcm9ncmVzcy1tZXNzYWdlIHBt IDEwMCkKIAkgIChtZXNzYWdlIG5pbCkpKQogICAgICAgOzsgTm93IHJ1biB0aGUgdXBkYXRlIGhv b2tzCi0gICAgICAoaWYgYWZ0ZXItY2hhbmdlLWZ1bmN0aW9ucwotCSAgKHNhdmUtZXhjdXJzaW9u Ci0JICAgIChpZiBjcGVybC11cGRhdGUtZW5kCi0JCShwcm9nbgotCQkgIChnb3RvLWNoYXIgY3Bl cmwtdXBkYXRlLWVuZCkKLQkJICAoaW5zZXJ0ICIgIikKLQkJICAoZGVsZXRlLWNoYXIgLTEpCi0J CSAgKGdvdG8tY2hhciBjcGVybC11cGRhdGUtc3RhcnQpCi0JCSAgKGluc2VydCAiICIpCi0JCSAg KGRlbGV0ZS1jaGFyIC0xKSkpKSkpKSkKKyAgICAgIChhbmQgYWZ0ZXItY2hhbmdlLWZ1bmN0aW9u cworCSAgIGNwZXJsLXVwZGF0ZS1lbmQKKwkgICAocHJvZ24KKwkgICAgIChnb3RvLWNoYXIgY3Bl cmwtdXBkYXRlLWVuZCkKKwkgICAgIChpbnNlcnQgIiAiKQorCSAgICAgKGRlbGV0ZS1jaGFyIC0x KQorCSAgICAgKGdvdG8tY2hhciBjcGVybC11cGRhdGUtc3RhcnQpCisJICAgICAoaW5zZXJ0ICIg IikKKwkgICAgIChkZWxldGUtY2hhciAtMSkpKSkpKQogCiA7OyBTdG9sZW4gZnJvbSBsaXNwLW1v ZGUgd2l0aCBhIGxvdCBvZiBpbXByb3ZlbWVudHMKIApAQCAtNDE0Niw4ICs0MTI2LDcgQEAKIGJs b2NrIG9mIGl0IHRoYXQgcG9pbnQgaXMgaW4sIHByZXNlcnZpbmcgdGhlIGNvbW1lbnQncyBpbml0 aWFsCiBpbmRlbnRhdGlvbiBhbmQgaW5pdGlhbCBoYXNoZXMuICBCZWhhdmVzIHVzdWFsbHkgb3V0 c2lkZSBvZiBjb21tZW50LiIKICAgKGludGVyYWN0aXZlICJQIikKLSAgKGxldCAoCi0JOzsgTm9u LW5pbCBpZiB0aGUgY3VycmVudCBsaW5lIGNvbnRhaW5zIGEgY29tbWVudC4KKyAgKGxldCAoOzsg Tm9uLW5pbCBpZiB0aGUgY3VycmVudCBsaW5lIGNvbnRhaW5zIGEgY29tbWVudC4KIAloYXMtY29t bWVudAogCiAJOzsgSWYgaGFzLWNvbW1lbnQsIHRoZSBhcHByb3ByaWF0ZSBmaWxsLXByZWZpeCBm b3IgdGhlIGNvbW1lbnQuCkBAIC00MTgzLDcgKzQxNjIsNyBAQAogCShkZWxldGUtY2hhciBsZW4p CiAJKGluc2VydCAobWFrZS1zdHJpbmcgZGMgPy0pKSkpKQogICAgIChpZiAobm90IGhhcy1jb21t ZW50KQotCShmaWxsLXBhcmFncmFwaCBqdXN0aWZ5KQk7IERvIHRoZSB1c3VhbCB0aGluZyBvdXRz aWRlIG9mIGNvbW1lbnQKKwkoZmlsbC1wYXJhZ3JhcGgganVzdGlmeSkgICAgICAgOyBEbyB0aGUg dXN1YWwgdGhpbmcgb3V0c2lkZSBvZiBjb21tZW50CiAgICAgICA7OyBOYXJyb3cgdG8gaW5jbHVk ZSBvbmx5IHRoZSBjb21tZW50LCBhbmQgdGhlbiBmaWxsIHRoZSByZWdpb24uCiAgICAgICAoc2F2 ZS1yZXN0cmljdGlvbgogCShuYXJyb3ctdG8tcmVnaW9uCkBAIC00MjE3LDcgKzQxOTYsNyBAQAog CSAgKHByb2duCiAJICAgIChnb3RvLWNoYXIgc3RhcnQpCiAJICAgIChpZiAoPiBkYyAwKQotCSAg ICAgIChwcm9nbiAoZGVsZXRlLWNoYXIgZGMpIChpbnNlcnQgc3BhY2VzKSkpCisJCShwcm9nbiAo ZGVsZXRlLWNoYXIgZGMpIChpbnNlcnQgc3BhY2VzKSkpCiAJICAgIChpZiAob3IgKD0gKGN1cnJl bnQtY29sdW1uKSBjKSBpdGVyYXRpb24pIG5pbAogCSAgICAgIChzZXRxIGNvbW1lbnQtY29sdW1u IGMpCiAJICAgICAgKGluZGVudC1mb3ItY29tbWVudCkKQEAgLTQyMzAsMjIgKzQyMDksMjIgQEAK IAkgICAoZW5kLW9mLWxpbmUpCiAJICAgKGN1cnJlbnQtY29sdW1uKSkKIAkgZmlsbC1jb2x1bW4p Ci0gIChsZXQgKChjIChzYXZlLWV4Y3Vyc2lvbiAoYmVnaW5uaW5nLW9mLWxpbmUpCi0JCQkgICAo Y3BlcmwtdG8tY29tbWVudC1vci1lb2wpIChwb2ludCkpKQotCShzIChtZW1xIChmb2xsb3dpbmct Y2hhcikgJyg/XCA/XHQpKSkgbWFya2VyKQotICAgIChpZiAoPj0gYyAocG9pbnQpKSBuaWwKLSAg ICAgIChzZXRxIG1hcmtlciAocG9pbnQtbWFya2VyKSkKLSAgICAgIChjcGVybC1maWxsLXBhcmFn cmFwaCkKLSAgICAgIChnb3RvLWNoYXIgbWFya2VyKQotICAgICAgOzsgSXMgbm90IGVub3VnaCwg c29tZXRpbWVzIG1hcmtlciBpcyBhIHN0YXJ0IG9mIGxpbmUKLSAgICAgIChpZiAoYm9scCkgKHBy b2duIChyZS1zZWFyY2gtZm9yd2FyZCAiIytbIFx0XSoiKQotCQkJKGdvdG8tY2hhciAobWF0Y2gt ZW5kIDApKSkpCi0gICAgICA7OyBGb2xsb3dpbmcgc3BhY2UgY291bGQgaGF2ZSBnb25lOgotICAg ICAgKGlmIChvciAobm90IHMpIChtZW1xIChmb2xsb3dpbmctY2hhcikgJyg/XCA/XHQpKSkgbmls Ci0JKGluc2VydCAiICIpCi0JKGJhY2t3YXJkLWNoYXIgMSkpCi0gICAgICA7OyBQcmV2aW91cyBz cGFjZSBjb3VsZCBoYXZlIGdvbmU6Ci0gICAgICAob3IgKG1lbXEgKHByZWNlZGluZy1jaGFyKSAn KD9cID9cdCkpIChpbnNlcnQgIiAiKSkpKSkpCisgICAgICAobGV0ICgoYyAoc2F2ZS1leGN1cnNp b24gKGJlZ2lubmluZy1vZi1saW5lKQorCQkJICAgICAgIChjcGVybC10by1jb21tZW50LW9yLWVv bCkgKHBvaW50KSkpCisJICAgIChzIChtZW1xIChmb2xsb3dpbmctY2hhcikgJyg/XCA/XHQpKSkg bWFya2VyKQorCShpZiAoPj0gYyAocG9pbnQpKSBuaWwKKwkgIChzZXRxIG1hcmtlciAocG9pbnQt bWFya2VyKSkKKwkgIChjcGVybC1maWxsLXBhcmFncmFwaCkKKwkgIChnb3RvLWNoYXIgbWFya2Vy KQorCSAgOzsgSXMgbm90IGVub3VnaCwgc29tZXRpbWVzIG1hcmtlciBpcyBhIHN0YXJ0IG9mIGxp bmUKKwkgIChpZiAoYm9scCkgKHByb2duIChyZS1zZWFyY2gtZm9yd2FyZCAiIytbIFx0XSoiKQor CQkJICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkpKQorCSAgOzsgRm9sbG93aW5nIHNwYWNl IGNvdWxkIGhhdmUgZ29uZToKKwkgIChpZiAob3IgKG5vdCBzKSAobWVtcSAoZm9sbG93aW5nLWNo YXIpICcoP1wgP1x0KSkpIG5pbAorCSAgICAoaW5zZXJ0ICIgIikKKwkgICAgKGJhY2t3YXJkLWNo YXIgMSkpCisJICA7OyBQcmV2aW91cyBzcGFjZSBjb3VsZCBoYXZlIGdvbmU6CisJICAob3IgKG1l bXEgKHByZWNlZGluZy1jaGFyKSAnKD9cID9cdCkpIChpbnNlcnQgIiAiKSkpKSkpCiAKIChkZWZ1 biBjcGVybC1pbWVudS1hZGRiYWNrIChsc3QgJm9wdGlvbmFsIGlzYmFjayBuYW1lKQogICA7OyBX ZSBzdXBwb3NlIHRoYXQgdGhlIGxzdCBpcyBhIERBRywgdW5sZXNzIHRoZSBmaXJzdCBlbGVtZW50 IG9ubHkKQEAgLTQyNTUsMTUgKzQyMzQsMTQgQEAKIAkodAogCSAob3IgbmFtZQogCSAgICAgKHNl dHEgbmFtZSAiKysrQkFDSysrKyIpKQotCSAobWFwY2FyIChmdW5jdGlvbiAobGFtYmRhIChlbHQp Ci0JCQkgICAgIChpZiAoYW5kIChsaXN0cCBlbHQpIChsaXN0cCAoY2RyIGVsdCkpKQotCQkJCSAo cHJvZ24KLQkJCQkgICA7OyBJbiB0aGUgb3RoZXIgb3JkZXIgaXQgZ29lcyB1cAotCQkJCSAgIDs7 IG9uZSBsZXZlbCBvbmx5IDstKAotCQkJCSAgIChzZXRjZHIgZWx0IChjb25zIChjb25zIG5hbWUg bHN0KQotCQkJCQkJICAgICAoY2RyIGVsdCkpKQotCQkJCSAgIChjcGVybC1pbWVudS1hZGRiYWNr IChjZHIgZWx0KSB0IG5hbWUpCi0JCQkJICAgKSkpKQorCSAobWFwY2FyIChsYW1iZGEgKGVsdCkK KwkJICAgKGlmIChhbmQgKGxpc3RwIGVsdCkgKGxpc3RwIChjZHIgZWx0KSkpCisJCSAgICAgICAo cHJvZ24KKwkJCSA7OyBJbiB0aGUgb3RoZXIgb3JkZXIgaXQgZ29lcyB1cAorCQkJIDs7IG9uZSBs ZXZlbCBvbmx5IDstKAorCQkJIChzZXRjZHIgZWx0IChjb25zIChjb25zIG5hbWUgbHN0KQorCQkJ CQkgICAoY2RyIGVsdCkpKQorCQkJIChjcGVybC1pbWVudS1hZGRiYWNrIChjZHIgZWx0KSB0IG5h bWUpKSkpCiAJCSAoaWYgaXNiYWNrIChjZHIgbHN0KSBsc3QpKQogCSBsc3QpKSkKIApAQCAtNDI5 MSw3ICs0MjY5LDcgQEAKIAkgICAobWF0Y2gtYmVnaW5uaW5nIDIpCQk7IHBhY2thZ2Ugb3Igc3Vi CiAJICAgKGVxIChjaGFyLWFmdGVyIChtYXRjaC1iZWdpbm5pbmcgMikpID9wKSA7IHBhY2thZ2UK IAkgICAobm90IChzYXZlLW1hdGNoLWRhdGEKLQkJICAobG9va2luZy1hdCAiWyBcdFxuXSo7Iikp KSkgIDsgUGxhaW4gdGV4dCB3b3JkICdwYWNrYWdlJworCQkgIChsb29raW5nLWF0ICJbIFx0XG5d KjsiKSkpKSA7IFBsYWluIHRleHQgd29yZCAncGFja2FnZScKIAkgIG5pbCkKIAkgKChhbmQKIAkg ICAobWF0Y2gtYmVnaW5uaW5nIDIpCQk7IHBhY2thZ2Ugb3Igc3ViCkBAIC00MzAxLDggKzQyNzks NyBAQAogCSAgIChudWxsIChnZXQtdGV4dC1wcm9wZXJ0eSAobWF0Y2gtYmVnaW5uaW5nIDEpICdp bi1wb2QpKSkKIAkgIChzYXZlLWV4Y3Vyc2lvbgogCSAgICAoZ290by1jaGFyIChtYXRjaC1iZWdp bm5pbmcgMikpCi0JICAgIChzZXRxIGZjaGFyIChmb2xsb3dpbmctY2hhcikpCi0JICAgICkKKwkg ICAgKHNldHEgZmNoYXIgKGZvbGxvd2luZy1jaGFyKSkpCiAJICA7OyAoaWYgKGxvb2tpbmctYXQg IihbXigpXSopWyBcdFxuXGZdKiIpCiAJICA7OyAgICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkp KQk7IE1lc3NlcyB3aGF0IGZvbGxvd3MKIAkgIChzZXRxIGNoYXIgKGZvbGxvd2luZy1jaGFyKQk7 ID9cOyBmb3IgInN1YiBmb28gKCkgOyIKQEAgLTQzNDUsNyArNDMyMiw3IEBACiAJICAgICAgKHB1 c2ggaW5kZXggaW5kZXgtYWxpc3QpKQogCSAgICAoaWYgbWV0aCAocHVzaCBpbmRleCBpbmRleC1t ZXRoLWFsaXN0KSkKIAkgICAgKHB1c2ggaW5kZXggaW5kZXgtdW5zb3J0ZWQtYWxpc3QpKSkKLQkg KChtYXRjaC1iZWdpbm5pbmcgNSkJCTsgUG9kIHNlY3Rpb24KKwkgKChtYXRjaC1iZWdpbm5pbmcg NSkJCTsgUE9EIHNlY3Rpb24KIAkgIDs7IChiZWdpbm5pbmctb2YtbGluZSkKIAkgIChzZXRxIGlu ZGV4IChpbWVudS1leGFtcGxlLS1uYW1lLWFuZC1wb3NpdGlvbikKIAkJbmFtZSAoYnVmZmVyLXN1 YnN0cmluZyAobWF0Y2gtYmVnaW5uaW5nIDYpIChtYXRjaC1lbmQgNikpKQpAQCAtNDM2MSw3ICs0 MzM4LDcgQEAKICAgICAoc2V0cSBpbmRleC1hbGlzdAogCSAgKGlmIChkZWZhdWx0LXZhbHVlICdp bWVudS1zb3J0LWZ1bmN0aW9uKQogCSAgICAgIChzb3J0IGluZGV4LWFsaXN0IChkZWZhdWx0LXZh bHVlICdpbWVudS1zb3J0LWZ1bmN0aW9uKSkKLQkgICAgICAobnJldmVyc2UgaW5kZXgtYWxpc3Qp KSkKKwkgICAgKG5yZXZlcnNlIGluZGV4LWFsaXN0KSkpCiAgICAgKGFuZCBpbmRleC1wb2QtYWxp c3QKIAkgKHB1c2ggKGNvbnMgIitQT0QgaGVhZGVycysuLi4iCiAJCSAgICAgKG5yZXZlcnNlIGlu ZGV4LXBvZC1hbGlzdCkpCkBAIC00NDM3LDkgKzQ0MTQsOSBAQAogCiAoaWYgKGZib3VuZHAgJ2V2 YWwtYWZ0ZXItbG9hZCkKICAgICAoZXZhbC1hZnRlci1sb2FkCi0gICAgICJtb2RlLWNvbXBpbGUi Ci0gICAgICcoc2V0cSBwZXJsLWNvbXBpbGF0aW9uLWVycm9yLXJlZ2V4cC1hbGlzdAotCSAgIGNw ZXJsLWNvbXBpbGF0aW9uLWVycm9yLXJlZ2V4cC1hbGlzdCkpKQorCSJtb2RlLWNvbXBpbGUiCisg ICAgICAnKHNldHEgcGVybC1jb21waWxhdGlvbi1lcnJvci1yZWdleHAtYWxpc3QKKwkgICAgIGNw ZXJsLWNvbXBpbGF0aW9uLWVycm9yLXJlZ2V4cC1hbGlzdCkpKQogCiAKIChkZWZ1biBjcGVybC13 aW5kb3dlZC1pbml0ICgpCkBAIC00NDQ4LDE1ICs0NDI1LDE0IEBACiAgICAgICA7OyBOZWVkIHRv IGluaXQgYW55d2F5OgogICAgICAgKG9yIGNwZXJsLWZhY2VzLWluaXQgKGNwZXJsLWluaXQtZmFj ZXMpKQogICAgIChhZGQtaG9vayAnZm9udC1sb2NrLW1vZGUtaG9vawotCSAgICAgIChmdW5jdGlv bgotCSAgICAgICAobGFtYmRhICgpCi0JCSAoaWYgKG1lbXEgbWFqb3ItbW9kZSAnKHBlcmwtbW9k ZSBjcGVybC1tb2RlKSkKLQkJICAgICAocHJvZ24KLQkJICAgICAgIChvciBjcGVybC1mYWNlcy1p bml0IChjcGVybC1pbml0LWZhY2VzKSkpKSkpKQorCSAgICAgIChsYW1iZGEgKCkKKwkJKGlmICht ZW1xIG1ham9yLW1vZGUgJyhwZXJsLW1vZGUgY3BlcmwtbW9kZSkpCisJCSAgICAocHJvZ24KKwkJ ICAgICAgKG9yIGNwZXJsLWZhY2VzLWluaXQgKGNwZXJsLWluaXQtZmFjZXMpKSkpKSkKICAgICAo aWYgKGZib3VuZHAgJ2V2YWwtYWZ0ZXItbG9hZCkKIAkoZXZhbC1hZnRlci1sb2FkCi0JICJwcy1w cmludCIKLQkgJyhvciBjcGVybC1mYWNlcy1pbml0IChjcGVybC1pbml0LWZhY2VzKSkpKSkpCisJ ICAgICJwcy1wcmludCIKKwkgICcob3IgY3BlcmwtZmFjZXMtaW5pdCAoY3BlcmwtaW5pdC1mYWNl cykpKSkpKQogCiAoZGVmdmFyIGNwZXJsLWZvbnQtbG9jay1rZXl3b3Jkcy0xIG5pbAogICAiQWRk aXRpb25hbCBleHByZXNzaW9ucyB0byBoaWdobGlnaHQgaW4gUGVybCBtb2RlLiAgTWluaW1hbCBz ZXQuIikKQEAgLTQ2MzMsNyArNDYwOSw3IEBACiAJICAgICcoIltcWyBcdHssKF1cXCgtP1thLXpB LVowLTlfOl0rXFwpWyBcdF0qPT4iIDEKIAkgICAgICBmb250LWxvY2stc3RyaW5nLWZhY2UgdCkK IAkgICAgJygiXlsgXHRdKlxcKFthLXpBLVowLTlfXStbIFx0XSo6XFwpWyBcdF0qXFwoJFxcfHtc XHxcXDxcXCh1bnRpbFxcfHdoaWxlXFx8Zm9yXFwoZWFjaFxcKT9cXHxkb1xcKVxcPlxcKSIgMQot CSAgICAgIGZvbnQtbG9jay1jb25zdGFudC1mYWNlKSA7IGxhYmVscworCSAgICAgIGZvbnQtbG9j ay1jb25zdGFudC1mYWNlKQk7IGxhYmVscwogCSAgICAnKCJcXDxcXChjb250aW51ZVxcfG5leHRc XHxsYXN0XFx8cmVkb1xcfGdvdG9cXClcXD5bIFx0XStcXChbYS16QS1aMC05XzpdK1xcKSIgOyBs YWJlbHMgYXMgdGFyZ2V0cwogCSAgICAgIDIgZm9udC1sb2NrLWNvbnN0YW50LWZhY2UpCiAJICAg IDs7IFVuY29tbWVudCB0byBnZXQgcGVybC1tb2RlLWxpa2UgdmFycwpAQCAtNDY2MSw3ICs0NjM3 LDcgQEAKIAkgIChzZXRxCiAJICAgdC1mb250LWxvY2sta2V5d29yZHMtMQogCSAgIChhbmQgKGZi b3VuZHAgJ3R1cm4tb24tZm9udC1sb2NrKSA7IENoZWNrIGZvciBuZXdlciBmb250LWxvY2sKLQkJ KG5vdCBjcGVybC14ZW1hY3MtcCkgOyBub3QgeWV0IGFzIG9mIFhFbWFjcyAxOS4xMgorCQkobm90 IGNwZXJsLXhlbWFjcy1wKQk7IG5vdCB5ZXQgYXMgb2YgWEVtYWNzIDE5LjEyCiAJCScoCiAJCSAg KCJcXChcXChbQCVdXFx8XCQjXFwpW2EtekEtWl86XVthLXpBLVowLTlfOl0qXFwpIiAxCiAJCSAg IChpZiAoZXEgKGNoYXItYWZ0ZXIgKG1hdGNoLWJlZ2lubmluZyAyKSkgPyUpCkBAIC00Njk2LDkw ICs0NjcyLDg3IEBACiAJCSAgdC1mb250LWxvY2sta2V5d29yZHMpCiAJCWNwZXJsLWZvbnQtbG9j ay1rZXl3b3JkcyBjcGVybC1mb250LWxvY2sta2V5d29yZHMtMQogCQljcGVybC1mb250LWxvY2st a2V5d29yZHMtMiAoYXBwZW5kCi0JCQkJCSAgIGNwZXJsLWZvbnQtbG9jay1rZXl3b3Jkcy0xCi0J CQkJCSAgIHQtZm9udC1sb2NrLWtleXdvcmRzLTEpKSkKKwkJCQkJICAgIGNwZXJsLWZvbnQtbG9j ay1rZXl3b3Jkcy0xCisJCQkJCSAgICB0LWZvbnQtbG9jay1rZXl3b3Jkcy0xKSkpCiAJKGlmIChm Ym91bmRwICdwcy1wcmludC1idWZmZXIpIChjcGVybC1wcy1wcmludC1pbml0KSkKIAkoaWYgKG9y IChmZWF0dXJlcCAnY2hvb3NlLWNvbG9yKSAoZmVhdHVyZXAgJ2ZvbnQtbG9jay1leHRyYSkpCiAJ ICAgIChldmFsCQkJOyBBdm9pZCBhIHdhcm5pbmcKLQkgICAgJyhmb250LWxvY2stcmVxdWlyZS1m YWNlcwotCSAgICAgKGxpc3QKLQkgICAgICA7OyBDb2xvci1saWdodCAgICBDb2xvci1kYXJrICAg ICAgR3JheS1saWdodCAgICAgIEdyYXktZGFyayBNb25vCi0JICAgICAgKGxpc3QgJ2ZvbnQtbG9j ay1jb21tZW50LWZhY2UKLQkJICAgIFsiRmlyZWJyaWNrIgkiT3JhbmdlUmVkIiAJIkRpbUdyYXki CSJHcmF5ODAiXQotCQkgICAgbmlsCi0JCSAgICBbbmlsCQluaWwJCXQJCXQJdF0KLQkJICAgIFtu aWwJCW5pbAkJdAkJdAl0XQotCQkgICAgbmlsKQotCSAgICAgIChsaXN0ICdmb250LWxvY2stc3Ry aW5nLWZhY2UKLQkJICAgIFsiUm9zeUJyb3duIgkiTGlnaHRTYWxtb24iIAkiR3JheTUwIgkiTGln aHRHcmF5Il0KLQkJICAgIG5pbAotCQkgICAgbmlsCi0JCSAgICBbbmlsCQluaWwJCXQJCXQJdF0K LQkJICAgIG5pbCkKLQkgICAgICAobGlzdCAnZm9udC1sb2NrLWZ1bmN0aW9uLW5hbWUtZmFjZQot CQkgICAgKHZlY3RvcgotCQkgICAgICJCbHVlIgkJIkxpZ2h0U2t5Qmx1ZSIJIkdyYXk1MCIJIkxp Z2h0R3JheSIKLQkJICAgICAoY2RyIChhc3NxICdiYWNrZ3JvdW5kLWNvbG9yIDsgaWYgbW9ubwot CQkJCShmcmFtZS1wYXJhbWV0ZXJzKSkpKQotCQkgICAgKHZlY3RvcgotCQkgICAgIG5pbAkJbmls CQluaWwJCW5pbAotCQkgICAgIChjZHIgKGFzc3EgJ2ZvcmVncm91bmQtY29sb3IgOyBpZiBtb25v Ci0JCQkJKGZyYW1lLXBhcmFtZXRlcnMpKSkpCi0JCSAgICBbbmlsCQluaWwJCXQJCXQJdF0KLQkJ ICAgIG5pbAotCQkgICAgbmlsKQotCSAgICAgIChsaXN0ICdmb250LWxvY2stdmFyaWFibGUtbmFt ZS1mYWNlCi0JCSAgICBbIkRhcmtHb2xkZW5yb2QiCSJMaWdodEdvbGRlbnJvZCIgIkRpbUdyYXki CSJHcmF5OTAiXQotCQkgICAgbmlsCi0JCSAgICBbbmlsCQluaWwJCXQJCXQJdF0KLQkJICAgIFtu aWwJCW5pbAkJdAkJdAl0XQotCQkgICAgbmlsKQotCSAgICAgIChsaXN0ICdmb250LWxvY2stdHlw ZS1mYWNlCi0JCSAgICBbIkRhcmtPbGl2ZUdyZWVuIgkiUGFsZUdyZWVuIiAJIkRpbUdyYXkiCSJH cmF5ODAiXQotCQkgICAgbmlsCi0JCSAgICBbbmlsCQluaWwJCXQJCXQJdF0KLQkJICAgIG5pbAot CQkgICAgW25pbAkJbmlsCQl0CQl0CXRdCi0JCSAgICApCi0JICAgICAgKGxpc3QgJ2ZvbnQtbG9j ay1jb25zdGFudC1mYWNlCi0JCSAgICBbIkNhZGV0Qmx1ZSIJIkFxdWFtYXJpbmUiIAkiR3JheTUw IgkiTGlnaHRHcmF5Il0KLQkJICAgIG5pbAotCQkgICAgW25pbAkJbmlsCQl0CQl0CXRdCi0JCSAg ICBuaWwKLQkJICAgIFtuaWwJCW5pbAkJdAkJdAl0XQotCQkgICAgKQotCSAgICAgIChsaXN0ICdj cGVybC1ub25vdmVycmlkYWJsZS1mYWNlCi0JCSAgICBbImNoYXJ0cmV1c2UzIgkoIm9yY2hpZDEi ICJvcmFuZ2UiKQotCQkgICAgIG5pbAkJIkdyYXk4MCJdCi0JCSAgICBbbmlsCQluaWwJCSJncmF5 OTAiXQotCQkgICAgW25pbAkJbmlsCQluaWwJCXQJdF0KLQkJICAgIFtuaWwJCW5pbAkJdAkJdF0K LQkJICAgIFtuaWwJCW5pbAkJdAkJdAl0XQotCQkgICAgKQotCSAgICAgIChsaXN0ICdjcGVybC1h cnJheS1mYWNlCi0JCSAgICBbImJsdWUiCQkieWVsbG93IiAJbmlsCQkiR3JheTgwIl0KLQkJICAg IFsibGlnaHR5ZWxsb3cyIgkoIm5hdnkiICJvczJibHVlIiAiZGFya2dyZWVuIikKLQkJICAgICAi Z3JheTkwIl0KLQkJICAgIHQKLQkJICAgIG5pbAotCQkgICAgbmlsKQotCSAgICAgIChsaXN0ICdj cGVybC1oYXNoLWZhY2UKLQkJICAgIFsicmVkIgkJInJlZCIJIAluaWwJCSJHcmF5ODAiXQotCQkg ICAgWyJsaWdodHllbGxvdzIiCSgibmF2eSIgIm9zMmJsdWUiICJkYXJrZ3JlZW4iKQotCQkgICAg ICJncmF5OTAiXQotCQkgICAgdAotCQkgICAgdAotCQkgICAgbmlsKSkpKQorCSAgICAgJyhmb250 LWxvY2stcmVxdWlyZS1mYWNlcworCSAgICAgICAobGlzdAorCQk7OyBDb2xvci1saWdodCAgICBD b2xvci1kYXJrICAgICAgR3JheS1saWdodCAgICAgIEdyYXktZGFyayBNb25vCisJCShsaXN0ICdm b250LWxvY2stY29tbWVudC1mYWNlCisJCSAgICAgIFsiRmlyZWJyaWNrIgkiT3JhbmdlUmVkIiAJ IkRpbUdyYXkiCSJHcmF5ODAiXQorCQkgICAgICBuaWwKKwkJICAgICAgW25pbAkJbmlsCQl0CQl0 CXRdCisJCSAgICAgIFtuaWwJCW5pbAkJdAkJdAl0XQorCQkgICAgICBuaWwpCisJCShsaXN0ICdm b250LWxvY2stc3RyaW5nLWZhY2UKKwkJICAgICAgWyJSb3N5QnJvd24iCSJMaWdodFNhbG1vbiIg CSJHcmF5NTAiCSJMaWdodEdyYXkiXQorCQkgICAgICBuaWwKKwkJICAgICAgbmlsCisJCSAgICAg IFtuaWwJCW5pbAkJdAkJdAl0XQorCQkgICAgICBuaWwpCisJCShsaXN0ICdmb250LWxvY2stZnVu Y3Rpb24tbmFtZS1mYWNlCisJCSAgICAgICh2ZWN0b3IKKwkJICAgICAgICJCbHVlIgkJIkxpZ2h0 U2t5Qmx1ZSIJIkdyYXk1MCIJIkxpZ2h0R3JheSIKKwkJICAgICAgIChjZHIgKGFzc3EgJ2JhY2tn cm91bmQtY29sb3IgOyBpZiBtb25vCisJCQkJICAoZnJhbWUtcGFyYW1ldGVycykpKSkKKwkJICAg ICAgKHZlY3RvcgorCQkgICAgICAgbmlsCQluaWwJCW5pbAkJbmlsCisJCSAgICAgICAoY2RyIChh c3NxICdmb3JlZ3JvdW5kLWNvbG9yIDsgaWYgbW9ubworCQkJCSAgKGZyYW1lLXBhcmFtZXRlcnMp KSkpCisJCSAgICAgIFtuaWwJCW5pbAkJdAkJdAl0XQorCQkgICAgICBuaWwKKwkJICAgICAgbmls KQorCQkobGlzdCAnZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZQorCQkgICAgICBbIkRhcmtH b2xkZW5yb2QiCSJMaWdodEdvbGRlbnJvZCIgIkRpbUdyYXkiCSJHcmF5OTAiXQorCQkgICAgICBu aWwKKwkJICAgICAgW25pbAkJbmlsCQl0CQl0CXRdCisJCSAgICAgIFtuaWwJCW5pbAkJdAkJdAl0 XQorCQkgICAgICBuaWwpCisJCShsaXN0ICdmb250LWxvY2stdHlwZS1mYWNlCisJCSAgICAgIFsi RGFya09saXZlR3JlZW4iCSJQYWxlR3JlZW4iIAkiRGltR3JheSIJIkdyYXk4MCJdCisJCSAgICAg IG5pbAorCQkgICAgICBbbmlsCQluaWwJCXQJCXQJdF0KKwkJICAgICAgbmlsCisJCSAgICAgIFtu aWwJCW5pbAkJdAkJdAl0XSkKKwkJKGxpc3QgJ2ZvbnQtbG9jay1jb25zdGFudC1mYWNlCisJCSAg ICAgIFsiQ2FkZXRCbHVlIgkiQXF1YW1hcmluZSIgCSJHcmF5NTAiCSJMaWdodEdyYXkiXQorCQkg ICAgICBuaWwKKwkJICAgICAgW25pbAkJbmlsCQl0CQl0CXRdCisJCSAgICAgIG5pbAorCQkgICAg ICBbbmlsCQluaWwJCXQJCXQJdF0pCisJCShsaXN0ICdjcGVybC1ub25vdmVycmlkYWJsZS1mYWNl CisJCSAgICAgIFsiY2hhcnRyZXVzZTMiCSgib3JjaGlkMSIgIm9yYW5nZSIpCisJCSAgICAgICBu aWwJCSJHcmF5ODAiXQorCQkgICAgICBbbmlsCQluaWwJCSJncmF5OTAiXQorCQkgICAgICBbbmls CQluaWwJCW5pbAkJdAl0XQorCQkgICAgICBbbmlsCQluaWwJCXQJCXRdCisJCSAgICAgIFtuaWwJ CW5pbAkJdAkJdAl0XSkKKwkJKGxpc3QgJ2NwZXJsLWFycmF5LWZhY2UKKwkJICAgICAgWyJibHVl IgkJInllbGxvdyIgCW5pbAkJIkdyYXk4MCJdCisJCSAgICAgIFsibGlnaHR5ZWxsb3cyIgkoIm5h dnkiICJvczJibHVlIiAiZGFya2dyZWVuIikKKwkJICAgICAgICJncmF5OTAiXQorCQkgICAgICB0 CisJCSAgICAgIG5pbAorCQkgICAgICBuaWwpCisJCShsaXN0ICdjcGVybC1oYXNoLWZhY2UKKwkJ ICAgICAgWyJyZWQiCQkicmVkIgkgCW5pbAkJIkdyYXk4MCJdCisJCSAgICAgIFsibGlnaHR5ZWxs b3cyIgkoIm5hdnkiICJvczJibHVlIiAiZGFya2dyZWVuIikKKwkJICAgICAgICJncmF5OTAiXQor CQkgICAgICB0CisJCSAgICAgIHQKKwkJICAgICAgbmlsKSkpKQogCSAgOzsgRG8gaXQgdGhlIGR1 bGwgd2F5LCB3aXRob3V0IGNob29zZS1jb2xvcgogCSAgKGRlZnZhciBjcGVybC1ndWVzc2VkLWJh Y2tncm91bmQgbmlsCiAJICAgICJEaXNwbGF5IGNoYXJhY3RlcmlzdGljcyBhcyBndWVzc2VkIGJ5 IGNwZXJsLiIpCi07OwkgIChvciAoZmJvdW5kcCAneC1jb2xvci1kZWZpbmVkLXApCi07OwkgICAg ICAoZGVmYWxpYXMgJ3gtY29sb3ItZGVmaW5lZC1wCi07OwkJKGNvbmQgKChmYm91bmRwICdjb2xv ci1kZWZpbmVkLXApICdjb2xvci1kZWZpbmVkLXApCi07OwkJICAgICAgOzsgWEVtYWNzID49IDE5 LjEyCi07OwkJICAgICAgKChmYm91bmRwICd2YWxpZC1jb2xvci1uYW1lLXApICd2YWxpZC1jb2xv ci1uYW1lLXApCi07OwkJICAgICAgOzsgWEVtYWNzIDE5LjExCi07OwkJICAgICAgKHQgJ3gtdmFs aWQtY29sb3ItbmFtZS1wKSkpKQorCSAgOzsJICAob3IgKGZib3VuZHAgJ3gtY29sb3ItZGVmaW5l ZC1wKQorCSAgOzsJICAgICAgKGRlZmFsaWFzICd4LWNvbG9yLWRlZmluZWQtcAorCSAgOzsJCShj b25kICgoZmJvdW5kcCAnY29sb3ItZGVmaW5lZC1wKSAnY29sb3ItZGVmaW5lZC1wKQorCSAgOzsJ CSAgICAgIDs7IFhFbWFjcyA+PSAxOS4xMgorCSAgOzsJCSAgICAgICgoZmJvdW5kcCAndmFsaWQt Y29sb3ItbmFtZS1wKSAndmFsaWQtY29sb3ItbmFtZS1wKQorCSAgOzsJCSAgICAgIDs7IFhFbWFj cyAxOS4xMQorCSAgOzsJCSAgICAgICh0ICd4LXZhbGlkLWNvbG9yLW5hbWUtcCkpKSkKIAkgIChj cGVybC1mb3JjZS1mYWNlIGZvbnQtbG9jay1jb25zdGFudC1mYWNlCiAJCQkgICAgIkZhY2UgZm9y IGNvbnN0YW50IGFuZCBsYWJlbCBuYW1lcyIpCiAJICAoY3BlcmwtZm9yY2UtZmFjZSBmb250LWxv Y2stdmFyaWFibGUtbmFtZS1mYWNlCkBAIC00ODQ2LDkgKzQ4MTksNyBAQAogCQkgKGlmIChib3Vu ZHAgJ2ZvbnQtbG9jay1iYWNrZ3JvdW5kLW1vZGUpCiAJCSAgICAgZm9udC1sb2NrLWJhY2tncm91 bmQtbW9kZQogCQkgICAnbGlnaHQpKQotCQkoZmFjZS1saXN0IChhbmQgKGZib3VuZHAgJ2ZhY2Ut bGlzdCkgKGZhY2UtbGlzdCkpKQotCQk7OyBjcGVybC1pcy1mYWNlCi0JCSkKKwkJKGZhY2UtbGlz dCAoYW5kIChmYm91bmRwICdmYWNlLWxpc3QpIChmYWNlLWxpc3QpKSkpCiA7Ozs7CSAgICAoZnNl dCAnY3BlcmwtaXMtZmFjZQogOzs7OwkJICAoY29uZCAoKGZib3VuZHAgJ2ZpbmQtZmFjZSkKIDs7 OzsJCQkgKHN5bWJvbC1mdW5jdGlvbiAnZmluZC1mYWNlKSkKQEAgLTQ4NjIsMTAgKzQ4MzMsOSBA QAogCQkgICdncmF5CiAJCWJhY2tncm91bmQpCiAJICAgICAgIkJhY2tncm91bmQgYXMgZ3Vlc3Nl ZCBieSBDUGVybCBtb2RlIikKLQkgICAgKGlmIChhbmQKLQkJIChub3QgKGNwZXJsLWlzLWZhY2Ug J2ZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkKLQkJIChjcGVybC1pcy1mYWNlICdmb250LWxvY2st cmVmZXJlbmNlLWZhY2UpKQotCSAgICAgIChjb3B5LWZhY2UgJ2ZvbnQtbG9jay1yZWZlcmVuY2Ut ZmFjZSAnZm9udC1sb2NrLWNvbnN0YW50LWZhY2UpKQorCSAgICAoYW5kIChub3QgKGNwZXJsLWlz LWZhY2UgJ2ZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkKKwkJIChjcGVybC1pcy1mYWNlICdmb250 LWxvY2stcmVmZXJlbmNlLWZhY2UpCisJCSAoY29weS1mYWNlICdmb250LWxvY2stcmVmZXJlbmNl LWZhY2UgJ2ZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkKIAkgICAgKGlmIChjcGVybC1pcy1mYWNl ICdmb250LWxvY2stdHlwZS1mYWNlKSBuaWwKIAkgICAgICAoY29weS1mYWNlICdkZWZhdWx0ICdm b250LWxvY2stdHlwZS1mYWNlKQogCSAgICAgIChjb25kCkBAIC01MDIzLDcgKzQ5OTMsNyBAQAog ICAgIGNwZXJsLWNvbnRpbnVlZC1zdGF0ZW1lbnQtb2Zmc2V0KSkKIAogKGRlZmNvbnN0IGNwZXJs LXN0eWxlLWFsaXN0Ci0gICcoKCJDUGVybCIgOyA9R05VIHdpdGhvdXQgZXh0cmEtbmV3bGluZS1i ZWZvcmUtYnJhY2UKKyAgJygoIkNQZXJsIgkJCSAgICAgOyA9R05VIHdpdGhvdXQgZXh0cmEtbmV3 bGluZS1iZWZvcmUtYnJhY2UKICAgICAgKGNwZXJsLWluZGVudC1sZXZlbCAgICAgICAgICAgICAg IC4gIDIpCiAgICAgIChjcGVybC1icmFjZS1vZmZzZXQgICAgICAgICAgICAgICAuICAwKQogICAg ICAoY3BlcmwtY29udGludWVkLWJyYWNlLW9mZnNldCAgICAgLiAgMCkKQEAgLTUwMzEsNyArNTAw MSw3IEBACiAgICAgIChjcGVybC1leHRyYS1uZXdsaW5lLWJlZm9yZS1icmFjZSAuICBuaWwpCiAg ICAgIChjcGVybC1tZXJnZS10cmFpbGluZy1lbHNlCSAgICAgICAuICB0KQogICAgICAoY3Blcmwt Y29udGludWVkLXN0YXRlbWVudC1vZmZzZXQgLiAgMikpCi0gICAgKCJQZXJsU3R5bGUiIDsgQ1Bl cmwgd2l0aCA0IGFzIGluZGVudAorICAgICgiUGVybFN0eWxlIgkJCTsgQ1Blcmwgd2l0aCA0IGFz IGluZGVudAogICAgICAoY3BlcmwtaW5kZW50LWxldmVsICAgICAgICAgICAgICAgLiAgNCkKICAg ICAgKGNwZXJsLWJyYWNlLW9mZnNldCAgICAgICAgICAgICAgIC4gIDApCiAgICAgIChjcGVybC1j b250aW51ZWQtYnJhY2Utb2Zmc2V0ICAgICAuICAwKQpAQCAtNTA5MywxNCArNTA2MywxMyBAQAog Q2hvc2luZyBcIkN1cnJlbnRcIiBzdHlsZSB3aWxsIG5vdCBjaGFuZ2Ugc3R5bGUsIHNvIHRoaXMg bWF5IGJlIHVzZWQgZm9yCiBzaWRlLWVmZmVjdCBvZiBtZW1vcml6aW5nIG9ubHkuIgogICAoaW50 ZXJhY3RpdmUKLSAgIChsZXQgKChsaXN0IChtYXBjYXIgKGZ1bmN0aW9uIChsYW1iZGEgKGVsdCkg KGxpc3QgKGNhciBlbHQpKSkpCisgICAobGV0ICgobGlzdCAobWFwY2FyIChsYW1iZGEgKGVsdCkg KGxpc3QgKGNhciBlbHQpKSkKIAkJICAgICAgIGNwZXJsLXN0eWxlLWFsaXN0KSkpCiAgICAgIChs aXN0IChjb21wbGV0aW5nLXJlYWQgIkVudGVyIHN0eWxlOiAiIGxpc3QgbmlsICdpbnNpc3QpKSkp CiAgIChvciBjcGVybC1vbGQtc3R5bGUKICAgICAgIChzZXRxIGNwZXJsLW9sZC1zdHlsZQotCSAg ICAobWFwY2FyIChmdW5jdGlvbgotCQkgICAgIChsYW1iZGEgKG5hbWUpCi0JCSAgICAgICAoY29u cyBuYW1lIChldmFsIG5hbWUpKSkpCisJICAgIChtYXBjYXIgKGxhbWJkYSAobmFtZSkKKwkJICAg ICAgKGNvbnMgbmFtZSAoZXZhbCBuYW1lKSkpCiAJCSAgICBjcGVybC1zdHlsZXMtZW50cmllcykp KQogICAobGV0ICgoc3R5bGUgKGNkciAoYXNzb2Mgc3R5bGUgY3Blcmwtc3R5bGUtYWxpc3QpKSkg c2V0dGluZyBzdHIgc3ltKQogICAgICh3aGlsZSBzdHlsZQpAQCAtNTE3MiwxMSArNTE0MSwxMSBA QAogICAoaW50ZXJhY3RpdmUKICAgIChsZXQqICgoZGVmYXVsdCAoY3Blcmwtd29yZC1hdC1wb2lu dCkpCiAJICAocmVhZCAocmVhZC1zdHJpbmcKLQkJICAgICAoZm9ybWF0ICJGaW5kIGRvYyBmb3Ig UGVybCBmdW5jdGlvbiAoZGVmYXVsdCAlcyk6ICIKLQkJCSAgICAgZGVmYXVsdCkpKSkKKwkJIChm b3JtYXQgIkZpbmQgZG9jIGZvciBQZXJsIGZ1bmN0aW9uIChkZWZhdWx0ICVzKTogIgorCQkJIGRl ZmF1bHQpKSkpCiAgICAgIChsaXN0IChpZiAoZXF1YWwgcmVhZCAiIikKLQkJICAgZGVmYXVsdAot CQkgcmVhZCkpKSkKKwkgICAgICAgZGVmYXVsdAorCSAgICAgcmVhZCkpKSkKIAogICAobGV0ICgo YnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpCiAJKGNtZC1kZXNjIChjb25jYXQgIl4iIChyZWdleHAt cXVvdGUgY29tbWFuZCkgIlteYS16QS1aXzAtOV0iKSkgOyAidHIvLy8iCkBAIC01MjM1LDggKzUy MDQsNyBAQAogCQkJIDs7IE5vbi1mdW5jdGlvbmluZyB1bmRlciBPUy8yOgogCQkJIChpZiAoZXEg Y2hhci1oZWlnaHQgMSkgKHNldHEgY2hhci1oZWlnaHQgMTgpKQogCQkJIDs7IFRpdGxlLCBtZW51 YmFyLCArIDIgZm9yIHNsYWNrCi0JCQkgKC0gKC8gKHgtZGlzcGxheS1waXhlbC1oZWlnaHQpIGNo YXItaGVpZ2h0KSA0KQotCQkJICkpCisJCQkgKC0gKC8gKHgtZGlzcGxheS1waXhlbC1oZWlnaHQp IGNoYXItaGVpZ2h0KSA0KSkpCiAJCSAoaWYgKD4gaGVpZ2h0IG1heC1oZWlnaHQpIChzZXRxIGhl aWdodCBtYXgtaGVpZ2h0KSkKIAkJIDs7KG1lc3NhZ2UgIndhcyAlcyBkb2luZyAlcyIgaW5paGVp Z2h0IGhlaWdodCkKIAkJIChpZiBub3QtbG9uZXIKQEAgLTUzNDMsNyArNTMxMSw3IEBACiAJICAg IChzZXRxIGUgKHBvaW50KSkKIAkgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIpCiAJICAg IChkZWxldGUtcmVnaW9uIChwb2ludCkgZSkKLQkgICAgKGluZGVudC10by1jb2x1bW4gY29sKTsg KG1ha2Utc3RyaW5nICgtIGNvbCAoY3VycmVudC1jb2x1bW4pKSA/XCApKQorCSAgICAoaW5kZW50 LXRvLWNvbHVtbiBjb2wpIDsgKG1ha2Utc3RyaW5nICgtIGNvbCAoY3VycmVudC1jb2x1bW4pKSA/ XCApKQogCSAgICAoYmVnaW5uaW5nLW9mLWxpbmUgMikKIAkgICAgKGFuZCAoPCAocG9pbnQpIGVu ZCkKIAkJIChyZS1zZWFyY2gtZm9yd2FyZCBzZWFyY2ggZW5kIHQpCkBAIC01NDU4LDcgKzU0MjYs NyBAQAogCShvciBub25pbnRlcmFjdGl2ZQogCSAgICAoaW1lbnUtcHJvZ3Jlc3MtbWVzc2FnZSBw cmV2LXBvcykpCiAJKGNvbmQKLQkgKChtYXRjaC1iZWdpbm5pbmcgMikJOyBTRUNUSU9OCisJICgo bWF0Y2gtYmVnaW5uaW5nIDIpCQk7IFNFQ1RJT04KIAkgIChzZXRxIHBhY2thZ2UgKGJ1ZmZlci1z dWJzdHJpbmcgKG1hdGNoLWJlZ2lubmluZyAyKSAobWF0Y2gtZW5kIDIpKSkKIAkgIChnb3RvLWNo YXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKIAkgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdCIpCkBA IC01NDkxLDExICs1NDU5LDExIEBACiAoZGVmdmFyIGNwZXJsLXVucmVhZGFibGUtb2sgbmlsKQog CiAoZGVmdW4gY3BlcmwtZmluZC10YWdzIChpZmlsZSB4cyB0b3BkaXIpCi0gIChsZXQgKGluZCAo YiAoZ2V0LWJ1ZmZlciBjcGVybC10bXAtYnVmZmVyKSkgbHN0IGVsdCBwb3MgcmV0IHJlbAotCSAg ICAoY3BlcmwtcG9kLWhlcmUtZm9udGlmeSBuaWwpIGYgZmlsZSkKKyAgKGxldCAoKGIgKGdldC1i dWZmZXIgY3BlcmwtdG1wLWJ1ZmZlcikpIGluZCBsc3QgZWx0IHBvcyByZXQgcmVsCisJKGNwZXJs LXBvZC1oZXJlLWZvbnRpZnkgbmlsKSBmIGZpbGUpCiAgICAgKHNhdmUtZXhjdXJzaW9uCiAgICAg ICAoaWYgYiAoc2V0LWJ1ZmZlciBiKQotCSAgKGNwZXJsLXNldHVwLXRtcC1idWYpKQorCShjcGVy bC1zZXR1cC10bXAtYnVmKSkKICAgICAgIChlcmFzZS1idWZmZXIpCiAgICAgICAoY29uZGl0aW9u LWNhc2UgZXJyCiAJICAoc2V0cSBmaWxlIChjYXIgKGluc2VydC1maWxlLWNvbnRlbnRzIGlmaWxl KSkpCkBAIC01NTA2LDcyICs1NDc0LDcxIEBACiAJCSAgIChlcnJvciAiQWJvcnRpbmc6IHVucmVh ZGFibGUgZmlsZSAlcyIgaWZpbGUpKSkpKQogICAgICAgKGlmIChub3QgZmlsZSkKIAkgIChtZXNz YWdlICJVbnJlYWRhYmxlIGZpbGUgJXMiIGlmaWxlKQotICAgICAgKG1lc3NhZ2UgIlNjYW5uaW5n IGZpbGUgJXMgLi4uIiBmaWxlKQotICAgICAgKGlmIChhbmQgY3BlcmwtdXNlLXN5bnRheC10YWJs ZS10ZXh0LXByb3BlcnR5LWZvci10YWdzCi0JICAgICAgIChub3QgeHMpKQotCSAgKGNvbmRpdGlv bi1jYXNlIGVycgkJOyBhZnRlciBfX0VORF9fIG1heSBoYXZlIGdhcmJhZ2UKLQkgICAgICAoY3Bl cmwtZmluZC1wb2RzLWhlcmVzIG5pbCBuaWwgbm9uaW50ZXJhY3RpdmUpCi0JICAgIChlcnJvciAo bWVzc2FnZSAiV2hpbGUgc2Nhbm5pbmcgZm9yIHN5bnRheDogJXMiIGVycikpKSkKLSAgICAgIChp ZiB4cwotCSAgKHNldHEgbHN0IChjcGVybC14c3ViLXNjYW4pKQotCShzZXRxIGluZCAoY3Blcmwt aW1lbnUtLWNyZWF0ZS1wZXJsLWluZGV4KSkKLQkoc2V0cSBsc3QgKGNkciAoYXNzb2MgIitVbnNv cnRlZCBMaXN0Ky4uLiIgaW5kKSkpKQotICAgICAgKHNldHEgbHN0Ci0JICAgIChtYXBjYXIKLQkg ICAgIChmdW5jdGlvbgotCSAgICAgIChsYW1iZGEgKGVsdCkKLQkJKGNvbmQgKChzdHJpbmctbWF0 Y2ggIl5bX2EtekEtWl0iIChjYXIgZWx0KSkKLQkJICAgICAgIChnb3RvLWNoYXIgKGNkciBlbHQp KQotCQkgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKSA7IHBvcyBzaG91bGQgYmUgb2YgdGhlIHN0 YXJ0IG9mIHRoZSBsaW5lCi0JCSAgICAgICAobGlzdCAoY2FyIGVsdCkKLQkJCSAgICAgKHBvaW50 KQotCQkJICAgICAoMSsgKGNvdW50LWxpbmVzIDEgKHBvaW50KSkpIDsgMSsgc2luY2UgYXQgYmVn LW8tbAotCQkJICAgICAoYnVmZmVyLXN1YnN0cmluZyAocHJvZ24KLQkJCQkJCSAoZ290by1jaGFy IChjZHIgZWx0KSkKLQkJCQkJCSA7OyBBZnRlciBuYW1lIG5vdy4uLgotCQkJCQkJIChvciAoZW9s cCkgKGZvcndhcmQtY2hhciAxKSkKLQkJCQkJCSAocG9pbnQpKQotCQkJCQkgICAgICAgKHByb2du Ci0JCQkJCQkgKGJlZ2lubmluZy1vZi1saW5lKQotCQkJCQkJIChwb2ludCkpKSkpKSkpCi0JCSAg ICBsc3QpKQotICAgICAgKGVyYXNlLWJ1ZmZlcikKLSAgICAgICh3aGlsZSBsc3QKLQkoc2V0cSBl bHQgKGNhciBsc3QpIGxzdCAoY2RyIGxzdCkpCi0JKGlmIGVsdAotCSAgICAocHJvZ24KLQkgICAg ICAoaW5zZXJ0IChlbHQgZWx0IDMpCi0JCSAgICAgIDEyNwotCQkgICAgICAoaWYgKHN0cmluZy1t YXRjaCAiXnBhY2thZ2UgIiAoY2FyIGVsdCkpCi0JCQkgIChzdWJzdHJpbmcgKGNhciBlbHQpIDgp Ci0JCQkoY2FyIGVsdCkgKQotCQkgICAgICAxCi0JCSAgICAgIChudW1iZXItdG8tc3RyaW5nIChl bHQgZWx0IDIpKSA7IExpbmUKLQkJICAgICAgIiwiCi0JCSAgICAgIChudW1iZXItdG8tc3RyaW5n ICgxLSAoZWx0IGVsdCAxKSkpIDsgQ2hhciBwb3MgMC1iYXNlZAotCQkgICAgICAiXG4iKQotCSAg ICAgIChpZiAoYW5kIChzdHJpbmctbWF0Y2ggIl5bX2EtekEtWl0rOjoiIChjYXIgZWx0KSkKLQkJ ICAgICAgIChzdHJpbmctbWF0Y2ggIl5zdWJbIFx0XStcXChbX2EtekEtWl0rXFwpW146X2EtekEt Wl0iCi0JCQkJICAgICAoZWx0IGVsdCAzKSkpCi0JCSAgOzsgTmVlZCB0byBpbnNlcnQgdGhlIG5h bWUgd2l0aG91dCBwYWNrYWdlIGFzIHdlbGwKLQkJICAoc2V0cSBsc3QgKGNvbnMgKGNvbnMgKHN1 YnN0cmluZyAoZWx0IGVsdCAzKQotCQkJCQkJICAgKG1hdGNoLWJlZ2lubmluZyAxKQotCQkJCQkJ ICAgKG1hdGNoLWVuZCAxKSkKLQkJCQkJKGNkciBlbHQpKQotCQkJCSAgbHN0KSkpKSkpCi0gICAg ICAoc2V0cSBwb3MgKHBvaW50KSkKLSAgICAgIChnb3RvLWNoYXIgMSkKLSAgICAgIChzZXRxIHJl bCBmaWxlKQotICAgICAgOzsgT24gY2FzZS1wcmVzZXJ2aW5nIGZpbGVzeXN0ZW1zIChFTVggb24g T1MvMikgY2FzZSBtaWdodCBiZSBlbmNvZGVkIGluIHByb3BlcnRpZXMKLSAgICAgIChzZXQtdGV4 dC1wcm9wZXJ0aWVzIDAgKGxlbmd0aCByZWwpIG5pbCByZWwpCi0gICAgICAoYW5kIChlcXVhbCB0 b3BkaXIgKHN1YnN0cmluZyByZWwgMCAobGVuZ3RoIHRvcGRpcikpKQotCSAgIChzZXRxIHJlbCAo c3Vic3RyaW5nIGZpbGUgKGxlbmd0aCB0b3BkaXIpKSkpCi0gICAgICAoaW5zZXJ0ICJcZlxuIiBy ZWwgIiwiIChudW1iZXItdG8tc3RyaW5nICgxLSBwb3MpKSAiXG4iKQotICAgICAgKHNldHEgcmV0 IChidWZmZXItc3Vic3RyaW5nIDEgKHBvaW50LW1heCkpKQotICAgICAgKGVyYXNlLWJ1ZmZlcikK LSAgICAgIChvciBub25pbnRlcmFjdGl2ZQotCSAgKG1lc3NhZ2UgIlNjYW5uaW5nIGZpbGUgJXMg ZmluaXNoZWQiIGZpbGUpKQotICAgICAgcmV0KSkpKQorCShtZXNzYWdlICJTY2FubmluZyBmaWxl ICVzIC4uLiIgZmlsZSkKKwkoaWYgKGFuZCBjcGVybC11c2Utc3ludGF4LXRhYmxlLXRleHQtcHJv cGVydHktZm9yLXRhZ3MKKwkJIChub3QgeHMpKQorCSAgICAoY29uZGl0aW9uLWNhc2UgZXJyCQk7 IGFmdGVyIF9fRU5EX18gbWF5IGhhdmUgZ2FyYmFnZQorCQkoY3BlcmwtZmluZC1wb2RzLWhlcmVz IG5pbCBuaWwgbm9uaW50ZXJhY3RpdmUpCisJICAgICAgKGVycm9yIChtZXNzYWdlICJXaGlsZSBz Y2FubmluZyBmb3Igc3ludGF4OiAlcyIgZXJyKSkpKQorCShpZiB4cworCSAgICAoc2V0cSBsc3Qg KGNwZXJsLXhzdWItc2NhbikpCisJICAoc2V0cSBpbmQgKGNwZXJsLWltZW51LS1jcmVhdGUtcGVy bC1pbmRleCkpCisJICAoc2V0cSBsc3QgKGNkciAoYXNzb2MgIitVbnNvcnRlZCBMaXN0Ky4uLiIg aW5kKSkpKQorCShzZXRxIGxzdAorCSAgICAgIChtYXBjYXIKKwkgICAgICAgKGxhbWJkYSAoZWx0 KQorCQkgKGNvbmQgKChzdHJpbmctbWF0Y2ggIl5bX2EtekEtWl0iIChjYXIgZWx0KSkKKwkJCShn b3RvLWNoYXIgKGNkciBlbHQpKQorCQkJKGJlZ2lubmluZy1vZi1saW5lKSA7IHBvcyBzaG91bGQg YmUgb2YgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lCisJCQkobGlzdCAoY2FyIGVsdCkKKwkJCSAgICAg IChwb2ludCkKKwkJCSAgICAgICgxKyAoY291bnQtbGluZXMgMSAocG9pbnQpKSkgOyAxKyBzaW5j ZSBhdCBiZWctby1sCisJCQkgICAgICAoYnVmZmVyLXN1YnN0cmluZyAocHJvZ24KKwkJCQkJCSAg KGdvdG8tY2hhciAoY2RyIGVsdCkpCisJCQkJCQkgIDs7IEFmdGVyIG5hbWUgbm93Li4uCisJCQkJ CQkgIChvciAoZW9scCkgKGZvcndhcmQtY2hhciAxKSkKKwkJCQkJCSAgKHBvaW50KSkKKwkJCQkJ CShwcm9nbgorCQkJCQkJICAoYmVnaW5uaW5nLW9mLWxpbmUpCisJCQkJCQkgIChwb2ludCkpKSkp KSkKKwkgICAgICAgbHN0KSkKKwkoZXJhc2UtYnVmZmVyKQorCSh3aGlsZSBsc3QKKwkgIChzZXRx IGVsdCAoY2FyIGxzdCkgbHN0IChjZHIgbHN0KSkKKwkgIChpZiBlbHQKKwkgICAgICAocHJvZ24K KwkJKGluc2VydCAoZWx0IGVsdCAzKQorCQkJMTI3CisJCQkoaWYgKHN0cmluZy1tYXRjaCAiXnBh Y2thZ2UgIiAoY2FyIGVsdCkpCisJCQkgICAgKHN1YnN0cmluZyAoY2FyIGVsdCkgOCkKKwkJCSAg KGNhciBlbHQpICkKKwkJCTEKKwkJCShudW1iZXItdG8tc3RyaW5nIChlbHQgZWx0IDIpKSA7IExp bmUKKwkJCSIsIgorCQkJKG51bWJlci10by1zdHJpbmcgKDEtIChlbHQgZWx0IDEpKSkgOyBDaGFy IHBvcyAwLWJhc2VkCisJCQkiXG4iKQorCQkoaWYgKGFuZCAoc3RyaW5nLW1hdGNoICJeW19hLXpB LVpdKzo6IiAoY2FyIGVsdCkpCisJCQkgKHN0cmluZy1tYXRjaCAiXnN1YlsgXHRdK1xcKFtfYS16 QS1aXStcXClbXjpfYS16QS1aXSIKKwkJCQkgICAgICAgKGVsdCBlbHQgMykpKQorCQkgICAgOzsg TmVlZCB0byBpbnNlcnQgdGhlIG5hbWUgd2l0aG91dCBwYWNrYWdlIGFzIHdlbGwKKwkJICAgIChz ZXRxIGxzdCAoY29ucyAoY29ucyAoc3Vic3RyaW5nIChlbHQgZWx0IDMpCisJCQkJCQkgICAgICht YXRjaC1iZWdpbm5pbmcgMSkKKwkJCQkJCSAgICAgKG1hdGNoLWVuZCAxKSkKKwkJCQkJICAoY2Ry IGVsdCkpCisJCQkJICAgIGxzdCkpKSkpKQorCShzZXRxIHBvcyAocG9pbnQpKQorCShnb3RvLWNo YXIgMSkKKwkoc2V0cSByZWwgZmlsZSkKKwk7OyBPbiBjYXNlLXByZXNlcnZpbmcgZmlsZXN5c3Rl bXMgKEVNWCBvbiBPUy8yKSBjYXNlIG1pZ2h0IGJlIGVuY29kZWQgaW4gcHJvcGVydGllcworCShz ZXQtdGV4dC1wcm9wZXJ0aWVzIDAgKGxlbmd0aCByZWwpIG5pbCByZWwpCisJKGFuZCAoZXF1YWwg dG9wZGlyIChzdWJzdHJpbmcgcmVsIDAgKGxlbmd0aCB0b3BkaXIpKSkKKwkgICAgIChzZXRxIHJl bCAoc3Vic3RyaW5nIGZpbGUgKGxlbmd0aCB0b3BkaXIpKSkpCisJKGluc2VydCAiXGZcbiIgcmVs ICIsIiAobnVtYmVyLXRvLXN0cmluZyAoMS0gcG9zKSkgIlxuIikKKwkoc2V0cSByZXQgKGJ1ZmZl ci1zdWJzdHJpbmcgMSAocG9pbnQtbWF4KSkpCisJKGVyYXNlLWJ1ZmZlcikKKwkob3Igbm9uaW50 ZXJhY3RpdmUKKwkgICAgKG1lc3NhZ2UgIlNjYW5uaW5nIGZpbGUgJXMgZmluaXNoZWQiIGZpbGUp KQorCXJldCkpKSkKIAogKGRlZnVuIGNwZXJsLWFkZC10YWdzLXJlY3Vyc2Utbm94cyAoKQogICAi QWRkIHRvIFRBR1MgZGF0YSBmb3IgUGVybCBhbmQgWFNVQiBmaWxlcyBpbiB0aGUgY3VycmVudCBk aXJlY3RvcnkgYW5kIGtpZHMuCkBAIC01NjA2LDcgKzU1NzMsNyBAQAogCSAgICAoKGZpbGUtZXhp c3RzLXAgdGFncy1maWxlLW5hbWUpCiAJICAgICAoaWYgY3BlcmwteGVtYWNzLXAKIAkJICh2aXNp dC10YWdzLXRhYmxlLWJ1ZmZlcikKLQkgICAgICAodmlzaXQtdGFncy10YWJsZS1idWZmZXIgdGFn cy1maWxlLW5hbWUpKSkKKwkgICAgICAgKHZpc2l0LXRhZ3MtdGFibGUtYnVmZmVyIHRhZ3MtZmls ZS1uYW1lKSkpCiAJICAgICh0IChzZXQtYnVmZmVyIChmaW5kLWZpbGUtbm9zZWxlY3QgdGFncy1m aWxlLW5hbWUpKSkpCiAgICAgICAoY29uZAogICAgICAgIChkaXIKQEAgLTU2MjQsNDYgKzU1OTEs NDUgQEAKIAkJICAgIChpZiAoeS1vci1uLXAKIAkJCSAoZm9ybWF0ICJEaXJlY3RvcnkgJXMgdW5y ZWFkYWJsZS4gIENvbnRpbnVlPyAiIGZpbGUpKQogCQkJKHNldHEgY3BlcmwtdW5yZWFkYWJsZS1v ayB0Ci0JCQkgICAgICB0bSBuaWwpIDsgUmV0dXJuIGVtcHR5IGxpc3QKKwkJCSAgICAgIHRtIG5p bCkJOyBSZXR1cm4gZW1wdHkgbGlzdAogCQkgICAgICAoZXJyb3IgIkFib3J0aW5nOiB1bnJlYWRh YmxlIGRpcmVjdG9yeSAlcyIgZmlsZSkpKSkpKSkKLQkgIChtYXBjYXIgKGZ1bmN0aW9uIChsYW1i ZGEgKGZpbGUpCi0JCQkgICAgICAoY29uZAotCQkJICAgICAgICgoc3RyaW5nLW1hdGNoIGNwZXJs LW5vc2Nhbi1maWxlcy1yZWdleHAgZmlsZSkKLQkJCQluaWwpCi0JCQkgICAgICAgKChub3QgKGZp bGUtZGlyZWN0b3J5LXAgZmlsZSkpCi0JCQkJKGlmIChzdHJpbmctbWF0Y2ggY3Blcmwtc2Nhbi1m aWxlcy1yZWdleHAgZmlsZSkKLQkJCQkgICAgKGNwZXJsLXdyaXRlLXRhZ3MgZmlsZSBlcmFzZSBy ZWN1cnNlIG5pbCB0IG5veHMgdG9wZGlyKSkpCi0JCQkgICAgICAgKChub3QgcmVjdXJzZSkgbmls KQotCQkJICAgICAgICh0IChjcGVybC13cml0ZS10YWdzIGZpbGUgZXJhc2UgcmVjdXJzZSB0IHQg bm94cyB0b3BkaXIpKSkpKQotCQkgIGZpbGVzKSkKLQkpCisJICAobWFwY2FyIChsYW1iZGEgKGZp bGUpCisJCSAgICAoY29uZAorCQkgICAgICgoc3RyaW5nLW1hdGNoIGNwZXJsLW5vc2Nhbi1maWxl cy1yZWdleHAgZmlsZSkKKwkJICAgICAgbmlsKQorCQkgICAgICgobm90IChmaWxlLWRpcmVjdG9y eS1wIGZpbGUpKQorCQkgICAgICAoaWYgKHN0cmluZy1tYXRjaCBjcGVybC1zY2FuLWZpbGVzLXJl Z2V4cCBmaWxlKQorCQkJICAoY3Blcmwtd3JpdGUtdGFncyBmaWxlIGVyYXNlIHJlY3Vyc2Ugbmls IHQgbm94cyB0b3BkaXIpKSkKKwkJICAgICAoKG5vdCByZWN1cnNlKSBuaWwpCisJCSAgICAgKHQg KGNwZXJsLXdyaXRlLXRhZ3MgZmlsZSBlcmFzZSByZWN1cnNlIHQgdCBub3hzIHRvcGRpcikpKSkK KwkJICBmaWxlcykpKQogICAgICAgICh0CiAJKHNldHEgeHMgKHN0cmluZy1tYXRjaCAiXFwueHMk IiBmaWxlKSkKIAkoaWYgKG5vdCAoYW5kIHhzIG5veHMpKQogCSAgICAocHJvZ24KIAkgICAgICAo Y29uZCAoKGVxIGVyYXNlICdpZ25vcmUpIChnb3RvLWNoYXIgKHBvaW50LW1heCkpKQotCQkgIChl cmFzZSAoZXJhc2UtYnVmZmVyKSkKLQkJICAodAotCQkgICAoZ290by1jaGFyIDEpCi0JCSAgIChz ZXRxIHJlbCBmaWxlKQotCQkgICA7OyBPbiBjYXNlLXByZXNlcnZpbmcgZmlsZXN5c3RlbXMgKEVN WCBvbiBPUy8yKSBjYXNlIG1pZ2h0IGJlIGVuY29kZWQgaW4gcHJvcGVydGllcwotCQkgICAoc2V0 LXRleHQtcHJvcGVydGllcyAwIChsZW5ndGggcmVsKSBuaWwgcmVsKQotCQkgICAoYW5kIChlcXVh bCB0b3BkaXIgKHN1YnN0cmluZyByZWwgMCAobGVuZ3RoIHRvcGRpcikpKQotCQkJKHNldHEgcmVs IChzdWJzdHJpbmcgZmlsZSAobGVuZ3RoIHRvcGRpcikpKSkKLQkJICAgKGlmIChzZWFyY2gtZm9y d2FyZCAoY29uY2F0ICJcZlxuIiByZWwgIiwiKSBuaWwgdCkKLQkJICAgICAgIChwcm9nbgotCQkJ IChzZWFyY2gtYmFja3dhcmQgIlxmXG4iKQotCQkJIChkZWxldGUtcmVnaW9uIChwb2ludCkKLQkJ CQkJKHNhdmUtZXhjdXJzaW9uCi0JCQkJCSAgKGZvcndhcmQtY2hhciAxKQotCQkJCQkgIChpZiAo c2VhcmNoLWZvcndhcmQgIlxmXG4iCi0JCQkJCQkJICAgICAgbmlsICd0b2VuZCkKLQkJCQkJICAg ICAgKC0gKHBvaW50KSAyKQotCQkJCQkgICAgKHBvaW50LW1heCkpKSkpCi0JCSAgICAgKGdvdG8t Y2hhciAocG9pbnQtbWF4KSkpKSkKKwkJICAgIChlcmFzZSAoZXJhc2UtYnVmZmVyKSkKKwkJICAg ICh0CisJCSAgICAgKGdvdG8tY2hhciAxKQorCQkgICAgIChzZXRxIHJlbCBmaWxlKQorCQkgICAg IDs7IE9uIGNhc2UtcHJlc2VydmluZyBmaWxlc3lzdGVtcyAoRU1YIG9uIE9TLzIpIGNhc2UgbWln aHQgYmUgZW5jb2RlZCBpbiBwcm9wZXJ0aWVzCisJCSAgICAgKHNldC10ZXh0LXByb3BlcnRpZXMg MCAobGVuZ3RoIHJlbCkgbmlsIHJlbCkKKwkJICAgICAoYW5kIChlcXVhbCB0b3BkaXIgKHN1YnN0 cmluZyByZWwgMCAobGVuZ3RoIHRvcGRpcikpKQorCQkJICAoc2V0cSByZWwgKHN1YnN0cmluZyBm aWxlIChsZW5ndGggdG9wZGlyKSkpKQorCQkgICAgIChpZiAoc2VhcmNoLWZvcndhcmQgKGNvbmNh dCAiXGZcbiIgcmVsICIsIikgbmlsIHQpCisJCQkgKHByb2duCisJCQkgICAoc2VhcmNoLWJhY2t3 YXJkICJcZlxuIikKKwkJCSAgIChkZWxldGUtcmVnaW9uIChwb2ludCkKKwkJCQkJICAoc2F2ZS1l eGN1cnNpb24KKwkJCQkJICAgIChmb3J3YXJkLWNoYXIgMSkKKwkJCQkJICAgIChpZiAoc2VhcmNo LWZvcndhcmQgIlxmXG4iCisJCQkJCQkJCW5pbCAndG9lbmQpCisJCQkJCQkoLSAocG9pbnQpIDIp CisJCQkJCSAgICAgIChwb2ludC1tYXgpKSkpKQorCQkgICAgICAgKGdvdG8tY2hhciAocG9pbnQt bWF4KSkpKSkKIAkgICAgICAoaW5zZXJ0IChjcGVybC1maW5kLXRhZ3MgZmlsZSB4cyB0b3BkaXIp KSkpKSkKLSAgICAgIChpZiBpbmJ1ZmZlciBuaWwJCTsgRGVsZWdhdGUgdG8gdGhlIGNhbGxlcgot CShzYXZlLWJ1ZmZlciAwKQkJOyBObyBiYWNrdXAKKyAgICAgIChpZiBpbmJ1ZmZlciBuaWwJCQk7 IERlbGVnYXRlIHRvIHRoZSBjYWxsZXIKKwkoc2F2ZS1idWZmZXIgMCkJCQk7IE5vIGJhY2t1cAog CShpZiAoZmJvdW5kcCAnaW5pdGlhbGl6ZS1uZXctdGFncy10YWJsZSkgOyBEbyB3ZSBuZWVkIHNv bWV0aGluZyBzcGVjaWFsIGluIFhFbWFjcz8KIAkgICAgKGluaXRpYWxpemUtbmV3LXRhZ3MtdGFi bGUpKSkpKSkKIApAQCAtNTczMywzMCArNTY5OSwyOSBAQAogICAocmVxdWlyZSAnZXRhZ3MpCiAg IChyZXF1aXJlICdpbWVudSkKICAgKGlmIChvciB1cGRhdGUgKG51bGwgKG50aCAyIGNwZXJsLWhp ZXJhcmNoeSkpKQotICAgICAgKGxldCAocGFjayBuYW1lIGNvbnMxIHRvIGwxIGwyIGwzIGw0IGIK LQkJIChyZW1vdmVyIChmdW5jdGlvbiAobGFtYmRhIChlbHQpIDsgKG5hbWUgKGZpbGUxLi4uKSAo ZmlsZTIuLikpCi0JCQkJICAgICAgKG9yIChudGhjZHIgMiBlbHQpCi0JCQkJCSAgOzsgT25seSBp biBvbmUgZmlsZQotCQkJCQkgIChzZXRjZHIgZWx0IChjZHIgKG50aCAxIGVsdCkpKSkpKSkpCisg ICAgICAobGV0ICgocmVtb3ZlciAobGFtYmRhIChlbHQpIDsgKG5hbWUgKGZpbGUxLi4uKSAoZmls ZTIuLikpCisJCSAgICAgICAob3IgKG50aGNkciAyIGVsdCkKKwkJCSAgIDs7IE9ubHkgaW4gb25l IGZpbGUKKwkJCSAgIChzZXRjZHIgZWx0IChjZHIgKG50aCAxIGVsdCkpKSkpKQorCSAgICBwYWNr IG5hbWUgY29uczEgdG8gbDEgbDIgbDMgbDQgYikKIAk7OyAoc2V0cSBjcGVybC1oaWVyYXJjaHkg JygoKSAoKSAoKSkpIDsgV291bGQgd3JpdGUgaW50byAnKCkgbGF0ZXIhCiAJKHNldHEgY3Blcmwt aGllcmFyY2h5IChsaXN0IGwxIGwyIGwzKSkKIAkoaWYgY3BlcmwteGVtYWNzLXAJCTsgTm90IGNo ZWNrZWQKIAkgICAgKHByb2duCiAJICAgICAgKG9yIHRhZ3MtZmlsZS1uYW1lCiAJCSAgOzsgRG9l cyB0aGlzIHdvcmsgaW4gWEVtYWNzPwotCSAgICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICd2aXNpdC10 YWdzLXRhYmxlKSkKLQkobWVzc2FnZSAiVXBkYXRpbmcgbGlzdCBvZiBjbGFzc2VzLi4uIikKKwkJ ICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICd2aXNpdC10YWdzLXRhYmxlKSkKKwkgICAgICAobWVzc2Fn ZSAiVXBkYXRpbmcgbGlzdCBvZiBjbGFzc2VzLi4uIikKIAkgICAgICAoc2V0LWJ1ZmZlciAoZ2V0 LWZpbGUtYnVmZmVyIHRhZ3MtZmlsZS1uYW1lKSkKIAkgICAgICAoY3BlcmwtdGFncy1oaWVyLWZp bGwpKQogCSAgKG9yIHRhZ3MtdGFibGUtbGlzdAogCSAgICAgIChjYWxsLWludGVyYWN0aXZlbHkg J3Zpc2l0LXRhZ3MtdGFibGUpKQotCShtYXBjYXIKLQkgKGZ1bmN0aW9uCi0JICAobGFtYmRhICh0 YWdzZmlsZSkKLQkgICAgICAobWVzc2FnZSAiVXBkYXRpbmcgbGlzdCBvZiBjbGFzc2VzLi4uICVz IiB0YWdzZmlsZSkKLQkgICAgKHNldC1idWZmZXIgKGdldC1maWxlLWJ1ZmZlciB0YWdzZmlsZSkp Ci0JICAgIChjcGVybC10YWdzLWhpZXItZmlsbCkpKQotCSB0YWdzLXRhYmxlLWxpc3QpCisJICAo bWFwY2FyCisJICAgKGxhbWJkYSAodGFnc2ZpbGUpCisJICAgICAobWVzc2FnZSAiVXBkYXRpbmcg bGlzdCBvZiBjbGFzc2VzLi4uICVzIiB0YWdzZmlsZSkKKwkgICAgIChzZXQtYnVmZmVyIChnZXQt ZmlsZS1idWZmZXIgdGFnc2ZpbGUpKQorCSAgICAgKGNwZXJsLXRhZ3MtaGllci1maWxsKSkKKwkg ICB0YWdzLXRhYmxlLWxpc3QpCiAJICAobWVzc2FnZSAiVXBkYXRpbmcgbGlzdCBvZiBjbGFzc2Vz Li4uIHBvc3Rwcm9jZXNzaW5nLi4uIikpCiAJKG1hcGNhciByZW1vdmVyIChjYXIgY3BlcmwtaGll cmFyY2h5KSkKIAkobWFwY2FyIHJlbW92ZXIgKG50aCAxIGNwZXJsLWhpZXJhcmNoeSkpCkBAIC01 Nzk3LDI2ICs1NzYyLDI1IEBACiAJIGwxIGhlYWQgdGFpbCBjb25zMSBjb25zMiBvcmQgd3JpdGV0 byBwYWNrcyByZWN1cnNlCiAJIHJvb3QtcGFja2FnZXMgcm9vdC1mdW5jdGlvbnMgbXMgbWFueV9t cyBzYW1lX25hbWUgcHMKIAkgKG1vdmUtZGVlcGVyCi0JICAoZnVuY3Rpb24KLQkgICAobGFtYmRh IChlbHQpCi0JICAgICAoY29uZCAoKGFuZCAoc3RyaW5nLW1hdGNoIHJlZ2V4cCAoY2FyIGVsdCkp Ci0JCQkgKG9yIChlcSBvcmQgMSkgKG1hdGNoLWVuZCAyKSkpCi0JCSAgICAoc2V0cSBoZWFkIChz dWJzdHJpbmcgKGNhciBlbHQpIDAgKG1hdGNoLWVuZCAxKSkKLQkJCSAgdGFpbCAoaWYgKG1hdGNo LWVuZCAyKSAoc3Vic3RyaW5nIChjYXIgZWx0KQotCQkJCQkJCSAgICAobWF0Y2gtZW5kIDIpKSkK LQkJCSAgcmVjdXJzZSB0KQotCQkgICAgKGlmIChzZXRxIGNvbnMxIChhc3NvYyBoZWFkIHdyaXRl dG8pKSBuaWwKLQkJICAgICAgOzsgTmVlZCB0byBpbml0IG5ldyBoZWFkCi0JCSAgICAgIChzZXRj ZHIgd3JpdGV0byAoY29ucyAobGlzdCBoZWFkIChsaXN0ICJQYWNrYWdlczogIikKLQkJCQkJCSAg KGxpc3QgIk1ldGhvZHM6ICIpKQotCQkJCQkgICAgKGNkciB3cml0ZXRvKSkpCi0JCSAgICAgIChz ZXRxIGNvbnMxIChudGggMSB3cml0ZXRvKSkpCi0JCSAgICAoc2V0cSBjb25zMiAobnRoIG9yZCBj b25zMSkpIDsgRWl0aGVyIHBhY2tzIG9yIG1ldGhzCi0JCSAgICAoc2V0Y2RyIGNvbnMyIChjb25z IGVsdCAoY2RyIGNvbnMyKSkpKQotCQkgICAoKGVxIG9yZCAyKQotCQkgICAgKHNldHEgcm9vdC1m dW5jdGlvbnMgKGNvbnMgZWx0IHJvb3QtZnVuY3Rpb25zKSkpCi0JCSAgICh0Ci0JCSAgICAoc2V0 cSByb290LXBhY2thZ2VzIChjb25zIGVsdCByb290LXBhY2thZ2VzKSkpKSkpKSkKKwkgIChsYW1i ZGEgKGVsdCkKKwkgICAgKGNvbmQgKChhbmQgKHN0cmluZy1tYXRjaCByZWdleHAgKGNhciBlbHQp KQorCQkJKG9yIChlcSBvcmQgMSkgKG1hdGNoLWVuZCAyKSkpCisJCSAgIChzZXRxIGhlYWQgKHN1 YnN0cmluZyAoY2FyIGVsdCkgMCAobWF0Y2gtZW5kIDEpKQorCQkJIHRhaWwgKGlmIChtYXRjaC1l bmQgMikgKHN1YnN0cmluZyAoY2FyIGVsdCkKKwkJCQkJCQkgICAobWF0Y2gtZW5kIDIpKSkKKwkJ CSByZWN1cnNlIHQpCisJCSAgIChpZiAoc2V0cSBjb25zMSAoYXNzb2MgaGVhZCB3cml0ZXRvKSkg bmlsCisJCSAgICAgOzsgTmVlZCB0byBpbml0IG5ldyBoZWFkCisJCSAgICAgKHNldGNkciB3cml0 ZXRvIChjb25zIChsaXN0IGhlYWQgKGxpc3QgIlBhY2thZ2VzOiAiKQorCQkJCQkJIChsaXN0ICJN ZXRob2RzOiAiKSkKKwkJCQkJICAgKGNkciB3cml0ZXRvKSkpCisJCSAgICAgKHNldHEgY29uczEg KG50aCAxIHdyaXRldG8pKSkKKwkJICAgKHNldHEgY29uczIgKG50aCBvcmQgY29uczEpKSA7IEVp dGhlciBwYWNrcyBvciBtZXRocworCQkgICAoc2V0Y2RyIGNvbnMyIChjb25zIGVsdCAoY2RyIGNv bnMyKSkpKQorCQkgICgoZXEgb3JkIDIpCisJCSAgIChzZXRxIHJvb3QtZnVuY3Rpb25zIChjb25z IGVsdCByb290LWZ1bmN0aW9ucykpKQorCQkgICh0CisJCSAgIChzZXRxIHJvb3QtcGFja2FnZXMg KGNvbnMgZWx0IHJvb3QtcGFja2FnZXMpKSkpKSkpCiAgICAgKHNldGNkciB0byBsMSkJCQk7IElu aXQgdG8gZHluYW1pYyBzcGFjZQogICAgIChzZXRxIHdyaXRldG8gdG8pCiAgICAgKHNldHEgb3Jk IDEpCkBAIC01ODI0LDM3ICs1Nzg4LDM2IEBACiAgICAgKHNldHEgb3JkIDIpCiAgICAgKG1hcGNh ciBtb3ZlLWRlZXBlciBtZXRob2RzKQogICAgIChpZiByZWN1cnNlCi0JKG1hcGNhciAoZnVuY3Rp b24gKGxhbWJkYSAoZWx0KQotCQkJICAoY3BlcmwtdGFncy10cmVlaWZ5IGVsdCAoMSsgbGV2ZWwp KSkpCisJKG1hcGNhciAobGFtYmRhIChlbHQpCisJCSAgKGNwZXJsLXRhZ3MtdHJlZWlmeSBlbHQg KDErIGxldmVsKSkpCiAJCShjZHIgdG8pKSkKICAgICA7O05vdyBjbGVhbiB1cCBsZWFkZXJzIHdp dGggb25lIGNoaWxkIG9ubHkKLSAgICAobWFwY2FyIChmdW5jdGlvbiAobGFtYmRhIChlbHQpCi0J CQkoaWYgKG5vdCAoYW5kIChsaXN0cCAoY2RyIGVsdCkpCi0JCQkJICAgICAgKGVxIChsZW5ndGgg ZWx0KSAyKSkpIG5pbAotCQkJICAgIChzZXRjYXIgZWx0IChjYXIgKG50aCAxIGVsdCkpKQotCQkJ ICAgIChzZXRjZHIgZWx0IChjZHIgKG50aCAxIGVsdCkpKSkpKQorICAgIChtYXBjYXIgKGxhbWJk YSAoZWx0KQorCSAgICAgIChpZiAobm90IChhbmQgKGxpc3RwIChjZHIgZWx0KSkKKwkJCSAgICAo ZXEgKGxlbmd0aCBlbHQpIDIpKSkgbmlsCisJCShzZXRjYXIgZWx0IChjYXIgKG50aCAxIGVsdCkp KQorCQkoc2V0Y2RyIGVsdCAoY2RyIChudGggMSBlbHQpKSkpKQogCSAgICAoY2RyIHRvKSkKICAg ICA7OyBTb3J0IHRoZSByb290cyBvZiBzdWJ0cmVlcwogICAgIChpZiAoZGVmYXVsdC12YWx1ZSAn aW1lbnUtc29ydC1mdW5jdGlvbikKIAkoc2V0Y2RyIHRvCiAJCShzb3J0IChjZHIgdG8pIChkZWZh dWx0LXZhbHVlICdpbWVudS1zb3J0LWZ1bmN0aW9uKSkpKQogICAgIDs7IE5vdyBhZGQgYmFjayBm dW5jdGlvbnMgcmVtb3ZlZCBmcm9tIGRpc3BsYXkKLSAgICAobWFwY2FyIChmdW5jdGlvbiAobGFt YmRhIChlbHQpCi0JCQkoc2V0Y2RyIHRvIChjb25zIGVsdCAoY2RyIHRvKSkpKSkKKyAgICAobWFw Y2FyIChsYW1iZGEgKGVsdCkKKwkgICAgICAoc2V0Y2RyIHRvIChjb25zIGVsdCAoY2RyIHRvKSkp KQogCSAgICAoaWYgKGRlZmF1bHQtdmFsdWUgJ2ltZW51LXNvcnQtZnVuY3Rpb24pCiAJCShucmV2 ZXJzZQogCQkgKHNvcnQgcm9vdC1mdW5jdGlvbnMgKGRlZmF1bHQtdmFsdWUgJ2ltZW51LXNvcnQt ZnVuY3Rpb24pKSkKIAkgICAgICByb290LWZ1bmN0aW9ucykpCiAgICAgOzsgTm93IGFkZCBiYWNr IHBhY2thZ2VzIHJlbW92ZWQgZnJvbSBkaXNwbGF5Ci0gICAgKG1hcGNhciAoZnVuY3Rpb24gKGxh bWJkYSAoZWx0KQotCQkJKHNldGNkciB0byAoY29ucyAoY29ucyAoY29uY2F0ICJwYWNrYWdlICIg KGNhciBlbHQpKQotCQkJCQkgICAgICAgKGNkciBlbHQpKQotCQkJCQkgKGNkciB0bykpKSkpCisg ICAgKG1hcGNhciAobGFtYmRhIChlbHQpCisJICAgICAgKHNldGNkciB0byAoY29ucyAoY29ucyAo Y29uY2F0ICJwYWNrYWdlICIgKGNhciBlbHQpKQorCQkJCSAgICAgKGNkciBlbHQpKQorCQkJICAg ICAgIChjZHIgdG8pKSkpCiAJICAgIChpZiAoZGVmYXVsdC12YWx1ZSAnaW1lbnUtc29ydC1mdW5j dGlvbikKIAkJKG5yZXZlcnNlCiAJCSAoc29ydCByb290LXBhY2thZ2VzIChkZWZhdWx0LXZhbHVl ICdpbWVudS1zb3J0LWZ1bmN0aW9uKSkpCi0JICAgICAgcm9vdC1wYWNrYWdlcykpCi0gICAgKSkK KwkgICAgICByb290LXBhY2thZ2VzKSkpKQogCiA7OzsoeC1wb3B1cC1tZW51IHQKIDs7OyAgICco a2V5bWFwICJOYW1lMSIKQEAgLTU4ODYsNTIgKzU4NDksNTAgQEAKICAgKGxldCAobGlzdCkKICAg ICAoY29ucyAna2V5bWFwCiAJICAobWFwY2FyCi0JICAgKGZ1bmN0aW9uCi0JICAgIChsYW1iZGEg KGVsdCkKLQkgICAgICAoY29uZCAoKGxpc3RwIChjZHIgZWx0KSkKLQkJICAgICAoc2V0cSBsaXN0 IChjcGVybC1saXN0LWZvbGQKLQkJCQkgKGNkciBlbHQpIChjYXIgZWx0KSBpbWVudS1tYXgtaXRl bXMpKQotCQkgICAgIChjb25zIG5pbAotCQkJICAgKGNvbnMgKGNhciBlbHQpCi0JCQkJIChjcGVy bC1tZW51LXRvLWtleW1hcCBsaXN0KSkpKQotCQkgICAgKHQKLQkJICAgICAobGlzdCAoY2RyIGVs dCkgKGNhciBlbHQpIHQpKSkpKSA7IHQgaXMgbmVlZGVkIGluIDE5LjM0CisJICAgKGxhbWJkYSAo ZWx0KQorCSAgICAgKGNvbmQgKChsaXN0cCAoY2RyIGVsdCkpCisJCSAgICAoc2V0cSBsaXN0IChj cGVybC1saXN0LWZvbGQKKwkJCQkoY2RyIGVsdCkgKGNhciBlbHQpIGltZW51LW1heC1pdGVtcykp CisJCSAgICAoY29ucyBuaWwKKwkJCSAgKGNvbnMgKGNhciBlbHQpCisJCQkJKGNwZXJsLW1lbnUt dG8ta2V5bWFwIGxpc3QpKSkpCisJCSAgICh0CisJCSAgICAobGlzdCAoY2RyIGVsdCkgKGNhciBl bHQpIHQpKSkpIDsgdCBpcyBuZWVkZWQgaW4gMTkuMzQKIAkgICAoY3BlcmwtbGlzdC1mb2xkIG1l bnUgIlJvb3QiIGltZW51LW1heC1pdGVtcykpKSkpCiAKIAwKIChkZWZ2YXIgY3BlcmwtYmFkLXN0 eWxlLXJlZ2V4cAogICAobWFwY29uY2F0ICdpZGVudGl0eQotICAgJygiW14tXG5cdCA8Pj0rIS4m fCgqLydgXCIjXl1bLT0rPD4hfCZeXSIgOyBjaGFyIHNpZ24KLSAgICAgIlstPD49K14mfF0rW14t IFx0XG49Kzw+fl0iCTsgc2lnbisgY2hhcgotICAgICApCi0gICAiXFx8IikKKwkgICAgICcoIlte LVxuXHQgPD49KyEuJnwoKi8nYFwiI15dWy09Kzw+IXwmXl0iIDsgY2hhciBzaWduCisJICAgICAg ICJbLTw+PSteJnxdK1teLSBcdFxuPSs8Pn5dIikgOyBzaWduKyBjaGFyIAorCSAgICAgIlxcfCIp CiAgICJGaW5kcyBwbGFjZXMgc3VjaCB0aGF0IGluc2VydGlvbiBvZiBhIHdoaXRlc3BhY2UgbWF5 IGhlbHAgYSBsb3QuIikKIAogKGRlZnZhciBjcGVybC1ub3QtYmFkLXN0eWxlLXJlZ2V4cAogICAo bWFwY29uY2F0ICdpZGVudGl0eQotICAgJygiW14tXHQgPD49K11cXCgtLVxcfFxcK1xcK1xcKSIJ OyB2YXItLSB2YXIrKwotICAgICAiW2EtekEtWjAtOV9dW3wmXVthLXpBLVowLTlfJF0iCTsgYWJj fGRlZiBhYmMmZGVmIGFyZSBvZnRlbiB1c2VkLgotICAgICAiJlsoYS16QS1aMC05XyRdIgkJCTsg JnN1YnJvdXRpbmUgJih2YXItPmZpZWxkKQotICAgICAiPFxcJD9cXHN3K1xcKFxcLlxcc3crXFwp Pz4iCTsgPElOPiA8c3RkaW4uaD4KLSAgICAgIi1bYS16QS1aXVsgXHRdK1tfJFwiJ2BhLXpBLVpd Igk7IC1mIGZpbGUsIC10IFNURElOCi0gICAgICItWzAtOV0iCQkJCTsgLTUKLSAgICAgIlxcK1xc KyIJCQkJOyArK3ZhcgotICAgICAiLS0iCQkJCTsgLS12YXIKLSAgICAgIi4tPiIJCQkJOyBhLT5i Ci0gICAgICItPiIJCQkJOyBhIFNQQUNFIC0+YgotICAgICAiXFxbLSIJCQkJOyBhWy0xXQotICAg ICAiXFxcXFsmJEAqXFxcXF0iCQkJOyBcJmZ1bmMKLSAgICAgIl49IgkJCQk7ID1oZWFkCi0gICAg ICJcXCQuIgkJCQk7ICR8Ci0gICAgICI8PFthLXpBLVpfJ1wiYF0iCQkJOyA8PEZPTywgPDwnRk9P JwotICAgICAifHwiCi0gICAgICImJiIKLSAgICAgIltDQklYU0xGWl08XFwoXFxzd1xcfFxccyBc XHxcXHNfXFx8W1xuXVxcKSo+IiA7IEM8Y29kZSBsaWtlIHRleHQ+Ci0gICAgICItW2EtekEtWl8w LTldK1sgXHRdKj0+IgkJCTsgLW9wdGlvbiA9PiB2YWx1ZQotICAgICA7OyBVbmFkZHJlc3NlZCB0 cm91YmxlIHNwb3RzOiA9IC1hYmMsIGYoNTYsIC1hYmMpIC0tLSBzcGVjaWFsY2FzZWQgYmVsb3cK LSAgICAgOzsiWyovKy18JjwuXSs9IgotICAgICApCi0gICAiXFx8IikKKwkgICAgICcoIlteLVx0 IDw+PStdXFwoLS1cXHxcXCtcXCtcXCkiIDsgdmFyLS0gdmFyKysKKwkgICAgICAgIlthLXpBLVow LTlfXVt8Jl1bYS16QS1aMC05XyRdIiA7IGFiY3xkZWYgYWJjJmRlZiBhcmUgb2Z0ZW4gdXNlZC4K KwkgICAgICAgIiZbKGEtekEtWjAtOV8kXSIJOyAmc3Vicm91dGluZSAmKHZhci0+ZmllbGQpCisJ ICAgICAgICI8XFwkP1xcc3crXFwoXFwuXFxzdytcXCk/PiIgOyA8SU4+IDxzdGRpbi5oPgorCSAg ICAgICAiLVthLXpBLVpdWyBcdF0rW18kXCInYGEtekEtWl0iIDsgLWYgZmlsZSwgLXQgU1RESU4K KwkgICAgICAgIi1bMC05XSIJCQk7IC01CisJICAgICAgICJcXCtcXCsiCQkJOyArK3ZhcgorCSAg ICAgICAiLS0iCQkJOyAtLXZhcgorCSAgICAgICAiLi0+IgkJCTsgYS0+YgorCSAgICAgICAiLT4i CQkJOyBhIFNQQUNFIC0+YgorCSAgICAgICAiXFxbLSIJCQk7IGFbLTFdCisJICAgICAgICJcXFxc WyYkQCpcXFxcXSIJCTsgXCZmdW5jCisJICAgICAgICJePSIJCQk7ID1oZWFkCisJICAgICAgICJc XCQuIgkJCTsgJHwKKwkgICAgICAgIjw8W2EtekEtWl8nXCJgXSIJOyA8PEZPTywgPDwnRk9PJwor CSAgICAgICAifHwiCisJICAgICAgICImJiIKKwkgICAgICAgIltDQklYU0xGWl08XFwoXFxzd1xc fFxccyBcXHxcXHNfXFx8W1xuXVxcKSo+IiA7IEM8Y29kZSBsaWtlIHRleHQ+CisJICAgICAgICIt W2EtekEtWl8wLTldK1sgXHRdKj0+Igk7IC1vcHRpb24gPT4gdmFsdWUKKwkgICAgICAgOzsgVW5h ZGRyZXNzZWQgdHJvdWJsZSBzcG90czogPSAtYWJjLCBmKDU2LCAtYWJjKSAtLS0gc3BlY2lhbGNh c2VkIGJlbG93CisJICAgICAgIDs7IlsqLystfCY8Ll0rPSIKKwkgICAgICAgKQorCSAgICAgIlxc fCIpCiAgICJJZiBtYXRjaGVzIGF0IHRoZSBzdGFydCBvZiBtYXRjaCBmb3VuZCBieSBgbXktYmFk LWMtc3R5bGUtcmVnZXhwJywKIGluc2VydGlvbiBvZiBhIHdoaXRlc3BhY2Ugd2lsbCBub3QgaGVs cC4iKQogCkBAIC01OTQ2LDcgKzU5MDcsNyBAQAogICAgIChzZXRxIGxhc3Qtbm9ubWVudS1ldmVu dCAxMykJOyBUbyBkaXNhYmxlIHBvcHVwCiAgICAgKGJlZ2lubmluZy1vZi1idWZmZXIpCiAgICAg KG1hcC15LW9yLW4tcCAiSW5zZXJ0IHNwYWNlIGhlcmU/ICIKLQkJICAoZnVuY3Rpb24gKGxhbWJk YSAoYXJnKSAoaW5zZXJ0ICIgIikpKQorCQkgIChsYW1iZGEgKGFyZykgKGluc2VydCAiICIpKQog CQkgICdjcGVybC1uZXh0LWJhZC1zdHlsZQogCQkgICcoImxvY2F0aW9uIiAibG9jYXRpb25zIiAi aW5zZXJ0IGEgc3BhY2UgaW50byIpCiAJCSAgJygoP1xDLXIgKGxhbWJkYSAoYXJnKQpAQCAtNTk5 OSwyMiArNTk2MCwyMCBAQAogICA7Oyhjb25jYXQgIlxcKCIKICAgKG1hcGNvbmNhdAogICAgJ2lk ZW50aXR5Ci0gICAnKCJbJEAlKiZdWzAtOWEtekEtWl86XStcXChbIFx0XSpbW3tdXFwpPyIJCTsg VXN1YWwgdmFyaWFibGUKKyAgICcoIlskQCUqJl1bMC05YS16QS1aXzpdK1xcKFsgXHRdKltbe11c XCk/IiA7IFVzdWFsIHZhcmlhYmxlCiAgICAgICJbJEBdXFxeW2EtekEtWl0iCQkJOyBTcGVjaWFs IHZhcmlhYmxlCiAgICAgICJbJEBdW14gXG5cdF0iCQkJOyBTcGVjaWFsIHZhcmlhYmxlCiAgICAg ICItW2EtekEtWl0iCQkJOyBGaWxlIHRlc3QKICAgICAgIlxcXFxbYS16QS1aMF0iCQkJOyBTcGVj aWFsIGNoYXJzCi0gICAgICJePVthLXpdW2EtekEtWjAtOV9dKiIJCTsgUG9kIHNlY3Rpb25zCisg ICAgICJePVthLXpdW2EtekEtWjAtOV9dKiIJCTsgUE9EIHNlY3Rpb25zCiAgICAgICJbLSEmKiss LS4vPD0+P1xcXFxefH5dKyIJCTsgT3BlcmF0b3IKICAgICAgIlthLXpBLVpfMC05Ol0rIgkJCTsg c3ltYm9sIG9yIG51bWJlcgogICAgICAieD0iCi0gICAgICIjISIKLSAgICAgKQorICAgICAiIyEi KQogICAgOzsiXFwpXFx8XFwoIgotICAgIlxcfCIKLSAgICkKLQkgIDs7IlxcKSIKLQkgIDs7KQor ICAgIlxcfCIpCisgIDs7IlxcKSIKKyAgOzspCiAgICJNYXRjaGVzIHBsYWNlcyBpbiB0aGUgYnVm ZmVyIHdlIGNhbiBmaW5kIGhlbHAgZm9yLiIpCiAKIChkZWZ2YXIgY3BlcmwtbWVzc2FnZS1vbi1o ZWxwLWVycm9yIHQpCkBAIC02MTAyLDIyICs2MDYxLDIyIEBACiAgIChsZXQgKChlbmFibGUtcmVj dXJzaXZlLW1pbmlidWZmZXJzIHQpCiAJYXJncy1maWxlIHJlZ2V4cCkKICAgICAoY29uZAotCSgo c3RyaW5nLW1hdGNoICJeWyYqXVthLXpBLVpfXSIgdmFsKQotCSAoc2V0cSB2YWwgKGNvbmNhdCAo c3Vic3RyaW5nIHZhbCAwIDEpICJOQU1FIikpKQotCSgoc3RyaW5nLW1hdGNoICJeWyRAXVxcKFth LXpBLVpfOjAtOV0rXFwpWyBcdF0qXFxbIiB2YWwpCi0JIChzZXRxIHZhbCAoY29uY2F0ICJAIiAo c3Vic3RyaW5nIHZhbCAxIChtYXRjaC1lbmQgMSkpKSkpCi0JKChzdHJpbmctbWF0Y2ggIl5bJEBd XFwoW2EtekEtWl86MC05XStcXClbIFx0XSp7IiB2YWwpCi0JIChzZXRxIHZhbCAoY29uY2F0ICIl IiAoc3Vic3RyaW5nIHZhbCAxIChtYXRjaC1lbmQgMSkpKSkpCi0JKChhbmQgKHN0cmluZz0gdmFs ICJ4IikgKHN0cmluZy1tYXRjaCAiXng9IiB2YWwpKQotCSAoc2V0cSB2YWwgIng9IikpCi0JKChz dHJpbmctbWF0Y2ggIl5cXCRbXEMtYS1cQy16XSIgdmFsKQotCSAoc2V0cSB2YWwgKGNvbmNhdCAi JF4iIChjaGFyLXRvLXN0cmluZyAoKyA/QSAtMSAoYXJlZiB2YWwgMSkpKSkpKQotICAgICAgICAo KHN0cmluZy1tYXRjaCAiXkNPUkU6OiIgdmFsKQotCSAoc2V0cSB2YWwgIkNPUkU6OiIpKQotICAg ICAgICAoKHN0cmluZy1tYXRjaCAiXlNVUEVSOjoiIHZhbCkKLQkgKHNldHEgdmFsICJTVVBFUjo6 IikpCi0JKChhbmQgKHN0cmluZz0gIjwiIHZhbCkgKHN0cmluZy1tYXRjaCAiXjxcXCQ/W2EtekEt WjAtOV86XSs+IiB2YWwpKQotCSAoc2V0cSB2YWwgIjxOQU1FPiIpKSkKKyAgICAgKChzdHJpbmct bWF0Y2ggIl5bJipdW2EtekEtWl9dIiB2YWwpCisgICAgICAoc2V0cSB2YWwgKGNvbmNhdCAoc3Vi c3RyaW5nIHZhbCAwIDEpICJOQU1FIikpKQorICAgICAoKHN0cmluZy1tYXRjaCAiXlskQF1cXChb YS16QS1aXzowLTldK1xcKVsgXHRdKlxcWyIgdmFsKQorICAgICAgKHNldHEgdmFsIChjb25jYXQg IkAiIChzdWJzdHJpbmcgdmFsIDEgKG1hdGNoLWVuZCAxKSkpKSkKKyAgICAgKChzdHJpbmctbWF0 Y2ggIl5bJEBdXFwoW2EtekEtWl86MC05XStcXClbIFx0XSp7IiB2YWwpCisgICAgICAoc2V0cSB2 YWwgKGNvbmNhdCAiJSIgKHN1YnN0cmluZyB2YWwgMSAobWF0Y2gtZW5kIDEpKSkpKQorICAgICAo KGFuZCAoc3RyaW5nPSB2YWwgIngiKSAoc3RyaW5nLW1hdGNoICJeeD0iIHZhbCkpCisgICAgICAo c2V0cSB2YWwgIng9IikpCisgICAgICgoc3RyaW5nLW1hdGNoICJeXFwkW1xDLWEtXEMtel0iIHZh bCkKKyAgICAgIChzZXRxIHZhbCAoY29uY2F0ICIkXiIgKGNoYXItdG8tc3RyaW5nICgrID9BIC0x IChhcmVmIHZhbCAxKSkpKSkpCisgICAgICgoc3RyaW5nLW1hdGNoICJeQ09SRTo6IiB2YWwpCisg ICAgICAoc2V0cSB2YWwgIkNPUkU6OiIpKQorICAgICAoKHN0cmluZy1tYXRjaCAiXlNVUEVSOjoi IHZhbCkKKyAgICAgIChzZXRxIHZhbCAiU1VQRVI6OiIpKQorICAgICAoKGFuZCAoc3RyaW5nPSAi PCIgdmFsKSAoc3RyaW5nLW1hdGNoICJePFxcJD9bYS16QS1aMC05XzpdKz4iIHZhbCkpCisgICAg ICAoc2V0cSB2YWwgIjxOQU1FPiIpKSkKICAgICAoc2V0cSByZWdleHAgKGNvbmNhdCAiXiIKIAkJ CSAiXFwoW15hLXpBLVowLTlfOl0rWyBcdF0rXFwpPyIKIAkJCSAocmVnZXhwLXF1b3RlIHZhbCkK QEAgLTYxMzksNyArNjA5OCw3IEBACiAJIChpZiBjcGVybC1tZXNzYWdlLW9uLWhlbHAtZXJyb3IK IAkgICAgIChtZXNzYWdlICJObyBkZWZpbml0aW9uIGZvciAlcyIgdmFsKSkpKSkpKQogCi0oZGVm dmFyIGNwZXJsLXNob3J0LWRvY3MgIklnbm9yZSBteSB2YWx1ZSIKKyhkZWZ2YXIgY3Blcmwtc2hv cnQtZG9jcyAncGxlYXNlLWlnbm9yZS10aGlzLWxpbmUKICAgOzsgUGVybDQgdmVyc2lvbiB3YXMg d3JpdHRlbiBieSBKb2hhbiBWcm9tYW5zIChqdnJvbWFuc0BzcXVpcnJlbC5ubCkKICAgIiMgYmFz ZWQgb24gJ0AoIylAIHBlcmwtZGVzY3IuZWwgMS45IC0gZGVzY3JpYmUtcGVybC1zeW1ib2wnIFtQ ZXJsIDVdCiAhIC4uLglMb2dpY2FsIG5lZ2F0aW9uLgpAQCAtNjUxMiwxMiArNjQ3MSw2IEBACiBD T1JFOjoJCVByZWZpeCB0byBhY2Nlc3MgYnVpbHRpbiBmdW5jdGlvbiBpZiBpbXBvcnRlZCBzdWIg b2JzY3VyZXMgaXQuCiBTVVBFUjo6CQlQcmVmaXggdG8gbG9va3VwIGZvciBhIG1ldGhvZCBpbiBA SVNBIGNsYXNzZXMuCiBERVNUUk9ZCQlTaG9ydGhhbmQgZm9yIGBzdWIgREVTVFJPWSB7Li4ufScu Ci0uLi4gRVEgLi4uCU9ic29sZXRlIHN5bm9ueW0gb2YgYGVxJy4KLS4uLiBHRSAuLi4JT2Jzb2xl dGUgc3lub255bSBvZiBgZ2UnLgotLi4uIEdUIC4uLglPYnNvbGV0ZSBzeW5vbnltIG9mIGBndCcu Ci0uLi4gTEUgLi4uCU9ic29sZXRlIHN5bm9ueW0gb2YgYGxlJy4KLS4uLiBMVCAuLi4JT2Jzb2xl dGUgc3lub255bSBvZiBgbHQnLgotLi4uIE5FIC4uLglPYnNvbGV0ZSBzeW5vbnltIG9mIGBuZScu CiBhYnMgWyBFWFBSIF0JYWJzb2x1dGUgdmFsdWUKIC4uLiBhbmQgLi4uCQlMb3ctcHJlY2VkZW5j ZSBzeW5vbnltIGZvciAmJi4KIGJsZXNzIFJFRkVSRU5DRSBbLCBQQUNLQUdFXQlNYWtlcyByZWZl cmVuY2UgaW50byBhbiBvYmplY3Qgb2YgYSBwYWNrYWdlLgpAQCAtNjUyNSw3ICs2NDc4LDcgQEAK IGNocgkJQ29udmVydHMgYSBudW1iZXIgdG8gY2hhciB3aXRoIHRoZSBzYW1lIG9yZGluYWwuCiBl bHNlCQlQYXJ0IG9mIGlmL3VubGVzcyB7QkxPQ0t9IGVsc2lmIHtCTE9DS30gZWxzZSB7QkxPQ0t9 LgogZWxzaWYJCVBhcnQgb2YgaWYvdW5sZXNzIHtCTE9DS30gZWxzaWYge0JMT0NLfSBlbHNlIHtC TE9DS30uCi1leGlzdHMJJEhBU0h7S0VZfQlUcnVlIGlmIHRoZSBrZXkgZXhpc3RzLgorZXhpc3Rz ICRIQVNIe0tFWX0JVHJ1ZSBpZiB0aGUga2V5IGV4aXN0cy4KIGZvcm1hdCBbTkFNRV0gPQkgU3Rh cnQgb2Ygb3V0cHV0IGZvcm1hdC4gIEVuZGVkIGJ5IGEgc2luZ2xlIGRvdCAoLikgb24gYSBsaW5l LgogZm9ybWxpbmUgUElDVFVSRSwgTElTVAlCYWNrZG9vciBpbnRvIFwiZm9ybWF0XCIgcHJvY2Vz c2luZy4KIGdsb2IgRVhQUglTeW5vbnltIG9mIDxFWFBSPi4KQEAgLTY2MDMsNyArNjU1Niw3IEBA CiAgICAgKGdvdG8tY2hhciBlKQogICAgIChiZWdpbm5pbmctb2YtbGluZSkKICAgICAoaWYgKHJl LXNlYXJjaC1mb3J3YXJkICJbXiBcdF0iIGUgdCkKLQkocHJvZ24JCQkJOyBTb21ldGhpbmcgYmVm b3JlIHRoZSBlbmRpbmcgZGVsaW1pdGVyCisJKHByb2duCQkJICAgICAgIDsgU29tZXRoaW5nIGJl Zm9yZSB0aGUgZW5kaW5nIGRlbGltaXRlcgogCSAgKGdvdG8tY2hhciBlKQogCSAgKGRlbGV0ZS1o b3Jpem9udGFsLXNwYWNlKQogCSAgKGluc2VydCAiXG4iKQpAQCAtNjYzMyw4ICs2NTg2LDcgQEAK IAkJICAgICAgICJcXHwiCQk7IEdyb3VwaW5nCiAJCSAgICAgICAiXFwoKFxcKFxcP1xcKT9cXCki IDsgNyA4CiAJCSAgICAgICAiXFx8IgkJOyB8Ci0JCSAgICAgICAiXFwofFxcKSIJOyA5Ci0JCSAg ICAgICApKSkKKwkJICAgICAgICJcXCh8XFwpIikpKQk7IDkKIAkoZ290by1jaGFyIChtYXRjaC1l bmQgMCkpCiAJKHNldHEgc3BhY2VzIHQpCiAJKGNvbmQgKChtYXRjaC1iZWdpbm5pbmcgMSkJOyBB bHBoYW51bSB3b3JkICsganVuawpAQCAtNjc0NCwyMCArNjY5NiwxOSBAQAogCSAgICAobm90IHNw YWNlcykKIAkgICAgKGluc2VydCAiICIpKQogCShza2lwLWNoYXJzLWZvcndhcmQgIiBcdCIpKQot CShvciAobG9va2luZy1hdCAiWyNcbl0iKQotCSAgICAoZXJyb3IgIlVua25vd24gY29kZSBgJXMn IGluIGEgcmVnZXhwIgotCQkgICAoYnVmZmVyLXN1YnN0cmluZyAocG9pbnQpICgxKyAocG9pbnQp KSkpKQotCShhbmQgaW5saW5lIChlbmQtb2YtbGluZSAyKSkpCisgICAgICAob3IgKGxvb2tpbmct YXQgIlsjXG5dIikKKwkgIChlcnJvciAiVW5rbm93biBjb2RlIGAlcycgaW4gYSByZWdleHAiCisJ CSAoYnVmZmVyLXN1YnN0cmluZyAocG9pbnQpICgxKyAocG9pbnQpKSkpKQorICAgICAgKGFuZCBp bmxpbmUgKGVuZC1vZi1saW5lIDIpKSkKICAgICA7OyBTcGVjaWFsLWNhc2UgdGhlIGxhc3QgbGlu ZSBvZiBncm91cAogICAgIChpZiAoYW5kICg+PSAocG9pbnQpIChtYXJrZXItcG9zaXRpb24gZSkp CiAJICAgICAoLz0gKGN1cnJlbnQtaW5kZW50YXRpb24pIGMpKQogCShwcm9nbgotCSAoYmVnaW5u aW5nLW9mLWxpbmUpCi0JIChzZXRxIHMgKHBvaW50KSkKLQkgKHNraXAtY2hhcnMtZm9yd2FyZCAi IFx0IikKLQkgKGRlbGV0ZS1yZWdpb24gcyAocG9pbnQpKQotCSAoaW5kZW50LXRvLWNvbHVtbiBj KSkpCi0gICkpCisJICAoYmVnaW5uaW5nLW9mLWxpbmUpCisJICAoc2V0cSBzIChwb2ludCkpCisJ ICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHQiKQorCSAgKGRlbGV0ZS1yZWdpb24gcyAocG9pbnQp KQorCSAgKGluZGVudC10by1jb2x1bW4gYykpKSkpCiAKIChkZWZ1biBjcGVybC1tYWtlLXJlZ2V4 cC14ICgpCiAgIDs7IFJldHVybnMgcG9zaXRpb24gb2YgdGhlIHN0YXJ0CkBAIC02NzcwLDcgKzY3 MjEsNyBAQAogCW5pbAkJCQk7IGdvb2QgYWxyZWFkeQogICAgICAgKGlmIChsb29raW5nLWF0ICJc XChbc215XVxcfHFyXFwpXFxzfCIpCiAJICAoZm9yd2FyZC1jaGFyIDEpCi0JKHJlLXNlYXJjaC1i YWNrd2FyZCAiXFxzfCIpKSkJCTsgQXNzdW1lIGl0IGlzIHNjYW5uZWQgYWxyZWFkeS4KKwkocmUt c2VhcmNoLWJhY2t3YXJkICJcXHN8IikpKQk7IEFzc3VtZSBpdCBpcyBzY2FubmVkIGFscmVhZHku CiAgICAgOzsoZm9yd2FyZC1jaGFyIDEpCiAgICAgKGxldCAoKGIgKHBvaW50KSkgKGUgKG1ha2Ut bWFya2VyKSkgaGF2ZS14IGRlbGltIChjIChjdXJyZW50LWNvbHVtbikpCiAJICAoc3ViLXAgKGVx IChwcmVjZWRpbmctY2hhcikgP3MpKSBzKQpAQCAtNjgyNSwyMyArNjc3NiwyMyBAQAogV2Ugc3Vw cG9zZSB0aGF0IHRoZSByZWdleHAgaXMgc2Nhbm5lZCBhbHJlYWR5LiIKICAgKGludGVyYWN0aXZl KQogICA7OyAoc2F2ZS1leGN1cnNpb24JCTsgQ2FuJ3QsIGJyZWFrcyBgY3BlcmwtY29udHJhY3Qt bGV2ZWxzJwotICAgIChjcGVybC1yZWdleHQtdG8tbGV2ZWwtc3RhcnQpCi0gICAgKGxldCAoKGIg KHBvaW50KSkgKGUgKG1ha2UtbWFya2VyKSkgcyBjKQotICAgICAgKGZvcndhcmQtc2V4cCAxKQot ICAgICAgKHNldC1tYXJrZXIgZSAoMS0gKHBvaW50KSkpCi0gICAgICAoZ290by1jaGFyIGIpCi0g ICAgICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkICJcXCgjXFwpXFx8XG4iIGUgJ3RvLWVuZCkK LQkoY29uZAotCSAoKG1hdGNoLWJlZ2lubmluZyAxKQkJOyAjLWNvbW1lbnQKLQkgIChvciBjIChz ZXRxIGMgKGN1cnJlbnQtaW5kZW50YXRpb24pKSkKLQkgIChiZWdpbm5pbmctb2YtbGluZSAyKQkJ OyBTa2lwCi0JICAoc2V0cSBzIChwb2ludCkpCi0JICAoc2tpcC1jaGFycy1mb3J3YXJkICIgXHQi KQotCSAgKGRlbGV0ZS1yZWdpb24gcyAocG9pbnQpKQotCSAgKGluZGVudC10by1jb2x1bW4gYykp Ci0JICh0Ci0JICAoZGVsZXRlLWNoYXIgLTEpCi0JICAoanVzdC1vbmUtc3BhY2UpKSkpKSkKKyAg KGNwZXJsLXJlZ2V4dC10by1sZXZlbC1zdGFydCkKKyAgKGxldCAoKGIgKHBvaW50KSkgKGUgKG1h a2UtbWFya2VyKSkgcyBjKQorICAgIChmb3J3YXJkLXNleHAgMSkKKyAgICAoc2V0LW1hcmtlciBl ICgxLSAocG9pbnQpKSkKKyAgICAoZ290by1jaGFyIGIpCisgICAgKHdoaWxlIChyZS1zZWFyY2gt Zm9yd2FyZCAiXFwoI1xcKVxcfFxuIiBlICd0by1lbmQpCisgICAgICAoY29uZAorICAgICAgICgo bWF0Y2gtYmVnaW5uaW5nIDEpCQk7ICMtY29tbWVudAorCShvciBjIChzZXRxIGMgKGN1cnJlbnQt aW5kZW50YXRpb24pKSkKKwkoYmVnaW5uaW5nLW9mLWxpbmUgMikJCTsgU2tpcAorCShzZXRxIHMg KHBvaW50KSkKKwkoc2tpcC1jaGFycy1mb3J3YXJkICIgXHQiKQorCShkZWxldGUtcmVnaW9uIHMg KHBvaW50KSkKKwkoaW5kZW50LXRvLWNvbHVtbiBjKSkKKyAgICAgICAodAorCShkZWxldGUtY2hh ciAtMSkKKwkoanVzdC1vbmUtc3BhY2UpKSkpKSkKIAogKGRlZnVuIGNwZXJsLWNvbnRyYWN0LWxl dmVscyAoKQogICAiRmluZCBhbiBlbmNsb3NpbmcgZ3JvdXAgaW4gcmVnZXhwIGFuZCBjb250cmFj dCBhbGwgdGhlIGtpZHMuCkBAIC02ODgxLDcgKzY4MzIsNyBAQAogICAiQ2hhbmdlIGBpZiAoQSkg e0J9JyBpbnRvIGBCIGlmIEE7JyBldGMgaWYgcG9zc2libGUuIgogICAoaW50ZXJhY3RpdmUpCiAg IChvciAobG9va2luZy1hdCAiXFw8IikKLQkoZm9yd2FyZC1zZXhwIC0xKSkKKyAgICAgIChmb3J3 YXJkLXNleHAgLTEpKQogICAoaWYgKGxvb2tpbmctYXQgIlxcPFxcKGlmXFx8dW5sZXNzXFx8d2hp bGVcXHx1bnRpbFxcfGZvclxcfGZvcmVhY2hcXClcXD4iKQogICAgICAgKGxldCAoKHBvczEgKHBv aW50KSkKIAkgICAgcG9zMiBwb3MzIHBvczQgcG9zNSBzMSBzMiBzdGF0ZSBwIHBvczQ1CkBAIC03 MDkxLDggKzcwNDIsOSBAQAogKGRlZnVuIGNwZXJsLWZvbnRpZnktc3ludGF4aWNhbGx5IChlbmQp CiAgIDs7IFNvbWUgdmFycyBmb3IgZGVidWdnaW5nIG9ubHkKICAgOzsgKG1lc3NhZ2UgIlN5bnRh eGlmeWluZy4uLiIpCi0gIChsZXQgKHN0YXJ0IChkYmcgKHBvaW50KSkgKGllbmQgZW5kKQotCShp c3RhdGUgKGNhciBjcGVybC1zeW50YXgtc3RhdGUpKSkKKyAgKGxldCAoKGRiZyAocG9pbnQpKSAo aWVuZCBlbmQpCisJKGlzdGF0ZSAoY2FyIGNwZXJsLXN5bnRheC1zdGF0ZSkpCisJc3RhcnQpCiAg ICAgKGFuZCBjcGVybC1zeW50YXhpZnktdW53aW5kCiAJIChzZXRxIGVuZCAoY3BlcmwtdW53aW5k LXRvLXNhZmUgdCBlbmQpKSkKICAgICAoc2V0cSBzdGFydCAocG9pbnQpKQpAQCAtNzExMyw3ICs3 MDY1LDcgQEAKIAkJIGRiZyBpZW5kCiAJCSBzdGFydCBlbmQgY3Blcmwtc3ludGF4LWRvbmUtdG8K IAkJIGlzdGF0ZSAoY2FyIGNwZXJsLXN5bnRheC1zdGF0ZSkpKSA7IEZvciBkZWJ1Z2dpbmcKLSAg ICBuaWwpKQkJCQkJOyBEbyBub3QgaXRlcmF0ZQorICAgIG5pbCkpCQkJCTsgRG8gbm90IGl0ZXJh dGUKIAogKGRlZnVuIGNwZXJsLWZvbnRpZnktdXBkYXRlIChlbmQpCiAgIChsZXQgKChwb3MgKHBv aW50KSkgcHJvcCBwb3NlbmQpCkBAIC03MTIyLDcgKzcwNzQsNyBAQAogICAgICAgKHNldHEgcG9z ZW5kIChuZXh0LXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UgcG9zICdjcGVybC1wb3N0cG9uZSBuaWwg ZW5kKSkKICAgICAgIChhbmQgcHJvcCAocHV0LXRleHQtcHJvcGVydHkgcG9zIHBvc2VuZCAoY2Fy IHByb3ApIChjZHIgcHJvcCkpKQogICAgICAgKHNldHEgcG9zIHBvc2VuZCkpKQotICBuaWwpCQkJ CTsgRG8gbm90IGl0ZXJhdGUKKyAgbmlsKQkJCQkJOyBEbyBub3QgaXRlcmF0ZQogCiAoZGVmdW4g Y3BlcmwtdXBkYXRlLXN5bnRheGlmaWNhdGlvbiAoZnJvbSB0bykKICAgKGlmIChhbmQgY3Blcmwt dXNlLXN5bnRheC10YWJsZS10ZXh0LXByb3BlcnR5CkBAIC03MTM1LDcgKzcwODcsNyBAQAogCSAg KGNwZXJsLWZvbnRpZnktc3ludGF4aWNhbGx5IHRvKSkpKSkKIAogKGRlZnZhciBjcGVybC12ZXJz aW9uCi0gIChsZXQgKCh2ICAiUmV2aXNpb246IDQuMzIiKSkKKyAgKGxldCAoKHYgICJSZXZpc2lv bjogNC4zMyIpKQogICAgIChzdHJpbmctbWF0Y2ggIjpcXHMgKlxcKFswLTkuXStcXCkiIHYpCiAg ICAgKHN1YnN0cmluZyB2IChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVuZCAxKSkpCiAgICJW ZXJzaW9uIG9mIElaLXN1cHBvcnRlZCBDUGVybCBwYWNrYWdlIHRoaXMgZmlsZSBpcyBiYXNlZCBv bi4iKQo= --Multipart_Wed__12_Feb_2003_00:11:31_+0100_08761960 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit _______________________________________________ Bug-gnu-emacs mailing list Bug-gnu-emacs@gnu.org http://mail.gnu.org/mailman/listinfo/bug-gnu-emacs --Multipart_Wed__12_Feb_2003_00:11:31_+0100_08761960--