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 1wBGjD-000tfL-2N for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Apr 2026 18:37:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wBGjC-00EC9g-0L for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Apr 2026 18:37:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wBGjB-00EC9Y-2a for pgsql-hackers@lists.postgresql.org; Fri, 10 Apr 2026 18:37:14 +0000 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wBGjA-00000000Osc-31jA for pgsql-hackers@lists.postgresql.org; Fri, 10 Apr 2026 18:37:14 +0000 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-43cf906b007so1469198f8f.0 for ; Fri, 10 Apr 2026 11:37:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775846232; x=1776451032; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=bE2JBqObGasCp20Ww05uQycGfvfMtr1tp9VrGDR+knY=; b=m608qVUnYE9HNvNNmlvsmRAxyb9Z9cixl1GoLoY/cSzTFDQX0joKgAt0Kg+N+KhD5S XocB+yHkWmq3oT2c5tXPauInmA3C5jSTolkOwOrKB2UoBZZlkVop5QOQIImA8s9foBFO GtRQhMpP2mJMw9i034i5cXilEaOse9RAtRjAP9laJ0OimenRwxfu9nSdDmn1RHtIhy+0 sKh0naLD+F+pld6lssmkQ8xdp9xkJu5X+n2JzoCnKH5tZ120aaUBGisqosU2DvI2FW+Z Ut5gOL5OB9dSr0llrvLnf5CPrj3jjCB1FUOeZzQfok9QADaryNxP5cF9ISjA/Ttr2HEF L1lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775846232; x=1776451032; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=bE2JBqObGasCp20Ww05uQycGfvfMtr1tp9VrGDR+knY=; b=OJs3Fx6bJoJH+vVLfI3HSu4FGOKXhZ9UwzzGvy9ROXLh8Kvlr1uxh+R3STQdsupYvR fGepaJxDl4gqSybR1RkBz2+qqQp/23/Rt5tCUfLf8UCV8vCIS+p8tpnYCpVmHjqqYT6V Fzeq5p10QhHjDgMkqqP5/Spo5xtrKEg7Zs7iSA/CyJ8ulK39xRw9k+sz4UiuQ0alMZM9 VzTF8RgdqlNsUzEO78xThBPydjJrtCl21qLm6vD2g9AvfYNx1VEYYY/bDjztmKVuctZZ pvWrmLwvhsQRWrSpnN4uh7Y2k2vJWzzOOPfcE2NJHDlN9MyIsZ7s3l6+EoQd2UoPv2zg JZWw== X-Forwarded-Encrypted: i=1; AJvYcCVMebkc3ZO2ZIcueQDjPmUUAAz0tzVwK9pDnRumX7DyFY9pMD4cTZMC0+d2e9u8p52OcVTCo5e6EMPXgFX4@lists.postgresql.org X-Gm-Message-State: AOJu0YwnFG42yQMnFvxfvCkhe2Jle+W06p67lSM2h6vKIeOoZtHt/Fcf V86xHBqXxp0vLs47S0rmLmkMD6g0riXJ75r0iCUuOeQTs8aBiiO4qIap X-Gm-Gg: AeBDietK5vGwG/PDoj84T2EiOG518QE6OH9YZ3STArPAQyzw+jJni6UocyzuTegYzJf 8niWQSO6U2v1VSiDxcoaON0BETIgXNKcVYSe8YYSVQq3j7yVhhU5Y2OW+WLvrqbHHkMCRqgKO+1 pNzvzagL7IIhWZdEWLsnguXT9HQkkXtNxp9y8C+2JhE8exE0ySuIA1OCtcQqZMPmDSUW4tLoImm uJyM9lAkgWwN17uOV0bFs+RBa5woYQJc04mocb5H1U8xE4UdDhjENiWd4Sx//UvEIm0bBqXIQwI N3iuC3BJLriGQASdDn5pVGBKHsuWJtNlAxX1RZVCtq3a6EM+vgUvZsQWo1MXW94PCafguhNe8Ga tRbZmryzs/fR0GUaM8EoYnuqVmnC2atvorei6xVfe0777itkbuuDc7bmBC199bHZEKlPHgqZPAf A8GE1PbwnEv+40c4Esq5OodleHkIUtBnnY2Q8fen+cmgd9OV+B0V8aT97sPkOFBcc0kKbaY4X+5 szxzbi7HEFyRopXimDOIKy+Sw3IR8DK/O4Q8g== X-Received: by 2002:adf:e650:0:b0:43d:67d1:2025 with SMTP id ffacd0b85a97d-43d67d12140mr2751294f8f.27.1775846231677; Fri, 10 Apr 2026 11:37:11 -0700 (PDT) Received: from [192.168.4.157] (host-2-98-198-223.as13285.net. [2.98.198.223]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d63deba9esm9768093f8f.10.2026.04.10.11.37.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 10 Apr 2026 11:37:11 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------NEZcQrpHcu0s5S08Wr8ybOVn" Message-ID: Date: Fri, 10 Apr 2026 19:37:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: parallel data loading for pgbench -i To: Heikki Linnakangas , lakshmi Cc: "Hayato Kuroda (Fujitsu)" , PostgreSQL Hackers , "tomas@vondra.me" References: <4c1d0b97-a5f8-472c-afdd-bdeb09b93f33@gmail.com> <10868918-cdf9-49dc-99af-8e8ccd6e368c@gmail.com> Content-Language: en-GB From: Mircea Cadariu In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------NEZcQrpHcu0s5S08Wr8ybOVn Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 07/04/2026 10:00, Heikki Linnakangas wrote: > > This all makes more sense in the partitioned case. Perhaps we should > parallelize only when partitioned are used, and use only one thread > per partition. > Thanks for having a look. I attached v3 that parallelizes only the partitioned case, one thread per partition. Results: patch: pgbench -i -s 100 --partitions 10 done in 12.63 s (drop tables 0.05 s, create tables 0.01 s, client-side generate 5.98 s, vacuum 1.63 s, primary keys 4.96 s). master: pgbench -i -s 100 --partitions 10 done in 29.29 s (drop tables 0.00 s, create tables 0.02 s, client-side generate 16.31 s, vacuum 7.78 s, primary keys 5.18 s). -- Thanks, Mircea Cadariu --------------NEZcQrpHcu0s5S08Wr8ybOVn Content-Type: text/plain; charset=UTF-8; name="v3-0001-pgbench-parallelize-account-loading-for-range-partit.patch" Content-Disposition: attachment; filename*0="v3-0001-pgbench-parallelize-account-loading-for-range-partit"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSBkZDRmM2UyZDdkYmFlNmIwMDgxNTdmNDkyODI4NzA1NmZkMGE4MmI5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaXJjZWEgQ2FkYXJpdSA8Y2FkYXJpdS5taXJjZWFA Z21haWwuY29tPgpEYXRlOiBXZWQsIDggQXByIDIwMjYgMTU6MzU6MzEgKzAxMDAKU3ViamVj dDogW1BBVENIXSBwZ2JlbmNoOiBwYXJhbGxlbGl6ZSBhY2NvdW50IGxvYWRpbmcgZm9yIHJh bmdlLXBhcnRpdGlvbmVkCiB0YWJsZXMKCldoZW4gaW5pdGlhbGl6aW5nIHdpdGggcmFuZ2Ug cGFydGl0aW9uaW5nLCBzcGF3biBvbmUgd29ya2VyIHRocmVhZCBwZXIKcGFydGl0aW9uIHRv IGxvYWQgcGdiZW5jaF9hY2NvdW50cyBpbiBwYXJhbGxlbC4gIEVhY2ggd29ya2VyIG9wZW5z IGl0cwpvd24gY29ubmVjdGlvbiwgdHJ1bmNhdGVzIGl0cyBwYXJ0aXRpb24gd2l0aGluIGEg dHJhbnNhY3Rpb24sIGFuZCBsb2FkcwppdHMgcm93cyB1c2luZyBDT1BZIEZSRUVaRSwgd2hp Y2ggYXZvaWRzIGEgc2VwYXJhdGUgZnJlZXplIHBhc3MgZHVyaW5nCnRoZSBzdWJzZXF1ZW50 IHZhY3V1bSBzdGVwLgoKTm9uLXBhcnRpdGlvbmVkIGFuZCBoYXNoLXBhcnRpdGlvbmVkIHRh YmxlcyBhcmUgdW5hZmZlY3RlZCBhbmQgY29udGludWUKdG8gdXNlIHNlcmlhbCBsb2FkaW5n LgotLS0KIHNyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMgICAgICAgICAgICAgICAgICAgIHwg MTIwICsrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vcGdiZW5jaC90LzAwMV9wZ2JlbmNo X3dpdGhfc2VydmVyLnBsIHwgIDE4ICsrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnYmVuY2gv cGdiZW5jaC5jIGIvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYwppbmRleCAxZGFlOTE4Y2Mw Li5mNTM3ZDQ2MzkzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jCisr KyBiL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMKQEAgLTUxNDMsNiArNTE0MywxMDYgQEAg aW5pdFBvcHVsYXRlVGFibGUoUEdjb25uICpjb24sIGNvbnN0IGNoYXIgKnRhYmxlLCBpbnQ2 NCBiYXNlLAogCXRlcm1QUUV4cEJ1ZmZlcigmc3FsKTsKIH0KIAorc3RhdGljIHZvaWQKK2lu aXRQb3B1bGF0ZVBhcnRpdGlvbihQR2Nvbm4gKmNvbiwgaW50IHBhcnRubykKK3sKKwlpbnQ2 NAkJdG90YWxfcm93cyA9IChpbnQ2NCkgbmFjY291bnRzICogc2NhbGU7CisJaW50NjQJCXBh cnRfc2l6ZSA9ICh0b3RhbF9yb3dzICsgcGFydGl0aW9ucyAtIDEpIC8gcGFydGl0aW9uczsK KwlpbnQ2NAkJc3RhcnRfcm93ID0gKGludDY0KSAocGFydG5vIC0gMSkgKiBwYXJ0X3NpemU7 CisJaW50NjQJCWVuZF9yb3cgPSAocGFydG5vID09IHBhcnRpdGlvbnMpID8gdG90YWxfcm93 cyA6IChpbnQ2NCkgcGFydG5vICogcGFydF9zaXplOworCWNoYXIJCXRhYmxlX25hbWVbTkFN RURBVEFMRU5dOworCWNoYXIJCXRydW5jYXRlX3N0bXRbMjU2XTsKKwljaGFyCQljb3B5X3N0 bXRbMjU2XTsKKwlpbnQJCQluOworCVBHcmVzdWx0ICAgKnJlczsKKwlQUUV4cEJ1ZmZlckRh dGEgc3FsOworCWludDY0CQlyb3c7CisKKwlzbnByaW50Zih0YWJsZV9uYW1lLCBzaXplb2Yo dGFibGVfbmFtZSksICJwZ2JlbmNoX2FjY291bnRzXyVkIiwgcGFydG5vKTsKKwlzbnByaW50 Zih0cnVuY2F0ZV9zdG10LCBzaXplb2YodHJ1bmNhdGVfc3RtdCksICJ0cnVuY2F0ZSAlcyIs IHRhYmxlX25hbWUpOworCisJaWYgKFBRc2VydmVyVmVyc2lvbihjb24pID49IDE0MDAwMCkK KwkJbiA9IHBnX3NucHJpbnRmKGNvcHlfc3RtdCwgc2l6ZW9mKGNvcHlfc3RtdCksCisJCQkJ CQkiY29weSAlcyBmcm9tIHN0ZGluIHdpdGggKGZyZWV6ZSBvbikiLCB0YWJsZV9uYW1lKTsK KwllbHNlCisJCW4gPSBwZ19zbnByaW50Zihjb3B5X3N0bXQsIHNpemVvZihjb3B5X3N0bXQp LAorCQkJCQkJImNvcHkgJXMgZnJvbSBzdGRpbiIsIHRhYmxlX25hbWUpOworCisJaWYgKG4g Pj0gc2l6ZW9mKGNvcHlfc3RtdCkpCisJCXBnX2ZhdGFsKCJpbnZhbGlkIGJ1ZmZlciBzaXpl OiBtdXN0IGJlIGF0IGxlYXN0ICVkIGNoYXJhY3RlcnMgbG9uZyIsIG4pOworCisJZXhlY3V0 ZVN0YXRlbWVudChjb24sIHRydW5jYXRlX3N0bXQpOworCisJcmVzID0gUFFleGVjKGNvbiwg Y29weV9zdG10KTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT1BZX0lO KQorCQlwZ19mYXRhbCgiY291bGQgbm90IHN0YXJ0IENPUFkgZm9yIHBhcnRpdGlvbiAlZDog JXMiLAorCQkJCSBwYXJ0bm8sIFBRZXJyb3JNZXNzYWdlKGNvbikpOworCVBRY2xlYXIocmVz KTsKKworCWluaXRQUUV4cEJ1ZmZlcigmc3FsKTsKKworCWZvciAocm93ID0gc3RhcnRfcm93 OyByb3cgPCBlbmRfcm93OyByb3crKykKKwl7CisJCWluaXRBY2NvdW50KCZzcWwsIHJvdyk7 CisJCWlmIChQUXB1dENvcHlEYXRhKGNvbiwgc3FsLmRhdGEsIHNxbC5sZW4pIDw9IDApCisJ CQlwZ19mYXRhbCgiUFFwdXRDb3B5RGF0YSBmYWlsZWQgZm9yIHBhcnRpdGlvbiAlZCIsIHBh cnRubyk7CisJfQorCisJaWYgKFBRcHV0Q29weUVuZChjb24sIE5VTEwpIDw9IDApCisJCXBn X2ZhdGFsKCJQUXB1dENvcHlFbmQgZmFpbGVkIGZvciBwYXJ0aXRpb24gJWQiLCBwYXJ0bm8p OworCisJcmVzID0gUFFnZXRSZXN1bHQoY29uKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVz KSAhPSBQR1JFU19DT01NQU5EX09LKQorCQlwZ19mYXRhbCgiQ09QWSBmYWlsZWQgZm9yIHBh cnRpdGlvbiAlZDogJXMiLCBwYXJ0bm8sIFBRZXJyb3JNZXNzYWdlKGNvbikpOworCVBRY2xl YXIocmVzKTsKKworCXRlcm1QUUV4cEJ1ZmZlcigmc3FsKTsKK30KKworc3RhdGljIFRIUkVB RF9GVU5DX1JFVFVSTl9UWVBFIFRIUkVBRF9GVU5DX0NDCitpbml0UGFydGl0aW9uV29ya2Vy VGhyZWFkKHZvaWQgKmFyZykKK3sKKwlpbnQJCQlwYXJ0bm8gPSAqKGludCAqKSBhcmc7CisJ UEdjb25uCSAgICpjb24gPSBkb0Nvbm5lY3QoKTsKKworCWlmIChjb24gPT0gTlVMTCkKKwkJ cGdfZmF0YWwoImNvdWxkIG5vdCBjcmVhdGUgY29ubmVjdGlvbiBmb3IgcGFydGl0aW9uIHdv cmtlciAlZCIsIHBhcnRubyk7CisKKwlleGVjdXRlU3RhdGVtZW50KGNvbiwgImJlZ2luIik7 CisJaW5pdFBvcHVsYXRlUGFydGl0aW9uKGNvbiwgcGFydG5vKTsKKwlleGVjdXRlU3RhdGVt ZW50KGNvbiwgImNvbW1pdCIpOworCisJUFFmaW5pc2goY29uKTsKKwlUSFJFQURfRlVOQ19S RVRVUk47Cit9CisKK3N0YXRpYyB2b2lkCitpbml0TG9hZEFjY291bnRzUGFyYWxsZWwodm9p ZCkKK3sKKwlUSFJFQURfVCAgICp0aHJlYWRzOworCWludAkJICAgKnBhcnRubzsKKwlpbnQJ CQlpOworCisJZnByaW50ZihzdGRlcnIsICJsb2FkaW5nIHBnYmVuY2hfYWNjb3VudHMgd2l0 aCAlZCB0aHJlYWRzLi4uXG4iLCBwYXJ0aXRpb25zKTsKKworCXRocmVhZHMgPSBwZ19tYWxs b2NfYXJyYXkoVEhSRUFEX1QsIHBhcnRpdGlvbnMpOworCXBhcnRubyA9IHBnX21hbGxvY19h cnJheShpbnQsIHBhcnRpdGlvbnMpOworCisJZm9yIChpID0gMDsgaSA8IHBhcnRpdGlvbnM7 IGkrKykKKwl7CisJCXBhcnRub1tpXSA9IGkgKyAxOworCQllcnJubyA9IFRIUkVBRF9DUkVB VEUoJnRocmVhZHNbaV0sIGluaXRQYXJ0aXRpb25Xb3JrZXJUaHJlYWQsICZwYXJ0bm9baV0p OworCQlpZiAoZXJybm8gIT0gMCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY3JlYXRlIHRo cmVhZCBmb3IgcGFydGl0aW9uICVkOiAlbSIsIGkgKyAxKTsKKwl9CisKKwlmb3IgKGkgPSAw OyBpIDwgcGFydGl0aW9uczsgaSsrKQorCQlUSFJFQURfSk9JTih0aHJlYWRzW2ldKTsKKwor CWZyZWUodGhyZWFkcyk7CisJZnJlZShwYXJ0bm8pOworfQorCiAvKgogICogRmlsbCB0aGUg c3RhbmRhcmQgdGFibGVzIHdpdGggc29tZSBkYXRhIGdlbmVyYXRlZCBhbmQgc2VudCBmcm9t IHRoZSBjbGllbnQuCiAgKgpAQCAtNTE1NSw4ICs1MjU1LDExIEBAIGluaXRHZW5lcmF0ZURh dGFDbGllbnRTaWRlKFBHY29ubiAqY29uKQogCWZwcmludGYoc3RkZXJyLCAiZ2VuZXJhdGlu ZyBkYXRhIChjbGllbnQtc2lkZSkuLi5cbiIpOwogCiAJLyoKLQkgKiB3ZSBkbyBhbGwgb2Yg dGhpcyBpbiBvbmUgdHJhbnNhY3Rpb24gdG8gZW5hYmxlIHRoZSBiYWNrZW5kJ3MKLQkgKiBk YXRhLWxvYWRpbmcgb3B0aW1pemF0aW9ucworCSAqIEZvciB0aGUgbm9uLXBhcnRpdGlvbmVk IGFuZCBoYXNoLXBhcnRpdGlvbmVkIGNhc2VzLCBkbyBldmVyeXRoaW5nIGluCisJICogb25l IHRyYW5zYWN0aW9uIHRvIGVuYWJsZSB0aGUgYmFja2VuZCdzIGRhdGEtbG9hZGluZyBvcHRp bWl6YXRpb25zLiBGb3IKKwkgKiByYW5nZS1wYXJ0aXRpb25lZCB0YWJsZXMsIGJyYW5jaGVz IGFuZCB0ZWxsZXJzIGFyZSBsb2FkZWQgaW4gb25lCisJICogdHJhbnNhY3Rpb24sIHRoZW4g YWNjb3VudHMgYXJlIGxvYWRlZCBpbiBwYXJhbGxlbCB3aXRoIG9uZSB0aHJlYWQgcGVyCisJ ICogcGFydGl0aW9uLCBlYWNoIGluIGl0cyBvd24gdHJhbnNhY3Rpb24uCiAJICovCiAJZXhl Y3V0ZVN0YXRlbWVudChjb24sICJiZWdpbiIpOwogCkBAIC01MTY5LDkgKzUyNzIsMTggQEAg aW5pdEdlbmVyYXRlRGF0YUNsaWVudFNpZGUoUEdjb25uICpjb24pCiAJICovCiAJaW5pdFBv cHVsYXRlVGFibGUoY29uLCAicGdiZW5jaF9icmFuY2hlcyIsIG5icmFuY2hlcywgaW5pdEJy YW5jaCk7CiAJaW5pdFBvcHVsYXRlVGFibGUoY29uLCAicGdiZW5jaF90ZWxsZXJzIiwgbnRl bGxlcnMsIGluaXRUZWxsZXIpOwotCWluaXRQb3B1bGF0ZVRhYmxlKGNvbiwgInBnYmVuY2hf YWNjb3VudHMiLCBuYWNjb3VudHMsIGluaXRBY2NvdW50KTsKIAotCWV4ZWN1dGVTdGF0ZW1l bnQoY29uLCAiY29tbWl0Iik7CisJaWYgKHBhcnRpdGlvbl9tZXRob2QgPT0gUEFSVF9SQU5H RSkKKwl7CisJCWV4ZWN1dGVTdGF0ZW1lbnQoY29uLCAiY29tbWl0Iik7CisJCWluaXRMb2Fk QWNjb3VudHNQYXJhbGxlbCgpOworCX0KKwllbHNlCisJeworCQkvKiBoYXNoIHBhcnRpdGlv bmluZyBhbmQgbm9uLXBhcnRpdGlvbmVkIHRhYmxlcyB1c2Ugc2VyaWFsIGxvYWRpbmcgKi8K KwkJaW5pdFBvcHVsYXRlVGFibGUoY29uLCAicGdiZW5jaF9hY2NvdW50cyIsIG5hY2NvdW50 cywgaW5pdEFjY291bnQpOworCQlleGVjdXRlU3RhdGVtZW50KGNvbiwgImNvbW1pdCIpOwor CX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdiZW5jaC90LzAwMV9wZ2JlbmNo X3dpdGhfc2VydmVyLnBsIGIvc3JjL2Jpbi9wZ2JlbmNoL3QvMDAxX3BnYmVuY2hfd2l0aF9z ZXJ2ZXIucGwKaW5kZXggYjc2ODVlYTVkMi4uYjU5YzE4MWMyYSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ2JlbmNoL3QvMDAxX3BnYmVuY2hfd2l0aF9zZXJ2ZXIucGwKKysrIGIvc3JjL2Jp bi9wZ2JlbmNoL3QvMDAxX3BnYmVuY2hfd2l0aF9zZXJ2ZXIucGwKQEAgLTE2NCw2ICsxNjQs MjQgQEAgJG5vZGUtPnBnYmVuY2goCiAjIENoZWNrIGRhdGEgc3RhdGUsIGFmdGVyIHNlcnZl ci1zaWRlIGRhdGEgZ2VuZXJhdGlvbi4KIGNoZWNrX2RhdGFfc3RhdGUoJG5vZGUsICdzZXJ2 ZXItc2lkZScpOwogCisjIFRlc3QgcGFyYWxsZWwgaW5pdGlhbGl6YXRpb24gd2l0aCByYW5n ZSBwYXJ0aXRpb25zIChjbGllbnQtc2lkZSBnZW5lcmF0aW9uKS4KKyMgT25lIHRocmVhZCBw ZXIgcGFydGl0aW9uIGlzIHNwYXduZWQgYXV0b21hdGljYWxseS4KKyRub2RlLT5wZ2JlbmNo KAorCSctaSAtcyAxIC0tcGFydGl0aW9ucz00IC0tcGFydGl0aW9uLW1ldGhvZD1yYW5nZScs CisJMCwKKwlbcXJ7XiR9XSwKKwlbCisJCXFye2NyZWF0aW5nIHRhYmxlc30sCisJCXFye2Ny ZWF0aW5nIDQgcGFydGl0aW9uc30sCisJCXFye2xvYWRpbmcgcGdiZW5jaF9hY2NvdW50cyB3 aXRoIDQgdGhyZWFkc30sCisJCXFye3ZhY3V1bWluZ30sCisJCXFye2NyZWF0aW5nIHByaW1h cnkga2V5c30sCisJCXFye2RvbmUgaW4gXGQrXC5cZFxkIHMgfQorCV0sCisJJ3BnYmVuY2gg cGFyYWxsZWwgaW5pdGlhbGl6YXRpb24gd2l0aCByYW5nZSBwYXJ0aXRpb25zJyk7CisKK2No ZWNrX2RhdGFfc3RhdGUoJG5vZGUsICdwYXJhbGxlbC1yYW5nZS1wYXJ0aXRpb25zJyk7CisK ICMgUnVuIGFsbCBidWlsdGluIHNjcmlwdHMsIGZvciBhIGZldyB0cmFuc2FjdGlvbnMgZWFj aAogJG5vZGUtPnBnYmVuY2goCiAJJy0tdHJhbnNhY3Rpb25zPTUgLURmb289YmxhIC0tY2xp ZW50PTIgLS1wcm90b2NvbD1zaW1wbGUgLS1idWlsdGluPXQnCi0tIAoyLjM5LjUgKEFwcGxl IEdpdC0xNTQpCgo= --------------NEZcQrpHcu0s5S08Wr8ybOVn--