From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) by sourceware.org (Postfix) with ESMTPS id 65E493858D28 for ; Wed, 28 Sep 2022 01:16:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 65E493858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pg1-x529.google.com with SMTP id c7so10869047pgt.11 for ; Tue, 27 Sep 2022 18:16:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date; bh=88tFJ1/c2y1NyFG5QNM7KZk/qV13md+cNv4lUNXEBzw=; b=DZmd8jRd9np9i9qZ42c4tGOAVO6CW6ZzP5oxrkXy6EA61fsPunPeQn3vB83ti2uCh2 FaUfGQA8vog+waIJixdQmH3jbw694pQQwfUcIYuo3Q7615H/TA5rHXX9dNCexQyEQRv/ 0XvGHkFE/GWww5KC7fyut9VFlvrZvDgkqpr2xgpj4kXjVDg/mfx82BoC1RUxWcIXSa1h e+kc1Vn2iAs2CSvUTiB/vSdkHwsPTiBN+8DIatyUr3PLOvU5gLmdrDpESS3l9UAVLv48 8DdRErnf7fHSZ3iIXBjdv+IKHp17WIE2dS8mqfoffhMheVNOORJ6DZYE8O1o6UDSOBZx shcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date; bh=88tFJ1/c2y1NyFG5QNM7KZk/qV13md+cNv4lUNXEBzw=; b=Vm3drlKMjFqsWukYiPwHhWLd7arm1WqP7kcBZ2rZSzskHM/HDCcBythyUeZGpk5Iy+ 5YoiU0yjn52581Wyf7e5dQWoOBAnNAmqPJyT69QGhStTVo+g6gT6tOCdQZVTGFwPDNmk nXOgMN+v9DDKrquRi3BaP65snXN74QOn1Ih5hl/4crTvQQ1DpGSVFbU0kDjZxwa8/L7b xGenM5Cj+dehmxolJXwyhDzA2jbk0IZWCsDdvvPYztforqrObFgkKRsds1W/4+C2J1WH 0CqneNa1RSU0/hQ/gJ5zJPRO/3PCYKr3eLkMz8qaiOitJp54o2noiWCcURAEbv+Jw13N veUw== X-Gm-Message-State: ACrzQf0Q439RlC3/CQTGRqVUOv6MjEAGQXnbeXe433pVNqvFLBeEzSDL karjklktY+B0VY98JLokZI4G7lLa1rgLSw== X-Google-Smtp-Source: AMsMyM7jS15GO+ls+6pKQpyu9DifFJraiSeJFkBC1jSk8kzee6IZ7oaZncWqDTZbrH7h47cy9Dhoiw== X-Received: by 2002:a63:f20e:0:b0:439:398f:80f8 with SMTP id v14-20020a63f20e000000b00439398f80f8mr26347564pgh.494.1664327809900; Tue, 27 Sep 2022 18:16:49 -0700 (PDT) Received: from ?IPV6:2601:681:8600:13d0::f0a? ([2601:681:8600:13d0::f0a]) by smtp.gmail.com with ESMTPSA id g30-20020aa79f1e000000b00537f16e25d3sm2488911pfr.75.2022.09.27.18.16.47 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 27 Sep 2022 18:16:49 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------e3rAbrPMlG8hO29EZx7RrrIR" Message-ID: Date: Tue, 27 Sep 2022 19:16:45 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 Subject: Re: [PATCH] Move reload_completed and other rtl.h globals to crtl structure. Content-Language: en-US To: gcc-patches@gcc.gnu.org References: <00e601d89489$a5133740$ef39a5c0$@nextmovesoftware.com> From: Jeff Law In-Reply-To: <00e601d89489$a5133740$ef39a5c0$@nextmovesoftware.com> X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------e3rAbrPMlG8hO29EZx7RrrIR Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 7/10/22 12:19, Roger Sayle wrote: > This patch builds upon Richard Biener's suggestion of avoiding global > variables to track state/identify which passes have already been run. > In the early middle-end, the tree-ssa passes use the curr_properties > field in cfun to track this. This patch uses a new rtl_pass_progress > int field in crtl to do something similar. > > This patch allows the global variables lra_in_progress, reload_in_progress, > reload_completed, epilogue_completed and regstack_completed to be removed > from rtl.h and implemented as bits within the new crtl->rtl_pass_progress. > I've also taken the liberty of adding a new combine_completed bit at the > same time [to respond the Segher's comment it's easy to change this to > combine1_completed and combine2_completed if we ever perform multiple > combine passes (or multiple reload/regstack passes)]. At the same time, > I've also refactored bb_reorder_complete into the same new field; > interestingly bb_reorder_complete was already a bool in crtl. > > One very minor advantage of this implementation/refactoring is that the > predicate "can_create_pseudo_p ()" which is semantically defined to be > !reload_in_progress && !reload_completed, can now be performed very > efficiently as effectively the test (progress & 12) == 0, i.e. a single > test instruction on x86. > > For consistency, I've also moved cse_not_expected (the last remaining > global variable in rtl.h) into crtl, as its own bool field. > > The vast majority of this patch is then churn to handle these changes. > Thanks to macros, most code is unaffected, assuming it treats those > global variables as r-values, though some source files required/may > require tweaks as these "variables" are now defined in emit-rtl.h > instead of rtl.h. > > This patch has been tested on x86_64-pc-linux-gnu with make bootstrap > and make -k check, both with and without --target_board=unix{-m32}, > with no new failures. Might this clean-up be acceptable in stage 1, > given the possible temporary disruption transitioning some backends? > I'll start checking various backends myself with cross-compilers, but if > Jeff Law could spin this patch on his build farm, that would help > identify targets that need attention. Do you have any intention on moving forward with this?    I like what you've done and I've been carrying around changes to make it work across a much wider set of targets.   Many targets want to treat reload_in_progress and reload_completed as lvalues in their thunk code, so they need simple adjustments. I suspect some of the untested targets like ia64 will need obvious adjustments.  The patch I've had in my tester for the last few months is attached... Jeff --------------e3rAbrPMlG8hO29EZx7RrrIR Content-Type: text/x-patch; charset=UTF-8; name="0007-roger.patch" Content-Disposition: attachment; filename="0007-roger.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9iYi1yZW9yZGVyLmNjIGIvZ2NjL2JiLXJlb3JkZXIuY2MKaW5k ZXggNWNkNDgyNTVmOGEuLjFjMWNiYWViMWUyIDEwMDY0NAotLS0gYS9nY2MvYmItcmVvcmRl ci5jYworKysgYi9nY2MvYmItcmVvcmRlci5jYwpAQCAtMjU3MCw3ICsyNTcwLDcgQEAgcmVv cmRlcl9iYXNpY19ibG9ja3MgKHZvaWQpCiAKICAgLyogU2lnbmFsIHRoYXQgcnRsX3Zlcmlm eV9mbG93X2luZm9fMSBjYW4gbm93IHZlcmlmeSB0aGF0IHRoZXJlCiAgICAgIGlzIGF0IG1v c3Qgb25lIHN3aXRjaCBiZXR3ZWVuIGhvdC9jb2xkIHNlY3Rpb25zLiAgKi8KLSAgY3J0bC0+ YmJfcmVvcmRlcl9jb21wbGV0ZSA9IHRydWU7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNz IHw9IFBST0dSRVNTX2JiX3Jlb3JkZXJfY29tcGxldGU7CiB9CiAKIC8qIERldGVybWluZSB3 aGljaCBwYXJ0aXRpb24gdGhlIGZpcnN0IGJhc2ljIGJsb2NrIGluIHRoZSBmdW5jdGlvbgpk aWZmIC0tZ2l0IGEvZ2NjL2NmZ3J0bC5jYyBiL2djYy9jZmdydGwuY2MKaW5kZXggYTA1YzMz OGE0YzguLjhmZTM2N2U1M2M1IDEwMDY0NAotLS0gYS9nY2MvY2ZncnRsLmNjCisrKyBiL2dj Yy9jZmdydGwuY2MKQEAgLTE5MDcsNyArMTkwNyw3IEBAIHJ0bF9zcGxpdF9lZGdlIChlZGdl IGVkZ2VfaW4pCiAgICAgICAgICAgICAgYW4gZXh0cmEgcGFydGl0aW9uIGNyb3NzaW5nIGlu IHRoZSBjaGFpbiwgd2hpY2ggaXMgaWxsZWdhbC4KICAgICAgICAgICAgICBJdCBjYW4ndCBn byBhZnRlciB0aGUgc3JjLCBiZWNhdXNlIHNyYyBtYXkgaGF2ZSBhIGZhbGwtdGhyb3VnaAog ICAgICAgICAgICAgIHRvIGEgZGlmZmVyZW50IGJsb2NrLiAgKi8KLSAgICAgICAgICBpZiAo Y3J0bC0+YmJfcmVvcmRlcl9jb21wbGV0ZQorICAgICAgICAgIGlmIChiYl9yZW9yZGVyX2Nv bXBsZXRlCiAgICAgICAgICAgICAgICYmIChlZGdlX2luLT5mbGFncyAmIEVER0VfQ1JPU1NJ TkcpKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICBhZnRlciA9IGxhc3RfYmJfaW5f cGFydGl0aW9uIChlZGdlX2luLT5zcmMpOwpAQCAtMjQ0NCw3ICsyNDQ0LDcgQEAgZml4dXBf cGFydGl0aW9ucyAodm9pZCkKICAgICAgIHdoaWxlICghIGJic190b19maXguaXNfZW1wdHkg KCkpOwogCiAgICAgICAvKiBGaXggdXAgaG90IGNvbGQgYmxvY2sgZ3JvdXBpbmcgaWYgbmVl ZGVkLiAgKi8KLSAgICAgIGlmIChjcnRsLT5iYl9yZW9yZGVyX2NvbXBsZXRlICYmIGN1cnJl bnRfaXJfdHlwZSAoKSA9PSBJUl9SVExfQ0ZHUlRMKQorICAgICAgaWYgKGJiX3Jlb3JkZXJf Y29tcGxldGUgJiYgY3VycmVudF9pcl90eXBlICgpID09IElSX1JUTF9DRkdSVEwpCiAJewog CSAgYmFzaWNfYmxvY2sgYmIsIGZpcnN0ID0gTlVMTCwgc2Vjb25kID0gTlVMTDsKIAkgIGlu dCBjdXJyZW50X3BhcnRpdGlvbiA9IEJCX1VOUEFSVElUSU9ORUQ7CkBAIC0yNTA3LDcgKzI1 MDcsNyBAQCB2ZXJpZnlfaG90X2NvbGRfYmxvY2tfZ3JvdXBpbmcgKHZvaWQpCiAgIC8qIEV2 ZW4gYWZ0ZXIgYmIgcmVvcmRlcmluZyBpcyBjb21wbGV0ZSwgd2UgZ28gaW50byBjZmdsYXlv dXQgbW9kZQogICAgICBhZ2FpbiAoaW4gY29tcGdvdG8pLiBFbnN1cmUgd2UgZG9uJ3QgY2Fs bCB0aGlzIGJlZm9yZSBnb2luZyBiYWNrCiAgICAgIGludG8gbGluZWFyaXplZCBSVEwgd2hl biBhbnkgbGF5b3V0IGZpeGVzIHdvdWxkIGhhdmUgYmVlbiBjb21taXR0ZWQuICAqLwotICBp ZiAoIWNydGwtPmJiX3Jlb3JkZXJfY29tcGxldGUKKyAgaWYgKCFiYl9yZW9yZGVyX2NvbXBs ZXRlCiAgICAgICB8fCBjdXJyZW50X2lyX3R5cGUgKCkgIT0gSVJfUlRMX0NGR1JUTCkKICAg ICByZXR1cm4gZXJyOwogCkBAIC00NDgxLDcgKzQ0ODEsNyBAQCBjZmdfbGF5b3V0X2luaXRp YWxpemUgKGludCBmbGFncykKICAgICAgbGF5b3V0IHJlcXVpcmVkIG1vdmluZyBhIGJsb2Nr IGZyb20gdGhlIGhvdCB0byB0aGUgY29sZAogICAgICBzZWN0aW9uLiBUaGlzIHdvdWxkIGNy ZWF0ZSBhbiBpbGxlZ2FsIHBhcnRpdGlvbmluZyB1bmxlc3Mgc29tZQogICAgICBtYW51YWwg Zml4dXAgd2FzIHBlcmZvcm1lZC4gICovCi0gIGdjY19hc3NlcnQgKCFjcnRsLT5iYl9yZW9y ZGVyX2NvbXBsZXRlIHx8ICFjcnRsLT5oYXNfYmJfcGFydGl0aW9uKTsKKyAgZ2NjX2Fzc2Vy dCAoIWJiX3Jlb3JkZXJfY29tcGxldGUgfHwgIWNydGwtPmhhc19iYl9wYXJ0aXRpb24pOwog CiAgIGluaXRpYWxpemVfb3JpZ2luYWxfY29weV90YWJsZXMgKCk7CiAKZGlmZiAtLWdpdCBh L2djYy9jb21iaW5lLmNjIGIvZ2NjL2NvbWJpbmUuY2MKaW5kZXggYTVmYWJmMzk3ZjcuLjE4 ZTJhODAyNzU3IDEwMDY0NAotLS0gYS9nY2MvY29tYmluZS5jYworKysgYi9nY2MvY29tYmlu ZS5jYwpAQCAtMTQ5OTEsNiArMTQ5OTEsNyBAQCByZXN0X29mX2hhbmRsZV9jb21iaW5lICh2 b2lkKQogICAgIH0KIAogICByZWdzdGF0X2ZyZWVfbl9zZXRzX2FuZF9yZWZzICgpOworICBj cnRsLT5ydGxfcGFzc19wcm9ncmVzcyB8PSBQUk9HUkVTU19jb21iaW5lX2NvbXBsZXRlZDsK ICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni94ODYtdHVu ZS1zY2hlZC1hdG9tLmNjIGIvZ2NjL2NvbmZpZy9pMzg2L3g4Ni10dW5lLXNjaGVkLWF0b20u Y2MKaW5kZXggMDdkMjA5M2NjZTIuLjlmZTM5MzNlOTJhIDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL2kzODYveDg2LXR1bmUtc2NoZWQtYXRvbS5jYworKysgYi9nY2MvY29uZmlnL2kzODYv eDg2LXR1bmUtc2NoZWQtYXRvbS5jYwpAQCAtMzQsNiArMzQsOCBAQCBhbG9uZyB3aXRoIEdD Qzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQogI2luY2x1ZGUgInJ0bC1p dGVyLmgiCiAjaW5jbHVkZSAicmVnc2V0LmgiCiAjaW5jbHVkZSAic2NoZWQtaW50LmgiCisj aW5jbHVkZSAibWVtbW9kZWwuaCIKKyNpbmNsdWRlICJlbWl0LXJ0bC5oIgogCiAvKiBUcnkg dG8gcmVvcmRlciByZWFkeSBsaXN0IHRvIHRha2UgYWR2YW50YWdlIG9mIEF0b20gcGlwZWxp bmVkIElNVUwKICAgIGV4ZWN1dGlvbi4gSXQgaXMgYXBwbGllZCBpZgpkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9pMzg2L3g4Ni10dW5lLXNjaGVkLmNjIGIvZ2NjL2NvbmZpZy9pMzg2L3g4 Ni10dW5lLXNjaGVkLmNjCmluZGV4IDFmZmFlZWYwMzdjLi4zMTVjZTA0ZTk2MiAxMDA2NDQK LS0tIGEvZ2NjL2NvbmZpZy9pMzg2L3g4Ni10dW5lLXNjaGVkLmNjCisrKyBiL2djYy9jb25m aWcvaTM4Ni94ODYtdHVuZS1zY2hlZC5jYwpAQCAtMzIsNiArMzIsOCBAQCBhbG9uZyB3aXRo IEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQogI2luY2x1ZGUgImlu c24tYXR0ci5oIgogI2luY2x1ZGUgImluc24tb3Bpbml0LmgiCiAjaW5jbHVkZSAicmVjb2cu aCIKKyNpbmNsdWRlICJtZW1tb2RlbC5oIgorI2luY2x1ZGUgImVtaXQtcnRsLmgiCiAKIC8q IFJldHVybiB0aGUgbWF4aW11bSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIGEgY3B1IGNhbiBp c3N1ZS4gICovCiAKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbWljcm9ibGF6ZS9taWNyb2Js YXplLmNjIGIvZ2NjL2NvbmZpZy9taWNyb2JsYXplL21pY3JvYmxhemUuY2MKaW5kZXggZjMy ZWZmZWNmYjYuLmZjZjYxZTA3NmU1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL21pY3JvYmxh emUvbWljcm9ibGF6ZS5jYworKysgYi9nY2MvY29uZmlnL21pY3JvYmxhemUvbWljcm9ibGF6 ZS5jYwpAQCAtMzMwOCw4ICszMzA4LDggQEAgbWljcm9ibGF6ZV9hc21fb3V0cHV0X21pX3Ro dW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rX2ZuZGVjbCBBVFRSSUJVVEVfVU5VU0VELAog ICBydHggdGhpc19ydHgsIGZ1bmV4cDsKICAgcnR4X2luc24gKmluc247CiAKLSAgcmVsb2Fk X2NvbXBsZXRlZCA9IDE7Ci0gIGVwaWxvZ3VlX2NvbXBsZXRlZCA9IDE7CisgIGNydGwtPnJ0 bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNTX3JlbG9hZF9jb21wbGV0ZWQ7CisgIGNydGwt PnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNTX2VwaWxvZ3VlX2NvbXBsZXRlZDsKIAog ICAvKiBNYXJrIHRoZSBlbmQgb2YgdGhlIChlbXB0eSkgcHJvbG9ndWUuICAqLwogICBlbWl0 X25vdGUgKE5PVEVfSU5TTl9QUk9MT0dVRV9FTkQpOwpAQCAtMzM2Niw4ICszMzY2LDggQEAg bWljcm9ibGF6ZV9hc21fb3V0cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5r X2ZuZGVjbCBBVFRSSUJVVEVfVU5VU0VELAogICBmaW5hbF9lbmRfZnVuY3Rpb24gKCk7CiAg IGFzc2VtYmxlX2VuZF9mdW5jdGlvbiAodGh1bmtfZm5kZWNsLCBmbm5hbWUpOwogCi0gIHJl bG9hZF9jb21wbGV0ZWQgPSAwOwotICBlcGlsb2d1ZV9jb21wbGV0ZWQgPSAwOworICBjcnRs LT5ydGxfcGFzc19wcm9ncmVzcyAmPSB+UFJPR1JFU1NfcmVsb2FkX2NvbXBsZXRlZDsKKyAg Y3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgJj0gflBST0dSRVNTX2VwaWxvZ3VlX2NvbXBsZXRl ZDsKIH0KIAogYm9vbApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9taXBzL21pcHMuY2MgYi9n Y2MvY29uZmlnL21pcHMvbWlwcy5jYwppbmRleCBlODFhMjQ1ZGNmNC4uYTdhZWQ3NzcyNmUg MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvbWlwcy9taXBzLmNjCisrKyBiL2djYy9jb25maWcv bWlwcy9taXBzLmNjCkBAIC0xOTY1OSw3ICsxOTY1OSw3IEBAIG1pcHNfb3V0cHV0X21pX3Ro dW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rX2ZuZGVjbCBBVFRSSUJVVEVfVU5VU0VELAog ICBib29sIHVzZV9zaWJjYWxsX3A7CiAKICAgLyogUHJldGVuZCB0byBiZSBhIHBvc3QtcmVs b2FkIHBhc3Mgd2hpbGUgZ2VuZXJhdGluZyBydGwuICAqLwotICByZWxvYWRfY29tcGxldGVk ID0gMTsKKyAgY3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgfD0gUFJPR1JFU1NfcmVsb2FkX2Nv bXBsZXRlZDsKIAogICAvKiBNYXJrIHRoZSBlbmQgb2YgdGhlIChlbXB0eSkgcHJvbG9ndWUu ICAqLwogICBlbWl0X25vdGUgKE5PVEVfSU5TTl9QUk9MT0dVRV9FTkQpOwpAQCAtMTk3NzQs NyArMTk3NzQsNyBAQCBtaXBzX291dHB1dF9taV90aHVuayAoRklMRSAqZmlsZSwgdHJlZSB0 aHVua19mbmRlY2wgQVRUUklCVVRFX1VOVVNFRCwKIAogICAvKiBDbGVhbiB1cCB0aGUgdmFy cyBzZXQgYWJvdmUuICBOb3RlIHRoYXQgZmluYWxfZW5kX2Z1bmN0aW9uIHJlc2V0cwogICAg ICB0aGUgZ2xvYmFsIHBvaW50ZXIgZm9yIHVzLiAgKi8KLSAgcmVsb2FkX2NvbXBsZXRlZCA9 IDA7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzICY9IH5QUk9HUkVTU19yZWxvYWRfY29t cGxldGVkOwogfQogDAogCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL21pcHMvbWlwcy5tZCBi L2djYy9jb25maWcvbWlwcy9taXBzLm1kCmluZGV4IGUwZjBhNTgyNzMyLi5jMDAzNTA2NmRh ZCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9taXBzL21pcHMubWQKKysrIGIvZ2NjL2NvbmZp Zy9taXBzL21pcHMubWQKQEAgLTI5MjIsNyArMjkyMiw3IEBACiAgICAoY2xvYmJlciAobWF0 Y2hfb3BlcmFuZDpHUFIgNCAibG9fb3BlcmFuZCIgIj1sIikpXQogICAiSVNBX0hBU188RD5E SVYgJiYgIVRBUkdFVF9GSVhfVlI0MTIwICYmIFRBUkdFVF9NSVBTMTYiCiAgICIjIgotICAi JiYgY3NlX25vdF9leHBlY3RlZCIKKyAgIiYmIGNydGwtPmNzZV9ub3RfZXhwZWN0ZWQiCiAg IFsoY29uc3RfaW50IDApXQogewogICBlbWl0X2luc24gKGdlbl9kaXZtb2Q8bW9kZT40X3Nw bGl0IChvcGVyYW5kc1szXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdKSk7CkBAIC0yOTgy LDcgKzI5ODIsNyBAQAogICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6R1BSIDQgImxvX29w ZXJhbmQiICI9bCIpKV0KICAgIklTQV9IQVNfPEQ+RElWICYmIFRBUkdFVF9NSVBTMTYiCiAg ICIjIgotICAiY3NlX25vdF9leHBlY3RlZCIKKyAgImNydGwtPmNzZV9ub3RfZXhwZWN0ZWQi CiAgIFsoY29uc3RfaW50IDApXQogewogICBlbWl0X2luc24gKGdlbl91ZGl2bW9kPG1vZGU+ NF9zcGxpdCAob3BlcmFuZHNbM10sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSkpOwpAQCAt NDU0NCw3ICs0NTQ0LDcgQEAKICAgIiFUQVJHRVRfTUlQUzE2CiAgICAmJiBUQVJHRVRfRVhQ TElDSVRfUkVMT0NTCiAgICAmJiBBQklfSEFTXzY0QklUX1NZTUJPTFMKLSAgICYmIGNzZV9u b3RfZXhwZWN0ZWQiCisgICAmJiBjcnRsLT5jc2Vfbm90X2V4cGVjdGVkIgogICAiIyIKICAg IiYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgIFsoc2V0IChtYXRjaF9kdXAgMCkgKGhpZ2g6REkg KG1hdGNoX2R1cCAzKSkpCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL25pb3MyL25pb3MyLmNj IGIvZ2NjL2NvbmZpZy9uaW9zMi9uaW9zMi5jYwppbmRleCAxYTMzYzg4ZjE5Zi4uYWI2NWNh MDBmNzUgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvbmlvczIvbmlvczIuY2MKKysrIGIvZ2Nj L2NvbmZpZy9uaW9zMi9uaW9zMi5jYwpAQCAtNDUwMiw3ICs0NTAyLDcgQEAgbmlvczJfYXNt X291dHB1dF9taV90aHVuayAoRklMRSAqZmlsZSwgdHJlZSB0aHVua19mbmRlY2wgQVRUUklC VVRFX1VOVVNFRCwKICAgcnR4X2luc24gKmluc247CiAKICAgLyogUHJldGVuZCB0byBiZSBh IHBvc3QtcmVsb2FkIHBhc3Mgd2hpbGUgZ2VuZXJhdGluZyBydGwuICAqLwotICByZWxvYWRf Y29tcGxldGVkID0gMTsKKyAgY3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgfD0gUFJPR1JFU1Nf cmVsb2FkX2NvbXBsZXRlZDsKIAogICBpZiAoZmxhZ19waWMpCiAgICAgbmlvczJfbG9hZF9w aWNfcmVnaXN0ZXIgKCk7CkBAIC00NTU3LDcgKzQ1NTcsNyBAQCBuaW9zMl9hc21fb3V0cHV0 X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rX2ZuZGVjbCBBVFRSSUJVVEVfVU5V U0VELAogICBhc3NlbWJsZV9lbmRfZnVuY3Rpb24gKHRodW5rX2ZuZGVjbCwgZm5uYW1lKTsK IAogICAvKiBTdG9wIHByZXRlbmRpbmcgdG8gYmUgYSBwb3N0LXJlbG9hZCBwYXNzLiAgKi8K LSAgcmVsb2FkX2NvbXBsZXRlZCA9IDA7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzICY9 IH5QUk9HUkVTU19yZWxvYWRfY29tcGxldGVkOwogfQogCiAKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvb3Ixay9vcjFrLmNjIGIvZ2NjL2NvbmZpZy9vcjFrL29yMWsuY2MKaW5kZXggZGEy ZjU5MDYyYmEuLmY1ZTg0ZTI2NWIwIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL29yMWsvb3Ix ay5jYworKysgYi9nY2MvY29uZmlnL29yMWsvb3Ixay5jYwpAQCAtMTQ0NSw3ICsxNDQ1LDcg QEAgb3Ixa19leHBhbmRfbW92ZSAobWFjaGluZV9tb2RlIG1vZGUsIHJ0eCBvcDAsIHJ0eCBv cDEpCiAJICAgICAgSE9TVF9XSURFX0lOVCBoaSA9IGkgXiBsbzsKIAkgICAgICBydHggc3Vi dGFyZ2V0ID0gb3AwOwogCi0JICAgICAgaWYgKCFjc2Vfbm90X2V4cGVjdGVkICYmIGNhbl9j cmVhdGVfcHNldWRvX3AgKCkpCisJICAgICAgaWYgKCFjcnRsLT5jc2Vfbm90X2V4cGVjdGVk ICYmIGNhbl9jcmVhdGVfcHNldWRvX3AgKCkpCiAJCXN1YnRhcmdldCA9IGdlbl9yZWdfcnR4 IChTSW1vZGUpOwogCSAgICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKHN1YnRhcmdldCwg R0VOX0lOVCAoaGkpKSk7CiAJICAgICAgZW1pdF9pbnNuIChnZW5faW9yc2kzIChvcDAsIHN1 YnRhcmdldCwgR0VOX0lOVCAobG8pKSk7CkBAIC0yMTAyLDggKzIxMDIsOCBAQCBvcjFrX291 dHB1dF9taV90aHVuayAoRklMRSAqZmlsZSwgdHJlZSB0aHVua19mbmRlY2wsCiAgIHJ0eCB0 aGlzX3J0eCwgZnVuZXhwOwogICBydHhfaW5zbiAqaW5zbjsKIAotICByZWxvYWRfY29tcGxl dGVkID0gMTsKLSAgZXBpbG9ndWVfY29tcGxldGVkID0gMTsKKyAgY3J0bC0+cnRsX3Bhc3Nf cHJvZ3Jlc3MgfD0gUFJPR1JFU1NfcmVsb2FkX2NvbXBsZXRlZDsKKyAgY3J0bC0+cnRsX3Bh c3NfcHJvZ3Jlc3MgfD0gUFJPR1JFU1NfZXBpbG9ndWVfY29tcGxldGVkOwogCiAgIGVtaXRf bm90ZSAoTk9URV9JTlNOX1BST0xPR1VFX0VORCk7CiAKQEAgLTIxODcsOCArMjE4Nyw4IEBA IG9yMWtfb3V0cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rX2ZuZGVjbCwK ICAgZmluYWxfZW5kX2Z1bmN0aW9uICgpOwogICBhc3NlbWJsZV9lbmRfZnVuY3Rpb24gKHRo dW5rX2ZuZGVjbCwgZm5uYW1lKTsKIAotICByZWxvYWRfY29tcGxldGVkID0gMDsKLSAgZXBp bG9ndWVfY29tcGxldGVkID0gMDsKKyAgY3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgJj0gflBS T0dSRVNTX3JlbG9hZF9jb21wbGV0ZWQ7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzICY9 IH5QUk9HUkVTU19lcGlsb2d1ZV9jb21wbGV0ZWQ7CiB9CiAKICN1bmRlZiAgVEFSR0VUX0FT TV9PVVRQVVRfTUlfVEhVTksKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvczM5MC9zMzkwLmNj IGIvZ2NjL2NvbmZpZy9zMzkwL3MzOTAuY2MKaW5kZXggNWFhZjc2YTk0OTAuLmVlYjI5ODRh NzEyIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3MzOTAvczM5MC5jYworKysgYi9nY2MvY29u ZmlnL3MzOTAvczM5MC5jYwpAQCAtMzQyLDggKzM0Miw2IEBAIGNvbnN0IHN0cnVjdCBzMzkw X3Byb2Nlc3NvciBwcm9jZXNzb3JfdGFibGVbXSA9CiAgIHsgIm5hdGl2ZSIsICIiLCAgICAg ICBQUk9DRVNTT1JfTkFUSVZFLCAgICAgIE5VTEwsICAgICAgICAgMCAgfQogfTsKIAotZXh0 ZXJuIGludCByZWxvYWRfY29tcGxldGVkOwotCiAvKiBLZXB0IHVwIHRvIGRhdGUgdXNpbmcg dGhlIFNDSEVEX1ZBUklBQkxFX0lTU1VFIGhvb2suICAqLwogc3RhdGljIHJ0eF9pbnNuICps YXN0X3NjaGVkdWxlZF9pbnNuOwogI2RlZmluZSBOVU1fU0lERVMgMgpkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9zaC9zaC5jYyBiL2djYy9jb25maWcvc2gvc2guY2MKaW5kZXggOWJlZTYx OGI2MzkuLmRiMDFlOGU5NmMwIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3NoL3NoLmNjCisr KyBiL2djYy9jb25maWcvc2gvc2guY2MKQEAgLTEwNzk2LDggKzEwNzk2LDggQEAgc2hfb3V0 cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rX2ZuZGVjbCBBVFRSSUJVVEVf VU5VU0VELAogICBpbnQgZGlkX2xvYWQgPSAwOwogICBydHggc2NyYXRjaDAsIHNjcmF0Y2gx LCBzY3JhdGNoMjsKIAotICByZWxvYWRfY29tcGxldGVkID0gMTsKLSAgZXBpbG9ndWVfY29t cGxldGVkID0gMTsKKyAgY3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgfD0gUFJPR1JFU1NfcmVs b2FkX2NvbXBsZXRlZDsKKyAgY3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgfD0gUFJPR1JFU1Nf ZXBpbG9ndWVfY29tcGxldGVkOwogICBjcnRsLT51c2VzX29ubHlfbGVhZl9yZWdzID0gMTsK IAogICBlbWl0X25vdGUgKE5PVEVfSU5TTl9QUk9MT0dVRV9FTkQpOwpAQCAtMTA5NTAsOCAr MTA5NTAsOCBAQCBzaF9vdXRwdXRfbWlfdGh1bmsgKEZJTEUgKmZpbGUsIHRyZWUgdGh1bmtf Zm5kZWNsIEFUVFJJQlVURV9VTlVTRUQsCiAgIGZpbmFsX2VuZF9mdW5jdGlvbiAoKTsKICAg YXNzZW1ibGVfZW5kX2Z1bmN0aW9uICh0aHVua19mbmRlY2wsIGZubmFtZSk7CiAKLSAgcmVs b2FkX2NvbXBsZXRlZCA9IDA7Ci0gIGVwaWxvZ3VlX2NvbXBsZXRlZCA9IDA7CisgIGNydGwt PnJ0bF9wYXNzX3Byb2dyZXNzICY9IH5QUk9HUkVTU19yZWxvYWRfY29tcGxldGVkOworICBj cnRsLT5ydGxfcGFzc19wcm9ncmVzcyAmPSB+UFJPR1JFU1NfZXBpbG9ndWVfY29tcGxldGVk OwogfQogCiAvKiBSZXR1cm4gYW4gUlRYIHBhaXIgZm9yIHRoZSBhZGRyZXNzIGFuZCBjYWxs IHNpdGUgbGFiZWwgb2YgYSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9zaC9z aC5tZCBiL2djYy9jb25maWcvc2gvc2gubWQKaW5kZXggNTlhN2IyMTY0MzMuLmUxNjljOTQx MWQ1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3NoL3NoLm1kCisrKyBiL2djYy9jb25maWcv c2gvc2gubWQKQEAgLTM2MzgsNyArMzYzOCw3IEBACiAgIFsoc2V0IChyZWc6U0kgVF9SRUcp CiAJKGx0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDAgImFyaXRoX3JlZ19vcGVyYW5kIiAiciIp IChjb25zdF9pbnQgMCkpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6U0kgMSAiPTAi KSldCi0gICJUQVJHRVRfU0gxICYmIGNzZV9ub3RfZXhwZWN0ZWQiCisgICJUQVJHRVRfU0gx ICYmIGNydGwtPmNzZV9ub3RfZXhwZWN0ZWQiCiAgICJzaGxsCSUwIgogICBbKHNldF9hdHRy ICJ0eXBlIiAiYXJpdGgiKV0pCiAKZGlmZiAtLWdpdCBhL2djYy9jc2UuY2MgYi9nY2MvY3Nl LmNjCmluZGV4IGIxM2FmZDRiYTcyLi5iMDk0YTM4OTdlYSAxMDA2NDQKLS0tIGEvZ2NjL2Nz ZS5jYworKysgYi9nY2MvY3NlLmNjCkBAIC03NTMzLDcgKzc1MzMsNyBAQCByZXN0X29mX2hh bmRsZV9jc2UgKHZvaWQpCiAKICAgLyogSWYgd2UgYXJlIG5vdCBydW5uaW5nIG1vcmUgQ1NF IHBhc3NlcywgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyCiAgICAgIGV4cGVjdGluZyBDU0UgdG8g YmUgcnVuLiAgQnV0IGFsd2F5cyByZXJ1biBpdCBpbiBhIGNoZWFwIG1vZGUuICAqLwotICBj c2Vfbm90X2V4cGVjdGVkID0gIWZsYWdfcmVydW5fY3NlX2FmdGVyX2xvb3AgJiYgIWZsYWdf Z2NzZTsKKyAgY3J0bC0+Y3NlX25vdF9leHBlY3RlZCA9ICFmbGFnX3JlcnVuX2NzZV9hZnRl cl9sb29wICYmICFmbGFnX2djc2U7CiAKICAgaWYgKHRlbSA9PSAyKQogICAgIHsKQEAgLTc2 MTcsNyArNzYxNyw3IEBAIHJlc3Rfb2ZfaGFuZGxlX2NzZTIgKHZvaWQpCiAgIGVsc2UgaWYg KHRlbSA9PSAxIHx8IGNzZV9jZmdfYWx0ZXJlZCkKICAgICBjc2VfY2ZnX2FsdGVyZWQgfD0g Y2xlYW51cF9jZmcgKDApOwogCi0gIGNzZV9ub3RfZXhwZWN0ZWQgPSAxOworICBjcnRsLT5j c2Vfbm90X2V4cGVjdGVkID0gdHJ1ZTsKICAgcmV0dXJuIDA7CiB9CiAKQEAgLTc2ODEsNyAr NzY4MSw3IEBAIHJlc3Rfb2ZfaGFuZGxlX2NzZV9hZnRlcl9nbG9iYWxfb3B0cyAodm9pZCkK ICAgY3NlX2NmZ19hbHRlcmVkIHw9IHB1cmdlX2FsbF9kZWFkX2VkZ2VzICgpOwogICBkZWxl dGVfdHJpdmlhbGx5X2RlYWRfaW5zbnMgKGdldF9pbnNucyAoKSwgbWF4X3JlZ19udW0gKCkp OwogCi0gIGNzZV9ub3RfZXhwZWN0ZWQgPSAhZmxhZ19yZXJ1bl9jc2VfYWZ0ZXJfbG9vcDsK KyAgY3J0bC0+Y3NlX25vdF9leHBlY3RlZCA9ICFmbGFnX3JlcnVuX2NzZV9hZnRlcl9sb29w OwogCiAgIC8qIElmIGNzZSBhbHRlcmVkIGFueSBqdW1wcywgcmVydW4ganVtcCBvcHRzIHRv IGNsZWFuIHRoaW5ncyB1cC4gICovCiAgIGlmICh0ZW0gPT0gMikKZGlmZiAtLWdpdCBhL2dj Yy9kZi1wcm9ibGVtcy5jYyBiL2djYy9kZi1wcm9ibGVtcy5jYwppbmRleCAyMzg0MjRjZWFj OC4uOGZkMDQ3MGE4MDEgMTAwNjQ0Ci0tLSBhL2djYy9kZi1wcm9ibGVtcy5jYworKysgYi9n Y2MvZGYtcHJvYmxlbXMuY2MKQEAgLTM4LDYgKzM4LDcgQEAgYWxvbmcgd2l0aCBHQ0M7IHNl ZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNpbmNsdWRlICJydGwtaXRlci5o IgogI2luY2x1ZGUgInJlZ3MuaCIKICNpbmNsdWRlICJmdW5jdGlvbi1hYmkuaCIKKyNpbmNs dWRlICJlbWl0LXJ0bC5oIgogCiAvKiBOb3RlIHRoYXQgdHVybmluZyBSRUdfREVBRF9ERUJV R0dJTkcgb24gd2lsbCBjYXVzZQogICAgZ2NjLmMtdG9ydHVyZS91bnNvcnRlZC9kdW1wLW5v YWRkci5jIHRvIGZhaWwgYmVjYXVzZSBpdCBwcmludHMKZGlmZiAtLWdpdCBhL2djYy9lbWl0 LXJ0bC5oIGIvZ2NjL2VtaXQtcnRsLmgKaW5kZXggN2E1OGZlZGI5N2EuLjhkY2JiMzY1ZTIz IDEwMDY0NAotLS0gYS9nY2MvZW1pdC1ydGwuaAorKysgYi9nY2MvZW1pdC1ydGwuaApAQCAt NTQsNiArNTQsMTYgQEAgc3RydWN0IEdUWSgoKSkgaW5jb21pbmdfYXJncyB7CiAgIHJ0eCBp bnRlcm5hbF9hcmdfcG9pbnRlcjsKIH07CiAKKyNkZWZpbmUgUFJPR1JFU1NfY29tYmluZV9j b21wbGV0ZWQJKDEgPDwgMCkKKyNkZWZpbmUgUFJPR1JFU1NfbHJhX2luX3Byb2dyZXNzCSgx IDw8IDEpCisjZGVmaW5lIFBST0dSRVNTX3JlbG9hZF9pbl9wcm9ncmVzcwkoMSA8PCAyKQor I2RlZmluZSBQUk9HUkVTU19yZWxvYWRfY29tcGxldGVkCSgxIDw8IDMpCisjZGVmaW5lIFBS T0dSRVNTX2VwaWxvZ3VlX2NvbXBsZXRlZAkoMSA8PCA0KQorI2RlZmluZSBQUk9HUkVTU19i Yl9yZW9yZGVyX2NvbXBsZXRlCSgxIDw8IDUpCisjZGVmaW5lIFBST0dSRVNTX3JlZ3N0YWNr X2NvbXBsZXRlZAkoMSA8PCA2KQorCisjZGVmaW5lIFBST0dSRVNTX25vX3BzZXVkb3MgXAor CShQUk9HUkVTU19yZWxvYWRfaW5fcHJvZ3Jlc3MgfCBQUk9HUkVTU19yZWxvYWRfY29tcGxl dGVkKQogCiAvKiBEYXRhc3RydWN0dXJlcyBtYWludGFpbmVkIGZvciBjdXJyZW50bHkgcHJv Y2Vzc2VkIGZ1bmN0aW9uIGluIFJUTCBmb3JtLiAgKi8KIHN0cnVjdCBHVFkoKCkpIHJ0bF9k YXRhIHsKQEAgLTc2LDYgKzg2LDkgQEAgc3RydWN0IEdUWSgoKSkgcnRsX2RhdGEgewogCiAg IHJ0bF9zc2E6OmZ1bmN0aW9uX2luZm8gKkdUWSgoc2tpcCkpIHNzYTsKIAorICAvKiBUcmFj ayBwcm9ncmVzcyBvZiBSVEwgcGFzc2VzLCByZWxvYWRfY29tcGxldGVkIGV0Yy4gICovCisg IGludCBydGxfcGFzc19wcm9ncmVzczsKKwogICAvKiBGb3IgZnVuY3Rpb24uY2MgICovCiAK ICAgLyogIyBvZiBieXRlcyBvZiBvdXRnb2luZyBhcmd1bWVudHMuICBJZiBBQ0NVTVVMQVRF X09VVEdPSU5HX0FSR1MgaXMKQEAgLTMwMyw5ICszMTYsMTMgQEAgc3RydWN0IEdUWSgoKSkg cnRsX2RhdGEgewogICAgICBibG9jay4gICovCiAgIGJvb2wgaGFzX2JiX3BhcnRpdGlvbjsK IAotICAvKiBOb256ZXJvIGlmIHRoZSBmdW5jdGlvbiBiZWluZyBjb21waWxlZCBoYXMgY29t cGxldGVkIHRoZSBiYiByZW9yZGVyaW5nCi0gICAgIHBhc3MuICAqLwotICBib29sIGJiX3Jl b3JkZXJfY29tcGxldGU7CisgIC8qIElmIHRoaXMgaXMgbm9uemVybywgd2UgZG8gbm90IGJv dGhlciBnZW5lcmF0aW5nIFZPTEFUSUxFCisgICAgIGFyb3VuZCB2b2xhdGlsZSBtZW1vcnkg cmVmZXJlbmNlcywgYW5kIHdlIGFyZSB3aWxsaW5nIHRvCisgICAgIG91dHB1dCBpbmRpcmVj dCBhZGRyZXNzZXMuICBJZiBjc2UgaXMgdG8gZm9sbG93LCB3ZSByZWplY3QKKyAgICAgaW5k aXJlY3QgYWRkcmVzc2VzIHNvIGEgdXNlZnVsIHBvdGVudGlhbCBjc2UgaXMgZ2VuZXJhdGVk OworICAgICBpZiBpdCBpcyB1c2VkIG9ubHkgb25jZSwgaW5zdHJ1Y3Rpb24gY29tYmluYXRp b24gd2lsbCBwcm9kdWNlCisgICAgIHRoZSBzYW1lIGluZGlyZWN0IGFkZHJlc3MgZXZlbnR1 YWxseS4gICovCisgIGJvb2wgY3NlX25vdF9leHBlY3RlZDsKIAogICAvKiBMaWtlIHJlZ3Nf ZXZlcl9saXZlLCBidXQgMSBpZiBhIHJlZyBpcyBzZXQgb3IgY2xvYmJlcmVkIGZyb20gYW4K ICAgICAgYXNtLiAgVW5saWtlIHJlZ3NfZXZlcl9saXZlLCBlbGVtZW50cyBvZiB0aGlzIGFy cmF5IGNvcnJlc3BvbmRpbmcKQEAgLTM0Miw2ICszNTksMjAgQEAgZXh0ZXJuIEdUWSgoKSkg c3RydWN0IHJ0bF9kYXRhIHhfcnRsOwogICAgd2FudCB0byBkbyBkaWZmZXJlbnRseS4gICov CiAjZGVmaW5lIGNydGwgKCZ4X3J0bCkKIAorLyogcnRsX3Bhc3NfcHJvZ3Jlc3MgbWFjcm9z LiAgKi8KKyNkZWZpbmUgY3J0bF9wYXNzX3Byb2dyZXNzIChjcnRsLT5ydGxfcGFzc19wcm9n cmVzcykKKworI2RlZmluZSBjb21iaW5lX2NvbXBsZXRlZCAoY3J0bF9wYXNzX3Byb2dyZXNz ICYgUFJPR1JFU1NfY29tYmluZV9jb21wbGV0ZWQpCisjZGVmaW5lIGxyYV9pbl9wcm9ncmVz cyAoY3J0bF9wYXNzX3Byb2dyZXNzICYgUFJPR1JFU1NfbHJhX2luX3Byb2dyZXNzKQorI2Rl ZmluZSByZWxvYWRfaW5fcHJvZ3Jlc3MgKGNydGxfcGFzc19wcm9ncmVzcyAmIFBST0dSRVNT X3JlbG9hZF9pbl9wcm9ncmVzcykKKyNkZWZpbmUgcmVsb2FkX2NvbXBsZXRlZCAoY3J0bF9w YXNzX3Byb2dyZXNzICYgUFJPR1JFU1NfcmVsb2FkX2NvbXBsZXRlZCkKKyNkZWZpbmUgYmJf cmVvcmRlcl9jb21wbGV0ZSAoY3J0bF9wYXNzX3Byb2dyZXNzICYgUFJPR1JFU1NfYmJfcmVv cmRlcl9jb21wbGV0ZSkKKyNkZWZpbmUgZXBpbG9ndWVfY29tcGxldGVkIChjcnRsX3Bhc3Nf cHJvZ3Jlc3MgJiBQUk9HUkVTU19lcGlsb2d1ZV9jb21wbGV0ZWQpCisjZGVmaW5lIHJlZ3N0 YWNrX2NvbXBsZXRlZCAoY3J0bF9wYXNzX3Byb2dyZXNzICYgUFJPR1JFU1NfcmVnc3RhY2tf Y29tcGxldGVkKQorCisvKiBUaGlzIG1hY3JvIGluZGljYXRlcyB3aGV0aGVyIHlvdSBtYXkg Y3JlYXRlIGEgbmV3IHBzZXVkby1yZWdpc3Rlci4gICovCisjZGVmaW5lIGNhbl9jcmVhdGVf cHNldWRvX3AoKSAoKGNydGxfcGFzc19wcm9ncmVzcyAmIFBST0dSRVNTX25vX3BzZXVkb3Mp ID09IDApCisKIC8qIFJldHVybiB3aGV0aGVyIHR3byBNRU1fQVRUUnMgYXJlIGVxdWFsLiAg Ki8KIGJvb2wgbWVtX2F0dHJzX2VxX3AgKGNvbnN0IGNsYXNzIG1lbV9hdHRycyAqLCBjb25z dCBjbGFzcyBtZW1fYXR0cnMgKik7CiAKZGlmZiAtLWdpdCBhL2djYy9leHBsb3cuY2MgYi9n Y2MvZXhwbG93LmNjCmluZGV4IGRkYjRkNmFlMzYwLi45ZmJlZWE3NzMyMSAxMDA2NDQKLS0t IGEvZ2NjL2V4cGxvdy5jYworKysgYi9nY2MvZXhwbG93LmNjCkBAIC00MzksNyArNDM5LDcg QEAgbWVtb3J5X2FkZHJlc3NfYWRkcl9zcGFjZSAobWFjaGluZV9tb2RlIG1vZGUsIHJ0eCB4 LCBhZGRyX3NwYWNlX3QgYXMpCiAKICAgLyogQnkgcGFzc2luZyBjb25zdGFudCBhZGRyZXNz ZXMgdGhyb3VnaCByZWdpc3RlcnMKICAgICAgd2UgZ2V0IGEgY2hhbmNlIHRvIGNzZSB0aGVt LiAgKi8KLSAgaWYgKCEgY3NlX25vdF9leHBlY3RlZCAmJiBDT05TVEFOVF9QICh4KSAmJiBD T05TVEFOVF9BRERSRVNTX1AgKHgpKQorICBpZiAoISBjcnRsLT5jc2Vfbm90X2V4cGVjdGVk ICYmIENPTlNUQU5UX1AgKHgpICYmIENPTlNUQU5UX0FERFJFU1NfUCAoeCkpCiAgICAgeCA9 IGZvcmNlX3JlZyAoYWRkcmVzc19tb2RlLCB4KTsKIAogICAvKiBXZSBnZXQgYmV0dGVyIGNz ZSBieSByZWplY3RpbmcgaW5kaXJlY3QgYWRkcmVzc2luZyBhdCB0aGlzIHN0YWdlLgpAQCAt NDQ4LDcgKzQ0OCw3IEBAIG1lbW9yeV9hZGRyZXNzX2FkZHJfc3BhY2UgKG1hY2hpbmVfbW9k ZSBtb2RlLCBydHggeCwgYWRkcl9zcGFjZV90IGFzKQogICAgICBhcmUgdmlzaWJsZS4gIEJ1 dCBub3QgaWYgY3NlIHdvbid0IGJlIGRvbmUhICAqLwogICBlbHNlCiAgICAgewotICAgICAg aWYgKCEgY3NlX25vdF9leHBlY3RlZCAmJiAhUkVHX1AgKHgpKQorICAgICAgaWYgKCEgY3J0 bC0+Y3NlX25vdF9leHBlY3RlZCAmJiAhUkVHX1AgKHgpKQogCXggPSBicmVha19vdXRfbWVt b3J5X3JlZnMgKHgpOwogCiAgICAgICAvKiBBdCB0aGlzIHBvaW50LCBhbnkgdmFsaWQgYWRk cmVzcyBpcyBhY2NlcHRlZC4gICovCkBAIC02MDMsNyArNjAzLDcgQEAgdXNlX2FuY2hvcmVk X2FkZHJlc3MgKHJ0eCB4KQogICAgICBXZSB3aWxsIHRoZW4gYmUgYWJsZSB0byByZXVzZSBy ZWdpc3RlcnMgZm9yIHNldmVyYWwgYWNjZXNzZXMsIGlmIHRoZQogICAgICB0YXJnZXQgY29z dHMgc2F5IHRoYXQgdGhhdCdzIHdvcnRod2hpbGUuICAqLwogICBtb2RlID0gR0VUX01PREUg KGJhc2UpOwotICBpZiAoIWNzZV9ub3RfZXhwZWN0ZWQpCisgIGlmICghY3J0bC0+Y3NlX25v dF9leHBlY3RlZCkKICAgICBiYXNlID0gZm9yY2VfcmVnIChtb2RlLCBiYXNlKTsKIAogICBy ZXR1cm4gcmVwbGFjZV9lcXVpdl9hZGRyZXNzICh4LCBwbHVzX2NvbnN0YW50IChtb2RlLCBi YXNlLCBvZmZzZXQpKTsKZGlmZiAtLWdpdCBhL2djYy9maW5hbC5jYyBiL2djYy9maW5hbC5j YwppbmRleCAwMzUyNzg2ZTQ5Yi4uNWVlODEyZTMyMWQgMTAwNjQ0Ci0tLSBhL2djYy9maW5h bC5jYworKysgYi9nY2MvZmluYWwuY2MKQEAgLTQ1MTEsMTEgKzQ1MTEsNyBAQCByZXN0X29m X2NsZWFuX3N0YXRlICh2b2lkKQogICAgIH0KIAogICBmbGFnX3JlcnVuX2NzZV9hZnRlcl9n bG9iYWxfb3B0cyA9IDA7Ci0gIHJlbG9hZF9jb21wbGV0ZWQgPSAwOwotICBlcGlsb2d1ZV9j b21wbGV0ZWQgPSAwOwotI2lmZGVmIFNUQUNLX1JFR1MKLSAgcmVnc3RhY2tfY29tcGxldGVk ID0gMDsKLSNlbmRpZgorICBjcnRsLT5ydGxfcGFzc19wcm9ncmVzcyA9IDA7CiAKICAgLyog Q2xlYXIgb3V0IHRoZSBpbnNuX2xlbmd0aCBjb250ZW50cyBub3cgdGhhdCB0aGV5IGFyZSBu bwogICAgICBsb25nZXIgdmFsaWQuICAqLwpkaWZmIC0tZ2l0IGEvZ2NjL2Z1bmN0aW9uLmNj IGIvZ2NjL2Z1bmN0aW9uLmNjCmluZGV4IDMxMjU2YjU3MTk3Li4zNDlhYWEzZTYxNyAxMDA2 NDQKLS0tIGEvZ2NjL2Z1bmN0aW9uLmNjCisrKyBiL2djYy9mdW5jdGlvbi5jYwpAQCAtNDky NCw3ICs0OTI0LDcgQEAgcHJlcGFyZV9mdW5jdGlvbl9zdGFydCAodm9pZCkKICAgaWYgKGZs YWdfc3RhY2tfdXNhZ2VfaW5mbyAmJiAhZmxhZ19jYWxsZ3JhcGhfaW5mbykKICAgICBhbGxv Y2F0ZV9zdGFja191c2FnZV9pbmZvICgpOwogCi0gIGNzZV9ub3RfZXhwZWN0ZWQgPSAhIG9w dGltaXplOworICBjcnRsLT5jc2Vfbm90X2V4cGVjdGVkID0gISBvcHRpbWl6ZTsKIAogICAv KiBDYWxsZXIgc2F2ZSBub3QgbmVlZGVkIHlldC4gICovCiAgIGNhbGxlcl9zYXZlX25lZWRl ZCA9IDA7CkBAIC02MDkzLDcgKzYwOTMsNyBAQCB0aHJlYWRfcHJvbG9ndWVfYW5kX2VwaWxv Z3VlX2luc25zICh2b2lkKQogICAvKiBBIHNtYWxsIGZpYiAtLSBlcGlsb2d1ZSBpcyBub3Qg eWV0IGNvbXBsZXRlZCwgYnV0IHdlIHdpc2ggdG8gcmUtdXNlCiAgICAgIHRoaXMgbWFya2Vy IGZvciB0aGUgc3BsaXRzIG9mIEVIX1JFVFVSTiBwYXR0ZXJucywgYW5kIG5vdGhpbmcgZWxz ZQogICAgICB1c2VzIHRoZSBmbGFnIGluIHRoZSBtZWFudGltZS4gICovCi0gIGVwaWxvZ3Vl X2NvbXBsZXRlZCA9IDE7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNT X2VwaWxvZ3VlX2NvbXBsZXRlZDsKIAogICAvKiBGaW5kIG5vbi1mYWxsdGhydSBlZGdlcyB0 aGF0IGVuZCB3aXRoIEVIX1JFVFVSTiBpbnN0cnVjdGlvbnMuICBPbgogICAgICBzb21lIHRh cmdldHMsIHRoZXNlIGdldCBzcGxpdCB0byBhIHNwZWNpYWwgdmVyc2lvbiBvZiB0aGUgZXBp bG9ndWUKQEAgLTYyNTksNyArNjI1OSw3IEBAIHRocmVhZF9wcm9sb2d1ZV9hbmRfZXBpbG9n dWVfaW5zbnMgKHZvaWQpCiAKICAgLyogVGhyZWFkaW5nIHRoZSBwcm9sb2d1ZSBhbmQgZXBp bG9ndWUgY2hhbmdlcyB0aGUgYXJ0aWZpY2lhbCByZWZzCiAgICAgIGluIHRoZSBlbnRyeSBh bmQgZXhpdCBibG9ja3MuICAqLwotICBlcGlsb2d1ZV9jb21wbGV0ZWQgPSAxOworICBjcnRs LT5ydGxfcGFzc19wcm9ncmVzcyB8PSBQUk9HUkVTU19lcGlsb2d1ZV9jb21wbGV0ZWQ7CiAg IGRmX3VwZGF0ZV9lbnRyeV9leGl0X2FuZF9jYWxscyAoKTsKIH0KIApkaWZmIC0tZ2l0IGEv Z2NjL2dlbmNvbmRpdGlvbnMuY2MgYi9nY2MvZ2VuY29uZGl0aW9ucy5jYwppbmRleCBmNjNh M2Y0OTVjNS4uNTJlYTY1NGRlOTggMTAwNjQ0Ci0tLSBhL2djYy9nZW5jb25kaXRpb25zLmNj CisrKyBiL2djYy9nZW5jb25kaXRpb25zLmNjCkBAIC05Nyw2ICs5Nyw3IEBAIHdyaXRlX2hl YWRlciAodm9pZCkKICNpbmNsdWRlIFwicmVzb3VyY2UuaFwiXG5cCiAjaW5jbHVkZSBcImRp YWdub3N0aWMtY29yZS5oXCJcblwKICNpbmNsdWRlIFwicmVsb2FkLmhcIlxuXAorI2luY2x1 ZGUgXCJlbWl0LXJ0bC5oXCJcblwKICNpbmNsdWRlIFwidG0tY29uc3Rycy5oXCJcbiIpOwog CiAgIGlmIChzYXdfZWhfcmV0dXJuKQpkaWZmIC0tZ2l0IGEvZ2NjL2dlbnBlZXAuY2MgYi9n Y2MvZ2VucGVlcC5jYwppbmRleCAyNGI5OTFhZmQxNi4uYjVmZjI1MTFmYjcgMTAwNjQ0Ci0t LSBhL2djYy9nZW5wZWVwLmNjCisrKyBiL2djYy9nZW5wZWVwLmNjCkBAIC0zNzgsNiArMzc4 LDcgQEAgZnJvbSB0aGUgbWFjaGluZSBkZXNjcmlwdGlvbiBmaWxlIGBtZCcuICAqL1xuXG4i KTsKICAgcHJpbnRmICgiI2luY2x1ZGUgXCJleGNlcHQuaFwiXG4iKTsKICAgcHJpbnRmICgi I2luY2x1ZGUgXCJkaWFnbm9zdGljLWNvcmUuaFwiXG4iKTsKICAgcHJpbnRmICgiI2luY2x1 ZGUgXCJmbGFncy5oXCJcbiIpOworICBwcmludGYgKCIjaW5jbHVkZSBcImVtaXQtcnRsLmhc IlxuIik7CiAgIHByaW50ZiAoIiNpbmNsdWRlIFwidG0tY29uc3Rycy5oXCJcblxuIik7CiAK ICAgcHJpbnRmICgiZXh0ZXJuIHJ0eCBwZWVwX29wZXJhbmRbXTtcblxuIik7CmRpZmYgLS1n aXQgYS9nY2MvaWZjdnQuY2MgYi9nY2MvaWZjdnQuY2MKaW5kZXggMmU4YWIzOTZlMjYuLmZk N2QxZWQzOWMwIDEwMDY0NAotLS0gYS9nY2MvaWZjdnQuY2MKKysrIGIvZ2NjL2lmY3Z0LmNj CkBAIC0yMTI4LDcgKzIxMjgsNyBAQCBub2NlX3RyeV9jbW92ZV9hcml0aCAoc3RydWN0IG5v Y2VfaWZfaW5mbyAqaWZfaW5mbykKICAgICAgY29uZGl0aW9uYWwgb24gdGhlaXIgYWRkcmVz c2VzIGZvbGxvd2VkIGJ5IGEgbG9hZC4gIERvbid0IGRvIHRoaXMKICAgICAgZWFybHkgYmVj YXVzZSBpdCdsbCBzY3JldyBhbGlhcyBhbmFseXNpcy4gIE5vdGUgdGhhdCB3ZSd2ZQogICAg ICBhbHJlYWR5IGNoZWNrZWQgZm9yIG5vIHNpZGUgZWZmZWN0cy4gICovCi0gIGlmIChjc2Vf bm90X2V4cGVjdGVkCisgIGlmIChjcnRsLT5jc2Vfbm90X2V4cGVjdGVkCiAgICAgICAmJiBN RU1fUCAoYSkgJiYgTUVNX1AgKGIpCiAgICAgICAmJiBNRU1fQUREUl9TUEFDRSAoYSkgPT0g TUVNX0FERFJfU1BBQ0UgKGIpKQogICAgIHsKZGlmZiAtLWdpdCBhL2djYy9scmEtZWxpbWlu YXRpb25zLmNjIGIvZ2NjL2xyYS1lbGltaW5hdGlvbnMuY2MKaW5kZXggYzYzMGZmNGFmMmQu LjQzNGU0ZWM5NDgzIDEwMDY0NAotLS0gYS9nY2MvbHJhLWVsaW1pbmF0aW9ucy5jYworKysg Yi9nY2MvbHJhLWVsaW1pbmF0aW9ucy5jYwpAQCAtMTI2MSwxNCArMTI2MSwxNCBAQCBpbml0 X2VsaW1fdGFibGUgKHZvaWQpCiAgICAgIHdpbGwgY2F1c2UsIGUuZy4sIGdlbl9ydHhfUkVH IChQbW9kZSwgU1RBQ0tfUE9JTlRFUl9SRUdOVU0pIHRvCiAgICAgIGVxdWFsIHN0YWNrX3Bv aW50ZXJfcnR4LiAgV2UgZGVwZW5kIG9uIHRoaXMuIFRocmVmb3JlIHdlIHN3aXRjaAogICAg ICBvZmYgdGhhdCB3ZSBhcmUgaW4gTFJBIHRlbXBvcmFyaWx5LiAgKi8KLSAgbHJhX2luX3By b2dyZXNzID0gMDsKKyAgY3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgJj0gflBST0dSRVNTX2xy YV9pbl9wcm9ncmVzczsKICAgZm9yIChlcCA9IHJlZ19lbGltaW5hdGU7IGVwIDwgJnJlZ19l bGltaW5hdGVbTlVNX0VMSU1JTkFCTEVfUkVHU107IGVwKyspCiAgICAgewogICAgICAgZXAt PmZyb21fcnR4ID0gZ2VuX3J0eF9SRUcgKFBtb2RlLCBlcC0+ZnJvbSk7CiAgICAgICBlcC0+ dG9fcnR4ID0gZ2VuX3J0eF9SRUcgKFBtb2RlLCBlcC0+dG8pOwogICAgICAgZWxpbWluYWJs ZV9yZWdfcnR4W2VwLT5mcm9tXSA9IGVwLT5mcm9tX3J0eDsKICAgICB9Ci0gIGxyYV9pbl9w cm9ncmVzcyA9IDE7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNTX2xy YV9pbl9wcm9ncmVzczsKIH0KIAogLyogRnVuY3Rpb24gZm9yIGluaXRpYWxpemF0aW9uIG9m IGVsaW1pbmF0aW9uIG9uY2UgcGVyIGZ1bmN0aW9uLiAgSXQKZGlmZiAtLWdpdCBhL2djYy9s cmEuY2MgYi9nY2MvbHJhLmNjCmluZGV4IDE0NDRjYjc1OTE0Li5jZTQ4NDNmYzBhOSAxMDA2 NDQKLS0tIGEvZ2NjL2xyYS5jYworKysgYi9nY2MvbHJhLmNjCkBAIC0yMjE4LDkgKzIyMTgs NiBAQCB1cGRhdGVfaW5jX25vdGVzICh2b2lkKQogICAgICAgfQogfQogCi0vKiBTZXQgdG8g MSB3aGlsZSBpbiBscmEuICAqLwotaW50IGxyYV9pbl9wcm9ncmVzczsKLQogLyogU3RhcnQg b2YgcHNldWRvIHJlZ25vcyBiZWZvcmUgdGhlIExSQS4gICovCiBpbnQgbHJhX25ld19yZWdu b19zdGFydDsKIApAQCAtMjMxNiw3ICsyMzEzLDcgQEAgbHJhIChGSUxFICpmKQogICBpZiAo ZmxhZ19jaGVja2luZykKICAgICBjaGVja19ydGwgKGZhbHNlKTsKIAotICBscmFfaW5fcHJv Z3Jlc3MgPSAxOworICBjcnRsLT5ydGxfcGFzc19wcm9ncmVzcyB8PSBQUk9HUkVTU19scmFf aW5fcHJvZ3Jlc3M7CiAKICAgbHJhX2xpdmVfcmFuZ2VfaXRlciA9IGxyYV9jb2FsZXNjZV9p dGVyID0gbHJhX2NvbnN0cmFpbnRfaXRlciA9IDA7CiAgIGxyYV9hc3NpZ25tZW50X2l0ZXIg PSBscmFfYXNzaWdubWVudF9pdGVyX2FmdGVyX3NwaWxsID0gMDsKQEAgLTI1MDgsNyArMjUw NSw3IEBAIGxyYSAoRklMRSAqZikKICAgaXJhX3Jlc3RvcmVfc2NyYXRjaGVzIChscmFfZHVt cF9maWxlKTsKICAgbHJhX2VsaW1pbmF0ZSAodHJ1ZSwgZmFsc2UpOwogICBscmFfZmluYWxf Y29kZV9jaGFuZ2UgKCk7Ci0gIGxyYV9pbl9wcm9ncmVzcyA9IDA7CisgIGNydGwtPnJ0bF9w YXNzX3Byb2dyZXNzICY9IH5QUk9HUkVTU19scmFfaW5fcHJvZ3Jlc3M7CiAgIGlmIChsaXZl X3ApCiAgICAgbHJhX2NsZWFyX2xpdmVfcmFuZ2VzICgpOwogICBscmFfbGl2ZV9yYW5nZXNf ZmluaXNoICgpOwpAQCAtMjUxOSw3ICsyNTE2LDcgQEAgbHJhIChGSUxFICpmKQogICBmaW5p c2hfaW5zbl9yZWNvZ19kYXRhICgpOwogICByZWdzdGF0X2ZyZWVfbl9zZXRzX2FuZF9yZWZz ICgpOwogICByZWdzdGF0X2ZyZWVfcmkgKCk7Ci0gIHJlbG9hZF9jb21wbGV0ZWQgPSAxOwor ICBjcnRsLT5ydGxfcGFzc19wcm9ncmVzcyB8PSBQUk9HUkVTU19yZWxvYWRfY29tcGxldGVk OwogICB1cGRhdGVfaW5jX25vdGVzICgpOwogCiAgIGluc2VydGVkX3AgPSBmaXh1cF9hYm5v cm1hbF9lZGdlcyAoKTsKZGlmZiAtLWdpdCBhL2djYy9tb2R1bG8tc2NoZWQuY2MgYi9nY2Mv bW9kdWxvLXNjaGVkLmNjCmluZGV4IDE2MmRlMTk5ZGE2Li5mM2IxNWE0N2FhNCAxMDA2NDQK LS0tIGEvZ2NjL21vZHVsby1zY2hlZC5jYworKysgYi9nY2MvbW9kdWxvLXNjaGVkLmNjCkBA IC0xMzY5LDExICsxMzY5LDExIEBAIHNtc19zY2hlZHVsZSAodm9pZCkKICAgLyogSW5pdGlh bGl6ZSBpc3N1ZV9yYXRlLiAgKi8KICAgaWYgKHRhcmdldG0uc2NoZWQuaXNzdWVfcmF0ZSkK ICAgICB7Ci0gICAgICBpbnQgdGVtcCA9IHJlbG9hZF9jb21wbGV0ZWQ7CisgICAgICBpbnQg dGVtcCA9IGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzOwogCi0gICAgICByZWxvYWRfY29tcGxl dGVkID0gMTsKKyAgICAgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNTX3Jl bG9hZF9jb21wbGV0ZWQ7CiAgICAgICBpc3N1ZV9yYXRlID0gdGFyZ2V0bS5zY2hlZC5pc3N1 ZV9yYXRlICgpOwotICAgICAgcmVsb2FkX2NvbXBsZXRlZCA9IHRlbXA7CisgICAgICBjcnRs LT5ydGxfcGFzc19wcm9ncmVzcyA9IHRlbXA7CiAgICAgfQogICBlbHNlCiAgICAgaXNzdWVf cmF0ZSA9IDE7CmRpZmYgLS1naXQgYS9nY2MvcGFzc2VzLmNjIGIvZ2NjL3Bhc3Nlcy5jYwpp bmRleCA3OGEwN2Y4NjkxYS4uOWExYTBkOGQzNTIgMTAwNjQ0Ci0tLSBhL2djYy9wYXNzZXMu Y2MKKysrIGIvZ2NjL3Bhc3Nlcy5jYwpAQCAtMjU0MSwxMiArMjU0MSwxMiBAQCBza2lwX3Bh c3MgKG9wdF9wYXNzICpwYXNzKQogICAvKiBQYXNzICJyZWxvYWQiIHNldHMgdGhlIGdsb2Jh bCAicmVsb2FkX2NvbXBsZXRlZCIsIGFuZCBtYW55CiAgICAgIHRoaW5ncyBkZXBlbmQgb24g dGhpcyAoZS5nLiBpbnN0cnVjdGlvbnMgaW4gLm1kIGZpbGVzKS4gICovCiAgIGlmIChzdHJj bXAgKHBhc3MtPm5hbWUsICJyZWxvYWQiKSA9PSAwKQotICAgIHJlbG9hZF9jb21wbGV0ZWQg PSAxOworICAgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNTX3JlbG9hZF9j b21wbGV0ZWQ7CiAKICAgLyogU2ltaWxhciBmb3IgcGFzcyAicHJvX2FuZF9lcGlsb2d1ZSIg YW5kIHRoZSAiZXBpbG9ndWVfY29tcGxldGVkIiBnbG9iYWwKICAgICAgdmFyaWFibGUuICAq LwogICBpZiAoc3RyY21wIChwYXNzLT5uYW1lLCAicHJvX2FuZF9lcGlsb2d1ZSIpID09IDAp Ci0gICAgZXBpbG9ndWVfY29tcGxldGVkID0gMTsKKyAgICBjcnRsLT5ydGxfcGFzc19wcm9n cmVzcyB8PSBQUk9HUkVTU19lcGlsb2d1ZV9jb21wbGV0ZWQ7CiAKICAgLyogVGhlIElOU05f QUREUkVTU0VTIHZlYyBpcyBub3JtYWxseSBzZXQgdXAgYnkKICAgICAgc2hvcnRlbl9icmFu Y2hlczsgc2V0IGl0IHVwIGZvciB0aGUgYmVuZWZpdCBvZiBwYXNzZXMgdGhhdApkaWZmIC0t Z2l0IGEvZ2NjL3JlY29nLmNjIGIvZ2NjL3JlY29nLmNjCmluZGV4IGRhYzE3MmJjN2MwLi5j YjFlMzMxYmZiYiAxMDA2NDQKLS0tIGEvZ2NjL3JlY29nLmNjCisrKyBiL2djYy9yZWNvZy5j YwpAQCAtODUsMTUgKzg1LDYgQEAgc3RhdGljIG9wZXJhbmRfYWx0ZXJuYXRpdmUgYXNtX29w X2FsdFtNQVhfUkVDT0dfT1BFUkFORFMKIAogaW50IHdoaWNoX2FsdGVybmF0aXZlOwogCi0v KiBOb256ZXJvIGFmdGVyIGVuZCBvZiByZWxvYWQgcGFzcy4KLSAgIFNldCB0byAxIG9yIDAg YnkgdG9wbGV2LmNjLgotICAgQ29udHJvbHMgdGhlIHNpZ25pZmljYW5jZSBvZiAoU1VCUkVH IChNRU0pKS4gICovCi0KLWludCByZWxvYWRfY29tcGxldGVkOwotCi0vKiBOb256ZXJvIGFm dGVyIHRocmVhZF9wcm9sb2d1ZV9hbmRfZXBpbG9ndWVfaW5zbnMgaGFzIHJ1bi4gICovCi1p bnQgZXBpbG9ndWVfY29tcGxldGVkOwotCiAvKiBJbml0aWFsaXplIGRhdGEgdXNlZCBieSB0 aGUgZnVuY3Rpb24gYHJlY29nJy4KICAgIFRoaXMgbXVzdCBiZSBjYWxsZWQgb25jZSBpbiB0 aGUgY29tcGlsYXRpb24gb2YgYSBmdW5jdGlvbgogICAgYmVmb3JlIGFueSBpbnNuIHJlY29n bml0aW9uIG1heSBiZSBkb25lIGluIHRoZSBmdW5jdGlvbi4gICovCmRpZmYgLS1naXQgYS9n Y2MvcmVnLXN0YWNrLmNjIGIvZ2NjL3JlZy1zdGFjay5jYwppbmRleCBmZDAzMjUwMWFkOS4u YTI1ODBmMWFhMTAgMTAwNjQ0Ci0tLSBhL2djYy9yZWctc3RhY2suY2MKKysrIGIvZ2NjL3Jl Zy1zdGFjay5jYwpAQCAtMTg4LDggKzE4OCw2IEBAIHN0YXRpYyB2ZWM8Y2hhcj4gc3RhY2tf cmVnc19tZW50aW9uZWRfZGF0YTsKIAogI2RlZmluZSBSRUdfU1RBQ0tfU0laRSAoTEFTVF9T VEFDS19SRUcgLSBGSVJTVF9TVEFDS19SRUcgKyAxKQogCi1pbnQgcmVnc3RhY2tfY29tcGxl dGVkID0gMDsKLQogLyogVGhpcyBpcyB0aGUgYmFzaWMgc3RhY2sgcmVjb3JkLiAgVE9QIGlz IGFuIGluZGV4IGludG8gUkVHW10gc3VjaAogICAgdGhhdCBSRUdbVE9QXSBpcyB0aGUgdG9w IG9mIHN0YWNrLiAgSWYgVE9QIGlzIC0xIHRoZSBzdGFjayBpcyBlbXB0eS4KIApAQCAtMzQ0 MCw3ICszNDM4LDcgQEAgcmVzdF9vZl9oYW5kbGVfc3RhY2tfcmVncyAodm9pZCkKICNpZmRl ZiBTVEFDS19SRUdTCiAgIGlmIChyZWdfdG9fc3RhY2sgKCkpCiAgICAgZGZfaW5zbl9yZXNj YW5fYWxsICgpOwotICByZWdzdGFja19jb21wbGV0ZWQgPSAxOworICBjcnRsLT5ydGxfcGFz c19wcm9ncmVzcyB8PSBQUk9HUkVTU19yZWdzdGFja19jb21wbGV0ZWQ7CiAjZW5kaWYKICAg cmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9nY2MvcmVnc3RhdC5jYyBiL2djYy9yZWdzdGF0 LmNjCmluZGV4IGRiMjgzNTQ3NGI4Li4xODI1YTRmNGM0YiAxMDA2NDQKLS0tIGEvZ2NjL3Jl Z3N0YXQuY2MKKysrIGIvZ2NjL3JlZ3N0YXQuY2MKQEAgLTI3LDYgKzI3LDggQEAgYWxvbmcg d2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNpbmNsdWRl ICJwcmVkaWN0LmgiCiAjaW5jbHVkZSAiZGYuaCIKICNpbmNsdWRlICJyZWdzLmgiCisjaW5j bHVkZSAibWVtbW9kZWwuaCIKKyNpbmNsdWRlICJlbWl0LXJ0bC5oIgogCiAKIHN0cnVjdCBy ZWdzdGF0X25fc2V0c19hbmRfcmVmc190ICpyZWdzdGF0X25fc2V0c19hbmRfcmVmczsKZGlm ZiAtLWdpdCBhL2djYy9yZWxvYWQxLmNjIGIvZ2NjL3JlbG9hZDEuY2MKaW5kZXggNzI4ZGMy YTFhNWMuLjE1MzMxNWU0NjY1IDEwMDY0NAotLS0gYS9nY2MvcmVsb2FkMS5jYworKysgYi9n Y2MvcmVsb2FkMS5jYwpAQCAtMjE2LDEwICsyMTYsNiBAQCBpbnQgcmVsb2FkX2ZpcnN0X3Vp ZDsKICAgIGEgY2FsbC1jbG9iYmVyZWQgcmVnIGFjcm9zcyBjYWxscy4gICovCiBpbnQgY2Fs bGVyX3NhdmVfbmVlZGVkOwogCi0vKiBTZXQgdG8gMSB3aGlsZSByZWxvYWRfYXNfbmVlZGVk IGlzIG9wZXJhdGluZy4KLSAgIFJlcXVpcmVkIGJ5IHNvbWUgbWFjaGluZXMgdG8gaGFuZGxl IGFueSBnZW5lcmF0ZWQgbW92ZXMgZGlmZmVyZW50bHkuICAqLwotaW50IHJlbG9hZF9pbl9w cm9ncmVzcyA9IDA7Ci0KIC8qIFRoaXMgb2JzdGFjayBpcyB1c2VkIGZvciBhbGxvY2F0aW9u IG9mIHJ0bCBkdXJpbmcgcmVnaXN0ZXIgZWxpbWluYXRpb24uCiAgICBUaGUgYWxsb2NhdGVk IHN0b3JhZ2UgY2FuIGJlIGZyZWVkIG9uY2UgZmluZF9yZWxvYWRzIGhhcyBwcm9jZXNzZWQg dGhlCiAgICBpbnNuLiAgKi8KQEAgLTg3Nyw3ICs4NzMsNyBAQCByZWxvYWQgKHJ0eF9pbnNu ICpmaXJzdCwgaW50IGdsb2JhbCkKICAgLyogRnJvbSBub3cgb24sIHdlIG1heSBuZWVkIHRv IGdlbmVyYXRlIG1vdmVzIGRpZmZlcmVudGx5LiAgV2UgbWF5IGFsc28KICAgICAgYWxsb3cg bW9kaWZpY2F0aW9ucyBvZiBpbnNucyB3aGljaCBjYXVzZSB0aGVtIHRvIG5vdCBiZSByZWNv Z25pemVkLgogICAgICBBbnkgc3VjaCBtb2RpZmljYXRpb25zIHdpbGwgYmUgY2xlYW5lZCB1 cCBkdXJpbmcgcmVsb2FkIGl0c2VsZi4gICovCi0gIHJlbG9hZF9pbl9wcm9ncmVzcyA9IDE7 CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNTX3JlbG9hZF9pbl9wcm9n cmVzczsKIAogICAvKiBUaGlzIGxvb3Agc2NhbnMgdGhlIGVudGlyZSBmdW5jdGlvbiBlYWNo IGdvLXJvdW5kCiAgICAgIGFuZCByZXBlYXRzIHVudGlsIG9uZSByZXBldGl0aW9uIHNwaWxs cyBubyBhZGRpdGlvbmFsIGhhcmQgcmVncy4gICovCkBAIC0xMDY3LDcgKzEwNjMsNyBAQCBy ZWxvYWQgKHJ0eF9pbnNuICpmaXJzdCwgaW50IGdsb2JhbCkKIAogICBDTEVBUl9SRUdfU0VU ICgmY2hhbmdlZF9hbGxvY2F0aW9uX3BzZXVkb3MpOwogICBDTEVBUl9SRUdfU0VUICgmc3Bp bGxlZF9wc2V1ZG9zKTsKLSAgcmVsb2FkX2luX3Byb2dyZXNzID0gMDsKKyAgY3J0bC0+cnRs X3Bhc3NfcHJvZ3Jlc3MgJj0gflBST0dSRVNTX3JlbG9hZF9pbl9wcm9ncmVzczsKIAogICAv KiBOb3cgZWxpbWluYXRlIGFsbCBwc2V1ZG8gcmVncyBieSBtb2RpZnlpbmcgdGhlbSBpbnRv CiAgICAgIHRoZWlyIGVxdWl2YWxlbnQgbWVtb3J5IHJlZmVyZW5jZXMuCkBAIC0xMTU4LDcg KzExNTQsNyBAQCByZWxvYWQgKHJ0eF9pbnNuICpmaXJzdCwgaW50IGdsb2JhbCkKICAgLyog V2UgbXVzdCBzZXQgcmVsb2FkX2NvbXBsZXRlZCBub3cgc2luY2UgdGhlIGNsZWFudXBfc3Vi cmVnX29wZXJhbmRzIGNhbGwKICAgICAgYmVsb3cgd2lsbCByZS1yZWNvZ25pemUgZWFjaCBp bnNuIGFuZCByZWxvYWQgbWF5IGhhdmUgZ2VuZXJhdGVkIGluc25zCiAgICAgIHdoaWNoIGFy ZSBvbmx5IHZhbGlkIGR1cmluZyBhbmQgYWZ0ZXIgcmVsb2FkLiAgKi8KLSAgcmVsb2FkX2Nv bXBsZXRlZCA9IDE7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNTX3Jl bG9hZF9jb21wbGV0ZWQ7CiAKICAgLyogTWFrZSBhIHBhc3Mgb3ZlciBhbGwgdGhlIGluc25z IGFuZCBkZWxldGUgYWxsIFVTRXMgd2hpY2ggd2UgaW5zZXJ0ZWQKICAgICAgb25seSB0byB0 YWcgYSBSRUdfRVFVQUwgbm90ZSBvbiB0aGVtLiAgUmVtb3ZlIGFsbCBSRUdfREVBRCBhbmQg UkVHX1VOVVNFRApAQCAtMTI5NCw3ICsxMjkwLDEwIEBAIHJlbG9hZCAocnR4X2luc24gKmZp cnN0LCBpbnQgZ2xvYmFsKQogCiAgIGdjY19hc3NlcnQgKGJpdG1hcF9lbXB0eV9wICgmc3Bp bGxlZF9wc2V1ZG9zKSk7CiAKLSAgcmVsb2FkX2NvbXBsZXRlZCA9ICFmYWlsdXJlOworICBp ZiAoZmFpbHVyZSkKKyAgICBjcnRsLT5ydGxfcGFzc19wcm9ncmVzcyAmPSB+UFJPR1JFU1Nf cmVsb2FkX2NvbXBsZXRlZDsKKyAgZWxzZQorICAgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNz IHw9IFBST0dSRVNTX3JlbG9hZF9jb21wbGV0ZWQ7CiAKICAgcmV0dXJuIG5lZWRfZGNlOwog fQpkaWZmIC0tZ2l0IGEvZ2NjL3J0bC5oIGIvZ2NjL3J0bC5oCmluZGV4IDQ4ODAxNmJiNDJh Li41NWMzNDM1NGViMyAxMDA2NDQKLS0tIGEvZ2NjL3J0bC5oCisrKyBiL2djYy9ydGwuaApA QCAtNDA4OSw0MSArNDA4OSw2IEBAIFBVVF9NT0RFIChydHggeCwgbWFjaGluZV9tb2RlIG1v ZGUpCiBleHRlcm4gcnR4IG91dHB1dF9jb25zdGFudF9kZWYgKHRyZWUsIGludCk7CiBleHRl cm4gcnR4IGxvb2t1cF9jb25zdGFudF9kZWYgKHRyZWUpOwogCi0vKiBOb256ZXJvIGFmdGVy IGVuZCBvZiByZWxvYWQgcGFzcy4KLSAgIFNldCB0byAxIG9yIDAgYnkgcmVsb2FkMS5jYy4g ICovCi0KLWV4dGVybiBpbnQgcmVsb2FkX2NvbXBsZXRlZDsKLQotLyogTm9uemVybyBhZnRl ciB0aHJlYWRfcHJvbG9ndWVfYW5kX2VwaWxvZ3VlX2luc25zIGhhcyBydW4uICAqLwotZXh0 ZXJuIGludCBlcGlsb2d1ZV9jb21wbGV0ZWQ7Ci0KLS8qIFNldCB0byAxIHdoaWxlIHJlbG9h ZF9hc19uZWVkZWQgaXMgb3BlcmF0aW5nLgotICAgUmVxdWlyZWQgYnkgc29tZSBtYWNoaW5l cyB0byBoYW5kbGUgYW55IGdlbmVyYXRlZCBtb3ZlcyBkaWZmZXJlbnRseS4gICovCi0KLWV4 dGVybiBpbnQgcmVsb2FkX2luX3Byb2dyZXNzOwotCi0vKiBTZXQgdG8gMSB3aGlsZSBpbiBs cmEuICAqLwotZXh0ZXJuIGludCBscmFfaW5fcHJvZ3Jlc3M7Ci0KLS8qIFRoaXMgbWFjcm8g aW5kaWNhdGVzIHdoZXRoZXIgeW91IG1heSBjcmVhdGUgYSBuZXcKLSAgIHBzZXVkby1yZWdp c3Rlci4gICovCi0KLSNkZWZpbmUgY2FuX2NyZWF0ZV9wc2V1ZG9fcCgpICghcmVsb2FkX2lu X3Byb2dyZXNzICYmICFyZWxvYWRfY29tcGxldGVkKQotCi0jaWZkZWYgU1RBQ0tfUkVHUwot LyogTm9uemVybyBhZnRlciBlbmQgb2YgcmVnc3RhY2sgcGFzcy4KLSAgIFNldCB0byAxIG9y IDAgYnkgcmVnLXN0YWNrLmNjLiAgKi8KLWV4dGVybiBpbnQgcmVnc3RhY2tfY29tcGxldGVk OwotI2VuZGlmCi0KLS8qIElmIHRoaXMgaXMgbm9uemVybywgd2UgZG8gbm90IGJvdGhlciBn ZW5lcmF0aW5nIFZPTEFUSUxFCi0gICBhcm91bmQgdm9sYXRpbGUgbWVtb3J5IHJlZmVyZW5j ZXMsIGFuZCB3ZSBhcmUgd2lsbGluZyB0bwotICAgb3V0cHV0IGluZGlyZWN0IGFkZHJlc3Nl cy4gIElmIGNzZSBpcyB0byBmb2xsb3csIHdlIHJlamVjdAotICAgaW5kaXJlY3QgYWRkcmVz c2VzIHNvIGEgdXNlZnVsIHBvdGVudGlhbCBjc2UgaXMgZ2VuZXJhdGVkOwotICAgaWYgaXQg aXMgdXNlZCBvbmx5IG9uY2UsIGluc3RydWN0aW9uIGNvbWJpbmF0aW9uIHdpbGwgcHJvZHVj ZQotICAgdGhlIHNhbWUgaW5kaXJlY3QgYWRkcmVzcyBldmVudHVhbGx5LiAgKi8KLWV4dGVy biBpbnQgY3NlX25vdF9leHBlY3RlZDsKLQogLyogVHJhbnNsYXRlcyBydHggY29kZSB0byB0 cmVlIGNvZGUsIGZvciB0aG9zZSBjb2RlcyBuZWVkZWQgYnkKICAgIHJlYWxfYXJpdGhtZXRp Yy4gIFRoZSBmdW5jdGlvbiByZXR1cm5zIGFuIGludCBiZWNhdXNlIHRoZSBjYWxsZXIgbWF5 IG5vdAogICAga25vdyB3aGF0IGBlbnVtIHRyZWVfY29kZScgbWVhbnMuICAqLwpkaWZmIC0t Z2l0IGEvZ2NjL3NjaGVkLWViYi5jYyBiL2djYy9zY2hlZC1lYmIuY2MKaW5kZXggNzFkNzJi NjE2MWYuLjg5ZTRiZTk3NzIzIDEwMDY0NAotLS0gYS9nY2Mvc2NoZWQtZWJiLmNjCisrKyBi L2djYy9zY2hlZC1lYmIuY2MKQEAgLTMyLDYgKzMyLDggQEAgYWxvbmcgd2l0aCBHQ0M7IHNl ZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNpbmNsdWRlICJjZmdydGwuaCIK ICNpbmNsdWRlICJjZmdidWlsZC5oIgogI2luY2x1ZGUgInNjaGVkLWludC5oIgorI2luY2x1 ZGUgIm1lbW1vZGVsLmgiCisjaW5jbHVkZSAiZW1pdC1ydGwuaCIKIAogDAogI2lmZGVmIElO U05fU0NIRURVTElORwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MKaW5kZXggMmU4M2NhMDczOTQuLmI1ZmUyYjNl OTk3IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjCisrKyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YuY2MKQEAgLTQ5MDYsNyArNDkwNiw3IEBAIHJpc2N2X291dHB1 dF9taV90aHVuayAoRklMRSAqZmlsZSwgdHJlZSB0aHVua19mbmRlY2wgQVRUUklCVVRFX1VO VVNFRCwKICAgcnR4X2luc24gKmluc247CiAKICAgLyogUHJldGVuZCB0byBiZSBhIHBvc3Qt cmVsb2FkIHBhc3Mgd2hpbGUgZ2VuZXJhdGluZyBydGwuICAqLwotICByZWxvYWRfY29tcGxl dGVkID0gMTsKKyAgY3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgfD0gUFJPR1JFU1NfcmVsb2Fk X2NvbXBsZXRlZDsKIAogICAvKiBNYXJrIHRoZSBlbmQgb2YgdGhlIChlbXB0eSkgcHJvbG9n dWUuICAqLwogICBlbWl0X25vdGUgKE5PVEVfSU5TTl9QUk9MT0dVRV9FTkQpOwpAQCAtNDk2 OSw3ICs0OTY5LDcgQEAgcmlzY3Zfb3V0cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVl IHRodW5rX2ZuZGVjbCBBVFRSSUJVVEVfVU5VU0VELAogCiAgIC8qIENsZWFuIHVwIHRoZSB2 YXJzIHNldCBhYm92ZS4gIE5vdGUgdGhhdCBmaW5hbF9lbmRfZnVuY3Rpb24gcmVzZXRzCiAg ICAgIHRoZSBnbG9iYWwgcG9pbnRlciBmb3IgdXMuICAqLwotICByZWxvYWRfY29tcGxldGVk ID0gMDsKKyAgY3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgJj0gflBST0dSRVNTX3JlbG9hZF9j b21wbGV0ZWQ7CiB9CiAKIC8qIEFsbG9jYXRlIGEgY2h1bmsgb2YgbWVtb3J5IGZvciBwZXIt ZnVuY3Rpb24gbWFjaGluZS1kZXBlbmRlbnQgZGF0YS4gICovCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL2FybS9hcm0uY2MgYi9nY2MvY29uZmlnL2FybS9hcm0uY2MKaW5kZXggMzNmYjk4 ZDVjYWQuLjNlYTVkNWJjNjJiIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9hcm0uY2MK KysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLmNjCkBAIC0yODk4Myw3ICsyODk4Myw3IEBAIGFy bTMyX291dHB1dF9taV90aHVuayAoRklMRSAqZmlsZSwgdHJlZSwgSE9TVF9XSURFX0lOVCBk ZWx0YSwKIAogICBydHggdGVtcCA9IGdlbl9ydHhfUkVHIChQbW9kZSwgSVBfUkVHTlVNKTsK ICAgcnR4IHRoaXNfcnR4ID0gZ2VuX3J0eF9SRUcgKFBtb2RlLCB0aGlzX3JlZ25vKTsKLSAg cmVsb2FkX2NvbXBsZXRlZCA9IDE7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBS T0dSRVNTX3JlbG9hZF9jb21wbGV0ZWQ7CiAgIGVtaXRfbm90ZSAoTk9URV9JTlNOX1BST0xP R1VFX0VORCk7CiAKICAgLyogQWRkIERFTFRBIHRvIFRISVNfUlRYLiAgKi8KQEAgLTI5MDM1 LDcgKzI5MDM1LDcgQEAgYXJtMzJfb3V0cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVl LCBIT1NUX1dJREVfSU5UIGRlbHRhLAogICBmaW5hbF9lbmRfZnVuY3Rpb24gKCk7CiAKICAg LyogU3RvcCBwcmV0ZW5kaW5nIHRoaXMgaXMgYSBwb3N0LXJlbG9hZCBwYXNzLiAgKi8KLSAg cmVsb2FkX2NvbXBsZXRlZCA9IDA7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzICY9IH5Q Uk9HUkVTU19yZWxvYWRfY29tcGxldGVkOwogfQogCiAvKiBPdXRwdXQgY29kZSB0byBhZGQg REVMVEEgdG8gdGhlIGZpcnN0IGFyZ3VtZW50LCBhbmQgdGhlbiBqdW1wCmRpZmYgLS1naXQg YS9nY2MvY29uZmlnL202OGsvbTY4ay5jYyBiL2djYy9jb25maWcvbTY4ay9tNjhrLmNjCmlu ZGV4IDYyODk4ZGFmZTkyLi4xMTM4NDRmMzlhMyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9t NjhrL202OGsuY2MKKysrIGIvZ2NjL2NvbmZpZy9tNjhrL202OGsuY2MKQEAgLTU1ODMsNyAr NTU4Myw3IEBAIG02OGtfb3V0cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5r IEFUVFJJQlVURV9VTlVTRUQsCiAgIHRtcCA9IGdlbl9ydHhfUkVHIChQbW9kZSwgU1RBVElD X0NIQUlOX1JFR05VTSk7CiAKICAgLyogUHJldGVuZCB0byBiZSBhIHBvc3QtcmVsb2FkIHBh c3Mgd2hpbGUgZ2VuZXJhdGluZyBydGwuICAqLwotICByZWxvYWRfY29tcGxldGVkID0gMTsK KyAgY3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgfD0gUFJPR1JFU1NfcmVsb2FkX2NvbXBsZXRl ZDsKIAogICAvKiBUaGUgInRoaXMiIHBvaW50ZXIgaXMgc3RvcmVkIGF0IDQoJXNwKS4gICov CiAgIHRoaXNfc2xvdCA9IGdlbl9ydHhfTUVNIChQbW9kZSwgcGx1c19jb25zdGFudCAoUG1v ZGUsCkBAIC01NjU4LDcgKzU2NTgsNyBAQCBtNjhrX291dHB1dF9taV90aHVuayAoRklMRSAq ZmlsZSwgdHJlZSB0aHVuayBBVFRSSUJVVEVfVU5VU0VELAogICBhc3NlbWJsZV9lbmRfZnVu Y3Rpb24gKHRodW5rLCBmbm5hbWUpOwogCiAgIC8qIENsZWFuIHVwIHRoZSB2YXJzIHNldCBh Ym92ZS4gICovCi0gIHJlbG9hZF9jb21wbGV0ZWQgPSAwOworICBjcnRsLT5ydGxfcGFzc19w cm9ncmVzcyAmPSB+UFJPR1JFU1NfcmVsb2FkX2NvbXBsZXRlZDsKIAogICAvKiBSZXN0b3Jl IHRoZSBvcmlnaW5hbCBQSUMgcmVnaXN0ZXIuICAqLwogICBpZiAoZmxhZ19waWMpCmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL3BhL3ByZWRpY2F0ZXMubWQgYi9nY2MvY29uZmlnL3BhL3By ZWRpY2F0ZXMubWQKaW5kZXggOThhMDI0ZThjOWIuLjhmMDU0NDA0M2I4IDEwMDY0NAotLS0g YS9nY2MvY29uZmlnL3BhL3ByZWRpY2F0ZXMubWQKKysrIGIvZ2NjL2NvbmZpZy9wYS9wcmVk aWNhdGVzLm1kCkBAIC00NTAsNyArNDUwLDcgQEAKICAgICAgd2UgbmVlZCB0byBkZWxheSBj cmVhdGluZyBtb3ZlIGluc25zIHdpdGggdW5zY2FsZWQgaW5kZXhlZCBhZGRyZXNzZXMKICAg ICAgdW50aWwgQ1NFIGlzIG5vdCBleHBlY3RlZC4gICovCiAgIGlmICghVEFSR0VUX05PX1NQ QUNFX1JFR1MKLSAgICAgICYmICFjc2Vfbm90X2V4cGVjdGVkCisgICAgICAmJiAhY3J0bC0+ Y3NlX25vdF9leHBlY3RlZAogICAgICAgJiYgR0VUX0NPREUgKFhFWFAgKG9wLCAwKSkgPT0g UExVUwogICAgICAgJiYgUkVHX1AgKFhFWFAgKFhFWFAgKG9wLCAwKSwgMCkpCiAgICAgICAm JiBSRUdfUCAoWEVYUCAoWEVYUCAob3AsIDApLCAxKSkpCkBAIC00NzQsNyArNDc0LDcgQEAK ICAgICAgd2UgbmVlZCB0byBkZWxheSBjcmVhdGluZyBtb3ZlIGluc25zIHdpdGggdW5zY2Fs ZWQgaW5kZXhlZCBhZGRyZXNzZXMKICAgICAgdW50aWwgQ1NFIGlzIG5vdCBleHBlY3RlZC4g ICovCiAgIGlmICghVEFSR0VUX05PX1NQQUNFX1JFR1MKLSAgICAgICYmICFjc2Vfbm90X2V4 cGVjdGVkCisgICAgICAmJiAhY3J0bC0+Y3NlX25vdF9leHBlY3RlZAogICAgICAgJiYgR0VU X0NPREUgKFhFWFAgKG9wLCAwKSkgPT0gUExVUwogICAgICAgJiYgUkVHX1AgKFhFWFAgKFhF WFAgKG9wLCAwKSwgMCkpCiAgICAgICAmJiBSRUdfUCAoWEVYUCAoWEVYUCAob3AsIDApLCAx KSkpCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3BhL3BhLmNjIGIvZ2NjL2NvbmZpZy9wYS9w YS5jYwppbmRleCA1NGFiNDg2YTAyZC4uNzBhZDE4MDBkYjQgMTAwNjQ0Ci0tLSBhL2djYy9j b25maWcvcGEvcGEuY2MKKysrIGIvZ2NjL2NvbmZpZy9wYS9wYS5jYwpAQCAtMTc5OCw3ICsx Nzk4LDcgQEAgcGFfZW1pdF9tb3ZlX3NlcXVlbmNlIChydHggKm9wZXJhbmRzLCBtYWNoaW5l X21vZGUgbW9kZSwgcnR4IHNjcmF0Y2hfcmVnKQogICAgICBhIHJlc3VsdCwgd2UgbG9vc2Ug dmFyaW91cyBvcHBvcnR1bml0aWVzIHRvIGNyZWF0ZSBpbnNucyB3aXRoCiAgICAgIHVuc2Nh bGVkIGluZGV4ZWQgYWRkcmVzc2VzLiAgKi8KICAgaWYgKCFUQVJHRVRfTk9fU1BBQ0VfUkVH UwotICAgICAgJiYgIWNzZV9ub3RfZXhwZWN0ZWQKKyAgICAgICYmICFjcnRsLT5jc2Vfbm90 X2V4cGVjdGVkCiAgICAgICAmJiBHRVRfQ09ERSAob3BlcmFuZDEpID09IE1FTQogICAgICAg JiYgR0VUX0NPREUgKFhFWFAgKG9wZXJhbmQxLCAwKSkgPT0gUExVUwogICAgICAgJiYgUkVH X1AgKFhFWFAgKFhFWFAgKG9wZXJhbmQxLCAwKSwgMCkpCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC5jYyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmNj CmluZGV4IDRiNDg2YWVlYTkwLi4xOTliNmRlNDlkMiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9hYXJjaDY0L2FhcmNoNjQuY2MKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQu Y2MKQEAgLTEwMDAxLDcgKzEwMDAxLDcgQEAgYWFyY2g2NF9vdXRwdXRfbWlfdGh1bmsgKEZJ TEUgKmZpbGUsIHRyZWUgdGh1bmsgQVRUUklCVVRFX1VOVVNFRCwKICAgaWYgKGFhcmNoNjRf YnRpX2VuYWJsZWQgKCkpCiAgICAgZW1pdF9pbnNuIChnZW5fYnRpX2MoKSk7CiAKLSAgcmVs b2FkX2NvbXBsZXRlZCA9IDE7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dS RVNTX3JlbG9hZF9jb21wbGV0ZWQ7CiAgIGVtaXRfbm90ZSAoTk9URV9JTlNOX1BST0xPR1VF X0VORCk7CiAKICAgdGhpc19ydHggPSBnZW5fcnR4X1JFRyAoUG1vZGUsIHRoaXNfcmVnbm8p OwpAQCAtMTAwNzMsNyArMTAwNzMsNyBAQCBhYXJjaDY0X291dHB1dF9taV90aHVuayAoRklM RSAqZmlsZSwgdHJlZSB0aHVuayBBVFRSSUJVVEVfVU5VU0VELAogICBhc3NlbWJsZV9lbmRf ZnVuY3Rpb24gKHRodW5rLCBmbm5hbWUpOwogCiAgIC8qIFN0b3AgcHJldGVuZGluZyB0byBi ZSBhIHBvc3QtcmVsb2FkIHBhc3MuICAqLwotICByZWxvYWRfY29tcGxldGVkID0gMDsKKyAg Y3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgJj0gflBST0dSRVNTX3JlbG9hZF9jb21wbGV0ZWQ7 CiB9CiAKIHN0YXRpYyBib29sCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3JzNjAwMC9yczYw MDAtaW50ZXJuYWwuaCBiL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC1pbnRlcm5hbC5oCmlu ZGV4IDhlZThjOTg3YjgxLi4wYjUzOTBiOTkzYSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9y czYwMDAvcnM2MDAwLWludGVybmFsLmgKKysrIGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAw LWludGVybmFsLmgKQEAgLTI2LDcgKzI2LDcgQEAKIAogLyogU3RydWN0dXJlIHVzZWQgdG8g ZGVmaW5lIHRoZSByczYwMDAgc3RhY2sgKi8KIHR5cGVkZWYgc3RydWN0IHJzNjAwMF9zdGFj ayB7Ci0gIGludCByZWxvYWRfY29tcGxldGVkOwkJLyogc3RhY2sgaW5mbyB3b24ndCBjaGFu Z2UgZnJvbSBoZXJlIG9uICovCisgIGludCByZWxvYWRfY29tcGxldGVkXzsJCS8qIHN0YWNr IGluZm8gd29uJ3QgY2hhbmdlIGZyb20gaGVyZSBvbiAqLwogICBpbnQgZmlyc3RfZ3BfcmVn X3NhdmU7CS8qIGZpcnN0IGNhbGxlZSBzYXZlZCBHUCByZWdpc3RlciB1c2VkICovCiAgIGlu dCBmaXJzdF9mcF9yZWdfc2F2ZTsJLyogZmlyc3QgY2FsbGVlIHNhdmVkIEZQIHJlZ2lzdGVy IHVzZWQgKi8KICAgaW50IGZpcnN0X2FsdGl2ZWNfcmVnX3NhdmU7CS8qIGZpcnN0IGNhbGxl ZSBzYXZlZCBBbHRpVmVjIHJlZ2lzdGVyIHVzZWQgKi8KZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvcnM2MDAwL3JzNjAwMC1sb2d1ZS5jYyBiL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC1s b2d1ZS5jYwppbmRleCA1OWZlMWM4Y2I4Yi4uN2M3N2UyMTZmNGQgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvcnM2MDAwL3JzNjAwMC1sb2d1ZS5jYworKysgYi9nY2MvY29uZmlnL3JzNjAw MC9yczYwMDAtbG9ndWUuY2MKQEAgLTc4LDcgKzc4LDcgQEAgaW50IHJzNjAwMF9waWNfbGFi ZWxubyA9IDA7CiBzdHJ1Y3QgbWFjaGluZV9mdW5jdGlvbiAqCiByczYwMDBfaW5pdF9tYWNo aW5lX3N0YXR1cyAodm9pZCkKIHsKLSAgc3RhY2tfaW5mby5yZWxvYWRfY29tcGxldGVkID0g MDsKKyAgc3RhY2tfaW5mby5yZWxvYWRfY29tcGxldGVkXyA9IDA7CiAgIHJldHVybiBnZ2Nf Y2xlYXJlZF9hbGxvYzxtYWNoaW5lX2Z1bmN0aW9uPiAoKTsKIH0KIAwKQEAgLTY4MywxMSAr NjgzLDExIEBAIHJzNjAwMF9zdGFja19pbmZvICh2b2lkKQogICBIT1NUX1dJREVfSU5UIG5v bl9maXhlZF9zaXplOwogICBib29sIHVzaW5nX3N0YXRpY19jaGFpbl9wOwogCi0gIGlmIChy ZWxvYWRfY29tcGxldGVkICYmIGluZm8tPnJlbG9hZF9jb21wbGV0ZWQpCisgIGlmIChyZWxv YWRfY29tcGxldGVkICYmIGluZm8tPnJlbG9hZF9jb21wbGV0ZWRfKQogICAgIHJldHVybiBp bmZvOwogCiAgIG1lbXNldCAoaW5mbywgMCwgc2l6ZW9mICgqaW5mbykpOwotICBpbmZvLT5y ZWxvYWRfY29tcGxldGVkID0gcmVsb2FkX2NvbXBsZXRlZDsKKyAgaW5mby0+cmVsb2FkX2Nv bXBsZXRlZF8gPSByZWxvYWRfY29tcGxldGVkOwogCiAgIC8qIFNlbGVjdCB3aGljaCBjYWxs aW5nIHNlcXVlbmNlLiAgKi8KICAgaW5mby0+YWJpID0gREVGQVVMVF9BQkk7CmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL3NwYXJjL3NwYXJjLmNjIGIvZ2NjL2NvbmZpZy9zcGFyYy9zcGFy Yy5jYwppbmRleCBjNzJjMzhlMTk5OS4uNjk5ZTg1ZmM3N2EgMTAwNjQ0Ci0tLSBhL2djYy9j b25maWcvc3BhcmMvc3BhcmMuY2MKKysrIGIvZ2NjL2NvbmZpZy9zcGFyYy9zcGFyYy5jYwpA QCAtMTIzNzIsOCArMTIzNzIsOCBAQCBzcGFyY19vdXRwdXRfbWlfdGh1bmsgKEZJTEUgKmZp bGUsIHRyZWUgdGh1bmtfZm5kZWNsIEFUVFJJQlVURV9VTlVTRUQsCiAgIHJ0eF9pbnNuICpp bnNuOwogICB1bnNpZ25lZCBpbnQgaW50X2FyZ19maXJzdDsKIAotICByZWxvYWRfY29tcGxl dGVkID0gMTsKLSAgZXBpbG9ndWVfY29tcGxldGVkID0gMTsKKyAgY3J0bC0+cnRsX3Bhc3Nf cHJvZ3Jlc3MgfD0gUFJPR1JFU1NfcmVsb2FkX2NvbXBsZXRlZDsKKyAgY3J0bC0+cnRsX3Bh c3NfcHJvZ3Jlc3MgfD0gUFJPR1JFU1NfZXBpbG9ndWVfY29tcGxldGVkOwogCiAgIGVtaXRf bm90ZSAoTk9URV9JTlNOX1BST0xPR1VFX0VORCk7CiAKQEAgLTEyNTYxLDggKzEyNTYxLDgg QEAgc3BhcmNfb3V0cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rX2ZuZGVj bCBBVFRSSUJVVEVfVU5VU0VELAogICBmaW5hbF9lbmRfZnVuY3Rpb24gKCk7CiAgIGFzc2Vt YmxlX2VuZF9mdW5jdGlvbiAodGh1bmtfZm5kZWNsLCBmbm5hbWUpOwogCi0gIHJlbG9hZF9j b21wbGV0ZWQgPSAwOwotICBlcGlsb2d1ZV9jb21wbGV0ZWQgPSAwOworICBjcnRsLT5ydGxf cGFzc19wcm9ncmVzcyAmPSB+UFJPR1JFU1NfcmVsb2FkX2NvbXBsZXRlZDsKKyAgY3J0bC0+ cnRsX3Bhc3NfcHJvZ3Jlc3MgJj0gflBST0dSRVNTX2VwaWxvZ3VlX2NvbXBsZXRlZDsKIH0K IAogLyogUmV0dXJuIHRydWUgaWYgc3BhcmNfb3V0cHV0X21pX3RodW5rIHdvdWxkIGJlIGFi bGUgdG8gb3V0cHV0IHRoZQpkaWZmIC0tZ2l0IGEvZ2NjL2ZvbGQtY29uc3QuY2MgYi9nY2Mv Zm9sZC1jb25zdC5jYwppbmRleCA5OTAyMWE4MmRmNC4uYzllNzQxNzc2Y2QgMTAwNjQ0Ci0t LSBhL2djYy9mb2xkLWNvbnN0LmNjCisrKyBiL2djYy9mb2xkLWNvbnN0LmNjCkBAIC01MCw2 ICs1MCw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBu b3Qgc2VlCiAjaW5jbHVkZSAiZ2ltcGxlLmgiCiAjaW5jbHVkZSAicHJlZGljdC5oIgogI2lu Y2x1ZGUgIm1lbW1vZGVsLmgiCisjaW5jbHVkZSAiZW1pdC1ydGwuaCIKICNpbmNsdWRlICJ0 bV9wLmgiCiAjaW5jbHVkZSAidHJlZS1zc2Etb3BlcmFuZHMuaCIKICNpbmNsdWRlICJvcHRh YnMtcXVlcnkuaCIKZGlmZiAtLWdpdCBhL2djYy90cmVlLXNzYS1pZmNvbWJpbmUuY2MgYi9n Y2MvdHJlZS1zc2EtaWZjb21iaW5lLmNjCmluZGV4IDgwYzQxYzQ1NDg5Li4wZTkyNjExNTM5 MCAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtc3NhLWlmY29tYmluZS5jYworKysgYi9nY2MvdHJl ZS1zc2EtaWZjb21iaW5lLmNjCkBAIC0yOCw2ICsyOCw3IEBAIGFsb25nIHdpdGggR0NDOyBz ZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAjaW5jbHVkZSAiY2ZnaG9va3Mu aCIKICNpbmNsdWRlICJ0cmVlLXBhc3MuaCIKICNpbmNsdWRlICJtZW1tb2RlbC5oIgorI2lu Y2x1ZGUgImVtaXQtcnRsLmgiCiAjaW5jbHVkZSAidG1fcC5oIgogI2luY2x1ZGUgInNzYS5o IgogI2luY2x1ZGUgInRyZWUtcHJldHR5LXByaW50LmgiCmRpZmYgLS1naXQgYS9nY2MvdHJl ZS1zc2EtcmVhc3NvYy5jYyBiL2djYy90cmVlLXNzYS1yZWFzc29jLmNjCmluZGV4IGUxM2Uy Y2IzMDhkLi5mNTQ1MDEwN2RiNCAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtc3NhLXJlYXNzb2Mu Y2MKKysrIGIvZ2NjL3RyZWUtc3NhLXJlYXNzb2MuY2MKQEAgLTMwLDYgKzMwLDcgQEAgYWxv bmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNpbmNs dWRlICJhbGxvYy1wb29sLmgiCiAjaW5jbHVkZSAidHJlZS1wYXNzLmgiCiAjaW5jbHVkZSAi bWVtbW9kZWwuaCIKKyNpbmNsdWRlICJlbWl0LXJ0bC5oIgogI2luY2x1ZGUgInRtX3AuaCIK ICNpbmNsdWRlICJzc2EuaCIKICNpbmNsdWRlICJvcHRhYnMtdHJlZS5oIgpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLWNhbGwuY2MgYi9nY2MvY29uZmlnL3JzNjAw MC9yczYwMDAtY2FsbC5jYwppbmRleCA1NTE5NjhiMDk5NS4uZWZlZGI1MGUyMTQgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC1jYWxsLmNjCisrKyBiL2djYy9jb25m aWcvcnM2MDAwL3JzNjAwMC1jYWxsLmNjCkBAIC0yOTI0LDggKzI5MjQsOCBAQCByczYwMDBf b3V0cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rX2ZuZGVjbCBBVFRSSUJV VEVfVU5VU0VELAogICBydHggdGhpc19ydHgsIGZ1bmV4cDsKICAgcnR4X2luc24gKmluc247 CiAKLSAgcmVsb2FkX2NvbXBsZXRlZCA9IDE7Ci0gIGVwaWxvZ3VlX2NvbXBsZXRlZCA9IDE7 CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNTX3JlbG9hZF9jb21wbGV0 ZWQ7CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzIHw9IFBST0dSRVNTX2VwaWxvZ3VlX2Nv bXBsZXRlZDsKIAogICAvKiBNYXJrIHRoZSBlbmQgb2YgdGhlIChlbXB0eSkgcHJvbG9ndWUu ICAqLwogICBlbWl0X25vdGUgKE5PVEVfSU5TTl9QUk9MT0dVRV9FTkQpOwpAQCAtMjk4Niw2 ICsyOTg2LDYgQEAgcnM2MDAwX291dHB1dF9taV90aHVuayAoRklMRSAqZmlsZSwgdHJlZSB0 aHVua19mbmRlY2wgQVRUUklCVVRFX1VOVVNFRCwKICAgZmluYWxfZW5kX2Z1bmN0aW9uICgp OwogICBhc3NlbWJsZV9lbmRfZnVuY3Rpb24gKHRodW5rX2ZuZGVjbCwgZm5uYW1lKTsKIAot ICByZWxvYWRfY29tcGxldGVkID0gMDsKLSAgZXBpbG9ndWVfY29tcGxldGVkID0gMDsKKyAg Y3J0bC0+cnRsX3Bhc3NfcHJvZ3Jlc3MgJj0gflBST0dSRVNTX3JlbG9hZF9jb21wbGV0ZWQ7 CisgIGNydGwtPnJ0bF9wYXNzX3Byb2dyZXNzICY9IH5QUk9HUkVTU19lcGlsb2d1ZV9jb21w bGV0ZWQ7CiB9CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3h0ZW5zYS94dGVuc2EuY2MgYi9n Y2MvY29uZmlnL3h0ZW5zYS94dGVuc2EuY2MKaW5kZXggODI4Yzc2NDJiN2MuLjM0M2IzY2M1 NTBiIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3h0ZW5zYS94dGVuc2EuY2MKKysrIGIvZ2Nj L2NvbmZpZy94dGVuc2EveHRlbnNhLmNjCkBAIC01MDM3LDcgKzUwMzcsNyBAQCB4dGVuc2Ff b3V0cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rIEFUVFJJQlVURV9VTlVT RUQsCiAgIHJ0eCB0ZW1wMCA9IGdlbl9ydHhfUkVHIChQbW9kZSwgQTlfUkVHKTsKICAgY29u c3QgY2hhciAqZm5uYW1lID0gSURFTlRJRklFUl9QT0lOVEVSIChERUNMX0FTU0VNQkxFUl9O QU1FICh0aHVuaykpOwogCi0gIHJlbG9hZF9jb21wbGV0ZWQgPSAxOworICBjcnRsLT5ydGxf cGFzc19wcm9ncmVzcyB8PSBQUk9HUkVTU19yZWxvYWRfY29tcGxldGVkOwogCiAgIGlmIChh Z2dyZWdhdGVfdmFsdWVfcCAoVFJFRV9UWVBFIChUUkVFX1RZUEUgKGZ1bmN0aW9uKSksIGZ1 bmN0aW9uKSkKICAgICB0aGlzX3JlZ19ubyA9IDM7CkBAIC01MDk3LDcgKzUwOTcsNyBAQCB4 dGVuc2Ffb3V0cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rIEFUVFJJQlVU RV9VTlVTRUQsCiAgIGFzc2VtYmxlX2VuZF9mdW5jdGlvbiAodGh1bmssIGZubmFtZSk7CiAK ICAgLyogU3RvcCBwcmV0ZW5kaW5nIHRvIGJlIGEgcG9zdC1yZWxvYWQgcGFzcy4gICovCi0g IHJlbG9hZF9jb21wbGV0ZWQgPSAwOworICBjcnRsLT5ydGxfcGFzc19wcm9ncmVzcyAmPSB+ UFJPR1JFU1NfcmVsb2FkX2NvbXBsZXRlZDsKIH0KIAogc3RhdGljIHJ0eAo= --------------e3rAbrPMlG8hO29EZx7RrrIR--