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=-0.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS 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 5EE22C04A6B for ; Fri, 10 May 2019 09:27:36 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 025C22053B for ; Fri, 10 May 2019 09:27:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 025C22053B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 8BD246B0275; Fri, 10 May 2019 05:27:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 86DF96B0276; Fri, 10 May 2019 05:27:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 735646B0277; Fri, 10 May 2019 05:27:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by kanga.kvack.org (Postfix) with ESMTP id 1AF046B0275 for ; Fri, 10 May 2019 05:27:31 -0400 (EDT) Received: by mail-ed1-f70.google.com with SMTP id g36so3570265edg.8 for ; Fri, 10 May 2019 02:27:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:thread-topic:thread-index:date:message-id:references :in-reply-to:accept-language:content-language :content-transfer-encoding:mime-version; bh=WRraNPmfQnYNIuSGcAeQdjJOeUm6+sRqDDn5n2RQdmA=; b=WeCtthBZB5g1N+mAD6EI3060o2NjfWRteGVlExKe/Qhm/k/aEeSp6zLO9urTmpNoL5 3X4h3W/m5bTIisxzH/rUWwG+Gm+9pePaOHl98Eyz5/GA5KKi7WKMAcK0BcpK3annj3eN 9E2p/xDmCYoSzUL8O0tKqGTuJm6iyRbDM9MvaWKdgXsKJAJPL57ZLuECLh+ZE5jRTWWr AHhTTWy7IfU+RfrA6syZHVJTNCIEb4wmPF3DoBJGvob6ZEb17CU8ZOmnCTJ60i6fYfhF 42GVqJh44fZZZBvoL8hwHFOPb/Ts7JIzhwI9CborTr1ldbdurLV3l5cpA1/V+6p0OtE7 ApkQ== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of shameerali.kolothum.thodi@huawei.com designates 185.176.76.210 as permitted sender) smtp.mailfrom=shameerali.kolothum.thodi@huawei.com X-Gm-Message-State: APjAAAUXibFFv4EGMs3zcRZcjXs2xgnsZMOC7PG6UM9M/lFm6vcauKnI eCbfnn/y76OhjmHVXOsslH4MDHuyzeN1YMwpKVAoeLFUt4VjLnklnMFxShQH4Q5ajP7L4FQAroA V05/p/txMIh8gT2DcP3VbyHPP32H5Us6JZtj+jswkJpKV70qXwc10Gcqp9bL5+6TMuQ== X-Received: by 2002:a50:a5b5:: with SMTP id a50mr9059422edc.109.1557480450626; Fri, 10 May 2019 02:27:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqz3jVwnvdoAFuerQJMDUeeYQ2xNi+kztHQMBp26fcvsBin06LE3WzmzLyh8P1XgNY18DWT/ X-Received: by 2002:a50:a5b5:: with SMTP id a50mr9059334edc.109.1557480449612; Fri, 10 May 2019 02:27:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557480449; cv=none; d=google.com; s=arc-20160816; b=eHiedc2reHv/TUG0eFBWZNXuJB/TaooXtgQTLjrtXypaJOlU2yZY2aIE+C8hxqHjZj Q/TSHgB78BPT9gYRnKFHCFmGMbTj17vR6IY600WrXkYrcfW4zax4trWAnQKp72teXmy4 tEpJEQBJ0pZTqZuNBHdnWuOCuC3adxjgJrmhwpajfxQruTh60kufBzxy8WlcGHqBEbeA BCJhmajjTf6gV++OjX4J2V6wtR6//ydD4Bn5VSdZYVmcvH6Nqs5Ai0PUxWy/WlmcrXjl 8XcPbdNBpEsT5ksQPLYygvRZkItG5dQHKnEHJzC/F33pXeeVJtw6zqAoDFuQY82OXMOL j6xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from; bh=WRraNPmfQnYNIuSGcAeQdjJOeUm6+sRqDDn5n2RQdmA=; b=0au3+/9hwYv+g09iISfMozeXfDvQHkF9ozpiJrlngbpYaIWDNOG+aM+YRnE9lH7aOG TW71i3IxhhF2zSl4a+YpSWEpt176SRGjBiZuwf9FjuMbI8kczCWLqF7m4DVkL+Cgo+NE t7RSbocg3sH2/Dh0CShIVnZtkKEHKVNsEtHzg7gwK7tFK8gOV90tIqPOI++1zTi5XQBK Z5q0DcFgU9ZVih1awlwyMXlP4Ig3Z+rS2tPkwaKGdz1yK8ZSFp4NC0ROj14OAZV3zldR B5TnVOun0Y3orwm6R4cq+FG/4WGNa4tBnpPSX+jHVsF4VdXXQRPJkVoSWfAklxVOCx8T gOJg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of shameerali.kolothum.thodi@huawei.com designates 185.176.76.210 as permitted sender) smtp.mailfrom=shameerali.kolothum.thodi@huawei.com Received: from huawei.com (lhrrgout.huawei.com. [185.176.76.210]) by mx.google.com with ESMTPS id a55si3557376edd.174.2019.05.10.02.27.29 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 10 May 2019 02:27:29 -0700 (PDT) Received-SPF: pass (google.com: domain of shameerali.kolothum.thodi@huawei.com designates 185.176.76.210 as permitted sender) client-ip=185.176.76.210; Authentication-Results: mx.google.com; spf=pass (google.com: domain of shameerali.kolothum.thodi@huawei.com designates 185.176.76.210 as permitted sender) smtp.mailfrom=shameerali.kolothum.thodi@huawei.com Received: from lhreml703-cah.china.huawei.com (unknown [172.18.7.108]) by Forcepoint Email with ESMTP id 16FBCB6005D2E981FB78; Fri, 10 May 2019 10:27:29 +0100 (IST) Received: from LHREML524-MBS.china.huawei.com ([169.254.2.137]) by lhreml703-cah.china.huawei.com ([10.201.108.44]) with mapi id 14.03.0415.000; Fri, 10 May 2019 10:27:21 +0100 From: Shameerali Kolothum Thodi To: Auger Eric , Laszlo Ersek , "Igor Mammedov" CC: "peter.maydell@linaro.org" , "xuwei (O)" , Anshuman Khandual , "Catalin Marinas" , "ard.biesheuvel@linaro.org" , "will.deacon@arm.com" , "qemu-devel@nongnu.org" , Linuxarm , linux-mm , "qemu-arm@nongnu.org" , Jonathan Cameron , "Robin Murphy" , "linux-arm-kernel@lists.infradead.org" Subject: RE: [Qemu-devel] [Question] Memory hotplug clarification for Qemu ARM/virt Thread-Topic: [Qemu-devel] [Question] Memory hotplug clarification for Qemu ARM/virt Thread-Index: AQHVBZyqsUtUKaKFrky+uGhe7FD3haZhnJEAgAFR1ACAAFdrgIAAw4ww///8foCAABEHYA== Date: Fri, 10 May 2019 09:27:20 +0000 Message-ID: <5FC3163CFD30C246ABAA99954A238FA83F1DE1C0@lhreml524-mbs.china.huawei.com> References: <5FC3163CFD30C246ABAA99954A238FA83F1B6A66@lhreml524-mbs.china.huawei.com> <190831a5-297d-addb-ea56-645afb169efb@redhat.com> <20190509183520.6dc47f2e@Igors-MacBook-Pro> <5FC3163CFD30C246ABAA99954A238FA83F1DDFE5@lhreml524-mbs.china.huawei.com> <499f2bc5-da85-72b2-4f7b-32f2d25d842b@redhat.com> In-Reply-To: <499f2bc5-da85-72b2-4f7b-32f2d25d842b@redhat.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.202.227.237] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: SGkgRXJpYywNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBdWdlciBF cmljIFttYWlsdG86ZXJpYy5hdWdlckByZWRoYXQuY29tXQ0KPiBTZW50OiAxMCBNYXkgMjAxOSAx MDoxNg0KPiBUbzogU2hhbWVlcmFsaSBLb2xvdGh1bSBUaG9kaSA8c2hhbWVlcmFsaS5rb2xvdGh1 bS50aG9kaUBodWF3ZWkuY29tPjsNCj4gTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47 IElnb3IgTWFtbWVkb3YNCj4gPGltYW1tZWRvQHJlZGhhdC5jb20+DQo+IENjOiBwZXRlci5tYXlk ZWxsQGxpbmFyby5vcmc7IHh1d2VpIChPKSA8eHV3ZWk1QGh1YXdlaS5jb20+OyBBbnNodW1hbg0K PiBLaGFuZHVhbCA8YW5zaHVtYW4ua2hhbmR1YWxAYXJtLmNvbT47IENhdGFsaW4gTWFyaW5hcw0K PiA8Q2F0YWxpbi5NYXJpbmFzQGFybS5jb20+OyBhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnOw0K PiB3aWxsLmRlYWNvbkBhcm0uY29tOyBxZW11LWRldmVsQG5vbmdudS5vcmc7IExpbnV4YXJtDQo+ IDxsaW51eGFybUBodWF3ZWkuY29tPjsgbGludXgtbW0gPGxpbnV4LW1tQGt2YWNrLm9yZz47DQo+ IHFlbXUtYXJtQG5vbmdudS5vcmc7IEpvbmF0aGFuIENhbWVyb24NCj4gPGpvbmF0aGFuLmNhbWVy b25AaHVhd2VpLmNvbT47IFJvYmluIE11cnBoeSA8cm9iaW4ubXVycGh5QGFybS5jb20+Ow0KPiBs aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcNCj4gU3ViamVjdDogUmU6IFtRZW11 LWRldmVsXSBbUXVlc3Rpb25dIE1lbW9yeSBob3RwbHVnIGNsYXJpZmljYXRpb24gZm9yIFFlbXUN Cj4gQVJNL3ZpcnQNCj4gDQo+IEhpIFNoYW1lZXIsDQo+IA0KPiBPbiA1LzEwLzE5IDEwOjM0IEFN LCBTaGFtZWVyYWxpIEtvbG90aHVtIFRob2RpIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVy c2VrQHJlZGhhdC5jb21dDQo+ID4+IFNlbnQ6IDA5IE1heSAyMDE5IDIyOjQ4DQo+ID4+IFRvOiBJ Z29yIE1hbW1lZG92IDxpbWFtbWVkb0ByZWRoYXQuY29tPg0KPiA+PiBDYzogUm9iaW4gTXVycGh5 IDxyb2Jpbi5tdXJwaHlAYXJtLmNvbT47IFNoYW1lZXJhbGkgS29sb3RodW0gVGhvZGkNCj4gPj4g PHNoYW1lZXJhbGkua29sb3RodW0udGhvZGlAaHVhd2VpLmNvbT47IHdpbGwuZGVhY29uQGFybS5j b207IENhdGFsaW4NCj4gPj4gTWFyaW5hcyA8Q2F0YWxpbi5NYXJpbmFzQGFybS5jb20+OyBBbnNo dW1hbiBLaGFuZHVhbA0KPiA+PiA8YW5zaHVtYW4ua2hhbmR1YWxAYXJtLmNvbT47IGxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsNCj4gPj4gbGludXgtbW0gPGxpbnV4LW1tQGt2 YWNrLm9yZz47IHFlbXUtZGV2ZWxAbm9uZ251Lm9yZzsNCj4gPj4gcWVtdS1hcm1Abm9uZ251Lm9y ZzsgZXJpYy5hdWdlckByZWRoYXQuY29tOw0KPiBwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc7DQo+ ID4+IExpbnV4YXJtIDxsaW51eGFybUBodWF3ZWkuY29tPjsgYXJkLmJpZXNoZXV2ZWxAbGluYXJv Lm9yZzsgSm9uYXRoYW4NCj4gPj4gQ2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29t PjsgeHV3ZWkgKE8pDQo+IDx4dXdlaTVAaHVhd2VpLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtR dWVzdGlvbl0gTWVtb3J5IGhvdHBsdWcgY2xhcmlmaWNhdGlvbiBmb3IgUWVtdSBBUk0vdmlydA0K PiA+Pg0KPiA+PiBPbiAwNS8wOS8xOSAxODozNSwgSWdvciBNYW1tZWRvdiB3cm90ZToNCj4gPj4+ IE9uIFdlZCwgOCBNYXkgMjAxOSAyMjoyNjoxMiArMDIwMA0KPiA+Pj4gTGFzemxvIEVyc2VrIDxs ZXJzZWtAcmVkaGF0LmNvbT4gd3JvdGU6DQo+ID4+Pg0KPiA+Pj4+IE9uIDA1LzA4LzE5IDE0OjUw LCBSb2JpbiBNdXJwaHkgd3JvdGU6DQo+ID4+Pj4+IEhpIFNoYW1lZXIsDQo+ID4+Pj4+DQo+ID4+ Pj4+IE9uIDA4LzA1LzIwMTkgMTE6MTUsIFNoYW1lZXJhbGkgS29sb3RodW0gVGhvZGkgd3JvdGU6 DQo+ID4+Pj4+PiBIaSwNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBUaGlzIHNlcmllcyBoZXJlWzBdIGF0 dGVtcHRzIHRvIGFkZCBzdXBwb3J0IGZvciBQQ0RJTU0gaW4gUUVNVSBmb3INCj4gPj4+Pj4+IEFS TS9WaXJ0IHBsYXRmb3JtIGFuZCBoYXMgc3R1bWJsZWQgdXBvbiBhbiBpc3N1ZSBhcyBpdCBpcyBu b3QgY2xlYXIoYXQNCj4gPj4+Pj4+IGxlYXN0DQo+ID4+Pj4+PiBmcm9tIFFlbXUvRURLMiBwb2lu dCBvZiB2aWV3KSBob3cgaW4gcGh5c2ljYWwgd29ybGQgdGhlIGhvdHBsdWdnYWJsZQ0KPiA+Pj4+ Pj4gbWVtb3J5IGlzIGhhbmRsZWQgYnkga2VybmVsLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoZSBw cm9wb3NlZCBpbXBsZW1lbnRhdGlvbiBpbiBRZW11LCBidWlsZHMgdGhlIFNSQVQgYW5kIERTRFQg cGFydHMNCj4gPj4+Pj4+IGFuZCB1c2VzIEdFRCBkZXZpY2UgdG8gdHJpZ2dlciB0aGUgaG90cGx1 Zy4gVGhpcyB3b3JrcyBmaW5lLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEJ1dCB3aGVuIHdlIGFkZGVk IHRoZSBEVCBub2RlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIFBDRElNTShjb2xkDQo+IHBsdWcNCj4g Pj4+Pj4+IHNjZW5hcmlvKSwgd2Ugbm90aWNlZCB0aGF0IEd1ZXN0IGtlcm5lbCBzZWUgdGhpcyBt ZW1vcnkgZHVyaW5nIGVhcmx5DQo+ID4+IGJvb3QNCj4gPj4+Pj4+IGV2ZW4gaWYgd2UgYXJlIGJv b3Rpbmcgd2l0aCBBQ1BJLiBCZWNhdXNlIG9mIHRoaXMsIGhvdHBsdWdnYWJsZQ0KPiBtZW1vcnkN Cj4gPj4+Pj4+IG1heSBlbmQgdXAgaW4gem9uZSBub3JtYWwgYW5kIG1ha2UgaXQgbm9uLWhvdC11 bi1wbHVnZ2FibGUgZXZlbiBpZg0KPiA+PiBHdWVzdA0KPiA+Pj4+Pj4gYm9vdHMgd2l0aCBBQ1BJ Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEZ1cnRoZXIgZGlzY3Vzc2lvbnNbMV0gcmV2ZWFsZWQgdGhh dCwgRURLMiBVRUZJIGhhcyBubyBtZWFucyB0bw0KPiA+Pj4+Pj4gaW50ZXJwcmV0IHRoZQ0KPiA+ Pj4+Pj4gQUNQSSBjb250ZW50IGZyb20gUWVtdSh0aGlzIGlzIGRlc2lnbmVkIHRvIGRvIHNvKSBh bmQgdXNlcyBEVCBpbmZvIHRvDQo+ID4+Pj4+PiBidWlsZCB0aGUgR2V0TWVtb3J5TWFwKCkuIFRv IHNvbHZlIHRoaXMsIGludHJvZHVjZWQgImhvdHBsdWdnYWJsZSINCj4gPj4+Pj4+IHByb3BlcnR5 DQo+ID4+Pj4+PiB0byBEVCBtZW1vcnkgbm9kZShwYXRjaGVzICM3ICYgIzggZnJvbSBbMF0pIHNv IHRoYXQgVUVGSSBjYW4NCj4gPj4+Pj4+IGRpZmZlcmVudGlhdGUNCj4gPj4+Pj4+IHRoZSBub2Rl cyBhbmQgZXhjbHVkZSB0aGUgaG90cGx1Z2dhYmxlIG9uZXMgZnJvbSBHZXRNZW1vcnlNYXAoKS4N Cj4gPj4+Pj4+DQo+ID4+Pj4+PiBCdXQgdGhlbiBMYXN6bG8gcmlnaHRseSBwb2ludGVkIG91dCB0 aGF0IGluIG9yZGVyIHRvIGFjY29tbW9kYXRlIHRoZQ0KPiA+Pj4+Pj4gY2hhbmdlcw0KPiA+Pj4+ Pj4gaW50byBVRUZJIHdlIG5lZWQgdG8ga25vdyBob3cgZXhhY3RseSBMaW51eCBleHBlY3RzL2hh bmRsZXMgYWxsIHRoZQ0KPiA+Pj4+Pj4gaG90cGx1Z2dhYmxlIG1lbW9yeSBzY2VuYXJpb3MuIFBs ZWFzZSBmaW5kIHRoZSBkaXNjdXNzaW9uIGhlcmVbMl0uDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gRm9y IGVhc2UsIEkgYW0ganVzdCBjb3B5aW5nIHRoZSByZWxldmFudCBjb21tZW50IGZyb20gTGFzemxv IGJlbG93LA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IC8qKioqKioNCj4gPj4+Pj4+ICJHaXZlbiBwYXRj aGVzICM3IGFuZCAjOCwgYXMgSSB1bmRlcnN0YW5kIHRoZW0sIHRoZSBmaXJtd2FyZSBjYW5ub3QN Cj4gPj4+Pj4+IGRpc3Rpbmd1aXNoDQo+ID4+Pj4+PiDCoCBob3RwbHVnZ2FibGUgJiBwcmVzZW50 LCBmcm9tIGhvdHBsdWdnYWJsZSAmIGFic2VudC4gVGhlIGZpcm13YXJlDQo+ID4+IGNhbg0KPiA+ Pj4+Pj4gb25seQ0KPiA+Pj4+Pj4gwqAgc2tpcCBib3RoIGhvdHBsdWdnYWJsZSBjYXNlcy4gVGhh dCdzIGZpbmUgaW4gdGhhdCB0aGUgZmlybXdhcmUgd2lsbA0KPiA+Pj4+Pj4gaG9nIG5laXRoZXIN Cj4gPj4+Pj4+IMKgIHR5cGUgLS0gYnV0IGlzIHRoYXQgT0sgZm9yIHRoZSBPUyBhcyB3ZWxsLCBm b3IgYm90aCBBQ1BJIGJvb3QgYW5kIERUDQo+ID4+Pj4+PiBib290Pw0KPiA+Pj4+Pj4NCj4gPj4+ Pj4+IENvbnNpZGVyIGluIHBhcnRpY3VsYXIgdGhlICJob3RwbHVnZ2FibGUgJiBwcmVzZW50LCBB Q1BJIGJvb3QiIGNhc2UuDQo+ID4+Pj4+PiBBc3N1bWluZw0KPiA+Pj4+Pj4gd2UgbW9kaWZ5IHRo ZSBmaXJtd2FyZSB0byBza2lwICJob3RwbHVnZ2FibGUiIGFsdG9nZXRoZXIsIHRoZSBVRUZJDQo+ ID4+IG1lbW1hcA0KPiA+Pj4+Pj4gd2lsbCBub3QgaW5jbHVkZSB0aGUgcmFuZ2UgZGVzcGl0ZSBp dCBiZWluZyBwcmVzZW50IGF0IGJvb3QuDQo+ID4+Pj4+PiBQcmVzdW1hYmx5LCBBQ1BJDQo+ID4+ Pj4+PiB3aWxsIHJlZmVyIHRvIHRoZSByYW5nZSBzb21laG93LCBob3dldmVyLiBXaWxsIHRoYXQg bm90IGNvbmZ1c2UgdGhlDQo+IE9TPw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFdoZW4gSWdvciByYWlz ZWQgdGhpcyBlYXJsaWVyLCBJIHN1Z2dlc3RlZCB0aGF0DQo+ID4+Pj4+PiBob3RwbHVnZ2FibGUt YW5kLXByZXNlbnQgc2hvdWxkDQo+ID4+Pj4+PiBiZSBhZGRlZCBieSB0aGUgZmlybXdhcmUsIGJ1 dCBhbHNvIGFsbG9jYXRlZCBpbW1lZGlhdGVseSwgYXMNCj4gPj4+Pj4+IEVmaUJvb3RTZXJ2aWNl c0RhdGENCj4gPj4+Pj4+IHR5cGUgbWVtb3J5LiBUaGlzIHdpbGwgcHJldmVudCBvdGhlciBkcml2 ZXJzIGluIHRoZSBmaXJtd2FyZSBmcm9tDQo+ID4+Pj4+PiBhbGxvY2F0aW5nIEFjcGlOVlMNCj4g Pj4+Pj4+IG9yIFJlc2VydmVkIGNodW5rcyBmcm9tIHRoZSBzYW1lIG1lbW9yeSByYW5nZSwgdGhl IFVFRkkgbWVtbWFwDQo+IHdpbGwNCj4gPj4+Pj4+IGNvbnRhaW4NCj4gPj4+Pj4+IHRoZSByYW5n ZSBhcyBFZmlCb290U2VydmljZXNEYXRhLCBhbmQgdGhlbiB0aGUgT1MgY2FuIHJlbGVhc2UgdGhh dA0KPiA+Pj4+Pj4gYWxsb2NhdGlvbiBpbg0KPiA+Pj4+Pj4gb25lIGdvIGVhcmx5IGR1cmluZyBi b290Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEJ1dCB0aGlzIHJlYWxseSBoYXMgdG8gYmUgY2xhcmlm aWVkIGZyb20gdGhlIExpbnV4IGtlcm5lbCdzDQo+ID4+Pj4+PiBleHBlY3RhdGlvbnMuIFBsZWFz ZQ0KPiA+Pj4+Pj4gZm9ybWFsaXplIGFsbCBvZiB0aGUgZm9sbG93aW5nIGNhc2VzOg0KPiA+Pj4+ Pj4NCj4gPj4+Pj4+IE9TIGJvb3QgKERUL0FDUEkpwqAgaG90cGx1Z2dhYmxlICYgLi4uwqAgR2V0 TWVtb3J5TWFwKCkgc2hvdWxkDQo+IHJlcG9ydA0KPiA+Pj4+Pj4gYXPCoCBEVC9BQ1BJIHNob3Vs ZCByZXBvcnQgYXMNCj4gPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0twqAgLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0twqAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ID4+Pj4+Pg0KPiA+PiBEVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHByZXNlbnTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPw0KPiA+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCA/DQo+ID4+Pj4+Pg0KPiA+PiBEVMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGFic2VudMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgID8NCj4gPj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA/DQo+ID4+Pj4+Pg0KPiA+PiBBQ1BJwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcmVzZW50wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgID8N Cj4gPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPw0KPiA+Pj4+Pj4NCj4gPj4gQUNQScKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWJzZW50wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgPw0KPiA+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA/DQo+ID4+Pj4+Pg0KPiA+Pj4+ Pj4gQWdhaW4sIHRoaXMgdGFibGUgaXMgZGljdGF0ZWQgYnkgTGludXguIg0KPiA+Pj4+Pj4NCj4g Pj4+Pj4+ICoqKioqKi8NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBDb3VsZCB5b3UgcGxlYXNlIHRha2Ug YSBsb29rIGF0IHRoaXMgYW5kIGxldCB1cyBrbm93IHdoYXQgaXMgZXhwZWN0ZWQNCj4gPj4+Pj4+ IGhlcmUgZnJvbQ0KPiA+Pj4+Pj4gYSBMaW51eCBrZXJuZWwgdmlldyBwb2ludC4NCj4gPj4+Pj4N Cj4gPj4+Pj4gRm9yIGFybTY0LCBzbyBmYXIgd2UndmUgbm90IGV2ZW4gYmVlbiBjb25zaWRlcmlu ZyBEVC1iYXNlZCBob3RwbHVnIC0gYXMNCj4gPj4+Pj4gZmFyIGFzIEknbSBhd2FyZSB0aGVyZSB3 b3VsZCBzdGlsbCBiZSBhIGJpZyBvcGVuIHF1ZXN0aW9uIHRoZXJlIGFyb3VuZA0KPiA+Pj4+PiBu b3RpZmljYXRpb24gbWVjaGFuaXNtcyBhbmQgaG93IHRvIGRlc2NyaWJlIHRoZW0uIFRoZSBEVCBz dHVmZiBzbyBmYXINCj4gPj4+Pj4gaGFzIGNvbWUgZnJvbSB0aGUgUG93ZXJQQyBmb2xrcywgc28g aXQncyBwcm9iYWJseSB3b3J0aCBzZWVpbmcgd2hhdA0KPiA+Pj4+PiB0aGVpciBpZGVhcyBhcmUu DQo+ID4+Pj4+DQo+ID4+Pj4+IEFDUEktd2lzZSBJJ3ZlIGFsd2F5cyBhc3N1bWVkL2hvcGVkIHRo YXQgaG90cGx1Zy1yZWxhdGVkIHRoaW5ncw0KPiBzaG91bGQNCj4gPj4+Pj4gYmUgc3VmZmljaWVu dGx5IHdlbGwtc3BlY2lmaWVkIGluIFVFRkkgdGhhdCAiZG8gd2hhdGV2ZXIgeDg2L0lBLTY0IGRv Ig0KPiA+Pj4+PiB3b3VsZCBiZSBlbm91Z2ggZm9yIHVzLg0KPiA+Pj4+DQo+ID4+Pj4gQXMgZmFy IGFzIEkgY2FuIHNlZSBpbiBVRUZJIHYyLjggLS0gYW5kIEkgaGFkIGNoZWNrZWQgdGhlIHNwZWMg YmVmb3JlDQo+ID4+Pj4gZHVtcGluZyB0aGUgdGFibGUgd2l0aCB0aGUgbWFueSBxdWVzdGlvbiBt YXJrcyBvbiBTaGFtZWVyIC0tLCBhbGwgdGhlDQo+ID4+Pj4gaG90LXBsdWcgbGFuZ3VhZ2UgaW4g dGhlIHNwZWMgcmVmZXJzIHRvIFVTQiBhbmQgUENJIGhvdC1wbHVnIGluIHRoZQ0KPiA+Pj4+IHBy ZWJvb3QgZW52aXJvbm1lbnQuIFRoZXJlIGlzIG5vdCBhIHNpbmdsZSB3b3JkIGFib3V0IGhvdC1w bHVnIGF0IE9TDQo+ID4+Pj4gcnVudGltZSAocmVnYXJkaW5nIGFueSBkZXZpY2Ugb3IgY29tcG9u ZW50IHR5cGUpLCBub3IgYWJvdXQgbWVtb3J5DQo+ID4+Pj4gaG90LXBsdWcgKGF0IGFueSB0aW1l KS4NCj4gPj4+Pg0KPiA+Pj4+IExvb2tpbmcgdG8geDg2IGFwcGVhcnMgdmFsaWQgLS0gc28gd2hh dCBkb2VzIHRoZSBMaW51eCBrZXJuZWwgZXhwZWN0IG9uDQo+ID4+Pj4gdGhhdCBhcmNoaXRlY3R1 cmUsIGluIHRoZSAiQUNQSSIgcm93cyBvZiB0aGUgdGFibGU/DQo+ID4+Pg0KPiA+Pj4gSSBjb3Vs ZCBvbmx5IGFuc3dlciBmcm9tIFFFTVUgeDg2IHBlcnNwZWN0aXZlLg0KPiA+Pj4gUUVNVSBmb3Ig eDg2IGd1ZXN0cyBjdXJyZW50bHkgZG9lc24ndCBhZGQgaG90LXBsdWdnYWJsZSBSQU0gaW50byBF ODIwDQo+ID4+PiBiZWNhdXNlIG9mIGRpZmZlcmVudCBsaW51eCBndWVzdHMgdGVuZCB0byBjYW5u aWJhbGl6ZSBpdCwgbWFraW5nIGl0IG5vbg0KPiA+Pj4gdW5wbHVnZ2FibGUuIFRoZSBsYXN0IGN1 bHByaXQgSSByZWNhbGwgd2FzIEtBU0xSLg0KPiA+Pj4NCj4gPj4+IFNvIEknZCByZWZyYWluIGZy b20gcmVwb3J0aW5nIGhvdHBsdWdnYWJsZSBSQU0gaW4gR2V0TWVtb3J5TWFwKCkgaWYNCj4gPj4+ IGl0J3MgcG9zc2libGUgKGl0J3MgcHJvYmFibHkgaGFjayAoc3BlYyBkZW9zbid0IHNheSBhbnl0 aGluZyBhYm91dCBpdCkNCj4gPj4+IGJ1dCBpdCBtb3N0bHkgd29ya3MgZm9yIExpbnV4IChwbHVn L3VucGx1ZykgYW5kIFdpbmRvd3MgZ3Vlc3QgYWxzbw0KPiA+Pj4gZmluZSB3aXRoIHBsdWcgcGFy dCAobm8gdW5wbHVnIHRoZXJlKSkuDQo+ID4+DQo+ID4+IEkgY2FuIGFjY2VwdCB0aGlzIGFzIGEg cGVyZmVjdGx5IHZhbGlkIGRlc2lnbi4gV2hpY2ggd291bGQgbWVhbiwgUUVNVQ0KPiBzaG91bGQN Cj4gPj4gbWFyayBlYWNoIGhvdHBsdWdnYWJsZSBSQU0gcmFuZ2UgaW4gdGhlIERUQiBmb3IgdGhl IGZpcm13YXJlIHdpdGggdGhlDQo+ID4+IHNwZWNpYWwgbmV3IHByb3BlcnR5LCByZWdhcmRsZXNz IG9mIGl0cyBpbml0aWFsICgiY29sZCIpIHBsdWdnZWQtbmVzcywgYW5kIHRoZW4NCj4gPj4gdGhl IGZpcm13YXJlIHdpbGwgbm90IGV4cG9zZSB0aGUgcmFuZ2UgaW4gdGhlIEdDRCBtZW1vcnkgc3Bh Y2UgbWFwLCBhbmQNCj4gPj4gY29uc2VxdWVudGx5IGluIHRoZSBVRUZJIG1lbW1hcCBlaXRoZXIu DQo+ID4+DQo+ID4+IElPVywgb3VyIHRhYmxlIGlzLCB0aHVzIGZhcjoNCj4gPj4NCj4gPj4gT1Mg Ym9vdCAoRFQvQUNQSSkgIGhvdHBsdWdnYWJsZSAmIC4uLiAgR2V0TWVtb3J5TWFwKCkgc2hvdWxk IHJlcG9ydCBhcw0KPiA+PiBEVC9BQ1BJIHNob3VsZCByZXBvcnQgYXMNCj4gPj4gLS0tLS0tLS0t LS0tLS0tLS0gIC0tLS0tLS0tLS0tLS0tLS0tLSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+IERUICAgICAgICAgICAgICAgICBw cmVzZW50DQo+ID4+IEFCU0VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgID8NCj4gPj4gRFQg ICAgICAgICAgICAgICAgIGFic2VudA0KPiA+PiBBQlNFTlQgICAgICAgICAgICAgICAgICAgICAg ICAgICA/DQo+ID4+IEFDUEkgICAgICAgICAgICAgICBwcmVzZW50ICAgICAgICAgICAgIEFCU0VO VA0KPiA+PiBQUkVTRU5UDQo+ID4+IEFDUEkgICAgICAgICAgICAgICBhYnNlbnQgICAgICAgICAg ICAgIEFCU0VOVA0KPiA+PiBBQlNFTlQNCj4gPj4gSW4gdGhlIGZpcm13YXJlLCBJIG9ubHkgbmVl ZCB0byBjYXJlIGFib3V0IHRoZSBHZXRNZW1vcnlNYXAoKSBjb2x1bW4sIHNvDQo+IEkNCj4gPj4g Y2FuIHdvcmsgd2l0aCB0aGlzLg0KPiA+DQo+ID4gVGhhbmsgeW91IGFsbCBmb3IgdGhlIGlucHV0 cy4NCj4gPg0KPiA+IEkgYXNzdW1lIHdlIHdpbGwgc3RpbGwgcmVwb3J0IHRoZSBEVCBjb2xkIHBs dWcgY2FzZSB0byBrZXJuZWwoaG90cGx1Z2dhYmxlICYNCj4gcHJlc2VudCkuDQo+ID4gc28gdGhl IHRhYmxlIHdpbGwgYmUgc29tZXRoaW5nIGxpa2UgdGhpcywNCj4gPg0KPiA+IE9TIGJvb3QgKERU L0FDUEkpICBob3RwbHVnZ2FibGUgJiAuLi4gIEdldE1lbW9yeU1hcCgpIHNob3VsZCByZXBvcnQg YXMNCj4gRFQvQUNQSSBzaG91bGQgcmVwb3J0IGFzDQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0gIC0t LS0tLS0tLS0tLS0tLS0tLSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gRFQgICAgICAgICAgICAgICAgIHByZXNlbnQgICAgICAg ICAgICAgQUJTRU5UDQo+IFBSRVNFTlQNCj4gPiBEVCAgICAgICAgICAgICAgICAgYWJzZW50ICAg ICAgICAgICAgICBBQlNFTlQNCj4gQUJTRU5UDQo+IFdpdGggRFQgYm9vdCwgaG93IGRvZXMgdGhl IE9TIGdldCB0byBrbm93IGlmIHRoZWhvdHBsdWdnYWJsZSBtZW1vcnkgaXMNCj4gcHJlc2VudCBv ciBhYnNlbnQ/IE9yIG1heWJlIEkgbWlzdW5kZXJzdGFuZCB0aGUgbGFzdCBjb2x1bW4uDQoNCkl0 IGRvZXNuJ3QuIEZvciBob3RwbHVnZ2FibGUgJiBwcmVzZW50IGNhc2UgaXQgd2lsbCBiZSBqdXN0 IGxpa2Ugbm9ybWFsIG1lbW9yeSBhbmQNCmZvciBhYnNlbnQgY2FzZSBubyBtZW1vcnkgbm9kZSho b3RwbHVhZ2dibGUpIGlzIHBvcHVsYXRlZCBpbiBEVC4gSXMgdGhpcyBhY2NlcHRhYmxlPw0KDQpP biBhbm90aGVyIG5vdGUsIGlmIHRoZXJlIGFyZSBubyBzdHJvbmcgY2FzZSBmb3IgRFQgY29sZCBw bHVnIGZvciBQQ0RJTU0gd2UgY2FuIGRyb3ANCml0IGFsdG9nZXRoZXIgd2hpY2ggd2lsbCBtYWtl IGV2ZXJ5dGhpbmcgbXVjaCBzaW1wbGVyIGFuZCBubyBjaGFuZ2UgcmVxdWlyZWQgZm9yDQpVRUZJ IGFzIHdlbGwuDQoNClRoYW5rcywNClNoYW1lZXINCg0KDQo+IFRoYW5rcw0KPiANCj4gRXJpYw0K PiA+IEFDUEkgICAgICAgICAgICAgICBwcmVzZW50ICAgICAgICAgICAgIEFCU0VOVA0KPiBQUkVT RU5UDQo+ID4gQUNQSSAgICAgICAgICAgICAgIGFic2VudCAgICAgICAgICAgICAgQUJTRU5UDQo+ IEFCU0VOVA0KPiA+DQo+ID4NCj4gPiAgQ2FuIHNvbWVvbmUgcGxlYXNlIGZpbGUgYSBmZWF0dXJl IHJlcXVlc3QgYXQNCj4gPj4gPGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy8+LCBmb3Ig dGhlIEFybVZpcnRQa2cgUGFja2FnZSwgd2l0aCB0aGVzZQ0KPiA+PiBkZXRhaXM/DQo+ID4NCj4g PiBPay4gSSB3aWxsIGRvIHRoYXQuDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gU2hhbWVlcg0KPiA+ DQo+ID4+IFRoYW5rcw0KPiA+PiBMYXN6bG8NCj4gPj4NCj4gPj4+DQo+ID4+PiBBcyBmb3IgcGh5 c2ljYWwgc3lzdGVtcywgdGhlcmUgYXJlIG91dCB0aGVyZSBvbmVzIHRoYXQgZG8gcmVwb3J0DQo+ ID4+PiBob3RwbHVnZ2FibGUgUkFNIGluIEdldE1lbW9yeU1hcCgpLg0KPiA+Pj4NCj4gPj4+PiBT aGFtZWVyOiBpZiB5b3UgKEh1YXdlaSkgYXJlIHJlcHJlc2VudGVkIG9uIHRoZSBVU1dHIC8gQVNX RywgSQ0KPiBzdWdnZXN0DQo+ID4+Pj4gcmUtcmFpc2luZyB0aGUgcXVlc3Rpb24gb24gdGhvc2Ug bGlzdHMgdG9vOyBhdCBsZWFzdCB0aGUgIkFDUEkiIHJvd3Mgb2YNCj4gPj4+PiB0aGUgdGFibGUu DQo+ID4+Pj4NCj4gPj4+PiBUaGFua3MhDQo+ID4+Pj4gTGFzemxvDQo+ID4+Pj4NCj4gPj4+Pj4N Cj4gPj4+Pj4gUm9iaW4uDQo+ID4+Pj4+DQo+ID4+Pj4+PiAoSGkgTGFzemxvL0lnb3IvRXJpYywg cGxlYXNlIGZlZWwgZnJlZSB0byBhZGQvY2hhbmdlIGlmIEkgaGF2ZSBtaXNzZWQNCj4gPj4+Pj4+ IGFueSB2YWxpZA0KPiA+Pj4+Pj4gcG9pbnRzIGFib3ZlKS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBU aGFua3MsDQo+ID4+Pj4+PiBTaGFtZWVyDQo+ID4+Pj4+PiBbMF0gaHR0cHM6Ly9wYXRjaHdvcmsu a2VybmVsLm9yZy9jb3Zlci8xMDg5MDkxOS8NCj4gPj4+Pj4+IFsxXSBodHRwczovL3BhdGNod29y ay5rZXJuZWwub3JnL3BhdGNoLzEwODYzMjk5Lw0KPiA+Pj4+Pj4gWzJdIGh0dHBzOi8vcGF0Y2h3 b3JrLmtlcm5lbC5vcmcvcGF0Y2gvMTA4OTA5MzcvDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+ Pg0KPiA+Pj4NCj4gPg0K