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=-15.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 39530C47082 for ; Tue, 1 Jun 2021 02:33:33 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DF4C96128A for ; Tue, 1 Jun 2021 02:33:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DF4C96128A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=OpfEo1y3MLr1AcObBsykxMm0wtZDYyr/cmoLm9ACZpo=; b=Nn2y3B3pZ6J+iz 1x9g0MEz9TeBqtI4f3OOD41QNHWUlxAx1FGrXZ2ArWploC+0hvnXT5t/50dSYhnSLhibOhuZHoM/n WXaVq/UQ/eh+1crG/5KyY+R2RchYXQeYV075bsi6t6DhwkMt00VhvwYC+cDUIJJnBor0oOO9uPSBT 3LBVKTspE1kjVhVHrR4q6GIxCGCfA5gbWVFZ5YA3mhU8N7U1QrfXezQZyShb9jpBhkW3jgHc2Oapr m/LPHyjNV6IlJWh8z08HMNFIuj+/3tuBW3wJDvLD+7SCUH11jR2AvbMx8Rg3d2JailMjRgKuojiXh DjcbUkypaSRmy1n5ykSA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lnuC6-00EHc7-Ee; Tue, 01 Jun 2021 02:31:50 +0000 Received: from mail-io1-xd2f.google.com ([2607:f8b0:4864:20::d2f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lnuBz-00EHbC-J0 for linux-arm-kernel@lists.infradead.org; Tue, 01 Jun 2021 02:31:48 +0000 Received: by mail-io1-xd2f.google.com with SMTP id e17so13683323iol.7 for ; Mon, 31 May 2021 19:31:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=RjRQ4k3lEZ1HkKRJBdzpSSnbgvpOMfWttwcCEJNrMEY=; b=DtQwu4G4fMYc5Gcvmd0kIxDcVDpEb+KzaY171hMOWER3097HQScFBRLruTQrsAECkP H/DR1JyjX/DmyxvdwA6U8AarXYaKhP0sqwu3rEvnumwe9BezSQe+5GXAUHMz1r4mI5aU DljNiHqSmImkv+JQcYx3bDPaRG6gO9zfNUE7q3pCf9NXOPfBkRItePglLq3aOHzgwZx8 a17qiUYqFMHrdqliIwgK9aTX2wTdurlN1XLbbTiLr9QyWMa28VqPKXXswLdnGzTSNsK+ wxr/AGyP8fT/qRChTnSp45RjV5rzyhFuO104bjT1/JWnIYb6J9LUKjmZ3fWByyRAcCLa dpEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=RjRQ4k3lEZ1HkKRJBdzpSSnbgvpOMfWttwcCEJNrMEY=; b=RPSvoz59w63/GJlSwWY8M8bxHsGtmVFW0Sx9rF/g/5mR5vd8mDDXeCKna1vzUKJC5l dfcy5JdkneAyRzYMp91Dw1uv0IpX5IgZ9PBGSYYQ/pzNlUI7MRBwOZ4rlP2zTWpqATi5 1Yl3pOYOyQ8nX5Us4dQCXXK2nlqQJniaeH6wpPUT4+VOLt/4kTDc8+qylgPf5JwczOpD Pi3JC9MQOZLvT3caCXczADZ+7MKBmYKFV9qn4wP8Xh8HU0gOkAXFciY2bCo4s5YBmpZu CpQ8BbKl7cdY1qrW+tkRYinBJ9duLv3kCnGoIBRlp+4vRapruLXMeuVb8rvx0HgI7OAv lDRA== X-Gm-Message-State: AOAM530Y1nOiOYRwGETRoYkyer2APh3ACgSO0j+GYavJMsilqkdk+D1K Cbtfqf00YgV5JZz9WvNUyME1yyzojee6F8UwnN8= X-Google-Smtp-Source: ABdhPJxuT3/Bae8ddEKrBto19J0GLNYB+j4i3jmkpKybIR55BomikJa79SlicYcatHQp96dghVx08+U9IrarClrts54= X-Received: by 2002:a05:6602:3426:: with SMTP id n38mr18186553ioz.3.1622514702236; Mon, 31 May 2021 19:31:42 -0700 (PDT) MIME-Version: 1.0 References: <1620990152-19255-1-git-send-email-dillon.minfei@gmail.com> <1620990152-19255-2-git-send-email-dillon.minfei@gmail.com> <56b41c37-147b-bf89-c840-2c5f08863a36@foss.st.com> In-Reply-To: From: Dillon Min Date: Tue, 1 Jun 2021 10:31:05 +0800 Message-ID: Subject: Re: [PATCH 1/4] drm/panel: Add ilitek ili9341 panel driver To: Patrice CHOTARD Cc: pierre-yves.mordret@foss.st.com, alain.volmat@foss.st.com, Maxime Coquelin , Alexandre TORGUE , Sumit Semwal , christian.koenig@amd.com, Michael Turquette , Stephen Boyd , linux-i2c@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, Linux ARM , Linux Kernel Mailing List , linux-media , "open list:DRM PANEL DRIVERS" , linaro-mm-sig@lists.linaro.org, linux-clk X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210531_193143_775851_50C1032F X-CRM114-Status: GOOD ( 36.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgUGF0cmljZQoKT24gTW9uLCBNYXkgMzEsIDIwMjEgYXQgOTozOSBQTSBEaWxsb24gTWluIDxk aWxsb24ubWluZmVpQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBPbiBNb24sIE1heSAzMSwgMjAyMSBh dCA5OjE1IFBNIFBhdHJpY2UgQ0hPVEFSRAo+IDxwYXRyaWNlLmNob3RhcmRAZm9zcy5zdC5jb20+ IHdyb3RlOgo+ID4KPiA+IEhpIERpbGxvbgo+ID4KPiA+IFdoZW4gdHJ5aW5nIHRvIGFwcGx5aW5n IHRoaXMgcGF0Y2ggdXNpbmcgImdpdCBhbSAtLTMgPHBhdGNoPiIgIGkgZ290IHRoaXMgZXJyb3Ig Ogo+ID4KPiA+IGVycm9yOiBjYW5ub3QgY29udmVydCBmcm9tIHkgdG8gVVRGLTgKPiA+IGZhdGFs OiBjb3VsZCBub3QgcGFyc2UgcGF0Y2gKPiA+Cj4gPiBXaGVyZWFzIGkgZ290IG5vIHNpbWlsYXIg ZXJyb3Igd2l0aCB0aGUgb3RoZXIgcGF0Y2ggMi8zIGFuZCA0Lgo+ID4KPiA+IEkgZmluZCBhIHdh eSB0byBhcHBseSBpdCBhbnl3YXkuCj4KPiBTb3JyeSBmb3IgdGhlIGluY29udmVuaWVuY2UsIEkg d2lsbCBkb3VibGUgdmVyaWZ5IHRoZSAnZ2l0IGFtJyBwcm9jZXNzCj4gb24gdGhpcyBwYXRjaCBs YXRlci4KCkkgY2FuJ3QgcmVwcm9kdWNlIHRoaXMgb24gbXkgc2lkZS4KCmZtaW5AZm1pbi1PcHRp UGxleC03MDYwOn4vd29yay9rZXJuZWwvdXAvbGludXgkIGdpdCAtLXZlcnNpb24KZ2l0IHZlcnNp b24gMi43LjQKZm1pbkBmbWluLU9wdGlQbGV4LTcwNjA6fi93b3JrL2tlcm5lbC91cC9saW51eCQg Z2l0IGFtIC0tMwouLi9taXNzLWMvdjEvMDAwMS1kcm0tcGFuZWwtQWRkLWlsaXRlay1pbGk5MzQx LXBhbmVsLWRyaXZlci5wYXRjaApBcHBseWluZzogZHJtL3BhbmVsOiBBZGQgaWxpdGVrIGlsaTkz NDEgcGFuZWwgZHJpdmVyCmZtaW5AZm1pbi1PcHRpUGxleC03MDYwOn4vd29yay9rZXJuZWwvdXAv bGludXgkCmZtaW5AZm1pbi1PcHRpUGxleC03MDYwOn4vd29yay9rZXJuZWwvdXAvbGludXgkCmZt aW5AZm1pbi1PcHRpUGxleC03MDYwOn4vd29yay9rZXJuZWwvdXAvbGludXgkCmZtaW5AZm1pbi1P cHRpUGxleC03MDYwOn4vd29yay9rZXJuZWwvdXAvbGludXgkCmZtaW5AZm1pbi1PcHRpUGxleC03 MDYwOn4vd29yay9rZXJuZWwvdXAvbGludXgkIGdpdCBhbSAtLTMKLi4vbWlzcy1jL3YxLzAwMDIt aTJjLXN0bTMyZjQtRml4LXN0bXBlODExLWdldC14eXotZGF0YS10aW1lb3V0LWlzc3VlLnBhdGNo CkFwcGx5aW5nOiBpMmM6IHN0bTMyZjQ6IEZpeCBzdG1wZTgxMSBnZXQgeHl6IGRhdGEgdGltZW91 dCBpc3N1ZQpmbWluQGZtaW4tT3B0aVBsZXgtNzA2MDp+L3dvcmsva2VybmVsL3VwL2xpbnV4JApm bWluQGZtaW4tT3B0aVBsZXgtNzA2MDp+L3dvcmsva2VybmVsL3VwL2xpbnV4JApmbWluQGZtaW4t T3B0aVBsZXgtNzA2MDp+L3dvcmsva2VybmVsL3VwL2xpbnV4JApmbWluQGZtaW4tT3B0aVBsZXgt NzA2MDp+L3dvcmsva2VybmVsL3VwL2xpbnV4JCBnaXQgYW0gLS0zCi4uL21pc3MtYy92MS8wMDAz LWNsay1zdG0zMi1GaXgtc3RtMzJmNDI5LXMtbHRkYy1kcml2ZXItaGFuZy1pbi1zZXQtY2wucGF0 Y2gKQXBwbHlpbmc6IGNsazogc3RtMzI6IEZpeCBzdG0zMmY0MjkncyBsdGRjIGRyaXZlciBoYW5n IGluIHNldCBjbG9jayByYXRlCmZtaW5AZm1pbi1PcHRpUGxleC03MDYwOn4vd29yay9rZXJuZWwv dXAvbGludXgkIGdpdCBhbSAtLTMKLi4vbWlzcy1jL3YxLzAwMDQtY2xrLXN0bTMyLUZpeC1sdGRj LXMtY2xvY2stdHVybi1vZmYtYnktY2xrX2Rpc2FibGVfdS5wYXRjaApBcHBseWluZzogY2xrOiBz dG0zMjogRml4IGx0ZGMncyBjbG9jayB0dXJuIG9mZiBieQpjbGtfZGlzYWJsZV91bnVzZWQoKSBh ZnRlciBrZXJuZWwgc3RhcnR1cApmbWluQGZtaW4tT3B0aVBsZXgtNzA2MDp+L3dvcmsva2VybmVs L3VwL2xpbnV4JCBnaXQgbG9nCmNvbW1pdCBiYmQ3NDE0NGYwMTViN2E4MWQ3MjhmNGM5NDI5MjVj NzRiNDE1Yjk3CkF1dGhvcjogRGlsbG9uIE1pbiA8ZGlsbG9uLm1pbmZlaUBnbWFpbC5jb20+CkRh dGU6ICAgRnJpIE1heSAxNCAxODoxODo0NSAyMDIxICswODAwCgogICAgY2xrOiBzdG0zMjogRml4 IGx0ZGMncyBjbG9jayB0dXJuIG9mZiBieSBjbGtfZGlzYWJsZV91bnVzZWQoKQphZnRlciBrZXJu ZWwgc3RhcnR1cAoKICAgIHN0bTMyJ3MgY2xrIGRyaXZlciByZWdpc3RlciB0d28gbHRkYyBnYXRl IGNsayB0byBjbGsgY29yZSBieQogICAgY2xrX2h3X3JlZ2lzdGVyX2dhdGUoKSBhbmQgY2xrX2h3 X3JlZ2lzdGVyX2NvbXBvc2l0ZSgpCgogICAgZmlyc3Q6ICdzdG0zMmY0MjlfZ2F0ZXNbXScsIGNs ayBuYW1lIGlzICdsdGRjJywgd2hpY2ggbm8gdXNlciB0byB1c2UuCiAgICBzZWNvbmQ6ICdzdG0z MmY0MjlfYXV4X2Nsa1tdJywgY2xrIG5hbWUgaXMgJ2xjZC10ZnQnLCB1c2VkIGJ5IGx0ZGMgZHJp dmVyCgogICAgYm90aCBvZiB0aGVtIHBvaW50IHRvIHRoZSBzYW1lIG9mZnNldCBvZiBzdG0zMidz IFJDQyByZWdpc3Rlci4gYWZ0ZXIKICAgIGtlcm5lbCBlbnRlciBjb25zb2xlLCBjbGsgY29yZSB0 dXJuIG9mZiBsdGRjJ3MgY2xrIGFzICdzdG0zMmY0MjlfZ2F0ZXNbXScKICAgIGlzIG5vIG9uZSB0 byB1c2UuIGJ1dCwgYWN0dWFsbHkgJ3N0bTMyZjQyOV9hdXhfY2xrW10nIGlzIGluIHVzZS4KCiAg ICBGaXhlczogZGFmMmQxMTdjYmNhICgiY2xrOiBzdG0zMmY0OiBBZGQgbGNkLXRmdCBjbG9jayIp CiAgICBTaWduZWQtb2ZmLWJ5OiBEaWxsb24gTWluIDxkaWxsb24ubWluZmVpQGdtYWlsLmNvbT4K ICAgIEFja2VkLWJ5OiBTdGVwaGVuIEJveWQgPHNib3lkQGtlcm5lbC5vcmc+CiAgICBMaW5rOiBo dHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1hcm0ta2VybmVsLzE1OTA1NjQ0NTMtMjQ0OTkt Ny1naXQtc2VuZC1lbWFpbC1kaWxsb24ubWluZmVpQGdtYWlsLmNvbS8KCmNvbW1pdCA5OTIzOTU3 NzM1YWQwYWUzZTlkYTdmMzVmOWJmODNkNjg4MjQ5OWM2CkF1dGhvcjogRGlsbG9uIE1pbiA8ZGls bG9uLm1pbmZlaUBnbWFpbC5jb20+CkRhdGU6ICAgRnJpIE1heSAxNCAxODoxNTowNiAyMDIxICsw ODAwCgogICAgY2xrOiBzdG0zMjogRml4IHN0bTMyZjQyOSdzIGx0ZGMgZHJpdmVyIGhhbmcgaW4g c2V0IGNsb2NrIHJhdGUKCiAgICBUaGlzIGlzIGR1ZSB0byBtaXN1c2Ug4oCYUExMX1ZDT19TQUkn IGFuZCdQTExfU0FJJyBpbiBjbGstc3RtMzJmNC5jCiAgICAnUExMX1NBSScgaXMgMiwgJ1BMTF9W Q09fU0FJJyBpcyA3KGRlZmluZWQgaW4KICAgIGluY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3Rt MzJmeC1jbG9jay5oKS4KCiAgICAncG9zdF9kaXYnIHBvaW50IHRvICdwb3N0X2Rpdl9kYXRhW10n LCAncG9zdF9kaXYtPnBsbF9udW0nCiAgICBpcyBQTExfSTJTIG9yIFBMTF9TQUkuCgogICAgJ2Ns a3NbUExMX1ZDT19TQUldJyBoYXMgdmFsaWQgJ3N0cnVjdCBjbGtfaHcqICcgcmV0dXJuCiAgICBm cm9tIHN0bTMyZjRfcmNjX3JlZ2lzdGVyX3BsbCgpIGJ1dCwgYXQgbGluZSAxNzc3IG9mCiAgICBk cml2ZXIvY2xrL2Nsay1zdG0zMmY0LmMsIHVzZSB0aGUgJ2Nsa3NbcG9zdF9kaXYtPnBsbF9udW1d JywKICAgIGVxdWFsIHRvICdjbGtzW1BMTF9TQUldJywgdGhpcyBpcyBpbnZhbGlkIGFycmF5IG1l bWJlciBhdCB0aGF0IHRpbWUuCgogICAgRml4ZXM6IDUxNzYzM2VmNjMwZSAoImNsazogc3RtMzJm NDogQWRkIHBvc3QgZGl2aXNvciBmb3IgSTJTICYgU0FJIFBMTHMiKQogICAgU2lnbmVkLW9mZi1i eTogRGlsbG9uIE1pbiA8ZGlsbG9uLm1pbmZlaUBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogU3Rl cGhlbiBCb3lkIDxzYm95ZEBrZXJuZWwub3JnPgogICAgTGluazogaHR0cHM6Ly9sb3JlLmtlcm5l bC5vcmcvbGludXgtYXJtLWtlcm5lbC8xNTkwNTY0NDUzLTI0NDk5LTYtZ2l0LXNlbmQtZW1haWwt ZGlsbG9uLm1pbmZlaUBnbWFpbC5jb20vCgpjb21taXQgZWVhZGUxNmVkNjAyMDc5YzlmNDY5Njky YTU0M2ZmMDBmZDUyN2ExYwpBdXRob3I6IERpbGxvbiBNaW4gPGRpbGxvbi5taW5mZWlAZ21haWwu Y29tPgpEYXRlOiAgIEZyaSBNYXkgMTQgMTc6Mjk6NDcgMjAyMSArMDgwMAoKICAgIGkyYzogc3Rt MzJmNDogRml4IHN0bXBlODExIGdldCB4eXogZGF0YSB0aW1lb3V0IGlzc3VlCgogICAgQXMgc3Rt MzJmNDI5J3MgaW50ZXJuYWwgZmxhc2ggaXMgMk1ieXRlcyBhbmQgY29tcGlsZWQga2VybmVsCiAg ICBpbWFnZSBiaWdnZXIgdGhhbiAyTWJ5dGVzLCBzbyB3ZSBoYXZlIHRvIGxvYWQga2VybmVsIGlt YWdlCiAgICB0byBzZHJhbSBvbiBzdG0zMmY0MjktZGlzY28gYm9hcmQgd2hpY2ggaGFzIDhNYnl0 ZXMgc2RyYW0gc3BhY2UuCgogICAgYmFzZWQgb24gYWJvdmUgY29udGV4dCwgYXMgeW91IGtub3dz IGtlcm5lbCBydW5uaW5nIG9uIGV4dGVybmFsCiAgICBzZHJhbSBpcyBtb3JlIHNsb3dlciB0aGFu IGludGVybmFsIGZsYXNoLiBiZXNpZGVzLCB3ZSBuZWVkIHJlYWQgNAogICAgYnl0ZXMgdG8gZ2V0 IHRvdWNoIHNjcmVlbiB4eXooeCwgeSwgcHJlc3N1cmUpIGNvb3JkaW5hdGUgZGF0YSBpbgogICAg c3RtcGU4MTEgaW50ZXJydXB0LgoKICAgIHNvLCBpbiBzdG0zMmY0X2kyY19oYW5kbGVfcnhfZG9u ZSwgYXMgaTJjIHJlYWQgc2xvd2VyIHRoYW4gcnVubmluZwogICAgaW4geGlwIG1vZGUsIGhhdmUg dG8gYWRqdXN0ICdTVE9QL1NUQVJUIGJpdCBzZXQgcG9zaXRpb24nIGZyb20gbGFzdAogICAgdHdv IGJ5dGVzIHRvIGxhc3Qgb25lIGJ5dGVzLiBlbHNlLCB3aWxsIGdldCBpMmMgdGltZW91dCBpbiBy ZWFkaW5nCiAgICB0b3VjaCBzY3JlZW4gY29vcmRpbmF0ZS4KCiAgICB0byBub3QgYnJpbmcgaW4g c2lkZSBlZmZlY3QsIGludHJvZHVjZSBJSUNfTEFTVF9CWVRFX1BPUyB0byBzdXBwb3J0IHhpcAog ICAga2VybmVsIG9yIHpJbWFnZS4KCiAgICBGaXhlczogNjI4MTdmYzhkMjgyICgiaTJjOiBzdG0z MmY0OiBhZGQgZHJpdmVyIikKICAgIExpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwv MTU5MTcwOTIwMy0xMjEwNi01LWdpdC1zZW5kLWVtYWlsLWRpbGxvbi5taW5mZWlAZ21haWwuY29t LwogICAgU2lnbmVkLW9mZi1ieTogRGlsbG9uIE1pbiA8ZGlsbG9uLm1pbmZlaUBnbWFpbC5jb20+ Cgpjb21taXQgOGRlOWEzOWE0ZjZlNzkzZjk5YTIzZmU3MTA1YTNkZDdkOTk3MDU4YgpBdXRob3I6 IERpbGxvbiBNaW4gPGRpbGxvbi5taW5mZWlAZ21haWwuY29tPgpEYXRlOiAgIEZyaSBNYXkgMTQg MTc6MjA6MTcgMjAyMSArMDgwMAoKICAgIGRybS9wYW5lbDogQWRkIGlsaXRlayBpbGk5MzQxIHBh bmVsIGRyaXZlcgoKICAgIFRoaXMgZHJpdmVyIGNvbWJpbmUgdGlueS9pbGk5MzQxLmMgbWlwaV9k YmlfaW50ZXJmYWNlIGRyaXZlcgogICAgd2l0aCBtaXBpX2RwaV9pbnRlcmZhY2UgZHJpdmVyLCBj YW4gc3VwcG9ydCBpbGk5MzQxIHdpdGggc2VyaWFsCiAgICBtb2RlIG9yIHBhcmFsbGVsIHJnYiBp bnRlcmZhY2UgbW9kZSBieSByZWdpc3RlciBjb25maWd1cmF0aW9uLgoKICAgIFJldmlld2VkLWJ5 OiBMaW51cyBXYWxsZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+CiAgICBMaW5rOiBodHRw czovL2xvcmUua2VybmVsLm9yZy9sa21sLzE1OTAzNzgzNDgtODExNS03LWdpdC1zZW5kLWVtYWls LWRpbGxvbi5taW5mZWlAZ21haWwuY29tLwogICAgU2lnbmVkLW9mZi1ieTogRGlsbG9uIE1pbiA8 ZGlsbG9uLm1pbmZlaUBnbWFpbC5jb20+Cgpjb21taXQgYzIxMzFmN2U3M2M5ZTkzNjU2MTNlMzIz ZDY1YzdiOWU1YjkxMGY1NgpNZXJnZTogMzZjNzk1NTEzYTg4IDFhYjE5YzVkZTRjNQpBdXRob3I6 IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KRGF0ZTogICBN b24gTWF5IDMxIDA1OjU3OjIyIDIwMjEgLTEwMDAKCiAgICBNZXJnZSB0YWcgJ2dmczItdjUuMTMt cmMyLWZpeGVzJyBvZgpnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9n aXQvZ2ZzMi9saW51eC1nZnMyCgogICAgUHVsbCBnZnMyIGZpeGVzIGZyb20gQW5kcmVhcyBHcnVl bmJhY2hlcjoKICAgICAiVmFyaW91cyBnZnMyIGZpeGVzIgoKICAgICogdGFnICdnZnMyLXY1LjEz LXJjMi1maXhlcycgb2YKZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwv Z2l0L2dmczIvbGludXgtZ2ZzMjoKICAgICAgZ2ZzMjogRml4IHVzZS1hZnRlci1mcmVlIGluIGdm czJfZ2xvY2tfc2hyaW5rX3NjYW4KICAgICAgZ2ZzMjogRml4IG1tYXAgbG9ja2luZyBmb3Igd3Jp dGUgZmF1bHRzCiAgICAgIGdmczI6IENsZWFuIHVwIHJldm9rZXMgb24gbm9ybWFsIHdpdGhkcmF3 cwogICAgICBnZnMyOiBmaXggYSBkZWFkbG9jayBvbiB3aXRoZHJhdy1kdXJpbmctbW91bnQKICAg ICAgZ2ZzMjogZml4IHNjaGVkdWxpbmcgd2hpbGUgYXRvbWljIGJ1ZyBpbiBnbG9ja3MKICAgICAg Z2ZzMjogRml4IElfTkVXIGNoZWNrIGluIGdmczJfZGlub2RlX2luCiAgICAgIGdmczI6IFByZXZl bnQgZGlyZWN0LUkvTyB3cml0ZSBmYWxsYmFjayBlcnJvcnMgZnJvbSBnZXR0aW5nIGxvc3QKCgpC ZXN0IFJlZ2FyZHMKRGlsbG9uCgo+Cj4gVGhhbmtzLgo+Cj4gQmVzdCBSZWdhcmRzCj4gRGlsbG9u Cj4KPiA+Cj4gPiBQYXRyaWNlCj4gPgo+ID4KPiA+IE9uIDUvMTQvMjEgMTowMiBQTSwgZGlsbG9u Lm1pbmZlaUBnbWFpbC5jb20gd3JvdGU6Cj4gPiA+IEZyb206IERpbGxvbiBNaW4gPGRpbGxvbi5t aW5mZWlAZ21haWwuY29tPgo+ID4gPgo+ID4gPiBUaGlzIGRyaXZlciBjb21iaW5lIHRpbnkvaWxp OTM0MS5jIG1pcGlfZGJpX2ludGVyZmFjZSBkcml2ZXIKPiA+ID4gd2l0aCBtaXBpX2RwaV9pbnRl cmZhY2UgZHJpdmVyLCBjYW4gc3VwcG9ydCBpbGk5MzQxIHdpdGggc2VyaWFsCj4gPiA+IG1vZGUg b3IgcGFyYWxsZWwgcmdiIGludGVyZmFjZSBtb2RlIGJ5IHJlZ2lzdGVyIGNvbmZpZ3VyYXRpb24u Cj4gPiA+Cj4gPiA+IFJldmlld2VkLWJ5OiBMaW51cyBXYWxsZWlqIDxsaW51cy53YWxsZWlqQGxp bmFyby5vcmc+Cj4gPiA+IExpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMTU5MDM3 ODM0OC04MTE1LTctZ2l0LXNlbmQtZW1haWwtZGlsbG9uLm1pbmZlaUBnbWFpbC5jb20vCj4gPiA+ IFNpZ25lZC1vZmYtYnk6IERpbGxvbiBNaW4gPGRpbGxvbi5taW5mZWlAZ21haWwuY29tPgo+ID4g PiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnICAgICAgICAgICAgICAg IHwgICAxMiArCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUgICAgICAgICAg ICAgICB8ICAgIDEgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1p bGk5MzQxLmMgfCAxMjg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ICAzIGZpbGVz IGNoYW5nZWQsIDEyOTggaW5zZXJ0aW9ucygrKQo+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNzU1IGRy aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTM0MS5jCj4gPiA+Cj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9LY29uZmlnCj4gPiA+IGluZGV4IDQ4OTQ5MTM5MzZlOS4uZTRiYWJiYTE3ODY0IDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+ID4gPiBAQCAtMTIzLDYgKzEyMywxOCBA QCBjb25maWcgRFJNX1BBTkVMX0lMSVRFS19JTDkzMjIKPiA+ID4gICAgICAgICBTYXkgWSBoZXJl IGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciBJbGl0ZWsgSUw5MzIyCj4gPiA+ICAg ICAgICAgUVZHQSAoMzIweDI0MCkgUkdCLCBZVVYgYW5kIElUVS1UIEJULjY1NiBwYW5lbHMuCj4g PiA+Cj4gPiA+ICtjb25maWcgRFJNX1BBTkVMX0lMSVRFS19JTEk5MzQxCj4gPiA+ICsgICAgIHRy aXN0YXRlICJJbGl0ZWsgSUxJOTM0MSAyNDB4MzIwIFFWR0EgcGFuZWxzIgo+ID4gPiArICAgICBk ZXBlbmRzIG9uIE9GICYmIFNQSQo+ID4gPiArICAgICBkZXBlbmRzIG9uIERSTV9LTVNfSEVMUEVS Cj4gPiA+ICsgICAgIGRlcGVuZHMgb24gRFJNX0tNU19DTUFfSEVMUEVSCj4gPiA+ICsgICAgIGRl cGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRQo+ID4gPiArICAgICBzZWxlY3QgRFJNX01J UElfREJJCj4gPiA+ICsgICAgIGhlbHAKPiA+ID4gKyAgICAgICBTYXkgWSBoZXJlIGlmIHlvdSB3 YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciBJbGl0ZWsgSUw5MzQxCj4gPiA+ICsgICAgICAgUVZH QSAoMjQweDMyMCkgUkdCIHBhbmVscy4gc3VwcG9ydCBzZXJpYWwgJiBwYXJhbGxlbCByZ2IKPiA+ ID4gKyAgICAgICBpbnRlcmZhY2UuCj4gPiA+ICsKPiA+ID4gIGNvbmZpZyBEUk1fUEFORUxfSUxJ VEVLX0lMSTk4ODFDCj4gPiA+ICAgICAgIHRyaXN0YXRlICJJbGl0ZWsgSUxJOTg4MUMtYmFzZWQg cGFuZWxzIgo+ID4gPiAgICAgICBkZXBlbmRzIG9uIE9GCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZp bGUKPiA+ID4gaW5kZXggY2FlNGQ5NzZjMDY5Li4wZWNkZTE4NDY2NWQgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9NYWtlZmlsZQo+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvTWFrZWZpbGUKPiA+ID4gQEAgLTExLDYgKzExLDcgQEAgb2JqLSQoQ09ORklH X0RSTV9QQU5FTF9FTElEQV9LRDM1VDEzMykgKz0gcGFuZWwtZWxpZGEta2QzNXQxMzMubwo+ID4g PiAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9GRUlYSU5fSzEwMV9JTTJCQTAyKSArPSBwYW5lbC1m ZWl4aW4tazEwMS1pbTJiYTAyLm8KPiA+ID4gIG9iai0kKENPTkZJR19EUk1fUEFORUxfRkVJWUFO R19GWTA3MDI0REkyNkEzMEQpICs9IHBhbmVsLWZlaXlhbmctZnkwNzAyNGRpMjZhMzBkLm8KPiA+ ID4gIG9iai0kKENPTkZJR19EUk1fUEFORUxfSUxJVEVLX0lMOTMyMikgKz0gcGFuZWwtaWxpdGVr LWlsaTkzMjIubwo+ID4gPiArb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9JTElURUtfSUxJOTM0MSkg Kz0gcGFuZWwtaWxpdGVrLWlsaTkzNDEubwo+ID4gPiAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9J TElURUtfSUxJOTg4MUMpICs9IHBhbmVsLWlsaXRlay1pbGk5ODgxYy5vCj4gPiA+ICBvYmotJChD T05GSUdfRFJNX1BBTkVMX0lOTk9MVVhfUDA3OVpDQSkgKz0gcGFuZWwtaW5ub2x1eC1wMDc5emNh Lm8KPiA+ID4gIG9iai0kKENPTkZJR19EUk1fUEFORUxfSkRJX0xUMDcwTUUwNTAwMCkgKz0gcGFu ZWwtamRpLWx0MDcwbWUwNTAwMC5vCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzNDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5l bC1pbGl0ZWstaWxpOTM0MS5jCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiA+IGluZGV4 IDAwMDAwMDAwMDAwMC4uZjg0OTgzY2JiMjUwCj4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzQxLmMKPiA+ID4gQEAg LTAsMCArMSwxMjg1IEBACj4gPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MC1vbmx5Cj4gPiA+ICsvKgo+ID4gPiArICogSWxpdGVrIElMSTkzNDEgVEZUIExDRCBkcm1fcGFu ZWwgZHJpdmVyLgo+ID4gPiArICoKPiA+ID4gKyAqIFRoaXMgcGFuZWwgY2FuIGJlIGNvbmZpZ3Vy ZWQgdG8gc3VwcG9ydDoKPiA+ID4gKyAqIC0gMTYtYml0IHBhcmFsbGVsIFJHQiBpbnRlcmZhY2UK PiA+ID4gKyAqIC0gMTgtYml0IHBhcmFsbGVsIFJHQiBpbnRlcmZhY2UKPiA+ID4gKyAqIC0gNC1s aW5lIHNlcmlhbCBzcGkgaW50ZXJmYWNlCj4gPiA+ICsgKgo+ID4gPiArICogQ29weXJpZ2h0IChD KSAyMDIwIERpbGxvbiBNaW4gPGRpbGxvbi5taW5mZWlAZ21haWwuY29tPgo+ID4gPiArICogRGVy aXZlZCBmcm9tIGRyaXZlcnMvZHJtL2dwdS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jCj4g PiA+ICsgKi8KPiA+ID4gKwo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgo+ID4gPiAr I2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9t b2R1bGUuaD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KPiA+ID4gKyNpbmNs dWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9z cGkvc3BpLmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KPiA+ID4gKyNpbmNsdWRl IDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KPiA+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZGJp Lmg+Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Cj4g PiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgo+ID4gPiArI2luY2x1ZGUg PGRybS9kcm1fZmJfaGVscGVyLmg+Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9nZW1fYXRvbWlj X2hlbHBlci5oPgo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ID4g PiArCj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KPiA+ID4gKyNpbmNsdWRlIDxkcm0v ZHJtX21vZGVzLmg+Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgo+ID4gPiArI2lu Y2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KPiA+ID4gKwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX1JH Ql9JTlRFUkZBQ0UgIDB4YjAgICAvKiBSR0IgSW50ZXJmYWNlIFNpZ25hbCBDb250cm9sICovCj4g PiA+ICsjZGVmaW5lIElMSTkzNDFfRlJDICAgICAgICAgICAgMHhiMSAgIC8qIEZyYW1lIFJhdGUg Q29udHJvbCByZWdpc3RlciAqLwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX0RGQyAgICAgICAgICAg IDB4YjYgICAvKiBEaXNwbGF5IEZ1bmN0aW9uIENvbnRyb2wgcmVnaXN0ZXIgKi8KPiA+ID4gKyNk ZWZpbmUgSUxJOTM0MV9QT1dFUjEgICAgICAgICAweGMwICAgLyogUG93ZXIgQ29udHJvbCAxIHJl Z2lzdGVyICovCj4gPiA+ICsjZGVmaW5lIElMSTkzNDFfUE9XRVIyICAgICAgICAgMHhjMSAgIC8q IFBvd2VyIENvbnRyb2wgMiByZWdpc3RlciAqLwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX1ZDT00x ICAgICAgICAgIDB4YzUgICAvKiBWQ09NIENvbnRyb2wgMSByZWdpc3RlciAqLwo+ID4gPiArI2Rl ZmluZSBJTEk5MzQxX1ZDT00yICAgICAgICAgIDB4YzcgICAvKiBWQ09NIENvbnRyb2wgMiByZWdp c3RlciAqLwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX1BPV0VSQSAgICAgICAgIDB4Y2IgICAvKiBQ b3dlciBjb250cm9sIEEgcmVnaXN0ZXIgKi8KPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9QT1dFUkIg ICAgICAgICAweGNmICAgLyogUG93ZXIgY29udHJvbCBCIHJlZ2lzdGVyICovCj4gPiA+ICsjZGVm aW5lIElMSTkzNDFfUEdBTU1BICAgICAgICAgMHhlMCAgIC8qIFBvc2l0aXZlIEdhbW1hIENvcnJl Y3Rpb24gcmVnaXN0ZXIgKi8KPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9OR0FNTUEgICAgICAgICAw eGUxICAgLyogTmVnYXRpdmUgR2FtbWEgQ29ycmVjdGlvbiByZWdpc3RlciAqLwo+ID4gPiArI2Rl ZmluZSBJTEk5MzQxX0RUQ0EgICAgICAgICAgIDB4ZTggICAvKiBEcml2ZXIgdGltaW5nIGNvbnRy b2wgQSAqLwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX0RUQ0IgICAgICAgICAgIDB4ZWEgICAvKiBE cml2ZXIgdGltaW5nIGNvbnRyb2wgQiAqLwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX1BPV0VSX1NF USAgICAgIDB4ZWQgICAvKiBQb3dlciBvbiBzZXF1ZW5jZSByZWdpc3RlciAqLwo+ID4gPiArI2Rl ZmluZSBJTEk5MzQxXzNHQU1NQV9FTiAgICAgIDB4ZjIgICAvKiAzIEdhbW1hIGVuYWJsZSByZWdp c3RlciAqLwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX0lOVEVSRkFDRSAgICAgIDB4ZjYgICAvKiBJ bnRlcmZhY2UgY29udHJvbCByZWdpc3RlciAqLwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX1BSQyAg ICAgICAgICAgIDB4ZjcgICAvKiBQdW1wIHJhdGlvIGNvbnRyb2wgcmVnaXN0ZXIgKi8KPiA+ID4g KyNkZWZpbmUgSUxJOTM0MV9FVE1PRCAgICAgICAgICAgICAgIDB4YjcgICAvKiBFbnRyeSBtb2Rl IHNldCAqLwo+ID4gPiArCj4gPiA+ICsjZGVmaW5lIElMSTkzNDFfTUFEQ1RMX0JHUiAgIEJJVCgz KQo+ID4gPiArI2RlZmluZSBJTEk5MzQxX01BRENUTF9NViAgICBCSVQoNSkKPiA+ID4gKyNkZWZp bmUgSUxJOTM0MV9NQURDVExfTVggICAgQklUKDYpCj4gPiA+ICsjZGVmaW5lIElMSTkzNDFfTUFE Q1RMX01ZICAgIEJJVCg3KQo+ID4gPiArCj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9Q T1dFUl9CX0xFTiAgMwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX1BPV0VSX1NFUV9MRU4gICAgICAg IDQKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9EVENBX0xFTiAgICAgMwo+ID4gPiArI2RlZmluZSBJ TEk5MzQxX0RUQ0JfTEVOICAgICAyCj4gPiA+ICsjZGVmaW5lIElMSTkzNDFfUE9XRVJfQV9MRU4g IDUKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9ERkNfMV9MRU4gICAgMgo+ID4gPiArI2RlZmluZSBJ TEk5MzQxX0ZSQ19MRU4gICAgICAgICAgICAgIDIKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9WQ09N XzFfTEVOICAgMgo+ID4gPiArI2RlZmluZSBJTEk5MzQxX0RGQ18yX0xFTiAgICA0Cj4gPiA+ICsj ZGVmaW5lIElMSTkzNDFfQ09MVU1OX0FERFJfTEVOICAgICAgNAo+ID4gPiArI2RlZmluZSBJTEk5 MzQxX1BBR0VfQUREUl9MRU4gICAgICAgIDQKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9JTlRFUkZB Q0VfTEVOICAgICAgICAzCj4gPiA+ICsjZGVmaW5lIElMSTkzNDFfUEdBTU1BX0xFTiAgIDE1Cj4g PiA+ICsjZGVmaW5lIElMSTkzNDFfTkdBTU1BX0xFTiAgIDE1Cj4gPiA+ICsjZGVmaW5lIElMSTkz NDFfQ0FfTEVOICAgICAgICAgICAgICAgMwo+ID4gPiArCj4gPiA+ICsjZGVmaW5lIElMSTkzNDFf UElYRUxfRFBJXzE2X0JJVFMgICAgKEJJVCg2KXxCSVQoNCkpCj4gPiA+ICsjZGVmaW5lIElMSTkz NDFfUElYRUxfRFBJXzE4X0JJVFMgICAgKEJJVCg2KXxCSVQoNSkpCj4gPiA+ICsjZGVmaW5lIElM STkzNDFfR0FNTUFfQ1VSVkVfMSAgICAgICAgICAgICAgICBCSVQoMCkKPiA+ID4gKyNkZWZpbmUg SUxJOTM0MV9JRl9XRV9NT0RFICAgICAgICAgICBCSVQoMCkKPiA+ID4gKyNkZWZpbmUgSUxJOTM0 MV9JRl9CSUdfRU5ESUFOICAgICAgICAgICAgICAgIDB4MDAKPiA+ID4gKyNkZWZpbmUgSUxJOTM0 MV9JRl9ETV9SR0IgICAgICAgICAgICBCSVQoMikKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9JRl9E TV9JTlRFUk5BTCAgICAgICAgICAgICAgIDB4MDAKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9JRl9E TV9WU1lOQyAgICAgICAgICBCSVQoMykKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9JRl9STV9SR0Ig ICAgICAgICAgICBCSVQoMSkKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9JRl9SSU1fUkdCICAgICAg ICAgICAweDAwCj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9DT0xVTU5fQUREUiAgICAg ICAgICAweDAwZWYKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9QQUdFX0FERFIgICAgICAgICAgICAw eDAxM2YKPiA+ID4gKwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX1JHQl9FUEwgICAgICAgICAgICAg ICAgICAgICAgQklUKDApCj4gPiA+ICsjZGVmaW5lIElMSTkzNDFfUkdCX0RQTCAgICAgICAgICAg ICAgICAgICAgICBCSVQoMSkKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9SR0JfSFNQTCAgICAgICAg ICAgICBCSVQoMikKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9SR0JfVlNQTCAgICAgICAgICAgICBC SVQoMykKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9SR0JfREVfTU9ERSAgICAgICAgICBCSVQoNikK PiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9SR0JfRElTUF9QQVRIX01FTSAgICBCSVQoNykKPiA+ID4g Kwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX0RCSV9WQ09NSF80UDZWICAgICAgICAgICAgICAgMHgy Mwo+ID4gPiArI2RlZmluZSBJTEk5MzQxX0RCSV9QV1JfMl9ERUZBVUxUICAgIDB4MTAKPiA+ID4g KyNkZWZpbmUgSUxJOTM0MV9EQklfUFJDX05PUk1BTCAgICAgICAgICAgICAgIDB4MjAKPiA+ID4g KyNkZWZpbmUgSUxJOTM0MV9EQklfVkNPTV8xX1ZNSF80UDI1ViAweDNlCj4gPiA+ICsjZGVmaW5l IElMSTkzNDFfREJJX1ZDT01fMV9WTUxfMVA1ViAgMHgyOAo+ID4gPiArI2RlZmluZSBJTEk5MzQx X0RCSV9WQ09NXzJfREVDXzU4ICAgIDB4ODYKPiA+ID4gKyNkZWZpbmUgSUxJOTM0MV9EQklfRlJD X0RJVkEgICAgICAgICAweDAwCj4gPiA+ICsjZGVmaW5lIElMSTkzNDFfREJJX0ZSQ19SVE5BICAg ICAgICAgMHgxYgo+ID4gPiArI2RlZmluZSBJTEk5MzQxX0RCSV9FTVNfR0FTICAgICAgICAgIEJJ VCgwKQo+ID4gPiArI2RlZmluZSBJTEk5MzQxX0RCSV9FTVNfRFRTICAgICAgICAgIEJJVCgxKQo+ ID4gPiArI2RlZmluZSBJTEk5MzQxX0RCSV9FTVNfR09OICAgICAgICAgIEJJVCgyKQo+ID4gPiAr LyoqCj4gPiA+ICsgKiBpbGk5MzQxX2NvbW1hbmQgLSBpbGk5MzQxIGNvbW1hbmQgd2l0aCBvcHRp b25hbCBwYXJhbWV0ZXIocykKPiA+ID4gKyAqIEBpbGk6IHN0cnVjdCBpbGk5MzQxCj4gPiA+ICsg KiBAY21kOiBDb21tYW5kCj4gPiA+ICsgKiBAc2VxLi4uOiBPcHRpb25hbCBwYXJhbWV0ZXIocykK PiA+ID4gKyAqCj4gPiA+ICsgKiBTZW5kIGNvbW1hbmQgdG8gdGhlIGNvbnRyb2xsZXIuCj4gPiA+ ICsgKgo+ID4gPiArICogUmV0dXJuczoKPiA+ID4gKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRp dmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ID4gPiArICovCj4gPiA+ICsjZGVmaW5lIGlsaTkz NDFfY29tbWFuZChpbGksIGNtZCwgc2VxLi4uKSBcCj4gPiA+ICsoeyBcCj4gPiA+ICsgICAgIHU4 IGRbXSA9IHsgc2VxIH07IFwKPiA+ID4gKyAgICAgX2lsaTkzNDFfY29tbWFuZChpbGksIGNtZCwg ZCwgQVJSQVlfU0laRShkKSk7IFwKPiA+ID4gK30pCj4gPiA+ICsKPiA+ID4gKy8qKgo+ID4gPiAr ICogc3RydWN0IGlsaTkzNDFfY29uZmlnIC0gdGhlIHN5c3RlbSBzcGVjaWZpYyBJTEk5MzQxIGNv bmZpZ3VyYXRpb24KPiA+ID4gKyAqIEBtYXhfc3BpX3NwZWVkOiAxMDAwMDAwMAo+ID4gPiArICov Cj4gPiA+ICtzdHJ1Y3QgaWxpOTM0MV9jb25maWcgewo+ID4gPiArICAgICB1MzIgbWF4X3NwaV9z cGVlZDsKPiA+ID4gKyAgICAgLyoqIEBtb2RlOiB0aGUgZHJtIGRpc3BsYXkgbW9kZSAqLwo+ID4g PiArICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlOwo+ID4gPiArICAgICAv KiogQGNhOiBUT0RPOiBuZWVkIGNvbW1lbnRzIGZvciB0aGlzIHJlZ2lzdGVyICovCj4gPiA+ICsg ICAgIHU4IGNhW0lMSTkzNDFfQ0FfTEVOXTsKPiA+ID4gKyAgICAgLyoqIEBwb3dlcl9iOiBUT0RP OiBuZWVkIGNvbW1lbnRzIGZvciB0aGlzIHJlZ2lzdGVyICovCj4gPiA+ICsgICAgIHU4IHBvd2Vy X2JbSUxJOTM0MV9QT1dFUl9CX0xFTl07Cj4gPiA+ICsgICAgIC8qKiBAcG93ZXJfc2VxOiBUT0RP OiBuZWVkIGNvbW1lbnRzIGZvciB0aGlzIHJlZ2lzdGVyICovCj4gPiA+ICsgICAgIHU4IHBvd2Vy X3NlcVtJTEk5MzQxX1BPV0VSX1NFUV9MRU5dOwo+ID4gPiArICAgICAvKiogQGR0Y2E6IFRPRE86 IG5lZWQgY29tbWVudHMgZm9yIHRoaXMgcmVnaXN0ZXIgKi8KPiA+ID4gKyAgICAgdTggZHRjYVtJ TEk5MzQxX0RUQ0FfTEVOXTsKPiA+ID4gKyAgICAgLyoqIEBkdGNiOiBUT0RPOiBuZWVkIGNvbW1l bnRzIGZvciB0aGlzIHJlZ2lzdGVyICovCj4gPiA+ICsgICAgIHU4IGR0Y2JbSUxJOTM0MV9EVENC X0xFTl07Cj4gPiA+ICsgICAgIC8qKiBAcG93ZXJfYTogVE9ETzogbmVlZCBjb21tZW50cyBmb3Ig dGhpcyByZWdpc3RlciAqLwo+ID4gPiArICAgICB1OCBwb3dlcl9hW0lMSTkzNDFfUE9XRVJfQV9M RU5dOwo+ID4gPiArICAgICAvKiogQGZyYzogRnJhbWUgUmF0ZSBDb250cm9sIChJbiBOb3JtYWwg TW9kZS9GdWxsIENvbG9ycykgKEIxaCkgKi8KPiA+ID4gKyAgICAgLyoKPiA+ID4gKyAgICAgICog Rm9ybXVsYSB0byBjYWxjdWxhdGUgZnJhbWUgZnJlcXVlbmN5Ogo+ID4gPiArICAgICAgKiBGcmFt ZSBSYXRlPWZvc2MvKENsb2NrcyBwZXIgbGluZSB4IERpdmlzaW9uIHJhdGlvIHgKPiA+ID4gKyAg ICAgICogKExpbmVzK1ZCUCtWRlApKQo+ID4gPiArICAgICAgKgo+ID4gPiArICAgICAgKiBTZXRz IHRoZSBkaXZpc2lvbiByYXRpbyBmb3IgaW50ZXJuYWwgY2xvY2tzIG9mIE5vcm1hbCBtb2RlIGF0 IE1DVQo+ID4gPiArICAgICAgKiBpbnRlcmZhY2UuCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAg ICAqIGZvc2MgOiBpbnRlcm5hbCBvc2NpbGxhdG9yIGZyZXF1ZW5jeQo+ID4gPiArICAgICAgKiBD bG9ja3MgcGVyIGxpbmUgOiBSVE5BIHNldHRpbmcKPiA+ID4gKyAgICAgICogRGl2aXNpb24gcmF0 aW8gOiBESVZBIHNldHRpbmcKPiA+ID4gKyAgICAgICogTGluZXMgOiB0b3RhbCBkcml2aW5nIGxp bmUgbnVtYmVyCj4gPiA+ICsgICAgICAqIFZCUCA6IGJhY2sgcG9yY2ggbGluZSBudW1iZXIKPiA+ ID4gKyAgICAgICogVkZQIDogZnJvbnQgcG9yY2ggbGluZSBudW1iZXIKPiA+ID4gKyAgICAgICoK PiA+ID4gKyAgICAgICogUlROQSBbNDowXSBGcmFtZSBSYXRlIChIeikgICBSVE5BIFs0OjBdIEZy YW1lIFJhdGUgKEh6KQo+ID4gPiArICAgICAgKiAxIDAgMCAwIDAgIDExOSAgICAgICAgICAgICAg IDEgMSAwIDAgMCAgNzkKPiA+ID4gKyAgICAgICogMSAwIDAgMCAxICAxMTIgICAgICAgICAgICAg ICAxIDEgMCAwIDEgIDc2Cj4gPiA+ICsgICAgICAqIDEgMCAwIDEgMCAgMTA2ICAgICAgICAgICAg ICAgMSAxIDAgMSAwICA3Mwo+ID4gPiArICAgICAgKiAxIDAgMCAxIDEgIDEwMCAgICAgICAgICAg ICAgIDEgMSAwIDEgMSAgNzAoZGVmYXVsdCkKPiA+ID4gKyAgICAgICogMSAwIDEgMCAwICA5NSAg ICAgICAgICAgICAgICAxIDEgMSAwIDAgIDY4Cj4gPiA+ICsgICAgICAqIDEgMCAxIDAgMSAgOTAg ICAgICAgICAgICAgICAgMSAxIDEgMCAxICA2NQo+ID4gPiArICAgICAgKiAxIDAgMSAxIDAgIDg2 ICAgICAgICAgICAgICAgIDEgMSAxIDAgMSAgNjMKPiA+ID4gKyAgICAgICogMSAwIDEgMSAxICA4 MyAgICAgICAgICAgICAgICAxIDEgMSAxIDEgIDYxCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAg ICAqIERJVkEgWzE6MF0gOiBkaXZpc2lvbiByYXRpbyBmb3IgaW50ZXJuYWwgY2xvY2tzIHdoZW4g Tm9ybWFsIG1vZGUuCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAgICAqIERJVkEgWzE6MF0gRGl2 aXNpb24gUmF0aW8KPiA+ID4gKyAgICAgICogMCAwIGZvc2MKPiA+ID4gKyAgICAgICogMCAxIGZv c2MgLyAyCj4gPiA+ICsgICAgICAqIDEgMCBmb3NjIC8gNAo+ID4gPiArICAgICAgKiAxIDEgZm9z YyAvIDgKPiA+ID4gKyAgICAgICoKPiA+ID4gKyAgICAgICovCj4gPiA+ICsgICAgIHU4IGZyY1tJ TEk5MzQxX0ZSQ19MRU5dOwo+ID4gPiArICAgICAvKiogQHByYzogVE9ETzogbmVlZCBjb21tZW50 cyBmb3IgdGhpcyByZWdpc3RlciAqLwo+ID4gPiArICAgICB1OCBwcmM7Cj4gPiA+ICsgICAgIC8q KiBAZGZjXzE6IEI2aCBESVNDVFJMIChEaXNwbGF5IEZ1bmN0aW9uIENvbnRyb2wpICovCj4gPiA+ ICsgICAgIC8qICAgICAgICAgICAgICAgRC9DWCBSRFggV1JYIEQxNy04IEQ3ICBENiBENSBENCBE MyAgIEQyICBEMSAgRDAgIEhFWAo+ID4gPiArICAgICAgKiBDb21tYW5kICAgICAgIDAgICAgMSAg IE0gICBYWCAgICAxICAgMCAgMSAgMSAgMCAgICAxICAgMSAgIDAgICBCNmgKPiA+ID4gKyAgICAg ICogMXN0IFBhcmFtZXRlciAxICAgIDEgICBNICAgWFggICAgMCAgIDAgIDAgIDAgIFBUR1sxOjBd IFBUWzE6MF0gMEEKPiA+ID4gKyAgICAgICogMm5kIFBhcmFtZXRlciAxICAgIDEgICBNICAgWFgg ICAgUkVWIEdTIFNTIFNNIElTQ1szOjBdICAgICAgICAgODIKPiA+ID4gKyAgICAgICogM3JkIFBh cmFtZXRlciAxICAgIDEgICBNICAgWFggICAgMCAgIDAgIE5MWzU6MF0gICAgICAgICAgICAgICAg MjcKPiA+ID4gKyAgICAgICogNHRoIFBhcmFtZXRlciAxICAgIDEgICBNICAgWFggICAgMCAgIDAg IFBDRElWWzU6MF0gICAgICAgICAgICAgWFgKPiA+ID4gKyAgICAgICoKPiA+ID4gKyAgICAgICog UFRHIFsxOjBdOiBTZXQgdGhlIHNjYW4gbW9kZSBpbiBub24tZGlzcGxheSBhcmVhLgo+ID4gPiAr ICAgICAgKiBQVEcxIHwgUFRHMCB8IEdhdGUgb3V0cHV0cyBpbiAgIHwgU291cmNlIG91dHB1dHMg aW4gIHwgVkNPTSBvdXRwdXQKPiA+ID4gKyAgICAgICogICAgICAgICAgICAgICBub24tZGlzcGxh eSBhcmVhICB8IG5vbi1kaXNwbGF5IGFyZWEgICB8Cj4gPiA+ICsgICAgICAqIDEgICAgICAwICAg ICAgSW50ZXJ2YWwgc2NhbiAgICAgICBTZXQgd2l0aCB0aGUgUFRbMjowXSBiaXRzCj4gPiA+ICsg ICAgICAqCj4gPiA+ICsgICAgICAqIFBUIFsxOjBdOiBEZXRlcm1pbmUgc291cmNlL1ZDT00gb3V0 cHV0IGluIGEgbm9uLWRpc3BsYXkgYXJlYSBpbiB0aGUKPiA+ID4gKyAgICAgICogcGFydGlhbCBk aXNwbGF5IG1vZGUuCj4gPiA+ICsgICAgICAqIDEgICAgMCAgICBBR05EICAgICAgIEFHTkQgICAg ICAgQUdORCAgICAgICAgIEFHTkQKPiA+ID4gKyAgICAgICoKPiA+ID4gKyAgICAgICogUkVWOiBT ZWxlY3Qgd2hldGhlciB0aGUgbGlxdWlkIGNyeXN0YWwgdHlwZSBpcyBub3JtYWxseSB3aGl0ZSB0 eXBlCj4gPiA+ICsgICAgICAqIG9yIG5vcm1hbGx5IGJsYWNrIHR5cGUuCj4gPiA+ICsgICAgICAq IFJFViAgIExpcXVpZCBjcnlzdGFsIHR5cGUKPiA+ID4gKyAgICAgICogMCAgICAgTm9ybWFsbHkg YmxhY2sKPiA+ID4gKyAgICAgICogMSAgICAgTm9ybWFsbHkgd2hpdGUKPiA+ID4gKyAgICAgICoK PiA+ID4gKyAgICAgICogU1M6IFNlbGVjdCB0aGUgc2hpZnQgZGlyZWN0aW9uIG9mIG91dHB1dHMg ZnJvbSB0aGUgc291cmNlIGRyaXZlci4KPiA+ID4gKyAgICAgICogU1MgICAgU291cmNlIE91dHB1 dCBTY2FuIERpcmVjdGlvbgo+ID4gPiArICAgICAgKiAwICAgICBTMSAtPiBTNzIwCj4gPiA+ICsg ICAgICAqIDEgICAgIFM3MjAgLT4gUzEKPiA+ID4gKyAgICAgICoKPiA+ID4gKyAgICAgICogR1M6 IFNldHMgdGhlIGRpcmVjdGlvbiBvZiBzY2FuIGJ5IHRoZSBnYXRlIGRyaXZlciBpbiB0aGUgcmFu Z2UKPiA+ID4gKyAgICAgICogZGV0ZXJtaW5lZCBieSBTQ04gWzQ6MF0gYW5kIE5MIFs0OjBdLiBU aGUgc2NhbiBkaXJlY3Rpb24KPiA+ID4gKyAgICAgICogZGV0ZXJtaW5lZCBieSBHUyA9IDAgY2Fu IGJlIHJldmVyc2VkIGJ5IHNldHRpbmcgR1MgPSAxLgo+ID4gPiArICAgICAgKgo+ID4gPiArICAg ICAgKiBHUyAgICAgR2F0ZSBPdXRwdXQgU2NhbiBEaXJlY3Rpb24KPiA+ID4gKyAgICAgICogMCAg ICAgIEcxIC0+IEczMjAKPiA+ID4gKyAgICAgICogMSAgICAgIEczMjAgLT4gRzEKPiA+ID4gKyAg ICAgICovCj4gPiA+ICsgICAgIHU4IGRmY18xW0lMSTkzNDFfREZDXzFfTEVOXTsKPiA+ID4gKyAg ICAgIC8qKiBAcG93ZXJfMTogUG93ZXIgQ29udHJvbCAxIChDMGgpICovCj4gPiA+ICsgICAgICAv KiBWUkggWzU6MF06IFNldCB0aGUgR1ZERCBsZXZlbCwgd2hpY2ggaXMgYSByZWZlcmVuY2UgbGV2 ZWwgZm9yIHRoZQo+ID4gPiArICAgICAgKiBWQ09NIGxldmVsIGFuZCB0aGUgZ3JheXNjYWxlIHZv bHRhZ2UgbGV2ZWwuCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAgICAqIFZSSFs1OjBdICAgIEdW REQgICAgICAgICAgICAgICAgICAgICBWUkhbNTowXSAgICAgICAgR1ZERAo+ID4gPiArICAgICAg KiAwIDAgMCAwIDAgMCBTZXR0aW5nIHByb2hpYml0ZWQgICAgICAgMSAwIDAgMCAwIDAgICAgIDQu NDUgVgo+ID4gPiArICAgICAgKiAwIDAgMCAwIDAgMSBTZXR0aW5nIHByb2hpYml0ZWQgICAgICAg MSAwIDAgMCAwIDEgICAgIDQuNTAgVgo+ID4gPiArICAgICAgKiAwIDAgMCAwIDEgMCBTZXR0aW5n IHByb2hpYml0ZWQgICAgICAgMSAwIDAgMCAxIDAgICAgIDQuNTUgVgo+ID4gPiArICAgICAgKiAw IDAgMCAwIDEgMSAzLjAwIFYgICAgICAgICAgICAgICAgICAgMSAwIDAgMCAxIDEgICAgIDQuNjAg Vgo+ID4gPiArICAgICAgKiAwIDAgMCAxIDAgMCAzLjA1IFYgICAgICAgICAgICAgICAgICAgMSAw IDAgMSAwIDAgICAgIDQuNjUgVgo+ID4gPiArICAgICAgKiAwIDAgMCAxIDAgMSAzLjEwIFYgICAg ICAgICAgICAgICAgICAgMSAwIDAgMSAwIDEgICAgIDQuNzAgVgo+ID4gPiArICAgICAgKiAwIDAg MCAxIDEgMCAzLjE1IFYgICAgICAgICAgICAgICAgICAgMSAwIDAgMSAxIDAgICAgIDQuNzUgVgo+ ID4gPiArICAgICAgKiAwIDAgMCAxIDEgMSAzLjIwIFYgICAgICAgICAgICAgICAgICAgMSAwIDAg MSAxIDEgICAgIDQuODAgVgo+ID4gPiArICAgICAgKiAwIDAgMSAwIDAgMCAzLjI1IFYgICAgICAg ICAgICAgICAgICAgMSAwIDEgMCAwIDAgICAgIDQuODUgVgo+ID4gPiArICAgICAgKiAwIDAgMSAw IDAgMSAzLjMwIFYgICAgICAgICAgICAgICAgICAgMSAwIDEgMCAwIDEgICAgIDQuOTAgVgo+ID4g PiArICAgICAgKiAwIDAgMSAwIDEgMCAzLjM1IFYgICAgICAgICAgICAgICAgICAgMSAwIDEgMCAx IDAgICAgIDQuOTUgVgo+ID4gPiArICAgICAgKiAwIDAgMSAwIDEgMSAzLjQwIFYgICAgICAgICAg ICAgICAgICAgMSAwIDEgMCAxIDEgICAgIDUuMDAgVgo+ID4gPiArICAgICAgKiAwIDAgMSAxIDAg MCAzLjQ1IFYgICAgICAgICAgICAgICAgICAgMSAwIDEgMSAwIDAgICAgIDUuMDUgVgo+ID4gPiAr ICAgICAgKiAwIDAgMSAxIDAgMSAzLjUwIFYgICAgICAgICAgICAgICAgICAgMSAwIDEgMSAwIDEg ICAgIDUuMTAgVgo+ID4gPiArICAgICAgKiAwIDAgMSAxIDEgMCAzLjU1IFYgICAgICAgICAgICAg ICAgICAgMSAwIDEgMSAxIDAgICAgIDUuMTUgVgo+ID4gPiArICAgICAgKiAwIDAgMSAxIDEgMSAz LjYwIFYgICAgICAgICAgICAgICAgICAgMSAwIDEgMSAxIDEgICAgIDUuMjAgVgo+ID4gPiArICAg ICAgKiAwIDEgMCAwIDAgMCAzLjY1IFYgICAgICAgICAgICAgICAgICAgMSAxIDAgMCAwIDAgICAg IDUuMjUgVgo+ID4gPiArICAgICAgKiAwIDEgMCAwIDAgMSAzLjcwIFYgICAgICAgICAgICAgICAg ICAgMSAxIDAgMCAwIDEgICAgIDUuMzAgVgo+ID4gPiArICAgICAgKiAwIDEgMCAwIDEgMCAzLjc1 IFYgICAgICAgICAgICAgICAgICAgMSAxIDAgMCAxIDAgICAgIDUuMzUgVgo+ID4gPiArICAgICAg KiAwIDEgMCAwIDEgMSAzLjgwIFYgICAgICAgICAgICAgICAgICAgMSAxIDAgMCAxIDEgICAgIDUu NDAgVgo+ID4gPiArICAgICAgKiAwIDEgMCAxIDAgMCAzLjg1IFYgICAgICAgICAgICAgICAgICAg MSAxIDAgMSAwIDAgICAgIDUuNDUgVgo+ID4gPiArICAgICAgKiAwIDEgMCAxIDAgMSAzLjkwIFYg ICAgICAgICAgICAgICAgICAgMSAxIDAgMSAwIDEgICAgIDUuNTAgVgo+ID4gPiArICAgICAgKiAw IDEgMCAxIDEgMCAzLjk1IFYgICAgICAgICAgICAgICAgICAgMSAxIDAgMSAxIDAgICAgIDUuNTUg Vgo+ID4gPiArICAgICAgKiAwIDEgMCAxIDEgMSA0LjAwIFYgICAgICAgICAgICAgICAgICAgMSAx IDAgMSAxIDEgICAgIDUuNjAgVgo+ID4gPiArICAgICAgKiAwIDEgMSAwIDAgMCA0LjA1IFYgICAg ICAgICAgICAgICAgICAgMSAxIDEgMCAwIDAgICAgIDUuNjUgVgo+ID4gPiArICAgICAgKiAwIDEg MSAwIDAgMSA0LjEwIFYgICAgICAgICAgICAgICAgICAgMSAxIDEgMCAwIDEgICAgIDUuNzAgVgo+ ID4gPiArICAgICAgKiAwIDEgMSAwIDEgMCA0LjE1IFYgICAgICAgICAgICAgICAgICAgMSAxIDEg MCAxIDAgICAgIDUuNzUgVgo+ID4gPiArICAgICAgKiAwIDEgMSAwIDEgMSA0LjIwIFYgICAgICAg ICAgICAgICAgICAgMSAxIDEgMCAxIDEgICAgIDUuODAgVgo+ID4gPiArICAgICAgKiAwIDEgMSAx IDAgMCA0LjI1IFYgICAgICAgICAgICAgICAgICAgMSAxIDEgMSAwIDAgICAgIDUuODUgVgo+ID4g PiArICAgICAgKiAwIDEgMSAxIDAgMSA0LjMwIFYgICAgICAgICAgICAgICAgICAgMSAxIDEgMSAw IDEgICAgIDUuOTAgVgo+ID4gPiArICAgICAgKiAwIDEgMSAxIDEgMCA0LjM1IFYgICAgICAgICAg ICAgICAgICAgMSAxIDEgMSAxIDAgICAgIDUuOTUgVgo+ID4gPiArICAgICAgKiAwIDEgMSAxIDEg MSA0LjQwIFYgICAgICAgICAgICAgICAgICAgMSAxIDEgMSAxIDEgICAgIDYuMDAgVgo+ID4gPiAr ICAgICAgKi8KPiA+ID4gKyAgICAgdTggcG93ZXJfMTsKPiA+ID4gKyAgICAgLyoqIEBwb3dlcl8y OiBQb3dlciBDb250cm9sIDIgKEMxaCkgKi8KPiA+ID4gKyAgICAgLyoKPiA+ID4gKyAgICAgICog QlQgWzI6MF06IFNldHMgdGhlIGZhY3RvciB1c2VkIGluIHRoZSBzdGVwLXVwIGNpcmN1aXRzLgo+ ID4gPiArICAgICAgKiBTZWxlY3QgdGhlIG9wdGltYWwgc3RlcC11cCBmYWN0b3IgZm9yIHRoZSBv cGVyYXRpbmcgdm9sdGFnZS4gVG8KPiA+ID4gKyAgICAgICogcmVkdWNlIHBvd2VyIGNvbnN1bXB0 aW9uLCBzZXQgYSBzbWFsbGVyIGZhY3Rvci4KPiA+ID4gKyAgICAgICoKPiA+ID4gKyAgICAgICog QlRbMjowXSAgIEFWREQgICAgIFZHSCAgICAgIFZHTAo+ID4gPiArICAgICAgKiAwIDAgMCAgICAg VkNJIHggMiAgVkNJIHggNyAgVkNJIHggNAo+ID4gPiArICAgICAgKiAwIDAgMSAgICAgICAgICAg ICAgICAgICAgICAgVkNJIHggMwo+ID4gPiArICAgICAgKiAwIDEgMCAgICAgICAgICAgICAgVkNJ IHggNiAgVkNJIHggNAo+ID4gPiArICAgICAgKiAwIDEgMSAgICAgICAgICAgICAgICAgICAgICAg VkNJIHggMwo+ID4gPiArICAgICAgKgo+ID4gPiArICAgICAgKi8KPiA+ID4gKyAgICAgdTggcG93 ZXJfMjsKPiA+ID4gKyAgICAgLyoqIEB2Y29tXzE6IFZDT00gQ29udHJvbCAxKEM1aCkgKi8KPiA+ ID4gKyAgICAgLyoKPiA+ID4gKyAgICAgICogVk1IIFs2OjBdIDogU2V0IHRoZSBWQ09NSCB2b2x0 YWdlCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAgICAqIFZNSFs2OjBdIFZDT01IKFYpIFZNSFs2 OjBdIFZDT01IKFYpIFZNSFs2OjBdIFZDT01IKFYpIFZNSFs2OjBdIFZDT01ICj4gPiA+ICsgICAg ICAqIDAwMDAwMDAgIDIuNzAwICAgIDAxMDAwMDAgIDMuNTAwICAgIDEwMDAwMDAgIDQuMzAwICAg IDExMDAwMDAgIDUuMTAwCj4gPiA+ICsgICAgICAqIDAwMDAwMDEgIDIuNzI1ICAgIDAxMDAwMDEg IDMuNTI1ICAgIDEwMDAwMDEgIDQuMzI1ICAgIDExMDAwMDEgIDUuMTI1Cj4gPiA+ICsgICAgICAq IDAwMDAwMTAgIDIuNzUwICAgIDAxMDAwMTAgIDMuNTUwICAgIDEwMDAwMTAgIDQuMzUwICAgIDEx MDAwMTAgIDUuMTUwCj4gPiA+ICsgICAgICAqIDAwMDAwMTEgIDIuNzc1ICAgIDAxMDAwMTEgIDMu NTc1ICAgIDEwMDAwMTEgIDQuMzc1ICAgIDExMDAwMTEgIDUuMTc1Cj4gPiA+ICsgICAgICAqIDAw MDAxMDAgIDIuODAwICAgIDAxMDAxMDAgIDMuNjAwICAgIDEwMDAxMDAgIDQuNDAwICAgIDExMDAx MDAgIDUuMjAwCj4gPiA+ICsgICAgICAqIDAwMDAxMDEgIDIuODI1ICAgIDAxMDAxMDEgIDMuNjI1 ICAgIDEwMDAxMDEgIDQuNDI1ICAgIDExMDAxMDEgIDUuMjI1Cj4gPiA+ICsgICAgICAqIDAwMDAx MTAgIDIuODUwICAgIDAxMDAxMTAgIDMuNjUwICAgIDEwMDAxMTAgIDQuNDUwICAgIDExMDAxMTAg IDUuMjUwCj4gPiA+ICsgICAgICAqIDAwMDAxMTEgIDIuODc1ICAgIDAxMDAxMTEgIDMuNjc1ICAg IDEwMDAxMTEgIDQuNDc1ICAgIDExMDAxMTEgIDUuMjc1Cj4gPiA+ICsgICAgICAqIDAwMDEwMDAg IDIuOTAwICAgIDAxMDEwMDAgIDMuNzAwICAgIDEwMDEwMDAgIDQuNTAwICAgIDExMDEwMDAgIDUu MzAwCj4gPiA+ICsgICAgICAqIDAwMDEwMDEgIDIuOTI1ICAgIDAxMDEwMDEgIDMuNzI1ICAgIDEw MDEwMDEgIDQuNTI1ICAgIDExMDEwMDEgIDUuMzI1Cj4gPiA+ICsgICAgICAqIDAwMDEwMTAgIDIu OTUwICAgIDAxMDEwMTAgIDMuNzUwICAgIDEwMDEwMTAgIDQuNTUwICAgIDExMDEwMTAgIDUuMzUw Cj4gPiA+ICsgICAgICAqIDAwMDEwMTEgIDIuOTc1ICAgIDAxMDEwMTEgIDMuNzc1ICAgIDEwMDEw MTEgIDQuNTc1ICAgIDExMDEwMTEgIDUuMzc1Cj4gPiA+ICsgICAgICAqIDAwMDExMDAgIDMuMDAw ICAgIDAxMDExMDAgIDMuODAwICAgIDEwMDExMDAgIDQuNjAwICAgIDExMDExMDAgIDUuNDAwCj4g PiA+ICsgICAgICAqIDAwMDExMDEgIDMuMDI1ICAgIDAxMDExMDEgIDMuODI1ICAgIDEwMDExMDEg IDQuNjI1ICAgIDExMDExMDEgIDUuNDI1Cj4gPiA+ICsgICAgICAqIDAwMDExMTAgIDMuMDUwICAg IDAxMDExMTAgIDMuODUwICAgIDEwMDExMTAgIDQuNjUwICAgIDExMDExMTAgIDUuNDUwCj4gPiA+ ICsgICAgICAqIDAwMDExMTEgIDMuMDc1ICAgIDAxMDExMTEgIDMuODc1ICAgIDEwMDExMTEgIDQu Njc1ICAgIDExMDExMTEgIDUuNDc1Cj4gPiA+ICsgICAgICAqIDAwMTAwMDAgIDMuMTAwICAgIDAx MTAwMDAgIDMuOTAwICAgIDEwMTAwMDAgIDQuNzAwICAgIDExMTAwMDAgIDUuNTAwCj4gPiA+ICsg ICAgICAqIDAwMTAwMDEgIDMuMTI1ICAgIDAxMTAwMDEgIDMuOTI1ICAgIDEwMTAwMDEgIDQuNzI1 ICAgIDExMTAwMDEgIDUuNTI1Cj4gPiA+ICsgICAgICAqIDAwMTAwMTAgIDMuMTUwICAgIDAxMTAw MTAgIDMuOTUwICAgIDEwMTAwMTAgIDQuNzUwICAgIDExMTAwMTAgIDUuNTUwCj4gPiA+ICsgICAg ICAqIDAwMTAwMTEgIDMuMTc1ICAgIDAxMTAwMTEgIDMuOTc1ICAgIDEwMTAwMTEgIDQuNzc1ICAg IDExMTAwMTEgIDUuNTc1Cj4gPiA+ICsgICAgICAqIDAwMTAxMDAgIDMuMjAwICAgIDAxMTAxMDAg IDQuMDAwICAgIDEwMTAxMDAgIDQuODAwICAgIDExMTAxMDAgIDUuNjAwCj4gPiA+ICsgICAgICAq IDAwMTAxMDEgIDMuMjI1ICAgIDAxMTAxMDEgIDQuMDI1ICAgIDEwMTAxMDEgIDQuODI1ICAgIDEx MTAxMDEgIDUuNjI1Cj4gPiA+ICsgICAgICAqIDAwMTAxMTAgIDMuMjUwICAgIDAxMTAxMTAgIDQu MDUwICAgIDEwMTAxMTAgIDQuODUwICAgIDExMTAxMTAgIDUuNjUwCj4gPiA+ICsgICAgICAqIDAw MTAxMTEgIDMuMjc1ICAgIDAxMTAxMTEgIDQuMDc1ICAgIDEwMTAxMTEgIDQuODc1ICAgIDExMTAx MTEgIDUuNjc1Cj4gPiA+ICsgICAgICAqIDAwMTEwMDAgIDMuMzAwICAgIDAxMTEwMDAgIDQuMTAw ICAgIDEwMTEwMDAgIDQuOTAwICAgIDExMTEwMDAgIDUuNzAwCj4gPiA+ICsgICAgICAqIDAwMTEw MDEgIDMuMzI1ICAgIDAxMTEwMDEgIDQuMTI1ICAgIDEwMTEwMDEgIDQuOTI1ICAgIDExMTEwMDEg IDUuNzI1Cj4gPiA+ICsgICAgICAqIDAwMTEwMTAgIDMuMzUwICAgIDAxMTEwMTAgIDQuMTUwICAg IDEwMTEwMTAgIDQuOTUwICAgIDExMTEwMTAgIDUuNzUwCj4gPiA+ICsgICAgICAqIDAwMTEwMTEg IDMuMzc1ICAgIDAxMTEwMTEgIDQuMTc1ICAgIDEwMTEwMTEgIDQuOTc1ICAgIDExMTEwMTEgIDUu Nzc1Cj4gPiA+ICsgICAgICAqIDAwMTExMDAgIDMuNDAwICAgIDAxMTExMDAgIDQuMjAwICAgIDEw MTExMDAgIDUuMDAwICAgIDExMTExMDAgIDUuODAwCj4gPiA+ICsgICAgICAqIDAwMTExMDEgIDMu NDI1ICAgIDAxMTExMDEgIDQuMjI1ICAgIDEwMTExMDEgIDUuMDI1ICAgIDExMTExMDEgIDUuODI1 Cj4gPiA+ICsgICAgICAqIDAwMTExMTAgIDMuNDUwICAgIDAxMTExMTAgIDQuMjUwICAgIDEwMTEx MTAgIDUuMDUwICAgIDExMTExMTAgIDUuODUwCj4gPiA+ICsgICAgICAqIDAwMTExMTEgIDMuNDc1 ICAgIDAxMTExMTEgIDQuMjc1ICAgIDEwMTExMTEgIDUuMDc1ICAgIDExMTExMTEgIDUuODc1Cj4g PiA+ICsgICAgICAqCj4gPiA+ICsgICAgICAqIFZNTFs2OjBdIDogU2V0IHRoZSBWQ09NTCB2b2x0 YWdlCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAgICAqIFZNTFs2OjBdIFZDT01MKFYpIFZNTFs2 OjBdIFZDT01MKFYpIFZNTFs2OjBdIFZDT01MKFYpIFZNTFs2OjBdIFZDT01MCj4gPiA+ICsgICAg ICAqIDAwMDAwMDAgLTIuNTAwIDAxMDAwMDAgLTEuNzAwIDEwMDAwMDAgLTAuOTAwIDExMDAwMDAg LTAuMTAwCj4gPiA+ICsgICAgICAqIDAwMDAwMDEgLTIuNDc1IDAxMDAwMDEgLTEuNjc1IDEwMDAw MDEgLTAuODc1IDExMDAwMDEgLTAuMDc1Cj4gPiA+ICsgICAgICAqIDAwMDAwMTAgLTIuNDUwIDAx MDAwMTAgLTEuNjUwIDEwMDAwMTAgLTAuODUwIDExMDAwMTAgLTAuMDUwCj4gPiA+ICsgICAgICAq IDAwMDAwMTEgLTIuNDI1IDAxMDAwMTEgLTEuNjI1IDEwMDAwMTEgLTAuODI1IDExMDAwMTEgLTAu MDI1Cj4gPiA+ICsgICAgICAqIDAwMDAxMDAgLTIuNDAwIDAxMDAxMDAgLTEuNjAwIDEwMDAxMDAg LTAuODAwIDExMDAxMDAgMAo+ID4gPiArICAgICAgKiAwMDAwMTAxIC0yLjM3NSAwMTAwMTAxIC0x LjU3NSAxMDAwMTAxIC0wLjc3NSAxMTAwMTAxIFJlc2VydmVkCj4gPiA+ICsgICAgICAqIDAwMDAx MTAgLTIuMzUwIDAxMDAxMTAgLTEuNTUwIDEwMDAxMTAgLTAuNzUwIDExMDAxMTAgUmVzZXJ2ZWQK PiA+ID4gKyAgICAgICogMDAwMDExMSAtMi4zMjUgMDEwMDExMSAtMS41MjUgMTAwMDExMSAtMC43 MjUgMTEwMDExMSBSZXNlcnZlZAo+ID4gPiArICAgICAgKiAwMDAxMDAwIC0yLjMwMCAwMTAxMDAw IC0xLjUwMCAxMDAxMDAwIC0wLjcwMCAxMTAxMDAwIFJlc2VydmVkCj4gPiA+ICsgICAgICAqIDAw MDEwMDEgLTIuMjc1IDAxMDEwMDEgLTEuNDc1IDEwMDEwMDEgLTAuNjc1IDExMDEwMDEgUmVzZXJ2 ZWQKPiA+ID4gKyAgICAgICogMDAwMTAxMCAtMi4yNTAgMDEwMTAxMCAtMS40NTAgMTAwMTAxMCAt MC42NTAgMTEwMTAxMCBSZXNlcnZlZAo+ID4gPiArICAgICAgKiAwMDAxMDExIC0yLjIyNSAwMTAx MDExIC0xLjQyNSAxMDAxMDExIC0wLjYyNSAxMTAxMDExIFJlc2VydmVkCj4gPiA+ICsgICAgICAq IDAwMDExMDAgLTIuMjAwIDAxMDExMDAgLTEuNDAwIDEwMDExMDAgLTAuNjAwIDExMDExMDAgUmVz ZXJ2ZWQKPiA+ID4gKyAgICAgICogMDAwMTEwMSAtMi4xNzUgMDEwMTEwMSAtMS4zNzUgMTAwMTEw MSAtMC41NzUgMTEwMTEwMSBSZXNlcnZlZAo+ID4gPiArICAgICAgKiAwMDAxMTEwIC0yLjE1MCAw MTAxMTEwIC0xLjM1MCAxMDAxMTEwIC0wLjU1MCAxMTAxMTEwIFJlc2VydmVkCj4gPiA+ICsgICAg ICAqIDAwMDExMTEgLTIuMTI1IDAxMDExMTEgLTEuMzI1IDEwMDExMTEgLTAuNTI1IDExMDExMTEg UmVzZXJ2ZWQKPiA+ID4gKyAgICAgICogMDAxMDAwMCAtMi4xMDAgMDExMDAwMCAtMS4zMDAgMTAx MDAwMCAtMC41MDAgMTExMDAwMCBSZXNlcnZlZAo+ID4gPiArICAgICAgKiAwMDEwMDAxIC0yLjA3 NSAwMTEwMDAxIC0xLjI3NSAxMDEwMDAxIC0wLjQ3NSAxMTEwMDAxIFJlc2VydmVkCj4gPiA+ICsg ICAgICAqIDAwMTAwMTAgLTIuMDUwIDAxMTAwMTAgLTEuMjUwIDEwMTAwMTAgLTAuNDUwIDExMTAw MTAgUmVzZXJ2ZWQKPiA+ID4gKyAgICAgICogMDAxMDAxMSAtMi4wMjUgMDExMDAxMSAtMS4yMjUg MTAxMDAxMSAtMC40MjUgMTExMDAxMSBSZXNlcnZlZAo+ID4gPiArICAgICAgKiAwMDEwMTAwIC0y LjAwMCAwMTEwMTAwIC0xLjIwMCAxMDEwMTAwIC0wLjQwMCAxMTEwMTAwIFJlc2VydmVkCj4gPiA+ ICsgICAgICAqIDAwMTAxMDEgLTEuOTc1IDAxMTAxMDEgLTEuMTc1IDEwMTAxMDEgLTAuMzc1IDEx MTAxMDEgUmVzZXJ2ZWQKPiA+ID4gKyAgICAgICogMDAxMDExMCAtMS45NTAgMDExMDExMCAtMS4x NTAgMTAxMDExMCAtMC4zNTAgMTExMDExMCBSZXNlcnZlZAo+ID4gPiArICAgICAgKiAwMDEwMTEx IC0xLjkyNSAwMTEwMTExIC0xLjEyNSAxMDEwMTExIC0wLjMyNSAxMTEwMTExIFJlc2VydmVkCj4g PiA+ICsgICAgICAqIDAwMTEwMDAgLTEuOTAwIDAxMTEwMDAgLTEuMTAwIDEwMTEwMDAgLTAuMzAw IDExMTEwMDAgUmVzZXJ2ZWQKPiA+ID4gKyAgICAgICogMDAxMTAwMSAtMS44NzUgMDExMTAwMSAt MS4wNzUgMTAxMTAwMSAtMC4yNzUgMTExMTAwMSBSZXNlcnZlZAo+ID4gPiArICAgICAgKiAwMDEx MDEwIC0xLjg1MCAwMTExMDEwIC0xLjA1MCAxMDExMDEwIC0wLjI1MCAxMTExMDEwIFJlc2VydmVk Cj4gPiA+ICsgICAgICAqIDAwMTEwMTEgLTEuODI1IDAxMTEwMTEgLTEuMDI1IDEwMTEwMTEgLTAu MjI1IDExMTEwMTEgUmVzZXJ2ZWQKPiA+ID4gKyAgICAgICogMDAxMTEwMCAtMS44MDAgMDExMTEw MCAtMS4wMDAgMTAxMTEwMCAtMC4yMDAgMTExMTEwMCBSZXNlcnZlZAo+ID4gPiArICAgICAgKiAw MDExMTAxIC0xLjc3NSAwMTExMTAxIC0wLjk3NSAxMDExMTAxIC0wLjE3NSAxMTExMTAxIFJlc2Vy dmVkCj4gPiA+ICsgICAgICAqIDAwMTExMTAgLTEuNzUwIDAxMTExMTAgLTAuOTUwIDEwMTExMTAg LTAuMTUwIDExMTExMTAgUmVzZXJ2ZWQKPiA+ID4gKyAgICAgICogMDAxMTExMSAtMS43MjUgMDEx MTExMSAtMC45MjUgMTAxMTExMSAtMC4xMjUgMTExMTExMSBSZXNlcnZlZAo+ID4gPiArICAgICAg Ki8KPiA+ID4gKyAgICAgdTggdmNvbV8xW0lMSTkzNDFfVkNPTV8xX0xFTl07Cj4gPiA+ICsgICAg IC8qKiBAdmNvbV8yOiBWQ09NIENvbnRyb2wgMihDN2gpICovCj4gPiA+ICsgICAgIC8qCj4gPiA+ ICsgICAgICAqIEM3aCAgICAgICAgICBWTUNUUkwxIChWQ09NIENvbnRyb2wgMSkKPiA+ID4gKyAg ICAgICogICAgICAgICAgICAgIEQvQ1ggUkRYIFdSWCBEMTctOCBENyAgRDYgIEQ1IEQ0IEQzIEQy IEQxIEQwIEhFWAo+ID4gPiArICAgICAgKiBDb21tYW5kICAgICAgMCAgICAxICAgTSAgIFhYICAg IDEgICAxICAgMCAgMCAgMCAgMSAgMSAgMSAgQzdoCj4gPiA+ICsgICAgICAqIFBhcmFtZXRlciAg ICAxICAgIDEgICBNICAgWFggICAgblZNIFZNRls2OjBdICAgICAgICAgICAgICBDMAo+ID4gPiAr ICAgICAgKgo+ID4gPiArICAgICAgKiBuVk06IG5WTSBlcXVhbHMgdG8g4oCcMOKAnSBhZnRlciBw b3dlciBvbiByZXNldCBhbmQgVkNPTSBvZmZzZXQKPiA+ID4gKyAgICAgICogZXF1YWxzIHRvIHBy b2dyYW0gTVRQIHZhbHVlLiBXaGVuIG5WTSBzZXQgdG8g4oCcMeKAnSwgc2V0dGluZwo+ID4gPiAr ICAgICAgKiBvZiBWTUYgWzY6MF0gYmVjb21lcyB2YWxpZCBhbmQgVkNPTUgvVkNPTUwgY2FuIGJl IGFkanVzdGVkLgo+ID4gPiArICAgICAgKgo+ID4gPiArICAgICAgKiBWTUYgWzY6MF06IFNldCB0 aGUgVkNPTSBvZmZzZXQgdm9sdGFnZS4KPiA+ID4gKyAgICAgICovCj4gPiA+ICsgICAgIHU4IHZj b21fMjsKPiA+ID4gKyAgICAgLyoqIEBhZGRyZXNzX21vZGU6IE1lbW9yeSBBY2Nlc3MgQ29udHJv bCAoMzZoKSAqLwo+ID4gPiArICAgICAvKgo+ID4gPiArICAgICAgKiAzNmggICAgICAgICAgTUFE Q1RMIChNZW1vcnkgQWNjZXNzIENvbnRyb2wpCj4gPiA+ICsgICAgICAqICAgICAgICAgICAgICBE L0NYIFJEWCBXUlggRDE3LTggRDcgRDYgRDUgRDQgRDMgIEQyIEQxIEQwIEhFWAo+ID4gPiArICAg ICAgKiBDb21tYW5kICAgICAgMCAgICAxICAgTSAgIFhYICAgIDAgIDAgIDEgIDEgIDAgICAxICAx ICAwICAzNmgKPiA+ID4gKyAgICAgICogUGFyYW1ldGVyICAgIDEgICAgMSAgIE0gICBYWCAgICBN WSBNWCBNViBNTCBCR1IgTUggMCAgMCAgMDAKPiA+ID4gKyAgICAgICoKPiA+ID4gKyAgICAgICog VGhpcyBjb21tYW5kIGRlZmluZXMgcmVhZC93cml0ZSBzY2FubmluZyBkaXJlY3Rpb24gb2YgZnJh bWUgbWVtb3J5Lgo+ID4gPiArICAgICAgKiBUaGlzIGNvbW1hbmQgbWFrZXMgbm8gY2hhbmdlIG9u IHRoZSBvdGhlciBkcml2ZXIgc3RhdHVzLgo+ID4gPiArICAgICAgKgo+ID4gPiArICAgICAgKiBC aXQgIE5hbWUgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgo+ID4gPiArICAgICAgKiBN WSAgIFJvdyBBZGRyZXNzIE9yZGVyCj4gPiA+ICsgICAgICAqIE1YICAgQ29sdW1uIEFkZHJlc3Mg T3JkZXIKPiA+ID4gKyAgICAgICogTVYgICBSb3cgLyBDb2x1bW4gRXhjaGFuZ2UgICAgVGhlc2Ug MyBiaXRzIGNvbnRyb2wgTUNVIHRvIG1lbW9yeQo+ID4gPiArICAgICAgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB3cml0ZS9yZWFkIGRpcmVjdGlvbi4KPiA+ID4gKyAgICAgICogTUwg ICBWZXJ0aWNhbCBSZWZyZXNoIE9yZGVyICAgTENEIHZlcnRpY2FsIHJlZnJlc2ggZGlyZWN0aW9u IGNvbnRyb2wuCj4gPiA+ICsgICAgICAqIEJHUiAgUkdCLUJHUiBPcmRlciAgICAgICAgICAgIENv bG9yIHNlbGVjdG9yIHN3aXRjaCBjb250cm9sCj4gPiA+ICsgICAgICAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgwPVJHQiBjb2xvciBmaWx0ZXIgcGFuZWwsIDE9QkdSCj4gPiA+ICsg ICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yIGZpbHRlciBwYW5lbCkK PiA+ID4gKyAgICAgICogTUggICBIb3Jpem9udGFsIFJlZnJlc2ggT1JERVIgTENEIGhvcml6b250 YWwgcmVmcmVzaGluZwo+ID4gPiArICAgICAgKiBkaXJlY3Rpb24gY29udHJvbC4KPiA+ID4gKyAg ICAgICoKPiA+ID4gKyAgICAgICogTm90ZTogV2hlbiBCR1IgYml0IGlzIGNoYW5nZWQsIHRoZSBu ZXcgc2V0dGluZyBpcyBhY3RpdmUKPiA+ID4gKyAgICAgICogaW1tZWRpYXRlbHkgd2l0aG91dCB1 cGRhdGUgdGhlIGNvbnRlbnQgaW4gRnJhbWUgTWVtb3J5IGFnYWluLgo+ID4gPiArICAgICAgKgo+ ID4gPiArICAgICAgKi8KPiA+ID4gKyAgICAgdTggYWRkcmVzc19tb2RlOwo+ID4gPiArICAgICAv KiogQGczYW1tYV9lbjogVE9ETzogbmVlZCBjb21tZW50cyBmb3IgdGhpcyByZWdpc3RlciAqLwo+ ID4gPiArICAgICB1OCBnM2FtbWFfZW47Cj4gPiA+ICsgICAgIC8qKiBAcmdiX2ludGVyZmFjZTog UkdCIEludGVyZmFjZSBTaWduYWwgQ29udHJvbCAoQjBoKSAqLwo+ID4gPiArICAgICAvKgo+ID4g PiArICAgICAgKiBCMGggICAgICAgICAgSUZNT0RFIChJbnRlcmZhY2UgTW9kZSBDb250cm9sKQo+ ID4gPiArICAgICAgKiAgICAgICAgICAgICAgRC9DWCBSRFggV1JYIEQxNy04IEQ3ICAgICAgICAg IEQ2ICAgICBENSAgICAgRDQgRDMgICBEMiAgIEQxICBEMCAgSEVYCj4gPiA+ICsgICAgICAqIENv bW1hbmQgICAgICAwICAgIDEgICBNICAgWFggICAgMSAgICAgICAgICAgMCAgICAgIDEgICAgICAx ICAwICAgIDAgICAgMCAgIDAgICBCMGgKPiA+ID4gKyAgICAgICogUGFyYW1ldGVyICAgIDEgICAg MSAgIE0gICBYWCAgICBCeVBhc3NfTU9ERSBSQ01bMV0gUkNNWzBdIDAgIFZTUEwgSFNQTCBEUEwg RVBMIDQwCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAgICAqIFNldHMgdGhlIG9wZXJhdGlvbiBz dGF0dXMgb2YgdGhlIGRpc3BsYXkgaW50ZXJmYWNlLiBUaGUgc2V0dGluZwo+ID4gPiArICAgICAg KiBiZWNvbWVzIGVmZmVjdGl2ZSBhcyBzb29uIGFzIHRoZSBjb21tYW5kIGlzIHJlY2VpdmVkLgo+ ID4gPiArICAgICAgKiBFUEw6IERFIHBvbGFyaXR5ICjigJww4oCdPSBIaWdoIGVuYWJsZSBmb3Ig UkdCIGludGVyZmFjZSwg4oCcMeKAnT0gTG93Cj4gPiA+ICsgICAgICAqIGVuYWJsZSBmb3IgUkdC IGludGVyZmFjZSkKPiA+ID4gKyAgICAgICoKPiA+ID4gKyAgICAgICogRFBMOiBET1RDTEsgcG9s YXJpdHkgc2V0ICjigJww4oCdPSBkYXRhIGZldGNoZWQgYXQgdGhlIHJpc2luZyB0aW1lLAo+ID4g PiArICAgICAgKiDigJwx4oCdPSBkYXRhIGZldGNoZWQgYXQgdGhlIGZhbGxpbmcgdGltZSkKPiA+ ID4gKyAgICAgICoKPiA+ID4gKyAgICAgICogSFNQTDogSFNZTkMgcG9sYXJpdHkgKOKAnDDigJ09 IExvdyBsZXZlbCBzeW5jIGNsb2NrLCDigJwx4oCdPSBIaWdoCj4gPiA+ICsgICAgICAqIGxldmVs IHN5bmMgY2xvY2spCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAgICAqIFZTUEw6IFZTWU5DIHBv bGFyaXR5ICjigJww4oCdPSBMb3cgbGV2ZWwgc3luYyBjbG9jaywg4oCcMeKAnT0gSGlnaAo+ID4g PiArICAgICAgKiBsZXZlbCBzeW5jIGNsb2NrKQo+ID4gPiArICAgICAgKgo+ID4gPiArICAgICAg KiBSQ00gWzE6MF06IFJHQiBpbnRlcmZhY2Ugc2VsZWN0aW9uIChyZWZlciB0byB0aGUgUkdCIGlu dGVyZmFjZQo+ID4gPiArICAgICAgKiBzZWN0aW9uKS4KPiA+ID4gKyAgICAgICoKPiA+ID4gKyAg ICAgICogQnlQYXNzX01PREU6IFNlbGVjdCBkaXNwbGF5IGRhdGEgcGF0aCB3aGV0aGVyIE1lbW9y eSBvciBEaXJlY3QgdG8KPiA+ID4gKyAgICAgICogU2hpZnQgcmVnaXN0ZXIgd2hlbiBSR0IgSW50 ZXJmYWNlIGlzIHVzZWQuCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAgICAqIEJ5UGFzc19NT0RF ICBEaXNwbGF5IERhdGEgUGF0aAo+ID4gPiArICAgICAgKiAwICAgICAgICAgICAgRGlyZWN0IHRv IFNoaWZ0IFJlZ2lzdGVyIChkZWZhdWx0KQo+ID4gPiArICAgICAgKiAxICAgICAgICAgICAgTWVt b3J5Cj4gPiA+ICsgICAgICAqLwo+ID4gPiArICAgICB1OCByZ2JfaW50ZXJmYWNlOwo+ID4gPiAr ICAgICAvKiogQGRmY18yOiByZWZlciB0byBkZmNfMSAqLwo+ID4gPiArICAgICB1OCBkZmNfMltJ TEk5MzQxX0RGQ18yX0xFTl07Cj4gPiA+ICsgICAgIC8qKiBAY29sdW1uX2FkZHI6IENvbHVtbiBB ZGRyZXNzIFNldCAoMkFoKSAqLwo+ID4gPiArICAgICAvKiBUaGlzIGNvbW1hbmQgaXMgdXNlZCB0 byBkZWZpbmUgYXJlYSBvZiBmcmFtZSBtZW1vcnkgd2hlcmUgTUNVIGNhbgo+ID4gPiArICAgICAg KiBhY2Nlc3MuIFRoaXMgY29tbWFuZCBtYWtlcyBubyBjaGFuZ2Ugb24gdGhlCj4gPiA+ICsgICAg ICAqIG90aGVyIGRyaXZlciBzdGF0dXMuIFRoZSB2YWx1ZXMgb2YgU0MgWzE1OjBdIGFuZCBFQyBb MTU6MF0gYXJlCj4gPiA+ICsgICAgICAqIHJlZmVycmVkIHdoZW4gUkFNV1IgY29tbWFuZCBjb21l cy4gRWFjaCB2YWx1ZQo+ID4gPiArICAgICAgKiByZXByZXNlbnRzIG9uZSBjb2x1bW4gbGluZSBp biB0aGUgRnJhbWUgTWVtb3J5Lgo+ID4gPiArICAgICAgKi8KPiA+ID4gKyAgICAgdTggY29sdW1u X2FkZHJbSUxJOTM0MV9DT0xVTU5fQUREUl9MRU5dOwo+ID4gPiArICAgICAvKiogQHBhZ2VfYWRk cjogUGFnZSBBZGRyZXNzIFNldCAoMkJoKSAqLwo+ID4gPiArICAgICAvKiBUaGlzIGNvbW1hbmQg aXMgdXNlZCB0byBkZWZpbmUgYXJlYSBvZiBmcmFtZSBtZW1vcnkgd2hlcmUgTUNVIGNhbgo+ID4g PiArICAgICAgKiBhY2Nlc3MuIFRoaXMgY29tbWFuZCBtYWtlcyBubyBjaGFuZ2Ugb24gdGhlCj4g PiA+ICsgICAgICAqIG90aGVyIGRyaXZlciBzdGF0dXMuIFRoZSB2YWx1ZXMgb2YgU1AgWzE1OjBd IGFuZCBFUCBbMTU6MF0gYXJlCj4gPiA+ICsgICAgICAqIHJlZmVycmVkIHdoZW4gUkFNV1IgY29t bWFuZCBjb21lcy4gRWFjaCB2YWx1ZQo+ID4gPiArICAgICAgKiByZXByZXNlbnRzIG9uZSBQYWdl IGxpbmUgaW4gdGhlIEZyYW1lIE1lbW9yeS4KPiA+ID4gKyAgICAgICovCj4gPiA+ICsgICAgIHU4 IHBhZ2VfYWRkcltJTEk5MzQxX1BBR0VfQUREUl9MRU5dOwo+ID4gPiArICAgICAvKiogQGludGVy ZmFjZTogSW50ZXJmYWNlIENvbnRyb2wgKEY2aCkgKi8KPiA+ID4gKyAgICAgLyoKPiA+ID4gKyAg ICAgICogRjZoICAgICAgICAgIElGQ1RMICgxNmJpdHMgRGF0YSBGb3JtYXQgU2VsZWN0aW9uKQo+ ID4gPiArICAgICAgKiAgICAgICAgICAgICAgRC9DWCBSRFggV1JYIEQxNy04IEQ3ICAgRDYgICBE NSAgICAgRDQgICAgIEQzICAgICAgRDIgICAgIEQxICAgICBEMCAgICAgIEhFWAo+ID4gPiArICAg ICAgKiBDb21tYW5kICAgICAgMCAgICAxICAgTSAgIFhYICAgIDEgICAgMSAgICAxICAgICAgMSAg ICAgIDAgICAgICAgMSAgICAgIDEgICAgICAwICAgICAgIEY2aAo+ID4gPiArICAgICAgKiAxc3RQ YXJhbWV0ZXIgMSAgICAxICAgTSAgIFhYICAgIE1ZICAgTVggICBNVgo+ID4gPiArICAgICAgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9FT1IgX0VPUiBfRU9SICAgMCAgICAgIEJH Ul9FT1IgMCAgICAgIDAgICAgICBXRSBNT0RFIDAxCj4gPiA+ICsgICAgICAqIDJuZFBhcmFtZXRl ciAxICAgIDEgICBNICAgWFggICAgMCAgICAwICAgIEVQRlsxXSBFUEZbMF0gMCAgICAgICAwICAg ICAgTURUWzFdIE1EVFswXSAgMDAKPiA+ID4gKyAgICAgICogM3JkUGFyYW1ldGVyIDEgICAgMSAg IE0gICBYWCAgICAwICAgIDAgICAgRU5ESUFOIDAgICAgICBETVsxXSAgIERNWzBdICBSTSAgICAg UklNICAgICAwMAo+ID4gPiArICAgICAgKgo+ID4gPiArICAgICAgKi8KPiA+ID4gKyAgICAgdTgg aW50ZXJmYWNlW0lMSTkzNDFfSU5URVJGQUNFX0xFTl07Cj4gPiA+ICsgICAgIC8qKiBAcGl4ZWxf Zm9ybWF0OiBUaGlzIGNvbW1hbmQgc2V0cyB0aGUgcGl4ZWwgZm9ybWF0IGZvciB0aGUgUkdCIGlt YWdlIGRhdGEgdXNlZCBieSAqLwo+ID4gPiArICAgICAvKiB0aGUgaW50ZXJmYWNlLiBEUEkgWzI6 MF0gaXMgdGhlIHBpeGVsIGZvcm1hdCBzZWxlY3Qgb2YgUkdCCj4gPiA+ICsgICAgICAqIGludGVy ZmFjZSBhbmQgREJJIFsyOjBdIGlzIHRoZSBwaXhlbCBmb3JtYXQgb2YgTUNVIGludGVyZmFjZS4g SWYgYQo+ID4gPiArICAgICAgKiBwYXJ0aWN1bGFyIGludGVyZmFjZSwgZWl0aGVyIFJHQiBpbnRl cmZhY2Ugb3IgTUNVIGludGVyZmFjZSwgaXMKPiA+ID4gKyAgICAgICogbm90IHVzZWQgdGhlbiB0 aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBwYXJhbWV0ZXIgYXJlIGlnbm9yZWQuCj4gPiA+ ICsgICAgICAqIFRoZSBwaXhlbCBmb3JtYXQgaXMgc2hvd24gaW4gdGhlIHRhYmxlIGJlbG93Lgo+ ID4gPiArICAgICAgKgo+ID4gPiArICAgICAgKiBEUElbMjowXSAgICAgUkdCIEludGVyZmFjZSBG b3JtYXQgICAgREJJWzI6MF0gTUNVIEludGVyZmFjZSBGb3JtYXQKPiA+ID4gKyAgICAgICogMCAw IDAgICAgICAgIFJlc2VydmVkICAgICAgICAgICAgICAgIDAgMCAwICAgIFJlc2VydmVkCj4gPiA+ ICsgICAgICAqIDAgMCAxICAgICAgICBSZXNlcnZlZCAgICAgICAgICAgICAgICAwIDAgMSAgICBS ZXNlcnZlZAo+ID4gPiArICAgICAgKiAwIDEgMCAgICAgICAgUmVzZXJ2ZWQgICAgICAgICAgICAg ICAgMCAxIDAgICAgUmVzZXJ2ZWQKPiA+ID4gKyAgICAgICogMCAxIDEgICAgICAgIFJlc2VydmVk ICAgICAgICAgICAgICAgIDAgMSAxICAgIFJlc2VydmVkCj4gPiA+ICsgICAgICAqIDEgMCAwICAg ICAgICBSZXNlcnZlZCAgICAgICAgICAgICAgICAxIDAgMCAgICBSZXNlcnZlZAo+ID4gPiArICAg ICAgKiAxIDAgMSAgICAgICAgMTYgYml0cyAvIHBpeGVsICAgICAgICAgMSAwIDEgICAgMTYgYml0 cyAvIHBpeGVsCj4gPiA+ICsgICAgICAqIDEgMSAwICAgICAgICAxOCBiaXRzIC8gcGl4ZWwgICAg ICAgICAxIDEgMCAgICAxOCBiaXRzIC8gcGl4ZWwKPiA+ID4gKyAgICAgICogMSAxIDEgICAgICAg IFJlc2VydmVkICAgICAgICAgICAgICAgIDEgMSAxICAgIFJlc2VydmVkCj4gPiA+ICsgICAgICAq Cj4gPiA+ICsgICAgICAqLwo+ID4gPiArICAgICB1OCBwaXhlbF9mb3JtYXQ7Cj4gPiA+ICsgICAg IC8qKiBAZ2FtbWFfY3VydmU6IFRoaXMgY29tbWFuZCBpcyB1c2VkIHRvIHNlbGVjdCB0aGUgZGVz aXJlZCBHYW1tYSBjdXJ2ZSBmb3IgdGhlICovCj4gPiA+ICsgICAgIC8qIGN1cnJlbnQgZGlzcGxh eS4gQSBtYXhpbXVtIG9mIDQgZml4ZWQgZ2FtbWEgY3VydmVzIGNhbgo+ID4gPiArICAgICAgKiBi ZSBzZWxlY3RlZC4gVGhlIGN1cnZlIGlzIHNlbGVjdGVkIGJ5IHNldHRpbmcgdGhlIGFwcHJvcHJp YXRlIGJpdAo+ID4gPiArICAgICAgKiBpbiB0aGUgcGFyYW1ldGVyIGFzIGRlc2NyaWJlZCBpbiB0 aGUgVGFibGU6Cj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAgICAqIEdDIFs3OjBdICAgICBDdXJ2 ZSBTZWxlY3RlZAo+ID4gPiArICAgICAgKiAwMWggICAgICAgICAgR2FtbWEgY3VydmUgMSAoRzIu MikKPiA+ID4gKyAgICAgICogMDJoICAgICAgICAgIC0tLQo+ID4gPiArICAgICAgKiAwNGggICAg ICAgICAgLS0tCj4gPiA+ICsgICAgICAqIDA4aCAgICAgICAgICAtLS0KPiA+ID4gKyAgICAgICov Cj4gPiA+ICsgICAgIHU4IGdhbW1hX2N1cnZlOwo+ID4gPiArICAgICAvKiogQHBnYW1tYTogUG9z aXRpdmUgR2FtbWEgQ29ycmVjdGlvbiAoRTBoKSAqLwo+ID4gPiArICAgICAvKgo+ID4gPiArICAg ICAgKiBTZXQgdGhlIGdyYXkgc2NhbGUgdm9sdGFnZSB0byBhZGp1c3QgdGhlIGdhbW1hIGNoYXJh Y3RlcmlzdGljcyBvZgo+ID4gPiArICAgICAgKiB0aGUgVEZUIHBhbmVsLgo+ID4gPiArICAgICAg Ki8KPiA+ID4gKyAgICAgdTggcGdhbW1hW0lMSTkzNDFfUEdBTU1BX0xFTl07Cj4gPiA+ICsgICAg IC8qKiBAbmdhbW1hOiBOZWdhdGl2ZSBHYW1tYSBDb3JyZWN0aW9uIChFMWgpICovCj4gPiA+ICsg ICAgIC8qCj4gPiA+ICsgICAgICAqIFNldCB0aGUgZ3JheSBzY2FsZSB2b2x0YWdlIHRvIGFkanVz dCB0aGUgZ2FtbWEgY2hhcmFjdGVyaXN0aWNzIG9mCj4gPiA+ICsgICAgICAqIHRoZSBURlQgcGFu ZWwuCj4gPiA+ICsgICAgICAqLwo+ID4gPiArICAgICB1OCBuZ2FtbWFbSUxJOTM0MV9OR0FNTUFf TEVOXTsKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gK3N0cnVjdCBpbGk5MzQxIHsKPiA+ID4gKyAg ICAgc3RydWN0IGRldmljZSAqZGV2Owo+ID4gPiArICAgICBjb25zdCBzdHJ1Y3QgaWxpOTM0MV9j b25maWcgKmNvbmY7Cj4gPiA+ICsgICAgIHN0cnVjdCBkcm1fcGFuZWwgcGFuZWw7Cj4gPiA+ICsg ICAgIHN0cnVjdCBncGlvX2Rlc2MgKnJlc2V0X2dwaW87Cj4gPiA+ICsgICAgIHN0cnVjdCBncGlv X2Rlc2MgKmRjX2dwaW87Cj4gPiA+ICsgICAgIHUzMiBtYXhfc3BpX3NwZWVkOwo+ID4gPiArICAg ICBzdHJ1Y3QgcmVndWxhdG9yICp2Y2M7Cj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ICsvKgo+ID4g PiArICogVGhlIFN0bTMyZjQyOS1kaXNjbyBib2FyZCBoYXMgYSBwYW5lbCBpbGk5MzQxIGNvbm5l Y3RlZCB0byBsdGRjIGNvbnRyb2xsZXIKPiA+ID4gKyAqLwo+ID4gPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBpbGk5MzQxX2NvbmZpZyBpbGk5MzQxX3N0bTMyZjQyOV9kaXNjb19kYXRhID0gewo+ID4g PiArICAgICAubWF4X3NwaV9zcGVlZCA9IDEwMDAwMDAwLAo+ID4gPiArICAgICAubW9kZSA9IHsK PiA+ID4gKyAgICAgICAgICAgICAuY2xvY2sgPSA2MTAwLAo+ID4gPiArICAgICAgICAgICAgIC5o ZGlzcGxheSA9IDI0MCwKPiA+ID4gKyAgICAgICAgICAgICAuaHN5bmNfc3RhcnQgPSAyNDAgKyAx MCwvKiBoZnAgMTAgKi8KPiA+ID4gKyAgICAgICAgICAgICAuaHN5bmNfZW5kID0gMjQwICsgMTAg KyAxMCwvKiBoc3luYyAxMCAqLwo+ID4gPiArICAgICAgICAgICAgIC5odG90YWwgPSAyNDAgKyAx MCArIDEwICsgMjAsLyogaGJwIDIwICovCj4gPiA+ICsgICAgICAgICAgICAgLnZkaXNwbGF5ID0g MzIwLAo+ID4gPiArICAgICAgICAgICAgIC52c3luY19zdGFydCA9IDMyMCArIDQsLyogdmZwIDQg Ki8KPiA+ID4gKyAgICAgICAgICAgICAudnN5bmNfZW5kID0gMzIwICsgNCArIDIsLyogdnN5bmMg MiAqLwo+ID4gPiArICAgICAgICAgICAgIC52dG90YWwgPSAzMjAgKyA0ICsgMiArIDIsLyogdmJw IDIgKi8KPiA+ID4gKyAgICAgICAgICAgICAuZmxhZ3MgPSAwLAo+ID4gPiArICAgICAgICAgICAg IC53aWR0aF9tbSA9IDY1LAo+ID4gPiArICAgICAgICAgICAgIC5oZWlnaHRfbW0gPSA1MCwKPiA+ ID4gKyAgICAgICAgICAgICAudHlwZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwgRFJNX01PREVf VFlQRV9QUkVGRVJSRUQsCj4gPiA+ICsgICAgIH0sCj4gPiA+ICsgICAgIC8qIFRPRE86IG5lZWQg Y29tbWVudHMgZm9yIHRoaXMgcmVnaXN0ZXIgKi8KPiA+ID4gKyAgICAgLmNhID0gezB4YzMsIDB4 MDgsIDB4NTB9LAo+ID4gPiArICAgICAvKiBUT0RPOiBuZWVkIGNvbW1lbnRzIGZvciB0aGlzIHJl Z2lzdGVyICovCj4gPiA+ICsgICAgIC5wb3dlcl9iID0gezB4MDAsIDB4YzEsIDB4MzB9LAo+ID4g PiArICAgICAvKiBUT0RPOiBuZWVkIGNvbW1lbnRzIGZvciB0aGlzIHJlZ2lzdGVyICovCj4gPiA+ ICsgICAgIC5wb3dlcl9zZXEgPSB7MHg2NCwgMHgwMywgMHgxMiwgMHg4MX0sCj4gPiA+ICsgICAg IC8qIFRPRE86IG5lZWQgY29tbWVudHMgZm9yIHRoaXMgcmVnaXN0ZXIgKi8KPiA+ID4gKyAgICAg LmR0Y2EgPSB7MHg4NSwgMHgwMCwgMHg3OH0sCj4gPiA+ICsgICAgIC8qIFRPRE86IG5lZWQgY29t bWVudHMgZm9yIHRoaXMgcmVnaXN0ZXIgKi8KPiA+ID4gKyAgICAgLnBvd2VyX2EgPSB7MHgzOSwg MHgyYywgMHgwMCwgMHgzNCwgMHgwMn0sCj4gPiA+ICsgICAgIC8qIFRPRE86IG5lZWQgY29tbWVu dHMgZm9yIHRoaXMgcmVnaXN0ZXIgKi8KPiA+ID4gKyAgICAgLnByYyA9IDB4MjAsCj4gPiA+ICsg ICAgIC8qIFRPRE86IG5lZWQgY29tbWVudHMgZm9yIHRoaXMgcmVnaXN0ZXIgKi8KPiA+ID4gKyAg ICAgLmR0Y2IgPSB7MHgwMCwgMHgwMH0sCj4gPiA+ICsgICAgIC8qIDB4MDAgZm9zYywgMHgxYiA3 MGh6ICovCj4gPiA+ICsgICAgIC5mcmMgPSB7MHgwMCwgMHgxYn0sCj4gPiA+ICsgICAgIC8qIDB4 MGEgSW50ZXJ2YWwgc2NhbiwgQUdORCBBR05EIEFHTkQgQUdORAo+ID4gPiArICAgICAgKiAweGEy IE5vcm1hbGx5IHdoaXRlLCBHMSAtPiBHMzIwLCBTNzIwIC0+IFMxLAo+ID4gPiArICAgICAgKiAg ICAgIFNjYW4gQ3ljbGUgNSBmcmFtZXMsODVtcwo+ID4gPiArICAgICAgKi8KPiA+ID4gKyAgICAg LmRmY18xID0gezB4MGEsIDB4YTJ9LAo+ID4gPiArICAgICAvKiAweDEwIDMuNjV2ICovCj4gPiA+ ICsgICAgIC5wb3dlcl8xID0gMHgxMCwKPiA+ID4gKyAgICAgLyogMHgxMCBBVkREPXZjaSoyLCBW R0g9dmNpKjcsIFZHTD0tdmNpKjQgKi8KPiA+ID4gKyAgICAgLnBvd2VyXzIgPSAweDEwLAo+ID4g PiArICAgICAvKiAweDQ1IFZDT01IIDQuNDI1diwgMHgxNSBWQ09NTCAtMS45NzUqLwo+ID4gPiAr ICAgICAudmNvbV8xID0gezB4NDUsIDB4MTV9LAo+ID4gPiArICAgICAvKiAweDkwIG9mZnNldCB2 b2x0YWdlLCBWTUgtNDgsIFZNTC00OCAqLwo+ID4gPiArICAgICAudmNvbV8yID0gMHg5MCwKPiA+ ID4gKyAgICAgLyogMHhjOCBSb3cgQWRkcmVzcyBPcmRlciwgQ29sdW1uIEFkZHJlc3MgT3JkZXIK PiA+ID4gKyAgICAgICogICAgICBCR1IgMQo+ID4gPiArICAgICAgKi8KPiA+ID4gKyAgICAgLmFk ZHJlc3NfbW9kZSA9IDB4YzgsCj4gPiA+ICsgICAgIC5nM2FtbWFfZW4gPSAweDAwLAo+ID4gPiAr ICAgICAvKiAweGMyCj4gPiA+ICsgICAgICAqIERpc3BsYXkgRGF0YSBQYXRoOiBNZW1vcnkKPiA+ ID4gKyAgICAgICogUkdCOiBERSBtb2RlCj4gPiA+ICsgICAgICAqIERPVENMSyBwb2xhcml0eSBz ZXQgKGRhdGEgZmV0Y2hlZCBhdCB0aGUgZmFsbGluZyB0aW1lKQo+ID4gPiArICAgICAgKi8KPiA+ ID4gKyAgICAgLnJnYl9pbnRlcmZhY2UgPSBJTEk5MzQxX1JHQl9ESVNQX1BBVEhfTUVNIHwKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgIElMSTkzNDFfUkdCX0RFX01PREUgfAo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgSUxJOTM0MV9SR0JfRFBMLAo+ID4gPiArICAgICAvKgo+ID4gPiAr ICAgICAgKiAweDBhCj4gPiA+ICsgICAgICAqIEdhdGUgb3V0cHV0cyBpbiBub24tZGlzcGxheSBh cmVhOiBJbnRlcnZhbCBzY2FuCj4gPiA+ICsgICAgICAqIERldGVybWluZSBzb3VyY2UvVkNPTSBv dXRwdXQgaW4gYSBub24tZGlzcGxheSBhcmVhIGluIHRoZSBwYXJ0aWFsCj4gPiA+ICsgICAgICAq IGRpc3BsYXkgbW9kZTogQUdORCBBR05EIEFHTkQgQUdORAo+ID4gPiArICAgICAgKgo+ID4gPiAr ICAgICAgKiAweGE3Cj4gPiA+ICsgICAgICAqIFNjYW4gQ3ljbGU6IDE1IGZyYW1lcwo+ID4gPiAr ICAgICAgKiBmRkxNID0gNjBIejogMjU1bXMKPiA+ID4gKyAgICAgICogTGlxdWlkIGNyeXN0YWwg dHlwZTogTm9ybWFsbHkgd2hpdGUKPiA+ID4gKyAgICAgICogR2F0ZSBPdXRwdXQgU2NhbiBEaXJl Y3Rpb246IEcxIC0+IEczMjAKPiA+ID4gKyAgICAgICogU291cmNlIE91dHB1dCBTY2FuIERpcmVj dGlvbjogUzcyMCAtPiBTMQo+ID4gPiArICAgICAgKgo+ID4gPiArICAgICAgKiAweDI3Cj4gPiA+ ICsgICAgICAqIExDRCBEcml2ZXIgTGluZTogMzIwIGxpbmVzCj4gPiA+ICsgICAgICAqCj4gPiA+ ICsgICAgICAqIDB4MDQKPiA+ID4gKyAgICAgICogUENESVY6IDQKPiA+ID4gKyAgICAgICovCj4g PiA+ICsgICAgIC5kZmNfMiA9IHsweDBhLCAweGE3LCAweDI3LCAweDA0fSwKPiA+ID4gKyAgICAg LyogY29sdW1uIGFkZHJlc3M6IDI0MCAqLwo+ID4gPiArICAgICAuY29sdW1uX2FkZHIgPSB7MHgw MCwgMHgwMCwgKElMSTkzNDFfQ09MVU1OX0FERFIgPj4gNCkgJiAweGZmLAo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJTEk5MzQxX0NPTFVNTl9BRERSICYgMHhmZn0sCj4gPiA+ ICsgICAgIC8qIHBhZ2UgYWRkcmVzczogMzIwICovCj4gPiA+ICsgICAgIC5wYWdlX2FkZHIgPSB7 MHgwMCwgMHgwMCwgKElMSTkzNDFfUEFHRV9BRERSID4+IDQpICYgMHhmZiwKPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSUxJOTM0MV9QQUdFX0FERFIgJiAweGZmfSwKPiA+ID4g KyAgICAgLyogTWVtb3J5IHdyaXRlIGNvbnRyb2w6IFdoZW4gdGhlIHRyYW5zZmVyIG51bWJlciBv ZiBkYXRhIGV4Y2VlZHMKPiA+ID4gKyAgICAgICogKEVDLVNDKzEpKihFUC1TUCsxKSwgdGhlIGNv bHVtbiBhbmQgcGFnZSBudW1iZXIgd2lsbCBiZQo+ID4gPiArICAgICAgKiByZXNldCwgYW5kIHRo ZSBleGNlZWRpbmcgZGF0YSB3aWxsIGJlIHdyaXR0ZW4gaW50byB0aGUgZm9sbG93aW5nCj4gPiA+ ICsgICAgICAqIGNvbHVtbiBhbmQgcGFnZS4KPiA+ID4gKyAgICAgICogRGlzcGxheSBPcGVyYXRp b24gTW9kZTogUkdCIEludGVyZmFjZSBNb2RlCj4gPiA+ICsgICAgICAqIEludGVyZmFjZSBmb3Ig UkFNIEFjY2VzczogUkdCIGludGVyZmFjZQo+ID4gPiArICAgICAgKiAxNi0gYml0IFJHQiBpbnRl cmZhY2UgKDEgdHJhbnNmZXIvcGl4ZWwpCj4gPiA+ICsgICAgICAqLwo+ID4gPiArICAgICAuaW50 ZXJmYWNlID0ge0lMSTkzNDFfSUZfV0VfTU9ERSwgMHgwMCwKPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgIElMSTkzNDFfSUZfRE1fUkdCIHwgSUxJOTM0MV9JRl9STV9SR0J9LAo+ID4gPiArICAg ICAvKiBEUEk6IDE2IGJpdHMgLyBwaXhlbCAqLwo+ID4gPiArICAgICAucGl4ZWxfZm9ybWF0ID0g SUxJOTM0MV9QSVhFTF9EUElfMTZfQklUUywKPiA+ID4gKyAgICAgLyogQ3VydmUgU2VsZWN0ZWQ6 IEdhbW1hIGN1cnZlIDEgKEcyLjIpICovCj4gPiA+ICsgICAgIC5nYW1tYV9jdXJ2ZSA9IElMSTkz NDFfR0FNTUFfQ1VSVkVfMSwKPiA+ID4gKyAgICAgLnBnYW1tYSA9IHsweDBmLCAweDI5LCAweDI0 LCAweDBjLCAweDBlLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgMHgwOSwgMHg0ZSwgMHg3 OCwgMHgzYywgMHgwOSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIDB4MTMsIDB4MDUsIDB4 MTcsIDB4MTEsIDB4MDB9LAo+ID4gPiArICAgICAubmdhbW1hID0gezB4MDAsIDB4MTYsIDB4MWIs IDB4MDQsIDB4MTEsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAweDA3LCAweDMxLCAweDMz LCAweDQyLCAweDA1LAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgMHgwYywgMHgwYSwgMHgy OCwgMHgyZiwgMHgwZn0sCj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW5saW5lIHN0 cnVjdCBpbGk5MzQxICpwYW5lbF90b19pbGk5MzQxKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ ID4gPiArewo+ID4gPiArICAgICByZXR1cm4gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3QgaWxp OTM0MSwgcGFuZWwpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IGlsaTkzNDFf c3BpX3RyYW5zZmVyKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHUzMiBzcGVlZF9oeiwKPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgdTggYnB3LCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBs ZW4pCj4gPiA+ICt7Cj4gPiA+ICsgICAgIHNpemVfdCBtYXhfY2h1bmsgPSBzcGlfbWF4X3RyYW5z ZmVyX3NpemUoc3BpKTsKPiA+ID4gKyAgICAgc3RydWN0IHNwaV90cmFuc2ZlciB0ciA9IHsKPiA+ ID4gKyAgICAgICAgICAgICAuYml0c19wZXJfd29yZCA9IGJwdywKPiA+ID4gKyAgICAgICAgICAg ICAuc3BlZWRfaHogPSBzcGVlZF9oeiwKPiA+ID4gKyAgICAgICAgICAgICAubGVuID0gbGVuLAo+ ID4gPiArICAgICB9Owo+ID4gPiArICAgICBzdHJ1Y3Qgc3BpX21lc3NhZ2UgbTsKPiA+ID4gKyAg ICAgc2l6ZV90IGNodW5rOwo+ID4gPiArICAgICBpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsgICAg IHNwaV9tZXNzYWdlX2luaXRfd2l0aF90cmFuc2ZlcnMoJm0sICZ0ciwgMSk7Cj4gPiA+ICsKPiA+ ID4gKyAgICAgd2hpbGUgKGxlbikgewo+ID4gPiArICAgICAgICAgICAgIGNodW5rID0gbWluKGxl biwgbWF4X2NodW5rKTsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgIHRyLnR4X2J1ZiA9IGJ1 ZjsKPiA+ID4gKyAgICAgICAgICAgICB0ci5sZW4gPSBjaHVuazsKPiA+ID4gKyAgICAgICAgICAg ICBidWYgKz0gY2h1bms7Cj4gPiA+ICsgICAgICAgICAgICAgbGVuIC09IGNodW5rOwo+ID4gPiAr Cj4gPiA+ICsgICAgICAgICAgICAgcmV0ID0gc3BpX3N5bmMoc3BpLCAmbSk7Cj4gPiA+ICsgICAg ICAgICAgICAgaWYgKHJldCkgewo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgZGV2X2Vycigm c3BpLT5kZXYsICJzcGlfc3luYyBlcnJvcjogJWRcbiIsIHJldCk7Cj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiArICAgICAgICAgICAgIH0KPiA+ID4gKyAgICAg fQo+ID4gPiArICAgICByZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIGlu dCBfaWxpOTM0MV9jb21tYW5kKHN0cnVjdCBpbGk5MzQxICppbGksIHU4IGNtZCwgY29uc3Qgdm9p ZCAqZGF0YSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBj b3VudCkKPiA+ID4gK3sKPiA+ID4gKyAgICAgc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IHRvX3Nw aV9kZXZpY2UoaWxpLT5kZXYpOwo+ID4gPiArICAgICBpbnQgcmV0ID0gMDsKPiA+ID4gKwo+ID4g PiArICAgICBncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoaWxpLT5kY19ncGlvLCAwKTsKPiA+ID4g Kwo+ID4gPiArICAgICByZXQgPSBpbGk5MzQxX3NwaV90cmFuc2ZlcihzcGksIGlsaS0+bWF4X3Nw aV9zcGVlZCwgOCwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y29uc3Qgdm9pZCAqKSZjbWQsIDEpOwo+ID4gPiArICAgICBpZiAocmV0IHx8IGRhdGEgPT0gTlVM TCB8fCBjb3VudCA9PSAwKSB7Cj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ID4g KyAgICAgfQo+ID4gPiArCj4gPiA+ICsgICAgIGdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChpbGkt PmRjX2dwaW8sIDEpOwo+ID4gPiArCj4gPiA+ICsgICAgIHJldHVybiBpbGk5MzQxX3NwaV90cmFu c2ZlcihzcGksIGlsaS0+bWF4X3NwaV9zcGVlZCwgOCwKPiA+ID4gKyAgICAgICAgICAgICBkYXRh LCBjb3VudCk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBpbnQgaWxpOTM0MV9kcGlf aW5pdChzdHJ1Y3QgaWxpOTM0MSAqaWxpKQo+ID4gPiArewo+ID4gPiArICAgICBpbnQgcmV0Owo+ ID4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGlsaSwgMHhjYSwKPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgIGlsaS0+Y29uZi0+Y2EsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICBJTEk5MzQxX0NBX0xFTik7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAgICAg ICAgcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5k KGlsaSwgSUxJOTM0MV9QT1dFUkIsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbGktPmNv bmYtPnBvd2VyX2IsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBJTEk5MzQxX1BPV0VSX0Jf TEVOKTsKPiA+ID4gKyAgICAgaWYgKHJldCkKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0 Owo+ID4gPiArCj4gPiA+ICsgICAgIHJldCA9IF9pbGk5MzQxX2NvbW1hbmQoaWxpLCBJTEk5MzQx X1BPV0VSX1NFUSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIGlsaS0+Y29uZi0+cG93ZXJf c2VxLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgSUxJOTM0MV9QT1dFUl9TRVFfTEVOKTsK PiA+ID4gKyAgICAgaWYgKHJldCkKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4g PiArCj4gPiA+ICsgICAgIHJldCA9IF9pbGk5MzQxX2NvbW1hbmQoaWxpLCBJTEk5MzQxX0RUQ0Es Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbGktPmNvbmYtPmR0Y2EsCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICBJTEk5MzQxX0RUQ0FfTEVOKTsKPiA+ID4gKyAgICAgaWYgKHJldCkK PiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsgICAgIHJldCA9 IF9pbGk5MzQxX2NvbW1hbmQoaWxpLCBJTEk5MzQxX1BPV0VSQSwKPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgIGlsaS0+Y29uZi0+cG93ZXJfYSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg IElMSTkzNDFfUE9XRVJfQV9MRU4pOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiArICAgICAg ICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFfY29t bWFuZChpbGksIElMSTkzNDFfUFJDLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgJmlsaS0+ Y29uZi0+cHJjLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgMSk7Cj4gPiA+ICsgICAgIGlm IChyZXQpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAg ICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGlsaSwgSUxJOTM0MV9EVENCLAo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgaWxpLT5jb25mLT5kdGNiLAo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgSUxJOTM0MV9EVENCX0xFTik7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAg ICAgICAgcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21t YW5kKGlsaSwgSUxJOTM0MV9GUkMsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbGktPmNv bmYtPmZyYywKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIElMSTkzNDFfRlJDX0xFTik7Cj4g PiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ID4g Kwo+ID4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGlsaSwgSUxJOTM0MV9ERkMsCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgICBpbGktPmNvbmYtPmRmY18xLAo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgSUxJOTM0MV9ERkNfMV9MRU4pOwo+ID4gPiArICAgICBpZiAocmV0KQo+ ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0g X2lsaTkzNDFfY29tbWFuZChpbGksIElMSTkzNDFfUE9XRVIxLAo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgJmlsaS0+Y29uZi0+cG93ZXJfMSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg IDEpOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7 Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFfY29tbWFuZChpbGksIElMSTkzNDFf UE9XRVIyLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgJmlsaS0+Y29uZi0+cG93ZXJfMiwK PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIDEpOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4g PiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gX2ls aTkzNDFfY29tbWFuZChpbGksIElMSTkzNDFfVkNPTTEsCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICBpbGktPmNvbmYtPnZjb21fMSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIElMSTkz NDFfVkNPTV8xX0xFTik7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAgICAgICAg cmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGls aSwgSUxJOTM0MV9WQ09NMiwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICZpbGktPmNvbmYt PnZjb21fMiwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIDEpOwo+ID4gPiArICAgICBpZiAo cmV0KQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAg cmV0ID0gX2lsaTkzNDFfY29tbWFuZChpbGksIE1JUElfRENTX1NFVF9BRERSRVNTX01PREUsCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAmaWxpLT5jb25mLT5hZGRyZXNzX21vZGUsCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAxKTsKPiA+ID4gKyAgICAgaWYgKHJldCkKPiA+ID4gKyAg ICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsgICAgIHJldCA9IF9pbGk5MzQx X2NvbW1hbmQoaWxpLCBJTEk5MzQxXzNHQU1NQV9FTiwKPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICZpbGktPmNvbmYtPmczYW1tYV9lbiwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIDEp Owo+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4g PiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFfY29tbWFuZChpbGksIElMSTkzNDFfUkdC X0lOVEVSRkFDRSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICZpbGktPmNvbmYtPnJnYl9p bnRlcmZhY2UsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAxKTsKPiA+ID4gKyAgICAgaWYg KHJldCkKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsgICAg IHJldCA9IF9pbGk5MzQxX2NvbW1hbmQoaWxpLCBJTEk5MzQxX0RGQywKPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgIGlsaS0+Y29uZi0+ZGZjXzIsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICBJTEk5MzQxX0RGQ18yX0xFTik7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAg ICAgICAgcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21t YW5kKGlsaSwgTUlQSV9EQ1NfU0VUX0NPTFVNTl9BRERSRVNTLAo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgaWxpLT5jb25mLT5jb2x1bW5fYWRkciwKPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgIElMSTkzNDFfQ09MVU1OX0FERFJfTEVOKTsKPiA+ID4gKyAgICAgaWYgKHJldCkKPiA+ID4g KyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsgICAgIHJldCA9IF9pbGk5 MzQxX2NvbW1hbmQoaWxpLCBNSVBJX0RDU19TRVRfUEFHRV9BRERSRVNTLAo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgaWxpLT5jb25mLT5wYWdlX2FkZHIsCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICBJTEk5MzQxX1BBR0VfQUREUl9MRU4pOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4g PiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gX2ls aTkzNDFfY29tbWFuZChpbGksIElMSTkzNDFfSU5URVJGQUNFLAo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgaWxpLT5jb25mLT5pbnRlcmZhY2UsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICBJTEk5MzQxX0lOVEVSRkFDRV9MRU4pOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiArICAg ICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFf Y29tbWFuZChpbGksIE1JUElfRENTX1NFVF9QSVhFTF9GT1JNQVQsCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAmaWxpLT5jb25mLT5waXhlbF9mb3JtYXQsCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAxKTsKPiA+ID4gKyAgICAgaWYgKHJldCkKPiA+ID4gKyAgICAgICAgICAgICByZXR1 cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsgICAgIHJldCA9IGlsaTkzNDFfY29tbWFuZChpbGksIE1J UElfRENTX1dSSVRFX01FTU9SWV9TVEFSVCk7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsg ICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAgICBtc2xlZXAoMjAwKTsK PiA+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFfY29tbWFuZChpbGksIE1JUElfRENTX1NFVF9HQU1N QV9DVVJWRSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICZpbGktPmNvbmYtPmdhbW1hX2N1 cnZlLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgMSk7Cj4gPiA+ICsgICAgIGlmIChyZXQp Cj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAgICByZXQg PSBfaWxpOTM0MV9jb21tYW5kKGlsaSwgSUxJOTM0MV9QR0FNTUEsCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICBpbGktPmNvbmYtPnBnYW1tYSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg IElMSTkzNDFfUEdBTU1BX0xFTik7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAg ICAgICAgcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21t YW5kKGlsaSwgSUxJOTM0MV9OR0FNTUEsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbGkt PmNvbmYtPm5nYW1tYSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIElMSTkzNDFfTkdBTU1B X0xFTik7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJl dDsKPiA+ID4gKwo+ID4gPiArICAgICByZXQgPSBpbGk5MzQxX2NvbW1hbmQoaWxpLCBNSVBJX0RD U19FWElUX1NMRUVQX01PREUpOwo+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiArICAgICAgICAg ICAgIHJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgbXNsZWVwKDIwMCk7Cj4gPiA+ICsg ICAgIHJldCA9IGlsaTkzNDFfY29tbWFuZChpbGksIE1JUElfRENTX1NFVF9ESVNQTEFZX09OKTsK PiA+ID4gKyAgICAgaWYgKHJldCkKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4g PiArCj4gPiA+ICsgICAgIHJldCA9IGlsaTkzNDFfY29tbWFuZChpbGksIE1JUElfRENTX1dSSVRF X01FTU9SWV9TVEFSVCk7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAgICAgICAg cmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArICAgICBkZXZfaW5mbyhpbGktPmRldiwgImluaXRp YWxpemVkIGRpc3BsYXkgcmdiIGludGVyZmFjZVxuIik7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0 dXJuIDA7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBpbnQgaWxpOTM0MV9kcGlfcG93 ZXJfb24oc3RydWN0IGlsaTkzNDEgKmlsaSkKPiA+ID4gK3sKPiA+ID4gKyAgICAgaW50IHJldCA9 IDA7Cj4gPiA+ICsKPiA+ID4gKyAgICAgLyogQXNzZXJ0IFJFU0VUICovCj4gPiA+ICsgICAgIGdw aW9kX3NldF92YWx1ZShpbGktPnJlc2V0X2dwaW8sIDEpOwo+ID4gPiArCj4gPiA+ICsgICAgIC8q IEVuYWJsZSBwb3dlciAqLwo+ID4gPiArICAgICBpZiAoIUlTX0VSUihpbGktPnZjYykpIHsKPiA+ ID4gKyAgICAgICAgICAgICByZXQgPSByZWd1bGF0b3JfZW5hYmxlKGlsaS0+dmNjKTsKPiA+ID4g KyAgICAgICAgICAgICBpZiAocmV0IDwgMCkgewo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ZGV2X2VycihpbGktPmRldiwgInVuYWJsZSB0byBlbmFibGUgdmNjXG4iKTsKPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ICsgICAgICAgICAgICAgfQo+ID4gPiAr ICAgICB9Cj4gPiA+ICsgICAgIG1zbGVlcCgyMCk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgLyogRGUt YXNzZXJ0IFJFU0VUICovCj4gPiA+ICsgICAgIGdwaW9kX3NldF92YWx1ZShpbGktPnJlc2V0X2dw aW8sIDApOwo+ID4gPiArICAgICBtc2xlZXAoMTApOwo+ID4gPiArCj4gPiA+ICsgICAgIHJldHVy biAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IGlsaTkzNDFfZHBpX3Bvd2Vy X29mZihzdHJ1Y3QgaWxpOTM0MSAqaWxpKQo+ID4gPiArewo+ID4gPiArICAgICAvKiBBc3NlcnQg UkVTRVQgKi8KPiA+ID4gKyAgICAgZ3Bpb2Rfc2V0X3ZhbHVlKGlsaS0+cmVzZXRfZ3BpbywgMSk7 Cj4gPiA+ICsKPiA+ID4gKyAgICAgLyogRGlzYWJsZSBwb3dlciAqLwo+ID4gPiArICAgICBpZiAo IUlTX0VSUihpbGktPnZjYykpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJlZ3VsYXRvcl9k aXNhYmxlKGlsaS0+dmNjKTsKPiA+ID4gKwo+ID4gPiArICAgICByZXR1cm4gMDsKPiA+ID4gK30K PiA+ID4gKwo+ID4gPiArc3RhdGljIGludCBpbGk5MzQxX2RwaV9kaXNhYmxlKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsKQo+ID4gPiArewo+ID4gPiArICAgICBzdHJ1Y3QgaWxpOTM0MSAqaWxpID0g cGFuZWxfdG9faWxpOTM0MShwYW5lbCk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgaWxpOTM0MV9jb21t YW5kKGlsaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT0ZGKTsKPiA+ID4gKwo+ID4gPiArICAgICBy ZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIGludCBpbGk5MzQxX2RwaV91 bnByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIHN0 cnVjdCBpbGk5MzQxICppbGkgPSBwYW5lbF90b19pbGk5MzQxKHBhbmVsKTsKPiA+ID4gKwo+ID4g PiArICAgICByZXR1cm4gaWxpOTM0MV9kcGlfcG93ZXJfb2ZmKGlsaSk7Cj4gPiA+ICt9Cj4gPiA+ ICsKPiA+ID4gK3N0YXRpYyBpbnQgaWxpOTM0MV9kcGlfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKPiA+ID4gK3sKPiA+ID4gKyAgICAgc3RydWN0IGlsaTkzNDEgKmlsaSA9IHBhbmVs X3RvX2lsaTkzNDEocGFuZWwpOwo+ID4gPiArICAgICBpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsg ICAgIHJldCA9IGlsaTkzNDFfZHBpX3Bvd2VyX29uKGlsaSk7Cj4gPiA+ICsgICAgIGlmIChyZXQg PCAwKQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAg cmV0ID0gaWxpOTM0MV9kcGlfaW5pdChpbGkpOwo+ID4gPiArICAgICBpZiAocmV0IDwgMCkKPiA+ ID4gKyAgICAgICAgICAgICBpbGk5MzQxX2RwaV91bnByZXBhcmUocGFuZWwpOwo+ID4gPiArCj4g PiA+ICsgICAgIHJldHVybiByZXQ7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBpbnQg aWxpOTM0MV9kcGlfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ID4gPiArewo+ID4g PiArICAgICBzdHJ1Y3QgaWxpOTM0MSAqaWxpID0gcGFuZWxfdG9faWxpOTM0MShwYW5lbCk7Cj4g PiA+ICsKPiA+ID4gKyAgICAgaWxpOTM0MV9jb21tYW5kKGlsaSwgTUlQSV9EQ1NfU0VUX0RJU1BM QVlfT04pOwo+ID4gPiArCj4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4g PiA+ICtzdGF0aWMgaW50IGlsaTkzNDFfZHBpX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiA+ID4gK3sKPiA+ID4gKyAgICAgc3RydWN0IGlsaTkzNDEgKmls aSA9IHBhbmVsX3RvX2lsaTkzNDEocGFuZWwpOwo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZHJtID0gY29ubmVjdG9yLT5kZXY7Cj4gPiA+ICsgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICptb2RlOwo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsKPiA+ ID4gKwo+ID4gPiArICAgICBpbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ID4gPiAr ICAgICBpbmZvLT53aWR0aF9tbSA9IGlsaS0+Y29uZi0+bW9kZS53aWR0aF9tbTsKPiA+ID4gKyAg ICAgaW5mby0+aGVpZ2h0X21tID0gaWxpLT5jb25mLT5tb2RlLmhlaWdodF9tbTsKPiA+ID4gKwo+ ID4gPiArICAgICBpZiAoaWxpLT5jb25mLT5yZ2JfaW50ZXJmYWNlICYgSUxJOTM0MV9SR0JfRFBM KQo+ID4gPiArICAgICAgICAgICAgIGluZm8tPmJ1c19mbGFncyB8PSBEUk1fQlVTX0ZMQUdfUElY REFUQV9EUklWRV9QT1NFREdFOwo+ID4gPiArICAgICBlbHNlCj4gPiA+ICsgICAgICAgICAgICAg aW5mby0+YnVzX2ZsYWdzIHw9IERSTV9CVVNfRkxBR19QSVhEQVRBX0RSSVZFX05FR0VER0U7Cj4g PiA+ICsKPiA+ID4gKyAgICAgaWYgKGlsaS0+Y29uZi0+cmdiX2ludGVyZmFjZSAmIElMSTkzNDFf UkdCX0VQTCkKPiA+ID4gKyAgICAgICAgICAgICBpbmZvLT5idXNfZmxhZ3MgfD0gRFJNX0JVU19G TEFHX0RFX0xPVzsKPiA+ID4gKyAgICAgZWxzZQo+ID4gPiArICAgICAgICAgICAgIGluZm8tPmJ1 c19mbGFncyB8PSBEUk1fQlVTX0ZMQUdfREVfSElHSDsKPiA+ID4gKwo+ID4gPiArICAgICBtb2Rl ID0gZHJtX21vZGVfZHVwbGljYXRlKGRybSwgJmlsaS0+Y29uZi0+bW9kZSk7Cj4gPiA+ICsgICAg IGlmICghbW9kZSkgewo+ID4gPiArICAgICAgICAgICAgIERSTV9FUlJPUigiYmFkIG1vZGUgb3Ig ZmFpbGVkIHRvIGFkZCBtb2RlXG4iKTsKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZB TDsKPiA+ID4gKyAgICAgfQo+ID4gPiArICAgICBkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKPiA+ ID4gKwo+ID4gPiArICAgICAvKiBTZXQgdXAgdGhlIHBvbGFyaXR5ICovCj4gPiA+ICsgICAgIGlm IChpbGktPmNvbmYtPnJnYl9pbnRlcmZhY2UgJiBJTEk5MzQxX1JHQl9IU1BMKQo+ID4gPiArICAg ICAgICAgICAgIG1vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfUEhTWU5DOwo+ID4gPiArICAg ICBlbHNlCj4gPiA+ICsgICAgICAgICAgICAgbW9kZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxBR19O SFNZTkM7Cj4gPiA+ICsKPiA+ID4gKyAgICAgaWYgKGlsaS0+Y29uZi0+cmdiX2ludGVyZmFjZSAm IElMSTkzNDFfUkdCX1ZTUEwpCj4gPiA+ICsgICAgICAgICAgICAgbW9kZS0+ZmxhZ3MgfD0gRFJN X01PREVfRkxBR19QVlNZTkM7Cj4gPiA+ICsgICAgIGVsc2UKPiA+ID4gKyAgICAgICAgICAgICBt b2RlLT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX05WU1lOQzsKPiA+ID4gKwo+ID4gPiArICAgICBk cm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7Cj4gPiA+ICsKPiA+ID4gKyAgICAg cmV0dXJuIDE7IC8qIE51bWJlciBvZiBtb2RlcyAqLwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9wYW5lbF9mdW5jcyBpbGk5MzQxX2RwaV9mdW5jcyA9IHsK PiA+ID4gKyAgICAgLmRpc2FibGUgPSBpbGk5MzQxX2RwaV9kaXNhYmxlLAo+ID4gPiArICAgICAu dW5wcmVwYXJlID0gaWxpOTM0MV9kcGlfdW5wcmVwYXJlLAo+ID4gPiArICAgICAucHJlcGFyZSA9 IGlsaTkzNDFfZHBpX3ByZXBhcmUsCj4gPiA+ICsgICAgIC5lbmFibGUgPSBpbGk5MzQxX2RwaV9l bmFibGUsCj4gPiA+ICsgICAgIC5nZXRfbW9kZXMgPSBpbGk5MzQxX2RwaV9nZXRfbW9kZXMsCj4g PiA+ICt9Owo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IGlsaTkzNDFfZHBpX3Byb2JlKHN0cnVj dCBzcGlfZGV2aWNlICpzcGkpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIGludCByZXQ7Cj4gPiA+ICsg ICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsKPiA+ID4gKyAgICAgc3RydWN0IGls aTkzNDEgKmlsaTsKPiA+ID4gKwo+ID4gPiArICAgICBpbGkgPSBkZXZtX2t6YWxsb2MoZGV2LCBz aXplb2Yoc3RydWN0IGlsaTkzNDEpLCBHRlBfS0VSTkVMKTsKPiA+ID4gKyAgICAgaWYgKCFpbGkp Cj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gPiA+ICsKPiA+ID4gKyAgICAg c3BpX3NldF9kcnZkYXRhKHNwaSwgaWxpKTsKPiA+ID4gKwo+ID4gPiArICAgICBpbGktPmRldiA9 IGRldjsKPiA+ID4gKyAgICAgLyoKPiA+ID4gKyAgICAgICogRXZlcnkgbmV3IGluY2FybmF0aW9u IG9mIHRoaXMgZGlzcGxheSBtdXN0IGhhdmUgYSB1bmlxdWUKPiA+ID4gKyAgICAgICogZGF0YSBl bnRyeSBmb3IgdGhlIHN5c3RlbSBpbiB0aGlzIGRyaXZlci4KPiA+ID4gKyAgICAgICovCj4gPiA+ ICsgICAgIGlsaS0+Y29uZiA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwo+ID4gPiAr ICAgICBpZiAoIWlsaS0+Y29uZikgewo+ID4gPiArICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAi bWlzc2luZyBkZXZpY2UgY29uZmlndXJhdGlvblxuIik7Cj4gPiA+ICsgICAgICAgICAgICAgcmV0 dXJuIC1FTk9ERVY7Cj4gPiA+ICsgICAgIH0KPiA+ID4gKwo+ID4gPiArICAgICBpbGktPnZjYyA9 IGRldm1fcmVndWxhdG9yX2dldF9vcHRpb25hbChkZXYsICJ2Y2MiKTsKPiA+ID4gKyAgICAgaWYg KElTX0VSUihpbGktPnZjYykpCj4gPiA+ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICJnZXQg b3B0aW9uYWwgdmNjIGZhaWxlZFxuIik7Cj4gPiA+ICsKPiA+ID4gKyAgICAgaWxpLT5yZXNldF9n cGlvID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoZGV2LCAicmVzZXQiLAo+ID4gPiArICAgICAg ICAgICAgIEdQSU9EX09VVF9ISUdIKTsKPiA+ID4gKyAgICAgaWYgKElTX0VSUihpbGktPnJlc2V0 X2dwaW8pKSB7Cj4gPiA+ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0 IFJFU0VUIEdQSU9cbiIpOwo+ID4gPiArICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGlsaS0+ cmVzZXRfZ3Bpbyk7Cj4gPiA+ICsgICAgIH0KPiA+ID4gKwo+ID4gPiArICAgICBpbGktPmRjX2dw aW8gPSBkZXZtX2dwaW9kX2dldChkZXYsICJkYyIsIEdQSU9EX09VVF9MT1cpOwo+ID4gPiArICAg ICBpZiAoSVNfRVJSKGlsaS0+ZGNfZ3BpbykpIHsKPiA+ID4gKyAgICAgICAgICAgICBkZXZfZXJy KGRldiwgImZhaWxlZCB0byBnZXQgREMgR1BJT1xuIik7Cj4gPiA+ICsgICAgICAgICAgICAgcmV0 dXJuIFBUUl9FUlIoaWxpLT5kY19ncGlvKTsKPiA+ID4gKyAgICAgfQo+ID4gPiArCj4gPiA+ICsg ICAgIHNwaS0+Yml0c19wZXJfd29yZCA9IDg7Cj4gPiA+ICsgICAgIHJldCA9IHNwaV9zZXR1cChz cGkpOwo+ID4gPiArICAgICBpZiAocmV0IDwgMCkgewo+ID4gPiArICAgICAgICAgICAgIGRldl9l cnIoZGV2LCAic3BpIHNldHVwIGZhaWxlZC5cbiIpOwo+ID4gPiArICAgICAgICAgICAgIHJldHVy biByZXQ7Cj4gPiA+ICsgICAgIH0KPiA+ID4gKwo+ID4gPiArICAgICBpbGktPm1heF9zcGlfc3Bl ZWQgPSBpbGktPmNvbmYtPm1heF9zcGlfc3BlZWQ7Cj4gPiA+ICsKPiA+ID4gKyAgICAgZHJtX3Bh bmVsX2luaXQoJmlsaS0+cGFuZWwsIGRldiwgJmlsaTkzNDFfZHBpX2Z1bmNzLAo+ID4gPiArICAg ICAgICAgICAgICAgICAgICBEUk1fTU9ERV9DT05ORUNUT1JfRFBJKTsKPiA+ID4gKwo+ID4gPiAr ICAgICBkcm1fcGFuZWxfYWRkKCZpbGktPnBhbmVsKTsKPiA+ID4gKwo+ID4gPiArICAgICByZXR1 cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArCj4gPiA+ICsKPiA+ID4gK3N0YXRpYyB2b2lk IGlsaTkzNDFfZGJpX2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUs Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIHN0cnVjdCBtaXBp X2RiaV9kZXYgKmRiaWRldiA9IGRybV90b19taXBpX2RiaV9kZXYocGlwZS0+Y3J0Yy5kZXYpOwo+ ID4gPiArICAgICBzdHJ1Y3QgbWlwaV9kYmkgKmRiaSA9ICZkYmlkZXYtPmRiaTsKPiA+ID4gKyAg ICAgdTggYWRkcl9tb2RlOwo+ID4gPiArICAgICBpbnQgcmV0LCBpZHg7Cj4gPiA+ICsKPiA+ID4g KyAgICAgaWYgKCFkcm1fZGV2X2VudGVyKHBpcGUtPmNydGMuZGV2LCAmaWR4KSkKPiA+ID4gKyAg ICAgICAgICAgICByZXR1cm47Cj4gPiA+ICsKPiA+ID4gKyAgICAgRFJNX0RFQlVHX0tNUygiXG4i KTsKPiA+ID4gKwo+ID4gPiArICAgICByZXQgPSBtaXBpX2RiaV9wb3dlcm9uX2NvbmRpdGlvbmFs X3Jlc2V0KGRiaWRldik7Cj4gPiA+ICsgICAgIGlmIChyZXQgPCAwKQo+ID4gPiArICAgICAgICAg ICAgIGdvdG8gb3V0X2V4aXQ7Cj4gPiA+ICsgICAgIGlmIChyZXQgPT0gMSkKPiA+ID4gKyAgICAg ICAgICAgICBnb3RvIG91dF9lbmFibGU7Cj4gPiA+ICsKPiA+ID4gKyAgICAgbWlwaV9kYmlfY29t bWFuZChkYmksIE1JUElfRENTX1NFVF9ESVNQTEFZX09GRik7Cj4gPiA+ICsKPiA+ID4gKyAgICAg bWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfUE9XRVJCLCAweDAwLCAweGMxLCAweDMwKTsK PiA+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfUE9XRVJfU0VRLCAweDY0 LCAweDAzLCAweDEyLCAweDgxKTsKPiA+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIElM STkzNDFfRFRDQSwgMHg4NSwgMHgwMCwgMHg3OCk7Cj4gPiA+ICsgICAgIG1pcGlfZGJpX2NvbW1h bmQoZGJpLCBJTEk5MzQxX1BPV0VSQSwgMHgzOSwgMHgyYywgMHgwMCwgMHgzNCwgMHgwMik7Cj4g PiA+ICsgICAgIG1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX1BSQywgSUxJOTM0MV9EQklf UFJDX05PUk1BTCk7Cj4gPiA+ICsgICAgIG1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX0RU Q0IsIDB4MDAsIDB4MDApOwo+ID4gPiArCj4gPiA+ICsgICAgIC8qIFBvd2VyIENvbnRyb2wgKi8K PiA+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfUE9XRVIxLCBJTEk5MzQx X0RCSV9WQ09NSF80UDZWKTsKPiA+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkz NDFfUE9XRVIyLCBJTEk5MzQxX0RCSV9QV1JfMl9ERUZBVUxUKTsKPiA+ID4gKyAgICAgLyogVkNP TSAqLwo+ID4gPiArICAgICBtaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9WQ09NMSwgSUxJ OTM0MV9EQklfVkNPTV8xX1ZNSF80UDI1ViwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElMSTkzNDFfREJJX1ZDT01fMV9WTUxfMVA1Vik7Cj4gPiA+ ICsgICAgIG1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX1ZDT00yLCBJTEk5MzQxX0RCSV9W Q09NXzJfREVDXzU4KTsKPiA+ID4gKwo+ID4gPiArICAgICAvKiBNZW1vcnkgQWNjZXNzIENvbnRy b2wgKi8KPiA+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9QSVhF TF9GT1JNQVQsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JUElfRENTX1BJ WEVMX0ZNVF8xNkJJVCk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgLyogRnJhbWUgUmF0ZSAqLwo+ID4g PiArICAgICBtaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9GUkMsIElMSTkzNDFfREJJX0ZS Q19ESVZBICYgMHgwMywKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElMSTkzNDFfREJJX0ZSQ19SVE5BICYgMHgxZik7Cj4gPiA+ICsKPiA+ID4gKyAg ICAgLyogR2FtbWEgKi8KPiA+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFf M0dBTU1BX0VOLCAweDAwKTsKPiA+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIE1JUElf RENTX1NFVF9HQU1NQV9DVVJWRSwgSUxJOTM0MV9HQU1NQV9DVVJWRV8xKTsKPiA+ID4gKyAgICAg bWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfUEdBTU1BLAo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgIDB4MGYsIDB4MzEsIDB4MmIsIDB4MGMsIDB4MGUsIDB4MDgsIDB4NGUsIDB4ZjEs Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgMHgzNywgMHgwNywgMHgxMCwgMHgwMywgMHgw ZSwgMHgwOSwgMHgwMCk7Cj4gPiA+ICsgICAgIG1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQx X05HQU1NQSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDBlLCAweDE0LCAw eDAzLCAweDExLCAweDA3LCAweDMxLCAweGMxLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg IDB4NDgsIDB4MDgsIDB4MGYsIDB4MGMsIDB4MzEsIDB4MzYsIDB4MGYpOwo+ID4gPiArCj4gPiA+ ICsgICAgIC8qIEREUkFNICovCj4gPiA+ICsgICAgIG1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5 MzQxX0VUTU9ELCBJTEk5MzQxX0RCSV9FTVNfR0FTIHwKPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElMSTkzNDFfREJJX0VNU19EVFMgfAo+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUxJOTM0MV9EQklf RU1TX0dPTik7Cj4gPiA+ICsKPiA+ID4gKyAgICAgLyogRGlzcGxheSAqLwo+ID4gPiArICAgICBt aXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9ERkMsIDB4MDgsIDB4ODIsIDB4MjcsIDB4MDAp Owo+ID4gPiArICAgICBtaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfRVhJVF9TTEVFUF9N T0RFKTsKPiA+ID4gKyAgICAgbXNsZWVwKDEwMCk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgbWlwaV9k YmlfY29tbWFuZChkYmksIE1JUElfRENTX1NFVF9ESVNQTEFZX09OKTsKPiA+ID4gKyAgICAgbXNs ZWVwKDEwMCk7Cj4gPiA+ICsKPiA+ID4gK291dF9lbmFibGU6Cj4gPiA+ICsgICAgIHN3aXRjaCAo ZGJpZGV2LT5yb3RhdGlvbikgewo+ID4gPiArICAgICBkZWZhdWx0Ogo+ID4gPiArICAgICAgICAg ICAgIGFkZHJfbW9kZSA9IElMSTkzNDFfTUFEQ1RMX01YOwo+ID4gPiArICAgICAgICAgICAgIGJy ZWFrOwo+ID4gPiArICAgICBjYXNlIDkwOgo+ID4gPiArICAgICAgICAgICAgIGFkZHJfbW9kZSA9 IElMSTkzNDFfTUFEQ1RMX01WOwo+ID4gPiArICAgICAgICAgICAgIGJyZWFrOwo+ID4gPiArICAg ICBjYXNlIDE4MDoKPiA+ID4gKyAgICAgICAgICAgICBhZGRyX21vZGUgPSBJTEk5MzQxX01BRENU TF9NWTsKPiA+ID4gKyAgICAgICAgICAgICBicmVhazsKPiA+ID4gKyAgICAgY2FzZSAyNzA6Cj4g PiA+ICsgICAgICAgICAgICAgYWRkcl9tb2RlID0gSUxJOTM0MV9NQURDVExfTVYgfCBJTEk5MzQx X01BRENUTF9NWSB8Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgSUxJOTM0MV9NQURD VExfTVg7Cj4gPiA+ICsgICAgICAgICAgICAgYnJlYWs7Cj4gPiA+ICsgICAgIH0KPiA+ID4gKyAg ICAgYWRkcl9tb2RlIHw9IElMSTkzNDFfTUFEQ1RMX0JHUjsKPiA+ID4gKyAgICAgbWlwaV9kYmlf Y29tbWFuZChkYmksIE1JUElfRENTX1NFVF9BRERSRVNTX01PREUsIGFkZHJfbW9kZSk7Cj4gPiA+ ICsgICAgIG1pcGlfZGJpX2VuYWJsZV9mbHVzaChkYmlkZXYsIGNydGNfc3RhdGUsIHBsYW5lX3N0 YXRlKTsKPiA+ID4gKyAgICAgRFJNX0RFQlVHX0tNUygiaW5pdGlhbGl6ZWQgZGlzcGxheSBzZXJp YWwgaW50ZXJmYWNlXG4iKTsKPiA+ID4gK291dF9leGl0Ogo+ID4gPiArICAgICBkcm1fZGV2X2V4 aXQoaWR4KTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f c2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyBpbGk5MzQxX2RiaV9mdW5jcyA9IHsKPiA+ID4gKyAg ICAgLmVuYWJsZSA9IGlsaTkzNDFfZGJpX2VuYWJsZSwKPiA+ID4gKyAgICAgLmRpc2FibGUgPSBt aXBpX2RiaV9waXBlX2Rpc2FibGUsCj4gPiA+ICsgICAgIC51cGRhdGUgPSBtaXBpX2RiaV9waXBl X3VwZGF0ZSwKPiA+ID4gKyAgICAgLnByZXBhcmVfZmIgPSBkcm1fZ2VtX3NpbXBsZV9kaXNwbGF5 X3BpcGVfcHJlcGFyZV9mYiwKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBpbGk5MzQxX2RiaV9tb2RlID0gewo+ID4gPiArICAgICBE Uk1fU0lNUExFX01PREUoMjQwLCAzMjAsIDM3LCA0OSksCj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ ICtERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhpbGk5MzQxX2RiaV9mb3BzKTsKPiA+ID4gKwo+ID4g PiArc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGlsaTkzNDFfZGJpX2RyaXZlciA9IHsKPiA+ID4g KyAgICAgLmRyaXZlcl9mZWF0dXJlcyAgICAgICAgPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVT RVQgfCBEUklWRVJfQVRPTUlDLAo+ID4gPiArICAgICAuZm9wcyAgICAgICAgICAgICAgICAgICA9 ICZpbGk5MzQxX2RiaV9mb3BzLAo+ID4gPiArICAgICBEUk1fR0VNX0NNQV9EUklWRVJfT1BTX1ZN QVAsCj4gPiA+ICsgICAgIC5kZWJ1Z2ZzX2luaXQgICAgICAgICAgID0gbWlwaV9kYmlfZGVidWdm c19pbml0LAo+ID4gPiArICAgICAubmFtZSAgICAgICAgICAgICAgICAgICA9ICJpbGk5MzQxIiwK PiA+ID4gKyAgICAgLmRlc2MgICAgICAgICAgICAgICAgICAgPSAiSWxpdGVrIElMSTkzNDEiLAo+ ID4gPiArICAgICAuZGF0ZSAgICAgICAgICAgICAgICAgICA9ICIyMDE4MDUxNCIsCj4gPiA+ICsg ICAgIC5tYWpvciAgICAgICAgICAgICAgICAgID0gMSwKPiA+ID4gKyAgICAgLm1pbm9yICAgICAg ICAgICAgICAgICAgPSAwLAo+ID4gPiArfTsKPiA+ID4gK3N0YXRpYyBpbnQgaWxpOTM0MV9kYmlf cHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKPiA+ID4gK3sKPiA+ID4gKyAgICAgc3RydWN0 IG1pcGlfZGJpX2RldiAqZGJpZGV2Owo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJt Owo+ID4gPiArICAgICBzdHJ1Y3QgbWlwaV9kYmkgKmRiaTsKPiA+ID4gKyAgICAgc3RydWN0IGdw aW9fZGVzYyAqZGM7Cj4gPiA+ICsgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGktPmRldjsK PiA+ID4gKyAgICAgdTMyIHJvdGF0aW9uID0gMDsKPiA+ID4gKyAgICAgaW50IHJldDsKPiA+ID4g Kwo+ID4gPiArICAgICBkYmlkZXYgPSBkZXZtX2RybV9kZXZfYWxsb2MoZGV2LCAmaWxpOTM0MV9k YmlfZHJpdmVyLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IG1pcGlfZGJpX2RldiwgZHJtKTsKPiA+ID4gKyAgICAgaWYgKElTX0VSUihkYmlkZXYpKQo+ID4g PiArICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGRiaWRldik7Cj4gPiA+ICsKPiA+ID4gKyAg ICAgZGJpID0gJmRiaWRldi0+ZGJpOwo+ID4gPiArICAgICBkcm0gPSAmZGJpZGV2LT5kcm07Cj4g PiA+ICsKPiA+ID4gKyAgICAgZHJtX21vZGVfY29uZmlnX2luaXQoZHJtKTsKPiA+ID4gKwo+ID4g PiArICAgICBkYmktPnJlc2V0ID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoZGV2LCAicmVzZXQi LAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdQSU9EX09VVF9I SUdIKTsKPiA+ID4gKyAgICAgaWYgKElTX0VSUihkYmktPnJlc2V0KSkgewo+ID4gPiArICAgICAg ICAgICAgIERSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlvICdyZXNldCdcbiIp Owo+ID4gPiArICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGRiaS0+cmVzZXQpOwo+ID4gPiAr ICAgICB9Cj4gPiA+ICsKPiA+ID4gKyAgICAgZGMgPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChk ZXYsICJkYyIsIEdQSU9EX09VVF9MT1cpOwo+ID4gPiArICAgICBpZiAoSVNfRVJSKGRjKSkgewo+ ID4gPiArICAgICAgICAgICAgIERSTV9ERVZfRVJST1IoZGV2LCAiRmFpbGVkIHRvIGdldCBncGlv ICdkYydcbiIpOwo+ID4gPiArICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGRjKTsKPiA+ID4g KyAgICAgfQo+ID4gPiArCj4gPiA+ICsgICAgIGRiaWRldi0+cmVndWxhdG9yID0gZGV2bV9yZWd1 bGF0b3JfZ2V0X29wdGlvbmFsKGRldiwgInZjYyIpOwo+ID4gPiArICAgICBpZiAoSVNfRVJSKGRi aWRldi0+cmVndWxhdG9yKSkKPiA+ID4gKyAgICAgICAgICAgICBkZXZfZXJyKGRldiwgImdldCBv cHRpb25hbCB2Y2MgZmFpbGVkXG4iKTsKPiA+ID4gKwo+ID4gPiArICAgICBkYmlkZXYtPmJhY2ts aWdodCA9IGRldm1fb2ZfZmluZF9iYWNrbGlnaHQoZGV2KTsKPiA+ID4gKyAgICAgaWYgKElTX0VS UihkYmlkZXYtPmJhY2tsaWdodCkpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIo ZGJpZGV2LT5iYWNrbGlnaHQpOwo+ID4gPiArCj4gPiA+ICsgICAgIGRldmljZV9wcm9wZXJ0eV9y ZWFkX3UzMihkZXYsICJyb3RhdGlvbiIsICZyb3RhdGlvbik7Cj4gPiA+ICsKPiA+ID4gKyAgICAg cmV0ID0gbWlwaV9kYmlfc3BpX2luaXQoc3BpLCBkYmksIGRjKTsKPiA+ID4gKyAgICAgaWYgKHJl dCkKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsgICAgIHJl dCA9IG1pcGlfZGJpX2Rldl9pbml0KGRiaWRldiwgJmlsaTkzNDFfZGJpX2Z1bmNzLAo+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbGk5MzQxX2RiaV9tb2RlLCBy b3RhdGlvbik7Cj4gPiA+ICsgICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJu IHJldDsKPiA+ID4gKwo+ID4gPiArICAgICBkcm1fbW9kZV9jb25maWdfcmVzZXQoZHJtKTsKPiA+ ID4gKwo+ID4gPiArICAgICByZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRybSwgMCk7Cj4gPiA+ICsg ICAgIGlmIChyZXQpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4g PiArICAgICBzcGlfc2V0X2RydmRhdGEoc3BpLCBkcm0pOwo+ID4gPiArCj4gPiA+ICsgICAgIGRy bV9mYmRldl9nZW5lcmljX3NldHVwKGRybSwgMCk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcmV0dXJu IDA7Cj4gPiA+ICt9Cj4gPiA+ICtzdGF0aWMgaW50IGlsaTkzNDFfcHJvYmUoc3RydWN0IHNwaV9k ZXZpY2UgKnNwaSkKPiA+ID4gK3sKPiA+ID4gKyAgICAgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2Vf aWQgKmlkID0gc3BpX2dldF9kZXZpY2VfaWQoc3BpKTsKPiA+ID4gKwo+ID4gPiArICAgICBpZiAo IXN0cmNtcChpZC0+bmFtZSwgInNmLXRjMjQwdC05MzcwLXQiKSkKPiA+ID4gKyAgICAgICAgICAg ICByZXR1cm4gaWxpOTM0MV9kcGlfcHJvYmUoc3BpKTsKPiA+ID4gKyAgICAgZWxzZSBpZiAoIXN0 cmNtcChpZC0+bmFtZSwgInl4MjQwcXYyOSIpKQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiBp bGk5MzQxX2RiaV9wcm9iZShzcGkpOwo+ID4gPiArCj4gPiA+ICsgICAgIHJldHVybiAtMTsKPiA+ ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIGludCBpbGk5MzQxX3JlbW92ZShzdHJ1Y3Qgc3Bp X2RldmljZSAqc3BpKQo+ID4gPiArewo+ID4gPiArICAgICBjb25zdCBzdHJ1Y3Qgc3BpX2Rldmlj ZV9pZCAqaWQgPSBzcGlfZ2V0X2RldmljZV9pZChzcGkpOwo+ID4gPiArICAgICBzdHJ1Y3QgaWxp OTM0MSAqaWxpID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7Cj4gPiA+ICsgICAgIHN0cnVjdCBkcm1f ZGV2aWNlICpkcm0gPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKPiA+ID4gKwo+ID4gPiArICAgICBp ZiAoIXN0cmNtcChpZC0+bmFtZSwgInNmLXRjMjQwdC05MzcwLXQiKSkgewo+ID4gPiArICAgICAg ICAgICAgIGlsaTkzNDFfZHBpX3Bvd2VyX29mZihpbGkpOwo+ID4gPiArICAgICAgICAgICAgIGRy bV9wYW5lbF9yZW1vdmUoJmlsaS0+cGFuZWwpOwo+ID4gPiArICAgICB9IGVsc2UgaWYgKCFzdHJj bXAoaWQtPm5hbWUsICJ5eDI0MHF2MjkiKSkgewo+ID4gPiArICAgICAgICAgICAgIGRybV9kZXZf dW5wbHVnKGRybSk7Cj4gPiA+ICsgICAgICAgICAgICAgZHJtX2F0b21pY19oZWxwZXJfc2h1dGRv d24oZHJtKTsKPiA+ID4gKyAgICAgfQo+ID4gPiArICAgICByZXR1cm4gMDsKPiA+ID4gK30KPiA+ ID4gKwo+ID4gPiArc3RhdGljIHZvaWQgaWxpOTM0MV9zaHV0ZG93bihzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpKQo+ID4gPiArewo+ID4gPiArICAgICBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCAq aWQgPSBzcGlfZ2V0X2RldmljZV9pZChzcGkpOwo+ID4gPiArCj4gPiA+ICsgICAgIGlmICghc3Ry Y21wKGlkLT5uYW1lLCAieXgyNDBxdjI5IikpCj4gPiA+ICsgICAgICAgICAgICAgZHJtX2F0b21p Y19oZWxwZXJfc2h1dGRvd24oc3BpX2dldF9kcnZkYXRhKHNwaSkpOwo+ID4gPiArfQo+ID4gPiAr Cj4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbGk5MzQxX29mX21hdGNo W10gPSB7Cj4gPiA+ICsgICAgIHsKPiA+ID4gKyAgICAgICAgICAgICAuY29tcGF0aWJsZSA9ICJz dCxzZi10YzI0MHQtOTM3MC10IiwKPiA+ID4gKyAgICAgICAgICAgICAuZGF0YSA9ICZpbGk5MzQx X3N0bTMyZjQyOV9kaXNjb19kYXRhLAo+ID4gPiArICAgICB9LAo+ID4gPiArICAgICB7Cj4gPiA+ ICsgICAgICAgICAgICAgLyogcG9ydGluZyBmcm9tIHRpbnkvaWxpOTM0MS5jCj4gPiA+ICsgICAg ICAgICAgICAgICogZm9yIG9yaWdpbmFsIG1pcGkgZGJpIGNvbXBpdGFibGUKPiA+ID4gKyAgICAg ICAgICAgICAgKi8KPiA+ID4gKyAgICAgICAgICAgICAuY29tcGF0aWJsZSA9ICJhZGFmcnVpdCx5 eDI0MHF2MjkiLAo+ID4gPiArICAgICAgICAgICAgIC5kYXRhID0gTlVMTCwKPiA+ID4gKyAgICAg fSwKPiA+ID4gK307Cj4gPiA+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbGk5MzQxX29mX21h dGNoKTsKPiA+ID4gKwo+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIGls aTkzNDFfaWRbXSA9IHsKPiA+ID4gKyAgICAgeyAieXgyNDBxdjI5IiwgMCB9LAo+ID4gPiArICAg ICB7ICJzZi10YzI0MHQtOTM3MC10IiwgMCB9LAo+ID4gPiArICAgICB7IH0KPiA+ID4gK307Cj4g PiA+ICtNT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgaWxpOTM0MV9pZCk7Cj4gPiA+ICsKPiA+ID4g K3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBpbGk5MzQxX2RyaXZlciA9IHsKPiA+ID4gKyAgICAg LnByb2JlID0gaWxpOTM0MV9wcm9iZSwKPiA+ID4gKyAgICAgLnJlbW92ZSA9IGlsaTkzNDFfcmVt b3ZlLAo+ID4gPiArICAgICAuc2h1dGRvd24gPSBpbGk5MzQxX3NodXRkb3duLAo+ID4gPiArICAg ICAuaWRfdGFibGUgPSBpbGk5MzQxX2lkLAo+ID4gPiArICAgICAuZHJpdmVyID0gewo+ID4gPiAr ICAgICAgICAgICAgIC5uYW1lID0gInBhbmVsLWlsaXRlay1pbGk5MzQxIiwKPiA+ID4gKyAgICAg ICAgICAgICAub2ZfbWF0Y2hfdGFibGUgPSBpbGk5MzQxX29mX21hdGNoLAo+ID4gPiArICAgICB9 LAo+ID4gPiArfTsKPiA+ID4gK21vZHVsZV9zcGlfZHJpdmVyKGlsaTkzNDFfZHJpdmVyKTsKPiA+ ID4gKwo+ID4gPiArTU9EVUxFX0FVVEhPUigiRGlsbG9uIE1pbiA8ZGlsbG9uLm1pbmZlaUBnbWFp bC5jb20+Iik7Cj4gPiA+ICtNT0RVTEVfREVTQ1JJUFRJT04oIklMSTkzNDEgTENEIHBhbmVsIGRy aXZlciIpOwo+ID4gPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwo+ID4gPgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=