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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 89D9DC43334 for ; Wed, 29 Jun 2022 03:24:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:CC:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=kFAkwhmfBKaR53Ky4Zd828rXeJ1n8ntyqPcPeL3FWm8=; b=huO7PFvi5WLtWwUwK98D34di5Y IbUv/GvX7TX9qjjqpIfcttxitvlix9MbF5N62yva6nqM0nKFiEITLtwMu/1rc00lfDflAR75bLdtu I+/L9pt3J3S7O7CoS3JFYsHx38etH2+UbtRaRmh1Dvi1ACBAxztJtJb/nLHZJahbRETpFtblJjLfh fzABzM8CD8FcRuJ16T7fll7Clu5asTH0F7o4bPz7l9YfIfeF0hTwgNDA5hjDX16rLZUjJd7Id++NR xP79wWIun52Sow+UVkS7MxGBPKgR+GSLtB6hNxWGDCKjGXgj3gEBVao11RqNhgVH/MGgWl0SjfqvM zVGfRrUQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o6OI4-009EVx-H3; Wed, 29 Jun 2022 03:22:56 +0000 Received: from szxga01-in.huawei.com ([45.249.212.187]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o6OI0-009ESn-2Q for linux-arm-kernel@lists.infradead.org; Wed, 29 Jun 2022 03:22:55 +0000 Received: from canpemm500009.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4LXmtd1M5bzhYWQ; Wed, 29 Jun 2022 11:20:25 +0800 (CST) Received: from [10.67.102.169] (10.67.102.169) by canpemm500009.china.huawei.com (7.192.105.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Wed, 29 Jun 2022 11:22:41 +0800 CC: , , , , , , , , , <21cnbao@gmail.com>, , , , , Subject: Re: [PATCH v4 1/2] sched: Add per_cpu cluster domain info and cpus_share_resources API To: K Prateek Nayak , Abel Wu , Tim Chen , Yicong Yang , , , , , , , References: <20220609120622.47724-1-yangyicong@hisilicon.com> <20220609120622.47724-2-yangyicong@hisilicon.com> <81fbcadb-a58d-2cef-9c05-154555ec1d68@huawei.com> <6bf4f032-7d07-d4a4-4f5a-28f3871131c0@amd.com> <5638aed5-bbd0-a74e-759f-0de51e3651f7@amd.com> <3db2443d-3c30-703d-d4c1-b184eccbf3b5@amd.com> From: Yicong Yang Message-ID: <1f3158f3-9c17-d229-2b28-e2e60b3a5db5@huawei.com> Date: Wed, 29 Jun 2022 11:22:40 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.5.1 MIME-Version: 1.0 In-Reply-To: <3db2443d-3c30-703d-d4c1-b184eccbf3b5@amd.com> X-Originating-IP: [10.67.102.169] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To canpemm500009.china.huawei.com (7.192.105.203) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220628_202252_511533_C939ECCC X-CRM114-Status: GOOD ( 46.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjAyMi82LzI4IDE5OjU1LCBLIFByYXRlZWsgTmF5YWsgd3JvdGU6Cj4gSGVsbG8gQWJlbCwK PiAKPiBUaGFuayB5b3UgZm9yIGxvb2tpbmcgaW50byB0aGlzIGlzc3VlLgo+IAo+IHRsO2RyCj4g Cj4gV2UgaGF2ZSBmb3VuZCB0d28gdmFyaWFibGVzIHRoYXQgbmVlZCB0byBiZQo+IGNvLWxvY2F0 ZWQgb24gdGhlIHNhbWUgY2FjaGUgbGluZSB0byByZXN0b3JlIHRiZW5jaAo+IHBlcmZvcm1hbmNl Lgo+IAo+IEFzIHRoaXMgaXNzdWUgaXMgdW5yZWxhdGVkIHRvIHRoZSBmdW5jdGlvbmFsaXR5IG9m Cj4gdGhlIHBhdGNoLCBpdCBzaG91bGQgbm90IGhvbGQgdGhpcyBwYXRjaCBzZXJpZXMgZnJvbQo+ IGxhbmRpbmcgZ2l2ZW4gdGhlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyBzZWVuIG9uCj4gc3lz dGVtcyB3aXRoIENQVSBjbHVzdGVycy4KPiAKPiBUaGUgcmVzdWx0cyBvZiBvdXIgYW5hbHlzaXMg YXJlIGRpc2N1c3NlZCBpbgo+IGRldGFpbCBiZWxvdy4KPiAKPiBPbiA2LzIwLzIwMjIgNzowNyBQ TSwgQWJlbCBXdSB3cm90ZToKPj4KPj4gT24gNi8yMC8yMiA3OjIwIFBNLCBLIFByYXRlZWsgTmF5 YWsgV3JvdGU6Cj4+PiBIZWxsbyBUaW0sCj4+Pgo+Pj4gVGhhbmsgeW91IGZvciBsb29raW5nIGlu dG8gdGhpcy4KPj4+Cj4+PiBPbiA2LzE3LzIwMjIgMTA6MjAgUE0sIFRpbSBDaGVuIHdyb3RlOgo+ Pj4+IE9uIEZyaSwgMjAyMi0wNi0xNyBhdCAxNzo1MCArMDUzMCwgSyBQcmF0ZWVrIE5heWFrIHdy b3RlOgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiAtLSAKPj4+Pj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hl ZC9zY2hlZC5oIGIva2VybmVsL3NjaGVkL3NjaGVkLmgKPj4+Pj4gaW5kZXggZTlmM2RjNmRjYmY0 Li45N2EzODk1NDE2YWIgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2tlcm5lbC9zY2hlZC9zY2hlZC5oCj4+ Pj4+ICsrKyBiL2tlcm5lbC9zY2hlZC9zY2hlZC5oCj4+Pj4+IEBAIC0xNzUwLDEyICsxNzUwLDEy IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNjaGVkX2RvbWFpbiAqbG93ZXN0X2ZsYWdfZG9tYWlu KGludCBjcHUsIGludCBmbGFnKQo+Pj4+PiDCoMKgwqDCoMKgIHJldHVybiBzZDsKPj4+Pj4gwqAg fQo+Pj4+PiDCoCArREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCBzY2hlZF9kb21haW4gX19yY3UgKiwg c2RfY2x1c3Rlcik7Cj4+Pj4+ICtERUNMQVJFX1BFUl9DUFUoaW50LCBzZF9zaGFyZV9pZCk7Cj4+ Pj4+IMKgIERFQ0xBUkVfUEVSX0NQVShzdHJ1Y3Qgc2NoZWRfZG9tYWluIF9fcmN1ICosIHNkX2xs Yyk7Cj4+Pj4+IMKgIERFQ0xBUkVfUEVSX0NQVShpbnQsIHNkX2xsY19zaXplKTsKPj4+Pj4gwqAg REVDTEFSRV9QRVJfQ1BVKGludCwgc2RfbGxjX2lkKTsKPj4+Pj4gLURFQ0xBUkVfUEVSX0NQVShp bnQsIHNkX3NoYXJlX2lkKTsKPj4+Pj4gwqAgREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCBzY2hlZF9k b21haW5fc2hhcmVkIF9fcmN1ICosIHNkX2xsY19zaGFyZWQpOwo+Pj4+PiAtREVDTEFSRV9QRVJf Q1BVKHN0cnVjdCBzY2hlZF9kb21haW4gX19yY3UgKiwgc2RfY2x1c3Rlcik7Cj4+Pj4+IMKgIERF Q0xBUkVfUEVSX0NQVShzdHJ1Y3Qgc2NoZWRfZG9tYWluIF9fcmN1ICosIHNkX251bWEpOwo+Pj4+ PiDCoCBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHNjaGVkX2RvbWFpbiBfX3JjdSAqLCBzZF9hc3lt X3BhY2tpbmcpOwo+Pj4+PiDCoCBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHNjaGVkX2RvbWFpbiBf X3JjdSAqLCBzZF9hc3ltX2NwdWNhcGFjaXR5KTsKPj4+Pj4gLS0gCj4+Pj4+Cj4+Pj4+IFRoZSBT eXN0ZW0tbWFwIG9mIGVhY2gga2VybmVsIGlzIGFzIGZvbGxvd3M6Cj4+Pj4+Cj4+Pj4+IC0gT24g InRpcCIKPj4+Pj4KPj4+Pj4gMDAwMDAwMDAwMDAyMDUxOCBEIHNkX2FzeW1fY3B1Y2FwYWNpdHkK Pj4+Pj4gMDAwMDAwMDAwMDAyMDUyMCBEIHNkX2FzeW1fcGFja2luZwo+Pj4+PiAwMDAwMDAwMDAw MDIwNTI4IEQgc2RfbnVtYQo+Pj4+PiAwMDAwMDAwMDAwMDIwNTMwIEQgc2RfbGxjX3NoYXJlZAo+ Pj4+PiAwMDAwMDAwMDAwMDIwNTM4IEQgc2RfbGxjX2lkCj4+Pj4+IDAwMDAwMDAwMDAwMjA1M2Mg RCBzZF9sbGNfc2l6ZQo+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSA2NEIgQ2FjaGVsaW5lIEJvdW5kYXJ5Cj4+Pj4+IDAwMDAwMDAwMDAwMjA1NDAgRCBz ZF9sbGMKPj4+Pj4KPj4+Pj4gLSBPbiAidGlwICsgUGF0Y2ggMSBvbmx5IiBhbmQgInRpcCArIGJv dGggcGF0Y2hlcyIKPj4+Pj4KPj4+Pj4gMDAwMDAwMDAwMDAyMDUxOCBEIHNkX2FzeW1fY3B1Y2Fw YWNpdHkKPj4+Pj4gMDAwMDAwMDAwMDAyMDUyMCBEIHNkX2FzeW1fcGFja2luZwo+Pj4+PiAwMDAw MDAwMDAwMDIwNTI4IEQgc2RfbnVtYQo+Pj4+PiAwMDAwMDAwMDAwMDIwNTMwIEQgc2RfY2x1c3Rl csKgwqDCoMKgIDwtLS0tLQo+Pj4+PiAwMDAwMDAwMDAwMDIwNTM4IEQgc2RfbGxjX3NoYXJlZAo+ Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA2NEIgQ2Fj aGVsaW5lIEJvdW5kYXJ5Cj4+Pj4+IDAwMDAwMDAwMDAwMjA1NDAgRCBzZF9zaGFyZV9pZMKgwqDC oCA8LS0tLS0KPj4+Pj4gMDAwMDAwMDAwMDAyMDU0NCBEIHNkX2xsY19pZAo+Pj4+PiAwMDAwMDAw MDAwMDIwNTQ4IEQgc2RfbGxjX3NpemUKPj4+Pj4gMDAwMDAwMDAwMDAyMDU1MCBEIHNkX2xsYwo+ Pj4+Pgo+Pj4+Pgo+Pj4+PiAtIE9uICJ0aXAgKyBib3RoIHBhdGNoZXMgKE1vdmUgZGVjbGFyYXRp b24gdG8gdG9wKSIKPj4+Pj4KPj4+Pj4gMDAwMDAwMDAwMDAyMDUxOCBEIHNkX2FzeW1fY3B1Y2Fw YWNpdHkKPj4+Pj4gMDAwMDAwMDAwMDAyMDUyMCBEIHNkX2FzeW1fcGFja2luZwo+Pj4+PiAwMDAw MDAwMDAwMDIwNTI4IEQgc2RfbnVtYQo+Pj4+PiAwMDAwMDAwMDAwMDIwNTMwIEQgc2RfbGxjX3No YXJlZAo+Pj4+PiAwMDAwMDAwMDAwMDIwNTM4IEQgc2RfbGxjX2lkCj4+Pj4+IDAwMDAwMDAwMDAw MjA1M2MgRCBzZF9sbGNfc2l6ZQo+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSA2NEIgQ2FjaGVsaW5lIEJvdW5kYXJ5Cj4+Pj4+IDAwMDAwMDAwMDAwMjA1 NDAgRCBzZF9sbGMKPj4+Pgo+Pj4+IFdvbmRlciBpZiBpdCB3aWxsIGhlbHAgdG8gdHJ5IGtlZXAg c2RfbGxjIGFuZCBzZF9sbGNfc2l6ZSBpbnRvIHRoZSBzYW1lCj4+Pj4gY2FjaGUgbGluZS7CoCBU aGV5IGFyZSBib3RoIHVzZWQgaW4gdGhlIHdha2UgdXAgcGF0aC4KPj4+Cj4+PiBXZSBhcmUgc3Rp bGwgZXZhbHVhdGluZyBrZWVwaW5nIHdoaWNoIHNldCBvZiB2YXJpYWJsZXMgb24gdGhlIHNhbWUK Pj4+IGNhY2hlIGxpbmUgd2lsbCBwcm92aWRlIHRoZSBiZXN0IHJlc3VsdHMuCj4+Pgo+Pj4gSSB3 b3VsZCBoYXZlIGV4cGVjdGVkIHRoZSB0d28ga2VybmVsIHZhcmlhbnRzIC0gInRpcCIgYW5kIHRo ZQo+Pj4gInRpcCArIGJvdGggcGF0Y2hlcyAoTW92ZSBkZWNsYXJhdGlvbiB0byB0b3ApIiAtIHRv IGdpdmUgc2ltaWxhciByZXN1bHRzCj4+PiBhcyB0aGVpciBTeXN0ZW0gbWFwIGZvciBhbGwgdGhl IG9sZCB2YXJpYWJsZXMgcmVtYWluIHRoZSBzYW1lIGFuZCB0aGUKPj4+IGFkZGl0aW9uIG9mICJz ZF9zaGFyZV9pZCIgYW5kICJzZF9jbHVzdGVyOiBmaXQgaW4gdGhlIGdhcCBhZnRlciAic2RfbGxj Ii4KPj4+IEhvd2V2ZXIsIG5vdyB3ZSBzZWUgYSByZWdyZXNzaW9uIGZvciBoaWdoZXIgbnVtYmVy IG9mIGNsaWVudC4KPj4+Cj4+PiBUaGlzIHByb2JhYmx5IGhpbnRzIHRoYXQgYWNjZXNzIHRvICJz ZF9jbHVzdGVyIiB2YXJpYWJsZSBpbiBQYXRjaCAyIGFuZAo+Pj4gYnJpbmdpbmcgaW4gdGhlIGV4 dHJhIGNhY2hlIGxpbmUgY291bGQgYmUgcmVzcG9uc2libGUgZm9yIHRoZSByZWdyZXNzaW9uCj4+ PiB3ZSBzZWUgd2l0aCAidGlwICsgYm90aCBwYXRjaGVzIChNb3ZlIGRlY2xhcmF0aW9uIHRvIHRv cCkiCj4+Pgo+Pj4+Cj4+Pj4KPj4+Pj4gMDAwMDAwMDAwMDAyMDU0OCBEIHNkX3NoYXJlX2lkwqDC oMKgIDwtLS0tLQo+Pj4+PiAwMDAwMDAwMDAwMDIwNTUwIEQgc2RfY2x1c3RlcsKgwqDCoMKgIDwt LS0tLQo+Pj4+Pgo+Pj4+Pj4gT3IgY2hhbmdlIHRoZSBsYXlvdXQgYSBiaXQgdG8gc2VlIGlmIHRo ZXJlJ3MgYW55IGRpZmZlcmVuY2UsCj4+Pj4+PiBsaWtlOgo+Pj4+Pj4KPj4+Pj4+IMKgIERFRklO RV9QRVJfQ1BVKHN0cnVjdCBzY2hlZF9kb21haW4gX19yY3UgKiwgc2RfbGxjKTsKPj4+Pj4+IMKg IERFRklORV9QRVJfQ1BVKGludCwgc2RfbGxjX3NpemUpOwo+Pj4+Pj4gwqAgREVGSU5FX1BFUl9D UFUoaW50LCBzZF9sbGNfaWQpOwo+Pj4+Pj4gwqAgREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVk X2RvbWFpbl9zaGFyZWQgX19yY3UgKiwgc2RfbGxjX3NoYXJlZCk7Cj4+Pj4+PiArREVGSU5FX1BF Ul9DUFUoaW50LCBzZF9zaGFyZV9pZCk7Cj4+Pj4+PiArREVGSU5FX1BFUl9DUFUoc3RydWN0IHNj aGVkX2RvbWFpbiBfX3JjdSAqLCBzZF9jbHVzdGVyKTsKPj4+Pj4+IMKgIERFRklORV9QRVJfQ1BV KHN0cnVjdCBzY2hlZF9kb21haW4gX19yY3UgKiwgc2RfbnVtYSk7Cj4+Pj4+PiDCoCBERUZJTkVf UEVSX0NQVShzdHJ1Y3Qgc2NoZWRfZG9tYWluIF9fcmN1ICosIHNkX2FzeW1fcGFja2luZyk7Cj4+ Pj4+Pgo+Pj4+Pj4gSSBuZWVkIHRvIGZ1cnRoZXIgbG9vayBpbnRvIGl0IGFuZCBoYXZlIHNvbWUg dGVzdHMgb24gYSBTTVQgbWFjaGluZS4gV291bGQgeW91IG1pbmQgdG8gc2hhcmUKPj4+Pj4+IHRo ZSBrZXJuZWwgY29uZmlnIGFzIHdlbGw/IEknZCBsaWtlIHRvIGNvbXBhcmUgdGhlIGNvbmZpZyBh cyB3ZWxsLgo+Pj4+Pgo+Pj4+PiBJJ3ZlIGF0dGFjaGVkIHRoZSBrZXJuZWwgY29uZmlnIHVzZWQg dG8gYnVpbGQgdGhlIHRlc3Qga2VybmVsCj4+Pj4+IHRvIHRoaXMgbWFpbC4KPj4+Pj4KPj4+Pj4+ IFRoYW5rcywKPj4+Pj4+IFlpY29uZwo+Pj4+Pgo+Pj4+PiBXZSBhcmUgdHJ5aW5nIHRvIGRlYnVn IHRoZSBpc3N1ZSB1c2luZyBwZXJmIGFuZCBmaW5kIGFuIG9wdGltYWwKPj4+Pj4gYXJyYW5nZW1l bnQgb2YgdGhlIHBlciBjcHUgZGVjbGFyYXRpb25zIHRvIGdldCB0aGUgcmVsZXZhbnQgZGF0YQo+ Pj4+PiB1c2VkIGluIHRoZSB3YWtldXAgcGF0aCBvbiB0aGUgc2FtZSA2NEIgY2FjaGUgbGluZS4K Pj4+Pgo+Pj4+IEEgY2hlY2sgb2YgcGVyZiBjMmMgcHJvZmlsZSBkaWZmZXJlbmNlIGJldHdlZW4g dGlwIGFuZCB0aGUgbW92ZSBuZXcgZGVjbGFyYXRpb25zIHRvCj4+Pj4gdGhlIHRvcCBjYXNlIGNv dWxkIGJlIHVzZWZ1bC7CoCBJdCBtYXkgZ2l2ZSBzb21lIGFkZGl0aW9uYWwgY2x1ZXMgb2YgcG9z c2liZWwKPj4+PiBmYWxzZSBzaGFyaW5nIGlzc3Vlcy4KPj4+Cj4+PiBUaGFuayB5b3UgZm9yIHRo ZSBzdWdnZXN0aW9uLiBXZSBhcmUgY3VycmVudGx5IGxvb2tpbmcgYXQgcGVyZiBjb3VudGVyCj4+ PiBkYXRhIHRvIHNlZSBob3cgdGhlIGNhY2hlIGVmZmljaWVuY3kgaGFzIGNoYW5nZWQgYmV0d2Vl biB0aGUgdHdvIGtlcm5lbHMuCj4+PiBXZSBzdXNwZWN0IHRoYXQgdGhlIG5lZWQgZm9yIHRoZSBk YXRhIGluIHRoZSBvdGhlciBjYWNoZSBsaW5lIHRvbyBpbiB0aGUKPj4+IHdha2V1cCBwYXRoIGlz IHJlc3VsdGluZyBpbiBoaWdoZXIgY2FjaGUgbWlzc2VzIGluIHRoZSBsZXZlbHMgY2xvc2VyIHRv Cj4+PiB0aGUgY29yZS4KPj4+Cj4+PiBJIGRvbid0IHRoaW5rIGl0IGlzIGEgZmFsc2Ugc2hhcmlu ZyBwcm9ibGVtIGFzIHRoZXNlIHBlciBDUFUgZGF0YSBhcmUKPj4+IHNldCB3aGVuIHRoZSBzeXN0 ZW0gZmlyc3QgYm9vdHMgdXAgYW5kIHdpbGwgb25seSBiZSBjaGFuZ2UgYWdhaW4gZHVyaW5nCj4+ PiBhIENQVSBob3RwbHVnIG9wZXJhdGlvbi4gSG93ZXZlciwgaXQgbWlnaHQgYmUgYmVuZWZpY2lh bCB0byBzZWUgdGhlIGMyYwo+Pj4gcHJvZmlsZSBpZiBwZXJmIGNvdW50ZXJzIGRvbid0IGluZGlj YXRlIGFueXRoaW5nIG91dCBvZiB0aGUgb3JkaW5hcnkuCj4+Pgo+Pgo+PiBXb3VsZCBpdCBiZSBw b3NzaWJsZSBpZiBhbnkgb3RoZXIgZnJlcXVlbnQtd3JpdHRlbiB2YXJpYWJsZXMgc2hhcmUKPj4g c2FtZSBjYWNoZWxpbmUgd2l0aCB0aGVzZSBwZXItY3B1IGRhdGEgY2F1c2luZyBmYWxzZSBzaGFy aW5nPyAKPiAKPiBUaGlzIGluZGVlZCBzZWVtcyB0byBiZSB0aGUgY2FzZS4gSSdsbCBsZWF2ZSB0 aGUKPiBkZXRhaWxlZCBhbmFseXNpcyBiZWxvdy4KPiAKClRoZSBwZXJjcHUgdmFyaWFibGVzIHNl ZW1zIHdvbid0IGJlIGFmZmVjdGVkIGJ5IHRoZSBub24tcGVyY3B1IHZhcmlhYmxlcyBhcyB0aGUK cGVyY3B1IHNlY3Rpb24gaXMgYWxyZWFkeSBjYWNoZWxpbmUgYWxpZ25lZC4gYXJtNjQncyB2bWxp bnV4LmxkLlMgc2hvd3MKUEVSQ1BVX1NFQ1RJT04oTDFfQ0FDSEVfQllURVMpLgoKPj4gV2hhdAo+ PiBhYm91dCBtYWtpbmcgYWxsIHRoZXNlIHNkXyogZGF0YSBERUZJTkVfUEVSX0NQVV9SRUFEX01P U1RMWT8KPj4KPiAKPiBNYWtpbmcgYWxsIHRoZSBzZF8qIHZhcmlhYmxlcyBERUZJTkVfUEVSX0NQ VV9SRUFEX01PU1RMWSBvcgo+IHBsYWNpbmcgYWxsIHRoZSBzZF8qIHZhcmlhYmxlcyBvbiB0aGUg c2FtZSBjYWNoZSBsaW5lIGRvZXNuJ3QKPiBoZWxwIHRoZSByZWdyZXNzaW9uLiBJbiBmYWN0LCBp dCBtYWtlcyBpdCB3b3JzZS4KPiAKPiBGb2xsb3dpbmcgYXJlIHRoZSByZXN1bHRzIG9uIGRpZmZl cmVudCB0ZXN0IGtlcm5lbHM6Cj4gdGlwCQkJCS0gNS4xOS4wLXJjMiB0aXAKPiAJCQkJICAoY29t bWl0OiBmM2RkM2Y2NzQ1NTUgInNjaGVkOiBSZW1vdmUgdGhlIGxpbWl0YXRpb24gb2YgV0ZfT05f Q1BVIG9uIHdha2VsaXN0IGlmIHdha2VlIGNwdSBpcyBpZGxlIikKPiBjbHVzdGVyCQkJCS0gdGlw ICsgYm90aCB0aGUgcGF0Y2hlcyBvZiB0aGUgc2VyaWVzCj4gUGF0Y2gxCQkJCS0gdGlwICsgb25s eSBQYXRjaCAxCj4gYWxpZ25fZmlyc3QgKFBhdGNoIDEpIAkJLSB0aXAgKyBvbmx5IFBhdGNoIDEg KyBhbGwgc2RfKiB2YXJpYWJsZXMgaW4gc2FtZSBjYWNoZSBsaW5lCj4gcGVyX2NwdV9haWduZWRf c3RydWN0IChQYXRjaCAxKSAtIHRpcCArIG9ubHkgUGF0Y2ggMSArIGFsbCBzZF8qIHZhcmlhYmxl cyBwYXJ0IG9mIGEgcGVyX2NwdSBzdHJ1Y3Qgd2hpY2ggaXMgY2FjaGVsaW5lIGFsaWduZWQKPiAK PiBDbGllbnRzOiAgICAgICB0aXAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXIgICAgICAgICAg ICAgICAgIFBhdGNoMSAgICAgICAgICAgICBhbGlnbl9maXJzdCAoUGF0Y2ggMSkgICAgICAgcGVy X2NwdV9haWduZWRfc3RydWN0IChQYXRjaCAxKQo+ICAgICA4ICAgIDMyNjMuODEgKDAuMDAgcGN0 KSAgICAgIDMwODYuODEgKC01LjQyIHBjdCkgICAgIDMwMTguNjMgKC03LjUxIHBjdCkgICAgIDI5 OTMuNjUgKC04LjI3IHBjdCkgICAgICAgICAxNzI4Ljg5ICgtNDcuMDIgcGN0KQo+ICAgIDE2ICAg IDYwMTEuMTkgKDAuMDAgcGN0KSAgICAgIDUzNjAuMjggKC0xMC44MiBwY3QpICAgIDQ4NjkuMjYg KC0xOC45OSBwY3QpICAgIDQ4MjAuMTggKC0xOS44MSBwY3QpICAgICAgICAzODQwLjY0ICgtMzYu MTAgcGN0KQo+ICAgIDMyICAgIDEyMDU4LjMxICgwLjAwIHBjdCkgICAgIDg3NjkuMDggKC0yNy4y NyBwY3QpICAgIDgxNTkuNjAgKC0zMi4zMyBwY3QpICAgIDc4NjguODIgKC0zNC43NCBwY3QpICAg ICAgICA3MTMwLjE5ICgtNDAuODYgcGN0KQo+ICAgIDY0ICAgIDIxMjU4LjIxICgwLjAwIHBjdCkg ICAgIDE5MDIxLjA5ICgtMTAuNTIgcGN0KSAgIDEzMTYxLjkyICgtMzguMDggcGN0KSAgIDEyMzI3 Ljg2ICgtNDIuMDAgcGN0KSAgICAgICAxMjU3Mi43MCAoLTQwLjg1IHBjdCkKPiAKPiBGb2xsb3dp bmcgaXMgdGhlIHN5c3RlbSBtYXAgZm9yIHRoZSBrZXJuZWwgdmFyaWFudCAiYWxpZ25fZmlyc3Qg KFBhdGNoIDEpIjoKPiAKPiAtLQo+IDAwMDAwMDAwMDAwMjA0YzAgZCBzdWdvdl9jcHUKPiAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIDIwNTAwIChDYWNo ZSBMaW5lIFN0YXJ0KQo+IDAwMDAwMDAwMDAwMjA1MDggZCByb290X2NwdWFjY3RfY3B1dXNhZ2UK PiAwMDAwMDAwMDAwMDIwNTEwIEQgY3B1ZnJlcV91cGRhdGVfdXRpbF9kYXRhCj4gIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAyMDU0MCAoQ2FjaGUgTGlu ZSBTdGFydCkKPiAwMDAwMDAwMDAwMDIwNTQwIEQgc2RfYXN5bV9jcHVjYXBhY2l0eSAgICAgICAg ICAgICAgICAgIAo+IDAwMDAwMDAwMDAwMjA1NDggRCBzZF9hc3ltX3BhY2tpbmcgICAgICAgICAg ICAgICAgICAgICAgCj4gMDAwMDAwMDAwMDAyMDU1MCBEIHNkX251bWEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKPiAwMDAwMDAwMDAwMDIwNTU4IEQgc2RfY2x1c3RlciAgICAgICAgICAg ICAgICAgICAgICAgICAgIAo+IDAwMDAwMDAwMDAwMjA1NjAgRCBzZF9sbGNfc2hhcmVkICAgICAg ICAgICAgICAgICAgICAgICAgCj4gMDAwMDAwMDAwMDAyMDU2OCBEIHNkX3NoYXJlX2lkICAgICAg ICAgICAgICAgICAgICAgICAgICAKPiAwMDAwMDAwMDAwMDIwNTZjIEQgc2RfbGxjX2lkICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAo+IDAwMDAwMDAwMDAwMjA1NzAgRCBzZF9sbGNfc2l6ZSAg ICAgICAgICAgICAgICAgICAgICAgICAgCj4gMDAwMDAwMDAwMDAyMDU3OCBEIHNkX2xsYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKPiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tIDIwNTgwIChDYWNoZSBMaW5lIFN0YXJ0KQo+IDAwMDAwMDAw MDAwMjA1ODAgZCB3YWtlX3VwX2tsb2dkX3dvcmsKPiAwMDAwMDAwMDAwMDIwNWEwIGQgcHJpbnRr X3BlbmRpbmcKPiAwMDAwMDAwMDAwMDIwNWE0IGQgcHJpbnRrX2NvdW50X25taQo+IDAwMDAwMDAw MDAwMjA1YTUgZCBwcmludGtfY291bnQKPiAwMDAwMDAwMDAwMDIwNWE4IGQgcHJpbnRrX2NvbnRl eHQKPiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIDIw NWMwIChDYWNoZSBMaW5lIFN0YXJ0KQo+IDAwMDAwMDAwMDAwMjA1YzAgZCByY3VfdGFza3NfdHJh Y2VfX3BlcmNwdQo+IC0tCj4gCj4gQXQgdGhpcyBwb2ludCBpdCB3YXMgY2xlYXIgdGhhdCBvbmUg b3IgbW9yZSBzZF8qIHZhcmlhYmxlIG5lZWRzCj4gdG8gYmUgY28tbG9jYXRlZCB3aXRoIHRoZSBw ZXIgQ1BVIHZhcmlhYmxlcyBpbiBjYWNoZSBsaW5lIHN0YXJ0aW5nCj4gYXQgMjA1NDAuIFdlIGJl Z2FuIG1vdmluZyB2YXJpYWJsZSBvdXQgb2YgdGhlIGNhY2hlIGxpbmUgb25lIGJ5IG9uZQo+IHRv IHNlZSB3aGljaCB2YXJpYWJsZSBtYWtlcyB0aGUgZGlmZmVyZW5jZSBhcyB3ZSBmb3VuZCBvdXQg dGhhdCBhcwo+IGxvbmcgYXMgcm9vdF9jcHVhY2N0X2NwdXVzYWdlIGFuZCBzZF9sbGNfaWQgYXJl IG9uIHRoZSBzYW1lIGNhY2hlCj4gbGluZSwgdGhlIHJlc3VsdHMgd2VyZSBlcXVpdmFsZW50IG9m IHdoYXQgd2Ugc2F3IG9uIHRoZSB0aXAuIEFzIGJvdGgKPiB0aGUgdmFyaWFibGVzIHNlZW0gdG8g YmUgYWNjZXNzZXMgdmVyeSBmcmVxdWVudGx5LCBhY2Nlc3MgdG8gb25lIHdpbGwKPiBwcmltZSB0 aGUgY2FjaGUgbGluZSBjb250YWluaW5nIHRoZSBvdGhlciB2YXJpYWJsZSBhcyB3ZWxsIGxlYWRp bmcgdG8KPiBiZXR0ZXIgY2FjaGUgZWZmaWNpZW5jeS4KPiAKPiBQbGFjaW5nIHJvb3RfY3B1YWNj dF9jcHV1c2FnZSwgc2RfbGxjX2lkLCBzZF9zaGFyZV9pZCwgc2RfbGxjX3NoYXJlZAo+IGFuZCBz ZF9jbHVzdGVyIG9uIHRoZSBzYW1lIGNhY2hlIGxpbmUsIHRoZSByZXN1bHRzIGFyZSBhcyBmb2xs b3dzOgo+IAo+IEtlcm5lbCB2ZXJzaW9uczoKPiB0aXAJCQkJCS0gNS4xOS4wLXJjMiB0aXAKPiBj bHVzdGVyCQkJCQktIHRpcCArIGJvdGggdGhlIHBhdGNoZXMgb2YgdGhlIHNlcmllcwo+IGNsdXN0 ZXIgKEN1c3RvbSBMYXlvdXQpCQkJLSB0aXAgKyBib3RoIHRoZSBwYXRjaGVzIG9mIHRoZSBzZXJp ZXMgKyByZXdvcmtlZCBzeXN0ZW0gbWFwCj4gY2x1c3RlciAoQ3VzdG9tIExheW91dCkgKyBTSVNf VVRJTAktIGNsdXN0ZXIgKEN1c3RvbSBMYXlvdXQpICsgdjQgb2YgU0lTX1VUSUwgcGF0Y2hzZXQg YnkgQ2hlbnl1Cj4gCQkJCQkgIChodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjIwNjEy MTYzNDI4Ljg0OTM3OC0xLXl1LmMuY2hlbkBpbnRlbC5jb20vKQo+IAo+IENsaWVudHM6ICAgICAg dGlwICAgICAgICAgICAgICAgICAgICAgY2x1c3RlciAgICAgICAgICBjbHVzdGVyIChDdXN0b20g TGF5b3V0KSAgICAgICBjbHVzdGVyIChDdXN0b20gTGF5b3V0KQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKyBTSVMgVXRpbAo+ICAgICAxICAgIDQ0NC40MSAoMC4wMCBwY3Qp ICAgICAgIDQzOS4yNyAoLTEuMTUgcGN0KSAgICAgIDQzOC4wNiAoLTEuNDIgcGN0KSAgICAgICAg ICAgICA0NDcuNzUgKDAuNzUgcGN0KQo+ICAgICAyICAgIDg3OS4yMyAoMC4wMCBwY3QpICAgICAg IDgzMS40OSAoLTUuNDIgcGN0KSAgICAgIDg0Ni45OCAoLTMuNjYgcGN0KSAgICAgICAgICAgICA4 NzEuNjQgKC0wLjg2IHBjdCkKPiAgICAgNCAgICAxNjQ4LjgzICgwLjAwIHBjdCkgICAgICAxNjA4 LjA3ICgtMi40NyBwY3QpICAgICAxNjIxLjM4ICgtMS42NiBwY3QpICAgICAgICAgICAgMTY1Ni4z NCAoMC40NSBwY3QpCj4gICAgIDggICAgMzI2My44MSAoMC4wMCBwY3QpICAgICAgMzA4Ni44MSAo LTUuNDIgcGN0KSAgICAgMzEwMy40MCAoLTQuOTEgcGN0KSAgICAgKiAgICAgIDMyMjcuODggKC0x LjEwIHBjdCkKPiAgICAxNiAgICA2MDExLjE5ICgwLjAwIHBjdCkgICAgICA1MzYwLjI4ICgtMTAu ODIgcGN0KSAgICA1ODM4LjA0ICgtMi44OCBwY3QpICAgICAgICAgICAgNjIzMi45MiAoMy42OCBw Y3QpCj4gICAgMzIgICAgMTIwNTguMzEgKDAuMDAgcGN0KSAgICAgODc2OS4wOCAoLTI3LjI3IHBj dCkgICAgMTE1NzcuNzMgKC0zLjk4IHBjdCkgICAgICAgICAgIDExNzc0LjEwICgtMi4zNSBwY3Qp Cj4gICAgNjQgICAgMjEyNTguMjEgKDAuMDAgcGN0KSAgICAgMTkwMjEuMDkgKC0xMC41MiBwY3Qp ICAgMTk1NjMuNTcgKC03Ljk3IHBjdCkgICAgKiAgICAgIDIyMDQ0LjkzICgzLjcwIHBjdCkKPiAg IDEyOCAgICAzMDc5NS4yNyAoMC4wMCBwY3QpICAgICAzMDg2MS4zNCAoMC4yMSBwY3QpICAgICAz MTcwNS40NyAoMi45NSBwY3QpICAgICAgICAgICAgMjg5ODYuMTQgKC01Ljg3IHBjdCkgICAgKgo+ ICAgMjU2ICAgIDI1MTM4LjQzICgwLjAwIHBjdCkgICAgIDI0NzExLjkwICgtMS42OSBwY3QpICAg IDIzOTI5LjQyICgtNC44MCBwY3QpICAgICogICAgICA0Mzk4NC41MiAoNzQuOTYgcGN0KSAgICBb S25vd24gdG8gYmUgdW5zdGFibGUgd2l0aG91dCBTSVNfVVRJTF0KPiAgIDUxMiAgICA1MTI4Ny45 MyAoMC4wMCBwY3QpICAgICA1MTg1NS41NSAoMS4xMCBwY3QpICAgICA1MjI3OC4zMyAoMS45MyBw Y3QpICAgICAgICAgICAgNTE1MTEuNTEgKDAuNDMgcGN0KQo+ICAxMDI0ICAgIDUzMTc2Ljk3ICgw LjAwIHBjdCkgICAgIDUyNTU0LjU1ICgtMS4xNyBwY3QpICAgIDUyOTk1LjI3ICgtMC4zNCBwY3Qp ICAgICAgICAgICA1MjgwNy4wNCAoLTAuNjkgcGN0KQo+IAo+IENoZW55dSdzIFNJU19VVElMIHBh dGNoIHdhcyBtZXJnZWQgdG9kYXkgaW4gdGhlIHRpcAo+IChjb21taXQ6IDcwZmI1Y2NmMmViYiAi c2NoZWQvZmFpcjogSW50cm9kdWNlIFNJU19VVElMIHRvIHNlYXJjaCBpZGxlIENQVSBiYXNlZCBv biBzdW0gb2YgdXRpbF9hdmciKQo+IGFuZCBzZWVtcyB0byBicmluZyBiYWNrIHBlcmZvcm1hbmNl IHRvIHRoZSBzYW1lIGxldmVsCj4gYXMgc2VlbiBvbiB0aGUgdGlwIHVzZWQgZHVyaW5nIG91ciB0 ZXN0aW5nLgo+IAo+IFRoZSBzeXN0ZW0gbWFwIG9mIHRoZSB0ZXN0ZWQgY29uZmlndXJhdGlvbiBs YWJlbGxlZCAiQ3VzdG9tIExheW91dCIKPiBpcyBhcyBmb2xsb3dzOgo+IAo+IC0tCj4gMDAwMDAw MDAwMDAyMDRjMCBkIHN1Z292X2NwdQo+ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gMjA1MDAgKENhY2hlIExpbmUgU3RhcnQpCj4gMDAwMDAwMDAwMDAy MDUwOCBkIHJvb3RfY3B1YWNjdF9jcHV1c2FnZQo+IDAwMDAwMDAwMDAwMjA1MTAgRCBjcHVmcmVx X3VwZGF0ZV91dGlsX2RhdGEKPiAwMDAwMDAwMDAwMDIwNTE4IEQgc2RfbGxjX2lkCj4gMDAwMDAw MDAwMDAyMDUxYyBEIHNkX3NoYXJlX2lkCj4gMDAwMDAwMDAwMDAyMDUyMCBEIHNkX2xsY19zaGFy ZWQKPiAwMDAwMDAwMDAwMDIwNTI4IEQgc2RfY2x1c3Rlcgo+IDAwMDAwMDAwMDAwMjA1MzAgRCBz ZF9hc3ltX2NwdWNhcGFjaXR5Cj4gMDAwMDAwMDAwMDAyMDUzOCBEIHNkX2FzeW1fcGFja2luZwo+ ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gMjA1NDAg KENhY2hlIExpbmUgU3RhcnQpCj4gMDAwMDAwMDAwMDAyMDU0MCBEIHNkX251bWEKPiAwMDAwMDAw MDAwMDIwNTQ4IEQgc2RfbGxjX3NpemUKPiAwMDAwMDAwMDAwMDIwNTUwIEQgc2RfbGxjCj4gMDAw MDAwMDAwMDAyMDU2MCBkIHdha2VfdXBfa2xvZ2Rfd29yawo+ICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gMjA1ODAgKENhY2hlIExpbmUgU3RhcnQpCj4g MDAwMDAwMDAwMDAyMDU4MCBkIHByaW50a19wZW5kaW5nCj4gMDAwMDAwMDAwMDAyMDU4NCBkIHBy aW50a19jb3VudF9ubWkKPiAwMDAwMDAwMDAwMDIwNTg1IGQgcHJpbnRrX2NvdW50Cj4gMDAwMDAw MDAwMDAyMDU4OCBkIHByaW50a19jb250ZXh0Cj4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAyMDVjMCAoQ2FjaGUgTGluZSBTdGFydCkKPiAwMDAwMDAw MDAwMDIwNWMwIGQgcmN1X3Rhc2tzX3RyYWNlX19wZXJjcHUKPiAtLQo+IAoKVGhhbmtzIGZvciB0 aGUgZGF0YS4gSXQgbG9va3Mgc3VmZmljaWVudCB0byBpbGx1c3RyYXRlIHRoZSBpc3N1ZS4gSSdt IHN0aWxsIGEgbGl0dGxlIGN1cmlvdXMgdGhhdAppcyBpdCBzcGVjaWZpYyBvbiBaZW4gMz8gU2lu Y2UgSSBjYW5ub3QgZ2V0IHRoZSBaZW4gMyBtYWNoaW5lIHNvIEkgdHJpZWQgdG8gcmVwcm9kdWNl IHRoaXMgb24gdGhlIGEKQU1EIDc3NDIgKDIgeCA2NEMvMTI4VCkgYW5kIGFuIEludGVsIDYxNDgg KDIgeCA0MEMvODBUKSBtYWNoaW5lIHdpdGggeW91ciBjb25maWcgYmFzZWQgb24gdGlwL3NjaGUv Y29yZQpvZiBjb21taXQgZjNkZDNmNjc0NTU1ICJzY2hlZDogUmVtb3ZlIHRoZSBsaW1pdGF0aW9u IG9mIFdGX09OX0NQVSBvbiB3YWtlbGlzdCBpZiB3YWtlZSBjcHUgaXMgaWRsZSIuCldpdGggY2x1 c3RlcidzIHBlcmNwdSBkZWZpbml0aW9uIHBhdGNoKHRoZSB3b3JzdCBjYXNlKSB0aGUgcm9vdF9j cHVhY2N0X2NwdXVzYWdlIGFuZCBzZF9sbGNfaWQgYXJlCnNlcGFyYXRlZCBidXQgbWFrZSBsaXR0 bGUgZGlmZmVyZW5jZSB0byB0aGUgdGJlbmNoLgoKRm9yIDc3NDIgd2l0aCBOUFMgPSAxOgkJCQkJ Cgl0aXAvc2NoZWQvY29yZQkJCQl0aXAvc2NoZWQvY29yZS1jbHMtcGVyY3B1CQkJCQp0aHJlYWRz CWl0ZXItMQlpdGVyLTIJaXRlci0zCWF2ZwkJaXRlci0xCWl0ZXItMglpdGVyLTMJYXZnCQoxCTI4 Ny4yNTQJMjg1LjI1MgkyODguMjkJMjg2LjkzCQkyODguMTA1CTI4NS44ODQJMjg2LjE2NAkyODYu NzIgICAoLTAuMDc1JSkKMgk1NzMuNjIzCTU3MC4zMjYJNTczLjY3CTU3Mi41NAkJNTc3LjI0Mgk1 NzQuMjU3CTU3NS42MTEJNTc1LjcwICAgKDAuNTUzJSkKNAkxMTQwLjAxCTExMzUuNTQJMTEzNy45 CTExMzcuODIJCTExNTMuNDUJMTE0Ni42NgkxMTQ5LjgJMTE0OS45NyAgKDEuMDY4JSkKOAkyMjMy LjczCTIyMjguNzEJMjIzNy40NwkyMjMyLjk3CQkyMjgwLjgzCTIyOTEuOTQJMjI4Ny41NQkyMjg2 Ljc3ICAoMi40MDklKQoxNgk0NTEwLjY1CTQ0NjUuMgk0NTIyLjIyCTQ0OTkuMzYJCTQ1NTEuMTkJ NDU3My44NQk0NTc1Ljc4CTQ1NjYuOTQgICgxLjUwMiUpCjMyCTg0MzIuNDMJODU0Mi4zNQk4NDA0 LjcJODQ1OS44MwkJODYyNy40CTg3MTIuMjkJODc2NC41Mwk4NzAxLjQxICAoMi44NTYlKQo2NAkx NjQwNC4yCTE2NDY0LjcJMTU2ODYuNAkxNjE4NS4xMAkxNTg3OC4zCTE1NjM4LjMJMTU3MzUuNgkx NTc1MC43MyAoLTIuNjg0JSkKMTI4CTIzMzI3LjYJMjI3NjcuNAkyMTAxNy4zCTIyMzcwLjc3CTIz Nzc0LjkJMjM3MzMuMgkyMTc0NC45CTIzMDg0LjMzICgzLjE5MCUpCgpsYXlvdXQgb2YgY29yZS1j bHMtcGVyY3B1OgowMDAwMDAwMDAwMDIwNTA4IGQgcm9vdF9jcHVhY2N0X2NwdXVzYWdlCjAwMDAw MDAwMDAwMjA1MTAgRCBjcHVmcmVxX3VwZGF0ZV91dGlsX2RhdGEKMDAwMDAwMDAwMDAyMDUxOCBE IHNkX2FzeW1fY3B1Y2FwYWNpdHkKMDAwMDAwMDAwMDAyMDUyMCBEIHNkX2FzeW1fcGFja2luZwow MDAwMDAwMDAwMDIwNTI4IEQgc2RfbnVtYQowMDAwMDAwMDAwMDIwNTMwIEQgc2RfY2x1c3Rlcgow MDAwMDAwMDAwMDIwNTM4IEQgc2RfbGxjX3NoYXJlZAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS1ib3VuZGFyeQowMDAwMDAwMDAwMDIwNTQwIEQgc2Rfc2hhcmVfaWQKMDAwMDAwMDAw MDAyMDU0NCBEIHNkX2xsY19pZAowMDAwMDAwMDAwMDIwNTQ4IEQgc2RfbGxjX3NpemUKMDAwMDAw MDAwMDAyMDU1MCBEIHNkX2xsYwoKRm9yIDYxNDggd2l0aCBTTkMgZGlzYWJsZWQ6CiAgICAgICAg IHRpcC9zY2hlZC9jb3JlICAgICAgIHRpcC9zY2hlZC9jb3JlLWNscy1wZXJjcHUKMSAgICAgICAg MzE0LjQ0ICggICAwLjAwJSkgICAgICAzMTYuNjggKiAgIDAuNzElKgoyICAgICAgICA2MzAuMjIg KCAgIDAuMDAlKSAgICAgIDYzMy44NCAqICAgMC41NyUqCjQgICAgICAgMTI2MC43MCAoICAgMC4w MCUpICAgICAxMjY3LjMyICogICAwLjUyJSoKOCAgICAgICAyNDc1LjMxICggICAwLjAwJSkgICAg IDI0ODUuOTQgKiAgIDAuNDMlKgoxNiAgICAgIDQ2ODQuMDMgKCAgIDAuMDAlKSAgICAgNDY4Mi4y MSAqICAtMC4wNCUqCjMyICAgICAgNzQ5Ni4yOCAoICAgMC4wMCUpICAgICA3MzYwLjQxICogIC0x LjgxJSoKNjQgICAgICA3OTgxLjU2ICggICAwLjAwJSkgICAgIDc4NTEuNzMgKiAgLTEuNjMlKgox MjggICAgMTUzNTkuODEgKCAgIDAuMDAlKSAgICAxNTI1NS42OCAqICAtMC42OCUqCjI1NiAgICAx NTEwNC4zMSAoICAgMC4wMCUpICAgIDE1MjUzLjg1ICogICAwLjk5JSoKMzIwICAgIDE1MTQ2LjQ3 ICggICAwLjAwJSkgICAgMTUxNTEuMzkgKiAgIDAuMDMlKgoKbGF5b3V0IG9mIGNvcmUtY2xzLXBl cmNwdToKMDAwMDAwMDAwMDAyMDUwOCBkIHJvb3RfY3B1YWNjdF9jcHV1c2FnZQowMDAwMDAwMDAw MDIwNTEwIEQgY3B1ZnJlcV91cGRhdGVfdXRpbF9kYXRhCjAwMDAwMDAwMDAwMjA1MTggRCBzZF9h c3ltX2NwdWNhcGFjaXR5CjAwMDAwMDAwMDAwMjA1MjAgRCBzZF9hc3ltX3BhY2tpbmcKMDAwMDAw MDAwMDAyMDUyOCBEIHNkX251bWEKMDAwMDAwMDAwMDAyMDUzMCBEIHNkX2NsdXN0ZXIKMDAwMDAw MDAwMDAyMDUzOCBEIHNkX2xsY19zaGFyZWQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tYm91bmRhcnkKMDAwMDAwMDAwMDAyMDU0MCBEIHNkX3NoYXJlX2lkCjAwMDAwMDAwMDAwMjA1 NDQgRCBzZF9sbGNfaWQKMDAwMDAwMDAwMDAyMDU0OCBEIHNkX2xsY19zaXplCjAwMDAwMDAwMDAw MjA1NTAgRCBzZF9sbGMKCgo+IFRoZSBTeXN0ZW0tbWFwIGlzIGhvd2V2ZXIgZGVwZW5kZW50IG9u IG11bHRpcGxlIGZhY3RvcnMKPiBzdWNoIGFzIGNvbmZpZyBvcHRpb25zIGVuYWJsZWQsIGV0Yy4g d2hpY2ggY2FuIGNoYW5nZSBmcm9tCj4gYnVpbGQgdG8gYnVpbGQuCj4gRmluZGluZyBhIHBlcm1h bmVudCBzb2x1dGlvbiB0byB0aGUgaXNzdWUgbWlnaHQgdGFrZQo+IHNvbWUgbW9yZSB0aW1lLgo+ IAo+IE1lYW53aGlsZSwgYXMgdGhpcyBpcyBhbiBpc3N1ZSB1bnJlbGF0ZWQgdG8gdGhlCj4gZnVu Y3Rpb25hbGl0eSBvZiB0aGlzIHBhdGNoLCBpdCBzaG91bGQgbm90IGJsb2NrCj4gdGhlIGxhbmRp bmcgb2YgdGhpcyBwYXRjaCBzZXJpZXMuCj4gVGhhbmsgeW91IGV2ZXJ5b25lIGZvciB5b3VyIHBv aW50ZXJzIGFuZCBwYXRpZW5jZQo+IGR1cmluZyB0aGlzIGRlYnVnLgo+IAo+IFRlc3RlZC1ieTog SyBQcmF0ZWVrIE5heWFrIDxrcHJhdGVlay5uYXlha0BhbWQuY29tPgoKVGhhbmtzLiBUaGVuIEkn bGwgcmVzcGluIHRoZSBwYXRjaC4KClJlZ2FyZHMsCllpY29uZwoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK