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 1pcETs-0000Ab-0V for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Mar 2023 23:55:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pcETp-0004h7-78 for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Mar 2023 23:54:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pcETo-0004gy-Qt for pgsql-hackers@lists.postgresql.org; Tue, 14 Mar 2023 23:54:56 +0000 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pcETm-0002Kn-3J for pgsql-hackers@lists.postgresql.org; Tue, 14 Mar 2023 23:54:56 +0000 Received: by mail-lf1-x12a.google.com with SMTP id bp27so11897637lfb.6 for ; Tue, 14 Mar 2023 16:54:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678838093; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=2I+KQBj+/OMwGmDeLE4dk3ok1tOoRsiNdR71MZo2ipI=; b=EgGZp+50BZfhuq/tsJ2TXFAfs7cS7m6bef9RUZ1X9NzdD4F3y7xXXCUJYctbapU06a 8R21Hzf0RyEGknEgwLK6AtDW0jjlb+Gz/DdWkYTt9kFa2XdkgFFfmuo086vKmDNIiH/O KYhmCQ1C1nb5LbcTwlJnbpOzXiJYBlST0pNraWVsR8HVHavBcjG39HLw1ZvBmQuh/2VM DjmzfX1ZYE1MGS6ARychMaKCjHvSL2gfW2Y/hPg5hhjfhO3WH0KhYC3znDcrfgwoQMgj Cj45cIMORIe2kHTgzhDZaPHD7msPpEHexjX9b+qOEZqd2PYSYk5OFAsBX2/u/4WxLI01 dxfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678838093; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2I+KQBj+/OMwGmDeLE4dk3ok1tOoRsiNdR71MZo2ipI=; b=jxmKd7I3TxzE2adbiWx5A5SigF27ygmwWdw4iHnzbWpQCsjXNrczrYhSIkYxcXQ0pa m0tjMLsWshiAEWYf7fSReLKCoM9sDReVTuLofdiY7mSJGRm7sr1VAe0lojGFWeFTvOce h74RSMf30ywAYLhCeaFIE+eTh4LyPJsJfK14dOUjhmP6nCREUlpH7YWqw0GGfva0NmOn lKpnqBjM9mycYJlgjBfdwJ9rrv6fAmqW67BS8GaMhK6XLS3RqGZwyjzbvqDowC3MhPfv y1+wS7MDIp40N6HRte0GY2QqI+JzoykRX8jeUx9eMnA3wNyNUcnAEvUNFz4+SKo29Lbk vYYQ== X-Gm-Message-State: AO0yUKVquztJpvnC1sxaiWg0khI0AgzWKtyGkBhqMsK9anJbbLeGKrh6 MHGOE1kOGxnalMq+CdHYKqKjwo/UdRui0KHyvyxtsSmb X-Google-Smtp-Source: AK7set+6Jj/7fwPPDw1D4eb1y9Z9iOPEuGkC3keF9RN9c2RRx2sbqwKtU/PCZg2R158jjcFY/UuKWR+/OgBEWHyHsiU= X-Received: by 2002:ac2:5639:0:b0:4e8:5112:1fd5 with SMTP id b25-20020ac25639000000b004e851121fd5mr1101845lff.1.1678838092902; Tue, 14 Mar 2023 16:54:52 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Peter Smith Date: Wed, 15 Mar 2023 10:54:26 +1100 Message-ID: Subject: Re: Add macros for ReorderBufferTXN toptxn To: Amit Kapila Cc: vignesh C , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000029d41505f6e4f4b0" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000029d41505f6e4f4b0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 14, 2023 at 10:43=E2=80=AFPM Amit Kapila wrote: > > On Tue, Mar 14, 2023 at 12:37=E2=80=AFPM Peter Smith wrote: > > > > Thanks for the review! > > > > On Mon, Mar 13, 2023 at 6:19=E2=80=AFPM vignesh C = wrote: > > ... > > > > > 4) We check if txn->toptxn is not null twice here both in if conditio= n > > > and in the assignment, we could retain the assignment operation as > > > earlier to remove the 2nd check: > > > - if (txn->toptxn) > > > - txn =3D txn->toptxn; > > > + if (isa_subtxn(txn)) > > > + txn =3D get_toptxn(txn); > > > > > > We could avoid one check again by: > > > + if (isa_subtxn(txn)) > > > + txn =3D txn->toptxn; > > > > > > > Yeah, that is true, but I chose not to keep the original assignment in > > this case mainly because then it is consistent with the other changed > > code --- e.g. Every other direct member assignment/access of the > > 'toptxn' member now hides behind the macros so I did not want this > > single place to be the odd one out. TBH, I don't think 1 extra check > > is of any significance, but it is not a problem to change like you > > suggested if other people also want it done that way. > > > > Can't we directly use rbtxn_get_toptxn() for this case? I think that > way code will look neat. I see that it is not exactly matching the > existing check so you might be worried but I feel the new code will > achieve the same purpose and will be easy to follow. > OK. Done as suggested. PSA v3. ------ Kind Regards, Peter Smith. Fujitsu Australia --00000000000029d41505f6e4f4b0 Content-Type: application/octet-stream; name="v3-0001-Add-macros-for-ReorderBufferTXN-toptxn.patch" Content-Disposition: attachment; filename="v3-0001-Add-macros-for-ReorderBufferTXN-toptxn.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lf8wszof0 RnJvbSA5YjY2MGUxMzZhZmE2ZjgyMGFmM2MzZDI3ODQxZWNlNGUwMjExMjFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBTbWl0aCA8cGV0ZXIuYi5zbWl0aEBmdWppdHN1LmNv bT4KRGF0ZTogV2VkLCAxNSBNYXIgMjAyMyAwOTozNzoyMCArMTEwMApTdWJqZWN0OiBbUEFUQ0gg djNdIEFkZCBtYWNyb3MgZm9yIFJlb3JkZXJCdWZmZXJUWE4gdG9wdHhuLgoKTWFrZSB0b3B0eG4g cmVsYXRlZCBjb2RlIG1vcmUgcmVhZGFibGUgYnkgaW50cm9kdWNpbmcgc29tZSBzaW1wbGUgbWFj cm9zLgotLS0KIGNvbnRyaWIvdGVzdF9kZWNvZGluZy90ZXN0X2RlY29kaW5nLmMgICAgICAgICAg IHwgIDQgKy0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIu YyB8IDQwICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICAgIHwgIDYgKystLQogc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vcmVvcmRlcmJ1ZmZlci5oICAgICAgICAgfCAxOCArKysrKysrKysrKwogNCBmaWxlcyBjaGFu Z2VkLCAzOCBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250 cmliL3Rlc3RfZGVjb2RpbmcvdGVzdF9kZWNvZGluZy5jIGIvY29udHJpYi90ZXN0X2RlY29kaW5n L3Rlc3RfZGVjb2RpbmcuYwppbmRleCBiN2U2MDQ4Li42MjhjNmEyIDEwMDY0NAotLS0gYS9jb250 cmliL3Rlc3RfZGVjb2RpbmcvdGVzdF9kZWNvZGluZy5jCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNv ZGluZy90ZXN0X2RlY29kaW5nLmMKQEAgLTgxNSwxMSArODE1LDExIEBAIHBnX2RlY29kZV9zdHJl YW1fYWJvcnQoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCSAqIG1haW50YWluIHRoZSBv dXRwdXRfcGx1Z2luX3ByaXZhdGUgb25seSB1bmRlciB0aGUgdG9wdHhuIHNvIGlmIHRoaXMgaXMK IAkgKiBub3QgdGhlIHRvcHR4biB0aGVuIGZldGNoIHRoZSB0b3B0eG4uCiAJICovCi0JUmVvcmRl ckJ1ZmZlclRYTiAqdG9wdHhuID0gdHhuLT50b3B0eG4gPyB0eG4tPnRvcHR4biA6IHR4bjsKKwlS ZW9yZGVyQnVmZmVyVFhOICp0b3B0eG4gPSByYnR4bl9nZXRfdG9wdHhuKHR4bik7CiAJVGVzdERl Y29kaW5nVHhuRGF0YSAqdHhuZGF0YSA9IHRvcHR4bi0+b3V0cHV0X3BsdWdpbl9wcml2YXRlOwog CWJvb2wJCXhhY3Rfd3JvdGVfY2hhbmdlcyA9IHR4bmRhdGEtPnhhY3Rfd3JvdGVfY2hhbmdlczsK IAotCWlmICh0eG4tPnRvcHR4biA9PSBOVUxMKQorCWlmIChyYnR4bl9pc190b3B0eG4odHhuKSkK IAl7CiAJCUFzc2VydCh0eG4tPm91dHB1dF9wbHVnaW5fcHJpdmF0ZSAhPSBOVUxMKTsKIAkJcGZy ZWUodHhuZGF0YSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3Jlb3JkZXJidWZmZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRl cmJ1ZmZlci5jCmluZGV4IDJkMTdjNTUuLjBmMDYzYjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jCkBAIC03MTcsMTAgKzcxNyw3IEBAIFJl b3JkZXJCdWZmZXJQcm9jZXNzUGFydGlhbENoYW5nZShSZW9yZGVyQnVmZmVyICpyYiwgUmVvcmRl ckJ1ZmZlclRYTiAqdHhuLAogCQlyZXR1cm47CiAKIAkvKiBHZXQgdGhlIHRvcCB0cmFuc2FjdGlv bi4gKi8KLQlpZiAodHhuLT50b3B0eG4gIT0gTlVMTCkKLQkJdG9wdHhuID0gdHhuLT50b3B0eG47 Ci0JZWxzZQotCQl0b3B0eG4gPSB0eG47CisJdG9wdHhuID0gcmJ0eG5fZ2V0X3RvcHR4bih0eG4p OwogCiAJLyoKIAkgKiBJbmRpY2F0ZSBhIHBhcnRpYWwgY2hhbmdlIGZvciB0b2FzdCBpbnNlcnRz LiAgVGhlIGNoYW5nZSB3aWxsIGJlCkBAIC04MDksMTMgKzgwNiw3IEBAIFJlb3JkZXJCdWZmZXJR dWV1ZUNoYW5nZShSZW9yZGVyQnVmZmVyICpyYiwgVHJhbnNhY3Rpb25JZCB4aWQsIFhMb2dSZWNQ dHIgbHNuLAogCQljaGFuZ2UtPmFjdGlvbiA9PSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfVFJVTkNB VEUgfHwKIAkJY2hhbmdlLT5hY3Rpb24gPT0gUkVPUkRFUl9CVUZGRVJfQ0hBTkdFX01FU1NBR0Up CiAJewotCQlSZW9yZGVyQnVmZmVyVFhOICp0b3B0eG47Ci0KLQkJLyogZ2V0IHRoZSB0b3AgdHJh bnNhY3Rpb24gKi8KLQkJaWYgKHR4bi0+dG9wdHhuICE9IE5VTEwpCi0JCQl0b3B0eG4gPSB0eG4t PnRvcHR4bjsKLQkJZWxzZQotCQkJdG9wdHhuID0gdHhuOworCQlSZW9yZGVyQnVmZmVyVFhOICp0 b3B0eG4gPSByYnR4bl9nZXRfdG9wdHhuKHR4bik7CiAKIAkJdG9wdHhuLT50eG5fZmxhZ3MgfD0g UkJUWE5fSEFTX1NUUkVBTUFCTEVfQ0hBTkdFOwogCX0KQEAgLTE2NjcsNyArMTY1OCw3IEBAIFJl b3JkZXJCdWZmZXJUcnVuY2F0ZVRYTihSZW9yZGVyQnVmZmVyICpyYiwgUmVvcmRlckJ1ZmZlclRY TiAqdHhuLCBib29sIHR4bl9wcmVwCiAJICogYWJvdXQgdGhlIHRvcGxldmVsIHhhY3QgKHdlIHNl bmQgdGhlIFhJRCBpbiBhbGwgbWVzc2FnZXMpLCBidXQgd2UgbmV2ZXIKIAkgKiBzdHJlYW0gWElE cyBvZiBlbXB0eSBzdWJ4YWN0cy4KIAkgKi8KLQlpZiAoKCF0eG5fcHJlcGFyZWQpICYmICgoIXR4 bi0+dG9wdHhuKSB8fCAodHhuLT5uZW50cmllc19tZW0gIT0gMCkpKQorCWlmICgoIXR4bl9wcmVw YXJlZCkgJiYgKHJidHhuX2lzX3RvcHR4bih0eG4pIHx8ICh0eG4tPm5lbnRyaWVzX21lbSAhPSAw KSkpCiAJCXR4bi0+dHhuX2ZsYWdzIHw9IFJCVFhOX0lTX1NUUkVBTUVEOwogCiAJaWYgKHR4bl9w cmVwYXJlZCkKQEAgLTMyMDcsMTAgKzMxOTgsNyBAQCBSZW9yZGVyQnVmZmVyQ2hhbmdlTWVtb3J5 VXBkYXRlKFJlb3JkZXJCdWZmZXIgKnJiLAogCSAqIFVwZGF0ZSB0aGUgdG90YWwgc2l6ZSBpbiB0 b3AgbGV2ZWwgYXMgd2VsbC4gVGhpcyBpcyBsYXRlciB1c2VkIHRvCiAJICogY29tcHV0ZSB0aGUg ZGVjb2Rpbmcgc3RhdHMuCiAJICovCi0JaWYgKHR4bi0+dG9wdHhuICE9IE5VTEwpCi0JCXRvcHR4 biA9IHR4bi0+dG9wdHhuOwotCWVsc2UKLQkJdG9wdHhuID0gdHhuOworCXRvcHR4biA9IHJidHhu X2dldF90b3B0eG4odHhuKTsKIAogCWlmIChhZGRpdGlvbikKIAl7CkBAIC0zMjk1LDggKzMyODMs NyBAQCBSZW9yZGVyQnVmZmVyQWRkSW52YWxpZGF0aW9ucyhSZW9yZGVyQnVmZmVyICpyYiwgVHJh bnNhY3Rpb25JZCB4aWQsCiAJICogc28gdGhhdCB3ZSBjYW4gZXhlY3V0ZSB0aGVtIGFsbCB0b2dl dGhlci4gIFNlZSBjb21tZW50cyBhdG9wIHRoaXMKIAkgKiBmdW5jdGlvbi4KIAkgKi8KLQlpZiAo dHhuLT50b3B0eG4pCi0JCXR4biA9IHR4bi0+dG9wdHhuOworCXR4biA9IHJidHhuX2dldF90b3B0 eG4odHhuKTsKIAogCUFzc2VydChubXNncyA+IDApOwogCkBAIC0zMzU0LDcgKzMzNDEsNiBAQCBS ZW9yZGVyQnVmZmVyWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoUmVvcmRlckJ1ZmZlciAqcmIsIFRyYW5z YWN0aW9uSWQgeGlkLAogCQkJCQkJCQkgIFhMb2dSZWNQdHIgbHNuKQogewogCVJlb3JkZXJCdWZm ZXJUWE4gKnR4bjsKLQlSZW9yZGVyQnVmZmVyVFhOICp0b3B0eG47CiAKIAl0eG4gPSBSZW9yZGVy QnVmZmVyVFhOQnlYaWQocmIsIHhpZCwgdHJ1ZSwgTlVMTCwgbHNuLCB0cnVlKTsKIApAQCAtMzM3 MCwxMSArMzM1NiwxNSBAQCBSZW9yZGVyQnVmZmVyWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoUmVvcmRl ckJ1ZmZlciAqcmIsIFRyYW5zYWN0aW9uSWQgeGlkLAogCSAqIGNvbnZlbmllbnRseSBjaGVjayBq dXN0IHRvcC1sZXZlbCB0cmFuc2FjdGlvbiBhbmQgZGVjaWRlIHdoZXRoZXIgdG8KIAkgKiBidWls ZCB0aGUgaGFzaCB0YWJsZSBvciBub3QuCiAJICovCi0JdG9wdHhuID0gdHhuLT50b3B0eG47Ci0J aWYgKHRvcHR4biAhPSBOVUxMICYmICFyYnR4bl9oYXNfY2F0YWxvZ19jaGFuZ2VzKHRvcHR4bikp CisJaWYgKHJidHhuX2lzX3N1YnR4bih0eG4pKQogCXsKLQkJdG9wdHhuLT50eG5fZmxhZ3MgfD0g UkJUWE5fSEFTX0NBVEFMT0dfQ0hBTkdFUzsKLQkJZGNsaXN0X3B1c2hfdGFpbCgmcmItPmNhdGNo YW5nZV90eG5zLCAmdG9wdHhuLT5jYXRjaGFuZ2Vfbm9kZSk7CisJCVJlb3JkZXJCdWZmZXJUWE4g KnRvcHR4biA9IHJidHhuX2dldF90b3B0eG4odHhuKTsKKworCQlpZiAoIXJidHhuX2hhc19jYXRh bG9nX2NoYW5nZXModG9wdHhuKSkKKwkJeworCQkJdG9wdHhuLT50eG5fZmxhZ3MgfD0gUkJUWE5f SEFTX0NBVEFMT0dfQ0hBTkdFUzsKKwkJCWRjbGlzdF9wdXNoX3RhaWwoJnJiLT5jYXRjaGFuZ2Vf dHhucywgJnRvcHR4bi0+Y2F0Y2hhbmdlX25vZGUpOworCQl9CiAJfQogfQogCkBAIC0zNjE5LDcg KzM2MDksNyBAQCBSZW9yZGVyQnVmZmVyQ2hlY2tNZW1vcnlMaW1pdChSZW9yZGVyQnVmZmVyICpy YikKIAkJCSh0eG4gPSBSZW9yZGVyQnVmZmVyTGFyZ2VzdFN0cmVhbWFibGVUb3BUWE4ocmIpKSAh PSBOVUxMKQogCQl7CiAJCQkvKiB3ZSBrbm93IHRoZXJlIGhhcyB0byBiZSBvbmUsIGJlY2F1c2Ug dGhlIHNpemUgaXMgbm90IHplcm8gKi8KLQkJCUFzc2VydCh0eG4gJiYgIXR4bi0+dG9wdHhuKTsK KwkJCUFzc2VydCh0eG4gJiYgcmJ0eG5faXNfdG9wdHhuKHR4bikpOwogCQkJQXNzZXJ0KHR4bi0+ dG90YWxfc2l6ZSA+IDApOwogCQkJQXNzZXJ0KHJiLT5zaXplID49IHR4bi0+dG90YWxfc2l6ZSk7 CiAKQEAgLTQwMDcsNyArMzk5Nyw3IEBAIFJlb3JkZXJCdWZmZXJTdHJlYW1UWE4oUmVvcmRlckJ1 ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4bikKIAlib29sCQl0eG5faXNfc3RyZWFtZWQ7 CiAKIAkvKiBXZSBjYW4gbmV2ZXIgcmVhY2ggaGVyZSBmb3IgYSBzdWJ0cmFuc2FjdGlvbi4gKi8K LQlBc3NlcnQodHhuLT50b3B0eG4gPT0gTlVMTCk7CisJQXNzZXJ0KHJidHhuX2lzX3RvcHR4bih0 eG4pKTsKIAogCS8qCiAJICogV2UgY2FuJ3QgbWFrZSBhbnkgYXNzdW1wdGlvbnMgYWJvdXQgYmFz ZSBzbmFwc2hvdCBoZXJlLCBzaW1pbGFyIHRvIHdoYXQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4IDAwYTJkNzMuLjNhMmQyZTMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtNjk0LDggKzY5NCw4IEBA IG1heWJlX3NlbmRfc2NoZW1hKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAlpZiAoaW5f c3RyZWFtaW5nKQogCQl4aWQgPSBjaGFuZ2UtPnR4bi0+eGlkOwogCi0JaWYgKGNoYW5nZS0+dHhu LT50b3B0eG4pCi0JCXRvcHhpZCA9IGNoYW5nZS0+dHhuLT50b3B0eG4tPnhpZDsKKwlpZiAocmJ0 eG5faXNfc3VidHhuKGNoYW5nZS0+dHhuKSkKKwkJdG9weGlkID0gcmJ0eG5fZ2V0X3RvcHR4bihj aGFuZ2UtPnR4biktPnhpZDsKIAllbHNlCiAJCXRvcHhpZCA9IHhpZDsKIApAQCAtMTg3OSw3ICsx ODc5LDcgQEAgcGdvdXRwdXRfc3RyZWFtX2Fib3J0KHN0cnVjdCBMb2dpY2FsRGVjb2RpbmdDb250 ZXh0ICpjdHgsCiAJQXNzZXJ0KCFpbl9zdHJlYW1pbmcpOwogCiAJLyogZGV0ZXJtaW5lIHRoZSB0 b3BsZXZlbCB0cmFuc2FjdGlvbiAqLwotCXRvcHR4biA9ICh0eG4tPnRvcHR4bikgPyB0eG4tPnRv cHR4biA6IHR4bjsKKwl0b3B0eG4gPSByYnR4bl9nZXRfdG9wdHhuKHR4bik7CiAKIAlBc3NlcnQo cmJ0eG5faXNfc3RyZWFtZWQodG9wdHhuKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Jlb3JkZXJidWZmZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Jlb3Jk ZXJidWZmZXIuaAppbmRleCAyMTVkMTQ5Li4wOGRjOWVlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi9yZW9yZGVyYnVmZmVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vcmVvcmRlcmJ1ZmZlci5oCkBAIC0yNDksNiArMjQ5LDI0IEBAIHR5cGVkZWYgc3RydWN0IFJl b3JkZXJCdWZmZXJDaGFuZ2UKIAkoKHR4biktPnR4bl9mbGFncyAmIFJCVFhOX1NLSVBQRURfUFJF UEFSRSkgIT0gMCBcCiApCiAKKy8qIElzIHRoaXMgYSB0b3AtbGV2ZWwgdHJhbnNhY3Rpb24/ICov CisjZGVmaW5lIHJidHhuX2lzX3RvcHR4bih0eG4pXAorKFwKKwkodHhuKS0+dG9wdHhuID09IE5V TExcCispCisKKy8qIElzIHRoaXMgYSBzdWJ0cmFuc2FjdGlvbj8gKi8KKyNkZWZpbmUgcmJ0eG5f aXNfc3VidHhuKHR4bilcCisoXAorCSh0eG4pLT50b3B0eG4gIT0gTlVMTFwKKykKKworLyogR2V0 IHRoZSB0b3AtbGV2ZWwgdHJhbnNhY3Rpb24gb2YgdGhpcyAoc3ViKXRyYW5zYWN0aW9uLiAqLwor I2RlZmluZSByYnR4bl9nZXRfdG9wdHhuKHR4bilcCisoXAorCXJidHhuX2lzX3N1YnR4bih0eG4p ID8gKHR4biktPnRvcHR4biA6ICh0eG4pXAorKQorCiB0eXBlZGVmIHN0cnVjdCBSZW9yZGVyQnVm ZmVyVFhOCiB7CiAJLyogU2VlIGFib3ZlICovCi0tIAoxLjguMy4xCgo= --00000000000029d41505f6e4f4b0--