From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web08.10699.1624984434680816648 for ; Tue, 29 Jun 2021 09:33:54 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=RVsvBuug; spf=pass (domain: redhat.com, ip: 170.10.133.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624984433; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KKGwsSjLZ1wHUszctBE3C0z7VAIhsc5ndIuRfJd1Bvg=; b=RVsvBuugeH/gXBveZws9xp/3dLtCEjRBY+9vbJJGYWJGoyDkQDygWCtOGWM5rW+vO2qqzJ jVy7aqs1cklx5tm78+43RUbkY540o9+mo157DLl1kXyHUioASgieb42BTvtDQOvpI5QSIu w8kfhjIVVg5QpZYz++a7ZJ8CFz1mlDg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-142-2u2uQsryMimsdqk3wa9XYA-1; Tue, 29 Jun 2021 12:33:51 -0400 X-MC-Unique: 2u2uQsryMimsdqk3wa9XYA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8054F19200C0; Tue, 29 Jun 2021 16:33:50 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-114-158.ams2.redhat.com [10.36.114.158]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0BB1960875; Tue, 29 Jun 2021 16:33:48 +0000 (UTC) From: "Laszlo Ersek" To: edk2-devel-groups-io Cc: Jiaxin Wu , Maciej Rabeda , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Siyuan Fu Subject: [PATCH v2 3/6] NetworkPkg/IScsiDxe: distinguish "maximum" and "selected" CHAP digest sizes Date: Tue, 29 Jun 2021 18:33:34 +0200 Message-Id: <20210629163337.14120-4-lersek@redhat.com> In-Reply-To: <20210629163337.14120-1-lersek@redhat.com> References: <20210629163337.14120-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 SVNjc2lEeGUgdXNlcyB0aGUgSVNDU0lfQ0hBUF9SU1BfTEVOIG1hY3JvIGZvciBleHByZXNzaW5n IHRoZSBzaXplIG9mIHRoZQpkaWdlc3QgKDE2KSB0aGF0IGl0IHNvbGVseSBzdXBwb3J0cyBhdCB0 aGlzIHBvaW50IChNRDUpLgpJU0NTSV9DSEFQX1JTUF9MRU4gaXMgdXNlZCBmb3IgYm90aCAoYSkg KmFsbG9jYXRpbmcqIGRpZ2VzdC1yZWxhdGVkCmJ1ZmZlcnMgKGJpbmFyeSBidWZmZXJzIGFuZCBo ZXggZW5jb2RpbmdzIGFsaWtlKSwgYW5kIChiKSAqcHJvY2Vzc2luZyoKYmluYXJ5IGRpZ2VzdCBi dWZmZXJzIChjb21wYXJpbmcgdGhlbSwgZmlsbGluZyB0aGVtLCByZWFkaW5nIHRoZW0pLgoKSW4g cHJlcGFyYXRpb24gZm9yIGFkZGluZyBvdGhlciBoYXNoIGFsZ29yaXRobXMsIHNwbGl0IHB1cnBv c2UgKGEpIGZyb20KcHVycG9zZSAoYikuIEZvciBwdXJwb3NlIChhKSAtLSBidWZmZXIgYWxsb2Nh dGlvbiAtLSwgaW50cm9kdWNlCklTQ1NJX0NIQVBfTUFYX0RJR0VTVF9TSVpFLiBGb3IgcHVycG9z ZSAoYikgLS0gcHJvY2Vzc2luZyAtLSwgcmVseSBvbgpNRDVfRElHRVNUX1NJWkUgZnJvbSA8QmFz ZUNyeXB0TGliLmg+LgoKRGlzdGluZ3Vpc2hpbmcgdGhlc2UgcHVycG9zZXMgaXMganVzdGlmaWVk IGJlY2F1c2UgcHVycG9zZSAoYikgLS0KcHJvY2Vzc2luZyAtLSBtdXN0IGRlcGVuZCBvbiB0aGUg aGFzaGluZyBhbGdvcml0aG0gbmVnb3RpYXRlZCBiZXR3ZWVuCmluaXRpYXRvciBhbmQgdGFyZ2V0 LCB3aGlsZSBmb3IgcHVycG9zZSAoYSkgLS0gYWxsb2NhdGlvbiAtLSwgdXNpbmcgdGhlCm1heGlt dW0gc3VwcG9ydGVkIGRpZ2VzdCBzaXplIGlzIHN1aXRhYmxlLiBGb3Igbm93LCBiZWNhdXNlIG9u bHkgTUQ1IGlzCnN1cHBvcnRlZCwgaW50cm9kdWNlIElTQ1NJX0NIQVBfTUFYX0RJR0VTVF9TSVpF ICphcyogTUQ1X0RJR0VTVF9TSVpFLgoKTm90ZSB0aGF0IHRoZSBhcmd1bWVudCBmb3IgdXNpbmcg dGhlIGRpZ2VzdCBzaXplIGFzIHRoZSBzaXplIG9mIHRoZQpvdXRnb2luZyBjaGFsbGVuZ2UgKGlu IGNhc2UgbXV0dWFsIGF1dGhlbnRpY2F0aW9uIGlzIGRlc2lyZWQgYnkgdGhlCmluaXRpYXRvcikg cmVtYWlucyBpbiBwbGFjZS4gQmVjYXVzZSBvZiB0aGlzLCB0aGUgYWJvdmUgdHdvIHB1cnBvc2Vz IGFyZQpkaXN0aW5ndWlzaGVkIGZvciB0aGUgIklTQ1NJX0NIQVBfQVVUSF9EQVRBLk91dENoYWxs ZW5nZSIgZmllbGQgYXMgd2VsbC4KClRoaXMgcGF0Y2ggaXMgZnVuY3Rpb25hbGx5IGEgbm8tb3As IGp1c3QgeWV0LgoKQ2M6IEppYXhpbiBXdSA8amlheGluLnd1QGludGVsLmNvbT4KQ2M6IE1hY2ll aiBSYWJlZGEgPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29tPgpDYzogUGhpbGlwcGUgTWF0 aGlldS1EYXVkw6kgPHBoaWxtZEByZWRoYXQuY29tPgpDYzogU2l5dWFuIEZ1IDxzaXl1YW4uZnVA aW50ZWwuY29tPgpSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9MzM1NQpTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t PgpSZXZpZXdlZC1ieTogUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kgPHBoaWxtZEByZWRoYXQuY29t PgpSZXZpZXdlZC1ieTogTWFjaWVqIFJhYmVkYSA8bWFjaWVqLnJhYmVkYUBsaW51eC5pbnRlbC5j b20+Ci0tLQoKTm90ZXM6CiAgICB2MjoKICAgIC0gcGljayB1cCBSLWIncyBbUGhpbCwgTWFjaWVq XQoKIE5ldHdvcmtQa2cvSVNjc2lEeGUvSVNjc2lDSEFQLmggfCAxNyArKysrKysrKystLS0tLS0K IE5ldHdvcmtQa2cvSVNjc2lEeGUvSVNjc2lDSEFQLmMgfCAyMiArKysrKysrKysrLS0tLS0tLS0t LQogMiBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9OZXR3b3JrUGtnL0lTY3NpRHhlL0lTY3NpQ0hBUC5oIGIvTmV0d29ya1BrZy9J U2NzaUR4ZS9JU2NzaUNIQVAuaAppbmRleCBkNmE5MGZjMjdmYzMuLmI4ODExYjc1ODBmMCAxMDA2 NDQKLS0tIGEvTmV0d29ya1BrZy9JU2NzaUR4ZS9JU2NzaUNIQVAuaAorKysgYi9OZXR3b3JrUGtn L0lTY3NpRHhlL0lTY3NpQ0hBUC5oCkBAIC0xLDg2ICsxLDkxIEBACiAvKiogQGZpbGUNCiAgIFRo ZSBoZWFkZXIgZmlsZSBvZiBDSEFQIGNvbmZpZ3VyYXRpb24uDQogDQogQ29weXJpZ2h0IChjKSAy MDA0IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQogDQogKiovDQog DQogI2lmbmRlZiBfSVNDU0lfQ0hBUF9IXw0KICNkZWZpbmUgX0lTQ1NJX0NIQVBfSF8NCiANCiAj ZGVmaW5lIElTQ1NJX0FVVEhfTUVUSE9EX0NIQVAgICAgICAgICAgICAgICAgICAgICJDSEFQIg0K IA0KICNkZWZpbmUgSVNDU0lfS0VZX0NIQVBfQUxHT1JJVEhNICAgICAgICAgICAgICAgICAgIkNI QVBfQSINCiAjZGVmaW5lIElTQ1NJX0tFWV9DSEFQX0lERU5USUZJRVIgICAgICAgICAgICAgICAg ICJDSEFQX0kiDQogI2RlZmluZSBJU0NTSV9LRVlfQ0hBUF9DSEFMTEVOR0UgICAgICAgICAgICAg ICAgICAiQ0hBUF9DIg0KICNkZWZpbmUgSVNDU0lfS0VZX0NIQVBfTkFNRSAgICAgICAgICAgICAg ICAgICAgICAgIkNIQVBfTiINCiAjZGVmaW5lIElTQ1NJX0tFWV9DSEFQX1JFU1BPTlNFICAgICAg ICAgICAgICAgICAgICJDSEFQX1IiDQogDQorLy8NCisvLyBJZGVudGlmaWVycyBvZiBzdXBwb3J0 ZWQgQ0hBUCBoYXNoIGFsZ29yaXRobXM6DQorLy8gaHR0cHM6Ly93d3cuaWFuYS5vcmcvYXNzaWdu bWVudHMvcHBwLW51bWJlcnMvcHBwLW51bWJlcnMueGh0bWwjcHBwLW51bWJlcnMtOQ0KKy8vDQog I2RlZmluZSBJU0NTSV9DSEFQX0FMR09SSVRITV9NRDUgICAgICAgICAgICAgICAgICA1DQogDQot Ly8vDQotLy8vIE1ENV9IQVNIU0laRQ0KLS8vLw0KLSNkZWZpbmUgSVNDU0lfQ0hBUF9SU1BfTEVO ICAgICAgICAgICAgICAgICAgICAgICAgMTYNCisvLw0KKy8vIEJ5dGUgY291bnQgb2YgdGhlIGxh cmdlc3QgZGlnZXN0IG92ZXIgdGhlIGFib3ZlLWxpc3RlZA0KKy8vIElTQ1NJX0NIQVBfQUxHT1JJ VEhNXyogaGFzaCBhbGdvcml0aG1zLg0KKy8vDQorI2RlZmluZSBJU0NTSV9DSEFQX01BWF9ESUdF U1RfU0laRSAgICAgICAgICAgICAgICBNRDVfRElHRVNUX1NJWkUNCiANCiAjZGVmaW5lIElTQ1NJ X0NIQVBfU1RFUF9PTkUgICAgICAgICAgICAgICAgICAgICAgIDENCiAjZGVmaW5lIElTQ1NJX0NI QVBfU1RFUF9UV08gICAgICAgICAgICAgICAgICAgICAgIDINCiAjZGVmaW5lIElTQ1NJX0NIQVBf U1RFUF9USFJFRSAgICAgICAgICAgICAgICAgICAgIDMNCiAjZGVmaW5lIElTQ1NJX0NIQVBfU1RF UF9GT1VSICAgICAgICAgICAgICAgICAgICAgIDQNCiANCiANCiAjcHJhZ21hIHBhY2soMSkNCiAN CiB0eXBlZGVmIHN0cnVjdCBfSVNDU0lfQ0hBUF9BVVRIX0NPTkZJR19OVkRBVEEgew0KICAgVUlO VDggQ0hBUFR5cGU7DQogICBDSEFSOCBDSEFQTmFtZVtJU0NTSV9DSEFQX05BTUVfU1RPUkFHRV07 DQogICBDSEFSOCBDSEFQU2VjcmV0W0lTQ1NJX0NIQVBfU0VDUkVUX1NUT1JBR0VdOw0KICAgQ0hB UjggUmV2ZXJzZUNIQVBOYW1lW0lTQ1NJX0NIQVBfTkFNRV9TVE9SQUdFXTsNCiAgIENIQVI4IFJl dmVyc2VDSEFQU2VjcmV0W0lTQ1NJX0NIQVBfU0VDUkVUX1NUT1JBR0VdOw0KIH0gSVNDU0lfQ0hB UF9BVVRIX0NPTkZJR19OVkRBVEE7DQogDQogI3ByYWdtYSBwYWNrKCkNCiANCiAvLy8NCiAvLy8g SVNDU0kgQ0hBUCBBdXRoZW50aWNhdGlvbiBEYXRhDQogLy8vDQogdHlwZWRlZiBzdHJ1Y3QgX0lT Q1NJX0NIQVBfQVVUSF9EQVRBIHsNCiAgIElTQ1NJX0NIQVBfQVVUSF9DT05GSUdfTlZEQVRBICpB dXRoQ29uZmlnOw0KICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgSW5JZGVudGlmaWVy Ow0KICAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgSW5DaGFsbGVuZ2VbMTAyNF07DQog ICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBJbkNoYWxsZW5nZUxlbmd0aDsNCiAgIC8v DQogICAvLyBDYWxjdWxhdGVkIENIQVAgUmVzcG9uc2UgKENIQVBfUikgdmFsdWUuDQogICAvLw0K LSAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgQ0hBUFJlc3BvbnNlW0lTQ1NJX0NIQVBf UlNQX0xFTl07DQorICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICBDSEFQUmVzcG9uc2Vb SVNDU0lfQ0hBUF9NQVhfRElHRVNUX1NJWkVdOw0KIA0KICAgLy8NCiAgIC8vIEF1dGgtZGF0YSB0 byBiZSBzZW50IG91dCBmb3IgbXV0dWFsIGF1dGhlbnRpY2F0aW9uLg0KICAgLy8NCiAgIC8vIFdo aWxlIHRoZSBjaGFsbGVuZ2Ugc2l6ZSBpcyB0ZWNobmljYWxseSBpbmRlcGVuZGVudCBvZiB0aGUg aGFzaGluZw0KICAgLy8gYWxnb3JpdGhtLCBpdCBpcyBnb29kIHByYWN0aWNlIHRvIGF2b2lkIGhh c2hpbmcgKmZld2VyIGJ5dGVzKiB0aGFuIHRoZQ0KICAgLy8gZGlnZXN0IHNpemUuIEluIG90aGVy IHdvcmRzLCBpdCdzIGdvb2QgcHJhY3RpY2UgdG8gZmVlZCAqYXQgbGVhc3QgYXMgbWFueQ0KICAg Ly8gYnl0ZXMqIHRvIHRoZSBoYXNoaW5nIGFsZ29yaXRobSBhcyB0aGUgaGFzaGluZyBhbGdvcml0 aG0gd2lsbCBvdXRwdXQuDQogICAvLw0KICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAg T3V0SWRlbnRpZmllcjsNCi0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgIE91dENoYWxs ZW5nZVtJU0NTSV9DSEFQX1JTUF9MRU5dOw0KKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAg ICAgT3V0Q2hhbGxlbmdlW0lTQ1NJX0NIQVBfTUFYX0RJR0VTVF9TSVpFXTsNCiB9IElTQ1NJX0NI QVBfQVVUSF9EQVRBOw0KIA0KIC8qKg0KICAgVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIHJlY2Vp dmVkIGlTQ1NJIExvZ2luIFJlc3BvbnNlIGR1cmluZyB0aGUgc2VjdXJpdHkNCiAgIG5lZ290aWF0 aW9uIHN0YWdlLg0KIA0KICAgQHBhcmFtW2luXSBDb25uICAgICAgICAgICAgIFRoZSBpU0NTSSBj b25uZWN0aW9uLg0KIA0KICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICBUaGUgTG9naW4g UmVzcG9uc2UgcGFzc2VkIHRoZSBDSEFQIHZhbGlkYXRpb24uDQogICBAcmV0dmFsIEVGSV9PVVRf T0ZfUkVTT1VSQ0VTIEZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkuDQogICBAcmV0dmFsIEVGSV9Q Uk9UT0NPTF9FUlJPUiAgIFNvbWUga2luZCBvZiBwcm90b2NvbCBlcnJvciBvY2N1cnJlZC4NCiAg IEByZXR2YWwgT3RoZXJzICAgICAgICAgICAgICAgT3RoZXIgZXJyb3JzIGFzIGluZGljYXRlZC4N CiANCiAqKi8NCiBFRklfU1RBVFVTDQogSVNjc2lDSEFQT25Sc3BSZWNlaXZlZCAoDQogICBJTiBJ U0NTSV9DT05ORUNUSU9OICAqQ29ubg0KICAgKTsNCiAvKioNCmRpZmYgLS1naXQgYS9OZXR3b3Jr UGtnL0lTY3NpRHhlL0lTY3NpQ0hBUC5jIGIvTmV0d29ya1BrZy9JU2NzaUR4ZS9JU2NzaUNIQVAu YwppbmRleCBiYjg0ZjQzNTlkMzUuLjc0NDgyNGU2M2QyMyAxMDA2NDQKLS0tIGEvTmV0d29ya1Br Zy9JU2NzaUR4ZS9JU2NzaUNIQVAuYworKysgYi9OZXR3b3JrUGtnL0lTY3NpRHhlL0lTY3NpQ0hB UC5jCkBAIC05Niw5MCArOTYsOTAgQEAgSVNjc2lDSEFQQ2FsY3VsYXRlUmVzcG9uc2UgKAogDQog ICBAcGFyYW1baW5dICAgQXV0aERhdGEgICAgICAgICAgICAgaVNDU0kgQ0hBUCBhdXRoZW50aWNh dGlvbiBkYXRhLg0KICAgQHBhcmFtW2luXSAgIFRhcmdldFJlc3BvbnNlICAgICAgIFRoZSByZXNw b25zZSBmcm9tIHRhcmdldC4NCiANCiAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAg ICBUaGUgcmVzcG9uc2UgZnJvbSB0YXJnZXQgcGFzc2VkDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24uDQogICBAcmV0dmFsIEVGSV9TRUNVUklUWV9W SU9MQVRJT04gICAgVGhlIHJlc3BvbnNlIGZyb20gdGFyZ2V0IHdhcyBub3QgZXhwZWN0ZWQNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS4NCiAgIEByZXR2YWwgT3Ro ZXJzICAgICAgICAgICAgICAgICAgICBPdGhlciBlcnJvcnMgYXMgaW5kaWNhdGVkLg0KIA0KICoq Lw0KIEVGSV9TVEFUVVMNCiBJU2NzaUNIQVBBdXRoVGFyZ2V0ICgNCiAgIElOICBJU0NTSV9DSEFQ X0FVVEhfREFUQSAgKkF1dGhEYXRhLA0KICAgSU4gIFVJTlQ4ICAgICAgICAgICAgICAgICAqVGFy Z2V0UmVzcG9uc2UNCiAgICkNCiB7DQogICBFRklfU1RBVFVTICBTdGF0dXM7DQogICBVSU5UMzIg ICAgICBTZWNyZXRTaXplOw0KLSAgVUlOVDggICAgICAgVmVyaWZ5UnNwW0lTQ1NJX0NIQVBfUlNQ X0xFTl07DQorICBVSU5UOCAgICAgICBWZXJpZnlSc3BbSVNDU0lfQ0hBUF9NQVhfRElHRVNUX1NJ WkVdOw0KIA0KICAgU3RhdHVzICAgICAgPSBFRklfU1VDQ0VTUzsNCiANCiAgIFNlY3JldFNpemUg ID0gKFVJTlQzMikgQXNjaWlTdHJMZW4gKEF1dGhEYXRhLT5BdXRoQ29uZmlnLT5SZXZlcnNlQ0hB UFNlY3JldCk7DQogICBTdGF0dXMgPSBJU2NzaUNIQVBDYWxjdWxhdGVSZXNwb25zZSAoDQogICAg ICAgICAgICAgIEF1dGhEYXRhLT5PdXRJZGVudGlmaWVyLA0KICAgICAgICAgICAgICBBdXRoRGF0 YS0+QXV0aENvbmZpZy0+UmV2ZXJzZUNIQVBTZWNyZXQsDQogICAgICAgICAgICAgIFNlY3JldFNp emUsDQogICAgICAgICAgICAgIEF1dGhEYXRhLT5PdXRDaGFsbGVuZ2UsDQotICAgICAgICAgICAg IElTQ1NJX0NIQVBfUlNQX0xFTiwgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbGxlbmdlTGVu Z3RoDQorICAgICAgICAgICAgIE1ENV9ESUdFU1RfU0laRSwgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gQ2hhbGxlbmdlTGVuZ3RoDQogICAgICAgICAgICAgIFZlcmlmeVJzcA0KICAgICAgICAg ICAgICApOw0KIA0KLSAgaWYgKENvbXBhcmVNZW0gKFZlcmlmeVJzcCwgVGFyZ2V0UmVzcG9uc2Us IElTQ1NJX0NIQVBfUlNQX0xFTikgIT0gMCkgew0KKyAgaWYgKENvbXBhcmVNZW0gKFZlcmlmeVJz cCwgVGFyZ2V0UmVzcG9uc2UsIE1ENV9ESUdFU1RfU0laRSkgIT0gMCkgew0KICAgICBTdGF0dXMg PSBFRklfU0VDVVJJVFlfVklPTEFUSU9OOw0KICAgfQ0KIA0KICAgcmV0dXJuIFN0YXR1czsNCiB9 DQogDQogDQogLyoqDQogICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyB0aGUgcmVjZWl2ZWQgaVNDU0kg TG9naW4gUmVzcG9uc2UgZHVyaW5nIHRoZSBzZWN1cml0eQ0KICAgbmVnb3RpYXRpb24gc3RhZ2Uu DQogDQogICBAcGFyYW1baW5dIENvbm4gICAgICAgICAgICAgVGhlIGlTQ1NJIGNvbm5lY3Rpb24u DQogDQogICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgIFRoZSBMb2dpbiBSZXNwb25zZSBw YXNzZWQgdGhlIENIQVAgdmFsaWRhdGlvbi4NCiAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJD RVMgRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeS4NCiAgIEByZXR2YWwgRUZJX1BST1RPQ09MX0VS Uk9SICAgU29tZSBraW5kIG9mIHByb3RvY29sIGVycm9yIG9jY3VycmVkLg0KICAgQHJldHZhbCBP dGhlcnMgICAgICAgICAgICAgICBPdGhlciBlcnJvcnMgYXMgaW5kaWNhdGVkLg0KIA0KICoqLw0K IEVGSV9TVEFUVVMNCiBJU2NzaUNIQVBPblJzcFJlY2VpdmVkICgNCiAgIElOIElTQ1NJX0NPTk5F Q1RJT04gICpDb25uDQogICApDQogew0KICAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgIFN0 YXR1czsNCiAgIElTQ1NJX1NFU1NJT04gICAgICAgICAgICAgICAqU2Vzc2lvbjsNCiAgIElTQ1NJ X0NIQVBfQVVUSF9EQVRBICAgICAgICAqQXV0aERhdGE7DQogICBDSEFSOCAgICAgICAgICAgICAg ICAgICAgICAgKlZhbHVlOw0KICAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICpEYXRhOw0K ICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIExlbjsNCiAgIExJU1RfRU5UUlkgICAgICAg ICAgICAgICAgICAqS2V5VmFsdWVMaXN0Ow0KICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAg IEFsZ29yaXRobTsNCiAgIENIQVI4ICAgICAgICAgICAgICAgICAgICAgICAqSWRlbnRpZmllcjsN CiAgIENIQVI4ICAgICAgICAgICAgICAgICAgICAgICAqQ2hhbGxlbmdlOw0KICAgQ0hBUjggICAg ICAgICAgICAgICAgICAgICAgICpOYW1lOw0KICAgQ0hBUjggICAgICAgICAgICAgICAgICAgICAg ICpSZXNwb25zZTsNCi0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRSc3BbSVND U0lfQ0hBUF9SU1BfTEVOXTsNCisgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRS c3BbSVNDU0lfQ0hBUF9NQVhfRElHRVNUX1NJWkVdOw0KICAgVUlOVDMyICAgICAgICAgICAgICAg ICAgICAgIFJzcExlbjsNCiAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQ7DQog DQogICBBU1NFUlQgKENvbm4tPkN1cnJlbnRTdGFnZSA9PSBJU0NTSV9TRUNVUklUWV9ORUdPVElB VElPTik7DQogICBBU1NFUlQgKENvbm4tPlJzcFF1ZS5CdWZOdW0gIT0gMCk7DQogDQogICBTZXNz aW9uICAgICA9IENvbm4tPlNlc3Npb247DQogICBBdXRoRGF0YSAgICA9ICZTZXNzaW9uLT5BdXRo RGF0YS5DSEFQOw0KICAgTGVuICAgICAgICAgPSBDb25uLT5Sc3BRdWUuQnVmU2l6ZTsNCiAgIERh dGEgICAgICAgID0gQWxsb2NhdGVaZXJvUG9vbCAoTGVuKTsNCiAgIGlmIChEYXRhID09IE5VTEwp IHsNCiAgICAgcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KICAgfQ0KICAgLy8NCiAgIC8v IENvcHkgdGhlIGRhdGEgaW4gY2FzZSB0aGUgZGF0YSBzcGFucyBvdmVyIG11bHRpcGxlIFBEVXMu DQogICAvLw0KICAgTmV0YnVmUXVlQ29weSAoJkNvbm4tPlJzcFF1ZSwgMCwgTGVuLCBEYXRhKTsN CiANCiAgIC8vDQpAQCAtMzI0LDQxICszMjQsNDEgQEAgSVNjc2lDSEFQT25Sc3BSZWNlaXZlZCAo CiANCiAgIGNhc2UgSVNDU0lfQ0hBUF9TVEVQX0ZPVVI6DQogICAgIEFTU0VSVCAoQXV0aERhdGEt PkF1dGhDb25maWctPkNIQVBUeXBlID09IElTQ1NJX0NIQVBfTVVUVUFMKTsNCiAgICAgLy8NCiAg ICAgLy8gVGhlIGZvcnRoIHN0ZXAsIENIQVBfTj08Tj4gQ0hBUF9SPTxSPiBpcyByZWNlaXZlZCBm cm9tIFRhcmdldC4NCiAgICAgLy8NCiAgICAgTmFtZSA9IElTY3NpR2V0VmFsdWVCeUtleUZyb21M aXN0IChLZXlWYWx1ZUxpc3QsIElTQ1NJX0tFWV9DSEFQX05BTUUpOw0KICAgICBpZiAoTmFtZSA9 PSBOVUxMKSB7DQogICAgICAgZ290byBPTl9FWElUOw0KICAgICB9DQogDQogICAgIFJlc3BvbnNl ID0gSVNjc2lHZXRWYWx1ZUJ5S2V5RnJvbUxpc3QgKA0KICAgICAgICAgICAgICAgICAgS2V5VmFs dWVMaXN0LA0KICAgICAgICAgICAgICAgICAgSVNDU0lfS0VZX0NIQVBfUkVTUE9OU0UNCiAgICAg ICAgICAgICAgICAgICk7DQogICAgIGlmIChSZXNwb25zZSA9PSBOVUxMKSB7DQogICAgICAgZ290 byBPTl9FWElUOw0KICAgICB9DQogDQotICAgIFJzcExlbiA9IElTQ1NJX0NIQVBfUlNQX0xFTjsN CisgICAgUnNwTGVuID0gTUQ1X0RJR0VTVF9TSVpFOw0KICAgICBTdGF0dXMgPSBJU2NzaUhleFRv QmluIChUYXJnZXRSc3AsICZSc3BMZW4sIFJlc3BvbnNlKTsNCi0gICAgaWYgKEVGSV9FUlJPUiAo U3RhdHVzKSB8fCBSc3BMZW4gIT0gSVNDU0lfQ0hBUF9SU1BfTEVOKSB7DQorICAgIGlmIChFRklf RVJST1IgKFN0YXR1cykgfHwgUnNwTGVuICE9IE1ENV9ESUdFU1RfU0laRSkgew0KICAgICAgIFN0 YXR1cyA9IEVGSV9QUk9UT0NPTF9FUlJPUjsNCiAgICAgICBnb3RvIE9OX0VYSVQ7DQogICAgIH0N CiANCiAgICAgLy8NCiAgICAgLy8gQ2hlY2sgdGhlIENIQVAgTmFtZSBhbmQgUmVzcG9uc2UgcmVw bGllZCBieSBUYXJnZXQuDQogICAgIC8vDQogICAgIFN0YXR1cyA9IElTY3NpQ0hBUEF1dGhUYXJn ZXQgKEF1dGhEYXRhLCBUYXJnZXRSc3ApOw0KICAgICBicmVhazsNCiANCiAgIGRlZmF1bHQ6DQog ICAgIGJyZWFrOw0KICAgfQ0KIA0KIE9OX0VYSVQ6DQogDQogICBpZiAoS2V5VmFsdWVMaXN0ICE9 IE5VTEwpIHsNCiAgICAgSVNjc2lGcmVlS2V5VmFsdWVMaXN0IChLZXlWYWx1ZUxpc3QpOw0KICAg fQ0KQEAgLTM5NSw0NSArMzk1LDQ1IEBAIElTY3NpQ0hBUFRvU2VuZFJlcSAoCiAgIElTQ1NJX0NI QVBfQVVUSF9EQVRBICAgICAgICAqQXV0aERhdGE7DQogICBDSEFSOCAgICAgICAgICAgICAgICAg ICAgICAgKlZhbHVlOw0KICAgQ0hBUjggICAgICAgICAgICAgICAgICAgICAgIFZhbHVlU3RyWzI1 Nl07DQogICBDSEFSOCAgICAgICAgICAgICAgICAgICAgICAgKlJlc3BvbnNlOw0KICAgVUlOVDMy ICAgICAgICAgICAgICAgICAgICAgIFJzcExlbjsNCiAgIENIQVI4ICAgICAgICAgICAgICAgICAg ICAgICAqQ2hhbGxlbmdlOw0KICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIENoYWxsZW5n ZUxlbjsNCiAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICBCaW5Ub0hleFN0YXR1czsNCiAN CiAgIEFTU0VSVCAoQ29ubi0+Q3VycmVudFN0YWdlID09IElTQ1NJX1NFQ1VSSVRZX05FR09USUFU SU9OKTsNCiANCiAgIFNlc3Npb24gICAgID0gQ29ubi0+U2Vzc2lvbjsNCiAgIEF1dGhEYXRhICAg ID0gJlNlc3Npb24tPkF1dGhEYXRhLkNIQVA7DQogICBMb2dpblJlcSAgICA9IChJU0NTSV9MT0dJ Tl9SRVFVRVNUICopIE5ldGJ1ZkdldEJ5dGUgKFBkdSwgMCwgMCk7DQogICBpZiAoTG9naW5SZXEg PT0gTlVMTCkgew0KICAgICByZXR1cm4gRUZJX1BST1RPQ09MX0VSUk9SOw0KICAgfQ0KICAgU3Rh dHVzICAgICAgPSBFRklfU1VDQ0VTUzsNCiANCi0gIFJzcExlbiAgICAgID0gMiAqIElTQ1NJX0NI QVBfUlNQX0xFTiArIDM7DQorICBSc3BMZW4gICAgICA9IDIgKiBJU0NTSV9DSEFQX01BWF9ESUdF U1RfU0laRSArIDM7DQogICBSZXNwb25zZSAgICA9IEFsbG9jYXRlWmVyb1Bvb2wgKFJzcExlbik7 DQogICBpZiAoUmVzcG9uc2UgPT0gTlVMTCkgew0KICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNP VVJDRVM7DQogICB9DQogDQotICBDaGFsbGVuZ2VMZW4gID0gMiAqIElTQ1NJX0NIQVBfUlNQX0xF TiArIDM7DQorICBDaGFsbGVuZ2VMZW4gID0gMiAqIElTQ1NJX0NIQVBfTUFYX0RJR0VTVF9TSVpF ICsgMzsNCiAgIENoYWxsZW5nZSAgICAgPSBBbGxvY2F0ZVplcm9Qb29sIChDaGFsbGVuZ2VMZW4p Ow0KICAgaWYgKENoYWxsZW5nZSA9PSBOVUxMKSB7DQogICAgIEZyZWVQb29sIChSZXNwb25zZSk7 DQogICAgIHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCiAgIH0NCiANCiAgIHN3aXRjaCAo Q29ubi0+QXV0aFN0ZXApIHsNCiAgIGNhc2UgSVNDU0lfQVVUSF9JTklUSUFMOg0KICAgICAvLw0K ICAgICAvLyBJdCdzIHRoZSBpbml0aWFsIExvZ2luIFJlcXVlc3QuIEZpbGwgaW4gdGhlIGtleT12 YWx1ZSBwYWlycyBtYW5kYXRvcnkNCiAgICAgLy8gZm9yIHRoZSBpbml0aWFsIExvZ2luIFJlcXVl c3QuDQogICAgIC8vDQogICAgIElTY3NpQWRkS2V5VmFsdWVQYWlyICgNCiAgICAgICBQZHUsDQog ICAgICAgSVNDU0lfS0VZX0lOSVRJQVRPUl9OQU1FLA0KICAgICAgIG1Qcml2YXRlLT5Jbml0aWF0 b3JOYW1lDQogICAgICAgKTsNCiAgICAgSVNjc2lBZGRLZXlWYWx1ZVBhaXIgKFBkdSwgSVNDU0lf S0VZX1NFU1NJT05fVFlQRSwgIk5vcm1hbCIpOw0KICAgICBJU2NzaUFkZEtleVZhbHVlUGFpciAo DQpAQCAtNDY2LDU5ICs0NjYsNTkgQEAgSVNjc2lDSEFQVG9TZW5kUmVxICgKIA0KICAgY2FzZSBJ U0NTSV9DSEFQX1NURVBfVEhSRUU6DQogICAgIC8vDQogICAgIC8vIFRoaXJkIHN0ZXAsIHNlbmQg dGhlIExvZ2luIFJlcXVlc3Qgd2l0aCBDSEFQX049PE4+IENIQVBfUj08Uj4gb3INCiAgICAgLy8g Q0hBUF9OPTxOPiBDSEFQX1I9PFI+IENIQVBfST08ST4gQ0hBUF9DPTxDPiBpZiB0YXJnZXQgYXV0 aGVudGljYXRpb24gaXMNCiAgICAgLy8gcmVxdWlyZWQgdG9vLg0KICAgICAvLw0KICAgICAvLyBD SEFQX049PE4+DQogICAgIC8vDQogICAgIElTY3NpQWRkS2V5VmFsdWVQYWlyICgNCiAgICAgICBQ ZHUsDQogICAgICAgSVNDU0lfS0VZX0NIQVBfTkFNRSwNCiAgICAgICAoQ0hBUjggKikgJkF1dGhE YXRhLT5BdXRoQ29uZmlnLT5DSEFQTmFtZQ0KICAgICAgICk7DQogICAgIC8vDQogICAgIC8vIENI QVBfUj08Uj4NCiAgICAgLy8NCiAgICAgQmluVG9IZXhTdGF0dXMgPSBJU2NzaUJpblRvSGV4ICgN CiAgICAgICAgICAgICAgICAgICAgICAgIChVSU5UOCAqKSBBdXRoRGF0YS0+Q0hBUFJlc3BvbnNl LA0KLSAgICAgICAgICAgICAgICAgICAgICAgSVNDU0lfQ0hBUF9SU1BfTEVOLA0KKyAgICAgICAg ICAgICAgICAgICAgICAgTUQ1X0RJR0VTVF9TSVpFLA0KICAgICAgICAgICAgICAgICAgICAgICAg UmVzcG9uc2UsDQogICAgICAgICAgICAgICAgICAgICAgICAmUnNwTGVuDQogICAgICAgICAgICAg ICAgICAgICAgICApOw0KICAgICBBU1NFUlRfRUZJX0VSUk9SIChCaW5Ub0hleFN0YXR1cyk7DQog ICAgIElTY3NpQWRkS2V5VmFsdWVQYWlyIChQZHUsIElTQ1NJX0tFWV9DSEFQX1JFU1BPTlNFLCBS ZXNwb25zZSk7DQogDQogICAgIGlmIChBdXRoRGF0YS0+QXV0aENvbmZpZy0+Q0hBUFR5cGUgPT0g SVNDU0lfQ0hBUF9NVVRVQUwpIHsNCiAgICAgICAvLw0KICAgICAgIC8vIENIQVBfST08ST4NCiAg ICAgICAvLw0KICAgICAgIElTY3NpR2VuUmFuZG9tICgoVUlOVDggKikgJkF1dGhEYXRhLT5PdXRJ ZGVudGlmaWVyLCAxKTsNCiAgICAgICBBc2NpaVNQcmludCAoVmFsdWVTdHIsIHNpemVvZiAoVmFs dWVTdHIpLCAiJWQiLCBBdXRoRGF0YS0+T3V0SWRlbnRpZmllcik7DQogICAgICAgSVNjc2lBZGRL ZXlWYWx1ZVBhaXIgKFBkdSwgSVNDU0lfS0VZX0NIQVBfSURFTlRJRklFUiwgVmFsdWVTdHIpOw0K ICAgICAgIC8vDQogICAgICAgLy8gQ0hBUF9DPTxDPg0KICAgICAgIC8vDQotICAgICAgSVNjc2lH ZW5SYW5kb20gKChVSU5UOCAqKSBBdXRoRGF0YS0+T3V0Q2hhbGxlbmdlLCBJU0NTSV9DSEFQX1JT UF9MRU4pOw0KKyAgICAgIElTY3NpR2VuUmFuZG9tICgoVUlOVDggKikgQXV0aERhdGEtPk91dENo YWxsZW5nZSwgTUQ1X0RJR0VTVF9TSVpFKTsNCiAgICAgICBCaW5Ub0hleFN0YXR1cyA9IElTY3Np QmluVG9IZXggKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAoVUlOVDggKikgQXV0aERhdGEt Pk91dENoYWxsZW5nZSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgSVNDU0lfQ0hBUF9SU1Bf TEVOLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICBNRDVfRElHRVNUX1NJWkUsDQogICAgICAg ICAgICAgICAgICAgICAgICAgIENoYWxsZW5nZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg JkNoYWxsZW5nZUxlbg0KICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgIEFTU0VS VF9FRklfRVJST1IgKEJpblRvSGV4U3RhdHVzKTsNCiAgICAgICBJU2NzaUFkZEtleVZhbHVlUGFp ciAoUGR1LCBJU0NTSV9LRVlfQ0hBUF9DSEFMTEVOR0UsIENoYWxsZW5nZSk7DQogDQogICAgICAg Q29ubi0+QXV0aFN0ZXAgPSBJU0NTSV9DSEFQX1NURVBfRk9VUjsNCiAgICAgfQ0KICAgICAvLw0K ICAgICAvLyBTZXQgdGhlIHN0YWdlIHRyYW5zaXRpb24gZmxhZy4NCiAgICAgLy8NCiAgICAgSVND U0lfU0VUX0ZMQUcgKExvZ2luUmVxLCBJU0NTSV9MT0dJTl9SRVFfUERVX0ZMQUdfVFJBTlNJVCk7 DQogICAgIGJyZWFrOw0KIA0KICAgZGVmYXVsdDoNCiAgICAgU3RhdHVzID0gRUZJX1BST1RPQ09M X0VSUk9SOw0KICAgICBicmVhazsNCiAgIH0NCiANCi0tIAoyLjE5LjEuMy5nMzAyNDdhYTVkMjAx CgoK