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.94.2) (envelope-from ) id 1tuO42-007zFP-IC for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Mar 2025 03:56:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tuO40-006qkO-Pb for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Mar 2025 03:56:24 +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.94.2) (envelope-from ) id 1tuO40-006qj5-7O for pgsql-hackers@lists.postgresql.org; Tue, 18 Mar 2025 03:56:24 +0000 Received: from mail-vk1-xa35.google.com ([2607:f8b0:4864:20::a35]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tuO3x-003R56-1j for pgsql-hackers@lists.postgresql.org; Tue, 18 Mar 2025 03:56:23 +0000 Received: by mail-vk1-xa35.google.com with SMTP id 71dfb90a1353d-523de5611a3so1922708e0c.1 for ; Mon, 17 Mar 2025 20:56:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742270181; x=1742874981; 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=WHs8/y0P7BtdHqICNKhS589EpcVJ2dqRpAaABBnm3fg=; b=FCnBfxPAiGvdut2NerTD3mtw6lgwiakyOlgdc9TEj5TP3Bvi/oSEAJNkRPPQFQhGja VNKgyezwEf5QhDcDEvUVG4zxAFAsOIHoJLlgzFuYtYxdEVR/28W++qhrGmIyKQqgD99i dITJ9gRHH9tl/lc/ZsMp0aHEni4hbCU9NxGifwJHCBtuUwP2IS5Xsy+rDppl5sXShkeG CxMUmff7sBEHABChbxmHdBB+PNNf7M9yLjYQa0LzurlBp6IKIqyaeKIi/jZzot6IhX0h CGi7Qcv7paGH4ETTlswOgmsCVemnCj0h0ZYFJgFox7MrCRknl9V7fkhvKzTeT/kv47kV Fqug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742270181; x=1742874981; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WHs8/y0P7BtdHqICNKhS589EpcVJ2dqRpAaABBnm3fg=; b=IuaSWaGCa4qutCHDKduAZmlAuO4L8twJwMNjf7cLVa0dgPQAcaLDyTDOR+uyyE7bzH HsB7LWLb327GjPnqK8+uVR99H+z6/JUCHaC/o8JSapdN9g81RZXKGVz1ltHE1Xe/45mN 3F+niPiVavjxb6a4V+OYxX8kGbRsGQi8Za5FED8iYCk3H0OMjMovSBVPKT14V2JFOGzj XOdzzLz58ngv+Z9nWRYwPy7BuSQj4w6UWFJVPJvrBJ3OGQhW/T7JCMJHLKOS8ES6TTpu vChLjGbhuvFKhu0aGa/RAo2vdUydNuJCSRd3DquSU8wLctCZ/CWx2dgtCBrCz5ueFbc0 FCeQ== X-Forwarded-Encrypted: i=1; AJvYcCXAyBKjgvZHF3IPve6BVpVojMY7AogvQpOkZGA9QGtayFS16moQ1Ttkg16jQ2exWr8nENtA5bOM8p3nzheO@lists.postgresql.org X-Gm-Message-State: AOJu0YyYU3NwkS5CgkABpYX3Sr9+dJGXjuAi8M1qoACx3+ysGoqH4rem HXJbEnDa0fi14xP6GidQutdTOGwpBqULzmTwup2jWuOj9NCcozdewD48AJaTgwV+1tGTCxOnqUp L4gvCEqKMsjBMGCvXYSkIfoNixrc= X-Gm-Gg: ASbGnctS7JALLKbZyJ6+J60S4YWpjTnM6Jcp6RFreOjWDP9wxhQHte8liTBrfRqgxaB U7tPWck51m2urrsmIs1CbHsLS8Rz3+5UDeuSHUG4qHDS/hWEibP7EKsI44pp/zX42YvXpGOw8jY 0HK7bWOKL5wnXWdsKqMFDGdhcLkoVp3NBv/S2V+/vf6fkmXEyIW193oyymGQ== X-Google-Smtp-Source: AGHT+IESe02tRx+f0x60v/CRlR8brqC+HOaGkVcWR6RUEMRCkMZjD0y9W9L3aNzYB+D6QWBi6xU3sMQl+iBApgaelLU= X-Received: by 2002:a05:6122:3c54:b0:520:5f0a:b5a5 with SMTP id 71dfb90a1353d-524499ca734mr9547562e0c.6.1742270180677; Mon, 17 Mar 2025 20:56:20 -0700 (PDT) MIME-Version: 1.0 References: <90dc6e9d-9348-485a-b27c-7b1637f06c2e@uni-muenster.de> In-Reply-To: From: jian he Date: Tue, 18 Mar 2025 11:55:44 +0800 X-Gm-Features: AQ5f1Jo0XSVjmkGuWfujDiBu7EGT19vDieiXkc5cNEcoqtQTuUM_Vy7o5Pq_ru4 Message-ID: Subject: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row To: Jim Jones Cc: Kirill Reshke , Fujii Masao , "David G. Johnston" , Yugo NAGATA , torikoshia , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000038f71b063095e3bd" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000038f71b063095e3bd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 12, 2025 at 4:26=E2=80=AFPM Jim Jones wrote: > > >> 2) Inconsistent terminology. Invalid values in "on_error set_to_null" > >> mode are names as "erroneous", but as "invalid" in "on_error stop" mod= e. > >> I don't want to get into the semantics of erroneous or invalid, but > >> sticking to one terminology would IMHO look better. > >> > > I am open to changing it. > > what do you think "invalid values in %llu row was replaced with null"? > > LGTM: "invalid values in %llu rows were replaced with null" > changed based on this. also minor documentation tweaks. --00000000000038f71b063095e3bd Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0001-COPY-on_error-set_to_null.patch" Content-Disposition: attachment; filename="v13-0001-COPY-on_error-set_to_null.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m8dymuil0 RnJvbSAzNTUzZWVlNTZjOGRkMGMzY2UzMzRkMWYzN2I1MTFhY2JiYzY0MGFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTggTWFyIDIwMjUgMTE6NTE6NDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAxLzFdIENPUFkgKG9uX2Vycm9yIHNldF90b19udWxsKQoKRXh0ZW50ICJvbl9lcnJvciBhY3Rp b24iLCBpbnRyb2R1Y2UgbmV3IG9wdGlvbjogIG9uX2Vycm9yIHNldF90b19udWxsLgpDdXJyZW50 IGdyYW1tYXIgbWFrZXMgdXMgdW5hYmxlIHRvIHVzZSAib25fZXJyb3IgbnVsbCIsIHNvIHdlIGNo b29zZSAib25fZXJyb3Igc2V0X3RvX251bGwiLgoKQW55IGRhdGEgdHlwZSBjb252ZXJzaW9uIGVy cm9ycyBkdXJpbmcgdGhlIENPUFkgRlJPTSBwcm9jZXNzIHdpbGwgcmVzdWx0IGluIHRoZQphZmZl Y3RlZCBjb2x1bW4gYmVpbmcgc2V0IHRvIE5VTEwuIFRoaXMgb25seSBhcHBsaWVzIHdoZW4gdXNp bmcgdGhlIG5vbi1iaW5hcnkKZm9ybWF0IGZvciBDT1BZIEZST00uCgpIb3dldmVyLCB0aGUgbm90 LW51bGwgY29uc3RyYWludCB3aWxsIHN0aWxsIGJlIGVuZm9yY2VkLgpJZiBhIGNvbHVtbiBoYXZl IG5vdC1udWxsIGNvbnN0cmFpbnQsIHN1Y2Nlc3NmdWwgKG9uX2Vycm9yIHNldF90b19udWxsKQph Y3Rpb24gd2lsbCBjYXVzZSBub3QtbnVsbCBjb25zdHJhaW50IHZpb2xhdGlvbi4KVGhpcyBhbHNv IGFwcGx5IHRvIGNvbHVtbiB0eXBlIGlzIGRvbWFpbiB3aXRoIG5vdC1udWxsIGNvbnN0cmFpbnQu CgpBIHJlZ3Jlc3Npb24gdGVzdCBmb3IgYSBkb21haW4gd2l0aCBhIG5vdC1udWxsIGNvbnN0cmFp bnQgaGFzIGJlZW4gYWRkZWQuCgpBdXRob3I6IEppYW4gSGUgPGppYW4udW5pdmVyc2FsaXR5QGdt YWlsLmNvbT4KQXV0aG9yOiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgoK UmV2aWV3ZWQtYnk6CkZ1amlpIE1hc2FvIDxtYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20+Ckpp bSBKb25lcyA8amltLmpvbmVzQHVuaS1tdWVuc3Rlci5kZT4KIkRhdmlkIEcuIEpvaG5zdG9uIiA8 ZGF2aWQuZy5qb2huc3RvbkBnbWFpbC5jb20+Cll1Z28gTkFHQVRBIDxuYWdhdGFAc3Jhb3NzLmNv LmpwPgp0b3Jpa29zaGlhIDx0b3Jpa29zaGlhQG9zcy5udHRkYXRhLmNvbT4KCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FLRlF1d2F3eTFlNllSNFM9ait5N3BYcWdfRHcxV0JWcmd2 Zj1CUDNkMV9hU2ZlXytRQG1haWwuZ21haWwuY29tCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jb3B5 LnNnbWwgICAgICAgICAgIHwgMzQgKysrKysrKysrKystLS0tLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvY29weS5jICAgICAgICAgIHwgIDYgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJv bS5jICAgICAgfCAyOSArKysrKysrKystLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZy b21wYXJzZS5jIHwgNDMgKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYyAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmggICAg ICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAgfCA2MCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5z cWwgICAgICAgfCA0NiArKysrKysrKysrKysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMTk2 IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY29weS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKaW5kZXggZGYwOTNk YTk3YzUuLmNkYjcyNWQ3NTY1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbApAQCAtMzk0LDIzICszOTQsMzQgQEAg Q09QWSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNl YWJsZT4gWyAoIDxyZXBsYWNlYWJsZQogICAgICAgU3BlY2lmaWVzIGhvdyB0byBiZWhhdmUgd2hl biBlbmNvdW50ZXJpbmcgYW4gZXJyb3IgY29udmVydGluZyBhIGNvbHVtbidzCiAgICAgICBpbnB1 dCB2YWx1ZSBpbnRvIGl0cyBkYXRhIHR5cGUuCiAgICAgICBBbiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXJyb3JfYWN0aW9uPC9yZXBsYWNlYWJsZT4gdmFsdWUgb2YKLSAgICAgIDxs aXRlcmFsPnN0b3A8L2xpdGVyYWw+IG1lYW5zIGZhaWwgdGhlIGNvbW1hbmQsIHdoaWxlCi0gICAg ICA8bGl0ZXJhbD5pZ25vcmU8L2xpdGVyYWw+IG1lYW5zIGRpc2NhcmQgdGhlIGlucHV0IHJvdyBh bmQgY29udGludWUgd2l0aCB0aGUgbmV4dCBvbmUuCisgICAgICA8bGl0ZXJhbD5zdG9wPC9saXRl cmFsPiBtZWFucyBmYWlsIHRoZSBjb21tYW5kLAorICAgICAgPGxpdGVyYWw+aWdub3JlPC9saXRl cmFsPiBtZWFucyBkaXNjYXJkIHRoZSBpbnB1dCByb3cgYW5kIGNvbnRpbnVlIHdpdGggdGhlIG5l eHQgb25lLCBhbmQKKyAgICAgIDxsaXRlcmFsPnNldF90b19udWxsPC9saXRlcmFsPiBtZWFucyBy ZXBsYWNlIGNvbHVtbnMgY29udGFpbmluZyBpbnZhbGlkIGlucHV0IHZhbHVlcyB3aXRoCisgICAg ICA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBhbmQgbW92ZSB0byB0aGUgbmV4dCBmaWVsZC4KICAg ICAgIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPnN0b3A8L2xpdGVyYWw+LgogICAgICA8L3BhcmE+ CiAgICAgIDxwYXJhPgotICAgICAgVGhlIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gb3B0aW9u IGlzIGFwcGxpY2FibGUgb25seSBmb3IgPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5kPgorICAg ICAgVGhlIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPnNldF90b19udWxs PC9saXRlcmFsPgorICAgICAgb3B0aW9ucyBhcmUgYXBwbGljYWJsZSBvbmx5IGZvciA8Y29tbWFu ZD5DT1BZIEZST008L2NvbW1hbmQ+CiAgICAgICB3aGVuIHRoZSA8bGl0ZXJhbD5GT1JNQVQ8L2xp dGVyYWw+IGlzIDxsaXRlcmFsPnRleHQ8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmNzdjwvbGl0ZXJh bD4uCiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+Ci0gICAgICBBIDxsaXRlcmFsPk5PVElDRTwv bGl0ZXJhbD4gbWVzc2FnZSBjb250YWluaW5nIHRoZSBpZ25vcmVkIHJvdyBjb3VudCBpcwotICAg ICAgZW1pdHRlZCBhdCB0aGUgZW5kIG9mIHRoZSA8Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+ IGlmIGF0IGxlYXN0IG9uZQotICAgICAgcm93IHdhcyBkaXNjYXJkZWQuIFdoZW4gPGxpdGVyYWw+ TE9HX1ZFUkJPU0lUWTwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNldCB0bwotICAgICAgPGxpdGVyYWw+ dmVyYm9zZTwvbGl0ZXJhbD4sIGEgPGxpdGVyYWw+Tk9USUNFPC9saXRlcmFsPiBtZXNzYWdlCisg ICAgICBGb3IgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBvcHRpb24sCisgICAgICBhIDxsaXRl cmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVzc2FnZSBjb250YWluaW5nIHRoZSBpZ25vcmVkIHJvdyBj b3VudCBpcworICAgICAgZW1pdHRlZCBhdCB0aGUgZW5kIG9mIHRoZSA8Y29tbWFuZD5DT1BZIEZS T008L2NvbW1hbmQ+IGlmIGF0IGxlYXN0IG9uZSByb3cgd2FzIGRpc2NhcmRlZC4KKyAgICAgIEZv ciA8bGl0ZXJhbD5zZXRfdG9fbnVsbDwvbGl0ZXJhbD4gb3B0aW9uLAorICAgICAgYSA8bGl0ZXJh bD5OT1RJQ0U8L2xpdGVyYWw+IG1lc3NhZ2UgaW5kaWNhdGluZyB0aGUgbnVtYmVyIG9mIHJvd3Mg d2hlcmUgaW52YWxpZCBpbnB1dCB2YWx1ZXMgd2VyZSByZXBsYWNlZCB3aXRoCisgICAgICBudWxs IGlzIGVtaXR0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5k PiBpZiBhdCBsZWFzdCBvbmUgcm93IHdhcyByZXBsYWNlZC4KKyAgICAgPC9wYXJhPgorICAgICA8 cGFyYT4KKyAgICAgIFdoZW4gPGxpdGVyYWw+TE9HX1ZFUkJPU0lUWTwvbGl0ZXJhbD4gb3B0aW9u IGlzIHNldCB0byA8bGl0ZXJhbD52ZXJib3NlPC9saXRlcmFsPiwKKyAgICAgIGZvciA8bGl0ZXJh bD5pZ25vcmU8L2xpdGVyYWw+IG9wdGlvbiwgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+IG1l c3NhZ2UKICAgICAgIGNvbnRhaW5pbmcgdGhlIGxpbmUgb2YgdGhlIGlucHV0IGZpbGUgYW5kIHRo ZSBjb2x1bW4gbmFtZSB3aG9zZSBpbnB1dAotICAgICAgY29udmVyc2lvbiBoYXMgZmFpbGVkIGlz IGVtaXR0ZWQgZm9yIGVhY2ggZGlzY2FyZGVkIHJvdy4KLSAgICAgIFdoZW4gaXQgaXMgc2V0IHRv IDxsaXRlcmFsPnNpbGVudDwvbGl0ZXJhbD4sIG5vIG1lc3NhZ2UgaXMgZW1pdHRlZAotICAgICAg cmVnYXJkaW5nIGlnbm9yZWQgcm93cy4KKyAgICAgIGNvbnZlcnNpb24gaGFzIGZhaWxlZCBpcyBl bWl0dGVkIGZvciBlYWNoIGRpc2NhcmRlZCByb3c7CisgICAgICBmb3IgPGxpdGVyYWw+c2V0X3Rv X251bGw8L2xpdGVyYWw+IG9wdGlvbiwKKyAgICAgIGEgPGxpdGVyYWw+Tk9USUNFPC9saXRlcmFs PiBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGxpbmUgb2YgdGhlIGlucHV0IGZpbGUgYW5kIHRoZSBj b2x1bW4gbmFtZQorICAgICAgd2hlcmUgdmFsdWUgd2FzIHJlcGxhY2VkIHdpdGggPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4gZm9yIGVhY2ggaW5wdXQgY29udmVyc2lvbiBmYWlsdXJlLgorICAgICAg V2hlbiBpdCBpcyBzZXQgdG8gPGxpdGVyYWw+c2lsZW50PC9saXRlcmFsPiwgbm8gbWVzc2FnZSBp cyBlbWl0dGVkIHJlZ2FyZGluZyBpbnB1dCBjb252ZXJzaW9uIGZhaWxlZCByb3dzLgogICAgICA8 L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtNDU4LDcgKzQ2 OSw4IEBAIENPUFkgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwv cmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUKICAgICAgPC9wYXJhPgogICAgICA8cGFyYT4K ICAgICAgIFRoaXMgaXMgY3VycmVudGx5IHVzZWQgaW4gPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21t YW5kPiBjb21tYW5kIHdoZW4KLSAgICAgIDxsaXRlcmFsPk9OX0VSUk9SPC9saXRlcmFsPiBvcHRp b24gaXMgc2V0IHRvIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4uCisgICAgICA8bGl0ZXJhbD5P Tl9FUlJPUjwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNldCB0byA8bGl0ZXJhbD5pZ25vcmU8L2xpdGVy YWw+CisgICAgICBvciA8bGl0ZXJhbD5zZXRfdG9fbnVsbDwvbGl0ZXJhbD4uCiAgICAgICA8L3Bh cmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29weS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCmlu ZGV4IGNmY2E5ZDlkYzI5Li5hZmU2MDc1OGQ0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvY29weS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwpAQCAtNDAzLDEy ICs0MDMsMTQgQEAgZGVmR2V0Q29weU9uRXJyb3JDaG9pY2UoRGVmRWxlbSAqZGVmLCBQYXJzZVN0 YXRlICpwc3RhdGUsIGJvb2wgaXNfZnJvbSkKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0 ZSwgZGVmLT5sb2NhdGlvbikpKTsKIAogCS8qCi0JICogQWxsb3cgInN0b3AiLCBvciAiaWdub3Jl IiB2YWx1ZXMuCisJICogQWxsb3cgInN0b3AiLCAiaWdub3JlIiwgInNldF90b19udWxsIiB2YWx1 ZXMuCiAJICovCiAJaWYgKHBnX3N0cmNhc2VjbXAoc3ZhbCwgInN0b3AiKSA9PSAwKQogCQlyZXR1 cm4gQ09QWV9PTl9FUlJPUl9TVE9QOwogCWlmIChwZ19zdHJjYXNlY21wKHN2YWwsICJpZ25vcmUi KSA9PSAwKQogCQlyZXR1cm4gQ09QWV9PTl9FUlJPUl9JR05PUkU7CisJaWYgKHBnX3N0cmNhc2Vj bXAoc3ZhbCwgInNldF90b19udWxsIikgPT0gMCkKKwkJcmV0dXJuIENPUFlfT05fRVJST1JfTlVM TDsKIAogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1F VEVSX1ZBTFVFKSwKQEAgLTkxOCw3ICs5MjAsNyBAQCBQcm9jZXNzQ29weU9wdGlvbnMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKIAkJCQkg ZXJybXNnKCJvbmx5IE9OX0VSUk9SIFNUT1AgaXMgYWxsb3dlZCBpbiBCSU5BUlkgbW9kZSIpKSk7 CiAKLQlpZiAob3B0c19vdXQtPnJlamVjdF9saW1pdCAmJiAhb3B0c19vdXQtPm9uX2Vycm9yKQor CWlmIChvcHRzX291dC0+cmVqZWN0X2xpbWl0ICYmIG9wdHNfb3V0LT5vbl9lcnJvciAhPSBDT1BZ X09OX0VSUk9SX0lHTk9SRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RF X0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJLyotIHRyYW5zbGF0b3I6IGZpcnN0IGFuZCBz ZWNvbmQgJXMgYXJlIHRoZSBuYW1lcyBvZiBDT1BZIG9wdGlvbiwgZS5nLgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Nv cHlmcm9tLmMKaW5kZXggYmNmNjZmMGFkZjguLjQzYTIyN2VhZTcyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Nv cHlmcm9tLmMKQEAgLTE0NjcsMTQgKzE0NjcsMjIgQEAgQ29weUZyb20oQ29weUZyb21TdGF0ZSBj c3RhdGUpCiAJLyogRG9uZSwgY2xlYW4gdXAgKi8KIAllcnJvcl9jb250ZXh0X3N0YWNrID0gZXJy Y2FsbGJhY2sucHJldmlvdXM7CiAKLQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yICE9IENPUFlf T05fRVJST1JfU1RPUCAmJgotCQljc3RhdGUtPm51bV9lcnJvcnMgPiAwICYmCisJaWYgKGNzdGF0 ZS0+bnVtX2Vycm9ycyA+IDAgJiYKIAkJY3N0YXRlLT5vcHRzLmxvZ192ZXJib3NpdHkgPj0gQ09Q WV9MT0dfVkVSQk9TSVRZX0RFRkFVTFQpCi0JCWVyZXBvcnQoTk9USUNFLAotCQkJCWVycm1zZ19w bHVyYWwoIiVsbHUgcm93IHdhcyBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmls aXR5IiwKLQkJCQkJCQkgICIlbGx1IHJvd3Mgd2VyZSBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUg aW5jb21wYXRpYmlsaXR5IiwKLQkJCQkJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIGNzdGF0ZS0+ bnVtX2Vycm9ycywKLQkJCQkJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIGNzdGF0ZS0+bnVtX2Vy cm9ycykpOworCXsKKwkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9S X0lHTk9SRSkKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQllcnJtc2dfcGx1cmFsKCIlbGx1IHJv dyB3YXMgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJ CSAgIiVsbHUgcm93cyB3ZXJlIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxp dHkiLAorCQkJCQkJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIGNzdGF0ZS0+bnVtX2Vycm9ycywK KwkJCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBjc3RhdGUtPm51bV9lcnJvcnMpKTsKKwkJ ZWxzZSBpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfTlVMTCkKKwkJ CWVyZXBvcnQoTk9USUNFLAorCQkJCQllcnJtc2dfcGx1cmFsKCJpbnZhbGlkIHZhbHVlcyBpbiAl bGx1IHJvdyB3YXMgcmVwbGFjZWQgd2l0aCBudWxsIiwKKwkJCQkJCQkJICAiaW52YWxpZCB2YWx1 ZXMgaW4gJWxsdSByb3dzIHdlcmUgcmVwbGFjZWQgd2l0aCBudWxsIiwKKwkJCQkJCQkJICAodW5z aWduZWQgbG9uZyBsb25nKSBjc3RhdGUtPm51bV9lcnJvcnMsCisJCQkJCQkJCSAgKHVuc2lnbmVk IGxvbmcgbG9uZykgY3N0YXRlLT5udW1fZXJyb3JzKSk7CisJfQogCiAJaWYgKGJpc3RhdGUgIT0g TlVMTCkKIAkJRnJlZUJ1bGtJbnNlcnRTdGF0ZShiaXN0YXRlKTsKQEAgLTE2MjIsMTAgKzE2MzAs MTEgQEAgQmVnaW5Db3B5RnJvbShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCWNzdGF0ZS0+ZXNjb250 ZXh0LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOwogCiAJCS8qCi0JCSAqIEN1cnJlbnRseSB3ZSBv bmx5IHN1cHBvcnQgQ09QWV9PTl9FUlJPUl9JR05PUkUuIFdlJ2xsIGFkZCBvdGhlcgotCQkgKiBv cHRpb25zIGxhdGVyCisJCSAqIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgQ09QWV9PTl9FUlJP Ul9JR05PUkUsIENPUFlfT05fRVJST1JfTlVMTC4KKwkJICogV2UnbGwgYWRkIG90aGVyIG9wdGlv bnMgbGF0ZXIKIAkJICovCi0JCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9F UlJPUl9JR05PUkUpCisJCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJP Ul9JR05PUkUgfHwKKwkJCWNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX05V TEwpCiAJCQljc3RhdGUtPmVzY29udGV4dC0+ZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKIAl9CiAJ ZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jCmluZGV4IGU4MTI4Zjg1ZTZiLi5l MmI0ZDFmN2VjOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJz ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYwpAQCAtOTQ3LDYg Kzk0Nyw3IEBAIENvcHlGcm9tVGV4dExpa2VPbmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4 cHJDb250ZXh0ICplY29udGV4dCwKIAlpbnQJCQlmbGRjdDsKIAlpbnQJCQlmaWVsZG5vOwogCWNo YXIJICAgKnN0cmluZzsKKwlib29sCQljdXJyZW50X3Jvd19lcnJvbmVvdXMgPSBmYWxzZTsKIAog CXR1cERlc2MgPSBSZWxhdGlvbkdldERlc2NyKGNzdGF0ZS0+cmVsKTsKIAlhdHRyX2NvdW50ID0g bGlzdF9sZW5ndGgoY3N0YXRlLT5hdHRudW1saXN0KTsKQEAgLTEwMjUsNiArMTAyNiw3IEBAIENv cHlGcm9tVGV4dExpa2VPbmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICpl Y29udGV4dCwKIAogCQkvKgogCQkgKiBJZiBPTl9FUlJPUiBpcyBzcGVjaWZpZWQgd2l0aCBJR05P UkUsIHNraXAgcm93cyB3aXRoIHNvZnQgZXJyb3JzCisJCSAqIElmIE9OX0VSUk9SIGlzIHNwZWNp ZmllZCB3aXRoIHNldF90b19udWxsLCB0cnkgdG8gcmVwbGFjZSB3aXRoIG51bGwuCiAJCSAqLwog CQllbHNlIGlmICghSW5wdXRGdW5jdGlvbkNhbGxTYWZlKCZpbl9mdW5jdGlvbnNbbV0sCiAJCQkJ CQkJCQkJc3RyaW5nLApAQCAtMTAzNSw5ICsxMDM3LDQ2IEBAIENvcHlGcm9tVGV4dExpa2VPbmVS b3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwKIAkJewogCQkJ QXNzZXJ0KGNzdGF0ZS0+b3B0cy5vbl9lcnJvciAhPSBDT1BZX09OX0VSUk9SX1NUT1ApOwogCisJ CQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfTlVMTCkKKwkJCXsK KwkJCQkvKgorCQkJCSAqIHdlIHVzZSB0aGlzIGNvdW50IHRoZSBudW1iZXIgb2Ygcm93cyAobm90 IGZpZWxkcykgdGhhdAorCQkJCSAqIHN1Y2Nlc3NmdWxseSBhcHBsaWVkIHRoZSBvbl9lcnJvciBz ZXRfdG9fbnVsbAorCQkJCSovCisJCQkJaWYgKCFjdXJyZW50X3Jvd19lcnJvbmVvdXMpCisJCQkJ CWN1cnJlbnRfcm93X2Vycm9uZW91cyA9IHRydWU7CisKKwkJCQkvKgorCQkJCSAqIHdlIG5lZWQg YW5vdGhlciBJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUgc28gd2UgY2FuIGVycm9yIG91dAorCQkJCSAq IG5vdC1udWxsIHZpb2xhdGlvbiBmb3IgZG9tYWluIHdpdGggbm90LW51bGwgY29uc3RyYWludC4K KwkJCQkqLworCQkJCWNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOwor CQkJCWlmIChJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmluX2Z1bmN0aW9uc1ttXSwKKwkJCQkJCQkJ CQkgIE5VTEwsCisJCQkJCQkJCQkJICB0eXBpb3BhcmFtc1ttXSwKKwkJCQkJCQkJCQkgIGF0dC0+ YXR0dHlwbW9kLAorCQkJCQkJCQkJCSAgKE5vZGUgKikgY3N0YXRlLT5lc2NvbnRleHQsCisJCQkJ CQkJCQkJICAmdmFsdWVzW21dKSkKKwkJCQl7CisJCQkJCW51bGxzW21dID0gdHJ1ZTsKKwkJCQkJ dmFsdWVzW21dID0gKERhdHVtKSAwOworCQkJCQlpZiAoY3N0YXRlLT5vcHRzLmxvZ192ZXJib3Np dHkgPT0gQ09QWV9MT0dfVkVSQk9TSVRZX1ZFUkJPU0UpCisJCQkJCQllcmVwb3J0KE5PVElDRSwK KwkJCQkJCQkJZXJybXNnKCJjb2x1bW4gXCIlc1wiIHdhcyBzZXQgdG8gbnVsbCBkdWUgdG8gZGF0 YSB0eXBlIGluY29tcGF0aWJpbGl0eSBhdCBsaW5lICVsbHUiLAorCQkJCQkJCQkJCWNzdGF0ZS0+ Y3VyX2F0dG5hbWUsCisJCQkJCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgY3N0YXRlLT5jdXJf bGluZW5vKSk7CisJCQkJCWNvbnRpbnVlOworCQkJCX0KKwkJCQllbHNlCisJCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkJZXJyY29kZShFUlJDT0RFX05PVF9OVUxMX1ZJT0xBVElPTiksCisJCQkJ CQkJZXJybXNnKCJkb21haW4gJXMgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMiLCBmb3JtYXRf dHlwZV9iZSh0eXBpb3BhcmFtc1ttXSkpLAorCQkJCQkJCWVycmRhdGF0eXBlKHR5cGlvcGFyYW1z W21dKSk7CisJCQl9CiAJCQljc3RhdGUtPm51bV9lcnJvcnMrKzsKIAotCQkJaWYgKGNzdGF0ZS0+ b3B0cy5sb2dfdmVyYm9zaXR5ID09IENPUFlfTE9HX1ZFUkJPU0lUWV9WRVJCT1NFKQorCQkJaWYg KGNzdGF0ZS0+b3B0cy5sb2dfdmVyYm9zaXR5ID09IENPUFlfTE9HX1ZFUkJPU0lUWV9WRVJCT1NF ICYmCisJCQkJY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFKQog CQkJewogCQkJCS8qCiAJCQkJICogU2luY2Ugd2UgZW1pdCBsaW5lIG51bWJlciBhbmQgY29sdW1u IGluZm8gaW4gdGhlIGJlbG93CkBAIC0xMDc2LDYgKzExMTUsOCBAQCBDb3B5RnJvbVRleHRMaWtl T25lUm93KENvcHlGcm9tU3RhdGUgY3N0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsCiAJCWNz dGF0ZS0+Y3VyX2F0dHZhbCA9IE5VTEw7CiAJfQogCisJaWYgKGN1cnJlbnRfcm93X2Vycm9uZW91 cykKKwkJY3N0YXRlLT5udW1fZXJyb3JzKys7CiAJQXNzZXJ0KGZpZWxkbm8gPT0gYXR0cl9jb3Vu dCk7CiAKIAlyZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA5YTRkOTkzZTJi Yy4uNzk4MDUxM2E5YmQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTMyODAsNyArMzI4MCw3 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRI KCJGT1JNQVQiLCAiRlJFRVpFIiwgIkRFTElNSVRFUiIsICJOVUxMIiwKIAkJCQkJICAiSEVBREVS IiwgIlFVT1RFIiwgIkVTQ0FQRSIsICJGT1JDRV9RVU9URSIsCiAJCQkJCSAgIkZPUkNFX05PVF9O VUxMIiwgIkZPUkNFX05VTEwiLCAiRU5DT0RJTkciLCAiREVGQVVMVCIsCi0JCQkJCSAgIk9OX0VS Uk9SIiwgIkxPR19WRVJCT1NJVFkiKTsKKwkJCQkJICAiT05fRVJST1IiLCAiU0VUX1RPX05VTEwi LCAiTE9HX1ZFUkJPU0lUWSIpOwogCiAJLyogQ29tcGxldGUgQ09QWSA8c3RoPiBGUk9NfFRPIGZp bGVuYW1lIFdJVEggKEZPUk1BVCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNPUFl8XFxjb3B5Iiwg TWF0Y2hBbnksICJGUk9NfFRPIiwgTWF0Y2hBbnksICJXSVRIIiwgIigiLCAiRk9STUFUIikpCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9jb3B5LmgKaW5kZXggMDZkZmRmZWY3MjEuLjdlYmY0Zjc4OTMzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29w eS5oCkBAIC0zOCw2ICszOCw3IEBAIHR5cGVkZWYgZW51bSBDb3B5T25FcnJvckNob2ljZQogewog CUNPUFlfT05fRVJST1JfU1RPUCA9IDAsCQkvKiBpbW1lZGlhdGVseSB0aHJvdyBlcnJvcnMsIGRl ZmF1bHQgKi8KIAlDT1BZX09OX0VSUk9SX0lHTk9SRSwJCS8qIGlnbm9yZSBlcnJvcnMgKi8KKwlD T1BZX09OX0VSUk9SX05VTEwsCQkJLyogc2V0IGVycm9yIGZpZWxkIHRvIG51bGwgKi8KIH0gQ29w eU9uRXJyb3JDaG9pY2U7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NvcHkyLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4 IDY0ZWEzM2FlYWU4Li5jYWE5NGJmZDUyNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jb3B5Mi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5v dXQKQEAgLTgxLDYgKzgxLDEwIEBAIENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBpZ25vcmUs IG9uX2Vycm9yIGlnbm9yZSk7CiBFUlJPUjogIGNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRp b25zCiBMSU5FIDE6IENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBpZ25vcmUsIG9uX2Vycm9y IGlnbm9yZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K K0NPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBzZXRfdG9fbnVsbCwgb25fZXJyb3IgaWdub3Jl KTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMKK0xJTkUgMTogQ09Q WSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxsLCBvbl9lcnJvciBpZ25vcmUpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIENPUFkg eCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IGRlZmF1bHQsIGxvZ192ZXJib3NpdHkgdmVyYm9z ZSk7CiBFUlJPUjogIGNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zCiBMSU5FIDE6IENP UFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IGRlZmF1bHQsIGxvZ192ZXJib3NpdHkgdmVy Yi4uLgpAQCAtOTIsNiArOTYsMTAgQEAgQ09QWSB4IGZyb20gc3RkaW4gKGZvcm1hdCBCSU5BUlks IG51bGwgJ3gnKTsKIEVSUk9SOiAgY2Fubm90IHNwZWNpZnkgTlVMTCBpbiBCSU5BUlkgbW9kZQog Q09QWSB4IGZyb20gc3RkaW4gKGZvcm1hdCBCSU5BUlksIG9uX2Vycm9yIGlnbm9yZSk7CiBFUlJP UjogIG9ubHkgT05fRVJST1IgU1RPUCBpcyBhbGxvd2VkIGluIEJJTkFSWSBtb2RlCitDT1BZIHgg ZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgb25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6 ICBvbmx5IE9OX0VSUk9SIFNUT1AgaXMgYWxsb3dlZCBpbiBCSU5BUlkgbW9kZQorQ09QWSB4IEZS T00gc3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxsLCByZWplY3RfbGltaXQgMik7CitFUlJPUjog IENPUFkgUkVKRUNUX0xJTUlUIHJlcXVpcmVzIE9OX0VSUk9SIHRvIGJlIHNldCB0byBJR05PUkUK IENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciB1bnN1cHBvcnRlZCk7CiBFUlJPUjogIENPUFkg T05fRVJST1IgInVuc3VwcG9ydGVkIiBub3QgcmVjb2duaXplZAogTElORSAxOiBDT1BZIHggZnJv bSBzdGRpbiAob25fZXJyb3IgdW5zdXBwb3J0ZWQpOwpAQCAtMTI0LDYgKzEzMiwxMCBAQCBDT1BZ IHggdG8gc3Rkb3V0IChmb3JtYXQgQklOQVJZLCBvbl9lcnJvciB1bnN1cHBvcnRlZCk7CiBFUlJP UjogIENPUFkgT05fRVJST1IgY2Fubm90IGJlIHVzZWQgd2l0aCBDT1BZIFRPCiBMSU5FIDE6IENP UFkgeCB0byBzdGRvdXQgKGZvcm1hdCBCSU5BUlksIG9uX2Vycm9yIHVuc3VwcG9ydGVkKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorQ09QWSB4IHRvIHN0ZGlu IChvbl9lcnJvciBzZXRfdG9fbnVsbCk7CitFUlJPUjogIENPUFkgT05fRVJST1IgY2Fubm90IGJl IHVzZWQgd2l0aCBDT1BZIFRPCitMSU5FIDE6IENPUFkgeCB0byBzdGRpbiAob25fZXJyb3Igc2V0 X3RvX251bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgIF4KIENPUFkgeCBmcm9tIHN0ZGlu IChsb2dfdmVyYm9zaXR5IHVuc3VwcG9ydGVkKTsKIEVSUk9SOiAgQ09QWSBMT0dfVkVSQk9TSVRZ ICJ1bnN1cHBvcnRlZCIgbm90IHJlY29nbml6ZWQKIExJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4g KGxvZ192ZXJib3NpdHkgdW5zdXBwb3J0ZWQpOwpAQCAtNzY5LDYgKzc4MSw1MSBAQCBDT05URVhU OiAgQ09QWSBjaGVja19pZ25fZXJyCiBOT1RJQ0U6ICBza2lwcGluZyByb3cgZHVlIHRvIGRhdGEg dHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSA4IGZvciBjb2x1bW4gImsiOiAiYSIKIENPTlRF WFQ6ICBDT1BZIGNoZWNrX2lnbl9lcnIKIE5PVElDRTogIDYgcm93cyB3ZXJlIHNraXBwZWQgZHVl IHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkKK0NSRUFURSBET01BSU4gZF9pbnRfbm90X251 bGwgQVMgSU5UIE5PVCBOVUxMIENIRUNLKHZhbHVlID4gMCk7CitDUkVBVEUgRE9NQUlOIGRfaW50 X3Bvc2l0aXZlX21heWJlX251bGwgQVMgSU5UIENIRUNLKHZhbHVlID4gMCk7CitDUkVBVEUgVEFC TEUgdF9vbl9lcnJvcl9udWxsIChhIGRfaW50X25vdF9udWxsLCBiIGRfaW50X3Bvc2l0aXZlX21h eWJlX251bGwsIGMgSU5UKTsKK1xwc2V0IG51bGwgTlVMTAorLS1mYWlsLCBjb2x1bW4gYSBjYW5u b3Qgc2V0IHRvIG51bGwgdmFsdWUKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lU SCAob25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6ICBkb21haW4gZF9pbnRfbm90X251bGwg ZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK0NPTlRFWFQ6ICBDT1BZIHRfb25fZXJyb3JfbnVs bCwgbGluZSAxLCBjb2x1bW4gYTogbnVsbCBpbnB1dAorLS1mYWlsLCBjb2x1bW4gYSBpcyBkb21h aW4gd2l0aCBub3QtbnVsbCBjb25zdHJhaW50CitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNU RElOIFdJVEggKG9uX2Vycm9yIHNldF90b19udWxsKTsKK0VSUk9SOiAgZG9tYWluIGRfaW50X25v dF9udWxsIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCitDT05URVhUOiAgQ09QWSB0X29uX2Vy cm9yX251bGwsIGxpbmUgMSwgY29sdW1uIGE6ICJhIgorLS1mYWlsLCBjb2x1bW4gYSBjYW5ub3Qg c2V0IHRvIG51bGwgdmFsdWUKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAo b25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6ICBkb21haW4gZF9pbnRfbm90X251bGwgZG9l cyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK0NPTlRFWFQ6ICBDT1BZIHRfb25fZXJyb3JfbnVsbCwg bGluZSAxLCBjb2x1bW4gYTogIi0xIgorLS1mYWlsLiBsZXNzIGRhdGEKK0NPUFkgdF9vbl9lcnJv cl9udWxsIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcsJywgb25fZXJyb3Igc2V0X3RvX251 bGwpOworRVJST1I6ICBtaXNzaW5nIGRhdGEgZm9yIGNvbHVtbiAiYyIKK0NPTlRFWFQ6ICBDT1BZ IHRfb25fZXJyb3JfbnVsbCwgbGluZSAxOiAiMSwxIgorLS1mYWlsLiBleHRyYSBkYXRhCitDT1BZ IHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKGRlbGltaXRlciAnLCcsIG9uX2Vycm9y IHNldF90b19udWxsKTsKK0VSUk9SOiAgZXh0cmEgZGF0YSBhZnRlciBsYXN0IGV4cGVjdGVkIGNv bHVtbgorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5lIDE6ICIxLDIsMyw0Igor LS1vaworQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRf dG9fbnVsbCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsKK05PVElDRTogIGNvbHVtbiAiYiIgd2Fz IHNldCB0byBudWxsIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgMQor Q09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5lIDEsIGNvbHVtbiBiOiAiYSIKK05P VElDRTogIGNvbHVtbiAiYyIgd2FzIHNldCB0byBudWxsIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21w YXRpYmlsaXR5IGF0IGxpbmUgMQorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5l IDEsIGNvbHVtbiBjOiAiZCIKK05PVElDRTogIGNvbHVtbiAiYiIgd2FzIHNldCB0byBudWxsIGR1 ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgMgorQ09OVEVYVDogIENPUFkg dF9vbl9lcnJvcl9udWxsLCBsaW5lIDIsIGNvbHVtbiBiOiAiYiIKK05PVElDRTogIGNvbHVtbiAi YyIgd2FzIHNldCB0byBudWxsIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxp bmUgMworQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5lIDMsIGNvbHVtbiBjOiAi ZSIKK05PVElDRTogIGludmFsaWQgdmFsdWVzIGluIDMgcm93cyB3ZXJlIHJlcGxhY2VkIHdpdGgg bnVsbAorLS0gY2hlY2sgaW5zZXJ0ZWQgY29udGVudAorc2VsZWN0ICogZnJvbSB0X29uX2Vycm9y X251bGw7CisgYSAgfCAgYiAgIHwgIGMgICAKKy0tLS0rLS0tLS0tKy0tLS0tLQorIDEwIHwgTlVM TCB8IE5VTEwKKyAxMSB8IE5VTEwgfCAgIDEyCisgMTMgfCAgIDE0IHwgTlVMTAorKDMgcm93cykK KworXHBzZXQgbnVsbCAnJwogLS0gdGVzdHMgZm9yIG9uX2Vycm9yIG9wdGlvbiB3aXRoIGxvZ192 ZXJib3NpdHkgYW5kIG51bGwgY29uc3RyYWludCB2aWEgZG9tYWluCiBDUkVBVEUgRE9NQUlOIGRj aGVja19pZ25fZXJyMiB2YXJjaGFyKDE1KSBOT1QgTlVMTDsKIENSRUFURSBUQUJMRSBjaGVja19p Z25fZXJyMiAobiBpbnQsIG0gaW50W10sIGsgaW50LCBsIGRjaGVja19pZ25fZXJyMik7CkBAIC04 MjgsNiArODg1LDkgQEAgRFJPUCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0X3RibF92aWV3OwogRFJP UCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0X3RibF92aWV3XzI7CiBEUk9QIEZVTkNUSU9OIGZ1bl9p bnN0ZWFkX29mX2luc2VydF90YmwoKTsKIERST1AgVEFCTEUgY2hlY2tfaWduX2VycjsKK0RST1Ag VEFCTEUgdF9vbl9lcnJvcl9udWxsOworRFJPUCBET01BSU4gZF9pbnRfbm90X251bGw7CitEUk9Q IERPTUFJTiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxsOwogRFJPUCBUQUJMRSBjaGVja19pZ25f ZXJyMjsKIERST1AgRE9NQUlOIGRjaGVja19pZ25fZXJyMjsKIERST1AgVEFCTEUgaGFyZF9lcnI7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jb3B5Mi5zcWwKaW5kZXggNDUyNzM1NTdjZTAuLjAwM2E5MTY0OGUyIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29weTIuc3FsCkBAIC02NywxMiArNjcsMTUgQEAgQ09QWSB4IGZyb20gc3RkaW4g KGZvcmNlX251bGwgKGEpLCBmb3JjZV9udWxsIChiKSk7CiBDT1BZIHggZnJvbSBzdGRpbiAoY29u dmVydF9zZWxlY3RpdmVseSAoYSksIGNvbnZlcnRfc2VsZWN0aXZlbHkgKGIpKTsKIENPUFkgeCBm cm9tIHN0ZGluIChlbmNvZGluZyAnc3FsX2FzY2lpJywgZW5jb2RpbmcgJ3NxbF9hc2NpaScpOwog Q09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIGlnbm9yZSwgb25fZXJyb3IgaWdub3JlKTsKK0NP UFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBzZXRfdG9fbnVsbCwgb25fZXJyb3IgaWdub3JlKTsK IENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IGRlZmF1bHQsIGxvZ192ZXJib3NpdHkg dmVyYm9zZSk7CiAKIC0tIGluY29ycmVjdCBvcHRpb25zCiBDT1BZIHggZnJvbSBzdGRpbiAoZm9y bWF0IEJJTkFSWSwgZGVsaW1pdGVyICcsJyk7CiBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJ TkFSWSwgbnVsbCAneCcpOwogQ09QWSB4IGZyb20gc3RkaW4gKGZvcm1hdCBCSU5BUlksIG9uX2Vy cm9yIGlnbm9yZSk7CitDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgb25fZXJyb3Ig c2V0X3RvX251bGwpOworQ09QWSB4IEZST00gc3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxsLCBy ZWplY3RfbGltaXQgMik7CiBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3IgdW5zdXBwb3J0ZWQp OwogQ09QWSB4IGZyb20gc3RkaW4gKGZvcm1hdCBURVhULCBmb3JjZV9xdW90ZShhKSk7CiBDT1BZ IHggZnJvbSBzdGRpbiAoZm9ybWF0IFRFWFQsIGZvcmNlX3F1b3RlICopOwpAQCAtODcsNiArOTAs NyBAQCBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IFRFWFQsIGZvcmNlX251bGwgKik7CiBDT1BZ IHggdG8gc3Rkb3V0IChmb3JtYXQgQ1NWLCBmb3JjZV9udWxsKGEpKTsKIENPUFkgeCB0byBzdGRv dXQgKGZvcm1hdCBDU1YsIGZvcmNlX251bGwgKik7CiBDT1BZIHggdG8gc3Rkb3V0IChmb3JtYXQg QklOQVJZLCBvbl9lcnJvciB1bnN1cHBvcnRlZCk7CitDT1BZIHggdG8gc3RkaW4gKG9uX2Vycm9y IHNldF90b19udWxsKTsKIENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IHVuc3VwcG9y dGVkKTsKIENPUFkgeCBmcm9tIHN0ZGluIHdpdGggKHJlamVjdF9saW1pdCAxKTsKIENPUFkgeCBm cm9tIHN0ZGluIHdpdGggKG9uX2Vycm9yIGlnbm9yZSwgcmVqZWN0X2xpbWl0IDApOwpAQCAtNTM0 LDYgKzUzOCw0NSBAQCBhCXsyfQkyCiA4CXs4fQk4CiBcLgogCitDUkVBVEUgRE9NQUlOIGRfaW50 X25vdF9udWxsIEFTIElOVCBOT1QgTlVMTCBDSEVDSyh2YWx1ZSA+IDApOworQ1JFQVRFIERPTUFJ TiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxsIEFTIElOVCBDSEVDSyh2YWx1ZSA+IDApOworQ1JF QVRFIFRBQkxFIHRfb25fZXJyb3JfbnVsbCAoYSBkX2ludF9ub3RfbnVsbCwgYiBkX2ludF9wb3Np dGl2ZV9tYXliZV9udWxsLCBjIElOVCk7CisKK1xwc2V0IG51bGwgTlVMTAorLS1mYWlsLCBjb2x1 bW4gYSBjYW5ub3Qgc2V0IHRvIG51bGwgdmFsdWUKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00g U1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwpOworXE4JMTEJMTMKK1wuCisKKy0tZmFp bCwgY29sdW1uIGEgaXMgZG9tYWluIHdpdGggbm90LW51bGwgY29uc3RyYWludAorQ09QWSB0X29u X2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRfdG9fbnVsbCk7CithCTEx CTE0CitcLgorCistLWZhaWwsIGNvbHVtbiBhIGNhbm5vdCBzZXQgdG8gbnVsbCB2YWx1ZQorQ09Q WSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRfdG9fbnVsbCk7 CistMQkxMQkxMworXC4KKworLS1mYWlsLiBsZXNzIGRhdGEKK0NPUFkgdF9vbl9lcnJvcl9udWxs IEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcsJywgb25fZXJyb3Igc2V0X3RvX251bGwpOwor MSwxCitcLgorLS1mYWlsLiBleHRyYSBkYXRhCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNU RElOIFdJVEggKGRlbGltaXRlciAnLCcsIG9uX2Vycm9yIHNldF90b19udWxsKTsKKzEsMiwzLDQK K1wuCisKKy0tb2sKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJy b3Igc2V0X3RvX251bGwsIGxvZ192ZXJib3NpdHkgdmVyYm9zZSk7CisxMAlhCWQKKzExCWIJMTIK KzEzCTE0CWUKK1wuCisKKy0tIGNoZWNrIGluc2VydGVkIGNvbnRlbnQKK3NlbGVjdCAqIGZyb20g dF9vbl9lcnJvcl9udWxsOworXHBzZXQgbnVsbCAnJwogLS0gdGVzdHMgZm9yIG9uX2Vycm9yIG9w dGlvbiB3aXRoIGxvZ192ZXJib3NpdHkgYW5kIG51bGwgY29uc3RyYWludCB2aWEgZG9tYWluCiBD UkVBVEUgRE9NQUlOIGRjaGVja19pZ25fZXJyMiB2YXJjaGFyKDE1KSBOT1QgTlVMTDsKIENSRUFU RSBUQUJMRSBjaGVja19pZ25fZXJyMiAobiBpbnQsIG0gaW50W10sIGsgaW50LCBsIGRjaGVja19p Z25fZXJyMik7CkBAIC02MDMsNiArNjQ2LDkgQEAgRFJPUCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0 X3RibF92aWV3OwogRFJPUCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0X3RibF92aWV3XzI7CiBEUk9Q IEZVTkNUSU9OIGZ1bl9pbnN0ZWFkX29mX2luc2VydF90YmwoKTsKIERST1AgVEFCTEUgY2hlY2tf aWduX2VycjsKK0RST1AgVEFCTEUgdF9vbl9lcnJvcl9udWxsOworRFJPUCBET01BSU4gZF9pbnRf bm90X251bGw7CitEUk9QIERPTUFJTiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxsOwogRFJPUCBU QUJMRSBjaGVja19pZ25fZXJyMjsKIERST1AgRE9NQUlOIGRjaGVja19pZ25fZXJyMjsKIERST1Ag VEFCTEUgaGFyZF9lcnI7Ci0tIAoyLjM0LjEKCg== --00000000000038f71b063095e3bd--