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 1vsfM2-00CmEn-24 for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Feb 2026 11:04:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vsfM1-00FZu9-22 for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Feb 2026 11:04:25 +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.96) (envelope-from ) id 1vsfM1-00FZu1-0g for pgsql-hackers@lists.postgresql.org; Wed, 18 Feb 2026 11:04:25 +0000 Received: from mail-qt1-x841.google.com ([2607:f8b0:4864:20::841]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vsfLz-00000001Lg7-0ENj for pgsql-hackers@lists.postgresql.org; Wed, 18 Feb 2026 11:04:25 +0000 Received: by mail-qt1-x841.google.com with SMTP id d75a77b69052e-506bad34f51so30434101cf.2 for ; Wed, 18 Feb 2026 03:04:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771412660; cv=none; d=google.com; s=arc-20240605; b=c2XJ+vEnNdxiOVRv6z9M5ge2W1kOBaxaFknVKdq2Xly2tNQl34sRjv0rXNtmYx5KED r1ZireXhzI0cmlrpFKCFaQDPnCBtwc1XN8RVmF2tK/5Y89MQU/xl4zKeFj/8OIKjlANj Sg5gFBshyb+IPU6reGYZvc08xR2Xz0qba6J7G17xrpaNkqUQRi7dlgMVEIAANeBh5TLY a99/SjnMMSqYkoRfOWRmQtwZNoP+2vAe9YMS6P+Bzj+2MQ/ERknBb9qzDpVCYjCo5hAU eC89PTJm1ZTAjHh9aB2+zMEUyWJrqs3yEArO0dj26hZV1mYcKagNAD3BpEd4x4d8ZwGO A1rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=N+cEk2YpXqPI5/NrICW4IZi/MMPUVq32T/vYkLzo21k=; fh=QkA/aEdX91S/8F/qJ99Id6ajqeoUK7xG9EWRL8z3yR4=; b=NWEgsWPpoWZ6qgfABEVhT6Lrfc1q3dXVMv+82Rzpv3igxrDI5l6rjIcdUdNmHwwn3W oLrbwrpK9gKS6p3cHrb+6QDMy3rNZrl6vHwXXluN2KKeHLI5bEO/A8YKARfr3Nu6Pz9P EKDfgV1CF8RuL5m4aJ9Y6JCb/t1wV+aGa4fgJwG0e7MGVcVrJBH+tTRmiJCXT7dmcUP2 /wRoTnzwNm2X3JeazGkGZacEN+DbD6D4LfGipLf6Vm2ftSLEnkJ2wvL3pUMP2Gg9D53k xmKtyKMmLxKmsFNudHZu759rflkmKmULnBTbVQVF6/T1zmYcA488E3R4XfzI+Flc9jyS tI2Q==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771412660; x=1772017460; 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=N+cEk2YpXqPI5/NrICW4IZi/MMPUVq32T/vYkLzo21k=; b=MaSq3Do5MjZuUmzRdlt7Greo0sRc/JNzDaUE3DhsEKHFwt07MrClJFwAgoZAElPmvw ZYIf8qOBfsyBcAPUHply/3plI2IqNxbVK0XlVJaXvYIlQ5vrS1YSAT+OKgvIW31tvRFR ymMHeXkeslMzfvNRdsmM+q/w44z6ae2iiRA6vlU3MKyGWEn7o0Jl2FAHS0nro6jJfjbl FMANQXNaLV9FtiGoaPRXpnw1rNk75KH75VTTKV00oeJbG7rQ6F0I13vcZCWxO2IxaC45 tF/SLiGZs4gwSfbwH5iXzBjag1TInX7hDIiQUp+0p1qgQtp3NO03dkjeUY7ru968hkqt Ucbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771412660; x=1772017460; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=N+cEk2YpXqPI5/NrICW4IZi/MMPUVq32T/vYkLzo21k=; b=fjXbtdjl978oZDPDaqGm/eI0yT5ER2plWvt5keKQ+vs0UTpKmMUg+jAa4653ie1+1R 5CSupWeZ9NdcWqId0PNAJRL9TtRpH/f6xISb14mhKgwBgVJDpKK9sdGgYDPgwAcHIAd/ F6MnomC23luCLUS1tLYjStDSkamlVQMQJiAzLP6NNwhiAr8BprE0A2BVxkKAhkeQ0aFY hzN5ind4nabKItdDujmnCYnmud0e+rM7UJ8jTDEzjbx+EDn0OWJGKwmRHHJFhA4nBzBH 9mBhXmOTDhhuaVkxIpRB5jRevPf9fEISOZJ4+XgexEn31xkSlOo+RRW/SDsmZ9qNJkg9 k3zw== X-Gm-Message-State: AOJu0YyHBb2I0yoDB7mp2UeXaiJ7AiH/uQKph6gZdivtl7BPSEw7ytIR P8kVxHwozMB/55I8W8PrY+SVPEcB/QlPtfrjT4BhfchDT/y5BLHxoUshasdp+OhljRCw4VTiSll hhtMSh8wvj8EXLX/5DHWaGdjma1woiWk= X-Gm-Gg: AZuq6aJwQ/A7sbYRoFV6tZMqpDwHrOG1wI5E0Hwkg3BdoCY51XASjrOAsNjZ+OCOJLS nMclD7R36Ed1X5VeZodnvctuK42Lv/85GehazO4Ba2eu6x90WOt2ManuWOhCJZcwTTDUQ5Sr3LI f/1ThP3WFlUIkke1XLPEfRwHqLClGcTVViCZmBTnxgtIMJ4+1lyKrbYbkHZy50uobjRw/JUWpNY EGszayLqRkD3EOpQz7jD2rVgBocppG1eLlMXPiq7XUvtzNBzJfg/SYKvWnNc7TZbdhl/rAOlv9v VVJ7HrTee3+ZAcL9+boLKn8avIHgY0WwNJQq6ki/euIh2Ryf2TuUKTFDdoVBzc9GHjWSRSH7rTK 0CdRJXq+xKvAKFUZR2heSnofAGmnE55Q7Lkn4rw== X-Received: by 2002:a05:622a:88:b0:4f4:f834:44ed with SMTP id d75a77b69052e-506e923b310mr15176271cf.64.1771412660120; Wed, 18 Feb 2026 03:04:20 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: John Naylor Date: Wed, 18 Feb 2026 18:04:09 +0700 X-Gm-Features: AaiRm51veSS91HLpAzTD-fYZRXx8OaFlg_iVAhtFw5N94pn1KaaHrMb9mO92LJk Message-ID: Subject: Re: centralize CPU feature detection To: Zsolt Parragi Cc: PostgreSQL Hackers , root , Nathan Bossart Content-Type: multipart/mixed; boundary="0000000000005bff77064b1726d1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005bff77064b1726d1 Content-Type: text/plain; charset="UTF-8" v3 removes some debug code that was causing CI to fail. -- John Naylor Amazon Web Services --0000000000005bff77064b1726d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v3-0002-Centralize-detection-of-CPU-features.patch" Content-Disposition: attachment; filename="v3-0002-Centralize-detection-of-CPU-features.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlrxbtvf2 RnJvbSA1NzA0NWU2MmZhYjYwNjI3YzY1M2ZhNmYwZDg1MDFjY2E5ZDM3NzE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFRodSwgMTIgRmViIDIwMjYgMTI6NDU6MjMgKzA3MDAKU3ViamVjdDogW1BBVENI IHYzIDIvNF0gQ2VudHJhbGl6ZSBkZXRlY3Rpb24gb2YgQ1BVIGZlYXR1cmVzCgpXSVA6IHg4NiBv bmx5Ci0tLQogc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaCAgfCA1MCArKysrKysrKysrKysrKysr KysrKysKIHNyYy9wb3J0L3BnX2NwdV94ODYuYyAgICAgIHwgNjIgKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0KIHNyYy9wb3J0L3BnX2NyYzMyY19zc2U0Mi5jIHwgMjggKysrKysrKysrKysrCiBz cmMvcG9ydC9wZ19wb3Bjb3VudF94ODYuYyB8IDkxICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCAxMjQgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaAoK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BvcnQvcGdfY3B1LmggYi9zcmMvaW5jbHVkZS9wb3J0 L3BnX2NwdS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZmE5YmZi M2ZkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL3BvcnQvcGdfY3B1LmgKQEAgLTAs MCArMSw1MCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY3B1LmgKKyAqCSAgUnVu dGltZSBDUFUgZmVhdHVyZSBkZXRlY3Rpb24KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvcG9ydC9wZ19jcHUuaAorICoKKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICovCisjaWZuZGVmIFBHX1g4Nl9GRUFUVVJFX0gKKyNkZWZpbmUgUEdfWDg2X0ZF QVRVUkVfSAorCisjaWYgZGVmaW5lZChVU0VfU1NFMikgfHwgZGVmaW5lZChfX2kzODZfXykKKwor dHlwZWRlZiBlbnVtIFg4NkZlYXR1cmVJZAoreworCS8qIEhhdmUgd2UgcnVuIGZlYXR1cmUgZGV0 ZWN0aW9uPyAqLworCWluaXQsCisKKwkvKiBzY2FsYXIgYW5kIDEyOC1iaXQgcmVnaXN0ZXJzICov CisJUEdfU1NFNF8yLAorCVBHX1BPUENOVCwKKworCS8qIDUxMi1iaXQgcmVnaXN0ZXJzICovCisJ UEdfQVZYNTEyX0JXLAorCVBHX0FWWDUxMl9WTCwKKwlQR19BVlg1MTJfVlBDTE1VTFFEUSwKKwlQ R19BVlg1MTJfVlBPUENOVERRLAorfQkJCVg4NkZlYXR1cmVJZDsKKyNkZWZpbmUgWDg2RmVhdHVy ZXNTaXplIChQR19BVlg1MTJfVlBPUENOVERRICsgMSkKKworZXh0ZXJuIFBHRExMSU1QT1JUIGJv b2wgWDg2RmVhdHVyZXNbXTsKKworZXh0ZXJuIHZvaWQgc2V0X3g4Nl9mZWF0dXJlcyh2b2lkKTsK Kworc3RhdGljIGlubGluZSBib29sCit4ODZfZmVhdHVyZV9hdmFpbGFibGUoWDg2RmVhdHVyZUlk IGZlYXR1cmUpCit7CisJaWYgKFg4NkZlYXR1cmVzW2luaXRdID09IGZhbHNlKQorCQlzZXRfeDg2 X2ZlYXR1cmVzKCk7CisKKwlyZXR1cm4gWDg2RmVhdHVyZXNbZmVhdHVyZV07Cit9CisKKyNlbmRp ZgkJCQkJCQkvKiBkZWZpbmVkKFVTRV9TU0UyKSB8fCBkZWZpbmVkKF9faTM4Nl9fKSAqLworCisj ZW5kaWYJCQkJCQkJLyogUEdfWDg2X0ZFQVRVUkVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQv cGdfY3B1X3g4Ni5jIGIvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCmluZGV4IDk5OGE3MGZmYTQxLi44 OTUxZTU2MGZmZSAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCisrKyBiL3NyYy9w b3J0L3BnX2NwdV94ODYuYwpAQCAtMSwxMiArMSw3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAq CiAgKiBwZ19jcHVfeDg2LmMKLSAqCSAgQ2hvb3NlIGJldHdlZW4gSW50ZWwgU1NFIDQuMiBhbmQg c29mdHdhcmUgQ1JDLTMyQyBpbXBsZW1lbnRhdGlvbi4KLSAqCi0gKiBPbiBmaXJzdCBjYWxsLCBj aGVja3MgaWYgdGhlIENQVSB3ZSdyZSBydW5uaW5nIG9uIHN1cHBvcnRzIEludGVsIFNTRQotICog NC4yLiBJZiBpdCBkb2VzLCB1c2UgdGhlIHNwZWNpYWwgU1NFIGluc3RydWN0aW9ucyBmb3IgQ1JD LTMyQwotICogY29tcHV0YXRpb24uIE90aGVyd2lzZSwgZmFsbCBiYWNrIHRvIHRoZSBwdXJlIHNv ZnR3YXJlIGltcGxlbWVudGF0aW9uCi0gKiAoc2xpY2luZy1ieS04KS4KKyAqCSAgUnVudGltZSBD UFUgZmVhdHVyZSBkZXRlY3Rpb24gZm9yIHg4NgogICoKICAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKQEAgLTM0LDcgKzI5LDEwIEBACiAjaW5jbHVkZSA8aW1taW50cmluLmg+CiAjZW5k aWYKIAotI2luY2x1ZGUgInBvcnQvcGdfY3JjMzJjLmgiCisjaW5jbHVkZSAicG9ydC9wZ19jcHUu aCIKKworCitib29sCQlYODZGZWF0dXJlc1tYODZGZWF0dXJlc1NpemVdID0gezB9OwogCiAvKgog ICogRG9lcyBYR0VUQlYgc2F5IHRoZSBaTU0gcmVnaXN0ZXJzIGFyZSBlbmFibGVkPwpAQCAtNTYs MjIgKzU0LDEzIEBAIHptbV9yZWdzX2F2YWlsYWJsZSh2b2lkKQogfQogCiAvKgotICogVGhpcyBn ZXRzIGNhbGxlZCBvbiB0aGUgZmlyc3QgY2FsbC4gSXQgcmVwbGFjZXMgdGhlIGZ1bmN0aW9uIHBv aW50ZXIKLSAqIHNvIHRoYXQgc3Vic2VxdWVudCBjYWxscyBhcmUgcm91dGVkIGRpcmVjdGx5IHRv IHRoZSBjaG9zZW4gaW1wbGVtZW50YXRpb24uCisgKiBQYXJzZSB0aGUgQ1BVIElEIGluZm8gZm9y IHJ1bnRpbWUgY2hlY2tzLgogICovCi1zdGF0aWMgcGdfY3JjMzJjCi1wZ19jb21wX2NyYzMyY19j aG9vc2UocGdfY3JjMzJjIGNyYywgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKK3ZvaWQK K3NldF94ODZfZmVhdHVyZXModm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgZXh4WzRdID0gezAsIDAs IDAsIDB9OwogCi0JLyoKLQkgKiBTZXQgZmFsbGJhY2suIFdlIG11c3QgZ3VhcmQgc2luY2Ugc2xp Y2luZy1ieS04IGlzIG5vdCB2aXNpYmxlCi0JICogZXZlcnl3aGVyZS4KLQkgKi8KLSNpZmRlZiBV U0VfU1NFNDJfQ1JDMzJDX1dJVEhfUlVOVElNRV9DSEVDSwotCXBnX2NvbXBfY3JjMzJjID0gcGdf Y29tcF9jcmMzMmNfc2I4OwotI2VuZGlmCi0KICNpZiBkZWZpbmVkKEhBVkVfX0dFVF9DUFVJRCkK IAlfX2dldF9jcHVpZCgxLCAmZXh4WzBdLCAmZXh4WzFdLCAmZXh4WzJdLCAmZXh4WzNdKTsKICNl bGlmIGRlZmluZWQoSEFWRV9fQ1BVSUQpCkBAIC04MCwzNCArNjksMzMgQEAgcGdfY29tcF9jcmMz MmNfY2hvb3NlKHBnX2NyYzMyYyBjcmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pCiAj ZXJyb3IgY3B1aWQgaW5zdHJ1Y3Rpb24gbm90IGF2YWlsYWJsZQogI2VuZGlmCiAKLQlpZiAoKGV4 eFsyXSAmICgxIDw8IDIwKSkgIT0gMCkJLyogU1NFIDQuMiAqLwotCXsKLQkJcGdfY29tcF9jcmMz MmMgPSBwZ19jb21wX2NyYzMyY19zc2U0MjsKKwlYODZGZWF0dXJlc1tQR19TU0U0XzJdID0gZXh4 WzJdID4+IDIwICYgMTsKKwlYODZGZWF0dXJlc1tQR19QT1BDTlRdID0gZXh4WzJdID4+IDIzICYg MTsKIAotCQlpZiAoZXh4WzJdICYgKDEgPDwgMjcpICYmCS8qIE9TWFNBVkUgKi8KLQkJCXptbV9y ZWdzX2F2YWlsYWJsZSgpKQotCQl7Ci0JCQkvKiBzZWNvbmQgY3B1aWQgY2FsbCBvbiBsZWFmIDcg dG8gY2hlY2sgZXh0ZW5kZWQgQVZYLTUxMiBzdXBwb3J0ICovCisJLyogQWxsIHRoZXNlIGZlYXR1 cmVzIGRlcGVuZCBvbiBPU1hTQVZFICovCisJaWYgKGV4eFsyXSAmICgxIDw8IDI3KSkKKwl7CisJ CS8qIHNlY29uZCBjcHVpZCBjYWxsIG9uIGxlYWYgNyB0byBjaGVjayBleHRlbmRlZCBBVlgtNTEy IHN1cHBvcnQgKi8KIAotCQkJbWVtc2V0KGV4eCwgMCwgNCAqIHNpemVvZihleHhbMF0pKTsKKwkJ bWVtc2V0KGV4eCwgMCwgNCAqIHNpemVvZihleHhbMF0pKTsKIAogI2lmIGRlZmluZWQoSEFWRV9f R0VUX0NQVUlEX0NPVU5UKQotCQkJX19nZXRfY3B1aWRfY291bnQoNywgMCwgJmV4eFswXSwgJmV4 eFsxXSwgJmV4eFsyXSwgJmV4eFszXSk7CisJCV9fZ2V0X2NwdWlkX2NvdW50KDcsIDAsICZleHhb MF0sICZleHhbMV0sICZleHhbMl0sICZleHhbM10pOwogI2VsaWYgZGVmaW5lZChIQVZFX19DUFVJ REVYKQotCQkJX19jcHVpZGV4KGV4eCwgNywgMCk7CisJCV9fY3B1aWRleChleHgsIDcsIDApOwog I2VuZGlmCiAKLSNpZmRlZiBVU0VfQVZYNTEyX0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hFQ0sKLQkJ CWlmIChleHhbMl0gJiAoMSA8PCAxMCkgJiYJLyogVlBDTE1VTFFEUSAqLwotCQkJCWV4eFsxXSAm ICgxIDw8IDMxKSkgLyogQVZYNTEyLVZMICovCi0JCQkJcGdfY29tcF9jcmMzMmMgPSBwZ19jb21w X2NyYzMyY19hdng1MTI7Ci0jZW5kaWYKKwkJaWYgKHptbV9yZWdzX2F2YWlsYWJsZSgpKQorCQl7 CisJCQlYODZGZWF0dXJlc1tQR19BVlg1MTJfQlddID0gZXh4WzFdID4+IDMwICYgMTsKKwkJCVg4 NkZlYXR1cmVzW1BHX0FWWDUxMl9WTF0gPSBleHhbMV0gPj4gMzEgJiAxOworCisJCQlYODZGZWF0 dXJlc1tQR19WUENMTVVMUURRXSA9IGV4eFsyXSA+PiAxMCAmIDE7CisJCQlYODZGZWF0dXJlc1tQ R19BVlg1MTJfVlBPUENOVERRXSA9IGV4eFsyXSA+PiAxNCAmIDE7CiAJCX0KIAl9CiAKLQlyZXR1 cm4gcGdfY29tcF9jcmMzMmMoY3JjLCBkYXRhLCBsZW4pOworCVg4NkZlYXR1cmVzW2luaXRdID0g dHJ1ZTsKIH0KIAotcGdfY3JjMzJjCSgqcGdfY29tcF9jcmMzMmMpIChwZ19jcmMzMmMgY3JjLCBj b25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKSA9IHBnX2NvbXBfY3JjMzJjX2Nob29zZTsKLQog I2VuZGlmCQkJCQkJCS8qIGRlZmluZWQoVVNFX1NTRTIpIHx8IGRlZmluZWQoX19pMzg2X18pICov CmRpZmYgLS1naXQgYS9zcmMvcG9ydC9wZ19jcmMzMmNfc3NlNDIuYyBiL3NyYy9wb3J0L3BnX2Ny YzMyY19zc2U0Mi5jCmluZGV4IGMxMjc5ZDMxZmJkLi4yZTc0MGUxMmE3YSAxMDA2NDQKLS0tIGEv c3JjL3BvcnQvcGdfY3JjMzJjX3NzZTQyLmMKKysrIGIvc3JjL3BvcnQvcGdfY3JjMzJjX3NzZTQy LmMKQEAgLTIwLDYgKzIwLDkgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAicG9ydC9wZ19jcmMzMmMu aCIKKyNpbmNsdWRlICJwb3J0L3BnX2NwdS5oIgorCitzdGF0aWMgcGdfY3JjMzJjIHBnX2NvbXBf Y3JjMzJjX2Nob29zZShwZ19jcmMzMmMgY3JjLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVu KTsKIAogcGdfYXR0cmlidXRlX25vX3Nhbml0aXplX2FsaWdubWVudCgpCiBwZ19hdHRyaWJ1dGVf dGFyZ2V0KCJzc2U0LjIiKQpAQCAtMTU5LDMgKzE2MiwyOCBAQCBwZ19jb21wX2NyYzMyY19hdng1 MTIocGdfY3JjMzJjIGNyYywgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKIH0KIAogI2Vu ZGlmCisKK3N0YXRpYyBwZ19jcmMzMmMKK3BnX2NvbXBfY3JjMzJjX2Nob29zZShwZ19jcmMzMmMg Y3JjLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQoreworCS8qCisJICogU2V0IGZhbGxi YWNrLiBXZSBtdXN0IGd1YXJkIHNpbmNlIHNsaWNpbmctYnktOCBpcyBub3QgdmlzaWJsZQorCSAq IGV2ZXJ5d2hlcmUuCisJICovCisjaWZkZWYgVVNFX1NTRTQyX0NSQzMyQ19XSVRIX1JVTlRJTUVf Q0hFQ0sKKwlwZ19jb21wX2NyYzMyYyA9IHBnX2NvbXBfY3JjMzJjX3NiODsKKyNlbmRpZgorCisJ aWYgKHg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19TU0U0XzIpKQorCQlwZ19jb21wX2NyYzMyYyA9 IHBnX2NvbXBfY3JjMzJjX3NzZTQyOworCisjaWZkZWYgVVNFX0FWWDUxMl9DUkMzMkNfV0lUSF9S VU5USU1FX0NIRUNLCisJaWYgKHg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19BVlg1MTJfVkwpICYm CisJCXg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19WUENMTVVMUURRKSkKKwkJcGdfY29tcF9jcmMz MmMgPSBwZ19jb21wX2NyYzMyY19hdng1MTI7CisjZW5kaWYKKworCXJldHVybiBwZ19jb21wX2Ny YzMyYyhjcmMsIGRhdGEsIGxlbik7Cit9OworCitwZ19jcmMzMmMJKCpwZ19jb21wX2NyYzMyYykg KHBnX2NyYzMyYyBjcmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pID0gcGdfY29tcF9j cmMzMmNfY2hvb3NlOwpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcGdfcG9wY291bnRfeDg2LmMgYi9z cmMvcG9ydC9wZ19wb3Bjb3VudF94ODYuYwppbmRleCA2YmNlMDg5NDMyZi4uYTk5NjEzZjE4MTgg MTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L3BnX3BvcGNvdW50X3g4Ni5jCisrKyBiL3NyYy9wb3J0L3Bn X3BvcGNvdW50X3g4Ni5jCkBAIC0xNCwxOSArMTQsMTIgQEAKIAogI2lmZGVmIEhBVkVfWDg2XzY0 X1BPUENOVFEKIAotI2lmIGRlZmluZWQoSEFWRV9fR0VUX0NQVUlEKSB8fCBkZWZpbmVkKEhBVkVf X0dFVF9DUFVJRF9DT1VOVCkKLSNpbmNsdWRlIDxjcHVpZC5oPgotI2VuZGlmCi0KICNpZmRlZiBV U0VfQVZYNTEyX1BPUENOVF9XSVRIX1JVTlRJTUVfQ0hFQ0sKICNpbmNsdWRlIDxpbW1pbnRyaW4u aD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChIQVZFX19DUFVJRCkgfHwgZGVmaW5lZChIQVZFX19D UFVJREVYKQotI2luY2x1ZGUgPGludHJpbi5oPgotI2VuZGlmCi0KICNpbmNsdWRlICJwb3J0L3Bn X2JpdHV0aWxzLmgiCisjaW5jbHVkZSAicG9ydC9wZ19jcHUuaCIKIAogLyoKICAqIFRoZSBTU0U0 LjIgdmVyc2lvbnMgYXJlIGJ1aWx0IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB3ZSBhcmUgYnVpbGRp bmcgdGhlCkBAIC01OCw4NCArNTEsOSBAQCBzdGF0aWMgdWludDY0IHBnX3BvcGNvdW50X21hc2tl ZF9jaG9vc2UoY29uc3QgY2hhciAqYnVmLCBpbnQgYnl0ZXMsIGJpdHM4IG1hc2spOwogdWludDY0 CQkoKnBnX3BvcGNvdW50X29wdGltaXplZCkgKGNvbnN0IGNoYXIgKmJ1ZiwgaW50IGJ5dGVzKSA9 IHBnX3BvcGNvdW50X2Nob29zZTsKIHVpbnQ2NAkJKCpwZ19wb3Bjb3VudF9tYXNrZWRfb3B0aW1p emVkKSAoY29uc3QgY2hhciAqYnVmLCBpbnQgYnl0ZXMsIGJpdHM4IG1hc2spID0gcGdfcG9wY291 bnRfbWFza2VkX2Nob29zZTsKIAotLyoKLSAqIFJldHVybiB0cnVlIGlmIENQVUlEIGluZGljYXRl cyB0aGF0IHRoZSBQT1BDTlQgaW5zdHJ1Y3Rpb24gaXMgYXZhaWxhYmxlLgotICovCi1zdGF0aWMg Ym9vbAotcGdfcG9wY291bnRfc3NlNDJfYXZhaWxhYmxlKHZvaWQpCi17Ci0JdW5zaWduZWQgaW50 IGV4eFs0XSA9IHswLCAwLCAwLCAwfTsKLQotI2lmIGRlZmluZWQoSEFWRV9fR0VUX0NQVUlEKQot CV9fZ2V0X2NwdWlkKDEsICZleHhbMF0sICZleHhbMV0sICZleHhbMl0sICZleHhbM10pOwotI2Vs aWYgZGVmaW5lZChIQVZFX19DUFVJRCkKLQlfX2NwdWlkKGV4eCwgMSk7Ci0jZWxzZQotI2Vycm9y IGNwdWlkIGluc3RydWN0aW9uIG5vdCBhdmFpbGFibGUKLSNlbmRpZgotCi0JcmV0dXJuIChleHhb Ml0gJiAoMSA8PCAyMykpICE9IDA7CS8qIFBPUENOVCAqLwotfQogCiAjaWZkZWYgVVNFX0FWWDUx Ml9QT1BDTlRfV0lUSF9SVU5USU1FX0NIRUNLCiAKLS8qCi0gKiBEb2VzIENQVUlEIHNheSB0aGVy ZSdzIHN1cHBvcnQgZm9yIFhTQVZFIGluc3RydWN0aW9ucz8KLSAqLwotc3RhdGljIGlubGluZSBi b29sCi14c2F2ZV9hdmFpbGFibGUodm9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgZXh4WzRdID0gezAs IDAsIDAsIDB9OwotCi0jaWYgZGVmaW5lZChIQVZFX19HRVRfQ1BVSUQpCi0JX19nZXRfY3B1aWQo MSwgJmV4eFswXSwgJmV4eFsxXSwgJmV4eFsyXSwgJmV4eFszXSk7Ci0jZWxpZiBkZWZpbmVkKEhB VkVfX0NQVUlEKQotCV9fY3B1aWQoZXh4LCAxKTsKLSNlbHNlCi0jZXJyb3IgY3B1aWQgaW5zdHJ1 Y3Rpb24gbm90IGF2YWlsYWJsZQotI2VuZGlmCi0JcmV0dXJuIChleHhbMl0gJiAoMSA8PCAyNykp ICE9IDA7CS8qIG9zeHNhdmUgKi8KLX0KLQotLyoKLSAqIERvZXMgWEdFVEJWIHNheSB0aGUgWk1N IHJlZ2lzdGVycyBhcmUgZW5hYmxlZD8KLSAqCi0gKiBOQjogQ2FsbGVyIGlzIHJlc3BvbnNpYmxl IGZvciB2ZXJpZnlpbmcgdGhhdCB4c2F2ZV9hdmFpbGFibGUoKSByZXR1cm5zIHRydWUKLSAqIGJl Zm9yZSBjYWxsaW5nIHRoaXMuCi0gKi8KLSNpZmRlZiBIQVZFX1hTQVZFX0lOVFJJTlNJQ1MKLXBn X2F0dHJpYnV0ZV90YXJnZXQoInhzYXZlIikKLSNlbmRpZgotc3RhdGljIGlubGluZSBib29sCi16 bW1fcmVnc19hdmFpbGFibGUodm9pZCkKLXsKLSNpZmRlZiBIQVZFX1hTQVZFX0lOVFJJTlNJQ1MK LQlyZXR1cm4gKF94Z2V0YnYoMCkgJiAweGU2KSA9PSAweGU2OwotI2Vsc2UKLQlyZXR1cm4gZmFs c2U7Ci0jZW5kaWYKLX0KLQotLyoKLSAqIERvZXMgQ1BVSUQgc2F5IHRoZXJlJ3Mgc3VwcG9ydCBm b3IgQVZYLTUxMiBwb3Bjb3VudCBhbmQgYnl0ZS1hbmQtd29yZAotICogaW5zdHJ1Y3Rpb25zPwot ICovCi1zdGF0aWMgaW5saW5lIGJvb2wKLWF2eDUxMl9wb3BjbnRfYXZhaWxhYmxlKHZvaWQpCi17 Ci0JdW5zaWduZWQgaW50IGV4eFs0XSA9IHswLCAwLCAwLCAwfTsKLQotI2lmIGRlZmluZWQoSEFW RV9fR0VUX0NQVUlEX0NPVU5UKQotCV9fZ2V0X2NwdWlkX2NvdW50KDcsIDAsICZleHhbMF0sICZl eHhbMV0sICZleHhbMl0sICZleHhbM10pOwotI2VsaWYgZGVmaW5lZChIQVZFX19DUFVJREVYKQot CV9fY3B1aWRleChleHgsIDcsIDApOwotI2Vsc2UKLSNlcnJvciBjcHVpZCBpbnN0cnVjdGlvbiBu b3QgYXZhaWxhYmxlCi0jZW5kaWYKLQlyZXR1cm4gKGV4eFsyXSAmICgxIDw8IDE0KSkgIT0gMCAm JiAvKiBhdng1MTItdnBvcGNudGRxICovCi0JCShleHhbMV0gJiAoMSA8PCAzMCkpICE9IDA7CS8q IGF2eDUxMi1idyAqLwotfQotCiAvKgogICogUmV0dXJucyB0cnVlIGlmIHRoZSBDUFUgc3VwcG9y dHMgdGhlIGluc3RydWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFWWC01MTIKICAqIHBnX3BvcGNv dW50KCkgaW1wbGVtZW50YXRpb24uCkBAIC0xNDMsOSArNjEsOCBAQCBhdng1MTJfcG9wY250X2F2 YWlsYWJsZSh2b2lkKQogc3RhdGljIGJvb2wKIHBnX3BvcGNvdW50X2F2eDUxMl9hdmFpbGFibGUo dm9pZCkKIHsKLQlyZXR1cm4geHNhdmVfYXZhaWxhYmxlKCkgJiYKLQkJem1tX3JlZ3NfYXZhaWxh YmxlKCkgJiYKLQkJYXZ4NTEyX3BvcGNudF9hdmFpbGFibGUoKTsKKwlyZXR1cm4geDg2X2ZlYXR1 cmVfYXZhaWxhYmxlKFBHX0FWWDUxMl9CVykgJiYKKwkJeDg2X2ZlYXR1cmVfYXZhaWxhYmxlKFBH X0FWWDUxMl9WUE9QQ05URFEpOwogfQogCiAjZW5kaWYJCQkJCQkJLyogVVNFX0FWWDUxMl9QT1BD TlRfV0lUSF9SVU5USU1FX0NIRUNLICovCkBAIC0xNTksNyArNzYsNyBAQCBwZ19wb3Bjb3VudF9h dng1MTJfYXZhaWxhYmxlKHZvaWQpCiBzdGF0aWMgaW5saW5lIHZvaWQKIGNob29zZV9wb3Bjb3Vu dF9mdW5jdGlvbnModm9pZCkKIHsKLQlpZiAocGdfcG9wY291bnRfc3NlNDJfYXZhaWxhYmxlKCkp CisJaWYgKHg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19QT1BDTlQpKQogCXsKIAkJcGdfcG9wY291 bnRfb3B0aW1pemVkID0gcGdfcG9wY291bnRfc3NlNDI7CiAJCXBnX3BvcGNvdW50X21hc2tlZF9v cHRpbWl6ZWQgPSBwZ19wb3Bjb3VudF9tYXNrZWRfc3NlNDI7Ci0tIAoyLjUzLjAKCg== --0000000000005bff77064b1726d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v3-0004-Enable-autovectorizing-page-checksums-with-AVX2-w.patch" Content-Disposition: attachment; filename="v3-0004-Enable-autovectorizing-page-checksums-with-AVX2-w.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlrxbtus0 RnJvbSBmZDY5YThhOTAxMjIyMTQ1ZGNlYmQ3MjFlODhhNTdjY2YwYjk2ZjgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFNhdCwgMTQgRmViIDIwMjYgMTk6MDE6MzQgKzA3MDAKU3ViamVjdDogW1BBVENI IHYzIDQvNF0gRW5hYmxlIGF1dG92ZWN0b3JpemluZyBwYWdlIGNoZWNrc3VtcyB3aXRoIEFWWDIg d2hlcmUKIGF2YWlsYWJsZQoKV2UgYWxyZWFkeSByZWx5IG9uIGF1dG92ZWN0b3JpemF0aW9uIGZv ciBjb21wdXRpbmcgcGFnZSBjaGVja3N1bXMsCmJ1dCBvbiB4ODYgd2UgY2FuIGdldCBhYm91dCB0 d2ljZSB0aGUgcGVyZm9ybWFuY2UgYnkgYW5ub3RhdGluZwpwZ19jaGVja3N1bV9ibG9jaygpIHdp dGggZnVuY3Rpb24gdGFyZ2V0IGF0dHJpYnV0ZXMgZm9yIEFWWDIsCndoaWNoIHVzZXMgMjU2LWJp dCByZWdpc3RlcnMuCgpDby1hdXRob3JlZC1ieTogTWF0dGhldyBTdGVycmV0dCA8bWF0dGhld3N0 ZXJyZXR0MkBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbmRyZXcgS2ltIDxhbmRyZXcua2lt QGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE9sZWcgVHNlbGVicm92c2tpeSA8by50c2VsZWJyb3Zz a2l5QHBvc3RncmVzcHJvLnJ1PgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBJTJC dkE4NV81R1R1JTJCSEhuaVNidnZQJTJCOGszJTNEeFpPJTNEV0U4NE5Qd2lLeXh6dHF2cGZaM1El NDBtYWlsLmdtYWlsLmNvbQpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzIwMjUwOTEx MDU0MjIwLjM3ODQtMS1yb290JTQwaXAtMTcyLTMxLTM2LTIyOC5lYzIuaW50ZXJuYWwKLS0tCiBj b25maWcvYy1jb21waWxlci5tNCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNiArKysrKysr KysrCiBjb25maWd1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NiAr KysrKysrKysrKysrKysrKysKIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA5ICsrKysKIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDMwICsrKysrKysrKysrKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2NoZWNr c3VtLmMgICAgICAgICAgIHwgNDQgKysrKysrKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL3BnX2Nv bmZpZy5oLmluICAgICAgICAgICAgICAgICAgICB8ICAzICsrCiBzcmMvaW5jbHVkZS9wb3J0L3Bn X2NwdS5oICAgICAgICAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9j aGVja3N1bV9ibG9ja19pbnRlcm5hbC5oIHwgNDIgKysrKysrKysrKysrKysrKwogc3JjL2luY2x1 ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBsLmggICAgICAgICAgIHwgNDggKysrKysrLS0tLS0tLS0t LS0tLQogc3JjL3BvcnQvcGdfY3B1X3g4Ni5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYg KystCiBzcmMvdG9vbHMvcGdpbmNsdWRlL2hlYWRlcnNjaGVjayAgICAgICAgICAgICAgfCAgMiAr CiAxMSBmaWxlcyBjaGFuZ2VkLCAyMjQgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9ibG9ja19pbnRl cm5hbC5oCgpkaWZmIC0tZ2l0IGEvY29uZmlnL2MtY29tcGlsZXIubTQgYi9jb25maWcvYy1jb21w aWxlci5tNAppbmRleCAxNTA5ZGJmYTJhYi4uMWYzZTMxZmMyZDMgMTAwNjQ0Ci0tLSBhL2NvbmZp Zy9jLWNvbXBpbGVyLm00CisrKyBiL2NvbmZpZy9jLWNvbXBpbGVyLm00CkBAIC02MTMsNiArNjEz LDMyIEBAIGZpCiB1bmRlZmluZShbQWNfY2FjaGV2YXJdKWRubAogXSkjIFBHQUNfU1NFNDJfQ1JD MzJfSU5UUklOU0lDUwogCisjIFBHQUNfQVZYMl9TVVBQT1JUCisjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIyBDaGVjayBpZiB0aGUgY29tcGlsZXIgc3VwcG9ydHMgQVZYMiB0YXJnZXQg YXR0cmlidXRlLgorIyBUaGlzIGlzIHVzZWQgZm9yIG9wdGltaXplZCBjaGVja3N1bSBjYWxjdWxh dGlvbnMgd2l0aCBydW50aW1lIGRldGVjdGlvbi4KKyMKKyMgSWYgQVZYMiB0YXJnZXQgYXR0cmli dXRlIGlzIHN1cHBvcnRlZCwgc2V0cyBwZ2FjX2F2eDJfc3VwcG9ydC4KK0FDX0RFRlVOKFtQR0FD X0FWWDJfU1VQUE9SVF0sCitbZGVmaW5lKFtBY19jYWNoZXZhcl0sIFtBU19UUl9TSChbcGdhY19j dl9hdngyX3N1cHBvcnRdKV0pZG5sCitBQ19DQUNIRV9DSEVDSyhbZm9yIEFWWDIgdGFyZ2V0IGF0 dHJpYnV0ZSBzdXBwb3J0XSwgW0FjX2NhY2hldmFyXSwKK1tBQ19DT01QSUxFX0lGRUxTRShbQUNf TEFOR19QUk9HUkFNKFsjaW5jbHVkZSA8c3RkaW50Lmg+CisgICAgI2lmIGRlZmluZWQoX19oYXNf YXR0cmlidXRlKSAmJiBfX2hhc19hdHRyaWJ1dGUgKHRhcmdldCkKKyAgICBfX2F0dHJpYnV0ZV9f KCh0YXJnZXQoImF2eDIiKSkpCisgICAgc3RhdGljIGludCBhdngyX3Rlc3Qodm9pZCkKKyAgICB7 CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgI2VuZGlmXSwKKyAgW3JldHVybiBhdngyX3Rl c3QoKTtdKV0sCisgIFtBY19jYWNoZXZhcj15ZXNdLAorICBbQWNfY2FjaGV2YXI9bm9dKV0pCitp ZiB0ZXN0IHgiJEFjX2NhY2hldmFyIiA9IHgieWVzIjsgdGhlbgorICBwZ2FjX2F2eDJfc3VwcG9y dD15ZXMKK2ZpCit1bmRlZmluZShbQWNfY2FjaGV2YXJdKWRubAorXSkjIFBHQUNfQVZYMl9TVVBQ T1JUCisKICMgUEdBQ19BVlg1MTJfUENMTVVMX0lOVFJJTlNJQ1MKICMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAjIENoZWNrIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyBBVlgtNTEyIGNh cnJ5bGVzcyBtdWx0aXBsaWNhdGlvbgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJl CmluZGV4IDE4NTcwMzI4OWI0Li4yZDJjNjMwODAwNSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisr KyBiL2NvbmZpZ3VyZQpAQCAtMTc3MTgsNiArMTc3MTgsNTIgQEAgJGFzX2VjaG8gIiNkZWZpbmUg SEFWRV9fQ1BVSURFWCAxIiA+PmNvbmZkZWZzLmgKICAgZmkKIGZpCiAKKyMgQ2hlY2sgZm9yIEFW WDIgdGFyZ2V0IGFuZCBpbnRyaW5zaWMgc3VwcG9ydAorIworaWYgdGVzdCB4IiRob3N0X2NwdSIg PSB4Ing4Nl82NCI7IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgQVZYMiB0YXJnZXQgYXR0cmlidXRlIHN1cHBvcnQiID4mNQorJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFWWDIgdGFyZ2V0IGF0dHJpYnV0ZSBzdXBwb3J0Li4uICIg PiY2OyB9CitpZiAke3BnYWNfY3ZfYXZ4Ml9zdXBwb3J0Kzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN0 ZGludC5oPgorICAgICNpZiBkZWZpbmVkKF9faGFzX2F0dHJpYnV0ZSkgJiYgX19oYXNfYXR0cmli dXRlICh0YXJnZXQpCisgICAgX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJhdngyIikpKQorICAgIHN0 YXRpYyBpbnQgYXZ4Ml90ZXN0KHZvaWQpCisgICAgeworICAgICAgcmV0dXJuIDA7CisgICAgfQor ICAgICNlbmRpZgoraW50CittYWluICgpCit7CityZXR1cm4gYXZ4Ml90ZXN0KCk7CisgIDsKKyAg cmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0 aGVuIDoKKyAgcGdhY19jdl9hdngyX3N1cHBvcnQ9eWVzCitlbHNlCisgIHBnYWNfY3ZfYXZ4Ml9z dXBwb3J0PW5vCitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0CitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRwZ2FjX2N2X2F2eDJfc3VwcG9ydCIgPiY1CiskYXNfZWNobyAiJHBn YWNfY3ZfYXZ4Ml9zdXBwb3J0IiA+JjY7IH0KK2lmIHRlc3QgeCIkcGdhY19jdl9hdngyX3N1cHBv cnQiID0geCJ5ZXMiOyB0aGVuCisgIHBnYWNfYXZ4Ml9zdXBwb3J0PXllcworZmkKKworICBpZiB0 ZXN0IHgiJHBnYWNfYXZ4Ml9zdXBwb3J0IiA9IHgieWVzIjsgdGhlbgorCiskYXNfZWNobyAiI2Rl ZmluZSBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sgMSIgPj5jb25mZGVmcy5oCisKKyAgZmkK K2ZpCisKICMgQ2hlY2sgZm9yIFhTQVZFIGludHJpbnNpY3MKICMKIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIF94Z2V0YnYiID4mNQpkaWZmIC0t Z2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDA5NTViN2U0MzcxLi4wYjRj Mzk3MGI2OCAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAt MjEyMiw2ICsyMTIyLDE1IEBAIGVsc2UKICAgZmkKIGZpCiAKKyMgQ2hlY2sgZm9yIEFWWDIgdGFy Z2V0IGFuZCBpbnRyaW5zaWMgc3VwcG9ydAorIworaWYgdGVzdCB4IiRob3N0X2NwdSIgPSB4Ing4 Nl82NCI7IHRoZW4KKyAgUEdBQ19BVlgyX1NVUFBPUlQoKQorICBpZiB0ZXN0IHgiJHBnYWNfYXZ4 Ml9zdXBwb3J0IiA9IHgieWVzIjsgdGhlbgorICAgIEFDX0RFRklORShVU0VfQVZYMl9XSVRIX1JV TlRJTUVfQ0hFQ0ssIDEsIFtEZWZpbmUgdG8gMSB0byB1c2UgQVZYMiBpbnN0cnVjdGlvbnMgd2l0 aCBhIHJ1bnRpbWUgY2hlY2suXSkKKyAgZmkKK2ZpCisKICMgQ2hlY2sgZm9yIFhTQVZFIGludHJp bnNpY3MKICMKIFBHQUNfWFNBVkVfSU5UUklOU0lDUygpCmRpZmYgLS1naXQgYS9tZXNvbi5idWls ZCBiL21lc29uLmJ1aWxkCmluZGV4IGY2ZDU4NDJkODUyLi5mZWVhMzY1OGZmMyAxMDA2NDQKLS0t IGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQKQEAgLTIzNzcsNiArMjM3NywzNiBAQCBp bnQgbWFpbih2b2lkKQogZW5kaWYKIAogCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ2hlY2sgZm9yIHRoZSBhdmFpbGFi aWxpdHkgb2YgQVZYMiBzdXBwb3J0CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaWYgaG9zdF9jcHUgPT0gJ3g4Nl82NCcK KworICBwcm9nID0gJycnCisjaW5jbHVkZSA8aW1taW50cmluLmg+CisjaW5jbHVkZSA8c3RkaW50 Lmg+CisjaWYgZGVmaW5lZChfX2hhc19hdHRyaWJ1dGUpICYmIF9faGFzX2F0dHJpYnV0ZSAodGFy Z2V0KQorX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJhdngyIikpKQorI2VuZGlmCitzdGF0aWMgaW50 IGF2eDJfdGVzdCh2b2lkKQoreworICAgIHJldHVybiAwOworfQorCitpbnQgbWFpbih2b2lkKQor eworICAgIHJldHVybiBhdngyX3Rlc3QoKTsKK30KKycnJworCisgIGlmIGNjLmxpbmtzKHByb2cs IG5hbWU6ICdBVlgyIHN1cHBvcnQnLCBhcmdzOiB0ZXN0X2NfYXJncykKKyAgICBjZGF0YS5zZXQo J1VTRV9BVlgyX1dJVEhfUlVOVElNRV9DSEVDSycsIDEpCisgIGVuZGlmCisKK2VuZGlmCisKKwog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiAjIENoZWNrIGZvciB0aGUgYXZhaWxhYmlsaXR5IG9mIEFWWC01MTIgcG9wY291bnQg aW50cmluc2ljcy4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdl L2NoZWNrc3VtLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvY2hlY2tzdW0uYwppbmRleCA4 NzE2NjUxYzhiNS4uMDMwYzQ0ZjczMDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv cGFnZS9jaGVja3N1bS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9jaGVja3N1bS5j CkBAIC0xMywxMCArMTMsNTIgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNs dWRlICJwb3J0L3BnX2NwdS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvY2hlY2tzdW0uaCIKIC8qCiAg KiBUaGUgYWN0dWFsIGNvZGUgaXMgaW4gc3RvcmFnZS9jaGVja3N1bV9pbXBsLmguICBUaGlzIGlz IGRvbmUgc28gdGhhdAogICogZXh0ZXJuYWwgcHJvZ3JhbXMgY2FuIGluY29ycG9yYXRlIHRoZSBj aGVja3N1bSBjb2RlIGJ5ICNpbmNsdWRlJ2luZwotICogdGhhdCBmaWxlIGZyb20gdGhlIGV4cG9y dGVkIFBvc3RncmVzIGhlYWRlcnMuICAoQ29tcGFyZSBvdXIgQ1JDIGNvZGUuKQorICogdGhhdCBm aWxlIGZyb20gdGhlIGV4cG9ydGVkIFBvc3RncmVzIGhlYWRlcnMuICAoQ29tcGFyZSBvdXIgbGVn YWN5CisgKiBDUkMgY29kZSBpbiBwZ19jcmMuaC4pCisgKiBUaGUgUEdfQ0hFQ0tTVU1fSU5URVJO QUwgc3ltYm9sIGFsbG93cyBjb3JlIHRvIHVzZSBoYXJkd2FyZS1zcGVjaWZpYworICogY29kaW5n IHdpdGhvdXQgYWZmZWN0aW5nIGV4dGVybmFsIHByb2dyYW1zLgogICovCisjZGVmaW5lIFBHX0NI RUNLU1VNX0lOVEVSTkFMCiAjaW5jbHVkZSAic3RvcmFnZS9jaGVja3N1bV9pbXBsLmgiCS8qIElX WVUgcHJhZ21hOiBrZWVwICovCisKKworc3RhdGljIHVpbnQzMgorcGdfY2hlY2tzdW1fYmxvY2tf ZmFsbGJhY2soY29uc3QgUEdDaGVja3N1bW1hYmxlUGFnZSAqcGFnZSkKK3sKKyNpbmNsdWRlICJz dG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFsLmgiCit9CisKKy8qCisgKiBBVlgyLW9wdGlt aXplZCBibG9jayBjaGVja3N1bSBhbGdvcml0aG0uCisgKi8KKyNpZmRlZiBVU0VfQVZYMl9XSVRI X1JVTlRJTUVfQ0hFQ0sKK3BnX2F0dHJpYnV0ZV90YXJnZXQoImF2eDIiKQorc3RhdGljIHVpbnQz MgorcGdfY2hlY2tzdW1fYmxvY2tfYXZ4Mihjb25zdCBQR0NoZWNrc3VtbWFibGVQYWdlICpwYWdl KQoreworI2luY2x1ZGUgInN0b3JhZ2UvY2hlY2tzdW1fYmxvY2tfaW50ZXJuYWwuaCIKK30KKyNl bmRpZgkJCQkJCQkvKiBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sgKi8KKworLyoKKyAqIENo b29zZSB0aGUgYmVzdCBhdmFpbGFibGUgY2hlY2tzdW0gaW1wbGVtZW50YXRpb24uCisgKi8KK3N0 YXRpYyB1aW50MzIKK3BnX2NoZWNrc3VtX2Nob29zZShjb25zdCBQR0NoZWNrc3VtbWFibGVQYWdl ICpwYWdlKQoreworCXBnX2NoZWNrc3VtX2Jsb2NrID0gcGdfY2hlY2tzdW1fYmxvY2tfZmFsbGJh Y2s7CisKKyNpZmRlZiBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sKKwlpZiAoeDg2X2ZlYXR1 cmVfYXZhaWxhYmxlKFBHX0FWWDIpKQorCQlwZ19jaGVja3N1bV9ibG9jayA9IHBnX2NoZWNrc3Vt X2Jsb2NrX2F2eDI7CisjZW5kaWYKKworCXJldHVybiBwZ19jaGVja3N1bV9ibG9jayhwYWdlKTsK K30KKworc3RhdGljIHVpbnQzMiAoKnBnX2NoZWNrc3VtX2Jsb2NrKSAoY29uc3QgUEdDaGVja3N1 bW1hYmxlUGFnZSAqcGFnZSkgPSBwZ19jaGVja3N1bV9jaG9vc2U7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wZ19jb25maWcuaC5pbiBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCmluZGV4 IDMzOTI2OGRjOGVmLi4xZTQzZTliMmJjNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdfY29u ZmlnLmguaW4KKysrIGIvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KQEAgLTY2NSw2ICs2NjUs OSBAQAogLyogRGVmaW5lIHRvIDEgdG8gdXNlIEFWWC01MTIgQ1JDIGFsZ29yaXRobXMgd2l0aCBh IHJ1bnRpbWUgY2hlY2suICovCiAjdW5kZWYgVVNFX0FWWDUxMl9DUkMzMkNfV0lUSF9SVU5USU1F X0NIRUNLCiAKKy8qIERlZmluZSB0byAxIHRvIHVzZSBBVlgyIGluc3RydWN0aW9ucyB3aXRoIGEg cnVudGltZSBjaGVjay4gKi8KKyN1bmRlZiBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sKKwog LyogRGVmaW5lIHRvIDEgdG8gdXNlIEFWWC01MTIgcG9wY291bnQgaW5zdHJ1Y3Rpb25zIHdpdGgg YSBydW50aW1lIGNoZWNrLiAqLwogI3VuZGVmIFVTRV9BVlg1MTJfUE9QQ05UX1dJVEhfUlVOVElN RV9DSEVDSwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0L3BnX2NwdS5oIGIvc3JjL2lu Y2x1ZGUvcG9ydC9wZ19jcHUuaAppbmRleCBmZmE5YmZiM2ZkNC4uMDBlZmE5YmI5NTkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3BvcnQvcGdfY3B1LmgKKysrIGIvc3JjL2luY2x1ZGUvcG9ydC9w Z19jcHUuaApAQCAtMjQsNiArMjQsOSBAQCB0eXBlZGVmIGVudW0gWDg2RmVhdHVyZUlkCiAJUEdf U1NFNF8yLAogCVBHX1BPUENOVCwKIAorCS8qIDI1Ni1iaXQgcmVnaXN0ZXJzICovCisJUEdfQVZY MiwKKwogCS8qIDUxMi1iaXQgcmVnaXN0ZXJzICovCiAJUEdfQVZYNTEyX0JXLAogCVBHX0FWWDUx Ml9WTCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1fYmxvY2tfaW50 ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1fYmxvY2tfaW50ZXJuYWwuaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjRlNjk4N2Q2YjUKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFs LmgKQEAgLTAsMCArMSw0MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogY2hlY2tzdW1f YmxvY2tfaW50ZXJuYWwuaAorICoJICBDb3JlIGFsZ29yaXRobSBmb3IgcGFnZSBjaGVja3N1bXMg LCBzZW1pIHByaXZhdGUgdG8gY2hlY2tzdW1faW1wbC5oCisgKgkgIGFuZCBjaGVja3N1bS5jLgor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9z dG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFsLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworCisvKiB0aGVyZSBpcyBkZWxpYmVyYXRlbHkgbm90IGFuICNpZm5kZWYgQ0hFQ0tTVU1f QkxPQ0tfSU5URVJOQUxfSCBoZXJlICovCisKK3VpbnQzMgkJc3Vtc1tOX1NVTVNdOwordWludDMy CQlyZXN1bHQgPSAwOwordWludDMyCQlpLAorCQkJajsKKworLyogZW5zdXJlIHRoYXQgdGhlIHNp emUgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBhbGdvcml0aG0gKi8KK0Fzc2VydChzaXplb2YoUEdD aGVja3N1bW1hYmxlUGFnZSkgPT0gQkxDS1NaKTsKKworLyogaW5pdGlhbGl6ZSBwYXJ0aWFsIGNo ZWNrc3VtcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIG9mZnNldHMgKi8KK21lbWNweShzdW1zLCBj aGVja3N1bUJhc2VPZmZzZXRzLCBzaXplb2YoY2hlY2tzdW1CYXNlT2Zmc2V0cykpOworCisvKiBt YWluIGNoZWNrc3VtIGNhbGN1bGF0aW9uICovCitmb3IgKGkgPSAwOyBpIDwgKHVpbnQzMikgKEJM Q0tTWiAvIChzaXplb2YodWludDMyKSAqIE5fU1VNUykpOyBpKyspCisJZm9yIChqID0gMDsgaiA8 IE5fU1VNUzsgaisrKQorCQlDSEVDS1NVTV9DT01QKHN1bXNbal0sIHBhZ2UtPmRhdGFbaV1bal0p OworCisvKiBmaW5hbGx5IGFkZCBpbiB0d28gcm91bmRzIG9mIHplcm9lcyBmb3IgYWRkaXRpb25h bCBtaXhpbmcgKi8KK2ZvciAoaSA9IDA7IGkgPCAyOyBpKyspCisJZm9yIChqID0gMDsgaiA8IE5f U1VNUzsgaisrKQorCQlDSEVDS1NVTV9DT01QKHN1bXNbal0sIDApOworCisvKiB4b3IgZm9sZCBw YXJ0aWFsIGNoZWNrc3VtcyB0b2dldGhlciAqLworZm9yIChpID0gMDsgaSA8IE5fU1VNUzsgaSsr KQorCXJlc3VsdCBePSBzdW1zW2ldOworCityZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBsLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2No ZWNrc3VtX2ltcGwuaAppbmRleCA1YzJkY2JjNjNlNy4uOGEzMDhlNDIzYzMgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1faW1wbC5oCisrKyBiL3NyYy9pbmNsdWRlL3N0 b3JhZ2UvY2hlY2tzdW1faW1wbC5oCkBAIC03MywxMSArNzMsMTAgQEAKICAqIDJlLTE2IGZhbHNl IHBvc2l0aXZlIHJhdGUgd2l0aGluIG1hcmdpbiBvZiBlcnJvci4KICAqCiAgKiBWZWN0b3JpemF0 aW9uIG9mIHRoZSBhbGdvcml0aG0gcmVxdWlyZXMgMzJiaXQgeCAzMmJpdCAtPiAzMmJpdCBpbnRl Z2VyCi0gKiBtdWx0aXBsaWNhdGlvbiBpbnN0cnVjdGlvbi4gQXMgb2YgMjAxMyB0aGUgY29ycmVz cG9uZGluZyBpbnN0cnVjdGlvbiBpcwotICogYXZhaWxhYmxlIG9uIHg4NiBTU0U0LjEgZXh0ZW5z aW9ucyAocG11bGxkKSBhbmQgQVJNIE5FT04gKHZtdWwuaTMyKS4KLSAqIFZlY3Rvcml6YXRpb24g cmVxdWlyZXMgYSBjb21waWxlciB0byBkbyB0aGUgdmVjdG9yaXphdGlvbiBmb3IgdXMuIEZvciBy ZWNlbnQKLSAqIEdDQyB2ZXJzaW9ucyB0aGUgZmxhZ3MgLW1zc2U0LjEgLWZ1bnJvbGwtbG9vcHMg LWZ0cmVlLXZlY3Rvcml6ZSBhcmUgZW5vdWdoCi0gKiB0byBhY2hpZXZlIHZlY3Rvcml6YXRpb24u CisgKiBtdWx0aXBsaWNhdGlvbiBpbnN0cnVjdGlvbi4gRXhhbXBsZXMgaW5jbHVkZSB4ODYgQVZY MiBleHRlbnNpb25zICh2cG11bGxkKQorICogYW5kIEFSTSBORU9OICh2bXVsLmkzMikuIEZvciBz aW1wbGljaXR5IHdlIHJlbHkgb24gdGhlIGNvbXBpbGVyIHRvIGRvIHRoZQorICogdmVjdG9yaXph dGlvbiBmb3IgdXMuIEZvciBHQ0MgYW5kIGNsYW5nIHRoZSBmbGFncyAtZnVucm9sbC1sb29wcwor ICogLWZ0cmVlLXZlY3Rvcml6ZSBhcmUgZW5vdWdoIHRvIGFjaGlldmUgdmVjdG9yaXphdGlvbi4K ICAqCiAgKiBUaGUgb3B0aW1hbCBhbW91bnQgb2YgcGFyYWxsZWxpc20gdG8gdXNlIGRlcGVuZHMg b24gQ1BVIHNwZWNpZmljIGluc3RydWN0aW9uCiAgKiBsYXRlbmN5LCBTSU1EIGluc3RydWN0aW9u IHdpZHRoLCB0aHJvdWdocHV0IGFuZCB0aGUgYW1vdW50IG9mIHJlZ2lzdGVycwpAQCAtODksOCAr ODgsOSBAQAogICoKICAqIFRoZSBwYXJhbGxlbGlzbSBudW1iZXIgMzIgd2FzIGNob3NlbiBiYXNl ZCBvbiB0aGUgZmFjdCB0aGF0IGl0IGlzIHRoZQogICogbGFyZ2VzdCBzdGF0ZSB0aGF0IGZpdHMg aW50byBhcmNoaXRlY3R1cmFsbHkgdmlzaWJsZSB4ODYgU1NFIHJlZ2lzdGVycyB3aGlsZQotICog bGVhdmluZyBzb21lIGZyZWUgcmVnaXN0ZXJzIGZvciBpbnRlcm1lZGlhdGUgdmFsdWVzLiBGb3Ig ZnV0dXJlIHByb2Nlc3NvcnMKLSAqIHdpdGggMjU2Yml0IHZlY3RvciByZWdpc3RlcnMgdGhpcyB3 aWxsIGxlYXZlIHNvbWUgcGVyZm9ybWFuY2Ugb24gdGhlIHRhYmxlLgorICogbGVhdmluZyBzb21l IGZyZWUgcmVnaXN0ZXJzIGZvciBpbnRlcm1lZGlhdGUgdmFsdWVzLiBGb3IgcHJvY2Vzc29ycwor ICogd2l0aCAyNTZiaXQgdmVjdG9yIHJlZ2lzdGVycyB0aGlzIGxlYXZlcyBzb21lIHBlcmZvcm1h bmNlIG9uIHRoZSB0YWJsZS4KKyAqCiAgKiBXaGVuIHZlY3Rvcml6YXRpb24gaXMgbm90IGF2YWls YWJsZSBpdCBtaWdodCBiZSBiZW5lZmljaWFsIHRvIHJlc3RydWN0dXJlCiAgKiB0aGUgY29tcHV0 YXRpb24gdG8gY2FsY3VsYXRlIGEgc3Vic2V0IG9mIHRoZSBjb2x1bW5zIGF0IGEgdGltZSBhbmQg cGVyZm9ybQogICogbXVsdGlwbGUgcGFzc2VzIHRvIGF2b2lkIHJlZ2lzdGVyIHNwaWxsaW5nLiBU aGlzIG9wdGltaXphdGlvbiBvcHBvcnR1bml0eQpAQCAtMTM4LDYgKzEzOCw5IEBAIGRvIHsgXAog CShjaGVja3N1bSkgPSBfX3RtcCAqIEZOVl9QUklNRSBeIChfX3RtcCA+PiAxNyk7IFwKIH0gd2hp bGUgKDApCiAKKy8qIFByb3ZpZGUgYSBzdGF0aWMgZGVmaW5pdGlvbiBmb3IgZXh0ZXJuYWwgcHJv Z3JhbXMgKi8KKyNpZm5kZWYgUEdfQ0hFQ0tTVU1fSU5URVJOQUwKKwogLyoKICAqIEJsb2NrIGNo ZWNrc3VtIGFsZ29yaXRobS4gIFRoZSBwYWdlIG11c3QgYmUgYWRlcXVhdGVseSBhbGlnbmVkCiAg KiAoYXQgbGVhc3Qgb24gNC1ieXRlIGJvdW5kYXJ5KS4KQEAgLTE0NSwzNCArMTQ4LDEzIEBAIGRv IHsgXAogc3RhdGljIHVpbnQzMgogcGdfY2hlY2tzdW1fYmxvY2soY29uc3QgUEdDaGVja3N1bW1h YmxlUGFnZSAqcGFnZSkKIHsKLQl1aW50MzIJCXN1bXNbTl9TVU1TXTsKLQl1aW50MzIJCXJlc3Vs dCA9IDA7Ci0JdWludDMyCQlpLAotCQkJCWo7Ci0KLQkvKiBlbnN1cmUgdGhhdCB0aGUgc2l6ZSBp cyBjb21wYXRpYmxlIHdpdGggdGhlIGFsZ29yaXRobSAqLwotCUFzc2VydChzaXplb2YoUEdDaGVj a3N1bW1hYmxlUGFnZSkgPT0gQkxDS1NaKTsKLQotCS8qIGluaXRpYWxpemUgcGFydGlhbCBjaGVj a3N1bXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBvZmZzZXRzICovCi0JbWVtY3B5KHN1bXMsIGNo ZWNrc3VtQmFzZU9mZnNldHMsIHNpemVvZihjaGVja3N1bUJhc2VPZmZzZXRzKSk7Ci0KLQkvKiBt YWluIGNoZWNrc3VtIGNhbGN1bGF0aW9uICovCi0JZm9yIChpID0gMDsgaSA8ICh1aW50MzIpIChC TENLU1ogLyAoc2l6ZW9mKHVpbnQzMikgKiBOX1NVTVMpKTsgaSsrKQotCQlmb3IgKGogPSAwOyBq IDwgTl9TVU1TOyBqKyspCi0JCQlDSEVDS1NVTV9DT01QKHN1bXNbal0sIHBhZ2UtPmRhdGFbaV1b al0pOwotCi0JLyogZmluYWxseSBhZGQgaW4gdHdvIHJvdW5kcyBvZiB6ZXJvZXMgZm9yIGFkZGl0 aW9uYWwgbWl4aW5nICovCi0JZm9yIChpID0gMDsgaSA8IDI7IGkrKykKLQkJZm9yIChqID0gMDsg aiA8IE5fU1VNUzsgaisrKQotCQkJQ0hFQ0tTVU1fQ09NUChzdW1zW2pdLCAwKTsKLQotCS8qIHhv ciBmb2xkIHBhcnRpYWwgY2hlY2tzdW1zIHRvZ2V0aGVyICovCi0JZm9yIChpID0gMDsgaSA8IE5f U1VNUzsgaSsrKQotCQlyZXN1bHQgXj0gc3Vtc1tpXTsKLQotCXJldHVybiByZXN1bHQ7CisjaW5j bHVkZSAic3RvcmFnZS9jaGVja3N1bV9ibG9ja19pbnRlcm5hbC5oIgogfQogCisjZWxzZQorc3Rh dGljIHVpbnQzMiAoKnBnX2NoZWNrc3VtX2Jsb2NrKSAoY29uc3QgUEdDaGVja3N1bW1hYmxlUGFn ZSAqcGFnZSk7CisjZW5kaWYKKwogLyoKICAqIENvbXB1dGUgdGhlIGNoZWNrc3VtIGZvciBhIFBv c3RncmVzIHBhZ2UuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jIGIvc3Jj L3BvcnQvcGdfY3B1X3g4Ni5jCmluZGV4IGIwMTZhNDJiZDlhLi5hODEyZjM3OGM5NiAxMDA2NDQK LS0tIGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCisrKyBiL3NyYy9wb3J0L3BnX2NwdV94ODYuYwpA QCAtNzQsNyArNzQsNyBAQCBzZXRfeDg2X2ZlYXR1cmVzKHZvaWQpCiAJewogCQl1aW50MzIJCXhj cjBfdmFsID0gMDsKIAotCQkvKiBzZWNvbmQgY3B1aWQgY2FsbCBvbiBsZWFmIDcgdG8gY2hlY2sg ZXh0ZW5kZWQgQVZYLTUxMiBzdXBwb3J0ICovCisJCS8qIHNlY29uZCBjcHVpZCBjYWxsIG9uIGxl YWYgNyB0byBjaGVjayBleHRlbmRlZCBzdXBwb3J0ICovCiAJCW1lbXNldChleHgsIDAsIDQgKiBz aXplb2YoZXh4WzBdKSk7CiAjaWYgZGVmaW5lZChIQVZFX19HRVRfQ1BVSURfQ09VTlQpCiAJCV9f Z2V0X2NwdWlkX2NvdW50KDcsIDAsICZleHhbMF0sICZleHhbMV0sICZleHhbMl0sICZleHhbM10p OwpAQCAtODcsNiArODcsMTAgQEAgc2V0X3g4Nl9mZWF0dXJlcyh2b2lkKQogCQl4Y3IwX3ZhbCA9 IF94Z2V0YnYoMCk7CiAjZW5kaWYKIAorCQkvKiBBcmUgWU1NIHJlZ2lzdGVycyBlbmFibGVkPyAq LworCQlpZiAobWFza19hdmFpbGFibGUoeGNyMF92YWwsIFhNTSB8IFlNTSkpCisJCQlYODZGZWF0 dXJlc1tQR19BVlgyXSA9IGV4eFsxXSA+PiA1ICYgMTsKKwogCQkvKiBBcmUgWk1NIHJlZ2lzdGVy ZXMgZW5hYmxlZD8gKi8KIAkJaWYgKG1hc2tfYXZhaWxhYmxlKHhjcjBfdmFsLCBYTU0gfCBZTU0g fAogCQkJCQkJICAgT1BNQVNLIHwgWk1NMF8xNSB8IFpNTTE2XzMxKSkKZGlmZiAtLWdpdCBhL3Ny Yy90b29scy9wZ2luY2x1ZGUvaGVhZGVyc2NoZWNrIGIvc3JjL3Rvb2xzL3BnaW5jbHVkZS9oZWFk ZXJzY2hlY2sKaW5kZXggN2E2NzU1OTkxYmIuLjU2OWU3NDliMjVhIDEwMDc1NQotLS0gYS9zcmMv dG9vbHMvcGdpbmNsdWRlL2hlYWRlcnNjaGVjaworKysgYi9zcmMvdG9vbHMvcGdpbmNsdWRlL2hl YWRlcnNjaGVjawpAQCAtMTU0LDYgKzE1NCw4IEBAIGRvCiAJdGVzdCAiJGYiID0gc3JjL2luY2x1 ZGUvY2F0YWxvZy9zeXNjYWNoZV9pZHMuaCAmJiBjb250aW51ZQogCXRlc3QgIiRmIiA9IHNyYy9p bmNsdWRlL2NhdGFsb2cvc3lzY2FjaGVfaW5mby5oICYmIGNvbnRpbnVlCiAKKwl0ZXN0ICIkZiIg PSBzcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2Jsb2NrX2ludGVybmFsLmggJiYgY29udGlu dWUKKwogCSMgV2UgY2FuJ3QgbWFrZSB0aGVzZSBCaXNvbiBvdXRwdXQgZmlsZXMgY29tcGlsYWJs ZSBzdGFuZGFsb25lCiAJIyB3aXRob3V0IHVzaW5nICIlY29kZSByZXF1aXJlIiwgd2hpY2ggb2xk IEJpc29uIHZlcnNpb25zIGxhY2suCiAJIyBwYXJzZXIvZ3JhbS5oIHdpbGwgYmUgaW5jbHVkZWQg YnkgcGFyc2VyL2dyYW1wYXJzZS5oIGFueXdheS4KLS0gCjIuNTMuMAoK --0000000000005bff77064b1726d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v3-0003-Refactor-the-detection-of-ZMM-registers.patch" Content-Disposition: attachment; filename="v3-0003-Refactor-the-detection-of-ZMM-registers.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlrxbtv71 RnJvbSA0OTAzZjViOWMyN2Q2ZDg0YjBlMzNmNzUwNmQyMDA3NTM5NThiMTMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IEZyaSwgMTMgRmViIDIwMjYgMTg6MTE6MzkgKzA3MDAKU3ViamVjdDogW1BBVENI IHYzIDMvNF0gUmVmYWN0b3IgdGhlIGRldGVjdGlvbiBvZiBaTU0gcmVnaXN0ZXJzCgotIENhbGwg X3hnZXRidiB3aXRoaW4geDg2X3NldF9ydW50aW1lX2ZlYXR1cmVzIHJhdGhlciB0aGFuIGluIGEK ICBzZXBhcmF0ZSBmdW5jdGlvbgotIFVzZSBzeW1ib2xzIGZvciBYQ1IgbWFzayBiaXRzIHJhdGhl ciB0aGFuIGEgbWFnaWMgY29uc3RhbnQKCkEgZnV0dXJlIGNvbW1pdCB3aWxsIGJ1aWxkIG9uIHRo aXMgdG8gZGV0ZWN0IFlNTSByZWdpc3RlcnMgd2l0aG91dApjb2RlIGR1cGxpY2F0aW9uLgotLS0K IHNyYy9wb3J0L3BnX2NwdV94ODYuYyAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0KIHNyYy9wb3J0L3BnX2NyYzMyY19zc2U0Mi5jIHwgIDIgKy0KIDIgZmls ZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jIGIvc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCmluZGV4IDg5 NTFlNTYwZmZlLi5iMDE2YTQyYmQ5YSAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvcGdfY3B1X3g4Ni5j CisrKyBiL3NyYy9wb3J0L3BnX2NwdV94ODYuYwpAQCAtMzEsMzEgKzMxLDI4IEBACiAKICNpbmNs dWRlICJwb3J0L3BnX2NwdS5oIgogCisvKiBYU0FWRSBzdGF0ZSBjb21wb25lbnQgYml0cyB0aGF0 IHdlIG5lZWQgKi8KKyNkZWZpbmUgWE1NICgxPDwxKQorI2RlZmluZSBZTU0gICgxPDwyKQorI2Rl ZmluZSBPUE1BU0sgICgxPDw1KQorI2RlZmluZSBaTU0wXzE1ICAoMTw8NikKKyNkZWZpbmUgWk1N MTZfMzEgICgxPDw3KQorCiAKIGJvb2wJCVg4NkZlYXR1cmVzW1g4NkZlYXR1cmVzU2l6ZV0gPSB7 MH07CiAKLS8qCi0gKiBEb2VzIFhHRVRCViBzYXkgdGhlIFpNTSByZWdpc3RlcnMgYXJlIGVuYWJs ZWQ/Ci0gKgotICogTkI6IENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgdmVyaWZ5aW5nIHRoYXQg b3N4c2F2ZSBpcyBhdmFpbGFibGUKLSAqIGJlZm9yZSBjYWxsaW5nIHRoaXMuCi0gKi8KLSNpZmRl ZiBIQVZFX1hTQVZFX0lOVFJJTlNJQ1MKLXBnX2F0dHJpYnV0ZV90YXJnZXQoInhzYXZlIikKLSNl bmRpZgogc3RhdGljIGJvb2wKLXptbV9yZWdzX2F2YWlsYWJsZSh2b2lkKQorbWFza19hdmFpbGFi bGUodWludDMyIHZhbHVlLCB1aW50MzIgbWFzaykKIHsKLSNpZmRlZiBIQVZFX1hTQVZFX0lOVFJJ TlNJQ1MKLQlyZXR1cm4gKF94Z2V0YnYoMCkgJiAweGU2KSA9PSAweGU2OwotI2Vsc2UKLQlyZXR1 cm4gZmFsc2U7Ci0jZW5kaWYKKwlyZXR1cm4gKHZhbHVlICYgbWFzaykgPT0gbWFzazsKIH0KIAog LyoKICAqIFBhcnNlIHRoZSBDUFUgSUQgaW5mbyBmb3IgcnVudGltZSBjaGVja3MuCiAgKi8KKyNp ZmRlZiBIQVZFX1hTQVZFX0lOVFJJTlNJQ1MKK3BnX2F0dHJpYnV0ZV90YXJnZXQoInhzYXZlIikK KyNlbmRpZgogdm9pZAogc2V0X3g4Nl9mZWF0dXJlcyh2b2lkKQogewpAQCAtNzUsMjIgKzcyLDI5 IEBAIHNldF94ODZfZmVhdHVyZXModm9pZCkKIAkvKiBBbGwgdGhlc2UgZmVhdHVyZXMgZGVwZW5k IG9uIE9TWFNBVkUgKi8KIAlpZiAoZXh4WzJdICYgKDEgPDwgMjcpKQogCXsKLQkJLyogc2Vjb25k IGNwdWlkIGNhbGwgb24gbGVhZiA3IHRvIGNoZWNrIGV4dGVuZGVkIEFWWC01MTIgc3VwcG9ydCAq LworCQl1aW50MzIJCXhjcjBfdmFsID0gMDsKIAorCQkvKiBzZWNvbmQgY3B1aWQgY2FsbCBvbiBs ZWFmIDcgdG8gY2hlY2sgZXh0ZW5kZWQgQVZYLTUxMiBzdXBwb3J0ICovCiAJCW1lbXNldChleHgs IDAsIDQgKiBzaXplb2YoZXh4WzBdKSk7Ci0KICNpZiBkZWZpbmVkKEhBVkVfX0dFVF9DUFVJRF9D T1VOVCkKIAkJX19nZXRfY3B1aWRfY291bnQoNywgMCwgJmV4eFswXSwgJmV4eFsxXSwgJmV4eFsy XSwgJmV4eFszXSk7CiAjZWxpZiBkZWZpbmVkKEhBVkVfX0NQVUlERVgpCiAJCV9fY3B1aWRleChl eHgsIDcsIDApOwogI2VuZGlmCiAKLQkJaWYgKHptbV9yZWdzX2F2YWlsYWJsZSgpKQorI2lmZGVm IEhBVkVfWFNBVkVfSU5UUklOU0lDUworCQkvKiBnZXQgdmFsdWUgb2YgRXh0ZW5kZWQgQ29udHJv bCBSZWdpc3RlciAqLworCQl4Y3IwX3ZhbCA9IF94Z2V0YnYoMCk7CisjZW5kaWYKKworCQkvKiBB cmUgWk1NIHJlZ2lzdGVyZXMgZW5hYmxlZD8gKi8KKwkJaWYgKG1hc2tfYXZhaWxhYmxlKHhjcjBf dmFsLCBYTU0gfCBZTU0gfAorCQkJCQkJICAgT1BNQVNLIHwgWk1NMF8xNSB8IFpNTTE2XzMxKSkK IAkJewogCQkJWDg2RmVhdHVyZXNbUEdfQVZYNTEyX0JXXSA9IGV4eFsxXSA+PiAzMCAmIDE7CiAJ CQlYODZGZWF0dXJlc1tQR19BVlg1MTJfVkxdID0gZXh4WzFdID4+IDMxICYgMTsKIAotCQkJWDg2 RmVhdHVyZXNbUEdfVlBDTE1VTFFEUV0gPSBleHhbMl0gPj4gMTAgJiAxOworCQkJWDg2RmVhdHVy ZXNbUEdfQVZYNTEyX1ZQQ0xNVUxRRFFdID0gZXh4WzJdID4+IDEwICYgMTsKIAkJCVg4NkZlYXR1 cmVzW1BHX0FWWDUxMl9WUE9QQ05URFFdID0gZXh4WzJdID4+IDE0ICYgMTsKIAkJfQogCX0KZGlm ZiAtLWdpdCBhL3NyYy9wb3J0L3BnX2NyYzMyY19zc2U0Mi5jIGIvc3JjL3BvcnQvcGdfY3JjMzJj X3NzZTQyLmMKaW5kZXggMmU3NDBlMTJhN2EuLmQxZDlkNzRlNWFiIDEwMDY0NAotLS0gYS9zcmMv cG9ydC9wZ19jcmMzMmNfc3NlNDIuYworKysgYi9zcmMvcG9ydC9wZ19jcmMzMmNfc3NlNDIuYwpA QCAtMTc5LDcgKzE3OSw3IEBAIHBnX2NvbXBfY3JjMzJjX2Nob29zZShwZ19jcmMzMmMgY3JjLCBj b25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQogCiAjaWZkZWYgVVNFX0FWWDUxMl9DUkMzMkNf V0lUSF9SVU5USU1FX0NIRUNLCiAJaWYgKHg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19BVlg1MTJf VkwpICYmCi0JCXg4Nl9mZWF0dXJlX2F2YWlsYWJsZShQR19WUENMTVVMUURRKSkKKwkJeDg2X2Zl YXR1cmVfYXZhaWxhYmxlKFBHX0FWWDUxMl9WUENMTVVMUURRKSkKIAkJcGdfY29tcF9jcmMzMmMg PSBwZ19jb21wX2NyYzMyY19hdng1MTI7CiAjZW5kaWYKIAotLSAKMi41My4wCgo= --0000000000005bff77064b1726d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v3-0001-Rename-CRC-choose-files-for-future-general-purpos.patch" Content-Disposition: attachment; filename="v3-0001-Rename-CRC-choose-files-for-future-general-purpos.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlrxbtw13 RnJvbSAyOWE4MGE5YWIzYWViMjMxMDZhZmRjNjMyODFiYjUxYjIzYTBiN2E4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE5heWxvciA8am9obi5uYXlsb3JAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFdlZCwgMTEgRmViIDIwMjYgMTQ6MzQ6MTggKzA3MDAKU3ViamVjdDogW1BBVENI IHYzIDEvNF0gUmVuYW1lIENSQyAiY2hvb3NlIiBmaWxlcyBmb3IgZnV0dXJlIGdlbmVyYWwgcHVy cG9zZQoKV0lQOiB4ODYgb25seQotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDQgKystLQogY29uZmlndXJlLmFjICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgNCArKy0tCiBzcmMvcG9ydC9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxICsKIHNyYy9wb3J0L21lc29uLmJ1aWxk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMgKy0tCiBzcmMvcG9ydC97cGdfY3Jj MzJjX3NzZTQyX2Nob29zZS5jID0+IHBnX2NwdV94ODYuY30gfCA4ICsrKysrKy0tCiA1IGZpbGVz IGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCiByZW5hbWUgc3JjL3Bv cnQve3BnX2NyYzMyY19zc2U0Ml9jaG9vc2UuYyA9PiBwZ19jcHVfeDg2LmN9ICg5NCUpCgpkaWZm IC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGExMGEyYzg1YzZhLi4xODU3MDMy ODliNCAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMTgxOTYsNyAr MTgxOTYsNyBAQCBpZiB0ZXN0IHgiJFVTRV9TU0U0Ml9DUkMzMkMiID0geCIxIjsgdGhlbgogCiAk YXNfZWNobyAiI2RlZmluZSBVU0VfU1NFNDJfQ1JDMzJDIDEiID4+Y29uZmRlZnMuaAogCi0gIFBH X0NSQzMyQ19PQkpTPSJwZ19jcmMzMmNfc3NlNDIubyBwZ19jcmMzMmNfc3NlNDJfY2hvb3NlLm8i CisgIFBHX0NSQzMyQ19PQkpTPSJwZ19jcmMzMmNfc3NlNDIubyIKICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IFNTRSA0LjIiID4mNQogJGFzX2VjaG8g IlNTRSA0LjIiID4mNjsgfQogZWxzZQpAQCAtMTgyMDQsNyArMTgyMDQsNyBAQCBlbHNlCiAKICRh c19lY2hvICIjZGVmaW5lIFVTRV9TU0U0Ml9DUkMzMkNfV0lUSF9SVU5USU1FX0NIRUNLIDEiID4+ Y29uZmRlZnMuaAogCi0gICAgUEdfQ1JDMzJDX09CSlM9InBnX2NyYzMyY19zc2U0Mi5vIHBnX2Ny YzMyY19zYjgubyBwZ19jcmMzMmNfc3NlNDJfY2hvb3NlLm8iCisgICAgUEdfQ1JDMzJDX09CSlM9 InBnX2NyYzMyY19zc2U0Mi5vIHBnX2NyYzMyY19zYjgubyIKICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogU1NFIDQuMiB3aXRoIHJ1bnRpbWUgY2hl Y2siID4mNQogJGFzX2VjaG8gIlNTRSA0LjIgd2l0aCBydW50aW1lIGNoZWNrIiA+JjY7IH0KICAg ZWxzZQpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDgxNGU2 NGE5NjdlLi4wOTU1YjdlNDM3MSAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZp Z3VyZS5hYwpAQCAtMjI0NSwxMiArMjI0NSwxMiBAQCBmaQogQUNfTVNHX0NIRUNLSU5HKFt3aGlj aCBDUkMtMzJDIGltcGxlbWVudGF0aW9uIHRvIHVzZV0pCiBpZiB0ZXN0IHgiJFVTRV9TU0U0Ml9D UkMzMkMiID0geCIxIjsgdGhlbgogICBBQ19ERUZJTkUoVVNFX1NTRTQyX0NSQzMyQywgMSwgW0Rl ZmluZSB0byAxIHVzZSBJbnRlbCBTU0UgNC4yIENSQyBpbnN0cnVjdGlvbnMuXSkKLSAgUEdfQ1JD MzJDX09CSlM9InBnX2NyYzMyY19zc2U0Mi5vIHBnX2NyYzMyY19zc2U0Ml9jaG9vc2UubyIKKyAg UEdfQ1JDMzJDX09CSlM9InBnX2NyYzMyY19zc2U0Mi5vIgogICBBQ19NU0dfUkVTVUxUKFNTRSA0 LjIpCiBlbHNlCiAgIGlmIHRlc3QgeCIkVVNFX1NTRTQyX0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hF Q0siID0geCIxIjsgdGhlbgogICAgIEFDX0RFRklORShVU0VfU1NFNDJfQ1JDMzJDX1dJVEhfUlVO VElNRV9DSEVDSywgMSwgW0RlZmluZSB0byAxIHRvIHVzZSBJbnRlbCBTU0UgNC4yIENSQyBpbnN0 cnVjdGlvbnMgd2l0aCBhIHJ1bnRpbWUgY2hlY2suXSkKLSAgICBQR19DUkMzMkNfT0JKUz0icGdf Y3JjMzJjX3NzZTQyLm8gcGdfY3JjMzJjX3NiOC5vIHBnX2NyYzMyY19zc2U0Ml9jaG9vc2UubyIK KyAgICBQR19DUkMzMkNfT0JKUz0icGdfY3JjMzJjX3NzZTQyLm8gcGdfY3JjMzJjX3NiOC5vIgog ICAgIEFDX01TR19SRVNVTFQoU1NFIDQuMiB3aXRoIHJ1bnRpbWUgY2hlY2spCiAgIGVsc2UKICAg ICBpZiB0ZXN0IHgiJFVTRV9BUk1WOF9DUkMzMkMiID0geCIxIjsgdGhlbgpkaWZmIC0tZ2l0IGEv c3JjL3BvcnQvTWFrZWZpbGUgYi9zcmMvcG9ydC9NYWtlZmlsZQppbmRleCA2ZTNiN2QxNTRlZC4u NDdjZmVhMTUwN2QgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L01ha2VmaWxlCisrKyBiL3NyYy9wb3J0 L01ha2VmaWxlCkBAIC00NCw2ICs0NCw3IEBAIE9CSlMgPSBcCiAJbm9ibG9jay5vIFwKIAlwYXRo Lm8gXAogCXBnX2JpdHV0aWxzLm8gXAorCXBnX2NwdV94ODYubyBcCiAJcGdfbG9jYWxlY29udl9y Lm8gXAogCXBnX251bWEubyBcCiAJcGdfcG9wY291bnRfYWFyY2g2NC5vIFwKZGlmZiAtLWdpdCBh L3NyYy9wb3J0L21lc29uLmJ1aWxkIGIvc3JjL3BvcnQvbWVzb24uYnVpbGQKaW5kZXggZDdkNGU3 MDViODkuLmVkYjJlNTYzMmJkIDEwMDY0NAotLS0gYS9zcmMvcG9ydC9tZXNvbi5idWlsZAorKysg Yi9zcmMvcG9ydC9tZXNvbi5idWlsZApAQCAtNyw2ICs3LDcgQEAgcGdwb3J0X3NvdXJjZXMgPSBb CiAgICdub2Jsb2NrLmMnLAogICAncGF0aC5jJywKICAgJ3BnX2JpdHV0aWxzLmMnLAorICAncGdf Y3B1X3g4Ni5jJywKICAgJ3BnX2xvY2FsZWNvbnZfci5jJywKICAgJ3BnX251bWEuYycsCiAgICdw Z19wb3Bjb3VudF9hYXJjaDY0LmMnLApAQCAtODYsOCArODcsNiBAQCByZXBsYWNlX2Z1bmNzX3Bv cyA9IFsKICAgIyB4ODYveDY0CiAgIFsncGdfY3JjMzJjX3NzZTQyJywgJ1VTRV9TU0U0Ml9DUkMz MkMnXSwKICAgWydwZ19jcmMzMmNfc3NlNDInLCAnVVNFX1NTRTQyX0NSQzMyQ19XSVRIX1JVTlRJ TUVfQ0hFQ0snXSwKLSAgWydwZ19jcmMzMmNfc3NlNDJfY2hvb3NlJywgJ1VTRV9TU0U0Ml9DUkMz MkMnXSwKLSAgWydwZ19jcmMzMmNfc3NlNDJfY2hvb3NlJywgJ1VTRV9TU0U0Ml9DUkMzMkNfV0lU SF9SVU5USU1FX0NIRUNLJ10sCiAgIFsncGdfY3JjMzJjX3NiOCcsICdVU0VfU1NFNDJfQ1JDMzJD X1dJVEhfUlVOVElNRV9DSEVDSyddLAogCiAgICMgYXJtIC8gYWFyY2g2NApkaWZmIC0tZ2l0IGEv c3JjL3BvcnQvcGdfY3JjMzJjX3NzZTQyX2Nob29zZS5jIGIvc3JjL3BvcnQvcGdfY3B1X3g4Ni5j CnNpbWlsYXJpdHkgaW5kZXggOTQlCnJlbmFtZSBmcm9tIHNyYy9wb3J0L3BnX2NyYzMyY19zc2U0 Ml9jaG9vc2UuYwpyZW5hbWUgdG8gc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCmluZGV4IGY1ODY0NzY5 NjRmLi45OThhNzBmZmE0MSAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvcGdfY3JjMzJjX3NzZTQyX2No b29zZS5jCisrKyBiL3NyYy9wb3J0L3BnX2NwdV94ODYuYwpAQCAtMSw2ICsxLDYgQEAKIC8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICoKLSAqIHBnX2NyYzMyY19zc2U0Ml9jaG9vc2UuYworICogcGdfY3B1 X3g4Ni5jCiAgKgkgIENob29zZSBiZXR3ZWVuIEludGVsIFNTRSA0LjIgYW5kIHNvZnR3YXJlIENS Qy0zMkMgaW1wbGVtZW50YXRpb24uCiAgKgogICogT24gZmlyc3QgY2FsbCwgY2hlY2tzIGlmIHRo ZSBDUFUgd2UncmUgcnVubmluZyBvbiBzdXBwb3J0cyBJbnRlbCBTU0UKQEAgLTEzLDEzICsxMywx NSBAQAogICoKICAqCiAgKiBJREVOVElGSUNBVElPTgotICoJICBzcmMvcG9ydC9wZ19jcmMzMmNf c3NlNDJfY2hvb3NlLmMKKyAqCSAgc3JjL3BvcnQvcGdfY3B1X3g4Ni5jCiAgKgogICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgKi8KIAogI2luY2x1ZGUgImMuaCIKIAorI2lmIGRlZmluZWQoVVNFX1NTRTIp IHx8IGRlZmluZWQoX19pMzg2X18pCisKICNpZiBkZWZpbmVkKEhBVkVfX0dFVF9DUFVJRCkgfHwg ZGVmaW5lZChIQVZFX19HRVRfQ1BVSURfQ09VTlQpCiAjaW5jbHVkZSA8Y3B1aWQuaD4KICNlbmRp ZgpAQCAtMTA3LDMgKzEwOSw1IEBAIHBnX2NvbXBfY3JjMzJjX2Nob29zZShwZ19jcmMzMmMgY3Jj LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQogfQogCiBwZ19jcmMzMmMJKCpwZ19jb21w X2NyYzMyYykgKHBnX2NyYzMyYyBjcmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pID0g cGdfY29tcF9jcmMzMmNfY2hvb3NlOworCisjZW5kaWYJCQkJCQkJLyogZGVmaW5lZChVU0VfU1NF MikgfHwgZGVmaW5lZChfX2kzODZfXykgKi8KLS0gCjIuNTMuMAoK --0000000000005bff77064b1726d1--