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 1vhyM1-00BQLY-1Y for pgsql-hackers@arkaria.postgresql.org; Mon, 19 Jan 2026 23:08: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 1vhyLz-00EkWo-33 for pgsql-hackers@arkaria.postgresql.org; Mon, 19 Jan 2026 23:08: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 1vhyLz-00EkWg-12 for pgsql-hackers@lists.postgresql.org; Mon, 19 Jan 2026 23:08:11 +0000 Received: from mail-qt1-x836.google.com ([2607:f8b0:4864:20::836]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vhyLx-001JoY-0N for pgsql-hackers@lists.postgresql.org; Mon, 19 Jan 2026 23:08:10 +0000 Received: by mail-qt1-x836.google.com with SMTP id d75a77b69052e-5014b5d8551so1086461cf.0 for ; Mon, 19 Jan 2026 15:08:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768864089; cv=none; d=google.com; s=arc-20240605; b=Tvo4DwQ1cKPUd8dAlI1jJ6J2+RPe/VFyFK8uWpz3ecUS3uYIg9AS9+9Clwxo/RUhkY p2esllj75+dtX81q4Pd2QqzuhhCu5xRfn+yye1CqOgIdfxf36HHtBVHW5Gg6xwthKB9C QIZaBYp45Cw2hcT4RUWNOnHjjxSFcnrvw+J5Xkb3U0nib+OLwqK+jdneb3vK04PZlawq IX419aZNgCuPfAVrnavoLDWQGzPW3AZ6Y+ZrYLsT1iGaNnt1OQ9ecvb7dQTJ63dfl0vB sBCIlZJhC/F/ZFjO1vxpoKO5t8sVZILQgY8DFVkG04O06WEJUY61tjL/AgO0kezftcJq sBAQ== 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=gfisJ/HbkGNYpGnpYy6jeFNFY/pnKwzqnbbzdW+aPUA=; fh=TTn127exIJn28RKVUiEZ17/cVMLJVmOi2KAs6v8nbe0=; b=Gj/VFnW/KnMUMjoiFilMYOdjWl83DhU+pwRYujvZdzsh6QzFoTPeoRLBTGDfLmBRSl 6QBeNeVAsWgHvLgeumhLwSJpftnPBuw4CP0WVk5AsB4am1YLWAWNsOkxrHTxiRsOLAmJ m/ml4ZlM/nfUq4FUkiqazx1y2aUdgAYgTwuKXUKLuarZOFpKhd8lr/rynO1aAar3BSne n4vZaSCDBfOo1RJFdMej7OalH+1V8sHEo+SAapOCn2cW0dcGS5TY1ZRVgQjI2Vjp0t78 Brdv8+Rzz0P0OcWj4qVoX0c0kX8bDnDNGJVbNaIcMrnGw3uiC7M07sf707VvIVKeLXc+ 2EFQ==; 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=google.com; s=20230601; t=1768864089; x=1769468889; 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=gfisJ/HbkGNYpGnpYy6jeFNFY/pnKwzqnbbzdW+aPUA=; b=kZytJTsXBWur+x3g6tz+FPaKFDraNh/jXVLXWk3zFHDYM5erhBuVrmKgnemrSB/oNh LY13q8Z0N/uYuD1/UyMEj2PEqD1Y2kznN4jyqUUtmJDXXiir4tQQEk6+jdLPz9Y979Kk 7puMjbcP7mS9AXTHhZDiXdaL+LasuJXgZP9DpX+goQ6dsEKd9ROv1DZcbo+u0dmsi2A7 2nDQWb6DTDM76YBbT6HVLSG9Y4dVVJF9Q6ZHNnjLG1GiQq9k9AA14bBfbrKLb9ew1z+L wGpUwCF/FOzHxR22CxOv6wNDp8sFqtSnHmYINSXCNpcOKBtG3YUJzC7xxk2qUtaz17bu ezaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768864089; x=1769468889; 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=gfisJ/HbkGNYpGnpYy6jeFNFY/pnKwzqnbbzdW+aPUA=; b=w4I2v9Y8UjxfPLxklLSy5BH94kFmY2JkYh5ANIUrCvt58ZbPyoQZuK3j0An427zkBO n0QtFuojwLVtVTvXarMEQTEXM6XhWyYSMMs+QSq/D8fEc4Cog7+DbzvohfML/S5+dbkl ztR53B9vvRkTlGnjXZ475fiDE8d1/7lmQKK0fZ54mNNUy9uQkabHrO4OdJncYqcEZgOK +qmBubYlDr7RHrbv9BPVK1Wj73eothtdoaa/RVJuU3Qoc1h0GFEVKyVzKjME1hpEAgWS rwXB4+k48+nvH8FJVJFkEaTsRsr8UZYFIT5HOHEK15d9w/z2jYazLWXndHQyR5ZC5ISg Ov6A== X-Forwarded-Encrypted: i=1; AJvYcCXOAQTXb4u3BVRut3Q0Go9rm7MrKbZmqiD5MhI4prQzPdrabTE8YgHlpDGwWAIoWV9vQ7ZiXuugQSdjuVQ8@lists.postgresql.org X-Gm-Message-State: AOJu0YzYv8DhNGDAPnP8cFNt7Y7x+d1psIbs8MD/dllywKfm0VvAFwt3 3QGwTYo1o1D6T4/JvkPDP2RCx11OVYgMuJMqw9oaUqoCeT84WZsEqcH4JV89DV7Tq9TYj/t9eI0 eFplDaB141pxDdYzTaFYcvrhbOkw18KjgghnSZFp7 X-Gm-Gg: AY/fxX5prUfScgGrO0lsZQeZixNmwhDo1Ez21iS0z5IOLuILBUWiYymDtsjmoGxSLOc Tr8uviimSYgHd6IQGLcZjh0pp5E0xmXgroR9OJKpGyJocJeZxCJ1hZtEfZkHNE3YGeFiC1m3Y8g M7dzkHdQsWptQ7p5xCVAvPHLMuBqpuMp3Z7ykcyMdEHQGNXjIb5K0YpgtJmLineFIFQPixT/Yci 8vUDOiMJIrSzQl7NtvWfIvzqajvjg+tsSQjWrkmEDMglPl4agdPhPD6VxAj2CukhYFT1/PJ X-Received: by 2002:a05:622a:178c:b0:501:5180:3c90 with SMTP id d75a77b69052e-502b070c38dmr22486621cf.15.1768864088672; Mon, 19 Jan 2026 15:08:08 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Hannu Krosing Date: Tue, 20 Jan 2026 00:07:56 +0100 X-Gm-Features: AZwV_QjrGRWLl2baFhEjFE03VnpGJlI43it6KUKW5wsJ1JhulhIZLBnoZj1UPsw Message-ID: Subject: Re: Patch: dumping tables data in multiple chunks in pg_dump To: Zsolt Parragi Cc: David Rowley , Ashutosh Bapat , PostgreSQL Hackers , Nathan Bossart Content-Type: multipart/mixed; boundary="000000000000aa3b810648c5c339" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000aa3b810648c5c339 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks Zsolt I changed it to use the configured BLCKSZ in attached patch. But you may be right that current_setting('block_size')::int is the better way to go as we are interested in the page size at the target database, not what the pg_sump was compiled with I'll wait for other feedback as well and then send the next patc with chang= es On Mon, Jan 19, 2026 at 10:15=E2=80=AFPM Zsolt Parragi wrote: > > Hello > > pgdump.c:7174 > > + appendPQExpBufferStr(query, "pg_relation_size(c.tableoid)/8192 AS > relpages, "); > > Shouldn't this be something like > > + appendPQExpBufferStr(query, > "pg_relation_size(c.oid)/current_setting('block_size')::int AS > relpages, "); > > instead? --000000000000aa3b810648c5c339 Content-Type: application/x-patch; name="v8-0001-changed-flag-name-to-max-table-segment-pages.patch" Content-Disposition: attachment; filename="v8-0001-changed-flag-name-to-max-table-segment-pages.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mklrz0ml0 RnJvbSA2NTc3Yjk2NGE0YjRiODVhYTUxY2M3YmExMmY3ODVlZDU1Njc4OTRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5udSBLcm9zaW5nIDxoYW5udWtAZ29vZ2xlLmNvbT4KRGF0 ZTogTW9uLCAxOSBKYW4gMjAyNiAyMzo1Njo0OSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjhdICog Y2hhbmdlZCBmbGFnIG1uYW1lIHRvIG1heC10YWJsZS1zZWdtZW50LXBhZ2VzICogYWRkZWQKIGNo ZWNrIGZvciBhbW5hbWUgPSAiaGVhcCIgKiBhZGRlZCBzaW1wbGUgY2h1bmtlZCBkdW1wIGFuZCBy ZXN0b3JlIHRlc3QgKgogc3dpdGNoZWQgdG8gdXNpbmcgb2YgcGdfcmVsYXRpb25fc2l6ZSgpL0JM Q0tTWiB3aGVuIC0tbWF4LXRhYmxlLXNlZ21lbnQtcGFnZXMKIGlzIHNldAoKKiBhZGRlZCBhIFdB Uk5JTkcgd2l0aCBjb3VudCBhbmQgdGFibGUgZGF0YSBoYXNoIHRvIHNvdXJjZSBhbmQgY2h1bmtl ZCByZXN0b3JlIGRhdGFiYXNlCi0tLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAg ICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgfCAx NzIgKysrKysrKysrKysrKysrKystLS0tLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAg ICAgICAgICAgICAgfCAgIDUgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDA0X3BnX2R1bXBfcGFyYWxs ZWwucGwgfCAgNTIgKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxOTMgaW5zZXJ0aW9ucygrKSwg MzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5o IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGQ5MDQxZGFkNzIwLi4yOGRmMThm ZDk5MyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtMTc4LDYgKzE3OCw3IEBAIHR5cGVkZWYgc3RydWN0 IF9kdW1wT3B0aW9ucwogCWJvb2wJCWFjbHNTa2lwOwogCWNvbnN0IGNoYXIgKmxvY2tXYWl0VGlt ZW91dDsKIAlpbnQJCQlkdW1wX2luc2VydHM7CS8qIDAgPSBDT1BZLCBvdGhlcndpc2Ugcm93cyBw ZXIgSU5TRVJUICovCisJaW50CQkJbWF4X3RhYmxlX3NlZ21lbnRfcGFnZXM7IC8qIGNodW5rIHdo ZW4gcmVscGFnZXMgaXMgYWJvdmUgdGhpcyAqLwogCiAJLyogZmxhZ3MgZm9yIHZhcmlvdXMgY29t bWFuZC1saW5lIGxvbmcgb3B0aW9ucyAqLwogCWludAkJCWRpc2FibGVfZG9sbGFyX3F1b3Rpbmc7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgYi9zcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXggNGE2M2Y3MzkyYWUuLjcwZTRk YTlhOTcwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0xNTQsNiArMTU0 LDcgQEAgSW5pdER1bXBPcHRpb25zKER1bXBPcHRpb25zICpvcHRzKQogCW9wdHMtPmR1bXBTY2hl bWEgPSB0cnVlOwogCW9wdHMtPmR1bXBEYXRhID0gdHJ1ZTsKIAlvcHRzLT5kdW1wU3RhdGlzdGlj cyA9IGZhbHNlOworCW9wdHMtPm1heF90YWJsZV9zZWdtZW50X3BhZ2VzID0gVUlOVDMyX01BWDsg LyogPT0gSW52YWxpZEJsb2NrTnVtYmVyLCBkaXNhYmxlIGNodW5raW5nIGJ5IGRlZmF1bHQgKi8K IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDY4N2RjOThlNDZkLi43NDdiMzk2Yzc4OCAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCkBAIC01MzksNiArNTM5LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJ CXsiZXhjbHVkZS1leHRlbnNpb24iLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgMTd9LAogCQl7 InNlcXVlbmNlLWRhdGEiLCBub19hcmd1bWVudCwgJmRvcHQuc2VxdWVuY2VfZGF0YSwgMX0sCiAJ CXsicmVzdHJpY3Qta2V5IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDI1fSwKKwkJeyJtYXgt dGFibGUtc2VnbWVudC1wYWdlcyIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAyNn0sCiAKIAkJ e05VTEwsIDAsIE5VTEwsIDB9CiAJfTsKQEAgLTgwMyw2ICs4MDQsMTMgQEAgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAJCQkJZG9wdC5yZXN0cmljdF9rZXkgPSBwZ19zdHJkdXAob3B0YXJn KTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSAyNjoJCQkvKiBodWdlIHRhYmxlIGNodW5rIHBhZ2Vz ICovCisJCQkJaWYgKCFvcHRpb25fcGFyc2VfaW50KG9wdGFyZywgIi0tbWF4LXRhYmxlLXNlZ21l bnQtcGFnZXMiLCAxLCBJTlQzMl9NQVgsCisJCQkJCQkJCQkgICZkb3B0Lm1heF90YWJsZV9zZWdt ZW50X3BhZ2VzKSkKKwkJCQkJZXhpdF9uaWNlbHkoMSk7CisJCQkJcGdfbG9nX3dhcm5pbmcoIkNI VU5LSU5HOiBzZXQgZG9wdC5tYXhfdGFibGVfc2VnbWVudF9wYWdlcyB0byBbJXVdIiwoQmxvY2tO dW1iZXIpIGRvcHQubWF4X3RhYmxlX3NlZ21lbnRfcGFnZXMpOworCQkJCWJyZWFrOworCiAJCQlk ZWZhdWx0OgogCQkJCS8qIGdldG9wdF9sb25nIGFscmVhZHkgZW1pdHRlZCBhIGNvbXBsYWludCAq LwogCQkJCXBnX2xvZ19lcnJvcl9oaW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZv cm1hdGlvbi4iLCBwcm9nbmFtZSk7CkBAIC0xMzcyLDYgKzEzODAsOSBAQCBoZWxwKGNvbnN0IGNo YXIgKnByb2duYW1lKQogCXByaW50ZihfKCIgIC0tZXh0cmEtZmxvYXQtZGlnaXRzPU5VTSAgICAg b3ZlcnJpZGUgZGVmYXVsdCBzZXR0aW5nIGZvciBleHRyYV9mbG9hdF9kaWdpdHNcbiIpKTsKIAlw cmludGYoXygiICAtLWZpbHRlcj1GSUxFTkFNRSAgICAgICAgICAgIGluY2x1ZGUgb3IgZXhjbHVk ZSBvYmplY3RzIGFuZCBkYXRhIGZyb20gZHVtcFxuIgogCQkJICIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYmFzZWQgb24gZXhwcmVzc2lvbnMgaW4gRklMRU5BTUVcbiIpKTsKKwlwcmlu dGYoXygiICAtLW1heC10YWJsZS1zZWdtZW50LXBhZ2VzPU5VTVBBR0VTXG4iCisJCSAgICAgIiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIgb2YgbWFpbiB0YWJsZSBwYWdlcyBh Ym92ZSB3aGljaCBkYXRhIGlzIFxuIgorCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29waWVkIG91dCBpbiBjaHVua3MsIGFsc28gZGV0ZXJtaW5lcyB0aGUgY2h1bmsgc2l6ZVxu IikpOwogCXByaW50ZihfKCIgIC0taWYtZXhpc3RzICAgICAgICAgICAgICAgICAgdXNlIElGIEVY SVNUUyB3aGVuIGRyb3BwaW5nIG9iamVjdHNcbiIpKTsKIAlwcmludGYoXygiICAtLWluY2x1ZGUt Zm9yZWlnbi1kYXRhPVBBVFRFUk5cbiIKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluY2x1ZGUgZGF0YSBvZiBmb3JlaWduIHRhYmxlcyBvbiBmb3JlaWduXG4iCkBAIC0yNDEy LDcgKzI0MjMsNyBAQCBkdW1wVGFibGVEYXRhX2NvcHkoQXJjaGl2ZSAqZm91dCwgY29uc3Qgdm9p ZCAqZGNvbnRleHQpCiAJICogYSBmaWx0ZXIgY29uZGl0aW9uIHdhcyBzcGVjaWZpZWQuICBGb3Ig b3RoZXIgY2FzZXMgYSBzaW1wbGUgQ09QWQogCSAqIHN1ZmZpY2VzLgogCSAqLwotCWlmICh0ZGlu Zm8tPmZpbHRlcmNvbmQgfHwgdGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJM RSkKKwlpZiAodGRpbmZvLT5maWx0ZXJjb25kIHx8IHRkaW5mby0+Y2h1bmtpbmcgfHwgdGJpbmZv LT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKIAl7CiAJCS8qIFRlbXBvcmFyeSBh bGxvd3MgdG8gYWNjZXNzIHRvIGZvcmVpZ24gdGFibGVzIHRvIGR1bXAgZGF0YSAqLwogCQlpZiAo dGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKQEAgLTI0MjgsOSArMjQz OSwyMyBAQCBkdW1wVGFibGVEYXRhX2NvcHkoQXJjaGl2ZSAqZm91dCwgY29uc3Qgdm9pZCAqZGNv bnRleHQpCiAJCWVsc2UKIAkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICIqICIpOwogCi0JCWFw cGVuZFBRRXhwQnVmZmVyKHEsICJGUk9NICVzICVzKSBUTyBzdGRvdXQ7IiwKKwkJYXBwZW5kUFFF eHBCdWZmZXIocSwgIkZST00gJXMgJXMiLAogCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZSh0 YmluZm8pLAogCQkJCQkJICB0ZGluZm8tPmZpbHRlcmNvbmQgPyB0ZGluZm8tPmZpbHRlcmNvbmQg OiAiIik7CisJCWlmICh0ZGluZm8tPmNodW5raW5nKQorCQl7CisJCQlpZih0ZGluZm8tPmVuZFBh Z2UgIT0gSW52YWxpZEJsb2NrTnVtYmVyKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIlcyBj dGlkIEJFVFdFRU4gJygldSwxKScgQU5EICcoJXUsMzIwMDApJyIsIC8qIHRoZXJlIGlzIG5vICgq LDApIHR1cGxlICovCisJCQkJCQkJCSB0ZGluZm8tPmZpbHRlcmNvbmQ/IiBBTkQgIjoiIFdIRVJF ICIsCisJCQkJCQkJCSB0ZGluZm8tPnN0YXJ0UGFnZSwgdGRpbmZvLT5lbmRQYWdlKTsKKwkJCWVs c2UKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiJXMgY3RpZCA+PSAnKCV1LDEpJyIsIC8qIHRo ZXJlIGlzIG5vICgqLDApIHR1cGxlICovCisJCQkJCQkJCSB0ZGluZm8tPmZpbHRlcmNvbmQ/IiBB TkQgIjoiIFdIRVJFICIsCisJCQkJCQkJCSB0ZGluZm8tPnN0YXJ0UGFnZSk7CisJCQlwZ19sb2df d2FybmluZygiQ0hVTktJTkc6IHBhZ2VzIFsldToldV0iLHRkaW5mby0+c3RhcnRQYWdlLCB0ZGlu Zm8tPmVuZFBhZ2UpOworCQl9CisJCQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiKSBUTyBzdGRv dXQ7Iik7CiAJfQogCWVsc2UKIAl7CkBAIC0yNDM4LDYgKzI0NjMsOSBAQCBkdW1wVGFibGVEYXRh X2NvcHkoQXJjaGl2ZSAqZm91dCwgY29uc3Qgdm9pZCAqZGNvbnRleHQpCiAJCQkJCQkgIGZtdFF1 YWxpZmllZER1bXBhYmxlKHRiaW5mbyksCiAJCQkJCQkgIGNvbHVtbl9saXN0KTsKIAl9CisKKwlw Z19sb2dfd2FybmluZygiQ0hVTktJTkc6IGRhdGEgcXVlcnk6ICVzIiwgcS0+ZGF0YSk7CisJCiAJ cmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHEtPmRhdGEsIFBHUkVTX0NPUFlfT1VUKTsKIAlQ UWNsZWFyKHJlcyk7CiAJZGVzdHJveVBRRXhwQnVmZmVyKGNsaXN0QnVmKTsKQEAgLTI5MzMsNDIg KzI5NjEsMTAwIEBAIGR1bXBUYWJsZURhdGEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVEYXRh SW5mbyAqdGRpbmZvKQogCXsKIAkJVG9jRW50cnkgICAqdGU7CiAKLQkJdGUgPSBBcmNoaXZlRW50 cnkoZm91dCwgdGRpbmZvLT5kb2JqLmNhdElkLCB0ZGluZm8tPmRvYmouZHVtcElkLAotCQkJCQkJ ICBBUkNISVZFX09QVFMoLnRhZyA9IHRiaW5mby0+ZG9iai5uYW1lLAotCQkJCQkJCQkJICAgLm5h bWVzcGFjZSA9IHRiaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwKLQkJCQkJCQkJCSAg IC5vd25lciA9IHRiaW5mby0+cm9sbmFtZSwKLQkJCQkJCQkJCSAgIC5kZXNjcmlwdGlvbiA9ICJU QUJMRSBEQVRBIiwKLQkJCQkJCQkJCSAgIC5zZWN0aW9uID0gU0VDVElPTl9EQVRBLAotCQkJCQkJ CQkJICAgLmNyZWF0ZVN0bXQgPSB0ZERlZm4sCi0JCQkJCQkJCQkgICAuY29weVN0bXQgPSBjb3B5 U3RtdCwKLQkJCQkJCQkJCSAgIC5kZXBzID0gJih0YmluZm8tPmRvYmouZHVtcElkKSwKLQkJCQkJ CQkJCSAgIC5uRGVwcyA9IDEsCi0JCQkJCQkJCQkgICAuZHVtcEZuID0gZHVtcEZuLAotCQkJCQkJ CQkJICAgLmR1bXBBcmcgPSB0ZGluZm8pKTsKLQotCQkvKgotCQkgKiBTZXQgdGhlIFRvY0VudHJ5 J3MgZGF0YUxlbmd0aCBpbiBjYXNlIHdlIGFyZSBkb2luZyBhIHBhcmFsbGVsIGR1bXAKLQkJICog YW5kIHdhbnQgdG8gb3JkZXIgZHVtcCBqb2JzIGJ5IHRhYmxlIHNpemUuICBXZSBjaG9vc2UgdG8g bWVhc3VyZQotCQkgKiBkYXRhTGVuZ3RoIGluIHRhYmxlIHBhZ2VzIChpbmNsdWRpbmcgVE9BU1Qg cGFnZXMpIGR1cmluZyBkdW1wLCBzbwotCQkgKiBubyBzY2FsaW5nIGlzIG5lZWRlZC4KLQkJICoK LQkJICogSG93ZXZlciwgcmVscGFnZXMgaXMgZGVjbGFyZWQgYXMgImludGVnZXIiIGluIHBnX2Ns YXNzLCBhbmQgaGVuY2UKLQkJICogYWxzbyBpbiBUYWJsZUluZm8sIGJ1dCBpdCdzIHJlYWxseSBC bG9ja051bWJlciBhL2svYSB1bnNpZ25lZCBpbnQuCi0JCSAqIENhc3Qgc28gdGhhdCB3ZSBnZXQg dGhlIHJpZ2h0IGludGVycHJldGF0aW9uIG9mIHRhYmxlIHNpemVzCi0JCSAqIGV4Y2VlZGluZyBJ TlRfTUFYIHBhZ2VzLgorCQkvKiBjaHVua2luZyB3b3JrcyBvZmYgcmVscGFnZXMsIHdoaWNoIG1h eSBiZSBzbGlnaHRseSBvZmYKKwkJICogYnV0IGlzIHRoZSBiZXN0IHdlIGhhdmUgd2l0aG91dCBk b2luZyBvdXIgb3duIHBhZ2UgY291bnQKKwkJICogaXQgc2hvdWxkIGJlIGVub3VnaCBmb3IgdHlw aWNhbCB1c2UgY2FzZSBvZiBodWdlIHRhYmxlcyB3aGljaCAKKwkJICogc2hvdWxkIGhhdmUgdGhl aXIgcmVscGFnZXMgdXBkYXRlZCBieSBhdXRvdmFjdXVtCisJCSAqIAorCQkgKiBGb3Igbm93IHdl IG9ubHkgZG8gY3Vua2luZyB3aGVuIHRhYmxlIGFjY2VzcyBtZXRob2QgaXMgaGVhcAorCQkgKiB3 ZSBtYXkgYWRkIG90aGVyIGNodW5raW5nIG1ldGhvZHMgbGF0ZXIuIAogCQkgKi8KLQkJdGUtPmRh dGFMZW5ndGggPSAoQmxvY2tOdW1iZXIpIHRiaW5mby0+cmVscGFnZXM7Ci0JCXRlLT5kYXRhTGVu Z3RoICs9IChCbG9ja051bWJlcikgdGJpbmZvLT50b2FzdHBhZ2VzOworCQlpZiAoKEJsb2NrTnVt YmVyKSB0YmluZm8tPnJlbHBhZ2VzIDwgZG9wdC0+bWF4X3RhYmxlX3NlZ21lbnRfcGFnZXMgfHwg CisJCQlzdHJjbXAodGJpbmZvLT5hbW5hbWUsICJoZWFwIikgIT0gMCkKKwkJeworCQkJdGUgPSBB cmNoaXZlRW50cnkoZm91dCwgdGRpbmZvLT5kb2JqLmNhdElkLCB0ZGluZm8tPmRvYmouZHVtcElk LAorCQkJCQkJCUFSQ0hJVkVfT1BUUygudGFnID0gdGJpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJ CQkJLm5hbWVzcGFjZSA9IHRiaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwKKwkJCQkJ CQkJCQkub3duZXIgPSB0YmluZm8tPnJvbG5hbWUsCisJCQkJCQkJCQkJLmRlc2NyaXB0aW9uID0g IlRBQkxFIERBVEEiLAorCQkJCQkJCQkJCS5zZWN0aW9uID0gU0VDVElPTl9EQVRBLAorCQkJCQkJ CQkJCS5jcmVhdGVTdG10ID0gdGREZWZuLAorCQkJCQkJCQkJCS5jb3B5U3RtdCA9IGNvcHlTdG10 LAorCQkJCQkJCQkJCS5kZXBzID0gJih0YmluZm8tPmRvYmouZHVtcElkKSwKKwkJCQkJCQkJCQku bkRlcHMgPSAxLAorCQkJCQkJCQkJCS5kdW1wRm4gPSBkdW1wRm4sCisJCQkJCQkJCQkJLmR1bXBB cmcgPSB0ZGluZm8pKTsKIAotCQkvKgotCQkgKiBJZiBwZ29mZl90IGlzIG9ubHkgMzIgYml0cyB3 aWRlLCB0aGUgYWJvdmUgcmVmaW5lbWVudCBpcyB1c2VsZXNzLAotCQkgKiBhbmQgaW5zdGVhZCB3 ZSdkIGJldHRlciB3b3JyeSBhYm91dCBpbnRlZ2VyIG92ZXJmbG93LiAgQ2xhbXAgdG8KLQkJICog SU5UX01BWCBpZiB0aGUgY29ycmVjdCByZXN1bHQgZXhjZWVkcyB0aGF0LgotCQkgKi8KLQkJaWYg KHNpemVvZih0ZS0+ZGF0YUxlbmd0aCkgPT0gNCAmJgotCQkJKHRiaW5mby0+cmVscGFnZXMgPCAw IHx8IHRiaW5mby0+dG9hc3RwYWdlcyA8IDAgfHwKLQkJCSB0ZS0+ZGF0YUxlbmd0aCA8IDApKQot CQkJdGUtPmRhdGFMZW5ndGggPSBJTlRfTUFYOworCQkJLyoKKwkJCSogU2V0IHRoZSBUb2NFbnRy eSdzIGRhdGFMZW5ndGggaW4gY2FzZSB3ZSBhcmUgZG9pbmcgYSBwYXJhbGxlbCBkdW1wCisJCQkq IGFuZCB3YW50IHRvIG9yZGVyIGR1bXAgam9icyBieSB0YWJsZSBzaXplLiAgV2UgY2hvb3NlIHRv IG1lYXN1cmUKKwkJCSogZGF0YUxlbmd0aCBpbiB0YWJsZSBwYWdlcyAoaW5jbHVkaW5nIFRPQVNU IHBhZ2VzKSBkdXJpbmcgZHVtcCwgc28KKwkJCSogbm8gc2NhbGluZyBpcyBuZWVkZWQuCisJCQkq CisJCQkqIEhvd2V2ZXIsIHJlbHBhZ2VzIGlzIGRlY2xhcmVkIGFzICJpbnRlZ2VyIiBpbiBwZ19j bGFzcywgYW5kIGhlbmNlCisJCQkqIGFsc28gaW4gVGFibGVJbmZvLCBidXQgaXQncyByZWFsbHkg QmxvY2tOdW1iZXIgYS9rL2EgdW5zaWduZWQgaW50LgorCQkJKiBDYXN0IHNvIHRoYXQgd2UgZ2V0 IHRoZSByaWdodCBpbnRlcnByZXRhdGlvbiBvZiB0YWJsZSBzaXplcworCQkJKiBleGNlZWRpbmcg SU5UX01BWCBwYWdlcy4KKwkJCSovCisJCQl0ZS0+ZGF0YUxlbmd0aCA9IChCbG9ja051bWJlcikg dGJpbmZvLT5yZWxwYWdlczsKKwkJCXRlLT5kYXRhTGVuZ3RoICs9IChCbG9ja051bWJlcikgdGJp bmZvLT50b2FzdHBhZ2VzOworCisJCQkvKgorCQkJKiBJZiBwZ29mZl90IGlzIG9ubHkgMzIgYml0 cyB3aWRlLCB0aGUgYWJvdmUgcmVmaW5lbWVudCBpcyB1c2VsZXNzLAorCQkJKiBhbmQgaW5zdGVh ZCB3ZSdkIGJldHRlciB3b3JyeSBhYm91dCBpbnRlZ2VyIG92ZXJmbG93LiAgQ2xhbXAgdG8KKwkJ CSogSU5UX01BWCBpZiB0aGUgY29ycmVjdCByZXN1bHQgZXhjZWVkcyB0aGF0LgorCQkJKi8KKwkJ CWlmIChzaXplb2YodGUtPmRhdGFMZW5ndGgpID09IDQgJiYKKwkJCQkodGJpbmZvLT5yZWxwYWdl cyA8IDAgfHwgdGJpbmZvLT50b2FzdHBhZ2VzIDwgMCB8fAorCQkJCXRlLT5kYXRhTGVuZ3RoIDwg MCkpCisJCQkJdGUtPmRhdGFMZW5ndGggPSBJTlRfTUFYOworCQl9CisJCWVsc2UKKwkJeworCQkJ QmxvY2tOdW1iZXIgY3VycmVudF9jaHVua19zdGFydCA9IDA7CisJCQlQUUV4cEJ1ZmZlciBjaHVu a19kZXNjID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwkJCQorCQkJcGdfbG9nX3dhcm5pbmcoIkNI VU5LSU5HOiB0b2MgZm9yIGNodW5rZWQgcmVscGFnZXMgWyV1XSIsKEJsb2NrTnVtYmVyKSB0Ymlu Zm8tPnJlbHBhZ2VzKTsKKworCQkJd2hpbGUgKGN1cnJlbnRfY2h1bmtfc3RhcnQgPCAoQmxvY2tO dW1iZXIpIHRiaW5mby0+cmVscGFnZXMpCisJCQl7CisJCQkJVGFibGVEYXRhSW5mbyAqY2h1bmtf dGRpbmZvID0gKFRhYmxlRGF0YUluZm8gKikgcGdfbWFsbG9jKHNpemVvZihUYWJsZURhdGFJbmZv KSk7CisKKwkJCQltZW1jcHkoY2h1bmtfdGRpbmZvLCB0ZGluZm8sIHNpemVvZihUYWJsZURhdGFJ bmZvKSk7CisJCQkJQXNzaWduRHVtcElkKCZjaHVua190ZGluZm8tPmRvYmopOworCQkJCS8vYWRk T2JqZWN0RGVwZW5kZW5jeSgmY2h1bmtfdGRpbmZvLT5kb2JqLCB0YmluZm8tPmRvYmouZHVtcElk KTsgLyogZG8gd2UgbmVlZCB0aGlzIGhlcmUgKi8KKwkJCQljaHVua190ZGluZm8tPmNodW5raW5n ID0gdHJ1ZTsKKwkJCQljaHVua190ZGluZm8tPnN0YXJ0UGFnZSA9IGN1cnJlbnRfY2h1bmtfc3Rh cnQ7CisJCQkJY2h1bmtfdGRpbmZvLT5lbmRQYWdlID0gY3VycmVudF9jaHVua19zdGFydCArIGRv cHQtPm1heF90YWJsZV9zZWdtZW50X3BhZ2VzIC0gMTsKKworCQkJCXBnX2xvZ193YXJuaW5nKCJD SFVOS0lORzogdG9jIGZvciBwYWdlcyBbJXU6JXVdIixjaHVua190ZGluZm8tPnN0YXJ0UGFnZSwg Y2h1bmtfdGRpbmZvLT5lbmRQYWdlKTsKKwkJCQkKKwkJCQljdXJyZW50X2NodW5rX3N0YXJ0ICs9 IGRvcHQtPm1heF90YWJsZV9zZWdtZW50X3BhZ2VzOworCQkJCWlmIChjdXJyZW50X2NodW5rX3N0 YXJ0ID49IChCbG9ja051bWJlcikgdGJpbmZvLT5yZWxwYWdlcykKKwkJCQkJY2h1bmtfdGRpbmZv LT5lbmRQYWdlID0gVUlOVDMyX01BWDsgLyogbGFzdCBjaHVuayBpcyBmb3IgImFsbCB0aGUgcmVz dCIgKi8KKworCQkJCXByaW50ZlBRRXhwQnVmZmVyKGNodW5rX2Rlc2MsICJUQUJMRSBEQVRBIChw YWdlcyAldToldSkiLCBjaHVua190ZGluZm8tPnN0YXJ0UGFnZSwgY2h1bmtfdGRpbmZvLT5lbmRQ YWdlKTsKKworCQkJCXRlID0gQXJjaGl2ZUVudHJ5KGZvdXQsIGNodW5rX3RkaW5mby0+ZG9iai5j YXRJZCwgY2h1bmtfdGRpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJCQlBUkNISVZFX09QVFMoLnRh ZyA9IHRiaW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCQkJCS5uYW1lc3BhY2UgPSB0YmluZm8tPmRv YmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQkJCQkJLm93bmVyID0gdGJpbmZvLT5yb2xu YW1lLAorCQkJCQkJCQkJCS5kZXNjcmlwdGlvbiA9IGNodW5rX2Rlc2MtPmRhdGEsCisJCQkJCQkJ CQkJLnNlY3Rpb24gPSBTRUNUSU9OX0RBVEEsCisJCQkJCQkJCQkJLmNyZWF0ZVN0bXQgPSB0ZERl Zm4sCisJCQkJCQkJCQkJLmNvcHlTdG10ID0gY29weVN0bXQsCisJCQkJCQkJCQkJLmRlcHMgPSAm KHRiaW5mby0+ZG9iai5kdW1wSWQpLAorCQkJCQkJCQkJCS5uRGVwcyA9IDEsCisJCQkJCQkJCQkJ LmR1bXBGbiA9IGR1bXBGbiwKKwkJCQkJCQkJCQkuZHVtcEFyZyA9IGNodW5rX3RkaW5mbykpOwor CisJCQkJdGUtPmRhdGFMZW5ndGggPSBkb3B0LT5tYXhfdGFibGVfc2VnbWVudF9wYWdlczsKKwkJ CQkvKiBsZXQncyBhc3N1bWUgdG9hc3QgcGFnZXMgZGlzdHJpYnV0ZSBldmVubHkgYW1vbmcgY2h1 bmtzICovCisJCQkJdGUtPmRhdGFMZW5ndGggKz0gKG9mZl90KWRvcHQtPm1heF90YWJsZV9zZWdt ZW50X3BhZ2VzICogdGJpbmZvLT50b2FzdHBhZ2VzIC8gdGJpbmZvLT5yZWxwYWdlczsKKwkJCX0K KworCQkJZGVzdHJveVBRRXhwQnVmZmVyKGNodW5rX2Rlc2MpOworCQl9CiAJfQogCiAJZGVzdHJv eVBRRXhwQnVmZmVyKGNvcHlCdWYpOwpAQCAtMzA5Miw2ICszMTc4LDkgQEAgbWFrZVRhYmxlRGF0 YUluZm8oRHVtcE9wdGlvbnMgKmRvcHQsIFRhYmxlSW5mbyAqdGJpbmZvKQogCXRkaW5mby0+ZG9i ai5uYW1lc3BhY2UgPSB0YmluZm8tPmRvYmoubmFtZXNwYWNlOwogCXRkaW5mby0+dGR0YWJsZSA9 IHRiaW5mbzsKIAl0ZGluZm8tPmZpbHRlcmNvbmQgPSBOVUxMOwkvKiBtaWdodCBnZXQgc2V0IGxh dGVyICovCisJdGRpbmZvLT5jaHVua2luZyA9IGZhbHNlOyAvKiBkZWZhdWx0cyAqLworCXRkaW5m by0+c3RhcnRQYWdlID0gMDsKKwl0ZGluZm8tPmVuZFBhZ2UgPSBJbnZhbGlkQmxvY2tOdW1iZXI7 CiAJYWRkT2JqZWN0RGVwZW5kZW5jeSgmdGRpbmZvLT5kb2JqLCB0YmluZm8tPmRvYmouZHVtcElk KTsKIAogCS8qIEEgVGFibGVEYXRhSW5mbyBjb250YWlucyBkYXRhLCBvZiBjb3Vyc2UgKi8KQEAg LTcyNTQsOCArNzM0MywxNSBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJs ZXMpCiAJCQkJCQkgImMucmVsbmFtZXNwYWNlLCBjLnJlbGtpbmQsIGMucmVsdHlwZSwgIgogCQkJ CQkJICJjLnJlbG93bmVyLCAiCiAJCQkJCQkgImMucmVsY2hlY2tzLCAiCi0JCQkJCQkgImMucmVs aGFzaW5kZXgsIGMucmVsaGFzcnVsZXMsIGMucmVscGFnZXMsICIKLQkJCQkJCSAiYy5yZWx0dXBs ZXMsIGMucmVsYWxsdmlzaWJsZSwgIik7CisJCQkJCQkgImMucmVsaGFzaW5kZXgsIGMucmVsaGFz cnVsZXMsICIpOworCisJLyogdXNlIHJlYWwgcmVsYXRpb24gc2l6ZSBpZiBjaHVua2luZyBpcyBy ZXF1ZXN0ZWQgKi8KKwlpZihkb3B0LT5tYXhfdGFibGVfc2VnbWVudF9wYWdlcyAhPSBJbnZhbGlk QmxvY2tOdW1iZXIpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAicGdfcmVsYXRpb25fc2l6 ZShjLnRhYmxlb2lkKS8lZCBBUyByZWxwYWdlcywgIiwgQkxDS1NaKTsKKwllbHNlCisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiYy5yZWxwYWdlcywgIik7CisKKwlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxdWVyeSwgImMucmVsdHVwbGVzLCBjLnJlbGFsbHZpc2libGUsICIpOwogCiAJaWYg KGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTgwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgImMucmVsYWxsZnJvemVuLCAiKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDRjNGIxNGU1ZmM3Li5k ZGFmMzQxYmIzYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC0xNiw2ICsxNiw3IEBACiAKICNpbmNsdWRlICJw Z19iYWNrdXAuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX2QuaCIKKyNpbmNs dWRlICJzdG9yYWdlL2Jsb2NrLmgiCiAKIAogI2RlZmluZSBvaWRjbXAoeCx5KSAoICgoeCkgPCAo eSkgPyAtMSA6ICgoeCkgPiAoeSkpID8gIDEgOiAwKSApCkBAIC00MTMsNiArNDE0LDEwIEBAIHR5 cGVkZWYgc3RydWN0IF90YWJsZURhdGFJbmZvCiAJRHVtcGFibGVPYmplY3QgZG9iajsKIAlUYWJs ZUluZm8gICp0ZHRhYmxlOwkJLyogbGluayB0byB0YWJsZSB0byBkdW1wICovCiAJY2hhcgkgICAq ZmlsdGVyY29uZDsJCS8qIFdIRVJFIGNvbmRpdGlvbiB0byBsaW1pdCByb3dzIGR1bXBlZCAqLwor CWJvb2wgCQljaHVua2luZzsKKwlCbG9ja051bWJlcglzdGFydFBhZ2U7CQkvKiBzdGFydGluZyB0 YWJsZSBwYWdlICovCisJQmxvY2tOdW1iZXIJZW5kUGFnZTsJCS8qIGVuZGluZyB0YWJsZSBwYWdl IGZvciBwYWdlLXJhbmdlIGR1bXAsCisJICAgICAgICAgICAgICAgICAgICAJCSAqIG1vc3RseSBz dGFydFBhZ2UrbWF4X3RhYmxlX3NlZ21lbnRfcGFnZXMgKi8KIH0gVGFibGVEYXRhSW5mbzsKIAog dHlwZWRlZiBzdHJ1Y3QgX2luZHhJbmZvCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8w MDRfcGdfZHVtcF9wYXJhbGxlbC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwNF9wZ19kdW1wX3Bh cmFsbGVsLnBsCmluZGV4IDczOGYzNGIxYzFiLi45MDk0MzUyZTI5ZiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDA0X3BnX2R1bXBfcGFyYWxsZWwucGwKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3QvMDA0X3BnX2R1bXBfcGFyYWxsZWwucGwKQEAgLTExLDYgKzExLDcgQEAgdXNlIFRlc3Q6 Ok1vcmU7CiBteSAkZGJuYW1lMSA9ICdyZWdyZXNzaW9uX3NyYyc7CiBteSAkZGJuYW1lMiA9ICdy ZWdyZXNzaW9uX2Rlc3QxJzsKIG15ICRkYm5hbWUzID0gJ3JlZ3Jlc3Npb25fZGVzdDInOworbXkg JGRibmFtZTQgPSAncmVncmVzc2lvbl9kZXN0Myc7CiAKIG15ICRub2RlID0gUG9zdGdyZVNRTDo6 VGVzdDo6Q2x1c3Rlci0+bmV3KCdtYWluJyk7CiAkbm9kZS0+aW5pdDsKQEAgLTIxLDYgKzIyLDcg QEAgbXkgJGJhY2t1cGRpciA9ICRub2RlLT5iYWNrdXBfZGlyOwogJG5vZGUtPnJ1bl9sb2coWyAn Y3JlYXRlZGInLCAkZGJuYW1lMSBdKTsKICRub2RlLT5ydW5fbG9nKFsgJ2NyZWF0ZWRiJywgJGRi bmFtZTIgXSk7CiAkbm9kZS0+cnVuX2xvZyhbICdjcmVhdGVkYicsICRkYm5hbWUzIF0pOworJG5v ZGUtPnJ1bl9sb2coWyAnY3JlYXRlZGInLCAkZGJuYW1lNCBdKTsKIAogJG5vZGUtPnNhZmVfcHNx bCgKIAkkZGJuYW1lMSwKQEAgLTQ0LDYgKzQ2LDE4IEBAIGNyZWF0ZSB0YWJsZSB0aHRfcDEgcGFy dGl0aW9uIG9mIHRodCBmb3IgdmFsdWVzIHdpdGggKG1vZHVsdXMgMywgcmVtYWluZGVyIDApOwog Y3JlYXRlIHRhYmxlIHRodF9wMiBwYXJ0aXRpb24gb2YgdGh0IGZvciB2YWx1ZXMgd2l0aCAobW9k dWx1cyAzLCByZW1haW5kZXIgMSk7CiBjcmVhdGUgdGFibGUgdGh0X3AzIHBhcnRpdGlvbiBvZiB0 aHQgZm9yIHZhbHVlcyB3aXRoIChtb2R1bHVzIDMsIHJlbWFpbmRlciAyKTsKIGluc2VydCBpbnRv IHRodCBzZWxlY3QgKHglMTApOjp0ZXh0OjpkaWdpdCwgeCBmcm9tIGdlbmVyYXRlX3Nlcmllcygx LDEwMDApIHg7CisKKy0tIHJhaXNlIHdhcm5pbmcgc28gSSBjYW4gY2hlY2sgaW4gLmxvZyBpZiBk YXRhIHdhcyBjb3JyZWN0CitETyBcJFwkCitERUNMQVJFCisgICAgdGhhc2hfcmVjIFJFQ09SRDsK K0JFR0lOCisgICAgU0VMRUNUICd0cGxhaW4nLCBjb3VudCgqKSwgc3VtKGhhc2h0ZXh0KHQ6OnRl eHQpKSBhcyB0YWJsZWhhc2ggCisJICBJTlRPIHRoYXNoX3JlYworCSAgRlJPTSB0cGxhaW4gQVMg dDsKKyAgICBSQUlTRSBXQVJOSU5HICd0aGFzaDogJScsIHRoYXNoX3JlYzsKK0VORDsKK1wkXCQ7 CiAJfSk7CiAKICRub2RlLT5jb21tYW5kX29rKApAQCAtODcsNCArMTAxLDQyIEBAICRub2RlLT5j b21tYW5kX29rKAogCV0sCiAJJ3BhcmFsbGVsIHJlc3RvcmUgYXMgaW5zZXJ0cycpOwogCiskbm9k ZS0+Y29tbWFuZF9vaygKKwlbCisJCSdwZ19kdW1wJywKKwkJJy0tZm9ybWF0JyA9PiAnZGlyZWN0 b3J5JywKKwkJJy0tbWF4LXRhYmxlLXNlZ21lbnQtcGFnZXMnID0+IDUsCisJCSctLW5vLXN5bmMn LAorCQknLS1qb2JzJyA9PiAyLAorCQknLS1maWxlJyA9PiAiJGJhY2t1cGRpci9kdW1wMyIsCisJ CSRub2RlLT5jb25uc3RyKCRkYm5hbWUxKSwKKwldLAorCSdwYXJhbGxlbCBkdW1wIHdpdGggY2h1 bmtzIG9mIGZpdmUgaGVhcCBwYWdlcycpOworCiskbm9kZS0+Y29tbWFuZF9vaygKKwlbCisJCSdw Z19yZXN0b3JlJywgJy0tdmVyYm9zZScsCisJCSctLWRibmFtZScgPT4gJG5vZGUtPmNvbm5zdHIo JGRibmFtZTQpLAorCQknLS1qb2JzJyA9PiAzLAorCQkiJGJhY2t1cGRpci9kdW1wMyIsCisJXSwK KwkncGFyYWxsZWwgcmVzdG9yZSB3aXRoIGNodW5rcyBvZiBmaXZlIGhlYXAgcGFnZXMnKTsKKwor JG5vZGUtPnNhZmVfcHNxbCgKKwkkZGJuYW1lNCwKKwlxcXsKKworLS0gcmFpc2Ugd2FybmluZyBz byBJIGNhbiBjaGVjayBpbiAubG9nIGlmIGRhdGEgd2FzIGNvcnJlY3QKK0RPIFwkXCQKK0RFQ0xB UkUKKyAgICB0aGFzaF9yZWMgUkVDT1JEOworQkVHSU4KKyAgICBTRUxFQ1QgJ3RwbGFpbicsIGNv dW50KCopLCBzdW0oaGFzaHRleHQodDo6dGV4dCkpIGFzIHRhYmxlaGFzaCAKKwkgIElOVE8gdGhh c2hfcmVjCisJICBGUk9NIHRwbGFpbiBBUyB0OworICAgIFJBSVNFIFdBUk5JTkcgJ3RoYXNoIGFm dGVyIHBhcmFsbGVsIGNodW5rZWQgcmVzdG9yZTogJScsIHRoYXNoX3JlYzsKK0VORDsKK1wkXCQ7 CisJfSk7CisKIGRvbmVfdGVzdGluZygpOwotLSAKMi40My4wCgo= --000000000000aa3b810648c5c339--