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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 92D17C0218D for ; Wed, 29 Jan 2025 07:31:40 +0000 (UTC) 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:To:References:Message-Id:Cc:Date: In-Reply-To:From:Subject:Mime-Version:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=fRskNZ8aP/a48upLRJSVff9fiFesElLM6ubYoe6bs9k=; b=N8lKORBCUTv19r s4abqGOoVIpgTfiDkd/ISy+aP9OuYuTBYpElsKXWX3QzbxqI5lu8iuSuAXH9FYvBDVdRUPXXCVJpi tuNaC2oHKGfdo20Gnc73e5FA9/i/FRMHOCAa0Lj7z6C4Pn2znarQWf9XbbYQ1iI2T5BsstdgHov9y Jzr8169ljGrWuD05lsvhJku+1mpEhO+7hKQcTpAbWaEX4G87ooDEQf8roW3INp4NRKQRJkyPzNNFc YQ7OcWRPAMQfLgopUU0cx2jsuSuS397xxlFhqVWo3Vcuy5Ue8OtJStLSvWtUdl7I7QmOIJ0BQNnur M7TGLvMdJOA0dM4Z1KNQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1td2Xt-00000006Tti-26Uo; Wed, 29 Jan 2025 07:31:33 +0000 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1td2WT-00000006Tc0-1kCc; Wed, 29 Jan 2025 07:30:09 +0000 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-aaf60d85238so1082031066b.0; Tue, 28 Jan 2025 23:30:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738135804; x=1738740604; darn=lists.infradead.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=EYSIzDAQkSezMwwPxVXqXSbV6AnCbFyvzfHd2xAdwWI=; b=MWKIiSC+Hw2aRdENaeI03f3nmVRhmzNtdukoVMWSniAhguW56GAD2FIRVxJuNzzYze CAt3uJpw+0yhgrkyPZ5AEncWcDbzgj5pyslCkOjIefXgslf0+pgJBZYmeKMdHabOOB3b ofXQHPGKsE/2qA+XbhD16ISxM/PQm+8tI1FQoD5x81mCRdBE+Re/cCJLenyvVd1xe4e2 xIFdC4Akkx88DbFxlIvuFABGbi2Df0WxGJv9D+HRi0BBNfXtfd1tAGcLS+ByQyIQY55l zjLjBkJRKdc5XBDQv1meypZKknHr8B4KW+X8zaURZLxG26LLJJ/shLuCiX7pd3Q4S1/R bVHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738135804; x=1738740604; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EYSIzDAQkSezMwwPxVXqXSbV6AnCbFyvzfHd2xAdwWI=; b=J9KdKBsDqr9cK929YEKtphrEdz3/cazVMDAxsfw0/Epi6TNWmbgmS0590Ag7AzJoGa +WBDezKdSwqExAauhyLTp8Ql6Kcrpn2GoST6oFGHA4p1Xb/sCqq9jyGyOWFXfx8g5fb7 cdmrARr9P1oexnKIAHhgzxuArXDlJ7vHVktGbnvEwsbwDceUpnX4s/9Cf65IuzF6VutZ 0p6JsEIC5U5xQHRX3hXq4i1KC/K3tLHS4u5xEVQ8zJMh4xag6CNL/eZSNtRyMmyH77HQ +7nUe4DzT30aKzlcAcim9V+cNUbjfk/SEx6Wnsk7vjTf/aL9L7J3MyWb9UT80gWyT3dB q7sQ== X-Forwarded-Encrypted: i=1; AJvYcCVnPCDwscPmC/YyDiIgx+a9XGaRsqfNhqEDtEy6vC69Hpz7et+ieIXcnjNAulrJqApjGCqejxSxLpq0@lists.infradead.org, AJvYcCWKqovPqi3XxNOzLK82i4IP6virM1c9E2ySZ5rvNlGtzF+bGMVF6jAbch3q8Jss98jWmFl6Mz6ODsrOe8b23KyR@lists.infradead.org, AJvYcCWOtkMcSzTzhzlIR7/9kaHy0hu5j0/+Y8Soeaqy0dy5ViVFejN9VJojK0HAHRBC2io3hwNJh/BsLOMdDv8=@lists.infradead.org X-Gm-Message-State: AOJu0YxYb8RL9HpqV4tREIrxxhuYR2hd70nlv9K3fsZRlTH4aooX35xN mjlFVL0YhQcBQv8Tc0BXz0F83YLoG7Qfw9jNWAq0SqMZlZiVu3uv X-Gm-Gg: ASbGncttvacvs7kBDfFPXar6M7HNbK1ydssLX/YZD4/JSyS3Bt4yY3lDhsOXWiObC9L eBqy/R1VHHW3EvdcGTX7IjAzYjHEx2iINqOb1Q0M/XRP4AgPyibDB8GIxDFoY/IePAo6hUJmD7u 7qrwpELqQs++1gHRcVGTnATJvftlveN7sJYUNrJbfuXZASt35xsE5YEiqduHxjxWv7nO7MMwct5 lSQRSfxIeqvyZoIQAOWRHZqLDzzNEO8s6rG1+aJ3LD1rzDu7M/XA/jRYU+bGCS+C3MMr9NOZsZP cXCtWgbv5qduBNQiiDm/O4HNpVZftjc9ZSirhrBWkW7WrDCiB5cWGQ== X-Google-Smtp-Source: AGHT+IH4paYi2V7hb0R8PZtcUPUq2zDHT/5Xwo2CmeE9Y3+qzwMyM05AfnUOMdl+CYWYkGKdG9+fQg== X-Received: by 2002:a17:907:2d8f:b0:aaf:117f:1918 with SMTP id a640c23a62f3a-ab6cfcb35a6mr213606566b.5.1738135802876; Tue, 28 Jan 2025 23:30:02 -0800 (PST) Received: from smtpclient.apple (185.174.17.62.zt.hu. [185.174.17.62]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6760ab1ccsm926947066b.110.2025.01.28.23.30.01 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Jan 2025 23:30:02 -0800 (PST) Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51\)) Subject: Re: [PATCH 05/12] clk: sunxi-ng: add CCU drivers for V853 From: =?utf-8?B?QW5kcsOhcyBTemVtesWR?= In-Reply-To: <20250128112221.23201f2c@donnerap.manchester.arm.com> Date: Wed, 29 Jan 2025 08:29:50 +0100 Cc: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Linus Walleij , Philipp Zabel , Maxime Ripard , Vinod Koul , Kishon Vijay Abraham I , Ulf Hansson , Paul Walmsley , Palmer Dabbelt , Albert Ou , =?utf-8?Q?Uwe_Kleine-K=C3=B6nig?= , Florian Fainelli , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-riscv@lists.infradead.org Message-Id: <3CEA5A7B-0BB9-45DA-90AA-8DF2C3FDC5ED@gmail.com> References: <20250110123923.270626-1-szemzo.andras@gmail.com> <20250110123923.270626-6-szemzo.andras@gmail.com> <20250128004211.5c6f0158@minigeek.lan> <20250128112221.23201f2c@donnerap.manchester.arm.com> To: Andre Przywara X-Mailer: Apple Mail (2.3776.700.51) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250128_233005_653793_84ACD2C1 X-CRM114-Status: GOOD ( 36.07 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Cgo+IE9uIDI4IEphbiAyMDI1LCBhdCAxMjoyMiwgQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3 YXJhQGFybS5jb20+IHdyb3RlOgo+IAo+IE9uIFR1ZSwgMjggSmFuIDIwMjUgMTA6MDY6NTAgKzAx MDAKPiBBbmRyw6FzIFN6ZW16xZEgPHN6ZW16by5hbmRyYXNAZ21haWwuY29tPiB3cm90ZToKPiAK PiBIaSBBbmRyw6FzLAo+IAo+IHRoYW5rcyBmb3IgdGhlIHF1aWNrIGFuZCB0aG9yb3VnaCByZXBs eSwgbXVjaCBhcHByZWNpYXRlZCEKPiAKPj4gSGkgQW5kcmUsCj4+IAo+Pj4gT24gMjggSmFuIDIw MjUsIGF0IDAxOjQyLCBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6eXdhcmFAYXJtLmNvbT4gd3Jv dGU6Cj4+PiAKPj4+IE9uIEZyaSwgMTAgSmFuIDIwMjUgMTM6Mzk6MTYgKzAxMDAKPj4+IEFuZHJh cyBTemVtem8gPHN6ZW16by5hbmRyYXNAZ21haWwuY29tPiB3cm90ZToKPj4+IAo+Pj4gSGkgQW5k cmFzLAo+Pj4gCj4+PiBvaCBkZWFyLCB0aGF0J3MgYSBjb2RlIGxpbmUgYW5kIGEgaGFsZiEKPj4+ IAo+Pj4gRmlyc3QgdmVyeSBtdWNoIGZvciBzZW5kaW5nIHRoaXMsIEkga25vdyBmcm9tIChyZWNl bnQpIGV4cGVyaWVuY2UgdGhhdAo+Pj4gdGhvc2UgY2xvY2sgZHJpdmVycyBjYW4gYmUgdmVyeSBk YXVudGluZyBhbmQgdGVkaW91cyB0byB3cml0ZQo+Pj4gLi4ud2hpY2ggaXMgdW5mb3J0dW5hdGVs eSB0cnVlIGZvciB0aGUgcmV2aWV3IGFzIHdlbGwgOy0pCj4+PiAKPj4+IFNvIHRoaXMgaXMgdGhl IGZpcnN0IHJvdW5kLCBhcyBJIHdhcyBrZWVwaW5nIGFuZCB1cGRhdGluZyB0aGlzIGluIG15Cj4+ PiBEcmFmdHMgZm9sZGVyIGZvciBhbG1vc3QgdHdvIHdlZWtzIG5vdy4KPj4+IAo+Pj4+IFY4NTMg aGFzIHNpbWlsYXIgZ2F0ZXMvcmVzZXRzIGxpa2UgZXhpc3RpbmcgQWxsd2lubmVyIFNPQ3MuIEFk ZCBzdXBwb3J0IGZvciBpdCdzIENDVSBhbmQgUFJDTSBDQ1UuCj4+Pj4gCj4+Pj4gU2lnbmVkLW9m Zi1ieTogQW5kcmFzIFN6ZW16byA8c3plbXpvLmFuZHJhc0BnbWFpbC5jb20+Cj4+Pj4gLS0tCj4+ Pj4gZHJpdmVycy9jbGsvc3VueGktbmcvS2NvbmZpZyAgICAgICAgICAgIHwgICAxMCArCj4+Pj4g ZHJpdmVycy9jbGsvc3VueGktbmcvTWFrZWZpbGUgICAgICAgICAgIHwgICAgNCArCj4+Pj4gZHJp dmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXY4NTMtci5jIHwgICA5NSArKwo+Pj4+IGRyaXZl cnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLXIuaCB8ICAgMTUgKwo+Pj4+IGRyaXZlcnMv Y2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLmMgICB8IDExNDUgKysrKysrKysrKysrKysrKysr KysrKysKPj4+PiBkcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjg1My5oICAgfCAgIDE0 ICsKPj4+PiA2IGZpbGVzIGNoYW5nZWQsIDEyODMgaW5zZXJ0aW9ucygrKQo+Pj4+IGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjg1My1yLmMKPj4+PiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXY4NTMtci5o Cj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12 ODUzLmMKPj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1 bjhpLXY4NTMuaAo+Pj4+IAo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1uZy9L Y29uZmlnIGIvZHJpdmVycy9jbGsvc3VueGktbmcvS2NvbmZpZwo+Pj4+IGluZGV4IGI1NDcxOThh MmM2NS4uYzQzMDAyMjQ2YjIyIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvY2xrL3N1bnhpLW5n L0tjb25maWcKPj4+PiArKysgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9LY29uZmlnCj4+Pj4gQEAg LTIyLDYgKzIyLDE2IEBAIGNvbmZpZyBTVU4yMElfRDFfUl9DQ1UKPj4+PiBkZWZhdWx0IHkKPj4+ PiBkZXBlbmRzIG9uIE1BQ0hfU1VOOEkgfHwgUklTQ1YgfHwgQ09NUElMRV9URVNUCj4+Pj4gCj4+ Pj4gK2NvbmZpZyBTVU44SV9WODUzX0NDVQo+Pj4+ICsgdHJpc3RhdGUgIlN1cHBvcnQgZm9yIHRo ZSBBbGx3aW5uZXIgVjg1MyBDQ1UiCj4+Pj4gKyBkZWZhdWx0IE1BQ0hfU1VOOEkKPj4+PiArIGRl cGVuZHMgb24gTUFDSF9TVU44SSB8fCBDT01QSUxFX1RFU1QKPj4+PiArCj4+Pj4gK2NvbmZpZyBT VU44SV9WODUzX1JfQ0NVCj4+Pj4gKyB0cmlzdGF0ZSAiU3VwcG9ydCBmb3IgdGhlIEFsbHdpbm5l ciBWODUzIFBSQ00gQ0NVIgo+Pj4+ICsgZGVmYXVsdCBNQUNIX1NVTjhJCj4+Pj4gKyBkZXBlbmRz IG9uIE1BQ0hfU1VOOEkgfHwgQ09NUElMRV9URVNUCj4+Pj4gKwo+Pj4+IGNvbmZpZyBTVU41MElf QTY0X0NDVQo+Pj4+IHRyaXN0YXRlICJTdXBwb3J0IGZvciB0aGUgQWxsd2lubmVyIEE2NCBDQ1Ui Cj4+Pj4gZGVmYXVsdCB5Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N1bnhpLW5nL01h a2VmaWxlIGIvZHJpdmVycy9jbGsvc3VueGktbmcvTWFrZWZpbGUKPj4+PiBpbmRleCA2YjNhZTJi NjIwZGIuLmMzMjQzMGQ4NzRlYSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2Nsay9zdW54aS1u Zy9NYWtlZmlsZQo+Pj4+ICsrKyBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL01ha2VmaWxlCj4+Pj4g QEAgLTI3LDYgKzI3LDggQEAgc3VueGktY2N1LXkgKz0gY2N1X21wLm8KPj4+PiBvYmotJChDT05G SUdfU1VOSVZfRjFDMTAwU19DQ1UpICs9IHN1bml2LWYxYzEwMHMtY2N1Lm8KPj4+PiBvYmotJChD T05GSUdfU1VOMjBJX0QxX0NDVSkgKz0gc3VuMjBpLWQxLWNjdS5vCj4+Pj4gb2JqLSQoQ09ORklH X1NVTjIwSV9EMV9SX0NDVSkgKz0gc3VuMjBpLWQxLXItY2N1Lm8KPj4+PiArb2JqLSQoQ09ORklH X1NVTjhJX1Y4NTNfQ0NVKSArPSBzdW44aS12ODUzLWNjdS5vCj4+Pj4gK29iai0kKENPTkZJR19T VU44SV9WODUzX1JfQ0NVKSArPSBzdW44aS12ODUzLXItY2N1Lm8KPj4+PiBvYmotJChDT05GSUdf U1VONTBJX0E2NF9DQ1UpICs9IHN1bjUwaS1hNjQtY2N1Lm8KPj4+PiBvYmotJChDT05GSUdfU1VO NTBJX0ExMDBfQ0NVKSArPSBzdW41MGktYTEwMC1jY3Uubwo+Pj4+IG9iai0kKENPTkZJR19TVU41 MElfQTEwMF9SX0NDVSkgKz0gc3VuNTBpLWExMDAtci1jY3Uubwo+Pj4+IEBAIC01MCw2ICs1Miw4 IEBAIG9iai0kKENPTkZJR19TVU45SV9BODBfQ0NVKSArPSBzdW45aS1hODAtZGUtY2N1Lm8KPj4+ PiBvYmotJChDT05GSUdfU1VOOUlfQTgwX0NDVSkgKz0gc3VuOWktYTgwLXVzYi1jY3Uubwo+Pj4+ IAo+Pj4+IHN1bml2LWYxYzEwMHMtY2N1LXkgKz0gY2N1LXN1bml2LWYxYzEwMHMubwo+Pj4+ICtz dW44aS12ODUzLWNjdS15ICs9IGNjdS1zdW44aS12ODUzLm8KPj4+PiArc3VuOGktdjg1My1yLWNj dS15ICs9IGNjdS1zdW44aS12ODUzLXIubwo+Pj4+IHN1bjIwaS1kMS1jY3UteSArPSBjY3Utc3Vu MjBpLWQxLm8KPj4+PiBzdW4yMGktZDEtci1jY3UteSArPSBjY3Utc3VuMjBpLWQxLXIubwo+Pj4+ IHN1bjUwaS1hNjQtY2N1LXkgKz0gY2N1LXN1bjUwaS1hNjQubwo+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjg1My1yLmMgYi9kcml2ZXJzL2Nsay9zdW54 aS1uZy9jY3Utc3VuOGktdjg1My1yLmMKPj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uMTlhOGJhNTg3NzkzCj4+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4+ICsr KyBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLXIuYwo+Pj4+IEBAIC0wLDAg KzEsOTUgQEAKPj4+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0zLjAKPj4+PiAr LyogQ29weXJpZ2h0KGMpIDIwMjAgLSAyMDIzIEFsbHdpbm5lciBUZWNobm9sb2d5IENvLixMdGQu IEFsbCByaWdodHMgcmVzZXJ2ZWQuICAKPj4+IAo+Pj4gU28gZG9lcyB0aGF0IG1lYW4geW91IGNv cGllZCB0aGF0IGZyb20gdGhlIEJTUD8gSG93IG11Y2ggaXMgeW91ciBvd24KPj4+IHdvcmsgdGhl bj8gU2hvdWxkICJyZW5nYW9taW4iIGJlIHRoZW4gdGhlIGF1dGhvcj8KPj4+IAo+Pj4gQnV0IG1v cmUgaW1wb3J0YW50bHk6IEFzIGZhciBhcyBJIGtub3csIEdQTC0zIGlzIE5PVCBjb21wYXRpYmxl IHdpdGgKPj4+IHRoZSBrZXJuZWwuIFlvdSBkZWZpbml0ZWx5IGNhbm5vdCBhZGQgY29kZSB3aXRo IHRoYXQgbGljZW5zZSwgYW5kIGZyb20KPj4+IG15IHVuZGVyc3RhbmRpbmcgY2Fubm90IGNvcHkg R1BMLTMgY29kZSB3aXRob3V0IGtlZXBpbmcgdGhlIGxpY2Vuc2UsCj4+PiB3aGljaCBtZWFucyBj b3B5aW5nIGlzIGEgbm8tZ28uCj4+PiBZb3Ugd291bGQgbmVlZCB0byBhc2sgdGhlIG9yaWdpbmFs IGF1dGhvciB0byBjaGFuZ2UgdGhlIGxpY2Vuc2UuIEkgaGF2ZQo+Pj4gc2VlbiBsaWNlbnNlIGNo YW5nZXMgaW4gZ2l0aHViIHJlcG9zIG1pcnJvcmluZyBBbGx3aW5uZXIncyBTREsgaW4gdGhlCj4+ PiBsYXN0IGZldyBtb250aHMgKHNvbWVvbmUgbXVzdCBoYXZlIHRvbGQgdGhlbT8pLCBzbyBpdCdz IHdvcnRoIGNoZWNraW5nCj4+PiBiYWNrIHRoZXJlIHRvIHNlZSBpZiB0aGUgbGljZW5zZSBoYXMg Y2hhbmdlZC4KPj4+IAo+Pj4gQnV0IHdpdGggdGhhdCBoZWFkZXIsIGFuZCB3aXRoIHRoYXQgc291 cmNlIChzdWJqZWN0IHRvIGNsYXJpZmljYXRpb24pCj4+PiB0aGlzIGNhbm5vdCBiZSBtZXJnZWQg YXMgc3VjaC4KPj4+IAo+PiAKPj4gSW4gdGhlIGRhdGFzaGVldCB3aGF0IEkgaGF2ZSwgYWxsIHRo aXMgUl9QUkNNIGJsb2NrIGlzIG1lbnRpb25lZCBvbmx5IGF0IHRoZSBtZW1vcnkgbWFwcGluZy4K Pj4gSSBkaWQndCBmb3VuZCBhbnkgb3RoZXIgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGlzIElQLgo+ IAo+IFllYWgsIHRoYXQncyBxdWl0ZSBjb21tb24sIHRoZSBQUkNNIGlzIHJhcmVseSBkb2N1bWVu dGVkLiBJdCdzIGFsc28gcXVpdGUKPiBzdGFibGUgYWNyb3NzIHRoZSBtb2Rlcm4gU29DLCBhbmQg YnkgY2hhbmNlIHRoZSBBNTIzIG1hbnVhbCBhY3R1YWxseQo+IGRvY3VtZW50cyB0aGF0LCBzbyB5 b3UgY2FuIHBlZWsgaW4gdGhlcmUuIFRoZSBWODUzIGlzIHByb2JhYmx5IGEgc3Vic2V0IG9mCj4g d2hhdCdzIGluIHRoZSBBNTIzLgo+IFlvdSBjYW4gYWxzbyBwcm9iZSByZWdpc3RlcnMgZnJvbSBV LUJvb3Q6Cj4gPT4gbXcubCAweDcwMTAxMmMgMHhmZmZmZmZmZgo+ID0+IG1kLmwgMHg3MDEwMTJj Cj4gCj4gVGhhdCB0ZWxscyB5b3Ugd2hpY2ggYml0cyBhcmUgYWN0dWFsbHkgaW1wbGVtZW50ZWQu IEZlZWwgZnJlZSB0byBwcm9iZQo+IGFyb3VuZCBvdGhlciByZWdpc3RlcnMsIGVzcGVjaWFsbHkg dGhvc2UgZW5kaW5nIGluICJjIiwgd2hpY2ggYXJlIHR5cGljYWxseQo+IGdhdGVzIGFuZCByZXNl dHMuIFRoaXMgd291bGQgZ2l2ZSB5b3Ugc29tZSBjb25maXJtYXRpb24uCj4gCj4gU28gY2FuIHlv dSBkbyB0aGUgZm9sbG93aW5nOgo+IERlbGV0ZSB0aGF0IGZpbGUgaGVyZSwgYW5kIGNvcHkgb3Zl ciBjY3Utc3VuMjBpLWQxLXIuYy4gQWRkIHlvdXIKPiBjb3B5cmlnaHQsIGFuZCB1c2UgIkJhc2Vk IG9uIC4uLiIuCj4gVGhlbiBhZGp1c3QgdGhhdCBmaWxlIGFjY29yZGluZyB0byB0aGUgaW5mb3Jt YXRpb24gZ2F0aGVyZWQgYnkgaW5zcGVjdGluZwo+IHRoZSBBbGx3aW5uZXIgc291cmNlIGZpbGUg eW91IG1lbnRpb24gYmVsb3cuIFNpbmNlIHdlIGFyZSB0YWxraW5nIGFib3V0IGEKPiBoYW5kZnVs IG9mIGNsb2NrcyBvbmx5LCB0aGF0IHNob3VsZCBiZSBlYXN5IGVub3VnaD8KPiBUaGVuIHdlIGhh dmUgYSBjbGVhbiBzaGVldCBsaWNlbnNlLXdpc2UsIGFuZCB5b3UgY29weSBmcm9tIGEgbXVjaCBi ZXR0ZXIKPiBzb3VyY2UgYW55d2F5IChqdXN0IHNlZWluZyBjYXBpdGFsIGxldHRlciBoZXggY29u c3RhbnRzIGJlbG93LCBmb3IKPiBpbnN0YW5jZSkuCj4gCgpUaGFua3MgZm9yIHRoaXMgaW5mb3Jt YXRpb24sIGl04oCZcyB2ZXJ5IHVzZWZ1bGwhIEkgcmV3b3JrZWQgdGhlIGNjdS1yIGNvZGUgYmFz ZWQgb24gRDEgZHJpdmVyLAphbmQgcmVhZGluZy93cml0aW5nIHRoZSBpbXBsZW1lbnRlZCByZWdp c3RlcnMsIHNvIHRoaXMgbGljZW5jZSBpc3N1ZSBpcyBnb25lLgoKPj4gVGhlcmUgaXMgYSBkcml2 ZXIgWzFdIGJhc2VkIG9uIHRoZSBtb3JlIG9yIGxlc3MgbWFpbmxpbmUnaXNoIHN1bnhpLW5nIGNs ayAKPj4gZnJhbWV3b3JrLCBzbyBJIHRvb2sgdGhhdCBhbmQgbWFkZSBpdCB3b3JrIHdpdGggdGhp cyB2ODUzLWNjdSBkcml2ZXIuIAo+PiAKPj4gSSBkb27igJl0IGtub3cgd2hhdCBzaG91bGQvY2Fu IEkgZG8gd2l0aCB0aGUgTGljZW5jZSBvciBob3cgc2hvdWxkIGl0IGRvbmUgcHJvcGVybHksCj4+ IGFzIGl04oCZcyBiYXNpY2FsbHkgYSBmZXcgcmVnaXN0ZXJzL2JpdHMsIGJ1dCB3aXRob3V0IGRv Y3VtZW50YXRpb24gaXTigJlzIGhhcmQgdG8gd3JpdGUgaXQgZnJvbSBzY3JhdGNoLgo+IAo+IEFi c29sdXRlbHksIGFuZCBub3JtYWxseSBpdCdzIGEgbm8tYnJhaW5lciwgc2luY2UgZXZlbiBBbGx3 aW5uZXIgTGludXgKPiBjb2RlIG11c3QgYmUgR1BMLCBidXQgaW4gdGhpcyBzcGVjaWFsIGNhc2Ug dGhleSBiZWNhbWUgb3ZlcnplYWxvdXMgYW5kIHB1dAo+IEdQTC0zLjAgaW4gOi0oCj4gCj4+IAo+ PiBbMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9ZdXp1a2lIRC9UaW55VmlzaW9uL2Jsb2IvbWFpbi9r ZXJuZWwvYnNwL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aXcyMS1yLmMKPj4gCj4+Pj4g KyAqCj4+Pj4gKyAqIENvcHlyaWdodCAoYykgMjAyMyByZW5nYW9taW5AYWxsd2lubmVydGVjaC5j b20KPj4+PiArICovCj4+Pj4gKwo+Pj4+ICsjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+ Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9pby5oPgo+Pj4+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxl Lmg+Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+Cj4+Pj4gKyNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPj4+PiArCj4+Pj4gKyNpbmNsdWRlICJjY3VfY29tbW9u LmgiCj4+Pj4gKyNpbmNsdWRlICJjY3VfcmVzZXQuaCIKPj4+PiArCj4+Pj4gKyNpbmNsdWRlICJj Y3VfZGl2LmgiCj4+Pj4gKyNpbmNsdWRlICJjY3VfZ2F0ZS5oIgo+Pj4+ICsjaW5jbHVkZSAiY2N1 X21wLmgiCj4+Pj4gKyNpbmNsdWRlICJjY3VfbXVsdC5oIgo+Pj4+ICsjaW5jbHVkZSAiY2N1X25r LmgiCj4+Pj4gKyNpbmNsdWRlICJjY3VfbmttLmgiCj4+Pj4gKyNpbmNsdWRlICJjY3VfbmttcC5o Igo+Pj4+ICsjaW5jbHVkZSAiY2N1X25tLmgiCj4+Pj4gKwo+Pj4+ICsjaW5jbHVkZSAiY2N1LXN1 bjhpLXY4NTMtci5oIgo+Pj4+ICsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShy X3R3ZF9jbGssICJyLXR3ZCIsICJvc2MyNE0iLCAweDAxMkMsIEJJVCgwKSwgMCk7Cj4+Pj4gK3N0 YXRpYyBTVU5YSV9DQ1VfR0FURShyX3BwdV9jbGssICJyLXBwdSIsICJvc2MyNE0iLCAweDAxQUMs IEJJVCgwKSwgMCk7Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShyX3J0Y19jbGssICJyLXJ0 YyIsICJvc2MyNE0iLCAweDAyMEMsIEJJVCgwKSwgMCk7Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1Vf R0FURShyX2NwdWNmZ19jbGssICJyLWNwdWNmZyIsICJvc2MyNE0iLAo+Pj4+ICsgMHgwMjJDLCBC SVQoMCksIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIHN0cnVjdCBjY3VfcmVzZXRfbWFwIHN1bjhp X3Y4NTNfcl9jY3VfcmVzZXRzW10gPSB7Cj4+Pj4gKyBbUlNUX0JVU19SX1BQVV0gPSB7IDB4MDFh YywgQklUKDE2KSB9LAo+Pj4+ICsgW1JTVF9CVVNfUl9SVENdID0geyAweDAyMGMsIEJJVCgxNikg fSwKPj4+PiArIFtSU1RfQlVTX1JfQ1BVQ0ZHXSA9IHsgMHgwMjJjLCBCSVQoMTYpIH0sCj4+Pj4g K307Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgc3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgc3VuOGlf djg1M19yX2h3X2Nsa3MgPSB7Cj4+Pj4gKyAuaHdzICAgID0gewo+Pj4+ICsgW0NMS19SX1RXRF0g PSAmcl90d2RfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfUl9QUFVdID0gJnJfcHB1X2Nsay5j b21tb24uaHcsCj4+Pj4gKyBbQ0xLX1JfUlRDXSA9ICZyX3J0Y19jbGsuY29tbW9uLmh3LAo+Pj4+ ICsgW0NMS19SX0NQVUNGR10gPSAmcl9jcHVjZmdfY2xrLmNvbW1vbi5odywKPj4+PiArIH0sCj4+ Pj4gKyAubnVtID0gQ0xLX05VTUJFUiwKPj4+PiArfTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBzdHJ1 Y3QgY2N1X2NvbW1vbiAqc3VuOGlfdjg1M19yX2NjdV9jbGtzW10gPSB7Cj4+Pj4gKyAmcl90d2Rf Y2xrLmNvbW1vbiwKPj4+PiArICZyX3BwdV9jbGsuY29tbW9uLAo+Pj4+ICsgJnJfcnRjX2Nsay5j b21tb24sCj4+Pj4gKyAmcl9jcHVjZmdfY2xrLmNvbW1vbiwKPj4+PiArfTsKPj4+PiArCj4+Pj4g Kwo+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHN1bnhpX2NjdV9kZXNjIHN1bjhpX3Y4NTNfcl9j Y3VfZGVzYyA9IHsKPj4+PiArIC5jY3VfY2xrcyA9IHN1bjhpX3Y4NTNfcl9jY3VfY2xrcywKPj4+ PiArIC5udW1fY2N1X2Nsa3MgPSBBUlJBWV9TSVpFKHN1bjhpX3Y4NTNfcl9jY3VfY2xrcyksCj4+ Pj4gKwo+Pj4+ICsgLmh3X2Nsa3MgPSAmc3VuOGlfdjg1M19yX2h3X2Nsa3MsCj4+Pj4gKwo+Pj4+ ICsgLnJlc2V0cyA9IHN1bjhpX3Y4NTNfcl9jY3VfcmVzZXRzLAo+Pj4+ICsgLm51bV9yZXNldHMg PSBBUlJBWV9TSVpFKHN1bjhpX3Y4NTNfcl9jY3VfcmVzZXRzKSwKPj4+PiArfTsKPj4+PiArCj4+ Pj4gK3N0YXRpYyBpbnQgc3VuOGlfdjg1M19yX2NjdV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQo+Pj4+ICt7Cj4+Pj4gKyB2b2lkIF9faW9tZW0gKnJlZzsKPj4+PiArCj4+Pj4g KyByZWcgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7Cj4+Pj4gKyBp ZiAoSVNfRVJSKHJlZykpCj4+Pj4gKyByZXR1cm4gUFRSX0VSUihyZWcpOwo+Pj4+ICsKPj4+PiAr IHJldHVybiBkZXZtX3N1bnhpX2NjdV9wcm9iZSgmcGRldi0+ZGV2LCByZWcsICZzdW44aV92ODUz X3JfY2N1X2Rlc2MpOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCBzdW44aV92ODUzX3JfY2N1X2lkc1tdID0gewo+Pj4+ICsgeyAuY29tcGF0aWJs ZSA9ICJhbGx3aW5uZXIsc3VuOGktdjg1My1yLWNjdSIgfSwKPj4+PiArIHsgfQo+Pj4+ICt9Owo+ Pj4+ICsKPj4+PiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc3VuOGlfdjg1M19yX2Nj dV9kcml2ZXIgPSB7Cj4+Pj4gKyAucHJvYmUgPSBzdW44aV92ODUzX3JfY2N1X3Byb2JlLAo+Pj4+ ICsgLmRyaXZlciA9IHsKPj4+PiArIC5uYW1lID0gInN1bjhpLXY4NTMtci1jY3UiLAo+Pj4+ICsg LnN1cHByZXNzX2JpbmRfYXR0cnMgPSB0cnVlLAo+Pj4+ICsgLm9mX21hdGNoX3RhYmxlID0gc3Vu OGlfdjg1M19yX2NjdV9pZHMsCj4+Pj4gKyB9LAo+Pj4+ICt9Owo+Pj4+ICttb2R1bGVfcGxhdGZv cm1fZHJpdmVyKHN1bjhpX3Y4NTNfcl9jY3VfZHJpdmVyKTsKPj4+PiArCj4+Pj4gK01PRFVMRV9J TVBPUlRfTlMoIlNVTlhJX0NDVSIpOwo+Pj4+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLXIuaCBiL2Ry aXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLXIuaAo+Pj4+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAwLi4xNTZjYTE1ZTgyMDgKPj4+PiAtLS0gL2Rl di9udWxsCj4+Pj4gKysrIGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXY4NTMtci5o Cj4+Pj4gQEAgLTAsMCArMSwxNSBAQAo+Pj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMCAqLyAgCj4+PiAKPj4+IEhlcmUgdGhlIGxpY2Vuc2UgbG9va3MgcmlnaHQsIGJ1dCB0 aGUgYXV0aG9yc2hpcCBhbmQgc291cmNlIGFyZSBzdGlsbAo+Pj4gaW4gcXVlc3Rpb24uIExvb2tz IGxpa2UgdGhlIG9ubHkgcmVhbCBjb2RlIGluIGhlcmUgaXMgQ0xLX05VTUJFUiwgc28gaWYKPj4+ IHRoYXQgaXMgeW91ciBsaW5lLCBkcm9wIGFsbCB0aG9zZSBib2d1cyBjb3B5cmlnaHRzLCBhbmQg cHV0IGluIHlvdXIgb3duLiAgCj4+IAo+PiBPaywgSeKAmWxsLgo+PiAKPj4+IAo+Pj4+ICsvKiBD b3B5cmlnaHQoYykgMjAyMCAtIDIwMjMgQWxsd2lubmVyIFRlY2hub2xvZ3kgQ28uLEx0ZC4gQWxs IHJpZ2h0cyByZXNlcnZlZC4KPj4+PiArICoKPj4+PiArICogQ29weXJpZ2h0IChjKSAyMDIzIHJl bmdhb21pbkBhbGx3aW5uZXJ0ZWNoLmNvbQo+Pj4+ICsgKi8KPj4+PiArCj4+Pj4gKyNpZm5kZWYg X0NDVV9TVU44SV9WODUzX1JfSAo+Pj4+ICsjZGVmaW5lIF9DQ1VfU1VOOElfVjg1M19SX0gKPj4+ PiArCj4+Pj4gKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9zdW44aS12ODUzLXItY2N1Lmg+ Cj4+Pj4gKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9yZXNldC9zdW44aS12ODUzLXItY2N1Lmg+Cj4+ Pj4gKwo+Pj4+ICsjZGVmaW5lIENMS19OVU1CRVIgQ0xLX1JfTUFYX05PICAKPj4+IAo+Pj4gV2hh dCdzICJDTEtfUl9NQVhfTk8iPyBJIHRoaW5rIHdlIHB1dCBpbiB0aGUgYWN0dWFsIGxhc3QgY2xv Y2sgbmFtZSBpbiwKPj4+IHRyYWRpdGlvbmFsbHk/Cj4+PiAKPj4gCj4+IFllcywgeW91IGFyZSBy aWdodC4KPiAKPiBHcmVhdCwgbm93IGl0J3MgeW91ciBwYXRjaCBhbnl3YXksIHNvIHlvdSBjYW4g ZWFzaWx5IGNsYWltIHRoZSBjb3B5cmlnaHQKPiBhbmQgYXV0aG9yc2hpcCA7LSkKPiAKPj4+PiAr Cj4+Pj4gKyNlbmRpZgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Ut c3VuOGktdjg1My5jIGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXY4NTMuYwo+Pj4+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAwLi5hMTk0NzM1N2Ew OGUKPj4+PiAtLS0gL2Rldi9udWxsCj4+Pj4gKysrIGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1 LXN1bjhpLXY4NTMuYwo+Pj4+IEBAIC0wLDAgKzEsMTE0NSBAQAo+Pj4+ICsvLyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Cj4+Pj4gKy8qCj4+Pj4gKyAqIENvcHlyaWdodCAo QykgMjAyNCBBbmRyYXMgU3plbXpvIDxzemVtem8uYW5kcmFzQGdtYWlsLmNvbT4KPj4+PiArICoK Pj4+PiArICogQmFzZWQgb24gY2N1LXN1bjIwaS1kMS5jLCB3aGljaCBpczoKPj4+PiArICogQ29w eXJpZ2h0IChDKSAyMDIxIFNhbXVlbCBIb2xsYW5kLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgCj4+ PiAKPj4+IEFsbCByaWdodHMgcmVzZXJ2ZWQ/IFdoZXJlIGRvZXMgdGhhdCBjb21lIGZyb20/IFBs ZWFzZSByZW1vdmUgdGhhdC4KPj4+IAo+PiAKPj4gU3RhcnRpbmcgdG8gd3JpdGUgdGhlIGZpcnN0 IGNjdSBkcml2ZXIgd2l0aG91dCBwcmlvciBrbm93bGVkZ2UgaXMgbm90IGFuIGVhc3kgdGFzaywg c28gSSBzdGFydGVkIGZyb20gdGhlIGQxIGNjdSBkcml2ZXIuIEkgZG9u4oCZdCBrbm93Cj4+IGhv dyBtdWNoIGZyb20gdGhhdCByZW1haW5zIGFjdHVhbGx5LCBidXQgSSBkb27igJl0IHdhbnRlZCB0 byByZW1vdmUgdGhhdCBjb21tZW50LiBJIGxvb2tlZCBhcm91bmQgaG93IHNob3VsZCBpdCBiZSBk b25lCj4+IGNvcnJlY3RseSwgYW5kIGNvcGllZCB0aGUgcmVtYXJrIGZyb20gdGhlIGNjdS1zdW44 aS12M3MuYwo+PiAKPj4gSXQgaGFzIGV4YWN0bHkgdGhlIHNhbWUgY29weXJpZ2h0LiAKPj4gLi4K Pj4gKiBCYXNlZCBvbiBjY3Utc3VuOGktaDMuYywgd2hpY2ggaXM6Cj4+ICogQ29weXJpZ2h0IChj KSAyMDE2IE1heGltZSBSaXBhcmQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4gCj4gQWgsIEkgZGlk bid0IHNlZSBpdCB3aXRoIFNhbXVlbCdzIG5hbWUsIGhlbmNlIHdhcyB3b25kZXJpbmcuIFRoZSBI Mwo+IGhlcml0YWdlIGlzIGJ5IG5vdyBxdWl0ZSBpbnNpZ25pZmljYW50LCBJJ2Qgc2F5LCBhbmQg c2luY2UgeW91IGRyb3BwZWQKPiBNYXhpbWUgYW55d2F5LCB5b3UgY2FuIGp1c3QgY29weSBTYW11 ZWwncyBsaW5lLCB3aXRob3V0IHRoZSAiQWxsIHJpZ2h0cwo+IHJlc2VydmVkIi4gSXQncyBwcm9i YWJseSByZWR1bmRhbnQgYW55d2F5Lgo+IAo+PiBJ4oCZbGwgcmVtb3ZlIHRoYXQuCj4gCj4gU28g eWVzLCBqdXN0IHJlbW92ZSB0aGUgIkFsbCByaWdodHMgcmVzZXJ2ZWQuIiBUaGFua3MuCj4gCj4+ IAo+Pj4+ICsgKi8KPj4+PiArCj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4K Pj4+PiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cj4+Pj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4KPj4+PiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+Pj4+ICsKPj4+PiAr I2luY2x1ZGUgIi4uL2Nsay5oIgo+Pj4+ICsKPj4+PiArI2luY2x1ZGUgImNjdV9jb21tb24uaCIK Pj4+PiArI2luY2x1ZGUgImNjdV9yZXNldC5oIgo+Pj4+ICsKPj4+PiArI2luY2x1ZGUgImNjdV9k aXYuaCIKPj4+PiArI2luY2x1ZGUgImNjdV9nYXRlLmgiCj4+Pj4gKyNpbmNsdWRlICJjY3VfbXAu aCIKPj4+PiArI2luY2x1ZGUgImNjdV9tdWx0LmgiCj4+Pj4gKyNpbmNsdWRlICJjY3VfbmsuaCIK Pj4+PiArI2luY2x1ZGUgImNjdV9ua20uaCIKPj4+PiArI2luY2x1ZGUgImNjdV9ua21wLmgiCj4+ Pj4gKyNpbmNsdWRlICJjY3Vfbm0uaCIKPj4+PiArCj4+Pj4gKyNpbmNsdWRlICJjY3Utc3VuOGkt djg1My5oIgo+Pj4+ICsKPj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEg b3NjMjRNW10gPSB7Cj4+Pj4gKyB7IC5md19uYW1lID0gImhvc2MiIH0KPj4+PiArfTsKPj4+PiAr Cj4+Pj4gKy8qCj4+Pj4gKyAqIEZvciB0aGUgQ1BVIFBMTCwgdGhlIG91dHB1dCBkaXZpZGVyIGlz IGRlc2NyaWJlZCBhcyAib25seSBmb3IgdGVzdGluZyIKPj4+PiArICogaW4gdGhlIHVzZXIgbWFu dWFsLiBTbyBpdCdzIG5vdCBtb2RlbGxlZCBhbmQgZm9yY2VkIHRvIDAuCj4+Pj4gKyAqLwo+Pj4+ ICsjZGVmaW5lIFNVTjhJX1Y4NTNfUExMX0NQVV9SRUcgMHgwMDAKPj4+PiArCj4+Pj4gK3N0YXRp YyBzdHJ1Y3QgY2N1X211bHQgcGxsX2NwdV9jbGsgPSB7Cj4+Pj4gKyAuZW5hYmxlID0gQklUKDI3 KSB8IEJJVCgzMCkgfCBCSVQoMzEpLCAgCj4+PiAKPj4+IEJ1dCBiaXQgMzAgYW5kIDMxIGFyZSBz ZXQgYWxyZWFkeSBieSB0aGUgUExMIGxvb3AgaW4gdGhlIHByb2JlIHJvdXRpbmUKPj4+IGJlbG93 LCBzbyB3ZSBqdXN0IG5lZWQgYml0IDI3IHRvIGdhdGUgdGhlIG91dHB1dC4KPj4+IAo+Pj4+ICsg LmxvY2sgPSBCSVQoMjgpLAo+Pj4+ICsgLm11bHQgPSBfU1VOWElfQ0NVX01VTFRfTUlOKDgsIDgs IDEyKSwgIAo+Pj4gCj4+PiB0ZWNobmljYWxseSB0aGUgbWFudWFsIHNheXMgdGhlIG1pbmltdW0g aXMgMTEsIHRob3VnaCB0aGlzIGRvZXNuJ3QKPj4+IHJlYWxseSBtYXR0ZXIsIGFzIHdlIHdpbGwg bmV2ZXIgZ28gdGhhdCBsb3cgYW55d2F5Lgo+Pj4gCj4+Pj4gKyAuY29tbW9uID0gewo+Pj4+ICsg LnJlZyA9IDB4MDAwLAo+Pj4+ICsgLmh3LmluaXQgPSBDTEtfSFdfSU5JVF9QQVJFTlRTX0RBVEEo InBsbC1jcHUiLCBvc2MyNE0sCj4+Pj4gKyAgICAmY2N1X211bHRfb3BzLAo+Pj4+ICsgICAgQ0xL X1NFVF9SQVRFX1VOR0FURSksICAKPj4+IAo+Pj4gVGhpcyBtdXN0IGJlIENMS19TRVRfUkFURV9H QVRFLCBhcyB3ZSBmaWd1cmVkIHNvbWUgd2Vla3MgYWdvLiBUaGUgbWFudWFsCj4+PiBzYXlzIHRo YXQgZm9yIGNoYW5naW5nIHRoZSBmcmVxdWVuY3kgeW91IG11c3QgbGVhdmUgdGhlIFBMTCBlbmFi bGVkCj4+PiAoYml0cyAzMSBhbmQgMzAgPSAxKSwgYnV0IGdhdGUgdGhlIG91dHB1dCAoYml0IDI3 ID0gMCkuIFRoZSAiR0FURSIgaW4KPj4+IHRoYXQgZmxhZyBuYW1lIGhlcmUgcmVmZXJzIHRvIHRo ZSAuZW5hYmxlIG1hc2sgYWJvdmUuCj4+PiBTbyBDTEtfU0VUX1JBVEVfVU5HQVRFIHdvdWxkIG1l YW46IGRvbid0IHRvdWNoIHRoZSBlbmFibGUgYml0LCBidXQga2VlcAo+Pj4gaXQgcnVubmluZywg d2hpY2ggd291bGQgYmUgY29ycmVjdCBpZiB0aGUgZW5hYmxlIGJpdCB3b3VsZCBiZSBhYm91dCB0 aGUKPj4+IHJlYWwgZW5hYmxlIGJpdCAoYml0IDMxKS4gQnV0IHNpbmNlIHdlIG1vZGVsIHRoaXMg bGlrZSAiZW5hYmxlIG1lYW5zIG5vdAo+Pj4gZ2F0ZWQiLCB3ZSBtdXN0IGdhdGUgdGhlIG91dHB1 dCwgYnkgc2V0dGluZyB0aGUgZW5hYmxlIGJpdCB0byAwLgo+Pj4gQ0xLX1NFVF9SQVRFX0dBVEUg ZG9lcyBleGFjdGx5IHRoYXQuCj4+PiAKPj4gCj4+IEFsbCB0aGlzIEJJVCAoMzAsIDMxLCAyNykg YW5kIE1VTFRfTUlOIDEyIGFyZSBjb21lcyBmcm9tIHRoZSBtaXN0YWtlIHRoYXQgSSB0cmllZCB0 byBmb2xsb3cgdGhlIEJTUAo+PiBkcml2ZXIgWzJdIHRvbyBjbG9zZWx5Lgo+PiBBcyB0aGUgY3B1 IGZyZXEuIHNjYWxpbmcgYXJlIHdvcmtpbmcgWzNdIHdpdGggdGhpcyBzZXR0aW5ncyB0b28sIEkg bWlzc2VkIHRoYXQuCj4gCj4gVGhhbmtzIGZvciB0ZXN0aW5nLCBpdCB3b3VsZCBiZSBhd2Vzb21l IGlmIHlvdSBjb3VsZCByZXBlYXQgdGhhdCB0ZXN0Cj4gYnJpZWZseSB3aXRoIHRoZSBjaGFuZ2Vz Lgo+IAo+IFRoYW5rcyBmb3IgY29uZmlybWluZyB0aGUgb3RoZXIgYml0cywgbXVjaCBhcHByZWNp YXRlZCEKPiAKCkFmdGVyIGNoYW5naW5nIHRoZSBlbmFibGUgQklUUyBhbmQgc2V0dGluZyBDTEtf U0VUX1JBVEVfR0FURSBpbiBQTExzIHRoZSBjcHUgZnJlcSBzY2FsaW5nIGlzIHN0aWxsIHdvcmtp bmcsCnNvIHRoYW5rcyBmb3IgeW91ciBjb21tZW50cywgaXQgd29ya3MuCgpSZWdhcmRzLApBbmRy YXMKCj4gQ2hlZXJzLAo+IEFuZHJlCj4gCj4+IEnigJlsbCBmaXggaXQuCj4+IAo+PiBbMl06IGh0 dHBzOi8vZ2l0aHViLmNvbS9ZdXp1a2lIRC9UaW55VmlzaW9uL2Jsb2IvbWFpbi9rZXJuZWwvYnNw L2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aXcyMS5jCj4+IAo+PiBbM106IHY4NTFzOn4j IGNhdCAvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHUwL2NwdWZyZXEvc3RhdHMvdGltZV9pbl9z dGF0ZSAKPj4gNDA4MDAwIDE3NzYyMAo+PiA2MDAwMDAgMTAwOTkKPj4gNzIwMDAwIDI1OTMKPj4g OTEyMDAwIDMzOAo+PiAxMDA4MDAwIDMKPj4gMTIwMDAwMCA1Njc1NjE3Cj4+IHY4NTFzOn4jIAo+ PiAKPj4+PiArIH0sCj4+Pj4gK307Cj4+Pj4gKwo+Pj4+ICsvKiBTb21lIFBMTHMgYXJlIGlucHV0 ICogTiAvIGRpdjEgLyBQLiBNb2RlbCB0aGVtIGFzIE5LTVAgd2l0aCBubyBLICovCj4+Pj4gKyNk ZWZpbmUgU1VOOElfVjg1M19QTExfRERSX1JFRyAweDAxMAo+Pj4+ICtzdGF0aWMgc3RydWN0IGNj dV9ua21wIHBsbF9kZHJfY2xrID0gewo+Pj4+ICsgLmVuYWJsZSA9IEJJVCgyNykgfCBCSVQoMzAp IHwgQklUKDMxKSwgIAo+Pj4gCj4+PiBzYW1lIGhlcmUsIG9ubHkgYml0IDI3IHBsZWFzZS4KPj4+ IAo+Pj4+ICsgLmxvY2sgPSBCSVQoMjgpLAo+Pj4+ICsgLm4gPSBfU1VOWElfQ0NVX01VTFRfTUlO KDgsIDgsIDEyKSwKPj4+PiArIC5tID0gX1NVTlhJX0NDVV9ESVYoMSwgMSksIC8qIGlucHV0IGRp dmlkZXIgKi8KPj4+PiArIC5wID0gX1NVTlhJX0NDVV9ESVYoMCwgMSksIC8qIG91dHB1dCBkaXZp ZGVyICovCj4+Pj4gKyAuY29tbW9uID0gewo+Pj4+ICsgLnJlZyA9IDB4MDEwLAo+Pj4+ICsgLmh3 LmluaXQgPSBDTEtfSFdfSU5JVF9QQVJFTlRTX0RBVEEoInBsbC1kZHIiLCBvc2MyNE0sCj4+Pj4g KyAgICAmY2N1X25rbXBfb3BzLAo+Pj4+ICsgICAgQ0xLX1NFVF9SQVRFX1VOR0FURSksICAKPj4+ IAo+Pj4gQ0xLX1NFVF9SQVRFX0dBVEUsIGFzIGFib3ZlLgo+Pj4gCj4+Pj4gKyB9LAo+Pj4+ICt9 Owo+Pj4+ICsKPj4+PiArI2RlZmluZSBTVU44SV9WODUzX1BMTF9QRVJJUEhfUkVHIDB4MDIwCj4+ Pj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X25tIHBsbF9wZXJpcGhfNHhfY2xrID0gewo+Pj4+ICsgLmVu YWJsZSA9IEJJVCgyNykgfCBCSVQoMzApIHwgQklUKDMxKSwgIAo+Pj4gCj4+PiBCSVQoMjcpLCBh cyBhYm92ZSwgYW5kIGZ1cnRoZXIgZG93biBhcyB3ZWxsCj4+PiAKPj4+PiArIC5sb2NrID0gQklU KDI4KSwKPj4+PiArIC5uID0gX1NVTlhJX0NDVV9NVUxUX01JTig4LCA4LCAxMiksCj4+Pj4gKyAu bSA9IF9TVU5YSV9DQ1VfRElWKDEsIDEpLCAvKiBpbnB1dCBkaXZpZGVyICovCj4+Pj4gKyAuY29t bW9uID0gewo+Pj4+ICsgLnJlZyA9IDB4MDIwLAo+Pj4+ICsgLmh3LmluaXQgPSBDTEtfSFdfSU5J VF9QQVJFTlRTX0RBVEEoInBsbC1wZXJpcGgtNHgiLCBvc2MyNE0sCj4+Pj4gKyAgICAmY2N1X25t X29wcywKPj4+PiArICAgIENMS19TRVRfUkFURV9VTkdBVEUpLCAgCj4+PiAKPj4+IHlvdSBndWVz c2VkIGl0OiBDTEtfU0VUX1JBVEVfR0FURSwgaGVyZSBhbmQgZnVydGhlciBiZWxvdywgcGxlYXNl Cj4+PiAKPj4+PiArIH0sCj4+Pj4gK307Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX00o cGxsX3BlcmlwaF8yeF9jbGssICJwbGwtcGVyaXBoLTJ4IiwgInBsbC1wZXJpcGgtNHgiLAo+Pj4+ ICsgICAgICAgIDB4MDIwLCAxNiwgMywgMCk7ICAKPj4+IAo+Pj4gU28gaXMgdGhlcmUgYSByZWNv bW1lbmRhdGlvbiBhYm91dCBob3cgd2UgcmVmZXJlbmNlIG90aGVyIGNsb2Nrcz8gVGhpcwo+Pj4g b25lIGhlcmUgaXMgdXNpbmcgdGhlIGNsb2NrIG5hbWUsIHdoaWNoIHJlcXVpcmVzIGEgbG9vay11 cCwgd2hlcmUgd2UKPj4+IGNvdWxkIHVzZSB0aGUgcG9pbnRlciBkaXJlY3RseSBhcyB3ZWxsLCBh cyBkb25lIGRvd24gYmVsb3cuCj4+PiAKPj4+IHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICpw bGxfcGVyaXBoMF80eF9od3NbXSA9IHsKPj4+ICZwbGxfcGVyaXBoMF80eF9jbGsuY29tbW9uLmh3 Cj4+PiB9Owo+Pj4gc3RhdGljIFNVTlhJX0NDVV9NX0hXUyhwbGxfcGVyaXBoMF8yeF9jbGssICJw bGwtcGVyaXBoMC0yeCIsCj4+PiAgICAgICBwbGxfcGVyaXBoMF80eF9od3MsIDB4MDIwLCAxNiwg MywgMCk7Cj4+PiAKPj4+IEkgaGF2ZSBzZWVuIGJvdGgsIHN1bjIwaS1kMSBmb3IgaW5zdGFuY2Ug dXNlcyB0aGlzLCBhbmQgSSBjb3BpZWQgZnJvbQo+Pj4gdGhlcmUgZm9yIHRoZSBBNTIzIGNsb2Nr IGNvZGUuCj4+PiAKPj4+IFdvdWxkIGJlIGdsYWQgdG8gaGVhciBzb21lIG1haW50YWluZXIncyBv cGluaW9uLgo+Pj4gCj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX00ocGxsX3BlcmlwaF84 MDBNX2NsaywgInBsbC1wZXJpcGgtODAwTSIsICJwbGwtcGVyaXBoLTR4IiwKPj4+PiArICAgICAg ICAweDAyMCwgMjAsIDMsIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9NKHBsbF9w ZXJpcGhfNDgwTV9jbGssICJwbGwtcGVyaXBoLTQ4ME0iLCAicGxsLXBlcmlwaC00eCIsCj4+Pj4g KyAgICAgICAgMHgwMjAsIDIsIDMsIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIENMS19GSVhFRF9G QUNUT1JfSFcocGxsX3BlcmlwaF82MDBNX2NsaywgInBsbC1wZXJpcGgtNjAwTSIsCj4+Pj4gKyAm cGxsX3BlcmlwaF8yeF9jbGsuY29tbW9uLmh3LCAyLCAxLCAwKTsKPj4+PiArCj4+Pj4gK3N0YXRp YyBDTEtfRklYRURfRkFDVE9SX0hXKHBsbF9wZXJpcGhfNDAwTV9jbGssICJwbGwtcGVyaXBoLTQw ME0iLAo+Pj4+ICsgJnBsbF9wZXJpcGhfMnhfY2xrLmNvbW1vbi5odywgMywgMSwgMCk7Cj4+Pj4g Kwo+Pj4+ICtzdGF0aWMgQ0xLX0ZJWEVEX0ZBQ1RPUl9IVyhwbGxfcGVyaXBoXzMwME1fY2xrLCAi cGxsLXBlcmlwaC0zMDBNIiwKPj4+PiArICAgICAmcGxsX3BlcmlwaF82MDBNX2Nsay5odywgMiwg MSwgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgQ0xLX0ZJWEVEX0ZBQ1RPUl9IVyhwbGxfcGVyaXBo XzIwME1fY2xrLCAicGxsLXBlcmlwaC0yMDBNIiwKPj4+PiArICAgICAmcGxsX3BlcmlwaF80MDBN X2Nsay5odywgMiwgMSwgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgQ0xLX0ZJWEVEX0ZBQ1RPUl9I VyhwbGxfcGVyaXBoXzE2ME1fY2xrLCAicGxsLXBlcmlwaC0xNjBNIiwKPj4+PiArICAgICAmcGxs X3BlcmlwaF80ODBNX2Nsay5jb21tb24uaHcsIDMsIDEsIDApOwo+Pj4+ICsKPj4+PiArc3RhdGlj IENMS19GSVhFRF9GQUNUT1JfSFcocGxsX3BlcmlwaF8xNTBNX2NsaywgInBsbC1wZXJpcGgtMTUw TSIsCj4+Pj4gKyAgICAgJnBsbF9wZXJpcGhfMzAwTV9jbGsuaHcsIDIsIDEsIDApOwo+Pj4+ICsK Pj4+PiArCj4+Pj4gKy8qCj4+Pj4gKyAqIEZvciBWaWRlbyBQTExzLCB0aGUgb3V0cHV0IGRpdmlk ZXIgaXMgZGVzY3JpYmVkIGFzICJvbmx5IGZvciB0ZXN0aW5nIgo+Pj4+ICsgKiBpbiB0aGUgdXNl ciBtYW51YWwuIFNvIGl0J3Mgbm90IG1vZGVsbGVkIGFuZCBmb3JjZWQgdG8gMC4gIAo+Pj4gCj4+ PiBUaGF0J3MgYSBiaXQgY29uZnVzaW5nOiB0aGUgbWFudWFsIHNheXMgdGhhdCB0aGUgZGVmYXVs dCB2YWx1ZSBmb3IgYml0IDAKPj4+IGlzIDB4MSwgYW5kIHRoYXQgaXQncyAib25seSBmb3IgdGVz dGluZyIsIHdoaWNoIHdvdWxkIG1lYW4gd2Ugc2hvdWxkCj4+PiBsZWF2ZSBpdCBsaWtlIHRoaXMs IGFsd2F5cyBkaXZpZGluZyBieSAyPyBJbiB0aGUgbWFpbiBkZXNjcmlwdGlvbiAoYml0Cj4+PiAz MSkgaXQgc2F5czoKPj4+IFZJREVPUExMNFggPSBJbnB1dEZyZXEqTi9NCj4+PiBidXQgYmVsb3cg KGJpdCAwKSBpdCdzCj4+PiBWSURFT1BMTDRYID0gMjRNSHoqTi9NL0QKPj4+ICh3aXRoIEQgYmVp bmcgIlBMTF9PVVRQVVRfRElWX0QgKyAxIiwgc28gMiBpbiBvdXIgY2FzZSkKPj4+IAo+Pj4gRG8g eW91IGhhdmUgYW55IGluZGljYXRpb24gaG93IGZhc3QgdGhlIHZpZGVvIFBMTCByZWFsbHkgaXM/ IElmIGl0IGlzCj4+PiBkaXZpZGVkIGJ5IDIgKGFzIHdlIGZvcmNlIHRoYXQgYml0IHRvIDEgZG93 biBpbiB0aGUgcHJvYmUgcm91dGluZSksIHRoZW4KPj4+IHdlIHdvdWxkIG5lZWQgdG8gbW9kZWwg dGhpcyB3aXRoIHRoYXQgQ0NVX0ZFQVRVUkVfRklYRURfUE9TVERJViBmbGFnLAo+Pj4gYW5kIGVp dGhlciBsZWF2ZSB0aGF0IGJpdCBhbG9uZSBvciBmb3JjZSBpdCB0byAxIGluc3RlYWQuCj4+PiBB bHNvIHdvdWxkIGJlIGdvb2QgdG8gc2VlIHdoYXQgdGhlIEJTUCBkb2VzLgo+Pj4gCj4+IAo+PiBU aGUgWzJdIEJTUCBkcml2ZXIgbW9kZWwgaXQgYXMgYSBjY3VfbmttcCB0eXBlLCBzbyBp4oCZbGwg ZG91YmxlIGNoZWNrIGl0Lgo+PiAKPj4+PiArICovCj4+Pj4gKyNkZWZpbmUgU1VOOElfVjg1M19Q TExfVklERU9fUkVHIDB4MDQwCj4+Pj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X25tIHBsbF92aWRlb180 eF9jbGsgPSB7Cj4+Pj4gKyAuZW5hYmxlID0gQklUKDI3KSB8IEJJVCgzMCkgfCBCSVQoMzEpLAo+ Pj4+ICsgLmxvY2sgPSBCSVQoMjgpLAo+Pj4+ICsgLm4gPSBfU1VOWElfQ0NVX01VTFRfTUlOKDgs IDgsIDEyKSwgIAo+Pj4gCj4+PiBUaGUgbWFudWFsIHNheXMgMTEgKGJ1dCBhZ2FpbiBkb2Vzbid0 IG1hdHRlcikuCj4+PiAKPj4+PiArIC5tID0gX1NVTlhJX0NDVV9ESVYoMSwgMSksIC8qIGlucHV0 IGRpdmlkZXIgKi8KPj4+PiArIC5jb21tb24gPSB7Cj4+Pj4gKyAucmVnID0gMHgwNDAsCj4+Pj4g KyAuaHcuaW5pdCA9IENMS19IV19JTklUX1BBUkVOVFNfREFUQSgicGxsLXZpZGVvLTR4Iiwgb3Nj MjRNLAo+Pj4+ICsgICAgJmNjdV9ubV9vcHMsCj4+Pj4gKyAgICBDTEtfU0VUX1JBVEVfVU5HQVRF KSwKPj4+PiArIH0sCj4+Pj4gK307Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNs a19odyAqcGxsX3ZpZGVvXzR4X2h3c1tdID0gewo+Pj4+ICsgJnBsbF92aWRlb180eF9jbGsuY29t bW9uLmh3Cj4+Pj4gK307Cj4+Pj4gK3N0YXRpYyBDTEtfRklYRURfRkFDVE9SX0hXUyhwbGxfdmlk ZW9fMnhfY2xrLCAicGxsLXZpZGVvLTJ4IiwKPj4+PiArICAgICBwbGxfdmlkZW9fNHhfaHdzLCAy LCAxLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPj4+PiArc3RhdGljIENMS19GSVhFRF9GQUNUT1Jf SFdTKHBsbF92aWRlb18xeF9jbGssICJwbGwtdmlkZW8tMXgiLAo+Pj4+ICsgICAgIHBsbF92aWRl b180eF9od3MsIDQsIDEsIENMS19TRVRfUkFURV9QQVJFTlQpOyAgCj4+PiAKPj4+IEFoLCBoZXJl IHlvdSBhcmUgdXNpbmcgdGhlIHBvaW50ZXIgcmVmZXJlbmNlIHRvIHRoZSBiYXNlIGNsb2NrLCBu b3QgdGhlCj4+PiBzdHJpbmcsIGFzIGFib3ZlLiBJIHRoaW5rIHdlIHNob3VsZCBzdGljayB0byBv bmUgbWV0aG9kPyAgCj4+IAo+PiBPay4KPj4gCj4+PiAKPj4+PiArLyoKPj4+PiArICogRm9yIENT SSBQTExzLCB0aGUgb3V0cHV0IGRpdmlkZXIgaXMgZGVzY3JpYmVkIGFzICJvbmx5IGZvciB0ZXN0 aW5nIgo+Pj4+ICsgKiBpbiB0aGUgdXNlciBtYW51YWwuIFNvIGl0J3Mgbm90IG1vZGVsbGVkIGFu ZCBmb3JjZWQgdG8gMC4gIAo+Pj4gCj4+PiBTYW1lIHNpdHVhdGlvbiBhcyBmb3IgdGhlIHZpZGVv IFBMTDogd2hhdCBpcyB0aGUgcmVjb21tZW5kZWQgc2V0dGluZyBvZgo+Pj4gYml0IDAsIHJlYWxs eT8KPj4+IAo+PiAKPj4gU2FtZSBhcyB3aXRoIHRoZSBQTExfVklERU8uIEnigJlsbCBjaGVjayBp dCBhZ2FpbiwgYW5kIG1vZGlmeSBib3RoLgo+PiAKPj4+PiArICovCj4+Pj4gKyNkZWZpbmUgU1VO OElfVjg1M19QTExfQ1NJX1JFRyAweDA0OAo+Pj4+ICtzdGF0aWMgc3RydWN0IGNjdV9ubSBwbGxf Y3NpXzR4X2NsayA9IHsKPj4+PiArIC5lbmFibGUgPSBCSVQoMjcpIHwgQklUKDMwKSB8IEJJVCgz MSksCj4+Pj4gKyAubG9jayA9IEJJVCgyOCksCj4+Pj4gKyAubiA9IF9TVU5YSV9DQ1VfTVVMVF9N SU4oOCwgOCwgMTIpLAo+Pj4+ICsgLm0gPSBfU1VOWElfQ0NVX0RJVigxLCAxKSwgLyogaW5wdXQg ZGl2aWRlciAqLwo+Pj4+ICsgLmNvbW1vbiA9IHsKPj4+PiArIC5yZWcgPSAweDA0OCwKPj4+PiAr IC5ody5pbml0ID0gQ0xLX0hXX0lOSVRfUEFSRU5UU19EQVRBKCJwbGwtY3NpLTR4Iiwgb3NjMjRN LAo+Pj4+ICsgICAgJmNjdV9ubV9vcHMsCj4+Pj4gKyAgICBDTEtfU0VUX1JBVEVfVU5HQVRFKSwK Pj4+PiArIH0sCj4+Pj4gK307Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgQ0xLX0ZJWEVEX0ZBQ1RPUl9I VyhwbGxfY3NpX2NsaywgInBsbC1jc2kiLAo+Pj4+ICsgICAgICZwbGxfY3NpXzR4X2Nsay5jb21t b24uaHcsIDQsIDEsIENMS19TRVRfUkFURV9QQVJFTlQpOwo+Pj4+ICsKPj4+PiArCj4+Pj4gKyNk ZWZpbmUgU1VOOElfVjg1M19QTExfQVVESU9fUkVHIDB4NzgKPj4+PiArc3RhdGljIHN0cnVjdCBj Y3Vfc2RtX3NldHRpbmcgcGxsX2F1ZGlvX2RpdjVfc2RtX3RhYmxlW10gPSB7Cj4+Pj4gKyB7IC5y YXRlID0gMTk2NjA4MDAwLCAucGF0dGVybiA9IDB4YzAwMWViODUsIC5tID0gNSwgLm4gPSA0MCB9 LCAvKiAyNC41NzYgKi8KPj4+PiArIHsgLnJhdGUgPSA2NzczNzYwMCwgLnBhdHRlcm4gPSAweGMw MDEyODhkLCAubSA9IDgsIC5uID0gMjIgfSwgLyogMjIuNTc5MiAqLwo+Pj4+ICt9Owo+Pj4+ICsK Pj4+PiArc3RhdGljIHN0cnVjdCBjY3Vfbm0gcGxsX2F1ZGlvX2RpdjVfY2xrID0gewo+Pj4+ICsg LmVuYWJsZSA9IEJJVCgyNykgfCBCSVQoMzApIHwgQklUKDMxKSwKPj4+PiArIC5sb2NrICAgICAg ICAgICA9IEJJVCgyOCksCj4+Pj4gKyAubiAgICAgICAgICAgICAgPSBfU1VOWElfQ0NVX01VTFQo OCwgOCksCj4+Pj4gKyAubSAgICAgICAgICAgICAgPSBfU1VOWElfQ0NVX0RJVigyMCwgMyksCj4+ Pj4gKyAuc2RtICAgICAgICAgICAgPSBfU1VOWElfQ0NVX1NETShwbGxfYXVkaW9fZGl2NV9zZG1f dGFibGUsCj4+Pj4gKyAgICAgQklUKDI0KSwgMHgwMTc4LCBCSVQoMzEpKSwKPj4+PiArIC5jb21t b24gICAgICAgICA9IHsKPj4+PiArIC5yZWcgICAgICAgICAgICA9IDB4MDA3OCwKPj4+PiArIC5m ZWF0dXJlcyAgICAgICA9IENDVV9GRUFUVVJFX1NJR01BX0RFTFRBX01PRCwKPj4+PiArIC5ody5p bml0ICAgICAgICA9IENMS19IV19JTklUX1BBUkVOVFNfREFUQSgicGxsLWF1ZGlvLWRpdjUiLCBv c2MyNE0sCj4+Pj4gKyAgICAmY2N1X25tX29wcywKPj4+PiArICAgIENMS19TRVRfUkFURV9VTkdB VEUpLAo+Pj4+ICsgfSwKPj4+PiArfTsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9NKHBsbF9hdWRp b18xeF9jbGssICJwbGwtYXVkaW8tMXgiLCAicGxsLWF1ZGlvLWRpdjUiLAo+Pj4+ICsgMHhlMDAs IDAsIDUsIENMS19TRVRfUkFURV9QQVJFTlQpOwo+Pj4+ICsKPj4+PiArLyogcGxsLWF1ZGlvLWRp djIgYW5kIHBsbC1hZHVpby00eCBub3QgdXNlZCwgYmVjYXVzZSBhdWRpby0xeCBjYW4gY292ZXIg MjIuNTc5Mk0gYW5kIDI0LjU3Nk0gKi8KPj4+PiArc3RhdGljIFNVTlhJX0NDVV9NKHBsbF9hdWRp b19kaXYyX2NsaywgInBsbC1hdWRpby1kaXYyIiwgInBsbC1hdWRpbyIsCj4+Pj4gKyAweDA3OCwg MTYsIDMsIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX00ocGxsX2F1ZGlvXzR4X2NsaywgInBs bC1hdWRpby00eCIsICJwbGwtYXVkaW8tZGl2MiIsCj4+Pj4gKyAweGUwMCwgNSwgNSwgMCk7Cj4+ Pj4gKwo+Pj4+ICsvKgo+Pj4+ICsgKiBGb3IgdGhlIE5QVSBQTEwsIHRoZSBvdXRwdXQgZGl2aWRl ciBpcyBkZXNjcmliZWQgYXMgIm9ubHkgZm9yIHRlc3RpbmciCj4+Pj4gKyAqIGluIHRoZSB1c2Vy IG1hbnVhbC4gU28gaXQncyBub3QgbW9kZWxsZWQgYW5kIGZvcmNlZCB0byAwLgo+Pj4+ICsgKi8K Pj4+PiArI2RlZmluZSBTVU44SV9WODUzX1BMTF9OUFVfUkVHIDB4MDgwCj4+Pj4gK3N0YXRpYyBz dHJ1Y3QgY2N1X25tIHBsbF9ucHVfNHhfY2xrID0gewo+Pj4+ICsgLmVuYWJsZSA9IEJJVCgyNykg fCBCSVQoMzApIHwgQklUKDMxKSwKPj4+PiArIC5sb2NrID0gQklUKDI4KSwKPj4+PiArIC5uID0g X1NVTlhJX0NDVV9NVUxUX01JTig4LCA4LCAxMiksCj4+Pj4gKyAubSA9IF9TVU5YSV9DQ1VfRElW KDEsIDEpLCAvKiBpbnB1dCBkaXZpZGVyICovCj4+Pj4gKyAuY29tbW9uID0gewo+Pj4+ICsgLnJl ZyA9IDB4MDgwLAo+Pj4+ICsgLmh3LmluaXQgPSBDTEtfSFdfSU5JVF9QQVJFTlRTX0RBVEEoInBs bC1ucHUtNHgiLCBvc2MyNE0sCj4+Pj4gKyAgICAmY2N1X25tX29wcywKPj4+PiArICAgIENMS19T RVRfUkFURV9VTkdBVEUpLAo+Pj4+ICsgfSwKPj4+PiArfTsKPj4+PiArCj4+Pj4gKy8qCj4+Pj4g KyAqIFRoZSBDUFUgZ2F0ZSBpcyBub3QgbW9kZWxsZWQgLSBpdCBpcyBpbiBhIHNlcGFyYXRlIHJl Z2lzdGVyICgweDUwNCkKPj4+PiArICogYW5kIGhhcyBhIHNwZWNpYWwga2V5IGZpZWxkLiBUaGUg Y2xvY2sgZG9lcyBub3QgbmVlZCB0byBiZSB1bmdhdGVkIGFueXdheS4gIAo+Pj4gCj4+PiBJIHdv dWxkIGJlbGlldmUgaXQgc2hvdWxkIHJlYWQ6ICJUaGUgY2xvY2sgbXVzdCBub3QgYmUgZ2F0ZWQg YW55d2F5IGJ5Cj4+PiB0aGUga2VybmVsIi4gKEFzIGl0IHdvdWxkIHN0b3AgZXhlY3V0aW9uIG9u IHRoZSBBcm0gY29yZXMsIHNvIGl0J3Mgb25seQo+Pj4gc29tZXRoaW5nIGZvciB0aGUgbWFuYWdl bWVudCBjb3JlKS4KPj4+IAo+PiAKPj4gb2suCj4+IAo+Pj4+ICsgKi8KPj4+PiArc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgY3B1X3BhcmVudHNbXSA9IHsKPj4+PiArIHsgLmZ3 X25hbWUgPSAiaG9zYyIgfSwKPj4+PiArIHsgLmZ3X25hbWUgPSAibG9zYyIgfSwKPj4+PiArIHsg LmZ3X25hbWUgPSAiaW9zYyIgfSwKPj4+PiArIHsgLmh3ID0gJnBsbF9jcHVfY2xrLmNvbW1vbi5o dyB9LCAgCj4+PiAKPj4+IFRoZSBtYW51YWwgc2F5cyB0aGVyZSBpcyBhIGRpdmlkZXIgKFBMTF9D UFVfT1VUX0VYVF9ESVZQWzE3OjE2XSksCj4+PiB0aG91Z2ggdGhlIGRlc2NyaXB0aW9uIHN1Z2dl c3RzIGl0IHNob3VsZCBzdGF5IGFzIDAuIEkgZ3Vlc3MgdGhpcyBpcwo+Pj4gdGhlIGludGVudGlv biBoZXJlLCBidXQgY2FuIHlvdSBwbGVhc2UgYWRkIGNvbW1lbnQgaGVyZT8KPj4+IAo+PiAKPj4g b2suCj4+IAo+Pj4+ICsgeyAuaHcgPSAmcGxsX3BlcmlwaF82MDBNX2Nsay5odyB9LAo+Pj4+ICsg eyAuaHcgPSAmcGxsX3BlcmlwaF84MDBNX2Nsay5jb21tb24uaHcgfSwKPj4+PiArfTsKPj4+PiAr Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVVYX0RBVEEoY3B1X2NsaywgImNwdSIsIGNwdV9wYXJl bnRzLAo+Pj4+ICsgICAweDUwMCwgMjQsIDMsIENMS19TRVRfUkFURV9QQVJFTlQgfCBDTEtfSVNf Q1JJVElDQUwpOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9NKGNwdV9heGlfY2xrLCAi Y3B1LWF4aSIsICJjcHUiLCAgCj4+PiAKPj4+IEkgd29uZGVyIGlmIGl0J3MgbW9yZSBlZmZpY2ll bnQgdG8gdXNlIGEgcG9pbnRlciB0byB0aGUgQ1BVIGNsb2NrLCBhbmQKPj4+IG5vdCBhIHN0cmlu Zz8KPj4+IAo+PiAKPj4gSeKAmWxsIGZpeCB0aGF0Lgo+PiAKPj4+PiArICAgICAgICAweDUwMCwg MCwgMiwgMCk7Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfTShjcHVfYXBiX2NsaywgImNwdS1hcGIi LCAiY3B1IiwKPj4+PiArICAgICAgICAweDUwMCwgOCwgMiwgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSBhaGJfcGFyZW50c1tdID0gewo+Pj4+ICsg eyAuZndfbmFtZSA9ICJob3NjIiB9LAo+Pj4+ICsgeyAuZndfbmFtZSA9ICJsb3NjIiB9LAo+Pj4+ ICsgeyAuZndfbmFtZSA9ICJpb3NjIiB9LAo+Pj4+ICsgeyAuaHcgPSAmcGxsX3BlcmlwaF82MDBN X2Nsay5odyB9LAo+Pj4+ICt9Owo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01QX0RBVEFfV0lUSF9N VVgoYWhiX2NsaywgImFoYiIsIGFoYl9wYXJlbnRzLCAweDUxMCwKPj4+PiArICAgMCwgNSwgLyog TSAqLwo+Pj4+ICsgICA4LCAyLCAvKiBQICovCj4+Pj4gKyAgIDI0LCAyLCAvKiBtdXggKi8KPj4+ PiArICAgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01QX0RBVEFfV0lUSF9NVVgo YXBiMF9jbGssICJhcGIwIiwgYWhiX3BhcmVudHMsIDB4NTIwLAo+Pj4+ICsgICAwLCA1LCAvKiBN ICovCj4+Pj4gKyAgIDgsIDIsIC8qIFAgKi8KPj4+PiArICAgMjQsIDIsIC8qIG11eCAqLwo+Pj4+ ICsgICAwKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVBfREFUQV9XSVRIX01VWChh cGIxX2NsaywgImFwYjEiLCBhaGJfcGFyZW50cywgMHg1MjQsCj4+Pj4gKyAgIDAsIDUsIC8qIE0g Ki8KPj4+PiArICAgOCwgMiwgLyogUCAqLwo+Pj4+ICsgICAyNCwgMiwgLyogbXV4ICovCj4+Pj4g KyAgIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfaHcgKmFoYl9od3Nb XSA9IHsgJmFoYl9jbGsuY29tbW9uLmh3IH07Cj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xr X2h3ICphcGIwX2h3c1tdID0geyAmYXBiMF9jbGsuY29tbW9uLmh3IH07Cj4+Pj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgY2xrX2h3ICphcGIxX2h3c1tdID0geyAmYXBiMV9jbGsuY29tbW9uLmh3IH07 Cj4+Pj4gKwo+Pj4+ICsKPj4+PiArCj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICpk ZV9nMmRfcGFyZW50c1tdID0gewo+Pj4+ICsgJnBsbF9wZXJpcGhfMzAwTV9jbGsuaHcsCj4+Pj4g KyAmcGxsX3ZpZGVvXzF4X2Nsay5odywKPj4+PiArfTsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9N X0hXX1dJVEhfTVVYX0dBVEUoZGVfY2xrLCAiZGUiLCBkZV9nMmRfcGFyZW50cywgMHg2MDAsCj4+ Pj4gKyAgICAgMCwgNSwgLyogTSAqLwo+Pj4+ICsgICAgIDI0LCAxLCAvKiBtdXggKi8KPj4+PiAr ICAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4+Pj4gKyAgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7 Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19kZV9jbGssICJidXMt ZGUiLCBhaGJfaHdzLAo+Pj4+ICsgICAweDYwYywgQklUKDApLCAwKTsKPj4+PiArCj4+Pj4gK3N0 YXRpYyBTVU5YSV9DQ1VfTV9IV19XSVRIX01VWF9HQVRFKGcyZF9jbGssICJnMmQiLCBkZV9nMmRf cGFyZW50cywgMHg2MzAsCj4+Pj4gKyAgICAgMCwgNSwgLyogTSAqLwo+Pj4+ICsgICAgIDI0LCAx LCAvKiBtdXggKi8KPj4+PiArICAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4+Pj4gKyAgICAgQ0xL X1NFVF9SQVRFX1BBUkVOVCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdT KGJ1c19nMmRfY2xrLCAiYnVzLWcyZCIsIGFoYl9od3MsCj4+Pj4gKyAgIDB4NjNjLCBCSVQoMCks IDApOwo+Pj4+ICsKPj4+PiArCj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9k YXRhIGNlX3BhcmVudHNbXSA9IHsKPj4+PiArIHsgLmZ3X25hbWUgPSAiaG9zYyIgfSwgIAo+Pj4g Cj4+PiBUaGF0IHBhcmVudCBpcyBub3QgbWVudGlvbmVkIGluIHRoZSBtYW51YWwsIHRob3VnaCBp dCBsb29rcyBsaWtlIGFuCj4+PiBvbWlzc2lvbi4gRGlkIHlvdSBmaW5kIHRoZSBIT1NDIG1lbnRp b25lZCBzb21ld2hlcmUgZWxzZT8gIAo+PiAKPj4gVGhlIFsyXSBCU1AgZHJpdmVyIGRlY2xhcmVz IHRoZSBDRSBwYXJlbnRzIGluIHRoZSBzYW1lIHdheS4gCj4+IAo+Pj4gCj4+Pj4gKyB7IC5odyA9 ICZwbGxfcGVyaXBoXzQwME1fY2xrLmh3LCB9LAo+Pj4+ICsgeyAuaHcgPSAmcGxsX3BlcmlwaF8z MDBNX2Nsay5odywgfQo+Pj4+ICt9Owo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01fREFUQV9XSVRI X01VWF9HQVRFKGNlX2NsaywgImNlIiwgY2VfcGFyZW50cywgMHg2ODAsCj4+Pj4gKyAgICAgICAg MCwgNCwgLyogTSAqLyAgCj4+PiAKPj4+IGxvb2tzIGxpa2UgdGhlIGluZGVudGF0aW9uIGhlcmUg aXMgYSBiaXQgb2ZmLCBjYW4geW91IGNoZWNrIHRoaXM/IEFuZAo+Pj4gZm9yIHRoZSBvdGhlciBj bG9ja3MgYXMgd2VsbD8KPj4+IAo+PiAKPj4gU3VyZS4KPj4gCj4+Pj4gKyAgICAgICAgMjQsIDMs IC8qIG11eCAqLwo+Pj4+ICsgICAgICAgIEJJVCgzMSksIC8qIGdhdGUgKi8KPj4+PiArICAgICAg ICBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FU RV9IV1MoYnVzX2NlX2NsaywgImJ1cy1jZSIsIGFoYl9od3MsCj4+Pj4gKyAgIDB4NjhjLCBCSVQo MCkgfCBCSVQoMSksIDApOyAgCj4+PiAKPj4+IAo+Pj4gKHJldmlld2VkIHRpbGwgaGVyZSwgZm9y IG5vdywgdG8ga2VlcCBteSBzYW5pdHkuIFNraXBwaW5nIGRvd24gdG8KPj4+IGJlbG93LCB3aGVy ZSB0aGVyZSBhcmUgbW9yZSBsb3ctaGFuZ2luZyBmcnVpdHMgYW5kIGJpdHMgdGhhdCBjYW4gYmUK Pj4+IGNoZWNrZWQgbW9yZSBzeXN0ZW1hdGljYWxseSkKPj4+IAo+Pj4+ICsKPj4+PiArc3RhdGlj IGNvbnN0IHN0cnVjdCBjbGtfaHcgKnZlX3BhcmVudHNbXSA9IHsKPj4+PiArICZwbGxfcGVyaXBo XzMwME1fY2xrLmh3LAo+Pj4+ICsgJnBsbF9wZXJpcGhfNDAwTV9jbGsuaHcsCj4+Pj4gKyAmcGxs X3BlcmlwaF80ODBNX2Nsay5jb21tb24uaHcsCj4+Pj4gKyAmcGxsX25wdV80eF9jbGsuY29tbW9u Lmh3LAo+Pj4+ICsgJnBsbF92aWRlb180eF9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgJnBsbF9jc2lf NHhfY2xrLmNvbW1vbi5odywKPj4+PiArfTsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXX1dJ VEhfTVVYX0dBVEUodmVfY2xrLCAidmUiLCB2ZV9wYXJlbnRzLCAweDY5MCwKPj4+PiArICAgICAw LCA1LCAvKiBNICovCj4+Pj4gKyAgICAgMjQsIDMsIC8qIG11eCAqLwo+Pj4+ICsgICAgIEJJVCgz MSksIC8qIGdhdGUgKi8KPj4+PiArICAgICBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPj4+PiArCj4+ Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX3ZlX2NsaywgImJ1cy12ZSIsIGFoYl9o d3MsCj4+Pj4gKyAgIDB4NjljLCBCSVQoMCksIDApOwo+Pj4+ICsKPj4+PiArCj4+Pj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICpucHVfcGFyZW50c1tdID0gewo+Pj4+ICsgJnBsbF9wZXJp cGhfNDgwTV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgJnBsbF9wZXJpcGhfNjAwTV9jbGsuaHcsCj4+ Pj4gKyAmcGxsX3BlcmlwaF84MDBNX2Nsay5jb21tb24uaHcsCj4+Pj4gKyAmcGxsX25wdV80eF9j bGsuY29tbW9uLmh3LAo+Pj4+ICt9Owo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01fSFdfV0lUSF9N VVhfR0FURShucHVfY2xrLCAibnB1IiwgbnB1X3BhcmVudHMsIDB4NmUwLAo+Pj4+ICsgICAgIDAs IDUsIC8qIE0gKi8KPj4+PiArICAgICAyNCwgMywgLyogbXV4ICovCj4+Pj4gKyAgICAgQklUKDMx KSwgLyogZ2F0ZSAqLwo+Pj4+ICsgICAgIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0ND VV9HQVRFX0hXUyhidXNfbnB1X2NsaywgImJ1cy1ucHUiLCBhaGJfaHdzLAo+Pj4+ICsgICAweDZl YywgQklUKDApLCAwKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVz X2RtYV9jbGssICJidXMtZG1hIiwgYWhiX2h3cywKPj4+PiArICAgMHg3MGMsIEJJVCgwKSwgMCk7 Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19tc2dib3gwX2Nsaywg ImJ1cy1tc2dib3gwIiwgYWhiX2h3cywKPj4+PiArICAgMHg3MWMsIEJJVCgwKSwgMCk7Cj4+Pj4g K3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX21zZ2JveDFfY2xrLCAiYnVzLW1zZ2JveDEi LCBhaGJfaHdzLAo+Pj4+ICsgICAweDcxYywgQklUKDEpLCAwKTsKPj4+PiArCj4+Pj4gK3N0YXRp YyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX3NwaW5sb2NrX2NsaywgImJ1cy1zcGlubG9jayIsIGFo Yl9od3MsCj4+Pj4gKyAgIDB4NzJjLCBCSVQoMCksIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNV TlhJX0NDVV9HQVRFX0hXUyhidXNfaHN0aW1lcl9jbGssICJidXMtaHN0aW1lciIsIGFoYl9od3Ms Cj4+Pj4gKyAgIDB4NzNjLCBCSVQoMCksIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0ND VV9HQVRFX0RBVEEoYXZzX2NsaywgImF2cyIsIG9zYzI0TSwKPj4+PiArICAgIDB4NzQwLCBCSVQo MzEpLCAwKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX2RiZ19j bGssICJidXMtZGJnIiwgYWhiX2h3cywKPj4+PiArICAgMHg3OGMsIEJJVCgwKSwgMCk7Cj4+Pj4g Kwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19wd21fY2xrLCAiYnVzLXB3bSIs IGFwYjBfaHdzLAo+Pj4+ICsgICAweDdhYywgQklUKDApLCAwKTsKPj4+PiArCj4+Pj4gK3N0YXRp YyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX2lvbW11X2NsaywgImJ1cy1pb21tdSIsIGFoYl9od3Ms Cj4+Pj4gKyAgIDB4N2JjLCBCSVQoMCksIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIGNvbnN0IHN0 cnVjdCBjbGtfaHcgKmRyYW1fcGFyZW50c1tdID0gewo+Pj4+ICsgJnBsbF9kZHJfY2xrLmNvbW1v bi5odywKPj4+PiArICZwbGxfcGVyaXBoXzJ4X2Nsay5jb21tb24uaHcsCj4+Pj4gKyAmcGxsX3Bl cmlwaF84MDBNX2Nsay5jb21tb24uaHcsCj4+Pj4gK307Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1Vf TVBfSFdfV0lUSF9NVVhfR0FURShkcmFtX2NsaywgImRyYW0iLCBkcmFtX3BhcmVudHMsIDB4ODAw LAo+Pj4+ICsgICAgICAwLCA1LCAvKiBNICovCj4+Pj4gKyAgICAgIDgsIDIsIC8qIFAgKi8KPj4+ PiArICAgICAgMjQsIDMsIC8qIG11eCAqLwo+Pj4+ICsgICAgICBCSVQoMzEpLCBDTEtfSVNfQ1JJ VElDQUwpOwo+Pj4+ICsKPj4+PiArc3RhdGljIENMS19GSVhFRF9GQUNUT1JfSFcobWJ1c19jbGss ICJtYnVzIiwKPj4+PiArICAgICZkcmFtX2Nsay5jb21tb24uaHcsIDQsIDEsIDApOwo+Pj4+ICsK Pj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfaHcgKm1idXNfaHdzW10gPSB7ICZtYnVzX2Ns ay5odyB9Owo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhtYnVzX2RtYV9j bGssICJtYnVzLWRtYSIsIG1idXNfaHdzLAo+Pj4+ICsgICAweDgwNCwgQklUKDApLCAwKTsKPj4+ PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhtYnVzX3ZlX2NsaywgIm1idXMtdmUiLCBtYnVz X2h3cywKPj4+PiArICAgMHg4MDQsIEJJVCgxKSwgMCk7Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1Vf R0FURV9IV1MobWJ1c19jZV9jbGssICJtYnVzLWNlIiwgbWJ1c19od3MsCj4+Pj4gKyAgIDB4ODA0 LCBCSVQoMiksIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKG1idXNfY3NpX2Ns aywgIm1idXMtY3NpIiwgbWJ1c19od3MsCj4+Pj4gKyAgIDB4ODA0LCBCSVQoOCksIDApOwo+Pj4+ ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKG1idXNfaXNwX2NsaywgIm1idXMtaXNwIiwgbWJ1 c19od3MsCj4+Pj4gKyAgIDB4ODA0LCBCSVQoOSksIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NV X0dBVEVfSFdTKG1idXNfZzJkX2NsaywgIm1idXMtZzJkIiwgbWJ1c19od3MsCj4+Pj4gKyAgIDB4 ODA0LCBCSVQoMTApLCAwKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1Mo YnVzX2RyYW1fY2xrLCAiYnVzLWRyYW0iLCBhaGJfaHdzLAo+Pj4+ICsgICAweDgwYywgQklUKDAp LCBDTEtfSVNfQ1JJVElDQUwpOwo+Pj4+ICsKPj4+PiArCj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgY2xrX3BhcmVudF9kYXRhIG1tYzBfbW1jMV9wYXJlbnRzW10gPSB7Cj4+Pj4gKyB7IC5md19u YW1lID0gImhvc2MiIH0sCj4+Pj4gKyB7IC5odyA9ICZwbGxfcGVyaXBoXzQwME1fY2xrLmh3LCB9 LAo+Pj4+ICsgeyAuaHcgPSAmcGxsX3BlcmlwaF8zMDBNX2Nsay5odywgfSwKPj4+PiArfTsKPj4+ PiArc3RhdGljIFNVTlhJX0NDVV9NUF9EQVRBX1dJVEhfTVVYX0dBVEUobW1jMF9jbGssICJtbWMw IiwgbW1jMF9tbWMxX3BhcmVudHMsIDB4ODMwLAo+Pj4+ICsgICAgICAgIDAsIDQsIC8qIE0gKi8K Pj4+PiArICAgICAgICA4LCAyLCAvKiBQICovCj4+Pj4gKyAgICAgICAgMjQsIDMsIC8qIG11eCAq Lwo+Pj4+ICsgICAgICAgIEJJVCgzMSksIC8qIGdhdGUgKi8KPj4+PiArICAgICAgICAwKTsKPj4+ PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVBfREFUQV9XSVRIX01VWF9HQVRFKG1tYzFfY2xr LCAibW1jMSIsIG1tYzBfbW1jMV9wYXJlbnRzLCAweDgzNCwKPj4+PiArICAgICAgICAwLCA0LCAv KiBNICovCj4+Pj4gKyAgICAgICAgOCwgMiwgLyogUCAqLwo+Pj4+ICsgICAgICAgIDI0LCAzLCAv KiBtdXggKi8KPj4+PiArICAgICAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4+Pj4gKyAgICAgICAg MCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSBtbWMy X3BhcmVudHNbXSA9IHsKPj4+PiArIHsgLmZ3X25hbWUgPSAiaG9zYyIgfSwKPj4+PiArIHsgLmh3 ID0gJnBsbF9wZXJpcGhfNjAwTV9jbGsuaHcsIH0sCj4+Pj4gKyB7IC5odyA9ICZwbGxfcGVyaXBo XzQwME1fY2xrLmh3LCB9LAo+Pj4+ICt9Owo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01QX0RBVEFf V0lUSF9NVVhfR0FURShtbWMyX2NsaywgIm1tYzIiLCBtbWMyX3BhcmVudHMsIDB4ODM4LAo+Pj4+ ICsgICAgICAgIDAsIDQsIC8qIE0gKi8KPj4+PiArICAgICAgICA4LCAyLCAvKiBQICovCj4+Pj4g KyAgICAgICAgMjQsIDMsIC8qIG11eCAqLwo+Pj4+ICsgICAgICAgIEJJVCgzMSksIC8qIGdhdGUg Ki8KPj4+PiArICAgICAgICAwKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9I V1MoYnVzX21tYzBfY2xrLCAiYnVzLW1tYzAiLCBhaGJfaHdzLAo+Pj4+ICsgICAweDg0YywgQklU KDApLCAwKTsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfbW1jMV9jbGssICJi dXMtbW1jMSIsIGFoYl9od3MsCj4+Pj4gKyAgIDB4ODRjLCBCSVQoMSksIDApOwo+Pj4+ICtzdGF0 aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19tbWMyX2NsaywgImJ1cy1tbWMyIiwgYWhiX2h3cywK Pj4+PiArICAgMHg4NGMsIEJJVCgyKSwgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NV X0dBVEVfSFdTKGJ1c191YXJ0MF9jbGssICJidXMtdWFydDAiLCBhcGIxX2h3cywKPj4+PiArICAg MHg5MGMsIEJJVCgwKSwgMCk7Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX3Vh cnQxX2NsaywgImJ1cy11YXJ0MSIsIGFwYjFfaHdzLAo+Pj4+ICsgICAweDkwYywgQklUKDEpLCAw KTsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfdWFydDJfY2xrLCAiYnVzLXVh cnQyIiwgYXBiMV9od3MsCj4+Pj4gKyAgIDB4OTBjLCBCSVQoMiksIDApOwo+Pj4+ICtzdGF0aWMg U1VOWElfQ0NVX0dBVEVfSFdTKGJ1c191YXJ0M19jbGssICJidXMtdWFydDMiLCBhcGIxX2h3cywK Pj4+PiArICAgMHg5MGMsIEJJVCgzKSwgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NV X0dBVEVfSFdTKGJ1c19pMmMwX2NsaywgImJ1cy1pMmMwIiwgYXBiMV9od3MsCj4+Pj4gKyAgIDB4 OTFjLCBCSVQoMCksIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19pMmMx X2NsaywgImJ1cy1pMmMxIiwgYXBiMV9od3MsCj4+Pj4gKyAgIDB4OTFjLCBCSVQoMSksIDApOwo+ Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19pMmMyX2NsaywgImJ1cy1pMmMyIiwg YXBiMV9od3MsCj4+Pj4gKyAgIDB4OTFjLCBCSVQoMiksIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElf Q0NVX0dBVEVfSFdTKGJ1c19pMmMzX2NsaywgImJ1cy1pMmMzIiwgYXBiMV9od3MsCj4+Pj4gKyAg IDB4OTFjLCBCSVQoMyksIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19p MmM0X2NsaywgImJ1cy1pMmM0IiwgYXBiMV9od3MsCj4+Pj4gKyAgIDB4OTFjLCBCSVQoNCksIDAp Owo+Pj4+ICsKPj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgc3BpX3Bh cmVudHNbXSA9IHsKPj4+PiArIHsgLmZ3X25hbWUgPSAiaG9zYyIgfSwKPj4+PiArIHsgLmh3ID0g JnBsbF9wZXJpcGhfMzAwTV9jbGsuaHcsIH0sCj4+Pj4gKyB7IC5odyA9ICZwbGxfcGVyaXBoXzIw ME1fY2xrLmh3LCB9LAo+Pj4+ICt9Owo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9NUF9E QVRBX1dJVEhfTVVYX0dBVEUoc3BpMF9jbGssICJzcGkwIiwgc3BpX3BhcmVudHMsIDB4OTQwLAo+ Pj4+ICsgICAgICAgIDAsIDQsIC8qIE0gKi8KPj4+PiArICAgICAgICA4LCAyLCAvKiBQICovCj4+ Pj4gKyAgICAgICAgMjQsIDMsIC8qIG11eCAqLwo+Pj4+ICsgICAgICAgIEJJVCgzMSksIC8qIGdh dGUgKi8KPj4+PiArICAgICAgICAwKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVBf REFUQV9XSVRIX01VWF9HQVRFKHNwaTFfY2xrLCAic3BpMSIsIHNwaV9wYXJlbnRzLCAweDk0NCwK Pj4+PiArICAgICAgICAwLCA0LCAvKiBNICovCj4+Pj4gKyAgICAgICAgOCwgMiwgLyogUCAqLwo+ Pj4+ICsgICAgICAgIDI0LCAzLCAvKiBtdXggKi8KPj4+PiArICAgICAgICBCSVQoMzEpLCAvKiBn YXRlICovCj4+Pj4gKyAgICAgICAgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01Q X0RBVEFfV0lUSF9NVVhfR0FURShzcGkyX2NsaywgInNwaTIiLCBzcGlfcGFyZW50cywgMHg5NDgs Cj4+Pj4gKyAgICAgICAgMCwgNCwgLyogTSAqLwo+Pj4+ICsgICAgICAgIDgsIDIsIC8qIFAgKi8K Pj4+PiArICAgICAgICAyNCwgMywgLyogbXV4ICovCj4+Pj4gKyAgICAgICAgQklUKDMxKSwgLyog Z2F0ZSAqLwo+Pj4+ICsgICAgICAgIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9N UF9EQVRBX1dJVEhfTVVYX0dBVEUoc3BpM19jbGssICJzcGkzIiwgc3BpX3BhcmVudHMsIDB4OTRj LAo+Pj4+ICsgICAgICAgIDAsIDQsIC8qIE0gKi8KPj4+PiArICAgICAgICA4LCAyLCAvKiBQICov Cj4+Pj4gKyAgICAgICAgMjQsIDMsIC8qIG11eCAqLwo+Pj4+ICsgICAgICAgIEJJVCgzMSksIC8q IGdhdGUgKi8KPj4+PiArICAgICAgICAwKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1Vf R0FURV9IV1MoYnVzX3NwaTBfY2xrLCAiYnVzLXNwaTAiLCBhaGJfaHdzLAo+Pj4+ICsgICAweDk2 YywgQklUKDApLCAwKTsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfc3BpMV9j bGssICJidXMtc3BpMSIsIGFoYl9od3MsCj4+Pj4gKyAgIDB4OTZjLCBCSVQoMSksIDApOwo+Pj4+ ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19zcGkyX2NsaywgImJ1cy1zcGkyIiwgYWhi X2h3cywKPj4+PiArICAgMHg5NmMsIEJJVCgyKSwgMCk7Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1Vf R0FURV9IV1MoYnVzX3NwaTNfY2xrLCAiYnVzLXNwaTMiLCBhaGJfaHdzLAo+Pj4+ICsgICAweDk2 YywgQklUKDMpLCAwKTsKPj4+PiArCj4+Pj4gKwo+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNs a19wYXJlbnRfZGF0YSBzcGlmX3BhcmVudHNbXSA9IHsKPj4+PiArIHsgLmZ3X25hbWUgPSAiaG9z YyIgfSwKPj4+PiArIHsgLmh3ID0gJnBsbF9wZXJpcGhfNDAwTV9jbGsuaHcsIH0sCj4+Pj4gKyB7 IC5odyA9ICZwbGxfcGVyaXBoXzMwME1fY2xrLmh3LCB9LAo+Pj4+ICt9Owo+Pj4+ICsKPj4+PiAr c3RhdGljIFNVTlhJX0NDVV9NX0RBVEFfV0lUSF9NVVhfR0FURShzcGlmX2NsaywgInNwaWYiLCBz cGlmX3BhcmVudHMsIDB4MDk1MCwKPj4+PiArIDAsIDQsICAvKiBNICovCj4+Pj4gKyAyNCwgMywg IC8qIG11eCAqLwo+Pj4+ICsgQklUKDMxKSwgLyogZ2F0ZSAqLwo+Pj4+ICsgQ0xLX1NFVF9SQVRF X1BBUkVOVCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19zcGlm X2NsaywgImJ1cy1zcGlmIiwgYWhiX2h3cywKPj4+PiArICAgICAweDA5NmMsIEJJVCg0KSwgMCk7 Cj4+Pj4gKwo+Pj4+ICsKPj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfaHcgKnBsbF9wZXJp cGhfMTUwTV9od3NbXSA9IHsgJnBsbF9wZXJpcGhfMTUwTV9jbGsuaHcgfTsKPj4+PiArc3RhdGlj IFNVTlhJX0NDVV9HQVRFX0hXU19XSVRIX1BSRURJVihlbWFjXzI1TV9jbGssICJlbWFjLTI1TSIs IHBsbF9wZXJpcGhfMTUwTV9od3MsCj4+Pj4gKyAgICAgICAweDk3MCwgQklUKDMxKSB8IEJJVCgz MCksIDYsIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfZW1h Y19jbGssICJidXMtZW1hYyIsIGFoYl9od3MsCj4+Pj4gKyAgIDB4OTdjLCBCSVQoMCksIDApOwo+ Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfZ3BhZGNfY2xrLCAiYnVz LWdwYWRjIiwgYXBiMF9od3MsCj4+Pj4gKyAgIDB4OWVjLCBCSVQoMCksIDApOwo+Pj4+ICsKPj4+ PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfdGhzX2NsaywgImJ1cy10aHMiLCBhaGJf aHdzLAo+Pj4+ICsgICAweDlmYywgQklUKDApLCAwKTsKPj4+PiArCj4+Pj4gKwo+Pj4+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGNsa19odyAqYXVkaW9fcGFyZW50c1tdID0gewo+Pj4+ICsgJnBsbF9h dWRpb18xeF9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgJnBsbF9hdWRpb180eF9jbGsuY29tbW9uLmh3 LAo+Pj4+ICt9Owo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXX1dJVEhfTVVYX0dB VEUoaTJzMF9jbGssICJpMnMwIiwgYXVkaW9fcGFyZW50cywgMHhhMTAsCj4+Pj4gKyAgICAgIDAs IDQsIC8qIE0gKi8KPj4+PiArICAgICAgMjQsIDEsIC8qIG11eCAqLwo+Pj4+ICsgICAgICBCSVQo MzEpLCAvKiBnYXRlICovCj4+Pj4gKyAgICAgIENMS19TRVRfUkFURV9QQVJFTlQpOwo+Pj4+ICsK Pj4+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXX1dJVEhfTVVYX0dBVEUoaTJzMV9jbGssICJpMnMx IiwgYXVkaW9fcGFyZW50cywgMHhhMTQsCj4+Pj4gKyAgICAgIDAsIDQsIC8qIE0gKi8KPj4+PiAr ICAgICAgMjQsIDEsIC8qIG11eCAqLwo+Pj4+ICsgICAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4+ Pj4gKyAgICAgIENMS19TRVRfUkFURV9QQVJFTlQpOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJ X0NDVV9HQVRFX0hXUyhidXNfaTJzMV9jbGssICJidXMtaTJzMSIsIGFoYl9od3MsCj4+Pj4gKyAg IDB4YTIwLCBCSVQoMSksIDApOwo+Pj4+ICsgIAo+Pj4gCj4+PiBKdXN0IGEgbml0LCBidXQgdGhv c2UgdHdvIGhlcmUgIHYgIGFuZCBeICBzZWVtIHRvIGJlIHN3YXBwZWQuCj4+PiAKPj4gCj4+IFRo YW5rcy4KPj4gCj4+PiBGb3IgdGhlIHJlY29yZHM6IEkgZXh0cmFjdGVkIHRoZSBidXMgZ2F0ZXMg YW5kIG1hc3NhZ2VkIHRoZW0gd2l0aCBzb21lCj4+PiByZWdleHBzIHRvIGJyaW5nIHRoZW0gaW50 byBhIHNoYXBlIHdoZXJlIHJldmlldyBpcyBtb3JlIGZlYXNpYmxlLgo+Pj4gVGhleSBsb29rIGFs cmlnaHQgdG8gbWUuIEkgZGlkbid0IGxvb2sgYXQgdGhlIHJlc3BlY3RpdmUgbW9kIGNsb2NrcyBp bgo+Pj4gZGV0YWlsLCB0aG91Z2guCj4+PiAKPj4+IAo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dB VEVfSFdTKGJ1c19pMnMwX2NsaywgImJ1cy1pMnMwIiwgYWhiX2h3cywKPj4+PiArICAgMHhhMjAs IEJJVCgwKSwgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01fSFdfV0lUSF9NVVhf R0FURShkbWljX2NsaywgImRtaWMiLCBhdWRpb19wYXJlbnRzLCAweGE0MCwKPj4+PiArICAgICAg MCwgNCwgLyogTSAqLwo+Pj4+ICsgICAgICAyNCwgMSwgLyogbXV4ICovCj4+Pj4gKyAgICAgIEJJ VCgzMSksIC8qIGdhdGUgKi8KPj4+PiArICAgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4+Pj4g Kwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19kbWljX2NsaywgImJ1cy1kbWlj IiwgYWhiX2h3cywKPj4+PiArICAgMHhhNGMsIEJJVCgwKSwgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0 aWMgU1VOWElfQ0NVX01fSFdfV0lUSF9NVVhfR0FURShhdWRpb19jb2RlY19kYWNfY2xrLCAiYXVk aW8tY29kZWMtZGFjIiwgYXVkaW9fcGFyZW50cywgMHhhNTAsICAKPj4+IAo+Pj4gSSB0aGluayB5 b3Ugc2hvdWxkIGJyZWFrIHRoZSBsaW5lIGFib3ZlLCB0byBzdGF5IHdpdGhpbiB0aGUgODAgY2hh cgo+Pj4gbGltaXQuCj4+PiAKPj4gCj4+IE9rLgo+PiAKPj4+IEZhc3QgZm9yd2FyZGluZyB0byB0 aGUgY2N1X3Jlc2V0cyBhcnJheSAuLi4KPj4+IAo+Pj4+ICsgICAgICAwLCA0LCAvKiBNICovCj4+ Pj4gKyAgICAgIDI0LCAxLCAvKiBtdXggKi8KPj4+PiArICAgICAgQklUKDMxKSwgLyogZ2F0ZSAq Lwo+Pj4+ICsgICAgICBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBT VU5YSV9DQ1VfTV9IV19XSVRIX01VWF9HQVRFKGF1ZGlvX2NvZGVjX2FkY19jbGssICJhdWRpby1j b2RlYy1hZGMiLCBhdWRpb19wYXJlbnRzLCAweGE1NCwKPj4+PiArICAgICAgMCwgNCwgLyogTSAq Lwo+Pj4+ICsgICAgICAyNCwgMSwgLyogbXV4ICovCj4+Pj4gKyAgICAgIEJJVCgzMSksIC8qIGdh dGUgKi8KPj4+PiArICAgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0 aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19hdWRpb19jb2RlY19jbGssICJidXMtYXVkaW8tY29k ZWMiLCBhcGIwX2h3cywKPj4+PiArICAgMHhhNWMsIEJJVCgwKSwgMCk7Cj4+Pj4gKwo+Pj4+ICsv Kgo+Pj4+ICsgKiBUaGVyZSBhcmUgT0hDSSAxMk0gY2xvY2sgc291cmNlIHNlbGVjdGlvbiBiaXRz IGZvciB0aGUgVVNCIDIuMCBwb3J0Lgo+Pj4+ICsgKiBXZSB3aWxsIGZvcmNlIHRoZW0gdG8gMCAo MTJNIGRpdmlkZWQgZnJvbSA0OE0pLgo+Pj4+ICsgKi8KPj4+PiArc3RhdGljIENMS19GSVhFRF9G QUNUT1JfRldfTkFNRShvc2MxMk1fY2xrLCAib3NjMTJNIiwgImhvc2MiLCAyLCAxLCAwKTsKPj4+ PiArCj4+Pj4gKyNkZWZpbmUgU1VOOElfVjg1M19VU0JfQ0xLX1JFRyAweGE3MAo+Pj4+ICsKPj4+ PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKHVzYl9vaGNpX2NsaywgInVzYiIsICJvc2MxMk0iLCAw eDBhNzAsIEJJVCgzMSksIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hX UyhidXNfb2hjaV9jbGssICJidXMtb2hjaSIsIGFoYl9od3MsIDB4YThjLCBCSVQoMCksIDApOwo+ Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19laGNpX2NsaywgImJ1cy1laGNpIiwg YWhiX2h3cywgMHhhOGMsIEJJVCg0KSwgMCk7Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9I V1MoYnVzX290Z19jbGssICJidXMtb3RnIiwgYWhiX2h3cywgMHhhOGMsIEJJVCg4KSwgMCk7Cj4+ Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19kcHNzX3RvcF9jbGssICJi dXMtZHBzcy10b3AiLCBhaGJfaHdzLAo+Pj4+ICsgICAweGFiYywgQklUKDApLCAwKTsKPj4+PiAr Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSBtaXBpX2Rz aV9wYXJlbnRzW10gPSB7Cj4+Pj4gKyB7IC5md19uYW1lID0gImhvc2MiIH0sCj4+Pj4gKyB7IC5o dyA9ICZwbGxfcGVyaXBoXzIwME1fY2xrLmh3IH0sCj4+Pj4gKyB7IC5odyA9ICZwbGxfcGVyaXBo XzE1ME1fY2xrLmh3IH0sCj4+Pj4gK307Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9EQVRBX1dJ VEhfTVVYX0dBVEUobWlwaV9kc2lfY2xrLCAibWlwaS1kc2kiLCBtaXBpX2RzaV9wYXJlbnRzLCAw eGIyNCwKPj4+PiArICAgICAgIDAsIDQsIC8qIE0gKi8KPj4+PiArICAgICAgIDI0LCAzLCAvKiBt dXggKi8KPj4+PiArICAgICAgIEJJVCgzMSksIC8qIGdhdGUgKi8KPj4+PiArICAgICAgIENMS19T RVRfUkFURV9QQVJFTlQpOwo+Pj4+ICsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhi dXNfbWlwaV9kc2lfY2xrLCAiYnVzLW1pcGktZHNpIiwgYWhiX2h3cywKPj4+PiArICAgMHhiNGMs IEJJVCgwKSwgMCk7Cj4+Pj4gKwo+Pj4+ICsKPj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtf aHcgKnRjb25fbGNkX3BhcmVudHNbXSA9IHsKPj4+PiArICZwbGxfdmlkZW9fNHhfY2xrLmNvbW1v bi5odywKPj4+PiArICZwbGxfcGVyaXBoXzJ4X2Nsay5jb21tb24uaHcsCj4+Pj4gKyAmcGxsX2Nz aV80eF9jbGsuY29tbW9uLmh3LAo+Pj4+ICt9Owo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01QX0hX X1dJVEhfTVVYX0dBVEUodGNvbl9sY2RfY2xrLCAidGNvbi1sY2QiLCB0Y29uX2xjZF9wYXJlbnRz LCAweGI2MCwKPj4+PiArICAgICAgMCwgNCwgLyogTSAqLwo+Pj4+ICsgICAgICA4LCAyLCAvKiBQ ICovCj4+Pj4gKyAgICAgIDI0LCAzLCAvKiBtdXggKi8KPj4+PiArICAgICAgQklUKDMxKSwgLyog Z2F0ZSAqLwo+Pj4+ICsgICAgICBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPj4+PiArCj4+Pj4gK3N0 YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX3Rjb25fbGNkX2NsaywgImJ1cy10Y29uLWxjZCIs IGFoYl9od3MsCj4+Pj4gKyAgIDB4YjdjLCBCSVQoMCksIDApOwo+Pj4+ICsKPj4+PiArCj4+Pj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICpjc2lfdG9wX3BhcmVudHNbXSA9IHsKPj4+PiAr ICZwbGxfcGVyaXBoXzMwME1fY2xrLmh3LAo+Pj4+ICsgJnBsbF9wZXJpcGhfNDAwTV9jbGsuaHcs Cj4+Pj4gKyAmcGxsX3ZpZGVvXzR4X2Nsay5jb21tb24uaHcsCj4+Pj4gKyAmcGxsX2NzaV80eF9j bGsuY29tbW9uLmh3LAo+Pj4+ICt9Owo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01fSFdfV0lUSF9N VVhfR0FURShjc2lfdG9wX2NsaywgImNzaS10b3AiLCBjc2lfdG9wX3BhcmVudHMsIDB4YzA0LAo+ Pj4+ICsgICAgIDAsIDUsIC8qIE0gKi8KPj4+PiArICAgICAyNCwgMywgLyogbXV4ICovCj4+Pj4g KyAgICAgQklUKDMxKSwgLyogZ2F0ZSAqLwo+Pj4+ICsgICAgIDApOwo+Pj4+ICsKPj4+PiArCj4+ Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIGNzaV9tY2xrX3BhcmVudHNb XSA9IHsKPj4+PiArIHsgLmZ3X25hbWUgPSAiaG9zYyIgfSwKPj4+PiArIHsgLmh3ID0gJnBsbF9j c2lfNHhfY2xrLmNvbW1vbi5odyB9LAo+Pj4+ICsgeyAuaHcgPSAmcGxsX3ZpZGVvXzR4X2Nsay5j b21tb24uaHcgfSwKPj4+PiArIHsgLmh3ID0gJnBsbF9wZXJpcGhfMnhfY2xrLmNvbW1vbi5odyB9 LAo+Pj4+ICt9Owo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01fREFUQV9XSVRIX01VWF9HQVRFKGNz aV9tY2xrMF9jbGssICJjc2ktbWNsazAiLCBjc2lfbWNsa19wYXJlbnRzLCAweGMwOCwKPj4+PiAr ICAgICAgIDAsIDUsIC8qIE0gKi8KPj4+PiArICAgICAgIDI0LCAzLCAvKiBtdXggKi8KPj4+PiAr ICAgICAgIEJJVCgzMSksIC8qIGdhdGUgKi8KPj4+PiArICAgICAgIDApOwo+Pj4+ICsKPj4+PiAr c3RhdGljIFNVTlhJX0NDVV9NX0RBVEFfV0lUSF9NVVhfR0FURShjc2lfbWNsazFfY2xrLCAiY3Np LW1jbGsxIiwgY3NpX21jbGtfcGFyZW50cywgMHhjMGMsCj4+Pj4gKyAgICAgICAwLCA1LCAvKiBN ICovCj4+Pj4gKyAgICAgICAyNCwgMywgLyogbXV4ICovCj4+Pj4gKyAgICAgICBCSVQoMzEpLCAv KiBnYXRlICovCj4+Pj4gKyAgICAgICAwKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1Vf TV9EQVRBX1dJVEhfTVVYX0dBVEUoY3NpX21jbGsyX2NsaywgImNzaS1tY2xrMiIsIGNzaV9tY2xr X3BhcmVudHMsIDB4YzEwLAo+Pj4+ICsgICAgICAgMCwgNSwgLyogTSAqLwo+Pj4+ICsgICAgICAg MjQsIDMsIC8qIG11eCAqLwo+Pj4+ICsgICAgICAgQklUKDMxKSwgLyogZ2F0ZSAqLwo+Pj4+ICsg ICAgICAgMCk7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19jc2lf Y2xrLCAiYnVzLWNzaSIsIGFoYl9od3MsCj4+Pj4gKyAgIDB4YzJjLCBCSVQoMCksIDApOwo+Pj4+ ICsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX3dpZWdhbmRfY2xr LCAiYnVzLXdpZWdhbmQiLCBhaGJfaHdzLAo+Pj4+ICsgICAweGM3YywgQklUKDApLCAwKTsKPj4+ PiArCj4+Pj4gKwo+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSByaXNj dl9wYXJlbnRzW10gPSB7Cj4+Pj4gKyB7IC5md19uYW1lID0gImhvc2MiIH0sCj4+Pj4gKyB7IC5m d19uYW1lID0gImxvc2MiIH0sCj4+Pj4gKyB7IC5md19uYW1lID0gImlvc2MiIH0sCj4+Pj4gKyB7 IC5odyA9ICZwbGxfcGVyaXBoXzYwME1fY2xrLmh3IH0sCj4+Pj4gKyB7IC5odyA9ICZwbGxfcGVy aXBoXzQ4ME1fY2xrLmNvbW1vbi5odyB9LAo+Pj4+ICsgeyAuaHcgPSAmcGxsX2NwdV9jbGsuY29t bW9uLmh3IH0sCj4+Pj4gK307Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9EQVRBX1dJVEhfTVVY KHJpc2N2X2NsaywgInJpc2N2LWNwdSIsIHJpc2N2X3BhcmVudHMsIDB4ZDAwLAo+Pj4+ICsgIDAs IDUsIC8qIE0gKi8KPj4+PiArICAyNCwgMywgLyogbXV4ICovCj4+Pj4gKyAgQ0xLX1NFVF9SQVRF X1BBUkVOVCk7Cj4+Pj4gKwo+Pj4+ICsvKiBUaGUgcmlzY3YtYXhpIGNsayBtdXN0IGJlIGRpdmlk ZWQgYnkgYXQgbGVhc3QgMi4gKi8KPj4+PiArc3RhdGljIHN0cnVjdCBjbGtfZGl2X3RhYmxlIHJp c2N2X2F4aV90YWJsZVtdID0gewo+Pj4+ICsgeyAudmFsID0gMSwgLmRpdiA9IDIgfSwKPj4+PiAr IHsgLnZhbCA9IDIsIC5kaXYgPSAzIH0sCj4+Pj4gKyB7IC52YWwgPSAzLCAuZGl2ID0gNCB9LAo+ Pj4+ICsgeyAvKiBTZW50aW5lbCAqLyB9Cj4+Pj4gK307Cj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1Vf RElWX1RBQkxFX0hXKHJpc2N2X2F4aV9jbGssICJyaXNjdi1heGkiLCAmcmlzY3ZfY2xrLmNvbW1v bi5odywKPj4+PiArICAgICAgIDB4ZDAwLCA4LCAyLCByaXNjdl9heGlfdGFibGUsIDApOwo+Pj4+ ICsKPj4+PiArCj4+Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MocmlzY3ZfY2ZnLCAicmlz Y3YtY2ZnIiwgYWhiX2h3cywKPj4+PiArICAweGQwYywgQklUKDApLCAwKTsKPj4+PiArCj4+Pj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICpwbGxfcGVyaXBoXzE2ME1faHdzW10gPSB7Cj4+ Pj4gKyAmcGxsX3BlcmlwaF8xNjBNX2Nsay5odywKPj4+PiArfTsKPj4+PiArCj4+Pj4gK3N0YXRp YyBTVU5YSV9DQ1VfR0FURV9EQVRBKGZhbm91dF8yNE1fY2xrLCAiZmFub3V0LTI0TSIsIG9zYzI0 TSwKPj4+PiArIDB4ZjMwLCBCSVQoMCksIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVf REFUQV9XSVRIX1BSRURJVihmYW5vdXRfMTJNX2NsaywgImZhbm91dC0xMk0iLCBvc2MyNE0sCj4+ Pj4gKyAweGYzMCwgQklUKDEpLCAyLCAwKTsKPj4+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hX U19XSVRIX1BSRURJVihmYW5vdXRfMTZNX2NsaywgImZhbm91dC0xNk0iLCBwbGxfcGVyaXBoXzE2 ME1faHdzLAo+Pj4+ICsgMHhmMzAsIEJJVCgyKSwgMTAsIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElf Q0NVX0dBVEVfSFdTX1dJVEhfUFJFRElWKGZhbm91dF8yNU1fY2xrLCAiZmFub3V0LTI1TSIsIHBs bF9wZXJpcGhfMTUwTV9od3MsCj4+Pj4gKyAweGYzMCwgQklUKDMpLCA2LCAwKTsKPj4+PiArCj4+ Pj4gKwo+Pj4+ICsKPj4+PiArLyogVGhpcyBjbG9jayBoYXMgYSBzZWNvbmQgZGl2aWRlciB0aGF0 IGlzIG5vdCBtb2RlbGxlZCBhbmQgZm9yY2VkIHRvIDAuICovCj4+Pj4gKyNkZWZpbmUgU1VOOElf Vjg1M19GQU5PVVRfMjdNX1JFRyAweGYzNAo+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19o dyAqZmFub3V0XzI3TV9wYXJlbnRzW10gPSB7Cj4+Pj4gKyAmcGxsX3ZpZGVvXzF4X2Nsay5odywK Pj4+PiArICZwbGxfY3NpX2Nsay5odywKPj4+PiArICZwbGxfcGVyaXBoXzMwME1fY2xrLmh3LAo+ Pj4+ICt9Owo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01fSFdfV0lUSF9NVVhfR0FURShmYW5vdXRf MjdNX2NsaywgImZhbm91dC0yN00iLCBmYW5vdXRfMjdNX3BhcmVudHMsIDB4ZjM0LAo+Pj4+ICsg ICAgIDAsIDUsIC8qIE0gKi8KPj4+PiArICAgICAyNCwgMiwgLyogbXV4ICovCj4+Pj4gKyAgICAg QklUKDMxKSwgLyogZ2F0ZSAqLwo+Pj4+ICsgICAgIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NV X01fSFdTX1dJVEhfR0FURShmYW5vdXRfcGNsa19jbGssICJmYW5vdXQtcGNsayIsIGFwYjBfaHdz LCAweGYzOCwKPj4+PiArICAgICAwLCA1LCAvKiBNICovCj4+Pj4gKyAgICAgQklUKDMxKSwgLyog Z2F0ZSAqLwo+Pj4+ICsgICAgIDApOwo+Pj4+ICsKPj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBj bGtfcGFyZW50X2RhdGEgZmFub3V0X3BhcmVudHNbXSA9IHsKPj4+PiArIHsgLmZ3X25hbWUgPSAi bG9zYyIgfSwKPj4+PiArIHsgLmh3ID0gJmZhbm91dF8xMk1fY2xrLmNvbW1vbi5odyB9LAo+Pj4+ ICsgeyAuaHcgPSAmZmFub3V0XzE2TV9jbGsuY29tbW9uLmh3IH0sCj4+Pj4gKyB7IC5odyA9ICZm YW5vdXRfMjRNX2Nsay5jb21tb24uaHcgfSwKPj4+PiArIHsgLmh3ID0gJmZhbm91dF8yNU1fY2xr LmNvbW1vbi5odyB9LAo+Pj4+ICsgeyAuaHcgPSAmZmFub3V0XzI3TV9jbGsuY29tbW9uLmh3IH0s Cj4+Pj4gKyB7IC5odyA9ICZmYW5vdXRfcGNsa19jbGsuY29tbW9uLmh3IH0sCj4+Pj4gK307Cj4+ Pj4gKwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01VWF9EQVRBX1dJVEhfR0FURShmYW5vdXQwX2Ns aywgImZhbm91dDAiLCBmYW5vdXRfcGFyZW50cywgMHhmM2MsCj4+Pj4gKyAgIDAsIDMsIC8qIG11 eCAqLwo+Pj4+ICsgICBCSVQoMjEpLCAvKiBnYXRlICovCj4+Pj4gKyAgIDApOwo+Pj4+ICtzdGF0 aWMgU1VOWElfQ0NVX01VWF9EQVRBX1dJVEhfR0FURShmYW5vdXQxX2NsaywgImZhbm91dDEiLCBm YW5vdXRfcGFyZW50cywgMHhmM2MsCj4+Pj4gKyAgIDMsIDMsIC8qIG11eCAqLwo+Pj4+ICsgICBC SVQoMjIpLCAvKiBnYXRlICovCj4+Pj4gKyAgIDApOwo+Pj4+ICtzdGF0aWMgU1VOWElfQ0NVX01V WF9EQVRBX1dJVEhfR0FURShmYW5vdXQyX2NsaywgImZhbm91dDIiLCBmYW5vdXRfcGFyZW50cywg MHhmM2MsCj4+Pj4gKyAgIDYsIDMsIC8qIG11eCAqLwo+Pj4+ICsgICBCSVQoMjMpLCAvKiBnYXRl ICovCj4+Pj4gKyAgIDApOwo+Pj4+ICsKPj4+PiArCj4+Pj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X2Nv bW1vbiAqc3VuOGlfdjg1M19jY3VfY2xrc1tdID0gewo+Pj4+ICsgJnBsbF9jcHVfY2xrLmNvbW1v biwKPj4+PiArICZwbGxfZGRyX2Nsay5jb21tb24sCj4+Pj4gKyAmcGxsX3BlcmlwaF80eF9jbGsu Y29tbW9uLAo+Pj4+ICsgJnBsbF9wZXJpcGhfMnhfY2xrLmNvbW1vbiwKPj4+PiArICZwbGxfcGVy aXBoXzgwME1fY2xrLmNvbW1vbiwKPj4+PiArICZwbGxfcGVyaXBoXzQ4ME1fY2xrLmNvbW1vbiwK Pj4+PiArICZwbGxfdmlkZW9fNHhfY2xrLmNvbW1vbiwKPj4+PiArICZwbGxfY3NpXzR4X2Nsay5j b21tb24sCj4+Pj4gKyAmcGxsX2F1ZGlvX2RpdjJfY2xrLmNvbW1vbiwKPj4+PiArICZwbGxfYXVk aW9fZGl2NV9jbGsuY29tbW9uLAo+Pj4+ICsgJnBsbF9hdWRpb180eF9jbGsuY29tbW9uLAo+Pj4+ ICsgJnBsbF9hdWRpb18xeF9jbGsuY29tbW9uLAo+Pj4+ICsgJnBsbF9ucHVfNHhfY2xrLmNvbW1v biwKPj4+PiArICZjcHVfY2xrLmNvbW1vbiwKPj4+PiArICZjcHVfYXhpX2Nsay5jb21tb24sCj4+ Pj4gKyAmY3B1X2FwYl9jbGsuY29tbW9uLAo+Pj4+ICsgJmFoYl9jbGsuY29tbW9uLAo+Pj4+ICsg JmFwYjBfY2xrLmNvbW1vbiwKPj4+PiArICZhcGIxX2Nsay5jb21tb24sCj4+Pj4gKyAmZGVfY2xr LmNvbW1vbiwKPj4+PiArICZidXNfZGVfY2xrLmNvbW1vbiwKPj4+PiArICZnMmRfY2xrLmNvbW1v biwKPj4+PiArICZidXNfZzJkX2Nsay5jb21tb24sCj4+Pj4gKyAmY2VfY2xrLmNvbW1vbiwKPj4+ PiArICZidXNfY2VfY2xrLmNvbW1vbiwKPj4+PiArICZ2ZV9jbGsuY29tbW9uLAo+Pj4+ICsgJmJ1 c192ZV9jbGsuY29tbW9uLAo+Pj4+ICsgJm5wdV9jbGsuY29tbW9uLAo+Pj4+ICsgJmJ1c19ucHVf Y2xrLmNvbW1vbiwKPj4+PiArICZidXNfZG1hX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX21zZ2Jv eDBfY2xrLmNvbW1vbiwKPj4+PiArICZidXNfbXNnYm94MV9jbGsuY29tbW9uLAo+Pj4+ICsgJmJ1 c19zcGlubG9ja19jbGsuY29tbW9uLAo+Pj4+ICsgJmJ1c19oc3RpbWVyX2Nsay5jb21tb24sCj4+ Pj4gKyAmYXZzX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX2RiZ19jbGsuY29tbW9uLAo+Pj4+ICsg JmJ1c19wd21fY2xrLmNvbW1vbiwKPj4+PiArICZidXNfaW9tbXVfY2xrLmNvbW1vbiwKPj4+PiAr ICZkcmFtX2Nsay5jb21tb24sCj4+Pj4gKyAmbWJ1c19kbWFfY2xrLmNvbW1vbiwKPj4+PiArICZt YnVzX3ZlX2Nsay5jb21tb24sCj4+Pj4gKyAmbWJ1c19jZV9jbGsuY29tbW9uLAo+Pj4+ICsgJm1i dXNfY3NpX2Nsay5jb21tb24sCj4+Pj4gKyAmbWJ1c19pc3BfY2xrLmNvbW1vbiwKPj4+PiArICZt YnVzX2cyZF9jbGsuY29tbW9uLAo+Pj4+ICsgJmJ1c19kcmFtX2Nsay5jb21tb24sCj4+Pj4gKyAm bW1jMF9jbGsuY29tbW9uLAo+Pj4+ICsgJm1tYzFfY2xrLmNvbW1vbiwKPj4+PiArICZtbWMyX2Ns ay5jb21tb24sCj4+Pj4gKyAmYnVzX21tYzBfY2xrLmNvbW1vbiwKPj4+PiArICZidXNfbW1jMV9j bGsuY29tbW9uLAo+Pj4+ICsgJmJ1c19tbWMyX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX3VhcnQw X2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX3VhcnQxX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX3Vh cnQyX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX3VhcnQzX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVz X2kyYzBfY2xrLmNvbW1vbiwKPj4+PiArICZidXNfaTJjMV9jbGsuY29tbW9uLAo+Pj4+ICsgJmJ1 c19pMmMyX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX2kyYzNfY2xrLmNvbW1vbiwKPj4+PiArICZi dXNfaTJjNF9jbGsuY29tbW9uLAo+Pj4+ICsgJnNwaTBfY2xrLmNvbW1vbiwKPj4+PiArICZzcGkx X2Nsay5jb21tb24sCj4+Pj4gKyAmc3BpMl9jbGsuY29tbW9uLAo+Pj4+ICsgJnNwaTNfY2xrLmNv bW1vbiwKPj4+PiArICZidXNfc3BpMF9jbGsuY29tbW9uLAo+Pj4+ICsgJmJ1c19zcGkxX2Nsay5j b21tb24sCj4+Pj4gKyAmYnVzX3NwaTJfY2xrLmNvbW1vbiwKPj4+PiArICZidXNfc3BpM19jbGsu Y29tbW9uLAo+Pj4+ICsgJnNwaWZfY2xrLmNvbW1vbiwKPj4+PiArICZidXNfc3BpZl9jbGsuY29t bW9uLAo+Pj4+ICsgJmVtYWNfMjVNX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX2VtYWNfY2xrLmNv bW1vbiwKPj4+PiArICZidXNfZ3BhZGNfY2xrLmNvbW1vbiwKPj4+PiArICZidXNfdGhzX2Nsay5j b21tb24sCj4+Pj4gKyAmdXNiX29oY2lfY2xrLmNvbW1vbiwKPj4+PiArICZidXNfb2hjaV9jbGsu Y29tbW9uLAo+Pj4+ICsgJmJ1c19laGNpX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX290Z19jbGsu Y29tbW9uLAo+Pj4+ICsgJmkyczBfY2xrLmNvbW1vbiwKPj4+PiArICZpMnMxX2Nsay5jb21tb24s Cj4+Pj4gKyAmYnVzX2kyczBfY2xrLmNvbW1vbiwKPj4+PiArICZidXNfaTJzMV9jbGsuY29tbW9u LAo+Pj4+ICsgJmRtaWNfY2xrLmNvbW1vbiwKPj4+PiArICZidXNfZG1pY19jbGsuY29tbW9uLAo+ Pj4+ICsgJmF1ZGlvX2NvZGVjX2RhY19jbGsuY29tbW9uLAo+Pj4+ICsgJmF1ZGlvX2NvZGVjX2Fk Y19jbGsuY29tbW9uLAo+Pj4+ICsgJmJ1c19hdWRpb19jb2RlY19jbGsuY29tbW9uLAo+Pj4+ICsg JmJ1c19kcHNzX3RvcF9jbGsuY29tbW9uLAo+Pj4+ICsgJm1pcGlfZHNpX2Nsay5jb21tb24sCj4+ Pj4gKyAmYnVzX21pcGlfZHNpX2Nsay5jb21tb24sCj4+Pj4gKyAmdGNvbl9sY2RfY2xrLmNvbW1v biwKPj4+PiArICZidXNfdGNvbl9sY2RfY2xrLmNvbW1vbiwKPj4+PiArICZjc2lfdG9wX2Nsay5j b21tb24sCj4+Pj4gKyAmY3NpX21jbGswX2Nsay5jb21tb24sCj4+Pj4gKyAmY3NpX21jbGsxX2Ns ay5jb21tb24sCj4+Pj4gKyAmY3NpX21jbGsyX2Nsay5jb21tb24sCj4+Pj4gKyAmYnVzX2NzaV9j bGsuY29tbW9uLAo+Pj4+ICsgJmJ1c193aWVnYW5kX2Nsay5jb21tb24sCj4+Pj4gKyAmcmlzY3Zf Y2xrLmNvbW1vbiwKPj4+PiArICZyaXNjdl9heGlfY2xrLmNvbW1vbiwKPj4+PiArICZyaXNjdl9j ZmcuY29tbW9uLAo+Pj4+ICsgJmZhbm91dF8yNE1fY2xrLmNvbW1vbiwKPj4+PiArICZmYW5vdXRf MTJNX2Nsay5jb21tb24sCj4+Pj4gKyAmZmFub3V0XzE2TV9jbGsuY29tbW9uLAo+Pj4+ICsgJmZh bm91dF8yNU1fY2xrLmNvbW1vbiwKPj4+PiArICZmYW5vdXRfMjdNX2Nsay5jb21tb24sCj4+Pj4g KyAmZmFub3V0X3BjbGtfY2xrLmNvbW1vbiwKPj4+PiArICZmYW5vdXQwX2Nsay5jb21tb24sCj4+ Pj4gKyAmZmFub3V0MV9jbGsuY29tbW9uLAo+Pj4+ICsgJmZhbm91dDJfY2xrLmNvbW1vbiwKPj4+ PiArfTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBzdHJ1Y3QgY2xrX2h3X29uZWNlbGxfZGF0YSBzdW44 aV92ODUzX2h3X2Nsa3MgPSB7Cj4+Pj4gKyAubnVtID0gQ0xLX05VTUJFUiwKPj4+PiArIC5od3Mg PSB7Cj4+Pj4gKyBbQ0xLX09TQzEyTV0gICAgICAgICAgICA9ICZvc2MxMk1fY2xrLmh3LAo+Pj4+ ICsgW0NMS19QTExfQ1BVXSA9ICZwbGxfY3B1X2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX1BM TF9ERFJdID0gJnBsbF9kZHJfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfUExMX1BFUklQSF80 WF0gPSAmcGxsX3BlcmlwaF80eF9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19QTExfUEVSSVBI XzJYXSA9ICZwbGxfcGVyaXBoXzJ4X2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX1BMTF9QRVJJ UEhfODAwTV0gPSAmcGxsX3BlcmlwaF84MDBNX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX1BM TF9QRVJJUEhfNDgwTV0gPSAmcGxsX3BlcmlwaF80ODBNX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBb Q0xLX1BMTF9QRVJJUEhfNjAwTV0gPSAmcGxsX3BlcmlwaF82MDBNX2Nsay5odywKPj4+PiArIFtD TEtfUExMX1BFUklQSF80MDBNXSA9ICZwbGxfcGVyaXBoXzQwME1fY2xrLmh3LAo+Pj4+ICsgW0NM S19QTExfUEVSSVBIXzMwME1dID0gJnBsbF9wZXJpcGhfMzAwTV9jbGsuaHcsCj4+Pj4gKyBbQ0xL X1BMTF9QRVJJUEhfMjAwTV0gPSAmcGxsX3BlcmlwaF8yMDBNX2Nsay5odywKPj4+PiArIFtDTEtf UExMX1BFUklQSF8xNjBNXSA9ICZwbGxfcGVyaXBoXzE2ME1fY2xrLmh3LAo+Pj4+ICsgW0NMS19Q TExfUEVSSVBIXzE1ME1dID0gJnBsbF9wZXJpcGhfMTUwTV9jbGsuaHcsCj4+Pj4gKyBbQ0xLX1BM TF9WSURFT180WF0gPSAmcGxsX3ZpZGVvXzR4X2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX1BM TF9WSURFT18yWF0gPSAmcGxsX3ZpZGVvXzJ4X2Nsay5odywKPj4+PiArIFtDTEtfUExMX1ZJREVP XzFYXSA9ICZwbGxfdmlkZW9fMXhfY2xrLmh3LAo+Pj4+ICsgW0NMS19QTExfQ1NJXzRYXSA9ICZw bGxfY3NpXzR4X2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX1BMTF9BVURJT19ESVYyXSA9ICZw bGxfYXVkaW9fZGl2Ml9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19QTExfQVVESU9fRElWNV0g PSAmcGxsX2F1ZGlvX2RpdjVfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfUExMX0FVRElPXzRY XSA9ICZwbGxfYXVkaW9fNHhfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfUExMX0FVRElPXzFY XSA9ICZwbGxfYXVkaW9fMXhfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfUExMX05QVV80WF0g PSAmcGxsX25wdV80eF9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19DUFVdID0gJmNwdV9jbGsu Y29tbW9uLmh3LAo+Pj4+ICsgW0NMS19DUFVfQVhJXSA9ICZjcHVfYXhpX2Nsay5jb21tb24uaHcs Cj4+Pj4gKyBbQ0xLX0NQVV9BUEJdID0gJmNwdV9hcGJfY2xrLmNvbW1vbi5odywKPj4+PiArIFtD TEtfQUhCXSA9ICZhaGJfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQVBCMF0gPSAmYXBiMF9j bGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19BUEIxXSA9ICZhcGIxX2Nsay5jb21tb24uaHcsCj4+ Pj4gKyBbQ0xLX01CVVNdID0gJm1idXNfY2xrLmh3LAo+Pj4+ICsgW0NMS19ERV0gPSAmZGVfY2xr LmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX0RFXSA9ICZidXNfZGVfY2xrLmNvbW1vbi5odywK Pj4+PiArIFtDTEtfRzJEXSA9ICZnMmRfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX0cy RF0gPSAmYnVzX2cyZF9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19DRV0gPSAmY2VfY2xrLmNv bW1vbi5odywKPj4+PiArIFtDTEtfQlVTX0NFXSA9ICZidXNfY2VfY2xrLmNvbW1vbi5odywKPj4+ PiArIFtDTEtfVkVdID0gJnZlX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0JVU19WRV0gPSAm YnVzX3ZlX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX05QVV0gPSAmbnB1X2Nsay5jb21tb24u aHcsCj4+Pj4gKyBbQ0xLX0JVU19OUFVdID0gJmJ1c19ucHVfY2xrLmNvbW1vbi5odywKPj4+PiAr IFtDTEtfQlVTX0RNQV0gPSAmYnVzX2RtYV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19CVVNf TVNHQk9YMF0gPSAmYnVzX21zZ2JveDBfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX01T R0JPWDFdID0gJmJ1c19tc2dib3gxX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0JVU19TUElO TE9DS10gPSAmYnVzX3NwaW5sb2NrX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0JVU19IU1RJ TUVSXSA9ICZidXNfaHN0aW1lcl9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19BVlNdID0gJmF2 c19jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19CVVNfREJHXSA9ICZidXNfZGJnX2Nsay5jb21t b24uaHcsCj4+Pj4gKyBbQ0xLX0JVU19QV01dID0gJmJ1c19wd21fY2xrLmNvbW1vbi5odywKPj4+ PiArIFtDTEtfQlVTX0lPTU1VXSA9ICZidXNfaW9tbXVfY2xrLmNvbW1vbi5odywKPj4+PiArIFtD TEtfRFJBTV0gPSAmZHJhbV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19NQlVTX0RNQV0gPSAm bWJ1c19kbWFfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfTUJVU19WRV0gPSAmbWJ1c192ZV9j bGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19NQlVTX0NFXSA9ICZtYnVzX2NlX2Nsay5jb21tb24u aHcsCj4+Pj4gKyBbQ0xLX01CVVNfQ1NJXSA9ICZtYnVzX2NzaV9jbGsuY29tbW9uLmh3LAo+Pj4+ ICsgW0NMS19NQlVTX0lTUF0gPSAmbWJ1c19pc3BfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtf TUJVU19HMkRdID0gJm1idXNfZzJkX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0JVU19EUkFN XSA9ICZidXNfZHJhbV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19NTUMwXSA9ICZtbWMwX2Ns ay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX01NQzFdID0gJm1tYzFfY2xrLmNvbW1vbi5odywKPj4+ PiArIFtDTEtfTU1DMl0gPSAmbW1jMl9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19CVVNfTU1D MF0gPSAmYnVzX21tYzBfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX01NQzFdID0gJmJ1 c19tbWMxX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0JVU19NTUMyXSA9ICZidXNfbW1jMl9j bGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19CVVNfVUFSVDBdID0gJmJ1c191YXJ0MF9jbGsuY29t bW9uLmh3LAo+Pj4+ICsgW0NMS19CVVNfVUFSVDFdID0gJmJ1c191YXJ0MV9jbGsuY29tbW9uLmh3 LAo+Pj4+ICsgW0NMS19CVVNfVUFSVDJdID0gJmJ1c191YXJ0Ml9jbGsuY29tbW9uLmh3LAo+Pj4+ ICsgW0NMS19CVVNfVUFSVDNdID0gJmJ1c191YXJ0M19jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NM S19CVVNfSTJDMF0gPSAmYnVzX2kyYzBfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX0ky QzFdID0gJmJ1c19pMmMxX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0JVU19JMkMyXSA9ICZi dXNfaTJjMl9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19CVVNfSTJDM10gPSAmYnVzX2kyYzNf Y2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX0kyQzRdID0gJmJ1c19pMmM0X2Nsay5jb21t b24uaHcsCj4+Pj4gKyBbQ0xLX1NQSTBdID0gJnNwaTBfY2xrLmNvbW1vbi5odywKPj4+PiArIFtD TEtfU1BJMV0gPSAmc3BpMV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19TUEkyXSA9ICZzcGky X2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX1NQSTNdID0gJnNwaTNfY2xrLmNvbW1vbi5odywK Pj4+PiArIFtDTEtfQlVTX1NQSTBdID0gJmJ1c19zcGkwX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBb Q0xLX0JVU19TUEkxXSA9ICZidXNfc3BpMV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19CVVNf U1BJMl0gPSAmYnVzX3NwaTJfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX1NQSTNdID0g JmJ1c19zcGkzX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX1NQSUZdID0gJnNwaWZfY2xrLmNv bW1vbi5odywKPj4+PiArIFtDTEtfQlVTX1NQSUZdID0gJmJ1c19zcGlmX2Nsay5jb21tb24uaHcs Cj4+Pj4gKyBbQ0xLX0VNQUNfMjVNXSA9ICZlbWFjXzI1TV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsg W0NMS19CVVNfRU1BQ10gPSAmYnVzX2VtYWNfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVT X0dQQURDXSA9ICZidXNfZ3BhZGNfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX1RIU10g PSAmYnVzX3Roc19jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19JMlMwXSA9ICZpMnMwX2Nsay5j b21tb24uaHcsCj4+Pj4gKyBbQ0xLX0kyUzFdID0gJmkyczFfY2xrLmNvbW1vbi5odywKPj4+PiAr IFtDTEtfQlVTX0kyUzBdID0gJmJ1c19pMnMwX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0JV U19JMlMxXSA9ICZidXNfaTJzMV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19ETUlDXSA9ICZk bWljX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0JVU19ETUlDXSA9ICZidXNfZG1pY19jbGsu Y29tbW9uLmh3LAo+Pj4+ICsgW0NMS19BVURJT19DT0RFQ19EQUNdID0gJmF1ZGlvX2NvZGVjX2Rh Y19jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19BVURJT19DT0RFQ19BRENdID0gJmF1ZGlvX2Nv ZGVjX2FkY19jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19CVVNfQVVESU9fQ09ERUNdID0gJmJ1 c19hdWRpb19jb2RlY19jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19VU0JfT0hDSV0gPSAmdXNi X29oY2lfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX09IQ0ldID0gJmJ1c19vaGNpX2Ns ay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0JVU19FSENJXSA9ICZidXNfZWhjaV9jbGsuY29tbW9u Lmh3LAo+Pj4+ICsgW0NMS19CVVNfT1RHXSA9ICZidXNfb3RnX2Nsay5jb21tb24uaHcsCj4+Pj4g KyBbQ0xLX0JVU19EUFNTX1RPUF0gPSAmYnVzX2Rwc3NfdG9wX2Nsay5jb21tb24uaHcsCj4+Pj4g KyBbQ0xLX01JUElfRFNJXSA9ICZtaXBpX2RzaV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19C VVNfTUlQSV9EU0ldID0gJmJ1c19taXBpX2RzaV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19U Q09OX0xDRF0gPSAmdGNvbl9sY2RfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQlVTX1RDT05f TENEXSA9ICZidXNfdGNvbl9sY2RfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfQ1NJX1RPUF0g PSAmY3NpX3RvcF9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19DU0lfTUNMSzBdID0gJmNzaV9t Y2xrMF9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19DU0lfTUNMSzFdID0gJmNzaV9tY2xrMV9j bGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19DU0lfTUNMSzJdID0gJmNzaV9tY2xrMl9jbGsuY29t bW9uLmh3LAo+Pj4+ICsgW0NMS19CVVNfQ1NJXSA9ICZidXNfY3NpX2Nsay5jb21tb24uaHcsCj4+ Pj4gKyBbQ0xLX0JVU19XSUVHQU5EXSA9ICZidXNfd2llZ2FuZF9jbGsuY29tbW9uLmh3LAo+Pj4+ ICsgW0NMS19SSVNDVl0gPSAmcmlzY3ZfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfUklTQ1Zf QVhJXSA9ICZyaXNjdl9heGlfY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfUklTQ1ZfQ0ZHXSAg ICAgICAgID0gJnJpc2N2X2NmZy5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0ZBTk9VVF8yNE1dID0g JmZhbm91dF8yNE1fY2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfRkFOT1VUXzE2TV0gPSAmZmFu b3V0XzE2TV9jbGsuY29tbW9uLmh3LAo+Pj4+ICsgW0NMS19GQU5PVVRfMTJNXSA9ICZmYW5vdXRf MTJNX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xLX0ZBTk9VVF8yNU1dID0gJmZhbm91dF8yNU1f Y2xrLmNvbW1vbi5odywKPj4+PiArIFtDTEtfRkFOT1VUXzI3TV0gPSAmZmFub3V0XzI3TV9jbGsu Y29tbW9uLmh3LAo+Pj4+ICsgW0NMS19GQU5PVVRfUENMS10gPSAmZmFub3V0X3BjbGtfY2xrLmNv bW1vbi5odywKPj4+PiArIFtDTEtfRkFOT1VUMF0gPSAmZmFub3V0MF9jbGsuY29tbW9uLmh3LAo+ Pj4+ICsgW0NMS19GQU5PVVQxXSA9ICZmYW5vdXQxX2Nsay5jb21tb24uaHcsCj4+Pj4gKyBbQ0xL X0ZBTk9VVDJdID0gJmZhbm91dDJfY2xrLmNvbW1vbi5odywKPj4+PiArIH0sCj4+Pj4gK307Cj4+ Pj4gKwo+Pj4+ICtzdGF0aWMgc3RydWN0IGNjdV9yZXNldF9tYXAgc3VuOGlfdjg1M19jY3VfcmVz ZXRzW10gPSB7Cj4+Pj4gKyBbUlNUX01CVVNdID0geyAweDU0MCwgQklUKDMwKSB9LAo+Pj4+ICsg W1JTVF9CVVNfREVdID0geyAweDYwYywgQklUKDE2KSB9LAo+Pj4+ICsgW1JTVF9CVVNfRzJEXSA9 IHsgMHg2M2MsIEJJVCgxNikgfSwKPj4+PiArIFtSU1RfQlVTX0NFXSA9IHsgMHg2OGMsIEJJVCgx NikgfCBCSVQoMTcpfSwKPj4+PiArIFtSU1RfQlVTX1ZFXSA9IHsgMHg2OWMsIEJJVCgxNikgfSwK Pj4+PiArIFtSU1RfQlVTX05QVV0gPSB7IDB4NmVjLCBCSVQoMTYpIH0sCj4+Pj4gKyBbUlNUX0JV U19ETUFdID0geyAweDcwYywgQklUKDE2KSB9LAo+Pj4+ICsgW1JTVF9CVVNfTVNHQk9YMF0gPSB7 IDB4NzFjLCBCSVQoMTYpIH0sCj4+Pj4gKyBbUlNUX0JVU19NU0dCT1gxXSA9IHsgMHg3MWMsIEJJ VCgxNykgfSwKPj4+PiArIFtSU1RfQlVTX1NQSU5MT0NLXSA9IHsgMHg3MmMsIEJJVCgxNikgfSwK Pj4+PiArIFtSU1RfQlVTX0hTVElNRVJdID0geyAweDczYywgQklUKDE2KSB9LAo+Pj4+ICsgW1JT VF9CVVNfREJHXSA9IHsgMHg3OGMsIEJJVCgxNikgfSwKPj4+PiArIFtSU1RfQlVTX1BXTV0gPSB7 IDB4N2FjLCBCSVQoMTYpIH0sCj4+Pj4gKyBbUlNUX0JVU19EUkFNXSA9IHsgMHg4MGMsIEJJVCgx NikgfSwKPj4+PiArIFtSU1RfQlVTX01NQzBdID0geyAweDg0YywgQklUKDE2KSB9LAo+Pj4+ICsg W1JTVF9CVVNfTU1DMV0gPSB7IDB4ODRjLCBCSVQoMTcpIH0sCj4+Pj4gKyBbUlNUX0JVU19NTUMy XSA9IHsgMHg4NGMsIEJJVCgxOCkgfSwKPj4+PiArIFtSU1RfQlVTX1VBUlQwXSA9IHsgMHg5MGMs IEJJVCgxNikgfSwKPj4+PiArIFtSU1RfQlVTX1VBUlQxXSA9IHsgMHg5MGMsIEJJVCgxNykgfSwK Pj4+PiArIFtSU1RfQlVTX1VBUlQyXSA9IHsgMHg5MGMsIEJJVCgxOCkgfSwKPj4+PiArIFtSU1Rf QlVTX1VBUlQzXSA9IHsgMHg5MGMsIEJJVCgxOSkgfSwKPj4+PiArIFtSU1RfQlVTX0kyQzBdID0g eyAweDkxYywgQklUKDE2KSB9LAo+Pj4+ICsgW1JTVF9CVVNfSTJDMV0gPSB7IDB4OTFjLCBCSVQo MTcpIH0sCj4+Pj4gKyBbUlNUX0JVU19JMkMyXSA9IHsgMHg5MWMsIEJJVCgxOCkgfSwKPj4+PiAr IFtSU1RfQlVTX0kyQzNdID0geyAweDkxYywgQklUKDE5KSB9LAo+Pj4+ICsgW1JTVF9CVVNfSTJD NF0gPSB7IDB4OTFjLCBCSVQoMjApIH0sCj4+Pj4gKyBbUlNUX0JVU19TUElGXSA9IHsgMHg5NmMs IEJJVCgyMCkgfSwgIAo+Pj4gCj4+PiBUaGF0IGVudHJ5IF5eXl4gc2VlbXMgb3V0IG9mIG9yZGVy LiAgCj4+IAo+PiBPcHBzLCBJ4oCZbGwgZml4IGl0Lgo+PiAKPj4+IAo+Pj4+ICsgW1JTVF9CVVNf U1BJMF0gPSB7IDB4OTZjLCBCSVQoMTYpIH0sCj4+Pj4gKyBbUlNUX0JVU19TUEkxXSA9IHsgMHg5 NmMsIEJJVCgxNykgfSwKPj4+PiArIFtSU1RfQlVTX1NQSTJdID0geyAweDk2YywgQklUKDE4KSB9 LAo+Pj4+ICsgW1JTVF9CVVNfU1BJM10gPSB7IDB4OTZjLCBCSVQoMTkpIH0sCj4+Pj4gKyBbUlNU X0JVU19FTUFDXSA9IHsgMHg5N2MsIEJJVCgxNikgfSwKPj4+PiArIFtSU1RfQlVTX0dQQURDXSA9 IHsgMHg5ZWMsIEJJVCgxNikgfSwKPj4+PiArIFtSU1RfQlVTX1RIU10gPSB7IDB4OWZjLCBCSVQo MTYpIH0sCj4+Pj4gKyBbUlNUX0JVU19JMlMwXSA9IHsgMHhhMjAsIEJJVCgxNikgfSwKPj4+PiAr IFtSU1RfQlVTX0kyUzFdID0geyAweGEyMCwgQklUKDE3KSB9LAo+Pj4+ICsgW1JTVF9CVVNfRE1J Q10gPSB7IDB4YTRjLCBCSVQoMTYpIH0sCj4+Pj4gKyBbUlNUX0JVU19BVURJT19DT0RFQ10gPSB7 IDB4YTVjLCBCSVQoMTYpIH0sCj4+Pj4gKyBbUlNUX1VTQl9QSFldID0geyAweGE3MCwgQklUKDMw KSB9LAo+Pj4+ICsgW1JTVF9CVVNfT0hDSV0gPSB7IDB4YThjLCBCSVQoMTYpIH0sCj4+Pj4gKyBb UlNUX0JVU19FSENJXSA9IHsgMHhhOGMsIEJJVCgyMCkgfSwKPj4+PiArIFtSU1RfQlVTX09UR10g PSB7IDB4YThjLCBCSVQoMjQpIH0sCj4+Pj4gKyBbUlNUX0JVU19EUFNTX1RPUF0gPSB7IDB4YWJj LCBCSVQoMTYpIH0sCj4+Pj4gKyBbUlNUX0JVU19NSVBJX0RTSV0gPSB7IDB4YjRjLCBCSVQoMTYp IH0sCj4+Pj4gKyBbUlNUX0JVU19UQ09OX0xDRF0gPSB7IDB4YjdjLCBCSVQoMTYpIH0sCj4+Pj4g KyBbUlNUX0JVU19DU0ldID0geyAweGMyYywgQklUKDE2KSB9LAo+Pj4+ICsgW1JTVF9CVVNfV0lF R0FORF0gPSB7IDB4YzdjLCBCSVQoMTYpIH0sCj4+Pj4gKyBbUlNUX1JJU0NWX1NZU19BUEJdID0g eyAweGQwNCwgQklUKDIpLCBDQ1VfRkVBVFVSRV9LRVlfRklFTEQgfSwKPj4+PiArIFtSU1RfUklT Q1ZfU09GVF0gPSB7IDB4ZDA0LCBCSVQoMSksIENDVV9GRUFUVVJFX0tFWV9GSUVMRCB9LAo+Pj4+ ICsgW1JTVF9SSVNDVl9DTEtfR0FUSU5HXSA9IHsgMHhkMDQsIEJJVCgwKSwgQ0NVX0ZFQVRVUkVf S0VZX0ZJRUxEIH0sICAKPj4+IAo+Pj4gQnV0IHRoYXQncyBhIGNsb2NrIGdhdGUsIG5vdCBhIHJl c2V0LCByaWdodD8gIAo+PiAKPj4gWWVzLCBJIGZvcmdldCB0byBmaXggdGhhdC4gTW9kZWxsaW5n IHRoaXMgd2F5IChiZWNhdXNlIG9mIHRoZSBLRVlfRklFTEQpIHdhcyBmYXN0ZXIKPj4gd2hlbiBJ IHdyb3RlIHRoZSByZW1vdGVwcm9jIGRyaXZlci4gCj4+IAo+Pj4gCj4+Pj4gKyBbUlNUX1JJU0NW X0NGR10gPSB7IDB4ZDBjLCBCSVQoMTYpIH0gIAo+Pj4gCj4+PiBUaGUgcmVzdCBvZiB0aGUgcmVz ZXQgYml0cyBtYXRjaCB0aGUgbWFudWFsLgo+Pj4gCj4+Pj4gK307Cj4+Pj4gKwo+Pj4+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IHN1bnhpX2NjdV9kZXNjIHN1bjhpX3Y4NTNfY2N1X2Rlc2MgPSB7Cj4+ Pj4gKyAuY2N1X2Nsa3MgPSBzdW44aV92ODUzX2NjdV9jbGtzLAo+Pj4+ICsgLm51bV9jY3VfY2xr cyA9IEFSUkFZX1NJWkUoc3VuOGlfdjg1M19jY3VfY2xrcyksCj4+Pj4gKwo+Pj4+ICsgLmh3X2Ns a3MgPSAmc3VuOGlfdjg1M19od19jbGtzLAo+Pj4+ICsKPj4+PiArIC5yZXNldHMgPSBzdW44aV92 ODUzX2NjdV9yZXNldHMsCj4+Pj4gKyAubnVtX3Jlc2V0cyA9IEFSUkFZX1NJWkUoc3VuOGlfdjg1 M19jY3VfcmVzZXRzKSwKPj4+PiArfTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBjb25zdCB1MzIgcGxs X3JlZ3NbXSA9IHsKPj4+PiArIFNVTjhJX1Y4NTNfUExMX0NQVV9SRUcsCj4+Pj4gKyBTVU44SV9W ODUzX1BMTF9ERFJfUkVHLAo+Pj4+ICsgU1VOOElfVjg1M19QTExfUEVSSVBIX1JFRywKPj4+PiAr IFNVTjhJX1Y4NTNfUExMX1ZJREVPX1JFRywKPj4+PiArIFNVTjhJX1Y4NTNfUExMX0NTSV9SRUcs Cj4+Pj4gKyBTVU44SV9WODUzX1BMTF9BVURJT19SRUcsCj4+Pj4gKyBTVU44SV9WODUzX1BMTF9O UFVfUkVHLAo+Pj4+ICt9Owo+Pj4+ICsKPj4+PiArc3RhdGljIGludCBzdW44aV92ODUzX2NjdV9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4+ICt7Cj4+Pj4gKyB2b2lkIF9f aW9tZW0gKnJlZzsKPj4+PiArIHUzMiB2YWw7Cj4+Pj4gKyBpbnQgaSwgcmV0Owo+Pj4+ICsKPj4+ PiArIHJlZyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKPj4+PiAr IGlmIChJU19FUlIocmVnKSkKPj4+PiArIHJldHVybiBQVFJfRVJSKHJlZyk7Cj4+Pj4gKwo+Pj4+ ICsgLyogRW5hYmxlIHRoZSBlbmFibGUsIExETywgYW5kIGxvY2sgYml0cyBvbiBhbGwgUExMcy4g Ki8KPj4+PiArIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBsbF9yZWdzKTsgaSsrKSB7Cj4+ Pj4gKyB2YWwgPSByZWFkbChyZWcgKyBwbGxfcmVnc1tpXSk7Cj4+Pj4gKyB2YWwgfD0gQklUKDMx KSB8IEJJVCgzMCkgfCBCSVQoMjkpOwo+Pj4+ICsgd3JpdGVsKHZhbCwgcmVnICsgcGxsX3JlZ3Nb aV0pOwo+Pj4+ICsgfQo+Pj4+ICsKPj4+PiArIC8qIEZvcmNlIFBMTF9DUFUgZmFjdG9yIE0gdG8g MC4gKi8KPj4+PiArIHZhbCA9IHJlYWRsKHJlZyArIFNVTjhJX1Y4NTNfUExMX0NQVV9SRUcpOwo+ Pj4+ICsgdmFsICY9IH5HRU5NQVNLKDEsIDApOwo+Pj4+ICsgd3JpdGVsKHZhbCwgcmVnICsgU1VO OElfVjg1M19QTExfQ1BVX1JFRyk7ICAKPj4+IAo+Pj4gTGV0J3MganVzdCBob3BlIGl0IHdhcyAw IGFscmVhZHksIGFzIEkgZ3Vlc3MgYSBzdWRkZW4ganVtcCBvZgo+Pj4gQ1BVIGZyZXF1ZW5jeSBt aWdodCBub3QgYmUgdG9vIGhlYWx0aHkuCj4+PiAKPj4gSeKAmWxsIGRvdWJsZSBjaGVjayB0aGF0 Lgo+PiAKPj4+PiArIC8qCj4+Pj4gKyAgKiBGb3JjZSB0aGUgb3V0cHV0IGRpdmlkZXIgb2Ygdmlk ZW8gUExMIHRvIDAuICAKPj4+IAo+Pj4gSnVzdCBhIG5pdCwgYnV0IGEgImRpdmlkZXIgb2YgMCIg ZG9lcyBub3Qgc291bmQgdG9vIGhlYWx0aHkuIE1heWJlOgo+Pj4gIkZvcmNlIHRoZSBvdXRwdXQg ZGl2aWRlciB0byAxLCBieSBjbGVhcmluZyBiaXQgMC4iCj4+PiAKPj4gCj4+IFRoYW5rcy4KPj4g Cj4+PiBDaGVlcnMsCj4+PiBBbmRyZQo+Pj4gCj4+Pj4gKyAgKgo+Pj4+ICsgICogU2VlIHRoZSBj b21tZW50IGJlZm9yZSBwbGwtdmlkZW8wIGRlZmluaXRpb24gZm9yIHRoZSByZWFzb24uCj4+Pj4g KyAgKi8KPj4+PiArIHZhbCA9IHJlYWRsKHJlZyArIFNVTjhJX1Y4NTNfUExMX1ZJREVPX1JFRyk7 Cj4+Pj4gKyB2YWwgJj0gfkJJVCgwKTsKPj4+PiArIHdyaXRlbCh2YWwsIHJlZyArIFNVTjhJX1Y4 NTNfUExMX1ZJREVPX1JFRyk7Cj4+Pj4gKwo+Pj4+ICsgLyoKPj4+PiArICAqIEZvcmNlIHRoZSBv dXRwdXQgZGl2aWRlciBvZiBDU0kgUExMIHRvIDAuCj4+Pj4gKyAgKgo+Pj4+ICsgICogU2VlIHRo ZSBjb21tZW50IGJlZm9yZSBwbGwtY3NpIGRlZmluaXRpb24gZm9yIHRoZSByZWFzb24uCj4+Pj4g KyAgKi8KPj4+PiArIHZhbCA9IHJlYWRsKHJlZyArIFNVTjhJX1Y4NTNfUExMX0NTSV9SRUcpOwo+ Pj4+ICsgdmFsICY9IH5CSVQoMCk7Cj4+Pj4gKyB3cml0ZWwodmFsLCByZWcgKyBTVU44SV9WODUz X1BMTF9DU0lfUkVHKTsKPj4+PiArCj4+Pj4gKyAvKgo+Pj4+ICsgICogRm9yY2UgdGhlIG91dHB1 dCBkaXZpZGVyIG9mIE5QVSBQTEwgdG8gMC4KPj4+PiArICAqCj4+Pj4gKyAgKiBTZWUgdGhlIGNv bW1lbnQgYmVmb3JlIHBsbC1ucHUgZGVmaW5pdGlvbiBmb3IgdGhlIHJlYXNvbi4KPj4+PiArICAq Lwo+Pj4+ICsgdmFsID0gcmVhZGwocmVnICsgU1VOOElfVjg1M19QTExfTlBVX1JFRyk7Cj4+Pj4g KyB2YWwgJj0gfkJJVCgwKTsKPj4+PiArIHdyaXRlbCh2YWwsIHJlZyArIFNVTjhJX1Y4NTNfUExM X05QVV9SRUcpOwo+Pj4+ICsKPj4+PiArIC8qCj4+Pj4gKyAgKiBGb3JjZSBPSENJIDEyTSBjbG9j ayBzb3VyY2UgdG8gMDAgKDEyTUh6IGRpdmlkZWQgZnJvbSA0OE1IeikKPj4+PiArICAqCj4+Pj4g KyAgKiBUaGlzIGNsb2NrIG11eCBpcyBzdGlsbCBteXN0ZXJpb3VzLCBhbmQgdGhlIGNvZGUganVz dCBlbmZvcmNlcwo+Pj4+ICsgICogaXQgdG8gaGF2ZSBhIHZhbGlkIGNsb2NrIHBhcmVudC4KPj4+ PiArICAqLwo+Pj4+ICsgdmFsID0gcmVhZGwocmVnICsgU1VOOElfVjg1M19VU0JfQ0xLX1JFRyk7 Cj4+Pj4gKyB2YWwgJj0gfkdFTk1BU0soMjUsIDI0KTsKPj4+PiArIHdyaXRlbCh2YWwsIHJlZyAr IFNVTjhJX1Y4NTNfVVNCX0NMS19SRUcpOwo+Pj4+ICsKPj4+PiArIC8qIEZvcmNlIGZhbm91dC0y N00gZmFjdG9yIE4gdG8gMC4gKi8KPj4+PiArIHZhbCA9IHJlYWRsKHJlZyArIFNVTjhJX1Y4NTNf RkFOT1VUXzI3TV9SRUcpOwo+Pj4+ICsgdmFsICY9IH5HRU5NQVNLKDksIDgpOwo+Pj4+ICsgd3Jp dGVsKHZhbCwgcmVnICsgU1VOOElfVjg1M19GQU5PVVRfMjdNX1JFRyk7Cj4+Pj4gKwo+Pj4+ICsg cmV0ID0gZGV2bV9zdW54aV9jY3VfcHJvYmUoJnBkZXYtPmRldiwgcmVnLCAmc3VuOGlfdjg1M19j Y3VfZGVzYyk7Cj4+Pj4gKyBpZiAocmV0KQo+Pj4+ICsgcmV0dXJuIHJldDsKPj4+PiArCj4+Pj4g KyByZXR1cm4gMDsKPj4+PiArfQo+Pj4+ICsKPj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9k ZXZpY2VfaWQgc3VuOGlfdjg1M19jY3VfaWRzW10gPSB7Cj4+Pj4gKyB7IC5jb21wYXRpYmxlID0g ImFsbHdpbm5lcixzdW44aS12ODUzLWNjdSIgfSwKPj4+PiArIHsgfQo+Pj4+ICt9Owo+Pj4+ICsK Pj4+PiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc3VuOGlfdjg1M19jY3VfZHJpdmVy ID0gewo+Pj4+ICsgLnByb2JlID0gc3VuOGlfdjg1M19jY3VfcHJvYmUsCj4+Pj4gKyAuZHJpdmVy ID0gewo+Pj4+ICsgLm5hbWUgPSAic3VuOGktdjg1My1jY3UiLAo+Pj4+ICsgLnN1cHByZXNzX2Jp bmRfYXR0cnMgPSB0cnVlLAo+Pj4+ICsgLm9mX21hdGNoX3RhYmxlID0gc3VuOGlfdjg1M19jY3Vf aWRzLAo+Pj4+ICsgfSwKPj4+PiArfTsKPj4+PiArbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzdW44 aV92ODUzX2NjdV9kcml2ZXIpOwo+Pj4+ICsKPj4+PiArTU9EVUxFX0lNUE9SVF9OUygiU1VOWElf Q0NVIik7Cj4+Pj4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKPj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXY4NTMuaCBiL2RyaXZlcnMvY2xrL3N1bnhpLW5n L2NjdS1zdW44aS12ODUzLmgKPj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4+IGluZGV4IDAw MDAwMDAwMDAwMC4uYjZlZTE3NjRmZTVlCj4+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4+ICsrKyBiL2Ry aXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLmgKPj4+PiBAQCAtMCwwICsxLDE0IEBA Cj4+Pj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCj4+Pj4gKy8qCj4+ Pj4gKyAqIENvcHlyaWdodCAoQykgMjAyNCBBbmRyYXMgU3plbXpvIDxzemVtem8uYW5kcmFzQGdt YWlsLmNvbT4KPj4+PiArICovCj4+Pj4gKwo+Pj4+ICsjaWZuZGVmIF9DQ1VfU1VOOElfVjg1M19I Xwo+Pj4+ICsjZGVmaW5lIF9DQ1VfU1VOOElfVjg1M19IXwo+Pj4+ICsKPj4+PiArI2luY2x1ZGUg PGR0LWJpbmRpbmdzL2Nsb2NrL3N1bjhpLXY4NTMtY2N1Lmg+Cj4+Pj4gKyNpbmNsdWRlIDxkdC1i aW5kaW5ncy9yZXNldC9zdW44aS12ODUzLWNjdS5oPgo+Pj4+ICsKPj4+PiArI2RlZmluZSBDTEtf TlVNQkVSIChDTEtfRkFOT1VUMiArIDEpCj4+Pj4gKwo+Pj4+ICsjZW5kaWYgLyogX0NDVV9TVU44 SV9WODUzX0hfICovICAKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LXJpc2N2Cg==