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 4B8E9CD6133 for ; Mon, 9 Oct 2023 20:05:38 +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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QPmKJfe0RJFg2KLetX7N8zw/yPlgUToG2rN/FtP+XkI=; b=gOSk7ZGlc5gae5 N9ZTGi0bSQbI9Tu6VWzweqOAazttyEJVyMYnDsWJJq71wQrGzT40K8W2uNG6yzkIgVSO/tyh5ZHyY 5D3dN3VTUZDXmunIMcv1EuxXTkejFAhjn/TVxLbQfzF5Q6s6iH/yNYp+uZkToInJlDhXdSF4tl2jg 2Eu1AvufOC5PwQBgWq3SuiS6sGGr+ecPRah44CFrlErn2UutYWs/7p/kJ1r475Lj/khmr5ccvKzRm aLhBSRAGCLWx74p/LEmiHcSP0nWnbxslJnowidVdzMP2ENNWRuM9TCOEhRt69Skm4W4S42XGCdNDG Qig/NZfvV6YgCkReh40w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qpwV9-00BXVg-21; Mon, 09 Oct 2023 20:05:15 +0000 Received: from mail-qt1-x82e.google.com ([2607:f8b0:4864:20::82e]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qpwV5-00BXUD-2I for linux-arm-kernel@lists.infradead.org; Mon, 09 Oct 2023 20:05:14 +0000 Received: by mail-qt1-x82e.google.com with SMTP id d75a77b69052e-419b53acc11so660421cf.0 for ; Mon, 09 Oct 2023 13:05:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696881909; x=1697486709; darn=lists.infradead.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=8RmUseYDBSAK6ld4te5RZdIrDezIy+kRo+tEZernjK0=; b=r/kqFFxmEptPHbhjYiSqJI5jeednZndUvkP9TH1vBpzzrAREC5fBNuBH5ZB0VRlCVF VDvx3UA8iafm/VoTCDqD5SxlHBrSTRe9g+MK+q/5tPXf8KWpCB1k/Aa37Uq+KCoZLyM1 zJzzI5dgXARS2Y5GjTfqSG5igDL+dqb4uJYFbcIOxJTyjJ0CH1p+KzVb2Ae+8dHNPNxz v8hierDXvSF3p4FkE/adKYxRP4AOfd2k3Bvd4HdSYm94mhaC95NSJAMIVzMrKad+kWUX 8blZN8LfeR1IYfKL7bKP+mPUGAkD3Gxem+6OFe8FRApozdgjk3Utt3PMFTTP96I528bc vyYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696881909; x=1697486709; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8RmUseYDBSAK6ld4te5RZdIrDezIy+kRo+tEZernjK0=; b=SHhoZDTdapl1A5ozAHRwmfsqMeK4gJgY/ejDy6mMRCz/YX1SB0ynt1rUVNtMzhlxmX X0Gvc+K6t90j9YDK2bwHKC+OJXqHprKBvG0rXy/td+R9E52Xio4OsyvvdHiywaiHxbLv 2jn3D/j6V6sft+DEaHl/qjkq9K/nhOHu8/RCbJ42GRNHDCFWvfsI+l3LiSeUEQgOsz9/ MSaclyJ7zxh+ytk5Nr4lGpv/fRlJJuF9Ywal7uSU07/z6Rh4GZJMmaoTT/yEP9RavQJ3 vilFMHiWN/1Afiy1vHyXb56ejrG4gRdkM+DI5VfXDfNFpEH/uGKcqaaN+gkj2DnOIJ8X EDLg== X-Gm-Message-State: AOJu0YzE0NtllVxfeDhXxU3Zyb/51pu8X+fz7i3K5TOn1ewtOXeKQ6bw KBqwxIKraC6ssbGQwYlYwHaqTfRhNdQNlivo3x12CQ== X-Google-Smtp-Source: AGHT+IGuPKApUxVXeX87MEU5C5RGG7tpaE3pkFUsYZuECjF/GvRH8xUtxcnStjwfiI4PbDzwvmONgLQQENsV7Ph6E/M= X-Received: by 2002:a05:622a:1452:b0:410:88a5:92f with SMTP id v18-20020a05622a145200b0041088a5092fmr1185590qtx.0.1696881909137; Mon, 09 Oct 2023 13:05:09 -0700 (PDT) MIME-Version: 1.0 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> In-Reply-To: <25d1cdee-3da8-4728-aa0d-dc07eb28ea95@arm.com> From: Yu Zhao Date: Mon, 9 Oct 2023 14:04:31 -0600 Message-ID: Subject: Re: [PATCH v6 6/9] mm: thp: Add "recommend" option for anon_orders To: Ryan Roberts 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 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231009_130511_753935_6BC6C018 X-CRM114-Status: GOOD ( 42.06 ) 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 T24gTW9uLCBPY3QgOSwgMjAyMyBhdCA1OjQ14oCvQU0gUnlhbiBSb2JlcnRzIDxyeWFuLnJvYmVy dHNAYXJtLmNvbT4gd3JvdGU6Cj4KPiBPbiAwNi8xMC8yMDIzIDIzOjI4LCBZdSBaaGFvIHdyb3Rl Ogo+ID4gT24gRnJpLCBPY3QgNiwgMjAyMyBhdCAyOjA44oCvUE0gRGF2aWQgSGlsZGVuYnJhbmQg PGRhdmlkQHJlZGhhdC5jb20+IHdyb3RlOgo+ID4+Cj4gPj4gT24gMjkuMDkuMjMgMTM6NDQsIFJ5 YW4gUm9iZXJ0cyB3cm90ZToKPiA+Pj4gSW4gYWRkaXRpb24gdG8gcGFzc2luZyBhIGJpdGZpZWxk IG9mIGZvbGlvIG9yZGVycyB0byBlbmFibGUgZm9yIFRIUCwKPiA+Pj4gYWxsb3cgdGhlIHN0cmlu ZyAicmVjb21tZW5kIiB0byBiZSB3cml0dGVuLCB3aGljaCBoYXMgdGhlIGVmZmVjdCBvZgo+ID4+ PiBjYXVzaW5nIHRoZSBzeXN0ZW0gdG8gZW5hYmxlIHRoZSBvcmRlcnMgcHJlZmVycmVkIGJ5IHRo ZSBhcmNoaXRlY3R1cmUKPiA+Pj4gYW5kIGJ5IHRoZSBtbS4gVGhlIHVzZXIgY2FuIHNlZSB3aGF0 IHRoZXNlIG9yZGVycyBhcmUgYnkgc3Vic2VxdWVudGx5Cj4gPj4+IHJlYWRpbmcgYmFjayB0aGUg ZmlsZS4KPiA+Pj4KPiA+Pj4gTm90ZSB0aGF0IHRoZXNlIHJlY29tbWVuZGVkIG9yZGVycyBhcmUg ZXhwZWN0ZWQgdG8gYmUgc3RhdGljIGZvciBhIGdpdmVuCj4gPj4+IGJvb3Qgb2YgdGhlIHN5c3Rl bSwgYW5kIHNvIHRoZSBrZXl3b3JkICJhdXRvIiB3YXMgZGVsaWJlcmF0ZWx5IG5vdCB1c2VkLAo+ ID4+PiBhcyBJIHdhbnQgdG8gcmVzZXJ2ZSBpdCBmb3IgYSBwb3NzaWJsZSBmdXR1cmUgdXNlIHdo ZXJlIHRoZSAiYmVzdCIgb3JkZXIKPiA+Pj4gaXMgY2hvc2VuIG1vcmUgZHluYW1pY2FsbHkgYXQg cnVudGltZS4KPiA+Pj4KPiA+Pj4gUmVjb21tZW5kZWQgb3JkZXJzIGFyZSBkZXRlcm1pbmVkIGFz IGZvbGxvd3M6Cj4gPj4+ICAgIC0gUE1EX09SREVSOiBUaGUgdHJhZGl0aW9uYWwgVEhQIHNpemUK PiA+Pj4gICAgLSBhcmNoX3dhbnRzX3B0ZV9vcmRlcigpIGlmIGltcGxlbWVudGVkIGJ5IHRoZSBh cmNoCj4gPj4+ICAgIC0gUEFHRV9BTExPQ19DT1NUTFlfT1JERVI6IFRoZSBsYXJnZXN0IG9yZGVy IGtlcHQgb24gcGVyLWNwdSBmcmVlIGxpc3QKPiA+Pj4KPiA+Pj4gYXJjaF93YW50c19wdGVfb3Jk ZXIoKSBjYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUgYXJjaGl0ZWN0dXJlIGlmIGRlc2lyZWQuCj4g Pj4+IFNvbWUgYXJjaGl0ZWN0dXJlcyAoZS5nLiBhcm02NCkgY2FuIGNvYWxzZWNlIFRMQiBlbnRy aWVzIGlmIGEgY29udGlndW91cwo+ID4+PiBzZXQgb2YgcHRlcyBtYXAgcGh5c2ljYWxseSBjb250 aWdpb3VzLCBuYXR1cmFsbHkgYWxpZ25lZCBtZW1vcnksIHNvIHRoaXMKPiA+Pj4gbWVjaGFuaXNt IGFsbG93cyB0aGUgYXJjaGl0ZWN0dXJlIHRvIG9wdGltaXplIGFzIHJlcXVpcmVkLgo+ID4+Pgo+ ID4+PiBIZXJlIHdlIGFkZCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBhcmNoX3dhbnRz X3B0ZV9vcmRlcigpLCB1c2VkCj4gPj4+IHdoZW4gdGhlIGFyY2hpdGVjdHVyZSBkb2VzIG5vdCBk ZWZpbmUgaXQsIHdoaWNoIHJldHVybnMgLTEsIGltcGx5aW5nCj4gPj4+IHRoYXQgdGhlIEhXIGhh cyBubyBwcmVmZXJlbmNlLgo+ID4+Pgo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBSeWFuIFJvYmVydHMg PHJ5YW4ucm9iZXJ0c0Bhcm0uY29tPgo+ID4+PiAtLS0KPiA+Pj4gICBEb2N1bWVudGF0aW9uL2Fk bWluLWd1aWRlL21tL3RyYW5zaHVnZS5yc3QgfCAgNCArKysrCj4gPj4+ICAgaW5jbHVkZS9saW51 eC9wZ3RhYmxlLmggICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysrKysrKwo+ID4+PiAg IG1tL2h1Z2VfbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysr KysrLS0tCj4gPj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQo+ID4+Pgo+ID4+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlk ZS9tbS90cmFuc2h1Z2UucnN0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tbS90cmFuc2h1 Z2UucnN0Cj4gPj4+IGluZGV4IDczMmMzYjJmNGJhOC4uZDYzNjNkNGVmYTNhIDEwMDY0NAo+ID4+ PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21tL3RyYW5zaHVnZS5yc3QKPiA+Pj4g KysrIGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tbS90cmFuc2h1Z2UucnN0Cj4gPj4+IEBA IC0xODcsNiArMTg3LDEwIEBAIHBhZ2VzICg9MTZLIGlmIHRoZSBwYWdlIHNpemUgaXMgNEspLiBU aGUgZXhhbXBsZSBhYm92ZSBlbmFibGVzIG9yZGVyLTkKPiA+Pj4gICBCeSBlbmFibGluZyBtdWx0 aXBsZSBvcmRlcnMsIGFsbG9jYXRpb24gb2YgZWFjaCBvcmRlciB3aWxsIGJlCj4gPj4+ICAgYXR0 ZW1wdGVkLCBoaWdoZXN0IHRvIGxvd2VzdCwgdW50aWwgYSBzdWNjZXNzZnVsIGFsbG9jYXRpb24g aXMgbWFkZS4KPiA+Pj4gICBJZiB0aGUgUE1ELW9yZGVyIGlzIHVuc2V0LCB0aGVuIG5vIFBNRC1z aXplZCBUSFBzIHdpbGwgYmUgYWxsb2NhdGVkLgo+ID4+PiArSXQgaXMgYWxzbyBwb3NzaWJsZSB0 byBlbmFibGUgdGhlIHJlY29tbWVuZGVkIHNldCBvZiBvcmRlcnMsIHdoaWNoCj4gPj4+ICt3aWxs IGJlIG9wdGltaXplZCBmb3IgdGhlIGFyY2hpdGVjdHVyZSBhbmQgbW06Ogo+ID4+PiArCj4gPj4+ ICsgICAgIGVjaG8gcmVjb21tZW5kID4vc3lzL2tlcm5lbC9tbS90cmFuc3BhcmVudF9odWdlcGFn ZS9hbm9uX29yZGVycwo+ID4+Pgo+ID4+PiAgIFRoZSBrZXJuZWwgd2lsbCBpZ25vcmUgYW55IG9y ZGVycyB0aGF0IGl0IGRvZXMgbm90IHN1cHBvcnQgc28gcmVhZCB0aGUKPiA+Pj4gICBmaWxlIGJh Y2sgdG8gZGV0ZXJtaW5lIHdoaWNoIG9yZGVycyBhcmUgZW5hYmxlZDo6Cj4gPj4+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L3BndGFibGUuaCBiL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oCj4g Pj4+IGluZGV4IGFmNzYzOWMzYjBhMy4uMGUxMTBjZTU3Y2MzIDEwMDY0NAo+ID4+PiAtLS0gYS9p bmNsdWRlL2xpbnV4L3BndGFibGUuaAo+ID4+PiArKysgYi9pbmNsdWRlL2xpbnV4L3BndGFibGUu aAo+ID4+PiBAQCAtMzkzLDYgKzM5MywxOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9jaGVj a196YXBwZWRfcG1kKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAo+ID4+PiAgIH0KPiA+Pj4g ICAjZW5kaWYKPiA+Pj4KPiA+Pj4gKyNpZm5kZWYgYXJjaF93YW50c19wdGVfb3JkZXIKPiA+Pj4g Ky8qCj4gPj4+ICsgKiBSZXR1cm5zIHByZWZlcnJlZCBmb2xpbyBvcmRlciBmb3IgcHRlLW1hcHBl ZCBtZW1vcnkuIE11c3QgYmUgaW4gcmFuZ2UgWzAsCj4gPj4+ICsgKiBQTURfT1JERVIpIGFuZCBt dXN0IG5vdCBiZSBvcmRlci0xIHNpbmNlIFRIUCByZXF1aXJlcyBsYXJnZSBmb2xpb3MgdG8gYmUg YXQKPiA+Pj4gKyAqIGxlYXN0IG9yZGVyLTIuIE5lZ2F0aXZlIHZhbHVlIGltcGxpZXMgdGhhdCB0 aGUgSFcgaGFzIG5vIHByZWZlcmVuY2UgYW5kIG1tCj4gPj4+ICsgKiB3aWxsIGNob29zZSBpdCdz IG93biBkZWZhdWx0IG9yZGVyLgo+ID4+PiArICovCj4gPj4+ICtzdGF0aWMgaW5saW5lIGludCBh cmNoX3dhbnRzX3B0ZV9vcmRlcih2b2lkKQo+ID4+PiArewo+ID4+PiArICAgICByZXR1cm4gLTE7 Cj4gPj4+ICt9Cj4gPj4+ICsjZW5kaWYKPiA+Pj4gKwo+ID4+PiAgICNpZm5kZWYgX19IQVZFX0FS Q0hfUFRFUF9HRVRfQU5EX0NMRUFSCj4gPj4+ICAgc3RhdGljIGlubGluZSBwdGVfdCBwdGVwX2dl dF9hbmRfY2xlYXIoc3RydWN0IG1tX3N0cnVjdCAqbW0sCj4gPj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCj4gPj4+IGRpZmYgLS1n aXQgYS9tbS9odWdlX21lbW9yeS5jIGIvbW0vaHVnZV9tZW1vcnkuYwo+ID4+PiBpbmRleCBiY2Vj Y2U3NjkwMTcuLmUyZTJkMzkwNmEyMSAxMDA2NDQKPiA+Pj4gLS0tIGEvbW0vaHVnZV9tZW1vcnku Ywo+ID4+PiArKysgYi9tbS9odWdlX21lbW9yeS5jCj4gPj4+IEBAIC00NjQsMTAgKzQ2NCwxOCBA QCBzdGF0aWMgc3NpemVfdCBhbm9uX29yZGVyc19zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwK PiA+Pj4gICAgICAgaW50IGVycjsKPiA+Pj4gICAgICAgaW50IHJldCA9IGNvdW50Owo+ID4+PiAg ICAgICB1bnNpZ25lZCBpbnQgb3JkZXJzOwo+ID4+PiArICAgICBpbnQgYXJjaDsKPiA+Pj4KPiA+ Pj4gLSAgICAgZXJyID0ga3N0cnRvdWludChidWYsIDAsICZvcmRlcnMpOwo+ID4+PiAtICAgICBp ZiAoZXJyKQo+ID4+PiAtICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gPj4+ICsgICAgIGlm IChzeXNmc19zdHJlcShidWYsICJyZWNvbW1lbmQiKSkgewo+ID4+PiArICAgICAgICAgICAgIGFy Y2ggPSBtYXgoYXJjaF93YW50c19wdGVfb3JkZXIoKSwgUEFHRV9BTExPQ19DT1NUTFlfT1JERVIp Owo+ID4+PiArICAgICAgICAgICAgIG9yZGVycyA9IEJJVChhcmNoKTsKPiA+Pj4gKyAgICAgICAg ICAgICBvcmRlcnMgfD0gQklUKFBBR0VfQUxMT0NfQ09TVExZX09SREVSKTsKPiA+Pj4gKyAgICAg ICAgICAgICBvcmRlcnMgfD0gQklUKFBNRF9PUkRFUik7Cj4gPj4+ICsgICAgIH0gZWxzZSB7Cj4g Pj4+ICsgICAgICAgICAgICAgZXJyID0ga3N0cnRvdWludChidWYsIDAsICZvcmRlcnMpOwo+ID4+ PiArICAgICAgICAgICAgIGlmIChlcnIpCj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICByZXQg PSAtRUlOVkFMOwo+ID4+PiArICAgICB9Cj4gPj4+Cj4gPj4+ICAgICAgIGlmIChyZXQgPiAwKSB7 Cj4gPj4+ICAgICAgICAgICAgICAgb3JkZXJzICY9IFRIUF9PUkRFUlNfQUxMX0FOT047Cj4gPj4K PiA+PiA6LyBkb24ndCByZWFsbHkgbGlrZSB0aGF0LiBSZWdhcmRpbmcgbXkgcHJvcG9zYWwsIG9u ZSBjb3VsZCBoYXZlCj4gPj4gc29tZXRoaW5nIGxpa2UgdGhhdCBpbiBhbiAiYXV0byIgc2V0dGlu ZyBmb3IgdGhlICJlbmFibGVkIiB2YWx1ZSwgb3IgYQo+ID4+ICJyZWNvbW1lbmRlZCIgc2V0dGlu ZyBbbm90IHN1cmVdLgo+ID4KPiA+IE1lIGVpdGhlci4KPiA+Cj4gPiBBZ2FpbiB0aGlzIGlzIHNv bWV0aGluZyBJIGNhbGwgcmFuZG9tIC0tICB3ZSBvbmx5IGRpc2N1c3NlZCAiYXV0byIsCj4gPiBh bmQgeWVzLCB0aGUgY29tbWl0IG1lc3NhZ2UgYWJvdmUgZXhwbGFpbmVkIHdoeSAicmVjb21tZW5k ZWQiIGhlcmUgYnV0Cj4gPiBpdCBoYXMgbmV2ZXIgc3VyZmFjZWQgaW4gcHJldmlvdXMgZGlzY3Vz c2lvbnMsIGhhcyBpdD8KPgo+IFRoZSBjb250ZXh0IGluIHdoaWNoIHdlIGRpc2N1c3NlZCAiYXV0 byIgd2FzIGZvciBhIGZ1dHVyZSBhc3BpcmF0aW9uIHRvCj4gYXV0b21hdGljYWxseSBkZXRlcm1p bmUgdGhlIG9yZGVyIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGEgZ2l2ZW4gYWxsb2NhdGlvbiB0 bwo+IGJhbGFuY2UgcGVyZiB2cyBpbnRlcm5hbCBmcmFnbWVudGF0aW9uLgo+Cj4gVGhlIGNhc2Ug d2UgYXJlIHRhbGtpbmcgYWJvdXQgaGVyZSBpcyBjb21wbGV0ZWx5IGRpZmZlcmVudDsgSSBoYWQg YSBwcmUtZXhpc3RpbmcKPiBmZWF0dXJlIGZyb20gcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhlIHNl cmllcywgd2hpY2ggd291bGQgYWxsb3cgdGhlIGFyY2ggdG8KPiBzcGVjaWZ5IGl0cyBwcmVmZXJy ZWQgb3JkZXIgKG9yaWdpbmFsbHkgcHJvcG9zZWQgYnkgWXUsIElJUkMpLiBJbiBtb3ZpbmcgdGhl Cj4gYWxsb2NhdGlvbiBzaXplIGRlY2lzaW9uIHRvIHVzZXIgc3BhY2UsIEkgZmVsdCB0aGF0IHdl IHN0aWxsIG5lZWRlZCBhIG1lY2hhbmlzbQo+IHdoZXJlYnkgdGhlIGFyY2ggY291bGQgZXhwcmVz cyBpdHMgcHJlZmVyZW5jZS4gQW5kICJyZWNvbW1lbmQiIGlzIHdoYXQgSSBjYW1lIHVwCj4gd2l0 aC4KPgo+IEFsbCBvZiB0aGUgZnJpY3Rpb24gd2UgYXJlIGN1cnJlbnRseSBoYXZpbmcgaXMgYXJv dW5kIHRoaXMgZmVhdHVyZSwgSSB0aGluaz8KPiBDZXJ0YWlubHkgYWxsIHRoZSBsaW5rcyB5b3Ug cHJvdmlkZWQgaW4gdGhlIG90aGVyIHRocmVhZCBhbGwgcG9pbnQgdG8KPiBjb252ZXJzYXRpb25z IHNraXJ0aW5nIGFyb3VuZCBpdC4gSG93IGFib3V0IEkganVzdCBkcm9wIGl0IGZvciB0aGlzIGlu aXRpYWwKPiBwYXRjaCBzZXQ/IEp1c3QgbGV0IHVzZXIgc3BhY2UgZGVjaWRlIHdoYXQgc2l6ZXMg aXQgd2FudHMgKHBlciBEYXZpZCdzIGludGVyZmFjZQo+IHByb3Bvc2FsKT8gSSBjYW4gc2VlIEkn bSB0cnlpbmcgdG8gZ2V0IGEgc3F1YXJlIHBlZyBpbnRvIGEgcm91bmQgaG9sZS4KClllcywgYW5k IEkgdGhpbmsgSSd2ZSBiZWVuIGZhaXJseSBjbGVhciBzaW5jZSB0aGUgYmVnaW5uaW5nOiB3aHkg Y2FuJ3QKdGhlIGluaXRpYWwgcGF0Y2hzZXQgb25seSBoYXZlIHdoYXQgd2UgYWdyZWVkIG9uIHNv IHRoYXQgaXQgY2FuIGdldAptZXJnZWQgYXNhcD8KClNpbmNlIHdlIGhhdmVuJ3QgYWdyZWVkIG9u IGFueSBBQkkgY2hhbmdlcyAoc3lzZnMsIHN0YXRzLCBldGMuKSwKZGVidWdmcyAoU3VyZW4gQCBB bmRyb2lkKSwgYm9vdCBwYXJhbWV0ZXJzLCBldGMuLCBLY29uZmlnIGlzIHRoZSBvbmx5Cm1lcmdl YWJsZSBvcHRpb24gYXQgdGhlIG1vbWVudC4gVG8gYW5zd2VyIHlvdXIgcXVlc3Rpb25zIFsxXVsy XSwgaS5lLiwKd2h5ICJhIGNvbXBpbGUgdGltZSBvcHRpb24iOiBpdCdzIG5vdCB0byBtYWtlICpt eSB0ZXN0aW5nKiBlYXNpZXI7Cml0J3MgZm9yICp5b3VyIHNlcmllcyogdG8gbWFrZSBpbW1lZGlh dGUgcHJvZ3Jlc3MuCgpbMV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbW0tY29tbWl0cy8xMzdk MmZjNC1kZThiLTRkZGEtYTUxZC0zMWNlNmIyOWEzZDBAYXJtLmNvbS8KWzJdIGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL21tLWNvbW1pdHMvMzE2MDU0ZmQtMGFjYi00Mjc3LWI5ZGEtZDIxZjBkYWUy ZDI5QGFybS5jb20vCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==