From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Matt Wette Newsgroups: gmane.lisp.guile.bugs,gmane.lisp.guile.devel Subject: bug#27782: patch to add support for mmap and friends Date: Tue, 20 Dec 2022 17:21:26 -0800 Message-ID: <8eb170fd-0ec9-4c20-901b-687df98eb749@gmail.com> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------cuKjuw6DWfWEp5TZbKtqxq07" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34712"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Cc: 27782@debbugs.gnu.org To: guile-devel@gnu.org Original-X-From: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Wed Dec 21 02:30:44 2022 Return-path: Envelope-to: guile-bugs@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 1p7nwR-0008r1-0H for guile-bugs@m.gmane-mx.org; Wed, 21 Dec 2022 02:30:43 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p7no5-0003js-1W; Tue, 20 Dec 2022 20:22:05 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p7no2-0003hm-Pb for bug-guile@gnu.org; Tue, 20 Dec 2022 20:22:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p7no2-0007Pc-FV for bug-guile@gnu.org; Tue, 20 Dec 2022 20:22:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p7no2-0007Ig-1u for bug-guile@gnu.org; Tue, 20 Dec 2022 20:22:02 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Matt Wette Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Wed, 21 Dec 2022 01:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27782 X-GNU-PR-Package: guile Original-Received: via spool by 27782-submit@debbugs.gnu.org id=B27782.167158569928055 (code B ref 27782); Wed, 21 Dec 2022 01:22:02 +0000 Original-Received: (at 27782) by debbugs.gnu.org; 21 Dec 2022 01:21:39 +0000 Original-Received: from localhost ([127.0.0.1]:48377 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p7nnd-0007IR-RW for submit@debbugs.gnu.org; Tue, 20 Dec 2022 20:21:38 -0500 Original-Received: from mail-pf1-f169.google.com ([209.85.210.169]:42643) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p7nnb-0007IL-E4 for 27782@debbugs.gnu.org; Tue, 20 Dec 2022 20:21:36 -0500 Original-Received: by mail-pf1-f169.google.com with SMTP id 65so9674174pfx.9 for <27782@debbugs.gnu.org>; Tue, 20 Dec 2022 17:21:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=iY+oxvNibAS6Jpb/PjXlIpr4xVhP1KwWzUWkxp+rfUE=; b=jOxXPHZTvTXGK4vhiyQlLO0xtKbMgsZFGuIOocVwwnSS1OQIIW3oxxc8rTR2eKLyqh Fn3hiEc7Ci+soU+u176mBTK5ke5ngUTg7dQIathaeipb/t7qlyauy4BLN6o7Zdekdj09 vJWeBeoinpVUp3KsKUzFHj4yn0cQmGeIkpbykLcy8UI3KDQ+zdu5a8iimbRp5+nxumE7 eQtcwddgCxere7PQmOaLWqR4ELtYQ5R41uu+GCVXlhh3hBcEXSjHdSw+MYvrEumMk5Xy Cb/0fANm9dXNFL62nChTLthRzcN7h66eQza93kYZx0ZJNuozn0rg/XmZ/2GtoD1Fezm6 bEvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iY+oxvNibAS6Jpb/PjXlIpr4xVhP1KwWzUWkxp+rfUE=; b=rvJlTaEbWEkC1Hc1w28tu/5FuU2JMuSfw56bRhJC2AykfqpCh8pCKFJyjTv1Ims/Sa z9iX8MonLK3YzqjrrKFcG57zoraqvDfzIuGbDy1ULgC/04kPwA4r4iP3WKK4riHLHVbJ T5lJGZWb1yVENceFRUin6Ewl7k5RQiC9tXQOqKdij+Tp+U3bA96rq9xujROzLmAjK06d weSVmJMxoKgGbAogDepJwAOO1bZvvaUPHRQH3+SnyVSCV2gqfNJhxfZhQBepd8JfTLUe fpYO53Y27X+NT9bBUVZ/bLVsRm5Jiy/IzZ/cKm1sYVn3IEGIGCaNLSfNrgrRvIqpcxFM 3Xyg== X-Gm-Message-State: AFqh2kpiqI6ZhYjRpb9jkOvxSwmKFA6Hb1HM0kAzfFyDOwYyjgkPJxud IZsieJw51TNHvTPE4zAalsM= X-Google-Smtp-Source: AMrXdXtPhesrl95TpUeXO4ENrzb5mgR5jV/+hLbY3EgjNvhG7swHZb9LBr9u1ogChaBFY9FMtP0M2A== X-Received: by 2002:aa7:843c:0:b0:578:128b:3a3f with SMTP id q28-20020aa7843c000000b00578128b3a3fmr376132pfn.15.1671585689460; Tue, 20 Dec 2022 17:21:29 -0800 (PST) Original-Received: from [192.168.2.158] (64-52-138-37.championbroadband.com. [64.52.138.37]) by smtp.gmail.com with ESMTPSA id a24-20020aa79718000000b0056b6d31ac8asm9510688pfg.178.2022.12.20.17.21.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 20 Dec 2022 17:21:28 -0800 (PST) Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.bugs:10477 gmane.lisp.guile.devel:21512 Archived-At: This is a multi-part message in MIME format. --------------cuKjuw6DWfWEp5TZbKtqxq07 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Guile Maintainers: Please consider the atttached patch for mmap and friends. Includes mmap, mmap/shared, munmap, msync. Matt --------------cuKjuw6DWfWEp5TZbKtqxq07 Content-Type: text/x-patch; charset=UTF-8; name="0001-Add-support-for-mmap-munmap-and-msync.patch" Content-Disposition: attachment; filename="0001-Add-support-for-mmap-munmap-and-msync.patch" Content-Transfer-Encoding: base64 RnJvbSAzMDY1NzBiZWIzZDE4OTVhYmQwMzcwMDU5M2NjMzQyMjgyZTRjY2QxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0IFdldHRlIDxtd2V0dGVAYWx1bW5pLmNhbHRl Y2guZWR1PgpEYXRlOiBUdWUsIDIwIERlYyAyMDIyIDE3OjE1OjI3IC0wODAwClN1YmplY3Q6 IFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIG1tYXAsIG11bm1hcCBhbmQgbXN5bmMKCiogbGli Z3VpbGUvZmlsZXN5cy5jKG1tYXAsbXVubWFwLG1zeW5jKTogYWRkZWQgaW1wbGVtZW50YXRp b24gZm9yIG1tYXAKICBhbmQgZnJpZW5kcwoqIGRvYy9yZWYvcG9zaXgudGV4aTogYWRkIGRv Y3VtZW50YXRpb24gZm9yIG1tYXAgYW5kIGZyaWVuZHMKLS0tCiBjb25maWd1cmUuYWMgICAg ICAgICAgICAgICAgICAgfCAgMTIgKysKIGRvYy9yZWYvcG9zaXgudGV4aSAgICAgICAgICAg ICB8ICA0NSArKysrKysKIGxpYmd1aWxlL2ZpbGVzeXMuYyAgICAgICAgICAgICB8IDI2OCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmd1aWxlL2ZpbGVzeXMuaCAg ICAgICAgICAgICB8ICAgNCArCiB0ZXN0LXN1aXRlL01ha2VmaWxlLmFtICAgICAgICAgfCAg IDEgKwogdGVzdC1zdWl0ZS90ZXN0cy9tbWFwLWFwaS50ZXN0IHwgIDQ3ICsrKysrKwogNiBm aWxlcyBjaGFuZ2VkLCAzNzcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3Qtc3VpdGUvdGVzdHMvbW1hcC1hcGkudGVzdAoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5h YyBiL2NvbmZpZ3VyZS5hYwppbmRleCBiMzg3OWRmMWYuLmRhNDlkNDc3YSAxMDA2NDQKLS0t IGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMTk5LDYgKzE5OSwxMCBA QCBBQ19BUkdfRU5BQkxFKHJlZ2V4LAogICBbICAtLWRpc2FibGUtcmVnZXggICAgICAgICBv bWl0IHJlZ3VsYXIgZXhwcmVzc2lvbiBpbnRlcmZhY2VzXSwsCiAgIGVuYWJsZV9yZWdleD15 ZXMpCiAKK0FDX0FSR19FTkFCTEUobW1hcF9hcGksCisgIEFTX0hFTFBfU1RSSU5HKFstLWRp c2FibGUtbW1hcF9hcGldLFtvbWl0IG1tYXAgQVBJXSksLAorICBlbmFibGVfbW1hcF9hcGk9 eWVzKQorCiBBQ19BUkdfRU5BQkxFKHRtcG5hbSwKICAgQVNfSEVMUF9TVFJJTkcoWy0tZGlz YWJsZS10bXBuYW1dLFtvbWl0IFBPU0lYIHRtcG5hbV0pLCwKICAgZW5hYmxlX3RtcG5hbT15 ZXMpCkBAIC05NTAsNiArOTU0LDEwIEBAIGlmIHRlc3QgIiRlbmFibGVfcmVnZXgiID0geWVz OyB0aGVuCiAgICBBQ19ERUZJTkUoW0VOQUJMRV9SRUdFWF0sIDEsIFtEZWZpbmUgd2hlbiBy ZWdleCBzdXBwb3J0IGlzIGVuYWJsZWQuXSkKIGZpCiAKK2lmIHRlc3QgIiRlbmFibGVfbW1h cF9hcGkiID0geWVzOyB0aGVuCisgICBBQ19ERUZJTkUoW0VOQUJMRV9NTUFQX0FQSV0sIDEs IFtEZWZpbmUgd2hlbiBtbWFwIEFQSSBzdXBwb3J0IGlzIGVuYWJsZWQuXSkKK2ZpCisKIGlm IHRlc3QgIiRlbmFibGVfdG1wbmFtIiA9IHllczsgdGhlbgogICAgQUNfREVGSU5FKFtFTkFC TEVfVE1QTkFNXSwgMSwgW0RlZmluZSB3aGVuIHRtcG5hbSBzdXBwb3J0IGlzIGVuYWJsZWQu XSkKIGZpCkBAIC0xMDE4LDYgKzEwMjYsMTAgQEAgQUNfQ0hFQ0tfTUVNQkVSUyhbc3RydWN0 IHRtLnRtX2dtdG9mZl0sLCwKIF0pCiBHVUlMRV9TVFJVQ1RfVVRJTUJVRgogCitpZiB0ZXN0 ICIkZW5hYmxlX21tYXBfYXBpIiA9ICJ5ZXMiOyB0aGVuCisgIEFDX0NIRUNLX0ZVTkNTKFtt c3luY10pCitmaQorCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIwpkaWZmIC0tZ2l0IGEvZG9jL3Jl Zi9wb3NpeC50ZXhpIGIvZG9jL3JlZi9wb3NpeC50ZXhpCmluZGV4IGJkZTBmMTUwYy4uODEx NDEzNWZlIDEwMDY0NAotLS0gYS9kb2MvcmVmL3Bvc2l4LnRleGkKKysrIGIvZG9jL3JlZi9w b3NpeC50ZXhpCkBAIC0xMjE2LDYgKzEyMTYsNTEgQEAgdmFsaWQgc2VwYXJhdG9ycy4gIFRo dXMsIHByb2dyYW1zIHNob3VsZCBub3QgYXNzdW1lIHRoYXQKIHNlcGFyYXRvci0tLWUuZy4s IHdoZW4gZXh0cmFjdGluZyB0aGUgY29tcG9uZW50cyBvZiBhIGZpbGUgbmFtZS4KIEBlbmQg ZGVmdnIKIAorQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBtbWFwIGFkZHIgbGVuIFtwcm90 IFtmbGFncyBbZmQgW29mZnNldF1dXV0KK0BkZWZmbngge1NjaGVtZSBQcm9jZWR1cmV9IG1t YXAvc2VhcmNoIGFkZHIgbGVuIFtwcm90IFtmbGFncyBbZmQgW29mZnNldF1dXV0KK0NyZWF0 ZSBhIG1lbW9yeSBtYXBwaW5nLCByZXR1cm5pbmcgYSBieXRldmVjdG9yLiAgQHZhcnthZGRy fSwgaWYKK25vbi16ZXJvLCBpcyB0aGUgc3RhcmluZyBhZGRyZXNzOyBvciwgaWYgemVybywg aXMgYXNzaWduZWQgYnkgdGhlCitzeXN0ZW0uICBAdmFye3Byb3R9LCBpZiBwcm92aWRlZCwg YXNzaWducyBwcm90ZWN0aW9uLiAgQHZhcntmZH0sCitpZiBwcm92aWRlZCBhc3NvY2lhdGVz IHRoZSBtZW1vcnkgcmVnaW9uIHdpdGggYSBmaWxlLCBzdGFydGluZyAKK2F0IEB2YXJ7b2Zm c2V0fSwgaWYgcHJvdmlkZWQuCitUaGUgcmVnaW9uIHJldHVybmVkIGJ5IG1tYXAgd2lsbCBO T1QgYmUgc2VhcmNoZWQgYnkgdGhlIGdhcmJhZ2UKKyBjb2xsZWN0b3IgZm9yIHBvaW50ZXJz LCB3aGlsZSB0aGF0IHJldHVybmVkIGJ5IG1tYXAvc2VhcmNoIHdpbGwuCitOb3RlIHRoYXQg dGhlIGZpbmFsaXplciBmb3IgdGhlIHJldHVybmVkIGJ5dGV2ZWN0b3Igd2lsbCBjYWxsIG11 bm1hcC4KK0RlZmF1bHRzIGZvciBvcHRpb25hbCBhcmd1bWVudHMgYXJlCitAdGFibGUgQGFz aXMKK0BpdGVtIHByb3QKKyhsb2dpb3IgUFJPVF9SRUFEIFBST1RfV1JJVEUpCitAaXRlbSBm bGFncworKGxvZ2lvciBNQVBfQU5PTllNT1VTIE1BUF9QUklWQVRFKQorQGl0ZW0gZmQKKy0x CitAaXRlbSBvZmZzZXQKKzAKK0BlbmQgdGFibGUKK0BlbmQgZGVmZm4KKworQGRlZmZuIHtT Y2hlbWUgUHJvY2VkdXJlfSBtdW5tYXAgYnZlYworR2l2ZW4gYnl0ZXZlY3RvciBnZW5lcmF0 ZWQgYnkgbW1hcCBvciBtbWFwL3NlYXJjaCwgdW5tYXAgdGhlCit0aGUgYXNzb2NpYXRlZCBt ZW1vcnkuICBUaGUgYXJndW1lbnQgd2lsbCBiZSBtb2RpZmllZCB0byAKK3JlZmxlY3QgYSB6 ZXJvIGxlbmd0aCBidi4gIFRoZSByZXR1cm4gdmFsdWUgaXMgdW5zcGVjaWZpZWQuCitOb3Rl IHRoYXQgbXVubWFwIGlzIGNhbGxlZCBieSBmaW5hbGl6ZXIgYXNzb2NpYXRlZCB3aXRoCiti eXRldmVjdG9ycyByZXR1cm5lZCBmcm9tIG1tYXAgYW5kIG1tYXAvc2VhcmNoLgorQGVuZCBk ZWZmbgorCitAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IG1zeW5jIGFkZHIgbGVuZ3RoIGZs YWcKK0ZsdXNoIGNoYW5nZXMgbWFkZSB0byB0aGUgaW4tY29yZSBjb3B5IG9mIGEgZmlsZSBt YXBwZWQgdXNpbmcKK21tYXAgb3IgbW1hcC9zZWFyY2guICBUaGlzIHNob3VsZCBiZSBleGVj dXRlZCBvbiBtb2RpZmllZCBtZW1vcnkKK2JlZm9yZSBjYWxsaW5nIG11bm1hcC4gIFRoZSBA dmFye2ZsYWdzfSBhcmd1bWVudCBtdXN0IGJlIGV4YWN0bHkgb25lCitvZiB0aGUgZm9sbG93 aW5nOgorQHRhYmxlIEBjb2RlCitAaXRlbSBNU19BU1lOQworSW5pdGlhdGUgdXBkYXRlLCBy ZXR1cm4gaW1tZWRpYXRlbHkuCitAaXRlbSBNU19TWU5DCitJbml0aWF0ZSB1cGRhdGUsIGJs b2NrIHVudGlsIGNvbXBsZXRlLgorQGl0ZW0gTVNfSU5WQUxJREFURQorSW52YWxpZGF0ZSBv dGhlciBtYXBwaW5ncyBvZiB0aGUgc2FtZSBmaWxlLgorQGVuZCB0YWJsZQorQGVuZCBkZWZm bgogCiBAbm9kZSBVc2VyIEluZm9ybWF0aW9uCiBAc3Vic2VjdGlvbiBVc2VyIEluZm9ybWF0 aW9uCmRpZmYgLS1naXQgYS9saWJndWlsZS9maWxlc3lzLmMgYi9saWJndWlsZS9maWxlc3lz LmMKaW5kZXggMWYwYmJhNTU2Li5hZDNkYWI0NzEgMTAwNjQ0Ci0tLSBhL2xpYmd1aWxlL2Zp bGVzeXMuYworKysgYi9saWJndWlsZS9maWxlc3lzLmMKQEAgLTY3LDExICs2NywxNyBAQAog IyBpbmNsdWRlIDxzeXMvc2VuZGZpbGUuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFC TEVfTU1BUF9BUEkpICYmIGRlZmluZWQoSEFWRV9TWVNfTU1BTl9IKQorIyBpbmNsdWRlIDxz eXMvbW1hbi5oPgorI2VuZGlmCisKICNpbmNsdWRlICJhc3luYy5oIgogI2luY2x1ZGUgImJv b2xlYW4uaCIKICNpbmNsdWRlICJkeW53aW5kLmgiCiAjaW5jbHVkZSAiZmRlcy1maW5hbGl6 ZXJzLmgiCiAjaW5jbHVkZSAiZmVhdHVyZS5oIgorI2luY2x1ZGUgImZpbmFsaXplcnMuaCIK KyNpbmNsdWRlICJmb3JlaWduLmgiCiAjaW5jbHVkZSAiZnBvcnRzLmgiCiAjaW5jbHVkZSAi Z3N1YnIuaCIKICNpbmNsdWRlICJpc2VsZWN0LmgiCkBAIC0yMjYzLDYgKzIyNjksMjY0IEBA IHNjbV9kaXJfZnJlZSAoU0NNIHApCiAKIAwKIAorI2lmZGVmIEVOQUJMRV9NTUFQX0FQSQor I2lmIGRlZmluZWQoSEFWRV9TWVNfTU1BTl9IKSAmJiBkZWZpbmVkKEhBVkVfTUFQX0FOT05Z TU9VUykKKworLyogc2VlIGh0dHBzOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMv OTY5OTkxOTc5OS9mdW5jdGlvbnMvbW1hcC5odG1sICovCisKK3N0YXRpYyB2b2lkCittbWFw X2ZpbmFsaXplciAodm9pZCAqcHRyLCB2b2lkICpkYXRhKQoreworICBTQ00gYnZlYzsKKyAg dm9pZCAqY19hZGRyOworICBzaXplX3QgY19sZW47CisgIGludCBydjsKKworICBidmVjID0g U0NNX1BBQ0tfUE9JTlRFUiAocHRyKTsKKyAgaWYgKCFTQ01fQllURVZFQ1RPUl9QIChidmVj KSkKKyAgICBzY21fbWlzY19lcnJvciAoIm1tYXAiLCAiZXhwZWN0aW5nIGJ5dGV2ZWN0b3Ii LCBTQ01fRU9MKTsKKyAgCisgIGNfYWRkciA9IFNDTV9CWVRFVkVDVE9SX0NPTlRFTlRTIChi dmVjKTsKKyAgY19sZW4gPSBTQ01fQllURVZFQ1RPUl9MRU5HVEggKGJ2ZWMpOworICBTQ01f U1lTQ0FMTCAocnYgPSBtdW5tYXAoY19hZGRyLCBjX2xlbikpOworICBpZiAocnYgIT0gMCkK KyAgICBzY21fbWlzY19lcnJvciAoIm1tYXAiLCAiZmFpbGVkIHRvIG11bm1hcCBtZW1vcnki LCBTQ01fRU9MKTsKK30KKworU0NNX0RFRklORSAoc2NtX21tYXBfc2VhcmNoLCAibW1hcC9z ZWFyY2giLCAyLCA0LCAwLCAKKyAgICAgICAgICAgIChTQ00gYWRkciwgU0NNIGxlbiwgU0NN IHByb3QsIFNDTSBmbGFncywgU0NNIGZkLCBTQ00gb2Zmc2V0KSwKKwkgICAgIkNyZWF0ZSBh IG1lbW9yeSBtYXBwaW5nLCByZXR1cm5pbmcgYSBieXRldmVjdG9yLi4gIEB2YXJ7YWRkcn0s IGlmXG4iCisJICAgICJub24temVybywgaXMgdGhlIHN0YXJpbmcgYWRkcmVzczsgb3IsIGlm IHplcm8sIGlzIGFzc2lnbmVkIGJ5IHRoZVxuIgorCSAgICAic3lzdGVtLiAgQHZhcntwcm90 fSwgaWYgcHJvdmlkZWQsIGFzc2lnbnMgcHJvdGVjdGlvbi4gIEB2YXJ7ZmR9LFxuIgorCSAg ICAiaWYgcHJvdmlkZWQgYXNzb2NpYXRlcyB0aGUgbWVtb3J5IHJlZ2lvbiB3aXRoIGEgZmls ZSwgc3RhcnRpbmcgXG4iCisJICAgICJhdCBAdmFye29mZnNldH0sIGlmIHByb3ZpZGVkLlxu IgorCSAgICAiVGhlIHJlZ2lvbiByZXR1cm5lZCBieSBtbWFwIFdJTEwgYmUgc2VhcmNoZWQg YnkgdGhlIGdhcmJhZ2VcbiIKKwkgICAgImNvbGxlY3RvciBmb3IgcG9pbnRlcnMuICBTZWUg YWxzbyBtbWFwLiAgTm90ZSB0aGF0IHRoZVxuIgorICAgICAgICAgICAgImZpbmFsaXplciBm b3IgdGhlIHJldHVybmVkIGJ5dGV2ZWN0b3Igd2lsbCBjYWxsIG11bm1hcC5cbiIKKwkgICAg IkRlZmF1bHRzIGZvciBvcHRpb25hbCBhcmd1bWVudHMgYXJlXG4iCisJICAgICJAdGFibGUg QGFzaXNcbiIKKwkgICAgIkBpdGVtIHByb3Rcbihsb2dpb3IgUFJPVF9SRUFEIFBST1RfV1JJ VEUpXG4iCisJICAgICJAaXRlbSBmbGFnc1xuKGxvZ2lvciBNQVBfQU5PTllNT1VTIE1BUF9Q UklWQVRFKVxuIgorCSAgICAiQGl0ZW0gZmRcbi0xXG4iCisJICAgICJAaXRlbSBvZmZzZXRc bjBcbiIKKwkgICAgIkBlbmQgdGFibGUiKQorI2RlZmluZSBGVU5DX05BTUUgc19zY21fbW1h cF9zZWFyY2gKK3sKKyAgdm9pZCAqY19tZW0sICpjX2FkZHI7CisgIHNpemVfdCBjX2xlbjsK KyAgaW50IGNfcHJvdCwgY19mbGFncywgY19mZDsKKyAgc2NtX3Rfb2ZmIGNfb2Zmc2V0Owor ICBTQ00gcG9pbnRlciwgYnZlYzsKKworICBpZiAoU0NNX1BPSU5URVJfUCAoYWRkcikpCisg ICAgY19hZGRyID0gU0NNX1BPSU5URVJfVkFMVUUgKGFkZHIpOworICBlbHNlIGlmIChzY21f aXNfaW50ZWdlciAoYWRkcikpCisgICAgY19hZGRyID0gKHZvaWQqKSBzY21fdG9fdWludHB0 cl90IChhZGRyKTsKKyAgZWxzZQorICAgIFNDTV9NSVNDX0VSUk9SICgiYmFkIGFkZHIiLCBh ZGRyKTsKKworICBjX2xlbiA9IHNjbV90b19zaXplX3QgKGxlbik7CisgIAorICBpZiAoU0NN X1VOQk5EUCAocHJvdCkpCisgICAgY19wcm90ID0gUFJPVF9SRUFEIHwgUFJPVF9XUklURTsK KyAgZWxzZSAKKyAgICBjX3Byb3QgPSBzY21fdG9faW50IChwcm90KTsKKworICBpZiAoU0NN X1VOQk5EUCAoZmxhZ3MpKQorICAgIGNfZmxhZ3MgPSBNQVBfQU5PTllNT1VTIHwgTUFQX1BS SVZBVEU7CisgIGVsc2UKKyAgICBjX2ZsYWdzID0gc2NtX3RvX2ludCAoZmxhZ3MpOworCisg IGlmIChTQ01fVU5CTkRQIChmZCkpCisgICAgY19mZCA9IC0xOworICBlbHNlCisgICAgY19m ZCA9IHNjbV90b19pbnQgKGZkKTsKKworICBpZiAoU0NNX1VOQk5EUCAoZmQpKQorICAgIGNf b2Zmc2V0ID0gMDsKKyAgZWxzZQorICAgIGNfb2Zmc2V0ID0gc2NtX3RvX29mZl90IChvZmZz ZXQpOworCisgIGlmICgoY19hZGRyID09IE5VTEwpICYmIChjX2ZsYWdzICYgTUFQX0ZJWEVE KSkKKyAgICBTQ01fTUlTQ19FUlJPUiAoIm1tYXAgY2FsbGVkIHdpdGggTlVMTCBhZGRyIGFu ZCBNQVBfRklYRUQiLCBTQ01fRU9MKTsKKworICBTQ01fU1lTQ0FMTCAoY19tZW0gPSBtbWFw KGNfYWRkciwgY19sZW4sIGNfcHJvdCwgY19mbGFncywgY19mZCwgY19vZmZzZXQpKTsKKyAg aWYgKGNfbWVtID09IE1BUF9GQUlMRUQpCisgICAgU0NNX1NZU0VSUk9SOwkJCS8qIGVycm5v IHNldCAqLworCisgIHBvaW50ZXIgPSBzY21fY2VsbCAoc2NtX3RjN19wb2ludGVyLCAoc2Nt X3RfYml0cykgY19tZW0pOworICBidmVjID0gc2NtX2NfdGFrZV90eXBlZF9ieXRldmVjdG9y KChzaWduZWQgY2hhciAqKSBjX21lbSArIGNfb2Zmc2V0LCBjX2xlbiwKKwkJCQkgICAgIFND TV9BUlJBWV9FTEVNRU5UX1RZUEVfVlU4LCBwb2ludGVyKTsKKyAgYXNzZXJ0KHNpemVvZih2 b2lkKikgPD0gc2l6ZW9mKHNpemVfdCkpOworICBzY21faV9zZXRfZmluYWxpemVyIChTQ00y UFRSIChidmVjKSwgbW1hcF9maW5hbGl6ZXIsICh2b2lkKikgY19sZW4pOworICByZXR1cm4g YnZlYzsKK30KKyN1bmRlZiBGVU5DX05BTUUKKworU0NNX0RFRklORSAoc2NtX21tYXAsICJt bWFwIiwgMiwgNCwgMCwgCisgICAgICAgICAgICAoU0NNIGFkZHIsIFNDTSBsZW4sIFNDTSBw cm90LCBTQ00gZmxhZ3MsIFNDTSBmZCwgU0NNIG9mZnNldCksCisJICAgICJDcmVhdGUgYSBt ZW1vcnkgbWFwcGluZywgcmV0dXJuaW5nIGEgYnl0ZXZlY3Rvci4gIEB2YXJ7YWRkcn0sIGlm XG4iCisJICAgICJub24temVybywgaXMgdGhlIHN0YXJpbmcgYWRkcmVzczsgb3IsIGlmIHpl cm8sIGlzIGFzc2lnbmVkIGJ5IHRoZVxuIgorCSAgICAic3lzdGVtLiAgQHZhcntwcm90fSwg aWYgcHJvdmlkZWQsIGFzc2lnbnMgcHJvdGVjdGlvbi4gIEB2YXJ7ZmR9LFxuIgorCSAgICAi aWYgcHJvdmlkZWQgYXNzb2NpYXRlcyB0aGUgbWVtb3J5IHJlZ2lvbiB3aXRoIGEgZmlsZSwg c3RhcnRpbmcgXG4iCisJICAgICJhdCBAdmFye29mZnNldH0sIGlmIHByb3ZpZGVkLlxuIgor CSAgICAiVGhlIHJlZ2lvbiByZXR1cm5lZCBieSBtbWFwIHdpbGwgTk9UIGJlIHNlYXJjaGVk IGJ5IHRoZSBnYXJiYWdlXG4iCisJICAgICJjb2xsZWN0b3IgZm9yIHBvaW50ZXJzLiBTZWUg YWxzbyBtbWFwL3NlYXJjaC4gIE5vdGUgdGhhdCB0aGVcbiIKKyAgICAgICAgICAgICJmaW5h bGl6ZXIgZm9yIHRoZSByZXR1cm5lZCBieXRldmVjdG9yIHdpbGwgY2FsbCBtdW5tYXAuXG4i CisJICAgICJEZWZhdWx0cyBmb3IgYXJndW1lbnRzIGFyZTpcbiIKKwkgICAgIkB0YWJsZSBA YXNpc1xuIgorCSAgICAiQGl0ZW0gcHJvdFxuKGxvZ2lvciBQUk9UX1JFQUQgUFJPVF9XUklU RSlcbiIKKwkgICAgIkBpdGVtIGZsYWdzXG4obG9naW9yIE1BUF9BTk9OWU1PVVMgTUFQX1BS SVZBVEUpXG4iCisJICAgICJAaXRlbSBmZFxuLTFcbiIKKwkgICAgIkBpdGVtIG9mZnNldFxu MFxuIgorCSAgICAiQGVuZCB0YWJsZSIpCisjZGVmaW5lIEZVTkNfTkFNRSBzX3NjbV9tbWFw Cit7CisgIHZvaWQgKmNfbWVtOworICBzaXplX3QgY19sZW47CisgIFNDTSBidmVjOworCisg IGJ2ZWMgPSBzY21fbW1hcF9zZWFyY2goYWRkciwgbGVuLCBwcm90LCBmbGFncywgZmQsIG9m ZnNldCk7CisgIGNfbWVtID0gU0NNX0JZVEVWRUNUT1JfQ09OVEVOVFMoYnZlYyk7CisgIGNf bGVuID0gU0NNX0JZVEVWRUNUT1JfTEVOR1RIKGJ2ZWMpOworCisgIC8qIFRlbGwgR0Mgbm90 IHRvIHNjYW4gZm9yIHBvaW50ZXJzLiAqLworICBHQ19leGNsdWRlX3N0YXRpY19yb290cyhj X21lbSwgKGNoYXIqKSBjX21lbSArIGNfbGVuKTsKKworICByZXR1cm4gYnZlYzsKK30KKyN1 bmRlZiBGVU5DX05BTUUKKworLyogVGhlIGZvbGxvd2luZyBjb3BpZWQgZnJvbSBieXRldmVj dG9ycy5jLiBLbHVkZ2U/ICovCisjZGVmaW5lIFNDTV9CWVRFVkVDVE9SX1NFVF9MRU5HVEgo X2J2LCBfbGVuKSAgICAgICAgICAgIFwKKyAgU0NNX1NFVF9DRUxMX1dPUkRfMSAoKF9idiks IChzY21fdF9iaXRzKSAoX2xlbikpCisjZGVmaW5lIFNDTV9CWVRFVkVDVE9SX1NFVF9DT05U RU5UUyhfYnYsIF9jb250ZW50cykJXAorICBTQ01fU0VUX0NFTExfV09SRF8yICgoX2J2KSwg KHNjbV90X2JpdHMpIChfY29udGVudHMpKQorCitTQ01fREVGSU5FIChzY21fbXVubWFwLCAi bXVubWFwIiwgMSwgMCwgMCwgCisgICAgICAgICAgICAoU0NNIGJ2ZWMpLAorCSAgICAiR2l2 ZW4gYnl0ZXZlY3RvciBnZW5lcmF0ZWQgYnkgbW1hcCBvciBtbWFwL3NlYXJjaCwgdW5tYXAg dGhlXG4iCisgICAgICAgICAgICAidGhlIGFzc29jaWF0ZWQgbWVtb3J5LiAgVGhlIGFyZ3Vt ZW50IHdpbGwgYmUgbW9kaWZpZWQgdG8gXG4iCisgICAgICAgICAgICAicmVmbGVjdCBhIHpl cm8gbGVuZ3RoIGJ2LiBUaGUgcmV0dXJuIHZhbHVlIGlzIHVuc3BlY2lmaWVkLlxuIgorICAg ICAgICAgICAgIk5vdGUgdGhhdCBtdW5tYXAgaXMgY2FsbGVkIGJ5IGZpbmFsaXplciBhc3Nv Y2lhdGVkIHdpdGhcbiIKKyAgICAgICAgICAgICJieXRldmVjdG9ycyByZXR1cm5lZCBmcm9t IG1tYXAgYW5kIG1tYXAvc2VhcmNoLlxuIikKKyNkZWZpbmUgRlVOQ19OQU1FIHNfc2NtX211 bm1hcAoreworICB2b2lkICphZGRyOworICBzaXplX3QgbGVuOworICBpbnQgcnY7CisKKyAg U0NNX1ZBTElEQVRFX0JZVEVWRUNUT1IgKDEsIGJ2ZWMpOworICAKKyAgYWRkciA9ICh2b2lk ICopIFNDTV9CWVRFVkVDVE9SX0NPTlRFTlRTIChidmVjKTsKKyAgbGVuID0gU0NNX0JZVEVW RUNUT1JfTEVOR1RIIChidmVjKTsKKworICAvKiBJbnZhbGlkYXRlIGZ1cnRoZXIgd29yayBv biB0aGlzIGJ5dGV2ZWN0b3IuICovCisgIFNDTV9CWVRFVkVDVE9SX1NFVF9MRU5HVEggKGJ2 ZWMsIDApOworICBTQ01fQllURVZFQ1RPUl9TRVRfQ09OVEVOVFMgKGJ2ZWMsIE5VTEwpOwor CisgIFNDTV9TWVNDQUxMIChydiA9IG11bm1hcChhZGRyLCBsZW4pKTsKKyAgaWYgKHJ2ID09 IC0xKQorICAgIFNDTV9TWVNFUlJPUjsJCQkvKiBlcnJubyBzZXQgKi8KKworICByZXR1cm4g U0NNX1VOU1BFQ0lGSUVEOworfQorI3VuZGVmIEZVTkNfTkFNRQorCisjaWZkZWYgSEFWRV9N U1lOQworU0NNX0RFRklORSAoc2NtX21zeW5jLCAibXN5bmMiLCAyLCAwLCAwLCAKKyAgICAg ICAgICAgIChTQ00gYnZlYywgU0NNIGZsYWdzKSwKKwkgICAgIkZsdXNoIGNoYW5nZXMgbWFk ZSB0byB0aGUgaW4tY29yZSBjb3B5IG9mIGEgZmlsZSBtYXBwZWQgdXNpbmdcbiIKKyAgICAg ICAgICAgICJtbWFwIG9yIG1tYXAvc2VhcmNoLiAgVGhpcyBzaG91bGQgYmUgZXhlY3V0ZWQg b24gbW9kaWZpZWQgbWVtb3J5XG4iIAorICAgICAgICAgICAgImJlZm9yZSBjYWxsaW5nIG11 bm1hcC4gIFRoZSBAdmFye2ZsYWdzfSBhcmd1bWVudCBtdXN0IGJlIGV4YWN0bHlcbiIKKyAg ICAgICAgICAgICJvbmUgb2YgdGhlIGZvbGxvd2luZzpcbiIKKyAgICAgICAgICAgICJAdGFi bGUgQGNvZGVcbiIKKyAgICAgICAgICAgICJAaXRlbSBNU19BU1lOQ1xuIgorICAgICAgICAg ICAgIkluaXRpYXRlIHVwZGF0ZSwgcmV0dXJuIGltbWVkaWF0ZWx5LlxuIgorICAgICAgICAg ICAgIkBpdGVtIE1TX1NZTkNcbiIKKyAgICAgICAgICAgICJJbml0aWF0ZSB1cGRhdGUsIGJs b2NrIHVudGlsIGNvbXBsZXRlLlxuIgorICAgICAgICAgICAgIkBpdGVtIE1TX0lOVkFMSURB VEVcbiIKKyAgICAgICAgICAgICJJbnZhbGlkYXRlIG90aGVyIG1hcHBpbmdzIG9mIHRoZSBz YW1lIGZpbGUuXG4iCisgICAgICAgICAgICAiQGVuZCB0YWJsZVxuIgorICAgICAgICAgICAg IlRoZSByZXR1cm4gdmFsdWUgaXMgdW5zcGVjaWZpZWQuIikKKyNkZWZpbmUgRlVOQ19OQU1F IHNfc2NtX21zeW5jCit7CisgIHZvaWQgKmFkZHI7CisgIHNpemVfdCBsZW47CisgIGludCBj X2ZsYWdzLCBydjsKKworICBTQ01fVkFMSURBVEVfQllURVZFQ1RPUiAoMSwgYnZlYyk7Cisg IGFkZHIgPSAodm9pZCAqKSBTQ01fQllURVZFQ1RPUl9DT05URU5UUyAoYnZlYyk7CisgIGxl biA9IFNDTV9CWVRFVkVDVE9SX0xFTkdUSCAoYnZlYyk7CisKKyAgY19mbGFncyA9IHNjbV90 b19pbnQgKGZsYWdzKTsKKworICBTQ01fU1lTQ0FMTCAocnYgPSBtc3luYyhhZGRyLCBsZW4s IGNfZmxhZ3MpKTsKKyAgaWYgKHJ2ID09IC0xKQorICAgIFNDTV9TWVNFUlJPUjsJCQkvKiBl cnJubyBzZXQgKi8KKworICByZXR1cm4gU0NNX1VOU1BFQ0lGSUVEOworfQorI3VuZGVmIEZV TkNfTkFNRQorI2VuZGlmIC8qIEhBVkVfTVNZTkMgKi8KKworc3RhdGljIHZvaWQgaW5pdF9t bWFwX2FwaSh2b2lkKSB7CisgIHNjbV9hZGRfZmVhdHVyZSgibW1hcC1hcGkiKTsKKworI2lm ZGVmIFBST1RfTk9ORQorICBzY21fY19kZWZpbmUgKCJQUk9UX05PTkUiLCBzY21fZnJvbV9p bnQgKFBST1RfTk9ORSkpOworI2VuZGlmCisjaWZkZWYgUFJPVF9SRUFECisgIHNjbV9jX2Rl ZmluZSAoIlBST1RfUkVBRCIsIHNjbV9mcm9tX2ludCAoUFJPVF9SRUFEKSk7CisjZW5kaWYK KyNpZmRlZiBQUk9UX1dSSVRFCisgIHNjbV9jX2RlZmluZSAoIlBST1RfV1JJVEUiLCBzY21f ZnJvbV9pbnQgKFBST1RfV1JJVEUpKTsKKyNlbmRpZgorI2lmZGVmIFBST1RfRVhFQworICBz Y21fY19kZWZpbmUgKCJQUk9UX0VYRUMiLCBzY21fZnJvbV9pbnQgKFBST1RfRVhFQykpOwor I2VuZGlmCisKKyNpZmRlZiBNQVBfQU5PTllNT1VTCisgIHNjbV9jX2RlZmluZSAoIk1BUF9B Tk9OWU1PVVMiLCBzY21fZnJvbV9pbnQgKE1BUF9BTk9OWU1PVVMpKTsKKyNlbmRpZgorI2lm ZGVmIE1BUF9BTk9OCisgIHNjbV9jX2RlZmluZSAoIk1BUF9BTk9OIiwgc2NtX2Zyb21faW50 IChNQVBfQU5PTikpOworI2VuZGlmCisjaWZkZWYgTUFQX0ZJTEUKKyAgc2NtX2NfZGVmaW5l ICgiTUFQX0ZJTEUiLCBzY21fZnJvbV9pbnQgKE1BUF9GSUxFKSk7CisjZW5kaWYKKyNpZmRl ZiBNQVBfRklYRUQKKyAgc2NtX2NfZGVmaW5lICgiTUFQX0ZJWEVEIiwgc2NtX2Zyb21faW50 IChNQVBfRklYRUQpKTsKKyNlbmRpZgorI2lmZGVmIE1BUF9IQVNTRU1BUEhPUkUKKyAgc2Nt X2NfZGVmaW5lICgiTUFQX0hBU1NFTUFQSE9SRSIsIHNjbV9mcm9tX2ludCAoTUFQX0hBU1NF TUFQSE9SRSkpOworI2VuZGlmCisjaWZkZWYgTUFQX1BSSVZBVEUKKyAgc2NtX2NfZGVmaW5l ICgiTUFQX1BSSVZBVEUiLCBzY21fZnJvbV9pbnQgKE1BUF9QUklWQVRFKSk7CisjZW5kaWYK KyNpZmRlZiBNQVBfU0hBUkVECisgIHNjbV9jX2RlZmluZSAoIk1BUF9TSEFSRUQiLCBzY21f ZnJvbV9pbnQgKE1BUF9TSEFSRUQpKTsKKyNlbmRpZgorI2lmZGVmIE1BUF9OT0NBQ0hFCisg IHNjbV9jX2RlZmluZSAoIk1BUF9OT0NBQ0hFIiwgc2NtX2Zyb21faW50IChNQVBfTk9DQUNI RSkpOworI2VuZGlmCisgIHNjbV9jX2RlZmluZSAoIlBBR0VfU0laRSIsIHNjbV9mcm9tX2lu dCAoZ2V0cGFnZXNpemUoKSkpOworI2lmZGVmIE1TX0FTWU5DCisgIHNjbV9jX2RlZmluZSAo Ik1TX0FTWU5DIiwgc2NtX2Zyb21faW50IChNU19BU1lOQykpOworI2VuZGlmCisjaWZkZWYg TVNfU1lOQworICBzY21fY19kZWZpbmUgKCJNU19TWU5DIiwgc2NtX2Zyb21faW50IChNU19T WU5DKSk7CisjZW5kaWYKKyNpZmRlZiBNU19JTlZBTElEQVRFCisgIHNjbV9jX2RlZmluZSAo Ik1TX0lOVkFMSURBVEUiLCBzY21fZnJvbV9pbnQgKE1TX0lOVkFMSURBVEUpKTsKKyNlbmRp ZgorfQorCisjZW5kaWYgLyogSEFWRV9TWVNfTU1BTl9IICYmIEhBVkVfTU1BUF9BTk9OWU1P VVMgKi8KKyNlbmRpZiAvKiBFTkFCTEVfTU1BUF9BUEkgKi8KKworDAorCiB2b2lkCiBzY21f aW5pdF9maWxlc3lzICgpCiB7CkBAIC0yMzg3LDYgKzI2NTEsMTAgQEAgc2NtX2luaXRfZmls ZXN5cyAoKQogI2lmZGVmIEhBVkVfUkVBRExJTktBVAogICBzY21fYWRkX2ZlYXR1cmUoInJl YWRsaW5rLXBvcnQiKTsKICNlbmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX01NQVBfQVBJKSAm JiBkZWZpbmVkKEhBVkVfU1lTX01NQU5fSCkgXAorICAmJiBkZWZpbmVkKEhBVkVfTUFQX0FO T05ZTU9VUykKKyAgaW5pdF9tbWFwX2FwaSgpOworI2VuZGlmCiAKICNpbmNsdWRlICJmaWxl c3lzLngiCiB9CmRpZmYgLS1naXQgYS9saWJndWlsZS9maWxlc3lzLmggYi9saWJndWlsZS9m aWxlc3lzLmgKaW5kZXggMWNlNTBkMzBlLi5mYTQwYjQ4NGYgMTAwNjQ0Ci0tLSBhL2xpYmd1 aWxlL2ZpbGVzeXMuaAorKysgYi9saWJndWlsZS9maWxlc3lzLmgKQEAgLTgwLDYgKzgwLDEw IEBAIFNDTV9BUEkgU0NNIHNjbV9kaXJuYW1lIChTQ00gZmlsZW5hbWUpOwogU0NNX0FQSSBT Q00gc2NtX2Jhc2VuYW1lIChTQ00gZmlsZW5hbWUsIFNDTSBzdWZmaXgpOwogU0NNX0FQSSBT Q00gc2NtX2Nhbm9uaWNhbGl6ZV9wYXRoIChTQ00gcGF0aCk7CiBTQ01fQVBJIFNDTSBzY21f c2VuZGZpbGUgKFNDTSBvdXQsIFNDTSBpbiwgU0NNIGNvdW50LCBTQ00gb2Zmc2V0KTsKK1ND TV9BUEkgU0NNIHNjbV9tbWFwX3NlYXJjaChTQ00gYWRkciwgU0NNIGxlbiwgU0NNIHByb3Qs IFNDTSBmbGFncywgU0NNIGZkLCBTQ00gb2Zmc2V0KTsKK1NDTV9BUEkgU0NNIHNjbV9tbWFw KFNDTSBhZGRyLCBTQ00gbGVuLCBTQ00gcHJvdCwgU0NNIGZsYWdzLCBTQ00gZmQsIFNDTSBv ZmZzZXQpOworU0NNX0FQSSBTQ00gc2NtX21zeW5jKFNDTSBidmVjLCBTQ00gZmxhZ3MpOwor U0NNX0FQSSBTQ00gc2NtX211bm1hcChTQ00gYnZlYyk7CiBTQ01fSU5URVJOQUwgU0NNIHNj bV9pX3JlbGF0aXZpemVfcGF0aCAoU0NNIHBhdGgsIFNDTSBpbl9wYXRoKTsKIAogU0NNX0lO VEVSTkFMIHZvaWQgc2NtX2luaXRfZmlsZXN5cyAodm9pZCk7CmRpZmYgLS1naXQgYS90ZXN0 LXN1aXRlL01ha2VmaWxlLmFtIGIvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQppbmRleCAxNmZh MmU5NTIuLjgzOTMwOTIzMSAxMDA2NDQKLS0tIGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQor KysgYi90ZXN0LXN1aXRlL01ha2VmaWxlLmFtCkBAIC03Nyw2ICs3Nyw3IEBAIFNDTV9URVNU UyA9IHRlc3RzLzAwLWluaXRpYWwtZW52LnRlc3QJCVwKIAkgICAgdGVzdHMvbG9hZC50ZXN0 CQkJXAogCSAgICB0ZXN0cy9tYXRjaC50ZXN0CQkJXAogCSAgICB0ZXN0cy9tYXRjaC50ZXN0 LnVwc3RyZWFtCQlcCisJICAgIHRlc3RzL21tYXAtYXBpLnRlc3QJCQlcCiAJICAgIHRlc3Rz L21vZHVsZXMudGVzdAkJCVwKIAkgICAgdGVzdHMvbXVsdGlsaW5ndWFsLm5vdHRlc3QJCVwK IAkgICAgdGVzdHMvbmV0LWRiLnRlc3QJCQlcCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rl c3RzL21tYXAtYXBpLnRlc3QgYi90ZXN0LXN1aXRlL3Rlc3RzL21tYXAtYXBpLnRlc3QKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43NGVmODc3N2MKLS0tIC9kZXYv bnVsbAorKysgYi90ZXN0LXN1aXRlL3Rlc3RzL21tYXAtYXBpLnRlc3QKQEAgLTAsMCArMSw0 NyBAQAorOzs7OyBtbWFwLWFwaS50ZXN0IC0tLSBUZXN0cyBmb3IgbW1hcCBBUEkuICAgIC0q LSBzY2hlbWUgLSotCis7Ozs7Cis7Ozs7IENvcHlyaWdodCAyMDIyIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorOzs7OworOzs7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCis7Ozs7IG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7Ozsg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyCis7Ozs7IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OzsgCis7Ozs7IFRoaXMgbGlicmFyeSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzs7OyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorOzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7OyAKKzs7OzsgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworOzs7 OyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCis7Ozs7IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0 cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKworKGRlZmlu ZS1tb2R1bGUgKHRlc3QtbW1hcC1hcGkpCisgICM6dXNlLW1vZHVsZSAodGVzdC1zdWl0ZSBs aWIpCisgICM6dXNlLW1vZHVsZSAodGVzdC1zdWl0ZSBndWlsZS10ZXN0KQorICAjOnVzZS1t b2R1bGUgKHJucnMgYnl0ZXZlY3RvcnMpCisgICkKKworKGRlZmluZSAobW1hcC10ZXN0LWZp bGUpCisgIChkYXRhLWZpbGUtbmFtZSAiZm9vLnR4dCIpKQorCisoZGVmaW5lIG1tYXAtdGVz dC1zdHJpbmcgImhlbGxvLCB3b3JsZCIpCisKKyhkZWZpbmUgKGdlbi1tbWFwLXRlc3QtZmls ZSkKKyAgKHdpdGgtb3V0cHV0LXRvLWZpbGUgKG1tYXAtdGVzdC1maWxlKQorICAgIChsYW1i ZGEgKCkgKGRpc3BsYXkgbW1hcC10ZXN0LXN0cmluZykpKSkKKworKHdoZW4gKHByb3ZpZGVk PyAnbW1hcC1hcGkpCisKKyAgKGdlbi1tbWFwLXRlc3QtZmlsZSkKKworICAod2l0aC10ZXN0 LXByZWZpeCAibW1hcC1hcGkiCisgICAgICAKKyAgICAocGFzcy1pZiAibW1hcC1hcGkgMSIK KyAgICAgIChsZXQgKChidiAobW1hcCAwICN4MTAwKSkpCisgICAgICAgIChieXRldmVjdG9y LXU4LXNldCEgYnYgMCAzNCkKKyAgICAgICAgKD0gKGJ5dGV2ZWN0b3ItdTgtcmVmIGJ2IDAp IDM0KSkpCisKKyAgICApKQorCis7OyAtLS0gbGFzdCBsaW5lIC0tLQotLSAKMi4zNC4xCgo= --------------cuKjuw6DWfWEp5TZbKtqxq07--