<?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>105553</bug_id>
          
          <creation_ts>2005-09-10 17:10 0000</creation_ts>
          <short_desc>KDE support of hal/dbus</short_desc>
          <delta_ts>2005-10-31 00:31:19 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>Ebuilds</component>
          <version>2005.0</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>107943</blocked>
          
          <everconfirmed>1</everconfirmed>
          <reporter>cardoe@gentoo.org</reporter>
          <assigned_to>kde@gentoo.org</assigned_to>
          <cc>aaron123456789@gmail.com</cc>
    
    <cc>avuton@gmail.com</cc>
    
    <cc>betelgeuse@gentoo.org</cc>
    
    <cc>d@vidsolbach.de</cc>
    
    <cc>hanno@gentoo.org</cc>
    
    <cc>mhf@berlios.de</cc>

      

      
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2005-09-10 17:10:27 0000</bug_when>
            <thetext>I really want to unmask hal &amp; dbus. KDE is the reason it&apos;s not. This needs to be
resolved. Figure out a patch or whatever. Or take the Fedora approach and
disable hal/dbus support in KDE 3.4. With KDE 3.5, it&apos;s a non issue since it
uses the new version.

I&apos;m not holding up this software for KDE.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-09-11 02:35:38 0000</bug_when>
            <thetext>With all due respect pmount was held up for months when it was perfectly 
useable on KDE 3.4, and I commented on the bug several times. I am working on 
the issue, but I am pretty busy right now with real life. If any of the other 
KDE devs have any time I would appreciate a hand with this one - the new 
versions works without issue on KDE 3.5 alpha1. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2005-09-11 17:10:53 0000</bug_when>
            <thetext>pmount was held up because the Gnome herd is lazy and was asserting their
influence. We&apos;re done with the Gnome herd. Things will not be set by their time. 

pmount is in the tree.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-09-13 08:32:53 0000</bug_when>
            <thetext>I have been researching this, and doing some of my own tests here and I am
unable to get the new hal/pmount working with KDE 3.4. I don&apos;t have lots of time
right now, the KDE bug is here - http://bugs.kde.org/show_bug.cgi?id=101075

If anyone has any ideas on this please let me know - I can&apos;t find any useful
looking patches from other distros either, but I could have missed something.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-09-16 01:36:42 0000</bug_when>
            <thetext>See comment 15 from the upstream bug -
http://bugs.kde.org/show_bug.cgi?id=101075#c15

It seems there are no plans to backport support of the new versions of hal/dbus
to KDE 3.4, and my searches for a patch have not been successful. If anyone out
there has got this working then please let us know, otherwise I think we will
have to wait for KDE 3.5 (beta 1 should be out later this week).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>hanno@gentoo.org</who>
            <bug_when>2005-09-21 06:44:56 0000</bug_when>
            <thetext>FYI, Ubuntu Breezy supports KDE 3.4 with the new hal/dbus-API, so maybe have a 
look at their patches and how they do it? </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-09-22 02:41:56 0000</bug_when>
            <thetext>OK - looking at their patches I managed to make some progress. Patching our
kdebase-kioslaves-3.4.2 split ebuild with kubuntu_23_hal_api.diff allowed it to
compile successfully with the new hal/dbus and new devices are shown and
removed. That cannot be mounted automatically on my system though! I will see if
I can get to the bottom of this over the weekend - I am open to ideas. It seems
they use ivman for volume management so I am not sure if that is a factor.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-09-23 15:53:08 0000</bug_when>
            <thetext>Just to keep this bug up to date, by applying the kubuntu hal api patch the 
media manager compiles with the new hal/dbus combo. It sees plug in and removal 
events, and seems to mount the devices. It seems to get confused when clicking 
on the devices and shows no contents though. media:/sdf shows nothing, 
typing /media/sdf shows me the contents of the device. Close but no cigar... 
 
Ideas welcomed - if not I will see if I can dig a little deeper this weekend. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-09-23 17:09:21 0000</bug_when>
            <thetext>Created an attachment (id=69127)
kubuntu_23_hal_api.diff

Attaching the kubuntu patch, from their breezy builds. This allows compilation
with the new hal/dbus, hal plugins and removals are triggered, partitions
mounted. The media manager does not seem to see the mount event, or navigate to
the volume contents however as I said previously.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>betelgeuse@gentoo.org</who>
            <bug_when>2005-09-26 07:06:54 0000</bug_when>
            <thetext>Why would we want to do this? KDE 3.4* works perfectly with the stable versions
of dbus and hal already in the tree. If it isn&apos;t broken, don&apos;t touch it.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>allanonjl@gentoo.org</who>
            <bug_when>2005-09-28 11:59:27 0000</bug_when>
            <thetext>any update on this?

Thanks!</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-09-28 14:40:28 0000</bug_when>
            <thetext>My main dev system died earlier tonight, don&apos;t know how long it will take me to 
get fixed. That is the system I was testing this stuff on and my dev box so I 
won&apos;t be able to do any further work on it until I get it fixed up. Anyone else 
from the KDE herd able to take a look into this? </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-10-02 07:22:45 0000</bug_when>
            <thetext>Right - I have committed and masked kde-base/kdebase-kioslaves-3.4.2-r1. This 
version *should* work with the new hal/dbus and does here. It seems originally 
that there was something screwed up on my system with pmount/hal. It is masked 
because I want it to receive more testing and comment from others in the KDE 
herd. 
 
I would appreciate comments of success or failure with this revision with the 
new hal/dbus. If this works then hopefully it will allow the gnome herd to put 
2.12 into testing and stabilise it later! Thanks for your patience. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>allanonjl@gentoo.org</who>
            <bug_when>2005-10-06 05:34:57 0000</bug_when>
            <thetext>did testing the masked build go well?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-10-08 14:03:48 0000</bug_when>
            <thetext>I would have preferred more feedback, but it has mostly been positive. There 
do still seem to be some issues with upgrading from old versions, but I am now 
unable to reproduce this with any of the builds in the tree. I would 
appreciate feedback from any and all for successful use as well as failure. 
Working perfectly here even after up/downgrading across available versions in 
the tree. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mhf@berlios.de</who>
            <bug_when>2005-10-08 15:15:15 0000</bug_when>
            <thetext>Marcus, thank you for taking this on.  
  
Packages suggested in you blog work allright with CDROM, USB key and USB HD.  
Floppy mounts but kioslave does not seem to see mount status change. The icon 
remains unmounted and konqueror lists &apos;Unmounted Floppy&apos;. Clicking again on 
floppy icon results in further mount attempt. Manual mounting/unmounting 
changes konqueror status/icons with CD and USB  but not with floppy .  
 
Installation:  
Uptodate, gcc 3.3.6, python 2.4.2 (dbus wanted it), 2.6.13.1 kernel, minimal  
kde as below  
dbus-0.36.2  
hal-0.5.4  
pmount-0.9.3-r3  
kcheckpass-3.4.2  
kcminit-3.4.1  
kcontrol-3.4.2-r1  
kdebase-data-3.4.2  
kdebase-kioslaves-3.4.2-r1  
kdebase-pam-6  
kde-env-3-r4  
kdelibs-3.4.2-r1  
kdesktop-3.4.2  
kdesu-3.4.1  
kdialog-3.4.1  
kdm-3.4.2  
khelpcenter-3.4.2  
khotkeys-3.4.2  
konqueror-3.4.2-r1  
libkonq-3.4.2  
  
Michael  
 </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mhf@berlios.de</who>
            <bug_when>2005-10-08 15:26:40 0000</bug_when>
            <thetext>(In reply to comment #9) 
&gt; Why would we want to do this? KDE 3.4* works perfectly with the stable 
versions 
&gt; of dbus and hal already in the tree. If it isn&apos;t broken, don&apos;t touch it. 
 
It does work only imperfectly.  Events are missed at times and most recently 
the floppy had disappeared alltogether. It also identified mounted hda/hdc hard 
disk partitions as floppies until I found the desktop entries and changed 
them... 
 
The new version seems to be much faster and hides hda/hdc hard disk partitions. 
 
If we could get rid of that useless progress dialog during mount, it would be 
even less imperfect... </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>betelgeuse@gentoo.org</who>
            <bug_when>2005-10-08 15:32:13 0000</bug_when>
            <thetext>(In reply to comment #16)
&gt; It does work only imperfectly.  Events are missed at times and most recently 
&gt; the floppy had disappeared alltogether. It also identified mounted hda/hdc hard 
&gt; disk partitions as floppies until I found the desktop entries and changed 
&gt; them... 
&gt;  
&gt; The new version seems to be much faster and hides hda/hdc hard disk partitions. 

Yeah should have chosen my words a little better.

&gt;  
&gt; If we could get rid of that useless progress dialog during mount, it would be 
&gt; even less imperfect... 

Well I have not looked at the code but I think it would be great to have
progress dialogs in general implemented like they do it in Swing. The progress
dialog does not by default show up until a second or two has passed (I don&apos;t
remember what accurate delay is), but this is off topic for this bug. Any way I
think I have figured out why we need to get the new hal/dbus supported.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mhf@berlios.de</who>
            <bug_when>2005-10-08 15:39:14 0000</bug_when>
            <thetext>Just noticed that the CDR is identified as CDW.  
 </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-10-09 07:06:38 0000</bug_when>
            <thetext>Now you mention it floppies don&apos;t work here either, although I have to admit I 
rarely use them and had to have a good look to find one! It would be nice to 
have everything working perfectly, but this was always a new feature with some 
rough edges remaining (including the changing API...) As always I am open to 
any patches you may have to fix the floppy drive issue :) 
 
The progress dialog issue would be something to file upstream IMO, I am 
uncertain whether the floppy drive issue is local to us or not. Were it not for 
the Gnome team with the 2.12 release I would not have patched KDE 3.4 for the 
new API as in general it is better to stay as close to upstream as possible. 
KDE 3.5 supports the new API out of the box. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mhf@berlios.de</who>
            <bug_when>2005-10-10 22:34:49 0000</bug_when>
            <thetext>Likely not kde problem, seems to be a bug in hal. The hald output below shows 
that hald moans about a missing volume  for floppy during munt state change 
although sysfs_path was set during initial scan. From the source it seems that 
sysfs_path was not usable. Entry OK in /sys/block/fd0. Behavior/messages of 
mounting by konqueror and mount same.

FUI, logging can be performed by stopping /etc/init.d/hald and starting hald 
with debug:

# hald --daemon=no --verbose=yes

BTW, In my installations hald will not be stopped by hald stop

Hald output:
[ snip ]
03:07:07.111 [I] hald.c:89: Added device to GDL; udi=/org/freedesktop/Hal/
devices/volume_uuid_4322_4E64
03:07:07.112 [I] blockdev.c:547: block_add: sysfs_path=/sys/block/fd0 dev=/dev/
floppy/0 is_part=0, parent=0x00000000
03:07:07.113 [I] blockdev.c:620: doing floppy drive hack for floppy 0
03:07:07.115 [I] blockdev.c:371: Probing PC floppy /dev/floppy/0 to see if it is 
present
3702: 03:07:07.119: probe-pc-floppy.c:73: Checking if /dev/floppy/0 is actually 
present
3702: 03:07:07.120: probe-pc-floppy.c:88: floppy drive name is &apos;H1440&apos;
03:07:07.121 [I] hald_dbus.c:2964: local_server_message_handler: 
destination=(null) obj_path=/org/freedesktop/DBus/Local interface=org.
freedesktop.DBus.Local method=Disconnected
03:07:07.121 [I] hald_dbus.c:2980: Client to local_server was disconnected
03:07:07.121 [I] hald_dbus.c:2990: unregistered
03:07:07.141 [I] util.c:554: child exited for pid 3702
03:07:07.142 [I] blockdev.c:281: entering; timed_out=0, return_code=0
03:07:07.152 [I] device_info.c:1370: *** Matched file /usr/share/hal/fdi/policy/
10osvendor/10-storage-policy.fdi
03:07:07.153 [I] blockdev.c:139: Add callouts completed udi=/org/freedesktop/
Hal/devices/computer_storage

[ snip ]

03:26:46.957 [I] osspec.c:243: total_read=17 buf=&apos;mount@/block/fd0&apos;
03:26:46.957 [I] blockdev.c:220: mount_status_changed for &apos;/sys/block/fd0&apos;, 
is_mounted=1
03:26:46.958 [I] blockdev.c:240: Couldn&apos;t find hal volume for /sys/block/fd0
03:26:48.879 [I] osspec.c:243: total_read=18 buf=&apos;umount@/block/fd0&apos;
03:26:48.879 [I] blockdev.c:220: mount_status_changed for &apos;/sys/block/fd0&apos;, 
is_mounted=0
03:26:48.880 [I] blockdev.c:240: Couldn&apos;t find hal volume for /sys/block/fd0

Perhaps the herd handling hal could have a look.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cryos@gentoo.org</who>
            <bug_when>2005-10-11 04:56:04 0000</bug_when>
            <thetext>It sounds like it is possibly an upstream issue, but you could search for 
existing bug, and/or file a new one on the issue. As far as I know this issue 
is basically resolved. Marking as FIXED. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>betelgeuse@gentoo.org</who>
            <bug_when>2005-10-31 00:31:19 0000</bug_when>
            <thetext>To anyone who wondered about floppies, from the changelog of pmount:

0.9.6
-----
- pmount-hal: support device argument
- pmount manpage: fix default mount options inconsistency
- pmount-hal: full support for HAL expored mount policy (including
  global and per-drive policy, and the &quot;exec&quot; option)
- autotoolized build system, thanks to Aaron Bockover
- pmount: fixed umask parsing, umask 000 works now
- pmount-hal: full support for storage devices to mount floppies and similar
  devices
</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69127</attachid>
            <date>2005-09-23 17:09 0000</date>
            <desc>kubuntu_23_hal_api.diff</desc>
            <filename>kubuntu_23_hal_api.diff</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIGtkZWJhc2UtMy40LjEva2lvc2xhdmUvbWVkaWEvY29uZmlndXJlLmluLmluCTIwMDUtMDUt
MjMgMTI6MTQ6MTguMDAwMDAwMDAwICswMDAwCisrKyBrZGViYXNlLTMuNC4xL2tpb3NsYXZlL21l
ZGlhL2NvbmZpZ3VyZS5pbi5pbgkyMDA1LTA2LTI2IDA5OjQ0OjI0LjAwMDAwMDAwMCArMDAwMApA
QCAtMTIsMTAwICsxMiwxMDAgQEAKIEFDX0FSR19XSVRIKGhhbCxBQ19IRUxQX1NUUklORyhbLS13
aXRoLWhhbF0sW0VuYWJsZSBIQUwgc3VwcG9ydCAgW2RlZmF1bHQ9Y2hlY2tdXSksW2hhbF90ZXN0
PSIkd2l0aHZhbCJdLFtoYWxfdGVzdD0ieWVzIl0pCiAKIGlmIHRlc3QgIngkaGFsX3Rlc3QiID0g
Inh5ZXMiIDsgdGhlbgotICAKLSMjIyMjIyMjIyMjIENoZWNrIGZvciB0aGUgSEFMLCB2ZXJzaW9u
IDAuNC54Ci0gIAotICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHRoZSBIQUwgMC40KQotICAKKworIyMj
IyMjIyMjIyMgQ2hlY2sgZm9yIHRoZSBIQUwKKworICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHRoZSBI
QUwpCisKICAgaGFsX2luYz1OT1RGT1VORAogICBoYWxfbGliPU5PVEZPVU5ECiAgIGhhbD1OT1RG
T1VORAotICAKLSAgc2VhcmNoX2luY3M9IiRrZGVfaW5jbHVkZXMgL3Vzci9pbmNsdWRlIC91c3Iv
bG9jYWwvaW5jbHVkZSAvdXNyL2luY2x1ZGUvaGFsIC91c3IvbG9jYWwvaW5jbHVkZS9oYWwiCisK
KyAgc2VhcmNoX2luY3M9IiRrZGVfaW5jbHVkZXMgL3Vzci9pbmNsdWRlIC91c3IvaW5jbHVkZS9o
YWwgL3Vzci9sb2NhbC9pbmNsdWRlIC91c3IvbG9jYWwvaW5jbHVkZS9oYWwiCiAgIEFDX0ZJTkRf
RklMRShsaWJoYWwuaCBsaWJoYWwtc3RvcmFnZS5oLCAkc2VhcmNoX2luY3MsIGhhbF9pbmNkaXIp
Ci0gIAorCiAgIGlmIFt0ZXN0IC1yICRoYWxfaW5jZGlyL2xpYmhhbC5oXSAmJiBbdGVzdCAtciAk
aGFsX2luY2Rpci9saWJoYWwtc3RvcmFnZS5oXSA7IHRoZW4KICAgICBIQUxfSU5DUz0iLUkkaGFs
X2luY2RpciIKICAgICBoYWxfaW5jPUZPVU5ECiAgIGZpCi0gIAorCisgIGlmIHRlc3QgLXIgJGhh
bF9pbmNkaXIvbGliaGFsLXN0b3JhZ2UuaCA7IHRoZW4KKyAgICBoYWxfc3RvcmFnZV92ZXJzaW9u
PTQKKyAgICBncmVwIExpYkhhbFZvbHVtZSAkaGFsX2luY2Rpci9saWJoYWwtc3RvcmFnZS5oIFwK
KyAgICA+IC9kZXYvbnVsbCAyPiYxICYmIGhhbF9zdG9yYWdlX3ZlcnNpb249NQorICAgIGlmIHRl
c3QgJGhhbF9zdG9yYWdlX3ZlcnNpb24gPSA0IDsgdGhlbgorICAgICAgQUNfREVGSU5FKEhBTF8w
XzQsICwgW0hBTCBBUEkgdmVyc2lvbiAwLjRdKQorICAgIGZpCisgIGZpCisKICAgc2VhcmNoX2xp
YnM9IiRrZGVfbGlicmFyaWVzIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgogICBBQ19GSU5EX0ZJ
TEUobGliaGFsLnNvIGxpYmhhbC1zdG9yYWdlLnNvLCAkc2VhcmNoX2xpYnMsIGhhbF9saWJkaXIp
Ci0gIAorCiAgIGlmIFt0ZXN0IC1yICRoYWxfbGliZGlyL2xpYmhhbC5zb10gJiYgW3Rlc3QgLXIg
JGhhbF9saWJkaXIvbGliaGFsLXN0b3JhZ2Uuc29dIDsgdGhlbgogICAgIEhBTF9MSUJTPSItTCRo
YWxfbGliZGlyIC1saGFsIC1saGFsLXN0b3JhZ2UiCiAgICAgaGFsX2xpYj1GT1VORAogICBmaQot
ICAKLSAgaWYgdGVzdCAtciAkaGFsX2luY2Rpci9saWJoYWwuaCA7IHRoZW4KLSAgICBoYWxfdmVy
c2lvbj01Ci0gICAgZ3JlcCBMaWJIYWxGdW5jdGlvbnMgJGhhbF9pbmNkaXIvbGliaGFsLmggXAot
ICAgID4gL2Rldi9udWxsIDI+JjEgJiYgaGFsX3ZlcnNpb249NAotICAgIGlmIHRlc3QgJGhhbF92
ZXJzaW9uID0gNSA7IHRoZW4KLSAgICAgIGhhbF9saWI9Tk9UX0ZPVU5ECi0gICAgZmkKLSAgZmkK
LQkJCQkKLSAgCisKKwogICBpZiBbdGVzdCAkaGFsX2luYyA9IEZPVU5EXSAmJiBbdGVzdCAkaGFs
X2xpYiA9IEZPVU5EXSA7IHRoZW4KICAgICAgIEFDX01TR19SRVNVTFQoaGVhZGVycyAkaGFsX2lu
Y2RpciAgbGlicmFyaWVzICRoYWxfbGliZGlyKQogICAJaGFsPUZPVU5ECiAgIGVsc2UKICAgICAg
IEFDX01TR19SRVNVTFQoc2VhcmNoZWQgYnV0IG5vdCBmb3VuZCkKICAgZmkKLSAgCisKICAgQUNf
U1VCU1QoSEFMX0lOQ1MpCiAgIEFDX1NVQlNUKEhBTF9MSUJTKQotICAKLSAgCisKKwogIyMjIyMj
IyMjIyMgQ2hlY2sgZm9yIERCdXMKLSAgCisKICAgQUNfTVNHX0NIRUNLSU5HKGZvciBEQnVzKQot
ICAKKwogICBkYnVzX2luYz1OT1RGT1VORAogICBkYnVzX2xpYj1OT1RGT1VORAogICBkYnVzPU5P
VEZPVU5ECi0gIAotICBzZWFyY2hfaW5jcz0iJGtkZV9pbmNsdWRlcyAvdXNyL2luY2x1ZGUgL3Vz
ci9sb2NhbC9pbmNsdWRlIC91c3IvaW5jbHVkZS9kYnVzLTEuMCAvdXNyL2xvY2FsL2luY2x1ZGUv
ZGJ1cy0xLjAiCisKKyAgc2VhcmNoX2luY3M9IiRrZGVfaW5jbHVkZXMgL3Vzci9pbmNsdWRlIC91
c3IvaW5jbHVkZS9kYnVzLTEuMCAvdXNyL2xvY2FsL2luY2x1ZGUgL3Vzci9sb2NhbC9pbmNsdWRl
L2RidXMtMS4wIgogICBBQ19GSU5EX0ZJTEUoZGJ1cy9kYnVzLmgsICRzZWFyY2hfaW5jcywgZGJ1
c19pbmNkaXIpCi0gIAorCiAgIHNlYXJjaF9pbmNzX2FyY2hfZGVwcz0iJGtkZV9pbmNsdWRlcyAv
dXNyL2xpYi9kYnVzLTEuMC9pbmNsdWRlIC91c3IvbG9jYWwvbGliL2RidXMtMS4wL2luY2x1ZGUi
CiAgIEFDX0ZJTkRfRklMRShkYnVzL2RidXMtYXJjaC1kZXBzLmgsICRzZWFyY2hfaW5jc19hcmNo
X2RlcHMsIGRidXNfaW5jZGlyX2FyY2hfZGVwcykKLSAgCisKICAgaWYgW3Rlc3QgLXIgJGRidXNf
aW5jZGlyL2RidXMvZGJ1cy5oXSAmJiBbdGVzdCAtciAkZGJ1c19pbmNkaXJfYXJjaF9kZXBzL2Ri
dXMvZGJ1cy1hcmNoLWRlcHMuaF0gOyB0aGVuCiAgICAgREJVU19JTkNTPSItSSRkYnVzX2luY2Rp
ciAtSSRkYnVzX2luY2Rpcl9hcmNoX2RlcHMiCiAgICAgZGJ1c19pbmM9Rk9VTkQKICAgZmkKLSAg
CisKICAgc2VhcmNoX2xpYnM9IiRrZGVfbGlicmFyaWVzIC91c3IvbGliIC91c3IvbG9jYWwvbGli
IgogICBBQ19GSU5EX0ZJTEUobGliZGJ1cy0xLnNvLCAkc2VhcmNoX2xpYnMsIGRidXNfbGliZGly
KQotICAKKwogICBpZiB0ZXN0IC1yICRkYnVzX2xpYmRpci9saWJkYnVzLTEuc28gOyB0aGVuCiAg
ICAgREJVU19MSUJTPSItTCRkYnVzX2xpYmRpciAtbGRidXMtMSIKICAgICBkYnVzX2xpYj1GT1VO
RAogICBmaQotICAKKwogICBpZiBbdGVzdCAkZGJ1c19pbmMgPSBGT1VORF0gJiYgW3Rlc3QgJGRi
dXNfbGliID0gRk9VTkRdIDsgdGhlbgogICAgIEFDX01TR19SRVNVTFQoaGVhZGVycyAkZGJ1c19p
bmNkaXIgJGRidXNfaW5jZGlyX2FyY2hfZGVwcyAgbGlicmFyaWVzICRkYnVzX2xpYmRpcikKICAg
ICBkYnVzPUZPVU5ECiAgIGVsc2UKICAgICBBQ19NU0dfUkVTVUxUKHNlYXJjaGVkIGJ1dCBub3Qg
Zm91bmQpCiAgIGZpCi0gIAorCiAgIEFDX1NVQlNUKERCVVNfSU5DUykKICAgQUNfU1VCU1QoREJV
U19MSUJTKQotICAKKwogIyMjIyMjIyMjIyMgQ2hlY2sgZm9yIERCdXMtUXQgYmluZGluZ3MKLSAg
CisKICAgQUNfTVNHX0NIRUNLSU5HKGZvciBEQnVzLVF0IGJpbmRpbmdzKQotICAKKwogICBkYnVz
cXRfaW5jPU5PVEZPVU5ECiAgIGRidXNxdF9saWI9Tk9URk9VTkQKICAgZGJ1c3F0PU5PVEZPVU5E
Ci0gIAotICBzZWFyY2hfaW5jcz0iJGtkZV9pbmNsdWRlcyAvdXNyL2luY2x1ZGUgL3Vzci9sb2Nh
bC9pbmNsdWRlIC91c3IvaW5jbHVkZS9kYnVzLTEuMCAvdXNyL2xvY2FsL2luY2x1ZGUvZGJ1cy0x
LjAiCisKKyAgc2VhcmNoX2luY3M9IiRrZGVfaW5jbHVkZXMgL3Vzci9pbmNsdWRlIC91c3IvaW5j
bHVkZS9kYnVzLTEuMCAvdXNyL2xvY2FsL2luY2x1ZGUgL3Vzci9sb2NhbC9pbmNsdWRlL2RidXMt
MS4wIgogICBBQ19GSU5EX0ZJTEUoZGJ1cy9jb25uZWN0aW9uLmgsICRzZWFyY2hfaW5jcywgZGJ1
c3F0X2luY2RpcikKLSAgCisKICAgaWYgdGVzdCAtciAkZGJ1c3F0X2luY2Rpci9kYnVzL2Nvbm5l
Y3Rpb24uaCA7IHRoZW4KICAgICBoYXZlX3F0X3BhdGNoPTAKICAgICBncmVwIGRidXNfY29ubmVj
dGlvbl9zZXR1cF93aXRoX3F0X21haW4gJGRidXNxdF9pbmNkaXIvZGJ1cy9jb25uZWN0aW9uLmgg
XApAQCAtMTE1LDE1ICsxMTUsMTUgQEAKICAgICAgIGRidXNxdF9pbmM9Rk9VTkQKICAgICBmaQog
ICBmaQotICAKKwogICBzZWFyY2hfbGlicz0iJGtkZV9saWJyYXJpZXMgL3Vzci9saWIgL3Vzci9s
b2NhbC9saWIiCiAgIEFDX0ZJTkRfRklMRShsaWJkYnVzLXF0LTEuc28sICRzZWFyY2hfbGlicywg
ZGJ1c3F0X2xpYmRpcikKLSAgCisKICAgaWYgdGVzdCAtciAkZGJ1c3F0X2xpYmRpci9saWJkYnVz
LXF0LTEuc28gOyB0aGVuCiAgICAgREJVU1FUX0xJQlM9Ii1MJGRidXNxdF9saWJkaXIgLWxkYnVz
LXF0LTEiCiAgICAgZGJ1c3F0X2xpYj1GT1VORAogICBmaQotICAKKwogICBpZiBbdGVzdCAkZGJ1
c3F0X2luYyA9IEZPVU5EXSAmJiBbdGVzdCAkZGJ1c3F0X2xpYiA9IEZPVU5EXSA7IHRoZW4KICAg
ICBBQ19NU0dfUkVTVUxUKGhlYWRlcnMgJGRidXNxdF9pbmNkaXIgbGlicmFyaWVzICRkYnVzcXRf
bGliZGlyKQogICAgIGRidXNxdD1GT1VORAotLS0ga2RlYmFzZS0zLjQuMS9raW9zbGF2ZS9tZWRp
YS9rZGVkbW9kdWxlL01ha2VmaWxlLmFtCTIwMDUtMDUtMjMgMTI6MTQ6MTguMDAwMDAwMDAwICsw
MDAwCisrKyBrZGViYXNlLTMuNC4xL2tpb3NsYXZlL21lZGlhL2tkZWRtb2R1bGUvTWFrZWZpbGUu
YW0JMjAwNS0wNi0zMCAwODoxNDoxNC4wMDAwMDAwMDAgKzAwMDAKQEAgLTIyLDcgKzIyLDcgQEAK
IAogbm9pbnN0X0xUTElCUkFSSUVTID0gJChMSU5VWENEUE9MTElOR19MSUIpICQoSEFMQkFDS0VO
RF9MSUIpCiAKLWtkZWRfbWVkaWFtYW5hZ2VyX2xhX1NPVVJDRVMgPSBtZWRpYW1hbmFnZXIuY3Bw
IG1lZGlhbWFuYWdlci5za2VsIG1lZGlhbGlzdC5jcHAgYmFja2VuZGJhc2UuY3BwIGZzdGFiYmFj
a2VuZC5jcHAgcmVtb3ZhYmxlYmFja2VuZC5jcHAgbWVkaWFkaXJub3RpZnkuY3BwIG1lZGlhZGly
bm90aWZ5LnNrZWwKK2tkZWRfbWVkaWFtYW5hZ2VyX2xhX1NPVVJDRVMgPSBtZWRpYW1hbmFnZXIu
Y3BwIG1lZGlhbWFuYWdlci5za2VsIG1lZGlhbGlzdC5jcHAgYmFja2VuZGJhc2UuY3BwIGZzdGFi
YmFja2VuZC5jcHAgaGFsYWRkaXRpb24uY3BwIHJlbW92YWJsZWJhY2tlbmQuY3BwIG1lZGlhZGly
bm90aWZ5LmNwcCBtZWRpYWRpcm5vdGlmeS5za2VsCiBrZGVkX21lZGlhbWFuYWdlcl9sYV9MREZM
QUdTID0gJChhbGxfbGlicmFyaWVzKSAtbW9kdWxlIC1hdm9pZC12ZXJzaW9uCiBrZGVkX21lZGlh
bWFuYWdlcl9sYV9MSUJBREQgPSAkKExJQl9LU1lDT0NBKSAuLi9saWJtZWRpYWNvbW1vbi9saWJt
ZWRpYWNvbW1vbi5sYSAkKEhBTEJBQ0tFTkRfTElCKSAkKExJTlVYQ0RQT0xMSU5HX0xJQikKIAot
LS0ga2RlYmFzZS0zLjQuMS9raW9zbGF2ZS9tZWRpYS9rZGVkbW9kdWxlL21lZGlhbWFuYWdlci5j
cHAJMjAwNS0wNS0yMyAxMjoxNDoxOC4wMDAwMDAwMDAgKzAwMDAKKysrIGtkZWJhc2UtMy40LjEv
a2lvc2xhdmUvbWVkaWEva2RlZG1vZHVsZS9tZWRpYW1hbmFnZXIuY3BwCTIwMDUtMDYtMzAgMDg6
MTQ6MzMuMDAwMDAwMDAwICswMDAwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpZmRlZiBDT01QSUxF
X0hBTEJBQ0tFTkQKICNpbmNsdWRlICJoYWxiYWNrZW5kLmgiCisjaW5jbHVkZSAiaGFsYWRkaXRp
b24uaCIKICNlbmRpZiAvL0NPTVBJTEVfSEFMQkFDS0VORAogCiAjaWZkZWYgQ09NUElMRV9MSU5V
WENEUE9MTElORwpAQCAtNjAsOCArNjEsMTAgQEAKIAogI2lmZGVmIENPTVBJTEVfSEFMQkFDS0VO
RAogCUhBTEJhY2tlbmQqIGhhbEJhY2tlbmQgPSBuZXcgSEFMQmFja2VuZChtX21lZGlhTGlzdCwg
dGhpcyk7Ci0JaWYgKGhhbEJhY2tlbmQtPkluaXRIYWwoKSkKKwlpZiAoaGFsQmFja2VuZC0+SW5p
dEhhbCgpKSB7CiAJCW1fYmFja2VuZHMuYXBwZW5kKCBoYWxCYWNrZW5kICk7CisJCW1fYmFja2Vu
ZHMuYXBwZW5kKCBuZXcgSGFsQWRkaXRpb24obV9tZWRpYUxpc3QpICk7CisJfQogCWVsc2UKIAl7
CiAJCWRlbGV0ZSBoYWxCYWNrZW5kOwotLS0gL2Rldi9udWxsCTIwMDUtMDYtMTYgMjA6MDc6MDku
MDAwMDAwMDAwICswMDAwCisrKyBrZGViYXNlLTMuNC4xL2tpb3NsYXZlL21lZGlhL2tkZWRtb2R1
bGUvaGFsYWRkaXRpb24uaAkyMDA1LTA3LTAzIDIwOjI5OjIwLjAwMDAwMDAwMCArMDAwMApAQCAt
MCwwICsxLDQ5IEBACisvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIFByb2plY3QKKyAg
IENvcHlyaWdodCAoYykgMjAwNCBL6XZpbiBPdHRlbnMgPGVydmluIGlwc3F1YWQgbmV0PgorCisg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAgIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorKi8KKworI2lmbmRlZiBfSEFMQURESVRJT05fSF8K
KyNkZWZpbmUgX0hBTEFERElUSU9OX0hfCisKKyNpbmNsdWRlICJiYWNrZW5kYmFzZS5oIgorCisj
aW5jbHVkZSA8cW9iamVjdC5oPgorI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CisjaW5jbHVkZSA8
a21vdW50cG9pbnQuaD4KKworY2xhc3MgSGFsQWRkaXRpb24gOiBwdWJsaWMgUU9iamVjdCwgcHVi
bGljIEJhY2tlbmRCYXNlCit7CitRX09CSkVDVAorCitwdWJsaWM6CisJSGFsQWRkaXRpb24oTWVk
aWFMaXN0ICZsaXN0KTsKKwl2aXJ0dWFsIH5IYWxBZGRpdGlvbigpIHt9OworCisJc3RhdGljIHZv
aWQgZ3Vlc3MoY29uc3QgUVN0cmluZyAmZGV2Tm9kZSwgY29uc3QgUVN0cmluZyAmbW91bnRQb2lu
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyAmZnNUeXBlLCBib29s
IG1vdW50ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmcgJm1pbWVUeXBlLCBR
U3RyaW5nICZpY29uTmFtZSwKKwkgICAgICAgICAgICAgICAgICBRU3RyaW5nICZsYWJlbCk7Citw
cml2YXRlIHNsb3RzOgorCXZvaWQgc2xvdERpcnR5KGNvbnN0IFFTdHJpbmcgJnBhdGgpOworCitw
cml2YXRlOgorCXZvaWQgaGFuZGxlTXRhYkNoYW5nZSgpOworICAgICAgICBRU3RyaW5nTGlzdCBt
X210YWJJZHM7CisJCQorfTsKKworI2VuZGlmCi0tLSAvZGV2L251bGwJMjAwNS0wNi0xNiAyMDow
NzowOS4wMDAwMDAwMDAgKzAwMDAKKysrIGtkZWJhc2UtMy40LjEva2lvc2xhdmUvbWVkaWEva2Rl
ZG1vZHVsZS9oYWxhZGRpdGlvbi5jcHAJMjAwNS0wNy0wMyAyMTowODoxMS4wMDAwMDAwMDAgKzAw
MDAKQEAgLTAsMCArMSwxNTUgQEAKKy8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgUHJv
amVjdAorICAgQ29weXJpZ2h0IChjKSAyMDA0IEvpdmluIE90dGVucyA8ZXJ2aW4gaXBzcXVhZCBu
ZXQ+CisKKyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMw
LAorICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisqLworCisjaW5jbHVkZSAiaGFsYWRk
aXRpb24uaCIKKworI2luY2x1ZGUgPGtsb2NhbGUuaD4KKyNpbmNsdWRlIDxrZGlyd2F0Y2guaD4K
KyNpbmNsdWRlIDxrdXJsLmg+CisjaW5jbHVkZSA8a3N0YW5kYXJkZGlycy5oPgorCisjaWZkZWYg
X09TX1NPTEFSSVNfCisjZGVmaW5lIE1UQUIgIi9ldGMvbW50dGFiIgorI2Vsc2UKKyNkZWZpbmUg
TVRBQiAiL2V0Yy9tdGFiIgorI2VuZGlmCisKKworSGFsQWRkaXRpb246OkhhbEFkZGl0aW9uKE1l
ZGlhTGlzdCAmbGlzdCkKKwk6IFFPYmplY3QoKSwgQmFja2VuZEJhc2UobGlzdCkKK3sKKwlLRGly
V2F0Y2g6OnNlbGYoKS0+YWRkRmlsZShNVEFCKTsKKworCWNvbm5lY3QoIEtEaXJXYXRjaDo6c2Vs
ZigpLCBTSUdOQUwoIGRpcnR5KGNvbnN0IFFTdHJpbmcmKSApLAorCSAgICAgICAgIHRoaXMsIFNM
T1QoIHNsb3REaXJ0eShjb25zdCBRU3RyaW5nJikgKSApOworCisJaGFuZGxlTXRhYkNoYW5nZSgp
OworCisJS0RpcldhdGNoOjpzZWxmKCktPnN0YXJ0U2NhbigpOworfQorCit2b2lkIEhhbEFkZGl0
aW9uOjpzbG90RGlydHkoY29uc3QgUVN0cmluZyAmcGF0aCkKK3sKKwlpZiAocGF0aD09TVRBQikK
Kwl7CisJCWhhbmRsZU10YWJDaGFuZ2UoKTsKKwl9Cit9CisKK3ZvaWQgSGFsQWRkaXRpb246Omhh
bmRsZU10YWJDaGFuZ2UoKQoreworCVFTdHJpbmdMaXN0IG5ld19tdGFiSWRzOworCUtNb3VudFBv
aW50OjpMaXN0IG10YWIgPSBLTW91bnRQb2ludDo6Y3VycmVudE1vdW50UG9pbnRzKCk7CisKKwlL
TW91bnRQb2ludDo6TGlzdDo6aXRlcmF0b3IgaXQgPSBtdGFiLmJlZ2luKCk7CisJS01vdW50UG9p
bnQ6Okxpc3Q6Oml0ZXJhdG9yIGVuZCA9IG10YWIuZW5kKCk7CisKKwlmb3IgKDsgaXQhPWVuZDsg
KytpdCkKKwl7CisJCVFTdHJpbmcgZGV2ID0gKCppdCktPm1vdW50ZWRGcm9tKCk7CisJCVFTdHJp
bmcgbXAgPSAoKml0KS0+bW91bnRQb2ludCgpOworCQlRU3RyaW5nIGZzID0gKCppdCktPm1vdW50
VHlwZSgpOworCisJCWlmICggbXAgPT0gIi8iCisJCSAgfHwgbXAuZmluZCgiL21lZGlhL2Zsb3Bw
eSIpICE9IC0xCisJICAgICAgICAgIHx8IG1wLmZpbmQoIi9tZWRpYS96aXAiKSAhPSAtMQorCQkg
IHx8IG1wLmZpbmQoIi9tZWRpYS9qYXoiKSAhPSAtMQorCQkgICApIAorCQl7CisJCQlRU3RyaW5n
IGRldmljZTsKKwkJCWNvbnN0IE1lZGl1bSAqbWVkaXVtOworCQkgICAgIAkKKwkJCWRldmljZSA9
IGRldjsKKwkJCWRldmljZS5yZXBsYWNlKCIvZGV2LyIsICIiKTsKKworCQkJaWYgKG1lZGl1bSA9
IG1fbWVkaWFMaXN0LmZpbmRCeU5hbWUoZGV2aWNlKSkKKwkJCXsKKwkJCQlRU3RyaW5nIG1pbWUs
IGljb24sIGxhYmVsOworCQkJCWd1ZXNzKGRldiwgbXAsIGZzLCB0cnVlLCBtaW1lLCBpY29uLCBs
YWJlbCk7CisJCQkJbV9tZWRpYUxpc3QuY2hhbmdlTWVkaXVtU3RhdGUobWVkaXVtLT5pZCgpLCBk
ZXYsIG1wLCBmcywgdHJ1ZSwgbWltZSwgaWNvbiwgbWVkaXVtLT5sYWJlbCgpKTsKKwkJCQluZXdf
bXRhYklkcyArPSBkZXZpY2U7CisJCQl9CisJCX0KKwl9CisgICAgICAgIAorCVFTdHJpbmdMaXN0
OjppdGVyYXRvciBpdDIgPSBtX210YWJJZHMuYmVnaW4oKTsKKwlRU3RyaW5nTGlzdDo6aXRlcmF0
b3IgZW5kMiA9IG1fbXRhYklkcy5lbmQoKTsKKworCWZvciAoOyBpdDIhPWVuZDI7ICsraXQyKQor
CXsKKwkJaWYgKCAhbmV3X210YWJJZHMuY29udGFpbnMoKml0MikgKQorCQl7CisJCQljb25zdCBN
ZWRpdW0gKm1lZGl1bTsKKworCQkJaWYgKG1lZGl1bSA9IG1fbWVkaWFMaXN0LmZpbmRCeU5hbWUo
Kml0MikpCisJCQl7CisJCQkJUVN0cmluZyBkZXYgPSBtZWRpdW0tPmRldmljZU5vZGUoKTsKKwkJ
CQlRU3RyaW5nIG1wID0gbWVkaXVtLT5tb3VudFBvaW50KCk7CisJCQkJUVN0cmluZyBmcyA9IG1l
ZGl1bS0+ZnNUeXBlKCk7CisJCQkJUVN0cmluZyBtaW1lLCBpY29uLCBsYWJlbDsKKwkJCQkKKwkJ
ICAJCWd1ZXNzKGRldiwgbXAsIGZzLCBmYWxzZSwgbWltZSwgaWNvbiwgbGFiZWwpOworCQkJCW1f
bWVkaWFMaXN0LmNoYW5nZU1lZGl1bVN0YXRlKG1lZGl1bS0+aWQoKSwgZmFsc2UsIG1pbWUsIGlj
b24sIG1lZGl1bS0+bGFiZWwoKSk7CisJCQl9CisJCX0KKwl9CisJbV9tdGFiSWRzID0gbmV3X210
YWJJZHM7Cit9CisKK3ZvaWQgSGFsQWRkaXRpb246Omd1ZXNzKGNvbnN0IFFTdHJpbmcgJmRldk5v
ZGUsIGNvbnN0IFFTdHJpbmcgJm1vdW50UG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgUVN0cmluZyAmZnNUeXBlLCBib29sIG1vdW50ZWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgUVN0cmluZyAmbWltZVR5cGUsIFFTdHJpbmcgJmljb25OYW1lLCBRU3RyaW5nICZsYWJl
bCkKK3sKKwlpZiAoIGRldk5vZGUuZmluZCgiZmQiKSE9LTEgKQorCXsKKwkJaWYgKCBkZXZOb2Rl
LmZpbmQoIjM2MCIpIT0tMSB8fCBkZXZOb2RlLmZpbmQoIjEyMDAiKSE9LTEgKQorCQl7CisJCQlt
aW1lVHlwZSA9ICJtZWRpYS9mbG9wcHk1IjsKKwkJfQorCQllbHNlCisJCXsKKwkJCW1pbWVUeXBl
ID0gIm1lZGlhL2Zsb3BweSI7CisJCX0KKwkJbGFiZWwgPSBpMThuKCJGbG9wcHkiKTsKKwl9CisJ
ZWxzZSBpZiAoIG1vdW50UG9pbnQuZmluZCgiemlwIikhPS0xCisJICAgICAgIHx8IG1vdW50UG9p
bnQuZmluZCgiamF6IikhPS0xCisJICAgICAgIC8vIEZSRUVCU0QgU1BFQ0lGSUMKKwkgICAgICAg
fHwgZGV2Tm9kZS5maW5kKCIvYWZkIikhPS0xCisJICAgICAgICApCisJeworCQltaW1lVHlwZSA9
ICJtZWRpYS96aXAiOworCQlsYWJlbCA9IGkxOG4oIlppcCBEaXNrIik7CisJfQorCWVsc2UKKwl7
CisJCW1pbWVUeXBlID0gIm1lZGlhL2hkZCI7CisJCWxhYmVsID0gaTE4bigiSGFyZGRpc2siKTsK
Kwl9CisKKwlRU3RyaW5nIHRtcCA9IGRldk5vZGU7CisJaWYgKCB0bXAuc3RhcnRzV2l0aCgiL2Rl
di8iKSApCisJeworCQl0bXAgPSB0bXAubWlkKDUpOworCX0KKwlsYWJlbCs9ICIgKCIgKyB0bXAg
KyAiKSI7CisJbWltZVR5cGUrPSAobW91bnRlZCA/ICJfbW91bnRlZCIgOiAiX3VubW91bnRlZCIp
OworCWljb25OYW1lID0gUVN0cmluZzo6bnVsbDsKK30KKworI2luY2x1ZGUgImhhbGFkZGl0aW9u
Lm1vYyIKLS0tIGtkZWJhc2UtMy40LjEva2lvc2xhdmUvbWVkaWEva2RlZG1vZHVsZS9oYWxiYWNr
ZW5kLmNwcAkyMDA1LTA1LTIzIDEyOjE0OjE4LjAwMDAwMDAwMCArMDAwMAorKysga2RlYmFzZS0z
LjQuMS9raW9zbGF2ZS9tZWRpYS9rZGVkbW9kdWxlL2hhbGJhY2tlbmQuY3BwCTIwMDUtMDctMDMg
MjA6MjM6NTEuMDAwMDAwMDAwICswMDAwCkBAIC0xLDUgKzEsNSBAQAogLyogVGhpcyBmaWxlIGlz
IHBhcnQgb2YgdGhlIEtERSBQcm9qZWN0Ci0gICBDb3B5cmlnaHQgKGMpIDIwMDQgSuly9G1lIExv
ZGV3eWNrIDxsb2Rld3lja0BjbGlwcGVyLmVucy5mcj4KKyAgIENvcHlyaWdodCAoYykgMjAwNCAt
IDIwMDUgSsOpcsO0bWUgTG9kZXd5Y2sgPGxvZGV3eWNrQGNsaXBwZXIuZW5zLmZyPgogCiAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMTksMTEgKzE5LDEzIEBACiAjaW5jbHVkZSAiaGFsYmFja2VuZC5oIgog
I2luY2x1ZGUgImxpbnV4Y2Rwb2xsaW5nLmgiCiAKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKwogI2lu
Y2x1ZGUgPGtsb2NhbGUuaD4KICNpbmNsdWRlIDxrdXJsLmg+CiAjaW5jbHVkZSA8a2RlYnVnLmg+
CiAKLSNkZWZpbmUgTU9VTlRfU1VGRklYCShoYWxfdm9sdW1lX2lzX21vdW50ZWQoaGFsVm9sdW1l
KSA/IFFTdHJpbmcoIl9tb3VudGVkIikgOiBRU3RyaW5nKCJfdW5tb3VudGVkIikpCisjZGVmaW5l
IE1PVU5UX1NVRkZJWAkobGliaGFsX3ZvbHVtZV9pc19tb3VudGVkKGhhbFZvbHVtZSkgPyBRU3Ry
aW5nKCJfbW91bnRlZCIpIDogUVN0cmluZygiX3VubW91bnRlZCIpKQogCiAvKiBTdGF0aWMgaW5z
dGFuY2Ugb2YgdGhpcyBjbGFzcywgZm9yIHN0YXRpYyBIQUwgY2FsbGJhY2tzICovCiBzdGF0aWMg
SEFMQmFja2VuZCogc19IQUxCYWNrZW5kOwpAQCAtMzMsOSArMzUsOSBAQAogewogCWNoYXIqICAg
X3BwdF9zdHJpbmc7CiAJUVN0cmluZyBfcHB0X1FTdHJpbmc7Ci0JX3BwdF9zdHJpbmcgPSBoYWxf
ZGV2aWNlX2dldF9wcm9wZXJ0eV9zdHJpbmcoY3R4LCB1ZGksIGtleSk7CisJX3BwdF9zdHJpbmcg
PSBsaWJoYWxfZGV2aWNlX2dldF9wcm9wZXJ0eV9zdHJpbmcoY3R4LCB1ZGksIGtleSwgTlVMTCk7
CiAJX3BwdF9RU3RyaW5nID0gUVN0cmluZyhfcHB0X3N0cmluZyA/IF9wcHRfc3RyaW5nIDogIiIp
OwotCWhhbF9mcmVlX3N0cmluZyhfcHB0X3N0cmluZyk7CisJbGliaGFsX2ZyZWVfc3RyaW5nKF9w
cHRfc3RyaW5nKTsKIAlyZXR1cm4gX3BwdF9RU3RyaW5nOwogfQogCkBAIC01NSwxNCArNTcsMjQg
QEAKIHsKIAkvKiBDbG9zZSBIQUwgY29ubmVjdGlvbiAqLwogCWlmIChtX2hhbENvbnRleHQpCisJ
eworCQkjaWZkZWYgSEFMXzBfNAogCQloYWxfc2h1dGRvd24obV9oYWxDb250ZXh0KTsKKwkJI2Vs
c2UKKwkJbGliaGFsX2N0eF9zaHV0ZG93bihtX2hhbENvbnRleHQsIE5VTEwpOworCQlsaWJoYWxf
Y3R4X2ZyZWUobV9oYWxDb250ZXh0KTsKKwkJI2VuZGlmCisJfQogCWlmIChtX2hhbFN0b3JhZ2VQ
b2xpY3kpCi0JCWhhbF9zdG9yYWdlX3BvbGljeV9mcmVlKG1faGFsU3RvcmFnZVBvbGljeSk7CisJ
CWxpYmhhbF9zdG9yYWdlX3BvbGljeV9mcmVlKG1faGFsU3RvcmFnZVBvbGljeSk7CisKKwkvKiog
QHRvZG8gZW1wdHkgbWVkaWEgbGlzdCA/ICovCiB9CiAKIC8qIENvbm5lY3QgdG8gdGhlIEhBTCAq
LwogYm9vbCBIQUxCYWNrZW5kOjpJbml0SGFsKCkKIHsKKyNpZmRlZiBIQUxfMF80IC8qIEhBTCBB
UEkgMC40ICovCiAJLyogbGliaGFsIGluaXRpYWxpemF0aW9uICovCiAJbV9oYWxGdW5jdGlvbnMu
bWFpbl9sb29wX2ludGVncmF0aW9uCT0gSEFMQmFja2VuZDo6aGFsX21haW5fbG9vcF9pbnRlZ3Jh
dGlvbjsKIAltX2hhbEZ1bmN0aW9ucy5kZXZpY2VfYWRkZWQJCQkJPSBIQUxCYWNrZW5kOjpoYWxf
ZGV2aWNlX2FkZGVkOwpAQCAtNzUsMTkgKzg3LDcyIEBACiAJbV9oYWxDb250ZXh0ID0gaGFsX2lu
aXRpYWxpemUoJm1faGFsRnVuY3Rpb25zLCBGQUxTRSk7CiAJaWYgKCFtX2hhbENvbnRleHQpCiAJ
ewotCQlrZERlYnVnKCk8PCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBIQUwhIjw8ZW5kbDsKKwkJa2RE
ZWJ1ZygpIDw8ICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBIQUwhIiA8PCBlbmRsOwogCQlyZXR1cm4g
ZmFsc2U7CiAJfQogCiAJLyoqIEB0b2RvIGN1c3RvbWl6ZSB3YXRjaCBwb2xpY3kgKi8KLQlpZiAo
aGFsX2RldmljZV9wcm9wZXJ0eV93YXRjaF9hbGwobV9oYWxDb250ZXh0KSkKKwlrZERlYnVnKCkg
PDwgIldhdGNoIHByb3BlcnRpZXMiIDw8IGVuZGw7CisJaWYgKGxpYmhhbF9kZXZpY2VfcHJvcGVy
dHlfd2F0Y2hfYWxsKG1faGFsQ29udGV4dCwgTlVMTCkpCisJeworCQlrZERlYnVnKCkgPDwgIkZh
aWxlZCB0byB3YXRjaCBIQUwgcHJvcGVydGllcyEiIDw8IGVuZGw7CisJCXJldHVybiBmYWxzZTsK
Kwl9CisjZWxzZSAvKiBIQUwgQVBJID49IDAuNSAqLworCWtkRGVidWcoKSA8PCAiQ29udGV4dCBu
ZXciIDw8IGVuZGw7CisJbV9oYWxDb250ZXh0ID0gbGliaGFsX2N0eF9uZXcoKTsKKwlpZiAoIW1f
aGFsQ29udGV4dCkKIAl7Ci0JCWtkRGVidWcoKTw8IkZhaWxlZCB0byB3YXRjaCBIQUwgcHJvcGVy
dGllcyEiPDxlbmRsOworCQlrZERlYnVnKCkgPDwgIkZhaWxlZCB0byBpbml0aWFsaXplIEhBTCEi
IDw8IGVuZGw7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvLyBNYWluIGxvb3AgaW50ZWdyYXRp
b24KKwlrZERlYnVnKCkgPDwgIk1haW4gbG9vcCBpbnRlZ3JhdGlvbiIgPDwgZW5kbDsKKwlEQnVz
RXJyb3IgZXJyb3I7CisJZGJ1c19lcnJvcl9pbml0KCZlcnJvcik7CisJREJ1c0Nvbm5lY3Rpb24g
KmRidXNfY29ubmVjdGlvbiA9IGRidXNfYnVzX2dldChEQlVTX0JVU19TWVNURU0sICZlcnJvcik7
CisJaWYgKGRidXNfZXJyb3JfaXNfc2V0KCZlcnJvcikpIHsKKwkJZGJ1c19lcnJvcl9mcmVlKCZl
cnJvcik7CisJCWxpYmhhbF9jdHhfZnJlZShtX2hhbENvbnRleHQpOworCQltX2hhbENvbnRleHQg
PSBOVUxMOwogCQlyZXR1cm4gZmFsc2U7CiAJfQorCU1haW5Mb29wSW50ZWdyYXRpb24oZGJ1c19j
b25uZWN0aW9uKTsKKwlsaWJoYWxfY3R4X3NldF9kYnVzX2Nvbm5lY3Rpb24obV9oYWxDb250ZXh0
LCBkYnVzX2Nvbm5lY3Rpb24pOworCisJLy8gSEFMIGNhbGxiYWNrIGZ1bmN0aW9ucworCWtkRGVi
dWcoKSA8PCAiQ2FsbGJhY2sgZnVuY3Rpb25zIiA8PCBlbmRsOworCWxpYmhhbF9jdHhfc2V0X2Rl
dmljZV9hZGRlZChtX2hhbENvbnRleHQsIEhBTEJhY2tlbmQ6OmhhbF9kZXZpY2VfYWRkZWQpOwor
CWxpYmhhbF9jdHhfc2V0X2RldmljZV9yZW1vdmVkKG1faGFsQ29udGV4dCwgSEFMQmFja2VuZDo6
aGFsX2RldmljZV9yZW1vdmVkKTsKKwlsaWJoYWxfY3R4X3NldF9kZXZpY2VfbmV3X2NhcGFiaWxp
dHkgKG1faGFsQ29udGV4dCwgTlVMTCk7CisJbGliaGFsX2N0eF9zZXRfZGV2aWNlX2xvc3RfY2Fw
YWJpbGl0eSAobV9oYWxDb250ZXh0LCBOVUxMKTsKKwlsaWJoYWxfY3R4X3NldF9kZXZpY2VfcHJv
cGVydHlfbW9kaWZpZWQgKG1faGFsQ29udGV4dCwgSEFMQmFja2VuZDo6aGFsX2RldmljZV9wcm9w
ZXJ0eV9tb2RpZmllZCk7CisJbGliaGFsX2N0eF9zZXRfZGV2aWNlX2NvbmRpdGlvbihtX2hhbENv
bnRleHQsIEhBTEJhY2tlbmQ6OmhhbF9kZXZpY2VfY29uZGl0aW9uKTsKKworCWtkRGVidWcoKSA8
PCAiQ29udGV4dCBJbml0IiA8PCBlbmRsOworCWlmICghbGliaGFsX2N0eF9pbml0KG1faGFsQ29u
dGV4dCwgJmVycm9yKSkKKwl7CisJCWlmIChkYnVzX2Vycm9yX2lzX3NldCgmZXJyb3IpKQorCQkJ
ZGJ1c19lcnJvcl9mcmVlKCZlcnJvcik7CisJCWxpYmhhbF9jdHhfZnJlZShtX2hhbENvbnRleHQp
OworCQltX2hhbENvbnRleHQgPSBOVUxMOworCQlrZERlYnVnKCkgPDwgIkZhaWxlZCB0byBpbml0
IEhBTCBjb250ZXh0ISIgPDwgZW5kbDsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qKiBAdG9k
byBjdXN0b21pemUgd2F0Y2ggcG9saWN5ICovCisJa2REZWJ1ZygpIDw8ICJXYXRjaCBwcm9wZXJ0
aWVzIiA8PCBlbmRsOworCWlmICghbGliaGFsX2RldmljZV9wcm9wZXJ0eV93YXRjaF9hbGwobV9o
YWxDb250ZXh0LCAmZXJyb3IpKQorCXsKKwkJa2REZWJ1ZygpIDw8ICJGYWlsZWQgdG8gd2F0Y2gg
SEFMIHByb3BlcnRpZXMhIiA8PCBlbmRsOworCQlyZXR1cm4gZmFsc2U7CisJfQorI2VuZGlmCiAK
IAkvKiBsaWJoYWwtc3RvcmFnZSBpbml0aWFsaXphdGlvbiAqLwotCW1faGFsU3RvcmFnZVBvbGlj
eSA9IGhhbF9zdG9yYWdlX3BvbGljeV9uZXcoKTsKKwlrZERlYnVnKCkgPDwgIlN0b3JhZ2UgUG9s
aWN5IiA8PCBlbmRsOworCW1faGFsU3RvcmFnZVBvbGljeSA9IGxpYmhhbF9zdG9yYWdlX3BvbGlj
eV9uZXcoKTsKIAkvKiogQHRvZG8gZGVmaW5lIGxpYmhhbC1zdG9yYWdlIGljb24gcG9saWN5ICov
CiAKIAkvKiBMaXN0IGRldmljZXMgYXQgc3RhcnR1cCAqLwpAQCAtOTcsOCArMTYyLDEwIEBACiAv
KiBMaXN0IGRldmljZXMgKGF0IHN0YXJ0dXApKi8KIGJvb2wgSEFMQmFja2VuZDo6TGlzdERldmlj
ZXMoKQogeworCWtkRGVidWcoKSA8PCAiTGlzdERldmljZXMiIDw8IGVuZGw7CisKIAlpbnQgbnVt
RGV2aWNlczsKLQljaGFyKiogaGFsRGV2aWNlTGlzdCA9IGhhbF9nZXRfYWxsX2RldmljZXMobV9o
YWxDb250ZXh0LCAmbnVtRGV2aWNlcyk7CisJY2hhcioqIGhhbERldmljZUxpc3QgPSBsaWJoYWxf
Z2V0X2FsbF9kZXZpY2VzKG1faGFsQ29udGV4dCwgJm51bURldmljZXMsIE5VTEwpOwogCiAJaWYg
KCFoYWxEZXZpY2VMaXN0KQogCQlyZXR1cm4gZmFsc2U7CkBAIC0xMTYsNyArMTgzLDcgQEAKIHsK
IAkvKiBXZSBkb24ndCBkZWFsIHdpdGggZGV2aWNlcyB0aGF0IGRvIG5vdCBleHBvc2UgdGhlaXIg
Y2FwYWJpbGl0aWVzLgogCUlmIHdlIGRvbid0IGNoZWNrIHRoaXMsIHdlIHdpbGwgZ2V0IGEgbG90
IG9mIHdhcm5pbmcgbWVzc2FnZXMgZnJvbSBsaWJoYWwgKi8KLQlpZiAoIWhhbF9kZXZpY2VfcHJv
cGVydHlfZXhpc3RzKG1faGFsQ29udGV4dCwgdWRpLCAiaW5mby5jYXBhYmlsaXRpZXMiKSkKKwlp
ZiAoIWxpYmhhbF9kZXZpY2VfcHJvcGVydHlfZXhpc3RzKG1faGFsQ29udGV4dCwgdWRpLCAiaW5m
by5jYXBhYmlsaXRpZXMiLCBOVUxMKSkKIAkJcmV0dXJuOwogCiAJLyogSWYgdGhlIGRldmljZSBp
cyBhbHJlYWR5IGxpc3RlZCwgZG8gbm90IHByb2Nlc3MuCkBAIC0xMjYsMTcgKzE5MywxOCBAQAog
CQlyZXR1cm47CiAKIAkvKiBBZGQgdm9sdW1lIGJsb2NrIGRldmljZXMgKi8KLQlpZiAoaGFsX2Rl
dmljZV9xdWVyeV9jYXBhYmlsaXR5KG1faGFsQ29udGV4dCwgdWRpLCAidm9sdW1lIikpCisJaWYg
KGxpYmhhbF9kZXZpY2VfcXVlcnlfY2FwYWJpbGl0eShtX2hhbENvbnRleHQsIHVkaSwgInZvbHVt
ZSIsIE5VTEwpKQogCXsKIAkJLyogV2Ugb25seSBsaXN0IHZvbHVtZSB0aGF0IGhhdmUgYSBmaWxl
c3lzdGVtIG9yIHZvbHVtZSB0aGF0IGhhdmUgYW4gYXVkaW8gdHJhY2sqLwogCQlpZiAoIChoYWxf
ZGV2aWNlX2dldF9wcm9wZXJ0eV9RU3RyaW5nKG1faGFsQ29udGV4dCwgdWRpLCAidm9sdW1lLmZz
dXNhZ2UiKSAhPSAiZmlsZXN5c3RlbSIpICYmCi0JCSAgICAgKCFoYWxfZGV2aWNlX2dldF9wcm9w
ZXJ0eV9ib29sKG1faGFsQ29udGV4dCwgdWRpLCAidm9sdW1lLmRpc2MuaGFzX2F1ZGlvIikpICkK
KwkJICAgICAoIWxpYmhhbF9kZXZpY2VfZ2V0X3Byb3BlcnR5X2Jvb2wobV9oYWxDb250ZXh0LCB1
ZGksICJ2b2x1bWUuZGlzYy5oYXNfYXVkaW8iLCBOVUxMKSkgKQogCQkJcmV0dXJuOwogCQkvKiBR
dWVyeSBkcml2ZSB1ZGkgKi8KIAkJUVN0cmluZyBkcml2ZVVkaSA9IGhhbF9kZXZpY2VfZ2V0X3By
b3BlcnR5X1FTdHJpbmcobV9oYWxDb250ZXh0LCB1ZGksICJibG9jay5zdG9yYWdlX2RldmljZSIp
OwogCQkvKiBXZSBkb24ndCBsaXN0IGZsb3BweSB2b2x1bWVzIGJlY2F1c2Ugd2UgbGlzdCBmbG9w
cHkgZHJpdmVzICovCiAJCWlmICgoaGFsX2RldmljZV9nZXRfcHJvcGVydHlfUVN0cmluZyhtX2hh
bENvbnRleHQsIGRyaXZlVWRpLmFzY2lpKCksICJzdG9yYWdlLmRyaXZlX3R5cGUiKSA9PSAiZmxv
cHB5IikgfHwKLQkJICAgIChoYWxfZGV2aWNlX2dldF9wcm9wZXJ0eV9RU3RyaW5nKG1faGFsQ29u
dGV4dCwgZHJpdmVVZGkuYXNjaWkoKSwgInN0b3JhZ2UuZHJpdmVfdHlwZSIpID09ICJ6aXAiKSkK
KwkJICAgIChoYWxfZGV2aWNlX2dldF9wcm9wZXJ0eV9RU3RyaW5nKG1faGFsQ29udGV4dCwgZHJp
dmVVZGkuYXNjaWkoKSwgInN0b3JhZ2UuZHJpdmVfdHlwZSIpID09ICJ6aXAiKSB8fAorCQkgICAg
KGhhbF9kZXZpY2VfZ2V0X3Byb3BlcnR5X1FTdHJpbmcobV9oYWxDb250ZXh0LCBkcml2ZVVkaS5h
c2NpaSgpLCAic3RvcmFnZS5kcml2ZV90eXBlIikgPT0gImpheiIpKQogCQkJcmV0dXJuOwogCiAJ
CS8qKiBAdG9kbyBjaGVjayBleGNsdXNpb24gbGlzdCAqKi8KQEAgLTE0OCwxMSArMjE2LDEyIEBA
CiAKIAkJcmV0dXJuOwogCX0KLQorCQogCS8qIEZsb3BweSAmIHppcCBkcml2ZXMgKi8KLQlpZiAo
aGFsX2RldmljZV9xdWVyeV9jYXBhYmlsaXR5KG1faGFsQ29udGV4dCwgdWRpLCAic3RvcmFnZSIp
KQorCWlmIChsaWJoYWxfZGV2aWNlX3F1ZXJ5X2NhcGFiaWxpdHkobV9oYWxDb250ZXh0LCB1ZGks
ICJzdG9yYWdlIiwgTlVMTCkpCiAJCWlmICgoaGFsX2RldmljZV9nZXRfcHJvcGVydHlfUVN0cmlu
ZyhtX2hhbENvbnRleHQsIHVkaSwgInN0b3JhZ2UuZHJpdmVfdHlwZSIpID09ICJmbG9wcHkiKSB8
fAotCQkgICAgKGhhbF9kZXZpY2VfZ2V0X3Byb3BlcnR5X1FTdHJpbmcobV9oYWxDb250ZXh0LCB1
ZGksICJzdG9yYWdlLmRyaXZlX3R5cGUiKSA9PSAiemlwIikpCisJCSAgICAoaGFsX2RldmljZV9n
ZXRfcHJvcGVydHlfUVN0cmluZyhtX2hhbENvbnRleHQsIHVkaSwgInN0b3JhZ2UuZHJpdmVfdHlw
ZSIpID09ICJ6aXAiKSB8fAorCQkgICAgKGhhbF9kZXZpY2VfZ2V0X3Byb3BlcnR5X1FTdHJpbmco
bV9oYWxDb250ZXh0LCB1ZGksICJzdG9yYWdlLmRyaXZlX3R5cGUiKSA9PSAiamF6IikpCiAJCXsK
IAkJCS8qIENyZWF0ZSBtZWRpdW0gKi8KIAkJCU1lZGl1bSogbWVkaXVtID0gbmV3IE1lZGl1bSh1
ZGksICIiKTsKQEAgLTE2Miw3ICsyMzEsNyBAQAogCQl9CiAKIAkvKiBDYW1lcmEgaGFuZGxlZCBi
eSBncGhvdG8yKi8KLQlpZiAoaGFsX2RldmljZV9xdWVyeV9jYXBhYmlsaXR5KG1faGFsQ29udGV4
dCwgdWRpLCAiY2FtZXJhIikpCisJaWYgKGxpYmhhbF9kZXZpY2VfcXVlcnlfY2FwYWJpbGl0eSht
X2hhbENvbnRleHQsIHVkaSwgImNhbWVyYSIsIE5VTEwpKQogCiAJCXsKIAkJCS8qIENyZWF0ZSBt
ZWRpdW0gKi8KQEAgLTE4MCw5ICsyNDksMTQgQEAKIAogdm9pZCBIQUxCYWNrZW5kOjpNb2RpZnlE
ZXZpY2UoY29uc3QgY2hhciAqdWRpLCBjb25zdCBjaGFyKiBrZXkpCiB7Ci0JUV9VTlVTRUQodWRp
KTsKKwljb25zdCBjaGFyKiBtZWRpdW1VZGkgPSBmaW5kTWVkaXVtVWRpRnJvbVVkaSh1ZGkpOwor
CWlmICghbWVkaXVtVWRpKQorCQlyZXR1cm47CisJUmVzZXRQcm9wZXJ0aWVzKG1lZGl1bVVkaSk7
IAorCiAJUV9VTlVTRUQoa2V5KTsKIC8qCisJUV9VTlVTRUQodWRpKTsKIAlUT0RPOiBlbmFibGUg
dGhpcyB3aGVuIHRoZSB3YXRjaCBwb2xpY3kgaXMgd3JpdHRlbgogKi8KIH0KQEAgLTIyOSw4ICsz
MDMsOCBAQAogCQlyZXR1cm4gbWVkaXVtLT5pZCgpLmFzY2lpKCk7CiAKIAkvKiBIYXJkIHBhcnQg
OiB0aGlzIGlzIGEgdm9sdW1lIHdob3NlIGRyaXZlIGlzIHJlZ2lzdGVyZWQgKi8KLQlpZiAoaGFs
X2RldmljZV9wcm9wZXJ0eV9leGlzdHMobV9oYWxDb250ZXh0LCB1ZGksICJpbmZvLmNhcGFiaWxp
dGllcyIpKQotCQlpZiAoaGFsX2RldmljZV9xdWVyeV9jYXBhYmlsaXR5KG1faGFsQ29udGV4dCwg
dWRpLCAidm9sdW1lIikpCisJaWYgKGxpYmhhbF9kZXZpY2VfcHJvcGVydHlfZXhpc3RzKG1faGFs
Q29udGV4dCwgdWRpLCAiaW5mby5jYXBhYmlsaXRpZXMiLCBOVUxMKSkKKwkJaWYgKGxpYmhhbF9k
ZXZpY2VfcXVlcnlfY2FwYWJpbGl0eShtX2hhbENvbnRleHQsIHVkaSwgInZvbHVtZSIsIE5VTEwp
KQogCQl7CiAJCQlRU3RyaW5nIGRyaXZlVWRpID0gaGFsX2RldmljZV9nZXRfcHJvcGVydHlfUVN0
cmluZyhtX2hhbENvbnRleHQsIHVkaSwgImJsb2NrLnN0b3JhZ2VfZGV2aWNlIik7CiAJCQlyZXR1
cm4gZmluZE1lZGl1bVVkaUZyb21VZGkoZHJpdmVVZGkuYXNjaWkoKSk7CkBAIC0yNDQsMTEgKzMx
OCwxMSBAQAogCWtkRGVidWcoKSA8PCAiSEFMQmFja2VuZDo6c2V0UHJvcGVydGllcyIgPDwgZW5k
bDsKIAogCU1lZGl1bSogbSA9IG5ldyBNZWRpdW0obWVkaXVtVWRpLCAiIik7Ci0JaWYgKGhhbF9k
ZXZpY2VfcXVlcnlfY2FwYWJpbGl0eShtX2hhbENvbnRleHQsIG1lZGl1bVVkaSwgInZvbHVtZSIp
KQorCWlmIChsaWJoYWxfZGV2aWNlX3F1ZXJ5X2NhcGFiaWxpdHkobV9oYWxDb250ZXh0LCBtZWRp
dW1VZGksICJ2b2x1bWUiLCBOVUxMKSkKIAkJc2V0Vm9sdW1lUHJvcGVydGllcyhtKTsKLQlpZiAo
aGFsX2RldmljZV9xdWVyeV9jYXBhYmlsaXR5KG1faGFsQ29udGV4dCwgbWVkaXVtVWRpLCAic3Rv
cmFnZSIpKQorCWlmIChsaWJoYWxfZGV2aWNlX3F1ZXJ5X2NhcGFiaWxpdHkobV9oYWxDb250ZXh0
LCBtZWRpdW1VZGksICJzdG9yYWdlIiwgTlVMTCkpCiAJCXNldEZsb3BweVByb3BlcnRpZXMobSk7
Ci0JaWYgKGhhbF9kZXZpY2VfcXVlcnlfY2FwYWJpbGl0eShtX2hhbENvbnRleHQsIG1lZGl1bVVk
aSwgImNhbWVyYSIpKQorCWlmIChsaWJoYWxfZGV2aWNlX3F1ZXJ5X2NhcGFiaWxpdHkobV9oYWxD
b250ZXh0LCBtZWRpdW1VZGksICJjYW1lcmEiLCBOVUxMKSkKIAkJc2V0Q2FtZXJhUHJvcGVydGll
cyhtKTsKIAogCW1fbWVkaWFMaXN0LmNoYW5nZU1lZGl1bVN0YXRlKCptKTsKQEAgLTI2MiwzNCAr
MzM2LDM1IEBACiAKIAljb25zdCBjaGFyKiB1ZGkgPSBtZWRpdW0tPmlkKCkuYXNjaWkoKTsKIAkv
KiBDaGVjayBpZiB0aGUgZGV2aWNlIHN0aWxsIGV4aXN0cyAqLwotCWlmICghaGFsX2RldmljZV9l
eGlzdHMobV9oYWxDb250ZXh0LCB1ZGkpKQorCWlmICghbGliaGFsX2RldmljZV9leGlzdHMobV9o
YWxDb250ZXh0LCB1ZGksIE5VTEwpKQogCQkJcmV0dXJuOwogCiAJLyogR2V0IGRldmljZSBpbmZv
cm1hdGlvbiBmcm9tIGxpYmhhbC1zdG9yYWdlICovCi0JSGFsVm9sdW1lKiBoYWxWb2x1bWUgPSBo
YWxfdm9sdW1lX2Zyb21fdWRpKG1faGFsQ29udGV4dCwgdWRpKTsKKwlMaWJIYWxWb2x1bWUqIGhh
bFZvbHVtZSA9IGxpYmhhbF92b2x1bWVfZnJvbV91ZGkobV9oYWxDb250ZXh0LCB1ZGkpOwogCWlm
ICghaGFsVm9sdW1lKQogCQlyZXR1cm47Ci0KLQlRU3RyaW5nIGRyaXZlVWRpID0gaGFsX3ZvbHVt
ZV9nZXRfc3RvcmFnZV9kZXZpY2VfdWRpKGhhbFZvbHVtZSk7Ci0JSGFsRHJpdmUqICBoYWxEcml2
ZSAgPSBoYWxfZHJpdmVfZnJvbV91ZGkobV9oYWxDb250ZXh0LCBkcml2ZVVkaS5hc2NpaSgpKTsK
KwlRU3RyaW5nIGRyaXZlVWRpID0gbGliaGFsX3ZvbHVtZV9nZXRfc3RvcmFnZV9kZXZpY2VfdWRp
KGhhbFZvbHVtZSk7CisJTGliSGFsRHJpdmUqICBoYWxEcml2ZSAgPSBsaWJoYWxfZHJpdmVfZnJv
bV91ZGkobV9oYWxDb250ZXh0LCBkcml2ZVVkaS5hc2NpaSgpKTsKIAogCW1lZGl1bS0+c2V0TmFt
ZSgKLQkJZ2VuZXJhdGVOYW1lKGhhbF92b2x1bWVfZ2V0X2RldmljZV9maWxlKGhhbFZvbHVtZSkp
ICk7CisJCWdlbmVyYXRlTmFtZShsaWJoYWxfdm9sdW1lX2dldF9kZXZpY2VfZmlsZShoYWxWb2x1
bWUpKSApOwogCiAJbWVkaXVtLT5tb3VudGFibGVTdGF0ZSgKLQkJaGFsX3ZvbHVtZV9nZXRfZGV2
aWNlX2ZpbGUoaGFsVm9sdW1lKSwJCS8qIERldmljZSBub2RlICovCi0JCWhhbF92b2x1bWVfZ2V0
X21vdW50X3BvaW50KGhhbFZvbHVtZSksCQkvKiBNb3VudCBwb2ludCAqLwotCQloYWxfdm9sdW1l
X2dldF9mc3R5cGUoaGFsVm9sdW1lKSwJCQkvKiBGaWxlc3lzdGVtIHR5cGUgKi8KLQkJaGFsX3Zv
bHVtZV9pc19tb3VudGVkKGhhbFZvbHVtZSkgKTsJCQkvKiBNb3VudGVkID8gKi8KKwkJbGliaGFs
X3ZvbHVtZV9nZXRfZGV2aWNlX2ZpbGUoaGFsVm9sdW1lKSwJCS8qIERldmljZSBub2RlICovCisJ
CWxpYmhhbF92b2x1bWVfZ2V0X21vdW50X3BvaW50KGhhbFZvbHVtZSksCQkvKiBNb3VudCBwb2lu
dCAqLworCQlsaWJoYWxfdm9sdW1lX2dldF9mc3R5cGUoaGFsVm9sdW1lKSwJCQkvKiBGaWxlc3lz
dGVtIHR5cGUgKi8KKwkJbGliaGFsX3ZvbHVtZV9pc19tb3VudGVkKGhhbFZvbHVtZSkgKTsJCQkv
KiBNb3VudGVkID8gKi8KIAogCVFTdHJpbmcgbWltZVR5cGU7Ci0JaWYgKGhhbF92b2x1bWVfaXNf
ZGlzYyhoYWxWb2x1bWUpKQorCWlmIChsaWJoYWxfdm9sdW1lX2lzX2Rpc2MoaGFsVm9sdW1lKSkK
IAl7CiAJCW1pbWVUeXBlID0gIm1lZGlhL2Nkcm9tIiArIE1PVU5UX1NVRkZJWDsKIAotCQlIYWxW
b2x1bWVEaXNjVHlwZSBkaXNjVHlwZSA9IGhhbF92b2x1bWVfZ2V0X2Rpc2NfdHlwZShoYWxWb2x1
bWUpOwotCQlpZiAoKGRpc2NUeXBlID09IEhBTF9WT0xVTUVfRElTQ19UWVBFX0NEUikgfHwgKGRp
c2NUeXBlID09IEhBTF9WT0xVTUVfRElTQ19UWVBFX0NEUlcpKQotCQkJaWYgKGhhbF92b2x1bWVf
ZGlzY19pc19ibGFuayhoYWxWb2x1bWUpKQorCQlMaWJIYWxWb2x1bWVEaXNjVHlwZSBkaXNjVHlw
ZSA9IGxpYmhhbF92b2x1bWVfZ2V0X2Rpc2NfdHlwZShoYWxWb2x1bWUpOworCQlpZiAoKGRpc2NU
eXBlID09IExJQkhBTF9WT0xVTUVfRElTQ19UWVBFX0NEUk9NKSB8fAorCQkgICAgKGRpc2NUeXBl
ID09IExJQkhBTF9WT0xVTUVfRElTQ19UWVBFX0NEUikgfHwKKwkJCShkaXNjVHlwZSA9PSBMSUJI
QUxfVk9MVU1FX0RJU0NfVFlQRV9DRFJXKSkKKwkJCWlmIChsaWJoYWxfdm9sdW1lX2Rpc2NfaXNf
YmxhbmsoaGFsVm9sdW1lKSkKIAkJCXsKIAkJCQltaW1lVHlwZSA9ICJtZWRpYS9ibGFua2NkIjsK
IAkJCQltZWRpdW0tPnVubW91bnRhYmxlU3RhdGUoIiIpOwpAQCAtMjk3LDEwICszNzIsMTAgQEAK
IAkJCWVsc2UKIAkJCQltaW1lVHlwZSA9ICJtZWRpYS9jZHdyaXRlciIgKyBNT1VOVF9TVUZGSVg7
CiAKLQkJaWYgKChkaXNjVHlwZSA9PSBIQUxfVk9MVU1FX0RJU0NfVFlQRV9EVkRST00pIHx8IChk
aXNjVHlwZSA9PSBIQUxfVk9MVU1FX0RJU0NfVFlQRV9EVkRSQU0pIHx8Ci0JCQkoZGlzY1R5cGUg
PT0gSEFMX1ZPTFVNRV9ESVNDX1RZUEVfRFZEUikgfHwgKGRpc2NUeXBlID09IEhBTF9WT0xVTUVf
RElTQ19UWVBFX0RWRFJXKSB8fAotCQkJKGRpc2NUeXBlID09IEhBTF9WT0xVTUVfRElTQ19UWVBF
X0RWRFBMVVNSKSB8fCAoZGlzY1R5cGUgPT0gSEFMX1ZPTFVNRV9ESVNDX1RZUEVfRFZEUExVU1JX
KSApCi0JCQlpZiAoaGFsX3ZvbHVtZV9kaXNjX2lzX2JsYW5rKGhhbFZvbHVtZSkpCisJCWlmICgo
ZGlzY1R5cGUgPT0gTElCSEFMX1ZPTFVNRV9ESVNDX1RZUEVfRFZEUk9NKSB8fCAoZGlzY1R5cGUg
PT0gTElCSEFMX1ZPTFVNRV9ESVNDX1RZUEVfRFZEUkFNKSB8fAorCQkJKGRpc2NUeXBlID09IExJ
QkhBTF9WT0xVTUVfRElTQ19UWVBFX0RWRFIpIHx8IChkaXNjVHlwZSA9PSBMSUJIQUxfVk9MVU1F
X0RJU0NfVFlQRV9EVkRSVykgfHwKKwkJCShkaXNjVHlwZSA9PSBMSUJIQUxfVk9MVU1FX0RJU0Nf
VFlQRV9EVkRQTFVTUikgfHwgKGRpc2NUeXBlID09IExJQkhBTF9WT0xVTUVfRElTQ19UWVBFX0RW
RFBMVVNSVykgKQorCQkJaWYgKGxpYmhhbF92b2x1bWVfZGlzY19pc19ibGFuayhoYWxWb2x1bWUp
KQogCQkJewogCQkJCW1pbWVUeXBlID0gIm1lZGlhL2JsYW5rZHZkIjsKIAkJCQltZWRpdW0tPnVu
bW91bnRhYmxlU3RhdGUoIiIpOwpAQCAtMzA4LDE2ICszODMsMTYgQEAKIAkJCWVsc2UKIAkJCQlt
aW1lVHlwZSA9ICJtZWRpYS9kdmQiICsgTU9VTlRfU1VGRklYOwogCi0JCWlmIChoYWxfdm9sdW1l
X2Rpc2NfaGFzX2F1ZGlvKGhhbFZvbHVtZSkgJiYgIWhhbF92b2x1bWVfZGlzY19oYXNfZGF0YSho
YWxWb2x1bWUpKQorCQlpZiAobGliaGFsX3ZvbHVtZV9kaXNjX2hhc19hdWRpbyhoYWxWb2x1bWUp
ICYmICFsaWJoYWxfdm9sdW1lX2Rpc2NfaGFzX2RhdGEoaGFsVm9sdW1lKSkKIAkJewogCQkJbWlt
ZVR5cGUgPSAibWVkaWEvYXVkaW9jZCI7Ci0JCQltZWRpdW0tPnVubW91bnRhYmxlU3RhdGUoICJh
dWRpb2NkOi8/ZGV2aWNlPSIgKyBRU3RyaW5nKGhhbF92b2x1bWVfZ2V0X2RldmljZV9maWxlKGhh
bFZvbHVtZSkpICk7CisJCQltZWRpdW0tPnVubW91bnRhYmxlU3RhdGUoICJhdWRpb2NkOi8/ZGV2
aWNlPSIgKyBRU3RyaW5nKGxpYmhhbF92b2x1bWVfZ2V0X2RldmljZV9maWxlKGhhbFZvbHVtZSkp
ICk7CiAJCX0KIAogCQltZWRpdW0tPnNldEljb25OYW1lKFFTdHJpbmc6Om51bGwpOwotCQkKKwog
CQkvKiBjaGVjayBpZiB0aGUgZGlzYyBpZCBhIHZjZCBvciBhIHZpZGVvIGR2ZCAqLwotCQlEaXNj
VHlwZSB0eXBlID0gTGludXhDRFBvbGxpbmc6OmlkZW50aWZ5RGlzY1R5cGUoaGFsX3ZvbHVtZV9n
ZXRfZGV2aWNlX2ZpbGUoaGFsVm9sdW1lKSk7CisJCURpc2NUeXBlIHR5cGUgPSBMaW51eENEUG9s
bGluZzo6aWRlbnRpZnlEaXNjVHlwZShsaWJoYWxfdm9sdW1lX2dldF9kZXZpY2VfZmlsZShoYWxW
b2x1bWUpKTsKIAkJc3dpdGNoICh0eXBlKQogCQl7CiAJCSAgY2FzZSBEaXNjVHlwZTo6VkNEOgpA
QCAtMzM0LDQ0ICs0MDksNDggQEAKIAllbHNlCiAJewogCQltaW1lVHlwZSA9ICJtZWRpYS9oZGQi
ICsgTU9VTlRfU1VGRklYOwotCQlpZiAoaGFsX2RyaXZlX2lzX2hvdHBsdWdnYWJsZShoYWxEcml2
ZSkpCi0JCXsJCQorCQlpZiAobGliaGFsX2RyaXZlX2lzX2hvdHBsdWdnYWJsZShoYWxEcml2ZSkp
CisJCXsKIAkJCW1pbWVUeXBlID0gIm1lZGlhL3JlbW92YWJsZSIgKyBNT1VOVF9TVUZGSVg7CiAJ
CQltZWRpdW0tPm5lZWRNb3VudGluZygpOwotCQkJc3dpdGNoIChoYWxfZHJpdmVfZ2V0X3R5cGUo
aGFsRHJpdmUpKSB7Ci0JCQljYXNlIEhBTF9EUklWRV9UWVBFX0NPTVBBQ1RfRkxBU0g6CisJCQlz
d2l0Y2ggKGxpYmhhbF9kcml2ZV9nZXRfdHlwZShoYWxEcml2ZSkpIHsKKwkJCWNhc2UgTElCSEFM
X0RSSVZFX1RZUEVfQ09NUEFDVF9GTEFTSDoKIAkJCQltZWRpdW0tPnNldEljb25OYW1lKCJjb21w
YWN0X2ZsYXNoIiArIE1PVU5UX1NVRkZJWCk7CiAJCQkJYnJlYWs7Ci0JCQljYXNlIEhBTF9EUklW
RV9UWVBFX01FTU9SWV9TVElDSzoKKwkJCWNhc2UgTElCSEFMX0RSSVZFX1RZUEVfTUVNT1JZX1NU
SUNLOgogCQkJCW1lZGl1bS0+c2V0SWNvbk5hbWUoIm1lbW9yeV9zdGljayIgKyBNT1VOVF9TVUZG
SVgpOwogCQkJCWJyZWFrOwotCQkJY2FzZSBIQUxfRFJJVkVfVFlQRV9TTUFSVF9NRURJQToKKwkJ
CWNhc2UgTElCSEFMX0RSSVZFX1RZUEVfU01BUlRfTUVESUE6CiAJCQkJbWVkaXVtLT5zZXRJY29u
TmFtZSgic21hcnRfbWVkaWEiICsgTU9VTlRfU1VGRklYKTsKIAkJCQlicmVhazsKLQkJCWNhc2Ug
SEFMX0RSSVZFX1RZUEVfU0RfTU1DOgorCQkJY2FzZSBMSUJIQUxfRFJJVkVfVFlQRV9TRF9NTUM6
CiAJCQkJbWVkaXVtLT5zZXRJY29uTmFtZSgic2RfbW1jIiArIE1PVU5UX1NVRkZJWCk7CiAJCQkJ
YnJlYWs7Ci0JCQljYXNlIEhBTF9EUklWRV9UWVBFX1BPUlRBQkxFX0FVRElPX1BMQVlFUjoKKwkJ
CWNhc2UgTElCSEFMX0RSSVZFX1RZUEVfUE9SVEFCTEVfQVVESU9fUExBWUVSOgogCQkJCW1lZGl1
bS0+c2V0SWNvbk5hbWUoUVN0cmluZzo6bnVsbCk7IC8vRklYTUUgbmVlZCBpY29uCiAJCQkJYnJl
YWs7Ci0JCQljYXNlIEhBTF9EUklWRV9UWVBFX0NBTUVSQToKKwkJCWNhc2UgTElCSEFMX0RSSVZF
X1RZUEVfQ0FNRVJBOgogCQkJCW1lZGl1bS0+c2V0SWNvbk5hbWUoImNhbWVyYSIgKyBNT1VOVF9T
VUZGSVgpOwotCQkJCWJyZWFrOwkJCQotCQkJY2FzZSBIQUxfRFJJVkVfVFlQRV9UQVBFOgorCQkJ
CWJyZWFrOworCQkJY2FzZSBMSUJIQUxfRFJJVkVfVFlQRV9UQVBFOgogCQkJCW1lZGl1bS0+c2V0
SWNvbk5hbWUoUVN0cmluZzo6bnVsbCk7IC8vRklYTUUgbmVlZCBpY29uCi0JCQkJYnJlYWs7CQkJ
Ci0JCQlkZWZhdWx0OgkKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CiAJCQkJbWVkaXVtLT5zZXRJ
Y29uTmFtZShRU3RyaW5nOjpudWxsKTsKIAkJCX07CiAJCX07CiAJfQogCW1lZGl1bS0+c2V0TWlt
ZVR5cGUobWltZVR5cGUpOwogCi0JbWVkaXVtLT5zZXRMYWJlbChRU3RyaW5nOjpmcm9tVXRmOCgg
aGFsX3ZvbHVtZV9wb2xpY3lfY29tcHV0ZV9kaXNwbGF5X25hbWUoaGFsRHJpdmUsCi0JCWhhbFZv
bHVtZSwgbV9oYWxTdG9yYWdlUG9saWN5KSApICk7CisJY2hhciogbmFtZSA9IGxpYmhhbF92b2x1
bWVfcG9saWN5X2NvbXB1dGVfZGlzcGxheV9uYW1lKGhhbERyaXZlLCBoYWxWb2x1bWUsIG1faGFs
U3RvcmFnZVBvbGljeSk7CisJLy9jaGFyKiBuYW1lID0gbGliaGFsX2RyaXZlX3BvbGljeV9jb21w
dXRlX2Rpc3BsYXlfbmFtZShoYWxEcml2ZSwgaGFsVm9sdW1lLCBtX2hhbFN0b3JhZ2VQb2xpY3kp
OworCVFTdHJpbmcgdm9sdW1lX25hbWUgPSBRU3RyaW5nOjpmcm9tVXRmOChuYW1lKTsKKwlRU3Ry
aW5nIG1lZGlhX25hbWUgPSB2b2x1bWVfbmFtZTsKKwltZWRpdW0tPnNldExhYmVsKG1lZGlhX25h
bWUpOworCWZyZWUobmFtZSk7CiAKLQloYWxfZHJpdmVfZnJlZShoYWxEcml2ZSk7Ci0JaGFsX3Zv
bHVtZV9mcmVlKGhhbFZvbHVtZSk7CisJbGliaGFsX2RyaXZlX2ZyZWUoaGFsRHJpdmUpOworCWxp
YmhhbF92b2x1bWVfZnJlZShoYWxWb2x1bWUpOwogfQogCiAvLyBIYW5kbGUgZmxvcHBpZXMgYW5k
IHppcCBkcml2ZXMKQEAgLTM4MSwzNCArNDYwLDM0IEBACiAKIAljb25zdCBjaGFyKiB1ZGkgPSBt
ZWRpdW0tPmlkKCkuYXNjaWkoKTsKIAkvKiBDaGVjayBpZiB0aGUgZGV2aWNlIHN0aWxsIGV4aXN0
cyAqLwotCWlmICghaGFsX2RldmljZV9leGlzdHMobV9oYWxDb250ZXh0LCB1ZGkpKQorCWlmICgh
bGliaGFsX2RldmljZV9leGlzdHMobV9oYWxDb250ZXh0LCB1ZGksIE5VTEwpKQogCQlyZXR1cm47
CiAKLQlIYWxEcml2ZSogIGhhbERyaXZlICA9IGhhbF9kcml2ZV9mcm9tX3VkaShtX2hhbENvbnRl
eHQsIHVkaSk7CisJTGliSGFsRHJpdmUqICBoYWxEcml2ZSAgPSBsaWJoYWxfZHJpdmVfZnJvbV91
ZGkobV9oYWxDb250ZXh0LCB1ZGkpOwogCWlmICghaGFsRHJpdmUpCiAJCXJldHVybjsKIAlpbnQg
bnVtVm9sdW1lczsKLQljaGFyKiogdm9sdW1lcyA9IGhhbF9kcml2ZV9maW5kX2FsbF92b2x1bWVz
KG1faGFsQ29udGV4dCwgaGFsRHJpdmUsICZudW1Wb2x1bWVzKTsKLQlIYWxWb2x1bWUqIGhhbFZv
bHVtZSA9IE5VTEw7CisJY2hhcioqIHZvbHVtZXMgPSBsaWJoYWxfZHJpdmVfZmluZF9hbGxfdm9s
dW1lcyhtX2hhbENvbnRleHQsIGhhbERyaXZlLCAmbnVtVm9sdW1lcyk7CisJTGliSGFsVm9sdW1l
KiBoYWxWb2x1bWUgPSBOVUxMOwogCWtkRGVidWcoKSA8PCAiIGZvdW5kICIgPDwgbnVtVm9sdW1l
cyA8PCAiIHZvbHVtZXMiIDw8IGVuZGw7CiAJaWYgKG51bVZvbHVtZXMpCi0JCWhhbFZvbHVtZSA9
IGhhbF92b2x1bWVfZnJvbV91ZGkobV9oYWxDb250ZXh0LCB2b2x1bWVzWzBdKTsKKwkJaGFsVm9s
dW1lID0gbGliaGFsX3ZvbHVtZV9mcm9tX3VkaShtX2hhbENvbnRleHQsIHZvbHVtZXNbMF0pOwog
CiAJbWVkaXVtLT5zZXROYW1lKAotCQlnZW5lcmF0ZU5hbWUoaGFsX2RyaXZlX2dldF9kZXZpY2Vf
ZmlsZShoYWxEcml2ZSkpICk7CisJCWdlbmVyYXRlTmFtZShsaWJoYWxfZHJpdmVfZ2V0X2Rldmlj
ZV9maWxlKGhhbERyaXZlKSkgKTsKIAogCWlmIChoYWxWb2x1bWUpCiAJewogCQltZWRpdW0tPm1v
dW50YWJsZVN0YXRlKAotCQkJaGFsX3ZvbHVtZV9nZXRfZGV2aWNlX2ZpbGUoaGFsVm9sdW1lKSwJ
CS8qIERldmljZSBub2RlICovCi0JCQloYWxfdm9sdW1lX2dldF9tb3VudF9wb2ludChoYWxWb2x1
bWUpLAkJLyogTW91bnQgcG9pbnQgKi8KLQkJCWhhbF92b2x1bWVfZ2V0X2ZzdHlwZShoYWxWb2x1
bWUpLAkJCS8qIEZpbGVzeXN0ZW0gdHlwZSAqLwotCQkJaGFsX3ZvbHVtZV9pc19tb3VudGVkKGhh
bFZvbHVtZSkgKTsJCQkvKiBNb3VudGVkID8gKi8KKwkJCWxpYmhhbF92b2x1bWVfZ2V0X2Rldmlj
ZV9maWxlKGhhbFZvbHVtZSksCQkvKiBEZXZpY2Ugbm9kZSAqLworCQkJbGliaGFsX3ZvbHVtZV9n
ZXRfbW91bnRfcG9pbnQoaGFsVm9sdW1lKSwJCS8qIE1vdW50IHBvaW50ICovCisJCQlsaWJoYWxf
dm9sdW1lX2dldF9mc3R5cGUoaGFsVm9sdW1lKSwJCQkvKiBGaWxlc3lzdGVtIHR5cGUgKi8KKwkJ
CWxpYmhhbF92b2x1bWVfaXNfbW91bnRlZChoYWxWb2x1bWUpICk7CQkJLyogTW91bnRlZCA/ICov
CiAJfQogCWVsc2UKIAl7CiAJCW1lZGl1bS0+bW91bnRhYmxlU3RhdGUoCi0JCQloYWxfZHJpdmVf
Z2V0X2RldmljZV9maWxlKGhhbERyaXZlKSwJCS8qIERldmljZSBub2RlICovCisJCQlsaWJoYWxf
ZHJpdmVfZ2V0X2RldmljZV9maWxlKGhhbERyaXZlKSwJCS8qIERldmljZSBub2RlICovCiAJCQki
IiwJCQkJCQkJCQkJCS8qIE1vdW50IHBvaW50ICovCiAJCQkiIiwJCQkJCQkJCQkJCS8qIEZpbGVz
eXN0ZW0gdHlwZSAqLwogCQkJZmFsc2UgKTsJCQkJCQkJCQkvKiBNb3VudGVkID8gKi8KQEAgLTQy
MSw3ICs1MDAsNyBAQAogCQllbHNlCiAJCQltZWRpdW0tPnNldE1pbWVUeXBlKCJtZWRpYS9mbG9w
cHlfdW5tb3VudGVkIik7CiAJfQotCQorCiAJaWYgKGhhbF9kZXZpY2VfZ2V0X3Byb3BlcnR5X1FT
dHJpbmcobV9oYWxDb250ZXh0LCB1ZGksICJzdG9yYWdlLmRyaXZlX3R5cGUiKSA9PSAiemlwIikK
IAl7CiAJCWlmIChoYWxWb2x1bWUpCkBAIC00MjksMTQgKzUwOCwyOSBAQAogCQllbHNlCiAJCQlt
ZWRpdW0tPnNldE1pbWVUeXBlKCJtZWRpYS96aXBfdW5tb3VudGVkIik7CiAJfQotCQorCiAJbWVk
aXVtLT5zZXRJY29uTmFtZShRU3RyaW5nOjpudWxsKTsKIAotCW1lZGl1bS0+c2V0TGFiZWwoUVN0
cmluZzo6ZnJvbVV0ZjgoIGhhbF9kcml2ZV9wb2xpY3lfY29tcHV0ZV9kaXNwbGF5X25hbWUoaGFs
RHJpdmUsCi0JCWhhbFZvbHVtZSwgbV9oYWxTdG9yYWdlUG9saWN5KSApICk7CisJUVN0cmluZyBt
ZWRpYV9uYW1lOworCWlmIChoYWxWb2x1bWUpCisJeworCQljaGFyKiBuYW1lID0gbGliaGFsX2Ry
aXZlX3BvbGljeV9jb21wdXRlX2Rpc3BsYXlfbmFtZShoYWxEcml2ZSwgaGFsVm9sdW1lLCBtX2hh
bFN0b3JhZ2VQb2xpY3kpOworCQlRU3RyaW5nIHZvbHVtZV9uYW1lID0gUVN0cmluZzo6ZnJvbVV0
ZjgobmFtZSk7CisJCW1lZGlhX25hbWUgPSB2b2x1bWVfbmFtZTsKKwkJZnJlZShuYW1lKTsKKwl9
CisJZWxzZQorCXsKKwkJY2hhciogbmFtZSA9IGxpYmhhbF9kcml2ZV9wb2xpY3lfY29tcHV0ZV9k
aXNwbGF5X25hbWUoaGFsRHJpdmUsIGhhbFZvbHVtZSwgbV9oYWxTdG9yYWdlUG9saWN5KTsKKwkJ
UVN0cmluZyBkcml2ZV9uYW1lID0gIFFTdHJpbmc6OmZyb21VdGY4KG5hbWUpOworCQltZWRpYV9u
YW1lID0gZHJpdmVfbmFtZTsKKwkJZnJlZShuYW1lKTsKKwl9CisJbWVkaXVtLT5zZXRMYWJlbCht
ZWRpYV9uYW1lKTsKIAotCWhhbF9kcml2ZV9mcmVlKGhhbERyaXZlKTsKLQloYWxfdm9sdW1lX2Zy
ZWUoaGFsVm9sdW1lKTsKKwlmcmVlKHZvbHVtZXMpOworCWxpYmhhbF9kcml2ZV9mcmVlKGhhbERy
aXZlKTsKKwlsaWJoYWxfdm9sdW1lX2ZyZWUoaGFsVm9sdW1lKTsKIH0KIAogdm9pZCBIQUxCYWNr
ZW5kOjpzZXRDYW1lcmFQcm9wZXJ0aWVzKE1lZGl1bSogbWVkaXVtKQpAQCAtNDQ1LDcgKzUzOSw3
IEBACiAKIAljb25zdCBjaGFyKiB1ZGkgPSBtZWRpdW0tPmlkKCkuYXNjaWkoKTsKIAkvKiBDaGVj
ayBpZiB0aGUgZGV2aWNlIHN0aWxsIGV4aXN0cyAqLwotCWlmICghaGFsX2RldmljZV9leGlzdHMo
bV9oYWxDb250ZXh0LCB1ZGkpKQorCWlmICghbGliaGFsX2RldmljZV9leGlzdHMobV9oYWxDb250
ZXh0LCB1ZGksIE5VTEwpKQogCQlyZXR1cm47CiAKIAkvKiogQHRvZG8gZmluZCBuYW1lICovCkBA
IC00NjcsNiArNTYxLDcgQEAKICoqIEhBTCBDQUxMLUJBQ0tTICAgICAgICAgICAgICAgICAgICAg
ICAgKioKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAorI2lm
ZGVmIEhBTF8wXzQKIHZvaWQgSEFMQmFja2VuZDo6aGFsX21haW5fbG9vcF9pbnRlZ3JhdGlvbihM
aWJIYWxDb250ZXh0ICpjdHgsCiAJCQlEQnVzQ29ubmVjdGlvbiAqZGJ1c19jb25uZWN0aW9uKQog
ewpAQCAtNDc0LDYgKzU2OSw3IEBACiAJUV9VTlVTRUQoY3R4KTsKIAlzX0hBTEJhY2tlbmQtPk1h
aW5Mb29wSW50ZWdyYXRpb24oZGJ1c19jb25uZWN0aW9uKTsKIH0KKyNlbmRpZgogCiB2b2lkIEhB
TEJhY2tlbmQ6OmhhbF9kZXZpY2VfYWRkZWQoTGliSGFsQ29udGV4dCAqY3R4LCBjb25zdCBjaGFy
ICp1ZGkpCiB7CkBAIC00OTgsOCArNTk0LDE1IEBACiAJUV9VTlVTRUQoaXNfYWRkZWQpOwogCXNf
SEFMQmFja2VuZC0+TW9kaWZ5RGV2aWNlKHVkaSwga2V5KTsKIH0KKwogdm9pZCBIQUxCYWNrZW5k
OjpoYWxfZGV2aWNlX2NvbmRpdGlvbihMaWJIYWxDb250ZXh0ICpjdHgsIGNvbnN0IGNoYXIgKnVk
aSwKLQkJCWNvbnN0IGNoYXIgKmNvbmRpdGlvbl9uYW1lLCBEQnVzTWVzc2FnZSAqbWVzc2FnZSkK
KwkJCWNvbnN0IGNoYXIgKmNvbmRpdGlvbl9uYW1lLAorCQkJI2lmZGVmIEhBTF8wXzQKKwkJCURC
dXNNZXNzYWdlICptZXNzYWdlCisJCQkjZWxzZQorCQkJY29uc3QgY2hhciogbWVzc2FnZQorCQkJ
I2VuZGlmCisJCQkpCiB7CiAJa2REZWJ1ZygpIDw8ICJIQUxCYWNrZW5kOjpoYWxfZGV2aWNlX2Nv
bmRpdGlvbiAiIDw8IHVkaSA8PCAiIC0tICIgPDwgY29uZGl0aW9uX25hbWUgPDwgZW5kbDsKIAlR
X1VOVVNFRChjdHgpOwotLS0ga2RlYmFzZS0zLjQuMS9raW9zbGF2ZS9tZWRpYS9rZGVkbW9kdWxl
L2hhbGJhY2tlbmQuaAkyMDA1LTA1LTIzIDEyOjE0OjE4LjAwMDAwMDAwMCArMDAwMAorKysga2Rl
YmFzZS0zLjQuMS9raW9zbGF2ZS9tZWRpYS9rZGVkbW9kdWxlL2hhbGJhY2tlbmQuaAkyMDA1LTA2
LTMwIDA4OjIwOjExLjAwMDAwMDAwMCArMDAwMApAQCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUg
PHFzdHJpbmdsaXN0Lmg+CiAjaW5jbHVkZSA8cXN0cmluZy5oPgogCisjaW5jbHVkZSA8Y29uZmln
Lmg+CisKIC8qIFdlIGFja25vd2xlZGdlIHRoZSB0aGUgZGJ1cyBBUEkgaXMgdW5zdGFibGUgKi8K
ICNkZWZpbmUgREJVU19BUElfU1VCSkVDVF9UT19DSEFOR0UKIC8qIERCdXMtUXQgYmluZGluZ3Mg
Ki8KQEAgLTQzLDYgKzQ1LDY1IEBACiAjaW5jbHVkZSA8bGliaGFsLmg+CiAjaW5jbHVkZSA8bGli
aGFsLXN0b3JhZ2UuaD4KIAorLyogVGhlIEhBTCBBUEkgY2hhbmdlZCBiZXR3ZWVuIDAuNCBhbmQg
MC41IHNlcmllcy4KK1RoZXNlIGRlZmluZXMgZW5hYmxlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg
Ki8KKyNpZmRlZiBIQUxfMF80CisJLy8gbGliaGFsLXN0b3JhZ2UgMC40IEFQSQorCSNkZWZpbmUg
TGliSGFsU3RvcmFnZVBvbGljeQkJCQlIYWxTdG9yYWdlUG9saWN5CisJI2RlZmluZSBMaWJIYWxE
cml2ZQkJCQkJCUhhbERyaXZlCisJI2RlZmluZSBMaWJIYWxWb2x1bWUJCQkJCUhhbFZvbHVtZQor
CSNkZWZpbmUgTGliSGFsVm9sdW1lRGlzY1R5cGUJCQlIYWxWb2x1bWVEaXNjVHlwZQorCSNkZWZp
bmUgbGliaGFsX3N0b3JhZ2VfcG9saWN5X2ZyZWUJCWhhbF9zdG9yYWdlX3BvbGljeV9mcmVlCisJ
I2RlZmluZSBsaWJoYWxfc3RvcmFnZV9wb2xpY3lfbmV3CQloYWxfc3RvcmFnZV9wb2xpY3lfbmV3
CisJI2RlZmluZSBsaWJoYWxfZHJpdmVfZnJvbV91ZGkJCQloYWxfZHJpdmVfZnJvbV91ZGkKKwkj
ZGVmaW5lIGxpYmhhbF9kcml2ZV9maW5kX2FsbF92b2x1bWVzCWhhbF9kcml2ZV9maW5kX2FsbF92
b2x1bWVzCisJI2RlZmluZSBsaWJoYWxfZHJpdmVfZ2V0X3R5cGUJCQloYWxfZHJpdmVfZ2V0X3R5
cGUKKwkjZGVmaW5lIGxpYmhhbF9kcml2ZV9nZXRfZGV2aWNlX2ZpbGUJaGFsX2RyaXZlX2dldF9k
ZXZpY2VfZmlsZQorCSNkZWZpbmUgbGliaGFsX2RyaXZlX2ZyZWUJCQkJaGFsX2RyaXZlX2ZyZWUK
KwkjZGVmaW5lIGxpYmhhbF9kcml2ZV9wb2xpY3lfY29tcHV0ZV9kaXNwbGF5X25hbWUJaGFsX2Ry
aXZlX3BvbGljeV9jb21wdXRlX2Rpc3BsYXlfbmFtZQorCSNkZWZpbmUgbGliaGFsX2RyaXZlX2lz
X2hvdHBsdWdnYWJsZQloYWxfZHJpdmVfaXNfaG90cGx1Z2dhYmxlCisJI2RlZmluZSBsaWJoYWxf
dm9sdW1lX2Zyb21fdWRpCQkJaGFsX3ZvbHVtZV9mcm9tX3VkaQorCSNkZWZpbmUgbGliaGFsX3Zv
bHVtZV9nZXRfZGV2aWNlX2ZpbGUJaGFsX3ZvbHVtZV9nZXRfZGV2aWNlX2ZpbGUKKwkjZGVmaW5l
IGxpYmhhbF92b2x1bWVfZ2V0X21vdW50X3BvaW50CWhhbF92b2x1bWVfZ2V0X21vdW50X3BvaW50
CisJI2RlZmluZSBsaWJoYWxfdm9sdW1lX2dldF9mc3R5cGUJCWhhbF92b2x1bWVfZ2V0X2ZzdHlw
ZQorCSNkZWZpbmUgbGliaGFsX3ZvbHVtZV9pc19tb3VudGVkCQloYWxfdm9sdW1lX2lzX21vdW50
ZWQKKwkjZGVmaW5lIGxpYmhhbF92b2x1bWVfZ2V0X2Rpc2NfdHlwZQkJaGFsX3ZvbHVtZV9nZXRf
ZGlzY190eXBlCisJI2RlZmluZSBsaWJoYWxfdm9sdW1lX2ZyZWUJCQkJaGFsX3ZvbHVtZV9mcmVl
CisJI2RlZmluZSBsaWJoYWxfdm9sdW1lX3BvbGljeV9jb21wdXRlX2Rpc3BsYXlfbmFtZQloYWxf
dm9sdW1lX3BvbGljeV9jb21wdXRlX2Rpc3BsYXlfbmFtZQorCSNkZWZpbmUgbGliaGFsX3ZvbHVt
ZV9kaXNjX2hhc19kYXRhCQloYWxfdm9sdW1lX2Rpc2NfaGFzX2RhdGEKKwkjZGVmaW5lIGxpYmhh
bF92b2x1bWVfZGlzY19oYXNfYXVkaW8JaGFsX3ZvbHVtZV9kaXNjX2hhc19hdWRpbworCSNkZWZp
bmUgbGliaGFsX3ZvbHVtZV9kaXNjX2lzX2JsYW5rCQloYWxfdm9sdW1lX2Rpc2NfaXNfYmxhbmsK
KwkjZGVmaW5lIGxpYmhhbF92b2x1bWVfaXNfZGlzYwkJCWhhbF92b2x1bWVfaXNfZGlzYworCSNk
ZWZpbmUgbGliaGFsX3ZvbHVtZV9nZXRfc3RvcmFnZV9kZXZpY2VfdWRpCWhhbF92b2x1bWVfZ2V0
X3N0b3JhZ2VfZGV2aWNlX3VkaQorCSNkZWZpbmUgTElCSEFMX1ZPTFVNRV9ESVNDX1RZUEVfQ0RS
T00JCUhBTF9WT0xVTUVfRElTQ19UWVBFX0NEUk9NCisJI2RlZmluZSBMSUJIQUxfVk9MVU1FX0RJ
U0NfVFlQRV9DRFIJCQlIQUxfVk9MVU1FX0RJU0NfVFlQRV9DRFIKKwkjZGVmaW5lIExJQkhBTF9W
T0xVTUVfRElTQ19UWVBFX0NEUlcJCUhBTF9WT0xVTUVfRElTQ19UWVBFX0NEUlcKKwkjZGVmaW5l
IExJQkhBTF9WT0xVTUVfRElTQ19UWVBFX0RWRFJPTQkJSEFMX1ZPTFVNRV9ESVNDX1RZUEVfRFZE
Uk9NCisJI2RlZmluZSBMSUJIQUxfVk9MVU1FX0RJU0NfVFlQRV9EVkRSQU0JCUhBTF9WT0xVTUVf
RElTQ19UWVBFX0RWRFJBTQorCSNkZWZpbmUgTElCSEFMX1ZPTFVNRV9ESVNDX1RZUEVfRFZEUgkJ
SEFMX1ZPTFVNRV9ESVNDX1RZUEVfRFZEUgorCSNkZWZpbmUgTElCSEFMX1ZPTFVNRV9ESVNDX1RZ
UEVfRFZEUlcJCUhBTF9WT0xVTUVfRElTQ19UWVBFX0RWRFJXCisJI2RlZmluZSBMSUJIQUxfVk9M
VU1FX0RJU0NfVFlQRV9EVkRQTFVTUglIQUxfVk9MVU1FX0RJU0NfVFlQRV9EVkRQTFVTUgorCSNk
ZWZpbmUgTElCSEFMX1ZPTFVNRV9ESVNDX1RZUEVfRFZEUExVU1JXCUhBTF9WT0xVTUVfRElTQ19U
WVBFX0RWRFBMVVNSVworCSNkZWZpbmUgTElCSEFMX0RSSVZFX1RZUEVfQ09NUEFDVF9GTEFTSAkJ
CUhBTF9EUklWRV9UWVBFX0NPTVBBQ1RfRkxBU0gKKwkjZGVmaW5lIExJQkhBTF9EUklWRV9UWVBF
X01FTU9SWV9TVElDSwkJCUhBTF9EUklWRV9UWVBFX01FTU9SWV9TVElDSworCSNkZWZpbmUgTElC
SEFMX0RSSVZFX1RZUEVfU01BUlRfTUVESUEgCQkJSEFMX0RSSVZFX1RZUEVfU01BUlRfTUVESUEK
KwkjZGVmaW5lIExJQkhBTF9EUklWRV9UWVBFX1NEX01NQwkJCQlIQUxfRFJJVkVfVFlQRV9TRF9N
TUMKKwkjZGVmaW5lIExJQkhBTF9EUklWRV9UWVBFX1BPUlRBQkxFX0FVRElPX1BMQVlFUglIQUxf
RFJJVkVfVFlQRV9QT1JUQUJMRV9BVURJT19QTEFZRVIKKwkjZGVmaW5lIExJQkhBTF9EUklWRV9U
WVBFX0NBTUVSQQkJCQlIQUxfRFJJVkVfVFlQRV9DQU1FUkEKKwkjZGVmaW5lIExJQkhBTF9EUklW
RV9UWVBFX1RBUEUJCQkJCUhBTF9EUklWRV9UWVBFX1RBUEUKKworCS8vIGxpYmhhbCAwLjQgQVBJ
CisJI2RlZmluZSBsaWJoYWxfZnJlZV9zdHJpbmcgaGFsX2ZyZWVfc3RyaW5nCisJI2RlZmluZSBs
aWJoYWxfZGV2aWNlX2V4aXN0cyhjdHgsIHVkaSwgZXJyb3IpIGhhbF9kZXZpY2VfZXhpc3RzKGN0
eCwgdWRpKQorCSNkZWZpbmUgbGliaGFsX2RldmljZV9wcm9wZXJ0eV93YXRjaF9hbGwoY3R4LCBl
cnJvcikgaGFsX2RldmljZV9wcm9wZXJ0eV93YXRjaF9hbGwoY3R4KQorCSNkZWZpbmUgbGliaGFs
X2dldF9hbGxfZGV2aWNlcyhjdHgsIG51bV9kZXZpY2VzLCBlcnJvcikgaGFsX2dldF9hbGxfZGV2
aWNlcyhjdHgsIG51bV9kZXZpY2VzKQorCSNkZWZpbmUgbGliaGFsX2RldmljZV9wcm9wZXJ0eV9l
eGlzdHMoY3R4LCB1ZGksIGtleSwgZXJyb3IpIGhhbF9kZXZpY2VfcHJvcGVydHlfZXhpc3RzKGN0
eCwgdWRpLCBrZXkpCisJI2RlZmluZSBsaWJoYWxfZGV2aWNlX2dldF9wcm9wZXJ0eV9ib29sKGN0
eCwgdWRpLCBrZXksIGVycm9yKSBoYWxfZGV2aWNlX2dldF9wcm9wZXJ0eV9ib29sKGN0eCwgdWRp
LCBrZXkpCisJI2RlZmluZSBsaWJoYWxfZGV2aWNlX2dldF9wcm9wZXJ0eV9zdHJpbmcoY3R4LCB1
ZGksIGtleSwgZXJyb3IpIGhhbF9kZXZpY2VfZ2V0X3Byb3BlcnR5X3N0cmluZyhjdHgsIHVkaSwg
a2V5KQorCSNkZWZpbmUgbGliaGFsX2RldmljZV9xdWVyeV9jYXBhYmlsaXR5KGN0eCwgdWRpLCBj
YXBhYmlsaXR5LCBlcnJvcikgaGFsX2RldmljZV9xdWVyeV9jYXBhYmlsaXR5KGN0eCwgdWRpLCBj
YXBhYmlsaXR5KQorI2VuZGlmCisKKwogLyoqCiAqIEEgaGFuZHkgZnVuY3Rpb24gdG8gcXVlcnkg
YSBoYWwgc3RyaW5nCiAqCkBAIC0xMzcsMTIgKzE5OCwxNCBAQAogCiAvKiBIYWwgY2FsbC1iYWNr
cyAtLSBmcm9tIGd2bSovCiBwdWJsaWM6CisjaWZkZWYgSEFMXzBfNAogCS8qKiBJbnZva2VkIGJ5
IGxpYmhhbCBmb3IgaW50ZWdyYXRpb24gd2l0aCBvdXIgbWFpbmxvb3AuCiAJKgogCSogIEBwYXJh
bSAgY3R4ICAgICAgICAgICAgICAgICBMaWJIYWwgY29udGV4dAogCSogIEBwYXJhbSAgZGJ1c19j
b25uZWN0aW9uICAgICBELUJVUyBjb25uZWN0aW9uIHRvIGludGVncmF0ZQogCSovCiAJc3RhdGlj
IHZvaWQgaGFsX21haW5fbG9vcF9pbnRlZ3JhdGlvbihMaWJIYWxDb250ZXh0ICpjdHgsIERCdXND
b25uZWN0aW9uICpkYnVzX2Nvbm5lY3Rpb24pOworI2VuZGlmCiAKIAkvKiogSW52b2tlZCB3aGVu
IGEgZGV2aWNlIGlzIGFkZGVkIHRvIHRoZSBHbG9iYWwgRGV2aWNlIExpc3QuCiAJKgpAQCAtMTc1
LDcgKzIzOCwxMyBAQAogCSogIEBwYXJhbSAgbWVzc2FnZSAgICAgICAgICAgICBELUJVUyBtZXNz
YWdlIHdpdGggdmFyaWFibGUgcGFyYW1ldGVycyBkZXBlbmRpbmcgb24gY29uZGl0aW9uCiAJKi8K
IAlzdGF0aWMgdm9pZCBoYWxfZGV2aWNlX2NvbmRpdGlvbihMaWJIYWxDb250ZXh0ICpjdHgsIGNv
bnN0IGNoYXIgKnVkaSwKLQkJCQljb25zdCBjaGFyICpjb25kaXRpb25fbmFtZSwgREJ1c01lc3Nh
Z2UgKm1lc3NhZ2UpOworCQkJCWNvbnN0IGNoYXIgKmNvbmRpdGlvbl9uYW1lLAorCQkJCSNpZmRl
ZiBIQUxfMF80CisJCQkJREJ1c01lc3NhZ2UgKm1lc3NhZ2UKKwkJCQkjZWxzZQorCQkJCWNvbnN0
IGNoYXIqIG1lc3NhZ2UKKwkJCQkjZW5kaWYKKwkJCQkpOwogCiAvKiBIQUwgYW5kIERCdXMgc3Ry
dWN0dXJlcyAqLwogcHJpdmF0ZToKQEAgLTE4NCwxNSArMjUzLDE3IEBACiAJKi8KIAlMaWJIYWxD
b250ZXh0KgkJbV9oYWxDb250ZXh0OwogCisjaWZkZWYgSEFMXzBfNAogCS8qKgogCSogU3RydWN0
dXJlIGRlZmluaW5nIHRoZSBoYWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIGRldmljZXMgZXZlbnRz
CiAJKi8KIAlMaWJIYWxGdW5jdGlvbnMgCW1faGFsRnVuY3Rpb25zOworI2VuZGlmCiAKIAkvKioK
IAkqIGxpYmhhbC1zdG9yYWdlIEhBTCBwb2xpY3ksIGUuZy4gZm9yIGljb24gbmFtZXMKIAkqLwot
CUhhbFN0b3JhZ2VQb2xpY3kqCW1faGFsU3RvcmFnZVBvbGljeTsKKwlMaWJIYWxTdG9yYWdlUG9s
aWN5KgltX2hhbFN0b3JhZ2VQb2xpY3k7CiAKIAkvKioKIAkqIFRoZSBEQnVzLVF0IGJpbmRpbmdz
IGNvbm5lY3Rpb24gZm9yIG1haW5sb29wIGludGVncmF0aW9uCg==
</data>        

          </attachment>
    </bug>

</bugzilla>