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 1vl3yH-006Sgu-0E for pgsql-hackers@arkaria.postgresql.org; Wed, 28 Jan 2026 11:44:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vl3yF-0014ag-2W for pgsql-hackers@arkaria.postgresql.org; Wed, 28 Jan 2026 11:44:28 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vl2bH-000iOK-08 for pgsql-hackers@lists.postgresql.org; Wed, 28 Jan 2026 10:16:39 +0000 Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vl2bE-00000000rIx-2wmQ for pgsql-hackers@lists.postgresql.org; Wed, 28 Jan 2026 10:16:39 +0000 Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-b7cf4a975d2so978427666b.2 for ; Wed, 28 Jan 2026 02:16:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769595393; cv=none; d=google.com; s=arc-20240605; b=hqWJjL3APe175zHhvOjg7tunqq+3Muz+g/9ny/+HVT1PGuHCmzTZzGcyrHKUaficA4 ugNPxCIHYZV4Kvr778/vF3LC0HyAmPGVB+1tsOsSqubpXWb1kF52I1UXoDfLzq1vHeA9 ec8I0kRiBWt4tLVMn0mxr5xre9UA0dGhiMlTmfdScbNWiyezajgYe2+pE3jkzU36jxkX CERSueaO6K2nwXDtOjOUIuLth0qZyN6SVpjgYp4Ouj8FQ+mVln/SxnTJguZkHFaT57Rc JlE8wBLkR1ghISwk++MN6pyTcBa8Jg5OYxGItWeLSHuBicrTi2h5L9qPVS8/AHVDAdsf KFyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=wAG1rFcVOyJIvjPKS3eTjgK2wnv3co7P/g6Xhz+ZLOs=; fh=nwNxTtLLPTU0ewfLM7SSbrjMajMl+wwnFkCY/fi90vE=; b=TY0VDt2GkHK5y/VLD416YX2C1OMUyc1wPcq3sMJ1+b0BmvEoh1Zd3+ZD/dX/kSrj92 90NLEOnu03ACfZsc8MzFgeEJu0qw/WEr2/oIcOgTZ16YrSR0gFOnypGef62OFTNlJwpT bEPRPeI7yrE4Tee/xRoj/NC8WFWhLl1XHU9vNlhzq+M5U//EILD4uQZaxDKsyTH/iWvf 72msLLY/FOfH2tCQJ/msMBeFsrRGnW6SD/rrhKMFZXpxUO8H8lkP5uZCuNNO8OMDiNMr pyOGqU0ElXRyX/wTTYFxzsya44QW2F37gS7YhGA8NW+O9pG41VvjTjEA/wgY3ehdDN8/ CZpA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aiven.io; s=google; t=1769595393; x=1770200193; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=wAG1rFcVOyJIvjPKS3eTjgK2wnv3co7P/g6Xhz+ZLOs=; b=ovtD5cOa0ur90za0m6YRQe7v85Y1izHQRawEPKITH++HuKtAELBJ0DtUkcpMs7E4rM +iMCLWzD5jj3TcMfq1UIwnJMKn40hq16LQ6dEfrDW3gvlsAFz7vwrCOh/N+AXOTlxt2M sbImpNnZ7QU2R3Q/jBHVyjqrTBMTS3PVbiP50= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769595393; x=1770200193; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wAG1rFcVOyJIvjPKS3eTjgK2wnv3co7P/g6Xhz+ZLOs=; b=fiCX5GmSGrp9E3UD3IfAwD5WOhCGYp4p7enp/uY6vwTyG7Uh3bRhU1EJAllNJNWqD0 6Ch/a6ZflZv+gXQp2kwoa0X5iqqrsaM1nG9KGftVPOsP/DvUjoryRDLAOfudLjR20s2q docuOfQsPbO8S0bCR164OFKhl3X6cTtFJfIH72pEeLPiCuGRUyJ+mn2Xg1FGK7z5KRyk Kk/ozR3pRgdyY0K4rf68xqsUDnoe/7TTtL8MBSHWEJGN+P+1M7yg90f1iY2/kc/Q8d0N EkgVzJU7Y9iVcTHvcP5/QL/d30wtA9FZkrkkVeC+/lCbVRE/7DzAEfSxdEF43RWa24U2 oKew== X-Gm-Message-State: AOJu0YxQEuB4QjQM9rt4esWwQeLhWgfWjC28IHv8IRTwKulq/fACapw3 LyfBF+L/Ougkdpx+Fqb1LSgAqgAQwnalVdv2pKtdB8TZCWC+/bjSlvv2Ag+S8S5HRd/R9s8rs9i XyjwcrquHmZ1KJAew2LUtJ2sizNStHz5Pjg5coge24xjQHVeSDeH556I= X-Gm-Gg: AZuq6aISWxquExqKRUBv/xN7YFy1UUNZ7q5f2dtBIXJCuyjN3NfRAsGgiKwStXUzf+z X+Nq/IGEOniY54Hn0FQG204VIbLSCrmXOmDlzl8WYArwCYwPX8uA26JT/rAouz48EQgT9aRArJ/ E70AlOrKKnmUaginJ5yk/+QG1JGfknA4CDqp9QRsyEkQDy520SbLeyqj6iXJ5cHLXMrdylfh75u u0fzmwyh27Rit51W2uHK2qVv/Xyw7irf5ouy7o1rsD2UHEHCgdIZV94C30Z9Aj42fRZVLgbCLrH z/VLwzXR/Ddbhe8MbwyuiXMiRD3N X-Received: by 2002:a17:907:3c93:b0:b88:637d:30e1 with SMTP id a640c23a62f3a-b8dab4a962bmr299328366b.65.1769595392732; Wed, 28 Jan 2026 02:16:32 -0800 (PST) MIME-Version: 1.0 From: Ahmed Et-tanany Date: Wed, 28 Jan 2026 11:16:21 +0100 X-Gm-Features: AZwV_QgzGSFXy3MKyiQHoEt_fVuSlCf4H3X9m0xOiea39XAJ7CSYKT2XZdT6jO0 Message-ID: Subject: [PATCH] Add max_logical_replication_slots GUC To: pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000c7e5d8064970089a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c7e5d8064970089a Content-Type: multipart/alternative; boundary="000000000000c7e5d20649700898" --000000000000c7e5d20649700898 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello Hackers, This patch introduces a new postmaster-level configuration parameter, max_logical_replication_slots, which limits the number of logical replication slots that can be created. Currently, max_replication_slots governs the total number of slots, but there's no separate limit for logical slots. This patch: Adds max_logical_replication_slots GUC, defaulting to -1 (falls back to max_replication_slots). Enforces at server startup that max_logical_replication_slots =E2=89=A4 max_replication_slots. PostgreSQL will refuse to start if this is violated or if there are more existing logical slots than the configured maximum. Checks the logical slot limit when creating new slots at runtime, preventing creation beyond the configured maximum. Updates documentation, sample config, and test_decoding tests to include logical slot limits. This provides a separation between logical and total replication slots, and allows users to control logical slot usage independently. Best regards, -- Ahmed Et-tanany Aiven: https://aiven.io/ --000000000000c7e5d20649700898 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Hackers,

This patch introduces a new pos= tmaster-level configuration parameter,
max_logical_replication_slots, wh= ich limits the number of logical
replication slots that can be created.<= br>
Currently, max_replication_slots governs the total number of slots,<= br>but there's no separate limit for logical slots. This patch:

= Adds max_logical_replication_slots GUC, defaulting to -1
(falls back to = max_replication_slots).

Enforces at server startup that max_logical_= replication_slots =E2=89=A4
max_replication_slots. PostgreSQL will refus= e to start if this
is violated or if there are more existing logical slo= ts than
the configured maximum.

Checks the logical slot limit whe= n creating new slots at runtime,
preventing creation beyond the configur= ed maximum.

Updates documentation, sample config, and test_decoding = tests
to include logical slot limits.

This provides a separation = between logical and total replication
slots, and allows users to control= logical slot usage independently.

Best regards= ,

--
Ahm= ed Et-tanany
Aiven:=C2=A0https://aiven.io/
--000000000000c7e5d20649700898-- --000000000000c7e5d8064970089a Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-max_logical_replication_slots-GUC-v1.patch" Content-Disposition: attachment; filename="0001-Add-max_logical_replication_slots-GUC-v1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkxv9av80 RnJvbSA4NDViNjFlYzk2MzE0NWVkNjY3MTljOTUyOTczNWEyNzY1MThhZmMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBaG1lZCBFdC10YW5hbnkgPGFobWVkLmV0dGFuYW55QGFpdmVu LmlvPgpEYXRlOiBUdWUsIDI3IEphbiAyMDI2IDEyOjE1OjQ2ICswMTAwClN1YmplY3Q6IFtQQVRD SF0gQWRkIG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzIEdVQyBhbmQgZW5mb3JjZSBzdGFy dHVwCiBpbnZhcmlhbnQKCkludHJvZHVjZSBhIG5ldyBwb3N0bWFzdGVyLWxldmVsIGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyLAptYXhfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cywgdG8gbGltaXQg dGhlIG51bWJlciBvZiBsb2dpY2FsCnJlcGxpY2F0aW9uIHNsb3RzIHRoYXQgY2FuIGV4aXN0IHNp bXVsdGFuZW91c2x5LgoKVGhlIHBhcmFtZXRlciBkZWZhdWx0cyB0byAtMSwgbWVhbmluZyBpdCBm YWxscyBiYWNrIHRvCm1heF9yZXBsaWNhdGlvbl9zbG90cy4gU2V0dGluZyBtYXhfbG9naWNhbF9y ZXBsaWNhdGlvbl9zbG90cyBncmVhdGVyCnRoYW4gbWF4X3JlcGxpY2F0aW9uX3Nsb3RzIGlzIHBy b2hpYml0ZWQuCgpFbmZvcmNlIHRoaXMgaW52YXJpYW50IGVhcmx5IGR1cmluZyBzZXJ2ZXIgc3Rh cnR1cCBpbgpTdGFydHVwUmVwbGljYXRpb25TbG90cygpLCBiZWZvcmUgcmVzdG9yaW5nIHNsb3Rz IGZyb20gZGlzay4gSWYgdGhlCm51bWJlciBvZiBleGlzdGluZyBsb2dpY2FsIHNsb3RzIGV4Y2Vl ZHMgdGhlIGNvbmZpZ3VyZWQgbWF4aW11bSwgdGhlCnNlcnZlciB3aWxsIGZhaWwgdG8gc3RhcnQg d2l0aCBhIEZBVEFMIGVycm9yLiBUaGlzIHByZXZlbnRzIGNvbmZ1c2luZwpzaXR1YXRpb25zIHdo ZXJlIHRvbyBtYW55IGxvZ2ljYWwgc2xvdHMgZXhpc3Qgb24gZGlzay4KCkFkZGl0aW9uYWxseSwg ZW5mb3JjZSB0aGUgbG9naWNhbCBzbG90IGxpbWl0IHdoZW4gY3JlYXRpbmcgbmV3CnNsb3RzIGF0 IHJ1bnRpbWUsIHByZXZlbnRpbmcgbW9yZSBsb2dpY2FsIHNsb3RzIHRoYW4gdGhlIGNvbmZpZ3Vy ZWQKbWF4aW11bS4KCkFkZCByZWxldmFudCBkb2N1bWVudGF0aW9uLCBzYW1wbGUgY29uZmlndXJh dGlvbiwgYW5kIHRlc3QgY2FzZXMKZm9yIHZlcmlmeWluZyB0aGUgbmV3IEdVQyBhbmQgaXRzIGVu Zm9yY2VtZW50LgotLS0KIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91dCAg ICAgICB8IDg3ICsrKysrKysrKysrKysrKysrKy0KIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9sb2dp Y2FsLmNvbmYgICAgICAgICAgICB8ICAzICstCiBjb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Ns b3Quc3FsICAgICAgICAgICAgfCAyNSArKysrKy0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAg ICAgICAgICAgICAgICAgICAgICB8IDIyICsrKysrCiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBs aWNhdGlvbi5zZ21sICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xv dC5jICAgICAgICAgICAgICAgIHwgNDggKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWNfcGFyYW1ldGVycy5kYXQgICAgIHwgIDggKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAzICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Ns b3QuaCAgICAgICAgICAgICAgICB8ICAxICsKIDkgZmlsZXMgY2hhbmdlZCwgMTk4IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5n L2V4cGVjdGVkL3Nsb3Qub3V0IGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3Nsb3Qu b3V0CmluZGV4IDdkZTAzYzc5ZjZmLi45NGYwZDRiYWZkMyAxMDA2NDQKLS0tIGEvY29udHJpYi90 ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3Nsb3Qub3V0CisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGlu Zy9leHBlY3RlZC9zbG90Lm91dApAQCAtMjE2LDExICsyMTYsMTEgQEAgT1JERVIgQlkgby5zbG90 X25hbWUsIGMuc2xvdF9uYW1lOwogIG9yaWdfc2xvdDEgfCB0ZXN0X2RlY29kaW5nIHwgZiAgICAg ICAgIHwgY29waWVkX3Nsb3QxX25vX2NoYW5nZSAgICAgICAgICB8IHRlc3RfZGVjb2RpbmcgfCBm CiAoMyByb3dzKQogCi0tLSBOb3cgd2UgaGF2ZSBtYXhpbXVtIDQgcmVwbGljYXRpb24gc2xvdHMu IENoZWNrIHNsb3RzIGFyZSBwcm9wZXJseQorLS0gTm93IHdlIGhhdmUgbWF4aW11bSA0IGxvZ2lj YWwgcmVwbGljYXRpb24gc2xvdHMuIENoZWNrIHNsb3RzIGFyZSBwcm9wZXJseQogLS0gcmVsZWFz ZWQgZXZlbiB3aGVuIHJhaXNlIGVycm9yIGR1cmluZyBjcmVhdGluZyB0aGUgdGFyZ2V0IHNsb3Qu CiBTRUxFQ1QgJ2NvcHknIEZST00gcGdfY29weV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ29y aWdfc2xvdDEnLCAnZmFpbGVkJyk7IC0tIGVycm9yCi1FUlJPUjogIGFsbCByZXBsaWNhdGlvbiBz bG90cyBhcmUgaW4gdXNlCi1ISU5UOiAgRnJlZSBvbmUgb3IgaW5jcmVhc2UgIm1heF9yZXBsaWNh dGlvbl9zbG90cyIuCitFUlJPUjogIGFsbCBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGFyZSBp biB1c2UKK0hJTlQ6ICBGcmVlIG9uZSBvciBpbmNyZWFzZSAibWF4X2xvZ2ljYWxfcmVwbGljYXRp b25fc2xvdHMiLgogLS0gdGVtcG9yYXJ5IHNsb3RzIHdlcmUgZHJvcHBlZCBhdXRvbWF0aWNhbGx5 CiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdvcmlnX3Nsb3QxJyk7CiAgcGdfZHJv cF9yZXBsaWNhdGlvbl9zbG90IApAQCAtNDY2LDMgKzQ2Niw4NCBAQCBTRUxFQ1QgcGdfZHJvcF9y ZXBsaWNhdGlvbl9zbG90KCdwaHlzaWNhbF9zbG90Jyk7CiAgCiAoMSByb3cpCiAKKy0tCistLSBU ZXN0IG1heGltdW0gbGltaXRzIGZvciByZXBsaWNhdGlvbiBzbG90cworLS0KKy0tIENoZWNrIHRo YXQgbm8gbW9yZSB0aGFuIDQgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBjYW4gYmUgY3JlYXRl ZAorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Qo J2xvZ2ljYWxfc2xvdDEnLCAndGVzdF9kZWNvZGluZycpOworID9jb2x1bW4/IAorLS0tLS0tLS0t LQorIGluaXQKKygxIHJvdykKKworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2Fs X3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDInLCAndGVzdF9kZWNvZGluZycpOworID9j b2x1bW4/IAorLS0tLS0tLS0tLQorIGluaXQKKygxIHJvdykKKworU0VMRUNUICdpbml0JyBGUk9N IHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDMnLCAndGVz dF9kZWNvZGluZycpOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIGluaXQKKygxIHJvdykKKwor U0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2xv Z2ljYWxfc2xvdDQnLCAndGVzdF9kZWNvZGluZycpOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQor IGluaXQKKygxIHJvdykKKworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3Jl cGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDUnLCAndGVzdF9kZWNvZGluZycpOyAtLSBlcnJv cgorRVJST1I6ICBhbGwgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBhcmUgaW4gdXNlCitISU5U OiAgRnJlZSBvbmUgb3IgaW5jcmVhc2UgIm1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzIi4K Ky0tIENoZWNrIHRoYXQgdGhlIHJlbWFpbmluZyAyIHNsb3RzIGNhbiBiZSB1c2VkIGZvciBwaHlz aWNhbCByZXBsaWNhdGlvbgorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9y ZXBsaWNhdGlvbl9zbG90KCdwaHlzaWNhbF9zbG90MScpOworID9jb2x1bW4/IAorLS0tLS0tLS0t LQorIGluaXQKKygxIHJvdykKKworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9waHlzaWNh bF9yZXBsaWNhdGlvbl9zbG90KCdwaHlzaWNhbF9zbG90MicpOyAtLSBlcnJvcgorRVJST1I6ICBh bGwgcmVwbGljYXRpb24gc2xvdHMgYXJlIGluIHVzZQorSElOVDogIEZyZWUgb25lIG9yIGluY3Jl YXNlICJtYXhfcmVwbGljYXRpb25fc2xvdHMiLgorU0VMRUNUIHNsb3RfbmFtZSwgc2xvdF90eXBl IEZST00gcGdfcmVwbGljYXRpb25fc2xvdHM7CisgICBzbG90X25hbWUgICAgfCBzbG90X3R5cGUg CistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgbG9naWNhbF9zbG90MSAgfCBsb2dpY2Fs CisgbG9naWNhbF9zbG90MiAgfCBsb2dpY2FsCisgbG9naWNhbF9zbG90MyAgfCBsb2dpY2FsCisg bG9naWNhbF9zbG90NCAgfCBsb2dpY2FsCisgcGh5c2ljYWxfc2xvdDEgfCBwaHlzaWNhbAorKDUg cm93cykKKworU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnbG9naWNhbF9zbG90MScp OworIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxf c2xvdDInKTsKKyBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCds b2dpY2FsX3Nsb3QzJyk7CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25f c2xvdCgnbG9naWNhbF9zbG90NCcpOworIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBwZ19kcm9wX3JlcGxp Y2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QxJyk7CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEv Y29udHJpYi90ZXN0X2RlY29kaW5nL2xvZ2ljYWwuY29uZiBiL2NvbnRyaWIvdGVzdF9kZWNvZGlu Zy9sb2dpY2FsLmNvbmYKaW5kZXggY2MxMmYyNTQyYjQuLjYxZWE2ZWYzZmRiIDEwMDY0NAotLS0g YS9jb250cmliL3Rlc3RfZGVjb2RpbmcvbG9naWNhbC5jb25mCisrKyBiL2NvbnRyaWIvdGVzdF9k ZWNvZGluZy9sb2dpY2FsLmNvbmYKQEAgLTEsNCArMSw1IEBACiB3YWxfbGV2ZWwgPSBsb2dpY2Fs Ci1tYXhfcmVwbGljYXRpb25fc2xvdHMgPSA0CittYXhfcmVwbGljYXRpb25fc2xvdHMgPSA1Citt YXhfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cyA9IDQKIGxvZ2ljYWxfZGVjb2Rpbmdfd29ya19t ZW0gPSA2NGtCCiBhdXRvdmFjdXVtX25hcHRpbWUgPSAxZApkaWZmIC0tZ2l0IGEvY29udHJpYi90 ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xv dC5zcWwKaW5kZXggNTgwZTNhZTNiZWYuLjc3NDkzNjExM2Q0IDEwMDY0NAotLS0gYS9jb250cmli L3Rlc3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9z cWwvc2xvdC5zcWwKQEAgLTEwMyw3ICsxMDMsNyBAQCBXSEVSRQogICAgIG8uc2xvdF9uYW1lICE9 IGMuc2xvdF9uYW1lCiBPUkRFUiBCWSBvLnNsb3RfbmFtZSwgYy5zbG90X25hbWU7CiAKLS0tIE5v dyB3ZSBoYXZlIG1heGltdW0gNCByZXBsaWNhdGlvbiBzbG90cy4gQ2hlY2sgc2xvdHMgYXJlIHBy b3Blcmx5CistLSBOb3cgd2UgaGF2ZSBtYXhpbXVtIDQgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90 cy4gQ2hlY2sgc2xvdHMgYXJlIHByb3Blcmx5CiAtLSByZWxlYXNlZCBldmVuIHdoZW4gcmFpc2Ug ZXJyb3IgZHVyaW5nIGNyZWF0aW5nIHRoZSB0YXJnZXQgc2xvdC4KIFNFTEVDVCAnY29weScgRlJP TSBwZ19jb3B5X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnb3JpZ19zbG90MScsICdmYWlsZWQn KTsgLS0gZXJyb3IKIApAQCAtMTkwLDMgKzE5MCwyNiBAQCBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdmYWlsb3Zlcl90cnVlX3Nsb3QnKTsKIFNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0 aW9uX3Nsb3QoJ2ZhaWxvdmVyX2ZhbHNlX3Nsb3QnKTsKIFNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0 aW9uX3Nsb3QoJ2ZhaWxvdmVyX2RlZmF1bHRfc2xvdCcpOwogU0VMRUNUIHBnX2Ryb3BfcmVwbGlj YXRpb25fc2xvdCgncGh5c2ljYWxfc2xvdCcpOworCistLQorLS0gVGVzdCBtYXhpbXVtIGxpbWl0 cyBmb3IgcmVwbGljYXRpb24gc2xvdHMKKy0tCisKKy0tIENoZWNrIHRoYXQgbm8gbW9yZSB0aGFu IDQgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBjYW4gYmUgY3JlYXRlZAorU0VMRUNUICdpbml0 JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDEn LCAndGVzdF9kZWNvZGluZycpOworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2Fs X3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDInLCAndGVzdF9kZWNvZGluZycpOworU0VM RUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2lj YWxfc2xvdDMnLCAndGVzdF9kZWNvZGluZycpOworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0 ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDQnLCAndGVzdF9kZWNvZGlu ZycpOworU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Ns b3QoJ2xvZ2ljYWxfc2xvdDUnLCAndGVzdF9kZWNvZGluZycpOyAtLSBlcnJvcgorCistLSBDaGVj ayB0aGF0IHRoZSByZW1haW5pbmcgMiBzbG90cyBjYW4gYmUgdXNlZCBmb3IgcGh5c2ljYWwgcmVw bGljYXRpb24KK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRp b25fc2xvdCgncGh5c2ljYWxfc2xvdDEnKTsKK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVf cGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgncGh5c2ljYWxfc2xvdDInKTsgLS0gZXJyb3IKKwor U0VMRUNUIHNsb3RfbmFtZSwgc2xvdF90eXBlIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHM7CisK K1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDEnKTsKK1NFTEVD VCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDInKTsKK1NFTEVDVCBwZ19k cm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDMnKTsKK1NFTEVDVCBwZ19kcm9wX3Jl cGxpY2F0aW9uX3Nsb3QoJ2xvZ2ljYWxfc2xvdDQnKTsKK1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0 aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QxJyk7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29u ZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNTU2MGI5NWVlNjAuLmVj Mzc2OGYzMDJmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC00NTc1LDYgKzQ1NzUsMjggQEAgcmVzdG9yZV9jb21t YW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBXaW5kb3dz CiAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtbWF4LWxvZ2ljYWwtcmVwbGljYXRpb24tc2xvdHMiIHhyZWZsYWJl bD0ibWF4X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHMiPgorICAgICAgIDx0ZXJtPjx2YXJuYW1l Pm1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzPC92YXJuYW1lPiAoPHR5cGU+aW50ZWdlcjwv dHlwZT4pCisgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+bWF4 X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHM8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1l dGVyPC9wcmltYXJ5PgorICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgIDwvdGVybT4KKyAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgU3BlY2lmaWVzIHRoZSBtYXhp bXVtIG51bWJlciBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIHRoYXQKKyAgICAgICAgIHRo ZSBzZXJ2ZXIgY2FuIHN1cHBvcnQuICBJdCBkZWZhdWx0cyB0byAtMSwgaW5kaWNhdGluZyB0aGF0 CisgICAgICAgICB0aGUgdmFsdWUgb2YgPHhyZWYgbGlua2VuZD0iZ3VjLW1heC1yZXBsaWNhdGlv bi1zbG90cyIvPiBzaG91bGQKKyAgICAgICAgIGJlIHVzZWQgaW5zdGVhZC4gIFRoZSB2YWx1ZSBv ZiB0aGlzIHBhcmFtZXRlciBjYW5ub3QgZXhjZWVkCisgICAgICAgICA8eHJlZiBsaW5rZW5kPSJn dWMtbWF4LXJlcGxpY2F0aW9uLXNsb3RzIi8+LCBhbmQgdGhlIHRvdGFsIG51bWJlcgorICAgICAg ICAgb2YgcmVwbGljYXRpb24gc2xvdHMgKGxvZ2ljYWwgYW5kIHBoeXNpY2FsKSBpcyBsaW1pdGVk IGJ5CisgICAgICAgICA8dmFybmFtZT5tYXhfcmVwbGljYXRpb25fc2xvdHM8L3Zhcm5hbWU+LiAg VGhpcyBwYXJhbWV0ZXIgY2FuCisgICAgICAgICBvbmx5IGJlIHNldCBhdCBzZXJ2ZXIgc3RhcnQu ICBTZXR0aW5nIGl0IHRvIGEgbG93ZXIgdmFsdWUgdGhhbgorICAgICAgICAgdGhlIG51bWJlciBv ZiBjdXJyZW50bHkgZXhpc3RpbmcgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyB3aWxsCisgICAg ICAgICBwcmV2ZW50IHRoZSBzZXJ2ZXIgZnJvbSBzdGFydGluZy4KKyAgICAgICAgPC9wYXJhPgor ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXdhbC1rZWVwLXNpemUiIHhyZWZsYWJlbD0id2FsX2tlZXBfc2l6ZSI+ CiAgICAgICAgPHRlcm0+PHZhcm5hbWU+d2FsX2tlZXBfc2l6ZTwvdmFybmFtZT4gKDx0eXBlPmlu dGVnZXI8L3R5cGU+KQogICAgICAgIDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGlj YXRpb24uc2dtbAppbmRleCA1MDI4ZmU5YWYwOS4uODZkMDBmNDhhMjEgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xv Z2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMjY0MSw2ICsyNjQxLDEyIEBAIENPTlRFWFQ6ICBw cm9jZXNzaW5nIHJlbW90ZSBkYXRhIGZvciByZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBk dXJpbmcgIklOU0VSCiAgICAgcGx1cyBzb21lIHJlc2VydmUgZm9yIHRhYmxlIHN5bmNocm9uaXph dGlvbi4KICAgIDwvcGFyYT4KIAorICAgPHBhcmE+CisgICAgPGxpbmsgbGlua2VuZD0iZ3VjLW1h eC1sb2dpY2FsLXJlcGxpY2F0aW9uLXNsb3RzIj48dmFybmFtZT5tYXhfbG9naWNhbF9yZXBsaWNh dGlvbl9zbG90czwvdmFybmFtZT48L2xpbms+CisgICAgbXVzdCBiZSBzZXQgdG8gYXQgbGVhc3Qg dGhlIG51bWJlciBvZiBzdWJzY3JpcHRpb25zIGV4cGVjdGVkIHRvIGNvbm5lY3QsCisgICAgcGx1 cyBzb21lIHJlc2VydmUgZm9yIHRhYmxlIHN5bmNocm9uaXphdGlvbi4KKyAgIDwvcGFyYT4KKwog ICAgPHBhcmE+CiAgICAgTG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBhcmUgYWxzbyBhZmZlY3Rl ZCBieQogICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1pZGxlLXJlcGxpY2F0aW9uLXNsb3QtdGltZW91 dCI+PHZhcm5hbWU+aWRsZV9yZXBsaWNhdGlvbl9zbG90X3RpbWVvdXQ8L3Zhcm5hbWU+PC9saW5r Pi4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA0YzQ3MjYxYzdmOS4uNDI4NjVjNzFlYmIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTE1MCw2ICsxNTAsOCBAQCBSZXBsaWNhdGlvblNsb3Qg Kk15UmVwbGljYXRpb25TbG90ID0gTlVMTDsKIC8qIEdVQyB2YXJpYWJsZXMgKi8KIGludAkJCW1h eF9yZXBsaWNhdGlvbl9zbG90cyA9IDEwOyAvKiB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwbGlj YXRpb24KIAkJCQkJCQkJCQkgKiBzbG90cyAqLworaW50CQkJbWF4X2xvZ2ljYWxfcmVwbGljYXRp b25fc2xvdHMgPSAtMTsgLyogdGhlIG1heGltdW0gbnVtYmVyIG9mCisJCQkJCQkJCQkJCQkgKiBs b2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzICovCiAKIC8qCiAgKiBJbnZhbGlkYXRlIHJlcGxpY2F0 aW9uIHNsb3RzIHRoYXQgaGF2ZSByZW1haW5lZCBpZGxlIGxvbmdlciB0aGFuIHRoaXMKQEAgLTM4 MSw2ICszODMsOSBAQCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9v bCBkYl9zcGVjaWZpYywKIHsKIAlSZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBOVUxMOwogCWludAkJ CWk7CisJaW50CQkJdXNlZF9sb2dpY2FsX3Nsb3RfY291bnQgPSAwOworCWludAkJCW1heF9sb2dp Y2FsX3Nsb3RzID0gbWF4X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHMgIT0gLTEgPworCQltYXhf bG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cyA6IG1heF9yZXBsaWNhdGlvbl9zbG90czsKIAogCUFz c2VydChNeVJlcGxpY2F0aW9uU2xvdCA9PSBOVUxMKTsKIApAQCAtNDQyLDYgKzQ0Nyw4IEBAIFJl cGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAog CQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNU KSwKIAkJCQkJIGVycm1zZygicmVwbGljYXRpb24gc2xvdCBcIiVzXCIgYWxyZWFkeSBleGlzdHMi LCBuYW1lKSkpOworCQlpZiAocy0+aW5fdXNlICYmIFNsb3RJc0xvZ2ljYWwocykpCisJCQl1c2Vk X2xvZ2ljYWxfc2xvdF9jb3VudCsrOwogCQlpZiAoIXMtPmluX3VzZSAmJiBzbG90ID09IE5VTEwp CiAJCQlzbG90ID0gczsKIAl9CkBAIC00NTQsNiArNDYxLDE3IEBAIFJlcGxpY2F0aW9uU2xvdENy ZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAogCQkJCSBlcnJtc2coImFs bCByZXBsaWNhdGlvbiBzbG90cyBhcmUgaW4gdXNlIiksCiAJCQkJIGVycmhpbnQoIkZyZWUgb25l IG9yIGluY3JlYXNlIFwibWF4X3JlcGxpY2F0aW9uX3Nsb3RzXCIuIikpKTsKIAorCS8qCisJICog Q2hlY2sgdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgbGltaXQuIEFueSByZW1haW5pbmcg c2xvdHMgYXJlIHRvCisJICogYmUgdXNlZCBmb3IgcGh5c2ljYWwgcmVwbGljYXRpb24uCisJICov CisJaWYgKGRiX3NwZWNpZmljICYmCisJCXVzZWRfbG9naWNhbF9zbG90X2NvdW50ID49IG1heF9s b2dpY2FsX3Nsb3RzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQ09O RklHVVJBVElPTl9MSU1JVF9FWENFRURFRCksCisJCQkJIGVycm1zZygiYWxsIGxvZ2ljYWwgcmVw bGljYXRpb24gc2xvdHMgYXJlIGluIHVzZSIpLAorCQkJCSBlcnJoaW50KCJGcmVlIG9uZSBvciBp bmNyZWFzZSBcIm1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzXCIuIikpKTsKKwogCS8qCiAJ ICogU2luY2UgdGhpcyBzbG90IGlzIG5vdCBpbiB1c2UsIG5vYm9keSBzaG91bGQgYmUgbG9va2lu ZyBhdCBhbnkgcGFydCBvZgogCSAqIGl0IG90aGVyIHRoYW4gdGhlIGluX3VzZSBmaWVsZCB1bmxl c3MgdGhleSdyZSB0cnlpbmcgdG8gYWxsb2NhdGUgaXQuCkBAIC0yMzc5LDkgKzIzOTcsMTkgQEAg U3RhcnR1cFJlcGxpY2F0aW9uU2xvdHModm9pZCkKIHsKIAlESVIJCSAgICpyZXBsaWNhdGlvbl9k aXI7CiAJc3RydWN0IGRpcmVudCAqcmVwbGljYXRpb25fZGU7CisJaW50CQkJaTsKKwlpbnQJCQls b2dpY2FsX3Nsb3RfY291bnQgPSAwOwogCiAJZWxvZyhERUJVRzEsICJzdGFydGluZyB1cCByZXBs aWNhdGlvbiBzbG90cyIpOwogCisJLyogZmFpbCBlYXJseSBmb3IgaW52YWxpZCBHVUNzICovCisJ aWYgKG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzICE9IC0xICYmCisJCW1heF9sb2dpY2Fs X3JlcGxpY2F0aW9uX3Nsb3RzID4gbWF4X3JlcGxpY2F0aW9uX3Nsb3RzKQorCQllcmVwb3J0KEZB VEFMLAorCQkJCShlcnJtc2coIm1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzICglZCkgY2Fu bm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhfcmVwbGljYXRpb25fc2xvdHMgKCVkKSIsCisJCQkJCQlt YXhfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cywKKwkJCQkJCW1heF9yZXBsaWNhdGlvbl9zbG90 cykpKTsKKwogCS8qIHJlc3RvcmUgYWxsIHNsb3RzIGJ5IGl0ZXJhdGluZyBvdmVyIGFsbCBvbi1k aXNrIGVudHJpZXMgKi8KIAlyZXBsaWNhdGlvbl9kaXIgPSBBbGxvY2F0ZURpcihQR19SRVBMU0xP VF9ESVIpOwogCXdoaWxlICgocmVwbGljYXRpb25fZGUgPSBSZWFkRGlyKHJlcGxpY2F0aW9uX2Rp ciwgUEdfUkVQTFNMT1RfRElSKSkgIT0gTlVMTCkKQEAgLTI0MTksNiArMjQ0NywyNiBAQCBTdGFy dHVwUmVwbGljYXRpb25TbG90cyh2b2lkKQogCX0KIAlGcmVlRGlyKHJlcGxpY2F0aW9uX2Rpcik7 CiAKKwkvKiBjaGVjayB0aGF0IHdlIGRvbid0IGhhdmUgbW9yZSBsb2dpY2FsIHNsb3RzIHJlc3Rv cmVkIHRoYW4gYWxsb3dlZCAqLworCWlmIChtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cyAh PSAtMSkKKwl7CisJCWZvciAoaSA9IDA7IGkgPCBtYXhfcmVwbGljYXRpb25fc2xvdHM7IGkrKykK KwkJeworCQkJUmVwbGljYXRpb25TbG90ICpzbG90ID0gJlJlcGxpY2F0aW9uU2xvdEN0bC0+cmVw bGljYXRpb25fc2xvdHNbaV07CisKKwkJCWlmICghc2xvdC0+aW5fdXNlKQorCQkJCWNvbnRpbnVl OworCisJCQlpZiAoU2xvdElzTG9naWNhbChzbG90KSkKKwkJCQlsb2dpY2FsX3Nsb3RfY291bnQr KzsKKwkJfQorCisJCWlmIChsb2dpY2FsX3Nsb3RfY291bnQgPiBtYXhfbG9naWNhbF9yZXBsaWNh dGlvbl9zbG90cykKKwkJCWVyZXBvcnQoRkFUQUwsCisJCQkJCShlcnJtc2coInRvbyBtYW55IGxv Z2ljYWwgcmVwbGljYXRpb24gc2xvdHMgYWN0aXZlIGJlZm9yZSBzaHV0ZG93biIpLAorCQkJCQkg ZXJyaGludCgiSW5jcmVhc2UgXCJtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90c1wiIGFuZCB0 cnkgYWdhaW4uIikpKTsKKwl9CisKIAkvKiBjdXJyZW50bHkgbm8gc2xvdHMgZXhpc3QsIHdlJ3Jl IGRvbmUuICovCiAJaWYgKG1heF9yZXBsaWNhdGlvbl9zbG90cyA8PSAwKQogCQlyZXR1cm47CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CmluZGV4IGYwMjYwZTZlNDEy Li5mOTliM2NiZjQzNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFy YW1ldGVycy5kYXQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5k YXQKQEAgLTE5MjgsNiArMTkyOCwxNCBAQAogICBtYXggPT4gJ0lOVF9NQVgnLAogfSwKIAoreyBu YW1lID0+ICdtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cycsIHR5cGUgPT4gJ2ludCcsIGNv bnRleHQgPT4gJ1BHQ19QT1NUTUFTVEVSJywgZ3JvdXAgPT4gJ1JFUExJQ0FUSU9OX1NFTkRJTkcn LAorICBzaG9ydF9kZXNjID0+ICdTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVv dXNseSBkZWZpbmVkIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMuJywKKyAgdmFyaWFibGUgPT4g J21heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzJywKKyAgYm9vdF92YWwgPT4gJy0xJywKKyAg bWluID0+ICctMScsCisgIG1heCA9PiAnTUFYX0JBQ0tFTkRTIC8qIFhYWD8gKi8nLAorfSwKKwog eyBuYW1lID0+ICdtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzJywgdHlwZSA9PiAnaW50 JywgY29udGV4dCA9PiAnUEdDX1BPU1RNQVNURVInLCBncm91cCA9PiAnUkVQTElDQVRJT05fU1VC U0NSSUJFUlMnLAogICBzaG9ydF9kZXNjID0+ICdNYXhpbXVtIG51bWJlciBvZiBsb2dpY2FsIHJl cGxpY2F0aW9uIHdvcmtlciBwcm9jZXNzZXMuJywKICAgdmFyaWFibGUgPT4gJ21heF9sb2dpY2Fs X3JlcGxpY2F0aW9uX3dvcmtlcnMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jl c3FsLmNvbmYuc2FtcGxlCmluZGV4IGM0ZjkyZmNkYWM4Li41NjU0Yjk3YTZmYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtMzQyLDYgKzM0 Miw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKGNoYW5nZSByZXF1aXJl cyByZXN0YXJ0KQogI3dhbF9rZWVwX3NpemUgPSAwICAgICAgICAgICAgICAjIGluIG1lZ2FieXRl czsgMCBkaXNhYmxlcwogI21heF9zbG90X3dhbF9rZWVwX3NpemUgPSAtMSAgICAjIGluIG1lZ2Fi eXRlczsgLTEgZGlzYWJsZXMKKyNtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cyA9IC0xICAg ICAjIG1heCBudW1iZXIgb2YgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIC0xIG1lYW5zIHVzZSBtYXhfcmVwbGljYXRp b25fc2xvdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChjaGFu Z2UgcmVxdWlyZXMgcmVzdGFydCkKICNpZGxlX3JlcGxpY2F0aW9uX3Nsb3RfdGltZW91dCA9IDAg ICAgICAjIGluIHNlY29uZHM7IDAgZGlzYWJsZXMKICN3YWxfc2VuZGVyX3RpbWVvdXQgPSA2MHMg ICAgICAgIyBpbiBtaWxsaXNlY29uZHM7IDAgZGlzYWJsZXMKICN0cmFja19jb21taXRfdGltZXN0 YW1wID0gb2ZmICAgIyBjb2xsZWN0IHRpbWVzdGFtcCBvZiB0cmFuc2FjdGlvbiBjb21taXQKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaAppbmRleCBmNDY1ZTQzMGNjNi4uYWU0YWJhZDQzNzEgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9zbG90LmgKQEAgLTMyMSw2ICszMjEsNyBAQCBleHRlcm4gUEdETExJTVBPUlQgUmVw bGljYXRpb25TbG90ICpNeVJlcGxpY2F0aW9uU2xvdDsKIAogLyogR1VDcyAqLwogZXh0ZXJuIFBH RExMSU1QT1JUIGludCBtYXhfcmVwbGljYXRpb25fc2xvdHM7CitleHRlcm4gUEdETExJTVBPUlQg aW50IG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGNo YXIgKnN5bmNocm9uaXplZF9zdGFuZGJ5X3Nsb3RzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBp ZGxlX3JlcGxpY2F0aW9uX3Nsb3RfdGltZW91dF9zZWNzOwogCi0tIAoyLjUyLjAKCg== --000000000000c7e5d8064970089a--