Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2679690imm; Wed, 16 May 2018 17:51:02 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoQvzTHm9E5s8IukKzRgWcn7BBmQrx5QmKBT43kXunhKbBCedwZ2lIP41Mtmldsf2FSqywN X-Received: by 2002:a62:415d:: with SMTP id o90-v6mr3145529pfa.140.1526518262114; Wed, 16 May 2018 17:51:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526518262; cv=none; d=google.com; s=arc-20160816; b=b+ZWWMLsCldh1XfA2LViAsqffE7jN8w62qnfV0FGNI7/EG5sRURJnaN9DLT/P3nssT plJvZ7x6tdBbJYrPf4AOmzQLb7VC4W3lZu6Rq9ddeGJ4CEMw80BXY7+B6Sq0GfFouctE fxgvvqJqsGqUczXXDv5xr6yUvoB+pNGRS/97QDKUnTlLbK6FDmwOhthCKWJST0O7ygfq xqGXd4putdeNCMbvB6wSeLYDDMu4AfvB8jQZqQsS3oV2lp8VxOAx5UF6wMSxglRuY1Cj TZXfOHrMqaGC7+Hi72Tk4K31DqwtuJqZ4d3pMaaoP4XgSqzgwmbeUmojbevmjyv6xRgw KLtw== 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 :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from :arc-authentication-results; bh=T15IpMRrOougQC2b2CGhVi/CEsjdg41o2AfN4EXC1Xk=; b=NWgpxt3FcGbeTPdfKAR/FNJzjYgrw9QdLuqHhppex+vcaRFFrh1GgPe3QJhzAZyhpE S3miZQW+DMNhin7OROsXIZwvB2w+JKWtmemGqC+7ZMIn4BXx8xtrjg2zw0tNenUAI63T DIln/mCBHQcnq9wBjVzrOxV7tQ1PELPdoOPBr3onilbvFZSnRP3kLi+h/3zEiIMbvjDo +jM7xFcT2n635MgpaR4tp4UhIkyscSwcJiw9PGyU/CMKsEZkkabSgaOHQ9oCQtJKOcve qnTHt/trYUtOJXwimMb71AtGZJtamjMlryadSmsbKGdjC79WKlQxg8rxCBVphhSNNQY5 yxBA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b29-v6si377012pge.638.2018.05.16.17.50.47; Wed, 16 May 2018 17:51:02 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751665AbeEQAui (ORCPT + 99 others); Wed, 16 May 2018 20:50:38 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]:5928 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751163AbeEQAug (ORCPT ); Wed, 16 May 2018 20:50:36 -0400 Received: from DGGEMM402-HUB.china.huawei.com (unknown [172.30.72.54]) by Forcepoint Email with ESMTP id 5CD3E1BD959FC; Thu, 17 May 2018 08:50:31 +0800 (CST) Received: from DGGEMM421-HUB.china.huawei.com (10.1.198.38) by DGGEMM402-HUB.china.huawei.com (10.3.20.210) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 17 May 2018 08:50:32 +0800 Received: from DGGEMM506-MBX.china.huawei.com ([169.254.3.77]) by dggemm421-hub.china.huawei.com ([10.1.198.38]) with mapi id 14.03.0361.001; Thu, 17 May 2018 08:50:24 +0800 From: "liwei (CM)" To: Rob Herring CC: "mark.rutland@arm.com" , "catalin.marinas@arm.com" , "will.deacon@arm.com" , "vinholikatti@gmail.com" , "jejb@linux.vnet.ibm.com" , "martin.petersen@oracle.com" , "khilman@baylibre.com" , "arnd@arndb.de" , "gregory.clement@free-electrons.com" , "thomas.petazzoni@free-electrons.com" , "yamada.masahiro@socionext.com" , "riku.voipio@linaro.org" , "treding@nvidia.com" , "krzk@kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-scsi@vger.kernel.org" , zangleigang , Gengjianfeng , "guodong.xu@linaro.org" Subject: =?utf-8?B?562U5aSNOiDnrZTlpI06IFtQQVRDSCB2OSAyLzVdIGR0LWJpbmRpbmdzOiBz?= =?utf-8?Q?csi:_ufs:_add_document_for_hisi-ufs?= Thread-Topic: =?utf-8?B?562U5aSNOiBbUEFUQ0ggdjkgMi81XSBkdC1iaW5kaW5nczogc2NzaTogdWZz?= =?utf-8?Q?:_add_document_for_hisi-ufs?= Thread-Index: AQHT28v7/h3YBf0xYUW3C4WFP2HrR6QP5HOAgCIN+gCAAUceYA== Date: Thu, 17 May 2018 00:50:23 +0000 Message-ID: <1699CE87DE933F49876AD744B5DC140FA63AC2@DGGEMM506-MBX.china.huawei.com> References: <20180417140814.38098-1-liwei213@huawei.com> <20180417140814.38098-3-liwei213@huawei.com> <20180424125827.k2dgeu6uon75wzni@rob-hp-laptop> <1699CE87DE933F49876AD744B5DC140FA5AC86@DGGEMM506-MBS.china.huawei.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.189.155.72] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGksIFJvYg0KDQotLS0tLemCruS7tuWOn+S7ti0tLS0tDQrlj5Hku7bkuro6IFJvYiBIZXJyaW5n IFttYWlsdG86cm9iaEBrZXJuZWwub3JnXSANCuWPkemAgeaXtumXtDogMjAxOOW5tDXmnIgxNuaX pSAyMToxNg0K5pS25Lu25Lq6OiBsaXdlaSAoQ00pDQrmioTpgIE6IG1hcmsucnV0bGFuZEBhcm0u Y29tOyBjYXRhbGluLm1hcmluYXNAYXJtLmNvbTsgd2lsbC5kZWFjb25AYXJtLmNvbTsgdmluaG9s aWthdHRpQGdtYWlsLmNvbTsgamVqYkBsaW51eC52bmV0LmlibS5jb207IG1hcnRpbi5wZXRlcnNl bkBvcmFjbGUuY29tOyBraGlsbWFuQGJheWxpYnJlLmNvbTsgYXJuZEBhcm5kYi5kZTsgZ3JlZ29y eS5jbGVtZW50QGZyZWUtZWxlY3Ryb25zLmNvbTsgdGhvbWFzLnBldGF6em9uaUBmcmVlLWVsZWN0 cm9ucy5jb207IHlhbWFkYS5tYXNhaGlyb0Bzb2Npb25leHQuY29tOyByaWt1LnZvaXBpb0BsaW5h cm8ub3JnOyB0cmVkaW5nQG52aWRpYS5jb207IGtyemtAa2VybmVsLm9yZzsgZGV2aWNldHJlZUB2 Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsgbGludXgtc2NzaUB2Z2VyLmtlcm5lbC5vcmc7IHph bmdsZWlnYW5nOyBHZW5namlhbmZlbmc7IGd1b2RvbmcueHVAbGluYXJvLm9yZw0K5Li76aKYOiBS ZTog562U5aSNOiBbUEFUQ0ggdjkgMi81XSBkdC1iaW5kaW5nczogc2NzaTogdWZzOiBhZGQgZG9j dW1lbnQgZm9yIGhpc2ktdWZzDQoNCk9uIFR1ZSwgQXByIDI0LCAyMDE4IGF0IDg6NTQgQU0sIGxp d2VpIChDTSkgPGxpd2VpMjEzQGh1YXdlaS5jb20+IHdyb3RlOg0KPiBIaSwgUm9iDQo+DQo+IFRo YW5rcyBmb3IgeW91ciBwYXRpZW5jZS4NCj4NCj4gSGksIEFybmQNCj4NCj4gRnJvbSBSb2IncyBz dWdnZXN0aW9uLCB3ZSBoYXZlIHRvIGxpc3QgdGhlIHByb3BlcnRpZXMgbm9kZSBpbiB1ZnMtaGlz aS50eHQgYmluZ2luZ3MgZXZlbiBpZiBkb2N1bWVudGVkIGluIHRoZSBjb21tb24gYmluZGluZy4N Cj4NCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IFJvYiBIZXJyaW5nIFtt YWlsdG86cm9iaEBrZXJuZWwub3JnXQ0KPiDlj5HpgIHml7bpl7Q6IDIwMTjlubQ05pyIMjTml6Ug MjA6NTgNCj4g5pS25Lu25Lq6OiBsaXdlaSAoQ00pDQo+IOaKhOmAgTogbWFyay5ydXRsYW5kQGFy bS5jb207IGNhdGFsaW4ubWFyaW5hc0Bhcm0uY29tOyB3aWxsLmRlYWNvbkBhcm0uY29tOyB2aW5o b2xpa2F0dGlAZ21haWwuY29tOyBqZWpiQGxpbnV4LnZuZXQuaWJtLmNvbTsgbWFydGluLnBldGVy c2VuQG9yYWNsZS5jb207IGtoaWxtYW5AYmF5bGlicmUuY29tOyBhcm5kQGFybmRiLmRlOyBncmVn b3J5LmNsZW1lbnRAZnJlZS1lbGVjdHJvbnMuY29tOyB0aG9tYXMucGV0YXp6b25pQGZyZWUtZWxl Y3Ryb25zLmNvbTsgeWFtYWRhLm1hc2FoaXJvQHNvY2lvbmV4dC5jb207IHJpa3Uudm9pcGlvQGxp bmFyby5vcmc7IHRyZWRpbmdAbnZpZGlhLmNvbTsga3J6a0BrZXJuZWwub3JnOyBkZXZpY2V0cmVl QHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBsaW51eC1zY3NpQHZnZXIua2VybmVsLm9yZzsg emFuZ2xlaWdhbmc7IEdlbmdqaWFuZmVuZzsgZ3VvZG9uZy54dUBsaW5hcm8ub3JnDQo+IOS4u+mi mDogUmU6IFtQQVRDSCB2OSAyLzVdIGR0LWJpbmRpbmdzOiBzY3NpOiB1ZnM6IGFkZCBkb2N1bWVu dCBmb3IgaGlzaS11ZnMNCj4NCj4gT24gVHVlLCBBcHIgMTcsIDIwMTggYXQgMTA6MDg6MTFQTSAr MDgwMCwgTGkgV2VpIHdyb3RlOg0KPj4gYWRkIHVmcyBub2RlIGRvY3VtZW50IGZvciBIaXNpbGlj b24uDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogTGkgV2VpIDxsaXdlaTIxM0BodWF3ZWkuY29tPg0K Pj4gLS0tDQo+PiAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Vmcy91ZnMtaGlz aS50eHQgfCAyOSArKysrKysrKysrKysrKysrKysrKysrDQo+PiAgLi4uL2RldmljZXRyZWUvYmlu ZGluZ3MvdWZzL3Vmc2hjZC1wbHRmcm0udHh0ICAgICAgfCAxMCArKysrKy0tLQ0KPj4gIDIgZmls ZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4+ICBjcmVhdGUg bW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Vmcy91ZnMtaGlz aS50eHQNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL3Vmcy91ZnMtaGlzaS50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv dWZzL3Vmcy1oaXNpLnR4dA0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAw MDAwMDAwMC4uZDQ5YWI3ZDhmMzFkDQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi9Eb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdWZzL3Vmcy1oaXNpLnR4dA0KPj4gQEAgLTAsMCAr MSwyOSBAQA0KPj4gKyogSGlzaWxpY29uIFVuaXZlcnNhbCBGbGFzaCBTdG9yYWdlIChVRlMpIEhv c3QgQ29udHJvbGxlcg0KPj4gKw0KPj4gK1VGUyBub2RlcyBhcmUgZGVmaW5lZCB0byBkZXNjcmli ZSBvbi1jaGlwIFVGUyBoYXJkd2FyZSBtYWNyby4NCj4+ICtFYWNoIFVGUyBIb3N0IENvbnRyb2xs ZXIgc2hvdWxkIGhhdmUgaXRzIG93biBub2RlLg0KPj4gKw0KPj4gK1JlcXVpcmVkIHByb3BlcnRp ZXM6DQo+PiArLSBjb21wYXRpYmxlICAgICAgICA6IGNvbXBhdGlibGUgbGlzdCwgY29udGFpbnMg b25lIG9mIHRoZSBmb2xsb3dpbmcgLQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiaGlzaWxpY29uLGhpMzY2MC11ZnMiLCAiamVkZWMsdWZzLTEuMSIgZm9yIGhpc2kg dWZzDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3QgY29udHJv bGxlciBwcmVzZW50IG9uIEhpMzZ4eCBjaGlwc2V0Lg0KPj4gKy0gcmVnICAgICAgICAgICAgICAg OiBzaG91bGQgY29udGFpbiBVRlMgcmVnaXN0ZXIgYWRkcmVzcyBzcGFjZSAmIFVGUyBTWVMgQ1RS TCByZWdpc3RlciBhZGRyZXNzLA0KPj4gKy0gaW50ZXJydXB0LXBhcmVudCAgOiBpbnRlcnJ1cHQg ZGV2aWNlDQo+PiArLSBpbnRlcnJ1cHRzICAgICAgICA6IGludGVycnVwdCBudW1iZXINCj4+ICst IHJlc2V0cyAgICAgICAgICAgIDogcmVzZXQgbm9kZSByZWdpc3RlciwgdGhlICJhcnN0IiBjb3Jy ZXNwb25kcyB0byByZXNldCB0aGUgQVBCL0FYSSBidXMuDQo+DQo+IGFyc3QgYmVsb25ncyBpbiBy ZXNldC1uYW1lcy4NCj4NCj4gT0ssIEkgd2lsbCBmaXggaXQgaW4gbmV4dCBwYXRjaDsNCj4NCj4+ ICstIHJlc2V0LW5hbWVzICAgICAgIDogZGVzY3JpYmUgcmVzZXQgbm9kZSByZWdpc3Rlcg0KPg0K PiBXaGF0IGhhcHBlbmVkIHRvIGNsb2Nrcz8gWW91IHN0aWxsIGhhdmUgdG8gbGlzdCB3aGljaCBv bmVzIGFwcGx5IGV2ZW4gaWYNCj4gZG9jdW1lbnRlZCBpbiB0aGUgY29tbW9uIGJpbmRpbmcuDQo+ DQo+IE9LLCBJIHdpbGwgZml4IGl0IGluIG5leHQgcGF0Y2g7DQo+DQo+PiArDQo+PiArRXhhbXBs ZToNCj4+ICsNCj4+ICsgICAgIHVmczogdWZzQGZmM2IwMDAwIHsNCj4+ICsgICAgICAgICAgICAg Y29tcGF0aWJsZSA9ICJoaXNpbGljb24saGkzNjYwLXVmcyIsICJqZWRlYyx1ZnMtMS4xIjsNCj4+ ICsgICAgICAgICAgICAgLyogMDogSENJIHN0YW5kYXJkICovDQo+PiArICAgICAgICAgICAgIC8q IDE6IFVGUyBTWVMgQ1RSTCAqLw0KPj4gKyAgICAgICAgICAgICByZWcgPSA8MHgwIDB4ZmYzYjAw MDAgMHgwIDB4MTAwMD4sDQo+PiArICAgICAgICAgICAgICAgICAgICAgPDB4MCAweGZmM2IxMDAw IDB4MCAweDEwMDA+Ow0KPj4gKyAgICAgICAgICAgICBpbnRlcnJ1cHQtcGFyZW50ID0gPCZnaWM+ Ow0KPj4gKyAgICAgICAgICAgICBpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMjc4IElSUV9UWVBFX0xF VkVMX0hJR0g+Ow0KPj4gKyAgICAgICAgICAgICAvKiBvZmZzZXQ6IDB4ODQ7IGJpdDogNyAgKi8N Cj4+ICsgICAgICAgICAgICAgcmVzZXRzID0gPCZjcmdfcnN0IDB4ODQgNz47DQo+PiArICAgICAg ICAgICAgIHJlc2V0LW5hbWVzID0gImFyc3QiOw0KPj4gKyAgICAgfTsNCj4+IGRpZmYgLS1naXQg YS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdWZzL3Vmc2hjZC1wbHRmcm0udHh0 IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Vmcy91ZnNoY2QtcGx0ZnJtLnR4 dA0KPj4gaW5kZXggYzM5ZGZlZjc2YTE4Li5hZGNmYjc5ZjYzZjUgMTAwNjQ0DQo+PiAtLS0gYS9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdWZzL3Vmc2hjZC1wbHRmcm0udHh0DQo+ PiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdWZzL3Vmc2hjZC1wbHRm cm0udHh0DQo+PiBAQCAtNDEsNiArNDEsOCBAQCBPcHRpb25hbCBwcm9wZXJ0aWVzOg0KPj4gIC1s YW5lcy1wZXItZGlyZWN0aW9uIDogbnVtYmVyIG9mIGxhbmVzIGF2YWlsYWJsZSBwZXIgZGlyZWN0 aW9uIC0gZWl0aGVyIDEgb3IgMi4NCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGUgdGhh dCBpdCBpcyBhc3N1bWUgc2FtZSBudW1iZXIgb2YgbGFuZXMgaXMgdXNlZCBib3RoDQo+PiAgICAg ICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb25zIGF0IG9uY2UuIElmIG5vdCBzcGVjaWZpZWQs IGRlZmF1bHQgaXMgMiBsYW5lcyBwZXIgZGlyZWN0aW9uLg0KPj4gKy0gcmVzZXRzICAgICAgICAg ICAgOiByZXNldCBub2RlIHJlZ2lzdGVyLCB0aGUgInJzdCIgY29ycmVzcG9uZHMgdG8gcmVzZXQg dGhlIHdob2xlIFVGUyBJUC4NCj4+ICstIHJlc2V0LW5hbWVzICAgICAgIDogZGVzY3JpYmUgcmVz ZXQgbm9kZSByZWdpc3Rlcg0KPg0KPiBEb2VzIHlvdXIgY29udHJvbGxlciBoYXZlIDEgb3IgMiBy ZXNldHM/IFRoZXJlJ3Mgbm8gcG9pbnQgaW4gYWRkaW5nIHRoaXMNCj4gaGVyZSBpZiBpdCBkb2Vz bid0IGFwcGx5IHRvIHlvdXIgY29udHJvbGxlci4NCj4NCj4gVGhlcmUgYXJlIDIgcmVzZXQgaW4g b3VyIHNvYyBpbml0LCB0aGUgInJzdCIgY29ycmVzcG9uZHMgdG8gcmVzZXQgdGhlIHdob2xlIFVG UyBJUCwgYW5kICIgYXJzdCAiIG9ubHkgcmVzZXQgdGhlIEFQQi9BWEkgYnVzLg0KPiBEaXNjdXNz ZWQgd2l0aCBvdXIgc29jIGNvbGxlYWd1ZXMgdGhhdCAiYXJzdCIgaXMgYXNzZXJ0IGJ5IGRlZmF1 bHQgYW5kIG5lZWRzIHRvIGRlYXNzZXJ0LGJ1dCBpdCBkb25lIGluIGJvb3Rsb2FkZXIsc28gd2ls bCByZW1vdmUgJ2Fyc3QnIGluIG5leHQgcGF0Y2guDQo+DQo+IEFib3V0IHRoZSAncmVzZXQnIHBy b3BlcnR577yMaXQgc2VlbXMgdGhhdCBBcm5kIEJlcmdtYW5uIGhhcyBkaWZmZXJlbnQgc3VnZ2Vz dGlvbu+8jGhlIHN1Z2dlc3RlZCB0aGF0IGFkZCAncnN0JyB0byB1ZnNoY2QtcGx0ZnJtIGJlY2F1 c2UgaXQgc2VlbXMgY29tbW9uLg0KPiBCdXQgaXQgbG9va3MgbGlrZSBvbmx5IG91ciBzb2MgaW5p dCBuZWVkcyBpdC4gV2hhdCdzIHlvdXIgb3Bpbmlvbj8gRG9lcyBpdCBzdGlsbCBuZWVkcyBhZGQg dG8gY29tbW9uIGJpbmRpbmdzPw0KDQpGb3IgYSBzaW5nbGUgcmVzZXQsIHRoZW4gSSdtIGZpbmUg d2l0aCBpdCBiZWluZyBpbiB0aGUgY29tbW9uDQpiaW5kaW5ncy4gSWYgdGhlcmUgYXJlIG11bHRp cGxlIHRoZW4gaXQgc2hvdWxkIGJlIGluIHRoZSBzcGVjaWZpYw0KYmluZGluZ3MgYXMgdGhlIHJl c2V0IG5hbWVzIGFyZSBsaWtlbHkgZGlmZmVyZW50Lg0KDQpPSywgSSB3aWxsIHJlbW92ZSB0aGUg J2Fyc3QnIGFuZCBrZWVwIG9ubHkgJ3JzdCcgaW4gdG5lIGNvbW1vbiBiaW5naW5ncy4NCg0KUm9i DQo=