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 1siNAc-003Cw9-Rb for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Aug 2024 00:01:19 +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 1siNAZ-002NTF-MY for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Aug 2024 00:01:16 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1siNAZ-002NSy-4x for pgsql-hackers@lists.postgresql.org; Mon, 26 Aug 2024 00:01:15 +0000 Received: from mail-vk1-xa29.google.com ([2607:f8b0:4864:20::a29]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1siNAW-001QmX-Ki for pgsql-hackers@lists.postgresql.org; Mon, 26 Aug 2024 00:01:14 +0000 Received: by mail-vk1-xa29.google.com with SMTP id 71dfb90a1353d-4feb60e525bso443329e0c.0 for ; Sun, 25 Aug 2024 17:01:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724630471; x=1725235271; 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=Yl0kGOZwJHkS5J7KoHiEbtXUGEh4djszE9PCK7KW+/0=; b=FZ5uC0ebPFC7jiBE+Qyan1raMJCtrY1IDFGZjKNQKpxA6Tp23EbUZvPzYEzVpyIPe1 RrJZcQamL40nivWinc+c8N4x6Mopn0dT/ohgGl/O5zrWpEm8ty68VC77U0OKMl6urarh w8DzUPAD/ISkrcmY7SRqEqtVbw54mfQFqHCODTsVAlGdd4/hh/eoo1Ny6KBm/m90F9/w +6y91CoZnSnlFRqoxkKIOPjZ1WFbSh8cleXRX9+2G1UwCRZ0AwLVXO21MxGGbPkc6Tw/ JSeINeQKBKK49q2Oozj0XRQ9awnHLUIIDFklnlpgOdc/KkjKTQ4zYpjZ/j566HR4AYFt +ong== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724630471; x=1725235271; 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=Yl0kGOZwJHkS5J7KoHiEbtXUGEh4djszE9PCK7KW+/0=; b=MeVxbVXMzrAESeUBPHDvHWXYn0qyxGieZ+50yJxUoSKH1lSPztTv8Gqp/TtdupvMgC neZOQnqQ4w3ZMcqIj4tI/e8NJQ9oPxIjxIAfDA56skQd5XijGzkj+962WiLqqhF2TCen 6nvNlO+u6Yvqy1yvYNhXaBkWfqkcwLSq9Psp/pyv0MAmchpz5aVQVZR01kFtCMA2vFZT SPZDwJTq1sCyOJr0q9SzCY+VddCdKYKbUOavH+Z3pB/p5EujM0pEP1TPAjrF2GG3FFnq KQBEKnpZN9hlsTU0wRNhBXdwfyAWJvqJpi6ZKWfy/kY94MuUVmLNstxR4uSRL/Pzo4Ak Tj8Q== X-Forwarded-Encrypted: i=1; AJvYcCVlaeEOX1c7tXlQQsYOvxvtUCGiEeOLaTq1Z4rHZ3z/MDUEfVgueGIrNXGdSWFqPVpuBGlV7WxlL613c7iK@lists.postgresql.org X-Gm-Message-State: AOJu0YydfQNX2398VliO4QXpMB3jUL7L+uLmaS2BjZBcRkMSGW4FX+Tf ZaH/OEZa848uiDgN3yMs+AsbmCINIZAXFgPCoyTtyoeYz76AqhhS1fq1zvCbm49T+4wottkmK/h GzcSdy8whlh09Z561YzInb/dmKUXmJbm/KSA= X-Google-Smtp-Source: AGHT+IGLJTCcpRE+ic0guI6Oq5txkXHO1D/8U6MJ9dcGYZzmontmjZhMf8XNFauyQZF31XP6wmeSr3rkmc1eW5zZFg8= X-Received: by 2002:a1f:db82:0:b0:4fc:ba44:6ad6 with SMTP id 71dfb90a1353d-4fd042dc3e1mr10017288e0c.0.1724630471093; Sun, 25 Aug 2024 17:01:11 -0700 (PDT) MIME-Version: 1.0 References: <20240129172858.ccb6c77c3be95a295e2b2b44@sraoss.co.jp> <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> In-Reply-To: <6eac5b45-7f45-4c7a-aae1-e90db8be2e08@uni-muenster.de> From: jian he Date: Mon, 26 Aug 2024 08:00:00 +0800 Message-ID: Subject: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row To: Jim Jones Cc: "David G. Johnston" , Yugo NAGATA , torikoshia , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000009953d106208ad27f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009953d106208ad27f Content-Type: text/plain; charset="UTF-8" hi all. patch updated. simplified the code a lot. idea is same: COPY t_on_error_null FROM STDIN WITH (on_error set_to_null); If the STDIN number of columns is the same as the target table, then InputFunctionCallSafe call failure will make that column values be null. If the STDIN number of columns is not the same as the target table, then error ERROR: missing data for column \"%s\" ERROR: extra data after last expected column which is status quo. --0000000000009953d106208ad27f Content-Type: text/x-patch; charset="US-ASCII"; name="v3-0001-on_error-set_to_null.patch" Content-Disposition: attachment; filename="v3-0001-on_error-set_to_null.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m06t5j4e0 RnJvbSBkNjk3Njg0YjRkYzEzNTYxNzJkOTMxNzliMWU1ZTE1Nzg5M2MzZTU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjMgQXVnIDIwMjQgMjI6MjY6NDQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYz IDEvMV0gb25fZXJyb3Igc2V0X3RvX251bGwKCmFueSBkYXRhIHR5cGUgY29udmVyc2lvbiBlcnJv cnMgd2hpbGUgQ09QWSBGUk9NIHdpbGwgc2V0IHRoYXQgY29sdW1uIHZhbHVlIHRvIGJlIE5VTEwu CmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FLRlF1d2F3eTFlNllSNFM9ait5N3BY cWdfRHcxV0JWcmd2Zj1CUDNkMV9hU2ZlXytRQG1haWwuZ21haWwuY29tCi0tLQogZG9jL3NyYy9z Z21sL3JlZi9jb3B5LnNnbWwgICAgICAgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMv Y29weS5jICAgICAgICAgIHwgIDIgKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMg ICAgICB8ICA4ICsrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jIHwg MTEgKysrKysrKysKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaCAgICAgICAgICB8ICAxICsK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0ICB8IDM5ICsrKysrKysrKysrKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwgICAgICAgfCA0MSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY29w eS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKaW5kZXggMTUxOGFmOGEwNC4uYjZi ZGY0NWU3ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKQEAgLTM5NCw2ICszOTQsNyBAQCBDT1BZIHsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggPHJl cGxhY2VhYmxlCiAgICAgICBBbiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXJyb3Jf YWN0aW9uPC9yZXBsYWNlYWJsZT4gdmFsdWUgb2YKICAgICAgIDxsaXRlcmFsPnN0b3A8L2xpdGVy YWw+IG1lYW5zIGZhaWwgdGhlIGNvbW1hbmQsIHdoaWxlCiAgICAgICA8bGl0ZXJhbD5pZ25vcmU8 L2xpdGVyYWw+IG1lYW5zIGRpc2NhcmQgdGhlIGlucHV0IHJvdyBhbmQgY29udGludWUgd2l0aCB0 aGUgbmV4dCBvbmUuCisgICAgICA8bGl0ZXJhbD5zZXRfdG9fbnVsbDwvbGl0ZXJhbD4gbWVhbnMg dGhlIGlucHV0IHZhbHVlIHdpbGwgc2V0IHRvIDxsaXRlcmFsPm51bGw8L2xpdGVyYWw+IGFuZCBj b250aW51ZSB3aXRoIHRoZSBuZXh0IG9uZS4KICAgICAgIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFs PnN0b3A8L2xpdGVyYWw+LgogICAgICA8L3BhcmE+CiAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5j CmluZGV4IDNiYjU3OWEzYTQuLmU0YmQzMTBhZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvcHkuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMKQEAgLTQwOSw2 ICs0MDksOCBAQCBkZWZHZXRDb3B5T25FcnJvckNob2ljZShEZWZFbGVtICpkZWYsIFBhcnNlU3Rh dGUgKnBzdGF0ZSwgYm9vbCBpc19mcm9tKQogCQlyZXR1cm4gQ09QWV9PTl9FUlJPUl9TVE9QOwog CWlmIChwZ19zdHJjYXNlY21wKHN2YWwsICJpZ25vcmUiKSA9PSAwKQogCQlyZXR1cm4gQ09QWV9P Tl9FUlJPUl9JR05PUkU7CisJaWYgKHBnX3N0cmNhc2VjbXAoc3ZhbCwgInNldF90b19udWxsIikg PT0gMCkKKwkJcmV0dXJuIENPUFlfT05fRVJST1JfTlVMTDsKIAogCWVyZXBvcnQoRVJST1IsCiAJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9j b3B5ZnJvbS5jCmluZGV4IDJkMzQ2MjkxM2UuLmMxZTU4ZTQ5YmMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29w eWZyb20uYwpAQCAtMTMxOSw3ICsxMzE5LDcgQEAgQ29weUZyb20oQ29weUZyb21TdGF0ZSBjc3Rh dGUpCiAJLyogRG9uZSwgY2xlYW4gdXAgKi8KIAllcnJvcl9jb250ZXh0X3N0YWNrID0gZXJyY2Fs bGJhY2sucHJldmlvdXM7CiAKLQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yICE9IENPUFlfT05f RVJST1JfU1RPUCAmJgorCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJP Ul9JR05PUkUgJiYKIAkJY3N0YXRlLT5udW1fZXJyb3JzID4gMCkKIAkJZXJlcG9ydChOT1RJQ0Us CiAJCQkJZXJybXNnX3BsdXJhbCgiJWxsdSByb3cgd2FzIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlw ZSBpbmNvbXBhdGliaWxpdHkiLApAQCAtMTQ3MSwxMSArMTQ3MSwxMyBAQCBCZWdpbkNvcHlGcm9t KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJY3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVk ID0gZmFsc2U7CiAKIAkJLyoKLQkJICogQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBDT1BZX09O X0VSUk9SX0lHTk9SRS4gV2UnbGwgYWRkIG90aGVyCi0JCSAqIG9wdGlvbnMgbGF0ZXIKKwkJICog Q3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBDT1BZX09OX0VSUk9SX0lHTk9SRSwgQ09QWV9PTl9F UlJPUl9OVUxMLgorCQkgKiBXZSdsbCBhZGQgb3RoZXIgb3B0aW9ucyBsYXRlcgogCQkgKi8KIAkJ aWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSkKIAkJCWNz dGF0ZS0+ZXNjb250ZXh0LT5kZXRhaWxzX3dhbnRlZCA9IGZhbHNlOworCQllbHNlIGlmIChjc3Rh dGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9OVUxMKQorCQkJY3N0YXRlLT5lc2Nv bnRleHQtPmRldGFpbHNfd2FudGVkID0gZmFsc2U7CiAJfQogCWVsc2UKIAkJY3N0YXRlLT5lc2Nv bnRleHQgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21w YXJzZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jCmluZGV4IDdlZmNi ODkxNTkuLjZmYmU5NzViNTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlm cm9tcGFyc2UuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMKQEAg LTk2OSw2ICs5NjksMTcgQEAgTmV4dENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlLCBFeHBy Q29udGV4dCAqZWNvbnRleHQsCiAJCQl7CiAJCQkJQXNzZXJ0KGNzdGF0ZS0+b3B0cy5vbl9lcnJv ciAhPSBDT1BZX09OX0VSUk9SX1NUT1ApOwogCisJCQkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJv ciA9PSBDT1BZX09OX0VSUk9SX05VTEwpCisJCQkJeworCQkJCQl2YWx1ZXNbbV0gPSAoRGF0dW0p IDA7CisJCQkJCW51bGxzW21dID0gdHJ1ZTsKKwkJCQkJLyoKKwkJCQkJICogc2V0IGVycm9yX29j Y3VycmVkIHRvIGZhbHNlLCBzbyBuZXh0CisJCQkJCSAqIElucHV0RnVuY3Rpb25DYWxsU2FmZSBj YWxsIGJlaGF2ZSBzYW5lLgorCQkJCQkqLworCQkJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jf b2NjdXJyZWQgPSBmYWxzZTsKKwkJCQkJY29udGludWU7CisJCQkJfQogCQkJCWNzdGF0ZS0+bnVt X2Vycm9ycysrOwogCiAJCQkJaWYgKGNzdGF0ZS0+b3B0cy5sb2dfdmVyYm9zaXR5ID09IENPUFlf TE9HX1ZFUkJPU0lUWV9WRVJCT1NFKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv Y29weS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oCmluZGV4IDE0MWZkNDhkYzEuLmZh ODcyMzJlZDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaAorKysgYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKQEAgLTM4LDYgKzM4LDcgQEAgdHlwZWRlZiBlbnVt IENvcHlPbkVycm9yQ2hvaWNlCiB7CiAJQ09QWV9PTl9FUlJPUl9TVE9QID0gMCwJCS8qIGltbWVk aWF0ZWx5IHRocm93IGVycm9ycywgZGVmYXVsdCAqLwogCUNPUFlfT05fRVJST1JfSUdOT1JFLAkJ LyogaWdub3JlIGVycm9ycyAqLworCUNPUFlfT05fRVJST1JfTlVMTCwJCQkvKiBzZXQgZXJyb3Ig ZmllbGQgdG8gbnVsbCAqLwogfSBDb3B5T25FcnJvckNob2ljZTsKIAogLyoKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jb3B5Mi5vdXQKaW5kZXggZTkxM2Y2ODNhNi4uNGQyMzUyNzEwNiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKQEAgLTc1Myw2ICs3NTMsMjQgQEAgQ09OVEVYVDogIENP UFkgY2hlY2tfaWduX2VycgogTk9USUNFOiAgc2tpcHBpbmcgcm93IGR1ZSB0byBkYXRhIHR5cGUg aW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgOCBmb3IgY29sdW1uIGs6ICJhIgogQ09OVEVYVDogIENP UFkgY2hlY2tfaWduX2VycgogTk9USUNFOiAgNiByb3dzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZGF0 YSB0eXBlIGluY29tcGF0aWJpbGl0eQorY3JlYXRlIGRvbWFpbiBkX2ludF9ub3RfbnVsbCBhcyBp bnQgbm90IG51bGwgY2hlY2sodmFsdWUgPiAwKTsKK0NSRUFURSBUQUJMRSB0X29uX2Vycm9yX251 bGwgKGEgZF9pbnRfbm90X251bGwsIGMgaW50IG5vdCBudWxsLCBiIGludCk7CistLWZhaWwKK0NP UFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwp OworRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYyIgb2YgcmVsYXRpb24gInRfb25fZXJy b3JfbnVsbCIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFpbGluZyBy b3cgY29udGFpbnMgKDExLCBudWxsLCAxMikuCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251 bGwsIGxpbmUgMTogIjExCWEJMTIiCistLW9rCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNU RElOIFdJVEggKG9uX2Vycm9yIHNldF90b19udWxsKTsKK3NlbGVjdCAqIGZyb20gdF9vbl9lcnJv cl9udWxsOworIGEgfCBjICB8IGIgIAorLS0tKy0tLS0rLS0tLQorICAgfCAxMSB8IDEzCisgICB8 IDExIHwgMTQKKygyIHJvd3MpCisKK2Ryb3AgdGFibGUgdF9vbl9lcnJvcl9udWxsOworZHJvcCBk b21haW4gZF9pbnRfbm90X251bGw7CiAtLSB0ZXN0cyBmb3Igb25fZXJyb3Igb3B0aW9uIHdpdGgg bG9nX3ZlcmJvc2l0eSBhbmQgbnVsbCBjb25zdHJhaW50IHZpYSBkb21haW4KIENSRUFURSBET01B SU4gZGNoZWNrX2lnbl9lcnIyIHZhcmNoYXIoMTUpIE5PVCBOVUxMOwogQ1JFQVRFIFRBQkxFIGNo ZWNrX2lnbl9lcnIyIChuIGludCwgbSBpbnRbXSwgayBpbnQsIGwgZGNoZWNrX2lnbl9lcnIyKTsK QEAgLTc4OSw2ICs4MDcsMjcgQEAgQ09OVEVYVDogIENPUFkgY2hlY2tfaWduX2VyciwgbGluZSAx OiAiMQl7MX0iCiBDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBp Z25vcmUpOwogRVJST1I6ICBleHRyYSBkYXRhIGFmdGVyIGxhc3QgZXhwZWN0ZWQgY29sdW1uCiBD T05URVhUOiAgQ09QWSBjaGVja19pZ25fZXJyLCBsaW5lIDE6ICIxCXsxfQkzCWFiYyIKK3RydW5j YXRlIGNoZWNrX2lnbl9lcnI7CitDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRIIChv bl9lcnJvciBzZXRfdG9fbnVsbCk7CitccHNldCBudWxsIE5VTEwKK1NFTEVDVCAqIEZST00gY2hl Y2tfaWduX2VycjsKKyAgbiAgIHwgIG0gIHwgIGsgICAKKy0tLS0tLSstLS0tLSstLS0tLS0KKyAg ICAxIHwgezF9IHwgTlVMTAorICAgIDIgfCB7Mn0gfCAgICAxCisgICAgMyB8IHszfSB8ICAgIDIK KyAgICA0IHwgezR9IHwgTlVMTAorIE5VTEwgfCB7NX0gfCBOVUxMCisoNSByb3dzKQorCistLXNo b3VsZCBmYWlsLgorQ09QWSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVy ICcsJywgb25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6ICBtaXNzaW5nIGRhdGEgZm9yIGNv bHVtbiAiayIKK0NPTlRFWFQ6ICBDT1BZIGNoZWNrX2lnbl9lcnIsIGxpbmUgMSwgY29sdW1uIG06 ICIiCistLXNob3VsZCBmYWlsLgorQ09QWSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lUSCAo ZGVsaW1pdGVyICcsJywgb25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6ICBleHRyYSBkYXRh IGFmdGVyIGxhc3QgZXhwZWN0ZWQgY29sdW1uCitDT05URVhUOiAgQ09QWSBjaGVja19pZ25fZXJy LCBsaW5lIDE6ICIxLHsxfSwxLDEiCiAtLSBjbGVhbiB1cAogRFJPUCBUQUJMRSBmb3JjZXRlc3Q7 CiBEUk9QIFRBQkxFIHZpc3Rlc3Q7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9j b3B5Mi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwKaW5kZXggOGIxNDk2MjE5 NC4uNGFiYzE4YTZkYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbApAQCAtNTI2LDYgKzUyNiwyNCBA QCBhCXsyfQkyCiA4CXs4fQk4CiBcLgogCitjcmVhdGUgZG9tYWluIGRfaW50X25vdF9udWxsIGFz IGludCBub3QgbnVsbCBjaGVjayh2YWx1ZSA+IDApOworQ1JFQVRFIFRBQkxFIHRfb25fZXJyb3Jf bnVsbCAoYSBkX2ludF9ub3RfbnVsbCwgYyBpbnQgbm90IG51bGwsIGIgaW50KTsKKworLS1mYWls CitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHNldF90b19u dWxsKTsKKzExCWEJMTIKK1wuCisKKy0tb2sKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RE SU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwpOworLTEJMTEJMTMKK2EJMTEJMTQKK1wuCisK K3NlbGVjdCAqIGZyb20gdF9vbl9lcnJvcl9udWxsOworZHJvcCB0YWJsZSB0X29uX2Vycm9yX251 bGw7Citkcm9wIGRvbWFpbiBkX2ludF9ub3RfbnVsbDsKKwogLS0gdGVzdHMgZm9yIG9uX2Vycm9y IG9wdGlvbiB3aXRoIGxvZ192ZXJib3NpdHkgYW5kIG51bGwgY29uc3RyYWludCB2aWEgZG9tYWlu CiBDUkVBVEUgRE9NQUlOIGRjaGVja19pZ25fZXJyMiB2YXJjaGFyKDE1KSBOT1QgTlVMTDsKIENS RUFURSBUQUJMRSBjaGVja19pZ25fZXJyMiAobiBpbnQsIG0gaW50W10sIGsgaW50LCBsIGRjaGVj a19pZ25fZXJyMik7CkBAIC01NTcsNiArNTc1LDI5IEBAIENPUFkgY2hlY2tfaWduX2VyciBGUk9N IFNURElOIFdJVEggKG9uX2Vycm9yIGlnbm9yZSk7CiAxCXsxfQkzCWFiYwogXC4KIAorCit0cnVu Y2F0ZSBjaGVja19pZ25fZXJyOworQ09QWSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lUSCAo b25fZXJyb3Igc2V0X3RvX251bGwpOworMQl7MX0JYQorMgl7Mn0JMQorMwl7M30JMgorNAl7NH0J YgorYQl7NX0JYworXC4KKworXHBzZXQgbnVsbCBOVUxMCitTRUxFQ1QgKiBGUk9NIGNoZWNrX2ln bl9lcnI7CisKKy0tc2hvdWxkIGZhaWwuCitDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBX SVRIIChkZWxpbWl0ZXIgJywnLCBvbl9lcnJvciBzZXRfdG9fbnVsbCk7CisxLAorXC4KKworLS1z aG91bGQgZmFpbC4KK0NPUFkgY2hlY2tfaWduX2VyciBGUk9NIFNURElOIFdJVEggKGRlbGltaXRl ciAnLCcsIG9uX2Vycm9yIHNldF90b19udWxsKTsKKzEsezF9LDEsMQorXC4KKwogLS0gY2xlYW4g dXAKIERST1AgVEFCTEUgZm9yY2V0ZXN0OwogRFJPUCBUQUJMRSB2aXN0ZXN0OwotLSAKMi4zNC4x Cgo= --0000000000009953d106208ad27f--