From unknown Sat Sep 06 09:27:55 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#27744 <27744@debbugs.gnu.org> To: bug#27744 <27744@debbugs.gnu.org> Subject: Status: CSS whitespace:pre not supported Reply-To: bug#27744 <27744@debbugs.gnu.org> Date: Sat, 06 Sep 2025 16:27:55 +0000 retitle 27744 CSS whitespace:pre not supported reassign 27744 emacs,gnus submitter 27744 Geoff Kuenning severity 27744 minor tag 27744 wontfix thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 17 17:45:24 2017 Received: (at submit) by debbugs.gnu.org; 17 Jul 2017 21:45:24 +0000 Received: from localhost ([127.0.0.1]:45017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dXDpU-0008QL-AO for submit@debbugs.gnu.org; Mon, 17 Jul 2017 17:45:24 -0400 Received: from mallet.cs.hmc.edu ([134.173.42.59]:48740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dXDpS-0008QC-2s for submit@debbugs.gnu.org; Mon, 17 Jul 2017 17:45:22 -0400 Received: from bow.cs.hmc.edu (bow-vpn.cs.hmc.edu [10.81.251.5]) by mallet.cs.hmc.edu (Postfix) with ESMTP id 8A758DC0830 for ; Mon, 17 Jul 2017 14:45:20 -0700 (PDT) Received: by bow.cs.hmc.edu (Postfix, from userid 13409) id 7AF1E6EA096A; Mon, 17 Jul 2017 14:45:20 -0700 (PDT) From: Geoff Kuenning To: submit@debbugs.gnu.org (The Gnus Bugfixing Girls + Boys) Subject: CSS whitespace:pre not supported X-Debbugs-Version: 5.13 X-Debbugs-Package: gnus Date: Mon, 17 Jul 2017 14:45:20 -0700 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain; format=flowed The "wash html" function in Gnus doesn't seem to support the whitespace:pre CSS style. I've attached a sample message in multipart/mixed format that contains HTML using whitespace:pre. If you save the HTML portion in a file and view it with a browser, you'll see that the patched code is properly indented. OTOH if you view it in Gnus with "W h", there will be no indentation. (Note: the plain-text version of the message is also improperly indented, but that's a bug at the sender end, not with Gnus.) Gnus v5.13 GNU Emacs 24.3.1 (x86_64-suse-linux-gnu, GTK+ Version 3.16.7) of 2017-01-05 on cloud112 -- Geoff Kuenning geoff@cs.hmc.edu http://www.cs.hmc.edu/~geoff/ XML: verbose obfuscation in the service of simple key-value pairs. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=whitespacepre Content-Transfer-Encoding: base64 RnJvbSBub2JvZHkgTW9uIEp1bCAxNyAxNDo0MzowNCAyMDE3ClgtRnJvbS1MaW5lOiBnZW9mZiAg RnJpIEp1bCAxNCAxMDoxMjo0MyAyMDE3ClJldHVybi1QYXRoOiA8c3JzMD13aHBwPTZyPWNzLnN0 b255YnJvb2suZWR1PW1qYWRoYXZAY3MuaG1jLmVkdT4KWC1TcGFtLUNoZWNrZXItVmVyc2lvbjog U3BhbUFzc2Fzc2luIDMuNC4xICgyMDE1LTA0LTI4KSBvbiBtYWxsZXQuY3MuaG1jLmVkdQpYLVNw YW0tTGV2ZWw6IApYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuOCByZXF1aXJlZD0zLjAgdGVz dHM9QkFZRVNfMDAsREtJTV9TSUdORUQsCglIRUFERVJfRlJPTV9ESUZGRVJFTlRfRE9NQUlOUyxI VE1MX01FU1NBR0UsUlBfTUFUQ0hFU19SQ1ZELFNQRl9IRUxPX1BBU1MsCglTUEZfUEFTUyxUX0RL SU1fSU5WQUxJRCBhdXRvbGVhcm49bm8gYXV0b2xlYXJuX2ZvcmNlPW5vIHZlcnNpb249My40LjEK WC1PcmlnaW5hbC1UbzogZ2VvZmZAbWFsbGV0LmNzLmhtYy5lZHUKRGVsaXZlcmVkLVRvOiBnZW9m ZkBtYWxsZXQuY3MuaG1jLmVkdQpSZWNlaXZlZDogZnJvbSBtYWxsZXQtdnBuLmNzLmhtYy5lZHUg WzEwLjgxLjI1MS4xXQoJYnkgYm93LmNzLmhtYy5lZHUgd2l0aCBJTUFQIChmZXRjaG1haWwtNi4z LjI2KQoJZm9yIDxnZW9mZkBsb2NhbGhvc3Q+IChzaW5nbGUtZHJvcCk7IEZyaSwgMTQgSnVsIDIw MTcgMTA6MTI6NDMgLTA3MDAgKFBEVCkKUmVjZWl2ZWQ6IGZyb20gYXJrLmNzLmhtYy5lZHUgKGFy ay5jcy5obWMuZWR1IFsxMzQuMTczLjQyLjEzMF0pCglieSBtYWxsZXQuY3MuaG1jLmVkdSAoUG9z dGZpeCkgd2l0aCBFU01UUFMgaWQgMTgxQUNEQzA2ODAKCWZvciA8Z2VvZmZAbWFsbGV0LmNzLmht Yy5lZHU+OyBGcmksIDE0IEp1bCAyMDE3IDEwOjEwOjU1IC0wNzAwIChQRFQpClJlY2VpdmVkOiBi eSBhcmsuY3MuaG1jLmVkdSAoUG9zdGZpeCkKCWlkIDBDNzhBNjQwQjcxOyBGcmksIDE0IEp1bCAy MDE3IDEwOjEwOjU1IC0wNzAwIChQRFQpCkRlbGl2ZXJlZC1UbzogZ2VvZmZAY3MuaG1jLmVkdQpS ZWNlaXZlZDogZnJvbSBlc2EyLmhtYy5pcGhteC5jb20gKGVzYTIuaG1jLmlwaG14LmNvbSBbNjgu MjMyLjEzNy4xNzFdKQoJKHVzaW5nIFRMU3YxLjIgd2l0aCBjaXBoZXIgUkM0LVNIQSAoMTI4LzEy OCBiaXRzKSkKCShObyBjbGllbnQgY2VydGlmaWNhdGUgcmVxdWVzdGVkKQoJYnkgYXJrLmNzLmht Yy5lZHUgKFBvc3RmaXgpIHdpdGggRVNNVFBTIGlkIEI5ODlGNjQwOUVECglmb3IgPGdlb2ZmQGNz LmhtYy5lZHU+OyBGcmksIDE0IEp1bCAyMDE3IDEwOjEwOjU0IC0wNzAwIChQRFQpCkF1dGhlbnRp Y2F0aW9uLVJlc3VsdHM6IGFyay5jcy5obWMuZWR1OwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkp IGhlYWRlci5kPWNzLXN0b255YnJvb2stZWR1LjIwMTUwNjIzLmdhcHBzc210cC5jb20gaGVhZGVy Lmk9QGNzLXN0b255YnJvb2stZWR1LjIwMTUwNjIzLmdhcHBzc210cC5jb20gaGVhZGVyLmI9ZCtU cFFDRjk7Cglka2ltLWF0cHM9bmV1dHJhbApJcm9uUG9ydC1QSGRyOiA9P3VzLWFzY2lpP3E/OWEy Mz0zQUNQS0UrUlh5RVRWNzcyR252SnY5bnZ0TjJqL1Y4TEd0WlZ3bHI2RS8/PQogPT91cy1hc2Np aT9xP2dyY0xTSnlJdXFyWVl4R0Z0OHRrZ0ZLQlo0akg4ZlVNMDdPUTZQRy9IelJZcWIrNjgxazZP S1JXVUJFRWpjPz0KID0/dXMtYXNjaWk/cT9oRTF5Y0JPK1dpVFhQQkVmanhjaVloRjk1RFhsSTJ0 MXV5TUV4U0JkcXNMd2FLK2k3NjRqRWRBQWp3T2hSbz89CiA9P3VzLWFzY2lpP3E/TGVycEJJSFNr OTYzMStldjhKSFBmZ2xFbmpTd2JMZHdJUm1zc1FuZHF0UWRqSmQvSktvMjFoYkh1R1pEZGY/PQog PT91cy1hc2NpaT9xPzVNeFdOdksxS1RuaEw4NmRtMThaVis3U2xldU84dit0QlpYNm5pY0tzMlVi SlhEREk5TTJBby84THJyZ1hNPz0KID0/dXMtYXNjaWk/cT9UUkdPNW5RSFRHb2JsQWRERGhYZjR4 SDdXcGZ4dFRiNnR2WjQxU0tITThENlVhdzRWREsvNUtwd1ZoVG1sRD89CiA9P3VzLWFzY2lpP3E/ a0lPQ0k0OEdIUGk4eC9rcVJib0E2NnB4ZGl4NExZZVp5Wk9PWmljcS9ZZTk0UldHaFBVZHRMVnlG WkFvMnk/PQogPT91cy1hc2NpaT9xP1lZZ0JBZmNmTStsRXRJVHl2VWNDb0FHa0NBV3dHTy9peURs RmpXTDIwNjBnMU9RaEZCbkwwZ3M2RU5NT3JYPz0KID0/dXMtYXNjaWk/cT9UVXRzaitPcU1JWHUr b3pLbkgxeXZEWk81UjFEZjQ2b2pIYUEwdW9mR1dVckp1YXNmZTFWSXZHeG5lamxXTT89CiA9P3Vz LWFzY2lpP3E/cm96bE9UT1UyZjhYczJpYzZPcGdWdmlqaEhBNnBBRnN1eldpd05vbmhJclJobzhO eUYzSitqOTF6SnNyS2Q/PQogPT91cy1hc2NpaT9xP0M0VWtKMllzQ29ISUZSdWl5Wk1ZWjlYOWtz VEh0eXVDa2d6NzBMb1o2N2N6WU95SlFnM3hQZmJ1YUljNG1NPz0KID0/dXMtYXNjaWk/cT80aDc2 V3VlUkpDdDBpR3RyZUwrK2hCdSs2MGVneXVyN1ZzbTcxRlpGc0RCSm5jWEx0bkFJenhEVDY4NkhS ZT89CiA9P3VzLWFzY2lpP3E/Vmgva3E1Mnp1QzJCcmY1dnhhTFUwMGo2YldLSUF0enFReG01Y1Fx VWpER3pYNW1FVHlqSytZYkVVay9lMm8/PQogPT91cy1hc2NpaT9xPzV2emlZclhrdkpDVEtvOTBo UnZnTXFrMWhzTy9HdjQwTWhNU1gyaWMvK1M5MUticy9WZitRTFZOamYwNmlMPz0KID0/dXMtYXNj aWk/cT9mV3Y0M0hKY2dEdks2Mkh4ZFYwcG8vNnhhNEZ6cW0zOG9Yblg0SkxGSkxZeCtJazVQcE4w dk9JUEQ5RWZpej89CiA9P3VzLWFzY2lpP3E/bVVxam55cDJ4Nk9PQXJxMEw0L0FQRER4bWJ2bWZ2 NHA1bHhmNEFRb3laWlUvTlJQRjdjUU8vaTFWMFBzNG8/PQogPT91cy1hc2NpaT9xPy8yRkJnOFpp bTkwdnY5UVBkMDJvTVhSeXJiQjYyUVBLUGJyM2VEL2FRMFArNktkWVVQdnpIK2JmVXArcWk5Pz0K ID0/dXMtYXNjaWk/cT8zamNDaFZZQmNQenhqdE1zWTNlaUU2RWplaDNCYkE9M0Q9M0Q/PQpYLUly b25Qb3J0LUFudGktU3BhbS1GaWx0ZXJlZDogdHJ1ZQpYLUlyb25Qb3J0LUFudGktU3BhbS1SZXN1 bHQ6ID0/dXMtYXNjaWk/cT9BMEVzQVFCZyttaFpmMFJTZlVwZERnOEJCUUVMQVJnWUI/PQogPT91 cy1hc2NpaT9xPzRVYkI0UnZNb2hqcDJhQk1nTmNBUnVCVElRT2cyd0hQeGdCQVFFQkFRRUJBUUVC QVFJUUFRRUpDd3NJSmpHPz0KID0/dXMtYXNjaWk/cT9DTXlRQmdTcGJaUVFaQVFFM0FSZ05BeW9L QWlRU0FRVUJJb3BDa0crUkd6K0xIMnVCYkRxREJRRUJCWVI4Qj89CiA9P3VzLWFzY2lpP3E/NE1S QVFFQkJ3SUJIUWdTZ3hhRFRZRmhpeUdDWVFHZk5ZRm9qSEtGT29JTUdZa3NobDJVRGhRZmdSVWZn VU0/PQogPT91cy1hc2NpaT9xP3hJUWdkRTJNR2hHUVBISUVvV3lRMkFZaFBBUUVCPz0KWC1JUEFT LVJlc3VsdDogPT91cy1hc2NpaT9xP0EwRXNBUUJnK21oWmYwUlNmVXBkRGc4QkJRRUxBUmdZQjRV YkI0UnZNb2hqcDJhPz0KID0/dXMtYXNjaWk/cT9CTWdOY0FSdUJUSVFPZzJ3SFB4Z0JBUUVCQVFF QkFRRUJBUUlRQVFFSkN3c0lKakdDTXlRQmdTcGJaUVFaQT89CiA9P3VzLWFzY2lpP3E/UUUzQVJn TkF5b0tBaVFTQVFVQklvcENrRytSR3orTEgydUJiRHFEQlFFQkJZUjhCNE1SQVFFQkJ3SUJIUWc/ PQogPT91cy1hc2NpaT9xP1NneGFEVFlGaGl5R0NZUUdmTllGb2pIS0ZPb0lNR1lrc2hsMlVEaFFm Z1JVZmdVTXhJUWdkRTJNR2hHUVBIPz0KID0/dXMtYXNjaWk/cT9JRW9XeVEyQVloUEFRRUI/PQpY LUlyb25Qb3J0LUFWOiBFPVNvcGhvcztpPSI1LjQwLDM1OSwxNDk2MTI3NjAwIjsKICAgZD0ic2Nh bicyMDgsMjE3IjthPSIyNDI0NTIwNSIKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjY4Lmdvb2ds ZS5jb20gKFs3NC4xMjUuODIuNjhdKQogIGJ5IGVzYTIuaG1jLmlwaG14LmNvbSB3aXRoIEVTTVRQ L1RMUy9BRVMxMjgtR0NNLVNIQTI1NjsgMTQgSnVsIDIwMTcgMTA6MTA6NTMgLTA3MDAKUmVjZWl2 ZWQ6IGJ5IG1haWwtd20wLWY2OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCAxNXNvMjQ2MzJ3bW0u MwogICAgICAgIGZvciA8Z2VvZmZAY3MuaG1jLmVkdT47IEZyaSwgMTQgSnVsIDIwMTcgMTA6MTA6 NTMgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4 ZWQvcmVsYXhlZDsKICAgICAgICBkPWNzLXN0b255YnJvb2stZWR1LjIwMTUwNjIzLmdhcHBzc210 cC5jb207IHM9MjAxNTA2MjM7CiAgICAgICAgaD1taW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3Nh Z2UtaWQ6c3ViamVjdDp0bzpjYzsKICAgICAgICBiaD1BSWtpTUc4NTBaQ3pKVmV6bFZtejBHSWtN M3Q4YnJwdTQ2K2QwYkhGZEZJPTsKICAgICAgICBiPWQrVHBRQ0Y5cHpaQnBhWi9DOWY4ZC9PRzFW bFJCSkNuRVcvbkpWRVMxNW42cUpPTkN3U1gwdVMzUStyZklGWEhhYwogICAgICAgICA2djJ1ZEZ5 K1Irc3BWRE5XRjhnUnlwTVVmckRvQVdOZ21id3pqbUlHeUVYemtIT0J3RlkyVjAzVGhEdC9yR3pK WlBtdwogICAgICAgICBWY3JDQVkxVkF2L2MxQmYrWGtVWklhTEFIcVZhRThoWEZNbkx6QlVTQmcz T1VZRERtZitpUlRvNVp4dW5wTjVueHBsYwogICAgICAgICA3amRTaFViWWNXV2NzaTBISzY3cC9G aUtSZ0hZQ2EzOFpra3E4RXJCMEtveCtYTUtDRVRsUXl3VzdSYXVkTGQ0R3VQVwogICAgICAgICBK L1EwNDJ2RTVjbEk5YTBHZHlwRHBLSkJudmpxYjJTSGVRZWpJSGxDeS9oWFl4RVZQWUlaOW4xZFJy dE5IOTZidUxBagogICAgICAgICA1TG5RPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsg YT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0y MDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpk YXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjYzsKICAgICAgICBiaD1BSWtpTUc4NTBaQ3pKVmV6 bFZtejBHSWtNM3Q4YnJwdTQ2K2QwYkhGZEZJPTsKICAgICAgICBiPW5WYU93UUZHWHJGaW5pWE1r bGVMVEwvV2dqbFQ4QndhVWpwVkVXcTRWaC9TY0pub2hKMDFNN2hyWEE3MU4ycG1ZWQogICAgICAg ICBPU0VMVEI4LzUzU1Ivdjk4M1V3QkpjaWFiVG1kd3MrUnY2MHlMcUlzeGRQbnhUVWRUYzNlcXhy RXpBTmlMemM5WWxWVwogICAgICAgICBtTjVYakdsaGpFckpkeTY2RENWZGVmdTZ3aGpXdkU0ditp aklhYi9XOFBFbktpYlZteU9wRkh2a29wUnlGbitxUmhBVwogICAgICAgICBmRncvcFlMNjV3a25r WXY1eldBMjQzSzJ5NzJtdnZQMzk3aFNicG0zOUZNMW1HcUxHbXlWTFc1ZGNDNWtJSTRYbWRpWQog ICAgICAgICBKWDdDVTdvb2xZeTNJdDFIY1BPMzUzNnlmajd6Qng1bHRYWEt1L1ErR2Y4ZE9mTjRJ NlA5QXo1aGU5OFhhV2wyUnRwVwogICAgICAgICB1KzdBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBB SVZ3MTExcjh0RE5CT093Q3ljK2gvKytHN2lGTExKNkpZNnNEOTcrTEpxUVJtNTF3dnZrS3o5NgoJ NDdud0RNZFZ0WW9USVZxL1BPNlhOMDJNV2VNWk5yRDYKWC1SZWNlaXZlZDogYnkgMTAuMjguNDgu MjAxIHdpdGggU01UUCBpZCB3MTkybXIzNTA3Nzg3d213LjI4LjE1MDAwNTIyNTE4MzE7CiBGcmks IDE0IEp1bCAyMDE3IDEwOjEwOjUxIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2Vp dmVkOiBieSAxMC4yOC4xMjkuNzYgd2l0aCBIVFRQOyBGcmksIDE0IEp1bCAyMDE3IDEwOjEwOjUx IC0wNzAwIChQRFQpCkZyb206IE1heXVyIEphZGhhdiA8bWphZGhhdkBjcy5zdG9ueWJyb29rLmVk dT4KRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxMzoxMDo1MSAtMDQwMApYLUdudXMtTWFpbC1Tb3Vy Y2U6IGZpbGU6L3Zhci9tYWlsL2dlb2ZmCk1lc3NhZ2UtSUQ6IDxDQURUUStjeWUzRFRjUmVNYXpM ND1MOTgzeDhyeD1nMjI4ZFZGaU9pMHB0PTBtK08rOUFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6 IFBhdGNoIGZvciBjYWxjdWxhdGluZyB0aGUgcGF0aCBsZW5ndGggaW4gdGhlIHVtb3Zlc3RyIGZ1 bmN0aW9uClRvOiBFcmV6IFphZG9rIDxlemtAZnNsLmNzLnN1bnlzYi5lZHU+CkNjOiBMZWl4aWFu ZyBXdSA8bGVpeGlhbmcud3VAc3Rvbnlicm9vay5lZHU+LCBEYXJzaGFuIEdvZGhpYSA8ZGdvZGhp YUBjcy5zdG9ueWJyb29rLmVkdT4sCglHZW9mZiBLdWVubmluZyA8Z2VvZmZAY3MuaG1jLmVkdT4s IEtldmluIFN1biA8a2V2aW4uc3VuLjFAc3Rvbnlicm9vay5lZHU+LAoJTWFyeWlhIE1hc2thbGlv dmEgPG1hcnlpYS5tYXNrYWxpb3ZhQHN0b255YnJvb2suZWR1PiwgTmVoaWwgU2hhaCA8bnZzaGFo QGNzLnN0b255YnJvb2suZWR1PgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsg Ym91bmRhcnk9IjAwMWExMTQyNDRlYTlkOGIwNTA1NTQ0YTIxYjYiClgtQXJjaGl2ZWQ6IGluY29t aW5nLmN1cnJlbnQKWC1HSEstR251cy1TcGxpdC1UbzogbWFpbC5pb3R0YQpYLVNvcnRlZDogVG8t bWUKTGluZXM6IDMyNgpYcmVmOiBib3cuY3MuaG1jLmVkdSBtYWlsLmlvdHRhOjIwODcxCgotLTAw MWExMTQyNDRlYTlkOGIwNTA1NTQ0YTIxYjYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKSGkgYWxsLAoKV2Ug YXJlIHRyeWluZyB0byBlbGltaW5hdGUgdGhlIG5lZWQgb2YgImdldFZhcmlhYmxlMzJGaWVsZExl bmd0aCgpIgpmdW5jdGlvbi4gU28gd2UgYXJlIHdpbGwgYmUgY2FsY3VsYXRpbmcgdGhlIGxlbmd0 aCBvZiB0aGUgZmllbGQgZGlyZWN0bHkKd2hlbiB3ZSBmZXRjaCBpdCBmcm9tIHRoZSBjaGlsZCBw cm9jZXNzZSdzIGFkZHJlc3Mgc3BhY2UuClRoaXMgcGF0Y2ggaXMganVzdCBzb21lIHNvcnQgb2Yg UE9DIHRvIGNoZWNrIGlmIHRoaXMgY2FuIGJlIGRvbmUgY29ycmVjdGx5LgpJIGhhdmUgaW1wbGVt ZW50ZWQgdGhpcyBmb3IgYSBzaW5nbGUgc3lzdGVtIGNhbGw6IGV4ZWN2ZQpUaGlzIGlzIHRoZSBv dXRwdXQgY29tcGFyaXNvbjoKCi4vc3RyYWNlOiBIZXJlIGlzIGxlbmd0aDE0LCAxMywgL3Vzci9i aW4vdGVzdAogKCBUaGUgb3V0cHV0IHNob3dzIGNhbGN1bGF0ZWQgVmFsdWUsIHZhbHVlIHJldHVy bmVkIGJ5IHN0cmxlbigpIGFuZCB0aGUKZmllbGQgZmV0Y2hlZCBmcm9tIGNoaWxkIHByb2Nlc3Mn cyBhZGRyZXNzIHNwYWNlIHJlc3BlY3RpdmVseSkuCgoKSSBoYXZlIGNsb25lZCB0aGUgZnVuY3Rp b25zIGRzX2dldF9wYXRoKCkgYW5kIHVtb3Zlc3RyKCkgYXMgZHNfZ2V0X3BhdGhfKCkKYW5kIHVt b3Zlc3RyXygpIHJlc3BlY3RpdmVseS4gVGhlIG9ubHkgY2hhbmdlcyBpbiB0aGVzZSBmdW5jdGlv bnMgYXJlIHRoZQpvbmVzIHdoaWNoIGZvbGxvdyB0aGUgY29tbWVudHMgcmVwcmVzZW50ZWQgYnkg Ii8vIiB0aGUgb3JpZ2luYWwgY29kZSBoYXMKY29tbWVudHMgYXMgIi8qLi4uKi8iLgoKSGVyZSBp cyB0aGUgcGF0Y2g6CgoKZGlmZiAtLWdpdCBhL2RlZnMuaCBiL2RlZnMuaAppbmRleCBhMTNhZjcz Li40NGQ0YjI3IDEwMDY0NAotLS0gYS9kZWZzLmgKKysrIGIvZGVmcy5oCkBAIC01OTQsNiArNTk0 LDcgQEAgZXh0ZXJuIGludAogdW1vdmVuX29yX3ByaW50YWRkcl9pZ25vcmVfc3lzZXJyb3Ioc3Ry dWN0IHRjYiAqdGNwLCBjb25zdCBsb25nIGFkZHIsCiAgICAgY29uc3QgdW5zaWduZWQgaW50IGxl biwgdm9pZCAqb3VyX2FkZHIpOwogZXh0ZXJuIGludCB1bW92ZXN0cihzdHJ1Y3QgdGNiICosIGxv bmcsIHVuc2lnbmVkIGludCwgY2hhciAqKTsKK2V4dGVybiBpbnQgdW1vdmVzdHJfKHN0cnVjdCB0 Y2IgKiwgbG9uZywgdW5zaWduZWQgaW50LCBjaGFyICosIGxvbmcgKmxlbik7CiBleHRlcm4gaW50 IHVwZWVrKGludCBwaWQsIGxvbmcsIGxvbmcgKik7CiBleHRlcm4gaW50IHVwb2tlKGludCBwaWQs IGxvbmcsIGxvbmcpOwoKQEAgLTEwMjQsNiArMTAyNSw3IEBAIGV4dGVybiBzdHJ1Y3QgZmF1bHRf b3B0cwoqZmF1bHRfdmVjW1NVUFBPUlRFRF9QRVJTT05BTElUSUVTXTsKCiAjIGRlZmluZSBEU19N QVhfQVJHUyAzIC8qIE1heGltdW0gbnVtYmVyIG9mIHZfYXJncyBkZWZpbmVkIGZvciBkYXRhc2Vy aWVzCiovCiBleHRlcm4gY2hhciAqZHNfZ2V0X3BhdGgoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFk ZHIpOworZXh0ZXJuIGNoYXIgKmRzX2dldF9wYXRoXyhzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRk ciwgbG9uZyAqbGVuKTsKIGV4dGVybiBjaGFyICpkc19nZXRfbmFtZShzdHJ1Y3QgdGNiICp0Y3As IGxvbmcgYWRkcik7CiBleHRlcm4gdm9pZCAqZHNfZ2V0X2J1ZmZlcihzdHJ1Y3QgdGNiICp0Y3As IGxvbmcgYWRkciwgbG9uZyBsZW4pOwogZXh0ZXJuIHN0cnVjdCBzdGF0ICpkc19nZXRfc3RhdF9i dWZmZXIoc3RydWN0IHRjYiAqdGNwLCBjb25zdCBsb25nIGFkZHIpOwpkaWZmIC0tZ2l0IGEvc3lz Y2FsbC5jIGIvc3lzY2FsbC5jCmluZGV4IDA3YWRkNzguLjg0MThlYTcgMTAwNjQ0Ci0tLSBhL3N5 c2NhbGwuYworKysgYi9zeXNjYWxsLmMKQEAgLTYyNyw2ICs2MjcsNyBAQCB0cmFjZV9zeXNjYWxs X2VudGVyaW5nKHN0cnVjdCB0Y2IgKnRjcCkKICB2b2lkICpjb21tb25fZmllbGRzW0RTX05VTV9D T01NT05fRklFTERTXTsKICBib29sIGV4aXRfZ2VuZXJhdGVkID0gZmFsc2U7CiAgaW50IGNvbnRp bnVhdGlvbl9udW1iZXI7CisgbG9uZyB0ZXN0TGVuOwogI2VuZGlmIC8qIEVOQUJMRV9EQVRBU0VS SUVTICovCgogIHNjbm9fZ29vZCA9IHJlcyA9IGdldF9zY25vKHRjcCk7CkBAIC03ODksOCArNzkw LDkgQEAgdHJhY2Vfc3lzY2FsbF9lbnRlcmluZyhzdHJ1Y3QgdGNiICp0Y3ApCiAgJnRjcC0+ZHNp ZDsKICBjb250aW51YXRpb25fbnVtYmVyID0gMDsKICB2X2FyZ3NbMF0gPSAmY29udGludWF0aW9u X251bWJlcjsKLSB2X2FyZ3NbMV0gPSBkc19nZXRfcGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwot CisgLy92X2FyZ3NbMV0gPSBkc19nZXRfcGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworIHZfYXJn c1sxXSA9IGRzX2dldF9wYXRoXyh0Y3AsIHRjcC0+dV9hcmdbMF0sJnRlc3RMZW4pOworIGVycm9y X21zZygiSGVyZSBpcyBsZW5ndGglbGQsICVkLCAlcyIsdGVzdExlbiwgc3RybGVuKHZfYXJnc1sx XSksCnZfYXJnc1sxXSk7CiAgLyogQWRkIGZpcnN0IHJlY29yZCB0byB0aGUgZGF0YXNlcmllcyBm aWxlLiAqLwogIGRzX3dyaXRlX3JlY29yZChkc19tb2R1bGUsICJleGVjdmUiLCB0Y3AtPnVfYXJn LAogIGNvbW1vbl9maWVsZHMsIHZfYXJncyk7CmRpZmYgLS1naXQgYS91dGlsLmMgYi91dGlsLmMK aW5kZXggYjQzNDc2ZS4uNWIyOTFhZiAxMDA2NDQKLS0tIGEvdXRpbC5jCisrKyBiL3V0aWwuYwpA QCAtMTI3Niw3ICsxMjc2LDYgQEAgdW1vdmVzdHIoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIs IHVuc2lnbmVkIGludApsZW4sIGNoYXIgKmxhZGRyKQogIGlmICghcHJvY2Vzc192bV9yZWFkdl9u b3Rfc3VwcG9ydGVkKSB7CiAgY29uc3Qgc2l6ZV90IHBhZ2Vfc2l6ZSA9IGdldF9wYWdlc2l6ZSgp OwogIGNvbnN0IHNpemVfdCBwYWdlX21hc2sgPSBwYWdlX3NpemUgLSAxOwotCiAgd2hpbGUgKGxl biA+IDApIHsKICB1bnNpZ25lZCBpbnQgY2h1bmtfbGVuOwogIHVuc2lnbmVkIGludCBlbmRfaW5f cGFnZTsKQEAgLTEzOTcsNiArMTM5NiwxNzYgQEAgdW1vdmVzdHIoc3RydWN0IHRjYiAqdGNwLCBs b25nIGFkZHIsIHVuc2lnbmVkIGludApsZW4sIGNoYXIgKmxhZGRyKQogIHJldHVybiAwOwogfQoK K2ludAordW1vdmVzdHJfKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyLCB1bnNpZ25lZCBpbnQg bGVuLCBjaGFyICpsYWRkciwgbG9uZwoqcmV0TGVuKQoreworI2lmIFNJWkVPRl9MT05HID09IDQK KyBjb25zdCB1bnNpZ25lZCBsb25nIHgwMTAxMDEwMSA9IDB4MDEwMTAxMDF1bDsKKyBjb25zdCB1 bnNpZ25lZCBsb25nIHg4MDgwODA4MCA9IDB4ODA4MDgwODB1bDsKKyNlbGlmIFNJWkVPRl9MT05H ID09IDgKKyBjb25zdCB1bnNpZ25lZCBsb25nIHgwMTAxMDEwMSA9IDB4MDEwMTAxMDEwMTAxMDEw MXVsOworIGNvbnN0IHVuc2lnbmVkIGxvbmcgeDgwODA4MDgwID0gMHg4MDgwODA4MDgwODA4MDgw dWw7CisjZWxzZQorIyBlcnJvciBTSVpFT0ZfTE9ORyA+IDgKKyNlbmRpZgorIC8vIFN0b3JlIHRo ZSBvcmlnaW5hbCBtYXhpbXVtIGxlbmd0aCBwYXNzZWQKKyBpbnQgZ2l2ZW5MZW4gPSBsZW47Cisg aW50IHBpZCA9IHRjcC0+cGlkOworIHVuc2lnbmVkIGludCBuLCBtLCBucmVhZDsKKyB1bmlvbiB7 CisgdW5zaWduZWQgbG9uZyB2YWw7CisgY2hhciB4W3NpemVvZihsb25nKV07CisgfSB1OworCisj aWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxICYmIFNJWkVPRl9MT05HID4gNAorIGlmIChj dXJyZW50X3dvcmRzaXplIDwgc2l6ZW9mKGFkZHIpKQorIGFkZHIgJj0gKDF1bCA8PCA4ICogY3Vy cmVudF93b3Jkc2l6ZSkgLSAxOworI2VuZGlmCisKKyBucmVhZCA9IDA7CisgaWYgKHByb2Nlc3Nf dm1fcmVhZHZfbm90X3N1cHBvcnRlZCkgeworIGNvbnN0IHNpemVfdCBwYWdlX3NpemUgPSBnZXRf cGFnZXNpemUoKTsKKyBjb25zdCBzaXplX3QgcGFnZV9tYXNrID0gcGFnZV9zaXplIC0gMTsKKyB3 aGlsZSAobGVuID4gMCkgeworIHVuc2lnbmVkIGludCBjaHVua19sZW47CisgdW5zaWduZWQgaW50 IGVuZF9pbl9wYWdlOworCisgLyoKKyAqIERvbid0IGNyb3NzIHBhZ2VzLCBvdGhlcndpc2Ugd2Ug Y2FuIGdldCBFRkFVTFQKKyAqIGFuZCBmYWlsIHRvIG5vdGljZSB0aGF0IHRlcm1pbmF0aW5nIE5V TCBsaWVzCisgKiBpbiB0aGUgZXhpc3RpbmcgKGZpcnN0KSBwYWdlLgorICovCisgY2h1bmtfbGVu ID0gbGVuID4gcGFnZV9zaXplID8gcGFnZV9zaXplIDogbGVuOworIGVuZF9pbl9wYWdlID0gKGFk ZHIgKyBjaHVua19sZW4pICYgcGFnZV9tYXNrOworIGlmIChjaHVua19sZW4gPiBlbmRfaW5fcGFn ZSkgLyogY3Jvc3NlcyB0byB0aGUgbmV4dCBwYWdlICovCisgY2h1bmtfbGVuIC09IGVuZF9pbl9w YWdlOworCisgaW50IHIgPSB2bV9yZWFkX21lbShwaWQsIGxhZGRyLCBhZGRyLCBjaHVua19sZW4p OworIGlmIChyID4gMCkgeworIGNoYXIgKiBwY2g7CisgcGNoID0gKGNoYXIgKikgbWVtY2hyKGxh ZGRyLCAnXDAnLCByKTsKKyBpZiAocGNoICE9IE5VTEwpCisgeworIC8vY2FsY3VsYXRlIGxlbmd0 aCBhcyAobWF4IHNpemUpIC0gKGN1cnJlbnQgbGVuZ3RoIGxlZnQpICsgKHBvc2l0aW9uIG9mClww KQorICpyZXRMZW4gPSAoZ2l2ZW5MZW4gLSBsZW4pICsgKChwY2ggLSBsYWRkcikgKyAxKTsKKyBy ZXR1cm4gMTsKKyB9CisgYWRkciArPSByOworIGxhZGRyICs9IHI7CisgbnJlYWQgKz0gcjsKKyBs ZW4gLT0gcjsKKyBjb250aW51ZTsKKyB9Cisgc3dpdGNoIChlcnJubykgeworIGNhc2UgRU5PU1lT OgorIHByb2Nlc3Nfdm1fcmVhZHZfbm90X3N1cHBvcnRlZCA9IDE7CisgZ290byB2bV9yZWFkdl9k aWRudF93b3JrOworIGNhc2UgRVNSQ0g6CisgLyogdGhlIHByb2Nlc3MgaXMgZ29uZSAqLworIHJl dHVybiAtMTsKKyBjYXNlIEVQRVJNOgorIC8qIG9wZXJhdGlvbiBub3QgcGVybWl0dGVkLCB0cnkg UFRSQUNFX1BFRUtEQVRBICovCisgaWYgKCFucmVhZCkKKyBnb3RvIHZtX3JlYWR2X2RpZG50X3dv cms7CisgLyogZmFsbCB0aHJvdWdoICovCisgY2FzZSBFRkFVTFQ6IGNhc2UgRUlPOgorIC8qIGFk ZHJlc3Mgc3BhY2UgaXMgaW5hY2Nlc3NpYmxlICovCisgaWYgKG5yZWFkKSB7CisgcGVycm9yX21z ZygidW1vdmVzdHI6IHNob3J0IHJlYWQgKCVkIDwgJWQpIEAweCVseCIsCisgICBucmVhZCwgbnJl YWQgKyBsZW4sIGFkZHIgLSBucmVhZCk7CisgfQorIHJldHVybiAtMTsKKyBkZWZhdWx0OgorIC8q IGFsbCB0aGUgcmVzdCBpcyBzdHJhbmdlIGFuZCBzaG91bGQgYmUgcmVwb3J0ZWQgKi8KKyBwZXJy b3JfbXNnKCJwcm9jZXNzX3ZtX3JlYWR2Iik7CisgcmV0dXJuIC0xOworIH0KKyB9CisgcmV0dXJu IDA7CisgfQorIHZtX3JlYWR2X2RpZG50X3dvcms6CisKKyBpZiAoYWRkciAmIChzaXplb2YobG9u ZykgLSAxKSkgeworIC8qIGFkZHIgbm90IGEgbXVsdGlwbGUgb2Ygc2l6ZW9mKGxvbmcpICovCisg biA9IGFkZHIgJiAoc2l6ZW9mKGxvbmcpIC0gMSk7IC8qIHJlc2lkdWUgKi8KKyBhZGRyICY9IC1z aXplb2YobG9uZyk7IC8qIGFsaWduZWQgYWRkcmVzcyAqLworIGVycm5vID0gMDsKKyB1LnZhbCA9 IHB0cmFjZShQVFJBQ0VfUEVFS0RBVEEsIHBpZCwgKHZvaWQgKikgYWRkciwgMCk7Cisgc3dpdGNo IChlcnJubykgeworIGNhc2UgMDoKKyBicmVhazsKKyBjYXNlIEVTUkNIOiBjYXNlIEVJTlZBTDoK KyAvKiB0aGVzZSBjb3VsZCBiZSBzZWVuIGlmIHRoZSBwcm9jZXNzIGlzIGdvbmUgKi8KKyByZXR1 cm4gLTE7CisgY2FzZSBFRkFVTFQ6IGNhc2UgRUlPOiBjYXNlIEVQRVJNOgorIC8qIGFkZHJlc3Mg c3BhY2UgaXMgaW5hY2Nlc3NpYmxlICovCisgcmV0dXJuIC0xOworIGRlZmF1bHQ6CisgLyogYWxs IHRoZSByZXN0IGlzIHN0cmFuZ2UgYW5kIHNob3VsZCBiZSByZXBvcnRlZCAqLworIHBlcnJvcl9t c2coInVtb3Zlc3RyOiBQVFJBQ0VfUEVFS0RBVEEgcGlkOiVkIEAweCVseCIsCisgICAgcGlkLCBh ZGRyKTsKKyByZXR1cm4gLTE7CisgfQorIG0gPSBNSU4oc2l6ZW9mKGxvbmcpIC0gbiwgbGVuKTsK KyBtZW1jcHkobGFkZHIsICZ1Lnhbbl0sIG0pOworICpyZXRMZW4gPSAwO2kKKyAvLyBDYWxjdWxh dGUgTGVuZ3RoIGhlcmUgaWYgdGhlIGFkZHJlcyBpc24ndCBsb25nd29yZCBhbGlnbmVkIGFuZCB0 aGUKbGVuZ3RoIGlzIGxlc3MgdGhhbiB0aGUgbGVuZ3RoIG9mIG1pc2FsaWdubWVudAorIHdoaWxl IChuICYgKHNpemVvZihsb25nKSAtIDEpKSB7CisgaWYgKHUueFtuKytdID09ICdcMCcpIHsKKyAq cmV0TGVuKys7CisgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX21zZygiRm91bmQgbGVuZ3Ro IGVsc2V3aGVyZSIpOworIHJldHVybiAxOworIH0KKyB9CisgYWRkciArPSBzaXplb2YobG9uZyk7 CisgbGFkZHIgKz0gbTsKKyBucmVhZCArPSBtOworIGxlbiAtPSBtOworIH0KKworIHdoaWxlIChs ZW4pIHsKKyBlcnJubyA9IDA7CisgdS52YWwgPSBwdHJhY2UoUFRSQUNFX1BFRUtEQVRBLCBwaWQs ICh2b2lkICopIGFkZHIsIDApOworIHN3aXRjaCAoZXJybm8pIHsKKyBjYXNlIDA6CisgYnJlYWs7 CisgY2FzZSBFU1JDSDogY2FzZSBFSU5WQUw6CisgLyogdGhlc2UgY291bGQgYmUgc2VlbiBpZiB0 aGUgcHJvY2VzcyBpcyBnb25lICovCisgcmV0dXJuIC0xOworIGNhc2UgRUZBVUxUOiBjYXNlIEVJ TzogY2FzZSBFUEVSTToKKyAvKiBhZGRyZXNzIHNwYWNlIGlzIGluYWNjZXNzaWJsZSAqLworIGlm IChucmVhZCkgeworIHBlcnJvcl9tc2coInVtb3Zlc3RyOiBzaG9ydCByZWFkICglZCA8ICVkKSBA MHglbHgiLAorICAgbnJlYWQsIG5yZWFkICsgbGVuLCBhZGRyIC0gbnJlYWQpOworIH0KKyByZXR1 cm4gLTE7CisgZGVmYXVsdDoKKyAvKiBhbGwgdGhlIHJlc3QgaXMgc3RyYW5nZSBhbmQgc2hvdWxk IGJlIHJlcG9ydGVkICovCisgcGVycm9yX21zZygidW1vdmVzdHI6IFBUUkFDRV9QRUVLREFUQSBw aWQ6JWQgQDB4JWx4IiwKKyAgIHBpZCwgYWRkcik7CisgcmV0dXJuIC0xOworIH0KKyBtID0gTUlO KHNpemVvZihsb25nKSwgbGVuKTsKKyBtZW1jcHkobGFkZHIsIHUueCwgbSk7CisgLyogIklmIGEg TlVMIGNoYXIgZXhpc3RzIGluIHRoaXMgd29yZCIgKi8KKyBpZiAoKHUudmFsIC0geDAxMDEwMTAx KSAmIH51LnZhbCAmIHg4MDgwODA4MCkgeworIGNoYXIgKiBwY2g7CisgICAgICAgICAgICAgICAg ICAgICAgICBwY2ggPSAoY2hhciAqKSBtZW1jaHIobGFkZHIsICdcMCcsIG0pOworICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKHBjaCAhPSBOVUxMKXsKKyAvL2NhbGN1bGF0ZSBsZW5ndGggYXMg KG1heCBzaXplKSAtIChjdXJyZW50IGxlbmd0aCBsZWZ0KSArIChwb3NpdGlvbiBvZgpcMCkKKyAg ICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbXNnKCJGb3VuZCBsZW5ndGg6ICVsZCIsKGdpdmVu TGVuIC0gbGVuKSArCigocGNoIC0gbGFkZHIpICsgMSkpOworICAgICAgICAgICAgICAgICAgICAg ICAgICpyZXRMZW4gPSAoZ2l2ZW5MZW4gLSBsZW4pICsgKChwY2ggLSBsYWRkcikgKyAxKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAg ICAgICAgfQorCisgfQorIGFkZHIgKz0gc2l6ZW9mKGxvbmcpOworIGxhZGRyICs9IG07CisgbnJl YWQgKz0gbTsKKyBsZW4gLT0gbTsKKyB9CisgcmV0dXJuIDA7Cit9CiAvKgogICogSXRlcmF0aXZl bHkgZmV0Y2ggYW5kIHByaW50IHVwIHRvIG5tZW1iIGVsZW1lbnRzIG9mIGVsZW1fc2l6ZSBzaXpl CiAgKiBmcm9tIHRoZSBhcnJheSB0aGF0IHN0YXJ0cyBhdCB0cmFjZWUncyBhZGRyZXNzIHN0YXJ0 X2FkZHIuCkBAIC0xNjQyLDYgKzE4MTEsNDEgQEAgb3V0OgogIHJldHVybiBwYXRoOwogfQoKK2No YXIgKgorZHNfZ2V0X3BhdGhfKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyLGxvbmcgKmxlbiAp Cit7CisgY2hhciAqcGF0aCA9IE5VTEw7CisgaW50IG51bF9zZWVuOworIGxvbmcgcmV0bGVuOwor IGlmICghYWRkcikKKyBnb3RvIG91dDsKKworIC8qCisgKiBOb3RlOiB4bWFsbG9jIHN1Y2NlZWRz IGFsd2F5cyBvciBhYm9ydHMgdGhlIHRyYWNlIHByb2Nlc3MKKyAqIHdpdGggYW4gZXJyb3IgbWVz c2FnZSB0byBzdGRlcnIuCisgKi8KKyBwYXRoID0geG1hbGxvYyhQQVRIX01BWCArIDEpOworCisg LyoKKyAqIEZldGNoIG9uZSBieXRlIG1vcmUgdG8gZmluZCBvdXQgd2hldGhlciBwYXRoIGxlbmd0 aCBpcworICogZ3JlYXRlciB0aGFuIFBBVEhfTUFYLgorICovCisgbnVsX3NlZW4gPSB1bW92ZXN0 cl8odGNwLCBhZGRyLCBQQVRIX01BWCArIDEsIHBhdGgsJnJldGxlbik7CisgKmxlbiA9IHJldGxl bjsKKyBpZiAobnVsX3NlZW4gPCAwKQorIGdvdG8gb3V0X2ZyZWU7CisgZWxzZSB7CisgcGF0aFtQ QVRIX01BWF0gPSAnXDAnOworIGdvdG8gb3V0OworIH0KK291dF9mcmVlOgorIGlmIChwYXRoKSB7 CisgZnJlZShwYXRoKTsKKyBwYXRoID0gTlVMTDsKKyB9CitvdXQ6CisgcmV0dXJuIHBhdGg7Cit9 CiAvKgogICogVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgYSBidWZmZXIgcGFzc2VkIGFzIGFuCiAg KiBhcmd1bWVudCB0byBzeXN0ZW0gY2FsbC4gIEl0IGludGVybmFsbHkgY2FsbHMgdW1vdmVuKCkK CgpUaGFua3MsCk1heXVyCgotLTAwMWExMTQyNDRlYTlkOGIwNTA1NTQ0YTIxYjYKQ29udGVudC1U eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA4Yml0Cgo8ZGl2IGRpcj0ibHRyIj5IaSBhbGwsPGRpdj48YnI+PC9kaXY+PGRpdj5XZSBhcmUg dHJ5aW5nIHRvIGVsaW1pbmF0ZSB0aGUgbmVlZCBvZiAmcXVvdDtnZXRWYXJpYWJsZTMyRmllbGRM ZW5ndGgoKSZxdW90OyBmdW5jdGlvbi4gU28gd2UgYXJlIHdpbGwgYmUgY2FsY3VsYXRpbmcgdGhl IGxlbmd0aCBvZiB0aGUgZmllbGQgZGlyZWN0bHkgd2hlbiB3ZSBmZXRjaCBpdCBmcm9tIHRoZSBj aGlsZCBwcm9jZXNzZSYjMzk7cyBhZGRyZXNzIHNwYWNlLjwvZGl2PjxkaXY+VGhpcyBwYXRjaCBp cyBqdXN0IHNvbWUgc29ydCBvZiBQT0MgdG8gY2hlY2sgaWYgdGhpcyBjYW4gYmUgZG9uZSBjb3Jy ZWN0bHkuIEkgaGF2ZSBpbXBsZW1lbnRlZCB0aGlzIGZvciBhIHNpbmdsZSBzeXN0ZW0gY2FsbDog ZXhlY3ZlPC9kaXY+PGRpdj5UaGlzIGlzIHRoZSBvdXRwdXQgY29tcGFyaXNvbjo8L2Rpdj48ZGl2 Pjxicj48L2Rpdj48ZGl2Pi4vc3RyYWNlOiBIZXJlIGlzIGxlbmd0aDE0LCAxMywgL3Vzci9iaW4v dGVzdMKgPC9kaXY+PGRpdj7CoCggVGhlIG91dHB1dCBzaG93cyBjYWxjdWxhdGVkIFZhbHVlLCB2 YWx1ZSByZXR1cm5lZCBieSBzdHJsZW4oKSBhbmQgdGhlIGZpZWxkIGZldGNoZWQgZnJvbSBjaGls ZCBwcm9jZXNzJiMzOTtzIGFkZHJlc3Mgc3BhY2UgcmVzcGVjdGl2ZWx5KS48YnI+PC9kaXY+PGRp dj48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5JIGhhdmUgY2xvbmVkIHRoZSBmdW5jdGlv bnMgZHNfZ2V0X3BhdGgoKSBhbmQgdW1vdmVzdHIoKSBhcyBkc19nZXRfcGF0aF8oKSBhbmQgdW1v dmVzdHJfKCkgcmVzcGVjdGl2ZWx5LiBUaGUgb25seSBjaGFuZ2VzIGluIHRoZXNlIGZ1bmN0aW9u cyBhcmUgdGhlIG9uZXMgd2hpY2ggZm9sbG93IHRoZSBjb21tZW50cyByZXByZXNlbnRlZCBieSAm cXVvdDsvLyZxdW90OyB0aGUgb3JpZ2luYWwgY29kZSBoYXMgY29tbWVudHMgYXMgJnF1b3Q7Lyou Li4qLyZxdW90Oy48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkhlcmUgaXMgdGhlIHBhdGNoOjwv ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGRpdj5kaWZmIC0tZ2l0IGEv ZGVmcy5oIGIvZGVmcy5oPC9kaXY+PGRpdj5pbmRleCBhMTNhZjczLi40NGQ0YjI3IDEwMDY0NDwv ZGl2PjxkaXY+LS0tIGEvZGVmcy5oPC9kaXY+PGRpdj4rKysgYi9kZWZzLmg8L2Rpdj48ZGl2PkBA IC01OTQsNiArNTk0LDcgQEAgZXh0ZXJuIGludDwvZGl2PjxkaXY+wqB1bW92ZW5fb3JfcHJpbnRh ZGRyX2lnbm9yZV9zeXNlcnJvcihzdHJ1Y3QgdGNiICp0Y3AsIGNvbnN0IGxvbmcgYWRkciw8L2Rp dj48ZGl2PsKgPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCTwvc3Bhbj4gwqAgwqBj b25zdCB1bnNpZ25lZCBpbnQgbGVuLCB2b2lkICpvdXJfYWRkcik7PC9kaXY+PGRpdj7CoGV4dGVy biBpbnQgdW1vdmVzdHIoc3RydWN0IHRjYiAqLCBsb25nLCB1bnNpZ25lZCBpbnQsIGNoYXIgKik7 PC9kaXY+PGRpdj4rZXh0ZXJuIGludCB1bW92ZXN0cl8oc3RydWN0IHRjYiAqLCBsb25nLCB1bnNp Z25lZCBpbnQsIGNoYXIgKiwgbG9uZyAqbGVuKTs8L2Rpdj48ZGl2PsKgZXh0ZXJuIGludCB1cGVl ayhpbnQgcGlkLCBsb25nLCBsb25nICopOzwvZGl2PjxkaXY+wqBleHRlcm4gaW50IHVwb2tlKGlu dCBwaWQsIGxvbmcsIGxvbmcpOzwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PkBAIC0xMDI0LDYgKzEw MjUsNyBAQCBleHRlcm4gc3RydWN0IGZhdWx0X29wdHMgKmZhdWx0X3ZlY1tTVVBQT1JURURfUEVS U09OQUxJVElFU107PC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+wqAjIGRlZmluZSBEU19NQVhfQVJH UyAzIC8qIE1heGltdW0gbnVtYmVyIG9mIHZfYXJncyBkZWZpbmVkIGZvciBkYXRhc2VyaWVzICov PC9kaXY+PGRpdj7CoGV4dGVybiBjaGFyICpkc19nZXRfcGF0aChzdHJ1Y3QgdGNiICp0Y3AsIGxv bmcgYWRkcik7PC9kaXY+PGRpdj4rZXh0ZXJuIGNoYXIgKmRzX2dldF9wYXRoXyhzdHJ1Y3QgdGNi ICp0Y3AsIGxvbmcgYWRkciwgbG9uZyAqbGVuKTs8L2Rpdj48ZGl2PsKgZXh0ZXJuIGNoYXIgKmRz X2dldF9uYW1lKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyKTs8L2Rpdj48ZGl2PsKgZXh0ZXJu IHZvaWQgKmRzX2dldF9idWZmZXIoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGxvbmcgbGVu KTs8L2Rpdj48ZGl2PsKgZXh0ZXJuIHN0cnVjdCBzdGF0ICpkc19nZXRfc3RhdF9idWZmZXIoc3Ry dWN0IHRjYiAqdGNwLCBjb25zdCBsb25nIGFkZHIpOzwvZGl2PjxkaXY+ZGlmZiAtLWdpdCBhL3N5 c2NhbGwuYyBiL3N5c2NhbGwuYzwvZGl2PjxkaXY+aW5kZXggMDdhZGQ3OC4uODQxOGVhNyAxMDA2 NDQ8L2Rpdj48ZGl2Pi0tLSBhL3N5c2NhbGwuYzwvZGl2PjxkaXY+KysrIGIvc3lzY2FsbC5jPC9k aXY+PGRpdj5AQCAtNjI3LDYgKzYyNyw3IEBAIHRyYWNlX3N5c2NhbGxfZW50ZXJpbmcoc3RydWN0 IHRjYiAqdGNwKTwvZGl2PjxkaXY+wqA8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9z cGFuPnZvaWQgKmNvbW1vbl9maWVsZHNbRFNfTlVNX0NPTU1PTl9GSUVMRFNdOzwvZGl2PjxkaXY+ wqA8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmJvb2wgZXhpdF9nZW5lcmF0 ZWQgPSBmYWxzZTs8L2Rpdj48ZGl2PsKgPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj5pbnQgY29udGludWF0aW9uX251bWJlcjs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPmxvbmcgdGVzdExlbjs8L2Rpdj48ZGl2PsKgI2VuZGlmIC8q IEVOQUJMRV9EQVRBU0VSSUVTICovPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+wqA8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnNjbm9fZ29vZCA9IHJlcyA9IGdldF9zY25vKHRj cCk7PC9kaXY+PGRpdj5AQCAtNzg5LDggKzc5MCw5IEBAIHRyYWNlX3N5c2NhbGxfZW50ZXJpbmco c3RydWN0IHRjYiAqdGNwKTwvZGl2PjxkaXY+wqA8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCQkJCQk8L3NwYW4+JmFtcDt0Y3AtJmd0O2RzaWQ7PC9kaXY+PGRpdj7CoDxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5jb250aW51YXRpb25fbnVtYmVyID0gMDs8L2Rp dj48ZGl2PsKgPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPnZfYXJnc1sw XSA9ICZhbXA7Y29udGludWF0aW9uX251bWJlcjs8L2Rpdj48ZGl2Pi08c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+dl9hcmdzWzFdID0gZHNfZ2V0X3BhdGgodGNwLCB0Y3At Jmd0O3VfYXJnWzBdKTs8L2Rpdj48ZGl2Pi08L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCQk8L3NwYW4+Ly92X2FyZ3NbMV0gPSBkc19nZXRfcGF0aCh0Y3AsIHRjcC0m Z3Q7dV9hcmdbMF0pOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ CTwvc3Bhbj52X2FyZ3NbMV0gPSBkc19nZXRfcGF0aF8odGNwLCB0Y3AtJmd0O3VfYXJnWzBdLCZh bXA7dGVzdExlbik7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJ PC9zcGFuPmVycm9yX21zZygmcXVvdDtIZXJlIGlzIGxlbmd0aCVsZCwgJWQsICVzJnF1b3Q7LHRl c3RMZW4sIHN0cmxlbih2X2FyZ3NbMV0pLCB2X2FyZ3NbMV0pOzwvZGl2PjxkaXY+wqA8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+LyogQWRkIGZpcnN0IHJlY29yZCB0byB0 aGUgZGF0YXNlcmllcyBmaWxlLiAqLzwvZGl2PjxkaXY+wqA8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCQk8L3NwYW4+ZHNfd3JpdGVfcmVjb3JkKGRzX21vZHVsZSwgJnF1b3Q7ZXhlY3Zl JnF1b3Q7LCB0Y3AtJmd0O3VfYXJnLDwvZGl2PjxkaXY+wqA8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCQkJCTwvc3Bhbj5jb21tb25fZmllbGRzLCB2X2FyZ3MpOzwvZGl2PjxkaXY+ZGlm ZiAtLWdpdCBhL3V0aWwuYyBiL3V0aWwuYzwvZGl2PjxkaXY+aW5kZXggYjQzNDc2ZS4uNWIyOTFh ZiAxMDA2NDQ8L2Rpdj48ZGl2Pi0tLSBhL3V0aWwuYzwvZGl2PjxkaXY+KysrIGIvdXRpbC5jPC9k aXY+PGRpdj5AQCAtMTI3Niw3ICsxMjc2LDYgQEAgdW1vdmVzdHIoc3RydWN0IHRjYiAqdGNwLCBs b25nIGFkZHIsIHVuc2lnbmVkIGludCBsZW4sIGNoYXIgKmxhZGRyKTwvZGl2PjxkaXY+wqA8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmICghcHJvY2Vzc192bV9yZWFkdl9u b3Rfc3VwcG9ydGVkKSB7PC9kaXY+PGRpdj7CoDxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJPC9zcGFuPmNvbnN0IHNpemVfdCBwYWdlX3NpemUgPSBnZXRfcGFnZXNpemUoKTs8L2Rpdj48 ZGl2PsKgPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+Y29uc3Qgc2l6ZV90 IHBhZ2VfbWFzayA9IHBhZ2Vfc2l6ZSAtIDE7PC9kaXY+PGRpdj4tPC9kaXY+PGRpdj7CoDxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPndoaWxlIChsZW4gJmd0OyAwKSB7PC9k aXY+PGRpdj7CoDxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj51bnNpZ25l ZCBpbnQgY2h1bmtfbGVuOzwvZGl2PjxkaXY+wqA8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCQk8L3NwYW4+dW5zaWduZWQgaW50IGVuZF9pbl9wYWdlOzwvZGl2PjxkaXY+QEAgLTEzOTcs NiArMTM5NiwxNzYgQEAgdW1vdmVzdHIoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIHVuc2ln bmVkIGludCBsZW4sIGNoYXIgKmxhZGRyKTwvZGl2PjxkaXY+wqA8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPnJldHVybiAwOzwvZGl2PjxkaXY+wqB9PC9kaXY+PGRpdj7CoDwv ZGl2PjxkaXY+K2ludDwvZGl2PjxkaXY+K3Vtb3Zlc3RyXyhzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcg YWRkciwgdW5zaWduZWQgaW50IGxlbiwgY2hhciAqbGFkZHIsIGxvbmcgKnJldExlbik8L2Rpdj48 ZGl2Pit7PC9kaXY+PGRpdj4rI2lmIFNJWkVPRl9MT05HID09IDQ8L2Rpdj48ZGl2Pis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmNvbnN0IHVuc2lnbmVkIGxvbmcgeDAxMDEw MTAxID0gMHgwMTAxMDEwMXVsOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+Y29uc3QgdW5zaWduZWQgbG9uZyB4ODA4MDgwODAgPSAweDgwODA4MDgwdWw7 PC9kaXY+PGRpdj4rI2VsaWYgU0laRU9GX0xPTkcgPT0gODwvZGl2PjxkaXY+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Y29uc3QgdW5zaWduZWQgbG9uZyB4MDEwMTAxMDEg PSAweDAxMDEwMTAxMDEwMTAxMDF1bDs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9zcGFuPmNvbnN0IHVuc2lnbmVkIGxvbmcgeDgwODA4MDgwID0gMHg4MDgwODA4 MDgwODA4MDgwdWw7PC9kaXY+PGRpdj4rI2Vsc2U8L2Rpdj48ZGl2PisjIGVycm9yIFNJWkVPRl9M T05HICZndDsgODwvZGl2PjxkaXY+KyNlbmRpZjwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Ly8gU3RvcmUgdGhlIG9yaWdpbmFsIG1heGltdW0gbGVuZ3Ro IHBhc3NlZDwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ aW50IGdpdmVuTGVuID0gbGVuOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L3NwYW4+aW50IHBpZCA9IHRjcC0mZ3Q7cGlkOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dW5zaWduZWQgaW50IG4sIG0sIG5yZWFkOzwvZGl2 PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dW5pb24gezwvZGl2 PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnVuc2lnbmVkIGxv bmcgdmFsOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu PmNoYXIgeFtzaXplb2YobG9uZyldOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgk8L3NwYW4+fSB1OzwvZGl2PjxkaXY+KzwvZGl2PjxkaXY+KyNpZiBTVVBQT1JURURf UEVSU09OQUxJVElFUyAmZ3Q7IDEgJmFtcDsmYW1wOyBTSVpFT0ZfTE9ORyAmZ3Q7IDQ8L2Rpdj48 ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChjdXJyZW50X3dv cmRzaXplICZsdDsgc2l6ZW9mKGFkZHIpKTwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJPC9zcGFuPmFkZHIgJmFtcDs9ICgxdWwgJmx0OyZsdDsgOCAqIGN1cnJlbnRf d29yZHNpemUpIC0gMTs8L2Rpdj48ZGl2PisjZW5kaWY8L2Rpdj48ZGl2Pis8L2Rpdj48ZGl2Pis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPm5yZWFkID0gMDs8L2Rpdj48ZGl2 Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChwcm9jZXNzX3ZtX3Jl YWR2X25vdF9zdXBwb3J0ZWQpIHs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JCTwvc3Bhbj5jb25zdCBzaXplX3QgcGFnZV9zaXplID0gZ2V0X3BhZ2VzaXplKCk7PC9k aXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+Y29uc3Qgc2l6 ZV90IHBhZ2VfbWFzayA9IHBhZ2Vfc2l6ZSAtIDE7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+d2hpbGUgKGxlbiAmZ3Q7IDApIHs8L2Rpdj48ZGl2Pis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+dW5zaWduZWQgaW50IGNodW5r X2xlbjs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+ dW5zaWduZWQgaW50IGVuZF9pbl9wYWdlOzwvZGl2PjxkaXY+KzwvZGl2PjxkaXY+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj4vKjwvZGl2PjxkaXY+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj4gKiBEb24mIzM5O3QgY3Jvc3MgcGFnZXMsIG90 aGVyd2lzZSB3ZSBjYW4gZ2V0IEVGQVVMVDwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJCTwvc3Bhbj4gKiBhbmQgZmFpbCB0byBub3RpY2UgdGhhdCB0ZXJtaW5hdGlu ZyBOVUwgbGllczwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwv c3Bhbj4gKiBpbiB0aGUgZXhpc3RpbmcgKGZpcnN0KSBwYWdlLjwvZGl2PjxkaXY+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj4gKi88L2Rpdj48ZGl2Pis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+Y2h1bmtfbGVuID0gbGVuICZndDsgcGFnZV9z aXplID8gcGFnZV9zaXplIDogbGVuOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJCTwvc3Bhbj5lbmRfaW5fcGFnZSA9IChhZGRyICsgY2h1bmtfbGVuKSAmYW1wOyBw YWdlX21hc2s7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9z cGFuPmlmIChjaHVua19sZW4gJmd0OyBlbmRfaW5fcGFnZSkgLyogY3Jvc3NlcyB0byB0aGUgbmV4 dCBwYWdlICovPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCTwv c3Bhbj5jaHVua19sZW4gLT0gZW5kX2luX3BhZ2U7PC9kaXY+PGRpdj4rPC9kaXY+PGRpdj4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmludCByID0gdm1fcmVhZF9tZW0o cGlkLCBsYWRkciwgYWRkciwgY2h1bmtfbGVuKTs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+aWYgKHIgJmd0OyAwKSB7PC9kaXY+PGRpdj4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCTwvc3Bhbj5jaGFyICogcGNoOzwvZGl2PjxkaXY+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+cGNoID0gKGNoYXIgKikg bWVtY2hyKGxhZGRyLCAmIzM5O1wwJiMzOTssIHIpOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+aWYgKHBjaCAhPSBOVUxMKTwvZGl2AAEKPjxkaXY+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+ezwvZGl2PjxkaXY+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPi8vY2FsY3VsYXRlIGxlbmd0 aCBhcyAobWF4IHNpemUpIC0gKGN1cnJlbnQgbGVuZ3RoIGxlZnQpICsgKHBvc2l0aW9uIG9mIFww KTwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPipy ZXRMZW4gPSAoZ2l2ZW5MZW4gLSBsZW4pICsgKChwY2ggLSBsYWRkcikgKyAxKTvCoDwvZGl2Pjxk aXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPnJldHVybiAxOzwv ZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+fTwvZGl2 PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+YWRkciArPSBy OzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+bGFk ZHIgKz0gcjs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJPC9z cGFuPm5yZWFkICs9IHI7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CQkJCTwvc3Bhbj5sZW4gLT0gcjs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JCQkJPC9zcGFuPmNvbnRpbnVlOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJCTwvc3Bhbj59PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQkJPC9zcGFuPnN3aXRjaCAoZXJybm8pIHs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JCQkJPC9zcGFuPmNhc2UgRU5PU1lTOjwvZGl2PjxkaXY+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPnByb2Nlc3Nfdm1fcmVhZHZfbm90 X3N1cHBvcnRlZCA9IDE7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CQkJCQk8L3NwYW4+Z290byB2bV9yZWFkdl9kaWRudF93b3JrOzwvZGl2PjxkaXY+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+Y2FzZSBFU1JDSDo8L2Rpdj48ZGl2Pis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCTwvc3Bhbj4vKiB0aGUgcHJvY2VzcyBp cyBnb25lICovPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQk8 L3NwYW4+cmV0dXJuIC0xOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJCQk8L3NwYW4+Y2FzZSBFUEVSTTo8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCQkJCTwvc3Bhbj4vKiBvcGVyYXRpb24gbm90IHBlcm1pdHRlZCwgdHJ5IFBUUkFD RV9QRUVLREFUQSAqLzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ CQkJPC9zcGFuPmlmICghbnJlYWQpPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQkJCQkJPC9zcGFuPmdvdG8gdm1fcmVhZHZfZGlkbnRfd29yazs8L2Rpdj48ZGl2Pis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCTwvc3Bhbj4vKiBmYWxsIHRocm91Z2gg Ki88L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJPC9zcGFuPmNh c2UgRUZBVUxUOiBjYXNlIEVJTzo8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JCQkJCTwvc3Bhbj4vKiBhZGRyZXNzIHNwYWNlIGlzIGluYWNjZXNzaWJsZSAqLzwvZGl2 PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPmlmIChucmVh ZCkgezwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJCTwvc3Bh bj5wZXJyb3JfbXNnKCZxdW90O3Vtb3Zlc3RyOiBzaG9ydCByZWFkICglZCAmbHQ7ICVkKSBAMHgl bHgmcXVvdDssPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCQkJ CTwvc3Bhbj4gwqAgbnJlYWQsIG5yZWFkICsgbGVuLCBhZGRyIC0gbnJlYWQpOzwvZGl2PjxkaXY+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPn08L2Rpdj48ZGl2Pis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCTwvc3Bhbj5yZXR1cm4gLTE7PC9kaXY+ PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCTwvc3Bhbj5kZWZhdWx0Ojwv ZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPi8qIGFs bCB0aGUgcmVzdCBpcyBzdHJhbmdlIGFuZCBzaG91bGQgYmUgcmVwb3J0ZWQgKi88L2Rpdj48ZGl2 Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCTwvc3Bhbj5wZXJyb3JfbXNnKCZx dW90O3Byb2Nlc3Nfdm1fcmVhZHYmcXVvdDspOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJCQkJPC9zcGFuPnJldHVybiAtMTs8L2Rpdj48ZGl2Pis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+fTwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPn08L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCTwvc3Bhbj5yZXR1cm4gMDs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L2Rpdj48ZGl2Pisgdm1fcmVhZHZfZGlkbnRfd29yazo8 L2Rpdj48ZGl2Pis8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9z cGFuPmlmIChhZGRyICZhbXA7IChzaXplb2YobG9uZykgLSAxKSkgezwvZGl2PjxkaXY+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPi8qIGFkZHIgbm90IGEgbXVsdGlwbGUg b2Ygc2l6ZW9mKGxvbmcpICovPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+biA9IGFkZHIgJmFtcDsgKHNpemVvZihsb25nKSAtIDEpOzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+LyogcmVzaWR1ZSAqLzwvZGl2PjxkaXY+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmFkZHIgJmFtcDs9IC1zaXplb2YobG9u Zyk7PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+LyogYWxpZ25lZCBhZGRy ZXNzICovPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ ZXJybm8gPSAwOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9z cGFuPnUudmFsID0gcHRyYWNlKFBUUkFDRV9QRUVLREFUQSwgcGlkLCAodm9pZCAqKSBhZGRyLCAw KTs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5zd2l0 Y2ggKGVycm5vKSB7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJ PC9zcGFuPmNhc2UgMDo8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CQkJPC9zcGFuPmJyZWFrOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJCTwvc3Bhbj5jYXNlIEVTUkNIOiBjYXNlIEVJTlZBTDo8L2Rpdj48ZGl2Pis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJPC9zcGFuPi8qIHRoZXNlIGNvdWxkIGJlIHNlZW4gaWYg dGhlIHByb2Nlc3MgaXMgZ29uZSAqLzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJCQk8L3NwYW4+cmV0dXJuIC0xOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5jYXNlIEVGQVVMVDogY2FzZSBFSU86IGNhc2UgRVBFUk06 PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCTwvc3Bhbj4vKiBh ZGRyZXNzIHNwYWNlIGlzIGluYWNjZXNzaWJsZSAqLzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+cmV0dXJuIC0xOzwvZGl2PjxkaXY+KzxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvc3Bhbj5kZWZhdWx0OjwvZGl2PjxkaXY+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+LyogYWxsIHRoZSByZXN0IGlzIHN0 cmFuZ2UgYW5kIHNob3VsZCBiZSByZXBvcnRlZCAqLzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+cGVycm9yX21zZygmcXVvdDt1bW92ZXN0cjogUFRS QUNFX1BFRUtEQVRBIHBpZDolZCBAMHglbHgmcXVvdDssPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CQkJCQk8L3NwYW4+IMKgIMKgcGlkLCBhZGRyKTs8L2Rpdj48ZGl2 Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJPC9zcGFuPnJldHVybiAtMTs8L2Rp dj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj59PC9kaXY+PGRp dj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+bSA9IE1JTihzaXplb2Yo bG9uZykgLSBuLCBsZW4pOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJPC9zcGFuPm1lbWNweShsYWRkciwgJmFtcDt1Lnhbbl0sIG0pOzwvZGl2PjxkaXY+KzxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPipyZXRMZW4gPSAwO2k8L2Rpdj48ZGl2 Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj4vLyBDYWxjdWxhdGUgTGVu Z3RoIGhlcmUgaWYgdGhlIGFkZHJlcyBpc24mIzM5O3QgbG9uZ3dvcmQgYWxpZ25lZCBhbmQgdGhl IGxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIGxlbmd0aCBvZiBtaXNhbGlnbm1lbnQ8L2Rpdj48ZGl2 Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj53aGlsZSAobiAmYW1wOyAo c2l6ZW9mKGxvbmcpIC0gMSkpIHs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JCQk8L3NwYW4+aWYgKHUueFtuKytdID09ICYjMzk7XDAmIzM5OykgezwvZGl2PjxkaXY+ KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+KnJldExlbisrOzwvZGl2 PjxkaXY+KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmVycm9yX21zZygmcXVvdDtGb3VuZCBsZW5ndGggZWxzZXdo ZXJlJnF1b3Q7KTs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJ PC9zcGFuPnJldHVybiAxOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJCTwvc3Bhbj59PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8 L3NwYW4+fTwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFu PmFkZHIgKz0gc2l6ZW9mKGxvbmcpOzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJPC9zcGFuPmxhZGRyICs9IG07PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQk8L3NwYW4+bnJlYWQgKz0gbTs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5sZW4gLT0gbTs8L2Rpdj48ZGl2Pis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L2Rpdj48ZGl2Pis8L2Rpdj48ZGl2Pis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPndoaWxlIChsZW4pIHs8L2Rpdj48ZGl2 Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5lcnJubyA9IDA7PC9kaXY+ PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+dS52YWwgPSBwdHJh Y2UoUFRSQUNFX1BFRUtEQVRBLCBwaWQsICh2b2lkICopIGFkZHIsIDApOzwvZGl2PjxkaXY+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPnN3aXRjaCAoZXJybm8pIHs8L2Rp dj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+Y2FzZSAwOjwv ZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L3NwYW4+YnJlYWs7 PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9zcGFuPmNhc2Ug RVNSQ0g6IGNhc2UgRUlOVkFMOjwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgkJCQk8L3NwYW4+LyogdGhlc2UgY291bGQgYmUgc2VlbiBpZiB0aGUgcHJvY2VzcyBpcyBn b25lICovPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCTwvc3Bh bj5yZXR1cm4gLTE7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJ PC9zcGFuPmNhc2UgRUZBVUxUOiBjYXNlIEVJTzogY2FzZSBFUEVSTTo8L2Rpdj48ZGl2Pis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJPC9zcGFuPi8qIGFkZHJlc3Mgc3BhY2UgaXMg aW5hY2Nlc3NpYmxlICovPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CQkJCTwvc3Bhbj5pZiAobnJlYWQpIHs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCQkJCTwvc3Bhbj5wZXJyb3JfbXNnKCZxdW90O3Vtb3Zlc3RyOiBzaG9ydCByZWFk ICglZCAmbHQ7ICVkKSBAMHglbHgmcXVvdDssPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQkJCQkJPC9zcGFuPiDCoCBucmVhZCwgbnJlYWQgKyBsZW4sIGFkZHIgLSBu cmVhZCk7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCTwvc3Bh bj59PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCTwvc3Bhbj5y ZXR1cm4gLTE7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9z cGFuPmRlZmF1bHQ6PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJ CTwvc3Bhbj4vKiBhbGwgdGhlIHJlc3QgaXMgc3RyYW5nZSBhbmQgc2hvdWxkIGJlIHJlcG9ydGVk ICovPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJCTwvc3Bhbj5w ZXJyb3JfbXNnKCZxdW90O3Vtb3Zlc3RyOiBQVFJBQ0VfUEVFS0RBVEEgcGlkOiVkIEAweCVseCZx dW90Oyw8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJCTwvc3Bh bj4gwqAgcGlkLCBhZGRyKTs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JCQkJPC9zcGFuPnJldHVybiAtMTs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JCTwvc3Bhbj59PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CQk8L3NwYW4+bSA9IE1JTihzaXplb2YobG9uZyksIGxlbik7PC9kaXY+PGRpdj4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+bWVtY3B5KGxhZGRyLCB1LngsIG0pOzwv ZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPi8qICZxdW90 O0lmIGEgTlVMIGNoYXIgZXhpc3RzIGluIHRoaXMgd29yZCZxdW90OyAqLzwvZGl2PjxkaXY+Kzxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmlmICgodS52YWwgLSB4MDEwMTAx MDEpICZhbXA7IH51LnZhbCAmYW1wOyB4ODA4MDgwODApIHs8L2Rpdj48ZGl2Pis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L3NwYW4+Y2hhciAqIHBjaDs8L2Rpdj48ZGl2PisgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBwY2ggPSAoY2hhciAqKSBtZW1jaHIobGFk ZHIsICYjMzk7XDAmIzM5OywgbSk7PC9kaXY+PGRpdj4rIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgaWYgKHBjaCAhPSBOVUxMKXs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQkJPC9zcGFuPi8vY2FsY3VsYXRlIGxlbmd0aCBhcyAobWF4IHNpemUp IC0gKGN1cnJlbnQgbGVuZ3RoIGxlZnQpICsgKHBvc2l0aQABCm9uIG9mIFwwKTwvZGl2PjxkaXY+ KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJPC9zcGFuPmVycm9yX21zZygmcXVvdDtGb3VuZCBsZW5ndGg6ICVsZCZxdW90Oywo Z2l2ZW5MZW4gLSBsZW4pICsgKChwY2ggLSBsYWRkcikgKyAxKSk7PC9kaXY+PGRpdj4rIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj4qcmV0TGVuID0gKGdpdmVuTGVuIC0gbGVuKSArICgocGNoIC0gbGFkZHIpICsg MSk7PC9kaXY+PGRpdj4rIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIDxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0dXJuIDE7PC9kaXY+ PGRpdj4rIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+fTwvZGl2PjxkaXY+KzwvZGl2PjxkaXY+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPn08L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5hZGRyICs9IHNpemVvZihsb25nKTs8L2Rpdj48ZGl2Pis8 c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5sYWRkciArPSBtOzwvZGl2Pjxk aXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPm5yZWFkICs9IG07PC9k aXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+bGVuIC09IG07 PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj59PC9kaXY+ PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5yZXR1cm4gMDs8L2Rp dj48ZGl2Pit9PC9kaXY+PGRpdj7CoC8qPC9kaXY+PGRpdj7CoCAqIEl0ZXJhdGl2ZWx5IGZldGNo IGFuZCBwcmludCB1cCB0byBubWVtYiBlbGVtZW50cyBvZiBlbGVtX3NpemUgc2l6ZTwvZGl2Pjxk aXY+wqAgKiBmcm9tIHRoZSBhcnJheSB0aGF0IHN0YXJ0cyBhdCB0cmFjZWUmIzM5O3MgYWRkcmVz cyBzdGFydF9hZGRyLjwvZGl2PjxkaXY+QEAgLTE2NDIsNiArMTgxMSw0MSBAQCBvdXQ6PC9kaXY+ PGRpdj7CoDxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+cmV0dXJuIHBhdGg7 PC9kaXY+PGRpdj7CoH08L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj4rY2hhciAqPC9kaXY+PGRpdj4r ZHNfZ2V0X3BhdGhfKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyLGxvbmcgKmxlbiApPC9kaXY+ PGRpdj4rezwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ Y2hhciAqcGF0aCA9IE5VTEw7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj5pbnQgbnVsX3NlZW47PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CTwvc3Bhbj5sb25nIHJldGxlbjs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmICghYWRkcik8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0i d2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5nb3RvIG91dDs8L2Rpdj48ZGl2Pis8L2Rpdj48ZGl2 Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi8qPC9kaXY+PGRpdj4rPHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4gKiBOb3RlOiB4bWFsbG9jIHN1Y2Nl ZWRzIGFsd2F5cyBvciBhYm9ydHMgdGhlIHRyYWNlIHByb2Nlc3M8L2Rpdj48ZGl2Pis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPiAqIHdpdGggYW4gZXJyb3IgbWVzc2FnZSB0 byBzdGRlcnIuPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh bj4gKi88L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnBh dGggPSB4bWFsbG9jKFBBVEhfTUFYICsgMSk7PC9kaXY+PGRpdj4rPC9kaXY+PGRpdj4rPHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4vKjwvZGl2PjxkaXY+KzxzcGFuIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+ICogRmV0Y2ggb25lIGJ5dGUgbW9yZSB0byBmaW5k IG91dCB3aGV0aGVyIHBhdGggbGVuZ3RoIGlzPC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvc3Bhbj4gKiBncmVhdGVyIHRoYW4gUEFUSF9NQVguPC9kaXY+PGRpdj4r PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4gKi88L2Rpdj48ZGl2Pis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPm51bF9zZWVuID0gdW1vdmVzdHJfKHRj cCwgYWRkciwgUEFUSF9NQVggKyAxLCBwYXRoLCZhbXA7cmV0bGVuKTs8L2Rpdj48ZGl2Pis8c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPipsZW4gPSByZXRsZW47PC9kaXY+PGRp dj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5pZiAobnVsX3NlZW4gJmx0 OyAwKTwvZGl2PjxkaXY+KzxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9zcGFuPmdv dG8gb3V0X2ZyZWU7PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv c3Bhbj5lbHNlIHs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwv c3Bhbj5wYXRoW1BBVEhfTUFYXSA9ICYjMzk7XDAmIzM5Ozs8L2Rpdj48ZGl2Pis8c3BhbiBzdHls ZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5nb3RvIG91dDs8L2Rpdj48ZGl2Pis8c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPn08L2Rpdj48ZGl2PitvdXRfZnJlZTo8L2Rp dj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPmlmIChwYXRoKSB7 PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L3NwYW4+ZnJlZShw YXRoKTs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCTwvc3Bhbj5w YXRoID0gTlVMTDs8L2Rpdj48ZGl2Pis8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9z cGFuPn08L2Rpdj48ZGl2PitvdXQ6PC9kaXY+PGRpdj4rPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvc3Bhbj5yZXR1cm4gcGF0aDs8L2Rpdj48ZGl2Pit9PC9kaXY+PGRpdj7CoC8qPC9k aXY+PGRpdj7CoCAqIFRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIGEgYnVmZmVyIHBhc3NlZCBhcyBh bjwvZGl2PjxkaXY+wqAgKiBhcmd1bWVudCB0byBzeXN0ZW0gY2FsbC7CoCBJdCBpbnRlcm5hbGx5 IGNhbGxzIHVtb3ZlbigpPC9kaXY+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+ PGRpdj5UaGFua3MsPC9kaXY+PGRpdj5NYXl1cjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJy PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjwvZGl2 PgoKLS0wMDFhMTE0MjQ0ZWE5ZDhiMDUwNTU0NGEyMWI2LS0KCg== --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 12 15:05:52 2018 Received: (at 27744) by debbugs.gnu.org; 12 Apr 2018 19:05:52 +0000 Received: from localhost ([127.0.0.1]:48442 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f6hXc-0003d2-DJ for submit@debbugs.gnu.org; Thu, 12 Apr 2018 15:05:52 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:36788) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f6hXa-0003ct-Qq for 27744@debbugs.gnu.org; Thu, 12 Apr 2018 15:05:51 -0400 Received: from 46.67.12.60.tmi.telenormobil.no ([46.67.12.60] helo=corrigan) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1f6hXX-0005mM-Lg; Thu, 12 Apr 2018 21:05:50 +0200 Received: from larsi by corrigan with local (Exim 4.89) (envelope-from ) id 1f6hXR-0005cL-8B; Thu, 12 Apr 2018 21:05:41 +0200 From: Lars Ingebrigtsen To: Geoff Kuenning Subject: Re: bug#27744: CSS whitespace:pre not supported References: Date: Thu, 12 Apr 2018 21:05:40 +0200 In-Reply-To: (Geoff Kuenning's message of "Mon, 17 Jul 2017 14:45:20 -0700") Message-ID: <87r2nknt2z.fsf@mouse.gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 27744 Cc: 27744@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Geoff Kuenning writes: > The "wash html" function in Gnus doesn't seem to support the > whitespace:pre CSS style. I've attached a sample message in > multipart/mixed format that contains HTML using whitespace:pre. If you > save the HTML portion in a file and view it with a browser, you'll see > that the patched code is properly indented. OTOH if you view it in > Gnus with "W h", there will be no indentation. shr (which Gnus uses to render HTML) understands only a minuscule subset of CSS. white-space: pre; is not something it supports, and isn't very likely to support in the near future. It's rather obscure, and there are plenty of lower-hanging fruit for people who want to make it render more stuff. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 12 15:05:53 2018 Received: (at control) by debbugs.gnu.org; 12 Apr 2018 19:05:53 +0000 Received: from localhost ([127.0.0.1]:48445 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f6hXd-0003dG-L0 for submit@debbugs.gnu.org; Thu, 12 Apr 2018 15:05:53 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:36794) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f6hXc-0003d3-TR for control@debbugs.gnu.org; Thu, 12 Apr 2018 15:05:53 -0400 Received: from 46.67.12.60.tmi.telenormobil.no ([46.67.12.60] helo=corrigan) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1f6hXa-0005xa-JA for control@debbugs.gnu.org; Thu, 12 Apr 2018 21:05:52 +0200 Received: from larsi by corrigan with local (Exim 4.89) (envelope-from ) id 1f6hXU-0005cO-CY for control@debbugs.gnu.org; Thu, 12 Apr 2018 21:05:44 +0200 To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #27744 Message-Id: Date: Thu, 12 Apr 2018 21:05:44 +0200 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 27744 wontfix close 27744 From unknown Sat Sep 06 09:27:55 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 11 May 2018 11:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator