Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1peBTZ-0003aN-17 for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Mar 2023 09:06:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1peBTX-0003Ug-Ro for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Mar 2023 09:06:43 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1peBTX-0003UX-9W for pgsql-hackers@lists.postgresql.org; Mon, 20 Mar 2023 09:06:43 +0000 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1peBTT-0007ve-R3 for pgsql-hackers@lists.postgresql.org; Mon, 20 Mar 2023 09:06:42 +0000 Received: by mail-wm1-x335.google.com with SMTP id r19-20020a05600c459300b003eb3e2a5e7bso7002451wmo.0 for ; Mon, 20 Mar 2023 02:06:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679303198; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=R7tn6w3Kw9Mo8Bur3W1yCN2jwnJHfHxrtZgW86rQ4Zc=; b=NHdS2LooE9TdD//H/F3rW80HldYdDMoIsIOoHa6ifpF6ihQJsGe5fklBe4CLoraZmg 1V+o7rtaGQ2FgI0QJRyfakXaUPPUpzTZnPNLZQ/wG3gO5VuF0VuRdv0+tP+4zTV6EAWo txSk5ZOURNKbaED8aK17IOY6EdbJ8x4ogBw8o08FVjhGPjf4WzrnQvvxVB1nMkQhIPdT kjAMaSfnIASHnIfcsJMpJD2fU8736kUI9EnA5QIgFrDI304pLykSglwCCNddJvPc6Pqm iVXn4iGbZ3rp9c9nlRoUuJw8K1Fk13tqHoCVAG8JhzLJm29StIsRJg2WkcrgcGMtD8PH MsxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679303198; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=R7tn6w3Kw9Mo8Bur3W1yCN2jwnJHfHxrtZgW86rQ4Zc=; b=iI08hgfE8Nt39ZAJca4NrjYIspHmykl4vt8jr84JGVZ8zES0Ht+S7RfrSHUTptPBXc P/yNS28eOjzOOwSOgFdZ6KvUZ53nB2jwUCjsfEQGjmNGmI6eE+qcJfjaPBuPzWllOs1G sKayKoIJXku8qwwkR1wPWJ00fwEr9cid7UxBZt2ZeG204/GQi3lauzU9Unqk8NpJW198 VmeE/BwW1f0+RY8RHnvaFC6fS/l3jQds2ywa+kDrROpzoIErcDOpgVzCJO8j3YT/ZSqK 7qY3bXR73yDjsKs0gIMik6zXeBwLQWThq6rQjx+VvEXfSgPbx8c6o7g9iQzUgXz3NOzy 3DaQ== X-Gm-Message-State: AO0yUKWp5slZ4IiVHBUAQn6Gh6oROu7XrQbppv76FYv3qvazLLrmP33P 76Q9uLOklraLrUdeXvgUc2Q= X-Google-Smtp-Source: AK7set/55YyQa9g+MBh+x+2yjRMgQthTR9QhQPg1OM4sYpQUhuZs72nnfhS+AFmYb0Fd1XfM86BILg== X-Received: by 2002:a1c:4c19:0:b0:3ed:64eb:5379 with SMTP id z25-20020a1c4c19000000b003ed64eb5379mr12406092wmf.39.1679303198268; Mon, 20 Mar 2023 02:06:38 -0700 (PDT) Received: from [192.168.29.209] ([54.239.6.187]) by smtp.gmail.com with ESMTPSA id f20-20020a7bcd14000000b003e203681b26sm9867258wmj.29.2023.03.20.02.06.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 20 Mar 2023 02:06:37 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------gDti4Rqz0uejfFFirjDGwX0m" Message-ID: Date: Mon, 20 Mar 2023 10:05:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: Remove nonmeaningful prefixes in PgStat_* fields To: Michael Paquier , Andres Freund Cc: Alvaro Herrera , PostgreSQL Hackers References: <9142f62a-a422-145c-bde0-b5bc498a4ada@gmail.com> <20230112171252.xucefmthy5l4l2ec@alvherre.pgsql> <20230112180733.agmvpugp6ggorade@awork3.anarazel.de> Content-Language: en-US From: "Drouvot, Bertrand" In-Reply-To: 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. --------------gDti4Rqz0uejfFFirjDGwX0m Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 3/20/23 8:32 AM, Michael Paquier wrote: > > /* Total time previously charged to function, as of function start */ > - instr_time save_f_total_time; > + instr_time save_total_time; > I have something to say about this one, though.. I find this change a > bit confusing. It may be better kept as it is, or I think that we'd > better rename also "save_total" and "start" to reflect in a better way > what they do, because removing "f_" reduces the meaning of the field > with the two others in the same structure. Thanks for looking at it! Good point and keeping it as it is currently would not affect the work that is/will be done in [1]. So, please find attached V2 attached taking this comment into account. [1]: https://www.postgresql.org/message-id/flat/89606d96-cd94-af74-18f3-c7ab2b684ba2%40gmail.com Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------gDti4Rqz0uejfFFirjDGwX0m Content-Type: text/plain; charset=UTF-8; name="v2-0001-remove_nonmeaningful_prefixes.patch" Content-Disposition: attachment; filename="v2-0001-remove_nonmeaningful_prefixes.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9mdW5jdGlv bi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2Z1bmN0aW9uLmMKaW5k ZXggMGZkY2VmYjc4My4uNzllNzgxMTY3YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0X2Z1bmN0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X2Z1bmN0aW9uLmMKQEAgLTEyNCwxMyArMTI0LDEzIEBAIHBnc3Rh dF9pbml0X2Z1bmN0aW9uX3VzYWdlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLAogCWZjdS0+ ZnMgPSBwZW5kaW5nOwogCiAJLyogc2F2ZSBzdGF0cyBmb3IgdGhpcyBmdW5jdGlvbiwgbGF0 ZXIgdXNlZCB0byBjb21wZW5zYXRlIGZvciByZWN1cnNpb24gKi8KLQlmY3UtPnNhdmVfZl90 b3RhbF90aW1lID0gcGVuZGluZy0+Zl90b3RhbF90aW1lOworCWZjdS0+c2F2ZV9mX3RvdGFs X3RpbWUgPSBwZW5kaW5nLT50b3RhbF90aW1lOwogCiAJLyogc2F2ZSBjdXJyZW50IGJhY2tl bmQtd2lkZSB0b3RhbCB0aW1lICovCiAJZmN1LT5zYXZlX3RvdGFsID0gdG90YWxfZnVuY190 aW1lOwogCiAJLyogZ2V0IGNsb2NrIHRpbWUgYXMgb2YgZnVuY3Rpb24gc3RhcnQgKi8KLQlJ TlNUUl9USU1FX1NFVF9DVVJSRU5UKGZjdS0+Zl9zdGFydCk7CisJSU5TVFJfVElNRV9TRVRf Q1VSUkVOVChmY3UtPnN0YXJ0KTsKIH0KIAogLyoKQEAgLTE0Niw0MSArMTQ2LDQxIEBAIHZv aWQKIHBnc3RhdF9lbmRfZnVuY3Rpb25fdXNhZ2UoUGdTdGF0X0Z1bmN0aW9uQ2FsbFVzYWdl ICpmY3UsIGJvb2wgZmluYWxpemUpCiB7CiAJUGdTdGF0X0Z1bmN0aW9uQ291bnRzICpmcyA9 IGZjdS0+ZnM7Ci0JaW5zdHJfdGltZQlmX3RvdGFsOwotCWluc3RyX3RpbWUJZl9vdGhlcnM7 Ci0JaW5zdHJfdGltZQlmX3NlbGY7CisJaW5zdHJfdGltZQl0b3RhbDsKKwlpbnN0cl90aW1l CW90aGVyczsKKwlpbnN0cl90aW1lCXNlbGY7CiAKIAkvKiBzdGF0cyBub3Qgd2FudGVkPyAq LwogCWlmIChmcyA9PSBOVUxMKQogCQlyZXR1cm47CiAKIAkvKiB0b3RhbCBlbGFwc2VkIHRp bWUgaW4gdGhpcyBmdW5jdGlvbiBjYWxsICovCi0JSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChm X3RvdGFsKTsKLQlJTlNUUl9USU1FX1NVQlRSQUNUKGZfdG90YWwsIGZjdS0+Zl9zdGFydCk7 CisJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVCh0b3RhbCk7CisJSU5TVFJfVElNRV9TVUJUUkFD VCh0b3RhbCwgZmN1LT5zdGFydCk7CiAKIAkvKiBzZWxmIHVzYWdlOiBlbGFwc2VkIG1pbnVz IGFueXRoaW5nIGFscmVhZHkgY2hhcmdlZCB0byBvdGhlciBjYWxscyAqLwotCWZfb3RoZXJz ID0gdG90YWxfZnVuY190aW1lOwotCUlOU1RSX1RJTUVfU1VCVFJBQ1QoZl9vdGhlcnMsIGZj dS0+c2F2ZV90b3RhbCk7Ci0JZl9zZWxmID0gZl90b3RhbDsKLQlJTlNUUl9USU1FX1NVQlRS QUNUKGZfc2VsZiwgZl9vdGhlcnMpOworCW90aGVycyA9IHRvdGFsX2Z1bmNfdGltZTsKKwlJ TlNUUl9USU1FX1NVQlRSQUNUKG90aGVycywgZmN1LT5zYXZlX3RvdGFsKTsKKwlzZWxmID0g dG90YWw7CisJSU5TVFJfVElNRV9TVUJUUkFDVChzZWxmLCBvdGhlcnMpOwogCiAJLyogdXBk YXRlIGJhY2tlbmQtd2lkZSB0b3RhbCB0aW1lICovCi0JSU5TVFJfVElNRV9BREQodG90YWxf ZnVuY190aW1lLCBmX3NlbGYpOworCUlOU1RSX1RJTUVfQUREKHRvdGFsX2Z1bmNfdGltZSwg c2VsZik7CiAKIAkvKgotCSAqIENvbXB1dGUgdGhlIG5ldyBmX3RvdGFsX3RpbWUgYXMgdGhl IHRvdGFsIGVsYXBzZWQgdGltZSBhZGRlZCB0byB0aGUKLQkgKiBwcmUtY2FsbCB2YWx1ZSBv ZiBmX3RvdGFsX3RpbWUuICBUaGlzIGlzIG5lY2Vzc2FyeSB0byBhdm9pZAorCSAqIENvbXB1 dGUgdGhlIG5ldyB0b3RhbF90aW1lIGFzIHRoZSB0b3RhbCBlbGFwc2VkIHRpbWUgYWRkZWQg dG8gdGhlCisJICogcHJlLWNhbGwgdmFsdWUgb2YgdG90YWxfdGltZS4gIFRoaXMgaXMgbmVj ZXNzYXJ5IHRvIGF2b2lkCiAJICogZG91YmxlLWNvdW50aW5nIGFueSB0aW1lIHRha2VuIGJ5 IHJlY3Vyc2l2ZSBjYWxscyBvZiBteXNlbGYuICAoV2UgZG8KIAkgKiBub3QgbmVlZCBhbnkg c2ltaWxhciBrbHVnZSBmb3Igc2VsZiB0aW1lLCBzaW5jZSB0aGF0IGFscmVhZHkgZXhjbHVk ZXMKIAkgKiBhbnkgcmVjdXJzaXZlIGNhbGxzLikKIAkgKi8KLQlJTlNUUl9USU1FX0FERChm X3RvdGFsLCBmY3UtPnNhdmVfZl90b3RhbF90aW1lKTsKKwlJTlNUUl9USU1FX0FERCh0b3Rh bCwgZmN1LT5zYXZlX2ZfdG90YWxfdGltZSk7CiAKIAkvKiB1cGRhdGUgY291bnRlcnMgaW4g ZnVuY3Rpb24gc3RhdHMgdGFibGUgKi8KIAlpZiAoZmluYWxpemUpCi0JCWZzLT5mX251bWNh bGxzKys7Ci0JZnMtPmZfdG90YWxfdGltZSA9IGZfdG90YWw7Ci0JSU5TVFJfVElNRV9BREQo ZnMtPmZfc2VsZl90aW1lLCBmX3NlbGYpOworCQlmcy0+bnVtY2FsbHMrKzsKKwlmcy0+dG90 YWxfdGltZSA9IHRvdGFsOworCUlOU1RSX1RJTUVfQUREKGZzLT5zZWxmX3RpbWUsIHNlbGYp OwogfQogCiAvKgpAQCAtMjAzLDExICsyMDMsMTEgQEAgcGdzdGF0X2Z1bmN0aW9uX2ZsdXNo X2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKIAlpZiAoIXBn c3RhdF9sb2NrX2VudHJ5KGVudHJ5X3JlZiwgbm93YWl0KSkKIAkJcmV0dXJuIGZhbHNlOwog Ci0Jc2hmdW5jZW50LT5zdGF0cy5mX251bWNhbGxzICs9IGxvY2FsZW50LT5mX251bWNhbGxz OwotCXNoZnVuY2VudC0+c3RhdHMuZl90b3RhbF90aW1lICs9Ci0JCUlOU1RSX1RJTUVfR0VU X01JQ1JPU0VDKGxvY2FsZW50LT5mX3RvdGFsX3RpbWUpOwotCXNoZnVuY2VudC0+c3RhdHMu Zl9zZWxmX3RpbWUgKz0KLQkJSU5TVFJfVElNRV9HRVRfTUlDUk9TRUMobG9jYWxlbnQtPmZf c2VsZl90aW1lKTsKKwlzaGZ1bmNlbnQtPnN0YXRzLm51bWNhbGxzICs9IGxvY2FsZW50LT5u dW1jYWxsczsKKwlzaGZ1bmNlbnQtPnN0YXRzLnRvdGFsX3RpbWUgKz0KKwkJSU5TVFJfVElN RV9HRVRfTUlDUk9TRUMobG9jYWxlbnQtPnRvdGFsX3RpbWUpOworCXNoZnVuY2VudC0+c3Rh dHMuc2VsZl90aW1lICs9CisJCUlOU1RSX1RJTUVfR0VUX01JQ1JPU0VDKGxvY2FsZW50LT5z ZWxmX3RpbWUpOwogCiAJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOwogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCmluZGV4IGY3 OTNhYzE1MTYuLjg1YzI0ZTY4NjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fj dGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCkBAIC0zOCw5ICszOCw5IEBAIHR5cGVkZWYgc3RydWN0 IFR3b1BoYXNlUGdTdGF0UmVjb3JkCiAJUGdTdGF0X0NvdW50ZXIgaW5zZXJ0ZWRfcHJlX3Ry dW5jZHJvcDsKIAlQZ1N0YXRfQ291bnRlciB1cGRhdGVkX3ByZV90cnVuY2Ryb3A7CiAJUGdT dGF0X0NvdW50ZXIgZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwotCU9pZAkJCXRfaWQ7CQkJLyog dGFibGUncyBPSUQgKi8KLQlib29sCQl0X3NoYXJlZDsJCS8qIGlzIGl0IGEgc2hhcmVkIGNh dGFsb2c/ICovCi0JYm9vbAkJdF90cnVuY2Ryb3BwZWQ7IC8qIHdhcyB0aGUgcmVsYXRpb24g dHJ1bmNhdGVkL2Ryb3BwZWQ/ICovCisJT2lkCQkJaWQ7CQkJLyogdGFibGUncyBPSUQgKi8K Kwlib29sCQlzaGFyZWQ7CQkvKiBpcyBpdCBhIHNoYXJlZCBjYXRhbG9nPyAqLworCWJvb2wJ CXRydW5jZHJvcHBlZDsgLyogd2FzIHRoZSByZWxhdGlvbiB0cnVuY2F0ZWQvZHJvcHBlZD8g Ki8KIH0gVHdvUGhhc2VQZ1N0YXRSZWNvcmQ7CiAKIApAQCAtMzEwLDcgKzMxMCw3IEBAIHBn c3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlvbiByZWwsCiAJCQlkZWFkdHVwbGVzIC09IHRy YW5zLT50dXBsZXNfdXBkYXRlZCArIHRyYW5zLT50dXBsZXNfZGVsZXRlZDsKIAkJfQogCQkv KiBjb3VudCBzdHVmZiBpbnNlcnRlZCBieSBhbHJlYWR5LWFib3J0ZWQgc3VieGFjdHMsIHRv byAqLwotCQlkZWFkdHVwbGVzIC09IHJlbC0+cGdzdGF0X2luZm8tPnRfY291bnRzLnRfZGVs dGFfZGVhZF90dXBsZXM7CisJCWRlYWR0dXBsZXMgLT0gcmVsLT5wZ3N0YXRfaW5mby0+Y291 bnRzLmRlbHRhX2RlYWRfdHVwbGVzOwogCQkvKiBTaW5jZSBBTkFMWVpFJ3MgY291bnRzIGFy ZSBlc3RpbWF0ZXMsIHdlIGNvdWxkIGhhdmUgdW5kZXJmbG93ZWQgKi8KIAkJbGl2ZXR1cGxl cyA9IE1heChsaXZldHVwbGVzLCAwKTsKIAkJZGVhZHR1cGxlcyA9IE1heChkZWFkdHVwbGVz LCAwKTsKQEAgLTM4NCw3ICszODQsNyBAQCBwZ3N0YXRfY291bnRfaGVhcF91cGRhdGUoUmVs YXRpb24gcmVsLCBib29sIGhvdCkKIAogCQkvKiB0X3R1cGxlc19ob3RfdXBkYXRlZCBpcyBu b250cmFuc2FjdGlvbmFsLCBzbyBqdXN0IGFkdmFuY2UgaXQgKi8KIAkJaWYgKGhvdCkKLQkJ CXBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1cGxlc19ob3RfdXBkYXRlZCsrOworCQkJcGdz dGF0X2luZm8tPmNvdW50cy50dXBsZXNfaG90X3VwZGF0ZWQrKzsKIAl9CiB9CiAKQEAgLTQz Niw3ICs0MzYsNyBAQCBwZ3N0YXRfdXBkYXRlX2hlYXBfZGVhZF90dXBsZXMoUmVsYXRpb24g cmVsLCBpbnQgZGVsdGEpCiAJewogCQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZv ID0gcmVsLT5wZ3N0YXRfaW5mbzsKIAotCQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF9kZWx0 YV9kZWFkX3R1cGxlcyAtPSBkZWx0YTsKKwkJcGdzdGF0X2luZm8tPmNvdW50cy5kZWx0YV9k ZWFkX3R1cGxlcyAtPSBkZWx0YTsKIAl9CiB9CiAKQEAgLTUxMiwzMyArNTEyLDMzIEBAIEF0 RU9YYWN0X1BnU3RhdF9SZWxhdGlvbnMoUGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhhY3Rfc3Rh dGUsIGJvb2wgaXNDb21taXQpCiAJCWlmICghaXNDb21taXQpCiAJCQlyZXN0b3JlX3RydW5j ZHJvcF9jb3VudGVycyh0cmFucyk7CiAJCS8qIGNvdW50IGF0dGVtcHRlZCBhY3Rpb25zIHJl Z2FyZGxlc3Mgb2YgY29tbWl0L2Fib3J0ICovCi0JCXRhYnN0YXQtPnRfY291bnRzLnRfdHVw bGVzX2luc2VydGVkICs9IHRyYW5zLT50dXBsZXNfaW5zZXJ0ZWQ7Ci0JCXRhYnN0YXQtPnRf Y291bnRzLnRfdHVwbGVzX3VwZGF0ZWQgKz0gdHJhbnMtPnR1cGxlc191cGRhdGVkOwotCQl0 YWJzdGF0LT50X2NvdW50cy50X3R1cGxlc19kZWxldGVkICs9IHRyYW5zLT50dXBsZXNfZGVs ZXRlZDsKKwkJdGFic3RhdC0+Y291bnRzLnR1cGxlc19pbnNlcnRlZCArPSB0cmFucy0+dHVw bGVzX2luc2VydGVkOworCQl0YWJzdGF0LT5jb3VudHMudHVwbGVzX3VwZGF0ZWQgKz0gdHJh bnMtPnR1cGxlc191cGRhdGVkOworCQl0YWJzdGF0LT5jb3VudHMudHVwbGVzX2RlbGV0ZWQg Kz0gdHJhbnMtPnR1cGxlc19kZWxldGVkOwogCQlpZiAoaXNDb21taXQpCiAJCXsKLQkJCXRh YnN0YXQtPnRfY291bnRzLnRfdHJ1bmNkcm9wcGVkID0gdHJhbnMtPnRydW5jZHJvcHBlZDsK KwkJCXRhYnN0YXQtPmNvdW50cy50cnVuY2Ryb3BwZWQgPSB0cmFucy0+dHJ1bmNkcm9wcGVk OwogCQkJaWYgKHRyYW5zLT50cnVuY2Ryb3BwZWQpCiAJCQl7CiAJCQkJLyogZm9yZ2V0IGxp dmUvZGVhZCBzdGF0cyBzZWVuIGJ5IGJhY2tlbmQgdGh1cyBmYXIgKi8KLQkJCQl0YWJzdGF0 LT50X2NvdW50cy50X2RlbHRhX2xpdmVfdHVwbGVzID0gMDsKLQkJCQl0YWJzdGF0LT50X2Nv dW50cy50X2RlbHRhX2RlYWRfdHVwbGVzID0gMDsKKwkJCQl0YWJzdGF0LT5jb3VudHMuZGVs dGFfbGl2ZV90dXBsZXMgPSAwOworCQkJCXRhYnN0YXQtPmNvdW50cy5kZWx0YV9kZWFkX3R1 cGxlcyA9IDA7CiAJCQl9CiAJCQkvKiBpbnNlcnQgYWRkcyBhIGxpdmUgdHVwbGUsIGRlbGV0 ZSByZW1vdmVzIG9uZSAqLwotCQkJdGFic3RhdC0+dF9jb3VudHMudF9kZWx0YV9saXZlX3R1 cGxlcyArPQorCQkJdGFic3RhdC0+Y291bnRzLmRlbHRhX2xpdmVfdHVwbGVzICs9CiAJCQkJ dHJhbnMtPnR1cGxlc19pbnNlcnRlZCAtIHRyYW5zLT50dXBsZXNfZGVsZXRlZDsKIAkJCS8q IHVwZGF0ZSBhbmQgZGVsZXRlIGVhY2ggY3JlYXRlIGEgZGVhZCB0dXBsZSAqLwotCQkJdGFi c3RhdC0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxlcyArPQorCQkJdGFic3RhdC0+Y291 bnRzLmRlbHRhX2RlYWRfdHVwbGVzICs9CiAJCQkJdHJhbnMtPnR1cGxlc191cGRhdGVkICsg dHJhbnMtPnR1cGxlc19kZWxldGVkOwogCQkJLyogaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSBl YWNoIGNvdW50IGFzIG9uZSBjaGFuZ2UgZXZlbnQgKi8KLQkJCXRhYnN0YXQtPnRfY291bnRz LnRfY2hhbmdlZF90dXBsZXMgKz0KKwkJCXRhYnN0YXQtPmNvdW50cy5jaGFuZ2VkX3R1cGxl cyArPQogCQkJCXRyYW5zLT50dXBsZXNfaW5zZXJ0ZWQgKyB0cmFucy0+dHVwbGVzX3VwZGF0 ZWQgKwogCQkJCXRyYW5zLT50dXBsZXNfZGVsZXRlZDsKIAkJfQogCQllbHNlCiAJCXsKIAkJ CS8qIGluc2VydGVkIHR1cGxlcyBhcmUgZGVhZCwgZGVsZXRlZCB0dXBsZXMgYXJlIHVuYWZm ZWN0ZWQgKi8KLQkJCXRhYnN0YXQtPnRfY291bnRzLnRfZGVsdGFfZGVhZF90dXBsZXMgKz0K KwkJCXRhYnN0YXQtPmNvdW50cy5kZWx0YV9kZWFkX3R1cGxlcyArPQogCQkJCXRyYW5zLT50 dXBsZXNfaW5zZXJ0ZWQgKyB0cmFucy0+dHVwbGVzX3VwZGF0ZWQ7CiAJCQkvKiBhbiBhYm9y dGVkIHhhY3QgZ2VuZXJhdGVzIG5vIGNoYW5nZWRfdHVwbGUgZXZlbnRzICovCiAJCX0KQEAg LTYxOCwxMSArNjE4LDExIEBAIEF0RU9TdWJYYWN0X1BnU3RhdF9SZWxhdGlvbnMoUGdTdGF0 X1N1YlhhY3RTdGF0dXMgKnhhY3Rfc3RhdGUsIGJvb2wgaXNDb21taXQsIGluCiAJCQkvKiBm aXJzdCByZXN0b3JlIHZhbHVlcyBvYmxpdGVyYXRlZCBieSB0cnVuY2F0ZS9kcm9wICovCiAJ CQlyZXN0b3JlX3RydW5jZHJvcF9jb3VudGVycyh0cmFucyk7CiAJCQkvKiBjb3VudCBhdHRl bXB0ZWQgYWN0aW9ucyByZWdhcmRsZXNzIG9mIGNvbW1pdC9hYm9ydCAqLwotCQkJdGFic3Rh dC0+dF9jb3VudHMudF90dXBsZXNfaW5zZXJ0ZWQgKz0gdHJhbnMtPnR1cGxlc19pbnNlcnRl ZDsKLQkJCXRhYnN0YXQtPnRfY291bnRzLnRfdHVwbGVzX3VwZGF0ZWQgKz0gdHJhbnMtPnR1 cGxlc191cGRhdGVkOwotCQkJdGFic3RhdC0+dF9jb3VudHMudF90dXBsZXNfZGVsZXRlZCAr PSB0cmFucy0+dHVwbGVzX2RlbGV0ZWQ7CisJCQl0YWJzdGF0LT5jb3VudHMudHVwbGVzX2lu c2VydGVkICs9IHRyYW5zLT50dXBsZXNfaW5zZXJ0ZWQ7CisJCQl0YWJzdGF0LT5jb3VudHMu dHVwbGVzX3VwZGF0ZWQgKz0gdHJhbnMtPnR1cGxlc191cGRhdGVkOworCQkJdGFic3RhdC0+ Y291bnRzLnR1cGxlc19kZWxldGVkICs9IHRyYW5zLT50dXBsZXNfZGVsZXRlZDsKIAkJCS8q IGluc2VydGVkIHR1cGxlcyBhcmUgZGVhZCwgZGVsZXRlZCB0dXBsZXMgYXJlIHVuYWZmZWN0 ZWQgKi8KLQkJCXRhYnN0YXQtPnRfY291bnRzLnRfZGVsdGFfZGVhZF90dXBsZXMgKz0KKwkJ CXRhYnN0YXQtPmNvdW50cy5kZWx0YV9kZWFkX3R1cGxlcyArPQogCQkJCXRyYW5zLT50dXBs ZXNfaW5zZXJ0ZWQgKyB0cmFucy0+dHVwbGVzX3VwZGF0ZWQ7CiAJCQl0YWJzdGF0LT50cmFu cyA9IHRyYW5zLT51cHBlcjsKIAkJCXBmcmVlKHRyYW5zKTsKQEAgLTY1NSw5ICs2NTUsOSBA QCBBdFByZXBhcmVfUGdTdGF0X1JlbGF0aW9ucyhQZ1N0YXRfU3ViWGFjdFN0YXR1cyAqeGFj dF9zdGF0ZSkKIAkJcmVjb3JkLmluc2VydGVkX3ByZV90cnVuY2Ryb3AgPSB0cmFucy0+aW5z ZXJ0ZWRfcHJlX3RydW5jZHJvcDsKIAkJcmVjb3JkLnVwZGF0ZWRfcHJlX3RydW5jZHJvcCA9 IHRyYW5zLT51cGRhdGVkX3ByZV90cnVuY2Ryb3A7CiAJCXJlY29yZC5kZWxldGVkX3ByZV90 cnVuY2Ryb3AgPSB0cmFucy0+ZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwotCQlyZWNvcmQudF9p ZCA9IHRhYnN0YXQtPnRfaWQ7Ci0JCXJlY29yZC50X3NoYXJlZCA9IHRhYnN0YXQtPnRfc2hh cmVkOwotCQlyZWNvcmQudF90cnVuY2Ryb3BwZWQgPSB0cmFucy0+dHJ1bmNkcm9wcGVkOwor CQlyZWNvcmQuaWQgPSB0YWJzdGF0LT5pZDsKKwkJcmVjb3JkLnNoYXJlZCA9IHRhYnN0YXQt PnNoYXJlZDsKKwkJcmVjb3JkLnRydW5jZHJvcHBlZCA9IHRyYW5zLT50cnVuY2Ryb3BwZWQ7 CiAKIAkJUmVnaXN0ZXJUd29QaGFzZVJlY29yZChUV09QSEFTRV9STV9QR1NUQVRfSUQsIDAs CiAJCQkJCQkJICAgJnJlY29yZCwgc2l6ZW9mKFR3b1BoYXNlUGdTdGF0UmVjb3JkKSk7CkBA IC02OTksMjQgKzY5OSwyNCBAQCBwZ3N0YXRfdHdvcGhhc2VfcG9zdGNvbW1pdChUcmFuc2Fj dGlvbklkIHhpZCwgdWludDE2IGluZm8sCiAJUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRf aW5mbzsKIAogCS8qIEZpbmQgb3IgY3JlYXRlIGEgdGFic3RhdCBlbnRyeSBmb3IgdGhlIHJl bCAqLwotCXBnc3RhdF9pbmZvID0gcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGluZyhyZWMt PnRfaWQsIHJlYy0+dF9zaGFyZWQpOworCXBnc3RhdF9pbmZvID0gcGdzdGF0X3ByZXBfcmVs YXRpb25fcGVuZGluZyhyZWMtPmlkLCByZWMtPnNoYXJlZCk7CiAKIAkvKiBTYW1lIG1hdGgg YXMgaW4gQXRFT1hhY3RfUGdTdGF0LCBjb21taXQgY2FzZSAqLwotCXBnc3RhdF9pbmZvLT50 X2NvdW50cy50X3R1cGxlc19pbnNlcnRlZCArPSByZWMtPnR1cGxlc19pbnNlcnRlZDsKLQlw Z3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNfdXBkYXRlZCArPSByZWMtPnR1cGxlc191 cGRhdGVkOwotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1cGxlc19kZWxldGVkICs9IHJl Yy0+dHVwbGVzX2RlbGV0ZWQ7Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHJ1bmNkcm9w cGVkID0gcmVjLT50X3RydW5jZHJvcHBlZDsKLQlpZiAocmVjLT50X3RydW5jZHJvcHBlZCkK KwlwZ3N0YXRfaW5mby0+Y291bnRzLnR1cGxlc19pbnNlcnRlZCArPSByZWMtPnR1cGxlc19p bnNlcnRlZDsKKwlwZ3N0YXRfaW5mby0+Y291bnRzLnR1cGxlc191cGRhdGVkICs9IHJlYy0+ dHVwbGVzX3VwZGF0ZWQ7CisJcGdzdGF0X2luZm8tPmNvdW50cy50dXBsZXNfZGVsZXRlZCAr PSByZWMtPnR1cGxlc19kZWxldGVkOworCXBnc3RhdF9pbmZvLT5jb3VudHMudHJ1bmNkcm9w cGVkID0gcmVjLT50cnVuY2Ryb3BwZWQ7CisJaWYgKHJlYy0+dHJ1bmNkcm9wcGVkKQogCXsK IAkJLyogZm9yZ2V0IGxpdmUvZGVhZCBzdGF0cyBzZWVuIGJ5IGJhY2tlbmQgdGh1cyBmYXIg Ki8KLQkJcGdzdGF0X2luZm8tPnRfY291bnRzLnRfZGVsdGFfbGl2ZV90dXBsZXMgPSAwOwot CQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxlcyA9IDA7CisJCXBn c3RhdF9pbmZvLT5jb3VudHMuZGVsdGFfbGl2ZV90dXBsZXMgPSAwOworCQlwZ3N0YXRfaW5m by0+Y291bnRzLmRlbHRhX2RlYWRfdHVwbGVzID0gMDsKIAl9Ci0JcGdzdGF0X2luZm8tPnRf Y291bnRzLnRfZGVsdGFfbGl2ZV90dXBsZXMgKz0KKwlwZ3N0YXRfaW5mby0+Y291bnRzLmRl bHRhX2xpdmVfdHVwbGVzICs9CiAJCXJlYy0+dHVwbGVzX2luc2VydGVkIC0gcmVjLT50dXBs ZXNfZGVsZXRlZDsKLQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxl cyArPQorCXBnc3RhdF9pbmZvLT5jb3VudHMuZGVsdGFfZGVhZF90dXBsZXMgKz0KIAkJcmVj LT50dXBsZXNfdXBkYXRlZCArIHJlYy0+dHVwbGVzX2RlbGV0ZWQ7Ci0JcGdzdGF0X2luZm8t PnRfY291bnRzLnRfY2hhbmdlZF90dXBsZXMgKz0KKwlwZ3N0YXRfaW5mby0+Y291bnRzLmNo YW5nZWRfdHVwbGVzICs9CiAJCXJlYy0+dHVwbGVzX2luc2VydGVkICsgcmVjLT50dXBsZXNf dXBkYXRlZCArCiAJCXJlYy0+dHVwbGVzX2RlbGV0ZWQ7CiB9CkBAIC03MzUsMTkgKzczNSwx OSBAQCBwZ3N0YXRfdHdvcGhhc2VfcG9zdGFib3J0KFRyYW5zYWN0aW9uSWQgeGlkLCB1aW50 MTYgaW5mbywKIAlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvOwogCiAJLyogRmlu ZCBvciBjcmVhdGUgYSB0YWJzdGF0IGVudHJ5IGZvciB0aGUgcmVsICovCi0JcGdzdGF0X2lu Zm8gPSBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKHJlYy0+dF9pZCwgcmVjLT50X3No YXJlZCk7CisJcGdzdGF0X2luZm8gPSBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKHJl Yy0+aWQsIHJlYy0+c2hhcmVkKTsKIAogCS8qIFNhbWUgbWF0aCBhcyBpbiBBdEVPWGFjdF9Q Z1N0YXQsIGFib3J0IGNhc2UgKi8KLQlpZiAocmVjLT50X3RydW5jZHJvcHBlZCkKKwlpZiAo cmVjLT50cnVuY2Ryb3BwZWQpCiAJewogCQlyZWMtPnR1cGxlc19pbnNlcnRlZCA9IHJlYy0+ aW5zZXJ0ZWRfcHJlX3RydW5jZHJvcDsKIAkJcmVjLT50dXBsZXNfdXBkYXRlZCA9IHJlYy0+ dXBkYXRlZF9wcmVfdHJ1bmNkcm9wOwogCQlyZWMtPnR1cGxlc19kZWxldGVkID0gcmVjLT5k ZWxldGVkX3ByZV90cnVuY2Ryb3A7CiAJfQotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1 cGxlc19pbnNlcnRlZCArPSByZWMtPnR1cGxlc19pbnNlcnRlZDsKLQlwZ3N0YXRfaW5mby0+ dF9jb3VudHMudF90dXBsZXNfdXBkYXRlZCArPSByZWMtPnR1cGxlc191cGRhdGVkOwotCXBn c3RhdF9pbmZvLT50X2NvdW50cy50X3R1cGxlc19kZWxldGVkICs9IHJlYy0+dHVwbGVzX2Rl bGV0ZWQ7Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfZGVsdGFfZGVhZF90dXBsZXMgKz0K KwlwZ3N0YXRfaW5mby0+Y291bnRzLnR1cGxlc19pbnNlcnRlZCArPSByZWMtPnR1cGxlc19p bnNlcnRlZDsKKwlwZ3N0YXRfaW5mby0+Y291bnRzLnR1cGxlc191cGRhdGVkICs9IHJlYy0+ dHVwbGVzX3VwZGF0ZWQ7CisJcGdzdGF0X2luZm8tPmNvdW50cy50dXBsZXNfZGVsZXRlZCAr PSByZWMtPnR1cGxlc19kZWxldGVkOworCXBnc3RhdF9pbmZvLT5jb3VudHMuZGVsdGFfZGVh ZF90dXBsZXMgKz0KIAkJcmVjLT50dXBsZXNfaW5zZXJ0ZWQgKyByZWMtPnR1cGxlc191cGRh dGVkOwogfQogCkBAIC03NzgsNyArNzc4LDcgQEAgcGdzdGF0X3JlbGF0aW9uX2ZsdXNoX2Ni KFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKIAkgKiBJZ25vcmUg ZW50cmllcyB0aGF0IGRpZG4ndCBhY2N1bXVsYXRlIGFueSBhY3R1YWwgY291bnRzLCBzdWNo IGFzCiAJICogaW5kZXhlcyB0aGF0IHdlcmUgb3BlbmVkIGJ5IHRoZSBwbGFubmVyIGJ1dCBu b3QgdXNlZC4KIAkgKi8KLQlpZiAobWVtY21wKCZsc3RhdHMtPnRfY291bnRzLCAmYWxsX3pl cm9lcywKKwlpZiAobWVtY21wKCZsc3RhdHMtPmNvdW50cywgJmFsbF96ZXJvZXMsCiAJCQkg ICBzaXplb2YoUGdTdGF0X1RhYmxlQ291bnRzKSkgPT0gMCkKIAl7CiAJCXJldHVybiB0cnVl OwpAQCAtNzkwLDM3ICs3OTAsMzcgQEAgcGdzdGF0X3JlbGF0aW9uX2ZsdXNoX2NiKFBnU3Rh dF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKIAkvKiBhZGQgdGhlIHZhbHVl cyB0byB0aGUgc2hhcmVkIGVudHJ5LiAqLwogCXRhYmVudHJ5ID0gJnNodGFic3RhdHMtPnN0 YXRzOwogCi0JdGFiZW50cnktPm51bXNjYW5zICs9IGxzdGF0cy0+dF9jb3VudHMudF9udW1z Y2FuczsKLQlpZiAobHN0YXRzLT50X2NvdW50cy50X251bXNjYW5zKQorCXRhYmVudHJ5LT5u dW1zY2FucyArPSBsc3RhdHMtPmNvdW50cy5udW1zY2FuczsKKwlpZiAobHN0YXRzLT5jb3Vu dHMubnVtc2NhbnMpCiAJewogCQlUaW1lc3RhbXBUeiB0ID0gR2V0Q3VycmVudFRyYW5zYWN0 aW9uU3RvcFRpbWVzdGFtcCgpOwogCiAJCWlmICh0ID4gdGFiZW50cnktPmxhc3RzY2FuKQog CQkJdGFiZW50cnktPmxhc3RzY2FuID0gdDsKIAl9Ci0JdGFiZW50cnktPnR1cGxlc19yZXR1 cm5lZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkOwotCXRhYmVudHJ5 LT50dXBsZXNfZmV0Y2hlZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX2ZldGNoZWQ7 Ci0JdGFiZW50cnktPnR1cGxlc19pbnNlcnRlZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVw bGVzX2luc2VydGVkOwotCXRhYmVudHJ5LT50dXBsZXNfdXBkYXRlZCArPSBsc3RhdHMtPnRf Y291bnRzLnRfdHVwbGVzX3VwZGF0ZWQ7Ci0JdGFiZW50cnktPnR1cGxlc19kZWxldGVkICs9 IGxzdGF0cy0+dF9jb3VudHMudF90dXBsZXNfZGVsZXRlZDsKLQl0YWJlbnRyeS0+dHVwbGVz X2hvdF91cGRhdGVkICs9IGxzdGF0cy0+dF9jb3VudHMudF90dXBsZXNfaG90X3VwZGF0ZWQ7 CisJdGFiZW50cnktPnR1cGxlc19yZXR1cm5lZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNf cmV0dXJuZWQ7CisJdGFiZW50cnktPnR1cGxlc19mZXRjaGVkICs9IGxzdGF0cy0+Y291bnRz LnR1cGxlc19mZXRjaGVkOworCXRhYmVudHJ5LT50dXBsZXNfaW5zZXJ0ZWQgKz0gbHN0YXRz LT5jb3VudHMudHVwbGVzX2luc2VydGVkOworCXRhYmVudHJ5LT50dXBsZXNfdXBkYXRlZCAr PSBsc3RhdHMtPmNvdW50cy50dXBsZXNfdXBkYXRlZDsKKwl0YWJlbnRyeS0+dHVwbGVzX2Rl bGV0ZWQgKz0gbHN0YXRzLT5jb3VudHMudHVwbGVzX2RlbGV0ZWQ7CisJdGFiZW50cnktPnR1 cGxlc19ob3RfdXBkYXRlZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfaG90X3VwZGF0ZWQ7 CiAKIAkvKgogCSAqIElmIHRhYmxlIHdhcyB0cnVuY2F0ZWQvZHJvcHBlZCwgZmlyc3QgcmVz ZXQgdGhlIGxpdmUvZGVhZCBjb3VudGVycy4KIAkgKi8KLQlpZiAobHN0YXRzLT50X2NvdW50 cy50X3RydW5jZHJvcHBlZCkKKwlpZiAobHN0YXRzLT5jb3VudHMudHJ1bmNkcm9wcGVkKQog CXsKIAkJdGFiZW50cnktPmxpdmVfdHVwbGVzID0gMDsKIAkJdGFiZW50cnktPmRlYWRfdHVw bGVzID0gMDsKIAkJdGFiZW50cnktPmluc19zaW5jZV92YWN1dW0gPSAwOwogCX0KIAotCXRh YmVudHJ5LT5saXZlX3R1cGxlcyArPSBsc3RhdHMtPnRfY291bnRzLnRfZGVsdGFfbGl2ZV90 dXBsZXM7Ci0JdGFiZW50cnktPmRlYWRfdHVwbGVzICs9IGxzdGF0cy0+dF9jb3VudHMudF9k ZWx0YV9kZWFkX3R1cGxlczsKLQl0YWJlbnRyeS0+bW9kX3NpbmNlX2FuYWx5emUgKz0gbHN0 YXRzLT50X2NvdW50cy50X2NoYW5nZWRfdHVwbGVzOwotCXRhYmVudHJ5LT5pbnNfc2luY2Vf dmFjdXVtICs9IGxzdGF0cy0+dF9jb3VudHMudF90dXBsZXNfaW5zZXJ0ZWQ7Ci0JdGFiZW50 cnktPmJsb2Nrc19mZXRjaGVkICs9IGxzdGF0cy0+dF9jb3VudHMudF9ibG9ja3NfZmV0Y2hl ZDsKLQl0YWJlbnRyeS0+YmxvY2tzX2hpdCArPSBsc3RhdHMtPnRfY291bnRzLnRfYmxvY2tz X2hpdDsKKwl0YWJlbnRyeS0+bGl2ZV90dXBsZXMgKz0gbHN0YXRzLT5jb3VudHMuZGVsdGFf bGl2ZV90dXBsZXM7CisJdGFiZW50cnktPmRlYWRfdHVwbGVzICs9IGxzdGF0cy0+Y291bnRz LmRlbHRhX2RlYWRfdHVwbGVzOworCXRhYmVudHJ5LT5tb2Rfc2luY2VfYW5hbHl6ZSArPSBs c3RhdHMtPmNvdW50cy5jaGFuZ2VkX3R1cGxlczsKKwl0YWJlbnRyeS0+aW5zX3NpbmNlX3Zh Y3V1bSArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfaW5zZXJ0ZWQ7CisJdGFiZW50cnktPmJs b2Nrc19mZXRjaGVkICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19mZXRjaGVkOworCXRhYmVu dHJ5LT5ibG9ja3NfaGl0ICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19oaXQ7CiAKIAkvKiBD bGFtcCBsaXZlX3R1cGxlcyBpbiBjYXNlIG9mIG5lZ2F0aXZlIGRlbHRhX2xpdmVfdHVwbGVz ICovCiAJdGFiZW50cnktPmxpdmVfdHVwbGVzID0gTWF4KHRhYmVudHJ5LT5saXZlX3R1cGxl cywgMCk7CkBAIC04MzEsMTMgKzgzMSwxMyBAQCBwZ3N0YXRfcmVsYXRpb25fZmx1c2hfY2Io UGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KQogCiAJLyogVGhlIGVu dHJ5IHdhcyBzdWNjZXNzZnVsbHkgZmx1c2hlZCwgYWRkIHRoZSBzYW1lIHRvIGRhdGFiYXNl IHN0YXRzICovCiAJZGJlbnRyeSA9IHBnc3RhdF9wcmVwX2RhdGFiYXNlX3BlbmRpbmcoZGJv aWQpOwotCWRiZW50cnktPnR1cGxlc19yZXR1cm5lZCArPSBsc3RhdHMtPnRfY291bnRzLnRf dHVwbGVzX3JldHVybmVkOwotCWRiZW50cnktPnR1cGxlc19mZXRjaGVkICs9IGxzdGF0cy0+ dF9jb3VudHMudF90dXBsZXNfZmV0Y2hlZDsKLQlkYmVudHJ5LT50dXBsZXNfaW5zZXJ0ZWQg Kz0gbHN0YXRzLT50X2NvdW50cy50X3R1cGxlc19pbnNlcnRlZDsKLQlkYmVudHJ5LT50dXBs ZXNfdXBkYXRlZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX3VwZGF0ZWQ7Ci0JZGJl bnRyeS0+dHVwbGVzX2RlbGV0ZWQgKz0gbHN0YXRzLT50X2NvdW50cy50X3R1cGxlc19kZWxl dGVkOwotCWRiZW50cnktPmJsb2Nrc19mZXRjaGVkICs9IGxzdGF0cy0+dF9jb3VudHMudF9i bG9ja3NfZmV0Y2hlZDsKLQlkYmVudHJ5LT5ibG9ja3NfaGl0ICs9IGxzdGF0cy0+dF9jb3Vu dHMudF9ibG9ja3NfaGl0OworCWRiZW50cnktPnR1cGxlc19yZXR1cm5lZCArPSBsc3RhdHMt PmNvdW50cy50dXBsZXNfcmV0dXJuZWQ7CisJZGJlbnRyeS0+dHVwbGVzX2ZldGNoZWQgKz0g bHN0YXRzLT5jb3VudHMudHVwbGVzX2ZldGNoZWQ7CisJZGJlbnRyeS0+dHVwbGVzX2luc2Vy dGVkICs9IGxzdGF0cy0+Y291bnRzLnR1cGxlc19pbnNlcnRlZDsKKwlkYmVudHJ5LT50dXBs ZXNfdXBkYXRlZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfdXBkYXRlZDsKKwlkYmVudHJ5 LT50dXBsZXNfZGVsZXRlZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfZGVsZXRlZDsKKwlk YmVudHJ5LT5ibG9ja3NfZmV0Y2hlZCArPSBsc3RhdHMtPmNvdW50cy5ibG9ja3NfZmV0Y2hl ZDsKKwlkYmVudHJ5LT5ibG9ja3NfaGl0ICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19oaXQ7 CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTg2NSw4ICs4NjUsOCBAQCBwZ3N0YXRfcHJlcF9y ZWxhdGlvbl9wZW5kaW5nKE9pZCByZWxfaWQsIGJvb2wgaXNzaGFyZWQpCiAJCQkJCQkJCQkJ ICBpc3NoYXJlZCA/IEludmFsaWRPaWQgOiBNeURhdGFiYXNlSWQsCiAJCQkJCQkJCQkJICBy ZWxfaWQsIE5VTEwpOwogCXBlbmRpbmcgPSBlbnRyeV9yZWYtPnBlbmRpbmc7Ci0JcGVuZGlu Zy0+dF9pZCA9IHJlbF9pZDsKLQlwZW5kaW5nLT50X3NoYXJlZCA9IGlzc2hhcmVkOworCXBl bmRpbmctPmlkID0gcmVsX2lkOworCXBlbmRpbmctPnNoYXJlZCA9IGlzc2hhcmVkOwogCiAJ cmV0dXJuIHBlbmRpbmc7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv cGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmlu ZGV4IDM1YzZkNDY1NTUuLjRmMjFmYjJkYzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0 YXRmdW5jcy5jCkBAIC0xNDYsNyArMTQ2LDcgQEAgcGdfc3RhdF9nZXRfZnVuY3Rpb25fY2Fs bHMoUEdfRlVOQ1RJT05fQVJHUykKIAogCWlmICgoZnVuY2VudHJ5ID0gcGdzdGF0X2ZldGNo X3N0YXRfZnVuY2VudHJ5KGZ1bmNpZCkpID09IE5VTEwpCiAJCVBHX1JFVFVSTl9OVUxMKCk7 Ci0JUEdfUkVUVVJOX0lOVDY0KGZ1bmNlbnRyeS0+Zl9udW1jYWxscyk7CisJUEdfUkVUVVJO X0lOVDY0KGZ1bmNlbnRyeS0+bnVtY2FsbHMpOwogfQogCiBEYXR1bQpAQCAtMTU4LDcgKzE1 OCw3IEBAIHBnX3N0YXRfZ2V0X2Z1bmN0aW9uX3RvdGFsX3RpbWUoUEdfRlVOQ1RJT05fQVJH UykKIAlpZiAoKGZ1bmNlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2Z1bmNlbnRyeShmdW5j aWQpKSA9PSBOVUxMKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCS8qIGNvbnZlcnQgY291bnRl ciBmcm9tIG1pY3Jvc2VjIHRvIG1pbGxpc2VjIGZvciBkaXNwbGF5ICovCi0JUEdfUkVUVVJO X0ZMT0FUOCgoKGRvdWJsZSkgZnVuY2VudHJ5LT5mX3RvdGFsX3RpbWUpIC8gMTAwMC4wKTsK KwlQR19SRVRVUk5fRkxPQVQ4KCgoZG91YmxlKSBmdW5jZW50cnktPnRvdGFsX3RpbWUpIC8g MTAwMC4wKTsKIH0KIAogRGF0dW0KQEAgLTE3MCw3ICsxNzAsNyBAQCBwZ19zdGF0X2dldF9m dW5jdGlvbl9zZWxmX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoKGZ1bmNlbnRyeSA9 IHBnc3RhdF9mZXRjaF9zdGF0X2Z1bmNlbnRyeShmdW5jaWQpKSA9PSBOVUxMKQogCQlQR19S RVRVUk5fTlVMTCgpOwogCS8qIGNvbnZlcnQgY291bnRlciBmcm9tIG1pY3Jvc2VjIHRvIG1p bGxpc2VjIGZvciBkaXNwbGF5ICovCi0JUEdfUkVUVVJOX0ZMT0FUOCgoKGRvdWJsZSkgZnVu Y2VudHJ5LT5mX3NlbGZfdGltZSkgLyAxMDAwLjApOworCVBHX1JFVFVSTl9GTE9BVDgoKChk b3VibGUpIGZ1bmNlbnRyeS0+c2VsZl90aW1lKSAvIDEwMDAuMCk7CiB9CiAKIERhdHVtCkBA IC0xNTA1LDcgKzE1MDUsNyBAQCBwZ19zdGF0X2dldF94YWN0X251bXNjYW5zKFBHX0ZVTkNU SU9OX0FSR1MpCiAJaWYgKCh0YWJlbnRyeSA9IGZpbmRfdGFic3RhdF9lbnRyeShyZWxpZCkp ID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0 YWJlbnRyeS0+dF9jb3VudHMudF9udW1zY2Fucyk7CisJCXJlc3VsdCA9IChpbnQ2NCkgKHRh YmVudHJ5LT5jb3VudHMubnVtc2NhbnMpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7 CiB9CkBAIC0xNTIwLDcgKzE1MjAsNyBAQCBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19yZXR1 cm5lZChQR19GVU5DVElPTl9BUkdTKQogCWlmICgodGFiZW50cnkgPSBmaW5kX3RhYnN0YXRf ZW50cnkocmVsaWQpKSA9PSBOVUxMKQogCQlyZXN1bHQgPSAwOwogCWVsc2UKLQkJcmVzdWx0 ID0gKGludDY0KSAodGFiZW50cnktPnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkKTsKKwkJ cmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPmNvdW50cy50dXBsZXNfcmV0dXJuZWQpOwog CiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0xNTM1LDcgKzE1MzUsNyBAQCBw Z19zdGF0X2dldF94YWN0X3R1cGxlc19mZXRjaGVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYg KCh0YWJlbnRyeSA9IGZpbmRfdGFic3RhdF9lbnRyeShyZWxpZCkpID09IE5VTEwpCiAJCXJl c3VsdCA9IDA7CiAJZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+dF9jb3Vu dHMudF90dXBsZXNfZmV0Y2hlZCk7CisJCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5j b3VudHMudHVwbGVzX2ZldGNoZWQpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9 CkBAIC0xNTUyLDcgKzE1NTIsNyBAQCBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19pbnNlcnRl ZChQR19GVU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSAwOwogCWVsc2UKIAl7Ci0JCXJlc3Vs dCA9IHRhYmVudHJ5LT50X2NvdW50cy50X3R1cGxlc19pbnNlcnRlZDsKKwkJcmVzdWx0ID0g dGFiZW50cnktPmNvdW50cy50dXBsZXNfaW5zZXJ0ZWQ7CiAJCS8qIGxpdmUgc3VidHJhbnNh Y3Rpb25zJyBjb3VudHMgYXJlbid0IGluIHRfdHVwbGVzX2luc2VydGVkIHlldCAqLwogCQlm b3IgKHRyYW5zID0gdGFiZW50cnktPnRyYW5zOyB0cmFucyAhPSBOVUxMOyB0cmFucyA9IHRy YW5zLT51cHBlcikKIAkJCXJlc3VsdCArPSB0cmFucy0+dHVwbGVzX2luc2VydGVkOwpAQCAt MTU3Myw3ICsxNTczLDcgQEAgcGdfc3RhdF9nZXRfeGFjdF90dXBsZXNfdXBkYXRlZChQR19G VU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSAwOwogCWVsc2UKIAl7Ci0JCXJlc3VsdCA9IHRh YmVudHJ5LT50X2NvdW50cy50X3R1cGxlc191cGRhdGVkOworCQlyZXN1bHQgPSB0YWJlbnRy eS0+Y291bnRzLnR1cGxlc191cGRhdGVkOwogCQkvKiBsaXZlIHN1YnRyYW5zYWN0aW9ucycg Y291bnRzIGFyZW4ndCBpbiB0X3R1cGxlc191cGRhdGVkIHlldCAqLwogCQlmb3IgKHRyYW5z ID0gdGFiZW50cnktPnRyYW5zOyB0cmFucyAhPSBOVUxMOyB0cmFucyA9IHRyYW5zLT51cHBl cikKIAkJCXJlc3VsdCArPSB0cmFucy0+dHVwbGVzX3VwZGF0ZWQ7CkBAIC0xNTk0LDcgKzE1 OTQsNyBAQCBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19kZWxldGVkKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQogCXsKLQkJcmVzdWx0ID0gdGFiZW50cnktPnRf Y291bnRzLnRfdHVwbGVzX2RlbGV0ZWQ7CisJCXJlc3VsdCA9IHRhYmVudHJ5LT5jb3VudHMu dHVwbGVzX2RlbGV0ZWQ7CiAJCS8qIGxpdmUgc3VidHJhbnNhY3Rpb25zJyBjb3VudHMgYXJl bid0IGluIHRfdHVwbGVzX2RlbGV0ZWQgeWV0ICovCiAJCWZvciAodHJhbnMgPSB0YWJlbnRy eS0+dHJhbnM7IHRyYW5zICE9IE5VTEw7IHRyYW5zID0gdHJhbnMtPnVwcGVyKQogCQkJcmVz dWx0ICs9IHRyYW5zLT50dXBsZXNfZGVsZXRlZDsKQEAgLTE2MTMsNyArMTYxMyw3IEBAIHBn X3N0YXRfZ2V0X3hhY3RfdHVwbGVzX2hvdF91cGRhdGVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ aWYgKCh0YWJlbnRyeSA9IGZpbmRfdGFic3RhdF9lbnRyeShyZWxpZCkpID09IE5VTEwpCiAJ CXJlc3VsdCA9IDA7CiAJZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+dF9j b3VudHMudF90dXBsZXNfaG90X3VwZGF0ZWQpOworCQlyZXN1bHQgPSAoaW50NjQpICh0YWJl bnRyeS0+Y291bnRzLnR1cGxlc19ob3RfdXBkYXRlZCk7CiAKIAlQR19SRVRVUk5fSU5UNjQo cmVzdWx0KTsKIH0KQEAgLTE2MjgsNyArMTYyOCw3IEBAIHBnX3N0YXRfZ2V0X3hhY3RfYmxv Y2tzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoKHRhYmVudHJ5ID0gZmluZF90 YWJzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVMTCkKIAkJcmVzdWx0ID0gMDsKIAllbHNlCi0J CXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT50X2NvdW50cy50X2Jsb2Nrc19mZXRjaGVk KTsKKwkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPmNvdW50cy5ibG9ja3NfZmV0Y2hl ZCk7CiAKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KQEAgLTE2NDMsNyArMTY0Myw3 IEBAIHBnX3N0YXRfZ2V0X3hhY3RfYmxvY2tzX2hpdChQR19GVU5DVElPTl9BUkdTKQogCWlm ICgodGFiZW50cnkgPSBmaW5kX3RhYnN0YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQogCQly ZXN1bHQgPSAwOwogCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPnRfY291 bnRzLnRfYmxvY2tzX2hpdCk7CisJCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5jb3Vu dHMuYmxvY2tzX2hpdCk7CiAKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KQEAgLTE2 NTYsNyArMTY1Niw3IEBAIHBnX3N0YXRfZ2V0X3hhY3RfZnVuY3Rpb25fY2FsbHMoUEdfRlVO Q1RJT05fQVJHUykKIAogCWlmICgoZnVuY2VudHJ5ID0gZmluZF9mdW5jc3RhdF9lbnRyeShm dW5jaWQpKSA9PSBOVUxMKQogCQlQR19SRVRVUk5fTlVMTCgpOwotCVBHX1JFVFVSTl9JTlQ2 NChmdW5jZW50cnktPmZfbnVtY2FsbHMpOworCVBHX1JFVFVSTl9JTlQ2NChmdW5jZW50cnkt Pm51bWNhbGxzKTsKIH0KIAogRGF0dW0KQEAgLTE2NjcsNyArMTY2Nyw3IEBAIHBnX3N0YXRf Z2V0X3hhY3RfZnVuY3Rpb25fdG90YWxfdGltZShQR19GVU5DVElPTl9BUkdTKQogCiAJaWYg KChmdW5jZW50cnkgPSBmaW5kX2Z1bmNzdGF0X2VudHJ5KGZ1bmNpZCkpID09IE5VTEwpCiAJ CVBHX1JFVFVSTl9OVUxMKCk7Ci0JUEdfUkVUVVJOX0ZMT0FUOChJTlNUUl9USU1FX0dFVF9N SUxMSVNFQyhmdW5jZW50cnktPmZfdG90YWxfdGltZSkpOworCVBHX1JFVFVSTl9GTE9BVDgo SU5TVFJfVElNRV9HRVRfTUlMTElTRUMoZnVuY2VudHJ5LT50b3RhbF90aW1lKSk7CiB9CiAK IERhdHVtCkBAIC0xNjc4LDcgKzE2NzgsNyBAQCBwZ19zdGF0X2dldF94YWN0X2Z1bmN0aW9u X3NlbGZfdGltZShQR19GVU5DVElPTl9BUkdTKQogCiAJaWYgKChmdW5jZW50cnkgPSBmaW5k X2Z1bmNzdGF0X2VudHJ5KGZ1bmNpZCkpID09IE5VTEwpCiAJCVBHX1JFVFVSTl9OVUxMKCk7 Ci0JUEdfUkVUVVJOX0ZMT0FUOChJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhmdW5jZW50cnkt PmZfc2VsZl90aW1lKSk7CisJUEdfUkVUVVJOX0ZMT0FUOChJTlNUUl9USU1FX0dFVF9NSUxM SVNFQyhmdW5jZW50cnktPnNlbGZfdGltZSkpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggMWU0MThiNjgy Yi4uOTA3NzQ2OTY1NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIv c3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTEwNiw5ICsxMDYsOSBAQCB0eXBlZGVmIGludDY0 IFBnU3RhdF9Db3VudGVyOwogICovCiB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfRnVuY3Rpb25D b3VudHMKIHsKLQlQZ1N0YXRfQ291bnRlciBmX251bWNhbGxzOwotCWluc3RyX3RpbWUJZl90 b3RhbF90aW1lOwotCWluc3RyX3RpbWUJZl9zZWxmX3RpbWU7CisJUGdTdGF0X0NvdW50ZXIg bnVtY2FsbHM7CisJaW5zdHJfdGltZQl0b3RhbF90aW1lOworCWluc3RyX3RpbWUJc2VsZl90 aW1lOwogfSBQZ1N0YXRfRnVuY3Rpb25Db3VudHM7CiAKIC8qCkBAIC0xMjQsNyArMTI0LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0Z1bmN0aW9uQ2FsbFVzYWdlCiAJLyogQmFja2Vu ZC13aWRlIHRvdGFsIHRpbWUgYXMgb2YgZnVuY3Rpb24gc3RhcnQgKi8KIAlpbnN0cl90aW1l CXNhdmVfdG90YWw7CiAJLyogc3lzdGVtIGNsb2NrIGFzIG9mIGZ1bmN0aW9uIHN0YXJ0ICov Ci0JaW5zdHJfdGltZQlmX3N0YXJ0OworCWluc3RyX3RpbWUJc3RhcnQ7CiB9IFBnU3RhdF9G dW5jdGlvbkNhbGxVc2FnZTsKIAogLyogLS0tLS0tLS0tLQpAQCAtMTU5LDIzICsxNTksMjMg QEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0JhY2tlbmRTdWJFbnRyeQogICovCiB0eXBlZGVm IHN0cnVjdCBQZ1N0YXRfVGFibGVDb3VudHMKIHsKLQlQZ1N0YXRfQ291bnRlciB0X251bXNj YW5zOworCVBnU3RhdF9Db3VudGVyIG51bXNjYW5zOwogCi0JUGdTdGF0X0NvdW50ZXIgdF90 dXBsZXNfcmV0dXJuZWQ7Ci0JUGdTdGF0X0NvdW50ZXIgdF90dXBsZXNfZmV0Y2hlZDsKKwlQ Z1N0YXRfQ291bnRlciB0dXBsZXNfcmV0dXJuZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVz X2ZldGNoZWQ7CiAKLQlQZ1N0YXRfQ291bnRlciB0X3R1cGxlc19pbnNlcnRlZDsKLQlQZ1N0 YXRfQ291bnRlciB0X3R1cGxlc191cGRhdGVkOwotCVBnU3RhdF9Db3VudGVyIHRfdHVwbGVz X2RlbGV0ZWQ7Ci0JUGdTdGF0X0NvdW50ZXIgdF90dXBsZXNfaG90X3VwZGF0ZWQ7Ci0JYm9v bAkJdF90cnVuY2Ryb3BwZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVzX2luc2VydGVkOwor CVBnU3RhdF9Db3VudGVyIHR1cGxlc191cGRhdGVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxl c19kZWxldGVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc19ob3RfdXBkYXRlZDsKKwlib29s CQl0cnVuY2Ryb3BwZWQ7CiAKLQlQZ1N0YXRfQ291bnRlciB0X2RlbHRhX2xpdmVfdHVwbGVz OwotCVBnU3RhdF9Db3VudGVyIHRfZGVsdGFfZGVhZF90dXBsZXM7Ci0JUGdTdGF0X0NvdW50 ZXIgdF9jaGFuZ2VkX3R1cGxlczsKKwlQZ1N0YXRfQ291bnRlciBkZWx0YV9saXZlX3R1cGxl czsKKwlQZ1N0YXRfQ291bnRlciBkZWx0YV9kZWFkX3R1cGxlczsKKwlQZ1N0YXRfQ291bnRl ciBjaGFuZ2VkX3R1cGxlczsKIAotCVBnU3RhdF9Db3VudGVyIHRfYmxvY2tzX2ZldGNoZWQ7 Ci0JUGdTdGF0X0NvdW50ZXIgdF9ibG9ja3NfaGl0OworCVBnU3RhdF9Db3VudGVyIGJsb2Nr c19mZXRjaGVkOworCVBnU3RhdF9Db3VudGVyIGJsb2Nrc19oaXQ7CiB9IFBnU3RhdF9UYWJs ZUNvdW50czsKIAogLyogLS0tLS0tLS0tLQpAQCAtMTk1LDEwICsxOTUsMTAgQEAgdHlwZWRl ZiBzdHJ1Y3QgUGdTdGF0X1RhYmxlQ291bnRzCiAgKi8KIHR5cGVkZWYgc3RydWN0IFBnU3Rh dF9UYWJsZVN0YXR1cwogewotCU9pZAkJCXRfaWQ7CQkJLyogdGFibGUncyBPSUQgKi8KLQli b29sCQl0X3NoYXJlZDsJCS8qIGlzIGl0IGEgc2hhcmVkIGNhdGFsb2c/ICovCisJT2lkCQkJ aWQ7CQkJLyogdGFibGUncyBPSUQgKi8KKwlib29sCQlzaGFyZWQ7CQkvKiBpcyBpdCBhIHNo YXJlZCBjYXRhbG9nPyAqLwogCXN0cnVjdCBQZ1N0YXRfVGFibGVYYWN0U3RhdHVzICp0cmFu czsJLyogbG93ZXN0IHN1YnhhY3QncyBjb3VudHMgKi8KLQlQZ1N0YXRfVGFibGVDb3VudHMg dF9jb3VudHM7CS8qIGV2ZW50IGNvdW50cyB0byBiZSBzZW50ICovCisJUGdTdGF0X1RhYmxl Q291bnRzIGNvdW50czsJLyogZXZlbnQgY291bnRzIHRvIGJlIHNlbnQgKi8KIAlSZWxhdGlv bglyZWxhdGlvbjsJCS8qIHJlbCB0aGF0IGlzIHVzaW5nIHRoaXMgZW50cnkgKi8KIH0gUGdT dGF0X1RhYmxlU3RhdHVzOwogCkBAIC0zNTEsMTAgKzM1MSwxMCBAQCB0eXBlZGVmIHN0cnVj dCBQZ1N0YXRfU3RhdERCRW50cnkKIAogdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRGdW5j RW50cnkKIHsKLQlQZ1N0YXRfQ291bnRlciBmX251bWNhbGxzOworCVBnU3RhdF9Db3VudGVy IG51bWNhbGxzOwogCi0JUGdTdGF0X0NvdW50ZXIgZl90b3RhbF90aW1lOwkvKiB0aW1lcyBp biBtaWNyb3NlY29uZHMgKi8KLQlQZ1N0YXRfQ291bnRlciBmX3NlbGZfdGltZTsKKwlQZ1N0 YXRfQ291bnRlciB0b3RhbF90aW1lOwkvKiB0aW1lcyBpbiBtaWNyb3NlY29uZHMgKi8KKwlQ Z1N0YXRfQ291bnRlciBzZWxmX3RpbWU7CiB9IFBnU3RhdF9TdGF0RnVuY0VudHJ5OwogCiB0 eXBlZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdFJlcGxTbG90RW50cnkKQEAgLTU4MiwzNyArNTgy LDM3IEBAIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlvbiByZWws CiAjZGVmaW5lIHBnc3RhdF9jb3VudF9oZWFwX3NjYW4ocmVsKQkJCQkJCQkJCVwKIAlkbyB7 CQkJCQkJCQkJCQkJCQkJXAogCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihy ZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF9udW1zY2Fu cysrOwkJCQlcCisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5udW1zY2FucysrOwkJ CQkJXAogCX0gd2hpbGUgKDApCiAjZGVmaW5lIHBnc3RhdF9jb3VudF9oZWFwX2dldG5leHQo cmVsKQkJCQkJCQkJXAogCWRvIHsJCQkJCQkJCQkJCQkJCQlcCiAJCWlmIChwZ3N0YXRfc2hv dWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAotCQkJKHJlbCktPnBnc3RhdF9pbmZv LT50X2NvdW50cy50X3R1cGxlc19yZXR1cm5lZCsrOwkJXAorCQkJKHJlbCktPnBnc3RhdF9p bmZvLT5jb3VudHMudHVwbGVzX3JldHVybmVkKys7CQkJXAogCX0gd2hpbGUgKDApCiAjZGVm aW5lIHBnc3RhdF9jb3VudF9oZWFwX2ZldGNoKHJlbCkJCQkJCQkJCVwKIAlkbyB7CQkJCQkJ CQkJCQkJCQkJXAogCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJ CQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNfZmV0Y2hl ZCsrOwkJXAorCQkJKHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMudHVwbGVzX2ZldGNoZWQr KzsJCQlcCiAJfSB3aGlsZSAoMCkKICNkZWZpbmUgcGdzdGF0X2NvdW50X2luZGV4X3NjYW4o cmVsKQkJCQkJCQkJXAogCWRvIHsJCQkJCQkJCQkJCQkJCQlcCiAJCWlmIChwZ3N0YXRfc2hv dWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAotCQkJKHJlbCktPnBnc3RhdF9pbmZv LT50X2NvdW50cy50X251bXNjYW5zKys7CQkJCVwKKwkJCShyZWwpLT5wZ3N0YXRfaW5mby0+ Y291bnRzLm51bXNjYW5zKys7CQkJCQlcCiAJfSB3aGlsZSAoMCkKICNkZWZpbmUgcGdzdGF0 X2NvdW50X2luZGV4X3R1cGxlcyhyZWwsIG4pCQkJCQkJCVwKIAlkbyB7CQkJCQkJCQkJCQkJ CQkJXAogCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwK LQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNfcmV0dXJuZWQgKz0g KG4pOwlcCisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy50dXBsZXNfcmV0dXJuZWQg Kz0gKG4pOwkJXAogCX0gd2hpbGUgKDApCiAjZGVmaW5lIHBnc3RhdF9jb3VudF9idWZmZXJf cmVhZChyZWwpCQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJCQkJCVwKIAkJaWYgKHBnc3Rh dF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCi0JCQkocmVsKS0+cGdzdGF0 X2luZm8tPnRfY291bnRzLnRfYmxvY2tzX2ZldGNoZWQrKzsJCVwKKwkJCShyZWwpLT5wZ3N0 YXRfaW5mby0+Y291bnRzLmJsb2Nrc19mZXRjaGVkKys7CQkJXAogCX0gd2hpbGUgKDApCiAj ZGVmaW5lIHBnc3RhdF9jb3VudF9idWZmZXJfaGl0KHJlbCkJCQkJCQkJCVwKIAlkbyB7CQkJ CQkJCQkJCQkJCQkJXAogCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwp KQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF9ibG9ja3NfaGl0 Kys7CQkJXAorCQkJKHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tzX2hpdCsrOwkJ CQlcCiAJfSB3aGlsZSAoMCkKIAogZXh0ZXJuIHZvaWQgcGdzdGF0X2NvdW50X2hlYXBfaW5z ZXJ0KFJlbGF0aW9uIHJlbCwgUGdTdGF0X0NvdW50ZXIgbik7Cg== --------------gDti4Rqz0uejfFFirjDGwX0m--