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 1u0feE-005aIr-PK for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Apr 2025 11:55:47 +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 1u0feD-00HA23-IB for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Apr 2025 11:55:45 +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 1u0feD-00H9zj-55 for pgsql-hackers@lists.postgresql.org; Fri, 04 Apr 2025 11:55:45 +0000 Received: from mail-vk1-xa29.google.com ([2607:f8b0:4864:20::a29]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u0feA-003LRn-0T for pgsql-hackers@lists.postgresql.org; Fri, 04 Apr 2025 11:55:44 +0000 Received: by mail-vk1-xa29.google.com with SMTP id 71dfb90a1353d-525da75d902so884243e0c.3 for ; Fri, 04 Apr 2025 04:55:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743767741; x=1744372541; 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=C7Bbgr84khwCC5Y1Rtxf6XlrQQZSSSwQRuG0ErEk6Sg=; b=Oxj3f8uGPvOrh8OZBVTsoR+K9PwzaHVWiV3p3GfkiJ7OodCgp32K/4MkgZFmGsdftX d51gXeG/pyIqijo7LRLfMZqunFxpjdg44cPeE0kLYmC9W9ypVA24xqJruBUfOAe9RVz/ cuUqoPO2gJbDms+3OWvDywCAyDIUjcmQYqu100aFn1DxP9uQLquR9rgaNRaib2+2ngrH 2lJXiMkECbNbsPcW0qILZlWNu54v7CX+AlFJKqGoECf6WN/Zn64YAfHI8DdG3C8q6AN0 eJaptkaA+IQH8iQbJVWDmNl1Hp02+lCIiLgi7MU9x9y9uAF+xaWhU8X3uKLQGuQhYBTJ mW/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743767741; x=1744372541; 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=C7Bbgr84khwCC5Y1Rtxf6XlrQQZSSSwQRuG0ErEk6Sg=; b=am2SNDFF58cL74cAKXBOLlC8UxJ7DE6nYQsUsQ4q1z2PxE5cPQO3ysyJ2sVzY85kXL ZfihC5AKuz5AgYIp/On90miZdoCLH/ivEzRmCxZLq5MFt2tzhQkDfe9orryFcLUy9OHW dFfNNg//54Okc4UopxHhqoe7GZMepp1aNNb7rSTUH66hXFB+I+1jGcYhSVAE5jOfo4gv bus5yk1TNn32wjaAr2hpVMACfwMCynpPZP8uP3GFC6fOWmsSlsb/UltPCO5ov21ZhCay vj/PUCGQ/z3fcfF/05aoNJOgxHeZf1UxNY6kntog7jOhrTFE9Wkm0nFGAdHGN3XKvsGt CVGg== X-Forwarded-Encrypted: i=1; AJvYcCUQeQ6VfI7miKj41k/56f8T+2CDo4uCZ0hduMGV3X2pee4aEv/ftlFCmXVzEczduss3qsPGqsX5Jpg23scv@lists.postgresql.org X-Gm-Message-State: AOJu0YwIasFJg3sF4thoTALwS3XnQvIZZcdjFoUTbKegHQyLh9IJ73sm V+QSzdZi8xbI/+Ox+AQ2SwETOfoMqRIROTjz0RGy9kvoyoizn8UWdE56v55WQzWR8RgK/lsjFvs 3C1A0L/Udhp8/xmkGU4Wx5Io0Hvw= X-Gm-Gg: ASbGncupsnYL+OQbS54uf4G+XSaUOMYmROBo/UyoQi8RAWaRxVYhp9NXQs7mJTDpxrH smtjdR2I9v6noVcEsONC0iCPyeenFpmPNUUY7+4tRjnkaKyI3Vl8qDh5L2pxLDy9W4R52Lr9juH Ap1KiLuRae93yvTawQ0SJAR+Lyq0NhSybPuZN/1f5JP0mguMK6TK/NDOZ73Q== X-Google-Smtp-Source: AGHT+IHvKUaP7MidGEM+6X8x0+431Stl8eWt4q4tGk3JZGukQ/WhjRIV2xqF/uwazNIHKkKkEYn9TdtF2O6o801+CoU= X-Received: by 2002:a05:6122:16a6:b0:51f:fc9d:875d with SMTP id 71dfb90a1353d-52764573f29mr1753155e0c.8.1743767740740; Fri, 04 Apr 2025 04:55:40 -0700 (PDT) MIME-Version: 1.0 References: <90dc6e9d-9348-485a-b27c-7b1637f06c2e@uni-muenster.de> In-Reply-To: From: jian he Date: Fri, 4 Apr 2025 19:55:04 +0800 X-Gm-Features: ATxdqUGwPH2191CyRjYH7cCeMeGnci8t3yx1fOBtdy03VMbvRce49Bs-d9Bzi70 Message-ID: Subject: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row To: vignesh C Cc: Jim Jones , Kirill Reshke , Fujii Masao , "David G. Johnston" , Yugo NAGATA , torikoshia , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000c219380631f29004" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c219380631f29004 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 25, 2025 at 2:31=E2=80=AFPM vignesh C wro= te: > > 2) Here in error we say column c1 violates not-null constraint and in > the context we show column c2, should the context also display c2 > column: > postgres=3D# create table t3(c1 int not null, c2 int, check (c1 > 10)); > CREATE TABLE > postgres=3D# COPY t3 FROM STDIN WITH (on_error set_to_null); > Enter data to be copied followed by a newline. > End with a backslash and a period on a line by itself, or an EOF signal. > >> a b > >> \. > ERROR: null value in column "c1" of relation "t3" violates not-null cons= traint > DETAIL: Failing row contains (null, null). > CONTEXT: COPY t3, line 1, column c2: "b" > It took me a while to figure out why. with the attached, now the error message becomes: ERROR: null value in column "c1" of relation "t3" violates not-null constr= aint DETAIL: Failing row contains (null, null). CONTEXT: COPY t3, line 1: "a,b" while at it, (on_error set_to_null, log_verbosity verbose) error message CONTEXT will only emit out relation name, this aligns with (on_error ignore, log_verbosity verbose). one of the message out example: +NOTICE: column "b" was set to null due to data type incompatibility at li= ne 2 +CONTEXT: COPY t_on_error_null > 3) typo becomen should be become: > null will becomen reserved to non-reserved fixed. > 4) There is a whitespace error while applying patch > Applying: COPY (on_error set_to_null) > .git/rebase-apply/patch:39: trailing whitespace. > a NOTICE message indicating the number of rows > warning: 1 line adds whitespace errors. fixed. --000000000000c219380631f29004 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0001-COPY-on_error-set_to_null.patch" Content-Disposition: attachment; filename="v15-0001-COPY-on_error-set_to_null.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m92q82ke0 RnJvbSBjZmQ5YWZiYzU4M2FhYzM5ZjczZjIyNGNiNzBjOTE5NjM5OGMzMTc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgNCBBcHIgMjAyNSAxOTo0Mzo1MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE1 IDEvMV0gQ09QWSAob25fZXJyb3Igc2V0X3RvX251bGwpCgpFeHRlbnQgIm9uX2Vycm9yIGFjdGlv biIsIGludHJvZHVjZSBuZXcgb3B0aW9uOiAgb25fZXJyb3Igc2V0X3RvX251bGwuCgpDdXJyZW50 IGdyYW1tYXIgbWFrZXMgdXMgdW5hYmxlIHRvIHVzZSAib25fZXJyb3IgbnVsbCIuIGlmIHdlIGRp ZCBpdCwgdGhlbiBpbgphbGwgdGhlIENPUFkgY29tbWFuZCBvcHRpb25zJ3MgdmFsdWUsIG51bGwg d2lsbCBiZWNvbWUgcmVzZXJ2ZWQgdG8gbm9uLXJlc2VydmVkCndvcmRzLiAgc28gd2UgY2hvb3Nl ICJvbl9lcnJvciBzZXRfdG9fbnVsbCIuCgpBbnkgZGF0YSB0eXBlIGNvbnZlcnNpb24gZXJyb3Jz IGR1cmluZyB0aGUgQ09QWSBGUk9NIHByb2Nlc3Mgd2lsbCByZXN1bHQgaW4gdGhlCmFmZmVjdGVk IGNvbHVtbiBiZWluZyBzZXQgdG8gTlVMTC4gVGhpcyBvbmx5IGFwcGxpZXMgd2hlbiB1c2luZyB0 aGUgbm9uLWJpbmFyeQpmb3JtYXQgZm9yIENPUFkgRlJPTS4KCkhvd2V2ZXIsIHRoZSBub3QtbnVs bCBjb25zdHJhaW50IHdpbGwgc3RpbGwgYmUgZW5mb3JjZWQuCklmIGEgY29sdW1uIGhhcyBhIG5v dC1udWxsIGNvbnN0cmFpbnQsIHN1Y2Nlc3NmdWwgKG9uX2Vycm9yIHNldF90b19udWxsKQphY3Rp b24gd2lsbCBjYXVzZSBub3QtbnVsbCBjb25zdHJhaW50IHZpb2xhdGlvbi4KVGhpcyBhbHNvIGFw cGxpZXMgdG8gY29sdW1uIHR5cGUgaXMgZG9tYWluIHdpdGggbm90LW51bGwgY29uc3RyYWludC4K CkEgcmVncmVzc2lvbiB0ZXN0IGZvciBhIGRvbWFpbiB3aXRoIGEgbm90LW51bGwgY29uc3RyYWlu dCBoYXMgYmVlbiBhZGRlZC4KCkF1dGhvcjogSmlhbiBIZSA8amlhbi51bml2ZXJzYWxpdHlAZ21h aWwuY29tPgpBdXRob3I6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+CgpS ZXZpZXdlZC1ieToKRnVqaWkgTWFzYW8gPG1hc2FvLmZ1amlpQG9zcy5udHRkYXRhLmNvbT4KSmlt IEpvbmVzIDxqaW0uam9uZXNAdW5pLW11ZW5zdGVyLmRlPgoiRGF2aWQgRy4gSm9obnN0b24iIDxk YXZpZC5nLmpvaG5zdG9uQGdtYWlsLmNvbT4KWXVnbyBOQUdBVEEgPG5hZ2F0YUBzcmFvc3MuY28u anA+CnRvcmlrb3NoaWEgPHRvcmlrb3NoaWFAb3NzLm50dGRhdGEuY29tPgoKZGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUtGUXV3YXd5MWU2WVI0Uz1qK3k3cFhxZ19EdzFXQlZyZ3Zm PUJQM2QxX2FTZmVfK1FAbWFpbC5nbWFpbC5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NvcHku c2dtbCAgICAgICAgICAgfCAzNiArKysrKysrKysrKy0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5k cy9jb3B5LmMgICAgICAgICAgfCAgNiArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9t LmMgICAgICB8IDI5ICsrKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9t cGFyc2UuYyB8IDYxICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYyAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5 LmggICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAg fCA2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nv cHkyLnNxbCAgICAgICB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKwogOCBmaWxlcyBjaGFuZ2Vk LCAyMTUgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jb3B5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbAppbmRleCBk ZjA5M2RhOTdjNS4uZWJlMmVhYTM2ZTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY29w eS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sCkBAIC0zOTQsMjMgKzM5NCwz NiBAQCBDT1BZIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3Jl cGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlCiAgICAgICBTcGVjaWZpZXMgaG93IHRvIGJlaGF2 ZSB3aGVuIGVuY291bnRlcmluZyBhbiBlcnJvciBjb252ZXJ0aW5nIGEgY29sdW1uJ3MKICAgICAg IGlucHV0IHZhbHVlIGludG8gaXRzIGRhdGEgdHlwZS4KICAgICAgIEFuIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5lcnJvcl9hY3Rpb248L3JlcGxhY2VhYmxlPiB2YWx1ZSBvZgotICAg ICAgPGxpdGVyYWw+c3RvcDwvbGl0ZXJhbD4gbWVhbnMgZmFpbCB0aGUgY29tbWFuZCwgd2hpbGUK LSAgICAgIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gbWVhbnMgZGlzY2FyZCB0aGUgaW5wdXQg cm93IGFuZCBjb250aW51ZSB3aXRoIHRoZSBuZXh0IG9uZS4KKyAgICAgIDxsaXRlcmFsPnN0b3A8 L2xpdGVyYWw+IG1lYW5zIGZhaWwgdGhlIGNvbW1hbmQsCisgICAgICA8bGl0ZXJhbD5pZ25vcmU8 L2xpdGVyYWw+IG1lYW5zIGRpc2NhcmQgdGhlIGlucHV0IHJvdyBhbmQgY29udGludWUgd2l0aCB0 aGUgbmV4dCBvbmUsCisgICAgICBhbmQgPGxpdGVyYWw+c2V0X3RvX251bGw8L2xpdGVyYWw+IG1l YW5zIHJlcGxhY2UgY29sdW1ucyBjb250YWluaW5nIGludmFsaWQKKyAgICAgIGlucHV0IHZhbHVl cyB3aXRoIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGFuZCBtb3ZlIHRvIHRoZSBuZXh0IGZpZWxk LgogICAgICAgVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+c3RvcDwvbGl0ZXJhbD4uCiAgICAgIDwv cGFyYT4KICAgICAgPHBhcmE+Ci0gICAgICBUaGUgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBv cHRpb24gaXMgYXBwbGljYWJsZSBvbmx5IGZvciA8Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+ CisgICAgICBUaGUgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+c2V0X3Rv X251bGw8L2xpdGVyYWw+CisgICAgICBvcHRpb25zIGFyZSBhcHBsaWNhYmxlIG9ubHkgZm9yIDxj b21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4KICAgICAgIHdoZW4gdGhlIDxsaXRlcmFsPkZPUk1B VDwvbGl0ZXJhbD4gaXMgPGxpdGVyYWw+dGV4dDwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+Y3N2PC9s aXRlcmFsPi4KICAgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICAgRm9yIDxsaXRlcmFsPmln bm9yZTwvbGl0ZXJhbD4gb3B0aW9uLCBhIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVzc2Fn ZQorICAgICAgY29udGFpbmluZyB0aGUgaWdub3JlZCByb3cgY291bnQgaXMgZW1pdHRlZCBhdCB0 aGUgZW5kIG9mIHRoZSA8Y29tbWFuZD5DT1BZCisgICAgICBGUk9NPC9jb21tYW5kPiBpZiBhdCBs ZWFzdCBvbmUgcm93IHdhcyBkaXNjYXJkZWQuCisgICAgICBGb3IgPGxpdGVyYWw+c2V0X3RvX251 bGw8L2xpdGVyYWw+IG9wdGlvbiwKKyAgICAgIGEgPGxpdGVyYWw+Tk9USUNFPC9saXRlcmFsPiBt ZXNzYWdlIGluZGljYXRpbmcgdGhlIG51bWJlciBvZiByb3dzCisgICAgICB3aGVyZSBpbnZhbGlk IGlucHV0IHZhbHVlcyB3ZXJlIHJlcGxhY2VkIHdpdGggbnVsbCBpcyBlbWl0dGVkCisgICAgICBh dCB0aGUgZW5kIG9mIHRoZSA8Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+IGlmIGF0IGxlYXN0 IG9uZSByb3cgd2FzIHJlcGxhY2VkLgorICAgICA8L3BhcmE+CiAgICAgIDxwYXJhPgotICAgICAg QSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+IG1lc3NhZ2UgY29udGFpbmluZyB0aGUgaWdub3Jl ZCByb3cgY291bnQgaXMKLSAgICAgIGVtaXR0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgPGNvbW1hbmQ+ Q09QWSBGUk9NPC9jb21tYW5kPiBpZiBhdCBsZWFzdCBvbmUKLSAgICAgIHJvdyB3YXMgZGlzY2Fy ZGVkLiBXaGVuIDxsaXRlcmFsPkxPR19WRVJCT1NJVFk8L2xpdGVyYWw+IG9wdGlvbiBpcyBzZXQg dG8KLSAgICAgIDxsaXRlcmFsPnZlcmJvc2U8L2xpdGVyYWw+LCBhIDxsaXRlcmFsPk5PVElDRTwv bGl0ZXJhbD4gbWVzc2FnZQorICAgICAgV2hlbiA8bGl0ZXJhbD5MT0dfVkVSQk9TSVRZPC9saXRl cmFsPiBvcHRpb24gaXMgc2V0IHRvIDxsaXRlcmFsPnZlcmJvc2U8L2xpdGVyYWw+LAorICAgICAg Zm9yIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gb3B0aW9uLCBhIDxsaXRlcmFsPk5PVElDRTwv bGl0ZXJhbD4gbWVzc2FnZQogICAgICAgY29udGFpbmluZyB0aGUgbGluZSBvZiB0aGUgaW5wdXQg ZmlsZSBhbmQgdGhlIGNvbHVtbiBuYW1lIHdob3NlIGlucHV0Ci0gICAgICBjb252ZXJzaW9uIGhh cyBmYWlsZWQgaXMgZW1pdHRlZCBmb3IgZWFjaCBkaXNjYXJkZWQgcm93LgotICAgICAgV2hlbiBp dCBpcyBzZXQgdG8gPGxpdGVyYWw+c2lsZW50PC9saXRlcmFsPiwgbm8gbWVzc2FnZSBpcyBlbWl0 dGVkCi0gICAgICByZWdhcmRpbmcgaWdub3JlZCByb3dzLgorICAgICAgY29udmVyc2lvbiBoYXMg ZmFpbGVkIGlzIGVtaXR0ZWQgZm9yIGVhY2ggZGlzY2FyZGVkIHJvdzsKKyAgICAgIGZvciA8bGl0 ZXJhbD5zZXRfdG9fbnVsbDwvbGl0ZXJhbD4gb3B0aW9uLCBhIDxsaXRlcmFsPk5PVElDRTwvbGl0 ZXJhbD4KKyAgICAgIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgbGluZSBvZiB0aGUgaW5wdXQgZmls ZSBhbmQgdGhlIGNvbHVtbiBuYW1lIHdoZXJlCisgICAgICB2YWx1ZSB3YXMgcmVwbGFjZWQgd2l0 aCA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBmb3IgZWFjaCBpbnB1dCBjb252ZXJzaW9uCisgICAg ICBmYWlsdXJlLgorICAgICAgV2hlbiBpdCBpcyBzZXQgdG8gPGxpdGVyYWw+c2lsZW50PC9saXRl cmFsPiwgbm8gbWVzc2FnZSBpcyBlbWl0dGVkIHJlZ2FyZGluZyBpbnB1dCBjb252ZXJzaW9uIGZh aWxlZCByb3dzLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVu dHJ5PgpAQCAtNDU4LDcgKzQ3MSw4IEBAIENPUFkgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUKICAgICAgPC9w YXJhPgogICAgICA8cGFyYT4KICAgICAgIFRoaXMgaXMgY3VycmVudGx5IHVzZWQgaW4gPGNvbW1h bmQ+Q09QWSBGUk9NPC9jb21tYW5kPiBjb21tYW5kIHdoZW4KLSAgICAgIDxsaXRlcmFsPk9OX0VS Uk9SPC9saXRlcmFsPiBvcHRpb24gaXMgc2V0IHRvIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4u CisgICAgICA8bGl0ZXJhbD5PTl9FUlJPUjwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNldCB0byA8bGl0 ZXJhbD5pZ25vcmU8L2xpdGVyYWw+CisgICAgICBvciA8bGl0ZXJhbD5zZXRfdG9fbnVsbDwvbGl0 ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5 PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29weS5jCmluZGV4IDc0YWU0MmIxOWE3Li4xM2JiZTU4ODU1YyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2NvcHkuYwpAQCAtNDAzLDEyICs0MDMsMTQgQEAgZGVmR2V0Q29weU9uRXJyb3JDaG9pY2UoRGVm RWxlbSAqZGVmLCBQYXJzZVN0YXRlICpwc3RhdGUsIGJvb2wgaXNfZnJvbSkKIAkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmLT5sb2NhdGlvbikpKTsKIAogCS8qCi0JICogQWxsb3cg InN0b3AiLCBvciAiaWdub3JlIiB2YWx1ZXMuCisJICogQWxsb3cgInN0b3AiLCAiaWdub3JlIiwg InNldF90b19udWxsIiB2YWx1ZXMuCiAJICovCiAJaWYgKHBnX3N0cmNhc2VjbXAoc3ZhbCwgInN0 b3AiKSA9PSAwKQogCQlyZXR1cm4gQ09QWV9PTl9FUlJPUl9TVE9QOwogCWlmIChwZ19zdHJjYXNl Y21wKHN2YWwsICJpZ25vcmUiKSA9PSAwKQogCQlyZXR1cm4gQ09QWV9PTl9FUlJPUl9JR05PUkU7 CisJaWYgKHBnX3N0cmNhc2VjbXAoc3ZhbCwgInNldF90b19udWxsIikgPT0gMCkKKwkJcmV0dXJu IENPUFlfT05fRVJST1JfTlVMTDsKIAogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKQEAgLTkxOCw3ICs5MjAsNyBAQCBQcm9jZXNz Q29weU9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKIAkJCQkgZXJybXNnKCJvbmx5IE9OX0VSUk9SIFNUT1AgaXMgYWxsb3dlZCBp biBCSU5BUlkgbW9kZSIpKSk7CiAKLQlpZiAob3B0c19vdXQtPnJlamVjdF9saW1pdCAmJiAhb3B0 c19vdXQtPm9uX2Vycm9yKQorCWlmIChvcHRzX291dC0+cmVqZWN0X2xpbWl0ICYmIG9wdHNfb3V0 LT5vbl9lcnJvciAhPSBDT1BZX09OX0VSUk9SX0lHTk9SRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJLyotIHRyYW5z bGF0b3I6IGZpcnN0IGFuZCBzZWNvbmQgJXMgYXJlIHRoZSBuYW1lcyBvZiBDT1BZIG9wdGlvbiwg ZS5nLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKaW5kZXggZmJiYmMwOWE5N2IuLmEzMTQzY2E0ZjI5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKQEAgLTE0NjcsMTQgKzE0NjcsMjIgQEAgQ29weUZy b20oQ29weUZyb21TdGF0ZSBjc3RhdGUpCiAJLyogRG9uZSwgY2xlYW4gdXAgKi8KIAllcnJvcl9j b250ZXh0X3N0YWNrID0gZXJyY2FsbGJhY2sucHJldmlvdXM7CiAKLQlpZiAoY3N0YXRlLT5vcHRz Lm9uX2Vycm9yICE9IENPUFlfT05fRVJST1JfU1RPUCAmJgotCQljc3RhdGUtPm51bV9lcnJvcnMg PiAwICYmCisJaWYgKGNzdGF0ZS0+bnVtX2Vycm9ycyA+IDAgJiYKIAkJY3N0YXRlLT5vcHRzLmxv Z192ZXJib3NpdHkgPj0gQ09QWV9MT0dfVkVSQk9TSVRZX0RFRkFVTFQpCi0JCWVyZXBvcnQoTk9U SUNFLAotCQkJCWVycm1zZ19wbHVyYWwoIiUiIFBSSXU2NCAiIHJvdyB3YXMgc2tpcHBlZCBkdWUg dG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCi0JCQkJCQkJICAiJSIgUFJJdTY0ICIgcm93 cyB3ZXJlIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkiLAotCQkJCQkJ CSAgY3N0YXRlLT5udW1fZXJyb3JzLAotCQkJCQkJCSAgY3N0YXRlLT5udW1fZXJyb3JzKSk7CisJ eworCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFKQor CQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCWVycm1zZ19wbHVyYWwoIiUiIFBSSXU2NCAiIHJvdyB3 YXMgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJCSAg IiUiIFBSSXU2NCAiIHJvd3Mgd2VyZSBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRp YmlsaXR5IiwKKwkJCQkJCQkJICBjc3RhdGUtPm51bV9lcnJvcnMsCisJCQkJCQkJCSAgY3N0YXRl LT5udW1fZXJyb3JzKSk7CisJCWVsc2UgaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZ X09OX0VSUk9SX05VTEwpCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJZXJybXNnX3BsdXJhbCgi aW52YWxpZCB2YWx1ZXMgaW4gJSIgUFJJdTY0ICIgcm93IHdhcyByZXBsYWNlZCB3aXRoIG51bGwi LAorCQkJCQkJCQkgICJpbnZhbGlkIHZhbHVlcyBpbiAlIiBQUkl1NjQgIiByb3dzIHdlcmUgcmVw bGFjZWQgd2l0aCBudWxsIiwKKwkJCQkJCQkJICBjc3RhdGUtPm51bV9lcnJvcnMsCisJCQkJCQkJ CSAgY3N0YXRlLT5udW1fZXJyb3JzKSk7CisJfQogCiAJaWYgKGJpc3RhdGUgIT0gTlVMTCkKIAkJ RnJlZUJ1bGtJbnNlcnRTdGF0ZShiaXN0YXRlKTsKQEAgLTE2MjIsMTAgKzE2MzAsMTEgQEAgQmVn aW5Db3B5RnJvbShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCWNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJv cl9vY2N1cnJlZCA9IGZhbHNlOwogCiAJCS8qCi0JCSAqIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBv cnQgQ09QWV9PTl9FUlJPUl9JR05PUkUuIFdlJ2xsIGFkZCBvdGhlcgotCQkgKiBvcHRpb25zIGxh dGVyCisJCSAqIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgQ09QWV9PTl9FUlJPUl9JR05PUkUs IENPUFlfT05fRVJST1JfTlVMTC4KKwkJICogV2UnbGwgYWRkIG90aGVyIG9wdGlvbnMgbGF0ZXIK IAkJICovCi0JCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05P UkUpCisJCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05PUkUg fHwKKwkJCWNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX05VTEwpCiAJCQlj c3RhdGUtPmVzY29udGV4dC0+ZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKIAl9CiAJZWxzZQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jCmluZGV4IGY1ZmMzNDZlMjAxLi42M2E0NDAwYzhh MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYwpAQCAtOTQ3LDYgKzk0Nyw3IEBA IENvcHlGcm9tVGV4dExpa2VPbmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0 ICplY29udGV4dCwKIAlpbnQJCQlmbGRjdDsKIAlpbnQJCQlmaWVsZG5vOwogCWNoYXIJICAgKnN0 cmluZzsKKwlib29sCQljdXJyZW50X3Jvd19lcnJvbmVvdXMgPSBmYWxzZTsKIAogCXR1cERlc2Mg PSBSZWxhdGlvbkdldERlc2NyKGNzdGF0ZS0+cmVsKTsKIAlhdHRyX2NvdW50ID0gbGlzdF9sZW5n dGgoY3N0YXRlLT5hdHRudW1saXN0KTsKQEAgLTEwMjQsNyArMTAyNSw4IEBAIENvcHlGcm9tVGV4 dExpa2VPbmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwK IAkJfQogCiAJCS8qCi0JCSAqIElmIE9OX0VSUk9SIGlzIHNwZWNpZmllZCB3aXRoIElHTk9SRSwg c2tpcCByb3dzIHdpdGggc29mdCBlcnJvcnMKKwkJICogSWYgT05fRVJST1IgaXMgc3BlY2lmaWVk IHdpdGggSUdOT1JFLCBza2lwIHJvd3Mgd2l0aCBzb2Z0IGVycm9ycy4KKwkJICogSWYgT05fRVJS T1IgaXMgc3BlY2lmaWVkIHdpdGggc2V0X3RvX251bGwsIHRyeSB0byByZXBsYWNlIHdpdGggbnVs bC4KIAkJICovCiAJCWVsc2UgaWYgKCFJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmluX2Z1bmN0aW9u c1ttXSwKIAkJCQkJCQkJCQlzdHJpbmcsCkBAIC0xMDM1LDkgKzEwMzcsNjIgQEAgQ29weUZyb21U ZXh0TGlrZU9uZVJvdyhDb3B5RnJvbVN0YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0 LAogCQl7CiAJCQlBc3NlcnQoY3N0YXRlLT5vcHRzLm9uX2Vycm9yICE9IENPUFlfT05fRVJST1Jf U1RPUCk7CiAKKwkJCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9O VUxMKQorCQkJeworCQkJCS8qCisJCQkJICogd2UgdXNlIGl0IHRvIGNvdW50IG51bWJlciBvZiBy b3dzIChub3QgZmllbGRzISkgdGhhdAorCQkJCSAqIHN1Y2Nlc3NmdWxseSBhcHBsaWVkIG9uX2Vy cm9yIHNldF90b19udWxsLgorCQkJCSovCisJCQkJaWYgKCFjdXJyZW50X3Jvd19lcnJvbmVvdXMp CisJCQkJCWN1cnJlbnRfcm93X2Vycm9uZW91cyA9IHRydWU7CisKKwkJCQkvKgorCQkJCSAqIHdo ZW4gY29sdW1uIHR5cGUgaXMgZG9tYWluIHdpdGggbm90LW51bGwgY29uc3RyYWludCwgd2UgbmVl ZAorCQkJCSAqIGFub3RoZXIgSW5wdXRGdW5jdGlvbkNhbGxTYWZlIHRvIGVycm9yIG91dCBub3Qt bnVsbAorCQkJCSAqIHZpb2xhdGlvbi4KKwkJCQkqLworCQkJCWNzdGF0ZS0+ZXNjb250ZXh0LT5l cnJvcl9vY2N1cnJlZCA9IGZhbHNlOworCQkJCWlmIChJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmlu X2Z1bmN0aW9uc1ttXSwKKwkJCQkJCQkJCQkgIE5VTEwsCisJCQkJCQkJCQkJICB0eXBpb3BhcmFt c1ttXSwKKwkJCQkJCQkJCQkgIGF0dC0+YXR0dHlwbW9kLAorCQkJCQkJCQkJCSAgKE5vZGUgKikg Y3N0YXRlLT5lc2NvbnRleHQsCisJCQkJCQkJCQkJICAmdmFsdWVzW21dKSkKKwkJCQl7CisJCQkJ CW51bGxzW21dID0gdHJ1ZTsKKwkJCQkJdmFsdWVzW21dID0gKERhdHVtKSAwOworCQkJCQlpZiAo Y3N0YXRlLT5vcHRzLmxvZ192ZXJib3NpdHkgPT0gQ09QWV9MT0dfVkVSQk9TSVRZX1ZFUkJPU0Up CisJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBTaW5jZSB3ZSBlbWl0IGxpbmUgbnVtYmVyIGFu ZCBjb2x1bW4gaW5mbyBpbiB0aGUgYmVsb3cKKwkJCQkJCSAqIG5vdGljZSBtZXNzYWdlLCB3ZSBz dXBwcmVzcyBlcnJvciBjb250ZXh0IGluZm9ybWF0aW9uIG90aGVyCisJCQkJCQkgKiB0aGFuIHRo ZSByZWxhdGlvbiBuYW1lLgorCQkJCQkJKi8KKwkJCQkJCUFzc2VydCghY3N0YXRlLT5yZWxuYW1l X29ubHkpOworCQkJCQkJY3N0YXRlLT5yZWxuYW1lX29ubHkgPSB0cnVlOworCQkJCQkJZXJlcG9y dChOT1RJQ0UsCisJCQkJCQkJCWVycm1zZygiY29sdW1uIFwiJXNcIiB3YXMgc2V0IHRvIG51bGwg ZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSAlIiBQUkl1NjQgIiIsCisJ CQkJCQkJCQkJY3N0YXRlLT5jdXJfYXR0bmFtZSwKKwkJCQkJCQkJCQljc3RhdGUtPmN1cl9saW5l bm8pKTsKKworCQkJCQkJLyogcmVzZXQgcmVsbmFtZV9vbmx5ICovCisJCQkJCQljc3RhdGUtPnJl bG5hbWVfb25seSA9IGZhbHNlOworCQkJCQl9CisKKwkJCQkJY3N0YXRlLT5jdXJfYXR0bmFtZSA9 IE5VTEw7CisKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQllcnJjb2RlKEVSUkNPREVfTk9UX05VTExfVklPTEFUSU9OKSwKKwkJCQkJ CQllcnJtc2coImRvbWFpbiAlcyBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcyIsIGZvcm1hdF90 eXBlX2JlKHR5cGlvcGFyYW1zW21dKSksCisJCQkJCQkJZXJyZGF0YXR5cGUodHlwaW9wYXJhbXNb bV0pKTsKKwkJCX0KIAkJCWNzdGF0ZS0+bnVtX2Vycm9ycysrOwogCi0JCQlpZiAoY3N0YXRlLT5v cHRzLmxvZ192ZXJib3NpdHkgPT0gQ09QWV9MT0dfVkVSQk9TSVRZX1ZFUkJPU0UpCisJCQlpZiAo Y3N0YXRlLT5vcHRzLmxvZ192ZXJib3NpdHkgPT0gQ09QWV9MT0dfVkVSQk9TSVRZX1ZFUkJPU0Ug JiYKKwkJCQljc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05PUkUpCiAJ CQl7CiAJCQkJLyoKIAkJCQkgKiBTaW5jZSB3ZSBlbWl0IGxpbmUgbnVtYmVyIGFuZCBjb2x1bW4g aW5mbyBpbiB0aGUgYmVsb3cKQEAgLTEwNzYsNiArMTEzMSw4IEBAIENvcHlGcm9tVGV4dExpa2VP bmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwKIAkJY3N0 YXRlLT5jdXJfYXR0dmFsID0gTlVMTDsKIAl9CiAKKwlpZiAoY3VycmVudF9yb3dfZXJyb25lb3Vz KQorCQljc3RhdGUtPm51bV9lcnJvcnMrKzsKIAlBc3NlcnQoZmllbGRubyA9PSBhdHRyX2NvdW50 KTsKIAogCXJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDk4OTUxYWVmODJj Li5jNzliM2FmMDQ5NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMzI5MSw3ICszMjkxLDcg QEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIAkvKiBDb21wbGV0ZSBD T1BZIDxzdGg+IEZST00gZmlsZW5hbWUgV0lUSCAoT05fRVJST1IgKi8KIAllbHNlIGlmIChNYXRj aGVzKCJDT1BZfFxcY29weSIsIE1hdGNoQW55LCAiRlJPTXxUTyIsIE1hdGNoQW55LCAiV0lUSCIs ICIoIiwgIk9OX0VSUk9SIikpCi0JCUNPTVBMRVRFX1dJVEgoInN0b3AiLCAiaWdub3JlIik7CisJ CUNPTVBMRVRFX1dJVEgoInN0b3AiLCAiaWdub3JlIiwgInNldF90b19udWxsIik7CiAKIAkvKiBD b21wbGV0ZSBDT1BZIDxzdGg+IEZST00gZmlsZW5hbWUgV0lUSCAoTE9HX1ZFUkJPU0lUWSAqLwog CWVsc2UgaWYgKE1hdGNoZXMoIkNPUFl8XFxjb3B5IiwgTWF0Y2hBbnksICJGUk9NfFRPIiwgTWF0 Y2hBbnksICJXSVRIIiwgIigiLCAiTE9HX1ZFUkJPU0lUWSIpKQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvY29weS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oCmluZGV4 IDA2ZGZkZmVmNzIxLi43ZWJmNGY3ODkzMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvY29weS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaApAQCAtMzgsNiArMzgs NyBAQCB0eXBlZGVmIGVudW0gQ29weU9uRXJyb3JDaG9pY2UKIHsKIAlDT1BZX09OX0VSUk9SX1NU T1AgPSAwLAkJLyogaW1tZWRpYXRlbHkgdGhyb3cgZXJyb3JzLCBkZWZhdWx0ICovCiAJQ09QWV9P Tl9FUlJPUl9JR05PUkUsCQkvKiBpZ25vcmUgZXJyb3JzICovCisJQ09QWV9PTl9FUlJPUl9OVUxM LAkJCS8qIHNldCBlcnJvciBmaWVsZCB0byBudWxsICovCiB9IENvcHlPbkVycm9yQ2hvaWNlOwog CiAvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAppbmRleCA2NGVhMzNhZWFlOC4uODc5 YTg5ODkxMWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CkBAIC04MSw2ICs4MSwx MCBAQCBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3IgaWdub3JlLCBvbl9lcnJvciBpZ25vcmUp OwogRVJST1I6ICBjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucwogTElORSAxOiBDT1BZ IHggZnJvbSBzdGRpbiAob25fZXJyb3IgaWdub3JlLCBvbl9lcnJvciBpZ25vcmUpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitDT1BZIHggZnJvbSBzdGRp biAob25fZXJyb3Igc2V0X3RvX251bGwsIG9uX2Vycm9yIGlnbm9yZSk7CitFUlJPUjogIGNvbmZs aWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zCitMSU5FIDE6IENPUFkgeCBmcm9tIHN0ZGluIChv bl9lcnJvciBzZXRfdG9fbnVsbCwgb25fZXJyb3IgaWdub3JlKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBDT1BZIHggZnJvbSBzdGRpbiAobG9n X3ZlcmJvc2l0eSBkZWZhdWx0LCBsb2dfdmVyYm9zaXR5IHZlcmJvc2UpOwogRVJST1I6ICBjb25m bGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucwogTElORSAxOiBDT1BZIHggZnJvbSBzdGRpbiAo bG9nX3ZlcmJvc2l0eSBkZWZhdWx0LCBsb2dfdmVyYm9zaXR5IHZlcmIuLi4KQEAgLTkyLDYgKzk2 LDEwIEBAIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBudWxsICd4Jyk7CiBFUlJP UjogIGNhbm5vdCBzcGVjaWZ5IE5VTEwgaW4gQklOQVJZIG1vZGUKIENPUFkgeCBmcm9tIHN0ZGlu IChmb3JtYXQgQklOQVJZLCBvbl9lcnJvciBpZ25vcmUpOwogRVJST1I6ICBvbmx5IE9OX0VSUk9S IFNUT1AgaXMgYWxsb3dlZCBpbiBCSU5BUlkgbW9kZQorQ09QWSB4IGZyb20gc3RkaW4gKGZvcm1h dCBCSU5BUlksIG9uX2Vycm9yIHNldF90b19udWxsKTsKK0VSUk9SOiAgb25seSBPTl9FUlJPUiBT VE9QIGlzIGFsbG93ZWQgaW4gQklOQVJZIG1vZGUKK0NPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJv ciBzZXRfdG9fbnVsbCwgcmVqZWN0X2xpbWl0IDIpOworRVJST1I6ICBDT1BZIFJFSkVDVF9MSU1J VCByZXF1aXJlcyBPTl9FUlJPUiB0byBiZSBzZXQgdG8gSUdOT1JFCiBDT1BZIHggZnJvbSBzdGRp biAob25fZXJyb3IgdW5zdXBwb3J0ZWQpOwogRVJST1I6ICBDT1BZIE9OX0VSUk9SICJ1bnN1cHBv cnRlZCIgbm90IHJlY29nbml6ZWQKIExJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9y IHVuc3VwcG9ydGVkKTsKQEAgLTEyNCw2ICsxMzIsMTAgQEAgQ09QWSB4IHRvIHN0ZG91dCAoZm9y bWF0IEJJTkFSWSwgb25fZXJyb3IgdW5zdXBwb3J0ZWQpOwogRVJST1I6ICBDT1BZIE9OX0VSUk9S IGNhbm5vdCBiZSB1c2VkIHdpdGggQ09QWSBUTwogTElORSAxOiBDT1BZIHggdG8gc3Rkb3V0IChm b3JtYXQgQklOQVJZLCBvbl9lcnJvciB1bnN1cHBvcnRlZCk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK0NPUFkgeCB0byBzdGRvdXQgKG9uX2Vycm9yIHNldF90 b19udWxsKTsKK0VSUk9SOiAgQ09QWSBPTl9FUlJPUiBjYW5ub3QgYmUgdXNlZCB3aXRoIENPUFkg VE8KK0xJTkUgMTogQ09QWSB4IHRvIHN0ZG91dCAob25fZXJyb3Igc2V0X3RvX251bGwpOworICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBDT1BZIHggZnJvbSBzdGRpbiAobG9nX3ZlcmJvc2l0 eSB1bnN1cHBvcnRlZCk7CiBFUlJPUjogIENPUFkgTE9HX1ZFUkJPU0lUWSAidW5zdXBwb3J0ZWQi IG5vdCByZWNvZ25pemVkCiBMSU5FIDE6IENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5 IHVuc3VwcG9ydGVkKTsKQEAgLTc2OSw2ICs3ODEsNTEgQEAgQ09OVEVYVDogIENPUFkgY2hlY2tf aWduX2VycgogTk9USUNFOiAgc2tpcHBpbmcgcm93IGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRp YmlsaXR5IGF0IGxpbmUgOCBmb3IgY29sdW1uICJrIjogImEiCiBDT05URVhUOiAgQ09QWSBjaGVj a19pZ25fZXJyCiBOT1RJQ0U6ICA2IHJvd3Mgd2VyZSBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUg aW5jb21wYXRpYmlsaXR5CitDUkVBVEUgRE9NQUlOIGRfaW50X25vdF9udWxsIEFTIElOVCBOT1Qg TlVMTCBDSEVDSyh2YWx1ZSA+IDApOworQ1JFQVRFIERPTUFJTiBkX2ludF9wb3NpdGl2ZV9tYXli ZV9udWxsIEFTIElOVCBDSEVDSyh2YWx1ZSA+IDApOworQ1JFQVRFIFRBQkxFIHRfb25fZXJyb3Jf bnVsbCAoYSBkX2ludF9ub3RfbnVsbCwgYiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxsLCBjIElO VCk7CitccHNldCBudWxsIE5VTEwKKy0tZmFpbCwgY29sdW1uIGEgY2Fubm90IHNldCB0byBudWxs IHZhbHVlCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHNl dF90b19udWxsKTsKK0VSUk9SOiAgZG9tYWluIGRfaW50X25vdF9udWxsIGRvZXMgbm90IGFsbG93 IG51bGwgdmFsdWVzCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMSwgY29s dW1uIGE6IG51bGwgaW5wdXQKKy0tZmFpbCwgY29sdW1uIGEgaXMgZG9tYWluIHdpdGggbm90LW51 bGwgY29uc3RyYWludAorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9l cnJvciBzZXRfdG9fbnVsbCk7CitFUlJPUjogIGRvbWFpbiBkX2ludF9ub3RfbnVsbCBkb2VzIG5v dCBhbGxvdyBudWxsIHZhbHVlcworQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5l IDEsIGNvbHVtbiBhOiAiYSIKKy0tZmFpbCwgY29sdW1uIGEgY2Fubm90IHNldCB0byBudWxsIHZh bHVlCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHNldF90 b19udWxsKTsKK0VSUk9SOiAgZG9tYWluIGRfaW50X25vdF9udWxsIGRvZXMgbm90IGFsbG93IG51 bGwgdmFsdWVzCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMSwgY29sdW1u IGE6ICItMSIKKy0tZmFpbC4gbGVzcyBkYXRhCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNU RElOIFdJVEggKGRlbGltaXRlciAnLCcsIG9uX2Vycm9yIHNldF90b19udWxsKTsKK0VSUk9SOiAg bWlzc2luZyBkYXRhIGZvciBjb2x1bW4gImMiCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251 bGwsIGxpbmUgMTogIjEsMSIKKy0tZmFpbC4gZXh0cmEgZGF0YQorQ09QWSB0X29uX2Vycm9yX251 bGwgRlJPTSBTVERJTiBXSVRIIChkZWxpbWl0ZXIgJywnLCBvbl9lcnJvciBzZXRfdG9fbnVsbCk7 CitFUlJPUjogIGV4dHJhIGRhdGEgYWZ0ZXIgbGFzdCBleHBlY3RlZCBjb2x1bW4KK0NPTlRFWFQ6 ICBDT1BZIHRfb25fZXJyb3JfbnVsbCwgbGluZSAxOiAiMSwyLDMsNCIKKy0tb2sKK0NPUFkgdF9v bl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwsIGxvZ192 ZXJib3NpdHkgdmVyYm9zZSk7CitOT1RJQ0U6ICBjb2x1bW4gImIiIHdhcyBzZXQgdG8gbnVsbCBk dWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSBhdCBsaW5lIDEKK0NPTlRFWFQ6ICBDT1BZ IHRfb25fZXJyb3JfbnVsbAorTk9USUNFOiAgY29sdW1uICJjIiB3YXMgc2V0IHRvIG51bGwgZHVl IHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSAxCitDT05URVhUOiAgQ09QWSB0 X29uX2Vycm9yX251bGwKK05PVElDRTogIGNvbHVtbiAiYiIgd2FzIHNldCB0byBudWxsIGR1ZSB0 byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgMgorQ09OVEVYVDogIENPUFkgdF9v bl9lcnJvcl9udWxsCitOT1RJQ0U6ICBjb2x1bW4gImMiIHdhcyBzZXQgdG8gbnVsbCBkdWUgdG8g ZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSBhdCBsaW5lIDMKK0NPTlRFWFQ6ICBDT1BZIHRfb25f ZXJyb3JfbnVsbAorTk9USUNFOiAgaW52YWxpZCB2YWx1ZXMgaW4gMyByb3dzIHdlcmUgcmVwbGFj ZWQgd2l0aCBudWxsCistLSBjaGVjayBpbnNlcnRlZCBjb250ZW50CitzZWxlY3QgKiBmcm9tIHRf b25fZXJyb3JfbnVsbDsKKyBhICB8ICBiICAgfCAgYyAgIAorLS0tLSstLS0tLS0rLS0tLS0tCisg MTAgfCBOVUxMIHwgTlVMTAorIDExIHwgTlVMTCB8ICAgMTIKKyAxMyB8ICAgMTQgfCBOVUxMCiso MyByb3dzKQorCitccHNldCBudWxsICcnCiAtLSB0ZXN0cyBmb3Igb25fZXJyb3Igb3B0aW9uIHdp dGggbG9nX3ZlcmJvc2l0eSBhbmQgbnVsbCBjb25zdHJhaW50IHZpYSBkb21haW4KIENSRUFURSBE T01BSU4gZGNoZWNrX2lnbl9lcnIyIHZhcmNoYXIoMTUpIE5PVCBOVUxMOwogQ1JFQVRFIFRBQkxF IGNoZWNrX2lnbl9lcnIyIChuIGludCwgbSBpbnRbXSwgayBpbnQsIGwgZGNoZWNrX2lnbl9lcnIy KTsKQEAgLTgyOCw2ICs4ODUsOSBAQCBEUk9QIFZJRVcgaW5zdGVhZF9vZl9pbnNlcnRfdGJsX3Zp ZXc7CiBEUk9QIFZJRVcgaW5zdGVhZF9vZl9pbnNlcnRfdGJsX3ZpZXdfMjsKIERST1AgRlVOQ1RJ T04gZnVuX2luc3RlYWRfb2ZfaW5zZXJ0X3RibCgpOwogRFJPUCBUQUJMRSBjaGVja19pZ25fZXJy OworRFJPUCBUQUJMRSB0X29uX2Vycm9yX251bGw7CitEUk9QIERPTUFJTiBkX2ludF9ub3RfbnVs bDsKK0RST1AgRE9NQUlOIGRfaW50X3Bvc2l0aXZlX21heWJlX251bGw7CiBEUk9QIFRBQkxFIGNo ZWNrX2lnbl9lcnIyOwogRFJPUCBET01BSU4gZGNoZWNrX2lnbl9lcnIyOwogRFJPUCBUQUJMRSBo YXJkX2VycjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbAppbmRleCA0NTI3MzU1N2NlMC4uZmJmODAwMDQx NzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwKQEAgLTY3LDEyICs2NywxNSBAQCBDT1BZIHggZnJv bSBzdGRpbiAoZm9yY2VfbnVsbCAoYSksIGZvcmNlX251bGwgKGIpKTsKIENPUFkgeCBmcm9tIHN0 ZGluIChjb252ZXJ0X3NlbGVjdGl2ZWx5IChhKSwgY29udmVydF9zZWxlY3RpdmVseSAoYikpOwog Q09QWSB4IGZyb20gc3RkaW4gKGVuY29kaW5nICdzcWxfYXNjaWknLCBlbmNvZGluZyAnc3FsX2Fz Y2lpJyk7CiBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3IgaWdub3JlLCBvbl9lcnJvciBpZ25v cmUpOworQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxsLCBvbl9lcnJvciBp Z25vcmUpOwogQ09QWSB4IGZyb20gc3RkaW4gKGxvZ192ZXJib3NpdHkgZGVmYXVsdCwgbG9nX3Zl cmJvc2l0eSB2ZXJib3NlKTsKIAogLS0gaW5jb3JyZWN0IG9wdGlvbnMKIENPUFkgeCBmcm9tIHN0 ZGluIChmb3JtYXQgQklOQVJZLCBkZWxpbWl0ZXIgJywnKTsKIENPUFkgeCBmcm9tIHN0ZGluIChm b3JtYXQgQklOQVJZLCBudWxsICd4Jyk7CiBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFS WSwgb25fZXJyb3IgaWdub3JlKTsKK0NPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBv bl9lcnJvciBzZXRfdG9fbnVsbCk7CitDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3Igc2V0X3Rv X251bGwsIHJlamVjdF9saW1pdCAyKTsKIENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciB1bnN1 cHBvcnRlZCk7CiBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IFRFWFQsIGZvcmNlX3F1b3RlKGEp KTsKIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgVEVYVCwgZm9yY2VfcXVvdGUgKik7CkBAIC04 Nyw2ICs5MCw3IEBAIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgVEVYVCwgZm9yY2VfbnVsbCAq KTsKIENPUFkgeCB0byBzdGRvdXQgKGZvcm1hdCBDU1YsIGZvcmNlX251bGwoYSkpOwogQ09QWSB4 IHRvIHN0ZG91dCAoZm9ybWF0IENTViwgZm9yY2VfbnVsbCAqKTsKIENPUFkgeCB0byBzdGRvdXQg KGZvcm1hdCBCSU5BUlksIG9uX2Vycm9yIHVuc3VwcG9ydGVkKTsKK0NPUFkgeCB0byBzdGRvdXQg KG9uX2Vycm9yIHNldF90b19udWxsKTsKIENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5 IHVuc3VwcG9ydGVkKTsKIENPUFkgeCBmcm9tIHN0ZGluIHdpdGggKHJlamVjdF9saW1pdCAxKTsK IENPUFkgeCBmcm9tIHN0ZGluIHdpdGggKG9uX2Vycm9yIGlnbm9yZSwgcmVqZWN0X2xpbWl0IDAp OwpAQCAtNTM0LDYgKzUzOCw0NSBAQCBhCXsyfQkyCiA4CXs4fQk4CiBcLgogCitDUkVBVEUgRE9N QUlOIGRfaW50X25vdF9udWxsIEFTIElOVCBOT1QgTlVMTCBDSEVDSyh2YWx1ZSA+IDApOworQ1JF QVRFIERPTUFJTiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxsIEFTIElOVCBDSEVDSyh2YWx1ZSA+ IDApOworQ1JFQVRFIFRBQkxFIHRfb25fZXJyb3JfbnVsbCAoYSBkX2ludF9ub3RfbnVsbCwgYiBk X2ludF9wb3NpdGl2ZV9tYXliZV9udWxsLCBjIElOVCk7CisKK1xwc2V0IG51bGwgTlVMTAorLS1m YWlsLCBjb2x1bW4gYSBjYW5ub3Qgc2V0IHRvIG51bGwgdmFsdWUKK0NPUFkgdF9vbl9lcnJvcl9u dWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwpOworXE4JMTEJMTMKK1wu CisKKy0tZmFpbCwgY29sdW1uIGEgaXMgZG9tYWluIHdpdGggbm90LW51bGwgY29uc3RyYWludAor Q09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRfdG9fbnVs bCk7CithCTExCTE0CitcLgorCistLWZhaWwsIGNvbHVtbiBhIGNhbm5vdCBzZXQgdG8gbnVsbCB2 YWx1ZQorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRf dG9fbnVsbCk7CistMQkxMQkxMworXC4KKworLS1mYWlsLiBsZXNzIGRhdGEKK0NPUFkgdF9vbl9l cnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcsJywgb25fZXJyb3Igc2V0X3Rv X251bGwpOworMSwxCitcLgorLS1mYWlsLiBleHRyYSBkYXRhCitDT1BZIHRfb25fZXJyb3JfbnVs bCBGUk9NIFNURElOIFdJVEggKGRlbGltaXRlciAnLCcsIG9uX2Vycm9yIHNldF90b19udWxsKTsK KzEsMiwzLDQKK1wuCisKKy0tb2sKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lU SCAob25fZXJyb3Igc2V0X3RvX251bGwsIGxvZ192ZXJib3NpdHkgdmVyYm9zZSk7CisxMAlhCWQK KzExCWIJMTIKKzEzCTE0CWUKK1wuCisKKy0tIGNoZWNrIGluc2VydGVkIGNvbnRlbnQKK3NlbGVj dCAqIGZyb20gdF9vbl9lcnJvcl9udWxsOworXHBzZXQgbnVsbCAnJwogLS0gdGVzdHMgZm9yIG9u X2Vycm9yIG9wdGlvbiB3aXRoIGxvZ192ZXJib3NpdHkgYW5kIG51bGwgY29uc3RyYWludCB2aWEg ZG9tYWluCiBDUkVBVEUgRE9NQUlOIGRjaGVja19pZ25fZXJyMiB2YXJjaGFyKDE1KSBOT1QgTlVM TDsKIENSRUFURSBUQUJMRSBjaGVja19pZ25fZXJyMiAobiBpbnQsIG0gaW50W10sIGsgaW50LCBs IGRjaGVja19pZ25fZXJyMik7CkBAIC02MDMsNiArNjQ2LDkgQEAgRFJPUCBWSUVXIGluc3RlYWRf b2ZfaW5zZXJ0X3RibF92aWV3OwogRFJPUCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0X3RibF92aWV3 XzI7CiBEUk9QIEZVTkNUSU9OIGZ1bl9pbnN0ZWFkX29mX2luc2VydF90YmwoKTsKIERST1AgVEFC TEUgY2hlY2tfaWduX2VycjsKK0RST1AgVEFCTEUgdF9vbl9lcnJvcl9udWxsOworRFJPUCBET01B SU4gZF9pbnRfbm90X251bGw7CitEUk9QIERPTUFJTiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxs OwogRFJPUCBUQUJMRSBjaGVja19pZ25fZXJyMjsKIERST1AgRE9NQUlOIGRjaGVja19pZ25fZXJy MjsKIERST1AgVEFCTEUgaGFyZF9lcnI7Ci0tIAoyLjM0LjEKCg== --000000000000c219380631f29004--