From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?UTF-8?Q?Aur=C3=A9lien_Aptel?= Newsgroups: gmane.emacs.devel Subject: Re: [patch] add "underwave" face attribute Date: Mon, 6 Feb 2012 12:27:36 +0100 Message-ID: References: <037B3467A9FE4EC9B681DF3B1171A539@us.oracle.com> <87obtii1y4.fsf@mail.jurta.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=14dae93b590e05b1b004b849f333 X-Trace: dough.gmane.org 1328527677 22249 80.91.229.3 (6 Feb 2012 11:27:57 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 6 Feb 2012 11:27:57 +0000 (UTC) Cc: Juanma Barranquero , emacs-devel@gnu.org, Juri Linkov , Stefan Monnier , =?UTF-8?Q?Jan_Dj=C3=A4rv?= , Drew Adams To: Alp Aker Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Feb 06 12:27:53 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RuMjg-0006pS-T2 for ged-emacs-devel@m.gmane.org; Mon, 06 Feb 2012 12:27:53 +0100 Original-Received: from localhost ([::1]:57326 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RuMjg-0005Nc-90 for ged-emacs-devel@m.gmane.org; Mon, 06 Feb 2012 06:27:52 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:33685) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RuMjX-0005NE-Tx for emacs-devel@gnu.org; Mon, 06 Feb 2012 06:27:49 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RuMjR-0000gJ-6b for emacs-devel@gnu.org; Mon, 06 Feb 2012 06:27:43 -0500 Original-Received: from mail-tul01m020-f169.google.com ([209.85.214.169]:39178) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RuMjQ-0000g8-TA for emacs-devel@gnu.org; Mon, 06 Feb 2012 06:27:37 -0500 Original-Received: by obbta7 with SMTP id ta7so8457192obb.0 for ; Mon, 06 Feb 2012 03:27:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=QIAKrsSbBIBNOYjXvsvxnifAe53r7vpxMILPWhzZhro=; b=uUJJkpPmomcNGy8jbdaxjy/Lsmtb6m8aznDXlDIHrLbwb4ZVSkBRBqavj8OFiZe4Yk f+TCcYX4stxWgyWM6tRolVnN654NQMd2VNaF+f9Z7kQWqacatXzigAmVtSP5dvMVf7Cu 4sdfuem0Nkj1vJDdiMftgWSF5TWbiEEGkxUAk= Original-Received: by 10.182.31.47 with SMTP id x15mr15953686obh.76.1328527656202; Mon, 06 Feb 2012 03:27:36 -0800 (PST) Original-Received: by 10.182.11.166 with HTTP; Mon, 6 Feb 2012 03:27:36 -0800 (PST) In-Reply-To: X-Google-Sender-Auth: L1lt9SVg0Vx9FP_rH3FIBFkEmlQ X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.214.169 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:148250 Archived-At: --14dae93b590e05b1b004b849f333 Content-Type: text/plain; charset=UTF-8 Ok, I will send the attached patch to the bug mailing list. --14dae93b590e05b1b004b849f333 Content-Type: text/x-patch; charset=US-ASCII; name="underwave-clip-3.patch" Content-Disposition: attachment; filename="underwave-clip-3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gybey6y20 ZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL2Rpc3BsYXkudGV4aSBiL2RvYy9saXNwcmVmL2Rpc3Bs YXkudGV4aQppbmRleCAzODFlYWY2Li40NjRkZmFhIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9k aXNwbGF5LnRleGkKKysrIGIvZG9jL2xpc3ByZWYvZGlzcGxheS50ZXhpCkBAIC0yMDgwLDEwICsy MDgwLDMyIEBAIEJhY2tncm91bmQgY29sb3IsIGEgc3RyaW5nLiAgVGhlIHZhbHVlIGNhbiBiZSBh IHN5c3RlbS1kZWZpbmVkIGNvbG9yCiBuYW1lLCBvciBhIGhleGFkZWNpbWFsIGNvbG9yIHNwZWNp ZmljYXRpb24uICBAeHJlZntDb2xvciBOYW1lc30uCiAKIEBpdGVtIDp1bmRlcmxpbmUKLVdoZXRo ZXIgb3Igbm90IGNoYXJhY3RlcnMgc2hvdWxkIGJlIHVuZGVybGluZWQsIGFuZCBpbiB3aGF0IGNv bG9yLiAgSWYKLXRoZSB2YWx1ZSBpcyBAY29kZXt0fSwgdW5kZXJsaW5pbmcgdXNlcyB0aGUgZm9y ZWdyb3VuZCBjb2xvciBvZiB0aGUKLWZhY2UuICBJZiB0aGUgdmFsdWUgaXMgYSBzdHJpbmcsIHVu ZGVybGluaW5nIHVzZXMgdGhhdCBjb2xvci4gIFRoZQotdmFsdWUgQGNvZGV7bmlsfSBtZWFucyBk byBub3QgdW5kZXJsaW5lLgorV2hldGhlciBvciBub3QgY2hhcmFjdGVycyBzaG91bGQgYmUgdW5k ZXJsaW5lZCwgYW5kIGluIHdoYXQKK2NvbG9yLiBIZXJlIGFyZSB0aGUgcG9zc2libGUgdmFsdWVz IG9mIHRoZSBAY29kZXs6dW5kZXJsaW5lfQorYXR0cmlidXRlLCBhbmQgd2hhdCB0aGV5IG1lYW46 CisKK0B0YWJsZSBAYXNpcworQGl0ZW0gQGNvZGV7bmlsfQorRG9uJ3QgdW5kZXJsaW5lLgorCitA aXRlbSBAY29kZXt0fQorVW5kZXJsaW5lIHdpdGggdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhl IGZhY2UuCisKK0BpdGVtIEB2YXJ7Y29sb3J9CitVbmRlcmxpbmUgaW4gY29sb3IgQHZhcntjb2xv cn0uCisKK0BpdGVtIEBjb2Rleyg6Y29sb3IgQHZhcntjb2xvcn0gOnN0eWxlIEB2YXJ7c3R5bGV9 KX0KK0lmIEB2YXJ7Y29sb3J9IGlzIGEgc3RyaW5nLCB1bmRlcmxpbmUgaW4gaXQuCitJZiBAdmFy e2NvbG9yfSBpcyBAY29kZXtmb3JlZ3JvdW5kLWNvbG9yfSwgdW5kZXJsaW5lIHdpdGggdGhlCitm b3JlZ3JvdW5kIGNvbG9yIG9mIHRoZSBmYWNlLgorCitJZiBAdmFye3N0eWxlfSBpcyBAY29kZXt3 YXZlfSB1bmRlcmxpbmUgd2l0aCBhIHdhdmUuCitJZiBAdmFye3N0eWxlfSBpcyBAY29kZXtsaW5l fSB1bmRlcmxpbmUgd2l0aCBhIGxpbmUuIAorCitJZiB0aGUgYXR0cmlidXRlIEBjb2Rlezpjb2xv cn0gaXMgb21pdGVkLCB1bmRlcmxpbmUgd2l0aCB0aGUKK2ZvcmVncm91bmQgY29sb3Igb2YgdGhl IGZhY2UuCitJZiB0aGUgYXR0cmlidXRlIEBjb2RlezpzdHlsZX0gaXMgb21pdGVkLCB1bmRlcmxp bmUgd2l0aCBhIGxpbmUuCitAZW5kIHRhYmxlCiAKIEBpdGVtIDpvdmVybGluZQogV2hldGhlciBv ciBub3QgY2hhcmFjdGVycyBzaG91bGQgYmUgb3ZlcmxpbmVkLCBhbmQgaW4gd2hhdCBjb2xvci4K ZGlmZiAtLWdpdCBhL2xpc3AvY3VzLWZhY2UuZWwgYi9saXNwL2N1cy1mYWNlLmVsCmluZGV4IGQ3 MjUxMTEuLjM2ODBhMjYgMTAwNjQ0Ci0tLSBhL2xpc3AvY3VzLWZhY2UuZWwKKysrIGIvbGlzcC9j dXMtZmFjZS5lbApAQCAtMTM1LDggKzEzNSwxMyBAQAogICAgICAoY2hvaWNlIDp0YWcgIlVuZGVy bGluZSIKIAkgICAgIDpoZWxwLWVjaG8gIkNvbnRyb2wgdGV4dCB1bmRlcmxpbmluZy4iCiAJICAg ICAoY29uc3QgOnRhZyAiT2ZmIiBuaWwpCi0JICAgICAoY29uc3QgOnRhZyAiT24iIHQpCi0JICAg ICAoY29sb3IgOnRhZyAiQ29sb3JlZCIpKSkKKwkgICAgIChsaXN0IDp0YWcgIk9uIgorCQkgICAo Y29uc3QgOmZvcm1hdCAiIiA6dmFsdWUgOmNvbG9yKQorCQkgICAoY2hvaWNlIDp0YWcgIkNvbG9y IiAoY29uc3QgOnRhZyAiRm9yZWdyb3VuZCBDb2xvciIgZm9yZWdyb3VuZC1jb2xvcikgY29sb3Ip CisgICAgICAgICAgICAgICAgICAgKGNvbnN0IDpmb3JtYXQgIiIgOnZhbHVlIDpzdHlsZSkKKyAg ICAgICAgICAgICAgICAgICAoY2hvaWNlIDp0YWcgIlN0eWxlIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0IDp0YWcgIkxpbmUiIGxpbmUpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY29uc3QgOnRhZyAiV2F2ZSIgd2F2ZSkpKSkpCiAKICAgICAoOm92ZXJsaW5lCiAgICAg IChjaG9pY2UgOnRhZyAiT3ZlcmxpbmUiCmRpZmYgLS1naXQgYS9saXNwL2ZhY2VzLmVsIGIvbGlz cC9mYWNlcy5lbAppbmRleCA1ZDQwNmFkLi5lNjhhYmIxIDEwMDY0NAotLS0gYS9saXNwL2ZhY2Vz LmVsCisrKyBiL2xpc3AvZmFjZXMuZWwKQEAgLTYxNiwxMCArNjE2LDIxIEBAIFZBTFVFIG11c3Qg YmUgYSBjb2xvciBuYW1lLCBhIHN0cmluZy4KIAogYDp1bmRlcmxpbmUnCiAKLVZBTFVFIHNwZWNp ZmllcyB3aGV0aGVyIGNoYXJhY3RlcnMgaW4gRkFDRSBzaG91bGQgYmUgdW5kZXJsaW5lZC4gIElm Ci1WQUxVRSBpcyB0LCB1bmRlcmxpbmUgd2l0aCBmb3JlZ3JvdW5kIGNvbG9yIG9mIHRoZSBmYWNl LiAgSWYgVkFMVUUgaXMKLWEgc3RyaW5nLCB1bmRlcmxpbmUgd2l0aCB0aGF0IGNvbG9yLiAgSWYg VkFMVUUgaXMgbmlsLCBleHBsaWNpdGx5Ci1kb24ndCB1bmRlcmxpbmUuCitWQUxVRSBzcGVjaWZp ZXMgd2hldGhlciBjaGFyYWN0ZXJzIGluIEZBQ0Ugc2hvdWxkIGJlIHVuZGVybGluZWQuCitJZiBW QUxVRSBpcyB0LCB1bmRlcmxpbmUgd2l0aCBmb3JlZ3JvdW5kIGNvbG9yIG9mIHRoZSBmYWNlLgor SWYgVkFMVUUgaXMgYSBzdHJpbmcsIHVuZGVybGluZSB3aXRoIHRoYXQgY29sb3IuCitJZiBWQUxV RSBpcyBuaWwsIGV4cGxpY2l0bHkgZG9uJ3QgdW5kZXJsaW5lLgorCitPdGhlcndpc2UsIFZBTFVF IG11c3QgYmUgYSBwcm9wZXJ0eSBsaXN0IG9mIHRoZSBmb3JtOgorCitgKDpjb2xvciBDT0xPUiA6 c3R5bGUgU1RZTEUpJy4KKworQ09MT1IgY2FuIGJlIGEgZWl0aGVyIGEgY29sb3IgbmFtZSBzdHJp bmcgb3IgYGZvcmVncm91bmQtY29sb3InLgorU1RZTEUgY2FuIGJlIGVpdGhlciBgbGluZScgb3Ig YHdhdmUnLgorSWYgYSBrZXl3b3JkL3ZhbHVlIHBhaXIgaXMgbWlzc2luZyBmcm9tIHRoZSBwcm9w ZXJ0eSBsaXN0LCBhCitkZWZhdWx0IHZhbHVlIHdpbGwgYmUgdXNlZCBmb3IgdGhlIHZhbHVlLgor VGhlIGRlZmF1bHQgdmFsdWUgb2YgQ09MT1IgaXMgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhl IGZhY2UuCitUaGUgZGVmYXVsdCB2YWx1ZSBvZiBTVFlMRSBpcyBgbGluZScuCiAKIGA6b3Zlcmxp bmUnCiAKZGlmZiAtLWdpdCBhL3NyYy9kaXNwZXh0ZXJuLmggYi9zcmMvZGlzcGV4dGVybi5oCmlu ZGV4IDJjNTlmNGYuLmNkYmJjMTYgMTAwNjQ0Ci0tLSBhL3NyYy9kaXNwZXh0ZXJuLmgKKysrIGIv c3JjL2Rpc3BleHRlcm4uaApAQCAtMTUxMCw2ICsxNTEwLDEzIEBAIGVudW0gZmFjZV9ib3hfdHlw ZQogICBGQUNFX1NVTktFTl9CT1gKIH07CiAKKy8qIFVuZGVybGluZSB0eXBlLiAqLworCitlbnVt IGZhY2VfdW5kZXJsaW5lX3R5cGUKK3sKKyAgRkFDRV9VTkRFUl9MSU5FLAorICBGQUNFX1VOREVS X1dBVkUKK307CiAKIC8qIFN0cnVjdHVyZSBkZXNjcmliaW5nIGEgcmVhbGl6ZWQgZmFjZS4KIApA QCAtMTU4NSw2ICsxNTkyLDkgQEAgc3RydWN0IGZhY2UKICAgICAgZHJhd2luZyBzaGFkb3dzLiAg Ki8KICAgdW5zaWduZWQgdXNlX2JveF9jb2xvcl9mb3Jfc2hhZG93c19wIDogMTsKIAorICAvKiBT dHlsZSBvZiB1bmRlcmxpbmluZy4gKi8KKyAgZW51bSBmYWNlX3VuZGVybGluZV90eXBlIHVuZGVy bGluZV90eXBlOworCiAgIC8qIE5vbi16ZXJvIGlmIHRleHQgaW4gdGhpcyBmYWNlIHNob3VsZCBi ZSB1bmRlcmxpbmVkLCBvdmVybGluZWQsCiAgICAgIHN0cmlrZS10aHJvdWdoIG9yIGhhdmUgYSBi b3ggZHJhd24gYXJvdW5kIGl0LiAgKi8KICAgdW5zaWduZWQgdW5kZXJsaW5lX3AgOiAxOwpkaWZm IC0tZ2l0IGEvc3JjL25zdGVybS5tIGIvc3JjL25zdGVybS5tCmluZGV4IDcwZDNjYzAuLjAzNzgz MzAgMTAwNjQ0Ci0tLSBhL3NyYy9uc3Rlcm0ubQorKysgYi9zcmMvbnN0ZXJtLm0KQEAgLTI1OTYs NiArMjU5Niw2OCBAQCBuc19nZXRfZ2x5cGhfc3RyaW5nX2NsaXBfcmVjdCAoc3RydWN0IGdseXBo X3N0cmluZyAqcywgTmF0aXZlUmVjdGFuZ2xlICpucikKICAgcmV0dXJuIG47CiB9CiAKKy8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICBEcmF3IGEgd2F2eSBsaW5lIHVuZGVyIGdseXBoIHN0cmluZyBzLiBUaGUg d2F2ZSBmaWxscyB3YXZlX2hlaWdodAorICAgcGl4ZWxzIGZyb20geS4KKworICAgICAgICAgICAg ICAgICAgICB4ICAgICAgICAgIHdhdmVfbGVuZ3RoID0gMgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICB5ICAgICogICAqICAgKiAgICogICAqCisg ICAgICAgICAgICAgICAgICAgICB8KiAqICogKiAqICogKiAqICoKKyAgICB3YXZlX2hlaWdodCA9 IDMgIHwgKiAgICogICAqICAgKgorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworc3RhdGljIHZvaWQKK25z X2RyYXdfdW5kZXJ3YXZlIChzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzLCBDR0Zsb2F0IHdpZHRoLCBD R0Zsb2F0IHgpCit7CisgIGludCB3YXZlX2hlaWdodCA9IDMsIHdhdmVfbGVuZ3RoID0gMzsKKyAg aW50IHksIGR4LCBkeSwgb2RkLCB4bWF4OworICBOU1BvaW50IGEsIGI7CisgIE5TUmVjdCB3YXZl Q2xpcCwgc3RyaW5nQ2xpcCwgZmluYWxDbGlwOworCisgIGR4ID0gd2F2ZV9sZW5ndGg7CisgIGR5 ID0gd2F2ZV9oZWlnaHQgLSAxOworICB5ID0gIHMtPnliYXNlICsgMTsKKyAgeG1heCA9IHggKyB3 aWR0aDsKKworICAvKiBGaW5kIGFuZCBzZXQgY2xpcHBpbmcgcmVjdGFuZ2xlICovCisKKyAgd2F2 ZUNsaXAgPSBOU01ha2VSZWN0ICh4LCB5LCB3aWR0aCwgd2F2ZV9oZWlnaHQpOworICBuc19nZXRf Z2x5cGhfc3RyaW5nX2NsaXBfcmVjdCAocywgJnN0cmluZ0NsaXApOworICBmaW5hbENsaXAgPSBO U0ludGVyc2VjdGlvblJlY3QgKHdhdmVDbGlwLCBzdHJpbmdDbGlwKTsKKworICBpZiAoTlNJc0Vt cHR5UmVjdCAoZmluYWxDbGlwKSkKKyAgICByZXR1cm47CisKKyAgW1tOU0dyYXBoaWNzQ29udGV4 dCBjdXJyZW50Q29udGV4dF0gc2F2ZUdyYXBoaWNzU3RhdGVdOworICBOU1JlY3RDbGlwIChmaW5h bENsaXApOworCisgIC8qIERyYXcgdGhlIHdhdmVzICovCisKKyAgYS54ID0geCAtICgoaW50KSh4 KSAlIGR4KTsKKyAgYi54ID0gYS54ICsgZHg7CisgIG9kZCA9ICgoaW50KShhLngpL2R4KSAlIDI7 CisgIGEueSA9IGIueSA9IHk7CisKKyAgaWYgKG9kZCkKKyAgICBhLnkgKz0gZHk7CisgIGVsc2UK KyAgICBiLnkgKz0gZHk7CisKKyAgd2hpbGUgKGEueCA8PSB4bWF4KQorICAgIHsKKyAgICAgIFtO U0JlemllclBhdGggc3Ryb2tlTGluZUZyb21Qb2ludDphIHRvUG9pbnQ6IGJdOworICAgICAgYS54 ID0gYi54LCBhLnkgPSBiLnk7CisgICAgICBiLnggKz0gZHgsIGIueSA9IHkgKyBvZGQqZHk7Cisg ICAgICBvZGQgPSAhb2RkOworICAgIH0KKworICAvKiBSZXN0b3JlIHByZXZpb3VzIGNsaXBwaW5n IHJlY3RhbmdsZShzKSAqLworICBbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBy ZXN0b3JlR3JhcGhpY3NTdGF0ZV07Cit9CisKKworCiB2b2lkCiBuc19kcmF3X3RleHRfZGVjb3Jh dGlvbiAoc3RydWN0IGdseXBoX3N0cmluZyAqcywgc3RydWN0IGZhY2UgKmZhY2UsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgTlNDb2xvciAqZGVmYXVsdENvbCwgQ0dGbG9hdCB3aWR0aCwgQ0dG bG9hdCB4KQpAQCAtMjYwOSw2MyArMjY3MSw3NSBAQCBuc19kcmF3X3RleHRfZGVjb3JhdGlvbiAo c3RydWN0IGdseXBoX3N0cmluZyAqcywgc3RydWN0IGZhY2UgKmZhY2UsCiAgIC8qIERvIHVuZGVy bGluZS4gKi8KICAgaWYgKGZhY2UtPnVuZGVybGluZV9wKQogICAgIHsKLSAgICAgIE5TUmVjdCBy OwotICAgICAgdW5zaWduZWQgbG9uZyB0aGlja25lc3MsIHBvc2l0aW9uOwotCi0gICAgICAvKiBJ ZiB0aGUgcHJldiB3YXMgdW5kZXJsaW5lZCwgbWF0Y2ggaXRzIGFwcGVhcmFuY2UuICovCi0gICAg ICBpZiAocy0+cHJldiAmJiBzLT5wcmV2LT5mYWNlLT51bmRlcmxpbmVfcAotICAgICAgICAgICYm IHMtPnByZXYtPnVuZGVybGluZV90aGlja25lc3MgPiAwKQorICAgICAgaWYgKHMtPmZhY2UtPnVu ZGVybGluZV90eXBlID09IEZBQ0VfVU5ERVJfV0FWRSkKICAgICAgICAgewotICAgICAgICAgIHRo aWNrbmVzcyA9IHMtPnByZXYtPnVuZGVybGluZV90aGlja25lc3M7Ci0gICAgICAgICAgcG9zaXRp b24gPSBzLT5wcmV2LT51bmRlcmxpbmVfcG9zaXRpb247CisgICAgICAgICAgaWYgKGZhY2UtPnVu ZGVybGluZV9kZWZhdWx0ZWRfcCkKKyAgICAgICAgICAgIFtkZWZhdWx0Q29sIHNldF07CisgICAg ICAgICAgZWxzZQorICAgICAgICAgICAgW25zX2xvb2t1cF9pbmRleGVkX2NvbG9yIChmYWNlLT51 bmRlcmxpbmVfY29sb3IsIHMtPmYpIHNldF07CisKKyAgICAgICAgICBuc19kcmF3X3VuZGVyd2F2 ZSAocywgd2lkdGgsIHgpOwogICAgICAgICB9Ci0gICAgICBlbHNlCisgICAgICBlbHNlIGlmIChz LT5mYWNlLT51bmRlcmxpbmVfdHlwZSA9PSBGQUNFX1VOREVSX0xJTkUpCiAgICAgICAgIHsKLSAg ICAgICAgICBzdHJ1Y3QgZm9udCAqZm9udDsKLSAgICAgICAgICB1bnNpZ25lZCBsb25nIGRlc2Nl bnQ7Ci0KLSAgICAgICAgICBmb250PXMtPmZvbnQ7Ci0gICAgICAgICAgZGVzY2VudCA9IHMtPnkg KyBzLT5oZWlnaHQgLSBzLT55YmFzZTsKLQotICAgICAgICAgIC8qIFVzZSB1bmRlcmxpbmUgdGhp Y2tuZXNzIG9mIGZvbnQsIGRlZmF1bHRpbmcgdG8gMS4gKi8KLSAgICAgICAgICB0aGlja25lc3Mg PSAoZm9udCAmJiBmb250LT51bmRlcmxpbmVfdGhpY2tuZXNzID4gMCkKLSAgICAgICAgICAgID8g Zm9udC0+dW5kZXJsaW5lX3RoaWNrbmVzcyA6IDE7Ci0KLSAgICAgICAgICAvKiBEZXRlcm1pbmUg dGhlIG9mZnNldCBvZiB1bmRlcmxpbmluZyBmcm9tIHRoZSBiYXNlbGluZS4gKi8KLSAgICAgICAg ICBpZiAoeF91bmRlcmxpbmVfYXRfZGVzY2VudF9saW5lKQotICAgICAgICAgICAgcG9zaXRpb24g PSBkZXNjZW50IC0gdGhpY2tuZXNzOwotICAgICAgICAgIGVsc2UgaWYgKHhfdXNlX3VuZGVybGlu ZV9wb3NpdGlvbl9wcm9wZXJ0aWVzCi0gICAgICAgICAgICAgICAgICAgJiYgZm9udCAmJiBmb250 LT51bmRlcmxpbmVfcG9zaXRpb24gPj0gMCkKLSAgICAgICAgICAgIHBvc2l0aW9uID0gZm9udC0+ dW5kZXJsaW5lX3Bvc2l0aW9uOwotICAgICAgICAgIGVsc2UgaWYgKGZvbnQpCi0gICAgICAgICAg ICBwb3NpdGlvbiA9IGxyb3VuZCAoZm9udC0+ZGVzY2VudCAvIDIpOwotICAgICAgICAgIGVsc2UK LSAgICAgICAgICAgIHBvc2l0aW9uID0gdW5kZXJsaW5lX21pbmltdW1fb2Zmc2V0OwogCi0gICAg ICAgICAgcG9zaXRpb24gPSBtYXggKHBvc2l0aW9uLCB1bmRlcmxpbmVfbWluaW11bV9vZmZzZXQp OworICAgICAgICAgIE5TUmVjdCByOworICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGhpY2tuZXNz LCBwb3NpdGlvbjsKIAotICAgICAgICAgIC8qIEVuc3VyZSB1bmRlcmxpbmluZyBpcyBub3QgY3Jv cHBlZC4gKi8KLSAgICAgICAgICBpZiAoZGVzY2VudCA8PSBwb3NpdGlvbikKKyAgICAgICAgICAv KiBJZiB0aGUgcHJldiB3YXMgdW5kZXJsaW5lZCwgbWF0Y2ggaXRzIGFwcGVhcmFuY2UuICovCisg ICAgICAgICAgaWYgKHMtPnByZXYgJiYgcy0+cHJldi0+ZmFjZS0+dW5kZXJsaW5lX3AKKyAgICAg ICAgICAgICAgJiYgcy0+cHJldi0+dW5kZXJsaW5lX3RoaWNrbmVzcyA+IDApCiAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgIHBvc2l0aW9uID0gZGVzY2VudCAtIDE7Ci0gICAgICAgICAgICAg IHRoaWNrbmVzcyA9IDE7CisgICAgICAgICAgICAgIHRoaWNrbmVzcyA9IHMtPnByZXYtPnVuZGVy bGluZV90aGlja25lc3M7CisgICAgICAgICAgICAgIHBvc2l0aW9uID0gcy0+cHJldi0+dW5kZXJs aW5lX3Bvc2l0aW9uOwogICAgICAgICAgICAgfQotICAgICAgICAgIGVsc2UgaWYgKGRlc2NlbnQg PCBwb3NpdGlvbiArIHRoaWNrbmVzcykKLSAgICAgICAgICAgIHRoaWNrbmVzcyA9IDE7Ci0gICAg ICAgIH0KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHN0cnVj dCBmb250ICpmb250OworICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGRlc2NlbnQ7CisKKyAg ICAgICAgICAgICAgZm9udD1zLT5mb250OworICAgICAgICAgICAgICBkZXNjZW50ID0gcy0+eSAr IHMtPmhlaWdodCAtIHMtPnliYXNlOworCisgICAgICAgICAgICAgIC8qIFVzZSB1bmRlcmxpbmUg dGhpY2tuZXNzIG9mIGZvbnQsIGRlZmF1bHRpbmcgdG8gMS4gKi8KKyAgICAgICAgICAgICAgdGhp Y2tuZXNzID0gKGZvbnQgJiYgZm9udC0+dW5kZXJsaW5lX3RoaWNrbmVzcyA+IDApCisgICAgICAg ICAgICAgICAgPyBmb250LT51bmRlcmxpbmVfdGhpY2tuZXNzIDogMTsKKworICAgICAgICAgICAg ICAvKiBEZXRlcm1pbmUgdGhlIG9mZnNldCBvZiB1bmRlcmxpbmluZyBmcm9tIHRoZSBiYXNlbGlu ZS4gKi8KKyAgICAgICAgICAgICAgaWYgKHhfdW5kZXJsaW5lX2F0X2Rlc2NlbnRfbGluZSkKKyAg ICAgICAgICAgICAgICBwb3NpdGlvbiA9IGRlc2NlbnQgLSB0aGlja25lc3M7CisgICAgICAgICAg ICAgIGVsc2UgaWYgKHhfdXNlX3VuZGVybGluZV9wb3NpdGlvbl9wcm9wZXJ0aWVzCisgICAgICAg ICAgICAgICAgICAgICAgICYmIGZvbnQgJiYgZm9udC0+dW5kZXJsaW5lX3Bvc2l0aW9uID49IDAp CisgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBmb250LT51bmRlcmxpbmVfcG9zaXRpb247Cisg ICAgICAgICAgICAgIGVsc2UgaWYgKGZvbnQpCisgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBs cm91bmQgKGZvbnQtPmRlc2NlbnQgLyAyKTsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg ICAgICAgIHBvc2l0aW9uID0gdW5kZXJsaW5lX21pbmltdW1fb2Zmc2V0OworCisgICAgICAgICAg ICAgIHBvc2l0aW9uID0gbWF4IChwb3NpdGlvbiwgdW5kZXJsaW5lX21pbmltdW1fb2Zmc2V0KTsK IAotICAgICAgcy0+dW5kZXJsaW5lX3RoaWNrbmVzcyA9IHRoaWNrbmVzczsKLSAgICAgIHMtPnVu ZGVybGluZV9wb3NpdGlvbiA9IHBvc2l0aW9uOworICAgICAgICAgICAgICAvKiBFbnN1cmUgdW5k ZXJsaW5pbmcgaXMgbm90IGNyb3BwZWQuICovCisgICAgICAgICAgICAgIGlmIChkZXNjZW50IDw9 IHBvc2l0aW9uKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHBvc2l0aW9u ID0gZGVzY2VudCAtIDE7CisgICAgICAgICAgICAgICAgICB0aGlja25lc3MgPSAxOworICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiAoZGVzY2VudCA8IHBvc2l0aW9uICsg dGhpY2tuZXNzKQorICAgICAgICAgICAgICAgIHRoaWNrbmVzcyA9IDE7CisgICAgICAgICAgICB9 CiAKLSAgICAgIHIgPSBOU01ha2VSZWN0ICh4LCBzLT55YmFzZSArIHBvc2l0aW9uLCB3aWR0aCwg dGhpY2tuZXNzKTsKKyAgICAgICAgICBzLT51bmRlcmxpbmVfdGhpY2tuZXNzID0gdGhpY2tuZXNz OworICAgICAgICAgIHMtPnVuZGVybGluZV9wb3NpdGlvbiA9IHBvc2l0aW9uOwogCi0gICAgICBp ZiAoZmFjZS0+dW5kZXJsaW5lX2RlZmF1bHRlZF9wKQotICAgICAgICBbZGVmYXVsdENvbCBzZXRd OwotICAgICAgZWxzZQotICAgICAgICBbbnNfbG9va3VwX2luZGV4ZWRfY29sb3IgKGZhY2UtPnVu ZGVybGluZV9jb2xvciwgcy0+Zikgc2V0XTsKLSAgICAgIE5TUmVjdEZpbGwgKHIpOwotICAgIH0K KyAgICAgICAgICByID0gTlNNYWtlUmVjdCAoeCwgcy0+eWJhc2UgKyBwb3NpdGlvbiwgd2lkdGgs IHRoaWNrbmVzcyk7CiAKKyAgICAgICAgICBpZiAoZmFjZS0+dW5kZXJsaW5lX2RlZmF1bHRlZF9w KQorICAgICAgICAgICAgW2RlZmF1bHRDb2wgc2V0XTsKKyAgICAgICAgICBlbHNlCisgICAgICAg ICAgICBbbnNfbG9va3VwX2luZGV4ZWRfY29sb3IgKGZhY2UtPnVuZGVybGluZV9jb2xvciwgcy0+ Zikgc2V0XTsKKyAgICAgICAgICBOU1JlY3RGaWxsIChyKTsKKyAgICAgICAgfQorICAgIH0KICAg LyogRG8gb3ZlcmxpbmUuIFdlIGZvbGxvdyBvdGhlciB0ZXJtcyBpbiB1c2luZyBhIHRoaWNrbmVz cyBvZiAxCiAgICAgIGFuZCBpZ25vcmluZyBvdmVybGluZV9tYXJnaW4uICovCiAgIGlmIChmYWNl LT5vdmVybGluZV9wKQpkaWZmIC0tZ2l0IGEvc3JjL3czMnRlcm0uYyBiL3NyYy93MzJ0ZXJtLmMK aW5kZXggZjc2NGFkOS4uZDUzZjBhYiAxMDA2NDQKLS0tIGEvc3JjL3czMnRlcm0uYworKysgYi9z cmMvdzMydGVybS5jCkBAIC0zMDksNiArMzA5LDk0IEBAIHczMl9zZXRfY2xpcF9yZWN0YW5nbGUg KEhEQyBoZGMsIFJFQ1QgKnJlY3QpCiAgICAgU2VsZWN0Q2xpcFJnbiAoaGRjLCBOVUxMKTsKIH0K IAorLyogUmVzdG9yZSBjbGlwcGluZyByZWN0YW5nbGUgaW4gUyAqLworc3RhdGljIHZvaWQKK3cz Ml9yZXN0b3JlX2dseXBoX3N0cmluZ19jbGlwIChzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzKQorewor ICBSRUNUICpyID0gcy0+Y2xpcDsKKyAgaW50IG4gPSBzLT5udW1fY2xpcHM7CisKKyAgaWYgKG4g PT0gMSkKKyAgICB3MzJfc2V0X2NsaXBfcmVjdGFuZ2xlIChzLT5oZGMsIHIpOworICBlbHNlIGlm IChuID4gMSkKKyAgICB7CisgICAgICBIUkdOIGNsaXAxID0gQ3JlYXRlUmVjdFJnbkluZGlyZWN0 IChyKTsKKyAgICAgIEhSR04gY2xpcDIgPSBDcmVhdGVSZWN0UmduSW5kaXJlY3QgKHIgKyAxKTsK KyAgICAgIGlmIChDb21iaW5lUmduIChjbGlwMSwgY2xpcDEsIGNsaXAyLCBSR05fT1IpICE9IEVS Uk9SKQorICAgICAgICBTZWxlY3RDbGlwUmduIChzLT5oZGMsIGNsaXAxKTsKKyAgICAgIERlbGV0 ZU9iamVjdCAoY2xpcDEpOworICAgICAgRGVsZXRlT2JqZWN0IChjbGlwMik7CisgICAgfQorfQor CisvKgorICAgRHJhdyBhIHdhdnkgbGluZSB1bmRlciBTLiBUaGUgd2F2ZSBmaWxscyB3YXZlX2hl aWdodCBwaXhlbHMgZnJvbSB5MC4KKworICAgICAgICAgICAgICAgICAgICB4MCAgICAgICAgIHdh dmVfbGVuZ3RoID0gMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAg ICAgICAgICAgICB5MCAgICogICAqICAgKiAgICogICAqCisgICAgICAgICAgICAgICAgICAgICB8 KiAqICogKiAqICogKiAqICoKKyAgICB3YXZlX2hlaWdodCA9IDMgIHwgKiAgICogICAqICAgKgor CisqLworCit2b2lkCit3MzJfZHJhd191bmRlcndhdmUgKHN0cnVjdCBnbHlwaF9zdHJpbmcgKnMs IENPTE9SUkVGIGNvbG9yKQoreworICBpbnQgd2F2ZV9oZWlnaHQgPSAyLCB3YXZlX2xlbmd0aCA9 IDM7CisgIGludCBkeCwgZHksIHgwLCB5MCwgd2lkdGgsIHgxLCB5MSwgeDIsIHkyLCBvZGQsIHht YXg7CisgIFhSZWN0YW5nbGUgd2F2ZV9jbGlwLCBzdHJpbmdfY2xpcCwgZmluYWxfY2xpcDsKKyAg UkVDVCB3MzJfZmluYWxfY2xpcCwgdzMyX3N0cmluZ19jbGlwOworICBIUEVOIGhwLCBvbGRocDsK KworICBkeCA9IHdhdmVfbGVuZ3RoOworICBkeSA9IHdhdmVfaGVpZ2h0IC0gMTsKKyAgeDAgPSBz LT54OworICB5MCA9IHMtPnliYXNlICsgMTsKKyAgd2lkdGggPSBzLT53aWR0aDsKKyAgeG1heCA9 IHgwICsgd2lkdGg7CisKKyAgLyogRmluZCBhbmQgc2V0IGNsaXBwaW5nIHJlY3RhbmdsZSAqLwor CisgIHdhdmVfY2xpcCA9IChYUmVjdGFuZ2xlKXsgeDAsIHkwLCB3aWR0aCwgd2F2ZV9oZWlnaHQg fTsKKyAgZ2V0X2dseXBoX3N0cmluZ19jbGlwX3JlY3QgKHMsICZ3MzJfc3RyaW5nX2NsaXApOwor ICBDT05WRVJUX1RPX1hSRUNUIChzdHJpbmdfY2xpcCwgdzMyX3N0cmluZ19jbGlwKTsKKworICBp ZiAoIXhfaW50ZXJzZWN0X3JlY3RhbmdsZXMgKCZ3YXZlX2NsaXAsICZzdHJpbmdfY2xpcCwgJmZp bmFsX2NsaXApKQorICAgIHJldHVybjsKKworICBocCA9IENyZWF0ZVBlbiAoUFNfU09MSUQsIDAs IGNvbG9yKTsKKyAgb2xkaHAgPSBTZWxlY3RPYmplY3QgKHMtPmhkYywgaHApOworICBDT05WRVJU X0ZST01fWFJFQ1QgKGZpbmFsX2NsaXAsIHczMl9maW5hbF9jbGlwKTsKKyAgdzMyX3NldF9jbGlw X3JlY3RhbmdsZSAocy0+aGRjLCAmdzMyX2ZpbmFsX2NsaXApOworCisgIC8qIERyYXcgdGhlIHdh dmVzICovCisKKyAgeDEgPSB4MCAtICh4MCAlIGR4KTsKKyAgeDIgPSB4MSArIGR4OworICBvZGQg PSAoeDEvZHgpICUgMjsKKyAgeTEgPSB5MiA9IHkwOworCisgIGlmIChvZGQpCisgICAgeTEgKz0g ZHk7CisgIGVsc2UKKyAgICB5MiArPSBkeTsKKworICBNb3ZlVG9FeCAocy0+aGRjLCB4MSwgeTEs IE5VTEwpOworCisgIHdoaWxlICh4MSA8PSB4bWF4KQorICAgIHsKKyAgICAgIExpbmVUbyAocy0+ aGRjLCB4MiwgeTIpOworICAgICAgeDEgID0geDIsIHkxID0geTI7CisgICAgICB4MiArPSBkeCwg eTIgPSB5MCArIG9kZCpkeTsKKyAgICAgIG9kZCA9ICFvZGQ7CisgICAgfQorCisgIC8qIFJlc3Rv cmUgcHJldmlvdXMgcGVuIGFuZCBjbGlwcGluZyByZWN0YW5nbGUocykgKi8KKyAgdzMyX3Jlc3Rv cmVfZ2x5cGhfc3RyaW5nX2NsaXAgKHMpOworICBTZWxlY3RPYmplY3QgKHMtPmhkYywgb2xkaHAp OworICBEZWxldGVPYmplY3QgKGhwKTsKK30KIAogLyogRHJhdyBhIGhvbGxvdyByZWN0YW5nbGUg YXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gICovCiB2b2lkCkBAIC0yMzQzLDYwICsyNDMxLDc0 IEBAIHhfZHJhd19nbHlwaF9zdHJpbmcgKHN0cnVjdCBnbHlwaF9zdHJpbmcgKnMpCiAgICAgICAv KiBEcmF3IHVuZGVybGluZS4gICovCiAgICAgICBpZiAocy0+ZmFjZS0+dW5kZXJsaW5lX3ApCiAg ICAgICAgIHsKLSAgICAgICAgICB1bnNpZ25lZCBsb25nIHRoaWNrbmVzcywgcG9zaXRpb247Ci0g ICAgICAgICAgaW50IHk7Ci0KLSAgICAgICAgICBpZiAocy0+cHJldiAmJiBzLT5wcmV2LT5mYWNl LT51bmRlcmxpbmVfcCkKKyAgICAgICAgICBpZiAocy0+ZmFjZS0+dW5kZXJsaW5lX3R5cGUgPT0g RkFDRV9VTkRFUl9XQVZFKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAvKiBXZSB1c2Ug dGhlIHNhbWUgdW5kZXJsaW5lIHN0eWxlIGFzIHRoZSBwcmV2aW91cyBvbmUuICAqLwotICAgICAg ICAgICAgICB0aGlja25lc3MgPSBzLT5wcmV2LT51bmRlcmxpbmVfdGhpY2tuZXNzOwotICAgICAg ICAgICAgICBwb3NpdGlvbiA9IHMtPnByZXYtPnVuZGVybGluZV9wb3NpdGlvbjsKKyAgICAgICAg ICAgICAgQ09MT1JSRUYgY29sb3I7CisKKyAgICAgICAgICAgICAgaWYgKHMtPmZhY2UtPnVuZGVy bGluZV9kZWZhdWx0ZWRfcCkKKyAgICAgICAgICAgICAgICBjb2xvciA9IHMtPmdjLT5mb3JlZ3Jv dW5kOworICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29sb3IgPSBzLT5mYWNl LT51bmRlcmxpbmVfY29sb3I7CisKKyAgICAgICAgICAgICAgdzMyX2RyYXdfdW5kZXJ3YXZlIChz LCBjb2xvcik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZQorICAgICAgICAgIGVsc2Ug aWYgKHMtPmZhY2UtPnVuZGVybGluZV90eXBlID09IEZBQ0VfVU5ERVJfTElORSkKICAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgLyogR2V0IHRoZSB1bmRlcmxpbmUgdGhpY2tuZXNzLiAgRGVm YXVsdCBpcyAxIHBpeGVsLiAgKi8KLSAgICAgICAgICAgICAgaWYgKHMtPmZvbnQgJiYgcy0+Zm9u dC0+dW5kZXJsaW5lX3RoaWNrbmVzcyA+IDApCi0gICAgICAgICAgICAgICAgdGhpY2tuZXNzID0g cy0+Zm9udC0+dW5kZXJsaW5lX3RoaWNrbmVzczsKKyAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyB0aGlja25lc3MsIHBvc2l0aW9uOworICAgICAgICAgICAgICBpbnQgeTsKKworICAgICAgICAg ICAgICBpZiAocy0+cHJldiAmJiBzLT5wcmV2LT5mYWNlLT51bmRlcmxpbmVfcCkKKyAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAvKiBXZSB1c2UgdGhlIHNhbWUgdW5kZXJsaW5l IHN0eWxlIGFzIHRoZSBwcmV2aW91cyBvbmUuICAqLworICAgICAgICAgICAgICAgICAgdGhpY2tu ZXNzID0gcy0+cHJldi0+dW5kZXJsaW5lX3RoaWNrbmVzczsKKyAgICAgICAgICAgICAgICAgIHBv c2l0aW9uID0gcy0+cHJldi0+dW5kZXJsaW5lX3Bvc2l0aW9uOworICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRoaWNrbmVzcyA9IDE7Ci0gICAg ICAgICAgICAgIGlmICh4X3VuZGVybGluZV9hdF9kZXNjZW50X2xpbmUpCi0gICAgICAgICAgICAg ICAgcG9zaXRpb24gPSAocy0+aGVpZ2h0IC0gdGhpY2tuZXNzKSAtIChzLT55YmFzZSAtIHMtPnkp OworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIC8qIEdldCB0aGUgdW5kZXJs aW5lIHRoaWNrbmVzcy4gIERlZmF1bHQgaXMgMSBwaXhlbC4gICovCisgICAgICAgICAgICAgICAg ICBpZiAocy0+Zm9udCAmJiBzLT5mb250LT51bmRlcmxpbmVfdGhpY2tuZXNzID4gMCkKKyAgICAg ICAgICAgICAgICAgICAgdGhpY2tuZXNzID0gcy0+Zm9udC0+dW5kZXJsaW5lX3RoaWNrbmVzczsK KyAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGhpY2tuZXNzID0g MTsKKyAgICAgICAgICAgICAgICAgIGlmICh4X3VuZGVybGluZV9hdF9kZXNjZW50X2xpbmUpCisg ICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gKHMtPmhlaWdodCAtIHRoaWNrbmVzcykgLSAo cy0+eWJhc2UgLSBzLT55KTsKKyAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIC8qIEdldCB0aGUgdW5kZXJsaW5lIHBvc2l0 aW9uLiAgVGhpcyBpcyB0aGUgcmVjb21tZW5kZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICB2 ZXJ0aWNhbCBvZmZzZXQgaW4gcGl4ZWxzIGZyb20gdGhlIGJhc2VsaW5lIHRvIHRoZSB0b3Agb2YK KyAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdW5kZXJsaW5lLiAgVGhpcyBpcyBhIHNpZ25l ZCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY3Ms IGFuZCBpdHMgZGVmYXVsdCBpcworCisgICAgICAgICAgICAgICAgICAgICAgICAgUk9VTkQgKCht YXhpbXVtX2Rlc2NlbnQpIC8gMiksIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICBST1VO RCAoeCkgPSBmbG9vciAoeCArIDAuNSkgICovCisKKyAgICAgICAgICAgICAgICAgICAgICBpZiAo eF91c2VfdW5kZXJsaW5lX3Bvc2l0aW9uX3Byb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgJiYgcy0+Zm9udCAmJiBzLT5mb250LT51bmRlcmxpbmVfcG9zaXRpb24gPj0gMCkKKyAg ICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcy0+Zm9udC0+dW5kZXJsaW5lX3Bvc2l0 aW9uOworICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHMtPmZvbnQpCisgICAgICAgICAg ICAgICAgICAgICAgICBwb3NpdGlvbiA9IChzLT5mb250LT5kZXNjZW50ICsgMSkgLyAyOworICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IG1heCAocG9z aXRpb24sIHVuZGVybGluZV9taW5pbXVtX29mZnNldCk7CisgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAvKiBDaGVjayB0aGUgc2FuaXR5IG9mIHRoaWNrbmVzcyBhbmQgcG9zaXRpb24u ICBXZSBzaG91bGQKKyAgICAgICAgICAgICAgICAgYXZvaWQgZHJhd2luZyB1bmRlcmxpbmUgb3V0 IG9mIHRoZSBjdXJyZW50IGxpbmUgYXJlYS4gICovCisgICAgICAgICAgICAgIGlmIChzLT55ICsg cy0+aGVpZ2h0IDw9IHMtPnliYXNlICsgcG9zaXRpb24pCisgICAgICAgICAgICAgICAgcG9zaXRp b24gPSAocy0+aGVpZ2h0IC0gMSkgLSAocy0+eWJhc2UgLSBzLT55KTsKKyAgICAgICAgICAgICAg aWYgKHMtPnkgKyBzLT5oZWlnaHQgPCBzLT55YmFzZSArIHBvc2l0aW9uICsgdGhpY2tuZXNzKQor ICAgICAgICAgICAgICAgIHRoaWNrbmVzcyA9IChzLT55ICsgcy0+aGVpZ2h0KSAtIChzLT55YmFz ZSArIHBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgcy0+dW5kZXJsaW5lX3RoaWNrbmVzcyA9IHRo aWNrbmVzczsKKyAgICAgICAgICAgICAgcy0+dW5kZXJsaW5lX3Bvc2l0aW9uID1wb3NpdGlvbjsK KyAgICAgICAgICAgICAgeSA9IHMtPnliYXNlICsgcG9zaXRpb247CisgICAgICAgICAgICAgIGlm IChzLT5mYWNlLT51bmRlcmxpbmVfZGVmYXVsdGVkX3ApCisgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgdzMyX2ZpbGxfYXJlYSAocy0+Ziwgcy0+aGRjLCBzLT5nYy0+Zm9yZWdy b3VuZCwgcy0+eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHksIHMtPndpZHRo LCAxKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgLyogR2V0IHRoZSB1bmRlcmxpbmUgcG9zaXRpb24uICBU aGlzIGlzIHRoZSByZWNvbW1lbmRlZAotICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsIG9mZnNl dCBpbiBwaXhlbHMgZnJvbSB0aGUgYmFzZWxpbmUgdG8gdGhlIHRvcCBvZgotICAgICAgICAgICAg ICAgICAgIHRoZSB1bmRlcmxpbmUuICBUaGlzIGlzIGEgc2lnbmVkIHZhbHVlIGFjY29yZGluZyB0 byB0aGUKLSAgICAgICAgICAgICAgICAgICBzcGVjcywgYW5kIGl0cyBkZWZhdWx0IGlzCi0KLSAg ICAgICAgICAgICAgICAgICBST1VORCAoKG1heGltdW1fZGVzY2VudCkgLyAyKSwgd2l0aAotICAg ICAgICAgICAgICAgICAgIFJPVU5EICh4KSA9IGZsb29yICh4ICsgMC41KSAgKi8KLQotICAgICAg ICAgICAgICAgIGlmICh4X3VzZV91bmRlcmxpbmVfcG9zaXRpb25fcHJvcGVydGllcwotICAgICAg ICAgICAgICAgICAgICAmJiBzLT5mb250ICYmIHMtPmZvbnQtPnVuZGVybGluZV9wb3NpdGlvbiA+ PSAwKQotICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBzLT5mb250LT51bmRlcmxpbmVfcG9z aXRpb247Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAocy0+Zm9udCkKLSAgICAgICAgICAgICAg ICAgIHBvc2l0aW9uID0gKHMtPmZvbnQtPmRlc2NlbnQgKyAxKSAvIDI7CisgICAgICAgICAgICAg ICAgICB3MzJfZmlsbF9hcmVhIChzLT5mLCBzLT5oZGMsIHMtPmZhY2UtPnVuZGVybGluZV9jb2xv ciwgcy0+eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHksIHMtPndpZHRoLCAx KTsKICAgICAgICAgICAgICAgICB9Ci0JICAgICAgcG9zaXRpb24gPSBtYXggKHBvc2l0aW9uLCB1 bmRlcmxpbmVfbWluaW11bV9vZmZzZXQpOwotICAgICAgICAgICAgfQotCSAgLyogQ2hlY2sgdGhl IHNhbml0eSBvZiB0aGlja25lc3MgYW5kIHBvc2l0aW9uLiAgV2Ugc2hvdWxkCi0JICAgICBhdm9p ZCBkcmF3aW5nIHVuZGVybGluZSBvdXQgb2YgdGhlIGN1cnJlbnQgbGluZSBhcmVhLiAgKi8KLQkg IGlmIChzLT55ICsgcy0+aGVpZ2h0IDw9IHMtPnliYXNlICsgcG9zaXRpb24pCi0JICAgIHBvc2l0 aW9uID0gKHMtPmhlaWdodCAtIDEpIC0gKHMtPnliYXNlIC0gcy0+eSk7Ci0JICBpZiAocy0+eSAr IHMtPmhlaWdodCA8IHMtPnliYXNlICsgcG9zaXRpb24gKyB0aGlja25lc3MpCi0JICAgIHRoaWNr bmVzcyA9IChzLT55ICsgcy0+aGVpZ2h0KSAtIChzLT55YmFzZSArIHBvc2l0aW9uKTsKLQkgIHMt PnVuZGVybGluZV90aGlja25lc3MgPSB0aGlja25lc3M7Ci0JICBzLT51bmRlcmxpbmVfcG9zaXRp b24gPXBvc2l0aW9uOwotICAgICAgICAgIHkgPSBzLT55YmFzZSArIHBvc2l0aW9uOwotICAgICAg ICAgIGlmIChzLT5mYWNlLT51bmRlcmxpbmVfZGVmYXVsdGVkX3ApCi0gICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgIHczMl9maWxsX2FyZWEgKHMtPmYsIHMtPmhkYywgcy0+Z2MtPmZvcmVncm91 bmQsIHMtPngsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHksIHMtPndpZHRoLCAxKTsK LSAgICAgICAgICAgIH0KLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgIHczMl9maWxsX2FyZWEgKHMtPmYsIHMtPmhkYywgcy0+ZmFjZS0+dW5kZXJsaW5lX2NvbG9y LCBzLT54LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5LCBzLT53aWR0aCwgMSk7CiAg ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgIC8qIERyYXcgb3ZlcmxpbmUuICAqLwpkaWZm IC0tZ2l0IGEvc3JjL3hmYWNlcy5jIGIvc3JjL3hmYWNlcy5jCmluZGV4IDYxNzA5N2QuLjhiZWUy ZDYgMTAwNjQ0Ci0tLSBhL3NyYy94ZmFjZXMuYworKysgYi9zcmMveGZhY2VzLmMKQEAgLTMyMCw2 ICszMjAsNyBAQCBzdGF0aWMgTGlzcF9PYmplY3QgUUNmb250c2V0OwogCiBMaXNwX09iamVjdCBR bm9ybWFsOwogTGlzcF9PYmplY3QgUWJvbGQ7CitzdGF0aWMgTGlzcF9PYmplY3QgUWxpbmUsIFF3 YXZlOwogc3RhdGljIExpc3BfT2JqZWN0IFF1bHRyYV9saWdodCwgUWV4dHJhX2xpZ2h0LCBRbGln aHQ7CiBzdGF0aWMgTGlzcF9PYmplY3QgUXNlbWlfbGlnaHQsIFFzZW1pX2JvbGQsIFFleHRyYV9i b2xkLCBRdWx0cmFfYm9sZDsKIHN0YXRpYyBMaXNwX09iamVjdCBRb2JsaXF1ZSwgUXJldmVyc2Vf b2JsaXF1ZSwgUXJldmVyc2VfaXRhbGljOwpAQCAtMTg4OSw3ICsxODkwLDggQEAgY2hlY2tfbGZh Y2VfYXR0cnMgKExpc3BfT2JqZWN0ICphdHRycykKICAgeGFzc2VydCAoVU5TUEVDSUZJRURQIChh dHRyc1tMRkFDRV9VTkRFUkxJTkVfSU5ERVhdKQogCSAgIHx8IElHTk9SRV9ERUZGQUNFX1AgKGF0 dHJzW0xGQUNFX1VOREVSTElORV9JTkRFWF0pCiAJICAgfHwgU1lNQk9MUCAoYXR0cnNbTEZBQ0Vf VU5ERVJMSU5FX0lOREVYXSkKLQkgICB8fCBTVFJJTkdQIChhdHRyc1tMRkFDRV9VTkRFUkxJTkVf SU5ERVhdKSk7CisJICAgfHwgU1RSSU5HUCAoYXR0cnNbTEZBQ0VfVU5ERVJMSU5FX0lOREVYXSkK KwkgICB8fCBDT05TUCAoYXR0cnNbTEZBQ0VfVU5ERVJMSU5FX0lOREVYXSkpOwogICB4YXNzZXJ0 IChVTlNQRUNJRklFRFAgKGF0dHJzW0xGQUNFX09WRVJMSU5FX0lOREVYXSkKIAkgICB8fCBJR05P UkVfREVGRkFDRV9QIChhdHRyc1tMRkFDRV9PVkVSTElORV9JTkRFWF0pCiAJICAgfHwgU1lNQk9M UCAoYXR0cnNbTEZBQ0VfT1ZFUkxJTkVfSU5ERVhdKQpAQCAtMjUyMCw3ICsyNTIyLDggQEAgbWVy Z2VfZmFjZV9yZWYgKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgZmFjZV9yZWYsIExpc3Bf T2JqZWN0ICp0bywKIAkJewogCQkgIGlmIChFUSAodmFsdWUsIFF0KQogCQkgICAgICB8fCBOSUxQ ICh2YWx1ZSkKLQkJICAgICAgfHwgU1RSSU5HUCAodmFsdWUpKQorCQkgICAgICB8fCBTVFJJTkdQ ICh2YWx1ZSkKKwkJICAgICAgfHwgQ09OU1AgKHZhbHVlKSkKIAkJICAgIHRvW0xGQUNFX1VOREVS TElORV9JTkRFWF0gPSB2YWx1ZTsKIAkJICBlbHNlCiAJCSAgICBlcnIgPSAxOwpAQCAtMjk0NCwx NSArMjk0Nyw1NCBAQCBGUkFNRSAwIG1lYW5zIGNoYW5nZSB0aGUgZmFjZSBvbiBhbGwgZnJhbWVz LCBhbmQgY2hhbmdlIHRoZSBkZWZhdWx0CiAgICAgfQogICBlbHNlIGlmIChFUSAoYXR0ciwgUUN1 bmRlcmxpbmUpKQogICAgIHsKLSAgICAgIGlmICghVU5TUEVDSUZJRURQICh2YWx1ZSkgJiYgIUlH Tk9SRV9ERUZGQUNFX1AgKHZhbHVlKSkKLQlpZiAoKFNZTUJPTFAgKHZhbHVlKQotCSAgICAgJiYg IUVRICh2YWx1ZSwgUXQpCi0JICAgICAmJiAhRVEgKHZhbHVlLCBRbmlsKSkKLQkgICAgLyogVW5k ZXJsaW5lIGNvbG9yLiAgKi8KLQkgICAgfHwgKFNUUklOR1AgKHZhbHVlKQotCQkmJiBTQ0hBUlMg KHZhbHVlKSA9PSAwKSkKLQkgIHNpZ25hbF9lcnJvciAoIkludmFsaWQgZmFjZSB1bmRlcmxpbmUi LCB2YWx1ZSk7Ci0KKyAgICAgIGludCB2YWxpZF9wID0gMDsKKyAgICAgIAorICAgICAgaWYgKFVO U1BFQ0lGSUVEUCAodmFsdWUpIHx8IElHTk9SRV9ERUZGQUNFX1AgKHZhbHVlKSkKKwl2YWxpZF9w ID0gMTsKKyAgICAgIGVsc2UgaWYgKE5JTFAgKHZhbHVlKSB8fCBFUSAodmFsdWUsIFF0KSkKKyAg ICAgICAgdmFsaWRfcCA9IDE7CisgICAgICBlbHNlIGlmIChTVFJJTkdQICh2YWx1ZSkgJiYgU0NI QVJTICh2YWx1ZSkgPiAwKQorICAgICAgICB2YWxpZF9wID0gMTsKKyAgICAgIGVsc2UgaWYgKENP TlNQICh2YWx1ZSkpCisgICAgICAgIHsKKyAgICAgICAgICBMaXNwX09iamVjdCBrZXksIHZhbCwg bGlzdDsKKworICAgICAgICAgIGxpc3QgPSB2YWx1ZTsKKyAgICAgICAgICB2YWxpZF9wID0gMTsK KworICAgICAgICAgIHdoaWxlICghTklMUCAoQ0FSX1NBRkUobGlzdCkpKQorICAgICAgICAgICAg eworICAgICAgICAgICAgICBrZXkgPSBDQVJfU0FGRSAobGlzdCk7CisgICAgICAgICAgICAgIGxp c3QgPSBDRFJfU0FGRSAobGlzdCk7CisgICAgICAgICAgICAgIHZhbCA9IENBUl9TQUZFIChsaXN0 KTsKKyAgICAgICAgICAgICAgbGlzdCA9IENEUl9TQUZFIChsaXN0KTsKKyAgICAgICAgICAgIAor ICAgICAgICAgICAgICBpZihOSUxQIChrZXkpIHx8IE5JTFAgKHZhbCkpIAorICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgIHZhbGlkX3AgPSAwOworICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGVsc2UgaWYgKEVRIChr ZXksIFFDY29sb3IpCisgICAgICAgICAgICAgICAgICAgICAgICYmICEoRVEgKHZhbCwgUWZvcmVn cm91bmRfY29sb3IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKFNUUklOR1AgKHZh bCkgJiYgU0NIQVJTICh2YWwpID4gMCkpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgIHZhbGlkX3AgPSAwOworICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgZWxzZSBpZiAoRVEgKGtleSwg UUNzdHlsZSkgCisgICAgICAgICAgICAgICAgICAgICAgICYmICEoRVEgKHZhbCwgUWxpbmUpIHx8 IEVRICh2YWwsIFF3YXZlKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg dmFsaWRfcCA9IDA7CisgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIAorICAgICAgaWYgKCF2YWxpZF9wKQor ICAgICAgICBzaWduYWxfZXJyb3IgKCJJbnZhbGlkIGZhY2UgdW5kZXJsaW5lIiwgdmFsdWUpOwor ICAgICAgCiAgICAgICBvbGRfdmFsdWUgPSBMRkFDRV9VTkRFUkxJTkUgKGxmYWNlKTsKICAgICAg IExGQUNFX1VOREVSTElORSAobGZhY2UpID0gdmFsdWU7CiAgICAgfQpAQCAtMzc2Miw2ICszODA0 LDcgQEAgVmFsdWUgaXMgbmlsIGlmIEFUVFIgZG9lc24ndCBoYXZlIGEgZGlzY3JldGUgc2V0IG9m IHZhbGlkIHZhbHVlcy4gICovKQogCiAgIENIRUNLX1NZTUJPTCAoYXR0cik7CiAKKyAgLyogWFhY OiBubyBjaGVjayBmb3IgUUNib3g/ICovCiAgIGlmIChFUSAoYXR0ciwgUUN1bmRlcmxpbmUpKQog ICAgIHJlc3VsdCA9IEZjb25zIChRdCwgRmNvbnMgKFFuaWwsIFFuaWwpKTsKICAgZWxzZSBpZiAo RVEgKGF0dHIsIFFDb3ZlcmxpbmUpKQpAQCAtNTU2Myw3ICs1NjA2LDcgQEAgcmVhbGl6ZV94X2Zh Y2UgKHN0cnVjdCBmYWNlX2NhY2hlICpjYWNoZSwgTGlzcF9PYmplY3QgKmF0dHJzKQogI2lmZGVm IEhBVkVfV0lORE9XX1NZU1RFTQogICBzdHJ1Y3QgZmFjZSAqZGVmYXVsdF9mYWNlOwogICBzdHJ1 Y3QgZnJhbWUgKmY7Ci0gIExpc3BfT2JqZWN0IHN0aXBwbGUsIG92ZXJsaW5lLCBzdHJpa2VfdGhy b3VnaCwgYm94OworICBMaXNwX09iamVjdCBzdGlwcGxlLCB1bmRlcmxpbmUsIG92ZXJsaW5lLCBz dHJpa2VfdGhyb3VnaCwgYm94OwogCiAgIHhhc3NlcnQgKEZSQU1FX1dJTkRPV19QIChjYWNoZS0+ ZikpOwogCkBAIC01Njk2LDI5ICs1NzM5LDc2IEBAIHJlYWxpemVfeF9mYWNlIChzdHJ1Y3QgZmFj ZV9jYWNoZSAqY2FjaGUsIExpc3BfT2JqZWN0ICphdHRycykKIAogICAvKiBUZXh0IHVuZGVybGlu ZSwgb3ZlcmxpbmUsIHN0cmlrZS10aHJvdWdoLiAgKi8KIAotICBpZiAoRVEgKGF0dHJzW0xGQUNF X1VOREVSTElORV9JTkRFWF0sIFF0KSkKKyAgdW5kZXJsaW5lID0gYXR0cnNbTEZBQ0VfVU5ERVJM SU5FX0lOREVYXTsKKyAgaWYgKEVRICh1bmRlcmxpbmUsIFF0KSkKICAgICB7CiAgICAgICAvKiBV c2UgZGVmYXVsdCBjb2xvciAoc2FtZSBhcyBmb3JlZ3JvdW5kIGNvbG9yKS4gICovCiAgICAgICBm YWNlLT51bmRlcmxpbmVfcCA9IDE7CisgICAgICBmYWNlLT51bmRlcmxpbmVfdHlwZSA9IEZBQ0Vf VU5ERVJfTElORTsKICAgICAgIGZhY2UtPnVuZGVybGluZV9kZWZhdWx0ZWRfcCA9IDE7CiAgICAg ICBmYWNlLT51bmRlcmxpbmVfY29sb3IgPSAwOwogICAgIH0KLSAgZWxzZSBpZiAoU1RSSU5HUCAo YXR0cnNbTEZBQ0VfVU5ERVJMSU5FX0lOREVYXSkpCisgIGVsc2UgaWYgKFNUUklOR1AgKHVuZGVy bGluZSkpCiAgICAgewogICAgICAgLyogVXNlIHNwZWNpZmllZCBjb2xvci4gICovCiAgICAgICBm YWNlLT51bmRlcmxpbmVfcCA9IDE7CisgICAgICBmYWNlLT51bmRlcmxpbmVfdHlwZSA9IEZBQ0Vf VU5ERVJfTElORTsKICAgICAgIGZhY2UtPnVuZGVybGluZV9kZWZhdWx0ZWRfcCA9IDA7CiAgICAg ICBmYWNlLT51bmRlcmxpbmVfY29sb3IKLQk9IGxvYWRfY29sb3IgKGYsIGZhY2UsIGF0dHJzW0xG QUNFX1VOREVSTElORV9JTkRFWF0sCisJPSBsb2FkX2NvbG9yIChmLCBmYWNlLCB1bmRlcmxpbmUs CiAJCSAgICAgIExGQUNFX1VOREVSTElORV9JTkRFWCk7CiAgICAgfQotICBlbHNlIGlmIChOSUxQ IChhdHRyc1tMRkFDRV9VTkRFUkxJTkVfSU5ERVhdKSkKKyAgZWxzZSBpZiAoTklMUCAodW5kZXJs aW5lKSkKICAgICB7CiAgICAgICBmYWNlLT51bmRlcmxpbmVfcCA9IDA7CiAgICAgICBmYWNlLT51 bmRlcmxpbmVfZGVmYXVsdGVkX3AgPSAwOwogICAgICAgZmFjZS0+dW5kZXJsaW5lX2NvbG9yID0g MDsKICAgICB9Ci0KKyAgZWxzZSBpZiAoQ09OU1AgKHVuZGVybGluZSkpCisgICAgeworICAgICAg LyogYCg6Y29sb3IgQ09MT1IgOnN0eWxlIFNUWUxFKScuICAKKyAgICAgICAgIFNUWUxFIGJlaW5n IG9uZSBvZiBgbGluZScgb3IgYHdhdmUnLiAqLworICAgICAgZmFjZS0+dW5kZXJsaW5lX3AgPSAx OworICAgICAgZmFjZS0+dW5kZXJsaW5lX2NvbG9yID0gMDsKKyAgICAgIGZhY2UtPnVuZGVybGlu ZV9kZWZhdWx0ZWRfcCA9IDE7CisgICAgICBmYWNlLT51bmRlcmxpbmVfdHlwZSA9IEZBQ0VfVU5E RVJfTElORTsKKworICAgICAgd2hpbGUgKENPTlNQICh1bmRlcmxpbmUpKQorICAgICAgICB7Cisg ICAgICAgICAgTGlzcF9PYmplY3Qga2V5d29yZCwgdmFsdWU7CisKKyAgICAgICAgICBrZXl3b3Jk ID0gWENBUiAodW5kZXJsaW5lKTsKKyAgICAgICAgICB1bmRlcmxpbmUgPSBYQ0RSICh1bmRlcmxp bmUpOworCisgICAgICAgICAgaWYgKCFDT05TUCAodW5kZXJsaW5lKSkKKyAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgIHZhbHVlID0gWENBUiAodW5kZXJsaW5lKTsKKyAgICAgICAgICB1bmRl cmxpbmUgPSBYQ0RSICh1bmRlcmxpbmUpOworCisgICAgICAgICAgaWYgKEVRIChrZXl3b3JkLCBR Q2NvbG9yKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKEVRICh2YWx1ZSwgUWZv cmVncm91bmRfY29sb3IpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGZh Y2UtPnVuZGVybGluZV9kZWZhdWx0ZWRfcCA9IDE7CisgICAgICAgICAgICAgICAgICBmYWNlLT51 bmRlcmxpbmVfY29sb3IgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxz ZSBpZiAoU1RSSU5HUCAodmFsdWUpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgIGZhY2UtPnVuZGVybGluZV9kZWZhdWx0ZWRfcCA9IDA7CisgICAgICAgICAgICAgICAgICBm YWNlLT51bmRlcmxpbmVfY29sb3IgPSBsb2FkX2NvbG9yIChmLCBmYWNlLCB2YWx1ZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExGQUNFX1VO REVSTElORV9JTkRFWCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg ICAgIGVsc2UgaWYgKEVRIChrZXl3b3JkLCBRQ3N0eWxlKSkKKyAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgaWYgKEVRICh2YWx1ZSwgUWxpbmUpKQorICAgICAgICAgICAgICAgIGZhY2UtPnVu ZGVybGluZV90eXBlID0gRkFDRV9VTkRFUl9MSU5FOworICAgICAgICAgICAgICBlbHNlIGlmIChF USAodmFsdWUsIFF3YXZlKSkKKyAgICAgICAgICAgICAgICBmYWNlLT51bmRlcmxpbmVfdHlwZSA9 IEZBQ0VfVU5ERVJfV0FWRTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgCiAg IG92ZXJsaW5lID0gYXR0cnNbTEZBQ0VfT1ZFUkxJTkVfSU5ERVhdOwogICBpZiAoU1RSSU5HUCAo b3ZlcmxpbmUpKQogICAgIHsKQEAgLTY0NjUsNiArNjU1NSw4IEBAIHN5bXNfb2ZfeGZhY2VzICh2 b2lkKQogICBERUZTWU0gKFFDY29sb3IsICI6Y29sb3IiKTsKICAgREVGU1lNIChRQ2xpbmVfd2lk dGgsICI6bGluZS13aWR0aCIpOwogICBERUZTWU0gKFFDc3R5bGUsICI6c3R5bGUiKTsKKyAgREVG U1lNIChRbGluZSwgImxpbmUiKTsKKyAgREVGU1lNIChRd2F2ZSwgIndhdmUiKTsKICAgREVGU1lN IChRcmVsZWFzZWRfYnV0dG9uLCAicmVsZWFzZWQtYnV0dG9uIik7CiAgIERFRlNZTSAoUXByZXNz ZWRfYnV0dG9uLCAicHJlc3NlZC1idXR0b24iKTsKICAgREVGU1lNIChRbm9ybWFsLCAibm9ybWFs Iik7CmRpZmYgLS1naXQgYS9zcmMveHRlcm0uYyBiL3NyYy94dGVybS5jCmluZGV4IDRiMzRkNjMu LmE1OGUzNjYgMTAwNjQ0Ci0tLSBhL3NyYy94dGVybS5jCisrKyBiL3NyYy94dGVybS5jCkBAIC0y NjUzLDYgKzI2NTMsNjUgQEAgeF9kcmF3X3N0cmV0Y2hfZ2x5cGhfc3RyaW5nIChzdHJ1Y3QgZ2x5 cGhfc3RyaW5nICpzKQogICBzLT5iYWNrZ3JvdW5kX2ZpbGxlZF9wID0gMTsKIH0KIAorLyoKKyAg IERyYXcgYSB3YXZ5IGxpbmUgdW5kZXIgUy4gVGhlIHdhdmUgZmlsbHMgd2F2ZV9oZWlnaHQgcGl4 ZWxzIGZyb20geTAuCisKKyAgICAgICAgICAgICAgICAgICAgeDAgICAgICAgICB3YXZlX2xlbmd0 aCA9IDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAg ICAgeTAgICAqICAgKiAgICogICAqICAgKgorICAgICAgICAgICAgICAgICAgICAgfCogKiAqICog KiAqICogKiAqCisgICAgd2F2ZV9oZWlnaHQgPSAzICB8ICogICAqICAgKiAgICoKKworKi8KKwor c3RhdGljIHZvaWQKK3hfZHJhd191bmRlcndhdmUgKHN0cnVjdCBnbHlwaF9zdHJpbmcgKnMpCit7 CisgIGludCB3YXZlX2hlaWdodCA9IDIsIHdhdmVfbGVuZ3RoID0gMzsKKyAgaW50IGR4LCBkeSwg eDAsIHkwLCB3aWR0aCwgeDEsIHkxLCB4MiwgeTIsIG9kZCwgeG1heDsKKyAgWFJlY3RhbmdsZSB3 YXZlX2NsaXAsIHN0cmluZ19jbGlwLCBmaW5hbF9jbGlwOworCisgIGR4ID0gd2F2ZV9sZW5ndGg7 CisgIGR5ID0gd2F2ZV9oZWlnaHQgLSAxOworICB4MCA9IHMtPng7CisgIHkwID0gcy0+eWJhc2Ug KyAxOworICB3aWR0aCA9IHMtPndpZHRoOworICB4bWF4ID0geDAgKyB3aWR0aDsKKworICAvKiBG aW5kIGFuZCBzZXQgY2xpcHBpbmcgcmVjdGFuZ2xlICovCisKKyAgd2F2ZV9jbGlwID0gKFhSZWN0 YW5nbGUpeyB4MCwgeTAsIHdpZHRoLCB3YXZlX2hlaWdodCB9OworICBnZXRfZ2x5cGhfc3RyaW5n X2NsaXBfcmVjdCAocywgJnN0cmluZ19jbGlwKTsKKworICBpZiAoIXhfaW50ZXJzZWN0X3JlY3Rh bmdsZXMgKCZ3YXZlX2NsaXAsICZzdHJpbmdfY2xpcCwgJmZpbmFsX2NsaXApKQorICAgIHJldHVy bjsKKworICBYU2V0Q2xpcFJlY3RhbmdsZXMgKHMtPmRpc3BsYXksIHMtPmdjLCAwLCAwLCAmZmlu YWxfY2xpcCwgMSwgVW5zb3J0ZWQpOworCisgIC8qIERyYXcgdGhlIHdhdmVzICovCisKKyAgeDEg PSB4MCAtICh4MCAlIGR4KTsKKyAgeDIgPSB4MSArIGR4OworICBvZGQgPSAoeDEvZHgpICUgMjsK KyAgeTEgPSB5MiA9IHkwOworCisgIGlmIChvZGQpCisgICAgeTEgKz0gZHk7CisgIGVsc2UKKyAg ICB5MiArPSBkeTsKKworICB3aGlsZSAoeDEgPD0geG1heCkKKyAgICB7CisgICAgICBYRHJhd0xp bmUgKHMtPmRpc3BsYXksIHMtPndpbmRvdywgcy0+Z2MsIHgxLCB5MSwgeDIsIHkyKTsKKyAgICAg IHgxICA9IHgyLCB5MSA9IHkyOworICAgICAgeDIgKz0gZHgsIHkyID0geTAgKyBvZGQqZHk7Cisg ICAgICBvZGQgPSAhb2RkOworICAgIH0KKworICAvKiBSZXN0b3JlIHByZXZpb3VzIGNsaXBwaW5n IHJlY3RhbmdsZShzKSAqLworICBYU2V0Q2xpcFJlY3RhbmdsZXMgKHMtPmRpc3BsYXksIHMtPmdj LCAwLCAwLCBzLT5jbGlwLCBzLT5udW1fY2xpcHMsIFVuc29ydGVkKTsKK30KKwogCiAvKiBEcmF3 IGdseXBoIHN0cmluZyBTLiAgKi8KIApAQCAtMjc1NSw2OCArMjgxNCw4MyBAQCB4X2RyYXdfZ2x5 cGhfc3RyaW5nIChzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzKQogICAgIHsKICAgICAgIC8qIERyYXcg dW5kZXJsaW5lLiAgKi8KICAgICAgIGlmIChzLT5mYWNlLT51bmRlcmxpbmVfcCkKLQl7Ci0JICB1 bnNpZ25lZCBsb25nIHRoaWNrbmVzcywgcG9zaXRpb247Ci0JICBpbnQgeTsKLQotCSAgaWYgKHMt PnByZXYgJiYgcy0+cHJldi0+ZmFjZS0+dW5kZXJsaW5lX3ApCi0JICAgIHsKLQkgICAgICAvKiBX ZSB1c2UgdGhlIHNhbWUgdW5kZXJsaW5lIHN0eWxlIGFzIHRoZSBwcmV2aW91cyBvbmUuICAqLwot CSAgICAgIHRoaWNrbmVzcyA9IHMtPnByZXYtPnVuZGVybGluZV90aGlja25lc3M7Ci0JICAgICAg cG9zaXRpb24gPSBzLT5wcmV2LT51bmRlcmxpbmVfcG9zaXRpb247Ci0JICAgIH0KLQkgIGVsc2UK LQkgICAgewotCSAgICAgIC8qIEdldCB0aGUgdW5kZXJsaW5lIHRoaWNrbmVzcy4gIERlZmF1bHQg aXMgMSBwaXhlbC4gICovCi0JICAgICAgaWYgKHMtPmZvbnQgJiYgcy0+Zm9udC0+dW5kZXJsaW5l X3RoaWNrbmVzcyA+IDApCi0JCXRoaWNrbmVzcyA9IHMtPmZvbnQtPnVuZGVybGluZV90aGlja25l c3M7Ci0JICAgICAgZWxzZQotCQl0aGlja25lc3MgPSAxOwotCSAgICAgIGlmICh4X3VuZGVybGlu ZV9hdF9kZXNjZW50X2xpbmUpCi0JCXBvc2l0aW9uID0gKHMtPmhlaWdodCAtIHRoaWNrbmVzcykg LSAocy0+eWJhc2UgLSBzLT55KTsKLQkgICAgICBlbHNlCi0JCXsKLQkJICAvKiBHZXQgdGhlIHVu ZGVybGluZSBwb3NpdGlvbi4gIFRoaXMgaXMgdGhlIHJlY29tbWVuZGVkCi0JCSAgICAgdmVydGlj YWwgb2Zmc2V0IGluIHBpeGVscyBmcm9tIHRoZSBiYXNlbGluZSB0byB0aGUgdG9wIG9mCi0JCSAg ICAgdGhlIHVuZGVybGluZS4gIFRoaXMgaXMgYSBzaWduZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHRo ZQotCQkgICAgIHNwZWNzLCBhbmQgaXRzIGRlZmF1bHQgaXMKLQotCQkgICAgIFJPVU5EICgobWF4 aW11bSBkZXNjZW50KSAvIDIpLCB3aXRoCi0JCSAgICAgUk9VTkQoeCkgPSBmbG9vciAoeCArIDAu NSkgICovCi0KLQkJICBpZiAoeF91c2VfdW5kZXJsaW5lX3Bvc2l0aW9uX3Byb3BlcnRpZXMKLQkJ ICAgICAgJiYgcy0+Zm9udCAmJiBzLT5mb250LT51bmRlcmxpbmVfcG9zaXRpb24gPj0gMCkKLQkJ ICAgIHBvc2l0aW9uID0gcy0+Zm9udC0+dW5kZXJsaW5lX3Bvc2l0aW9uOwotCQkgIGVsc2UgaWYg KHMtPmZvbnQpCi0JCSAgICBwb3NpdGlvbiA9IChzLT5mb250LT5kZXNjZW50ICsgMSkgLyAyOwot CQkgIGVsc2UKLQkJICAgIHBvc2l0aW9uID0gdW5kZXJsaW5lX21pbmltdW1fb2Zmc2V0OwotCQl9 Ci0JICAgICAgcG9zaXRpb24gPSBtYXggKHBvc2l0aW9uLCB1bmRlcmxpbmVfbWluaW11bV9vZmZz ZXQpOwotCSAgICB9Ci0JICAvKiBDaGVjayB0aGUgc2FuaXR5IG9mIHRoaWNrbmVzcyBhbmQgcG9z aXRpb24uICBXZSBzaG91bGQKLQkgICAgIGF2b2lkIGRyYXdpbmcgdW5kZXJsaW5lIG91dCBvZiB0 aGUgY3VycmVudCBsaW5lIGFyZWEuICAqLwotCSAgaWYgKHMtPnkgKyBzLT5oZWlnaHQgPD0gcy0+ eWJhc2UgKyBwb3NpdGlvbikKLQkgICAgcG9zaXRpb24gPSAocy0+aGVpZ2h0IC0gMSkgLSAocy0+ eWJhc2UgLSBzLT55KTsKLQkgIGlmIChzLT55ICsgcy0+aGVpZ2h0IDwgcy0+eWJhc2UgKyBwb3Np dGlvbiArIHRoaWNrbmVzcykKLQkgICAgdGhpY2tuZXNzID0gKHMtPnkgKyBzLT5oZWlnaHQpIC0g KHMtPnliYXNlICsgcG9zaXRpb24pOwotCSAgcy0+dW5kZXJsaW5lX3RoaWNrbmVzcyA9IHRoaWNr bmVzczsKLQkgIHMtPnVuZGVybGluZV9wb3NpdGlvbiA9IHBvc2l0aW9uOwotCSAgeSA9IHMtPnli YXNlICsgcG9zaXRpb247Ci0JICBpZiAocy0+ZmFjZS0+dW5kZXJsaW5lX2RlZmF1bHRlZF9wKQot CSAgICBYRmlsbFJlY3RhbmdsZSAocy0+ZGlzcGxheSwgcy0+d2luZG93LCBzLT5nYywKLQkJCSAg ICBzLT54LCB5LCBzLT53aWR0aCwgdGhpY2tuZXNzKTsKLQkgIGVsc2UKLQkgICAgewotCSAgICAg IFhHQ1ZhbHVlcyB4Z2N2OwotCSAgICAgIFhHZXRHQ1ZhbHVlcyAocy0+ZGlzcGxheSwgcy0+Z2Ms IEdDRm9yZWdyb3VuZCwgJnhnY3YpOwotCSAgICAgIFhTZXRGb3JlZ3JvdW5kIChzLT5kaXNwbGF5 LCBzLT5nYywgcy0+ZmFjZS0+dW5kZXJsaW5lX2NvbG9yKTsKLQkgICAgICBYRmlsbFJlY3Rhbmds ZSAocy0+ZGlzcGxheSwgcy0+d2luZG93LCBzLT5nYywKLQkJCSAgICAgIHMtPngsIHksIHMtPndp ZHRoLCB0aGlja25lc3MpOwotCSAgICAgIFhTZXRGb3JlZ3JvdW5kIChzLT5kaXNwbGF5LCBzLT5n YywgeGdjdi5mb3JlZ3JvdW5kKTsKLQkgICAgfQotCX0KKyAgICAgICAgeworICAgICAgICAgIGlm IChzLT5mYWNlLT51bmRlcmxpbmVfdHlwZSA9PSBGQUNFX1VOREVSX1dBVkUpCisgICAgICAgICAg ICB7CisgICAgICAgICAgICAgIGlmIChzLT5mYWNlLT51bmRlcmxpbmVfZGVmYXVsdGVkX3ApCisg ICAgICAgICAgICAgICAgeF9kcmF3X3VuZGVyd2F2ZSAocyk7CisgICAgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBYR0NWYWx1ZXMgeGdjdjsKKyAg ICAgICAgICAgICAgICAgIFhHZXRHQ1ZhbHVlcyAocy0+ZGlzcGxheSwgcy0+Z2MsIEdDRm9yZWdy b3VuZCwgJnhnY3YpOworICAgICAgICAgICAgICAgICAgWFNldEZvcmVncm91bmQgKHMtPmRpc3Bs YXksIHMtPmdjLCBzLT5mYWNlLT51bmRlcmxpbmVfY29sb3IpOworICAgICAgICAgICAgICAgICAg eF9kcmF3X3VuZGVyd2F2ZSAocyk7CisgICAgICAgICAgICAgICAgICBYU2V0Rm9yZWdyb3VuZCAo cy0+ZGlzcGxheSwgcy0+Z2MsIHhnY3YuZm9yZWdyb3VuZCk7CisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UgaWYgKHMtPmZhY2UtPnVuZGVybGluZV90eXBl ID09IEZBQ0VfVU5ERVJfTElORSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyB0aGlja25lc3MsIHBvc2l0aW9uOworICAgICAgICAgICAgICBpbnQgeTsKIAorICAg ICAgICAgICAgICBpZiAocy0+cHJldiAmJiBzLT5wcmV2LT5mYWNlLT51bmRlcmxpbmVfcCkKKyAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAvKiBXZSB1c2UgdGhlIHNhbWUgdW5k ZXJsaW5lIHN0eWxlIGFzIHRoZSBwcmV2aW91cyBvbmUuICAqLworICAgICAgICAgICAgICAgICAg dGhpY2tuZXNzID0gcy0+cHJldi0+dW5kZXJsaW5lX3RoaWNrbmVzczsKKyAgICAgICAgICAgICAg ICAgIHBvc2l0aW9uID0gcy0+cHJldi0+dW5kZXJsaW5lX3Bvc2l0aW9uOworICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgIC8qIEdldCB0aGUgdW5kZXJsaW5lIHRoaWNrbmVzcy4gIERlZmF1bHQgaXMgMSBwaXhl bC4gICovCisgICAgICAgICAgICAgICAgICBpZiAocy0+Zm9udCAmJiBzLT5mb250LT51bmRlcmxp bmVfdGhpY2tuZXNzID4gMCkKKyAgICAgICAgICAgICAgICAgICAgdGhpY2tuZXNzID0gcy0+Zm9u dC0+dW5kZXJsaW5lX3RoaWNrbmVzczsKKyAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg ICAgICAgICAgICAgdGhpY2tuZXNzID0gMTsKKyAgICAgICAgICAgICAgICAgIGlmICh4X3VuZGVy bGluZV9hdF9kZXNjZW50X2xpbmUpCisgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gKHMt PmhlaWdodCAtIHRoaWNrbmVzcykgLSAocy0+eWJhc2UgLSBzLT55KTsKKyAgICAgICAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIC8q IEdldCB0aGUgdW5kZXJsaW5lIHBvc2l0aW9uLiAgVGhpcyBpcyB0aGUgcmVjb21tZW5kZWQKKyAg ICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbCBvZmZzZXQgaW4gcGl4ZWxzIGZyb20gdGhl IGJhc2VsaW5lIHRvIHRoZSB0b3Agb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdW5k ZXJsaW5lLiAgVGhpcyBpcyBhIHNpZ25lZCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGhlCisgICAgICAg ICAgICAgICAgICAgICAgICAgc3BlY3MsIGFuZCBpdHMgZGVmYXVsdCBpcworCisgICAgICAgICAg ICAgICAgICAgICAgICAgUk9VTkQgKChtYXhpbXVtIGRlc2NlbnQpIC8gMiksIHdpdGgKKyAgICAg ICAgICAgICAgICAgICAgICAgICBST1VORCh4KSA9IGZsb29yICh4ICsgMC41KSAgKi8KKworICAg ICAgICAgICAgICAgICAgICAgIGlmICh4X3VzZV91bmRlcmxpbmVfcG9zaXRpb25fcHJvcGVydGll cworICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzLT5mb250ICYmIHMtPmZvbnQtPnVuZGVy bGluZV9wb3NpdGlvbiA+PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBz LT5mb250LT51bmRlcmxpbmVfcG9zaXRpb247CisgICAgICAgICAgICAgICAgICAgICAgZWxzZSBp ZiAocy0+Zm9udCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gKHMtPmZvbnQt PmRlc2NlbnQgKyAxKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg ICAgICAgICAgICAgICAgcG9zaXRpb24gPSB1bmRlcmxpbmVfbWluaW11bV9vZmZzZXQ7CisgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gbWF4IChwb3Np dGlvbiwgdW5kZXJsaW5lX21pbmltdW1fb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgIC8qIENoZWNrIHRoZSBzYW5pdHkgb2YgdGhpY2tuZXNzIGFuZCBwb3NpdGlvbi4g IFdlIHNob3VsZAorICAgICAgICAgICAgICAgICBhdm9pZCBkcmF3aW5nIHVuZGVybGluZSBvdXQg b2YgdGhlIGN1cnJlbnQgbGluZSBhcmVhLiAgKi8KKyAgICAgICAgICAgICAgaWYgKHMtPnkgKyBz LT5oZWlnaHQgPD0gcy0+eWJhc2UgKyBwb3NpdGlvbikKKyAgICAgICAgICAgICAgICBwb3NpdGlv biA9IChzLT5oZWlnaHQgLSAxKSAtIChzLT55YmFzZSAtIHMtPnkpOworICAgICAgICAgICAgICBp ZiAocy0+eSArIHMtPmhlaWdodCA8IHMtPnliYXNlICsgcG9zaXRpb24gKyB0aGlja25lc3MpCisg ICAgICAgICAgICAgICAgdGhpY2tuZXNzID0gKHMtPnkgKyBzLT5oZWlnaHQpIC0gKHMtPnliYXNl ICsgcG9zaXRpb24pOworICAgICAgICAgICAgICBzLT51bmRlcmxpbmVfdGhpY2tuZXNzID0gdGhp Y2tuZXNzOworICAgICAgICAgICAgICBzLT51bmRlcmxpbmVfcG9zaXRpb24gPSBwb3NpdGlvbjsK KyAgICAgICAgICAgICAgeSA9IHMtPnliYXNlICsgcG9zaXRpb247CisgICAgICAgICAgICAgIGlm IChzLT5mYWNlLT51bmRlcmxpbmVfZGVmYXVsdGVkX3ApCisgICAgICAgICAgICAgICAgWEZpbGxS ZWN0YW5nbGUgKHMtPmRpc3BsYXksIHMtPndpbmRvdywgcy0+Z2MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHMtPngsIHksIHMtPndpZHRoLCB0aGlja25lc3MpOworICAgICAgICAg ICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgWEdDVmFsdWVz IHhnY3Y7CisgICAgICAgICAgICAgICAgICBYR2V0R0NWYWx1ZXMgKHMtPmRpc3BsYXksIHMtPmdj LCBHQ0ZvcmVncm91bmQsICZ4Z2N2KTsKKyAgICAgICAgICAgICAgICAgIFhTZXRGb3JlZ3JvdW5k IChzLT5kaXNwbGF5LCBzLT5nYywgcy0+ZmFjZS0+dW5kZXJsaW5lX2NvbG9yKTsKKyAgICAgICAg ICAgICAgICAgIFhGaWxsUmVjdGFuZ2xlIChzLT5kaXNwbGF5LCBzLT53aW5kb3csIHMtPmdjLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPngsIHksIHMtPndpZHRoLCB0aGlj a25lc3MpOworICAgICAgICAgICAgICAgICAgWFNldEZvcmVncm91bmQgKHMtPmRpc3BsYXksIHMt PmdjLCB4Z2N2LmZvcmVncm91bmQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K KyAgICAgICAgfQogICAgICAgLyogRHJhdyBvdmVybGluZS4gICovCiAgICAgICBpZiAocy0+ZmFj ZS0+b3ZlcmxpbmVfcCkKIAl7Cg== --14dae93b590e05b1b004b849f333--