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=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_GIT autolearn=unavailable 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 1FA25C352A4 for ; Fri, 7 Feb 2020 09:24:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B54E1217BA for ; Fri, 7 Feb 2020 09:24:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="LGt/vKGw" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727114AbgBGJX5 (ORCPT ); Fri, 7 Feb 2020 04:23:57 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:16154 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727254AbgBGJX5 (ORCPT ); Fri, 7 Feb 2020 04:23:57 -0500 X-UUID: 44f2dcb1996e4a39adfdb110dc8ee3ed-20200207 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=fQXnY5ySD5QV84FDTyAregWH11dle+ihj6954JwJMK0=; b=LGt/vKGwEqAay7lamAHnp8Wox0OhiZMx8ygdQHSnB2Rw6UtxShXtVWIudl/e1JKm6ttrU1H6fFyLd6k6wjxgCfqRrDITvvAYXxfF8AwEAY+3G7qvdNVWXaW2QqkSW2m+CrtnqdueXntfvMvWYgqjSGkyHW5srGjD14m8yR8eFJg=; X-UUID: 44f2dcb1996e4a39adfdb110dc8ee3ed-20200207 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1417040284; Fri, 07 Feb 2020 17:23:36 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 7 Feb 2020 17:24:27 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 7 Feb 2020 17:22:58 +0800 From: Macpaul Lin To: Rob Herring , Mark Rutland , Matthias Brugger , Catalin Marinas , Will Deacon , Michael Turquette , Stephen Boyd , mtk01761 , Fabien Parent , Weiyi Lu , Mars Cheng , Sean Wang , Macpaul Lin , Owen Chen , Chunfeng Yun , Evan Green , Yong Wu , Joerg Roedel , Shawn Guo , Marc Zyngier , Ryder Lee , , , , , CC: Mediatek WSD Upstream , CC Hwang , Loda Chou Subject: [PATCH v7 4/7] clk: mediatek: Add MT6765 clock support Date: Fri, 7 Feb 2020 17:20:47 +0800 Message-ID: <1581067250-12744-5-git-send-email-macpaul.lin@mediatek.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1581067250-12744-1-git-send-email-macpaul.lin@mediatek.com> References: <1581067250-12744-1-git-send-email-macpaul.lin@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org RnJvbTogT3dlbiBDaGVuIDxvd2VuLmNoZW5AbWVkaWF0ZWsuY29tPg0KDQpBZGQgTVQ2NzY1IGNs b2NrIHN1cHBvcnQsIGluY2x1ZGUgdG9wY2tnZW4sIGFwbWl4ZWRzeXMsDQppbmZyYWNmZywgbWN1 Y2ZnIGFuZCBzdWJzeXN0ZW0gY2xvY2tzLg0KDQpTaWduZWQtb2ZmLWJ5OiBPd2VuIENoZW4gPG93 ZW4uY2hlbkBtZWRpYXRlay5jb20+DQpTaWduZWQtb2ZmLWJ5OiBNYXJzIENoZW5nIDxtYXJzLmNo ZW5nQG1lZGlhdGVrLmNvbT4NClNpZ25lZC1vZmYtYnk6IE1hY3BhdWwgTGluIDxtYWNwYXVsLmxp bkBtZWRpYXRlay5jb20+DQotLS0NCiBkcml2ZXJzL2Nsay9tZWRpYXRlay9LY29uZmlnICAgICAg ICAgICAgIHwgIDg2ICsrDQogZHJpdmVycy9jbGsvbWVkaWF0ZWsvTWFrZWZpbGUgICAgICAgICAg ICB8ICAgNyArDQogZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc2NS1hdWRpby5jICB8IDEw MCArKysNCiBkcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2NzY1LWNhbS5jICAgIHwgIDc0ICsr DQogZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc2NS1pbWcuYyAgICB8ICA3MCArKw0KIGRy aXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUtbWlwaTBhLmMgfCAgNjggKysNCiBkcml2ZXJz L2Nsay9tZWRpYXRlay9jbGstbXQ2NzY1LW1tLmMgICAgIHwgIDk2ICsrKw0KIGRyaXZlcnMvY2xr L21lZGlhdGVrL2Nsay1tdDY3NjUtdmNvZGVjLmMgfCAgNzAgKysNCiBkcml2ZXJzL2Nsay9tZWRp YXRlay9jbGstbXQ2NzY1LmMgICAgICAgIHwgOTUyICsrKysrKysrKysrKysrKysrKysrKysrDQog OSBmaWxlcyBjaGFuZ2VkLCAxNTIzIGluc2VydGlvbnMoKykNCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc2NS1hdWRpby5jDQogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUtY2FtLmMNCiBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc2NS1pbWcuYw0KIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2NzY1LW1pcGkwYS5jDQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUtbW0uYw0KIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2NzY1LXZjb2RlYy5jDQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUuYw0KDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvS2NvbmZpZyBiL2RyaXZlcnMvY2xrL21l ZGlhdGVrL0tjb25maWcNCmluZGV4IDdlZmMzNjE3YmJkNS4uNDhiMTI4MzVkMWEwIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvS2NvbmZpZw0KKysrIGIvZHJpdmVycy9jbGsvbWVk aWF0ZWsvS2NvbmZpZw0KQEAgLTExNyw2ICsxMTcsOTIgQEAgY29uZmlnIENPTU1PTl9DTEtfTVQy NzEyX1ZFTkNTWVMNCiAJLS0taGVscC0tLQ0KIAkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1lZGlh VGVrIE1UMjcxMiB2ZW5jc3lzIGNsb2Nrcy4NCiANCitjb25maWcgQ09NTU9OX0NMS19NVDY3NjUN CisgICAgICAgYm9vbCAiQ2xvY2sgZHJpdmVyIGZvciBNZWRpYVRlayBNVDY3NjUiDQorICAgICAg IGRlcGVuZHMgb24gKEFSQ0hfTUVESUFURUsgJiYgQVJNNjQpIHx8IENPTVBJTEVfVEVTVA0KKyAg ICAgICBzZWxlY3QgQ09NTU9OX0NMS19NRURJQVRFSw0KKyAgICAgICBkZWZhdWx0IEFSQ0hfTUVE SUFURUsgJiYgQVJNNjQNCisgICAgICAgaGVscA0KKyAgICAgICAgIFRoaXMgZHJpdmVyIHN1cHBv cnRzIE1lZGlhVGVrIE1UNjc2NSBiYXNpYyBjbG9ja3MuDQorDQorY29uZmlnIENPTU1PTl9DTEtf TVQ2NzY1X0FVRElPU1lTDQorICAgICAgIGJvb2wgIkNsb2NrIGRyaXZlciBmb3IgTWVkaWFUZWsg TVQ2NzY1IGF1ZGlvc3lzIg0KKyAgICAgICBkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ2NzY1DQor ICAgICAgIGhlbHANCisgICAgICAgICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3 NjUgYXVkaW9zeXMgY2xvY2tzLg0KKw0KK2NvbmZpZyBDT01NT05fQ0xLX01UNjc2NV9DQU1TWVMN CisgICAgICAgYm9vbCAiQ2xvY2sgZHJpdmVyIGZvciBNZWRpYVRlayBNVDY3NjUgY2Ftc3lzIg0K KyAgICAgICBkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ2NzY1DQorICAgICAgIGhlbHANCisgICAg ICAgICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3NjUgY2Ftc3lzIGNsb2Nrcy4N CisNCitjb25maWcgQ09NTU9OX0NMS19NVDY3NjVfR0NFU1lTDQorICAgICAgIGJvb2wgIkNsb2Nr IGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ2NzY1IGdjZXN5cyINCisgICAgICAgZGVwZW5kcyBvbiBD T01NT05fQ0xLX01UNjc2NQ0KKyAgICAgICBoZWxwDQorICAgICAgICAgVGhpcyBkcml2ZXIgc3Vw cG9ydHMgTWVkaWFUZWsgTVQ2NzY1IGdjZXN5cyBjbG9ja3MuDQorDQorY29uZmlnIENPTU1PTl9D TEtfTVQ2NzY1X01NU1lTDQorICAgICAgIGJvb2wgIkNsb2NrIGRyaXZlciBmb3IgTWVkaWFUZWsg TVQ2NzY1IG1tc3lzIg0KKyAgICAgICBkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ2NzY1DQorICAg ICAgIGhlbHANCisgICAgICAgICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3NjUg bW1zeXMgY2xvY2tzLg0KKw0KK2NvbmZpZyBDT01NT05fQ0xLX01UNjc2NV9JTUdTWVMNCisgICAg ICAgYm9vbCAiQ2xvY2sgZHJpdmVyIGZvciBNZWRpYVRlayBNVDY3NjUgaW1nc3lzIg0KKyAgICAg ICBkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ2NzY1DQorICAgICAgIGhlbHANCisgICAgICAgICBU aGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3NjUgaW1nc3lzIGNsb2Nrcy4NCisNCitj b25maWcgQ09NTU9OX0NMS19NVDY3NjVfVkNPREVDU1lTDQorICAgICAgIGJvb2wgIkNsb2NrIGRy aXZlciBmb3IgTWVkaWFUZWsgTVQ2NzY1IHZjb2RlY3N5cyINCisgICAgICAgZGVwZW5kcyBvbiBD T01NT05fQ0xLX01UNjc2NQ0KKyAgICAgICBoZWxwDQorICAgICAgICAgVGhpcyBkcml2ZXIgc3Vw cG9ydHMgTWVkaWFUZWsgTVQ2NzY1IHZjb2RlY3N5cyBjbG9ja3MuDQorDQorY29uZmlnIENPTU1P Tl9DTEtfTVQ2NzY1X01GR1NZUw0KKyAgICAgICBib29sICJDbG9jayBkcml2ZXIgZm9yIE1lZGlh VGVrIE1UNjc2NSBtZmdzeXMiDQorICAgICAgIGRlcGVuZHMgb24gQ09NTU9OX0NMS19NVDY3NjUN CisgICAgICAgaGVscA0KKyAgICAgICAgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1lZGlhVGVrIE1U Njc2NSBtZmdzeXMgY2xvY2tzLg0KKw0KK2NvbmZpZyBDT01NT05fQ0xLX01UNjc2NV9NSVBJMEFT WVMNCisgICAgICAgYm9vbCAiQ2xvY2sgZHJpdmVyIGZvciBNZWRpYVRlayBNVDY3NjUgbWlwaTBh c3lzIg0KKyAgICAgICBkZXBlbmRzIG9uIENPTU1PTl9DTEtfTVQ2NzY1DQorICAgICAgIGhlbHAN CisgICAgICAgICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3NjUgbWlwaTBhc3lz IGNsb2Nrcy4NCisNCitjb25maWcgQ09NTU9OX0NMS19NVDY3NjVfTUlQSTBCU1lTDQorICAgICAg IGJvb2wgIkNsb2NrIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ2NzY1IG1pcGkwYnN5cyINCisgICAg ICAgZGVwZW5kcyBvbiBDT01NT05fQ0xLX01UNjc2NQ0KKyAgICAgICBoZWxwDQorICAgICAgICAg VGhpcyBkcml2ZXIgc3VwcG9ydHMgTWVkaWFUZWsgTVQ2NzY1IG1pcGkwYnN5cyBjbG9ja3MuDQor DQorY29uZmlnIENPTU1PTl9DTEtfTVQ2NzY1X01JUEkxQVNZUw0KKyAgICAgICBib29sICJDbG9j ayBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNjc2NSBtaXBpMWFzeXMiDQorICAgICAgIGRlcGVuZHMg b24gQ09NTU9OX0NMS19NVDY3NjUNCisgICAgICAgaGVscA0KKyAgICAgICAgIFRoaXMgZHJpdmVy IHN1cHBvcnRzIE1lZGlhVGVrIE1UNjc2NSBtaXBpMWFzeXMgY2xvY2tzLg0KKw0KK2NvbmZpZyBD T01NT05fQ0xLX01UNjc2NV9NSVBJMUJTWVMNCisgICAgICAgYm9vbCAiQ2xvY2sgZHJpdmVyIGZv ciBNZWRpYVRlayBNVDY3NjUgbWlwaTFic3lzIg0KKyAgICAgICBkZXBlbmRzIG9uIENPTU1PTl9D TEtfTVQ2NzY1DQorICAgICAgIGhlbHANCisgICAgICAgICBUaGlzIGRyaXZlciBzdXBwb3J0cyBN ZWRpYVRlayBNVDY3NjUgbWlwaTFic3lzIGNsb2Nrcy4NCisNCitjb25maWcgQ09NTU9OX0NMS19N VDY3NjVfTUlQSTJBU1lTDQorICAgICAgIGJvb2wgIkNsb2NrIGRyaXZlciBmb3IgTWVkaWFUZWsg TVQ2NzY1IG1pcGkyYXN5cyINCisgICAgICAgZGVwZW5kcyBvbiBDT01NT05fQ0xLX01UNjc2NQ0K KyAgICAgIGhlbHANCisgICAgICAgICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNZWRpYVRlayBNVDY3 NjUgbWlwaTJhc3lzIGNsb2Nrcy4NCisNCitjb25maWcgQ09NTU9OX0NMS19NVDY3NjVfTUlQSTJC U1lTDQorICAgICAgIGJvb2wgIkNsb2NrIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ2NzY1IG1pcGky YnN5cyINCisgICAgICAgZGVwZW5kcyBvbiBDT01NT05fQ0xLX01UNjc2NQ0KKyAgICAgICBoZWxw DQorICAgICAgICAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWVkaWFUZWsgTVQ2NzY1IG1pcGkyYnN5 cyBjbG9ja3MuDQorDQogY29uZmlnIENPTU1PTl9DTEtfTVQ2Nzc5DQogCWJvb2wgIkNsb2NrIGRy aXZlciBmb3IgTWVkaWFUZWsgTVQ2Nzc5Ig0KIAlkZXBlbmRzIG9uIChBUkNIX01FRElBVEVLICYm IEFSTTY0KSB8fCBDT01QSUxFX1RFU1QNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRl ay9NYWtlZmlsZSBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL01ha2VmaWxlDQppbmRleCA4Y2RiNzZh NWNkNzEuLjQ1MmFjM2JjMTgzNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL01h a2VmaWxlDQorKysgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9NYWtlZmlsZQ0KQEAgLTEsNiArMSwx MyBAQA0KICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCiBvYmotJChDT05GSUdf Q09NTU9OX0NMS19NRURJQVRFSykgKz0gY2xrLW10ay5vIGNsay1wbGwubyBjbGstZ2F0ZS5vIGNs ay1hcG1peGVkLm8gY2xrLWNwdW11eC5vIHJlc2V0Lm8gY2xrLW11eC5vDQogDQorb2JqLSQoQ09O RklHX0NPTU1PTl9DTEtfTVQ2NzY1KSArPSBjbGstbXQ2NzY1Lm8NCitvYmotJChDT05GSUdfQ09N TU9OX0NMS19NVDY3NjVfQVVESU9TWVMpICs9IGNsay1tdDY3NjUtYXVkaW8ubw0KK29iai0kKENP TkZJR19DT01NT05fQ0xLX01UNjc2NV9DQU1TWVMpICs9IGNsay1tdDY3NjUtY2FtLm8NCitvYmot JChDT05GSUdfQ09NTU9OX0NMS19NVDY3NjVfSU1HU1lTKSArPSBjbGstbXQ2NzY1LWltZy5vDQor b2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ2NzY1X01JUEkwQVNZUykgKz0gY2xrLW10Njc2NS1t aXBpMGEubw0KK29iai0kKENPTkZJR19DT01NT05fQ0xLX01UNjc2NV9NTVNZUykgKz0gY2xrLW10 Njc2NS1tbS5vDQorb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ2NzY1X1ZDT0RFQ1NZUykgKz0g Y2xrLW10Njc2NS12Y29kZWMubw0KIG9iai0kKENPTkZJR19DT01NT05fQ0xLX01UNjc3OSkgKz0g Y2xrLW10Njc3OS5vDQogb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ2Nzc5X01NU1lTKSArPSBj bGstbXQ2Nzc5LW1tLm8NCiBvYmotJChDT05GSUdfQ09NTU9OX0NMS19NVDY3NzlfSU1HU1lTKSAr PSBjbGstbXQ2Nzc5LWltZy5vDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xr LW10Njc2NS1hdWRpby5jIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc2NS1hdWRpby5j DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi40Yzk4OTE2NWQ3OTUN Ci0tLSAvZGV2L251bGwNCisrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUtYXVk aW8uYw0KQEAgLTAsMCArMSwxMDAgQEANCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMA0KKy8qDQorICogQ29weXJpZ2h0IChjKSAyMDE4IE1lZGlhVGVrIEluYy4NCisgKiBBdXRo b3I6IE93ZW4gQ2hlbiA8b3dlbi5jaGVuQG1lZGlhdGVrLmNvbT4NCisgKi8NCisNCisjaW5jbHVk ZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rldmlj ZS5oPg0KKw0KKyNpbmNsdWRlICJjbGstbXRrLmgiDQorI2luY2x1ZGUgImNsay1nYXRlLmgiDQor DQorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL210Njc2NS1jbGsuaD4NCisNCitzdGF0aWMg Y29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgYXVkaW8wX2NnX3JlZ3MgPSB7DQorCS5zZXRfb2Zz ID0gMHgwLA0KKwkuY2xyX29mcyA9IDB4MCwNCisJLnN0YV9vZnMgPSAweDAsDQorfTsNCisNCitz dGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgYXVkaW8xX2NnX3JlZ3MgPSB7DQorCS5z ZXRfb2ZzID0gMHg0LA0KKwkuY2xyX29mcyA9IDB4NCwNCisJLnN0YV9vZnMgPSAweDQsDQorfTsN CisNCisjZGVmaW5lIEdBVEVfQVVESU8wKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkgewlc DQorCQkuaWQgPSBfaWQsCQkJCVwNCisJCS5uYW1lID0gX25hbWUsCQkJCVwNCisJCS5wYXJlbnRf bmFtZSA9IF9wYXJlbnQsCQkJXA0KKwkJLnJlZ3MgPSAmYXVkaW8wX2NnX3JlZ3MsCQlcDQorCQku c2hpZnQgPSBfc2hpZnQsCQkJXA0KKwkJLm9wcyA9ICZtdGtfY2xrX2dhdGVfb3BzX25vX3NldGNs ciwJXA0KKwl9DQorDQorI2RlZmluZSBHQVRFX0FVRElPMShfaWQsIF9uYW1lLCBfcGFyZW50LCBf c2hpZnQpIHsJXA0KKwkJLmlkID0gX2lkLAkJCQlcDQorCQkubmFtZSA9IF9uYW1lLAkJCQlcDQor CQkucGFyZW50X25hbWUgPSBfcGFyZW50LAkJCVwNCisJCS5yZWdzID0gJmF1ZGlvMV9jZ19yZWdz LAkJXA0KKwkJLnNoaWZ0ID0gX3NoaWZ0LAkJCVwNCisJCS5vcHMgPSAmbXRrX2Nsa19nYXRlX29w c19ub19zZXRjbHIsCVwNCisJfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGUgYXVk aW9fY2xrc1tdID0gew0KKwkvKiBBVURJTzAgKi8NCisJR0FURV9BVURJTzAoQ0xLX0FVRElPX0FG RSwgImF1ZF9hZmUiLCAiYXVkaW9fY2siLCAyKSwNCisJR0FURV9BVURJTzAoQ0xLX0FVRElPXzIy TSwgImF1ZF8yMm0iLCAiYXVkX2VuZ2VuMV9jayIsIDgpLA0KKwlHQVRFX0FVRElPMChDTEtfQVVE SU9fQVBMTF9UVU5FUiwgImF1ZF9hcGxsX3R1bmVyIiwNCisJCSAgICAiYXVkX2VuZ2VuMV9jayIs IDE5KSwNCisJR0FURV9BVURJTzAoQ0xLX0FVRElPX0FEQywgImF1ZF9hZGMiLCAiYXVkaW9fY2si LCAyNCksDQorCUdBVEVfQVVESU8wKENMS19BVURJT19EQUMsICJhdWRfZGFjIiwgImF1ZGlvX2Nr IiwgMjUpLA0KKwlHQVRFX0FVRElPMChDTEtfQVVESU9fREFDX1BSRURJUywgImF1ZF9kYWNfcHJl ZGlzIiwNCisJCSAgICAiYXVkaW9fY2siLCAyNiksDQorCUdBVEVfQVVESU8wKENMS19BVURJT19U TUwsICJhdWRfdG1sIiwgImF1ZGlvX2NrIiwgMjcpLA0KKwkvKiBBVURJTzEgKi8NCisJR0FURV9B VURJTzEoQ0xLX0FVRElPX0kyUzFfQkNMSywgImF1ZF9pMnMxX2JjbGsiLA0KKwkJICAgICJhdWRp b19jayIsIDQpLA0KKwlHQVRFX0FVRElPMShDTEtfQVVESU9fSTJTMl9CQ0xLLCAiYXVkX2kyczJf YmNsayIsDQorCQkgICAgImF1ZGlvX2NrIiwgNSksDQorCUdBVEVfQVVESU8xKENMS19BVURJT19J MlMzX0JDTEssICJhdWRfaTJzM19iY2xrIiwNCisJCSAgICAiYXVkaW9fY2siLCA2KSwNCisJR0FU RV9BVURJTzEoQ0xLX0FVRElPX0kyUzRfQkNMSywgImF1ZF9pMnM0X2JjbGsiLA0KKwkJICAgICJh dWRpb19jayIsIDcpLA0KK307DQorDQorc3RhdGljIGludCBjbGtfbXQ2NzY1X2F1ZGlvX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQorew0KKwlzdHJ1Y3QgY2xrX29uZWNlbGxf ZGF0YSAqY2xrX2RhdGE7DQorCWludCByOw0KKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBw ZGV2LT5kZXYub2Zfbm9kZTsNCisNCisJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xL X0FVRElPX05SX0NMSyk7DQorDQorCW10a19jbGtfcmVnaXN0ZXJfZ2F0ZXMobm9kZSwgYXVkaW9f Y2xrcywNCisJCQkgICAgICAgQVJSQVlfU0laRShhdWRpb19jbGtzKSwgY2xrX2RhdGEpOw0KKw0K KwlyID0gb2ZfY2xrX2FkZF9wcm92aWRlcihub2RlLCBvZl9jbGtfc3JjX29uZWNlbGxfZ2V0LCBj bGtfZGF0YSk7DQorDQorCWlmIChyKQ0KKwkJcHJfZXJyKCIlcygpOiBjb3VsZCBub3QgcmVnaXN0 ZXIgY2xvY2sgcHJvdmlkZXI6ICVkXG4iLA0KKwkJICAgICAgIF9fZnVuY19fLCByKTsNCisNCisJ cmV0dXJuIHI7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX21h dGNoX2Nsa19tdDY3NjVfYXVkaW9bXSA9IHsNCisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxt dDY3NjUtYXVkc3lzIiwgfSwNCisJe30NCit9Ow0KKw0KK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIGNsa19tdDY3NjVfYXVkaW9fZHJ2ID0gew0KKwkucHJvYmUgPSBjbGtfbXQ2NzY1X2F1 ZGlvX3Byb2JlLA0KKwkuZHJpdmVyID0gew0KKwkJLm5hbWUgPSAiY2xrLW10Njc2NS1hdWRpbyIs DQorCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9tYXRjaF9jbGtfbXQ2NzY1X2F1ZGlvLA0KKwl9LA0K K307DQorDQorYnVpbHRpbl9wbGF0Zm9ybV9kcml2ZXIoY2xrX210Njc2NV9hdWRpb19kcnYpOw0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUtY2FtLmMgYi9kcml2 ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2NzY1LWNhbS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAwLi5jOTYzOTQ4OTNiY2YNCi0tLSAvZGV2L251bGwNCisrKyBiL2Ry aXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUtY2FtLmMNCkBAIC0wLDAgKzEsNzQgQEANCisv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KKy8qDQorICogQ29weXJpZ2h0IChj KSAyMDE4IE1lZGlhVGVrIEluYy4NCisgKiBBdXRob3I6IE93ZW4gQ2hlbiA8b3dlbi5jaGVuQG1l ZGlhdGVrLmNvbT4NCisgKi8NCisNCisjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+DQor I2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KKw0KKyNpbmNsdWRlICJjbGstbXRr LmgiDQorI2luY2x1ZGUgImNsay1nYXRlLmgiDQorDQorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Ns b2NrL210Njc2NS1jbGsuaD4NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3Mg Y2FtX2NnX3JlZ3MgPSB7DQorCS5zZXRfb2ZzID0gMHg0LA0KKwkuY2xyX29mcyA9IDB4OCwNCisJ LnN0YV9vZnMgPSAweDAsDQorfTsNCisNCisjZGVmaW5lIEdBVEVfQ0FNKF9pZCwgX25hbWUsIF9w YXJlbnQsIF9zaGlmdCkgewkJXA0KKwkJLmlkID0gX2lkLAkJCQlcDQorCQkubmFtZSA9IF9uYW1l LAkJCQlcDQorCQkucGFyZW50X25hbWUgPSBfcGFyZW50LAkJCVwNCisJCS5yZWdzID0gJmNhbV9j Z19yZWdzLAkJCVwNCisJCS5zaGlmdCA9IF9zaGlmdCwJCQlcDQorCQkub3BzID0gJm10a19jbGtf Z2F0ZV9vcHNfc2V0Y2xyLAlcDQorCX0NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRl IGNhbV9jbGtzW10gPSB7DQorCUdBVEVfQ0FNKENMS19DQU1fTEFSQjMsICJjYW1fbGFyYjMiLCAi bW1fY2siLCAwKSwNCisJR0FURV9DQU0oQ0xLX0NBTV9ERlBfVkFELCAiY2FtX2RmcF92YWQiLCAi bW1fY2siLCAxKSwNCisJR0FURV9DQU0oQ0xLX0NBTSwgImNhbSIsICJtbV9jayIsIDYpLA0KKwlH QVRFX0NBTShDTEtfQ0FNVEcsICJjYW10ZyIsICJtbV9jayIsIDcpLA0KKwlHQVRFX0NBTShDTEtf Q0FNX1NFTklORiwgImNhbV9zZW5pbmYiLCAibW1fY2siLCA4KSwNCisJR0FURV9DQU0oQ0xLX0NB TVNWMCwgImNhbXN2MCIsICJtbV9jayIsIDkpLA0KKwlHQVRFX0NBTShDTEtfQ0FNU1YxLCAiY2Ft c3YxIiwgIm1tX2NrIiwgMTApLA0KKwlHQVRFX0NBTShDTEtfQ0FNU1YyLCAiY2Ftc3YyIiwgIm1t X2NrIiwgMTEpLA0KKwlHQVRFX0NBTShDTEtfQ0FNX0NDVSwgImNhbV9jY3UiLCAibW1fY2siLCAx MiksDQorfTsNCisNCitzdGF0aWMgaW50IGNsa19tdDY3NjVfY2FtX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpDQorew0KKwlzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSAqY2xrX2Rh dGE7DQorCWludCByOw0KKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwZGV2LT5kZXYub2Zf bm9kZTsNCisNCisJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xLX0NBTV9OUl9DTEsp Ow0KKw0KKwltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUsIGNhbV9jbGtzLCBBUlJBWV9TSVpF KGNhbV9jbGtzKSwgY2xrX2RhdGEpOw0KKw0KKwlyID0gb2ZfY2xrX2FkZF9wcm92aWRlcihub2Rl LCBvZl9jbGtfc3JjX29uZWNlbGxfZ2V0LCBjbGtfZGF0YSk7DQorDQorCWlmIChyKQ0KKwkJcHJf ZXJyKCIlcygpOiBjb3VsZCBub3QgcmVnaXN0ZXIgY2xvY2sgcHJvdmlkZXI6ICVkXG4iLA0KKwkJ ICAgICAgIF9fZnVuY19fLCByKTsNCisNCisJcmV0dXJuIHI7DQorfQ0KKw0KK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX21hdGNoX2Nsa19tdDY3NjVfY2FtW10gPSB7DQorCXsg LmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2NzY1LWNhbXN5cyIsIH0sDQorCXt9DQorfTsNCisN CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBjbGtfbXQ2NzY1X2NhbV9kcnYgPSB7DQor CS5wcm9iZSA9IGNsa19tdDY3NjVfY2FtX3Byb2JlLA0KKwkuZHJpdmVyID0gew0KKwkJLm5hbWUg PSAiY2xrLW10Njc2NS1jYW0iLA0KKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210 Njc2NV9jYW0sDQorCX0sDQorfTsNCisNCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihjbGtfbXQ2 NzY1X2NhbV9kcnYpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3 NjUtaW1nLmMgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2NzY1LWltZy5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi42ZmQ4YmY4MDMwZmMNCi0tLSAvZGV2 L251bGwNCisrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUtaW1nLmMNCkBAIC0w LDAgKzEsNzAgQEANCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KKy8qDQor ICogQ29weXJpZ2h0IChjKSAyMDE4IE1lZGlhVGVrIEluYy4NCisgKiBBdXRob3I6IE93ZW4gQ2hl biA8b3dlbi5jaGVuQG1lZGlhdGVrLmNvbT4NCisgKi8NCisNCisjaW5jbHVkZSA8bGludXgvY2xr LXByb3ZpZGVyLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KKw0KKyNp bmNsdWRlICJjbGstbXRrLmgiDQorI2luY2x1ZGUgImNsay1nYXRlLmgiDQorDQorI2luY2x1ZGUg PGR0LWJpbmRpbmdzL2Nsb2NrL210Njc2NS1jbGsuaD4NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0 IG10a19nYXRlX3JlZ3MgaW1nX2NnX3JlZ3MgPSB7DQorCS5zZXRfb2ZzID0gMHg0LA0KKwkuY2xy X29mcyA9IDB4OCwNCisJLnN0YV9vZnMgPSAweDAsDQorfTsNCisNCisjZGVmaW5lIEdBVEVfSU1H KF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkgewkJXA0KKwkJLmlkID0gX2lkLAkJCQlcDQor CQkubmFtZSA9IF9uYW1lLAkJCQlcDQorCQkucGFyZW50X25hbWUgPSBfcGFyZW50LAkJCVwNCisJ CS5yZWdzID0gJmltZ19jZ19yZWdzLAkJCVwNCisJCS5zaGlmdCA9IF9zaGlmdCwJCQlcDQorCQku b3BzID0gJm10a19jbGtfZ2F0ZV9vcHNfc2V0Y2xyLAlcDQorCX0NCisNCitzdGF0aWMgY29uc3Qg c3RydWN0IG10a19nYXRlIGltZ19jbGtzW10gPSB7DQorCUdBVEVfSU1HKENMS19JTUdfTEFSQjIs ICJpbWdfbGFyYjIiLCAibW1fY2siLCAwKSwNCisJR0FURV9JTUcoQ0xLX0lNR19ESVAsICJpbWdf ZGlwIiwgIm1tX2NrIiwgMiksDQorCUdBVEVfSU1HKENMS19JTUdfRkRWVCwgImltZ19mZHZ0Iiwg Im1tX2NrIiwgMyksDQorCUdBVEVfSU1HKENMS19JTUdfRFBFLCAiaW1nX2RwZSIsICJtbV9jayIs IDQpLA0KKwlHQVRFX0lNRyhDTEtfSU1HX1JTQywgImltZ19yc2MiLCAibW1fY2siLCA1KSwNCit9 Ow0KKw0KK3N0YXRpYyBpbnQgY2xrX210Njc2NV9pbWdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikNCit7DQorCXN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsNCisJ aW50IHI7DQorCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOw0K Kw0KKwljbGtfZGF0YSA9IG10a19hbGxvY19jbGtfZGF0YShDTEtfSU1HX05SX0NMSyk7DQorDQor CW10a19jbGtfcmVnaXN0ZXJfZ2F0ZXMobm9kZSwgaW1nX2Nsa3MsIEFSUkFZX1NJWkUoaW1nX2Ns a3MpLCBjbGtfZGF0YSk7DQorDQorCXIgPSBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Ns a19zcmNfb25lY2VsbF9nZXQsIGNsa19kYXRhKTsNCisNCisJaWYgKHIpDQorCQlwcl9lcnIoIiVz KCk6IGNvdWxkIG5vdCByZWdpc3RlciBjbG9jayBwcm92aWRlcjogJWRcbiIsDQorCQkgICAgICAg X19mdW5jX18sIHIpOw0KKw0KKwlyZXR1cm4gcjsNCit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgb2ZfbWF0Y2hfY2xrX210Njc2NV9pbWdbXSA9IHsNCisJeyAuY29tcGF0 aWJsZSA9ICJtZWRpYXRlayxtdDY3NjUtaW1nc3lzIiwgfSwNCisJe30NCit9Ow0KKw0KK3N0YXRp YyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGNsa19tdDY3NjVfaW1nX2RydiA9IHsNCisJLnByb2Jl ID0gY2xrX210Njc2NV9pbWdfcHJvYmUsDQorCS5kcml2ZXIgPSB7DQorCQkubmFtZSA9ICJjbGst bXQ2NzY1LWltZyIsDQorCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9tYXRjaF9jbGtfbXQ2NzY1X2lt ZywNCisJfSwNCit9Ow0KKw0KK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGNsa19tdDY3NjVfaW1n X2Rydik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc2NS1taXBp MGEuYyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUtbWlwaTBhLmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjgxNzQ0ZDBmOTVhMA0KLS0tIC9kZXYv bnVsbA0KKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc2NS1taXBpMGEuYw0KQEAg LTAsMCArMSw2OCBAQA0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQorLyoN CisgKiBDb3B5cmlnaHQgKGMpIDIwMTggTWVkaWFUZWsgSW5jLg0KKyAqIEF1dGhvcjogT3dlbiBD aGVuIDxvd2VuLmNoZW5AbWVkaWF0ZWsuY29tPg0KKyAqLw0KKw0KKyNpbmNsdWRlIDxsaW51eC9j bGstcHJvdmlkZXIuaD4NCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQorDQor I2luY2x1ZGUgImNsay1tdGsuaCINCisjaW5jbHVkZSAiY2xrLWdhdGUuaCINCisNCisjaW5jbHVk ZSA8ZHQtYmluZGluZ3MvY2xvY2svbXQ2NzY1LWNsay5oPg0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgbXRrX2dhdGVfcmVncyBtaXBpMGFfY2dfcmVncyA9IHsNCisJLnNldF9vZnMgPSAweDgwLA0K KwkuY2xyX29mcyA9IDB4ODAsDQorCS5zdGFfb2ZzID0gMHg4MCwNCit9Ow0KKw0KKyNkZWZpbmUg R0FURV9NSVBJMEEoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KSB7CVwNCisJCS5pZCA9IF9p ZCwJCQkJXA0KKwkJLm5hbWUgPSBfbmFtZSwJCQkJXA0KKwkJLnBhcmVudF9uYW1lID0gX3BhcmVu dCwJCQlcDQorCQkucmVncyA9ICZtaXBpMGFfY2dfcmVncywJCQlcDQorCQkuc2hpZnQgPSBfc2hp ZnQsCQkJXA0KKwkJLm9wcyA9ICZtdGtfY2xrX2dhdGVfb3BzX25vX3NldGNscl9pbnYsCVwNCisJ fQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGUgbWlwaTBhX2Nsa3NbXSA9IHsNCisJ R0FURV9NSVBJMEEoQ0xLX01JUEkwQV9DU1JfQ1NJX0VOXzBBLA0KKwkJICAgICJtaXBpMGFfY3Ny XzBhIiwgImZfZnNlbmluZl9jayIsIDEpLA0KK307DQorDQorc3RhdGljIGludCBjbGtfbXQ2NzY1 X21pcGkwYV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KK3sNCisJc3RydWN0 IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOw0KKwlpbnQgcjsNCisJc3RydWN0IGRldmljZV9u b2RlICpub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7DQorDQorCWNsa19kYXRhID0gbXRrX2FsbG9j X2Nsa19kYXRhKENMS19NSVBJMEFfTlJfQ0xLKTsNCisNCisJbXRrX2Nsa19yZWdpc3Rlcl9nYXRl cyhub2RlLCBtaXBpMGFfY2xrcywNCisJCQkgICAgICAgQVJSQVlfU0laRShtaXBpMGFfY2xrcyks IGNsa19kYXRhKTsNCisNCisJciA9IG9mX2Nsa19hZGRfcHJvdmlkZXIobm9kZSwgb2ZfY2xrX3Ny Y19vbmVjZWxsX2dldCwgY2xrX2RhdGEpOw0KKw0KKwlpZiAocikNCisJCXByX2VycigiJXMoKTog Y291bGQgbm90IHJlZ2lzdGVyIGNsb2NrIHByb3ZpZGVyOiAlZFxuIiwNCisJCSAgICAgICBfX2Z1 bmNfXywgcik7DQorDQorCXJldHVybiByOw0KK30NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCBvZl9tYXRjaF9jbGtfbXQ2NzY1X21pcGkwYVtdID0gew0KKwl7IC5jb21wYXRp YmxlID0gIm1lZGlhdGVrLG10Njc2NS1taXBpMGEiLCB9LA0KKwl7fQ0KK307DQorDQorc3RhdGlj IHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2xrX210Njc2NV9taXBpMGFfZHJ2ID0gew0KKwkucHJv YmUgPSBjbGtfbXQ2NzY1X21pcGkwYV9wcm9iZSwNCisJLmRyaXZlciA9IHsNCisJCS5uYW1lID0g ImNsay1tdDY3NjUtbWlwaTBhIiwNCisJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX2Nsa19t dDY3NjVfbWlwaTBhLA0KKwl9LA0KK307DQorDQorYnVpbHRpbl9wbGF0Zm9ybV9kcml2ZXIoY2xr X210Njc2NV9taXBpMGFfZHJ2KTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9j bGstbXQ2NzY1LW1tLmMgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2NzY1LW1tLmMNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjZkODIxNGM1MTY4NA0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10Njc2NS1tbS5jDQpA QCAtMCwwICsxLDk2IEBADQorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCisv Kg0KKyAqIENvcHlyaWdodCAoYykgMjAxOCBNZWRpYVRlayBJbmMuDQorICogQXV0aG9yOiBPd2Vu IENoZW4gPG93ZW4uY2hlbkBtZWRpYXRlay5jb20+DQorICovDQorDQorI2luY2x1ZGUgPGxpbnV4 L2Nsay1wcm92aWRlci5oPg0KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCisN CisjaW5jbHVkZSAiY2xrLW10ay5oIg0KKyNpbmNsdWRlICJjbGstZ2F0ZS5oIg0KKw0KKyNpbmNs dWRlIDxkdC1iaW5kaW5ncy9jbG9jay9tdDY3NjUtY2xrLmg+DQorDQorc3RhdGljIGNvbnN0IHN0 cnVjdCBtdGtfZ2F0ZV9yZWdzIG1tX2NnX3JlZ3MgPSB7DQorCS5zZXRfb2ZzID0gMHgxMDQsDQor CS5jbHJfb2ZzID0gMHgxMDgsDQorCS5zdGFfb2ZzID0gMHgxMDAsDQorfTsNCisNCisjZGVmaW5l IEdBVEVfTU0oX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KSB7CQlcDQorCQkuaWQgPSBfaWQs CQkJCVwNCisJCS5uYW1lID0gX25hbWUsCQkJCVwNCisJCS5wYXJlbnRfbmFtZSA9IF9wYXJlbnQs CQkJXA0KKwkJLnJlZ3MgPSAmbW1fY2dfcmVncywJCQlcDQorCQkuc2hpZnQgPSBfc2hpZnQsCQkJ XA0KKwkJLm9wcyA9ICZtdGtfY2xrX2dhdGVfb3BzX3NldGNsciwJXA0KKwl9DQorDQorc3RhdGlj IGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZSBtbV9jbGtzW10gPSB7DQorCS8qIE1NICovDQorCUdBVEVf TU0oQ0xLX01NX01EUF9SRE1BMCwgIm1tX21kcF9yZG1hMCIsICJtbV9jayIsIDApLA0KKwlHQVRF X01NKENMS19NTV9NRFBfQ0NPUlIwLCAibW1fbWRwX2Njb3JyMCIsICJtbV9jayIsIDEpLA0KKwlH QVRFX01NKENMS19NTV9NRFBfUlNaMCwgIm1tX21kcF9yc3owIiwgIm1tX2NrIiwgMiksDQorCUdB VEVfTU0oQ0xLX01NX01EUF9SU1oxLCAibW1fbWRwX3JzejEiLCAibW1fY2siLCAzKSwNCisJR0FU RV9NTShDTEtfTU1fTURQX1REU0hQMCwgIm1tX21kcF90ZHNocDAiLCAibW1fY2siLCA0KSwNCisJ R0FURV9NTShDTEtfTU1fTURQX1dST1QwLCAibW1fbWRwX3dyb3QwIiwgIm1tX2NrIiwgNSksDQor CUdBVEVfTU0oQ0xLX01NX01EUF9XRE1BMCwgIm1tX21kcF93ZG1hMCIsICJtbV9jayIsIDYpLA0K KwlHQVRFX01NKENMS19NTV9ESVNQX09WTDAsICJtbV9kaXNwX292bDAiLCAibW1fY2siLCA3KSwN CisJR0FURV9NTShDTEtfTU1fRElTUF9PVkwwXzJMLCAibW1fZGlzcF9vdmwwXzJsIiwgIm1tX2Nr IiwgOCksDQorCUdBVEVfTU0oQ0xLX01NX0RJU1BfUlNaMCwgIm1tX2Rpc3BfcnN6MCIsICJtbV9j ayIsIDkpLA0KKwlHQVRFX01NKENMS19NTV9ESVNQX1JETUEwLCAibW1fZGlzcF9yZG1hMCIsICJt bV9jayIsIDEwKSwNCisJR0FURV9NTShDTEtfTU1fRElTUF9XRE1BMCwgIm1tX2Rpc3Bfd2RtYTAi LCAibW1fY2siLCAxMSksDQorCUdBVEVfTU0oQ0xLX01NX0RJU1BfQ09MT1IwLCAibW1fZGlzcF9j b2xvcjAiLCAibW1fY2siLCAxMiksDQorCUdBVEVfTU0oQ0xLX01NX0RJU1BfQ0NPUlIwLCAibW1f ZGlzcF9jY29ycjAiLCAibW1fY2siLCAxMyksDQorCUdBVEVfTU0oQ0xLX01NX0RJU1BfQUFMMCwg Im1tX2Rpc3BfYWFsMCIsICJtbV9jayIsIDE0KSwNCisJR0FURV9NTShDTEtfTU1fRElTUF9HQU1N QTAsICJtbV9kaXNwX2dhbW1hMCIsICJtbV9jayIsIDE1KSwNCisJR0FURV9NTShDTEtfTU1fRElT UF9ESVRIRVIwLCAibW1fZGlzcF9kaXRoZXIwIiwgIm1tX2NrIiwgMTYpLA0KKwlHQVRFX01NKENM S19NTV9EU0kwLCAibW1fZHNpMCIsICJtbV9jayIsIDE3KSwNCisJR0FURV9NTShDTEtfTU1fRkFL RV9FTkcsICJtbV9mYWtlX2VuZyIsICJtbV9jayIsIDE4KSwNCisJR0FURV9NTShDTEtfTU1fU01J X0NPTU1PTiwgIm1tX3NtaV9jb21tb24iLCAibW1fY2siLCAxOSksDQorCUdBVEVfTU0oQ0xLX01N X1NNSV9MQVJCMCwgIm1tX3NtaV9sYXJiMCIsICJtbV9jayIsIDIwKSwNCisJR0FURV9NTShDTEtf TU1fU01JX0NPTU0wLCAibW1fc21pX2NvbW0wIiwgIm1tX2NrIiwgMjEpLA0KKwlHQVRFX01NKENM S19NTV9TTUlfQ09NTTEsICJtbV9zbWlfY29tbTEiLCAibW1fY2siLCAyMiksDQorCUdBVEVfTU0o Q0xLX01NX0NBTV9NRFAsICJtbV9jYW1fbWRwX2NrIiwgIm1tX2NrIiwgMjMpLA0KKwlHQVRFX01N KENMS19NTV9TTUlfSU1HLCAibW1fc21pX2ltZ19jayIsICJtbV9jayIsIDI0KSwNCisJR0FURV9N TShDTEtfTU1fU01JX0NBTSwgIm1tX3NtaV9jYW1fY2siLCAibW1fY2siLCAyNSksDQorCUdBVEVf TU0oQ0xLX01NX0lNR19ETF9SRUxBWSwgIm1tX2ltZ19kbF9yZWxheSIsICJtbV9jayIsIDI2KSwN CisJR0FURV9NTShDTEtfTU1fSU1HX0RMX0FTWU5DX1RPUCwgIm1tX2ltZ2RsX2FzeW5jIiwgIm1t X2NrIiwgMjcpLA0KKwlHQVRFX01NKENMS19NTV9ESUdfRFNJLCAibW1fZGlnX2RzaV9jayIsICJt bV9jayIsIDI4KSwNCisJR0FURV9NTShDTEtfTU1fRjI2TV9IUlRXVCwgIm1tX2hydHd0IiwgImZf ZjI2bV9jayIsIDI5KSwNCit9Ow0KKw0KK3N0YXRpYyBpbnQgY2xrX210Njc2NV9tbV9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KK3sNCisJc3RydWN0IGNsa19vbmVjZWxsX2Rh dGEgKmNsa19kYXRhOw0KKwlpbnQgcjsNCisJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGRl di0+ZGV2Lm9mX25vZGU7DQorDQorCWNsa19kYXRhID0gbXRrX2FsbG9jX2Nsa19kYXRhKENMS19N TV9OUl9DTEspOw0KKw0KKwltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUsIG1tX2Nsa3MsIEFS UkFZX1NJWkUobW1fY2xrcyksIGNsa19kYXRhKTsNCisNCisJciA9IG9mX2Nsa19hZGRfcHJvdmlk ZXIobm9kZSwgb2ZfY2xrX3NyY19vbmVjZWxsX2dldCwgY2xrX2RhdGEpOw0KKw0KKwlpZiAocikN CisJCXByX2VycigiJXMoKTogY291bGQgbm90IHJlZ2lzdGVyIGNsb2NrIHByb3ZpZGVyOiAlZFxu IiwNCisJCSAgICAgICBfX2Z1bmNfXywgcik7DQorDQorCXJldHVybiByOw0KK30NCisNCitzdGF0 aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tYXRjaF9jbGtfbXQ2NzY1X21tW10gPSB7 DQorCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2NzY1LW1tc3lzIiwgfSwNCisJe30NCit9 Ow0KKw0KK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGNsa19tdDY3NjVfbW1fZHJ2ID0g ew0KKwkucHJvYmUgPSBjbGtfbXQ2NzY1X21tX3Byb2JlLA0KKwkuZHJpdmVyID0gew0KKwkJLm5h bWUgPSAiY2xrLW10Njc2NS1tbSIsDQorCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9tYXRjaF9jbGtf bXQ2NzY1X21tLA0KKwl9LA0KK307DQorDQorYnVpbHRpbl9wbGF0Zm9ybV9kcml2ZXIoY2xrX210 Njc2NV9tbV9kcnYpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3 NjUtdmNvZGVjLmMgYi9kcml2ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2NzY1LXZjb2RlYy5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi5iYWFlNjY1ZmFiMzENCi0t LSAvZGV2L251bGwNCisrKyBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUtdmNvZGVj LmMNCkBAIC0wLDAgKzEsNzAgQEANCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MA0KKy8qDQorICogQ29weXJpZ2h0IChjKSAyMDE4IE1lZGlhVGVrIEluYy4NCisgKiBBdXRob3I6 IE93ZW4gQ2hlbiA8b3dlbi5jaGVuQG1lZGlhdGVrLmNvbT4NCisgKi8NCisNCisjaW5jbHVkZSA8 bGludXgvY2xrLXByb3ZpZGVyLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5o Pg0KKw0KKyNpbmNsdWRlICJjbGstbXRrLmgiDQorI2luY2x1ZGUgImNsay1nYXRlLmgiDQorDQor I2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL210Njc2NS1jbGsuaD4NCisNCitzdGF0aWMgY29u c3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgdmVuY19jZ19yZWdzID0gew0KKwkuc2V0X29mcyA9IDB4 NCwNCisJLmNscl9vZnMgPSAweDgsDQorCS5zdGFfb2ZzID0gMHgwLA0KK307DQorDQorI2RlZmlu ZSBHQVRFX1ZFTkMoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KSB7CVwNCisJCS5pZCA9IF9p ZCwJCQkJXA0KKwkJLm5hbWUgPSBfbmFtZSwJCQkJXA0KKwkJLnBhcmVudF9uYW1lID0gX3BhcmVu dCwJCQlcDQorCQkucmVncyA9ICZ2ZW5jX2NnX3JlZ3MsCQkJXA0KKwkJLnNoaWZ0ID0gX3NoaWZ0 LAkJCVwNCisJCS5vcHMgPSAmbXRrX2Nsa19nYXRlX29wc19zZXRjbHJfaW52LAlcDQorCX0NCisN CitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlIHZlbmNfY2xrc1tdID0gew0KKwlHQVRFX1ZF TkMoQ0xLX1ZFTkNfU0VUMF9MQVJCLCAidmVuY19zZXQwX2xhcmIiLCAibW1fY2siLCAwKSwNCisJ R0FURV9WRU5DKENMS19WRU5DX1NFVDFfVkVOQywgInZlbmNfc2V0MV92ZW5jIiwgIm1tX2NrIiwg NCksDQorCUdBVEVfVkVOQyhDTEtfVkVOQ19TRVQyX0pQR0VOQywgImpwZ2VuYyIsICJtbV9jayIs IDgpLA0KKwlHQVRFX1ZFTkMoQ0xLX1ZFTkNfU0VUM19WREVDLCAidmVuY19zZXQzX3ZkZWMiLCAi bW1fY2siLCAxMiksDQorfTsNCisNCitzdGF0aWMgaW50IGNsa19tdDY3NjVfdmNvZGVjX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQorew0KKwlzdHJ1Y3QgY2xrX29uZWNlbGxf ZGF0YSAqY2xrX2RhdGE7DQorCWludCByOw0KKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBw ZGV2LT5kZXYub2Zfbm9kZTsNCisNCisJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xL X1ZFTkNfTlJfQ0xLKTsNCisNCisJbXRrX2Nsa19yZWdpc3Rlcl9nYXRlcyhub2RlLCB2ZW5jX2Ns a3MsDQorCQkJICAgICAgIEFSUkFZX1NJWkUodmVuY19jbGtzKSwgY2xrX2RhdGEpOw0KKw0KKwly ID0gb2ZfY2xrX2FkZF9wcm92aWRlcihub2RlLCBvZl9jbGtfc3JjX29uZWNlbGxfZ2V0LCBjbGtf ZGF0YSk7DQorDQorCWlmIChyKQ0KKwkJcHJfZXJyKCIlcygpOiBjb3VsZCBub3QgcmVnaXN0ZXIg Y2xvY2sgcHJvdmlkZXI6ICVkXG4iLA0KKwkJICAgICAgIF9fZnVuY19fLCByKTsNCisNCisJcmV0 dXJuIHI7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX21hdGNo X2Nsa19tdDY3NjVfdmNvZGVjW10gPSB7DQorCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2 NzY1LXZjb2RlY3N5cyIsIH0sDQorCXt9DQorfTsNCisNCitzdGF0aWMgc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBjbGtfbXQ2NzY1X3Zjb2RlY19kcnYgPSB7DQorCS5wcm9iZSA9IGNsa19tdDY3NjVf dmNvZGVjX3Byb2JlLA0KKwkuZHJpdmVyID0gew0KKwkJLm5hbWUgPSAiY2xrLW10Njc2NS12Y29k ZWMiLA0KKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210Njc2NV92Y29kZWMsDQor CX0sDQorfTsNCisNCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihjbGtfbXQ2NzY1X3Zjb2RlY19k cnYpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUuYyBiL2Ry aXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDY3NjUuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwMC4uM2VjNTNjYjYyZWNlDQotLS0gL2Rldi9udWxsDQorKysgYi9kcml2 ZXJzL2Nsay9tZWRpYXRlay9jbGstbXQ2NzY1LmMNCkBAIC0wLDAgKzEsOTUyIEBADQorLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCisvKg0KKyAqIENvcHlyaWdodCAoYykgMjAx OCBNZWRpYVRlayBJbmMuDQorICogQXV0aG9yOiBPd2VuIENoZW4gPG93ZW4uY2hlbkBtZWRpYXRl ay5jb20+DQorICovDQorDQorI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPg0KKyNpbmNs dWRlIDxsaW51eC9vZi5oPg0KKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+DQorI2luY2x1 ZGUgPGxpbnV4L3NsYWIuaD4NCisjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPg0KKyNpbmNs dWRlIDxsaW51eC9vZl9kZXZpY2UuaD4NCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNl Lmg+DQorDQorI2luY2x1ZGUgImNsay1tdGsuaCINCisjaW5jbHVkZSAiY2xrLWdhdGUuaCINCisj aW5jbHVkZSAiY2xrLW11eC5oIg0KKw0KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9tdDY3 NjUtY2xrLmg+DQorDQorLypmbWV0ZXIgZGl2IHNlbGVjdCA0Ki8NCisjZGVmaW5lIF9ESVY0XyAx DQorDQorc3RhdGljIERFRklORV9TUElOTE9DSyhtdDY3NjVfY2xrX2xvY2spOw0KKw0KKy8qIFRv dGFsIDEyIHN1YnN5cyAqLw0KK3N0YXRpYyB2b2lkIF9faW9tZW0gKmNrc3lzX2Jhc2U7DQorc3Rh dGljIHZvaWQgX19pb21lbSAqYXBtaXhlZF9iYXNlOw0KKw0KKy8qIENLU1lTICovDQorI2RlZmlu ZSBDTEtfU0NQX0NGR18wCQkoY2tzeXNfYmFzZSArIDB4MjAwKQ0KKyNkZWZpbmUgQ0xLX1NDUF9D RkdfMQkJKGNrc3lzX2Jhc2UgKyAweDIwNCkNCisNCisvKiBDRyAqLw0KKyNkZWZpbmUgQVBfUExM X0NPTjMJCShhcG1peGVkX2Jhc2UgKyAweDBDKQ0KKyNkZWZpbmUgUExMT05fQ09OMAkJKGFwbWl4 ZWRfYmFzZSArIDB4NDQpDQorI2RlZmluZSBQTExPTl9DT04xCQkoYXBtaXhlZF9iYXNlICsgMHg0 OCkNCisNCisvKiBjbGsgY2ZnIHVwZGF0ZSAqLw0KKyNkZWZpbmUgQ0xLX0NGR18wCQkweDQwDQor I2RlZmluZSBDTEtfQ0ZHXzBfU0VUCQkweDQ0DQorI2RlZmluZSBDTEtfQ0ZHXzBfQ0xSCQkweDQ4 DQorI2RlZmluZSBDTEtfQ0ZHXzEJCTB4NTANCisjZGVmaW5lIENMS19DRkdfMV9TRVQJCTB4NTQN CisjZGVmaW5lIENMS19DRkdfMV9DTFIJCTB4NTgNCisjZGVmaW5lIENMS19DRkdfMgkJMHg2MA0K KyNkZWZpbmUgQ0xLX0NGR18yX1NFVAkJMHg2NA0KKyNkZWZpbmUgQ0xLX0NGR18yX0NMUgkJMHg2 OA0KKyNkZWZpbmUgQ0xLX0NGR18zCQkweDcwDQorI2RlZmluZSBDTEtfQ0ZHXzNfU0VUCQkweDc0 DQorI2RlZmluZSBDTEtfQ0ZHXzNfQ0xSCQkweDc4DQorI2RlZmluZSBDTEtfQ0ZHXzQJCTB4ODAN CisjZGVmaW5lIENMS19DRkdfNF9TRVQJCTB4ODQNCisjZGVmaW5lIENMS19DRkdfNF9DTFIJCTB4 ODgNCisjZGVmaW5lIENMS19DRkdfNQkJMHg5MA0KKyNkZWZpbmUgQ0xLX0NGR181X1NFVAkJMHg5 NA0KKyNkZWZpbmUgQ0xLX0NGR181X0NMUgkJMHg5OA0KKyNkZWZpbmUgQ0xLX0NGR182CQkweGEw DQorI2RlZmluZSBDTEtfQ0ZHXzZfU0VUCQkweGE0DQorI2RlZmluZSBDTEtfQ0ZHXzZfQ0xSCQkw eGE4DQorI2RlZmluZSBDTEtfQ0ZHXzcJCTB4YjANCisjZGVmaW5lIENMS19DRkdfN19TRVQJCTB4 YjQNCisjZGVmaW5lIENMS19DRkdfN19DTFIJCTB4YjgNCisjZGVmaW5lIENMS19DRkdfOAkJMHhj MA0KKyNkZWZpbmUgQ0xLX0NGR184X1NFVAkJMHhjNA0KKyNkZWZpbmUgQ0xLX0NGR184X0NMUgkJ MHhjOA0KKyNkZWZpbmUgQ0xLX0NGR185CQkweGQwDQorI2RlZmluZSBDTEtfQ0ZHXzlfU0VUCQkw eGQ0DQorI2RlZmluZSBDTEtfQ0ZHXzlfQ0xSCQkweGQ4DQorI2RlZmluZSBDTEtfQ0ZHXzEwCQkw eGUwDQorI2RlZmluZSBDTEtfQ0ZHXzEwX1NFVAkJMHhlNA0KKyNkZWZpbmUgQ0xLX0NGR18xMF9D TFIJCTB4ZTgNCisjZGVmaW5lIENMS19DRkdfVVBEQVRFCQkweDAwNA0KKw0KK3N0YXRpYyBjb25z dCBzdHJ1Y3QgbXRrX2ZpeGVkX2NsayBmaXhlZF9jbGtzW10gPSB7DQorCUZJWEVEX0NMSyhDTEtf VE9QX0ZfRlJUQywgImZfZnJ0Y19jayIsICJjbGszMmsiLCAzMjc2OCksDQorCUZJWEVEX0NMSyhD TEtfVE9QX0NMSzI2TSwgImNsa18yNm1fY2siLCAiY2xrMjZtIiwgMjYwMDAwMDApLA0KKwlGSVhF RF9DTEsoQ0xLX1RPUF9ETVBMTCwgImRtcGxsX2NrIiwgTlVMTCwgNDY2MDAwMDAwKSwNCit9Ow0K Kw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2ZpeGVkX2ZhY3RvciB0b3BfZGl2c1tdID0gew0K KwlGQUNUT1IoQ0xLX1RPUF9TWVNQTEwsICJzeXNwbGxfY2siLCAibWFpbnBsbCIsIDEsIDEpLA0K KwlGQUNUT1IoQ0xLX1RPUF9TWVNQTExfRDIsICJzeXNwbGxfZDIiLCAibWFpbnBsbCIsIDEsIDIp LA0KKwlGQUNUT1IoQ0xLX1RPUF9TWVNQTEwxX0QyLCAic3lzcGxsMV9kMiIsICJzeXNwbGxfZDIi LCAxLCAyKSwNCisJRkFDVE9SKENMS19UT1BfU1lTUExMMV9ENCwgInN5c3BsbDFfZDQiLCAic3lz cGxsX2QyIiwgMSwgNCksDQorCUZBQ1RPUihDTEtfVE9QX1NZU1BMTDFfRDgsICJzeXNwbGwxX2Q4 IiwgInN5c3BsbF9kMiIsIDEsIDgpLA0KKwlGQUNUT1IoQ0xLX1RPUF9TWVNQTEwxX0QxNiwgInN5 c3BsbDFfZDE2IiwgInN5c3BsbF9kMiIsIDEsIDE2KSwNCisJRkFDVE9SKENMS19UT1BfU1lTUExM X0QzLCAic3lzcGxsX2QzIiwgIm1haW5wbGwiLCAxLCAzKSwNCisJRkFDVE9SKENMS19UT1BfU1lT UExMMl9EMiwgInN5c3BsbDJfZDIiLCAic3lzcGxsX2QzIiwgMSwgMiksDQorCUZBQ1RPUihDTEtf VE9QX1NZU1BMTDJfRDQsICJzeXNwbGwyX2Q0IiwgInN5c3BsbF9kMyIsIDEsIDQpLA0KKwlGQUNU T1IoQ0xLX1RPUF9TWVNQTEwyX0Q4LCAic3lzcGxsMl9kOCIsICJzeXNwbGxfZDMiLCAxLCA4KSwN CisJRkFDVE9SKENMS19UT1BfU1lTUExMX0Q1LCAic3lzcGxsX2Q1IiwgIm1haW5wbGwiLCAxLCA1 KSwNCisJRkFDVE9SKENMS19UT1BfU1lTUExMM19EMiwgInN5c3BsbDNfZDIiLCAic3lzcGxsX2Q1 IiwgMSwgMiksDQorCUZBQ1RPUihDTEtfVE9QX1NZU1BMTDNfRDQsICJzeXNwbGwzX2Q0IiwgInN5 c3BsbF9kNSIsIDEsIDQpLA0KKwlGQUNUT1IoQ0xLX1RPUF9TWVNQTExfRDcsICJzeXNwbGxfZDci LCAibWFpbnBsbCIsIDEsIDcpLA0KKwlGQUNUT1IoQ0xLX1RPUF9TWVNQTEw0X0QyLCAic3lzcGxs NF9kMiIsICJzeXNwbGxfZDciLCAxLCAyKSwNCisJRkFDVE9SKENMS19UT1BfU1lTUExMNF9ENCwg InN5c3BsbDRfZDQiLCAic3lzcGxsX2Q3IiwgMSwgNCksDQorCUZBQ1RPUihDTEtfVE9QX1VOSVZQ TEwsICJ1bml2cGxsIiwgInVuaXYycGxsIiwgMSwgMiksDQorCUZBQ1RPUihDTEtfVE9QX1VTQjIw XzE5Mk0sICJ1c2IyMF8xOTJtX2NrIiwgInVuaXZwbGwiLCAyLCAxMyksDQorCUZBQ1RPUihDTEtf VE9QX1VTQjIwXzE5Mk1fRDQsICJ1c2IyMF8xOTJtX2Q0IiwgInVzYjIwXzE5Mm1fY2siLCAxLCA0 KSwNCisJRkFDVE9SKENMS19UT1BfVVNCMjBfMTkyTV9EOCwgInVzYjIwXzE5Mm1fZDgiLCAidXNi MjBfMTkybV9jayIsIDEsIDgpLA0KKwlGQUNUT1IoQ0xLX1RPUF9VU0IyMF8xOTJNX0QxNiwNCisJ ICAgICAgICJ1c2IyMF8xOTJtX2QxNiIsICJ1c2IyMF8xOTJtX2NrIiwgMSwgMTYpLA0KKwlGQUNU T1IoQ0xLX1RPUF9VU0IyMF8xOTJNX0QzMiwNCisJICAgICAgICJ1c2IyMF8xOTJtX2QzMiIsICJ1 c2IyMF8xOTJtX2NrIiwgMSwgMzIpLA0KKwlGQUNUT1IoQ0xLX1RPUF9VTklWUExMX0QyLCAidW5p dnBsbF9kMiIsICJ1bml2cGxsIiwgMSwgMiksDQorCUZBQ1RPUihDTEtfVE9QX1VOSVZQTEwxX0Qy LCAidW5pdnBsbDFfZDIiLCAidW5pdnBsbF9kMiIsIDEsIDIpLA0KKwlGQUNUT1IoQ0xLX1RPUF9V TklWUExMMV9ENCwgInVuaXZwbGwxX2Q0IiwgInVuaXZwbGxfZDIiLCAxLCA0KSwNCisJRkFDVE9S KENMS19UT1BfVU5JVlBMTF9EMywgInVuaXZwbGxfZDMiLCAidW5pdnBsbCIsIDEsIDMpLA0KKwlG QUNUT1IoQ0xLX1RPUF9VTklWUExMMl9EMiwgInVuaXZwbGwyX2QyIiwgInVuaXZwbGxfZDMiLCAx LCAyKSwNCisJRkFDVE9SKENMS19UT1BfVU5JVlBMTDJfRDQsICJ1bml2cGxsMl9kNCIsICJ1bml2 cGxsX2QzIiwgMSwgNCksDQorCUZBQ1RPUihDTEtfVE9QX1VOSVZQTEwyX0Q4LCAidW5pdnBsbDJf ZDgiLCAidW5pdnBsbF9kMyIsIDEsIDgpLA0KKwlGQUNUT1IoQ0xLX1RPUF9VTklWUExMMl9EMzIs ICJ1bml2cGxsMl9kMzIiLCAidW5pdnBsbF9kMyIsIDEsIDMyKSwNCisJRkFDVE9SKENMS19UT1Bf VU5JVlBMTF9ENSwgInVuaXZwbGxfZDUiLCAidW5pdnBsbCIsIDEsIDUpLA0KKwlGQUNUT1IoQ0xL X1RPUF9VTklWUExMM19EMiwgInVuaXZwbGwzX2QyIiwgInVuaXZwbGxfZDUiLCAxLCAyKSwNCisJ RkFDVE9SKENMS19UT1BfVU5JVlBMTDNfRDQsICJ1bml2cGxsM19kNCIsICJ1bml2cGxsX2Q1Iiwg MSwgNCksDQorCUZBQ1RPUihDTEtfVE9QX01NUExMLCAibW1wbGxfY2siLCAibW1wbGwiLCAxLCAx KSwNCisJRkFDVE9SKENMS19UT1BfTU1QTExfRDIsICJtbXBsbF9kMiIsICJtbXBsbF9jayIsIDEs IDIpLA0KKwlGQUNUT1IoQ0xLX1RPUF9NUExMLCAibXBsbF9jayIsICJtcGxsIiwgMSwgMSksDQor CUZBQ1RPUihDTEtfVE9QX0RBX01QTExfMTA0TV9ESVYsICJtcGxsXzEwNG1fZGl2IiwgIm1wbGxf Y2siLCAxLCAyKSwNCisJRkFDVE9SKENMS19UT1BfREFfTVBMTF81Mk1fRElWLCAibXBsbF81Mm1f ZGl2IiwgIm1wbGxfY2siLCAxLCA0KSwNCisJRkFDVE9SKENMS19UT1BfTUZHUExMLCAibWZncGxs X2NrIiwgIm1mZ3BsbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9NU0RDUExMLCAibXNkY3Bs bF9jayIsICJtc2RjcGxsIiwgMSwgMSksDQorCUZBQ1RPUihDTEtfVE9QX01TRENQTExfRDIsICJt c2RjcGxsX2QyIiwgIm1zZGNwbGxfY2siLCAxLCAyKSwNCisJRkFDVE9SKENMS19UT1BfQVBMTDEs ICJhcGxsMV9jayIsICJhcGxsMSIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9BUExMMV9EMiwg ImFwbGwxX2QyIiwgImFwbGwxX2NrIiwgMSwgMiksDQorCUZBQ1RPUihDTEtfVE9QX0FQTEwxX0Q0 LCAiYXBsbDFfZDQiLCAiYXBsbDFfY2siLCAxLCA0KSwNCisJRkFDVE9SKENMS19UT1BfQVBMTDFf RDgsICJhcGxsMV9kOCIsICJhcGxsMV9jayIsIDEsIDgpLA0KKwlGQUNUT1IoQ0xLX1RPUF9VTFBP U0MxLCAidWxwb3NjMV9jayIsICJ1bHBvc2MxIiwgMSwgMSksDQorCUZBQ1RPUihDTEtfVE9QX1VM UE9TQzFfRDIsICJ1bHBvc2MxX2QyIiwgInVscG9zYzFfY2siLCAxLCAyKSwNCisJRkFDVE9SKENM S19UT1BfVUxQT1NDMV9ENCwgInVscG9zYzFfZDQiLCAidWxwb3NjMV9jayIsIDEsIDQpLA0KKwlG QUNUT1IoQ0xLX1RPUF9VTFBPU0MxX0Q4LCAidWxwb3NjMV9kOCIsICJ1bHBvc2MxX2NrIiwgMSwg OCksDQorCUZBQ1RPUihDTEtfVE9QX1VMUE9TQzFfRDE2LCAidWxwb3NjMV9kMTYiLCAidWxwb3Nj MV9jayIsIDEsIDE2KSwNCisJRkFDVE9SKENMS19UT1BfVUxQT1NDMV9EMzIsICJ1bHBvc2MxX2Qz MiIsICJ1bHBvc2MxX2NrIiwgMSwgMzIpLA0KKwlGQUNUT1IoQ0xLX1RPUF9GX0YyNk0sICJmX2Yy Nm1fY2siLCAiY2xrXzI2bV9jayIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9BWEksICJheGlf Y2siLCAiYXhpX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9NTSwgIm1tX2NrIiwgIm1t X3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9TQ1AsICJzY3BfY2siLCAic2NwX3NlbCIs IDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9NRkcsICJtZmdfY2siLCAibWZnX3NlbCIsIDEsIDEp LA0KKwlGQUNUT1IoQ0xLX1RPUF9GX0ZVQVJULCAiZl9mdWFydF9jayIsICJ1YXJ0X3NlbCIsIDEs IDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9TUEksICJzcGlfY2siLCAic3BpX3NlbCIsIDEsIDEpLA0K KwlGQUNUT1IoQ0xLX1RPUF9NU0RDNTBfMCwgIm1zZGM1MF8wX2NrIiwgIm1zZGM1MF8wX3NlbCIs IDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9NU0RDMzBfMSwgIm1zZGMzMF8xX2NrIiwgIm1zZGMz MF8xX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9BVURJTywgImF1ZGlvX2NrIiwgImF1 ZGlvX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9BVURfMSwgImF1ZF8xX2NrIiwgImF1 ZF8xX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9BVURfRU5HRU4xLCAiYXVkX2VuZ2Vu MV9jayIsICJhdWRfZW5nZW4xX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9GX0ZESVNQ X1BXTSwgImZfZmRpc3BfcHdtX2NrIiwgImRpc3BfcHdtX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1Io Q0xLX1RPUF9TU1BNLCAic3NwbV9jayIsICJzc3BtX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xL X1RPUF9EWENDLCAiZHhjY19jayIsICJkeGNjX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RP UF9JMkMsICJpMmNfY2siLCAiaTJjX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9GX0ZQ V00sICJmX2Zwd21fY2siLCAicHdtX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9GX0ZT RU5JTkYsICJmX2ZzZW5pbmZfY2siLCAic2VuaW5mX3NlbCIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xL X1RPUF9BRVNfRkRFLCAiYWVzX2ZkZV9jayIsICJhZXNfZmRlX3NlbCIsIDEsIDEpLA0KKwlGQUNU T1IoQ0xLX1RPUF9GX0JJU1QyRlBDLCAiZl9iaXN0MmZwY19jayIsICJ1bml2cGxsMl9kMiIsIDEs IDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9BUk1QTExfRElWSURFUl9QTEwwLCAiYXJtX2Rpdl9wbGww IiwgInN5c3BsbF9kMiIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RPUF9BUk1QTExfRElWSURFUl9Q TEwxLCAiYXJtX2Rpdl9wbGwxIiwgInN5c3BsbF9jayIsIDEsIDEpLA0KKwlGQUNUT1IoQ0xLX1RP UF9BUk1QTExfRElWSURFUl9QTEwyLCAiYXJtX2Rpdl9wbGwyIiwgInVuaXZwbGxfZDIiLCAxLCAx KSwNCisJRkFDVE9SKENMS19UT1BfREFfVVNCMjBfNDhNX0RJViwNCisJICAgICAgICJ1c2IyMF80 OG1fZGl2IiwgInVzYjIwXzE5Mm1fZDQiLCAxLCAxKSwNCisJRkFDVE9SKENMS19UT1BfREFfVU5J Vl80OE1fRElWLCAidW5pdl80OG1fZGl2IiwgInVzYjIwXzE5Mm1fZDQiLCAxLCAxKSwNCit9Ow0K Kw0KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYXhpX3BhcmVudHNbXSA9IHsNCisJImNsazI2 bSIsDQorCSJzeXNwbGxfZDciLA0KKwkic3lzcGxsMV9kNCIsDQorCSJzeXNwbGwzX2QyIg0KK307 DQorDQorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtZW1fcGFyZW50c1tdID0gew0KKwkiY2xr MjZtIiwNCisJImRtcGxsX2NrIiwNCisJImFwbGwxX2NrIg0KK307DQorDQorc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBtbV9wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0KKwkibW1wbGxfY2si LA0KKwkic3lzcGxsMV9kMiIsDQorCSJzeXNwbGxfZDUiLA0KKwkic3lzcGxsMV9kNCIsDQorCSJ1 bml2cGxsX2Q1IiwNCisJInVuaXZwbGwxX2QyIiwNCisJIm1tcGxsX2QyIg0KK307DQorDQorc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCBzY3BfcGFyZW50c1tdID0gew0KKwkiY2xrMjZtIiwNCisJ InN5c3BsbDRfZDIiLA0KKwkidW5pdnBsbDJfZDIiLA0KKwkic3lzcGxsMV9kMiIsDQorCSJ1bml2 cGxsMV9kMiIsDQorCSJzeXNwbGxfZDMiLA0KKwkidW5pdnBsbF9kMyINCit9Ow0KKw0KK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3QgbWZnX3BhcmVudHNbXSA9IHsNCisJImNsazI2bSIsDQorCSJt ZmdwbGxfY2siLA0KKwkic3lzcGxsX2QzIiwNCisJInVuaXZwbGxfZDMiDQorfTsNCisNCitzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IGF0Yl9wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0KKwki c3lzcGxsMV9kNCIsDQorCSJzeXNwbGwxX2QyIg0KK307DQorDQorc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBjYW10Z19wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0KKwkidXNiMjBfMTkybV9k OCIsDQorCSJ1bml2cGxsMl9kOCIsDQorCSJ1c2IyMF8xOTJtX2Q0IiwNCisJInVuaXZwbGwyX2Qz MiIsDQorCSJ1c2IyMF8xOTJtX2QxNiIsDQorCSJ1c2IyMF8xOTJtX2QzMiINCit9Ow0KKw0KK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydF9wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0K KwkidW5pdnBsbDJfZDgiDQorfTsNCisNCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaV9w YXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0KKwkic3lzcGxsM19kMiIsDQorCSJzeXNwbGw0X2Qy IiwNCisJInN5c3BsbDJfZDQiDQorfTsNCisNCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG1z ZGM1aGNsa19wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0KKwkic3lzcGxsMV9kMiIsDQorCSJ1 bml2cGxsMV9kNCIsDQorCSJzeXNwbGwyX2QyIg0KK307DQorDQorc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBtc2RjNTBfMF9wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0KKwkibXNkY3BsbF9j ayIsDQorCSJzeXNwbGwyX2QyIiwNCisJInN5c3BsbDRfZDIiLA0KKwkidW5pdnBsbDFfZDIiLA0K Kwkic3lzcGxsMV9kMiIsDQorCSJ1bml2cGxsX2Q1IiwNCisJInVuaXZwbGwxX2Q0Ig0KK307DQor DQorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtc2RjMzBfMV9wYXJlbnRzW10gPSB7DQorCSJj bGsyNm0iLA0KKwkibXNkY3BsbF9kMiIsDQorCSJ1bml2cGxsMl9kMiIsDQorCSJzeXNwbGwyX2Qy IiwNCisJInN5c3BsbDFfZDQiLA0KKwkidW5pdnBsbDFfZDQiLA0KKwkidXNiMjBfMTkybV9kNCIs DQorCSJzeXNwbGwyX2Q0Ig0KK307DQorDQorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhdWRp b19wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0KKwkic3lzcGxsM19kNCIsDQorCSJzeXNwbGw0 X2Q0IiwNCisJInN5c3BsbDFfZDE2Ig0KK307DQorDQorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCBhdWRfaW50YnVzX3BhcmVudHNbXSA9IHsNCisJImNsazI2bSIsDQorCSJzeXNwbGwxX2Q0IiwN CisJInN5c3BsbDRfZDIiDQorfTsNCisNCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGF1ZF8x X3BhcmVudHNbXSA9IHsNCisJImNsazI2bSIsDQorCSJhcGxsMV9jayINCit9Ow0KKw0KK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3QgYXVkX2VuZ2VuMV9wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0i LA0KKwkiYXBsbDFfZDIiLA0KKwkiYXBsbDFfZDQiLA0KKwkiYXBsbDFfZDgiDQorfTsNCisNCitz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRpc3BfcHdtX3BhcmVudHNbXSA9IHsNCisJImNsazI2 bSIsDQorCSJ1bml2cGxsMl9kNCIsDQorCSJ1bHBvc2MxX2QyIiwNCisJInVscG9zYzFfZDgiDQor fTsNCisNCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNzcG1fcGFyZW50c1tdID0gew0KKwki Y2xrMjZtIiwNCisJInN5c3BsbDFfZDIiLA0KKwkic3lzcGxsX2QzIg0KK307DQorDQorc3RhdGlj IGNvbnN0IGNoYXIgKiBjb25zdCBkeGNjX3BhcmVudHNbXSA9IHsNCisJImNsazI2bSIsDQorCSJz eXNwbGwxX2QyIiwNCisJInN5c3BsbDFfZDQiLA0KKwkic3lzcGxsMV9kOCINCit9Ow0KKw0KK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiX3RvcF9wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0i LA0KKwkidW5pdnBsbDNfZDQiDQorfTsNCisNCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNw bV9wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0KKwkic3lzcGxsMV9kOCINCit9Ow0KKw0KK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgaTJjX3BhcmVudHNbXSA9IHsNCisJImNsazI2bSIsDQor CSJ1bml2cGxsM19kNCIsDQorCSJ1bml2cGxsM19kMiIsDQorCSJzeXNwbGwxX2Q4IiwNCisJInN5 c3BsbDJfZDgiDQorfTsNCisNCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHB3bV9wYXJlbnRz W10gPSB7DQorCSJjbGsyNm0iLA0KKwkidW5pdnBsbDNfZDQiLA0KKwkic3lzcGxsMV9kOCINCit9 Ow0KKw0KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2VuaW5mX3BhcmVudHNbXSA9IHsNCisJ ImNsazI2bSIsDQorCSJ1bml2cGxsMV9kNCIsDQorCSJ1bml2cGxsMV9kMiIsDQorCSJ1bml2cGxs Ml9kMiINCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYWVzX2ZkZV9wYXJlbnRz W10gPSB7DQorCSJjbGsyNm0iLA0KKwkibXNkY3BsbF9jayIsDQorCSJ1bml2cGxsX2QzIiwNCisJ InVuaXZwbGwyX2QyIiwNCisJInVuaXZwbGwxX2QyIiwNCisJInN5c3BsbDFfZDIiDQorfTsNCisN CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVscG9zY19wYXJlbnRzW10gPSB7DQorCSJjbGsy Nm0iLA0KKwkidWxwb3NjMV9kNCIsDQorCSJ1bHBvc2MxX2Q4IiwNCisJInVscG9zYzFfZDE2IiwN CisJInVscG9zYzFfZDMyIg0KK307DQorDQorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjYW10 bV9wYXJlbnRzW10gPSB7DQorCSJjbGsyNm0iLA0KKwkidW5pdnBsbDFfZDQiLA0KKwkidW5pdnBs bDFfZDIiLA0KKwkidW5pdnBsbDJfZDIiDQorfTsNCisNCisjZGVmaW5lIElOVkFMSURfVVBEQVRF X1JFRyAweEZGRkZGRkZGDQorI2RlZmluZSBJTlZBTElEX1VQREFURV9TSElGVCAtMQ0KKyNkZWZp bmUgSU5WQUxJRF9NVVhfR0FURSAtMQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX211eCB0 b3BfbXV4ZXNbXSA9IHsNCisJLyogQ0xLX0NGR18wICovDQorCU1VWF9HQVRFX0NMUl9TRVRfVVBE X0ZMQUdTKENMS19UT1BfQVhJX1NFTCwgImF4aV9zZWwiLCBheGlfcGFyZW50cywNCisJCQkgICAg ICBDTEtfQ0ZHXzAsIENMS19DRkdfMF9TRVQsIENMS19DRkdfMF9DTFIsDQorCQkJICAgICAgMCwg MiwgNywgQ0xLX0NGR19VUERBVEUsIDAsIENMS19JU19DUklUSUNBTCksDQorCU1VWF9HQVRFX0NM Ul9TRVRfVVBEX0ZMQUdTKENMS19UT1BfTUVNX1NFTCwgIm1lbV9zZWwiLCBtZW1fcGFyZW50cywN CisJCQkgICAgICBDTEtfQ0ZHXzAsIENMS19DRkdfMF9TRVQsIENMS19DRkdfMF9DTFIsDQorCQkJ ICAgICAgOCwgMiwgMTUsIENMS19DRkdfVVBEQVRFLCAxLCBDTEtfSVNfQ1JJVElDQUwpLA0KKwlN VVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX01NX1NFTCwgIm1tX3NlbCIsIG1tX3BhcmVudHMs IENMS19DRkdfMCwNCisJCQlDTEtfQ0ZHXzBfU0VULCBDTEtfQ0ZHXzBfQ0xSLCAxNiwgMywgMjMs DQorCQkJQ0xLX0NGR19VUERBVEUsIDIpLA0KKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9Q X1NDUF9TRUwsICJzY3Bfc2VsIiwgc2NwX3BhcmVudHMsIENMS19DRkdfMCwNCisJCQlDTEtfQ0ZH XzBfU0VULCBDTEtfQ0ZHXzBfQ0xSLCAyNCwgMywgMzEsDQorCQkJQ0xLX0NGR19VUERBVEUsIDMp LA0KKwkvKiBDTEtfQ0ZHXzEgKi8NCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9NRkdf U0VMLCAibWZnX3NlbCIsIG1mZ19wYXJlbnRzLCBDTEtfQ0ZHXzEsDQorCQkJQ0xLX0NGR18xX1NF VCwgQ0xLX0NGR18xX0NMUiwgMCwgMiwgNywNCisJCQlDTEtfQ0ZHX1VQREFURSwgNCksDQorCU1V WF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfQVRCX1NFTCwgImF0Yl9zZWwiLCBhdGJfcGFyZW50 cywgQ0xLX0NGR18xLA0KKwkJCUNMS19DRkdfMV9TRVQsIENMS19DRkdfMV9DTFIsIDgsIDIsIDE1 LA0KKwkJCUNMS19DRkdfVVBEQVRFLCA1KSwNCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RP UF9DQU1UR19TRUwsICJjYW10Z19zZWwiLA0KKwkJCWNhbXRnX3BhcmVudHMsIENMS19DRkdfMSwg Q0xLX0NGR18xX1NFVCwNCisJCQlDTEtfQ0ZHXzFfQ0xSLCAxNiwgMywgMjMsIENMS19DRkdfVVBE QVRFLCA2KSwNCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9DQU1URzFfU0VMLCAiY2Ft dGcxX3NlbCIsIGNhbXRnX3BhcmVudHMsDQorCQkJQ0xLX0NGR18xLCBDTEtfQ0ZHXzFfU0VULCBD TEtfQ0ZHXzFfQ0xSLA0KKwkJCTI0LCAzLCAzMSwgQ0xLX0NGR19VUERBVEUsIDcpLA0KKwkvKiBD TEtfQ0ZHXzIgKi8NCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9DQU1URzJfU0VMLCAi Y2FtdGcyX3NlbCIsDQorCQkJY2FtdGdfcGFyZW50cywgQ0xLX0NGR18yLCBDTEtfQ0ZHXzJfU0VU LA0KKwkJCUNMS19DRkdfMl9DTFIsIDAsIDMsIDcsIENMS19DRkdfVVBEQVRFLCA4KSwNCisJTVVY X0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9DQU1URzNfU0VMLCAiY2FtdGczX3NlbCIsIGNhbXRn X3BhcmVudHMsDQorCQkJQ0xLX0NGR18yLCBDTEtfQ0ZHXzJfU0VULCBDTEtfQ0ZHXzJfQ0xSLA0K KwkJCTgsIDMsIDE1LCBDTEtfQ0ZHX1VQREFURSwgOSksDQorCU1VWF9HQVRFX0NMUl9TRVRfVVBE KENMS19UT1BfVUFSVF9TRUwsICJ1YXJ0X3NlbCIsIHVhcnRfcGFyZW50cywNCisJCQlDTEtfQ0ZH XzIsIENMS19DRkdfMl9TRVQsIENMS19DRkdfMl9DTFIsIDE2LCAxLCAyMywNCisJCQlDTEtfQ0ZH X1VQREFURSwgMTApLA0KKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX1NQSV9TRUwsICJz cGlfc2VsIiwgc3BpX3BhcmVudHMsIENMS19DRkdfMiwNCisJCQlDTEtfQ0ZHXzJfU0VULCBDTEtf Q0ZHXzJfQ0xSLCAyNCwgMiwgMzEsDQorCQkJQ0xLX0NGR19VUERBVEUsIDExKSwNCisJLyogQ0xL X0NGR18zICovDQorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfTVNEQzUwXzBfSENMS19T RUwsICJtc2RjNWhjbGsiLA0KKwkJCW1zZGM1aGNsa19wYXJlbnRzLCBDTEtfQ0ZHXzMsIENMS19D RkdfM19TRVQsDQorCQkJQ0xLX0NGR18zX0NMUiwgMCwgMiwgNywgQ0xLX0NGR19VUERBVEUsIDEy KSwNCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9NU0RDNTBfMF9TRUwsICJtc2RjNTBf MF9zZWwiLA0KKwkJCW1zZGM1MF8wX3BhcmVudHMsIENMS19DRkdfMywgQ0xLX0NGR18zX1NFVCwN CisJCQlDTEtfQ0ZHXzNfQ0xSLCA4LCAzLCAxNSwgQ0xLX0NGR19VUERBVEUsIDEzKSwNCisJTVVY X0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9NU0RDMzBfMV9TRUwsICJtc2RjMzBfMV9zZWwiLA0K KwkJCW1zZGMzMF8xX3BhcmVudHMsIENMS19DRkdfMywgQ0xLX0NGR18zX1NFVCwNCisJCQlDTEtf Q0ZHXzNfQ0xSLCAxNiwgMywgMjMsIENMS19DRkdfVVBEQVRFLCAxNCksDQorCU1VWF9HQVRFX0NM Ul9TRVRfVVBEKENMS19UT1BfQVVESU9fU0VMLCAiYXVkaW9fc2VsIiwgYXVkaW9fcGFyZW50cywN CisJCQlDTEtfQ0ZHXzMsIENMS19DRkdfM19TRVQsIENMS19DRkdfM19DTFIsDQorCQkJMjQsIDIs IDMxLCBDTEtfQ0ZHX1VQREFURSwgMTUpLA0KKwkvKiBDTEtfQ0ZHXzQgKi8NCisJTVVYX0dBVEVf Q0xSX1NFVF9VUEQoQ0xLX1RPUF9BVURfSU5UQlVTX1NFTCwgImF1ZF9pbnRidXNfc2VsIiwNCisJ CQlhdWRfaW50YnVzX3BhcmVudHMsIENMS19DRkdfNCwgQ0xLX0NGR180X1NFVCwNCisJCQlDTEtf Q0ZHXzRfQ0xSLCAwLCAyLCA3LCBDTEtfQ0ZHX1VQREFURSwgMTYpLA0KKwlNVVhfR0FURV9DTFJf U0VUX1VQRChDTEtfVE9QX0FVRF8xX1NFTCwgImF1ZF8xX3NlbCIsIGF1ZF8xX3BhcmVudHMsDQor CQkJQ0xLX0NGR180LCBDTEtfQ0ZHXzRfU0VULCBDTEtfQ0ZHXzRfQ0xSLA0KKwkJCTgsIDEsIDE1 LCBDTEtfQ0ZHX1VQREFURSwgMTcpLA0KKwlNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0FV RF9FTkdFTjFfU0VMLCAiYXVkX2VuZ2VuMV9zZWwiLA0KKwkJCWF1ZF9lbmdlbjFfcGFyZW50cywg Q0xLX0NGR180LCBDTEtfQ0ZHXzRfU0VULA0KKwkJCUNMS19DRkdfNF9DTFIsIDE2LCAyLCAyMywg Q0xLX0NGR19VUERBVEUsIDE4KSwNCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9ESVNQ X1BXTV9TRUwsICJkaXNwX3B3bV9zZWwiLA0KKwkJCWRpc3BfcHdtX3BhcmVudHMsIENMS19DRkdf NCwgQ0xLX0NGR180X1NFVCwNCisJCQlDTEtfQ0ZHXzRfQ0xSLCAyNCwgMiwgMzEsIENMS19DRkdf VVBEQVRFLCAxOSksDQorCS8qIENMS19DRkdfNSAqLw0KKwlNVVhfR0FURV9DTFJfU0VUX1VQRChD TEtfVE9QX1NTUE1fU0VMLCAic3NwbV9zZWwiLCBzc3BtX3BhcmVudHMsDQorCQkJQ0xLX0NGR181 LCBDTEtfQ0ZHXzVfU0VULCBDTEtfQ0ZHXzVfQ0xSLCAwLCAyLCA3LA0KKwkJCUNMS19DRkdfVVBE QVRFLCAyMCksDQorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfRFhDQ19TRUwsICJkeGNj X3NlbCIsIGR4Y2NfcGFyZW50cywNCisJCQlDTEtfQ0ZHXzUsIENMS19DRkdfNV9TRVQsIENMS19D RkdfNV9DTFIsIDgsIDIsIDE1LA0KKwkJCUNMS19DRkdfVVBEQVRFLCAyMSksDQorCU1VWF9HQVRF X0NMUl9TRVRfVVBEKENMS19UT1BfVVNCX1RPUF9TRUwsICJ1c2JfdG9wX3NlbCIsDQorCQkJdXNi X3RvcF9wYXJlbnRzLCBDTEtfQ0ZHXzUsIENMS19DRkdfNV9TRVQsDQorCQkJQ0xLX0NGR181X0NM UiwgMTYsIDEsIDIzLCBDTEtfQ0ZHX1VQREFURSwgMjIpLA0KKwlNVVhfR0FURV9DTFJfU0VUX1VQ RChDTEtfVE9QX1NQTV9TRUwsICJzcG1fc2VsIiwgc3BtX3BhcmVudHMsIENMS19DRkdfNSwNCisJ CQlDTEtfQ0ZHXzVfU0VULCBDTEtfQ0ZHXzVfQ0xSLCAyNCwgMSwgMzEsDQorCQkJQ0xLX0NGR19V UERBVEUsIDIzKSwNCisJLyogQ0xLX0NGR182ICovDQorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENM S19UT1BfSTJDX1NFTCwgImkyY19zZWwiLCBpMmNfcGFyZW50cywgQ0xLX0NGR182LA0KKwkJCUNM S19DRkdfNl9TRVQsIENMS19DRkdfNl9DTFIsIDAsIDMsIDcsIENMS19DRkdfVVBEQVRFLA0KKwkJ CTI0KSwNCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9QV01fU0VMLCAicHdtX3NlbCIs IHB3bV9wYXJlbnRzLCBDTEtfQ0ZHXzYsDQorCQkJQ0xLX0NGR182X1NFVCwgQ0xLX0NGR182X0NM UiwgOCwgMiwgMTUsIENMS19DRkdfVVBEQVRFLA0KKwkJCTI1KSwNCisJTVVYX0dBVEVfQ0xSX1NF VF9VUEQoQ0xLX1RPUF9TRU5JTkZfU0VMLCAic2VuaW5mX3NlbCIsIHNlbmluZl9wYXJlbnRzLA0K KwkJCUNMS19DRkdfNiwgQ0xLX0NGR182X1NFVCwgQ0xLX0NGR182X0NMUiwgMTYsIDIsIDIzLA0K KwkJCUNMS19DRkdfVVBEQVRFLCAyNiksDQorCU1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1Bf QUVTX0ZERV9TRUwsICJhZXNfZmRlX3NlbCIsDQorCQkJYWVzX2ZkZV9wYXJlbnRzLCBDTEtfQ0ZH XzYsIENMS19DRkdfNl9TRVQsDQorCQkJQ0xLX0NGR182X0NMUiwgMjQsIDMsIDMxLCBDTEtfQ0ZH X1VQREFURSwgMjcpLA0KKwkvKiBDTEtfQ0ZHXzcgKi8NCisJTVVYX0dBVEVfQ0xSX1NFVF9VUERf RkxBR1MoQ0xLX1RPUF9QV1JBUF9VTFBPU0NfU0VMLCAidWxwb3NjX3NlbCIsDQorCQkJICAgICAg dWxwb3NjX3BhcmVudHMsIENMS19DRkdfNywgQ0xLX0NGR183X1NFVCwNCisJCQkgICAgICBDTEtf Q0ZHXzdfQ0xSLCAwLCAzLCA3LCBDTEtfQ0ZHX1VQREFURSwgMjgsDQorCQkJICAgICAgQ0xLX0lT X0NSSVRJQ0FMKSwNCisJTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9DQU1UTV9TRUwsICJj YW10bV9zZWwiLCBjYW10bV9wYXJlbnRzLA0KKwkJCUNMS19DRkdfNywgQ0xLX0NGR183X1NFVCwg Q0xLX0NGR183X0NMUiwgOCwgMiwgMTUsDQorCQkJQ0xLX0NGR19VUERBVEUsIDI5KSwNCit9Ow0K Kw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyB0b3AwX2NnX3JlZ3MgPSB7DQor CS5zZXRfb2ZzID0gMHgwLA0KKwkuY2xyX29mcyA9IDB4MCwNCisJLnN0YV9vZnMgPSAweDAsDQor fTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgdG9wMV9jZ19yZWdzID0g ew0KKwkuc2V0X29mcyA9IDB4MTA0LA0KKwkuY2xyX29mcyA9IDB4MTA0LA0KKwkuc3RhX29mcyA9 IDB4MTA0LA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZV9yZWdzIHRvcDJf Y2dfcmVncyA9IHsNCisJLnNldF9vZnMgPSAweDMyMCwNCisJLmNscl9vZnMgPSAweDMyMCwNCisJ LnN0YV9vZnMgPSAweDMyMCwNCit9Ow0KKw0KKyNkZWZpbmUgR0FURV9UT1AwKF9pZCwgX25hbWUs IF9wYXJlbnQsIF9zaGlmdCkgewlcDQorCQkuaWQgPSBfaWQsCQkJCVwNCisJCS5uYW1lID0gX25h bWUsCQkJCVwNCisJCS5wYXJlbnRfbmFtZSA9IF9wYXJlbnQsCQkJXA0KKwkJLnJlZ3MgPSAmdG9w MF9jZ19yZWdzLAkJCVwNCisJCS5zaGlmdCA9IF9zaGlmdCwJCQlcDQorCQkub3BzID0gJm10a19j bGtfZ2F0ZV9vcHNfbm9fc2V0Y2xyLAlcDQorCX0NCisNCisjZGVmaW5lIEdBVEVfVE9QMShfaWQs IF9uYW1lLCBfcGFyZW50LCBfc2hpZnQpIHsJXA0KKwkJLmlkID0gX2lkLAkJCQlcDQorCQkubmFt ZSA9IF9uYW1lLAkJCQlcDQorCQkucGFyZW50X25hbWUgPSBfcGFyZW50LAkJCVwNCisJCS5yZWdz ID0gJnRvcDFfY2dfcmVncywJCQlcDQorCQkuc2hpZnQgPSBfc2hpZnQsCQkJXA0KKwkJLm9wcyA9 ICZtdGtfY2xrX2dhdGVfb3BzX25vX3NldGNscl9pbnYsCVwNCisJfQ0KKw0KKyNkZWZpbmUgR0FU RV9UT1AyKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkgewlcDQorCQkuaWQgPSBfaWQsCQkJ CVwNCisJCS5uYW1lID0gX25hbWUsCQkJCVwNCisJCS5wYXJlbnRfbmFtZSA9IF9wYXJlbnQsCQkJ XA0KKwkJLnJlZ3MgPSAmdG9wMl9jZ19yZWdzLAkJCVwNCisJCS5zaGlmdCA9IF9zaGlmdCwJCQlc DQorCQkub3BzID0gJm10a19jbGtfZ2F0ZV9vcHNfbm9fc2V0Y2xyLAlcDQorCX0NCisNCitzdGF0 aWMgY29uc3Qgc3RydWN0IG10a19nYXRlIHRvcF9jbGtzW10gPSB7DQorCS8qIFRPUDAgKi8NCisJ R0FURV9UT1AwKENMS19UT1BfTURfMzJLLCAibWRfMzJrIiwgImZfZnJ0Y19jayIsIDgpLA0KKwlH QVRFX1RPUDAoQ0xLX1RPUF9NRF8yNk0sICJtZF8yNm0iLCAiZl9mMjZtX2NrIiwgOSksDQorCUdB VEVfVE9QMChDTEtfVE9QX01EMl8zMkssICJtZDJfMzJrIiwgImZfZnJ0Y19jayIsIDEwKSwNCisJ R0FURV9UT1AwKENMS19UT1BfTUQyXzI2TSwgIm1kMl8yNm0iLCAiZl9mMjZtX2NrIiwgMTEpLA0K KwkvKiBUT1AxICovDQorCUdBVEVfVE9QMShDTEtfVE9QX0FSTVBMTF9ESVZJREVSX1BMTDBfRU4s DQorCQkgICJhcm1fZGl2X3BsbDBfZW4iLCAiYXJtX2Rpdl9wbGwwIiwgMyksDQorCUdBVEVfVE9Q MShDTEtfVE9QX0FSTVBMTF9ESVZJREVSX1BMTDFfRU4sDQorCQkgICJhcm1fZGl2X3BsbDFfZW4i LCAiYXJtX2Rpdl9wbGwxIiwgNCksDQorCUdBVEVfVE9QMShDTEtfVE9QX0FSTVBMTF9ESVZJREVS X1BMTDJfRU4sDQorCQkgICJhcm1fZGl2X3BsbDJfZW4iLCAiYXJtX2Rpdl9wbGwyIiwgNSksDQor CUdBVEVfVE9QMShDTEtfVE9QX0ZNRU1fT0NDX0RSQ19FTiwgImRyY19lbiIsICJ1bml2cGxsMl9k MiIsIDYpLA0KKwlHQVRFX1RPUDEoQ0xLX1RPUF9VU0IyMF80OE1fRU4sICJ1c2IyMF80OG1fZW4i LCAidXNiMjBfNDhtX2RpdiIsIDgpLA0KKwlHQVRFX1RPUDEoQ0xLX1RPUF9VTklWUExMXzQ4TV9F TiwgInVuaXZwbGxfNDhtX2VuIiwgInVuaXZfNDhtX2RpdiIsIDkpLA0KKwlHQVRFX1RPUDEoQ0xL X1RPUF9GX1VGU19NUF9TQVBfQ0ZHX0VOLCAidWZzX3NhcCIsICJmX2YyNm1fY2siLCAxMiksDQor CUdBVEVfVE9QMShDTEtfVE9QX0ZfQklTVDJGUENfRU4sICJiaXN0MmZwYyIsICJmX2Jpc3QyZnBj X2NrIiwgMTYpLA0KKwkvKiBUT1AyICovDQorCUdBVEVfVE9QMihDTEtfVE9QX0FQTEwxMl9ESVYw LCAiYXBsbDEyX2RpdjAiLCAiYXVkXzFfY2siLCAyKSwNCisJR0FURV9UT1AyKENMS19UT1BfQVBM TDEyX0RJVjEsICJhcGxsMTJfZGl2MSIsICJhdWRfMV9jayIsIDMpLA0KKwlHQVRFX1RPUDIoQ0xL X1RPUF9BUExMMTJfRElWMiwgImFwbGwxMl9kaXYyIiwgImF1ZF8xX2NrIiwgNCksDQorCUdBVEVf VE9QMihDTEtfVE9QX0FQTEwxMl9ESVYzLCAiYXBsbDEyX2RpdjMiLCAiYXVkXzFfY2siLCA1KSwN Cit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyBpZnIwX2NnX3JlZ3Mg PSB7DQorCS5zZXRfb2ZzID0gMHgyMDAsDQorCS5jbHJfb2ZzID0gMHgyMDAsDQorCS5zdGFfb2Zz ID0gMHgyMDAsDQorfTsNCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3MgaWZy MV9jZ19yZWdzID0gew0KKwkuc2V0X29mcyA9IDB4NzQsDQorCS5jbHJfb2ZzID0gMHg3NCwNCisJ LnN0YV9vZnMgPSAweDc0LA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZV9y ZWdzIGlmcjJfY2dfcmVncyA9IHsNCisJLnNldF9vZnMgPSAweDgwLA0KKwkuY2xyX29mcyA9IDB4 ODQsDQorCS5zdGFfb2ZzID0gMHg5MCwNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRr X2dhdGVfcmVncyBpZnIzX2NnX3JlZ3MgPSB7DQorCS5zZXRfb2ZzID0gMHg4OCwNCisJLmNscl9v ZnMgPSAweDhjLA0KKwkuc3RhX29mcyA9IDB4OTQsDQorfTsNCisNCitzdGF0aWMgY29uc3Qgc3Ry dWN0IG10a19nYXRlX3JlZ3MgaWZyNF9jZ19yZWdzID0gew0KKwkuc2V0X29mcyA9IDB4YTQsDQor CS5jbHJfb2ZzID0gMHhhOCwNCisJLnN0YV9vZnMgPSAweGFjLA0KK307DQorDQorc3RhdGljIGNv bnN0IHN0cnVjdCBtdGtfZ2F0ZV9yZWdzIGlmcjVfY2dfcmVncyA9IHsNCisJLnNldF9vZnMgPSAw eGMwLA0KKwkuY2xyX29mcyA9IDB4YzQsDQorCS5zdGFfb2ZzID0gMHhjOCwNCit9Ow0KKw0KKyNk ZWZpbmUgR0FURV9JRlIwKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9zaGlmdCkgewlcDQorCQkuaWQg PSBfaWQsCQkJCVwNCisJCS5uYW1lID0gX25hbWUsCQkJCVwNCisJCS5wYXJlbnRfbmFtZSA9IF9w YXJlbnQsCQkJXA0KKwkJLnJlZ3MgPSAmaWZyMF9jZ19yZWdzLAkJCVwNCisJCS5zaGlmdCA9IF9z aGlmdCwJCQlcDQorCQkub3BzID0gJm10a19jbGtfZ2F0ZV9vcHNfbm9fc2V0Y2xyX2ludiwJXA0K Kwl9DQorDQorI2RlZmluZSBHQVRFX0lGUjEoX2lkLCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KSB7 CVwNCisJCS5pZCA9IF9pZCwJCQkJXA0KKwkJLm5hbWUgPSBfbmFtZSwJCQkJXA0KKwkJLnBhcmVu dF9uYW1lID0gX3BhcmVudCwJCQlcDQorCQkucmVncyA9ICZpZnIxX2NnX3JlZ3MsCQkJXA0KKwkJ LnNoaWZ0ID0gX3NoaWZ0LAkJCVwNCisJCS5vcHMgPSAmbXRrX2Nsa19nYXRlX29wc19ub19zZXRj bHIsCVwNCisJfQ0KKw0KKyNkZWZpbmUgR0FURV9JRlIyKF9pZCwgX25hbWUsIF9wYXJlbnQsIF9z aGlmdCkgewlcDQorCQkuaWQgPSBfaWQsCQkJCVwNCisJCS5uYW1lID0gX25hbWUsCQkJCVwNCisJ CS5wYXJlbnRfbmFtZSA9IF9wYXJlbnQsCQkJXA0KKwkJLnJlZ3MgPSAmaWZyMl9jZ19yZWdzLAkJ CVwNCisJCS5zaGlmdCA9IF9zaGlmdCwJCQlcDQorCQkub3BzID0gJm10a19jbGtfZ2F0ZV9vcHNf c2V0Y2xyLAlcDQorCX0NCisNCisjZGVmaW5lIEdBVEVfSUZSMyhfaWQsIF9uYW1lLCBfcGFyZW50 LCBfc2hpZnQpIHsJXA0KKwkJLmlkID0gX2lkLAkJCQlcDQorCQkubmFtZSA9IF9uYW1lLAkJCQlc DQorCQkucGFyZW50X25hbWUgPSBfcGFyZW50LAkJCVwNCisJCS5yZWdzID0gJmlmcjNfY2dfcmVn cywJCQlcDQorCQkuc2hpZnQgPSBfc2hpZnQsCQkJXA0KKwkJLm9wcyA9ICZtdGtfY2xrX2dhdGVf b3BzX3NldGNsciwJXA0KKwl9DQorDQorI2RlZmluZSBHQVRFX0lGUjQoX2lkLCBfbmFtZSwgX3Bh cmVudCwgX3NoaWZ0KSB7CVwNCisJCS5pZCA9IF9pZCwJCQkJXA0KKwkJLm5hbWUgPSBfbmFtZSwJ CQkJXA0KKwkJLnBhcmVudF9uYW1lID0gX3BhcmVudCwJCQlcDQorCQkucmVncyA9ICZpZnI0X2Nn X3JlZ3MsCQkJXA0KKwkJLnNoaWZ0ID0gX3NoaWZ0LAkJCVwNCisJCS5vcHMgPSAmbXRrX2Nsa19n YXRlX29wc19zZXRjbHIsCVwNCisJfQ0KKw0KKyNkZWZpbmUgR0FURV9JRlI1KF9pZCwgX25hbWUs IF9wYXJlbnQsIF9zaGlmdCkgewlcDQorCQkuaWQgPSBfaWQsCQkJCVwNCisJCS5uYW1lID0gX25h bWUsCQkJCVwNCisJCS5wYXJlbnRfbmFtZSA9IF9wYXJlbnQsCQkJXA0KKwkJLnJlZ3MgPSAmaWZy NV9jZ19yZWdzLAkJCVwNCisJCS5zaGlmdCA9IF9zaGlmdCwJCQlcDQorCQkub3BzID0gJm10a19j bGtfZ2F0ZV9vcHNfc2V0Y2xyLAlcDQorCX0NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19n YXRlIGlmcl9jbGtzW10gPSB7DQorCS8qIElORlJBX1RPUEFYSSAqLw0KKwkvKiBJTkZSQSBQRVJJ ICovDQorCS8qIElORlJBIG1vZGUgMCAqLw0KKwlHQVRFX0lGUjIoQ0xLX0lGUl9JQ1VTQiwgImlm cl9pY3VzYiIsICJheGlfY2siLCA4KSwNCisJR0FURV9JRlIyKENMS19JRlJfR0NFLCAiaWZyX2dj ZSIsICJheGlfY2siLCA5KSwNCisJR0FURV9JRlIyKENMS19JRlJfVEhFUk0sICJpZnJfdGhlcm0i LCAiYXhpX2NrIiwgMTApLA0KKwlHQVRFX0lGUjIoQ0xLX0lGUl9JMkNfQVAsICJpZnJfaTJjX2Fw IiwgImkyY19jayIsIDExKSwNCisJR0FURV9JRlIyKENMS19JRlJfSTJDX0NDVSwgImlmcl9pMmNf Y2N1IiwgImkyY19jayIsIDEyKSwNCisJR0FURV9JRlIyKENMS19JRlJfSTJDX1NTUE0sICJpZnJf aTJjX3NzcG0iLCAiaTJjX2NrIiwgMTMpLA0KKwlHQVRFX0lGUjIoQ0xLX0lGUl9JMkNfUlNWLCAi aWZyX2kyY19yc3YiLCAiaTJjX2NrIiwgMTQpLA0KKwlHQVRFX0lGUjIoQ0xLX0lGUl9QV01fSENM SywgImlmcl9wd21faGNsayIsICJheGlfY2siLCAxNSksDQorCUdBVEVfSUZSMihDTEtfSUZSX1BX TTEsICJpZnJfcHdtMSIsICJmX2Zwd21fY2siLCAxNiksDQorCUdBVEVfSUZSMihDTEtfSUZSX1BX TTIsICJpZnJfcHdtMiIsICJmX2Zwd21fY2siLCAxNyksDQorCUdBVEVfSUZSMihDTEtfSUZSX1BX TTMsICJpZnJfcHdtMyIsICJmX2Zwd21fY2siLCAxOCksDQorCUdBVEVfSUZSMihDTEtfSUZSX1BX TTQsICJpZnJfcHdtNCIsICJmX2Zwd21fY2siLCAxOSksDQorCUdBVEVfSUZSMihDTEtfSUZSX1BX TTUsICJpZnJfcHdtNSIsICJmX2Zwd21fY2siLCAyMCksDQorCUdBVEVfSUZSMihDTEtfSUZSX1BX TSwgImlmcl9wd20iLCAiZl9mcHdtX2NrIiwgMjEpLA0KKwlHQVRFX0lGUjIoQ0xLX0lGUl9VQVJU MCwgImlmcl91YXJ0MCIsICJmX2Z1YXJ0X2NrIiwgMjIpLA0KKwlHQVRFX0lGUjIoQ0xLX0lGUl9V QVJUMSwgImlmcl91YXJ0MSIsICJmX2Z1YXJ0X2NrIiwgMjMpLA0KKwlHQVRFX0lGUjIoQ0xLX0lG Ul9HQ0VfMjZNLCAiaWZyX2djZV8yNm0iLCAiZl9mMjZtX2NrIiwgMjcpLA0KKwlHQVRFX0lGUjIo Q0xLX0lGUl9DUV9ETUFfRlBDLCAiaWZyX2RtYSIsICJheGlfY2siLCAyOCksDQorCUdBVEVfSUZS MihDTEtfSUZSX0JUSUYsICJpZnJfYnRpZiIsICJheGlfY2siLCAzMSksDQorCS8qIElORlJBIG1v ZGUgMSAqLw0KKwlHQVRFX0lGUjMoQ0xLX0lGUl9TUEkwLCAiaWZyX3NwaTAiLCAic3BpX2NrIiwg MSksDQorCUdBVEVfSUZSMyhDTEtfSUZSX01TREMwLCAiaWZyX21zZGMwIiwgIm1zZGM1aGNsayIs IDIpLA0KKwlHQVRFX0lGUjMoQ0xLX0lGUl9NU0RDMSwgImlmcl9tc2RjMSIsICJheGlfY2siLCA0 KSwNCisJR0FURV9JRlIzKENMS19JRlJfVFJORywgImlmcl90cm5nIiwgImF4aV9jayIsIDkpLA0K KwlHQVRFX0lGUjMoQ0xLX0lGUl9BVVhBREMsICJpZnJfYXV4YWRjIiwgImZfZjI2bV9jayIsIDEw KSwNCisJR0FURV9JRlIzKENMS19JRlJfQ0NJRjFfQVAsICJpZnJfY2NpZjFfYXAiLCAiYXhpX2Nr IiwgMTIpLA0KKwlHQVRFX0lGUjMoQ0xLX0lGUl9DQ0lGMV9NRCwgImlmcl9jY2lmMV9tZCIsICJh eGlfY2siLCAxMyksDQorCUdBVEVfSUZSMyhDTEtfSUZSX0FVWEFEQ19NRCwgImlmcl9hdXhhZGNf bWQiLCAiZl9mMjZtX2NrIiwgMTQpLA0KKwlHQVRFX0lGUjMoQ0xLX0lGUl9BUF9ETUEsICJpZnJf YXBfZG1hIiwgImF4aV9jayIsIDE4KSwNCisJR0FURV9JRlIzKENMS19JRlJfREVWSUNFX0FQQywg Imlmcl9kYXBjIiwgImF4aV9jayIsIDIwKSwNCisJR0FURV9JRlIzKENMS19JRlJfQ0NJRl9BUCwg Imlmcl9jY2lmX2FwIiwgImF4aV9jayIsIDIzKSwNCisJR0FURV9JRlIzKENMS19JRlJfQVVESU8s ICJpZnJfYXVkaW8iLCAiYXhpX2NrIiwgMjUpLA0KKwlHQVRFX0lGUjMoQ0xLX0lGUl9DQ0lGX01E LCAiaWZyX2NjaWZfbWQiLCAiYXhpX2NrIiwgMjYpLA0KKwkvKiBJTkZSQSBtb2RlIDIgKi8NCisJ R0FURV9JRlI0KENMS19JRlJfUkdfUFdNX0ZCQ0xLNiwgImlmcl9wd21mYiIsICJmX2YyNm1fY2si LCAwKSwNCisJR0FURV9JRlI0KENMS19JRlJfRElTUF9QV00sICJpZnJfZGlzcF9wd20iLCAiZl9m ZGlzcF9wd21fY2siLCAyKSwNCisJR0FURV9JRlI0KENMS19JRlJfQ0xETUFfQkNMSywgImlmcl9j bGRtYWJjbGsiLCAiYXhpX2NrIiwgMyksDQorCUdBVEVfSUZSNChDTEtfSUZSX0FVRElPXzI2TV9C Q0xLLCAiaWZyX2F1ZGlvMjZtIiwgImZfZjI2bV9jayIsIDQpLA0KKwlHQVRFX0lGUjQoQ0xLX0lG Ul9TUEkxLCAiaWZyX3NwaTEiLCAic3BpX2NrIiwgNiksDQorCUdBVEVfSUZSNChDTEtfSUZSX0ky QzQsICJpZnJfaTJjNCIsICJpMmNfY2siLCA3KSwNCisJR0FURV9JRlI0KENMS19JRlJfU1BJMiwg Imlmcl9zcGkyIiwgInNwaV9jayIsIDkpLA0KKwlHQVRFX0lGUjQoQ0xLX0lGUl9TUEkzLCAiaWZy X3NwaTMiLCAic3BpX2NrIiwgMTApLA0KKwlHQVRFX0lGUjQoQ0xLX0lGUl9JMkM1LCAiaWZyX2ky YzUiLCAiaTJjX2NrIiwgMTgpLA0KKwlHQVRFX0lGUjQoQ0xLX0lGUl9JMkM1X0FSQklURVIsICJp ZnJfaTJjNWEiLCAiaTJjX2NrIiwgMTkpLA0KKwlHQVRFX0lGUjQoQ0xLX0lGUl9JMkM1X0lNTSwg Imlmcl9pMmM1X2ltbSIsICJpMmNfY2siLCAyMCksDQorCUdBVEVfSUZSNChDTEtfSUZSX0kyQzFf QVJCSVRFUiwgImlmcl9pMmMxYSIsICJpMmNfY2siLCAyMSksDQorCUdBVEVfSUZSNChDTEtfSUZS X0kyQzFfSU1NLCAiaWZyX2kyYzFfaW1tIiwgImkyY19jayIsIDIyKSwNCisJR0FURV9JRlI0KENM S19JRlJfSTJDMl9BUkJJVEVSLCAiaWZyX2kyYzJhIiwgImkyY19jayIsIDIzKSwNCisJR0FURV9J RlI0KENMS19JRlJfSTJDMl9JTU0sICJpZnJfaTJjMl9pbW0iLCAiaTJjX2NrIiwgMjQpLA0KKwlH QVRFX0lGUjQoQ0xLX0lGUl9TUEk0LCAiaWZyX3NwaTQiLCAic3BpX2NrIiwgMjUpLA0KKwlHQVRF X0lGUjQoQ0xLX0lGUl9TUEk1LCAiaWZyX3NwaTUiLCAic3BpX2NrIiwgMjYpLA0KKwlHQVRFX0lG UjQoQ0xLX0lGUl9DUV9ETUEsICJpZnJfY3FfZG1hIiwgImF4aV9jayIsIDI3KSwNCisJR0FURV9J RlI0KENMS19JRlJfRkFFU19GREUsICJpZnJfZmFlc19mZGVfY2siLCAiYWVzX2ZkZV9jayIsIDI5 KSwNCisJLyogSU5GUkEgbW9kZSAzICovDQorCUdBVEVfSUZSNShDTEtfSUZSX01TREMwX1NFTEYs ICJpZnJfbXNkYzBzZiIsICJtc2RjNTBfMF9jayIsIDApLA0KKwlHQVRFX0lGUjUoQ0xLX0lGUl9N U0RDMV9TRUxGLCAiaWZyX21zZGMxc2YiLCAibXNkYzUwXzBfY2siLCAxKSwNCisJR0FURV9JRlI1 KENMS19JRlJfSTJDNiwgImlmcl9pMmM2IiwgImkyY19jayIsIDYpLA0KKwlHQVRFX0lGUjUoQ0xL X0lGUl9BUF9NU0RDMCwgImlmcl9hcF9tc2RjMCIsICJtc2RjNTBfMF9jayIsIDcpLA0KKwlHQVRF X0lGUjUoQ0xLX0lGUl9NRF9NU0RDMCwgImlmcl9tZF9tc2RjMCIsICJtc2RjNTBfMF9jayIsIDgp LA0KKwlHQVRFX0lGUjUoQ0xLX0lGUl9NU0RDMF9TUkMsICJpZnJfbXNkYzBfY2xrIiwgIm1zZGM1 MF8wX2NrIiwgOSksDQorCUdBVEVfSUZSNShDTEtfSUZSX01TREMxX1NSQywgImlmcl9tc2RjMV9j bGsiLCAibXNkYzMwXzFfY2siLCAxMCksDQorCUdBVEVfSUZSNShDTEtfSUZSX01DVV9QTV9CQ0xL LCAiaWZyX21jdV9wbV9iY2xrIiwgImF4aV9jayIsIDE3KSwNCisJR0FURV9JRlI1KENMS19JRlJf Q0NJRjJfQVAsICJpZnJfY2NpZjJfYXAiLCAiYXhpX2NrIiwgMTgpLA0KKwlHQVRFX0lGUjUoQ0xL X0lGUl9DQ0lGMl9NRCwgImlmcl9jY2lmMl9tZCIsICJheGlfY2siLCAxOSksDQorCUdBVEVfSUZS NShDTEtfSUZSX0NDSUYzX0FQLCAiaWZyX2NjaWYzX2FwIiwgImF4aV9jayIsIDIwKSwNCisJR0FU RV9JRlI1KENMS19JRlJfQ0NJRjNfTUQsICJpZnJfY2NpZjNfbWQiLCAiYXhpX2NrIiwgMjEpLA0K K307DQorDQorLyogYWRkaXRpb25hbCBDQ0YgY29udHJvbCBmb3IgbWlwaTI2TSByYWNlIGNvbmRp dGlvbihkaXNwL2NhbWVyYSkgKi8NCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19nYXRlX3JlZ3Mg YXBtaXhlZF9jZ19yZWdzID0gew0KKwkuc2V0X29mcyA9IDB4MTQsDQorCS5jbHJfb2ZzID0gMHgx NCwNCisJLnN0YV9vZnMgPSAweDE0LA0KK307DQorDQorI2RlZmluZSBHQVRFX0FQTUlYRUQoX2lk LCBfbmFtZSwgX3BhcmVudCwgX3NoaWZ0KSB7CVwNCisJCS5pZCA9IF9pZCwJCQkJXA0KKwkJLm5h bWUgPSBfbmFtZSwJCQkJXA0KKwkJLnBhcmVudF9uYW1lID0gX3BhcmVudCwJCQlcDQorCQkucmVn cyA9ICZhcG1peGVkX2NnX3JlZ3MsCQlcDQorCQkuc2hpZnQgPSBfc2hpZnQsCQkJXA0KKwkJLm9w cyA9ICZtdGtfY2xrX2dhdGVfb3BzX25vX3NldGNscl9pbnYsCQlcDQorCX0NCisNCitzdGF0aWMg Y29uc3Qgc3RydWN0IG10a19nYXRlIGFwbWl4ZWRfY2xrc1tdID0gew0KKwkvKiBBVURJTzAgKi8N CisJR0FURV9BUE1JWEVEKENMS19BUE1JWEVEX1NTVVNCMjZNLCAiYXBtaXhlZF9zc3VzYjI2bSIs ICJmX2YyNm1fY2siLA0KKwkJICAgICA0KSwNCisJR0FURV9BUE1JWEVEKENMS19BUE1JWEVEX0FQ UExMMjZNLCAiYXBtaXhlZF9hcHBsbDI2bSIsICJmX2YyNm1fY2siLA0KKwkJICAgICA1KSwNCisJ R0FURV9BUE1JWEVEKENMS19BUE1JWEVEX01JUElDMF8yNk0sICJhcG1peGVkX21pcGljMDI2bSIs ICJmX2YyNm1fY2siLA0KKwkJICAgICA2KSwNCisJR0FURV9BUE1JWEVEKENMS19BUE1JWEVEX01E UExMR1AyNk0sICJhcG1peGVkX21kcGxsMjZtIiwgImZfZjI2bV9jayIsDQorCQkgICAgIDcpLA0K KwlHQVRFX0FQTUlYRUQoQ0xLX0FQTUlYRURfTU1TWVNfRjI2TSwgImFwbWl4ZWRfbW1zeXMyNm0i LCAiZl9mMjZtX2NrIiwNCisJCSAgICAgOCksDQorCUdBVEVfQVBNSVhFRChDTEtfQVBNSVhFRF9V RlMyNk0sICJhcG1peGVkX3VmczI2bSIsICJmX2YyNm1fY2siLA0KKwkJICAgICA5KSwNCisJR0FU RV9BUE1JWEVEKENMS19BUE1JWEVEX01JUElDMV8yNk0sICJhcG1peGVkX21pcGljMTI2bSIsICJm X2YyNm1fY2siLA0KKwkJICAgICAxMSksDQorCUdBVEVfQVBNSVhFRChDTEtfQVBNSVhFRF9NRU1Q TEwyNk0sICJhcG1peGVkX21lbXBsbDI2bSIsICJmX2YyNm1fY2siLA0KKwkJICAgICAxMyksDQor CUdBVEVfQVBNSVhFRChDTEtfQVBNSVhFRF9DTEtTUV9MVlBMTF8yNk0sICJhcG1peGVkX2x2cGxs MjZtIiwNCisJCSAgICAgImZfZjI2bV9jayIsIDE0KSwNCisJR0FURV9BUE1JWEVEKENMS19BUE1J WEVEX01JUElEMF8yNk0sICJhcG1peGVkX21pcGlkMDI2bSIsICJmX2YyNm1fY2siLA0KKwkJICAg ICAxNiksDQorfTsNCisNCisjZGVmaW5lIE1UNjc2NV9QTExfRk1BWAkJKDM4MDBVTCAqIE1IWikN CisjZGVmaW5lIE1UNjc2NV9QTExfRk1JTgkJKDE1MDBVTCAqIE1IWikNCisNCisjZGVmaW5lIENP TjBfTVQ2NzY1X1JTVF9CQVIJQklUKDIzKQ0KKw0KKyNkZWZpbmUgUExMX0lORk9fTlVMTAkJKDB4 RkYpDQorDQorI2RlZmluZSBQTExfQihfaWQsIF9uYW1lLCBfcmVnLCBfcHdyX3JlZywgX2VuX21h c2ssIF9mbGFncywgX3Bjd2JpdHMsCVwNCisJCV9wY3dpYml0cywgX3BkX3JlZywgX3BkX3NoaWZ0 LCBfdHVuZXJfcmVnLCBfdHVuZXJfZW5fcmVnLFwNCisJCV90dW5lcl9lbl9iaXQsIF9wY3dfcmVn LCBfcGN3X3NoaWZ0LCBfZGl2X3RhYmxlKSB7XA0KKwkJLmlkID0gX2lkLAkJCQkJCVwNCisJCS5u YW1lID0gX25hbWUsCQkJCQkJXA0KKwkJLnJlZyA9IF9yZWcsCQkJCQkJXA0KKwkJLnB3cl9yZWcg PSBfcHdyX3JlZywJCQkJCVwNCisJCS5lbl9tYXNrID0gX2VuX21hc2ssCQkJCQlcDQorCQkuZmxh Z3MgPSBfZmxhZ3MsCQkJCQlcDQorCQkucnN0X2Jhcl9tYXNrID0gQ09OMF9NVDY3NjVfUlNUX0JB UiwJCQlcDQorCQkuZm1heCA9IE1UNjc2NV9QTExfRk1BWCwJCQkJXA0KKwkJLmZtaW4gPSBNVDY3 NjVfUExMX0ZNSU4sCQkJCVwNCisJCS5wY3diaXRzID0gX3Bjd2JpdHMsCQkJCQlcDQorCQkucGN3 aWJpdHMgPSBfcGN3aWJpdHMsCQkJCQlcDQorCQkucGRfcmVnID0gX3BkX3JlZywJCQkJCVwNCisJ CS5wZF9zaGlmdCA9IF9wZF9zaGlmdCwJCQkJCVwNCisJCS50dW5lcl9yZWcgPSBfdHVuZXJfcmVn LAkJCQlcDQorCQkudHVuZXJfZW5fcmVnID0gX3R1bmVyX2VuX3JlZywJCQkJXA0KKwkJLnR1bmVy X2VuX2JpdCA9IF90dW5lcl9lbl9iaXQsCQkJCVwNCisJCS5wY3dfcmVnID0gX3Bjd19yZWcsCQkJ CQlcDQorCQkucGN3X3NoaWZ0ID0gX3Bjd19zaGlmdCwJCQkJXA0KKwkJLmRpdl90YWJsZSA9IF9k aXZfdGFibGUsCQkJCVwNCisJfQ0KKw0KKyNkZWZpbmUgUExMKF9pZCwgX25hbWUsIF9yZWcsIF9w d3JfcmVnLCBfZW5fbWFzaywgX2ZsYWdzLCBfcGN3Yml0cywJXA0KKwkJCV9wY3dpYml0cywgX3Bk X3JlZywgX3BkX3NoaWZ0LCBfdHVuZXJfcmVnLAlcDQorCQkJX3R1bmVyX2VuX3JlZywgX3R1bmVy X2VuX2JpdCwgX3Bjd19yZWcsCVwNCisJCQlfcGN3X3NoaWZ0KQlcDQorCQlQTExfQihfaWQsIF9u YW1lLCBfcmVnLCBfcHdyX3JlZywgX2VuX21hc2ssIF9mbGFncywJXA0KKwkJCV9wY3diaXRzLCBf cGN3aWJpdHMsIF9wZF9yZWcsIF9wZF9zaGlmdCwJXA0KKwkJCV90dW5lcl9yZWcsIF90dW5lcl9l bl9yZWcsIF90dW5lcl9lbl9iaXQsCVwNCisJCQlfcGN3X3JlZywgX3Bjd19zaGlmdCwgTlVMTCkJ XA0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3BsbF9kYXRhIHBsbHNbXSA9IHsNCisJUExM KENMS19BUE1JWEVEX0FSTVBMTF9MLCAiYXJtcGxsX2wiLCAweDAyMUMsIDB4MDIyOCwgQklUKDAp LA0KKwkgICAgUExMX0FPLCAyMiwgOCwgMHgwMjIwLCAyNCwgMCwgMCwgMCwgMHgwMjIwLCAwKSwN CisJUExMKENMS19BUE1JWEVEX0FSTVBMTCwgImFybXBsbCIsIDB4MDIwQywgMHgwMjE4LCBCSVQo MCksDQorCSAgICBQTExfQU8sIDIyLCA4LCAweDAyMTAsIDI0LCAwLCAwLCAwLCAweDAyMTAsIDAp LA0KKwlQTEwoQ0xLX0FQTUlYRURfQ0NJUExMLCAiY2NpcGxsIiwgMHgwMjJDLCAweDAyMzgsIEJJ VCgwKSwNCisJICAgIFBMTF9BTywgMjIsIDgsIDB4MDIzMCwgMjQsIDAsIDAsIDAsIDB4MDIzMCwg MCksDQorCVBMTChDTEtfQVBNSVhFRF9NQUlOUExMLCAibWFpbnBsbCIsIDB4MDIzQywgMHgwMjQ4 LCBCSVQoMCksDQorCSAgICAoSEFWRV9SU1RfQkFSIHwgUExMX0FPKSwgMjIsIDgsIDB4MDI0MCwg MjQsIDAsIDAsIDAsIDB4MDI0MCwNCisJICAgIDApLA0KKwlQTEwoQ0xLX0FQTUlYRURfTUZHUExM LCAibWZncGxsIiwgMHgwMjRDLCAweDAyNTgsIEJJVCgwKSwNCisJICAgIDAsIDIyLCA4LCAweDAy NTAsIDI0LCAwLCAwLCAwLCAweDAyNTAsIDApLA0KKwlQTEwoQ0xLX0FQTUlYRURfTU1QTEwsICJt bXBsbCIsIDB4MDI1QywgMHgwMjY4LCBCSVQoMCksDQorCSAgICAwLCAyMiwgOCwgMHgwMjYwLCAy NCwgMCwgMCwgMCwgMHgwMjYwLCAwKSwNCisJUExMKENMS19BUE1JWEVEX1VOSVYyUExMLCAidW5p djJwbGwiLCAweDAyNkMsIDB4MDI3OCwgQklUKDApLA0KKwkgICAgSEFWRV9SU1RfQkFSLCAyMiwg OCwgMHgwMjcwLCAyNCwgMCwgMCwgMCwgMHgwMjcwLCAwKSwNCisJUExMKENMS19BUE1JWEVEX01T RENQTEwsICJtc2RjcGxsIiwgMHgwMjdDLCAweDAyODgsIEJJVCgwKSwNCisJICAgIDAsIDIyLCA4 LCAweDAyODAsIDI0LCAwLCAwLCAwLCAweDAyODAsIDApLA0KKwlQTEwoQ0xLX0FQTUlYRURfQVBM TDEsICJhcGxsMSIsIDB4MDI4QywgMHgwMjlDLCBCSVQoMCksDQorCSAgICAwLCAzMiwgOCwgMHgw MjkwLCAyNCwgMHgwMDQwLCAweDAwMEMsIDAsIDB4MDI5NCwgMCksDQorCVBMTChDTEtfQVBNSVhF RF9NUExMLCAibXBsbCIsIDB4MDJBMCwgMHgwMkFDLCBCSVQoMCksDQorCSAgICBQTExfQU8sIDIy LCA4LCAweDAyQTQsIDI0LCAwLCAwLCAwLCAweDAyQTQsIDApLA0KK307DQorDQorc3RhdGljIGlu dCBjbGtfbXQ2NzY1X2FwbWl4ZWRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikN Cit7DQorCXN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsNCisJaW50IHI7DQorCXN0 cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOw0KKwl2b2lkIF9faW9t ZW0gKmJhc2U7DQorCXN0cnVjdCByZXNvdXJjZSAqcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNl KHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsNCisNCisJYmFzZSA9IGRldm1faW9yZW1hcF9yZXNv dXJjZSgmcGRldi0+ZGV2LCByZXMpOw0KKwlpZiAoSVNfRVJSKGJhc2UpKSB7DQorCQlwcl9lcnIo IiVzKCk6IGlvcmVtYXAgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7DQorCQlyZXR1cm4gUFRSX0VSUihi YXNlKTsNCisJfQ0KKw0KKwljbGtfZGF0YSA9IG10a19hbGxvY19jbGtfZGF0YShDTEtfQVBNSVhF RF9OUl9DTEspOw0KKw0KKwltdGtfY2xrX3JlZ2lzdGVyX3BsbHMobm9kZSwgcGxscywgQVJSQVlf U0laRShwbGxzKSwgY2xrX2RhdGEpOw0KKw0KKwltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUs IGFwbWl4ZWRfY2xrcywNCisJCQkgICAgICAgQVJSQVlfU0laRShhcG1peGVkX2Nsa3MpLCBjbGtf ZGF0YSk7DQorCXIgPSBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIG9mX2Nsa19zcmNfb25lY2Vs bF9nZXQsIGNsa19kYXRhKTsNCisNCisJaWYgKHIpDQorCQlwcl9lcnIoIiVzKCk6IGNvdWxkIG5v dCByZWdpc3RlciBjbG9jayBwcm92aWRlcjogJWRcbiIsDQorCQkgICAgICAgX19mdW5jX18sIHIp Ow0KKw0KKwlhcG1peGVkX2Jhc2UgPSBiYXNlOw0KKwkvKiBNUExMLCBDQ0lQTEwsIE1BSU5QTEwg c2V0IEhXIG1vZGUsIFREQ0xLU1EsIENMS1NRMSAqLw0KKwl3cml0ZWwocmVhZGwoQVBfUExMX0NP TjMpICYgMHhGRkZGRkZFMSwgQVBfUExMX0NPTjMpOw0KKwl3cml0ZWwocmVhZGwoUExMT05fQ09O MCkgJiAweDAxMDQxMDQxLCBQTExPTl9DT04wKTsNCisJd3JpdGVsKHJlYWRsKFBMTE9OX0NPTjEp ICYgMHgwMTA0MTA0MSwgUExMT05fQ09OMSk7DQorDQorCXJldHVybiByOw0KK30NCisNCitzdGF0 aWMgaW50IGNsa19tdDY3NjVfdG9wX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp DQorew0KKwlpbnQgcjsNCisJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGRldi0+ZGV2Lm9m X25vZGU7DQorCXZvaWQgX19pb21lbSAqYmFzZTsNCisJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEg KmNsa19kYXRhOw0KKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJj ZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7DQorDQorCWJhc2UgPSBkZXZtX2lvcmVtYXBfcmVz b3VyY2UoJnBkZXYtPmRldiwgcmVzKTsNCisJaWYgKElTX0VSUihiYXNlKSkgew0KKwkJcHJfZXJy KCIlcygpOiBpb3JlbWFwIGZhaWxlZFxuIiwgX19mdW5jX18pOw0KKwkJcmV0dXJuIFBUUl9FUlIo YmFzZSk7DQorCX0NCisNCisJY2xrX2RhdGEgPSBtdGtfYWxsb2NfY2xrX2RhdGEoQ0xLX1RPUF9O Ul9DTEspOw0KKw0KKwltdGtfY2xrX3JlZ2lzdGVyX2ZpeGVkX2Nsa3MoZml4ZWRfY2xrcywgQVJS QVlfU0laRShmaXhlZF9jbGtzKSwNCisJCQkJICAgIGNsa19kYXRhKTsNCisJbXRrX2Nsa19yZWdp c3Rlcl9mYWN0b3JzKHRvcF9kaXZzLCBBUlJBWV9TSVpFKHRvcF9kaXZzKSwNCisJCQkJIGNsa19k YXRhKTsNCisJbXRrX2Nsa19yZWdpc3Rlcl9tdXhlcyh0b3BfbXV4ZXMsIEFSUkFZX1NJWkUodG9w X211eGVzKSwgbm9kZSwNCisJCQkgICAgICAgJm10Njc2NV9jbGtfbG9jaywgY2xrX2RhdGEpOw0K KwltdGtfY2xrX3JlZ2lzdGVyX2dhdGVzKG5vZGUsIHRvcF9jbGtzLCBBUlJBWV9TSVpFKHRvcF9j bGtzKSwNCisJCQkgICAgICAgY2xrX2RhdGEpOw0KKw0KKwlyID0gb2ZfY2xrX2FkZF9wcm92aWRl cihub2RlLCBvZl9jbGtfc3JjX29uZWNlbGxfZ2V0LCBjbGtfZGF0YSk7DQorDQorCWlmIChyKQ0K KwkJcHJfZXJyKCIlcygpOiBjb3VsZCBub3QgcmVnaXN0ZXIgY2xvY2sgcHJvdmlkZXI6ICVkXG4i LA0KKwkJICAgICAgIF9fZnVuY19fLCByKTsNCisNCisJY2tzeXNfYmFzZSA9IGJhc2U7DQorCS8q IFs0XTpubyBuZWVkICovDQorCXdyaXRlbChyZWFkbChDTEtfU0NQX0NGR18wKSB8IDB4M0VGLCBD TEtfU0NQX0NGR18wKTsNCisJLypbMSwyLDMsOF06IG5vIG5lZWQqLw0KKwl3cml0ZWwocmVhZGwo Q0xLX1NDUF9DRkdfMSkgfCAweDEsIENMS19TQ1BfQ0ZHXzEpOw0KKw0KKwlyZXR1cm4gcjsNCit9 DQorDQorc3RhdGljIGludCBjbGtfbXQ2NzY1X2lmcl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQ0KK3sNCisJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOw0KKwlp bnQgcjsNCisJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7DQor CXZvaWQgX19pb21lbSAqYmFzZTsNCisJc3RydWN0IHJlc291cmNlICpyZXMgPSBwbGF0Zm9ybV9n ZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOw0KKw0KKwliYXNlID0gZGV2bV9p b3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7DQorCWlmIChJU19FUlIoYmFzZSkpIHsN CisJCXByX2VycigiJXMoKTogaW9yZW1hcCBmYWlsZWRcbiIsIF9fZnVuY19fKTsNCisJCXJldHVy biBQVFJfRVJSKGJhc2UpOw0KKwl9DQorDQorCWNsa19kYXRhID0gbXRrX2FsbG9jX2Nsa19kYXRh KENMS19JRlJfTlJfQ0xLKTsNCisNCisJbXRrX2Nsa19yZWdpc3Rlcl9nYXRlcyhub2RlLCBpZnJf Y2xrcywgQVJSQVlfU0laRShpZnJfY2xrcyksDQorCQkJICAgICAgIGNsa19kYXRhKTsNCisJciA9 IG9mX2Nsa19hZGRfcHJvdmlkZXIobm9kZSwgb2ZfY2xrX3NyY19vbmVjZWxsX2dldCwgY2xrX2Rh dGEpOw0KKw0KKwlpZiAocikNCisJCXByX2VycigiJXMoKTogY291bGQgbm90IHJlZ2lzdGVyIGNs b2NrIHByb3ZpZGVyOiAlZFxuIiwNCisJCSAgICAgICBfX2Z1bmNfXywgcik7DQorDQorCXJldHVy biByOw0KK30NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tYXRjaF9j bGtfbXQ2NzY1W10gPSB7DQorCXsNCisJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10Njc2NS1h cG1peGVkc3lzIiwNCisJCS5kYXRhID0gY2xrX210Njc2NV9hcG1peGVkX3Byb2JlLA0KKwl9LCB7 DQorCQkuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDY3NjUtdG9wY2tnZW4iLA0KKwkJLmRhdGEg PSBjbGtfbXQ2NzY1X3RvcF9wcm9iZSwNCisJfSwgew0KKwkJLmNvbXBhdGlibGUgPSAibWVkaWF0 ZWssbXQ2NzY1LWluZnJhY2ZnIiwNCisJCS5kYXRhID0gY2xrX210Njc2NV9pZnJfcHJvYmUsDQor CX0sIHsNCisJCS8qIHNlbnRpbmVsICovDQorCX0NCit9Ow0KKw0KK3N0YXRpYyBpbnQgY2xrX210 Njc2NV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KK3sNCisJaW50ICgqY2xr X3Byb2JlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkKTsNCisJaW50IHI7DQorDQorCWNsa19w cm9iZSA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsNCisJaWYgKCFjbGtf cHJvYmUpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJciA9IGNsa19wcm9iZShwZGV2KTsNCisJ aWYgKHIpDQorCQlkZXZfZXJyKCZwZGV2LT5kZXYsDQorCQkJImNvdWxkIG5vdCByZWdpc3RlciBj bG9jayBwcm92aWRlcjogJXM6ICVkXG4iLA0KKwkJCXBkZXYtPm5hbWUsIHIpOw0KKw0KKwlyZXR1 cm4gcjsNCit9DQorDQorc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2xrX210Njc2NV9k cnYgPSB7DQorCS5wcm9iZSA9IGNsa19tdDY3NjVfcHJvYmUsDQorCS5kcml2ZXIgPSB7DQorCQku bmFtZSA9ICJjbGstbXQ2NzY1IiwNCisJCS5vd25lciA9IFRISVNfTU9EVUxFLA0KKwkJLm9mX21h dGNoX3RhYmxlID0gb2ZfbWF0Y2hfY2xrX210Njc2NSwNCisJfSwNCit9Ow0KKw0KK3N0YXRpYyBp bnQgX19pbml0IGNsa19tdDY3NjVfaW5pdCh2b2lkKQ0KK3sNCisJcmV0dXJuIHBsYXRmb3JtX2Ry aXZlcl9yZWdpc3RlcigmY2xrX210Njc2NV9kcnYpOw0KK30NCisNCithcmNoX2luaXRjYWxsKGNs a19tdDY3NjVfaW5pdCk7DQotLSANCjIuMTguMA0K