From nobody Fri Oct 20 19:24:34 2023 X-Original-To: freebsd-arm@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SBvfV6WF9z4y7St for ; Fri, 20 Oct 2023 19:24:34 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SBvfV69yPz4HXV for ; Fri, 20 Oct 2023 19:24:34 +0000 (UTC) (envelope-from daemon-user@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1697829874; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references; bh=agbgF1Jl9CR+qb6HNBkm0X1Ufy0H4qGu4euNyNpbbWw=; b=Mp/7a+NklcU26HoCOoJ+9le/lSBdH3OYJidvdX6FvSHDgoom2dWQUUenxZlOPUNAyp621/ IOBY6kEsDdGj0i51kxix1sYHMlsbe6qrCZbLAkhEFIaxqOwYtyXTpp2HbEnWg1xL9ncm7V J6aM/GC5Dt25BVvRH5zHXw7mAjpXcaKsKhPPHn7PlgPjkU3JbqbqwcOFZGn0BnqN//nFCC gvdrWrThHpbHAbu6y/1oMJpt1o6sddE6p7hVRxmRH4Ze1vRQA9vD5XsVAOhBtzbf87wLih +l235vMWCOxJh0FDv6WIZdIHxrqwmNxpSKeVRp02H+s8/J440or7By44mSnM+g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1697829874; a=rsa-sha256; cv=none; b=mcF2P+89DUKbovV2cr76WkJG89m9c1BCAH2jvOv8CP1/V1m2qQAJdh1vQU/7+9Cn0ErA9n bHqc04CD2pVOgCWKUuCDhpyDShktJPcr1+NCqyevx/Y7dGK2Y0lQ8qToht9xHdBaxsZHGz IVSjoldHgQAB5fIadHYxIvpKQhg5m2NZjFloGOZr2u7qBnO5OVHm/7DrUtGNr7gtYzV5Pi KpONRLt7De5bcXQ8V8RabS3ooo78mkpC1mrfzD/qEP4RCA0NffeIVuKccjXxLMs53wtgTh iFqs2s1NWnDdtVbIPS8m6rKNz6kjg4+vDDPErkx5CzKhbQeBqGrE2lu3eT0Ncg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1697829874; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references; bh=agbgF1Jl9CR+qb6HNBkm0X1Ufy0H4qGu4euNyNpbbWw=; b=Pr0Y2JvSBZzI1bx/yRq5a9Dx5wDm5ziOogkRVITWWgFZH+rhmfSn9N67/6bfgyIoKxmXT8 CCyWpaZV5gZYd+a/ZuYLBO2FUEIE/94RnKXci5BNftvUOr8+BaL6/oZGp8hUj936hOQ9ul 4oc7hP0W7CpZ3xwensRyPwsmuWGcK9RUDdzN+YD2dGwFJ2EkETZhWrOvY2ZwUvRshstB8i dL4Pi60hQ5luqaN4ZrRdb2Y/SwLdEb2c3S4ja44aj5Cmim7EQ1VKYL5W+peRZl0C510g1x o1R2jcwdwQwM5xYCm8jr5Q9nZRxa8FvfVTAMi54JzHildZKqsREExKEb+21qnw== Received: from reviews.nyi.freebsd.org (reviews.nyi.freebsd.org [IPv6:2610:1c1:1:606c::16:b]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4SBvfV59Z7zlRV for ; Fri, 20 Oct 2023 19:24:34 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id B1A114FFA3; Fri, 20 Oct 2023 19:24:34 +0000 (UTC) Date: Fri, 20 Oct 2023 19:24:34 +0000 To: freebsd-arm@freebsd.org From: "titus_edc.ro (Titus Manea)" Reply-to: "titus_edc.ro (Titus Manea)" Subject: [Differential] D42318: Support for rockchip serial flash controller Message-ID: X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , , X-Herald-Rules: <28>, <31>, <32>, <34>, <101>, <79>, <179> X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: Precedence: bulk Thread-Topic: PHID-DREV-yqt6x5iu76drw36u2czx X-Phabricator-Mail-ID: 4123791 X-Phabricator-Send-Attempt: 6iv36r5tzh3wflrj In-Reply-To: References: Thread-Index: Y2EyNTQzMmE5NjhhOGIwMTgyNDI0ZjQyNTk3IGUy0/I= X-Phabricator-Stamps: actor(@titus_edc.ro) application(Differential) author(@titus_edc.ro) herald(H28) herald(H31) herald(H32) herald(H34) herald(H79) herald(H101) herald(H179) monogram(D42318) object-type(DREV) phid(PHID-DREV-yqt6x5iu76drw36u2czx) reviewer(@andrew) reviewer(@freebsd-arm-list) reviewer(@manu) revision-repository(rG) revision-status(needs-review) subscriber(@emaste) subscriber(@imp) via(web) List-Id: Porting FreeBSD to ARM processors List-Archive: https://lists.freebsd.org/archives/freebsd-arm List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-arm@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_fdaf71f3e411f444ed98fb629687154f" --b1_fdaf71f3e411f444ed98fb629687154f Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 dGl0dXNfZWRjLnJvIGNyZWF0ZWQgdGhpcyByZXZpc2lvbi4KdGl0dXNfZWRjLnJvIGFkZGVkIGEg cmV2aWV3ZXI6IGZyZWVic2QtYXJtLWxpc3QuCkhlcmFsZCBhZGRlZCBzdWJzY3JpYmVyczogZW1h c3RlLCBpbXAuCkhlcmFsZCBhZGRlZCBhIHJldmlld2VyOiBhbmRyZXcuCkhlcmFsZCBhZGRlZCBh IHJldmlld2VyOiBhbmRyZXcuCkhlcmFsZCBhZGRlZCBhIHJldmlld2VyOiBtYW51Lgp0aXR1c19l ZGMucm8gcmVxdWVzdGVkIHJldmlldyBvZiB0aGlzIHJldmlzaW9uLgoKUkVWSVNJT04gU1VNTUFS WQogIEl0cyBtb3N0bHkgYSBjbG9uZSBvZiB0aGUgbGludXggZHJpdmVyIGV4Y2x1ZGluZyBkbWEg c3VwcG9ydC4KICBGcmVlYnNkJ3MgU1BJIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGhhdmUgcHJv dmlzaW9uIGZvciBTUEkgdHJhbnNmZXIgZGlyZWN0aW9uIGFuZCBiZWNhdXNlIFNGQyBpcyBoYWxm IGR1cGxleCB5b3UgaGF2ZSB0byBndWVzcyB0aGUgZGlyZWN0aW9uIGZyb20gdGhlIFNQSSBjb21t YW5kIGNvZGUuCiAgQWxzbyB0aGUgY21kIGNvZGUsIGFkZHJlc3MgYW5kIGxlbmd0aCBhcmUgbm90 IHNlbnQgdmlhIHRoZSBidXMgYnV0IHZpYSBtbWlvLgogIAogIEkgYWRkZWQgdG8gZmxhc2ggZGV2 aWNlcyB0byBzeXMvZGV2L2ZsYXNoL214MjVsLmMgKHRoZSBvbmVzIGkgaGF2ZSBvbiBteSBib2Fy ZHMpCgpURVNUIFBMQU4KICBpIHRlc3RlZCB3aXRoIGRkIGluIGFuZCBvdXQgYW5kIGl0IG1hZGUg YW4gaWRlbnRpY2FsIGNvcHkgKG5vdCB0aGUgZmlyc3QgdGltZSA6KSkKClJFUE9TSVRPUlkKICBy RyBGcmVlQlNEIHNyYyByZXBvc2l0b3J5CgpSRVZJU0lPTiBERVRBSUwKICBodHRwczovL3Jldmll d3MuZnJlZWJzZC5vcmcvRDQyMzE4CgpBRkZFQ1RFRCBGSUxFUwogIHN5cy9hcm02NC9jb25mL3N0 ZC5yb2NrY2hpcAogIHN5cy9hcm02NC9yb2NrY2hpcC9ya19zZmMuYwogIHN5cy9jb25mL2ZpbGVz LmFybTY0CiAgc3lzL2Rldi9mbGFzaC9teDI1bC5jCgpFTUFJTCBQUkVGRVJFTkNFUwogIGh0dHBz Oi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9zZXR0aW5ncy9wYW5lbC9lbWFpbHByZWZlcmVuY2VzLwoK VG86IHRpdHVzX2VkYy5ybywgZnJlZWJzZC1hcm0tbGlzdCwgYW5kcmV3LCBtYW51CkNjOiBpbXAs IGVtYXN0ZSwgcHN0ZWYsIGRzbAo= --b1_fdaf71f3e411f444ed98fb629687154f Content-Type: text/x-patch; charset=utf-8; name="D42318.129174.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D42318.129174.patch" ZGlmZiAtLWdpdCBhL3N5cy9jb25mL2ZpbGVzLmFybTY0IGIvc3lzL2NvbmYvZmlsZXMuYXJtNjQK LS0tIGEvc3lzL2NvbmYvZmlsZXMuYXJtNjQKKysrIGIvc3lzL2NvbmYvZmlsZXMuYXJtNjQKQEAg LTY3MCw2ICs2NzEsNyBAQAogYXJtNjQvcm9ja2NoaXAvcmtfZ3Bpby5jCQkJb3B0aW9uYWwgZmR0 IHJrX2dwaW8gc29jX3JvY2tjaGlwX3JrMzMyOCB8IGZkdCBya19ncGlvIHNvY19yb2NrY2hpcF9y azMzOTkgfCBmZHQgc29jX3JvY2tjaGlwX3JrMzU2OAogYXJtNjQvcm9ja2NoaXAvcmtfaW9kb21h aW4uYwkJCW9wdGlvbmFsIGZkdCBya19pb2RvbWFpbgogYXJtNjQvcm9ja2NoaXAvcmtfc3BpLmMJ CQkJb3B0aW9uYWwgZmR0IHJrX3NwaQorYXJtNjQvcm9ja2NoaXAvcmtfc2ZjLmMJCQkJb3B0aW9u YWwgZmR0IHJrX3NmYwogYXJtNjQvcm9ja2NoaXAvcmtfdXNiMnBoeS5jCQkJb3B0aW9uYWwgZmR0 IHJrX3VzYjJwaHkgc29jX3JvY2tjaGlwX3JrMzMyOCB8IGZkdCBya191c2IycGh5IHNvY19yb2Nr Y2hpcF9yazMzOTkgfCBmZHQgcmtfdXNiMnBoeSBzb2Nfcm9ja2NoaXBfcmszNTY4CiBhcm02NC9y b2NrY2hpcC9ya190eXBlY19waHkuYwkJCW9wdGlvbmFsIGZkdCBya190eXBlY19waHkgc29jX3Jv Y2tjaGlwX3JrMzM5OQogYXJtNjQvcm9ja2NoaXAvaWZfZHdjX3JrLmMJCQlvcHRpb25hbCBmZHQg ZHdjX3JrIHNvY19yb2NrY2hpcF9yazMzMjggfCBmZHQgZHdjX3JrIHNvY19yb2NrY2hpcF9yazMz OTkKZGlmZiAtLWdpdCBhL3N5cy9hcm02NC9jb25mL3N0ZC5yb2NrY2hpcCBiL3N5cy9hcm02NC9j b25mL3N0ZC5yb2NrY2hpcAotLS0gYS9zeXMvYXJtNjQvY29uZi9zdGQucm9ja2NoaXAKKysrIGIv c3lzL2FybTY0L2NvbmYvc3RkLnJvY2tjaGlwCkBAIC0yNyw2ICsyNyw3IEBACiAKICMgU1BJCiBk ZXZpY2UJCXJrX3NwaQkJCSMgUm9ja0NoaXAgU1BJIGNvbnRyb2xsZXIKK2RldmljZQkJcmtfc2Zj CQkJIyBSb2NrQ2hpcCBTRkMgY29udHJvbGxlcgogCiAjIFBXTQogZGV2aWNlCQlya19wd20KZGlm ZiAtLWdpdCBhL3N5cy9hcm02NC9yb2NrY2hpcC9ya19zZmMuYyBiL3N5cy9hcm02NC9yb2NrY2hp cC9ya19zZmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9h cm02NC9yb2NrY2hpcC9ya19zZmMuYwpAQCAtMCwwICsxLDc3NiBAQAorLyotCisgKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlCisgKi8KKworI2luY2x1ZGUgPHN5cy9jZGVm cy5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9zeXN0bS5oPgorI2lu Y2x1ZGUgPHN5cy9idXMuaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lz L2xvY2suaD4KKyNpbmNsdWRlIDxzeXMvbW9kdWxlLmg+CisjaW5jbHVkZSA8c3lzL211dGV4Lmg+ CisjaW5jbHVkZSA8c3lzL3JtYW4uaD4KKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKyNpbmNs dWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPG1hY2hpbmUvYnVzLmg+CisKKyNpbmNsdWRlIDxk ZXYvb2Z3L29md19idXMuaD4KKyNpbmNsdWRlIDxkZXYvb2Z3L29md19idXNfc3Vici5oPgorCisj aW5jbHVkZSA8ZGV2L3NwaWJ1cy9zcGkuaD4KKyNpbmNsdWRlIDxkZXYvc3BpYnVzL3NwaWJ1c3Zh ci5oPgorCisjaW5jbHVkZSA8ZGV2L2V4dHJlcy9jbGsvY2xrLmg+CisjaW5jbHVkZSA8ZGV2L2V4 dHJlcy9od3Jlc2V0L2h3cmVzZXQuaD4KKworI2luY2x1ZGUgInNwaWJ1c19pZi5oIgorCisjZGVm aW5lIFNGQ19DVFJMCQkJMHgwCisjZGVmaW5lICBTRkNfQ1RSTF9QSEFTRV9TRUxfTkVHQVRJVkUJ ICgxIDw8IDEpCisjZGVmaW5lICBTRkNfQ1RSTF9DTURfQklUU19TSElGVAk4CisjZGVmaW5lICBT RkNfQ1RSTF9BRERSX0JJVFNfU0hJRlQJMTAKKyNkZWZpbmUgIFNGQ19DVFJMX0RBVEFfQklUU19T SElGVAkxMgorCisvKiBJbnRlcnJ1cHQgbWFzayAqLworI2RlZmluZSBTRkNfSU1SCQkJCTB4NAor I2RlZmluZSAgU0ZDX0lNUl9SWF9GVUxMCQkgKDEgPDwgMCkKKyNkZWZpbmUgIFNGQ19JTVJfUlhf VUZMT1cJCSAoMSA8PCAxKQorI2RlZmluZSAgU0ZDX0lNUl9UWF9PRkxPVwkJICgxIDw8IDIpCisj ZGVmaW5lICBTRkNfSU1SX1RYX0VNUFRZCQkgKDEgPDwgMykKKyNkZWZpbmUgIFNGQ19JTVJfVFJB Tl9GSU5JU0gJCSAoMSA8PCA0KQorI2RlZmluZSAgU0ZDX0lNUl9CVVNfRVJSCQkgKDEgPDwgNSkK KyNkZWZpbmUgIFNGQ19JTVJfTlNQSV9FUlIJCSAoMSA8PCA2KQorI2RlZmluZSAgU0ZDX0lNUl9E TUEJCQkgKDEgPDwgNykKKworLyogSW50ZXJydXB0IGNsZWFyICovCisjZGVmaW5lIFNGQ19JQ0xS CQkJMHg4CisjZGVmaW5lICBTRkNfSUNMUl9SWF9GVUxMCQkgKDEgPDwgMCkKKyNkZWZpbmUgIFNG Q19JQ0xSX1JYX1VGTE9XCQkgKDEgPDwgMSkKKyNkZWZpbmUgIFNGQ19JQ0xSX1RYX09GTE9XCQkg KDEgPDwgMikKKyNkZWZpbmUgIFNGQ19JQ0xSX1RYX0VNUFRZCQkgKDEgPDwgMykKKyNkZWZpbmUg IFNGQ19JQ0xSX1RSQU5fRklOSVNICQkgKDEgPDwgNCkKKyNkZWZpbmUgIFNGQ19JQ0xSX0JVU19F UlIJCSAoMSA8PCA1KQorI2RlZmluZSAgU0ZDX0lDTFJfTlNQSV9FUlIJCSAoMSA8PCA2KQorI2Rl ZmluZSAgU0ZDX0lDTFJfRE1BCQkJICgxIDw8IDcpCisKKy8qIEZJRk8gdGhyZXNob2xkIGxldmVs ICovCisjZGVmaW5lIFNGQ19GVExSCQkJMHhjCisjZGVmaW5lICBTRkNfRlRMUl9UWF9TSElGVAkJ MAorI2RlZmluZSAgU0ZDX0ZUTFJfVFhfTUFTSwkJMHgxZgorI2RlZmluZSAgU0ZDX0ZUTFJfUlhf U0hJRlQJCTgKKyNkZWZpbmUgIFNGQ19GVExSX1JYX01BU0sJCTB4MWYKKworLyogUmVzZXQgRlNN IGFuZCBGSUZPICovCisjZGVmaW5lIFNGQ19SQ1ZSCQkJMHgxMAorI2RlZmluZSAgU0ZDX1JDVlJf UkVTRVQJCQkgKDEgPDwgMCkKKworLyogRW5oYW5jZWQgbW9kZSAqLworI2RlZmluZSBTRkNfQVgJ CQkJMHgxNAorCisvKiBBZGRyZXNzIEJpdCBudW1iZXIgKi8KKyNkZWZpbmUgU0ZDX0FCSVQJCQkw eDE4CisKKy8qIEludGVycnVwdCBzdGF0dXMgKi8KKyNkZWZpbmUgU0ZDX0lTUgkJCQkweDFjCisj ZGVmaW5lICBTRkNfSVNSX1JYX0ZVTExfU0hJRlQJCSAoMSA8PCAwKQorI2RlZmluZSAgU0ZDX0lT Ul9SWF9VRkxPV19TSElGVAkJICgxIDw8IDEpCisjZGVmaW5lICBTRkNfSVNSX1RYX09GTE9XX1NI SUZUCQkgKDEgPDwgMikKKyNkZWZpbmUgIFNGQ19JU1JfVFhfRU1QVFlfU0hJRlQJCSAoMSA8PCAz KQorI2RlZmluZSAgU0ZDX0lTUl9UWF9GSU5JU0hfU0hJRlQJICgxIDw8IDQpCisjZGVmaW5lICBT RkNfSVNSX0JVU19FUlJfU0hJRlQJCSAoMSA8PCA1KQorI2RlZmluZSAgU0ZDX0lTUl9OU1BJX0VS Ul9TSElGVAkJICgxIDw8IDYpCisjZGVmaW5lICBTRkNfSVNSX0RNQV9TSElGVAkJICgxIDw8IDcp CisKKy8qIEZJRk8gc3RhdHVzICovCisjZGVmaW5lIFNGQ19GU1IJCQkJMHgyMAorI2RlZmluZSAg U0ZDX0ZTUl9UWF9JU19GVUxMCQkgKDEgPDwgMCkKKyNkZWZpbmUgIFNGQ19GU1JfVFhfSVNfRU1Q VFkJCSAoMSA8PCAxKQorI2RlZmluZSAgU0ZDX0ZTUl9SWF9JU19FTVBUWQkJICgxIDw8IDIpCisj ZGVmaW5lICBTRkNfRlNSX1JYX0lTX0ZVTEwJCSAoMSA8PCAzKQorI2RlZmluZSAgU0ZDX0ZTUl9U WExWX01BU0sJCSgweDFmIDw8IDgpCisjZGVmaW5lICBTRkNfRlNSX1RYTFZfU0hJRlQJCTgKKyNk ZWZpbmUgIFNGQ19GU1JfUlhMVl9NQVNLCQkoMHgxZiA8PCAxNikKKyNkZWZpbmUgIFNGQ19GU1Jf UlhMVl9TSElGVAkJMTYKKworLyogRlNNIHN0YXR1cyAqLworI2RlZmluZSBTRkNfU1IJCQkJMHgy NAorI2RlZmluZSAgU0ZDX1NSX0lTX0lETEUJCQkweDAKKyNkZWZpbmUgIFNGQ19TUl9JU19CVVNZ CQkJMHgxCisKKy8qIFJhdyBpbnRlcnJ1cHQgc3RhdHVzICovCisjZGVmaW5lIFNGQ19SSVNSCQkJ MHgyOAorI2RlZmluZSAgU0ZDX1JJU1JfUlhfRlVMTAkJICgxIDw8IDApCisjZGVmaW5lICBTRkNf UklTUl9SWF9VTkRFUkZMT1cJCSAoMSA8PCAxKQorI2RlZmluZSAgU0ZDX1JJU1JfVFhfT1ZFUkZM T1cJCSAoMSA8PCAyKQorI2RlZmluZSAgU0ZDX1JJU1JfVFhfRU1QVFkJCSAoMSA8PCAzKQorI2Rl ZmluZSAgU0ZDX1JJU1JfVFJBTl9GSU5JU0gJCSAoMSA8PCA0KQorI2RlZmluZSAgU0ZDX1JJU1Jf QlVTX0VSUgkJICgxIDw8IDUpCisjZGVmaW5lICBTRkNfUklTUl9OU1BJX0VSUgkJICgxIDw8IDYp CisjZGVmaW5lICBTRkNfUklTUl9ETUEJCQkgKDEgPDwgNykKKworLyogVmVyc2lvbiAqLworI2Rl ZmluZSBTRkNfVkVSCQkJCTB4MkMKKyNkZWZpbmUgIFNGQ19WRVJfMwkJCTB4MworI2RlZmluZSAg U0ZDX1ZFUl80CQkJMHg0CisjZGVmaW5lICBTRkNfVkVSXzUJCQkweDUKKworLyogRGVsYXkgbGlu ZSBjb250cm9sbGVyIHJlc2l0ZXIgKi8KKyNkZWZpbmUgU0ZDX0RMTF9DVFJMMAkJCTB4M0MKKyNk ZWZpbmUgU0ZDX0RMTF9DVFJMMF9TQ0xLX1NNUF9ETEwJICgxIDw8IDE1KQorI2RlZmluZSBTRkNf RExMX0NUUkwwX0RMTF9NQVhfVkVSNAkweEZGVQorI2RlZmluZSBTRkNfRExMX0NUUkwwX0RMTF9N QVhfVkVSNQkweDFGRlUKKworLyogTWFzdGVyIHRyaWdnZXIgKi8KKyNkZWZpbmUgU0ZDX0RNQV9U UklHR0VSCQkJMHg4MAorI2RlZmluZSBTRkNfRE1BX1RSSUdHRVJfU1RBUlQJCTEKKworLyogU3Jj IG9yIERzdCBhZGRyIGZvciBtYXN0ZXIgKi8KKyNkZWZpbmUgU0ZDX0RNQV9BRERSCQkJMHg4NAor CisvKiBMZW5ndGggY29udHJvbCByZWdpc3RlciBleHRlbnNpb24gMzJHQiAqLworI2RlZmluZSBT RkNfTEVOX0NUUkwJCQkweDg4CisjZGVmaW5lIFNGQ19MRU5fQ1RSTF9UUkJfU0VMCQkxCisjZGVm aW5lIFNGQ19MRU5fRVhUCQkJMHg4QworCisvKiBDb21tYW5kICovCisjZGVmaW5lIFNGQ19DTUQJ CQkJMHgxMDAKKyNkZWZpbmUgIFNGQ19DTURfSURYX1NISUZUCQkwCisjZGVmaW5lICBTRkNfQ01E X0RVTU1ZX1NISUZUCQk4CisjZGVmaW5lICBTRkNfQ01EX0RJUl9TSElGVAkJMTIKKyNkZWZpbmUg IFNGQ19DTURfRElSX1JECQkJMAorI2RlZmluZSAgU0ZDX0NNRF9ESVJfV1IJCQkxCisjZGVmaW5l ICBTRkNfQ01EX0FERFJfU0hJRlQJCTE0CisjZGVmaW5lICBTRkNfQ01EX0FERFJfMEJJVFMJCTAK KyNkZWZpbmUgIFNGQ19DTURfQUREUl8yNEJJVFMJCTEKKyNkZWZpbmUgIFNGQ19DTURfQUREUl8z MkJJVFMJCTIKKyNkZWZpbmUgIFNGQ19DTURfQUREUl9YQklUUwkJMworI2RlZmluZSAgU0ZDX0NN RF9UUkFOX0JZVEVTX1NISUZUCTE2CisjZGVmaW5lICBTRkNfQ01EX0NTX1NISUZUCQkzMAorCisv KiBBZGRyZXNzICovCisjZGVmaW5lIFNGQ19BRERSCQkJMHgxMDQKKworLyogRGF0YSAqLworI2Rl ZmluZSBTRkNfREFUQQkJCTB4MTA4CisKKy8qIFRoZSBjb250cm9sbGVyIGFuZCBkb2N1bWVudGF0 aW9uIHJlcG9ydHMgdGhhdCBpdCBzdXBwb3J0cyB1cCB0byA0IENTCisgKiBkZXZpY2VzICgwLTMp LCBob3dldmVyIEkgaGF2ZSBvbmx5IGJlZW4gYWJsZSB0byB0ZXN0IGEgc2luZ2xlIENTIChDUyAw KQorICogZHVlIHRvIHRoZSBjb25maWd1cmF0aW9uIG9mIG15IGRldmljZS4KKyAqLworI2RlZmlu ZSBTRkNfTUFYX0NISVBTRUxFQ1RfTlVNCQk0CisKKy8qIFRoZSBTRkMgY2FuIHRyYW5zZmVyIG1h eCAxNktCIC0gMSBhdCBvbmUgdGltZQorICogd2Ugc2V0IGl0IHRvIDE1LjVLQiBoZXJlIGZvciBh bGlnbm1lbnQuCisgKi8KKyNkZWZpbmUgU0ZDX01BWF9JT1NJWkVfVkVSMwkJKDUxMiAqIDMxKQor CisvKiBETUEgaXMgb25seSBlbmFibGVkIGZvciBsYXJnZSBkYXRhIHRyYW5zbWlzc2lvbiAqLwor I2RlZmluZSBTRkNfRE1BX1RSQU5TX1RIUkVUSE9MRAkJKDB4NDApCisKKy8qIE1heGltdW0gY2xv Y2sgdmFsdWVzIGZyb20gZGF0YXNoZWV0IHN1Z2dlc3Qga2VlcGluZyBjbG9jayB2YWx1ZSB1bmRl cgorICogMTUwTUh6LiBObyBtaW5pbXVtIG9yIGF2ZXJhZ2UgdmFsdWUgaXMgc3VnZ2VzdGVkLgor ICovCisjZGVmaW5lIFNGQ19NQVhfU1BFRUQJCSgxNTAgKiAxMDAwICogMTAwMCkKKworI2RlZmlu ZSBSS19TRkNfWEZFUl9PVVQgMAorI2RlZmluZSBSS19TRkNfWEZFUl9JTiAgMQorCisjZGVmaW5l IENNRF9XUklURV9FTkFCTEUgICAgICAgIDB4MDYKKyNkZWZpbmUgQ01EX1dSSVRFX0RJU0FCTEUg ICAgICAgMHgwNAorI2RlZmluZSBDTURfUkVBRF9JREVOVCAgICAgICAgICAweDlGCisjZGVmaW5l IENNRF9SRUFEX1NUQVRVUyAgICAgICAgIDB4MDUKKyNkZWZpbmUgQ01EX1dSSVRFX1NUQVRVUyAg ICAgICAgMHgwMQorI2RlZmluZSBDTURfUkVBRCAgICAgICAgICAgICAgICAweDAzCisjZGVmaW5l IENNRF9GQVNUX1JFQUQgICAgICAgICAgIDB4MEIKKyNkZWZpbmUgQ01EX1JFQURfRFVBTF9JTyAg ICAgICAgMHhCQgorI2RlZmluZSBDTURfUkVBRF9RVUFEX09VVFBVVCAgICAweDZCCisjZGVmaW5l IENNRF9QQUdFX1BST0dSQU0gICAgICAgIDB4MDIKKyNkZWZpbmUgQ01EX1NFQ1RPUl9FUkFTRSAg ICAgICAgMHhEOAorI2RlZmluZSBDTURfQlVMS19FUkFTRSAgICAgICAgICAweEM3CisjZGVmaW5l IENNRF9CTE9DS180S19FUkFTRSAgICAgIDB4MjAKKyNkZWZpbmUgQ01EX0JMT0NLXzMyS19FUkFT RSAgICAgMHg1MgorI2RlZmluZSBDTURfRU5URVJfNEJfTU9ERSAgICAgICAweEI3CisjZGVmaW5l IENNRF9FWElUXzRCX01PREUgICAgICAgIDB4RTkKKworc3RydWN0IHJrX3NmY19jb25mIHsKKyB1 aW50OF90IGNtZCwgIGRpciwgYWRkcl9sZW4sIGR1bW15X2J5dGVzOworIHVpbnQzMl90IHhmZXJf bGVuLCBhZGRyOworIH07CisKK3N0YXRpYyBzdHJ1Y3Qgb2Z3X2NvbXBhdF9kYXRhIGNvbXBhdF9k YXRhW10gPSB7CisJeyAicm9ja2NoaXAsc2ZjIiwJCTEgfSwKKwl7IE5VTEwsCQkJCQkwIH0KK307 CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Vfc3BlYyBya19zZmNfc3BlY1tdID0geworCXsgU1lT X1JFU19NRU1PUlksCTAsCVJGX0FDVElWRSB9LAorCXsgU1lTX1JFU19JUlEsCQkwLAlSRl9BQ1RJ VkUgfCBSRl9TSEFSRUFCTEUgfSwKKwl7IC0xLCAwIH0KK307CisKK3N0cnVjdCBya19zZmNfc29m dGMgeworCWRldmljZV90CWRldjsKKwlkZXZpY2VfdAlzcGlidXM7CisJc3RydWN0IHJlc291cmNl CSpyZXNbMl07CisJc3RydWN0IG10eAltdHg7CisJY2xrX3QJCWNsa19haGI7CisJY2xrX3QJCWNs a19zZmM7CisJdWludDMyX3QJdmVyc2lvbjsKKwl2b2lkICoJCWludHJoYW5kOworCWludAkJdHJh bnNmZXI7CisKKwl1aW50MzJfdAlpbnRyZWc7CisJdWludDhfdAkJKnJ4YnVmOworCXVpbnQzMl90 CXJ4aWR4OworCXVpbnQ4X3QJCSp0eGJ1ZjsKKwl1aW50MzJfdAl0eGlkeDsKKwl1aW50MzJfdAl0 eGxlbjsKKwl1aW50MzJfdAlyeGxlbjsKK307CisKKyNkZWZpbmUJUktfU0ZDX0xPQ0soc2MpCQkJ bXR4X2xvY2soJihzYyktPm10eCkKKyNkZWZpbmUJUktfU0ZDX1VOTE9DSyhzYykJCW10eF91bmxv Y2soJihzYyktPm10eCkKKyNkZWZpbmUJUktfU0ZDX1JFQURfNChzYywgcmVnKQkJYnVzX3JlYWRf NCgoc2MpLT5yZXNbMF0sIChyZWcpKQorI2RlZmluZQlSS19TRkNfV1JJVEVfNChzYywgcmVnLCB2 YWwpCWJ1c193cml0ZV80KChzYyktPnJlc1swXSwgKHJlZyksICh2YWwpKQorCisjaWYgMAorICNk ZWZpbmUgZHByaW50ZihkZXYsIGZvcm1hdCwgYXJnLi4uKSAgICAgZGV2aWNlX3ByaW50ZihkZXYs ICIlczogIiBmb3JtYXQsIF9fZnVuY19fLCBhcmcpCisjZWxzZQorICNkZWZpbmUgZHByaW50Zihk ZXYsIGZvcm1hdCwgYXJnLi4uKQorI2VuZGlmCisKK3N0YXRpYyBpbnQgcmtfc2ZjX3Byb2JlKGRl dmljZV90IGRldik7CitzdGF0aWMgaW50IHJrX3NmY19hdHRhY2goZGV2aWNlX3QgZGV2KTsKK3N0 YXRpYyBpbnQgcmtfc2ZjX2RldGFjaChkZXZpY2VfdCBkZXYpOworc3RhdGljIHZvaWQgcmtfc2Zj X2ludHIodm9pZCAqYXJnKTsKKworCitzdGF0aWMgaW50Citya19zZmNfcmVzZXQoc3RydWN0IHJr X3NmY19zb2Z0YyAqc2MpCit7CisJaW50IGVycm9yLCBpOworCXVpbnQzMl90IHN0YXR1czsKKwor CVJLX1NGQ19XUklURV80KHNjLCBTRkNfUkNWUiwgU0ZDX1JDVlJfUkVTRVQpOworCisJZm9yKGkg PSAwOyBpIDwgMTAwMDA7aSsrKSB7CisJCXN0YXR1cyA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19S Q1ZSKTsKKwkJaWYoIShzdGF0dXMgJiBTRkNfUkNWUl9SRVNFVCkpIGJyZWFrOworCQlERUxBWSgy MCk7CisJfQorCisJZXJyb3IgPSBzdGF0dXMgJiBTRkNfUkNWUl9SRVNFVDsKKwlpZiAoZXJyb3Ip CisJCWRldmljZV9wcmludGYoc2MtPmRldiwgIlNGQyByZXNldCBkaWQgbm90IGZpbmlzaFxuIik7 CisKKwkvKiBTdGlsbCBuZWVkIHRvIGNsZWFyIHRoZSBtYXNrZWQgaW50ZXJydXB0IGZyb20gUklT UiAqLworCVJLX1NGQ19XUklURV80KHNjLCBTRkNfSUNMUiwgMHhGRkZGRkZGRik7CisKKwlkcHJp bnRmKHNjLT5kZXYsICJyZXNldCAlc1xuIiwgIiIpOworCisJcmV0dXJuIGVycm9yOworfQorCitz dGF0aWMgdWludDMyX3QKK3JrX3NmY19nZXRfdmVyc2lvbihzdHJ1Y3Qgcmtfc2ZjX3NvZnRjICpz YykKK3sKKwlyZXR1cm4gIChSS19TRkNfUkVBRF80KHNjLCBTRkNfVkVSKSAmIDB4ZmZmZik7Cit9 CisKK3N0YXRpYyB1aW50MzJfdAorcmtfc2ZjX2dldF9tYXhfaW9zaXplKHN0cnVjdCBya19zZmNf c29mdGMgKnNjKQoreworCXJldHVybiBTRkNfTUFYX0lPU0laRV9WRVIzOworfQorCisKK3N0YXRp YyB2b2lkCitya19zZmNfaXJxX21hc2soc3RydWN0IHJrX3NmY19zb2Z0YyAqc2MsIHVpbnQzMl90 IG1hc2spCit7CisJdWludDMyX3QgcmVnOworCisJLyogRGlzYWJsZSB0cmFuc2ZlciBmaW5pc2gg aW50ZXJydXB0ICovCisJcmVnID0gUktfU0ZDX1JFQURfNChzYywgU0ZDX0lNUik7CisJcmVnIHw9 IG1hc2s7CisJUktfU0ZDX1dSSVRFXzQoc2MsIFNGQ19JTVIsIHJlZyk7Cit9CisKK3N0YXRpYyB2 b2lkCitya19zZmNfaXJxX3VubWFzayhzdHJ1Y3Qgcmtfc2ZjX3NvZnRjICpzYywgdWludDMyX3Qg bWFzaykKK3sKKwl1aW50MzJfdCByZWc7CisKKwkvKiBFbmFibGUgdHJhbnNmZXIgY29tcGxldGUg aW50ZXJydXB0ICovCisJcmVnID0gUktfU0ZDX1JFQURfNChzYywgU0ZDX0lNUik7CisJcmVnICY9 IH5tYXNrOworCVJLX1NGQ19XUklURV80KHNjLCBTRkNfSU1SLCByZWcpOworfQorc3RhdGljIGlu dAorcmtfc2ZjX2luaXQoc3RydWN0IHJrX3NmY19zb2Z0YyAqc2MpCit7CisJUktfU0ZDX1dSSVRF XzQoc2MsIFNGQ19DVFJMLCAwKTsKKwlSS19TRkNfV1JJVEVfNChzYywgU0ZDX0lDTFIsIDB4RkZG RkZGRkYpOworCXJrX3NmY19pcnFfbWFzayhzYywgMHhGRkZGRkZGRik7CisJaWYgKHJrX3NmY19n ZXRfdmVyc2lvbihzYykgPj0gU0ZDX1ZFUl80KQorCQlSS19TRkNfV1JJVEVfNChzYywgU0ZDX0xF Tl9DVFJMLCBTRkNfTEVOX0NUUkxfVFJCX1NFTCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludAorcmtfc2ZjX3hmZXJfZG9uZShzdHJ1Y3Qgcmtfc2ZjX3NvZnRjICpzYywgdWludDMyX3Qg dGltZW91dF91cykKK3sKKwlpbnQgcmV0ID0gMCwgY3ljbGVzID0wOworCXVpbnQzMl90IHN0YXR1 czsKKwlzYmludGltZV90IHNidF9lbmQgPSBzYmludXB0aW1lKCkgKyA0Mjk0ICogdGltZW91dF91 czsKKworCXdoaWxlKDEpIHsKKwkJY3ljbGVzKys7CisJCXN0YXR1cyA9IFJLX1NGQ19SRUFEXzQo c2MsIFNGQ19TUik7CisJCWlmKCEoc3RhdHVzICYgU0ZDX1NSX0lTX0JVU1kpKSBicmVhazsKKwkJ aWYoZ2V0c2JpbnVwdGltZSgpID4gc2J0X2VuZCkgeworCQkJcmV0ID0gMTsKKwkJCWJyZWFrOwor CQl9CisJfQorCWlmIChyZXQpIHsKKwkJZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAid2FpdCBzZmMg aWRsZSB0aW1lb3V0LCBjeWNsZXM9JWRcbiIsIGN5Y2xlcyk7CisJCXJrX3NmY19yZXNldChzYyk7 CisKKwkJcmV0ID0gRUlPOworCX0KKworCXJldHVybiAocmV0KTsKK30KK3N0YXRpYyBpbnQKK3Jr X3NmY193YWl0X3R4Zmlmb19yZWFkeShzdHJ1Y3Qgcmtfc2ZjX3NvZnRjICpzYywgdWludDMyX3Qg dGltZW91dF91cywgdWludDMyX3QgKmxldmVsKQoreworCWludCByZXQgPSAwLCBjeWNsZXMgPSAw OworCXVpbnQzMl90IHN0YXR1czsKKwlzYmludGltZV90IHNidF9lbmQgPSBzYmludXB0aW1lKCkg KyA0Mjk0ICogdGltZW91dF91czsKKwl3aGlsZSgxKSB7CisJCWN5Y2xlcysrOworCQlzdGF0dXMg PSBSS19TRkNfUkVBRF80KHNjLCBTRkNfRlNSKTsKKwkJaWYoc3RhdHVzICYgU0ZDX0ZTUl9UWExW X01BU0spIGJyZWFrOworCQlpZihnZXRzYmludXB0aW1lKCkgPiBzYnRfZW5kKSB7CisJCQlyZXQg PSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAocmV0KSB7CisJCWRldmljZV9wcmludGYo c2MtPmRldiwgInNmYyB3YWl0IHR4IGZpZm8gdGltZW91dCwgY3ljbGVzPSVkXG4iLCBjeWNsZXMp OworCisJCXJldHVybiAoRVRJTUVET1VUKTsKKwl9CisKKwkqbGV2ZWwgPSAoc3RhdHVzICYgU0ZD X0ZTUl9UWExWX01BU0spID4+IFNGQ19GU1JfVFhMVl9TSElGVDsKKwlyZXR1cm4gKDApOworfQor CitzdGF0aWMgaW50Citya19zZmNfd2FpdF9yeGZpZm9fcmVhZHkoc3RydWN0IHJrX3NmY19zb2Z0 YyAqc2MsIHVpbnQzMl90IHRpbWVvdXRfdXMsIHVpbnQzMl90ICpsZXZlbCkKK3sKKwlpbnQgcmV0 ID0gMCwgY3ljbGVzID0gMDsKKwl1aW50MzJfdCBzdGF0dXM7CisgICAgICAgIHNiaW50aW1lX3Qg c2J0X2VuZCA9IHNiaW51cHRpbWUoKSArIDQyOTQgKiB0aW1lb3V0X3VzOworCisgICAgICAgIHdo aWxlKDEpIHsKKwkJY3ljbGVzKys7CisJCXN0YXR1cyA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19G U1IpOworCQlpZihzdGF0dXMgJiBTRkNfRlNSX1JYTFZfTUFTSykgYnJlYWs7CisJCWlmKGdldHNi aW51cHRpbWUoKSA+IHNidF9lbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IDE7 CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKwkJfQorICAgICAgICB9CisJaWYgKHJl dCkgeworCQlkZXZpY2VfcHJpbnRmKHNjLT5kZXYsICJzZmMgd2FpdCByeCBmaWZvIHRpbWVvdXQs IGN5Y2xlcz0lZFxuIiwgY3ljbGVzKTsKKworCQlyZXR1cm4gKEVUSU1FRE9VVCk7CisJfQorCisJ KmxldmVsID0gKHN0YXR1cyAmIFNGQ19GU1JfUlhMVl9NQVNLKSA+PiBTRkNfRlNSX1JYTFZfU0hJ RlQ7CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIGludAorcmtfc2ZjX3dyaXRlX2ZpZm8oc3Ry dWN0IHJrX3NmY19zb2Z0YyAqc2MsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IGxlbikKK3sKKwl1 aW50OF90IGJ5dGVzID0gbGVuICYgMHgzOworCXVpbnQzMl90IGR3b3JkczsKKwlpbnQgdHhfbGV2 ZWwsIGVycm9yOworCXVpbnQzMl90IHdyaXRlX3dvcmRzOworCXVpbnQzMl90IHRtcCA9IDA7CisK Kwlkd29yZHMgPSBsZW4gPj4gMjsKKwl3aGlsZSAoZHdvcmRzKSB7CisJCWVycm9yID0gcmtfc2Zj X3dhaXRfdHhmaWZvX3JlYWR5KHNjLCAxMDAwLCAmdHhfbGV2ZWwpOworCQlpZiAoZXJyb3IpCisJ CQlyZXR1cm4gKGVycm9yKTsKKwkJd3JpdGVfd29yZHMgPXR4X2xldmVsIDwgZHdvcmRzID8gdHhf bGV2ZWwgOiBkd29yZHM7CisJCXdoaWxlKHdyaXRlX3dvcmRzKSB7CisJCQlSS19TRkNfV1JJVEVf NChzYywgU0ZDX0RBVEEsICooKGNvbnN0IHVpbnQzMl90ICopYnVmKSk7CisJCQlidWYgKz0gNDsK KwkJCXdyaXRlX3dvcmRzLS07CisJCQlkd29yZHMtLTsKKwkJCX0KKwl9CisKKwkvKiB3cml0ZSB0 aGUgcmVzdCBub24gd29yZCBhbGlnbmVkIGJ5dGVzICovCisJaWYgKGJ5dGVzKSB7CisJCWVycm9y ID0gcmtfc2ZjX3dhaXRfdHhmaWZvX3JlYWR5KHNjLCAxMDAwLCAmdHhfbGV2ZWwpOworCQlpZiAo ZXJyb3IpCisJCQlyZXR1cm4gKGVycm9yKTsKKwkJbWVtY3B5KCZ0bXAsIGJ1ZiwgYnl0ZXMpOwor CQlSS19TRkNfV1JJVEVfNChzYywgU0ZDX0RBVEEsIHRtcCk7CisJfQorCisJcmV0dXJuIChsZW4p OworfQorCitzdGF0aWMgaW50Citya19zZmNfcmVhZF9maWZvKHN0cnVjdCBya19zZmNfc29mdGMg KnNjLCB1aW50OF90ICpidWYsIGludCBsZW4pCit7CisJdWludDhfdCBieXRlcyA9IGxlbiAmIDB4 MzsKKwl1aW50MzJfdCBkd29yZHM7CisJdWludDhfdCByZWFkX3dvcmRzOworCWludCByeF9sZXZl bDsKKwlpbnQgdG1wLCBlcnJvcjsKKworCS8qIHdvcmQgYWxpZ25lZCBhY2Nlc3Mgb25seSAqLwor CWR3b3JkcyA9IGxlbiA+PiAyOworCXdoaWxlIChkd29yZHMpIHsKKwkJZXJyb3IgPSBya19zZmNf d2FpdF9yeGZpZm9fcmVhZHkoc2MsIDEwMDAwLCAmcnhfbGV2ZWwpOworCQlpZiAoZXJyb3IpCisJ CQlyZXR1cm4gKGVycm9yKTsKKwkJcmVhZF93b3JkcyA9IHJ4X2xldmVsIDwgZHdvcmRzID8gcnhf bGV2ZWwgOiBkd29yZHM7CisJCXdoaWxlKHJlYWRfd29yZHMpIHsKKwkJICooKHVpbnQzMl90ICop YnVmKSA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19EQVRBKTsKKwkJIGJ1ZiArPSA0OworCQkgcmVh ZF93b3Jkcy0tOworCQkgZHdvcmRzLS07CisJCSB9CisJfQorCisJLyogcmVhZCB0aGUgcmVzdCBu b24gd29yZCBhbGlnbmVkIGJ5dGVzICovCisJaWYgKGJ5dGVzKSB7CisJCWVycm9yID0gcmtfc2Zj X3dhaXRfcnhmaWZvX3JlYWR5KHNjLCAxMDAwMCwgJnJ4X2xldmVsKTsKKwkJaWYgKGVycm9yKQor CQkJcmV0dXJuIChlcnJvcik7CisJCXRtcCA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19EQVRBKTsK KwkJbWVtY3B5KGJ1ZiwgJnRtcCwgYnl0ZXMpOworCX0KKworCXJldHVybiAobGVuKTsKK30KKwor CitzdGF0aWMgaW50Citya19zZmNfeGZlcl9kYXRhX3BvbGwoc3RydWN0IHJrX3NmY19zb2Z0YyAq c2MsIHZvaWQgKmJ1ZmZlciwgdWludDhfdCBkaXIsIHVpbnQzMl90IGxlbikKK3sKKworCWRwcmlu dGYoc2MtPmRldiwgInNmYyB4ZmVyX3BvbGwgZGlyPSVkIGxlbj0leFxuIiwgZGlyLCBsZW4pOwor CisJaWYgKGRpciA9PSBSS19TRkNfWEZFUl9PVVQpCisJCXJldHVybiBya19zZmNfd3JpdGVfZmlm byhzYywgYnVmZmVyLCBsZW4pOworCWVsc2UKKwkJcmV0dXJuIHJrX3NmY19yZWFkX2ZpZm8oc2Ms IGJ1ZmZlciwgIGxlbik7Cit9CitzdGF0aWMgaW50Citya19zZmNfcHJvYmUoZGV2aWNlX3QgZGV2 KQoreworCWlmICghb2Z3X2J1c19zdGF0dXNfb2theShkZXYpKQorCQlyZXR1cm4gKEVOWElPKTsK KworCWlmICghb2Z3X2J1c19zZWFyY2hfY29tcGF0aWJsZShkZXYsIGNvbXBhdF9kYXRhKS0+b2Nk X2RhdGEpCisJCXJldHVybiAoRU5YSU8pOworCisJZGV2aWNlX3NldF9kZXNjKGRldiwgIlJvY2tj aGlwIFNlcmlhbCBGbGFzaCBDb250cm9sbGVyIik7CisJcmV0dXJuIChCVVNfUFJPQkVfREVGQVVM VCk7Cit9CisKK3N0YXRpYyBpbnQKK3JrX3NmY19hdHRhY2goZGV2aWNlX3QgZGV2KQoreworCXN0 cnVjdCBya19zZmNfc29mdGMgKnNjOworCWludCBlcnJvcjsKKworCXNjID0gZGV2aWNlX2dldF9z b2Z0YyhkZXYpOworCXNjLT5kZXYgPSBkZXY7CisKKwltdHhfaW5pdCgmc2MtPm10eCwgZGV2aWNl X2dldF9uYW1ldW5pdChkZXYpLCBOVUxMLCBNVFhfREVGKTsKKworCWlmIChidXNfYWxsb2NfcmVz b3VyY2VzKGRldiwgcmtfc2ZjX3NwZWMsIHNjLT5yZXMpICE9IDApIHsKKwkJZGV2aWNlX3ByaW50 ZihkZXYsICJjYW5ub3QgYWxsb2NhdGUgcmVzb3VyY2VzIGZvciBkZXZpY2VcbiIpOworCQllcnJv ciA9IEVOWElPOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKGJ1c19zZXR1cF9pbnRyKGRldiwg c2MtPnJlc1sxXSwKKwkgICAgSU5UUl9UWVBFX01JU0MgfCBJTlRSX01QU0FGRSwgTlVMTCwgcmtf c2ZjX2ludHIsIHNjLAorCSAgICAmc2MtPmludHJoYW5kKSkgeworCQlidXNfcmVsZWFzZV9yZXNv dXJjZXMoZGV2LCBya19zZmNfc3BlYywgc2MtPnJlcyk7CisJCWRldmljZV9wcmludGYoZGV2LCAi Y2Fubm90IHNldHVwIGludGVycnVwdCBoYW5kbGVyXG4iKTsKKwkJcmV0dXJuIChFTlhJTyk7CisJ fQorCisJLyogQWN0aXZhdGUgdGhlIG1vZHVsZSBjbG9jay4gKi8KKwllcnJvciA9IGNsa19nZXRf Ynlfb2Z3X25hbWUoZGV2LCAwLCAiaGNsa19zZmMiLCAmc2MtPmNsa19haGIpOworCWlmIChlcnJv ciAhPSAwKSB7CisJCWRldmljZV9wcmludGYoZGV2LCAiY2Fubm90IGdldCBzZmMgYWhiIGNsb2Nr XG4iKTsKKwkJZ290byBmYWlsOworCX0KKwllcnJvciA9IGNsa19nZXRfYnlfb2Z3X25hbWUoZGV2 LCAwLCAiY2xrX3NmYyIsICZzYy0+Y2xrX3NmYyk7CisJaWYgKGVycm9yICE9IDApIHsKKwkJZGV2 aWNlX3ByaW50ZihkZXYsICJjYW5ub3QgZ2V0IGNsa19zZmMgY2xvY2tcbiIpOworCQlnb3RvIGZh aWw7CisJfQorCWVycm9yID0gY2xrX2VuYWJsZShzYy0+Y2xrX2FoYik7CisJaWYgKGVycm9yICE9 IDApIHsKKwkJZGV2aWNlX3ByaW50ZihkZXYsICJjYW5ub3QgZW5hYmxlIGFoYiBjbG9ja1xuIik7 CisJCWdvdG8gZmFpbDsKKwl9CisJZXJyb3IgPSBjbGtfZW5hYmxlKHNjLT5jbGtfc2ZjKTsKKwlp ZiAoZXJyb3IgIT0gMCkgeworCQlkZXZpY2VfcHJpbnRmKGRldiwgImNhbm5vdCBlbmFibGUgc2Zj IGNsb2NrXG4iKTsKKwkJZ290byBmYWlsOworCX0KKworCXJrX3NmY19pbml0KHNjKTsKKwlzYy0+ dmVyc2lvbiA9IHJrX3NmY19nZXRfdmVyc2lvbihzYyk7CisJZGV2aWNlX3ByaW50ZihkZXYsICJS b2NrY2hpcCBTRkMgdmVyc2lvbiAlZFxuIiwgc2MtPnZlcnNpb24pOworCXNjLT5zcGlidXMgPSBk ZXZpY2VfYWRkX2NoaWxkKGRldiwgInNwaWJ1cyIsIC0xKTsKKworCXJldHVybiAoYnVzX2dlbmVy aWNfYXR0YWNoKGRldikpOworCitmYWlsOgorCXJrX3NmY19kZXRhY2goZGV2KTsKKwlyZXR1cm4g KGVycm9yKTsKK30KKworc3RhdGljIGludAorcmtfc2ZjX2RldGFjaChkZXZpY2VfdCBkZXYpCit7 CisJc3RydWN0IHJrX3NmY19zb2Z0YyAqc2M7CisKKwlzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2 KTsKKworCWJ1c19nZW5lcmljX2RldGFjaChzYy0+ZGV2KTsKKwlpZiAoc2MtPnNwaWJ1cyAhPSBO VUxMKQorCQlkZXZpY2VfZGVsZXRlX2NoaWxkKGRldiwgc2MtPnNwaWJ1cyk7CisKKwlpZiAoc2Mt PmNsa19zZmMgIT0gTlVMTCkKKwkJY2xrX3JlbGVhc2Uoc2MtPmNsa19zZmMpOworCWlmIChzYy0+ Y2xrX2FoYikKKwkJY2xrX3JlbGVhc2Uoc2MtPmNsa19haGIpOworCisJaWYgKHNjLT5pbnRyaGFu ZCAhPSBOVUxMKQorCQlidXNfdGVhcmRvd25faW50cihzYy0+ZGV2LCBzYy0+cmVzWzFdLCBzYy0+ aW50cmhhbmQpOworCisJYnVzX3JlbGVhc2VfcmVzb3VyY2VzKGRldiwgcmtfc2ZjX3NwZWMsIHNj LT5yZXMpOworCW10eF9kZXN0cm95KCZzYy0+bXR4KTsKKworCXJldHVybiAoMCk7Cit9CisKK3N0 YXRpYyB2b2lkCitya19zZmNfaW50cih2b2lkICphcmcpCit7CisJc3RydWN0IHJrX3NmY19zb2Z0 YyAqc2M7CisJdWludDMyX3QgcmVnOworCisJc2MgPSBhcmc7CisJUktfU0ZDX0xPQ0soc2MpOwor CXJlZyA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19SSVNSKTsKKwlSS19TRkNfV1JJVEVfNChzYywg U0ZDX0lDTFIsIHJlZyk7CisJUktfU0ZDX1VOTE9DSyhzYyk7Cit9CisKK3N0YXRpYyBwaGFuZGxl X3QKK3JrX3NmY19nZXRfbm9kZShkZXZpY2VfdCBidXMsIGRldmljZV90IGRldikKK3sKKworCXJl dHVybiBvZndfYnVzX2dldF9ub2RlKGJ1cyk7Cit9CisKKworc3RhdGljIGludAorcmtfc2ZjX3hm ZXJfc2V0dXAoc3RydWN0IHJrX3NmY19zb2Z0YyAqc2MsIHN0cnVjdCBya19zZmNfY29uZiAqb3As IHVpbnQzMl90IGNzKQoreworCXVpbnQzMl90IGN0cmwgPSAwLCBjbWQgPSAwOworCisJLyogc2V0 IENNRCAqLworCWNtZCA9IG9wLT5jbWQ7CisKKwkvKiBzZXQgQUREUiAqLworCWlmIChvcC0+YWRk cl9sZW4pIHsKKwkJaWYgKG9wLT5hZGRyX2xlbiA9PSA0KSB7CisJCQljbWQgfD0gU0ZDX0NNRF9B RERSXzMyQklUUyA8PCBTRkNfQ01EX0FERFJfU0hJRlQ7CisJCX0gZWxzZSBpZiAob3AtPmFkZHJf bGVuID09IDMpIHsKKwkJCWNtZCB8PSBTRkNfQ01EX0FERFJfMjRCSVRTIDw8IFNGQ19DTURfQURE Ul9TSElGVDsKKwkJfSBlbHNlIHsKKwkJCWNtZCB8PSBTRkNfQ01EX0FERFJfWEJJVFMgPDwgU0ZD X0NNRF9BRERSX1NISUZUOworCQkJUktfU0ZDX1dSSVRFXzQoc2MsIFNGQ19BQklULCBvcC0+YWRk cl9sZW4gKiA4IC0gMSk7CisJCX0KKworCX0KKworCS8qIHNldCBEVU1NWSAqLworCWlmIChvcC0+ ZHVtbXlfYnl0ZXMpIHsKKwkJY21kIHw9IG9wLT5kdW1teV9ieXRlcyAqIDggPDwgU0ZDX0NNRF9E VU1NWV9TSElGVDsKKwl9CisKKwkvKiBzZXQgREFUQSAqLworCWlmIChzYy0+dmVyc2lvbiA+PSBT RkNfVkVSXzQpIC8qIENsZWFyIGl0IGlmIG5vIGRhdGEgdG8gdHJhbnNmZXIgKi8KKwkJUktfU0ZD X1dSSVRFXzQoc2MsIFNGQ19MRU5fRVhULCBvcC0+eGZlcl9sZW4pOworCWVsc2UKKwkJY21kIHw9 IG9wLT54ZmVyX2xlbiA8PCBTRkNfQ01EX1RSQU5fQllURVNfU0hJRlQ7CisKKwlpZiAob3AtPnhm ZXJfbGVuKSB7CisJCWlmIChvcC0+ZGlyID09IFJLX1NGQ19YRkVSX09VVCkKKwkJCWNtZCB8PSBT RkNfQ01EX0RJUl9XUiA8PCBTRkNfQ01EX0RJUl9TSElGVDsKKworCX0KKwlpZiAoIW9wLT54ZmVy X2xlbiAmJiBvcC0+YWRkcl9sZW4pCisJCWNtZCB8PSBTRkNfQ01EX0RJUl9XUiA8PCBTRkNfQ01E X0RJUl9TSElGVDsKKworCS8qIHNldCB0aGUgQ29udHJvbGxlciAqLworCWN0cmwgfD0gU0ZDX0NU UkxfUEhBU0VfU0VMX05FR0FUSVZFOworCWNtZCB8PSBjcyA8PCBTRkNfQ01EX0NTX1NISUZUOwor CisJZHByaW50ZihzYy0+ZGV2LCAic2ZjIGFkZHIubmJ5dGVzPSV4KHglZCkgZHVtbXkubmJ5dGVz PSV4KHglZClcbiIsCisJCW9wLT5hZGRyX2xlbiwgMSwKKwkJb3AtPmR1bW15X2J5dGVzLCAxKTsK KwlkcHJpbnRmKHNjLT5kZXYsICJzZmMgY3RybD0leCBjbWQ9JXggYWRkcj0leCBsZW49JXhcbiIs CisJCWN0cmwsIGNtZCwgb3AtPmFkZHIsIG9wLT54ZmVyX2xlbik7CisKKwlSS19TRkNfV1JJVEVf NChzYywgU0ZDX0NUUkwsIGN0cmwpOworCVJLX1NGQ19XUklURV80KHNjLCBTRkNfQ01ELCBjbWQp OworCisJaWYgKG9wLT5hZGRyX2xlbikKKwkJUktfU0ZDX1dSSVRFXzQoc2MsIFNGQ19BRERSLCBv cC0+YWRkcik7CisKKwlyZXR1cm4gKDApOworfQorc3RhdGljIHVpbnQzMl90Citta19hZGRyKHVp bnQ4X3QgKmIsIHVpbnQ4X3QgbGVuKQoreworS0FTU0VSVCgobGVuID09IDMpIHx8IChsZW4gPT0g NCksICgiSW52YWxpZCBzZmMgYWRkcmVzcyBsZW5ndGgiKSk7CisgIGlmKGxlbiA9PSAzKQorICAg cmV0dXJuIChiWzBdIDw8IDE2KSB8IChiWzFdIDw8IDgpIHwgYlsyXTsKKyAgZWxzZSAvKiBsZW4g PT0gNCovCisgICByZXR1cm4gKGJbMF0gPDwgMjQpIHwgKGJbMV0gPDwgMTYpIHwgKGJbMl0gPDwg OCkgfCBiWzNdOworfQorCitzdGF0aWMgaW50Citya19zZmNfdHJhbnNmZXIoZGV2aWNlX3QgZGV2 LCBkZXZpY2VfdCBjaGlsZCwgc3RydWN0IHNwaV9jb21tYW5kICpjbWQpCit7CisJc3RydWN0IHJr X3NmY19zb2Z0YyAqc2M7CisJdWludDMyX3QgY3MsIG1vZGUsIGNsb2NrLCByZXQ7CisJdm9pZCAq dGJ1ZjsKKwl1aW50OF90ICp0eF9jbWQgPSAodWludDhfdCAqKSBjbWQtPnR4X2NtZDsKKwlzdHJ1 Y3Qgcmtfc2ZjX2NvbmYgb3A7CisKKwltZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKKworCW9w LmNtZCA9IHR4X2NtZFswXTsKKwlvcC5kaXIgPSAgUktfU0ZDX1hGRVJfT1VUOworCisJaW50IGVy ciA9IDA7CisKKwlzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKKwlzcGlidXNfZ2V0X2NzKGNo aWxkLCAmY3MpOworCXNwaWJ1c19nZXRfY2xvY2soY2hpbGQsICZjbG9jayk7CisJc3BpYnVzX2dl dF9tb2RlKGNoaWxkLCAmbW9kZSk7CisKKwlvcC54ZmVyX2xlbiA9IGNtZC0+dHhfZGF0YV9zejsK Kwl0YnVmID0gY21kLT50eF9kYXRhOworCVJLX1NGQ19MT0NLKHNjKTsKKwllcnIgPSAwOworCWRw cmludGYoc2MtPmRldiwgIkNNRFhYICVkICVkICVkXG4iLCB0eF9jbWRbMF0sIGNtZC0+dHhfY21k X3N6LCBjbWQtPnR4X2RhdGFfc3opOworCWlmKGNtZC0+dHhfY21kX3N6ICE9IDEpIHsKKwkgc3dp dGNoIChvcC5jbWQpIHsKKworCSAgY2FzZSBDTURfUkVBRF9TVEFUVVM6CisJICAgdGJ1ZiA9IChj aGFyICopY21kLT5yeF9jbWQgKyAxOworCSAgIG9wLmRpciA9IFJLX1NGQ19YRkVSX0lOOworCSAg IG9wLnhmZXJfbGVuID0gMTsKKwkgICBicmVhazsKKworCSAgY2FzZSBDTURfUkVBRF9JREVOVDoK KwkgICBvcC54ZmVyX2xlbiA9IDM7CisJICAgb3AuZGlyID0gUktfU0ZDX1hGRVJfSU47CisJICAg dGJ1ZiA9ICgoY2hhciAqKWNtZC0+cnhfY21kKSArIDE7CisJICAgYnJlYWs7CisKKwkgIGNhc2Ug Q01EX0JMT0NLXzRLX0VSQVNFOgorCSAgY2FzZSBDTURfQkxPQ0tfMzJLX0VSQVNFOgorCSAgY2Fz ZSBDTURfU0VDVE9SX0VSQVNFOgorCSAgIG9wLnhmZXJfbGVuID0gMDsKKwkgICBvcC5hZGRyX2xl biA9IGNtZC0+dHhfY21kX3N6IC0gMTsKKwkgICBvcC5hZGRyID0gbWtfYWRkcih0eF9jbWQgKyAx LCBvcC5hZGRyX2xlbik7CisJICAgIGRwcmludGYoZGV2LCAiQUREUiBEVU1QIGNtZD0lZCAlZCAl ZCAlZCAlZFxuIiwgdHhfY21kWzBdLCB0eF9jbWRbMV0sIHR4X2NtZFsyXSwgdHhfY21kWzNdLCB0 eF9jbWRbNF0pOworCSAgICBkcHJpbnRmKGRldiwgIkFERFIgRk1UIGE9JWQgbD0lZFxuIixvcC5h ZGRyLCBvcC5hZGRyX2xlbik7CisJICAgYnJlYWs7CisKKwkgIGNhc2UgQ01EX0ZBU1RfUkVBRDoK KwkgICAgb3AuZHVtbXlfYnl0ZXMgPSAxOworCSAgICBvcC5kaXIgPSBSS19TRkNfWEZFUl9JTjsK KwkgICAgb3AuYWRkcl9sZW4gPSBjbWQtPnR4X2NtZF9zeiAtIDI7CisJICAgIG9wLmFkZHIgPSBt a19hZGRyKHR4X2NtZCArIDEsIG9wLmFkZHJfbGVuKTsKKwkgICAgZHByaW50ZihkZXYsICJBRERS IERVTVAgY21kPSVkICVkICVkICVkICVkXG4iLCB0eF9jbWRbMF0sIHR4X2NtZFsxXSwgdHhfY21k WzJdLCB0eF9jbWRbM10sIHR4X2NtZFs0XSk7CisJICAgIGRwcmludGYoZGV2LCAiQUREUiBGTVQg YT0lZCBsPSVkXG4iLG9wLmFkZHIsIG9wLmFkZHJfbGVuKTsKKwkgICAgYnJlYWs7CisJICBjYXNl IENNRF9QQUdFX1BST0dSQU06CisgICAgICAgICAgIG9wLmFkZHJfbGVuID0gY21kLT50eF9jbWRf c3ogLSAxOworICAgICAgICAgICBvcC5hZGRyID0gbWtfYWRkcih0eF9jbWQgKyAxLCBvcC5hZGRy X2xlbik7CisJICAgIGRwcmludGYoZGV2LCAiQUREUiBEVU1QIGNtZD0lZCAlZCAlZCAlZCAlZFxu IiwgdHhfY21kWzBdLCB0eF9jbWRbMV0sIHR4X2NtZFsyXSwgdHhfY21kWzNdLCB0eF9jbWRbNF0p OworCSAgICBkcHJpbnRmKGRldiwgIkFERFIgRk1UIGE9JWQgbD0lZFxuIixvcC5hZGRyLCBvcC5h ZGRyX2xlbik7CisgICAgICAgICAgIGJyZWFrOworCSAgZGVmYXVsdDoKKwkgICBkZXZpY2VfcHJp bnRmKGRldiwgInVua25vd24gY21kPSVkIHR4X2NtZF9zej0lZFxuIiwgb3AuY21kLCBjbWQtPnR4 X2NtZF9zeik7CisJICAgYnJlYWs7CisJICB9CisJIH0KKwkgcmtfc2ZjX3hmZXJfc2V0dXAoc2Ms ICZvcCwgY3MpOworCSBpZihvcC54ZmVyX2xlbikgeworCSAgcmV0ID0gcmtfc2ZjX3hmZXJfZGF0 YV9wb2xsKHNjLCB0YnVmLCBvcC5kaXIsIG9wLnhmZXJfbGVuKTsKKwkgIGlmKHJldCAhPSBvcC54 ZmVyX2xlbikgeworCSAgIGRldmljZV9wcmludGYoc2MtPmRldiwiU2hvcnQgdHJhbnNmZXIgd2Fu dD0ldSBkb25lPSV1XG4iLCBvcC54ZmVyX2xlbiwgcmV0KTsKKwkgICBlcnIgPSBFSU87CisJICAg fQorCSAgfQorCVJLX1NGQ19VTkxPQ0soc2MpOworCWlmKCFlcnIpCisJIGVyciA9IHJrX3NmY194 ZmVyX2RvbmUoc2MsIDEwMDAwMCk7CisJcmV0dXJuIChlcnIpOworCit9CisKK3N0YXRpYyBkZXZp Y2VfbWV0aG9kX3Qgcmtfc2ZjX21ldGhvZHNbXSA9IHsKKwkvKiBEZXZpY2UgaW50ZXJmYWNlICov CisJREVWTUVUSE9EKGRldmljZV9wcm9iZSwJCXJrX3NmY19wcm9iZSksCisJREVWTUVUSE9EKGRl dmljZV9hdHRhY2gsCXJrX3NmY19hdHRhY2gpLAorCURFVk1FVEhPRChkZXZpY2VfZGV0YWNoLAly a19zZmNfZGV0YWNoKSwKKworICAgICAgICAvKiBzcGlidXNfaWYgICovCisJREVWTUVUSE9EKHNw aWJ1c190cmFuc2ZlciwJcmtfc2ZjX3RyYW5zZmVyKSwKKworICAgICAgICAvKiBvZndfYnVzX2lm ICovCisJREVWTUVUSE9EKG9md19idXNfZ2V0X25vZGUsCXJrX3NmY19nZXRfbm9kZSksCisKKwlE RVZNRVRIT0RfRU5ECit9OworCitzdGF0aWMgZHJpdmVyX3Qgcmtfc2ZjX2RyaXZlciA9IHsKKwki c3BpIiwKKwlya19zZmNfbWV0aG9kcywKKwlzaXplb2Yoc3RydWN0IHJrX3NmY19zb2Z0YyksCit9 OworCitEUklWRVJfTU9EVUxFKHJrX3NmYywgc2ltcGxlYnVzLCBya19zZmNfZHJpdmVyLCAwLCAw KTsKK0RSSVZFUl9NT0RVTEUob2Z3X3NwaWJ1cywgcmtfc2ZjLCBvZndfc3BpYnVzX2RyaXZlciwg MCwgMCk7CitNT0RVTEVfREVQRU5EKHJrX3NmYywgb2Z3X3NwaWJ1cywgMSwgMSwgMSk7CitPRldC VVNfUE5QX0lORk8oY29tcGF0X2RhdGEpOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9mbGFzaC9teDI1 bC5jIGIvc3lzL2Rldi9mbGFzaC9teDI1bC5jCi0tLSBhL3N5cy9kZXYvZmxhc2gvbXgyNWwuYwor KysgYi9zeXMvZGV2L2ZsYXNoL214MjVsLmMKQEAgLTEyMiw2ICsxMjIsOCBAQAogCXsgImVuMjVx NjQiLAkweDFjLCAweDMwMTcsIDY0ICogMTAyNCwgMTI4LCBGTF9FUkFTRV80SyB9LAogCXsgIm0y NXAzMiIsCTB4MjAsIDB4MjAxNiwgNjQgKiAxMDI0LCA2NCwgRkxfTk9ORSB9LAogCXsgIm0yNXA2 NCIsCTB4MjAsIDB4MjAxNywgNjQgKiAxMDI0LCAxMjgsIEZMX05PTkUgfSwKKwl7ICJ4bTI1cXUx MjhjIiwJMHgyMCwgMHg0MTE4LCA2NCAqIDEwMjQsIDI1NiwgRkxfRVJBU0VfNEsgfCBGTF9FUkFT RV8zMksgfSwKKwogCXsgIm14MjVsMTYwNmUiLCAweGMyLCAweDIwMTUsIDY0ICogMTAyNCwgMzIs IEZMX0VSQVNFXzRLfSwKIAl7ICJteDI1bGwzMiIsCTB4YzIsIDB4MjAxNiwgNjQgKiAxMDI0LCA2 NCwgRkxfTk9ORSB9LAogCXsgIm14MjVsbDY0IiwJMHhjMiwgMHgyMDE3LCA2NCAqIDEwMjQsIDEy OCwgRkxfTk9ORSB9LApAQCAtMTU0LDYgKzE1NiwxMCBAQAogCiAJLyogSW50ZWdyYXRlZCBTaWxp Y29uIFNvbHV0aW9uICovCiAJeyAiaXMyNXdwMjU2IiwJMHg5ZCwgMHg3MDE5LCA2NCAqIDEwMjQs IDUxMiwgRkxfRVJBU0VfNEsgfCBGTF9FTkFCTEVfNEJfQUREUn0sCisKKyAgICAgICAgLyogemJp dCAqLworICAgICAgICB7ICJ6YjI1dnExMjgiLCAgMHg1ZSwgMHg0MDE4LCA2NCAqIDEwMjQsIDI1 NiwgRkxfRVJBU0VfNEsgfSwKKwogfTsKIAogc3RhdGljIGludAoK --b1_fdaf71f3e411f444ed98fb629687154f--