From owner-freebsd-acpi@FreeBSD.ORG Mon Jul 3 11:02:51 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0B31516A47B for ; Mon, 3 Jul 2006 11:02:51 +0000 (UTC) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6542C43D66 for ; Mon, 3 Jul 2006 11:02:46 +0000 (GMT) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (peter@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k63B2kaW069728 for ; Mon, 3 Jul 2006 11:02:46 GMT (envelope-from owner-bugmaster@freebsd.org) Received: (from peter@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k63B2jAf069724 for freebsd-acpi@freebsd.org; Mon, 3 Jul 2006 11:02:45 GMT (envelope-from owner-bugmaster@freebsd.org) Date: Mon, 3 Jul 2006 11:02:45 GMT Message-Id: <200607031102.k63B2jAf069724@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: peter set sender to owner-bugmaster@freebsd.org using -f From: FreeBSD bugmaster To: freebsd-acpi@FreeBSD.org Cc: Subject: Current problem reports assigned to you X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Jul 2006 11:02:51 -0000 Current FreeBSD problem reports Critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2006/03/01] i386/93963 acpi [panic] [patch] ACPI Panic with some ACPI 1 problem total. Serious problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2003/07/22] i386/54756 acpi ACPI suspend/resume problem on CF-W2 lapt o [2003/08/17] i386/55661 acpi ACPI suspend/resume problem on ARMADA M70 o [2003/08/20] kern/55822 acpi No ACPI power off with SMP kernel o [2003/08/27] kern/56024 acpi ACPI suspend drains battery while in S3 o [2004/03/09] i386/64002 acpi acpi problem o [2004/05/27] i386/67273 acpi [hang] system hangs with acpi and Xfree o [2004/10/12] i386/72566 acpi ACPI, FreeBSD disables fan on Compaq Arma o [2005/03/21] i386/79080 acpi acpi thermal changes freezes HP nx6110 o [2005/03/21] i386/79081 acpi ACPI suspend/resume not working on HP nx6 o [2005/04/28] i386/80426 acpi [APIC] [panic] 5.4-RC3 still panic when b o [2005/10/17] i386/87568 acpi [ACPI] [REGRESSION] 6.0-STABLE needs ACPI 11 problems total. Non-critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2004/05/28] kern/67309 acpi zzz reboot computer (ACPI S3) o [2004/07/29] i386/69750 acpi Boot without ACPI failed on ASUS L5 o [2004/11/11] i386/73822 acpi [request] add thermal support to ACPI o [2004/11/11] kern/73823 acpi [feature request] acpi / power-on by time f [2004/11/17] kern/74030 acpi Unplugging AC causes battery % to stay lo f [2005/12/24] kern/90871 acpi ACPI problems with ASUS A8N-VM-CSM o [2006/05/30] kern/98171 acpi [acpi] ACPI 1304 / 0501 errors on Acer 50 7 problems total. From owner-freebsd-acpi@FreeBSD.ORG Wed Jul 5 13:57:42 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 317AE16A600 for ; Wed, 5 Jul 2006 13:57:42 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3E32843D53 for ; Wed, 5 Jul 2006 13:57:40 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from zion.baldwin.cx (zion.baldwin.cx [192.168.0.7]) (authenticated bits=0) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k65Dvc8l096279; Wed, 5 Jul 2006 09:57:38 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-acpi@freebsd.org Date: Wed, 5 Jul 2006 08:38:44 -0400 User-Agent: KMail/1.9.1 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200607050838.44324.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [192.168.0.1]); Wed, 05 Jul 2006 09:57:38 -0400 (EDT) X-Virus-Scanned: ClamAV 0.87.1/1585/Tue Jul 4 16:39:34 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx Cc: othermark Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Jul 2006 13:57:42 -0000 On Thursday 29 June 2006 17:51, othermark wrote: > > With acpi loaded on a msi-9218 motherboard, I'm seeing sio0 and sio1 > get 'swapped.' Even though the kernel is compiled for console on 0x3f8, > I've had to change the /etc/ttys to use ttyd1 so login is displayed when > the system is booted. > > Empirically, this tells me that 0x3f8 is correct for sio0 (since the kernel > and boot loader display fine using it as comconsole). > > Is there a way to force this to be consistant? This is -current from Jun > 8. I will try a more recent kernel soon. The following is a verbose boot > log. This is because your BIOS lists them backwards in the ASL. There isn't a workaround currently short of fixing your ASL to list them in the COM1/COM2 order and building a custom dsdt. -- John Baldwin From owner-freebsd-acpi@FreeBSD.ORG Wed Jul 5 18:14:27 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4B35816A4E1 for ; Wed, 5 Jul 2006 18:14:27 +0000 (UTC) (envelope-from gofda-freebsd-acpi@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9F6D143D70 for ; Wed, 5 Jul 2006 18:14:26 +0000 (GMT) (envelope-from gofda-freebsd-acpi@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1FyBtB-0001Lu-Km for freebsd-acpi@freebsd.org; Wed, 05 Jul 2006 20:14:18 +0200 Received: from gw205.f5.com ([205.229.151.151]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 05 Jul 2006 20:14:17 +0200 Received: from atkin901 by gw205.f5.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 05 Jul 2006 20:14:17 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-acpi@freebsd.org From: othermark Date: Wed, 05 Jul 2006 11:14:06 -0700 Lines: 56 Message-ID: References: <200607050838.44324.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: gw205.f5.com User-Agent: KNode/0.10.2 Sender: news Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Jul 2006 18:14:27 -0000 John Baldwin wrote: > On Thursday 29 June 2006 17:51, othermark wrote: >> >> With acpi loaded on a msi-9218 motherboard, I'm seeing sio0 and sio1 >> get 'swapped.' Even though the kernel is compiled for console on 0x3f8, >> I've had to change the /etc/ttys to use ttyd1 so login is displayed when >> the system is booted. >> >> Empirically, this tells me that 0x3f8 is correct for sio0 (since the >> kernel and boot loader display fine using it as comconsole). >> >> Is there a way to force this to be consistant? This is -current from >> Jun >> 8. I will try a more recent kernel soon. The following is a verbose >> boot log. > > This is because your BIOS lists them backwards in the ASL. There isn't a > workaround currently short of fixing your ASL to list them in the > COM1/COM2 order and building a custom dsdt. Many thanks for your input, So would it be sufficient in the _INI method, just to swap the order of initialization (I'm guessing here) for the COMA and COMB sections? COMA and COMB both have full resource templates for all possible legal settings. 2535 Method (_INI, 0, NotSerialized) 2536 { 2537 Acquire (NSMX, 0xFFFF) 2538 Store (0x00, LDN) 2539 Store (ACTV, ^FDC.FDCS) 2540 Store (0x01, LDN) 2541 Store (ACTV, ^LPT.LPTS) 2542 Store (0x02, LDN) 2543 Store (ACTV, ^COMB.SP2S) 2544 Store (0x03, LDN) 2545 Store (ACTV, ^COMA.SP1S) 2546 Store (0x05, LDN) 2547 Store (ACTV, ^PS2M.PSMS) 2548 Store (KBST, Local0) 2549 Store (Local0, KBST) 2550 Store (MSST, Local0) 2551 Store (Local0, MSST) full (corrected for errors) .asl is here: http://kuoi.asui.uidaho.edu/~darkmark/msi-9618.asl -- othermark atkin901 at nospam dot yahoo dot com (!wired)?(coffee++):(wired); From owner-freebsd-acpi@FreeBSD.ORG Thu Jul 6 11:47:37 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9B45916A4DF for ; Thu, 6 Jul 2006 11:47:37 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id DBDA343D53 for ; Thu, 6 Jul 2006 11:47:36 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from zion.baldwin.cx (zion.baldwin.cx [192.168.0.7]) (authenticated bits=0) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k66BlZ8n008534; Thu, 6 Jul 2006 07:47:35 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-acpi@freebsd.org Date: Thu, 6 Jul 2006 07:00:22 -0400 User-Agent: KMail/1.9.1 References: <200607050838.44324.jhb@freebsd.org> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200607060700.22376.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [192.168.0.1]); Thu, 06 Jul 2006 07:47:35 -0400 (EDT) X-Virus-Scanned: ClamAV 0.87.1/1586/Wed Jul 5 15:22:07 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx Cc: othermark Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Jul 2006 11:47:37 -0000 On Wednesday 05 July 2006 14:14, othermark wrote: > John Baldwin wrote: > > > On Thursday 29 June 2006 17:51, othermark wrote: > >> > >> With acpi loaded on a msi-9218 motherboard, I'm seeing sio0 and sio1 > >> get 'swapped.' Even though the kernel is compiled for console on 0x3f8, > >> I've had to change the /etc/ttys to use ttyd1 so login is displayed when > >> the system is booted. > >> > >> Empirically, this tells me that 0x3f8 is correct for sio0 (since the > >> kernel and boot loader display fine using it as comconsole). > >> > >> Is there a way to force this to be consistant? This is -current from > >> Jun > >> 8. I will try a more recent kernel soon. The following is a verbose > >> boot log. > > > > This is because your BIOS lists them backwards in the ASL. There isn't a > > workaround currently short of fixing your ASL to list them in the > > COM1/COM2 order and building a custom dsdt. > > Many thanks for your input, > > So would it be sufficient in the _INI method, just to swap the > order of initialization (I'm guessing here) for the COMA and COMB sections? > COMA and COMB both have full resource templates for all possible legal > settings. No, you have to swap the COMA and COMB devices themselves. > 2535 Method (_INI, 0, NotSerialized) > 2536 { > 2537 Acquire (NSMX, 0xFFFF) > 2538 Store (0x00, LDN) > 2539 Store (ACTV, ^FDC.FDCS) > 2540 Store (0x01, LDN) > 2541 Store (ACTV, ^LPT.LPTS) > 2542 Store (0x02, LDN) > 2543 Store (ACTV, ^COMB.SP2S) > 2544 Store (0x03, LDN) > 2545 Store (ACTV, ^COMA.SP1S) > 2546 Store (0x05, LDN) > 2547 Store (ACTV, ^PS2M.PSMS) > 2548 Store (KBST, Local0) > 2549 Store (Local0, KBST) > 2550 Store (MSST, Local0) > 2551 Store (Local0, MSST) > > > full (corrected for errors) .asl is here: > > http://kuoi.asui.uidaho.edu/~darkmark/msi-9618.asl > -- John Baldwin From owner-freebsd-acpi@FreeBSD.ORG Thu Jul 6 15:37:17 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8970916A4DE for ; Thu, 6 Jul 2006 15:37:17 +0000 (UTC) (envelope-from gofda-freebsd-acpi@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id D0DD443D45 for ; Thu, 6 Jul 2006 15:37:16 +0000 (GMT) (envelope-from gofda-freebsd-acpi@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1FyVuY-0003Uk-T9 for freebsd-acpi@freebsd.org; Thu, 06 Jul 2006 17:37:02 +0200 Received: from gw205.f5.com ([205.229.151.151]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 06 Jul 2006 17:37:02 +0200 Received: from atkin901 by gw205.f5.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 06 Jul 2006 17:37:02 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-acpi@freebsd.org From: othermark Date: Thu, 06 Jul 2006 08:36:30 -0700 Lines: 76 Message-ID: References: <200607050838.44324.jhb@freebsd.org> <200607060700.22376.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: gw205.f5.com User-Agent: KNode/0.10.2 Sender: news Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Jul 2006 15:37:17 -0000 John Baldwin wrote: > On Wednesday 05 July 2006 14:14, othermark wrote: >> John Baldwin wrote: >> >> > On Thursday 29 June 2006 17:51, othermark wrote: >> >> >> >> With acpi loaded on a msi-9218 motherboard, I'm seeing sio0 and sio1 >> >> get 'swapped.' Even though the kernel is compiled for console on >> >> 0x3f8, I've had to change the /etc/ttys to use ttyd1 so login is >> >> displayed when the system is booted. >> >> >> >> Empirically, this tells me that 0x3f8 is correct for sio0 (since the >> >> kernel and boot loader display fine using it as comconsole). >> >> >> >> Is there a way to force this to be consistant? This is -current from >> >> Jun >> >> 8. I will try a more recent kernel soon. The following is a verbose >> >> boot log. >> > >> > This is because your BIOS lists them backwards in the ASL. There isn't >> > a workaround currently short of fixing your ASL to list them in the >> > COM1/COM2 order and building a custom dsdt. >> >> Many thanks for your input, >> >> So would it be sufficient in the _INI method, just to swap the >> order of initialization (I'm guessing here) for the COMA and COMB >> sections? COMA and COMB both have full resource templates for all >> possible legal settings. > > No, you have to swap the COMA and COMB devices themselves. Ahh ok. You must forgive me if I seem dense since this is the first time I've looked at repairing these types of instruction files. Are you saying that the order that they appear in the .asl is important? I can find only subtle differences between the two methods COMA and COMB. One is the Store() after the Aquire() and the Store() in the _SRS submethod accompanying the COM methods. Lastly the order that their _PRS ResourceTemplate() appear seems implies an order of default settings. These defaults and order actually seem correct for COMA and COMB. If swapping them means swapping their differences, that could be done too. The actual Name(_DDN) might have significance as well if the OS is looking it up by that. >> 2535 Method (_INI, 0, NotSerialized) >> 2536 { >> 2537 Acquire (NSMX, 0xFFFF) >> 2538 Store (0x00, LDN) >> 2539 Store (ACTV, ^FDC.FDCS) >> 2540 Store (0x01, LDN) >> 2541 Store (ACTV, ^LPT.LPTS) >> 2542 Store (0x02, LDN) >> 2543 Store (ACTV, ^COMB.SP2S) >> 2544 Store (0x03, LDN) >> 2545 Store (ACTV, ^COMA.SP1S) >> 2546 Store (0x05, LDN) >> 2547 Store (ACTV, ^PS2M.PSMS) >> 2548 Store (KBST, Local0) >> 2549 Store (Local0, KBST) >> 2550 Store (MSST, Local0) >> 2551 Store (Local0, MSST) >> >> >> full (corrected for errors) .asl is here: >> >> http://kuoi.asui.uidaho.edu/~darkmark/msi-9618.asl >> > -- othermark atkin901 at nospam dot yahoo dot com (!wired)?(coffee++):(wired); From owner-freebsd-acpi@FreeBSD.ORG Thu Jul 6 18:40:46 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CC25916A4DA; Thu, 6 Jul 2006 18:40:46 +0000 (UTC) (envelope-from cfaber@ruckusmail.com) Received: from unixgr.com (unixgr.com [63.224.69.60]) by mx1.FreeBSD.org (Postfix) with ESMTP id EC19543D45; Thu, 6 Jul 2006 18:40:45 +0000 (GMT) (envelope-from cfaber@ruckusmail.com) Received: from [168.116.81.138] ([208.49.79.59]) (authenticated bits=0) by unixgr.com (8.13.3/8.13.3) with ESMTP id k66JjaIQ079983; Thu, 6 Jul 2006 13:45:41 -0600 (MDT) (envelope-from cfaber@ruckusmail.com) X-Authentication-Warning: unixgr.com: Host [208.49.79.59] claimed to be [168.116.81.138] Message-ID: <44AD5922.40801@ruckusmail.com> Date: Thu, 06 Jul 2006 12:40:34 -0600 From: Colin Faber User-Agent: Thunderbird 1.5 (X11/20060130) MIME-Version: 1.0 To: john@utzweb.net References: <4498A018.9090404@ruckusmail.com> <200606211244.44024.jhb@freebsd.org> <449AF72B.5040408@ruckusmail.com> <48662.69.93.78.27.1151009545.squirrel@69.93.78.27> In-Reply-To: <48662.69.93.78.27.1151009545.squirrel@69.93.78.27> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org, freebsd-mobile@freebsd.org Subject: Re: ACPI hw.acpi.video.* OID's not showing up witth acpi_video on Dell D610 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Jul 2006 18:40:46 -0000 Hi John, No, drm/dri wouldn't work with it. I ended up upgrading to 7.0-CURRENT and other than the random failure here and there the system has been great. -cf john@utzweb.net wrote: >> Hi John, >> >> I've discovered that if I omit acpi acpi_video and drm from my kernel, >> and load them later on as modules the OID's do appear correctly. >> > > yes, but do they (OIDs, drm, agp) work correctly afterwords? > > my experience was that on 6.1-RELEASE if i loaded agp and/or i915drm > after acpi_video then they wouldnt work, xorg would fail with a message > along the lines of > > "/dev/agpgart" no such file or directory > > and the sysctls for turning on and off the screen from acpi_video wouldnt > do anything. > > as always, YMMV, :-) > > johnu > > >> John Baldwin wrote: >> >>> On Tuesday 20 June 2006 21:25, Colin Faber wrote: >>> >>> >>>> Hello Guys, >>>> >>>> First, sorry for the cross posting, I'm not sure if someone in mobile >>>> or >>>> acpi can help me out with this one.. >>>> >>>> In Any event, I'm running a Dell Latitude D610 with FreeBSD 6.1-STABLE. >>>> The last cvsup on my source tree was Jun 19th. >>>> >>>> The problem I'm having is, for the life of me I can't seem to get >>>> hw.acpi.video OID entries to show up. I've followed every bit of advice >>>> I could find on the mailing lists and usenet postings. >>>> >>>> I've compiled and installed acpi_video, ACPI does work and events are >>>> trapped. >>>> >>>> >>> drm(4) is using the device node that acpi_video(4) wants to use. You >>> can >>> either update to -CURRENT where this is fixed, or you can turn off >>> drm(4) so >>> you can use acpi_video(4). >>> >>> >>> >> _______________________________________________ >> freebsd-mobile@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-mobile >> To unsubscribe, send any mail to "freebsd-mobile-unsubscribe@freebsd.org" >> >> >> > > > From owner-freebsd-acpi@FreeBSD.ORG Thu Jul 6 20:15:53 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B828D16A4DA for ; Thu, 6 Jul 2006 20:15:53 +0000 (UTC) (envelope-from nate@root.org) Received: from ylpvm15.prodigy.net (ylpvm15-ext.prodigy.net [207.115.57.46]) by mx1.FreeBSD.org (Postfix) with ESMTP id 250AE43D46 for ; Thu, 6 Jul 2006 20:15:52 +0000 (GMT) (envelope-from nate@root.org) Received: from pimout6-ext.prodigy.net (pimout6-int.prodigy.net [207.115.4.22]) by ylpvm15.prodigy.net (8.12.10 outbound/8.12.10) with ESMTP id k66KG7Eq010949 for ; Thu, 6 Jul 2006 16:16:07 -0400 X-ORBL: [67.119.74.222] Received: from [10.0.0.53] (adsl-67-119-74-222.dsl.sntc01.pacbell.net [67.119.74.222]) by pimout6-ext.prodigy.net (8.13.6 out.dk/8.13.6) with ESMTP id k66KFj5S242404; Thu, 6 Jul 2006 16:15:46 -0400 Message-ID: <44AD6F67.9060804@root.org> Date: Thu, 06 Jul 2006 13:15:35 -0700 From: Nate Lawson User-Agent: Thunderbird 1.5.0.4 (Windows/20060516) MIME-Version: 1.0 To: othermark References: <200607050838.44324.jhb@freebsd.org> <200607060700.22376.jhb@freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Jul 2006 20:15:53 -0000 othermark wrote: > John Baldwin wrote: > >> On Wednesday 05 July 2006 14:14, othermark wrote: >>> John Baldwin wrote: >>> >>>> On Thursday 29 June 2006 17:51, othermark wrote: >>>>> With acpi loaded on a msi-9218 motherboard, I'm seeing sio0 and sio1 >>>>> get 'swapped.' Even though the kernel is compiled for console on >>>>> 0x3f8, I've had to change the /etc/ttys to use ttyd1 so login is >>>>> displayed when the system is booted. >>>>> >>>>> Empirically, this tells me that 0x3f8 is correct for sio0 (since the >>>>> kernel and boot loader display fine using it as comconsole). >>>>> >>>>> Is there a way to force this to be consistant? This is -current from >>>>> Jun >>>>> 8. I will try a more recent kernel soon. The following is a verbose >>>>> boot log. >>>> This is because your BIOS lists them backwards in the ASL. There isn't >>>> a workaround currently short of fixing your ASL to list them in the >>>> COM1/COM2 order and building a custom dsdt. >>> Many thanks for your input, >>> >>> So would it be sufficient in the _INI method, just to swap the >>> order of initialization (I'm guessing here) for the COMA and COMB >>> sections? COMA and COMB both have full resource templates for all >>> possible legal settings. >> No, you have to swap the COMA and COMB devices themselves. > > Ahh ok. You must forgive me if I seem dense since this is the first time > I've looked at repairing these types of instruction files. Are you saying > that the order that they appear in the .asl is important? Yes, that's what he means. Move the whole Device (COMA) { ... } section before COMB if that's what you want. Ultimate solution is probably to implement _SRS support (set resource) so that we can reconfigure the devices according to their desired order. That's not even on anyone's todo list I think. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Jul 6 21:23:22 2006 Return-Path: X-Original-To: freebsd-acpi@FreeBSD.org Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 34E7816A4E1 for ; Thu, 6 Jul 2006 21:23:22 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from anuket.mj.niksun.com (gwnew.niksun.com [65.115.46.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id A42AA43D46 for ; Thu, 6 Jul 2006 21:23:21 +0000 (GMT) (envelope-from jkim@FreeBSD.org) Received: from niksun.com (anuket [10.70.0.5]) by anuket.mj.niksun.com (8.13.1/8.13.1) with ESMTP id k66LNJKV069615; Thu, 6 Jul 2006 17:23:19 -0400 (EDT) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: freebsd-acpi@FreeBSD.org Date: Thu, 6 Jul 2006 17:22:53 -0400 User-Agent: KMail/1.6.2 References: <44AD6F67.9060804@root.org> In-Reply-To: <44AD6F67.9060804@root.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200607061723.02600.jkim@FreeBSD.org> X-Virus-Scanned: ClamAV 0.88/1586/Wed Jul 5 15:22:07 2006 on anuket.mj.niksun.com X-Virus-Status: Clean Cc: othermark Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Jul 2006 21:23:22 -0000 On Thursday 06 July 2006 04:15 pm, Nate Lawson wrote: > othermark wrote: > > John Baldwin wrote: > >> On Wednesday 05 July 2006 14:14, othermark wrote: > >>> John Baldwin wrote: > >>>> On Thursday 29 June 2006 17:51, othermark wrote: > >>>>> With acpi loaded on a msi-9218 motherboard, I'm seeing sio0 > >>>>> and sio1 get 'swapped.' Even though the kernel is compiled > >>>>> for console on 0x3f8, I've had to change the /etc/ttys to use > >>>>> ttyd1 so login is displayed when the system is booted. > >>>>> > >>>>> Empirically, this tells me that 0x3f8 is correct for sio0 > >>>>> (since the kernel and boot loader display fine using it as > >>>>> comconsole). > >>>>> > >>>>> Is there a way to force this to be consistant? This is > >>>>> -current from Jun > >>>>> 8. I will try a more recent kernel soon. The following is > >>>>> a verbose boot log. > >>>> > >>>> This is because your BIOS lists them backwards in the ASL. > >>>> There isn't a workaround currently short of fixing your ASL to > >>>> list them in the COM1/COM2 order and building a custom dsdt. > >>> > >>> Many thanks for your input, > >>> > >>> So would it be sufficient in the _INI method, just to swap the > >>> order of initialization (I'm guessing here) for the COMA and > >>> COMB sections? COMA and COMB both have full resource templates > >>> for all possible legal settings. > >> > >> No, you have to swap the COMA and COMB devices themselves. > > > > Ahh ok. You must forgive me if I seem dense since this is the > > first time I've looked at repairing these types of instruction > > files. Are you saying that the order that they appear in the > > .asl is important? > > Yes, that's what he means. Move the whole Device (COMA) { ... } > section before COMB if that's what you want. > > Ultimate solution is probably to implement _SRS support (set > resource) so that we can reconfigure the devices according to their > desired order. That's not even on anyone's todo list I think. I had to deal with something similar like this: http://docs.freebsd.org/cgi/mid.cgi?200607032340.k63NewqE054013 Another ugly hack is in fdc(4) probing. If anyone can fix these issues properly, I am all ears. It's amazing that ISA devices are still haunting us. :-/ Jung-uk Kim From owner-freebsd-acpi@FreeBSD.ORG Fri Jul 7 16:55:42 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 58A4A16A4DA for ; Fri, 7 Jul 2006 16:55:42 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id B09CF43D4C for ; Fri, 7 Jul 2006 16:55:41 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k67GtbOq018719; Fri, 7 Jul 2006 12:55:40 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-acpi@freebsd.org Date: Fri, 7 Jul 2006 12:40:56 -0400 User-Agent: KMail/1.9.1 References: <44AD6F67.9060804@root.org> In-Reply-To: <44AD6F67.9060804@root.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200607071240.57062.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Fri, 07 Jul 2006 12:55:40 -0400 (EDT) X-Virus-Scanned: ClamAV 0.87.1/1589/Fri Jul 7 10:37:51 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx Cc: othermark Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Jul 2006 16:55:42 -0000 On Thursday 06 July 2006 16:15, Nate Lawson wrote: > > Ahh ok. You must forgive me if I seem dense since this is the first time > > I've looked at repairing these types of instruction files. Are you > > saying that the order that they appear in the .asl is important? > > Yes, that's what he means. Move the whole Device (COMA) { ... } section > before COMB if that's what you want. > > Ultimate solution is probably to implement _SRS support (set resource) > so that we can reconfigure the devices according to their desired order. > That's not even on anyone's todo list I think. That actually wouldn't fix it. One of the issues here with the backwards com ports is that the serial port ends up on sio0 by default, so if sio0 ends up as COM2, then the kernel ends up switching to a different port for its serial console (or it just uses a different one than the rest of the bootstrap). Since COMA is wired to com1 and COMB is wired to the com2 port on the motherboard, merely swapping the resources around will end up with the same end result: sio0 will be COMB == com2, and sio1 will be COMA == com1. The real solution is to allow for hints to be used to "wire" unit numbers. I thought about this on my drive into work today and came up with a rough design: First, when new-bus goes to probe a device, it currently temporarily assigns it a unit number for each candidate driver. If new-bus ends up using that driver for the device, the unit number "sticks". Right now the unit number allocation is rather simple, it just uses the highest unit attached so far + 1. What I would like it to do is start with unit 0 and look for a free unit number each time. The first test would be if the unit has an assigned device already. Secondly, for each unit we would see if there were any matching hints for that (driver-name, unit) pair. If so, then we'd call a method in the parent device (would be a new bus_if.m method called bus_hint_compatible() or something) to determine if this device is compatible with the specified hints and can thus "take over" the hint-specified device or if it should skip this unit number. The default implementation would for bus_hint_compatible() would be to reject the hint device if it contains any resource hints (irq, port, mem, drq). This would mostly preserve existing behavior for things like the PCI bus (it would also remove the need for the current hack in sio to try to bump up the unit number of PCI sio(4) devices to leave sio0 and sio1 open for COM1 and COM2). For the ISA and ACPI bus drivers though, they would actually compare the resource hints to see if they were a subset of the resources assigned to the device_t via PnP or ACPI. For example, they would make sure the IRQ matched if it was assigned, or that the port. mem, and drq resources were contained in at least one of the port, mem, or drq resources that device had. Thus, you could wire sio0 to the default COM1 by specifying 0x3f8 for the port (in fact, our default device.hints file would Just Work(tm) for things like COM ports with this) regardless of the order of COM1 or COM2 in the ASL or PnP BIOS list. This also makes it possible to define other hint mechanisms if we wanted. For example, if you wanted to swap the unit numbers of two PCI NIC cards for some reason you could maybe do something like 'hint.fxp.0.slot="0.4.0"' to hardcode fxp0 as being the card at bus 0, device 4, function 0 and teach the PCI bus driver to grok that hint. While this would make the search for unit numbers slower (potentially O(n^2) to walk the list of units and walk the list of hints for each unit), that may not be a problem since we do that fairly rarely. If needed we could also come up with some sort of caching mechanism for the hint search as that is the part I expect would be the slowest. Probably easier to just do the simple implementation first and only try to optimize if we need it. -- John Baldwin From owner-freebsd-acpi@FreeBSD.ORG Fri Jul 7 17:38:58 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4C6A216A4E1; Fri, 7 Jul 2006 17:38:58 +0000 (UTC) (envelope-from takawata@init-main.com) Received: from ns.init-main.com (104.194.138.210.bn.2iij.net [210.138.194.104]) by mx1.FreeBSD.org (Postfix) with ESMTP id DC5D043D49; Fri, 7 Jul 2006 17:38:57 +0000 (GMT) (envelope-from takawata@init-main.com) Received: from init-main.com (localhost [127.0.0.1]) by ns.init-main.com (8.13.6/8.13.3) with ESMTP id k67HcmJG006425; Sat, 8 Jul 2006 02:38:55 +0900 (JST) (envelope-from takawata@init-main.com) Message-Id: <200607071738.k67HcmJG006425@ns.init-main.com> To: freebsd-acpi@freebsd.org In-reply-to: Your message of "Fri, 07 Jul 2006 12:40:56 -0400." <200607071240.57062.jhb@freebsd.org> Date: Sat, 08 Jul 2006 02:38:48 +0900 From: Takanori Watanabe Cc: atkin901@yahoo.com Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Jul 2006 17:38:58 -0000 In message <200607071240.57062.jhb@freebsd.org>, John Baldwin $B$5$s$$$o$/(B: >On Thursday 06 July 2006 16:15, Nate Lawson wrote: >> > Ahh ok. You must forgive me if I seem dense since this is the first time >> > I've looked at repairing these types of instruction files. Are you >> > saying that the order that they appear in the .asl is important? >> >> Yes, that's what he means. Move the whole Device (COMA) { ... } section >> before COMB if that's what you want. >> >> Ultimate solution is probably to implement _SRS support (set resource) >> so that we can reconfigure the devices according to their desired order. >> That's not even on anyone's todo list I think. > >That actually wouldn't fix it. One of the issues here with the backwards com >ports is that the serial port ends up on sio0 by default, so if sio0 ends up >as COM2, then the kernel ends up switching to a different port for its serial >console (or it just uses a different one than the rest of the bootstrap). >Since COMA is wired to com1 and COMB is wired to the com2 port on the >motherboard, merely swapping the resources around will end up with the same >end result: sio0 will be COMB == com2, and sio1 will be COMA == com1. The >real solution is to allow for hints to be used to "wire" unit numbers. I >thought about this on my drive into work today and came up with a rough >design: > >First, when new-bus goes to probe a device, it currently temporarily assigns >it a unit number for each candidate driver. If new-bus ends up using that >driver for the device, the unit number "sticks". Right now the unit number >allocation is rather simple, it just uses the highest unit attached so far + >1. What I would like it to do is start with unit 0 and look for a free unit >number each time. The first test would be if the unit has an assigned device >already. Secondly, for each unit we would see if there were any matching >hints for that (driver-name, unit) pair. If so, then we'd call a method in >the parent device (would be a new bus_if.m method called >bus_hint_compatible() or something) to determine if this device is compatible >with the specified hints and can thus "take over" the hint-specified device >or if it should skip this unit number. > >The default implementation would for bus_hint_compatible() would be to reject >the hint device if it contains any resource hints (irq, port, mem, drq). >This would mostly preserve existing behavior for things like the PCI bus (it >would also remove the need for the current hack in sio to try to bump up the >unit number of PCI sio(4) devices to leave sio0 and sio1 open for COM1 and >COM2). For the ISA and ACPI bus drivers though, they would actually compare >the resource hints to see if they were a subset of the resources assigned to >the device_t via PnP or ACPI. For example, they would make sure the IRQ >matched if it was assigned, or that the port. mem, and drq resources were >contained in at least one of the port, mem, or drq resources that device had. > >Thus, you could wire sio0 to the default COM1 by specifying 0x3f8 for the >port (in fact, our default device.hints file would Just Work(tm) for things >like COM ports with this) regardless of the order of COM1 or COM2 in the ASL >or PnP BIOS list. We may want to use _UID resource to wire unit number. How about tweaking acpi_probe_child function so that attaching by _UID order? From owner-freebsd-acpi@FreeBSD.ORG Fri Jul 7 18:29:24 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B167516A4E6 for ; Fri, 7 Jul 2006 18:29:24 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7F19843D80 for ; Fri, 7 Jul 2006 18:29:18 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k67ITD6m019594; Fri, 7 Jul 2006 14:29:16 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: Takanori Watanabe Date: Fri, 7 Jul 2006 14:28:27 -0400 User-Agent: KMail/1.9.1 References: <200607071738.k67HcmJG006425@ns.init-main.com> In-Reply-To: <200607071738.k67HcmJG006425@ns.init-main.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200607071428.27775.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Fri, 07 Jul 2006 14:29:16 -0400 (EDT) X-Virus-Scanned: ClamAV 0.87.1/1589/Fri Jul 7 10:37:51 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx Cc: freebsd-acpi@freebsd.org, atkin901@yahoo.com Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Jul 2006 18:29:24 -0000 On Friday 07 July 2006 13:38, Takanori Watanabe wrote: > In message <200607071240.57062.jhb@freebsd.org>, John Baldwin $B$5$s$$$o$/ (B: > We may want to use _UID resource to wire unit number. > How about tweaking acpi_probe_child function so that attaching by > _UID order? That's probably not a bad idea. However, it may be somewhat tricky to implement. A quick hack solution would be to add the _UID to the order which works as long as _UIDs are all < 10. I think the general case of unit wiring is still useful though as it has applications outside of just ACPI. -- John Baldwin From owner-freebsd-acpi@FreeBSD.ORG Fri Jul 7 19:41:33 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 889AF16A4E2 for ; Fri, 7 Jul 2006 19:41:33 +0000 (UTC) (envelope-from gofda-freebsd-acpi@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id C88F643D49 for ; Fri, 7 Jul 2006 19:41:32 +0000 (GMT) (envelope-from gofda-freebsd-acpi@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1FywCS-0003ns-BY for freebsd-acpi@freebsd.org; Fri, 07 Jul 2006 21:41:16 +0200 Received: from gw205.f5.com ([205.229.151.151]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 07 Jul 2006 21:41:16 +0200 Received: from atkin901 by gw205.f5.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 07 Jul 2006 21:41:16 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-acpi@freebsd.org From: othermark Date: Fri, 07 Jul 2006 12:41:03 -0700 Lines: 48 Message-ID: References: <200607050838.44324.jhb@freebsd.org> <200607060700.22376.jhb@freebsd.org> <44AD6F67.9060804@root.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: gw205.f5.com User-Agent: KNode/0.10.2 Sender: news Subject: Re: acpi on msi-9218 (-current) swaps sio0 and sio1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Jul 2006 19:41:33 -0000 Nate Lawson wrote: > othermark wrote: >> John Baldwin wrote: >> >>> On Wednesday 05 July 2006 14:14, othermark wrote: >>>> John Baldwin wrote: >>>> >>>>> On Thursday 29 June 2006 17:51, othermark wrote: >>>>>> With acpi loaded on a msi-9218 motherboard, I'm seeing sio0 and sio1 >>>>>> get 'swapped.' Even though the kernel is compiled for console on >>>>>> 0x3f8, I've had to change the /etc/ttys to use ttyd1 so login is >>>>>> displayed when the system is booted. >>>>>> >>>>>> Empirically, this tells me that 0x3f8 is correct for sio0 (since the >>>>>> kernel and boot loader display fine using it as comconsole). >>>>>> >>>>>> Is there a way to force this to be consistant? This is -current >>>>>> from Jun >>>>>> 8. I will try a more recent kernel soon. The following is a >>>>>> verbose boot log. >>>>> This is because your BIOS lists them backwards in the ASL. There >>>>> isn't a workaround currently short of fixing your ASL to list them in >>>>> the COM1/COM2 order and building a custom dsdt. >>>> Many thanks for your input, >>>> >>>> So would it be sufficient in the _INI method, just to swap the >>>> order of initialization (I'm guessing here) for the COMA and COMB >>>> sections? COMA and COMB both have full resource templates for all >>>> possible legal settings. >>> No, you have to swap the COMA and COMB devices themselves. >> >> Ahh ok. You must forgive me if I seem dense since this is the first time >> I've looked at repairing these types of instruction files. Are you >> saying that the order that they appear in the .asl is important? > > Yes, that's what he means. Move the whole Device (COMA) { ... } section > before COMB if that's what you want. Ok it works! The only reason I enabled acpi in the first place was to get em1 to stop sharing em0's interrupt, which now works great. Thanks everyone. -- othermark atkin901 at nospam dot yahoo dot com (!wired)?(coffee++):(wired); From owner-freebsd-acpi@FreeBSD.ORG Sat Jul 8 10:43:13 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 063BE16A4DA for ; Sat, 8 Jul 2006 10:43:13 +0000 (UTC) (envelope-from uwefarinol@yahoo.it) Received: from web27905.mail.ukl.yahoo.com (web27905.mail.ukl.yahoo.com [217.146.182.55]) by mx1.FreeBSD.org (Postfix) with SMTP id A48B443D46 for ; Sat, 8 Jul 2006 10:43:11 +0000 (GMT) (envelope-from uwefarinol@yahoo.it) Received: (qmail 32822 invoked by uid 60001); 8 Jul 2006 10:43:09 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.it; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type; b=NqQRGSQCAToUYyItjjS4AdS8uKZo4qywfdXuNVv359oqv9xSN/hhQfD9PjmFKpKAeXC0T6p8c7eRY9okv+6eOivobzdXUPGDwz14QBGEQ4GQaiHuvAPVN2GnUxV/RTEnrrHBONohlG9qwfcOPjnJUmMbUSVtIP1Usd6uX/G5UCc= ; Message-ID: <20060708104309.32820.qmail@web27905.mail.ukl.yahoo.com> Received: from [62.101.126.224] by web27905.mail.ukl.yahoo.com via HTTP; Sat, 08 Jul 2006 12:43:09 CEST Date: Sat, 8 Jul 2006 12:43:09 +0200 (CEST) From: uwe farinol To: freebsd-acpi@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-1891166672-1152355389=:31797" X-Mailman-Approved-At: Sat, 08 Jul 2006 11:25:32 +0000 Subject: partial support on asus p5vdc mx X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Jul 2006 10:43:13 -0000 --0-1891166672-1152355389=:31797 Content-Type: text/plain; charset=iso-8859-1 Content-Id: Content-Disposition: inline hi I run freebsd SMP on the mobo in subject, with a Pentium D 805 CPU. Everything is fine, but I get very few MIBs for acpi. Notably, I don't get support for the thermal sensor. While I saw it targets laptop mobos, I tried loading acpi_asus too, without any difference. ACPI is run as kernel module. If I dump my acpi bytecode and try to recompile it, as suggested in http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/acpi-debug.html, I get 11 errors (I attach the code below). My bios is up to the last version, and includes a trigger "ACPI 2.0 support", which has no impact on freebsd acpi when turned on/off. I attach the dump of dmesg the dump of my acpi sysctls (sysctl -a | grep acpi) and my asl from acpidump: [root@uwef /home/uwe]# acpidump -d -t -o pooracpi.dsdt > pooracpi.asl acpidump: RSDT entry 3 (sig OEMB) is corrupt How can I debug further my problem? thank you uwe farinol Chiacchiera con i tuoi amici in tempo reale! http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com --0-1891166672-1152355389=:31797 Content-Type: text/plain; name="acpi_sysctl.txt" Content-Description: 2412587287-acpi_sysctl.txt Content-Disposition: inline; filename="acpi_sysctl.txt" acpisem 24 2K - 24 64 acpitask 0 0K - 1 32 acpica 2610 138K - 37735 16,32,64,128,256,512,1024 acpidev 76 3K - 76 32 debug.acpi.acpi_ca_version: 0x20041119 debug.acpi.do_powerstate: 1 debug.acpi.semaphore_debug: 0 hw.acpi.supported_sleep_state: S1 S3 S4 S5 hw.acpi.power_button_state: S5 hw.acpi.sleep_button_state: S1 hw.acpi.lid_switch_state: NONE hw.acpi.standby_state: S1 hw.acpi.suspend_state: S3 hw.acpi.sleep_delay: 1 hw.acpi.s4bios: 0 hw.acpi.verbose: 0 hw.acpi.disable_on_reboot: 0 hw.acpi.reset_video: 1 hw.acpi.cpu.cx_supported: C1/0 hw.acpi.cpu.cx_lowest: C1 hw.acpi.cpu.cx_usage: 100.00% machdep.acpi_timer_freq: 3579545 machdep.acpi_root: 1026208 dev.acpi.0.%desc: A M I OEMXSDT dev.acpi.0.%driver: acpi dev.acpi.0.%parent: nexus0 dev.acpi_sysresource.0.%desc: System Resource dev.acpi_sysresource.0.%driver: acpi_sysresource dev.acpi_sysresource.0.%location: handle=\_SB_.PCI0.SBRG.RMSC dev.acpi_sysresource.0.%pnpinfo: _HID=PNP0C02 _UID=16 dev.acpi_sysresource.0.%parent: acpi0 dev.acpi_sysresource.1.%desc: System Resource dev.acpi_sysresource.1.%driver: acpi_sysresource dev.acpi_sysresource.1.%location: handle=\_SB_.PCI0.SBRG.OMSC dev.acpi_sysresource.1.%pnpinfo: _HID=PNP0C02 _UID=0 dev.acpi_sysresource.1.%parent: acpi0 dev.acpi_sysresource.2.%desc: System Resource dev.acpi_sysresource.2.%driver: acpi_sysresource dev.acpi_sysresource.2.%location: handle=\_SB_.PCI0.SBRG.SIOR dev.acpi_sysresource.2.%pnpinfo: _HID=PNP0C02 _UID=46 dev.acpi_sysresource.2.%parent: acpi0 dev.acpi_sysresource.3.%desc: System Resource dev.acpi_sysresource.3.%driver: acpi_sysresource dev.acpi_sysresource.3.%location: handle=\_SB_.PCI0.PCIE dev.acpi_sysresource.3.%pnpinfo: _HID=PNP0C02 _UID=17 dev.acpi_sysresource.3.%parent: acpi0 dev.acpi_sysresource.4.%desc: System Resource dev.acpi_sysresource.4.%driver: acpi_sysresource dev.acpi_sysresource.4.%location: handle=\_SB_.RMEM dev.acpi_sysresource.4.%pnpinfo: _HID=PNP0C01 _UID=1 dev.acpi_sysresource.4.%parent: acpi0 dev.acpi_timer.0.%desc: 24-bit timer at 3.579545MHz dev.acpi_timer.0.%driver: acpi_timer dev.acpi_timer.0.%location: unknown dev.acpi_timer.0.%pnpinfo: unknown dev.acpi_timer.0.%parent: acpi0 dev.pci_link.0.%parent: acpi0 dev.pci_link.1.%parent: acpi0 dev.pci_link.2.%parent: acpi0 dev.pci_link.3.%parent: acpi0 dev.pci_link.4.%parent: acpi0 dev.pci_link.5.%parent: acpi0 dev.pci_link.6.%parent: acpi0 dev.pci_link.7.%parent: acpi0 dev.cpu.0.%parent: acpi0 dev.cpu.1.%parent: acpi0 dev.acpi_throttle.0.%desc: ACPI CPU Throttling dev.acpi_throttle.0.%driver: acpi_throttle dev.acpi_throttle.0.%parent: cpu0 dev.acpi_throttle.0.freq_settings: 10000/-1 9375/-1 8750/-1 8125/-1 7500/-1 6875/-1 6250/-1 5625/-1 5000/-1 4375/-1 3750/-1 3125/-1 2500/-1 1875/-1 1250/-1 625/-1 dev.pcib.0.%parent: acpi0 dev.acpi_button.0.%desc: Sleep Button dev.acpi_button.0.%driver: acpi_button dev.acpi_button.0.%location: handle=\_SB_.SLPB dev.acpi_button.0.%pnpinfo: _HID=PNP0C0E _UID=0 dev.acpi_button.0.%parent: acpi0 dev.acpi_button.0.wake: 1 dev.acpi_button.1.%desc: Power Button dev.acpi_button.1.%driver: acpi_button dev.acpi_button.1.%location: handle=\_SB_.PWRB dev.acpi_button.1.%pnpinfo: _HID=PNP0C0C _UID=170 dev.acpi_button.1.%parent: acpi0 dev.atpic.0.%parent: acpi0 dev.atdma.0.%parent: acpi0 dev.attimer.0.%parent: acpi0 dev.attimer.1.%parent: acpi0 dev.npxisa.0.%parent: acpi0 dev.sio.0.%parent: acpi0 dev.fdc.0.%parent: acpi0 dev.atkbdc.0.%parent: acpi0 dev.psmcpnp.0.%parent: acpi0 --0-1891166672-1152355389=:31797 Content-Type: text/plain; name="dmesg.txt" Content-Description: 2784873370-dmesg.txt Content-Disposition: inline; filename="dmesg.txt" Copyright (c) 1992-2006 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 6.1-STABLE #3: Fri Jul 7 22:40:21 CEST 2006 root@root:/not/default ACPI APIC Table: Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel(R) Pentium(R) D CPU 2.66GHz (2660.03-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf47 Stepping = 7 Features=0xbfebfbff Features2=0x651d> AMD Features=0x20000000 AMD Features2=0x1 Cores per package: 2 real memory = 519766016 (495 MB) avail memory = 503316480 (480 MB) FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ioapic0 irqs 0-23 on motherboard kbd1 at kbdmux0 acpi0: on motherboard acpi0: Power Button (fixed) Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0 cpu0: on acpi0 acpi_throttle0: on cpu0 cpu1: on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 pcib1: at device 1.0 on pci0 pci1: on pcib1 pci1: at device 0.0 (no driver attached) atapci0: port 0xec00-0xec07,0xe880-0xe883,0xe800-0xe807,0xe480-0xe483,0xe400-0xe40f mem 0xfbfffc00-0xfbffffff irq 21 at device 15.0 on pci0 ata2: on atapci0 ata3: on atapci0 atapci1: port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 15.1 on pci0 ata0: on atapci1 ata1: on atapci1 uhci0: port 0xe080-0xe09f irq 20 at device 16.0 on pci0 uhci0: [GIANT-LOCKED] usb0: on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered uhci1: port 0xe000-0xe01f irq 22 at device 16.1 on pci0 uhci1: [GIANT-LOCKED] usb1: on uhci1 usb1: USB revision 1.0 uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered uhci2: port 0xdc00-0xdc1f irq 21 at device 16.2 on pci0 uhci2: [GIANT-LOCKED] usb2: on uhci2 usb2: USB revision 1.0 uhub2: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub2: 2 ports with 2 removable, self powered uhci3: port 0xd880-0xd89f irq 23 at device 16.3 on pci0 uhci3: [GIANT-LOCKED] usb3: on uhci3 usb3: USB revision 1.0 uhub3: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub3: 2 ports with 2 removable, self powered ehci0: mem 0xfbfff800-0xfbfff8ff irq 22 at device 16.4 on pci0 ehci0: [GIANT-LOCKED] usb4: EHCI version 1.0 usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3 usb4: on ehci0 usb4: USB revision 2.0 uhub4: VIA EHCI root hub, class 9/0, rev 2.00/1.00, addr 1 uhub4: 8 ports with 8 removable, self powered isab0: at device 17.0 on pci0 isa0: on isab0 vr0: port 0xd400-0xd4ff mem 0xfbfff400-0xfbfff4ff irq 23 at device 18.0 on pci0 miibus0: on vr0 rlphy0: on miibus0 rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto vr0: Ethernet address: 00:e0:12:34:56:78 pcib2: at device 19.0 on pci0 pci2: on pcib2 pcib3: at device 0.0 on pci2 pci3: on pcib3 pcib4: at device 0.1 on pci2 pci4: on pcib4 pcib5: at device 19.1 on pci0 pci5: on pcib5 rl0: port 0xc800-0xc8ff mem 0xfbeffc00-0xfbeffcff irq 17 at device 8.0 on pci5 miibus1: on rl0 rlphy1: on miibus1 rlphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto rl0: Ethernet address: 00:30:84:77:49:78 acpi_button0: on acpi0 acpi_button1: on acpi0 sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 sio0: type 16550A fdc0: port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0 fdc0: [FAST] atkbdc0: port 0x60,0x64 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] psm0: irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: model MouseMan+, device ID 0 pmtimer0 on isa0 sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio1: configured irq 3 not in bitmap of probed irqs 0 sio1: port may not be enabled vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 Timecounters tick every 1.000 msec ad4: 76319MB at ata2-master SATA150 SMP: AP CPU #1 Launched! Trying to mount root from ufs:/dev/ad4s1a --0-1891166672-1152355389=:31797 Content-Type: application/octet-stream; name="pooracpi.asl" Content-Transfer-Encoding: base64 Content-Description: 659540350-pooracpi.asl Content-Disposition: attachment; filename="pooracpi.asl" LyoKICBSU0QgUFRSOiBPRU09QUNQSUFNLCBBQ1BJX1Jldj0yLjB4ICgyKQoJ WFNEVD0weDFlZmIwMTAwLCBsZW5ndGg9MzYsIGNrc3VtPTE5NAogKi8KLyoK ICBYU0RUOiBMZW5ndGg9NjgsIFJldmlzaW9uPTEsIENoZWNrc3VtPTExNCwK CU9FTUlEPUEgTSBJLCBPRU0gVGFibGUgSUQ9T0VNWFNEVCwgT0VNIFJldmlz aW9uPTB4NDAwMDYxNCwKCUNyZWF0b3IgSUQ9TVNGVCwgQ3JlYXRvciBSZXZp c2lvbj0weDk3CglFbnRyaWVzPXsgMHgxZWZiMDI5MCwgMHgxZWZiMDM5MCwg MHgxZWZiMDNmMCwgMHgxZWZiZTA0MCB9CiAqLwovKgogIEZBQ1A6IExlbmd0 aD0yNDQsIFJldmlzaW9uPTMsIENoZWNrc3VtPTExMCwKCU9FTUlEPUEgTSBJ LCBPRU0gVGFibGUgSUQ9T0VNRkFDUCwgT0VNIFJldmlzaW9uPTB4NDAwMDYx NCwKCUNyZWF0b3IgSUQ9TVNGVCwgQ3JlYXRvciBSZXZpc2lvbj0weDk3CiAJ RkFDUz0weDFlZmJlMDAwLCBEU0RUPTB4MWVmYjA0MzAKCUlOVF9NT0RFTD1B UElDCglQcmVmZXJyZWRfUE1fUHJvZmlsZT1EZXNrdG9wICgxKQoJU0NJX0lO VD05CglTTUlfQ01EPTB4ODJmLCBBQ1BJX0VOQUJMRT0weGUxLCBBQ1BJX0RJ U0FCTEU9MHgxZSwgUzRCSU9TX1JFUT0weDAKCVBTVEFURV9DTlQ9MHhlMgoJ UE0xYV9FVlRfQkxLPTB4ODAwLTB4ODAzCglQTTFhX0NOVF9CTEs9MHg4MDQt MHg4MDUKCVBNX1RNUl9CTEs9MHg4MDgtMHg4MGIKCUdQRTBfQkxLPTB4ODIw LTB4ODIzCglDU1RfQ05UPTB4ZTMKCVBfTFZMMl9MQVQ9MTAxIHVzLCBQX0xW TDNfTEFUPTEwMDEgdXMKCUZMVVNIX1NJWkU9MTAyNCwgRkxVU0hfU1RSSURF PTE2CglEVVRZX09GRlNFVD0wLCBEVVRZX1dJRFRIPTQKCURBWV9BTFJNPTEy NSwgTU9OX0FMUk09MTI2LCBDRU5UVVJZPTUwCglJQVBDX0JPT1RfQVJDSD17 TEVHQUNZX0RFViw4MDQyfQoJRmxhZ3M9e1dCSU5WRCxQUk9DX0MxLFNMUF9C VVRUT04sUlRDX1M0fQoJWF9GQUNTPTB4MWVmYmUwMDAsIFhfRFNEVD0weDFl ZmIwNDMwCglYX1BNMWFfRVZUX0JMSz0weDgwMDowWzMyXSAoSU8pCglYX1BN MWFfQ05UX0JMSz0weDgwNDowWzE2XSAoSU8pCglYX1BNX1RNUl9CTEs9MHg4 MDg6MFszMl0gKElPKQoJWF9HUEUwX0JMSz0weDgyMDowWzMyXSAoSU8pCiAq LwovKgogIEZBQ1M6CUxlbmd0aD02NCwgSHdTaWc9MHgwMDAwMDAwMCwgRmly bV9XYWtlX1ZlYz0weDAwMDAwMDAwCglHbG9iYWxfTG9jaz0KCUZsYWdzPQoJ VmVyc2lvbj0xCiAqLwovKgogIERTRFQ6IExlbmd0aD0xOTUwNiwgUmV2aXNp b249MSwgQ2hlY2tzdW09NDYsCglPRU1JRD1BMDQwMywgT0VNIFRhYmxlIElE PUEwNDAzNTAzLCBPRU0gUmV2aXNpb249MHg1MDMsCglDcmVhdG9yIElEPUlO VEwsIENyZWF0b3IgUmV2aXNpb249MHgyMDAyMDI2CiAqLwovKgogIEFQSUM6 IExlbmd0aD05MiwgUmV2aXNpb249MSwgQ2hlY2tzdW09NjksCglPRU1JRD1B IE0gSSwgT0VNIFRhYmxlIElEPU9FTUFQSUMsIE9FTSBSZXZpc2lvbj0weDQw MDA2MTQsCglDcmVhdG9yIElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHg5 NwoJTG9jYWwgQVBJQyBBRERSPTB4ZmVlMDAwMDAKCUZsYWdzPXtQQy1BVH0K CglUeXBlPUxvY2FsIEFQSUMKCUFDUEkgQ1BVPTEKCUZsYWdzPXtFTkFCTEVE fQoJQVBJQyBJRD0wCgoJVHlwZT1Mb2NhbCBBUElDCglBQ1BJIENQVT0yCglG bGFncz17RU5BQkxFRH0KCUFQSUMgSUQ9MQoKCVR5cGU9SU8gQVBJQwoJQVBJ QyBJRD0yCglJTlQgQkFTRT0wCglBRERSPTB4MDAwMDAwMDBmZWMwMDAwMAoK CVR5cGU9SU5UIE92ZXJyaWRlCglCVVM9MAoJSVJRPTAKCUlOVFI9MgoJRmxh Z3M9e1BvbGFyaXR5PWNvbmZvcm1pbmcsIFRyaWdnZXI9Y29uZm9ybWluZ30K CglUeXBlPUlOVCBPdmVycmlkZQoJQlVTPTAKCUlSUT05CglJTlRSPTkKCUZs YWdzPXtQb2xhcml0eT1hY3RpdmUtbG8sIFRyaWdnZXI9bGV2ZWx9CiAqLwov KgogIE1DRkc6IExlbmd0aD02MCwgUmV2aXNpb249MSwgQ2hlY2tzdW09MTI5 LAoJT0VNSUQ9QSBNIEksIE9FTSBUYWJsZSBJRD1PRU1NQ0ZHLCBPRU0gUmV2 aXNpb249MHg0MDAwNjE0LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJl dmlzaW9uPTB4OTcKCglCYXNlIEFkZHJlc3M9IDB4MDAwMDAwMDBlMDAwMDAw MAoJU2VnbWVudCBHcm91cD0gMHgwMDAwCglTdGFydCBCdXM9IDIKCUVuZCBC dXM9IDI1NQogKi8KLyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0 ZWN0dXJlCiAqIEFNTCBEaXNhc3NlbWJsZXIgdmVyc2lvbiAyMDA0MTExOQog KgogKiBEaXNhc3NlbWJseSBvZiAvdG1wL2FjcGlkdW1wLjVDOU9WRiwgU2F0 IEp1bCAgOCAxMjo0MjoyOSAyMDA2CiAqLwpEZWZpbml0aW9uQmxvY2sgKCJE U0RULmFtbCIsICJEU0RUIiwgMSwgIkEwNDAzIiwgIkEwNDAzNTAzIiwgMTI4 MykKewogICAgTmFtZSAoU1BJTywgMHgyRSkKICAgIE5hbWUgKElPUEIsIDB4 MEMwMCkKICAgIE5hbWUgKElPUEwsIDB4MTApCiAgICBOYW1lIChJT0VCLCAw eDBEMDApCiAgICBOYW1lIChJT0VMLCAweDEwKQogICAgTmFtZSAoSU9HQiwg MHgwQTIwKQogICAgTmFtZSAoSU9HTCwgMHgxMCkKICAgIE5hbWUgKElPREIs IDB4MEEzMCkKICAgIE5hbWUgKElPREwsIDB4MTApCiAgICBOYW1lIChJTzFC LCAweDBBMjApCiAgICBOYW1lIChJTzFMLCAweDA4KQogICAgTmFtZSAoSU8z QiwgMHgwRDAwKQogICAgTmFtZSAoSU8zTCwgMHg4MCkKICAgIE5hbWUgKENQ VUMsIDB4MDIpCiAgICBOYW1lIChBUElDLCAweDAxKQogICAgTmFtZSAoUE1C UywgMHgwODAwKQogICAgTmFtZSAoUE1MTiwgMHg4MCkKICAgIE5hbWUgKFBN MjgsIDB4MDgyOCkKICAgIE5hbWUgKEdQQlMsIDB4MDApCiAgICBOYW1lIChH UExOLCAweDAwKQogICAgTmFtZSAoU01CUywgMHgwNDAwKQogICAgTmFtZSAo U01CTCwgMHgyMCkKICAgIE5hbWUgKFNVU1csIDB4MDQpCiAgICBOYW1lIChQ Q0lCLCAweEUwMDAwMDAwKQogICAgTmFtZSAoUENJTCwgMHgxMDAwMDAwMCkK ICAgIE9wZXJhdGlvblJlZ2lvbiAoQklPUywgU3lzdGVtTWVtb3J5LCAweDFF RkJFMDY0LCAweEZGKQogICAgRmllbGQgKEJJT1MsIEJ5dGVBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgU1MxLCAgICAxLCAKICAgICAg ICBTUzIsICAgIDEsIAogICAgICAgIFNTMywgICAgMSwgCiAgICAgICAgU1M0 LCAgICAxLCAKICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICBJT1NU LCAgIDE2LCAKICAgICAgICBUT1BNLCAgIDMyLCAKICAgICAgICBST01TLCAg IDMyLCAKICAgICAgICBNRzFCLCAgIDMyLCAKICAgICAgICBNRzFMLCAgIDMy LCAKICAgICAgICBNRzJCLCAgIDMyLCAKICAgICAgICBNRzJMLCAgIDMyLCAK ICAgICAgICBPZmZzZXQgKDB4MUMpLCAKICAgICAgICBBU1NCLCAgIDgsIAog ICAgICAgIEFPVEIsICAgOCwgCiAgICAgICAgQUFYQiwgICAzMiwgCiAgICAg ICAgRE1BWCwgICA4LCAKICAgICAgICBIUFRBLCAgIDMyCiAgICB9CgogICAg TWV0aG9kIChSUklPLCA0LCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAg IFN0b3JlICgiUlJJTyIsIERlYnVnKQogICAgfQoKICAgIE1ldGhvZCAoUkRN QSwgMywgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTdG9yZSAoInJE TUEiLCBEZWJ1ZykKICAgIH0KCiAgICBOYW1lIChQSUNNLCAweDAwKQogICAg TWV0aG9kIChfUElDLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAg IElmIChBcmcwKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKDB4QUEs IERCRzgpCiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAg ICAgICAgIFN0b3JlICgweEFDLCBEQkc4KQogICAgICAgIH0KCiAgICAgICAg U3RvcmUgKEFyZzAsIFBJQ00pCiAgICB9CgogICAgTmFtZSAoT1NWUiwgT25l cykKICAgIE1ldGhvZCAoT1NGTCwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsK ICAgICAgICBJZiAoTE5vdCAoTEVxdWFsIChPU1ZSLCBPbmVzKSkpCiAgICAg ICAgewogICAgICAgICAgICBSZXR1cm4gKE9TVlIpCiAgICAgICAgfQoKICAg ICAgICBJZiAoTEVxdWFsIChQSUNNLCAweDAwKSkKICAgICAgICB7CiAgICAg ICAgICAgIFN0b3JlICgweEFDLCBEQkc4KQogICAgICAgIH0KCiAgICAgICAg U3RvcmUgKDB4MDEsIE9TVlIpCiAgICAgICAgSWYgKE1DVEggKFxfT1MsICJN aWNyb3NvZnQgV2luZG93cyBOVCIpKQogICAgICAgIHsKICAgICAgICAgICAg U3RvcmUgKDB4MDAsIE9TVlIpCiAgICAgICAgfQogICAgICAgIEVsc2UKICAg ICAgICB7CiAgICAgICAgICAgIElmIChNQ1RIIChcX09TLCAiTWljcm9zb2Z0 IFdpbmRvd3NNRTogTWlsbGVubml1bSBFZGl0aW9uIikpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFN0b3JlICgweDAyLCBPU1ZSKQogICAgICAg ICAgICB9CgogICAgICAgICAgICBJZiAoTUNUSCAoXF9PUywgIkxpbnV4Iikp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBP U1ZSKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBSZXR1cm4g KE9TVlIpCiAgICB9CgogICAgTWV0aG9kIChNQ1RILCAyLCBOb3RTZXJpYWxp emVkKQogICAgewogICAgICAgIElmIChMTGVzcyAoU2l6ZU9mIChBcmcwKSwg U2l6ZU9mIChBcmcxKSkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgfQoKICAgICAgICBBZGQgKFNpemVPZiAoQXJnMCks IDB4MDEsIExvY2FsMCkKICAgICAgICBOYW1lIChCVUYwLCBCdWZmZXIgKExv Y2FsMCkge30pCiAgICAgICAgTmFtZSAoQlVGMSwgQnVmZmVyIChMb2NhbDAp IHt9KQogICAgICAgIFN0b3JlIChBcmcwLCBCVUYwKQogICAgICAgIFN0b3Jl IChBcmcxLCBCVUYxKQogICAgICAgIFdoaWxlIChMb2NhbDApCiAgICAgICAg ewogICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAg SWYgKExOb3QgKExFcXVhbCAoRGVyZWZPZiAoSW5kZXggKEJVRjAsIExvY2Fs MCkpLCBEZXJlZk9mIChJbmRleCAoQlVGMSwgTG9jYWwwKSkpKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICB9CiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKE9uZSkKICAgIH0K CiAgICBOYW1lIChQUldQLCBQYWNrYWdlICgweDAyKQogICAgewogICAgICAg IFplcm8sIAogICAgICAgIFplcm8KICAgIH0pCiAgICBNZXRob2QgKEdQUlcs IDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU3RvcmUgKEFyZzAs IEluZGV4IChQUldQLCAweDAwKSkKICAgICAgICBTdG9yZSAoU2hpZnRMZWZ0 IChTUzEsIDB4MDEpLCBMb2NhbDApCiAgICAgICAgT3IgKExvY2FsMCwgU2hp ZnRMZWZ0IChTUzIsIDB4MDIpLCBMb2NhbDApCiAgICAgICAgT3IgKExvY2Fs MCwgU2hpZnRMZWZ0IChTUzMsIDB4MDMpLCBMb2NhbDApCiAgICAgICAgT3Ig KExvY2FsMCwgU2hpZnRMZWZ0IChTUzQsIDB4MDQpLCBMb2NhbDApCiAgICAg ICAgSWYgKEFuZCAoU2hpZnRMZWZ0ICgweDAxLCBBcmcxKSwgTG9jYWwwKSkK ICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChBcmcxLCBJbmRleCAoUFJX UCwgMHgwMSkpCiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7CiAg ICAgICAgICAgIFNoaWZ0UmlnaHQgKExvY2FsMCwgMHgwMSwgTG9jYWwwKQog ICAgICAgICAgICBJZiAoTE9yIChMRXF1YWwgKE9TRkwgKCksIDB4MDEpLCBM RXF1YWwgKE9TRkwgKCksIDB4MDIpKSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgRmluZFNldExlZnRCaXQgKExvY2FsMCwgSW5kZXggKFBSV1As IDB4MDEpKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChMb2Nh bDAsIEluZGV4IChQUldQLCAweDAxKSkKICAgICAgICAgICAgfQogICAgICAg IH0KCiAgICAgICAgUmV0dXJuIChQUldQKQogICAgfQoKICAgIE5hbWUgKFdB S1AsIFBhY2thZ2UgKDB4MDIpCiAgICB7CiAgICAgICAgWmVybywgCiAgICAg ICAgWmVybwogICAgfSkKICAgIE9wZXJhdGlvblJlZ2lvbiAoREVCMCwgU3lz dGVtSU8sIDB4ODAsIDB4MDEpCiAgICBGaWVsZCAoREVCMCwgQnl0ZUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBEQkc4LCAgIDgKICAg IH0KCiAgICBPcGVyYXRpb25SZWdpb24gKERFQjEsIFN5c3RlbUlPLCAweDkw LCAweDAyKQogICAgRmllbGQgKERFQjEsIFdvcmRBY2MsIE5vTG9jaywgUHJl c2VydmUpCiAgICB7CiAgICAgICAgREJHOSwgICAxNgogICAgfQoKICAgIFNj b3BlIChcX1BSKQogICAgewogICAgICAgIFByb2Nlc3NvciAoQ1BVMSwgMHgw MSwgMHgwMDAwMDgxMCwgMHgwNikge30KICAgICAgICBQcm9jZXNzb3IgKENQ VTIsIDB4MDIsIDB4MDAwMDAwMDAsIDB4MDApIHt9CiAgICB9CgogICAgU2Nv cGUgKFxfU0IpCiAgICB7CiAgICAgICAgTmFtZSAoUFIwMCwgUGFja2FnZSAo MHgwRikKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICBMTktBLCAKICAg ICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg ICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDExRkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0MsIAogICAgICAgICAg ICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAx MEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg ICBMTktBLCAKICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMTBGRkZGLCAKICAgICAgICAgICAgICAgIDB4 MDEsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICAw eDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEwRkZGRiwg CiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0Ms IAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4MDAxMEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAg ICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgIDB4MDAKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAg ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAg ICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHgwMDEyRkZGRiwgCiAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg ICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAxMkZGRkYsIAogICAgICAgICAgICAg ICAgMHgwMiwgCiAgICAgICAgICAgICAgICBMTktDLCAKICAgICAgICAgICAg ICAgIDB4MDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJG RkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAg TE5LRCwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHgwMDBGRkZGRiwgCiAgICAgICAgICAgICAgICAweDAw LCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgMHgw MAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwRkZGRkYsIAog ICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICBMTktCLCAK ICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweDAwMEZGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAg ICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDBGRkZGRiwgCiAgICAgICAg ICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAg ICAgICAgICAgMHgwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAg ICBOYW1lIChBUjAwLCBQYWNrYWdlICgweDBGKQogICAgICAgIHsKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgxMAogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAg ICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg ICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMTFGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAg ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDE2CiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMDEwRkZGRiwgCiAgICAgICAgICAgICAg ICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg ICAgMHgxNAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxMEZG RkYsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAw eDAwLCAKICAgICAgICAgICAgICAgIDB4MTUKICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMTBGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIs IAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDE2 CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEwRkZGRiwgCiAg ICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIDB4MDAsIAog ICAgICAgICAgICAgICAgMHgxNwogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAxMkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MTcKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAg ICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg ICAgICAgICAweDE3CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDEyRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgxNwogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAxMkZGRkYsIAogICAgICAgICAgICAgICAg MHgwMywgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg IDB4MTcKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMEZGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw MCwgCiAgICAgICAgICAgICAgICAweDE1CiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDBGRkZGRiwgCiAgICAgICAgICAgICAgICAweDAxLCAK ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgxNQog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwRkZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg ICAgICAgICAgICAgIDB4MTUKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMEZGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDE1CiAgICAgICAg ICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDEsIFBhY2thZ2Ug KDB4MDEpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICBMTktBLCAKICAgICAg ICAgICAgICAgIDB4MDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAg ICAgTmFtZSAoQVIwMSwgUGFja2FnZSAoMHgwMSkKICAgICAgICB7CiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgxMAogICAgICAg ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQUjA3LCBQYWNrYWdl ICgweDA4KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAg ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAgICAg ICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAg ICAgTE5LRCwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIs IAogICAgICAgICAgICAgICAgTE5LRCwgCiAgICAgICAgICAgICAgICAweDAw CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAg ICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAgICAg ICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHgwMDAxRkZGRiwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg ICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAgICAg ICAgMHgwMSwgCiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAg ICAgIDB4MDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDFG RkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAg TE5LQiwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAgICAgICAweDAz LCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgMHgw MAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChBUjA3 LCBQYWNrYWdlICgweDA4KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgw MCwgCiAgICAgICAgICAgICAgICAweDE0CiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDEsIAogICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDE0CiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAg ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg ICAgICAweDE0CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgw MCwgCiAgICAgICAgICAgICAgICAweDE0CiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgxMQog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg ICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDExCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAg ICAgICAweDAzLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg ICAgICAgMHgxMQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBO YW1lIChQUjA4LCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg ICAgICAgTE5LQSwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4 MDEsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICAw eDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAg ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgTE5LQywgCiAg ICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAg ICAgICAgTE5LRCwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAg IH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDgsIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAg ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg ICAgICAgIDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZG RkYsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAw eDAwLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAg ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MTIKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAg ICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg ICAgICAgIDB4MTMKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAg TmFtZSAoUFIwOSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg ICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAw eDAxLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAg MHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAg ICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0MsIAog ICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAg ICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAg ICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChBUjA5LCBQYWNrYWdlICgw eDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAg ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg ICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhG RkZGLCAKICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAg MHgwMCwgCiAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAog ICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDEyCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAg ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg ICAgICAgICAweDEzCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAg IE5hbWUgKFBSMDUsIFBhY2thZ2UgKDB4MDkpCiAgICAgICAgewogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweDAwMDhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAg ICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAg ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIExOS0MsIAogICAgICAg ICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 MDAwOEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAg ICAgICBMTktDLCAKICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAweDAwMDhGRkZGLCAKICAgICAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAgICAgICAgICAgICAg ICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA4RkZG RiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIExO S0EsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIDB4MDAwOUZGRkYsIAogICAgICAgICAgICAgICAgMHgwMCwg CiAgICAgICAgICAgICAgICBMTktDLCAKICAgICAgICAgICAgICAgIDB4MDAK ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDlGRkZGLCAKICAg ICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAg ICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHgwMDA5RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwOUZGRkYsIAogICAgICAgICAg ICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAg ICAgICAgIDB4MDAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAg TmFtZSAoQVIwNSwgUGFja2FnZSAoMHgwOSkKICAgICAgICB7CiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAwOEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTRGRkZGLCAKICAgICAgICAg ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg ICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDA4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAg ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwOEZGRkYsIAogICAgICAgICAgICAgICAg MHgwMiwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg IDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDhGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgMHgw MCwgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDA5RkZGRiwgCiAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgxMgog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwOUZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAg ICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMDlGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDA5RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAzLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg ICAgICAgMHgxMQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBO YW1lIChQUlNBLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAg ICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCkgezMsNCw1 LDYsNywxMCwxMSwxMiwxNCwxNX0KICAgICAgICB9KQogICAgICAgIEFsaWFz IChQUlNBLCBQUlNCKQogICAgICAgIEFsaWFzIChQUlNBLCBQUlNDKQogICAg ICAgIEFsaWFzIChQUlNBLCBQUlNEKQogICAgICAgIEFsaWFzIChQUlNBLCBQ UlNFKQogICAgICAgIEFsaWFzIChQUlNBLCBQUlNGKQogICAgICAgIEFsaWFz IChQUlNBLCBQUlNHKQogICAgICAgIEFsaWFzIChQUlNBLCBQUlNIKQogICAg ICAgIERldmljZSAoUENJMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUg KF9ISUQsIEVpc2FJZCAoIlBOUDBBMDMiKSkKICAgICAgICAgICAgTmFtZSAo X0FEUiwgMHgwMCkKICAgICAgICAgICAgTWV0aG9kICheQk4wMCwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0 dXJuICgweDAwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9CQk4sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFJldHVybiAoQk4wMCAoKSkKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMCkKICAgICAgICAgICAgTWV0aG9k IChfUFJULCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEFSMDApCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgUmV0dXJuIChQUjAwKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChMT3IgKExFcXVh bCAoT1NGTCAoKSwgMHgwMSksIExFcXVhbCAoT1NGTCAoKSwgMHgwMikpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwMikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoTlBUUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKE5X QUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgRGV2aWNlIChOQkYxKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAxKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBEZXZpY2UgKE5CRjIpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDIpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIERldmljZSAoTkJGMykKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMykKICAgICAgICAgICAg fQoKICAgICAgICAgICAgRGV2aWNlIChOQkY0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA0KQogICAgICAgICAgICB9 CgogICAgICAgICAgICBEZXZpY2UgKE5CRjUpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDcpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIERldmljZSAoUDBQMSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDAxMDAwMCkKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQVIwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUFIwMSkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChTQlJHKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTEwMDAw KQogICAgICAgICAgICAgICAgTWV0aG9kIChTUFRTLCAxLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChMQW5kIChMRXF1YWwgKEFyZzAsIDB4MDQpLCBMRXF1YWwgKE9TRkwgKCks IDB4MDIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwICgweDBCQjgpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDAx KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFdoaWxlIChXQUtTKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFsbCAoMHg1MCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFdBS1MpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNVU1QpCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoXF9TQi5QQ0kwLk1DOTcuTUM5UCwgUFRCMCkKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwMCwgXF9TQi5QQ0kwLk1DOTcuTUM5UCkKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwgXF9TQi5TTFBTKQogICAgICAg ICAgICAgICAgICAgIFdoaWxlIChTTEVTKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RhbGwgKDB4NTApCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBTTEVTKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDEsIFNMRUUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChTV0FLLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmIChSVENYKSB7fQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QV1JCLCAweDAyKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKFplcm8sIFJUQ1gpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9u ZSwgUFdCVCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUFRCMCwgXF9T Qi5QQ0kwLk1DOTcuTUM5UCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAo WmVybywgU0xFRSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywg XF9TQi5QQ0kwLlVTQjEuVTE4NCkKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoWmVybywgXF9TQi5QQ0kwLlVTQjIuVTI4NCkKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kwLlVTQjMuVTM4NCkKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kwLlVTQjQuVTQ4 NCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kw LkVIQ0kuVTU4NCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwg XF9TQi5TTFBTKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE9wZXJhdGlvblJlZ2lvbiAoUE1TMCwgU3lzdGVtSU8sIFBNQlMsIDB4MDQp CiAgICAgICAgICAgICAgICBGaWVsZCAoUE1TMCwgQnl0ZUFjYywgTm9Mb2Nr LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgICAgICBSVENTLCAg IDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMyksIAogICAg ICAgICAgICAgICAgICAgIFBXQlQsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDA0KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoSU9UUCwgU3lzdGVtSU8sIFBNMjgs IDB4MDQpCiAgICAgICAgICAgICAgICBGaWVsZCAoSU9UUCwgQnl0ZUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgLCAgIDcsIAogICAgICAgICAgICAgICAgICAgIFdB S1MsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAg ICAgICAgICAgICAgICAgICBTTEVTLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgICAgICAsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgUFMxUywgICAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAg ICAgICAgICAgICBTTEVFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAg ICAsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgUFMxRSwgICAxCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChcX1NCLlBDSTAuU0JSRy5QV0NSLCBQQ0lfQ29uZmlnLCAweDk0LCAweDAx KQogICAgICAgICAgICAgICAgRmllbGQgKFxfU0IuUENJMC5TQlJHLlBXQ1Is IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICwgICA0LCAKICAgICAgICAgICAg ICAgICAgICBTVVNULCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHgwMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBP cGVyYXRpb25SZWdpb24gKFxfU0IuUENJMC5TQlJHLkJTUjAsIFBDSV9Db25m aWcsIDB4NkYsIDB4MDEpCiAgICAgICAgICAgICAgICBGaWVsZCAoXF9TQi5Q Q0kwLlNCUkcuQlNSMCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDcs IAogICAgICAgICAgICAgICAgICAgIFJUQ1gsICAgMQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKFBUQkYsIEJ1ZmZlciAoMHgw MykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAw LCAweDAwLCAweDAwCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChQVEJGLCAweDAwLCBQVEIwKQogICAgICAg ICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChQVEJGLCAweDAxLCBQVEIxKQog ICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChQVEJGLCAweDAyLCBQ VEIyKQogICAgICAgICAgICAgICAgU2NvcGUgKFxfU0IpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoU0xQUywgMHgwMCkK ICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFNMUEIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElE LCBFaXNhSWQgKCJQTlAwQzBFIikpCiAgICAgICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KExOb3QgKExFcXVhbCAoU1VTVywgMHhGRikpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoU0JFViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKFNMUFMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChTTFBCLCAweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAo U0xQQiwgMHg4MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChcX0dQRS5fTDA0LCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcX1NCLlNMUEIuU0JFViAoKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDA0LCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERl dmljZSAoUElDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAwMDAiKSkKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsIDB4MDAyMCwgMHgwMDIwLCAweDAwLCAweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDBBMCwgMHgw MEEwLCAweDAwLCAweDAyKQogICAgICAgICAgICAgICAgICAgICAgICBJUlFO b0ZsYWdzICgpIHsyfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChETUFEKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQs IEVpc2FJZCAoIlBOUDAyMDAiKSkKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxp dHksIEJ1c01hc3RlciwgVHJhbnNmZXI4KSB7NH0KICAgICAgICAgICAgICAg ICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwMDAsIDB4MDAwMCwgMHgwMCwg MHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAw eDAwODEsIDB4MDA4MSwgMHgwMCwgMHgwMykKICAgICAgICAgICAgICAgICAg ICAgICAgSU8gKERlY29kZTE2LCAweDAwODcsIDB4MDA4NywgMHgwMCwgMHgw MSkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAw ODksIDB4MDA4OSwgMHgwMCwgMHgwMykKICAgICAgICAgICAgICAgICAgICAg ICAgSU8gKERlY29kZTE2LCAweDAwOEYsIDB4MDA4RiwgMHgwMCwgMHgwMSkK ICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwQzAs IDB4MDBDMCwgMHgwMCwgMHgyMCkKICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoVE1S KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9ISUQsIEVpc2FJZCAoIlBOUDAxMDAiKSkKICAgICAgICAgICAgICAgICAg ICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsIDB4MDA0MCwgMHgwMDQwLCAweDAwLCAweDA0KQogICAgICAgICAgICAg ICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHswfQogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2 aWNlIChSVEMwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBCMDAiKSkKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsIDB4MDA3MCwgMHgwMDcwLCAweDAwLCAweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHs4fQogICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgRGV2aWNlIChTUEtSKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDA4MDAiKSkK ICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA2MSwgMHgwMDYxLCAweDAwLCAw eDAxKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgRGV2aWNlIChDT1BSKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAo IlBOUDBDMDQiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDBGMCwgMHgw MEYwLCAweDAwLCAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBJUlFO b0ZsYWdzICgpIHsxM30KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoVUFSMSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlE LCAweDAxKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0hJRCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoVUhJRCAoMHgwMCkpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTVEEgKDB4MDApKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRENOVCAoMHgwMCwgMHgw MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRENS UyAoMHgwMCwgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBEU1JTIChBcmcwLCAweDAwKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChDTVBSKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChHUFJXICgweDA4LCAweDA0KSkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKENNUFIsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVwZW5kZW50Rm4gKDB4MDAsIDB4 MDApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwM0Y4LCAweDAzRjgsIDB4 MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0Zs YWdzICgpIHs0fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRE1BIChD b21wYXRpYmlsaXR5LCBOb3RCdXNNYXN0ZXIsIFRyYW5zZmVyOCkge30KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICBTdGFydERlcGVuZGVudEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LCAweDAzRjgsIDB4MDNGOCwgMHgwMSwgMHgwOCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkgezMsNCw1LDYsNywxMCwx MSwxMn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERNQSAoQ29tcGF0 aWJpbGl0eSwgTm90QnVzTWFzdGVyLCBUcmFuc2ZlcjgpIHt9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgU3Rh cnREZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwg MHgwMkY4LCAweDAyRjgsIDB4MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHszLDQsNSw2LDcsMTAsMTEsMTJ9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxp dHksIE5vdEJ1c01hc3RlciwgVHJhbnNmZXI4KSB7fQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVw ZW5kZW50Rm5Ob1ByaSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDNF OCwgMHgwM0U4LCAweDAxLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSVJRTm9GbGFncyAoKSB7Myw0LDUsNiw3LDEwLDExLDEyfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBO b3RCdXNNYXN0ZXIsIFRyYW5zZmVyOCkge30KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBTdGFydERlcGVuZGVu dEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAyRTgsIDB4 MDJFOCwgMHgwMSwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElSUU5vRmxhZ3MgKCkgezMsNCw1LDYsNywxMCwxMSwxMn0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERNQSAoQ29tcGF0aWJpbGl0eSwgTm90QnVz TWFzdGVyLCBUcmFuc2ZlcjgpIHt9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRGbk5v UHJpICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwM0Y4LCAweDAzRjgs IDB4MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlFO b0ZsYWdzICgpIHszLDQsNSw2LDcsMTAsMTEsMTJ9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3Rl ciwgVHJhbnNmZXI4KSB7MCwxLDIsM30KICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICBTdGFydERlcGVuZGVudEZu Tm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAyRjgsIDB4MDJG OCwgMHgwMSwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElS UU5vRmxhZ3MgKCkgezMsNCw1LDYsNywxMCwxMSwxMn0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERNQSAoQ29tcGF0aWJpbGl0eSwgTm90QnVzTWFz dGVyLCBUcmFuc2ZlcjgpIHswLDEsMiwzfQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVwZW5kZW50 Rm5Ob1ByaSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDNFOCwgMHgw M0U4LCAweDAxLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg SVJRTm9GbGFncyAoKSB7Myw0LDUsNiw3LDEwLDExLDEyfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBOb3RCdXNN YXN0ZXIsIFRyYW5zZmVyOCkgezAsMSwyLDN9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRl bnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMkU4LCAw eDAyRTgsIDB4MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJUlFOb0ZsYWdzICgpIHszLDQsNSw2LDcsMTAsMTEsMTJ9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1 c01hc3RlciwgVHJhbnNmZXI4KSB7MCwxLDIsM30KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbmREZXBlbmRl bnRGbiAoKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChGREMpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMDcwMCIpKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0ZE RSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEZERVAsIFBhY2thZ2UgKDB4 MDUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMgogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoX1NUQSAoKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDEsIEluZGV4IChGREVQLCAweDAwKSkKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChGREVQKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChEU1RBICgweDAzKSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIERDTlQgKDB4MDMsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBEQ1JTICgweDAzLCAweDAxKQogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoSVJRTSwgSVJRRSkKICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKERNQU0sIERNQUUpCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChJTzExLCBJTzIxKQogICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoSU8xMiwgSU8yMikKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDYsIExFTjIpCiAgICAgICAgICAgICAgICAgICAgICAgIEFk ZCAoSU8yMSwgMHgwNywgSU8zMSkKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKElPMzEsIElPMzIpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDAxLCBMRU4zKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKENSUzIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEU1JT IChBcmcwLCAweDAzKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVX b3JkRmllbGQgKEFyZzAsIDB4MTEsIElSUUUpCiAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgxNCwgRE1BRSkKICAg ICAgICAgICAgICAgICAgICAgICAgRU5GRyAoQ0dMRCAoMHgwMykpCiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChJUlFFKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaW5kU2V0 UmlnaHRCaXQgKElSUUUsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN1YnRyYWN0IChMb2NhbDAsIDB4MDEsIElOVFIpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgwMCwgSU5UUikKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKERNQUUp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoRE1BRSwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3VidHJhY3QgKExvY2FsMCwgMHgw MSwgRE1DSCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA0LCBETUNI KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBOYW1lIChfUFJTLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBTdGFydERlcGVuZGVudEZuICgweDAwLCAweDAwKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsIDB4MDNGMCwgMHgwM0YwLCAweDAxLCAweDA2KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAzRjcsIDB4 MDNGNywgMHgwMSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElSUU5vRmxhZ3MgKCkgezZ9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJhbnNmZXI4 KSB7Mn0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICBTdGFydERlcGVuZGVudEZuTm9QcmkgKCkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg SU8gKERlY29kZTE2LCAweDAzRjAsIDB4MDNGMCwgMHgwMSwgMHgwNikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwM0Y3 LCAweDAzRjcsIDB4MDEsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJUlFOb0ZsYWdzICgpIHszLDQsNSw2LDcsMTAsMTEsMTJ9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxpdHksIE5v dEJ1c01hc3RlciwgVHJhbnNmZXI4KSB7MCwxLDIsM30KICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBTdGFydERl cGVuZGVudEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAz NzAsIDB4MDM3MCwgMHgwMSwgMHgwNikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwgMHgwMzc3LCAweDAzNzcsIDB4MDEsIDB4 MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgp IHszLDQsNSw2LDcsMTAsMTEsMTJ9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJhbnNm ZXI4KSB7MCwxLDIsM30KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBFbmREZXBlbmRlbnRGbiAoKQogICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgRGV2aWNlIChMUFRFKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0hJRCwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmIChMUFRNICgweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxMDREMDQx KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwMDREMDQxKQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKERTVEEgKDB4MDIpKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgRENOVCAoMHgwMiwgMHgwMCkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIERDUlMgKDB4MDIsIDB4MDEpCiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChMUFRNICgweDAyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKElSUU0sIElSUUUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoRE1BTSwgRE1BRSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChJTzExLCBJTzIxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKElPMTIsIElPMjIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoTEVOMSwgTEVOMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFkZCAoSU8yMSwgMHgwNDAwLCBJTzMxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKElPMzEsIElPMzIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoTEVOMiwgTEVOMykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ1JTMikKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQ1JTMSkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFNSUyAoQXJnMCwg MHgwMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMUFRN ICgweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChFUFBSKQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMUFBSKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBO YW1lIChMUFBSLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdGFydERlcGVuZGVu dEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAzNzgsIDB4 MDM3OCwgMHgwMSwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElSUU5vRmxhZ3MgKCkgezMsNCw1LDYsNywxMCwxMSwxMn0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERNQSAoQ29tcGF0aWJpbGl0eSwgTm90QnVz TWFzdGVyLCBUcmFuc2ZlcjgpIHt9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRGbk5v UHJpICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMjc4LCAweDAyNzgs IDB4MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlFO b0ZsYWdzICgpIHszLDQsNSw2LDcsMTAsMTEsMTJ9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3Rl ciwgVHJhbnNmZXI4KSB7fQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVwZW5kZW50Rm5Ob1ByaSAo KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDNCQywgMHgwM0JDLCAweDAx LCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFn cyAoKSB7Myw0LDUsNiw3LDEwLDExLDEyfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBOb3RCdXNNYXN0ZXIsIFRy YW5zZmVyOCkge30KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbmREZXBlbmRlbnRGbiAoKQogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoRVBQUiwg UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRGbiAoMHgwMCwg MHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAzNzgsIDB4MDM3OCwg MHgwMSwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwgMHgwNzc4LCAweDA3NzgsIDB4MDEsIDB4MDgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHs3fQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBOb3RC dXNNYXN0ZXIsIFRyYW5zZmVyOCkgezN9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRG bk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMzc4LCAweDAz NzgsIDB4MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsIDB4MDc3OCwgMHgwNzc4LCAweDAxLCAweDA4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKSB7Myw0LDUs Niw3LDEwLDExLDEyfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRE1B IChDb21wYXRpYmlsaXR5LCBOb3RCdXNNYXN0ZXIsIFRyYW5zZmVyOCkgezAs MSwyLDN9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwgMHgwMjc4LCAweDAyNzgsIDB4MDEsIDB4MDgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDY3 OCwgMHgwNjc4LCAweDAxLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSVJRTm9GbGFncyAoKSB7Myw0LDUsNiw3LDEwLDExLDEyfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBO b3RCdXNNYXN0ZXIsIFRyYW5zZmVyOCkgezAsMSwyLDN9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRE ZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgw M0JDLCAweDAzQkMsIDB4MDEsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDdCQywgMHgwN0JDLCAweDAxLCAw eDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAo KSB7Myw0LDUsNiw3LDEwLDExLDEyfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBOb3RCdXNNYXN0ZXIsIFRyYW5z ZmVyOCkgezAsMSwyLDN9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgRW5kRGVwZW5kZW50Rm4gKCkKICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIERldmljZSAoR0FNRSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlBCMDJGIikp CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChEU1RBICgweDA4KSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIERDTlQgKDB4MDgsIDB4MDApCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChHTUNSLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDAwMCwgMHgw MDAwLCAweDA4LCAweDA4KQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChHTUNSLCAweDAyLCBJT0dMKQogICAgICAg ICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEdNQ1IsIDB4MDQs IElPR0gpCiAgICAgICAgICAgICAgICAgICAgICAgIEVORkcgKENHTEQgKDB4 MDgpKQogICAgICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKElPQUgs IDB4MDgsIElPR0wpCiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChJT0FM LCBJT0dMLCBJT0dMKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo SU9HTCwgSU9HSCkKICAgICAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdNQ1IpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9T UlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAs IDB4MDIsIElPMTEpCiAgICAgICAgICAgICAgICAgICAgICAgIEVORkcgKENH TEQgKDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICBBbmQgKElPMTEs IDB4RkYsIElPQUwpCiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0Umln aHQgKElPMTEsIDB4MDgsIElPQUgpCiAgICAgICAgICAgICAgICAgICAgICAg IERDTlQgKDB4MDgsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIEVY RkcgKCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVw ZW5kZW50Rm4gKDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwg MHgwMjAxLCAweDAyMDEsIDB4MDEsIDB4MDgpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRW5kRGVwZW5kZW50 Rm4gKCkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIERldmljZSAoTUlESSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg KCJQTlBCMDA2IikpCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU1RBICgweDA1KSkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERDTlQgKDB4MDUsIDB4MDAp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBO YW1lIChNRENSLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs IDB4MDAwMCwgMHgwMDAwLCAweDAxLCAweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICBJUlFOb0ZsYWdzICgpIHs1fQogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChNRENSLCAweDAyLCBJT01M KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKE1E Q1IsIDB4MDQsIElPTUgpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoTURDUiwgMHgwOSwgSVJRTSkKICAgICAgICAgICAgICAg ICAgICAgICAgRU5GRyAoQ0dMRCAoMHgwNSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIFNoaWZ0TGVmdCAoSU9BSCwgMHgwOCwgSU9NTCkKICAgICAgICAg ICAgICAgICAgICAgICAgT3IgKElPQUwsIElPTUwsIElPTUwpCiAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChJT01MLCBJT01IKQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoSU5UUikKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0ICgw eDAxLCBJTlRSLCBJUlFNKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDAsIElSUU0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChNRENSKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAyLCBJTzExKQogICAgICAg ICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4MDks IElSUU0pCiAgICAgICAgICAgICAgICAgICAgICAgIEVORkcgKENHTEQgKDB4 MDUpKQogICAgICAgICAgICAgICAgICAgICAgICBBbmQgKElPMTEsIDB4RkYs IElPQUwpCiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0UmlnaHQgKElP MTEsIDB4MDgsIElPQUgpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChJ UlFNKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUU0sIExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnRyYWN0IChMb2NhbDAs IDB4MDEsIElOVFIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwg SU5UUikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgRENOVCAoMHgwNSwgMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgRVhGRyAoKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgU3RhcnREZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNv ZGUxNiwgMHgwMzAwLCAweDAzMDAsIDB4MDEsIDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRE ZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgw MzMwLCAweDAzMzAsIDB4MDEsIDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRW5kRGVwZW5kZW50Rm4g KCkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKSB7NSw3 LDksMTAsMTF9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFJNU0MpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlz YUlkICgiUE5QMEMwMiIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9V SUQsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1JTLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDAxMCwgMHgwMDEw LCAweDAwLCAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsIDB4MDAyMiwgMHgwMDIyLCAweDAwLCAweDFFKQogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA0NCwgMHgwMDQ0LCAw eDAwLCAweDFDKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsIDB4MDA2MiwgMHgwMDYyLCAweDAwLCAweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA2NSwgMHgwMDY1LCAweDAw LCAweDBCKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs IDB4MDA3MiwgMHgwMDcyLCAweDAwLCAweDBFKQogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA4MCwgMHgwMDgwLCAweDAwLCAw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4 MDA4NCwgMHgwMDg0LCAweDAwLCAweDAzKQogICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsIDB4MDA4OCwgMHgwMDg4LCAweDAwLCAweDAx KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA4 QywgMHgwMDhDLCAweDAwLCAweDAzKQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsIDB4MDA5MCwgMHgwMDkwLCAweDAwLCAweDEwKQog ICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDBBMiwg MHgwMEEyLCAweDAwLCAweDFFKQogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsIDB4MDBFMCwgMHgwMEUwLCAweDAwLCAweDEwKQogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDNFMCwgMHgw M0UwLCAweDAwLCAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICBNZW1v cnkzMkZpeGVkIChSZWFkV3JpdGUsIDB4RkZCMDAwMDAsIDB4MDAxMDAwMDAp CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwNEQw LCAweDA0RDAsIDB4MDAsIDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwgMHgwMDAwLCAweDAwMDAsIDB4MDAsIDB4MDApCiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMDAwLCAw eDAwMDAsIDB4MDAsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwgMHgwMDAwLCAweDAwMDAsIDB4MDAsIDB4MDApCiAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENS UywgMHg4NiwgR1AwMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl V29yZEZpZWxkIChDUlMsIDB4ODgsIEdQMDEpCiAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQ1JTLCAweDhCLCBHUDBMKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUE1CUywgR1AwMCkKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKFBNQlMsIEdQMDEpCiAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChQTUxOLCBHUDBMKQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoU01CUykKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChDUlMsIDB4OEUsIEdQMTApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKENSUywgMHg5MCwgR1AxMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQ1JTLCAw eDkzLCBHUDFMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFNNQlMsIEdQMTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoU01CUywgR1AxMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChTTUJMLCBHUDFMKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoR1BCUykKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChDUlMsIDB4OTYsIEdQMjApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSUywgMHg5OCwgR1Ay MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs ZCAoQ1JTLCAweDlCLCBHUDJMKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKEdQQlMsIEdQMjApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoR1BCUywgR1AyMSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlIChHUExOLCBHUDJMKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTE9yIChMRXF1 YWwgKE9TRkwgKCksIDB4MDEpLCBMRXF1YWwgKE9TRkwgKCksIDB4MDIpKSkg e30KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChDUlMsIDB4NzgsIE1MMDMpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChDUlMsIDB4NzQsIE1C MDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRkIw MDAwMCwgTUIwMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAwNTAwMDAwLCBNTDAzKQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENSUykKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgU2NvcGUgKFxfU0IuUENJMC5TQlJHKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIERldmljZSAoQVNPQykKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9I SUQsICJBVEswMTEwIikKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgwMTAxMDExMCkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg RGV2aWNlIChQUzJLKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAzMDMiKSkKICAgICAg ICAgICAgICAgICAgICBOYW1lIChfQ0lELCAweDBCMDNEMDQxKQogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFNoaWZ0TGVmdCAoMHgwMSwgMHgwQSwgTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQW5kIChJT1NULCBMb2NhbDApKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMDYwLCAweDAw NjAsIDB4MDAsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwgMHgwMDY0LCAweDAwNjQsIDB4MDAsIDB4MDEpCiAgICAgICAg ICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkgezF9CiAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MDIsIDB4MDQp KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKFBTMk0pCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5Q MEYwMyIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsIDB4MTMw RkQwNDEpCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCAweDBDLCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKElPU1QsIExvY2Fs MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAw KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TmFtZSAoQ1JTMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAo KSB7MTJ9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICBOYW1lIChDUlMyLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsIDB4MDA2MCwgMHgwMDYwLCAweDAwLCAweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA2NCwgMHgwMDY0LCAw eDAwLCAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdz ICgpIHsxMn0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0 TGVmdCAoMHgwMSwgMHgwQSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQW5kIChJT1NULCBMb2NhbDApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KENSUzEpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENSUzIpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1BSVyAoMHgwOSwgMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IFNjb3BlIChcKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoXFJBTVcsIFN5c3RlbU1lbW9yeSwgU3Vi dHJhY3QgKFRPUE0sIDB4MDAwMTAwMDApLCAweDAwMDEwMDAwKQogICAgICAg ICAgICAgICAgICAgIEZpZWxkIChcUkFNVywgQnl0ZUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFBBUjAsICAgMzIsIAogICAgICAgICAgICAgICAgICAgICAg ICBQQVIxLCAgIDMyCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKElPQjIsIFN5c3RlbUlPLCAw eDA4MkYsIDB4MDIpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKElPQjIs IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBTTUlDLCAgIDgsIAogICAg ICAgICAgICAgICAgICAgICAgICBTTUlTLCAgIDgKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoSVNNSSwgMSwg U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBTTUlDKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChHTlZTLCAx LCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKEFyZzAsIFBBUjApCiAgICAgICAgICAg ICAgICAgICAgICAgIElTTUkgKDB4NzApCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUEFSMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoU05WUywgMiwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChBcmcwLCBQQVIwKQogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoQXJnMSwgUEFSMSkKICAgICAgICAgICAgICAgICAgICAgICAgSVNN SSAoMHg3MSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChcX1NCLlBDSTAuUENJRSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChf SElELCBFaXNhSWQgKCJQTlAwQzAyIikpCiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgxMSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChD UlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRP bmx5LCAweEUwMDAwMDAwLCAweDEwMDAwMDAwKQogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCAweDA0LCBC QVMxKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChDUlMsIDB4MDgsIExFTjEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChcUENJQiwgQkFTMSkKICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKFxQQ0lMLCBMRU4xKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKENSUykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChPTVNDKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJ ZCAoIlBOUDBDMDIiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlE LCAweDAwKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksIDB4MDAw MDAwMDAsIDB4MDAwMDAwMDApCiAgICAgICAgICAgICAgICAgICAgICAgIE1l bW9yeTMyRml4ZWQgKFJlYWRPbmx5LCAweDAwMDAwMDAwLCAweDAwMDAwMDAw KQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFQSUMpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgMHgwOCwgTUwwMSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENS UywgMHgwNCwgTUIwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKENSUywgMHgxNCwgTUwwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgMHgxMCwg TUIwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEZF QzAwMDAwLCBNQjAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MTAwMCwgTUwwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweEZFRTAwMDAwLCBNQjAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4MTAwMCwgTUwwMikKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChD UlMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIERldmljZSAoXF9TQi5STUVNKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJ ZCAoIlBOUDBDMDEiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlE LCAweDAxKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLCAweDAw MDAwMDAwLCAweDAwMEEwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBN ZW1vcnkzMkZpeGVkIChSZWFkT25seSwgMHgwMDAwMDAwMCwgMHgwMDAwMDAw MCkKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVh ZE9ubHksIDB4MDAwRTAwMDAsIDB4MDAwMjAwMDApCiAgICAgICAgICAgICAg ICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwgMHgwMDEwMDAw MCwgMHgwMDAwMDAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5 MzJGaXhlZCAoUmVhZE9ubHksIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDApCiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChDUlMsIDB4MTAsIEJBUzEpCiAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKENSUywgMHgxNCwgTEVOMSkKICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCAweDFDLCBCQVMy KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChD UlMsIDB4MjAsIExFTjIpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKENSUywgMHgyQywgTEVOMykKICAgICAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCAweDM0LCBCQVM0KQog ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChDUlMs IDB4MzgsIExFTjQpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChPU0ZM ICgpKSB7fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChNRzFCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMR3JlYXRlciAoTUcx QiwgMHgwMDBDMDAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoMHgwMDBDMDAwMCwgQkFTMSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3VidHJhY3QgKE1HMUIsIEJBUzEsIExFTjEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwMEMwMDAwLCBCQVMxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwMDIw MDAwLCBMRU4xKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBZGQgKE1HMUIsIE1HMUws IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgQkFT MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJ0cmFjdCAo MHgwMDEwMDAwMCwgQkFTMiwgTEVOMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3VidHJhY3QgKE1HMkIsIDB4MDAxMDAwMDAsIExF TjMpCiAgICAgICAgICAgICAgICAgICAgICAgIEFkZCAoTUcyQiwgTUcyTCwg QkFTNCkKICAgICAgICAgICAgICAgICAgICAgICAgU3VidHJhY3QgKDB4MDAs IEJBUzQsIExFTjQpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo Q1JTKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKFNJT1IpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgi UE5QMEMwMiIpKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VJRCwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1BJTykKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKENSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwMDAsIDB4MDAw MCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LCAweDAwMDAsIDB4MDAwMCwgMHgwMCwgMHgwMCkKICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwMDAsIDB4MDAwMCwg MHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LCAweDAwMDAsIDB4MDAwMCwgMHgwMCwgMHgwMCkKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwMDAsIDB4MDAwMCwgMHgw MCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChM QW5kIChMTm90IChMRXF1YWwgKFNQSU8sIDB4MDNGMCkpLCBMR3JlYXRlciAo U1BJTywgMHhGMCkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSUywg MHgwMiwgR1AxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoQ1JTLCAweDA0LCBHUDExKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUlMsIDB4MDcsIEdQTDEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU1BJTywgR1Ax MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChTUElPLCBH UDExKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIs IEdQTDEpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChJT1BCKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmll bGQgKENSUywgMHgwQSwgR1AyMCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTLCAweDBDLCBHUDIxKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChDUlMsIDB4 MEYsIEdQTDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo SU9QQiwgR1AyMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChJT1BCLCBHUDIxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKElPUEwsIEdQTDIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIElmIChJT0VCKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVXb3JkRmllbGQgKENSUywgMHgxMiwgR1AzMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTLCAweDE0LCBHUDMx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxk IChDUlMsIDB4MTcsIEdQTDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoSU9FQiwgR1AzMCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChJT0VCLCBHUDMxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKElPRUwsIEdQTDMpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChJT0dCKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKENSUywgMHgxQSwgR1A0MCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTLCAw eDFDLCBHUDQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChDUlMsIDB4MUYsIEdQTDQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoSU9HQiwgR1A0MCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChJT0dCLCBHUDQxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKElPR0wsIEdQTDQpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChJ T0RCKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSUywgMHgyMiwgR1A1 MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQ1JTLCAweDI0LCBHUDUxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChDUlMsIDB4MjcsIEdQTDUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoSU9EQiwgR1A1MCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChJT0RCLCBHUDUxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElPREwsIEdQTDUpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQ1JTKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChEQ0FULCBQYWNr YWdlICgweDE2KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgIDB4MDAs IAogICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAg ICAgIDB4MDgsIAogICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgIDB4MDks IAogICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAg ICAgIDB4MDUsIAogICAgICAgICAgICAgICAgICAgIDB4MDQsIAogICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgIDB4RkYs IAogICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAg ICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgIDB4MEEsIAogICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgIDB4RkYs IAogICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAg ICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgIDB4RkYKICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChJS0VZLCBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAweDg3LCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NTUsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDU1CiAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDg3 LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4NTUsIAogICAgICAgICAgICAgICAgICAgICAgICAw eEFBCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgIE5hbWUgKEtCRkcsIDB4MDEpCiAgICAgICAgICAg ICAgICBOYW1lIChNU0ZHLCAweDAxKQogICAgICAgICAgICAgICAgTmFtZSAo VVIxRiwgMHgwMSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoRU5GRywgMSwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHgwMCwgTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKFNQSU8sIDB4MkUpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKFNQSU8sIDB4NEUpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDAwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg V2hpbGUgKExOb3QgKExFcXVhbCAoTG9jYWwwLCAweDA0KSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo RGVyZWZPZiAoSW5kZXggKERlcmVmT2YgKEluZGV4IChJS0VZLCBMb2NhbDEp KSwgTG9jYWwwKSksIElORFgpCiAgICAgICAgICAgICAgICAgICAgICAgIElu Y3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKEFyZzAsIExETikKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEVOVFIsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4ODcsIElORFgpCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDEsIElORFgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 NTUsIElORFgpCiAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoU1BJ TywgMHgyRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHg1NSwgSU5EWCkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4QUEs IElORFgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoRVhGRywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHgwMiwgSU5EWCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgwMiwgREFUQSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKExQVE0sIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgRU5GRyAoQ0dMRCAoQXJnMCkp CiAgICAgICAgICAgICAgICAgICAgQW5kIChPUFQwLCAweDAyLCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoVUhJRCwgMSwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFTkZHIChDR0xE IChBcmcwKSkKICAgICAgICAgICAgICAgICAgICBBbmQgKE9QVDAsIDB4NzAs IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAg ICAgICAgICAgICAgSWYgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgxMDA1RDA0MSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwMTA1RDA0MSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKE9SRjAsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRU5UUiAoKQogICAg ICAgICAgICAgICAgICAgIE9yIChPUFQwLCBBcmcwLCBPUFQwKQogICAgICAg ICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKE9SRjEsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRU5UUiAoKQog ICAgICAgICAgICAgICAgICAgIE9yIChPUFQxLCBBcmcwLCBPUFQxKQogICAg ICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKE9SRjIsIDEsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRU5UUiAo KQogICAgICAgICAgICAgICAgICAgIE9yIChPUFQyLCBBcmcwLCBPUFQyKQog ICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKEFORjAsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRU5U UiAoKQogICAgICAgICAgICAgICAgICAgIEFuZCAoT1BUMCwgQXJnMCwgT1BU MCkKICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChBTkYyLCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IEVOVFIgKCkKICAgICAgICAgICAgICAgICAgICBBbmQgKE9QVDIsIEFyZzAs IE9QVDIpCiAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQU5GNCwgMSwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBFTlRSICgpCiAgICAgICAgICAgICAgICAgICAgQW5kIChPUFQ0LCBB cmcwLCBPUFQ0KQogICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNURjAsIDEs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgRU5UUiAoKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChB cmcwLCBPUFQwKQogICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNURjEsIDEs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgRU5UUiAoKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChB cmcwLCBPUFQxKQogICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNJT1MsIDEs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKCJTSU9TIiwgRGVidWcpCiAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDAsIEdQMTApCiAgICAgICAgICAgICAgICAgICAg SWYgKExMZXNzIChBcmcwLCAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIEVORkcgKDB4MDQpCiAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBBQ1RSKQogICAgICAgICAg ICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAgICAgICAgICAg IEFORjQgKDB4RkMpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChLQkZH KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPUkYxICgweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgT1JGMCAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORjAgKDB4 RjcpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChNU0ZHKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUkYxICgweDEwKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgT1JGMCAoMHgxMCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFORjAgKDB4RUYpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFTkZHICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDAsIEFDVFIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFWEZHICgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIEVORkcgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgIEFORjIgKDB4RjApCiAgICAgICAgICAgICAgICAgICAgICAgIEVO RkcgKDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAoT1BGOSwg MHhGRSwgT1BGOSkKICAgICAgICAgICAgICAgICAgICAgICAgQW5kIChPUEMw LCAweEZFLCBPUEMwKQogICAgICAgICAgICAgICAgICAgICAgICBBbmQgKE9Q QzMsIDB4RkUsIE9QQzMpCiAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAo T1AyOSwgMHhFRiwgT1AyOSkKICAgICAgICAgICAgICAgICAgICAgICAgRVhG RyAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBFTkZHICgweDA3KQogICAgICAgICAgICAgICAgICAgICAgICBB bmQgKE9QQzAsIDB4MDAsIE9QQzApCiAgICAgICAgICAgICAgICAgICAgICAg IE9yIChPUEMwLCAweDAxLCBPUEMwKQogICAgICAgICAgICAgICAgICAgICAg ICBBbmQgKE9QQzMsIDB4MDAsIE9QQzMpCiAgICAgICAgICAgICAgICAgICAg ICAgIE9yIChPUEMzLCAweDAxLCBPUEMzKQogICAgICAgICAgICAgICAgICAg ICAgICBPciAoT1BGOSwgMHgwMSwgT1BGOSkKICAgICAgICAgICAgICAgICAg ICAgICAgQW5kIChPUDI5LCAweEVGLCBPUDI5KQogICAgICAgICAgICAgICAg ICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoU0lPVywgMSwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHgwMSwgR1AxMCkKICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMSwgR1A0MCkKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoIlNJT1ciLCBEZWJ1ZykKICAgICAgICAgICAgICAgICAgICBFTkZHICgw eDA0KQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBBQ1RSKQog ICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAgICAg ICBTVEYwICgweDAwKQogICAgICAgICAgICAgICAgICAgIFNURjEgKDB4RkYp CiAgICAgICAgICAgICAgICAgICAgRU5GRyAoMHgwNykKICAgICAgICAgICAg ICAgICAgICBPciAoT1AyOSwgMHgxMCwgT1AyOSkKICAgICAgICAgICAgICAg ICAgICBPciAoT1BDMCwgMHgwMSwgT1BDMCkKICAgICAgICAgICAgICAgICAg ICBPciAoT1BDMywgMHgwMSwgT1BDMykKICAgICAgICAgICAgICAgICAgICBF WEZHICgpCiAgICAgICAgICAgICAgICAgICAgRU5GRyAoMHgwNSkKICAgICAg ICAgICAgICAgICAgICBPciAoQUNUUiwgMHgwMSwgQUNUUikKICAgICAgICAg ICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAgICAgICAgRU5GRyAo MHgwNikKICAgICAgICAgICAgICAgICAgICBPciAoQUNUUiwgMHgwMSwgQUNU UikKICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChTSU9ILCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFN0b3JlICgiU0lPSCIsIERlYnVnKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoSU9JRCwgU3lzdGVtSU8s IFNQSU8sIDB4MDIpCiAgICAgICAgICAgICAgICBGaWVsZCAoSU9JRCwgQnl0 ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJTkRYLCAgIDgsIAogICAgICAgICAgICAgICAg ICAgIERBVEEsICAgOAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIEluZGV4RmllbGQgKElORFgsIERBVEEsIEJ5dGVBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDA3KSwgCiAgICAgICAgICAgICAgICAgICAgTEROLCAg ICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjkpLCAKICAg ICAgICAgICAgICAgICAgICBPUDI5LCAgIDgsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgzMCksIAogICAgICAgICAgICAgICAgICAgIEFDVFIs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAg ICAgICAgICAgICAgICAgICAgSU9BSCwgICA4LCAKICAgICAgICAgICAgICAg ICAgICBJT0FMLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIElPSDIsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgSU9MMiwgICA4LCAKICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4NzApLCAKICAgICAgICAgICAgICAgICAg ICBJTlRSLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg3 NCksIAogICAgICAgICAgICAgICAgICAgIERNQ0gsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweEMwKSwgCiAgICAgICAgICAgICAgICAg ICAgT1BDMCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPUEMxLCAgIDgs IAogICAgICAgICAgICAgICAgICAgIE9QQzIsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgT1BDMywgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4RjApLCAKICAgICAgICAgICAgICAgICAgICBPUFQwLCAgIDgsIAog ICAgICAgICAgICAgICAgICAgIE9QVDEsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgT1BUMiwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPUFQzLCAg IDgsIAogICAgICAgICAgICAgICAgICAgIE9QVDQsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweEY4KSwgCiAgICAgICAgICAgICAgICAg ICAgT1BGOCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPUEY5LCAgIDgs IAogICAgICAgICAgICAgICAgICAgIE9QRkEsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgT1BGQiwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChDR0xELCAxLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoRGVy ZWZPZiAoSW5kZXggKERDQVQsIEFyZzApKSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKERTVEEsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRU5G RyAoQ0dMRCAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFD VFIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAg ICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweEZGKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIEFuZCAoTG9jYWwwLCAweDAxLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgT3IgKElPU1QsIFNoaWZ0TGVmdCAoTG9jYWwwLCBBcmcw KSwgSU9TVCkKICAgICAgICAgICAgICAgICAgICBJZiAoTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQW5kIChTaGlmdExlZnQgKDB4MDEsIEFyZzAp LCBJT1NUKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBEKQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoRENOVCwgMiwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFTkZHIChD R0xEIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKElP QUgsIDB4MDgsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBPciAoSU9B TCwgTG9jYWwxLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgUlJJTyAo QXJnMCwgQXJnMSwgTG9jYWwxLCAweDA4KQogICAgICAgICAgICAgICAgICAg IElmIChMQW5kIChMTGVzcyAoRE1DSCwgMHgwNCksIExOb3QgKExFcXVhbCAo QW5kIChETUNILCAweDAzLCBMb2NhbDEpLCAweDAwKSkpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUkRNQSAoQXJn MCwgQXJnMSwgSW5jcmVtZW50IChMb2NhbDEpKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzEsIEFDVFIp CiAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE5hbWUgKENSUzEsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsIDB4MDAwMCwgMHgwMDAwLCAweDAxLCAweDAwKQogICAg ICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkge30KICAgICAgICAgICAg ICAgICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJh bnNmZXI4KSB7fQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoQ1JTMSwgMHgwOSwgSVJRTSkKICAgICAgICAg ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQ1JTMSwgMHgwQywgRE1BTSkKICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTMSwgMHgwMiwgSU8x MSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTMSwgMHgw NCwgSU8xMikKICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQ1JT MSwgMHgwNywgTEVOMSkKICAgICAgICAgICAgICAgIE5hbWUgKENSUzIsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDAwMCwgMHgwMDAwLCAweDAx LCAweDAwKQogICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgw MDAwLCAweDAwMDAsIDB4MDEsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg SVJRTm9GbGFncyAoKSB7Nn0KICAgICAgICAgICAgICAgICAgICBETUEgKENv bXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJhbnNmZXI4KSB7Mn0KICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmll bGQgKENSUzIsIDB4MTEsIElSUUUpCiAgICAgICAgICAgICAgICBDcmVhdGVC eXRlRmllbGQgKENSUzIsIDB4MTQsIERNQUUpCiAgICAgICAgICAgICAgICBD cmVhdGVXb3JkRmllbGQgKENSUzIsIDB4MDIsIElPMjEpCiAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKENSUzIsIDB4MDQsIElPMjIpCiAgICAg ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKENSUzIsIDB4MDcsIExFTjIp CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSUzIsIDB4MEEs IElPMzEpCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSUzIs IDB4MEMsIElPMzIpCiAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQg KENSUzIsIDB4MEYsIExFTjMpCiAgICAgICAgICAgICAgICBNZXRob2QgKERD UlMsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgRU5GRyAoQ0dMRCAoQXJnMCkpCiAgICAgICAgICAg ICAgICAgICAgU2hpZnRMZWZ0IChJT0FILCAweDA4LCBJTzExKQogICAgICAg ICAgICAgICAgICAgIE9yIChJT0FMLCBJTzExLCBJTzExKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChJTzExLCBJTzEyKQogICAgICAgICAgICAgICAg ICAgIFN1YnRyYWN0IChGaW5kU2V0UmlnaHRCaXQgKElPMTEpLCAweDAxLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBM b2NhbDAsIExFTjEpCiAgICAgICAgICAgICAgICAgICAgSWYgKElOVFIpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBT aGlmdExlZnQgKDB4MDEsIElOVFIsIElSUU0pCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBJ UlFNKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKExPciAoTEdyZWF0ZXIgKERNQ0gsIDB4MDMpLCBMRXF1YWwgKEFy ZzEsIDB4MDApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwLCBETUFNKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBbmQgKERNQ0gs IDB4MDMsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgU2hpZnRM ZWZ0ICgweDAxLCBMb2NhbDEsIERNQU0pCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChDUlMxKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoRFNSUywgMiwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDksIElSUU0pCiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDBDLCBETUFNKQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgMHgwMiwgSU8xMSkK ICAgICAgICAgICAgICAgICAgICBFTkZHIChDR0xEIChBcmcxKSkKICAgICAg ICAgICAgICAgICAgICBBbmQgKElPMTEsIDB4RkYsIElPQUwpCiAgICAgICAg ICAgICAgICAgICAgU2hpZnRSaWdodCAoSU8xMSwgMHgwOCwgSU9BSCkKICAg ICAgICAgICAgICAgICAgICBJZiAoSVJRTSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAo SVJRTSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBTdWJ0cmFj dCAoTG9jYWwwLCAweDAxLCBJTlRSKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgSU5UUikK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm IChETUFNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChETUFNLCBMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgICAgIFN1YnRyYWN0IChMb2NhbDAsIDB4MDEsIERN Q0gpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDA0LCBETUNIKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQogICAgICAgICAgICAg ICAgICAgIERDTlQgKEFyZzEsIDB4MDEpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChHUElPLCBTeXN0ZW1J TywgSU8xQiwgMHgwNCkKICAgICAgICAgICAgICAgIEZpZWxkIChHUElPLCBC eXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIEdQMTAsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgR1AxMSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBHUDEyLCAg IDEsIAogICAgICAgICAgICAgICAgICAgIEdQMTMsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgR08xNCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBH TzE1LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEdPMTYsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgR08xNywgICAxLCAKICAgICAgICAgICAgICAg ICAgICBHUDIwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEdQMjEsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgR1AyMiwgICAxLCAKICAgICAgICAg ICAgICAgICAgICBHUDIzLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEdP MjQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgR08yNSwgICAxLCAKICAg ICAgICAgICAgICAgICAgICBHTzI2LCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIEdPMjcsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgR1AzMCwgICAx LCAKICAgICAgICAgICAgICAgICAgICBHUDMxLCAgIDEsIAogICAgICAgICAg ICAgICAgICAgIEdQMzIsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgR1Az MywgICAxLCAKICAgICAgICAgICAgICAgICAgICBHTzM0LCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIEdPMzUsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgR08zNiwgICAxLCAKICAgICAgICAgICAgICAgICAgICBHTzM3LCAgIDEs IAogICAgICAgICAgICAgICAgICAgIEdQNDAsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgR1A0MSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBHUDQy LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEdQNDMsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgR080NCwgICAxLCAKICAgICAgICAgICAgICAgICAg ICBHTzQ1LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEdPNDYsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgR080NywgICAxCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQUM5NykK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw MDExMDAwNSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChN Qzk3KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURS LCAweDAwMTEwMDA2KQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChBQ0xLLCBQQ0lfQ29uZmlnLCAweDQxLCAweDAxKQogICAgICAgICAgICAg ICAgRmllbGQgKEFDTEssIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICwgICA2 LCAKICAgICAgICAgICAgICAgICAgICBNQzlQLCAgIDIKICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChTQkxL KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAw eDAwMTEwMDA3KQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug KEVIQ0kpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9B RFIsIDB4MDAxMDAwMDQpCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFdBVTUsIFBDSV9Db25maWcsIDB4ODQsIDB4MDEpCiAgICAgICAgICAg ICAgICBGaWVsZCAoV0FVNSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBVNTg0LCAg IDgKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDBFLCAweDA0KSkK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg RGV2aWNlIChJTEFOKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMTIwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9k IChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgwMywgMHgwNCkp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IERldmljZSAoU0FUQSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwMDBGMDAwMCkKICAgICAgICAgICAgICAgIE5hbWUg KF9TVEEsIDB4MEYpCiAgICAgICAgICAgICAgICBOYW1lIChSRUdGLCAweDAx KQogICAgICAgICAgICAgICAgTWV0aG9kIChfUkVHLCAyLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKEFyZzAsIDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzEsIFJFR0YpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE5hbWUgKFRJTTAsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IDB4NzgsIAogICAgICAgICAgICAgICAgICAgICAgICAweEI0LCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHhGMCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDE3RiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI1OAog ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgMHgyMCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MjIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDMzLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHg0NywgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4NUQKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwNykKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIDB4NzgsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgz QywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkQsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDFFLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgxNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYKICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwRikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA1LCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDQsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAz LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICBOYW1lIChUTUQwLCBCdWZmZXIgKDB4MTQpIHt9KQogICAgICAg ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoVE1EMCwgMHgwMCwgUElPMCkK ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFRNRDAsIDB4MDQs IERNQTApCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChUTUQw LCAweDA4LCBQSU8xKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoVE1EMCwgMHgwQywgRE1BMSkKICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKFRNRDAsIDB4MTAsIENITkYpCiAgICAgICAgICAgICAgICBO YW1lIChQTVBULCAweDIwKQogICAgICAgICAgICAgICAgTmFtZSAoUE1VRSwg MHgwNykKICAgICAgICAgICAgICAgIE5hbWUgKFBNVVQsIDB4MDApCiAgICAg ICAgICAgICAgICBOYW1lIChQU1BULCAweDIwKQogICAgICAgICAgICAgICAg TmFtZSAoUFNVRSwgMHgwNykKICAgICAgICAgICAgICAgIE5hbWUgKFBTVVQs IDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChTTVBULCAweDIwKQogICAg ICAgICAgICAgICAgTmFtZSAoU01VRSwgMHgwNykKICAgICAgICAgICAgICAg IE5hbWUgKFNNVVQsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChTU1BU LCAweDIwKQogICAgICAgICAgICAgICAgTmFtZSAoU1NVRSwgMHgwNykKICAg ICAgICAgICAgICAgIE5hbWUgKFNTVVQsIDB4MDApCiAgICAgICAgICAgICAg ICBEZXZpY2UgKENITjApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9HVE0sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdU TSAoUE1QVCwgUE1VRSwgUE1VVCwgUFNQVCwgUFNVRSwgUFNVVCkpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9TVE0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg RGV2aWNlIChEUlYwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IERldmljZSAoRFJWMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDEpCiAgICAgICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0dURiwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIERldmljZSAoQ0hOMSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAxKQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dUTSwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoR1RNIChTTVBULCBTTVVFLCBTTVVULCBTU1BULCBTU1VF LCBTU1VUKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBEZXZpY2UgKERSVjApCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAw KQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9HVEYsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgRGV2aWNlIChEUlYxKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw MSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChDSE4yKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9B RFIsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RNLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChHVE0gKFBNUFQsIFBNVUUsIFBN VVQsIFBTUFQsIFBTVUUsIFBTVVQpKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RNLCAzLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmljZSAoRFJWMCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKF9BRFIsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0dURiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKERSVjEpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBO YW1lIChfQURSLCAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9HVEYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBE ZXZpY2UgKENITjMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0FEUiwgMHgwMSkKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9HVE0sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdUTSAo U01QVCwgU01VRSwgU01VVCwgU1NQVCwgU1NVRSwgU1NVVCkpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9T VE0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2 aWNlIChEUlYwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERl dmljZSAoRFJWMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0dURiwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoR1RNLCA2LCBTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVz LCBQSU8wKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBQSU8x KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBETUEwKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBETUExKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDEwLCBDSE5GKQogICAgICAgICAgICAgICAg ICAgIElmIChSRUdGKSB7fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoVE1EMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChNYXRjaCAoRGVyZWZPZiAoSW5kZXggKFRJTTAs IDB4MDEpKSwgTUVRLCBBcmcwLCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDYp CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChE ZXJlZk9mIChJbmRleCAoVElNMCwgMHgwMCkpLCBMb2NhbDYpKSwgTG9jYWw3 KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDcsIERNQTApCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsNywgUElPMCkKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKERlcmVmT2YgKEluZGV4IChU SU0wLCAweDAxKSksIE1FUSwgQXJnMywgTVRSLCAweDAwLCAweDAwKSwgTG9j YWw2KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRl eCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MDApKSwgTG9jYWw2KSksIExv Y2FsNykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw3LCBETUEx KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDcsIFBJTzEpCiAg ICAgICAgICAgICAgICAgICAgSWYgKEFyZzEpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAo SW5kZXggKERlcmVmT2YgKEluZGV4IChUSU0wLCAweDAzKSksIEFyZzIpKSwg TG9jYWw1KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZP ZiAoSW5kZXggKERlcmVmT2YgKEluZGV4IChUSU0wLCAweDAyKSksIExvY2Fs NSkpLCBETUEwKQogICAgICAgICAgICAgICAgICAgICAgICBPciAoQ0hORiwg MHgwMSwgQ0hORikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIElmIChBcmc0KQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChE ZXJlZk9mIChJbmRleCAoVElNMCwgMHgwMykpLCBBcmc1KSksIExvY2FsNSkK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4 IChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwMikpLCBMb2NhbDUpKSwgRE1B MSkKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKENITkYsIDB4MDQsIENI TkYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFRNRDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIERldmljZSAoUEFUQSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDBGMDAwMSkKICAgICAg ICAgICAgICAgIE5hbWUgKFJFR0YsIDB4MDEpCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKExOb3QgKExFcXVhbCAoXF9T Qi5QQ0kwLlBBVEEuVklELCAweDExMDYpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UE1FWCAoKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChc X1NCLlBDSTAuUEFUQS5DTURSLCAweDAwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBEKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JFRywg MiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDAyKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChB cmcxLCBSRUdGKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChUSU0wLCBQYWNrYWdlICgw eDA3KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAweDc4LCAKICAgICAgICAgICAgICAgICAgICAgICAg MHhCNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDAxN0YsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDAyNTgKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDIyLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgzMywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NDcsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDVECiAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDA0LCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA3KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgMHg3OCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4NTAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDNDLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyRCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MUUsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDE0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwRgogICAgICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDBGKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUs IAogICAgICAgICAgICAgICAgICAgICAgICAweDA0LCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDcpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAweDBFLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgwOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDA0LCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFRN RDAsIEJ1ZmZlciAoMHgxNCkge30pCiAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChUTUQwLCAweDAwLCBQSU8wKQogICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoVE1EMCwgMHgwNCwgRE1BMCkKICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFRNRDAsIDB4MDgsIFBJTzEpCiAg ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChUTUQwLCAweDBDLCBE TUExKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoVE1EMCwg MHgxMCwgQ0hORikKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo UEFQUiwgUENJX0NvbmZpZywgMHgwMCwgMHhDMikKICAgICAgICAgICAgICAg IEZpZWxkIChQQVBSLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZJRCwgICAgMTYs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCksIAogICAgICAg ICAgICAgICAgICAgIENNRFIsICAgMywgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgRU5BVCwgICA0 LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4M0MpLCAKICAgICAg ICAgICAgICAgICAgICBJREVJLCAgIDgsIAogICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHg0MCksIAogICAgICAgICAgICAgICAgICAgIEVTQ0gsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgRVBDSCwgICAxLCAKICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4NDgpLCAKICAgICAgICAgICAgICAgICAg ICBTU1BULCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNNUFQsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgUFNQVCwgICA4LCAKICAgICAgICAgICAg ICAgICAgICBQTVBULCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg1MCksIAogICAgICAgICAgICAgICAgICAgIFNTVVQsICAgNCwgCiAg ICAgICAgICAgICAgICAgICAgU1NDVCwgICAxLCAKICAgICAgICAgICAgICAg ICAgICBTU1VFLCAgIDMsIAogICAgICAgICAgICAgICAgICAgIFNNVVQsICAg NCwgCiAgICAgICAgICAgICAgICAgICAgU01DVCwgICAxLCAKICAgICAgICAg ICAgICAgICAgICBTTVVFLCAgIDMsIAogICAgICAgICAgICAgICAgICAgIFBT VVQsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgUFNDVCwgICAxLCAKICAg ICAgICAgICAgICAgICAgICBQU1VFLCAgIDMsIAogICAgICAgICAgICAgICAg ICAgIFBNVVQsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgUE1DVCwgICAx LCAKICAgICAgICAgICAgICAgICAgICBQTVVFLCAgIDMKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChHTVBULCAweDAwKQogICAg ICAgICAgICAgICAgTmFtZSAoR01VRSwgMHgwMCkKICAgICAgICAgICAgICAg IE5hbWUgKEdNVVQsIDB4MDApCiAgICAgICAgICAgICAgICBOYW1lIChHU1BU LCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoR1NVRSwgMHgwMCkKICAg ICAgICAgICAgICAgIE5hbWUgKEdTVVQsIDB4MDApCiAgICAgICAgICAgICAg ICBEZXZpY2UgKENITjApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAo TEVxdWFsIChcX1NCLlBDSTAuUEFUQS5FUENILCAweDAxKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw RikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RNLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChHVE0gKFBNUFQsIFBNVUUsIFBNVVQs IFBTUFQsIFBTVUUsIFBTVVQpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RNLCAzLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKEFyZzAsIFRNRDApCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChQTVBULCBHTVBUKQogICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoUE1VRSwgR01VRSkKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFBNVVQsIEdNVVQpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChQU1BULCBHU1BUKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoUFNVRSwgR1NVRSkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFBTVVQsIEdTVVQpCiAgICAgICAgICAgICAgICAgICAgICAgIFNUTSAoKQog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR01QVCwgUE1QVCkKICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdNVUUsIFBNVUUpCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChHTVVULCBQTVVUKQogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoR1NQVCwgUFNQVCkKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKEdTVUUsIFBTVUUpCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChHU1VULCBQU1VUKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChEUlYwKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEdURiAoMHgwMCwgUE1VRSwgUE1VVCwgUE1QVCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIERldmljZSAoRFJWMSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dURiwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChHVEYgKDB4MDEsIFBTVUUsIFBT VVQsIFBTUFQpKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIERldmljZSAoQ0hOMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfQURSLCAweDAxKQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMTm90 IChMRXF1YWwgKFxfU0IuUENJMC5QQVRBLkVTQ0gsIDB4MDEpKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9HVE0sIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEdUTSAoU01QVCwgU01VRSwgU01V VCwgU1NQVCwgU1NVRSwgU1NVVCkpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVE0sIDMsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoQXJnMCwgVE1EMCkKICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFNNUFQsIEdNUFQpCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChTTVVFLCBHTVVFKQogICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoU01VVCwgR01VVCkKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFNTUFQsIEdTUFQpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChTU1VFLCBHU1VFKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoU1NVVCwgR1NVVCkKICAgICAgICAgICAgICAgICAgICAgICAgU1RNICgp CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChHTVBULCBTTVBUKQog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR01VRSwgU01VRSkKICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdNVVQsIFNNVVQpCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChHU1BULCBTU1BUKQogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoR1NVRSwgU1NVRSkKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKEdTVVQsIFNTVVQpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKERSVjAp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChfQURSLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9HVEYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoR1RGICgweDAyLCBTTVVFLCBTTVVULCBTTVBUKSkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgRGV2aWNlIChEUlYxKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMSkK ICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdURiAoMHgwMywgU1NVRSwg U1NVVCwgU1NQVCkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChQTUVYLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChSRUdGKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExF cXVhbCAoUE1QVCwgMHhBOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDVELCBQTVBU KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsIChQTVBULCAweDY1KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MzMsIFBNUFQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFBNUFQsIDB4MzEp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgyMiwgUE1QVCkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoUFNQVCwgMHhBOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDVELCBQU1BUKQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoTEVxdWFsIChQU1BULCAweDY1KSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MzMsIFBTUFQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFBTUFQsIDB4MzEpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHgyMiwgUFNQVCkKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAo U01QVCwgMHhBOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDVELCBTTVBUKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsIChTTVBULCAweDY1KSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MzMsIFNNUFQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFNNUFQsIDB4MzEpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgyMiwgU01QVCkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoU1NQ VCwgMHhBOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDVELCBTU1BUKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoTEVxdWFsIChTU1BULCAweDY1KSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MzMs IFNTUFQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChMRXF1YWwgKFNTUFQsIDB4MzEpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgyMiwgU1NQVCkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKEdURiwgNCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQnVm ZmVyICgweDA3KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAzLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweEEwLCAweEVGCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQnVmZmVyICgweDA3 KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEEw LCAweEVGCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIExvY2FsMikKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKExvY2FsMSwgMHgw MSwgTU9ERSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQg KExvY2FsMiwgMHgwMSwgVU1PRCkKICAgICAgICAgICAgICAgICAgICBDcmVh dGVCeXRlRmllbGQgKExvY2FsMSwgMHgwNSwgUENIQSkKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCeXRlRmllbGQgKExvY2FsMiwgMHgwNSwgVUNIQSkK ICAgICAgICAgICAgICAgICAgICBBbmQgKEFyZzAsIDB4MDMsIExvY2FsMykK ICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBbmQgKExvY2FsMywg MHgwMSksIDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4QjAsIFBDSEEpCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweEIwLCBVQ0hBKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzEpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoRGVyZWZPZiAoSW5kZXggKERlcmVmT2YgKEluZGV4IChUSU0wLCAweDA1 KSksIEFyZzIpKSwgVU1PRCkKICAgICAgICAgICAgICAgICAgICAgICAgT3Ig KFVNT0QsIDB4NDAsIFVNT0QpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNYXRjaCAoRGVyZWZPZiAo SW5kZXggKFRJTTAsIDB4MDEpKSwgTUVRLCBBcmczLCBNVFIsIDB4MDAsIDB4 MDApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIE9yICgweDIw LCBEZXJlZk9mIChJbmRleCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MDMp KSwgTG9jYWwwKSksIFVNT0QpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoTWF0Y2ggKERlcmVmT2YgKEluZGV4 IChUSU0wLCAweDAxKSksIE1FUSwgQXJnMywgTVRSLCAweDAwLCAweDAwKSwg TG9jYWwwKQogICAgICAgICAgICAgICAgICAgIE9yICgweDA4LCBEZXJlZk9m IChJbmRleCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MDIpKSwgTG9jYWww KSksIE1PREUpCiAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExv Y2FsMSwgTG9jYWwyLCBMb2NhbDYpCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChHVE0sIDYsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZXMsIFBJTzApCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZXMsIFBJTzEpCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE9uZXMsIERNQTApCiAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE9uZXMsIERNQTEpCiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MTAsIENITkYpCiAgICAgICAgICAgICAgICAgICAgSWYgKFJF R0YpIHt9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUTUQw KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKE1hdGNoIChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwMSkpLCBN RVEsIEFyZzAsIE1UUiwgMHgwMCwgMHgwMCksIExvY2FsNikKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKERlcmVmT2YgKElu ZGV4IChUSU0wLCAweDAwKSksIExvY2FsNikpLCBMb2NhbDcpCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKExvY2FsNywgRE1BMCkKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoTG9jYWw3LCBQSU8wKQogICAgICAgICAgICAgICAg ICAgIFN0b3JlIChNYXRjaCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MDEp KSwgTUVRLCBBcmczLCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDYpCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChEZXJlZk9m IChJbmRleCAoVElNMCwgMHgwMCkpLCBMb2NhbDYpKSwgTG9jYWw3KQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDcsIERNQTEpCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKExvY2FsNywgUElPMSkKICAgICAgICAgICAg ICAgICAgICBJZiAoQXJnMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoRGVy ZWZPZiAoSW5kZXggKFRJTTAsIDB4MDUpKSwgQXJnMikpLCBMb2NhbDUpCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAo RGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MDQpKSwgTG9jYWw1KSksIERNQTAp CiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChDSE5GLCAweDAxLCBDSE5G KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKEFyZzQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKERlcmVmT2YgKElu ZGV4IChUSU0wLCAweDA1KSksIEFyZzUpKSwgTG9jYWw1KQogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKERlcmVmT2Yg KEluZGV4IChUSU0wLCAweDA0KSksIExvY2FsNSkpLCBETUExKQogICAgICAg ICAgICAgICAgICAgICAgICBPciAoQ0hORiwgMHgwNCwgQ0hORikKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo VE1EMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKFNUTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJZiAoUkVHRikge30KICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFRNRDApCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgR01VRSkKICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgR1NVRSkKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgwNywgR01VVCkKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwNywgR1NVVCkKICAgICAgICAgICAgICAgICAgICBJ ZiAoQW5kIChDSE5GLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNYXRjaCAoRGVyZWZPZiAo SW5kZXggKFRJTTAsIDB4MDQpKSwgTUxFLCBETUEwLCBNVFIsIDB4MDAsIDB4 MDApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChE ZXJlZk9mIChJbmRleCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MDYpKSwg TG9jYWwwKSksIEdNVVQpCiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChH TVVFLCAweDA3LCBHTVVFKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoT3IgKExFcXVhbCAoUElPMCwgT25l cyksIExFcXVhbCAoUElPMCwgMHgwMCkpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChM TGVzcyAoRE1BMCwgT25lcyksIExHcmVhdGVyIChETUEwLCAweDAwKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKERNQTAsIFBJTzApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm IChBbmQgKENITkYsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoIChEZXJlZk9mIChJ bmRleCAoVElNMCwgMHgwNCkpLCBNTEUsIERNQTEsIE1UUiwgMHgwMCwgMHgw MCksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERl cmVmT2YgKEluZGV4IChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwNikpLCBM b2NhbDApKSwgR1NVVCkKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKEdT VUUsIDB4MDcsIEdTVUUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChPciAoTEVxdWFsIChQSU8xLCBPbmVz KSwgTEVxdWFsIChQSU8xLCAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKExM ZXNzIChETUExLCBPbmVzKSwgTEdyZWF0ZXIgKERNQTEsIDB4MDApKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoRE1BMSwgUElPMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQW5k IChNYXRjaCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MDApKSwgTUdFLCBQ SU8wLCBNVFIsIDB4MDAsIDB4MDApLCAweDAzLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChEZXJlZk9mIChJ bmRleCAoVElNMCwgMHgwMSkpLCBMb2NhbDApKSwgTG9jYWwxKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEsIEdNUFQpCiAgICAgICAgICAg ICAgICAgICAgQW5kIChNYXRjaCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4 MDApKSwgTUdFLCBQSU8xLCBNVFIsIDB4MDAsIDB4MDApLCAweDAzLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4 IChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwMSkpLCBMb2NhbDApKSwgTG9j YWwxKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEsIEdTUFQp CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmVzKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFAw UDcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDAxMzAwMDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDcpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMDcp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQ N1A4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5h bWUgKF9BRFIsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDA1LCAw eDA0KSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQSUNN KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEFSMDgpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFIwOCkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgRGV2aWNlIChQN1A5KQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDEpCiAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChHUFJXICgweDA1LCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDkp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUFIwOSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChBWkFM KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDAwMTAwMDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUDJQQikKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEzMDAwMSkKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEdQUlcgKDB4MDUsIDB4MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQVIwNSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUFIwNSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKFBDSTEpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDA4RkZG RikKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MDUsIDB4MDQpKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBEZXZpY2UgKFBDSTIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDA5RkZGRikKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEdQUlcgKDB4MDUsIDB4MDQpKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChVU0IxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBOYW1lIChfQURSLCAweDAwMTAwMDAwKQogICAgICAgICAgICAgICAgT3Bl cmF0aW9uUmVnaW9uIChXQVUxLCBQQ0lfQ29uZmlnLCAweDg0LCAweDAxKQog ICAgICAgICAgICAgICAgRmllbGQgKFdBVTEsIEJ5dGVBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgVTE4NCwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChVMUQzLCBQQ0lfQ29uZmlnLCAweDQ5LCAw eDAxKQogICAgICAgICAgICAgICAgRmllbGQgKFUxRDMsIEJ5dGVBY2MsIE5v TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgVVI0OSwgICAzCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVQlAxLCBQQ0lfQ29uZmlnLCAw eDg1LCAweDAxKQogICAgICAgICAgICAgICAgRmllbGQgKFVCUDEsIEJ5dGVB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgVTFQRSwgICAxCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChfUzNELCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChM T3IgKExFcXVhbCAoT1NGTCAoKSwgMHgwMSksIExFcXVhbCAoT1NGTCAoKSwg MHgwMikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcg KDB4MEUsIDB4MDQpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CgogICAgICAgICAgICBEZXZpY2UgKFVTQjIpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxMDAwMDEpCiAgICAgICAg ICAgICAgICBPcGVyYXRpb25SZWdpb24gKFdBVTIsIFBDSV9Db25maWcsIDB4 ODQsIDB4MDEpCiAgICAgICAgICAgICAgICBGaWVsZCAoV0FVMiwgQnl0ZUFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBVMjg0LCAgIDgKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFVCUDIsIFBDSV9Db25m aWcsIDB4ODUsIDB4MDEpCiAgICAgICAgICAgICAgICBGaWVsZCAoVUJQMiwg Qnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBVMlBFLCAgIDEKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKExPciAoTEVxdWFsIChPU0ZMICgpLCAweDAxKSwgTEVxdWFsIChPU0ZM ICgpLCAweDAyKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo R1BSVyAoMHgwRSwgMHgwNCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVVNCMykKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEwMDAwMikKICAg ICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoV0FVMywgUENJX0NvbmZp ZywgMHg4NCwgMHgwMSkKICAgICAgICAgICAgICAgIEZpZWxkIChXQVUzLCBC eXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFUzODQsICAgOAogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVUJQMywgUENJ X0NvbmZpZywgMHg4NSwgMHgwMSkKICAgICAgICAgICAgICAgIEZpZWxkIChV QlAzLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFUzUEUsICAgMQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MzRCwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoTE9yIChMRXF1YWwgKE9TRkwgKCksIDB4MDEpLCBMRXF1YWwg KE9TRkwgKCksIDB4MDIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDAzKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChHUFJXICgweDBFLCAweDA0KSkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0I0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTAwMDAz KQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChXQVU0LCBQQ0lf Q29uZmlnLCAweDg0LCAweDAxKQogICAgICAgICAgICAgICAgRmllbGQgKFdB VTQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgVTQ4NCwgICA4CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVQlA0 LCBQQ0lfQ29uZmlnLCAweDg1LCAweDAxKQogICAgICAgICAgICAgICAgRmll bGQgKFVCUDQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVTRQRSwgICAxCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUzNELCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmIChMT3IgKExFcXVhbCAoT1NGTCAoKSwgMHgwMSksIExF cXVhbCAoT1NGTCAoKSwgMHgwMikpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEdQUlcgKDB4MEUsIDB4MDQpKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoXF9H UEUpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9MMEUsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5v dGlmeSAoXF9TQi5QQ0kwLkVIQ0ksIDB4MDIpCiAgICAgICAgICAgICAgICBO b3RpZnkgKFxfU0IuUENJMC5VU0IxLCAweDAyKQogICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLlBDSTAuVVNCMiwgMHgwMikKICAgICAgICAgICAgICAg IE5vdGlmeSAoXF9TQi5QQ0kwLlVTQjMsIDB4MDIpCiAgICAgICAgICAgICAg ICBOb3RpZnkgKFxfU0IuUENJMC5VU0I0LCAweDAyKQogICAgICAgICAgICAg ICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX0wwMywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAu SUxBTiwgMHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QV1JC LCAweDAyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9M MDUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlAwUDcuUDdQOCwgMHgwMikKICAg ICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlAwUDcuUDdQOSwgMHgw MikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlAyUEIsIDB4 MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5QMlBCLlBD STEsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5Q MlBCLlBDSTIsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0Iu UFdSQiwgMHgwMikKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg RGV2aWNlIChQV1JCKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgRWlzYUlkICgiUE5QMEMwQyIpKQogICAgICAgICAgICBOYW1lIChfVUlE LCAweEFBKQogICAgICAgICAgICBOYW1lIChfU1RBLCAweDBCKQogICAgICAg IH0KICAgIH0KCiAgICBTY29wZSAoXF9TQikKICAgIHsKICAgICAgICBPcGVy YXRpb25SZWdpb24gKFxfU0IuUENJMC5TQlJHLlBJWDAsIFBDSV9Db25maWcs IDB4NTUsIDB4MDQpCiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChcX1NCLlBD STAuU0JSRy5QSVgxLCBQQ0lfQ29uZmlnLCAweDUwLCAweDAyKQogICAgICAg IE9wZXJhdGlvblJlZ2lvbiAoXF9TQi5QQ0kwLlNCUkcuUElYMiwgUENJX0Nv bmZpZywgMHg0NCwgMHgwMikKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFxf U0IuUENJMC5TQlJHLlBJWDMsIFBDSV9Db25maWcsIDB4NjcsIDB4MDMpCiAg ICAgICAgT3BlcmF0aW9uUmVnaW9uIChcX1NCLlBDSTAuU0JSRy5QSVg0LCBQ Q0lfQ29uZmlnLCAweDZDLCAweDA0KQogICAgICAgIEZpZWxkIChcX1NCLlBD STAuU0JSRy5QSVgwLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgIHsKICAgICAgICAgICAgICAgICwgICA0LCAKICAgICAgICAgICAgUElS QSwgICA0LCAKICAgICAgICAgICAgUElSQiwgICA0LCAKICAgICAgICAgICAg UElSQywgICA0LCAKICAgICAgICAgICAgICAgICwgICA0LCAKICAgICAgICAg ICAgUElSRCwgICA0LCAKICAgICAgICAgICAgICAgICwgICA0CiAgICAgICAg fQoKICAgICAgICBGaWVsZCAoXF9TQi5QQ0kwLlNCUkcuUElYMSwgQnl0ZUFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgICAg ICAsICAgMSwgCiAgICAgICAgICAgIEVQM0MsICAgMSwgCiAgICAgICAgICAg IEVOM0MsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAg ICAgIEtCRkcsICAgMQogICAgICAgIH0KCiAgICAgICAgRmllbGQgKFxfU0Iu UENJMC5TQlJHLlBJWDIsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgewogICAgICAgICAgICBQSVJFLCAgIDQsIAogICAgICAgICAgICBQ SVJGLCAgIDQsIAogICAgICAgICAgICBQSVJHLCAgIDQsIAogICAgICAgICAg ICBQSVJILCAgIDQKICAgICAgICB9CgogICAgICAgIEZpZWxkIChcX1NCLlBD STAuU0JSRy5QSVgzLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgIHsKICAgICAgICAgICAgRU5JUiwgICAxLCAKICAgICAgICAgICAgSVJT RCwgICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgCiAgICAgICAg ICAgIElSQkEsICAgOAogICAgICAgIH0KCiAgICAgICAgRmllbGQgKFxfU0Iu UENJMC5TQlJHLlBJWDQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgewogICAgICAgICAgICBQUzBFLCAgIDEsIAogICAgICAgICAgICBQ UzFFLCAgIDEsIAogICAgICAgICAgICBST01FLCAgIDEsIAogICAgICAgICAg ICBBUENFLCAgIDEsIAogICAgICAgICAgICBMUE1TLCAgIDIsIAogICAgICAg ICAgICBNU0VOLCAgIDEsIAogICAgICAgICAgICBJWEVOLCAgIDEsIAogICAg ICAgICAgICBMUE1ELCAgIDIsIAogICAgICAgICAgICBNREVOLCAgIDEsIAog ICAgICAgICAgICBHTUVOLCAgIDEsIAogICAgICAgICAgICBMUExQLCAgIDIs IAogICAgICAgICAgICBMUEVOLCAgIDEsIAogICAgICAgICAgICBGREVOLCAg IDEsIAogICAgICAgICAgICBMUENBLCAgIDMsIAogICAgICAgICAgICBDQUVO LCAgIDEsIAogICAgICAgICAgICBMUENCLCAgIDMsIAogICAgICAgICAgICBD QkVOLCAgIDEsIAogICAgICAgICAgICBMUFNCLCAgIDIsIAogICAgICAgICAg ICBTQkVOLCAgIDEsIAogICAgICAgICAgICBGRFNFLCAgIDEsIAogICAgICAg ICAgICBPZmZzZXQgKDB4MDQpCiAgICAgICAgfQoKICAgICAgICBOYW1lIChJ UlFBLCAweDAwKQogICAgICAgIE5hbWUgKElSUUIsIDB4MDApCiAgICAgICAg TmFtZSAoSVJRQywgMHgwMCkKICAgICAgICBOYW1lIChJUlFELCAweDAwKQog ICAgICAgIE5hbWUgKElSUUUsIDB4MDApCiAgICAgICAgTmFtZSAoSVJRRiwg MHgwMCkKICAgICAgICBOYW1lIChJUlFHLCAweDAwKQogICAgICAgIE5hbWUg KElSUUgsIDB4MDApCiAgICAgICAgTmFtZSAoSUNSUywgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgIHsKICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0 aXZlTG93LCBTaGFyZWQpIHsxNX0KICAgICAgICB9KQogICAgICAgIERldmlj ZSAoTE5LQSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgw MSkKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoUElSQSwg SVJRQSkKICAgICAgICAgICAgICAgIElmIChQSVJBKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgUmV0dXJuIChQUlNBKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBQSVJBKQog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENy ZWF0ZVdvcmRGaWVsZCAoSUNSUywgMHgwMSwgSVJBMCkKICAgICAgICAgICAg ICAgIFN0b3JlIChPbmUsIExvY2FsMSkKICAgICAgICAgICAgICAgIFNoaWZ0 TGVmdCAoTG9jYWwxLCBJUlFBLCBJUkEwKQogICAgICAgICAgICAgICAgUmV0 dXJuIChJQ1JTKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9TUlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgMHgwMSwgSVJBKQog ICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUkEsIExvY2FsMCkK ICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAg ICAgICAgU3RvcmUgKExvY2FsMCwgUElSQSkKICAgICAgICAgICAgICAgIFN0 b3JlIChQSVJBLCBJUlFBKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg ICAgICBEZXZpY2UgKExOS0IpCiAgICAgICAgewogICAgICAgICAgICBOYW1l IChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAgIE5hbWUg KF9VSUQsIDB4MDIpCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3Rv cmUgKFBJUkIsIElSUUIpCiAgICAgICAgICAgICAgICBJZiAoUElSQikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDA5KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTQikKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoMHgw MCwgUElSQikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf Q1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElDUlMsIDB4MDEsIElSQTApCiAg ICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICBTaGlmdExlZnQgKExvY2FsMSwgSVJRQiwgSVJBMCkKICAgICAgICAg ICAgICAgIFJldHVybiAoSUNSUykKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4 MDEsIElSQSkKICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJB LCBMb2NhbDApCiAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkK ICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIFBJUkIpCiAgICAgICAg ICAgICAgICBTdG9yZSAoUElSQiwgSVJRQikKICAgICAgICAgICAgfQogICAg ICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktDKQogICAgICAgIHsKICAgICAg ICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpKQogICAgICAg ICAgICBOYW1lIChfVUlELCAweDAzKQogICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFN0b3JlIChQSVJDLCBJUlFDKQogICAgICAgICAgICAgICAgSWYg KFBJUkMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0Mp CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg U3RvcmUgKDB4MDAsIFBJUkMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJQ1JTLCAweDAx LCBJUkEwKQogICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWwxKQog ICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChMb2NhbDEsIElSUUMsIElSQTAp CiAgICAgICAgICAgICAgICBSZXR1cm4gKElDUlMpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChBcmcwLCAweDAxLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0Umln aHRCaXQgKElSQSwgTG9jYWwwKQogICAgICAgICAgICAgICAgRGVjcmVtZW50 IChMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBQSVJD KQogICAgICAgICAgICAgICAgU3RvcmUgKFBJUkMsIElSUUMpCiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoTE5LRCkKICAgICAg ICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYi KSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkKICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBTdG9yZSAoUElSRCwgSVJRRCkKICAgICAgICAg ICAgICAgIElmIChQSVJEKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwQikKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0 dXJuIChQUlNEKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFN0b3JlICgweDAwLCBQSVJEKQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo SUNSUywgMHgwMSwgSVJBMCkKICAgICAgICAgICAgICAgIFN0b3JlIChPbmUs IExvY2FsMSkKICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwxLCBJ UlFELCBJUkEwKQogICAgICAgICAgICAgICAgUmV0dXJuIChJQ1JTKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoQXJnMCwgMHgwMSwgSVJBKQogICAgICAgICAgICAgICAg RmluZFNldFJpZ2h0Qml0IChJUkEsIExvY2FsMCkKICAgICAgICAgICAgICAg IERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKExv Y2FsMCwgUElSRCkKICAgICAgICAgICAgICAgIFN0b3JlIChQSVJELCBJUlFE KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKExO S0UpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg KCJQTlAwQzBGIikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDEpCiAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKFBJUkUsIElSUUUp CiAgICAgICAgICAgICAgICBJZiAoUElSRSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9Q UlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFJldHVybiAoUFJTRSkKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgUElSRSkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVX b3JkRmllbGQgKElDUlMsIDB4MDEsIElSQTApCiAgICAgICAgICAgICAgICBT dG9yZSAoT25lLCBMb2NhbDEpCiAgICAgICAgICAgICAgICBTaGlmdExlZnQg KExvY2FsMSwgSVJRRSwgSVJBMCkKICAgICAgICAgICAgICAgIFJldHVybiAo SUNSUykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JT LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4MDEsIElSQSkKICAgICAg ICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJBLCBMb2NhbDApCiAgICAg ICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAg IFN0b3JlIChMb2NhbDAsIFBJUkUpCiAgICAgICAgICAgICAgICBTdG9yZSAo UElSRSwgSVJRRSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg RGV2aWNlIChMTktGKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgRWlzYUlkICgiUE5QMEMwRiIpKQogICAgICAgICAgICBOYW1lIChfVUlE LCAweDAyKQogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlIChQ SVJGLCBJUlFGKQogICAgICAgICAgICAgICAgSWYgKFBJUkYpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0YpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFBJ UkYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChJQ1JTLCAweDAxLCBJUkEwKQogICAgICAg ICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWwxKQogICAgICAgICAgICAgICAg U2hpZnRMZWZ0IChMb2NhbDEsIElSUUYsIElSQTApCiAgICAgICAgICAgICAg ICBSZXR1cm4gKElDUlMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJ UkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9j YWwwKQogICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAg ICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBQSVJGKQogICAgICAgICAgICAg ICAgU3RvcmUgKFBJUkYsIElSUUYpCiAgICAgICAgICAgIH0KICAgICAgICB9 CgogICAgICAgIERldmljZSAoTE5LRykKICAgICAgICB7CiAgICAgICAgICAg IE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgwMykKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBTdG9yZSAoUElSRywgSVJRRykKICAgICAgICAgICAgICAgIElmIChQSVJH KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwQikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQUlNHKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAwLCBQSVJHKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo b2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUNSUywgMHgwMSwgSVJB MCkKICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIExvY2FsMSkKICAgICAg ICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwxLCBJUlFHLCBJUkEwKQogICAg ICAgICAgICAgICAgUmV0dXJuIChJQ1JTKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJn MCwgMHgwMSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0 IChJUkEsIExvY2FsMCkKICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9j YWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgUElSRykKICAg ICAgICAgICAgICAgIFN0b3JlIChQSVJHLCBJUlFHKQogICAgICAgICAgICB9 CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKExOS0gpCiAgICAgICAgewog ICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAg ICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDQpCiAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgU3RvcmUgKFBJUkgsIElSUUgpCiAgICAgICAgICAgICAg ICBJZiAoUElSSCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAo UFJTSCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRElT LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwMCwgUElSSCkKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElDUlMs IDB4MDEsIElSQTApCiAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2Nh bDEpCiAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMSwgSVJRSCwg SVJBMCkKICAgICAgICAgICAgICAgIFJldHVybiAoSUNSUykKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSQSkKICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJBLCBMb2NhbDApCiAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAs IFBJUkgpCiAgICAgICAgICAgICAgICBTdG9yZSAoUElSSCwgSVJRSCkKICAg ICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9TQikK ICAgIHsKICAgICAgICBOYW1lIChYQ1BELCAweDAwKQogICAgICAgIE5hbWUg KFhOUFQsIDB4MDEpCiAgICAgICAgTmFtZSAoWENBUCwgMHgwMikKICAgICAg ICBOYW1lIChYRENQLCAweDA0KQogICAgICAgIE5hbWUgKFhEQ1QsIDB4MDgp CiAgICAgICAgTmFtZSAoWERTVCwgMHgwQSkKICAgICAgICBOYW1lIChYTENQ LCAweDBDKQogICAgICAgIE5hbWUgKFhMQ1QsIDB4MTApCiAgICAgICAgTmFt ZSAoWExTVCwgMHgxMikKICAgICAgICBOYW1lIChYU0NQLCAweDE0KQogICAg ICAgIE5hbWUgKFhTQ1QsIDB4MTgpCiAgICAgICAgTmFtZSAoWFNTVCwgMHgx QSkKICAgICAgICBOYW1lIChYUkNULCAweDFDKQogICAgICAgIE11dGV4IChN VVRFLCAweDAwKQogICAgICAgIE1ldGhvZCAoUkJQRSwgMSwgTm90U2VyaWFs aXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUgKE1VVEUsIDB4 MDNFOCkKICAgICAgICAgICAgQWRkIChBcmcwLCBcUENJQiwgTG9jYWwwKQog ICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDRkcsIFN5c3RlbU1lbW9y eSwgTG9jYWwwLCAweDAxKQogICAgICAgICAgICBGaWVsZCAoUENGRywgQnl0 ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgWENGRywgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFJlbGVhc2UgKE1VVEUpCiAgICAgICAgICAgIFJldHVybiAoWENGRykKICAg ICAgICB9CgogICAgICAgIE1ldGhvZCAoUldQRSwgMSwgTm90U2VyaWFsaXpl ZCkKICAgICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUgKE1VVEUsIDB4MDNF OCkKICAgICAgICAgICAgQW5kIChBcmcwLCAweEZGRkZGRkZFLCBBcmcwKQog ICAgICAgICAgICBBZGQgKEFyZzAsIFxQQ0lCLCBMb2NhbDApCiAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoUENGRywgU3lzdGVtTWVtb3J5LCBMb2Nh bDAsIDB4MDIpCiAgICAgICAgICAgIEZpZWxkIChQQ0ZHLCBXb3JkQWNjLCBO b0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBYQ0ZHLCAgIDE2CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJlbGVh c2UgKE1VVEUpCiAgICAgICAgICAgIFJldHVybiAoWENGRykKICAgICAgICB9 CgogICAgICAgIE1ldGhvZCAoUkRQRSwgMSwgTm90U2VyaWFsaXplZCkKICAg ICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUgKE1VVEUsIDB4MDNFOCkKICAg ICAgICAgICAgQW5kIChBcmcwLCAweEZGRkZGRkZDLCBBcmcwKQogICAgICAg ICAgICBBZGQgKEFyZzAsIFxQQ0lCLCBMb2NhbDApCiAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUENGRywgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4 MDQpCiAgICAgICAgICAgIEZpZWxkIChQQ0ZHLCBEV29yZEFjYywgTm9Mb2Nr LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWENG RywgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBSZWxlYXNlIChN VVRFKQogICAgICAgICAgICBSZXR1cm4gKFhDRkcpCiAgICAgICAgfQoKICAg ICAgICBNZXRob2QgKFdCUEUsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ewogICAgICAgICAgICBBY3F1aXJlIChNVVRFLCAweDBGRkYpCiAgICAgICAg ICAgIEFkZCAoQXJnMCwgXFBDSUIsIExvY2FsMCkKICAgICAgICAgICAgT3Bl cmF0aW9uUmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgw MSkKICAgICAgICAgICAgRmllbGQgKFBDRkcsIEJ5dGVBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFhDRkcs ICAgOAogICAgICAgICAgICB9CgogICAgICAgICAgICBTdG9yZSAoQXJnMSwg WENGRykKICAgICAgICAgICAgUmVsZWFzZSAoTVVURSkKICAgICAgICB9Cgog ICAgICAgIE1ldGhvZCAoV1dQRSwgMiwgTm90U2VyaWFsaXplZCkKICAgICAg ICB7CiAgICAgICAgICAgIEFjcXVpcmUgKE1VVEUsIDB4MDNFOCkKICAgICAg ICAgICAgQW5kIChBcmcwLCAweEZGRkZGRkZFLCBBcmcwKQogICAgICAgICAg ICBBZGQgKEFyZzAsIFxQQ0lCLCBMb2NhbDApCiAgICAgICAgICAgIE9wZXJh dGlvblJlZ2lvbiAoUENGRywgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDIp CiAgICAgICAgICAgIEZpZWxkIChQQ0ZHLCBXb3JkQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBYQ0ZHLCAg IDE2CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFN0b3JlIChBcmcxLCBY Q0ZHKQogICAgICAgICAgICBSZWxlYXNlIChNVVRFKQogICAgICAgIH0KCiAg ICAgICAgTWV0aG9kIChXRFBFLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQogICAgICAg ICAgICBBbmQgKEFyZzAsIDB4RkZGRkZGRkMsIEFyZzApCiAgICAgICAgICAg IEFkZCAoQXJnMCwgXFBDSUIsIExvY2FsMCkKICAgICAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkK ICAgICAgICAgICAgRmllbGQgKFBDRkcsIERXb3JkQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBYQ0ZHLCAg IDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFN0b3JlIChBcmcxLCBY Q0ZHKQogICAgICAgICAgICBSZWxlYXNlIChNVVRFKQogICAgICAgIH0KCiAg ICAgICAgTWV0aG9kIChSV0RQLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQogICAgICAg ICAgICBBbmQgKEFyZzAsIDB4RkZGRkZGRkMsIEFyZzApCiAgICAgICAgICAg IEFkZCAoQXJnMCwgXFBDSUIsIExvY2FsMCkKICAgICAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkK ICAgICAgICAgICAgRmllbGQgKFBDRkcsIERXb3JkQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBYQ0ZHLCAg IDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEFuZCAoWENGRywgQXJn MiwgTG9jYWwxKQogICAgICAgICAgICBPciAoTG9jYWwxLCBBcmcxLCBYQ0ZH KQogICAgICAgICAgICBSZWxlYXNlIChNVVRFKQogICAgICAgIH0KCiAgICAg ICAgTWV0aG9kIChSUE1FLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsK ICAgICAgICAgICAgQWRkIChBcmcwLCAweDg0LCBMb2NhbDApCiAgICAgICAg ICAgIFN0b3JlIChcX1NCLlJEUEUgKExvY2FsMCksIExvY2FsMSkKICAgICAg ICAgICAgSWYgKExFcXVhbCAoTG9jYWwxLCAweEZGRkZGRkZGKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAg ICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKExBbmQgKExvY2FsMSwgMHgwMDAxMDAwMCkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXF9TQi5XRFBFIChM b2NhbDAsIEFuZCAoTG9jYWwxLCAweDAwMDEwMDAwKSkKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICB9CiAgICAg ICAgfQogICAgfQoKICAgIFNjb3BlIChcX1NCLlBDSTAuU0JSRy5TSU9SKQog ICAgewogICAgICAgIE1ldGhvZCAoSFdWMCwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoTXVsdGlwbHkgKFZJVjAs IDB4MTApKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChIV1YxLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChN dWx0aXBseSAoVklWMSwgMHgxMCkpCiAgICAgICAgfQoKICAgICAgICBNZXRo b2QgKEhXVjIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg ICAgICBSZXR1cm4gKE11bHRpcGx5IChWSVYyLCAweDEwKSkKICAgICAgICB9 CgogICAgICAgIE1ldGhvZCAoSFdWMywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICB7CiAgICAgICAgICAgIFJldHVybiAoTXVsdGlwbHkgKFZJVjMsIDB4 MTApKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChIV1Y0LCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChNdWx0 aXBseSAoVklWNCwgMHgxMCkpCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg KEhXVjUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg ICBSZXR1cm4gKE11bHRpcGx5IChWSVY1LCAweDEwKSkKICAgICAgICB9Cgog ICAgICAgIE1ldGhvZCAoSFdWNiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICB7CiAgICAgICAgICAgIFJldHVybiAoTXVsdGlwbHkgKFZJVjYsIDB4MTAp KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChIV1Y3LCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChNdWx0aXBs eSAoVklWNywgMHgxMCkpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEhX VDEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBT dG9yZSAoVFBJMSwgTG9jYWwwKQogICAgICAgICAgICBJZiAoTEdyZWF0ZXIg KExvY2FsMCwgMHg4MCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFN1YnRyYWN0ICgweDAxMDAsIExvY2FsMCwgTG9jYWwwKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBSZXR1cm4gKE11bHRpcGx5IChMb2NhbDAsIDB4 MEEpKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChIV1QyLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKFRQSTIs IExvY2FsMCkKICAgICAgICAgICAgSWYgKExHcmVhdGVyIChMb2NhbDAsIDB4 ODApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdWJ0cmFjdCAo MHgwMTAwLCBMb2NhbDAsIExvY2FsMCkKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgUmV0dXJuIChNdWx0aXBseSAoTG9jYWwwLCAweDBBKSkKICAgICAg ICB9CgogICAgICAgIE1ldGhvZCAoSFdUMywgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChUUEkzLCBMb2NhbDApCiAg ICAgICAgICAgIElmIChMR3JlYXRlciAoTG9jYWwwLCAweDgwKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgU3VidHJhY3QgKDB4MDEwMCwgTG9j YWwwLCBMb2NhbDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVy biAoTXVsdGlwbHkgKExvY2FsMCwgMHgwQSkpCiAgICAgICAgfQoKICAgICAg ICBNZXRob2QgKEhXRjEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewog ICAgICAgICAgICBTdG9yZSAoRlRDMSwgTG9jYWwwKQogICAgICAgICAgICBT dG9yZSAoMHgwMSwgTG9jYWwyKQogICAgICAgICAgICBXaGlsZSAoTEFuZCAo TE9yIChMTm90IChMR3JlYXRlciAoTG9jYWwwLCBGSE1UKSksIExOb3QgKExM ZXNzIChMb2NhbDAsIEZMTVQpKSksIExFcXVhbCAoTG9jYWwyLCAweDAxKSkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChMTm90IChMR3Jl YXRlciAoTG9jYWwwLCBGSE1UKSkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKEZURDEsIExvY2FsMSkKICAgICAgICAg ICAgICAgICAgICBJZiAoTEdyZWF0ZXIgKExvY2FsMSwgMHgwMCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KExvY2FsMSwgRlREMSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIExvY2FsMikKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKEZURDEsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBJ ZiAoTExlc3MgKExvY2FsMSwgMHgwNykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnQgKExvY2FsMSkK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMSwgRlREMSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4MDAsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU2xlZXAgKDB4 MDEyQykKICAgICAgICAgICAgICAgIFN0b3JlIChGVEMxLCBMb2NhbDApCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChMT3IgKExFcXVhbCAoTG9j YWwwLCAweDAwKSwgTEVxdWFsIChMb2NhbDAsIDB4RkYpKSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAg ICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgRGl2aWRlIChGVEZSLCBNdWx0aXBseSAoTG9jYWwwLCBEZXJlZk9m IChJbmRleCAoRFRCMSwgRlREMSkpKSwgLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgfQogICAgICAgIH0K CiAgICAgICAgTWV0aG9kIChIV0YyLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgIHsKICAgICAgICAgICAgU3RvcmUgKEZUQzIsIExvY2FsMCkKICAgICAg ICAgICAgU3RvcmUgKDB4MDEsIExvY2FsMikKICAgICAgICAgICAgV2hpbGUg KExBbmQgKExPciAoTE5vdCAoTEdyZWF0ZXIgKExvY2FsMCwgRkhNVCkpLCBM Tm90IChMTGVzcyAoTG9jYWwwLCBGTE1UKSkpLCBMRXF1YWwgKExvY2FsMiwg MHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoTE5v dCAoTEdyZWF0ZXIgKExvY2FsMCwgRkhNVCkpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChGVEQyLCBMb2NhbDEpCiAg ICAgICAgICAgICAgICAgICAgSWYgKExHcmVhdGVyIChMb2NhbDEsIDB4MDAp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgRGVjcmVtZW50IChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChMb2NhbDEsIEZURDIpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDIp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChGVEQyLCBMb2NhbDEpCiAgICAgICAgICAgICAg ICAgICAgSWYgKExMZXNzIChMb2NhbDEsIDB4MDcpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50IChM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEs IEZURDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDIpCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFNs ZWVwICgweDAxMkMpCiAgICAgICAgICAgICAgICBTdG9yZSAoRlRDMiwgTG9j YWwwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoTE9yIChMRXF1 YWwgKExvY2FsMCwgMHgwMCksIExFcXVhbCAoTG9jYWwwLCAweEZGKSkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg ICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIERpdmlkZSAoRlRGUiwgTXVsdGlwbHkgKExvY2FsMCwg RGVyZWZPZiAoSW5kZXggKERUQjEsIEZURDIpKSksICwgTG9jYWwxKQogICAg ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIE1ldGhvZCAoSFdGMywgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChGVEMzLCBMb2NhbDAp CiAgICAgICAgICAgIElmIChMTm90IChMR3JlYXRlciAoTG9jYWwwLCBGSE1U KSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlIChGVEQz LCBMb2NhbDEpCiAgICAgICAgICAgICAgICBJZiAoTEdyZWF0ZXIgKExvY2Fs MSwgMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgRGVjcmVtZW50IChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKExvY2FsMSwgRlREMykKICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHgwMTJDKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChGVEMzLCBMb2Nh bDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoTE5v dCAoTExlc3MgKExvY2FsMCwgRkxNVCkpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFN0b3JlIChGVEQzLCBMb2NhbDEpCiAgICAg ICAgICAgICAgICAgICAgSWYgKExMZXNzIChMb2NhbDEsIDB4MDEpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSW5j cmVtZW50IChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChMb2NhbDEsIEZURDMpCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweDAxMkMpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChGVEMz LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoTE9yIChMRXF1 YWwgKExvY2FsMCwgMHgwMCksIExFcXVhbCAoTG9jYWwwLCAweEZGKSkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg ICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIERpdmlkZSAoRlRGUiwgTXVsdGlwbHkgKExvY2FsMCwg RGVyZWZPZiAoSW5kZXggKERUQjIsIEZURDMpKSksICwgTG9jYWwxKQogICAg ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIE5hbWUgKEZURlIsIDB4MDAxNDk5NzApCiAgICAg ICAgTmFtZSAoRkhNVCwgMHg3OCkKICAgICAgICBOYW1lIChGTE1ULCAweEZF KQogICAgICAgIE5hbWUgKERUQjEsIFBhY2thZ2UgKDB4MDgpCiAgICAgICAg ewogICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgMHgwMiwgCiAgICAg ICAgICAgIDB4MDQsIAogICAgICAgICAgICAweDA4LCAKICAgICAgICAgICAg MHgxMCwgCiAgICAgICAgICAgIDB4MjAsIAogICAgICAgICAgICAweDQwLCAK ICAgICAgICAgICAgMHg4MAogICAgICAgIH0pCiAgICAgICAgTmFtZSAoRFRC MiwgUGFja2FnZSAoMHgwMikKICAgICAgICB7CiAgICAgICAgICAgIDB4MDIs IAogICAgICAgICAgICAweDA4CiAgICAgICAgfSkKICAgICAgICBPcGVyYXRp b25SZWdpb24gKEVDUkUsIFN5c3RlbUlPLCBJT0VCLCAweDIwKQogICAgICAg IEZpZWxkIChFQ1JFLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweDA1KSwgCiAgICAgICAgICAg IEhJRFgsICAgOCwgCiAgICAgICAgICAgIEhEQVQsICAgOAogICAgICAgIH0K CiAgICAgICAgSW5kZXhGaWVsZCAoSElEWCwgSERBVCwgQnl0ZUFjYywgTm9M b2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAo MHgwQiksIAogICAgICAgICAgICBGVEQxLCAgIDMsIAogICAgICAgICAgICBG VEQyLCAgIDMsIAogICAgICAgICAgICBGVEQzLCAgIDEsIAogICAgICAgICAg ICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgRVRERSwgICA4LCAKICAg ICAgICAgICAgRlRDMSwgICA4LCAKICAgICAgICAgICAgRlRDMiwgICA4LCAK ICAgICAgICAgICAgRlRDMywgICA4LCAKICAgICAgICAgICAgT2Zmc2V0ICgw eDE4KSwgCiAgICAgICAgICAgIEVGTjEsICAgOCwgCiAgICAgICAgICAgIEVG TjIsICAgOCwgCiAgICAgICAgICAgIEVGTjMsICAgOCwgCiAgICAgICAgICAg IE9mZnNldCAoMHgyMCksIAogICAgICAgICAgICBWSVYwLCAgIDgsIAogICAg ICAgICAgICBWSVYxLCAgIDgsIAogICAgICAgICAgICBWSVYyLCAgIDgsIAog ICAgICAgICAgICBWSVYzLCAgIDgsIAogICAgICAgICAgICBWSVY0LCAgIDgs IAogICAgICAgICAgICBWSVY1LCAgIDgsIAogICAgICAgICAgICBWSVY2LCAg IDgsIAogICAgICAgICAgICBWSVY3LCAgIDgsIAogICAgICAgICAgICBPZmZz ZXQgKDB4MjkpLCAKICAgICAgICAgICAgVFBJMSwgICA4LCAKICAgICAgICAg ICAgVFBJMiwgICA4LCAKICAgICAgICAgICAgVFBJMywgICA4CiAgICAgICAg fQogICAgfQoKICAgIFNjb3BlIChcKQogICAgewogICAgICAgIEZpZWxkIChc UkFNVywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAg ICAgICAgICAgIE9mZnNldCAoMHgyMCksIAogICAgICAgICAgICBDUFVRLCAg IDgsIAogICAgICAgICAgICBDUFZMLCAgIDE2LCAKICAgICAgICAgICAgQ1BW SCwgICAxNiwgCiAgICAgICAgICAgIENQVkMsICAgMQogICAgICAgIH0KICAg IH0KCiAgICBTY29wZSAoXF9TQi5QQ0kwLlNCUkcuQVNPQykKICAgIHsKICAg ICAgICBOYW1lIChDT1JWLCBQYWNrYWdlICgweDA1KQogICAgICAgIHsKICAg ICAgICAgICAgMHgwNjAyMDAwMCwgCiAgICAgICAgICAgICJWY29yZSBWb2x0 YWdlIiwgCiAgICAgICAgICAgIDB4MDM1MiwgCiAgICAgICAgICAgIDB4MDY0 MCwgCiAgICAgICAgICAgIDB4MDEKICAgICAgICB9KQogICAgICAgIE5hbWUg KFYzVlYsIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgewogICAgICAgICAgICAw eDA2MDIwMDAxLCAKICAgICAgICAgICAgIiArMy4zIFZvbHRhZ2UiLCAKICAg ICAgICAgICAgMHgwQjlBLCAKICAgICAgICAgICAgMHgwRTJFLCAKICAgICAg ICAgICAgMHgwMQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoVjVWViwgUGFj a2FnZSAoMHgwNSkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDYwMjAwMDIs IAogICAgICAgICAgICAiICs1IFZvbHRhZ2UiLCAKICAgICAgICAgICAgMHgx MTk0LCAKICAgICAgICAgICAgMHgxNTdDLCAKICAgICAgICAgICAgMHgwMQog ICAgICAgIH0pCiAgICAgICAgTmFtZSAoVlYxMiwgUGFja2FnZSAoMHgwNSkK ICAgICAgICB7CiAgICAgICAgICAgIDB4MDYwMjAwMDMsIAogICAgICAgICAg ICAiICsxMiBWb2x0YWdlIiwgCiAgICAgICAgICAgIDB4MjdEOCwgCiAgICAg ICAgICAgIDB4MzVFOCwgCiAgICAgICAgICAgIDB4MDEKICAgICAgICB9KQog ICAgICAgIE5hbWUgKFZQQVIsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewog ICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MDEsIAogICAg ICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAg ICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgyMiwgCiAg ICAgICAgICAgICAgICAweDMyLCAKICAgICAgICAgICAgICAgIDB4MDAKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDFFLCAKICAgICAgICAgICAg ICAgIDB4MEEsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9 CiAgICAgICAgfSkKICAgICAgICBOYW1lIChWQlVGLCBQYWNrYWdlICgweDA1 KQogICAgICAgIHsKICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgIENP UlYsIAogICAgICAgICAgICBWM1ZWLCAKICAgICAgICAgICAgVjVWViwgCiAg ICAgICAgICAgIFZWMTIKICAgICAgICB9KQogICAgICAgIE1ldGhvZCAoVkdF VCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElm IChMRXF1YWwgKEFyZzAsIDB4MDApKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBSZXR1cm4gKF5eU0lPUi5IV1YwICgpKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDAxKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICheXlNJT1IuSFdWMSAo KSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJn MCwgMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVy biAoXl5TSU9SLkhXVjIgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IElmIChMRXF1YWwgKEFyZzAsIDB4MDMpKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBSZXR1cm4gKF5eU0lPUi5IV1Y0ICgpKQogICAgICAgICAg ICB9CiAgICAgICAgfQoKICAgICAgICBOYW1lIChDUFVULCBQYWNrYWdlICgw eDA1KQogICAgICAgIHsKICAgICAgICAgICAgMHgwNjAzMDAwMCwgCiAgICAg ICAgICAgICJDUFUgVGVtcGVyYXR1cmUiLCAKICAgICAgICAgICAgMHgwMjU4 LCAKICAgICAgICAgICAgMHgwM0I2LCAKICAgICAgICAgICAgMHgwMDAxMDAw MQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoTUJUUCwgUGFja2FnZSAoMHgw NSkKICAgICAgICB7CiAgICAgICAgICAgIDB4MDYwMzAwMDEsIAogICAgICAg ICAgICAiTUIgVGVtcGVyYXR1cmUiLCAKICAgICAgICAgICAgMHgwMUMyLCAK ICAgICAgICAgICAgMHgwM0I2LCAKICAgICAgICAgICAgMHgwMDAxMDAwMQog ICAgICAgIH0pCiAgICAgICAgTmFtZSAoVEJVRiwgUGFja2FnZSAoMHgwMykK ICAgICAgICB7CiAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICBDUFVU LCAKICAgICAgICAgICAgTUJUUAogICAgICAgIH0pCiAgICAgICAgTWV0aG9k IChUR0VULCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg ICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMCkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFJldHVybiAoXl5TSU9SLkhXVDEgKCkpCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDEpKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKF5eU0lPUi5I V1QyICgpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBOYW1l IChDUFVGLCBQYWNrYWdlICgweDA1KQogICAgICAgIHsKICAgICAgICAgICAg MHgwNjA0MDAwMCwgCiAgICAgICAgICAgICJDUFUgRkFOIFNwZWVkIiwgCiAg ICAgICAgICAgIDB4MDMyMCwgCiAgICAgICAgICAgIDB4MUMyMCwgCiAgICAg ICAgICAgIDB4MDAwMTAwMDEKICAgICAgICB9KQogICAgICAgIE5hbWUgKENI QUYsIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgewogICAgICAgICAgICAweDA2 MDQwMDAxLCAKICAgICAgICAgICAgIkNIQVNTSVMgRkFOIFNwZWVkIiwgCiAg ICAgICAgICAgIDB4MDMyMCwgCiAgICAgICAgICAgIDB4MUMyMCwgCiAgICAg ICAgICAgIDB4MDAwMTAwMDEKICAgICAgICB9KQogICAgICAgIE5hbWUgKEZC VUYsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgewogICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgQ1BVRiwgCiAgICAgICAgICAgIENIQUYKICAgICAg ICB9KQogICAgICAgIE1ldGhvZCAoRkdFVCwgMSwgTm90U2VyaWFsaXplZCkK ICAgICAgICB7CiAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDAp KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKF5eU0lP Ui5IV0YxICgpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoTEVx dWFsIChBcmcwLCAweDAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgUmV0dXJuICheXlNJT1IuSFdGMiAoKSkKICAgICAgICAgICAgfQogICAg ICAgIH0KCiAgICAgICAgTmFtZSAoUUJVRiwgUGFja2FnZSAoMHgwMSkKICAg ICAgICB7CiAgICAgICAgICAgIDB4MDAKICAgICAgICB9KQogICAgICAgIE1l dGhvZCAoVlNJRiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAg ICAgICAgIFJldHVybiAoVkJVRikKICAgICAgICB9CgogICAgICAgIE1ldGhv ZCAoUlZMVCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg ICAgIEFuZCAoQXJnMCwgMHhGRkZGLCBMb2NhbDApCiAgICAgICAgICAgIFN0 b3JlIChWR0VUIChMb2NhbDApLCBMb2NhbDEpCiAgICAgICAgICAgIFN0b3Jl IChEZXJlZk9mIChJbmRleCAoRGVyZWZPZiAoSW5kZXggKFZQQVIsIExvY2Fs MCkpLCAweDAwKSksIExvY2FsMikKICAgICAgICAgICAgU3RvcmUgKERlcmVm T2YgKEluZGV4IChEZXJlZk9mIChJbmRleCAoVlBBUiwgTG9jYWwwKSksIDB4 MDEpKSwgTG9jYWwzKQogICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5k ZXggKERlcmVmT2YgKEluZGV4IChWUEFSLCBMb2NhbDApKSwgMHgwMikpLCBM b2NhbDQpCiAgICAgICAgICAgIE11bHRpcGx5IChMb2NhbDEsIEFkZCAoTG9j YWwyLCBMb2NhbDMpLCBMb2NhbDUpCiAgICAgICAgICAgIERpdmlkZSAoTG9j YWw1LCBMb2NhbDMsICwgTG9jYWw1KQogICAgICAgICAgICBBZGQgKExvY2Fs NSwgTG9jYWw0LCBMb2NhbDUpCiAgICAgICAgICAgIFJldHVybiAoTG9jYWw1 KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTVkxULCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQW5kIChEZXJlZk9mIChJ bmRleCAoQXJnMCwgMHgwMCkpLCAweEZGRkYsIExvY2FsMCkKICAgICAgICAg ICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChWQlVGLCAweDAwKSksIExvY2Fs MSkKICAgICAgICAgICAgSWYgKExOb3QgKExMZXNzIChMb2NhbDAsIExvY2Fs MSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEluY3JlbWVudCAoTG9j YWwwKQogICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKEFyZzAs IDB4MDEpKSwgSW5kZXggKERlcmVmT2YgKEluZGV4IChWQlVGLCBMb2NhbDAp KSwgMHgwMSkpCiAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAo QXJnMCwgMHgwMikpLCBJbmRleCAoRGVyZWZPZiAoSW5kZXggKFZCVUYsIExv Y2FsMCkpLCAweDAyKSkKICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKElu ZGV4IChBcmcwLCAweDAzKSksIEluZGV4IChEZXJlZk9mIChJbmRleCAoVkJV RiwgTG9jYWwwKSksIDB4MDMpKQogICAgICAgICAgICBTdG9yZSAoRGVyZWZP ZiAoSW5kZXggKEFyZzAsIDB4MDQpKSwgSW5kZXggKERlcmVmT2YgKEluZGV4 IChWQlVGLCBMb2NhbDApKSwgMHgwNCkpCiAgICAgICAgICAgIFJldHVybiAo MHgwMSkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoVFNJRiwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoVEJV RikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUlRNUCwgMSwgTm90U2Vy aWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEFuZCAoQXJnMCwgMHhG RkZGLCBMb2NhbDApCiAgICAgICAgICAgIFN0b3JlIChUR0VUIChMb2NhbDAp LCBMb2NhbDEpCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAg IH0KCiAgICAgICAgTWV0aG9kIChTVE1QLCAxLCBOb3RTZXJpYWxpemVkKQog ICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFuZCAoRGVyZWZPZiAoSW5k ZXggKEFyZzAsIDB4MDApKSwgMHhGRkZGKSwgTG9jYWwwKQogICAgICAgICAg ICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKFRCVUYsIDB4MDApKSwgTG9jYWwx KQogICAgICAgICAgICBJZiAoTE5vdCAoTExlc3MgKExvY2FsMCwgTG9jYWwx KSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgw MCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSW5jcmVtZW50IChMb2Nh bDApCiAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoQXJnMCwg MHgwMSkpLCBJbmRleCAoRGVyZWZPZiAoSW5kZXggKFRCVUYsIExvY2FsMCkp LCAweDAxKSkKICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChB cmcwLCAweDAyKSksIEluZGV4IChEZXJlZk9mIChJbmRleCAoVEJVRiwgTG9j YWwwKSksIDB4MDIpKQogICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5k ZXggKEFyZzAsIDB4MDMpKSwgSW5kZXggKERlcmVmT2YgKEluZGV4IChUQlVG LCBMb2NhbDApKSwgMHgwMykpCiAgICAgICAgICAgIFN0b3JlIChEZXJlZk9m IChJbmRleCAoQXJnMCwgMHgwNCkpLCBJbmRleCAoRGVyZWZPZiAoSW5kZXgg KFRCVUYsIExvY2FsMCkpLCAweDA0KSkKICAgICAgICAgICAgUmV0dXJuICgw eDAxKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChGU0lGLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChGQlVG KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChSRkFOLCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQW5kIChBcmcwLCAweEZG RkYsIExvY2FsMCkKICAgICAgICAgICAgU3RvcmUgKEZHRVQgKExvY2FsMCks IExvY2FsMSkKICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAg fQoKICAgICAgICBNZXRob2QgKFNGQU4sIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBBbmQgKERlcmVmT2YgKEluZGV4IChBcmcw LCAweDAwKSksIDB4RkZGRiwgTG9jYWwwKQogICAgICAgICAgICBTdG9yZSAo RGVyZWZPZiAoSW5kZXggKEZCVUYsIDB4MDApKSwgTG9jYWwxKQogICAgICAg ICAgICBJZiAoTE5vdCAoTExlc3MgKExvY2FsMCwgTG9jYWwxKSkpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgSW5jcmVtZW50IChMb2NhbDApCiAgICAg ICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoQXJnMCwgMHgwMSkpLCBJ bmRleCAoRGVyZWZPZiAoSW5kZXggKEZCVUYsIExvY2FsMCkpLCAweDAxKSkK ICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChBcmcwLCAweDAy KSksIEluZGV4IChEZXJlZk9mIChJbmRleCAoRkJVRiwgTG9jYWwwKSksIDB4 MDIpKQogICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKEFyZzAs IDB4MDMpKSwgSW5kZXggKERlcmVmT2YgKEluZGV4IChGQlVGLCBMb2NhbDAp KSwgMHgwMykpCiAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAo QXJnMCwgMHgwNCkpLCBJbmRleCAoRGVyZWZPZiAoSW5kZXggKEZCVUYsIExv Y2FsMCkpLCAweDA0KSkKICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAg ICAgIH0KCiAgICAgICAgTWV0aG9kIChRRklGLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgIHsKICAgICAgICAgICAgSWYgKExFcXVhbCAoQ1BVUSwgMHgw MCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFuZCAoRGVyZWZP ZiAoSW5kZXggKFFDRk4sIDB4MDUpKSwgMHhGRkZERkZGRiwgTG9jYWwwKQog ICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgSW5kZXggKFFDRk4sIDB4 MDUpKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgT3IgKERlcmVmT2YgKEluZGV4IChRQ0ZO LCAweDA1KSksIDB4MDAwMjAwMDAsIExvY2FsMCkKICAgICAgICAgICAgICAg IFN0b3JlIChMb2NhbDAsIEluZGV4IChRQ0ZOLCAweDA1KSkKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgUmV0dXJuIChRQlVGKQogICAgICAgIH0KCiAg ICAgICAgTWV0aG9kIChHQ1FWLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMCkpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoQ1BWTCkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMSkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoQ1BWSCkK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwg MHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAo Q1BWQykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuICgweDAw KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChRRlNULCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJn MCwgRGVyZWZPZiAoSW5kZXggKFFDRk4sIDB4MDApKSkpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFJldHVybiAoQ1FTVCkKICAgICAgICAgICAg fQoKICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgIH0KICAgIH0K CiAgICBOYW1lIChIQkFTLCAweDAwKQogICAgTmFtZSAoSExCQSwgMHgwMCkK ICAgIE5hbWUgKEhERVYsIDB4MDApCiAgICBPcGVyYXRpb25SZWdpb24gKFJF RlAsIFN5c3RlbUlPLCAweDYxLCAweDAxKQogICAgRmllbGQgKFJFRlAsIEJ5 dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgUDA2MSwg ICA4CiAgICB9CgogICAgTWV0aG9kIChGWkhELCAwLCBOb3RTZXJpYWxpemVk KQogICAgewogICAgICAgIFN0b3JlICgweDgwLCBMb2NhbDApCiAgICAgICAg U3RvcmUgKERNQVgsIExvY2FsMSkKICAgICAgICBXaGlsZSAoTE5vdCAoTEdy ZWF0ZXIgKExvY2FsMCwgTG9jYWwxKSkpCiAgICAgICAgewogICAgICAgICAg ICBBbmQgKExvY2FsMCwgMHg3RiwgTG9jYWwzKQogICAgICAgICAgICBTdG9y ZSAoMHgwMSwgTG9jYWwyKQogICAgICAgICAgICBTaGlmdExlZnQgKExvY2Fs MiwgTG9jYWwzLCBMb2NhbDIpCiAgICAgICAgICAgIElmIChMTm90IChBbmQg KFxfU0IuUENJMC5IRlpGLCBMb2NhbDIpKSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgSWYgKEZaT0QgKExvY2FsMCkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgT3IgKFxfU0IuUENJMC5IRlpGLCBM b2NhbDIsIFxfU0IuUENJMC5IRlpGKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBJbmNyZW1lbnQgKExvY2FsMCkKICAg ICAgICB9CiAgICB9CgogICAgTWV0aG9kIChGWk9ELCAxLCBOb3RTZXJpYWxp emVkKQogICAgewogICAgICAgIEdIRVQgKEFyZzApCiAgICAgICAgSWYgKExF cXVhbCAoSEJBUywgMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1 cm4gKDB4MDEpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChIREVW LCAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoMHgwMSkK ICAgICAgICB9CgogICAgICAgIFN0b3JlIChIREVWLCBMb2NhbDEpCiAgICAg ICAgQW5kIChMb2NhbDEsIDB4MTAsIExvY2FsMSkKICAgICAgICBJZiAoTEVx dWFsIChMb2NhbDEsIDB4MDApKQogICAgICAgIHsKICAgICAgICAgICAgUmV0 dXJuICgweDAxKQogICAgICAgIH0KCiAgICAgICAgU0RSViAoKQogICAgICAg IEFkZCAoSEJBUywgMHgwNywgTG9jYWwxKQogICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoSFJHUywgU3lzdGVtSU8sIExvY2FsMSwgMHgwMSkKICAgICAgICBG aWVsZCAoSFJHUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICB7CiAgICAgICAgICAgIFNSRUcsICAgOAogICAgICAgIH0KCiAgICAgICAg U3RvcmUgKFNSRUcsIExvY2FsMSkKICAgICAgICBBbmQgKExvY2FsMSwgMHg4 MCwgTG9jYWwxKQogICAgICAgIElmIChMb2NhbDEpCiAgICAgICAgewogICAg ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgfQoKICAgICAgICBBZGQg KEhCQVMsIDB4MDcsIExvY2FsMSkKICAgICAgICBPcGVyYXRpb25SZWdpb24g KEhSR0MsIFN5c3RlbUlPLCBMb2NhbDEsIDB4MDEpCiAgICAgICAgRmllbGQg KEhSR0MsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewog ICAgICAgICAgICBDUkVHLCAgIDgKICAgICAgICB9CgogICAgICAgIFN0b3Jl ICgweEY1LCBDUkVHKQogICAgICAgIElmIChXRkNGICgpKQogICAgICAgIHsK ICAgICAgICAgICAgQWRkIChIQkFTLCAweDA3LCBMb2NhbDApCiAgICAgICAg ICAgIFN0b3JlIChTUkVHLCBMb2NhbDEpCiAgICAgICAgICAgIFJldHVybiAo TE5vdCAoQW5kIChMb2NhbDEsIDB4MDEpKSkKICAgICAgICB9CiAgICAgICAg RWxzZQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAg ICAgIH0KICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKERCR0EsIFN5c3Rl bUlPLCAweDgwLCAweDA0KQogICAgRmllbGQgKERCR0EsIERXb3JkQWNjLCBO b0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIERCMzIsICAgMzIKICAg IH0KCiAgICBNZXRob2QgKEdIRVQsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7 CiAgICAgICAgQW5kIChBcmcwLCAweDdGLCBMb2NhbDApCiAgICAgICAgU2hp ZnRMZWZ0IChMb2NhbDAsIDB4MDUsIExvY2FsMCkKICAgICAgICBBZGQgKExv Y2FsMCwgSFBUQSwgTG9jYWwwKQogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo SERQVCwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MjApCiAgICAgICAgRmll bGQgKEhEUFQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ewogICAgICAgICAgICBIUDAwLCAgIDE2LCAKICAgICAgICAgICAgT2Zmc2V0 ICgweDA0KSwgCiAgICAgICAgICAgIEhQMDQsICAgOCwgCiAgICAgICAgICAg IE9mZnNldCAoMHgxMiksIAogICAgICAgICAgICBIUDBDLCAgIDgKICAgICAg ICB9CgogICAgICAgIFN0b3JlIChIUDAwLCBIQkFTKQogICAgICAgIFN0b3Jl IChIUDA0LCBITEJBKQogICAgICAgIFN0b3JlIChIUDBDLCBIREVWKQogICAg fQoKICAgIE1ldGhvZCAoU0RSViwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsK ICAgICAgICBBZGQgKEhCQVMsIDB4MDYsIExvY2FsMCkKICAgICAgICBPcGVy YXRpb25SZWdpb24gKEhSR0gsIFN5c3RlbUlPLCBMb2NhbDAsIDB4MDEpCiAg ICAgICAgRmllbGQgKEhSR0gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgewogICAgICAgICAgICBIUkVHLCAgIDgKICAgICAgICB9Cgog ICAgICAgIFN0b3JlIChITEJBLCBIUkVHKQogICAgfQoKICAgIE1ldGhvZCAo V0ZDRiwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTRFJWICgp CiAgICAgICAgQWRkIChIQkFTLCAweDAxLCBMb2NhbDApCiAgICAgICAgT3Bl cmF0aW9uUmVnaW9uIChIUkdFLCBTeXN0ZW1JTywgTG9jYWwwLCAweDAxKQog ICAgICAgIEZpZWxkIChIUkdFLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZl KQogICAgICAgIHsKICAgICAgICAgICAgRVJFRywgICA4CiAgICAgICAgfQoK ICAgICAgICBTdG9yZSAoMHgwMCwgRVJFRykKICAgICAgICBBZGQgKEhCQVMs IDB4MDcsIExvY2FsMSkKICAgICAgICBPcGVyYXRpb25SZWdpb24gKEhSR0Ms IFN5c3RlbUlPLCBMb2NhbDEsIDB4MDEpCiAgICAgICAgRmllbGQgKEhSR0Ms IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAg ICAgICBDUkVHLCAgIDgKICAgICAgICB9CgogICAgICAgIFN0b3JlICgweDI4 LCBMb2NhbDApCiAgICAgICAgV2hpbGUgKExvY2FsMCkKICAgICAgICB7CiAg ICAgICAgICAgIEFuZCAoQ1JFRywgMHgwMSwgTG9jYWwyKQogICAgICAgICAg ICBJZiAoTG9jYWwyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFdGWkYg KExvY2FsMSkKICAgICAgICAgICAgQW5kIChDUkVHLCAweDgwLCBMb2NhbDIp CiAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMiwgMHgwMCkpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAg ICAgfQoKICAgICAgICBSZXR1cm4gKDB4MDApCiAgICB9CgogICAgTWV0aG9k IChXRlpGLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIE9wZXJh dGlvblJlZ2lvbiAoSFJHQywgU3lzdGVtSU8sIEFyZzAsIDB4MDEpCiAgICAg ICAgRmllbGQgKEhSR0MsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgewogICAgICAgICAgICBDUkVHLCAgIDgKICAgICAgICB9CgogICAg ICAgIFN0b3JlICgweEZGRkYsIExvY2FsMSkKICAgICAgICBTdG9yZSAoQ1JF RywgTG9jYWwyKQogICAgICAgIEFuZCAoTG9jYWwyLCAweDgwLCBMb2NhbDIp CiAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwyLCAweDAwKSkKICAgICAgICB7 CiAgICAgICAgICAgIFJldHVybiAoV2hpbGUgKExvY2FsMSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgU3RhbGwgKDB4MEYpCiAgICAgICAgICAg ICAgICBEZWNyZW1lbnQgKExvY2FsMSkKICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKExvY2FsMSwgMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChTdG9yZSAoQ1JFRywgTG9jYWwyKSkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBbmQgKExvY2Fs MiwgMHg4MCwgTG9jYWwyKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAo TG9jYWwyLCAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKERlY3JlbWVudCAoTG9jYWwxKSkKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9CgogICAg U2NvcGUgKFxfU0IuUENJMCkKICAgIHsKICAgICAgICBOYW1lIChIRlpGLCAw eDAwKQogICAgICAgIE1ldGhvZCAoSFdBSywgMSwgTm90U2VyaWFsaXplZCkK ICAgICAgICB7CiAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDMp KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwg SEZaRikKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29w ZSAoXF9TQikKICAgIHsKICAgICAgICBTY29wZSAoUENJMCkKICAgICAgICB7 CiAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBXb3JkQnVzTnVtYmVyIChS ZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29k ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAsCiAgICAgICAgICAgICAg ICAgICAgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgIDB4MDBGRiwKICAg ICAgICAgICAgICAgICAgICAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAg MHgwMTAwKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDBDRjgs IDB4MENGOCwgMHgwMSwgMHgwOCkKICAgICAgICAgICAgICAgIFdvcmRJTyAo UmVzb3VyY2VQcm9kdWNlciwgTWluRml4ZWQsIE1heEZpeGVkLCBQb3NEZWNv ZGUsIEVudGlyZVJhbmdlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwK ICAgICAgICAgICAgICAgICAgICAweDAwMDAsCiAgICAgICAgICAgICAgICAg ICAgMHgwQ0Y3LAogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwKICAgICAg ICAgICAgICAgICAgICAweDBDRjgpCiAgICAgICAgICAgICAgICBXb3JkSU8g KFJlc291cmNlUHJvZHVjZXIsIE1pbkZpeGVkLCBNYXhGaXhlZCwgUG9zRGVj b2RlLCBFbnRpcmVSYW5nZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAs CiAgICAgICAgICAgICAgICAgICAgMHgwRDAwLAogICAgICAgICAgICAgICAg ICAgIDB4RkZGRiwKICAgICAgICAgICAgICAgICAgICAweDAwMDAsCiAgICAg ICAgICAgICAgICAgICAgMHhGMzAwKQogICAgICAgICAgICAgICAgRFdvcmRN ZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQs IE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAgICAgIDB4MDAw QTAwMDAsCiAgICAgICAgICAgICAgICAgICAgMHgwMDBCRkZGRiwKICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAgICAg IDB4MDAwMjAwMDApCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVz b3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQs IENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMCwKICAg ICAgICAgICAgICAgICAgICAweDAwMERGRkZGLAogICAgICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAw MCkKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1 Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxl LCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwK ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAwMCwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwKQogICAgICAg ICAgICB9KQogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChDUlMsIDB4 NUMsIE1JTjUpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywg MHg2MCwgTUFYNSkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JT LCAweDY4LCBMRU41KQogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChD UlMsIDB4NzYsIE1JTjYpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQg KENSUywgMHg3QSwgTUFYNikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoQ1JTLCAweDgyLCBMRU42KQogICAgICAgICAgICBNZXRob2QgKF9DUlMs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFN0b3JlIChNRzFMLCBMb2NhbDApCiAgICAgICAgICAgICAgICBJZiAo TG9jYWwwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFN0b3JlIChNRzFCLCBNSU41KQogICAgICAgICAgICAgICAgICAgIFN0b3Jl IChNRzFMLCBMRU41KQogICAgICAgICAgICAgICAgICAgIEFkZCAoTUlONSwg RGVjcmVtZW50IChMb2NhbDApLCBNQVg1KQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIFN0b3JlIChNRzJCLCBNSU42KQogICAgICAgICAg ICAgICAgU3RvcmUgKE1HMkwsIExFTjYpCiAgICAgICAgICAgICAgICBTdG9y ZSAoTUcyTCwgTG9jYWwwKQogICAgICAgICAgICAgICAgQWRkIChNSU42LCBE ZWNyZW1lbnQgKExvY2FsMCksIE1BWDYpCiAgICAgICAgICAgICAgICBSZXR1 cm4gKENSUykKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBO YW1lIChXT1RCLCAweDAwKQogICAgTmFtZSAoV1NTQiwgMHgwMCkKICAgIE5h bWUgKFdBWEIsIDB4MDApCiAgICBNZXRob2QgKF9QVFMsIDEsIE5vdFNlcmlh bGl6ZWQpCiAgICB7CiAgICAgICAgU3RvcmUgKEFyZzAsIERCRzgpCiAgICAg ICAgUFRTIChBcmcwKQogICAgICAgIFN0b3JlICgweDAwLCBJbmRleCAoV0FL UCwgMHgwMCkpCiAgICAgICAgU3RvcmUgKDB4MDAsIEluZGV4IChXQUtQLCAw eDAxKSkKICAgICAgICBJZiAoTEFuZCAoTEVxdWFsIChBcmcwLCAweDA0KSwg TEVxdWFsIChPU0ZMICgpLCAweDAyKSkpCiAgICAgICAgewogICAgICAgICAg ICBTbGVlcCAoMHgwQkI4KQogICAgICAgIH0KCiAgICAgICAgU3RvcmUgKEFT U0IsIFdTU0IpCiAgICAgICAgU3RvcmUgKEFPVEIsIFdPVEIpCiAgICAgICAg U3RvcmUgKEFBWEIsIFdBWEIpCiAgICAgICAgU3RvcmUgKEFyZzAsIEFTU0Ip CiAgICAgICAgU3RvcmUgKE9TRkwgKCksIEFPVEIpCiAgICAgICAgU3RvcmUg KFplcm8sIEFBWEIpCiAgICB9CgogICAgTWV0aG9kIChfV0FLLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgewogICAgICAgIFNoaWZ0TGVmdCAoQXJnMCwgMHgw NCwgREJHOCkKICAgICAgICBTdG9yZSAoMHgwMCwgUExFRCkKICAgICAgICBX QUsgKEFyZzApCiAgICAgICAgSWYgKEFTU0IpCiAgICAgICAgewogICAgICAg ICAgICBTdG9yZSAoV1NTQiwgQVNTQikKICAgICAgICAgICAgU3RvcmUgKFdP VEIsIEFPVEIpCiAgICAgICAgICAgIFN0b3JlIChXQVhCLCBBQVhCKQogICAg ICAgIH0KCiAgICAgICAgSWYgKERlcmVmT2YgKEluZGV4IChXQUtQLCAweDAw KSkpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoMHgwMCwgSW5kZXgg KFdBS1AsIDB4MDEpKQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAg ewogICAgICAgICAgICBTdG9yZSAoQXJnMCwgSW5kZXggKFdBS1AsIDB4MDEp KQogICAgICAgIH0KCiAgICAgICAgUmV0dXJuIChXQUtQKQogICAgfQoKICAg IE9wZXJhdGlvblJlZ2lvbiAoXF9TQi5QQ0kwLlNCUkcuUFdDUSwgUENJX0Nv bmZpZywgMHg5NCwgMHgwMSkKICAgIEZpZWxkIChcX1NCLlBDSTAuU0JSRy5Q V0NRLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAg IFBMRUQsICAgMiwgCiAgICAgICAgICAgICwgICAyLCAKICAgICAgICBTVVNV LCAgIDEsIAogICAgICAgIE9mZnNldCAoMHgwMSkKICAgIH0KCiAgICBOYW1l IChcX1MwLCBQYWNrYWdlICgweDA0KQogICAgewogICAgICAgIDB4MDAsIAog ICAgICAgIDB4MDAsIAogICAgICAgIDB4MDAsIAogICAgICAgIDB4MDAKICAg IH0pCiAgICBJZiAoU1MxKQogICAgewogICAgICAgIE5hbWUgKFxfUzEsIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDA0LCAKICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg ICAweDAwCiAgICAgICAgfSkKICAgIH0KCiAgICBJZiAoU1MzKQogICAgewog ICAgICAgIE5hbWUgKFxfUzMsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewog ICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg ICAgIDB4MDAsIAogICAgICAgICAgICAweDAwCiAgICAgICAgfSkKICAgIH0K CiAgICBJZiAoU1M0KQogICAgewogICAgICAgIE5hbWUgKFxfUzQsIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgMHgwMCwgCiAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAw eDAwCiAgICAgICAgfSkKICAgIH0KCiAgICBOYW1lIChcX1M1LCBQYWNrYWdl ICgweDA0KQogICAgewogICAgICAgIDB4MDIsIAogICAgICAgIDB4MDAsIAog ICAgICAgIDB4MDAsIAogICAgICAgIDB4MDAKICAgIH0pCiAgICBNZXRob2Qg KFBUUywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoQXJn MCkKICAgICAgICB7CiAgICAgICAgICAgIFxfU0IuUENJMC5OUFRTIChBcmcw KQogICAgICAgICAgICBcX1NCLlBDSTAuU0JSRy5TUFRTIChBcmcwKQogICAg ICAgIH0KICAgIH0KCiAgICBNZXRob2QgKFdBSywgMSwgTm90U2VyaWFsaXpl ZCkKICAgIHsKICAgICAgICBcX1NCLlBDSTAuTldBSyAoQXJnMCkKICAgICAg ICBcX1NCLlBDSTAuU0JSRy5TV0FLIChBcmcwKQogICAgICAgIFxfU0IuUENJ MC5IV0FLIChBcmcwKQogICAgfQp9Cgo= --0-1891166672-1152355389=:31797--