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 1wgdha-006J2x-0i for pgsql-bugs@arkaria.postgresql.org; Mon, 06 Jul 2026 07:25:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wgdhY-00FvbO-2d for pgsql-bugs@arkaria.postgresql.org; Mon, 06 Jul 2026 07:25:12 +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 1wgdhY-00FvbG-0u for pgsql-bugs@lists.postgresql.org; Mon, 06 Jul 2026 07:25:12 +0000 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wgdhW-00000001m85-0yOZ for pgsql-bugs@lists.postgresql.org; Mon, 06 Jul 2026 07:25:11 +0000 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-493bab44440so13560135e9.0 for ; Mon, 06 Jul 2026 00:25:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783322708; cv=none; d=google.com; s=arc-20260327; b=BRJbv4CQiM7eEvAlxwgNlAGjrLbatNz+jYnXcp8jCiy+8UXsr4uAbnjkPZaPnBek1C PHo/yMdsmAEjLmIQmxPUnydwsazRh3Q03P8j4DzlFc5Y1sXUftKeU2EX9zdbUiae9e5M 2+GvHz+a8IvReL1lmH8gb2kz7Ndqy1VxlZwGyVPe1a4a/NwxrqSWgmGpjGcD7MZxv5Da kzOPsIX3y1g67Jv4A38gLFAC9my/IiHK5ZZGAx1gnL5Vlq5MloAXZM0U+iEJCVPqamAe 9d68Rfu58UK1ywR5xt/rVMH9pNoBl8emf+jptXiLmOi4KVKct3RS1wyyRFL+ZgETIsMv X1zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=rs+QoAHZ1CloZM1zDmP7mcDvznpPfBXSVL5xL4UMMRY=; fh=5EbnDHuEEq2TFMpfIc8W/eo2xE4zMXTrLo3SVr4WJYM=; b=nBCgqfpcAv5oDfAyxADptNZL1DW64MDQzye0HghKg4eifXXkJLYzclRAyQAqVm9oTh EEvmnWdiyGsyB4O8RXw7p4FJVd9s5iWabFpcdZeNAYxU8n/FvuvFHkGY1Mjrd4jvWWn1 ht622qgUlg2C1EXI3K/kmYliv+QFdrlkKISA6VkitPAsNt60P2vrX1vykX2ditYM7FQ6 1pzYsAar8NqaWt9zxZ9/SFjZlcAusrZ6LIn09/4msq9MpK8yeGS10ouUqDguKrElARps wrT/PVLOYiOylSqpsD7J+1QxJSXhfHx8iRTnxwTuHKhexn0eF3jF9t50E19KNz2yn4lM LIDw==; 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=gmail.com; s=20251104; t=1783322708; x=1783927508; darn=lists.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=rs+QoAHZ1CloZM1zDmP7mcDvznpPfBXSVL5xL4UMMRY=; b=NvW41KFeKfwIIEX010WCYcvVGVd2+/B1xRtcoFgxpxWu2j9Ur+x25vNwKpevGpF/PA zu3e0t5pUY0hrAGtVRhTJ6KTg/CiUOD5Otf09aj63C3bUtZ47h4ya32owL/2cv5Td82R cpfUNRiP0vO12MFTk7jJKuGdOiGlUZlg4NIb0BU1XDuA8VmpKo+VqhULNVUeYS7UOdqC Wevc8UJOrv7pnldXPVjaf78Fk4kEOQdbvlLs3aRWpbWO1GkdyZMxmWoNiLi0Yye+ByVZ rxAjB+xc2wmrja5XBs9JW//Fx3GRsQKmA3Zd67Az/PpYPMIOPjKILl+8Wb0O4Oi7kZ8A 7IHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783322708; x=1783927508; 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=rs+QoAHZ1CloZM1zDmP7mcDvznpPfBXSVL5xL4UMMRY=; b=UVQWCPGJi81bGxHlK6eRphI2XY9eJ639dpW4pkVOuC3+yYQ5eQT4Mj60jDfxuI1n9/ hAZ1aZckzwMJqCE7FTkGU2X5BiQVF9SMz3AltwL67yTR7Cr/5eVwd3QBndMbCtL/B2+R +qiZlZhI1HbwSGMKoBEiAk9JWHffv3Vkd3QIm4mqO2kQ0Ni7r6NFqZFTMaHp5B8PnkcM w7Wj0QdPrRFL0G4EURJx8hz8XVaifqmELo6YCsbHgS8ofMFk/ynakaLVsPHQXAMznLPm k6dV7/yIRqgGPpSpDswY24iYgYv/+RYdzdAtk8SOjAbu/CHHKmUxcRbVnsq9poptPAkN SwqA== X-Forwarded-Encrypted: i=1; AHgh+Rryuf22qGNC+zs2WbphknwthflV59BfaSmFulhF/yz03ICteCb8eeK36PkGWieGmaHbD+6sMNqFBz1I@lists.postgresql.org X-Gm-Message-State: AOJu0YxamZeFdVttVYSGWBhjZngD4LO2/gqmyplFIPzzCUGcZm9pRvC+ zf8kw1rl/GF4fqjfHsMpJhsX7pjEeyp3jTPW/xl/mBZC77xtn3kVgLRB3/NBiaYdh6VblaARbLv O2hcbDXMWN3JoCbbHheQd3gdeFtK1/jaSRg== X-Gm-Gg: AfdE7cnk2bSdlPlWj+Zj8mSyDUeYDf5ebdirxw8zLvNxYZ1lWQ5ZNyH9B3lyV94vXS4 TzqpgXjJ1K/eO6t3AQUlSHYcmfQ/wDcfRxO4ZEyaWK0xlXdiLP32+PB7YgRj6mmE3TomKMwJL6B vU3b5bMwtfXlsAA/faG1Oqu0Of5/yny5B2YYjvo6WivRHZTNBiDU0jFElHHs5c9rfY7H4ClvQOU n97qPgDT49XzCl8VKPQWanHi7WySGCYIJsb/WrdGAIxN/vjnI0GZQDVz5vxeXsg40F9rJBletJQ BiFLeKOB8f++SW5JYcLwzs7i4/EAaTfLn0v5bI9GGP22QvRbw2/ok3MfHmZg2gE= X-Received: by 2002:a05:600c:6348:b0:493:a87f:52e5 with SMTP id 5b1f17b1804b1-493c9b6be54mr96948495e9.10.1783322707416; Mon, 06 Jul 2026 00:25:07 -0700 (PDT) MIME-Version: 1.0 References: <19533-413a1014e5d0e766@postgresql.org> In-Reply-To: From: David Rowley Date: Mon, 6 Jul 2026 19:24:54 +1200 X-Gm-Features: AVVi8CcqW66Fc-vlin2CkFpNXRC1PMlJmiZAeAAx9J1wXZ_8sWU4c3rnuKTPK74 Message-ID: Subject: Re: BUG #19533: Wrong results from WindowAgg run-condition pushdown on count() with EXCLUDE CURRENT ROW To: Chengpeng Yan Cc: John Naylor , Richard Guo , "imchifan@163.com" , "pgsql-bugs@lists.postgresql.org" Content-Type: multipart/mixed; boundary="0000000000007f15eb0655ec2c83" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007f15eb0655ec2c83 Content-Type: text/plain; charset="UTF-8" On Mon, 6 Jul 2026 at 00:54, Chengpeng Yan wrote: > count(*) FILTER (WHERE ...) Yeah, looks like we'll need to disable if there's a FILTER clause. > int exclusion = frameOptions & FRAMEOPTION_EXCLUSION; > bool plain_count_star = req->window_func->winfnoid == F_COUNT_ && > req->window_func->aggfilter == NULL; > > if (exclusion && > (exclusion != FRAMEOPTION_EXCLUDE_CURRENT_ROW || !plain_count_star)) > { > req->monotonic = MONOTONICFUNC_NONE; > PG_RETURN_POINTER(req); > } > ``` Given how complex Claude's logic became to get all those cases correct, I now think the above is the best option. I've attached a patch for that. David --0000000000007f15eb0655ec2c83 Content-Type: application/octet-stream; name="v4_fix_count_monotonic_detection.patch" Content-Disposition: attachment; filename="v4_fix_count_monotonic_detection.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr8wa4hb0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvaW50OC5jCmluZGV4IDliNDI5ZGE4NmQ5Li41ZTIyYjBlN2U5YyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvaW50OC5jCkBAIC03OTUsOCArNzk1LDMyIEBAIGludDhpbmNfc3VwcG9ydChQR19GVU5DVElP Tl9BUkdTKQogCQlNb25vdG9uaWNGdW5jdGlvbiBtb25vdG9uaWMgPSBNT05PVE9OSUNGVU5DX05P TkU7CiAJCWludAkJCWZyYW1lT3B0aW9ucyA9IHJlcS0+d2luZG93X2NsYXVzZS0+ZnJhbWVPcHRp b25zOwogCi0JCS8qIE5vIE9SREVSIEJZIGNsYXVzZSB0aGVuIGFsbCByb3dzIGFyZSBwZWVycyAq LwotCQlpZiAocmVxLT53aW5kb3dfY2xhdXNlLT5vcmRlckNsYXVzZSA9PSBOSUwpCisJCS8qCisJ CSAqIEVYQ0xVREUgY2xhdXNlcyBpbiB0aGUgd2luZG93IGNsYXVzZSBvbmx5IHN1cHBvcnQgbW9u b3RvbmljCisJCSAqIHByb3BlcnRpZXMgaW4gYSB2ZXJ5IG5hcnJvdyBzZXQgb2YgY2lyY3Vtc3Rh bmNlcy4KKwkJICovCisJCWlmIChmcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FWENMVVNJT04p CisJCXsKKwkJCVdpbmRvd0Z1bmMgKndmdW5jID0gcmVxLT53aW5kb3dfZnVuYzsKKworCQkJLyoK KwkJCSAqIFRvIGFkZCBoYW5kbGluZyBmb3IgYWxsIHZhbGlkIG1vbm90b25pYyBjYXNlcyB3aXRo IGFuIEVYQ0xVREUKKwkJCSAqIGNsYXVzZSBpcyBjb21wbGV4IGFuZCBsaWtlbHkgbm90IHdvcnRo IHRyb3VibGluZyBvdmVyLiAgRm9yCisJCQkgKiBub3csIGp1c3QgYmFpbCB1bmxlc3Mgd2Ugc2Vl IEVYQ0xVREUgQ1VSUkVOVCBST1cgd2l0aCBDT1VOVCgqKQorCQkJICogYW5kIG5vIEZJTFRFUi4K KwkJCSAqLworCQkJaWYgKChmcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FWENMVURFX0NVUlJF TlRfUk9XKSA9PSAwIHx8CisJCQkJd2Z1bmMtPndpbmZub2lkICE9IEZfQ09VTlRfIHx8CisJCQkJ d2Z1bmMtPmFnZ2ZpbHRlciAhPSBOVUxMKQorCQkJeworCQkJCXJlcS0+bW9ub3RvbmljID0gTU9O T1RPTklDRlVOQ19OT05FOworCQkJCVBHX1JFVFVSTl9QT0lOVEVSKHJlcSk7CisJCQl9CisJCX0K KworCQkvKiBObyBPUkRFUiBCWSBjbGF1c2UgYW5kIFJBTkdFIG1vZGUgbWVhbnMgYWxsIHJvd3Mg YXJlIHBlZXJzLiAqLworCQlpZiAocmVxLT53aW5kb3dfY2xhdXNlLT5vcmRlckNsYXVzZSA9PSBO SUwgJiYKKwkJCShmcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9SQU5HRSkpCiAJCQltb25vdG9u aWMgPSBNT05PVE9OSUNGVU5DX0JPVEg7CiAJCWVsc2UKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC93aW5kb3cub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC93aW5kb3cub3V0CmluZGV4IDkwZDlmOTUzYjgxLi44ODQxMDYzZGUwZSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aW5kb3cub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2luZG93Lm91dApAQCAtNDIzMiwyMyArNDIzMiw2MCBAQCBXSEVSRSBjIDw9 IDM7CiAoOCByb3dzKQogCiAtLSBFbnN1cmUgd2UgZ2V0IHRoZSBjb3JyZWN0IHJ1biBjb25kaXRp b24gd2hlbiB0aGUgd2luZG93IGZ1bmN0aW9uIGlzIGJvdGgKLS0tIG1vbm90b25pY2FsbHkgaW5j cmVhc2luZyBhbmQgZGVjcmVhc2luZy4KKy0tIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBhbmQg ZGVjcmVhc2luZyBpbiBSQU5HRSBtb2RlIHdpdGhvdXQgYW4gT1JERVIgQlkKIEVYUExBSU4gKENP U1RTIE9GRikKIFNFTEVDVCAqIEZST00KICAgKFNFTEVDVCBlbXBubywKICAgICAgICAgICBkZXBu YW1lLAogICAgICAgICAgIHNhbGFyeSwKLSAgICAgICAgICBjb3VudChlbXBubykgT1ZFUiAoKSBj CisgICAgICAgICAgY291bnQoZW1wbm8pIE9WRVIgKFJBTkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIENVUlJFTlQgUk9XKSBjCiAgICBGUk9NIGVtcHNhbGFyeSkgZW1wCiBXSEVSRSBjID0gMTsK LSAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBXaW5kb3dBZ2cKLSAgIFdpbmRvdzogdzEgQVMgKCkKKyAgIFdpbmRvdzog dzEgQVMgKFJBTkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIENVUlJFTlQgUk9XKQogICAgUnVu IENvbmRpdGlvbjogKGNvdW50KGVtcHNhbGFyeS5lbXBubykgT1ZFUiB3MSA9IDEpCiAgICAtPiAg U2VxIFNjYW4gb24gZW1wc2FsYXJ5CiAoNCByb3dzKQogCistLSBFbnN1cmUgdGhhdCBST1dTIG1v ZGUgd2l0aG91dCBhbiBPUkRFUiBCWSBkb2Vzbid0IHRoaW5rIGl0J3MgbW9ub3RvbmljYWxseQor LS0gZGVjcmVhc2luZywgaS5lLiBkb24ndCBwdXNoIGRvd24gdGhlIHJ1biBjb25kaXRpb24uCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NCisgIChTRUxFQ1QgZW1wbm8sCisgICAg ICAgICAgZGVwbmFtZSwKKyAgICAgICAgICBzYWxhcnksCisgICAgICAgICAgY291bnQoZW1wbm8p IE9WRVIgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgQ1VSUkVOVCBST1cpIGMKKyAgIEZS T00gZW1wc2FsYXJ5KSBlbXAKK1dIRVJFIGMgPiAxOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT dWJxdWVyeSBTY2FuIG9uIGVtcAorICAgRmlsdGVyOiAoZW1wLmMgPiAxKQorICAgLT4gIFdpbmRv d0FnZworICAgICAgICAgV2luZG93OiB3MSBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBDVVJSRU5UIFJPVykKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBlbXBzYWxhcnkKKyg1IHJv d3MpCisKKy0tIEFzIGFib3ZlLCBidXQgY2hlY2sgd2UgZGV0ZWN0IGl0J3MgbW9ub3RvbmljYWxs eSBpbmNyZWFzaW5nCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NCisgIChTRUxF Q1QgZW1wbm8sCisgICAgICAgICAgZGVwbmFtZSwKKyAgICAgICAgICBzYWxhcnksCisgICAgICAg ICAgY291bnQoZW1wbm8pIE9WRVIgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgQ1VSUkVO VCBST1cpIGMKKyAgIEZST00gZW1wc2FsYXJ5KSBlbXAKK1dIRVJFIGMgPD0gMzsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiBlbXAKKyAgIEZpbHRlcjogKGVtcC5jIDw9 IDMpCisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcxIEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIENVUlJFTlQgUk9XKQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IGVtcHNhbGFyeQorKDUgcm93cykKKwogLS0gVHJ5IGFub3RoZXIgY2FzZSB3aXRoIGEgV2luZG93 RnVuYyB3aXRoIGEgYnlyZWYgcmV0dXJuIHR5cGUKIFNFTEVDVCAqIEZST00KICAgKFNFTEVDVCBy b3dfbnVtYmVyKCkgT1ZFUiAoUEFSVElUSU9OIEJZIHNhbGFyeSkgQVMgcm4sCkBAIC00NDM2LDYg KzQ0NzMsMTgxIEBAIFdIRVJFIGMgPSAxOwogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IGVtcHNhbGFyeQogKDkgcm93cykKIAorLS0KKy0tIEVuc3VyZSB3ZSBnZXQgdGhlIGNvcnJlY3Qg YmVoYXZpb3IgZm9yIHJ1biBjb25kaXRpb24gcHVzaGRvd24gd2hlbiB0aGUKKy0tIGZyYW1lIG9w dGlvbiBoYXMgYW4gRVhDTFVERSBjbGF1c2UKKy0tCistLSBFbnN1cmUgcHVzaGRvd24gb2NjdXJz IGZvciBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyB3aXRoIEVYQ0xVREUKKy0tIENV UlJFTlQgUk9XIHdpdGggQ09VTlQoKikKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZS T00KKyAgKFNFTEVDVCBlbXBubywKKyAgICAgICAgICBzYWxhcnksCisgICAgICAgICAgY291bnQo KikgT1ZFUiAoT1JERVIgQlkgc2FsYXJ5IFJPV1MgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5H IEFORCAwIFBSRUNFRElORyBFWENMVURFIENVUlJFTlQgUk9XKSBjCisgICBGUk9NIGVtcHNhbGFy eSkgZW1wCitXSEVSRSBjIDw9IDM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdn CisgICBXaW5kb3c6IHcxIEFTIChPUkRFUiBCWSBlbXBzYWxhcnkuc2FsYXJ5IFJPV1MgQkVUV0VF TiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCAnMCc6OmJpZ2ludCBQUkVDRURJTkcgRVhDTFVERSBD VVJSRU5UIFJPVykKKyAgIFJ1biBDb25kaXRpb246IChjb3VudCgqKSBPVkVSIHcxIDw9IDMpCisg ICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGVtcHNhbGFyeS5zYWxhcnkKKyAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBlbXBzYWxhcnkKKyg2IHJvd3MpCisKKy0tIEVuc3VyZSBwdXNoZG93 biBvY2N1cnMgZm9yIEdST1VQUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgd2l0aCBFWENM VURFCistLSBDVVJSRU5UIFJPVyB3aXRoIENPVU5UKCopCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgKiBGUk9NCisgIChTRUxFQ1QgZW1wbm8sCisgICAgICAgICAgc2FsYXJ5LAorICAgICAg ICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIHNhbGFyeSBHUk9VUFMgQkVUV0VFTiBVTkJPVU5E RUQgUFJFQ0VESU5HIEFORCBDVVJSRU5UIFJPVyBFWENMVURFIENVUlJFTlQgUk9XKSBjCisgICBG Uk9NIGVtcHNhbGFyeSkgZW1wCitXSEVSRSBjIDw9IDM7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAg IFdpbmRvdzogdzEgQVMgKE9SREVSIEJZIGVtcHNhbGFyeS5zYWxhcnkgR1JPVVBTIEJFVFdFRU4g VU5CT1VOREVEIFBSRUNFRElORyBBTkQgQ1VSUkVOVCBST1cgRVhDTFVERSBDVVJSRU5UIFJPVykK KyAgIFJ1biBDb25kaXRpb246IChjb3VudCgqKSBPVkVSIHcxIDw9IDMpCisgICAtPiAgU29ydAor ICAgICAgICAgU29ydCBLZXk6IGVtcHNhbGFyeS5zYWxhcnkKKyAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBlbXBzYWxhcnkKKyg2IHJvd3MpCisKKy0tIEVuc3VyZSBwdXNoZG93biBvY2N1cnMgZm9y IFJBTkdFIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyB3aXRoIEVYQ0xVREUKKy0tIENVUlJF TlQgUk9XIHdpdGggQ09VTlQoKikKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00K KyAgKFNFTEVDVCBlbXBubywKKyAgICAgICAgICBzYWxhcnksCisgICAgICAgICAgY291bnQoKikg T1ZFUiAoT1JERVIgQlkgc2FsYXJ5IFJBTkdFIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBB TkQgQ1VSUkVOVCBST1cgRVhDTFVERSBDVVJSRU5UIFJPVykgYworICAgRlJPTSBlbXBzYWxhcnkp IGVtcAorV0hFUkUgYyA8PSAzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3MSBBUyAo T1JERVIgQlkgZW1wc2FsYXJ5LnNhbGFyeSBSQU5HRSBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJ TkcgQU5EIENVUlJFTlQgUk9XIEVYQ0xVREUgQ1VSUkVOVCBST1cpCisgICBSdW4gQ29uZGl0aW9u OiAoY291bnQoKikgT1ZFUiB3MSA8PSAzKQorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5 OiBlbXBzYWxhcnkuc2FsYXJ5CisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZW1wc2FsYXJ5Ciso NiByb3dzKQorCistLSBFbnN1cmUgd2UgZG9uJ3QgZ2V0IHB1c2hkb3duIHdoZW4gYSBGSUxURVIg Y2xhdXNlIGlzIHByZXNlbnQKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00KKyAg KFNFTEVDVCBlbXBubywKKyAgICAgICAgICBzYWxhcnksCisgICAgICAgICAgY291bnQoKikgRklM VEVSIChXSEVSRSBzYWxhcnkgPiA0MDAwKSBPVkVSIChPUkRFUiBCWSBzYWxhcnkgUk9XUyBCRVRX RUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIDAgUFJFQ0VESU5HIEVYQ0xVREUgQ1VSUkVOVCBS T1cpIGMKKyAgIEZST00gZW1wc2FsYXJ5KSBlbXAKK1dIRVJFIGMgPD0gMzsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIGVtcAorICAgRmlsdGVy OiAoZW1wLmMgPD0gMykKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdzEgQVMg KE9SREVSIEJZIGVtcHNhbGFyeS5zYWxhcnkgUk9XUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJ TkcgQU5EICcwJzo6YmlnaW50IFBSRUNFRElORyBFWENMVURFIENVUlJFTlQgUk9XKQorICAgICAg ICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBlbXBzYWxhcnkuc2FsYXJ5Cisg ICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZW1wc2FsYXJ5CisoNyByb3dzKQorCistLSBF bnN1cmUgd2UgZG9uJ3QgZ2V0IHB1c2hkb3duIHdpdGggQ09VTlQoQU5ZKQorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUICogRlJPTQorICAoU0VMRUNUIGVtcG5vLAorICAgICAgICAgIHNhbGFy eSwKKyAgICAgICAgICBjb3VudChzYWxhcnkpIE9WRVIgKE9SREVSIEJZIHNhbGFyeSBST1dTIEJF VFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgMCBQUkVDRURJTkcgRVhDTFVERSBDVVJSRU5U IFJPVykgYworICAgRlJPTSBlbXBzYWxhcnkpIGVtcAorV0hFUkUgYyA8PSAzOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24gZW1wCisgICBGaWx0 ZXI6IChlbXAuYyA8PSAzKQorICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgV2luZG93OiB3MSBB UyAoT1JERVIgQlkgZW1wc2FsYXJ5LnNhbGFyeSBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNF RElORyBBTkQgJzAnOjpiaWdpbnQgUFJFQ0VESU5HIEVYQ0xVREUgQ1VSUkVOVCBST1cpCisgICAg ICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29ydCBLZXk6IGVtcHNhbGFyeS5zYWxhcnkK KyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBlbXBzYWxhcnkKKyg3IHJvd3MpCisKKy0t IEVuc3VyZSB3ZSBkb24ndCBnZXQgcHVzaGRvd24gd2l0aCBFWENMVURFIEdST1VQCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NCisgIChTRUxFQ1QgZW1wbm8sCisgICAgICAgICAg c2FsYXJ5LAorICAgICAgICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIHNhbGFyeSBST1dTIEJF VFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgMCBQUkVDRURJTkcgRVhDTFVERSBHUk9VUCkg YworICAgRlJPTSBlbXBzYWxhcnkpIGVtcAorV0hFUkUgYyA8PSAzOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24gZW1wCisgICBGaWx0ZXI6IChlbXAuYyA8PSAzKQor ICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgV2luZG93OiB3MSBBUyAoT1JERVIgQlkgZW1wc2Fs YXJ5LnNhbGFyeSBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgJzAnOjpiaWdp bnQgUFJFQ0VESU5HIEVYQ0xVREUgR1JPVVApCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAg ICAgICAgU29ydCBLZXk6IGVtcHNhbGFyeS5zYWxhcnkKKyAgICAgICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBlbXBzYWxhcnkKKyg3IHJvd3MpCisKKy0tIEVuc3VyZSB3ZSBkb24ndCBnZXQgcHVz aGRvd24gd2l0aCBFWENMVURFIFRJRVMKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZS T00KKyAgKFNFTEVDVCBlbXBubywKKyAgICAgICAgICBzYWxhcnksCisgICAgICAgICAgY291bnQo KikgT1ZFUiAoT1JERVIgQlkgc2FsYXJ5IFJPV1MgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5H IEFORCAwIFBSRUNFRElORyBFWENMVURFIFRJRVMpIGMKKyAgIEZST00gZW1wc2FsYXJ5KSBlbXAK K1dIRVJFIGMgPD0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiBl bXAKKyAgIEZpbHRlcjogKGVtcC5jIDw9IDMpCisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBX aW5kb3c6IHcxIEFTIChPUkRFUiBCWSBlbXBzYWxhcnkuc2FsYXJ5IFJPV1MgQkVUV0VFTiBVTkJP VU5ERUQgUFJFQ0VESU5HIEFORCAnMCc6OmJpZ2ludCBQUkVDRURJTkcgRVhDTFVERSBUSUVTKQor ICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBlbXBzYWxhcnkuc2Fs YXJ5CisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZW1wc2FsYXJ5CisoNyByb3dzKQor CistLSBFbnN1cmUgd2UgZG9uJ3QgZ2V0IHB1c2hkb3duIHdpdGggR1JPVVBTIG1vZGUgYW5kIEVY Q0xVREUgR1JPVVAKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00KKyAgKFNFTEVD VCBlbXBubywKKyAgICAgICAgICBzYWxhcnksCisgICAgICAgICAgY291bnQoKikgT1ZFUiAoT1JE RVIgQlkgc2FsYXJ5IEdST1VQUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIDAgUFJF Q0VESU5HIEVYQ0xVREUgR1JPVVApIGMKKyAgIEZST00gZW1wc2FsYXJ5KSBlbXAKK1dIRVJFIGMg PD0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiBlbXAK KyAgIEZpbHRlcjogKGVtcC5jIDw9IDMpCisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5k b3c6IHcxIEFTIChPUkRFUiBCWSBlbXBzYWxhcnkuc2FsYXJ5IEdST1VQUyBCRVRXRUVOIFVOQk9V TkRFRCBQUkVDRURJTkcgQU5EICcwJzo6YmlnaW50IFBSRUNFRElORyBFWENMVURFIEdST1VQKQor ICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBlbXBzYWxhcnkuc2Fs YXJ5CisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZW1wc2FsYXJ5CisoNyByb3dzKQor CistLSBFbnN1cmUgd2UgZG9uJ3QgZ2V0IHB1c2hkb3duIHdpdGggR1JPVVBTIG1vZGUgYW5kIEVY Q0xVREUgVElFUworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTQorICAoU0VMRUNU IGVtcG5vLAorICAgICAgICAgIHNhbGFyeSwKKyAgICAgICAgICBjb3VudCgqKSBPVkVSIChPUkRF UiBCWSBzYWxhcnkgR1JPVVBTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgMCBQUkVD RURJTkcgRVhDTFVERSBUSUVTKSBjCisgICBGUk9NIGVtcHNhbGFyeSkgZW1wCitXSEVSRSBjIDw9 IDM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIGVtcAorICAg RmlsdGVyOiAoZW1wLmMgPD0gMykKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzog dzEgQVMgKE9SREVSIEJZIGVtcHNhbGFyeS5zYWxhcnkgR1JPVVBTIEJFVFdFRU4gVU5CT1VOREVE IFBSRUNFRElORyBBTkQgJzAnOjpiaWdpbnQgUFJFQ0VESU5HIEVYQ0xVREUgVElFUykKKyAgICAg ICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtleTogZW1wc2FsYXJ5LnNhbGFyeQor ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGVtcHNhbGFyeQorKDcgcm93cykKKwogLS0g VGVzdCBTb3J0IG5vZGUgY29sbGFwc2luZwogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUICog RlJPTQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2luZG93LnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3dpbmRvdy5zcWwKaW5kZXggNWFjM2E0ODZlMTYuLjFmOGU4Yzg3ZTcx IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aW5kb3cuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3dpbmRvdy5zcWwKQEAgLTEzNjEsMTYgKzEzNjEsMzcgQEAgU0VMRUNU ICogRlJPTQogV0hFUkUgYyA8PSAzOwogCiAtLSBFbnN1cmUgd2UgZ2V0IHRoZSBjb3JyZWN0IHJ1 biBjb25kaXRpb24gd2hlbiB0aGUgd2luZG93IGZ1bmN0aW9uIGlzIGJvdGgKLS0tIG1vbm90b25p Y2FsbHkgaW5jcmVhc2luZyBhbmQgZGVjcmVhc2luZy4KKy0tIG1vbm90b25pY2FsbHkgaW5jcmVh c2luZyBhbmQgZGVjcmVhc2luZyBpbiBSQU5HRSBtb2RlIHdpdGhvdXQgYW4gT1JERVIgQlkKIEVY UExBSU4gKENPU1RTIE9GRikKIFNFTEVDVCAqIEZST00KICAgKFNFTEVDVCBlbXBubywKICAgICAg ICAgICBkZXBuYW1lLAogICAgICAgICAgIHNhbGFyeSwKLSAgICAgICAgICBjb3VudChlbXBubykg T1ZFUiAoKSBjCisgICAgICAgICAgY291bnQoZW1wbm8pIE9WRVIgKFJBTkdFIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIENVUlJFTlQgUk9XKSBjCiAgICBGUk9NIGVtcHNhbGFyeSkgZW1wCiBXSEVS RSBjID0gMTsKIAorLS0gRW5zdXJlIHRoYXQgUk9XUyBtb2RlIHdpdGhvdXQgYW4gT1JERVIgQlkg ZG9lc24ndCB0aGluayBpdCdzIG1vbm90b25pY2FsbHkKKy0tIGRlY3JlYXNpbmcsIGkuZS4gZG9u J3QgcHVzaCBkb3duIHRoZSBydW4gY29uZGl0aW9uLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUICogRlJPTQorICAoU0VMRUNUIGVtcG5vLAorICAgICAgICAgIGRlcG5hbWUsCisgICAgICAg ICAgc2FsYXJ5LAorICAgICAgICAgIGNvdW50KGVtcG5vKSBPVkVSIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIENVUlJFTlQgUk9XKSBjCisgICBGUk9NIGVtcHNhbGFyeSkgZW1wCitXSEVS RSBjID4gMTsKKworLS0gQXMgYWJvdmUsIGJ1dCBjaGVjayB3ZSBkZXRlY3QgaXQncyBtb25vdG9u aWNhbGx5IGluY3JlYXNpbmcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00KKyAg KFNFTEVDVCBlbXBubywKKyAgICAgICAgICBkZXBuYW1lLAorICAgICAgICAgIHNhbGFyeSwKKyAg ICAgICAgICBjb3VudChlbXBubykgT1ZFUiAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBD VVJSRU5UIFJPVykgYworICAgRlJPTSBlbXBzYWxhcnkpIGVtcAorV0hFUkUgYyA8PSAzOworCiAt LSBUcnkgYW5vdGhlciBjYXNlIHdpdGggYSBXaW5kb3dGdW5jIHdpdGggYSBieXJlZiByZXR1cm4g dHlwZQogU0VMRUNUICogRlJPTQogICAoU0VMRUNUIHJvd19udW1iZXIoKSBPVkVSIChQQVJUSVRJ T04gQlkgc2FsYXJ5KSBBUyBybiwKQEAgLTE0NjAsNiArMTQ4MSw5NiBAQCBTRUxFQ1QgKiBGUk9N CiAgICBGUk9NIGVtcHNhbGFyeSkgZW1wCiBXSEVSRSBjID0gMTsKIAorLS0KKy0tIEVuc3VyZSB3 ZSBnZXQgdGhlIGNvcnJlY3QgYmVoYXZpb3IgZm9yIHJ1biBjb25kaXRpb24gcHVzaGRvd24gd2hl biB0aGUKKy0tIGZyYW1lIG9wdGlvbiBoYXMgYW4gRVhDTFVERSBjbGF1c2UKKy0tCisKKy0tIEVu c3VyZSBwdXNoZG93biBvY2N1cnMgZm9yIFJPV1MgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5H IHdpdGggRVhDTFVERQorLS0gQ1VSUkVOVCBST1cgd2l0aCBDT1VOVCgqKQorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUICogRlJPTQorICAoU0VMRUNUIGVtcG5vLAorICAgICAgICAgIHNhbGFy eSwKKyAgICAgICAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBzYWxhcnkgUk9XUyBCRVRXRUVO IFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIDAgUFJFQ0VESU5HIEVYQ0xVREUgQ1VSUkVOVCBST1cp IGMKKyAgIEZST00gZW1wc2FsYXJ5KSBlbXAKK1dIRVJFIGMgPD0gMzsKKworLS0gRW5zdXJlIHB1 c2hkb3duIG9jY3VycyBmb3IgR1JPVVBTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyB3aXRo IEVYQ0xVREUKKy0tIENVUlJFTlQgUk9XIHdpdGggQ09VTlQoKikKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCAqIEZST00KKyAgKFNFTEVDVCBlbXBubywKKyAgICAgICAgICBzYWxhcnksCisg ICAgICAgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgc2FsYXJ5IEdST1VQUyBCRVRXRUVOIFVO Qk9VTkRFRCBQUkVDRURJTkcgQU5EIENVUlJFTlQgUk9XIEVYQ0xVREUgQ1VSUkVOVCBST1cpIGMK KyAgIEZST00gZW1wc2FsYXJ5KSBlbXAKK1dIRVJFIGMgPD0gMzsKKworLS0gRW5zdXJlIHB1c2hk b3duIG9jY3VycyBmb3IgUkFOR0UgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIHdpdGggRVhD TFVERQorLS0gQ1VSUkVOVCBST1cgd2l0aCBDT1VOVCgqKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUICogRlJPTQorICAoU0VMRUNUIGVtcG5vLAorICAgICAgICAgIHNhbGFyeSwKKyAgICAg ICAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBzYWxhcnkgUkFOR0UgQkVUV0VFTiBVTkJPVU5E RUQgUFJFQ0VESU5HIEFORCBDVVJSRU5UIFJPVyBFWENMVURFIENVUlJFTlQgUk9XKSBjCisgICBG Uk9NIGVtcHNhbGFyeSkgZW1wCitXSEVSRSBjIDw9IDM7CisKKy0tIEVuc3VyZSB3ZSBkb24ndCBn ZXQgcHVzaGRvd24gd2hlbiBhIEZJTFRFUiBjbGF1c2UgaXMgcHJlc2VudAorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUICogRlJPTQorICAoU0VMRUNUIGVtcG5vLAorICAgICAgICAgIHNhbGFy eSwKKyAgICAgICAgICBjb3VudCgqKSBGSUxURVIgKFdIRVJFIHNhbGFyeSA+IDQwMDApIE9WRVIg KE9SREVSIEJZIHNhbGFyeSBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgMCBQ UkVDRURJTkcgRVhDTFVERSBDVVJSRU5UIFJPVykgYworICAgRlJPTSBlbXBzYWxhcnkpIGVtcAor V0hFUkUgYyA8PSAzOworCistLSBFbnN1cmUgd2UgZG9uJ3QgZ2V0IHB1c2hkb3duIHdpdGggQ09V TlQoQU5ZKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTQorICAoU0VMRUNUIGVt cG5vLAorICAgICAgICAgIHNhbGFyeSwKKyAgICAgICAgICBjb3VudChzYWxhcnkpIE9WRVIgKE9S REVSIEJZIHNhbGFyeSBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgMCBQUkVD RURJTkcgRVhDTFVERSBDVVJSRU5UIFJPVykgYworICAgRlJPTSBlbXBzYWxhcnkpIGVtcAorV0hF UkUgYyA8PSAzOworCistLSBFbnN1cmUgd2UgZG9uJ3QgZ2V0IHB1c2hkb3duIHdpdGggRVhDTFVE RSBHUk9VUAorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTQorICAoU0VMRUNUIGVt cG5vLAorICAgICAgICAgIHNhbGFyeSwKKyAgICAgICAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBC WSBzYWxhcnkgUk9XUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIDAgUFJFQ0VESU5H IEVYQ0xVREUgR1JPVVApIGMKKyAgIEZST00gZW1wc2FsYXJ5KSBlbXAKK1dIRVJFIGMgPD0gMzsK KworLS0gRW5zdXJlIHdlIGRvbid0IGdldCBwdXNoZG93biB3aXRoIEVYQ0xVREUgVElFUworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTQorICAoU0VMRUNUIGVtcG5vLAorICAgICAg ICAgIHNhbGFyeSwKKyAgICAgICAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBzYWxhcnkgUk9X UyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIDAgUFJFQ0VESU5HIEVYQ0xVREUgVElF UykgYworICAgRlJPTSBlbXBzYWxhcnkpIGVtcAorV0hFUkUgYyA8PSAzOworCistLSBFbnN1cmUg d2UgZG9uJ3QgZ2V0IHB1c2hkb3duIHdpdGggR1JPVVBTIG1vZGUgYW5kIEVYQ0xVREUgR1JPVVAK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00KKyAgKFNFTEVDVCBlbXBubywKKyAg ICAgICAgICBzYWxhcnksCisgICAgICAgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgc2FsYXJ5 IEdST1VQUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIDAgUFJFQ0VESU5HIEVYQ0xV REUgR1JPVVApIGMKKyAgIEZST00gZW1wc2FsYXJ5KSBlbXAKK1dIRVJFIGMgPD0gMzsKKworLS0g RW5zdXJlIHdlIGRvbid0IGdldCBwdXNoZG93biB3aXRoIEdST1VQUyBtb2RlIGFuZCBFWENMVURF IFRJRVMKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00KKyAgKFNFTEVDVCBlbXBu bywKKyAgICAgICAgICBzYWxhcnksCisgICAgICAgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkg c2FsYXJ5IEdST1VQUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIDAgUFJFQ0VESU5H IEVYQ0xVREUgVElFUykgYworICAgRlJPTSBlbXBzYWxhcnkpIGVtcAorV0hFUkUgYyA8PSAzOwor CisKIC0tIFRlc3QgU29ydCBub2RlIGNvbGxhcHNpbmcKIEVYUExBSU4gKENPU1RTIE9GRikKIFNF TEVDVCAqIEZST00K --0000000000007f15eb0655ec2c83--