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 1w5Bs6-002zTN-2y for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Mar 2026 00:13:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5Bs4-009pwb-0L for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Mar 2026 00:13:16 +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 1w5Bs3-009pwT-1d for pgsql-hackers@lists.postgresql.org; Wed, 25 Mar 2026 00:13:16 +0000 Received: from mail-lj1-x22b.google.com ([2a00:1450:4864:20::22b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w5Bs2-00000000sLY-0DWB for pgsql-hackers@lists.postgresql.org; Wed, 25 Mar 2026 00:13:15 +0000 Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-38bf47a6f02so15016311fa.3 for ; Tue, 24 Mar 2026 17:13:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774397592; cv=none; d=google.com; s=arc-20240605; b=LmdRjXL87gdmLUhtgElZOfZUySs3+HscpzXyPu2U11UDEhokrz9RCjJPLolPDbQrC2 J87r3AiBbM5WcEfcBEXdeqNagGp9v8kkHqbNFSRrXSHpL2Dv5vHtSRCLwgqo777mN4s7 wd/FMoXkbHIoqEF+HcgWIkJOW9QClYzsKcBuWgPVLpTnNJ/6o8nnUIt1rCjcFnsgin0d eGMSjjgxz4UgQaHSWP7uYPol+lbFS3ujCs/d8GSKVGABHX995cuqoSdFTJK2K0Yakgf/ i5A4ylVcSsG0JP48HXNEZPqbXg9DbNNRfKXF9kRJlp3OR94Bo+0lKwm2aKPFdEp2217x EGJA== 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=ZCPCECUq5PL4BF067Oi2YnBHuE4rVed3KoVzMHj6Ow4=; fh=b203CQHslzVIDaJM8TJZ+UK7rV/4LU8sEbfMKTHsCYY=; b=SJL8HzXR+KvTuGA4EIVsubnfqo9lNJtD7D9FOqOTRlaIHm4N8JfRn4h3TmN9gIr99+ vzSn6Ua3pK+/9vDmtyicYMinYKDDqCrNnD0iTwCV9CnbdFmN74cOHSq7Jb7KCRg/RSzN 69dI3lWCk5RUQkYuenIce2EIA3imkvliD4LtB7UAEQz3yxMPZy/1vSSsLHgTpks2Vozl 3RqHfGEJtX96p2b/bscyCQffeuFoZzaUaEbbfRpvHTQxsrDrvz/+8HBCiD1VfGyHgpK6 Rd/OMuqARXSnu7hl3aUxZzy3LiA4aJmqwhL8oCV3/75lY1xnzGivqJuPfP2s4I8glbXA Yn0Q==; 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=1774397592; x=1775002392; 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=ZCPCECUq5PL4BF067Oi2YnBHuE4rVed3KoVzMHj6Ow4=; b=JlNwKXVPC5oYcDE8LbQfR8l/6QJ2z7R1eenSC4P9vI7JLVz0aoUU9+SXt3QP2rnYO4 mlFzTDefvs7MfHjP9ECudv9k/BtbZJHW30OhvPyrE/9uxyM7nDdQb85m9lhePoGQBwGq y/fpUhC05kzoX5kkCD7CdWIfvFRNhbPvl9RjlNj+YwPfpMXXR/2J08dk6+D09SSADL0s gXgrbqZ2uuV0QQb8yvUzktwY0lSYs/p30W51TVgydFs8s4UOjmfv2qY08/hUntqcIebK eJWIqZMEZLs5QUfJFNzu4bEnoSSMlRqp85lI8BfQL54eOK5ars9QQ1iahrupozgIsXHM /U/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774397592; x=1775002392; 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=ZCPCECUq5PL4BF067Oi2YnBHuE4rVed3KoVzMHj6Ow4=; b=ls5+jgLIU5jl6gZTf7LQWw+ShQBI7AEYfxFJdQ04vN9hfrxsm9WN1tii7MwEMUQi89 ZfAU8UNbzQrBdOHGlwsqG8go53qxjDCTc+HXn92mj9yVeBH6Gj/Y6uCbV04K+o0pdkpN VA2LKz7G11ecnzScyjzFQB6QzE9BDN4vEEzcX5Xwe/rHs5YrxG0MB7U/T1F+PzX3TL0S y86Ml0hiVDixev0qEKFHqwHQuj6k0PlYS7AvmZj1HqLWjddNMoeNlkv61HMRFP3QafzJ 6HwO2qg4rgj6aeWlA7wmO9eowmphr7qSbvLhvGxrr4T8pLYikD72fehhL+CWHCh8izmF CwGA== X-Forwarded-Encrypted: i=1; AJvYcCUJ3ODTfDuK4hi6yTKQu6i1xZ433EWGpjCZWoD327bgljm0r8vIpQ3n+ZL33Qhw4r7yp7q0Zpgq0925ThuS@lists.postgresql.org X-Gm-Message-State: AOJu0Yy+ksdaMFW3GuTa/tU736nls1U5Z8LAZQmLdBQqFzXZWQhSctSy czfyC7yWSSlzaRX0oYvwqhUokaBRWgvLqAm5/JhXuFPBg1Zl9anaatAA2vI3oWlsdNatIz0JPzB SS+IgM41lyjcCbwS8R1mXpyb83xUbVRA= X-Gm-Gg: ATEYQzxyuHLY3VZe7L9QlxDTRjGEIiuB4feogq0g7RZF9eAEYZl+hOc4NJZ58xdBn8b b7LAuBbNVsMY7EdENZjKT89YjwOjYL5YNT/q0n55ubmHqO4g7oS1YsesrScdErqJJNBkUKDo53n 40W1kxMaxOjgakd12ANeBNaSJ1T30qhmRRG5OuV6TN1tYptaI19gzITBw1tmpJdbPACW1GvW/wQ AxgWTasNiKkEyDmG/VFMLKEfyGeJsVYubYm+GHxl6PTzCCs8zqUsUhgkmnztHG10H6hkLfpP+QB nTVu X-Received: by 2002:a05:651c:324d:b0:38b:f0f0:e3b2 with SMTP id 38308e7fff4ca-38c43098d2cmr4836641fa.9.1774397592244; Tue, 24 Mar 2026 17:13:12 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Gyan Sreejith Date: Tue, 24 Mar 2026 20:12:59 -0400 X-Gm-Features: AaiRm521zzoZRL_gR9L_KGDcaAD7ky0lIg18MSSh0dn5hcsA_P83vv2P3oQacyI Message-ID: Subject: Re: [Proposal] Adding Log File Capability to pg_createsubscriber To: Peter Smith Cc: "Hayato Kuroda (Fujitsu)" , Amit Kapila , shveta malik , Shlok Kyal , vignesh C , Euler Taveira , "pgsql-hackers@lists.postgresql.org" Content-Type: multipart/mixed; boundary="0000000000002d3327064dce22f2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002d3327064dce22f2 Content-Type: multipart/alternative; boundary="0000000000002d3326064dce22f0" --0000000000002d3326064dce22f0 Content-Type: text/plain; charset="UTF-8" Thank you, Kuroda-san and Chao for the suggestions and the patch. I have merged it with v18-0001, and I have fixed everything that Peter suggested. Regards, Gyan --0000000000002d3326064dce22f0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thank you, Kuroda-san and Chao for=C2=A0the suggestions an= d the patch. I have merged it with v18-0001, and I have fixed everything th= at Peter suggested.

Regards,
Gyan
--0000000000002d3326064dce22f0-- --0000000000002d3327064dce22f2 Content-Type: application/octet-stream; name="v19-0001-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch" Content-Disposition: attachment; filename="v19-0001-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn5ai38b0 RnJvbSA5OGY0ZTMyM2NjODQwMDM5OTBiZGRiNDAzMTM0OTA3YTI3ZWI5NmZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHeWFuIFNyZWVqaXRoIDxneWFuLnNyZWVqaXRoQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCAyNCBNYXIgMjAyNiAyMDowMjo1OCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djE5XSBBZGQgYSBuZXcgYXJndW1lbnQgLWwgPGxvZ2Rpcj4gdG8gcGdfY3JlYXRlc3Vic2NyaWJl ci4KCkVuYWJsaW5nIHRoZSBvcHRpb24gdG8gd3JpdGUgbWVzc2FnZXMgdG8gbG9nIGZpbGVzIGlu IHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5LgpBIG5ldyBkaXJlY3RvcnkgaXMgY3JlYXRlZCBpZiBy ZXF1aXJlZC4gQSBzdWJkaXJlY3RvcnkgaXMgY3JlYXRlZCB3aXRoIHRpbWVzdGFtcCBhcyBpdHMg bmFtZSwgYW5kIGl0IHdpbGwgY29udGFpbiB0d28gbmV3IGxvZ2ZpbGVzOgoxLiBwZ19jcmVhdGVz dWJzY3JpYmVyX3NlcnZlci5sb2cgIC0gY2FwdHVyZXMgbWVzc2FnZXMgcmVsYXRlZCB0byBzdGFy dGluZyBhbmQgc3RvcHBpbmcgdGhlIHN0YW5kYnkgc2VydmVyLgoyLiBwZ19jcmVhdGVzdWJzY3Jp YmVyX2ludGVybmFsLmxvZyAtIGNhcHR1cmVzIGludGVybmFsIGRpYWdub3N0aWMgb3V0cHV0IGZy b20gcGdfY3JlYXRlc3Vic2NyaWJlci4KCkZvciBleGFtcGxlLCBpZiB3ZSBzcGVjaWZ5IC1sIGFi YyBhcyBhbiBhcmd1bWVudCwgYW5kIGlmIHRoZSB0aW1lc3RhbXAgb24gcnVubmluZyBpdCBpcyAy MDI2MDExOVQyMDQzMTcuMjA0LCBhIGRpcmVjdG9yeSBhYmMgaXMgY3JlYXRlZCBpZiBpdCBkb2Vz bid0IGV4aXN0IGFscmVhZHksIHdpdGggMjAyNjAxMTlUMjA0MzE3LjIwNCBhcyBpdHMgc3ViZGly ZWN0b3J5IGFuZCBpdCB3aWxsIGNvbnRhaW4gdGhlIHR3byBsb2cgZmlsZXMgcGdfY3JlYXRlc3Vi c2NyaWJlcl9zZXJ2ZXIubG9nIGFuZCBwZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsLmxvZwot LS0KIGRvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sICAgICB8ICAyOSAr KysKIHNyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgICB8IDE5MiAr KysrKysrKysrKysrKysrKy0KIC4uLi90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsICAgICAg ICAgICAgICB8ICA0OCArKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAyNTQgaW5zZXJ0aW9ucygrKSwg MTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVz dWJzY3JpYmVyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dt bAppbmRleCA2ZTE3Y2VlMThlYi4uNWFjNjFjN2I1NTggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdf Y3JlYXRlc3Vic2NyaWJlci5zZ21sCkBAIC0xMzYsNiArMTM2LDM1IEBAIFBvc3RncmVTUUwgZG9j dW1lbnRhdGlvbgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PG9wdGlvbj4tbCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZGlyZWN0b3J5PC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAg IDx0ZXJtPjxvcHRpb24+LS1sb2dkaXI9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRp cmVjdG9yeTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+Cisg ICAgICA8cGFyYT4KKyAgICAgICBTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBsb2cgZGlyZWN0b3J5 LiBBIG5ldyBkaXJlY3RvcnkgaXMgY3JlYXRlZCB3aXRoCisgICAgICAgdGhpcyBuYW1lIGlmIGl0 IGRvZXMgbm90IGV4aXN0LiBBIHN1YmRpcmVjdG9yeSB3aXRoIGEgdGltZXN0YW1wCisgICAgICAg aW5kaWNhdGluZyB0aGUgdGltZSBhdCB3aGljaCA8YXBwbGljYXRpb24+cGdfY3JlYXRlc3Vic2Ny aWJlcjwvYXBwbGljYXRpb24+CisgICAgICAgd2FzIHJ1biB3aWxsIGJlIGNyZWF0ZWQuIFRoZSBm b2xsb3dpbmcgdHdvIGxvZyBmaWxlcyB3aWxsIGJlIGNyZWF0ZWQgaW4KKyAgICAgICB0aGUgc3Vi ZGlyZWN0b3J5IHdpdGggYSB1bWFzayBvZiAwNzcgc28gdGhhdCBhY2Nlc3MgaXMgZGlzYWxsb3dl ZCB0bworICAgICAgIG90aGVyIHVzZXJzIGJ5IGRlZmF1bHQuCisgICAgICAgPGl0ZW1pemVkbGlz dD4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgPGZpbGVu YW1lPnBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZzwvZmlsZW5hbWU+IHdoaWNoIGNhcHR1 cmVzIGxvZ3MKKyAgICAgICAgICByZWxhdGVkIHRvIHN0b3BwaW5nIGFuZCBzdGFydGluZyB0aGUg c3RhbmRieSBzZXJ2ZXIsCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIDxmaWxlbmFtZT5w Z19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsLmxvZzwvZmlsZW5hbWU+IHdoaWNoIGNhcHR1cmVz CisgICAgICAgICAgaW50ZXJuYWwgZGlhZ25vc3RpYyBvdXRwdXQgKHZhbGlkYXRpb25zLCBjaGVj a3MsIGV0Yy4pCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAg PC9pdGVtaXplZGxpc3Q+CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92 YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5PgogICAgICA8dGVybT48b3B0aW9uPi1u PC9vcHRpb24+PC90ZXJtPgogICAgICA8dGVybT48b3B0aW9uPi0tZHJ5LXJ1bjwvb3B0aW9uPjwv dGVybT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3Jp YmVyLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCmluZGV4 IGIyYmM5ZGFlMGI4Li5kNzk1ZTJjYjQ3ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFj a3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdf Y3JlYXRlc3Vic2NyaWJlci5jCkBAIC0yMCw2ICsyMCw3IEBACiAKICNpbmNsdWRlICJjb21tb24v Y29ubmVjdC5oIgogI2luY2x1ZGUgImNvbW1vbi9jb250cm9sZGF0YV91dGlscy5oIgorI2luY2x1 ZGUgImNvbW1vbi9maWxlX3Blcm0uaCIKICNpbmNsdWRlICJjb21tb24vZmlsZV91dGlscy5oIgog I2luY2x1ZGUgImNvbW1vbi9sb2dnaW5nLmgiCiAjaW5jbHVkZSAiY29tbW9uL3BnX3BybmcuaCIK QEAgLTQ5LDEwICs1MCwxNCBAQAogI2RlZmluZSBJTkNMVURFRF9DT05GX0ZJTEUJCQkicGdfY3Jl YXRlc3Vic2NyaWJlci5jb25mIgogI2RlZmluZSBJTkNMVURFRF9DT05GX0ZJTEVfRElTQUJMRUQJ SU5DTFVERURfQ09ORl9GSUxFICIuZGlzYWJsZWQiCiAKKyNkZWZpbmUgU0VSVkVSX0xPR19GSUxF X05BTUUgInBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyIKKyNkZWZpbmUgSU5URVJOQUxf TE9HX0ZJTEVfTkFNRSAicGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2ciCisKIC8qIENv bW1hbmQtbGluZSBvcHRpb25zICovCiBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMKIHsK IAljaGFyCSAgICpjb25maWdfZmlsZTsJLyogY29uZmlndXJhdGlvbiBmaWxlICovCisJY2hhcgkg ICAqbG9nX2RpcjsJCS8qIGxvZyBkaXJlY3RvcnkgbmFtZSAqLwogCWNoYXIJICAgKnB1Yl9jb25u aW5mb19zdHI7CS8qIHB1Ymxpc2hlciBjb25uZWN0aW9uIHN0cmluZyAqLwogCWNoYXIJICAgKnNv Y2tldF9kaXI7CQkvKiBkaXJlY3RvcnkgZm9yIFVuaXgtZG9tYWluIHNvY2tldCwgaWYgYW55ICov CiAJY2hhcgkgICAqc3ViX3BvcnQ7CQkvKiBzdWJzY3JpYmVyIHBvcnQgbnVtYmVyICovCkBAIC0x NDksOCArMTU0LDE1IEBAIHN0YXRpYyB2b2lkIGdldF9wdWJsaXNoZXJfZGF0YWJhc2VzKHN0cnVj dCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0LAogc3RhdGljIHZvaWQgcmVwb3J0X2NyZWF0 ZXN1Yl9sb2coZW51bSBwZ19sb2dfbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQsCiAJCQkJCQkJCSBj b25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50Zigz LCA0KTsKK3N0YXRpYyB2b2lkIHJlcG9ydF9jcmVhdGVzdWJfbG9nX3YoZW51bSBwZ19sb2dfbGV2 ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKKwkJCQkJCQkJICAgY29uc3QgY2hhciAq cGdfcmVzdHJpY3QgZm10LCB2YV9saXN0IGFyZ3MpCisJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMs IDApOwogcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQgcmVwb3J0X2NyZWF0ZXN1Yl9mYXRhbChjb25z dCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigxLCAy KTsKK3N0YXRpYyB2b2lkIGludGVybmFsX2xvZ19maWxlX3dyaXRlKGVudW0gcGdfbG9nX2xldmVs IGxldmVsLAorCQkJCQkJCQkJZW51bSBwZ19sb2dfcGFydCBwYXJ0LAorCQkJCQkJCQkJY29uc3Qg Y2hhciAqcGdfcmVzdHJpY3QgZm10LCB2YV9saXN0IGFyZ3MpCisJCQlwZ19hdHRyaWJ1dGVfcHJp bnRmKDMsIDApOwogCiAjZGVmaW5lCVdBSVRfSU5URVJWQUwJMQkJLyogMSBzZWNvbmQgKi8KIApA QCAtMTcyLDYgKzE4NCwxMSBAQCBzdGF0aWMgcGdfcHJuZ19zdGF0ZSBwcm5nX3N0YXRlOwogc3Rh dGljIGNoYXIgKnBnX2N0bF9wYXRoID0gTlVMTDsKIHN0YXRpYyBjaGFyICpwZ19yZXNldHdhbF9w YXRoID0gTlVMTDsKIAorc3RhdGljIEZJTEUgKmludGVybmFsX2xvZ19maWxlX2ZwID0gTlVMTDsJ LyogRmlsZSBwdHIgdG8gbG9nIGFsbCBtZXNzYWdlcyB0byAqLworc3RhdGljIGNoYXIgbG9nZGly W01BWFBHUEFUSF07CS8qIFN1YmRpcmVjdG9yeSBvZiB0aGUgdXNlciBzcGVjaWZpZWQgbG9nZGly CisJCQkJCQkJCSAqIHdoZXJlIHRoZSBsb2cgZmlsZXMgYXJlIHdyaXR0ZW4gKGlmCisJCQkJCQkJ CSAqIHNwZWNpZmllZCkgKi8KKwogLyogc3RhbmRieSAvIHN1YnNjcmliZXIgZGF0YSBkaXJlY3Rv cnkgKi8KIHN0YXRpYyBjaGFyICpzdWJzY3JpYmVyX2RpciA9IE5VTEw7CiAKQEAgLTE4MCw4ICsx OTcsMjkgQEAgc3RhdGljIGJvb2wgc3RhbmRieV9ydW5uaW5nID0gZmFsc2U7CiBzdGF0aWMgYm9v bCByZWNvdmVyeV9wYXJhbXNfc2V0ID0gZmFsc2U7CiAKIC8qCi0gKiBSZXBvcnQgYSBtZXNzYWdl IHdpdGggYSBnaXZlbiBsb2cgbGV2ZWwKKyAqIFJlcG9ydCBhIG1lc3NhZ2Ugd2l0aCBhIGdpdmVu IGxvZyBsZXZlbC4KKyAqIFdyaXRlcyB0byBzdGRlcnIsIGFuZCBhbHNvIHRvIHRoZSBsb2cgZmls ZSAoaWYgcGdfY3JlYXRlc3Vic2NyaWJlciAtLWxvZ2RpciBvcHRpb24gd2FzIHNwZWNpZmllZCkK ICAqLworc3RhdGljIHZvaWQKK3JlcG9ydF9jcmVhdGVzdWJfbG9nX3YoZW51bSBwZ19sb2dfbGV2 ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKKwkJCQkJICAgY29uc3QgY2hhciAqcGdf cmVzdHJpY3QgZm10LCB2YV9saXN0IGFyZ3MpCit7CisJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5v OworCisJaWYgKGludGVybmFsX2xvZ19maWxlX2ZwICE9IE5VTEwpCisJeworCQkvKiBPdXRwdXQg dG8gYm90aCBzdGRlcnIgYW5kIHRoZSBsb2cgZmlsZSAqLworCQl2YV9saXN0CQlhcmdfY3B5Owor CisJCXZhX2NvcHkoYXJnX2NweSwgYXJncyk7CisJCWludGVybmFsX2xvZ19maWxlX3dyaXRlKGxl dmVsLCBwYXJ0LCBmbXQsIGFyZ19jcHkpOworCQl2YV9lbmQoYXJnX2NweSk7CisJCS8qIFJlc3Rv cmUgZXJybm8gaW4gY2FzZSBpbnRlcm5hbF9sb2dfZmlsZV93cml0ZSBjaGFuZ2VkIGl0ICovCisJ CWVycm5vID0gc2F2ZV9lcnJubzsKKwl9CisJcGdfbG9nX2dlbmVyaWNfdihsZXZlbCwgcGFydCwg Zm10LCBhcmdzKTsKK30KKwogc3RhdGljIHZvaWQKIHJlcG9ydF9jcmVhdGVzdWJfbG9nKGVudW0g cGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBnX2xvZ19wYXJ0IHBhcnQsCiAJCQkJCSBjb25zdCBj aGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQpAQCAtMTkwLDcgKzIyOCw3IEBAIHJlcG9ydF9jcmVh dGVzdWJfbG9nKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBnX2xvZ19wYXJ0IHBhcnQs CiAKIAl2YV9zdGFydChhcmdzLCBmbXQpOwogCi0JcGdfbG9nX2dlbmVyaWNfdihsZXZlbCwgcGFy dCwgZm10LCBhcmdzKTsKKwlyZXBvcnRfY3JlYXRlc3ViX2xvZ192KGxldmVsLCBwYXJ0LCBmbXQs IGFyZ3MpOwogCiAJdmFfZW5kKGFyZ3MpOwogfQpAQCAtMjA1LDcgKzI0Myw3IEBAIHJlcG9ydF9j cmVhdGVzdWJfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikKIAogCXZhX3N0 YXJ0KGFyZ3MsIGZtdCk7CiAKLQlwZ19sb2dfZ2VuZXJpY192KFBHX0xPR19FUlJPUiwgUEdfTE9H X1BSSU1BUlksIGZtdCwgYXJncyk7CisJcmVwb3J0X2NyZWF0ZXN1Yl9sb2dfdihQR19MT0dfRVJS T1IsIFBHX0xPR19QUklNQVJZLCBmbXQsIGFyZ3MpOwogCiAJdmFfZW5kKGFyZ3MpOwogCkBAIC0z MjcsNiArMzY1LDcgQEAgdXNhZ2Uodm9pZCkKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGFiYXNlcyBhbmQgZGF0YWJhc2VzIHRoYXQgZG9uJ3QgYWxsb3cgY29ubmVj dGlvbnNcbiIpKTsKIAlwcmludGYoXygiICAtZCwgLS1kYXRhYmFzZT1EQk5BTUUgICAgICAgICAg IGRhdGFiYXNlIGluIHdoaWNoIHRvIGNyZWF0ZSBhIHN1YnNjcmlwdGlvblxuIikpOwogCXByaW50 ZihfKCIgIC1ELCAtLXBnZGF0YT1EQVRBRElSICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRoZSBz dWJzY3JpYmVyIGRhdGEgZGlyZWN0b3J5XG4iKSk7CisJcHJpbnRmKF8oIiAgLWwsIC0tbG9nZGly PUxPR0RJUiAgICAgICAgICAgICBsb2NhdGlvbiBmb3IgdGhlIGxvZyBkaXJlY3RvcnlcbiIpKTsK IAlwcmludGYoXygiICAtbiwgLS1kcnktcnVuICAgICAgICAgICAgICAgICAgIGRyeSBydW4sIGp1 c3Qgc2hvdyB3aGF0IHdvdWxkIGJlIGRvbmVcbiIpKTsKIAlwcmludGYoXygiICAtcCwgLS1zdWJz Y3JpYmVyLXBvcnQ9UE9SVCAgICAgIHN1YnNjcmliZXIgcG9ydCBudW1iZXIgKGRlZmF1bHQgJXMp XG4iKSwgREVGQVVMVF9TVUJfUE9SVCk7CiAJcHJpbnRmKF8oIiAgLVAsIC0tcHVibGlzaGVyLXNl cnZlcj1DT05OU1RSICBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmdcbiIpKTsKQEAgLTc2MSw2 ICs4MDAsNyBAQCBtb2RpZnlfc3Vic2NyaWJlcl9zeXNpZChjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vi c2NyaWJlck9wdGlvbnMgKm9wdCkKIAlib29sCQljcmNfb2s7CiAJc3RydWN0IHRpbWV2YWwgdHY7 CiAKKwljaGFyCSAgICpvdXRfZmlsZTsKIAljaGFyCSAgICpjbWRfc3RyOwogCiAJcmVwb3J0X2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLApAQCAtNzk5LDggKzgzOSwy MCBAQCBtb2RpZnlfc3Vic2NyaWJlcl9zeXNpZChjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJl ck9wdGlvbnMgKm9wdCkKIAkJcmVwb3J0X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xP R19QUklNQVJZLAogCQkJCQkJCSAicnVubmluZyBwZ19yZXNldHdhbCBvbiB0aGUgc3Vic2NyaWJl ciIpOwogCi0JY21kX3N0ciA9IHBzcHJpbnRmKCJcIiVzXCIgLUQgXCIlc1wiID4gXCIlc1wiIiwg cGdfcmVzZXR3YWxfcGF0aCwKLQkJCQkJICAgc3Vic2NyaWJlcl9kaXIsIERFVk5VTEwpOworCS8q CisJICogUmVkaXJlY3RpbmcgdGhlIG91dHB1dCB0byB0aGUgbG9nZmlsZSBpZiBzcGVjaWZpZWQu IFNpbmNlIHRoZSBvdXRwdXQKKwkgKiB3b3VsZCBiZSB2ZXJ5IHNob3J0LCBhcm91bmQgb25lIGxp bmUsIHdlIGRvIG5vdCBwcm92aWRlIGEgc2VwYXJhdGUgZmlsZQorCSAqIGZvciBpdDsgaXQncyBk b25lIGFzIGEgcGFydCBvZiB0aGUgc2VydmVyIGxvZy4KKwkgKi8KKwlpZiAob3B0LT5sb2dfZGly KQorCQlvdXRfZmlsZSA9IHBzcHJpbnRmKCIlcy8lcyIsIGxvZ2RpciwgU0VSVkVSX0xPR19GSUxF X05BTUUpOworCWVsc2UKKwkJb3V0X2ZpbGUgPSBERVZOVUxMOworCisJY21kX3N0ciA9IHBzcHJp bnRmKCJcIiVzXCIgLUQgXCIlc1wiID4+IFwiJXNcIiIsIHBnX3Jlc2V0d2FsX3BhdGgsCisJCQkJ CSAgIHN1YnNjcmliZXJfZGlyLCBvdXRfZmlsZSk7CisJaWYgKG9wdC0+bG9nX2RpcikKKwkJcGdf ZnJlZShvdXRfZmlsZSk7CiAKIAlyZXBvcnRfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBH X0xPR19QUklNQVJZLAogCQkJCQkJICJwZ19yZXNldHdhbCBjb21tYW5kIGlzOiAlcyIsIGNtZF9z dHIpOwpAQCAtODE3LDYgKzg2OSw3IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0IHN0 cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCX0KIAogCXBnX2ZyZWUoY2YpOwor CXBnX2ZyZWUoY21kX3N0cik7CiB9CiAKIC8qCkBAIC0xMDIzLDYgKzEwNzYsOTkgQEAgc2VydmVy X2lzX2luX3JlY292ZXJ5KFBHY29ubiAqY29ubikKIAlyZXR1cm4gcmV0ID09IDA7CiB9CiAKK3N0 YXRpYyB2b2lkCitpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShlbnVtIHBnX2xvZ19sZXZlbCBsZXZl bCwgZW51bSBwZ19sb2dfcGFydCBwYXJ0LAorCQkJCQkJY29uc3QgY2hhciAqcGdfcmVzdHJpY3Qg Zm10LCB2YV9saXN0IGFyZ3MpCit7CisJQXNzZXJ0KGludGVybmFsX2xvZ19maWxlX2ZwKTsKKwor CS8qIERvIG5vdGhpbmcgaWYgbG9nIGxldmVsIGlzIHRvbyBsb3cuICovCisJaWYgKGxldmVsIDwg X19wZ19sb2dfbGV2ZWwpCisJCXJldHVybjsKKworCS8qIEFwcGVuZCBwcmVmaXggYmFzZWQgb24g dGhlIGxvZyBwYXJ0IGFuZCBsb2cgbGV2ZWwgKi8KKwlzd2l0Y2ggKHBhcnQpCisJeworCQljYXNl IFBHX0xPR19QUklNQVJZOgorCQkJc3dpdGNoIChsZXZlbCkKKwkJCXsKKwkJCQljYXNlIFBHX0xP R19FUlJPUjoKKwkJCQkJZnByaW50ZihpbnRlcm5hbF9sb2dfZmlsZV9mcCwgXygiZXJyb3I6ICIp KTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBQR19MT0dfV0FSTklORzoKKwkJCQkJZnByaW50Zihp bnRlcm5hbF9sb2dfZmlsZV9mcCwgXygid2FybmluZzogIikpOworCQkJCQlicmVhazsKKwkJCQlk ZWZhdWx0OgorCQkJCQlicmVhazsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFBHX0xPR19ERVRB SUw6CisJCQlmcHJpbnRmKGludGVybmFsX2xvZ19maWxlX2ZwLCBfKCJkZXRhaWw6ICIpKTsKKwkJ CWJyZWFrOworCQljYXNlIFBHX0xPR19ISU5UOgorCQkJZnByaW50ZihpbnRlcm5hbF9sb2dfZmls ZV9mcCwgXygiaGludDogIikpOworCQkJYnJlYWs7CisJfQorCisJdmZwcmludGYoaW50ZXJuYWxf bG9nX2ZpbGVfZnAsIF8oZm10KSwgYXJncyk7CisKKwlmcHJpbnRmKGludGVybmFsX2xvZ19maWxl X2ZwLCAiXG4iKTsKKwlmZmx1c2goaW50ZXJuYWxfbG9nX2ZpbGVfZnApOworfQorCisvKgorICog T3BlbiBhIG5ldyBsb2dmaWxlIHdpdGggcHJvcGVyIHBlcm1pc3Npb25zLgorICovCitzdGF0aWMg RklMRSAqCitsb2dmaWxlX29wZW4oY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKm1v ZGUpCit7CisJRklMRQkgICAqZmg7CisKKwlmaCA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsKKwor CWlmICghZmgpCisJCXJlcG9ydF9jcmVhdGVzdWJfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGxvZyBm aWxlIFwiJXNcIjogJW0iLAorCQkJCQkJCSAgIGZpbGVuYW1lKTsKKworCXJldHVybiBmaDsKK30K Kworc3RhdGljIHZvaWQKK21ha2Vfb3V0cHV0X2RpcnMoY29uc3QgY2hhciAqbG9nX2Jhc2VkaXIp Cit7CisJY2hhcgkJdGltZXN0YW1wWzEyOF07CisJc3RydWN0IHRpbWV2YWwgdHZhbDsKKwl0aW1l X3QJCW5vdzsKKwlzdHJ1Y3QgdG0JdG1idWY7CisJaW50CQkJbGVuOworCisJLyogR2VuZXJhdGUg dGltZXN0YW1wICovCisJZ2V0dGltZW9mZGF5KCZ0dmFsLCBOVUxMKTsKKwlub3cgPSB0dmFsLnR2 X3NlYzsKKworCXN0cmZ0aW1lKHRpbWVzdGFtcCwgc2l6ZW9mKHRpbWVzdGFtcCksICIlWSVtJWRU JUglTSVTIiwKKwkJCSBsb2NhbHRpbWVfcigmbm93LCAmdG1idWYpKTsKKworCS8qIEFwcGVuZCBt aWxsaXNlY29uZHMgKi8KKwlzbnByaW50Zih0aW1lc3RhbXAgKyBzdHJsZW4odGltZXN0YW1wKSwK KwkJCSBzaXplb2YodGltZXN0YW1wKSAtIHN0cmxlbih0aW1lc3RhbXApLCAiLiUwM3UiLAorCQkJ ICh1bnNpZ25lZCBpbnQpICh0dmFsLnR2X3VzZWMgLyAxMDAwKSk7CisKKwkvKiBCdWlsZCB0aW1l c3RhbXAgZGlyZWN0b3J5IHBhdGggKi8KKwlsZW4gPSBzbnByaW50Zihsb2dkaXIsIE1BWFBHUEFU SCwgIiVzLyVzIiwgbG9nX2Jhc2VkaXIsIHRpbWVzdGFtcCk7CisKKwlpZiAobGVuID49IE1BWFBH UEFUSCkKKwkJcmVwb3J0X2NyZWF0ZXN1Yl9mYXRhbCgiZGlyZWN0b3J5IHBhdGggZm9yIGxvZyBm aWxlcyAoYmFzZWRpci90aW1lc3RhbXApIGlzIHRvbyBsb25nIik7CisKKwkvKiBDcmVhdGUgYmFz ZSBkaXJlY3RvcnkgKGlnbm9yZSBpZiBleGlzdHMpICovCisJaWYgKG1rZGlyKGxvZ19iYXNlZGly LCBwZ19kaXJfY3JlYXRlX21vZGUpIDwgMCAmJiBlcnJubyAhPSBFRVhJU1QpCisJCXJlcG9ydF9j cmVhdGVzdWJfZmF0YWwoImNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBs b2dfYmFzZWRpcik7CisKKwkvKiBDcmVhdGUgYSB0aW1lc3RhbXAtbmFtZWQgc3ViZGlyZWN0b3J5 IHVuZGVyIHRoZSBiYXNlIGRpcmVjdG9yeSAqLworCWlmIChta2Rpcihsb2dkaXIsIHBnX2Rpcl9j cmVhdGVfbW9kZSkgPCAwKQorCQlyZXBvcnRfY3JlYXRlc3ViX2ZhdGFsKCJjb3VsZCBub3QgY3Jl YXRlIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgbG9nZGlyKTsKK30KKwogLyoKICAqIElzIHRoZSBw cmltYXJ5IHNlcnZlciByZWFkeSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbj8KICAqCkBAIC0xNzgx LDYgKzE5MjcsOSBAQCBzdGFydF9zdGFuZGJ5X3NlcnZlcihjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vi c2NyaWJlck9wdGlvbnMgKm9wdCwgYm9vbCByZXN0cmljdGVkXwogCWlmIChyZXN0cmljdF9sb2dp Y2FsX3dvcmtlcikKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocGdfY3RsX2NtZCwgIiAtbyBcIi1j IG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtlcnM9MFwiIik7CiAKKwlpZiAob3B0LT5sb2df ZGlyKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihwZ19jdGxfY21kLCAiIC1sIFwiJXMvJXNcIiIsIGxv Z2RpciwgU0VSVkVSX0xPR19GSUxFX05BTUUpOworCiAJcmVwb3J0X2NyZWF0ZXN1Yl9sb2coUEdf TE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKIAkJCQkJCSAicGdfY3RsIGNvbW1hbmQgaXM6ICVz IiwgcGdfY3RsX2NtZC0+ZGF0YSk7CiAJcmMgPSBzeXN0ZW0ocGdfY3RsX2NtZC0+ZGF0YSk7CkBA IC0yMzUxLDYgKzI1MDAsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJhbGwi LCBub19hcmd1bWVudCwgTlVMTCwgJ2EnfSwKIAkJeyJkYXRhYmFzZSIsIHJlcXVpcmVkX2FyZ3Vt ZW50LCBOVUxMLCAnZCd9LAogCQl7InBnZGF0YSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAn RCd9LAorCQl7ImxvZ2RpciIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnbCd9LAogCQl7ImRy eS1ydW4iLCBub19hcmd1bWVudCwgTlVMTCwgJ24nfSwKIAkJeyJzdWJzY3JpYmVyLXBvcnQiLCBy ZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3AnfSwKIAkJeyJwdWJsaXNoZXItc2VydmVyIiwgcmVx dWlyZWRfYXJndW1lbnQsIE5VTEwsICdQJ30sCkBAIC0yNDA5LDYgKzI1NTksNyBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAkvKiBEZWZhdWx0IHNldHRpbmdzICovCiAJc3Vic2NyaWJl cl9kaXIgPSBOVUxMOwogCW9wdC5jb25maWdfZmlsZSA9IE5VTEw7CisJb3B0LmxvZ19kaXIgPSBO VUxMOwogCW9wdC5wdWJfY29ubmluZm9fc3RyID0gTlVMTDsKIAlvcHQuc29ja2V0X2RpciA9IE5V TEw7CiAJb3B0LnN1Yl9wb3J0ID0gREVGQVVMVF9TVUJfUE9SVDsKQEAgLTI0MzksNyArMjU5MCw3 IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJZ2V0X3Jlc3RyaWN0ZWRfdG9rZW4o KTsKIAotCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhZDpEOm5wOlA6czp0 OlRVOnYiLAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhZDpEOmw6bnA6 UDpzOnQ6VFU6diIsCiAJCQkJCQkJbG9uZ19vcHRpb25zLCAmb3B0aW9uX2luZGV4KSkgIT0gLTEp CiAJewogCQlzd2l0Y2ggKGMpCkBAIC0yNDYwLDYgKzI2MTEsMTAgQEAgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAJCQkJc3Vic2NyaWJlcl9kaXIgPSBwZ19zdHJkdXAob3B0YXJnKTsKIAkJ CQljYW5vbmljYWxpemVfcGF0aChzdWJzY3JpYmVyX2Rpcik7CiAJCQkJYnJlYWs7CisJCQljYXNl ICdsJzoKKwkJCQlvcHQubG9nX2RpciA9IHBnX3N0cmR1cChvcHRhcmcpOworCQkJCWNhbm9uaWNh bGl6ZV9wYXRoKG9wdC5sb2dfZGlyKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ24nOgogCQkJCWRy eV9ydW4gPSB0cnVlOwogCQkJCWJyZWFrOwpAQCAtMjYwNyw2ICsyNzYyLDI4IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCQlleGl0KDEpOwogCX0KIAorCS8qIFJ1ZGltZW50YXJ5IGNo ZWNrIGZvciBhIGRhdGEgZGlyZWN0b3J5ICovCisJY2hlY2tfZGF0YV9kaXJlY3Rvcnkoc3Vic2Ny aWJlcl9kaXIpOworCisJaWYgKG9wdC5sb2dfZGlyICE9IE5VTEwpCisJeworCQljaGFyCSAgICpp bnRlcm5hbF9sb2dfZmlsZTsKKworCQkvKiBTZXQgbWFzayBiYXNlZCBvbiB0aGUgUEdEQVRBIHBl cm1pc3Npb25zICovCisJCWlmICghR2V0RGF0YURpcmVjdG9yeUNyZWF0ZVBlcm0oc3Vic2NyaWJl cl9kaXIpKQorCQkJcmVwb3J0X2NyZWF0ZXN1Yl9mYXRhbCgiY291bGQgbm90IHJlYWQgcGVybWlz c2lvbnMgb2YgZGlyZWN0b3J5IFwiJXNcIjogJW0iLAorCQkJCQkJCQkgICBzdWJzY3JpYmVyX2Rp cik7CisKKwkJdW1hc2socGdfbW9kZV9tYXNrKTsKKworCQltYWtlX291dHB1dF9kaXJzKG9wdC5s b2dfZGlyKTsKKwkJaW50ZXJuYWxfbG9nX2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMiLCBsb2dkaXIs IElOVEVSTkFMX0xPR19GSUxFX05BTUUpOworCisJCS8qIGxvZ2ZpbGVfb3BlbigpIHdpbGwgZXhp dCBpZiB0aGVyZSBpcyBhbiBlcnJvciAqLworCQlpbnRlcm5hbF9sb2dfZmlsZV9mcCA9IGxvZ2Zp bGVfb3BlbihpbnRlcm5hbF9sb2dfZmlsZSwgImEiKTsKKwkJcGdfZnJlZShpbnRlcm5hbF9sb2df ZmlsZSk7CisJfQorCiAJaWYgKGRyeV9ydW4pCiAJCXJlcG9ydF9jcmVhdGVzdWJfbG9nKFBHX0xP R19JTkZPLCBQR19MT0dfUFJJTUFSWSwKIAkJCQkJCQkgIkV4ZWN1dGluZyBpbiBkcnktcnVuIG1v ZGUuXG4iCkBAIC0yNzEzLDkgKzI4OTAsNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK IAlwZ19jdGxfcGF0aCA9IGdldF9leGVjX3BhdGgoYXJndlswXSwgInBnX2N0bCIpOwogCXBnX3Jl c2V0d2FsX3BhdGggPSBnZXRfZXhlY19wYXRoKGFyZ3ZbMF0sICJwZ19yZXNldHdhbCIpOwogCi0J LyogUnVkaW1lbnRhcnkgY2hlY2sgZm9yIGEgZGF0YSBkaXJlY3RvcnkgKi8KLQljaGVja19kYXRh X2RpcmVjdG9yeShzdWJzY3JpYmVyX2Rpcik7Ci0KIAlkYmluZm9zLnR3b19waGFzZSA9IG9wdC50 d29fcGhhc2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQw X3BnX2NyZWF0ZXN1YnNjcmliZXIucGwgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdf Y3JlYXRlc3Vic2NyaWJlci5wbAppbmRleCAwYzI3ZmNhN2JiNy4uMjM5ZWE1OGQ5YTAgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBs CisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBs CkBAIC01LDYgKzUsOCBAQAogCiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzIEZBVEFMID0+ICdh bGwnOwordXNlIEZpbGU6OkJhc2VuYW1lOwordXNlIEZpbGU6OnN0YXQ7CiB1c2UgUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3RlcjsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKIHVzZSBUZXN0 OjpNb3JlOwpAQCAtMTQsNiArMTYsNyBAQCBwcm9ncmFtX3ZlcnNpb25fb2soJ3BnX2NyZWF0ZXN1 YnNjcmliZXInKTsKIHByb2dyYW1fb3B0aW9uc19oYW5kbGluZ19vaygncGdfY3JlYXRlc3Vic2Ny aWJlcicpOwogCiBteSAkZGF0YWRpciA9IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0ZW1wZGly OworbXkgJGxvZ2RpciA9IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0ZW1wZGlyOwogCiAjIEdl bmVyYXRlIGEgZGF0YWJhc2Ugd2l0aCBhIG5hbWUgbWFkZSBvZiBhIHJhbmdlIG9mIEFTQ0lJIGNo YXJhY3RlcnMuCiAjIEV4dHJhY3RlZCBmcm9tIDAwMl9wZ191cGdyYWRlLnBsLgpAQCAtMzYyLDkg KzM2NSw0MCBAQCBjb21tYW5kX29rKAogCQknLS1zdWJzY3JpcHRpb24nID0+ICdzdWIyJywKIAkJ Jy0tZGF0YWJhc2UnID0+ICRkYjEsCiAJCSctLWRhdGFiYXNlJyA9PiAkZGIyLAorCQknLS1sb2dk aXInID0+ICRsb2dkaXIsCiAJXSwKIAkncnVuIHBnX2NyZWF0ZXN1YnNjcmliZXIgLS1kcnktcnVu IG9uIG5vZGUgUycpOwogCisjIENoZWNrIHRoYXQgdGhlIGxvZyBmaWxlcyB3ZXJlIGNyZWF0ZWQK K215IEBzZXJ2ZXJfbG9nX2ZpbGVzID0gZ2xvYiAiJGxvZ2Rpci8qL3BnX2NyZWF0ZXN1YnNjcmli ZXJfc2VydmVyLmxvZyI7CitpcyhzY2FsYXIoQHNlcnZlcl9sb2dfZmlsZXMpLAorCTEsICJwZ19j cmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgZmlsZSB3YXMgY3JlYXRlZCIpOworbXkgJHNlcnZl cl9sb2dfZmlsZV9zaXplID0gLXMgJHNlcnZlcl9sb2dfZmlsZXNbMF07Citpc250KCRzZXJ2ZXJf bG9nX2ZpbGVfc2l6ZSwgMCwKKwkicGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIubG9nIGZpbGUg bm90IGVtcHR5Iik7CitteSAkc2VydmVyX2xvZyA9IHNsdXJwX2ZpbGUoJHNlcnZlcl9sb2dfZmls ZXNbMF0pOworbGlrZSgKKwkkc2VydmVyX2xvZywKKwlxci9jb25zaXN0ZW50IHJlY292ZXJ5IHN0 YXRlIHJlYWNoZWQvLAorCSJzZXJ2ZXIgcmVhY2hlZCBjb25zaXN0ZW50IHJlY292ZXJ5IHN0YXRl Iik7CisKK215IEBpbnRlcm5hbF9sb2dfZmlsZXMgPSBnbG9iICIkbG9nZGlyLyovcGdfY3JlYXRl c3Vic2NyaWJlcl9pbnRlcm5hbC5sb2ciOworaXMoc2NhbGFyKEBpbnRlcm5hbF9sb2dfZmlsZXMp LAorCTEsICJwZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsLmxvZyBmaWxlIHdhcyBjcmVhdGVk Iik7CitteSAkaW50ZXJuYWxfbG9nX2ZpbGVfc2l6ZSA9IC1zICRpbnRlcm5hbF9sb2dfZmlsZXNb MF07Citpc250KCRpbnRlcm5hbF9sb2dfZmlsZV9zaXplLCAwLAorCSJwZ19jcmVhdGVzdWJzY3Jp YmVyX2ludGVybmFsLmxvZyBmaWxlIG5vdCBlbXB0eSIpOworbXkgJGludGVybmFsX2xvZyA9IHNs dXJwX2ZpbGUoJGludGVybmFsX2xvZ19maWxlc1swXSk7CitsaWtlKAorCSRpbnRlcm5hbF9sb2cs CisJcXIvdGFyZ2V0IHNlcnZlciByZWFjaGVkIHRoZSBjb25zaXN0ZW50IHN0YXRlLywKKwkibG9n IHNob3dzIGNvbnNpc3RlbnQgc3RhdGUgcmVhY2hlZCIpOworbXkgJHRpbWVzdGFtcF9kaXIgPSBk aXJuYW1lKCRpbnRlcm5hbF9sb2dfZmlsZXNbMF0pOworbXkgJHRpbWVzdGFtcF9kaXJfc3RhdCA9 IHN0YXQoJHRpbWVzdGFtcF9kaXIpOworbXkgJHRpbWVzdGFtcF9kaXJfbW9kZSA9ICR0aW1lc3Rh bXBfZGlyX3N0YXQtPm1vZGUgJiAwNzc3NzsKK2lzKCR0aW1lc3RhbXBfZGlyX21vZGUsIDA3MDAs CisJIkRpcmVjdG9yeSB3aXRoIC5sb2cgZmlsZXMgaGFzIHBlcm1pc3Npb25zIFNfSVJXWFUiKTsK KwogIyBDaGVjayBpZiBub2RlIFMgaXMgc3RpbGwgYSBzdGFuZGJ5CiAkbm9kZV9zLT5zdGFydDsK IGlzKCRub2RlX3MtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnU0VMRUNUIHBnX2NhdGFsb2cucGdf aXNfaW5fcmVjb3ZlcnkoKScpLApAQCAtNDQ0LDcgKzQ3OCw4IEBAIGlzKHNjYWxhcigoKSA9ICRz dGRlcnIgPX4gL3dvdWxkIGNyZWF0ZSBzdWJzY3JpcHRpb24vZyksCiAKICMgQ3JlYXRlIGEgdXNl ci1kZWZpbmVkIHB1YmxpY2F0aW9uLCBhbmQgYSB0YWJsZSB0aGF0IGlzIG5vdCBhIG1lbWJlciBv ZiB0aGF0CiAjIHB1YmxpY2F0aW9uLgotJG5vZGVfcC0+c2FmZV9wc3FsKCRkYjEsIHFxKAorJG5v ZGVfcC0+c2FmZV9wc3FsKAorCSRkYjEsIHFxKAogCUNSRUFURSBQVUJMSUNBVElPTiB0ZXN0X3B1 YjMgRk9SIFRBQkxFIHRibDE7CiAJQ1JFQVRFIFRBQkxFIG5vdF9yZXBsaWNhdGVkIChhIGludCk7 CiApKTsKQEAgLTU0MCw4ICs1NzUsNyBAQCBzZWNvbmQgcm93CiB0aGlyZCByb3cpLAogCSJsb2dp Y2FsIHJlcGxpY2F0aW9uIHdvcmtzIGluIGRhdGFiYXNlICRkYjEiKTsKICRyZXN1bHQgPSAkbm9k ZV9zLT5zYWZlX3BzcWwoJGRiMSwgJ1NFTEVDVCAqIEZST00gbm90X3JlcGxpY2F0ZWQnKTsKLWlz KCRyZXN1bHQsIHFxKCksCi0JInRhYmxlIGlzIG5vdCByZXBsaWNhdGVkIGluIGRhdGFiYXNlICRk YjEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICJ0YWJsZSBpcyBub3QgcmVwbGljYXRlZCBpbiBkYXRh YmFzZSAkZGIxIik7CiAKICMgQ2hlY2sgcmVzdWx0IGluIGRhdGFiYXNlICRkYjIKICRyZXN1bHQg PSAkbm9kZV9zLT5zYWZlX3BzcWwoJGRiMiwgJ1NFTEVDVCAqIEZST00gdGJsMicpOwpAQCAtNTU1 LDggKzU4OSwxMCBAQCBteSAkc3lzaWRfcyA9ICRub2RlX3MtPnNhZmVfcHNxbCgncG9zdGdyZXMn LAogaXNudCgkc3lzaWRfcCwgJHN5c2lkX3MsICdzeXN0ZW0gaWRlbnRpZmllciB3YXMgY2hhbmdl ZCcpOwogCiAjIFZlcmlmeSB0aGF0IHB1YjIgd2FzIGNyZWF0ZWQgaW4gJGRiMgotaXMoJG5vZGVf cC0+c2FmZV9wc3FsKCRkYjIsICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBwZ19wdWJsaWNhdGlvbiBX SEVSRSBwdWJuYW1lID0gJ3B1YjInIiksCi0JJzEnLCAicHVibGljYXRpb24gcHViMiB3YXMgY3Jl YXRlZCBpbiAkZGIyIik7CitpcyggJG5vZGVfcC0+c2FmZV9wc3FsKAorCQkkZGIyLCAiU0VMRUNU IENPVU5UKCopIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9ICdwdWIyJyIpLAor CScxJywKKwkicHVibGljYXRpb24gcHViMiB3YXMgY3JlYXRlZCBpbiAkZGIyIik7CiAKICMgR2V0 IHN1YnNjcmlwdGlvbiBhbmQgcHVibGljYXRpb24gbmFtZXMKICRyZXN1bHQgPSAkbm9kZV9zLT5z YWZlX3BzcWwoCkBAIC01ODEsNyArNjE3LDcgQEAgJHJlc3VsdCA9ICRub2RlX3MtPnNhZmVfcHNx bCgKICAgICApCiApOwogCi1pcygkcmVzdWx0LCBxcSgkZGIxfHt0ZXN0X3B1YjN9CitpcyggJHJl c3VsdCwgcXEoJGRiMXx7dGVzdF9wdWIzfQogJGRiMnx7cHViMn0pLAogCSJzdWJzY3JpcHRpb25z IHVzZSB0aGUgY29ycmVjdCBwdWJsaWNhdGlvbnMiKTsKIAotLSAKMi40My4wCgo= --0000000000002d3327064dce22f2--