From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1qqWW7-0000uI-76 for mharc-qemu-devel@gnu.org; Wed, 11 Oct 2023 06:32:39 -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 1qqWW3-0000tb-5o; Wed, 11 Oct 2023 06:32:36 -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 1qqWVu-0004g9-4T; Wed, 11 Oct 2023 06:32:34 -0400 Received: from lhrpeml500002.china.huawei.com (unknown [172.18.147.206]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4S58Bs2kBBz6J9W6; Wed, 11 Oct 2023 18:29:09 +0800 (CST) Received: from lhrpeml500001.china.huawei.com (7.191.163.213) by lhrpeml500002.china.huawei.com (7.191.160.78) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Wed, 11 Oct 2023 11:32: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.031; Wed, 11 Oct 2023 11:32:11 +0100 From: Salil Mehta To: Vishnu Pajjuri , "qemu-devel@nongnu.org" , "qemu-arm@nongnu.org" 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" , "mst@redhat.com" , "gshan@redhat.com" , "rafael@kernel.org" , "borntraeger@linux.ibm.com" , "alex.bennee@linaro.org" , "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" Subject: RE: [PATCH RFC V2 00/37] Support of Virtual CPU Hotplug for ARMv8 Arch Thread-Topic: [PATCH RFC V2 00/37] Support of Virtual CPU Hotplug for ARMv8 Arch Thread-Index: AQHZ8GD5tXnhHWBXpU+yNvnWwxAS6rBEaE+AgAARgbA= Date: Wed, 11 Oct 2023 10:32:11 +0000 Message-ID: References: <20230926100436.28284-1-salil.mehta@huawei.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.126.168.228] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Received-SPF: pass client-ip=185.176.79.56; envelope-from=salil.mehta@huawei.com; helo=frasgout.his.huawei.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URI_DOTEDU=1 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: , X-List-Received-Date: Wed, 11 Oct 2023 10:32:36 -0000 Message-ID: <20231011103211.-gcnoSWroRBByFQFdAc10J11m-Ty4R-z_LpdBtE5rvw@z> SGkgVmlzaG51LA0KDQo+IEZyb206IFZpc2hudSBQYWpqdXJpIDx2aXNobnVAYW1wZXJlbWFpbC5v bm1pY3Jvc29mdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAxMSwgMjAyMyAxMToy MyBBTQ0KPiBUbzogU2FsaWwgTWVodGEgPHNhbGlsLm1laHRhQGh1YXdlaS5jb20+OyBxZW11LWRl dmVsQG5vbmdudS5vcmc7IHFlbXUtDQo+IGFybUBub25nbnUub3JnDQo+IENjOiBtYXpAa2VybmVs Lm9yZzsgamVhbi1waGlsaXBwZUBsaW5hcm8ub3JnOyBKb25hdGhhbiBDYW1lcm9uDQo+IDxqb25h dGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+OyBscGllcmFsaXNpQGtlcm5lbC5vcmc7DQo+IHBldGVy Lm1heWRlbGxAbGluYXJvLm9yZzsgcmljaGFyZC5oZW5kZXJzb25AbGluYXJvLm9yZzsNCj4gaW1h bW1lZG9AcmVkaGF0LmNvbTsgYW5kcmV3LmpvbmVzQGxpbnV4LmRldjsgZGF2aWRAcmVkaGF0LmNv bTsNCj4gcGhpbG1kQGxpbmFyby5vcmc7IGVyaWMuYXVnZXJAcmVkaGF0LmNvbTsgd2lsbEBrZXJu ZWwub3JnOyBhcmRiQGtlcm5lbC5vcmc7DQo+IG9saXZlci51cHRvbkBsaW51eC5kZXY7IHBib256 aW5pQHJlZGhhdC5jb207IG1zdEByZWRoYXQuY29tOw0KPiBnc2hhbkByZWRoYXQuY29tOyByYWZh ZWxAa2VybmVsLm9yZzsgYm9ybnRyYWVnZXJAbGludXguaWJtLmNvbTsNCj4gYWxleC5iZW5uZWVA bGluYXJvLm9yZzsgbGludXhAYXJtbGludXgub3JnLnVrOw0KPiBkYXJyZW5Ab3MuYW1wZXJlY29t cHV0aW5nLmNvbTsgaWxra2FAb3MuYW1wZXJlY29tcHV0aW5nLmNvbTsNCj4gdmlzaG51QG9zLmFt cGVyZWNvbXB1dGluZy5jb207IGthcmwuaGV1YmF1bUBvcmFjbGUuY29tOw0KPiBtaWd1ZWwubHVp c0BvcmFjbGUuY29tOyBzYWxpbC5tZWh0YUBvcG5zcmMubmV0OyB6aHVrZXFpYW4NCj4gPHpodWtl cWlhbjFAaHVhd2VpLmNvbT47IHdhbmd4aW9uZ2ZlbmcgKEMpIDx3YW5neGlvbmdmZW5nMkBodWF3 ZWkuY29tPjsNCj4gd2FuZ3lhbmFuIChZKSA8d2FuZ3lhbmFuNTVAaHVhd2VpLmNvbT47IGppYWtl cm5lbDJAZ21haWwuY29tOw0KPiBtYW9iaWJvQGxvb25nc29uLmNuOyBsaXhpYW5nbGFpQGxvb25n c29uLmNuDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggUkZDIFYyIDAwLzM3XSBTdXBwb3J0IG9mIFZp cnR1YWwgQ1BVIEhvdHBsdWcgZm9yIEFSTXY4DQo+IEFyY2gNCj4gDQo+IEhpIFNhbGlsLA0KPiAN Cj4gT24gMjYtMDktMjAyMyAxNTozMywgU2FsaWwgTWVodGEgd3JvdGU6DQo+ID4gWyAqUkVQRUFU OiBTZW50IHBhdGNoZXMgZ290IGhlbGQgYXQgaW50ZXJuYWwgc2VydmVyIHllc3RlcmRheSogXQ0K PiA+DQo+ID4gUFJPTE9HVUUNCj4gPiA9PT09PT09PQ0KPiA+DQo+ID4gVG8gYXNzaXN0IGluIHJl dmlldyBhbmQgc2V0IHRoZSByaWdodCBleHBlY3RhdGlvbnMgZnJvbSB0aGlzIFJGQywgcGxlYXNl DQo+IGZpcnN0DQo+ID4gcmVhZCBiZWxvdyBzZWN0aW9ucyAqQVBQRU5ERUQgQVQgVEhFIEVORCog b2YgdGhpcyBjb3ZlciBsZXR0ZXIsDQo+ID4NCj4gPiAxLiBJbXBvcnRhbnQgKkRJU0NMQUlNRVIq IFtTZWN0aW9uIChYKV0NCj4gPiAyLiBXb3JrIHByZXNlbnRlZCBhdCBLVk1Gb3J1bSBDb25mZXJl bmNlIChzbGlkZXMgYXZhaWxhYmxlKSBbU2VjdGlvbg0KPiAoVilGXQ0KPiA+IDMuIE9yZ2FuaXph dGlvbiBvZiBwYXRjaGVzIFtTZWN0aW9uIChYSSldDQo+ID4gNC4gUmVmZXJlbmNlcyBbU2VjdGlv biAoWElJKV0NCj4gPiA1LiBEZXRhaWxlZCBUT0RPIGxpc3Qgb2YgdGhlIGxlZnRvdmVyIHdvcmsg b3Igd29yay1pbi1wcm9ncmVzcyBbU2VjdGlvbg0KPiAoSVgpXQ0KPiA+DQo+ID4gTk9URTogVGhl cmUgaGFzIGJlZW4gYW4gaW50ZXJlc3Qgc2hvd24gYnkgb3RoZXIgb3JnYW5pemF0aW9ucyBpbiBh ZGFwdGluZw0KPiA+IHRoaXMgc2VyaWVzIGZvciB0aGVpciBhcmNoaXRlY3R1cmUuIEkgYW0gcGxh bm5pbmcgdG8gc3BsaXQgdGhpcyBSRkMgaW50bw0KPiA+IGFyY2hpdGVjdHVyZSAqYWdub3N0aWMq IGFuZCAqc3BlY2lmaWMqIHBhdGNoLXNldHMgaW4gc3Vic2VxdWVudCByZWxlYXNlcy4NCj4gQVJN DQo+ID4gc3BlY2lmaWMgcGF0Y2gtc2V0IHdpbGwgY29udGludWUgYXMgUkZDIFYzIGFuZCBhcmNo aXRlY3R1cmUgYWdub3N0aWMNCj4gcGF0Y2gtc2V0DQo+ID4gd2lsbCBiZSBmbG9hdGVkIHdpdGhv dXQgUkZDIHRhZyBhbmQgY2FuIGJlIGNvbnN1bWVkIGluIHRoaXMgUWVtdSBjeWNsZSBpZg0KPiA+ IE1BSU5UQUlORVJzIGFjayBpdC4NCj4gPg0KPiA+IFtQbGVhc2UgY2hlY2sgc2VjdGlvbiAoWEkp QiBmb3IgZGV0YWlscyBvZiBhcmNoaXRlY3R1cmUgYWdub3N0aWMgcGF0Y2hlc10NCj4gPg0KPiA+ DQo+ID4gU0VDVElPTlMgW0kgLSBYSUlJXSBhcmUgYXMgZm9sbG93cyA6DQo+ID4NCj4gPiAoSSkg S2V5IENoYW5nZXMgKFJGQyBWMSAtPiBSRkMgVjIpDQo+ID4gICAgICA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQo+ID4NCj4gPiAgICAgIFJGQyBWMTogaHR0cHM6Ly9sb3JlLmtl cm5lbC5vcmcvcWVtdS1kZXZlbC8yMDIwMDYxMzIxMzYyOS4yMTk4NC0xLQ0KPiBzYWxpbC5tZWh0 YUBodWF3ZWkuY29tLw0KPiA+DQo+ID4gMS4gQUNQSSBNQURUIFRhYmxlIEdJQyBDUFUgSW50ZXJm YWNlIGNhbiBub3cgYmUgcHJlc2VudGVkIFs2XSBhcyBBQ1BJDQo+ID4gICAgICpvbmxpbmUtY2Fw YWJsZSogb3IgKmVuYWJsZWQqIHRvIHRoZSBHdWVzdCBPUyBhdCB0aGUgYm9vdCB0aW1lLiBUaGlz DQo+IG1lYW5zDQo+ID4gICAgIGFzc29jaWF0ZWQgQ1BVcyBjYW4gaGF2ZSBBQ1BJIF9TVEEgYXMg KmVuYWJsZWQqIG9yICpkaXNhYmxlZCogZXZlbg0KPiBhZnRlciBib290DQo+ID4gICAgIFNlZSwg VUVGSSBBQ1BJIDYuNSBTcGVjLCBTZWN0aW9uIDA1LCBUYWJsZSA1LjM3IEdJQ0MgQ1BVIEludGVy ZmFjZQ0KPiBGbGFnc1syMF0NCj4gPiAyLiBTTUNDL0hWQyBIeXBlcmNhbGwgZXhpdCBoYW5kbGlu ZyBpbiB1c2Vyc3BhY2UvUWVtdSBmb3IgUFNDSQ0KPiBDUFVfe09OLE9GRn0NCj4gPiAgICAgcmVx dWVzdC4gVGhpcyBpcyByZXF1aXJlZCB0byB7ZGlzfWFsbG93IG9ubGluZSdpbmcgYSB2Q1BVLg0K PiA+IDMuIEFsd2F5cyBwcmVzZW50aW5nIHVucGx1Z2dlZCB2Q1BVcyBpbiBDUFVzIEFDUEkgQU1M IGNvZGUgYXMgQUNQSQ0KPiBfU1RBLlBSRVNFTlQNCj4gPiAgICAgdG8gdGhlIEd1ZXN0IE9TLiBU b2dnbGluZyBBQ1BJIF9TVEEuRW5hYmxlZCB0byBnaXZlIGFuIGVmZmVjdCBvZiB0aGUNCj4gPiAg ICAgaG90e3VufXBsdWcuDQo+ID4gNC4gTGl2ZSBNaWdyYXRpb24gd29ya3MgKHNvbWUgaXNzdWVz IGFyZSBzdGlsbCB0aGVyZSkNCj4gPiA1LiBUQ0cvSFZGL3F0ZXN0IGRvZXMgbm90IHN1cHBvcnQg SG90cGx1ZyBhbmQgZmFsbHMgYmFjayB0byBkZWZhdWx0Lg0KPiA+IDYuIENvZGUgZm9yIFRDRyBz dXBwb3J0IGRvIGV4aXN0cyBpbiB0aGlzIHJlbGVhc2UgKGl0IGlzIGEgd29yay1pbi0NCj4gcHJv Z3Jlc3MpDQo+ID4gNy4gQUNQSSBfT1NDIG1ldGhvZCBjYW4gbm93IGJlIHVzZWQgYnkgT1NQTSB0 byBuZWdvdGlhdGUgUWVtdSBWTSBwbGF0Zm9ybQ0KPiA+ICAgICBob3RwbHVnIGNhcGFiaWxpdHkg KF9PU0MgUXVlcnkgc3VwcG9ydCBzdGlsbCBwZW5kaW5nKQ0KPiA+IDguIE1pc2MuIEJ1ZyBmaXhl cw0KPiA+DQo+ID4gKElJKSBTdW1tYXJ5DQo+ID4gICAgICAgPT09PT09PQ0KPiA+DQo+ID4gVGhp cyBwYXRjaC1zZXQgaW50cm9kdWNlcyB0aGUgdmlydHVhbCBDUFUgaG90cGx1ZyBzdXBwb3J0IGZv ciBBUk12OA0KPiBhcmNoaXRlY3R1cmUNCj4gPiBpbiBRRU1VLiBJZGVhIGlzIHRvIGJlIGFibGUg dG8gaG90cGx1ZyBhbmQgaG90LXVucGx1ZyB0aGUgdkNQVXMgd2hpbGUNCj4gZ3Vlc3QgVk0NCj4g PiBpcyBydW5uaW5nIGFuZCBubyByZWJvb3QgaXMgcmVxdWlyZWQuIFRoaXMgZG9lcyAqbm90KiBt YWtlcyBhbnkNCj4gYXNzdW1wdGlvbiBvZg0KPiA+IHRoZSBwaHlzaWNhbCBDUFUgaG90cGx1ZyBh dmFpbGFiaWxpdHkgd2l0aGluIHRoZSBob3N0IHN5c3RlbSBidXQgcmF0aGVyDQo+IHRyaWVzIHRv DQo+ID4gc29sdmUgdGhlIHByb2JsZW0gYXQgdmlydHVhbGl6ZXIvUUVNVSBsYXllci4gSW50cm9k dWNlcyBBQ1BJIENQVSBob3RwbHVnDQo+IGhvb2tzDQo+ID4gYW5kIGV2ZW50IGhhbmRsaW5nIHRv IGludGVyZmFjZSB3aXRoIHRoZSBndWVzdCBrZXJuZWwsIGNvZGUgdG8NCj4gaW5pdGlhbGl6ZSwg cGx1Zw0KPiA+IGFuZCB1bnBsdWcgQ1BVcy4gTm8gY2hhbmdlcyBhcmUgcmVxdWlyZWQgd2l0aGlu IHRoZSBob3N0IGtlcm5lbC9LVk0NCj4gZXhjZXB0IHRoZQ0KPiA+IHN1cHBvcnQgb2YgaHlwZXJj YWxsIGV4aXQgaGFuZGxpbmcgaW4gdGhlIHVzZXItc3BhY2UvUWVtdSB3aGljaCBoYXMNCj4gcmVj ZW50bHkNCj4gPiBiZWVuIGFkZGVkIHRvIHRoZSBrZXJuZWwuIEl0cyBjb3JyZXNwb25kaW5nIEd1 ZXN0IGtlcm5lbCBjaGFuZ2VzIGhhdmUNCj4gYmVlbg0KPiA+IHBvc3RlZCBvbiB0aGUgbWFpbGlu Zy1saXN0IFszXSBbNF0gYnkgSmFtZXMgTW9yc2UuDQo+ID4NCj4gPiAoSUlJKSBNb3RpdmF0aW9u DQo+ID4gICAgICAgID09PT09PT09PT0NCj4gPg0KPiA+IFRoaXMgYWxsb3dzIHNjYWxpbmcgdGhl IGd1ZXN0IFZNIGNvbXB1dGUgY2FwYWNpdHkgb24tZGVtYW5kIHdoaWNoIHdvdWxkDQo+IGJlDQo+ ID4gdXNlZnVsIGZvciB0aGUgZm9sbG93aW5nIGV4YW1wbGUgc2NlbmFyaW9zLA0KPiA+DQo+ID4g MS4gVmVydGljYWwgUG9kIEF1dG9zY2FsaW5nIFs5XVsxMF0gaW4gdGhlIGNsb3VkOiBQYXJ0IG9m IHRoZQ0KPiBvcmNoZXN0cmF0aW9uDQo+ID4gICAgIGZyYW1ld29yayB3aGljaCBjb3VsZCBhZGp1 c3QgcmVzb3VyY2UgcmVxdWVzdHMgKENQVSBhbmQgTWVtIHJlcXVlc3RzKQ0KPiBmb3INCj4gPiAg ICAgdGhlIGNvbnRhaW5lcnMgaW4gYSBwb2QsIGJhc2VkIG9uIHVzYWdlLg0KPiA+IDIuIFBheS1h cy15b3UtZ3JvdyBCdXNpbmVzcyBNb2RlbDogSW5mcmFzdHJ1Y3R1cmUgcHJvdmlkZXIgY291bGQg YWxsb2NhdGUNCj4gYW5kDQo+ID4gICAgIHJlc3RyaWN0IHRoZSB0b3RhbCBudW1iZXIgb2YgY29t cHV0ZSByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIHRoZSBndWVzdA0KPiBWTQ0KPiA+ICAgICBhY2Nv cmRpbmcgdG8gdGhlIFNMQSAoU2VydmljZSBMZXZlbCBBZ3JlZW1lbnQpLiBWTSBvd25lciBjb3Vs ZA0KPiByZXF1ZXN0IGZvcg0KPiA+ICAgICBtb3JlIGNvbXB1dGUgdG8gYmUgaG90LXBsdWdnZWQg Zm9yIHNvbWUgY29zdC4NCj4gPg0KPiA+IEZvciBleGFtcGxlLCBLYXRhIENvbnRhaW5lciBWTSBz dGFydHMgd2l0aCBhIG1pbmltdW0gYW1vdW50IG9mIHJlc291cmNlcw0KPiAoaS5lLg0KPiA+IGhv dHBsdWcgZXZlcnl0aGluZyBhcHByb2FjaCkuIHdoeT8NCj4gPg0KPiA+IDEuIEFsbG93aW5nIGZh c3RlciAqYm9vdCB0aW1lKiBhbmQNCj4gPiAyLiBSZWR1Y3Rpb24gaW4gKm1lbW9yeSBmb290cHJp bnQqDQo+ID4NCj4gPiBLYXRhIENvbnRhaW5lciBWTSBjYW4gYm9vdCB3aXRoIGp1c3QgMSB2Q1BV IGFuZCB0aGVuIGxhdGVyIG1vcmUgdkNQVXMgY2FuDQo+IGJlDQo+ID4gaG90LXBsdWdnZWQgYXMg cGVyIHJlcXVpcmVtZW50Lg0KPiA+DQo+ID4gKElWKSBUZXJtaW5vbG9neQ0KPiA+ICAgICAgID09 PT09PT09PT09DQo+ID4NCj4gPiAoKikgUG9zc3NpYmxlIENQVXM6IFRvdGFsIHZDUFVzIHdoaWNo IGNvdWxkIGV2ZXIgZXhpc3QgaW4gVk0uIFRoaXMNCj4gaW5jbHVkZXMNCj4gPiAgICAgICAgICAg ICAgICAgICAgICBhbnkgY29sZCBib290ZWQgQ1BVcyBwbHVzIGFueSBDUFVzIHdoaWNoIGNvdWxk IGJlDQo+IGxhdGVyDQo+ID4gICAgICAgICAgICAgICAgICAgICAgaG90LXBsdWdnZWQuDQo+ID4g ICAgICAgICAgICAgICAgICAgICAgLSBRZW11IHBhcmFtZXRlcigtc21wIG1heGNwdXM9TikNCj4g PiAoKikgUHJlc2VudCBDUFVzOiAgIFBvc3NpYmxlIENQVXMgd2hpY2ggYXJlIEFDUEkgJ3ByZXNl bnQnLiBUaGVzZSBtaWdodA0KPiBvciBtaWdodA0KPiA+ICAgICAgICAgICAgICAgICAgICAgIG5v dCBiZSBBQ1BJICdlbmFibGVkJy4NCj4gPiAgICAgICAgICAgICAgICAgICAgICAtIFByZXNlbnQg dkNQVXMgPSBQb3NzaWJsZSB2Q1BVcyAoQWx3YXlzIG9uIEFSTQ0KPiBBcmNoKQ0KPiA+ICgqKSBF bmFibGVkIENQVXM6ICAgUG9zc2libGUgQ1BVcyB3aGljaCBhcmUgQUNQSSDigJhwcmVzZW504oCZ IGFuZCAnZW5hYmxlZCcNCj4gYW5kIGNhbg0KPiA+ICAgICAgICAgICAgICAgICAgICAgIG5vdyBi ZSDigJhvbmxpbmVk4oCZIChQU0NJKSBmb3IgdXNlIGJ5IEd1ZXN0IEtlcm5lbC4gQWxsDQo+IGNv bGQNCj4gPiAgICAgICAgICAgICAgICAgICAgICBib290ZWQgdkNQVXMgYXJlIEFDUEkgJ2VuYWJs ZWQnIGF0IGJvb3QuIExhdGVyLA0KPiB1c2luZw0KPiA+ICAgICAgICAgICAgICAgICAgICAgIGRl dmljZV9hZGQgbW9yZSB2Q1BVcyBjYW4gYmUgaG90cGx1Z2dlZCBhbmQgYmUgbWFkZQ0KPiBBQ1BJ DQo+ID4gICAgICAgICAgICAgICAgICAgICAgJ2VuYWJsZWQuDQo+ID4gICAgICAgICAgICAgICAg ICAgICAgLSBRZW11IHBhcmFtZXRlcigtc21wIGNwdXM9TikuIENhbiBiZSB1c2VkIHRvDQo+IHNw ZWNpZnkgc29tZQ0KPiA+IAkJICAgICAgY29sZCBib290ZWQgdkNQVXMgZHVyaW5nIFZNIGluaXQu IFNvbWUgY2FuIGJlIGFkZGVkIHVzaW5nDQo+ID4gCQkgICAgICAnLWRldmljZScgb3B0aW9uLg0K PiA+DQo+ID4gKFYpIENvbnN0cmFpbnRzIER1ZSBUbyBBUk12OCBDUFUgQXJjaGl0ZWN0dXJlIFsr XSBPdGhlciBJbXBlZGltZW50cw0KPiA+ICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4NCj4gPiBBLiBQaHlzaWNh bCBMaW1pdGF0aW9uIHRvIFN1cHBvcnQgQ1BVIEhvdHBsdWc6IChBcmNoaXRlY3R1cmFsIENvbnN0 cmFpbnQpDQo+ID4gICAgIDEuIEFSTXY4IENQVSBhcmNoaXRlY3R1cmUgZG9lcyBub3Qgc3VwcG9y dCB0aGUgY29uY2VwdCBvZiB0aGUNCj4gcGh5c2ljYWwgQ1BVDQo+ID4gICAgICAgIGhvdHBsdWcu DQo+ID4gICAgICAgIGEuIFRoZXJlIGFyZSBtYW55IHBlci1DUFUgY29tcG9uZW50cyBsaWtlIFBN VSwgU1ZFLCBNVEUsIEFyY2gNCj4gdGltZXJzIGV0Yy4NCj4gPiAgICAgICAgICAgd2hvc2UgYmVo YXZpb3VyIG5lZWQgdG8gYmUgY2xlYXJseSBkZWZpbmVkIHdoZW4gQ1BVIGlzDQo+IGhvdCh1bilw bHVnZ2VkLg0KPiA+ICAgICAgICAgICBUaGVyZSBpcyBubyBzcGVjaWZpY2F0aW9uIGZvciB0aGlz Lg0KPiA+DQo+ID4gICAgIDIuIE90aGVyIEFSTSBjb21wb25lbnRzIGxpa2UgR0lDIGV0Yy4gaGF2 ZSBub3QgYmVlbiBkZXNpZ25lZCB0bw0KPiByZWFsaXplDQo+ID4gICAgICAgIHBoeXNpY2FsIENQ VSBob3RwbHVnIGNhcGFiaWxpdHkgYXMgb2Ygbm93LiBGb3IgZXhhbXBsZSwNCj4gPiAgICAgICAg YS4gRXZlcnkgcGh5c2ljYWwgQ1BVIGhhcyBhIHVuaXF1ZSBHSUNDIChHSUMgQ1BVIEludGVyZmFj ZSkgYnkNCj4gY29uc3RydWN0Lg0KPiA+ICAgICAgICAgICBBcmNoaXRlY3R1cmUgZG9lcyBub3Qg c3BlY2lmaWVzIHdoYXQgQ1BVIGhvdCh1bilwbHVnIHdvdWxkIG1lYW4NCj4gaW4NCj4gPiAgICAg ICAgICAgY29udGV4dCB0byBhbnkgb2YgdGhlc2UuDQo+ID4gICAgICAgIGIuIENQVXMvR0lDQyBh cmUgcGh5c2ljYWxseSBjb25uZWN0ZWQgdG8gdW5pcXVlIEdJQ1IgKEdJQw0KPiBSZWRpc3RyaWJ1 dG9yKS4NCj4gPiAgICAgICAgICAgR0lDIFJlZGlzdHJpYnV0b3JzIGFyZSBhbHdheXMgcGFydCBv ZiBhbHdheXMtb24gcG93ZXIgZG9tYWluLg0KPiBIZW5jZSwNCj4gPiAgICAgICAgICAgY2Fubm90 IGJlIHBvd2VyZWQtb2ZmIGFzIHBlciBzcGVjaWZpY2F0aW9uLg0KPiA+DQo+ID4gQi4gSW1wZWRp bWVudHMgaW4gRmlybXdhcmUvQUNQSSAoQXJjaGl0ZWN0dXJhbCBDb25zdHJhaW50KQ0KPiA+DQo+ ID4gICAgIDEuIEZpcm13YXJlIGhhcyB0byBleHBvc2UgR0lDQywgR0lDUiBhbmQgb3RoZXIgcGVy LUNQVSBmZWF0dXJlcyBsaWtlDQo+IFBNVSwNCj4gPiAgICAgICAgU1ZFLCBNVEUsIEFyY2ggVGlt ZXJzIGV0Yy4gdG8gdGhlIE9TLiBEdWUgdG8gYXJjaGl0ZWN0dXJhbA0KPiBjb25zdHJhaW50DQo+ ID4gICAgICAgIHN0YXRlZCBpbiBhYm92ZSBzZWN0aW9uIEExKGEpLCAgYWxsIGludGVycnVwdCBj b250cm9sbGVyDQo+IHN0cnVjdHVyZXMgb2YNCj4gPiAgICAgICAgTUFEVCBkZXNjcmliaW5nIEdJ QyBDUFUgSW50ZXJmYWNlcyBhbmQgdGhlIEdJQyBSZWRpc3RpYnV0b3JzIE1VU1QNCj4gYmUNCj4g PiAgICAgICAgcHJlc2VudGVkIGJ5IGZpcm13YXJlIHRvIHRoZSBPU1BNIGR1cmluZyB0aGUgYm9v dCB0aW1lLg0KPiA+ICAgICAyLiBBcmNoaXRlY3R1cmVzIHRoYXQgc3VwcG9ydCBDUFUgaG90cGx1 ZyBjYW4gZXZhbHVhdGUgQUNQSSBfTUFUDQo+IG1ldGhvZCB0bw0KPiA+ICAgICAgICBnZXQgdGhp cyBraW5kIG9mIGluZm9ybWF0aW9uIGZyb20gdGhlIGZpcm13YXJlIGV2ZW4gYWZ0ZXIgYm9vdCBh bmQNCj4gdGhlDQo+ID4gICAgICAgIE9TUE0gaGFzIGNhcGFiaWxpdHkgdG8gcHJvY2VzcyB0aGVz ZS4gQVJNIGtlcm5lbCB1c2VzIGluZm9ybWF0aW9uDQo+IGluIE1BRFQNCj4gPiAgICAgICAgaW50 ZXJydXB0IGNvbnRyb2xsZXIgc3RydWN0dXJlcyB0byBpZGVudGlmeSBudW1iZXIgb2YgUHJlc2Vu dCBDUFVzDQo+IGR1cmluZw0KPiA+ICAgICAgICBib290IGFuZCBoZW5jZSBkb2VzIG5vdCBhbGxv dyB0byBjaGFuZ2UgdGhlc2UgYWZ0ZXIgYm9vdC4gTnVtYmVyDQo+IG9mDQo+ID4gICAgICAgIHBy ZXNlbnQgQ1BVcyBjYW5ub3QgYmUgY2hhbmdlZC4gSXQgaXMgYW4gYXJjaGl0ZWN0dXJhbCBjb25z dHJhaW50IQ0KPiA+DQo+ID4gQy4gSW1wZWRpbWVudHMgaW4gS1ZNIHRvIFN1cHBvcnQgVmlydHVh bCBDUFUgSG90cGx1ZyAoQXJjaGl0ZWN0dXJhbA0KPiBDb25zdHJhaW50KQ0KPiA+DQo+ID4gICAg IDEuIEtWTSBWR0lDOg0KPiA+ICAgICAgICAgYS4gU2l6aW5nIG9mIHZhcmlvdXMgVkdJQyByZXNv dXJjZXMgbGlrZSBtZW1vcnkgcmVnaW9ucyBldGMuDQo+IHJlbGF0ZWQgdG8NCj4gPiAgICAgICAg ICAgIHRoZSByZWRpc3RyaWJ1dG9yIGhhcHBlbnMgb25seSBvbmNlIGFuZCBpcyBmaXhlZCBhdCB0 aGUgVk0NCj4gaW5pdCB0aW1lDQo+ID4gICAgICAgICAgICBhbmQgY2Fubm90IGJlIGNoYW5nZWQg bGF0ZXIgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gaGFzIGhhcHBlbmVkLg0KPiA+ICAgICAgICAgICAg S1ZNIHN0YXRpY2FsbHkgY29uZmlndXJlcyB0aGVzZSByZXNvdXJjZXMgYmFzZWQgb24gdGhlIG51 bWJlcg0KPiBvZiB2Q1BVcw0KPiA+ICAgICAgICAgICAgYW5kIHRoZSBudW1iZXIvc2l6ZSBvZiBy ZWRpc3RyaWJ1dG9yIHJhbmdlcy4NCj4gPiAgICAgICAgIGIuIEFzc29jaWF0aW9uIGJldHdlZW4g dkNQVSBhbmQgaXRzIFZHSUMgcmVkaXN0cmlidXRvciBpcyBmaXhlZA0KPiBhdCB0aGUNCj4gPiAg ICAgICAgICAgIFZNIGluaXQgdGltZSB3aXRoaW4gdGhlIEtWTSBpLmUuIHdoZW4gcmVkaXN0cmli dXRvciBpb2RldnMNCj4gZ2V0cw0KPiA+ICAgICAgICAgICAgcmVnaXN0ZXJlZC4gVkdJQyBkb2Vz IG5vdCBhbGxvd3MgdG8gc2V0dXAvY2hhbmdlIHRoaXMNCj4gYXNzb2NpYXRpb24NCj4gPiAgICAg ICAgICAgIGFmdGVyIFZNIGluaXRpYWxpemF0aW9uIGhhcyBoYXBwZW5lZC4gUGh5c2ljYWxseSwg ZXZlcnkNCj4gQ1BVL0dJQ0MgaXMNCj4gPiAgICAgICAgICAgIHVuaXF1ZWx5IGNvbm5lY3RlZCB3 aXRoIGl0cyByZWRpc3RyaWJ1dG9yIGFuZCB0aGVyZSBpcyBubw0KPiA+ICAgICAgICAgICAgYXJj aGl0ZWN0dXJhbCB3YXkgdG8gc2V0IHRoaXMgdXAuDQo+ID4gICAgIDIuIEtWTSB2Q1BVczoNCj4g PiAgICAgICAgIGEuIExhY2sgb2Ygc3BlY2lmaWNhdGlvbiBtZWFucyBkZXN0cnVjdGlvbiBvZiBL Vk0gdkNQVXMgZG9lcyBub3QNCj4gZXhpc3QgYXMNCj4gPiAgICAgICAgICAgIHRoZXJlIGlzIG5v IHJlZmVyZW5jZSB0byB0ZWxsIHdoYXQgdG8gZG8gd2l0aCBvdGhlciBwZXItdkNQVQ0KPiA+ICAg ICAgICAgICAgY29tcG9uZW50cyBsaWtlIHJlZGlzdHJpYnV0b3JzLCBhcmNoIHRpbWVyIGV0Yy4N Cj4gPiAgICAgICAgIGIuIEluZmFjdCwgS1ZNIGRvZXMgbm90IGltcGxlbWVudHMgZGVzdHJ1Y3Rp b24gb2YgdkNQVXMgZm9yIGFueQ0KPiA+ICAgICAgICAgICAgYXJjaGl0ZWN0dXJlLiBUaGlzIGlz IGluZGVwZW5kZW50IG9mIHRoZSBmYWN0IHdoZXRoZXINCj4gYXJjaGl0ZWN0dXJlDQo+ID4gICAg ICAgICAgICBhY3R1YWxseSBzdXBwb3J0cyBDUFUgSG90cGx1ZyBmZWF0dXJlLiBGb3IgZXhhbXBs ZSwgZXZlbiBmb3INCj4geDg2IEtWTQ0KPiA+ICAgICAgICAgICAgZG9lcyBub3QgaW1wbGVtZW50 cyBkZXN0cnVjdGlvbiBvZiB2Q1BVcy4NCj4gPg0KPiA+IEQuIEltcGVkaW1lbnRzIGluIFFlbXUg dG8gU3VwcG9ydCBWaXJ0dWFsIENQVSBIb3RwbHVnIChLVk0gQ29uc3RyYWludHMtDQo+ID5BcmNo KQ0KPiA+DQo+ID4gICAgIDEuIFFlbXUgQ1BVIE9iamVjdHMgTVVTVCBiZSBjcmVhdGVkIHRvIGlu aXRpYWxpemUgYWxsIHRoZSBIb3N0IEtWTQ0KPiB2Q1BVcyB0bw0KPiA+ICAgICAgICBvdmVyY29t ZSB0aGUgS1ZNIGNvbnN0cmFpbnQuIEtWTSB2Q1BVcyBhcmUgY3JlYXRlZCwgaW5pdGlhbGl6ZWQN Cj4gd2hlbiBRZW11DQo+ID4gICAgICAgIENQVSBPYmplY3RzIGFyZSByZWFsaXplZC4gQnV0IGtl ZXBpbnNnIHRoZSBRT00gQ1BVIG9iamVjdHMNCj4gcmVhbGl6ZWQgZm9yDQo+ID4gICAgICAgICd5 ZXQtdG8tYmUtcGx1Z2dlZCcgdkNQVXMgY2FuIGNyZWF0ZSBwcm9ibGVtcyB3aGVuIHRoZXNlIG5l dyB2Q1BVcw0KPiBzaGFsbA0KPiA+ICAgICAgICBiZSBwbHVnZ2VkIHVzaW5nIGRldmljZV9hZGQg YW5kIGEgbmV3IFFPTSBDUFUgb2JqZWN0IHNoYWxsIGJlDQo+IGNyZWF0ZWQuDQo+ID4gICAgIDIu IEdJQ1YzU3RhdGUgYW5kIEdJQ1YzQ1BVU3RhdGUgb2JqZWN0cyBNVVNUIGJlIHNpemVkIG92ZXIg KnBvc3NpYmxlDQo+IHZDUFVzKg0KPiA+ICAgICAgICBkdXJpbmcgVk0gaW5pdCB0aW1lIHdoaWxl IFFPTSBHSUNWMyBPYmplY3QgaXMgcmVhbGl6ZWQuIFRoaXMgaXMNCj4gYmVjYXVzZQ0KPiA+ICAg ICAgICBLVk0gVkdJQyBjYW4gb25seSBiZSBpbml0aWFsaXplZCBvbmNlIGR1cmluZyBpbml0IHRp bWUuIEJ1dCBldmVyeQ0KPiA+ICAgICAgICBHSUNWM0NQVVN0YXRlIGhhcyBhbiBhc3NvY2lhdGVk IFFPTSBDUFUgT2JqZWN0LiBMYXRlciBtaWdodA0KPiBjb3JyZXNwb25kcyB0bw0KPiA+ICAgICAg ICB2Q1BVIHdoaWNoIGFyZSAneWV0LXRvLWJlLXBsdWdnZWQnKHVucGx1Z2dlZCBhdCBpbml0KS4N Cj4gPiAgICAgMy4gSG93IHNob3VsZCBuZXcgUU9NIENQVSBvYmplY3RzIGJlIGNvbm5lY3RlZCBi YWNrIHRvIHRoZQ0KPiBHSUNWM0NQVVN0YXRlDQo+ID4gICAgICAgIG9iamVjdHMgYW5kIGRpc2Nv bm5lY3RlZCBmcm9tIGl0IGluIGNhc2UgQ1BVIGlzIGJlaW5nDQo+IGhvdCh1bilwbHVnZ2VkPw0K PiA+ICAgICA0LiBIb3cgc2hvdWxkICd1bnBsdWdnZWQnIG9yICd5ZXQtdG8tYmUtcGx1Z2dlZCcg dkNQVXMgYmUgcmVwcmVzZW50ZWQNCj4gaW4gdGhlDQo+ID4gICAgICAgIFFPTSBmb3Igd2hpY2gg S1ZNIHZDUFUgYWxyZWFkeSBleGlzdHM/IEZvciBleGFtcGxlLCB3aGV0aGVyIHRvDQo+IGtlZXAs DQo+ID4gICAgICAgICBhLiBObyBRT00gQ1BVIG9iamVjdHMgT3INCj4gPiAgICAgICAgIGIuIFVu cmVhbGl6ZWQgQ1BVIE9iamVjdHMNCj4gPiAgICAgNS4gSG93IHNob3VsZCB2Q1BVIHN0YXRlIGJl IGV4cG9zZWQgdmlhIEFDUEkgdG8gdGhlIEd1ZXN0PyBFc3BlY2lhbGx5DQo+IGZvcg0KPiA+ICAg ICAgICB0aGUgdW5wbHVnZ2VkL3lldC10by1iZS1wbHVnZ2VkIHZDUFVzIHdob3NlIENQVSBvYmpl Y3RzIG1pZ2h0IG5vdA0KPiBleGlzdHMNCj4gPiAgICAgICAgd2l0aGluIHRoZSBRT00gYnV0IHRo ZSBHdWVzdCBhbHdheXMgZXhwZWN0cyBhbGwgcG9zc2libGUgdkNQVXMgdG8NCj4gYmUNCj4gPiAg ICAgICAgaWRlbnRpZmllZCBhcyBBQ1BJICpwcmVzZW50KiBkdXJpbmcgYm9vdC4NCj4gPiAgICAg Ni4gSG93IHNob3VsZCBRZW11IGV4cG9zZSBHSUMgQ1BVIGludGVyZmFjZXMgZm9yIHRoZSB1bnBs dWdnZWQgb3INCj4gPiAgICAgICAgeWV0LXRvLWJlcGx1Z2dlZCB2Q1BVcyB1c2luZyBBQ1BJIE1B RFQgVGFibGUgdG8gdGhlIEd1ZXN0Pw0KPiA+DQo+ID4gRS4gU3VtbWFyeSBvZiBBcHByb2FjaCAo WytdIFdvcmthcm91bmRzIHRvIHByb2JsZW1zIGluIHNlY3Rpb25zIEEsIEIsIEMgJg0KPiBEKQ0K PiA+DQo+ID4gICAgIDEuIEF0IFZNIEluaXQsIHByZS1jcmVhdGUgYWxsIHRoZSBwb3NzaWJsZSB2 Q1BVcyBpbiB0aGUgSG9zdCBLVk0gaS5lLg0KPiBldmVuDQo+ID4gICAgICAgIGZvciB0aGUgdkNQ VXMgd2hpY2ggYXJlIHlldC10by1iZS1wbHVnZ2VkIGluIFFlbXUgYnV0IGtlZXAgdGhlbSBpbg0K PiB0aGUNCj4gPiAgICAgICAgcG93ZXJlZC1vZmYgc3RhdGUuDQo+ID4gICAgIDIuIEFmdGVyIHRo ZSBLVk0gdkNQVXMgaGF2ZSBiZWVuIGluaXRpYWxpemVkIGluIHRoZSBIb3N0LCB0aGUgS1ZNDQo+ IHZDUFUNCj4gPiAgICAgICAgb2JqZWN0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSB1bnBsdWdnZWQv eWV0LXRvLWJlLXBsdWdnZWQgdkNQVXMgYXJlDQo+IHBhcmtlZA0KPiA+ICAgICAgICBhdCB0aGUg ZXhpc3RpbmcgcGVyLVZNICJrdm1fcGFya2VkX3ZjcHVzIiBsaXN0IGluIFFlbXUuIChzaW1pbGFy DQo+IHRvIHg4NikNCj4gPiAgICAgMy4gR0lDVjNTdGF0ZSBhbmQgR0lDVjNDUFVTdGF0ZSBvYmpl Y3RzIGFyZSBzaXplZCBvdmVyIHBvc3NpYmxlIHZDUFVzDQo+IGR1cmluZw0KPiA+ICAgICAgICBW TSBpbml0IHRpbWUgaS5lLiB3aGVuIFFlbXUgR0lDIGlzIHJlYWxpemVkLiBUaGlzIGluIHR1cm4g c2l6ZXMNCj4gS1ZNIFZHSUMNCj4gPiAgICAgICAgcmVzb3VyY2VzIGxpa2UgbWVtb3J5IHJlZ2lv bnMgZXRjLiByZWxhdGVkIHRvIHRoZSByZWRpc3RyaWJ1dG9ycw0KPiB3aXRoIHRoZQ0KPiA+ICAg ICAgICBudW1iZXIgb2YgcG9zc2libGUgS1ZNIHZDUFVzLiBUaGlzIG5ldmVyIGNoYW5nZXMgYWZ0 ZXIgVk0gaGFzDQo+IGluaXRpYWxpemVkLg0KPiA+ICAgICA0LiBRZW11IENQVSBvYmplY3RzIGNv cnJlc3BvbmRpbmcgdG8gdW5wbHVnZ2VkL3lldC10by1iZS1wbHVnZ2VkDQo+IHZDUFVzIGFyZQ0K PiA+ICAgICAgICByZWxlYXNlZCBwb3N0IEhvc3QgS1ZNIENQVSBhbmQgR0lDL1ZHSUMgaW5pdGlh bGl6YXRpb24uDQo+ID4gICAgIDUuIEJ1aWxkIEFDUEkgTUFEVCBUYWJsZSB3aXRoIGJlbG93IHVw ZGF0ZXMNCj4gPiAgICAgICAgYS4gTnVtYmVyIG9mIEdJQyBDUFUgaW50ZXJmYWNlIGVudHJpZXMg KD1wb3NzaWJsZSB2Q1BVcykNCj4gPiAgICAgICAgYi4gUHJlc2VudCBCb290IHZDUFUgYXMgTUFE VC5HSUNDLkVuYWJsZWQ9MSAoTm90IGhvdFt1bl1wbHVnZ2FibGUpDQo+ID4gICAgICAgIGMuIFBy ZXNlbnQgaG90KHVuKXBsdWdnYWJsZSB2Q1BVcyBhcyBNQURULkdJQ0Mub25saW5lLWNhcGFibGU9 MQ0KPiA+ICAgICAgICAgICAtIE1BRFQuR0lDQy5FbmFibGVkPTAgKE11dHVhbGx5IGV4Y2x1c2l2 ZSkgWzZdWzddDQo+ID4gCSAtIHZDUFUgY2FuIGJlIEFDUEkgZW5hYmxlZCtvbmxpbmVkIGFmdGVy IEd1ZXN0IGJvb3RzIChGaXJtd2FyZQ0KPiBQb2xpY3kpDQo+ID4gCSAtIFNvbWUgaXNzdWVzIHdp dGggYWJvdmUgKGRldGFpbHMgaW4gbGF0ZXIgc2VjdGlvbnMpDQo+ID4gICAgIDYuIEV4cG9zZSBi ZWxvdyBBQ1BJIFN0YXR1cyB0byBHdWVzdCBrZXJuZWwNCj4gPiAgICAgICAgYS4gQWx3YXlzIF9T VEEuUHJlc2VudD0xIChhbGwgcG9zc2libGUgdkNQVXMpDQo+ID4gICAgICAgIGIuIF9TVEEuRW5h YmxlZD0xIChwbHVnZ2VkIHZDUFVzKQ0KPiA+ICAgICAgICBjLiBfU1RBLkVuYWJsZWQ9MCAodW5w bHVnZ2VkIHZDUFVzKQ0KPiA+ICAgICA3LiB2Q1BVIGhvdHBsdWcgKnJlYWxpemVzKiBuZXcgUU9N IENQVSBvYmplY3QuIEZvbGxvd2luZyBoYXBwZW5zLA0KPiA+ICAgICAgICBhLiBSZWFsaXplcywg aW5pdGlhbGl6ZXMgUU9NIENQVSBPYmplY3QgJiBzcGF3bnMgUWVtdSB2Q1BVIHRocmVhZA0KPiA+ ICAgICAgICBiLiBVbnBhcmtzIHRoZSBleGlzdGluZyBLVk0gdkNQVSAoImt2bV9wYXJrZWRfdmNw dXMiIGxpc3QpDQo+ID4gICAgICAgICAgIC0gQXR0YWNoZXMgdG8gUU9NIENQVSBvYmplY3QuDQo+ ID4gICAgICAgIGMuIFJlaW5pdGlhbGl6ZXMgS1ZNIHZDUFUgaW4gdGhlIEhvc3QNCj4gPiAgICAg ICAgICAgLSBSZXNldHMgdGhlIGNvcmUgYW5kIHN5cyByZWdzLCBzZXRzIGRlZmF1bHRzIGV0Yy4N Cj4gPiAgICAgICAgZC4gUnVucyBLVk0gdkNQVSAoY3JlYXRlZCB3aXRoICJzdGFydC1wb3dlcmVk LW9mZiIpDQo+ID4gCSAtIHZDUFUgdGhyZWFkIHNsZWVwcyAod2FpdHMgZm9yIHZDUFUgcmVzZXQg dmlhIFBTQ0kpDQo+ID4gICAgICAgIGUuIFVwZGF0ZXMgUWVtdSBHSUMNCj4gPiAgICAgICAgICAg LSBXaXJlcyBiYWNrIElSUXMgcmVsYXRlZCB0byB0aGlzIHZDUFUuDQo+ID4gICAgICAgICAgIC0g R0lDVjNDUFVTdGF0ZSBhc3NvY2lhdGlvbiB3aXRoIFFPTSBDUFUgT2JqZWN0Lg0KPiA+ICAgICAg ICBmLiBVcGRhdGVzIFs2XSBBQ1BJIF9TVEEuRW5hYmxlZD0xDQo+ID4gICAgICAgIGcuIE5vdGlm aWVzIEd1ZXN0IGFib3V0IG5ldyB2Q1BVICh2aWEgQUNQSSBHRUQgaW50ZXJmYWNlKQ0KPiA+IAkg LSBHdWVzdCBjaGVja3MgX1NUQS5FbmFibGVkPTENCj4gPiAJIC0gR3Vlc3QgYWRkcyBwcm9jZXNz b3IgKHJlZ2lzdGVycyBDUFUgd2l0aCBMRE0pIFszXQ0KPiA+ICAgICAgICBoLiBQbHVncyB0aGUg UU9NIENQVSBvYmplY3QgaW4gdGhlIHNsb3QuDQo+ID4gICAgICAgICAgIC0gc2xvdC1udW1iZXIg PSBjcHUtaW5kZXh7c29ja2V0LGNsdXN0ZXIsY29yZSx0aHJlYWR9DQo+ID4gICAgICAgIGkuIEd1 ZXN0IG9ubGluZSdzIHZDUFUgKENQVV9PTiBQU0NJIGNhbGwgb3ZlciBIVkMvU01DKQ0KPiA+ICAg ICAgICAgICAtIEtWTSBleGl0cyBIVkMvU01DIEh5cGVyY2FsbCBbNV0gdG8gUWVtdSAoUG9saWN5 IENoZWNrKS4NCj4gPiAgICAgICAgICAgLSBRZW11IHBvd2Vycy1vbiBLVk0gdkNQVSBpbiB0aGUg SG9zdA0KPiA+ICAgICA4LiB2Q1BVIGhvdC11bnBsdWcgKnVucmVhbGl6ZXMqIFFPTSBDUFUgT2Jq ZWN0LiBGb2xsb3dpbmcgaGFwcGVucywNCj4gPiAgICAgICAgYS4gTm90aWZpZXMgR3Vlc3QgKHZp YSBBQ1BJIEdFRCBpbnRlcmZhY2UpIHZDUFUgaG90LXVucGx1ZyBldmVudA0KPiA+ICAgICAgICAg ICAtIEd1ZXN0IG9mZmxpbmUncyB2Q1BVIChDUFVfT0ZGIFBTQ0kgY2FsbCBvdmVyIEhWQy9TTUMp DQo+ID4gICAgICAgIGIuIEtWTSBleGl0cyBIVkMvU01DIEh5cGVyY2FsbCBbNV0gdG8gUWVtdSAo UG9saWN5IENoZWNrKS4NCj4gPiAgICAgICAgICAgLSBRZW11IHBvd2Vycy1vZmYgdGhlIEtWTSB2 Q1BVIGluIHRoZSBIb3N0DQo+ID4gICAgICAgIGMgR3Vlc3Qgc2lnbmFscyAqRWplY3QqIHZDUFUg dG8gUWVtdQ0KPiA+ICAgICAgICBkLiBRZW11IHVwZGF0ZXMgWzZdIEFDUEkgX1NUQS5FbmFibGVk PTANCj4gPiAgICAgICAgZS4gVXBkYXRlcyBHSUMNCj4gPiAgICAgICAgICAgLSBVbi13aXJlcyBJ UlFzIHJlbGF0ZWQgdG8gdGhpcyB2Q1BVDQo+ID4gICAgICAgICAgIC0gR0lDVjNDUFVTdGF0ZSBh c3NvY2lhdGlvbiB3aXRoIG5ldyBRT00gQ1BVIE9iamVjdCBpcyB1cGRhdGVkLg0KPiA+ICAgICAg ICBmLiBVbnBsdWdzIHRoZSB2Q1BVDQo+ID4gCSAtIFJlbW92ZXMgZnJvbSBzbG90DQo+ID4gICAg ICAgICAgIC0gUGFya3MgS1ZNIHZDUFUgKCJrdm1fcGFya2VkX3ZjcHVzIiBsaXN0KQ0KPiA+ICAg ICAgICAgICAtIFVucmVhbGl6ZXMgUU9NIENQVSBPYmplY3QgJiBqb2lucyBiYWNrIFFlbXUgdkNQ VSB0aHJlYWQNCj4gPiAJIC0gRGVzdHJveXMgUU9NIENQVSBvYmplY3QNCj4gPiAgICAgICAgZy4g R3Vlc3QgY2hlY2tzIEFDUEkgX1NUQS5FbmFibGVkPTANCj4gPiAgICAgICAgICAgLSBSZW1vdmVz IHByb2Nlc3NvciAodW5yZWdpc3RlcnMgQ1BVIHdpdGggTERNKSBbM10NCj4gPg0KPiA+IEYuIFdv cmsgUHJlc2VudGVkIGF0IEtWTSBGb3J1bSBDb25mZXJlbmNlczoNCj4gPiAgICAgRGV0YWlscyBv ZiBhYm92ZSB3b3JrIGhhcyBiZWVuIHByZXNlbnRlZCBhdCBLVk1Gb3J1bTIwMjAgYW5kDQo+IEtW TUZvcnVtMjAyMw0KPiA+ICAgICBjb25mZXJlbmNlcy4gU2xpZGVzIGFyZSBhdmFpbGFibGUgYXQg YmVsb3cgbGlua3MsDQo+ID4gICAgIGEuIEtWTUZvcnVtIDIwMjMNCj4gPiAgICAgICAgLSBDaGFs bGVuZ2VzIFJldmlzaXRlZCBpbiBTdXBwb3J0aW5nIFZpcnQgQ1BVIEhvdHBsdWcgb24NCj4gYXJj aGl0ZWN0dXJlcyB0aGF0IGRvbid0IFN1cHBvcnQgQ1BVIEhvdHBsdWcgKGxpa2UgQVJNNjQpDQo+ ID4gICAgICAgICAgaHR0cHM6Ly9rdm0tZm9ydW0ucWVtdS5vcmcvMjAyMy90YWxrLzlTTVBEUS8N Cj4gPiAgICAgYi4gS1ZNRm9ydW0gMjAyMA0KPiA+ICAgICAgICAtIENoYWxsZW5nZXMgaW4gU3Vw cG9ydGluZyBWaXJ0dWFsIENQVSBIb3RwbHVnIG9uIFNvQyBCYXNlZA0KPiBTeXN0ZW1zIChsaWtl IEFSTTY0KSAtIFNhbGlsIE1laHRhLCBIdWF3ZWkNCj4gPiAgICAgICAgICBodHRwczovL3NjaGVk LmNvL2VFNG0NCj4gPg0KPiA+IChWSSkgQ29tbWFuZHMgVXNlZA0KPiA+ICAgICAgID09PT09PT09 PT09PT0NCj4gPg0KPiA+ICAgICAgQS4gUWVtdSBsYXVuY2ggY29tbWFuZHMgdG8gaW5pdCB0aGUg bWFjaGluZQ0KPiA+DQo+ID4gICAgICAkIHFlbXUtc3lzdGVtLWFhcmNoNjQgLS1lbmFibGUta3Zt IC1tYWNoaW5lIHZpcnQsZ2ljLXZlcnNpb249MyBcDQo+ID4gICAgICAtY3B1IGhvc3QgLXNtcCBj cHVzPTQsbWF4Y3B1cz02IFwNCj4gPiAgICAgIC1tIDMwME0gXA0KPiA+ICAgICAgLWtlcm5lbCBJ bWFnZSBcDQo+ID4gICAgICAtaW5pdHJkIHJvb3Rmcy5jcGlvLmd6IFwNCj4gPiAgICAgIC1hcHBl bmQgImNvbnNvbGU9dHR5QU1BMCByb290PS9kZXYvcmFtIHJkaW5pdD0vaW5pdCBtYXhjcHVzPTIN Cj4gYWNwaT1mb3JjZSIgXA0KPiA+ICAgICAgLW5vZ3JhcGhpYyBcDQo+ID4gICAgICAtYmlvcyAg UUVNVV9FRkkuZmQgXA0KPiA+DQo+ID4gICAgICBCLiBIb3QtKHVuKXBsdWcgcmVsYXRlZCBjb21t YW5kcw0KPiA+DQo+ID4gICAgICAjIEhvdHBsdWcgYSBob3N0IHZDUFUoYWNjZWw9a3ZtKQ0KPiA+ ICAgICAgJCBkZXZpY2VfYWRkIGhvc3QtYXJtLWNwdSxpZD1jb3JlNCxjb3JlLWlkPTQNCj4gPg0K PiA+ICAgICAgIyBIb3RwbHVnIGEgdkNQVShhY2NlbD10Y2cpDQo+ID4gICAgICAkIGRldmljZV9h ZGQgY29ydGV4LWE1Ny1hcm0tY3B1LGlkPWNvcmU0LGNvcmUtaWQ9NA0KPiA+DQo+ID4gICAgICAj IERlbGV0ZSB0aGUgdkNQVQ0KPiA+ICAgICAgJCBkZXZpY2VfZGVsIGNvcmU0DQo+ID4NCj4gPiAg ICAgIFNhbXBsZSBvdXRwdXQgb24gZ3Vlc3QgYWZ0ZXIgYm9vdDoNCj4gPg0KPiA+ICAgICAgJCBj YXQgL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvcG9zc2libGUNCj4gPiAgICAgIDAtNQ0KPiA+ICAg ICAgJCBjYXQgL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvcHJlc2VudA0KPiA+ICAgICAgMC01DQo+ ID4gICAgICAkIGNhdCAvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9lbmFibGVkDQo+ID4gICAgICAw LTMNCj4gPiAgICAgICQgY2F0IC9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L29ubGluZQ0KPiA+ICAg ICAgMC0xDQo+ID4gICAgICAkIGNhdCAvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9vZmZsaW5lDQo+ ID4gICAgICAyLTUNCj4gPg0KPiA+ICAgICAgU2FtcGxlIG91dHB1dCBvbiBndWVzdCBhZnRlciBo b3RwbHVnIG9mIHZDUFU9NDoNCj4gPg0KPiA+ICAgICAgJCBjYXQgL3N5cy9kZXZpY2VzL3N5c3Rl bS9jcHUvcG9zc2libGUNCj4gPiAgICAgIDAtNQ0KPiA+ICAgICAgJCBjYXQgL3N5cy9kZXZpY2Vz L3N5c3RlbS9jcHUvcHJlc2VudA0KPiA+ICAgICAgMC01DQo+ID4gICAgICAkIGNhdCAvc3lzL2Rl dmljZXMvc3lzdGVtL2NwdS9lbmFibGVkDQo+ID4gICAgICAwLTQNCj4gPiAgICAgICQgY2F0IC9z eXMvZGV2aWNlcy9zeXN0ZW0vY3B1L29ubGluZQ0KPiA+ICAgICAgMC0xLDQNCj4gPiAgICAgICQg Y2F0IC9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L29mZmxpbmUNCj4gPiAgICAgIDItMyw1DQo+ID4N Cj4gPiAgICAgIE5vdGU6IHZDUFU9NCB3YXMgZXhwbGljaXRseSAnb25saW5lZCcgYWZ0ZXIgaG90 LXBsdWcNCj4gPiAgICAgICQgZWNobyAxID4gL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1NC9v bmxpbmUNCj4gPg0KPiA+IChWSUkpIFJlcG9zaXRvcnkNCj4gPiAgICAgICAgPT09PT09PT09PQ0K PiA+DQo+ID4gICAoKikgUUVNVSBjaGFuZ2VzIGZvciB2Q1BVIGhvdHBsdWcgY291bGQgYmUgY2xv bmVkIGZyb20gYmVsb3cgc2l0ZSwNCj4gPiAgICAgICBodHRwczovL2dpdGh1Yi5jb20vc2FsaWwt bWVodGEvcWVtdS5naXQgdmlydC1jcHVocC1hcm12OC9yZmMtdjINCj4gPiAgICgqKSBHdWVzdCBL ZXJuZWwgY2hhbmdlcyAoYnkgSmFtZXMgTW9yc2UsIEFSTSkgYXJlIGF2YWlsYWJsZSBoZXJlOg0K PiA+ICAgICAgIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0 L21vcnNlL2xpbnV4LmdpdA0KPiB2aXJ0dWFsX2NwdV9ob3RwbHVnL3JmYy92Mg0KPiA+DQo+ID4N Cj4gPiAoVklJSSkgS05PV04gSVNTVUVTDQo+ID4gICAgICAgICA9PT09PT09PT09PT0NCj4gPg0K PiA+IDEuIE1pZ3JhdGlvbiBoYXMgYmVlbiBsaWdodGx5IHRlc3RlZC4gQmVsb3cgYXJlIHNvbWUg b2YgdGhlIGtub3duIGlzc3VlczoNCj4gPiAgICAgLSBPY2Fzc2lvbmFsIENQVSBzdGFsbCAobm90 IGFsd2F5cyByZXBlYXRhYmxlKQ0KPiA+ICAgICAtIE5lZ2F0aXZlIHRlc3QgY2FzZSBsaWtlIGFz eW1tZXRyaWMgc291cmNlL2Rlc3RpbmF0aW9uIFZNIGNvbmZpZw0KPiBjYXVzZXMgZHVtcC4NCj4g PiAgICAgLSBNaWdyYXRpb24gd2l0aCBUQ0cgaXMgbm90IHdvcmtpbmcgcHJvcGVybHkuDQo+ID4g Mi4gVENHIHdpdGggU2luZ2xlIHRocmVhZGVkIG1vZGUgaXMgYnJva2VuLg0KPiA+IDMuIEhWRiBh bmQgcXRlc3Qgc3VwcG9ydCBpcyBicm9rZW4uDQo+ID4gNC4gQUNQSSBNQURUIFRhYmxlIGZsYWdz IFs3XSBNQURULkdJQ0MuRW5hYmxlZCBhbmQgTUFEVC5HSUNDLm9ubGluZS0NCj4gY2FwYWJsZSBh cmUNCj4gPiAgICAgbXV0dWFsbHkgZXhjbHVzaXZlIGkuZS4gYXMgcGVyIHRoZSBjaGFuZ2UgWzZd IGEgdkNQVSBjYW5ub3QgYmUgYm90aA0KPiA+ICAgICBHSUNDLkVuYWJsZWQgYW5kIEdJQ0Mub25s aW5lLWNhcGFibGUuIFRoaXMgbWVhbnMsDQo+ID4gICAgICAgIFsgTGluazogaHR0cHM6Ly9idWd6 aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzA2IF0NCj4gPiAgICAgYS4gSWYg d2UgaGF2ZSB0byBzdXBwb3J0IGhvdC11bnBsdWcgb2YgdGhlIGNvbGQtYm9vdGVkIHZDUFVzIHRo ZW4NCj4gdGhlc2UgTVVTVA0KPiA+ICAgICAgICBiZSBzcGVjaWZpZWQgYXMgR0lDQy5vbmxpbmUt Y2FwYWJsZSBpbiB0aGUgTUFEVCBUYWJsZSBkdXJpbmcgYm9vdA0KPiBieSB0aGUNCj4gPiAgICAg ICAgZmlybXdhcmUvUWVtdS4gQnV0IHRoaXMgcmVxdWlyZW1lbnQgY29uZmxpY3RzIHdpdGggdGhl IHJlcXVpcmVtZW50DQo+IHRvDQo+ID4gICAgICAgIHN1cHBvcnQgbmV3IFFlbXUgY2hhbmdlcyB3 aXRoIGxlZ2FjeSBPUyB3aGljaCBkb250IHVuZGVyc3RhbmQNCj4gPiAgICAgICAgTUFEVC5HSUND Lm9ubGluZS1jYXBhYmxlIEJpdC4gTGVnYWN5IE9TIGR1cmluZyBib290IHRpbWUgd2lsbA0KPiBp Z25vcmUgdGhpcw0KPiA+ICAgICAgICBiaXQgYW5kIGhlbmNlIHRoZXNlIHZDUFVzIHdpbGwgbm90 IGFwcGVhciBvbiBzdWNoIE9TLiBUaGlzIGlzDQo+IHVuZXhwZWN0ZWQNCj4gPiAgICAgICAgYmVo YXZpb3VyLg0KPiA+ICAgICBiLiBJbiBjYXNlIHdlIGRlY2lkZSB0byBzcGVjaWZ5IHZDUFVzIGFz IE1BRFQuR0lDQy5FbmFibGVkIGFuZCB0cnkgdG8NCj4gdW5wbHVnDQo+ID4gICAgICAgIHRoZXNl IGNvbGQtYm9vdGVkIHZDUFVzIGZyb20gT1MgKHdoaWNoIGluIGFjdHVhbCBzaG91bGQgYmUgYmxv Y2tlZA0KPiBieQ0KPiA+ICAgICAgICByZXR1cm5pbmcgZXJyb3IgYXQgUWVtdSkgdGhlbiBmZWF0 dXJlcyBsaWtlICdrZXhlYycgd2lsbCBicmVhay4NCj4gPiAgICAgYy4gQXMgSSB1bmRlcnN0YW5k LCByZW1vdmFsIG9mIHRoZSBjb2xkLWJvb3RlZCB2Q1BVcyBpcyBhIHJlcXVpcmVkDQo+IGZlYXR1 cmUNCj4gPiAgICAgICAgYW5kIHg4NiB3b3JsZCBhbGxvd3MgaXQuDQo+ID4gICAgIGQuIEhlbmNl LCBlaXRoZXIgd2UgbmVlZCBhIHNwZWNpZmljYXRpb24gY2hhbmdlIHRvIG1ha2UgdGhlDQo+IE1B RFQuR0lDQy5FbmFibGVkDQo+ID4gICAgICAgIGFuZCBNQURULkdJQ0Mub25saW5lLWNhcGFibGUg Qml0cyBOT1QgbXV0dWFsbHkgZXhjbHVzaXZlIG9yIE5PVA0KPiBzdXBwb3J0DQo+ID4gICAgICAg IHJlbW92YWwgb2YgY29sZC1ib290ZWQgdkNQVXMuIEluIHRoZSBsYXRlciBjYXNlLCBhIGNoZWNr IGNhbiBiZQ0KPiBpbnRyb2R1Y2VkDQo+ID4gICAgICAgIHRvIGJhciB0aGUgdXNlcnMgZnJvbSB1 bnBsdWdnaW5nIHZDUFVzLCB3aGljaCB3ZXJlIGNvbGQtYm9vdGVkLA0KPiB1c2luZyBRTVANCj4g PiAgICAgICAgY29tbWFuZHMuIChOZWVkcyBkaXNjdXNzaW9uISkNCj4gPiAgICAgICAgUGxlYXNl IGNoZWNrIGJlbG93IHBhdGNoIHBhcnQgb2YgdGhpcyBwYXRjaC1zZXQ6DQo+ID4gICAgICAgICAg ICBbaHcvYXJtL3ZpcnQ6IEV4cG9zZSBjb2xkLWJvb3RlZCBDUFVzIGFzIE1BRFQgR0lDQyBFbmFi bGVkXQ0KPiA+IDUuIENvZGUgcmVsYXRlZCB0byB0aGUgbm90aWZpY2F0aW9uIHRvIEdJQ1YzIGFi b3V0IGhvdCh1bilwbHVnIG9mIGEgdkNQVQ0KPiBldmVudA0KPiA+ICAgICBtaWdodCBuZWVkIGZ1 cnRoZXIgZGlzY3Vzc2lvbi4NCj4gPg0KPiA+DQo+ID4gKElYKSBUSElOR1MgVE8gRE8NCj4gPiAg ICAgICA9PT09PT09PT09PT0NCj4gPg0KPiA+IDEuIEZpeCB0aGUgTWlncmF0aW9uIElzc3Vlcw0K PiA+IDIuIEZpeCBpc3N1ZXMgcmVsYXRlZCB0byBUQ0cvRW11bGF0aW9uIHN1cHBvcnQuDQo+ID4g My4gQ29tcHJlaGVuc2l2ZSBUZXN0aW5nLiBDdXJyZW50IHRlc3RpbmcgaXMgdmVyeSBiYXNpYy4N Cj4gPiAgICAgYS4gTmVnYXRpdmUgVGVzdCBjYXNlcw0KPiA+IDQuIFFlbXUgRG9jdW1lbnRhdGlv bigucnN0KSBuZWVkIHRvIGJlIHVwZGF0ZWQuDQo+ID4gNS4gRml4IHF0ZXN0LCBIVkYgU3VwcG9y dA0KPiA+IDYuIEZpeCB0aGUgZGVzaWduIGlzc3VlIHJlbGF0ZWQgdG8gQUNQSSBNQURULkdJQ0Mg ZmxhZ3MgZGlzY3Vzc2VkIGluDQo+IGtub3duDQo+ID4gICAgIGlzc3Vlcy4gVGhpcyBtaWdodCBy ZXF1aXJlIFVFRkkgQUNQSSBzcGVjaWZpY2F0aW9uIGNoYW5nZSENCj4gPiA3LiBBZGQgQUNQSSBf T1NDICdRdWVyeScgc3VwcG9ydC4gT25seSBwYXJ0IG9mIF9PU0Mgc3VwcG9ydCBleGlzdHMgbm93 Lg0KPiA+DQo+ID4gICBBYm92ZSBpcyAqbm90KiBhIGNvbXBsZXRlIGxpc3QuIFdpbGwgdXBkYXRl IGxhdGVyIQ0KPiA+DQo+ID4gQmVzdCByZWdhcmRzDQo+ID4gU2FsaWwuDQo+ID4NCj4gPiAoWCkg RElTQ0xBSU1FUg0KPiA+ICAgICAgPT09PT09PT09PQ0KPiA+DQo+ID4gVGhpcyB3b3JrIGlzIGFu IGF0dGVtcHQgdG8gcHJlc2VudCBhIHByb29mLW9mLWNvbmNlcHQgb2YgdGhlIEFSTTY0IHZDUFUN Cj4gaG90cGx1Zw0KPiA+IGltcGxlbWVudGF0aW9uIHRvIHRoZSBjb21tdW5pdHkuIFRoaXMgaXMg Km5vdCogYSBwcm9kdWN0aW9uIGxldmVsIGNvZGUNCj4gYW5kIG1pZ2h0DQo+ID4gaGF2ZSBidWdz LiBPbmx5IGEgYmFzaWMgdGVzdGluZyBoYXMgYmVlbiBkb25lIG9uIEhpU2lsaWNvbiBLdW5wZW5n OTIwIFNvQw0KPiBmb3INCj4gPiBzZXJ2ZXJzLiBPbmNlIHRoZSBkZXNpZ24gYW5kIGNvcmUgaWRl YSBiZWhpbmQgdGhlIGltcGxlbWVudGF0aW9uIGhhcyBiZWVuDQo+ID4gdmVyaWZpZWQgbW9yZSBl ZmZvcnRzIGNhbiBiZSBwdXQgdG8gaGFyZGVuIHRoZSBjb2RlLg0KPiA+DQo+ID4gVGhpcyB3b3Jr IGlzICptb3N0bHkqIGluIHRoZSBsaW5lcyBvZiB0aGUgZGlzY3Vzc2lvbnMgd2hpY2ggaGF2ZSBo YXBwZW5lZA0KPiBpbiB0aGUNCj4gPiBwcmV2aW91cyB5ZWFyc1tzZWUgcmVmcyBiZWxvd10gYWNy b3NzIGRpZmZlcmVudCBjaGFubmVscyBsaWtlIG1haWxpbmctDQo+IGxpc3QsDQo+ID4gTGluYXJv IE9wZW4gRGlzY3Vzc2lvbnMgcGxhdGZvcm0sIHZhcmlvdXMgY29uZmVyZW5jZXMgbGlrZSBLVk1G b3VybSBldGMuDQo+IFRoaXMNCj4gPiBSRkMgaXMgYmVpbmcgdXNlZCBhcyBhIHdheSB0byB2ZXJp ZnkgdGhlIGlkZWEgbWVudGlvbmVkIGluIHRoaXMgY292ZXItDQo+IGxldHRlciBhbmQNCj4gPiB0 byBnZXQgY29tbXVuaXR5IHZpZXdzLiBPbmNlIHRoaXMgaGFzIGJlZW4gYWdyZWVkLCBhIGZvcm1h bCBwYXRjaCBzaGFsbA0KPiBiZQ0KPiA+IHBvc3RlZCB0byB0aGUgbWFpbGluZy1saXN0IGZvciBy ZXZpZXcuDQo+ID4NCj4gPiBbVGhlIGNvbmNlcHQgYmVpbmcgcHJlc2VudGVkIGhhcyBiZWVuIGZv dW5kIHRvIHdvcmshXQ0KPiA+DQo+ID4gKFhJKSBPUkdBTklaQVRJT04gT0YgUEFUQ0hFUw0KPiA+ ICAgICAgID09PT09PT09PT09PT09PT09PT09PT09DQo+ID4NCj4gPiAgIEEuIEFsbCBwYXRjaGVz IFtBcmNoaXRlY3R1cmUgJ2Fnbm9zdGljJyArICdzcGVjaWZpYyddOg0KPiA+DQo+ID4gICAgIFtQ YXRjaCAxLTksIDIzLCAzNl0gbG9naWMgcmVxdWlyZWQgZHVyaW5nIG1hY2hpbmUgaW5pdA0KPiA+ ICAgICAgKCopIFNvbWUgdmFsaWRhdGlvbiBjaGVja3MNCj4gPiAgICAgICgqKSBJbnRyb2R1Y2Vz IGNvcmUtaWQgcHJvcGVydHkgYW5kIHNvbWUgdXRpbCBmdW5jdGlvbnMgcmVxdWlyZWQNCj4gbGF0 ZXIuDQo+ID4gICAgICAoKikgUmVmYWN0b3JzIFBhcmtpbmcgbG9naWMgb2YgdkNQVXMNCj4gPiAg ICAgICgqKSBMb2dpYyB0byBwcmUtY3JlYXRlIHZDUFVzDQo+ID4gICAgICAoKikgR0lDIGluaXRp YWxpemF0aW9uIHByZS1zaXplZCB3aXRoIHBvc3NpYmxlIHZDUFVzLg0KPiA+ICAgICAgKCopIFNv bWUgcmVmYWN0b3JpbmcgdG8gaGF2ZSBjb21tb24gaG90IGFuZCBjb2xkIHBsdWcgbG9naWMNCj4g dG9nZXRoZXIuDQo+ID4gICAgICAoKikgUmVsZWFzZSBvZiBkaXNhYmxlIFFPTSBDUFUgb2JqZWN0 cyBpbiBwb3N0X2NwdV9pbml0KCkNCj4gPiAgICAgICgqKSBTdXBwb3J0IG9mIEFDUEkgX09TQyBt ZXRob2QgdG8gbmVnb3RpYXRlIHBsYXRmb3JtIGhvdHBsdWcNCj4gY2FwYWJpbGl0aWVzDQo+ID4g ICAgIFtQYXRjaCAxMC0yMl0gbG9naWMgcmVsYXRlZCB0byBBQ1BJIGF0IG1hY2hpbmUgaW5pdCB0 aW1lDQo+ID4gICAgICAoKikgQ2hhbmdlcyByZXF1aXJlZCB0byBFbmFibGUgQUNQSSBmb3IgY3B1 IGhvdHBsdWcNCj4gPiAgICAgICgqKSBJbml0aWFsaXphdGlvbiBBQ1BJIEdFRCBmcmFtZXdvcmsg dG8gY2F0ZXIgQ1BVIEhvdHBsdWcgRXZlbnRzDQo+ID4gICAgICAoKikgQnVpbGQgQUNQSSBBTUwg cmVsYXRlZCB0byBDUFUgY29udHJvbCBkZXYNCj4gPiAgICAgICgqKSBBQ1BJIE1BRFQvTUFUIGNo YW5nZXMNCj4gPiAgICAgW1BhdGNoIDI0LTM1XSBMb2dpYyByZXF1aXJlZCBkdXJpbmcgdkNQVSBo b3QtKHVuKXBsdWcNCj4gPiAgICAgICgqKSBCYXNpYyBmcmFtZXdvcmsgY2hhbmdlcyB0byBzdXBw cG9ydCB2Q1BVIGhvdC0odW4pcGx1Zw0KPiA+ICAgICAgKCopIEFDUEkgR0VEIGNoYW5nZXMgZm9y IGhvdC0odW4pcGx1ZyBob29rcy4NCj4gPiAgICAgICgqKSB3aXJlLXVud2lyZSB0aGUgSVJRcw0K PiA+ICAgICAgKCopIEdJQyBub3RpZmljYXRpb24gbG9naWMNCj4gPiAgICAgICgqKSBBUk1DUFUg dW5yZWFsaXplIGxvZ2ljDQo+ID4gICAgICAoKikgSGFuZGxpbmcgb2YgU01DQyBIeXBlcmNhbGwg RXhpdHMgYnkgS1ZNIHRvIFFlbXUNCj4gPg0KPiA+ICAgQi4gQXJjaGl0ZWN0dXJlICphZ25vc3Rp YyogcGF0Y2hlcyBwYXJ0IG9mIHBhdGNoLXNldDoNCj4gPg0KPiA+ICAgICBbUGF0Y2ggNSw5LDEx LDEzLDE2LDIwLDI0LDMxLDMzXSBDb21tb24gbG9naWMgdG8gc3VwcG9ydCBob3RwbHVnDQo+ID4g ICAgICAoKikgUmVmYWN0b3JzIFBhcmtpbmcgbG9naWMgb2YgdkNQVXMNCj4gPiAgICAgICgqKSBJ bnRyb2R1Y2VzIEFDUEkgR0VEIFN1cHBvcnQgZm9yIHZDUFUgSG90cGx1ZyBFdmVudHMNCj4gPiAg ICAgICgqKSBJbnRyb2R1Y2VzIEFDUEkgQU1MIGNoYW5nZSBmb3IgQ1BVIENvbnRyb2wgRGV2aWNl DQo+ID4NCj4gPiAoWElJKSBSRUZFUkVOQ0VTDQo+ID4gICAgICAgID09PT09PT09PT0NCj4gPg0K PiA+IFsxXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9xZW11LWRldmVsLzIwMjAwNjEzMjEzNjI5 LjIxOTg0LTEtDQo+IHNhbGlsLm1laHRhQGh1YXdlaS5jb20vDQo+ID4gWzJdIGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvMjAyMDA2MjUxMzM3NTcuMjIzMzItMS0NCj4g c2FsaWwubWVodGFAaHVhd2VpLmNvbS8NCj4gPiBbM10gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv bGttbC8yMDIzMDIwMzEzNTA0My40MDkxOTItMS0NCj4gamFtZXMubW9yc2VAYXJtLmNvbS8NCj4g PiBbNF0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvYWxsLzIwMjMwOTEzMTYzODIzLjc4ODAtMS0N Cj4gamFtZXMubW9yc2VAYXJtLmNvbS8NCj4gPiBbNV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv YWxsLzIwMjMwNDA0MTU0MDUwLjIyNzAwNzctMS0NCj4gb2xpdmVyLnVwdG9uQGxpbnV4LmRldi8N Cj4gPiBbNl0gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0z NzA2DQo+ID4gWzddDQo+IGh0dHBzOi8vdWVmaS5vcmcvc3BlY3MvQUNQSS82LjUvMDVfQUNQSV9T b2Z0d2FyZV9Qcm9ncmFtbWluZ19Nb2RlbC5odG1sI2dpYw0KPiAtY3B1LWludGVyZmFjZS1naWNj LXN0cnVjdHVyZQ0KPiA+IFs4XSBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19i dWcuY2dpP2lkPTQ0ODEjYzUNCj4gPiBbOV0gaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2t1YmVy bmV0ZXMtDQo+IGVuZ2luZS9kb2NzL2NvbmNlcHRzL3ZlcnRpY2FscG9kYXV0b3NjYWxlcg0KPiA+ IFsxMF0gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3Zl cnRpY2FsLXBvZC0NCj4gYXV0b3NjYWxlci5odG1sDQo+ID4gWzExXSBodHRwczovL2xrbWwub3Jn L2xrbWwvMjAxOS83LzEwLzIzNQ0KPiA+IFsxMl0gaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJpYS5l ZHUvcGlwZXJtYWlsL2t2bWFybS8yMDE4LUp1bHkvMDMyMzE2Lmh0bWwNCj4gPiBbMTNdIGh0dHBz Oi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvcWVtdS1kZXZlbC8yMDIwLTAxL21zZzA2NTE3 Lmh0bWwNCj4gPiBbMTRdIGh0dHBzOi8vb3AtbGlzdHMubGluYXJvLm9yZy9hcmNoaXZlcy9saXN0 L2xpbmFyby1vcGVuLQ0KPiBkaXNjdXNzaW9uc0BvcC1saXN0cy5saW5hcm8ub3JnL3RocmVhZC83 Q0dMNkpUQUNQVVpFWVFDMzRDWjJaQldKR1NSNzRXRS8NCj4gPiBbMTVdIGh0dHA6Ly9saXN0cy5u b25nbnUub3JnL2FyY2hpdmUvaHRtbC9xZW11LWRldmVsLzIwMTgtDQo+IDA3L21zZzAxMTY4Lmh0 bWwNCj4gPiBbMTZdIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvcWVtdS1kZXZl bC8yMDIwLTA2L21zZzAwMTMxLmh0bWwNCj4gPiBbMTddIGh0dHBzOi8vb3AtbGlzdHMubGluYXJv Lm9yZy9hcmNoaXZlcy9saXN0L2xpbmFyby1vcGVuLQ0KPiBkaXNjdXNzaW9uc0BvcC1saXN0cy5s aW5hcm8ub3JnL21lc3NhZ2UvWDc0SlM2UDJONEFVV0hIQVRKSlZWRkRJMkVNRFpKNzQvDQo+ID4g WzE4XSBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjEwNjA4MTU0ODA1LjIxNjg2OS0x LWplYW4tDQo+IHBoaWxpcHBlQGxpbmFyby5vcmcvDQo+ID4gWzE5XSBodHRwczovL2xvcmUua2Vy bmVsLm9yZy9hbGwvMjAyMzA5MTMxNjM4MjMuNzg4MC0xLQ0KPiBqYW1lcy5tb3JzZUBhcm0uY29t Lw0KPiA+IFsyMF0NCj4gaHR0cHM6Ly91ZWZpLm9yZy9zcGVjcy9BQ1BJLzYuNS8wNV9BQ1BJX1Nv ZnR3YXJlX1Byb2dyYW1taW5nX01vZGVsLmh0bWwjZ2ljDQo+IGMtY3B1LWludGVyZmFjZS1mbGFn cw0KPiA+DQo+ID4gKFhJSUkpIEFDS05PV0xFREdFTUVOVFMNCj4gPiAgICAgICAgID09PT09PT09 PT09PT09PT0NCj4gPg0KPiA+IEkgd291bGQgbGlrZSB0byB0YWtlIHRoaXMgb3Bwb3J0dW5pdHkg dG8gdGhhbmsgYmVsb3cgcGVvcGxlIGZvciB2YXJpb3VzDQo+ID4gZGlzY3Vzc2lvbnMgd2l0aCBt ZSBvdmVyIGRpZmZlcmVudCBjaGFubmVscyBkdXJpbmcgdGhlIGRldmVsb3BtZW50Og0KPiA+DQo+ ID4gTWFyYyBaeW5naWVyIChHb29nbGUpICAgICAgICAgICAgICAgQ2F0YWxpbiBNYXJpbmFzIChB Uk0pLA0KPiA+IEphbWVzIE1vcnNlKEFSTSksICAgICAgICAgICAgICAgICAgIFdpbGwgRGVhY29u IChHb29nbGUpLA0KPiA+IEplYW4tUGhpbGxpcGUgQnJ1Y2tlciAoTGluYXJvKSwgICAgIFN1ZGVl cCBIb2xsYSAoQVJNKSwNCj4gPiBMb3JlbnpvIFBpZXJhbGlzaSAoTGluYXJvKSwgICAgICAgICBH YXZpbiBTaGFuIChSZWRoYXQpLA0KPiA+IEpvbmF0aGFuIENhbWVyb24gKEh1YXdlaSksICAgICAg ICAgIERhcnJlbiBIYXJ0IChBbXBlcmUpLA0KPiA+IElnb3IgTWFtZWRvdiAoUmVkaGF0KSwgICAg ICAgICAgICAgIElsa2thIEtvc2tpbmVuIChBbXBlcmUpLA0KPiA+IEFuZHJldyBKb25lcyAoUmVk aGF0KSwgICAgICAgICAgICAgIEthcmwgSGV1YmF1bSAoT3JhY2xlKSwNCj4gPiBLZXFpYW4gWmh1 IChIdWF3ZWkpLCAgICAgICAgICAgICAgICBNaWd1ZWwgTHVpcyAoT3JhY2xlKSwNCj4gPiBYaW9u Z2ZlbmcgV2FuZyAoSHVhd2VpKSwgICAgICAgICAgICBWaXNobnUgUGFqanVyaSAoQW1wZXJlKSwN Cj4gPiBTaGFtZWVyYWxpIEtvbG90aHVtIChIdWF3ZWkpICAgICAgICBSdXNzZWxsIEtpbmcgKE9y YWNsZSkNCj4gPiBYdXdlaS9Kb3kgKEh1YXdlaSksICAgICAgICAgICAgICAgICBQZXRlciBNYXlk ZWwgKExpbmFybykNCj4gPiBaZW5ndGFvL1ByaW1lIChIdWF3ZWkpLCAgICAgICAgICAgICBBbmQg YWxsIHRob3NlIHdob20gSSBoYXZlIG1pc3NlZCENCj4gPg0KPiA+IE1hbnkgdGhhbmtzIHRvIGJl bG93IHBlb3BsZSBmb3IgdGhlaXIgY3VycmVudCBvciBwYXN0IGNvbnRyaWJ1dGlvbnM6DQo+ID4N Cj4gPiAxLiBKYW1lcyBNb3JzZSAoQVJNKQ0KPiA+ICAgICAoQ3VycmVudCBLZXJuZWwgcGFydCBv ZiB2Q1BVIEhvdHBsdWcgU3VwcG9ydCBvbiBBQVJDSDY0KQ0KPiA+IDIuIEplYW4tUGhpbGlwcGUg QnJ1Y2tlciAoTGluYXJvKQ0KPiA+ICAgICAoUHJvdG95cGVkIG9uZSBvZiB0aGUgZWFybGllciBQ U0NJIGJhc2VkIFBPQyBbMTddWzE4XSBiYXNlZCBvbiBSRkMNCj4gVjEpDQo+ID4gMy4gS2VxaWFu IFpodSAoSHVhd2VpKQ0KPiA+ICAgICAoQ28tZGV2ZWxvcGVkIFFlbXUgcHJvdG90eXBlKQ0KPiA+ IDQuIFhpb25nZmVuZyBXYW5nIChIdWF3ZWkpDQo+ID4gICAgIChDby1kZXZlbG9wZWQgZWFybGll ciBrZXJuZWwgcHJvdG90eXBlKQ0KPiA+IDUuIFZpc2hudSBQYWpqdXJpIChBbXBlcmUpDQo+ID4g ICAgIChWZXJpZmljYXRpb24gb24gQW1wZXJlIEFSTTY0IFBsYXRmb3JtcyArIGZpeGVzKQ0KPiA+ IDYuIE1pZ3VlbCBMdWlzIChPcmFjbGUpDQo+ID4gICAgIChWZXJpZmljYXRpb24gb24gT3JhY2xl IEFSTTY0IFBsYXRmb3JtcyArIGZpeGVzKQ0KPiA+DQo+ID4NCj4gPiBBdXRob3IgU2FsaWwgTWVo dGEgKDEpOg0KPiA+ICAgIHRhcmdldC9hcm0va3ZtLHRjZzogUmVnaXN0ZXIvSGFuZGxlIFNNQ0ND IGh5cGVyY2FsbCBleGl0cyB0byBWTU0vUWVtdQ0KPiA+DQo+ID4gSmVhbi1QaGlsaXBwZSBCcnVj a2VyICgyKToNCj4gPiAgICBody9hY3BpOiBNYWtlIF9NQVQgbWV0aG9kIG9wdGlvbmFsDQo+ID4g ICAgdGFyZ2V0L2FybS9rdm06IFdyaXRlIENQVSBzdGF0ZSBiYWNrIHRvIEtWTSBvbiByZXNldA0K PiA+DQo+ID4gTWlndWVsIEx1aXMgKDEpOg0KPiA+ICAgIHRjZy9tdHRjZzogZW5hYmxlIHRocmVh ZHMgdG8gdW5yZWdpc3RlciBpbiB0Y2dfY3R4c1tdDQo+ID4NCj4gPiBTYWxpbCBNZWh0YSAoMzMp Og0KPiA+ICAgIGFybS92aXJ0LHRhcmdldC9hcm06IEFkZCBuZXcgQVJNQ1BVIHtzb2NrZXQsY2x1 c3Rlcixjb3JlLHRocmVhZH0taWQNCj4gcHJvcGVydHkNCj4gPiAgICBjcHVzLWNvbW1vbjogQWRk IGNvbW1vbiBDUFUgdXRpbGl0eSBmb3IgcG9zc2libGUgdkNQVXMNCj4gPiAgICBody9hcm0vdmly dDogTW92ZSBzZXR0aW5nIG9mIGNvbW1vbiBDUFUgcHJvcGVydGllcyBpbiBhIGZ1bmN0aW9uDQo+ ID4gICAgYXJtL3ZpcnQsdGFyZ2V0L2FybTogTWFjaGluZSBpbml0IHRpbWUgY2hhbmdlIGNvbW1v biB0byB2Q1BVDQo+IHtjb2xkfGhvdH0tcGx1Zw0KPiA+ICAgIGFjY2VsL2t2bTogRXh0cmFjdCBj b21tb24gS1ZNIHZDUFUge2NyZWF0aW9uLHBhcmtpbmd9IGNvZGUNCj4gPiAgICBhcm0vdmlydCxr dm06IFByZS1jcmVhdGUgZGlzYWJsZWQgcG9zc2libGUgdkNQVXMgQG1hY2hpbmUgaW5pdA0KPiA+ ICAgIGFybS92aXJ0LGdpY3YzOiBDaGFuZ2VzIHRvIHByZS1zaXplIEdJQyB3aXRoIHBvc3NpYmxl IHZjcHVzIEBtYWNoaW5lDQo+IGluaXQNCj4gPiAgICBhcm0vdmlydDogSW5pdCBQTVUgYXQgaG9z dCBmb3IgYWxsIHBvc3NpYmxlIHZjcHVzDQo+ID4gICAgaHcvYWNwaTogTW92ZSBDUFUgY3RybC1k ZXYgTU1JTyByZWdpb24gbGVuIG1hY3JvIHRvIGNvbW1vbiBoZWFkZXIgZmlsZQ0KPiA+ICAgIGFy bS9hY3BpOiBFbmFibGUgQUNQSSBzdXBwb3J0IGZvciB2Y3B1IGhvdHBsdWcNCj4gPiAgICBody9h Y3BpOiBBZGQgQUNQSSBDUFUgaG90cGx1ZyBpbml0IHN0dWINCj4gPiAgICBody9hY3BpOiBVc2Ug cWVtdV9wcmVzZW50X2NwdSgpIEFQSSBpbiBBQ1BJIENQVSBob3RwbHVnIGluaXQNCj4gPiAgICBo dy9hY3BpOiBJbml0IEdFRCBmcmFtZXdvcmsgd2l0aCBjcHUgaG90cGx1ZyBldmVudHMNCj4gPiAg ICBhcm0vdmlydDogQWRkIGNwdSBob3RwbHVnIGV2ZW50cyB0byBHRUQgZHVyaW5nIGNyZWF0aW9u DQo+ID4gICAgYXJtL3ZpcnQ6IENyZWF0ZSBHRUQgZGV2IGJlZm9yZSAqZGlzYWJsZWQqIENQVSBP YmpzIGFyZSBkZXN0cm95ZWQNCj4gPiAgICBody9hY3BpOiBVcGRhdGUgQ1BVcyBBTUwgd2l0aCBj cHUtKGN0cmwpZGV2IGNoYW5nZQ0KPiA+ICAgIGFybS92aXJ0L2FjcGk6IEJ1aWxkIENQVXMgQU1M IHdpdGggQ1BVIEhvdHBsdWcgc3VwcG9ydA0KPiA+ICAgIGFybS92aXJ0OiBNYWtlIEFSTSB2Q1BV ICpwcmVzZW50KiBzdGF0dXMgQUNQSSAqcGVyc2lzdGVudCoNCj4gPiAgICBody9hY3BpOiBBQ1BJ L0FNTCBDaGFuZ2VzIHRvIHJlZmxlY3QgdGhlIGNvcnJlY3QgX1NUQS57UFJFUyxFTkF9IEJpdHMN Cj4gdG8gR3Vlc3QNCj4gPiAgICBody9hY3BpOiBVcGRhdGUgR0VEIF9FVlQgbWV0aG9kIEFNTCB3 aXRoIGNwdSBzY2FuDQo+ID4gICAgaHcvYXJtOiBNQURUIFRibCBjaGFuZ2UgdG8gc2l6ZSB0aGUg Z3Vlc3Qgd2l0aCBwb3NzaWJsZSB2Q1BVcw0KPiA+ICAgIGFybS92aXJ0OiBSZWxlYXNlIG9iamVj dHMgZm9yICpkaXNhYmxlZCogcG9zc2libGUgdkNQVXMgYWZ0ZXIgaW5pdA0KPiA+ICAgIGh3L2Fj cGk6IFVwZGF0ZSBBQ1BJIEdFRCBmcmFtZXdvcmsgdG8gc3VwcG9ydCB2Q1BVIEhvdHBsdWcNCj4g PiAgICBhcm0vdmlydDogQWRkL3VwZGF0ZSBiYXNpYyBob3QtKHVuKXBsdWcgZnJhbWV3b3JrDQo+ ID4gICAgYXJtL3ZpcnQ6IENoYW5nZXMgdG8gKHVuKXdpcmUgR0lDQzwtPnZDUFUgSVJRcyBkdXJp bmcgaG90LSh1bilwbHVnDQo+ID4gICAgaHcvYXJtLGdpY3YzOiBDaGFuZ2VzIHRvIHVwZGF0ZSBH SUMgd2l0aCB2Q1BVIGhvdC1wbHVnIG5vdGlmaWNhdGlvbg0KPiA+ICAgIGh3L2ludGMvYXJtLWdp Y3YzKjogQ2hhbmdlcyByZXF1aXJlZCB0byAocmUpaW5pdCB0aGUgdkNQVSByZWdpc3Rlcg0KPiBp bmZvDQo+ID4gICAgYXJtL3ZpcnQ6IFVwZGF0ZSB0aGUgZ3Vlc3QodmlhIEdFRCkgYWJvdXQgQ1BV IGhvdC0odW4pcGx1ZyBldmVudHMNCj4gPiAgICBody9hcm06IENoYW5nZXMgcmVxdWlyZWQgZm9y IHJlc2V0IGFuZCB0byBzdXBwb3J0IG5leHQgYm9vdA0KPiA+ICAgIHBoeXNtZW0sZ2Ric3R1Yjog Q29tbW9uIGhlbHBpbmcgZnVuY3MvY2hhbmdlcyB0byAqdW5yZWFsaXplKiB2Q1BVDQo+ID4gICAg dGFyZ2V0L2FybTogQWRkIHN1cHBvcnQgb2YgKnVucmVhbGl6ZSogQVJNQ1BVIGR1cmluZyB2Q1BV IEhvdC11bnBsdWcNCj4gPiAgICBody9hcm06IFN1cHBvcnQgaG90cGx1ZyBjYXBhYmlsaXR5IGNo ZWNrIHVzaW5nIF9PU0MgbWV0aG9kDQo+ID4gICAgaHcvYXJtL3ZpcnQ6IEV4cG9zZSBjb2xkLWJv b3RlZCBDUFVzIGFzIE1BRFQgR0lDQyBFbmFibGVkDQo+ID4NCj4gPiAgIGFjY2VsL2t2bS9rdm0t YWxsLmMgICAgICAgICAgICAgICAgICAgIHwgIDYxICstDQo+ID4gICBhY2NlbC90Y2cvdGNnLWFj Y2VsLW9wcy1tdHRjZy5jICAgICAgICB8ICAgMSArDQo+ID4gICBjcHVzLWNvbW1vbi5jICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAzNyArKw0KPiA+ICAgZ2Ric3R1Yi9nZGJzdHViLmMgICAg ICAgICAgICAgICAgICAgICAgfCAgMTMgKw0KPiA+ICAgaHcvYWNwaS9hY3BpLWNwdS1ob3RwbHVn LXN0dWIuYyAgICAgICAgfCAgIDYgKw0KPiA+ICAgaHcvYWNwaS9jcHUuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgOTEgKystDQo+ID4gICBody9hY3BpL2dlbmVyaWNfZXZlbnRfZGV2aWNl LmMgICAgICAgICB8ICAzMyArDQo+ID4gICBody9hcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMSArDQo+ID4gICBody9hcm0vYm9vdC5jICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQ0KPiA+ICAgaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5jICAgICAgICAgICAg ICAgfCAxMTAgKysrLQ0KPiA+ICAgaHcvYXJtL3ZpcnQuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCA4NjMgKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPiA+ICAgaHcvY29yZS9ncGlvLmMg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4gPiAgIGh3L2kzODYvYWNwaS1idWls ZC5jICAgICAgICAgICAgICAgICAgIHwgICAyICstDQo+ID4gICBody9pbnRjL2FybV9naWN2My5j ICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ID4gICBody9pbnRjL2FybV9naWN2M19jb21t b24uYyAgICAgICAgICAgICB8ICA2NiArLQ0KPiA+ICAgaHcvaW50Yy9hcm1fZ2ljdjNfY3B1aWYu YyAgICAgICAgICAgICAgfCAyNjUgKysrKy0tLS0NCj4gPiAgIGh3L2ludGMvYXJtX2dpY3YzX2Nw dWlmX2NvbW1vbi5jICAgICAgIHwgICA1ICsNCj4gPiAgIGh3L2ludGMvYXJtX2dpY3YzX2t2bS5j ICAgICAgICAgICAgICAgIHwgIDM5ICstDQo+ID4gICBody9pbnRjL2dpY3YzX2ludGVybmFsLmgg ICAgICAgICAgICAgICB8ICAgMiArDQo+ID4gICBpbmNsdWRlL2V4ZWMvY3B1LWNvbW1vbi5oICAg ICAgICAgICAgICB8ICAgOCArDQo+ID4gICBpbmNsdWRlL2V4ZWMvZ2Ric3R1Yi5oICAgICAgICAg ICAgICAgICB8ICAgMSArDQo+ID4gICBpbmNsdWRlL2h3L2FjcGkvY3B1LmggICAgICAgICAgICAg ICAgICB8ICAgNyArLQ0KPiA+ICAgaW5jbHVkZS9ody9hY3BpL2NwdV9ob3RwbHVnLmggICAgICAg ICAgfCAgIDQgKw0KPiA+ICAgaW5jbHVkZS9ody9hY3BpL2dlbmVyaWNfZXZlbnRfZGV2aWNlLmgg fCAgIDUgKw0KPiA+ICAgaW5jbHVkZS9ody9hcm0vYm9vdC5oICAgICAgICAgICAgICAgICAgfCAg IDIgKw0KPiA+ICAgaW5jbHVkZS9ody9hcm0vdmlydC5oICAgICAgICAgICAgICAgICAgfCAgMTAg Ky0NCj4gPiAgIGluY2x1ZGUvaHcvY29yZS9jcHUuaCAgICAgICAgICAgICAgICAgIHwgIDc3ICsr Kw0KPiA+ICAgaW5jbHVkZS9ody9pbnRjL2FybV9naWN2M19jb21tb24uaCAgICAgfCAgMjMgKw0K PiA+ICAgaW5jbHVkZS9ody9xZGV2LWNvcmUuaCAgICAgICAgICAgICAgICAgfCAgIDIgKw0KPiA+ ICAgaW5jbHVkZS9zeXNlbXUva3ZtLmggICAgICAgICAgICAgICAgICAgfCAgIDIgKw0KPiA+ICAg aW5jbHVkZS90Y2cvdGNnLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICAgc29m dG1tdS9waHlzbWVtLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMjUgKw0KPiA+ICAgdGFyZ2V0 L2FybS9hcm0tcG93ZXJjdGwuYyAgICAgICAgICAgICAgfCAgNTEgKy0NCj4gPiAgIHRhcmdldC9h cm0vY3B1LXFvbS5oICAgICAgICAgICAgICAgICAgIHwgICAzICsNCj4gPiAgIHRhcmdldC9hcm0v Y3B1LmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTEyICsrKysNCj4gPiAgIHRhcmdldC9hcm0v Y3B1LmggICAgICAgICAgICAgICAgICAgICAgIHwgIDE3ICsNCj4gPiAgIHRhcmdldC9hcm0vY3B1 NjQuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsNCj4gPiAgIHRhcmdldC9hcm0vZ2Ric3R1 Yi5jICAgICAgICAgICAgICAgICAgIHwgICA2ICsNCj4gPiAgIHRhcmdldC9hcm0vaGVscGVyLmMg ICAgICAgICAgICAgICAgICAgIHwgIDI3ICstDQo+ID4gICB0YXJnZXQvYXJtL2ludGVybmFscy5o ICAgICAgICAgICAgICAgICB8ICAxMiArLQ0KPiA+ICAgdGFyZ2V0L2FybS9rdm0uYyAgICAgICAg ICAgICAgICAgICAgICAgfCAgOTMgKystDQo+ID4gICB0YXJnZXQvYXJtL2t2bTY0LmMgICAgICAg ICAgICAgICAgICAgICB8ICA1OSArLQ0KPiA+ICAgdGFyZ2V0L2FybS9rdm1fYXJtLmggICAgICAg ICAgICAgICAgICAgfCAgMjQgKw0KPiA+ICAgdGFyZ2V0L2FybS9tZXNvbi5idWlsZCAgICAgICAg ICAgICAgICAgfCAgIDEgKw0KPiA+ICAgdGFyZ2V0L2FybS97dGNnID0+IH0vcHNjaS5jICAgICAg ICAgICAgfCAgIDggKw0KPiA+ICAgdGFyZ2V0L2FybS90Y2cvbWVzb24uYnVpbGQgICAgICAgICAg ICAgfCAgIDQgLQ0KPiA+ICAgdGNnL3RjZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMjMgKw0KPiA+ICAgNDcgZmlsZXMgY2hhbmdlZCwgMTg3MyBpbnNlcnRpb25zKCspLCAzNDkg ZGVsZXRpb25zKC0pDQo+ID4gICByZW5hbWUgdGFyZ2V0L2FybS97dGNnID0+IH0vcHNjaS5jICg5 NyUpDQo+IFRlc3RlZCBvbiBBbXBlcmUncyBwbGF0Zm9ybSBmb3IgdkNQVSBob3RwbHVnL3VucGx1 ZyB3aXRoIHJlYm9vdCwNCj4gc3VzcGVuZC9yZXN1bWUgYW5kIHNhdmUvcmVzdG9yZS4NCj4gQWxz byB0ZXN0ZWQgZm9yIHZDUFUgaG90cGx1Zy91bnBsdWcgYWxvbmcgd2l0aCBWTSBsaXZlIG1pZ3Jh dGlvbi4NCj4gDQo+IFBsZWFzZSBmZWVsIGZyZWUgdG8gYWRkLA0KPiBUZXN0ZWQtYnk6IFZpc2hu dSBQYWpqdXJpIDx2aXNobnVAb3MuYW1wZXJlY29tcHV0aW5nLmNvbT4NCg0KTWFueSB0aGFua3Mg Zm9yIHRoaXMuDQoNCkFzIHlvdSBhcmUgYXdhcmUsIHdlIGhhdmUgbm93IHNwbGl0IGFib3ZlIHBh dGNoLXNldCBpbnRvOg0KDQoxLiBBcmNoaXRlY3R1cmUgYWdub3N0aWMgcGF0Y2gtc2V0IChiZWlu ZyByZXZpZXdlZCBiZWxvdykNCiAgIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3FlbXUtZGV2ZWwv MjAyMzEwMDkyMDM2MDEuMTc1ODQtMS1zYWxpbC5tZWh0YUBodWF3ZWkuY29tLyN0DQoyLiBBUk0g c3BlY2lmaWMgcGF0Y2gtc2V0IChXb3VsZCBzb29uIGJlIGZvbGxvd2luZyBhcyBSRkMgVjMpDQoN Cg0KSWYgcG9zc2libGUsIGNhbiBJIHJlcXVlc3QgeW91IHRvIHNhbml0eSB0ZXN0IHRoZSBBcmNo aXRlY3R1cmUNCmFnbm9zdGljIHBhdGNoLXNldCBhcyB3ZWxsIGZvciByZWdyZXNzaW9uIGFuZCBw cm92aWRlIHRoZQ0KVGVzdGVkLWJ5IFRhZyBmb3IgdGhpcyBwYXRjaC1zZXQgYXMgd2VsbD8NCg0K VGhpcyBpcyB0byBlbnN1cmUgdGhlc2UgY2hhbmdlcyBpZiBhY2NlcHRlZCBkbyBub3QgYnJlYWsg YW55DQpleGlzdGluZyBmZWF0dXJlcy4NCg0KDQpNYW55IHRoYW5rcyBhZ2FpbiBmb3IgeW91ciBw YXN0IGVmZm9ydHMgYWxsIHRoZXNlIHRpbWVzIQ0KDQoNCkNoZWVycw0KU2FsaWwuDQoNCg0K