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 1tXZqM-00A7Ld-Ta for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Jan 2025 05:52:03 +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 1tXZqL-00FR8b-8D for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Jan 2025 05:52:01 +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.94.2) (envelope-from ) id 1tXZqK-00FR8T-SM for pgsql-hackers@lists.postgresql.org; Tue, 14 Jan 2025 05:52:01 +0000 Received: from mail-vs1-xe2e.google.com ([2607:f8b0:4864:20::e2e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tXZqI-000IqG-2G for pgsql-hackers@lists.postgresql.org; Tue, 14 Jan 2025 05:52:00 +0000 Received: by mail-vs1-xe2e.google.com with SMTP id ada2fe7eead31-4aff04f17c7so3806729137.0 for ; Mon, 13 Jan 2025 21:51:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736833917; x=1737438717; 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=KfIFrC4CMVGiEDH2KoC7Ana1FGY9wZJpyAZwmqq9uc4=; b=DnE5RxoG3lY1Mr/WhPSTw3qpthx5q25Yhz6NuehsclUeeh+Cj+pHtH2gy8UaGcoXW+ 8/mHSYtrbVlyBAv21awAU1bTw2+57DX7vhcBCqTX4Ju1JL5DfT1wbHgZXz/LdknRv8TX AV4jCVqD8W1iPkol16L37FgzKyc5nZ+w7gN/Xfj8vt/nhxa8hhXS/opLywMOU0UtQ+js dvbR59z/JDg9UgFmvv45Pu6qbjj607dzsVe4P5RFu087eeMx0njRClLUTbAJ/+L23hvZ cQCE/qV0weCpNrS7uQP9K4mxlvv2935QSVUGMI4ArxopQUjZidevLTsAdbbCiDmA9iIx LMMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736833917; x=1737438717; 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=KfIFrC4CMVGiEDH2KoC7Ana1FGY9wZJpyAZwmqq9uc4=; b=PMSO8eGdneFseBoGxWbRC/VR+Klu7/8KCUD4DM7jaxvQXICw6SPkc6t78tP4Honzt8 p1P/k07kN9QnZbCqvTVKhJtw0X1xnBNjS+YqONn62MVr63cPQ3u8lz91JUb9dx9BXHyL jfbmZ7I3SaiCTr2AMFQvnpY5CNOKI78a0i1Y5jiJ47UvleA7XrO9y2+PxY6ApLDftssm xn3tB4pHyx2QcwxYW9fDsqWBjQteZdvXW33Xh7OU38i41aL0Q+5OMkMwlbrF0GsymOUZ B9E2uobxMKuFtdTfjsAsr3g/jmmZnTs+/qmoo/1NlkroRj/ofiaMO5Xhg3Nv8grThHDh jhUg== X-Forwarded-Encrypted: i=1; AJvYcCU71oBxWkquDYVz1V2j+C3gaOEkTNTV/ctyIw67q93eCozRS2FveHGYL7inyOn7wjH5vQ9ddejme+xG3KWI@lists.postgresql.org X-Gm-Message-State: AOJu0YworJjRmaPJlOuTBoDPfAtqsbFeN8MjKhSPMW4pKMubKyutxrkB efRJ076TRUXetXUH39oFjrlWONTyIJBnqSzTCBOxxoUsUsqcdjPBJ26rN5YyhO0N5c7VXEnKNBG 9k5/1CUfv+9A3MQj7WeU4MP+irAA= X-Gm-Gg: ASbGncud2OIW82QcZVN6yheBOGm0jdv1zx6YbFpwF50mhc7olxbGYHW3t+wSW/cjnQE 4Os4S/vI+QO4fs5BMOvQM1t/SVhWLC6HMBm8s19QF3JYdeRJpO+ydeOdvyvTgrO850C8r+w== X-Google-Smtp-Source: AGHT+IEOTD8JAJLlLBUG4pmDa+UwJe3P88HGSKVAH9+FphLOvAK/NrSu/UnZxOX0Unu0YUONZr+ZZkGG6BJBTV2AJlM= X-Received: by 2002:a67:e712:0:b0:4af:d48d:5142 with SMTP id ada2fe7eead31-4b5806d2035mr20782280137.3.1736833916748; Mon, 13 Jan 2025 21:51:56 -0800 (PST) MIME-Version: 1.0 References: <04bf425ad1b15a4daefe96c478a5253b@oss.nttdata.com> <20240206191937.72eaf0ccc20cfea37944b422@sraoss.co.jp> <76da9fcc-93c5-4053-872e-12932a95356d@uni-muenster.de> <6eac5b45-7f45-4c7a-aae1-e90db8be2e08@uni-muenster.de> <3d6b5885-16a1-475d-b56f-41701c48d9d4@uni-muenster.de> <63595e8f-a245-4335-aa22-7e449a70e210@oss.nttdata.com> <07587c36-18b3-4ccb-b5fb-579bcb04ed37@oss.nttdata.com> In-Reply-To: From: jian he Date: Tue, 14 Jan 2025 13:51:20 +0800 X-Gm-Features: AbW1kvYtUFhACmga2Rvj-va-57SO-RATivTUmcVOw--95ZjqfpsgqKQ7ut_jZm4 Message-ID: Subject: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row To: Kirill Reshke Cc: Fujii Masao , Jim Jones , "David G. Johnston" , Yugo NAGATA , torikoshia , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000a4d992062ba428f5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a4d992062ba428f5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jan 11, 2025 at 5:54=E2=80=AFPM Kirill Reshke wrote: > > On Fri, 10 Jan 2025 at 11:38, jian he wrote= : > > I think there are three remaining issues that may need more attention > > 1. > > Table 27.42. pg_stat_progress_copy View > > (pg_stat_progress_copy) > > column pg_stat_progress_copy.tuples_skipped now the description is > > "" > > When the ON_ERROR option is set to ignore, this value shows the number = of tuples > > skipped due to malformed data. When the ON_ERROR option is set to set_t= o_null, > > this value shows the number of tuples where malformed data was converte= d to > > NULL. > > """ > > now the column name tuples_skipped would not be that suitable for > > (on_error set_to_null). > > since now it is not tuple skipped, it is in a tuple some value was set = to null. > > Indeed this is something we need to fix. > > > Or > > we can skip progress reports for (on_error set_to_null) case. > > Maybe we can add a `malformed_tuples` column to this view? > we can do this later. so for on_error set_to_null, i've removed pgstat_progress_update_param related code. the attached patch also did some doc enhancement, error message enhancement= . --000000000000a4d992062ba428f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0001-COPY-on_error-set_to_null.patch" Content-Disposition: attachment; filename="v11-0001-COPY-on_error-set_to_null.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5w209vv0 RnJvbSBhOTVkNDJiZjFlNjA0NGM2YzlhMmFmYmIxNWQxNjhkNjY3OWVjZWFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTQgSmFuIDIwMjUgMTM6NDY6MTIgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAxLzFdIENPUFkgKG9uX2Vycm9yIHNldF90b19udWxsKQoKRXh0ZW50ICJvbl9lcnJvciBhY3Rp b24iLCBpbnRyb2R1Y2UgbmV3IG9wdGlvbjogIG9uX2Vycm9yIHNldF90b19udWxsLgpDdXJyZW50 IGdyYW1tYXIgbWFrZXMgdXMgdW5hYmxlIHRvIHVzZSAib25fZXJyb3IgbnVsbCIsIHNvIHdlIGNo b29zZSAib25fZXJyb3Igc2V0X3RvX251bGwiLgoKQW55IGRhdGEgdHlwZSBjb252ZXJzaW9uIGVy cm9ycyBkdXJpbmcgdGhlIENPUFkgRlJPTSBwcm9jZXNzIHdpbGwgcmVzdWx0IGluIHRoZQphZmZl Y3RlZCBjb2x1bW4gYmVpbmcgc2V0IHRvIE5VTEwuIFRoaXMgb25seSBhcHBsaWNhYmxlIHdoZW4g dXNpbmcgdGhlCm5vbi1iaW5hcnkgZm9ybWF0IGZvciBDT1BZIEZST00uIEhvd2V2ZXIsIHRoZSBu b3QtbnVsbCBjb25zdHJhaW50IHdpbGwgc3RpbGwgYmUKZW5mb3JjZWQuIElmIGEgY29udmVyc2lv biBlcnJvciBsZWFkcyB0byBhIE5VTEwgdmFsdWUgaW4gYSBjb2x1bW4gdGhhdCBoYXMgYQpub3Qt bnVsbCBjb25zdHJhaW50LCBhIG5vdC1udWxsIGNvbnN0cmFpbnQgdmlvbGF0aW9uIGVycm9yIHdp bGwgYmUgdHJpZ2dlcmVkLgoKQSByZWdyZXNzaW9uIHRlc3QgZm9yIGEgZG9tYWluIHdpdGggYSBu b3QtbnVsbCBjb25zdHJhaW50IGhhcyBiZWVuIGFkZGVkLgoKQXV0aG9yOiBKaWFuIEhlIDxqaWFu LnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+LApBdXRob3I6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtp cmlsbEBnbWFpbC5jb20+CgpSZXZpZXdlZC1ieToKRnVqaWkgTWFzYW8gPG1hc2FvLmZ1amlpQG9z cy5udHRkYXRhLmNvbT4sCkppbSBKb25lcyA8amltLmpvbmVzQHVuaS1tdWVuc3Rlci5kZT4sCiJE YXZpZCBHLiBKb2huc3RvbiIgPGRhdmlkLmcuam9obnN0b25AZ21haWwuY29tPiwKWXVnbyBOQUdB VEEgPG5hZ2F0YUBzcmFvc3MuY28uanA+LAp0b3Jpa29zaGlhIDx0b3Jpa29zaGlhQG9zcy5udHRk YXRhLmNvbT4KCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FLRlF1d2F3eTFlNllS NFM9ait5N3BYcWdfRHcxV0JWcmd2Zj1CUDNkMV9hU2ZlXytRQG1haWwuZ21haWwuY29tCi0tLQog ZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgICAgICAgICAgICAgICB8IDM0ICsrKysrKysrKy0t LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMgICAgICAgICAgICAgIHwgIDYgKystCiBz cmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jICAgICAgICAgIHwgMjkgKysrKysrKystLS0t CiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMgICAgIHwgNDYgKysrKysrKysr KysrKysrKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgIHwgIDIg Ky0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaCAgICAgICAgICAgICAgfCAgMSArCiBzcmMv aW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oIHwgIDQgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0ICAgICAgfCA2MCArKysrKysrKysrKysrKysrKysrKysr KysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbCAgICAgICAgICAgfCA0NiArKysrKysr KysrKysrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMjAxIGluc2VydGlvbnMoKyksIDI3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jb3B5LnNnbWwKaW5kZXggODM5NDQwMmYwOS4uNWUxZDA4YWI5MSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9j b3B5LnNnbWwKQEAgLTM5NCwyMyArMzk0LDM0IEBAIENPUFkgeyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUKICAg ICAgIFNwZWNpZmllcyBob3cgdG8gYmVoYXZlIHdoZW4gZW5jb3VudGVyaW5nIGFuIGVycm9yIGNv bnZlcnRpbmcgYSBjb2x1bW4ncwogICAgICAgaW5wdXQgdmFsdWUgaW50byBpdHMgZGF0YSB0eXBl LgogICAgICAgQW4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVycm9yX2FjdGlvbjwv cmVwbGFjZWFibGU+IHZhbHVlIG9mCi0gICAgICA8bGl0ZXJhbD5zdG9wPC9saXRlcmFsPiBtZWFu cyBmYWlsIHRoZSBjb21tYW5kLCB3aGlsZQotICAgICAgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFs PiBtZWFucyBkaXNjYXJkIHRoZSBpbnB1dCByb3cgYW5kIGNvbnRpbnVlIHdpdGggdGhlIG5leHQg b25lLgorICAgICAgPGxpdGVyYWw+c3RvcDwvbGl0ZXJhbD4gbWVhbnMgZmFpbCB0aGUgY29tbWFu ZCwKKyAgICAgIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gbWVhbnMgZGlzY2FyZCB0aGUgaW5w dXQgcm93IGFuZCBjb250aW51ZSB3aXRoIHRoZSBuZXh0IG9uZSwgYW5kCisgICAgICA8bGl0ZXJh bD5zZXRfdG9fbnVsbDwvbGl0ZXJhbD4gbWVhbnMgcmVwbGFjZSBjb2x1bW5zIGNvbnRhaW5pbmcg ZXJyb25lb3VzIGlucHV0IHZhbHVlcyB3aXRoCisgICAgICA8bGl0ZXJhbD5OVUxMPC9saXRlcmFs PiBhbmQgbW92ZSB0byB0aGUgbmV4dCBmaWVsZC4KICAgICAgIFRoZSBkZWZhdWx0IGlzIDxsaXRl cmFsPnN0b3A8L2xpdGVyYWw+LgogICAgICA8L3BhcmE+CiAgICAgIDxwYXJhPgotICAgICAgVGhl IDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gb3B0aW9uIGlzIGFwcGxpY2FibGUgb25seSBmb3Ig PGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5kPgorICAgICAgVGhlIDxsaXRlcmFsPmlnbm9yZTwv bGl0ZXJhbD4gYW5kIDxsaXRlcmFsPnNldF90b19udWxsPC9saXRlcmFsPgorICAgICAgb3B0aW9u cyBhcmUgYXBwbGljYWJsZSBvbmx5IGZvciA8Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+CiAg ICAgICB3aGVuIHRoZSA8bGl0ZXJhbD5GT1JNQVQ8L2xpdGVyYWw+IGlzIDxsaXRlcmFsPnRleHQ8 L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmNzdjwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KICAgICAg PHBhcmE+Ci0gICAgICBBIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVzc2FnZSBjb250YWlu aW5nIHRoZSBpZ25vcmVkIHJvdyBjb3VudCBpcwotICAgICAgZW1pdHRlZCBhdCB0aGUgZW5kIG9m IHRoZSA8Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+IGlmIGF0IGxlYXN0IG9uZQotICAgICAg cm93IHdhcyBkaXNjYXJkZWQuIFdoZW4gPGxpdGVyYWw+TE9HX1ZFUkJPU0lUWTwvbGl0ZXJhbD4g b3B0aW9uIGlzIHNldCB0bwotICAgICAgPGxpdGVyYWw+dmVyYm9zZTwvbGl0ZXJhbD4sIGEgPGxp dGVyYWw+Tk9USUNFPC9saXRlcmFsPiBtZXNzYWdlCisgICAgICBGb3IgPGxpdGVyYWw+aWdub3Jl PC9saXRlcmFsPiBvcHRpb24sCisgICAgICBhIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVz c2FnZSBjb250YWluaW5nIHRoZSBpZ25vcmVkIHJvdyBjb3VudCBpcworICAgICAgZW1pdHRlZCBh dCB0aGUgZW5kIG9mIHRoZSA8Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+IGlmIGF0IGxlYXN0 IG9uZSByb3cgd2FzIGRpc2NhcmRlZC4KKyAgICAgIEZvciA8bGl0ZXJhbD5zZXRfdG9fbnVsbDwv bGl0ZXJhbD4gb3B0aW9uLAorICAgICAgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+IG1lc3Nh Z2UgY29udGFpbmluZyB0aGUgcm93IGNvdW50IHRoYXQgZXJyb25lb3VzIGlucHV0IHZhbHVlcyBy ZXBsYWNlZCBieSB0byBudWxsCisgICAgICBoYXBwZW5lZCBpcyBlbWl0dGVkIGF0IHRoZSBlbmQg b2YgdGhlIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4gaWYgYXQgbGVhc3Qgb25lIHJvdyB3 YXMgcmVwbGFjZWQuCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBXaGVuIDxsaXRl cmFsPkxPR19WRVJCT1NJVFk8L2xpdGVyYWw+IG9wdGlvbiBpcyBzZXQgdG8gPGxpdGVyYWw+dmVy Ym9zZTwvbGl0ZXJhbD4sCisgICAgICBmb3IgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBvcHRp b24sIGEgPGxpdGVyYWw+Tk9USUNFPC9saXRlcmFsPiBtZXNzYWdlCiAgICAgICBjb250YWluaW5n IHRoZSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlIGFuZCB0aGUgY29sdW1uIG5hbWUgd2hvc2UgaW5w dXQKLSAgICAgIGNvbnZlcnNpb24gaGFzIGZhaWxlZCBpcyBlbWl0dGVkIGZvciBlYWNoIGRpc2Nh cmRlZCByb3cuCi0gICAgICBXaGVuIGl0IGlzIHNldCB0byA8bGl0ZXJhbD5zaWxlbnQ8L2xpdGVy YWw+LCBubyBtZXNzYWdlIGlzIGVtaXR0ZWQKLSAgICAgIHJlZ2FyZGluZyBpZ25vcmVkIHJvd3Mu CisgICAgICBjb252ZXJzaW9uIGhhcyBmYWlsZWQgaXMgZW1pdHRlZCBmb3IgZWFjaCBkaXNjYXJk ZWQgcm93OworICAgICAgZm9yIDxsaXRlcmFsPnNldF90b19udWxsPC9saXRlcmFsPiBvcHRpb24s CisgICAgICBhIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVzc2FnZSBjb250YWluaW5nIHRo ZSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlIGFuZCB0aGUgY29sdW1uIG5hbWUKKyAgICAgIHdoZXJl IHZhbHVlIHdhcyByZXBsYWNlZCB3aXRoIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGZvciBlYWNo IGlucHV0IGNvbnZlcnNpb24gZmFpbHVyZS4KKyAgICAgIFdoZW4gaXQgaXMgc2V0IHRvIDxsaXRl cmFsPnNpbGVudDwvbGl0ZXJhbD4sIG5vIG1lc3NhZ2UgaXMgZW1pdHRlZCByZWdhcmRpbmcgaW5w dXQgY29udmVyc2lvbiBmYWlsZWQgcm93cy4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTQ1OCw3ICs0NjksOCBAQCBDT1BZIHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxh Y2VhYmxlCiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+CiAgICAgICBUaGlzIGlzIGN1cnJlbnRs eSB1c2VkIGluIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4gY29tbWFuZCB3aGVuCi0gICAg ICA8bGl0ZXJhbD5PTl9FUlJPUjwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNldCB0byA8bGl0ZXJhbD5p Z25vcmU8L2xpdGVyYWw+LgorICAgICAgPGxpdGVyYWw+T05fRVJST1I8L2xpdGVyYWw+IG9wdGlv biBpcyBzZXQgdG8gPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPgorICAgICAgb3IgPGxpdGVyYWw+ c2V0X3RvX251bGw8L2xpdGVyYWw+LgogICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAg ICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHku YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwppbmRleCBjZmNhOWQ5ZGMyLi5hZmU2MDc1 OGQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY29weS5jCkBAIC00MDMsMTIgKzQwMywxNCBAQCBkZWZHZXRDb3B5T25F cnJvckNob2ljZShEZWZFbGVtICpkZWYsIFBhcnNlU3RhdGUgKnBzdGF0ZSwgYm9vbCBpc19mcm9t KQogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkZWYtPmxvY2F0aW9uKSkpOwogCiAJ LyoKLQkgKiBBbGxvdyAic3RvcCIsIG9yICJpZ25vcmUiIHZhbHVlcy4KKwkgKiBBbGxvdyAic3Rv cCIsICJpZ25vcmUiLCAic2V0X3RvX251bGwiIHZhbHVlcy4KIAkgKi8KIAlpZiAocGdfc3RyY2Fz ZWNtcChzdmFsLCAic3RvcCIpID09IDApCiAJCXJldHVybiBDT1BZX09OX0VSUk9SX1NUT1A7CiAJ aWYgKHBnX3N0cmNhc2VjbXAoc3ZhbCwgImlnbm9yZSIpID09IDApCiAJCXJldHVybiBDT1BZX09O X0VSUk9SX0lHTk9SRTsKKwlpZiAocGdfc3RyY2FzZWNtcChzdmFsLCAic2V0X3RvX251bGwiKSA9 PSAwKQorCQlyZXR1cm4gQ09QWV9PTl9FUlJPUl9OVUxMOwogCiAJZXJlcG9ydChFUlJPUiwKIAkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLApAQCAtOTE4LDcgKzky MCw3IEBAIFByb2Nlc3NDb3B5T3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCSBlcnJtc2coIm9ubHkgT05fRVJST1IgU1RP UCBpcyBhbGxvd2VkIGluIEJJTkFSWSBtb2RlIikpKTsKIAotCWlmIChvcHRzX291dC0+cmVqZWN0 X2xpbWl0ICYmICFvcHRzX291dC0+b25fZXJyb3IpCisJaWYgKG9wdHNfb3V0LT5yZWplY3RfbGlt aXQgJiYgb3B0c19vdXQtPm9uX2Vycm9yICE9IENPUFlfT05fRVJST1JfSUdOT1JFKQogCQllcmVw b3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAogCQkvKi0gdHJhbnNsYXRvcjogZmlyc3QgYW5kIHNlY29uZCAlcyBhcmUgdGhlIG5hbWVzIG9m IENPUFkgb3B0aW9uLCBlLmcuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5 ZnJvbS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYwppbmRleCAwY2JkMDVmNTYw Li5jMzhmZjNkYzZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKQEAgLTEzMjEsMTQgKzEzMjEs MjIgQEAgQ29weUZyb20oQ29weUZyb21TdGF0ZSBjc3RhdGUpCiAJLyogRG9uZSwgY2xlYW4gdXAg Ki8KIAllcnJvcl9jb250ZXh0X3N0YWNrID0gZXJyY2FsbGJhY2sucHJldmlvdXM7CiAKLQlpZiAo Y3N0YXRlLT5vcHRzLm9uX2Vycm9yICE9IENPUFlfT05fRVJST1JfU1RPUCAmJgotCQljc3RhdGUt Pm51bV9lcnJvcnMgPiAwICYmCisJaWYgKGNzdGF0ZS0+bnVtX2Vycm9ycyA+IDAgJiYKIAkJY3N0 YXRlLT5vcHRzLmxvZ192ZXJib3NpdHkgPj0gQ09QWV9MT0dfVkVSQk9TSVRZX0RFRkFVTFQpCi0J CWVyZXBvcnQoTk9USUNFLAotCQkJCWVycm1zZ19wbHVyYWwoIiVsbHUgcm93IHdhcyBza2lwcGVk IGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKLQkJCQkJCQkgICIlbGx1IHJvd3Mg d2VyZSBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKLQkJCQkJCQkg ICh1bnNpZ25lZCBsb25nIGxvbmcpIGNzdGF0ZS0+bnVtX2Vycm9ycywKLQkJCQkJCQkgICh1bnNp Z25lZCBsb25nIGxvbmcpIGNzdGF0ZS0+bnVtX2Vycm9ycykpOworCXsKKwkJaWYgKGNzdGF0ZS0+ b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSkKKwkJCWVyZXBvcnQoTk9USUNF LAorCQkJCQllcnJtc2dfcGx1cmFsKCIlbGx1IHJvdyB3YXMgc2tpcHBlZCBkdWUgdG8gZGF0YSB0 eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJCSAgIiVsbHUgcm93cyB3ZXJlIHNraXBwZWQg ZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkiLAorCQkJCQkJCQkgICh1bnNpZ25lZCBs b25nIGxvbmcpIGNzdGF0ZS0+bnVtX2Vycm9ycywKKwkJCQkJCQkJICAodW5zaWduZWQgbG9uZyBs b25nKSBjc3RhdGUtPm51bV9lcnJvcnMpKTsKKwkJZWxzZSBpZiAoY3N0YXRlLT5vcHRzLm9uX2Vy cm9yID09IENPUFlfT05fRVJST1JfTlVMTCkKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQllcnJt c2dfcGx1cmFsKCJlcnJvbmVvdXMgdmFsdWVzIGluICVsbHUgcm93IHdhcyByZXBsYWNlZCB3aXRo IG51bGwiLAorCQkJCQkJCQkgICJlcnJvbmVvdXMgdmFsdWVzIGluICVsbHUgcm93cyB3ZXJlIHJl cGxhY2VkIHdpdGggbnVsbCIsCisJCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgY3N0YXRl LT5udW1fZXJyb3JzLAorCQkJCQkJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIGNzdGF0ZS0+bnVt X2Vycm9ycykpOworCX0KIAogCWlmIChiaXN0YXRlICE9IE5VTEwpCiAJCUZyZWVCdWxrSW5zZXJ0 U3RhdGUoYmlzdGF0ZSk7CkBAIC0xNDc0LDEwICsxNDgyLDExIEBAIEJlZ2luQ29weUZyb20oUGFy c2VTdGF0ZSAqcHN0YXRlLAogCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBm YWxzZTsKIAogCQkvKgotCQkgKiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IENPUFlfT05fRVJS T1JfSUdOT1JFLiBXZSdsbCBhZGQgb3RoZXIKLQkJICogb3B0aW9ucyBsYXRlcgorCQkgKiBDdXJy ZW50bHkgd2Ugb25seSBzdXBwb3J0IENPUFlfT05fRVJST1JfSUdOT1JFLCBDT1BZX09OX0VSUk9S X05VTEwuCisJCSAqIFdlJ2xsIGFkZCBvdGhlciBvcHRpb25zIGxhdGVyCiAJCSAqLwotCQlpZiAo Y3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFKQorCQlpZiAoY3N0 YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFIHx8CisJCQljc3RhdGUt Pm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9OVUxMKQogCQkJY3N0YXRlLT5lc2NvbnRl eHQtPmRldGFpbHNfd2FudGVkID0gZmFsc2U7CiAJfQogCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Nv cHlmcm9tcGFyc2UuYwppbmRleCBjYWNjZGM4NTYzLi5jMGY2Y2U1MDU3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvY29weWZyb21wYXJzZS5jCkBAIC04NzEsNiArODcxLDcgQEAgTmV4dENvcHlGcm9tKENv cHlGcm9tU3RhdGUgY3N0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsCiAJCWludAkJCWZsZGN0 OwogCQlpbnQJCQlmaWVsZG5vOwogCQljaGFyCSAgICpzdHJpbmc7CisJCWJvb2wJCWN1cnJlbnRf cm93X2Vycm9uZW91cyA9IGZhbHNlOwogCiAJCS8qIHJlYWQgcmF3IGZpZWxkcyBpbiB0aGUgbmV4 dCBsaW5lICovCiAJCWlmICghTmV4dENvcHlGcm9tUmF3RmllbGRzKGNzdGF0ZSwgJmZpZWxkX3N0 cmluZ3MsICZmbGRjdCkpCkBAIC05NDksNyArOTUwLDggQEAgTmV4dENvcHlGcm9tKENvcHlGcm9t U3RhdGUgY3N0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsCiAKIAkJCS8qCiAJCQkgKiBJZiBP Tl9FUlJPUiBpcyBzcGVjaWZpZWQgd2l0aCBJR05PUkUsIHNraXAgcm93cyB3aXRoIHNvZnQKLQkJ CSAqIGVycm9ycworCQkJICogZXJyb3JzLiBJZiBPTl9FUlJPUiBpcyBzcGVjaWZpZWQgd2l0aCBz ZXRfdG9fbnVsbCwgdHJ5CisJCQkgKiB0byByZXBsYWNlIHdpdGggbnVsbC4KIAkJCSAqLwogCQkJ ZWxzZSBpZiAoIUlucHV0RnVuY3Rpb25DYWxsU2FmZSgmaW5fZnVuY3Rpb25zW21dLAogCQkJCQkJ CQkJCQlzdHJpbmcsCkBAIC05NjAsOSArOTYyLDQ3IEBAIE5leHRDb3B5RnJvbShDb3B5RnJvbVN0 YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCQkJewogCQkJCUFzc2VydChjc3Rh dGUtPm9wdHMub25fZXJyb3IgIT0gQ09QWV9PTl9FUlJPUl9TVE9QKTsKIAorCQkJCWlmIChjc3Rh dGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9OVUxMKQorCQkJCXsKKwkJCQkJLyoK KwkJCQkJICogd2UgdXNlIHRoaXMgY291bnQgdGhlIG51bWJlciBvZiByb3dzIChub3QgZmllbGRz KSB0aGF0CisJCQkJCSAqIHN1Y2Nlc3NmdWxseSBhcHBsaWVkIHRoZSBvbl9lcnJvciBzZXRfdG9f bnVsbAorCQkJCQkqLworCQkJCQlpZiAoIWN1cnJlbnRfcm93X2Vycm9uZW91cykKKwkJCQkJCWN1 cnJlbnRfcm93X2Vycm9uZW91cyA9IHRydWU7CisKKwkJCQkJLyoKKwkJCQkJICogd2UgbmVlZCBh bm90aGVyIElucHV0RnVuY3Rpb25DYWxsU2FmZSBzbyB3ZSBjYW4gZXJyb3Igb3V0CisJCQkJCSAq IG5vdC1udWxsIHZpb2xhdGlvbiBmb3IgZG9tYWluIHdpdGggbm90LW51bGwgY29uc3RyYWludC4K KwkJCQkJKi8KKwkJCQkJY3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVkID0gZmFsc2U7 CisJCQkJCWlmIChJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmluX2Z1bmN0aW9uc1ttXSwKKwkJCQkJ CQkJCQkJICBOVUxMLAorCQkJCQkJCQkJCQkgIHR5cGlvcGFyYW1zW21dLAorCQkJCQkJCQkJCQkg IGF0dC0+YXR0dHlwbW9kLAorCQkJCQkJCQkJCQkgIChOb2RlICopIGNzdGF0ZS0+ZXNjb250ZXh0 LAorCQkJCQkJCQkJCQkgICZ2YWx1ZXNbbV0pKQorCQkJCQl7CisJCQkJCQludWxsc1ttXSA9IHRy dWU7CisJCQkJCQl2YWx1ZXNbbV0gPSAoRGF0dW0pIDA7CisJCQkJCQlpZiAoY3N0YXRlLT5vcHRz LmxvZ192ZXJib3NpdHkgPT0gQ09QWV9MT0dfVkVSQk9TSVRZX1ZFUkJPU0UpCisJCQkJCQkJZXJl cG9ydChOT1RJQ0UsCisJCQkJCQkJCQllcnJtc2coImNvbHVtbiBcIiVzXCIgd2FzIHNldCB0byBu dWxsIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgJWxsdSIsCisJCQkJ CQkJCQkJCWNzdGF0ZS0+Y3VyX2F0dG5hbWUsCisJCQkJCQkJCQkJCSh1bnNpZ25lZCBsb25nIGxv bmcpIGNzdGF0ZS0+Y3VyX2xpbmVubykpOworCQkJCQkJY29udGludWU7CisJCQkJCX0KKwkJCQkJ ZWxzZQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RFX05PVF9O VUxMX1ZJT0xBVElPTiksCisJCQkJCQkJCWVycm1zZygiZG9tYWluICVzIGRvZXMgbm90IGFsbG93 IG51bGwgdmFsdWVzIiwgZm9ybWF0X3R5cGVfYmUodHlwaW9wYXJhbXNbbV0pKSwKKwkJCQkJCQkJ ZXJyZGF0YXR5cGUodHlwaW9wYXJhbXNbbV0pKTsKKwkJCQl9CisKIAkJCQljc3RhdGUtPm51bV9l cnJvcnMrKzsKIAotCQkJCWlmIChjc3RhdGUtPm9wdHMubG9nX3ZlcmJvc2l0eSA9PSBDT1BZX0xP R19WRVJCT1NJVFlfVkVSQk9TRSkKKwkJCQlpZiAoY3N0YXRlLT5vcHRzLmxvZ192ZXJib3NpdHkg PT0gQ09QWV9MT0dfVkVSQk9TSVRZX1ZFUkJPU0UgJiYKKwkJCQkJY3N0YXRlLT5vcHRzLm9uX2Vy cm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFKQogCQkJCXsKIAkJCQkJLyoKIAkJCQkJICogU2lu Y2Ugd2UgZW1pdCBsaW5lIG51bWJlciBhbmQgY29sdW1uIGluZm8gaW4gdGhlIGJlbG93CkBAIC0x MDAxLDYgKzEwNDEsOCBAQCBOZXh0Q29weUZyb20oQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJD b250ZXh0ICplY29udGV4dCwKIAkJCWNzdGF0ZS0+Y3VyX2F0dHZhbCA9IE5VTEw7CiAJCX0KIAor CQlpZiAoY3VycmVudF9yb3dfZXJyb25lb3VzKQorCQkJY3N0YXRlLT5udW1fZXJyb3JzKys7CiAJ CUFzc2VydChmaWVsZG5vID09IGF0dHJfY291bnQpOwogCX0KIAllbHNlCmRpZmYgLS1naXQgYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKaW5kZXggODFjYmYxMGFhMi4uMDRhMTU1YWQ1ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YwpAQCAtMzI1MCw3ICszMjUwLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5f aWQsCiAJCUNPTVBMRVRFX1dJVEgoIkZPUk1BVCIsICJGUkVFWkUiLCAiREVMSU1JVEVSIiwgIk5V TEwiLAogCQkJCQkgICJIRUFERVIiLCAiUVVPVEUiLCAiRVNDQVBFIiwgIkZPUkNFX1FVT1RFIiwK IAkJCQkJICAiRk9SQ0VfTk9UX05VTEwiLCAiRk9SQ0VfTlVMTCIsICJFTkNPRElORyIsICJERUZB VUxUIiwKLQkJCQkJICAiT05fRVJST1IiLCAiTE9HX1ZFUkJPU0lUWSIpOworCQkJCQkgICJPTl9F UlJPUiIsICJTRVRfVE9fTlVMTCIsICJMT0dfVkVSQk9TSVRZIik7CiAKIAkvKiBDb21wbGV0ZSBD T1BZIDxzdGg+IEZST018VE8gZmlsZW5hbWUgV0lUSCAoRk9STUFUICovCiAJZWxzZSBpZiAoTWF0 Y2hlcygiQ09QWXxcXGNvcHkiLCBNYXRjaEFueSwgIkZST018VE8iLCBNYXRjaEFueSwgIldJVEgi LCAiKCIsICJGT1JNQVQiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHku aCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaAppbmRleCAwNmRmZGZlZjcyLi43ZWJmNGY3 ODkzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKKysrIGIvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvY29weS5oCkBAIC0zOCw2ICszOCw3IEBAIHR5cGVkZWYgZW51bSBDb3B5 T25FcnJvckNob2ljZQogewogCUNPUFlfT05fRVJST1JfU1RPUCA9IDAsCQkvKiBpbW1lZGlhdGVs eSB0aHJvdyBlcnJvcnMsIGRlZmF1bHQgKi8KIAlDT1BZX09OX0VSUk9SX0lHTk9SRSwJCS8qIGln bm9yZSBlcnJvcnMgKi8KKwlDT1BZX09OX0VSUk9SX05VTEwsCQkJLyogc2V0IGVycm9yIGZpZWxk IHRvIG51bGwgKi8KIH0gQ29weU9uRXJyb3JDaG9pY2U7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvY29weWZyb21faW50ZXJuYWwuaAppbmRleCAxZDhhYzhmNjJlLi41MDc1OWVhZjFjIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9tX2ludGVybmFsLmgKQEAgLTk4LDcgKzk4LDkgQEAg dHlwZWRlZiBzdHJ1Y3QgQ29weUZyb21TdGF0ZURhdGEKIAlFcnJvclNhdmVDb250ZXh0ICplc2Nv bnRleHQ7CS8qIHNvZnQgZXJyb3IgdHJhcHBlZCBkdXJpbmcgaW5fZnVuY3Rpb25zCiAJCQkJCQkJ CQkgKiBleGVjdXRpb24gKi8KIAl1aW50NjQJCW51bV9lcnJvcnM7CQkvKiB0b3RhbCBudW1iZXIg b2Ygcm93cyB3aGljaCBjb250YWluZWQgc29mdAotCQkJCQkJCQkgKiBlcnJvcnMgKi8KKwkJCQkJ CQkJICogZXJyb3JzLCBmb3IgT05fRVJST1Igc2V0X3RvX251bGwsIGl0J3MgdGhlCisJCQkJCQkJ CSAqIG51bWJlciBvZiByb3dzIHN1Y2Nlc3NmdWxseSBjb252ZXJ0ZWQgdG8gbnVsbAorCQkJCQkJ CQkqLwogCWludAkJICAgKmRlZm1hcDsJCQkvKiBhcnJheSBvZiBkZWZhdWx0IGF0dCBudW1iZXJz IHJlbGF0ZWQgdG8KIAkJCQkJCQkJICogbWlzc2luZyBhdHQgKi8KIAlFeHByU3RhdGUgKipkZWZl eHByczsJCS8qIGFycmF5IG9mIGRlZmF1bHQgYXR0IGV4cHJlc3Npb25zIGZvciBhbGwKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKaW5kZXggNjRlYTMzYWVhZS4uOWE1YWNlZjhkYiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKQEAgLTgxLDYgKzgxLDEwIEBAIENPUFkgeCBm cm9tIHN0ZGluIChvbl9lcnJvciBpZ25vcmUsIG9uX2Vycm9yIGlnbm9yZSk7CiBFUlJPUjogIGNv bmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zCiBMSU5FIDE6IENPUFkgeCBmcm9tIHN0ZGlu IChvbl9lcnJvciBpZ25vcmUsIG9uX2Vycm9yIGlnbm9yZSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0NPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBz ZXRfdG9fbnVsbCwgb25fZXJyb3IgaWdub3JlKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcgb3IgcmVk dW5kYW50IG9wdGlvbnMKK0xJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIHNldF90 b19udWxsLCBvbl9lcnJvciBpZ25vcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IGRl ZmF1bHQsIGxvZ192ZXJib3NpdHkgdmVyYm9zZSk7CiBFUlJPUjogIGNvbmZsaWN0aW5nIG9yIHJl ZHVuZGFudCBvcHRpb25zCiBMSU5FIDE6IENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5 IGRlZmF1bHQsIGxvZ192ZXJib3NpdHkgdmVyYi4uLgpAQCAtOTIsNiArOTYsMTAgQEAgQ09QWSB4 IGZyb20gc3RkaW4gKGZvcm1hdCBCSU5BUlksIG51bGwgJ3gnKTsKIEVSUk9SOiAgY2Fubm90IHNw ZWNpZnkgTlVMTCBpbiBCSU5BUlkgbW9kZQogQ09QWSB4IGZyb20gc3RkaW4gKGZvcm1hdCBCSU5B UlksIG9uX2Vycm9yIGlnbm9yZSk7CiBFUlJPUjogIG9ubHkgT05fRVJST1IgU1RPUCBpcyBhbGxv d2VkIGluIEJJTkFSWSBtb2RlCitDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgb25f ZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6ICBvbmx5IE9OX0VSUk9SIFNUT1AgaXMgYWxsb3dl ZCBpbiBCSU5BUlkgbW9kZQorQ09QWSB4IEZST00gc3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxs LCByZWplY3RfbGltaXQgMik7CitFUlJPUjogIENPUFkgUkVKRUNUX0xJTUlUIHJlcXVpcmVzIE9O X0VSUk9SIHRvIGJlIHNldCB0byBJR05PUkUKIENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciB1 bnN1cHBvcnRlZCk7CiBFUlJPUjogIENPUFkgT05fRVJST1IgInVuc3VwcG9ydGVkIiBub3QgcmVj b2duaXplZAogTElORSAxOiBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3IgdW5zdXBwb3J0ZWQp OwpAQCAtMTI0LDYgKzEzMiwxMCBAQCBDT1BZIHggdG8gc3Rkb3V0IChmb3JtYXQgQklOQVJZLCBv bl9lcnJvciB1bnN1cHBvcnRlZCk7CiBFUlJPUjogIENPUFkgT05fRVJST1IgY2Fubm90IGJlIHVz ZWQgd2l0aCBDT1BZIFRPCiBMSU5FIDE6IENPUFkgeCB0byBzdGRvdXQgKGZvcm1hdCBCSU5BUlks IG9uX2Vycm9yIHVuc3VwcG9ydGVkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorQ09QWSB4IHRvIHN0ZGluIChvbl9lcnJvciBzZXRfdG9fbnVsbCk7CitFUlJP UjogIENPUFkgT05fRVJST1IgY2Fubm90IGJlIHVzZWQgd2l0aCBDT1BZIFRPCitMSU5FIDE6IENP UFkgeCB0byBzdGRpbiAob25fZXJyb3Igc2V0X3RvX251bGwpOworICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IHVuc3VwcG9ydGVkKTsK IEVSUk9SOiAgQ09QWSBMT0dfVkVSQk9TSVRZICJ1bnN1cHBvcnRlZCIgbm90IHJlY29nbml6ZWQK IExJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4gKGxvZ192ZXJib3NpdHkgdW5zdXBwb3J0ZWQpOwpA QCAtNzY5LDYgKzc4MSw1MSBAQCBDT05URVhUOiAgQ09QWSBjaGVja19pZ25fZXJyCiBOT1RJQ0U6 ICBza2lwcGluZyByb3cgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSA4 IGZvciBjb2x1bW4gImsiOiAiYSIKIENPTlRFWFQ6ICBDT1BZIGNoZWNrX2lnbl9lcnIKIE5PVElD RTogIDYgcm93cyB3ZXJlIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkK K0NSRUFURSBET01BSU4gZF9pbnRfbm90X251bGwgQVMgSU5UIE5PVCBOVUxMIENIRUNLKHZhbHVl ID4gMCk7CitDUkVBVEUgRE9NQUlOIGRfaW50X3Bvc2l0aXZlX21heWJlX251bGwgQVMgSU5UIENI RUNLKHZhbHVlID4gMCk7CitDUkVBVEUgVEFCTEUgdF9vbl9lcnJvcl9udWxsIChhIGRfaW50X25v dF9udWxsLCBiIGRfaW50X3Bvc2l0aXZlX21heWJlX251bGwsIGMgSU5UKTsKK1xwc2V0IG51bGwg TlVMTAorLS1mYWlsLCBjb2x1bW4gYSBjYW5ub3Qgc2V0IHRvIG51bGwgdmFsdWUKK0NPUFkgdF9v bl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwpOworRVJS T1I6ICBkb21haW4gZF9pbnRfbm90X251bGwgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK0NP TlRFWFQ6ICBDT1BZIHRfb25fZXJyb3JfbnVsbCwgbGluZSAxLCBjb2x1bW4gYTogbnVsbCBpbnB1 dAorLS1mYWlsLCBjb2x1bW4gYSBpcyBkb21haW4gd2l0aCBub3QtbnVsbCBjb25zdHJhaW50CitD T1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHNldF90b19udWxs KTsKK0VSUk9SOiAgZG9tYWluIGRfaW50X25vdF9udWxsIGRvZXMgbm90IGFsbG93IG51bGwgdmFs dWVzCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMSwgY29sdW1uIGE6ICJh IgorLS1mYWlsLCBjb2x1bW4gYSBjYW5ub3Qgc2V0IHRvIG51bGwgdmFsdWUKK0NPUFkgdF9vbl9l cnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6 ICBkb21haW4gZF9pbnRfbm90X251bGwgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK0NPTlRF WFQ6ICBDT1BZIHRfb25fZXJyb3JfbnVsbCwgbGluZSAxLCBjb2x1bW4gYTogIi0xIgorLS1mYWls LiBsZXNzIGRhdGEKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAoZGVsaW1p dGVyICcsJywgb25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6ICBtaXNzaW5nIGRhdGEgZm9y IGNvbHVtbiAiYyIKK0NPTlRFWFQ6ICBDT1BZIHRfb25fZXJyb3JfbnVsbCwgbGluZSAxOiAiMSwx IgorLS1mYWlsLiBleHRyYSBkYXRhCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJ VEggKGRlbGltaXRlciAnLCcsIG9uX2Vycm9yIHNldF90b19udWxsKTsKK0VSUk9SOiAgZXh0cmEg ZGF0YSBhZnRlciBsYXN0IGV4cGVjdGVkIGNvbHVtbgorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJv cl9udWxsLCBsaW5lIDE6ICIxLDIsMyw0IgorLS1vaworQ09QWSB0X29uX2Vycm9yX251bGwgRlJP TSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRfdG9fbnVsbCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3Nl KTsKK05PVElDRTogIGNvbHVtbiAiYiIgd2FzIHNldCB0byBudWxsIGR1ZSB0byBkYXRhIHR5cGUg aW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgMQorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxs LCBsaW5lIDEsIGNvbHVtbiBiOiAiYSIKK05PVElDRTogIGNvbHVtbiAiYyIgd2FzIHNldCB0byBu dWxsIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgMQorQ09OVEVYVDog IENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5lIDEsIGNvbHVtbiBjOiAiZCIKK05PVElDRTogIGNv bHVtbiAiYiIgd2FzIHNldCB0byBudWxsIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5 IGF0IGxpbmUgMgorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5lIDIsIGNvbHVt biBiOiAiYiIKK05PVElDRTogIGNvbHVtbiAiYyIgd2FzIHNldCB0byBudWxsIGR1ZSB0byBkYXRh IHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgMworQ09OVEVYVDogIENPUFkgdF9vbl9lcnJv cl9udWxsLCBsaW5lIDMsIGNvbHVtbiBjOiAiZSIKK05PVElDRTogIGVycm9uZW91cyB2YWx1ZXMg aW4gMyByb3dzIHdlcmUgcmVwbGFjZWQgd2l0aCBudWxsCistLSBjaGVjayBpbnNlcnRlZCBjb250 ZW50CitzZWxlY3QgKiBmcm9tIHRfb25fZXJyb3JfbnVsbDsKKyBhICB8ICBiICAgfCAgYyAgIAor LS0tLSstLS0tLS0rLS0tLS0tCisgMTAgfCBOVUxMIHwgTlVMTAorIDExIHwgTlVMTCB8ICAgMTIK KyAxMyB8ICAgMTQgfCBOVUxMCisoMyByb3dzKQorCitccHNldCBudWxsICcnCiAtLSB0ZXN0cyBm b3Igb25fZXJyb3Igb3B0aW9uIHdpdGggbG9nX3ZlcmJvc2l0eSBhbmQgbnVsbCBjb25zdHJhaW50 IHZpYSBkb21haW4KIENSRUFURSBET01BSU4gZGNoZWNrX2lnbl9lcnIyIHZhcmNoYXIoMTUpIE5P VCBOVUxMOwogQ1JFQVRFIFRBQkxFIGNoZWNrX2lnbl9lcnIyIChuIGludCwgbSBpbnRbXSwgayBp bnQsIGwgZGNoZWNrX2lnbl9lcnIyKTsKQEAgLTgyOCw2ICs4ODUsOSBAQCBEUk9QIFZJRVcgaW5z dGVhZF9vZl9pbnNlcnRfdGJsX3ZpZXc7CiBEUk9QIFZJRVcgaW5zdGVhZF9vZl9pbnNlcnRfdGJs X3ZpZXdfMjsKIERST1AgRlVOQ1RJT04gZnVuX2luc3RlYWRfb2ZfaW5zZXJ0X3RibCgpOwogRFJP UCBUQUJMRSBjaGVja19pZ25fZXJyOworRFJPUCBUQUJMRSB0X29uX2Vycm9yX251bGw7CitEUk9Q IERPTUFJTiBkX2ludF9ub3RfbnVsbDsKK0RST1AgRE9NQUlOIGRfaW50X3Bvc2l0aXZlX21heWJl X251bGw7CiBEUk9QIFRBQkxFIGNoZWNrX2lnbl9lcnIyOwogRFJPUCBET01BSU4gZGNoZWNrX2ln bl9lcnIyOwogRFJPUCBUQUJMRSBoYXJkX2VycjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2NvcHkyLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbAppbmRleCA0 NTI3MzU1N2NlLi4wMDNhOTE2NDhlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9j b3B5Mi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsCkBAIC02NywxMiAr NjcsMTUgQEAgQ09QWSB4IGZyb20gc3RkaW4gKGZvcmNlX251bGwgKGEpLCBmb3JjZV9udWxsIChi KSk7CiBDT1BZIHggZnJvbSBzdGRpbiAoY29udmVydF9zZWxlY3RpdmVseSAoYSksIGNvbnZlcnRf c2VsZWN0aXZlbHkgKGIpKTsKIENPUFkgeCBmcm9tIHN0ZGluIChlbmNvZGluZyAnc3FsX2FzY2lp JywgZW5jb2RpbmcgJ3NxbF9hc2NpaScpOwogQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIGln bm9yZSwgb25fZXJyb3IgaWdub3JlKTsKK0NPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBzZXRf dG9fbnVsbCwgb25fZXJyb3IgaWdub3JlKTsKIENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9z aXR5IGRlZmF1bHQsIGxvZ192ZXJib3NpdHkgdmVyYm9zZSk7CiAKIC0tIGluY29ycmVjdCBvcHRp b25zCiBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgZGVsaW1pdGVyICcsJyk7CiBD T1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgbnVsbCAneCcpOwogQ09QWSB4IGZyb20g c3RkaW4gKGZvcm1hdCBCSU5BUlksIG9uX2Vycm9yIGlnbm9yZSk7CitDT1BZIHggZnJvbSBzdGRp biAoZm9ybWF0IEJJTkFSWSwgb25fZXJyb3Igc2V0X3RvX251bGwpOworQ09QWSB4IEZST00gc3Rk aW4gKG9uX2Vycm9yIHNldF90b19udWxsLCByZWplY3RfbGltaXQgMik7CiBDT1BZIHggZnJvbSBz dGRpbiAob25fZXJyb3IgdW5zdXBwb3J0ZWQpOwogQ09QWSB4IGZyb20gc3RkaW4gKGZvcm1hdCBU RVhULCBmb3JjZV9xdW90ZShhKSk7CiBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IFRFWFQsIGZv cmNlX3F1b3RlICopOwpAQCAtODcsNiArOTAsNyBAQCBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0 IFRFWFQsIGZvcmNlX251bGwgKik7CiBDT1BZIHggdG8gc3Rkb3V0IChmb3JtYXQgQ1NWLCBmb3Jj ZV9udWxsKGEpKTsKIENPUFkgeCB0byBzdGRvdXQgKGZvcm1hdCBDU1YsIGZvcmNlX251bGwgKik7 CiBDT1BZIHggdG8gc3Rkb3V0IChmb3JtYXQgQklOQVJZLCBvbl9lcnJvciB1bnN1cHBvcnRlZCk7 CitDT1BZIHggdG8gc3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxsKTsKIENPUFkgeCBmcm9tIHN0 ZGluIChsb2dfdmVyYm9zaXR5IHVuc3VwcG9ydGVkKTsKIENPUFkgeCBmcm9tIHN0ZGluIHdpdGgg KHJlamVjdF9saW1pdCAxKTsKIENPUFkgeCBmcm9tIHN0ZGluIHdpdGggKG9uX2Vycm9yIGlnbm9y ZSwgcmVqZWN0X2xpbWl0IDApOwpAQCAtNTM0LDYgKzUzOCw0NSBAQCBhCXsyfQkyCiA4CXs4fQk4 CiBcLgogCitDUkVBVEUgRE9NQUlOIGRfaW50X25vdF9udWxsIEFTIElOVCBOT1QgTlVMTCBDSEVD Syh2YWx1ZSA+IDApOworQ1JFQVRFIERPTUFJTiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxsIEFT IElOVCBDSEVDSyh2YWx1ZSA+IDApOworQ1JFQVRFIFRBQkxFIHRfb25fZXJyb3JfbnVsbCAoYSBk X2ludF9ub3RfbnVsbCwgYiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxsLCBjIElOVCk7CisKK1xw c2V0IG51bGwgTlVMTAorLS1mYWlsLCBjb2x1bW4gYSBjYW5ub3Qgc2V0IHRvIG51bGwgdmFsdWUK K0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251 bGwpOworXE4JMTEJMTMKK1wuCisKKy0tZmFpbCwgY29sdW1uIGEgaXMgZG9tYWluIHdpdGggbm90 LW51bGwgY29uc3RyYWludAorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChv bl9lcnJvciBzZXRfdG9fbnVsbCk7CithCTExCTE0CitcLgorCistLWZhaWwsIGNvbHVtbiBhIGNh bm5vdCBzZXQgdG8gbnVsbCB2YWx1ZQorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBX SVRIIChvbl9lcnJvciBzZXRfdG9fbnVsbCk7CistMQkxMQkxMworXC4KKworLS1mYWlsLiBsZXNz IGRhdGEKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcs Jywgb25fZXJyb3Igc2V0X3RvX251bGwpOworMSwxCitcLgorLS1mYWlsLiBleHRyYSBkYXRhCitD T1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKGRlbGltaXRlciAnLCcsIG9uX2Vy cm9yIHNldF90b19udWxsKTsKKzEsMiwzLDQKK1wuCisKKy0tb2sKK0NPUFkgdF9vbl9lcnJvcl9u dWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwsIGxvZ192ZXJib3NpdHkg dmVyYm9zZSk7CisxMAlhCWQKKzExCWIJMTIKKzEzCTE0CWUKK1wuCisKKy0tIGNoZWNrIGluc2Vy dGVkIGNvbnRlbnQKK3NlbGVjdCAqIGZyb20gdF9vbl9lcnJvcl9udWxsOworXHBzZXQgbnVsbCAn JwogLS0gdGVzdHMgZm9yIG9uX2Vycm9yIG9wdGlvbiB3aXRoIGxvZ192ZXJib3NpdHkgYW5kIG51 bGwgY29uc3RyYWludCB2aWEgZG9tYWluCiBDUkVBVEUgRE9NQUlOIGRjaGVja19pZ25fZXJyMiB2 YXJjaGFyKDE1KSBOT1QgTlVMTDsKIENSRUFURSBUQUJMRSBjaGVja19pZ25fZXJyMiAobiBpbnQs IG0gaW50W10sIGsgaW50LCBsIGRjaGVja19pZ25fZXJyMik7CkBAIC02MDMsNiArNjQ2LDkgQEAg RFJPUCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0X3RibF92aWV3OwogRFJPUCBWSUVXIGluc3RlYWRf b2ZfaW5zZXJ0X3RibF92aWV3XzI7CiBEUk9QIEZVTkNUSU9OIGZ1bl9pbnN0ZWFkX29mX2luc2Vy dF90YmwoKTsKIERST1AgVEFCTEUgY2hlY2tfaWduX2VycjsKK0RST1AgVEFCTEUgdF9vbl9lcnJv cl9udWxsOworRFJPUCBET01BSU4gZF9pbnRfbm90X251bGw7CitEUk9QIERPTUFJTiBkX2ludF9w b3NpdGl2ZV9tYXliZV9udWxsOwogRFJPUCBUQUJMRSBjaGVja19pZ25fZXJyMjsKIERST1AgRE9N QUlOIGRjaGVja19pZ25fZXJyMjsKIERST1AgVEFCTEUgaGFyZF9lcnI7Ci0tIAoyLjM0LjEKCg== --000000000000a4d992062ba428f5--