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 24F8AE95A97 for ; Tue, 10 Oct 2023 10:16:50 +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:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LPkuKn9RLx8Fk3JdJiKwcuy1Wnj8fS/HWPiuifHQGdg=; b=q07Dc+0L97qHbI 9/G1+lxqJEVk2V6htq2tzi4fV8OCYkAguwxfw9uN/d8Kzfkx9KcNIBtIvh/HsxRUE5ouTh7e/rYcl b00Ub1ncgDU4ghWFy4I3sIvcPunFiAOTeTRJRFzbm7d6rJai+W5ex3UftYwBd5IQLwfnd0De/6ypq uwuuujZDFNvte1095QITyn8kGrsjcMUIu0c/CGgHXXWzy1YQgS9bkhJ27p2BKfYpI3zIvWfnnbj83 4akqNZ7T6kG+3s/11sZs8Zz/M0Jog0kqYZoswycZMl9iZzNr3XHpDjxfu9VDbxT6yVy4as06fGe2X fQ22uMK02dFUNbjyKXSg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qq9mk-00D0MS-2W; Tue, 10 Oct 2023 10:16:18 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qq9mg-00D0L0-2z for linux-arm-kernel@lists.infradead.org; Tue, 10 Oct 2023 10:16:17 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 22DEC1FB; Tue, 10 Oct 2023 03:16:54 -0700 (PDT) Received: from [10.1.30.177] (XHFQ2J9959.cambridge.arm.com [10.1.30.177]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E9F833F762; Tue, 10 Oct 2023 03:16:10 -0700 (PDT) Message-ID: <642a14bb-e298-47cc-955f-3200f6977c1f@arm.com> Date: Tue, 10 Oct 2023 11:16:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6 6/9] mm: thp: Add "recommend" option for anon_orders Content-Language: en-GB To: Yu Zhao Cc: David Hildenbrand , Andrew Morton , Matthew Wilcox , Yin Fengwei , Catalin Marinas , Anshuman Khandual , Yang Shi , "Huang, Ying" , Zi Yan , Luis Chamberlain , Itaru Kitayama , "Kirill A. Shutemov" , John Hubbard , David Rientjes , Vlastimil Babka , Hugh Dickins , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Suren Baghdasaryan References: <20230929114421.3761121-1-ryan.roberts@arm.com> <20230929114421.3761121-7-ryan.roberts@arm.com> <2f64809e-0d0d-cc61-71ac-8d9b072efc3a@redhat.com> <25d1cdee-3da8-4728-aa0d-dc07eb28ea95@arm.com> From: Ryan Roberts In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231010_031615_066138_7308D7D6 X-CRM114-Status: GOOD ( 38.00 ) 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 T24gMDkvMTAvMjAyMyAyMTowNCwgWXUgWmhhbyB3cm90ZToKPiBPbiBNb24sIE9jdCA5LCAyMDIz IGF0IDU6NDXigK9BTSBSeWFuIFJvYmVydHMgPHJ5YW4ucm9iZXJ0c0Bhcm0uY29tPiB3cm90ZToK Pj4KPj4gT24gMDYvMTAvMjAyMyAyMzoyOCwgWXUgWmhhbyB3cm90ZToKPj4+IE9uIEZyaSwgT2N0 IDYsIDIwMjMgYXQgMjowOOKAr1BNIERhdmlkIEhpbGRlbmJyYW5kIDxkYXZpZEByZWRoYXQuY29t PiB3cm90ZToKPj4+Pgo+Pj4+IE9uIDI5LjA5LjIzIDEzOjQ0LCBSeWFuIFJvYmVydHMgd3JvdGU6 Cj4+Pj4+IEluIGFkZGl0aW9uIHRvIHBhc3NpbmcgYSBiaXRmaWVsZCBvZiBmb2xpbyBvcmRlcnMg dG8gZW5hYmxlIGZvciBUSFAsCj4+Pj4+IGFsbG93IHRoZSBzdHJpbmcgInJlY29tbWVuZCIgdG8g YmUgd3JpdHRlbiwgd2hpY2ggaGFzIHRoZSBlZmZlY3Qgb2YKPj4+Pj4gY2F1c2luZyB0aGUgc3lz dGVtIHRvIGVuYWJsZSB0aGUgb3JkZXJzIHByZWZlcnJlZCBieSB0aGUgYXJjaGl0ZWN0dXJlCj4+ Pj4+IGFuZCBieSB0aGUgbW0uIFRoZSB1c2VyIGNhbiBzZWUgd2hhdCB0aGVzZSBvcmRlcnMgYXJl IGJ5IHN1YnNlcXVlbnRseQo+Pj4+PiByZWFkaW5nIGJhY2sgdGhlIGZpbGUuCj4+Pj4+Cj4+Pj4+ IE5vdGUgdGhhdCB0aGVzZSByZWNvbW1lbmRlZCBvcmRlcnMgYXJlIGV4cGVjdGVkIHRvIGJlIHN0 YXRpYyBmb3IgYSBnaXZlbgo+Pj4+PiBib290IG9mIHRoZSBzeXN0ZW0sIGFuZCBzbyB0aGUga2V5 d29yZCAiYXV0byIgd2FzIGRlbGliZXJhdGVseSBub3QgdXNlZCwKPj4+Pj4gYXMgSSB3YW50IHRv IHJlc2VydmUgaXQgZm9yIGEgcG9zc2libGUgZnV0dXJlIHVzZSB3aGVyZSB0aGUgImJlc3QiIG9y ZGVyCj4+Pj4+IGlzIGNob3NlbiBtb3JlIGR5bmFtaWNhbGx5IGF0IHJ1bnRpbWUuCj4+Pj4+Cj4+ Pj4+IFJlY29tbWVuZGVkIG9yZGVycyBhcmUgZGV0ZXJtaW5lZCBhcyBmb2xsb3dzOgo+Pj4+PiAg ICAtIFBNRF9PUkRFUjogVGhlIHRyYWRpdGlvbmFsIFRIUCBzaXplCj4+Pj4+ICAgIC0gYXJjaF93 YW50c19wdGVfb3JkZXIoKSBpZiBpbXBsZW1lbnRlZCBieSB0aGUgYXJjaAo+Pj4+PiAgICAtIFBB R0VfQUxMT0NfQ09TVExZX09SREVSOiBUaGUgbGFyZ2VzdCBvcmRlciBrZXB0IG9uIHBlci1jcHUg ZnJlZSBsaXN0Cj4+Pj4+Cj4+Pj4+IGFyY2hfd2FudHNfcHRlX29yZGVyKCkgY2FuIGJlIG92ZXJy aWRkZW4gYnkgdGhlIGFyY2hpdGVjdHVyZSBpZiBkZXNpcmVkLgo+Pj4+PiBTb21lIGFyY2hpdGVj dHVyZXMgKGUuZy4gYXJtNjQpIGNhbiBjb2Fsc2VjZSBUTEIgZW50cmllcyBpZiBhIGNvbnRpZ3Vv dXMKPj4+Pj4gc2V0IG9mIHB0ZXMgbWFwIHBoeXNpY2FsbHkgY29udGlnaW91cywgbmF0dXJhbGx5 IGFsaWduZWQgbWVtb3J5LCBzbyB0aGlzCj4+Pj4+IG1lY2hhbmlzbSBhbGxvd3MgdGhlIGFyY2hp dGVjdHVyZSB0byBvcHRpbWl6ZSBhcyByZXF1aXJlZC4KPj4+Pj4KPj4+Pj4gSGVyZSB3ZSBhZGQg dGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYXJjaF93YW50c19wdGVfb3JkZXIoKSwgdXNl ZAo+Pj4+PiB3aGVuIHRoZSBhcmNoaXRlY3R1cmUgZG9lcyBub3QgZGVmaW5lIGl0LCB3aGljaCBy ZXR1cm5zIC0xLCBpbXBseWluZwo+Pj4+PiB0aGF0IHRoZSBIVyBoYXMgbm8gcHJlZmVyZW5jZS4K Pj4+Pj4KPj4+Pj4gU2lnbmVkLW9mZi1ieTogUnlhbiBSb2JlcnRzIDxyeWFuLnJvYmVydHNAYXJt LmNvbT4KPj4+Pj4gLS0tCj4+Pj4+ICAgRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tbS90cmFu c2h1Z2UucnN0IHwgIDQgKysrKwo+Pj4+PiAgIGluY2x1ZGUvbGludXgvcGd0YWJsZS5oICAgICAg ICAgICAgICAgICAgICB8IDEzICsrKysrKysrKysrKysKPj4+Pj4gICBtbS9odWdlX21lbW9yeS5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrKysrKy0tLQo+Pj4+PiAgIDMg ZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPj4+Pj4KPj4+ Pj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbW0vdHJhbnNodWdlLnJz dCBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbW0vdHJhbnNodWdlLnJzdAo+Pj4+PiBpbmRl eCA3MzJjM2IyZjRiYTguLmQ2MzYzZDRlZmEzYSAxMDA2NDQKPj4+Pj4gLS0tIGEvRG9jdW1lbnRh dGlvbi9hZG1pbi1ndWlkZS9tbS90cmFuc2h1Z2UucnN0Cj4+Pj4+ICsrKyBiL0RvY3VtZW50YXRp b24vYWRtaW4tZ3VpZGUvbW0vdHJhbnNodWdlLnJzdAo+Pj4+PiBAQCAtMTg3LDYgKzE4NywxMCBA QCBwYWdlcyAoPTE2SyBpZiB0aGUgcGFnZSBzaXplIGlzIDRLKS4gVGhlIGV4YW1wbGUgYWJvdmUg ZW5hYmxlcyBvcmRlci05Cj4+Pj4+ICAgQnkgZW5hYmxpbmcgbXVsdGlwbGUgb3JkZXJzLCBhbGxv Y2F0aW9uIG9mIGVhY2ggb3JkZXIgd2lsbCBiZQo+Pj4+PiAgIGF0dGVtcHRlZCwgaGlnaGVzdCB0 byBsb3dlc3QsIHVudGlsIGEgc3VjY2Vzc2Z1bCBhbGxvY2F0aW9uIGlzIG1hZGUuCj4+Pj4+ICAg SWYgdGhlIFBNRC1vcmRlciBpcyB1bnNldCwgdGhlbiBubyBQTUQtc2l6ZWQgVEhQcyB3aWxsIGJl IGFsbG9jYXRlZC4KPj4+Pj4gK0l0IGlzIGFsc28gcG9zc2libGUgdG8gZW5hYmxlIHRoZSByZWNv bW1lbmRlZCBzZXQgb2Ygb3JkZXJzLCB3aGljaAo+Pj4+PiArd2lsbCBiZSBvcHRpbWl6ZWQgZm9y IHRoZSBhcmNoaXRlY3R1cmUgYW5kIG1tOjoKPj4+Pj4gKwo+Pj4+PiArICAgICBlY2hvIHJlY29t bWVuZCA+L3N5cy9rZXJuZWwvbW0vdHJhbnNwYXJlbnRfaHVnZXBhZ2UvYW5vbl9vcmRlcnMKPj4+ Pj4KPj4+Pj4gICBUaGUga2VybmVsIHdpbGwgaWdub3JlIGFueSBvcmRlcnMgdGhhdCBpdCBkb2Vz IG5vdCBzdXBwb3J0IHNvIHJlYWQgdGhlCj4+Pj4+ICAgZmlsZSBiYWNrIHRvIGRldGVybWluZSB3 aGljaCBvcmRlcnMgYXJlIGVuYWJsZWQ6Ogo+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9wZ3RhYmxlLmggYi9pbmNsdWRlL2xpbnV4L3BndGFibGUuaAo+Pj4+PiBpbmRleCBhZjc2Mzlj M2IwYTMuLjBlMTEwY2U1N2NjMyAxMDA2NDQKPj4+Pj4gLS0tIGEvaW5jbHVkZS9saW51eC9wZ3Rh YmxlLmgKPj4+Pj4gKysrIGIvaW5jbHVkZS9saW51eC9wZ3RhYmxlLmgKPj4+Pj4gQEAgLTM5Myw2 ICszOTMsMTkgQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfY2hlY2tfemFwcGVkX3BtZChzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKPj4+Pj4gICB9Cj4+Pj4+ICAgI2VuZGlmCj4+Pj4+Cj4+ Pj4+ICsjaWZuZGVmIGFyY2hfd2FudHNfcHRlX29yZGVyCj4+Pj4+ICsvKgo+Pj4+PiArICogUmV0 dXJucyBwcmVmZXJyZWQgZm9saW8gb3JkZXIgZm9yIHB0ZS1tYXBwZWQgbWVtb3J5LiBNdXN0IGJl IGluIHJhbmdlIFswLAo+Pj4+PiArICogUE1EX09SREVSKSBhbmQgbXVzdCBub3QgYmUgb3JkZXIt MSBzaW5jZSBUSFAgcmVxdWlyZXMgbGFyZ2UgZm9saW9zIHRvIGJlIGF0Cj4+Pj4+ICsgKiBsZWFz dCBvcmRlci0yLiBOZWdhdGl2ZSB2YWx1ZSBpbXBsaWVzIHRoYXQgdGhlIEhXIGhhcyBubyBwcmVm ZXJlbmNlIGFuZCBtbQo+Pj4+PiArICogd2lsbCBjaG9vc2UgaXQncyBvd24gZGVmYXVsdCBvcmRl ci4KPj4+Pj4gKyAqLwo+Pj4+PiArc3RhdGljIGlubGluZSBpbnQgYXJjaF93YW50c19wdGVfb3Jk ZXIodm9pZCkKPj4+Pj4gK3sKPj4+Pj4gKyAgICAgcmV0dXJuIC0xOwo+Pj4+PiArfQo+Pj4+PiAr I2VuZGlmCj4+Pj4+ICsKPj4+Pj4gICAjaWZuZGVmIF9fSEFWRV9BUkNIX1BURVBfR0VUX0FORF9D TEVBUgo+Pj4+PiAgIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlcF9nZXRfYW5kX2NsZWFyKHN0cnVj dCBtbV9zdHJ1Y3QgKm1tLAo+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAo+Pj4+PiBkaWZmIC0tZ2l0IGEvbW0vaHVnZV9tZW1v cnkuYyBiL21tL2h1Z2VfbWVtb3J5LmMKPj4+Pj4gaW5kZXggYmNlY2NlNzY5MDE3Li5lMmUyZDM5 MDZhMjEgMTAwNjQ0Cj4+Pj4+IC0tLSBhL21tL2h1Z2VfbWVtb3J5LmMKPj4+Pj4gKysrIGIvbW0v aHVnZV9tZW1vcnkuYwo+Pj4+PiBAQCAtNDY0LDEwICs0NjQsMTggQEAgc3RhdGljIHNzaXplX3Qg YW5vbl9vcmRlcnNfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosCj4+Pj4+ICAgICAgIGludCBl cnI7Cj4+Pj4+ICAgICAgIGludCByZXQgPSBjb3VudDsKPj4+Pj4gICAgICAgdW5zaWduZWQgaW50 IG9yZGVyczsKPj4+Pj4gKyAgICAgaW50IGFyY2g7Cj4+Pj4+Cj4+Pj4+IC0gICAgIGVyciA9IGtz dHJ0b3VpbnQoYnVmLCAwLCAmb3JkZXJzKTsKPj4+Pj4gLSAgICAgaWYgKGVycikKPj4+Pj4gLSAg ICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+Pj4+PiArICAgICBpZiAoc3lzZnNfc3RyZXEoYnVm LCAicmVjb21tZW5kIikpIHsKPj4+Pj4gKyAgICAgICAgICAgICBhcmNoID0gbWF4KGFyY2hfd2Fu dHNfcHRlX29yZGVyKCksIFBBR0VfQUxMT0NfQ09TVExZX09SREVSKTsKPj4+Pj4gKyAgICAgICAg ICAgICBvcmRlcnMgPSBCSVQoYXJjaCk7Cj4+Pj4+ICsgICAgICAgICAgICAgb3JkZXJzIHw9IEJJ VChQQUdFX0FMTE9DX0NPU1RMWV9PUkRFUik7Cj4+Pj4+ICsgICAgICAgICAgICAgb3JkZXJzIHw9 IEJJVChQTURfT1JERVIpOwo+Pj4+PiArICAgICB9IGVsc2Ugewo+Pj4+PiArICAgICAgICAgICAg IGVyciA9IGtzdHJ0b3VpbnQoYnVmLCAwLCAmb3JkZXJzKTsKPj4+Pj4gKyAgICAgICAgICAgICBp ZiAoZXJyKQo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPj4+Pj4g KyAgICAgfQo+Pj4+Pgo+Pj4+PiAgICAgICBpZiAocmV0ID4gMCkgewo+Pj4+PiAgICAgICAgICAg ICAgIG9yZGVycyAmPSBUSFBfT1JERVJTX0FMTF9BTk9OOwo+Pj4+Cj4+Pj4gOi8gZG9uJ3QgcmVh bGx5IGxpa2UgdGhhdC4gUmVnYXJkaW5nIG15IHByb3Bvc2FsLCBvbmUgY291bGQgaGF2ZQo+Pj4+ IHNvbWV0aGluZyBsaWtlIHRoYXQgaW4gYW4gImF1dG8iIHNldHRpbmcgZm9yIHRoZSAiZW5hYmxl ZCIgdmFsdWUsIG9yIGEKPj4+PiAicmVjb21tZW5kZWQiIHNldHRpbmcgW25vdCBzdXJlXS4KPj4+ Cj4+PiBNZSBlaXRoZXIuCj4+Pgo+Pj4gQWdhaW4gdGhpcyBpcyBzb21ldGhpbmcgSSBjYWxsIHJh bmRvbSAtLSAgd2Ugb25seSBkaXNjdXNzZWQgImF1dG8iLAo+Pj4gYW5kIHllcywgdGhlIGNvbW1p dCBtZXNzYWdlIGFib3ZlIGV4cGxhaW5lZCB3aHkgInJlY29tbWVuZGVkIiBoZXJlIGJ1dAo+Pj4g aXQgaGFzIG5ldmVyIHN1cmZhY2VkIGluIHByZXZpb3VzIGRpc2N1c3Npb25zLCBoYXMgaXQ/Cj4+ Cj4+IFRoZSBjb250ZXh0IGluIHdoaWNoIHdlIGRpc2N1c3NlZCAiYXV0byIgd2FzIGZvciBhIGZ1 dHVyZSBhc3BpcmF0aW9uIHRvCj4+IGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lIHRoZSBvcmRlciB0 aGF0IHNob3VsZCBiZSB1c2VkIGZvciBhIGdpdmVuIGFsbG9jYXRpb24gdG8KPj4gYmFsYW5jZSBw ZXJmIHZzIGludGVybmFsIGZyYWdtZW50YXRpb24uCj4+Cj4+IFRoZSBjYXNlIHdlIGFyZSB0YWxr aW5nIGFib3V0IGhlcmUgaXMgY29tcGxldGVseSBkaWZmZXJlbnQ7IEkgaGFkIGEgcHJlLWV4aXN0 aW5nCj4+IGZlYXR1cmUgZnJvbSBwcmV2aW91cyB2ZXJzaW9ucyBvZiB0aGUgc2VyaWVzLCB3aGlj aCB3b3VsZCBhbGxvdyB0aGUgYXJjaCB0bwo+PiBzcGVjaWZ5IGl0cyBwcmVmZXJyZWQgb3JkZXIg KG9yaWdpbmFsbHkgcHJvcG9zZWQgYnkgWXUsIElJUkMpLiBJbiBtb3ZpbmcgdGhlCj4+IGFsbG9j YXRpb24gc2l6ZSBkZWNpc2lvbiB0byB1c2VyIHNwYWNlLCBJIGZlbHQgdGhhdCB3ZSBzdGlsbCBu ZWVkZWQgYSBtZWNoYW5pc20KPj4gd2hlcmVieSB0aGUgYXJjaCBjb3VsZCBleHByZXNzIGl0cyBw cmVmZXJlbmNlLiBBbmQgInJlY29tbWVuZCIgaXMgd2hhdCBJIGNhbWUgdXAKPj4gd2l0aC4KPj4K Pj4gQWxsIG9mIHRoZSBmcmljdGlvbiB3ZSBhcmUgY3VycmVudGx5IGhhdmluZyBpcyBhcm91bmQg dGhpcyBmZWF0dXJlLCBJIHRoaW5rPwo+PiBDZXJ0YWlubHkgYWxsIHRoZSBsaW5rcyB5b3UgcHJv dmlkZWQgaW4gdGhlIG90aGVyIHRocmVhZCBhbGwgcG9pbnQgdG8KPj4gY29udmVyc2F0aW9ucyBz a2lydGluZyBhcm91bmQgaXQuIEhvdyBhYm91dCBJIGp1c3QgZHJvcCBpdCBmb3IgdGhpcyBpbml0 aWFsCj4+IHBhdGNoIHNldD8gSnVzdCBsZXQgdXNlciBzcGFjZSBkZWNpZGUgd2hhdCBzaXplcyBp dCB3YW50cyAocGVyIERhdmlkJ3MgaW50ZXJmYWNlCj4+IHByb3Bvc2FsKT8gSSBjYW4gc2VlIEkn bSB0cnlpbmcgdG8gZ2V0IGEgc3F1YXJlIHBlZyBpbnRvIGEgcm91bmQgaG9sZS4KPiAKPiBZZXMs IGFuZCBJIHRoaW5rIEkndmUgYmVlbiBmYWlybHkgY2xlYXIgc2luY2UgdGhlIGJlZ2lubmluZzog d2h5IGNhbid0Cj4gdGhlIGluaXRpYWwgcGF0Y2hzZXQgb25seSBoYXZlIHdoYXQgd2UgYWdyZWVk IG9uIHNvIHRoYXQgaXQgY2FuIGdldAo+IG1lcmdlZCBhc2FwPwo+IAo+IFNpbmNlIHdlIGhhdmVu J3QgYWdyZWVkIG9uIGFueSBBQkkgY2hhbmdlcyAoc3lzZnMsIHN0YXRzLCBldGMuKSwKPiBkZWJ1 Z2ZzIChTdXJlbiBAIEFuZHJvaWQpLCBib290IHBhcmFtZXRlcnMsIGV0Yy4sIEtjb25maWcgaXMg dGhlIG9ubHkKPiBtZXJnZWFibGUgb3B0aW9uIGF0IHRoZSBtb21lbnQuIFRvIGFuc3dlciB5b3Vy IHF1ZXN0aW9ucyBbMV1bMl0sIGkuZS4sCj4gd2h5ICJhIGNvbXBpbGUgdGltZSBvcHRpb24iOiBp dCdzIG5vdCB0byBtYWtlICpteSB0ZXN0aW5nKiBlYXNpZXI7Cj4gaXQncyBmb3IgKnlvdXIgc2Vy aWVzKiB0byBtYWtlIGltbWVkaWF0ZSBwcm9ncmVzcy4KCk15IHByb2JsZW0gaXMgdGhhdCBJIG5l ZWQgYSBtZWNoYW5pc20gdG8gY29uZGl0aW9uYWxseSBkZWNpZGUgd2hldGhlciB0bwphbGxvY2F0 ZSBhIHNtYWxsLXNpemVkIFRIUCBvciBqdXN0IGEgc2luZ2xlIHBhZ2U7IHVuY29uZGl0aW9uYWxs eSBkb2luZyBpdCB3aGVuCmNvbXBpbGVkIGluIGlzIGEgcHJvYmxlbSBmb3IgdGhlIDE2SyBhbmQg NjRLIGJhc2UgcGFnZSBjYXNlcywgd2hlcmUgdGhlIGFybTY0CnByZWZlcnJlZCBzbWFsbC1zaXpl ZCBUSFAgaXMgMk0uIEkgbmVlZCBhIHdheSB0byBzb2x2ZSB0aGlzIGZvciB0aGUgcGF0Y2ggc2V0 IHRvCmJlIHVzYWJsZS4gQWxsIG15IGF0dGVtcHRzIHRvIGRvIGl0IHdpdGhvdXQgaW50cm9kdWNp bmcgQUJJIGhhdmUgYmVlbiByZWplY3RlZAooSSdtIG5vdCBjb21wbGFpbmluZyBhYm91dCB0aGF0 IC0gSSB1bmRlcnN0YW5kIHRoZSByZWFzb25zKS4gU28gSSdtIG5vdyByZWx5aW5nCm9uIEFCSSB0 byBzb2x2ZSBpdCAtIEkgdGhpbmsgd2UgbmVlZCB0byBzb3J0IHRoYXQgaW4gb3JkZXIgdG8gc3Vi bWl0LgoKV2UndmUgYWxzbyBhZ3JlZWQgdGhhdCB0aGVyZSBpcyBhIGxpc3Qgb2YgcHJlcmVxdWlz aXRlIGl0ZW1zIHRoYXQgbmVlZCB0byBiZQpjb21wbGV0ZWQgYmVmb3JlIHRoaXMgY2FuIGJlIG1l cmdlZCAocGxlYXNlIGRvIGNoaW1lIGluIGlmIHlvdSB0aGluayB0aGF0IGxpc3QKaXMgd3Jvbmcg b3IgdW5uZWNjZXNzYXJ5KSwgc28gd2UgY2FuIHVzZSB0aGF0IHRpbWUgdG8gZGlzY3VzcyB0aGUg QUJJIGluIHBhcmFsbGVsLgoKPiAKPiBbMV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbW0tY29t bWl0cy8xMzdkMmZjNC1kZThiLTRkZGEtYTUxZC0zMWNlNmIyOWEzZDBAYXJtLmNvbS8KPiBbMl0g aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbW0tY29tbWl0cy8zMTYwNTRmZC0wYWNiLTQyNzctYjlk YS1kMjFmMGRhZTJkMjlAYXJtLmNvbS8KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==