From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759535AbYJVVH6 (ORCPT ); Wed, 22 Oct 2008 17:07:58 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754215AbYJVVHs (ORCPT ); Wed, 22 Oct 2008 17:07:48 -0400 Received: from an-out-0708.google.com ([209.85.132.245]:56512 "EHLO an-out-0708.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753102AbYJVVHq (ORCPT ); Wed, 22 Oct 2008 17:07:46 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type; b=DCRSf89LSAKIy1Ntb/GfPKV9Y5YUvP6cPoHCXx7WyFCPpQo1bP/0iltenSJDazxjlr nOTnDDXlCmOs4aSh/4guyRh5b3ABC1RZlwzTKcaMM1i3eoQ+1PGIlwj4OfG3hT6L1I7I vbXqGWtdU9NuvwyPqLJKxA5nKH2GclwDitF3c= Message-ID: Date: Wed, 22 Oct 2008 23:07:42 +0200 From: "Markus Rechberger" To: "Linux Kernel Mailing List" , em28xx Subject: [PATCH 4/7] adding sharp s921 ISDB-T driver Cc: acano@fastmail.fm, "Andre Kelmanson" , "Bouwsma Barry" , "Dan Kreiser" , "Frank Neuber" , "Jelle de Jong" , "John Stowers" , "Lukas Kuna" , "Stefan Vonolfen" , "Stephan Berberig" , "Thomas Giesecke" , "Vitaly Wool" , "Zhenyu Wang" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_25554_15386644.1224709662467" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ------=_Part_25554_15386644.1224709662467 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline s921_module.c: wrapper for the dvb frontend interface s921_core.c: core s921 1seg ISDB-T driver, everything is set to auto as much as possible in order to not require certain parameters which currently cannot be passed to the ISDB-T chip. ISDB-T support can be tested using dvbscan, dvbstream/snoop and mplayer Tested 1seg H264/aac stream with this driver using a custom linux ISDB-T player ------=_Part_25554_15386644.1224709662467 Content-Type: text/x-diff; name=em28xx-04.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fmmgha6l0 Content-Disposition: attachment; filename=em28xx-04.diff Y29tbWl0IGQ1YjA0M2UxNmJhZTk3MmM0ZmFlOGJlYzc2ZDZiYTExYmNkZmZlNzQKQXV0aG9yOiBN YXJrdXMgUmVjaGJlcmdlciA8bXJlY2hiZXJnZXJAc3VuZHRlay5kZT4KRGF0ZTogICBXZWQgT2N0 IDIyIDIyOjA4OjIzIDIwMDggKzAyMDAKCiAgICBhZGRpbmcgc2hhcnAgczkyMSBJU0RCLVQgZHJp dmVyCiAgICAKICAgIHM5MjFfbW9kdWxlLmM6CiAgICB3cmFwcGVyIGZvciB0aGUgZHZiIGZyb250 ZW5kIGludGVyZmFjZQogICAgczkyMV9jb3JlLmM6CiAgICBjb3JlIHM5MjEgMXNlZyBJU0RCLVQg ZHJpdmVyLCBldmVyeXRoaW5nIGlzIHNldCB0byBhdXRvIGFzIG11Y2ggYXMgcG9zc2libGUKICAg IGluIG9yZGVyIHRvIG5vdCByZXF1aXJlIGNlcnRhaW4gcGFyYW1ldGVycyB3aGljaCBjdXJyZW50 bHkgY2Fubm90IGJlIHBhc3NlZAogICAgdG8gdGhlIElTREItVCBjaGlwLgogICAgCiAgICBJU0RC LVQgc3VwcG9ydCBjYW4gYmUgdGVzdGVkIHVzaW5nIGR2YnNjYW4sIGR2YnN0cmVhbS9zbm9vcCBh bmQgbXBsYXllcgogICAgVGVzdGVkIDFzZWcgSDI2NC9hYWMgc3RyZWFtIHdpdGggdGhpcyBkcml2 ZXIgdXNpbmcgYSBjdXN0b20gbGludXggSVNEQi1UIHBsYXllcgoKU2lnbmVkLW9mZi1ieTogTWFy a3VzIFJlY2hiZXJnZXIgPG1yZWNoYmVyZ2VyQHN1bmR0ZWsuZGU+CgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS92aWRlby9lbXBpYS9zaGFycC9NYWtlZmlsZSBiL2RyaXZlcnMvbWVkaWEvdmlk ZW8vZW1waWEvc2hhcnAvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNTEwNTYxMQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW1waWEv c2hhcnAvTWFrZWZpbGUKQEAgLTAsMCArMSwzIEBACitzOTIxLW9ianMgOj0gczkyMV9tb2R1bGUu byBzOTIxX2NvcmUubworCitvYmotbSArPSBzOTIxLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVk aWEvdmlkZW8vZW1waWEvc2hhcnAvczkyMV9jb3JlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2Vt cGlhL3NoYXJwL3M5MjFfY29yZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjFhNzI3MTcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtcGlhL3No YXJwL3M5MjFfY29yZS5jCkBAIC0wLDAgKzEsNTg2IEBACisvKgorICogRHJpdmVyIGZvciBTaGFy cCBzOTIxIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBNYXJrdXMgUmVjaGJlcmdl ciA8bXJlY2hiZXJnZXJAc3VuZHRlay5kZT4KKyAqCisgKi8KKworCisjaW5jbHVkZSA8bGludXgv a2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSAiczkyMV9jb3Jl LmgiCisKK3N0YXRpYyBpbnQgczkyMV9pc2RiX2luaXQoc3RydWN0IHM5MjFfaXNkYl90ICpkZXYp Oworc3RhdGljIGludCBzOTIxX2lzZGJfc2V0X3BhcmFtZXRlcnMoc3RydWN0IHM5MjFfaXNkYl90 ICpkZXYsIHN0cnVjdCBzOTIxX2lzZGJfdF90cmFuc21pc3Npb25fbW9kZV9wYXJhbXMgKnBhcmFt cyk7CitzdGF0aWMgaW50IHM5MjFfaXNkYl90dW5lKHN0cnVjdCBzOTIxX2lzZGJfdCAqZGV2LCBz dHJ1Y3QgczkyMV9pc2RiX3RfdHVuZV9wYXJhbXMgKnBhcmFtcyk7CitzdGF0aWMgaW50IHM5MjFf aXNkYl9nZXRfc3RhdHVzKHN0cnVjdCBzOTIxX2lzZGJfdCAqZGV2LCB2b2lkICpkYXRhKTsKKwor c3RhdGljIHU4IGluaXRfdGFibGVbXT17IDB4MDEsIDB4NDAsIDB4MDIsIDB4MDAsIDB4MDMsIDB4 NDAsIDB4MDQsIDB4MDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNSwgMHgwMCwgMHgw NiwgMHgwMCwgMHgwNywgMHgwMCwgMHgwOCwgMHgwMCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAweDA5LCAweDAwLCAweDBhLCAweDAwLCAweDBiLCAweDVhLCAweDBjLCAweDAwLAorICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MGQsIDB4MDAsIDB4MGYsIDB4MDAsIDB4MTMsIDB4MWIsIDB4 MTQsIDB4ODAsCisgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNSwgMHg0MCwgMHgxNywgMHg3 MCwgMHgxOCwgMHgwMSwgMHgxOSwgMHgxMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDFh LCAweDAxLCAweDFiLCAweDEyLCAweDFjLCAweGEwLCAweDFkLCAweDAwLAorICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MWUsIDB4MGEsIDB4MWYsIDB4MDgsIDB4MjAsIDB4NDAsIDB4MjEsIDB4 ZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMiwgMHg0YywgMHgyMywgMHg0ZSwgMHgy NCwgMHg0YywgMHgyNSwgMHgwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDI2LCAweDAw LCAweDI3LCAweGY0LCAweDI4LCAweDYwLCAweDI5LCAweDg4LAorICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MmEsIDB4NDAsIDB4MmIsIDB4NDAsIDB4MmMsIDB4ZmYsIDB4MmQsIDB4MDAsCisg ICAgICAgICAgICAgICAgICAgICAgICAgMHgyZSwgMHhmZiwgMHgyZiwgMHgwMCwgMHgzMCwgMHgy MCwgMHgzMSwgMHgwNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDMyLCAweDBjLCAweDM0 LCAweDBmLCAweDM3LCAweGZlLCAweDM4LCAweDAwLAorICAgICAgICAgICAgICAgICAgICAgICAg IDB4MzksIDB4NjMsIDB4M2EsIDB4MTAsIDB4M2IsIDB4MTAsIDB4NDcsIDB4MDAsCisgICAgICAg ICAgICAgICAgICAgICAgICAgMHg0OSwgMHhlNSwgMHg0YiwgMHgwMCwgMHg1MCwgMHhjMCwgMHg1 MiwgMHgyMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDU0LCAweDVhLCAweDU1LCAweDVi LCAweDU2LCAweDQwLCAweDU3LCAweDcwLAorICAgICAgICAgICAgICAgICAgICAgICAgIDB4NWMs IDB4NTAsIDB4NWQsIDB4MDAsIDB4NjIsIDB4MTcsIDB4NjMsIDB4MmYsCisgICAgICAgICAgICAg ICAgICAgICAgICAgMHg2NCwgMHg2ZiwgMHg2OCwgMHgwMCwgMHg2OSwgMHg4OSwgMHg2YSwgMHgw MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDZiLCAweDAwLCAweDZjLCAweDAwLCAweDZk LCAweDAwLCAweDZlLCAweDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzAsIDB4MDAs IDB4NzEsIDB4MDAsIDB4NzUsIDB4MDAsIDB4NzYsIDB4MzAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgMHg3NywgMHgwMSwgMHhhZiwgMHgwMCwgMHhiMCwgMHhhMCwgMHhiMiwgMHgzZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAweGIzLCAweDI1LCAweGI0LCAweDhiLCAweGI1LCAweDRi LCAweGI2LCAweDNmLAorICAgICAgICAgICAgICAgICAgICAgICAgIDB4YjcsIDB4ZmYsIDB4Yjgs IDB4ZmYsIDB4YjksIDB4ZmMsIDB4YmEsIDB4MDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg MHhiYiwgMHgwMCwgMHhiYywgMHgwMCwgMHhkMCwgMHgzMCwgMHhlNCwgMHg4NCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAweGYwLCAweDQ4LCAweGYxLCAweDE5LCAweGYyLCAweDVhLCAweGYz LCAweDhlLAorICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZjQsIDB4MmQsIDB4ZjUsIDB4MDcs IDB4ZjYsIDB4NWEsIDB4ZjcsIDB4YmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgMHhmOCwg MHhkNyB9OworCitzdGF0aWMgdTggY190YWJsZVtdPXsgMHg1OCwgMHg4YSwgMHg3YiwgMHg1OSwg MHg4YywgMHg3YiwgMHg1YSwgMHg4ZSwgMHg1YiwKKyAgICAgICAgICAgICAgICAgICAgICAweDVi LCAweDkwLCAweDViLCAweDVjLCAweDkyLCAweDViLCAweDVkLCAweDk0LCAweDViLAorICAgICAg ICAgICAgICAgICAgICAgIDB4NWUsIDB4OTYsIDB4NWIsIDB4NWYsIDB4OTgsIDB4M2IsIDB4NjAs IDB4OWEsIDB4M2IsCisgICAgICAgICAgICAgICAgICAgICAgMHg2MSwgMHg5YywgMHgzYiwgMHg2 MiwgMHg5ZSwgMHgzYiwgMHg2MywgMHhhMCwgMHgzYiwKKyAgICAgICAgICAgICAgICAgICAgICAw eDY0LCAweGEyLCAweDFiLCAweDY1LCAweGE0LCAweDFiLCAweDY2LCAweGE2LCAweDFiLAorICAg ICAgICAgICAgICAgICAgICAgIDB4NjcsIDB4YTgsIDB4MWIsIDB4NjgsIDB4YWEsIDB4MWIsIDB4 NjksIDB4YWMsIDB4MWIsCisgICAgICAgICAgICAgICAgICAgICAgMHg2YSwgMHhhZSwgMHgxYiwg MHg2YiwgMHhiMCwgMHgxYiwgMHg2YywgMHhiMiwgMHgxYiwKKyAgICAgICAgICAgICAgICAgICAg ICAweDZkLCAweGI0LCAweGZiLCAweDZlLCAweGI2LCAweGZiLCAweDZmLCAweGI4LCAweGZiLAor ICAgICAgICAgICAgICAgICAgICAgIDB4NzAsIDB4YmEsIDB4ZmIsIDB4NzEsIDB4YmMsIDB4ZGIs IDB4NzIsIDB4YmUsIDB4ZGIsCisgICAgICAgICAgICAgICAgICAgICAgMHg3MywgMHhjMCwgMHhk YiwgMHg3NCwgMHhjMiwgMHhkYiwgMHg3NSwgMHhjNCwgMHhkYiwKKyAgICAgICAgICAgICAgICAg ICAgICAweDc2LCAweGM2LCAweGRiLCAweDc3LCAweGM4LCAweGJiLCAweDc4LCAweGNhLCAweGJi LAorICAgICAgICAgICAgICAgICAgICAgIDB4NzksIDB4Y2MsIDB4YmIsIDB4N2EsIDB4Y2UsIDB4 YmIsIDB4N2IsIDB4ZDAsIDB4YmIsCisgICAgICAgICAgICAgICAgICAgICAgMHg3YywgMHhkMiwg MHhiYiwgMHg3ZCwgMHhkNCwgMHhiYiwgMHg3ZSwgMHhkNiwgMHhiYiwKKyAgICAgICAgICAgICAg ICAgICAgICAweDdmLCAweGQ4LCAweGJiLCAweDgwLCAweGRhLCAweDliLCAweDgxLCAweGRjLCAw eDliLAorICAgICAgICAgICAgICAgICAgICAgIDB4ODIsIDB4ZGUsIDB4OWIsIDB4ODMsIDB4ZTAs IDB4OWIsIDB4ODQsIDB4ZTIsIDB4OWIsCisgICAgICAgICAgICAgICAgICAgICAgMHg4NSwgMHhl NCwgMHg5YiwgMHg4NiwgMHhlNiwgMHg5YiwgMHg4NywgMHhlOCwgMHg5YiwKKyAgICAgICAgICAg ICAgICAgICAgICAweDg4LCAweGVhLCAweDliLCAweDg5LCAweGVjLCAweDliIH07CisKK2ludCBz OTIxX2lzZGJfY21kKHN0cnVjdCBzOTIxX2lzZGJfdCAqZGV2LCB1MzIgY21kLCB2b2lkICpkYXRh KSB7CisJc3dpdGNoKGNtZCkgeworCWNhc2UgSVNEQl9UX0NNRF9JTklUOgorCQlzOTIxX2lzZGJf aW5pdChkZXYpOworCQlicmVhazsKKwljYXNlIElTREJfVF9DTURfU0VUX1BBUkFNOgorCQlzOTIx X2lzZGJfc2V0X3BhcmFtZXRlcnMoZGV2LCBkYXRhKTsKKwkJYnJlYWs7CisJY2FzZSBJU0RCX1Rf Q01EX1RVTkU6CisJCXM5MjFfaXNkYl90dW5lKGRldiwgZGF0YSk7CisJCWJyZWFrOworCWNhc2Ug SVNEQl9UX0NNRF9HRVRfU1RBVFVTOgorCQlzOTIxX2lzZGJfZ2V0X3N0YXR1cyhkZXYsIGRhdGEp OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwcmludGsoInVuaGFuZGxlZCBjb21tYW5kXG4iKTsK KwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHM5MjFf aXNkYl9pbml0KHN0cnVjdCBzOTIxX2lzZGJfdCAqZGV2KSB7CisJdW5zaWduZWQgaW50IGk7CisJ dW5zaWduZWQgaW50IHJldDsKKyAgICAgICAgcHJpbnRrKCJpc2RiX2luaXRcbiIpOworCWZvciAo aSA9IDA7IGkgPCBzaXplb2YoaW5pdF90YWJsZSk7IGkrPTIpIHsKKwkJcmV0ID0gZGV2LT5pMmNf d3JpdGUoZGV2LT5wcml2X2RldiwgaW5pdF90YWJsZVtpXSwgaW5pdF90YWJsZVtpKzFdKTsKKwkJ aWYgKHJldCAhPSAwKSB7CisJCQlwcmludGsoImkyYyB3cml0ZSBmYWlsZWRcbiIpOworCQkJcmV0 dXJuIHJldDsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzOTIxX2lzZGJf c2V0X3BhcmFtZXRlcnMoc3RydWN0IHM5MjFfaXNkYl90ICpkZXYsIHN0cnVjdCBzOTIxX2lzZGJf dF90cmFuc21pc3Npb25fbW9kZV9wYXJhbXMgKnBhcmFtcykgeworCisJaW50IHJldDsKKwkvKiBh dXRvIGlzIHN1ZmZpY2llbnQgZm9yIG5vdywgbGF0ZXJvbiB0aGlzIHNob3VsZCBiZSByZWZsZWN0 ZWQgaW4gYW4gZXh0cmEgaW50ZXJmYWNlICovCisKKyNpZiAwCisJdTggbW9kX2IyID0gMDsKKwl1 OCBtb2RfYjMgPSAwOworCXU4IG1vZF9iNCA9IDA7CisJdTggbW9kX2I1ID0gMDsKKwl1OCBtb2Rf YjYgPSAwOworCXU4IG1vZF9iNyA9IDA7CisJdTggbW9kX2I4ID0gMDsKKwkvKiBMQVlFUiBBIFNl dHVwICovCisKKwlzd2l0Y2ggKHBhcmFtcy0+bGF5ZXJfYV9jYXJyaWVyX21vZHVsYXRpb24pIHsK KwljYXNlIElTREJfVF9MQV9DTV9EUVBTSzoKKwkJbW9kX2IzIHw9IDA8PDU7CisJCWJyZWFrOwor CWNhc2UgSVNEQl9UX0xBX0NNX1FQU0s6CisJCW1vZF9iMyB8PSAxPDw1OworCQlicmVhazsKKwlj YXNlIElTREJfVF9MQV9DTV8xNlFBTToKKwkJbW9kX2IzIHw9IDI8PDU7CisJCWJyZWFrOworCWNh c2UgSVNEQl9UX0xBX0NNXzY0UUFNOgorCQltb2RfYjMgfD0gMzw8NTsKKwkJYnJlYWs7CisJY2Fz ZSBJU0RCX1RfTEFfQ01fTk9MQVlFUjoKKwkJbW9kX2IzIHw9IDc8PDU7CisJCWJyZWFrOworCWRl ZmF1bHQ6CisJCXByaW50aygiaW52YWxpZCBjYXJyaWVyIG1vZHVsYXRpb25cbiIpOworCQlyZXR1 cm4gLUVJTlZBTDsKKwl9CisKKwlzd2l0Y2gocGFyYW1zLT5sYXllcl9hX2NvZGVfcmF0ZSkgewor CWNhc2UgSVNEQl9UX0xBX0NSXzFfMjoKKwkJbW9kX2IzIHw9IDA8PDI7CisJCWJyZWFrOworCWNh c2UgSVNEQl9UX0xBX0NSXzJfMzoKKwkJbW9kX2IzIHw9IDE8PDI7CisJCWJyZWFrOworCWNhc2Ug SVNEQl9UX0xBX0NSXzNfNDoKKwkJbW9kX2IzIHw9IDI8PDI7CisJCWJyZWFrOworCWNhc2UgSVNE Ql9UX0xBX0NSXzVfNjoKKwkJbW9kX2IzIHw9IDM8PDI7CisJCWJyZWFrOworCWNhc2UgSVNEQl9U X0xBX0NSXzdfODoKKwkJbW9kX2IzIHw9IDQ8PDI7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXBy aW50aygiaW52YWxpZCBjb2RlcmF0ZVxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXN3 aXRjaCAocGFyYW1zLT5sYXllcl9hX21vZGUpIHsKKwljYXNlIElTREJfVF9MQV9NT0RFXzE6CisJ CXN3aXRjaChwYXJhbXMtPmxheWVyX2FfdGltZV9pbnRlcmxlYXZlKSB7CisJCWNhc2UgSVNEQl9U X0xBX1RJXzA6CisJCQltb2RfYjMgfD0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZF9i NCB8PSAwOworCQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xBX1RJXzQ6CisJCQltb2RfYjMgfD0g MTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZF9iNCB8PSAwOworCQkJYnJlYWs7CisJCWNh c2UgSVNEQl9UX0xBX1RJXzg6CisJCQltb2RfYjMgfD0gMjsKKyAgICAgICAgICAgICAgICAgICAg ICAgIG1vZF9iNCB8PSAwOworCQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xBX1RJXzE2OgorCQkJ bW9kX2IzIHw9IDM7CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RfYjQgfD0gMDsKKwkJCWJy ZWFrOworCQljYXNlIElTREJfVF9MQV9USV8zMjoKKwkJCW1vZF9iMyB8PSAwOworICAgICAgICAg ICAgICAgICAgICAgICAgbW9kX2I0IHw9IDE8PDc7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJ CXByaW50aygiaW52YWxpZCBsYXllciBhIHRpbWUgaW50ZXJsZWF2ZVxuIik7CisJCQlyZXR1cm4g LUVJTlZBTDsKKwkJfQorCQlicmVhazsKKwljYXNlIElTREJfVF9MQV9NT0RFXzI6CisJCXN3aXRj aChwYXJhbXMtPmxheWVyX2FfdGltZV9pbnRlcmxlYXZlKSB7CisJCWNhc2UgSVNEQl9UX0xBX1RJ XzA6CisJCQltb2RfYjMgfD0gMDsKKwkJCW1vZF9iNCB8PSAwOworCQkJYnJlYWs7CisJCWNhc2Ug SVNEQl9UX0xBX1RJXzI6CisJCQltb2RfYjMgfD0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAg IG1vZF9iNCB8PSAwOworCQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xBX1RJXzQ6CisJCQltb2Rf YjMgfD0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZF9iNCB8PSAwOworCQkJYnJlYWs7 CisJCWNhc2UgSVNEQl9UX0xBX1RJXzg6CisJCQltb2RfYjMgfD0gMzsKKyAgICAgICAgICAgICAg ICAgICAgICAgIG1vZF9iNCB8PSAwOworCQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xBX1RJXzE2 OgorCQkJbW9kX2IzIHw9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RfYjQgfD0gMTw8 NzsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkKKwkJCXByaW50aygiaW52YWxpZCBsYXllciBh IHRpbWUgaW50ZXJsZWF2ZVxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlicmVhazsK KwljYXNlIElTREJfVF9MQV9NT0RFXzM6CisJCXN3aXRjaChwYXJhbXMtPmxheWVyX2FfdGltZV9p bnRlcmxlYXZlKSB7CisJCWNhc2UgSVNEQl9UX0xBX1RJXzA6CisJCQltb2RfYjMgfD0gMDsKKwkJ CW1vZF9iNCB8PSAwOworCQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xBX1RJXzE6CisJCQltb2Rf YjMgfD0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZF9iNCB8PSAwOworCQkJYnJlYWs7 CisJCWNhc2UgSVNEQl9UX0xBX1RJXzI6CisJCQltb2RfYjMgfD0gMjsKKyAgICAgICAgICAgICAg ICAgICAgICAgIG1vZF9iNCB8PSAwOworCQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xBX1RJXzQ6 CisJCQltb2RfYjMgfD0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZF9iNCB8PSAwOwor CQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xBX1RJXzg6CisJCQltb2RfYjMgfD0gMDsKKyAgICAg ICAgICAgICAgICAgICAgICAgIG1vZF9iNCB8PSAxPDw3OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6 CisJCQlwcmludGsoImludmFsaWQgbGF5ZXIgYSB0aW1lIGludGVybGVhdmVcbiIpOworCQkJcmV0 dXJuIC1FSU5WQUw7CisJCX0KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcHJpbnRrKCJpbnZhbGlk IGxheWVyIG1vZGVcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkKKwkvKiBMQVlFUiBC IFNldHVwICovCisJc3dpdGNoIChwYXJhbXMtPmxheWVyX2JfY2Fycmllcl9tb2R1bGF0aW9uKSB7 CisJY2FzZSBJU0RCX1RfTEJfQ01fRFFQU0s6CisJCW1vZF9iNCB8PSAwOworCQlicmVhazsKKwlj YXNlIElTREJfVF9MQl9DTV9RUFNLOgorCQltb2RfYjQgfD0gMTsKKwkJYnJlYWs7CisJY2FzZSBJ U0RCX1RfTEJfQ01fMTZRQU06CisJCW1vZF9iNCB8PSAyOworCQlicmVhazsKKwljYXNlIElTREJf VF9MQl9DTV82NFFBTToKKwkJbW9kX2I0IHw9IDM7CisJCWJyZWFrOworCWNhc2UgSVNEQl9UX0xC X0NNX05PTEFZRVI6CisJCW1vZF9iNCB8PSA3OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1 cm4gLUVJTlZBTDsKKwl9CisKKwlzd2l0Y2gocGFyYW1zLT5sYXllcl9iX2NvZGVfcmF0ZSkgewor CWNhc2UgSVNEQl9UX0xCX0NSXzFfMjoKKwkJbW9kX2I1IHw9IDA8PDU7CisJCWJyZWFrOworCWNh c2UgSVNEQl9UX0xCX0NSXzJfMzoKKwkJbW9kX2I1IHw9IDE8PDU7CisJCWJyZWFrOworCWNhc2Ug SVNEQl9UX0xCX0NSXzNfNDoKKwkJbW9kX2I1IHw9IDI8PDU7CisJCWJyZWFrOworCWNhc2UgSVNE Ql9UX0xCX0NSXzVfNjoKKwkJbW9kX2I1IHw9IDM8PDU7CisJCWJyZWFrOworCWNhc2UgSVNEQl9U X0xCX0NSXzdfODoKKwkJbW9kX2I1IHw9IDQ8PDU7CisJCWJyZWFrOworCWNhc2UgSVNEQl9UX0xC X0NSX05PTEFZRVI6CisJCW1vZF9iNSB8PSA3PDw1OworCQlicmVhazsKKwlkZWZhdWx0OgorCQly ZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzd2l0Y2ggKHBhcmFtcy0+bGF5ZXJfYl9tb2RlKSB7CisJ Y2FzZSBJU0RCX1RfTEJfTU9ERV8xOgorCQlzd2l0Y2gocGFyYW1zLT5sYXllcl9iX3RpbWVfaW50 ZXJsZWF2ZSkgeworCQljYXNlIElTREJfVF9MQl9USV8wOgorCQkJbW9kX2I1IHw9IDA7CisJCQli cmVhazsKKwkJY2FzZSBJU0RCX1RfTEJfVElfNDoKKwkJCW1vZF9iNSB8PSAxPDwyOworCQkJYnJl YWs7CisJCWNhc2UgSVNEQl9UX0xCX1RJXzg6CisJCQltb2RfYjUgfD0gMjw8MjsKKwkJCWJyZWFr OworCQljYXNlIElTREJfVF9MQl9USV8xNjoKKwkJCW1vZF9iNSB8PSAzPDwyOworCQkJYnJlYWs7 CisJCWNhc2UgSVNEQl9UX0xCX1RJXzMyOgorCQkJbW9kX2I1IHw9IDQ8PDI7CisJCQlicmVhazsK KwkJZGVmYXVsdDoKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCWNhc2UgSVNE Ql9UX0xCX01PREVfMjoKKwkJc3dpdGNoKHBhcmFtcy0+bGF5ZXJfYl90aW1lX2ludGVybGVhdmUp IHsKKwkJY2FzZSBJU0RCX1RfTEJfVElfMDoKKwkJCW1vZF9iNSB8PSAwOworCQkJYnJlYWs7CisJ CWNhc2UgSVNEQl9UX0xCX1RJXzI6CisJCQltb2RfYjUgfD0gMTw8MjsKKwkJCWJyZWFrOworCQlj YXNlIElTREJfVF9MQl9USV80OgorCQkJbW9kX2I1IHw9IDI8PDI7CisJCQlicmVhazsKKwkJY2Fz ZSBJU0RCX1RfTEJfVElfODoKKwkJCW1vZF9iNSB8PSAzPDwyOworCQkJYnJlYWs7CisJCWNhc2Ug SVNEQl9UX0xCX1RJXzE2OgorCQkJbW9kX2I1IHw9IDQ8PDI7CisJCQlicmVhazsKKwkJZGVmYXVs dDoKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCWNhc2UgSVNEQl9UX0xCX01P REVfMzoKKwkJc3dpdGNoKHBhcmFtcy0+bGF5ZXJfYl90aW1lX2ludGVybGVhdmUpIHsKKwkJY2Fz ZSBJU0RCX1RfTEJfVElfMDoKKwkJCW1vZF9iNSB8PSAwOworCQkJYnJlYWs7CisJCWNhc2UgSVNE Ql9UX0xCX1RJXzE6CisJCQltb2RfYjUgfD0gMTw8MjsKKwkJCWJyZWFrOworCQljYXNlIElTREJf VF9MQl9USV8yOgorCQkJbW9kX2I1IHw9IDI8PDI7CisJCQlicmVhazsKKwkJY2FzZSBJU0RCX1Rf TEJfVElfNDoKKwkJCW1vZF9iNSB8PSAzPDwyOworCQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xC X1RJXzg6CisJCQltb2RfYjUgfD0gNDw8MjsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcmV0 dXJuIC1FSU5WQUw7CisJCX0KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7 CisJfQorCQorCS8qIExBWUVSIEMgU2V0dXAgKi8KKwlzd2l0Y2ggKHBhcmFtcy0+bGF5ZXJfY19j YXJyaWVyX21vZHVsYXRpb24pIHsKKwljYXNlIElTREJfVF9MQ19DTV9EUVBTSzoKKwkJbW9kX2I1 IHw9IDA8PDM7CisJCWJyZWFrOworCWNhc2UgSVNEQl9UX0xDX0NNX1FQU0s6CisJCW1vZF9iNSB8 PSAxPDwzOworCQlicmVhazsKKwljYXNlIElTREJfVF9MQ19DTV8xNlFBTToKKwkJbW9kX2I1IHw9 IDI8PDM7CisJCWJyZWFrOworCWNhc2UgSVNEQl9UX0xDX0NNXzY0UUFNOgorCQltb2RfYjUgfD0g Mzw8MzsKKwkJYnJlYWs7CisJY2FzZSBJU0RCX1RfTENfQ01fTk9MQVlFUjoKKwkJbW9kX2I1IHw9 IDc8PDM7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXN3 aXRjaChwYXJhbXMtPmxheWVyX2NfY29kZV9yYXRlKSB7CisJY2FzZSBJU0RCX1RfTENfQ1JfMV8y OgorCQltb2RfYjUgfD0gMDw8MDsKKwkJYnJlYWs7CisJY2FzZSBJU0RCX1RfTENfQ1JfMl8zOgor CQltb2RfYjUgfD0gMTw8MDsKKwkJYnJlYWs7CisJY2FzZSBJU0RCX1RfTENfQ1JfM180OgorCQlt b2RfYjUgfD0gMjw8MDsKKwkJYnJlYWs7CisJY2FzZSBJU0RCX1RfTENfQ1JfNV82OgorCQltb2Rf YjUgfD0gMzw8MDsKKwkJYnJlYWs7CisJY2FzZSBJU0RCX1RfTENfQ1JfN184OgorCQltb2RfYjUg fD0gNDw8MDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJ c3dpdGNoIChwYXJhbXMtPmxheWVyX2NfbW9kZSkgeworCWNhc2UgSVNEQl9UX0xDX01PREVfMToK KwkJc3dpdGNoKHBhcmFtcy0+bGF5ZXJfY190aW1lX2ludGVybGVhdmUpIHsKKwkJY2FzZSBJU0RC X1RfTENfVElfMDoKKwkJCW1vZF9iNyB8PSAwPDw1OwkJCQorCQkJYnJlYWs7CisJCWNhc2UgSVNE Ql9UX0xDX1RJXzQ6CisJCQltb2RfYjcgfD0gMTw8NTsKKwkJCWJyZWFrOworCQljYXNlIElTREJf VF9MQ19USV84OgorCQkJbW9kX2I3IHw9IDI8PDU7CisJCQlicmVhazsKKwkJY2FzZSBJU0RCX1Rf TENfVElfMTY6CisJCQltb2RfYjcgfD0gMzw8NTsKKwkJCWJyZWFrOworCQljYXNlIElTREJfVF9M Q19USV8zMjoKKwkJCW1vZF9iNyB8PSA0PDw1OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQly ZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlicmVhazsKKwljYXNlIElTREJfVF9MQ19NT0RFXzI6CisJ CXN3aXRjaChwYXJhbXMtPmxheWVyX2NfdGltZV9pbnRlcmxlYXZlKSB7CisJCWNhc2UgSVNEQl9U X0xDX1RJXzA6CisJCQltb2RfYjcgfD0gMDw8NTsJCQkKKwkJCWJyZWFrOworCQljYXNlIElTREJf VF9MQ19USV8yOgorCQkJbW9kX2I3IHw9IDE8PDU7CisJCQlicmVhazsKKwkJY2FzZSBJU0RCX1Rf TENfVElfNDoKKwkJCW1vZF9iNyB8PSAyPDw1OworCQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xD X1RJXzg6CisJCQltb2RfYjcgfD0gMzw8NTsKKwkJCWJyZWFrOworCQljYXNlIElTREJfVF9MQ19U SV8xNjoKKwkJCW1vZF9iNyB8PSA0PDw1OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlyZXR1 cm4gLUVJTlZBTDsKKwkJfQorCQlicmVhazsKKwljYXNlIElTREJfVF9MQ19NT0RFXzM6CisJCXN3 aXRjaChwYXJhbXMtPmxheWVyX2NfdGltZV9pbnRlcmxlYXZlKSB7CisJCWNhc2UgSVNEQl9UX0xD X1RJXzA6CisJCQltb2RfYjcgfD0gMDw8NTsJCQkKKwkJCWJyZWFrOworCQljYXNlIElTREJfVF9M Q19USV8xOgorCQkJbW9kX2I3IHw9IDE8PDU7CisJCQlicmVhazsKKwkJY2FzZSBJU0RCX1RfTENf VElfMjoKKwkJCW1vZF9iNyB8PSAyPDw1OworCQkJYnJlYWs7CisJCWNhc2UgSVNEQl9UX0xDX1RJ XzQ6CisJCQltb2RfYjcgfD0gMzw8NTsKKwkJCWJyZWFrOworCQljYXNlIElTREJfVF9MQ19USV84 OgorCQkJbW9kX2I3IHw9IDQ8PDU7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXJldHVybiAt RUlOVkFMOworCQl9CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0K KyNlbmRpZgorCisJCisJcmV0ID0gZGV2LT5pMmNfd3JpdGUoZGV2LT5wcml2X2RldiwgMHhiMCwg MHhhMCk7IC8vbW9kX2IyKTsKKwlyZXQgPSBkZXYtPmkyY193cml0ZShkZXYtPnByaXZfZGV2LCAw eGIyLCAweDNkKTsgLy9tb2RfYjIpOworCisJaWYgKHJldCA8IDApCisJCXJldHVybiAtRUlOVkFM OworCisJcmV0ID0gZGV2LT5pMmNfd3JpdGUoZGV2LT5wcml2X2RldiwgMHhiMywgMHgyNSk7IC8v bW9kX2IzKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQgPSBkZXYt PmkyY193cml0ZShkZXYtPnByaXZfZGV2LCAweGI0LCAweDhiKTsgLy9tb2RfYjQpOworCWlmIChy ZXQgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IGRldi0+aTJjX3dyaXRlKGRldi0+ cHJpdl9kZXYsIDB4YjUsIDB4NGIpOyAvL21vZF9iNSk7CisJaWYgKHJldCA8IDApCisJCXJldHVy biAtRUlOVkFMOworCisJcmV0ID0gZGV2LT5pMmNfd3JpdGUoZGV2LT5wcml2X2RldiwgMHhiNiwg MHgzZik7IC8vbW9kX2I2KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwly ZXQgPSBkZXYtPmkyY193cml0ZShkZXYtPnByaXZfZGV2LCAweGI3LCAweDNmKTsgLy9tb2RfYjcp OworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiBFX09LOworfQor CitzdGF0aWMgaW50IHM5MjFfaXNkYl90dW5lKHN0cnVjdCBzOTIxX2lzZGJfdCAqZGV2LCBzdHJ1 Y3QgczkyMV9pc2RiX3RfdHVuZV9wYXJhbXMgKnBhcmFtcykgeworCQorCWludCByZXQ7CisJaW50 IGluZGV4OworCisJaW5kZXggPSAocGFyYW1zLT5mcmVxdWVuY3kgLSA0NzMxNDMwMDApLzYwMDAw MDA7CisKKwlpZiAoaW5kZXggPiA0OCkgeworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlkZXYt PmkyY193cml0ZShkZXYtPnByaXZfZGV2LCAweDQ3LCAweDYwKTsKKworCXJldCA9IGRldi0+aTJj X3dyaXRlKGRldi0+cHJpdl9kZXYsIDB4NjgsIDB4MDApOworCWlmIChyZXQgPCAwKQorCQlyZXR1 cm4gLUVJTlZBTDsKKworCXJldCA9IGRldi0+aTJjX3dyaXRlKGRldi0+cHJpdl9kZXYsIDB4Njks IDB4ODkpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IGRldi0+ aTJjX3dyaXRlKGRldi0+cHJpdl9kZXYsIDB4ZjAsIDB4NDgpOworCWlmIChyZXQgPCAwKQorCQly ZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IGRldi0+aTJjX3dyaXRlKGRldi0+cHJpdl9kZXYsIDB4 ZjEsIDB4MTkpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IGRl di0+aTJjX3dyaXRlKGRldi0+cHJpdl9kZXYsIDB4ZjIsIGNfdGFibGVbaW5kZXgqM10pOworCWlm IChyZXQgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IGRldi0+aTJjX3dyaXRlKGRl di0+cHJpdl9kZXYsIDB4ZjMsIGNfdGFibGVbaW5kZXgqMysxXSk7CisJaWYgKHJldCA8IDApCisJ CXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gZGV2LT5pMmNfd3JpdGUoZGV2LT5wcml2X2Rldiwg MHhmNCwgY190YWJsZVtpbmRleCozKzJdKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIC1FSU5W QUw7CisKKwlyZXQgPSBkZXYtPmkyY193cml0ZShkZXYtPnByaXZfZGV2LCAweGY1LCAweGFlKTsK KwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQgPSBkZXYtPmkyY193cml0 ZShkZXYtPnByaXZfZGV2LCAweGY2LCAweGI3KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIC1F SU5WQUw7CisKKwlyZXQgPSBkZXYtPmkyY193cml0ZShkZXYtPnByaXZfZGV2LCAweGY3LCAweGJh KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQgPSBkZXYtPmkyY193 cml0ZShkZXYtPnByaXZfZGV2LCAweGY4LCAweGQ3KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJu IC1FSU5WQUw7CisKKwlyZXQgPSBkZXYtPmkyY193cml0ZShkZXYtPnByaXZfZGV2LCAweDY4LCAw eDBhKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQgPSBkZXYtPmky Y193cml0ZShkZXYtPnByaXZfZGV2LCAweDY5LCAweDA5KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0 dXJuIC1FSU5WQUw7CisKKwlkZXYtPmkyY193cml0ZShkZXYtPnByaXZfZGV2LCAweDAxLCAweDQw KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzOTIxX2lzZGJfZ2V0X3N0YXR1cyhzdHJ1 Y3QgczkyMV9pc2RiX3QgKmRldiwgdm9pZCAqZGF0YSkgeworCXVuc2lnbmVkIGludCAqcmV0ID0g KHVuc2lnbmVkIGludCopZGF0YTsKKwl1OCBpZmFnY19kdDsKKwl1OCByZmFnY19kdDsKKworCW1k ZWxheSgxMCk7CisJaWZhZ2NfZHQgPSBkZXYtPmkyY19yZWFkKGRldi0+cHJpdl9kZXYsIDB4ODEp OworCXJmYWdjX2R0ID0gZGV2LT5pMmNfcmVhZChkZXYtPnByaXZfZGV2LCAweDgyKTsKKyNpZiAw CisJKnJldCA9IGRldi0+aTJjX3JlYWQoZGV2LT5wcml2X2RldiwgMHg4Mik7CisJcHJpbnRrKCJz dGF0dXMgODM6ICUwMnhcbiIsICpyZXQpOworCSpyZXQgPSBkZXYtPmkyY19yZWFkKGRldi0+cHJp dl9kZXYsIDB4ODApOworCW1kZWxheSgxMCk7CisJKnJldCA9IGRldi0+aTJjX3JlYWQoZGV2LT5w cml2X2RldiwgMHg4MCk7CisJbWRlbGF5KDEwKTsKKwkqcmV0ID0gZGV2LT5pMmNfcmVhZChkZXYt PnByaXZfZGV2LCAweDgwKTsKKyNlbmRpZgorCWlmIChyZmFnY19kdCA9PSAweDQwKSB7CisJCSpy ZXQgPSAxOworCX0KKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlk ZW8vZW1waWEvc2hhcnAvczkyMV9jb3JlLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtcGlhL3No YXJwL3M5MjFfY29yZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlMzlh MmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtcGlhL3NoYXJwL3M5 MjFfY29yZS5oCkBAIC0wLDAgKzEsMTE0IEBACisjaWZuZGVmIF9TOTIxX0NPUkVfSAorI2RlZmlu ZSBfUzkyMV9DT1JFX0gKKy8vI2RlZmluZSB1OCB1bnNpZ25lZCBpbnQKKy8vI2RlZmluZSB1MzIg dW5zaWduZWQgaW50CisKKworCisvLyNkZWZpbmUgRUlOVkFMIC0xCisjZGVmaW5lIEVfT0sgMAor CitzdHJ1Y3QgczkyMV9pc2RiX3QgeworCXZvaWQgKnByaXZfZGV2OworCWludCAoKmkyY193cml0 ZSkodm9pZCAqZGV2LCB1OCByZWcsIHU4IHZhbCk7CisJaW50ICgqaTJjX3JlYWQpKHZvaWQgKmRl diwgdTggcmVnKTsKK307CisKKyNkZWZpbmUgSVNEQl9UX0NNRF9JTklUICAgICAgIDAKKyNkZWZp bmUgSVNEQl9UX0NNRF9TRVRfUEFSQU0gIDEKKyNkZWZpbmUgSVNEQl9UX0NNRF9UVU5FICAgICAg IDIKKyNkZWZpbmUgSVNEQl9UX0NNRF9HRVRfU1RBVFVTIDMKKworc3RydWN0IHM5MjFfaXNkYl90 X3R1bmVfcGFyYW1zIHsKKwl1MzIgZnJlcXVlbmN5OworfTsKKworc3RydWN0IHM5MjFfaXNkYl90 X3N0YXR1cyB7Cit9OworCitzdHJ1Y3QgczkyMV9pc2RiX3RfdHJhbnNtaXNzaW9uX21vZGVfcGFy YW1zIHsKKwl1OCBtb2RlOworCXU4IGxheWVyX2FfbW9kZTsKKyNkZWZpbmUgSVNEQl9UX0xBX01P REVfMSAwCisjZGVmaW5lIElTREJfVF9MQV9NT0RFXzIgMQorI2RlZmluZSBJU0RCX1RfTEFfTU9E RV8zIDIKKwl1OCBsYXllcl9hX2NhcnJpZXJfbW9kdWxhdGlvbjsKKyNkZWZpbmUgSVNEQl9UX0xB X0NNX0RRUFNLIDAKKyNkZWZpbmUgSVNEQl9UX0xBX0NNX1FQU0sgIDEKKyNkZWZpbmUgSVNEQl9U X0xBX0NNXzE2UUFNIDIKKyNkZWZpbmUgSVNEQl9UX0xBX0NNXzY0UUFNIDMKKyNkZWZpbmUgSVNE Ql9UX0xBX0NNX05PTEFZRVIgNAorCXU4IGxheWVyX2FfY29kZV9yYXRlOworI2RlZmluZSBJU0RC X1RfTEFfQ1JfMV8yICAgMAorI2RlZmluZSBJU0RCX1RfTEFfQ1JfMl8zICAgMQorI2RlZmluZSBJ U0RCX1RfTEFfQ1JfM180ICAgMgorI2RlZmluZSBJU0RCX1RfTEFfQ1JfNV82ICAgNAorI2RlZmlu ZSBJU0RCX1RfTEFfQ1JfN184ICAgOAorI2RlZmluZSBJU0RCX1RfTEFfQ1JfTk9MQVlFUiAgIDE2 CisJdTggbGF5ZXJfYV90aW1lX2ludGVybGVhdmU7CisjZGVmaW5lIElTREJfVF9MQV9USV8wICAw CisjZGVmaW5lIElTREJfVF9MQV9USV8xICAxCisjZGVmaW5lIElTREJfVF9MQV9USV8yICAyCisj ZGVmaW5lIElTREJfVF9MQV9USV80ICA0CisjZGVmaW5lIElTREJfVF9MQV9USV84ICA4CisjZGVm aW5lIElTREJfVF9MQV9USV8xNiAxNgorI2RlZmluZSBJU0RCX1RfTEFfVElfMzIgMzIKKwl1OCBs YXllcl9hX25zZWc7CisKKwl1OCBsYXllcl9iX21vZGU7CisjZGVmaW5lIElTREJfVF9MQl9NT0RF XzEgMCAKKyNkZWZpbmUgSVNEQl9UX0xCX01PREVfMiAxCisjZGVmaW5lIElTREJfVF9MQl9NT0RF XzMgMgorCXU4IGxheWVyX2JfY2Fycmllcl9tb2R1bGF0aW9uOworI2RlZmluZSBJU0RCX1RfTEJf Q01fRFFQU0sgMAorI2RlZmluZSBJU0RCX1RfTEJfQ01fUVBTSyAgMQorI2RlZmluZSBJU0RCX1Rf TEJfQ01fMTZRQU0gMgorI2RlZmluZSBJU0RCX1RfTEJfQ01fNjRRQU0gMyAKKyNkZWZpbmUgSVNE Ql9UX0xCX0NNX05PTEFZRVIgNAorCXU4IGxheWVyX2JfY29kZV9yYXRlOworI2RlZmluZSBJU0RC X1RfTEJfQ1JfMV8yICAgMAorI2RlZmluZSBJU0RCX1RfTEJfQ1JfMl8zICAgMQorI2RlZmluZSBJ U0RCX1RfTEJfQ1JfM180ICAgMgorI2RlZmluZSBJU0RCX1RfTEJfQ1JfNV82ICAgNAorI2RlZmlu ZSBJU0RCX1RfTEJfQ1JfN184ICAgOAorI2RlZmluZSBJU0RCX1RfTEJfQ1JfTk9MQVlFUiAgIDE2 CisJdTggbGF5ZXJfYl90aW1lX2ludGVybGVhdmU7CisjZGVmaW5lIElTREJfVF9MQl9USV8wICAw CisjZGVmaW5lIElTREJfVF9MQl9USV8xICAxCisjZGVmaW5lIElTREJfVF9MQl9USV8yICAyCisj ZGVmaW5lIElTREJfVF9MQl9USV80ICA0CisjZGVmaW5lIElTREJfVF9MQl9USV84ICA4CisjZGVm aW5lIElTREJfVF9MQl9USV8xNiAxNgorI2RlZmluZSBJU0RCX1RfTEJfVElfMzIgMzIKKwl1OCBs YXllcl9iX25zZWc7CisKKwl1OCBsYXllcl9jX21vZGU7CisjZGVmaW5lIElTREJfVF9MQ19NT0RF XzEgMAorI2RlZmluZSBJU0RCX1RfTENfTU9ERV8yIDEKKyNkZWZpbmUgSVNEQl9UX0xDX01PREVf MyAyCisJdTggbGF5ZXJfY19jYXJyaWVyX21vZHVsYXRpb247CisjZGVmaW5lIElTREJfVF9MQ19D TV9EUVBTSyAwCisjZGVmaW5lIElTREJfVF9MQ19DTV9RUFNLICAxCisjZGVmaW5lIElTREJfVF9M Q19DTV8xNlFBTSAyCisjZGVmaW5lIElTREJfVF9MQ19DTV82NFFBTSAzCisjZGVmaW5lIElTREJf VF9MQ19DTV9OT0xBWUVSIDQKKwl1OCBsYXllcl9jX2NvZGVfcmF0ZTsKKyNkZWZpbmUgSVNEQl9U X0xDX0NSXzFfMiAgIDAKKyNkZWZpbmUgSVNEQl9UX0xDX0NSXzJfMyAgIDEKKyNkZWZpbmUgSVNE Ql9UX0xDX0NSXzNfNCAgIDIKKyNkZWZpbmUgSVNEQl9UX0xDX0NSXzVfNiAgIDQKKyNkZWZpbmUg SVNEQl9UX0xDX0NSXzdfOCAgIDgKKyNkZWZpbmUgSVNEQl9UX0xDX0NSX05PTEFZRVIgICAxNgor CXU4IGxheWVyX2NfdGltZV9pbnRlcmxlYXZlOworI2RlZmluZSBJU0RCX1RfTENfVElfMCAgMAor I2RlZmluZSBJU0RCX1RfTENfVElfMSAgMQorI2RlZmluZSBJU0RCX1RfTENfVElfMiAgMgorI2Rl ZmluZSBJU0RCX1RfTENfVElfNCAgNAorI2RlZmluZSBJU0RCX1RfTENfVElfOCAgOAorI2RlZmlu ZSBJU0RCX1RfTENfVElfMTYgMTYKKyNkZWZpbmUgSVNEQl9UX0xDX1RJXzMyIDMyCisJdTggbGF5 ZXJfY19uc2VnOworfTsKKworaW50IHM5MjFfaXNkYl9jbWQoc3RydWN0IHM5MjFfaXNkYl90ICpk ZXYsIHUzMiBjbWQsIHZvaWQgKmRhdGEpOworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL21l ZGlhL3ZpZGVvL2VtcGlhL3NoYXJwL3M5MjFfbW9kdWxlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVv L2VtcGlhL3NoYXJwL3M5MjFfbW9kdWxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZDc4ZWJhZgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW1w aWEvc2hhcnAvczkyMV9tb2R1bGUuYwpAQCAtMCwwICsxLDI1NCBAQAorLyoKKyAqIERyaXZlciBm b3IgU2hhcnAgczkyMSBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFya3VzIFJl Y2hiZXJnZXIgPG1yZWNoYmVyZ2VyQHN1bmR0ZWsuZGU+CisgKgorICogQWxsIHJpZ2h0cyByZXNl cnZlZC4KKyAqIAorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgImR2Yl9m cm9udGVuZC5oIgorI2luY2x1ZGUgInM5MjFfbW9kdWxlLmgiCisjaW5jbHVkZSAiczkyMV9jb3Jl LmgiCisKK3N0YXRpYyAgdW5zaWduZWQgaW50IGRlYnVnID0gMDsKK21vZHVsZV9wYXJhbShkZWJ1 ZywgaW50LCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoZGVidWcsInM5MjEgZGVidWdnaW5nIChk ZWZhdWx0IG9mZikiKTsKKworI2RlZmluZSBkcHJpbnRrKGZtdCwgYXJncy4uLikgaWYgKGRlYnVn KSBkbyB7XAorCQkJcHJpbnRrKCJzOTIxIGRlYnVnOiAiIGZtdCwgIyNhcmdzKTsgfSB3aGlsZSAo MCkKKworc3RydWN0IHM5MjFfc3RhdGUKK3sKKyAgICAgICAgc3RydWN0IGR2Yl9mcm9udGVuZCBm cm9udGVuZDsKKyAgICAgICAgZmVfbW9kdWxhdGlvbl90IGN1cnJlbnRfbW9kdWxhdGlvbjsKKyAg ICAgICAgX191MzIgc25yOyAKKyAgICAgICAgX191MzIgY3VycmVudF9mcmVxdWVuY3k7CisJX191 OCBhZGRyOworCXN0cnVjdCBzOTIxX2lzZGJfdCBkZXY7CisJc3RydWN0IGkyY19hZGFwdGVyICpp MmM7Cit9OworCitzdGF0aWMgaW50IHM5MjFfc2V0X3BhcmFtZXRlcnMoc3RydWN0IGR2Yl9mcm9u dGVuZCAqZmUsIHN0cnVjdCBkdmJfZnJvbnRlbmRfcGFyYW1ldGVycyAqcGFyYW0pIHsKKwlzdHJ1 Y3QgczkyMV9zdGF0ZSAqc3RhdGUgPSAoc3RydWN0IHM5MjFfc3RhdGUgKilmZS0+ZGVtb2R1bGF0 b3JfcHJpdjsKKwlzdHJ1Y3QgczkyMV9pc2RiX3RfdHJhbnNtaXNzaW9uX21vZGVfcGFyYW1zIHBh cmFtczsKKwlzdHJ1Y3QgczkyMV9pc2RiX3RfdHVuZV9wYXJhbXMgdHVuZV9wYXJhbXM7CisKKwl0 dW5lX3BhcmFtcy5mcmVxdWVuY3kgPSBwYXJhbS0+ZnJlcXVlbmN5OworI2lmIDAKKwlzdHJ1Y3Qg ZHZiX29mZG1fcGFyYW1ldGVycyAqb3AgPSAmcGFyYW0tPnUub2ZkbTsKKworCXN3aXRjaCAob3At PmJhbmR3aWR0aCkgeworCWNhc2UgQkFORFdJRFRIXzZfTUhaOgorCWNhc2UgQkFORFdJRFRIXzdf TUhaOgorCWNhc2UgQkFORFdJRFRIXzhfTUhaOgorCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwor CXN3aXRjaCAob3AtPmNvZGVfcmF0ZV9IUCkgeworCWNhc2UgRkVDXzJfMzoKKwljYXNlIEZFQ18z XzQ6CisJY2FzZSBGRUNfNV82OgorCWNhc2UgRkVDXzdfODoKKwljYXNlIEZFQ18xXzI6CisJY2Fz ZSBGRUNfQVVUTzoKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJc3dpdGNo KG9wLT5jb2RlX3JhdGVfTFApIHsKKwljYXNlIEZFQ18yXzM6CisJY2FzZSBGRUNfM180OgorCWNh c2UgRkVDXzVfNjoKKwljYXNlIEZFQ183Xzg6CisJY2FzZSBGRUNfMV8yOgorCWNhc2UgRkVDX0FV VE86CisJY2FzZSBGRUNfTk9ORToKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlzd2l0Y2gg KG9wLT5jb25zdGVsbGF0aW9uKSB7CisJY2FzZSBRUFNLOgorCWNhc2UgUUFNX0FVVE86CisJY2Fz ZSBRQU1fMTY6CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJc3dpdGNoIChvcC0+Z3VhcmRf aW50ZXJ2YWwpIHsKKwljYXNlIEdVQVJEX0lOVEVSVkFMXzFfMzI6CisJY2FzZSBHVUFSRF9JTlRF UlZBTF9BVVRPOgorCWNhc2UgR1VBUkRfSU5URVJWQUxfMV8xNjoKKwljYXNlIEdVQVJEX0lOVEVS VkFMXzFfODoKKwljYXNlIEdVQVJEX0lOVEVSVkFMXzFfNDoKKwlkZWZhdWx0OgorCQlicmVhazsK Kwl9CisKKwlzd2l0Y2ggKG9wLT5oaWVyYXJjaHlfaW5mb3JtYXRpb24pIHsKKwljYXNlIEhJRVJB UkNIWV9BVVRPOgorCWNhc2UgSElFUkFSQ0hZX05PTkU6CisJY2FzZSBISUVSQVJDSFlfMToKKwlj YXNlIEhJRVJBUkNIWV8yOgorCWNhc2UgSElFUkFSQ0hZXzQ6CisJZGVmYXVsdDoKKwkJYnJlYWs7 CisJfQorCisjZW5kaWYKKwlzOTIxX2lzZGJfY21kKCZzdGF0ZS0+ZGV2LCBJU0RCX1RfQ01EX1NF VF9QQVJBTSwgJnBhcmFtcyk7CisJczkyMV9pc2RiX2NtZCgmc3RhdGUtPmRldiwgSVNEQl9UX0NN RF9UVU5FLCAmdHVuZV9wYXJhbXMpOworCW1kZWxheSgxMDApOworCXJldHVybiAwOworfQorCitz dGF0aWMgaW50IHM5MjFfaW5pdChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSkgeworCXByaW50aygi czkyMSBpbml0XG4iKTsKKyAgICAgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczkyMV9z bGVlcChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSkgeworCXByaW50aygiczkyMSBzbGVlcFxuIik7 CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczkyMV9yZWFkX3N0YXR1cyhzdHJ1Y3QgZHZi X2Zyb250ZW5kICpmZSwgZmVfc3RhdHVzX3QgKnN0YXR1cykKK3sKKwlzdHJ1Y3QgczkyMV9zdGF0 ZSAqc3RhdGUgPSAoc3RydWN0IHM5MjFfc3RhdGUgKilmZS0+ZGVtb2R1bGF0b3JfcHJpdjsKKwl1 bnNpZ25lZCBpbnQgcmV0OworCW1kZWxheSg1KTsKKwlzOTIxX2lzZGJfY21kKCZzdGF0ZS0+ZGV2 LCBJU0RCX1RfQ01EX0dFVF9TVEFUVVMsICZyZXQpOworCSpzdGF0dXMgPSAwOworCQorCXByaW50 aygic3RhdHVzOiAlMDJ4XG4iLCByZXQpOworCWlmIChyZXQgPT0gMSkgeworCQkqc3RhdHVzIHw9 IEZFX0hBU19DQVJSSUVSOworCQkqc3RhdHVzIHw9IEZFX0hBU19WSVRFUkJJOworCQkqc3RhdHVz IHw9IEZFX0hBU19MT0NLOworCQkqc3RhdHVzIHw9IEZFX0hBU19TWU5DOworCQkqc3RhdHVzIHw9 IEZFX0hBU19TSUdOQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczkyMV9y ZWFkX2JlcihzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwgX191MzIgKmJlcikKK3sKKwlkcHJpbnRr KCJyZWFkIGJlclxuIik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczkyMV9yZWFkX3Nu cihzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwgX191MTYgKnNucikKK3sKKwlkcHJpbnRrKCJyZWFk IHNuclxuIik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczkyMV9yZWFkX3VjYmxvY2tz KHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLCBfX3UzMiAqdWNibG9ja3MpCit7CisJZHByaW50aygi cmVhZCB1Y2Jsb2Nrc1xuIik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHM5MjFfcmVs ZWFzZShzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSkKK3sKKwlzdHJ1Y3QgczkyMV9zdGF0ZSAqc3Rh dGUgPSAoc3RydWN0IHM5MjFfc3RhdGUgKilmZS0+ZGVtb2R1bGF0b3JfcHJpdjsKKwlrZnJlZShz dGF0ZSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZHZiX2Zyb250ZW5kX29wcyBkZW1vZF9zOTIxPXsK KwkuaW5mbyA9IHsKKwkJLm5hbWUJCQk9ICJTSEFSUCBTOTIxIiwKKwkJLnR5cGUJCQk9IEZFX09G RE0sCisJCS5mcmVxdWVuY3lfbWluCQk9IDQ3MzE0MzAwMCwKKwkJLmZyZXF1ZW5jeV9tYXgJCT0g NzY3MTQzMDAwLAorCQkuZnJlcXVlbmN5X3N0ZXBzaXplCT0gICA2MDAwMDAwLAorCQkuZnJlcXVl bmN5X3RvbGVyYW5jZQk9IDAsCisJCS5jYXBzID0gRkVfQ0FOX0ZFQ18xXzIgfCBGRV9DQU5fRkVD XzJfMyB8CisJCQlGRV9DQU5fRkVDXzNfNCB8IEZFX0NBTl9GRUNfNV82IHwgRkVfQ0FOX0ZFQ183 XzggfAorCQkJRkVfQ0FOX0ZFQ19BVVRPIHwKKwkJCUZFX0NBTl9RUFNLIHwgRkVfQ0FOX1FBTV8x NiB8IEZFX0NBTl9RQU1fNjQgfCBGRV9DQU5fUUFNX0FVVE8gfAorCQkJRkVfQ0FOX1RSQU5TTUlT U0lPTl9NT0RFX0FVVE8gfCBGRV9DQU5fR1VBUkRfSU5URVJWQUxfQVVUTyB8CisJCQlGRV9DQU5f SElFUkFSQ0hZX0FVVE8gfCBGRV9DQU5fUkVDT1ZFUiB8CisJCQlGRV9DQU5fTVVURV9UUworCX0s CisJLmluaXQgPSBzOTIxX2luaXQsCisJLnNsZWVwID0gczkyMV9zbGVlcCwKKwkuc2V0X2Zyb250 ZW5kID0gczkyMV9zZXRfcGFyYW1ldGVycywKKwkucmVhZF9zbnIgPSBzOTIxX3JlYWRfc25yLAor CS5yZWFkX2JlciA9IHM5MjFfcmVhZF9iZXIsCisJLnJlYWRfc3RhdHVzID0gczkyMV9yZWFkX3N0 YXR1cywKKwkucmVhZF91Y2Jsb2NrcyA9IHM5MjFfcmVhZF91Y2Jsb2NrcywKKwkucmVsZWFzZSA9 IHM5MjFfcmVsZWFzZSwKK307CisKK3N0YXRpYyBpbnQgczkyMV93cml0ZSh2b2lkICpkZXYsIHU4 IHJlZywgdTggdmFsKSB7CisJc3RydWN0IHM5MjFfc3RhdGUgKnN0YXRlID0gZGV2OworCWNoYXIg YnVmWzJdPXtyZWcsdmFsfTsKKyAgICAgICAgaW50IGVycjsKKwlzdHJ1Y3QgaTJjX21zZyBpMmNt c2dzID0geworCQkuYWRkciA9IHN0YXRlLT5hZGRyLAorCQkuZmxhZ3MgPSAwLAorCQkubGVuID0g MiwKKwkJLmJ1ZiA9IGJ1ZgorCX07CisKKwlpZigoZXJyID0gaTJjX3RyYW5zZmVyKHN0YXRlLT5p MmMsICZpMmNtc2dzLCAxKSk8MCkgeworCQlwcmludGsoIiVzIGkyY190cmFuc2ZlciBlcnJvciAl ZFxuIiwgX19GVU5DVElPTl9fLCBlcnIpOworICAgICAgICAgICAgICAgIGlmIChlcnIgPCAwKQor ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsKKyAgICAgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVSRU1PVEVJTzsKKyAgICAgICAgfQor CQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHM5MjFfcmVhZCh2b2lkICpkZXYsIHU4IHJl ZykgeworCXN0cnVjdCBzOTIxX3N0YXRlICpzdGF0ZSA9IGRldjsKKwl1OCBiMTsKKwlpbnQgcmV0 OworCXN0cnVjdCBpMmNfbXNnIG1zZ1syXSA9IHsgeyAuYWRkciA9IHN0YXRlLT5hZGRyLAorCQkJ CSAgICAuZmxhZ3MgPSAwLAorCQkJCSAgICAuYnVmID0gJnJlZywgLmxlbiA9IDEgfSwKKwkJCQkg IHsgLmFkZHIgPSBzdGF0ZS0+YWRkciwKKwkJCQkgICAgLmZsYWdzID0gSTJDX01fUkQsCisJCQkJ ICAgIC5idWYgPSAmYjEsIC5sZW4gPSAxIH0gfTsKKworCXJldCA9IGkyY190cmFuc2ZlcihzdGF0 ZS0+aTJjLCBtc2csIDIpOworCWlmIChyZXQgIT0gMikKKwkJcmV0dXJuIHJldDsKKwlyZXR1cm4g YjE7Cit9CisKK3N0cnVjdCBkdmJfZnJvbnRlbmQqIHM5MjFfYXR0YWNoKGNvbnN0IHN0cnVjdCBz OTIxX2NvbmZpZyAqY29uZmlnLAorCQkJCQkgICBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmkyYykKK3sK KworCXN0cnVjdCBzOTIxX3N0YXRlICpzdGF0ZTsKKwlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKHN0 cnVjdCBzOTIxX3N0YXRlKSwgR0ZQX0tFUk5FTCk7CisJbWVtc2V0KHN0YXRlLCAweDAsIHNpemVv ZihzdHJ1Y3QgczkyMV9zdGF0ZSkpOworCisJc3RhdGUtPmFkZHIgPSBjb25maWctPmkyY19hZGRy ZXNzOworCXN0YXRlLT5pMmMgPSBpMmM7CisJc3RhdGUtPmRldi5pMmNfd3JpdGUgPSAmczkyMV93 cml0ZTsKKwlzdGF0ZS0+ZGV2LmkyY19yZWFkID0gJnM5MjFfcmVhZDsKKwlzdGF0ZS0+ZGV2LnBy aXZfZGV2ID0gc3RhdGU7CisKKwlzOTIxX2lzZGJfY21kKCZzdGF0ZS0+ZGV2LCBJU0RCX1RfQ01E X0lOSVQsIE5VTEwpOworCisJbWVtY3B5KCZzdGF0ZS0+ZnJvbnRlbmQub3BzLCAmZGVtb2Rfczky MSwgc2l6ZW9mKHN0cnVjdCBkdmJfZnJvbnRlbmRfb3BzKSk7CisJc3RhdGUtPmZyb250ZW5kLmRl bW9kdWxhdG9yX3ByaXYgPSBzdGF0ZTsKKwlyZXR1cm4gJnN0YXRlLT5mcm9udGVuZDsKK30KKwor RVhQT1JUX1NZTUJPTF9HUEwoczkyMV9hdHRhY2gpOworTU9EVUxFX0FVVEhPUigiTWFya3VzIFJl Y2hiZXJnZXIgPG1yZWNoYmVyZ2VyQGVtcGlhdGVjaC5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJ T04oIlNoYXJwIFM5MjEgSVNEQi1UIDFTZWciKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW1waWEvc2hhcnAvczkyMV9tb2R1bGUuaCBi L2RyaXZlcnMvbWVkaWEvdmlkZW8vZW1waWEvc2hhcnAvczkyMV9tb2R1bGUuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODY2MDQyCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9tZWRpYS92aWRlby9lbXBpYS9zaGFycC9zOTIxX21vZHVsZS5oCkBAIC0wLDAgKzEsNDkg QEAKKy8qCisgKiAgRHJpdmVyIGZvciBEVkItVCBzOTIxIGRlbW9kdWxhdG9yCisgKgorICogIENv cHlyaWdodCAoQykgMjAwOCBNYXJrdXMgUmVjaGJlcmdlciA8bXJlY2hiZXJnZXJAc3VuZHRlay5k ZT4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisg KiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisgKgorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u LCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS49CisgKi8KKwor I2lmbmRlZiBTOTIxX01PRFVMRV9ICisjZGVmaW5lIFM5MjFfTU9EVUxFX0gKKworI2luY2x1ZGUg PGxpbnV4L2R2Yi9mcm9udGVuZC5oPgorI2luY2x1ZGUgInM5MjFfY29yZS5oIgorCitpbnQgczky MV9pc2RiX2luaXQoc3RydWN0IHM5MjFfaXNkYl90ICpkZXYpOworaW50IHM5MjFfaXNkYl9jbWQo c3RydWN0IHM5MjFfaXNkYl90ICpkZXYsIHUzMiBjbWQsIHZvaWQgKmRhdGEpOworCitzdHJ1Y3Qg czkyMV9jb25maWcKK3sKKwkvKiBkZW1vZHVsYXRvcidzIEkyQyBhZGRyZXNzICovCisJdTggaTJj X2FkZHJlc3M7Cit9OworCisjaWYgZGVmaW5lZChDT05GSUdfRFZCX1M5MjEpIHx8IChkZWZpbmVk KENPTkZJR19EVkJfUzkyMV9NT0RVTEUpICYmIGRlZmluZWQoTU9EVUxFKSkKK2V4dGVybiBzdHJ1 Y3QgZHZiX2Zyb250ZW5kKiBzOTIxX2F0dGFjaChjb25zdCBzdHJ1Y3QgczkyMV9jb25maWcgKmNv bmZpZywKKwkJCQkJICAgc3RydWN0IGkyY19hZGFwdGVyICppMmMpOworI2Vsc2UKK3N0YXRpYyBp bmxpbmUgc3RydWN0IGR2Yl9mcm9udGVuZCogczkyMV9hdHRhY2goY29uc3Qgc3RydWN0IHM5MjFf Y29uZmlnICpjb25maWcsCisJCQkJCSAgIHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjKQoreworCXBy aW50ayhLRVJOX1dBUk5JTkcgIiVzOiBkcml2ZXIgZGlzYWJsZWQgYnkgS2NvbmZpZ1xuIiwgX19m dW5jX18pOworCXJldHVybiBOVUxMOworfQorI2VuZGlmIC8qIENPTkZJR19EVkJfUzkyMSAqLwor CisjZW5kaWYgLyogUzkyMV9IICovCg== ------=_Part_25554_15386644.1224709662467--