From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9C77BC77B7A for ; Wed, 17 May 2023 02:30:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:References:Message-Id:Cc:Date: In-Reply-To:From:Subject:Mime-Version:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=PLfF22bT9tBMqcdmQnU1Q5geMuF7XntdvvAlW07MwYA=; b=D2snnzE+Hyykpw uBLO80Q9Vb9q+5nvY/sGZo4W/4ABZq7NCKURSoIixpykZXWTjrjndEVyaR1sWRM2I67dVLoTV07gn Qzvb8ZwjVUhK+DOnalGOBKMfH5Vk8Hp0qwfqGvdzBdgobsA/wHFIu2fj9rlydJGWeyA7aH7j0nEgf 8m+musmUW37V972GauZLsQLZZLXsE7PvLdbMzwqn1+TBeU5F9x+6mWOiTTvsvCilVB/6EeGNhURar e0zCgwW3/3xZIhrIV0msSC9oEYjbOzPxeWIt54GlHUXU5EjfmR14e3o3DEwagnKP8+WOApleifJv0 0TAI9lVNSnEOfOksEQRw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pz6vu-007r6u-0e; Wed, 17 May 2023 02:30:30 +0000 Received: from desiato.infradead.org ([90.155.92.199]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pz5tS-007gJN-0w for linux-arm-kernel@bombadil.infradead.org; Wed, 17 May 2023 01:23:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=To:References:Message-Id: Content-Transfer-Encoding:Cc:Date:In-Reply-To:From:Subject:Mime-Version: Content-Type:Sender:Reply-To:Content-ID:Content-Description; bh=jDOz4LjnL6MgfUp+54QuXwXQoCJOhkda16ICsj4M2RE=; b=KmUU7V2MqtI/MP8uCSVy+cJ1MA aQtPBJvmf2UBq7lbQP1qJATKT7YMEzzbk8Ij4/e6RzEFQmvku0siNydQnoqBKR6A9PHM/Aqb5nXEt o39dgeZ6CS1X/jTnpx2AEZYBikou6XQ2/HGObBQVJCiXRZpOKI+RErSAtLY8eOxngEWuZ/tS/j2hg V0kF1wP7FSNUPDtq+ga/M2X9H9MXzraQXD1vrV30GRU64uwv+0y7AnODtnwn5uPS9hKNKsnrPyZwB XoDQaNMkEkyxLeigWme/Gk4e3kHpzi9aA6dawG+kc4aq862xJDdJv3MsmOA9tc27wktdrvCRD/IYR 0ExrqmkQ==; Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by desiato.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pz5tK-00ChWm-1p for linux-arm-kernel@lists.infradead.org; Wed, 17 May 2023 01:23:51 +0000 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-52c30fbccd4so105119a12.0 for ; Tue, 16 May 2023 18:23:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684286620; x=1686878620; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=jDOz4LjnL6MgfUp+54QuXwXQoCJOhkda16ICsj4M2RE=; b=QALZD5qCCjPo2tO5JryBa5fxXuRbgZedIOp5vsR0o9jxkW38NCFJS0ZeyzIVFjY6Dy J4o8uRp/A8ZOXD7JO4VBvdyKuQC22o82yJ+YK5NsEnu/ALD+uR49PC9Gql/r/qbBt+mo w87TOy8+Z+6Bm7HS1n03j8+JPG8ETsGU/dOo83zbToXbGQz4EiLng84sSnAj0ooEyLtx Gk/0I7HbeIm5TpHDr1VEFQ39OEwd/7S0baTH5lr6uBBIouefcPNLvpaSvmRkGynq0bSA b9AziYQf8v7AhBct4jcNcsKQJhRfHPCaE4Wfm+rblZDIlvPtavPiCAvOfU/cCJZWw7Ri JLGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684286620; x=1686878620; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jDOz4LjnL6MgfUp+54QuXwXQoCJOhkda16ICsj4M2RE=; b=RxgxUKPexZEKdueF+HTnWaxLGtcevmaIBTyb+PM18ROnMlP4/lMGGUH7ssRJBu06uo eUrXLzJ9Ucq24oJzwLhURcDMvEOKBAie3faomqBTGZwbi55SbmJXdbIrQ2IItxMLHfL+ aSn0UwbYEUFvAW1ARqiMUBmYiQt2rBdDVKnIPBUdO2UjJIf7c0BX1A67dyFm1MO353sm PbdOjUM48fzzWT5SZBNaS0F4EWY5PAvLA7GEeFbgGAHBN/VowkfNusfgBL+23EkNo7dB PyYT+w8aiNICdTWD+wcAJ7dv8/r9a4n6mi9EjGRwqNaScXPZd3tzQtV19nbbj9hMIeCb B/YA== X-Gm-Message-State: AC+VfDx8pEbhXCs9AEjAmGmIViogtnNyXaOejge4XlrkiHNBEblBCcVu cuY3HQEOl2RcC9GiwlD8/SLDw1CFaaT07g== X-Google-Smtp-Source: ACHHUZ7VdgbvPt5VtSt1Q/5OZxK/zmbD5FVHjOwqkY0mk5XFy3E7hyk370CAF0GRkzmBhcOZNwYF3g== X-Received: by 2002:a17:903:294c:b0:1ab:1b8:8a5f with SMTP id li12-20020a170903294c00b001ab01b88a5fmr39014802plb.33.1684286619842; Tue, 16 May 2023 18:23:39 -0700 (PDT) Received: from smtpclient.apple (c-24-6-216-183.hsd1.ca.comcast.net. [24.6.216.183]) by smtp.gmail.com with ESMTPSA id h5-20020a170902f54500b001ae268978cfsm3876751plf.259.2023.05.16.18.23.38 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 May 2023 18:23:39 -0700 (PDT) Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.500.231\)) Subject: Re: Excessive TLB flush ranges From: Nadav Amit In-Reply-To: <87353v7qms.ffs@tglx> Date: Tue, 16 May 2023 18:23:27 -0700 Cc: Uladzislau Rezki , "Russell King (Oracle)" , Andrew Morton , linux-mm , Christoph Hellwig , Lorenzo Stoakes , Peter Zijlstra , Baoquan He , John Ogness , linux-arm-kernel@lists.infradead.org, Mark Rutland , Marc Zyngier , x86@kernel.org Message-Id: References: <87a5y5a6kj.ffs@tglx> <87353x9y3l.ffs@tglx> <87zg658fla.ffs@tglx> <87r0rg93z5.ffs@tglx> <87cz308y3s.ffs@tglx> <87y1lo7a0z.ffs@tglx> <87o7mk733x.ffs@tglx> <7ED917BC-420F-47D4-8956-8984205A75F0@gmail.com> <87bkik6pin.ffs@tglx> <87353v7qms.ffs@tglx> To: Thomas Gleixner X-Mailer: Apple Mail (2.3731.500.231) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230517_022347_005449_C465BAA6 X-CRM114-Status: GOOD ( 39.36 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Cj4gT24gTWF5IDE2LCAyMDIzLCBhdCA1OjIzIFBNLCBUaG9tYXMgR2xlaXhuZXIgPHRnbHhAbGlu dXRyb25peC5kZT4gd3JvdGU6Cj4gCj4gT24gVHVlLCBNYXkgMTYgMjAyMyBhdCAyMTozMiwgVGhv bWFzIEdsZWl4bmVyIHdyb3RlOgo+PiBPbiBUdWUsIE1heSAxNiAyMDIzIGF0IDEwOjU2LCBOYWRh diBBbWl0IHdyb3RlOgo+Pj4+IE9uIE1heSAxNiwgMjAyMywgYXQgNzozOCBBTSwgVGhvbWFzIEds ZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+IHdyb3RlOgo+Pj4+IAo+Pj4+IFRoZXJlIGlzIGEg d29ybGQgb3V0c2lkZSBvZiB4ODYsIGJ1dCBldmVuIG9uIHg4NiBpdCdzIGJvcmRlcmxpbmUgc2ls bHkKPj4+PiB0byB0YWtlIHRoZSB3aG9sZSBUTEIgb3V0IHdoZW4geW91IGNhbiBmbHVzaCAzIFRM QiBlbnRyaWVzIG9uZSBieSBvbmUKPj4+PiB3aXRoIGV4YWN0bHkgdGhlIHNhbWUgbnVtYmVyIG9m IElQSXMsIGkuZS4gX29uZV8uIE5vPwo+Pj4gCj4+PiBJIGp1c3Qgd2FudCB0byByZS1yYWlzZSBw b2ludHMgdGhhdCB3ZXJlIG1hZGUgaW4gdGhlIHBhc3QsIGluY2x1ZGluZyBpbgo+Pj4gdGhlIGRp c2N1c3Npb24gdGhhdCBJIHNlbnQgYmVmb3JlIGFuZCBtYXRjaCBteSBleHBlcmllbmNlLgo+Pj4g Cj4+PiBGZWVsIGZyZWUgdG8gcmVqZWN0IHRoZW0sIGJ1dCBJIHRoaW5rIHlvdSBzaG91bGQgbm90 IGlnbm9yZSB0aGVtLgo+PiAKPj4gSSdtIG5vdCBpZ25vcmluZyB0aGVtIGFuZCBJJ20gd2VsbCBh d2FyZSBvZiB0aGVzZSBpc3N1ZXMuIE5vIG5lZWQgdG8KPj4gcmVwZWF0IHRoZW0gb3ZlciBhbmQg b3Zlci4gSSdtIG9sZCBidXQgbm90IHNlbmlsZSB5ZXQuCgpUaG9tYXMsIG5vIGRpc3Jlc3BlY3Qg d2FzIGludGVuZGVkLiBJIGluaXRpYWxseSBqdXN0IHNlbnQgdGhlIGxpbmsgYW5kIEkKaGFkIGEg c2Vuc2UgKGJhc2VkIG9uIG15IHBhc3QgZXhwZXJpZW5jZSkgdGhhdCBub2JvZHkgY2xpY2tlZCBv biBpdC4KCj4gCj4gSnVzdCB0byBiZSBjbGVhci4gVGhpcyB3b3JrcyB0aGUgb3RoZXIgd2F5IHJv dW5kIHRvby4KPiAKPiBJdCBtYWtlcyBhIHdob2xlIGxvdCBvZiBhIGRpZmZlcmVuY2Ugd2hldGhl ciB5b3UgZG8gNSBJUElzIGluIGEgcm93Cj4gd2hpY2ggYWxsIG5lZWQgdG8gZ2V0IGEgY2FjaGUg bGluZSB1cGRhdGVkIG9yIGlmIHlvdSBoYXZlIF9vbmVfIHdoaWNoCj4gbmVlZHMgYSBjb3VwbGUg b2YgY2FjaGUgbGluZXMgdXBkYXRlZC4KCk9idmlvdXNseSwgaWYgdGhlIHF1ZXN0aW9uIGlzIDUg SVBJcyBvciAxIElQSSB3aXRoIG1vcmUgZmx1c2hpbmcgZGF0YSwKdGhlIDEgSVBJIHdpbnMuIFRo ZSBxdWVzdGlvbiBJIHdhcyBmb2N1c2luZyBvbiBpcyB3aGV0aGVyIDEgSVBJIHdpdGgKcG90ZW50 aWFsbHkgZ2xvYmFsIGZsdXNoIG9yIGRldGFpbGVkIGxpc3Qgb2YgcmFuZ2VzIHRvIGZsdXNoLiAg Cgo+IAo+IElOVkxQRyBpcyBub3Qgc2VyaWFsaXppbmcgc28gdGhlIENQVSBjYW4gcHVsbCBpbiB0 aGUgbmV4dCByZXF1aXJlZCBjYWNoZQo+IGxpbmUocykgb24gdGhlIFZBIGxpc3QgZHVyaW5nIHRo YXQuCgpJbmRlZWQsIGJ1dCBDaGF0R1BUIHNheXMgKHllcywgSSBzZWUgeW91IG1ha2luZyBmdW4g b2YgbWUgYWxyZWFkeSk6CuKAnGhvd2V2ZXIsIHRoaXMgZG9lc24ndCBtZWFuIElOVkxQRyBoYXMg bm8gaW1wYWN0IG9uIHRoZSBwaXBlbGluZS4gSU5WTFBHCmNhbiBjYXVzZSBhIHBpcGVsaW5lIHN0 YWxsIGJlY2F1c2UgdGhlIFRMQiBlbnRyeSBpbnZhbGlkYXRpb24gbXVzdCBiZQpjb21wbGV0ZWQg YmVmb3JlIHN1YnNlcXVlbnQgaW5zdHJ1Y3Rpb25zIHRoYXQgbWlnaHQgcmVseSBvbiB0aGUgVExC IGNhbgpiZSBleGVjdXRlZCBjb3JyZWN0bHku4oCdCgpTbyBJIGFtIG5vdCBzdXJlIHRoYXQgeW91 ciBjbGFpbSBpcyBleGFjdGx5IGNvcnJlY3QuCgo+IFRoZXNlIGNhY2hlIGxpbmVzIGFyZSBfbm90 Xwo+IGNvbnRlbmRlZCBhdCB0aGF0IHBvaW50IGJlY2F1c2UgX2FsbF8gb2YgdGhlc2UgZGF0YSBz dHJ1Y3R1cmVzIGFyZSBub3QKPiBsb25nZXIgZ2xvYmFsbHkgYWNjZXNzaWJsZSAobWlzLXNwZWN1 bGF0aW9uIGFzaWRlKSBhbmQgdGhlcmVmb3JlIG5vdAo+IGV4Y2x1c2l2ZSAobWlzYWxpZ25tZW50 IGFzaWRlLCBidXQgeW91IGhhdmUgdG8gcHJvdmUgdGhhdCB0aGlzIGlzIGFuCj4gaXNzdWUpLgoK VGhpcyBpcyBub3QgZW50aXJlbHkgdHJ1ZS4gSW5kZWVkIHdoZXRoZXIgeW91IGhhdmUgMSByZW1v dGUgY29yZSBvciBOCnJlbW90ZSBjb3JlIGlzIG5vdCBhIHdob2xlIGlzc3VlIChwdXR0aW5nIGFz aWRlIE5VTUEpLiBCdXQgeW91IHdpbGwgZ2V0CmZpcnN0IGEgc25vb3AgdG8gdGhlIGluaXRpYXRv ciBjYWNoZSBieSB0aGUgcmVzcG9uZGluZyBjb3JlLCBhbmQgdGhlbiwKYWZ0ZXIgdGhlIFRMQiBp bnZhbGlkYXRpb24gaXMgY29tcGxldGVkLCBhbiBSRk8gYnkgdGhlIGluaXRpYXRvciBvbmNlCml0 IHdyaXRlcyB0byB0aGUgY2FjaGUgYWdhaW4uIElmIHRoZSBpbnZhbGlkYXRpb24gZGF0YSBpcyBv biB0aGUgc3RhY2sKKGFzIHlvdSBkaWQpLCB0aGlzIGlzIGV2ZW4gbW9yZSBsaWtlbHkgdG8gaGFw cGVuIHNob3J0bHkgYWZ0ZXIuCgo+IAo+IFNvIGp1c3QgZGlzbWlzc2luZyB0aGlzIG9uIDEwIHll YXJzIG9sZCBleHBlcmllbmNlIGlzIG5vdCByZWFsbHkKPiBoZWxwZnVsLCB0aG91Z2ggSSdtIGhh cHB5IHRvIGNvbmZpcm0geW91ciBwb2ludHMgb25jZSBJIGhhZCB0aGUgdGltZSBhbmQKPiBvcHBv cnR1bml0eSB0byBhY3R1YWxseSBydW4gcmVhbCB0ZXN0aW5nIG92ZXIgaXQsIHVubGVzcyB5b3Ug YmVhdCBtZSB0bwo+IGl0LgoKSSByZWFsbHkgZG9u4oCZdCBrbm93IHdoYXQg4oCcZGlzbWlzc2lu Z+KAnSB5b3UgYXJlIHRhbGtpbmcgYWJvdXQuIEkgZG8gaGF2ZQpyZWxhdGl2ZWx5IHJlY2VudCBl eHBlcmllbmNlIHdpdGggdGhlIG92ZXJoZWFkIG9mIGNhY2hpbmcgZWZmZWN0cyBvbgpUTEIgc2hv b3Rkb3duIHRpbWUuIEl0IGNhbiBiZWNvbWUgdmVyeSBhcHBhcmVudC4gWW91IGNhbiBmaW5kIHNv bWUKbnVtYmVycyBpbiwgZm9yIGluc3RhbmNlLCB0aGUgcGF0Y2ggb2YgbWluZSBJIHF1b3RlZCBp biBteSBwcmV2aW91cwplbWFpbC4KClRoZXJlIGFyZSBhZGRpdGlvbmFsIG9wcG9ydHVuaXRpZXMg dG8gcmVkdWNlIHRoZSBjYWNoaW5nIGVmZmVjdCBmb3IKeDg2LCBzdWNoIGFzIGNvbWJpbmluZyB0 aGUgU01QLWNvZGUgbWV0YWRhdGEgd2l0aCB0aGUgVExCLWludmFsaWRhdGlvbgptZXRhZGF0YSAo d2hpY2ggaXMgb3V0IG9mIHRoZSBzY29wZSkgdGhhdCBJIHNhdyBoYXZpbmcgcGVyZm9ybWFuY2UK YmVuZWZpdC4gVGhhdOKAmXMgYWxsIHRvIHNheSB0aGF0IGNhY2hpbmcgZWZmZWN0IGlzIG5vdCBz b21ldGhpbmcgdG8KYmUgY29uc2lkZXJlZCBvYnNvbGV0ZS4KCj4gCj4gV2hhdCBJIGNhbiBjb25m aXJtIGlzIHRoYXQgaXQgc29sdmVzIGEgcmVhbCB3b3JsZCBwcm9ibGVtIG9uICF4ODYKPiBtYWNo aW5lcyBmb3IgdGhlIHBhdGhvbG9naWNhbCBjYXNlIGF0IGhhbmQKPiAKPiAgIE9uIHRoZSBhZmZl Y3RlZCBjb250ZW1wb3JhcnkgQVJNMzIgbWFjaGluZSwgd2hpY2ggZG9lcyBub3QgcmVxdWlyZQo+ ICAgSVBJcywgdGhlIHNlbGVjdGl2ZSBmbHVzaCBpcyB3YXkgYmV0dGVyIHRoYW46Cj4gCj4gICAt IHRoZSBzaWxseSAxLkcgcmFuZ2Ugb25lIHBhZ2UgYnkgb25lIGZsdXNoICh3aGljaCBpcyBzaWxs eSBvbiBpdHMKPiAgICAgb3duIGFzIHRoZXJlIGlzIG5vIHJhbmdlIGNoZWNrKQo+IAo+ICAgLSBh IGZ1bGwgdGxiIGZsdXNoIGp1c3QgZm9yIDMgcGFnZXMsIHdoaWNoIGlzIHRoZSBzYW1lIG9uIHg4 NiBhbGJlaXQKPiAgICAgdGhlIGZsdXNoIHJhbmdlIGlzIH42NEdCIHRoZXJlLgo+IAo+IFRoZSBw b2ludCBpcyB0aGF0IHRoZSBnZW5lcmljIHZtYWxsb2MgY29kZSBpcyBtYWtpbmcgYXNzdW1wdGlv bnMgd2hpY2gKPiBhcmUgeDg2IGNlbnRyaWMgb24gbm90IGV2ZW4gbmVjZXNzYXJpbHkgdHJ1ZSBv biB4ODYuCj4gCj4gV2hldGhlciBvciBub3QgdGhpcyBpcyBiZW5lZml0aWFsIG9uIHg4NiB0aGF0 J3MgYSBjb21wbGV0ZXkgc2VwYXJhdGUKPiBkZWJhdGUuCgpJIGZ1bGx5IHVuZGVyc3RhbmQgdGhh dCBpZiB5b3UgcmVkdWNlIG11bHRpcGxlIFRMQiBzaG9vdGRvd25zIChJUEktd2lzZSkKaW50byAx LCBpdCBpcyAocHJldHR5IG11Y2gpIGFsbCBiZW5lZml0IGFuZCB0aGVyZSBpcyBubyB0cmFkZW9m Zi4gSSB3YXMKZm9jdXNpbmcgb24gdGhlIHF1ZXN0aW9uIG9mIHdoZXRoZXIgaXQgaXMgYmVuZWZp Y2lhbCBhbHNvIHRvIGRvIHByZWNpc2UKVExCIGZsdXNoaW5nLCBhbmQgdGhlIHRyYWRlb2ZmIHRo ZXJlIGlzIGxlc3MgY2xlYXIgKGVzcGVjaWFsbHkgdGhhdCB0aGUKa2VybmVsIHVzZXMgMk1CIHBh Z2VzKS4KCk15IGV4cGVyaWVuY2Ugd2l0aCBub24tSVBJIGJhc2VkIFRMQiBpbnZhbGlkYXRpb25z IGlzIG1vcmUgbGltaXRlZC4gSUlVQwp0aGUgdXNhZ2UgbW9kZWwgaXMgdGhhdCB0aGUgVExCIHNo b290ZG93bnMgc2hvdWxkIGJlIGludm9rZWQgQVNBUAoocGVyaGFwcyBlYWNoIHJhbmdlIGNhbiBi ZSBiYXRjaGVkLCBidXQgdGhlcmUgaXMgbm8gc2Vuc2Ugb2YgYmF0Y2hpbmcKbXVsdGlwbGUgcmFu Z2VzKSwgYW5kIHRoZW4gbGF0ZXIgeW91IHdvdWxkIGlzc3VlIHNvbWUgYmFycmllciB0byBlbnN1 cmUKcHJpb3IgVExCIHNob290ZG93biBpbnZvY2F0aW9ucyBoYXZlIGJlZW4gY29tcGxldGVkLgoK SWYgdGhhdCBpcyB0aGUgKHVzZSkgY2FzZSwgSSBhbSBub3Qgc3VyZSB0aGUgYWJzdHJhY3Rpb24g eW91IHVzZWQgaW4KeW91ciBwcm90b3R5cGUgaXMgdGhlIGJlc3Qgb25lLgoKCj4gVGhlcmUgaXMg YWxzbyBhIGRlYmF0ZSByZXF1aXJlZCB3aGV0aGVyIGEgd2hvbGVzYWxlICJmbHVzaCBvbiBfQUxM Xwo+IENQVXMnIGlzIGp1c3RpZmllZCB3aGVuIHNvbWUgb2YgdGhvc2UgQ1BVcyBhcmUgY29tcGxl dGVseSBpc29sYXRlZCBhbmQKPiBoYXZlIGFic29sdXRlbHkgbm8gY2hhbmNlIHRvIGJlIGFmZmVj dGVkIGJ5IHRoYXQuIFRoaXMgcHJvY2VzcyBib3VuZAo+IHNlY2NvbXAvQlBGIG11Y2sgY2xlYXJs eSBkb2VzIG5vdCBqdXN0aWZ5IHRvIGtpY2sgaXNvbGF0ZWQgQ1BVcyBvdXQgb2YKPiB0aGVpciBj b21wdXRhdGlvbiBpbiB1c2VyIHNwYWNlIGp1c3QgYmVjYXVzZeKApgoKSSBob3BlIHlvdSB3b3Vs ZCBleGN1c2UgbXkgaWdub3JhbmNlIChJIGFtIHN1cmUgeW91IHdvbuKAmXQpLCBidXQgaXNu4oCZ dAp0aGUgc2VjY29tcC9CUEYgVk1BUCByYW5nZXMgYXJlIG1hcHBlZCBvbiBhbGwgcHJvY2Vzc2Vz IChjb25zaWRlcmluZwpQVEkgb2YgY291cnNlKT8gQXJlIHlvdSBzdWdnZXN0aW5nIHlvdSB3YW50 IGEgcGVyLXByb2Nlc3Mga2VybmVsCmFkZHJlc3Mgc3BhY2U/ICh3aGljaCBjYW4gbWFrZSBzZW5l cywgSSBndWVzcykKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==