Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1veWqN-00ESSX-0J for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Jan 2026 11:09:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1veWqL-009xQk-2q for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Jan 2026 11:09:18 +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.96) (envelope-from ) id 1veWqL-009xQc-0V for pgsql-hackers@lists.postgresql.org; Sat, 10 Jan 2026 11:09:18 +0000 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1veWqJ-005E0Q-09 for pgsql-hackers@lists.postgresql.org; Sat, 10 Jan 2026 11:09:16 +0000 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-64baaa754c6so6901752a12.3 for ; Sat, 10 Jan 2026 03:09:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1768043353; x=1768648153; darn=lists.postgresql.org; h=in-reply-to:references:from:to:subject:message-id:date:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=bK6ZEAETc1JiXEqR2zbWTL0i+LHRpUThERupBDy3i08=; b=gjZZanunqOeBqKTHMltdpC5Y7KvUFJBvvnVqu9l8UELN3J1dVlr3BH4FrHcRgmboQ0 xDferm4MY2fsfjo0pOpJccVnHWs1LpEs592YFb/VBmh0QZ9HBZziXGdFGKSLuO+AgDS3 zbROFDXhRacI+X0HHIxNvLxOQStG1GVvMZhl8YVhI+QuoORHkd+ILpJ4CTkaA4FdQrTc HxkvZp1sPkncb9EBeGwVbObBcl0yFOJ2NQbOU2MPNSk2H45wrS6FfndL79zs5MwtMQ+V kXwxszi1wXUWTqB67GG8gVRMWCpj4F70c/nRi6hfYflufqE1MEa1043bT7GozqYBRSt6 3s3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768043353; x=1768648153; h=in-reply-to:references:from:to:subject:message-id:date:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bK6ZEAETc1JiXEqR2zbWTL0i+LHRpUThERupBDy3i08=; b=Lj6TufTk6EEldFHGsBuZIgh3ySxLKDIXlNP+v99wwVo/RcwJwPzDHjc24udustYVP5 MxPqNLHfQdatPxOfap8UYY4COKZO5uIFTxoI7WbZbcRZFYs13Umu9z0hH/F5MQ/3N41W 2ruT9Kcp0fFBM946EjdDl41Nt/yFCZ0WJ0pb79CHd2eahaQJ+gvDkyeS5v5xHcQaGgMd ZBFkwPDz3f9SU1AN9i6BWsnCslWkCOqC8AKsbDwBZxt34SKPb/sdY64OHSeIXTjSg4gF epApWUpTuksdIcJuR0TbtgFDwLoXNYJhZK+kXPr07pyqvY8OpRdAKbNF3QS2jTar8pF3 oW3w== X-Forwarded-Encrypted: i=1; AJvYcCVy64BlBeQVaKnWEpvfcc5RvSBM/TZ7Eg/Smk5puy7qFrGsNnHNIoxxgHDYH1AdpwgxhgxGSlZJJa+8c82H@lists.postgresql.org X-Gm-Message-State: AOJu0Ywywuegj1Xa1C3Vff38atn5ElyhGcJJjY3JLpko6sWZlWsHq7Lr RFYmfi3KS5bAgOfSBBWv6oM1NHAfkcVGAyh/voyV2GgeVJtIPer3TNyZMN/DRnNSDNg= X-Gm-Gg: AY/fxX5PE9LlNgA0ShPlIoy4zb40vZZBAiTg0k0rojSze4+hpUaff9Qf0uP0UfmNxkN Q6yJchnTlp8Z++uj0Oc+IoV0EuSQEe6EoYux1d174JS8nibJQfaJf+Cf3YPdJyWl6sCpjEwVl3K DQDAFwOuWt6bdNO7VEYRSUweqtcH1DVfiCXGukkC6ms8rCYF6FUNL1d4uWT/hAHlYXwlkzRWmCA /xfAR7OAtoLcZGuhdUr0I8/dVdCDVBH177y7ejBCgR12t4LvaDtTqxXattdU90Egdo4Te8fr80E XvAWIE8faUtl+AVv/aFypbdO56RwVOHspvGEOyTZGQNrliW+ySP7/T7IXRqQK7UqySrLqq12cKV MVxrPMHewsGUD/oaUkuNmgO4yeVn3fSVbRQMjVrDLC38MtUxtJTRIMXhCwNoJGk3XrfN9GunE8E nhnAfhdEA/1l3+zjK9G55SICWd6IsZKtcb3cY= X-Google-Smtp-Source: AGHT+IFfBk033A+xzjPTV6JP12qDTqEkkeMFBYHLJ7wjYb+OCAVlCJfsMCA9pp8EnVeby5z5GIbqzg== X-Received: by 2002:a17:907:2da6:b0:b72:134a:48c8 with SMTP id a640c23a62f3a-b8445232b14mr1209526766b.14.1768043353112; Sat, 10 Jan 2026 03:09:13 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b842a4d0290sm1377418966b.32.2026.01.10.03.09.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 10 Jan 2026 03:09:12 -0800 (PST) Content-Type: multipart/mixed; boundary=56bf29aa534d45398c9824654b5a1095e7c78275f30049c1e71bf62f8cd9 Mime-Version: 1.0 Date: Sat, 10 Jan 2026 12:09:10 +0100 Message-Id: Subject: Re: Make copyObject work in C++ To: "Peter Eisentraut" , "PostgreSQL Hackers" , "Thomas Munro" From: "Jelte Fennema-Nio" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <4d8b9e53-3f37-43f0-a4aa-5bda9c7961b3@eisentraut.org> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --56bf29aa534d45398c9824654b5a1095e7c78275f30049c1e71bf62f8cd9 Content-Type: multipart/alternative; boundary=6c7458ae42dda5c40feeebb4afa2d90ceda413ea6e6cba5377ca0c564153 --6c7458ae42dda5c40feeebb4afa2d90ceda413ea6e6cba5377ca0c564153 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Sat Jan 3, 2026 at 10:32 AM CET, Jelte Fennema-Nio wrote: > Attached is a patchset that does that. It required a few more fixes to > make the extension compile on MSVC too. Rebased after Peter merged the C++ improvements from the other thread. --6c7458ae42dda5c40feeebb4afa2d90ceda413ea6e6cba5377ca0c564153-- --56bf29aa534d45398c9824654b5a1095e7c78275f30049c1e71bf62f8cd9 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v5-0001-Make-copyObject-work-in-C.patch Content-Type: text/x-patch; charset=utf-8; name=v5-0001-Make-copyObject-work-in-C.patch RnJvbSBiNDZiNmQ1NDU1M2UwMDhkYjgwM2JiYzNjZWVhYzQ4OTJlYWIwOTljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBGcmksIDUgRGVjIDIwMjUgMTU6Mzc6NTkgKzAxMDAKU3ViamVjdDogW1BBVENIIHY1 IDEvNF0gTWFrZSBjb3B5T2JqZWN0IHdvcmsgaW4gQysrCgpDYWxsaW5nIGNvcHlPYmplY3QgaW4g QysrIHdpdGhvdXQgR05VIGV4dGVuc2lvbnMgZmFpbHMgd2l0aCBhbiBlcnJvcgpsaWtlIHRoaXM6 CgplcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAndHlwZW9mJzsgZGlkIHlvdSBt ZWFuICd0eXBlaWQnCgpUaGlzIGlzIGR1ZSB0byB0aGUgQyBjb21waWxlciBzdXBwb3J0aW5nIHVz ZWQgdG8gY29tcGlsZSBwb3N0Z3JlcwpzdXBwb3J0aW5nIHR5cGVvZiwgYnV0IHRoYXQgZnVuY3Rp b24gYWN0dWFsbHkgbm90IGJlaW5nIHByZXNlbnQgaW4gdGhlCkMrKyBjb21waWxlci4gVGhpcyBm aXhlcyB0aGF0IGJ5IGRlZmluaW5nIHBnX2V4cHJ0eXBlIHdoaWNoIG1hcHMgdG8KdHlwZW9mIG9y IGRlY2x0eXBlIGRlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIuIFdoaWxlIHBnX3R5cGVvZiB3b3Vs ZCBoYXZlCmJlZW4gYSBtb3JlIG5hdHVyYWwgbmFtZSwgdGhhdCBuYW1lIGlzIGFscmVhZHkgdGFr ZW4gaW4gb3VyIGNvZGViYXNlIGFzCnRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcGdfdHlwZW9m IFVERi4KLS0tCiBzcmMvaW5jbHVkZS9jLmggICAgICAgICAgIHwgMTMgKysrKysrKysrKysrKwog c3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaCB8ICA0ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTUg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j LmggYi9zcmMvaW5jbHVkZS9jLmgKaW5kZXggMzM1YWYzMzUyZDEuLmIxN2NjMTIwM2IxIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jLmgKKysrIGIvc3JjL2luY2x1ZGUvYy5oCkBAIC00MTgsNiAr NDE4LDE5IEBACiAjZGVmaW5lIHVubGlrZWx5KHgpICgoeCkgIT0gMCkKICNlbmRpZgogCisvKgor ICogcGdfZXhwcnR5cGUKKyAqCQlHZXQgdGhlIHR5cGUgb2YgYW4gZXhwcmVzc2lvbiBhdCBjb21w aWxlIHRpbWUuCisgKgorICogSW4gQysrIHdlIHVzZSBkZWNsdHlwZSBzaW5jZSB0eXBlb2YgaXMg bm90IHN0YW5kYXJkIEMrKywgd2hpbGUgaW4gQyB3ZSB1c2UKKyAqIHR5cGVvZiB3aGVuIGF2YWls YWJsZS4KKyAqLworI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjZGVmaW5lIHBnX2V4cHJ0eXBl KHgpIGRlY2x0eXBlKHgpCisjZWxpZiBkZWZpbmVkKEhBVkVfVFlQRU9GKQorI2RlZmluZSBwZ19l eHBydHlwZSh4KSB0eXBlb2YoeCkKKyNlbmRpZgorCiAvKgogICogQ3BwQXNTdHJpbmcKICAqCQlD b252ZXJ0IHRoZSBhcmd1bWVudCB0byBhIHN0cmluZywgdXNpbmcgdGhlIEMgcHJlcHJvY2Vzc29y LgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL25vZGVzLmgKaW5kZXggYjZhZDI4NjE4YWIuLmY1ZTE3ZTY3MGI3IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmgK QEAgLTIyNiw4ICsyMjYsOCBAQCBleHRlcm4gaW50MTYgKnJlYWRBdHRyTnVtYmVyQ29scyhpbnQg bnVtQ29scyk7CiBleHRlcm4gdm9pZCAqY29weU9iamVjdEltcGwoY29uc3Qgdm9pZCAqZnJvbSk7 CiAKIC8qIGNhc3QgcmVzdWx0IGJhY2sgdG8gYXJndW1lbnQgdHlwZSwgaWYgc3VwcG9ydGVkIGJ5 IGNvbXBpbGVyICovCi0jaWZkZWYgSEFWRV9UWVBFT0YKLSNkZWZpbmUgY29weU9iamVjdChvYmop ICgodHlwZW9mKG9iaikpIGNvcHlPYmplY3RJbXBsKG9iaikpCisjaWZkZWYgcGdfZXhwcnR5cGUK KyNkZWZpbmUgY29weU9iamVjdChvYmopICgocGdfZXhwcnR5cGUob2JqKSkgY29weU9iamVjdElt cGwob2JqKSkKICNlbHNlCiAjZGVmaW5lIGNvcHlPYmplY3Qob2JqKSBjb3B5T2JqZWN0SW1wbChv YmopCiAjZW5kaWYKCmJhc2UtY29tbWl0OiBlNWE1ZTBhOTA3NTBkNjY1Y2FiNDE3MzIyYjlmODVj ODA2NDMwZDg1Ci0tIAoyLjUyLjAKCg== --56bf29aa534d45398c9824654b5a1095e7c78275f30049c1e71bf62f8cd9 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v5-0002-Use-pg_exprtype-instead-of-typeof.patch Content-Type: text/x-patch; charset=utf-8; name=v5-0002-Use-pg_exprtype-instead-of-typeof.patch RnJvbSA3NDA4OTVlOGI4ZmI2N2UyNDE4ZDljY2ViNDA3YmFhODA1NjgxNGI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBNb24sIDggRGVjIDIwMjUgMDg6MTM6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIHY1 IDIvNF0gVXNlIHBnX2V4cHJ0eXBlIGluc3RlYWQgb2YgdHlwZW9mCgpUaGUgcHJldmlvdXMgY29t bWl0IGludHJvZHVjZWQgcGdfZXhwcnR5cGUuIFRoaXMgc3RhcnRzIHVzaW5nIHRoYXQgaW4gYQpm ZXcgbW9yZSBwbGFjZXMuCi0tLQogc3JjL2luY2x1ZGUvYy5oICAgICAgICAgICAgfCA4ICsrKyst LS0tCiBzcmMvaW5jbHVkZS91dGlscy9yZWxwdHIuaCB8IDggKysrKy0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaAppbmRleCBiMTdjYzEyMDNiMS4uMzkxMDU2NzFl NmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAg LTk4NCwxMCArOTg0LDEwIEBAIHBnX25vcmV0dXJuIGV4dGVybiB2b2lkIEV4Y2VwdGlvbmFsQ29u ZGl0aW9uKGNvbnN0IGNoYXIgKmNvbmRpdGlvbk5hbWUsCiAgKi8KICNpZmRlZiBIQVZFX19CVUlM VElOX1RZUEVTX0NPTVBBVElCTEVfUAogI2RlZmluZSBBc3NlcnRWYXJpYWJsZUlzT2ZUeXBlKHZh cm5hbWUsIHR5cGVuYW1lKSBcCi0JU3RhdGljQXNzZXJ0U3RtdChfX2J1aWx0aW5fdHlwZXNfY29t cGF0aWJsZV9wKF9fdHlwZW9mX18odmFybmFtZSksIHR5cGVuYW1lKSwgXAorCVN0YXRpY0Fzc2Vy dFN0bXQoX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcChwZ19leHBydHlwZSh2YXJuYW1lKSwg dHlwZW5hbWUpLCBcCiAJQ3BwQXNTdHJpbmcodmFybmFtZSkgIiBkb2VzIG5vdCBoYXZlIHR5cGUg IiBDcHBBc1N0cmluZyh0eXBlbmFtZSkpCiAjZGVmaW5lIEFzc2VydFZhcmlhYmxlSXNPZlR5cGVN YWNybyh2YXJuYW1lLCB0eXBlbmFtZSkgXAotCShTdGF0aWNBc3NlcnRFeHByKF9fYnVpbHRpbl90 eXBlc19jb21wYXRpYmxlX3AoX190eXBlb2ZfXyh2YXJuYW1lKSwgdHlwZW5hbWUpLCBcCisJKFN0 YXRpY0Fzc2VydEV4cHIoX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcChwZ19leHBydHlwZSh2 YXJuYW1lKSwgdHlwZW5hbWUpLCBcCiAJIENwcEFzU3RyaW5nKHZhcm5hbWUpICIgZG9lcyBub3Qg aGF2ZSB0eXBlICIgQ3BwQXNTdHJpbmcodHlwZW5hbWUpKSkKICNlbHNlCQkJCQkJCS8qICFIQVZF X19CVUlMVElOX1RZUEVTX0NPTVBBVElCTEVfUCAqLwogI2RlZmluZSBBc3NlcnRWYXJpYWJsZUlz T2ZUeXBlKHZhcm5hbWUsIHR5cGVuYW1lKSBcCkBAIC0xMjM1LDExICsxMjM1LDExIEBAIHR5cGVk ZWYgc3RydWN0IFBHQWxpZ25lZFhMb2dCbG9jawogI2RlZmluZSB1bnZvbGF0aXplKHVuZGVybHlp bmdfdHlwZSwgZXhwcikgY29uc3RfY2FzdDx1bmRlcmx5aW5nX3R5cGU+KGV4cHIpCiAjZWxpZiBk ZWZpbmVkKEhBVkVfX0JVSUxUSU5fVFlQRVNfQ09NUEFUSUJMRV9QKQogI2RlZmluZSB1bmNvbnN0 aWZ5KHVuZGVybHlpbmdfdHlwZSwgZXhwcikgXAotCShTdGF0aWNBc3NlcnRFeHByKF9fYnVpbHRp bl90eXBlc19jb21wYXRpYmxlX3AoX190eXBlb2YoZXhwciksIGNvbnN0IHVuZGVybHlpbmdfdHlw ZSksIFwKKwkoU3RhdGljQXNzZXJ0RXhwcihfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHBn X2V4cHJ0eXBlKGV4cHIpLCBjb25zdCB1bmRlcmx5aW5nX3R5cGUpLCBcCiAJCQkJCSAgIndyb25n IGNhc3QiKSwgXAogCSAodW5kZXJseWluZ190eXBlKSAoZXhwcikpCiAjZGVmaW5lIHVudm9sYXRp emUodW5kZXJseWluZ190eXBlLCBleHByKSBcCi0JKFN0YXRpY0Fzc2VydEV4cHIoX19idWlsdGlu X3R5cGVzX2NvbXBhdGlibGVfcChfX3R5cGVvZihleHByKSwgdm9sYXRpbGUgdW5kZXJseWluZ190 eXBlKSwgXAorCShTdGF0aWNBc3NlcnRFeHByKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3Ao cGdfZXhwcnR5cGUoZXhwciksIHZvbGF0aWxlIHVuZGVybHlpbmdfdHlwZSksIFwKIAkJCQkJICAi d3JvbmcgY2FzdCIpLCBcCiAJICh1bmRlcmx5aW5nX3R5cGUpIChleHByKSkKICNlbHNlCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yZWxwdHIuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3Jl bHB0ci5oCmluZGV4IGFlYjE3ZmEyNGE1Li4zZTAzZDM0ZDlhZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdXRpbHMvcmVscHRyLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVscHRyLmgKQEAg LTM4LDEwICszOCwxMCBAQAogI2RlZmluZSByZWxwdHJfZGVjbGFyZSh0eXBlLCByZWxwdHJ0eXBl KSBcCiAJdHlwZWRlZiByZWxwdHIodHlwZSkgcmVscHRydHlwZQogCi0jaWZkZWYgSEFWRV9UWVBF T0YKKyNpZmRlZiBwZ19leHBydHlwZQogI2RlZmluZSByZWxwdHJfYWNjZXNzKGJhc2UsIHJwKSBc CiAJKEFzc2VydFZhcmlhYmxlSXNPZlR5cGVNYWNybyhiYXNlLCBjaGFyICopLCBcCi0JICh0eXBl b2YoKHJwKS5yZWxwdHJfdHlwZSkpICgocnApLnJlbHB0cl9vZmYgPT0gMCA/IE5VTEwgOiBcCisJ IChwZ19leHBydHlwZSgocnApLnJlbHB0cl90eXBlKSkgKChycCkucmVscHRyX29mZiA9PSAwID8g TlVMTCA6IFwKIAkJKGJhc2UpICsgKHJwKS5yZWxwdHJfb2ZmIC0gMSkpCiAjZWxzZQogI2RlZmlu ZSByZWxwdHJfYWNjZXNzKGJhc2UsIHJwKSBcCkBAIC02OCwxMCArNjgsMTAgQEAgcmVscHRyX3N0 b3JlX2V2YWwoY2hhciAqYmFzZSwgY2hhciAqdmFsKQogCX0KIH0KIAotI2lmZGVmIEhBVkVfVFlQ RU9GCisjaWZkZWYgcGdfZXhwcnR5cGUKICNkZWZpbmUgcmVscHRyX3N0b3JlKGJhc2UsIHJwLCB2 YWwpIFwKIAkoQXNzZXJ0VmFyaWFibGVJc09mVHlwZU1hY3JvKGJhc2UsIGNoYXIgKiksIFwKLQkg QXNzZXJ0VmFyaWFibGVJc09mVHlwZU1hY3JvKHZhbCwgdHlwZW9mKChycCkucmVscHRyX3R5cGUp KSwgXAorCSBBc3NlcnRWYXJpYWJsZUlzT2ZUeXBlTWFjcm8odmFsLCBwZ19leHBydHlwZSgocnAp LnJlbHB0cl90eXBlKSksIFwKIAkgKHJwKS5yZWxwdHJfb2ZmID0gcmVscHRyX3N0b3JlX2V2YWwo KGJhc2UpLCAoY2hhciAqKSAodmFsKSkpCiAjZWxzZQogI2RlZmluZSByZWxwdHJfc3RvcmUoYmFz ZSwgcnAsIHZhbCkgXAotLSAKMi41Mi4wCgo= --56bf29aa534d45398c9824654b5a1095e7c78275f30049c1e71bf62f8cd9 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v5-0003-Revert-Replace-pg_restrict-by-standard-restrict.patch Content-Type: text/x-patch; charset=utf-8; name=v5-0003-Revert-Replace-pg_restrict-by-standard-restrict.patch RnJvbSA1ZmJjN2RjODlkMzA5ZjcwOTRhODFlNzc3MDNlYzBiNTMzOWJlN2Y3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTYXQsIDMgSmFuIDIwMjYgMDA6NDM6NTkgKzAxMDAKU3ViamVjdDogW1BBVENIIHY1 IDMvNF0gUmV2ZXJ0ICJSZXBsYWNlIHBnX3Jlc3RyaWN0IGJ5IHN0YW5kYXJkIHJlc3RyaWN0IgoK VGhpcyByZXZlcnRzIGNvbW1pdCBmMGYyYzBjMWFlZjk1NzU3YzRlN2YxNDRkNTU3N2UyYjBkODE0 Mjc5LgoKSXQgdHVybnMgb3V0IHRoYXQgdGhpcyBjb21wbGV0ZWx5IGJyb2tlIGNvbXBpbGluZyBD KysgZXh0ZW5zaW9ucyBvbgpNU1ZDLiBUaGUgcmVzdHJpY3QgcmVwbGFjZW1lbnQgd2l0aCBfX3Jl c3RyaWN0IHdvdWxkIGJyZWFrIHVzYWdlcyBvZgpfX2RlY2x0eXBlKHJlc3RyaWN0KSBpbiBzdGFu ZGFyZCBsaWJyYXJ5IGhlYWRlcnMsIHJlc3VsdGluZyBpbiBlcnJvcnMKbGlrZSB0aGlzOgoKQzpc UHJvZ3JhbSBGaWxlcyAoeDg2KVxXaW5kb3dzIEtpdHNcMTBcaW5jbHVkZVwxMC4wLjIyNjIxLjBc dWNydFxjb3JlY3J0X21hbGxvYy5oKDU4KTogZXJyb3IgQzI0ODU6ICdfX3Jlc3RyaWN0JzogdW5y ZWNvZ25pemVkIGV4dGVuZGVkIGF0dHJpYnV0ZQotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysrKysrKysrKystLS0tCiBjb25maWd1cmUuYWMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKysrKysrKy0tLS0KIG1lc29u LmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKy0tLS0tLQog c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMgfCAgNCArKy0tCiBzcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuaCB8ICA0ICsrLS0KIHNyYy9jb21t b24vbG9nZ2luZy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogc3JjL2NvbW1vbi9z dHJpbmcuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvYy5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiAtLS0tLS0KIHNyYy9pbmNsdWRlL2NvbW1vbi9s b2dnaW5nLmggICAgICAgICAgICAgIHwgIDQgKystLQogc3JjL2luY2x1ZGUvY29tbW9uL3N0cmlu Zy5oICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvbGlicHEvcHFmb3JtYXQuaCAg ICAgICAgICAgICAgfCAxMiArKysrKystLS0tLS0KIHNyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmlu ICAgICAgICAgICAgICAgIHwgIDQgKysrKwogMTIgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9u cygrKSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJl CmluZGV4IDA0NWM5MTM4NjVkLi41NzVmNGYwNTI0NSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisr KyBiL2NvbmZpZ3VyZQpAQCAtMTUxMzEsMTAgKzE1MTMxLDEwIEBAIF9BQ0VPRgogZmkKIAogCi0j IEV2ZW4gdGhvdWdoIHJlc3RyaWN0IGlzIGluIEM5OSBhbmQgc2hvdWxkIGJlIHN1cHBvcnRlZCBi eSBhbGwKLSMgc3VwcG9ydGVkIGNvbXBpbGVycywgdGhpcyB0ZXN0IGlzIHVzZWZ1bCBiZWNhdXNl IGl0IHdpbGwgcHJlZmVyIGEKLSMgc3BlbGxpbmcgdGhhdCBhbHNvIHdvcmtzIGluIEMrKyAob2Z0 ZW4gX19yZXN0cmljdCkuICAocmVzdHJpY3QgaXMKLSMgbm90IHBhcnQgb2YgdGhlIEMrKyBzdGFu ZGFyZC4pCisjIE1TVkMgZG9lc24ndCBjb3BlIHdlbGwgd2l0aCBkZWZpbmluZyByZXN0cmljdCB0 byBfX3Jlc3RyaWN0LCB0aGUKKyMgc3BlbGxpbmcgaXQgdW5kZXJzdGFuZHMsIGJlY2F1c2UgaXQg Y29uZmxpY3RzIHdpdGgKKyMgX19kZWNsc3BlYyhyZXN0cmljdCkuIFRoZXJlZm9yZSB3ZSBkZWZp bmUgcGdfcmVzdHJpY3QgdG8gdGhlCisjIGFwcHJvcHJpYXRlIGRlZmluaXRpb24sIHdoaWNoIHBy ZXN1bWFibHkgd29uJ3QgY29uZmxpY3QuCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGZvciBDL0MrKyByZXN0cmljdCBrZXl3b3JkIiA+JjUKICRhc19l Y2hvX24gImNoZWNraW5nIGZvciBDL0MrKyByZXN0cmljdCBrZXl3b3JkLi4uICIgPiY2OyB9CiBp ZiAke2FjX2N2X2NfcmVzdHJpY3QrOn0gZmFsc2U7IHRoZW4gOgpAQCAtMTUxODEsNiArMTUxODEs MTYgQEAgX0FDRU9GCiAgOzsKICBlc2FjCiAKK2lmIHRlc3QgIiRhY19jdl9jX3Jlc3RyaWN0IiA9 ICJubyI7IHRoZW4KKyAgcGdfcmVzdHJpY3Q9IiIKK2Vsc2UKKyAgcGdfcmVzdHJpY3Q9IiRhY19j dl9jX3Jlc3RyaWN0IgorZmkKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBw Z19yZXN0cmljdCAkcGdfcmVzdHJpY3QKK19BQ0VPRgorCiAKIGFjX2ZuX2NfY2hlY2tfdHlwZSAi JExJTkVOTyIgInN0cnVjdCBvcHRpb24iICJhY19jdl90eXBlX3N0cnVjdF9vcHRpb24iICIjaWZk ZWYgSEFWRV9HRVRPUFRfSAogI2luY2x1ZGUgPGdldG9wdC5oPgpkaWZmIC0tZ2l0IGEvY29uZmln dXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDE0NTE5N2U2YmQ2Li5jNzdjMjYzOWVjMSAxMDA2 NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMTY4NywxMSArMTY4 NywxOSBAQCBQR0FDX1VOSU9OX1NFTVVOCiBBQ19DSEVDS19UWVBFUyhzb2NrbGVuX3QsIFtdLCBb XSwgWyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+XSkKIFBHQUNfU1RSVUNUX1NPQ0tBRERSX1NBX0xF TgogCi0jIEV2ZW4gdGhvdWdoIHJlc3RyaWN0IGlzIGluIEM5OSBhbmQgc2hvdWxkIGJlIHN1cHBv cnRlZCBieSBhbGwKLSMgc3VwcG9ydGVkIGNvbXBpbGVycywgdGhpcyB0ZXN0IGlzIHVzZWZ1bCBi ZWNhdXNlIGl0IHdpbGwgcHJlZmVyIGEKLSMgc3BlbGxpbmcgdGhhdCBhbHNvIHdvcmtzIGluIEMr KyAob2Z0ZW4gX19yZXN0cmljdCkuICAocmVzdHJpY3QgaXMKLSMgbm90IHBhcnQgb2YgdGhlIEMr KyBzdGFuZGFyZC4pCisjIE1TVkMgZG9lc24ndCBjb3BlIHdlbGwgd2l0aCBkZWZpbmluZyByZXN0 cmljdCB0byBfX3Jlc3RyaWN0LCB0aGUKKyMgc3BlbGxpbmcgaXQgdW5kZXJzdGFuZHMsIGJlY2F1 c2UgaXQgY29uZmxpY3RzIHdpdGgKKyMgX19kZWNsc3BlYyhyZXN0cmljdCkuIFRoZXJlZm9yZSB3 ZSBkZWZpbmUgcGdfcmVzdHJpY3QgdG8gdGhlCisjIGFwcHJvcHJpYXRlIGRlZmluaXRpb24sIHdo aWNoIHByZXN1bWFibHkgd29uJ3QgY29uZmxpY3QuCiBBQ19DX1JFU1RSSUNUCitpZiB0ZXN0ICIk YWNfY3ZfY19yZXN0cmljdCIgPSAibm8iOyB0aGVuCisgIHBnX3Jlc3RyaWN0PSIiCitlbHNlCisg IHBnX3Jlc3RyaWN0PSIkYWNfY3ZfY19yZXN0cmljdCIKK2ZpCitBQ19ERUZJTkVfVU5RVU9URUQo W3BnX3Jlc3RyaWN0XSwgWyRwZ19yZXN0cmljdF0sCitbRGVmaW5lIHRvIGtleXdvcmQgdG8gdXNl IGZvciBDOTkgcmVzdHJpY3Qgc3VwcG9ydCwgb3IgdG8gbm90aGluZyBpZiBub3QKK3N1cHBvcnRl ZF0pCiAKIEFDX0NIRUNLX1RZUEVTKFtzdHJ1Y3Qgb3B0aW9uXSwgW10sIFtdLAogWyNpZmRlZiBI QVZFX0dFVE9QVF9ICmRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCmluZGV4 IDU1NWM5NDc5NmM2Li41NWRmMWRkMzc5NyAxMDA2NDQKLS0tIGEvbWVzb24uYnVpbGQKKysrIGIv bWVzb24uYnVpbGQKQEAgLTI4MzMsMTIgKzI4MzMsMTMgQEAgaW50IG1haW4odm9pZCkKIGVuZGZv cmVhY2gKIAogCi0jIEV2ZW4gdGhvdWdoIHJlc3RyaWN0IGlzIGluIEM5OSBhbmQgc2hvdWxkIGJl IHN1cHBvcnRlZCBieSBhbGwKLSMgc3VwcG9ydGVkIGNvbXBpbGVycywgdGhpcyBpbmRpcmVjdGlv biBpcyB1c2VmdWwgYmVjYXVzZSBfX3Jlc3RyaWN0Ci0jIGFsc28gd29ya3MgaW4gQysrIGluIGFs bCBzdXBwb3J0ZWQgY29tcGlsZXJzLiAgKElmIG5vdCwgdGhlbiB3ZQotIyBtaWdodCBoYXZlIHRv IHdyaXRlIGEgcmVhbCB0ZXN0LikgIChyZXN0cmljdCBpcyBub3QgcGFydCBvZiB0aGUgQysrCi0j IHN0YW5kYXJkLikKLWNkYXRhLnNldCgncmVzdHJpY3QnLCAnX19yZXN0cmljdCcpCisjIE1TVkMg ZG9lc24ndCBjb3BlIHdlbGwgd2l0aCBkZWZpbmluZyByZXN0cmljdCB0byBfX3Jlc3RyaWN0LCB0 aGUgc3BlbGxpbmcgaXQKKyMgdW5kZXJzdGFuZHMsIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgg X19kZWNsc3BlYyhyZXN0cmljdCkuIFRoZXJlZm9yZSB3ZQorIyBkZWZpbmUgcGdfcmVzdHJpY3Qg dG8gdGhlIGFwcHJvcHJpYXRlIGRlZmluaXRpb24sIHdoaWNoIHByZXN1bWFibHkgd29uJ3QKKyMg Y29uZmxpY3QuCisjCisjIFdlIGFzc3VtZSBDOTkgc3VwcG9ydCwgc28gd2UgZG9uJ3QgbmVlZCB0 byBtYWtlIHRoaXMgY29uZGl0aW9uYWwuCitjZGF0YS5zZXQoJ3BnX3Jlc3RyaWN0JywgJ19fcmVz dHJpY3QnKQogCiAKICMgTW9zdCBsaWJyYXJpZXMgYXJlIGluY2x1ZGVkIG9ubHkgaWYgdGhleSBk ZW1vbnN0cmFibHkgcHJvdmlkZSBhIGZ1bmN0aW9uIHdlCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BnX3ZlcmlmeWJhY2t1cC5jCmluZGV4IDQ1NmUwMzc1ZTEzLi5mOWYyZDQ1N2YyZiAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKQEAgLTEyMjgsNyArMTIyOCw3 IEBAIHBhcnNlX3JlcXVpcmVkX3dhbCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpw Z193YWxkdW1wX3BhdGgsCiAgKiBjb250ZXh0IHNheXMgd2Ugc2hvdWxkLgogICovCiB2b2lkCi1y ZXBvcnRfYmFja3VwX2Vycm9yKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIg KnJlc3RyaWN0IGZtdCwuLi4pCityZXBvcnRfYmFja3VwX2Vycm9yKHZlcmlmaWVyX2NvbnRleHQg KmNvbnRleHQsIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCiB7CiAJdmFfbGlzdAkJ YXA7CiAKQEAgLTEyNDUsNyArMTI0NSw3IEBAIHJlcG9ydF9iYWNrdXBfZXJyb3IodmVyaWZpZXJf Y29udGV4dCAqY29udGV4dCwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm10LC4uLikKICAqIFJlcG9y dCBhIGZhdGFsIGVycm9yIGFuZCBleGl0CiAgKi8KIHZvaWQKLXJlcG9ydF9mYXRhbF9lcnJvcihj b25zdCBjaGFyICpyZXN0cmljdCBmbXQsLi4uKQorcmVwb3J0X2ZhdGFsX2Vycm9yKGNvbnN0IGNo YXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5oIGIvc3JjL2Jpbi9wZ192 ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmgKaW5kZXggMWNkNzZhODgyNmIuLmE5OWQ5YmZk NTgxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAu aAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuaApAQCAtOTYs OSArOTYsOSBAQCB0eXBlZGVmIHN0cnVjdCB2ZXJpZmllcl9jb250ZXh0CiB9IHZlcmlmaWVyX2Nv bnRleHQ7CiAKIGV4dGVybiB2b2lkIHJlcG9ydF9iYWNrdXBfZXJyb3IodmVyaWZpZXJfY29udGV4 dCAqY29udGV4dCwKLQkJCQkJCQkJY29uc3QgY2hhciAqcmVzdHJpY3QgZm10LC4uLikKKwkJCQkJ CQkJY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgMyk7Ci1wZ19ub3JldHVybiBleHRlcm4gdm9pZCByZXBvcnRfZmF0YWxfZXJyb3IoY29u c3QgY2hhciAqcmVzdHJpY3QgZm10LC4uLikKK3BnX25vcmV0dXJuIGV4dGVybiB2b2lkIHJlcG9y dF9mYXRhbF9lcnJvcihjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQogCQkJcGdfYXR0 cmlidXRlX3ByaW50ZigxLCAyKTsKIGV4dGVybiBib29sIHNob3VsZF9pZ25vcmVfcmVscGF0aCh2 ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkgIGNvbnN0IGNoYXIgKnJlbHBhdGgp OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9sb2dnaW5nLmMgYi9zcmMvY29tbW9uL2xvZ2dpbmcu YwppbmRleCAyMTRhODdmMjE4OS4uNTIwNjk0OWU1ZDggMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24v bG9nZ2luZy5jCisrKyBiL3NyYy9jb21tb24vbG9nZ2luZy5jCkBAIC0yMDYsNyArMjA2LDcgQEAg cGdfbG9nZ2luZ19zZXRfbG9jdXNfY2FsbGJhY2sodm9pZCAoKmNiKSAoY29uc3QgY2hhciAqKmZp bGVuYW1lLCB1aW50NjQgKmxpbmVubykKIAogdm9pZAogcGdfbG9nX2dlbmVyaWMoZW51bSBwZ19s b2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKLQkJCSAgIGNvbnN0IGNoYXIg KnJlc3RyaWN0IGZtdCwuLi4pCisJCQkgICBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4u KQogewogCXZhX2xpc3QJCWFwOwogCkBAIC0yMTcsNyArMjE3LDcgQEAgcGdfbG9nX2dlbmVyaWMo ZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKIAogdm9pZAog cGdfbG9nX2dlbmVyaWNfdihlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwgZW51bSBwZ19sb2dfcGFy dCBwYXJ0LAotCQkJCSBjb25zdCBjaGFyICpyZXN0cmljdCBmbXQsIHZhX2xpc3QgYXApCisJCQkJ IGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwgdmFfbGlzdCBhcCkKIHsKIAlpbnQJCQlzYXZl X2Vycm5vID0gZXJybm87CiAJY29uc3QgY2hhciAqZmlsZW5hbWUgPSBOVUxMOwpkaWZmIC0tZ2l0 IGEvc3JjL2NvbW1vbi9zdHJpbmcuYyBiL3NyYy9jb21tb24vc3RyaW5nLmMKaW5kZXggZmZmMTRk M2ZhY2YuLjQxYzc0YTE1MDJkIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL3N0cmluZy5jCisrKyBi L3NyYy9jb21tb24vc3RyaW5nLmMKQEAgLTQ3LDcgKzQ3LDcgQEAgcGdfc3RyX2VuZHN3aXRoKGNv bnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhciAqZW5kKQogICogc3RydG9pbnQgLS0tIGp1c3QgbGlr ZSBzdHJ0b2wsIGJ1dCByZXR1cm5zIGludCBub3QgbG9uZwogICovCiBpbnQKLXN0cnRvaW50KGNv bnN0IGNoYXIgKnJlc3RyaWN0IHN0ciwgY2hhciAqKnJlc3RyaWN0IGVuZHB0ciwgaW50IGJhc2Up CitzdHJ0b2ludChjb25zdCBjaGFyICpwZ19yZXN0cmljdCBzdHIsIGNoYXIgKipwZ19yZXN0cmlj dCBlbmRwdHIsIGludCBiYXNlKQogewogCWxvbmcJCXZhbDsKIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYy5oIGIvc3JjL2luY2x1ZGUvYy5oCmluZGV4IDM5MTA1NjcxZTZjLi42NTE3M2I5ZDlm ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2MuaApAQCAt MTA4LDEyICsxMDgsNiBAQAogI2RlZmluZSBpbmxpbmUKICNlbmRpZgogCi0vKgotICogUHJldmlv dXNseSB1c2VkIFBvc3RncmVTUUwtc3BlY2lmaWMgc3BlbGxpbmcsIGZvciBiYWNrd2FyZCBjb21w YXRpYmlsaXR5Ci0gKiBmb3IgZXh0ZW5zaW9ucy4KLSAqLwotI2RlZmluZSBwZ19yZXN0cmljdCBy ZXN0cmljdAotCiAvKgogICogQXR0cmlidXRlIG1hY3JvcwogICoKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NvbW1vbi9sb2dnaW5nLmggYi9zcmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCmlu ZGV4IGI1Y2FlYzBiZmYxLi5iY2NiYTRhYzA3YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bW9uL2xvZ2dpbmcuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCkBAIC05Mywx MCArOTMsMTAgQEAgdm9pZAkJcGdfbG9nZ2luZ19zZXRfcHJlX2NhbGxiYWNrKHZvaWQgKCpjYikg KHZvaWQpKTsKIHZvaWQJCXBnX2xvZ2dpbmdfc2V0X2xvY3VzX2NhbGxiYWNrKHZvaWQgKCpjYikg KGNvbnN0IGNoYXIgKipmaWxlbmFtZSwgdWludDY0ICpsaW5lbm8pKTsKIAogdm9pZAkJcGdfbG9n X2dlbmVyaWMoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwK LQkJCQkJCSAgIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZtdCwuLi4pCisJCQkJCQkgICBjb25zdCBj aGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsK IHZvaWQJCXBnX2xvZ19nZW5lcmljX3YoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdf bG9nX3BhcnQgcGFydCwKLQkJCQkJCQkgY29uc3QgY2hhciAqcmVzdHJpY3QgZm10LCB2YV9saXN0 IGFwKQorCQkJCQkJCSBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsIHZhX2xpc3QgYXApCiAJ CQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDApOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbW9uL3N0cmluZy5oIGIvc3JjL2luY2x1ZGUvY29tbW9uL3N0cmluZy5oCmluZGV4IDVl MWJkNjFjNzEwLi4yYTdjMzFlYTc0ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbW9uL3N0 cmluZy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9zdHJpbmcuaApAQCAtMjUsNyArMjUsNyBA QCB0eXBlZGVmIHN0cnVjdCBQcm9tcHRJbnRlcnJ1cHRDb250ZXh0CiAKIC8qIGZ1bmN0aW9ucyBp biBzcmMvY29tbW9uL3N0cmluZy5jICovCiBleHRlcm4gYm9vbCBwZ19zdHJfZW5kc3dpdGgoY29u c3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICplbmQpOwotZXh0ZXJuIGludAlzdHJ0b2ludChjb25z dCBjaGFyICpyZXN0cmljdCBzdHIsIGNoYXIgKipyZXN0cmljdCBlbmRwdHIsCitleHRlcm4gaW50 CXN0cnRvaW50KGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IHN0ciwgY2hhciAqKnBnX3Jlc3RyaWN0 IGVuZHB0ciwKIAkJCQkJIGludCBiYXNlKTsKIGV4dGVybiBjaGFyICpwZ19jbGVhbl9hc2NpaShj b25zdCBjaGFyICpzdHIsIGludCBhbGxvY19mbGFncyk7CiBleHRlcm4gaW50CXBnX3N0cmlwX2Ny bGYoY2hhciAqc3RyKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL3BxZm9ybWF0Lmgg Yi9zcmMvaW5jbHVkZS9saWJwcS9wcWZvcm1hdC5oCmluZGV4IDkxMWQ5Mzk3ZjVlLi5iYzRhYjEz ODFhOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvcHFmb3JtYXQuaAorKysgYi9zcmMv aW5jbHVkZS9saWJwcS9wcWZvcm1hdC5oCkBAIC0zNCw3ICszNCw3IEBAIGV4dGVybiB2b2lkIHBx X3NlbmRmbG9hdDgoU3RyaW5nSW5mbyBidWYsIGZsb2F0OCBmKTsKICAqIEFwcGVuZCBhIFt1XWlu dDggdG8gYSBTdHJpbmdJbmZvIGJ1ZmZlciwgd2hpY2ggYWxyZWFkeSBoYXMgZW5vdWdoIHNwYWNl CiAgKiBwcmVhbGxvY2F0ZWQuCiAgKgotICogVGhlIHVzZSBvZiByZXN0cmljdCBhbGxvd3MgdGhl IGNvbXBpbGVyIHRvIG9wdGltaXplIHRoZSBjb2RlIGJhc2VkIG9uCisgKiBUaGUgdXNlIG9mIHBn X3Jlc3RyaWN0IGFsbG93cyB0aGUgY29tcGlsZXIgdG8gb3B0aW1pemUgdGhlIGNvZGUgYmFzZWQg b24KICAqIHRoZSBhc3N1bXB0aW9uIHRoYXQgYnVmLCBidWYtPmxlbiwgYnVmLT5kYXRhIGFuZCAq YnVmLT5kYXRhIGRvbid0CiAgKiBvdmVybGFwLiBXaXRob3V0IHRoZSBhbm5vdGF0aW9uIGJ1Zi0+ bGVuIGV0YyBjYW5ub3QgYmUga2VwdCBpbiBhIHJlZ2lzdGVyCiAgKiBvdmVyIHN1YnNlcXVlbnQg cHFfd3JpdGVpbnROIGNhbGxzLgpAQCAtNDMsNyArNDMsNyBAQCBleHRlcm4gdm9pZCBwcV9zZW5k ZmxvYXQ4KFN0cmluZ0luZm8gYnVmLCBmbG9hdDggZik7CiAgKiBvdmVybHkgcGlja3kgYW5kIGRl bWFuZGluZyBhICogYmVmb3JlIGEgcmVzdHJpY3QuCiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZAot cHFfd3JpdGVpbnQ4KFN0cmluZ0luZm9EYXRhICpyZXN0cmljdCBidWYsIHVpbnQ4IGkpCitwcV93 cml0ZWludDgoU3RyaW5nSW5mb0RhdGEgKnBnX3Jlc3RyaWN0IGJ1ZiwgdWludDggaSkKIHsKIAl1 aW50OAkJbmkgPSBpOwogCkBAIC01Nyw3ICs1Nyw3IEBAIHBxX3dyaXRlaW50OChTdHJpbmdJbmZv RGF0YSAqcmVzdHJpY3QgYnVmLCB1aW50OCBpKQogICogcHJlYWxsb2NhdGVkLgogICovCiBzdGF0 aWMgaW5saW5lIHZvaWQKLXBxX3dyaXRlaW50MTYoU3RyaW5nSW5mb0RhdGEgKnJlc3RyaWN0IGJ1 ZiwgdWludDE2IGkpCitwcV93cml0ZWludDE2KFN0cmluZ0luZm9EYXRhICpwZ19yZXN0cmljdCBi dWYsIHVpbnQxNiBpKQogewogCXVpbnQxNgkJbmkgPSBwZ19odG9uMTYoaSk7CiAKQEAgLTcxLDcg KzcxLDcgQEAgcHFfd3JpdGVpbnQxNihTdHJpbmdJbmZvRGF0YSAqcmVzdHJpY3QgYnVmLCB1aW50 MTYgaSkKICAqIHByZWFsbG9jYXRlZC4KICAqLwogc3RhdGljIGlubGluZSB2b2lkCi1wcV93cml0 ZWludDMyKFN0cmluZ0luZm9EYXRhICpyZXN0cmljdCBidWYsIHVpbnQzMiBpKQorcHFfd3JpdGVp bnQzMihTdHJpbmdJbmZvRGF0YSAqcGdfcmVzdHJpY3QgYnVmLCB1aW50MzIgaSkKIHsKIAl1aW50 MzIJCW5pID0gcGdfaHRvbjMyKGkpOwogCkBAIC04NSw3ICs4NSw3IEBAIHBxX3dyaXRlaW50MzIo U3RyaW5nSW5mb0RhdGEgKnJlc3RyaWN0IGJ1ZiwgdWludDMyIGkpCiAgKiBwcmVhbGxvY2F0ZWQu CiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZAotcHFfd3JpdGVpbnQ2NChTdHJpbmdJbmZvRGF0YSAq cmVzdHJpY3QgYnVmLCB1aW50NjQgaSkKK3BxX3dyaXRlaW50NjQoU3RyaW5nSW5mb0RhdGEgKnBn X3Jlc3RyaWN0IGJ1ZiwgdWludDY0IGkpCiB7CiAJdWludDY0CQluaSA9IHBnX2h0b242NChpKTsK IApAQCAtMTA1LDcgKzEwNSw3IEBAIHBxX3dyaXRlaW50NjQoU3RyaW5nSW5mb0RhdGEgKnJlc3Ry aWN0IGJ1ZiwgdWludDY0IGkpCiAgKiBzZW50IHRvIHRoZSBmcm9udGVuZC4KICAqLwogc3RhdGlj IGlubGluZSB2b2lkCi1wcV93cml0ZXN0cmluZyhTdHJpbmdJbmZvRGF0YSAqcmVzdHJpY3QgYnVm LCBjb25zdCBjaGFyICpyZXN0cmljdCBzdHIpCitwcV93cml0ZXN0cmluZyhTdHJpbmdJbmZvRGF0 YSAqcGdfcmVzdHJpY3QgYnVmLCBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBzdHIpCiB7CiAJaW50 CQkJc2xlbiA9IHN0cmxlbihzdHIpOwogCWNoYXIJICAgKnA7CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wZ19jb25maWcuaC5pbiBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCmluZGV4IDEw ZmE4NWU3OGMyLi4zMzkyNjhkYzhlZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdfY29uZmln LmguaW4KKysrIGIvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KQEAgLTc4Niw2ICs3ODYsMTAg QEAKICN1bmRlZiBpbmxpbmUKICNlbmRpZgogCisvKiBEZWZpbmUgdG8ga2V5d29yZCB0byB1c2Ug Zm9yIEM5OSByZXN0cmljdCBzdXBwb3J0LCBvciB0byBub3RoaW5nIGlmIG5vdAorICAgc3VwcG9y dGVkICovCisjdW5kZWYgcGdfcmVzdHJpY3QKKwogLyogRGVmaW5lIHRvIHRoZSBlcXVpdmFsZW50 IG9mIHRoZSBDOTkgJ3Jlc3RyaWN0JyBrZXl3b3JkLCBvciB0bwogICAgbm90aGluZyBpZiB0aGlz IGlzIG5vdCBzdXBwb3J0ZWQuICBEbyBub3QgZGVmaW5lIGlmIHJlc3RyaWN0IGlzCiAgICBzdXBw b3J0ZWQgZGlyZWN0bHkuICAqLwotLSAKMi41Mi4wCgo= --56bf29aa534d45398c9824654b5a1095e7c78275f30049c1e71bf62f8cd9 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v5-0004-tests-Add-a-test-C-extension-module.patch Content-Type: text/x-patch; charset=utf-8; name=v5-0004-tests-Add-a-test-C-extension-module.patch RnJvbSBmMGQ0YjI1ZTY3NTU1Y2Q3ZjQzY2IxN2FiN2JjZmY4NzBiZmVhNjY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBGcmksIDIgSmFuIDIwMjYgMjI6MzE6MDUgKzAxMDAKU3ViamVjdDogW1BBVENIIHY1 IDQvNF0gdGVzdHM6IEFkZCBhIHRlc3QgQysrIGV4dGVuc2lvbiBtb2R1bGUKCldoaWxlIHdlIGFs cmVhZHkgdGVzdCB0aGF0IG91ciBoZWFkZXJzIGFyZSB2YWxpZCBDKysgdXNpbmcgaGVhZGVyc2No ZWNrLAppdCB0dXJucyBvdXQgdGhhdCB0aGUgbWFjcm9zIHdlIGRlZmluZSBtaWdodCBzdGlsbCBl eHBhbmQgdG8gaW52YWxpZApDKysgY29kZS4gVGhpcyBhZGRzIGEgc21hbGwgdGVzdCBleHRlbnNp b24gdGhhdCBpcyBjb21waWxlZCB1c2luZyBDKysKd2hpY2ggdXNlcyBhIGZldyBtYWNyb3MgdGhh dCBoYXZlIGNhdXNlZCBwcm9ibGVtcyBpbiB0aGUgcGFzc2VkIG9yIHdlCmV4cGVjdCBtaWdodCBj YXVzZSBwcm9ibGVtcyBpbiB0aGUgZnV0dXJlLiBUaGlzIGlzIGRlZmluaXRlbHkgbm90IG1lYW50 CnRvIGJlIGV4aGF1c3RpdmUuIEl0J3MgbWFpbiBwdXJwb3NlIGlzIHRvIHNlcnZlIGFzIGEgcmVn cmVzc2lvbiB0ZXN0IGZvcgpwcmV2aW91cyBmYWlsdXJlcywgYW5kIGFzIGEgcGxhY2Ugd2hlcmUg ZnV0dXJlIGZhaWx1cmVzIGNhbiBlYXNpbHkgYmUKYWRkZWQuCgpUbyBnZXQgQ0kgZ3JlZW4sIHRo aXMgYWxzbyBmaXhlcyBhIGZldyBpc3N1ZXMgd2hlbiBjb21waWxpbmcgQysrCmV4dGVuc2lvbnMg b24gTVNWQy4gTm90YWJseSwgb3VyIHVzZSBvZiBkZXNpZ25hdGVkIGluaXRpYWxpemVycyBpbgpj b21tb24gbWFjcm9zIG1lYW5zIHRoYXQgb24gTVNWQyB3ZSBlc3NlbnRpYWxseSBuZWVkIEMrKzIw LiBHaXZlbiB0aGF0Cm5vLW9uZSBoYXMgY29tcGxhaW5lZCBhYm91dCB0aGF0IHlldCwgaXQgc2Vl bXMgdW5saWtlbHkgdGhhdCBhbnlvbmUgaXMKY3VycmVudGx5IGNvbXBpbGluZyBDKysgZXh0ZW5z aW9ucyBvbiBNU1ZDIHdpdGggYSBsb3dlciBzdGFuZGFyZC4gR0NDCmFuZCBjbGFuZyBhbGxvdyBz dWNoIGluaXRpYWxpemVycyB3aGVuIGNvbXBpbGluZyBmb3Igb2xkZXIgQysrCnN0YW5kYXJkcywg ZXZlbiB0aG91Z2ggdGhleSBvbmx5IGJlY2FtZSBhbiBvZmZpY2lhbCBwYXJ0IG9mIEMrKzIwLgot LS0KIC5jaXJydXMudGFza3MueW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsr LQogbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysK IHNyYy9pbmNsdWRlL2MuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysr Ky0KIHNyYy9pbmNsdWRlL25vZGVzL3BnX2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICA4ICst LQogc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwog c3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC9NYWtlZmlsZSAgIHwgMjQgKysrKysrKysr CiAuLi4vbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC9tZXNvbi5idWlsZCAgICAgfCAzNSArKysr KysrKysrKysrCiAuLi4vdGVzdF9jcGx1c3BsdXNleHQvdGVzdF9jcGx1c3BsdXNleHQuY3BwICAg fCA1MSArKysrKysrKysrKysrKysrKysrCiA5IGZpbGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25z KCspLCA4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMv dGVzdF9jcGx1c3BsdXNleHQvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9t b2R1bGVzL3Rlc3RfY3BsdXNwbHVzZXh0L21lc29uLmJ1aWxkCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC90ZXN0X2NwbHVzcGx1c2V4dC5jcHAK CmRpZmYgLS1naXQgYS8uY2lycnVzLnRhc2tzLnltbCBiLy5jaXJydXMudGFza3MueW1sCmluZGV4 IDJhODIxNTkzY2U1Li5jNGI0ZDIxM2I2OCAxMDA2NDQKLS0tIGEvLmNpcnJ1cy50YXNrcy55bWwK KysrIGIvLmNpcnJ1cy50YXNrcy55bWwKQEAgLTQ1MCw3ICs0NTAsOCBAQCB0YXNrOgogCiAgICAg IyBTQU5JVElaRVJfRkxBR1MgaXMgc2V0IGluIHRoZSB0YXNrcyBiZWxvdwogICAgIENGTEFHUzog LU9nIC1nZ2RiIC1mbm8tc2FuaXRpemUtcmVjb3Zlcj1hbGwgJFNBTklUSVpFUl9GTEFHUwotICAg IENYWEZMQUdTOiAkQ0ZMQUdTCisgICAgIyBVc2UgLXN0ZD1jKysxMSAobm90IGdudSsrMTEpIHRv IGNhdGNoIEMrKyBwb3J0YWJpbGl0eSBpc3N1ZXMKKyAgICBDWFhGTEFHUzogJENGTEFHUyAtc3Rk PWMrKzExCiAgICAgTERGTEFHUzogJFNBTklUSVpFUl9GTEFHUwogICAgIENDOiBjY2FjaGUgZ2Nj CiAgICAgQ1hYOiBjY2FjaGUgZysrCkBAIC04MDIsOSArODAzLDExIEBAIHRhc2s6CiAgICAgZWNo byAxMjcuMC4wLjMgcGctbG9hZGJhbGFuY2V0ZXN0ID4+IGM6XFdpbmRvd3NcU3lzdGVtMzJcRHJp dmVyc1xldGNcaG9zdHMKICAgICB0eXBlIGM6XFdpbmRvd3NcU3lzdGVtMzJcRHJpdmVyc1xldGNc aG9zdHMKIAorICAjIFVzZXMgQysrMjAgc3RhbmRhcmQsIGJlY2F1c2UgdGhhdCdzIG5lZWRlZCBm b3IgTVNWQyB0byBhY2NlcHQgZGVzaWduYXRlZAorICAjIGluaXRpYWxpemVycy4KICAgY29uZmln dXJlX3NjcmlwdDogfAogICAgIHZjdmFyc2FsbCB4NjQKLSAgICBtZXNvbiBzZXR1cCAtLWJhY2tl bmQgbmluamEgJU1FU09OX0NPTU1PTl9QR19DT05GSUdfQVJHUyUgLS1idWlsZHR5cGUgZGVidWcg LURiX3BjaD10cnVlIC1EZXh0cmFfbGliX2RpcnM9Yzpcb3BlbnNzbFwxLjFcbGliIC1EZXh0cmFf aW5jbHVkZV9kaXJzPWM6XG9wZW5zc2xcMS4xXGluY2x1ZGUgLURUQVI9JVRBUiUgJU1FU09OX0ZF QVRVUkVTJSBidWlsZAorICAgIG1lc29uIHNldHVwIC0tYmFja2VuZCBuaW5qYSAlTUVTT05fQ09N TU9OX1BHX0NPTkZJR19BUkdTJSAtLWJ1aWxkdHlwZSBkZWJ1ZyAtRGJfcGNoPXRydWUgLURleHRy YV9saWJfZGlycz1jOlxvcGVuc3NsXDEuMVxsaWIgLURleHRyYV9pbmNsdWRlX2RpcnM9Yzpcb3Bl bnNzbFwxLjFcaW5jbHVkZSAtRFRBUj0lVEFSJSAtRGNwcF9hcmdzPS9zdGQ6YysrMjAgJU1FU09O X0ZFQVRVUkVTJSBidWlsZAogCiAgIGJ1aWxkX3NjcmlwdDogfAogICAgIHZjdmFyc2FsbCB4NjQK ZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVpbGQKaW5kZXggNTVkZjFkZDM3OTcu LjYzZDcyNWRmYzlkIDEwMDY0NAotLS0gYS9tZXNvbi5idWlsZAorKysgYi9tZXNvbi5idWlsZApA QCAtMjE5Miw2ICsyMTkyLDEwIEBAIGlmIGNjLmdldF9pZCgpID09ICdtc3ZjJwogICAgICcvdzI0 Nzc3JywgIyAnZnVuY3Rpb24nIDogZm9ybWF0IHN0cmluZyAnc3RyaW5nJyByZXF1aXJlcyBhbiBh cmd1bWVudCBvZiB0eXBlICd0eXBlMScsIGJ1dCB2YXJpYWRpYyBhcmd1bWVudCBudW1iZXIgaGFz IHR5cGUgJ3R5cGUyJyBbbGlrZSAtV2Zvcm1hdF0KICAgXQogCisgIGN4eGZsYWdzX3dhcm4gKz0g WworICAgICcvd2Q0MjAwJywgIyBub25zdGFuZGFyZCBleHRlbnNpb24gdXNlZDogemVyby1zaXpl ZCBhcnJheSBpbiBzdHJ1Y3QvdW5pb24KKyAgXQorCiAgIGNwcGZsYWdzICs9IFsKICAgICAnL0RX SU4zMicsCiAgICAgJy9EV0lORE9XUycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jLmggYi9z cmMvaW5jbHVkZS9jLmgKaW5kZXggNjUxNzNiOWQ5ZmQuLmQyZjM1NGU3ZTE1IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jLmgKKysrIGIvc3JjL2luY2x1ZGUvYy5oCkBAIC0zNDEsNiArMzQxLDE2 IEBACiAjZGVmaW5lIHBnX3VucmVhY2hhYmxlKCkgYWJvcnQoKQogI2VuZGlmCiAKKy8qCisgKiBD KysgaGFzIHNsaWd0aGx5IGRpZmZlcmVudCBzeW50YXggZm9yIGlubGluZSBjb21wb3VuZCBsaXRl cmFscyB0aGFuIEMuIEdDQworICogYW5kIENsYW5nIHN1cHBvcnQgaGUgQy1zdHlsZSBzeW50YXgg dG9vLCBidXQgTVNWQyBkb2VzIG5vdC4KKyAqLworI2lmZGVmIF9fY3BsdXNwbHVzCisjZGVmaW5l IHBnX2NvbXBvdW5kX2xpdGVyYWwodHlwZSwgLi4uKSAodHlwZSB7IF9fVkFfQVJHU19fIH0pCisj ZWxzZQorI2RlZmluZSBwZ19jb21wb3VuZF9saXRlcmFsKHR5cGUsIC4uLikgKCh0eXBlKSB7IF9f VkFfQVJHU19fIH0pCisjZW5kaWYKKwogLyoKICAqIERlZmluZSBhIGNvbXBpbGVyLWluZGVwZW5k ZW50IG1hY3JvIGZvciBkZXRlcm1pbmluZyBpZiBhbiBleHByZXNzaW9uIGlzIGEKICAqIGNvbXBp bGUtdGltZSBpbnRlZ2VyIGNvbnN0LiAgV2UgZG9uJ3QgZGVmaW5lIHRoaXMgbWFjcm8gdG8gcmV0 dXJuIDAgd2hlbgpAQCAtOTU2LDEzICs5NjYsMTcgQEAgcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQg RXhjZXB0aW9uYWxDb25kaXRpb24oY29uc3QgY2hhciAqY29uZGl0aW9uTmFtZSwKIAlzdGF0aWNf YXNzZXJ0KGNvbmRpdGlvbiwgZXJybWVzc2FnZSkKICNkZWZpbmUgU3RhdGljQXNzZXJ0U3RtdChj b25kaXRpb24sIGVycm1lc3NhZ2UpIFwKIAlkbyB7IHN0YXRpY19hc3NlcnQoY29uZGl0aW9uLCBl cnJtZXNzYWdlKTsgfSB3aGlsZSgwKQotI2lmZGVmIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05T CisjaWZkZWYgX19jcGx1c3BsdXMKKy8qIEMrKzExIGxhbWJkYXMgcHJvdmlkZSBhIGNvbnZlbmll bnQgd2F5IHRvIHVzZSBzdGF0aWNfYXNzZXJ0IGFzIGFuIGV4cHJlc3Npb24gKi8KKyNkZWZpbmUg U3RhdGljQXNzZXJ0RXhwcihjb25kaXRpb24sIGVycm1lc3NhZ2UpIFwKKwkoKHZvaWQpIChbXSgp eyBzdGF0aWNfYXNzZXJ0KGNvbmRpdGlvbiwgZXJybWVzc2FnZSk7IH0oKSwgMCkpCisjZWxpZiBk ZWZpbmVkKEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TKQogI2RlZmluZSBTdGF0aWNBc3NlcnRF eHByKGNvbmRpdGlvbiwgZXJybWVzc2FnZSkgXAogCSgodm9pZCkgKHsgc3RhdGljX2Fzc2VydChj b25kaXRpb24sIGVycm1lc3NhZ2UpOyB0cnVlOyB9KSkKICNlbHNlCiAjZGVmaW5lIFN0YXRpY0Fz c2VydEV4cHIoY29uZGl0aW9uLCBlcnJtZXNzYWdlKSBcCiAJKCh2b2lkKSBzaXplb2Yoc3RydWN0 IHsgaW50IHN0YXRpY19hc3NlcnRfZmFpbHVyZSA6IChjb25kaXRpb24pID8gMSA6IC0xOyB9KSkK LSNlbmRpZgkJCQkJCQkvKiBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAqLworI2VuZGlmCiAK IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BnX2xpc3QuaCBiL3NyYy9pbmNs dWRlL25vZGVzL3BnX2xpc3QuaAppbmRleCBhZTgwOTc1NTQ4Zi4uNTQ5OGQwOWJjYmEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BnX2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wZ19saXN0LmgKQEAgLTIwNCwxMCArMjA0LDEwIEBAIGxpc3RfbGVuZ3RoKGNvbnN0IExpc3Qg KmwpCiAvKgogICogQ29udmVuaWVuY2UgbWFjcm9zIGZvciBidWlsZGluZyBmaXhlZC1sZW5ndGgg bGlzdHMKICAqLwotI2RlZmluZSBsaXN0X21ha2VfcHRyX2NlbGwodikJKChMaXN0Q2VsbCkgey5w dHJfdmFsdWUgPSAodil9KQotI2RlZmluZSBsaXN0X21ha2VfaW50X2NlbGwodikJKChMaXN0Q2Vs bCkgey5pbnRfdmFsdWUgPSAodil9KQotI2RlZmluZSBsaXN0X21ha2Vfb2lkX2NlbGwodikJKChM aXN0Q2VsbCkgey5vaWRfdmFsdWUgPSAodil9KQotI2RlZmluZSBsaXN0X21ha2VfeGlkX2NlbGwo dikJKChMaXN0Q2VsbCkgey54aWRfdmFsdWUgPSAodil9KQorI2RlZmluZSBsaXN0X21ha2VfcHRy X2NlbGwodikJcGdfY29tcG91bmRfbGl0ZXJhbChMaXN0Q2VsbCwgLnB0cl92YWx1ZSA9ICh2KSkK KyNkZWZpbmUgbGlzdF9tYWtlX2ludF9jZWxsKHYpCXBnX2NvbXBvdW5kX2xpdGVyYWwoTGlzdENl bGwsIC5pbnRfdmFsdWUgPSAodikpCisjZGVmaW5lIGxpc3RfbWFrZV9vaWRfY2VsbCh2KQlwZ19j b21wb3VuZF9saXRlcmFsKExpc3RDZWxsLCAub2lkX3ZhbHVlID0gKHYpKQorI2RlZmluZSBsaXN0 X21ha2VfeGlkX2NlbGwodikJcGdfY29tcG91bmRfbGl0ZXJhbChMaXN0Q2VsbCwgLnhpZF92YWx1 ZSA9ICh2KSkKIAogI2RlZmluZSBsaXN0X21ha2UxKHgxKSBcCiAJbGlzdF9tYWtlMV9pbXBsKFRf TGlzdCwgbGlzdF9tYWtlX3B0cl9jZWxsKHgxKSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVs ZXMvTWFrZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlCmluZGV4IDRjNmQ1NmQ5N2Q4 Li45MmFjMGEzNDJiNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQorKysg Yi9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlCkBAIC0yMCw2ICsyMCw3IEBAIFNVQkRJUlMgPSBc CiAJCSAgdGVzdF9iaXRtYXBzZXQgXAogCQkgIHRlc3RfYmxvb21maWx0ZXIgXAogCQkgIHRlc3Rf Y2xvZXhlYyBcCisJCSAgdGVzdF9jcGx1c3BsdXNleHQgXAogCQkgIHRlc3RfY29weV9jYWxsYmFj a3MgXAogCQkgIHRlc3RfY3VzdG9tX3JtZ3JzIFwKIAkJICB0ZXN0X2N1c3RvbV9zdGF0cyBcCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxl cy9tZXNvbi5idWlsZAppbmRleCAxYjMxYzViOThkNi4uMGM3ZThhZDQ4NTYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9tZXNv bi5idWlsZApAQCAtMTksNiArMTksNyBAQCBzdWJkaXIoJ3Rlc3RfYWlvJykKIHN1YmRpcigndGVz dF9iaW5hcnloZWFwJykKIHN1YmRpcigndGVzdF9iaXRtYXBzZXQnKQogc3ViZGlyKCd0ZXN0X2Js b29tZmlsdGVyJykKK3N1YmRpcigndGVzdF9jcGx1c3BsdXNleHQnKQogc3ViZGlyKCd0ZXN0X2Ns b2V4ZWMnKQogc3ViZGlyKCd0ZXN0X2NvcHlfY2FsbGJhY2tzJykKIHN1YmRpcigndGVzdF9jdXN0 b21fcm1ncnMnKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4 dC9NYWtlZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jcGx1c3BsdXNleHQvTWFrZWZpbGUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5YWJkMGY5OGM2Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC9NYWtlZmls ZQpAQCAtMCwwICsxLDI0IEBACisjIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9jcGx1c3BsdXNleHQv TWFrZWZpbGUKKyMKKyMgVGVzdCB0aGF0IFBvc3RncmVTUUwgaGVhZGVycyBjb21waWxlIHdpdGgg YSBDKysgY29tcGlsZXIuCisjIElmIHRoaXMgbW9kdWxlIGNvbXBpbGVzLCB0aGUgdGVzdCBwYXNz ZXMuCisKK01PRFVMRV9iaWcgPSB0ZXN0X2NwbHVzcGx1c2V4dAorT0JKUyA9IFwKKwkkKFdJTjMy UkVTKSBcCisJdGVzdF9jcGx1c3BsdXNleHQubworUEdGSUxFREVTQyA9ICJ0ZXN0X2NwbHVzcGx1 c2V4dCAtIHRlc3QgQysrIGNvbXBhdGliaWxpdHkgb2YgUG9zdGdyZVNRTCBoZWFkZXJzIgorCisj IFVzZSBDKysgY29tcGlsZXIgZm9yIGxpbmtpbmcgYmVjYXVzZSB0aGlzIG1vZHVsZSBpbmNsdWRl cyBDKysgZmlsZXMKK292ZXJyaWRlIENPTVBJTEVSID0gJChDWFgpICQoQ1hYRkxBR1MpCisKK2lm ZGVmIFVTRV9QR1hTCitQR19DT05GSUcgPSBwZ19jb25maWcKK1BHWFMgOj0gJChzaGVsbCAkKFBH X0NPTkZJRykgLS1wZ3hzKQoraW5jbHVkZSAkKFBHWFMpCitlbHNlCitzdWJkaXIgPSBzcmMvdGVz dC9tb2R1bGVzL3Rlc3RfY3BsdXNwbHVzZXh0Cit0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLi8uLgor aW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAoraW5jbHVkZSAkKHRv cF9zcmNkaXIpL2NvbnRyaWIvY29udHJpYi1nbG9iYWwubWsKK2VuZGlmCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3BsdXNwbHVzZXh0L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC9tZXNvbi5idWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uZDQ3ZmJmYTdmNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfY3BsdXNwbHVzZXh0L21lc29uLmJ1aWxkCkBAIC0wLDAgKzEsMzUg QEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisKKyMgVGhpcyBtb2R1bGUgdGVzdHMgdGhhdCBQb3N0Z3JlU1FMIGhlYWRlcnMg Y29tcGlsZSB3aXRoIGEgQysrIGNvbXBpbGVyLgorIyBJdCBoYXMgbm8gcnVudGltZSB0ZXN0cyAt IGlmIGl0IGNvbXBpbGVzLCB0aGUgdGVzdCBwYXNzZXMuCisKK2lmIG5vdCBhZGRfbGFuZ3VhZ2Vz KCdjcHAnLCByZXF1aXJlZDogZmFsc2UsIG5hdGl2ZTogZmFsc2UpCisgIHN1YmRpcl9kb25lKCkK K2VuZGlmCisKK2NwcCA9IG1lc29uLmdldF9jb21waWxlcignY3BwJykKKworIyBNU1ZDIHJlcXVp cmVzIEMrKzIwIGZvciBkZXNpZ25hdGVkIGluaXRpYWxpemVycyB1c2VkIGluIFBHX01PRFVMRV9N QUdJQyBhbmQKKyMgb3RoZXIgbWFjcm9zLiBTa2lwIGlmIHRoZSBjb21waWxlciBkb2Vzbid0IHN1 cHBvcnQgdGhlbS4KK2lmIG5vdCBjcHAuY29tcGlsZXMoJycnCisgICAgc3RydWN0IEZvbyB7IGlu dCBhOyBpbnQgYjsgfTsKKyAgICBGb28gZiA9IHsuYSA9IDEsIC5iID0gMn07CisgICAgJycnLAor ICAgIG5hbWU6ICdDKysgZGVzaWduYXRlZCBpbml0aWFsaXplcnMnKQorICBzdWJkaXJfZG9uZSgp CitlbmRpZgorCit0ZXN0X2NwbHVzcGx1c2V4dF9zb3VyY2VzID0gZmlsZXMoCisgICd0ZXN0X2Nw bHVzcGx1c2V4dC5jcHAnLAorKQorCitpZiBob3N0X3N5c3RlbSA9PSAnd2luZG93cycKKyAgdGVz dF9jcGx1c3BsdXNleHRfc291cmNlcyArPSByY19saWJfZ2VuLnByb2Nlc3Mod2luMzJ2ZXJfcmMs IGV4dHJhX2FyZ3M6IFsKKyAgICAnLS1OQU1FJywgJ3Rlc3RfY3BsdXNwbHVzZXh0JywKKyAgICAn LS1GSUxFREVTQycsICd0ZXN0X2NwbHVzcGx1c2V4dCAtIHRlc3QgQysrIGNvbXBhdGliaWxpdHkg b2YgUG9zdGdyZVNRTCBoZWFkZXJzJyxdKQorZW5kaWYKKwordGVzdF9jcGx1c3BsdXNleHQgPSBz aGFyZWRfbW9kdWxlKCd0ZXN0X2NwbHVzcGx1c2V4dCcsCisgIHRlc3RfY3BsdXNwbHVzZXh0X3Nv dXJjZXMsCisgIGt3YXJnczogcGdfdGVzdF9tb2RfYXJncywKKykKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9jcGx1c3BsdXNleHQvdGVzdF9jcGx1c3BsdXNleHQuY3BwIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC90ZXN0X2NwbHVzcGx1c2V4dC5jcHAKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAxMmRiOGI3OTU5Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC90ZXN0X2NwbHVz cGx1c2V4dC5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IHRlc3RfY3BsdXNwbHVzZXh0LmNwcAorICoJCVRlc3QgdGhhdCBQb3N0Z3JlU1FMIGhlYWRlcnMg Y29tcGlsZSB3aXRoIGEgQysrIGNvbXBpbGVyLgorICoKKyAqIFRoaXMgZmlsZSBpcyBjb21waWxl ZCB3aXRoIGEgQysrIGNvbXBpbGVyIHRvIHZlcmlmeSB0aGF0IFBvc3RncmVTUUwKKyAqIGhlYWRl cnMgcmVtYWluIGNvbXBhdGlibGUgd2l0aCBDKysgZXh0ZW5zaW9ucy4KKyAqCisgKiBDb3B5cmln aHQgKGMpIDIwMjUtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq CisgKiBJREVOVElGSUNBVElPTgorICoJCXNyYy90ZXN0L21vZHVsZXMvdGVzdF9jcGx1c3BsdXNl eHQvdGVzdF9jcGx1c3BsdXNleHQuY3BwCisgKgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisK K2V4dGVybiAiQyIgeworI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAiZm1nci5oIgor I2luY2x1ZGUgIm5vZGVzL3BnX2xpc3QuaCIKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgi CisKK1BHX01PRFVMRV9NQUdJQzsKKworUEdfRlVOQ1RJT05fSU5GT19WMSh0ZXN0X2NwbHVzcGx1 c19jb21wYXQpOworfQorCitTdGF0aWNBc3NlcnREZWNsKHNpemVvZihpbnQzMikgPT0gNCwgImlu dDMyIHNob3VsZCBiZSA0IGJ5dGVzIik7CisKK2V4dGVybiAiQyIgRGF0dW0KK3Rlc3RfY3BsdXNw bHVzX2NvbXBhdChQR19GVU5DVElPTl9BUkdTKQoreworCUxpc3QJICAgKm5vZGVfbGlzdCA9IGxp c3RfbWFrZTEobWFrZU5vZGUoUmFuZ2VUYmxSZWYpKTsKKwlSYW5nZVRibFJlZiAqY29weSA9IGNv cHlPYmplY3QobGluaXRpYWxfbm9kZShSYW5nZVRibFJlZiwgbm9kZV9saXN0KSk7CisKKwlmb3Jl YWNoX3B0cihSYW5nZVRibFJlZiwgcnRyLCBub2RlX2xpc3QpIHsKKwkJcnRyLT5ydGluZGV4Kys7 CisJfQorCisJZm9yZWFjaF9ub2RlKFJhbmdlVGJsUmVmLCBydHIsIG5vZGVfbGlzdCkgeworCQly dHItPnJ0aW5kZXgrKzsKKwl9CisKKwlTdGF0aWNBc3NlcnRTdG10KHNpemVvZihpbnQzMikgPT0g NCwgImludDMyIHNob3VsZCBiZSA0IGJ5dGVzIik7CisJKHZvaWQpIFN0YXRpY0Fzc2VydEV4cHIo c2l6ZW9mKGludDY0KSA9PSA4LCAiaW50NjQgc2hvdWxkIGJlIDggYnl0ZXMiKTsKKworCXBmcmVl KGNvcHkpOworCWxpc3RfZnJlZV9kZWVwKG5vZGVfbGlzdCk7CisKKwlQR19SRVRVUk5fVk9JRCgp OworfQotLSAKMi41Mi4wCgo= --56bf29aa534d45398c9824654b5a1095e7c78275f30049c1e71bf62f8cd9--