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.94.2) (envelope-from ) id 1umA4X-00Aruk-Sw for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Aug 2025 11:55:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1umA4U-00EsIX-UR for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Aug 2025 11:55:11 +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.94.2) (envelope-from ) id 1umA4U-00EsIP-BY for pgsql-hackers@lists.postgresql.org; Wed, 13 Aug 2025 11:55:10 +0000 Received: from mail-oo1-xc2a.google.com ([2607:f8b0:4864:20::c2a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1umA4R-000MEw-0j for pgsql-hackers@lists.postgresql.org; Wed, 13 Aug 2025 11:55:09 +0000 Received: by mail-oo1-xc2a.google.com with SMTP id 006d021491bc7-61bc52fd7a4so449969eaf.0 for ; Wed, 13 Aug 2025 04:55:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tigerdata.com; s=google; t=1755086106; x=1755690906; 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=bgn1tAEkyWi8CuTRJngJSroY3ePKWNNBrS/HTykLOPQ=; b=gqralKC9/Mf+7adhKZpvpRzDSGnTtMkp9uxdSS3H2kSPK5IrYe5jbk6VRCKYBi2pDn TUevJ+vXZsVcxmuOlQyi4b/AMCYQizQ2L37cVQhb9FodjYWbnCt2f0XMqUpw4le8f3KH en+0SrrhYH6BjjncbQ0Cm0fR8TtHncg/RkuyOCj4kFzHn7RS4UnyMaFuzcQ6PlgldB0l p3k+Rnzq4UdTegA9GPmpSnM8BiyHFkq99aXALNrrr0RhDIvo/PNZX7NCSM9LOfypUkri FKzzacx0VQxjLFRoIejpJKhachF5Rq0A0RSzgijf1rLnlATLLCOl+dRwNVcMMDfBN152 1rmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755086106; x=1755690906; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bgn1tAEkyWi8CuTRJngJSroY3ePKWNNBrS/HTykLOPQ=; b=JMouxzeKZPREFvcXC65TYoWWRuSaPYjiHH+K6UwtRppg33hGz4KaKFK0s9/sGU2q3f PsWRm53xP+Bpx1MR7gFOnCnVvZSyrFsS83HpVOA+5X5mIC6lnpNeVA1WT8II7M/ECyFf UqGE9RGEIA4k94wAD2Gkh0YaNaQfuiOtKTQD8W8+lUDCcXKYT8+srB24yblvJDHTKfK/ BCz06R4gN8GJxqGayQb5lk4R5TkYODZYfPt2UTMqNDrXbNMfZPgMflX+etjHhSa2Go2k ZySnL1c96X4bLxgxS2XYOxTGh8uyKJGBi5viR0zKvtnCwFffD6/Y7Ap2FkC+XSPsfNT6 nz1w== X-Gm-Message-State: AOJu0Yw8J3J6spuQHSms8YHqnbAxldPvs8J5IE6A73QqCB2Qgt9TVwiR ChokKgiOLCjgZceMklflBgk1JoUkBhzxjgUM+prWx3cqyyiWmcz4sqGHDz21t24RM4FMk48tM3v 0Q1BM0DhP9hu/BQ5Pmif/CXYVmnYjrgZODKxkifh1UG67cAf4W9/EYEQ= X-Gm-Gg: ASbGncshiMk2qCtJ/ZzVVD8AEaWoH+1v5qTXj1sQQvccglK+5hsZas6Z5j/XApvUNnF Vqgy1YG+y1whYt670evRYvNYucTsQFxZ4PuPD+K+WWG7ZlrKjBHmLgVdJgIbv6hZb6PoR8f3QX3 YRjLu5AmUCbh3jOuXJO0kWhAmMkza6VuviLF1QMhbYLMsYcOR07V8NIBnT7DGOjk7qOrVxJUjQA ZXsiSBF X-Google-Smtp-Source: AGHT+IF8BNZi1mxJ8Xpo72koJknEAxdfm/6gnpFVUIHxcSXqqrOlJDFA+iyvenSMFvWmftdzPnsARDNNmMVC0SHzGIM= X-Received: by 2002:a05:6871:9c1a:b0:2ef:1c81:f2fd with SMTP id 586e51a60fabf-30cb9a43988mr1128146fac.16.1755086105804; Wed, 13 Aug 2025 04:55:05 -0700 (PDT) MIME-Version: 1.0 References: <174319365391.60294.17413945943923890743.pgcf@coridan.postgresql.org> In-Reply-To: From: Aleksander Alekseev Date: Wed, 13 Aug 2025 14:54:54 +0300 X-Gm-Features: Ac12FXzc111vhwmCkViCMZMXhKEy4H4Ssj361Dv7ETc6DA5-S6lwyz9y57en__E Message-ID: Subject: Re: [PATCH] Refactor SLRU to always use long file names To: pgsql-hackers@lists.postgresql.org Cc: Rustam ALLAKOV , Michael Paquier Content-Type: multipart/mixed; boundary="000000000000e33125063c3dd36c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e33125063c3dd36c Content-Type: text/plain; charset="UTF-8" Hi, > > The new status of this patch is: Ready for Committer > > Thanks for testing! > > Here is the rebased patch. Rebased. --000000000000e33125063c3dd36c Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0001-Always-use-long-SLRU-segment-file-names.patch" Content-Disposition: attachment; filename="v6-0001-Always-use-long-SLRU-segment-file-names.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me9wxrwx0 RnJvbSA0ZDgzYWNkNjFlZWUzNjc4NDg0MGUyZDEyMjhkMGM4NTQ4MDdiYWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxhbGVrc2FuZGVyQHRpbWVz Y2FsZS5jb20+CkRhdGU6IFdlZCwgMTEgU2VwIDIwMjQgMTM6MTc6MzMgKzAzMDAKU3ViamVjdDog W1BBVENIIHY2XSBBbHdheXMgdXNlIGxvbmcgU0xSVSBzZWdtZW50IGZpbGUgbmFtZXMKClBHMTcg aW50cm9kdWNlZCBsb25nIFNMUlUgc2VnbWVudCBmaWxlIG5hbWVzIChjb21taXQgNGVkOGYwOTEz YmZkKS4gV2UgdXNlZApzaG9ydCBvciBsb25nIGZpbGUgbmFtZXMgZGVwZW5kaW5nIG9uIFNscnVD dGwtPmxvbmdfc2VnbWVudF9uYW1lcy4gVGhpcyBjb21taXQKcmVmYWN0b3JzIFNMUlUgdG8gYWx3 YXlzIHVzZSBsb25nIGZpbGUgbmFtZXMgaW4gb3JkZXIgdG8gc2ltcGxpZnkgdGhlIGNvZGUuCgpB bGVrc2FuZGVyIEFsZWtzZWV2LCByZXZpZXdlZCBieSBNaWNoYWVsIFBhcXVpZXIsIFJ1c3RhbSBB bGxha292CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FKN2M2VE95N2ZVVzlNdU5l T1dvcjNjU0ZuUWc5dGd6PW1qWEhEYjk0R09SdE1fRXlnQG1haWwuZ21haWwuY29tCgooISEhKSBi dW1wIGNhdHZlcnNpb24gYW5kIGNoYW5nZSB0aGUgY29ycmVzcG9uZGluZyBUT0RPIEZJWE1FIGxp bmUgaW4gcGdfdXBncmFkZS5oCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5j ICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMu YyAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jICAg ICAgfCAgNiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jICAgICAgICAgICB8 IDcxICsrKystLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0 cmFucy5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMgICAgICAg ICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jICAg ICAgICB8ICAyICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jICAgICAgICAgICAg IHwgNzQgKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFk ZS5oICAgICAgICAgICAgIHwgIDYgKysKIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDAzX2Nv cnJ1cHRpb24ucGwgfCAgMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaCAgICAgICAgICAg ICAgICAgICB8IDEwICstLQogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMg ICAgICB8ICA4ICstLQogMTIgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDg1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYwppbmRleCBlODBmYmUxMDljZi4u YjY2MDNjYWNmODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMKQEAgLTgwOCw3ICs4MDgs NyBAQCBDTE9HU2htZW1Jbml0KHZvaWQpCiAJWGFjdEN0bC0+UGFnZVByZWNlZGVzID0gQ0xPR1Bh Z2VQcmVjZWRlczsKIAlTaW1wbGVMcnVJbml0KFhhY3RDdGwsICJ0cmFuc2FjdGlvbiIsIENMT0dT aG1lbUJ1ZmZlcnMoKSwgQ0xPR19MU05TX1BFUl9QQUdFLAogCQkJCSAgInBnX3hhY3QiLCBMV1RS QU5DSEVfWEFDVF9CVUZGRVIsCi0JCQkJICBMV1RSQU5DSEVfWEFDVF9TTFJVLCBTWU5DX0hBTkRM RVJfQ0xPRywgZmFsc2UpOworCQkJCSAgTFdUUkFOQ0hFX1hBQ1RfU0xSVSwgU1lOQ19IQU5ETEVS X0NMT0cpOwogCVNscnVQYWdlUHJlY2VkZXNVbml0VGVzdHMoWGFjdEN0bCwgQ0xPR19YQUNUU19Q RVJfUEFHRSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nv bW1pdF90cy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMKaW5kZXgg MzcwYjM4ZTA0OGIuLjc3OThmMjE3ZTc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS9jb21taXRfdHMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21t aXRfdHMuYwpAQCAtNTU0LDggKzU1NCw3IEBAIENvbW1pdFRzU2htZW1Jbml0KHZvaWQpCiAJU2lt cGxlTHJ1SW5pdChDb21taXRUc0N0bCwgImNvbW1pdF90aW1lc3RhbXAiLCBDb21taXRUc1NobWVt QnVmZmVycygpLCAwLAogCQkJCSAgInBnX2NvbW1pdF90cyIsIExXVFJBTkNIRV9DT01NSVRUU19C VUZGRVIsCiAJCQkJICBMV1RSQU5DSEVfQ09NTUlUVFNfU0xSVSwKLQkJCQkgIFNZTkNfSEFORExF Ul9DT01NSVRfVFMsCi0JCQkJICBmYWxzZSk7CisJCQkJICBTWU5DX0hBTkRMRVJfQ09NTUlUX1RT KTsKIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3RzKENvbW1pdFRzQ3RsLCBDT01NSVRfVFNfWEFD VFNfUEVSX1BBR0UpOwogCiAJY29tbWl0VHNTaGFyZWQgPSBTaG1lbUluaXRTdHJ1Y3QoIkNvbW1p dFRzIHNoYXJlZCIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0 aXhhY3QuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCmluZGV4IDNj YjA5YzNkNTk4Li5kMWMwNDk0ODI5MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vbXVsdGl4YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4 YWN0LmMKQEAgLTE5NzEsMTUgKzE5NzEsMTMgQEAgTXVsdGlYYWN0U2htZW1Jbml0KHZvaWQpCiAJ CQkJICAibXVsdGl4YWN0X29mZnNldCIsIG11bHRpeGFjdF9vZmZzZXRfYnVmZmVycywgMCwKIAkJ CQkgICJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsIExXVFJBTkNIRV9NVUxUSVhBQ1RPRkZTRVRfQlVG RkVSLAogCQkJCSAgTFdUUkFOQ0hFX01VTFRJWEFDVE9GRlNFVF9TTFJVLAotCQkJCSAgU1lOQ19I QU5ETEVSX01VTFRJWEFDVF9PRkZTRVQsCi0JCQkJICBmYWxzZSk7CisJCQkJICBTWU5DX0hBTkRM RVJfTVVMVElYQUNUX09GRlNFVCk7CiAJU2xydVBhZ2VQcmVjZWRlc1VuaXRUZXN0cyhNdWx0aVhh Y3RPZmZzZXRDdGwsIE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFKTsKIAlTaW1wbGVMcnVJbml0 KE11bHRpWGFjdE1lbWJlckN0bCwKIAkJCQkgICJtdWx0aXhhY3RfbWVtYmVyIiwgbXVsdGl4YWN0 X21lbWJlcl9idWZmZXJzLCAwLAogCQkJCSAgInBnX211bHRpeGFjdC9tZW1iZXJzIiwgTFdUUkFO Q0hFX01VTFRJWEFDVE1FTUJFUl9CVUZGRVIsCiAJCQkJICBMV1RSQU5DSEVfTVVMVElYQUNUTUVN QkVSX1NMUlUsCi0JCQkJICBTWU5DX0hBTkRMRVJfTVVMVElYQUNUX01FTUJFUiwKLQkJCQkgIGZh bHNlKTsKKwkJCQkgIFNZTkNfSEFORExFUl9NVUxUSVhBQ1RfTUVNQkVSKTsKIAkvKiBkb2Vzbid0 IGNhbGwgU2ltcGxlTHJ1VHJ1bmNhdGUoKSBvciBtZWV0IGNyaXRlcmlhIGZvciB1bml0IHRlc3Rz ICovCiAKIAkvKiBJbml0aWFsaXplIG91ciBzaGFyZWQgc3RhdGUgc3RydWN0ICovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS9zbHJ1LmMKaW5kZXggMTBlYzI1OWYzODIuLjMwMDZkZWYxZjgzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vc2xydS5jCkBAIC03Nyw0MSArNzcsMjEgQEAKICAqCiAgKiAicGF0aCIg c2hvdWxkIHBvaW50IHRvIGEgYnVmZmVyIGF0IGxlYXN0IE1BWFBHUEFUSCBjaGFyYWN0ZXJzIGxv bmcuCiAgKgotICogSWYgY3RsLT5sb25nX3NlZ21lbnRfbmFtZXMgaXMgdHJ1ZSwgc2Vnbm8gY2Fu IGJlIGluIHRoZSByYW5nZSBbMCwgMl42MC0xXS4KLSAqIFRoZSByZXN1bHRpbmcgZmlsZSBuYW1l IGlzIG1hZGUgb2YgMTUgY2hhcmFjdGVycywgZS5nLiBkaXIvMTIzNDU2Nzg5QUJDREVGLgotICoK LSAqIElmIGN0bC0+bG9uZ19zZWdtZW50X25hbWVzIGlzIGZhbHNlLCBzZWdubyBjYW4gYmUgaW4g dGhlIHJhbmdlIFswLCAyXjI0LTFdLgotICogVGhlIHJlc3VsdGluZyBmaWxlIG5hbWUgaXMgbWFk ZSBvZiA0IHRvIDYgY2hhcmFjdGVycywgYXMgb2Y6Ci0gKgotICogIGRpci8xMjM0ICAgZm9yIFsw LCAyXjE2LTFdCi0gKiAgZGlyLzEyMzQ1ICBmb3IgWzJeMTYsIDJeMjAtMV0KLSAqICBkaXIvMTIz NDU2IGZvciBbMl4yMCwgMl4yNC0xXQorICogc2Vnbm8gY2FuIGJlIGluIHRoZSByYW5nZSBbMCwg Ml42MC0xXS4gVGhlIHJlc3VsdGluZyBmaWxlIG5hbWUgaXMgbWFkZQorICogb2YgMTUgY2hhcmFj dGVycywgZS5nLiBkaXIvMTIzNDU2Nzg5QUJDREVGLgogICovCiBzdGF0aWMgaW5saW5lIGludAog U2xydUZpbGVOYW1lKFNscnVDdGwgY3RsLCBjaGFyICpwYXRoLCBpbnQ2NCBzZWdubykKIHsKLQlp ZiAoY3RsLT5sb25nX3NlZ21lbnRfbmFtZXMpCi0JewotCQkvKgotCQkgKiBXZSBjb3VsZCB1c2Ug MTYgY2hhcmFjdGVycyBoZXJlIGJ1dCB0aGUgZGlzYWR2YW50YWdlIHdvdWxkIGJlIHRoYXQKLQkJ ICogdGhlIFNMUlUgc2VnbWVudHMgd2lsbCBiZSBoYXJkIHRvIGRpc3Rpbmd1aXNoIGZyb20gV0FM IHNlZ21lbnRzLgotCQkgKgotCQkgKiBGb3IgdGhpcyByZWFzb24gd2UgdXNlIDE1IGNoYXJhY3Rl cnMuIEl0IGlzIGVub3VnaCBidXQgYWxzbyBtZWFucwotCQkgKiB0aGF0IGluIHRoZSBmdXR1cmUg d2UgY2FuJ3QgZGVjcmVhc2UgU0xSVV9QQUdFU19QRVJfU0VHTUVOVCBlYXNpbHkuCi0JCSAqLwot CQlBc3NlcnQoc2Vnbm8gPj0gMCAmJiBzZWdubyA8PSBJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZG RkZGKSk7Ci0JCXJldHVybiBzbnByaW50ZihwYXRoLCBNQVhQR1BBVEgsICIlcy8lMDE1IiBQUklY NjQsIGN0bC0+RGlyLCBzZWdubyk7Ci0JfQotCWVsc2UKLQl7Ci0JCS8qCi0JCSAqIERlc3BpdGUg dGhlIGZhY3QgdGhhdCAlMDRYIGZvcm1hdCBzdHJpbmcgaXMgdXNlZCB1cCB0byAyNCBiaXQKLQkJ ICogaW50ZWdlcnMgYXJlIGFsbG93ZWQuIFNlZSBTbHJ1Q29ycmVjdFNlZ21lbnRGaWxlbmFtZUxl bmd0aCgpCi0JCSAqLwotCQlBc3NlcnQoc2Vnbm8gPj0gMCAmJiBzZWdubyA8PSBJTlQ2NENPTlNU KDB4RkZGRkZGKSk7Ci0JCXJldHVybiBzbnByaW50ZihwYXRoLCBNQVhQR1BBVEgsICIlcy8lMDRY IiwgKGN0bCktPkRpciwKLQkJCQkJCSh1bnNpZ25lZCBpbnQpIHNlZ25vKTsKLQl9CisJLyoKKwkg KiBXZSBjb3VsZCB1c2UgMTYgY2hhcmFjdGVycyBoZXJlIGJ1dCB0aGUgZGlzYWR2YW50YWdlIHdv dWxkIGJlIHRoYXQKKwkgKiB0aGUgU0xSVSBzZWdtZW50cyB3aWxsIGJlIGhhcmQgdG8gZGlzdGlu Z3Vpc2ggZnJvbSBXQUwgc2VnbWVudHMuCisJICoKKwkgKiBGb3IgdGhpcyByZWFzb24gd2UgdXNl IDE1IGNoYXJhY3RlcnMuIEl0IGlzIGVub3VnaCBidXQgYWxzbyBtZWFucworCSAqIHRoYXQgaW4g dGhlIGZ1dHVyZSB3ZSBjYW4ndCBkZWNyZWFzZSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UIGVhc2ls eS4KKwkgKi8KKwlBc3NlcnQoc2Vnbm8gPj0gMCAmJiBzZWdubyA8PSBJTlQ2NENPTlNUKDB4RkZG RkZGRkZGRkZGRkZGKSk7CisJcmV0dXJuIHNucHJpbnRmKHBhdGgsIE1BWFBHUEFUSCwgIiVzLyUw MTUiIFBSSVg2NCwgY3RsLT5EaXIsIHNlZ25vKTsKIH0KIAogLyoKQEAgLTI1MCw3ICsyMzAsNyBA QCBTaW1wbGVMcnVBdXRvdHVuZUJ1ZmZlcnMoaW50IGRpdmlzb3IsIGludCBtYXgpCiB2b2lkCiBT aW1wbGVMcnVJbml0KFNscnVDdGwgY3RsLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbnNsb3RzLCBp bnQgbmxzbnMsCiAJCQkgIGNvbnN0IGNoYXIgKnN1YmRpciwgaW50IGJ1ZmZlcl90cmFuY2hlX2lk LCBpbnQgYmFua190cmFuY2hlX2lkLAotCQkJICBTeW5jUmVxdWVzdEhhbmRsZXIgc3luY19oYW5k bGVyLCBib29sIGxvbmdfc2VnbWVudF9uYW1lcykKKwkJCSAgU3luY1JlcXVlc3RIYW5kbGVyIHN5 bmNfaGFuZGxlcikKIHsKIAlTbHJ1U2hhcmVkCXNoYXJlZDsKIAlib29sCQlmb3VuZDsKQEAgLTM0 MSw3ICszMjEsNiBAQCBTaW1wbGVMcnVJbml0KFNscnVDdGwgY3RsLCBjb25zdCBjaGFyICpuYW1l LCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMsCiAJICovCiAJY3RsLT5zaGFyZWQgPSBzaGFyZWQ7CiAJ Y3RsLT5zeW5jX2hhbmRsZXIgPSBzeW5jX2hhbmRsZXI7Ci0JY3RsLT5sb25nX3NlZ21lbnRfbmFt ZXMgPSBsb25nX3NlZ21lbnRfbmFtZXM7CiAJY3RsLT5uYmFua3MgPSBuYmFua3M7CiAJc3RybGNw eShjdGwtPkRpciwgc3ViZGlyLCBzaXplb2YoY3RsLT5EaXIpKTsKIH0KQEAgLTE3NzIsMzAgKzE3 NTEsNiBAQCBTbHJ1U2NhbkRpckNiRGVsZXRlQWxsKFNscnVDdGwgY3RsLCBjaGFyICpmaWxlbmFt ZSwgaW50NjQgc2VncGFnZSwgdm9pZCAqZGF0YSkKIAlyZXR1cm4gZmFsc2U7CQkJCS8qIGtlZXAg Z29pbmcgKi8KIH0KIAotLyoKLSAqIEFuIGludGVybmFsIGZ1bmN0aW9uIHVzZWQgYnkgU2xydVNj YW5EaXJlY3RvcnkoKS4KLSAqCi0gKiBSZXR1cm5zIHRydWUgaWYgYSBmaWxlIHdpdGggYSBuYW1l IG9mIGEgZ2l2ZW4gbGVuZ3RoIG1heSBiZSBhIGNvcnJlY3QKLSAqIFNMUlUgc2VnbWVudC4KLSAq Lwotc3RhdGljIGlubGluZSBib29sCi1TbHJ1Q29ycmVjdFNlZ21lbnRGaWxlbmFtZUxlbmd0aChT bHJ1Q3RsIGN0bCwgc2l6ZV90IGxlbikKLXsKLQlpZiAoY3RsLT5sb25nX3NlZ21lbnRfbmFtZXMp Ci0JCXJldHVybiAobGVuID09IDE1KTsJCS8qIHNlZSBTbHJ1RmlsZU5hbWUoKSAqLwotCWVsc2UK LQotCQkvKgotCQkgKiBDb21taXQgNjM4Y2YwOWU3NmQgYWxsb3dlZCA1LWNoYXJhY3RlciBsZW5n dGhzLiBMYXRlciBjb21taXQKLQkJICogNzNjOTg2YWRkZTUgYWxsb3dlZCA2LWNoYXJhY3RlciBs ZW5ndGguCi0JCSAqCi0JCSAqIE5vdGU6IFRoZXJlIGlzIGFuIG9uZ29pbmcgcGxhbiB0byBtaWdy YXRlIGFsbCBTTFJVcyB0byA2NC1iaXQgcGFnZQotCQkgKiBudW1iZXJzLCBhbmQgdGhlIGNvcnJl c3BvbmRpbmcgMTUtY2hhcmFjdGVyIGZpbGUgbmFtZXMsIHdoaWNoIG1heQotCQkgKiBldmVudHVh bGx5IGRlcHJlY2F0ZSB0aGUgc3VwcG9ydCBmb3IgNCwgNSwgYW5kIDYtY2hhcmFjdGVyIG5hbWVz LgotCQkgKi8KLQkJcmV0dXJuIChsZW4gPT0gNCB8fCBsZW4gPT0gNSB8fCBsZW4gPT0gNik7Ci19 Ci0KIC8qCiAgKiBTY2FuIHRoZSBTaW1wbGVMcnUgZGlyZWN0b3J5IGFuZCBhcHBseSBhIGNhbGxi YWNrIHRvIGVhY2ggZmlsZSBmb3VuZCBpbiBpdC4KICAqCkBAIC0xODI3LDcgKzE3ODIsNyBAQCBT bHJ1U2NhbkRpcmVjdG9yeShTbHJ1Q3RsIGN0bCwgU2xydVNjYW5DYWxsYmFjayBjYWxsYmFjaywg dm9pZCAqZGF0YSkKIAogCQlsZW4gPSBzdHJsZW4oY2xkZS0+ZF9uYW1lKTsKIAotCQlpZiAoU2xy dUNvcnJlY3RTZWdtZW50RmlsZW5hbWVMZW5ndGgoY3RsLCBsZW4pICYmCisJCWlmICgobGVuID09 IDE1KSAmJgogCQkJc3Ryc3BuKGNsZGUtPmRfbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSA9PSBs ZW4pCiAJCXsKIAkJCXNlZ25vID0gc3RydG9pNjQoY2xkZS0+ZF9uYW1lLCBOVUxMLCAxNik7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYwppbmRleCAwOWFhY2U5ZTA5Zi4uNTE3MDg5 ZjA2NjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYwpAQCAtMjQyLDcgKzI0 Miw3IEBAIFNVQlRSQU5TU2htZW1Jbml0KHZvaWQpCiAJU3ViVHJhbnNDdGwtPlBhZ2VQcmVjZWRl cyA9IFN1YlRyYW5zUGFnZVByZWNlZGVzOwogCVNpbXBsZUxydUluaXQoU3ViVHJhbnNDdGwsICJz dWJ0cmFuc2FjdGlvbiIsIFNVQlRSQU5TU2htZW1CdWZmZXJzKCksIDAsCiAJCQkJICAicGdfc3Vi dHJhbnMiLCBMV1RSQU5DSEVfU1VCVFJBTlNfQlVGRkVSLAotCQkJCSAgTFdUUkFOQ0hFX1NVQlRS QU5TX1NMUlUsIFNZTkNfSEFORExFUl9OT05FLCBmYWxzZSk7CisJCQkJICBMV1RSQU5DSEVfU1VC VFJBTlNfU0xSVSwgU1lOQ19IQU5ETEVSX05PTkUpOwogCVNscnVQYWdlUHJlY2VkZXNVbml0VGVz dHMoU3ViVHJhbnNDdGwsIFNVQlRSQU5TX1hBQ1RTX1BFUl9QQUdFKTsKIH0KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Fz eW5jLmMKaW5kZXggNGJkMzdkNWJlYjUuLjM3M2IwMzU3ZmFkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9hc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMK QEAgLTUzNyw3ICs1MzcsNyBAQCBBc3luY1NobWVtSW5pdCh2b2lkKQogCU5vdGlmeUN0bC0+UGFn ZVByZWNlZGVzID0gYXN5bmNRdWV1ZVBhZ2VQcmVjZWRlczsKIAlTaW1wbGVMcnVJbml0KE5vdGlm eUN0bCwgIm5vdGlmeSIsIG5vdGlmeV9idWZmZXJzLCAwLAogCQkJCSAgInBnX25vdGlmeSIsIExX VFJBTkNIRV9OT1RJRllfQlVGRkVSLCBMV1RSQU5DSEVfTk9USUZZX1NMUlUsCi0JCQkJICBTWU5D X0hBTkRMRVJfTk9ORSwgdHJ1ZSk7CisJCQkJICBTWU5DX0hBTkRMRVJfTk9ORSk7CiAKIAlpZiAo IWZvdW5kKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNh dGUuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYwppbmRleCBjMDdmYjU4 ODM1NS4uZDYxMTdlYjcyZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9w cmVkaWNhdGUuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMKQEAg LTgxNCw3ICs4MTQsNyBAQCBTZXJpYWxJbml0KHZvaWQpCiAJU2ltcGxlTHJ1SW5pdChTZXJpYWxT bHJ1Q3RsLCAic2VyaWFsaXphYmxlIiwKIAkJCQkgIHNlcmlhbGl6YWJsZV9idWZmZXJzLCAwLCAi cGdfc2VyaWFsIiwKIAkJCQkgIExXVFJBTkNIRV9TRVJJQUxfQlVGRkVSLCBMV1RSQU5DSEVfU0VS SUFMX1NMUlUsCi0JCQkJICBTWU5DX0hBTkRMRVJfTk9ORSwgZmFsc2UpOworCQkJCSAgU1lOQ19I QU5ETEVSX05PTkUpOwogI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKIAlTZXJpYWxQYWdlUHJl Y2VkZXNMb2dpY2FsbHlVbml0VGVzdHMoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z191cGdyYWRlL3BnX3VwZ3JhZGUuYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMK aW5kZXggZDVjZDViZjBiM2EuLjUyZjZhMWNkZmVjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Vw Z3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMK QEAgLTQxLDYgKzQxLDcgQEAKIAogI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCiAKKyNpbmNsdWRl IDxkaXJlbnQuaD4KICNpbmNsdWRlIDx0aW1lLmg+CiAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Ns YXNzX2QuaCIKQEAgLTYzLDYgKzY0LDggQEAgc3RhdGljIHZvaWQgcHJlcGFyZV9uZXdfY2x1c3Rl cih2b2lkKTsKIHN0YXRpYyB2b2lkIHByZXBhcmVfbmV3X2dsb2JhbHModm9pZCk7CiBzdGF0aWMg dm9pZCBjcmVhdGVfbmV3X29iamVjdHModm9pZCk7CiBzdGF0aWMgdm9pZCBjb3B5X3hhY3RfeGxv Z194aWQodm9pZCk7CitzdGF0aWMgdm9pZCBjaGVja19zbHJ1X3NlZ21lbnRfZmlsZW5hbWVzKHZv aWQpOworc3RhdGljIHZvaWQgcmVuYW1lX3NscnVfc2VnbWVudHMoY29uc3QgY2hhciAqZGlybmFt ZSk7CiBzdGF0aWMgdm9pZCBzZXRfZnJvemVueGlkcyhib29sIG1pbm14aWRfb25seSk7CiBzdGF0 aWMgdm9pZCBtYWtlX291dHB1dGRpcnMoY2hhciAqcGdkYXRhKTsKIHN0YXRpYyB2b2lkIHNldHVw KGNoYXIgKmFyZ3YwKTsKQEAgLTE2MSw2ICsxNjQsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoq YXJndikKIAogCWNvcHlfeGFjdF94bG9nX3hpZCgpOwogCXNldF9uZXdfY2x1c3Rlcl9jaGFyX3Np Z25lZG5lc3MoKTsKKwljaGVja19zbHJ1X3NlZ21lbnRfZmlsZW5hbWVzKCk7CiAKIAkvKiBOZXcg bm93IHVzaW5nIHhpZHMgb2YgdGhlIG9sZCBzeXN0ZW0gKi8KIApAQCAtODcyLDYgKzg3Niw3NiBA QCBjb3B5X3hhY3RfeGxvZ194aWQodm9pZCkKIAljaGVja19vaygpOwogfQogCitzdGF0aWMgdm9p ZAorcmVuYW1lX3NscnVfc2VnbWVudHMoY29uc3QgY2hhciogZGlybmFtZSkKK3sKKwlESVIJCSAg ICpkaXI7CisJc3RydWN0IGRpcmVudCAqZGU7CisJaW50IAkJbGVuOworCWludDY0IAkJc2Vnbm87 CisJY2hhcgkJZGlyX3BhdGhbTUFYUEdQQVRIXTsKKwljaGFyCQlvbGRfcGF0aFtNQVhQR1BBVEhd OworCWNoYXIJCW5ld19wYXRoW01BWFBHUEFUSF07CisKKwlwcmVwX3N0YXR1cygiUmVuYW1pbmcg U0xSVSBzZWdtZW50cyBpbiAlcyIsIGRpcm5hbWUpOworCXNucHJpbnRmKGRpcl9wYXRoLCBzaXpl b2YoZGlyX3BhdGgpLCAiJXMvJXMiLCBuZXdfY2x1c3Rlci5wZ2RhdGEsIGRpcm5hbWUpOworCisJ ZGlyID0gb3BlbmRpcihkaXJfcGF0aCk7CisJaWYgKGRpciA9PSBOVUxMKQorCQlwZ19mYXRhbCgi Y291bGQgbm90IG9wZW4gZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBkaXJfcGF0aCk7CisKKwl3aGls ZSAoZXJybm8gPSAwLCAoZGUgPSByZWFkZGlyKGRpcikpICE9IE5VTEwpCisJeworCQkvKgorCQkg KiBpZ25vcmUgJy4nLCAnLi4nIGFuZCBldmVyeXRoaW5nIGVsc2UgdGhhdCBkb2Vzbid0IGxvb2sK KwkJICogbGlrZSBhbiBTTFJVIHNlZ21lbnQgd2l0aCBhIHNob3J0IGZpbGUgbmFtZQorCQkgKi8K KworCQlsZW4gPSBzdHJsZW4oZGUtPmRfbmFtZSk7CisJCWlmKGxlbiAhPSA0ICYmIGxlbiAhPSA1 ICYmIGxlbiAhPSA2KQorCQkJY29udGludWU7CisKKwkJaWYoc3Ryc3BuKGRlLT5kX25hbWUsICIw MTIzNDU2Nzg5QUJDREVGIikgIT0gbGVuKQorCQkJY29udGludWU7CisKKwkJc2Vnbm8gPSBzdHJ0 b2k2NChkZS0+ZF9uYW1lLCBOVUxMLCAxNik7CisJCXNucHJpbnRmKG5ld19wYXRoLCBNQVhQR1BB VEgsICIlcy8lMDE1bGxYIiwgZGlyX3BhdGgsCisJCQkJCShsb25nIGxvbmcpIHNlZ25vKTsKKwkJ c25wcmludGYob2xkX3BhdGgsIE1BWFBHUEFUSCwgIiVzLyVzIiwgZGlyX3BhdGgsIGRlLT5kX25h bWUpOworCisJCWlmIChwZ19tdl9maWxlKG9sZF9wYXRoLCBuZXdfcGF0aCkgIT0gMCkKKwkJCXBn X2ZhdGFsKCJjb3VsZCBub3QgcmVuYW1lIGZpbGUgXCIlc1wiIHRvIFwiJXNcIjogJW0iLAorCQkJ CQkgb2xkX3BhdGgsIG5ld19wYXRoKTsKKwl9CisKKwlpZiAoZXJybm8pCisJCXBnX2ZhdGFsKCJj b3VsZCBub3QgcmVhZCBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcl9wYXRoKTsKKworCWlmIChj bG9zZWRpcihkaXIpKQorCQlwZ19mYXRhbCgiY291bGQgbm90IGNsb3NlIGRpcmVjdG9yeSBcIiVz XCI6ICVtIiwgZGlyX3BhdGgpOworCisJY2hlY2tfb2soKTsKK30KKworc3RhdGljIHZvaWQKK2No ZWNrX3NscnVfc2VnbWVudF9maWxlbmFtZXModm9pZCkKK3sKKwlpbnQgaTsKKwlzdGF0aWMgY29u c3QgY2hhciogZGlyc1tdID0geworCQkicGdfeGFjdCIsCisJCSJwZ19jb21taXRfdHMiLAorCQki cGdfbXVsdGl4YWN0L29mZnNldHMiLAorCQkicGdfbXVsdGl4YWN0L21lbWJlcnMiLAorCQkicGdf c3VidHJhbnMiLAorCQkicGdfc2VyaWFsIiwKKwl9OworCisJaWYob2xkX2NsdXN0ZXIuY29udHJv bGRhdGEuY2F0X3ZlciA+PSBTTFJVX1NFR19GSUxFTkFNRVNfQ0hBTkdFX0NBVF9WRVIpCisJCXJl dHVybjsKKworCWZvciAoaSA9IDA7IGkgPCBzaXplb2YoZGlycykvc2l6ZW9mKGRpcnNbMF0pOyBp KyspCisJCXJlbmFtZV9zbHJ1X3NlZ21lbnRzKGRpcnNbaV0pOworfQogCiAvKgogICoJc2V0X2Zy b3plbnhpZHMoKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCBi L3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKaW5kZXggMGVmNDdiZTBkYzEuLjczZDEw MjUyOWMzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisrKyBi L3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKQEAgLTEzMSw2ICsxMzEsMTIgQEAgZXh0 ZXJuIGNoYXIgKm91dHB1dF9maWxlc1tdOwogICovCiAjZGVmaW5lIERFRkFVTFRfQ0hBUl9TSUdO RURORVNTX0NBVF9WRVIgMjAyNTAyMjEyCiAKKy8qCisgKiBjaGFuZ2Ugb2YgU0xSVSBzZWdtZW50 IGZpbGVuYW1lcyBsZW5ndGggaW4gMTguMAorICogVE9ETyBGSVhNRSBDSEFOR0UgVE8gVEhFIEFD VFVBTCBWQUxVRSBCRUZPUkUgQ09NTUlUVElORworICovCisjZGVmaW5lIFNMUlVfU0VHX0ZJTEVO QU1FU19DSEFOR0VfQ0FUX1ZFUiAyMDI0MTIyMDEKKwogLyoKICAqIEVhY2ggcmVsYXRpb24gaXMg cmVwcmVzZW50ZWQgYnkgYSByZWxpbmZvIHN0cnVjdHVyZS4KICAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbCBiL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3QvMDAzX2NvcnJ1cHRpb24ucGwKaW5kZXggMWRkNjBmNzA5Y2YuLmRlYjhjMTFj YTllIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwM19jb3JydXB0aW9u LnBsCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDAzX2NvcnJ1cHRpb24ucGwKQEAg LTI0Niw3ICsyNDYsNyBAQCBzdWIgbXV0aWxhdGVfZXh0cmFfdGFibGVzcGFjZV9maWxlCiBzdWIg bXV0aWxhdGVfbWlzc2luZ19maWxlCiB7CiAJbXkgKCRiYWNrdXBfcGF0aCkgPSBAXzsKLQlteSAk cGF0aG5hbWUgPSAiJGJhY2t1cF9wYXRoL3BnX3hhY3QvMDAwMCI7CisJbXkgJHBhdGhuYW1lID0g IiRiYWNrdXBfcGF0aC9wZ194YWN0LzAwMDAwMDAwMDAwMDAwMCI7CiAJdW5saW5rKCRwYXRobmFt ZSkgfHwgZGllICIkcGF0aG5hbWU6ICQhIjsKIAlyZXR1cm47CiB9CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3Mvc2xydS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaAppbmRleCAy MGRiZDFlMDA3MC4uMTg2ZDljYjFhMTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9z bHJ1LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaApAQCAtMTMxLDEzICsxMzEsNiBA QCB0eXBlZGVmIHN0cnVjdCBTbHJ1Q3RsRGF0YQogCS8qIE51bWJlciBvZiBiYW5rcyBpbiB0aGlz IFNMUlUuICovCiAJdWludDE2CQluYmFua3M7CiAKLQkvKgotCSAqIElmIHRydWUsIHVzZSBsb25n IHNlZ21lbnQgZmlsZSBuYW1lcy4gIE90aGVyd2lzZSwgdXNlIHNob3J0IGZpbGUgbmFtZXMuCi0J ICoKLQkgKiBGb3IgZGV0YWlscyBhYm91dCB0aGUgZmlsZSBuYW1lIGZvcm1hdCwgc2VlIFNscnVG aWxlTmFtZSgpLgotCSAqLwotCWJvb2wJCWxvbmdfc2VnbWVudF9uYW1lczsKLQogCS8qCiAJICog V2hpY2ggc3luYyBoYW5kbGVyIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIGhhbmRpbmcgc3luYyByZXF1 ZXN0cyBvdmVyIHRvCiAJICogdGhlIGNoZWNrcG9pbnRlci4gIFNZTkNfSEFORExFUl9OT05FIHRv IGRpc2FibGUgZnN5bmMgKGVnIHBnX25vdGlmeSkuCkBAIC0xODQsOCArMTc3LDcgQEAgZXh0ZXJu IFNpemUgU2ltcGxlTHJ1U2htZW1TaXplKGludCBuc2xvdHMsIGludCBubHNucyk7CiBleHRlcm4g aW50CVNpbXBsZUxydUF1dG90dW5lQnVmZmVycyhpbnQgZGl2aXNvciwgaW50IG1heCk7CiBleHRl cm4gdm9pZCBTaW1wbGVMcnVJbml0KFNscnVDdGwgY3RsLCBjb25zdCBjaGFyICpuYW1lLCBpbnQg bnNsb3RzLCBpbnQgbmxzbnMsCiAJCQkJCQkgIGNvbnN0IGNoYXIgKnN1YmRpciwgaW50IGJ1ZmZl cl90cmFuY2hlX2lkLAotCQkJCQkJICBpbnQgYmFua190cmFuY2hlX2lkLCBTeW5jUmVxdWVzdEhh bmRsZXIgc3luY19oYW5kbGVyLAotCQkJCQkJICBib29sIGxvbmdfc2VnbWVudF9uYW1lcyk7CisJ CQkJCQkgIGludCBiYW5rX3RyYW5jaGVfaWQsIFN5bmNSZXF1ZXN0SGFuZGxlciBzeW5jX2hhbmRs ZXIpOwogZXh0ZXJuIGludAlTaW1wbGVMcnVaZXJvUGFnZShTbHJ1Q3RsIGN0bCwgaW50NjQgcGFn ZW5vKTsKIGV4dGVybiB2b2lkIFNpbXBsZUxydVplcm9BbmRXcml0ZVBhZ2UoU2xydUN0bCBjdGws IGludDY0IHBhZ2Vubyk7CiBleHRlcm4gaW50CVNpbXBsZUxydVJlYWRQYWdlKFNscnVDdGwgY3Rs LCBpbnQ2NCBwYWdlbm8sIGJvb2wgd3JpdGVfb2ssCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1 bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUuYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3Rl c3Rfc2xydS5jCmluZGV4IDMyNzUwOTMwZTQzLi40ODNjMDZlZGZjNyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMKKysrIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMKQEAgLTIxMywxMSArMjEzLDYgQEAgdGVzdF9zbHJ1X3Bh Z2VfcHJlY2VkZXNfbG9naWNhbGx5KGludDY0IHBhZ2UxLCBpbnQ2NCBwYWdlMikKIHN0YXRpYyB2 b2lkCiB0ZXN0X3NscnVfc2htZW1fc3RhcnR1cCh2b2lkKQogewotCS8qCi0JICogU2hvcnQgc2Vn bWVudHMgbmFtZXMgYXJlIHdlbGwgdGVzdGVkIGVsc2V3aGVyZSBzbyBpbiB0aGlzIHRlc3Qgd2Ug YXJlCi0JICogZm9jdXNpbmcgb24gbG9uZyBuYW1lcy4KLQkgKi8KLQljb25zdCBib29sCWxvbmdf c2VnbWVudF9uYW1lcyA9IHRydWU7CiAJY29uc3QgY2hhcglzbHJ1X2Rpcl9uYW1lW10gPSAicGdf dGVzdF9zbHJ1IjsKIAlpbnQJCQl0ZXN0X3RyYW5jaGVfaWQ7CiAJaW50CQkJdGVzdF9idWZmZXJf dHJhbmNoZV9pZDsKQEAgLTI0MSw4ICsyMzYsNyBAQCB0ZXN0X3NscnVfc2htZW1fc3RhcnR1cCh2 b2lkKQogCVRlc3RTbHJ1Q3RsLT5QYWdlUHJlY2VkZXMgPSB0ZXN0X3NscnVfcGFnZV9wcmVjZWRl c19sb2dpY2FsbHk7CiAJU2ltcGxlTHJ1SW5pdChUZXN0U2xydUN0bCwgIlRlc3RTTFJVIiwKIAkJ CQkgIE5VTV9URVNUX0JVRkZFUlMsIDAsIHNscnVfZGlyX25hbWUsCi0JCQkJICB0ZXN0X2J1ZmZl cl90cmFuY2hlX2lkLCB0ZXN0X3RyYW5jaGVfaWQsIFNZTkNfSEFORExFUl9OT05FLAotCQkJCSAg bG9uZ19zZWdtZW50X25hbWVzKTsKKwkJCQkgIHRlc3RfYnVmZmVyX3RyYW5jaGVfaWQsIHRlc3Rf dHJhbmNoZV9pZCwgU1lOQ19IQU5ETEVSX05PTkUpOwogfQogCiB2b2lkCi0tIAoyLjQzLjAKCg== --000000000000e33125063c3dd36c--