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 1vfbzL-003NFE-0J for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Jan 2026 10:51:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vfbzK-004Ige-0Z for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Jan 2026 10:51:02 +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 1vfbzJ-004IgQ-2E for pgsql-hackers@lists.postgresql.org; Tue, 13 Jan 2026 10:51:02 +0000 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vfbzH-000CVj-0h for pgsql-hackers@postgresql.org; Tue, 13 Jan 2026 10:51:01 +0000 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2a1462573caso63085ad.0 for ; Tue, 13 Jan 2026 02:50:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768301457; cv=none; d=google.com; s=arc-20240605; b=YMxagHWyRIs7c1ZUqAy3FLBSvHWZbrx+8pE/4gszN7b8enuRF7sYDQYxEkZ8o/Lu91 jtNo+pysIClRHiXEDJ5tZQmM6C0iDEJPTpyD9s8qquuYcjm4F7wwqSE9SplA632EU4KM +xfwgZyrOsJ5E8J9FeN+fPaI07nvlC3ktoG6gfMAFVLMCJI3EVMpIcDye7of+ICYnmlW 85XxKpIv6mwquVlsovfDbyUzbXpxdYzTddJoonhpzai4qyjmsl5D5fKHC/mYO0mxgJkz vz/96wrpqFjkwU2+rT0+UloeyaCoF0mR0Vq6RdB6x4CPusveiOPy/yXevZihmxmTCSiN 2Pfw== 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=LNN8QDgKFtiIMf+B4V1EvLGwEsk0ieBsf3aWa3diFMs=; fh=lAD4gaO/n1xf+ZngB2F9nWUS54SeLZxPjqH5QGW+VXE=; b=bjcZt/rTGMpkbHJLcYJRE/EvNXxVLPOpo2p8SOozqTPzsYcQeWNClRpEhPw5no5+z/ gpNYWvy+WeecOGX5u6d+YJQbzD+V2kPP0DIQauQWWE6v6J8mcH2IUyZtZZGjStOpRDEk HpqMFriBxEt5eZaUIk8FpeclEsxFAYonnAWCb2mnbKmRBckNU5xV9LVS+iKFnjjuhDop Tz1D6oSTMapttCzGscsyLKTvTJAUMSn2hF1N7Yke5TtGXS307eTC+t0C88sJUl1gjcHV iC6LR2bXryUAe7jOJLVO/WOqEBAJxDrjdB6+aUbqjolQv0slrL0OaSbev8eK8xhBZ1eW WVlg==; darn=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=1768301457; x=1768906257; darn=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=LNN8QDgKFtiIMf+B4V1EvLGwEsk0ieBsf3aWa3diFMs=; b=32HfvODfgu8SV7+dJJNXD/XgHFNpDURXDgrRHhCBCJhRXAonNAzN+A7Z1Xdj1getUq GC8Xy7zFbxV/cpoHilo2aSDURbhxcFP7klxnFT8NYIAgaMhdadCerMPXuS8noZu/2HVR 58IWKs+/w6AIADGMuuR9ORkxz96+C6weyTsVV0UovGEYYYln5IXtCPq21fwB098I2QbY Q41HGPMshJqwagNNeksi7b3UN8/n0gy1SS7C0snWmT+J8xUElubRFZSov9e3mHzIT/jq yhLQKcdPcwKRTSePmNF51ISlY1gN+OXd9jyixDJYmOnc7CQaf6hmBJuePbFSOlB2Ebm4 lMKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768301457; x=1768906257; 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=LNN8QDgKFtiIMf+B4V1EvLGwEsk0ieBsf3aWa3diFMs=; b=PakDigqIDH4RHm0sXyj2w8odrRDxlvZ6DBN5ijf7kuVoOCSIy/QMxySUjwsY5+K4ED ttSPTVmnmlzOygu83mK0q93Z0b0vo35SHdTH5YXyVIBOOzTBtcCNKx5me9c6VOZCLRPL +edlEs2Wc5t8aXo+3x5qpWWZpbf6yWPYIXJqj29DGz7eiu7AjJ24hhCP9tDoO/An8N6e 3zl2ve+UHjh/EO6BODFyijqJJxxUuw+ojZPJHUYc4CuCT5dElxq77f5SsJ1QbHCbHL9t 56hP7YF/Svt35AOc8mf+VmXJ2ozdt9bACV+8kwx/Sj7l9EDm7QT3gmHeQm8u2pDwzArl 4clw== X-Forwarded-Encrypted: i=1; AJvYcCXUobR+cJo+vWuJRVetA6Jsbq1oj8iI1AzyewohGnGem7pgNWHgpfaqIXob4lTjR0k4npg9X2UmhRkk/om7@postgresql.org X-Gm-Message-State: AOJu0YxF/GylPlr4gm4x/eYlXF0ckmVIl3/26nMTHtGMlOECGTpXY7pK YVmSbzCvfInCggvyk6jtddiwfYW9NhUoA0aQ7hXDROb46qObOisjgZg59x3iXcHk3YRBU/26Ngr XUskHR71bMwwgBWQgtet0g9CCSKZLUjbt3vNiDsuz X-Gm-Gg: AY/fxX54ZaMYHopa/WRLp/6x5/+fOiCfcnel9rCm+YK2G8ZlxpA7DXW+FXy8n4Aha2C /15RgcOywr6RRmN+YBPtw3pcpeT/Fq6YcSq9OAWyAhLiDjjQn/nMAnpXRpaivO0A3fGfyOHyOcy 0k2XV0/gLN3zUpQglzO3ysicannjsoa/VzuNKZ3xYn2IvjaW1SbntZ1oe5VS2vA2iH4XbbYTa+u 2uKayTjQkHTvb1ZKt65OS5tpdqelDVhG+P8iHMqce7fC5bixJe+W5lIA2aqnVaMGTw/zY910OGT IwPDpuY9mRFXUXLElnD4+GiiAA== X-Received: by 2002:a17:903:178b:b0:2a0:89b0:71d6 with SMTP id d9443c01a7336-2a58e5ce200mr1631065ad.17.1768301456256; Tue, 13 Jan 2026 02:50:56 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Nitin Motiani Date: Tue, 13 Jan 2026 16:20:44 +0530 X-Gm-Features: AZwV_Qj9oyE8DYQo7dU0Ibhn43ZRe4NTY5kQZzff5WnjniZ052YbBlEPtdEbzU4 Message-ID: Subject: Re: Adding pg_dump flag for parallel export to pipes To: Dilip Kumar Cc: Thomas Munro , Hannu Krosing , pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="00000000000028a893064842c44e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000028a893064842c44e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Dilip, I have rebased the patches and cleaned up the TODOs. Please take a look. The fifth patch is still WIP because I'm working on figuring out the test failure. I'll report my findings on that soon. Thanks, Nitin Motiani Google On Tue, Sep 9, 2025 at 8:41=E2=80=AFPM Nitin Motiani wrote: > > On Tue, Sep 9, 2025 at 12:07=E2=80=AFPM Dilip Kumar wrote: > > > > > > The latest patch set is not applying on HEAD can you rebase the patch > > set. And also there are many TODOs in the patch, if those TODOs are > > just good to do and you are planning for future development better to > > get rid of those. OTOH if some of those TODOs are mandatory to do > > before we can commit the patch then are you planning to work on those > > soon? I am planning to review this patch so are you planning to send > > the rebased version with implementing the TODO which are required for > > the first version. > > > > Thanks for the feedback, Dilip. We will rebase the patch soon and send > it. Regarding the TODOs, some of those are plans for future > development (i.e. refactor). There are also TODOs in the first patch > file 0001 which are actually removed in file 0002. We can clean those > up or combine the two files. Other than that, some are about the open > questions. We will remove those from the code and will discuss those > issues on the thread. > > Thanks, > Nitin Motiani > Google --00000000000028a893064842c44e Content-Type: application/x-patch; name="v6-0003-Add-basic-tests-for-pipe-command.patch" Content-Disposition: attachment; filename="v6-0003-Add-basic-tests-for-pipe-command.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkcgyduv2 RnJvbSA0MDg0NTQ4YzI1MzExOGViOTljZDgzNGMxZjkyMTA3ODczZjAzYTMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogU2F0LCAxNSBGZWIgMjAyNSAwNDoyOToxNyArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djYgMy81XSBBZGQgYmFzaWMgdGVzdHMgZm9yIHBpcGUtY29tbWFuZAoKKiBUaGlzIGN1cnJlbnRs eSBvbmx5IGFkZHMgYSBmZXcgYmFzaWMgdGVzdHMgZm9yIHBnX2R1bXAgd2l0aCAtLXBpcGUtY29t bWFuZC4KKiBUaGVzZSB0ZXN0cyBpbmNsdWRlIHRoZSBpbnZhbGlkIHVzYWdlcyBvZiAtLXBpcGUt Y29tbWFuZCB3aXRoIG90aGVyIGZsYWdzLgoqIFdlIGFyZSBzdGlsbCB3b3JraW5nIG9uIGFkZGlu ZyBvdGhlciB0ZXN0cyBpbiBwZ19kdW1wLnBsLiBCdXQKICB3ZSByYW4gaW50byBzb21lIGlzc3Vl cyB3aGljaCBtaWdodCBiZSByZWxhdGVkIHRvIHNldHVwLgotLS0KIHNyYy9iaW4vcGdfZHVtcC90 LzAwMV9iYXNpYy5wbCB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAxX2Jhc2ljLnBsCmluZGV4 IGFiOTMxMGViNDJiLi45ZWY2MzRkZjk4OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAxX2Jhc2ljLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMV9iYXNpYy5wbApAQCAtNzQs NiArNzQsNDIgQEAgY29tbWFuZF9mYWlsc19saWtlKAogCSdwZ19kdW1wOiBvcHRpb25zIC0tc3Rh dGlzdGljcy1vbmx5IGFuZCAtLW5vLXN0YXRpc3RpY3MgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIn CiApOwogCitjb21tYW5kX2ZhaWxzX2xpa2UoCisJWyAncGdfZHVtcCcsICctRmQnLCAnLS1waXBl LWNvbW1hbmQ9ImNhdCInLCAnLWYnLCAndGVzdGRpcicsICd0ZXN0J10sCisJcXIvXFFwZ19kdW1w OiBoaW50OiBPbmx5IG9uZSBvZiBbLS1maWxlLCAtLXBpcGUtY29tbWFuZF0gYWxsb3dlZFxFLywK KwkncGdfZHVtcDogaGludDogT25seSBvbmUgb2YgWy0tZmlsZSwgLS1waXBlLWNvbW1hbmRdIGFs bG93ZWQnCispOworCitjb21tYW5kX2ZhaWxzX2xpa2UoCisJWyAncGdfZHVtcCcsICctRmQnLCAn LS1waXBlLWNvbW1hbmQ9ImNhdCInLCAnLVonLCAnZ3ppcCcsICd0ZXN0J10sCisJcXIvXFFwZ19k dW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNvbW1hbmQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGFu eSBjb21wcmVzc2lvbiB0eXBlXEUvLAorCSdwZ19kdW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNv bW1hbmQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGFueSBjb21wcmVzc2lvbiB0eXBlJworKTsKKwor Y29tbWFuZF9mYWlsc19saWtlKAorCVsgJ3BnX2R1bXAnLCAnLUZkJywgJy0tcGlwZS1jb21tYW5k PSJjYXQiJywgJy0tY29tcHJlc3M9bHo0JywgJ3Rlc3QnXSwKKwlxci9cUXBnX2R1bXA6IGhpbnQ6 IE9wdGlvbiAtLXBpcGUtY29tbWFuZCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggYW55IGNvbXByZXNz aW9uIHR5cGVcRS8sCisJJ3BnX2R1bXA6IGhpbnQ6IE9wdGlvbiAtLXBpcGUtY29tbWFuZCBpcyBu b3Qgc3VwcG9ydGVkIHdpdGggYW55IGNvbXByZXNzaW9uIHR5cGUnCispOworCitjb21tYW5kX2Zh aWxzX2xpa2UoCisJWyAncGdfZHVtcCcsICctRmQnLCAnLS1waXBlLWNvbW1hbmQ9ImNhdCInLCAn LVonLCAnMScsICd0ZXN0J10sCisJcXIvXFFwZ19kdW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNv bW1hbmQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGFueSBjb21wcmVzc2lvbiB0eXBlXEUvLAorCSdw Z19kdW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNvbW1hbmQgaXMgbm90IHN1cHBvcnRlZCB3aXRo IGFueSBjb21wcmVzc2lvbiB0eXBlJworKTsKKworY29tbWFuZF9mYWlsc19saWtlKAorCVsgJ3Bn X2R1bXAnLCAnLUZjJywgJy0tcGlwZS1jb21tYW5kPSJjYXQiJywgJ3Rlc3QnXSwKKwlxci9cUXBn X2R1bXA6IGhpbnQ6IE9wdGlvbiAtLXBpcGUtY29tbWFuZCBpcyBvbmx5IHN1cHBvcnRlZCB3aXRo IGRpcmVjdG9yeSBmb3JtYXQuXEUvLAorCSdwZ19kdW1wOiBoaW50OiBPcHRpb24gLS1waXBlLWNv bW1hbmQgaXMgb25seSBzdXBwb3J0ZWQgd2l0aCBkaXJlY3RvcnkgZm9ybWF0LicKKyk7CisKK2Nv bW1hbmRfZmFpbHNfbGlrZSgKKwlbICdwZ19kdW1wJywgJy0tZm9ybWF0PXRhcicsICctLXBpcGUt Y29tbWFuZD0iY2F0IicsICd0ZXN0J10sCisJcXIvXFFwZ19kdW1wOiBoaW50OiBPcHRpb24gLS1w aXBlLWNvbW1hbmQgaXMgb25seSBzdXBwb3J0ZWQgd2l0aCBkaXJlY3RvcnkgZm9ybWF0LlxFLywK KwkncGdfZHVtcDogaGludDogT3B0aW9uIC0tcGlwZS1jb21tYW5kIGlzIG9ubHkgc3VwcG9ydGVk IHdpdGggZGlyZWN0b3J5IGZvcm1hdC4nCispOworCiBjb21tYW5kX2ZhaWxzX2xpa2UoCiAJWyAn cGdfZHVtcCcsICctajInLCAnLS1pbmNsdWRlLWZvcmVpZ24tZGF0YT14eHgnIF0sCiAJcXIvXFFw Z19kdW1wOiBlcnJvcjogb3B0aW9uIC0taW5jbHVkZS1mb3JlaWduLWRhdGEgaXMgbm90IHN1cHBv cnRlZCB3aXRoIHBhcmFsbGVsIGJhY2t1cFxFLywKLS0gCjIuNTIuMC40NTcuZzZiNTQ5MWRlNDMt Z29vZwoK --00000000000028a893064842c44e Content-Type: application/x-patch; name="v6-0004-Add-documentation-for-pipe-command-in-pg_dump-and.patch" Content-Disposition: attachment; filename="v6-0004-Add-documentation-for-pipe-command-in-pg_dump-and.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkcgyduw3 RnJvbSAzYmUzZWMwOTFjYTFjY2E3NTRiYzAzYzI5ODAyNTZkMjUyNjVlMmZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogRnJpLCA0IEFwciAyMDI1IDE0OjM0OjQ4ICswMDAwClN1YmplY3Q6IFtQQVRDSCB2 NiA0LzVdIEFkZCBkb2N1bWVudGF0aW9uIGZvciBwaXBlLWNvbW1hbmQgaW4gcGdfZHVtcCBhbmQK IHBnX3Jlc3RvcmUKCiogQWRkIHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlIG5ldyBmbGFncyBhbmQg Y29uc3RyYWludHMKICByZWdhcmRpbmcgd2hpY2ggbW9kZSBhbmQgb3RoZXIgZmxhZ3MgdGhleSBj YW4ndCBiZSB1c2VkIHdpdGguCiogRXhwbGFpbiB0aGUgcHVycG9zZSBvZiB0aGUgZmxhZ3MuCiog QWRkIGEgZmV3IGV4YW1wbGVzIG9mIHRoZSB1c2FnZSBvZiB0aGUgZmxhZ3MuCi0tLQogZG9jL3Ny Yy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwgICAgfCA1NiArKysrKysrKysrKysrKysrKysrKysrKysr KwogZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwgfCA2OCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwKaW5kZXggNjg4ZTIzYzBlOTAuLjAwZDRkODlj Yzk3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbApAQCAtMjk5LDYgKzI5OSw3IEBAIFBvc3RncmVTUUwg ZG9jdW1lbnRhdGlvbgogICAgICAgICBzcGVjaWZpZXMgdGhlIHRhcmdldCBkaXJlY3RvcnkgaW5z dGVhZCBvZiBhIGZpbGUuIEluIHRoaXMgY2FzZSB0aGUKICAgICAgICAgZGlyZWN0b3J5IGlzIGNy ZWF0ZWQgYnkgPGNvbW1hbmQ+cGdfZHVtcDwvY29tbWFuZD4gdW5sZXNzIHRoZSBkaXJlY3RvcnkK ICAgICAgICAgZXhpc3RzIGFuZCBpcyBlbXB0eS4KKyAgICAgICAgVGhpcyBvcHRpb24gYW5kIDxv cHRpb24+LS1waXBlLWNvbW1hbmQ8L29wdGlvbj4gY2FuJ3QgYmUgdXNlZCB0b2dldGhlci4KICAg ICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAg LTEyNDYsNiArMTI0NywzMiBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlz dGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAg ICA8dGVybT48b3B0aW9uPi0tcGlwZS1jb21tYW5kPC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxp c3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiBpcyBvbmx5IHN1cHBv cnRlZCB3aXRoIHRoZSBkaXJlY3Rvcnkgb3V0cHV0CisgICAgICAgIGZvcm1hdC4gSXQgY2FuIGJl IHVzZWQgdG8gd3JpdGUgdG8gbXVsdGlwbGUgc3RyZWFtcyB3aGljaAorICAgICAgICBvdGhlcndp c2Ugd291bGQgbm90IGJlIHBvc3NpYmxlIHdpdGggdGhlIGRpcmVjdG9yeSBtb2RlLgorICAgICAg ICBGb3IgZWFjaCBzdHJlYW0sIGl0IHN0YXJ0cyBhIHByb2Nlc3Mgd2hpY2ggcnVucyB0aGUKKyAg ICAgICAgc3BlY2lmaWVkIGNvbW1hbmQgYW5kIHBpcGVzIHRoZSBwZ19kdW1wIG91dHB1dCB0byB0 aGlzCisgICAgICAgIHByb2Nlc3MuCisgICAgICAgIFRoaXMgb3B0aW9uIGlzIG5vdCB2YWxpZCBp ZiA8b3B0aW9uPi0tZmlsZTwvb3B0aW9uPgorICAgICAgICBpcyBhbHNvIHNwZWNpZmllZC4KKyAg ICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBwaXBlLWNvbW1hbmQgY2Fu IGJlIHVzZWQgdG8gcGVyZm9ybSBvcGVyYXRpb25zIGxpa2UgY29tcHJlc3MKKyAgICAgICAgdXNp bmcgYSBjdXN0b20gYWxnb3JpdGhtLCBmaWx0ZXIsIG9yIHdyaXRlIHRoZSBvdXRwdXQgdG8gYSBj bG91ZAorICAgICAgICBzdG9yYWdlIGV0Yy4gVGhlIHVzZXIgd291bGQgbmVlZCBhIHdheSB0byBw aXBlIHRoZSBmaW5hbCBvdXRwdXQgb2YKKyAgICAgICAgZWFjaCBzdHJlYW0gdG8gYSBmaWxlLiBU byBoYW5kbGUgdGhhdCwgdGhlIHBpcGUgY29tbWFuZCBzdXBwb3J0cyBhIGZvcm1hdAorICAgICAg ICBzcGVjaWZpZXIgJWYuIEFuZCBhbGwgdGhlIGluc3RhbmNlcyBvZiAlZiBpbiB0aGUgY29tbWFu ZCBzdHJpbmcKKyAgICAgICAgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5n IGZpbGUgbmFtZSB3aGljaAorICAgICAgICB3b3VsZCBoYXZlIGJlZW4gdXNlZCBpbiB0aGUgZGly ZWN0b3J5IG1vZGUgd2l0aCA8b3B0aW9uPi0tZmlsZTwvb3B0aW9uPi4KKyAgICAgICAgU2VlIDx4 cmVmIGxpbmtlbmQ9InBnLWR1bXAtZXhhbXBsZXMiLz4gYmVsb3cuCisgICAgICAgPC9wYXJhPgor ICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3Rl bnRyeT4KICAgICAgIDx0ZXJtPjxvcHRpb24+LS1xdW90ZS1hbGwtaWRlbnRpZmllcnM8L29wdGlv bj48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CkBAIC0xODAyLDYgKzE4MjksMzUgQEAgQ1JFQVRF IERBVEFCQVNFIGZvbyBXSVRIIFRFTVBMQVRFIHRlbXBsYXRlMDsKIDwvc2NyZWVuPgogICA8L3Bh cmE+CiAKKyAgPHBhcmE+CisgICBUbyB1c2UgcGlwZS1jb21tYW5kIHRvIGR1bXAgYSBkYXRhYmFz ZSBpbnRvIGEgZGlyZWN0b3J5LWZvcm1hdCBhcmNoaXZlCisgICAodGhlIGRpcmVjdG9yeSA8bGl0 ZXJhbD5kdW1wZGlyPC9saXRlcmFsPiBuZWVkcyB0byBleGlzdCBiZWZvcmUgcnVubmluZyB0aGUg Y29tbWFuZCkuCisKKzxzY3JlZW4+Cis8cHJvbXB0PiQ8L3Byb21wdD4gPHVzZXJpbnB1dD5wZ19k dW1wIC1GZCBteWRiIC0tcGlwZS1jb21tYW5kPSJjYXQgPiBkdW1wZGlyLyVmIjwvdXNlcmlucHV0 PgorPC9zY3JlZW4+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHVzZSBwaXBlLWNvbW1h bmQgdG8gZHVtcCBhIGRhdGFiYXNlIGludG8gYSBkaXJlY3RvcnktZm9ybWF0IGFyY2hpdmUKKyAg IGluIHBhcmFsbGVsIHdpdGggNSB3b3JrZXIgam9icyAodGhlIGRpcmVjdG9yeSA8bGl0ZXJhbD5k dW1wZGlyPC9saXRlcmFsPiBuZWVkcyB0byBleGlzdAorICAgYmVmb3JlIHJ1bm5pbmcgdGhlIGNv bW1hbmQpLgorCis8c2NyZWVuPgorPHByb21wdD4kPC9wcm9tcHQ+IDx1c2VyaW5wdXQ+cGdfZHVt cCAtRmQgbXlkYiAtaiA1IC0tcGlwZS1jb21tYW5kPSJjYXQgPiBkdW1wZGlyLyVmIjwvdXNlcmlu cHV0PgorPC9zY3JlZW4+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHVzZSBwaXBlLWNv bW1hbmQgdG8gY29tcHJlc3MgYW5kIGR1bXAgYSBkYXRhYmFzZSBpbnRvIGEKKyAgIGRpcmVjdG9y eS1mb3JtYXQgYXJjaGl2ZSAodGhlIGRpcmVjdG9yeSA8bGl0ZXJhbD5kdW1wZGlyPC9saXRlcmFs PiBuZWVkcyB0bworICAgZXhpc3QgYmVmb3JlIHJ1bm5pbmcgdGhlIGNvbW1hbmQpLgorCis8c2Ny ZWVuPgorPHByb21wdD4kPC9wcm9tcHQ+IDx1c2VyaW5wdXQ+cGdfZHVtcCAtRmQgbXlkYiAtLXBp cGUtY29tbWFuZD0iZ3ppcCA+IGR1bXBkaXIvJWYuZ3oiPC91c2VyaW5wdXQ+Cis8L3NjcmVlbj4K KyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVG8gcmVsb2FkIGFuIGFyY2hpdmUgZmlsZSBpbnRv IGEgKGZyZXNobHkgY3JlYXRlZCkgZGF0YWJhc2UgbmFtZWQKICAgIDxsaXRlcmFsPm5ld2RiPC9s aXRlcmFsPjoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmVzdG9yZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwKaW5kZXggMmMyOTViYmY4ZGMuLmMwYWI3 YzE2ZDcxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtOTYsNyArOTYsMTAgQEAgUG9z dGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgICAgPHBhcmE+CiAgICAgICAgU3BlY2lmaWVzIHRo ZSBsb2NhdGlvbiBvZiB0aGUgYXJjaGl2ZSBmaWxlIChvciBkaXJlY3RvcnksIGZvciBhCiAgICAg ICAgZGlyZWN0b3J5LWZvcm1hdCBhcmNoaXZlKSB0byBiZSByZXN0b3JlZC4KLSAgICAgICBJZiBu b3Qgc3BlY2lmaWVkLCB0aGUgc3RhbmRhcmQgaW5wdXQgaXMgdXNlZC4KKyAgICAgICBUaGlzIG9w dGlvbiBhbmQgPG9wdGlvbj4tLXBpcGUtY29tbWFuZDwvb3B0aW9uPiBjYW4ndCBiZSBzZXQKKyAg ICAgICBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAgIElmIG5laXRoZXIgdGhpcyBvcHRpb24gbm9y IDxvcHRpb24+LS1waXBlLWNvbW1hbmQ8L29wdGlvbj4gaXMgc3BlY2lmaWVkLAorICAgICAgIHRo ZSBzdGFuZGFyZCBpbnB1dCBpcyB1c2VkLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtODMwLDYgKzgzMywzMiBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9uPi0tcGlwZS1jb21tYW5k PC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAg ICBUaGlzIG9wdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCB3aXRoIHRoZSBkaXJlY3Rvcnkgb3V0cHV0 CisgICAgICAgIGZvcm1hdC4gSXQgY2FuIGJlIHVzZWQgdG8gcmVhZCBmcm9tIG11bHRpcGxlIHN0 cmVhbXMgd2hpY2gKKyAgICAgICAgb3RoZXJ3aXNlIHdvdWxkIG5vdCBiZSBwb3NzaWJsZSB3aXRo IHRoZSBkaXJlY3RvcnkgbW9kZS4KKyAgICAgICAgRm9yIGVhY2ggc3RyZWFtLCBpdCBzdGFydHMg YSBwcm9jZXNzIHdoaWNoIHJ1bnMgdGhlCisgICAgICAgIHNwZWNpZmllZCBjb21tYW5kIGFuZCBw aXBlcyBpdHMgb3V0cHV0IHRvIHRoZSBwZ19yZXN0b3JlIHByb2Nlc3MuCisgICAgICAgIFRoaXMg b3B0aW9uIGlzIG5vdCB2YWxpZCBpZiA8b3B0aW9uPmZpbGVuYW1lPC9vcHRpb24+IGlzIGFsc28g c3BlY2lmaWVkLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHBp cGUtY29tbWFuZCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIG9wZXJhdGlvbnMgbGlrZQorICAgICAg ICBkZWNvbXByZXNzIHVzaW5nIGEgY3VzdG9tIGFsZ29yaXRobSwgZmlsdGVyLCBvciByZWFkIGZy b20KKyAgICAgICAgYSBjbG91ZCBzdG9yYWdlLiBXaGVuIHJlYWRpbmcgZnJvbSB0aGUgcGdfZHVt cCBvdXRwdXQsCisgICAgICAgIHRoZSB1c2VyIHdvdWxkIG5lZWQgYSB3YXkgdG8gcmVhZCB0aGUg Y29ycmVjdCBmaWxlIGluIGVhY2gKKyAgICAgICAgc3RyZWFtLiBUbyBoYW5kbGUgdGhhdCwgdGhl IHBpcGUgY29tbWFuZCBzdXBwb3J0cyBhIGZvcm1hdAorICAgICAgICBzcGVjaWZpZXIgJWYuIEFu ZCBhbGwgdGhlIGluc3RhbmNlcyBvZiAlZiBpbiB0aGUgY29tbWFuZCBzdHJpbmcKKyAgICAgICAg d2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGZpbGUgbmFtZSB3aGljaAor ICAgICAgICB3b3VsZCBoYXZlIGJlZW4gdXNlZCBpbiB0aGUgZGlyZWN0b3J5IG1vZGUgd2l0aCA8 b3B0aW9uPmZpbGVuYW1lPC9vcHRpb24+LgorICAgICAgICBUaGlzIGlzIHNhbWUgYXMgdGhlIDxv cHRpb24+LS1waXBlLWNvbW1hbmQ8L29wdGlvbj4gb2YgcGctZHVtcC4KKyAgICAgICAgU2VlIDx4 cmVmIGxpbmtlbmQ9ImFwcC1wZ3Jlc3RvcmUtZXhhbXBsZXMiLz4gYmVsb3cuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZh cmxpc3RlbnRyeT4KICAgICAgICA8dGVybT48b3B0aW9uPi0tc2VjdGlvbj08cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c2VjdGlvbm5hbWU8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVy bT4KICAgICAgICA8bGlzdGl0ZW0+CkBAIC0xMjM0LDYgKzEyNjMsNDMgQEAgQ1JFQVRFIERBVEFC QVNFIGZvbyBXSVRIIFRFTVBMQVRFIHRlbXBsYXRlMDsKIDxwcm9tcHQ+JDwvcHJvbXB0PiA8dXNl cmlucHV0PnBnX3Jlc3RvcmUgLUwgZGIubGlzdCBkYi5kdW1wPC91c2VyaW5wdXQ+CiA8L3NjcmVl bj48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUbyB1c2UgcGdfcmVzdG9yZSB3aXRoIHBpcGUtY29t bWFuZCB0byByZWNyZWF0ZSBmcm9tIGEgZHVtcCBpbgorICAgZGlyZWN0b3J5LWFyY2hpdmUgZm9y bWF0LiBUaGUgZGF0YWJhc2Ugc2hvdWxkIG5vdCBleGlzdCBiZWZvcmVoYW5kLgorICAgQXNzdW1l IGluIHRoaXMgZXhhbXBsZSB0aGF0IHRoZSBkdW1wIGluIGRpcmVjdG9yeS1hcmNoaXZlIGZvcm1h dCBpcworICAgc3RvcmVkIGluIDxsaXRlcmFsPmR1bXBkaXI8L2xpdGVyYWw+LgorCis8c2NyZWVu PgorPHByb21wdD4kPC9wcm9tcHQ+IDx1c2VyaW5wdXQ+cGdfcmVzdG9yZSAtQyAtRmQgLWQgcG9z dGdyZXMgLS1waXBlLWNvbW1uYWQ9ImNhdCBkdW1wZGlyLyVmIjwvdXNlcmlucHV0PgorPC9zY3Jl ZW4+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHVzZSBwZ19yZXN0b3JlIHdpdGggcGlw ZS1jb21tYW5kIHRvIGZpcnN0IGRlY29tcHJlc3MgYW5kIHRoZW4KKyAgIHJlY3JlYXRlIGZyb20g YSBkdW1wIGluIGRpcmVjdG9yeS1hcmNoaXZlIGZvcm1hdC4gVGhlIGRhdGFiYXNlCisgICBzaG91 bGQgbm90IGV4aXN0IGJlZm9yZWhhbmQuCisgICBBc3N1bWUgaW4gdGhpcyBleGFtcGxlIHRoYXQg dGhlIGR1bXAgaW4gZGlyZWN0b3J5LWFyY2hpdmUgZm9ybWF0IGlzCisgICBzdG9yZWQgaW4gPGxp dGVyYWw+ZHVtcGRpcjwvbGl0ZXJhbD4uIEFuZCBhbGwgZmlsZXMgYXJlCisgICA8bGl0ZXJhbD5n emlwPC9saXRlcmFsPiBjb21wcmVzc2VkLgorCis8c2NyZWVuPgorPHByb21wdD4kPC9wcm9tcHQ+ IDx1c2VyaW5wdXQ+cGdfcmVzdG9yZSAtQyAtRmQgLWQgcG9zdGdyZXMgLS1waXBlLWNvbW1uYWQ9 ImNhdCBkdW1wZGlyLyVmLmd6IHwgZ3VuemlwIjwvdXNlcmlucHV0PgorPC9zY3JlZW4+CisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHVzZSBwaXBlLWNvbW1hbmQgYWxvbmcgd2l0aCA8b3B0 aW9uPi1MPC9vcHRpb24+IHRvIHJlY3JlYXRlIG9ubHkKKyAgIHNlbGVjdGQgaXRlbXMgZnJvbSBh IGR1bXAgaW4gdGhlIGRpcmVjdG9yeS1hcmNoaXZlIGZvcm1hdC4KKyAgIFRoZSBkYXRhYmFzZSBz aG91bGQgbm90IGV4aXN0IGJlZm9yZWhhbmQuCisgICBBc3N1bWUgaW4gdGhpcyBleGFtcGxlIHRo YXQgdGhlIGR1bXAgaW4gZGlyZWN0b3J5LWFyY2hpdmUgZm9ybWF0IGlzCisgICBzdG9yZWQgaW4g ZHVtcGRpci4KKyAgIFRoZSA8bGl0ZXJhbD5kYi5saXN0PC9saXRlcmFsPiBmaWxlIGlzIHRoZSBz YW1lIGFzIG9uZSB1c2VkIGluIHRoZSBwcmV2aW91cyBleGFtcGxlIHdpdGggPG9wdGlvbj4tTDwv b3B0aW9uPgorCis8c2NyZWVuPgorPHByb21wdD4kPC9wcm9tcHQ+IDx1c2VyaW5wdXQ+cGdfcmVz dG9yZSAtQyAtRmQgLWQgcG9zdGdyZXMgLS1waXBlLWNvbW1uYWQ9ImNhdCBkdW1wZGlyLyVmIiAt TCBkYi5saXN0PC91c2VyaW5wdXQ+Cis8L3NjcmVlbj4KKyAgPC9wYXJhPgorCiAgPC9yZWZzZWN0 MT4KIAogIDxyZWZzZWN0MT4KLS0gCjIuNTIuMC40NTcuZzZiNTQ5MWRlNDMtZ29vZwoK --00000000000028a893064842c44e Content-Type: application/x-patch; name="v6-0002-Add-pipe-command-support-in-pg_restore.patch" Content-Disposition: attachment; filename="v6-0002-Add-pipe-command-support-in-pg_restore.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkcgydut1 RnJvbSA5MGFkOGU5OThkNTU4N2M4YzYwNWUyZjNmMDE1ODAwNTcwZmYxNDk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogU2F0LCAxNSBGZWIgMjAyNSAwODowNToyNSArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djYgMi81XSBBZGQgcGlwZS1jb21tYW5kIHN1cHBvcnQgaW4gcGdfcmVzdG9yZQoKKiBUaGlzIGlz IHNhbWUgYXMgdGhlIHBnX2R1bXAgY2hhbmdlLiBXZSBhZGQgc3VwcG9ydAogIGZvciAtLXBpcGUt Y29tbWFuZCBpbiBkaXJlY3RvcnkgYXJjaGl2ZSBmb3JtYXQuIFRoaXMgY2FuIGJlIHVzZWQKICB0 byByZWFkIGZyb20gbXVsdGlwbGUgc3RyZWFtcyBhbmQgZG8gcHJlLXByb2Nlc3NpbmcgKGRlY29t cHJlc3Npb24KICB3aXRoIGEgY3VzdG9tIGFsZ29yaXRobSwgZmlsdGVyaW5nIGV0YykgYmVmb3Jl IHJlc3RvcmUuCiAgQ3VycmVudGx5IHRoYXQgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2UgdGhlIHBn X2R1bXAgb3V0cHV0IG9mCiAgZGlyZWN0b3J5IGZvcm1hdCBjYW4ndCBqdXN0IGJlIHBpcGVkLgoq IExpa2UgcGdfZHVtcCwgaGVyZSBhbHNvIGVpdGhlciBmaWxlbmFtZSBvciAtLXBpcGUtY29tbWFu ZCBjYW4gYmUKICBzZXQuIElmIG5laXRoZXIgYXJlIHNldCwgdGhlIHN0YW5kYXJkIGlucHV0IGlz IHVzZWQgYXMgYmVmb3JlLgoqIFRoaXMgaXMgb25seSBzdXBwb3J0ZWQgd2l0aCBjb21wcmVzc2lv biBub25lIGFuZCBhcmNoaXZlIGZvcm1hdAogIGRpcmVjdG9yeS4KKiBXZSByZXVzZSB0aGUgaW5w dXRGaWxlU3BlYyBmaWVsZCBmb3IgdGhlIHBpcGUtY29tbWFuZC4gQW5kIGFkZAogIGEgYm9vbCB0 byBzcGVjaWZ5IGlmIGl0IGlzIGEgcGlwZS4KKiBUaGUgY2hhbmdlcyBtYWRlIGZvciBwZ19kdW1w IHRvIGhhbmRsZSB0aGUgcGlwZSBjYXNlIHdpdGggcG9wZW4KICBhbmQgcGNsb3NlIGFsc28gd29y ayBoZXJlLgoqIFRoZSBsb2dpYyBvZiAlZiBmb3JtYXQgc3BlY2lmaWVyIHRvIHJlYWQgZnJvbSB0 aGUgcGdfZHVtcCBvdXRwdXQKICBpcyB0aGUgc2FtZSB0b28uIE1vc3Qgb2YgdGhlIGNvZGUgZnJv bSB0aGUgcGdfZHVtcCBjb21taXQgd29ya3MuCiAgV2UgYWRkIHNpbWlsYXIgbG9naWMgdG8gdGhl IGZ1bmN0aW9uIHRvIHJlYWQgbGFyZ2Ugb2JqZWN0cy4KKiBUaGUgLS1waXBlIGNvbW1hbmQgd29y a3MgLWwgYW5kIC1MIG9wdGlvbi4KLS0tCiBzcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfaW8uYyAg ICAgICAgIHwgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF9kaXJlY3RvcnkuYyB8IDE2ICsrKysrKysrKysrKystCiBzcmMvYmluL3BnX2R1bXAv cGdfcmVzdG9yZS5jICAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19pby5jIGIvc3JjL2Jpbi9wZ19kdW1wL2Nv bXByZXNzX2lvLmMKaW5kZXggNWQwOWQ3YmY0NTguLmIyOGZjZDczNjE3IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvY29tcHJlc3NfaW8uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tcHJl c3NfaW8uYwpAQCAtMjYxLDIyICsyNjEsMjggQEAgSW5pdERpc2NvdmVyQ29tcHJlc3NGaWxlSGFu ZGxlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKm1vZGUsCiAKIAlmbmFtZSA9IHBnX3N0 cmR1cChwYXRoKTsKIAotCWlmIChoYXNTdWZmaXgoZm5hbWUsICIuZ3oiKSkKLQkJY29tcHJlc3Np b25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9HWklQOwotCWVsc2UgaWYgKGhhc1N1 ZmZpeChmbmFtZSwgIi5sejQiKSkKLQkJY29tcHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19D T01QUkVTU0lPTl9MWjQ7Ci0JZWxzZSBpZiAoaGFzU3VmZml4KGZuYW1lLCAiLnpzdCIpKQotCQlj b21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9IFBHX0NPTVBSRVNTSU9OX1pTVEQ7Ci0JZWxzZQor CS8qCisJICogSWYgdGhlIHBhdGggaXMgYSBwaXBlIGNvbW1hbmQsIHRoZSBjb21wcmVzc2lvbiBh bGdvcml0aG0gaXMgbm9uZS4KKwkgKi8KKwlpZiAoIXBhdGhfaXNfcGlwZV9jb21tYW5kKQogCXsK LQkJaWYgKHN0YXQocGF0aCwgJnN0KSA9PSAwKQotCQkJY29tcHJlc3Npb25fc3BlYy5hbGdvcml0 aG0gPSBQR19DT01QUkVTU0lPTl9OT05FOwotCQllbHNlIGlmIChjaGVja19jb21wcmVzc2VkX2Zp bGUocGF0aCwgJmZuYW1lLCAiZ3oiKSkKKwkJaWYgKGhhc1N1ZmZpeChmbmFtZSwgIi5neiIpKQog CQkJY29tcHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9HWklQOwotCQll bHNlIGlmIChjaGVja19jb21wcmVzc2VkX2ZpbGUocGF0aCwgJmZuYW1lLCAibHo0IikpCisJCWVs c2UgaWYgKGhhc1N1ZmZpeChmbmFtZSwgIi5sejQiKSkKIAkJCWNvbXByZXNzaW9uX3NwZWMuYWxn b3JpdGhtID0gUEdfQ09NUFJFU1NJT05fTFo0OwotCQllbHNlIGlmIChjaGVja19jb21wcmVzc2Vk X2ZpbGUocGF0aCwgJmZuYW1lLCAienN0IikpCisJCWVsc2UgaWYgKGhhc1N1ZmZpeChmbmFtZSwg Ii56c3QiKSkKIAkJCWNvbXByZXNzaW9uX3NwZWMuYWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05f WlNURDsKKwkJZWxzZQorCQl7CisJCQlpZiAoc3RhdChwYXRoLCAmc3QpID09IDApCisJCQkJY29t cHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9OT05FOworCQkJZWxzZSBp ZiAoY2hlY2tfY29tcHJlc3NlZF9maWxlKHBhdGgsICZmbmFtZSwgImd6IikpCisJCQkJY29tcHJl c3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9HWklQOworCQkJZWxzZSBpZiAo Y2hlY2tfY29tcHJlc3NlZF9maWxlKHBhdGgsICZmbmFtZSwgImx6NCIpKQorCQkJCWNvbXByZXNz aW9uX3NwZWMuYWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05fTFo0OworCQkJZWxzZSBpZiAoY2hl Y2tfY29tcHJlc3NlZF9maWxlKHBhdGgsICZmbmFtZSwgInpzdCIpKQorCQkJCWNvbXByZXNzaW9u X3NwZWMuYWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05fWlNURDsKKwkJfQogCX0KIAogCUNGSCA9 IEluaXRDb21wcmVzc0ZpbGVIYW5kbGUoY29tcHJlc3Npb25fc3BlYywgcGF0aF9pc19waXBlX2Nv bW1hbmQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kaXJlY3Rvcnku YyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMKaW5kZXggZGIyMzAzMWQ5 YWMuLmJjN2M0YzFmOTJmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Rp cmVjdG9yeS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMKQEAg LTQzOSw3ICs0MzksMjEgQEAgX0xvYWRMT3MoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0 ZSkKIAkJCQkJIHRvY2ZuYW1lLCBsaW5lKTsKIAogCQlTdGFydFJlc3RvcmVMTyhBSCwgb2lkLCBB SC0+cHVibGljLnJvcHQtPmRyb3BTY2hlbWEpOwotCQlzbnByaW50ZihwYXRoLCBNQVhQR1BBVEgs ICIlcy8lcyIsIGN0eC0+ZGlyZWN0b3J5LCBsb2ZuYW1lKTsKKworCQkvKgorCQkgKiBYWFggOiBD cmVhdGUgYSBoZWxwZXIgZnVuY3Rpb24gZm9yIGJsb2IgZmlsZXMgbmFtaW5nIGNvbW1vbiB0bwor CQkgKiBfTG9hZExPcyBhbiBfU3RhcnRMTy4KKwkJICovCisJCWlmIChBSC0+ZlNwZWNJc1BpcGUp CisJCXsKKwkJCXBpcGUgPSByZXBsYWNlX3BlcmNlbnRfcGxhY2Vob2xkZXJzKGN0eC0+ZGlyZWN0 b3J5LCAicGlwZS1jb21tYW5kIiwgImYiLCBsb2ZuYW1lKTsKKwkJCXN0cmNweShwYXRoLCBwaXBl KTsKKwkJCXBmcmVlKHBpcGUpOworCQl9CisJCWVsc2UKKwkJeworCQkJc25wcmludGYocGF0aCwg TUFYUEdQQVRILCAiJXMvJXMiLCBjdHgtPmRpcmVjdG9yeSwgbG9mbmFtZSk7CisJCX0KIAkJX1By aW50RmlsZURhdGEoQUgsIHBhdGgpOwogCQlFbmRSZXN0b3JlTE8oQUgsIG9pZCk7CiAJfQpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19yZXN0b3JlLmMKaW5kZXggOTQ5NWEzN2ZmYzEuLjQ2NzU4ZjcyZDk4IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0 b3JlLmMKQEAgLTY2LDYgKzY2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJY2hh cgkgICAqaW5wdXRGaWxlU3BlYzsKIAlib29sCQlkYXRhX29ubHkgPSBmYWxzZTsKIAlib29sCQlz Y2hlbWFfb25seSA9IGZhbHNlOworCWJvb2wJCWZpbGVzcGVjX2lzX3BpcGUgPSBmYWxzZTsKIAlz dGF0aWMgaW50CWRpc2FibGVfdHJpZ2dlcnMgPSAwOwogCXN0YXRpYyBpbnQJZW5hYmxlX3Jvd19z ZWN1cml0eSA9IDA7CiAJc3RhdGljIGludAlpZl9leGlzdHMgPSAwOwpAQCAtMTQyLDYgKzE0Myw3 IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl7InN0YXRpc3RpY3Mtb25seSIsIG5v X2FyZ3VtZW50LCAmc3RhdGlzdGljc19vbmx5LCAxfSwKIAkJeyJmaWx0ZXIiLCByZXF1aXJlZF9h cmd1bWVudCwgTlVMTCwgNH0sCiAJCXsicmVzdHJpY3Qta2V5IiwgcmVxdWlyZWRfYXJndW1lbnQs IE5VTEwsIDZ9LAorCQl7InBpcGUtY29tbWFuZCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCA3 fSwKIAogCQl7TlVMTCwgMCwgTlVMTCwgMH0KIAl9OwpAQCAtMzIxLDYgKzMyMywxMSBAQCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQlvcHRzLT5yZXN0cmljdF9rZXkgPSBwZ19zdHJk dXAob3B0YXJnKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSA3OgkJCQkvKiBwaXBlLWNvbW1hbmQg Ki8KKwkJCQlpbnB1dEZpbGVTcGVjID0gcGdfc3RyZHVwKG9wdGFyZyk7CisJCQkJZmlsZXNwZWNf aXNfcGlwZSA9IHRydWU7CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJLyogZ2V0b3B0 X2xvbmcgYWxyZWFkeSBlbWl0dGVkIGEgY29tcGxhaW50ICovCiAJCQkJcGdfbG9nX2Vycm9yX2hp bnQoIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsIHByb2duYW1lKTsK QEAgLTMyOCwxMSArMzM1LDI5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJ fQogCi0JLyogR2V0IGZpbGUgbmFtZSBmcm9tIGNvbW1hbmQgbGluZSAqLworCS8qCisJICogR2V0 IGZpbGUgbmFtZSBmcm9tIGNvbW1hbmQgbGluZS4gTm90ZSB0aGF0IGZpbGVuYW1lIGFyZ3VtZW50 IGFuZAorCSAqIHBpcGUtY29tbWFuZCBjYW4ndCBib3RoIGJlIHNldC4KKwkgKi8KIAlpZiAob3B0 aW5kIDwgYXJnYykKKwl7CisJCWlmIChmaWxlc3BlY19pc19waXBlKQorCQl7CisJCQlwZ19sb2df ZXJyb3JfaGludCgiT25seSBvbmUgb2YgW2ZpbGVzcGVjLCAtLXBpcGUtY29tbWFuZF0gYWxsb3dl ZCIpOworCQkJZXhpdF9uaWNlbHkoMSk7CisJCX0KIAkJaW5wdXRGaWxlU3BlYyA9IGFyZ3Zbb3B0 aW5kKytdOwotCWVsc2UKKwl9CisKKwkvKgorCSAqIEV2ZW4gaWYgdGhlIGZpbGUgYXJndW1lbnQg aXMgbm90IHByb3ZpZGVkLCBpZiB0aGUgcGlwZS1jb21tYW5kIGlzCisJICogc3BlY2lmaWVkLCB3 ZSBuZWVkIHRvIHVzZSB0aGF0IGFzIHRoZSBmaWxlIGFyZyBhbmQgbm90IGZhbGxiYWNrIHRvCisJ ICogc3RkaW8uCisJICovCisJZWxzZSBpZiAoIWZpbGVzcGVjX2lzX3BpcGUpCisJewogCQlpbnB1 dEZpbGVTcGVjID0gTlVMTDsKKwl9CiAKIAkvKiBDb21wbGFpbiBpZiBhbnkgYXJndW1lbnRzIHJl bWFpbiAqLwogCWlmIChvcHRpbmQgPCBhcmdjKQpAQCAtNDg1LDcgKzUxMCw4IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCQkgb3B0cy0+Zm9ybWF0TmFtZSk7CiAJfQogCi0JQUgg PSBPcGVuQXJjaGl2ZShpbnB1dEZpbGVTcGVjLCBvcHRzLT5mb3JtYXQsIGZhbHNlKTsKKworCUFI ID0gT3BlbkFyY2hpdmUoaW5wdXRGaWxlU3BlYywgb3B0cy0+Zm9ybWF0LCBmaWxlc3BlY19pc19w aXBlKTsKIAogCVNldEFyY2hpdmVPcHRpb25zKEFILCBOVUxMLCBvcHRzKTsKIAotLSAKMi41Mi4w LjQ1Ny5nNmI1NDkxZGU0My1nb29nCgo= --00000000000028a893064842c44e Content-Type: application/x-patch; name="v6-0005-WIP-This-is-WIP-patch-for-adding-tests-to-pg_dump.patch" Content-Disposition: attachment; filename="v6-0005-WIP-This-is-WIP-patch-for-adding-tests-to-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkcgydux4 RnJvbSA4ZWNhMWJmODkyYTMyNzQyOGNlMjc1NmI2MThhYTVjYTAzMjNlMjU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogVGh1LCAyMiBNYXkgMjAyNSAxMDoyMDoxNSArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djYgNS81XSBbV0lQXSBUaGlzIGlzIFdJUCBwYXRjaCBmb3IgYWRkaW5nIHRlc3RzIHRvIHBnX2R1 bXAucGwKCiogVGhlIGZpcnN0IHRlc3QgaW4gdGhlIHBhdGNoIHdhcyB0aGUgdGVzdCB3ZSB3ZXJl IG9yaWdpbmFsbHkKICB0cnlpbmcgdG8gYWRkIGJ1dCBpdCBrZXB0IGZhaWxpbmcuCgoqIFRoZSAz IHRlc3RzIGF0IHRoZSBib3R0b20gd2VyZSBwYXJ0IG9mIHRoZSBkZWJ1Z2dpbmcgcHJvY2VzcyBh bmQKICB0aGUgbG9ncyBzaG93ZWQgdGhhdCB0aG9zZSB0ZXN0cyB3b3VsZCBmYWlsIHdoZW5ldmVy IGEgcGlwZQogIHdhcyB1c2VkIGluc2lkZSB0aGUgcGlwZSBjb21tYW5kIGkuZS4gJ2NhdCB8IGd6 aXAnIG9yCiAgJ2NhdCA+IDxmaWxlPicuIEJ1dCBzaW1wbGUgJ2NhdCcgb3IgJ2d6aXAnIHdpdGhv dXQgcGlwZSB3b3JrZWQuCgoqIFRoZSB0ZXN0cyBuZWVkIHRvIGJlIGNsZWFuZWQgdXAgYW5kIHJl cnVuIHRvIGdldCB0aGUgZXhhY3QgZXJyb3IgbWVzc2FnZXMuCi0tLQogc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CmluZGV4IDI4ODEyZDI4YWE5Li42NThlODQ3MTkzZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKQEAgLTIyMyw2ICsyMjMsMTUgQEAgbXkgJXBnZHVtcF9ydW5zID0gKAogCQldLAogCX0sCiAK KwkjIFRoaXMgdGVzdCBrZXB0IGZhaWxpbmcuCisJZGVmYXVsdHNfZGlyX2Zvcm1hdF9waXBlID0+ IHsKKwkJdGVzdF9rZXkgPT4gJ2RlZmF1bHRzJywKKwkJZHVtcF9jbWQgPT4gWworCQkJJ3BnX2R1 bXAnLCAnLUZkJywgJ3Bvc3RncmVzJywKKwkJCSItLXBpcGUtY29tbWFuZD1cImNhdCA+ICR0ZW1w ZGlyL2RlZmF1bHRzX2Rpcl9mb3JtYXQvJWZcIiIsCisJCV0sCisJfSwKKwogCSMgRG8gbm90IHVz ZSAtLW5vLXN5bmMgdG8gZ2l2ZSB0ZXN0IGNvdmVyYWdlIGZvciBkYXRhIHN5bmMuCiAJZGVmYXVs dHNfcGFyYWxsZWwgPT4gewogCQl0ZXN0X2tleSA9PiAnZGVmYXVsdHMnLApAQCAtNDkzNCw2ICs0 OTQzLDM1IEBAIGZvcmVhY2ggbXkgJGRiIChzb3J0IGtleXMgJWNyZWF0ZV9zcWwpCiAJJG5vZGUt PnNhZmVfcHNxbCgkZGIsICRjcmVhdGVfc3FseyRkYn0pOwogfQogCisjIFRoZXNlIGZvdXIgdGVz dHMgd2VyZSBhZGRlZCB0ZW1wb3JhcmlseSB0byBtb3JlIGVhc2lseSBsb29rIHRocm91Z2ggdGhl IG91dHB1dC4KKyMgVGhleSBmYWlsZWQgYXMgc29vbiBhcyB3ZSB1c2VkIGEgcGlwZSBvZiBhbnkg a2luZCB3aGV0aGVyIHRvIGZpbGUgb3IganVzdCB0byBhbm90aGVyCisjIGNvbW1hbmQuIFRob3Nl IGNvbW1hbmRzIHdvcmtlZCBmaW5lIG1hbnVhbGx5LiBTbyB0aGUgc2Vjb25kICYgZm91cnRoIHRl c3Qgd2hlcmUKKyMgd2Ugb25seSBoYXZlIGNhdCBhbmQgZ3ppcCB3aXRob3V0IGFueSBwaXBlLCB0 aGV5IHdvcmsgZmluZS4gQnV0IHRoZSByZXN0IGRvbid0LgorJG5vZGUtPmNvbW1hbmRfZmFpbHNf bGlrZSgKKwkJWworCQkJJ3BnX2R1bXAnLCAnLUZkJywgJy1CJywgJ3Bvc3RncmVzJywKKwkJCSIt LXBpcGUtY29tbWFuZD1cImNhdCA+ICR0ZW1wZGlyLyVmXCIiLF0sCisJcXIvcGdfZHVtcDogZXJy b3I6IEZhaWx1cmUgaW4gY2F0IHRvIGZpbGUvLAorCSdwZ19kdW1wOiBGYWlsdXJlIGluIGNhdCB0 byBmaWxlIHVzaW5nIHBpcGUtY29tbWFuZCcpOworCisKKyRub2RlLT5jb21tYW5kX29rKAorCQlb CisJCQkncGdfZHVtcCcsICctRmQnLCAnLUInLCAncG9zdGdyZXMnLAorCQkJIi0tcGlwZS1jb21t YW5kPVwiY2F0XCIiLF0sICJUZXN0aW5nIGp1c3Qgd2l0aCBjYXQiKTsKKworJG5vZGUtPmNvbW1h bmRfb2soCisJCVsKKwkJCSdwZ19kdW1wJywgJy1GZCcsICctQicsICdwb3N0Z3JlcycsCisJCQki LS1waXBlLWNvbW1hbmQ9XCJjYXQgfCBnemlwXCIiLF0sICJUZXN0aW5nIHdpdGggY2F0IHBpcGVk IHRvIGd6aXAiKTsKKworCiskbm9kZS0+Y29tbWFuZF9vaygKKwkJWworCQkJJ3BnX2R1bXAnLCAn LUZkJywgJy1CJywgJy14JywgJ3Bvc3RncmVzJywKKwkJCSItLXBpcGUtY29tbWFuZD1cImd6aXBc IiIsXSwgIlRlc3RpbmcganVzdCB3aXRoIGd6aXAiKTsKKworCiAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBUZXN0IGNvbm5lY3RpbmcgdG8gYSBub24tZXhpc3Rl bnQgZGF0YWJhc2UKIAotLSAKMi41Mi4wLjQ1Ny5nNmI1NDkxZGU0My1nb29nCgo= --00000000000028a893064842c44e Content-Type: application/x-patch; name="v6-0001-Add-pipe-command-support-for-directory-mode-of-pg.patch" Content-Disposition: attachment; filename="v6-0001-Add-pipe-command-support-for-directory-mode-of-pg.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkcgydum0 RnJvbSBjNzdjZjE0ZGQ4OWQ4Y2FiMmE1YzAwYTdhZTcxNmE3YWNiMDA3OTExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogVHVlLCAxMSBGZWIgMjAyNSAwODozMTowMiArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djYgMS81XSBBZGQgcGlwZS1jb21tYW5kIHN1cHBvcnQgZm9yIGRpcmVjdG9yeSBtb2RlIG9mIHBn X2R1bXAKCiogV2UgYWRkIGEgbmV3IGZsYWcgLS1waXBlLWNvbW1hbmQgd2hpY2ggY2FuIGJlIHVz ZWQgaW4gZGlyZWN0b3J5CiAgbW9kZS4gVGhpcyBhbGxvd3MgdXMgdG8gc3VwcG9ydCBtdWx0aXBs ZSBzdHJlYW1zIGFuZCB3ZSBjYW4KICBkbyBwb3N0IHByb2Nlc3NpbmcgbGlrZSBjb21wcmVzc2lv biwgZmlsdGVyaW5nIGV0Yy4gVGhpcyBpcwogIGN1cnJlbnRseSBub3QgcG9zc2libGUgd2l0aCBk aXJlY3RvcnktYXJjaGl2ZSBmb3JtYXQuCiogQ3VycmVudGx5IHRoaXMgZmxhZyBpcyBvbmx5IHN1 cHBvcnRlZCB3aXRoIGNvbXByZXNzaW9uIG5vbmUKICBhbmQgYXJjaGl2ZSBmb3JtYXQgZGlyZWN0 b3J5LgoqIFRoaXMgZmxhZyBjYW4ndCBiZSB1c2VkIHdpdGggdGhlIGZsYWcgLS1maWxlLiBPbmx5 IG9uZSBvZiB0aGUKICB0d28gZmxhZ3MgY2FuIGJlIHVzZWQgYXQgYSB0aW1lLgoqIFdlIHJldXNl IHRoZSBmaWxlbmFtZSBmaWVsZCBmb3IgdGhlIC0tcGlwZS1jb21tYW5kIGFsc28uIEFuZCBhZGQg YQogIGJvb2wgdG8gc3BlY2lmeSB0aGF0IHRoZSBmaWVsZCB3aWxsIGJlIHVzZWQgYXMgYSBwaXBl IGNvbW1hbmQuCiogTW9zdCBvZiB0aGUgY29kZSByZW1haW5zIGFzIGl0IGlzLiBUaGUgY29yZSBj aGFuZ2UgaXMgdGhhdAogIGluIGNhc2Ugb2YgLS1waXBlLWNvbW1hbmQsIGluc3RlYWQgb2YgZm9w ZW4gd2UgZG8gcG9wZW4uCiogVGhlIHVzZXIgd291bGQgbmVlZCBhIHdheSB0byBzdG9yZSB0aGUg cG9zdC1wcm9jZXNzaW5nIG91dHB1dAogIGluIGZpbGVzLiBGb3IgdGhhdCB3ZSBzdXBwb3J0IHRo ZSBzYW1lIGZvcm1hdCBhcyB0aGUgZGlyZWN0b3J5CiAgbW9kZSBjdXJyZW50bHkgZG9lcyB3aXRo IHRoZSBmbGFnIC0tZmlsZS4gV2UgYWxsb3cgdGhlIHVzZXIKICB0byBhZGQgYSBmb3JtYXQgc3Bl Y2lmaWVyICVmIHRvIHRoZSAtLXBpcGUtY29tbWFuZC4gQW5kIGZvciBlYWNoCiAgc3RyZWFtLCB0 aGUgZm9ybWF0IHNwZWNpZmllciBpcyByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nCiAg ZmlsZSBuYW1lLiBUaGlzIGZpbGUgbmFtZSBpcyB0aGUgc2FtZSBhcyBpdCB3b3VsZCBoYXZlIGJl ZW4gaWYKICB0aGUgZmxhZyAtLWZpbGUgaGFkIGJlZW4gdXNlZC4KKiBUbyBlbmFibGUgdGhlIGFi b3ZlLCB0aGVyZSBhcmUgYSBmZXcgcGxhY2VzIGluIHRoZSBjb2RlIHdoZXJlCiAgd2UgY2hhbmdl IHRoZSBmaWxlIG5hbWUgY3JlYXRpb24gbG9naWMuIEN1cnJlbnRseSB0aGUgZmlsZSBuYW1lCiAg aXMgYXBwZW5kZWQgdG8gdGhlIGRpcmVjdG9yeSBuYW1lIHdoaWNoIGlzIHByb3ZpZGVkIHdpdGgg LS1maWxlIGZsYWcuCiAgSW4gY2FzZSBvZiAtLXBpcGUtY29tbWFuZCwgd2UgaW5zdGVhZCByZXBs YWNlICVmIHdpdGggdGhlIGZpbGUgbmFtZS4KICBUaGlzIGNoYW5nZSBpcyBtYWRlIGZvciB0aGUg Y29tbW9uIHVzZSBjYXNlIGFuZCBzZXBhcmF0ZWx5IGZvcgogIGJsb2IgZmlsZXMuCiogVGhlcmUg aXMgYW4gb3BlbiBxdWVzdGlvbiBvbiB3aGF0IG1vZGUgdG8gdXNlIGluIGNhc2Ugb2YgbGFyZ2Ug b2JqZWN0cwogIFRPQyBmaWxlLiBDdXJyZW50bHkgdGhlIGNvZGUgdXNlcyAiYWIiIGJ1dCB0aGF0 IHdvbid0IHdvcmsgZm9yIHBvcGVuLgogIFdlIGhhdmUgcHJvcG9zZWQgYSBmZXcgb3B0aW9ucyBp biB0aGUgY29tbWVudHMgcmVnYXJkaW5nIHRoaXMuIEZvciB0aGUKICB0aW1lIGJlaW5nIHdlIGFy ZSB1c2luZyBtb2RlIFBHX0JJTkFSWV9XIGZvciB0aGUgcGlwZSB1c2UgY2FzZS4KLS0tCiBzcmMv YmluL3BnX2R1bXAvY29tcHJlc3NfZ3ppcC5jICAgICAgIHwgICA5ICsrLQogc3JjL2Jpbi9wZ19k dW1wL2NvbXByZXNzX2d6aXAuaCAgICAgICB8ICAgMyArLQogc3JjL2Jpbi9wZ19kdW1wL2NvbXBy ZXNzX2lvLmMgICAgICAgICB8ICAyNyArKysrKy0tCiBzcmMvYmluL3BnX2R1bXAvY29tcHJlc3Nf aW8uaCAgICAgICAgIHwgIDExICsrLQogc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2x6NC5jICAg ICAgICB8ICAxMSArKy0KIHNyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19sejQuaCAgICAgICAgfCAg IDMgKy0KIHNyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19ub25lLmMgICAgICAgfCAgMjYgKysrKysr LQogc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX25vbmUuaCAgICAgICB8ICAgMyArLQogc3JjL2Jp bi9wZ19kdW1wL2NvbXByZXNzX3pzdGQuYyAgICAgICB8ICAxMCArKy0KIHNyYy9iaW4vcGdfZHVt cC9jb21wcmVzc196c3RkLmggICAgICAgfCAgIDMgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXAuaCAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2 ZXIuYyAgfCAgMjIgKysrLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmgg IHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMgfCAxMDMgKysr KysrKysrKysrKysrKysrKysrLS0tLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAg ICAgICAgfCAgMzYgKysrKysrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jICAgICAg ICAgIHwgICAyICstCiAxNiBmaWxlcyBjaGFuZ2VkLCAyMjAgaW5zZXJ0aW9ucygrKSwgNTYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2d6aXAuYyBi L3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19nemlwLmMKaW5kZXggNDFhM2QwNTlmOTguLjc1YmVm Mjk1NjJlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfZ3ppcC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19nemlwLmMKQEAgLTQxNyw4ICs0MTcsMTIgQEAgR3pp cF9vcGVuX3dyaXRlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKm1vZGUsIENvbXByZXNz RmlsZUhhbmRsZSAqQ0ZIKQogCiB2b2lkCiBJbml0Q29tcHJlc3NGaWxlSGFuZGxlR3ppcChDb21w cmVzc0ZpbGVIYW5kbGUgKkNGSCwKLQkJCQkJCSAgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmlj YXRpb24gY29tcHJlc3Npb25fc3BlYykKKwkJCQkJCSAgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNp ZmljYXRpb24gY29tcHJlc3Npb25fc3BlYywKKwkJCQkJCSAgIGJvb2wgcGF0aF9pc19waXBlX2Nv bW1hbmQpCiB7CisJaWYgKHBhdGhfaXNfcGlwZV9jb21tYW5kKQorCQlwZ19mYXRhbCgiY1BpcGUg Y29tbWFuZCBub3Qgc3VwcG9ydGVkIGZvciBHemlwIik7CisKIAlDRkgtPm9wZW5fZnVuYyA9IEd6 aXBfb3BlbjsKIAlDRkgtPm9wZW5fd3JpdGVfZnVuYyA9IEd6aXBfb3Blbl93cml0ZTsKIAlDRkgt PnJlYWRfZnVuYyA9IEd6aXBfcmVhZDsKQEAgLTQ0Myw3ICs0NDcsOCBAQCBJbml0Q29tcHJlc3Nv ckd6aXAoQ29tcHJlc3NvclN0YXRlICpjcywKIAogdm9pZAogSW5pdENvbXByZXNzRmlsZUhhbmRs ZUd6aXAoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCi0JCQkJCQkgICBjb25zdCBwZ19jb21wcmVz c19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpCisJCQkJCQkgICBjb25zdCBwZ19jb21w cmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCisJCQkJCQkgICBib29sIHBhdGhf aXNfcGlwZV9jb21tYW5kKQogewogCXBnX2ZhdGFsKCJ0aGlzIGJ1aWxkIGRvZXMgbm90IHN1cHBv cnQgY29tcHJlc3Npb24gd2l0aCAlcyIsICJnemlwIik7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvY29tcHJlc3NfZ3ppcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2d6aXAu aAppbmRleCBhZjFhMmEzNDQ1ZS4uZjc3YzVjODZjNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9jb21wcmVzc19nemlwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2d6aXAu aApAQCAtMTksNiArMTksNyBAQAogZXh0ZXJuIHZvaWQgSW5pdENvbXByZXNzb3JHemlwKENvbXBy ZXNzb3JTdGF0ZSAqY3MsCiAJCQkJCQkJICAgY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlv biBjb21wcmVzc2lvbl9zcGVjKTsKIGV4dGVybiB2b2lkIEluaXRDb21wcmVzc0ZpbGVIYW5kbGVH emlwKENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILAotCQkJCQkJCQkJICAgY29uc3QgcGdfY29tcHJl c3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKTsKKwkJCQkJCQkJCSAgIGNvbnN0IHBn X2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3BlYywKKwkJCQkJCQkJCSAgIGJv b2wgcGF0aF9pc19waXBlX2NvbW1hbmQpOwogCiAjZW5kaWYJCQkJCQkJLyogX0NPTVBSRVNTX0da SVBfSF8gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19pby5jIGIvc3Jj L2Jpbi9wZ19kdW1wL2NvbXByZXNzX2lvLmMKaW5kZXggYWY0N2VmODg4MzkuLjVkMDlkN2JmNDU4 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfaW8uYworKysgYi9zcmMvYmlu L3BnX2R1bXAvY29tcHJlc3NfaW8uYwpAQCAtMTkxLDIwICsxOTEsMzAgQEAgZnJlZV9rZWVwX2Vy cm5vKHZvaWQgKnApCiAgKiBJbml0aWFsaXplIGEgY29tcHJlc3MgZmlsZSBoYW5kbGUgZm9yIHRo ZSBzcGVjaWZpZWQgY29tcHJlc3Npb24gYWxnb3JpdGhtLgogICovCiBDb21wcmVzc0ZpbGVIYW5k bGUgKgotSW5pdENvbXByZXNzRmlsZUhhbmRsZShjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0 aW9uIGNvbXByZXNzaW9uX3NwZWMpCitJbml0Q29tcHJlc3NGaWxlSGFuZGxlKGNvbnN0IHBnX2Nv bXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3BlYywKKwkJCQkJICAgYm9vbCBwYXRo X2lzX3BpcGVfY29tbWFuZCkKIHsKIAlDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSDsKIAorCiAJQ0ZI ID0gcGdfbWFsbG9jMChzaXplb2YoQ29tcHJlc3NGaWxlSGFuZGxlKSk7CiAKLQlpZiAoY29tcHJl c3Npb25fc3BlYy5hbGdvcml0aG0gPT0gUEdfQ09NUFJFU1NJT05fTk9ORSkKLQkJSW5pdENvbXBy ZXNzRmlsZUhhbmRsZU5vbmUoQ0ZILCBjb21wcmVzc2lvbl9zcGVjKTsKKwkvKgorCSAqIEFsd2F5 cyBzZXQgdG8gbm9uLWNvbXByZXNzZWQgd2hlbiBwYXRoX2lzX3BpcGVfY29tbWFuZCBhc3N1bWlu ZyB0aGF0CisJICogZXh0ZXJuYWwgY29tcHJlc3NvciBhcyBwYXJ0IG9mIHBpcGUgaXMgbW9yZSBl ZmZpY2llbnQuIENhbiByZXZpZXcgaW4KKwkgKiB0aGUgZnV0dXJlLgorCSAqLworCWlmIChwYXRo X2lzX3BpcGVfY29tbWFuZCkKKwkJSW5pdENvbXByZXNzRmlsZUhhbmRsZU5vbmUoQ0ZILCBjb21w cmVzc2lvbl9zcGVjLCBwYXRoX2lzX3BpcGVfY29tbWFuZCk7CisKKwllbHNlIGlmIChjb21wcmVz c2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9OT05FKQorCQlJbml0Q29tcHJl c3NGaWxlSGFuZGxlTm9uZShDRkgsIGNvbXByZXNzaW9uX3NwZWMsIHBhdGhfaXNfcGlwZV9jb21t YW5kKTsKIAllbHNlIGlmIChjb21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVT U0lPTl9HWklQKQotCQlJbml0Q29tcHJlc3NGaWxlSGFuZGxlR3ppcChDRkgsIGNvbXByZXNzaW9u X3NwZWMpOworCQlJbml0Q29tcHJlc3NGaWxlSGFuZGxlR3ppcChDRkgsIGNvbXByZXNzaW9uX3Nw ZWMsIHBhdGhfaXNfcGlwZV9jb21tYW5kKTsKIAllbHNlIGlmIChjb21wcmVzc2lvbl9zcGVjLmFs Z29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9MWjQpCi0JCUluaXRDb21wcmVzc0ZpbGVIYW5kbGVM WjQoQ0ZILCBjb21wcmVzc2lvbl9zcGVjKTsKKwkJSW5pdENvbXByZXNzRmlsZUhhbmRsZUxaNChD RkgsIGNvbXByZXNzaW9uX3NwZWMsIHBhdGhfaXNfcGlwZV9jb21tYW5kKTsKIAllbHNlIGlmIChj b21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9aU1REKQotCQlJbml0 Q29tcHJlc3NGaWxlSGFuZGxlWnN0ZChDRkgsIGNvbXByZXNzaW9uX3NwZWMpOworCQlJbml0Q29t cHJlc3NGaWxlSGFuZGxlWnN0ZChDRkgsIGNvbXByZXNzaW9uX3NwZWMsIHBhdGhfaXNfcGlwZV9j b21tYW5kKTsKIAogCXJldHVybiBDRkg7CiB9CkBAIC0yMzcsNyArMjQ3LDggQEAgY2hlY2tfY29t cHJlc3NlZF9maWxlKGNvbnN0IGNoYXIgKnBhdGgsIGNoYXIgKipmbmFtZSwgY2hhciAqZXh0KQog ICogT24gZmFpbHVyZSwgcmV0dXJuIE5VTEwgd2l0aCBhbiBlcnJvciBjb2RlIGluIGVycm5vLgog ICovCiBDb21wcmVzc0ZpbGVIYW5kbGUgKgotSW5pdERpc2NvdmVyQ29tcHJlc3NGaWxlSGFuZGxl KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKm1vZGUpCitJbml0RGlzY292ZXJDb21wcmVz c0ZpbGVIYW5kbGUoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqbW9kZSwKKwkJCQkJCQkg ICBib29sIHBhdGhfaXNfcGlwZV9jb21tYW5kKQogewogCUNvbXByZXNzRmlsZUhhbmRsZSAqQ0ZI ID0gTlVMTDsKIAlzdHJ1Y3Qgc3RhdCBzdDsKQEAgLTI2OCw3ICsyNzksNyBAQCBJbml0RGlzY292 ZXJDb21wcmVzc0ZpbGVIYW5kbGUoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqbW9kZSkK IAkJCWNvbXByZXNzaW9uX3NwZWMuYWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05fWlNURDsKIAl9 CiAKLQlDRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKGNvbXByZXNzaW9uX3NwZWMpOworCUNG SCA9IEluaXRDb21wcmVzc0ZpbGVIYW5kbGUoY29tcHJlc3Npb25fc3BlYywgcGF0aF9pc19waXBl X2NvbW1hbmQpOwogCWVycm5vID0gMDsKIAlpZiAoIUNGSC0+b3Blbl9mdW5jKGZuYW1lLCAtMSwg bW9kZSwgQ0ZIKSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfaW8u aCBiL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19pby5oCmluZGV4IGVkN2IxNGYwOTYzLi5iZDBm YzI2MzRkYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2lvLmgKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2lvLmgKQEAgLTE4Niw2ICsxODYsMTEgQEAgc3RydWN0 IENvbXByZXNzRmlsZUhhbmRsZQogCSAqLwogCXBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29t cHJlc3Npb25fc3BlYzsKIAorCS8qCisJICogQ29tcHJlc3Npb24gc3BlY2lmaWNhdGlvbiBmb3Ig dGhpcyBmaWxlIGhhbmRsZS4KKwkgKi8KKwlib29sCQlwYXRoX2lzX3BpcGVfY29tbWFuZDsKKwog CS8qCiAJICogUHJpdmF0ZSBkYXRhIHRvIGJlIHVzZWQgYnkgdGhlIGNvbXByZXNzb3IuCiAJICov CkBAIC0xOTUsNyArMjAwLDggQEAgc3RydWN0IENvbXByZXNzRmlsZUhhbmRsZQogLyoKICAqIElu aXRpYWxpemUgYSBjb21wcmVzcyBmaWxlIGhhbmRsZSB3aXRoIHRoZSByZXF1ZXN0ZWQgY29tcHJl c3Npb24uCiAgKi8KLWV4dGVybiBDb21wcmVzc0ZpbGVIYW5kbGUgKkluaXRDb21wcmVzc0ZpbGVI YW5kbGUoY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKTsK K2V4dGVybiBDb21wcmVzc0ZpbGVIYW5kbGUgKkluaXRDb21wcmVzc0ZpbGVIYW5kbGUoY29uc3Qg cGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjLAorCQkJCQkJCQkJCQkJ ICBib29sIHBhdGhfaXNfcGlwZV9jb21tYW5kKTsKIAogLyoKICAqIEluaXRpYWxpemUgYSBjb21w cmVzcyBmaWxlIHN0cmVhbS4gSW5mZXIgdGhlIGNvbXByZXNzaW9uIGFsZ29yaXRobQpAQCAtMjAz LDYgKzIwOSw3IEBAIGV4dGVybiBDb21wcmVzc0ZpbGVIYW5kbGUgKkluaXRDb21wcmVzc0ZpbGVI YW5kbGUoY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvCiAgKiBzdWZmaXhlcyBpbiAncGF0 aCcuCiAgKi8KIGV4dGVybiBDb21wcmVzc0ZpbGVIYW5kbGUgKkluaXREaXNjb3ZlckNvbXByZXNz RmlsZUhhbmRsZShjb25zdCBjaGFyICpwYXRoLAotCQkJCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIg Km1vZGUpOworCQkJCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKm1vZGUsCisJCQkJCQkJCQkJCQkJ CSAgYm9vbCBwYXRoX2lzX3BpcGVfY29tbWFuZCk7CiBleHRlcm4gYm9vbCBFbmRDb21wcmVzc0Zp bGVIYW5kbGUoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvY29tcHJlc3NfbHo0LmMgYi9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3Nf bHo0LmMKaW5kZXggMjBhODc0MWQzY2EuLmRjZTZjYzU1OTEwIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvY29tcHJlc3NfbHo0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2x6 NC5jCkBAIC03MzksMTAgKzczOSwxNCBAQCBMWjRTdHJlYW1fb3Blbl93cml0ZShjb25zdCBjaGFy ICpwYXRoLCBjb25zdCBjaGFyICptb2RlLCBDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSAogICovCiB2 b2lkCiBJbml0Q29tcHJlc3NGaWxlSGFuZGxlTFo0KENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILAot CQkJCQkJICBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMp CisJCQkJCQkgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3Bl YywKKwkJCQkJCSAgYm9vbCBwYXRoX2lzX3BpcGVfY29tbWFuZCkKIHsKIAlMWjRTdGF0ZSAgICpz dGF0ZTsKIAorCWlmIChwYXRoX2lzX3BpcGVfY29tbWFuZCkKKwkJcGdfZmF0YWwoIlBpcGUgY29t bWFuZCBub3Qgc3VwcG9ydGVkIGZvciBMWjQiKTsKKwogCUNGSC0+b3Blbl9mdW5jID0gTFo0U3Ry ZWFtX29wZW47CiAJQ0ZILT5vcGVuX3dyaXRlX2Z1bmMgPSBMWjRTdHJlYW1fb3Blbl93cml0ZTsK IAlDRkgtPnJlYWRfZnVuYyA9IExaNFN0cmVhbV9yZWFkOwpAQCAtNzU4LDYgKzc2Miw4IEBAIElu aXRDb21wcmVzc0ZpbGVIYW5kbGVMWjQoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCiAJaWYgKENG SC0+Y29tcHJlc3Npb25fc3BlYy5sZXZlbCA+PSAwKQogCQlzdGF0ZS0+cHJlZnMuY29tcHJlc3Np b25MZXZlbCA9IENGSC0+Y29tcHJlc3Npb25fc3BlYy5sZXZlbDsKIAorCUNGSC0+cGF0aF9pc19w aXBlX2NvbW1hbmQgPSBwYXRoX2lzX3BpcGVfY29tbWFuZDsKKwogCUNGSC0+cHJpdmF0ZV9kYXRh ID0gc3RhdGU7CiB9CiAjZWxzZQkJCQkJCQkvKiBVU0VfTFo0ICovCkBAIC03NzAsNyArNzc2LDgg QEAgSW5pdENvbXByZXNzb3JMWjQoQ29tcHJlc3NvclN0YXRlICpjcywKIAogdm9pZAogSW5pdENv bXByZXNzRmlsZUhhbmRsZUxaNChDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCwKLQkJCQkJCSAgY29u c3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKQorCQkJCQkJICBj b25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCisJCQkJCQkg IGJvb2wgcGF0aF9pc19waXBlX2NvbW1hbmQpCiB7CiAJcGdfZmF0YWwoInRoaXMgYnVpbGQgZG9l cyBub3Qgc3VwcG9ydCBjb21wcmVzc2lvbiB3aXRoICVzIiwgIkxaNCIpOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2x6NC5oIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXBy ZXNzX2x6NC5oCmluZGV4IDczNjBhNDY5ZmMwLi40OTAxNDFlZThhMSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL2NvbXByZXNzX2x6NC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVz c19sejQuaApAQCAtMTksNiArMTksNyBAQAogZXh0ZXJuIHZvaWQgSW5pdENvbXByZXNzb3JMWjQo Q29tcHJlc3NvclN0YXRlICpjcywKIAkJCQkJCQkgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmlj YXRpb24gY29tcHJlc3Npb25fc3BlYyk7CiBleHRlcm4gdm9pZCBJbml0Q29tcHJlc3NGaWxlSGFu ZGxlTFo0KENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILAotCQkJCQkJCQkJICBjb25zdCBwZ19jb21w cmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpOworCQkJCQkJCQkJICBjb25zdCBw Z19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCisJCQkJCQkJCQkgIGJv b2wgcGF0aF9pc19waXBlX2NvbW1hbmQpOwogCiAjZW5kaWYJCQkJCQkJLyogX0NPTVBSRVNTX0xa NF9IXyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX25vbmUuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9jb21wcmVzc19ub25lLmMKaW5kZXggOTk5NzUxOWUzNTEuLjgwMjAzZGU2 ZGJjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3Nfbm9uZS5jCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9jb21wcmVzc19ub25lLmMKQEAgLTIxMSw3ICsyMTEsMTAgQEAgY2xvc2Vf bm9uZShDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCkKIAlpZiAoZnApCiAJewogCQllcnJubyA9IDA7 Ci0JCXJldCA9IGZjbG9zZShmcCk7CisJCWlmIChDRkgtPnBhdGhfaXNfcGlwZV9jb21tYW5kKQor CQkJcmV0ID0gcGNsb3NlKGZwKTsKKwkJZWxzZQorCQkJcmV0ID0gZmNsb3NlKGZwKTsKIAkJaWYg KHJldCAhPSAwKQogCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgY2xvc2UgZmlsZTogJW0iKTsK IAl9CkBAIC0yMzMsNyArMjM2LDEyIEBAIG9wZW5fbm9uZShjb25zdCBjaGFyICpwYXRoLCBpbnQg ZmQsIGNvbnN0IGNoYXIgKm1vZGUsIENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZIKQogCWlmIChmZCA+ PSAwKQogCQlDRkgtPnByaXZhdGVfZGF0YSA9IGZkb3BlbihkdXAoZmQpLCBtb2RlKTsKIAllbHNl Ci0JCUNGSC0+cHJpdmF0ZV9kYXRhID0gZm9wZW4ocGF0aCwgbW9kZSk7CisJeworCQlpZiAoQ0ZI LT5wYXRoX2lzX3BpcGVfY29tbWFuZCkKKwkJCUNGSC0+cHJpdmF0ZV9kYXRhID0gcG9wZW4ocGF0 aCwgbW9kZSk7CisJCWVsc2UKKwkJCUNGSC0+cHJpdmF0ZV9kYXRhID0gZm9wZW4ocGF0aCwgbW9k ZSk7CisJfQogCiAJaWYgKENGSC0+cHJpdmF0ZV9kYXRhID09IE5VTEwpCiAJCXJldHVybiBmYWxz ZTsKQEAgLTI0Niw3ICsyNTQsMTQgQEAgb3Blbl93cml0ZV9ub25lKGNvbnN0IGNoYXIgKnBhdGgs IGNvbnN0IGNoYXIgKm1vZGUsIENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZIKQogewogCUFzc2VydChD RkgtPnByaXZhdGVfZGF0YSA9PSBOVUxMKTsKIAotCUNGSC0+cHJpdmF0ZV9kYXRhID0gZm9wZW4o cGF0aCwgbW9kZSk7CisJcGdfbG9nX2RlYnVnKCJPcGVuaW5nICVzLCBwaXBlIGlzICVzIiwKKwkJ CQkgcGF0aCwgQ0ZILT5wYXRoX2lzX3BpcGVfY29tbWFuZCA/ICJ0cnVlIiA6ICJmYWxzZSIpOwor CisJaWYgKENGSC0+cGF0aF9pc19waXBlX2NvbW1hbmQpCisJCUNGSC0+cHJpdmF0ZV9kYXRhID0g cG9wZW4ocGF0aCwgbW9kZSk7CisJZWxzZQorCQlDRkgtPnByaXZhdGVfZGF0YSA9IGZvcGVuKHBh dGgsIG1vZGUpOworCiAJaWYgKENGSC0+cHJpdmF0ZV9kYXRhID09IE5VTEwpCiAJCXJldHVybiBm YWxzZTsKIApAQCAtMjU5LDcgKzI3NCw4IEBAIG9wZW5fd3JpdGVfbm9uZShjb25zdCBjaGFyICpw YXRoLCBjb25zdCBjaGFyICptb2RlLCBDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCkKIAogdm9pZAog SW5pdENvbXByZXNzRmlsZUhhbmRsZU5vbmUoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCi0JCQkJ CQkgICBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpCisJ CQkJCQkgICBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMs CisJCQkJCQkgICBib29sIHBhdGhfaXNfcGlwZV9jb21tYW5kKQogewogCUNGSC0+b3Blbl9mdW5j ID0gb3Blbl9ub25lOwogCUNGSC0+b3Blbl93cml0ZV9mdW5jID0gb3Blbl93cml0ZV9ub25lOwpA QCAtMjcxLDUgKzI4Nyw3IEBAIEluaXRDb21wcmVzc0ZpbGVIYW5kbGVOb25lKENvbXByZXNzRmls ZUhhbmRsZSAqQ0ZILAogCUNGSC0+ZW9mX2Z1bmMgPSBlb2Zfbm9uZTsKIAlDRkgtPmdldF9lcnJv cl9mdW5jID0gZ2V0X2Vycm9yX25vbmU7CiAKKwlDRkgtPnBhdGhfaXNfcGlwZV9jb21tYW5kID0g cGF0aF9pc19waXBlX2NvbW1hbmQ7CisKIAlDRkgtPnByaXZhdGVfZGF0YSA9IE5VTEw7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3Nfbm9uZS5oIGIvc3JjL2Jpbi9wZ19k dW1wL2NvbXByZXNzX25vbmUuaAppbmRleCA1MTM0ZjAxMmVlOS4uZDg5OGEyZDQxMWMgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19ub25lLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL2NvbXByZXNzX25vbmUuaApAQCAtMTksNiArMTksNyBAQAogZXh0ZXJuIHZvaWQgSW5pdENv bXByZXNzb3JOb25lKENvbXByZXNzb3JTdGF0ZSAqY3MsCiAJCQkJCQkJICAgY29uc3QgcGdfY29t cHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKTsKIGV4dGVybiB2b2lkIEluaXRD b21wcmVzc0ZpbGVIYW5kbGVOb25lKENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILAotCQkJCQkJCQkJ ICAgY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjKTsKKwkJ CQkJCQkJCSAgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3Bl YywKKwkJCQkJCQkJCSAgIGJvb2wgcGF0aF9pc19waXBlX2NvbW1hbmQpOwogCiAjZW5kaWYJCQkJ CQkJLyogX0NPTVBSRVNTX05PTkVfSF8gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9j b21wcmVzc196c3RkLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfenN0ZC5jCmluZGV4IDg4 OTY5MWFhMGMyLi4zNTlhZDYyN2YxYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbXBy ZXNzX3pzdGQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tcHJlc3NfenN0ZC5jCkBAIC0yNyw3 ICsyNyw4IEBAIEluaXRDb21wcmVzc29yWnN0ZChDb21wcmVzc29yU3RhdGUgKmNzLCBjb25zdCBw Z19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzCiB9CiAKIHZvaWQKLUluaXRDb21wcmVz c0ZpbGVIYW5kbGVac3RkKENvbXByZXNzRmlsZUhhbmRsZSAqQ0ZILCBjb25zdCBwZ19jb21wcmVz c19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpCitJbml0Q29tcHJlc3NGaWxlSGFuZGxl WnN0ZChDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCwgY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNh dGlvbiBjb21wcmVzc2lvbl9zcGVjLAorCQkJCQkJICAgYm9vbCBwYXRoX2lzX3BpcGVfY29tbWFu ZCkKIHsKIAlwZ19mYXRhbCgidGhpcyBidWlsZCBkb2VzIG5vdCBzdXBwb3J0IGNvbXByZXNzaW9u IHdpdGggJXMiLCAiWlNURCIpOwogfQpAQCAtNTU4LDggKzU1OSwxMiBAQCBac3RkX2dldF9lcnJv cihDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCkKIAogdm9pZAogSW5pdENvbXByZXNzRmlsZUhhbmRs ZVpzdGQoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCi0JCQkJCQkgICBjb25zdCBwZ19jb21wcmVz c19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpCisJCQkJCQkgICBjb25zdCBwZ19jb21w cmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCisJCQkJCQkgICBib29sIHBhdGhf aXNfcGlwZV9jb21tYW5kKQogeworCWlmIChwYXRoX2lzX3BpcGVfY29tbWFuZCkKKwkJcGdfZmF0 YWwoIlBpcGUgY29tbWFuZCBub3Qgc3VwcG9ydGVkIGZvciBac3RkIik7CisKIAlDRkgtPm9wZW5f ZnVuYyA9IFpzdGRfb3BlbjsKIAlDRkgtPm9wZW5fd3JpdGVfZnVuYyA9IFpzdGRfb3Blbl93cml0 ZTsKIAlDRkgtPnJlYWRfZnVuYyA9IFpzdGRfcmVhZDsKQEAgLTU3MSw2ICs1NzYsNyBAQCBJbml0 Q29tcHJlc3NGaWxlSGFuZGxlWnN0ZChDb21wcmVzc0ZpbGVIYW5kbGUgKkNGSCwKIAlDRkgtPmdl dF9lcnJvcl9mdW5jID0gWnN0ZF9nZXRfZXJyb3I7CiAKIAlDRkgtPmNvbXByZXNzaW9uX3NwZWMg PSBjb21wcmVzc2lvbl9zcGVjOworCUNGSC0+cGF0aF9pc19waXBlX2NvbW1hbmQgPSBwYXRoX2lz X3BpcGVfY29tbWFuZDsKIAogCUNGSC0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKIH0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc196c3RkLmggYi9zcmMvYmluL3BnX2R1bXAvY29t cHJlc3NfenN0ZC5oCmluZGV4IDEyMjJkNzEwN2Q5Li4xZjIzZTcyNjZiZiAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX3pzdGQuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvY29t cHJlc3NfenN0ZC5oCkBAIC0yMCw2ICsyMCw3IEBACiBleHRlcm4gdm9pZCBJbml0Q29tcHJlc3Nv clpzdGQoQ29tcHJlc3NvclN0YXRlICpjcywKIAkJCQkJCQkgICBjb25zdCBwZ19jb21wcmVzc19z cGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpOwogZXh0ZXJuIHZvaWQgSW5pdENvbXByZXNz RmlsZUhhbmRsZVpzdGQoQ29tcHJlc3NGaWxlSGFuZGxlICpDRkgsCi0JCQkJCQkJCQkgICBjb25z dCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMpOworCQkJCQkJCQkJ ICAgY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21wcmVzc2lvbl9zcGVjLAorCQkJ CQkJCQkJICAgYm9vbCBwYXRoX2lzX3BpcGVfY29tbWFuZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBD T01QUkVTU19aU1REX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAppbmRleCBkOTA0MWRhZDcyMC4uNTBiMGFm YTRlN2MgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwLmgKQEAgLTMxNSwxNCArMzE1LDE1IEBAIGV4dGVybiB2b2lk IFByb2Nlc3NBcmNoaXZlUmVzdG9yZU9wdGlvbnMoQXJjaGl2ZSAqQUhYKTsKIGV4dGVybiB2b2lk IFJlc3RvcmVBcmNoaXZlKEFyY2hpdmUgKkFIWCk7CiAKIC8qIE9wZW4gYW4gZXhpc3RpbmcgYXJj aGl2ZSAqLwotZXh0ZXJuIEFyY2hpdmUgKk9wZW5BcmNoaXZlKGNvbnN0IGNoYXIgKkZpbGVTcGVj LCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCk7CitleHRlcm4gQXJjaGl2ZSAqT3BlbkFyY2hpdmUo Y29uc3QgY2hhciAqRmlsZVNwZWMsIGNvbnN0IEFyY2hpdmVGb3JtYXQgZm10LCBib29sIEZpbGVT cGVjSXNQaXBlKTsKIAogLyogQ3JlYXRlIGEgbmV3IGFyY2hpdmUgKi8KIGV4dGVybiBBcmNoaXZl ICpDcmVhdGVBcmNoaXZlKGNvbnN0IGNoYXIgKkZpbGVTcGVjLCBjb25zdCBBcmNoaXZlRm9ybWF0 IGZtdCwKIAkJCQkJCQkgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Np b25fc3BlYywKIAkJCQkJCQkgIGJvb2wgZG9zeW5jLCBBcmNoaXZlTW9kZSBtb2RlLAogCQkJCQkJ CSAgU2V0dXBXb3JrZXJQdHJUeXBlIHNldHVwRHVtcFdvcmtlciwKLQkJCQkJCQkgIERhdGFEaXJT eW5jTWV0aG9kIHN5bmNfbWV0aG9kKTsKKwkJCQkJCQkgIERhdGFEaXJTeW5jTWV0aG9kIHN5bmNf bWV0aG9kLAorCQkJCQkJCSAgYm9vbCBGaWxlU3BlY0lzUGlwZSk7CiAKIC8qIFRoZSAtLWxpc3Qg b3B0aW9uICovCiBleHRlcm4gdm9pZCBQcmludFRPQ1N1bW1hcnkoQXJjaGl2ZSAqQUhYKTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCA0YTYzZjczOTJhZS4uMWM4MjAyNzg3 NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTU2LDcgKzU2LDcgQEAg c3RhdGljIEFyY2hpdmVIYW5kbGUgKl9hbGxvY0FIKGNvbnN0IGNoYXIgKkZpbGVTcGVjLCBjb25z dCBBcmNoaXZlRm9ybWF0IGZtdCwKIAkJCQkJCQkgICBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZp Y2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCiAJCQkJCQkJICAgYm9vbCBkb3N5bmMsIEFyY2hpdmVN b2RlIG1vZGUsCiAJCQkJCQkJICAgU2V0dXBXb3JrZXJQdHJUeXBlIHNldHVwV29ya2VyUHRyLAot CQkJCQkJCSAgIERhdGFEaXJTeW5jTWV0aG9kIHN5bmNfbWV0aG9kKTsKKwkJCQkJCQkgICBEYXRh RGlyU3luY01ldGhvZCBzeW5jX21ldGhvZCwgYm9vbCBGaWxlU3BlY0lzUGlwZSk7CiBzdGF0aWMg dm9pZCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBUb2NFbnRy eSAqdGUpOwogc3RhdGljIHZvaWQgX3ByaW50VG9jRW50cnkoQXJjaGl2ZUhhbmRsZSAqQUgsIFRv Y0VudHJ5ICp0ZSwgY29uc3QgY2hhciAqcGZ4KTsKIHN0YXRpYyB2b2lkIF9kb1NldEZpeGVkT3V0 cHV0U3RhdGUoQXJjaGl2ZUhhbmRsZSAqQUgpOwpAQCAtMjMyLDExICsyMzIsMTIgQEAgQ3JlYXRl QXJjaGl2ZShjb25zdCBjaGFyICpGaWxlU3BlYywgY29uc3QgQXJjaGl2ZUZvcm1hdCBmbXQsCiAJ CQkgIGNvbnN0IHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gY29tcHJlc3Npb25fc3BlYywKIAkJ CSAgYm9vbCBkb3N5bmMsIEFyY2hpdmVNb2RlIG1vZGUsCiAJCQkgIFNldHVwV29ya2VyUHRyVHlw ZSBzZXR1cER1bXBXb3JrZXIsCi0JCQkgIERhdGFEaXJTeW5jTWV0aG9kIHN5bmNfbWV0aG9kKQor CQkJICBEYXRhRGlyU3luY01ldGhvZCBzeW5jX21ldGhvZCwKKwkJCSAgYm9vbCBGaWxlU3BlY0lz UGlwZSkKIAogewogCUFyY2hpdmVIYW5kbGUgKkFIID0gX2FsbG9jQUgoRmlsZVNwZWMsIGZtdCwg Y29tcHJlc3Npb25fc3BlYywKLQkJCQkJCQkJIGRvc3luYywgbW9kZSwgc2V0dXBEdW1wV29ya2Vy LCBzeW5jX21ldGhvZCk7CisJCQkJCQkJCSBkb3N5bmMsIG1vZGUsIHNldHVwRHVtcFdvcmtlciwg c3luY19tZXRob2QsIEZpbGVTcGVjSXNQaXBlKTsKIAogCXJldHVybiAoQXJjaGl2ZSAqKSBBSDsK IH0KQEAgLTI0NCw3ICsyNDUsNyBAQCBDcmVhdGVBcmNoaXZlKGNvbnN0IGNoYXIgKkZpbGVTcGVj LCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCwKIC8qIE9wZW4gYW4gZXhpc3RpbmcgYXJjaGl2ZSAq LwogLyogUHVibGljICovCiBBcmNoaXZlICoKLU9wZW5BcmNoaXZlKGNvbnN0IGNoYXIgKkZpbGVT cGVjLCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCkKK09wZW5BcmNoaXZlKGNvbnN0IGNoYXIgKkZp bGVTcGVjLCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCwgYm9vbCBGaWxlU3BlY0lzUGlwZSkKIHsK IAlBcmNoaXZlSGFuZGxlICpBSDsKIAlwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNz aW9uX3NwZWMgPSB7MH07CkBAIC0yNTIsNyArMjUzLDcgQEAgT3BlbkFyY2hpdmUoY29uc3QgY2hh ciAqRmlsZVNwZWMsIGNvbnN0IEFyY2hpdmVGb3JtYXQgZm10KQogCWNvbXByZXNzaW9uX3NwZWMu YWxnb3JpdGhtID0gUEdfQ09NUFJFU1NJT05fTk9ORTsKIAlBSCA9IF9hbGxvY0FIKEZpbGVTcGVj LCBmbXQsIGNvbXByZXNzaW9uX3NwZWMsIHRydWUsCiAJCQkJICBhcmNoTW9kZVJlYWQsIHNldHVw UmVzdG9yZVdvcmtlciwKLQkJCQkgIERBVEFfRElSX1NZTkNfTUVUSE9EX0ZTWU5DKTsKKwkJCQkg IERBVEFfRElSX1NZTkNfTUVUSE9EX0ZTWU5DLCBGaWxlU3BlY0lzUGlwZSk7CiAKIAlyZXR1cm4g KEFyY2hpdmUgKikgQUg7CiB9CkBAIC0xNzIwLDcgKzE3MjEsNyBAQCBTZXRPdXRwdXQoQXJjaGl2 ZUhhbmRsZSAqQUgsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogCWVsc2UKIAkJbW9kZSA9IFBHX0JJ TkFSWV9XOwogCi0JQ0ZIID0gSW5pdENvbXByZXNzRmlsZUhhbmRsZShjb21wcmVzc2lvbl9zcGVj KTsKKwlDRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKGNvbXByZXNzaW9uX3NwZWMsIEFILT5m U3BlY0lzUGlwZSk7CiAKIAlpZiAoIUNGSC0+b3Blbl9mdW5jKGZpbGVuYW1lLCBmbiwgbW9kZSwg Q0ZIKSkKIAl7CkBAIC0yMzc2LDcgKzIzNzcsOCBAQCBzdGF0aWMgQXJjaGl2ZUhhbmRsZSAqCiBf YWxsb2NBSChjb25zdCBjaGFyICpGaWxlU3BlYywgY29uc3QgQXJjaGl2ZUZvcm1hdCBmbXQsCiAJ CSBjb25zdCBwZ19jb21wcmVzc19zcGVjaWZpY2F0aW9uIGNvbXByZXNzaW9uX3NwZWMsCiAJCSBi b29sIGRvc3luYywgQXJjaGl2ZU1vZGUgbW9kZSwKLQkJIFNldHVwV29ya2VyUHRyVHlwZSBzZXR1 cFdvcmtlclB0ciwgRGF0YURpclN5bmNNZXRob2Qgc3luY19tZXRob2QpCisJCSBTZXR1cFdvcmtl clB0clR5cGUgc2V0dXBXb3JrZXJQdHIsIERhdGFEaXJTeW5jTWV0aG9kIHN5bmNfbWV0aG9kLAor CQkgYm9vbCBGaWxlU3BlY0lzUGlwZSkKIHsKIAlBcmNoaXZlSGFuZGxlICpBSDsKIAlDb21wcmVz c0ZpbGVIYW5kbGUgKkNGSDsKQEAgLTI0MTcsNiArMjQxOSw4IEBAIF9hbGxvY0FIKGNvbnN0IGNo YXIgKkZpbGVTcGVjLCBjb25zdCBBcmNoaXZlRm9ybWF0IGZtdCwKIAllbHNlCiAJCUFILT5mU3Bl YyA9IE5VTEw7CiAKKwlBSC0+ZlNwZWNJc1BpcGUgPSBGaWxlU3BlY0lzUGlwZTsKKwogCUFILT5j dXJyVXNlciA9IE5VTEw7CQkvKiB1bmtub3duICovCiAJQUgtPmN1cnJTY2hlbWEgPSBOVUxMOwkJ LyogZGl0dG8gKi8KIAlBSC0+Y3VyclRhYmxlc3BhY2UgPSBOVUxMOwkvKiBkaXR0byAqLwpAQCAt MjQyOSwxNCArMjQzMywxNCBAQCBfYWxsb2NBSChjb25zdCBjaGFyICpGaWxlU3BlYywgY29uc3Qg QXJjaGl2ZUZvcm1hdCBmbXQsCiAKIAlBSC0+bW9kZSA9IG1vZGU7CiAJQUgtPmNvbXByZXNzaW9u X3NwZWMgPSBjb21wcmVzc2lvbl9zcGVjOwotCUFILT5kb3N5bmMgPSBkb3N5bmM7CisJQUgtPmRv c3luYyA9IEZpbGVTcGVjSXNQaXBlID8gZmFsc2UgOiBkb3N5bmM7CiAJQUgtPnN5bmNfbWV0aG9k ID0gc3luY19tZXRob2Q7CiAKIAltZW1zZXQoJihBSC0+c3FscGFyc2UpLCAwLCBzaXplb2YoQUgt PnNxbHBhcnNlKSk7CiAKIAkvKiBPcGVuIHN0ZG91dCB3aXRoIG5vIGNvbXByZXNzaW9uIGZvciBB SCBvdXRwdXQgaGFuZGxlICovCiAJb3V0X2NvbXByZXNzX3NwZWMuYWxnb3JpdGhtID0gUEdfQ09N UFJFU1NJT05fTk9ORTsKLQlDRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKG91dF9jb21wcmVz c19zcGVjKTsKKwlDRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKG91dF9jb21wcmVzc19zcGVj LCBBSC0+ZlNwZWNJc1BpcGUpOwogCWlmICghQ0ZILT5vcGVuX2Z1bmMoTlVMTCwgZmlsZW5vKHN0 ZG91dCksIFBHX0JJTkFSWV9BLCBDRkgpKQogCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gc3Rk b3V0IGZvciBhcHBlbmRpbmc6ICVtIik7CiAJQUgtPk9GID0gQ0ZIOwpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cF9hcmNoaXZlci5oCmluZGV4IDMyNWI1M2ZjOWJkLi5hOGIxYWI3OWU4MiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5oCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuaApAQCAtMzAxLDYgKzMwMSw4IEBAIHN0cnVjdCBfYXJj aGl2ZUhhbmRsZQogCWludAkJCWxvQ291bnQ7CQkvKiAjIG9mIExPcyByZXN0b3JlZCAqLwogCiAJ Y2hhcgkgICAqZlNwZWM7CQkJLyogQXJjaGl2ZSBGaWxlIFNwZWMgKi8KKwlib29sCQlmU3BlY0lz UGlwZTsJLyogZlNwZWMgaXMgYSBwaXBlIGNvbW1hbmQgdGVtcGxhdGUgcmVxdWlyaW5nCisJCQkJ CQkJCSAqIHJlcGxhY2luZyAlZiB3aXRoIGZpbGUgbmFtZSAqLwogCUZJTEUJICAgKkZIOwkJCQkv KiBHZW5lcmFsIHB1cnBvc2UgZmlsZSBoYW5kbGUgKi8KIAl2b2lkCSAgICpPRjsJCQkJLyogT3V0 cHV0IGZpbGUgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kaXJl Y3RvcnkuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMKaW5kZXggY2Q0 MDM2ZWFkODIuLmRiMjMwMzFkOWFjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwX2RpcmVjdG9yeS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5 LmMKQEAgLTM5LDcgKzM5LDggQEAKICNpbmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlIDxzeXMv c3RhdC5oPgogCi0jaW5jbHVkZSAiY29tbW9uL2ZpbGVfdXRpbHMuaCIKKy8qICNpbmNsdWRlICJj b21tb24vZmlsZV91dGlscy5oIiAqLworI2luY2x1ZGUgImNvbW1vbi9wZXJjZW50cmVwbC5oIgog I2luY2x1ZGUgImNvbXByZXNzX2lvLmgiCiAjaW5jbHVkZSAiZHVtcHV0aWxzLmgiCiAjaW5jbHVk ZSAicGFyYWxsZWwuaCIKQEAgLTE1Nyw4ICsxNTgsMTEgQEAgSW5pdEFyY2hpdmVGbXRfRGlyZWN0 b3J5KEFyY2hpdmVIYW5kbGUgKkFIKQogCiAJaWYgKEFILT5tb2RlID09IGFyY2hNb2RlV3JpdGUp CiAJewotCQkvKiB3ZSBhY2NlcHQgYW4gZW1wdHkgZXhpc3RpbmcgZGlyZWN0b3J5ICovCi0JCWNy ZWF0ZV9vcl9vcGVuX2RpcihjdHgtPmRpcmVjdG9yeSk7CisJCWlmICghQUgtPmZTcGVjSXNQaXBl KQkvKiBubyBjaGVja3MgZm9yIHBpcGUgKi8KKwkJeworCQkJLyogd2UgYWNjZXB0IGFuIGVtcHR5 IGV4aXN0aW5nIGRpcmVjdG9yeSAqLworCQkJY3JlYXRlX29yX29wZW5fZGlyKGN0eC0+ZGlyZWN0 b3J5KTsKKwkJfQogCX0KIAllbHNlCiAJewkJCQkJCQkvKiBSZWFkIE1vZGUgKi8KQEAgLTE2Nyw3 ICsxNzEsNyBAQCBJbml0QXJjaGl2ZUZtdF9EaXJlY3RvcnkoQXJjaGl2ZUhhbmRsZSAqQUgpCiAK IAkJc2V0RmlsZVBhdGgoQUgsIGZuYW1lLCAidG9jLmRhdCIpOwogCi0JCXRvY0ZIID0gSW5pdERp c2NvdmVyQ29tcHJlc3NGaWxlSGFuZGxlKGZuYW1lLCBQR19CSU5BUllfUik7CisJCXRvY0ZIID0g SW5pdERpc2NvdmVyQ29tcHJlc3NGaWxlSGFuZGxlKGZuYW1lLCBQR19CSU5BUllfUiwgQUgtPmZT cGVjSXNQaXBlKTsKIAkJaWYgKHRvY0ZIID09IE5VTEwpCiAJCQlwZ19mYXRhbCgiY291bGQgbm90 IG9wZW4gaW5wdXQgZmlsZSBcIiVzXCI6ICVtIiwgZm5hbWUpOwogCkBAIC0yOTUsNyArMjk5LDcg QEAgX1N0YXJ0RGF0YShBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKQogCiAJc2V0Rmls ZVBhdGgoQUgsIGZuYW1lLCB0Y3R4LT5maWxlbmFtZSk7CiAKLQljdHgtPmRhdGFGSCA9IEluaXRD b21wcmVzc0ZpbGVIYW5kbGUoQUgtPmNvbXByZXNzaW9uX3NwZWMpOworCWN0eC0+ZGF0YUZIID0g SW5pdENvbXByZXNzRmlsZUhhbmRsZShBSC0+Y29tcHJlc3Npb25fc3BlYywgQUgtPmZTcGVjSXNQ aXBlKTsKIAogCWlmICghY3R4LT5kYXRhRkgtPm9wZW5fd3JpdGVfZnVuYyhmbmFtZSwgUEdfQklO QVJZX1csIGN0eC0+ZGF0YUZIKSkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIG91dHB1dCBm aWxlIFwiJXNcIjogJW0iLCBmbmFtZSk7CkBAIC0zNTMsNyArMzU3LDcgQEAgX1ByaW50RmlsZURh dGEoQXJjaGl2ZUhhbmRsZSAqQUgsIGNoYXIgKmZpbGVuYW1lKQogCWlmICghZmlsZW5hbWUpCiAJ CXJldHVybjsKIAotCUNGSCA9IEluaXREaXNjb3ZlckNvbXByZXNzRmlsZUhhbmRsZShmaWxlbmFt ZSwgUEdfQklOQVJZX1IpOworCUNGSCA9IEluaXREaXNjb3ZlckNvbXByZXNzRmlsZUhhbmRsZShm aWxlbmFtZSwgUEdfQklOQVJZX1IsIEFILT5mU3BlY0lzUGlwZSk7CiAJaWYgKCFDRkgpCiAJCXBn X2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBpbnB1dCBmaWxlIFwiJXNcIjogJW0iLCBmaWxlbmFtZSk7 CiAKQEAgLTQxNiw3ICs0MjAsNyBAQCBfTG9hZExPcyhBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50 cnkgKnRlKQogCWVsc2UKIAkJc2V0RmlsZVBhdGgoQUgsIHRvY2ZuYW1lLCB0Y3R4LT5maWxlbmFt ZSk7CiAKLQlDRkggPSBjdHgtPkxPc1RvY0ZIID0gSW5pdERpc2NvdmVyQ29tcHJlc3NGaWxlSGFu ZGxlKHRvY2ZuYW1lLCBQR19CSU5BUllfUik7CisJQ0ZIID0gY3R4LT5MT3NUb2NGSCA9IEluaXRE aXNjb3ZlckNvbXByZXNzRmlsZUhhbmRsZSh0b2NmbmFtZSwgUEdfQklOQVJZX1IsIEFILT5mU3Bl Y0lzUGlwZSk7CiAKIAlpZiAoY3R4LT5MT3NUb2NGSCA9PSBOVUxMKQogCQlwZ19mYXRhbCgiY291 bGQgbm90IG9wZW4gbGFyZ2Ugb2JqZWN0IFRPQyBmaWxlIFwiJXNcIiBmb3IgaW5wdXQ6ICVtIiwK QEAgLTQyNyw2ICs0MzEsNyBAQCBfTG9hZExPcyhBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkg KnRlKQogCXsKIAkJY2hhcgkJbG9mbmFtZVtNQVhQR1BBVEggKyAxXTsKIAkJY2hhcgkJcGF0aFtN QVhQR1BBVEhdOworCQljaGFyCSAgICpwaXBlOwogCiAJCS8qIENhbid0IG92ZXJmbG93IGJlY2F1 c2UgbGluZSBhbmQgbG9mbmFtZSBhcmUgdGhlIHNhbWUgbGVuZ3RoICovCiAJCWlmIChzc2NhbmYo bGluZSwgIiV1ICUiIENwcEFzU3RyaW5nMihNQVhQR1BBVEgpICJzXG4iLCAmb2lkLCBsb2ZuYW1l KSAhPSAyKQpAQCAtNTQ1LDcgKzU1MCw3IEBAIF9DbG9zZUFyY2hpdmUoQXJjaGl2ZUhhbmRsZSAq QUgpCiAKIAkJLyogVGhlIFRPQyBpcyBhbHdheXMgY3JlYXRlZCB1bmNvbXByZXNzZWQgKi8KIAkJ Y29tcHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9OT05FOwotCQl0b2NG SCA9IEluaXRDb21wcmVzc0ZpbGVIYW5kbGUoY29tcHJlc3Npb25fc3BlYyk7CisJCXRvY0ZIID0g SW5pdENvbXByZXNzRmlsZUhhbmRsZShjb21wcmVzc2lvbl9zcGVjLCBBSC0+ZlNwZWNJc1BpcGUp OwogCQlpZiAoIXRvY0ZILT5vcGVuX3dyaXRlX2Z1bmMoZm5hbWUsIFBHX0JJTkFSWV9XLCB0b2NG SCkpCiAJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gb3V0cHV0IGZpbGUgXCIlc1wiOiAlbSIs IGZuYW1lKTsKIAkJY3R4LT5kYXRhRkggPSB0b2NGSDsKQEAgLTYwNiwxMyArNjExLDQ2IEBAIF9T dGFydExPcyhBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKQogCWxjbFRvY0VudHJ5ICp0 Y3R4ID0gKGxjbFRvY0VudHJ5ICopIHRlLT5mb3JtYXREYXRhOwogCXBnX2NvbXByZXNzX3NwZWNp ZmljYXRpb24gY29tcHJlc3Npb25fc3BlYyA9IHswfTsKIAljaGFyCQlmbmFtZVtNQVhQR1BBVEhd OworCWNvbnN0IGNoYXIgKm1vZGU7CiAKIAlzZXRGaWxlUGF0aChBSCwgZm5hbWUsIHRjdHgtPmZp bGVuYW1lKTsKIAogCS8qIFRoZSBMTyBUT0MgZmlsZSBpcyBuZXZlciBjb21wcmVzc2VkICovCiAJ Y29tcHJlc3Npb25fc3BlYy5hbGdvcml0aG0gPSBQR19DT01QUkVTU0lPTl9OT05FOwotCWN0eC0+ TE9zVG9jRkggPSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKGNvbXByZXNzaW9uX3NwZWMpOwotCWlm ICghY3R4LT5MT3NUb2NGSC0+b3Blbl93cml0ZV9mdW5jKGZuYW1lLCAiYWIiLCBjdHgtPkxPc1Rv Y0ZIKSkKKwljdHgtPkxPc1RvY0ZIID0gSW5pdENvbXByZXNzRmlsZUhhbmRsZShjb21wcmVzc2lv bl9zcGVjLCBBSC0+ZlNwZWNJc1BpcGUpOworCisJLyoKKwkgKiBYWFg6IFdlIGNhbiBwcm9iYWJs eSBzaW1wbGlmeSB0aGlzIGNvZGUgYnkgdXNpbmcgdGhlIG1vZGUgJ3cnIGZvciBhbGwKKwkgKiBj YXNlcy4gVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMgZHVlIHRvIGhpc3RvcmljYWwgcmVh c29uIHRoYXQgdGhlCisJICogbW9kZSBmb3IgdGhlIExPcyBUT0MgZmlsZSBoYXMgYmVlbiAiYWIi IGZyb20gdGhlIHN0YXJ0LiBUaGF0IGlzCisJICogc29tZXRoaW5nIHdlIGNhbid0IGRvIGZvciBw aXBlLWNvbW1hbmQgYXMgcG9wZW4gb25seSBzdXBwb3J0cyByZWFkIGFuZAorCSAqIHdyaXRlLiBT byBoZXJlIGEgZGlmZmVyZW50IG1vZGUgaXMgdXNlZCBmb3IgcGlwZXMuCisJICoKKwkgKiBCdXQg aW4gZnV0dXJlIHdlIGNhbiBldmFsdWF0ZSB1c2luZyAndycgZm9yIGV2ZXJ5dGhpbmcudGhlcmUg aXMgb25lCisJICogVG9DRW50cnkgVGhlcmUgaXMgb25seSBvbmUgVG9DRW50cnkgcGVyIGJsb2Ig Z3JvdXAuIEFuZCBpdCBpcyB3cml0dGVuCisJICogYnkgQFdyaXRlRGF0YUNodW5rc0ZvclRvQ0Vu dHJ5LiBUaGlzIGZ1bmN0aW9uIGNhbGxzIF9TdGFydExPcyBvbmNlCisJICogYmVmb3JlIHRoZSBk dW1wZXIgZnVuY3Rpb24gYW5kIGFuZCBfRW5kTE9zIG9uY2UgYWZ0ZXIgdGhlIGR1bXBlci4gQW5k CisJICogdGhlIGR1bXBlciBkdW1wcyBhbGwgdGhlIExPcyBpbiB0aGUgZ3JvdXAuIFNvIGEgYmxv Yl9OTk4udG9jIGlzIG9ubHkKKwkgKiBvcGVuZWQgb25jZSBhbmQgY2xvc2VkIGFmdGVyIGFsbCB0 aGUgZW50cmllcyBhcmUgd3JpdHRlbi4gVGhlcmVmb3JlIHRoZQorCSAqIG1vZGUgY2FuIGJlIG1h ZGUgJ3cnIGZvciBhbGwgdGhlIGNhc2VzLiBXZSB0ZXN0ZWQgY2hhbmdpbmcgdGhlIG1vZGUgdG8K KwkgKiBQR19CSU5BUllfVyBhbmQgdGhlIHRlc3RzIHBhc3NlZC4gQnV0IGluIGNhc2UgdGhlcmUg YXJlIHNvbWUgbWlzc2luZworCSAqIHNjZW5hcmlvcywgd2UgaGF2ZSBub3QgbWFkZSB0aGF0IGNo YW5nZSBoZXJlLiBJbnN0ZWFkIGZvciBub3cgb25seQorCSAqIGRvaW5nIGl0IGZvciB0aGUgcGlw ZSBjb21tYW5kLgorCSAqCisJICogQW5vdGhlciBhbHRlcm5hdGl2ZSBpcyB0byBrZWVwIHRoZSAn YWInIG1vZGUgZm9yIHJlZ3VsYXIgZmlsZXMgYW5kIHVzZQorCSAqICd3JyBtb2RlIGZvciBwaXBl IGZpbGVzIGJ1dCBub3cgYWxzbyBjYWNoZSB0aGUgcGlwZSBoYW5kbGUgdG8ga2VlcCBpdAorCSAq IG9wZW4gdGlsbCBhbGwgdGhlIExPcyBpbiB0aGUgZHVtcCBncm91cCBhcmUgZG9uZS4gVGhpcyBp cyBub3QgbmVlZGVkCisJICogYmVjYXVzZSBvZiB0aGUgc2FtZSByZWFzb24gbGlzdGVkIGFib3Zl IHRoYXQgYSBmaWxlIGhhbmRsZSBpcyBvbmx5CisJICogb3BlbmVkIG9uY2UuIEluIHNob3J0IHRo ZXJlIGFyZSAzIHNvbHV0aW9ucyA6IDEuIENoYW5nZSB0aGUgbW9kZSBmb3IKKwkgKiBldmVyeXRo aW5nIChwcmVmZXJyZWQpIDIuIENoYW5nZSBpdCBvbmx5IGZvciBwaXBlLWNvbW1hbmQgKGN1cnJl bnQpIDMuCisJICogQ2hhbmdlIGl0IGZvciBwaXBlLWNvbW1hbmQgYW5kIHRoZW4gY2FjaGUgdGhv c2UgaGFuZGxlcyBhbmQgY2xvc2UgdGhlbQorCSAqIGluIHRoZSBlbmQgKG5vdCBuZWVkZWQpLgor CSAqLworCWlmIChBSC0+ZlNwZWNJc1BpcGUpCisJCW1vZGUgPSBQR19CSU5BUllfVzsKKwllbHNl CisJCW1vZGUgPSAiYWIiOworCWlmICghY3R4LT5MT3NUb2NGSC0+b3Blbl93cml0ZV9mdW5jKGZu YW1lLCBtb2RlLCBjdHgtPkxPc1RvY0ZIKSkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIG91 dHB1dCBmaWxlIFwiJXNcIjogJW0iLCBmbmFtZSk7CiB9CiAKQEAgLTYyNiwxMCArNjY0LDIyIEBA IF9TdGFydExPKEFyY2hpdmVIYW5kbGUgKkFILCBUb2NFbnRyeSAqdGUsIE9pZCBvaWQpCiB7CiAJ bGNsQ29udGV4dCAqY3R4ID0gKGxjbENvbnRleHQgKikgQUgtPmZvcm1hdERhdGE7CiAJY2hhcgkJ Zm5hbWVbTUFYUEdQQVRIXTsKKwljaGFyCSAgICpwaXBlOworCWNoYXIJCWJsb2JfbmFtZVtNQVhQ R1BBVEhdOwogCi0Jc25wcmludGYoZm5hbWUsIE1BWFBHUEFUSCwgIiVzL2Jsb2JfJXUuZGF0Iiwg Y3R4LT5kaXJlY3RvcnksIG9pZCk7CisJaWYgKEFILT5mU3BlY0lzUGlwZSkKKwl7CisJCXNucHJp bnRmKGJsb2JfbmFtZSwgTUFYUEdQQVRILCAiYmxvYl8ldS5kYXQiLCBvaWQpOworCQlwaXBlID0g cmVwbGFjZV9wZXJjZW50X3BsYWNlaG9sZGVycyhjdHgtPmRpcmVjdG9yeSwgInBpcGUtY29tbWFu ZCIsICJmIiwgYmxvYl9uYW1lKTsKKwkJc3RyY3B5KGZuYW1lLCBwaXBlKTsKKwkJcGZyZWUocGlw ZSk7CisJfQorCWVsc2UKKwl7CisJCXNucHJpbnRmKGZuYW1lLCBNQVhQR1BBVEgsICIlcy9ibG9i XyV1LmRhdCIsIGN0eC0+ZGlyZWN0b3J5LCBvaWQpOworCX0KIAotCWN0eC0+ZGF0YUZIID0gSW5p dENvbXByZXNzRmlsZUhhbmRsZShBSC0+Y29tcHJlc3Npb25fc3BlYyk7CisJY3R4LT5kYXRhRkgg PSBJbml0Q29tcHJlc3NGaWxlSGFuZGxlKEFILT5jb21wcmVzc2lvbl9zcGVjLCBBSC0+ZlNwZWNJ c1BpcGUpOwogCWlmICghY3R4LT5kYXRhRkgtPm9wZW5fd3JpdGVfZnVuYyhmbmFtZSwgUEdfQklO QVJZX1csIGN0eC0+ZGF0YUZIKSkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIG91dHB1dCBm aWxlIFwiJXNcIjogJW0iLCBmbmFtZSk7CiB9CkBAIC02ODMsMTUgKzczMywyNyBAQCBzZXRGaWxl UGF0aChBcmNoaXZlSGFuZGxlICpBSCwgY2hhciAqYnVmLCBjb25zdCBjaGFyICpyZWxhdGl2ZUZp bGVuYW1lKQogewogCWxjbENvbnRleHQgKmN0eCA9IChsY2xDb250ZXh0ICopIEFILT5mb3JtYXRE YXRhOwogCWNoYXIJICAgKmRuYW1lOworCWNoYXIJICAgKnBpcGU7CiAKIAlkbmFtZSA9IGN0eC0+ ZGlyZWN0b3J5OwogCi0JaWYgKHN0cmxlbihkbmFtZSkgKyAxICsgc3RybGVuKHJlbGF0aXZlRmls ZW5hbWUpICsgMSA+IE1BWFBHUEFUSCkKLQkJcGdfZmF0YWwoImZpbGUgbmFtZSB0b28gbG9uZzog XCIlc1wiIiwgZG5hbWUpOwogCi0Jc3RyY3B5KGJ1ZiwgZG5hbWUpOwotCXN0cmNhdChidWYsICIv Iik7Ci0Jc3RyY2F0KGJ1ZiwgcmVsYXRpdmVGaWxlbmFtZSk7CisJaWYgKEFILT5mU3BlY0lzUGlw ZSkKKwl7CisJCXBpcGUgPSByZXBsYWNlX3BlcmNlbnRfcGxhY2Vob2xkZXJzKGRuYW1lLCAicGlw ZS1jb21tYW5kIiwgImYiLCByZWxhdGl2ZUZpbGVuYW1lKTsKKwkJc3RyY3B5KGJ1ZiwgcGlwZSk7 CisJCXBmcmVlKHBpcGUpOworCX0KKwllbHNlCQkJCQkJLyogcmVwbGFjZSBhbGwgb2N1cnJlbmNl cyBvZiAlZiBpbiBkbmFtZSB3aXRoCisJCQkJCQkJCSAqIHJlbGF0aXZlRmlsZW5hbWUgKi8KKwl7 CisJCWlmIChzdHJsZW4oZG5hbWUpICsgMSArIHN0cmxlbihyZWxhdGl2ZUZpbGVuYW1lKSArIDEg PiBNQVhQR1BBVEgpCisJCQlwZ19mYXRhbCgiZmlsZSBuYW1lIHRvbyBsb25nOiBcIiVzXCIiLCBk bmFtZSk7CisKKwkJc3RyY3B5KGJ1ZiwgZG5hbWUpOworCQlzdHJjYXQoYnVmLCAiLyIpOworCQlz dHJjYXQoYnVmLCByZWxhdGl2ZUZpbGVuYW1lKTsKKwl9CiB9CiAKIC8qCkBAIC03MzMsMTcgKzc5 NSwyNCBAQCBfUHJlcFBhcmFsbGVsUmVzdG9yZShBcmNoaXZlSGFuZGxlICpBSCkKIAkJICogb25s eSBuZWVkIGFuIGFwcHJveGltYXRlIGluZGljYXRvciBvZiB0aGF0LgogCQkgKi8KIAkJc2V0Rmls ZVBhdGgoQUgsIGZuYW1lLCB0Y3R4LT5maWxlbmFtZSk7CisJCXBnX2xvZ19lcnJvcigiZmlsZW5h bWU6ICVzIiwgZm5hbWUpOwogCiAJCWlmIChzdGF0KGZuYW1lLCAmc3QpID09IDApCiAJCQl0ZS0+ ZGF0YUxlbmd0aCA9IHN0LnN0X3NpemU7CiAJCWVsc2UgaWYgKEFILT5jb21wcmVzc2lvbl9zcGVj LmFsZ29yaXRobSAhPSBQR19DT01QUkVTU0lPTl9OT05FKQogCQl7CisJCQlpZiAoQUgtPmZTcGVj SXNQaXBlKQorCQkJCXBnX2xvZ19lcnJvcigicGlwZSBhbmQgY29tcHJlc3NlZCIpOwogCQkJaWYg KEFILT5jb21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9HWklQKQog CQkJCXN0cmxjYXQoZm5hbWUsICIuZ3oiLCBzaXplb2YoZm5hbWUpKTsKIAkJCWVsc2UgaWYgKEFI LT5jb21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9MWjQpCiAJCQkJ c3RybGNhdChmbmFtZSwgIi5sejQiLCBzaXplb2YoZm5hbWUpKTsKIAkJCWVsc2UgaWYgKEFILT5j b21wcmVzc2lvbl9zcGVjLmFsZ29yaXRobSA9PSBQR19DT01QUkVTU0lPTl9aU1REKQorCQkJewor CQkJCXBnX2xvZ19lcnJvcigiZmlsZW5hbWU6ICVzIiwgZm5hbWUpOwogCQkJCXN0cmxjYXQoZm5h bWUsICIuenN0Iiwgc2l6ZW9mKGZuYW1lKSk7CisJCQkJcGdfbG9nX2Vycm9yKCJmaWxlbmFtZTog JXMiLCBmbmFtZSk7CisJCQl9CiAKIAkJCWlmIChzdGF0KGZuYW1lLCAmc3QpID09IDApCiAJCQkJ dGUtPmRhdGFMZW5ndGggPSBzdC5zdF9zaXplOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNjg3ZGM5OGU0NmQu LjMwOWM4YzE0MjY0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQyMyw2ICs0MjMsNyBAQCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQJCQljOwogCWNvbnN0IGNoYXIgKmZpbGVuYW1lID0g TlVMTDsKKwlib29sCQlmaWxlbmFtZV9pc19waXBlID0gZmFsc2U7CiAJY29uc3QgY2hhciAqZm9y bWF0ID0gInAiOwogCVRhYmxlSW5mbyAgKnRibGluZm87CiAJaW50CQkJbnVtVGFibGVzOwpAQCAt NTM5LDYgKzU0MCw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl7ImV4Y2x1ZGUt ZXh0ZW5zaW9uIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDE3fSwKIAkJeyJzZXF1ZW5jZS1k YXRhIiwgbm9fYXJndW1lbnQsICZkb3B0LnNlcXVlbmNlX2RhdGEsIDF9LAogCQl7InJlc3RyaWN0 LWtleSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAyNX0sCisJCXsicGlwZS1jb21tYW5kIiwg cmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDI2fSwKIAogCQl7TlVMTCwgMCwgTlVMTCwgMH0KIAl9 OwpAQCAtNjEwLDcgKzYxMiwxNCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQli cmVhazsKIAogCQkJY2FzZSAnZic6CisJCQkJaWYgKGZpbGVuYW1lICE9IE5VTEwpCisJCQkJewor CQkJCQlwZ19sb2dfZXJyb3JfaGludCgiT25seSBvbmUgb2YgWy0tZmlsZSwgLS1waXBlLWNvbW1h bmRdIGFsbG93ZWQiKTsKKwkJCQkJZXhpdF9uaWNlbHkoMSk7CisJCQkJfQogCQkJCWZpbGVuYW1l ID0gcGdfc3RyZHVwKG9wdGFyZyk7CisJCQkJZmlsZW5hbWVfaXNfcGlwZSA9IGZhbHNlOwkvKiBp dCBhbHJlYWR5IGlzLCBzZXR0aW5nIGFnYWluCisJCQkJCQkJCQkJCSAqIGhlcmUganVzdCBmb3Ig Y2xhcml0eSAqLwogCQkJCWJyZWFrOwogCiAJCQljYXNlICdGJzoKQEAgLTgwMSw2ICs4MTAsMTUg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAkJCWNhc2UgMjU6CiAJCQkJZG9wdC5y ZXN0cmljdF9rZXkgPSBwZ19zdHJkdXAob3B0YXJnKTsKKworCQkJY2FzZSAyNjoJCQkvKiBwaXBl IGNvbW1hbmQgKi8KKwkJCQlpZiAoZmlsZW5hbWUgIT0gTlVMTCkKKwkJCQl7CisJCQkJCXBnX2xv Z19lcnJvcl9oaW50KCJPbmx5IG9uZSBvZiBbLS1maWxlLCAtLXBpcGUtY29tbWFuZF0gYWxsb3dl ZCIpOworCQkJCQlleGl0X25pY2VseSgxKTsKKwkJCQl9CisJCQkJZmlsZW5hbWUgPSBwZ19zdHJk dXAob3B0YXJnKTsKKwkJCQlmaWxlbmFtZV9pc19waXBlID0gdHJ1ZTsKIAkJCQlicmVhazsKIAog CQkJZGVmYXVsdDoKQEAgLTkyNCwxNCArOTQyLDI2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogCWVsc2UgaWYgKGRvcHQucmVzdHJpY3Rfa2V5KQogCQlwZ19mYXRhbCgib3B0aW9uICVz IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCAlcyIsCiAJCQkJICItLXJlc3RyaWN0LWtleSIsICItLWZv cm1hdD1wbGFpbiIpOworCWlmIChmaWxlbmFtZV9pc19waXBlICYmIGFyY2hpdmVGb3JtYXQgIT0g YXJjaERpcmVjdG9yeSkKKwl7CisJCXBnX2xvZ19lcnJvcl9oaW50KCJPcHRpb24gLS1waXBlLWNv bW1hbmQgaXMgb25seSBzdXBwb3J0ZWQgd2l0aCBkaXJlY3RvcnkgZm9ybWF0LiIpOworCQlleGl0 X25pY2VseSgxKTsKKwl9CisKKwlpZiAoZmlsZW5hbWVfaXNfcGlwZSAmJiBzdHJjbXAoY29tcHJl c3Npb25fYWxnb3JpdGhtX3N0ciwgIm5vbmUiKSAhPSAwKQorCXsKKwkJcGdfbG9nX2Vycm9yX2hp bnQoIk9wdGlvbiAtLXBpcGUtY29tbWFuZCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggYW55IGNvbXBy ZXNzaW9uIHR5cGUuIik7CisJCWV4aXRfbmljZWx5KDEpOworCX0KIAogCS8qCiAJICogQ3VzdG9t IGFuZCBkaXJlY3RvcnkgZm9ybWF0cyBhcmUgY29tcHJlc3NlZCBieSBkZWZhdWx0IHdpdGggZ3pp cCB3aGVuCiAJICogYXZhaWxhYmxlLCBub3QgdGhlIG90aGVycy4gIElmIGd6aXAgaXMgbm90IGF2 YWlsYWJsZSwgbm8gY29tcHJlc3Npb24gaXMKLQkgKiBkb25lIGJ5IGRlZmF1bHQuCisJICogZG9u ZSBieSBkZWZhdWx0LiBJZiBkaXJlY3RvcnkgZm9ybWF0IGlzIGJlaW5nIHVzZWQgd2l0aCBwaXBl LWNvbW1hbmQsCisJICogbm8gY29tcHJlc3Npb24gaXMgZG9uZS4KIAkgKi8KIAlpZiAoKGFyY2hp dmVGb3JtYXQgPT0gYXJjaEN1c3RvbSB8fCBhcmNoaXZlRm9ybWF0ID09IGFyY2hEaXJlY3Rvcnkp ICYmCi0JCSF1c2VyX2NvbXByZXNzaW9uX2RlZmluZWQpCisJCSFmaWxlbmFtZV9pc19waXBlICYm ICF1c2VyX2NvbXByZXNzaW9uX2RlZmluZWQpCiAJewogI2lmZGVmIEhBVkVfTElCWgogCQljb21w cmVzc2lvbl9hbGdvcml0aG1fc3RyID0gImd6aXAiOwpAQCAtOTgxLDcgKzEwMTEsNyBAQCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCS8qIE9wZW4gdGhlIG91dHB1dCBmaWxlICovCiAJ Zm91dCA9IENyZWF0ZUFyY2hpdmUoZmlsZW5hbWUsIGFyY2hpdmVGb3JtYXQsIGNvbXByZXNzaW9u X3NwZWMsCi0JCQkJCQkgZG9zeW5jLCBhcmNoaXZlTW9kZSwgc2V0dXBEdW1wV29ya2VyLCBzeW5j X21ldGhvZCk7CisJCQkJCQkgZG9zeW5jLCBhcmNoaXZlTW9kZSwgc2V0dXBEdW1wV29ya2VyLCBz eW5jX21ldGhvZCwgZmlsZW5hbWVfaXNfcGlwZSk7CiAKIAkvKiBNYWtlIGR1bXAgb3B0aW9ucyBh Y2Nlc3NpYmxlIHJpZ2h0IGF3YXkgKi8KIAlTZXRBcmNoaXZlT3B0aW9ucyhmb3V0LCAmZG9wdCwg TlVMTCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwppbmRleCA4NGI4ZDQxMGM5ZS4uOTQ5NWEzN2ZmYzEgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX3Jlc3RvcmUuYwpAQCAtNDg1LDcgKzQ4NSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQogCQkJCQkgb3B0cy0+Zm9ybWF0TmFtZSk7CiAJfQogCi0JQUggPSBPcGVuQXJjaGl2 ZShpbnB1dEZpbGVTcGVjLCBvcHRzLT5mb3JtYXQpOworCUFIID0gT3BlbkFyY2hpdmUoaW5wdXRG aWxlU3BlYywgb3B0cy0+Zm9ybWF0LCBmYWxzZSk7CiAKIAlTZXRBcmNoaXZlT3B0aW9ucyhBSCwg TlVMTCwgb3B0cyk7CiAKLS0gCjIuNTIuMC40NTcuZzZiNTQ5MWRlNDMtZ29vZwoK --00000000000028a893064842c44e--