From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:a17:505:917:b0:1be9:327d:8ee3 with SMTP id hq23csp583039njb; Thu, 22 Aug 2024 03:58:13 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUz74PHSs63k0BwIsZ0ObQGxQaLdcClzzgXpEoLIXO0epRuRt3yi1Fd0A7lrbY+Zw8TCTzt/6nfqR4c+A==@linaro.org X-Google-Smtp-Source: AGHT+IEGCuWqqDoPLzgNdCdKVArU6155jVyJifDE86yJP9hag2rEuUDsm1OC+J09O/ccfYB/R4mm X-Received: by 2002:a05:600c:4691:b0:428:111a:193 with SMTP id 5b1f17b1804b1-42ac563885fmr11289805e9.37.1724324293725; Thu, 22 Aug 2024 03:58:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1724324293; cv=none; d=google.com; s=arc-20240605; b=B+qQ1fOHGpz0rUqQcEqsekpIsrBkcJH8XzvglE5d2cyWBWLFPvLUxINUDYZ8AnlIyy SxeSsR/lRfw6hOPN3oR+mR3FWxC72Ca51Xm0O5uq9DVLlYxKMFAJPECzS9CRIOvl3Jtd 9SMMipATEApIz572bGqSiKaLxDHb6FrWwLD3P37fc0wsTg4r7eSiVcC0uV7G5WJ//xxB qTUkMi99r4+HcxMf3czP1eFrm13QOZ53Qsq2t8wo4Ij5rfP8z3ou0DB8fvg9OdalGRbk Nq1KDgHTN20Dz5VWDJN1y66FjbYIV4HOOWRbj7wsE+BxLjs9lNxRt2XJ/7iD1lwEwQxA NzJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=n9TAw5fZ+WkuRXbPp5FEpmouZB7u43QBhZnilQcE/BI=; fh=IcghoZT+iwDwnUWe0/8u2lfgCRl3Js+UrcNMjs/i9hE=; b=QD0Lg0gWI6SZr4mT5Hqayo1H0thCYS1ID/HQYGKshhV6To2BedHeaUAIJfggw3uzVe H17u2mSmhnB8PIuIomhj6ZoSPma+/VZWel6y95nYshLSZOA3PeNSwUF+TZrOSOnx+4qk 8ObAYehWH42E+ruouNoHo2h81KbpsxHioMlzwk3WFla8f36KpMRkGrp97Fh8MJOaseSh vlw/n55BIKn2KY5oxj+9E0Z0jof96vP7w8bdtP4zd21u0h3y5Vj/58eBEPP3I9RedmmG wSpDKGLxDldhQ0QjRnWj6DwMJXSo4/PhAI59davVOzHVjCuR22LwCeA1ALO90fYrIEFZ CVig==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of salil.mehta@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=salil.mehta@huawei.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from frasgout.his.huawei.com (frasgout.his.huawei.com. [185.176.79.56]) by mx.google.com with ESMTPS id 5b1f17b1804b1-42abf011fa1si16918625e9.207.2024.08.22.03.58.12 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Aug 2024 03:58:13 -0700 (PDT) Received-SPF: pass (google.com: domain of salil.mehta@huawei.com designates 185.176.79.56 as permitted sender) client-ip=185.176.79.56; Authentication-Results: mx.google.com; spf=pass (google.com: domain of salil.mehta@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=salil.mehta@huawei.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4WqKpw4bcpz6LD82; Thu, 22 Aug 2024 18:55:04 +0800 (CST) Received: from lhrpeml500001.china.huawei.com (unknown [7.191.163.213]) by mail.maildlp.com (Postfix) with ESMTPS id E06CA1406AE; Thu, 22 Aug 2024 18:58:11 +0800 (CST) Received: from lhrpeml500001.china.huawei.com (7.191.163.213) by lhrpeml500001.china.huawei.com (7.191.163.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Thu, 22 Aug 2024 11:58:11 +0100 Received: from lhrpeml500001.china.huawei.com ([7.191.163.213]) by lhrpeml500001.china.huawei.com ([7.191.163.213]) with mapi id 15.01.2507.039; Thu, 22 Aug 2024 11:58:11 +0100 From: Salil Mehta To: Gavin Shan , "qemu-devel@nongnu.org" , "qemu-arm@nongnu.org" , "mst@redhat.com" CC: "maz@kernel.org" , "jean-philippe@linaro.org" , Jonathan Cameron , "lpieralisi@kernel.org" , "peter.maydell@linaro.org" , "richard.henderson@linaro.org" , "imammedo@redhat.com" , "andrew.jones@linux.dev" , "david@redhat.com" , "philmd@linaro.org" , "eric.auger@redhat.com" , "will@kernel.org" , "ardb@kernel.org" , "oliver.upton@linux.dev" , "pbonzini@redhat.com" , "rafael@kernel.org" , "borntraeger@linux.ibm.com" , "alex.bennee@linaro.org" , "npiggin@gmail.com" , "harshpb@linux.ibm.com" , "linux@armlinux.org.uk" , "darren@os.amperecomputing.com" , "ilkka@os.amperecomputing.com" , "vishnu@os.amperecomputing.com" , "karl.heubaum@oracle.com" , "miguel.luis@oracle.com" , "salil.mehta@opnsrc.net" , zhukeqian , "wangxiongfeng (C)" , "wangyanan (Y)" , "jiakernel2@gmail.com" , "maobibo@loongson.cn" , "lixianglai@loongson.cn" , "shahuang@redhat.com" , "zhao1.liu@intel.com" , Linuxarm Subject: RE: [PATCH RFC V3 17/29] arm/virt: Release objects for *disabled* possible vCPUs after init Thread-Topic: [PATCH RFC V3 17/29] arm/virt: Release objects for *disabled* possible vCPUs after init Thread-Index: AQHaveuckEaR/Tp4NUKcalC/yUyS9LIksGYAgAo1aXCAALcOgIABH0kAgADc+ICAAEc9cIAAMEmAgAApWnA= Date: Thu, 22 Aug 2024 10:58:11 +0000 Message-ID: <754a693989cf426bb07e40c43b80bce2@huawei.com> References: <20240613233639.202896-1-salil.mehta@huawei.com> <20240613233639.202896-18-salil.mehta@huawei.com> <51dc0813-7dc9-4927-a24b-bd718be54e46@redhat.com> <6b435c1f2b934867b8d82850d6d866c6@huawei.com> <9b7582f0-8149-4bf0-a1aa-4d4fe0d35e70@redhat.com> <1252c2d35b3e40ed84d5d5ae454878a7@huawei.com> <1c31ab30bae6437fac7799227ca4bfd1@huawei.com> <62227c7a-6c0e-403a-8d6a-9647c6e006e6@redhat.com> In-Reply-To: <62227c7a-6c0e-403a-8d6a-9647c6e006e6@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.126.171.245] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-TUID: mnbYnasaOrii SGkgR2F2aW4sDQoNCj4gIEZyb206IHFlbXUtYXJtLWJvdW5jZXMrc2FsaWwubWVodGE9aHVhd2Vp LmNvbUBub25nbnUub3JnIDxxZW11LQ0KPiAgYXJtLWJvdW5jZXMrc2FsaWwubWVodGE9aHVhd2Vp LmNvbUBub25nbnUub3JnPiBPbiBCZWhhbGYgT2YgR2F2aW4gU2hhbg0KPiAgU2VudDogV2VkbmVz ZGF5LCBBdWd1c3QgMjEsIDIwMjQgMjozMyBQTQ0KPiAgVG86IFNhbGlsIE1laHRhIDxzYWxpbC5t ZWh0YUBodWF3ZWkuY29tPjsgcWVtdS1kZXZlbEBub25nbnUub3JnOw0KPiAgcWVtdS1hcm1Abm9u Z251Lm9yZzsgbXN0QHJlZGhhdC5jb20NCj4gIA0KPiAgSGkgU2FsaWwsDQo+ICANCj4gIE9uIDgv MjEvMjQgODoyMyBQTSwgU2FsaWwgTWVodGEgd3JvdGU6DQo+ICA+Pg0KPiAgPj4gICBPbiA4LzIx LzI0IDI6NDAgQU0sIFNhbGlsIE1laHRhIHdyb3RlOg0KPiAgPj4gICA+DQo+ICA+PiAgID4gSSBk b27igJl0IHVuZGVyc3RhbmQgdGhpcyBjbGVhcmx5LiBBcmUgIHlvdSBzdWdnZXN0aW5nIHRvIHJl dXNlIG9ubHkNCj4gID4+ICAgPiBzaW5nbGUgdkNQVSBvYmplY3QgdG8gaW5pdGlhbGl6ZSBhbGwg S1ZNIHZDUFVzIG5vdCB5ZXQgcGx1Z2dlZD8gSWYNCj4gID4+ICAgPiB5ZXMsIHRoZW4gSSdtIG5v dCBzdXJlIHdoYXQgZG8gd2UgZ2FpbiBoZXJlIGJ5IGFkZGluZyB0aGlzIGNvbXBsZXhpdHk/DQo+ ICA+PiAgID4gSXQgZG9lcyBub3QgY29uc3VtZSB0aW1lIG9yIHJlc291cmNlcyBiZWNhdXNlIHdl IGFyZSBub3QgcmVhbGl6aW5nIGFueQ0KPiAgPj4gICA+IG9mIHRoZXNlIHZDUFUgb2JqZWN0IGlu IGFueSBjYXNlLg0KPiAgPj4gICA+DQo+ICA+Pg0KPiAgPj4gICBGaXJzdCBvZiBhbGwsIGl0IHNl ZW1zIHdlIGhhdmUgZGlmZmVyZW50IG5hbWVzIGFuZCB0ZXJtcyBmb3IgdGhvc2UgY29sZC0NCj4g ID4+ICAgYm9vdGVkIHZDUFVzIGFuZCBob3RwbHVnZ2FibGUgdkNQVXMuIEZvciBleGFtcGxlLCB2 Q1BVLTAgYW5kIHZDUFUtMQ0KPiAgPj4gICBhcmUgY29sZC1ib290ZWQgdkNQVXMgd2hpbGUNCj4g ID4+ICAgdkNQVS0yIGFuZCB2Q1BVLTMgYXJlIGhvdHBsdWdnYWJsZSB2Q1BVcyB3aGVuIHdlIGhh dmUgJy1zbXANCj4gID4+ICAgbWF4Y3B1cz00LGNwdXM9MicuIExldHMgc3RpY2sgdG8gY29udmVu dGlvbiBhbmQgdGVybXMgZm9yIGVhc2llciBkaXNjdXNzaW9uLg0KPiAgPj4NCj4gID4+ICAgVGhl IGlkZWEgaXMgYXZvaWQgaW5zdGFudGlhdGluZyBob3RwbHVnZ2FibGUgdkNQVXMgaW4gdmlydG1h Y2hfaW5pdCgpIGFuZA0KPiAgPj4gICByZWxlYXNlZCBpbiB0aGUgc2FtZSBmdW5jdGlvbiBmb3Ig dGhvc2UgaG90cGx1Z2dhYmxlIHZDUFVzLiBBcyBJIGNhbg0KPiAgPj4gICB1bmRlcnN0YW5kLCB0 aG9zZSBob3RwbHVnZ2FibGUgdkNQVSBpbnN0YW5jZXMgYXJlIHNlcnZpbmcgZm9yIHR3bw0KPiAg Pj4gICBwdXJwb3NlczogKDEpIFJlbGF4IHRoZSBjb25zdHJhaW50IHRoYXQgYWxsIHZDUFUncyAo a3ZtKSBmaWxlIGRlc2NyaXB0b3IgaGF2ZQ0KPiAgPj4gICB0byBiZSBjcmVhdGVkIGFuZCBwb3B1 bGF0ZWQ7DQo+ICA+DQo+ICA+DQo+ICA+IFdlIGFyZSBkZXZpc2luZyAqd29ya2Fyb3VuZHMqIGlu IFFlbXUgZm9yIHRoZSBBUk0gQ1BVIGFyY2hpdGVjdHVyYWwNCj4gID4gY29uc3RyYWludHMgaW4g S1ZNIGFuZCBpbiBHdWVzdCBLZXJuZWwsICAqbm90IHJlbGF4aW5nKiB0aGVtLiBXZSBhcmUNCj4g ID4gbm90IGFsbG93ZWQgdG8gbWVkZGxlIHdpdGggdGhlIGNvbnN0cmFpbnRzLiBUaGF0IGlzIHRo ZSB3aG9sZSBwb2ludC4NCj4gID4NCj4gID4gTm90IGhhdmluZyB0byByZXNwZWN0IHRob3NlIGNv bnN0cmFpbnRzIGxlZCB0byByZWplY3Rpb24gb2YgdGhlDQo+ICA+IGVhcmxpZXIgYXR0ZW1wdHMg dG8gdXBzdHJlYW0gVmlydHVhbCBDUFUgSG90cGx1ZyBmb3IgQVJNLg0KPiAgPg0KPiAgDQo+ICBJ IG1lYW50IHRvICdvdmVyY29tZScgdGhlIGNvbnN0cmFpbnRzIGJ5ICdyZWxheCcuIE15IGFwb2xv Z2llcyBpZiB0aGVyZSdyZSBhbnkNCj4gIGNhdXNlZCBjb25mdXNpb25zLg0KDQoNCk9rLiBObyBp c3N1ZXMuIEl0IHdhcyBpbXBvcnRhbnQgZm9yIG1lIHRvIGNsYXJpZnkgdGhvdWdoLg0KDQoNCiBQ cmV2aW91c2x5LCB5b3UgaGFkIGF0dGVtcHQgdG8gY3JlYXRlIGFsbCB2Q1BVIG9iamVjdHMNCj4g IGFuZCByZXVzZSB0aGVtIHdoZW4gdkNQVSBob3QgYWRkZWQuDQoNClllcywgYXQgUU9NIGxldmVs LiBCdXQgdGhhdCBhcHByb2FjaCBkaWQgbm90IHJlYWxpemUgdGhlIHVucGx1Z2dlZC95ZXQtdG8t YmUtcGx1Z2dlZA0KdkNQVXMuIFdlIHdlcmUganVzdCB1c2luZyBRT00gdkNQVSBvYmplY3RzIGFz IHRoZSBwbGFjZSBob2xkZXJzDQoNCiBJbiBjdXJyZW50IGltcGxlbWVudGF0aW9uLCB0aGUNCj4g IGhvdHBsdWdnYWJsZSB2Q1BVcyBhcmUgaW5zdGFudGlhdGVkIGFuZCByZWxlYXNlZCBwcmV0dHkg c29vbi4gSSB3YXMNCj4gIGJyaW5naW5nIHRoZSB0aGlyZCBwb3NzaWJpbGl0eSwgdG8gYXZvaWQg aW5zdGFudGlhdGluZyB0aG9zZSBob3RwbHVnZ2FibGUgdkNQVQ0KPiAgb2JqZWN0cywgZm9yIGRp c2N1c3Npb24uIA0KDQoNCkFyZSB5b3Ugc3VnZ2VzdGluZyBub3QgY2FsbGluZyBLVk1fQVJNX1ZD UFVfSU5JVCBJT0NUTCBhcyBhbGwgZm9yIHRoZSB2Q1BVcw0Kd2hpY2ggYXJlIHBhcnQgb2YgcG9z c2libGUgbGlzdCBidXQgbm90IHlldCBwbHVnZ2VkPw0KDQpJZiB5ZXMsIHdlIGNhbm5vdCBkbyB0 aGF0IGFzIEtWTSB2Q1BVcyBzaG91bGQgYmUgZnVsbHkgaW5pdGlhbGl6ZWQgZXZlbiBiZWZvcmUN ClZHSUMgaXMgaW5pdGlhbGl6ZWQgaW5zaWRlIHRoZSBLVk0uIFRoaXMgaXMgYSBjb25zdHJhaW50 LiBJJ3ZlIGV4cGxhaW5lZCB0aGlzIGluDQpkZXRhaWwgaW4gdGhlIGNvdmVyIGxldHRlciBvZiB0 aGlzIHBhdGNoLXNldCBhbmQgaW4gdGhlIHNsaWRlcyBJIGhhdmUgc2hhcmVkDQplYXJsaWVyLg0K DQoNCkluIHRoaXMgc2VyaWVzLCB0aGUgbGlmZSBjeWNsZSBvZiB0aG9zZSBob3RwbHVnZ2FibGUN Cj4gIHZDUFUgb2JqZWN0cyBhcmUgcmVhbGx5IHNob3J0LiBBZ2FpbiwgSSBkaWRuJ3Qgc2F5IHdl IG11c3QgYXZvaWQgaW5zdGFudGlhdGluZw0KPiAgdGhvc2UgdkNQVSBvYmplY3RzLCBJIGJyb3Vn aHQgdGhlIHRvcGljIE9OTFkgZm9yIGRpc2N1c3Npb24uDQoNClN1cmUsIEkgYXBwcmVjaWF0ZSB0 aGF0LiBGb3IgdGhlIGRldGFpbHMgb2YgdGhlIHJlYXNvbnMgcGxlYXNlIGZvbGxvdyBiZWxvdzoN Cg0KMS4gQ292ZXIgTGV0dGVyIG9mIHRoaXMgcGF0Y2gtc2V0IChDb25zdHJhaW50cyBhcmUgZXhw bGFpbmVkIHRoZXJlKQ0KMi4gS1ZNRm9ydW0gU2xpZGVzIG9mIDIwMjAgYW5kIDIwMjMNCg0KDQo+ ICA+ICgyKSBIZWxwIHRvIGluc3RhbnRpYXRlIGFuZCByZWFsaXplDQo+ICA+PiAgIEdJQ3YzIG9i amVjdC4NCj4gID4+DQo+ICA+PiAgIEZvciAoMSksIEkgZG9uJ3QgdGhpbmsgd2UgaGF2ZSB0byBp bnN0YW50aWF0ZSB0aG9zZSBob3RwbHVnZ2FibGUgdkNQVXMgYXQgYWxsLg0KPiAgPj4gICBJbiB0 aGUgYWJvdmUgZXhhbXBsZSB3aGVyZSB3ZSBoYXZlIGNvbW1hbmQgbGluZSAnLXNtcA0KPiAgPj4g ICBtYXhjcHVzPTQsY3B1cz0yJywgaXQncyB1bm5lY2Vzc2FyeSB0byBpbnN0YW50aWF0ZQ0KPiAg Pj4gICB2Q1BVLTMgYW5kIHZDUFUtNCB0byBjcmVhdGUgYW5kIHBvcHVsYXRlIHRoZWlyIEtWTSBm aWxlIGRlc2NyaXB0b3JzLg0KPiAgPg0KPiAgPg0KPiAgPiBXZSBjYW5ub3QgZGVmZXIgY3JlYXRl IHZDUFUgaW4gS1ZNIGFmdGVyIEdJQyBoYXMgYmVlbiBpbml0aWFsaXplZCBpbiBLVk0uDQo+ICA+ IEl0IG5lZWRzIHRvIGtub3cgZXZlcnkgdkNQVSB0aGF0IHdpbGwgZXZlciBleGlzdHMgcmlnaHQg YXQgdGhlIHRpbWUgaXQNCj4gID4gaXMgZ2V0dGluZyBJbml0aWFsaXplZC4gVGhpcyBpcyBhbiBB Uk0gQ1BVIEFyY2hpdGVjdHVyYWwgY29uc3RyYWludC4NCj4gID4NCj4gIA0KPiAgSXQgd2lsbCBi ZSBhcHByZWNpYXRlZCBpZiBtb3JlIGRldGFpbHMgb3RoZXIgdGhhbiAnYW4gQVJNIENQVSBhcmNo aXRlY3R1cmFsIGNvbnN0cmFpbnQnDQo+ICBjYW4gYmUgcHJvdmlkZWQuIEkgZG9uJ3QgdW5kZXJz dGFuZCB0aGlzIGNvbnN0cmFpbiB2ZXJ5IHdlbGwgYXQgbGVhc3QuDQoNCg0KV2UgY2Fubm90IGRv IHRoYXQgYXMgd2UgTVVTVCBwcmVzZW50IEtWTSB2Q1BVcyB0byB0aGUgVkdJQyBmdWxseSBpbml0 aWFsaXplZCwNCmV2ZW4gYmVmb3JlIGl0IHN0YXJ0cyBpdHMgaW5pdGlhbGl6YXRpb24uIEluaXRp YWxpemF0aW9uIG9mIHRoZSB2Q1BVcyBhbHNvIGluaXRpYWxpemVzDQp0aGUgc3lzdGVtIHJlZ2lz dGVycyBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgS1ZNIHZDUFUuICANCg0KRm9yIGV4YW1wbGUsIE1Q SURSX0VMMSBtdXN0IGJlIGluaXRpYWxpemVkIGF0IFZDUFUgSU5JVCB0aW1lLiBXZSBjYW5ub3QN CmF2b2lkIHRoaXMuIE1QSURSIHZhbHVlIGlzIHVzZWQgYnkgVkdJQyBkdXJpbmcgaXRzIGluaXRp YWxpemF0aW9uLiBUaGlzIE1VU1QgYmUNCnByZXNlbnQgZm9yIGFsbCBvZiB0aGUgcG9zc2libGUg S1ZNIHZDUFVzIHJpZ2h0IGZyb20gc3RhcnQgZHVyaW5nIHZnaWNfaW5pdCgpDQoNClBsZWFzZSBj aGVjayB0aGUgY292ZXIgbGV0dGVyIG9mIHRoaXMgcGF0Y2gtc2V0LCBJIGV4cGxhaW5lZCB0aGVz ZSB0aGVyZSBhbmQgdGhlDQpLVk1Gb3J1bSBzbGlkZXMuICBQbGVhc2UgcmV2aWV3IGFuZCBjb21t ZW50IHRoZXJlIGFuZCBsZXQgbWUga25vdyB3aGF0IGlzDQpub3QgY2xlYXIgZnJvbSB0aGUgdGV4 dC4NCg0KDQo+ICA+ICAgQQ0KPiAgPj4gICB2Q1BVJ3MgS1ZNIGZpbGUgZGVzY3JpcHRvciBpcyBj cmVhdGUgYW5kIHBvcHVsYXRlZCBieSB0aGUgZm9sbG93aW5nIGlvY3Rscw0KPiAgPj4gICBhbmQg ZnVuY3Rpb24gY2FsbHMuIFdoZW4gdGhlIGZpcnN0IHZDUFUgKHZDUFUtMCkgaXMgcmVhbGl6ZWQs IHRoZSBwcm9wZXJ0eQ0KPiAgPj4gICBjb3JyZXNwb25kaW5nIHRvICImaW5pdCIgaXMgZml4ZWQg Zm9yIGFsbCB2Q1BVcy4gSXQgbWVhbnMgYWxsIHZDUFVzIGhhdmUgc2FtZQ0KPiAgPj4gICBwcm9w ZXJ0aWVzIGV4Y2VwdCB0aGUgInZjcHVfaW5kZXgiLg0KPiAgPj4NCj4gID4+ICAgICAgaW9jdGwo dm0tZmQsICAgS1ZNX0NSRUFURV9WQ1BVLCAgIHZjcHVfaW5kZXgpOw0KPiAgPj4gICAgICBpb2N0 bCh2Y3B1LWZkLCBLVk1fQVJNX1ZDUFVfSU5JVCwgJmluaXQpOw0KPiAgPj4gICAgICBrdm1fcGFy a192Y3B1KGNzKTsNCj4gID4+DQo+ICA+PiAgIEEgdkNQVSdzIHByb3BlcnRpZXMgYXJlIGRldGVy bWluZWQgYnkgdHdvIHNvdXJjZXMgYW5kIGJvdGggYXJlIGdsb2JhbC4gSXQNCj4gID4+ICAgbWVh bnMgYWxsIHZDUFVzIHNob3VsZCBoYXZlIHNhbWUgcHJvcGVydGllczogKGEpIEZlYXR1cmUgcmVn aXN0ZXJzDQo+ICA+PiAgIHJldHVybmVkIGZyb20gdGhlIGhvc3QuIFRoZSBmdW5jdGlvbg0KPiAg Pj4gICBrdm1fYXJtX2dldF9ob3N0X2NwdV9mZWF0dXJlcygpIGlzIGNhbGxlZCBmb3Igb25jZSwg bWVhbmluZyB0aGlzIHNvdXJjZQ0KPiAgPj4gICBpcyBzYW1lIHRvIGFsbCB2Q1BVczsNCj4gID4N Cj4gID4NCj4gID4gU3VyZSwgYnV0IHdoYXQgYXJlIHlvdSB0cnlpbmcgdG8gc2F2ZSBoZXJlPw0K PiAgPg0KPiAgDQo+ICBBcyBtZW50aW9uZWQgYWJvdmUsIHRoZSBsaWZlIGN5Y2xlIG9mIHRob3Nl IGhvdHBsdWdnYWJsZSB2Q1BVIG9iamVjdHMgYXJlDQo+ICByZWFsbHkgc2hvcnQuIFRoZXkgc3Rp bGwgY29uc3VtZSB0aW1lIGFuZCBtZW1vcnkgdG8gaW5zdGFudGlhdGUgdGhlbS4gSWYgSSdtDQo+ ICBjb3JyZWN0LCBvbmUgb2YgdGhlIHByaW1hcnkgZ29hbCBmb3IgdkNQVSBob3RwbHVnIGZlYXR1 cmUgaXMgdG8gc2F2ZSBzeXN0ZW0NCj4gIGJvb3QtdXAgdGltZSwgY29ycmVjdD8NCg0KDQpDb3Jy ZWN0LiBXZSB0YXJnZXRlZCB2Q1BVIGhvdHBsdWcgZm9yIEthdGEtY29udGFpbmVycyBmb3Igb24t ZGVtYW5kIHJlc291cmNlDQphbGxvY2F0aW9uIGFuZCBzYXZpbmcgdGhlIHJlc291cmNlcy4gS2F0 YS1jb250YWluZXJzIGNhbiB3b3JrIHdpdGggZGlmZmVyZW50IHR5cGVzDQpvZiBWTU0gbGlrZSBR ZW11IGFuZCBtaWNyb1ZNcyBsaWtlIEZpcmVjcmFja2VyLiBBRkFJSywgVXNlY2FzZSBvZiBtaWNy b1ZNIGlzDQpzbGlnaHRseSBkaWZmZXJlbnQgdGhhbiB0aGUgbm9ybWFsIGNvbnRhaW5lcnMuIFRo ZXkgYXJlIHNob3J0IGxpdmVkIChzYXkgYXJvdW5kDQoxNSBtaW4pIGFuZCByZXF1aXJlIHVsdHJh ZmFzdCBib290LXVwIHRpbWVzIChzYXkgbGVzcyB0aGFuIDEyNSBtcykgLSB0aGVzZSBmaWd1cmVz DQphcmUgZnJvbSBBbWF6b24gd2hvIGludmVudGVkIHRoZSBjb25jZXB0IG9mIG1pY3JvVk0gaW4g dGhlIGVhcmxpZXIgZGVjYWRlLg0KDQpXaXRoIHRoZSBjdXJyZW50IHBhdGNoZXMsIHdlIGhhdmUg b25seSBwYXJ0aWFsbHkgYWNoaWV2ZWQgd2hhdCB3ZSBoYWQgc3RhcnRlZA0KaS5lLiBLYXRhL1Fl bXUgYnV0IHdlIGFsc28gd2FudCB0byB0YXJnZXQgS2F0YS9taWNyb1ZNLiBJbiBvdXIgY2FzZSwg d2Ugd2FudA0KdGhhdCBtaWNyb1ZNIHRvIGJlIFFlbXUgYmFzZWQgZnJvIEFSTS4gSSB0aGluayB4 ODYgYWxyZWFkeSBoYXMgcmVkdWNlZCBsb3RzDQpvZiBsZWdhY3kgc3R1ZmYgYW5kIGNyZWF0ZWQg YSBtaWNyb1ZNIGluIFFlbXUuIEknbSBub3Qgc3VyZSBob3cgaXQgY29tcGFyZXMNCmFnYWluc3Qg dGhlIHRydWUgbWljcm9WTSBsaWtlIEZpcmVjcmFja2VyLiBJdCB3aWxsIGJlIGEgZ29vZCB0YXJn ZXQgdG8gcmVkdWNlDQptZW1vcnkgZm9vdCBwcmludCBvZiBBUk0gUWVtdSBWaXJ0IE1hY2hpbmUu IG9yIHRoaW5rIG9yIGNyZWF0aW5nIGEgbmV3IG9uZQ0KanVzdCBsaWtlIHg4Ni4gVXNpbmcgdGhl IHZDUFUgSG90cGx1ZyBmZWF0dXJlIHdlIHdlcmUgZHJhc3RpY2FsbHkgYWJsZSB0byByZWR1Y2UN CnRoZSBib290IHVwIHRpbWVzIG9mIFFlbXUuIFBsZWFzZSBjaGVjayB0aGUgY2FsaWJyYXRlZCBw ZXJmb3JtYW5jZSBmaWd1cmVzIGluDQpLVm1Gb3J1bSAgMjAyMyBzbGlkZSAxOUcgKFBhZ2UgMjYp IFsxXQ0KDQpbMV0gIGh0dHBzOi8va3ZtLWZvcnVtLnFlbXUub3JnLzIwMjMvQ2hhbGxlbmdlc19S ZXZpc2l0ZWRfaW5fU3VwcG9ydGluZ19WaXJ0X0NQVV9Ib3RwbHVnXy1fX2lpMGlOYjMucGRmDQoN Ckxhc3QgeWVhciwgSSBoYWQgcHJvdG90eXBlZCBhIG1pY3JvVk0gZm9yIEFSTSwgTWljaGFlbCBU c2lya2luIHN1Z2dlc3RlZCB0aGF0IGlmDQp0aGUgcGVyZm9ybWFuY2UgbnVtYmVyIG9mIHRoZSBB Uk0gVmlydCBtYWNoaW5lIGNhbiBtYXRjaCB0aGUgeDg2IG1pY3JvVk0gdGhlbg0Kd2UgbWlnaHQg bm90IHJlcXVpcmUgYW4gZXhwbGljaXQgbWljcm9WTSBjb2RlIGZvciBBUk0uIEhlbmNlLCBteSBj dXJyZW50IGVmZm9ydHMNCmFyZSB0byByZWR1Y2UgdGhlIG1lbW9yeSBmb290IHByaW50IG9mIGV4 aXN0aW5nIFZpcnQgbWFjaGluZS4gQnV0IEkgZG8gaGF2ZSBhIHJvdWdoDQpwcm90b3R5cGUgb2Yg bWljcm9WTSBhcyB3ZWxsLiBXZSBjYW4gZGViYXRlIGFib3V0IHRoYXQgbGF0ZXIgaW4gYSBkaWZm ZXJlbnQgDQpkaXNjdXNzaW9uLg0KDQoNCj4gID4+ICAgKGIpIFRoZSBwYXJhbWV0ZXJzIHByb3Zp ZGVkIGJ5IHVzZXIgdGhyb3VnaCAnLWNwdSBob3N0LHN2ZT1vZmYnIGFyZQ0KPiAgPj4gICB0cmFu c2xhdGVkIHRvIGdsb2JhbCBwcm9wZXJ0aWVzIGFuZCBhcHBsaWVkIHRvIGFsbCB2Q1BVcyB3aGVu IHRoZXkncmUNCj4gID4+ICAgaW5zdGFudGlhdGVkLg0KPiAgPg0KPiAgPg0KPiAgPiBTdXJlLiBT YW1lIGlzIHRoZSBjYXNlIHdpdGggUE1VIGFuZCBvdGhlciBwZXItdkNQVSBwYXJhbWV0ZXJzLg0K PiAgPiBXZSBkbyBub3Qgc3VwcG9ydCBoZXRlcm9nZW5vdXMgY29tcHV0aW5nIGFuZCB0aGVyZWZv cmUgd2UgZG8gbm90IGhhdmUNCj4gID4gcGVyLXZDUFUgY29udHJvbCBvZiB0aGVzZSBmZWF0dXJl cyBhcyBvZiBub3cuDQo+ICA+DQo+ICA+DQo+ICA+Pg0KPiAgPj4gICAgICAgICAgKGEpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYikNCj4gID4+DQo+ICA+PiAg ICAgIGFhcmNoNjRfaG9zdF9pbml0Zm4gICAgICAgICAgICAgICAgICAgICAgICAgIHFlbXVfaW5p dA0KPiAgPj4gICAgICBrdm1fYXJtX3NldF9jcHVfZmVhdHVyZXNfZnJvbV9ob3N0ICAgICAgICAg ICBwYXJzZV9jcHVfb3B0aW9uDQo+ICA+PiAgICAgICAga3ZtX2FybV9nZXRfaG9zdF9jcHVfZmVh dHVyZXMNCj4gIGNwdV9jb21tb25fcGFyc2VfZmVhdHVyZXMNCj4gID4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRldl9wcm9wX3JlZ2lzdGVyX2ds b2JhbA0KPiAgPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDoNCj4gID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGV2aWNlX3Bvc3RfaW5pdA0KPiAgPj4NCj4gID4+IHFkZXZfcHJvcF9zZXRfZ2xv YmFscw0KPiAgPg0KPiAgPg0KPiAgPiBTdXJlLCBJIHVuZGVyc3RhbmQgdGhlIGNvZGUgZmxvdyBi dXQgd2hhdCBhcmUgeW91IHRyeWluZyB0byBzdWdnZXN0IGhlcmU/DQo+ICA+DQo+ICANCj4gIEkg dHJpZWQgdG8gZXhwbGFpbiB0aGF0IHZDUFUgb2JqZWN0IGlzbid0IG5lZWRlZCB0byBjcmVhdGUg YW5kIHBvcHVsYXRlDQo+ICB2Q1BVJ3MgZmlsZSBkZXNjcmlwdG9ycywgYXMgaGlnaGxpZ2h0IGlu ICgxKS4gVGhlIGluZm9ybWF0aW9uIHVzZWQgdG8gY3JlYXRlIHRoZQ0KPiAgY29sZC1ib290ZWQN Cj4gIHZDUFUtMCBjYW4gYmUgcmV1c2VkIGJlY2F1c2UgYWxsIHZDUFVzIGhhdmUgc2FtZSBwcm9w ZXJ0aWVzIGFuZCBmZWF0dXJlDQo+ICBzZXQuDQoNCg0KSXQgZG9lcyBub3QgbWF0dGVyLiBXZSB1 c2UgdGhvc2UgUU9NIHZDUFUgb2JqZWN0IHN0YXRlcyB0byBpbml0aWFsaXplcyBRZW11IA0KR0lD djMgbW9kZWwgd2l0aCBtYXggcG9zc2libGUgdkNQVXMgYW5kIHRoZW4gcmVsZWFzZSB0aGUgUU9N IHZDUFUgb2JqZWN0cy4NCndoaWNoIGFyZSB5ZXQtdG8tYmUtcGx1Z2dlZC4NCg0KDQo+ICA+PiAg IEZvciAoMiksIEknbSBzdGlsbCBsb29raW5nIGludG8gdGhlIEdJQ3YzIGNvZGUgZm9yIGJldHRl ciB1bmRlcnN0YW5kaW5nLg0KPiAgPg0KPiAgPg0KPiAgPiBPaCwgSSB0aG91Z2h0IHlvdSBzYWlk IHlvdSd2ZSBmaW5pc2hlZCB5b3VyIHJldmlld3Mg8J+Yig0KPiAgPg0KPiAgPiBQbGVhc2UgdGFr ZSB5b3VyIHRpbWUuIEZvciB5b3VyIHJlZmVyZW5jZSwgeW91IG1pZ2h0IHdhbnQgdG8gY2hlY2s6 DQo+ICA+DQo+ICA+IEtWTUZvcnVtIDIwMjM6DQo+ICA+IGh0dHBzOi8va3ZtLQ0KPiAgZm9ydW0u cWVtdS5vcmcvMjAyMy9DaGFsbGVuZ2VzX1JldmlzaXRlZF9pbl9TdXBwb3J0aW5nX1Zpcg0KPiAg PiB0X0NQVV9Ib3RwbHVnXy1fX2lpMGlOYjMucGRmDQo+ICA+IGh0dHBzOi8va3ZtLWZvcnVtLnFl bXUub3JnLzIwMjMvS1ZNLWZvcnVtLWNwdS0NCj4gIGhvdHBsdWdfN09KMVl5Si5wZGYNCj4gID4N Cj4gID4gS1ZNRm9ydW0gMjAyMDoNCj4gID4gaHR0cHM6Ly9rdm0tDQo+ICBmb3J1bS5xZW11Lm9y Zy8yMDIwL09jdCUyMDI5X0NoYWxsZW5nZXMlMjBpbiUyMFN1cHBvcnRpbmclDQo+ICA+DQo+ICAy MFZpcnR1YWwlMjBDUFUlMjBIb3RwbHVnJTIwaW4lMjBTb0MlMjBCYXNlZCUyMFN5c3RlbXMlMjBs aWtlJTINCj4gIDBBUk02NF8NCj4gID4gU2FsaWwlMjBNZWh0YS5wZGYNCj4gID4NCj4gIA0KPiAg aG1tLCAnZmluaXNoZWQgbXkgcmV2aWV3JyBoYXMgYmVlbiBtaXNyZWFkIGZyYW5rbHkuIEJ5IHRo YXQsIEkgbWVhbnQgSQ0KPiAgZmluaXNoZWQgbXkgdGVzdHMgYW5kIHByb3ZpZGVkIGFsbCB0aGUg Y29tbWVudHMgSSBoYWQuIFNvbWUgb2YgdGhlbSBhcmUNCj4gIHF1ZXN0aW9ucyBhbmQgZGlzY3Vz c2lvbnMsIHdoaWNoIEkgc3RpbGwgbmVlZCB0byBmb2xsb3cgdXAuDQoNCg0KU3VyZS4gTm8gd29y cmllcy4gRXZlbiBpZiB5b3UgbWlzcywgeW91IHdpbGwgaGF2ZSBtb3JlIGNoYW5jZSB0byBjb21t ZW50IG9uDQp1cGNvbWluZyBSRkMgVjQg8J+Yig0KDQoNCj4gID4gVW50aWwNCj4gID4+ICAgbm93 LCBJIGRvbid0IHNlZSB3ZSBuZWVkIHRoZSBpbnN0YW50aWF0ZWQgaG90cGx1Z2dhYmxlIHZDUFVz IGVpdGhlci4NCj4gID4NCj4gID4NCj4gID4gSSB0aGluaywgSSd2ZSBhbHJlYWR5IGFuc3dlcmVk IHRoaXMgYWJvdmUgaXQgaXMgYmVjYXVzZSBvZiBBUk0gQXJjaGl0ZWN0dXJhbA0KPiAgY29uc3Ry YWludC4NCj4gID4NCj4gID4NCj4gID4gICBGb3INCj4gID4+ICAgZXhhbXBsZSwgdGhlIHJlZGlz dHJpYnV0b3IgcmVnaW9ucyBjYW4gYmUgZXhwb3NlZCBiYXNlZCBvbiAnbWF4Y3B1cycNCj4gID4+ ICAgaW5zdGVhZCBvZiAnY3B1cycuDQo+ICA+DQo+ICA+IFlvdSBtZWFuIGR1cmluZyB0aGUgcmV2 aWV3IG9mIHRoZSBjb2RlIHlvdSBmb3VuZCB0aGF0IHdlIGFyZSBub3QgZG9pbmcNCj4gIGl0Pw0K PiAgPg0KPiAgDQo+ICBJdCdzIGFsbCBhYm91dCB0aGUgZGlzY3Vzc2lvbiB0byB0aGUgcG9zc2li aWxpdHkgdG8gYXZvaWQgaW5zdGFudGlhdGluZw0KPiAgaG90cGx1Z2dhYmxlIHZDUFUgb2JqZWN0 cy4NCg0KDQpBcyBtZW50aW9uZWQgYWJvdmUsIHdpdGggdGhlIGN1cnJlbnQgS1ZNIGNvZGUgeW91 IGNhbm5vdC4gQnV0IGlmIHdlDQpyZWFsbHkgd2FudCB0byB0aGVuIHBlcmhhcHMgd2Ugd291bGQg bmVlZCB0byBjaGFuZ2UgS1ZNLg0KDQpJIG1pZ2h0IGJlIHdyb25nIGJ1dCBBRkFJQ1MgSSBkb27i gJl0IHNlZSBhIHJlYXNvbiB3aHkgd2UgY2Fubm90IGhhdmUNCnNvbWV0aGluZyBsaWtlICpiYXRj aCogS1ZNIHZDUFUgY3JlYXRlIGFuZCAgaW5pdGlhbGl6ZSBpbnN0ZWFkIG9mIGN1cnJlbnQNCnNl cXVlbnRpYWwgS1ZNIG9wZXJhdGlvbnMuIFRoaXMgd2lsbCBhdm9pZCBtdWx0aXBsZSBjYWxscyB0 byB0aGUgS1ZNIEhvc3QNCmFuZCBjYW4gaW1wcm92ZSBRZW11IGluaXQgdGltZSBmdXJ0aGVyLiBC dXQgdGhpcyB3aWxsIHJlcXVpcmUgYSBzZXBhcmF0ZQ0KZGlzY3Vzc2lvbiBpbiB0aGUgTEtNTCBp bmNsdWRpbmcgYWxsIHRoZSBLVk0gZm9sa3MuDQoNClRoaXMgaGFzIHBvdGVudGlhbCB0byBkZWxh eSB0aGUgdkNQVSBob3RwbHVnIGZlYXR1cmUgYWNjZXB0YW5jZSBhbmQgSSdtDQpyZWFsbHkgbm90 IGluIGZhdm9yIG9mIHRoYXQuIFdlIGhhdmUgYWxyZWFkeSBzdHJldGNoZWQgaXQgYSBsb3QgYmVj YXVzZSBvZg0KdGhlIHN0YW5kYXJkcyBjaGFuZ2UgYWNjZXB0YW5jZSBlYXJsaWVyLg0KDQoNCj4g ID4gVGhlIElSUSBjb25uZWN0aW9uIGFuZCB0ZWFyZG93biBjYW4gYmUgZHluYW1pY2FsbHkNCj4g ID4+ICAgZG9uZSBieSBjb25uZWN0aW5nIHRoZSBib2FyZCB3aXRoIEdJQ3YzIHRocm91Z2ggY2Fs bGJhY2tzIGluDQo+ICA+PiAgIEFSTUdJQ3YzQ29tbW9uQ2xhc3MuDQo+ICA+PiAgIFRoZSBjb25u ZWN0aW9uIGJldHdlZW4gR0lDdjNDUFVTdGF0ZSBhbmQgQ1BVQVJNU3RhdGUgYWxzbyBjYW4gYmUN Cj4gID4+ICAgZG9uZSBkeW5hbWljYWxseS4NCj4gID4NCj4gID4gQXJlIHlvdSBzdWdnZXN0aW5n IHRoaXMgYWZ0ZXIgcmV2aWV3aW5nIHRoZSBjb2RlIG9yIHlvdSBoYXZlIHRvIHJldmlldw0KPiAg PiBpdCB5ZXQ/IPCfmIkNCj4gID4NCj4gIA0KPiAgSSB3YXMgYWN0dWFsbHkgdHJ5aW5nIHRvIGFz ayBmb3IgeW91ciBpbnB1dCBhbmQgZmVlZGJhY2suIEkgd2FzIGhvcGluZyB5b3VyDQo+ICBpbnB1 dCB0byBjbGVhciBteSBwdXp6bGVzOiB3aHkgdkNQVSBvYmplY3RzIG11c3QgYmUgaW4gcGxhY2Ug dG8gY3JlYXRlDQo+ICBHSUN2MyBvYmplY3Q/DQo+ICBJcyBpdCBwb3NzaWJsZSB0byBjcmVhdGUg dGhlIEdJQ3YzIG9iamVjdCB3aXRob3V0IHRob3NlIHZDUFUgb2JqZWN0cz8gDQoNCg0KTm8uIFZH SUMgaW5pdGlhbGl6ZXMgSVJRcyB0byB0YXJnZXQgS1ZNIHZDUFVzLCBpdCB3b3VsZCBleHBlY3Qg c2FtZSBLVk0gdkNQVSBNUElEUg0Kb3IgTVAtQUZGSU5JVFkgY29uZmlndXJlZCB3aGVuIEtWTSB2 Q1BVcyB3ZXJlIGluaXRpYWxpemVkIGF0IHRoZSBmaXJzdCBwbGFjZQ0Kb3RoZXJ3aXNlIHRoZSBW R0lDIGluaXRpYWxpemF0aW9uIHdpbGwgbm90IGhhcHBlbiBjb3JyZWN0bHkuIEhlbmNlLCB0aGUg c2VxdWVuY2UuDQoNClRoZSBzZXF1ZW5jZSBvZiB0aGVzZSBpbml0aWFsaXphdGlvbiBpcyBnZW5l cmFsbHkgc3RyaWN0bHkgY29udHJvbGxlZCBieSBzcGVjaWZpY2F0aW9uDQp3aGljaCBpcyBjbG9z ZWx5IHRpZWQgdXAgd2l0aCBoYXJkd2FyZSBpbmNsdWRpbmcgcG93ZXJpbmcgdXAgaW5pdGlhbGl6 YXRpb25zLiANCllvdSB3aWxsIG5lZWQgdG8gaG9ub3IgdGhlIGV4cGVjdGF0aW9ucyBvZiB0aGUg S1ZNIFZHSUMgaW5pdCB3aGljaCBpbiB0dXJuIGFyZQ0KQVJNIENQVSBBcmNoaXRlY3R1cmUgc3Bl Y2lmaWNhdGlvbiBjb21wbGlhbnQuIEl0IGlzIG5vdCBqdXN0IGEgbG9vc2VseSB3cml0dGVuIGNv ZGUuDQoNCg0KV2hhdA0KPiAga2luZHMgb2YgZWZmb3J0cyB3ZSBuZWVkIHRvIGF2b2lkIGluc3Rh bnRpYXRpbmcgdGhvc2UgaG90cGx1Z2dhYmxlIHZDUFUNCj4gIG9iamVjdHMuDQoNCg0KSSBtZW50 aW9uZWQgb25lIG9mIHRoZSB3YXlzIGFib3ZlLiBJbnRyb2R1Y2UgKmJhdGNoKiBLVk0gdkNQVSBj cmVhdGUgJg0KaW5pdGlhbGl6ZS4gQnV0IGl0IHdpbGwgaGF2ZSB0byB1bmRlcmdvIGdyZWF0ZXIg c2NydXRpbnkgYmVjYXVzZSB3ZSBhcmUgdG91Y2hpbmcNCmEgY29tbW9uIHBhcnQgd2hpY2ggbWln aHQgYWZmZWN0IG1hbnkgc3Rha2UgaG9sZGVycy4gIEJ1dCB0aGlzIGlzIGEgZGlzY3Vzc2lvbg0K d2UgY2FuIGRvIGxhdGVyIGFzIHBhcnQgb2YgbWljcm9WTSBmb3IgQVJNLiANCg0KDQpUaGFua3MN ClNhbGlsLg0KDQo+ICBUaGUgYmVzdCB3YXkgcGVyaGFwcyBpcyB0byBmaW5kIHRoZSBhbnN3ZXIg ZnJvbSB0aGUgY29kZSBieSBteXNlbGYgOy0pDQo+ICANCj4gIFRoYW5rcywNCj4gIEdhdmluDQo+ ICANCg0K 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 89FA7C3DA4A for ; Thu, 22 Aug 2024 10:58:51 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sh5WP-0000C1-P9; Thu, 22 Aug 2024 06:58:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sh5WO-0008WT-4b; Thu, 22 Aug 2024 06:58:28 -0400 Received: from frasgout.his.huawei.com ([185.176.79.56]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sh5WK-0003Gg-TZ; Thu, 22 Aug 2024 06:58:27 -0400 Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4WqKpw4bcpz6LD82; Thu, 22 Aug 2024 18:55:04 +0800 (CST) Received: from lhrpeml500001.china.huawei.com (unknown [7.191.163.213]) by mail.maildlp.com (Postfix) with ESMTPS id E06CA1406AE; Thu, 22 Aug 2024 18:58:11 +0800 (CST) Received: from lhrpeml500001.china.huawei.com (7.191.163.213) by lhrpeml500001.china.huawei.com (7.191.163.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Thu, 22 Aug 2024 11:58:11 +0100 Received: from lhrpeml500001.china.huawei.com ([7.191.163.213]) by lhrpeml500001.china.huawei.com ([7.191.163.213]) with mapi id 15.01.2507.039; Thu, 22 Aug 2024 11:58:11 +0100 To: Gavin Shan , "qemu-devel@nongnu.org" , "qemu-arm@nongnu.org" , "mst@redhat.com" CC: "maz@kernel.org" , "jean-philippe@linaro.org" , Jonathan Cameron , "lpieralisi@kernel.org" , "peter.maydell@linaro.org" , "richard.henderson@linaro.org" , "imammedo@redhat.com" , "andrew.jones@linux.dev" , "david@redhat.com" , "philmd@linaro.org" , "eric.auger@redhat.com" , "will@kernel.org" , "ardb@kernel.org" , "oliver.upton@linux.dev" , "pbonzini@redhat.com" , "rafael@kernel.org" , "borntraeger@linux.ibm.com" , "alex.bennee@linaro.org" , "npiggin@gmail.com" , "harshpb@linux.ibm.com" , "linux@armlinux.org.uk" , "darren@os.amperecomputing.com" , "ilkka@os.amperecomputing.com" , "vishnu@os.amperecomputing.com" , "karl.heubaum@oracle.com" , "miguel.luis@oracle.com" , "salil.mehta@opnsrc.net" , zhukeqian , "wangxiongfeng (C)" , "wangyanan (Y)" , "jiakernel2@gmail.com" , "maobibo@loongson.cn" , "lixianglai@loongson.cn" , "shahuang@redhat.com" , "zhao1.liu@intel.com" , Linuxarm Subject: RE: [PATCH RFC V3 17/29] arm/virt: Release objects for *disabled* possible vCPUs after init Thread-Topic: [PATCH RFC V3 17/29] arm/virt: Release objects for *disabled* possible vCPUs after init Thread-Index: AQHaveuckEaR/Tp4NUKcalC/yUyS9LIksGYAgAo1aXCAALcOgIABH0kAgADc+ICAAEc9cIAAMEmAgAApWnA= Date: Thu, 22 Aug 2024 10:58:11 +0000 Message-ID: <754a693989cf426bb07e40c43b80bce2@huawei.com> References: <20240613233639.202896-1-salil.mehta@huawei.com> <20240613233639.202896-18-salil.mehta@huawei.com> <51dc0813-7dc9-4927-a24b-bd718be54e46@redhat.com> <6b435c1f2b934867b8d82850d6d866c6@huawei.com> <9b7582f0-8149-4bf0-a1aa-4d4fe0d35e70@redhat.com> <1252c2d35b3e40ed84d5d5ae454878a7@huawei.com> <1c31ab30bae6437fac7799227ca4bfd1@huawei.com> <62227c7a-6c0e-403a-8d6a-9647c6e006e6@redhat.com> In-Reply-To: <62227c7a-6c0e-403a-8d6a-9647c6e006e6@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.126.171.245] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Received-SPF: pass client-ip=185.176.79.56; envelope-from=salil.mehta@huawei.com; helo=frasgout.his.huawei.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Salil Mehta From: Salil Mehta via Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org SGkgR2F2aW4sDQoNCj4gIEZyb206IHFlbXUtYXJtLWJvdW5jZXMrc2FsaWwubWVodGE9aHVhd2Vp LmNvbUBub25nbnUub3JnIDxxZW11LQ0KPiAgYXJtLWJvdW5jZXMrc2FsaWwubWVodGE9aHVhd2Vp LmNvbUBub25nbnUub3JnPiBPbiBCZWhhbGYgT2YgR2F2aW4gU2hhbg0KPiAgU2VudDogV2VkbmVz ZGF5LCBBdWd1c3QgMjEsIDIwMjQgMjozMyBQTQ0KPiAgVG86IFNhbGlsIE1laHRhIDxzYWxpbC5t ZWh0YUBodWF3ZWkuY29tPjsgcWVtdS1kZXZlbEBub25nbnUub3JnOw0KPiAgcWVtdS1hcm1Abm9u Z251Lm9yZzsgbXN0QHJlZGhhdC5jb20NCj4gIA0KPiAgSGkgU2FsaWwsDQo+ICANCj4gIE9uIDgv MjEvMjQgODoyMyBQTSwgU2FsaWwgTWVodGEgd3JvdGU6DQo+ICA+Pg0KPiAgPj4gICBPbiA4LzIx LzI0IDI6NDAgQU0sIFNhbGlsIE1laHRhIHdyb3RlOg0KPiAgPj4gICA+DQo+ICA+PiAgID4gSSBk b27igJl0IHVuZGVyc3RhbmQgdGhpcyBjbGVhcmx5LiBBcmUgIHlvdSBzdWdnZXN0aW5nIHRvIHJl dXNlIG9ubHkNCj4gID4+ICAgPiBzaW5nbGUgdkNQVSBvYmplY3QgdG8gaW5pdGlhbGl6ZSBhbGwg S1ZNIHZDUFVzIG5vdCB5ZXQgcGx1Z2dlZD8gSWYNCj4gID4+ICAgPiB5ZXMsIHRoZW4gSSdtIG5v dCBzdXJlIHdoYXQgZG8gd2UgZ2FpbiBoZXJlIGJ5IGFkZGluZyB0aGlzIGNvbXBsZXhpdHk/DQo+ ICA+PiAgID4gSXQgZG9lcyBub3QgY29uc3VtZSB0aW1lIG9yIHJlc291cmNlcyBiZWNhdXNlIHdl IGFyZSBub3QgcmVhbGl6aW5nIGFueQ0KPiAgPj4gICA+IG9mIHRoZXNlIHZDUFUgb2JqZWN0IGlu IGFueSBjYXNlLg0KPiAgPj4gICA+DQo+ICA+Pg0KPiAgPj4gICBGaXJzdCBvZiBhbGwsIGl0IHNl ZW1zIHdlIGhhdmUgZGlmZmVyZW50IG5hbWVzIGFuZCB0ZXJtcyBmb3IgdGhvc2UgY29sZC0NCj4g ID4+ICAgYm9vdGVkIHZDUFVzIGFuZCBob3RwbHVnZ2FibGUgdkNQVXMuIEZvciBleGFtcGxlLCB2 Q1BVLTAgYW5kIHZDUFUtMQ0KPiAgPj4gICBhcmUgY29sZC1ib290ZWQgdkNQVXMgd2hpbGUNCj4g ID4+ICAgdkNQVS0yIGFuZCB2Q1BVLTMgYXJlIGhvdHBsdWdnYWJsZSB2Q1BVcyB3aGVuIHdlIGhh dmUgJy1zbXANCj4gID4+ICAgbWF4Y3B1cz00LGNwdXM9MicuIExldHMgc3RpY2sgdG8gY29udmVu dGlvbiBhbmQgdGVybXMgZm9yIGVhc2llciBkaXNjdXNzaW9uLg0KPiAgPj4NCj4gID4+ICAgVGhl IGlkZWEgaXMgYXZvaWQgaW5zdGFudGlhdGluZyBob3RwbHVnZ2FibGUgdkNQVXMgaW4gdmlydG1h Y2hfaW5pdCgpIGFuZA0KPiAgPj4gICByZWxlYXNlZCBpbiB0aGUgc2FtZSBmdW5jdGlvbiBmb3Ig dGhvc2UgaG90cGx1Z2dhYmxlIHZDUFVzLiBBcyBJIGNhbg0KPiAgPj4gICB1bmRlcnN0YW5kLCB0 aG9zZSBob3RwbHVnZ2FibGUgdkNQVSBpbnN0YW5jZXMgYXJlIHNlcnZpbmcgZm9yIHR3bw0KPiAg Pj4gICBwdXJwb3NlczogKDEpIFJlbGF4IHRoZSBjb25zdHJhaW50IHRoYXQgYWxsIHZDUFUncyAo a3ZtKSBmaWxlIGRlc2NyaXB0b3IgaGF2ZQ0KPiAgPj4gICB0byBiZSBjcmVhdGVkIGFuZCBwb3B1 bGF0ZWQ7DQo+ICA+DQo+ICA+DQo+ICA+IFdlIGFyZSBkZXZpc2luZyAqd29ya2Fyb3VuZHMqIGlu IFFlbXUgZm9yIHRoZSBBUk0gQ1BVIGFyY2hpdGVjdHVyYWwNCj4gID4gY29uc3RyYWludHMgaW4g S1ZNIGFuZCBpbiBHdWVzdCBLZXJuZWwsICAqbm90IHJlbGF4aW5nKiB0aGVtLiBXZSBhcmUNCj4g ID4gbm90IGFsbG93ZWQgdG8gbWVkZGxlIHdpdGggdGhlIGNvbnN0cmFpbnRzLiBUaGF0IGlzIHRo ZSB3aG9sZSBwb2ludC4NCj4gID4NCj4gID4gTm90IGhhdmluZyB0byByZXNwZWN0IHRob3NlIGNv bnN0cmFpbnRzIGxlZCB0byByZWplY3Rpb24gb2YgdGhlDQo+ICA+IGVhcmxpZXIgYXR0ZW1wdHMg dG8gdXBzdHJlYW0gVmlydHVhbCBDUFUgSG90cGx1ZyBmb3IgQVJNLg0KPiAgPg0KPiAgDQo+ICBJ IG1lYW50IHRvICdvdmVyY29tZScgdGhlIGNvbnN0cmFpbnRzIGJ5ICdyZWxheCcuIE15IGFwb2xv Z2llcyBpZiB0aGVyZSdyZSBhbnkNCj4gIGNhdXNlZCBjb25mdXNpb25zLg0KDQoNCk9rLiBObyBp c3N1ZXMuIEl0IHdhcyBpbXBvcnRhbnQgZm9yIG1lIHRvIGNsYXJpZnkgdGhvdWdoLg0KDQoNCiBQ cmV2aW91c2x5LCB5b3UgaGFkIGF0dGVtcHQgdG8gY3JlYXRlIGFsbCB2Q1BVIG9iamVjdHMNCj4g IGFuZCByZXVzZSB0aGVtIHdoZW4gdkNQVSBob3QgYWRkZWQuDQoNClllcywgYXQgUU9NIGxldmVs LiBCdXQgdGhhdCBhcHByb2FjaCBkaWQgbm90IHJlYWxpemUgdGhlIHVucGx1Z2dlZC95ZXQtdG8t YmUtcGx1Z2dlZA0KdkNQVXMuIFdlIHdlcmUganVzdCB1c2luZyBRT00gdkNQVSBvYmplY3RzIGFz IHRoZSBwbGFjZSBob2xkZXJzDQoNCiBJbiBjdXJyZW50IGltcGxlbWVudGF0aW9uLCB0aGUNCj4g IGhvdHBsdWdnYWJsZSB2Q1BVcyBhcmUgaW5zdGFudGlhdGVkIGFuZCByZWxlYXNlZCBwcmV0dHkg c29vbi4gSSB3YXMNCj4gIGJyaW5naW5nIHRoZSB0aGlyZCBwb3NzaWJpbGl0eSwgdG8gYXZvaWQg aW5zdGFudGlhdGluZyB0aG9zZSBob3RwbHVnZ2FibGUgdkNQVQ0KPiAgb2JqZWN0cywgZm9yIGRp c2N1c3Npb24uIA0KDQoNCkFyZSB5b3Ugc3VnZ2VzdGluZyBub3QgY2FsbGluZyBLVk1fQVJNX1ZD UFVfSU5JVCBJT0NUTCBhcyBhbGwgZm9yIHRoZSB2Q1BVcw0Kd2hpY2ggYXJlIHBhcnQgb2YgcG9z c2libGUgbGlzdCBidXQgbm90IHlldCBwbHVnZ2VkPw0KDQpJZiB5ZXMsIHdlIGNhbm5vdCBkbyB0 aGF0IGFzIEtWTSB2Q1BVcyBzaG91bGQgYmUgZnVsbHkgaW5pdGlhbGl6ZWQgZXZlbiBiZWZvcmUN ClZHSUMgaXMgaW5pdGlhbGl6ZWQgaW5zaWRlIHRoZSBLVk0uIFRoaXMgaXMgYSBjb25zdHJhaW50 LiBJJ3ZlIGV4cGxhaW5lZCB0aGlzIGluDQpkZXRhaWwgaW4gdGhlIGNvdmVyIGxldHRlciBvZiB0 aGlzIHBhdGNoLXNldCBhbmQgaW4gdGhlIHNsaWRlcyBJIGhhdmUgc2hhcmVkDQplYXJsaWVyLg0K DQoNCkluIHRoaXMgc2VyaWVzLCB0aGUgbGlmZSBjeWNsZSBvZiB0aG9zZSBob3RwbHVnZ2FibGUN Cj4gIHZDUFUgb2JqZWN0cyBhcmUgcmVhbGx5IHNob3J0LiBBZ2FpbiwgSSBkaWRuJ3Qgc2F5IHdl IG11c3QgYXZvaWQgaW5zdGFudGlhdGluZw0KPiAgdGhvc2UgdkNQVSBvYmplY3RzLCBJIGJyb3Vn aHQgdGhlIHRvcGljIE9OTFkgZm9yIGRpc2N1c3Npb24uDQoNClN1cmUsIEkgYXBwcmVjaWF0ZSB0 aGF0LiBGb3IgdGhlIGRldGFpbHMgb2YgdGhlIHJlYXNvbnMgcGxlYXNlIGZvbGxvdyBiZWxvdzoN Cg0KMS4gQ292ZXIgTGV0dGVyIG9mIHRoaXMgcGF0Y2gtc2V0IChDb25zdHJhaW50cyBhcmUgZXhw bGFpbmVkIHRoZXJlKQ0KMi4gS1ZNRm9ydW0gU2xpZGVzIG9mIDIwMjAgYW5kIDIwMjMNCg0KDQo+ ICA+ICgyKSBIZWxwIHRvIGluc3RhbnRpYXRlIGFuZCByZWFsaXplDQo+ICA+PiAgIEdJQ3YzIG9i amVjdC4NCj4gID4+DQo+ICA+PiAgIEZvciAoMSksIEkgZG9uJ3QgdGhpbmsgd2UgaGF2ZSB0byBp bnN0YW50aWF0ZSB0aG9zZSBob3RwbHVnZ2FibGUgdkNQVXMgYXQgYWxsLg0KPiAgPj4gICBJbiB0 aGUgYWJvdmUgZXhhbXBsZSB3aGVyZSB3ZSBoYXZlIGNvbW1hbmQgbGluZSAnLXNtcA0KPiAgPj4g ICBtYXhjcHVzPTQsY3B1cz0yJywgaXQncyB1bm5lY2Vzc2FyeSB0byBpbnN0YW50aWF0ZQ0KPiAg Pj4gICB2Q1BVLTMgYW5kIHZDUFUtNCB0byBjcmVhdGUgYW5kIHBvcHVsYXRlIHRoZWlyIEtWTSBm aWxlIGRlc2NyaXB0b3JzLg0KPiAgPg0KPiAgPg0KPiAgPiBXZSBjYW5ub3QgZGVmZXIgY3JlYXRl IHZDUFUgaW4gS1ZNIGFmdGVyIEdJQyBoYXMgYmVlbiBpbml0aWFsaXplZCBpbiBLVk0uDQo+ICA+ IEl0IG5lZWRzIHRvIGtub3cgZXZlcnkgdkNQVSB0aGF0IHdpbGwgZXZlciBleGlzdHMgcmlnaHQg YXQgdGhlIHRpbWUgaXQNCj4gID4gaXMgZ2V0dGluZyBJbml0aWFsaXplZC4gVGhpcyBpcyBhbiBB Uk0gQ1BVIEFyY2hpdGVjdHVyYWwgY29uc3RyYWludC4NCj4gID4NCj4gIA0KPiAgSXQgd2lsbCBi ZSBhcHByZWNpYXRlZCBpZiBtb3JlIGRldGFpbHMgb3RoZXIgdGhhbiAnYW4gQVJNIENQVSBhcmNo aXRlY3R1cmFsIGNvbnN0cmFpbnQnDQo+ICBjYW4gYmUgcHJvdmlkZWQuIEkgZG9uJ3QgdW5kZXJz dGFuZCB0aGlzIGNvbnN0cmFpbiB2ZXJ5IHdlbGwgYXQgbGVhc3QuDQoNCg0KV2UgY2Fubm90IGRv IHRoYXQgYXMgd2UgTVVTVCBwcmVzZW50IEtWTSB2Q1BVcyB0byB0aGUgVkdJQyBmdWxseSBpbml0 aWFsaXplZCwNCmV2ZW4gYmVmb3JlIGl0IHN0YXJ0cyBpdHMgaW5pdGlhbGl6YXRpb24uIEluaXRp YWxpemF0aW9uIG9mIHRoZSB2Q1BVcyBhbHNvIGluaXRpYWxpemVzDQp0aGUgc3lzdGVtIHJlZ2lz dGVycyBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgS1ZNIHZDUFUuICANCg0KRm9yIGV4YW1wbGUsIE1Q SURSX0VMMSBtdXN0IGJlIGluaXRpYWxpemVkIGF0IFZDUFUgSU5JVCB0aW1lLiBXZSBjYW5ub3QN CmF2b2lkIHRoaXMuIE1QSURSIHZhbHVlIGlzIHVzZWQgYnkgVkdJQyBkdXJpbmcgaXRzIGluaXRp YWxpemF0aW9uLiBUaGlzIE1VU1QgYmUNCnByZXNlbnQgZm9yIGFsbCBvZiB0aGUgcG9zc2libGUg S1ZNIHZDUFVzIHJpZ2h0IGZyb20gc3RhcnQgZHVyaW5nIHZnaWNfaW5pdCgpDQoNClBsZWFzZSBj aGVjayB0aGUgY292ZXIgbGV0dGVyIG9mIHRoaXMgcGF0Y2gtc2V0LCBJIGV4cGxhaW5lZCB0aGVz ZSB0aGVyZSBhbmQgdGhlDQpLVk1Gb3J1bSBzbGlkZXMuICBQbGVhc2UgcmV2aWV3IGFuZCBjb21t ZW50IHRoZXJlIGFuZCBsZXQgbWUga25vdyB3aGF0IGlzDQpub3QgY2xlYXIgZnJvbSB0aGUgdGV4 dC4NCg0KDQo+ICA+ICAgQQ0KPiAgPj4gICB2Q1BVJ3MgS1ZNIGZpbGUgZGVzY3JpcHRvciBpcyBj cmVhdGUgYW5kIHBvcHVsYXRlZCBieSB0aGUgZm9sbG93aW5nIGlvY3Rscw0KPiAgPj4gICBhbmQg ZnVuY3Rpb24gY2FsbHMuIFdoZW4gdGhlIGZpcnN0IHZDUFUgKHZDUFUtMCkgaXMgcmVhbGl6ZWQs IHRoZSBwcm9wZXJ0eQ0KPiAgPj4gICBjb3JyZXNwb25kaW5nIHRvICImaW5pdCIgaXMgZml4ZWQg Zm9yIGFsbCB2Q1BVcy4gSXQgbWVhbnMgYWxsIHZDUFVzIGhhdmUgc2FtZQ0KPiAgPj4gICBwcm9w ZXJ0aWVzIGV4Y2VwdCB0aGUgInZjcHVfaW5kZXgiLg0KPiAgPj4NCj4gID4+ICAgICAgaW9jdGwo dm0tZmQsICAgS1ZNX0NSRUFURV9WQ1BVLCAgIHZjcHVfaW5kZXgpOw0KPiAgPj4gICAgICBpb2N0 bCh2Y3B1LWZkLCBLVk1fQVJNX1ZDUFVfSU5JVCwgJmluaXQpOw0KPiAgPj4gICAgICBrdm1fcGFy a192Y3B1KGNzKTsNCj4gID4+DQo+ICA+PiAgIEEgdkNQVSdzIHByb3BlcnRpZXMgYXJlIGRldGVy bWluZWQgYnkgdHdvIHNvdXJjZXMgYW5kIGJvdGggYXJlIGdsb2JhbC4gSXQNCj4gID4+ICAgbWVh bnMgYWxsIHZDUFVzIHNob3VsZCBoYXZlIHNhbWUgcHJvcGVydGllczogKGEpIEZlYXR1cmUgcmVn aXN0ZXJzDQo+ICA+PiAgIHJldHVybmVkIGZyb20gdGhlIGhvc3QuIFRoZSBmdW5jdGlvbg0KPiAg Pj4gICBrdm1fYXJtX2dldF9ob3N0X2NwdV9mZWF0dXJlcygpIGlzIGNhbGxlZCBmb3Igb25jZSwg bWVhbmluZyB0aGlzIHNvdXJjZQ0KPiAgPj4gICBpcyBzYW1lIHRvIGFsbCB2Q1BVczsNCj4gID4N Cj4gID4NCj4gID4gU3VyZSwgYnV0IHdoYXQgYXJlIHlvdSB0cnlpbmcgdG8gc2F2ZSBoZXJlPw0K PiAgPg0KPiAgDQo+ICBBcyBtZW50aW9uZWQgYWJvdmUsIHRoZSBsaWZlIGN5Y2xlIG9mIHRob3Nl IGhvdHBsdWdnYWJsZSB2Q1BVIG9iamVjdHMgYXJlDQo+ICByZWFsbHkgc2hvcnQuIFRoZXkgc3Rp bGwgY29uc3VtZSB0aW1lIGFuZCBtZW1vcnkgdG8gaW5zdGFudGlhdGUgdGhlbS4gSWYgSSdtDQo+ ICBjb3JyZWN0LCBvbmUgb2YgdGhlIHByaW1hcnkgZ29hbCBmb3IgdkNQVSBob3RwbHVnIGZlYXR1 cmUgaXMgdG8gc2F2ZSBzeXN0ZW0NCj4gIGJvb3QtdXAgdGltZSwgY29ycmVjdD8NCg0KDQpDb3Jy ZWN0LiBXZSB0YXJnZXRlZCB2Q1BVIGhvdHBsdWcgZm9yIEthdGEtY29udGFpbmVycyBmb3Igb24t ZGVtYW5kIHJlc291cmNlDQphbGxvY2F0aW9uIGFuZCBzYXZpbmcgdGhlIHJlc291cmNlcy4gS2F0 YS1jb250YWluZXJzIGNhbiB3b3JrIHdpdGggZGlmZmVyZW50IHR5cGVzDQpvZiBWTU0gbGlrZSBR ZW11IGFuZCBtaWNyb1ZNcyBsaWtlIEZpcmVjcmFja2VyLiBBRkFJSywgVXNlY2FzZSBvZiBtaWNy b1ZNIGlzDQpzbGlnaHRseSBkaWZmZXJlbnQgdGhhbiB0aGUgbm9ybWFsIGNvbnRhaW5lcnMuIFRo ZXkgYXJlIHNob3J0IGxpdmVkIChzYXkgYXJvdW5kDQoxNSBtaW4pIGFuZCByZXF1aXJlIHVsdHJh ZmFzdCBib290LXVwIHRpbWVzIChzYXkgbGVzcyB0aGFuIDEyNSBtcykgLSB0aGVzZSBmaWd1cmVz DQphcmUgZnJvbSBBbWF6b24gd2hvIGludmVudGVkIHRoZSBjb25jZXB0IG9mIG1pY3JvVk0gaW4g dGhlIGVhcmxpZXIgZGVjYWRlLg0KDQpXaXRoIHRoZSBjdXJyZW50IHBhdGNoZXMsIHdlIGhhdmUg b25seSBwYXJ0aWFsbHkgYWNoaWV2ZWQgd2hhdCB3ZSBoYWQgc3RhcnRlZA0KaS5lLiBLYXRhL1Fl bXUgYnV0IHdlIGFsc28gd2FudCB0byB0YXJnZXQgS2F0YS9taWNyb1ZNLiBJbiBvdXIgY2FzZSwg d2Ugd2FudA0KdGhhdCBtaWNyb1ZNIHRvIGJlIFFlbXUgYmFzZWQgZnJvIEFSTS4gSSB0aGluayB4 ODYgYWxyZWFkeSBoYXMgcmVkdWNlZCBsb3RzDQpvZiBsZWdhY3kgc3R1ZmYgYW5kIGNyZWF0ZWQg YSBtaWNyb1ZNIGluIFFlbXUuIEknbSBub3Qgc3VyZSBob3cgaXQgY29tcGFyZXMNCmFnYWluc3Qg dGhlIHRydWUgbWljcm9WTSBsaWtlIEZpcmVjcmFja2VyLiBJdCB3aWxsIGJlIGEgZ29vZCB0YXJn ZXQgdG8gcmVkdWNlDQptZW1vcnkgZm9vdCBwcmludCBvZiBBUk0gUWVtdSBWaXJ0IE1hY2hpbmUu IG9yIHRoaW5rIG9yIGNyZWF0aW5nIGEgbmV3IG9uZQ0KanVzdCBsaWtlIHg4Ni4gVXNpbmcgdGhl IHZDUFUgSG90cGx1ZyBmZWF0dXJlIHdlIHdlcmUgZHJhc3RpY2FsbHkgYWJsZSB0byByZWR1Y2UN CnRoZSBib290IHVwIHRpbWVzIG9mIFFlbXUuIFBsZWFzZSBjaGVjayB0aGUgY2FsaWJyYXRlZCBw ZXJmb3JtYW5jZSBmaWd1cmVzIGluDQpLVm1Gb3J1bSAgMjAyMyBzbGlkZSAxOUcgKFBhZ2UgMjYp IFsxXQ0KDQpbMV0gIGh0dHBzOi8va3ZtLWZvcnVtLnFlbXUub3JnLzIwMjMvQ2hhbGxlbmdlc19S ZXZpc2l0ZWRfaW5fU3VwcG9ydGluZ19WaXJ0X0NQVV9Ib3RwbHVnXy1fX2lpMGlOYjMucGRmDQoN Ckxhc3QgeWVhciwgSSBoYWQgcHJvdG90eXBlZCBhIG1pY3JvVk0gZm9yIEFSTSwgTWljaGFlbCBU c2lya2luIHN1Z2dlc3RlZCB0aGF0IGlmDQp0aGUgcGVyZm9ybWFuY2UgbnVtYmVyIG9mIHRoZSBB Uk0gVmlydCBtYWNoaW5lIGNhbiBtYXRjaCB0aGUgeDg2IG1pY3JvVk0gdGhlbg0Kd2UgbWlnaHQg bm90IHJlcXVpcmUgYW4gZXhwbGljaXQgbWljcm9WTSBjb2RlIGZvciBBUk0uIEhlbmNlLCBteSBj dXJyZW50IGVmZm9ydHMNCmFyZSB0byByZWR1Y2UgdGhlIG1lbW9yeSBmb290IHByaW50IG9mIGV4 aXN0aW5nIFZpcnQgbWFjaGluZS4gQnV0IEkgZG8gaGF2ZSBhIHJvdWdoDQpwcm90b3R5cGUgb2Yg bWljcm9WTSBhcyB3ZWxsLiBXZSBjYW4gZGViYXRlIGFib3V0IHRoYXQgbGF0ZXIgaW4gYSBkaWZm ZXJlbnQgDQpkaXNjdXNzaW9uLg0KDQoNCj4gID4+ICAgKGIpIFRoZSBwYXJhbWV0ZXJzIHByb3Zp ZGVkIGJ5IHVzZXIgdGhyb3VnaCAnLWNwdSBob3N0LHN2ZT1vZmYnIGFyZQ0KPiAgPj4gICB0cmFu c2xhdGVkIHRvIGdsb2JhbCBwcm9wZXJ0aWVzIGFuZCBhcHBsaWVkIHRvIGFsbCB2Q1BVcyB3aGVu IHRoZXkncmUNCj4gID4+ICAgaW5zdGFudGlhdGVkLg0KPiAgPg0KPiAgPg0KPiAgPiBTdXJlLiBT YW1lIGlzIHRoZSBjYXNlIHdpdGggUE1VIGFuZCBvdGhlciBwZXItdkNQVSBwYXJhbWV0ZXJzLg0K PiAgPiBXZSBkbyBub3Qgc3VwcG9ydCBoZXRlcm9nZW5vdXMgY29tcHV0aW5nIGFuZCB0aGVyZWZv cmUgd2UgZG8gbm90IGhhdmUNCj4gID4gcGVyLXZDUFUgY29udHJvbCBvZiB0aGVzZSBmZWF0dXJl cyBhcyBvZiBub3cuDQo+ICA+DQo+ICA+DQo+ICA+Pg0KPiAgPj4gICAgICAgICAgKGEpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYikNCj4gID4+DQo+ICA+PiAg ICAgIGFhcmNoNjRfaG9zdF9pbml0Zm4gICAgICAgICAgICAgICAgICAgICAgICAgIHFlbXVfaW5p dA0KPiAgPj4gICAgICBrdm1fYXJtX3NldF9jcHVfZmVhdHVyZXNfZnJvbV9ob3N0ICAgICAgICAg ICBwYXJzZV9jcHVfb3B0aW9uDQo+ICA+PiAgICAgICAga3ZtX2FybV9nZXRfaG9zdF9jcHVfZmVh dHVyZXMNCj4gIGNwdV9jb21tb25fcGFyc2VfZmVhdHVyZXMNCj4gID4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRldl9wcm9wX3JlZ2lzdGVyX2ds b2JhbA0KPiAgPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDoNCj4gID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGV2aWNlX3Bvc3RfaW5pdA0KPiAgPj4NCj4gID4+IHFkZXZfcHJvcF9zZXRfZ2xv YmFscw0KPiAgPg0KPiAgPg0KPiAgPiBTdXJlLCBJIHVuZGVyc3RhbmQgdGhlIGNvZGUgZmxvdyBi dXQgd2hhdCBhcmUgeW91IHRyeWluZyB0byBzdWdnZXN0IGhlcmU/DQo+ICA+DQo+ICANCj4gIEkg dHJpZWQgdG8gZXhwbGFpbiB0aGF0IHZDUFUgb2JqZWN0IGlzbid0IG5lZWRlZCB0byBjcmVhdGUg YW5kIHBvcHVsYXRlDQo+ICB2Q1BVJ3MgZmlsZSBkZXNjcmlwdG9ycywgYXMgaGlnaGxpZ2h0IGlu ICgxKS4gVGhlIGluZm9ybWF0aW9uIHVzZWQgdG8gY3JlYXRlIHRoZQ0KPiAgY29sZC1ib290ZWQN Cj4gIHZDUFUtMCBjYW4gYmUgcmV1c2VkIGJlY2F1c2UgYWxsIHZDUFVzIGhhdmUgc2FtZSBwcm9w ZXJ0aWVzIGFuZCBmZWF0dXJlDQo+ICBzZXQuDQoNCg0KSXQgZG9lcyBub3QgbWF0dGVyLiBXZSB1 c2UgdGhvc2UgUU9NIHZDUFUgb2JqZWN0IHN0YXRlcyB0byBpbml0aWFsaXplcyBRZW11IA0KR0lD djMgbW9kZWwgd2l0aCBtYXggcG9zc2libGUgdkNQVXMgYW5kIHRoZW4gcmVsZWFzZSB0aGUgUU9N IHZDUFUgb2JqZWN0cy4NCndoaWNoIGFyZSB5ZXQtdG8tYmUtcGx1Z2dlZC4NCg0KDQo+ICA+PiAg IEZvciAoMiksIEknbSBzdGlsbCBsb29raW5nIGludG8gdGhlIEdJQ3YzIGNvZGUgZm9yIGJldHRl ciB1bmRlcnN0YW5kaW5nLg0KPiAgPg0KPiAgPg0KPiAgPiBPaCwgSSB0aG91Z2h0IHlvdSBzYWlk IHlvdSd2ZSBmaW5pc2hlZCB5b3VyIHJldmlld3Mg8J+Yig0KPiAgPg0KPiAgPiBQbGVhc2UgdGFr ZSB5b3VyIHRpbWUuIEZvciB5b3VyIHJlZmVyZW5jZSwgeW91IG1pZ2h0IHdhbnQgdG8gY2hlY2s6 DQo+ICA+DQo+ICA+IEtWTUZvcnVtIDIwMjM6DQo+ICA+IGh0dHBzOi8va3ZtLQ0KPiAgZm9ydW0u cWVtdS5vcmcvMjAyMy9DaGFsbGVuZ2VzX1JldmlzaXRlZF9pbl9TdXBwb3J0aW5nX1Zpcg0KPiAg PiB0X0NQVV9Ib3RwbHVnXy1fX2lpMGlOYjMucGRmDQo+ICA+IGh0dHBzOi8va3ZtLWZvcnVtLnFl bXUub3JnLzIwMjMvS1ZNLWZvcnVtLWNwdS0NCj4gIGhvdHBsdWdfN09KMVl5Si5wZGYNCj4gID4N Cj4gID4gS1ZNRm9ydW0gMjAyMDoNCj4gID4gaHR0cHM6Ly9rdm0tDQo+ICBmb3J1bS5xZW11Lm9y Zy8yMDIwL09jdCUyMDI5X0NoYWxsZW5nZXMlMjBpbiUyMFN1cHBvcnRpbmclDQo+ICA+DQo+ICAy MFZpcnR1YWwlMjBDUFUlMjBIb3RwbHVnJTIwaW4lMjBTb0MlMjBCYXNlZCUyMFN5c3RlbXMlMjBs aWtlJTINCj4gIDBBUk02NF8NCj4gID4gU2FsaWwlMjBNZWh0YS5wZGYNCj4gID4NCj4gIA0KPiAg aG1tLCAnZmluaXNoZWQgbXkgcmV2aWV3JyBoYXMgYmVlbiBtaXNyZWFkIGZyYW5rbHkuIEJ5IHRo YXQsIEkgbWVhbnQgSQ0KPiAgZmluaXNoZWQgbXkgdGVzdHMgYW5kIHByb3ZpZGVkIGFsbCB0aGUg Y29tbWVudHMgSSBoYWQuIFNvbWUgb2YgdGhlbSBhcmUNCj4gIHF1ZXN0aW9ucyBhbmQgZGlzY3Vz c2lvbnMsIHdoaWNoIEkgc3RpbGwgbmVlZCB0byBmb2xsb3cgdXAuDQoNCg0KU3VyZS4gTm8gd29y cmllcy4gRXZlbiBpZiB5b3UgbWlzcywgeW91IHdpbGwgaGF2ZSBtb3JlIGNoYW5jZSB0byBjb21t ZW50IG9uDQp1cGNvbWluZyBSRkMgVjQg8J+Yig0KDQoNCj4gID4gVW50aWwNCj4gID4+ICAgbm93 LCBJIGRvbid0IHNlZSB3ZSBuZWVkIHRoZSBpbnN0YW50aWF0ZWQgaG90cGx1Z2dhYmxlIHZDUFVz IGVpdGhlci4NCj4gID4NCj4gID4NCj4gID4gSSB0aGluaywgSSd2ZSBhbHJlYWR5IGFuc3dlcmVk IHRoaXMgYWJvdmUgaXQgaXMgYmVjYXVzZSBvZiBBUk0gQXJjaGl0ZWN0dXJhbA0KPiAgY29uc3Ry YWludC4NCj4gID4NCj4gID4NCj4gID4gICBGb3INCj4gID4+ICAgZXhhbXBsZSwgdGhlIHJlZGlz dHJpYnV0b3IgcmVnaW9ucyBjYW4gYmUgZXhwb3NlZCBiYXNlZCBvbiAnbWF4Y3B1cycNCj4gID4+ ICAgaW5zdGVhZCBvZiAnY3B1cycuDQo+ICA+DQo+ICA+IFlvdSBtZWFuIGR1cmluZyB0aGUgcmV2 aWV3IG9mIHRoZSBjb2RlIHlvdSBmb3VuZCB0aGF0IHdlIGFyZSBub3QgZG9pbmcNCj4gIGl0Pw0K PiAgPg0KPiAgDQo+ICBJdCdzIGFsbCBhYm91dCB0aGUgZGlzY3Vzc2lvbiB0byB0aGUgcG9zc2li aWxpdHkgdG8gYXZvaWQgaW5zdGFudGlhdGluZw0KPiAgaG90cGx1Z2dhYmxlIHZDUFUgb2JqZWN0 cy4NCg0KDQpBcyBtZW50aW9uZWQgYWJvdmUsIHdpdGggdGhlIGN1cnJlbnQgS1ZNIGNvZGUgeW91 IGNhbm5vdC4gQnV0IGlmIHdlDQpyZWFsbHkgd2FudCB0byB0aGVuIHBlcmhhcHMgd2Ugd291bGQg bmVlZCB0byBjaGFuZ2UgS1ZNLg0KDQpJIG1pZ2h0IGJlIHdyb25nIGJ1dCBBRkFJQ1MgSSBkb27i gJl0IHNlZSBhIHJlYXNvbiB3aHkgd2UgY2Fubm90IGhhdmUNCnNvbWV0aGluZyBsaWtlICpiYXRj aCogS1ZNIHZDUFUgY3JlYXRlIGFuZCAgaW5pdGlhbGl6ZSBpbnN0ZWFkIG9mIGN1cnJlbnQNCnNl cXVlbnRpYWwgS1ZNIG9wZXJhdGlvbnMuIFRoaXMgd2lsbCBhdm9pZCBtdWx0aXBsZSBjYWxscyB0 byB0aGUgS1ZNIEhvc3QNCmFuZCBjYW4gaW1wcm92ZSBRZW11IGluaXQgdGltZSBmdXJ0aGVyLiBC dXQgdGhpcyB3aWxsIHJlcXVpcmUgYSBzZXBhcmF0ZQ0KZGlzY3Vzc2lvbiBpbiB0aGUgTEtNTCBp bmNsdWRpbmcgYWxsIHRoZSBLVk0gZm9sa3MuDQoNClRoaXMgaGFzIHBvdGVudGlhbCB0byBkZWxh eSB0aGUgdkNQVSBob3RwbHVnIGZlYXR1cmUgYWNjZXB0YW5jZSBhbmQgSSdtDQpyZWFsbHkgbm90 IGluIGZhdm9yIG9mIHRoYXQuIFdlIGhhdmUgYWxyZWFkeSBzdHJldGNoZWQgaXQgYSBsb3QgYmVj YXVzZSBvZg0KdGhlIHN0YW5kYXJkcyBjaGFuZ2UgYWNjZXB0YW5jZSBlYXJsaWVyLg0KDQoNCj4g ID4gVGhlIElSUSBjb25uZWN0aW9uIGFuZCB0ZWFyZG93biBjYW4gYmUgZHluYW1pY2FsbHkNCj4g ID4+ICAgZG9uZSBieSBjb25uZWN0aW5nIHRoZSBib2FyZCB3aXRoIEdJQ3YzIHRocm91Z2ggY2Fs bGJhY2tzIGluDQo+ICA+PiAgIEFSTUdJQ3YzQ29tbW9uQ2xhc3MuDQo+ICA+PiAgIFRoZSBjb25u ZWN0aW9uIGJldHdlZW4gR0lDdjNDUFVTdGF0ZSBhbmQgQ1BVQVJNU3RhdGUgYWxzbyBjYW4gYmUN Cj4gID4+ICAgZG9uZSBkeW5hbWljYWxseS4NCj4gID4NCj4gID4gQXJlIHlvdSBzdWdnZXN0aW5n IHRoaXMgYWZ0ZXIgcmV2aWV3aW5nIHRoZSBjb2RlIG9yIHlvdSBoYXZlIHRvIHJldmlldw0KPiAg PiBpdCB5ZXQ/IPCfmIkNCj4gID4NCj4gIA0KPiAgSSB3YXMgYWN0dWFsbHkgdHJ5aW5nIHRvIGFz ayBmb3IgeW91ciBpbnB1dCBhbmQgZmVlZGJhY2suIEkgd2FzIGhvcGluZyB5b3VyDQo+ICBpbnB1 dCB0byBjbGVhciBteSBwdXp6bGVzOiB3aHkgdkNQVSBvYmplY3RzIG11c3QgYmUgaW4gcGxhY2Ug dG8gY3JlYXRlDQo+ICBHSUN2MyBvYmplY3Q/DQo+ICBJcyBpdCBwb3NzaWJsZSB0byBjcmVhdGUg dGhlIEdJQ3YzIG9iamVjdCB3aXRob3V0IHRob3NlIHZDUFUgb2JqZWN0cz8gDQoNCg0KTm8uIFZH SUMgaW5pdGlhbGl6ZXMgSVJRcyB0byB0YXJnZXQgS1ZNIHZDUFVzLCBpdCB3b3VsZCBleHBlY3Qg c2FtZSBLVk0gdkNQVSBNUElEUg0Kb3IgTVAtQUZGSU5JVFkgY29uZmlndXJlZCB3aGVuIEtWTSB2 Q1BVcyB3ZXJlIGluaXRpYWxpemVkIGF0IHRoZSBmaXJzdCBwbGFjZQ0Kb3RoZXJ3aXNlIHRoZSBW R0lDIGluaXRpYWxpemF0aW9uIHdpbGwgbm90IGhhcHBlbiBjb3JyZWN0bHkuIEhlbmNlLCB0aGUg c2VxdWVuY2UuDQoNClRoZSBzZXF1ZW5jZSBvZiB0aGVzZSBpbml0aWFsaXphdGlvbiBpcyBnZW5l cmFsbHkgc3RyaWN0bHkgY29udHJvbGxlZCBieSBzcGVjaWZpY2F0aW9uDQp3aGljaCBpcyBjbG9z ZWx5IHRpZWQgdXAgd2l0aCBoYXJkd2FyZSBpbmNsdWRpbmcgcG93ZXJpbmcgdXAgaW5pdGlhbGl6 YXRpb25zLiANCllvdSB3aWxsIG5lZWQgdG8gaG9ub3IgdGhlIGV4cGVjdGF0aW9ucyBvZiB0aGUg S1ZNIFZHSUMgaW5pdCB3aGljaCBpbiB0dXJuIGFyZQ0KQVJNIENQVSBBcmNoaXRlY3R1cmUgc3Bl Y2lmaWNhdGlvbiBjb21wbGlhbnQuIEl0IGlzIG5vdCBqdXN0IGEgbG9vc2VseSB3cml0dGVuIGNv ZGUuDQoNCg0KV2hhdA0KPiAga2luZHMgb2YgZWZmb3J0cyB3ZSBuZWVkIHRvIGF2b2lkIGluc3Rh bnRpYXRpbmcgdGhvc2UgaG90cGx1Z2dhYmxlIHZDUFUNCj4gIG9iamVjdHMuDQoNCg0KSSBtZW50 aW9uZWQgb25lIG9mIHRoZSB3YXlzIGFib3ZlLiBJbnRyb2R1Y2UgKmJhdGNoKiBLVk0gdkNQVSBj cmVhdGUgJg0KaW5pdGlhbGl6ZS4gQnV0IGl0IHdpbGwgaGF2ZSB0byB1bmRlcmdvIGdyZWF0ZXIg c2NydXRpbnkgYmVjYXVzZSB3ZSBhcmUgdG91Y2hpbmcNCmEgY29tbW9uIHBhcnQgd2hpY2ggbWln aHQgYWZmZWN0IG1hbnkgc3Rha2UgaG9sZGVycy4gIEJ1dCB0aGlzIGlzIGEgZGlzY3Vzc2lvbg0K d2UgY2FuIGRvIGxhdGVyIGFzIHBhcnQgb2YgbWljcm9WTSBmb3IgQVJNLiANCg0KDQpUaGFua3MN ClNhbGlsLg0KDQo+ICBUaGUgYmVzdCB3YXkgcGVyaGFwcyBpcyB0byBmaW5kIHRoZSBhbnN3ZXIg ZnJvbSB0aGUgY29kZSBieSBteXNlbGYgOy0pDQo+ICANCj4gIFRoYW5rcywNCj4gIEdhdmluDQo+ ICANCg0K