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 1wAPrB-002Ma2-0A for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Apr 2026 10:09:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wAPr8-006Tja-10 for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Apr 2026 10:09:54 +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 1wAPr7-006TjS-2M for pgsql-hackers@lists.postgresql.org; Wed, 08 Apr 2026 10:09:54 +0000 Received: from mail-oa1-x2a.google.com ([2001:4860:4864:20::2a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wAPr5-00000001CRy-1VYO for pgsql-hackers@lists.postgresql.org; Wed, 08 Apr 2026 10:09:53 +0000 Received: by mail-oa1-x2a.google.com with SMTP id 586e51a60fabf-4138136f02eso4034022fac.2 for ; Wed, 08 Apr 2026 03:09:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775642990; cv=none; d=google.com; s=arc-20240605; b=IdP0I2AzSDHCGUZyoCkLPRfikV551jdZGU7O0Stkhn/OhCqisYzkFQe20ttdZfNkgW Y9/kY8ppaxjEH1lDuIlMuGtlb9BwMzGZuTpwYdD/dWefCJMp3f8gEXSeqbbFMJkAyznx tps1VaE6mJsErYvVj3F0E1nOKSmN81FTNRxrABKQ3y1ah5ikcYjokEwATgYzoaeINpaw GXixvr3MrbfRveFD+JJdD7hPexZ+myxjE3JUIkJt/VTkHe6PlFQ+KOsDyI2sPc8pQCQ1 qI05SsXqyYQib737ye6PTvo90EI/jZXduQFnv6XWnaY2Oh4u/yx0L6RJLRG7pbFRJm1a hRxg== 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=nsjRs/Udj/WnqnXFgY7Uq2uy8fjKq81NuOkrhdL5gyY=; fh=gPbxl+k4T4K71F0nR8jKMJaaXHLLfV3fVQWiErT+vP4=; b=TJ2j+C0vZA/Kggr0J7TspF0Hf8Oep1LUTRWad1h3u6Glwrwtiki7G6WrHopJpS8iMr io0YSMWElONaV5aTdUVPLyLxfVbWuhBt2nDT5CX2Q7iJcClUsIm5G1ItIRofj34lNhNm xBVGV0vrwk2J42LkEBbeXxO04jUE8hnanUrPLt4YPH3s5xonLsA1Gwj9PC/dl1HpEL5w qWHxllJOeT7raM8mAU76w5jRAH3eeZX8f2TRJlOF2waAA/WjQCISdOhXEQv7KX3iSiO0 Suxz3GwctewGeEjIdhTsmQTOILl8TmU8fXQ+Oxo/55kVOEFMNZrOWLcG2TRSmPoGqik6 f76w==; 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=tigerdata.com; s=google; t=1775642990; x=1776247790; 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=nsjRs/Udj/WnqnXFgY7Uq2uy8fjKq81NuOkrhdL5gyY=; b=PDFa16fO9P96j0OaC3gtkZ8o2bIrAdD6qMB9S1Qi2yI4QWVfSatK3+AXMjpLpOBo6z Ea90sPBCL87YAXMRcjHSvrisSRUgDIwbBaBlB2iG9mIePb/cyaeiPaW9jfFTKEyYGQmJ wHkhZ3kPpLWXBecM10yufVUhXEC+u/GX+SpyASUKWKxlP2OdOzPr5Mc0ab3HwT3yY4GL A4j7kQOmyvACaaLWUgA/0JDvKShR086TgLSOiu1go3eQL67d9mBWqYH5zTE5BIG1kb2s HlPVnlpQila8KC5xkqZbmB06/3H7yCS2Y7MKfNm5SHO9Ejh/SprZN/nQI+cqEAmGHLcw qKXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775642990; x=1776247790; 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=nsjRs/Udj/WnqnXFgY7Uq2uy8fjKq81NuOkrhdL5gyY=; b=cebEABvdcpHyljY/0uZafWxXH/OeAhTVyXi0nJFSsTLnj47CL+7ii0CNqNbwgBDluS Amdn7brf5HeoKq5n63dmuWsGtqNBQS76XihBhUKIRUmegyQcgo0VsgMUkcgYwTzUht0D MgKWjGWlo8Et5kngkqAC2DbjprFRA5ON5LE8ADAuzmBUPbQPUj/6/Tpo42Kk55INZVN5 G3eo3jRQ2VHyE6+R0TBP7lzuuMXmjGKEGGPu1z6W5cTT9N5AOEHPyrwO4w2lXQGr0Fp4 zIQ3e1BoEAKH84dlf9cBXH464cFeq6CJnTj/MLm4cQyMqTEU8QnU9Ty0as+0C2IMtku5 Z8Xw== X-Gm-Message-State: AOJu0YwQSA39aEO0obGrFFLlLM32SIeK5kFF4JAhNeVqZJWvK7gbNTrG fUmBZ5sg9hp6aa1PZ0IXkh+K73ovAlsSQ1170gqrU5KUPTCQcXsFce/wi+k4plb0VMx2uR5AykF Obiz7PCxmCiNkAeOqHe3FN7C5Nt9b1xWNpQxVVa+CsIU6hoPeR+OaJtf6dA== X-Gm-Gg: AeBDietbDwrguA0kW7ZHL8FvGBmo+r15WOHjSgYLcVxkxdUxKXksKHoCWLdW561V2ad cmcxcjHa/3bPuGGKL6p+XnSz2luQ6Lid6AiUJ2uKLIIQewh16EalTGQ/JWWssfjvYVK91Irw1l+ mu9EEYenZTV5LEpKtBv6D/x+SZef14BlxTQ0gKedz0oNKdjrcXH8ytnOsi9fFWoxZVNVTTNOa4o FSp3S5LLXKKOjU/ZcofirJ3OA8jPJHpXR1/EP+xJ9leDmZqvMeXTezvFaUPUVdYQBmcjtCcjTr/ v0FLJUDE1H7yoqbDItRpDDqP+PELc1y1KDxqnTXczUHhH5PBVSKgeYdssqPxqVYDvfyO X-Received: by 2002:a05:6820:f0a:b0:683:310:8ca7 with SMTP id 006d021491bc7-68303108fe1mr9506041eaf.43.1775642990176; Wed, 08 Apr 2026 03:09:50 -0700 (PDT) MIME-Version: 1.0 References: <174319365391.60294.17413945943923890743.pgcf@coridan.postgresql.org> <8da558b6-14fe-4f04-a6bd-98e9961c9ff5@iki.fi> In-Reply-To: From: Aleksander Alekseev Date: Wed, 8 Apr 2026 13:09:38 +0300 X-Gm-Features: AQROBzCDfkwQamz16HMyVCIx94H5KoMAQeQXbI5O5t0vR0llD4SZxU7TAHdWMmo Message-ID: Subject: Re: [PATCH] Refactor SLRU to always use long file names To: pgsql-hackers@lists.postgresql.org Cc: Heikki Linnakangas , Rustam ALLAKOV , Michael Paquier Content-Type: multipart/mixed; boundary="000000000000ae1a2d064ef019de" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ae1a2d064ef019de Content-Type: text/plain; charset="UTF-8" Hi, > > Since commit bd8d9c9bdf "Widen MultiXactOffset to 64 bits", > > "pg_multixact/members" should not be in that list anymore. > > I missed this one. Fixed, thanks. > > > Also, it seems misleading that a function called "check_*" doesn't > > merely check for things, but renames files. > > Fair point. I renamed it to `ensure_long_slru_segment_filenames`. > > > Could we copy/link them with the new long names to begin with? > > That's an interesting idea. > > What I personally don't like about it is the fact that a single > migration will affect the logic of every run of pg_upgrade, even in > the far future, for instances that don't need this migration. > Previously I showed [1] that the entire migration takes little time > (note that we had to migrate pg_multixact/members back then). So I > don't think this optimization is a good idea in the long run, unless > we reach a consensus on the opposite. Rebased. -- Best regards, Aleksander Alekseev --000000000000ae1a2d064ef019de Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0001-Always-use-long-SLRU-segment-file-names.patch" Content-Disposition: attachment; filename="v9-0001-Always-use-long-SLRU-segment-file-names.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnpvz9n00 RnJvbSAwMjc1YWMwNDdjZmU2ZmNlZDY0ODA5MWFhMTRmODQyM2ZjMjM4M2E4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxhbGVrc2FuZGVyQHRpbWVz Y2FsZS5jb20+CkRhdGU6IFdlZCwgMTEgU2VwIDIwMjQgMTM6MTc6MzMgKzAzMDAKU3ViamVjdDog W1BBVENIIHY5XSBBbHdheXMgdXNlIGxvbmcgU0xSVSBzZWdtZW50IGZpbGUgbmFtZXMKClBHMTcg aW50cm9kdWNlZCBsb25nIFNMUlUgc2VnbWVudCBmaWxlIG5hbWVzIChjb21taXQgNGVkOGYwOTEz YmZkKS4gV2UgdXNlZApzaG9ydCBvciBsb25nIGZpbGUgbmFtZXMgZGVwZW5kaW5nIG9uIFNscnVD dGwtPmxvbmdfc2VnbWVudF9uYW1lcy4gVGhpcyBjb21taXQKcmVmYWN0b3JzIFNMUlUgdG8gYWx3 YXlzIHVzZSBsb25nIGZpbGUgbmFtZXMgaW4gb3JkZXIgdG8gc2ltcGxpZnkgdGhlIGNvZGUuCgpB dXRob3I6IEFsZWtzYW5kZXIgQWxla3NlZXYgPGFsZWtzYW5kZXJAdGlnZXJkYXRhLmNvbT4KUmV2 aWV3ZWQtYnk6IE1pY2hhZWwgUGFxdWllciA8bWljaGFlbEBwYXF1aWVyLnh5ej4KUmV2aWV3ZWQt Ynk6IFJ1c3RhbSBBTExBS09WIDxydXN0YW1hbGxha292QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IEhlaWtraSBMaW5uYWthbmdhcyA8aGxpbm5ha2FAaWtpLmZpPgpEaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBSjdjNlRPeTdmVVc5TXVOZU9Xb3IzY1NGblFnOXRnej1talhIRGI5NEdP UnRNX0V5Z0BtYWlsLmdtYWlsLmNvbQoKKCEhISkgYnVtcCBjYXR2ZXJzaW9uIGFuZCBjaGFuZ2Ug dGhlIGNvcnJlc3BvbmRpbmcgVE9ETyBGSVhNRSBsaW5lIGluIHBnX3VwZ3JhZGUuaAotLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYyAgICAgICAgICAgICB8ICAxIC0KIHNyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90cy5jICAgICAgICB8ICAyIC0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jICAgICAgICB8ICAyIC0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3NscnUuYyAgICAgICAgICAgICB8IDY4ICsrKy0tLS0tLS0tLS0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jICAgICAgICAgfCAgMSAtCiBz cmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jICAgICAgICAgICAgICAgICAgfCAgMyAtCiBzcmMv YmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMgICAgICAgICAgfCAgMSAtCiBzcmMvYmlu L3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jICAgICAgICAgICAgICAgfCA3MyArKysrKysrKysrKysr KysrKysrCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oICAgICAgICAgICAgICAgfCAg NiArKwogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbCAgIHwgIDIg Ky0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggICAgICAgICAgICAgICAgICAgICB8ICA4IC0t CiAuLi4vdGVzdF9zbHJ1L3QvMDAyX211bHRpeGFjdF93cmFwYXJvdW5kLnBsICAgfCAgNiArLQog c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMgICAgICAgIHwgIDYgLS0KIDEz IGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyksIDg0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL2Nsb2cuYwppbmRleCA3NTAxMmQ0YjhmMC4uZWJhNGZmNmVkZjkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMKQEAgLTgxMiw3ICs4MTIsNiBAQCBDTE9HU2htZW1SZXF1 ZXN0KHZvaWQgKmFyZykKIAlTaW1wbGVMcnVSZXF1ZXN0KC5kZXNjID0gJlhhY3RTbHJ1RGVzYywK IAkJCQkJIC5uYW1lID0gInRyYW5zYWN0aW9uIiwKIAkJCQkJIC5EaXIgPSAicGdfeGFjdCIsCi0J CQkJCSAubG9uZ19zZWdtZW50X25hbWVzID0gZmFsc2UsCiAKIAkJCQkJIC5uc2xvdHMgPSBDTE9H U2htZW1CdWZmZXJzKCksCiAJCQkJCSAubmxzbnMgPSBDTE9HX0xTTlNfUEVSX1BBR0UsCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90cy5jCmluZGV4IDI2MjVjYmY5M2JmLi5kOWI1ZjEx Mjk3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMKQEAgLTU1MSw4ICs1 NTEsNiBAQCBDb21taXRUc1NobWVtUmVxdWVzdCh2b2lkICphcmcpCiAJU2ltcGxlTHJ1UmVxdWVz dCguZGVzYyA9ICZDb21taXRUc1NscnVEZXNjLAogCQkJCQkgLm5hbWUgPSAiY29tbWl0X3RpbWVz dGFtcCIsCiAJCQkJCSAuRGlyID0gInBnX2NvbW1pdF90cyIsCi0JCQkJCSAubG9uZ19zZWdtZW50 X25hbWVzID0gZmFsc2UsCi0KIAkJCQkJIC5uc2xvdHMgPSBDb21taXRUc1NobWVtQnVmZmVycygp LAogCiAJCQkJCSAuUGFnZVByZWNlZGVzID0gQ29tbWl0VHNQYWdlUHJlY2VkZXMsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCmluZGV4IGNiNzhiYTA4NDJkLi44MDM3YTZhYzQ1 MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTE3ODUsNyArMTc4 NSw2IEBAIE11bHRpWGFjdFNobWVtUmVxdWVzdCh2b2lkICphcmcpCiAJU2ltcGxlTHJ1UmVxdWVz dCguZGVzYyA9ICZNdWx0aVhhY3RPZmZzZXRTbHJ1RGVzYywKIAkJCQkJIC5uYW1lID0gIm11bHRp eGFjdF9vZmZzZXQiLAogCQkJCQkgLkRpciA9ICJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsCi0JCQkJ CSAubG9uZ19zZWdtZW50X25hbWVzID0gZmFsc2UsCiAKIAkJCQkJIC5uc2xvdHMgPSBtdWx0aXhh Y3Rfb2Zmc2V0X2J1ZmZlcnMsCiAKQEAgLTE4MDAsNyArMTc5OSw2IEBAIE11bHRpWGFjdFNobWVt UmVxdWVzdCh2b2lkICphcmcpCiAJU2ltcGxlTHJ1UmVxdWVzdCguZGVzYyA9ICZNdWx0aVhhY3RN ZW1iZXJTbHJ1RGVzYywKIAkJCQkJIC5uYW1lID0gIm11bHRpeGFjdF9tZW1iZXIiLAogCQkJCQkg LkRpciA9ICJwZ19tdWx0aXhhY3QvbWVtYmVycyIsCi0JCQkJCSAubG9uZ19zZWdtZW50X25hbWVz ID0gdHJ1ZSwKIAogCQkJCQkgLm5zbG90cyA9IG11bHRpeGFjdF9tZW1iZXJfYnVmZmVycywKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jCmluZGV4IDQ3ZGQ1MmQ2NzQ5Li40YTRkZmYyMDE4MyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYwpAQCAtODAsNDEgKzgwLDIxIEBACiAgKgogICog InBhdGgiIHNob3VsZCBwb2ludCB0byBhIGJ1ZmZlciBhdCBsZWFzdCBNQVhQR1BBVEggY2hhcmFj dGVycyBsb25nLgogICoKLSAqIElmIGN0bC0+bG9uZ19zZWdtZW50X25hbWVzIGlzIHRydWUsIHNl Z25vIGNhbiBiZSBpbiB0aGUgcmFuZ2UgWzAsIDJeNjAtMV0uCi0gKiBUaGUgcmVzdWx0aW5nIGZp bGUgbmFtZSBpcyBtYWRlIG9mIDE1IGNoYXJhY3RlcnMsIGUuZy4gZGlyLzEyMzQ1Njc4OUFCQ0RF Ri4KLSAqCi0gKiBJZiBjdGwtPmxvbmdfc2VnbWVudF9uYW1lcyBpcyBmYWxzZSwgc2Vnbm8gY2Fu IGJlIGluIHRoZSByYW5nZSBbMCwgMl4yNC0xXS4KLSAqIFRoZSByZXN1bHRpbmcgZmlsZSBuYW1l IGlzIG1hZGUgb2YgNCB0byA2IGNoYXJhY3RlcnMsIGFzIG9mOgotICoKLSAqICBkaXIvMTIzNCAg IGZvciBbMCwgMl4xNi0xXQotICogIGRpci8xMjM0NSAgZm9yIFsyXjE2LCAyXjIwLTFdCi0gKiAg ZGlyLzEyMzQ1NiBmb3IgWzJeMjAsIDJeMjQtMV0KKyAqIHNlZ25vIGNhbiBiZSBpbiB0aGUgcmFu Z2UgWzAsIDJeNjAtMV0uIFRoZSByZXN1bHRpbmcgZmlsZSBuYW1lIGlzIG1hZGUKKyAqIG9mIDE1 IGNoYXJhY3RlcnMsIGUuZy4gZGlyLzEyMzQ1Njc4OUFCQ0RFRi4KICAqLwogc3RhdGljIGlubGlu ZSBpbnQKIFNscnVGaWxlTmFtZShTbHJ1RGVzYyAqY3RsLCBjaGFyICpwYXRoLCBpbnQ2NCBzZWdu bykKIHsKLQlpZiAoY3RsLT5vcHRpb25zLmxvbmdfc2VnbWVudF9uYW1lcykKLQl7Ci0JCS8qCi0J CSAqIFdlIGNvdWxkIHVzZSAxNiBjaGFyYWN0ZXJzIGhlcmUgYnV0IHRoZSBkaXNhZHZhbnRhZ2Ug d291bGQgYmUgdGhhdAotCQkgKiB0aGUgU0xSVSBzZWdtZW50cyB3aWxsIGJlIGhhcmQgdG8gZGlz dGluZ3Vpc2ggZnJvbSBXQUwgc2VnbWVudHMuCi0JCSAqCi0JCSAqIEZvciB0aGlzIHJlYXNvbiB3 ZSB1c2UgMTUgY2hhcmFjdGVycy4gSXQgaXMgZW5vdWdoIGJ1dCBhbHNvIG1lYW5zCi0JCSAqIHRo YXQgaW4gdGhlIGZ1dHVyZSB3ZSBjYW4ndCBkZWNyZWFzZSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5U IGVhc2lseS4KLQkJICovCi0JCUFzc2VydChzZWdubyA+PSAwICYmIHNlZ25vIDw9IElOVDY0Q09O U1QoMHhGRkZGRkZGRkZGRkZGRkYpKTsKLQkJcmV0dXJuIHNucHJpbnRmKHBhdGgsIE1BWFBHUEFU SCwgIiVzLyUwMTUiIFBSSVg2NCwgY3RsLT5vcHRpb25zLkRpciwgc2Vnbm8pOwotCX0KLQllbHNl Ci0JewotCQkvKgotCQkgKiBEZXNwaXRlIHRoZSBmYWN0IHRoYXQgJTA0WCBmb3JtYXQgc3RyaW5n IGlzIHVzZWQgdXAgdG8gMjQgYml0Ci0JCSAqIGludGVnZXJzIGFyZSBhbGxvd2VkLiBTZWUgU2xy dUNvcnJlY3RTZWdtZW50RmlsZW5hbWVMZW5ndGgoKQotCQkgKi8KLQkJQXNzZXJ0KHNlZ25vID49 IDAgJiYgc2Vnbm8gPD0gSU5UNjRDT05TVCgweEZGRkZGRikpOwotCQlyZXR1cm4gc25wcmludGYo cGF0aCwgTUFYUEdQQVRILCAiJXMvJTA0WCIsIChjdGwpLT5vcHRpb25zLkRpciwKLQkJCQkJCSh1 bnNpZ25lZCBpbnQpIHNlZ25vKTsKLQl9CisJLyoKKwkgKiBXZSBjb3VsZCB1c2UgMTYgY2hhcmFj dGVycyBoZXJlIGJ1dCB0aGUgZGlzYWR2YW50YWdlIHdvdWxkIGJlIHRoYXQKKwkgKiB0aGUgU0xS VSBzZWdtZW50cyB3aWxsIGJlIGhhcmQgdG8gZGlzdGluZ3Vpc2ggZnJvbSBXQUwgc2VnbWVudHMu CisJICoKKwkgKiBGb3IgdGhpcyByZWFzb24gd2UgdXNlIDE1IGNoYXJhY3RlcnMuIEl0IGlzIGVu b3VnaCBidXQgYWxzbyBtZWFucworCSAqIHRoYXQgaW4gdGhlIGZ1dHVyZSB3ZSBjYW4ndCBkZWNy ZWFzZSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UIGVhc2lseS4KKwkgKi8KKwlBc3NlcnQoc2Vnbm8g Pj0gMCAmJiBzZWdubyA8PSBJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGRkZGKSk7CisJcmV0dXJu IHNucHJpbnRmKHBhdGgsIE1BWFBHUEFUSCwgIiVzLyUwMTUiIFBSSVg2NCwgY3RsLT5vcHRpb25z LkRpciwgc2Vnbm8pOwogfQogCiAvKgpAQCAtMTgwMSwzMCArMTc4MSw2IEBAIFNscnVTY2FuRGly Q2JEZWxldGVBbGwoU2xydURlc2MgKmN0bCwgY2hhciAqZmlsZW5hbWUsIGludDY0IHNlZ3BhZ2Us IHZvaWQgKmRhdGEpCiAJcmV0dXJuIGZhbHNlOwkJCQkvKiBrZWVwIGdvaW5nICovCiB9CiAKLS8q Ci0gKiBBbiBpbnRlcm5hbCBmdW5jdGlvbiB1c2VkIGJ5IFNscnVTY2FuRGlyZWN0b3J5KCkuCi0g KgotICogUmV0dXJucyB0cnVlIGlmIGEgZmlsZSB3aXRoIGEgbmFtZSBvZiBhIGdpdmVuIGxlbmd0 aCBtYXkgYmUgYSBjb3JyZWN0Ci0gKiBTTFJVIHNlZ21lbnQuCi0gKi8KLXN0YXRpYyBpbmxpbmUg Ym9vbAotU2xydUNvcnJlY3RTZWdtZW50RmlsZW5hbWVMZW5ndGgoU2xydURlc2MgKmN0bCwgc2l6 ZV90IGxlbikKLXsKLQlpZiAoY3RsLT5vcHRpb25zLmxvbmdfc2VnbWVudF9uYW1lcykKLQkJcmV0 dXJuIChsZW4gPT0gMTUpOwkJLyogc2VlIFNscnVGaWxlTmFtZSgpICovCi0JZWxzZQotCi0JCS8q Ci0JCSAqIENvbW1pdCA2MzhjZjA5ZTc2ZCBhbGxvd2VkIDUtY2hhcmFjdGVyIGxlbmd0aHMuIExh dGVyIGNvbW1pdAotCQkgKiA3M2M5ODZhZGRlNSBhbGxvd2VkIDYtY2hhcmFjdGVyIGxlbmd0aC4K LQkJICoKLQkJICogTm90ZTogVGhlcmUgaXMgYW4gb25nb2luZyBwbGFuIHRvIG1pZ3JhdGUgYWxs IFNMUlVzIHRvIDY0LWJpdCBwYWdlCi0JCSAqIG51bWJlcnMsIGFuZCB0aGUgY29ycmVzcG9uZGlu ZyAxNS1jaGFyYWN0ZXIgZmlsZSBuYW1lcywgd2hpY2ggbWF5Ci0JCSAqIGV2ZW50dWFsbHkgZGVw cmVjYXRlIHRoZSBzdXBwb3J0IGZvciA0LCA1LCBhbmQgNi1jaGFyYWN0ZXIgbmFtZXMuCi0JCSAq LwotCQlyZXR1cm4gKGxlbiA9PSA0IHx8IGxlbiA9PSA1IHx8IGxlbiA9PSA2KTsKLX0KLQogLyoK ICAqIFNjYW4gdGhlIFNpbXBsZUxydSBkaXJlY3RvcnkgYW5kIGFwcGx5IGEgY2FsbGJhY2sgdG8g ZWFjaCBmaWxlIGZvdW5kIGluIGl0LgogICoKQEAgLTE4NTYsNyArMTgxMiw3IEBAIFNscnVTY2Fu RGlyZWN0b3J5KFNscnVEZXNjICpjdGwsIFNscnVTY2FuQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQg KmRhdGEpCiAKIAkJbGVuID0gc3RybGVuKGNsZGUtPmRfbmFtZSk7CiAKLQkJaWYgKFNscnVDb3Jy ZWN0U2VnbWVudEZpbGVuYW1lTGVuZ3RoKGN0bCwgbGVuKSAmJgorCQlpZiAoKGxlbiA9PSAxNSkg JiYKIAkJCXN0cnNwbihjbGRlLT5kX25hbWUsICIwMTIzNDU2Nzg5QUJDREVGIikgPT0gbGVuKQog CQl7CiAJCQlzZWdubyA9IHN0cnRvaTY0KGNsZGUtPmRfbmFtZSwgTlVMTCwgMTYpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMKaW5kZXggYjc5ZTY0OGI4OTkuLjkxNmE0ZmI2YzBh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMKQEAgLTI0Niw3ICsyNDYsNiBA QCBTVUJUUkFOU1NobWVtUmVxdWVzdCh2b2lkICphcmcpCiAJU2ltcGxlTHJ1UmVxdWVzdCguZGVz YyA9ICZTdWJUcmFuc1NscnVEZXNjLAogCQkJCQkgLm5hbWUgPSAic3VidHJhbnNhY3Rpb24iLAog CQkJCQkgLkRpciA9ICJwZ19zdWJ0cmFucyIsCi0JCQkJCSAubG9uZ19zZWdtZW50X25hbWVzID0g ZmFsc2UsCiAKIAkJCQkJIC5uc2xvdHMgPSBTVUJUUkFOU1NobWVtQnVmZmVycygpLAogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvYXN5bmMuYwppbmRleCBkYjZhOWE2NTYxYi4uYWI0NzA4ZTc4NjYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5 bmMuYwpAQCAtODExLDkgKzgxMSw2IEBAIEFzeW5jU2htZW1SZXF1ZXN0KHZvaWQgKmFyZykKIAkJ CQkJIC5uYW1lID0gIm5vdGlmeSIsCiAJCQkJCSAuRGlyID0gInBnX25vdGlmeSIsCiAKLQkvKiBs b25nIHNlZ21lbnQgbmFtZXMgYXJlIHVzZWQgaW4gb3JkZXIgdG8gYXZvaWQgd3JhcGFyb3VuZCAq LwotCQkJCQkgLmxvbmdfc2VnbWVudF9uYW1lcyA9IHRydWUsCi0KIAkJCQkJIC5uc2xvdHMgPSBu b3RpZnlfYnVmZmVycywKIAogCQkJCQkgLnN5bmNfaGFuZGxlciA9IFNZTkNfSEFORExFUl9OT05F LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jCmluZGV4IDg5OWE0ZWYwNmU0Li4xZmZi ZTc3OTIzNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYwpAQCAtMTIxOSw3ICsx MjE5LDYgQEAgUHJlZGljYXRlTG9ja1NobWVtUmVxdWVzdCh2b2lkICphcmcpCiAJU2ltcGxlTHJ1 UmVxdWVzdCguZGVzYyA9ICZTZXJpYWxTbHJ1RGVzYywKIAkJCQkJIC5uYW1lID0gInNlcmlhbGl6 YWJsZSIsCiAJCQkJCSAuRGlyID0gInBnX3NlcmlhbCIsCi0JCQkJCSAubG9uZ19zZWdtZW50X25h bWVzID0gZmFsc2UsCiAKIAkJCQkJIC5uc2xvdHMgPSBzZXJpYWxpemFibGVfYnVmZmVycywKIApk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyBiL3NyYy9iaW4vcGdf dXBncmFkZS9wZ191cGdyYWRlLmMKaW5kZXggMjEyN2QyOTdiZmUuLmExYTBkMTc2NmY1IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3NyYy9iaW4vcGdf dXBncmFkZS9wZ191cGdyYWRlLmMKQEAgLTQxLDYgKzQxLDcgQEAKIAogI2luY2x1ZGUgInBvc3Rn cmVzX2ZlLmgiCiAKKyNpbmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlIDx0aW1lLmg+CiAKICNp bmNsdWRlICJhY2Nlc3MvbXVsdGl4YWN0LmgiCkBAIC02NCw2ICs2NSw4IEBAIHN0YXRpYyB2b2lk IHByZXBhcmVfbmV3X2NsdXN0ZXIodm9pZCk7CiBzdGF0aWMgdm9pZCBwcmVwYXJlX25ld19nbG9i YWxzKHZvaWQpOwogc3RhdGljIHZvaWQgY3JlYXRlX25ld19vYmplY3RzKHZvaWQpOwogc3RhdGlj IHZvaWQgY29weV94YWN0X3hsb2dfeGlkKHZvaWQpOworc3RhdGljIHZvaWQgZW5zdXJlX2xvbmdf c2xydV9zZWdtZW50X2ZpbGVuYW1lcyh2b2lkKTsKK3N0YXRpYyB2b2lkIHJlbmFtZV9zbHJ1X3Nl Z21lbnRzKGNvbnN0IGNoYXIgKmRpcm5hbWUpOwogc3RhdGljIHZvaWQgc2V0X2Zyb3plbnhpZHMo Ym9vbCBtaW5teGlkX29ubHkpOwogc3RhdGljIHZvaWQgbWFrZV9vdXRwdXRkaXJzKGNoYXIgKnBn ZGF0YSk7CiBzdGF0aWMgdm9pZCBzZXR1cChjaGFyICphcmd2MCk7CkBAIC0xNjIsNiArMTY1LDcg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAljb3B5X3hhY3RfeGxvZ194aWQoKTsK IAlzZXRfbmV3X2NsdXN0ZXJfY2hhcl9zaWduZWRuZXNzKCk7CisJZW5zdXJlX2xvbmdfc2xydV9z ZWdtZW50X2ZpbGVuYW1lcygpOwogCiAJLyogTmV3IG5vdyB1c2luZyB4aWRzIG9mIHRoZSBvbGQg c3lzdGVtICovCiAKQEAgLTkwMiw2ICs5MDYsNzUgQEAgY29weV94YWN0X3hsb2dfeGlkKHZvaWQp CiAJY2hlY2tfb2soKTsKIH0KIAorc3RhdGljIHZvaWQKK3JlbmFtZV9zbHJ1X3NlZ21lbnRzKGNv bnN0IGNoYXIgKmRpcm5hbWUpCit7CisJRElSCQkgICAqZGlyOworCXN0cnVjdCBkaXJlbnQgKmRl OworCWludAkJCWxlbjsKKwlpbnQ2NAkJc2Vnbm87CisJY2hhcgkJZGlyX3BhdGhbTUFYUEdQQVRI XTsKKwljaGFyCQlvbGRfcGF0aFtNQVhQR1BBVEhdOworCWNoYXIJCW5ld19wYXRoW01BWFBHUEFU SF07CisKKwlwcmVwX3N0YXR1cygiUmVuYW1pbmcgU0xSVSBzZWdtZW50cyBpbiAlcyIsIGRpcm5h bWUpOworCXNucHJpbnRmKGRpcl9wYXRoLCBzaXplb2YoZGlyX3BhdGgpLCAiJXMvJXMiLCBuZXdf Y2x1c3Rlci5wZ2RhdGEsIGRpcm5hbWUpOworCisJZGlyID0gb3BlbmRpcihkaXJfcGF0aCk7CisJ aWYgKGRpciA9PSBOVUxMKQorCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZGlyZWN0b3J5IFwi JXNcIjogJW0iLCBkaXJfcGF0aCk7CisKKwl3aGlsZSAoZXJybm8gPSAwLCAoZGUgPSByZWFkZGly KGRpcikpICE9IE5VTEwpCisJeworCQkvKgorCQkgKiBpZ25vcmUgJy4nLCAnLi4nIGFuZCBldmVy eXRoaW5nIGVsc2UgdGhhdCBkb2Vzbid0IGxvb2sgbGlrZSBhbiBTTFJVCisJCSAqIHNlZ21lbnQg d2l0aCBhIHNob3J0IGZpbGUgbmFtZQorCQkgKi8KKworCQlsZW4gPSBzdHJsZW4oZGUtPmRfbmFt ZSk7CisJCWlmIChsZW4gIT0gNCAmJiBsZW4gIT0gNSAmJiBsZW4gIT0gNikKKwkJCWNvbnRpbnVl OworCisJCWlmIChzdHJzcG4oZGUtPmRfbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSAhPSBsZW4p CisJCQljb250aW51ZTsKKworCQlzZWdubyA9IHN0cnRvaTY0KGRlLT5kX25hbWUsIE5VTEwsIDE2 KTsKKwkJc25wcmludGYobmV3X3BhdGgsIE1BWFBHUEFUSCwgIiVzLyUwMTUiIFBSSVg2NCwgZGly X3BhdGgsCisJCQkJICh1aW50NjQpIHNlZ25vKTsKKwkJc25wcmludGYob2xkX3BhdGgsIE1BWFBH UEFUSCwgIiVzLyVzIiwgZGlyX3BhdGgsIGRlLT5kX25hbWUpOworCisJCWlmIChwZ19tdl9maWxl KG9sZF9wYXRoLCBuZXdfcGF0aCkgIT0gMCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVuYW1l IGZpbGUgXCIlc1wiIHRvIFwiJXNcIjogJW0iLAorCQkJCQkgb2xkX3BhdGgsIG5ld19wYXRoKTsK Kwl9CisKKwlpZiAoZXJybm8pCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVhZCBkaXJlY3Rvcnkg XCIlc1wiOiAlbSIsIGRpcl9wYXRoKTsKKworCWlmIChjbG9zZWRpcihkaXIpKQorCQlwZ19mYXRh bCgiY291bGQgbm90IGNsb3NlIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgZGlyX3BhdGgpOworCisJ Y2hlY2tfb2soKTsKK30KKworc3RhdGljIHZvaWQKK2Vuc3VyZV9sb25nX3NscnVfc2VnbWVudF9m aWxlbmFtZXModm9pZCkKK3sKKwlpbnQJCQlpOworCXN0YXRpYyBjb25zdCBjaGFyICpkaXJzW10g PSB7CisJCSJwZ194YWN0IiwKKwkJInBnX2NvbW1pdF90cyIsCisJCSJwZ19tdWx0aXhhY3Qvb2Zm c2V0cyIsCisJCSJwZ19zdWJ0cmFucyIsCisJCSJwZ19zZXJpYWwiLAorCX07CisKKwlpZiAob2xk X2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0X3ZlciA+PSBTTFJVX1NFR19GSUxFTkFNRVNfQ0hBTkdF X0NBVF9WRVIpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCBzaXplb2YoZGlycykgLyBz aXplb2YoZGlyc1swXSk7IGkrKykKKwkJcmVuYW1lX3NscnVfc2VnbWVudHMoZGlyc1tpXSk7Cit9 CiAKIC8qCiAgKglzZXRfZnJvemVueGlkcygpCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAppbmRleCAx ZDc2N2JiZGEyZC4uMDcyNzhkYmM5MTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9w Z191cGdyYWRlLmgKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaApAQCAtMTM4 LDYgKzEzOCwxMiBAQCBleHRlcm4gY2hhciAqb3V0cHV0X2ZpbGVzW107CiAgKi8KICNkZWZpbmUg REVGQVVMVF9DSEFSX1NJR05FRE5FU1NfQ0FUX1ZFUiAyMDI1MDIyMTIKIAorLyoKKyAqIGNoYW5n ZSBvZiBTTFJVIHNlZ21lbnQgZmlsZW5hbWVzIGxlbmd0aCBpbiBQRzE5CisgKiBUT0RPIEZJWE1F IENIQU5HRSBUTyBUSEUgQUNUVUFMIFZBTFVFIEJFRk9SRSBDT01NSVRUSU5HCisgKi8KKyNkZWZp bmUgU0xSVV9TRUdfRklMRU5BTUVTX0NIQU5HRV9DQVRfVkVSIDIwMjYwMTA2MQorCiAvKgogICog RWFjaCByZWxhdGlvbiBpcyByZXByZXNlbnRlZCBieSBhIHJlbGluZm8gc3RydWN0dXJlLgogICov CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwM19jb3JydXB0aW9uLnBs IGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbAppbmRleCA0MDVl YTc5M2I2OC4uMzczMDA2MzRiZmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3QvMDAzX2NvcnJ1cHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNf Y29ycnVwdGlvbi5wbApAQCAtMjU5LDcgKzI1OSw3IEBAIHN1YiBtdXRpbGF0ZV9leHRyYV90YWJs ZXNwYWNlX2ZpbGUKIHN1YiBtdXRpbGF0ZV9taXNzaW5nX2ZpbGUKIHsKIAlteSAoJGJhY2t1cF9w YXRoKSA9IEBfOwotCW15ICRwYXRobmFtZSA9ICIkYmFja3VwX3BhdGgvcGdfeGFjdC8wMDAwIjsK KwlteSAkcGF0aG5hbWUgPSAiJGJhY2t1cF9wYXRoL3BnX3hhY3QvMDAwMDAwMDAwMDAwMDAwIjsK IAl1bmxpbmsoJHBhdGhuYW1lKSB8fCBkaWUgIiRwYXRobmFtZTogJCEiOwogCXJldHVybjsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggYi9zcmMvaW5jbHVkZS9hY2Nl c3Mvc2xydS5oCmluZGV4IGI0YWRiMTc4OWM3Li44MmE4MDJjMjBkOSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3NscnUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oCkBA IC0xNDUsMTQgKzE0NSw2IEBAIHR5cGVkZWYgc3RydWN0IFNscnVPcHRzCiAJICovCiAJY29uc3Qg Y2hhciAqRGlyOwogCi0JLyoKLQkgKiBJZiB0cnVlLCB1c2UgbG9uZyBzZWdtZW50IGZpbGUgbmFt ZXMuICBPdGhlcndpc2UsIHVzZSBzaG9ydCBmaWxlIG5hbWVzLgotCSAqCi0JICogRm9yIGRldGFp bHMgYWJvdXQgdGhlIGZpbGUgbmFtZSBmb3JtYXQsIHNlZSBTbHJ1RmlsZU5hbWUoKS4KLQkgKi8K LQlib29sCQlsb25nX3NlZ21lbnRfbmFtZXM7Ci0KLQogCS8qCiAJICogRGVjaWRlIHdoZXRoZXIg YSBwYWdlIGlzICJvbGRlciIgZm9yIHRydW5jYXRpb24gYW5kIGFzIGEgaGludCBmb3IKIAkgKiBl dmljdGluZyBwYWdlcyBpbiBMUlUgb3JkZXIuICBSZXR1cm4gdHJ1ZSBpZiBldmVyeSBlbnRyeSBv ZiB0aGUgZmlyc3QKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3QvMDAy X211bHRpeGFjdF93cmFwYXJvdW5kLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdC8w MDJfbXVsdGl4YWN0X3dyYXBhcm91bmQucGwKaW5kZXggMzc5M2FjMWM0NTAuLjhiNDYwMWFiOGUx IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90LzAwMl9tdWx0aXhhY3Rf d3JhcGFyb3VuZC5wbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90LzAwMl9tdWx0 aXhhY3Rfd3JhcGFyb3VuZC5wbApAQCAtNDAsNyArNDAsNyBAQCBteSAkc2xydV9wYWdlc19wZXJf c2VnbWVudCA9ICQxOwogbXkgJG11bHRpeGFjdF9vZmZzZXRzX3Blcl9wYWdlID0gJGJsY2tzeiAv IDg7ICAgIyBzaXplb2YoTXVsdGlYYWN0T2Zmc2V0KSA9PSA4CiBteSAkc2Vnbm8gPQogICBpbnQo MHhGRkZGRkZGOCAvICRtdWx0aXhhY3Rfb2Zmc2V0c19wZXJfcGFnZSAvICRzbHJ1X3BhZ2VzX3Bl cl9zZWdtZW50KTsKLW15ICRzbHJ1X2ZpbGUgPSBzcHJpbnRmKCclcy9wZ19tdWx0aXhhY3Qvb2Zm c2V0cy8lMDRYJywgJG5vZGVfcGdkYXRhLCAkc2Vnbm8pOworbXkgJHNscnVfZmlsZSA9IHNwcmlu dGYoJyVzL3BnX211bHRpeGFjdC9vZmZzZXRzLyUwMTVYJywgJG5vZGVfcGdkYXRhLCAkc2Vnbm8p Owogb3BlbiBteSAkZmgsICI+IiwgJHNscnVfZmlsZQogICBvciBkaWUgImNvdWxkIG5vdCBvcGVu IFwiJHNscnVfZmlsZVwiOiAkISI7CiBiaW5tb2RlICRmaDsKQEAgLTUwLDggKzUwLDggQEAgc3lz d3JpdGUoJGZoLCAiXDAiIHggJGJ5dGVzX3Blcl9zZWcpID09ICRieXRlc19wZXJfc2VnCiBjbG9z ZSAkZmg7CiAKICMgcmVtb3ZlIG9sZCBmaWxlCi11bmxpbmsoIiRub2RlX3BnZGF0YS9wZ19tdWx0 aXhhY3Qvb2Zmc2V0cy8wMDAwIikKLSAgb3IgZGllICJjb3VsZCBub3QgdW5saW5rIFwiJG5vZGVf cGdkYXRhL3BnX211bHRpeGFjdC9vZmZzZXRzLzAwMDBcIjogJCEiOwordW5saW5rKCIkbm9kZV9w Z2RhdGEvcGdfbXVsdGl4YWN0L29mZnNldHMvMDAwMDAwMDAwMDAwMDAwIikKKyAgb3IgZGllICJj b3VsZCBub3QgdW5saW5rIFwiJG5vZGVfcGdkYXRhL3BnX211bHRpeGFjdC9vZmZzZXRzLzAwMDAw MDAwMDAwMDAwMFwiOiAkISI7CiAKICMgQ29uc3VtZSBtdWx0aXhpZHMgdG8gd3JhcCBhcm91bmQu ICBXZSBzdGFydCBhdCAweEZGRkZGRkY4LCBzbyBhZnRlcgogIyBjcmVhdGluZyAxNiBtdWx0aXhh Y3RzIHdlIHNob3VsZCBkZWZpbml0ZWx5IGhhdmUgd3JhcHBlZCBhcm91bmQuCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUuYyBiL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9zbHJ1L3Rlc3Rfc2xydS5jCmluZGV4IDQwZWZmZmRiZjYyLi5kNGI2OTZkMTBmZiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMKKysrIGIv c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMKQEAgLTIzNywxMiArMjM3LDYg QEAgdGVzdF9zbHJ1X3NobWVtX3JlcXVlc3Qodm9pZCAqYXJnKQogCQkJCQkgLm5hbWUgPSAiVGVz dFNMUlUiLAogCQkJCQkgLkRpciA9IFRlc3RTbHJ1RGlyLAogCi0JLyoKLQkgKiBTaG9ydCBzZWdt ZW50cyBuYW1lcyBhcmUgd2VsbCB0ZXN0ZWQgZWxzZXdoZXJlIHNvIGluIHRoaXMgdGVzdCB3ZSBh cmUKLQkgKiBmb2N1c2luZyBvbiBsb25nIG5hbWVzLgotCSAqLwotCQkJCQkgLmxvbmdfc2VnbWVu dF9uYW1lcyA9IHRydWUsCi0KIAkJCQkJIC5uc2xvdHMgPSBOVU1fVEVTVF9CVUZGRVJTLAogCQkJ CQkgLm5sc25zID0gMCwKIAotLSAKMi40My4wCgo= --000000000000ae1a2d064ef019de--