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 X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=BAYES_00,DATE_IN_PAST_03_06, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A9694C433DB for ; Tue, 12 Jan 2021 11:18:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 78692208B3 for ; Tue, 12 Jan 2021 11:18:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728271AbhALLSn (ORCPT ); Tue, 12 Jan 2021 06:18:43 -0500 Received: from m13101.mail.163.com ([220.181.13.101]:48503 "EHLO m13101.mail.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727288AbhALLSg (ORCPT ); Tue, 12 Jan 2021 06:18:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:MIME-Version:Message-ID; bh=DS0BY D6EZwH9Ic/l1F0VIkVS8tUWq+fD6E1FXz6DZ94=; b=DiK3nAKjB37jvrgrydx8m 9+cbyrAHLFUF9qajux87Yiy96zdnAtvaBfkBqAYAgre3fN7p6KccUJLfT8WUD30Q YTQbn6kZdaUSq+QLiKB3pj49JScV1yfiDdCVq/Ehz3Xjh+XD8t4Viy0Nyymenptv YAQ5WB5kvF5wbGnGIz145E= Received: from ultrachin$163.com ( [111.206.145.43] ) by ajax-webmail-wmsvr101 (Coremail) ; Tue, 12 Jan 2021 14:57:01 +0800 (CST) X-Originating-IP: [111.206.145.43] Date: Tue, 12 Jan 2021 14:57:01 +0800 (CST) From: chin To: "Vincent Guittot" Cc: linux-kernel , "Ingo Molnar" , "Peter Zijlstra" , "Juri Lelli" , "Dietmar Eggemann" , "Steven Rostedt" , "Ben Segall" , "Mel Gorman" , "Daniel Bristot de Oliveira" , heddchen@tencent.com, =?UTF-8?Q?xiaoggchen=28=E9=99=88=E5=B0=8F=E5=85=89=29?= Subject: Re: [PATCH] sched: pull tasks when CPU is about to run SCHED_IDLE tasks X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.13 build 20201118(ab4b390f) Copyright (c) 2002-2021 www.mailtech.cn 163com In-Reply-To: References: <1608710968-31475-1-git-send-email-ultrachin@163.com> <1fefea2e.70bf.176f08d9fae.Coremail.ultrachin@163.com> Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 MIME-Version: 1.0 Message-ID: <61e22917.538b.176f56231f6.Coremail.ultrachin@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID: ZcGowAB3f889SP1f_Y4BAQ--.37462W X-CM-SenderInfo: xxow2thfkl0qqrwthudrp/1tbiJR8YWFUMbIFuNwABsW X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CgoKQXQgMjAyMS0wMS0xMSAxOTowNDoxOSwgIlZpbmNlbnQgR3VpdHRvdCIgPHZpbmNlbnQuZ3Vp dHRvdEBsaW5hcm8ub3JnPiB3cm90ZToKPk9uIE1vbiwgMTEgSmFuIDIwMjEgYXQgMDk6MjcsIGNo aW4gPHVsdHJhY2hpbkAxNjMuY29tPiB3cm90ZToKPj4KPj4KPj4gQXQgMjAyMC0xMi0yMyAxOToz MDoyNiwgIlZpbmNlbnQgR3VpdHRvdCIgPHZpbmNlbnQuZ3VpdHRvdEBsaW5hcm8ub3JnPiB3cm90 ZToKPj4gPk9uIFdlZCwgMjMgRGVjIDIwMjAgYXQgMDk6MzIsIDx1bHRyYWNoaW5AMTYzLmNvbT4g d3JvdGU6Cj4+ID4+Cj4+ID4+IEZyb206IENoZW4gWGlhb2d1YW5nIDx4aWFvZ2djaGVuQHRlbmNl bnQuY29tPgo+PiA+Pgo+PiA+PiBCZWZvcmUgYSBDUFUgc3dpdGNoZXMgZnJvbSBydW5uaW5nIFND SEVEX05PUk1BTCB0YXNrIHRvCj4+ID4+IFNDSEVEX0lETEUgdGFzaywgdHJ5aW5nIHRvIHB1bGwg U0NIRURfTk9STUFMIHRhc2tzIGZyb20gb3RoZXIKPj4gPgo+PiA+Q291bGQgeW91IGV4cGxhaW4g bW9yZSBpbiBkZXRhaWwgd2h5IHlvdSBvbmx5IGNhcmUgYWJvdXQgdGhpcyB1c2UgY2FzZQo+Pgo+ PiA+aW4gcGFydGljdWxhciBhbmQgbm90IHRoZSBnZW5lcmFsIGNhc2U/Cj4+Cj4+Cj4+IFdlIHdh bnQgdG8gcnVuIG9ubGluZSB0YXNrcyB1c2luZyBTQ0hFRF9OT1JNQUwgcG9saWN5IGFuZCBvZmZs aW5lIHRhc2tzCj4+IHVzaW5nIFNDSEVEX0lETEUgcG9saWN5LiBUaGUgb25saW5lIHRhc2tzIGFu ZCB0aGUgb2ZmbGluZSB0YXNrcyBydW4gaW4KPj4gdGhlIHNhbWUgY29tcHV0ZXIgaW4gb3JkZXIg dG8gdXNlIHRoZSBjb21wdXRlciBlZmZpY2llbnRseS4KPj4gVGhlIG9ubGluZSB0YXNrcyBhcmUg aW4gc2xlZXAgaW4gbW9zdCB0aW1lcyBidXQgc2hvdWxkIHJlc3BvbmNlIHNvb24gb25jZQo+PiB3 YWtlIHVwLiBUaGUgb2ZmbGluZSB0YXNrcyBhcmUgaW4gbG93IHByaW9yaXR5IGFuZCB3aWxsIHJ1 biBvbmx5IHdoZW4gbm8gb25saW5lCj4+IHRhc2tzLgo+Pgo+PiBUaGUgb25saW5lIHRhc2tzIGFy ZSBtb3JlIGltcG9ydGFudCB0aGFuIHRoZSBvZmZsaW5lIHRhc2tzIGFuZCBhcmUgbGF0ZW5jeQo+ PiBzZW5zaXRpdmUgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0aGUgb25saW5lIHRhc2tzIHByZWVtcHQg dGhlIG9mZmxpbmUgdGFza3MKPj4gYXMgc29vbiBhcyBwb3NzaWxiZSB3aGlsZSB0aGVyZSBhcmUg b25saW5lIHRhc2tzIHdhaXRpbmcgdG8gcnVuLgo+PiBTbyBpbiBvdXIgc2l0dWF0aW9uIHdlIGhv cGUgdGhlIFNDSEVEX05PUk1BTCB0byBydW4gaWYgaGFzIGFueS4KPj4KPj4gTGV0J3MgYXNzdW1l IHdlIGhhdmUgMiBDUFVzLAo+PiBJbiBDUFUxIHdlIGdvdCAyIFNDSEVEX05PUk1BTCB0YXNrcy4K Pj4gaW4gQ1BVMiB3ZSBnb3QgMSBTQ0hFRF9OT1JNQUwgdGFzayBhbmQgMiBTQ0hFRF9JRExFIHRh c2tzLgo+Pgo+PiAgICAgICAgICAgICAgQ1BVMSAgICAgICAgICAgICAgICAgICAgICBDUFUyCj4+ ICAgICAgICAgY3VyciAgICAgICBycTEgICAgICAgICAgICBjdXJyICAgICAgICAgIHJxMgo+PiAg ICAgICArLS0tLS0tKyB8ICstLS0tLS0rICAgICAgICstLS0tLS0rIHwgKy0tLS0rICstLS0tKwo+ PiB0MCAgICB8Tk9STUFMfCB8IHxOT1JNQUx8ICAgICAgIHxOT1JNQUx8IHwgfElETEV8IHxJRExF fAo+PiAgICAgICArLS0tLS0tKyB8ICstLS0tLS0rICAgICAgICstLS0tLS0rIHwgKy0tLS0rICst LS0tKwo+Pgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1JNQUwgZXhpdHMg b3IgYmxvY2tlZAo+PiAgICAgICArLS0tLS0tKyB8ICstLS0tLS0rICAgICAgICAgICAgICAgIHwg Ky0tLS0rICstLS0tKwo+PiB0MSAgICB8Tk9STUFMfCB8IHxOT1JNQUx8ICAgICAgICAgICAgICAg IHwgfElETEV8IHxJRExFfAo+PiAgICAgICArLS0tLS0tKyB8ICstLS0tLS0rICAgICAgICAgICAg ICAgIHwgKy0tLS0rICstLS0tKwo+Pgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwaWNrX25leHRfdGFza19mYWlyCj4+ICAgICAgICstLS0tLS0rIHwgKy0tLS0tLSsgICAgICAg ICArLS0tLSsgfCArLS0tLSsKPj4gdDIgICAgfE5PUk1BTHwgfCB8Tk9STUFMfCAgICAgICAgIHxJ RExFfCB8IHxJRExFfAo+PiAgICAgICArLS0tLS0tKyB8ICstLS0tLS0rICAgICAgICAgKy0tLS0r IHwgKy0tLS0rCj4+Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNDSEVEX0lE TEUgcnVubmluZwo+PiB0MyAgICArLS0tLS0tKyB8ICstLS0tLS0rICAgICAgICArLS0tLSsgIHwg Ky0tLS0rCj4+ICAgICAgIHxOT1JNQUx8IHwgfE5PUk1BTHwgICAgICAgIHxJRExFfCAgfCB8SURM RXwKPj4gICAgICAgKy0tLS0tLSsgfCArLS0tLS0tKyAgICAgICAgKy0tLS0rICB8ICstLS0tKwo+ Pgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5fcmViYWxhbmNlX2RvbWFp bnMKPj4gICAgICAgKy0tLS0tLSsgfCAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0tKyAr LS0tLSsKPj4gdDQgICAgfE5PUk1BTHwgfCAgICAgICAgICAgICAgICB8Tk9STUFMfCB8IHxJRExF fCB8SURMRXwKPj4gICAgICAgKy0tLS0tLSsgfCAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICst LS0tKyArLS0tLSsKPj4KPj4gQXMgd2UgY2FuIHNlZQo+PiB0MTogTk9STUFMIHRhc2sgaW4gQ1BV MiBleGl0cyBvciBibG9ja2VkCj4+IHQyOiBDUFUyIHBpY2tfbmV4dF90YXNrX2ZhaXIgd291bGQg cGljayBhIFNDSEVEX0lETEUgdG8gcnVuIHdoaWxlCj4+IGFub3RoZXIgU0NIRURfTk9STUFMIGlu IHJxMSBpcyB3YWl0aW5nLgo+PiB0MzogU0NIRURfSURMRSBydW4gaW4gQ1BVMiB3aGlsZSBhIFND SEVEX05PUk1BTCB3YWl0IGluIENQVTEuCj4+IHQ0OiBhZnRlciBhIHNob3J0IHRpbWUsIHBlcmlv ZGljIGxvYWRfYmFsYW5jZSB0cmlnZ2VyZCBhbmQgcHVsbAo+PiBTQ0hFRF9OT1JNQUwgaW4gcnEx IHRvIHJxMiwgYW5kIFNDSEVEX05PUk1BTCBsaWtlbHkgcHJlZW1wdHMgU0NIRURfSURMRS4KPj4K Pj4gSW4gdGhpcyBzY2VuYXJpbywgU0NIRURfSURMRSBpcyBydW5uaW5nIHdoaWxlIFNDSEVEX05P Uk1BTCBpcyB3YWl0aW5nIHRvIHJ1bi4KPj4gVGhlIGxhdGVuY3kgb2YgdGhpcyBTQ0hFRF9OT1JN QUwgd2lsbCBiZSBoaWdoIHdoaWNoIGlzIG5vdCBhY2NlcHRibGUuCj4+Cj4+IERvIGEgbG9hZF9i YWxhbmNlIGJlZm9yZSBydW5uaW5nIHRoZSBTQ0hFRF9JRExFIG1heSBmaXggdGhpcyBwcm9ibGVt Lgo+Pgo+PiBUaGlzIHBhdGNoIHdvcmtzIGFzIGJlbG93Ogo+Pgo+PiAgICAgICAgICAgICAgQ1BV MSAgICAgICAgICAgICAgICAgICAgICBDUFUyCj4+ICAgICAgICAgY3VyciAgICAgICBycTEgICAg ICAgICAgICBjdXJyICAgICAgICAgIHJxMgo+PiAgICAgICArLS0tLS0tKyB8ICstLS0tLS0rICAg ICAgICstLS0tLS0rIHwgKy0tLS0rICstLS0tKwo+PiB0MCAgICB8Tk9STUFMfCB8IHxOT1JNQUx8 ICAgICAgIHxOT1JNQUx8IHwgfElETEV8IHxJRExFfAo+PiAgICAgICArLS0tLS0tKyB8ICstLS0t LS0rICAgICAgICstLS0tLS0rIHwgKy0tLS0rICstLS0tKwo+Pgo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOT1JNQUwgZXhpdHMgb3IgYmxvY2tlZAo+PiAgICAgICArLS0tLS0t KyB8ICstLS0tLS0rICAgICAgICAgICAgICAgIHwgKy0tLS0rICstLS0tKwo+PiB0MSAgICB8Tk9S TUFMfCB8IHxOT1JNQUx8ICAgICAgICAgICAgICAgIHwgfElETEV8IHxJRExFfAo+PiAgICAgICAr LS0tLS0tKyB8ICstLS0tLS0rICAgICAgICAgICAgICAgIHwgKy0tLS0rICstLS0tKwo+Pgo+PiB0 MiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWNrX25leHRfdGFza19mYWlyIChhbGwgc2Ug YXJlIFNDSEVEX0lETEUpCj4+Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5l d2lkbGVfYmFsYW5jZQo+PiAgICAgICArLS0tLS0tKyB8ICAgICAgICAgICAgICAgICArLS0tLS0t KyB8ICstLS0tKyArLS0tLSsKPj4gdDMgICAgfE5PUk1BTHwgfCAgICAgICAgICAgICAgICAgfE5P Uk1BTHwgfCB8SURMRXwgfElETEV8Cj4+ICAgICAgICstLS0tLS0rIHwgICAgICAgICAgICAgICAg ICstLS0tLS0rIHwgKy0tLS0rICstLS0tKwo+Pgo+Pgo+PiB0MTogTk9STUFMIHRhc2sgaW4gQ1BV MiBleGl0cyBvciBibG9ja2VkCj4+IHQyOiBwaWNrX25leHRfdGFza19mYWlyIGNoZWNrIGFsbCBz ZSBpbiByYnRyZWUgYXJlIFNDSEVEX0lETEUgYW5kIGNhbGxzCj4+IG5ld2lkbGVfYmFsYW5jZSB3 aG8gdHJpZXMgdG8gcHVsbCBhIFNDSEVEX05PUk1BTChpZiBoYXMpLgo+PiB0MzogcGlja19uZXh0 X3Rhc2tfZmFpciB3b3VsZCBwaWNrIGEgU0NIRURfTk9STUFMIHRvIHJ1biBpbnN0ZWFkIG9mCj4+ IFNDSEVEX0lETEUobGlrZWx5KS4KPj4KPj4gPgo+PiA+PiBDUFUgYnkgZG9pbmcgbG9hZF9iYWxh bmNlIGZpcnN0Lgo+PiA+Pgo+PiA+PiBTaWduZWQtb2ZmLWJ5OiBDaGVuIFhpYW9ndWFuZyA8eGlh b2dnY2hlbkB0ZW5jZW50LmNvbT4KPj4gPj4gU2lnbmVkLW9mZi1ieTogQ2hlbiBIZSA8aGVkZGNo ZW5AdGVuY2VudC5jb20+Cj4+ID4+IC0tLQo+PiA+PiAga2VybmVsL3NjaGVkL2ZhaXIuYyB8IDUg KysrKysKPj4gPj4gIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKPj4gPj4KPj4gPj4g ZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9mYWlyLmMgYi9rZXJuZWwvc2NoZWQvZmFpci5jCj4+ ID4+IGluZGV4IGFlN2NlYmEuLjBhMjYxMzIgMTAwNjQ0Cj4+ID4+IC0tLSBhL2tlcm5lbC9zY2hl ZC9mYWlyLmMKPj4gPj4gKysrIGIva2VybmVsL3NjaGVkL2ZhaXIuYwo+PiA+PiBAQCAtNzAwNCw2 ICs3MDA0LDExIEBAIHN0cnVjdCB0YXNrX3N0cnVjdCAqCj4+ID4+ICAgICAgICAgc3RydWN0IHRh c2tfc3RydWN0ICpwOwo+PiA+PiAgICAgICAgIGludCBuZXdfdGFza3M7Cj4+ID4+Cj4+ID4+ICsg ICAgICAgaWYgKHByZXYgJiYKPj4gPj4gKyAgICAgICAgICAgZmFpcl9wb2xpY3kocHJldi0+cG9s aWN5KSAmJgo+PiA+Cj4+ID5XaHkgZG8geW91IG5lZWQgYSBwcmV2IGFuZCBmYWlyIHRhc2sgID8g WW91IHNlZW0gdG8gdGFyZ2V0IHRoZSBzcGVjaWFsCj4+ID5jYXNlIG9mIHBpY2tfbmV4dF90YXNr ICBidXQgaW4gdGhpcyBjYXNlIHdoeSBub3Qgb25seSB0ZXN0aW5nIHJmIT1udWxsCj4+ID4gdG8g bWFrZSBzdXJlIHRvIG5vdCByZXR1cm4gaW1tZWRpYXRlbHkgYWZ0ZXIganVtcGluZyB0byB0aGUg aWRsZQo+Pgo+PiA+bGFiZWw/Cj4+IFdlIGp1c3Qgd2FudCB0byBkbyBsb2FkX2JhbGFuY2Ugb25s eSB3aGVuIENQVSBzd2l0Y2hlcyBmcm9tIFNDSEVEX05PUk1BTAo+PiB0byBTQ0hFRF9JRExFLgo+ PiBJZiBub3QgY2hlY2sgcHJldiwgd2hlbiB0aGUgcnVubmluZyB0YXNrcyBhcmUgYWxsIFNDSEVE X0lETEUsIHdlIHdvdWxkCj4+IGRvIG5ld2lkbGVfYmFsYW5jZSBldmVyeXRpbWUgaW4gcGlja19u ZXh0X3Rhc2tfZmFpciwgaXQgbWFrZXMgbm8gc2Vuc2UKPj4gYW5kIGtpbmQgb2Ygd2FzdGluZy4K Pgo+SSBhZ3JlZSB0aGF0IGNhbGxpbmcgbmV3aWRsZV9iYWxhbmNlIGV2ZXJ5IHRpbWUgcGlja19u ZXh0X3Rhc2tfZmFpciBpcwo+Y2FsbGVkIHdoZW4gdGhlcmUgYXJlIG9ubHkgc2NoZWRfaWRsZSB0 YXNrcyBpcyB1c2VsZXNzLgo+QnV0IHlvdSBhbHNvIGhhdmUgdG8gdGFrZSBpbnRvIGFjY291bnQg Y2FzZXMgd2hlcmUgdGhlcmUgd2FzIGFub3RoZXIKPmNsYXNzIG9mIHRhc2sgcnVubmluZyBvbiB0 aGUgY3B1IGxpa2UgUlQgb25lLiBJbiB5b3VyIGV4YW1wbGUgYWJvdmUsCj5pZiB5b3UgcmVwbGFj ZSB0aGUgbm9ybWFsIHRhc2sgb24gQ1BVMiBieSBhIFJUIHRhc2ssIHlvdSBzdGlsbCB3YW50IHRv Cgo+cGljayB0aGUgbm9ybWFsIHRhc2sgb24gQ1BVMSBvbmNlIFJUIHRhc2sgZ29lcyB0byBzbGVl cC4KU3VyZSzCoHRoaXPCoGNhc2XCoHNob3VsZMKgYmXCoHRha2VuwqBpbnRvwqBhY2NvdW50LMKg wqB3ZcKgc2hvdWxkwqBhbHNvwqB0cnnCoHRvCnBpY2vCoG5vcm1hbMKgdGFza8KgaW7CoHRoaXPC oGNhc2UuCgo+Cj5Bbm90aGVyIHBvaW50IHRoYXQgeW91IHdpbGwgaGF2ZSB0byBjb25zaWRlciB0 aGUgaW1wYWN0IG9uCj5ycS0+aWRsZV9zdGFtcCBiZWNhdXNlIG5ld2lkbGVfYmFsYW5jZSBpcyBh c3N1bWVkIHRvIGJlIGNhbGxlZCBiZWZvcmUKCj5nb2luZyBpZGxlIHdoaWNoIGlzIG5vdCB0aGUg Y2FzZSBhbnltb3JlIHdpdGggeW91ciB1c2UgY2FzZQpZZXMuwqBycS0+aWRsZV9zdGFtcMKgc2hv dWxkwqBub3TCoGJlwqBjaGFuZ2VkwqBpbsKgdGhpc8KgY2FzZS4KCgoKQWN0dWFsbHnCoHdlwqB3 YW50wqB0b8KgcHVsbMKgYcKgU0NIRURfTk9STUFMIHRhc2vCoChpZsKgcG9zc2libGUpwqB0b8Kg cnVuwqB3aGVuwqBhwqBjcHXCoGlzCmFib3V0wqB0b8KgcnVuwqBTQ0hFRF9JRExFwqB0YXNrLsKg QnV0wqBjdXJyZW50bHnCoG5ld2lkbGVfYmFsYW5jZcKgaXPCoG5vdApkZXNpZ25lZMKgZm9ywqBT Q0hFRF9JRExFwqDCoHNvwqBTQ0hFRF9JRExFwqBjYW7CoGFsc2/CoGJlwqBwdWxsZWTCoHdoaWNo CmlzwqB1c2VsZXNzwqBpbsKgb3VywqBzaXR1YXRpb24uCgpTb8Kgd2XCoHBsYW7CoHRvwqBhZGTC oGHCoG5ld8KgZnVuY3Rpb27CoHNjaGVkX2lkbGVfYmFsYW5jZcKgd2hpY2jCoG9ubHnCoHRyecKg dG8KcHVsbMKgU0NIRURfTk9STUFMwqB0YXNrc8KgZnJvbcKgdGhlwqBidXNpZXN0wqBjcHUuIEFu ZMKgd2XCoHdpbGwgY2FsbMKgCnNjaGVkX2lkbGVfYmFsYW5jZcKgd2hlbsKgdGhlwqBwcmV2aW91 c8KgdGFza8KgaXPCoG5vcm1hbMKgb3LCoFJUwqBhbmQKaG9waW5nwqB3ZcKgY2FuwqBwdWxswqBh wqBTQ0hFRF9OT1JNQUzCoHRhc2vCoHRvwqBydW4uCgpEb8KgeW91wqB0aGlua8KgaXTCoGlzwqBv a8KgdG/CoGFkZMKgYcKgbmV3wqBzY2hlZF9pZGxlX2JhbGFuY2U/Cgo+Cj4+Cj4+ID4KPj4KPj4g PkFsc28gd2h5IG5vdCBkb2luZyB0aGF0IGZvciBkZWZhdWx0IGNhc2UgdG9vID8gaS5lLiBiYWxh bmNlX2ZhaXIoKSA/Cj4+IFlvdSBhcmUgcmlnaHQsIGlmIHlvdSB0aGluayB0aGlzIHNjZW5hcmlv IG1ha2VzIHNlbnNlLCB3ZSB3aWxsIHNlbmQgYQo+PiByZWZpbmVkIHBhdGNoIHNvb24gOi0pCj4+ Cj4+ID4KPj4gPj4gKyAgICAgICAgICAgc2NoZWRfaWRsZV9jcHUocnEtPmNwdSkpCj4+ID4+ICsg ICAgICAgICAgICAgICBnb3RvIGlkbGU7Cj4+ID4+ICsKPj4gPj4gIGFnYWluOgo+PiA+PiAgICAg ICAgIGlmICghc2NoZWRfZmFpcl9ydW5uYWJsZShycSkpCj4+ID4+ICAgICAgICAgICAgICAgICBn b3RvIGlkbGU7Cj4+ID4+IC0tCj4+ID4+IDEuOC4zLjEKPj4gPj4KPj4gPj4K