Received: by 10.192.165.148 with SMTP id m20csp3326619imm; Mon, 7 May 2018 10:17:53 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqE7KE4azHTXg0ktzZutsfgS2azQxjUXq9P5SP5m924nQZU55JpO1o3k1UzKCz8slrwrut7 X-Received: by 2002:a24:186:: with SMTP id 128-v6mr2250395itk.25.1525713473340; Mon, 07 May 2018 10:17:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525713473; cv=none; d=google.com; s=arc-20160816; b=yJ5dEbvNcdSsH2vjwzuqd/FJhUAwKAd7g+mlFd1kQy7cjw0zWcx0vpdQa+KmhBp0qn HB4sTLLndEM/bUopZHYHP+3EB7HVUo559OUeNr73P4W2Z/O0hN/MgzdC5SJkydNtv+Th /MlOZi5y2oz/qO6Fm6SWFP1BZ0wIoHgb2Zz4vz3jRPZnUNF71QAqL0k5wNMea9L10AHS jxhC0E4XIexWzX8MFtLys8IpbImBPI3UWsBVtnUxYnzZY1tW6IHsD8f8hk+m6bNnbGnK 9QuiB5DLKNv90yBleoPpI31waehjHRXCh15qPTVWXypfcSpc2F2xEslFT6hzyC6IWM34 AYDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=3fJpq0logC7fAIV/8hUZ8EnHlJM+DzVwBo2ZRskP7cI=; b=zKb3w2DUpfBl6+3+s8zJZ/53qzhANn1/qxu55IbIupz3ZEsgaYR71gcnqoFxRUM5Jp dTyVX3tKdCu9t+AexW3lY3XDVO+A16YV6X76joxf9H8gYOWXaJvDm/s6+vHElEDLXR// 7YFood0gXlqXOf5FhIHK7jkcI4NjzxwyESbcuSXv4gfaoUYaW8FGiF+vSjytsH5Lzgzo G1OeV6ExbEDf19IXk6AH8vr5GCGIiksoCSfXozAgyryfeaasNI7RLNpVfi5m4Bj3jB1A lCYItIphdsX5N4XCGN8u1BHJRKgHfrKiiE+m0/1722LaDjIKAWjw1eawdOzDXDzSTMtj s4zA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@LenovoBeijing.onmicrosoft.com header.s=selector1-lenovo-com header.b=DbP/R77X; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=lenovo.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k188-v6si19995498ioe.219.2018.05.07.10.17.39; Mon, 07 May 2018 10:17:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@LenovoBeijing.onmicrosoft.com header.s=selector1-lenovo-com header.b=DbP/R77X; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=lenovo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752352AbeEGRRN (ORCPT + 99 others); Mon, 7 May 2018 13:17:13 -0400 Received: from mail1.bemta12.messagelabs.com ([216.82.251.2]:58016 "EHLO mail1.bemta12.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751923AbeEGRRK (ORCPT ); Mon, 7 May 2018 13:17:10 -0400 Received: from [216.82.251.40] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-2.bemta-12.messagelabs.com id 85/50-15744-51A80FA5; Mon, 07 May 2018 17:17:09 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1WTfUxbVRjGe+73Ri+7FJDXZiyxOgWSNmMuy9U tRrMsuX+oMTMxyox4u125Df3Ae4uiJlqGTCl1kIWUQQsCU8aXQztGVrNgVmZks8sMOHSNG2MW dUigOqNkxGEvt5v6z8nvPc/znvOck3MY3PQebWakGq+kuEWnhVpPyL/MYtY8f6psS2+Y58PDQ xTfMybzrbUXaX4w8hQ/9XmY4q8OrZL8qY/HMP7XP3txvn48SvChdxdJPlR7CPEry2HqcaMwvr CEC9FPBjDhRF+JEBlooITI74dpYeLICiH8NpcghHjXWVo48fVbwslbjwn1f+ULNyObnjGWkQ6 33VPzMil/v7hMV13aWdM6fRD3odQOP1rPmLgkgkTbHNKLMwiuHGqitYLgAjgMx/2ErjRhULfa R+nFDwiO3jhP+tE6huKK4dzCNO5HDJPHFcHCyFbNg3MzBPS1RChtPpfbC4MXHtLsedyL0BmqQ zo/B7GrCVpjgnsAjn3zKaUxm/ZcHmwg9b2mcTjzd+uaaR23E748MIFpjLhCCF6fWWOcK4COYP taHuA4+Oj0RVznfLjx421Sy4C4PbA48pI+bYHo1MGMpRAmP2xEOjeTsBou17kUvur/AtcyANd AwYGOMVIvRhEcOx7GdFcJtEbjGa6EiWQqwzugfz6VCbQJBj6YJfTmfhyafcGMsBFCLddQM7K1 /+cQOpdAp28F0/k+aGmcpdvXbiYHzrUliS5EDKAiVVJekxTrtu02u+KokL0u0eG0lpZutbkkV RUrJKdoV237PK4ISj/EdwwGdApd6t4bQ/cymCWfzbq2VGbKtnv2vyGLqlyuVDslNYY2MowF2G /fT5WZchSpQqp5xeFMv+Y7MjBGSx57UpNZtUp0qY4KXTqPHmGCvYEAzgyNHE6PyalgADcRbo9 bMhewSa2B0xrkavfd5e78j0lUaM5lkcFgMBmrJMXl8P5fn0cFDLLkske1VYwOt/furvPpQFg6 UI52Flb1iv9KZh96Qo73LG/5qehhJfZHDzEy15148vXKiXAjXLn/0aynd69+Zh6/2cy/fXv/6 HfbN5/tZYs764att2IXCmnb5ZBvsq2yQXlww0y9Zz5C/ZxtrztdXT7aJC4lX90c2xVgzLtr39 xw5IVE8eJ1LLty3/Pd1qxnXfFtx6PRqtg9Sx3ZK127LIQqi6UluKKK/wDdfp9kGgQAAA== X-Env-Sender: yehs1@lenovo.com X-Msg-Ref: server-12.tower-168.messagelabs.com!1525713426!68855537!1 X-Originating-IP: [104.232.225.2] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.9.15; banners=-,-,- X-VirusChecked: Checked Received: (qmail 69802 invoked from network); 7 May 2018 17:17:08 -0000 Received: from unknown (HELO maesmtp01.lenovo.com) (104.232.225.2) by server-12.tower-168.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 7 May 2018 17:17:08 -0000 Received: from USEXEDGE01.lenovo.com (unknown [10.62.65.4]) by maesmtp01.lenovo.com with smtp (TLS: TLSv1/SSLv3,256bits,ECDHE-RSA-AES256-SHA) id 021d_97f7_ea743eba_0900_4828_8d86_2158b6d5b886; Mon, 07 May 2018 17:16:58 +0000 Received: from APC01-PU1-obe.outbound.protection.outlook.com (65.55.88.16) by USEXEDGE01.lenovo.com (10.62.65.4) with Microsoft SMTP Server (TLS) id 14.3.123.3; Mon, 7 May 2018 13:16:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=LenovoBeijing.onmicrosoft.com; s=selector1-lenovo-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=3fJpq0logC7fAIV/8hUZ8EnHlJM+DzVwBo2ZRskP7cI=; b=DbP/R77XdJVFeT0BNH2mUtWh+USM/CAHq4r7yhih3R3LE72ETrGnHeLGrco7wCE68FAyyxvZrD6H9d2GGM+aeXCL6FTM6IZSxDS1hd1Z7ZY1fZnGOiGUMzGnW7GTL32KsS88WslXp2HEGi+7KUcwKeo14fwX9nhcRK35FoizEpo= Received: from HK2PR03MB1684.apcprd03.prod.outlook.com (10.165.178.14) by HK2PR03MB0868.apcprd03.prod.outlook.com (10.161.188.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.755.10; Mon, 7 May 2018 17:16:51 +0000 Received: from HK2PR03MB1684.apcprd03.prod.outlook.com ([fe80::d87a:89b7:f377:f5d]) by HK2PR03MB1684.apcprd03.prod.outlook.com ([fe80::d87a:89b7:f377:f5d%4]) with mapi id 15.20.0755.012; Mon, 7 May 2018 17:16:50 +0000 From: Huaisheng HS1 Ye To: Matthew Wilcox CC: Michal Hocko , "akpm@linux-foundation.org" , "linux-mm@kvack.org" , "vbabka@suse.cz" , "mgorman@techsingularity.net" , "pasha.tatashin@oracle.com" , "alexander.levin@verizon.com" , "hannes@cmpxchg.org" , "penguin-kernel@I-love.SAKURA.ne.jp" , "colyli@suse.de" , NingTing Cheng , "linux-kernel@vger.kernel.org" Subject: RE: [External] Re: [PATCH 2/3] include/linux/gfp.h: use unsigned int in gfp_zone Thread-Topic: [External] Re: [PATCH 2/3] include/linux/gfp.h: use unsigned int in gfp_zone Thread-Index: AQHT46zY0MF6WC61BUed7IoviL30RKQftP0AgAKu3ZCAAFaOAIAAIzywgAAyoACAAV5skA== Date: Mon, 7 May 2018 17:16:50 +0000 Message-ID: References: <1525416729-108201-1-git-send-email-yehs1@lenovo.com> <1525416729-108201-3-git-send-email-yehs1@lenovo.com> <20180504133533.GR4535@dhcp22.suse.cz> <20180504154004.GB29829@bombadil.infradead.org> <20180506134814.GB7362@bombadil.infradead.org> <20180506185532.GA13604@bombadil.infradead.org> In-Reply-To: <20180506185532.GA13604@bombadil.infradead.org> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [123.120.83.217] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;HK2PR03MB0868;7:l0Xrlbj1gq+XkTKCE7hZFowJvwChgfytUr67ggu4818f7O1w8D0/y2hpHtnKTD8tVe4//l3+3fHTi9IUEyIVI6CJGC5K5WWiNFWr6IiZiVmiSHZJ8LRjefLGsD1/PSNZI+iITQV1ZQoWyURfmJcomKualAoC1sKEBHzITZNOfdZl0fjcjZeGVzpMwPQT54udd4bXLBkjYfqLZhe3Vu3sAmx4n2O9WcZunzjMyQMHai3MKhPOnjhkb73gmZo1+8C4;20:juKFVZIT8YpNCafY3KrSg6R+En+QHSW6BrUe4NadW1bQbpFx9pNeLRi7mWtDBh20MxZGkV/eLMDu3K5h/7u544nboV5xavS00iqyFoe6rI20AhmpOyxNTl8FceIRoVrc0SwJQObTmSXvD1CWhpXhk12Qij6+GjLJF44w+ieKZ1RhicZD4khq1dpqjiub4GIf/D/dAPRVYwgBRxks7eiaTPmgERMLNsXNCLGuTVG8b99hJHNwKKCrD9NbpMc05kmYpQkuIWdJNRcVkQFVq8R+eGrSTN/DDvRxjjAZ0fCWUxR2Kys1a5IkXf4kippzYte3PCijgUL65s0yaBM5v+6qAg== x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-forefront-antispam-report: SFV:SKI;SCL:-1;SFV:NSPM;SFS:(10019020)(376002)(396003)(39850400004)(346002)(39380400002)(366004)(199004)(189003)(476003)(3846002)(33656002)(11346002)(99286004)(102836004)(5250100002)(186003)(26005)(76176011)(53936002)(7696005)(59450400001)(6506007)(6116002)(7736002)(229853002)(105586002)(106356001)(316002)(74316002)(6436002)(305945005)(5660300001)(7416002)(66066001)(6916009)(486006)(446003)(54906003)(86362001)(2900100001)(413944005)(25786009)(97736004)(14454004)(8936002)(2906002)(3280700002)(4326008)(55016002)(9686003)(81166006)(81156014)(3660700001)(8676002)(93886005)(478600001)(6246003)(68736007)(9126004);DIR:OUT;SFP:1102;SCL:1;SRVR:HK2PR03MB0868;H:HK2PR03MB1684.apcprd03.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:HK2PR03MB0868; x-ms-traffictypediagnostic: HK2PR03MB0868: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(158342451672863); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123562045)(6072148)(201708071742011);SRVR:HK2PR03MB0868;BCL:0;PCL:0;RULEID:;SRVR:HK2PR03MB0868; x-forefront-prvs: 066517B35B received-spf: None (protection.outlook.com: lenovo.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: wortlpvVoVFIuM6Fowi3nxl174dJUvQ4VzK+APtKbSfuT3I5FFr1r+R+lsnCQ65gdfNLAUcM8R1HwEDGBpgDP1duiBair9n5hkupx3g/5LKma86XwLPyFoGUWXGQAhkOfiZNSFfijHRp7iRjaJP10fNCbVjUtbxGFFVrb29FMRB9caZVbfsRkbwsPN83ya34 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: e901e31d-5188-45da-e629-08d5b43e5253 X-MS-Exchange-CrossTenant-Network-Message-Id: e901e31d-5188-45da-e629-08d5b43e5253 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2018 17:16:50.3273 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5c7d0b28-bdf8-410c-aa93-4df372b16203 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2PR03MB0868 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RGVhciBNYXR0aGV3LA0KDQpJIHdpbGwgdHJ5IHRvIGV4cGxhaW4gdGhlbSBpbiBkZXB0aC4gQ29y cmVjdCBtZSBpZiBhbnl0aGluZyB3cm9uZy4NCj4gDQo+IE9uIFN1biwgTWF5IDA2LCAyMDE4IGF0 IDA0OjE3OjA2UE0gKzAwMDAsIEh1YWlzaGVuZyBIUzEgWWUgd3JvdGU6DQo+ID4gVXBsb2FkIG15 IGN1cnJlbnQgcGF0Y2ggYW5kIHRlc3RpbmcgcGxhdGZvcm0gaW5mbyBmb3IgcmVmZXJlbmNlLiBU aGlzIHBhdGNoDQo+IGhhcyBiZWVuIHRlc3RlZA0KPiA+IG9uIGEgdHdvIHNvY2tldHMgcGxhdGZv cm0uDQo+IA0KPiBUaGFuayB5b3UhDQpNeSBwbGVhc3VyZS4NCg0KPiA+IEl0IHdvcmtzLCBidXQg c29tZSBkcml2ZXJzIG9yIHN1YnN5c3RlbSBzaGFsbCBiZSBtb2RpZmllZCB0byBmaXQNCj4gPiB0 aGVzZSBuZXcgdHlwZSBfX0dGUCBmbGFncy4NCj4gPiBUaGV5IHVzZSB0aGVzZSBmbGFncyBkaXJl Y3RseSB0byByZWFsaXplIGJpdCBtYW5pcHVsYXRpb25zIGxpa2UgdGhpcw0KPiA+IGJlbG93Lg0K PiA+DQo+ID4gZWcuDQo+ID4gc3dpb3RsYi14ZW4uYyAoZHJpdmVyc1x4ZW4pOiAgICBmbGFncyAm PSB+KF9fR0ZQX0RNQSB8IF9fR0ZQX0hJR0hNRU0pOw0KPiA+IGV4dGVudF9pby5jIChmc1xidHJm cyk6ICAgICAgICAgbWFzayAmPSB+KF9fR0ZQX0RNQTMyfF9fR0ZQX0hJR0hNRU0pOw0KPiA+DQo+ ID4gQmVjYXVzZSBvZiB0aGVzZSBmbGFncyBoYXZlIGJlZW4gZW5jb2RlZCB3aXRoaW4gdGhpcyBw YXRjaCwgdGhlDQo+ID4gYWJvdmUgb3BlcmF0aW9ucyBjYW4gY2F1c2UgcHJvYmxlbS4NCj4gDQo+ IEkgZG9uJ3QgdGhpbmsgdGhpcyBhY3R1YWxseSBjYXVzZXMgcHJvYmxlbXMuICBBdCBsZWFzdCwg bm8gYWRkaXRpb25hbA0KPiBwcm9ibGVtcy4gIFRoZXNlIHVzZXJzIHdpbGwgc3VjY2Vzc2Z1bGx5 IGNsZWFyIF9fR0ZQX0RNQSBhbmQNCj4gX19HRlBfSElHSE1FTQ0KPiBubyBtYXR0ZXIgd2hhdCB2 YWx1ZXMgR0ZQX0RNQSBhbmQgR0ZQX0hJR0hNRU0gaGF2ZTsgdGhlIG9ubHkgcHJvYmxlbQ0KPiB3 aWxsIGJlIGlmIHNvbWVvbmUgY2FsbHMgdGhlbSB3aXRoIGEgem9uZSB0eXBlIHRoZXkncmUgbm90 IGV4cGVjdGluZyAoZWcgRE1BMzINCj4gZm9yIHRoZSBmaXJzdCBvbmUgb3IgRE1BIGZvciB0aGUg c2Vjb25kOyBvciBNT1ZBQkxFIGZvciBlaXRoZXIgb2YgdGhlbSkuDQo+IFRoZSB0aGluZyBpcywg dGhleSdyZSBhbHJlYWR5IGJ1Z2d5IGluIHRob3NlIGNpcmN1bXN0YW5jZXMuDQoNCkkgaG9wZSBp dCBjb3VsZG4ndCBjYXVzZSBwcm9ibGVtLCBidXQgYmFzZWQgb24gbXkgYW5hbHl6YXRpb24gaXQg aGFzIHRoZSBwb3RlbnRpYWwgdG8gZ28gd3JvbmcgaWYgdXNlcnMgc3RpbGwgdXNlIHRoZSBmbGFn cyBhcyB1c3VhbCwgd2hpY2ggYXJlIF9fR0ZQX0RNQSwgX19HRlBfRE1BMzIgYW5kIF9fR0ZQX0hJ R0hNRU0uDQpMZXQgbWUgdGFrZSBhbiBleGFtcGxlIHdpdGggbXkgdGVzdGluZyBwbGF0Zm9ybSwg dGhlc2UgbG9naWNzIGFyZSBtdWNoIGFic3RyYWN0LCBhbiBleGFtcGxlIHdpbGwgYmUgaGVscGZ1 bC4NCg0KVGhlcmUgaXMgYSB0d28gc29ja2V0cyBYODZfNjQgc2VydmVyLCBObyBISUdITUVNIGFu ZCBpdCBoYXMgMTYgKyAxNkdCIG1lbW9yaWVzLg0KSXRzIHpvbmUgdHlwZXMgc2hhbGwgYmUgbGlr ZSB0aGlzIGJlbG93LA0KDQpaT05FX0RNQQkJCQkwCQkwYjAwMDANClpPTkVfRE1BMzIJCQkJMQkJ MGIwMDAxDQpaT05FX05PUk1BTAkJCTIJCTBiMDAxMA0KKE9QVF9aT05FX0hJR0hNRU0pCTIJCTBi MDAxMA0KWk9ORV9NT1ZBQkxFCQkJMwkJMGIwMDExDQpaT05FX0RFVklDRQkJCQk0CQkwYjAxMDAg KHZpcnR1YWwgem9uZSkNCl9fTUFYX05SX1pPTkVTCQk1DQoNCl9fR0ZQX0RNQQkJPSBaT05FX0RN QSAgICAJCQleIFpPTkVfTk9STUFMPSAwYjAwMTANCl9fR0ZQX0RNQTMyCQk9IFpPTkVfRE1BMzIg IAkJXiBaT05FX05PUk1BTD0gMGIwMDExDQpfX0dGUF9ISUdITUVNID0gT1BUX1pPTkVfSElHSE1F TSBeIFpPTkVfTk9STUFMID0gMGIwMDAwDQpfX0dGUF9NT1ZBQkxFCT0gWk9ORV9NT1ZBQkxFIF4g Wk9ORV9OT1JNQUwgfCBfX19HRlBfTU9WQUJMRSA9IDBiMTAwMQ0KDQpFZy4NCklmIGEgZHJpdmVy IHVzZXMgZmxhZ3MgbGlrZSB0aGlzIGJlbG93LA0KU3RlcCAxOg0KZ2ZwX21hc2sgIHwgIF9fR0ZQ X0RNQTMyOwkNCigwYiAwMDAwCQl8CTBiIDAwMTEJPSAwYiAwMDExKQ0KZ2ZwX21hc2sncyBsb3cg Zm91ciBiaXRzIHNoYWxsIGVxdWFsIHRvIDAwMTEsIGFzc3VtaW5nIG5vIF9fR0ZQX01PVkFCTEUN Cg0KU3RlcCAyOg0KZ2ZwX21hc2sgICYgfl9fR0ZQX0RNQTsJDQooMGIgMDAxMQkgJiB+MGIwMDEw ICAgPSAwYjAwMDEpDQpnZnBfbWFzaydzIGxvdyBmb3VyIGJpdHMgc2hhbGwgZXF1YWwgdG8gMDAw MSBub3csIHRoZW4gd2hlbiBpdCBlbnRlciBnZnBfem9uZSgpLA0KDQpyZXR1cm4gKChfX2ZvcmNl IGludClmbGFncyAmIF9fX0dGUF9aT05FX01BU0spIF4gWk9ORV9OT1JNQUw7DQooMGIwMDAxIF4g MGIwMDEwID0gMGIwMDExKQ0KWW91IGtub3cgMDAxMSBtZWFucyB0aGF0IFpPTkVfTU9WQUJMRSB3 aWxsIGJlIHJldHVybmVkLg0KSW4gdGhpcyBjYXNlLCBlcnJvciBjYW4gYmUgZm91bmQsIGJlY2F1 c2UgZ2ZwX21hc2sgbmVlZHMgdG8gZ2V0IFpPTkVfRE1BMzIgb3JpZ2luYWxseS4NCkJ1dCB3aXRo IGV4aXN0aW5nIEdGUF9aT05FX1RBQkxFL0JBRCwgaXQgaXMgY29ycmVjdC4gQmVjYXVzZSB0aGUg Yml0cyBhcmUgd2F5IG9mIDB4MSwgMHgyLCAweDQsIDB4OA0KDQpJIGp1c3Qgd2FudCB0byBzaG93 IGEgY2FzZSBvZiBmYWlsdXJlLCBwbGVhc2UgZG9uJ3QgYmxhbWUgbWUgdGhhdCB1c2UgY2FzZSB3 YXMgaW52ZW50ZWQuDQpBZ2FpbiwgeW91ciBpZGVhIGlzIGdyZWF0IGluIG15IGV5ZXMsIHdoaWNo IGhhcyBtdWNoIGFkdmFudGFnZXMgdGhhbiBaT05FX1RBQkxFL0JBRC4NCkJ1dCBpZiB3ZSB1c2Ug dGhpcyBpZGVhLCB0aGF0IG1lYW5zIG90aGVyIHN1YnN5c3RlbSBvciBkcml2ZXIgc2hhbGwgbm90 IHVzZSB0aGUgZmxhZ3MgYXMgZXhpc3Rpbmcgd2F5Lg0KT2YgY291cnNlLCB0aGlzIGxpbWl0YXRp b24gb25seSBleGlzdHMgaW4gbG93IDMgYml0cyBvZiBnZnBfdC4gVGhlIHJlbWFpbmluZyBoaWdo IGJpdHMgY2FuIGJlIHVzZWQgYXMgdXN1YWwuDQoNClRoaXMgaXMgbXkgb3BpbmlvbiwgbWF5YmUg aXQgaXMgbm90IGFjY3VyYXRlLCBidXQgSSByZWFsbHkgd29ycnkgYWJvdXQgaXQuDQoNCj4gPiAg ICovDQo+ID4gLSNkZWZpbmUgX19HRlBfRE1BICAgICAgKChfX2ZvcmNlIGdmcF90KV9fX0dGUF9E TUEpDQo+ID4gLSNkZWZpbmUgX19HRlBfSElHSE1FTSAgKChfX2ZvcmNlIGdmcF90KV9fX0dGUF9I SUdITUVNKQ0KPiA+IC0jZGVmaW5lIF9fR0ZQX0RNQTMyICAgICgoX19mb3JjZSBnZnBfdClfX19H RlBfRE1BMzIpDQo+ID4gKyNkZWZpbmUgX19HRlBfRE1BICAgICAgKChfX2ZvcmNlIGdmcF90KU9Q VF9aT05FX0RNQSBeDQo+IFpPTkVfTk9STUFMKQ0KPiA+ICsjZGVmaW5lIF9fR0ZQX0hJR0hNRU0g ICgoX19mb3JjZSBnZnBfdClaT05FX01PVkFCTEUgXg0KPiBaT05FX05PUk1BTCkNCj4gPiArI2Rl ZmluZSBfX0dGUF9ETUEzMiAgICAoKF9fZm9yY2UgZ2ZwX3QpT1BUX1pPTkVfRE1BMzIgXg0KPiBa T05FX05PUk1BTCkNCj4gPiAgI2RlZmluZSBfX0dGUF9NT1ZBQkxFICAoKF9fZm9yY2UgZ2ZwX3Qp X19fR0ZQX01PVkFCTEUpICAvKg0KPiBaT05FX01PVkFCTEUgYWxsb3dlZCAqLw0KPiBbLi4uXQ0K PiA+ICBzdGF0aWMgaW5saW5lIGVudW0gem9uZV90eXBlIGdmcF96b25lKGdmcF90IGZsYWdzKQ0K PiA+IHsNCj4gPiAgICAgICAgIGVudW0gem9uZV90eXBlIHo7DQo+ID4gLSAgICAgICBpbnQgYml0 ID0gKF9fZm9yY2UgaW50KSAoZmxhZ3MgJiBHRlBfWk9ORU1BU0spOw0KPiA+ICsgICAgICAgeiA9 ICgoX19mb3JjZSB1bnNpZ25lZCBpbnQpZmxhZ3MgJiBfX19HRlBfWk9ORV9NQVNLKSBeDQo+IFpP TkVfTk9STUFMOw0KPiA+DQo+ID4gLSAgICAgICB6ID0gKEdGUF9aT05FX1RBQkxFID4+IChiaXQg KiBHRlBfWk9ORVNfU0hJRlQpKSAmDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoKDEgPDwgR0ZQX1pPTkVTX1NISUZUKSAtIDEpOw0KPiA+IC0gICAgICAgVk1f QlVHX09OKChHRlBfWk9ORV9CQUQgPj4gYml0KSAmIDEpOw0KPiA+ICsgICAgICAgaWYgKHogPiBP UFRfWk9ORV9ISUdITUVNKSB7DQo+ID4gKyAgICAgICAgICAgICAgIHogPSBPUFRfWk9ORV9ISUdI TUVNICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAhISgoX19mb3JjZSB1bnNpZ25lZCBp bnQpZmxhZ3MgJiBfX19HRlBfTU9WQUJMRSk7DQo+ID4gKyAgICAgICB9DQo+ID4gICAgICAgICBy ZXR1cm4gejsNCj4gPiAgfQ0KPiANCj4gSG93IGFib3V0Og0KPiANCj4gKyNkZWZpbmUgX19HRlBf SElHSE1FTSAgKChfX2ZvcmNlIGdmcF90KU9QVF9aT05FX0hJR0hNRU0gXg0KPiBaT05FX05PUk1B TCkNCj4gLSNkZWZpbmUgX19HRlBfTU9WQUJMRSAgKChfX2ZvcmNlIGdmcF90KV9fX0dGUF9NT1ZB QkxFKSAgLyoNCj4gWk9ORV9NT1ZBQkxFIGFsbG93ZWQgKi8NCj4gKyNkZWZpbmUgX19HRlBfTU9W QUJMRSAgKChfX2ZvcmNlIGdmcF90KVpPTkVfTU9WQUJMRSBeDQo+IFpPTkVfTk9STUFMIHwgXA0K PiArCQkJCQlfX19HRlBfTU9WQUJMRSkNCj4gDQo+IFRoZW4gSSB0aGluayB5b3UgY2FuIGp1c3Qg bWFrZSBpdDoNCj4gDQo+IHN0YXRpYyBpbmxpbmUgZW51bSB6b25lX3R5cGUgZ2ZwX3pvbmUoZ2Zw X3QgZmxhZ3MpDQo+IHsNCj4gCXJldHVybiAoKF9fZm9yY2UgaW50KWZsYWdzICYgX19fR0ZQX1pP TkVfTUFTSykgXiBaT05FX05PUk1BTDsNCj4gfQ0KU29ycnksIEkgdGhpbmsgaXQgaGFzIHJpc2sg aW4gdGhpcyB3YXksIGxldCBtZSBpbnRyb2R1Y2UgYSBmYWlsdXJlIGNhc2UgZm9yIGV4YW1wbGUu DQoNCk5vdyBzdXBwb3NlIHRoYXQsIHRoZXJlIGlzIGEgZmxhZyBzaG91bGQgcmVwcmVzZW50IERN QSBmbGFnIHdpdGggbW92YWJsZS4NCkl0IHNob3VsZCBiZSBsaWtlIHRoaXMgYmVsb3csDQpfX0dG UF9ETUEgfCBfX0dGUF9NT1ZBQkxFDQooMGIgMDAxMCAgICAgICB8ICAgMGIgMTAwMSAgID0gMGIg MTAxMSkNCk5vcm1hbGx5LCBnZnBfem9uZSBzaGFsbCByZXR1cm4gWk9ORV9ETUEgYnV0IHdpdGgg TU9WQUJMRSBwb2xpY3ksIHJpZ2h0Pw0KQnV0IHdpdGggeW91ciBjb2RlLCBnZnBfem9uZSB3aWxs IHJldHVybiBaT05FX0RNQTMyIHdpdGggTU9WQUJMRSBwb2xpY3kuDQooMGIgMTAxMSAgXiAgMGIg MDAxMCA9IDEwMDEpDQoNCllvdSBjYW4gZmluZCB0aGF0IHNvbWV0aGluZyB3cm9uZyBoYXBwZW5z LCBzbyB0aGF0IGlzIHdoeSBJIG1ha2UgZ2ZwX3pvbmUgbW9yZSBjb21wbGljYXRlZCB0aGFuIHlv dXJzLg0KDQo+ID4gQEAgLTM3MCw0MiArMzY4LDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBnZnBm bGFnc19hbGxvd19ibG9ja2luZyhjb25zdA0KPiBnZnBfdCBnZnBfZmxhZ3MpDQo+ID4gICNlcnJv ciBHRlBfWk9ORVNfU0hJRlQgdG9vIGxhcmdlIHRvIGNyZWF0ZSBHRlBfWk9ORV9UQUJMRSBpbnRl Z2VyDQo+ID4gICNlbmRpZg0KPiANCj4gWW91IHNob3VsZCBiZSBhYmxlIHRvIGRlbGV0ZSBHRlBf Wk9ORVNfU0hJRlQgdG9vLg0KWWVzLCB5b3UgYXJlIHJpZ2h0Lg0KDQpTaW5jZXJlbHksDQpIdWFp c2hlbmcgWWUgfCDStruzyqQNCkxpbnV4IGtlcm5lbCB8IExlbm92bw0KDQoNCg==