<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>146352</bug_id>
          
          <creation_ts>2006-09-04 22:50 0000</creation_ts>
          <short_desc>sys-power/hibernate-script: errors in /sbin/functions.sh after resume</short_desc>
          <delta_ts>2006-12-22 05:46:39 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Applications</component>
          <version>2006.0</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>askwar@digitalprojects.com</reporter>
          <assigned_to>alonbl@gentoo.org</assigned_to>
          <cc>mobile@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-04 22:50:26 0000</bug_when>
            <thetext>I just resumed my system, after I had it hibernated with 

[ebuild   R   ] sys-power/hibernate-script-1.93-r4  USE=&quot;-logrotate vim&quot; 69 kB


alexander@blatt /all $ uname -a
Linux blatt 2.6.17-suspend2-r4.044.no-kernel-alsa #1 PREEMPT Sat Sep 2 14:13:39 CEST 2006 i686 Intel(R) Celeron(R) M processor         1.50GHz GenuineIntel GNU/Linux

To hibernate the system, I ran &quot;sudo hibernate -v3&quot; manually and got the following, when the system resumed:

hibernate: [91] Executing GentooModulesAutoload ...
/sbin/functions.sh: 7: [[: not found
/sbin/functions.sh: 10: declare: not found
/sbin/functions.sh: 11: declare: not found
/sbin/functions.sh: 79: [[: not found
/sbin/functions.sh: 79: [[: not found
/sbin/functions.sh: 88: [[: not found
/sbin/functions.sh: 96: [[: not found
/sbin/functions.sh: 298: Syntax error: Bad substitution


alexander@blatt /all $ emerge --info
Portage 2.1.1_rc1-r2 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.4-r3, 2.6.17-suspend2-r4.044.no-kernel-alsa i686)
=================================================================
System uname: 2.6.17-suspend2-r4.044.no-kernel-alsa i686 Intel(R) Celeron(R) M processor         1.50GHz
Gentoo Base System version 1.12.4
Last Sync: Tue, 05 Sep 2006 05:20:01 +0000
ccache version 2.4 [enabled]
app-admin/eselect-compiler: [Not Present]
dev-lang/python:     2.3.4-r1, 2.4.3-r3
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r2
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.60
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.13-r3
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17
ACCEPT_KEYWORDS=&quot;x86 ~x86&quot;
AUTOCLEAN=&quot;yes&quot;
CBUILD=&quot;i686-pc-linux-gnu&quot;
CFLAGS=&quot;-O2 -mtune=pentium-m -pipe -fomit-frame-pointer&quot;
CHOST=&quot;i686-pc-linux-gnu&quot;
CONFIG_PROTECT=&quot;/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config&quot;
CONFIG_PROTECT_MASK=&quot;/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c&quot;
CXXFLAGS=&quot;-O2 -mtune=pentium-m -pipe -fomit-frame-pointer&quot;
DISTDIR=&quot;/Gentoo/Portage/distfiles&quot;
EMERGE_DEFAULT_OPTS=&quot;--alphabetical&quot;
FEATURES=&quot;autoconfig buildpkg ccache collision-protect distlocks metadata-transfer sandbox sfperms strict&quot;
GENTOO_MIRRORS=&quot;        http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/   http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/       ftp://ftp.tu-clausthal.de/pub/linux/gentoo/     http://distro.ibiblio.org/pub/linux/distributions/gentoo/  ftp://distro.ibiblio.org/pub/linux/distributions/gentoo    http://distfiles.gentoo.org/ &quot;
LANG=&quot;de_DE.UTF-8&quot;
LDFLAGS=&quot;-Wl,-O1&quot;
LINGUAS=&quot;de&quot;
PKGDIR=&quot;/Gentoo/Portage/packages&quot;
PORTAGE_RSYNC_OPTS=&quot;--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=&apos;/distfiles&apos; --exclude=&apos;/local&apos; --exclude=&apos;/packages&apos;&quot;
PORTAGE_TMPDIR=&quot;/Gentoo/Portage/build&quot;
PORTDIR=&quot;/Gentoo/Portage/tree&quot;
PORTDIR_OVERLAY=&quot;/Gentoo/Portage/local-tree/misc&quot;
SYNC=&quot;rsync://rsync.de.gentoo.org/gentoo-portage&quot;
USE=&quot;x86 GAPING_SECURITY_HOLE acpi amd artswrappersuid async bash-completion bdf berkdb bitmap-fonts bluetooth bootsplash cairo caps cardbus ccache cdda cddb cdio cdparanoia cdr cdrom cle266 cli crypt css curlwrappers dbus devmap dillo divx4linux dlloader dri dvd dvdread elibc_glibc emoticon esd exif fam fbcon fbdev firefox fping freetype gdbm gnokii hal hpn icc id3 idn imap imlib2 input_devices_evdev input_devices_keyboard input_devices_mouse insecure-drivers insecure-savers isdnlog javascript jikes kdeenablefinal kdehiddenvisibility kernel_linux libedit libnotify linguas_de linuxthreads-tls logrotate lynxkeymap madwifi maildir matroska mbox mmx mmxext mozilla moznoirc mozsvg mpeg2 mpeg4 mplayer multicall musicbrainz ncurses netboot network new-login nfs nis nls no-old-linux no-suexec noantlr nobcel nobeanutils nobsf nobsh nocd nocommonslogging nocommonsnet nodrm nogg nogulm nojsch nojython nolog4j nomac nooro nopri norhino noxalan noxerces nozaptel nptl nsplugin offensive openssh pam_console pam_timestamp passfile password patented pccts pcmcia pcre perl perlsuid pic player pnp ppds pppd rar readline real recode reflection reiserfs sdl sendfile sensord session sftp sms spf spl sse sse2 ssl startup-notification stream subp subtitles suid symlink sysfs syslog tiff transcode truetype-fonts trusted type1-fonts udev underscores unichrome unicode unsafe usb userland_GNU utf8 uudeview video_cards_fbdev video_cards_vesa video_cards_vga video_cards_via vim vim-pager vlm wifi win32codecs wma123 x11vnc xinetd xml xorg xpm xscreensaver xvid xvmc zlib&quot;
Unset:  CTARGET, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phreak@gentoo.org</who>
            <bug_when>2006-09-05 10:35:11 0000</bug_when>
            <thetext>Alexander, could you please upload the files in /etc/hibernate for review ? Simply because it works for me.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-05 11:33:16 0000</bug_when>
            <thetext>Created an attachment (id=96094)
/etc/hibernate

As requested - files from /etc/hibernate</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phreak@gentoo.org</who>
            <bug_when>2006-09-05 12:05:41 0000</bug_when>
            <thetext>I can&apos;t even reproduce it with your (slightly changed) configuration. Just works here. Sorry.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-16 22:10:47 0000</bug_when>
            <thetext>(In reply to comment #3)
&gt; I can&apos;t even reproduce it with your (slightly changed) configuration. Just
&gt; works here. Sorry.
&gt; 

Interesting. I built a new system, and there I find the exact same error.

Because of this, I&apos;m reopening this bug.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-18 15:02:36 0000</bug_when>
            <thetext>Created an attachment (id=97366)
/etc/modules.autoload.d/kernel-2.6

I get this problem, when I set:

GentooModulesAutoload yes

Without GentooModulesAutoload, no errors show.

Attached, you can find /etc/modules.autoload.d/kernel-2.6. Maybe you can find if there&apos;s something broken in the file.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-26 10:25:46 0000</bug_when>
            <thetext>Created an attachment (id=98150)
Kernel config

Attached is my kernel configuration.

If you use this kernel AND enable &quot;GentooModulesAutoload yes&quot;, you should get the errors I&apos;m getting, I suppose.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-26 10:27:59 0000</bug_when>
            <thetext>According to bug #146333 comment #2 , this bug here is a blocker of 146333.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phreak@gentoo.org</who>
            <bug_when>2006-09-26 11:12:21 0000</bug_when>
            <thetext>OK, Alexander. Let&apos;s see if that works for you. Could you please try [1] and see if that fixes your problem ? If yes, then I&apos;ll ask Bernard, if he&apos;ll accept the patch.

1:http://overlays.gentoo.org/dev/phreak/browser/gentoo/sys-power/hibernate-script/hibernate-script-1.93-r7.ebuild</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-26 11:42:35 0000</bug_when>
            <thetext>(In reply to comment #8)
&gt; OK, Alexander. Let&apos;s see if that works for you. Could you please try [1] and

Certainly.

&gt; see if that fixes your problem ?

Yes, it fixes the problem I had.

&gt; If yes, then I&apos;ll ask Bernard, if he&apos;ll accept
&gt; the patch.

That&apos;d be great!

Thanks for your help!</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phreak@gentoo.org</who>
            <bug_when>2006-09-26 11:53:45 0000</bug_when>
            <thetext>Thanks a lot for your help again Alexander. This is finally fixed in CVS!</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zlin@gentoo.org</who>
            <bug_when>2006-09-26 11:56:35 0000</bug_when>
            <thetext>I really think you should s/einfo/elog/ in the pkg_postinst() of the ebuild. einfo&apos;s aren&apos;t shown through elog in a default configuration and the information is important enough that it should be shown..</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-26 22:32:36 0000</bug_when>
            <thetext>Sorry, it is NOT fixed.

When I suspend my system, I&apos;m calling &quot;hibernate&quot; from a script which runs in a xterm. Only if the return code from hibernate is not 0, I let the xterm be open. Because of this, I did not notice that there&apos;s still an error.

When I resume, I get the following errors:

hibernate: [91] Executing GentooModulesAutoload ...
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: arith: syntax error: &quot; KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO &quot;
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: [[: not found
/usr/sbin/hibernate: 7: arith: syntax error: &quot; KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO &quot;
Loading modules listed /etc/modules.autoload.d/kernel-2.6
Loading unix
Loading via82cxxx
FATAL: Module via82cxxx not found.
Loading uhci-hcd
Loading ehci-hcd
Loading ath_pci
Loading fan
Loading battery
Loading thermal
Loading button
Loading ac
Loading psmouse
Loading evdev
Loading p4-clockmod
Loading cpufreq_performance
FATAL: Module cpufreq_performance not found.
Loading cpufreq_powersave
Loading cpufreq_ondemand
Loading cpufreq_conservative
Loading ide-cd
Loading via-agp
Loading drm
Loading pcspkr
Loading non-fatal
Loading microcode
hibernate: [90] Executing XStatusProgress ...</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-26 23:51:00 0000</bug_when>
            <thetext>I&apos;d like to add, that hibernate....-r7 (or rather hibernate-script-1.93-patches-0.5, I suppose) works better than -r6/patches-0.4, though.

With -r6, when I resumed, the system stayed in text mode and had to hit &lt;Alt&gt;+&lt;F7&gt; to switch back to X. When I disable GentooModulesAutoload (or with -r7/0.5), the system automatically switches back to X, just as it should. That&apos;s probably another reason why I did not notice the bug yesterday evening.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phreak@gentoo.org</who>
            <bug_when>2006-09-28 04:29:55 0000</bug_when>
            <thetext>(In reply to comment #12)
&gt; Sorry, it is NOT fixed.
&gt; 
&gt; When I suspend my system, I&apos;m calling &quot;hibernate&quot; from a script which runs in a
&gt; xterm. Only if the return code from hibernate is not 0, I let the xterm be
&gt; open. Because of this, I did not notice that there&apos;s still an error.
&gt; 
&gt; When I resume, I get the following errors:
&gt; 
&gt; hibernate: [91] Executing GentooModulesAutoload ...
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: arith: syntax error: &quot; KV_MAJOR * 65536 + KV_MINOR *
&gt; 256 + KV_MICRO &quot;
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: [[: not found
&gt; /usr/sbin/hibernate: 7: arith: syntax error: &quot; KV_MAJOR * 65536 + KV_MINOR *
&gt; 256 + KV_MICRO &quot;
&gt; Loading modules listed /etc/modules.autoload.d/kernel-2.6
&gt; Loading unix
&gt; Loading via82cxxx
&gt; FATAL: Module via82cxxx not found.
&gt; Loading uhci-hcd
&gt; Loading ehci-hcd
&gt; Loading ath_pci
&gt; Loading fan
&gt; Loading battery
&gt; Loading thermal
&gt; Loading button
&gt; Loading ac
&gt; Loading psmouse
&gt; Loading evdev
&gt; Loading p4-clockmod
&gt; Loading cpufreq_performance
&gt; FATAL: Module cpufreq_performance not found.
&gt; Loading cpufreq_powersave
&gt; Loading cpufreq_ondemand
&gt; Loading cpufreq_conservative
&gt; Loading ide-cd
&gt; Loading via-agp
&gt; Loading drm
&gt; Loading pcspkr
&gt; Loading non-fatal
&gt; Loading microcode
&gt; hibernate: [90] Executing XStatusProgress ...

OK, another try. Same URL as before (my gentoo overlay on o.g.o but revision 7), this time it _should_ fix it. If you won&apos;t remerge the package, simply try to add &apos;#!/bin/bash&apos; to /usr/share/hibernate/scriptlets.d/modules_gentoo at the top.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-09-28 12:48:53 0000</bug_when>
            <thetext>I&apos;m now at hibernate-script-1.93-r8 using your patches v0.6 and I still get this error.

alexander@blatt /dev/shm $ head -n3 /usr/share/hibernate/scriptlets.d/modules_gentoo
#!/bin/bash
# -*- sh -*-
# vim:ft=sh:ts=8:sw=4:noet</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phreak@gentoo.org</who>
            <bug_when>2006-10-01 09:06:45 0000</bug_when>
            <thetext>OK, thanks to Bernard Blackham (the author of most of hibernate-script) and Alexander Skwar, this should be fixed now (hopefully).

/usr/sbin/hibernate was basically looking for /bin/dash which doesn&apos;t understand &apos;[[&apos; and certain arithmetics used within KV_to_int (fex).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-01 13:08:04 0000</bug_when>
            <thetext>I&apos;ll attach a patch against the original modules_gentoo, which makes modules_gentoo be dash compatible. This would obsolete the hibernate-script-1.93-remove-dash-support.patch which is new in the 0.7 patch set.

Reopening this bug to get this patch reviewed (and hopefully integrated).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-01 13:12:54 0000</bug_when>
            <thetext>Created an attachment (id=98549)
modules_gentoo.dash-compatible.patch

Patch against modules_gentoo from the hibernate-script-1.93.tar.gz file. With this patch applied, modules_gentoo is dash compatible.

IMO it would also be a good to add this to where this logic was originally taken from (baselayout?), so that this script also gets (more) posix compliant.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-01 14:03:08 0000</bug_when>
            <thetext>Created an attachment (id=98554)
modules_gentoo.dash-compatible.v2.patch

New version of the modules_gentoo.dash-compatible.patch - this one resembles the original logic from /etc/init.d/functions much more.

In this version, I exchanged

echo &quot;${KV%%[^[:digit:]]*}&quot;
with
echo &quot;${KV%%[!0-9]*}&quot;

In dash, there&apos;s no [:digit:] and a negation is done with ! instead of ^. I also removed the [[ and replaced them with test or [.

I tested it, and on my system, with dash, it works just fine.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-01 16:17:02 0000</bug_when>
            <thetext>what a waste of time

change the code to use /bin/bash and the problem is solved</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-01 23:30:19 0000</bug_when>
            <thetext>(In reply to comment #20)
&gt; what a waste of time
&gt; 
&gt; change the code to use /bin/bash and the problem is solved
&gt; 

Correct, a waste of time. Write portable code in the first place, and problem solved.

But as you&apos;ve seen, upstream tries to use dash, if it&apos;s available, and dash only understands posix, not bash code. Upstream uses dash, as it&apos;s way faster.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-01 23:31:19 0000</bug_when>
            <thetext>Spanky, why did you remove the block of bug #146333?

*** This bug has been marked as a duplicate of 146333 ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-02 05:00:19 0000</bug_when>
            <thetext>you were duplicating functionality already provided by baselayout ... considering that is a Gentoo file, simply using bash and the host baselayout code is fine while rewriting all of the code in baselayout is a waste of time</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-02 07:14:43 0000</bug_when>
            <thetext>(In reply to comment #23)
&gt; you were duplicating functionality already provided by baselayout ...

Correct, but this has to be done, as the functionality provided by baselayout cannot be used (else this bug would not exist). Reason is, that the code isn&apos;t portable, ie. it is not Posix compliant. This in itself can be seen as a bug.

So, either the non-working code from baselayout has to be patched (this IMO is advisable) or it has to be made sure, that only bash is used - this is not advisable, as bash is a lot slower than the Posix compliant dash shell.

&gt; considering that is a Gentoo file, simply using bash and the host baselayout
&gt; code is fine while rewriting all of the code in baselayout is a waste of time

I disagree. It would be proper to rewrite the code in baselayout to be Posix compliant, where possible. And the code which I rewrote was easily rewritable to be Posix compliant, as the functionality did not require any non-Posix code. Writing the code in a non portable way makes no sense; it should only be done IMO, if there&apos;s an advantage. In the rewritten code, the non portable code provided no advantage. Or, at least I don&apos;t see it - eg. in how far provides [[ an advantage over test, in the way [[ was used here? Or how is [^[:digit:]] better than [!0-9]?

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-02 07:40:58 0000</bug_when>
            <thetext>and again, it&apos;s a waste of time

you&apos;re working on Gentoo code ... Gentoo requires baselayout/bash so just go with those technologies</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-02 07:54:09 0000</bug_when>
            <thetext>also, i dont know what spec you&apos;re reading, but [:digit:] is valid

because dash does not support it does not mean it is not portable; it means dash is broken</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-02 08:09:08 0000</bug_when>
            <thetext>(In reply to comment #25)
&gt; and again, it&apos;s a waste of time

Yes, it were, if the code were already written in a portable way which conforms to open standards. But it isn&apos;t. So, no, it&apos;s not a waste of time. It&apos;s a waste of time denying that it&apos;s bad to break standards for no good reason. As I said, I just don&apos;t see why it&apos;s better to use [[ instead of test (or [). But please inform me about the advantages (in the way the code is actually used)!

&gt; you&apos;re working on Gentoo code ... Gentoo requires baselayout/bash so just go
&gt; with those technologies

hibernate explicitly uses dash for good reasons (as already explained). Because of this, the code has to be fixed. Fixing the non working code is what this bug is about.

(In reply to comment #26)
&gt; also, i dont know what spec you&apos;re reading, but [:digit:] is valid

http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html

SuSv3 doesn&apos;t show this. At least I haven&apos;t found, where in sh named classes are allowed. Please show, where the standard allows named classes.

&gt; because dash does not support it does not mean it is not portable; it means
&gt; dash is broken

That&apos;s not correct. It means that [:digit:] shouldn&apos;t be used. But maybe you&apos;re right - please show where in the standard a named class (eg. [:digit:]) can be used in the shell. Not in RE, but in the shell, ie. in pathname expansion.

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-02 08:12:30 0000</bug_when>
            <thetext>Gentoo doesnt aim for POSIX compliance on purpose ... bash has some nice non-POSIX features and we take advantage of them

again, dash is broken ... you didnt read far enough into the specs:
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_13
[:digit:] is perfectly valid</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-02 08:26:11 0000</bug_when>
            <thetext>(In reply to comment #26)

&gt; because dash does not support it does not mean it is not portable; it means
&gt; dash is broken

I really don&apos;t see that dash is broken. Where is defined, that named classes have to be supported?

In man dash, you can find:

     The following four varieties of parameter expansion provide for substring
     processing.  In each case, pattern matching notation (see Shell
     Patterns), rather than regular expression notation, is used to evaluate
     the patterns.  [...]

     ${parameter%%word}    Remove Largest Suffix Pattern.  The word is
                           expanded to produce a pattern.  [...]

So, word should be Shell Pattern. Shell Patterns are defined as:

   Shell Patterns
     A pattern consists of normal characters, which match themselves, and
     meta-characters.  The meta-characters are ``!&apos;&apos;, ``*&apos;&apos;, ``?&apos;&apos;, and ``[&apos;&apos;.
     These characters lose their special meanings if they are quoted.  When
     command or variable substitution is performed and the dollar sign or back
     quotes are not double quoted, the value of the variable or the output of
     the command is scanned for these characters and they are turned into
     meta-characters.

     An asterisk (``*&apos;&apos;) matches any string of characters.  A question mark
     matches any single character.  A left bracket (``[&apos;&apos;) introduces a char-
     acter class.  The end of the character class is indicated by a (``]&apos;&apos;);
     if the ``]&apos;&apos; is missing then the ``[&apos;&apos; matches a ``[&apos;&apos; rather than intro-
     ducing a character class.  A character class matches any of the charac-
     ters between the square brackets.  A range of characters may be specified
     using a minus sign.  The character class may be complemented by making an
     exclamation point the first character of the character class.

     To include a ``]&apos;&apos; in a character class, make it the first character
     listed (after the ``!&apos;&apos;, if any).  To include a minus sign, make it the
     first or last character listed.



If dash is buggy, than it&apos;s at least a documented bug; or put differently, it behaves according to the documentation. The documentation of Shell Patterns doesn&apos;t list named classes (eg. [:digit:]).


(In reply to comment #28)
&gt; Gentoo doesnt aim for POSIX compliance on purpose ... bash has some nice
&gt; non-POSIX features and we take advantage of them

What advantage does [[ provide over [/test in the way it&apos;s used here? Where&apos;s the advantage of [:digit:] vs. [0-9]?

&gt; again, dash is broken ...

No, it&apos;s not - at least I don&apos;t see how.

&gt; you didnt read far enough into the specs:
&gt; http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_13
&gt; [:digit:] is perfectly valid

That&apos;s about pathname expansion. Is somewhere defined, that in ${parameter%%word} word has to use pathname expansion? If so, where is this defined? Actually, is the syntax of %% defined somewhere? I can&apos;t find it in http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html

And actually, I don&apos;t understand that fuss. I supplied a patch which makes the code Posix compliant. Even if Gentoo doesn&apos;t aim for standards conformance, what would be bad about accepting this code? What disadvantage does it have over the existing code? The advantage is, that it conforms to more standard and can be used in more shells. What advantage does the currently exisiting code provide (other than &quot;it exists&quot;)?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-02 08:52:32 0000</bug_when>
            <thetext>so you really need to revise your claims from &quot;POSIX portable&quot; to &quot;dash portable&quot;

i pointed out already that the current baselayout code in question is fully POSIX compliant (even if in general we do not aim for it) ... stop doing a word search for &quot;digit&quot; and actually read the spec ... here, i&apos;ll read it for you:

http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html
EXTENDED DESCRIPTION
  See Shell Command Language.

http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02
 2.6.2 Parameter Expansion
${parameter%%word}
    Remove Largest Suffix Pattern.

http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02
 2.13.1 Patterns Matching a Single Character
  The description of basic regular expression bracket expressions in the Base Definitions volume of IEEE Std 1003.1-2001, Section 9.3.5, RE Bracket Expression  shall also apply to the pattern bracket expression
http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_03_05
The following rules and definitions apply to bracket expressions:
 6. All character classes specified in the current locale shall be recognized.
    The following character class expressions shall be supported in all locales:
    [:digit:]</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-02 09:42:00 0000</bug_when>
            <thetext>(In reply to comment #30)
&gt; so you really need to revise your claims from &quot;POSIX portable&quot; to &quot;dash
&gt; portable&quot;

No, I don&apos;t. And even if I&apos;d need to, how would this be bad? What&apos;s bad about making the code more portable and thus allowing easier code reusability?

Once more - where&apos;s the disadvantage of the code I posted in the patch (attachment id #98554)?

&gt; i pointed out already that the current baselayout code in question is fully
&gt; POSIX compliant

Where did you point this out?

&gt; (even if in general we do not aim for it) ... stop doing a word
&gt; search for &quot;digit&quot;

I didn&apos;t. If you need to know, I searched for &quot;class&quot; and found nothing.

&gt; and actually read the spec ... here, i&apos;ll read it for you:
&gt; 
&gt; http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html
&gt; EXTENDED DESCRIPTION
&gt;   See Shell Command Language.
&gt; 
&gt; http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02
&gt;  2.6.2 Parameter Expansion
&gt; ${parameter%%word}
&gt;     Remove Largest Suffix Pattern.
&gt; http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02

Thanks for reading to me, what I read to you. :) Granted, you quoted the definite source (the standard) while I quoted the dash man page. But so far, the meaning of the paragraphs is the same, while the wording has some subtle differences.


&gt;  2.13.1 Patterns Matching a Single Character
&gt;   The description of basic regular expression bracket expressions in the Base
&gt; Definitions volume of IEEE Std 1003.1-2001, Section 9.3.5, RE Bracket
&gt; Expression  shall also apply to the pattern bracket expression
&gt; http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_03_05

But note http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02:

The following four varieties of parameter expansion provide for substring processing. In each case, pattern matching notation (see Pattern Matching Notation), rather than regular expression notation, shall be used to evaluate the patterns.

So, regular expressions should NOT be used. You should also read the spec ;)

Some other quote from the specs. http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02

The description of basic regular expression bracket expressions in the Base Definitions volume of IEEE Std 1003.1-2001, Section 9.3.5, RE Bracket Expression shall also apply to the pattern bracket expression, except that the exclamation mark character ( &apos;!&apos; ) shall replace the circumflex character ( &apos;^&apos; ) in its role in a &quot;non-matching list&quot; in the regular expression notation.

Would you accept a patch, which replaces the ^ with a !? The spec clearly states, that ^ shouldn&apos;t be used.

Also, the spec says:

The description of basic regular expression bracket expressions in the Base Definitions volume of IEEE Std 1003.1-2001, Section 9.3.5, RE Bracket Expression shall also apply to the pattern bracket expression

It says: it *SHALL* apply. So, that&apos;s an OPTION. It&apos;s clearly not a must. If dash now doesn&apos;t implement RE here, than it&apos;s still following the standard, I&apos;d say.

Once more - what disadvantage would there be, if the patch modules_gentoo.dash-compatible.v2.patch would also be applied against /etc/init.d/functions? I&apos;m not saying that all of the Gentoo scripts should be rewritten to be Posix (or &quot;dash&quot;, if you wish) compliant (although this would be a good idea, IMO). That&apos;s not what I&apos;m talking about.

I&apos;m merely talking about accepting the patch and having the KV_* functions be more portable and thus allowing to have this code used in more places (which currently is not the situation; if it were, this bug wouldn&apos;t exist).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-02 22:19:19 0000</bug_when>
            <thetext>and where do you draw the line for &quot;portable&quot; code ?  wherever it&apos;s convenient for you ?  thanks, but no ... specs exists for a reason; fix the *tool* instead of wasting time &quot;fixing&quot; the code.  do i really need to explain to you why duplicating code is wrong ?

&gt; But note
&gt; &lt;snip&gt;
&gt; So, regular expressions should NOT be used. You should also read the spec ;)

that part is irrelevant to the discussion at hand which is why i did not mention it ... also, who said we were doing regular expressions ?  pattern matching and regular expressions both support bracket expressions for matching sets of elements ... if it didnt, care to explain to me how [0-9] works but [[:digit:]] doesnt ?

in fact, you turn around and correct yourself:

&gt; The description of basic regular expression bracket expressions in the Base
&gt; Definitions volume of IEEE Std 1003.1-2001, Section 9.3.5, RE Bracket
&gt; Expression shall also apply to the pattern bracket expression

in other words, the section i pointed out is certainly valid ... the opengroup guys simply dont duplicate the sections that are the same as doing so is a waste of resources (hmm, sounds familiar ...)

&gt; Would you accept a patch, which replaces the ^ with a !? The spec clearly
&gt; states, that ^ shouldn&apos;t be used.

as i said earlier, we support a POSIX base with a bash superset where it provides functionality that is useful ... if you really care, you can file a new bug to change ^ to ! in bracket expansion and i would merge it

&gt; It says: it *SHALL* apply. So, that&apos;s an OPTION.

you clearly need to:
 (1) get a dictionary
 (2) look up the word &quot;shall&quot;
 (3) realize you dont know the meaning of &quot;shall&quot;
 (4) read the opengroup specs more often than trying to snip out sections that you *think* supports your argument and then you&apos;d realize that when something is optional, they use the word &quot;optional&quot;

&gt; Once more - what disadvantage would there be, if the patch
&gt; modules_gentoo.dash-compatible.v2.patch would also be applied against
&gt; /etc/init.d/functions?

not a chance in hell ... we&apos;re not going to support broken shells for the sake of a few people who insist on not fixing their tools

character classes exist for a reason</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-03 02:09:16 0000</bug_when>
            <thetext>(In reply to comment #32)
&gt; and where do you draw the line for &quot;portable&quot; code ? 

In the standard.

&gt; wherever it&apos;s convenient
&gt; for you ?

This as well. For example, if something works on more programs, than I&apos;d say it&apos;s more portable. Eg. [!0-9] is more portable than [^[:digit:]]. Up to now you haven&apos;t shown the advantage in the latter code.

&gt;  thanks, but no ... specs exists for a reason;

Exactly.

&gt; fix the *tool* instead
&gt; of wasting time &quot;fixing&quot; the code.

The code is broken (eg. it uses non-standard [[), so why should this *not* be fixed?

&gt;  do i really need to explain to you why
&gt; duplicating code is wrong ?

Yes, you do. Especially, if the fixed code works at least as well if not better. Please explain, why it&apos;s good to keep the non working code in /etc/init.d/functions. I just don&apos;t understand it.

&gt; &gt; But note
&gt; &gt; &lt;snip&gt;
&gt; &gt; So, regular expressions should NOT be used. You should also read the spec ;)
&gt; 
&gt; that part is irrelevant to the discussion

No, it&apos;s not. It is important to the discussion. Is it irrelevant, because it supports my view? Also, not you dictate what&apos;s important (neither do I). Please be less aggressive.

&gt; &gt; Would you accept a patch, which replaces the ^ with a !? The spec clearly
&gt; &gt; states, that ^ shouldn&apos;t be used.
&gt; 
&gt; as i said earlier, we support a POSIX base with a bash superset where it
&gt; provides functionality that is useful ...

And otherwise you break the standard for no good reason? Is that what you say?

&gt; if you really care, you can file a
&gt; new bug to change ^ to ! in bracket expansion and i would merge it

Fine. Would you also accept a patch which would do away with [[ and replace it with test? Like so:

Old:
[[ -z $1 ]] &amp;&amp; return 1 
New:
test x&quot;$1&quot; = &quot;x&quot; &amp;&amp; return 1

If not, I&apos;d really be interested in knowing the the advantage of [[ in *THIS* case.

&gt; &gt; It says: it *SHALL* apply. So, that&apos;s an OPTION.
&gt; 
&gt; you clearly need to:
&gt;  (1) get a dictionary
&gt;  (2) look up the word &quot;shall&quot;
&gt;  (3) realize you dont know the meaning of &quot;shall&quot;

I don&apos;t get you. &quot;shall&quot; means, that something should be done. It doesn&apos;t mean, that something has to be done. How about you get a dictionary as well?

&gt;  (4) read the opengroup specs more often than trying to snip out sections that
&gt; you *think* supports your argument and then you&apos;d realize that when something
&gt; is optional, they use the word &quot;optional&quot;
&gt; 
&gt; &gt; Once more - what disadvantage would there be, if the patch
&gt; &gt; modules_gentoo.dash-compatible.v2.patch would also be applied against
&gt; &gt; /etc/init.d/functions?
&gt; 
&gt; not a chance in hell ... we&apos;re not going to support broken shells for the sake
&gt; of a few people who insist on not fixing their tools

And where&apos;s the disadvantage? For example in using test instead of the clearly non-standard [[? Especially in the way it&apos;s used here? I know the theoretical advantage of [[, but it&apos;s just not used that way here.

&gt; character classes exist for a reason

In 0-9? No. [0-9] is as good as [[:digit:]]. But maybe I just don&apos;t see the disadvantage of using [0-9] instead of [[:digit:]]. Especially not in the use case at hand, ie. in version number of the kernel. Character classes make sense when you&apos;ve got to deal with unknown locales and don&apos;t know what alpha characters are (eg. is </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-03 02:09:16 0000</bug_when>
            <thetext>(In reply to comment #32)
&gt; and where do you draw the line for &quot;portable&quot; code ? 

In the standard.

&gt; wherever it&apos;s convenient
&gt; for you ?

This as well. For example, if something works on more programs, than I&apos;d say it&apos;s more portable. Eg. [!0-9] is more portable than [^[:digit:]]. Up to now you haven&apos;t shown the advantage in the latter code.

&gt;  thanks, but no ... specs exists for a reason;

Exactly.

&gt; fix the *tool* instead
&gt; of wasting time &quot;fixing&quot; the code.

The code is broken (eg. it uses non-standard [[), so why should this *not* be fixed?

&gt;  do i really need to explain to you why
&gt; duplicating code is wrong ?

Yes, you do. Especially, if the fixed code works at least as well if not better. Please explain, why it&apos;s good to keep the non working code in /etc/init.d/functions. I just don&apos;t understand it.

&gt; &gt; But note
&gt; &gt; &lt;snip&gt;
&gt; &gt; So, regular expressions should NOT be used. You should also read the spec ;)
&gt; 
&gt; that part is irrelevant to the discussion

No, it&apos;s not. It is important to the discussion. Is it irrelevant, because it supports my view? Also, not you dictate what&apos;s important (neither do I). Please be less aggressive.

&gt; &gt; Would you accept a patch, which replaces the ^ with a !? The spec clearly
&gt; &gt; states, that ^ shouldn&apos;t be used.
&gt; 
&gt; as i said earlier, we support a POSIX base with a bash superset where it
&gt; provides functionality that is useful ...

And otherwise you break the standard for no good reason? Is that what you say?

&gt; if you really care, you can file a
&gt; new bug to change ^ to ! in bracket expansion and i would merge it

Fine. Would you also accept a patch which would do away with [[ and replace it with test? Like so:

Old:
[[ -z $1 ]] &amp;&amp; return 1 
New:
test x&quot;$1&quot; = &quot;x&quot; &amp;&amp; return 1

If not, I&apos;d really be interested in knowing the the advantage of [[ in *THIS* case.

&gt; &gt; It says: it *SHALL* apply. So, that&apos;s an OPTION.
&gt; 
&gt; you clearly need to:
&gt;  (1) get a dictionary
&gt;  (2) look up the word &quot;shall&quot;
&gt;  (3) realize you dont know the meaning of &quot;shall&quot;

I don&apos;t get you. &quot;shall&quot; means, that something should be done. It doesn&apos;t mean, that something has to be done. How about you get a dictionary as well?

&gt;  (4) read the opengroup specs more often than trying to snip out sections that
&gt; you *think* supports your argument and then you&apos;d realize that when something
&gt; is optional, they use the word &quot;optional&quot;
&gt; 
&gt; &gt; Once more - what disadvantage would there be, if the patch
&gt; &gt; modules_gentoo.dash-compatible.v2.patch would also be applied against
&gt; &gt; /etc/init.d/functions?
&gt; 
&gt; not a chance in hell ... we&apos;re not going to support broken shells for the sake
&gt; of a few people who insist on not fixing their tools

And where&apos;s the disadvantage? For example in using test instead of the clearly non-standard [[? Especially in the way it&apos;s used here? I know the theoretical advantage of [[, but it&apos;s just not used that way here.

&gt; character classes exist for a reason

In 0-9? No. [0-9] is as good as [[:digit:]]. But maybe I just don&apos;t see the disadvantage of using [0-9] instead of [[:digit:]]. Especially not in the use case at hand, ie. in version number of the kernel. Character classes make sense when you&apos;ve got to deal with unknown locales and don&apos;t know what alpha characters are (eg. is ß a alpha?). There, something like [[:alpha:]] would make a lot of sense.

So, please go ahead and explain the advantage of [[:digit:]] over [0-9], thanks.

Again - why do you make such a fuss? In how far is it an advantage to use code that exist in /etc/init.d/functions.sh, which cannot be re-used as easily? Do I really need to explain to you, why code re-usability is good?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-03 06:05:33 0000</bug_when>
            <thetext>&gt; The code is broken (eg. it uses non-standard [[), so why should this *not* be
&gt; fixed?

wrong, it is standard ... it is a bracket expansion [] that uses a character class [:digit:]

just because it is written [[:digit:]] does not matter, another valid expression would be [a-b[:digit:]o]

&gt; No, it&apos;s not. It is important to the discussion. Is it irrelevant, because it
&gt; supports my view?

then you read it wrong ... it does not support your view.  it simply states that the pattern matching notation is similar to regular expressions, but is not regular expressions.  then, in the sub-section specifically covering bracket expansion, it clearly states:
The description of basic regular expression bracket expressions in the Base Definitions volume of IEEE Std 1003.1-2001, Section 9.3.5, RE Bracket Expression shall also apply to the pattern bracket expression

which means using [:digit:] in [] is perfectly valid POSIX code

&gt; And otherwise you break the standard for no good reason? Is that what you say?

read it again.  i said where bash provides features that do not exist in POSIX (like =~)

&gt; Fine. Would you also accept a patch which would do away with [[ and replace it
&gt; with test? Like so:
&gt; 
&gt; Old:
&gt; [[ -z $1 ]] &amp;&amp; return 1 
&gt; New:
&gt; test x&quot;$1&quot; = &quot;x&quot; &amp;&amp; return 1

not a chance ... [[ ]] provides sane quoting handling, the =~ operator, and allows for nesting of C like operators rather than -a/-o/etc... which makes for easier reading

&gt; I don&apos;t get you. &quot;shall&quot; means, that something should be done.

wrong ... i&apos;ll copy and paste the dictionary definition since you wont look it up:
1. To owe; to be under obligation for.
2. To be obliged; must.
3. As an auxiliary, shall indicates a duty or necessity whose obligation is derived from the person speaking; as, you shall go; he shall go; that is, I order or promise your going.


&gt; And where&apos;s the disadvantage? For example in using test instead of the clearly
&gt; non-standard [[? Especially in the way it&apos;s used here? I know the theoretical
&gt; advantage of [[, but it&apos;s just not used that way here.

i dont know why you keep talking about the [[ operator; that isnt what this discussion is about.  we&apos;re talking about pattern matching here with brackets, not about the test operator.

&gt; So, please go ahead and explain the advantage of [[:digit:]] over [0-9],
&gt; thanks.

you use the same methodology everywhere ... get out of the style of using &quot;safe&quot; character ranges and into the style of using locale classes.  it generally makes for more readable code and keeps people from having to think &quot;hmm, did i really catch every case&quot;

&gt; Again - why do you make such a fuss?

because you&apos;re wasting time pointlessly rewriting code</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-03 09:34:48 0000</bug_when>
            <thetext>(In reply to comment #34)

&gt; &gt; And otherwise you break the standard for no good reason? Is that what you say?
&gt; 
&gt; read it again.  i said where bash provides features that do not exist in POSIX
&gt; (like =~)

Fine. And why use non standard code, when it&apos;s not required (eg. [[ and ^)?

&gt; &gt; Fine. Would you also accept a patch which would do away with [[ and replace it
&gt; &gt; with test? Like so:
&gt; &gt; 
&gt; &gt; Old:
&gt; &gt; [[ -z $1 ]] &amp;&amp; return 1 
&gt; &gt; New:
&gt; &gt; test x&quot;$1&quot; = &quot;x&quot; &amp;&amp; return 1
&gt; 
&gt; not a chance ... [[ ]] provides sane quoting handling, the =~ operator, and
&gt; allows for nesting of C like operators rather than -a/-o/etc...

In the case of [[ -z $1 ]]? Certainly not. Why break the standard in this case?

So, where&apos;s the advantage of [[ -z $1 ]] vs. test x&quot;$1&quot; = &quot;x&quot;?

&gt; which makes for
&gt; easier reading

Depends.

&gt; &gt; I don&apos;t get you. &quot;shall&quot; means, that something should be done.
&gt; 
&gt; wrong ... i&apos;ll copy and paste the dictionary definition since you wont look it
&gt; up:

You&apos;re wrong. Are you always such a dickhead?

&gt; 2. To be obliged; must.

Thanks.

&gt; &gt; And where&apos;s the disadvantage? For example in using test instead of the clearly
&gt; &gt; non-standard [[? Especially in the way it&apos;s used here? I know the theoretical
&gt; &gt; advantage of [[, but it&apos;s just not used that way here.
&gt; 
&gt; i dont know why you keep talking about the [[ operator; that isnt what this
&gt; discussion is about.

It is - see the history of this bug.

Since you obviously are too thick to even read the first comment, let me read something to you:

/sbin/functions.sh: 7: [[: not found

This discussion is about writing code which conforms to the standard. [[ doesn&apos;t and never will.

&gt;  we&apos;re talking about pattern matching here with brackets,
&gt; not about the test operator.

We&apos;re talking about both, as the patch fixes both problems. I don&apos;t get, why you 

&gt; &gt; So, please go ahead and explain the advantage of [[:digit:]] over [0-9],
&gt; &gt; thanks.
&gt; 
&gt; you use the same methodology everywhere ... get out of the style of using
&gt; &quot;safe&quot; character ranges and into the style of using locale classes.  it
&gt; generally makes for more readable code and keeps people from having to think
&gt; &quot;hmm, did i really catch every case&quot;

Generally, yes. But not in the case of 0-9 vs. :digit:.

&gt; &gt; Again - why do you make such a fuss?
&gt; 
&gt; because you&apos;re wasting time pointlessly rewriting code

If the code would work, then you were right. It doesn&apos;t work. One of the reasons is, that the code doesn&apos;t follow the SuS standard.

But as the code doesn&apos;t work, you&apos;re wrong.

You also still need to explain, why it&apos;s bad to allow for greater code reusability. You *DO* know what this means, don&apos;t you?
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-04 07:11:11 0000</bug_when>
            <thetext>i&apos;m tired of this crap so i&apos;ll just summarize

 - we draw the line for portability at the POSIX standard ... if it&apos;s in POSIX but not in your shell, fix your shell and stop wasting our time
 - [:digit:] is perfectly valid; you of course know this now as you&apos;ve filed a bug that dsh is indeed broken
 - ^ vs ! is something we didnt notice and dont really care either way; file a bug if you do
 - the baselayout team (you know, the guys actually doing the coding) met some time ago to discuss the bash vs posix issues and we decided then to go fully bash.  there&apos;s no point in trying to write POSIX in some places while utilizing bash-only features in others.  that means we standardize on one format only and we do not intermix []/test/[[]] or [0-9]/[:digit:] or any such thing ... go read the STYLE guide in baselayout if you want to know the details

i&apos;m not the maintainer of hibernate-script, phreak is ... that means i&apos;m only telling you your changes wont be accepted in baselayout.  while i think it&apos;s stupid to duplicate code in hibernate-script for obvious reasons, the final call is of course not mine.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-10-04 07:57:57 0000</bug_when>
            <thetext>Yes, you&apos;re right, this is tiresome - but you know perfectly well, that flame threads tend to be tiresome, I assume. But I don&apos;t get, why you started to flame in the first place, but that&apos;s your choice.

You are aware, that you&apos;re contradicting yourself, aren&apos;t you? You say, that you draw the line for portability at the POSIX standard. Fine. But at the same time you say, that you use [[ instead of the portable test/[, although you are aware, that [[ isn&apos;t in the POSIX standard and probably never will. 

Please at least try to not contradict yourself - if you say, that you don&apos;t care about the standard: Fine. It&apos;s a decision. But in this case, don&apos;t try to argument using the standard to prove that you&apos;re right.

I do agree that it is stupid to duplicate code, however I don&apos;t see, why you&apos;re so much against code reusability. Really, what&apos;s so bad about this, that you try to avoid it so freaking hard?

Well, you&apos;ve got the last word.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-10-04 09:02:48 0000</bug_when>
            <thetext>i was talking about the lower line ... bash is a super set of POSIX

you were proposing we lower the bar less than POSIX by not using [:digit:] and i told you no

since we use the superset of bash, and [[ gives us a bunch of nice features that test/[ do not, we use that

stop adding base-system back to CC, i told you what is and isnt going to change</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>alonbl@gentoo.org</who>
            <bug_when>2006-12-18 12:59:30 0000</bug_when>
            <thetext>I am catching up...
I really don&apos;t understand why it does not work for you...
By default, on Gentoo system /bin/sh is a link to /bin/bash.
/usr/sbin/hibernate uses /bin/sh so it really uses bash.
Everything is working for me...
Do you have a different configuration?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>alonbl@gentoo.org</who>
            <bug_when>2006-12-21 12:31:39 0000</bug_when>
            <thetext>Please reopen if you have some more thought...</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-12-21 23:53:55 0000</bug_when>
            <thetext>(In reply to comment #40)
&gt; Please reopen if you have some more thought...
&gt; 

I do have more thoughts, but Gentoo doesn&apos;t want to fix this, as you can easily see by the comments of Spanky. Basically, the script should be made portable, but portability isn&apos;t wanted. 

So, no, this bug is neither resolved nor invalid.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>alonbl@gentoo.org</who>
            <bug_when>2006-12-21 23:57:10 0000</bug_when>
            <thetext>But it is working!!!!
Please check out again.
Since the default shell is bash, and there is no switch to dash anymore.
Please recheck the last version.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>askwar@digitalprojects.com</who>
            <bug_when>2006-12-22 00:27:53 0000</bug_when>
            <thetext>Yes, I know that there&apos;s no switch to dash anymore and that in itself is wrong. The problem simply is, that the script isn&apos;t portable and it can be made portable quite easily. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>alonbl@gentoo.org</who>
            <bug_when>2006-12-22 05:46:39 0000</bug_when>
            <thetext>OK.
So as I understand it won&apos;t be fixed further than it is now.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>96094</attachid>
            <date>2006-09-05 11:33 0000</date>
            <desc>/etc/hibernate</desc>
            <filename>hibernate.tar</filename>
            <type>application/x-tar</type>
            <data encoding="base64">ZXRjL2hpYmVybmF0ZS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMDAw
MAAwMDAwMDAwADAwMDAwMDAwMDAwADEwNDc2MzU0MjMzADAxMjI3NwAgNQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl
dGMvaGliZXJuYXRlL2hpYmVybmF0ZS5jb25mLm9yaWdpbmFsAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAw
ADAwMDAwMDAAMDAwMDAwMTE0NzYAMTAzMDIxMjcxMjcAMDE2NzA3ACAwAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMg
RXhhbXBsZSBoaWJlcm5hdGUuY29uZiBmaWxlLiBBZGFwdCB0byB5b3VyIG93biB0YXN0ZXMuCiMg
T3B0aW9ucyBhcmUgbm90IGNhc2Ugc2Vuc2l0aXZlLgojIAojIFJ1biAiaGliZXJuYXRlIC1oIiBm
b3IgaGVscCBvbiB0aGUgY29uZmlndXJhdGlvbiBpdGVtcy4KCiMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IwojIyMgQ2hvb3NlIHlvdXIgU3VzcGVuZCBtZXRob2QuIFlvdSBjdXJyZW50bHkgaGF2ZSAzIGNo
b2ljZXM6CiMjIwojIyMgICAgc3VzcGVuZDIgICAgICAgICAgICBTb2Z0d2FyZSBTdXNwZW5kIDIg
KHJlcXVpcmVzIGtlcm5lbCBwYXRjaGVzIGZyb20KIyMjICAgICAgICAgICAgICAgICAgICAgICAg
aHR0cDovL3d3dy5zdXNwZW5kMi5uZXQvKQojIyMKIyMjICAgIHN5c2ZzX3Bvd2VyX3N0YXRlICAg
VXNlcyAvc3lzL3Bvd2VyL3N0YXRlIHRvIHN1c3BlbmQgKGFjdGl2YXRlcyBwbWRpc2sKIyMjICAg
ICAgICAgICAgICAgICAgICAgICAgb24ga2VybmVscyA8IDIuNi44LCBvciB2YW5pbGxhIHN3c3Vz
cCBvdGhlcndpc2UpLgojIyMKIyMjICAgIGFjcGlfc2xlZXAgICAgICAgICAgVXNlcyAvcHJvYy9h
Y3BpL3NsZWVwIHRvIGFjdGl2YXRlIHN3c3VzcCwgb3Igb3RoZXIKIyMjICAgICAgICAgICAgICAg
ICAgICAgICAgQUNQSSBzbGVlcCBzdGF0ZSBzdXBwb3J0ZWQgYnkgeW91ciBtYWNoaW5lLgojIyMK
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIyMgc3VzcGVuZDIgKGZvciBTb2Z0d2FyZSBTdXNwZW5k
IDIpClVzZVN1c3BlbmQyIHllcwpSZWJvb3Qgbm8KRW5hYmxlRXNjYXBlIHllcwpEZWZhdWx0Q29u
c29sZUxldmVsIDEKQ29tcHJlc3NvciBsemYKRW5jcnlwdG9yIG5vbmUKIyBJbWFnZVNpemVMaW1p
dCAyMDAKIyMgdXNlZnVsIGZvciBpbml0cmQgdXNhZ2U6CiMgU3VzcGVuZERldmljZSBzd2FwOi9k
ZXYvaGRhMgojIyBQb3dlcmRvd24gbWV0aG9kIC0gMyBmb3Igc3VzcGVuZC10by1SQU0sIDQgZm9y
IEFDUEkgUzQgc2xlZXAsIDUgZm9yIHBvd2Vyb2ZmCiMgUG93ZXJkb3duTWV0aG9kIDUKIyMgQW55
IG90aGVyIC9wcm9jL3NvZnR3YXJlX3N1c3BlbmQgc2V0dGluZyBjYW4gYmUgc2V0IGxpa2Ugc286
CiMgUHJvY1NldHRpbmcgZXhwZWN0ZWRfY29tcHJlc3Npb24gNTAKIyMgT3IgdHJhZGl0aW9uYWxs
eSBsaWtlIHRoaXM6CiMgU3VzcGVuZDJBbGxTZXR0aW5ncyAwIDAgMjA1NiA2NTUzNSA1CiMjIE9y
IGV2ZW4gZnJvbSB0aGUgcmVzdWx0cyBvZiBoaWJlcm5hdGUgLS1zYXZlLXNldHRpbmdzIHdpdGgg
dGhpczoKIyBTdXNwZW5kMkFsbFNldHRpbmdzRmlsZSAvZXRjL2hpYmVybmF0ZS9zdXNwZW5kLXNl
dHRpbmdzLmNvbmYKIyMgRm9yIGZpbGV3cml0ZXI6CiMgRmlsZXdyaXRlckxvY2F0aW9uIC9zdXNw
ZW5kX2ZpbGUgMTAwMAojIFZlcmlmeUZpbGV3cml0ZXJSZXN1bWUyIHllcwoKIyMjIHN5c2ZzX3Bv
d2VyX3N0YXRlCiMjIFRvIHVzZSAvc3lzL3Bvd2VyL3N0YXRlIHRvIHN1c3BlbmQgeW91ciBtYWNo
aW5lICh3aGljaCBtYXkgb2ZmZXIKIyMgc3VzcGVuZC10by1SQU0sIHN1c3BlbmQtdG8tZGlzaywg
c3RhbmRieSwgZXRjKSBjb21tZW50IG91dCBhbGwgdGhlIG9wdGlvbnMKIyMgYWJvdmUgZm9yIFNv
ZnR3YXJlIFN1c3BlbmQgMiwgYmVsb3cgZm9yIGFjcGlfc2xlZXAsIGFuZCB1bmNvbW1lbnQgdGhp
cyBsaW5lLgojIyBZb3UgbWF5IHJlcGxhY2UgbWVtIHdpdGggYW55IG9uZSBvZiB0aGUgc3RhdGVz
IGZyb20gImNhdCAvc3lzL3Bvd2VyL3N0YXRlIgojIFVzZVN5c2ZzUG93ZXJTdGF0ZSBtZW0KIyBQ
b3dlcmRvd25NZXRob2Qgc2h1dGRvd24KCiMjIyBhY3BpX3NsZWVwCiMjIFRvIHVzZSBBQ1BJIHRv
IHN1c3BlbmQgeW91ciBtYWNoaW5lICh2aWEgL3Byb2MvYWNwaS9zbGVlcCksIGNvbW1lbnQgb3V0
CiMjIGFsbCB0aGUgb3B0aW9ucyBhYm92ZSBmb3IgU29mdHdhcmUgU3VzcGVuZCAyIGFuZCBzeXNm
cywgYW5kIHVuY29tbWVudCB0aGlzCiMjIGxpbmUuIFRoZSBudW1iZXIgcmVmZXJzIHRvIHRoZSBB
Q1BJIHNsZWVwIHN0YXRlIC0gMyBpcyBzdXNwZW5kLXRvLVJBTSBhbmQKIyMgNCBpcyBzdXNwZW5k
LXRvLWRpc2suCiMgVXNlQUNQSVNsZWVwIDQKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIyMgU29t
ZSBnbG9iYWwgc2V0dGluZ3MKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpWZXJib3NpdHkgMApMb2dG
aWxlIC92YXIvbG9nL2hpYmVybmF0ZS5sb2cKTG9nVmVyYm9zaXR5IDEKIyBBbHdheXNGb3JjZSB5
ZXMKIyBBbHdheXNLaWxsIHllcwojIEhpYmVybmF0ZVZUIDE1CkRpc3RyaWJ1dGlvbiBnZW50b28K
IyBYRGlzcGxheSA6MAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjIyBTY3JpcHRsZXRzCiMjIyAg
IFNjcmlwdGxldHMgcHJvdmlkZSBzdXBwb3J0IGZvciBkb2luZyBhbGwgc29ydHMgb2YgdGhpbmdz
IGJlZm9yZSBhbmQgYWZ0ZXIKIyMjICAgc3VzcGVuZGluZy4gVGhlIGRlZmF1bHRzIHNldHRpbmdz
IGhlcmUgc2hvdWxkIHdvcmsgZm9yIG1vc3QgcGVvcGxlLCBidXQKIyMjICAgeW91IG1heSB3aXNo
IHRvIGVkaXQgdGhlc2UgdG8gdGFzdGUuIENvbnN1bHQgImhpYmVybmF0ZSAtaCIgZm9yIGhlbHAg
b24KIyMjICAgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuCiMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IwoKIyMjIGJvb3RzcGxhc2gKIyMgSWYgeW91IHVzZSBib290c3BsYXNoLCBhbHNvIGVuYWJsaW5n
IFN3aXRjaFRvVGV4dE1vZGUgaXMgcmVjb21tZW5kZWQgaWYKIyMgeW91IHVzZSBYLCBvdGhlcndp
c2UgeW91IG1heSBlbmQgdXAgd2l0aCBhIGdhcmJsZWQgWCBkaXNwbGF5LgojIEJvb3RzcGxhc2gg
b24KIyBCb290c3BsYXNoQ29uZmlnIC9ldGMvYm9vdHNwbGFzaC9kZWZhdWx0L2NvbmZpZy9ib290
c3BsYXNoLTEwMjR4NzY4LmNmZwoKIyMjIGNsb2NrClNhdmVDbG9jayByZXN0b3JlLW9ubHkKCiMj
IyBkZXZpY2VzCiMgSW5jb21wYXRpYmxlRGV2aWNlcyAvZGV2L2RzcCAvZGV2L3ZpZGVvKgoKIyMj
IGRpc2tjYWNoZQojIERpc2FibGVXcml0ZUNhY2hlT24gL2Rldi9oZGEKCiMjIyBmYnNwbGFzaCAo
ZW5hYmxlIFN3aXRjaFRvVGV4dE1vZGUgaWYgeW91IHVzZSB0aGlzKQojIEZCU3BsYXNoIG9uCiMg
RkJTcGxhc2hUaGVtZSBzdXNwZW5kMgoKIyMjIGZpbGVzeXN0ZW1zCiMgVW5tb3VudCAvbmZzc2hh
cmUgL3dpbmRvd3MgL21udC9zYW1iYXNlcnZlcgojIFVubW91bnRGU1R5cGVzIHNtYmZzIG5mcwoj
IFVubW91bnRHcmFjZVRpbWUgMQojIE1vdW50IC93aW5kb3dzCgojIyMgZ3J1YgojIENoYW5nZUdy
dWJNZW51IHllcwojIEdydWJNZW51RmlsZSAvYm9vdC9ncnViL21lbnUubHN0CiMgQWx0ZXJuYXRl
R3J1Yk1lbnVGaWxlIC9ib290L2dydWIvbWVudS1zdXNwZW5kZWQubHN0CiMgQmFja3VwR3J1Yk1l
bnVGaWxlIC9ib290L2dydWIvbWVudS5sc3QuaGliZXJuYXRlLmJhawoKIyMjIGhhcmR3YXJlX3R3
ZWFrcwojIElibUFjcGkgeWVzCiMgUmFkZW9uVG9vbCB5ZXMKCiMjIyBsaWxvCiMgRW5zdXJlTElM
T1Jlc3VtZXMgeWVzCgojIyMgbG9jayAoZ2VuZXJhbGx5IHlvdSBvbmx5IHdhbnQgb25lIG9mIHRo
ZSBmb2xsb3dpbmcgb3B0aW9ucykKIyBMb2NrQ29uc29sZUFzIHJvb3QKIyBMb2NrWFNjcmVlblNh
dmVyIHllcwojIExvY2tLREUgeWVzCgojIyMgbWlzY2xhdW5jaAojIE9uU3VzcGVuZCAyMCBlY2hv
ICJHb29kIG5pZ2h0ISIKIyBPblJlc3VtZSAyMCBlY2hvICJHb29kIG1vcm5pbmchIgoKIyMjIG1v
ZHVsZXMKIyBVbmxvYWRNb2R1bGVzIHNuZF92aWE4MmN4eHggdXNiLW9oY2kKIyBVbmxvYWRBbGxN
b2R1bGVzIHllcwpVbmxvYWRCbGFja2xpc3RlZE1vZHVsZXMgeWVzCkxvYWRNb2R1bGVzIGF1dG8K
IyBMb2FkTW9kdWxlc0Zyb21GaWxlIC9ldGMvbW9kdWxlcwoKIyMjIG1vZHVsZXMtZ2VudG9vCiMg
R2VudG9vTW9kdWxlc0F1dG9sb2FkIHllcwoKIyMjIG5ldHdvcmsKIyBEb3duSW50ZXJmYWNlcyBl
dGgwCiMgVXBJbnRlcmZhY2VzIGF1dG8KCiMjIyBwcm9ncmFtcwojIEluY29tcGF0aWJsZVByb2dy
YW1zIHhtbXMKCiMjIyBzZXJ2aWNlcwojIFJlc3RhcnRTZXJ2aWNlcyBwb3N0Zml4CiMgU3RvcFNl
cnZpY2VzIGFsc2Fzb3VuZAojIFN0YXJ0U2VydmljZXMgYXVtaXgKCiMjIyB2YmV0b29sCiMgRW5h
YmxlVmJldG9vbCB5ZXMKIyBSZXN0b3JlVmJlU3RhdGVGcm9tIC92YXIvbGliL3ZiZXRvb2wvdmJl
c3RhdGUKIyBWYmV0b29sUG9zdCB5ZXMKCiMjIyB4aGFja3MKU3dpdGNoVG9UZXh0TW9kZSB5ZXMK
IyBVc2VEdW1teVhTZXJ2ZXIgeWVzCgojIyMgeHN0YXR1cwojIyBUaGlzIGNhbiBiZSBzZXQgdG8g
Z25vbWUsIGtkZSBvciB4OgojIFhTdGF0dXMgZ25vbWUKIyBYU3VzcGVuZFRleHQgUHJlcGFyaW5n
IHRvIHN1c3BlbmQuLi4KIyBYUmVzdW1lVGV4dCBSZXN1bWluZyBmcm9tIHN1c3BlbmQuLi4KIyMg
V2hlbiB1c2luZyBYU3RhdHVzIHgsIGFuZCB5b3UgaGF2ZSB4b3NkIGluc3RhbGxlZDoKIyBYb3Nk
U2V0dGluZ3MgLS1mb250IC1taXNjLWZpeGVkLW1lZGl1bS1yLXNlbWljb25kZW5zZWQtLSotMTIw
LSotKi1jLSotKi0qIC0tY29sb3VyPUdyZWVuIC0tc2hhZG93IDEgLS1wb3MgYm90dG9tIC0tYWxp
Z24gY2VudGVyIC0tb2Zmc2V0IDUwCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZXRjL2hpYmVybmF0
ZS9yYW0uY29uZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAw
MDAwMDAxMTQxADEwNDc2NTQ0NzAyADAxMzcyNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
cm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIFRoaXMgZmlsZSBp
cyB1c2VkIHdoZW4gc3VzcGVuZGluZyB0byBSQU0uIEFkZCBhbnkgY29uZmlndXJhdGlvbiBvcHRp
b25zCiMgc3BlY2lmaWMgdG8gc3VzcGVuZC10by1SQU0gdG8gdGhpcyBmaWxlLiBPcmRlcmluZyBp
cyBub3QgY3J1Y2lhbCwgYW5kIG9wdGlvbnMKIyBhcmUgbm90IGNhc2Utc2Vuc2l0aXZlLgojIAoj
IFNlZSBoaWJlcm5hdGUuY29uZig1KSBmb3IgaGVscCBvbiB0aGUgY29uZmlndXJhdGlvbiBpdGVt
cy4KClVzZVN5c2ZzUG93ZXJTdGF0ZSBtZW0KCiMgVGhlIGZvbGxvd2luZyB2YmV0b29sIHNldHRp
bmdzIGhlbHAgd2l0aCA+IDUwJSBvZiBsYXB0b3BzLgpFbmFibGVWYmV0b29sIHllcwpWYmV0b29s
UG9zdCB5ZXMKCiMgVXNlcnMgd2l0aCBhIFJhZGVvbiBncmFwaGljcyBjYXJkIG1heSBuZWVkIHRv
IGVuYWJsZSB0aGlzIGxpbmUgZm9yCiMgc3VzcGVuZC10by1yYW0sIGFuZCBpbnN0YWxsIHRoZSBy
YWRlb250b29sIHByb2dyYW0gYXZhaWxhYmxlIGZyb20KIyBodHRwOi8vZmRkLmNvbS9zb2Z0d2Fy
ZS9yYWRlb24vIG9yIHlvdXIgZGlzdHJpYnV0aW9uJ3MgcGFja2FnZS4KIyAKIyBSYWRlb25Ub29s
IHllcwoKSW5jbHVkZSBjb21tb24uY29uZgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZXRjL2hpYmVybmF0ZS9z
Y3JpcHRsZXRzLmQvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMDAwMAAwMDAwMDAwADAwMDAw
MDAwMDAwADEwNDc2MjUwMDU1ADAxNDcxMgAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9v
dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABldGMvaGliZXJuYXRlL3Nj
cmlwdGxldHMuZC8ua2VlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAw
MDAwMDAAMTA0NDIzMzQyNTYAMDE1NjI0ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb290
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGV0Yy9oaWJlcm5hdGUvc2Ny
aXB0bGV0cy5kLy5rZWVwX3N5cy1wb3dlcl9oaWJlcm5hdGUtc2NyaXB0LTAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAw
MDAwMAAxMDQ3NjU0NDcwMgAwMjMzNDIAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAdXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZXRjL2hpYmVybmF0ZS9ibGFj
a2xpc3RlZC1tb2R1bGVzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAz
NDIzADEwNDc2NTQ0NzAyADAxNjE1NQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIAojIFdBUk5JTkc6IE5vIGF0
dGVtcHQgaXMgbWFkZSB0byBwcmVzZXJ2ZSB0aGlzIGZpbGUgdXBvbiB1cGdyYWRlcy4KIyAgICAg
ICAgICBUaGUgZmlsZSBmb3JtYXQgbWF5IGFsc28gY2hhbmdlIGJldHdlZW4gaGliZXJuYXRlIHNj
cmlwdCB2ZXJzaW9ucy4KIyAgICAgICAgICBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSBlbnRl
ciBhbnkgbW9kdWxlcyB5b3Ugd2lzaCB0byB1bmxvYWQKIyAgICAgICAgICBpbnRvIGhpYmVybmF0
ZS5jb25mLgojIAojIFRoZSBzeW50YXggb2YgZWFjaCBsaW5lIGluIHRoaXMgZmlsZSBpcyAibW9k
dWxlIG5hbWUgWy4uLl0iIHdoZXJlIFsuLi5dIGlzCiMgYSBzZXF1ZW5jZSBvZiBtaW5pbXVtL21h
eGltdW0ga2VybmVsIHZlcnNpb24gcGFpcnMgdGhhdCB0aGUgbW9kdWxlIGlzCiMgaW5jb21wYXRp
YmxlIHdpdGguIEZvciBleGFtcGxlOgojICAgICB1c2ItZWhjaSAyLjQuMCAyLjQuMjUgMi42LjAg
Mi42LjIKIyAod291bGQgaW5kaWNhdGUgdGhhdCB1c2ItZWhjaSB3YXMgaW5jb21wYXRpYmxlIGlu
IDIuNCB1bnRpbCAyLjQuMjUsIGFuZCBpbgojIDIuNiB1bnRpbCAyLjYuMiAtIGV4YW1wbGUgb25s
eSEpCiMKIyBBIG1vZHVsZSB3aXRob3V0IGFueSB2ZXJzaW9ucyBpcyBhbHdheXMgY29uc2lkZXJl
ZCB1bnN1c3BlbmRhYmxlLgojCiMgSWYgYSBsaW5lIGlzIHByZWZpeGVkIHdpdGggYW4gJ0AnIHNp
Z24sIHRoZW4gdGhlIHZlcnNpb25zIGFyZSBpbnRlcnByZXRlZAojIGFzIHRoZSBtb2R1bGUgdmVy
c2lvbiAoYXMgcmVwb3J0ZWQgYnkgbW9kaW5mbykgaW5zdGVhZCBvZiB0aGUga2VybmVsIHZlcnNp
b24uCiMgVW52ZXJzaW9uZWQgbW9kdWxlcyAobW9kdWxlcyB3aXRoIG5vIHZlcnNpb246IGxpbmUg
c2hvd24gaW4gbW9kaW5mbykgYXJlCiMgYWx3YXlzIHVubG9hZGVkIGlmIGxpc3RlZCwgcmVnYXJk
bGVzcyBvZiB0aGUgdmVyc2lvbiByYW5nZS4KIwojIFRoaXMgZm9ybWF0IGhhcyBzb21lIGxpbWl0
YXRpb25zIC0gaXQgZG9lcyBub3QgdGFrZSBpbnRvIGFjY291bnQgU29mdHdhcmUKIyBTdXNwZW5k
IDIgdmVyc2lvbnMgKHdoaWNoIG1heSBpbmNsdWRlIGRyaXZlciB1cGRhdGVzKS4KIwoKbnZpZGlh
CmFjeDEwMAphY3hfcGNpCmhzZm1vZGVtCnByaXNtNTQKCmJjbTQ0MDAJCTIuNi4wCTIuNi45OQpl
bXUxMGsxCQkyLjQuMAkyLjQuOTkJMi42LjAJMi42Ljk5CmZvcmNlZGV0aAkyLjQuMAkyLjQuOTkJ
Mi42LjAJMi42Ljk5CkBpcHcyMTAwCTAuMAkxLjAuMgpAaXB3MjIwMAkwLjAJMC4yMApuYXRzZW1p
CQkyLjYuMAkyLjYuOTkKcHNtb3VzZQkJMi42LjAJMi42Ljk5CnJ0MjQwMAkJMi40LjAJMi40Ljk5
CTIuNi4wCTIuNi45OQplaGNpX2hjZAkyLjYuMAkyLjYuMTQKb2hjaV9oY2QJMi42LjAJMi42LjE0
CnVoY2lfaGNkCTIuNi4wCTIuNi4xNAplaGNpLWhjZAkyLjQuMAkyLjQuOTkKdXNiLW9oY2kJMi40
LjAJMi40Ljk5CnVzYi11aGNpCTIuNC4wCTIuNC45OQpzbmRfZW5zMTM3MAkyLjYuMAkyLjYuOTkK
c25kX2VuczEzNzEJMi42LjAJMi42Ljk5CnNuZF9tYWVzdHJvMwkyLjYuMAkyLjYuOTkKc25kX2J0
X3NjbwkyLjYuMAkyLjYuOTkKZW4xMzcwCQkyLjYuMAkyLjYuOTkKZW4xMzcxCQkyLjYuMAkyLjYu
OTkKdmlhX2FncAkJMi42LjAJMi42LjgKdmlhX3JoaW5lCTIuNi4wCTIuNi45OQppODA0MgkJMi42
LjEwCTIuNi45OQppbnRlbF9tY2hfYWdwCTIuNi4wCTIuNi45OQpydDI1MDAJCTIuNi4wCTIuNi4x
NAoKYnV0dG9uCQkyLjYuOQkyLjYuOTkKc3BlZWRzdGVwX3NtaQkyLjYuMTIJMi42Ljk5CgpAbmRp
c3dyYXBwZXIgICAgMC4xMCAgICAwLjExCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGV0Yy9oaWJlcm5hdGUvZGlzay5jb25m
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDUzMQAx
MDQ3NjU0NDcwMgAwMTQxMDEAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAdXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyBUaGlzIGZpbGUgaXMgdXNlZCB3aGVu
IHN1c3BlbmRpbmcgdG8gZGlzayB1c2luZyB0aGUgc3dzdXNwIGZ1bmN0aW9uYWxpdHkgaW4KIyB0
aGUgdmFuaWxsYSBrZXJuZWwuIEFkZCBhbnkgY29uZmlndXJhdGlvbiBvcHRpb25zIHNwZWNpZmlj
IHRvIHN1c3BlbmQtdG8tZGlzawojIHRvIHRoaXMgZmlsZS4gT3JkZXJpbmcgaXMgbm90IGNydWNp
YWwsIGFuZCBvcHRpb25zIGFyZSBub3QgY2FzZS1zZW5zaXRpdmUuCiMgCiMgU2VlIGhpYmVybmF0
ZS5jb25mKDUpIGZvciBoZWxwIG9uIHRoZSBjb25maWd1cmF0aW9uIGl0ZW1zLgoKVXNlU3lzZnNQ
b3dlclN0YXRlIGRpc2sKCkluY2x1ZGUgY29tbW9uLmNvbmYKAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABldGMvaGliZXJuYXRlL2NvbW1vbi5jb25m
fgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDYxMzcAMTA0
NDI1MzM2MjIAMDE0NjM1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGNv
bW1vbiBmb3Igc3VzcGVuZGluZyB0byBkaXNrIG9yIFJBTS4KIyBPcHRpb25zIGFyZSBub3QgY2Fz
ZSBzZW5zaXRpdmUuCiMgCiMgbWFuIGhpYmVybmF0ZS5jb25mIGZvciBoZWxwIG9uIHRoZSBjb25m
aWd1cmF0aW9uIGl0ZW1zLgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjIyBTb21lIGdsb2JhbCBz
ZXR0aW5ncwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKClZlcmJvc2l0eSAzCkxvZ0ZpbGUgL3Zhci9s
b2cvaGliZXJuYXRlLmxvZwpMb2dWZXJib3NpdHkgNQpMb2dUaW1lc3RhbXAgeWVzCiMgQWx3YXlz
Rm9yY2UgeWVzCiMgQWx3YXlzS2lsbCB5ZXMKIyBIaWJlcm5hdGVWVCAxNQpEaXN0cmlidXRpb24g
Z2VudG9vClhEaXNwbGF5IDowCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMjIFNjcmlwdGxldHMK
IyMjICAgU2NyaXB0bGV0cyBwcm92aWRlIHN1cHBvcnQgZm9yIGRvaW5nIGFsbCBzb3J0cyBvZiB0
aGluZ3MgYmVmb3JlIGFuZCBhZnRlcgojIyMgICBzdXNwZW5kaW5nLiBUaGUgZGVmYXVsdHMgc2V0
dGluZ3MgaGVyZSBzaG91bGQgd29yayBmb3IgbW9zdCBwZW9wbGUsIGJ1dAojIyMgICB5b3UgbWF5
IHdpc2ggdG8gZWRpdCB0aGVzZSB0byB0YXN0ZS4gQ29uc3VsdCAiaGliZXJuYXRlIC1oIiBmb3Ig
aGVscCBvbgojIyMgICB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncy4KIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjCgojIyMgYm9vdHNwbGFzaAojIyBJZiB5b3UgdXNlIGJvb3RzcGxhc2gsIGFsc28gZW5h
YmxpbmcgU3dpdGNoVG9UZXh0TW9kZSBpcyByZWNvbW1lbmRlZCBpZgojIyB5b3UgdXNlIFgsIG90
aGVyd2lzZSB5b3UgbWF5IGVuZCB1cCB3aXRoIGEgZ2FyYmxlZCBYIGRpc3BsYXkuCiMgQm9vdHNw
bGFzaCBvbgojIEJvb3RzcGxhc2hDb25maWcgL2V0Yy9ib290c3BsYXNoL2RlZmF1bHQvY29uZmln
L2Jvb3RzcGxhc2gtMTAyNHg3NjguY2ZnCgojIyMgY2xvY2sKU2F2ZUNsb2NrIHJlc3RvcmUtb25s
eQoKIyMjIGRldmljZXMKIyBJbmNvbXBhdGlibGVEZXZpY2VzIC9kZXYvZHNwIC9kZXYvdmlkZW8q
CgojIyMgZGlza2NhY2hlCiMgRGlzYWJsZVdyaXRlQ2FjaGVPbiAvZGV2L2hkYQoKIyMjIGZic3Bs
YXNoIChlbmFibGUgU3dpdGNoVG9UZXh0TW9kZSBpZiB5b3UgdXNlIHRoaXMpCiMgRkJTcGxhc2gg
b24KIyBGQlNwbGFzaFRoZW1lIHN1c3BlbmQyCgojIyMgZmlsZXN5c3RlbXMKIyBVbm1vdW50IC9u
ZnNzaGFyZSAvd2luZG93cyAvbW50L3NhbWJhc2VydmVyClVubW91bnRGU1R5cGVzIGF1dG9mcyBz
bWJmcyBuZnMKIyBVbm1vdW50R3JhY2VUaW1lIDEKIyBNb3VudCAvd2luZG93cwoKIyMjIGdydWIK
IyBDaGFuZ2VHcnViTWVudSB5ZXMKIyBHcnViTWVudUZpbGUgL2Jvb3QvZ3J1Yi9tZW51LmxzdAoj
IEFsdGVybmF0ZUdydWJNZW51RmlsZSAvYm9vdC9ncnViL21lbnUtc3VzcGVuZGVkLmxzdAojIEJh
Y2t1cEdydWJNZW51RmlsZSAvYm9vdC9ncnViL21lbnUubHN0LmhpYmVybmF0ZS5iYWsKCiMjIyBo
YXJkd2FyZV90d2Vha3MKIyBJYm1BY3BpIHllcwojIFJ1bmk5MTVyZXNvbHV0aW9uIHllcwoKIyMj
IGxpbG8KIyBFbnN1cmVMSUxPUmVzdW1lcyB5ZXMKCiMjIyBsb2NrIChnZW5lcmFsbHkgeW91IG9u
bHkgd2FudCBvbmUgb2YgdGhlIGZvbGxvd2luZyBvcHRpb25zKQojIExvY2tDb25zb2xlQXMgcm9v
dAojIExvY2tYU2NyZWVuU2F2ZXIgeWVzCiMgTG9ja0dub21lU2NyZWVuU2F2ZXIgeWVzCiMgTG9j
a0tERSB5ZXMKIyBMb2NrWExvY2sgeWVzCiMgTG9ja1hBdXRvTG9jayB5ZXMKCiMjIyBtaXNjbGF1
bmNoCiMgT25TdXNwZW5kIDIwIGVjaG8gIkdvb2QgbmlnaHQhIgojIE9uUmVzdW1lIDIwIGVjaG8g
Ikdvb2QgbW9ybmluZyEiCgojIyMgbW9kdWxlcwojIFVubG9hZE1vZHVsZXMgc25kX3ZpYTgyY3h4
eCB1c2Itb2hjaQojIFVubG9hZEFsbE1vZHVsZXMgeWVzClVubG9hZEJsYWNrbGlzdGVkTW9kdWxl
cyB5ZXMKTG9hZE1vZHVsZXMgYXV0bwojIExvYWRNb2R1bGVzRnJvbUZpbGUgL2V0Yy9tb2R1bGVz
CgojIyMgbW9kdWxlcy1nZW50b28KR2VudG9vTW9kdWxlc0F1dG9sb2FkIHllcwoKIyMjIG5ldHdv
cmsKRG93bkludGVyZmFjZXMgYXV0bwpVcEludGVyZmFjZXMgYXV0bwoKIyMjIHBjbWNpYQojIEVq
ZWN0Q2FyZHMgeWVzCgojIyMgcHJvZ3JhbXMKIyBJbmNvbXBhdGlibGVQcm9ncmFtcyB4bW1zCgoj
IyMgc2VydmljZXMKUmVzdGFydFNlcnZpY2VzIGF1dG9mcyBybG9jYXRlZCBsYXB0b3BfbW9kZQoj
IFN0b3BTZXJ2aWNlcyBhbHNhc291bmQKIyBTdGFydFNlcnZpY2VzIGF1bWl4CgojIyMgdmJldG9v
bAojIEVuYWJsZVZiZXRvb2wgeWVzCiMgUmVzdG9yZVZiZVN0YXRlRnJvbSAvdmFyL2xpYi92YmV0
b29sL3ZiZXN0YXRlCiMgVmJldG9vbFBvc3QgeWVzCiMgUmVzdG9yZVZDU0FEYXRhIHllcwoKIyMj
IHhoYWNrcwpTd2l0Y2hUb1RleHRNb2RlIHllcwojIFVzZUR1bW15WFNlcnZlciB5ZXMKIyBEdW1t
eVhTZXJ2ZXJDb25maWcgeG9yZy1kdW1teS5jb25mCgojIyMgeHN0YXR1cwojIyBUaGlzIGNhbiBi
ZSBzZXQgdG8gZ25vbWUsIGtkZSBvciB4OgpYU3RhdHVzIGdub21lCiMgWFN1c3BlbmRUZXh0IFBy
ZXBhcmluZyB0byBzdXNwZW5kLi4uCiMgWFJlc3VtZVRleHQgUmVzdW1pbmcgZnJvbSBzdXNwZW5k
Li4uClhTdXNwZW5kVGV4dCBCZXJlaXRlIHZvciwgZGFzIFN5c3RlbSBhbnp1aGFsdGVuLi4uClhS
ZXN1bWVUZXh0IFN5c3RlbSB3aXJkIGZvcnRnZXNldHp0Li4uCgojIyBXaGVuIHVzaW5nIFhTdGF0
dXMgeCwgYW5kIHlvdSBoYXZlIHhvc2QgaW5zdGFsbGVkOgojIFhvc2RTZXR0aW5ncyAtLWZvbnQg
LW1pc2MtZml4ZWQtbWVkaXVtLXItc2VtaWNvbmRlbnNlZC0tKi0xMjAtKi0qLWMtKi0qLSogLS1j
b2xvdXI9R3JlZW4gLS1zaGFkb3cgMSAtLXBvcyBib3R0b20gLS1hbGlnbiBjZW50ZXIgLS1vZmZz
ZXQgNTAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZXRjL2hpYmVybmF0ZS9jb21tb24uY29uZgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDA2MTQxADEwNDc2NTQ0NzAy
ADAxNDQ0MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3Rh
ciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBjb21tb24gZm9y
IHN1c3BlbmRpbmcgdG8gZGlzayBvciBSQU0uCiMgT3B0aW9ucyBhcmUgbm90IGNhc2Ugc2Vuc2l0
aXZlLgojIAojIG1hbiBoaWJlcm5hdGUuY29uZiBmb3IgaGVscCBvbiB0aGUgY29uZmlndXJhdGlv
biBpdGVtcy4KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIyMgU29tZSBnbG9iYWwgc2V0dGluZ3MK
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpWZXJib3NpdHkgMwpMb2dGaWxlIC92YXIvbG9nL2hpYmVy
bmF0ZS5sb2cKTG9nVmVyYm9zaXR5IDUKIyBMb2dUaW1lc3RhbXAgeWVzCiMgQWx3YXlzRm9yY2Ug
eWVzCiMgQWx3YXlzS2lsbCB5ZXMKIyBIaWJlcm5hdGVWVCAxNQpEaXN0cmlidXRpb24gZ2VudG9v
ClhEaXNwbGF5IDowCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMjIFNjcmlwdGxldHMKIyMjICAg
U2NyaXB0bGV0cyBwcm92aWRlIHN1cHBvcnQgZm9yIGRvaW5nIGFsbCBzb3J0cyBvZiB0aGluZ3Mg
YmVmb3JlIGFuZCBhZnRlcgojIyMgICBzdXNwZW5kaW5nLiBUaGUgZGVmYXVsdHMgc2V0dGluZ3Mg
aGVyZSBzaG91bGQgd29yayBmb3IgbW9zdCBwZW9wbGUsIGJ1dAojIyMgICB5b3UgbWF5IHdpc2gg
dG8gZWRpdCB0aGVzZSB0byB0YXN0ZS4gQ29uc3VsdCAiaGliZXJuYXRlIC1oIiBmb3IgaGVscCBv
bgojIyMgICB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncy4KIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
CgojIyMgYm9vdHNwbGFzaAojIyBJZiB5b3UgdXNlIGJvb3RzcGxhc2gsIGFsc28gZW5hYmxpbmcg
U3dpdGNoVG9UZXh0TW9kZSBpcyByZWNvbW1lbmRlZCBpZgojIyB5b3UgdXNlIFgsIG90aGVyd2lz
ZSB5b3UgbWF5IGVuZCB1cCB3aXRoIGEgZ2FyYmxlZCBYIGRpc3BsYXkuCiMgQm9vdHNwbGFzaCBv
bgojIEJvb3RzcGxhc2hDb25maWcgL2V0Yy9ib290c3BsYXNoL2RlZmF1bHQvY29uZmlnL2Jvb3Rz
cGxhc2gtMTAyNHg3NjguY2ZnCgojIyMgY2xvY2sKU2F2ZUNsb2NrIHJlc3RvcmUtb25seQoKIyMj
IGRldmljZXMKIyBJbmNvbXBhdGlibGVEZXZpY2VzIC9kZXYvZHNwIC9kZXYvdmlkZW8qCgojIyMg
ZGlza2NhY2hlCiMgRGlzYWJsZVdyaXRlQ2FjaGVPbiAvZGV2L2hkYQoKIyMjIGZic3BsYXNoIChl
bmFibGUgU3dpdGNoVG9UZXh0TW9kZSBpZiB5b3UgdXNlIHRoaXMpCiMgRkJTcGxhc2ggb24KIyBG
QlNwbGFzaFRoZW1lIHN1c3BlbmQyCgojIyMgZmlsZXN5c3RlbXMKIyBVbm1vdW50IC9uZnNzaGFy
ZSAvd2luZG93cyAvbW50L3NhbWJhc2VydmVyClVubW91bnRGU1R5cGVzIGF1dG9mcyBzbWJmcyBu
ZnMKIyBVbm1vdW50R3JhY2VUaW1lIDEKIyBNb3VudCAvd2luZG93cwoKIyMjIGdydWIKIyBDaGFu
Z2VHcnViTWVudSB5ZXMKIyBHcnViTWVudUZpbGUgL2Jvb3QvZ3J1Yi9tZW51LmxzdAojIEFsdGVy
bmF0ZUdydWJNZW51RmlsZSAvYm9vdC9ncnViL21lbnUtc3VzcGVuZGVkLmxzdAojIEJhY2t1cEdy
dWJNZW51RmlsZSAvYm9vdC9ncnViL21lbnUubHN0LmhpYmVybmF0ZS5iYWsKCiMjIyBoYXJkd2Fy
ZV90d2Vha3MKIyBJYm1BY3BpIHllcwojIFJ1bmk5MTVyZXNvbHV0aW9uIHllcwoKIyMjIGxpbG8K
IyBFbnN1cmVMSUxPUmVzdW1lcyB5ZXMKCiMjIyBsb2NrIChnZW5lcmFsbHkgeW91IG9ubHkgd2Fu
dCBvbmUgb2YgdGhlIGZvbGxvd2luZyBvcHRpb25zKQojIExvY2tDb25zb2xlQXMgcm9vdAojIExv
Y2tYU2NyZWVuU2F2ZXIgeWVzCiMgTG9ja0dub21lU2NyZWVuU2F2ZXIgeWVzCiMgTG9ja0tERSB5
ZXMKIyBMb2NrWExvY2sgeWVzCiMgTG9ja1hBdXRvTG9jayB5ZXMKCiMjIyBtaXNjbGF1bmNoCiMg
T25TdXNwZW5kIDIwIGVjaG8gIkdvb2QgbmlnaHQhIgojIE9uUmVzdW1lIDIwIGVjaG8gIkdvb2Qg
bW9ybmluZyEiCgojIyMgbW9kdWxlcwojIFVubG9hZE1vZHVsZXMgc25kX3ZpYTgyY3h4eCB1c2It
b2hjaQojIFVubG9hZEFsbE1vZHVsZXMgeWVzClVubG9hZEJsYWNrbGlzdGVkTW9kdWxlcyB5ZXMK
TG9hZE1vZHVsZXMgYXV0bwojIExvYWRNb2R1bGVzRnJvbUZpbGUgL2V0Yy9tb2R1bGVzCgojIyMg
bW9kdWxlcy1nZW50b28KR2VudG9vTW9kdWxlc0F1dG9sb2FkIHllcwoKIyMjIG5ldHdvcmsKRG93
bkludGVyZmFjZXMgYXV0bwpVcEludGVyZmFjZXMgYXV0bwoKIyMjIHBjbWNpYQojIEVqZWN0Q2Fy
ZHMgeWVzCgojIyMgcHJvZ3JhbXMKIyBJbmNvbXBhdGlibGVQcm9ncmFtcyB4bW1zCgojIyMgc2Vy
dmljZXMKUmVzdGFydFNlcnZpY2VzIGF1dG9mcyBybG9jYXRlZCBsYXB0b3BfbW9kZQojIFN0b3BT
ZXJ2aWNlcyBhbHNhc291bmQKIyBTdGFydFNlcnZpY2VzIGF1bWl4CgojIyMgdmJldG9vbAojIEVu
YWJsZVZiZXRvb2wgeWVzCiMgUmVzdG9yZVZiZVN0YXRlRnJvbSAvdmFyL2xpYi92YmV0b29sL3Zi
ZXN0YXRlCiMgVmJldG9vbFBvc3QgeWVzCiMgUmVzdG9yZVZDU0FEYXRhIHllcwoKIyMjIHhoYWNr
cwpTd2l0Y2hUb1RleHRNb2RlIHllcwojIFVzZUR1bW15WFNlcnZlciB5ZXMKIyBEdW1teVhTZXJ2
ZXJDb25maWcgeG9yZy1kdW1teS5jb25mCgojIyMgeHN0YXR1cwojIyBUaGlzIGNhbiBiZSBzZXQg
dG8gZ25vbWUsIGtkZSBvciB4OgpYU3RhdHVzIGdub21lCiMgWFN1c3BlbmRUZXh0IFByZXBhcmlu
ZyB0byBzdXNwZW5kLi4uCiMgWFJlc3VtZVRleHQgUmVzdW1pbmcgZnJvbSBzdXNwZW5kLi4uClhT
dXNwZW5kVGV4dCBCZXJlaXRlIHZvciwgZGFzIFN5c3RlbSBhbnp1aGFsdGVuLi4uClhSZXN1bWVU
ZXh0IFN5c3RlbSB3aXJkIGZvcnRnZXNldHp0Li4uCgojIyBXaGVuIHVzaW5nIFhTdGF0dXMgeCwg
YW5kIHlvdSBoYXZlIHhvc2QgaW5zdGFsbGVkOgojIFhvc2RTZXR0aW5ncyAtLWZvbnQgLW1pc2Mt
Zml4ZWQtbWVkaXVtLXItc2VtaWNvbmRlbnNlZC0tKi0xMjAtKi0qLWMtKi0qLSogLS1jb2xvdXI9
R3JlZW4gLS1zaGFkb3cgMSAtLXBvcyBib3R0b20gLS1hbGlnbiBjZW50ZXIgLS1vZmZzZXQgNTAK
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAGV0Yy9oaWJlcm5hdGUvdXN1c3BlbmQuY29uZgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDY3MwAxMDQ3NjU0NDcwMgAwMTUwMjQA
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAByb290
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAIyBUaGlzIGZpbGUgaXMgdXNlZCB3aGVuIHN1c3BlbmRpbmcgdG8gZGlz
ayB1c2luZyB0aGUgdXN3c3VzcCBmdW5jdGlvbmFsaXR5IGluCiMgdGhlIGtlcm5lbC4gWW91IHdp
bGwgcmVxdWlyZSB0aGUgczJkaXNrIGJpbmFyeSB0byBiZSBpbnN0YWxsZWQgLSB0aGlzIGNhbiBi
ZQojIGRvd25sb2FkZWQgZnJvbSBodHRwOi8vc3VzcGVuZC5zb3VyY2Vmb3JnZS5uZXQvIC4gCiMg
QWRkIGFueSBjb25maWd1cmF0aW9uIG9wdGlvbnMgc3BlY2lmaWMgdG8gdXN1c3BlbmQgdG8gdGhp
cyBmaWxlLiBPcmRlcmluZyBpcwojIG5vdCBjcnVjaWFsLCBhbmQgb3B0aW9ucyBhcmUgbm90IGNh
c2Utc2Vuc2l0aXZlLgojIAojIFNlZSBoaWJlcm5hdGUuY29uZig1KSBmb3IgaGVscCBvbiB0aGUg
Y29uZmlndXJhdGlvbiBpdGVtcy4KClVzZVVTdXNwZW5kIHllcwoKSW5jbHVkZSBjb21tb24uY29u
ZgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABldGMvaGliZXJuYXRlL2hpYmVybmF0ZS5jb25mfgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
MDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDAzMjcAMTA0NDIzMzQyNTYAMDE1MzAzACAw
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACMgaGliZXJuYXRlLmNvbmYgaXMgc3BsaXQgaW50byBzZXBhcmF0ZSBjb25m
aWd1cmF0aW9uIGZpbGVzLgojIAojIEVhY2ggZmlsZSBpcyB0cmllZCBpbiB0aGUgb3JkZXIgYmVs
b3csIHVudGlsIGFuIGF2YWlsYWJsZSBzdXNwZW5kCiMgbWV0aG9kIGlzIGZvdW5kLgoKVHJ5TWV0
aG9kIHN1c3BlbmQyLmNvbmYKVHJ5TWV0aG9kIGRpc2suY29uZgpUcnlNZXRob2QgcmFtLmNvbmYK
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAZXRjL2hpYmVybmF0ZS9oaWJlcm5hdGUuY29uZgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw
MDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAxMDM1ADEwNDc2NTQ0NzAyADAxNTExMAAgMAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAjIGhpYmVybmF0ZS5jb25mIGlzIHNwbGl0IGludG8gc2VwYXJhdGUgY29uZmln
dXJhdGlvbiBmaWxlcy4KIyAKIyBFYWNoIGZpbGUgaXMgdHJpZWQgaW4gdGhlIG9yZGVyIGJlbG93
LCB1bnRpbCBhbiBhdmFpbGFibGUgc3VzcGVuZAojIG1ldGhvZCBpcyBmb3VuZC4KIwojIE9wdGlv
bnMgc3BlY2lmaWMgdG8gYSBwYXJ0aWN1bGFyIHN1c3BlbmQgbWV0aG9kIHNob3VsZCBiZSBwbGFj
ZWQgaW4gdGhlCiMgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBmaWxlIChzdXNwZW5kMi5jb25m
LCB1c3VzcGVuZC5jb25mLCBkaXNrLmNvbmYKIyBvciByYW0uY29uZikuCiMgT3B0aW9ucyBjb21t
b24gdG8gYWxsIHN1c3BlbmQgbWV0aG9kcyBzaG91bGQgYmUgcGxhY2VkIGluIGNvbW1vbi5jb25m
LgojCiMgU2VlIGhpYmVybmF0ZS5jb25mKDUpIGZvciBoZWxwIG9uIHRoZSBjb25maWd1cmF0aW9u
IGl0ZW1zLgoKVHJ5TWV0aG9kIHN1c3BlbmQyLmNvbmYKVHJ5TWV0aG9kIHVzdXNwZW5kLmNvbmYK
VHJ5TWV0aG9kIGRpc2suY29uZgpUcnlNZXRob2QgcmFtLmNvbmYKAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAZXRjL2hpYmVybmF0ZS9zdXNwZW5kMi5jb25mfgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2
NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAyMjc0ADEwNDc2MzU0MjE3ADAxNTExNgAgMAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAjIEV4YW1wbGUgc3VzcGVuZDIuY29uZiBmaWxlLgojCiMgTk9URTogU3VzcGVuZDIg
aXMgYW4gaW1wcm92ZWQgdmVyc2lvbiBvZiBzdXNwZW5kLXRvLWRpc2sgd2hpY2ggY3VycmVudGx5
CiMgICAgICAgcmVxdWlyZXMgcGF0Y2hpbmcgeW91ciBrZXJuZWwuIEZvciBtb3JlIGluZm9ybWF0
aW9uLCBzZWUgd3d3LnN1c3BlbmQyLm5ldAojIAojICAgICAgIElmIHlvdSBkbyBub3Qgd2lzaCB0
byBwYXRjaCB5b3VyIGtlcm5lbCBidXQgc3RpbGwgYmUgYWJsZSB0byBzdXNwZW5kIHRvCiMgICAg
ICAgZGlzaywgc2VlIGRpc2suY29uZiBpbnN0ZWFkLgoKIyMjIHN1c3BlbmQyIChmb3IgU29mdHdh
cmUgU3VzcGVuZCAyKQpVc2VTdXNwZW5kMiB5ZXMKUmVib290IG5vCkVuYWJsZUVzY2FwZSB5ZXMK
RGVmYXVsdENvbnNvbGVMZXZlbCAxCkNvbXByZXNzb3IgbHpmCkVuY3J5cHRvciBub25lCiMgSW1h
Z2VTaXplTGltaXQgMjAwCgojIyB1c2VmdWwgZm9yIGluaXRyZCB1c2FnZToKU3VzcGVuZERldmlj
ZSBzd2FwOi9kZXYvaGRhNgojIyBQb3dlcmRvd24gbWV0aG9kIC0gMyBmb3Igc3VzcGVuZC10by1S
QU0sIDQgZm9yIEFDUEkgUzQgc2xlZXAsIDUgZm9yIHBvd2Vyb2ZmCiMgUG93ZXJkb3duTWV0aG9k
IDUKCiMjIEFueSBvdGhlciAvcHJvYy9zb2Z0d2FyZV9zdXNwZW5kIHNldHRpbmcgY2FuIGJlIHNl
dCBsaWtlIHNvOgojIFByb2NTZXR0aW5nIGV4cGVjdGVkX2NvbXByZXNzaW9uIDUwCiMKIyBTY2Fs
ZSBDUFUgdG8gZnVsbCBzcGVlZCB0byBtYWtlIHN1cmUgd2Ugc3VzcGVuZCBhcyBmYXN0IGFzIHBv
c3NpYmxlLgpGdWxsU3BlZWRDUFUgeWVzCgojIyBPciB0cmFkaXRpb25hbGx5IGxpa2UgdGhpczoK
IyBTdXNwZW5kMkFsbFNldHRpbmdzIDAgMCAyMDU2IDY1NTM1IDUKCiMjIE9yIGV2ZW4gZnJvbSB0
aGUgcmVzdWx0cyBvZiBoaWJlcm5hdGUgLS1zYXZlLXNldHRpbmdzIHdpdGggdGhpczoKIyBTdXNw
ZW5kMkFsbFNldHRpbmdzRmlsZSAvZXRjL2hpYmVybmF0ZS9zdXNwZW5kLXNldHRpbmdzLmNvbmYK
CiMjIEZvciBmaWxld3JpdGVyOgojIEZpbGV3cml0ZXJMb2NhdGlvbiAvc3VzcGVuZF9maWxlIDEw
MDAKIyBWZXJpZnlGaWxld3JpdGVyUmVzdW1lMiB5ZXMKCiMjIFNwZWNpZnkgYSB1c2VydWkgbGlr
ZSB0aGlzOgojIFByb2NTZXR0aW5nIHVzZXJ1aV9wcm9ncmFtIC9zYmluL3N1c3BlbmQydWlfdGV4
dAoKSW5jbHVkZSBjb21tb24uY29uZgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABldGMvaGliZXJuYXRlL3N1c3BlbmQyLmNvbmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAw
MDAwMDAwADAwMDAwMDAAMDAwMDAwMDIyNzMAMTA0NzY1NDQ3MDIAMDE0NzE3ACAwAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAACMgRXhhbXBsZSBzdXNwZW5kMi5jb25mIGZpbGUuCiMKIyBOT1RFOiBTdXNwZW5kMiBpcyBh
biBpbXByb3ZlZCB2ZXJzaW9uIG9mIHN1c3BlbmQtdG8tZGlzayB3aGljaCBjdXJyZW50bHkKIyAg
ICAgICByZXF1aXJlcyBwYXRjaGluZyB5b3VyIGtlcm5lbC4gRm9yIG1vcmUgaW5mb3JtYXRpb24s
IHNlZSB3d3cuc3VzcGVuZDIubmV0CiMgCiMgICAgICAgSWYgeW91IGRvIG5vdCB3aXNoIHRvIHBh
dGNoIHlvdXIga2VybmVsIGJ1dCBzdGlsbCBiZSBhYmxlIHRvIHN1c3BlbmQgdG8KIyAgICAgICBk
aXNrLCBzZWUgZGlzay5jb25mIGluc3RlYWQuCgojIyMgc3VzcGVuZDIgKGZvciBTb2Z0d2FyZSBT
dXNwZW5kIDIpClVzZVN1c3BlbmQyIHllcwpSZWJvb3Qgbm8KRW5hYmxlRXNjYXBlIHllcwpEZWZh
dWx0Q29uc29sZUxldmVsIDEKQ29tcHJlc3NvciBsemYKRW5jcnlwdG9yIG5vbmUKIyBJbWFnZVNp
emVMaW1pdCAyMDAKCiMjIHVzZWZ1bCBmb3IgaW5pdHJkIHVzYWdlOgpTdXNwZW5kRGV2aWNlIHN3
YXA6L2Rldi9oZGE2CiMjIFBvd2VyZG93biBtZXRob2QgLSAzIGZvciBzdXNwZW5kLXRvLVJBTSwg
NCBmb3IgQUNQSSBTNCBzbGVlcCwgNSBmb3IgcG93ZXJvZmYKIyBQb3dlcmRvd25NZXRob2QgNQoK
IyMgQW55IG90aGVyIC9wcm9jL3NvZnR3YXJlX3N1c3BlbmQgc2V0dGluZyBjYW4gYmUgc2V0IGxp
a2Ugc286CiMgUHJvY1NldHRpbmcgZXhwZWN0ZWRfY29tcHJlc3Npb24gNTAKCiMgU2NhbGUgQ1BV
IHRvIGZ1bGwgc3BlZWQgdG8gbWFrZSBzdXJlIHdlIHN1c3BlbmQgYXMgZmFzdCBhcyBwb3NzaWJs
ZS4KRnVsbFNwZWVkQ1BVIHllcwoKIyMgT3IgdHJhZGl0aW9uYWxseSBsaWtlIHRoaXM6CiMgU3Vz
cGVuZDJBbGxTZXR0aW5ncyAwIDAgMjA1NiA2NTUzNSA1CgojIyBPciBldmVuIGZyb20gdGhlIHJl
c3VsdHMgb2YgaGliZXJuYXRlIC0tc2F2ZS1zZXR0aW5ncyB3aXRoIHRoaXM6CiMgU3VzcGVuZDJB
bGxTZXR0aW5nc0ZpbGUgL2V0Yy9oaWJlcm5hdGUvc3VzcGVuZC1zZXR0aW5ncy5jb25mCgojIyBG
b3IgZmlsZXdyaXRlcjoKIyBGaWxld3JpdGVyTG9jYXRpb24gL3N1c3BlbmRfZmlsZSAxMDAwCiMg
VmVyaWZ5RmlsZXdyaXRlclJlc3VtZTIgeWVzCgojIyBTcGVjaWZ5IGEgdXNlcnVpIGxpa2UgdGhp
czoKIyBQcm9jU2V0dGluZyB1c2VydWlfcHJvZ3JhbSAvc2Jpbi9zdXNwZW5kMnVpX3RleHQKCklu
Y2x1ZGUgY29tbW9uLmNvbmYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>97366</attachid>
            <date>2006-09-18 15:02 0000</date>
            <desc>/etc/modules.autoload.d/kernel-2.6</desc>
            <filename>kernel-2.6</filename>
            <type>text/plain</type>
            <data encoding="base64">IyAvZXRjL21vZHVsZXMuYXV0b2xvYWQuZC9rZXJuZWwtMi42OiAga2VybmVsIG1vZHVsZXMgdG8g
bG9hZCB3aGVuIHN5c3RlbSBib290cy4KIwojIE5vdGUgdGhhdCB0aGlzIGZpbGUgaXMgZm9yIDIu
NiBrZXJuZWxzLgojCiMgQWRkIHRoZSBuYW1lcyBvZiBtb2R1bGVzIHRoYXQgeW91J2QgbGlrZSB0
byBsb2FkIHdoZW4gdGhlIHN5c3RlbQojIHN0YXJ0cyBpbnRvIHRoaXMgZmlsZSwgb25lIHBlciBs
aW5lLiAgQ29tbWVudHMgYmVnaW4gd2l0aCAjIGFuZAojIGFyZSBpZ25vcmVkLiAgUmVhZCBtYW4g
bW9kdWxlcy5hdXRvbG9hZCBmb3IgYWRkaXRpb25hbCBkZXRhaWxzLgoKIyBVbml4IGRvbWFpbiBz
b2NrZXRzIFVOSVgKdW5peAoKIyBWSUE4MkNYWFggY2hpcHNldCBzdXBwb3J0IEJMS19ERVZfVklB
ODJDWFhYCnZpYTgyY3h4eAoKIyBWaWEgVW5pQ2hyb21lCiN2aWFmYgojZmJjb24KCiMgVVNCCnVo
Y2ktaGNkCmVoY2ktaGNkCgojIFdMQU4KI3J0MjUwMAphdGhfcGNpCgojIEFDUEk6CiMgRmFuIChW
ZW50aWxhdG9yKSBTdGV1ZXJ1bmcKZmFuCiMgQmF0dGVyaWVzdGF0dXMKYmF0dGVyeQojIMOcYmVy
d2FjaHVuZyBkZXIgQ1BVIFRlbXBlcmF0dXIKIyAtPiBMw6RkdCBhdWNoICJwcm9jZXNzb3IiCnRo
ZXJtYWwKIyBHcmFmaWtrYXJ0ZW4KIyB2aWRlbwojIEtuw7ZwZmU6IERlY2tlbCwgU2xlZXB0YXN0
ZSwgUG93ZXJ0YXN0ZQpidXR0b24KIyBNaXQgU3Ryb21uZXR6IHZlcmJ1bmRlbgphYwoKIyBGw7xy
IHN5bmFwdGljcyBUb3VjaHBhZApwc21vdXNlCmV2ZGV2CgojIGNwdWZyZXF1dGlscwojIEdlc2No
d2luZGlna2VpdCBkZXIgQ1BVIGVpbnN0ZWxsZW4KIyBBdWcgMjEgMTE6NTg6MTEgYmxhdHQgcDQt
Y2xvY2ttb2Q6IFdhcm5pbmc6IFBlbnRpdW0gTSBkZXRlY3RlZC4gVGhlIHNwZWVkc3RlcF9jZW50
cmlubyBtb2R1bGUgb2ZmZXJzIHZvbHRhZ2Ugc2NhbGluZyBpbiBhZGRpdGlvbiBvZiBmcmVxdWVu
Y3kgc2NhbGluZy4gWW91IHNob3VsZCB1c2UgdGhhdCBpbnN0ZWFkIG9mIHA0LWNsb2NrbW9kLCBp
ZiBwb3NzaWJsZS4KIyBBdWcgMjEgMTE6NTg6MTEgYmxhdHQgcDQtY2xvY2ttb2Q6IFA0L1hlb24o
VE0pIENQVSBPbi1EZW1hbmQgQ2xvY2sgTW9kdWxhdGlvbiBhdmFpbGFibGUKcDQtY2xvY2ttb2QK
CiMgUmVnbGVyICgiZ292ZXJub3JzIikKIydwZXJmb3JtYW5jZScgZ292ZXJub3IgQ1BVX0ZSRVFf
R09WX1BFUkZPUk1BTkNFCiNUaGlzIGNwdWZyZXEgZ292ZXJub3Igc2V0cyB0aGUgZnJlcXVlbmN5
IHN0YXRpY2FsbHkgdG8gdGhlIGhpZ2hlc3QgYXZhaWxhYmxlIENQVSBmcmVxdWVuY3kuCmNwdWZy
ZXFfcGVyZm9ybWFuY2UKCiMncG93ZXJzYXZlJyBnb3Zlcm5vciBDUFVfRlJFUV9HT1ZfUE9XRVJT
QVZFCiNUaGlzIGNwdWZyZXEgZ292ZXJub3Igc2V0cyB0aGUgZnJlcXVlbmN5IHN0YXRpY2FsbHkg
dG8gdGhlIGxvd2VzdCBhdmFpbGFibGUgQ1BVIGZyZXF1ZW5jeS4KY3B1ZnJlcV9wb3dlcnNhdmUK
CiMndXNlcnNwYWNlJyBnb3Zlcm5vciBmb3IgdXNlcnNwYWNlIGZyZXF1ZW5jeSBzY2FsaW5nIENQ
VV9GUkVRX0dPVl9VU0VSU1BBQ0UKI0VuYWJsZSB0aGlzIGNwdWZyZXEgZ292ZXJub3Igd2hlbiB5
b3UgZWl0aGVyIHdhbnQgdG8gc2V0IHRoZSBDUFUgZnJlcXVlbmN5IG1hbnVhbGx5IG9yIHdoZW4g
YW4gdXNlcnNwYWNlIHByb2dyYW0gc2hhbGwgYmUgYWJsZSB0byBzZXQgdGhlIENQVSBkeW5hbWlj
YWxseSwgbGlrZSBvbiBMQVJUIDxodHRwOi8vd3d3LmxhcnQudHVkZWxmdC5ubC8+IAojRm9yIGRl
dGFpbHMsIHRha2UgYSBsb29rIGF0IDxmaWxlOkRvY3VtZW50YXRpb24vY3B1LWZyZXEvPi4KI2Nw
dWZyZXFfdXNlcnNwYWNlCgojJ29uZGVtYW5kJyBjcHVmcmVxIHBvbGljeSBnb3Zlcm5vciBDUFVf
RlJFUV9HT1ZfT05ERU1BTkQKIydvbmRlbWFuZCcgLSBUaGlzIGRyaXZlciBhZGRzIGEgZHluYW1p
YyBjcHVmcmVxIHBvbGljeSBnb3Zlcm5vci4gIFRoZSBnb3Zlcm5vciBkb2VzIGEgcGVyaW9kaWMg
cG9sbGluZyBhbmQgY2hhbmdlcyBmcmVxdWVuY3kgYmFzZWQgb24gdGhlIENQVSB1dGlsaXphdGlv
bi4gIFRoZSBzdXBwb3J0IGZvciB0aGlzIGdvdmVybm9yIGRlcGVuZHMgb24gQ1BVIGNhcGFiaWxp
dHkgdG8gZG8gZmFzdCBmcmVxdWVuY3kgc3dpdGNoaW5nIChpLmUsIHZlcnkgbG93IGxhdGVuY3kg
ZnJlcXVlbmN5IHRyYW5zaXRpb25zKS4gIApjcHVmcmVxX29uZGVtYW5kCgojJ2NvbnNlcnZhdGl2
ZScgY3B1ZnJlcSBnb3Zlcm5vciBDUFVfRlJFUV9HT1ZfQ09OU0VSVkFUSVZFCiMnY29uc2VydmF0
aXZlJyAtIHRoaXMgZHJpdmVyIGlzIHJhdGhlciBzaW1pbGFyIHRvIHRoZSAnb25kZW1hbmQnIGdv
dmVybm9yIGJvdGggaW4gaXRzIHNvdXJjZSBjb2RlIGFuZCBpdHMgcHVycG9zZSwgdGhlIGRpZmZl
cmVuY2UgaXMgaXRzIG9wdGltaXNhdGlvbiBmb3IgYmV0dGVyIHN1aXRhYmlsaXR5IGluIGEgYmF0
dGVyeSBwb3dlcmVkIGVudmlyb25tZW50LiAgVGhlIGZyZXF1ZW5jeSBpcyBncmFjZWZ1bGx5IGlu
Y3JlYXNlZCBhbmQgZGVjcmVhc2VkIHJhdGhlciB0aGFuIGp1bXBpbmcgdG8gMTAwJSB3aGVuIHNw
ZWVkIGlzIHJlcXVpcmVkLgojSWYgeW91IGhhdmUgYSBkZXNrdG9wIG1hY2hpbmUgdGhlbiB5b3Ug
c2hvdWxkIHJlYWxseSBiZSBjb25zaWRlcmluZyB0aGUgJ29uZGVtYW5kJyBnb3Zlcm5vciBpbnN0
ZWFkLCBob3dldmVyIGlmIHlvdSBhcmUgdXNpbmcgYSBsYXB0b3AsIFBEQSBvciBldmVuIGFuIEFN
RDY0IGJhc2VkIGNvbXB1dGVyIChkdWUgdG8gdGhlIHVuYWNjZXB0YWJsZSBzdGVwLWJ5LXN0ZXAg
bGF0ZW5jeSBpc3N1ZXMgYmV0d2VlbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBmcmVxdWVuY3kg
dHJhbnNpdGlvbnMgaW4gdGhlIENQVSkgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byB1c2UgdGhp
cyBnb3Zlcm5vci4KY3B1ZnJlcV9jb25zZXJ2YXRpdmUKCiMgQ0RSb20KIyAtPiBMw6RkdCBhdWNo
ICJjZHJvbSIKaWRlLWNkCgojIEFHUEdBUlQKIyBHcmFmaWtiZXNjaGxldW5pZ3VuZwojICJ2aWEt
YWdwIiBsw6RkdCBhdWNoICJhZ3BnYXJ0Igp2aWEtYWdwCmRybQoKIyBQQyBMYXV0c3ByZWNoZXIg
LyAiUGllcGVyIgpwY3Nwa3IKCiMgRWNodHplaXR1aHIgLyAiUmVhbCBUaW1lIENsb2NrIgpydGMK
CiMgUGFja2V0IHNvY2tldCBQQUNLRVQKYWZfcGFja2V0CgojIFVuaXggZG9tYWluIHNvY2tldHMg
VU5JWAoKIyBDaGVjayBmb3Igbm9uLWZhdGFsIGVycm9ycyBvbiBBTUQgQXRobG9uL0R1cm9uIC8g
SW50ZWwgUGVudGl1bSA0IFg4Nl9NQ0VfTk9ORkFUQUwKbm9uLWZhdGFsCgojIC9kZXYvY3B1L21p
Y3JvY29kZSAtIEludGVsIElBMzIgQ1BVIG1pY3JvY29kZSBzdXBwb3J0IE1JQ1JPQ09ERQptaWNy
b2NvZGUKCiMgRGVmYXVsdCBMaW51eCBDYXBhYmlsaXRpZXMKI2NhcGFiaWxpdHkKCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>98150</attachid>
            <date>2006-09-26 10:25 0000</date>
            <desc>Kernel config</desc>
            <filename>config-2.6.17-suspend2-r6.044.no-kernel-alsa</filename>
            <type>text/plain</type>
            <data encoding="base64">IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CiMgTGlu
dXgga2VybmVsIHZlcnNpb246IDIuNi4xNy1zdXNwZW5kMi1yNgojIFN1biBTZXAgMTAgMjI6NDU6
NTggMjAwNgojCkNPTkZJR19YODZfMzI9eQpDT05GSUdfU0VNQVBIT1JFX1NMRUVQRVJTPXkKQ09O
RklHX1g4Nj15CkNPTkZJR19NTVU9eQpDT05GSUdfR0VORVJJQ19JU0FfRE1BPXkKQ09ORklHX0dF
TkVSSUNfSU9NQVA9eQpDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQ09ORklHX0FSQ0hfTUFZX0hB
VkVfUENfRkRDPXkKQ09ORklHX0RNST15CgojCiMgQ29kZSBtYXR1cml0eSBsZXZlbCBvcHRpb25z
CiMKQ09ORklHX0VYUEVSSU1FTlRBTD15CkNPTkZJR19CUk9LRU5fT05fU01QPXkKQ09ORklHX0xP
Q0tfS0VSTkVMPXkKQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgoKIwojIEdlbmVyYWwgc2V0
dXAKIwpDT05GSUdfTE9DQUxWRVJTSU9OPSIuMDQ0Lm5vLWtlcm5lbC1hbHNhIgojIENPTkZJR19M
T0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0CkNPTkZJR19TV0FQPXkKQ09ORklHX1NZU1ZJUEM9
eQpDT05GSUdfUE9TSVhfTVFVRVVFPXkKQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1Q9eQojIENPTkZJ
R19CU0RfUFJPQ0VTU19BQ0NUX1YzIGlzIG5vdCBzZXQKQ09ORklHX1NZU0NUTD15CiMgQ09ORklH
X0FVRElUIGlzIG5vdCBzZXQKQ09ORklHX0lLQ09ORklHPXkKQ09ORklHX0lLQ09ORklHX1BST0M9
eQojIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CkNPTkZJR19JTklUUkFNRlNfU09VUkNFPSIiCkNP
TkZJR19VSUQxNj15CkNPTkZJR19WTTg2PXkKQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkK
IyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldApDT05GSUdfS0FMTFNZTVM9eQojIENPTkZJR19L
QUxMU1lNU19BTEwgaXMgbm90IHNldAojIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5v
dCBzZXQKQ09ORklHX0hPVFBMVUc9eQpDT05GSUdfUFJJTlRLPXkKQ09ORklHX0JVRz15CkNPTkZJ
R19FTEZfQ09SRT15CkNPTkZJR19CQVNFX0ZVTEw9eQpDT05GSUdfRlVURVg9eQpDT05GSUdfRVBP
TEw9eQpDT05GSUdfU0hNRU09eQpDT05GSUdfU0xBQj15CiMgQ09ORklHX1RJTllfU0hNRU0gaXMg
bm90IHNldApDT05GSUdfQkFTRV9TTUFMTD0wCiMgQ09ORklHX1NMT0IgaXMgbm90IHNldAoKIwoj
IExvYWRhYmxlIG1vZHVsZSBzdXBwb3J0CiMKQ09ORklHX01PRFVMRVM9eQpDT05GSUdfTU9EVUxF
X1VOTE9BRD15CkNPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEPXkKQ09ORklHX01PRFZFUlNJT05T
PXkKIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKQ09ORklHX0tNT0Q9
eQoKIwojIEJsb2NrIGxheWVyCiMKIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxL
X0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CiMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CgojCiMgSU8g
U2NoZWR1bGVycwojCkNPTkZJR19JT1NDSEVEX05PT1A9eQpDT05GSUdfSU9TQ0hFRF9BUz1tCkNP
TkZJR19JT1NDSEVEX0RFQURMSU5FPW0KQ09ORklHX0lPU0NIRURfQ0ZRPXkKIyBDT05GSUdfREVG
QVVMVF9BUyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldApD
T05GSUdfREVGQVVMVF9DRlE9eQojIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldApDT05G
SUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCgojCiMgUHJvY2Vzc29yIHR5cGUgYW5kIGZlYXR1cmVz
CiMKIyBDT05GSUdfU01QIGlzIG5vdCBzZXQKQ09ORklHX1g4Nl9QQz15CiMgQ09ORklHX1g4Nl9F
TEFOIGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2X1ZPWUFHRVIgaXMgbm90IHNldAojIENPTkZJR19Y
ODZfTlVNQVEgaXMgbm90IHNldAojIENPTkZJR19YODZfU1VNTUlUIGlzIG5vdCBzZXQKIyBDT05G
SUdfWDg2X0JJR1NNUCBpcyBub3Qgc2V0CiMgQ09ORklHX1g4Nl9WSVNXUyBpcyBub3Qgc2V0CiMg
Q09ORklHX1g4Nl9HRU5FUklDQVJDSCBpcyBub3Qgc2V0CiMgQ09ORklHX1g4Nl9FUzcwMDAgaXMg
bm90IHNldAojIENPTkZJR19NMzg2IGlzIG5vdCBzZXQKIyBDT05GSUdfTTQ4NiBpcyBub3Qgc2V0
CiMgQ09ORklHX001ODYgaXMgbm90IHNldAojIENPTkZJR19NNTg2VFNDIGlzIG5vdCBzZXQKIyBD
T05GSUdfTTU4Nk1NWCBpcyBub3Qgc2V0CiMgQ09ORklHX002ODYgaXMgbm90IHNldAojIENPTkZJ
R19NUEVOVElVTUlJIGlzIG5vdCBzZXQKIyBDT05GSUdfTVBFTlRJVU1JSUkgaXMgbm90IHNldAoj
IENPTkZJR19NUEVOVElVTU0gaXMgbm90IHNldApDT05GSUdfTVBFTlRJVU00PXkKIyBDT05GSUdf
TUs2IGlzIG5vdCBzZXQKIyBDT05GSUdfTUs3IGlzIG5vdCBzZXQKIyBDT05GSUdfTUs4IGlzIG5v
dCBzZXQKIyBDT05GSUdfTUNSVVNPRSBpcyBub3Qgc2V0CiMgQ09ORklHX01FRkZJQ0VPTiBpcyBu
b3Qgc2V0CiMgQ09ORklHX01XSU5DSElQQzYgaXMgbm90IHNldAojIENPTkZJR19NV0lOQ0hJUDIg
aXMgbm90IHNldAojIENPTkZJR19NV0lOQ0hJUDNEIGlzIG5vdCBzZXQKIyBDT05GSUdfTUdFT0RF
R1gxIGlzIG5vdCBzZXQKIyBDT05GSUdfTUdFT0RFX0xYIGlzIG5vdCBzZXQKIyBDT05GSUdfTUNZ
UklYSUlJIGlzIG5vdCBzZXQKIyBDT05GSUdfTVZJQUMzXzIgaXMgbm90IHNldAojIENPTkZJR19Y
ODZfR0VORVJJQyBpcyBub3Qgc2V0CkNPTkZJR19YODZfQ01QWENIRz15CkNPTkZJR19YODZfWEFE
RD15CkNPTkZJR19YODZfTDFfQ0FDSEVfU0hJRlQ9NwpDT05GSUdfUldTRU1fWENIR0FERF9BTEdP
UklUSE09eQpDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQpDT05GSUdfWDg2X1dQX1dP
UktTX09LPXkKQ09ORklHX1g4Nl9JTlZMUEc9eQpDT05GSUdfWDg2X0JTV0FQPXkKQ09ORklHX1g4
Nl9QT1BBRF9PSz15CkNPTkZJR19YODZfQ01QWENIRzY0PXkKQ09ORklHX1g4Nl9HT09EX0FQSUM9
eQpDT05GSUdfWDg2X0lOVEVMX1VTRVJDT1BZPXkKQ09ORklHX1g4Nl9VU0VfUFBST19DSEVDS1NV
TT15CkNPTkZJR19YODZfVFNDPXkKQ09ORklHX0hQRVRfVElNRVI9eQojIENPTkZJR19QUkVFTVBU
X05PTkUgaXMgbm90IHNldAojIENPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWSBpcyBub3Qgc2V0CkNP
TkZJR19QUkVFTVBUPXkKQ09ORklHX1BSRUVNUFRfQktMPXkKQ09ORklHX1g4Nl9VUF9BUElDPXkK
Q09ORklHX1g4Nl9VUF9JT0FQSUM9eQpDT05GSUdfWDg2X0xPQ0FMX0FQSUM9eQpDT05GSUdfWDg2
X0lPX0FQSUM9eQpDT05GSUdfWDg2X01DRT15CkNPTkZJR19YODZfTUNFX05PTkZBVEFMPW0KQ09O
RklHX1g4Nl9NQ0VfUDRUSEVSTUFMPXkKIyBDT05GSUdfVE9TSElCQSBpcyBub3Qgc2V0CiMgQ09O
RklHX0k4SyBpcyBub3Qgc2V0CiMgQ09ORklHX1g4Nl9SRUJPT1RGSVhVUFMgaXMgbm90IHNldApD
T05GSUdfTUlDUk9DT0RFPW0KQ09ORklHX1g4Nl9NU1I9bQpDT05GSUdfWDg2X0NQVUlEPW0KCiMK
IyBGaXJtd2FyZSBEcml2ZXJzCiMKIyBDT05GSUdfRUREIGlzIG5vdCBzZXQKIyBDT05GSUdfREVM
TF9SQlUgaXMgbm90IHNldAojIENPTkZJR19EQ0RCQVMgaXMgbm90IHNldApDT05GSUdfTk9ISUdI
TUVNPXkKIyBDT05GSUdfSElHSE1FTTRHIGlzIG5vdCBzZXQKIyBDT05GSUdfSElHSE1FTTY0RyBp
cyBub3Qgc2V0CkNPTkZJR19QQUdFX09GRlNFVD0weEMwMDAwMDAwCkNPTkZJR19BUkNIX0ZMQVRN
RU1fRU5BQkxFPXkKQ09ORklHX0FSQ0hfU1BBUlNFTUVNX0VOQUJMRT15CkNPTkZJR19BUkNIX1NF
TEVDVF9NRU1PUllfTU9ERUw9eQpDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CkNPTkZJR19G
TEFUTUVNX01BTlVBTD15CiMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAoj
IENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKQ09ORklHX0ZMQVRNRU09eQpDT05G
SUdfRkxBVF9OT0RFX01FTV9NQVA9eQpDT05GSUdfU1BBUlNFTUVNX1NUQVRJQz15CkNPTkZJR19T
UExJVF9QVExPQ0tfQ1BVUz00CiMgQ09ORklHX01BVEhfRU1VTEFUSU9OIGlzIG5vdCBzZXQKQ09O
RklHX01UUlI9eQojIENPTkZJR19FRkkgaXMgbm90IHNldApDT05GSUdfUkVHUEFSTT15CkNPTkZJ
R19TRUNDT01QPXkKIyBDT05GSUdfSFpfMTAwIGlzIG5vdCBzZXQKIyBDT05GSUdfSFpfMjUwIGlz
IG5vdCBzZXQKQ09ORklHX0haXzEwMDA9eQpDT05GSUdfSFo9MTAwMAojIENPTkZJR19LRVhFQyBp
cyBub3Qgc2V0CkNPTkZJR19QSFlTSUNBTF9TVEFSVD0weDEwMDAwMAoKIwojIFBvd2VyIG1hbmFn
ZW1lbnQgb3B0aW9ucyAoQUNQSSwgQVBNKQojCkNPTkZJR19QTT15CkNPTkZJR19QTV9MRUdBQ1k9
eQojIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19TT0ZUV0FSRV9TVVNQRU5EPXkK
Q09ORklHX1BNX1NURF9QQVJUSVRJT049Ii9kZXYvaGRhNiIKQ09ORklHX1NVU1BFTkQyX0NSWVBU
Tz15CkNPTkZJR19TVVNQRU5EMj15CgojCiMgSW1hZ2UgU3RvcmFnZSAoeW91IG5lZWQgYXQgbGVh
c3Qgb25lIHdyaXRlcikKIwojIENPTkZJR19TVVNQRU5EMl9GSUxFV1JJVEVSIGlzIG5vdCBzZXQK
Q09ORklHX1NVU1BFTkQyX1NXQVBXUklURVI9eQoKIwojIEdlbmVyYWwgT3B0aW9ucwojCkNPTkZJ
R19TVVNQRU5EMl9ERUZBVUxUX1JFU1VNRTI9InN3YXA6L2Rldi9oZGE2IgojIENPTkZJR19TVVNQ
RU5EMl9LRUVQX0lNQUdFIGlzIG5vdCBzZXQKQ09ORklHX1NVU1BFTkRfU0hBUkVEPXkKCiMKIyBB
Q1BJIChBZHZhbmNlZCBDb25maWd1cmF0aW9uIGFuZCBQb3dlciBJbnRlcmZhY2UpIFN1cHBvcnQK
IwpDT05GSUdfQUNQST15CkNPTkZJR19BQ1BJX1NMRUVQPXkKQ09ORklHX0FDUElfU0xFRVBfUFJP
Q19GUz15CiMgQ09ORklHX0FDUElfU0xFRVBfUFJPQ19TTEVFUCBpcyBub3Qgc2V0CkNPTkZJR19B
Q1BJX0FDPW0KQ09ORklHX0FDUElfQkFUVEVSWT1tCkNPTkZJR19BQ1BJX0JVVFRPTj1tCiMgQ09O
RklHX0FDUElfVklERU8gaXMgbm90IHNldAojIENPTkZJR19BQ1BJX0hPVEtFWSBpcyBub3Qgc2V0
CkNPTkZJR19BQ1BJX0ZBTj1tCkNPTkZJR19BQ1BJX1BST0NFU1NPUj1tCkNPTkZJR19BQ1BJX1RI
RVJNQUw9bQojIENPTkZJR19BQ1BJX0FTVVMgaXMgbm90IHNldAojIENPTkZJR19BQ1BJX0lCTSBp
cyBub3Qgc2V0CiMgQ09ORklHX0FDUElfVE9TSElCQSBpcyBub3Qgc2V0CkNPTkZJR19BQ1BJX0JM
QUNLTElTVF9ZRUFSPTAKIyBDT05GSUdfQUNQSV9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19BQ1BJ
X0VDPXkKQ09ORklHX0FDUElfUE9XRVI9eQpDT05GSUdfQUNQSV9TWVNURU09eQpDT05GSUdfWDg2
X1BNX1RJTUVSPXkKIyBDT05GSUdfQUNQSV9DT05UQUlORVIgaXMgbm90IHNldAoKIwojIEFQTSAo
QWR2YW5jZWQgUG93ZXIgTWFuYWdlbWVudCkgQklPUyBTdXBwb3J0CiMKIyBDT05GSUdfQVBNIGlz
IG5vdCBzZXQKCiMKIyBDUFUgRnJlcXVlbmN5IHNjYWxpbmcKIwpDT05GSUdfQ1BVX0ZSRVE9eQpD
T05GSUdfQ1BVX0ZSRVFfVEFCTEU9bQojIENPTkZJR19DUFVfRlJFUV9ERUJVRyBpcyBub3Qgc2V0
CkNPTkZJR19DUFVfRlJFUV9TVEFUPW0KIyBDT05GSUdfQ1BVX0ZSRVFfU1RBVF9ERVRBSUxTIGlz
IG5vdCBzZXQKQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFPXkKIyBDT05G
SUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlzIG5vdCBzZXQKQ09ORklHX0NQVV9G
UkVRX0dPVl9QRVJGT1JNQU5DRT15CkNPTkZJR19DUFVfRlJFUV9HT1ZfUE9XRVJTQVZFPW0KQ09O
RklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0U9bQpDT05GSUdfQ1BVX0ZSRVFfR09WX09OREVNQU5E
PW0KQ09ORklHX0NQVV9GUkVRX0dPVl9DT05TRVJWQVRJVkU9bQoKIwojIENQVUZyZXEgcHJvY2Vz
c29yIGRyaXZlcnMKIwojIENPTkZJR19YODZfQUNQSV9DUFVGUkVRIGlzIG5vdCBzZXQKIyBDT05G
SUdfWDg2X1BPV0VSTk9XX0s2IGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2X1BPV0VSTk9XX0s3IGlz
IG5vdCBzZXQKIyBDT05GSUdfWDg2X1BPV0VSTk9XX0s4IGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2
X0dYX1NVU1BNT0QgaXMgbm90IHNldAojIENPTkZJR19YODZfU1BFRURTVEVQX0NFTlRSSU5PIGlz
IG5vdCBzZXQKIyBDT05GSUdfWDg2X1NQRUVEU1RFUF9JQ0ggaXMgbm90IHNldAojIENPTkZJR19Y
ODZfU1BFRURTVEVQX1NNSSBpcyBub3Qgc2V0CkNPTkZJR19YODZfUDRfQ0xPQ0tNT0Q9bQojIENP
TkZJR19YODZfQ1BVRlJFUV9ORk9SQ0UyIGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2X0xPTkdSVU4g
aXMgbm90IHNldAoKIwojIHNoYXJlZCBvcHRpb25zCiMKQ09ORklHX1g4Nl9TUEVFRFNURVBfTElC
PW0KCiMKIyBCdXMgb3B0aW9ucyAoUENJLCBQQ01DSUEsIEVJU0EsIE1DQSwgSVNBKQojCkNPTkZJ
R19QQ0k9eQojIENPTkZJR19QQ0lfR09CSU9TIGlzIG5vdCBzZXQKIyBDT05GSUdfUENJX0dPTU1D
T05GSUcgaXMgbm90IHNldAojIENPTkZJR19QQ0lfR09ESVJFQ1QgaXMgbm90IHNldApDT05GSUdf
UENJX0dPQU5ZPXkKQ09ORklHX1BDSV9CSU9TPXkKQ09ORklHX1BDSV9ESVJFQ1Q9eQpDT05GSUdf
UENJX01NQ09ORklHPXkKIyBDT05GSUdfUENJRVBPUlRCVVMgaXMgbm90IHNldAojIENPTkZJR19Q
Q0lfTVNJIGlzIG5vdCBzZXQKIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKQ09ORklHX0lT
QV9ETUFfQVBJPXkKIyBDT05GSUdfSVNBIGlzIG5vdCBzZXQKIyBDT05GSUdfTUNBIGlzIG5vdCBz
ZXQKIyBDT05GSUdfU0N4MjAwIGlzIG5vdCBzZXQKCiMKIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVz
KSBzdXBwb3J0CiMKQ09ORklHX1BDQ0FSRD1tCiMgQ09ORklHX1BDTUNJQV9ERUJVRyBpcyBub3Qg
c2V0CkNPTkZJR19QQ01DSUE9bQpDT05GSUdfUENNQ0lBX0xPQURfQ0lTPXkKIyBDT05GSUdfUENN
Q0lBX0lPQ1RMIGlzIG5vdCBzZXQKQ09ORklHX0NBUkRCVVM9eQoKIwojIFBDLWNhcmQgYnJpZGdl
cwojCkNPTkZJR19ZRU5UQT1tCkNPTkZJR19ZRU5UQV9PMj15CkNPTkZJR19ZRU5UQV9SSUNPSD15
CkNPTkZJR19ZRU5UQV9UST15CkNPTkZJR19ZRU5UQV9FTkVfVFVORT15CkNPTkZJR19ZRU5UQV9U
T1NISUJBPXkKIyBDT05GSUdfUEQ2NzI5IGlzIG5vdCBzZXQKIyBDT05GSUdfSTgyMDkyIGlzIG5v
dCBzZXQKQ09ORklHX1BDQ0FSRF9OT05TVEFUSUM9bQoKIwojIFBDSSBIb3RwbHVnIFN1cHBvcnQK
IwojIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CgojCiMgRXhlY3V0YWJsZSBmaWxlIGZv
cm1hdHMKIwpDT05GSUdfQklORk1UX0VMRj15CiMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBz
ZXQKQ09ORklHX0JJTkZNVF9NSVNDPW0KCiMKIyBOZXR3b3JraW5nCiMKQ09ORklHX05FVD15Cgoj
CiMgTmV0d29ya2luZyBvcHRpb25zCiMKIyBDT05GSUdfTkVUREVCVUcgaXMgbm90IHNldApDT05G
SUdfUEFDS0VUPW0KQ09ORklHX1BBQ0tFVF9NTUFQPXkKQ09ORklHX1VOSVg9bQojIENPTkZJR19O
RVRfS0VZIGlzIG5vdCBzZXQKQ09ORklHX0lORVQ9eQojIENPTkZJR19JUF9NVUxUSUNBU1QgaXMg
bm90IHNldAojIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldApDT05GSUdfSVBf
RklCX0hBU0g9eQojIENPTkZJR19JUF9QTlAgaXMgbm90IHNldApDT05GSUdfTkVUX0lQSVA9bQpD
T05GSUdfTkVUX0lQR1JFPW0KIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CkNPTkZJR19TWU5fQ09P
S0lFUz15CiMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAojIENPTkZJR19JTkVUX0VTUCBpcyBu
b3Qgc2V0CiMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5FVF9YRlJN
X1RVTk5FTCBpcyBub3Qgc2V0CkNPTkZJR19JTkVUX1RVTk5FTD1tCiMgQ09ORklHX0lORVRfRElB
RyBpcyBub3Qgc2V0CiMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKQ09ORklH
X1RDUF9DT05HX0JJQz15CgojCiMgSVA6IFZpcnR1YWwgU2VydmVyIENvbmZpZ3VyYXRpb24KIwoj
IENPTkZJR19JUF9WUyBpcyBub3Qgc2V0CiMgQ09ORklHX0lQVjYgaXMgbm90IHNldAojIENPTkZJ
R19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CiMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBu
b3Qgc2V0CkNPTkZJR19ORVRGSUxURVI9eQojIENPTkZJR19ORVRGSUxURVJfREVCVUcgaXMgbm90
IHNldAoKIwojIENvcmUgTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KIwpDT05GSUdfTkVURklMVEVS
X05FVExJTks9bQpDT05GSUdfTkVURklMVEVSX05FVExJTktfUVVFVUU9bQojIENPTkZJR19ORVRG
SUxURVJfTkVUTElOS19MT0cgaXMgbm90IHNldApDT05GSUdfTkVURklMVEVSX1hUQUJMRVM9bQpD
T05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9DTEFTU0lGWT1tCkNPTkZJR19ORVRGSUxURVJfWFRf
VEFSR0VUX01BUks9bQpDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ORlFVRVVFPW0KQ09ORklH
X05FVEZJTFRFUl9YVF9NQVRDSF9DT01NRU5UPW0KQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9D
T05OVFJBQ0s9bQojIENPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfRENDUCBpcyBub3Qgc2V0CiMg
Q09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9FU1AgaXMgbm90IHNldApDT05GSUdfTkVURklMVEVS
X1hUX01BVENIX0hFTFBFUj1tCkNPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfTEVOR1RIPW0KQ09O
RklHX05FVEZJTFRFUl9YVF9NQVRDSF9MSU1JVD1tCkNPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hf
TUFDPW0KQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9NQVJLPW0KQ09ORklHX05FVEZJTFRFUl9Y
VF9NQVRDSF9NVUxUSVBPUlQ9bQojIENPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUEtUVFlQRSBp
cyBub3Qgc2V0CiMgQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9SRUFMTSBpcyBub3Qgc2V0CiMg
Q09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TQ1RQIGlzIG5vdCBzZXQKQ09ORklHX05FVEZJTFRF
Ul9YVF9NQVRDSF9TVEFURT1tCiMgQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVFJJTkcgaXMg
bm90IHNldApDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1RDUE1TUz1tCgojCiMgSVA6IE5ldGZp
bHRlciBDb25maWd1cmF0aW9uCiMKQ09ORklHX0lQX05GX0NPTk5UUkFDSz1tCiMgQ09ORklHX0lQ
X05GX0NUX0FDQ1QgaXMgbm90IHNldAojIENPTkZJR19JUF9ORl9DT05OVFJBQ0tfTUFSSyBpcyBu
b3Qgc2V0CiMgQ09ORklHX0lQX05GX0NPTk5UUkFDS19FVkVOVFMgaXMgbm90IHNldAojIENPTkZJ
R19JUF9ORl9DT05OVFJBQ0tfTkVUTElOSyBpcyBub3Qgc2V0CiMgQ09ORklHX0lQX05GX0NUX1BS
T1RPX1NDVFAgaXMgbm90IHNldApDT05GSUdfSVBfTkZfRlRQPW0KIyBDT05GSUdfSVBfTkZfSVJD
IGlzIG5vdCBzZXQKIyBDT05GSUdfSVBfTkZfTkVUQklPU19OUyBpcyBub3Qgc2V0CiMgQ09ORklH
X0lQX05GX1RGVFAgaXMgbm90IHNldAojIENPTkZJR19JUF9ORl9BTUFOREEgaXMgbm90IHNldAoj
IENPTkZJR19JUF9ORl9QUFRQIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBfTkZfSDMyMyBpcyBub3Qg
c2V0CiMgQ09ORklHX0lQX05GX1FVRVVFIGlzIG5vdCBzZXQKQ09ORklHX0lQX05GX0lQVEFCTEVT
PW0KQ09ORklHX0lQX05GX01BVENIX0lQUkFOR0U9bQojIENPTkZJR19JUF9ORl9NQVRDSF9UT1Mg
aXMgbm90IHNldApDT05GSUdfSVBfTkZfTUFUQ0hfUkVDRU5UPW0KQ09ORklHX0lQX05GX01BVENI
X0VDTj1tCiMgQ09ORklHX0lQX05GX01BVENIX0RTQ1AgaXMgbm90IHNldAojIENPTkZJR19JUF9O
Rl9NQVRDSF9BSCBpcyBub3Qgc2V0CkNPTkZJR19JUF9ORl9NQVRDSF9UVEw9bQpDT05GSUdfSVBf
TkZfTUFUQ0hfT1dORVI9bQpDT05GSUdfSVBfTkZfTUFUQ0hfQUREUlRZUEU9bQojIENPTkZJR19J
UF9ORl9NQVRDSF9IQVNITElNSVQgaXMgbm90IHNldApDT05GSUdfSVBfTkZfRklMVEVSPW0KQ09O
RklHX0lQX05GX1RBUkdFVF9SRUpFQ1Q9bQpDT05GSUdfSVBfTkZfVEFSR0VUX0xPRz1tCkNPTkZJ
R19JUF9ORl9UQVJHRVRfVUxPRz1tCkNPTkZJR19JUF9ORl9UQVJHRVRfVENQTVNTPW0KIyBDT05G
SUdfSVBfTkZfTkFUIGlzIG5vdCBzZXQKQ09ORklHX0lQX05GX01BTkdMRT1tCiMgQ09ORklHX0lQ
X05GX1RBUkdFVF9UT1MgaXMgbm90IHNldAojIENPTkZJR19JUF9ORl9UQVJHRVRfRUNOIGlzIG5v
dCBzZXQKIyBDT05GSUdfSVBfTkZfVEFSR0VUX0RTQ1AgaXMgbm90IHNldAojIENPTkZJR19JUF9O
Rl9UQVJHRVRfVFRMIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBfTkZfUkFXIGlzIG5vdCBzZXQKIyBD
T05GSUdfSVBfTkZfQVJQVEFCTEVTIGlzIG5vdCBzZXQKCiMKIyBEQ0NQIENvbmZpZ3VyYXRpb24g
KEVYUEVSSU1FTlRBTCkKIwojIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKCiMKIyBTQ1RQIENv
bmZpZ3VyYXRpb24gKEVYUEVSSU1FTlRBTCkKIwojIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQK
CiMKIyBUSVBDIENvbmZpZ3VyYXRpb24gKEVYUEVSSU1FTlRBTCkKIwojIENPTkZJR19USVBDIGlz
IG5vdCBzZXQKIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKIyBDT05GSUdfQlJJREdFIGlzIG5vdCBz
ZXQKIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQ05FVCBpcyBub3Qg
c2V0CiMgQ09ORklHX0xMQzIgaXMgbm90IHNldAojIENPTkZJR19JUFggaXMgbm90IHNldAojIENP
TkZJR19BVEFMSyBpcyBub3Qgc2V0CiMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CiMgQ09ORklHX0xB
UEIgaXMgbm90IHNldAojIENPTkZJR19ORVRfRElWRVJUIGlzIG5vdCBzZXQKIyBDT05GSUdfRUNP
TkVUIGlzIG5vdCBzZXQKIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CgojCiMgUW9TIGFu
ZC9vciBmYWlyIHF1ZXVlaW5nCiMKIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKCiMKIyBO
ZXR3b3JrIHRlc3RpbmcKIwojIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKIyBDT05GSUdf
SEFNUkFESU8gaXMgbm90IHNldAojIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKQ09ORklHX0JUPW0K
Q09ORklHX0JUX0wyQ0FQPW0KQ09ORklHX0JUX1NDTz1tCkNPTkZJR19CVF9SRkNPTU09bQpDT05G
SUdfQlRfUkZDT01NX1RUWT15CkNPTkZJR19CVF9CTkVQPW0KQ09ORklHX0JUX0JORVBfTUNfRklM
VEVSPXkKQ09ORklHX0JUX0JORVBfUFJPVE9fRklMVEVSPXkKQ09ORklHX0JUX0hJRFA9bQoKIwoj
IEJsdWV0b290aCBkZXZpY2UgZHJpdmVycwojCkNPTkZJR19CVF9IQ0lVU0I9bQpDT05GSUdfQlRf
SENJVVNCX1NDTz15CkNPTkZJR19CVF9IQ0lVQVJUPW0KQ09ORklHX0JUX0hDSVVBUlRfSDQ9eQpD
T05GSUdfQlRfSENJVUFSVF9CQ1NQPXkKIyBDT05GSUdfQlRfSENJQkNNMjAzWCBpcyBub3Qgc2V0
CiMgQ09ORklHX0JUX0hDSUJQQTEwWCBpcyBub3Qgc2V0CiMgQ09ORklHX0JUX0hDSUJGVVNCIGlz
IG5vdCBzZXQKIyBDT05GSUdfQlRfSENJRFRMMSBpcyBub3Qgc2V0CiMgQ09ORklHX0JUX0hDSUJU
M0MgaXMgbm90IHNldAojIENPTkZJR19CVF9IQ0lCTFVFQ0FSRCBpcyBub3Qgc2V0CiMgQ09ORklH
X0JUX0hDSUJUVUFSVCBpcyBub3Qgc2V0CiMgQ09ORklHX0JUX0hDSVZIQ0kgaXMgbm90IHNldAoj
IENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldApDT05GSUdfV0lSRUxFU1NfRVhUPXkKCiMKIyBE
ZXZpY2UgRHJpdmVycwojCgojCiMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwojCkNPTkZJR19TVEFO
REFMT05FPXkKQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQpDT05GSUdfRldfTE9BREVS
PW0KIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKCiMKIyBDb25uZWN0b3IgLSB1bmlm
aWVkIHVzZXJzcGFjZSA8LT4ga2VybmVsc3BhY2UgbGlua2VyCiMKQ09ORklHX0NPTk5FQ1RPUj1t
CgojCiMgTWVtb3J5IFRlY2hub2xvZ3kgRGV2aWNlcyAoTVREKQojCiMgQ09ORklHX01URCBpcyBu
b3Qgc2V0CgojCiMgUGFyYWxsZWwgcG9ydCBzdXBwb3J0CiMKIyBDT05GSUdfUEFSUE9SVCBpcyBu
b3Qgc2V0CgojCiMgUGx1ZyBhbmQgUGxheSBzdXBwb3J0CiMKIyBDT05GSUdfUE5QIGlzIG5vdCBz
ZXQKCiMKIyBCbG9jayBkZXZpY2VzCiMKIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CiMg
Q09ORklHX0JMS19DUFFfREEgaXMgbm90IHNldAojIENPTkZJR19CTEtfQ1BRX0NJU1NfREEgaXMg
bm90IHNldAojIENPTkZJR19CTEtfREVWX0RBQzk2MCBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19E
RVZfVU1FTSBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0
CkNPTkZJR19CTEtfREVWX0xPT1A9bQojIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90
IHNldAojIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfU1g4
IGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19E
RVZfUkFNIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldApDT05G
SUdfQ0RST01fUEtUQ0RWRD1tCkNPTkZJR19DRFJPTV9QS1RDRFZEX0JVRkZFUlM9OAojIENPTkZJ
R19DRFJPTV9QS1RDRFZEX1dDQUNIRSBpcyBub3Qgc2V0CiMgQ09ORklHX0FUQV9PVkVSX0VUSCBp
cyBub3Qgc2V0CgojCiMgQVRBL0FUQVBJL01GTS9STEwgc3VwcG9ydAojCkNPTkZJR19JREU9eQpD
T05GSUdfQkxLX0RFVl9JREU9eQoKIwojIFBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi9pZGUudHh0
IGZvciBoZWxwL2luZm8gb24gSURFIGRyaXZlcwojCiMgQ09ORklHX0JMS19ERVZfSURFX1NBVEEg
aXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX0hEX0lERSBpcyBub3Qgc2V0CkNPTkZJR19CTEtf
REVWX0lERURJU0s9eQpDT05GSUdfSURFRElTS19NVUxUSV9NT0RFPXkKIyBDT05GSUdfQkxLX0RF
Vl9JREVDUyBpcyBub3Qgc2V0CkNPTkZJR19CTEtfREVWX0lERUNEPW0KIyBDT05GSUdfQkxLX0RF
Vl9JREVUQVBFIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9JREVGTE9QUFkgaXMgbm90IHNl
dAojIENPTkZJR19CTEtfREVWX0lERVNDU0kgaXMgbm90IHNldAojIENPTkZJR19JREVfVEFTS19J
T0NUTCBpcyBub3Qgc2V0CgojCiMgSURFIGNoaXBzZXQgc3VwcG9ydC9idWdmaXhlcwojCkNPTkZJ
R19JREVfR0VORVJJQz15CiMgQ09ORklHX0JMS19ERVZfQ01ENjQwIGlzIG5vdCBzZXQKQ09ORklH
X0JMS19ERVZfSURFUENJPXkKQ09ORklHX0lERVBDSV9TSEFSRV9JUlE9eQojIENPTkZJR19CTEtf
REVWX09GRkJPQVJEIGlzIG5vdCBzZXQKQ09ORklHX0JMS19ERVZfR0VORVJJQz15CiMgQ09ORklH
X0JMS19ERVZfT1BUSTYyMSBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfUloxMDAwIGlzIG5v
dCBzZXQKQ09ORklHX0JMS19ERVZfSURFRE1BX1BDST15CiMgQ09ORklHX0JMS19ERVZfSURFRE1B
X0ZPUkNFRCBpcyBub3Qgc2V0CkNPTkZJR19JREVETUFfUENJX0FVVE89eQojIENPTkZJR19JREVE
TUFfT05MWURJU0sgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX0FFQzYyWFggaXMgbm90IHNl
dAojIENPTkZJR19CTEtfREVWX0FMSTE1WDMgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX0FN
RDc0WFggaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX0FUSUlYUCBpcyBub3Qgc2V0CiMgQ09O
RklHX0JMS19ERVZfQ01ENjRYIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9UUklGTEVYIGlz
IG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9DWTgyQzY5MyBpcyBub3Qgc2V0CiMgQ09ORklHX0JM
S19ERVZfQ1M1NTIwIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9DUzU1MzAgaXMgbm90IHNl
dAojIENPTkZJR19CTEtfREVWX0NTNTUzNSBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfSFBU
MzRYIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9IUFQzNjYgaXMgbm90IHNldAojIENPTkZJ
R19CTEtfREVWX1NDMTIwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfUElJWCBpcyBub3Qg
c2V0CiMgQ09ORklHX0JMS19ERVZfSVQ4MjFYIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9O
Uzg3NDE1IGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9QREMyMDJYWF9PTEQgaXMgbm90IHNl
dAojIENPTkZJR19CTEtfREVWX1BEQzIwMlhYX05FVyBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19E
RVZfU1ZXS1MgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX1NJSU1BR0UgaXMgbm90IHNldAoj
IENPTkZJR19CTEtfREVWX1NJUzU1MTMgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX1NMQzkw
RTY2IGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9UUk0yOTAgaXMgbm90IHNldApDT05GSUdf
QkxLX0RFVl9WSUE4MkNYWFg9eQojIENPTkZJR19JREVfQVJNIGlzIG5vdCBzZXQKQ09ORklHX0JM
S19ERVZfSURFRE1BPXkKQ09ORklHX0lERURNQV9JVkI9eQpDT05GSUdfSURFRE1BX0FVVE89eQoj
IENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKCiMKIyBTQ1NJIGRldmljZSBzdXBwb3J0CiMK
IyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CkNPTkZJR19TQ1NJPW0KIyBDT05GSUdfU0NT
SV9QUk9DX0ZTIGlzIG5vdCBzZXQKCiMKIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwg
Q0QtUk9NKQojCkNPTkZJR19CTEtfREVWX1NEPW0KIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qg
c2V0CiMgQ09ORklHX0NIUl9ERVZfT1NTVCBpcyBub3Qgc2V0CkNPTkZJR19CTEtfREVWX1NSPW0K
IyBDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1IgaXMgbm90IHNldApDT05GSUdfQ0hSX0RFVl9TRz1t
CiMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKCiMKIyBTb21lIFNDU0kgZGV2aWNlcyAo
ZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKIwojIENPTkZJR19TQ1NJX01V
TFRJX0xVTiBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKIyBD
T05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKCiMKIyBTQ1NJIFRyYW5zcG9ydCBBdHRyaWJ1
dGVzCiMKIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0ZD
X0FUVFJTIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0CiMg
Q09ORklHX1NDU0lfU0FTX0FUVFJTIGlzIG5vdCBzZXQKCiMKIyBTQ1NJIGxvdy1sZXZlbCBkcml2
ZXJzCiMKIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl8zV19Y
WFhYX1JBSUQgaXMgbm90IHNldAojIENPTkZJR19TQ1NJXzNXXzlYWFggaXMgbm90IHNldAojIENP
TkZJR19TQ1NJX0FDQVJEIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NTSV9BQUNSQUlEIGlzIG5vdCBz
ZXQKIyBDT05GSUdfU0NTSV9BSUM3WFhYIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NTSV9BSUM3WFhY
X09MRCBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfQUlDNzlYWCBpcyBub3Qgc2V0CiMgQ09ORklH
X1NDU0lfRFBUX0kyTyBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfQURWQU5TWVMgaXMgbm90IHNl
dAojIENPTkZJR19NRUdBUkFJRF9ORVdHRU4gaXMgbm90IHNldAojIENPTkZJR19NRUdBUkFJRF9M
RUdBQ1kgaXMgbm90IHNldAojIENPTkZJR19NRUdBUkFJRF9TQVMgaXMgbm90IHNldAojIENPTkZJ
R19TQ1NJX1NBVEEgaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0JVU0xPR0lDIGlzIG5vdCBzZXQK
IyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfRUFUQSBpcyBu
b3Qgc2V0CiMgQ09ORklHX1NDU0lfRlVUVVJFX0RPTUFJTiBpcyBub3Qgc2V0CiMgQ09ORklHX1ND
U0lfR0RUSCBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKIyBDT05GSUdf
U0NTSV9JTklUSU8gaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0lOSUExMDAgaXMgbm90IHNldAoj
IENPTkZJR19TQ1NJX1NZTTUzQzhYWF8yIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NTSV9JUFIgaXMg
bm90IHNldAojIENPTkZJR19TQ1NJX1FMT0dJQ18xMjgwIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NT
SV9RTEFfRkMgaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0xQRkMgaXMgbm90IHNldAojIENPTkZJ
R19TQ1NJX0RDMzk1eCBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfREMzOTBUIGlzIG5vdCBzZXQK
IyBDT05GSUdfU0NTSV9OU1AzMiBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90
IHNldAoKIwojIFBDTUNJQSBTQ1NJIGFkYXB0ZXIgc3VwcG9ydAojCiMgQ09ORklHX1BDTUNJQV9B
SEExNTJYIGlzIG5vdCBzZXQKIyBDT05GSUdfUENNQ0lBX0ZET01BSU4gaXMgbm90IHNldAojIENP
TkZJR19QQ01DSUFfTklOSkFfU0NTSSBpcyBub3Qgc2V0CiMgQ09ORklHX1BDTUNJQV9RTE9HSUMg
aXMgbm90IHNldAojIENPTkZJR19QQ01DSUFfU1lNNTNDNTAwIGlzIG5vdCBzZXQKCiMKIyBNdWx0
aS1kZXZpY2Ugc3VwcG9ydCAoUkFJRCBhbmQgTFZNKQojCkNPTkZJR19NRD15CiMgQ09ORklHX0JM
S19ERVZfTUQgaXMgbm90IHNldApDT05GSUdfQkxLX0RFVl9ETT15CkNPTkZJR19ETV9DUllQVD1t
CkNPTkZJR19ETV9TTkFQU0hPVD1tCkNPTkZJR19ETV9NSVJST1I9bQojIENPTkZJR19ETV9aRVJP
IGlzIG5vdCBzZXQKIyBDT05GSUdfRE1fTVVMVElQQVRIIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxL
X0RFVl9ETV9CQlIgaXMgbm90IHNldAoKIwojIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKIwoj
IENPTkZJR19GVVNJT04gaXMgbm90IHNldAojIENPTkZJR19GVVNJT05fU1BJIGlzIG5vdCBzZXQK
IyBDT05GSUdfRlVTSU9OX0ZDIGlzIG5vdCBzZXQKIyBDT05GSUdfRlVTSU9OX1NBUyBpcyBub3Qg
c2V0CgojCiMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAojCiMgQ09ORklHX0lFRUUxMzk0
IGlzIG5vdCBzZXQKCiMKIyBJMk8gZGV2aWNlIHN1cHBvcnQKIwojIENPTkZJR19JMk8gaXMgbm90
IHNldAoKIwojIE5ldHdvcmsgZGV2aWNlIHN1cHBvcnQKIwpDT05GSUdfTkVUREVWSUNFUz15CiMg
Q09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CiMgQ09O
RklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CkNPTkZJR19UVU49bQoKIwojIEFSQ25ldCBkZXZpY2Vz
CiMKIyBDT05GSUdfQVJDTkVUIGlzIG5vdCBzZXQKCiMKIyBQSFkgZGV2aWNlIHN1cHBvcnQKIwoj
IENPTkZJR19QSFlMSUIgaXMgbm90IHNldAoKIwojIEV0aGVybmV0ICgxMCBvciAxMDBNYml0KQoj
CkNPTkZJR19ORVRfRVRIRVJORVQ9eQpDT05GSUdfTUlJPW0KIyBDT05GSUdfSEFQUFlNRUFMIGlz
IG5vdCBzZXQKIyBDT05GSUdfU1VOR0VNIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0FTU0lOSSBpcyBu
b3Qgc2V0CiMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0CgojCiMgVHVsaXAgZmFt
aWx5IG5ldHdvcmsgZGV2aWNlIHN1cHBvcnQKIwojIENPTkZJR19ORVRfVFVMSVAgaXMgbm90IHNl
dAojIENPTkZJR19IUDEwMCBpcyBub3Qgc2V0CkNPTkZJR19ORVRfUENJPXkKIyBDT05GSUdfUENO
RVQzMiBpcyBub3Qgc2V0CiMgQ09ORklHX0FNRDgxMTFfRVRIIGlzIG5vdCBzZXQKIyBDT05GSUdf
QURBUFRFQ19TVEFSRklSRSBpcyBub3Qgc2V0CiMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CiMgQ09O
RklHX0ZPUkNFREVUSCBpcyBub3Qgc2V0CiMgQ09ORklHX0RHUlMgaXMgbm90IHNldAojIENPTkZJ
R19FRVBSTzEwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0UxMDAgaXMgbm90IHNldAojIENPTkZJR19G
RUFMTlggaXMgbm90IHNldAojIENPTkZJR19OQVRTRU1JIGlzIG5vdCBzZXQKIyBDT05GSUdfTkUy
S19QQ0kgaXMgbm90IHNldAojIENPTkZJR184MTM5Q1AgaXMgbm90IHNldAojIENPTkZJR184MTM5
VE9PIGlzIG5vdCBzZXQKIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKIyBDT05GSUdfRVBJQzEw
MCBpcyBub3Qgc2V0CiMgQ09ORklHX1NVTkRBTkNFIGlzIG5vdCBzZXQKIyBDT05GSUdfVExBTiBp
cyBub3Qgc2V0CkNPTkZJR19WSUFfUkhJTkU9bQpDT05GSUdfVklBX1JISU5FX01NSU89eQoKIwoj
IEV0aGVybmV0ICgxMDAwIE1iaXQpCiMKIyBDT05GSUdfQUNFTklDIGlzIG5vdCBzZXQKIyBDT05G
SUdfREwySyBpcyBub3Qgc2V0CiMgQ09ORklHX0UxMDAwIGlzIG5vdCBzZXQKIyBDT05GSUdfTlM4
MzgyMCBpcyBub3Qgc2V0CiMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAojIENPTkZJR19ZRUxM
T1dGSU4gaXMgbm90IHNldAojIENPTkZJR19SODE2OSBpcyBub3Qgc2V0CiMgQ09ORklHX1NJUzE5
MCBpcyBub3Qgc2V0CiMgQ09ORklHX1NLR0UgaXMgbm90IHNldAojIENPTkZJR19TS1kyIGlzIG5v
dCBzZXQKIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBp
cyBub3Qgc2V0CiMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiMgQ09ORklHX0JOWDIgaXMgbm90
IHNldAoKIwojIEV0aGVybmV0ICgxMDAwMCBNYml0KQojCiMgQ09ORklHX0NIRUxTSU9fVDEgaXMg
bm90IHNldAojIENPTkZJR19JWEdCIGlzIG5vdCBzZXQKIyBDT05GSUdfUzJJTyBpcyBub3Qgc2V0
CgojCiMgVG9rZW4gUmluZyBkZXZpY2VzCiMKIyBDT05GSUdfVFIgaXMgbm90IHNldAoKIwojIFdp
cmVsZXNzIExBTiAobm9uLWhhbXJhZGlvKQojCkNPTkZJR19ORVRfUkFESU89eQojIENPTkZJR19O
RVRfV0lSRUxFU1NfUlRORVRMSU5LIGlzIG5vdCBzZXQKCiMKIyBPYnNvbGV0ZSBXaXJlbGVzcyBj
YXJkcyBzdXBwb3J0IChwcmUtODAyLjExKQojCiMgQ09ORklHX1NUUklQIGlzIG5vdCBzZXQKIyBD
T05GSUdfUENNQ0lBX1dBVkVMQU4gaXMgbm90IHNldAojIENPTkZJR19QQ01DSUFfTkVUV0FWRSBp
cyBub3Qgc2V0CgojCiMgV2lyZWxlc3MgODAyLjExIEZyZXF1ZW5jeSBIb3BwaW5nIGNhcmRzIHN1
cHBvcnQKIwojIENPTkZJR19QQ01DSUFfUkFZQ1MgaXMgbm90IHNldAoKIwojIFdpcmVsZXNzIDgw
Mi4xMWIgSVNBL1BDSSBjYXJkcyBzdXBwb3J0CiMKIyBDT05GSUdfSVBXMjEwMCBpcyBub3Qgc2V0
CiMgQ09ORklHX0lQVzIyMDAgaXMgbm90IHNldAojIENPTkZJR19BSVJPIGlzIG5vdCBzZXQKIyBD
T05GSUdfSEVSTUVTIGlzIG5vdCBzZXQKIyBDT05GSUdfQVRNRUwgaXMgbm90IHNldAoKIwojIFdp
cmVsZXNzIDgwMi4xMWIgUGNtY2lhL0NhcmRidXMgY2FyZHMgc3VwcG9ydAojCiMgQ09ORklHX0FJ
Uk9fQ1MgaXMgbm90IHNldAojIENPTkZJR19QQ01DSUFfV0wzNTAxIGlzIG5vdCBzZXQKCiMKIyBQ
cmlzbSBHVC9EdWV0dGUgODAyLjExKGEvYi9nKSBQQ0kvQ2FyZGJ1cyBzdXBwb3J0CiMKIyBDT05G
SUdfUFJJU001NCBpcyBub3Qgc2V0CiMgQ09ORklHX0hPU1RBUCBpcyBub3Qgc2V0CkNPTkZJR19O
RVRfV0lSRUxFU1M9eQoKIwojIFBDTUNJQSBuZXR3b3JrIGRldmljZSBzdXBwb3J0CiMKIyBDT05G
SUdfTkVUX1BDTUNJQSBpcyBub3Qgc2V0CgojCiMgV2FuIGludGVyZmFjZXMKIwojIENPTkZJR19X
QU4gaXMgbm90IHNldAojIENPTkZJR19GRERJIGlzIG5vdCBzZXQKIyBDT05GSUdfSElQUEkgaXMg
bm90IHNldApDT05GSUdfUFBQPW0KIyBDT05GSUdfUFBQX01VTFRJTElOSyBpcyBub3Qgc2V0CiMg
Q09ORklHX1BQUF9GSUxURVIgaXMgbm90IHNldApDT05GSUdfUFBQX0FTWU5DPW0KIyBDT05GSUdf
UFBQX1NZTkNfVFRZIGlzIG5vdCBzZXQKIyBDT05GSUdfUFBQX0RFRkxBVEUgaXMgbm90IHNldAoj
IENPTkZJR19QUFBfQlNEQ09NUCBpcyBub3Qgc2V0CiMgQ09ORklHX1BQUF9NUFBFIGlzIG5vdCBz
ZXQKQ09ORklHX1BQUE9FPW0KIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9G
QyBpcyBub3Qgc2V0CiMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CiMgQ09ORklHX05FVENPTlNP
TEUgaXMgbm90IHNldAojIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX1BP
TExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CgojCiMgSVNETiBzdWJzeXN0ZW0KIwojIENPTkZJR19J
U0ROIGlzIG5vdCBzZXQKCiMKIyBUZWxlcGhvbnkgU3VwcG9ydAojCiMgQ09ORklHX1BIT05FIGlz
IG5vdCBzZXQKCiMKIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAojCkNPTkZJR19JTlBVVD15CgojCiMg
VXNlcmxhbmQgaW50ZXJmYWNlcwojCkNPTkZJR19JTlBVVF9NT1VTRURFVj15CkNPTkZJR19JTlBV
VF9NT1VTRURFVl9QU0FVWD15CkNPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CkNP
TkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlz
IG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfVFNERVYgaXMgbm90IHNldApDT05GSUdfSU5QVVRfRVZE
RVY9bQojIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CgojCiMgSW5wdXQgRGV2aWNlIERy
aXZlcnMKIwpDT05GSUdfSU5QVVRfS0VZQk9BUkQ9eQpDT05GSUdfS0VZQk9BUkRfQVRLQkQ9eQoj
IENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAojIENPTkZJR19LRVlCT0FSRF9MS0tC
RCBpcyBub3Qgc2V0CiMgQ09ORklHX0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKIyBDT05GSUdf
S0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKQ09ORklHX0lOUFVUX01PVVNFPXkKQ09ORklHX01P
VVNFX1BTMj1tCiMgQ09ORklHX01PVVNFX1NFUklBTCBpcyBub3Qgc2V0CiMgQ09ORklHX01PVVNF
X1ZTWFhYQUEgaXMgbm90IHNldAojIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CiMg
Q09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKQ09ORklHX0lOUFVUX01JU0M9eQpD
T05GSUdfSU5QVVRfUENTUEtSPW0KIyBDT05GSUdfSU5QVVRfV0lTVFJPTl9CVE5TIGlzIG5vdCBz
ZXQKIyBDT05GSUdfSU5QVVRfVUlOUFVUIGlzIG5vdCBzZXQKCiMKIyBIYXJkd2FyZSBJL08gcG9y
dHMKIwpDT05GSUdfU0VSSU89eQpDT05GSUdfU0VSSU9fSTgwNDI9eQojIENPTkZJR19TRVJJT19T
RVJQT1JUIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VSSU9fQ1Q4MkM3MTAgaXMgbm90IHNldAojIENP
TkZJR19TRVJJT19QQ0lQUzIgaXMgbm90IHNldApDT05GSUdfU0VSSU9fTElCUFMyPXkKIyBDT05G
SUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAoKIwoj
IENoYXJhY3RlciBkZXZpY2VzCiMKQ09ORklHX1ZUPXkKQ09ORklHX1ZUX0NPTlNPTEU9eQpDT05G
SUdfSFdfQ09OU09MRT15CiMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0Cgoj
CiMgU2VyaWFsIGRyaXZlcnMKIwojIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CgojCiMg
Tm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAojCiMgQ09ORklHX1NFUklBTF9KU00gaXMgbm90
IHNldApDT05GSUdfVU5JWDk4X1BUWVM9eQojIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0
CgojCiMgSVBNSQojCiMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CgojCiMgV2F0Y2hk
b2cgQ2FyZHMKIwojIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CiMgQ09ORklHX0hXX1JBTkRP
TSBpcyBub3Qgc2V0CiMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKQ09ORklHX1JUQz1tCiMgQ09O
RklHX0dFTl9SVEMgaXMgbm90IHNldAojIENPTkZJR19EVExLIGlzIG5vdCBzZXQKIyBDT05GSUdf
UjM5NjQgaXMgbm90IHNldAojIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiMgQ09ORklHX1NP
TllQSSBpcyBub3Qgc2V0CgojCiMgRnRhcGUsIHRoZSBmbG9wcHkgdGFwZSBkZXZpY2UgZHJpdmVy
CiMKIyBDT05GSUdfRlRBUEUgaXMgbm90IHNldApDT05GSUdfQUdQPW0KIyBDT05GSUdfQUdQX0FM
SSBpcyBub3Qgc2V0CiMgQ09ORklHX0FHUF9BVEkgaXMgbm90IHNldAojIENPTkZJR19BR1BfQU1E
IGlzIG5vdCBzZXQKIyBDT05GSUdfQUdQX0FNRDY0IGlzIG5vdCBzZXQKIyBDT05GSUdfQUdQX0lO
VEVMIGlzIG5vdCBzZXQKIyBDT05GSUdfQUdQX05WSURJQSBpcyBub3Qgc2V0CiMgQ09ORklHX0FH
UF9TSVMgaXMgbm90IHNldAojIENPTkZJR19BR1BfU1dPUktTIGlzIG5vdCBzZXQKQ09ORklHX0FH
UF9WSUE9bQojIENPTkZJR19BR1BfRUZGSUNFT04gaXMgbm90IHNldApDT05GSUdfRFJNPW0KIyBD
T05GSUdfRFJNX1RERlggaXMgbm90IHNldAojIENPTkZJR19EUk1fUjEyOCBpcyBub3Qgc2V0CiMg
Q09ORklHX0RSTV9SQURFT04gaXMgbm90IHNldAojIENPTkZJR19EUk1fTUdBIGlzIG5vdCBzZXQK
IyBDT05GSUdfRFJNX1NJUyBpcyBub3Qgc2V0CkNPTkZJR19EUk1fVklBPW0KIyBDT05GSUdfRFJN
X1NBVkFHRSBpcyBub3Qgc2V0CgojCiMgUENNQ0lBIGNoYXJhY3RlciBkZXZpY2VzCiMKIyBDT05G
SUdfU1lOQ0xJTktfQ1MgaXMgbm90IHNldAojIENPTkZJR19DQVJETUFOXzQwMDAgaXMgbm90IHNl
dAojIENPTkZJR19DQVJETUFOXzQwNDAgaXMgbm90IHNldAojIENPTkZJR19NV0FWRSBpcyBub3Qg
c2V0CiMgQ09ORklHX0NTNTUzNV9HUElPIGlzIG5vdCBzZXQKIyBDT05GSUdfUkFXX0RSSVZFUiBp
cyBub3Qgc2V0CkNPTkZJR19IUEVUPXkKQ09ORklHX0hQRVRfUlRDX0lSUT15CkNPTkZJR19IUEVU
X01NQVA9eQojIENPTkZJR19IQU5HQ0hFQ0tfVElNRVIgaXMgbm90IHNldAoKIwojIFRQTSBkZXZp
Y2VzCiMKIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiMgQ09ORklHX1RFTENMT0NLIGlzIG5v
dCBzZXQKCiMKIyBJMkMgc3VwcG9ydAojCiMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CgojCiMgU1BJ
IHN1cHBvcnQKIwojIENPTkZJR19TUEkgaXMgbm90IHNldAojIENPTkZJR19TUElfTUFTVEVSIGlz
IG5vdCBzZXQKCiMKIyBEYWxsYXMncyAxLXdpcmUgYnVzCiMKIyBDT05GSUdfVzEgaXMgbm90IHNl
dAoKIwojIEhhcmR3YXJlIE1vbml0b3Jpbmcgc3VwcG9ydAojCiMgQ09ORklHX0hXTU9OIGlzIG5v
dCBzZXQKIyBDT05GSUdfSFdNT05fVklEIGlzIG5vdCBzZXQKCiMKIyBNaXNjIGRldmljZXMKIwoj
IENPTkZJR19JQk1fQVNNIGlzIG5vdCBzZXQKCiMKIyBNdWx0aW1lZGlhIGRldmljZXMKIwojIENP
TkZJR19WSURFT19ERVYgaXMgbm90IHNldApDT05GSUdfVklERU9fVjRMMj15CgojCiMgRGlnaXRh
bCBWaWRlbyBCcm9hZGNhc3RpbmcgRGV2aWNlcwojCiMgQ09ORklHX0RWQiBpcyBub3Qgc2V0CiMg
Q09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAoKIwojIEdyYXBoaWNzIHN1cHBvcnQKIwpDT05G
SUdfRkI9eQpDT05GSUdfRkJfQ0ZCX0ZJTExSRUNUPXkKQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15
CkNPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNl
dAojIENPTkZJR19GQl9GSVJNV0FSRV9FRElEIGlzIG5vdCBzZXQKQ09ORklHX0ZCX01PREVfSEVM
UEVSUz15CkNPTkZJR19GQl9USUxFQkxJVFRJTkc9eQojIENPTkZJR19GQl9DSVJSVVMgaXMgbm90
IHNldAojIENPTkZJR19GQl9QTTIgaXMgbm90IHNldAojIENPTkZJR19GQl9DWUJFUjIwMDAgaXMg
bm90IHNldAojIENPTkZJR19GQl9BUkMgaXMgbm90IHNldAojIENPTkZJR19GQl9BU0lMSUFOVCBp
cyBub3Qgc2V0CiMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKIyBDT05GSUdfRkJfVkdBMTYg
aXMgbm90IHNldApDT05GSUdfRkJfVkVTQT15CkNPTkZJR19GQl9WRVNBX1NURD15CiMgQ09ORklH
X0ZCX1ZFU0FfVE5HIGlzIG5vdCBzZXQKQ09ORklHX1ZJREVPX1NFTEVDVD15CiMgQ09ORklHX0ZC
X0hHQSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKIyBDT05GSUdf
RkJfTlZJRElBIGlzIG5vdCBzZXQKIyBDT05GSUdfRkJfUklWQSBpcyBub3Qgc2V0CiMgQ09ORklH
X0ZCX0k4MTAgaXMgbm90IHNldAojIENPTkZJR19GQl9JTlRFTCBpcyBub3Qgc2V0CiMgQ09ORklH
X0ZCX01BVFJPWCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX1JBREVPTiBpcyBub3Qgc2V0CiMgQ09O
RklHX0ZCX0FUWTEyOCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0CiMgQ09O
RklHX0ZCX1NBVkFHRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX1NJUyBpcyBub3Qgc2V0CiMgQ09O
RklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKIyBDT05GSUdfRkJfS1lSTyBpcyBub3Qgc2V0CiMg
Q09ORklHX0ZCXzNERlggaXMgbm90IHNldAojIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQK
IyBDT05GSUdfRkJfQ1lCTEEgaXMgbm90IHNldAojIENPTkZJR19GQl9UUklERU5UIGlzIG5vdCBz
ZXQKIyBDT05GSUdfRkJfR0VPREUgaXMgbm90IHNldAojIENPTkZJR19GQl9WSVJUVUFMIGlzIG5v
dCBzZXQKCiMKIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKIwpDT05GSUdfVkdBX0NP
TlNPTEU9eQpDT05GSUdfVkdBQ09OX1NPRlRfU0NST0xMQkFDSz15CkNPTkZJR19WR0FDT05fU09G
VF9TQ1JPTExCQUNLX1NJWkU9NjQKQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQpDT05GSUdfRlJBTUVC
VUZGRVJfQ09OU09MRT1tCiMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT04gaXMg
bm90IHNldAojIENPTkZJR19GT05UUyBpcyBub3Qgc2V0CkNPTkZJR19GT05UXzh4OD15CkNPTkZJ
R19GT05UXzh4MTY9eQoKIwojIExvZ28gY29uZmlndXJhdGlvbgojCkNPTkZJR19MT0dPPXkKIyBD
T05GSUdfTE9HT19MSU5VWF9NT05PIGlzIG5vdCBzZXQKIyBDT05GSUdfTE9HT19MSU5VWF9WR0Ex
NiBpcyBub3Qgc2V0CkNPTkZJR19MT0dPX0xJTlVYX0NMVVQyMjQ9eQojIENPTkZJR19CQUNLTElH
SFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAoKIwojIFNwZWFrdXAgY29uc29sZSBzcGVlY2gKIwoj
IENPTkZJR19TUEVBS1VQIGlzIG5vdCBzZXQKQ09ORklHX1NQRUFLVVBfREVGQVVMVD0ibm9uZSIK
CiMKIyBTb3VuZAojCkNPTkZJR19TT1VORD1tCgojCiMgQWR2YW5jZWQgTGludXggU291bmQgQXJj
aGl0ZWN0dXJlCiMKIyBDT05GSUdfU05EIGlzIG5vdCBzZXQKCiMKIyBPcGVuIFNvdW5kIFN5c3Rl
bQojCiMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKCiMKIyBVU0Igc3VwcG9ydAojCkNP
TkZJR19VU0JfQVJDSF9IQVNfSENEPXkKQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKQ09ORklH
X1VTQl9BUkNIX0hBU19FSENJPXkKQ09ORklHX1VTQj1tCiMgQ09ORklHX1VTQl9ERUJVRyBpcyBu
b3Qgc2V0CgojCiMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwojCkNPTkZJR19VU0JfREVWSUNF
RlM9eQojIENPTkZJR19VU0JfQkFORFdJRFRIIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0RZTkFN
SUNfTUlOT1JTIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9TVVNQRU5EPXkKIyBDT05GSUdfVVNCX09U
RyBpcyBub3Qgc2V0CgojCiMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiMKQ09ORklHX1VT
Ql9FSENJX0hDRD1tCiMgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyBpcyBub3Qgc2V0CiMgQ09O
RklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0lTUDExNlhf
SENEIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX09IQ0lfSENEIGlzIG5vdCBzZXQKQ09ORklHX1VT
Ql9VSENJX0hDRD1tCiMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAoKIwojIFVTQiBE
ZXZpY2UgQ2xhc3MgZHJpdmVycwojCiMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldApDT05GSUdf
VVNCX1BSSU5URVI9bQoKIwojIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdT
Q1NJIGRpc2sgc3VwcG9ydCcKIwoKIwojIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9S
QUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KIwpDT05GSUdfVVNCX1NUT1JBR0U9bQojIENP
TkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9TVE9SQUdFX0RB
VEFGQUIgaXMgbm90IHNldAojIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIGlzIG5vdCBzZXQK
IyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1NUT1JB
R0VfRFBDTSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQK
IyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1NUT1JB
R0VfU0REUjU1IGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90
IHNldAojIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAojIENPTkZJR19VU0Jf
TElCVVNVQUwgaXMgbm90IHNldAoKIwojIFVTQiBJbnB1dCBEZXZpY2VzCiMKQ09ORklHX1VTQl9I
SUQ9bQpDT05GSUdfVVNCX0hJRElOUFVUPXkKIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9P
SyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0CkNPTkZJR19VU0JfSElEREVW
PXkKCiMKIyBVU0IgSElEIEJvb3QgUHJvdG9jb2wgZHJpdmVycwojCiMgQ09ORklHX1VTQl9LQkQg
aXMgbm90IHNldAojIENPTkZJR19VU0JfTU9VU0UgaXMgbm90IHNldAojIENPTkZJR19VU0JfQUlQ
VEVLIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1dBQ09NIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNC
X0FDRUNBRCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9LQlRBQiBpcyBub3Qgc2V0CiMgQ09ORklH
X1VTQl9QT1dFUk1BVEUgaXMgbm90IHNldAojIENPTkZJR19VU0JfVE9VQ0hTQ1JFRU4gaXMgbm90
IHNldAojIENPTkZJR19VU0JfWUVBTElOSyBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9YUEFEIGlz
IG5vdCBzZXQKIyBDT05GSUdfVVNCX0FUSV9SRU1PVEUgaXMgbm90IHNldAojIENPTkZJR19VU0Jf
QVRJX1JFTU9URTIgaXMgbm90IHNldAojIENPTkZJR19VU0JfS0VZU1BBTl9SRU1PVEUgaXMgbm90
IHNldAojIENPTkZJR19VU0JfQVBQTEVUT1VDSCBpcyBub3Qgc2V0CgojCiMgVVNCIEltYWdpbmcg
ZGV2aWNlcwojCiMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAojIENPTkZJR19VU0JfTUlD
Uk9URUsgaXMgbm90IHNldAoKIwojIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCiMKIyBDT05GSUdfVVNC
X0NBVEMgaXMgbm90IHNldAojIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKIyBDT05GSUdf
VVNCX1BFR0FTVVMgaXMgbm90IHNldAojIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0CiMg
Q09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAojIENPTkZJR19VU0JfWkQxMjAxIGlzIG5vdCBz
ZXQKIyBDT05GSUdfVVNCX01PTiBpcyBub3Qgc2V0CgojCiMgVVNCIHBvcnQgZHJpdmVycwojCgoj
CiMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAojCiMgQ09ORklHX1VTQl9TRVJJQUwgaXMg
bm90IHNldAoKIwojIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKIwojIENPTkZJR19VU0JfRU1J
NjIgaXMgbm90IHNldAojIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAojIENPTkZJR19VU0Jf
QVVFUlNXQUxEIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0CiMgQ09O
RklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAojIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQK
IyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBz
ZXQKIyBDT05GSUdfVVNCX1BISURHRVRLSVQgaXMgbm90IHNldAojIENPTkZJR19VU0JfUEhJREdF
VFNFUlZPIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAojIENPTkZJ
R19VU0JfU0lTVVNCVkdBIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKIyBD
T05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAoKIwojIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAojCgoj
CiMgVVNCIEdhZGdldCBTdXBwb3J0CiMKIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0Cgoj
CiMgTU1DL1NEIENhcmQgc3VwcG9ydAojCiMgQ09ORklHX01NQyBpcyBub3Qgc2V0CgojCiMgTEVE
IGRldmljZXMKIwojIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CgojCiMgTEVEIGRyaXZlcnMK
IwoKIwojIExFRCBUcmlnZ2VycwojCgojCiMgSW5maW5pQmFuZCBzdXBwb3J0CiMKIyBDT05GSUdf
SU5GSU5JQkFORCBpcyBub3Qgc2V0CgojCiMgRURBQyAtIGVycm9yIGRldGVjdGlvbiBhbmQgcmVw
b3J0aW5nIChSQVMpIChFWFBFUklNRU5UQUwpCiMKIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0Cgoj
CiMgUmVhbCBUaW1lIENsb2NrCiMKQ09ORklHX1JUQ19MSUI9bQpDT05GSUdfUlRDX0NMQVNTPW0K
CiMKIyBSVEMgaW50ZXJmYWNlcwojCkNPTkZJR19SVENfSU5URl9TWVNGUz1tCkNPTkZJR19SVENf
SU5URl9QUk9DPW0KQ09ORklHX1JUQ19JTlRGX0RFVj1tCgojCiMgUlRDIGRyaXZlcnMKIwpDT05G
SUdfUlRDX0RSVl9NNDhUODY9bQpDT05GSUdfUlRDX0RSVl9URVNUPW0KCiMKIyBGaWxlIHN5c3Rl
bXMKIwpDT05GSUdfRVhUMl9GUz15CkNPTkZJR19FWFQyX0ZTX1hBVFRSPXkKQ09ORklHX0VYVDJf
RlNfUE9TSVhfQUNMPXkKIyBDT05GSUdfRVhUMl9GU19TRUNVUklUWSBpcyBub3Qgc2V0CiMgQ09O
RklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKQ09ORklHX0VYVDNfRlM9bQpDT05GSUdfRVhUM19G
U19YQVRUUj15CkNPTkZJR19FWFQzX0ZTX1BPU0lYX0FDTD15CiMgQ09ORklHX0VYVDNfRlNfU0VD
VVJJVFkgaXMgbm90IHNldApDT05GSUdfSkJEPW0KIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBz
ZXQKQ09ORklHX0ZTX01CQ0FDSEU9eQpDT05GSUdfUkVJU0VSRlNfRlM9bQojIENPTkZJR19SRUlT
RVJGU19DSEVDSyBpcyBub3Qgc2V0CiMgQ09ORklHX1JFSVNFUkZTX1BST0NfSU5GTyBpcyBub3Qg
c2V0CkNPTkZJR19SRUlTRVJGU19GU19YQVRUUj15CkNPTkZJR19SRUlTRVJGU19GU19QT1NJWF9B
Q0w9eQojIENPTkZJR19SRUlTRVJGU19GU19TRUNVUklUWSBpcyBub3Qgc2V0CkNPTkZJR19KRlNf
RlM9bQpDT05GSUdfSkZTX1BPU0lYX0FDTD15CiMgQ09ORklHX0pGU19TRUNVUklUWSBpcyBub3Qg
c2V0CiMgQ09ORklHX0pGU19ERUJVRyBpcyBub3Qgc2V0CiMgQ09ORklHX0pGU19TVEFUSVNUSUNT
IGlzIG5vdCBzZXQKQ09ORklHX0ZTX1BPU0lYX0FDTD15CkNPTkZJR19YRlNfRlM9eQpDT05GSUdf
WEZTX0VYUE9SVD15CiMgQ09ORklHX1hGU19RVU9UQSBpcyBub3Qgc2V0CiMgQ09ORklHX1hGU19T
RUNVUklUWSBpcyBub3Qgc2V0CkNPTkZJR19YRlNfUE9TSVhfQUNMPXkKIyBDT05GSUdfWEZTX1JU
IGlzIG5vdCBzZXQKIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAojIENPTkZJR19NSU5JWF9G
UyBpcyBub3Qgc2V0CiMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKQ09ORklHX0lOT1RJRlk9
eQojIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CkNPTkZJR19ETk9USUZZPXkKIyBDT05GSUdfQVVU
T0ZTX0ZTIGlzIG5vdCBzZXQKQ09ORklHX0FVVE9GUzRfRlM9bQpDT05GSUdfRlVTRV9GUz1tCgoj
CiMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcwojCkNPTkZJR19JU085NjYwX0ZTPW0KQ09ORklHX0pP
TElFVD15CkNPTkZJR19aSVNPRlM9eQpDT05GSUdfWklTT0ZTX0ZTPW0KQ09ORklHX1VERl9GUz1t
CkNPTkZJR19VREZfTkxTPXkKCiMKIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCiMKQ09ORklHX0ZB
VF9GUz1tCiMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKQ09ORklHX1ZGQVRfRlM9bQpDT05G
SUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9ODUwCkNPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9
Imlzbzg4NTktMSIKIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CgojCiMgUHNldWRvIGZpbGVz
eXN0ZW1zCiMKQ09ORklHX1BST0NfRlM9eQpDT05GSUdfUFJPQ19LQ09SRT15CkNPTkZJR19TWVNG
Uz15CkNPTkZJR19UTVBGUz15CiMgQ09ORklHX0hVR0VUTEJGUyBpcyBub3Qgc2V0CiMgQ09ORklH
X0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CkNPTkZJR19SQU1GUz15CkNPTkZJR19DT05GSUdGU19G
Uz1tCgojCiMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcwojCiMgQ09ORklHX0FERlNfRlMgaXMg
bm90IHNldAojIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfSEZTX0ZTIGlzIG5v
dCBzZXQKIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0JFRlNfRlMgaXMg
bm90IHNldAojIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAojIENPTkZJR19FRlNfRlMgaXMgbm90
IHNldAojIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAojIENPTkZJR19TUVVBU0hGUyBpcyBub3Qg
c2V0CiMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAojIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBz
ZXQKIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qg
c2V0CiMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CgojCiMgTmV0d29yayBGaWxlIFN5c3RlbXMK
IwpDT05GSUdfTkZTX0ZTPW0KQ09ORklHX05GU19WMz15CkNPTkZJR19ORlNfVjNfQUNMPXkKIyBD
T05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQK
Q09ORklHX05GU0Q9bQpDT05GSUdfTkZTRF9WMl9BQ0w9eQpDT05GSUdfTkZTRF9WMz15CkNPTkZJ
R19ORlNEX1YzX0FDTD15CiMgQ09ORklHX05GU0RfVjQgaXMgbm90IHNldApDT05GSUdfTkZTRF9U
Q1A9eQpDT05GSUdfTE9DS0Q9bQpDT05GSUdfTE9DS0RfVjQ9eQpDT05GSUdfRVhQT1JURlM9eQpD
T05GSUdfTkZTX0FDTF9TVVBQT1JUPW0KQ09ORklHX05GU19DT01NT049eQpDT05GSUdfU1VOUlBD
PW0KIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKIyBDT05GSUdfUlBDU0VDX0dT
U19TUEtNMyBpcyBub3Qgc2V0CiMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CkNPTkZJR19DSUZT
PW0KIyBDT05GSUdfQ0lGU19TVEFUUyBpcyBub3Qgc2V0CkNPTkZJR19DSUZTX1hBVFRSPXkKQ09O
RklHX0NJRlNfUE9TSVg9eQojIENPTkZJR19DSUZTX0VYUEVSSU1FTlRBTCBpcyBub3Qgc2V0CiMg
Q09ORklHX05DUF9GUyBpcyBub3Qgc2V0CkNPTkZJR19DT0RBX0ZTPW0KIyBDT05GSUdfQ09EQV9G
U19PTERfQVBJIGlzIG5vdCBzZXQKIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdf
OVBfRlMgaXMgbm90IHNldAoKIwojIFBhcnRpdGlvbiBUeXBlcwojCiMgQ09ORklHX1BBUlRJVElP
Tl9BRFZBTkNFRCBpcyBub3Qgc2V0CkNPTkZJR19NU0RPU19QQVJUSVRJT049eQoKIwojIE5hdGl2
ZSBMYW5ndWFnZSBTdXBwb3J0CiMKQ09ORklHX05MUz1tCkNPTkZJR19OTFNfREVGQVVMVD0iaXNv
ODg1OS0xIgpDT05GSUdfTkxTX0NPREVQQUdFXzQzNz1tCiMgQ09ORklHX05MU19DT0RFUEFHRV83
MzcgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKQ09ORklH
X05MU19DT0RFUEFHRV84NTA9bQojIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQK
IyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFH
RV84NTcgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKIyBD
T05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV84
NjIgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKIyBDT05G
SUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV84NjUg
aXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKIyBDT05GSUdf
TkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMg
bm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKIyBDT05GSUdfTkxT
X0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90
IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0lT
Tzg4NTlfOCBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQK
IyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldApDT05GSUdfTkxTX0FTQ0lJPW0K
Q09ORklHX05MU19JU084ODU5XzE9bQojIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQK
IyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19JU084ODU5XzQg
aXMgbm90IHNldAojIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxT
X0lTTzg4NTlfNiBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAoj
IENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMg
aXMgbm90IHNldAojIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CkNPTkZJR19OTFNf
SVNPODg1OV8xNT1tCiMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAojIENPTkZJR19OTFNf
S09JOF9VIGlzIG5vdCBzZXQKQ09ORklHX05MU19VVEY4PW0KCiMKIyBJbnN0cnVtZW50YXRpb24g
U3VwcG9ydAojCiMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CiMgQ09ORklHX0tQUk9CRVMg
aXMgbm90IHNldAoKIwojIEtlcm5lbCBoYWNraW5nCiMKIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMg
bm90IHNldApDT05GSUdfTUFHSUNfU1lTUlE9eQpDT05GSUdfREVCVUdfS0VSTkVMPXkKQ09ORklH
X0xPR19CVUZfU0hJRlQ9MTQKQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKIyBDT05GSUdfU0NI
RURTVEFUUyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAojIENPTkZJ
R19ERUJVR19QUkVFTVBUIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBub3Qg
c2V0CiMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfU1BJ
TkxPQ0tfU0xFRVAgaXMgbm90IHNldAojIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQK
Q09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQojIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQK
IyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAojIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0
CiMgQ09ORklHX0ZSQU1FX1BPSU5URVIgaXMgbm90IHNldAojIENPTkZJR19VTldJTkRfSU5GTyBp
cyBub3Qgc2V0CiMgQ09ORklHX0ZPUkNFRF9JTkxJTklORyBpcyBub3Qgc2V0CiMgQ09ORklHX1JD
VV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldApDT05GSUdfRUFSTFlfUFJJTlRLPXkKIyBDT05GSUdf
REVCVUdfU1RBQ0tPVkVSRkxPVyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdF
IGlzIG5vdCBzZXQKQ09ORklHX1NUQUNLX0JBQ0tUUkFDRV9DT0xTPTIKCiMKIyBQYWdlIGFsbG9j
IGRlYnVnIGlzIGluY29tcGF0aWJsZSB3aXRoIFNvZnR3YXJlIFN1c3BlbmQgb24gaTM4NgojCiMg
Q09ORklHX0RFQlVHX1JPREFUQSBpcyBub3Qgc2V0CkNPTkZJR180S1NUQUNLUz15CkNPTkZJR19Y
ODZfRklORF9TTVBfQ09ORklHPXkKQ09ORklHX1g4Nl9NUFBBUlNFPXkKQ09ORklHX0RPVUJMRUZB
VUxUPXkKCiMKIyBTZWN1cml0eSBvcHRpb25zCiMKIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CkNP
TkZJR19TRUNVUklUWT15CiMgQ09ORklHX1NFQ1VSSVRZX05FVFdPUksgaXMgbm90IHNldApDT05G
SUdfU0VDVVJJVFlfQ0FQQUJJTElUSUVTPW0KIyBDT05GSUdfU0VDVVJJVFlfUk9PVFBMVUcgaXMg
bm90IHNldAojIENPTkZJR19TRUNVUklUWV9TRUNMVkwgaXMgbm90IHNldAoKIwojIENyeXB0b2dy
YXBoaWMgb3B0aW9ucwojCkNPTkZJR19DUllQVE89eQojIENPTkZJR19DUllQVE9fSE1BQyBpcyBu
b3Qgc2V0CiMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX01E
NCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAojIENPTkZJR19DUllQ
VE9fU0hBMSBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAojIENP
TkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5v
dCBzZXQKIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19E
RVMgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAojIENPTkZJ
R19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5v
dCBzZXQKIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19BRVNf
NTg2IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKIyBDT05GSUdf
Q1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CiMg
Q09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBu
b3Qgc2V0CiMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9f
REVGTEFURSBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fTFpGPXkKIyBDT05GSUdfQ1JZUFRPX01J
Q0hBRUxfTUlDIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiMg
Q09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKCiMKIyBIYXJkd2FyZSBjcnlwdG8gZGV2aWNl
cwojCiMgQ09ORklHX0NSWVBUT19ERVZfUEFETE9DSyBpcyBub3Qgc2V0CgojCiMgTGlicmFyeSBy
b3V0aW5lcwojCkNPTkZJR19DUkNfQ0NJVFQ9bQojIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CkNP
TkZJR19DUkMzMj15CiMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CkNPTkZJR19EWU5fUEFH
RUZMQUdTPXkKQ09ORklHX1pMSUJfSU5GTEFURT1tCkNPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkK
Q09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKQ09ORklHX1g4Nl9CSU9TX1JFQk9PVD15CkNPTkZJ
R19LVElNRV9TQ0FMQVI9eQo=
</data>        

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98549</attachid>
            <date>2006-10-01 13:12 0000</date>
            <desc>modules_gentoo.dash-compatible.patch</desc>
            <filename>modules_gentoo.dash-compatible.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIGhpYmVybmF0ZS1zY3JpcHQtMS45My9zY3JpcHRsZXRzLmQvbW9kdWxlc19nZW50b28JMjAw
Ni0wNy0xMiAxMjoxNTo1MS4wMDAwMDAwMDAgKzAyMDAKKysrIC91c3Ivc2hhcmUvaGliZXJuYXRl
L3NjcmlwdGxldHMuZC9tb2R1bGVzX2dlbnRvbwkyMDA2LTEwLTAxIDIxOjUxOjQwLjAwMDAwMDAw
MCArMDIwMApAQCAtNCwxNSArNCw2MCBAQAogQWRkQ29uZmlnSGFuZGxlciBHZW50b29Nb2R1bGVz
T3B0aW9ucwogQWRkQ29uZmlnSGVscCAiR2VudG9vTW9kdWxlc0F1dG9sb2FkIDxib29sZWFuPiIg
IlRyeSB0byBsb2FkIGRlZmF1bHQgbW9kdWxlcyBhZnRlciByZXN1bWluZyAoZnJvbSAvZXRjL21v
ZHVsZXMuYXV0b2xvYWQpIgogCi1HZW50b29Nb2R1bGVzQXV0b2xvYWQoKSB7Ci0gICAgWyB4IiRN
T0RVTEVTX0dFTlRPT19BVVRPTE9BRCIgPSAieDEiIF0gfHwgcmV0dXJuIDAKKyMgTmVjZXNzYXJ5
IGhlbHBlcnMgdG8gcGFyc2Uvd29yayB3aXRoIC9ldGMvbW9kdWxlcy5hdXRvbG9hZC5kL2tlcm5l
bC0yLj8KK0tWX21ham9yKCkgeworICAgIHRlc3QgLXogIiQxIiAmJiByZXR1cm4gMQorCisgICAg
bG9jYWwgS1Y9IiRAIgorICAgIGVjaG8gIiR7S1YlJS4qfSIKK30KKworS1ZfbWlub3IoKSB7Cisg
ICAgdGVzdCAteiAiJDEiICYmIHJldHVybiAxCisKKyAgICBsb2NhbCBLVj0iJEAiCisgICAgS1Y9
IiR7S1YjKi59IgorICAgIGVjaG8gIiR7S1YlJS4qfSIKK30KKworS1ZfbWljcm8oKSB7CisgICAg
dGVzdCAteiAiJDEiICYmIHJldHVybiAxCisKKyAgICBsb2NhbCBLVj0iJEAiCisgICAgS1Y9IiR7
S1YjKi4qLn0iCisgICAgcj1gZWNobyAiJEtWIiB8IHNlZCAtbiAncy9eXChbMC05XVwrXClbXjAt
OV0uKiQvXDEvcCdgCisgICAgI3ZlY2hvIDEgImluIEtWX21pY3JvIEtWPSRLViByPSRyIEA9IiAi
JEAiICIgLi4uLi4uLi4uLi4uLi4uLiIKKyAgICBlY2hvICRyCit9CisKK2dldF9LVigpIHsKKyAg
ICB0ZXN0IC16ICIke19SQ19HRVRfS1ZfQ0FDSEV9IiAmJiBfUkNfR0VUX0tWX0NBQ0hFPWB1bmFt
ZSAtcmAKKworICAgIGVjaG8gIiQoS1ZfdG9faW50ICIke19SQ19HRVRfS1ZfQ0FDSEV9IikiCiAK
LSAgICBpZiBbICEgLWYgL3NiaW4vZnVuY3Rpb25zLnNoIF0gOyB0aGVuCi0JdmVjaG8gMSAiL3Ni
aW4vZnVuY3Rpb25zLnNoIG5vdCBmb3VuZCAtIG5vdCBydW5uaW5nIEdlbnRvbz8gZ2VudG9vLW1v
ZHVsZXMgZGlzYWJsZWQuIgotCXJldHVybiAxCisgICAgcmV0dXJuICQ/Cit9CisKK0tWX3RvX2lu
dCgpIHsKKyAgICB0ZXN0IC16ICIkMSIgJiYgcmV0dXJuIDEKKworICAgIGxvY2FsIEtWX2ludD0k
KCggYEtWX21ham9yICIkMSJgICogNjU1MzYgKyBgS1ZfbWlub3IgIiQxImAgKiAyNTYgKSkKKyAg
ICBLVl9pbnQ9JCgoIGBLVl9taWNybyAiJDEiYCArICRLVl9pbnQgKSkKKworICAgICMgV2UgbWFr
ZSB2ZXJzaW9uIDIuMi4wIHRoZSBtaW5pbXVtIHZlcnNpb24gd2Ugd2lsbCBoYW5kbGUgYXMKKyAg
ICAjIGEgc2FuaXR5IGNoZWNrIC4uLiBpZiBpdHMgbGVzcywgd2UgZmFpbCAuLi4KKworICAgIGlm
IFsgJEtWX2ludCAtZ2UgMTMxNTg0IF07IHRoZW4KKwllY2hvICIke0tWX2ludH0iCisJcmV0dXJu
IDAKICAgICBmaQogCi0gICAgLiAvc2Jpbi9mdW5jdGlvbnMuc2gKKyAgICByZXR1cm4gMQorfQor
CitHZW50b29Nb2R1bGVzQXV0b2xvYWQoKSB7CisgICAgdGVzdCAiJE1PRFVMRVNfR0VOVE9PX0FV
VE9MT0FEIiA9ICIxIiB8fCByZXR1cm4gMAorCiAgICAgIyB0YWtlbiBmcm9tIGdlbnRvbydzIC9l
dGMvaW5pdC5kL21vZHVsZXMKICAgICBpZiBbIC1mIC9ldGMvbW9kdWxlcy5hdXRvbG9hZCBdICYm
IFsgISAtTCAvZXRjL21vZHVsZXMuYXV0b2xvYWQgXSA7IHRoZW4KIAltb2R1bGVzX2F1dG9sb2Fk
X2ZpbGU9IC9ldGMvbW9kdWxlcy5hdXRvbG9hZApAQCAtMjIsMTIgKzY3LDEwIEBACiAJbG9jYWwg
S1ZfTUlOT1I9ImBLVl9taW5vciAiJHtLVn0iYCIKIAogCSMgTmV3IHN1cHBvcnQgZm9yIC9ldGMv
bW9kdWxlcy5hdXRvbG9hZC9rZXJuZWwtJEtWCi0JaWYgWyAiJChnZXRfS1YpIiAtZ2UgIiQoS1Zf
dG9faW50ICcyLjUuNDgnKSIgXSAmJiBcCi0JWyAtZiAvZXRjL21vZHVsZXMuYXV0b2xvYWQuZC9r
ZXJuZWwtIiR7S1ZfTUFKT1J9LiR7S1ZfTUlOT1J9IiBdCi0JdGhlbgorCWlmIFsgIiQoIGdldF9L
ViApIiAtZ2UgIiQoIEtWX3RvX2ludCAnMi41LjQ4JyApIiBdICYmIFwKKwkgICAgWyAtZiAvZXRj
L21vZHVsZXMuYXV0b2xvYWQuZC9rZXJuZWwtIiR7S1ZfTUFKT1J9LiR7S1ZfTUlOT1J9IiBdIDsg
dGhlbgogCSAgICBtb2R1bGVzX2F1dG9sb2FkX2ZpbGU9Ii9ldGMvbW9kdWxlcy5hdXRvbG9hZC5k
L2tlcm5lbC0ke0tWX01BSk9SfS4ke0tWX01JTk9SfSIKLQllbGlmIFsgISAtZiAvZXRjL21vZHVs
ZXMuYXV0b2xvYWQuZC9rZXJuZWwtIiR7S1ZfTUFKT1J9LiR7S1ZfTUlOT1J9IiBdCi0JdGhlbgor
CWVsaWYgWyAhIC1mIC9ldGMvbW9kdWxlcy5hdXRvbG9hZC5kL2tlcm5lbC0iJHtLVl9NQUpPUn0u
JHtLVl9NSU5PUn0iIF0gOyB0aGVuCiAJICAgIGV3YXJuICJNaXNzaW5nIC9ldGMvbW9kdWxlcy5h
dXRvbG9hZC5kL2tlcm5lbC0ke0tWX01BSk9SfS4ke0tWX01JTk9SfSIKIAkgICAgbW9kdWxlc19h
dXRvbG9hZF9maWxlPSIvZXRjL21vZHVsZXMuYXV0b2xvYWQuZC9rZXJuZWwtMi40IgogCWVsc2UK
QEAgLTUyLDcgKzk1LDYgQEAKICAgICByZXR1cm4gMAogfQogCi0KIEdlbnRvb01vZHVsZXNPcHRp
b25zKCkgewogICAgIGNhc2UgJDEgaW4KIAlnZW50b29tb2R1bGVzYXV0b2xvYWQpCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98554</attachid>
            <date>2006-10-01 14:03 0000</date>
            <desc>modules_gentoo.dash-compatible.v2.patch</desc>
            <filename>modules_gentoo.dash-compatible.v2.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIGhpYmVybmF0ZS1zY3JpcHQtMS45My9zY3JpcHRsZXRzLmQvbW9kdWxlc19nZW50b28JMjAw
Ni0wNy0xMiAxMjoxNTo1MS4wMDAwMDAwMDAgKzAyMDAKKysrIC91c3Ivc2hhcmUvaGliZXJuYXRl
L3NjcmlwdGxldHMuZC9tb2R1bGVzX2dlbnRvbwkyMDA2LTEwLTAxIDIzOjAwOjQ2LjAwMDAwMDAw
MCArMDIwMApAQCAtNCwxNSArNCw1OCBAQAogQWRkQ29uZmlnSGFuZGxlciBHZW50b29Nb2R1bGVz
T3B0aW9ucwogQWRkQ29uZmlnSGVscCAiR2VudG9vTW9kdWxlc0F1dG9sb2FkIDxib29sZWFuPiIg
IlRyeSB0byBsb2FkIGRlZmF1bHQgbW9kdWxlcyBhZnRlciByZXN1bWluZyAoZnJvbSAvZXRjL21v
ZHVsZXMuYXV0b2xvYWQpIgogCi1HZW50b29Nb2R1bGVzQXV0b2xvYWQoKSB7Ci0gICAgWyB4IiRN
T0RVTEVTX0dFTlRPT19BVVRPTE9BRCIgPSAieDEiIF0gfHwgcmV0dXJuIDAKKyMgTmVjZXNzYXJ5
IGhlbHBlcnMgdG8gcGFyc2Uvd29yayB3aXRoIC9ldGMvbW9kdWxlcy5hdXRvbG9hZC5kL2tlcm5l
bC0yLj8KK0tWX21ham9yKCkgeworICAgIHRlc3QgLXogIiQxIiAmJiByZXR1cm4gMQorCisgICAg
bG9jYWwgS1Y9IiRAIgorICAgIGVjaG8gIiR7S1YlJS4qfSIKK30KKworS1ZfbWlub3IoKSB7Cisg
ICAgdGVzdCAteiAiJDEiICYmIHJldHVybiAxCisKKyAgICBsb2NhbCBLVj0iJEAiCisgICAgS1Y9
IiR7S1YjKi59IgorICAgIGVjaG8gIiR7S1YlJS4qfSIKK30KKworS1ZfbWljcm8oKSB7CisgICAg
dGVzdCAteiAiJDEiICYmIHJldHVybiAxCisKKyAgICBsb2NhbCBLVj0iJEAiCisgICAgS1Y9IiR7
S1YjKi4qLn0iCisgICAgZWNobyAiJHtLViUlWyEwLTldKn0iCit9CisKK2dldF9LVigpIHsKKyAg
ICB0ZXN0IC16ICIke19SQ19HRVRfS1ZfQ0FDSEV9IiAmJiBfUkNfR0VUX0tWX0NBQ0hFPWB1bmFt
ZSAtcmAKKworICAgIGVjaG8gIiQoS1ZfdG9faW50ICIke19SQ19HRVRfS1ZfQ0FDSEV9IikiCiAK
LSAgICBpZiBbICEgLWYgL3NiaW4vZnVuY3Rpb25zLnNoIF0gOyB0aGVuCi0JdmVjaG8gMSAiL3Ni
aW4vZnVuY3Rpb25zLnNoIG5vdCBmb3VuZCAtIG5vdCBydW5uaW5nIEdlbnRvbz8gZ2VudG9vLW1v
ZHVsZXMgZGlzYWJsZWQuIgotCXJldHVybiAxCisgICAgcmV0dXJuICQ/Cit9CisKK0tWX3RvX2lu
dCgpIHsKKyAgICB0ZXN0IC16ICIkMSIgJiYgcmV0dXJuIDEKKworICAgIGxvY2FsIEtWX2ludD0k
KCggYEtWX21ham9yICIkMSJgICogNjU1MzYgKyBgS1ZfbWlub3IgIiQxImAgKiAyNTYgKSkKKyAg
ICBLVl9pbnQ9JCgoIGBLVl9taWNybyAiJDEiYCArICRLVl9pbnQgKSkKKworICAgICMgV2UgbWFr
ZSB2ZXJzaW9uIDIuMi4wIHRoZSBtaW5pbXVtIHZlcnNpb24gd2Ugd2lsbCBoYW5kbGUgYXMKKyAg
ICAjIGEgc2FuaXR5IGNoZWNrIC4uLiBpZiBpdHMgbGVzcywgd2UgZmFpbCAuLi4KKworICAgIGlm
IFsgJEtWX2ludCAtZ2UgMTMxNTg0IF07IHRoZW4KKwllY2hvICIke0tWX2ludH0iCisJcmV0dXJu
IDAKICAgICBmaQogCi0gICAgLiAvc2Jpbi9mdW5jdGlvbnMuc2gKKyAgICByZXR1cm4gMQorfQor
CitHZW50b29Nb2R1bGVzQXV0b2xvYWQoKSB7CisgICAgdGVzdCAiJE1PRFVMRVNfR0VOVE9PX0FV
VE9MT0FEIiA9ICIxIiB8fCByZXR1cm4gMAorCiAgICAgIyB0YWtlbiBmcm9tIGdlbnRvbydzIC9l
dGMvaW5pdC5kL21vZHVsZXMKICAgICBpZiBbIC1mIC9ldGMvbW9kdWxlcy5hdXRvbG9hZCBdICYm
IFsgISAtTCAvZXRjL21vZHVsZXMuYXV0b2xvYWQgXSA7IHRoZW4KIAltb2R1bGVzX2F1dG9sb2Fk
X2ZpbGU9IC9ldGMvbW9kdWxlcy5hdXRvbG9hZApAQCAtMjIsMTIgKzY1LDEwIEBACiAJbG9jYWwg
S1ZfTUlOT1I9ImBLVl9taW5vciAiJHtLVn0iYCIKIAogCSMgTmV3IHN1cHBvcnQgZm9yIC9ldGMv
bW9kdWxlcy5hdXRvbG9hZC9rZXJuZWwtJEtWCi0JaWYgWyAiJChnZXRfS1YpIiAtZ2UgIiQoS1Zf
dG9faW50ICcyLjUuNDgnKSIgXSAmJiBcCi0JWyAtZiAvZXRjL21vZHVsZXMuYXV0b2xvYWQuZC9r
ZXJuZWwtIiR7S1ZfTUFKT1J9LiR7S1ZfTUlOT1J9IiBdCi0JdGhlbgorCWlmIFsgIiQoIGdldF9L
ViApIiAtZ2UgIiQoIEtWX3RvX2ludCAnMi41LjQ4JyApIiBdICYmIFwKKwkgICAgWyAtZiAvZXRj
L21vZHVsZXMuYXV0b2xvYWQuZC9rZXJuZWwtIiR7S1ZfTUFKT1J9LiR7S1ZfTUlOT1J9IiBdIDsg
dGhlbgogCSAgICBtb2R1bGVzX2F1dG9sb2FkX2ZpbGU9Ii9ldGMvbW9kdWxlcy5hdXRvbG9hZC5k
L2tlcm5lbC0ke0tWX01BSk9SfS4ke0tWX01JTk9SfSIKLQllbGlmIFsgISAtZiAvZXRjL21vZHVs
ZXMuYXV0b2xvYWQuZC9rZXJuZWwtIiR7S1ZfTUFKT1J9LiR7S1ZfTUlOT1J9IiBdCi0JdGhlbgor
CWVsaWYgWyAhIC1mIC9ldGMvbW9kdWxlcy5hdXRvbG9hZC5kL2tlcm5lbC0iJHtLVl9NQUpPUn0u
JHtLVl9NSU5PUn0iIF0gOyB0aGVuCiAJICAgIGV3YXJuICJNaXNzaW5nIC9ldGMvbW9kdWxlcy5h
dXRvbG9hZC5kL2tlcm5lbC0ke0tWX01BSk9SfS4ke0tWX01JTk9SfSIKIAkgICAgbW9kdWxlc19h
dXRvbG9hZF9maWxlPSIvZXRjL21vZHVsZXMuYXV0b2xvYWQuZC9rZXJuZWwtMi40IgogCWVsc2UK
QEAgLTUyLDcgKzkzLDYgQEAKICAgICByZXR1cm4gMAogfQogCi0KIEdlbnRvb01vZHVsZXNPcHRp
b25zKCkgewogICAgIGNhc2UgJDEgaW4KIAlnZW50b29tb2R1bGVzYXV0b2xvYWQpCg==
</data>        

          </attachment>
    </bug>

</bugzilla>