From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Nicolas Bertolo Newsgroups: gmane.emacs.devel Subject: [PATCH] [WIP] Port feature/native-comp to Windows. Date: Fri, 8 May 2020 16:55:59 -0300 Message-ID: <5eb5b953.1c69fb81.a67ce.a764@mx.google.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_FCBE8CFE-1A15-4099-88C0-FB64533C7D71_" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="31469"; mail-complaints-to="usenet@ciao.gmane.io" To: " emacs-devel@gnu.org" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri May 08 22:27:37 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jX9ar-0007zc-9v for ged-emacs-devel@m.gmane-mx.org; Fri, 08 May 2020 22:27:37 +0200 Original-Received: from localhost ([::1]:47674 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jX9aq-0001TZ-CD for ged-emacs-devel@m.gmane-mx.org; Fri, 08 May 2020 16:27:36 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56250) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jX96N-0000ZH-P9 for emacs-devel@gnu.org; Fri, 08 May 2020 15:56:07 -0400 Original-Received: from mail-qt1-x835.google.com ([2607:f8b0:4864:20::835]:36882) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jX96M-0005B5-Ae for emacs-devel@gnu.org; Fri, 08 May 2020 15:56:07 -0400 Original-Received: by mail-qt1-x835.google.com with SMTP id 4so2431456qtb.4 for ; Fri, 08 May 2020 12:56:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:mime-version:date:from:subject:thread-topic:to; bh=rBN/WnQSJcnUaOPbEqQPBq+K7nHBv2uSzR1wE0C/tRc=; b=gfpXiFNyQNB7jqCubdPBqboHx5CC3PuZGJZFm4GbHpY9ZV7cCI1lZ/xDfPhNu+Ua/w mhnqpVBUsKoY3GWTbrAw8UgP/w1MhVl3VTCUVfvN4SvZE829JJ21vMeZfApXQOnChfNz f4DUSvdSDq+Lb2CgeltcTaCXJGndygq04V+z2FBOFYwx7suQFqq6HS4AgVNJ/J+UGjgF IMfaXsLub7iqaoTOhvn75G1FBJJXp7jqVDmo9Jdh4TFNjrRHhAecfqgwbqqGsWzDYrAh pgEMMYg4O50R0Kb0DV1EPWwEjeM5WPO4orfKlWAbkgvVTLrgvNnbjs6nRT+gEti1iZ4y C+cA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:mime-version:date:from:subject :thread-topic:to; bh=rBN/WnQSJcnUaOPbEqQPBq+K7nHBv2uSzR1wE0C/tRc=; b=NiQxa79MlBe/gY4Pv88DKG9fFjqJ1Y0DRTm9qLr6iyyDtCugUEX94X7ADxJVisAy70 KRyczAM1kTm8OdtB5C54mAgo/5QkR3UiXzKd3NyDmt8K/ioXz4uLFtWFKW6n0/f95A9y DK1xI1WHl9U8mrh1vhCnNQ20yFrjbcMku5F8/jwEP6BK+thYszmArC4iMo6Mp/TpoqZF /UBsSDmBm2JjO8tJZImw3vGUD6tH3nTFR+p4vw8bPmu2/nOXflidRh7LQKxdwAa2iC2d JdLYAjIBPhNqVNJfGBQQ4llI28Xq8sxVdvk20TrOcnV3VAuYDIBr7YuHxwkrSIOyPjXF ftow== X-Gm-Message-State: AGi0PuaHFNBpedxna1fYxVOIIH0TEzzFt8Za1CokTAV4R/CVKY2R9+xw ohNqr5nIYEti1OPgkT+GyveC7i76tho= X-Google-Smtp-Source: APiQypKb5rgPOq5S3uPdNjKZxxtLp+u2H6CJILtaVqBglyu1pAWJji671FW9bOIM0O5OCSyR4/waiw== X-Received: by 2002:aed:3009:: with SMTP id 9mr4834691qte.191.1588967764472; Fri, 08 May 2020 12:56:04 -0700 (PDT) Original-Received: from smtp.gmail.com ([45.176.89.73]) by smtp.gmail.com with ESMTPSA id j11sm1838372qkk.33.2020.05.08.12.56.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 May 2020 12:56:03 -0700 (PDT) Thread-Topic: [PATCH] [WIP] Port feature/native-comp to Windows. Received-SPF: pass client-ip=2607:f8b0:4864:20::835; envelope-from=nicolasbertolo@gmail.com; helo=mail-qt1-x835.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.723, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Mailman-Approved-At: Fri, 08 May 2020 16:26:26 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:249324 Archived-At: --_FCBE8CFE-1A15-4099-88C0-FB64533C7D71_ Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8"

Hello emacs-devel

 

I have ported the feature/n= ative-comp branch to Windows. I have tested my changes in Windows 10 x64 wi= th Mingw64 GCC 10.0. Other architectures or compilers should work, but it m= ay be necessary to adjust the code a little bit.

 

I would like to thank the author of= this blogpost which was very helpful for me: http://www.albertzhou.net/blo= g/2020/01/emacs-native-comp.html

 <= /p>

As I said above other architectures or compilers sh= ould work, but it may be necessary to change the code that generates calls = to setjmp(), since there are many ways to do it. An option would be to copy= what the setjmp.h header does, but I do not think it is a good idea. The p= roper fix would be to use autoconf to detect it somehow.

 

Another issue is= that the =E2=80=9Cemacs_dir=E2=80=9D environment variable needs to be set = quite early in the initialization process. I do not know enough about the E= macs internals to make the proper changes for that, so I just added a dirty= hack.

 

There is a remaining issue involving the environment in which emac= s runs. The libgccjit likes to run in a Mingw64 environment, so it can find= the assembler, linker, etc. This is means that Emacs needs to run in a pse= udo-Unix environment. I don=E2=80=99t like this since this environment woul= d be propagated to other processes launched by Emacs, and they may not like= this.

 

I have thought about a simple fix to this but I haven=E2=80=99t i= mplemented it yet. The Emacs process that needs to run in a Mingw64 environ= ment is actually the subprocess that performs the compilation, not the main= process that runs the editor. So my idea is to run this subprocess through= a small script that setups the environment that libgccjit expects without = polluting the Emacs environment.

= --_FCBE8CFE-1A15-4099-88C0-FB64533C7D71_ Content-Type: application/octet-stream; name="0001-HACK-Ensure-the-emacs_root_dir-function-does-not-cra.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-HACK-Ensure-the-emacs_root_dir-function-does-not-cra.patch" RnJvbSAwZmQ3NGQxY2I0ZWY1MjNkZDIxYjk4MzMzNzY2ZGE3ZmI3ODQzZmE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE2OjMw OjExIC0wMzAwClN1YmplY3Q6IFtQQVRDSCAxLzZdIEhBQ0s6IEVuc3VyZSB0aGUgYGVtYWNzX3Jv b3RfZGlyYCBmdW5jdGlvbiBkb2VzIG5vdAogY3Jhc2guCgpUaGF0IGZ1bmN0aW9uIGlzIGNhbGxl ZCB3aGVuIGNhbGxpbmcgYGxvYWRfcGR1bXBgLiBUaGUgcHJvYmxlbSBpcyB0aGF0CnRoYXQgaGFw cGVucyB0b28gZWFybHkgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgYW5kIHRoZQpgZW1h Y3NfZGlyYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aWxsIG5vdCBoYXZlIGJlZW4gaW5pdGlhbGl6 ZWQgeWV0LgoKVGhlIHByb3BlciBmaXggd291bGQgYmUgdG8gaW5pdGlhbGl6ZSBgZW1hY3NfZGly YCBlYXJseSBlbm91Z2guIEkgZG8Kbm90IGtub3cgZW5vdWdoIG9mIHRoZSBFbWFjcyBpbnRlcm5h bHMgdG8gZG8gdGhhdCBzYWZlbHkuCi0tLQogc3JjL3czMi5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3czMi5j IGIvc3JjL3czMi5jCmluZGV4IDBmNjllNjUyYTUuLmE4Yzc2M2YyM2UgMTAwNjQ0Ci0tLSBhL3Ny Yy93MzIuYworKysgYi9zcmMvdzMyLmMKQEAgLTMxNTQsNyArMzE1NCw3IEBAIGVtYWNzX3Jvb3Rf ZGlyICh2b2lkKQogCiAgIHAgPSBnZXRlbnYgKCJlbWFjc19kaXIiKTsKICAgaWYgKHAgPT0gTlVM TCkKLSAgICBlbWFjc19hYm9ydCAoKTsKKyAgICBwID0gIkM6L1VzZXJzIjsKICAgZmlsZW5hbWVf ZnJvbV9hbnNpIChwLCByb290X2Rpcik7CiAgIHJvb3RfZGlyW3BhcnNlX3Jvb3QgKHJvb3RfZGly LCBOVUxMKV0gPSAnXDAnOwogICBkb3N0b3VuaXhfZmlsZW5hbWUgKHJvb3RfZGlyKTsKLS0gCjIu MjUuMS53aW5kb3dzLjEKCg== --_FCBE8CFE-1A15-4099-88C0-FB64533C7D71_ Content-Type: application/octet-stream; name="0002-Do-not-block-SIGIO-in-platforms-that-don-t-have-it.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Do-not-block-SIGIO-in-platforms-that-don-t-have-it.patch" RnJvbSAxZGVhNjRmMjRiOGU5ZWE4YThkNGVjMTM1YmQwMWZkYjI2NGUxZmQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE2OjAy OjU4IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAyLzZdIERvIG5vdCBibG9jayBTSUdJTyBpbiBwbGF0 Zm9ybXMgdGhhdCBkb24ndCBoYXZlIGl0LgoKKiBzcmMvY29tcC5jIChjb21wLS1jb21waWxlLWN0 eHQtdG8tZmlsZSk6IEFkZCBhIHByZXByb2Nlc3NvciBjaGVjayB0bwphdm9pZCBibG9ja2luZyBT SUdJTyBpbiBwbGF0Zm9ybXMgdGhhdCBkb24ndCBoYXZlIGl0LgotLS0KIHNyYy9jb21wLmMgfCAy ICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Nv bXAuYyBiL3NyYy9jb21wLmMKaW5kZXggZDAyMWJlNDc5Yi4uNzUwZmQ0YWFlZSAxMDA2NDQKLS0t IGEvc3JjL2NvbXAuYworKysgYi9zcmMvY29tcC5jCkBAIC0zMzQ1LDcgKzMzNDUsOSBAQCBERUZV TiAoImNvbXAtLWNvbXBpbGUtY3R4dC10by1maWxlIiwgRmNvbXBfX2NvbXBpbGVfY3R4dF90b19m aWxlLAogICAgICAgc2lnZW1wdHlzZXQgKCZibG9ja2VkKTsKICAgICAgIHNpZ2FkZHNldCAoJmJs b2NrZWQsIFNJR0FMUk0pOwogICAgICAgc2lnYWRkc2V0ICgmYmxvY2tlZCwgU0lHSU5UKTsKKyNp ZmRlZiBVU0FCTEVfU0lHSU8KICAgICAgIHNpZ2FkZHNldCAoJmJsb2NrZWQsIFNJR0lPKTsKKyNl bmRpZgogICAgICAgcHRocmVhZF9zaWdtYXNrIChTSUdfQkxPQ0ssICZibG9ja2VkLCAmb2xkc2V0 KTsKICAgICB9CiAgIGVtaXRfY3R4dF9jb2RlICgpOwotLSAKMi4yNS4xLndpbmRvd3MuMQoK --_FCBE8CFE-1A15-4099-88C0-FB64533C7D71_ Content-Type: application/octet-stream; name="0003-Handle-setjmp-taking-two-arguments-in-Windows.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Handle-setjmp-taking-two-arguments-in-Windows.patch" RnJvbSBhNzcxOGI0ODg5NzczYThkODg0MmY0MDdhNWQ3OTFhMmIwOGUyMzA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE1OjU2 OjA5IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAzLzZdIEhhbmRsZSBzZXRqbXAoKSB0YWtpbmcgdHdv IGFyZ3VtZW50cyBpbiBXaW5kb3dzLgoKKiBzcmMvY29tcC5jOiBBZGQgYGRlZmluZV9zZXRqbXBf ZGVwcygpYCBhbmQgYGVtaXRfc2V0am1wKClgIHdoaWNoCmFic3RyYWN0IG92ZXIgdGhpcyBkaWZm ZXJlbmNlIGluIGJlaGF2aW9yIGJldHdlZW4gb3BlcmF0aW5nIHN5c3RlbXMuCgpXQVJOSU5HOiBO b3QgYWxsIGNhc2VzIGFyZSBoYW5kbGVkIGJ5IHRoaXMgcGF0Y2guIFRoZSBNaW5ndy02NApzZXRq bXAuaCBoZWFkZXIgZGVhbHMgd2l0aCBtYW55IG90aGVyIGNvbWJpbmF0aW9ucy4gSSBkb24ndCB0 aGluayBpdAppcyBhIGdvb2QgaWRlYSB0byByZXBsaWNhdGUgdGhlIGxvZ2ljIG9mIHRoYXQgaGVh ZGVyIGluc2lkZQplbWFjcy4gKE1heWJlIGEgZmV3IGxpbmVzIGluIHRoZSBjb25maWd1cmUgc2Ny aXB0IGNvdWxkIGJlIGFkZGVkIHRvCmhhbmRsZSB0aGlzIHByb2JsZW0/KQotLS0KIHNyYy9jb21w LmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9jb21wLmMgYi9zcmMvY29tcC5jCmluZGV4IDc1MGZkNGFhZWUuLjhh NTQzZTA2OWQgMTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMKKysrIGIvc3JjL2NvbXAuYwpAQCAtMjIs NiArMjIsNyBAQAogCiAjaWZkZWYgSEFWRV9OQVRJVkVfQ09NUAogCisjaW5jbHVkZSA8c2V0am1w Lmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxz aWduYWwuaD4KQEAgLTc0LDEwICs3NSwxNSBAQCAjZGVmaW5lIERFQ0xfQkxPQ0sobmFtZSwgZnVu YykJCQkJXAogICBnY2Nfaml0X2Jsb2NrICoobmFtZSkgPQkJCQlcCiAgICAgZ2NjX2ppdF9mdW5j dGlvbl9uZXdfYmxvY2sgKChmdW5jKSwgU1RSIChuYW1lKSkKIAotI2lmZGVmIEhBVkVfX1NFVEpN UAotI2RlZmluZSBTRVRKTVAgX3NldGptcAorI2lmbmRlZiBfV0lOMzIKKyMgaWZkZWYgSEFWRV9f U0VUSk1QCisjICBkZWZpbmUgU0VUSk1QIF9zZXRqbXAKKyMgZWxzZQorIyAgZGVmaW5lIFNFVEpN UCBzZXRqbXAKKyMgZW5kaWYKICNlbHNlCi0jZGVmaW5lIFNFVEpNUCBzZXRqbXAKKy8qIHNuaXBw ZXQgZnJvbSBNSU5HVy02NCBzZXRqbXAuaCAqLworIyBkZWZpbmUgU0VUSk1QIF9zZXRqbXAKICNl bmRpZgogI2RlZmluZSBTRVRKTVBfTkFNRSBTRVRKTVAKIApAQCAtMTc0LDYgKzE4MCw5IEBAICNk ZWZpbmUgRl9SRUxPQ19NQVhfU0laRSAxNTAwCiAgIGdjY19qaXRfZnVuY3Rpb24gKnNldGNkcjsK ICAgZ2NjX2ppdF9mdW5jdGlvbiAqY2hlY2tfdHlwZTsKICAgZ2NjX2ppdF9mdW5jdGlvbiAqY2hl Y2tfaW1wdXJlOworI2lmZGVmIF9XSU4zMgorICBnY2Nfaml0X2Z1bmN0aW9uICpzZXRqbXBfY3R4 X2Z1bmM7CisjZW5kaWYKICAgTGlzcF9PYmplY3QgZnVuY19ibG9ja3NfaDsgLyogYmxrX25hbWUg LT4gZ2NjX2Jsb2NrLiAgKi8KICAgTGlzcF9PYmplY3QgZXhwb3J0ZWRfZnVuY3NfaDsgLyogYy1m dW5jLW5hbWUgLT4gZ2NjX2ppdF9mdW5jdGlvbiAqLiAgKi8KICAgTGlzcF9PYmplY3QgaW1wb3J0 ZWRfZnVuY3NfaDsgLyogc3Vicl9uYW1lIC0+IGdjY19qaXRfZmllbGQgKnJlbG9jX2ZpZWxkLiAg Ki8KQEAgLTE0NzQsNiArMTQ4MywyOSBAQCBlbWl0X2xpbXBsZV9jYWxsX3JlZiAoTGlzcF9PYmpl Y3QgaW5zbiwgYm9vbCBkaXJlY3QpCiAJCQlkaXJlY3QpOwogfQogCitzdGF0aWMgZ2NjX2ppdF9y dmFsdWUgKgorZW1pdF9zZXRqbXAgKGdjY19qaXRfcnZhbHVlICpidWYpCit7CisjaWZuZGVmIF9X SU4zMgorICBnY2Nfaml0X3J2YWx1ZSAqYXJnc1tdID0ge2J1Zn07CisgIHJldHVybiBlbWl0X2Nh bGwgKGludGVybl9jX3N0cmluZyAoU1RSIChTRVRKTVBfTkFNRSkpLCBjb21wLmludF90eXBlLCAx LCBhcmdzLAorICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyNlbHNlCisgIC8qIF9zZXRqbXAg KGJ1ZiwgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MgKDApKSAqLworICBnY2Nfaml0X3J2YWx1ZSAq YXJnc1syXTsKKworICBhcmdzWzBdID0gZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9p bnQgKGNvbXAuY3R4dCwgY29tcC51bnNpZ25lZF90eXBlLCAwKTsKKworICBhcmdzWzFdID0gZ2Nj X2ppdF9jb250ZXh0X25ld19jYWxsKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbXAuc2V0am1wX2N0eF9mdW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEsIGFyZ3MpOworICBhcmdzWzBdID0gYnVmOworICByZXR1cm4gZW1pdF9jYWxsIChpbnRl cm5fY19zdHJpbmcgKFNUUiAoU0VUSk1QX05BTUUpKSwgY29tcC5pbnRfdHlwZSwgMiwgYXJncywK KyAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworI2VuZGlmCit9CisKIC8qIFJlZ2lzdGVyIGFu IGhhbmRsZXIgZm9yIGEgbm9uIGxvY2FsIGV4aXQuICAqLwogCiBzdGF0aWMgdm9pZApAQCAtMTUw MCw4ICsxNTMyLDcgQEAgZW1pdF9saW1wbGVfcHVzaF9oYW5kbGVyIChnY2Nfaml0X3J2YWx1ZSAq aGFuZGxlciwgZ2NjX2ppdF9ydmFsdWUgKmhhbmRsZXJfdHlwZSwKIAlOVUxMKTsKIAogICBnY2Nf aml0X3J2YWx1ZSAqcmVzOwotICByZXMgPQotICAgIGVtaXRfY2FsbCAoaW50ZXJuX2Nfc3RyaW5n IChTVFIgKFNFVEpNUF9OQU1FKSksIGNvbXAuaW50X3R5cGUsIDEsIGFyZ3MsIGZhbHNlKTsKKyAg cmVzID0gZW1pdF9zZXRqbXAoYXJnc1swXSk7CiAgIGVtaXRfY29uZF9qdW1wIChyZXMsIGhhbmRs ZXJfYmIsIGd1YXJkZWRfYmIpOwogfQogCkBAIC0yMDYwLDggKzIwOTEsMTQgQEAgI2RlZmluZSBB RERfSU1QT1JURUQoZl9uYW1lLCByZXRfdHlwZSwgbmFyZ3MsIGFyZ3MpCQkJICAgICAgIFwKICAg YXJnc1sxXSA9IGNvbXAuaW50X3R5cGU7CiAgIEFERF9JTVBPUlRFRCAocHVzaF9oYW5kbGVyLCBj b21wLmhhbmRsZXJfcHRyX3R5cGUsIDIsIGFyZ3MpOwogCisjaWZuZGVmIF9XSU4zMgogICBhcmdz WzBdID0gZ2NjX2ppdF90eXBlX2dldF9wb2ludGVyIChnY2Nfaml0X3N0cnVjdF9hc190eXBlIChj b21wLmptcF9idWZfcykpOwogICBBRERfSU1QT1JURUQgKFNFVEpNUF9OQU1FLCBjb21wLmludF90 eXBlLCAxLCBhcmdzKTsKKyNlbHNlCisgIGFyZ3NbMF0gPSBnY2Nfaml0X3R5cGVfZ2V0X3BvaW50 ZXIgKGdjY19qaXRfc3RydWN0X2FzX3R5cGUgKGNvbXAuam1wX2J1Zl9zKSk7CisgIGFyZ3NbMV0g PSBjb21wLnZvaWRfcHRyX3R5cGU7CisgIEFERF9JTVBPUlRFRCAoU0VUSk1QX05BTUUsIGNvbXAu aW50X3R5cGUsIDIsIGFyZ3MpOworI2VuZGlmCiAKICAgQUREX0lNUE9SVEVEIChyZWNvcmRfdW53 aW5kX3Byb3RlY3RfZXhjdXJzaW9uLCBjb21wLnZvaWRfdHlwZSwgMCwgTlVMTCk7CiAKQEAgLTIz MDEsNyArMjMzOCw3IEBAIGRlZmluZV9qbXBfYnVmICh2b2lkKQogICAgICAgZ2NjX2ppdF9jb250 ZXh0X25ld19hcnJheV90eXBlIChjb21wLmN0eHQsCiAJCQkJICAgICAgTlVMTCwKIAkJCQkgICAg ICBjb21wLmNoYXJfdHlwZSwKLQkJCQkgICAgICBzaXplb2YgKGptcF9idWYpKSwKKwkJCQkgICAg ICBzaXplb2YgKHN5c19qbXBfYnVmKSksCiAgICAgICAic3R1ZmYiKTsKICAgY29tcC5qbXBfYnVm X3MgPQogICAgIGdjY19qaXRfY29udGV4dF9uZXdfc3RydWN0X3R5cGUgKGNvbXAuY3R4dCwKQEAg LTI5NjksNiArMzAwNiwxNCBAQCBkZWZpbmVfQ0hFQ0tfSU1QVVJFICh2b2lkKQogICAgIGdjY19q aXRfYmxvY2tfZW5kX3dpdGhfdm9pZF9yZXR1cm4gKGVycl9ibG9jaywgTlVMTCk7CiB9CiAKK3N0 YXRpYyB2b2lkCitkZWZpbmVfc2V0am1wX2RlcHMgKHZvaWQpCit7CisgIGNvbXAuc2V0am1wX2N0 eF9mdW5jCisgICAgPSBnY2Nfaml0X2NvbnRleHRfZ2V0X2J1aWx0aW5fZnVuY3Rpb24gKGNvbXAu Y3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fYnVp bHRpbl9mcmFtZV9hZGRyZXNzIik7Cit9CisKIC8qIERlZmluZSBhIGZ1bmN0aW9uIHRvIGNvbnZl cnQgYm9vbGVhbiBpbnRvIHQgb3IgbmlsICovCiAKIHN0YXRpYyB2b2lkCkBAIC0zMzU3LDYgKzM0 MDIsNyBAQCBERUZVTiAoImNvbXAtLWNvbXBpbGUtY3R4dC10by1maWxlIiwgRmNvbXBfX2NvbXBp bGVfY3R4dF90b19maWxlLAogICBkZWZpbmVfUFNFVURPVkVDVE9SUCAoKTsKICAgZGVmaW5lX0NI RUNLX1RZUEUgKCk7CiAgIGRlZmluZV9DSEVDS19JTVBVUkUgKCk7CisgIGRlZmluZV9zZXRqbXBf ZGVwcyAoKTsKICAgZGVmaW5lX2Jvb2xfdG9fbGlzcF9vYmogKCk7CiAgIGRlZmluZV9zZXRjYXJf c2V0Y2RyICgpOwogICBkZWZpbmVfYWRkMV9zdWIxICgpOwotLSAKMi4yNS4xLndpbmRvd3MuMQoK --_FCBE8CFE-1A15-4099-88C0-FB64533C7D71_ Content-Type: application/octet-stream; name="0004-Handle-LISP_WORDS_ARE_POINTERS-and-CHECK_LISP_OBJECT.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0004-Handle-LISP_WORDS_ARE_POINTERS-and-CHECK_LISP_OBJECT.patch" RnJvbSA4YjM0NzI1YTgzMjk2YzQxM2MxOWE4OTcxN2I0M2E0YWVkZjQ4Mjc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE0OjMw OjE0IC0wMzAwClN1YmplY3Q6IFtQQVRDSCA0LzZdIEhhbmRsZSBMSVNQX1dPUkRTX0FSRV9QT0lO VEVSUyBhbmQKIENIRUNLX0xJU1BfT0JKRUNUX1RZUEUuCgoqIHNyYy9jb21wLmM6IEludHJvZHVj ZSB0aGUgTGlzcF9YLCBMaXNwX1dvcmQsIGFuZCBMaXNwX1dvcmRfdGFnCnR5cGVzLiBUaGVzZSB0 eXBlcyBhcmUgdXNlZCBpbnN0ZWFkIG9mIGxvbmcgb3IgbG9uZyBsb25nLiBVc2UKZW1hY3NfaW50 X3R5cGUgYW5kIGVtYWNzX3VpbnRfdHlwZXMgd2hlcmUgYXBwcm9wcmlhdGUuCihlbWl0X2NvZXJj ZSk6IEFkZCBzcGVjaWFsIGxvZ2ljIHRoYXQgaGFuZGxlcyB0aGUgY2FzZSB3aGVuCkxpc3BfT2Jq ZWN0IGlzIGEgc3RydWN0LiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgaGFuZGxpbmcgdGhlCi0tZW5h YmxlLWNoZWNrLWxpc3Atb2JqZWN0LXR5cGUgY29uZmlndXJlIG9wdGlvbi4KCiogc3JjL2xpc3Au aDogU2luY2UgbGliZ2Njaml0IGRvZXMgbm90IHN1cHBvcnQgb3BhcXVlIHVuaW9ucywgY2hhbmdl Ckxpc3BfWCB0byBiZSBzdHJ1Y3QuIFRoaXMgaXMgZG9uZSB0byBlbnN1cmUgdGhhdCB0aGUgc2Ft ZSB0eXBlcyBhcmUKdXNlZCBpbiB0aGUgc2FtZSBiaW5hcnkuIEl0IGlzIHByb2JhYmx5IHVubmVj ZXNzYXJ5IHNpbmNlIG9ubHkgYQpwb2ludGVyIHRvIGl0IGlzIHVzZWQuCi0tLQogc3JjL2NvbXAu YyB8IDMzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLQogc3JjL2xpc3AuaCB8ICAgNSArLQogMiBmaWxlcyBjaGFuZ2VkLCAyMjkgaW5zZXJ0aW9u cygrKSwgMTA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9jb21wLmMgYi9zcmMvY29t cC5jCmluZGV4IDhhNTQzZTA2OWQuLmMzN2E4ODMyMWIgMTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMK KysrIGIvc3JjL2NvbXAuYwpAQCAtMTE2LDYgKzExNiwxNiBAQCAjZGVmaW5lIEZfUkVMT0NfTUFY X1NJWkUgMTUwMAogICBnY2Nfaml0X3R5cGUgKmNoYXJfcHRyX3R5cGU7CiAgIGdjY19qaXRfdHlw ZSAqcHRyZGlmZl90eXBlOwogICBnY2Nfaml0X3R5cGUgKnVpbnRwdHJfdHlwZTsKKyNpZiBMSVNQ X1dPUkRTX0FSRV9QT0lOVEVSUworICBnY2Nfaml0X3N0cnVjdCAqbGlzcF9YX3M7CisgIGdjY19q aXRfdHlwZSAqbGlzcF9YOworI2VuZGlmCisgIGdjY19qaXRfdHlwZSAqbGlzcF93b3JkX3R5cGU7 CisgIGdjY19qaXRfdHlwZSAqbGlzcF93b3JkX3RhZ190eXBlOworI2lmZGVmIExJU1BfT0JKRUNU X0lTX1NUUlVDVAorICBnY2Nfaml0X2ZpZWxkICpsaXNwX29ial9pOworICBnY2Nfaml0X3N0cnVj dCAqbGlzcF9vYmpfczsKKyNlbmRpZgogICBnY2Nfaml0X3R5cGUgKmxpc3Bfb2JqX3R5cGU7CiAg IGdjY19qaXRfdHlwZSAqbGlzcF9vYmpfcHRyX3R5cGU7CiAgIC8qIHN0cnVjdCBMaXNwX0NvbnMg Ki8KQEAgLTE1OCw3ICsxNjgsOCBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogICBn Y2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2NfcDsKICAgZ2NjX2ppdF9maWVsZCAqY2FzdF91 bmlvbl9hc192X3A7CiAgIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfbGlzcF9jb25zX3B0 cjsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19saXNwX29iajsKKyAgZ2NjX2ppdF9m aWVsZCAqY2FzdF91bmlvbl9hc19saXNwX3dvcmQ7CisgIGdjY19qaXRfZmllbGQgKmNhc3RfdW5p b25fYXNfbGlzcF93b3JkX3RhZzsKICAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19saXNw X29ial9wdHI7CiAgIGdjY19qaXRfZnVuY3Rpb24gKmZ1bmM7IC8qIEN1cnJlbnQgZnVuY3Rpb24g YmVpbmcgY29tcGlsZWQuICAqLwogICBib29sIGZ1bmNfaGFzX25vbl9sb2NhbDsgLyogRnJvbSBj b21wLWZ1bmMgaGFzLW5vbi1sb2NhbCBzbG90LiAgKi8KQEAgLTM0Nyw4ICszNTgsMTAgQEAgdHlw ZV90b19jYXN0X2ZpZWxkIChnY2Nfaml0X3R5cGUgKnR5cGUpCiAgICAgZmllbGQgPSBjb21wLmNh c3RfdW5pb25fYXNfY19wOwogICBlbHNlIGlmICh0eXBlID09IGNvbXAubGlzcF9jb25zX3B0cl90 eXBlKQogICAgIGZpZWxkID0gY29tcC5jYXN0X3VuaW9uX2FzX2xpc3BfY29uc19wdHI7Ci0gIGVs c2UgaWYgKHR5cGUgPT0gY29tcC5saXNwX29ial90eXBlKQotICAgIGZpZWxkID0gY29tcC5jYXN0 X3VuaW9uX2FzX2xpc3Bfb2JqOworICBlbHNlIGlmICh0eXBlID09IGNvbXAubGlzcF93b3JkX3R5 cGUpCisgICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF93b3JkOworICBlbHNlIGlm ICh0eXBlID09IGNvbXAubGlzcF93b3JkX3RhZ190eXBlKQorICAgIGZpZWxkID0gY29tcC5jYXN0 X3VuaW9uX2FzX2xpc3Bfd29yZF90YWc7CiAgIGVsc2UgaWYgKHR5cGUgPT0gY29tcC5saXNwX29i al9wdHJfdHlwZSkKICAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19saXNwX29ial9wdHI7 CiAgIGVsc2UKQEAgLTYyNyw2ICs2NDAsMzEgQEAgZW1pdF9jb2VyY2UgKGdjY19qaXRfdHlwZSAq bmV3X3R5cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiAgIGlmIChuZXdfdHlwZSA9PSBvbGRfdHlw ZSkKICAgICByZXR1cm4gb2JqOwogCisjaWZkZWYgTElTUF9PQkpFQ1RfSVNfU1RSVUNUCisgIGlm IChvbGRfdHlwZSA9PSBjb21wLmxpc3Bfb2JqX3R5cGUpCisgICAgeworICAgICAgZ2NjX2ppdF9y dmFsdWUgKmx3b3Jkb2JqID0KKyAgICAgICAgZ2NjX2ppdF9ydmFsdWVfYWNjZXNzX2ZpZWxkIChv YmosIE5VTEwsIGNvbXAubGlzcF9vYmpfaSk7CisgICAgICByZXR1cm4gZW1pdF9jb2VyY2UgKG5l d190eXBlLCBsd29yZG9iaik7CisgICAgfQorCisgIGlmIChuZXdfdHlwZSA9PSBjb21wLmxpc3Bf b2JqX3R5cGUpCisgICAgeworICAgICAgZ2NjX2ppdF9ydmFsdWUgKmx3b3Jkb2JqID0KKyAgICAg ICAgZW1pdF9jb2VyY2UgKGNvbXAubGlzcF93b3JkX3R5cGUsIG9iaik7CisKKyAgICAgIGdjY19q aXRfbHZhbHVlICp0bXBfcworICAgICAgICA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2xvY2FsIChj b21wLmZ1bmMsIE5VTEwsIGNvbXAubGlzcF9vYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9ybWF0X3N0cmluZyAoImxpc3Bfb2JqXyV0ZCIsIGkrKykpOwor CisgICAgICBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50IChjb21wLmJsb2NrLCBOVUxMLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYWNjZXNz X2ZpZWxkICh0bXBfcywgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5saXNwX29ial9pKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGx3b3Jkb2JqKTsKKyAgICAgIHJldHVybiBnY2Nf aml0X2x2YWx1ZV9hc19ydmFsdWUgKHRtcF9zKTsKKyAgICB9CisjZW5kaWYKKwogICBnY2Nfaml0 X2ZpZWxkICpvcmlnX2ZpZWxkID0KICAgICB0eXBlX3RvX2Nhc3RfZmllbGQgKG9sZF90eXBlKTsK ICAgZ2NjX2ppdF9maWVsZCAqZGVzdF9maWVsZCA9IHR5cGVfdG9fY2FzdF9maWVsZCAobmV3X3R5 cGUpOwpAQCAtNjY0LDE0ICs3MDIsOCBAQCBlbWl0X2JpbmFyeV9vcCAoZW51bSBnY2Nfaml0X2Jp bmFyeV9vcCBvcCwKIC8qIFNob3VsZCBjb21lIHdpdGggbGliZ2Njaml0LiAgKi8KIAogc3RhdGlj IGdjY19qaXRfcnZhbHVlICoKLWVtaXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIChsb25nIGxvbmcg bikKK2VtaXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIChnY2Nfaml0X3R5cGUgKnR5cGUsIGxvbmcg bG9uZyBuKQogewotI2lmbmRlZiBXSURFX0VNQUNTX0lOVAotICB4c2lnbmFsMSAoUW5hdGl2ZV9p Y2UsCi0JICAgIGJ1aWxkX3N0cmluZyAoImVtaXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIGNhbGxl ZCBpbiBub24gd2lkZSBpbnQiCi0JCQkgICIgY29uZmlndXJhdGlvbiIpKTsKLSNlbmRpZgotCiAg IGVtaXRfY29tbWVudCAoZm9ybWF0X3N0cmluZyAoImVtaXQgbG9uZyBsb25nOiAlbGxkIiwgbikp OwogCiAgIGdjY19qaXRfcnZhbHVlICpoaWdoID0KQEAgLTY5Nyw3ICs3MjksNyBAQCBlbWl0X3J2 YWx1ZV9mcm9tX2xvbmdfbG9uZyAobG9uZyBsb25nIG4pCiAJCSAgICAgIDMyKSk7CiAKICAgcmV0 dXJuCi0gICAgZW1pdF9jb2VyY2UgKGNvbXAubG9uZ19sb25nX3R5cGUsCisgICAgZW1pdF9jb2Vy Y2UgKHR5cGUsCiAgICAgICBlbWl0X2JpbmFyeV9vcCAoCiAJR0NDX0pJVF9CSU5BUllfT1BfQklU V0lTRV9PUiwKIAljb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLApAQCAtNzEyLDI5ICs3NDQs MTM1IEBAIGVtaXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIChsb25nIGxvbmcgbikKIH0KIAogc3Rh dGljIGdjY19qaXRfcnZhbHVlICoKLWVtaXRfbW9zdF9wb3NpdGl2ZV9maXhudW0gKHZvaWQpCitl bWl0X3J2YWx1ZV9mcm9tX3Vuc2lnbmVkX2xvbmdfbG9uZyAoZ2NjX2ppdF90eXBlICp0eXBlLCB1 bnNpZ25lZCBsb25nIGxvbmcgbikKK3sKKyAgZW1pdF9jb21tZW50IChmb3JtYXRfc3RyaW5nICgi ZW1pdCB1bnNpZ25lZCBsb25nIGxvbmc6ICVsbHUiLCBuKSk7CisKKyAgZ2NjX2ppdF9ydmFsdWUg KmhpZ2ggPQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9uZyAoY29tcC5j dHh0LAorCQkJCQkgIGNvbXAudW5zaWduZWRfbG9uZ19sb25nX3R5cGUsCisJCQkJCSAgbiA+PiAz Mik7CisgIGdjY19qaXRfcnZhbHVlICpsb3cgPQorICAgIGVtaXRfYmluYXJ5X29wIChHQ0NfSklU X0JJTkFSWV9PUF9SU0hJRlQsCisJCSAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAor CQkgICAgZW1pdF9iaW5hcnlfb3AgKEdDQ19KSVRfQklOQVJZX09QX0xTSElGVCwKKwkJCQkgICAg Y29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKwkJCQkgICAgZ2NjX2ppdF9jb250ZXh0X25l d19ydmFsdWVfZnJvbV9sb25nICgKKwkJCQkgICAgICBjb21wLmN0eHQsCisJCQkJICAgICAgY29t cC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKwkJCQkgICAgICBuKSwKKwkJCQkgICAgZ2NjX2pp dF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKAorCQkJCSAgICAgIGNvbXAuY3R4dCwKKwkJ CQkgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAorCQkJCSAgICAgIDMyKSksCisJ CSAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoCisJCSAgICAgIGNvbXAu Y3R4dCwKKwkJICAgICAgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKwkJICAgICAgMzIp KTsKKworICByZXR1cm4gZW1pdF9jb2VyY2UgKAorICAgICAgICAgICB0eXBlLAorICAgICAgICAg ICBlbWl0X2JpbmFyeV9vcCAoCisgICAgICAgICAgICAgR0NDX0pJVF9CSU5BUllfT1BfQklUV0lT RV9PUiwKKyAgICAgICAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAorICAgICAg ICAgICAgIGVtaXRfYmluYXJ5X29wICgKKyAgICAgICAgICAgICAgIEdDQ19KSVRfQklOQVJZX09Q X0xTSElGVCwKKyAgICAgICAgICAgICAgIGNvbXAudW5zaWduZWRfbG9uZ19sb25nX3R5cGUsCisg ICAgICAgICAgICAgICBoaWdoLAorICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19y dmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSksCisg ICAgICAgICAgICAgbG93KSk7Cit9CisKK3N0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCitlbWl0X3J2 YWx1ZV9mcm9tX2VtYWNzX3VpbnQgKEVNQUNTX1VJTlQgdmFsKQoreworICBpZiAodmFsICE9IChs b25nKSB2YWwpCisgICAgeworICAgICAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVl X2Zyb21fbG9uZyAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29tcC5lbWFjc191aW50X3R5cGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpOworICAgIH0KKyAgZWxzZQor ICAgIHsKKyAgICAgIHJldHVybiBlbWl0X3J2YWx1ZV9mcm9tX3Vuc2lnbmVkX2xvbmdfbG9uZyAo Y29tcC5lbWFjc191aW50X3R5cGUsIHZhbCk7CisgICAgfQorfQorCitzdGF0aWMgZ2NjX2ppdF9y dmFsdWUgKgorZW1pdF9ydmFsdWVfZnJvbV9lbWFjc19pbnQgKEVNQUNTX0lOVCB2YWwpCit7Cisg IGlmICh2YWwgIT0gKGxvbmcpIHZhbCkKKyAgICB7CisgICAgICByZXR1cm4gZW1pdF9ydmFsdWVf ZnJvbV9sb25nX2xvbmcgKGNvbXAuZW1hY3NfaW50X3R5cGUsIHZhbCk7CisgICAgfQorICBlbHNl CisgICAgeworICAgICAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9u ZyAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29tcC5lbWFjc19pbnRfdHlwZSwgdmFsKTsKKyAgICB9Cit9CisKK3N0YXRpYyBn Y2Nfaml0X3J2YWx1ZSAqCitlbWl0X3J2YWx1ZV9mcm9tX2xpc3Bfd29yZF90YWcgKExpc3BfV29y ZF90YWcgdmFsKQogewotI2lmIEVNQUNTX0lOVF9NQVggPiBMT05HX01BWAotICByZXR1cm4gZW1p dF9ydmFsdWVfZnJvbV9sb25nX2xvbmcgKE1PU1RfUE9TSVRJVkVfRklYTlVNKTsKKyAgaWYgKHZh bCAhPSAobG9uZykgdmFsKQorICAgIHsKKyAgICAgIHJldHVybiBlbWl0X3J2YWx1ZV9mcm9tX3Vu c2lnbmVkX2xvbmdfbG9uZyAoY29tcC5saXNwX3dvcmRfdGFnX3R5cGUsIHZhbCk7CisgICAgfQor ICBlbHNlCisgICAgeworICAgICAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zy b21fbG9uZyAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29tcC5saXNwX3dvcmRfdGFnX3R5cGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpOworICAgIH0KK30KKworc3Rh dGljIGdjY19qaXRfcnZhbHVlICoKK2VtaXRfcnZhbHVlX2Zyb21fbGlzcF93b3JkIChMaXNwX1dv cmQgdmFsKQoreworI2lmIExJU1BfV09SRFNfQVJFX1BPSU5URVJTCisgIHJldHVybiBnY2Nfaml0 X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0ciAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAubGlzcF93b3JkX3R5cGUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsKTsKICNlbHNlCi0g IHJldHVybiBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcgKGNvbXAuY3R4dCwK LQkJCQkJICAgICAgIGNvbXAuZW1hY3NfaW50X3R5cGUsCi0JCQkJCSAgICAgICBNT1NUX1BPU0lU SVZFX0ZJWE5VTSk7CisgIGlmICh2YWwgIT0gKGxvbmcpIHZhbCkKKyAgICB7CisgICAgICByZXR1 cm4gZW1pdF9ydmFsdWVfZnJvbV91bnNpZ25lZF9sb25nX2xvbmcgKGNvbXAubGlzcF93b3JkX3R5 cGUsIHZhbCk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgcmV0dXJuIGdjY19qaXRfY29u dGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9uZyAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5saXNwX3dvcmRfdHlwZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCk7Cisg ICAgfQogI2VuZGlmCiB9CiAKIHN0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCi1lbWl0X21vc3RfbmVn YXRpdmVfZml4bnVtICh2b2lkKQorZW1pdF9ydmFsdWVfZnJvbV9saXNwX29iaiAoTGlzcF9PYmpl Y3Qgb2JqKQogewotI2lmIEVNQUNTX0lOVF9NQVggPiBMT05HX01BWAotICByZXR1cm4gZW1pdF9y dmFsdWVfZnJvbV9sb25nX2xvbmcgKE1PU1RfTkVHQVRJVkVfRklYTlVNKTsKKyNpZmRlZiBMSVNQ X09CSkVDVF9JU19TVFJVQ1QKKyAgcmV0dXJuIGVtaXRfY29lcmNlKGNvbXAubGlzcF9vYmpfdHlw ZSwKKyAgICAgICAgICAgICAgICAgICAgIGVtaXRfcnZhbHVlX2Zyb21fbGlzcF93b3JkIChvYmou aSkpOwogI2Vsc2UKLSAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9u ZyAoY29tcC5jdHh0LAotCQkJCQkgICAgICAgY29tcC5lbWFjc19pbnRfdHlwZSwKLQkJCQkJICAg ICAgIE1PU1RfTkVHQVRJVkVfRklYTlVNKTsKKyAgcmV0dXJuIGVtaXRfcnZhbHVlX2Zyb21fbGlz cF93b3JkIChvYmopOwogI2VuZGlmCiB9CiAKK3N0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCitlbWl0 X21vc3RfcG9zaXRpdmVfZml4bnVtICh2b2lkKQoreworICByZXR1cm4gZW1pdF9ydmFsdWVfZnJv bV9lbWFjc19pbnQoTU9TVF9QT1NJVElWRV9GSVhOVU0pOworfQorCitzdGF0aWMgZ2NjX2ppdF9y dmFsdWUgKgorZW1pdF9tb3N0X25lZ2F0aXZlX2ZpeG51bSAodm9pZCkKK3sKKyAgcmV0dXJuIGVt aXRfcnZhbHVlX2Zyb21fZW1hY3NfaW50IChNT1NUX05FR0FUSVZFX0ZJWE5VTSk7Cit9CisKIC8q CiAgICBFbWl0IHRoZSBlcXVpdmFsZW50IG9mOgogICAgKHR5cGVvZl9wdHIpICgodWludHB0cikg cHRyICsgc2l6ZV9vZl9wdHJfcmVmICogaSkKQEAgLTc2OSw3ICs5MDcsNyBAQCBlbWl0X3B0cl9h cml0aG1ldGljIChnY2Nfaml0X3J2YWx1ZSAqcHRyLCBnY2Nfaml0X3R5cGUgKnB0cl90eXBlLAog ZW1pdF9YTEkgKGdjY19qaXRfcnZhbHVlICpvYmopCiB7CiAgIGVtaXRfY29tbWVudCAoIlhMSSIp OwotICByZXR1cm4gb2JqOworICByZXR1cm4gZW1pdF9jb2VyY2UgKGNvbXAuZW1hY3NfaW50X3R5 cGUsIG9iaik7CiB9CiAKIHN0YXRpYyBnY2Nfaml0X2x2YWx1ZSAqCkBAIC03NzksNTQgKzkxNyw0 MCBAQCBlbWl0X2x2YWxfWExJIChnY2Nfaml0X2x2YWx1ZSAqb2JqKQogICByZXR1cm4gb2JqOwog fQogCi0vKgorCiBzdGF0aWMgZ2NjX2ppdF9ydmFsdWUgKgogZW1pdF9YTFAgKGdjY19qaXRfcnZh bHVlICpvYmopCiB7CiAgIGVtaXRfY29tbWVudCAoIlhMUCIpOwogCi0gIHJldHVybiBnY2Nfaml0 X3J2YWx1ZV9hY2Nlc3NfZmllbGQgKG9iaiwKLQkJCQkgICAgICBOVUxMLAotCQkJCSAgICAgIGNv bXAubGlzcF9vYmpfYXNfcHRyKTsKKyAgcmV0dXJuIGVtaXRfY29lcmNlKGNvbXAudm9pZF9wdHJf dHlwZSwgb2JqKTsKIH0KIAotc3RhdGljIGdjY19qaXRfbHZhbHVlICoKLWVtaXRfbHZhbF9YTFAg KGdjY19qaXRfbHZhbHVlICpvYmopCi17Ci0gIGVtaXRfY29tbWVudCAoImx2YWxfWExQIik7Cisv KiBUT0RPICovCisvKiBzdGF0aWMgZ2NjX2ppdF9sdmFsdWUgKiAqLworLyogZW1pdF9sdmFsX1hM UCAoZ2NjX2ppdF9sdmFsdWUgKm9iaikgKi8KKy8qIHsgKi8KKy8qICAgZW1pdF9jb21tZW50ICgi bHZhbF9YTFAiKTsgKi8KKworLyogICByZXR1cm4gZ2NjX2ppdF9sdmFsdWVfYWNjZXNzX2ZpZWxk IChvYmosICovCisvKiAJCQkJICAgICAgTlVMTCwgKi8KKy8qIAkJCQkgICAgICBjb21wLmxpc3Bf b2JqX2FzX3B0cik7ICovCisvKiB9ICovCiAKLSAgcmV0dXJuIGdjY19qaXRfbHZhbHVlX2FjY2Vz c19maWVsZCAob2JqLAotCQkJCSAgICAgIE5VTEwsCi0JCQkJICAgICAgY29tcC5saXNwX29ial9h c19wdHIpOwotfSAqLwogc3RhdGljIGdjY19qaXRfcnZhbHVlICoKLWVtaXRfWFVOVEFHIChnY2Nf aml0X3J2YWx1ZSAqYSwgZ2NjX2ppdF90eXBlICp0eXBlLCBsb25nIGxvbmcgbGlzcF93b3JkX3Rh ZykKK2VtaXRfWFVOVEFHIChnY2Nfaml0X3J2YWx1ZSAqYSwgZ2NjX2ppdF90eXBlICp0eXBlLCBM aXNwX1dvcmRfdGFnIGxpc3Bfd29yZF90YWcpCiB7CiAgIC8qICNkZWZpbmUgWFVOVEFHKGEsIHR5 cGUsIGN0eXBlKSAoKGN0eXBlICopCiAgICAgICgoY2hhciAqKSBYTFAgKGEpIC0gTElTUF9XT1JE X1RBRyAodHlwZSkpKSAqLwogICBlbWl0X2NvbW1lbnQgKCJYVU5UQUciKTsKIAotI2lmbmRlZiBX SURFX0VNQUNTX0lOVAogICByZXR1cm4gZW1pdF9jb2VyY2UgKAogCSAgIGdjY19qaXRfdHlwZV9n ZXRfcG9pbnRlciAodHlwZSksCiAJICAgZW1pdF9iaW5hcnlfb3AgKAogCSAgICAgR0NDX0pJVF9C SU5BUllfT1BfTUlOVVMsCi0JICAgICBjb21wLmVtYWNzX2ludF90eXBlLAotCSAgICAgZW1pdF9Y TEkgKGEpLAotCSAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKAotCSAg ICAgICBjb21wLmN0eHQsCi0JICAgICAgIGNvbXAuZW1hY3NfaW50X3R5cGUsCi0JICAgICAgIGxp c3Bfd29yZF90YWcpKSk7Ci0jZWxzZQotICByZXR1cm4gZW1pdF9jb2VyY2UgKAotCSAgIGdjY19q aXRfdHlwZV9nZXRfcG9pbnRlciAodHlwZSksCi0JICAgZW1pdF9iaW5hcnlfb3AgKAotCSAgICAg R0NDX0pJVF9CSU5BUllfT1BfTUlOVVMsCi0JICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190 eXBlLAotCSAgICAgLyogRklYTUUgU2hvdWxkIGJlIFhMUC4gICovCi0JICAgICBlbWl0X1hMSSAo YSksCi0JICAgICBlbWl0X3J2YWx1ZV9mcm9tX2xvbmdfbG9uZyAobGlzcF93b3JkX3RhZykpKTsK LSNlbmRpZgorCSAgICAgY29tcC51aW50cHRyX3R5cGUsCisJICAgICBlbWl0X1hMUCAoYSksCisJ ICAgICBlbWl0X3J2YWx1ZV9mcm9tX2xpc3Bfd29yZF90YWcobGlzcF93b3JkX3RhZykpKTsKIH0K IAogc3RhdGljIGdjY19qaXRfcnZhbHVlICoKQEAgLTg1Myw3ICs5NzcsNyBAQCBlbWl0X0VRIChn Y2Nfaml0X3J2YWx1ZSAqeCwgZ2NjX2ppdF9ydmFsdWUgKnkpCiB9CiAKIHN0YXRpYyBnY2Nfaml0 X3J2YWx1ZSAqCi1lbWl0X1RBR0dFRFAgKGdjY19qaXRfcnZhbHVlICpvYmosIHB0cmRpZmZfdCB0 YWcpCitlbWl0X1RBR0dFRFAgKGdjY19qaXRfcnZhbHVlICpvYmosIExpc3BfV29yZF90YWcgdGFn KQogewogICAgLyogKCEgKCgodW5zaWduZWQpIChYTEkgKGEpID4+IChVU0VfTFNCX1RBRyA/IDAg OiBWQUxCSVRTKSkgXAogCS0gKHVuc2lnbmVkKSAodGFnKSkgXApAQCAtMTA1NCwxNyArMTE3OCw3 IEBAIGVtaXRfbWFrZV9maXhudW1fTFNCX1RBRyAoZ2NjX2ppdF9ydmFsdWUgKm4pCiAJCQljb21w LmVtYWNzX2ludF90eXBlLAogCQkJdG1wLCBjb21wLmxpc3BfaW50MCk7CiAKLSAgZ2NjX2ppdF9s dmFsdWUgKnJlcyA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2xvY2FsIChjb21wLmZ1bmMsCi0JCQkJ CQkgICAgTlVMTCwKLQkJCQkJCSAgICBjb21wLmxpc3Bfb2JqX3R5cGUsCi0JCQkJCQkgICAgImxp c3Bfb2JqX2ZpeG51bSIpOwotCi0gIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQgKGNvbXAu YmxvY2ssCi0JCQkJTlVMTCwKLQkJCQllbWl0X2x2YWxfWExJIChyZXMpLAotCQkJCXRtcCk7Ci0K LSAgcmV0dXJuIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAocmVzKTsKKyAgcmV0dXJuIGVtaXRf Y29lcmNlIChjb21wLmxpc3Bfb2JqX3R5cGUsIHRtcCk7CiB9CiAKIHN0YXRpYyBnY2Nfaml0X3J2 YWx1ZSAqCkBAIC0xMDc2LDEwICsxMTkwLDggQEAgZW1pdF9tYWtlX2ZpeG51bV9NU0JfVEFHIChn Y2Nfaml0X3J2YWx1ZSAqbikKICAgICByZXR1cm4gWElMIChuKTsKICAgKi8KIAotICBnY2Nfaml0 X3J2YWx1ZSAqaW50bWFzayA9Ci0gICAgZW1pdF9jb2VyY2UgKGNvbXAuZW1hY3NfdWludF90eXBl LAotCQkgZW1pdF9ydmFsdWVfZnJvbV9sb25nX2xvbmcgKChFTUFDU19JTlRfTUFYCi0JCQkJCSAg ICAgID4+IChJTlRUWVBFQklUUyAtIDEpKSkpOworICBnY2Nfaml0X3J2YWx1ZSAqaW50bWFzayA9 IGVtaXRfcnZhbHVlX2Zyb21fZW1hY3NfdWludCAoSU5UTUFTSyk7CisKICAgbiA9IGVtaXRfYmlu YXJ5X29wIChHQ0NfSklUX0JJTkFSWV9PUF9CSVRXSVNFX0FORCwKIAkJICAgICAgY29tcC5lbWFj c191aW50X3R5cGUsCiAJCSAgICAgIGludG1hc2ssIG4pOwpAQCAtMTA5MCwxMiArMTIwMiwxMCBA QCBlbWl0X21ha2VfZml4bnVtX01TQl9UQUcgKGdjY19qaXRfcnZhbHVlICpuKQogCQkgICAgZW1p dF9iaW5hcnlfb3AgKEdDQ19KSVRfQklOQVJZX09QX0xTSElGVCwKIAkJCQkgICAgY29tcC5lbWFj c191aW50X3R5cGUsCiAJCQkJICAgIGNvbXAubGlzcF9pbnQwLAotCQkJCSAgICBnY2Nfaml0X2Nv bnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoCi0JCQkJICAgICAgY29tcC5jdHh0LAotCQkJCSAg ICAgIGNvbXAuZW1hY3NfdWludF90eXBlLAotCQkJCSAgICAgIFZBTEJJVFMpKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtaXRfcnZhbHVlX2Zyb21fZW1hY3NfdWludChW QUxCSVRTKSksCiAJCSAgICBuKTsKLSAgcmV0dXJuIGVtaXRfWExJIChlbWl0X2NvZXJjZSAoY29t cC5lbWFjc19pbnRfdHlwZSwgbikpOworCisgIHJldHVybiBlbWl0X2NvZXJjZSAoY29tcC5saXNw X29ial90eXBlLCBuKTsKIH0KIAogCkBAIC0xMTE0LDE3ICsxMjI0LDEwIEBAIGVtaXRfY29uc3Rf bGlzcF9vYmogKExpc3BfT2JqZWN0IG9iaikKICAgZW1pdF9jb21tZW50IChmb3JtYXRfc3RyaW5n ICgiY29uc3QgbGlzcCBvYmo6ICVzIiwKIAkJCSAgICAgICBTU0RBVEEgKEZwcmluMV90b19zdHJp bmcgKG9iaiwgUW5pbCkpKSk7CiAKLSAgaWYgKE5JTF9JU19aRVJPICYmIEVRIChvYmosIFFuaWwp KQorICBpZiAoRVEgKG9iaiwgUW5pbCkpCiAgICAgewogICAgICAgZ2NjX2ppdF9ydmFsdWUgKm47 Ci0jaWZkZWYgV0lERV9FTUFDU19JTlQKLSAgICAgIGVhc3NlcnQgKE5JTF9JU19aRVJPKTsKLSAg ICAgIG4gPSBlbWl0X3J2YWx1ZV9mcm9tX2xvbmdfbG9uZyAoMCk7Ci0jZWxzZQotICAgICAgbiA9 IGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fcHRyIChjb21wLmN0eHQsCi0JCQkJCSAg ICAgICBjb21wLnZvaWRfcHRyX3R5cGUsCi0JCQkJCSAgICAgICBOVUxMKTsKLSNlbmRpZgorICAg ICAgbiA9IGVtaXRfcnZhbHVlX2Zyb21fbGlzcF93b3JkICgoTGlzcF9Xb3JkKSBpUW5pbCk7CiAg ICAgICByZXR1cm4gZW1pdF9jb2VyY2UgKGNvbXAubGlzcF9vYmpfdHlwZSwgbik7CiAgICAgfQog CkBAIC0xMzQ1LDE2ICsxNDQ4LDcgQEAgZW1pdF9tdmFyX3ZhbCAoTGlzcF9PYmplY3QgbXZhcikK IAkgIC8qIFdlIGNhbiBzdGlsbCBlbWl0IGRpcmVjdGx5IG9iamVjdHMgdGhhdCBhcmUgc2VsZi1j b250YWluZWQgaW4gYQogCSAgICAgd29yZCAocmVhZCBmaXhudW1zKS4gICovCiAJICBlbWl0X2Nv bW1lbnQgKFNTREFUQSAoRnByaW4xX3RvX3N0cmluZyAoY29uc3RhbnQsIFFuaWwpKSk7Ci0JICBn Y2Nfaml0X3J2YWx1ZSAqd29yZDsKLSNpZmRlZiBXSURFX0VNQUNTX0lOVAotCSAgd29yZCA9IGVt aXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIChjb25zdGFudCk7Ci0jZWxzZQotCSAgd29yZCA9Ci0J ICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fcHRyIChjb21wLmN0eHQsCi0JCQkJ CQkgY29tcC52b2lkX3B0cl90eXBlLAotCQkJCQkJIGNvbnN0YW50KTsKLSNlbmRpZgotCSAgcmV0 dXJuIGVtaXRfY29lcmNlIChjb21wLmxpc3Bfb2JqX3R5cGUsIHdvcmQpOworICAgICAgICAgIHJl dHVybiBlbWl0X3J2YWx1ZV9mcm9tX2xpc3Bfb2JqKGNvbnN0YW50KTsKIAl9CiAgICAgICAvKiBP dGhlciBjb25zdCBvYmplY3RzIGFyZSBmZXRjaGVkIGZyb20gdGhlIHJlbG9jIGFycmF5LiAgKi8K ICAgICAgIHJldHVybiBlbWl0X2NvbnN0X2xpc3Bfb2JqIChjb25zdGFudCk7CkBAIC0yNTE4LDEx ICsyNjEyLDE2IEBAIGRlZmluZV9jYXN0X3VuaW9uICh2b2lkKQogCQkJICAgICAgIE5VTEwsCiAJ CQkgICAgICAgY29tcC5saXNwX2NvbnNfcHRyX3R5cGUsCiAJCQkgICAgICAgImNvbnNfcHRyIik7 Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX29iaiA9CisgIGNvbXAuY2FzdF91bmlvbl9hc19s aXNwX3dvcmQgPQogICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKIAkJ CSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAubGlzcF9vYmpfdHlwZSwKLQkJCSAgICAgICAi bGlzcF9vYmoiKTsKKwkJCSAgICAgICBjb21wLmxpc3Bfd29yZF90eXBlLAorCQkJICAgICAgICJs aXNwX3dvcmQiKTsKKyAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29yZF90YWcgPQorICAgIGdj Y19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAubGlz cF93b3JkX3RhZ190eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaXNwX3dv cmRfdGFnIik7CiAgIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX29ial9wdHIgPQogICAgIGdjY19q aXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKIAkJCSAgICAgICBOVUxMLApAQCAtMjU0 Myw3ICsyNjQyLDggQEAgZGVmaW5lX2Nhc3RfdW5pb24gKHZvaWQpCiAgICAgICBjb21wLmNhc3Rf dW5pb25fYXNfY19wLAogICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3ZfcCwKICAgICAgIGNvbXAu Y2FzdF91bmlvbl9hc19saXNwX2NvbnNfcHRyLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2xp c3Bfb2JqLAorICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29yZCwKKyAgICAgIGNvbXAu Y2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnLAogICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2xp c3Bfb2JqX3B0ciB9OwogICBjb21wLmNhc3RfdW5pb25fdHlwZSA9CiAgICAgZ2NjX2ppdF9jb250 ZXh0X25ld191bmlvbl90eXBlIChjb21wLmN0eHQsCkBAIC0yODEwLDggKzI5MTAsOCBAQCBkZWZp bmVfYWRkMV9zdWIxICh2b2lkKQogCQkJCQkgIEdDQ19KSVRfQ09NUEFSSVNPTl9ORSwKIAkJCQkJ ICBuX2ZpeG51bSwKIAkJCQkJICBpID09IDAKLQkJCQkJICA/IGVtaXRfbW9zdF9wb3NpdGl2ZV9m aXhudW0gKCkKLQkJCQkJICA6IGVtaXRfbW9zdF9uZWdhdGl2ZV9maXhudW0gKCkpKSwKKwkJCQkJ ICA/IGVtaXRfcnZhbHVlX2Zyb21fZW1hY3NfaW50IChNT1NUX1BPU0lUSVZFX0ZJWE5VTSkKKwkJ CQkJICA6IGVtaXRfcnZhbHVlX2Zyb21fZW1hY3NfaW50IChNT1NUX05FR0FUSVZFX0ZJWE5VTSkp KSwKIAlpbmxpbmVfYmxvY2ssCiAJZmNhbGxfYmxvY2spOwogCkBAIC0zMzA3LDkgKzM0MDcsMzEg QEAgREVGVU4gKCJjb21wLS1pbml0LWN0eHQiLCBGY29tcF9faW5pdF9jdHh0LCBTY29tcF9faW5p dF9jdHh0LAogICBjb21wLmVtYWNzX3VpbnRfdHlwZSA9IGdjY19qaXRfY29udGV4dF9nZXRfaW50 X3R5cGUgKGNvbXAuY3R4dCwKIAkJCQkJCSAgICAgICBzaXplb2YgKEVNQUNTX1VJTlQpLAogCQkJ CQkJICAgICAgIGZhbHNlKTsKLSAgLyogTm8gWExQIGlzIGVtaXR0ZWQgZm9yIG5vdyBzbyBsZXRz IGRlZmluZSB0aGlzIGFsd2F5cyBhcyBpbnRlZ2VyCi0gICAgIGRpc3JlZ2FyZGluZyBMSVNQX1dP UkRTX0FSRV9QT0lOVEVSUyB2YWx1ZS4gICovCi0gIGNvbXAubGlzcF9vYmpfdHlwZSA9IGNvbXAu ZW1hY3NfaW50X3R5cGU7CisjaWYgTElTUF9XT1JEU19BUkVfUE9JTlRFUlMKKyAgY29tcC5saXNw X1hfcyA9IGdjY19qaXRfY29udGV4dF9uZXdfb3BhcXVlX3N0cnVjdCAoY29tcC5jdHh0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlz cF9YIik7CisgIGNvbXAubGlzcF9YID0gZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZShjb21wLmxpc3Bf WF9zKTsKKyAgY29tcC5saXNwX3dvcmRfdHlwZSA9IGdjY19qaXRfdHlwZV9nZXRfcG9pbnRlcihj b21wLmxpc3BfWCk7CisjZWxzZQorICBjb21wLmxpc3Bfd29yZF90eXBlID0gY29tcC5lbWFjc19p bnRfdHlwZTsKKyNlbmRpZgorICBjb21wLmxpc3Bfd29yZF90YWdfdHlwZQorICAgID0gZ2NjX2pp dF9jb250ZXh0X2dldF9pbnRfdHlwZSAoY29tcC5jdHh0LCBzaXplb2YgKExpc3BfV29yZF90YWcp LCBmYWxzZSk7CisjaWZkZWYgTElTUF9PQkpFQ1RfSVNfU1RSVUNUCisgIGNvbXAubGlzcF9vYmpf aSA9IGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5saXNwX3dvcmRfdHlwZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImkiKTsKKyAgY29tcC5s aXNwX29ial9zID0gZ2NjX2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZSAoY29tcC5jdHh0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi TGlzcF9PYmplY3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmY29tcC5saXNwX29ial9pKTsKKyAgY29tcC5saXNwX29ial90eXBlID0gZ2Nj X2ppdF9zdHJ1Y3RfYXNfdHlwZSAoY29tcC5saXNwX29ial9zKTsKKyNlbHNlCisgIGNvbXAubGlz cF9vYmpfdHlwZSA9IGNvbXAubGlzcF93b3JkX3R5cGU7CisjZW5kaWYKICAgY29tcC5saXNwX29i al9wdHJfdHlwZSA9IGdjY19qaXRfdHlwZV9nZXRfcG9pbnRlciAoY29tcC5saXNwX29ial90eXBl KTsKICAgY29tcC5vbmUgPQogICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50 IChjb21wLmN0eHQsCkBAIC0zNjEyLDcgKzM3MzQsNyBAQCBsb2FkX2NvbXBfdW5pdCAoc3RydWN0 IExpc3BfTmF0aXZlX0NvbXBfVW5pdCAqY29tcF91LCBib29sIGxvYWRpbmdfZHVtcCwKICAgTGlz cF9PYmplY3QgKnNhdmVkX2N1ID0gZHlubGliX3N5bSAoaGFuZGxlLCBDT01QX1VOSVRfU1lNKTsK ICAgaWYgKCFzYXZlZF9jdSkKICAgICB4c2lnbmFsMSAoUW5hdGl2ZV9saXNwX2ZpbGVfaW5jb25z aXN0ZW50LCBjb21wX3UtPmZpbGUpOwotICBib29sIHJlbG9hZGluZ19jdSA9ICpzYXZlZF9jdSA/ IHRydWUgOiBmYWxzZTsKKyAgYm9vbCByZWxvYWRpbmdfY3UgPSAhTklMUCgqc2F2ZWRfY3UpOwog ICBMaXNwX09iamVjdCAqZGF0YV9lcGhfcmVsb2NzID0KICAgICBkeW5saWJfc3ltIChoYW5kbGUs IERBVEFfUkVMT0NfRVBIRU1FUkFMX1NZTSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9saXNwLmggYi9z cmMvbGlzcC5oCmluZGV4IDNkMDgyOTExZjUuLmUzZDE5NmVmOWIgMTAwNjQ0Ci0tLSBhL3NyYy9s aXNwLmgKKysrIGIvc3JjL2xpc3AuaApAQCAtMjk5LDEyICsyOTksMTIgQEAgI2RlZmluZSBHQ0FM SUdORUQodHlwZSkgKGFsaWdub2YgKHR5cGUpICUgR0NBTElHTk1FTlQgPT0gMCkKIAogLyogTGlz cF9Xb3JkIGlzIGEgc2NhbGFyIHdvcmQgc3VpdGFibGUgZm9yIGhvbGRpbmcgYSB0YWdnZWQgcG9p bnRlciBvcgogICAgaW50ZWdlci4gIFVzdWFsbHkgaXQgaXMgYSBwb2ludGVyIHRvIGEgZGVsaWJl cmF0ZWx5LWluY29tcGxldGUgdHlwZQotICAgJ3VuaW9uIExpc3BfWCcuICBIb3dldmVyLCBpdCBp cyBFTUFDU19JTlQgd2hlbiBMaXNwX09iamVjdHMgYW5kCisgICAnc3RydWN0IExpc3BfWCcuICBI b3dldmVyLCBpdCBpcyBFTUFDU19JTlQgd2hlbiBMaXNwX09iamVjdHMgYW5kCiAgICBwb2ludGVy cyBkaWZmZXIgaW4gd2lkdGguICAqLwogCiAjZGVmaW5lIExJU1BfV09SRFNfQVJFX1BPSU5URVJT IChFTUFDU19JTlRfTUFYID09IElOVFBUUl9NQVgpCiAjaWYgTElTUF9XT1JEU19BUkVfUE9JTlRF UlMKLXR5cGVkZWYgdW5pb24gTGlzcF9YICpMaXNwX1dvcmQ7Cit0eXBlZGVmIHN0cnVjdCBMaXNw X1ggKkxpc3BfV29yZDsKICNlbHNlCiB0eXBlZGVmIEVNQUNTX0lOVCBMaXNwX1dvcmQ7CiAjZW5k aWYKQEAgLTU3Myw2ICs1NzMsNyBAQCAjZGVmaW5lIEVOVU1fQkYoVFlQRSkgZW51bSBUWVBFCiAK ICNpZmRlZiBDSEVDS19MSVNQX09CSkVDVF9UWVBFCiB0eXBlZGVmIHN0cnVjdCBMaXNwX09iamVj dCB7IExpc3BfV29yZCBpOyB9IExpc3BfT2JqZWN0OworIyBkZWZpbmUgTElTUF9PQkpFQ1RfSVNf U1RSVUNUCiAjIGRlZmluZSBMSVNQX0lOSVRJQUxMWSh3KSB7d30KICMgdW5kZWYgQ0hFQ0tfTElT UF9PQkpFQ1RfVFlQRQogZW51bSBDSEVDS19MSVNQX09CSkVDVF9UWVBFIHsgQ0hFQ0tfTElTUF9P QkpFQ1RfVFlQRSA9IHRydWUgfTsKLS0gCjIuMjUuMS53aW5kb3dzLjEKCg== --_FCBE8CFE-1A15-4099-88C0-FB64533C7D71_ Content-Type: application/octet-stream; name="0005-Remove-a-layer-of-indirection-for-access-to-pure-sto.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0005-Remove-a-layer-of-indirection-for-access-to-pure-sto.patch" RnJvbSA0ZWRiM2YxMTkxNWE0MWMxYTQ1MjczZmUwZThjYmM2MjgxOGU5ODY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE2OjIz OjEwIC0wMzAwClN1YmplY3Q6IFtQQVRDSCA1LzZdIFJlbW92ZSBhIGxheWVyIG9mIGluZGlyZWN0 aW9uIGZvciBhY2Nlc3MgdG8gcHVyZSBzdG9yYWdlLgoKKiBzcmMvY29tcC5jOiBUYWtpbmcgdGhl IGFkZHJlc3Mgb2YgYW4gYXJyYXkgaXMgdGhlIHNhbWUgYXMgY2FzdGluZyBpdAp0byBhIHBvaW50 ZXIuIFRoZXJlZm9yZSwgdGhlIEMgZXhwcmVzc2lvbiBgKEVNQUNTX0lOVCAqKikgJnB1cmVgIGlz IGluCmZhY3QgYWRkaW5nIGEgbGF5ZXIgb2YgaW5kaXJlY3Rpb24gdGhhdCBpcyBub3QgbmVjZXNz YXJ5LiBUaGUgZml4IGlzCnRvIGNhc3QgdGhlIGBwdXJlYCBhcnJheSB0byBhIHBvaW50ZXIgYW5k IHN0b3JlIHRoYXQgaW4gYSB2b2lkIHBvaW50ZXIKdGhhdCBpcyBwYXJ0IG9mIHRoZSBjb21waWxl ZCBzaGFyZWQgbGlicmFyeS4KLS0tCiBzcmMvY29tcC5jIHwgMTkgKysrKysrKysrLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5kZXggYzM3YTg4MzIxYi4uNTdiYmRh MmM0ZSAxMDA2NDQKLS0tIGEvc3JjL2NvbXAuYworKysgYi9zcmMvY29tcC5jCkBAIC0zOCw3ICsz OCw3IEBACiAKIC8qIEMgc3ltYm9scyBlbWl0dGVkIGZvciB0aGUgbG9hZCByZWxvY2F0aW9uIG1l Y2hhbmlzbS4gICovCiAjZGVmaW5lIENVUlJFTlRfVEhSRUFEX1JFTE9DX1NZTSAiY3VycmVudF90 aHJlYWRfcmVsb2MiCi0jZGVmaW5lIFBVUkVfUkVMT0NfU1lNICJwdXJlX3JlbG9jIgorI2RlZmlu ZSBQVVJFX1BUUl9TWU0gInB1cmVfcHRyIgogI2RlZmluZSBEQVRBX1JFTE9DX1NZTSAiZF9yZWxv YyIKICNkZWZpbmUgREFUQV9SRUxPQ19JTVBVUkVfU1lNICJkX3JlbG9jX2ltcCIKICNkZWZpbmUg REFUQV9SRUxPQ19FUEhFTUVSQUxfU1lNICJkX3JlbG9jX2VwaCIKQEAgLTE1Miw3ICsxNTIsNyBA QCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogICBnY2Nfaml0X3R5cGUgKnRocmVhZF9z dGF0ZV9wdHJfdHlwZTsKICAgZ2NjX2ppdF9ydmFsdWUgKmN1cnJlbnRfdGhyZWFkX3JlZjsKICAg LyogT3RoZXIgZ2xvYmFscy4gICovCi0gIGdjY19qaXRfcnZhbHVlICpwdXJlX3JlZjsKKyAgZ2Nj X2ppdF9ydmFsdWUgKnB1cmVfcHRyOwogICAvKiBsaWJnY2NqaXQgaGFzIHJlYWxseSBsaW1pdGVk IHN1cHBvcnQgZm9yIGNhc3RpbmcgdGhlcmVmb3JlIHRoaXMgdW5pb24gd2lsbAogICAgICBiZSB1 c2VkIGZvciB0aGUgc2NvcGUuICAqLwogICBnY2Nfaml0X3R5cGUgKmNhc3RfdW5pb25fdHlwZTsK QEAgLTE0MTksOCArMTQxOSw3IEBAIGVtaXRfUFVSRV9QIChnY2Nfaml0X3J2YWx1ZSAqcHRyKQog CUdDQ19KSVRfQklOQVJZX09QX01JTlVTLAogCWNvbXAudWludHB0cl90eXBlLAogCXB0ciwKLQln Y2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKAotCSAgZ2NjX2ppdF9ydmFsdWVfZGVyZWZlcmVuY2Ug KGNvbXAucHVyZV9yZWYsIE5VTEwpKSksCisgICAgICAgIGNvbXAucHVyZV9wdHIpLAogICAgICAg Z2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKIAkJCQkJICAg Y29tcC51aW50cHRyX3R5cGUsCiAJCQkJCSAgIFBVUkVTSVpFKSk7CkBAIC0yMjQ0LDE0ICsyMjQz LDE0IEBAIGVtaXRfY3R4dF9jb2RlICh2b2lkKQogCWdjY19qaXRfdHlwZV9nZXRfcG9pbnRlciAo Y29tcC50aHJlYWRfc3RhdGVfcHRyX3R5cGUpLAogCUNVUlJFTlRfVEhSRUFEX1JFTE9DX1NZTSkp OwogCi0gIGNvbXAucHVyZV9yZWYgPQorICBjb21wLnB1cmVfcHRyID0KICAgICBnY2Nfaml0X2x2 YWx1ZV9hc19ydmFsdWUgKAogICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19nbG9iYWwgKAogCWNv bXAuY3R4dCwKIAlOVUxMLAogCUdDQ19KSVRfR0xPQkFMX0VYUE9SVEVELAotCWdjY19qaXRfdHlw ZV9nZXRfcG9pbnRlciAoY29tcC52b2lkX3B0cl90eXBlKSwKLQlQVVJFX1JFTE9DX1NZTSkpOwor ICAgICAgICBjb21wLnZvaWRfcHRyX3R5cGUsCisJUFVSRV9QVFJfU1lNKSk7CiAKICAgZ2NjX2pp dF9jb250ZXh0X25ld19nbG9iYWwgKAogCWNvbXAuY3R4dCwKQEAgLTM3NjcsMTMgKzM3NjYsMTMg QEAgbG9hZF9jb21wX3VuaXQgKHN0cnVjdCBMaXNwX05hdGl2ZV9Db21wX1VuaXQgKmNvbXBfdSwg Ym9vbCBsb2FkaW5nX2R1bXAsCiAgICAgewogICAgICAgc3RydWN0IHRocmVhZF9zdGF0ZSAqKipj dXJyZW50X3RocmVhZF9yZWxvYyA9CiAJZHlubGliX3N5bSAoaGFuZGxlLCBDVVJSRU5UX1RIUkVB RF9SRUxPQ19TWU0pOwotICAgICAgRU1BQ1NfSU5UICoqKnB1cmVfcmVsb2MgPSBkeW5saWJfc3lt IChoYW5kbGUsIFBVUkVfUkVMT0NfU1lNKTsKKyAgICAgIHZvaWQgKipwdXJlX3B0ciA9IGR5bmxp Yl9zeW0gKGhhbmRsZSwgUFVSRV9QVFJfU1lNKTsKICAgICAgIExpc3BfT2JqZWN0ICpkYXRhX3Jl bG9jcyA9IGR5bmxpYl9zeW0gKGhhbmRsZSwgREFUQV9SRUxPQ19TWU0pOwogICAgICAgTGlzcF9P YmplY3QgKmRhdGFfaW1wX3JlbG9jcyA9IGR5bmxpYl9zeW0gKGhhbmRsZSwgREFUQV9SRUxPQ19J TVBVUkVfU1lNKTsKICAgICAgIHZvaWQgKipmcmVsb2NfbGlua190YWJsZSA9IGR5bmxpYl9zeW0g KGhhbmRsZSwgRlVOQ19MSU5LX1RBQkxFX1NZTSk7CiAKICAgICAgIGlmICghKGN1cnJlbnRfdGhy ZWFkX3JlbG9jCi0JICAgICYmIHB1cmVfcmVsb2MKKwkgICAgJiYgcHVyZV9wdHIKIAkgICAgJiYg ZGF0YV9yZWxvY3MKIAkgICAgJiYgZGF0YV9pbXBfcmVsb2NzCiAJICAgICYmIGRhdGFfZXBoX3Jl bG9jcwpAQCAtMzc4NCw3ICszNzgzLDcgQEAgbG9hZF9jb21wX3VuaXQgKHN0cnVjdCBMaXNwX05h dGl2ZV9Db21wX1VuaXQgKmNvbXBfdSwgYm9vbCBsb2FkaW5nX2R1bXAsCiAJeHNpZ25hbDEgKFFu YXRpdmVfbGlzcF9maWxlX2luY29uc2lzdGVudCwgY29tcF91LT5maWxlKTsKIAogICAgICAgKmN1 cnJlbnRfdGhyZWFkX3JlbG9jID0gJmN1cnJlbnRfdGhyZWFkOwotICAgICAgKnB1cmVfcmVsb2Mg PSAoRU1BQ1NfSU5UICoqKSZwdXJlOworICAgICAgKnB1cmVfcHRyID0gcHVyZTsKIAogICAgICAg LyogSW1wb3J0ZWQgZnVuY3Rpb25zLiAgKi8KICAgICAgICpmcmVsb2NfbGlua190YWJsZSA9IGZy ZWxvYy5saW5rX3RhYmxlOwotLSAKMi4yNS4xLndpbmRvd3MuMQoK --_FCBE8CFE-1A15-4099-88C0-FB64533C7D71_ Content-Type: application/octet-stream; name="0006-Workaround-the-32768-chars-command-line-limit-in-Win.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0006-Workaround-the-32768-chars-command-line-limit-in-Win.patch" RnJvbSAwODFmYjJkY2E4MWI2MjMyZTc3NWQ2MTMzZTc0MmY5ZDM5MTZkZjU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE0OjA0 OjA2IC0wMzAwClN1YmplY3Q6IFtQQVRDSCA2LzZdIFdvcmthcm91bmQgdGhlIDMyNzY4IGNoYXJz IGNvbW1hbmQgbGluZSBsaW1pdCBpbiBXaW5kb3dzLgoKKiBsaXNwL2VtYWNzLWxpc3AvY29tcC5l bCAoY29tcC1ydW4tYXN5bmMtd29ya2Vycyk6IFBhc3MgdGhlCmNvbXBpbGF0aW9uIGNvbW1hbmRz IHRocm91Z2ggYSB0ZW1wb3JhcnkgZmlsZSB0aGF0IGlzIGxvYWRlZCBieSB0aGUKY2hpbGQgcHJv Y2Vzcy4gVGhpcyBpcyBhbHNvIGRvbmUgYWxsIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zLCBldmVu CnRob3NlIHRoYXQgc3VwcG9ydCBsb25nIGNvbW1hbmQgbGluZXMuIEl0IHNob3VsZCBub3QgYmUg YSBwcm9ibGVtCnNpbmNlIGxpYmdjY2ppdCB1c2VzIHRlbXBvcmFyeSBmaWxlcyB0b28uCi0tLQog bGlzcC9lbWFjcy1saXNwL2NvbXAuZWwgfCA2ICsrKysrLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9j b21wLmVsIGIvbGlzcC9lbWFjcy1saXNwL2NvbXAuZWwKaW5kZXggMDU0MTdmZGMzMS4uZjJkZDE5 OTUzNiAxMDA2NDQKLS0tIGEvbGlzcC9lbWFjcy1saXNwL2NvbXAuZWwKKysrIGIvbGlzcC9lbWFj cy1saXNwL2NvbXAuZWwKQEAgLTIyMDcsNiArMjIwNyw5IEBAIGNvbXAtcnVuLWFzeW5jLXdvcmtl cnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZSAiQ29tcGlsaW5nICVzLi4u IiAsc291cmNlLWZpbGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hdGl2ZS1jb21w aWxlICxzb3VyY2UtZmlsZSAsKGFuZCBsb2FkIHQpKSkpCiAgICAgICAgICAgICAgICAgICAgKHNv dXJjZS1maWxlMSBzb3VyY2UtZmlsZSkgOzsgTWFrZSB0aGUgY2xvc3VyZSB3b3JrcyA6LworICAg ICAgICAgICAgICAgICAgICh0ZW1wLWZpbGUgKG1ha2UtdGVtcC1maWxlCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiZW1hY3MtYXN5bmMtY29tcC0iIChmaWxlLW5hbWUt YmFzZSBzb3VyY2UtZmlsZSkgIi0iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5p bCAiLmVsIiAocHJpbjEtdG8tc3RyaW5nIGV4cHIpKSkKICAgICAgICAgICAgICAgICAgICAobG9h ZDEgbG9hZCkKICAgICAgICAgICAgICAgICAgICAocHJvY2VzcyAobWFrZS1wcm9jZXNzCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDpuYW1lIChjb25jYXQgIkNvbXBpbGluZzogIiBzb3Vy Y2UtZmlsZSkKQEAgLTIyMTQsMTMgKzIyMTcsMTQgQEAgY29tcC1ydW4tYXN5bmMtd29ya2Vycwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y29tbWFuZCAobGlzdAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUgaW52b2NhdGlvbi1u YW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnZvY2F0aW9uLWRpcmVjdG9yeSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICItLWJhdGNoIiAiLS1ldmFsIiAocHJpbjEtdG8tc3RyaW5nIGV4cHIpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tYmF0Y2giICItbCIgdGVtcC1m aWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c2VudGluZWwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxhbWJkYSAocHJvY2VzcyBfZXZlbnQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHJ1bi1ob29rLXdpdGgtYXJncwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnY29tcC1hc3luYy1jdS1kb25lLWhvb2sKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc291cmNlLWZpbGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGFjY2VwdC1wcm9jZXNzLW91dHB1dCBwcm9jZXNzKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChpZ25vcmUtZXJyb3JzIChkZWxldGUtZmlsZSB0ZW1wLWZpbGUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChhbmQgbG9hZDEKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh6ZXJvcCAocHJvY2Vzcy1leGl0LXN0YXR1cyBw cm9jZXNzKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmF0aXZlLWVsaXNw LWxvYWQKLS0gCjIuMjUuMS53aW5kb3dzLjEKCg== --_FCBE8CFE-1A15-4099-88C0-FB64533C7D71_--