From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 39F64C2D0C2 for ; Fri, 3 Jan 2020 09:43:12 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4B01E222C4 for ; Fri, 3 Jan 2020 09:43:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="eBuHMJDn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4B01E222C4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 416A8170C; Fri, 3 Jan 2020 10:42:19 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 416A8170C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1578044589; bh=GMnLZmZbpL4b/7KgXRLC3wrtAvriiff7oSpLEONMRlU=; h=Date:From:To:In-Reply-To:References:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=eBuHMJDnaq17+PhWqatjh0wkFnIIJInsU5qs/RUq62DdG6NpqaNGzM97+F7CSbNWr 1AxK1cZVX18C2Cs8acOWXo4nbGn92X+Id41n7U+zIxYHOxpaEN9fDkFgoPDWqedHaL U2g2NG2MsOcAeqUs9Rif7KvuQ1dJNJtaWqO72qF4= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id C1B54F8015C; Fri, 3 Jan 2020 10:42:18 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id CC305F8015D; Fri, 3 Jan 2020 10:42:16 +0100 (CET) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id BA6D3F800FE for ; Fri, 3 Jan 2020 10:42:13 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz BA6D3F800FE X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id B5B2BAF00; Fri, 3 Jan 2020 09:42:12 +0000 (UTC) Date: Fri, 03 Jan 2020 10:42:12 +0100 Message-ID: From: Takashi Iwai To: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= In-Reply-To: <5150c94101c9534f4c8e987324f6912c16d459f6.1578043216.git.mirq-linux@rere.qmqm.pl> References: <5150c94101c9534f4c8e987324f6912c16d459f6.1578043216.git.mirq-linux@rere.qmqm.pl> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/25.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Cc: linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org, Takashi Iwai Subject: Re: [alsa-devel] [PATCH] ALSA: hda - constify and cleanup static NodeID tables X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" T24gRnJpLCAwMyBKYW4gMjAyMCAxMDoyMzo0OCArMDEwMCwKTWljaGHFgiBNaXJvc8WCYXcgd3Jv dGU6Cj4gCj4gTWFrZSBoZGFfbmlkX3QgdGFibGVzIHN0YXRpYyBjb25zdCwgYXMgdGhleSBhcmUg bm90IGludGVuZGVkIHRvIGJlCj4gbW9kaWZpZWQgYnkgY2FsbGVlcy4KPiAKPiAtLS0KPiAqIHBh dGNoIGFnYWluc3QgdGl3YWkvc291bmQvdG9waWMvY29uc3RpZmljYXRpb24gYnJhbmNoCj4gCj4g U2lnbmVkLW9mZi1ieTogTWljaGHFgiBNaXJvc8WCYXcgPG1pcnEtbGludXhAcmVyZS5xbXFtLnBs PgoKTmljZSBjYXRjaCwgSSBxdWV1ZWQgdG8gdG9waWMvY29uc3RpZmljYXRpb24gYnJhbmNoLgoK SSd2ZSBsb29rZWQgYXQgb25seSBzdGF0aWMgc3RydWN0LCBzbyB0aGlzIHdhc24ndCBjb3ZlcmVk IGJ5IG15CnNlcmllcy4gIFRoZXJlIG11c3QgYmUgbW9yZSBzdWNoIHJlbWFpbmluZyB0aGluZ3Mu CgoKdGhhbmtzLAoKVGFrYXNoaQoKPiAtLS0KPiAgc291bmQvcGNpL2hkYS9oZGFfZ2VuZXJpYy5j ICAgIHwgIDQgKy0tCj4gIHNvdW5kL3BjaS9oZGEvcGF0Y2hfYW5hbG9nLmMgICB8ICA2ICsrLS0K PiAgc291bmQvcGNpL2hkYS9wYXRjaF9jYTAxMzIuYyAgIHwgMTIgKysrLS0tLQo+ICBzb3VuZC9w Y2kvaGRhL3BhdGNoX2NvbmV4YW50LmMgfCAgNiArKy0tCj4gIHNvdW5kL3BjaS9oZGEvcGF0Y2hf cmVhbHRlay5jICB8IDYyICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KPiAgc291 bmQvcGNpL2hkYS9wYXRjaF9zaWdtYXRlbC5jIHwgIDQgKy0tCj4gIHNvdW5kL3BjaS9oZGEvcGF0 Y2hfdmlhLmMgICAgICB8ICA0ICstLQo+ICA3IGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMo KyksIDQ5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL2hkYV9n ZW5lcmljLmMgYi9zb3VuZC9wY2kvaGRhL2hkYV9nZW5lcmljLmMKPiBpbmRleCAxMGQ1MDIzMjhi NzYuLmZjMDAxYzY0ZWYyMCAxMDA2NDQKPiAtLS0gYS9zb3VuZC9wY2kvaGRhL2hkYV9nZW5lcmlj LmMKPiArKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9nZW5lcmljLmMKPiBAQCAtNDQwMSw3ICs0NDAx LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYV9nZW5fZml4X3Bpbl9wb3dlcik7Cj4gICAq Lwo+ICAKPiAgLyogY2hlY2sgZWFjaCBwaW4gaW4gdGhlIGdpdmVuIGFycmF5OyByZXR1cm5zIHRy dWUgaWYgYW55IG9mIHRoZW0gaXMgcGx1Z2dlZCAqLwo+IC1zdGF0aWMgYm9vbCBkZXRlY3RfamFj a3Moc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGludCBudW1fcGlucywgaGRhX25pZF90ICpwaW5z KQo+ICtzdGF0aWMgYm9vbCBkZXRlY3RfamFja3Moc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGlu dCBudW1fcGlucywgY29uc3QgaGRhX25pZF90ICpwaW5zKQo+ICB7Cj4gIAlpbnQgaTsKPiAgCWJv b2wgcHJlc2VudCA9IGZhbHNlOwo+IEBAIC00NDIwLDcgKzQ0MjAsNyBAQCBzdGF0aWMgYm9vbCBk ZXRlY3RfamFja3Moc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGludCBudW1fcGlucywgaGRhX25p ZF90ICpwaW5zKQo+ICB9Cj4gIAo+ICAvKiBzdGFuZGFyZCBIUC9saW5lLW91dCBhdXRvLW11dGUg aGVscGVyICovCj4gLXN0YXRpYyB2b2lkIGRvX2F1dG9tdXRlKHN0cnVjdCBoZGFfY29kZWMgKmNv ZGVjLCBpbnQgbnVtX3BpbnMsIGhkYV9uaWRfdCAqcGlucywKPiArc3RhdGljIHZvaWQgZG9fYXV0 b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGludCBudW1fcGlucywgY29uc3QgaGRhX25p ZF90ICpwaW5zLAo+ICAJCQlpbnQgKnBhdGhzLCBib29sIG11dGUpCj4gIHsKPiAgCXN0cnVjdCBo ZGFfZ2VuX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKPiBkaWZmIC0tZ2l0IGEvc291bmQvcGNp L2hkYS9wYXRjaF9hbmFsb2cuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfYW5hbG9nLmMKPiBpbmRl eCBiYzlkZDhlNmZkODYuLmM2NDg5NWY5OTI5OSAxMDA2NDQKPiAtLS0gYS9zb3VuZC9wY2kvaGRh L3BhdGNoX2FuYWxvZy5jCj4gKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9hbmFsb2cuYwo+IEBA IC0zODksNyArMzg5LDcgQEAgc3RhdGljIGludCBwYXRjaF9hZDE5ODZhKHN0cnVjdCBoZGFfY29k ZWMgKmNvZGVjKQo+ICB7Cj4gIAlpbnQgZXJyOwo+ICAJc3RydWN0IGFkMTk4eF9zcGVjICpzcGVj Owo+IC0Jc3RhdGljIGhkYV9uaWRfdCBwcmVmZXJyZWRfcGFpcnNbXSA9IHsKPiArCXN0YXRpYyBj b25zdCBoZGFfbmlkX3QgcHJlZmVycmVkX3BhaXJzW10gPSB7Cj4gIAkJMHgxYSwgMHgwMywKPiAg CQkweDFiLCAweDAzLAo+ICAJCTB4MWMsIDB4MDQsCj4gQEAgLTUxOSw5ICs1MTksOSBAQCBzdGF0 aWMgaW50IGFkMTk4M19hZGRfc3BkaWZfbXV4X2N0bChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykK PiAgCj4gIHN0YXRpYyBpbnQgcGF0Y2hfYWQxOTgzKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQo+ ICB7Cj4gKwlzdGF0aWMgY29uc3QgaGRhX25pZF90IGNvbm5fMGNbXSA9IHsgMHgwOCB9Owo+ICsJ c3RhdGljIGNvbnN0IGhkYV9uaWRfdCBjb25uXzBkW10gPSB7IDB4MDkgfTsKPiAgCXN0cnVjdCBh ZDE5OHhfc3BlYyAqc3BlYzsKPiAtCXN0YXRpYyBoZGFfbmlkX3QgY29ubl8wY1tdID0geyAweDA4 IH07Cj4gLQlzdGF0aWMgaGRhX25pZF90IGNvbm5fMGRbXSA9IHsgMHgwOSB9Owo+ICAJaW50IGVy cjsKPiAgCj4gIAllcnIgPSBhbGxvY19hZF9zcGVjKGNvZGVjKTsKPiBkaWZmIC0tZ2l0IGEvc291 bmQvcGNpL2hkYS9wYXRjaF9jYTAxMzIuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY2EwMTMyLmMK PiBpbmRleCAzMmVkNDY0NjRhZjcuLjI1MDUzNGY5MGNlMCAxMDA2NDQKPiAtLS0gYS9zb3VuZC9w Y2kvaGRhL3BhdGNoX2NhMDEzMi5jCj4gKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9jYTAxMzIu Ywo+IEBAIC03ODAyLDIzICs3ODAyLDIzIEBAIHN0YXRpYyB2b2lkIHNiel9yZWdpb24yX2V4aXQo c3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCj4gIAo+ICBzdGF0aWMgdm9pZCBzYnpfc2V0X3Bpbl9j dGxfZGVmYXVsdChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKPiAgewo+IC0JaGRhX25pZF90IHBp bnNbNV0gPSB7MHgwQiwgMHgwQywgMHgwRSwgMHgxMiwgMHgxM307Cj4gKwlzdGF0aWMgY29uc3Qg aGRhX25pZF90IHBpbnNbXSA9IHsweDBCLCAweDBDLCAweDBFLCAweDEyLCAweDEzfTsKPiAgCXVu c2lnbmVkIGludCBpOwo+ICAKPiAgCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIDB4MTEsIDAs Cj4gIAkJCUFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgMHg0MCk7Cj4gIAo+IC0JZm9y IChpID0gMDsgaSA8IDU7IGkrKykKPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBpbnMp OyBpKyspCj4gIAkJc25kX2hkYV9jb2RlY193cml0ZShjb2RlYywgcGluc1tpXSwgMCwKPiAgCQkJ CUFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgMHgwMCk7Cj4gIH0KPiAgCj4gIHN0YXRp YyB2b2lkIGNhMDEzMl9jbGVhcl91bnNvbGljaXRlZChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykK PiAgewo+IC0JaGRhX25pZF90IHBpbnNbN10gPSB7MHgwQiwgMHgwRSwgMHgwRiwgMHgxMCwgMHgx MSwgMHgxMiwgMHgxM307Cj4gKwlzdGF0aWMgY29uc3QgaGRhX25pZF90IHBpbnNbXSA9IHsweDBC LCAweDBFLCAweDBGLCAweDEwLCAweDExLCAweDEyLCAweDEzfTsKPiAgCXVuc2lnbmVkIGludCBp Owo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHsKPiArCWZvciAoaSA9IDA7IGkgPCBB UlJBWV9TSVpFKHBpbnMpOyBpKyspIHsKPiAgCQlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCBw aW5zW2ldLCAwLAo+ICAJCQkJQUNfVkVSQl9TRVRfVU5TT0xJQ0lURURfRU5BQkxFLCAweDAwKTsK PiAgCX0KPiBAQCAtNzg0MiwxMCArNzg0MiwxMCBAQCBzdGF0aWMgdm9pZCBzYnpfZ3Bpb19zaHV0 ZG93bl9jb21tYW5kcyhzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgaW50IGRpciwKPiAgCj4gIHN0 YXRpYyB2b2lkIHp4cl9kYnByb19wb3dlcl9zdGF0ZV9zaHV0ZG93bihzdHJ1Y3QgaGRhX2NvZGVj ICpjb2RlYykKPiAgewo+IC0JaGRhX25pZF90IHBpbnNbN10gPSB7MHgwNSwgMHgwYywgMHgwOSwg MHgwZSwgMHgwOCwgMHgxMSwgMHgwMX07Cj4gKwlzdGF0aWMgY29uc3QgaGRhX25pZF90IHBpbnNb XSA9IHsweDA1LCAweDBjLCAweDA5LCAweDBlLCAweDA4LCAweDExLCAweDAxfTsKPiAgCXVuc2ln bmVkIGludCBpOwo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCA3OyBpKyspCj4gKwlmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShwaW5zKTsgaSsrKQo+ICAJCXNuZF9oZGFfY29kZWNfd3JpdGUoY29k ZWMsIHBpbnNbaV0sIDAsCj4gIAkJCQlBQ19WRVJCX1NFVF9QT1dFUl9TVEFURSwgMHgwMyk7Cj4g IH0KPiBkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9jb25leGFudC5jIGIvc291bmQv cGNpL2hkYS9wYXRjaF9jb25leGFudC5jCj4gaW5kZXggOTBhYTBmNDAwYTU3Li45ODUzZTAwYTA4 MTYgMTAwNjQ0Cj4gLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9jb25leGFudC5jCj4gKysrIGIv c291bmQvcGNpL2hkYS9wYXRjaF9jb25leGFudC5jCj4gQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0 aWMgdm9pZCBjeF9hdXRvX3BhcnNlX2VhcGQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCj4gIH0K PiAgCj4gIHN0YXRpYyB2b2lkIGN4X2F1dG9fdHVybl9lYXBkKHN0cnVjdCBoZGFfY29kZWMgKmNv ZGVjLCBpbnQgbnVtX3BpbnMsCj4gLQkJCSAgICAgIGhkYV9uaWRfdCAqcGlucywgYm9vbCBvbikK PiArCQkJICAgICAgY29uc3QgaGRhX25pZF90ICpwaW5zLCBib29sIG9uKQo+ICB7Cj4gIAlpbnQg aTsKPiAgCWZvciAoaSA9IDA7IGkgPCBudW1fcGluczsgaSsrKSB7Cj4gQEAgLTk1OSwxMCArOTU5 LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGRhX21vZGVsX2ZpeHVwIGN4dDUwNjZfZml4dXBf bW9kZWxzW10gPSB7Cj4gIHN0YXRpYyB2b2lkIGFkZF9jeDUwNTFfZmFrZV9tdXRlcyhzdHJ1Y3Qg aGRhX2NvZGVjICpjb2RlYykKPiAgewo+ICAJc3RydWN0IGNvbmV4YW50X3NwZWMgKnNwZWMgPSBj b2RlYy0+c3BlYzsKPiAtCXN0YXRpYyBoZGFfbmlkX3Qgb3V0X25pZHNbXSA9IHsKPiArCXN0YXRp YyBjb25zdCBoZGFfbmlkX3Qgb3V0X25pZHNbXSA9IHsKPiAgCQkweDEwLCAweDExLCAwCj4gIAl9 Owo+IC0JaGRhX25pZF90ICpwOwo+ICsJY29uc3QgaGRhX25pZF90ICpwOwo+ICAKPiAgCWZvciAo cCA9IG91dF9uaWRzOyAqcDsgcCsrKQo+ICAJCXNuZF9oZGFfb3ZlcnJpZGVfYW1wX2NhcHMoY29k ZWMsICpwLCBIREFfT1VUUFVULAo+IGRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3Jl YWx0ZWsuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCj4gaW5kZXggZGJmYWZlZTk3 OTMxLi41YmIxOTU5ZGFlMGYgMTAwNjQ0Cj4gLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFs dGVrLmMKPiArKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYwo+IEBAIC00NjQsMTAg KzQ2NCwxMCBAQCBzdGF0aWMgdm9pZCBzZXRfZWFwZChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywg aGRhX25pZF90IG5pZCwgaW50IG9uKQo+ICBzdGF0aWMgdm9pZCBhbGNfYXV0b19zZXR1cF9lYXBk KHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLCBib29sIG9uKQo+ICB7Cj4gIAkvKiBXZSBjdXJyZW50 bHkgb25seSBoYW5kbGUgZnJvbnQsIEhQICovCj4gLQlzdGF0aWMgaGRhX25pZF90IHBpbnNbXSA9 IHsKPiArCXN0YXRpYyBjb25zdCBoZGFfbmlkX3QgcGluc1tdID0gewo+ICAJCTB4MGYsIDB4MTAs IDB4MTQsIDB4MTUsIDB4MTcsIDAKPiAgCX07Cj4gLQloZGFfbmlkX3QgKnA7Cj4gKwljb25zdCBo ZGFfbmlkX3QgKnA7Cj4gIAlmb3IgKHAgPSBwaW5zOyAqcDsgcCsrKQo+ICAJCXNldF9lYXBkKGNv ZGVjLCAqcCwgb24pOwo+ICB9Cj4gQEAgLTE5MzUsMTkgKzE5MzUsMTkgQEAgc3RhdGljIHZvaWQg YWxjODg5X2ZpeHVwX2RhY19yb3V0ZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKPiAgewo+ICAJ aWYgKGFjdGlvbiA9PSBIREFfRklYVVBfQUNUX1BSRV9QUk9CRSkgewo+ICAJCS8qIGZha2UgdGhl IGNvbm5lY3Rpb25zIGR1cmluZyBwYXJzaW5nIHRoZSB0cmVlICovCj4gLQkJaGRhX25pZF90IGNv bm4xWzJdID0geyAweDBjLCAweDBkIH07Cj4gLQkJaGRhX25pZF90IGNvbm4yWzJdID0geyAweDBl LCAweDBmIH07Cj4gLQkJc25kX2hkYV9vdmVycmlkZV9jb25uX2xpc3QoY29kZWMsIDB4MTQsIDIs IGNvbm4xKTsKPiAtCQlzbmRfaGRhX292ZXJyaWRlX2Nvbm5fbGlzdChjb2RlYywgMHgxNSwgMiwg Y29ubjEpOwo+IC0JCXNuZF9oZGFfb3ZlcnJpZGVfY29ubl9saXN0KGNvZGVjLCAweDE4LCAyLCBj b25uMik7Cj4gLQkJc25kX2hkYV9vdmVycmlkZV9jb25uX2xpc3QoY29kZWMsIDB4MWEsIDIsIGNv bm4yKTsKPiArCQlzdGF0aWMgY29uc3QgaGRhX25pZF90IGNvbm4xW10gPSB7IDB4MGMsIDB4MGQg fTsKPiArCQlzdGF0aWMgY29uc3QgaGRhX25pZF90IGNvbm4yW10gPSB7IDB4MGUsIDB4MGYgfTsK PiArCQlzbmRfaGRhX292ZXJyaWRlX2Nvbm5fbGlzdChjb2RlYywgMHgxNCwgQVJSQVlfU0laRShj b25uMSksIGNvbm4xKTsKPiArCQlzbmRfaGRhX292ZXJyaWRlX2Nvbm5fbGlzdChjb2RlYywgMHgx NSwgQVJSQVlfU0laRShjb25uMSksIGNvbm4xKTsKPiArCQlzbmRfaGRhX292ZXJyaWRlX2Nvbm5f bGlzdChjb2RlYywgMHgxOCwgQVJSQVlfU0laRShjb25uMiksIGNvbm4yKTsKPiArCQlzbmRfaGRh X292ZXJyaWRlX2Nvbm5fbGlzdChjb2RlYywgMHgxYSwgQVJSQVlfU0laRShjb25uMiksIGNvbm4y KTsKPiAgCX0gZWxzZSBpZiAoYWN0aW9uID09IEhEQV9GSVhVUF9BQ1RfUFJPQkUpIHsKPiAgCQkv KiByZXN0b3JlIHRoZSBjb25uZWN0aW9ucyAqLwo+IC0JCWhkYV9uaWRfdCBjb25uWzVdID0geyAw eDBjLCAweDBkLCAweDBlLCAweDBmLCAweDI2IH07Cj4gLQkJc25kX2hkYV9vdmVycmlkZV9jb25u X2xpc3QoY29kZWMsIDB4MTQsIDUsIGNvbm4pOwo+IC0JCXNuZF9oZGFfb3ZlcnJpZGVfY29ubl9s aXN0KGNvZGVjLCAweDE1LCA1LCBjb25uKTsKPiAtCQlzbmRfaGRhX292ZXJyaWRlX2Nvbm5fbGlz dChjb2RlYywgMHgxOCwgNSwgY29ubik7Cj4gLQkJc25kX2hkYV9vdmVycmlkZV9jb25uX2xpc3Qo Y29kZWMsIDB4MWEsIDUsIGNvbm4pOwo+ICsJCXN0YXRpYyBjb25zdCBoZGFfbmlkX3QgY29ubltd ID0geyAweDBjLCAweDBkLCAweDBlLCAweDBmLCAweDI2IH07Cj4gKwkJc25kX2hkYV9vdmVycmlk ZV9jb25uX2xpc3QoY29kZWMsIDB4MTQsIEFSUkFZX1NJWkUoY29ubiksIGNvbm4pOwo+ICsJCXNu ZF9oZGFfb3ZlcnJpZGVfY29ubl9saXN0KGNvZGVjLCAweDE1LCBBUlJBWV9TSVpFKGNvbm4pLCBj b25uKTsKPiArCQlzbmRfaGRhX292ZXJyaWRlX2Nvbm5fbGlzdChjb2RlYywgMHgxOCwgQVJSQVlf U0laRShjb25uKSwgY29ubik7Cj4gKwkJc25kX2hkYV9vdmVycmlkZV9jb25uX2xpc3QoY29kZWMs IDB4MWEsIEFSUkFZX1NJWkUoY29ubiksIGNvbm4pOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC0xOTU1 LDggKzE5NTUsOCBAQCBzdGF0aWMgdm9pZCBhbGM4ODlfZml4dXBfZGFjX3JvdXRlKHN0cnVjdCBo ZGFfY29kZWMgKmNvZGVjLAo+ICBzdGF0aWMgdm9pZCBhbGM4ODlfZml4dXBfbWJwX3ZyZWYoc3Ry dWN0IGhkYV9jb2RlYyAqY29kZWMsCj4gIAkJCQkgIGNvbnN0IHN0cnVjdCBoZGFfZml4dXAgKmZp eCwgaW50IGFjdGlvbikKPiAgewo+ICsJc3RhdGljIGNvbnN0IGhkYV9uaWRfdCBuaWRzW10gPSB7 IDB4MTQsIDB4MTUsIDB4MTkgfTsKPiAgCXN0cnVjdCBhbGNfc3BlYyAqc3BlYyA9IGNvZGVjLT5z cGVjOwo+IC0Jc3RhdGljIGhkYV9uaWRfdCBuaWRzWzNdID0geyAweDE0LCAweDE1LCAweDE5IH07 Cj4gIAlpbnQgaTsKPiAgCj4gIAlpZiAoYWN0aW9uICE9IEhEQV9GSVhVUF9BQ1RfSU5JVCkKPiBA QCAtMTk5Miw3ICsxOTkyLDcgQEAgc3RhdGljIHZvaWQgYWxjODg5X2ZpeHVwX21hY19waW5zKHN0 cnVjdCBoZGFfY29kZWMgKmNvZGVjLAo+ICBzdGF0aWMgdm9pZCBhbGM4ODlfZml4dXBfaW1hYzkx X3ZyZWYoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCj4gIAkJCQkgICAgIGNvbnN0IHN0cnVjdCBo ZGFfZml4dXAgKmZpeCwgaW50IGFjdGlvbikKPiAgewo+IC0Jc3RhdGljIGhkYV9uaWRfdCBuaWRz WzJdID0geyAweDE4LCAweDFhIH07Cj4gKwlzdGF0aWMgY29uc3QgaGRhX25pZF90IG5pZHNbXSA9 IHsgMHgxOCwgMHgxYSB9Owo+ICAKPiAgCWlmIChhY3Rpb24gPT0gSERBX0ZJWFVQX0FDVF9JTklU KQo+ICAJCWFsYzg4OV9maXh1cF9tYWNfcGlucyhjb2RlYywgbmlkcywgQVJSQVlfU0laRShuaWRz KSk7Cj4gQEAgLTIwMDIsNyArMjAwMiw3IEBAIHN0YXRpYyB2b2lkIGFsYzg4OV9maXh1cF9pbWFj OTFfdnJlZihzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKPiAgc3RhdGljIHZvaWQgYWxjODg5X2Zp eHVwX21iYTExX3ZyZWYoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCj4gIAkJCQkgICAgY29uc3Qg c3RydWN0IGhkYV9maXh1cCAqZml4LCBpbnQgYWN0aW9uKQo+ICB7Cj4gLQlzdGF0aWMgaGRhX25p ZF90IG5pZHNbMV0gPSB7IDB4MTggfTsKPiArCXN0YXRpYyBjb25zdCBoZGFfbmlkX3Qgbmlkc1td ID0geyAweDE4IH07Cj4gIAo+ICAJaWYgKGFjdGlvbiA9PSBIREFfRklYVVBfQUNUX0lOSVQpCj4g IAkJYWxjODg5X2ZpeHVwX21hY19waW5zKGNvZGVjLCBuaWRzLCBBUlJBWV9TSVpFKG5pZHMpKTsK PiBAQCAtMjAxMiw3ICsyMDEyLDcgQEAgc3RhdGljIHZvaWQgYWxjODg5X2ZpeHVwX21iYTExX3Zy ZWYoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCj4gIHN0YXRpYyB2b2lkIGFsYzg4OV9maXh1cF9t YmEyMV92cmVmKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLAo+ICAJCQkJICAgIGNvbnN0IHN0cnVj dCBoZGFfZml4dXAgKmZpeCwgaW50IGFjdGlvbikKPiAgewo+IC0Jc3RhdGljIGhkYV9uaWRfdCBu aWRzWzJdID0geyAweDE4LCAweDE5IH07Cj4gKwlzdGF0aWMgY29uc3QgaGRhX25pZF90IG5pZHNb XSA9IHsgMHgxOCwgMHgxOSB9Owo+ICAKPiAgCWlmIChhY3Rpb24gPT0gSERBX0ZJWFVQX0FDVF9J TklUKQo+ICAJCWFsYzg4OV9maXh1cF9tYWNfcGlucyhjb2RlYywgbmlkcywgQVJSQVlfU0laRShu aWRzKSk7Cj4gQEAgLTIwOTQsNyArMjA5NCw3IEBAIHN0YXRpYyB2b2lkIGFsYzEyMjBfZml4dXBf Y2xldm9fcDk1MChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKPiAgCQkJCSAgICAgY29uc3Qgc3Ry dWN0IGhkYV9maXh1cCAqZml4LAo+ICAJCQkJICAgICBpbnQgYWN0aW9uKQo+ICB7Cj4gLQloZGFf bmlkX3QgY29ubjFbMV0gPSB7IDB4MGMgfTsKPiArCXN0YXRpYyBjb25zdCBoZGFfbmlkX3QgY29u bjFbXSA9IHsgMHgwYyB9Owo+ICAKPiAgCWlmIChhY3Rpb24gIT0gSERBX0ZJWFVQX0FDVF9QUkVf UFJPQkUpCj4gIAkJcmV0dXJuOwo+IEBAIC0yMTAzLDggKzIxMDMsOCBAQCBzdGF0aWMgdm9pZCBh bGMxMjIwX2ZpeHVwX2NsZXZvX3A5NTAoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCj4gIAkvKiBX ZSB0aGVyZWZvcmUgd2FudCB0byBtYWtlIHN1cmUgMHgxNCAoZnJvbnQgaGVhZHBob25lKSBhbmQK PiAgCSAqIDB4MWIgKHNwZWFrZXJzKSB1c2UgdGhlIHN0ZXJlbyBEQUMgMHgwMgo+ICAJICovCj4g LQlzbmRfaGRhX292ZXJyaWRlX2Nvbm5fbGlzdChjb2RlYywgMHgxNCwgMSwgY29ubjEpOwo+IC0J c25kX2hkYV9vdmVycmlkZV9jb25uX2xpc3QoY29kZWMsIDB4MWIsIDEsIGNvbm4xKTsKPiArCXNu ZF9oZGFfb3ZlcnJpZGVfY29ubl9saXN0KGNvZGVjLCAweDE0LCBBUlJBWV9TSVpFKGNvbm4xKSwg Y29ubjEpOwo+ICsJc25kX2hkYV9vdmVycmlkZV9jb25uX2xpc3QoY29kZWMsIDB4MWIsIEFSUkFZ X1NJWkUoY29ubjEpLCBjb25uMSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGFsY19maXh1cF9o ZWFkc2V0X21vZGVfbm9faHBfbWljKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLAo+IEBAIC01MjQz LDcgKzUyNDMsNyBAQCBzdGF0aWMgdm9pZCBhbGNfZml4dXBfdHB0NDcwX2RvY2soc3RydWN0IGhk YV9jb2RlYyAqY29kZWMsCj4gIAkgKiB0aGUgc3BlYWtlciBvdXRwdXQgYmVjb21lcyB0b28gbG93 IGJ5IHNvbWUgcmVhc29uIG9uIFRoaW5rcGFkcyB3aXRoCj4gIAkgKiBBTEMyOTggY29kZWMKPiAg CSAqLwo+IC0Jc3RhdGljIGhkYV9uaWRfdCBwcmVmZXJyZWRfcGFpcnNbXSA9IHsKPiArCXN0YXRp YyBjb25zdCBoZGFfbmlkX3QgcHJlZmVycmVkX3BhaXJzW10gPSB7Cj4gIAkJMHgxNCwgMHgwMywg MHgxNywgMHgwMiwgMHgyMSwgMHgwMiwKPiAgCQkwCj4gIAl9Owo+IEBAIC01NTE1LDkgKzU1MTUs OSBAQCBzdGF0aWMgdm9pZCBhbGMyOTBfZml4dXBfbW9ub19zcGVha2VycyhzdHJ1Y3QgaGRhX2Nv ZGVjICpjb2RlYywKPiAgCQkvKiBEQUMgbm9kZSAweDAzIGlzIGdpdmluZyBtb25vIG91dHB1dC4g V2UgdGhlcmVmb3JlIHdhbnQgdG8KPiAgCQkgICBtYWtlIHN1cmUgMHgxNCAoZnJvbnQgc3BlYWtl cikgYW5kIDB4MTUgKGhlYWRwaG9uZXMpIHVzZSB0aGUKPiAgCQkgICBzdGVyZW8gREFDLCB3aGls ZSBsZWF2aW5nIDB4MTcgKGJhc3Mgc3BlYWtlcikgZm9yIG5vZGUgMHgwMy4gKi8KPiAtCQloZGFf bmlkX3QgY29ubjFbMl0gPSB7IDB4MGMgfTsKPiAtCQlzbmRfaGRhX292ZXJyaWRlX2Nvbm5fbGlz dChjb2RlYywgMHgxNCwgMSwgY29ubjEpOwo+IC0JCXNuZF9oZGFfb3ZlcnJpZGVfY29ubl9saXN0 KGNvZGVjLCAweDE1LCAxLCBjb25uMSk7Cj4gKwkJc3RhdGljIGNvbnN0IGhkYV9uaWRfdCBjb25u MVtdID0geyAweDBjIH07Cj4gKwkJc25kX2hkYV9vdmVycmlkZV9jb25uX2xpc3QoY29kZWMsIDB4 MTQsIEFSUkFZX1NJWkUoY29ubjEpLCBjb25uMSk7Cj4gKwkJc25kX2hkYV9vdmVycmlkZV9jb25u X2xpc3QoY29kZWMsIDB4MTUsIEFSUkFZX1NJWkUoY29ubjEpLCBjb25uMSk7Cj4gIAl9Cj4gIH0K PiAgCj4gQEAgLTU1MzIsOCArNTUzMiw4IEBAIHN0YXRpYyB2b2lkIGFsYzI5OF9maXh1cF9zcGVh a2VyX3ZvbHVtZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKPiAgCQkgICBQaW4gQ29tcGxleCks IHNpbmNlIE5vZGUgMHgwMiBoYXMgQW1wLW91dCBjYXBzLCB3ZSBjYW4gYWRqdXN0Cj4gIAkJICAg c3BlYWtlcidzIHZvbHVtZSBub3cuICovCj4gIAo+IC0JCWhkYV9uaWRfdCBjb25uMVsxXSA9IHsg MHgwYyB9Owo+IC0JCXNuZF9oZGFfb3ZlcnJpZGVfY29ubl9saXN0KGNvZGVjLCAweDE3LCAxLCBj b25uMSk7Cj4gKwkJc3RhdGljIGNvbnN0IGhkYV9uaWRfdCBjb25uMVtdID0geyAweDBjIH07Cj4g KwkJc25kX2hkYV9vdmVycmlkZV9jb25uX2xpc3QoY29kZWMsIDB4MTcsIEFSUkFZX1NJWkUoY29u bjEpLCBjb25uMSk7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTU1NDIsOCArNTU0Miw4IEBAIHN0YXRp YyB2b2lkIGFsYzI5NV9maXh1cF9kaXNhYmxlX2RhYzMoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMs Cj4gIAkJCQkgICAgICBjb25zdCBzdHJ1Y3QgaGRhX2ZpeHVwICpmaXgsIGludCBhY3Rpb24pCj4g IHsKPiAgCWlmIChhY3Rpb24gPT0gSERBX0ZJWFVQX0FDVF9QUkVfUFJPQkUpIHsKPiAtCQloZGFf bmlkX3QgY29ublsyXSA9IHsgMHgwMiwgMHgwMyB9Owo+IC0JCXNuZF9oZGFfb3ZlcnJpZGVfY29u bl9saXN0KGNvZGVjLCAweDE3LCAyLCBjb25uKTsKPiArCQlzdGF0aWMgY29uc3QgaGRhX25pZF90 IGNvbm5bXSA9IHsgMHgwMiwgMHgwMyB9Owo+ICsJCXNuZF9oZGFfb3ZlcnJpZGVfY29ubl9saXN0 KGNvZGVjLCAweDE3LCBBUlJBWV9TSVpFKGNvbm4pLCBjb25uKTsKPiAgCX0KPiAgfQo+ICAKPiBA QCAtNTU1Miw4ICs1NTUyLDggQEAgc3RhdGljIHZvaWQgYWxjMjg1X2ZpeHVwX3NwZWFrZXIyX3Rv X2RhYzEoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCj4gIAkJCQkJICBjb25zdCBzdHJ1Y3QgaGRh X2ZpeHVwICpmaXgsIGludCBhY3Rpb24pCj4gIHsKPiAgCWlmIChhY3Rpb24gPT0gSERBX0ZJWFVQ X0FDVF9QUkVfUFJPQkUpIHsKPiAtCQloZGFfbmlkX3QgY29ublsxXSA9IHsgMHgwMiB9Owo+IC0J CXNuZF9oZGFfb3ZlcnJpZGVfY29ubl9saXN0KGNvZGVjLCAweDE3LCAxLCBjb25uKTsKPiArCQlz dGF0aWMgY29uc3QgaGRhX25pZF90IGNvbm5bXSA9IHsgMHgwMiB9Owo+ICsJCXNuZF9oZGFfb3Zl cnJpZGVfY29ubl9saXN0KGNvZGVjLCAweDE3LCBBUlJBWV9TSVpFKGNvbm4pLCBjb25uKTsKPiAg CX0KPiAgfQo+ICAKPiBAQCAtNTYzMSw3ICs1NjMxLDcgQEAgc3RhdGljIHZvaWQgYWxjMjc0X2Zp eHVwX2JpbmRfZGFjcyhzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKPiAgCQkJCSAgICBjb25zdCBz dHJ1Y3QgaGRhX2ZpeHVwICpmaXgsIGludCBhY3Rpb24pCj4gIHsKPiAgCXN0cnVjdCBhbGNfc3Bl YyAqc3BlYyA9IGNvZGVjLT5zcGVjOwo+IC0Jc3RhdGljIGhkYV9uaWRfdCBwcmVmZXJyZWRfcGFp cnNbXSA9IHsKPiArCXN0YXRpYyBjb25zdCBoZGFfbmlkX3QgcHJlZmVycmVkX3BhaXJzW10gPSB7 Cj4gIAkJMHgyMSwgMHgwMywgMHgxYiwgMHgwMywgMHgxNiwgMHgwMiwKPiAgCQkwCj4gIAl9Owo+ IGRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3NpZ21hdGVsLmMgYi9zb3VuZC9wY2kv aGRhL3BhdGNoX3NpZ21hdGVsLmMKPiBpbmRleCA5YjgxNmIzNzc1NDcuLmE2MDhkMDQ4NmFlNCAx MDA2NDQKPiAtLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3NpZ21hdGVsLmMKPiArKysgYi9zb3Vu ZC9wY2kvaGRhL3BhdGNoX3NpZ21hdGVsLmMKPiBAQCAtNzk1LDcgKzc5NSw3IEBAIHN0YXRpYyBp bnQgZmluZF9tdXRlX2xlZF9jZmcoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGludCBkZWZhdWx0 X3BvbGFyaXR5KQo+ICBzdGF0aWMgYm9vbCBoYXNfYnVpbHRpbl9zcGVha2VyKHN0cnVjdCBoZGFf Y29kZWMgKmNvZGVjKQo+ICB7Cj4gIAlzdHJ1Y3Qgc2lnbWF0ZWxfc3BlYyAqc3BlYyA9IGNvZGVj LT5zcGVjOwo+IC0JaGRhX25pZF90ICpuaWRfcGluOwo+ICsJY29uc3QgaGRhX25pZF90ICpuaWRf cGluOwo+ICAJaW50IG5pZHMsIGk7Cj4gIAo+ICAJaWYgKHNwZWMtPmdlbi5hdXRvY2ZnLmxpbmVf b3V0X3R5cGUgPT0gQVVUT19QSU5fU1BFQUtFUl9PVVQpIHsKPiBAQCAtMjE4Miw3ICsyMTgyLDcg QEAgc3RhdGljIHZvaWQgaHBfZW52eV90c19maXh1cF9kYWNfYmluZChzdHJ1Y3QgaGRhX2NvZGVj ICpjb2RlYywKPiAgCQkJCQkgICAgaW50IGFjdGlvbikKPiAgewo+ICAJc3RydWN0IHNpZ21hdGVs X3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKPiAtCXN0YXRpYyBoZGFfbmlkX3QgcHJlZmVycmVk X3BhaXJzW10gPSB7Cj4gKwlzdGF0aWMgY29uc3QgaGRhX25pZF90IHByZWZlcnJlZF9wYWlyc1td ID0gewo+ICAJCTB4ZCwgMHgxMywKPiAgCQkwCj4gIAl9Owo+IGRpZmYgLS1naXQgYS9zb3VuZC9w Y2kvaGRhL3BhdGNoX3ZpYS5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF92aWEuYwo+IGluZGV4IDI5 ZGNkYjhiMzZkYi4uYjQwZDAxZTAxODMyIDEwMDY0NAo+IC0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0 Y2hfdmlhLmMKPiArKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3ZpYS5jCj4gQEAgLTEwMzgsOCAr MTAzOCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjaV9xdWlyayB2dDIwMDJwX2ZpeHVw c1tdID0gewo+ICAgKi8KPiAgc3RhdGljIHZvaWQgZml4X3Z0MTgwMl9jb25uZWN0aW9ucyhzdHJ1 Y3QgaGRhX2NvZGVjICpjb2RlYykKPiAgewo+IC0Jc3RhdGljIGhkYV9uaWRfdCBjb25uXzI0W10g PSB7IDB4MTQsIDB4MWMgfTsKPiAtCXN0YXRpYyBoZGFfbmlkX3QgY29ubl8zM1tdID0geyAweDFj IH07Cj4gKwlzdGF0aWMgY29uc3QgaGRhX25pZF90IGNvbm5fMjRbXSA9IHsgMHgxNCwgMHgxYyB9 Owo+ICsJc3RhdGljIGNvbnN0IGhkYV9uaWRfdCBjb25uXzMzW10gPSB7IDB4MWMgfTsKPiAgCj4g IAlzbmRfaGRhX292ZXJyaWRlX2Nvbm5fbGlzdChjb2RlYywgMHgyNCwgQVJSQVlfU0laRShjb25u XzI0KSwgY29ubl8yNCk7Cj4gIAlzbmRfaGRhX292ZXJyaWRlX2Nvbm5fbGlzdChjb2RlYywgMHgz MywgQVJSQVlfU0laRShjb25uXzMzKSwgY29ubl8zMyk7Cj4gLS0gCj4gMi4yMC4xCj4gCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFsc2EtZGV2ZWwgbWFp bGluZyBsaXN0CkFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9yZwpodHRwczovL21haWxtYW4uYWxz YS1wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2ZWwK