Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rKgDo-00405H-V7 for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Jan 2024 14:58:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rKgDn-00GF2v-KK for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Jan 2024 14:58:23 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rKgDm-00GF2i-Te for pgsql-hackers@lists.postgresql.org; Tue, 02 Jan 2024 14:58:23 +0000 Received: from mail.verite.pro ([185.16.44.216]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rKgDi-00DNvH-6L for pgsql-hackers@postgresql.org; Tue, 02 Jan 2024 14:58:21 +0000 Received: by mail.verite.pro (Postfix, from userid 1000) id 4E9FC8C032B; Tue, 2 Jan 2024 15:58:16 +0100 (CET) MIME-Version: 1.0 Subject: Re: psql's FETCH_COUNT (cursor) is not being respected for CTEs From: "Daniel Verite" To: "PostgreSQL Hackers" Cc: Tom Lane , Robert Haas , Jakub Wartak In-Reply-To: <202bae70-f60d-4d24-a8d8-50b4ed638887@manitou-mail.org> Date: Tue, 02 Jan 2024 15:58:14 +0100 Message-Id: <533b71ca-f0e1-4f64-995e-2849ca31296b@manitou-mail.org> X-Mailer: Manitou v1.7.3 Content-type: multipart/mixed; boundary="----------=_1704207496-2636-1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format... ------------=_1704207496-2636-1 Content-Type: text/plain; charset="iso-8859-15" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, PFA a rebased version. Best regards, --=20 Daniel V=E9rit=E9 https://postgresql.verite.pro/ Twitter: @DanielVerite ------------=_1704207496-2636-1 Content-Type: text-x-patch; name="v5-0001-Implement-retrieval-of-results-in-chunks-with-lib.patch" Content-Disposition: attachment; filename="v5-0001-Implement-retrieval-of-results-in-chunks-with-lib.patch" Content-Transfer-Encoding: base64 RnJvbSBjZDBmZTFkNTE3YTBlMzFlMDMxZmJiZWExZTYwM2E3MTVjNzdlYTk3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RGFu aWVsPTIwVj1DMz1BOXJpdD1DMz1BOT89IDxkYW5pZWxAbWFuaXRvdS1tYWls Lm9yZz4KRGF0ZTogVHVlLCAyIEphbiAyMDI0IDE0OjE1OjQ4ICswMTAwClN1 YmplY3Q6IFtQQVRDSCB2NSAxLzJdIEltcGxlbWVudCByZXRyaWV2YWwgb2Yg cmVzdWx0cyBpbiBjaHVua3Mgd2l0aCBsaWJwcS4KClRoaXMgbW9kZSBpcyBz aW1pbGFyIHRvIHRoZSBzaW5nbGUtcm93IG1vZGUgZXhjZXB0IHRoYXQgY2h1 bmtzCm9mIHJlc3VsdHMgY29udGFpbiB1cCB0byBOIHJvd3MgaW5zdGVhZCBv ZiBhIHNpbmdsZSByb3cuCkl0IGlzIG1lYW50IHRvIHJlZHVjZSB0aGUgb3Zl cmhlYWQgb2YgdGhlIHJvdy1ieS1yb3cgYWxsb2NhdGlvbnMKZm9yIGxhcmdl IHJlc3VsdCBzZXRzLgpUaGUgbW9kZSBpcyBzZWxlY3RlZCB3aXRoIFBRc2V0 Q2h1bmtlZFJvd3NNb2RlKGludCBtYXhSb3dzKSBhbmQgcmVzdWx0cwpoYXZl IHRoZSBuZXcgc3RhdHVzIGNvZGUgUEdSRVNfVFVQTEVTX0NIVU5LLgotLS0K IGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sICAgICAgICAgICAgICAgICAgICAg ICB8ICA5NiArKysrKysrKysrLS0tLQogLi4uL2xpYnBxd2FscmVjZWl2ZXIv bGlicHF3YWxyZWNlaXZlci5jICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdf YW1jaGVjay9wZ19hbWNoZWNrLmMgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dCAgICAgICAgICAgICAg fCAgIDEgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jICAgICAg ICAgICAgICAgIHwgMTE3ICsrKysrKysrKysrKysrKy0tLQogc3JjL2ludGVy ZmFjZXMvbGlicHEvbGlicHEtZmUuaCAgICAgICAgICAgICAgIHwgICA0ICst CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAgICAgICAg ICAgfCAgIDcgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTg0IGluc2VydGlvbnMo KyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKaW5kZXgg ZWQ4OGFjMDAxYS4uODAwN2JmNjdkOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2xpYnBxLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwK QEAgLTM1MzcsNyArMzUzNywyMCBAQCBFeGVjU3RhdHVzVHlwZSBQUXJlc3Vs dFN0YXR1cyhjb25zdCBQR3Jlc3VsdCAqcmVzKTsKICAgICAgICAgICAgIFRo ZSA8c3RydWN0bmFtZT5QR3Jlc3VsdDwvc3RydWN0bmFtZT4gY29udGFpbnMg YSBzaW5nbGUgcmVzdWx0IHR1cGxlCiAgICAgICAgICAgICBmcm9tIHRoZSBj dXJyZW50IGNvbW1hbmQuICBUaGlzIHN0YXR1cyBvY2N1cnMgb25seSB3aGVu CiAgICAgICAgICAgICBzaW5nbGUtcm93IG1vZGUgaGFzIGJlZW4gc2VsZWN0 ZWQgZm9yIHRoZSBxdWVyeQotICAgICAgICAgICAgKHNlZSA8eHJlZiBsaW5r ZW5kPSJsaWJwcS1zaW5nbGUtcm93LW1vZGUiLz4pLgorICAgICAgICAgICAg KHNlZSA8eHJlZiBsaW5rZW5kPSJsaWJwcS1jaHVua2VkLXJlc3VsdHMtbW9k ZXMiLz4pLgorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8 dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1wZ3Jlcy10dXBsZXMtY2h1bmsiPgor ICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlBHUkVTX1RVUExFU19DSFVOSzwv bGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSA8c3RydWN0bmFtZT5QR3Jl c3VsdDwvc3RydWN0bmFtZT4gY29udGFpbnMgc2V2ZXJhbCB0dXBsZXMKKyAg ICAgICAgICAgIGZyb20gdGhlIGN1cnJlbnQgY29tbWFuZC4gVGhlIGNvdW50 IG9mIHR1cGxlcyBjYW5ub3QgZXhjZWVkCisgICAgICAgICAgICB0aGUgbWF4 aW11bSBwYXNzZWQgdG8gPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZXRDaHVu a2VkUm93c01vZGUiLz4uCisgICAgICAgICAgICBUaGlzIHN0YXR1cyBvY2N1 cnMgb25seSB3aGVuIHRoZSBjaHVua2VkIG1vZGUgaGFzIGJlZW4gc2VsZWN0 ZWQKKyAgICAgICAgICAgIGZvciB0aGUgcXVlcnkgKHNlZSA8eHJlZiBsaW5r ZW5kPSJsaWJwcS1jaHVua2VkLXJlc3VsdHMtbW9kZXMiLz4pLgogICAgICAg ICAgICA8L3BhcmE+CiAgICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAg IDwvdmFybGlzdGVudHJ5PgpAQCAtNTE4Nyw4ICs1MjAwLDggQEAgUEdyZXN1 bHQgKlBRZ2V0UmVzdWx0KFBHY29ubiAqY29ubik7CiAgIDxwYXJhPgogICAg QW5vdGhlciBmcmVxdWVudGx5LWRlc2lyZWQgZmVhdHVyZSB0aGF0IGNhbiBi ZSBvYnRhaW5lZCB3aXRoCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNl bmRRdWVyeSIvPiBhbmQgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFnZXRSZXN1 bHQiLz4KLSAgIGlzIHJldHJpZXZpbmcgbGFyZ2UgcXVlcnkgcmVzdWx0cyBh IHJvdyBhdCBhIHRpbWUuICBUaGlzIGlzIGRpc2N1c3NlZAotICAgaW4gPHhy ZWYgbGlua2VuZD0ibGlicHEtc2luZ2xlLXJvdy1tb2RlIi8+LgorICAgaXMg cmV0cmlldmluZyBsYXJnZSBxdWVyeSByZXN1bHRzIGEgbGltaXRlZCBudW1i ZXIgb2Ygcm93cyBhdCBhIHRpbWUuICBUaGlzIGlzIGRpc2N1c3NlZAorICAg aW4gPHhyZWYgbGlua2VuZD0ibGlicHEtY2h1bmtlZC1yZXN1bHRzLW1vZGVz Ii8+LgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC01NTUxLDEyICs1NTY0 LDEzIEBAIGludCBQUWZsdXNoKFBHY29ubiAqY29ubik7CiAgICAgPC9wYXJh PgogCiAgICAgPHBhcmE+Ci0gICAgIFRvIGVudGVyIHNpbmdsZS1yb3cgbW9k ZSwgY2FsbCA8ZnVuY3Rpb24+UFFzZXRTaW5nbGVSb3dNb2RlPC9mdW5jdGlv bj4KLSAgICAgYmVmb3JlIHJldHJpZXZpbmcgcmVzdWx0cyB3aXRoIDxmdW5j dGlvbj5QUWdldFJlc3VsdDwvZnVuY3Rpb24+LgotICAgICBUaGlzIG1vZGUg c2VsZWN0aW9uIGlzIGVmZmVjdGl2ZSBvbmx5IGZvciB0aGUgcXVlcnkgY3Vy cmVudGx5Ci0gICAgIGJlaW5nIHByb2Nlc3NlZC4gRm9yIG1vcmUgaW5mb3Jt YXRpb24gb24gdGhlIHVzZSBvZgotICAgICA8ZnVuY3Rpb24+UFFzZXRTaW5n bGVSb3dNb2RlPC9mdW5jdGlvbj4sCi0gICAgIHJlZmVyIHRvIDx4cmVmIGxp bmtlbmQ9ImxpYnBxLXNpbmdsZS1yb3ctbW9kZSIvPi4KKyAgICAgVG8gZW50 ZXIgc2luZ2xlLXJvdyBvciBjaHVua2VkIG1vZGVzLCBjYWxsCisgICAgIHJl c3BlY3RpdmVseSA8ZnVuY3Rpb24+UFFzZXRTaW5nbGVSb3dNb2RlPC9mdW5j dGlvbj4KKyAgICAgb3IgPGZ1bmN0aW9uPlBRc2V0Q2h1bmtlZFJvd3NNb2Rl PC9mdW5jdGlvbj4gYmVmb3JlIHJldHJpZXZpbmcgcmVzdWx0cworICAgICB3 aXRoIDxmdW5jdGlvbj5QUWdldFJlc3VsdDwvZnVuY3Rpb24+LiAgVGhpcyBt b2RlIHNlbGVjdGlvbiBpcyBlZmZlY3RpdmUKKyAgICAgb25seSBmb3IgdGhl IHF1ZXJ5IGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWQuIEZvciBtb3JlIGlu Zm9ybWF0aW9uIG9uIHRoZQorICAgICB1c2Ugb2YgdGhlc2UgZnVuY3Rpb25z IHJlZmVyCisgICAgIHRvIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLWNodW5rZWQt cmVzdWx0cy1tb2RlcyIgLz4uCiAgICAgPC9wYXJhPgogCiAgICAgPHBhcmE+ CkBAIC01ODk1LDEwICs1OTA5LDEwIEBAIFVQREFURSBteXRhYmxlIFNFVCB4 ID0geCArIDEgV0hFUkUgaWQgPSA0MjsKICAgPC9zZWN0Mj4KICA8L3NlY3Qx PgogCi0gPHNlY3QxIGlkPSJsaWJwcS1zaW5nbGUtcm93LW1vZGUiPgotICA8 dGl0bGU+UmV0cmlldmluZyBRdWVyeSBSZXN1bHRzIFJvdy1ieS1Sb3c8L3Rp dGxlPgorIDxzZWN0MSBpZD0ibGlicHEtY2h1bmtlZC1yZXN1bHRzLW1vZGVz Ij4KKyAgPHRpdGxlPlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0cyBieSBjaHVu a3M8L3RpdGxlPgogCi0gIDxpbmRleHRlcm0gem9uZT0ibGlicHEtc2luZ2xl LXJvdy1tb2RlIj4KKyAgPGluZGV4dGVybSB6b25lPSJsaWJwcS1jaHVua2Vk LXJlc3VsdHMtbW9kZXMiPgogICAgPHByaW1hcnk+bGlicHE8L3ByaW1hcnk+ CiAgICA8c2Vjb25kYXJ5PnNpbmdsZS1yb3cgbW9kZTwvc2Vjb25kYXJ5Pgog ICA8L2luZGV4dGVybT4KQEAgLTU5MDksMTMgKzU5MjMsMTUgQEAgVVBEQVRF IG15dGFibGUgU0VUIHggPSB4ICsgMSBXSEVSRSBpZCA9IDQyOwogICAgPHN0 cnVjdG5hbWU+UEdyZXN1bHQ8L3N0cnVjdG5hbWU+LiAgVGhpcyBjYW4gYmUg dW53b3JrYWJsZSBmb3IgY29tbWFuZHMKICAgIHRoYXQgcmV0dXJuIGEgbGFy Z2UgbnVtYmVyIG9mIHJvd3MuICBGb3Igc3VjaCBjYXNlcywgYXBwbGljYXRp b25zIGNhbiB1c2UKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1 ZXJ5Ii8+IGFuZCA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWdldFJlc3VsdCIv PiBpbgotICAgPGZpcnN0dGVybT5zaW5nbGUtcm93IG1vZGU8L2ZpcnN0dGVy bT4uICBJbiB0aGlzIG1vZGUsIHRoZSByZXN1bHQgcm93KHMpIGFyZQotICAg cmV0dXJuZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9uZSBhdCBhIHRpbWUsIGFz IHRoZXkgYXJlIHJlY2VpdmVkIGZyb20gdGhlCi0gICBzZXJ2ZXIuCisgICA8 Zmlyc3R0ZXJtPnNpbmdsZS1yb3cgbW9kZTwvZmlyc3R0ZXJtPiBvciA8Zmly c3R0ZXJtPmNodW5rZWQgbW9kZTwvZmlyc3R0ZXJtPi4KKyAgIEluIHRoZXNl IG1vZGVzLCB0aGUgcmVzdWx0IHJvdyhzKSBhcmUgcmV0dXJuZWQgdG8gdGhl IGFwcGxpY2F0aW9uIG9uZSBhdCBhCisgICB0aW1lIGZvciB0aGUgc2luZ2xl LXJvdyBtb2RlIGFuZCBieSBjaHVua3MgZm9yIHRoZSBjaHVua2VkIG1vZGUs IGFzIHRoZXkKKyAgIGFyZSByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIuCiAg IDwvcGFyYT4KIAogICA8cGFyYT4KLSAgIFRvIGVudGVyIHNpbmdsZS1yb3cg bW9kZSwgY2FsbCA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNldFNpbmdsZVJv d01vZGUiLz4KKyAgIFRvIGVudGVyIHRoZXNlIG1vZGVzLCBjYWxsIDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRc2V0U2luZ2xlUm93TW9kZSIvPgorICAgIG9y IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2V0Q2h1bmtlZFJvd3NNb2RlIi8+ CiAgICBpbW1lZGlhdGVseSBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBvZiA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeSIvPgogICAgKG9yIGEg c2libGluZyBmdW5jdGlvbikuICBUaGlzIG1vZGUgc2VsZWN0aW9uIGlzIGVm ZmVjdGl2ZSBvbmx5IGZvciB0aGUKICAgIGN1cnJlbnRseSBleGVjdXRpbmcg cXVlcnkuICBUaGVuIGNhbGwgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFnZXRS ZXN1bHQiLz4KQEAgLTU5MjMsNyArNTkzOSw4IEBAIFVQREFURSBteXRhYmxl IFNFVCB4ID0geCArIDEgV0hFUkUgaWQgPSA0MjsKICAgIGxpbmtlbmQ9Imxp YnBxLWFzeW5jIi8+LiAgSWYgdGhlIHF1ZXJ5IHJldHVybnMgYW55IHJvd3Ms IHRoZXkgYXJlIHJldHVybmVkCiAgICBhcyBpbmRpdmlkdWFsIDxzdHJ1Y3Ru YW1lPlBHcmVzdWx0PC9zdHJ1Y3RuYW1lPiBvYmplY3RzLCB3aGljaCBsb29r IGxpa2UKICAgIG5vcm1hbCBxdWVyeSByZXN1bHRzIGV4Y2VwdCBmb3IgaGF2 aW5nIHN0YXR1cyBjb2RlCi0gICA8bGl0ZXJhbD5QR1JFU19TSU5HTEVfVFVQ TEU8L2xpdGVyYWw+IGluc3RlYWQgb2YKKyAgIDxsaXRlcmFsPlBHUkVTX1NJ TkdMRV9UVVBMRTwvbGl0ZXJhbD4gZm9yIHRoZSBzaW5nbGUtcm93IG1vZGUg YW5kCisgICA8bGl0ZXJhbD5QR1JFU19UVVBMRVNfQ0hVTks8L2xpdGVyYWw+ IGZvciB0aGUgY2h1bmtlZCBtb2RlLCBpbnN0ZWFkIG9mCiAgICA8bGl0ZXJh bD5QR1JFU19UVVBMRVNfT0s8L2xpdGVyYWw+LiAgQWZ0ZXIgdGhlIGxhc3Qg cm93LCBvciBpbW1lZGlhdGVseSBpZgogICAgdGhlIHF1ZXJ5IHJldHVybnMg emVybyByb3dzLCBhIHplcm8tcm93IG9iamVjdCB3aXRoIHN0YXR1cwogICAg PGxpdGVyYWw+UEdSRVNfVFVQTEVTX09LPC9saXRlcmFsPiBpcyByZXR1cm5l ZDsgdGhpcyBpcyB0aGUgc2lnbmFsIHRoYXQgbm8KQEAgLTU5MzYsOSArNTk1 Myw5IEBAIFVQREFURSBteXRhYmxlIFNFVCB4ID0geCArIDEgV0hFUkUgaWQg PSA0MjsKICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgV2hlbiB1c2luZyBw aXBlbGluZSBtb2RlLCBzaW5nbGUtcm93IG1vZGUgbmVlZHMgdG8gYmUgYWN0 aXZhdGVkIGZvciBlYWNoCi0gICBxdWVyeSBpbiB0aGUgcGlwZWxpbmUgYmVm b3JlIHJldHJpZXZpbmcgcmVzdWx0cyBmb3IgdGhhdCBxdWVyeQotICAgd2l0 aCA8ZnVuY3Rpb24+UFFnZXRSZXN1bHQ8L2Z1bmN0aW9uPi4KKyAgIFdoZW4g dXNpbmcgcGlwZWxpbmUgbW9kZSwgdGhlIHNpbmdsZS1yb3cgb3IgY2h1bmtl ZCBtb2RlIG5lZWQgdG8gYmUKKyAgIGFjdGl2YXRlZCBmb3IgZWFjaCBxdWVy eSBpbiB0aGUgcGlwZWxpbmUgYmVmb3JlIHJldHJpZXZpbmcgcmVzdWx0cyBm b3IgdGhhdAorICAgcXVlcnkgd2l0aCA8ZnVuY3Rpb24+UFFnZXRSZXN1bHQ8 L2Z1bmN0aW9uPi4KICAgIFNlZSA8eHJlZiBsaW5rZW5kPSJsaWJwcS1waXBl bGluZS1tb2RlIi8+IGZvciBtb3JlIGluZm9ybWF0aW9uLgogICA8L3BhcmE+ CiAKQEAgLTU5NzIsMTQgKzU5ODksNDkgQEAgaW50IFBRc2V0U2luZ2xlUm93 TW9kZShQR2Nvbm4gKmNvbm4pOwogICAgPC92YXJpYWJsZWxpc3Q+CiAgIDwv cGFyYT4KIAorICAgIDxwYXJhPgorICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8 dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXNldENodW5rZWRSb3dzTW9kZSI+ CisgICAgICA8dGVybT48ZnVuY3Rpb24+UFFzZXRDaHVua2VkUm93c01vZGU8 L2Z1bmN0aW9uPgorICAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PlBRc2V0 Q2h1bmtlZFJvd3NNb2RlPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4K KyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgU2VsZWN0 IHRoZSBtb2RlIHJldHJpZXZpbmcgcmVzdWx0cyBpbiBjaHVua3MgZm9yIHRo ZSBjdXJyZW50bHktZXhlY3V0aW5nIHF1ZXJ5LgorCis8c3lub3BzaXM+Cisg IGludCBQUXNldENodW5rZWRSb3dzTW9kZShQR2Nvbm4gKmNvbm4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4Um93cyk7Cis8L3N5bm9w c2lzPgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBU aGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG8gPHhyZWYgbGlua2VuZD0ibGli cHEtUFFzZXRTaW5nbGVSb3dNb2RlIi8+LAorICAgICAgIGV4Y2VwdCB0aGF0 IGl0IGNhbiByZXRyaWV2ZSBhIHVzZXItc3BlY2lmaWVkIG51bWJlciBvZiBy b3dzCisgICAgICAgcGVyIGNhbGwgdG8gPHhyZWYgbGlua2VuZD0ibGlicHEt UFFnZXRSZXN1bHQiLz4sIGluc3RlYWQgb2YgYSBzaW5nbGUgcm93LgorICAg ICAgIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVkIGltbWVkaWF0 ZWx5IGFmdGVyCisgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5k UXVlcnkiLz4gb3Igb25lIG9mIGl0cyBzaWJsaW5nIGZ1bmN0aW9ucywKKyAg ICAgICBiZWZvcmUgYW55IG90aGVyIG9wZXJhdGlvbiBvbiB0aGUgY29ubmVj dGlvbiBzdWNoIGFzCisgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFj b25zdW1lSW5wdXQiLz4gb3IKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUWdldFJlc3VsdCIvPi4gIElmIGNhbGxlZCBhdCB0aGUgY29ycmVjdCB0 aW1lLAorICAgICAgIHRoZSBmdW5jdGlvbiBhY3RpdmF0ZXMgdGhlIGNodW5r ZWQgbW9kZSBmb3IgdGhlIGN1cnJlbnQgcXVlcnkgYW5kCisgICAgICAgcmV0 dXJucyAxLiAgT3RoZXJ3aXNlIHRoZSBtb2RlIHN0YXlzIHVuY2hhbmdlZCBh bmQgdGhlIGZ1bmN0aW9uCisgICAgICAgcmV0dXJucyAwLiAgSW4gYW55IGNh c2UsIHRoZSBtb2RlIHJldmVydHMgdG8gbm9ybWFsIGFmdGVyCisgICAgICAg Y29tcGxldGlvbiBvZiB0aGUgY3VycmVudCBxdWVyeS4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKyAg IDwvdmFyaWFibGVsaXN0PgorICA8L3BhcmE+CisKICAgPGNhdXRpb24+CiAg ICA8cGFyYT4KICAgICBXaGlsZSBwcm9jZXNzaW5nIGEgcXVlcnksIHRoZSBz ZXJ2ZXIgbWF5IHJldHVybiBzb21lIHJvd3MgYW5kIHRoZW4KICAgICBlbmNv dW50ZXIgYW4gZXJyb3IsIGNhdXNpbmcgdGhlIHF1ZXJ5IHRvIGJlIGFib3J0 ZWQuICBPcmRpbmFyaWx5LAogICAgIDxhcHBsaWNhdGlvbj5saWJwcTwvYXBw bGljYXRpb24+IGRpc2NhcmRzIGFueSBzdWNoIHJvd3MgYW5kIHJlcG9ydHMg b25seSB0aGUKLSAgICBlcnJvci4gIEJ1dCBpbiBzaW5nbGUtcm93IG1vZGUs IHRob3NlIHJvd3Mgd2lsbCBoYXZlIGFscmVhZHkgYmVlbgorICAgIGVycm9y LiAgQnV0IGluIHNpbmdsZS1yb3cgb3IgY2h1bmtlZCBtb2RlcywgdGhvc2Ug cm93cyB3aWxsIGhhdmUgYWxyZWFkeSBiZWVuCiAgICAgcmV0dXJuZWQgdG8g dGhlIGFwcGxpY2F0aW9uLiAgSGVuY2UsIHRoZSBhcHBsaWNhdGlvbiB3aWxs IHNlZSBzb21lCi0gICAgPGxpdGVyYWw+UEdSRVNfU0lOR0xFX1RVUExFPC9s aXRlcmFsPiA8c3RydWN0bmFtZT5QR3Jlc3VsdDwvc3RydWN0bmFtZT4KKyAg ICA8bGl0ZXJhbD5QR1JFU19TSU5HTEVfVFVQTEU8L2xpdGVyYWw+IG9yIDxs aXRlcmFsPlBHUkVTX1RVUExFU19DSFVOSzwvbGl0ZXJhbD4KKyAgICA8c3Ry dWN0bmFtZT5QR3Jlc3VsdDwvc3RydWN0bmFtZT4KICAgICBvYmplY3RzIGZv bGxvd2VkIGJ5IGEgPGxpdGVyYWw+UEdSRVNfRkFUQUxfRVJST1I8L2xpdGVy YWw+IG9iamVjdC4gIEZvcgogICAgIHByb3BlciB0cmFuc2FjdGlvbmFsIGJl aGF2aW9yLCB0aGUgYXBwbGljYXRpb24gbXVzdCBiZSBkZXNpZ25lZCB0bwog ICAgIGRpc2NhcmQgb3IgdW5kbyB3aGF0ZXZlciBoYXMgYmVlbiBkb25lIHdp dGggdGhlIHByZXZpb3VzbHktcHJvY2Vzc2VkCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2Fs cmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2Fs cmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCmluZGV4IDY5M2IzNjY5YmEu Ljc0OThlZThiZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGli cHF3YWxyZWNlaXZlci5jCkBAIC0xMDkzLDYgKzEwOTMsNyBAQCBsaWJwcXJj dl9leGVjKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29uc3QgY2hhciAqcXVl cnksCiAJc3dpdGNoIChQUXJlc3VsdFN0YXR1cyhwZ3JlcykpCiAJewogCQlj YXNlIFBHUkVTX1NJTkdMRV9UVVBMRToKKwkJY2FzZSBQR1JFU19UVVBMRVNf Q0hVTks6CiAJCWNhc2UgUEdSRVNfVFVQTEVTX09LOgogCQkJd2FscmVzLT5z dGF0dXMgPSBXQUxSQ1ZfT0tfVFVQTEVTOwogCQkJbGlicHFyY3ZfcHJvY2Vz c1R1cGxlcyhwZ3Jlcywgd2FscmVzLCBuUmV0VHlwZXMsIHJldFR5cGVzKTsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYW1jaGVjay9wZ19hbWNoZWNrLmMg Yi9zcmMvYmluL3BnX2FtY2hlY2svcGdfYW1jaGVjay5jCmluZGV4IGE2YjNi NTY0NTcuLjljOGEwOTE2YzcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYW1j aGVjay9wZ19hbWNoZWNrLmMKKysrIGIvc3JjL2Jpbi9wZ19hbWNoZWNrL3Bn X2FtY2hlY2suYwpAQCAtOTg5LDYgKzk4OSw3IEBAIHNob3VsZF9wcm9jZXNz aW5nX2NvbnRpbnVlKFBHcmVzdWx0ICpyZXMpCiAJCWNhc2UgUEdSRVNfQ09Q WV9JTjoKIAkJY2FzZSBQR1JFU19DT1BZX0JPVEg6CiAJCWNhc2UgUEdSRVNf U0lOR0xFX1RVUExFOgorCQljYXNlIFBHUkVTX1RVUExFU19DSFVOSzoKIAkJ Y2FzZSBQR1JFU19QSVBFTElORV9TWU5DOgogCQljYXNlIFBHUkVTX1BJUEVM SU5FX0FCT1JURUQ6CiAJCQlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dCBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2V4cG9ydHMudHh0CmluZGV4IDg1MDczNGFjOTYuLmFlN2M4 NDI0N2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9y dHMudHh0CisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0 CkBAIC0xOTEsMyArMTkxLDQgQEAgUFFjbG9zZVByZXBhcmVkICAgICAgICAg ICAxODgKIFBRY2xvc2VQb3J0YWwgICAgICAgICAgICAgMTg5CiBQUXNlbmRD bG9zZVByZXBhcmVkICAgICAgIDE5MAogUFFzZW5kQ2xvc2VQb3J0YWwgICAg ICAgICAxOTEKK1BRc2V0Q2h1bmtlZFJvd3NNb2RlCSAgMTkyCmRpZmYgLS1n aXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKaW5kZXggYjk1MTFkZjJjMi4uYTAy ZDk3ZDAwNiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUt ZXhlYy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwpA QCAtNDEsNyArNDEsOCBAQCBjaGFyCSAgICpjb25zdCBwZ3Jlc1N0YXR1c1td ID0gewogCSJQR1JFU19DT1BZX0JPVEgiLAogCSJQR1JFU19TSU5HTEVfVFVQ TEUiLAogCSJQR1JFU19QSVBFTElORV9TWU5DIiwKLQkiUEdSRVNfUElQRUxJ TkVfQUJPUlRFRCIKKwkiUEdSRVNfUElQRUxJTkVfQUJPUlRFRCIsCisJIlBH UkVTX1RVUExFU19DSFVOSyIKIH07CiAKIC8qIFdlIHJldHVybiB0aGlzIGlm IHdlJ3JlIHVuYWJsZSB0byBtYWtlIGEgUEdyZXN1bHQgYXQgYWxsICovCkBA IC04Miw3ICs4Myw3IEBAIHN0YXRpYyBpbnQJUFFzZW5kVHlwZWRDb21tYW5k KFBHY29ubiAqY29ubiwgY2hhciBjb21tYW5kLCBjaGFyIHR5cGUsCiBzdGF0 aWMgaW50CWNoZWNrX2ZpZWxkX251bWJlcihjb25zdCBQR3Jlc3VsdCAqcmVz LCBpbnQgZmllbGRfbnVtKTsKIHN0YXRpYyB2b2lkIHBxUGlwZWxpbmVQcm9j ZXNzUXVldWUoUEdjb25uICpjb25uKTsKIHN0YXRpYyBpbnQJcHFQaXBlbGlu ZUZsdXNoKFBHY29ubiAqY29ubik7Ci0KK3N0YXRpYyBib29sIGNhbkNoYW5n ZVJvd01vZGUoUEdjb25uICpjb25uKTsKIAogLyogLS0tLS0tLS0tLS0tLS0t LQogICogU3BhY2UgbWFuYWdlbWVudCBmb3IgUEdyZXN1bHQuCkBAIC0xOTks NiArMjAwLDcgQEAgUFFtYWtlRW1wdHlQR3Jlc3VsdChQR2Nvbm4gKmNvbm4s IEV4ZWNTdGF0dXNUeXBlIHN0YXR1cykKIAkJCWNhc2UgUEdSRVNfQ09QWV9J TjoKIAkJCWNhc2UgUEdSRVNfQ09QWV9CT1RIOgogCQkJY2FzZSBQR1JFU19T SU5HTEVfVFVQTEU6CisJCQljYXNlIFBHUkVTX1RVUExFU19DSFVOSzoKIAkJ CQkvKiBub24tZXJyb3IgY2FzZXMgKi8KIAkJCQlicmVhazsKIAkJCWRlZmF1 bHQ6CkBAIC05MTAsOCArOTEyLDkgQEAgcHFQcmVwYXJlQXN5bmNSZXN1bHQo UEdjb25uICpjb25uKQogCS8qCiAJICogUmVwbGFjZSBjb25uLT5yZXN1bHQg d2l0aCBuZXh0X3Jlc3VsdCwgaWYgYW55LiAgSW4gdGhlIG5vcm1hbCBjYXNl CiAJICogdGhlcmUgaXNuJ3QgYSBuZXh0IHJlc3VsdCBhbmQgd2UncmUganVz dCBkcm9wcGluZyBvd25lcnNoaXAgb2YgdGhlCi0JICogY3VycmVudCByZXN1 bHQuICBJbiBzaW5nbGUtcm93IG1vZGUgdGhpcyByZXN0b3JlcyB0aGUgc2l0 dWF0aW9uIHRvIHdoYXQKLQkgKiBpdCB3YXMgYmVmb3JlIHdlIGNyZWF0ZWQg dGhlIGN1cnJlbnQgc2luZ2xlLXJvdyByZXN1bHQuCisJICogY3VycmVudCBy ZXN1bHQuICBJbiBzaW5nbGUtcm93IGFuZCBjaHVua2VkIG1vZGVzIHRoaXMg cmVzdG9yZXMgdGhlCisJICogc2l0dWF0aW9uIHRvIHdoYXQgaXQgd2FzIGJl Zm9yZSB3ZSBjcmVhdGVkIHRoZSBjdXJyZW50IHNpbmdsZS1yb3cgb3IKKwkg KiBjaHVuay1vZi1yb3dzIHJlc3VsdC4KIAkgKi8KIAljb25uLT5yZXN1bHQg PSBjb25uLT5uZXh0X3Jlc3VsdDsKIAljb25uLT5lcnJvcl9yZXN1bHQgPSBm YWxzZTsgLyogbmV4dF9yZXN1bHQgaXMgbmV2ZXIgYW4gZXJyb3IgKi8KQEAg LTExOTcsMTAgKzEyMDAsMTEgQEAgcHFTYXZlUGFyYW1ldGVyU3RhdHVzKFBH Y29ubiAqY29ubiwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFs dWUpCiAgKiAoU3VjaCBhIHN0cmluZyBzaG91bGQgYWxyZWFkeSBiZSB0cmFu c2xhdGVkIHZpYSBsaWJwcV9nZXR0ZXh0KCkuKQogICogSWYgaXQgaXMgbGVm dCBOVUxMLCB0aGUgZXJyb3IgaXMgcHJlc3VtZWQgdG8gYmUgIm91dCBvZiBt ZW1vcnkiLgogICoKLSAqIEluIHNpbmdsZS1yb3cgbW9kZSwgd2UgY3JlYXRl IGEgbmV3IHJlc3VsdCBob2xkaW5nIGp1c3QgdGhlIGN1cnJlbnQgcm93LAot ICogc3Rhc2hpbmcgdGhlIHByZXZpb3VzIHJlc3VsdCBpbiBjb25uLT5uZXh0 X3Jlc3VsdCBzbyB0aGF0IGl0IGJlY29tZXMKLSAqIGFjdGl2ZSBhZ2FpbiBh ZnRlciBwcVByZXBhcmVBc3luY1Jlc3VsdCgpLiAgVGhpcyBhbGxvd3MgdGhl IHJlc3VsdCBtZXRhZGF0YQotICogKGNvbHVtbiBkZXNjcmlwdGlvbnMpIHRv IGJlIGNhcnJpZWQgZm9yd2FyZCB0byBlYWNoIHJlc3VsdCByb3cuCisgKiBJ biBzaW5nbGUtcm93IG9yIGNodW5rZWQgbW9kZSwgd2UgY3JlYXRlIGEgbmV3 IHJlc3VsdCBob2xkaW5nIGp1c3QgdGhlCisgKiBjdXJyZW50IHNldCBvZiBy b3dzLCBzdGFzaGluZyB0aGUgcHJldmlvdXMgcmVzdWx0IGluIGNvbm4tPm5l eHRfcmVzdWx0IHNvCisgKiB0aGF0IGl0IGJlY29tZXMgYWN0aXZlIGFnYWlu IGFmdGVyIHBxUHJlcGFyZUFzeW5jUmVzdWx0KCkuICBUaGlzIGFsbG93cyB0 aGUKKyAqIHJlc3VsdCBtZXRhZGF0YSAoY29sdW1uIGRlc2NyaXB0aW9ucykg dG8gYmUgY2FycmllZCBmb3J3YXJkIHRvIGVhY2ggcmVzdWx0CisgKiByb3cu CiAgKi8KIGludAogcHFSb3dQcm9jZXNzb3IoUEdjb25uICpjb25uLCBjb25z dCBjaGFyICoqZXJybXNncCkKQEAgLTEyMjUsNiArMTIyOSwyOCBAQCBwcVJv d1Byb2Nlc3NvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKiplcnJtc2dw KQogCQlpZiAoIXJlcykKIAkJCXJldHVybiAwOwogCX0KKwllbHNlIGlmIChj b25uLT5yb3dzQ2h1bmtTaXplID4gMCkKKwl7CisJCS8qCisJCSAqIEluIGNo dW5rZWQgbW9kZSwgbWFrZSBhIG5ldyBQR3Jlc3VsdCB0aGF0IHdpbGwgaG9s ZCBOIHJvd3M7IHRoZQorCQkgKiBvcmlnaW5hbCBjb25uLT5yZXN1bHQgaXMg bGVmdCB1bmNoYW5nZWQsIGFzIGluIHRoZSBzaW5nbGUtcm93IG1vZGUuCisJ CSAqLworCQlpZiAoIWNvbm4tPmNodW5rX3Jlc3VsdCkKKwkJeworCQkJLyog QWxsb2NhdGUgYW5kIGluaXRpYWxpemUgdGhlIHJlc3VsdCB0byBob2xkIGEg Y2h1bmsgb2Ygcm93cyAqLworCQkJcmVzID0gUFFjb3B5UmVzdWx0KHJlcywK KwkJCQkJCQkgICBQR19DT1BZUkVTX0FUVFJTIHwgUEdfQ09QWVJFU19FVkVO VFMgfAorCQkJCQkJCSAgIFBHX0NPUFlSRVNfTk9USUNFSE9PS1MpOworCQkJ aWYgKCFyZXMpCisJCQkJcmV0dXJuIDA7CisJCQkvKiBDaGFuZ2UgcmVzdWx0 IHN0YXR1cyB0byBzcGVjaWFsIGNodW5rLW9mLXJvd3MgdmFsdWUgKi8KKwkJ CXJlcy0+cmVzdWx0U3RhdHVzID0gUEdSRVNfVFVQTEVTX0NIVU5LOworCQkJ LyogS2VlcCB0aGlzIHJlc3VsdCB0byByZXVzZSBmb3IgdGhlIG5leHQgcm93 cyBvZiB0aGUgY2h1bmsgKi8KKwkJCWNvbm4tPmNodW5rX3Jlc3VsdCA9IHJl czsKKwkJfQorCQllbHNlCisJCQlyZXMgPSBjb25uLT5jaHVua19yZXN1bHQ7 CS8qIFVzZSB0aGUgY3VycmVudCBjaHVuayAqLworCX0KIAogCS8qCiAJICog QmFzaWNhbGx5IHdlIGp1c3QgYWxsb2NhdGUgc3BhY2UgaW4gdGhlIFBHcmVz dWx0IGZvciBlYWNoIGZpZWxkIGFuZApAQCAtMTI4Nyw2ICsxMzEzLDIxIEBA IHBxUm93UHJvY2Vzc29yKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqKmVy cm1zZ3ApCiAJCWNvbm4tPmFzeW5jU3RhdHVzID0gUEdBU1lOQ19SRUFEWV9N T1JFOwogCX0KIAorCS8qCisJICogSW4gY2h1bmtlZCBtb2RlLCBpZiB0aGUg Y291bnQgaGFzIHJlYWNoZWQgdGhlIHJlcXVlc3RlZCBsaW1pdCwgbWFrZSB0 aGUKKwkgKiByb3dzIG9mIHRoZSBjdXJyZW50IGNodW5rIGF2YWlsYWJsZSBp bW1lZGlhdGVseS4KKwkgKi8KKwllbHNlIGlmIChjb25uLT5yb3dzQ2h1bmtT aXplID4gMCAmJiByZXMtPm50dXBzID49IGNvbm4tPnJvd3NDaHVua1NpemUp CisJeworCQkvKiBTdGFzaCBvbGQgcmVzdWx0IGZvciByZS11c2UgbGF0ZXIg Ki8KKwkJY29ubi0+bmV4dF9yZXN1bHQgPSBjb25uLT5yZXN1bHQ7CisJCWNv bm4tPnJlc3VsdCA9IHJlczsKKwkJLyogRG8gbm90IHJldXNlIHRoYXQgY2h1 bmsgb2YgcmVzdWx0cyAqLworCQljb25uLT5jaHVua19yZXN1bHQgPSBOVUxM OworCQkvKiBBbmQgbWFyayB0aGUgcmVzdWx0IHJlYWR5IHRvIHJldHVybiAq LworCQljb25uLT5hc3luY1N0YXR1cyA9IFBHQVNZTkNfUkVBRFlfTU9SRTsK Kwl9CisKIAlyZXR1cm4gMTsKIAogZmFpbDoKQEAgLTE3NDIsOCArMTc4Myw5 IEBAIFBRc2VuZFF1ZXJ5U3RhcnQoUEdjb25uICpjb25uLCBib29sIG5ld1F1 ZXJ5KQogCQkgKi8KIAkJcHFDbGVhckFzeW5jUmVzdWx0KGNvbm4pOwogCi0J CS8qIHJlc2V0IHNpbmdsZS1yb3cgcHJvY2Vzc2luZyBtb2RlICovCisJCS8q IHJlc2V0IHJvdy1ieS1yb3cgYW5kIGNodW5rZWQgcHJvY2Vzc2luZyBtb2Rl cyAqLwogCQljb25uLT5zaW5nbGVSb3dNb2RlID0gZmFsc2U7CisJCWNvbm4t PnJvd3NDaHVua1NpemUgPSAwOwogCX0KIAogCS8qIHJlYWR5IHRvIHNlbmQg Y29tbWFuZCBtZXNzYWdlICovCkBAIC0xOTI3LDI1ICsxOTY5LDUxIEBAIHNl bmRGYWlsZWQ6CiAgKi8KIGludAogUFFzZXRTaW5nbGVSb3dNb2RlKFBHY29u biAqY29ubikKK3sKKwlpZiAoY2FuQ2hhbmdlUm93TW9kZShjb25uKSkKKwl7 CisJCWNvbm4tPnNpbmdsZVJvd01vZGUgPSB0cnVlOworCQlyZXR1cm4gMTsK Kwl9CisJZWxzZQorCQlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNlbGVjdCBj aHVua2VkIHJlc3VsdHMgcHJvY2Vzc2luZyBtb2RlCisgKi8KK2ludAorUFFz ZXRDaHVua2VkUm93c01vZGUoUEdjb25uICpjb25uLCBpbnQgY2h1bmtTaXpl KQoreworCWlmIChjaHVua1NpemUgPj0gMCAmJiBjYW5DaGFuZ2VSb3dNb2Rl KGNvbm4pKQorCXsKKwkJY29ubi0+cm93c0NodW5rU2l6ZSA9IGNodW5rU2l6 ZTsKKwkJcmV0dXJuIDE7CisJfQorCWVsc2UKKwkJcmV0dXJuIDA7Cit9CisK K3N0YXRpYworYm9vbAorY2FuQ2hhbmdlUm93TW9kZShQR2Nvbm4gKmNvbm4p CiB7CiAJLyoKLQkgKiBPbmx5IGFsbG93IHNldHRpbmcgdGhlIGZsYWcgd2hl biB3ZSBoYXZlIGxhdW5jaGVkIGEgcXVlcnkgYW5kIG5vdCB5ZXQKLQkgKiBy ZWNlaXZlZCBhbnkgcmVzdWx0cy4KKwkgKiBPbmx5IGFsbG93IHNldHRpbmcg dGhlIHJvdy1ieS1yb3cgb3IgYnktY2h1bmtzIG1vZGVzIHdoZW4gd2UgaGF2 ZQorCSAqIGxhdW5jaGVkIGEgcXVlcnkgYW5kIG5vdCB5ZXQgcmVjZWl2ZWQg YW55IHJlc3VsdHMuCiAJICovCiAJaWYgKCFjb25uKQotCQlyZXR1cm4gMDsK KwkJcmV0dXJuIGZhbHNlOwogCWlmIChjb25uLT5hc3luY1N0YXR1cyAhPSBQ R0FTWU5DX0JVU1kpCi0JCXJldHVybiAwOworCQlyZXR1cm4gZmFsc2U7CiAJ aWYgKCFjb25uLT5jbWRfcXVldWVfaGVhZCB8fAogCQkoY29ubi0+Y21kX3F1 ZXVlX2hlYWQtPnF1ZXJ5Y2xhc3MgIT0gUEdRVUVSWV9TSU1QTEUgJiYKIAkJ IGNvbm4tPmNtZF9xdWV1ZV9oZWFkLT5xdWVyeWNsYXNzICE9IFBHUVVFUllf RVhURU5ERUQpKQotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIGZhbHNlOwogCWlm IChwZ0hhdmVQZW5kaW5nUmVzdWx0KGNvbm4pKQotCQlyZXR1cm4gMDsKKwkJ cmV0dXJuIGZhbHNlOwogCi0JLyogT0ssIHNldCBmbGFnICovCi0JY29ubi0+ c2luZ2xlUm93TW9kZSA9IHRydWU7Ci0JcmV0dXJuIDE7CisJcmV0dXJuIHRy dWU7CiB9CiAKIC8qCkBAIC0yMTEyLDYgKzIxODAsMTYgQEAgUFFnZXRSZXN1 bHQoUEdjb25uICpjb25uKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBQR0FTWU5D X1JFQURZOgorCQkJLyoKKwkJCSAqIElmIHRoZXJlIGlzIGEgcGVuZGluZyBj aHVuayBvZiByZXN1bHRzLCByZXR1cm4gaXQKKwkJCSAqLworCQkJaWYgKGNv bm4tPmNodW5rX3Jlc3VsdCAhPSBOVUxMKQorCQkJeworCQkJCXJlcyA9IGNv bm4tPmNodW5rX3Jlc3VsdDsKKwkJCQljb25uLT5jaHVua19yZXN1bHQgPSBO VUxMOworCQkJCWJyZWFrOworCQkJfQorCiAJCQlyZXMgPSBwcVByZXBhcmVB c3luY1Jlc3VsdChjb25uKTsKIAogCQkJLyogQWR2YW5jZSB0aGUgcXVldWUg YXMgYXBwcm9wcmlhdGUgKi8KQEAgLTMxNzAsMTAgKzMyNDgsMTEgQEAgcHFQ aXBlbGluZVByb2Nlc3NRdWV1ZShQR2Nvbm4gKmNvbm4pCiAJfQogCiAJLyoK LQkgKiBSZXNldCBzaW5nbGUtcm93IHByb2Nlc3NpbmcgbW9kZS4gIChDbGll bnQgaGFzIHRvIHNldCBpdCB1cCBmb3IgZWFjaAorCSAqIFJlc2V0IHRvIGZ1 bGwgcmVzdWx0IHNldHMgbW9kZS4gKENsaWVudCBoYXMgdG8gc2V0IGl0IHVw IGZvciBlYWNoCiAJICogcXVlcnksIGlmIGRlc2lyZWQuKQogCSAqLwogCWNv bm4tPnNpbmdsZVJvd01vZGUgPSBmYWxzZTsKKwljb25uLT5yb3dzQ2h1bmtT aXplID0gMDsKIAogCS8qCiAJICogSWYgdGhlcmUgYXJlIG5vIGZ1cnRoZXIg Y29tbWFuZHMgdG8gcHJvY2VzcyBpbiB0aGUgcXVldWUsIGdldCB1cyBpbgpk aWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaCBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKaW5kZXggOTc3NjJk NTZmNS4uMDAyZWQ3NzJjOCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtZmUuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9s aWJwcS1mZS5oCkBAIC0xMDksOCArMTA5LDkgQEAgdHlwZWRlZiBlbnVtCiAJ UEdSRVNfQ09QWV9CT1RILAkJCS8qIENvcHkgSW4vT3V0IGRhdGEgdHJhbnNm ZXIgaW4gcHJvZ3Jlc3MgKi8KIAlQR1JFU19TSU5HTEVfVFVQTEUsCQkJLyog c2luZ2xlIHR1cGxlIGZyb20gbGFyZ2VyIHJlc3VsdHNldCAqLwogCVBHUkVT X1BJUEVMSU5FX1NZTkMsCQkvKiBwaXBlbGluZSBzeW5jaHJvbml6YXRpb24g cG9pbnQgKi8KLQlQR1JFU19QSVBFTElORV9BQk9SVEVECQkvKiBDb21tYW5k IGRpZG4ndCBydW4gYmVjYXVzZSBvZiBhbiBhYm9ydAorCVBHUkVTX1BJUEVM SU5FX0FCT1JURUQsCQkvKiBDb21tYW5kIGRpZG4ndCBydW4gYmVjYXVzZSBv ZiBhbiBhYm9ydAogCQkJCQkJCQkgKiBlYXJsaWVyIGluIGEgcGlwZWxpbmUg Ki8KKwlQR1JFU19UVVBMRVNfQ0hVTksJCQkvKiBzZXQgb2YgdHVwbGVzIGZy b20gbGFyZ2VyIHJlc3VsdHNldCAqLwogfSBFeGVjU3RhdHVzVHlwZTsKIAog dHlwZWRlZiBlbnVtCkBAIC00NjMsNiArNDY0LDcgQEAgZXh0ZXJuIGludAlQ UXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCQkJY29u c3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1bHRGb3Jt YXQpOwogZXh0ZXJuIGludAlQUXNldFNpbmdsZVJvd01vZGUoUEdjb25uICpj b25uKTsKK2V4dGVybiBpbnQJUFFzZXRDaHVua2VkUm93c01vZGUoUEdjb25u ICpjb25uLCBpbnQgY2h1bmtTaXplKTsKIGV4dGVybiBQR3Jlc3VsdCAqUFFn ZXRSZXN1bHQoUEdjb25uICpjb25uKTsKIAogLyogUm91dGluZXMgZm9yIG1h bmFnaW5nIGFuIGFzeW5jaHJvbm91cyBxdWVyeSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9saWJwcS1pbnQuaAppbmRleCA3ODg4MTk5YjBkLi5kYTUx ZmExZWU2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJw cS1pbnQuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQu aApAQCAtNDMxLDYgKzQzMSw4IEBAIHN0cnVjdCBwZ19jb25uCiAJCQkJCQkJ CSAqIHNlbmRpbmcgc2VtYW50aWNzICovCiAJUEdwaXBlbGluZVN0YXR1cyBw aXBlbGluZVN0YXR1czsJLyogc3RhdHVzIG9mIHBpcGVsaW5lIG1vZGUgKi8K IAlib29sCQlzaW5nbGVSb3dNb2RlOwkvKiByZXR1cm4gY3VycmVudCBxdWVy eSByZXN1bHQgcm93LWJ5LXJvdz8gKi8KKwlpbnQJCQlyb3dzQ2h1bmtTaXpl OwkvKiBub24temVybyB0byByZXR1cm4gcXVlcnkgcmVzdWx0cyBieSBjaHVu a3MKKwkJCQkJCQkJICogbm90IGV4Y2VlZGluZyB0aGF0IG51bWJlciBvZiBy b3dzICovCiAJY2hhcgkJY29weV9pc19iaW5hcnk7IC8qIDEgPSBjb3B5IGJp bmFyeSwgMCA9IGNvcHkgdGV4dCAqLwogCWludAkJCWNvcHlfYWxyZWFkeV9k b25lOwkvKiAjIGJ5dGVzIGFscmVhZHkgcmV0dXJuZWQgaW4gQ09QWSBPVVQg Ki8KIAlQR25vdGlmeSAgICpub3RpZnlIZWFkOwkJLyogb2xkZXN0IHVucmVw b3J0ZWQgTm90aWZ5IG1zZyAqLwpAQCAtNTM2LDcgKzUzOCwxMCBAQCBzdHJ1 Y3QgcGdfY29ubgogCSAqLwogCVBHcmVzdWx0ICAgKnJlc3VsdDsJCQkvKiBy ZXN1bHQgYmVpbmcgY29uc3RydWN0ZWQgKi8KIAlib29sCQllcnJvcl9yZXN1 bHQ7CS8qIGRvIHdlIG5lZWQgdG8gbWFrZSBhbiBFUlJPUiByZXN1bHQ/ICov Ci0JUEdyZXN1bHQgICAqbmV4dF9yZXN1bHQ7CS8qIG5leHQgcmVzdWx0ICh1 c2VkIGluIHNpbmdsZS1yb3cgbW9kZSkgKi8KKwlQR3Jlc3VsdCAgICpuZXh0 X3Jlc3VsdDsJLyogbmV4dCByZXN1bHQgKHVzZWQgaW4gc2luZ2xlLXJvdyBh bmQKKwkJCQkJCQkJICogYnktY2h1bmtzIG1vZGVzKSAqLworCVBHcmVzdWx0 ICAgKmNodW5rX3Jlc3VsdDsJLyogY3VycmVudCBjaHVuayBvZiByZXN1bHRz IChsaW1pdGVkIHRvCisJCQkJCQkJCSAqIHJvd3NDaHVua1NpemUpICovCiAK IAkvKiBBc3NvcnRlZCBzdGF0ZSBmb3IgU0FTTCwgU1NMLCBHU1MsIGV0YyAq LwogCWNvbnN0IHBnX2ZlX3Nhc2xfbWVjaCAqc2FzbDsKLS0gCjIuMzQuMQoK ------------=_1704207496-2636-1 Content-Type: text-x-patch; name="v5-0002-Reimplement-FETCH_COUNT-with-the-chunked-mode-in-.patch" Content-Disposition: attachment; filename="v5-0002-Reimplement-FETCH_COUNT-with-the-chunked-mode-in-.patch" Content-Transfer-Encoding: base64 RnJvbSAyYjRjNDU4MDQ0MDhmOTQ4MzVkNGVkNGE3ODY5NjQ5ZGUxNDMxOTNj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RGFu aWVsPTIwVj1DMz1BOXJpdD1DMz1BOT89IDxkYW5pZWxAbWFuaXRvdS1tYWls Lm9yZz4KRGF0ZTogVHVlLCAyIEphbiAyMDI0IDE0OjE3OjE4ICswMTAwClN1 YmplY3Q6IFtQQVRDSCB2NSAyLzJdIFJlaW1wbGVtZW50IEZFVENIX0NPVU5U IHdpdGggdGhlIGNodW5rZWQgbW9kZSBpbiBsaWJwcQogaW5zdGVhZCBvZiBj dXJzb3JzLgoKQ3Vyc29ycyB3ZXJlIHVzZWQgb25seSB3aGVuIHRoZSBjb21t YW5kIHN0YXJ0cyB3aXRoIHRoZSBrZXl3b3JkICJTRUxFQ1QiLApleGNsdWRp bmcgcXVlcmllcyB0aGF0IHN0YXJ0IHdpdGggIldJVEgiIG9yICJVUERBVEUi IG9yICJJTlNFUlQiIHRoYXQKbWF5IGFsc28gcmV0dXJuIGxhcmdlIHJlc3Vs dCBzZXRzLgotLS0KIHNyYy9iaW4vcHNxbC9jb21tb24uYyAgICAgICAgICAg ICAgfCA1NDUgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9i aW4vcHNxbC90LzAwMV9iYXNpYy5wbCAgICAgICAgfCAgIDYgKy0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgfCAgIDkgKy0KIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsICAgICAgfCAgIDQgKy0KIDQgZmls ZXMgY2hhbmdlZCwgMTk2IGluc2VydGlvbnMoKyksIDM2OCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29tbW9uLmMgYi9zcmMv YmluL3BzcWwvY29tbW9uLmMKaW5kZXggZGFhYmY2ZjEyYi4uYWRiOTE1ZTVj MiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1vbi5jCisrKyBiL3Ny Yy9iaW4vcHNxbC9jb21tb24uYwpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1 ZGUgInNldHRpbmdzLmgiCiAKIHN0YXRpYyBib29sIERlc2NyaWJlUXVlcnko Y29uc3QgY2hhciAqcXVlcnksIGRvdWJsZSAqZWxhcHNlZF9tc2VjKTsKLXN0 YXRpYyBib29sIEV4ZWNRdWVyeVVzaW5nQ3Vyc29yKGNvbnN0IGNoYXIgKnF1 ZXJ5LCBkb3VibGUgKmVsYXBzZWRfbXNlYyk7CiBzdGF0aWMgaW50CUV4ZWNR dWVyeUFuZFByb2Nlc3NSZXN1bHRzKGNvbnN0IGNoYXIgKnF1ZXJ5LAogCQkJ CQkJCQkJICAgZG91YmxlICplbGFwc2VkX21zZWMsCiAJCQkJCQkJCQkgICBi b29sICpzdnB0X2dvbmVfcCwKQEAgLTQwLDggKzM5LDYgQEAgc3RhdGljIGlu dAlFeGVjUXVlcnlBbmRQcm9jZXNzUmVzdWx0cyhjb25zdCBjaGFyICpxdWVy eSwKIAkJCQkJCQkJCSAgIGNvbnN0IHByaW50UXVlcnlPcHQgKm9wdCwKIAkJ CQkJCQkJCSAgIEZJTEUgKnByaW50UXVlcnlGb3V0KTsKIHN0YXRpYyBib29s IGNvbW1hbmRfbm9fYmVnaW4oY29uc3QgY2hhciAqcXVlcnkpOwotc3RhdGlj IGJvb2wgaXNfc2VsZWN0X2NvbW1hbmQoY29uc3QgY2hhciAqcXVlcnkpOwot CiAKIC8qCiAgKiBvcGVuUXVlcnlPdXRwdXRGaWxlIC0tLSBhdHRlbXB0IHRv IG9wZW4gYSBxdWVyeSBvdXRwdXQgZmlsZQpAQCAtMzczLDYgKzM3MCw3IEBA IEFjY2VwdFJlc3VsdChjb25zdCBQR3Jlc3VsdCAqcmVzdWx0LCBib29sIHNo b3dfZXJyb3IpCiAJCXsKIAkJCWNhc2UgUEdSRVNfQ09NTUFORF9PSzoKIAkJ CWNhc2UgUEdSRVNfVFVQTEVTX09LOgorCQkJY2FzZSBQR1JFU19UVVBMRVNf Q0hVTks6CiAJCQljYXNlIFBHUkVTX0VNUFRZX1FVRVJZOgogCQkJY2FzZSBQ R1JFU19DT1BZX0lOOgogCQkJY2FzZSBQR1JFU19DT1BZX09VVDoKQEAgLTEx MzEsMTYgKzExMjksMTAgQEAgU2VuZFF1ZXJ5KGNvbnN0IGNoYXIgKnF1ZXJ5 KQogCQkvKiBEZXNjcmliZSBxdWVyeSdzIHJlc3VsdCBjb2x1bW5zLCB3aXRo b3V0IGV4ZWN1dGluZyBpdCAqLwogCQlPSyA9IERlc2NyaWJlUXVlcnkocXVl cnksICZlbGFwc2VkX21zZWMpOwogCX0KLQllbHNlIGlmIChwc2V0LmZldGNo X2NvdW50IDw9IDAgfHwgcHNldC5nZXhlY19mbGFnIHx8Ci0JCQkgcHNldC5j cm9zc3RhYl9mbGFnIHx8ICFpc19zZWxlY3RfY29tbWFuZChxdWVyeSkpCi0J ewotCQkvKiBEZWZhdWx0IGZldGNoLWl0LWFsbC1hbmQtcHJpbnQgbW9kZSAq LwotCQlPSyA9IChFeGVjUXVlcnlBbmRQcm9jZXNzUmVzdWx0cyhxdWVyeSwg JmVsYXBzZWRfbXNlYywgJnN2cHRfZ29uZSwgZmFsc2UsIDAsIE5VTEwsIE5V TEwpID4gMCk7Ci0JfQogCWVsc2UKIAl7Ci0JCS8qIEZldGNoLWluLXNlZ21l bnRzIG1vZGUgKi8KLQkJT0sgPSBFeGVjUXVlcnlVc2luZ0N1cnNvcihxdWVy eSwgJmVsYXBzZWRfbXNlYyk7CisJCS8qIERlZmF1bHQgZmV0Y2gtYW5kLXBy aW50IG1vZGUgKi8KKwkJT0sgPSAoRXhlY1F1ZXJ5QW5kUHJvY2Vzc1Jlc3Vs dHMocXVlcnksICZlbGFwc2VkX21zZWMsICZzdnB0X2dvbmUsIGZhbHNlLCAw LCBOVUxMLCBOVUxMKSA+IDApOwogCX0KIAogCWlmICghT0sgJiYgcHNldC5l Y2hvID09IFBTUUxfRUNIT19FUlJPUlMpCkBAIC0xMzkyLDYgKzEzODQsNDcg QEAgRGVzY3JpYmVRdWVyeShjb25zdCBjaGFyICpxdWVyeSwgZG91YmxlICpl bGFwc2VkX21zZWMpCiAJcmV0dXJuIE9LOwogfQogCisvKgorICogQ2hlY2sg aWYgYW4gb3V0cHV0IHN0cmVhbSBmb3IgXGcgbmVlZHMgdG8gYmUgb3BlbmVk LCBhbmQgaWYKKyAqIHllcywgb3BlbiBpdC4KKyAqIFJldHVybiBmYWxzZSBp ZiBhbiBlcnJvciBvY2N1cnJlZCwgdHJ1ZSBvdGhlcndpc2UuCisgKi8KK3N0 YXRpYyBib29sCitTZXR1cEdPdXRwdXQoUEdyZXN1bHQgKnJlc3VsdCwgRklM RSAqKmdmaWxlX2ZvdXQsIGJvb2wgKmlzX3BpcGUpCit7CisJRXhlY1N0YXR1 c1R5cGUgc3RhdHVzID0gUFFyZXN1bHRTdGF0dXMocmVzdWx0KTsKKwlpZiAo cHNldC5nZm5hbWUgIT0gTlVMTCAmJgkJCS8qIHRoZXJlIGlzIGEgXGcgZmls ZSBvciBwcm9ncmFtICovCisJCSpnZmlsZV9mb3V0ID09IE5VTEwgJiYgICAg ICAgICAgIC8qIGFuZCBpdCdzIG5vdCBhbHJlYWR5IG9wZW5lZCAqLworCQko c3RhdHVzID09IFBHUkVTX1RVUExFU19PSyB8fAorCQkgc3RhdHVzID09IFBH UkVTX1RVUExFU19DSFVOSyB8fAorCQkgc3RhdHVzID09IFBHUkVTX0NPUFlf T1VUKSkKKwl7CisJCWlmIChvcGVuUXVlcnlPdXRwdXRGaWxlKHBzZXQuZ2Zu YW1lLCBnZmlsZV9mb3V0LCBpc19waXBlKSkKKwkJeworCQkJaWYgKGlzX3Bp cGUpCisJCQkJZGlzYWJsZV9zaWdwaXBlX3RyYXAoKTsKKwkJfQorCQllbHNl CisJCQlyZXR1cm4gZmFsc2U7CisJfQorCXJldHVybiB0cnVlOworfQorCitz dGF0aWMgdm9pZAorQ2xvc2VHT3V0cHV0KEZJTEUgKmdmaWxlX2ZvdXQsIGJv b2wgaXNfcGlwZSkKK3sKKwkvKiBjbG9zZSBcZyBmaWxlIGlmIHdlIG9wZW5l ZCBpdCAqLworCWlmIChnZmlsZV9mb3V0KQorCXsKKwkJaWYgKGlzX3BpcGUp CisJCXsKKwkJCVNldFNoZWxsUmVzdWx0VmFyaWFibGVzKHBjbG9zZShnZmls ZV9mb3V0KSk7CisJCQlyZXN0b3JlX3NpZ3BpcGVfdHJhcCgpOworCQl9CisJ CWVsc2UKKwkJCWZjbG9zZShnZmlsZV9mb3V0KTsKKwl9Cit9CiAKIC8qCiAg KiBFeGVjUXVlcnlBbmRQcm9jZXNzUmVzdWx0czogdXRpbGl0eSBmdW5jdGlv biBmb3IgdXNlIGJ5IFNlbmRRdWVyeSgpCkBAIC0xNDI0LDEwICsxNDU3LDE2 IEBAIEV4ZWNRdWVyeUFuZFByb2Nlc3NSZXN1bHRzKGNvbnN0IGNoYXIgKnF1 ZXJ5LAogCWJvb2wJCXJldHVybl9lYXJseSA9IGZhbHNlOwogCWluc3RyX3Rp bWUJYmVmb3JlLAogCQkJCWFmdGVyOworCWludCBmZXRjaF9jb3VudCA9IHBz ZXQuZmV0Y2hfY291bnQ7CiAJUEdyZXN1bHQgICAqcmVzdWx0OworCiAJRklM RQkgICAqZ2ZpbGVfZm91dCA9IE5VTEw7CiAJYm9vbAkJZ2ZpbGVfaXNfcGlw ZSA9IGZhbHNlOwogCisJaW50NjQJCXRvdGFsX3R1cGxlcyA9IDA7CisJaW50 CQkJZmx1c2hfZXJyb3IgPSAwOworCWJvb2wJCWlzX3BhZ2VyID0gZmFsc2U7 CisKIAlpZiAodGltaW5nKQogCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGJl Zm9yZSk7CiAJZWxzZQpAQCAtMTQ1MCw2ICsxNDg5LDI5IEBAIEV4ZWNRdWVy eUFuZFByb2Nlc3NSZXN1bHRzKGNvbnN0IGNoYXIgKnF1ZXJ5LAogCQlyZXR1 cm4gLTE7CiAJfQogCisJLyoKKwkgKiBJZiBGRVRDSF9DT1VOVCBpcyBzZXQg YW5kIHRoZSBjb250ZXh0IGFsbG93cyBpdCwgdXNlIHRoZSBzaW5nbGUgcm93 CisJICogbW9kZSB0byBmZXRjaCByZXN1bHRzIGFuZCBoYXZlIG5vIG1vcmUg dGhhbiBGRVRDSF9DT1VOVCByb3dzIGluCisJICogbWVtb3J5LgorCSAqLwor CWlmIChmZXRjaF9jb3VudCA+IDAgJiYgIXBzZXQuY3Jvc3N0YWJfZmxhZyAm JiAhcHNldC5nZXhlY19mbGFnICYmICFpc193YXRjaAorCQkmJiAhcHNldC5n c2V0X3ByZWZpeCAmJiBwc2V0LnNob3dfYWxsX3Jlc3VsdHMpCisJeworCQkv KgorCQkgKiBUaGUgcm93LWJ5LWNodW5rcyBmZXRjaCBpcyBub3QgZW5hYmxl ZCB3aGVuIFNIT1dfQUxMX1JFU1VMVFMgaXMgZmFsc2UsCisJCSAqIHNpbmNl IHdlIHdvdWxkIG5lZWQgdG8gYWNjdW11bGF0ZSBhbGwgcm93cyBiZWZvcmUg a25vd2luZworCQkgKiB3aGV0aGVyIHRoZXkgbmVlZCB0byBiZSBkaXNjYXJk ZWQgb3IgZGlzcGxheWVkLCB3aGljaCBjb250cmFkaWN0cworCQkgKiBGRVRD SF9DT1VOVC4KKwkJICovCisJCWlmICghUFFzZXRDaHVua2VkUm93c01vZGUo cHNldC5kYiwgZmV0Y2hfY291bnQpKQorCQl7CisJCQlwZ19sb2dfd2Fybmlu ZygiZmV0Y2hpbmcgcmVzdWx0cyBpbiBjaHVua3MgbW9kZSBpcyB1bmF2YWls YWJsZSIpOworCQkJZmV0Y2hfY291bnQgPSAwOworCQl9CisJfQorCWVsc2UK KwkJZmV0Y2hfY291bnQgPSAwOwkJLyogZmV0Y2ggb25lIHJlc3VsdHNldCBw ZXIgcXVlcnkgKi8KKwogCS8qCiAJICogSWYgU0lHSU5UIGlzIHNlbnQgd2hp bGUgdGhlIHF1ZXJ5IGlzIHByb2Nlc3NpbmcsIHRoZSBpbnRlcnJ1cHQgd2ls bCBiZQogCSAqIGNvbnN1bWVkLiAgVGhlIHVzZXIncyBpbnRlbnRpb24sIHRo b3VnaCwgaXMgdG8gY2FuY2VsIHRoZSBlbnRpcmUgd2F0Y2gKQEAgLTE0NzMs NiArMTUzNSw4IEBAIEV4ZWNRdWVyeUFuZFByb2Nlc3NSZXN1bHRzKGNvbnN0 IGNoYXIgKnF1ZXJ5LAogCQlFeGVjU3RhdHVzVHlwZSByZXN1bHRfc3RhdHVz OwogCQlQR3Jlc3VsdCAgICpuZXh0X3Jlc3VsdDsKIAkJYm9vbAkJbGFzdDsK KwkJLyogd2hldGhlciB0aGUgb3V0cHV0IHN0YXJ0cyBiZWZvcmUgcmVzdWx0 cyBhcmUgZnVsbHkgZmV0Y2hlZCAqLworCQlib29sCQlwYXJ0aWFsX2Rpc3Bs YXkgPSBmYWxzZTsKIAogCQlpZiAoIUFjY2VwdFJlc3VsdChyZXN1bHQsIGZh bHNlKSkKIAkJewpAQCAtMTU2OCwyMCArMTYzMiw5IEBAIEV4ZWNRdWVyeUFu ZFByb2Nlc3NSZXN1bHRzKGNvbnN0IGNoYXIgKnF1ZXJ5LAogCQkJCX0KIAkJ CQllbHNlIGlmIChwc2V0LmdmbmFtZSkKIAkJCQl7Ci0JCQkJCS8qIHNlbmQg dG8gXGcgZmlsZSwgd2hpY2ggd2UgbWF5IGhhdmUgb3BlbmVkIGFscmVhZHkg Ki8KLQkJCQkJaWYgKGdmaWxlX2ZvdXQgPT0gTlVMTCkKLQkJCQkJewotCQkJ CQkJaWYgKG9wZW5RdWVyeU91dHB1dEZpbGUocHNldC5nZm5hbWUsCi0JCQkJ CQkJCQkJCQkmZ2ZpbGVfZm91dCwgJmdmaWxlX2lzX3BpcGUpKQotCQkJCQkJ ewotCQkJCQkJCWlmIChnZmlsZV9pc19waXBlKQotCQkJCQkJCQlkaXNhYmxl X3NpZ3BpcGVfdHJhcCgpOwotCQkJCQkJCWNvcHlfc3RyZWFtID0gZ2ZpbGVf Zm91dDsKLQkJCQkJCX0KLQkJCQkJCWVsc2UKLQkJCQkJCQlzdWNjZXNzID0g ZmFsc2U7Ci0JCQkJCX0KLQkJCQkJZWxzZQorCQkJCQkvKiBDT1BZIGZvbGxv d2VkIGJ5IFxnIGZpbGVuYW1lIG9yIFxnIHxwcm9ncmFtICovCisJCQkJCXN1 Y2Nlc3MgPSBTZXR1cEdPdXRwdXQocmVzdWx0LCAmZ2ZpbGVfZm91dCwgJmdm aWxlX2lzX3BpcGUpOworCQkJCQlpZiAoc3VjY2VzcykKIAkJCQkJCWNvcHlf c3RyZWFtID0gZ2ZpbGVfZm91dDsKIAkJCQl9CiAJCQkJZWxzZQpAQCAtMTU5 OSw2ICsxNjUyLDkwIEBAIEV4ZWNRdWVyeUFuZFByb2Nlc3NSZXN1bHRzKGNv bnN0IGNoYXIgKnF1ZXJ5LAogCQkJc3VjY2VzcyAmPSBIYW5kbGVDb3B5UmVz dWx0KCZyZXN1bHQsIGNvcHlfc3RyZWFtKTsKIAkJfQogCisJCWlmIChmZXRj aF9jb3VudCA+IDAgJiYgcmVzdWx0X3N0YXR1cyA9PSBQR1JFU19UVVBMRVNf Q0hVTkspCisJCXsKKwkJCUZJTEUJICAgKnR1cGxlc19mb3V0ID0gcHJpbnRR dWVyeUZvdXQgPyBwcmludFF1ZXJ5Rm91dCA6IHN0ZG91dDsKKwkJCXByaW50 UXVlcnlPcHQgbXlfcG9wdCA9IHBzZXQucG9wdDsKKworCQkJdG90YWxfdHVw bGVzID0gMDsKKwkJCXBhcnRpYWxfZGlzcGxheSA9IHRydWU7CisKKwkJCXN1 Y2Nlc3MgPSBTZXR1cEdPdXRwdXQocmVzdWx0LCAmZ2ZpbGVfZm91dCwgJmdm aWxlX2lzX3BpcGUpOworCQkJaWYgKGdmaWxlX2ZvdXQpCisJCQkJdHVwbGVz X2ZvdXQgPSBnZmlsZV9mb3V0OworCisJCQkvKiBpbml0aWFsaXplIHByaW50 IG9wdGlvbnMgZm9yIHBhcnRpYWwgdGFibGUgb3V0cHV0ICovCisJCQlteV9w b3B0LnRvcHQuc3RhcnRfdGFibGUgPSB0cnVlOworCQkJbXlfcG9wdC50b3B0 LnN0b3BfdGFibGUgPSBmYWxzZTsKKwkJCW15X3BvcHQudG9wdC5wcmlvcl9y ZWNvcmRzID0gMDsKKworCQkJd2hpbGUgKHN1Y2Nlc3MpCisJCQl7CisJCQkJ LyogcGFnZXI6IG9wZW4gYXQgbW9zdCBvbmNlIHBlciByZXN1bHRzZXQgKi8K KwkJCQlpZiAodHVwbGVzX2ZvdXQgPT0gc3Rkb3V0ICYmICFpc19wYWdlcikK KwkJCQl7CisJCQkJCXR1cGxlc19mb3V0ID0gUGFnZU91dHB1dChJTlRfTUFY LCAmKG15X3BvcHQudG9wdCkpOworCQkJCQlpc19wYWdlciA9IHRydWU7CisJ CQkJfQorCQkJCS8qIGRpc3BsYXkgdGhlIGN1cnJlbnQgY2h1bmsgb2YgcmVz dWx0cyB1bmxlc3MgdGhlIG91dHB1dCBzdHJlYW0gaXMgbm90IHdvcmtpbmcg Ki8KKwkJCQlpZiAoIWZsdXNoX2Vycm9yKQorCQkJCXsKKwkJCQkJcHJpbnRR dWVyeShyZXN1bHQsICZteV9wb3B0LCB0dXBsZXNfZm91dCwgaXNfcGFnZXIs IHBzZXQubG9nZmlsZSk7CisJCQkJCWZsdXNoX2Vycm9yID0gZmZsdXNoKHR1 cGxlc19mb3V0KTsKKwkJCQl9CisKKwkJCQkvKiBhZnRlciB0aGUgZmlyc3Qg cmVzdWx0IHNldCwgZGlzYWxsb3cgaGVhZGVyIGRlY29yYXRpb24gKi8KKwkJ CQlteV9wb3B0LnRvcHQuc3RhcnRfdGFibGUgPSBmYWxzZTsKKwkJCQlteV9w b3B0LnRvcHQucHJpb3JfcmVjb3JkcyArPSBQUW50dXBsZXMocmVzdWx0KTsK KwkJCQl0b3RhbF90dXBsZXMgKz0gUFFudHVwbGVzKHJlc3VsdCk7CisKKwkJ CQlDbGVhck9yU2F2ZVJlc3VsdChyZXN1bHQpOworCisJCQkJcmVzdWx0ID0g UFFnZXRSZXN1bHQocHNldC5kYik7CisJCQkJaWYgKHJlc3VsdCA9PSBOVUxM KQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogRXJyb3IuIFdlIGV4cGVjdCBh IFBHUkVTX1RVUExFU19PSyByZXN1bHQgd2l0aAorCQkJCQkgKiB6ZXJvIHR1 cGxlIGluIGl0IHRvIGZpbmlzaCB0aGUgZmV0Y2ggc2VxdWVuY2UuCisJCQkJ CSAqLworCQkJCQlzdWNjZXNzID0gZmFsc2U7CisJCQkJCWlmIChpc19wYWdl cikKKwkJCQkJCUNsb3NlUGFnZXIodHVwbGVzX2ZvdXQpOworCQkJCQlicmVh azsKKwkJCQl9CisJCQkJZWxzZSBpZiAoUFFyZXN1bHRTdGF0dXMocmVzdWx0 KSA9PSBQR1JFU19UVVBMRVNfT0spCisJCQkJeworCQkJCQkvKgorCQkJCQkg KiBUaGUgbGFzdCByb3cgaGFzIGJlZW4gcmVhZC4gRGlzcGxheSB0aGUgZm9v dGVyLgorCQkJCQkgKi8KKwkJCQkJbXlfcG9wdC50b3B0LnN0b3BfdGFibGUg PSB0cnVlOworCQkJCQlwcmludFF1ZXJ5KHJlc3VsdCwgJm15X3BvcHQsIHR1 cGxlc19mb3V0LCBpc19wYWdlciwgcHNldC5sb2dmaWxlKTsKKwkJCQkJdG90 YWxfdHVwbGVzICs9IFBRbnR1cGxlcyhyZXN1bHQpOworCisJCQkJCWlmIChp c19wYWdlcikKKwkJCQkJCUNsb3NlUGFnZXIodHVwbGVzX2ZvdXQpOworCQkJ CQlDbGVhck9yU2F2ZVJlc3VsdChyZXN1bHQpOworCQkJCQlyZXN1bHQgPSBO VUxMOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJZWxzZSBpZiAoUFFyZXN1 bHRTdGF0dXMocmVzdWx0KSAhPSBQR1JFU19UVVBMRVNfQ0hVTkspCisJCQkJ eworCQkJCQkvKgorCQkJCQkgKiBFcnJvci4gV2UgZXhwZWN0IGVpdGhlciBQ R1JFU19UVVBMRVNfQ0hVTksgb3IKKwkJCQkJICogUEdSRVNfVFVQTEVTX09L LgorCQkJCQkgKi8KKwkJCQkJaWYgKGlzX3BhZ2VyKQorCQkJCQkJQ2xvc2VQ YWdlcih0dXBsZXNfZm91dCk7CisJCQkJCXN1Y2Nlc3MgPSBmYWxzZTsKKwkJ CQkJQWNjZXB0UmVzdWx0KHJlc3VsdCwgdHJ1ZSk7IC8qIGRpc3BsYXkgZXJy b3Igd2hlbmV2ZXIgYXBwcm9wcmlhdGUgKi8KKwkJCQkJU2V0UmVzdWx0VmFy aWFibGVzKHJlc3VsdCwgc3VjY2Vzcyk7CisJCQkJCWJyZWFrOworCQkJCX0K KwkJCX0KKwkJfQorCQllbHNlCisJCQlwYXJ0aWFsX2Rpc3BsYXkgPSBmYWxz ZTsKKwogCQkvKgogCQkgKiBDaGVjayBQUWdldFJlc3VsdCgpIGFnYWluLiAg SW4gdGhlIHR5cGljYWwgY2FzZSBvZiBhIHNpbmdsZS1jb21tYW5kCiAJCSAq IHN0cmluZywgaXQgd2lsbCByZXR1cm4gTlVMTC4gIE90aGVyd2lzZSwgd2Un bGwgaGF2ZSBvdGhlciByZXN1bHRzCkBAIC0xNjI3LDcgKzE3NjQsNyBAQCBF eGVjUXVlcnlBbmRQcm9jZXNzUmVzdWx0cyhjb25zdCBjaGFyICpxdWVyeSwK IAkJfQogCiAJCS8qIHRoaXMgbWF5IG9yIG1heSBub3QgcHJpbnQgc29tZXRo aW5nIGRlcGVuZGluZyBvbiBzZXR0aW5ncyAqLwotCQlpZiAocmVzdWx0ICE9 IE5VTEwpCisJCWlmIChyZXN1bHQgIT0gTlVMTCAmJiAhcGFydGlhbF9kaXNw bGF5KQogCQl7CiAJCQkvKgogCQkJICogSWYgcmVzdWx0cyBuZWVkIHRvIGJl IHByaW50ZWQgaW50byB0aGUgZmlsZSBzcGVjaWZpZWQgYnkgXGcsCkBAIC0x NjM2LDMyICsxNzczLDMzIEBAIEV4ZWNRdWVyeUFuZFByb2Nlc3NSZXN1bHRz KGNvbnN0IGNoYXIgKnF1ZXJ5LAogCQkJICogdHVwbGUgb3V0cHV0LCBidXQg aXQncyBzdGlsbCB1c2VkIGZvciBzdGF0dXMgb3V0cHV0LgogCQkJICovCiAJ CQlGSUxFCSAgICp0dXBsZXNfZm91dCA9IHByaW50UXVlcnlGb3V0OwotCQkJ Ym9vbAkJZG9fcHJpbnQgPSB0cnVlOwotCi0JCQlpZiAoUFFyZXN1bHRTdGF0 dXMocmVzdWx0KSA9PSBQR1JFU19UVVBMRVNfT0sgJiYKLQkJCQlwc2V0Lmdm bmFtZSkKLQkJCXsKLQkJCQlpZiAoZ2ZpbGVfZm91dCA9PSBOVUxMKQotCQkJ CXsKLQkJCQkJaWYgKG9wZW5RdWVyeU91dHB1dEZpbGUocHNldC5nZm5hbWUs Ci0JCQkJCQkJCQkJCSZnZmlsZV9mb3V0LCAmZ2ZpbGVfaXNfcGlwZSkpCi0J CQkJCXsKLQkJCQkJCWlmIChnZmlsZV9pc19waXBlKQotCQkJCQkJCWRpc2Fi bGVfc2lncGlwZV90cmFwKCk7Ci0JCQkJCX0KLQkJCQkJZWxzZQotCQkJCQkJ c3VjY2VzcyA9IGRvX3ByaW50ID0gZmFsc2U7Ci0JCQkJfQorCQkJc3VjY2Vz cyA9IFNldHVwR091dHB1dChyZXN1bHQsICZnZmlsZV9mb3V0LCAmZ2ZpbGVf aXNfcGlwZSk7CisJCQlpZiAoZ2ZpbGVfZm91dCkKIAkJCQl0dXBsZXNfZm91 dCA9IGdmaWxlX2ZvdXQ7Ci0JCQl9Ci0JCQlpZiAoZG9fcHJpbnQpCisJCQlp ZiAoc3VjY2VzcykKIAkJCQlzdWNjZXNzICY9IFByaW50UXVlcnlSZXN1bHQo cmVzdWx0LCBsYXN0LCBvcHQsCiAJCQkJCQkJCQkJCXR1cGxlc19mb3V0LCBw cmludFF1ZXJ5Rm91dCk7CiAJCX0KIAogCQkvKiBzZXQgdmFyaWFibGVzIGZy b20gbGFzdCByZXN1bHQgKi8KIAkJaWYgKCFpc193YXRjaCAmJiBsYXN0KQot CQkJU2V0UmVzdWx0VmFyaWFibGVzKHJlc3VsdCwgc3VjY2Vzcyk7CisJCXsK KwkJCWlmICghcGFydGlhbF9kaXNwbGF5KQorCQkJCVNldFJlc3VsdFZhcmlh YmxlcyhyZXN1bHQsIHN1Y2Nlc3MpOworCQkJZWxzZSBpZiAoc3VjY2VzcykK KwkJCXsKKwkJCQkvKgorCQkJCSAqIGZha2UgU2V0UmVzdWx0VmFyaWFibGVz KCkuIElmIGFuIGVycm9yIG9jY3VycmVkIHdoZW4KKwkJCQkgKiByZXRyaWV2 aW5nIGNodW5rcywgdGhlc2UgdmFyaWFibGVzIGhhdmUgYmVlbiBzZXQgYWxy ZWFkeS4KKwkJCQkgKi8KKwkJCQljaGFyCQlidWZbMzJdOworCisJCQkJU2V0 VmFyaWFibGUocHNldC52YXJzLCAiRVJST1IiLCAiZmFsc2UiKTsKKwkJCQlT ZXRWYXJpYWJsZShwc2V0LnZhcnMsICJTUUxTVEFURSIsICIwMDAwMCIpOwor CQkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksIElOVDY0X0ZPUk1BVCwg dG90YWxfdHVwbGVzKTsKKwkJCQlTZXRWYXJpYWJsZShwc2V0LnZhcnMsICJS T1dfQ09VTlQiLCBidWYpOworCQkJfQorCQl9CiAKIAkJQ2xlYXJPclNhdmVS ZXN1bHQocmVzdWx0KTsKIAkJcmVzdWx0ID0gbmV4dF9yZXN1bHQ7CkBAIC0x NjczLDE3ICsxODExLDcgQEAgRXhlY1F1ZXJ5QW5kUHJvY2Vzc1Jlc3VsdHMo Y29uc3QgY2hhciAqcXVlcnksCiAJCX0KIAl9CiAKLQkvKiBjbG9zZSBcZyBm aWxlIGlmIHdlIG9wZW5lZCBpdCAqLwotCWlmIChnZmlsZV9mb3V0KQotCXsK LQkJaWYgKGdmaWxlX2lzX3BpcGUpCi0JCXsKLQkJCVNldFNoZWxsUmVzdWx0 VmFyaWFibGVzKHBjbG9zZShnZmlsZV9mb3V0KSk7Ci0JCQlyZXN0b3JlX3Np Z3BpcGVfdHJhcCgpOwotCQl9Ci0JCWVsc2UKLQkJCWZjbG9zZShnZmlsZV9m b3V0KTsKLQl9CisJQ2xvc2VHT3V0cHV0KGdmaWxlX2ZvdXQsIGdmaWxlX2lz X3BpcGUpOwogCiAJLyogbWF5IG5lZWQgdGhpcyB0byByZWNvdmVyIGZyb20g Y29ubiBsb3NzIGR1cmluZyBDT1BZICovCiAJaWYgKCFDaGVja0Nvbm5lY3Rp b24oKSkKQEAgLTE2OTYsMjc0ICsxODI0LDYgQEAgRXhlY1F1ZXJ5QW5kUHJv Y2Vzc1Jlc3VsdHMoY29uc3QgY2hhciAqcXVlcnksCiB9CiAKIAotLyoKLSAq IEV4ZWNRdWVyeVVzaW5nQ3Vyc29yOiBydW4gYSBTRUxFQ1QtbGlrZSBxdWVy eSB1c2luZyBhIGN1cnNvcgotICoKLSAqIFRoaXMgZmVhdHVyZSBhbGxvd3Mg cmVzdWx0IHNldHMgbGFyZ2VyIHRoYW4gUkFNIHRvIGJlIGRlYWx0IHdpdGgu Ci0gKgotICogUmV0dXJucyB0cnVlIGlmIHRoZSBxdWVyeSBleGVjdXRlZCBz dWNjZXNzZnVsbHksIGZhbHNlIG90aGVyd2lzZS4KLSAqCi0gKiBJZiBwc2V0 LnRpbWluZyBpcyBvbiwgdG90YWwgcXVlcnkgdGltZSAoZXhjbHVzaXZlIG9m IHJlc3VsdC1wcmludGluZykgaXMKLSAqIHN0b3JlZCBpbnRvICplbGFwc2Vk X21zZWMuCi0gKi8KLXN0YXRpYyBib29sCi1FeGVjUXVlcnlVc2luZ0N1cnNv cihjb25zdCBjaGFyICpxdWVyeSwgZG91YmxlICplbGFwc2VkX21zZWMpCi17 Ci0JYm9vbAkJT0sgPSB0cnVlOwotCVBHcmVzdWx0ICAgKnJlc3VsdDsKLQlQ UUV4cEJ1ZmZlckRhdGEgYnVmOwotCXByaW50UXVlcnlPcHQgbXlfcG9wdCA9 IHBzZXQucG9wdDsKLQlib29sCQl0aW1pbmcgPSBwc2V0LnRpbWluZzsKLQlG SUxFCSAgICpmb3V0OwotCWJvb2wJCWlzX3BpcGU7Ci0JYm9vbAkJaXNfcGFn ZXIgPSBmYWxzZTsKLQlib29sCQlzdGFydGVkX3R4biA9IGZhbHNlOwotCWlu dDY0CQl0b3RhbF90dXBsZXMgPSAwOwotCWludAkJCW50dXBsZXM7Ci0JaW50 CQkJZmV0Y2hfY291bnQ7Ci0JY2hhcgkJZmV0Y2hfY21kWzY0XTsKLQlpbnN0 cl90aW1lCWJlZm9yZSwKLQkJCQlhZnRlcjsKLQlpbnQJCQlmbHVzaF9lcnJv cjsKLQotCSplbGFwc2VkX21zZWMgPSAwOwotCi0JLyogaW5pdGlhbGl6ZSBw cmludCBvcHRpb25zIGZvciBwYXJ0aWFsIHRhYmxlIG91dHB1dCAqLwotCW15 X3BvcHQudG9wdC5zdGFydF90YWJsZSA9IHRydWU7Ci0JbXlfcG9wdC50b3B0 LnN0b3BfdGFibGUgPSBmYWxzZTsKLQlteV9wb3B0LnRvcHQucHJpb3JfcmVj b3JkcyA9IDA7Ci0KLQlpZiAodGltaW5nKQotCQlJTlNUUl9USU1FX1NFVF9D VVJSRU5UKGJlZm9yZSk7Ci0JZWxzZQotCQlJTlNUUl9USU1FX1NFVF9aRVJP KGJlZm9yZSk7Ci0KLQkvKiBpZiB3ZSdyZSBub3QgaW4gYSB0cmFuc2FjdGlv biwgc3RhcnQgb25lICovCi0JaWYgKFBRdHJhbnNhY3Rpb25TdGF0dXMocHNl dC5kYikgPT0gUFFUUkFOU19JRExFKQotCXsKLQkJcmVzdWx0ID0gUFFleGVj KHBzZXQuZGIsICJCRUdJTiIpOwotCQlPSyA9IEFjY2VwdFJlc3VsdChyZXN1 bHQsIHRydWUpICYmCi0JCQkoUFFyZXN1bHRTdGF0dXMocmVzdWx0KSA9PSBQ R1JFU19DT01NQU5EX09LKTsKLQkJQ2xlYXJPclNhdmVSZXN1bHQocmVzdWx0 KTsKLQkJaWYgKCFPSykKLQkJCXJldHVybiBmYWxzZTsKLQkJc3RhcnRlZF90 eG4gPSB0cnVlOwotCX0KLQotCS8qIFNlbmQgREVDTEFSRSBDVVJTT1IgKi8K LQlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7Ci0JYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwgIkRFQ0xBUkUgX3BzcWxfY3Vyc29yIE5PIFNDUk9MTCBDVVJTT1Ig Rk9SXG4lcyIsCi0JCQkJCSAgcXVlcnkpOwotCi0JcmVzdWx0ID0gUFFleGVj KHBzZXQuZGIsIGJ1Zi5kYXRhKTsKLQlPSyA9IEFjY2VwdFJlc3VsdChyZXN1 bHQsIHRydWUpICYmCi0JCShQUXJlc3VsdFN0YXR1cyhyZXN1bHQpID09IFBH UkVTX0NPTU1BTkRfT0spOwotCWlmICghT0spCi0JCVNldFJlc3VsdFZhcmlh YmxlcyhyZXN1bHQsIE9LKTsKLQlDbGVhck9yU2F2ZVJlc3VsdChyZXN1bHQp OwotCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKLQlpZiAoIU9LKQotCQlnb3Rv IGNsZWFudXA7Ci0KLQlpZiAodGltaW5nKQotCXsKLQkJSU5TVFJfVElNRV9T RVRfQ1VSUkVOVChhZnRlcik7Ci0JCUlOU1RSX1RJTUVfU1VCVFJBQ1QoYWZ0 ZXIsIGJlZm9yZSk7Ci0JCSplbGFwc2VkX21zZWMgKz0gSU5TVFJfVElNRV9H RVRfTUlMTElTRUMoYWZ0ZXIpOwotCX0KLQotCS8qCi0JICogSW4gXGdzZXQg bW9kZSwgd2UgZm9yY2UgdGhlIGZldGNoIGNvdW50IHRvIGJlIDIsIHNvIHRo YXQgd2Ugd2lsbCB0aHJvdwotCSAqIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBp ZiB0aGUgcXVlcnkgcmV0dXJucyBtb3JlIHRoYW4gb25lIHJvdy4KLQkgKi8K LQlpZiAocHNldC5nc2V0X3ByZWZpeCkKLQkJZmV0Y2hfY291bnQgPSAyOwot CWVsc2UKLQkJZmV0Y2hfY291bnQgPSBwc2V0LmZldGNoX2NvdW50OwotCi0J c25wcmludGYoZmV0Y2hfY21kLCBzaXplb2YoZmV0Y2hfY21kKSwKLQkJCSAi RkVUQ0ggRk9SV0FSRCAlZCBGUk9NIF9wc3FsX2N1cnNvciIsCi0JCQkgZmV0 Y2hfY291bnQpOwotCi0JLyogcHJlcGFyZSB0byB3cml0ZSBvdXRwdXQgdG8g XGcgYXJndW1lbnQsIGlmIGFueSAqLwotCWlmIChwc2V0LmdmbmFtZSkKLQl7 Ci0JCWlmICghb3BlblF1ZXJ5T3V0cHV0RmlsZShwc2V0LmdmbmFtZSwgJmZv dXQsICZpc19waXBlKSkKLQkJewotCQkJT0sgPSBmYWxzZTsKLQkJCWdvdG8g Y2xlYW51cDsKLQkJfQotCQlpZiAoaXNfcGlwZSkKLQkJCWRpc2FibGVfc2ln cGlwZV90cmFwKCk7Ci0JfQotCWVsc2UKLQl7Ci0JCWZvdXQgPSBwc2V0LnF1 ZXJ5Rm91dDsKLQkJaXNfcGlwZSA9IGZhbHNlOwkJLyogZG9lc24ndCBtYXR0 ZXIgKi8KLQl9Ci0KLQkvKiBjbGVhciBhbnkgcHJlLWV4aXN0aW5nIGVycm9y IGluZGljYXRpb24gb24gdGhlIG91dHB1dCBzdHJlYW0gKi8KLQljbGVhcmVy cihmb3V0KTsKLQotCWZvciAoOzspCi0JewotCQlpZiAodGltaW5nKQotCQkJ SU5TVFJfVElNRV9TRVRfQ1VSUkVOVChiZWZvcmUpOwotCi0JCS8qIGdldCBm ZXRjaF9jb3VudCB0dXBsZXMgYXQgYSB0aW1lICovCi0JCXJlc3VsdCA9IFBR ZXhlYyhwc2V0LmRiLCBmZXRjaF9jbWQpOwotCi0JCWlmICh0aW1pbmcpCi0J CXsKLQkJCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoYWZ0ZXIpOwotCQkJSU5T VFJfVElNRV9TVUJUUkFDVChhZnRlciwgYmVmb3JlKTsKLQkJCSplbGFwc2Vk X21zZWMgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYWZ0ZXIpOwotCQl9 Ci0KLQkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlc3VsdCkgIT0gUEdSRVNfVFVQ TEVTX09LKQotCQl7Ci0JCQkvKiBzaHV0IGRvd24gcGFnZXIgYmVmb3JlIHBy aW50aW5nIGVycm9yIG1lc3NhZ2UgKi8KLQkJCWlmIChpc19wYWdlcikKLQkJ CXsKLQkJCQlDbG9zZVBhZ2VyKGZvdXQpOwotCQkJCWlzX3BhZ2VyID0gZmFs c2U7Ci0JCQl9Ci0KLQkJCU9LID0gQWNjZXB0UmVzdWx0KHJlc3VsdCwgdHJ1 ZSk7Ci0JCQlBc3NlcnQoIU9LKTsKLQkJCVNldFJlc3VsdFZhcmlhYmxlcyhy ZXN1bHQsIE9LKTsKLQkJCUNsZWFyT3JTYXZlUmVzdWx0KHJlc3VsdCk7Ci0J CQlicmVhazsKLQkJfQotCi0JCWlmIChwc2V0LmdzZXRfcHJlZml4KQotCQl7 Ci0JCQkvKiBTdG9yZVF1ZXJ5VHVwbGUgd2lsbCBjb21wbGFpbiBpZiBub3Qg ZXhhY3RseSBvbmUgcm93ICovCi0JCQlPSyA9IFN0b3JlUXVlcnlUdXBsZShy ZXN1bHQpOwotCQkJQ2xlYXJPclNhdmVSZXN1bHQocmVzdWx0KTsKLQkJCWJy ZWFrOwotCQl9Ci0KLQkJLyoKLQkJICogTm90ZSB3ZSBkbyBub3QgZGVhbCB3 aXRoIFxnZGVzYywgXGdleGVjIG9yIFxjcm9zc3RhYnZpZXcgbW9kZXMgaGVy ZQotCQkgKi8KLQotCQludHVwbGVzID0gUFFudHVwbGVzKHJlc3VsdCk7Ci0J CXRvdGFsX3R1cGxlcyArPSBudHVwbGVzOwotCi0JCWlmIChudHVwbGVzIDwg ZmV0Y2hfY291bnQpCi0JCXsKLQkJCS8qIHRoaXMgaXMgdGhlIGxhc3QgcmVz dWx0IHNldCwgc28gYWxsb3cgZm9vdGVyIGRlY29yYXRpb24gKi8KLQkJCW15 X3BvcHQudG9wdC5zdG9wX3RhYmxlID0gdHJ1ZTsKLQkJfQotCQllbHNlIGlm IChmb3V0ID09IHN0ZG91dCAmJiAhaXNfcGFnZXIpCi0JCXsKLQkJCS8qCi0J CQkgKiBJZiBxdWVyeSByZXF1aXJlcyBtdWx0aXBsZSByZXN1bHQgc2V0cywg aGFjayB0byBlbnN1cmUgdGhhdAotCQkJICogb25seSBvbmUgcGFnZXIgaW5z dGFuY2UgaXMgdXNlZCBmb3IgdGhlIHdob2xlIG1lc3MKLQkJCSAqLwotCQkJ Zm91dCA9IFBhZ2VPdXRwdXQoSU5UX01BWCwgJihteV9wb3B0LnRvcHQpKTsK LQkJCWlzX3BhZ2VyID0gdHJ1ZTsKLQkJfQotCi0JCXByaW50UXVlcnkocmVz dWx0LCAmbXlfcG9wdCwgZm91dCwgaXNfcGFnZXIsIHBzZXQubG9nZmlsZSk7 Ci0KLQkJQ2xlYXJPclNhdmVSZXN1bHQocmVzdWx0KTsKLQotCQkvKiBhZnRl ciB0aGUgZmlyc3QgcmVzdWx0IHNldCwgZGlzYWxsb3cgaGVhZGVyIGRlY29y YXRpb24gKi8KLQkJbXlfcG9wdC50b3B0LnN0YXJ0X3RhYmxlID0gZmFsc2U7 Ci0JCW15X3BvcHQudG9wdC5wcmlvcl9yZWNvcmRzICs9IG50dXBsZXM7Ci0K LQkJLyoKLQkJICogTWFrZSBzdXJlIHRvIGZsdXNoIHRoZSBvdXRwdXQgc3Ry ZWFtLCBzbyBpbnRlcm1lZGlhdGUgcmVzdWx0cyBhcmUKLQkJICogdmlzaWJs ZSB0byB0aGUgY2xpZW50IGltbWVkaWF0ZWx5LiAgV2UgY2hlY2sgdGhlIHJl c3VsdHMgYmVjYXVzZSBpZgotCQkgKiB0aGUgcGFnZXIgZGllcy9leGl0cy9l dGMsIHRoZXJlJ3Mgbm8gc2Vuc2UgdGhyb3dpbmcgbW9yZSBkYXRhIGF0Ci0J CSAqIGl0LgotCQkgKi8KLQkJZmx1c2hfZXJyb3IgPSBmZmx1c2goZm91dCk7 Ci0KLQkJLyoKLQkJICogQ2hlY2sgaWYgd2UgYXJlIGF0IHRoZSBlbmQsIGlm IGEgY2FuY2VsIHdhcyBwcmVzc2VkLCBvciBpZiB0aGVyZQotCQkgKiB3ZXJl IGFueSBlcnJvcnMgZWl0aGVyIHRyeWluZyB0byBmbHVzaCBvdXQgdGhlIHJl c3VsdHMsIG9yIG1vcmUKLQkJICogZ2VuZXJhbGx5IG9uIHRoZSBvdXRwdXQg c3RyZWFtIGF0IGFsbC4gIElmIHdlIGhpdCBhbnkgZXJyb3JzCi0JCSAqIHdy aXRpbmcgdGhpbmdzIHRvIHRoZSBzdHJlYW0sIHdlIHByZXN1bWUgJFBBR0VS IGhhcyBkaXNhcHBlYXJlZCBhbmQKLQkJICogc3RvcCBib3RoZXJpbmcgdG8g cHVsbCBkb3duIG1vcmUgZGF0YS4KLQkJICovCi0JCWlmIChudHVwbGVzIDwg ZmV0Y2hfY291bnQgfHwgY2FuY2VsX3ByZXNzZWQgfHwgZmx1c2hfZXJyb3Ig fHwKLQkJCWZlcnJvcihmb3V0KSkKLQkJCWJyZWFrOwotCX0KLQotCWlmIChw c2V0LmdmbmFtZSkKLQl7Ci0JCS8qIGNsb3NlIFxnIGFyZ3VtZW50IGZpbGUv cGlwZSAqLwotCQlpZiAoaXNfcGlwZSkKLQkJewotCQkJU2V0U2hlbGxSZXN1 bHRWYXJpYWJsZXMocGNsb3NlKGZvdXQpKTsKLQkJCXJlc3RvcmVfc2lncGlw ZV90cmFwKCk7Ci0JCX0KLQkJZWxzZQotCQkJZmNsb3NlKGZvdXQpOwotCX0K LQllbHNlIGlmIChpc19wYWdlcikKLQl7Ci0JCS8qIGNsb3NlIHRyYW5zaWVu dCBwYWdlciAqLwotCQlDbG9zZVBhZ2VyKGZvdXQpOwotCX0KLQotCWlmIChP SykKLQl7Ci0JCS8qCi0JCSAqIFdlIGRvbid0IGhhdmUgYSBQR3Jlc3VsdCBo ZXJlLCBhbmQgZXZlbiBpZiB3ZSBkaWQgaXQgd291bGRuJ3QgaGF2ZQotCQkg KiB0aGUgcmlnaHQgcm93IGNvdW50LCBzbyBmYWtlIFNldFJlc3VsdFZhcmlh YmxlcygpLiAgSW4gZXJyb3IgY2FzZXMsCi0JCSAqIHdlIGFscmVhZHkgc2V0 IHRoZSByZXN1bHQgdmFyaWFibGVzIGFib3ZlLgotCQkgKi8KLQkJY2hhcgkJ YnVmWzMyXTsKLQotCQlTZXRWYXJpYWJsZShwc2V0LnZhcnMsICJFUlJPUiIs ICJmYWxzZSIpOwotCQlTZXRWYXJpYWJsZShwc2V0LnZhcnMsICJTUUxTVEFU RSIsICIwMDAwMCIpOwotCQlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCBJ TlQ2NF9GT1JNQVQsIHRvdGFsX3R1cGxlcyk7Ci0JCVNldFZhcmlhYmxlKHBz ZXQudmFycywgIlJPV19DT1VOVCIsIGJ1Zik7Ci0JfQotCi1jbGVhbnVwOgot CWlmICh0aW1pbmcpCi0JCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoYmVmb3Jl KTsKLQotCS8qCi0JICogV2UgdHJ5IHRvIGNsb3NlIHRoZSBjdXJzb3Igb24g ZWl0aGVyIHN1Y2Nlc3Mgb3IgZmFpbHVyZSwgYnV0IG9uIGZhaWx1cmUKLQkg KiBpZ25vcmUgdGhlIHJlc3VsdCAoaXQncyBwcm9iYWJseSBqdXN0IGEgYmxl YXQgYWJvdXQgYmVpbmcgaW4gYW4gYWJvcnRlZAotCSAqIHRyYW5zYWN0aW9u KQotCSAqLwotCXJlc3VsdCA9IFBRZXhlYyhwc2V0LmRiLCAiQ0xPU0UgX3Bz cWxfY3Vyc29yIik7Ci0JaWYgKE9LKQotCXsKLQkJT0sgPSBBY2NlcHRSZXN1 bHQocmVzdWx0LCB0cnVlKSAmJgotCQkJKFBRcmVzdWx0U3RhdHVzKHJlc3Vs dCkgPT0gUEdSRVNfQ09NTUFORF9PSyk7Ci0JCUNsZWFyT3JTYXZlUmVzdWx0 KHJlc3VsdCk7Ci0JfQotCWVsc2UKLQkJUFFjbGVhcihyZXN1bHQpOwotCi0J aWYgKHN0YXJ0ZWRfdHhuKQotCXsKLQkJcmVzdWx0ID0gUFFleGVjKHBzZXQu ZGIsIE9LID8gIkNPTU1JVCIgOiAiUk9MTEJBQ0siKTsKLQkJT0sgJj0gQWNj ZXB0UmVzdWx0KHJlc3VsdCwgdHJ1ZSkgJiYKLQkJCShQUXJlc3VsdFN0YXR1 cyhyZXN1bHQpID09IFBHUkVTX0NPTU1BTkRfT0spOwotCQlDbGVhck9yU2F2 ZVJlc3VsdChyZXN1bHQpOwotCX0KLQotCWlmICh0aW1pbmcpCi0JewotCQlJ TlNUUl9USU1FX1NFVF9DVVJSRU5UKGFmdGVyKTsKLQkJSU5TVFJfVElNRV9T VUJUUkFDVChhZnRlciwgYmVmb3JlKTsKLQkJKmVsYXBzZWRfbXNlYyArPSBJ TlNUUl9USU1FX0dFVF9NSUxMSVNFQyhhZnRlcik7Ci0JfQotCi0JcmV0dXJu IE9LOwotfQotCi0KIC8qCiAgKiBBZHZhbmNlIHRoZSBnaXZlbiBjaGFyIHBv aW50ZXIgb3ZlciB3aGl0ZSBzcGFjZSBhbmQgU1FMIGNvbW1lbnRzLgogICov CkBAIC0yMjQzLDQzICsyMTAzLDYgQEAgY29tbWFuZF9ub19iZWdpbihjb25z dCBjaGFyICpxdWVyeSkKIH0KIAogCi0vKgotICogQ2hlY2sgd2hldGhlciB0 aGUgc3BlY2lmaWVkIGNvbW1hbmQgaXMgYSBTRUxFQ1QgKG9yIFZBTFVFUyku Ci0gKi8KLXN0YXRpYyBib29sCi1pc19zZWxlY3RfY29tbWFuZChjb25zdCBj aGFyICpxdWVyeSkKLXsKLQlpbnQJCQl3b3JkbGVuOwotCi0JLyoKLQkgKiBG aXJzdCBhZHZhbmNlIG92ZXIgYW55IHdoaXRlc3BhY2UsIGNvbW1lbnRzIGFu ZCBsZWZ0IHBhcmVudGhlc2VzLgotCSAqLwotCWZvciAoOzspCi0JewotCQlx dWVyeSA9IHNraXBfd2hpdGVfc3BhY2UocXVlcnkpOwotCQlpZiAocXVlcnlb MF0gPT0gJygnKQotCQkJcXVlcnkrKzsKLQkJZWxzZQotCQkJYnJlYWs7Ci0J fQotCi0JLyoKLQkgKiBDaGVjayB3b3JkIGxlbmd0aCAoc2luY2UgInNlbGVj dHgiIGlzIG5vdCAic2VsZWN0IikuCi0JICovCi0Jd29yZGxlbiA9IDA7Ci0J d2hpbGUgKGlzYWxwaGEoKHVuc2lnbmVkIGNoYXIpIHF1ZXJ5W3dvcmRsZW5d KSkKLQkJd29yZGxlbiArPSBQUW1ibGVuQm91bmRlZCgmcXVlcnlbd29yZGxl bl0sIHBzZXQuZW5jb2RpbmcpOwotCi0JaWYgKHdvcmRsZW4gPT0gNiAmJiBw Z19zdHJuY2FzZWNtcChxdWVyeSwgInNlbGVjdCIsIDYpID09IDApCi0JCXJl dHVybiB0cnVlOwotCi0JaWYgKHdvcmRsZW4gPT0gNiAmJiBwZ19zdHJuY2Fz ZWNtcChxdWVyeSwgInZhbHVlcyIsIDYpID09IDApCi0JCXJldHVybiB0cnVl OwotCi0JcmV0dXJuIGZhbHNlOwotfQotCi0KIC8qCiAgKiBUZXN0IGlmIHRo ZSBjdXJyZW50IHVzZXIgaXMgYSBkYXRhYmFzZSBzdXBlcnVzZXIuCiAgKi8K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90LzAwMV9iYXNpYy5wbCBiL3Ny Yy9iaW4vcHNxbC90LzAwMV9iYXNpYy5wbAppbmRleCA5NWY0ZTYwYWIyLi42 MmE1ZDBmMzgzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdC8wMDFfYmFz aWMucGwKKysrIGIvc3JjL2Jpbi9wc3FsL3QvMDAxX2Jhc2ljLnBsCkBAIC0x NjEsNyArMTYxLDcgQEAgcHNxbF9saWtlKAogCSdcZXJydmVyYm9zZSB3aXRo IG5vIHByZXZpb3VzIGVycm9yJyk7CiAKICMgVGhlcmUgYXJlIHRocmVlIG1h aW4gd2F5cyB0byBydW4gYSBxdWVyeSB0aGF0IG1pZ2h0IGFmZmVjdAotIyBc ZXJydmVyYm9zZTogVGhlIG5vcm1hbCB3YXksIHVzaW5nIGEgY3Vyc29yIGJ5 IHNldHRpbmcgRkVUQ0hfQ09VTlQsCisjIFxlcnJ2ZXJib3NlOiBUaGUgbm9y bWFsIHdheSwgcGllY2VtZWFsIHJldHJpZXZhbCB1c2luZyBGRVRDSF9DT1VO VCwKICMgYW5kIHVzaW5nIFxnZGVzYy4gIFRlc3QgdGhlbSBhbGwuCiAKIGxp a2UoCkBAIC0xODQsMTAgKzE4NCwxMCBAQCBsaWtlKAogCQkJIlxcc2V0IEZF VENIX0NPVU5UIDFcblNFTEVDVCBlcnJvcjtcblxcZXJydmVyYm9zZSIsCiAJ CQlvbl9lcnJvcl9zdG9wID0+IDApKVsyXSwKIAlxci9cQV5wc3FsOjxzdGRp bj46MjogRVJST1I6ICAuKiQKLV5MSU5FIDI6IFNFTEVDVCBlcnJvcjskCite TElORSAxOiBTRUxFQ1QgZXJyb3I7JAogXiAqXi4qJAogXnBzcWw6PHN0ZGlu PjozOiBlcnJvcjogRVJST1I6ICBbMC05QS1aXXs1fTogLiokCi1eTElORSAy OiBTRUxFQ1QgZXJyb3I7JAorXkxJTkUgMTogU0VMRUNUIGVycm9yOyQKIF4g Kl4uKiQKIF5MT0NBVElPTjogLiokL20sCiAJJ1xlcnJ2ZXJib3NlIGFmdGVy IEZFVENIX0NPVU5UIHF1ZXJ5IHdpdGggZXJyb3InKTsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDVkNjFlNGM3YmIu LjBhYTdhNmRhZTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wc3FsLm91dApAQCAtNDc1NCw3ICs0NzU0LDcgQEAgbnVtYmVyIG9mIHJv d3M6IDAKIGxhc3QgZXJyb3IgbWVzc2FnZTogc3ludGF4IGVycm9yIGF0IGVu ZCBvZiBpbnB1dAogXGVjaG8gJ2xhc3QgZXJyb3IgY29kZTonIDpMQVNUX0VS Uk9SX1NRTFNUQVRFCiBsYXN0IGVycm9yIGNvZGU6IDQyNjAxCi0tLSBjaGVj ayByb3cgY291bnQgZm9yIGEgY3Vyc29yLWZldGNoZWQgcXVlcnkKKy0tIGNo ZWNrIHJvdyBjb3VudCBmb3IgYSBxdWVyeSB3aXRoIGNodW5rZWQgcmVzdWx0 cwogXHNldCBGRVRDSF9DT1VOVCAxMAogc2VsZWN0IHVuaXF1ZTIgZnJvbSB0 ZW5rMSBvcmRlciBieSB1bmlxdWUyIGxpbWl0IDE5OwogIHVuaXF1ZTIgCkBA IC00Nzg2LDcgKzQ3ODYsNyBAQCBlcnJvcjogZmFsc2UKIGVycm9yIGNvZGU6 IDAwMDAwCiBcZWNobyAnbnVtYmVyIG9mIHJvd3M6JyA6Uk9XX0NPVU5UCiBu dW1iZXIgb2Ygcm93czogMTkKLS0tIGN1cnNvci1mZXRjaGVkIHF1ZXJ5IHdp dGggYW4gZXJyb3IgYWZ0ZXIgdGhlIGZpcnN0IGdyb3VwCistLSBjaHVua2Vk IHJlc3VsdHMgd2l0aCBhbiBlcnJvciBhZnRlciB0aGUgZmlyc3QgY2h1bmsK IHNlbGVjdCAxLygxNS11bmlxdWUyKSBmcm9tIHRlbmsxIG9yZGVyIGJ5IHVu aXF1ZTIgbGltaXQgMTk7CiAgP2NvbHVtbj8gCiAtLS0tLS0tLS0tCkBAIC00 ODAwLDYgKzQ4MDAsMTEgQEAgc2VsZWN0IDEvKDE1LXVuaXF1ZTIpIGZyb20g dGVuazEgb3JkZXIgYnkgdW5pcXVlMiBsaW1pdCAxOTsKICAgICAgICAgMAog ICAgICAgICAwCiAgICAgICAgIDAKKyAgICAgICAgMAorICAgICAgICAwCisg ICAgICAgIDAKKyAgICAgICAgMAorICAgICAgICAxCiBFUlJPUjogIGRpdmlz aW9uIGJ5IHplcm8KIFxlY2hvICdlcnJvcjonIDpFUlJPUgogZXJyb3I6IHRy dWUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXggZjE5OWQ2 MjRkMy4uMGQ0NWRjMmQ5NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNx bC5zcWwKQEAgLTExNjAsMTQgKzExNjAsMTQgQEAgU0VMRUNUIDQgQVMgXGdk ZXNjCiBcZWNobyAnbGFzdCBlcnJvciBtZXNzYWdlOicgOkxBU1RfRVJST1Jf TUVTU0FHRQogXGVjaG8gJ2xhc3QgZXJyb3IgY29kZTonIDpMQVNUX0VSUk9S X1NRTFNUQVRFCiAKLS0tIGNoZWNrIHJvdyBjb3VudCBmb3IgYSBjdXJzb3It ZmV0Y2hlZCBxdWVyeQorLS0gY2hlY2sgcm93IGNvdW50IGZvciBhIHF1ZXJ5 IHdpdGggY2h1bmtlZCByZXN1bHRzCiBcc2V0IEZFVENIX0NPVU5UIDEwCiBz ZWxlY3QgdW5pcXVlMiBmcm9tIHRlbmsxIG9yZGVyIGJ5IHVuaXF1ZTIgbGlt aXQgMTk7CiBcZWNobyAnZXJyb3I6JyA6RVJST1IKIFxlY2hvICdlcnJvciBj b2RlOicgOlNRTFNUQVRFCiBcZWNobyAnbnVtYmVyIG9mIHJvd3M6JyA6Uk9X X0NPVU5UCiAKLS0tIGN1cnNvci1mZXRjaGVkIHF1ZXJ5IHdpdGggYW4gZXJy b3IgYWZ0ZXIgdGhlIGZpcnN0IGdyb3VwCistLSBjaHVua2VkIHJlc3VsdHMg d2l0aCBhbiBlcnJvciBhZnRlciB0aGUgZmlyc3QgY2h1bmsKIHNlbGVjdCAx LygxNS11bmlxdWUyKSBmcm9tIHRlbmsxIG9yZGVyIGJ5IHVuaXF1ZTIgbGlt aXQgMTk7CiBcZWNobyAnZXJyb3I6JyA6RVJST1IKIFxlY2hvICdlcnJvciBj b2RlOicgOlNRTFNUQVRFCi0tIAoyLjM0LjEKCg== ------------=_1704207496-2636-1--