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.96) (envelope-from ) id 1wJDIL-000Arj-1G for pgsql-hackers@arkaria.postgresql.org; Sat, 02 May 2026 16:34:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wJDIH-001ggI-36 for pgsql-hackers@arkaria.postgresql.org; Sat, 02 May 2026 16:34:17 +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.96) (envelope-from ) id 1wJDIH-001ggA-16 for pgsql-hackers@lists.postgresql.org; Sat, 02 May 2026 16:34:17 +0000 Received: from mail-oo1-xc2d.google.com ([2607:f8b0:4864:20::c2d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wJDIF-000000004vi-1BrV for pgsql-hackers@postgresql.org; Sat, 02 May 2026 16:34:16 +0000 Received: by mail-oo1-xc2d.google.com with SMTP id 006d021491bc7-68244d317e5so1785779eaf.0 for ; Sat, 02 May 2026 09:34:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777739654; cv=none; d=google.com; s=arc-20240605; b=fCleaMkktX83pZZkTNnFKyMzOmRd+TQsq3wAyg4Bm5ee8Sf7zWQHDnCn8YrhNqh472 Omubq1tB/01iOZJKgXtQ3H+J1J/xMz0B+feZSX1i19H6fGbn29pAcwlNYoQE6T+1X/B/ TferXz9mu925GrXza/zbGYotNRCCCfPV3DpIYAQD5ryFR+YeMpqrB28t7XK/8Tut97A8 Q8ebtmAXN4Lwy5b20Agj0NR/opAuwMDjPIQKRz8Ub1XGkbuDTALYChdQXfQ7JW983J4R Xs0ZyCc56FRW/WT1OAE0CMk6rDDMCgsTEH9eKC04hpAZu782ui6F84+x8+J/TeNyt7Lg Gsbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=/6yVbN8yp4QZaMF09HfRl0jzaBNqiX2xqqobg8ITZr0=; fh=eBQMf8eKLlcwdU6mW2a3U8R1VDb2jwdHdYuujPeVrnE=; b=ALrDc8G9VoW5XZOywP3uRtCRIyrP9i1lOUSYddSZo38kiKwGY8NDTJtbFm7pMSs2gS Xh1Uv6S0GW8pFOQM+upWC6Tzv5VMHW1rhXAFxaaQi6MsrRUAWX/YHCGXkveAKVOu97jy 1Avy9xsAbPC3FrM9QORS8A+YgNogYaBe3iN7CyPBOI1HsA2QgnExoT2wZS+bt2cwzG69 Mzb7SlxUS7EUupb7xzbJDznCyOZDskMu1pGmIE8rhZdOyauH5XLzxxGHB1HtGz8D/Vne kBa9GRjsaB5rpbRhYjKy4FO2b/28b8TIUwsdxekCAdBOUL7fxpye4XJ+squ961nHCWVW /gwQ==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777739654; x=1778344454; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=/6yVbN8yp4QZaMF09HfRl0jzaBNqiX2xqqobg8ITZr0=; b=q7H/7LzgXRnRh379P7kvVK7dvddR/sTe77lLFURg9NoqpIj7p+cvdSm+BI3HMqL9Vl In7SuP1bF8M8DhVhut29duVwufwW+DzFeHx89aPMEXeTjocInfQE/ZYJ7K0Iz5Z98n5g nNkv8V6cQFJmkhuCk7hsBSi58gk6BhKGtA1ZqfQLuxubpu/unvGPZWRxJHdb3ZF2/5US ob1X107dMomSmAuKa/lP2qATgyFqAbz/wKdUiTYh6jAL4JGFRuwiSdA88LpbrcJLOpeN pgfz4y3Jacf/ZuoGntdzuYMJDClOF3CKPLSLHSB2oMXaGNWyAGZbQdMC5ROCJkj27iHE kAmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777739654; x=1778344454; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/6yVbN8yp4QZaMF09HfRl0jzaBNqiX2xqqobg8ITZr0=; b=iugrQ2oCoKurT1aCVLBrzRqri4h6EFTO6nV1pen4w7XwTyH/btPyxn4xWPxvhhBbfM l5YVZoqPYfJyOR2myq1Dpq5tu56LoeB8rD3oGwz6+9I3obaSN74ufdx9OmTX0Y3ZimSo BHzIE5lU3kDHdMUtduKKD89ghpGaM2dDE8az2sQ/bEKRpBmxug9LHCRsvKyK3n2kAr7G OQCBLwHTXthE6CHF/uQuWOpGToVK9fkzV1Cyujnl4xbpOj1ohLqTPWdHGBJV7AI/0BUc /pqrHszbRFXB5YVsBFicmdSdTAeU1xDYhFgK2dyZKOXtN7w9V8/AKfqXD4qbBIIfJVhB yLUQ== X-Forwarded-Encrypted: i=1; AFNElJ8Z2b3yk6zJiFg/p+uVzuwsizwedU1uIGjK/5XGTm/j2P/yWF6dBNwHQNsrcMlbYRxsMWJCJA0ZtkszRgr2@postgresql.org X-Gm-Message-State: AOJu0YyHN9JK4IqQpBbywzFJh+Pq0U+p9f0LUAm2tgNPE5GnVfxWzWQC ZKj+SUhGRc6a4tD1I0poDZFbPsVIfshzwb3nXYQZedjU1aIywJI7a7ACjFs2yLB6K2RjdPg8Ad1 0pR08T+XrHdUXyi0JSE7vhwlbyHWWO68= X-Gm-Gg: AeBDieum5FbA6N1Bhtoah8ExO7zFlsmVJ/XlJP5Ngl62mh2Xg3fFH+COmtIyqK26f52 6I2Tju2k70a4zkcJyiMRGSK56x+V5TmWjEboCI2fhN6cRUOQQ2ekOFsuq3pgAkkPeA9nRdl515C IndiP13K3JjjqXkjoPzVrWJlrMb0bpnjz1+1R+utzf8JtQb2OpEZVdO9qJERzFJEyNRoYZ9qiAS HbbwXrmefZPMwVJGOfyxlt2Xdhx+CQTYKnXYu/6hHC/y5DWTzBJWYzpIokoltFV15LASqNQuQbN mhlonynAbyYmR+kSW6xzFWwZeGLWpH1pVLI+DF4Il7MtOhCn27iWA2bD20QCJWHPvot7Jz0t/iO Oy6OQHFM7g+R9fhKVHOA= X-Received: by 2002:a05:6820:80c9:b0:696:1a25:fdda with SMTP id 006d021491bc7-69697a0bd6cmr1693052eaf.26.1777739654253; Sat, 02 May 2026 09:34:14 -0700 (PDT) MIME-Version: 1.0 References: <402bbc8d-728b-4467-8024-31c2bc101ead@uni-muenster.de> In-Reply-To: From: Alexander Korotkov Date: Sat, 2 May 2026 19:34:00 +0300 X-Gm-Features: AVHnY4IHytfuaaeiLdsa4k6wrcPS_w-IdN1xi_05IeKlF9fnFkxXkNjVtJmxSNU Message-ID: Subject: Re: Fix bug with accessing to temporary tables of other sessions To: Daniil Davydov <3danissimo@gmail.com> Cc: Michael Paquier , Soumya S Murali , Jim Jones , Tom Lane , Stepan Neretin , PostgreSQL Hackers , Mohamed Ali , Nazneen Jafri , Shawn McCoy Content-Type: multipart/mixed; boundary="000000000000990a140650d84480" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000990a140650d84480 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, May 2, 2026 at 6:37=E2=80=AFPM Daniil Davydov <3danissimo@gmail.com= > wrote: > On Sat, May 2, 2026 at 9:16=E2=80=AFPM Alexander Korotkov wrote: > > > > Thank you for your feedback. I think the scope of this patch is well > > described in [1]. We don't want to restrict the superuser from > > something, but our buffer manager just technically can't access the > > local buffers of other sessions. Read streams introduced a new code > > path for reading relations, which was lacking of the proper check for > > local buffers of other sessions. And this patch attempts to fix that. > > DROP TABLE is an exclusion. It actually don't need to read contents > > of buffers, just drop them. And DropRelationBuffers() have a special > > exclusion for this case. So, DROP TABLE appears to be the only > > operation that makes sense, it's a conscious exclusion, and there is > > no intention to forbid it. > > Yep, exactly. > > > I've revised the patch. 0001 contains tests and states the current > > behavior. 0002 contains fix and the corresponding changes in the > > tests. I made a change in 0001: removed the check in > > ReadBufferExtended(). We added the same check to ReadBuffer_common(), > > and I don't think it makes sense to do this check twice in the row. > > Thank you! But I'm afraid that you forgot to attach the patches.. Here they are. > BTW, what do you think about this proposal? : > > On the other hand, we have an error message that says "cannot access...= ", which > > may look like every kind of "access" is forbidden. I bet that this is t= he place > > that has confused you. More accurate error message would be "cannot acc= ess > > pages..." or "cannot access content...". I think we can change our erro= r > > message in this way. What do you think? > > We can easily include it in the first patch. This is possible, but I would keep that in a separate patch. We now have clear scope for both patches: 0001 includes additional tests, 0002 fixes the bug and restores old behavior. ------ Regards, Alexander Korotkov Supabase --000000000000990a140650d84480 Content-Type: application/octet-stream; name="v20-0002-Prevent-access-to-other-sessions-temp-tables.patch" Content-Disposition: attachment; filename="v20-0002-Prevent-access-to-other-sessions-temp-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mook52pv1 RnJvbSA1MGQyYjk5OGNjY2Q1MjA3MTUxZmMwYWFkM2E4OGQ5YWNiMTlhNTNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogU2F0LCAyIE1heSAyMDI2IDE1OjIzOjQyICswMzAwClN1YmplY3Q6IFtQ QVRDSCB2MjAgMi8yXSBQcmV2ZW50IGFjY2VzcyB0byBvdGhlciBzZXNzaW9ucycgdGVtcCB0YWJs ZXMKCkNvbW1pdCBiN2IwZjNmMjcyNCAoIlVzZSBzdHJlYW1pbmcgSS9PIGluIHNlcXVlbnRpYWwg c2NhbnMiKSByb3V0ZWQKc2VxdWVudGlhbCBzY2FucyB0aHJvdWdoIHJlYWRfc3RyZWFtX25leHRf YnVmZmVyKCksIGJ5cGFzc2luZyB0aGUKUkVMQVRJT05fSVNfT1RIRVJfVEVNUCgpIGNoZWNrIGlu IFJlYWRCdWZmZXJFeHRlbmRlZCgpLiAgQXMgYSByZXN1bHQsCmEgc3VwZXJ1c2VyIGNhbiBhdHRl bXB0IHRvIHJlYWQgb3IgbW9kaWZ5IHRlbXAgdGFibGVzIG9mIG90aGVyCnNlc3Npb25zIHRocm91 Z2ggdGhlIHJlYWQtc3RyZWFtIHBhdGguICBXaGVuIG5vIGluZGV4IGlzIHByZXNlbnQgc28KdGhl IHBsYW5uZXIgY2Fubm90IHBpY2sgYW4gaW5kZXggc2NhbiwgU0VMRUNUL1VQREFURS9ERUxFVEUv TUVSR0UKc2lsZW50bHkgc2VlIG5vIHJvd3MgLyByZXBvcnQgemVybyBhZmZlY3RlZCByb3dzLCBh bmQgQ09QWSBwcm9kdWNlcwphbiBlbXB0eSBvdXRwdXQgLS0gYmVjYXVzZSB0aGUgYnVmZmVyIG1h bmFnZXIgaGFzIG5vIHZpc2liaWxpdHkgaW50bwp0aGUgb3duaW5nIHNlc3Npb24ncyBsb2NhbCBi dWZmZXJzIGFuZCBzaWxlbnRseSByZXR1cm5zIG5vdGhpbmcuCklOU0VSVCBhbmQgYW55IHBhdGgg dGhhdCBnb2VzIHRocm91Z2ggbmJ0cmVlIChpLmUuIGFuIGluZGV4IHNjYW4pCnN0aWxsIGVycm9y IG91dCB2aWEgdGhlIGV4aXN0aW5nIGNoZWNrIGluIFJlYWRCdWZmZXJFeHRlbmRlZCgpLCB3aGlj aAppcyByZWFjaGVkIGZyb20gaGlvLmMgYW5kIG5idHJlZSByZXNwZWN0aXZlbHksIGJ1dCB0aGlz IGlzIGluY2lkZW50YWwuCgpGaXggYnkgZW5mb3JjaW5nIFJFTEFUSU9OX0lTX09USEVSX1RFTVAo KSBhdCB0aHJlZSBhZGRpdGlvbmFsCmJ1ZmZlci1tYW5hZ2VyIGVudHJ5IHBvaW50czoKCi0gcmVh ZF9zdHJlYW1fYmVnaW5faW1wbCgpIHJlamVjdHMgdGhlIHJlYWQgYXQgc3RyZWFtIHNldHVwIHRp bWUsCiAgY292ZXJpbmcgc2VxdWVudGlhbCBhbmQgYml0bWFwIHNjYW5zIHRoYXQgZ28gdGhyb3Vn aCB0aGUKICByZWFkLXN0cmVhbSBwYXRoLgotIFJlYWRCdWZmZXJfY29tbW9uKCkgYmVjb21lcyB0 aGUgY2Fub25pY2FsIHBsYWNlIGZvciB0aGUgY2hlY2ssCiAgY29uc29saWRhdGluZyB0aGUgZXhp c3Rpbmcgb25lIHByZXZpb3VzbHkga2VwdCBpbgogIFJlYWRCdWZmZXJFeHRlbmRlZCgpLiAgQWxs IFJlYWRCdWZmZXJFeHRlbmRlZCgpIGNhbGxlcnMgZ28gdGhyb3VnaAogIFJlYWRCdWZmZXJfY29t bW9uKCksIHNvIHRoZSBjb25zb2xpZGF0aW9uIGlzIGJlaGF2aW91ci1wcmVzZXJ2aW5nLgotIFN0 YXJ0UmVhZEJ1ZmZlcnNJbXBsKCkgY2F0Y2hlcyBkaXJlY3QgY2FsbGVycyBvZiBTdGFydFJlYWRC dWZmZXJzKCkKICB0aGF0IGJ5cGFzcyBib3RoIG9mIHRoZSBhYm92ZS4gIFRoaXMgaXMgY3VycmVu dGx5IGRlZmVuc2UtaW4tZGVwdGgKICBidXQgZG9jdW1lbnRzIHRoZSBjb250cmFjdCBmb3IgZnV0 dXJlIGNvZGUuCgpUaGUgY29tcGFuaW9uIHRlc3QgaW4gc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21p c2Mgd2FzIGFkZGVkIGluIHRoZQpwcmVjZWRpbmcgY29tbWl0OyB0aGlzIGNvbW1pdCB1cGRhdGVz IHRoZSBhc3NlcnRpb25zIGZvciBTRUxFQ1QsClVQREFURSwgREVMRVRFLCBNRVJHRSBhbmQgQ09Q WSAod2hpY2ggcHJldmlvdXNseSBkb2N1bWVudGVkIHRoZQpidWcgYXMgc2lsZW50IHN1Y2Nlc3Mp IHRvIGV4cGVjdCB0aGUgbmV3IGVycm9yLgoKQXV0aG9yOiBKaW0gSm9uZXMgPGppbS5qb25lc0B1 bmktbXVlbnN0ZXIuZGU+CkF1dGhvcjogRGFuaWlsIERhdnlkb3YgPDNkYW5pc3NpbW9AZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogTWljaGFlbCBQYXF1aWVyIDxtaWNoYWVsQHBhcXVpZXIueHl6PgpS ZXZpZXdlZC1ieTogU291bXlhIFMgTXVyYWxpIDxzb3VteWFtdXJhbGkud29ya0BnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBUb20gTGFuZSA8dGdsQHNzcy5wZ2gucGEudXM+ClJldmlld2VkLWJ5OiBB bGV4YW5kZXIgS29yb3Rrb3YgPGFla29yb3Rrb3ZAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRw czovL3Bvc3Rnci5lcy9tL0NBSkRpWGdoZEZjWjglM0RuaDRHNjl0ZTdpUnIzUTB1RnlYeGIzWmRH MDlfR1ROWlh3SDBnJTQwbWFpbC5nbWFpbC5jb20KQmFja3BhdGNoLXRocm91Z2g6IDE3Ci0tLQog c3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vcmVhZF9zdHJlYW0uYyAgICAgICAgIHwgMTAgKysrKysr CiBzcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyAgICAgICAgICAgfCAzMyArKysr KysrKysrLS0tLS0tLQogLi4uL3Rlc3RfbWlzYy90LzAxM190ZW1wX29ial9tdWx0aXNlc3Npb24u cGwgIHwgMzUgKysrKysrKysrKy0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRp b25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdl L2Fpby9yZWFkX3N0cmVhbS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vcmVhZF9zdHJlYW0u YwppbmRleCAyMzc0YjRjZDUwNy4uYTMxODUzOWU1NmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3N0b3JhZ2UvYWlvL3JlYWRfc3RyZWFtLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9haW8v cmVhZF9zdHJlYW0uYwpAQCAtNzc2LDYgKzc3NiwxNiBAQCByZWFkX3N0cmVhbV9iZWdpbl9pbXBs KGludCBmbGFncywKIAl1aW50MzIJCW1heF9wb3NzaWJsZV9idWZmZXJfbGltaXQ7CiAJT2lkCQkJ dGFibGVzcGFjZV9pZDsKIAorCS8qCisJICogUmVqZWN0IGF0dGVtcHRzIHRvIHJlYWQgbm9uLWxv Y2FsIHRlbXBvcmFyeSByZWxhdGlvbnM7IHdlIHdvdWxkIGJlCisJICogbGlrZWx5IHRvIGdldCB3 cm9uZyBkYXRhIHNpbmNlIHdlIGhhdmUgbm8gdmlzaWJpbGl0eSBpbnRvIHRoZSBvd25pbmcKKwkg KiBzZXNzaW9uJ3MgbG9jYWwgYnVmZmVycy4KKwkgKi8KKwlpZiAocmVsICYmIFJFTEFUSU9OX0lT X09USEVSX1RFTVAocmVsKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiY2Fubm90IGFjY2VzcyB0ZW1w b3JhcnkgdGFibGVzIG9mIG90aGVyIHNlc3Npb25zIikpKTsKKwogCS8qCiAJICogRGVjaWRlIGhv dyBtYW55IEkvT3Mgd2Ugd2lsbCBhbGxvdyB0byBydW4gYXQgdGhlIHNhbWUgdGltZS4gIFRoaXMK IAkgKiBudW1iZXIgYWxzbyBhZmZlY3RzIGhvdyBmYXIgd2UgbG9vayBhaGVhZCBmb3Igb3Bwb3J0 dW5pdGllcyB0byBzdGFydApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIv YnVmbWdyLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYwppbmRleCAxODc4 ZWZiNGFhOS4uNzcwMjA5ZDYwNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVm ZmVyL2J1Zm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCkBA IC03OTEsNyArNzkxLDcgQEAgUHJlZmV0Y2hCdWZmZXIoUmVsYXRpb24gcmVsbiwgRm9ya051bWJl ciBmb3JrTnVtLCBCbG9ja051bWJlciBibG9ja051bSkKIAogCWlmIChSZWxhdGlvblVzZXNMb2Nh bEJ1ZmZlcnMocmVsbikpCiAJewotCQkvKiBzZWUgY29tbWVudHMgaW4gUmVhZEJ1ZmZlckV4dGVu ZGVkICovCisJCS8qIHNlZSBjb21tZW50cyBpbiBSZWFkQnVmZmVyX2NvbW1vbiAqLwogCQlpZiAo UkVMQVRJT05fSVNfT1RIRVJfVEVNUChyZWxuKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKQEAgLTkyOCwxOSArOTI4LDEw IEBAIFJlYWRCdWZmZXJFeHRlbmRlZChSZWxhdGlvbiByZWxuLCBGb3JrTnVtYmVyIGZvcmtOdW0s IEJsb2NrTnVtYmVyIGJsb2NrTnVtLAogewogCUJ1ZmZlcgkJYnVmOwogCi0JLyoKLQkgKiBSZWpl Y3QgYXR0ZW1wdHMgdG8gcmVhZCBub24tbG9jYWwgdGVtcG9yYXJ5IHJlbGF0aW9uczsgd2Ugd291 bGQgYmUKLQkgKiBsaWtlbHkgdG8gZ2V0IHdyb25nIGRhdGEgc2luY2Ugd2UgaGF2ZSBubyB2aXNp YmlsaXR5IGludG8gdGhlIG93bmluZwotCSAqIHNlc3Npb24ncyBsb2NhbCBidWZmZXJzLgotCSAq LwotCWlmIChSRUxBVElPTl9JU19PVEhFUl9URU1QKHJlbG4pKQotCQllcmVwb3J0KEVSUk9SLAot CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkgZXJybXNn KCJjYW5ub3QgYWNjZXNzIHRlbXBvcmFyeSB0YWJsZXMgb2Ygb3RoZXIgc2Vzc2lvbnMiKSkpOwot CiAJLyoKIAkgKiBSZWFkIHRoZSBidWZmZXIsIGFuZCB1cGRhdGUgcGdzdGF0IGNvdW50ZXJzIHRv IHJlZmxlY3QgYSBjYWNoZSBoaXQgb3IKLQkgKiBtaXNzLgorCSAqIG1pc3MuICBUaGUgb3RoZXIt c2Vzc2lvbiB0ZW1wLXJlbGF0aW9uIGNoZWNrIGlzIGVuZm9yY2VkIGJ5CisJICogUmVhZEJ1ZmZl cl9jb21tb24oKS4KIAkgKi8KIAlidWYgPSBSZWFkQnVmZmVyX2NvbW1vbihyZWxuLCBSZWxhdGlv bkdldFNtZ3IocmVsbiksIDAsCiAJCQkJCQkJZm9ya051bSwgYmxvY2tOdW0sIG1vZGUsIHN0cmF0 ZWd5KTsKQEAgLTEyOTIsNiArMTI4MywxOCBAQCBSZWFkQnVmZmVyX2NvbW1vbihSZWxhdGlvbiBy ZWwsIFNNZ3JSZWxhdGlvbiBzbWdyLCBjaGFyIHNtZ3JfcGVyc2lzdGVuY2UsCiAJaW50CQkJZmxh Z3M7CiAJY2hhcgkJcGVyc2lzdGVuY2U7CiAKKwkvKgorCSAqIFJlamVjdCBhdHRlbXB0cyB0byBy ZWFkIG5vbi1sb2NhbCB0ZW1wb3JhcnkgcmVsYXRpb25zOyB3ZSB3b3VsZCBiZQorCSAqIGxpa2Vs eSB0byBnZXQgd3JvbmcgZGF0YSBzaW5jZSB3ZSBoYXZlIG5vIHZpc2liaWxpdHkgaW50byB0aGUg b3duaW5nCisJICogc2Vzc2lvbidzIGxvY2FsIGJ1ZmZlcnMuICBUaGlzIGlzIHRoZSBjYW5vbmlj YWwgcGxhY2UgZm9yIHRoZSBjaGVjaywKKwkgKiBjb3ZlcmluZyB0aGUgUmVhZEJ1ZmZlckV4dGVu ZGVkKCkgZW50cnkgcG9pbnQgYW5kIGFueSBvdGhlciBjYWxsZXIKKwkgKiB0aGF0IHN1cHBsaWVz IGEgUmVsYXRpb24uCisJICovCisJaWYgKHJlbCAmJiBSRUxBVElPTl9JU19PVEhFUl9URU1QKHJl bCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAorCQkJCSBlcnJtc2coImNhbm5vdCBhY2Nlc3MgdGVtcG9yYXJ5IHRhYmxlcyBv ZiBvdGhlciBzZXNzaW9ucyIpKSk7CisKIAkvKgogCSAqIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkg cGF0aCwgbW9zdCBjb2RlIHNob3VsZCB1c2UgRXh0ZW5kQnVmZmVyZWRSZWwoKQogCSAqIGluc3Rl YWQsIGFzIGFjcXVpcmluZyB0aGUgZXh0ZW5zaW9uIGxvY2sgaW5zaWRlIEV4dGVuZEJ1ZmZlcmVk UmVsKCkKQEAgLTEzODIsNiArMTM4NSwxMiBAQCBTdGFydFJlYWRCdWZmZXJzSW1wbChSZWFkQnVm ZmVyc09wZXJhdGlvbiAqb3BlcmF0aW9uLAogCUFzc2VydCgqbmJsb2NrcyA+IDApOwogCUFzc2Vy dCgqbmJsb2NrcyA8PSBNQVhfSU9fQ09NQklORV9MSU1JVCk7CiAKKwkvKiBzZWUgY29tbWVudHMg aW4gUmVhZEJ1ZmZlcl9jb21tb24gKi8KKwlpZiAob3BlcmF0aW9uLT5yZWwgJiYgUkVMQVRJT05f SVNfT1RIRVJfVEVNUChvcGVyYXRpb24tPnJlbCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coImNhbm5v dCBhY2Nlc3MgdGVtcG9yYXJ5IHRhYmxlcyBvZiBvdGhlciBzZXNzaW9ucyIpKSk7CisKIAlpZiAo b3BlcmF0aW9uLT5wZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QKQogCXsKIAkJaW9f Y29udGV4dCA9IElPQ09OVEVYVF9OT1JNQUw7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfbWlzYy90LzAxM190ZW1wX29ial9tdWx0aXNlc3Npb24ucGwgYi9zcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfbWlzYy90LzAxM190ZW1wX29ial9tdWx0aXNlc3Npb24ucGwKaW5kZXggMGQyMTE3 MDA5NzcuLmI0NDQyODM2YmVmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlz Yy90LzAxM190ZW1wX29ial9tdWx0aXNlc3Npb24ucGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X21pc2MvdC8wMTNfdGVtcF9vYmpfbXVsdGlzZXNzaW9uLnBsCkBAIC01NSwyNSArNTUsMjAg QEAgbXkgKCRzdGRvdXQsICRzdGRlcnIpOwogIyBETUwgYW5kIFNFTEVDVCBoYXZlIHRvIHJlYWQg dGhlIHRhYmxlJ3MgZGF0YSBhbmQgdGhlcmVmb3JlIGdvIHRocm91Z2gKICMgdGhlIGJ1ZmZlciBt YW5hZ2VyLiAgV2l0aCBubyBpbmRleCBvbiB0aGUgdGFibGUsIHRoZSBwbGFubmVyIGNhbm5vdAog IyB1c2UgaW5kZXggYWNjZXNzLCBzbyBTRUxFQ1QvVVBEQVRFL0RFTEVURS9NRVJHRS9DT1BZIGFs bCBydW4gdGhyb3VnaAotIyB0aGUgcmVhZC1zdHJlYW0gcGF0aC4KLSMKLSMgWFhYOiBpbiBjdXJy ZW50IGNvZGUsIHRoZSByZWFkLXN0cmVhbSBwYXRoIGJ5cGFzc2VzIHRoZQotIyBSRUxBVElPTl9J U19PVEhFUl9URU1QKCkgY2hlY2ssIHNvIHRoZXNlIGNvbW1hbmRzIHNpbGVudGx5IHNlZSBubwot IyByb3dzIC8gcmVwb3J0IHplcm8gYWZmZWN0ZWQgcm93cyAtLSB0aGUgdmlzaWJsZSBzeW1wdG9t IG9mIHRoZSBidWcKLSMgdGhpcyB0ZXN0IHN1aXRlIGRvY3VtZW50cy4gIEEgZm9sbG93LXVwIHBh dGNoIHdpbGwgcm91dGUgdGhlIGNoZWNrCi0jIHRocm91Z2ggcmVhZF9zdHJlYW1fYmVnaW5faW1w bCgpIGFuZCB0aGVzZSBhc3NlcnRpb25zIHdpbGwgYmUKLSMgdXBkYXRlZCB0byBleHBlY3QgImNh bm5vdCBhY2Nlc3MgdGVtcG9yYXJ5IHRhYmxlcyBvZiBvdGhlciBzZXNzaW9ucyIuCisjIHRoZSBy ZWFkLXN0cmVhbSBwYXRoIGFuZCBhcmUgY2F1Z2h0IGJ5IHJlYWRfc3RyZWFtX2JlZ2luX2ltcGwo KS4KIAogJG5vZGUtPnBzcWwoCiAJJ3Bvc3RncmVzJywKIAkiU0VMRUNUIHZhbCBGUk9NICR0ZW1w c2NoZW1hLmZvbzsiLAotCXN0ZG91dCA9PiBcJHN0ZG91dCwKIAlzdGRlcnIgPT4gXCRzdGRlcnIp OwotaXMoJHN0ZGVyciwgJycsICdTRUxFQ1QgKGN1cnJlbnRseSBubyBlcnJvciAtLSBidWcgdG8g YmUgZml4ZWQpJyk7CitsaWtlKAorCSRzdGRlcnIsCisJcXIvY2Fubm90IGFjY2VzcyB0ZW1wb3Jh cnkgdGFibGVzIG9mIG90aGVyIHNlc3Npb25zLywKKwknU0VMRUNUIChzZXFzY2FuIHZpYSByZWFk X3N0cmVhbSknKTsKIAogIyBJTlNFUlQgZ29lcyB0aHJvdWdoIGhpby5jIHdoaWNoIGNhbGxzIFJl YWRCdWZmZXJFeHRlbmRlZCgpIHRvIGZpbmQgYQotIyBwYWdlIHdpdGggZnJlZSBzcGFjZTsgdGhh dCBoaXRzIHRoZSBleGlzdGluZyBjaGVjayBiZWZvcmUgYW55IGRhdGEgaXMKLSMgd3JpdHRlbi4g IFRoaXMgY2FzZSBjdXJyZW50bHkgZXJyb3JzIGFzIGV4cGVjdGVkLgorIyBwYWdlIHdpdGggZnJl ZSBzcGFjZTsgdGhhdCBoaXRzIHRoZSBleGlzdGluZyBjaGVjayBiZWZvcmUgYW55IGRhdGEKKyMg aXMgd3JpdHRlbi4KICRub2RlLT5wc3FsKAogCSdwb3N0Z3JlcycsCiAJIklOU0VSVCBJTlRPICR0 ZW1wc2NoZW1hLmZvbyBWQUxVRVMgKDczKTsiLApAQCAtODYsMjEgKzgxLDI5IEBAICRub2RlLT5w c3FsKAogCSdwb3N0Z3JlcycsCiAJIlVQREFURSAkdGVtcHNjaGVtYS5mb28gU0VUIHZhbCA9IE5V TEw7IiwKIAlzdGRlcnIgPT4gXCRzdGRlcnIpOwotaXMoJHN0ZGVyciwgJycsICdVUERBVEUgKGN1 cnJlbnRseSBubyBlcnJvciAtLSBidWcgdG8gYmUgZml4ZWQpJyk7CitsaWtlKCRzdGRlcnIsCisJ cXIvY2Fubm90IGFjY2VzcyB0ZW1wb3JhcnkgdGFibGVzIG9mIG90aGVyIHNlc3Npb25zLywKKwkn VVBEQVRFJyk7CiAKICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSAkdGVtcHNj aGVtYS5mb287Iiwgc3RkZXJyID0+IFwkc3RkZXJyKTsKLWlzKCRzdGRlcnIsICcnLCAnREVMRVRF IChjdXJyZW50bHkgbm8gZXJyb3IgLS0gYnVnIHRvIGJlIGZpeGVkKScpOworbGlrZSgkc3RkZXJy LAorCXFyL2Nhbm5vdCBhY2Nlc3MgdGVtcG9yYXJ5IHRhYmxlcyBvZiBvdGhlciBzZXNzaW9ucy8s CisJJ0RFTEVURScpOwogCiAkbm9kZS0+cHNxbCgKIAkncG9zdGdyZXMnLAogCSJNRVJHRSBJTlRP ICR0ZW1wc2NoZW1hLmZvbyBVU0lORyAoVkFMVUVTICg0MikpIEFTIHModmFsKSAiCiAJICAuICJP TiBmb28udmFsID0gcy52YWwgV0hFTiBNQVRDSEVEIFRIRU4gREVMRVRFOyIsCiAJc3RkZXJyID0+ IFwkc3RkZXJyKTsKLWlzKCRzdGRlcnIsICcnLCAnTUVSR0UgKGN1cnJlbnRseSBubyBlcnJvciAt LSBidWcgdG8gYmUgZml4ZWQpJyk7CitsaWtlKCRzdGRlcnIsCisJcXIvY2Fubm90IGFjY2VzcyB0 ZW1wb3JhcnkgdGFibGVzIG9mIG90aGVyIHNlc3Npb25zLywKKwknTUVSR0UnKTsKIAogJG5vZGUt PnBzcWwoJ3Bvc3RncmVzJywgIkNPUFkgJHRlbXBzY2hlbWEuZm9vIFRPIFNURE9VVDsiLAogCXN0 ZGVyciA9PiBcJHN0ZGVycik7Ci1pcygkc3RkZXJyLCAnJywgJ0NPUFkgKGN1cnJlbnRseSBubyBl cnJvciAtLSBidWcgdG8gYmUgZml4ZWQpJyk7CitsaWtlKCRzdGRlcnIsCisJcXIvY2Fubm90IGFj Y2VzcyB0ZW1wb3JhcnkgdGFibGVzIG9mIG90aGVyIHNlc3Npb25zLywKKwknQ09QWScpOwogCiAj IERETCBhbmQgbWFpbnRlbmFuY2UgY29tbWFuZHMgaGF2ZSB0aGVpciBvd24gY29tbWFuZC1zcGVj aWZpYyBjaGVja3MKICMgKG9sZGVyIHRoYW4gdGhlIGJ1ZmZlci1tYW5hZ2VyIGNoZWNrIGFib3Zl KSwgc28gdGhleSBmYWlsIHdpdGgKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000990a140650d84480 Content-Type: application/octet-stream; name="v20-0001-Add-tests-for-cross-session-temp-table-access.patch" Content-Disposition: attachment; filename="v20-0001-Add-tests-for-cross-session-temp-table-access.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mook52pp0 RnJvbSBkZTY3ZGExMjFiNDVlNjAzYzgxNzM5ZTI3M2Q3Y2I4Y2ZjMDU5ZmIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogU2F0LCAyIE1heSAyMDI2IDE1OjIyOjI2ICswMzAwClN1YmplY3Q6IFtQ QVRDSCB2MjAgMS8yXSBBZGQgdGVzdHMgZm9yIGNyb3NzLXNlc3Npb24gdGVtcCB0YWJsZSBhY2Nl c3MKCkFkZCBhIFRBUCB0ZXN0IGluIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjIHRoYXQgZG9j dW1lbnRzIHdoYXQKaGFwcGVucyB3aGVuIG9uZSBzZXNzaW9uIGF0dGVtcHRzIHRvIHJlYWQgb3Ig bW9kaWZ5IGFub3RoZXIgc2Vzc2lvbidzCnRlbXBvcmFyeSB0YWJsZS4gIFRoaXMgY29tbWl0IG9u bHkgYWRkcyB0ZXN0czsgaXQgZG9lcyBub3QgY2hhbmdlCmJhY2tlbmQgYmVoYXZpb3VyLCBzbyB0 aGUgYXNzZXJ0aW9ucyByZWZsZWN0IGN1cnJlbnQgYmVoYXZpb3VyOgoKLSBTRUxFQ1QsIFVQREFU RSwgREVMRVRFLCBNRVJHRSwgQ09QWSBvbiBhIHRhYmxlIHdpdGhvdXQgYW4gaW5kZXgKICBzaWxl bnRseSBzdWNjZWVkIHdpdGggbm8gZXJyb3IgYW5kIHplcm8gcm93cyAvIHplcm8gYWZmZWN0ZWQg cm93cy4KICBUaGVzZSBjb21tYW5kcyBydW4gdGhyb3VnaCB0aGUgcmVhZC1zdHJlYW0gcGF0aCwg d2hpY2ggY3VycmVudGx5CiAgYnlwYXNzZXMgdGhlIFJFTEFUSU9OX0lTX09USEVSX1RFTVAoKSBj aGVjay4gIFRoaXMgaXMgdGhlCiAgdW5kZXJseWluZyBidWcgdG8gYmUgZml4ZWQgaW4gYSBmb2xs b3ctdXAuCi0gSU5TRVJUIGVycm9ycyB3aXRoICJjYW5ub3QgYWNjZXNzIHRlbXBvcmFyeSB0YWJs ZXMgb2Ygb3RoZXIKICBzZXNzaW9ucyIgYmVjYXVzZSBoaW8uYyBjYWxscyBSZWFkQnVmZmVyRXh0 ZW5kZWQoKSB0byBmaW5kIGEgcGFnZQogIHdpdGggZnJlZSBzcGFjZSBhbmQgaXMgY2F1Z2h0IGJ5 IHRoZSBleGlzdGluZyBjaGVjayB0aGVyZS4KLSBJbmRleCBzY2FuIGVycm9ycyB2aWEgdGhlIHNh bWUgZXhpc3RpbmcgY2hlY2ssIHJlYWNoZWQgdGhyb3VnaAogIG5idHJlZSAtPiBSZWFkQnVmZmVy IC0+IFJlYWRCdWZmZXJFeHRlbmRlZC4KLSBUUlVOQ0FURSAvIEFMVEVSIFRBQkxFIC8gQUxURVIg SU5ERVggLyBDTFVTVEVSIGZhaWwgd2l0aCB0aGVpcgogIGNvbW1hbmQtc3BlY2lmaWMgZXJyb3Ig bWVzc2FnZXMuCi0gVkFDVVVNIGlzIHNpbGVudGx5IHNraXBwZWQgdG8gYXZvaWQgbm9pc2UgZHVy aW5nIGRhdGFiYXNlLXdpZGUKICBWQUNVVU0gKHZhY3V1bV9yZWwoKSByZXR1cm5zIHdpdGhvdXQg d2FybmluZykuCi0gRFJPUCBUQUJMRSBpcyBpbnRlbnRpb25hbGx5IGFsbG93ZWQ6IERST1AgZG9l cyBub3QgdG91Y2ggdGhlCiAgdGFibGUncyBjb250ZW50cywgYW5kIGF1dG92YWN1dW0gcmVsaWVz IG9uIHRoaXMgdG8gY2xlYW4gdXAKICB0ZW1wIHJlbGF0aW9ucyBvcnBoYW5lZCBieSBhIGNyYXNo ZWQgYmFja2VuZC4KLSBBTFRFUiBGVU5DVElPTiAvIERST1AgRlVOQ1RJT04gb24gYW4gb3duZXIt Y3JlYXRlZCBmdW5jdGlvbiBvdmVyCiAgaXRzIG93biB0ZW1wIHJvdyB0eXBlIHdvcmsgYXMgY2F0 YWxvZyBvcGVyYXRpb25zIC0tIHRoZXkgZG9uJ3QKICByZWFkIHRoZSB1bmRlcmx5aW5nIGRhdGEu Ci0gQ1JFQVRFIEZVTkNUSU9OIGZyb20gYSBzZXBhcmF0ZSBzZXNzaW9uLCB1c2luZyBhbm90aGVy IHNlc3Npb24ncwogIHRlbXAgcm93IHR5cGUgYXMgYW4gYXJndW1lbnQsIGlzIGFsbG93ZWQgYnV0 IGVtaXRzIGEgTk9USUNFOiB0aGUKICBmdW5jdGlvbiBpcyBtb3ZlZCBpbnRvIHRoZSBjcmVhdG9y J3MgcGdfdGVtcCBuYW1lc3BhY2Ugd2l0aCBhbgogIGF1dG8tZGVwZW5kZW5jeSBvbiB0aGUgYm9y cm93ZWQgdHlwZSwgc28gaXQgZGlzYXBwZWFycyB0b2dldGhlcgogIHdpdGggdGhlIHNlc3Npb24g dGhhdCBjcmVhdGVkIGl0LgotIEEgYmFyZSBEUk9QIFRBQkxFIG9uIGEgdGVtcCB0YWJsZSB0aGF0 IGhhcyBhIGNyb3NzLXNlc3Npb24KICBkZXBlbmRlbnQgZnVuY3Rpb24gZmFpbHMgd2l0aCBhIGNh dGFsb2ctbGV2ZWwgZGVwZW5kZW5jeSBlcnJvci4KLSBXaGVuIHRoZSBvd25lciBzZXNzaW9uIGVu ZHMsIHRoZSBub3JtYWwgc2Vzc2lvbi1leGl0IGNsZWFudXAKICBjYXNjYWRlcyB0aHJvdWdoIERF UEVOREVOQ1lfTk9STUFMIGFuZCByZW1vdmVzIGJvdGggdGhlIHRlbXAKICBvYmplY3RzIGFuZCBh bnkgY3Jvc3Mtc2Vzc2lvbiBmdW5jdGlvbnMgdGhhdCBkZXBlbmRlZCBvbiB0aGVtLgoKQWxzbyBk b2N1bWVudCB0aGUgY29udHJhY3QgZm9yIFJFTEFUSU9OX0lTX09USEVSX1RFTVAoKSBzbyB0aGF0 CmZ1dHVyZSBidWZmZXItYWNjZXNzIGVudHJ5IHBvaW50cyBlbmZvcmNlIHRoZSBzYW1lIHJ1bGUu CgpBdXRob3I6IEppbSBKb25lcyA8amltLmpvbmVzQHVuaS1tdWVuc3Rlci5kZT4KQXV0aG9yOiBE YW5paWwgRGF2eWRvdiA8M2Rhbmlzc2ltb0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBNaWNoYWVs IFBhcXVpZXIgPG1pY2hhZWxAcGFxdWllci54eXo+ClJldmlld2VkLWJ5OiBTb3VteWEgUyBNdXJh bGkgPHNvdW15YW11cmFsaS53b3JrQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFRvbSBMYW5lIDx0 Z2xAc3NzLnBnaC5wYS51cz4KUmV2aWV3ZWQtYnk6IEFsZXhhbmRlciBLb3JvdGtvdiA8YWVrb3Jv dGtvdkBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FKRGlYZ2hk RmNaOCUzRG5oNEc2OXRlN2lScjNRMHVGeVh4YjNaZEcwOV9HVE5aWHdIMGclNDBtYWlsLmdtYWls LmNvbQotLS0KIHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5oICAgICAgICAgICAgICAgICAgICAgICB8 ICAgOSArCiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy9tZXNvbi5idWlsZCAgICAgICAgfCAg IDEgKwogLi4uL3Rlc3RfbWlzYy90LzAxM190ZW1wX29ial9tdWx0aXNlc3Npb24ucGwgIHwgMjM1 ICsrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyNDUgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDEzX3RlbXBf b2JqX211bHRpc2Vzc2lvbi5wbAoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5o IGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggY2QxZTkyZjIzMDIuLmFkNTBlNDNiODAx IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9yZWwuaApAQCAtNjY0LDYgKzY2NCwxNSBAQCBSZWxhdGlvbkNsb3NlU21ncihSZWxhdGlv biByZWxhdGlvbikKICAqIFJFTEFUSU9OX0lTX09USEVSX1RFTVAKICAqCQlUZXN0IGZvciBhIHRl bXBvcmFyeSByZWxhdGlvbiB0aGF0IGJlbG9uZ3MgdG8gc29tZSBvdGhlciBzZXNzaW9uLgogICoK KyAqIEFueSBjb2RlIHBhdGggdGhhdCByZWFkcyBhIHJlbGF0aW9uJ3MgZGF0YSBtdXN0IHJlamVj dCBzdWNoIHJlbGF0aW9uczoKKyAqIHRoZSBvd25pbmcgc2Vzc2lvbiBrZWVwcyB0aGUgZGF0YSBp biBpdHMgcHJpdmF0ZSBsb2NhbCBidWZmZXIgcG9vbCwKKyAqIHdoaWNoIHdlIGNhbm5vdCBpbnNw ZWN0LiAgRXhpc3RpbmcgYnVmZmVyLW1hbmFnZXIgZW50cnkgcG9pbnRzCisgKiAoUmVhZEJ1ZmZl ckV4dGVuZGVkKCksIFJlYWRCdWZmZXJfY29tbW9uKCksIFN0YXJ0UmVhZEJ1ZmZlcnNJbXBsKCks CisgKiByZWFkX3N0cmVhbV9iZWdpbl9pbXBsKCksIFByZWZldGNoQnVmZmVyKCkpIGFscmVhZHkg ZW5mb3JjZSB0aGlzOyBhbnkKKyAqIG5ldyBidWZmZXItYWNjZXNzIGVudHJ5IHBvaW50IG11c3Qg ZG8gdGhlIHNhbWUuICBDb21tYW5kLWxldmVsIGNvZGUKKyAqIChUUlVOQ0FURSwgQUxURVIgVEFC TEUsIFZBQ1VVTSwgQ0xVU1RFUiwgUkVJTkRFWCwgLi4uKSBhZGRpdGlvbmFsbHkKKyAqIHVzZXMg dGhpcyBtYWNybyBmb3IgY29tbWFuZC1zcGVjaWZpYyBlcnJvciBtZXNzYWdlcy4KKyAqCiAgKiBC ZXdhcmUgb2YgbXVsdGlwbGUgZXZhbCBvZiBhcmd1bWVudAogICovCiAjZGVmaW5lIFJFTEFUSU9O X0lTX09USEVSX1RFTVAocmVsYXRpb24pIFwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9taXNjL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvbWVzb24u YnVpbGQKaW5kZXggMzU2ZDg0NTRiMzkuLjk2OWU5MGIzOTZkIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9tb2R1bGVzL3Rlc3RfbWlzYy9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfbWlzYy9tZXNvbi5idWlsZApAQCAtMjEsNiArMjEsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAn dC8wMTBfaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5wbCcsCiAgICAgICAndC8wMTFfbG9ja19z dGF0cy5wbCcsCiAgICAgICAndC8wMTJfZGRsdXRpbHMucGwnLAorICAgICAgJ3QvMDEzX3RlbXBf b2JqX211bHRpc2Vzc2lvbi5wbCcsCiAgICAgXSwKICAgICAjIFRoZSBpbmplY3Rpb24gcG9pbnRz IGFyZSBjbHVzdGVyLXdpZGUsIHNvIGRpc2FibGUgaW5zdGFsbGNoZWNrCiAgICAgJ3J1bm5pbmdj aGVjayc6IGZhbHNlLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvdC8w MTNfdGVtcF9vYmpfbXVsdGlzZXNzaW9uLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2Mv dC8wMTNfdGVtcF9vYmpfbXVsdGlzZXNzaW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4wZDIxMTcwMDk3NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9taXNjL3QvMDEzX3RlbXBfb2JqX211bHRpc2Vzc2lvbi5wbApAQCAtMCwwICsx LDIzNSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisKKyMgVGVzdHMgdGhhdCBvbmUgc2Vzc2lvbiBjYW5ub3QgcmVhZCBvciBtb2Rp ZnkgZGF0YSBpbiBhbm90aGVyIHNlc3Npb24ncworIyB0ZW1wb3JhcnkgdGFibGUuICBFYWNoIHNl c3Npb24ga2VlcHMgaXRzIHRlbXAgZGF0YSBpbiBpdHMgb3duIGxvY2FsCisjIGJ1ZmZlciBwb29s LCBhbmQgYSBkaWZmZXJlbnQgYmFja2VuZCBoYXMgbm8gdmlzaWJpbGl0eSBpbnRvIHRob3NlCisj IGJ1ZmZlcnMsIHNvIGFueSBjb21tYW5kIHRoYXQgbmVlZHMgdG8gbG9vayBhdCB0aGUgZGF0YSBt dXN0IGJlCisjIHJlamVjdGVkLgorIworIyBEUk9QIFRBQkxFIGlzIGludGVudGlvbmFsbHkgYWxs b3dlZDogaXQgZG9lcyBub3QgdG91Y2ggdGhlIHRhYmxlJ3MKKyMgY29udGVudHMsIGFuZCBhdXRv dmFjdXVtIHJlbGllcyBvbiB0aGlzIHRvIGNsZWFuIHVwIG9ycGhhbmVkIHRlbXAKKyMgcmVsYXRp b25zIGxlZnQgYmVoaW5kIGJ5IGEgY3Jhc2hlZCBiYWNrZW5kLgorIworIyBBIHJlZ3Jlc3Npb24g Y2F1Z2h0IGhlcmUgdHlwaWNhbGx5IG1lYW5zIGEgbmV3IGJ1ZmZlci1hY2Nlc3MgZW50cnkKKyMg cG9pbnQgYnlwYXNzZXMgdGhlIFJFTEFUSU9OX0lTX09USEVSX1RFTVAoKSBjaGVjay4gIFNlZQor IyBSZWFkQnVmZmVyX2NvbW1vbigpLCBTdGFydFJlYWRCdWZmZXJzSW1wbCgpLCBhbmQgcmVhZF9z dHJlYW1fYmVnaW5faW1wbCgpCisjIGZvciB0aGUgZXhpc3RpbmcgY2hlY2tzLiAgV2hlbiBhZGRp bmcgYSBuZXcgY29tbWFuZCBvciBidWZmZXItYWNjZXNzCisjIHBhdGgsIGFsc28gYWRkIGEgY29y cmVzcG9uZGluZyBjYXNlIGJlbG93LgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNl IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7 Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6QmFja2dyb3VuZFBzcWw7Cit1c2UgVGVzdDo6TW9yZTsK KworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3RlbXBfbG9jaycp OworJG5vZGUtPmluaXQ7Ciskbm9kZS0+c3RhcnQ7CisKKyMgT3duZXIgc2Vzc2lvbi4gIENyZWF0 ZWQgdmlhIGJhY2tncm91bmRfcHNxbCBzbyBpdCBzdGF5cyBhbGl2ZSB3aGlsZQorIyB0aGUgc2Vj b25kIHNlc3Npb24gcHJvYmVzIGl0cyB0ZW1wIG9iamVjdHMuCitteSAkcHNxbDEgPSAkbm9kZS0+ YmFja2dyb3VuZF9wc3FsKCdwb3N0Z3JlcycpOworCisjIEluaXRpYWxseSBjcmVhdGUgdGhlIHRh YmxlIHdpdGhvdXQgYW4gaW5kZXgsIHNvIHJlYWQgcGF0aHMgZ28gc3RyYWlnaHQKKyMgdGhyb3Vn aCB0aGUgcmVhZC1zdHJlYW0gLyBidWZmZXItbWFuYWdlciBlbnRyeSBwb2ludHMgd2l0aG91dCBi ZWluZworIyBtYXNrZWQgYnkgYW4gaW5kZXggc2NhbiB0aGF0IHdvdWxkIGhpdCBSZWFkQnVmZmVy X2NvbW1vbiBmcm9tIG5idHJlZS4KKyRwc3FsMS0+cXVlcnlfc2FmZShxKENSRUFURSBURU1QIFRB QkxFIGZvbyBBUyBTRUxFQ1QgNDIgQVMgdmFsOykpOworCisjIFJlc29sdmUgdGhlIG93bmVyJ3Mg dGVtcCBzY2hlbWEgc28gdGhlIHByb2Jpbmcgc2Vzc2lvbiBjYW4gcmVmZXIgdG8KKyMgdGhlIHRh YmxlIGJ5IGEgZnVsbHktcXVhbGlmaWVkIG5hbWUuCitteSAkdGVtcHNjaGVtYSA9ICRub2RlLT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwlxeworICAgICAgU0VMRUNUIG4ubnNwbmFtZQorICAg ICAgRlJPTSBwZ19jbGFzcyBjCisgICAgICBKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0g Yy5yZWxuYW1lc3BhY2UKKyAgICAgIFdIRVJFIHJlbG5hbWUgPSAnZm9vJyBBTkQgcmVscGVyc2lz dGVuY2UgPSAndCc7CisgICAgfQorKTsKK2Nob21wICR0ZW1wc2NoZW1hOworb2soJHRlbXBzY2hl bWEgPX4gL15wZ190ZW1wX1xkKyQvLCAiZ290IHRlbXAgc2NoZW1hOiAkdGVtcHNjaGVtYSIpOwor CitteSAoJHN0ZG91dCwgJHN0ZGVycik7CisKKyMgRE1MIGFuZCBTRUxFQ1QgaGF2ZSB0byByZWFk IHRoZSB0YWJsZSdzIGRhdGEgYW5kIHRoZXJlZm9yZSBnbyB0aHJvdWdoCisjIHRoZSBidWZmZXIg bWFuYWdlci4gIFdpdGggbm8gaW5kZXggb24gdGhlIHRhYmxlLCB0aGUgcGxhbm5lciBjYW5ub3QK KyMgdXNlIGluZGV4IGFjY2Vzcywgc28gU0VMRUNUL1VQREFURS9ERUxFVEUvTUVSR0UvQ09QWSBh bGwgcnVuIHRocm91Z2gKKyMgdGhlIHJlYWQtc3RyZWFtIHBhdGguCisjCisjIFhYWDogaW4gY3Vy cmVudCBjb2RlLCB0aGUgcmVhZC1zdHJlYW0gcGF0aCBieXBhc3NlcyB0aGUKKyMgUkVMQVRJT05f SVNfT1RIRVJfVEVNUCgpIGNoZWNrLCBzbyB0aGVzZSBjb21tYW5kcyBzaWxlbnRseSBzZWUgbm8K KyMgcm93cyAvIHJlcG9ydCB6ZXJvIGFmZmVjdGVkIHJvd3MgLS0gdGhlIHZpc2libGUgc3ltcHRv bSBvZiB0aGUgYnVnCisjIHRoaXMgdGVzdCBzdWl0ZSBkb2N1bWVudHMuICBBIGZvbGxvdy11cCBw YXRjaCB3aWxsIHJvdXRlIHRoZSBjaGVjaworIyB0aHJvdWdoIHJlYWRfc3RyZWFtX2JlZ2luX2lt cGwoKSBhbmQgdGhlc2UgYXNzZXJ0aW9ucyB3aWxsIGJlCisjIHVwZGF0ZWQgdG8gZXhwZWN0ICJj YW5ub3QgYWNjZXNzIHRlbXBvcmFyeSB0YWJsZXMgb2Ygb3RoZXIgc2Vzc2lvbnMiLgorCiskbm9k ZS0+cHNxbCgKKwkncG9zdGdyZXMnLAorCSJTRUxFQ1QgdmFsIEZST00gJHRlbXBzY2hlbWEuZm9v OyIsCisJc3Rkb3V0ID0+IFwkc3Rkb3V0LAorCXN0ZGVyciA9PiBcJHN0ZGVycik7Citpcygkc3Rk ZXJyLCAnJywgJ1NFTEVDVCAoY3VycmVudGx5IG5vIGVycm9yIC0tIGJ1ZyB0byBiZSBmaXhlZCkn KTsKKworIyBJTlNFUlQgZ29lcyB0aHJvdWdoIGhpby5jIHdoaWNoIGNhbGxzIFJlYWRCdWZmZXJF eHRlbmRlZCgpIHRvIGZpbmQgYQorIyBwYWdlIHdpdGggZnJlZSBzcGFjZTsgdGhhdCBoaXRzIHRo ZSBleGlzdGluZyBjaGVjayBiZWZvcmUgYW55IGRhdGEgaXMKKyMgd3JpdHRlbi4gIFRoaXMgY2Fz ZSBjdXJyZW50bHkgZXJyb3JzIGFzIGV4cGVjdGVkLgorJG5vZGUtPnBzcWwoCisJJ3Bvc3RncmVz JywKKwkiSU5TRVJUIElOVE8gJHRlbXBzY2hlbWEuZm9vIFZBTFVFUyAoNzMpOyIsCisJc3RkZXJy ID0+IFwkc3RkZXJyKTsKK2xpa2UoJHN0ZGVyciwKKwlxci9jYW5ub3QgYWNjZXNzIHRlbXBvcmFy eSB0YWJsZXMgb2Ygb3RoZXIgc2Vzc2lvbnMvLAorCSdJTlNFUlQgKGNhdWdodCB2aWEgaGlvLmMp Jyk7CisKKyRub2RlLT5wc3FsKAorCSdwb3N0Z3JlcycsCisJIlVQREFURSAkdGVtcHNjaGVtYS5m b28gU0VUIHZhbCA9IE5VTEw7IiwKKwlzdGRlcnIgPT4gXCRzdGRlcnIpOworaXMoJHN0ZGVyciwg JycsICdVUERBVEUgKGN1cnJlbnRseSBubyBlcnJvciAtLSBidWcgdG8gYmUgZml4ZWQpJyk7CisK KyRub2RlLT5wc3FsKCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSAkdGVtcHNjaGVtYS5mb287Iiwg c3RkZXJyID0+IFwkc3RkZXJyKTsKK2lzKCRzdGRlcnIsICcnLCAnREVMRVRFIChjdXJyZW50bHkg bm8gZXJyb3IgLS0gYnVnIHRvIGJlIGZpeGVkKScpOworCiskbm9kZS0+cHNxbCgKKwkncG9zdGdy ZXMnLAorCSJNRVJHRSBJTlRPICR0ZW1wc2NoZW1hLmZvbyBVU0lORyAoVkFMVUVTICg0MikpIEFT IHModmFsKSAiCisJICAuICJPTiBmb28udmFsID0gcy52YWwgV0hFTiBNQVRDSEVEIFRIRU4gREVM RVRFOyIsCisJc3RkZXJyID0+IFwkc3RkZXJyKTsKK2lzKCRzdGRlcnIsICcnLCAnTUVSR0UgKGN1 cnJlbnRseSBubyBlcnJvciAtLSBidWcgdG8gYmUgZml4ZWQpJyk7CisKKyRub2RlLT5wc3FsKCdw b3N0Z3JlcycsICJDT1BZICR0ZW1wc2NoZW1hLmZvbyBUTyBTVERPVVQ7IiwKKwlzdGRlcnIgPT4g XCRzdGRlcnIpOworaXMoJHN0ZGVyciwgJycsICdDT1BZIChjdXJyZW50bHkgbm8gZXJyb3IgLS0g YnVnIHRvIGJlIGZpeGVkKScpOworCisjIERETCBhbmQgbWFpbnRlbmFuY2UgY29tbWFuZHMgaGF2 ZSB0aGVpciBvd24gY29tbWFuZC1zcGVjaWZpYyBjaGVja3MKKyMgKG9sZGVyIHRoYW4gdGhlIGJ1 ZmZlci1tYW5hZ2VyIGNoZWNrIGFib3ZlKSwgc28gdGhleSBmYWlsIHdpdGgKKyMgY29tbWFuZC1z cGVjaWZpYyBlcnJvciBtZXNzYWdlcy4gIFZlcmlmeWluZyB0aGVtIGhlcmUgZG9jdW1lbnRzIHRo ZQorIyBleHBlY3RlZCBiZWhhdmlvdXIgYW5kIGd1YXJkcyBhZ2FpbnN0IGFjY2lkZW50YWwgcmVt b3ZhbCBvZiB0aG9zZQorIyBjaGVja3MuCisKKyRub2RlLT5wc3FsKCdwb3N0Z3JlcycsICJUUlVO Q0FURSBUQUJMRSAkdGVtcHNjaGVtYS5mb287IiwKKwlzdGRlcnIgPT4gXCRzdGRlcnIpOworbGlr ZSgkc3RkZXJyLAorCXFyL2Nhbm5vdCB0cnVuY2F0ZSB0ZW1wb3JhcnkgdGFibGVzIG9mIG90aGVy IHNlc3Npb25zLywKKwknVFJVTkNBVEUnKTsKKworJG5vZGUtPnBzcWwoCisJJ3Bvc3RncmVzJywK KwkiQUxURVIgVEFCTEUgJHRlbXBzY2hlbWEuZm9vIEFMVEVSIENPTFVNTiB2YWwgVFlQRSBiaWdp bnQ7IiwKKwlzdGRlcnIgPT4gXCRzdGRlcnIpOworbGlrZSgkc3RkZXJyLAorCXFyL2Nhbm5vdCBh bHRlciB0ZW1wb3JhcnkgdGFibGVzIG9mIG90aGVyIHNlc3Npb25zLywKKwknQUxURVIgVEFCTEUn KTsKKworIyBWQUNVVU0gc2lsZW50bHkgc2tpcHMgb3RoZXIgc2Vzc2lvbnMnIHRlbXAgdGFibGVz ICh2YWN1dW1fcmVsKCkgcmV0dXJucworIyB3aXRob3V0IHdhcm5pbmcgdG8gYXZvaWQgbm9pc2Ug ZHVyaW5nIGRhdGFiYXNlLXdpZGUgVkFDVVVNKS4gIFZlcmlmeQorIyB0aGF0IG5vIGVycm9yIGlz IHJlcG9ydGVkLCBhbmQgdGhhdCBubyBidWZmZXItYWNjZXNzIHBhdGggaXMgaGl0LgorJG5vZGUt PnBzcWwoJ3Bvc3RncmVzJywgIlZBQ1VVTSAkdGVtcHNjaGVtYS5mb287Iiwgc3RkZXJyID0+IFwk c3RkZXJyKTsKK2lzKCRzdGRlcnIsICcnLCAnVkFDVVVNIGlzIHNpbGVudGx5IHNraXBwZWQnKTsK KworJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgIkNMVVNURVIgJHRlbXBzY2hlbWEuZm9vOyIsIHN0 ZGVyciA9PiBcJHN0ZGVycik7CitsaWtlKCRzdGRlcnIsCisJcXIvY2Fubm90IGV4ZWN1dGUgQ0xV U1RFUiBvbiB0ZW1wb3JhcnkgdGFibGVzIG9mIG90aGVyIHNlc3Npb25zLywKKwknQ0xVU1RFUicp OworCisjIE5vdyBjcmVhdGUgYW4gaW5kZXggdG8gZXhlcmNpc2UgdGhlIGluZGV4LXNjYW4gcGF0 aC4gIG5idHJlZSBjYWxscworIyBSZWFkQnVmZmVyICh3aGljaCBpcyBSZWFkQnVmZmVyRXh0ZW5k ZWQgLT4gUmVhZEJ1ZmZlcl9jb21tb24pLCBzbworIyB0aGlzIGV4ZXJjaXNlcyBhIGRpZmZlcmVu dCBjaGFpbiBvZiBidWZmZXItbWFuYWdlciBlbnRyeSBwb2ludHMuCiskcHNxbDEtPnF1ZXJ5X3Nh ZmUocShDUkVBVEUgSU5ERVggT04gZm9vKHZhbCk7KSk7CisKKyRub2RlLT5wc3FsKAorCSdwb3N0 Z3JlcycsCisJIlNFVCBlbmFibGVfc2Vxc2NhbiA9IG9mZjsgU0VMRUNUIHZhbCBGUk9NICR0ZW1w c2NoZW1hLmZvbyBXSEVSRSB2YWwgPSA0MjsiLAorCXN0ZGVyciA9PiBcJHN0ZGVycik7CitsaWtl KAorCSRzdGRlcnIsCisJcXIvY2Fubm90IGFjY2VzcyB0ZW1wb3JhcnkgdGFibGVzIG9mIG90aGVy IHNlc3Npb25zLywKKwknaW5kZXggc2NhbiAoUmVhZEJ1ZmZlcl9jb21tb24gdmlhIG5idHJlZSkn KTsKKworIyBBTFRFUiBJTkRFWCBnb2VzIHRocm91Z2ggdGhlIHNhbWUgQ2hlY2tBbHRlclRhYmxl SXNTYWZlKCkgcGF0aCBhcworIyBBTFRFUiBUQUJMRSwgc28gaXQgcHJvZHVjZXMgdGhlIHNhbWUg ZXJyb3IuCiskbm9kZS0+cHNxbCgKKwkncG9zdGdyZXMnLAorCSJBTFRFUiBJTkRFWCAkdGVtcHNj aGVtYS5mb29fdmFsX2lkeCBTRVQgKGZpbGxmYWN0b3IgPSA1MCk7IiwKKwlzdGRlcnIgPT4gXCRz dGRlcnIpOworbGlrZSgkc3RkZXJyLAorCXFyL2Nhbm5vdCBhbHRlciB0ZW1wb3JhcnkgdGFibGVz IG9mIG90aGVyIHNlc3Npb25zLywKKwknQUxURVIgSU5ERVgnKTsKKworIyBBIGZ1bmN0aW9uIGNy ZWF0ZWQgYnkgdGhlIG93bmVyIGluIGl0cyBvd24gcGdfdGVtcCB1c2luZyBpdHMgb3duCisjIHJv dyB0eXBlIGNhbiBiZSBvYnNlcnZlZCB2aWEgdGhlIGNhdGFsb2cgYnkgYSBzZXBhcmF0ZSBzZXNz aW9uLgorIyBBTFRFUiBGVU5DVElPTiBhbmQgRFJPUCBGVU5DVElPTiBvbiBpdCBtdXN0IHdvcmsg YXMgY2F0YWxvZworIyBvcGVyYXRpb25zIC0tIHRoZXkgZG9uJ3QgcmVhZCB0aGUgdW5kZXJseWlu ZyB0YWJsZSAtLSB3aGljaAorIyBkb2N1bWVudHMgdGhlIGJvdW5kYXJ5IGJldHdlZW4gY2F0YWxv ZyBhbmQgZGF0YSBhY2Nlc3MgZm9yIHRlbXAKKyMgb2JqZWN0cy4KKyRwc3FsMS0+cXVlcnlfc2Fm ZSgKKwlxW0NSRUFURSBGVU5DVElPTiBwZ190ZW1wLmZvb19pZChyIGZvbykgUkVUVVJOUyBpbnQg TEFOR1VBR0UgU1FMIF0KKwkgIC4gcVtBUyAnU0VMRUNUIHIudmFsJztdKTsKKworJG5vZGUtPnBz cWwoCisJJ3Bvc3RncmVzJywKKwkiQUxURVIgRlVOQ1RJT04gJHRlbXBzY2hlbWEuZm9vX2lkKCR0 ZW1wc2NoZW1hLmZvbykgIgorCSAgLiAiU0VUIHNlYXJjaF9wYXRoID0gcGdfY2F0YWxvZzsiLAor CXN0ZGVyciA9PiBcJHN0ZGVycik7Citpcygkc3RkZXJyLCAnJywgJ0FMVEVSIEZVTkNUSU9OIG9u IGZ1bmN0aW9uIG92ZXIgb3RoZXIgc2Vzc2lvblwncyByb3cgdHlwZScpOworCiskbm9kZS0+cHNx bCgKKwkncG9zdGdyZXMnLAorCSJEUk9QIEZVTkNUSU9OICR0ZW1wc2NoZW1hLmZvb19pZCgkdGVt cHNjaGVtYS5mb28pOyIsCisJc3RkZXJyID0+IFwkc3RkZXJyKTsKK2lzKCRzdGRlcnIsICcnLCAn RFJPUCBGVU5DVElPTiBvbiBmdW5jdGlvbiBvdmVyIG90aGVyIHNlc3Npb25cJ3Mgcm93IHR5cGUn KTsKKworIyBEUk9QIFRBQkxFIG9uIGFub3RoZXIgc2Vzc2lvbidzIHRlbXAgdGFibGUgaXMgaW50 ZW50aW9uYWxseSBwZXJtaXR0ZWQuCisjIERST1AgZG9lc24ndCB0b3VjaCB0aGUgdGFibGUncyBj b250ZW50cywgYW5kIGF1dG92YWN1dW0gcmVsaWVzIG9uIHRoaXMKKyMgdG8gcmVtb3ZlIHRlbXAg cmVsYXRpb25zIG9ycGhhbmVkIGJ5IGEgY3Jhc2hlZCBiYWNrZW5kLiAgVmVyaWZ5IHRoYXQKKyMg dGhlIGJhcmUgRFJPUCBzdWNjZWVkcyB3aXRob3V0IGVycm9yLgorJG5vZGUtPnBzcWwoJ3Bvc3Rn cmVzJywgIkRST1AgVEFCTEUgJHRlbXBzY2hlbWEuZm9vOyIsIHN0ZGVyciA9PiBcJHN0ZGVycik7 Citpcygkc3RkZXJyLCAnJywgJ0RST1AgVEFCTEUgaXMgYWxsb3dlZCcpOworCisjIENyb3NzLXNl c3Npb24gQ1JFQVRFIEZVTkNUSU9OIHNjZW5hcmlvLiAgVGhlIG93bmVyIGNyZWF0ZXMgYSBmcmVz aAorIyB0ZW1wIHRhYmxlIGZvbzIgaW4gaXRzIHBnX3RlbXAgbmFtZXNwYWNlLCBhbmQgYSBzZXBh cmF0ZSBzZXNzaW9uCisjIHRoZW4gY3JlYXRlcyBhIGZ1bmN0aW9uIHdob3NlIGFyZ3VtZW50IHR5 cGUgaXMgdGhhdCByb3cgdHlwZS4KKyMgUG9zdGdyZVNRTCBhbGxvd3MgdGhpcyBhbmQgZW1pdHMg YSBOT1RJQ0U6IHRoZSBmdW5jdGlvbiBpcyBtb3ZlZAorIyBpbnRvIHRoZSBjcmVhdG9yJ3MgcGdf dGVtcCBuYW1lc3BhY2Ugd2l0aCBhbiBhdXRvLWRlcGVuZGVuY3kgb24KKyMgdGhlIGJvcnJvd2Vk IHR5cGUsIHNvIGl0IGRpc2FwcGVhcnMgdG9nZXRoZXIgd2l0aCB0aGUgc2Vzc2lvbiB0aGF0Cisj IGNyZWF0ZWQgaXQuCiskcHNxbDEtPnF1ZXJ5X3NhZmUocShDUkVBVEUgVEVNUCBUQUJMRSBmb28y IEFTIFNFTEVDVCA0MiBBUyB2YWw7KSk7CisKKyRub2RlLT5wc3FsKAorCSdwb3N0Z3JlcycsCisJ IkNSRUFURSBGVU5DVElPTiBwdWJsaWMuY3Jvc3Nfc2Vzc2lvbl9mdW5jKHIgJHRlbXBzY2hlbWEu Zm9vMikgIgorCSAgLiAiUkVUVVJOUyBpbnQgTEFOR1VBR0UgU1FMIEFTICdTRUxFQ1QgMSc7IiwK KwlzdGRlcnIgPT4gXCRzdGRlcnIpOworbGlrZSgKKwkkc3RkZXJyLAorCXFyL2Z1bmN0aW9uICJj cm9zc19zZXNzaW9uX2Z1bmMiIHdpbGwgYmUgZWZmZWN0aXZlbHkgdGVtcG9yYXJ5LywKKwknQ1JF QVRFIEZVTkNUSU9OIHVzaW5nIG90aGVyIHNlc3Npb25cJ3Mgcm93IHR5cGUgaXMgZWZmZWN0aXZl bHkgdGVtcG9yYXJ5JworKTsKKworIyBBIGJhcmUgRFJPUCBUQUJMRSBvbiBmb28yIG5vdyBmYWls cyBiZWNhdXNlIGNyb3NzX3Nlc3Npb25fZnVuYworIyBkZXBlbmRzIG9uIGl0cyByb3cgdHlwZS4g IFRoaXMgaXMgbm9ybWFsIFNRTCBkZXBlbmRlbmN5IGJlaGF2aW91cgorIyBhbmQgZG9jdW1lbnRz IHRoYXQgRFJPUCBpdHNlbGYgaXMgbm90IGJsb2NrZWQgYnkgYnVmZmVyLW1hbmFnZXIKKyMgY2hl Y2tzIC0tIHdlIGdldCBhIGNhdGFsb2ctbGV2ZWwgZXJyb3IgaW5zdGVhZC4KKyRub2RlLT5wc3Fs KCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFICR0ZW1wc2NoZW1hLmZvbzI7Iiwgc3RkZXJyID0+IFwk c3RkZXJyKTsKK2xpa2UoCisJJHN0ZGVyciwKKwlxci9jYW5ub3QgZHJvcCB0YWJsZSAuKlwuZm9v MiBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0LywKKwknRFJPUCBUQUJMRSBibG9j a2VkIGJ5IGNyb3NzLXNlc3Npb24gZGVwZW5kZW5jeScpOworCisjIFdoZW4gdGhlIG93bmVyIHNl c3Npb24gZW5kcywgaXRzIHRlbXAgb2JqZWN0cyBhcmUgZHJvcHBlZCB2aWEgdGhlCisjIG5vcm1h bCBzZXNzaW9uLWV4aXQgY2xlYW51cCwgd2hpY2ggY2FzY2FkZXMgdGhyb3VnaAorIyBERVBFTkRF TkNZX05PUk1BTCBhbmQgYWxzbyByZW1vdmVzIHRoZSBjcm9zcy1zZXNzaW9uIGZ1bmN0aW9uIHRo YXQKKyMgZGVwZW5kZWQgb24gdGhlIHRlbXAgcm93IHR5cGUuICBUaGlzIGlzIHRoZSBzYW1lIG1l Y2hhbmlzbQorIyBhdXRvdmFjdXVtIHJlbGllcyBvbiB0byBjbGVhbiB1cCB0ZW1wIHJlbGF0aW9u cyBsZWZ0IGJlaGluZCBieSBhCisjIGNyYXNoZWQgYmFja2VuZC4KKyRwc3FsMS0+cXVpdDsKKwor JG5vZGUtPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywKKwkiU0VMRUNUIE5PVCBFWElT VFMgKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBwcm9uYW1lID0gJ2Nyb3NzX3Nlc3Npb25f ZnVuYycpIgorKSBvciBkaWUgImNyb3NzX3Nlc3Npb25fZnVuYyB3YXMgbm90IGNsZWFuZWQgdXAg YWZ0ZXIgb3duZXIgc2Vzc2lvbiBleGl0IjsKKworb2soMSwgJ2Nyb3NzX3Nlc3Npb25fZnVuYyBj bGVhbmVkIHVwIHdoZW4gb3duZXIgc2Vzc2lvbiBlbmRzJyk7CisKK2RvbmVfdGVzdGluZygpOwot LSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000990a140650d84480--