<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>169219</bug_id>
          
          <creation_ts>2017-03-06 14:28:43 -0800</creation_ts>
          <short_desc>Add GPUDevice implementation and WebGPULayer</short_desc>
          <delta_ts>2017-03-09 13:33:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>167952</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1283961</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-06 14:28:43 -0800</bug_when>
    <thetext>Foundation of the WebGPU implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283962</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-06 14:28:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/30879048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283964</commentid>
    <comment_count>2</comment_count>
      <attachid>303559</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-06 14:32:05 -0800</bug_when>
    <thetext>Created attachment 303559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283966</commentid>
    <comment_count>3</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-06 14:32:34 -0800</bug_when>
    <thetext>Not for review - just EWS. Writing API tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284257</commentid>
    <comment_count>4</comment_count>
      <attachid>303640</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-07 04:09:06 -0800</bug_when>
    <thetext>Created attachment 303640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284266</commentid>
    <comment_count>5</comment_count>
      <attachid>303644</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-07 04:38:07 -0800</bug_when>
    <thetext>Created attachment 303644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284510</commentid>
    <comment_count>6</comment_count>
      <attachid>303706</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-07 13:01:45 -0800</bug_when>
    <thetext>Created attachment 303706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284528</commentid>
    <comment_count>7</comment_count>
      <attachid>303706</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-03-07 13:26:07 -0800</bug_when>
    <thetext>Comment on attachment 303706
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=303706&amp;action=review

&gt; Source/WebCore/platform/graphics/cocoa/GPUDeviceMetal.mm:55
&gt; +#ifndef NDEBUG
&gt; +    [m_layer setName:@&quot;WebGPU Layer&quot;];
&gt; +#endif

Do we really need to make these debug only still?

&gt; Source/WebCore/platform/graphics/cocoa/WebGPULayer.h:33
&gt; +#import &lt;Metal/Metal.h&gt;
&gt; +#import &lt;QuartzCore/QuartzCore.h&gt;
&gt; +
&gt; +namespace WebCore {
&gt; +class GPUDevice;
&gt; +}

This file is not guarded by #if ENABLE(WEBGPU). Should it be?

&gt; Source/WebCore/platform/graphics/cocoa/WebGPULayer.mm:35
&gt; +
&gt; +#import &quot;GPUDevice.h&quot;
&gt; +#import &quot;GraphicsContextCG.h&quot;
&gt; +#import &quot;GraphicsLayer.h&quot;
&gt; +#import &lt;wtf/FastMalloc.h&gt;
&gt; +#import &lt;wtf/RetainPtr.h&gt;
&gt; +
&gt; +using namespace WebCore;

This file is not guarded by #if ENABLE(WEBGPU). Should it be?

&gt; Source/WebCore/platform/graphics/gpu/GPUDevice.cpp:32
&gt; +#import &quot;Logging.h&quot;
&gt; +
&gt; +#if ENABLE(WEBGPU)
&gt; +

When guarded like this, we usually put all the #includes/#imports below the main one, inside the guard.

&gt; Tools/TestWebKitAPI/Tests/WebCore/mac/GPUDevice.mm:33
&gt; +#include &quot;config.h&quot;
&gt; +#import &quot;Test.h&quot;
&gt; +#import &lt;Metal/Metal.h&gt;
&gt; +#import &lt;WebCore/GPUDevice.h&gt;
&gt; +
&gt; +using namespace WebCore;
&gt; +
&gt; +namespace TestWebKitAPI {

This file is not guarded by #if ENABLE(WEBGPU). Should it be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284564</commentid>
    <comment_count>8</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-07 14:28:34 -0800</bug_when>
    <thetext>Committed r213541: &lt;http://trac.webkit.org/changeset/213541&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303559</attachid>
            <date>2017-03-06 14:32:05 -0800</date>
            <delta_ts>2017-03-07 04:08:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169219-20170307093202.patch</filename>
            <type>text/plain</type>
            <size>23706</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTMwMDk3MzU0YjA0YTU2
M2FlMmNhOTBkNTliZWViM2JiNDAxMTRlZS4uNDdkMzhlYjBiZjMyN2ZlYWNkNTgyM2FkM2NlMDc1
YzUyOTg5N2Q2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTAzLTA2ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgR1BVRGV2aWNlIGltcGxl
bWVudGF0aW9uIGFuZCBXZWJHUFVMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDg3OTA0
OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OkdQVURldmljZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVEZXZpY2U6OnJlc2hhcGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdQVUxheWVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdQVUxheWVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViR1BVTGF5ZXIgaW5pdFdpdGhH
UFVEZXZpY2U6XSk6CisgICAgICAgICgtW1dlYkdQVUxheWVyIGNvcHlJbWFnZVNuYXBzaG90V2l0
aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdQVUxheWVyIGRpc3BsYXldKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZp
Y2U6On5HUFVEZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpHUFVEZXZpY2Up
OgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpyZXNoYXBlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGV2aWNlOjpsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnBsYXRmb3Jt
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpkZXZpY2UpOgorCiAyMDE3LTAz
LTA2ICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBmaWVs
ZHNldHMgdG8gYmUgZmxleGJveGVzLCBncmlkcyBhbmQgbXVsdGljb2x1bW4uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCBlNTJmNWZmMmFh
ZTg3OGE1MDQ1MDg1ZTJkYzRkNmZhY2JkZGYzYTdmLi5mMGZkYjNkYzgxZDY5NWEyNGZlODc2YmJl
NzIxOGM2NWU0YzM4YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9XZWJDb3JlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dl
YkNvcmUueGNjb25maWcKQEAgLTc4LDcgKzc4LDcgQEAgTElCV0VCUlRDX0xJQlJBUllfRElSX1VT
RV9PVkVSUklERV9GUkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09SRV9GUkFNRVdPUktTX0RJUikK
IExJQldFQlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0g
JChXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVy
aXRlZCkgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JNKQotT1RIRVJfTERGTEFHU19CQVNFID0gLWxz
cWxpdGUzIC1sb2JqYyAtbEFOR0xFOworT1RIRVJfTERGTEFHU19CQVNFID0gLWxzcWxpdGUzIC1s
b2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgTWV0YWw7CiBPVEhFUl9MREZMQUdTX0JBU0VfaW9zID0g
JChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29y
ZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFt
ZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIE1vYmlsZUNvcmVTZXJ2aWNlcyAtZnJhbWV3b3JrIE9w
ZW5HTEVTIC1sTW9iaWxlR2VzdGFsdCAkKFdLX0lPU19CSU5DT01QQVRfTERGTEFHUyk7CiBPVEhF
Ul9MREZMQUdTX1BMQVRGT1JNW3Nkaz1pcGhvbmVvcypdID0gJChPVEhFUl9MREZMQUdTX0JBU0Vf
aW9zKSAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIEdyYXBoaWNzU2VydmljZXMgJChM
SUJXRUJSVENfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1pcGhvbmVzaW11
bGF0b3IqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgJChMSUJXRUJSVENfTERGTEFHUyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMTlkMGM3NzFhMDM4MGQ2MTZiMGFmZjZlOTI2MzZiZjkyMDU1NGJhMy4uYzJlYWQzNWVk
Y2IxZDI2ZjJjNzc1OTZjMzZlNmNkZThkMmNhZDlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM1Miw2ICsxMzUyLDExIEBA
CiAJCTMxNEJFM0EzMUIzMEY2RDEwMDE0MTk4MiAvKiBDU1NOYW1lZEltYWdlVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0QkUzQTIxQjMw
RjZEMTAwMTQxOTgyIC8qIENTU05hbWVkSW1hZ2VWYWx1ZS5jcHAgKi87IH07CiAJCTMxNEJFM0E2
MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0QkUzQTQxQjMxMDNGQjAw
MTQxOTgyIC8qIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CiAJCTMxNEJFM0E3
MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNEJFM0E1MUIzMTAzRkIwMDE0
MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCAqLzsgfTsKKwkJMzE2QkRCODYxRTZF
MEEyNzAwREUwRDVBIC8qIEdQVURldmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCODUxRTZFMEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5o
ICovOyB9OworCQkzMTZCREI4NzFFNkUwQTJDMDBERTBENUEgLyogR1BVRGV2aWNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQjg0MUU2RTBB
MjEwMERFMEQ1QSAvKiBHUFVEZXZpY2UuY3BwICovOyB9OworCQkzMTZCREI4QjFFNkUxNTMwMDBE
RTBENUEgLyogV2ViR1BVTGF5ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTZCREI4OTFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIubW0g
Ki87IH07CisJCTMxNkJEQjhDMUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXllci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCOEExRTZFMTUz
MDAwREUwRDVBIC8qIFdlYkdQVUxheWVyLmggKi87IH07CisJCTMxNkJEQjhEMUU2RTE4OTgwMERF
MEQ1QSAvKiBHUFVEZXZpY2VNZXRhbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxNkJEQjg4MUU2RTE0MUMwMERFMEQ1QSAvKiBHUFVEZXZpY2VNZXRh
bC5tbSAqLzsgfTsKIAkJMzE2RkUwNzEwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVS
dWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
NkZFMDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5jcHAgKi87IH07CiAJ
CTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkUwRTZDQ0JFRTAw
QkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJCTMxNkZFMDczMEU2Q0NCRUUw
MEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkYwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NT
S2V5ZnJhbWVzUnVsZS5jcHAgKi87IH07CkBAIC04NjU2LDYgKzg2NjEsMTEgQEAKIAkJMzE0QkUz
QTIxQjMwRjZEMTAwMTQxOTgyIC8qIENTU05hbWVkSW1hZ2VWYWx1ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NOYW1lZEltYWdlVmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTRCRTNBNDFCMzEwM0ZCMDAxNDE5ODIgLyogTmFtZWRJ
bWFnZUdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxNEJFM0E1MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1h
Z2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmFtZWRJbWFnZUdlbmVyYXRl
ZEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQjg0MUU2RTBBMjEw
MERFMEQ1QSAvKiBHUFVEZXZpY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gR1BVRGV2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2QkRC
ODUxRTZFMEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHUFVEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2
QkRCODgxRTZFMTQxQzAwREUwRDVBIC8qIEdQVURldmljZU1ldGFsLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVRGV2aWNlTWV0YWwubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQjg5MUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXll
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdQVUxheWVy
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZCREI4QTFFNkUxNTMwMDBERTBE
NUEgLyogV2ViR1BVTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
R1BVTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkQwRTZDQ0JF
RTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTS2V5ZnJhbWVSdWxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZGMEU2Q0NCRUUwMEJGNjA4OCAv
KiBKU0NTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNDU1NLZXlmcmFtZXNSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE3NDE3LDYgKzE3NDI3LDggQEAKIAkJNDk4NzcwQzExMjQyQzUwRDAwMjIyNkJBIC8qIGdw
dSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMzE2QkRC
ODQxRTZFMEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5jcHAgKi8sCisJCQkJMzE2QkRCODUxRTZF
MEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5oICovLAogCQkJCTQ5ODc3MEQ3MTI0MkM1MzUwMDIy
MjZCQSAvKiBUZXh0dXJlLmNwcCAqLywKIAkJCQk0OTg3NzBEODEyNDJDNTM1MDAyMjI2QkEgLyog
VGV4dHVyZS5oICovLAogCQkJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRh
LmNwcCAqLywKQEAgLTIyNTA3LDYgKzIyNTE5LDcgQEAKIAkJCQlCMkFGRkM3ODBEMDBBNUMxMDAz
MDA3NEQgLyogRm9udENhc2NhZGVDb2NvYS5tbSAqLywKIAkJCQk3QzRFREQ3MzFBN0I2MDc4MDAx
OThDNEQgLyogRm9udENvY29hLm1tICovLAogCQkJCUI1MzIwRDZBMTIyQTI0RTkwMDJEMTQ0MCAv
KiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gKi8sCisJCQkJMzE2QkRCODgxRTZFMTQxQzAwREUw
RDVBIC8qIEdQVURldmljZU1ldGFsLm1tICovLAogCQkJCTJEMEI0QUE5MThEQTFDQ0QwMDQzNERF
MSAvKiBJT1N1cmZhY2UuaCAqLywKIAkJCQkyRDBCNEFBQTE4REExQ0NEMDA0MzRERTEgLyogSU9T
dXJmYWNlLm1tICovLAogCQkJCUFEOUZGNkUwMTkwODM5MUQwMDNCNjFFMCAvKiBJT1N1cmZhY2VQ
b29sQ29jb2EubW0gKi8sCkBAIC0yMjUxNiw2ICsyMjUyOSw4IEBACiAJCQkJMkQzRUY0NDUxOTE3
OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbSAqLywK
IAkJCQkyRDNFRjQ0NjE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCAq
LywKIAkJCQkyRDNFRjQ0NzE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMu
bW0gKi8sCisJCQkJMzE2QkRCODkxRTZFMTUzMDAwREUwRDVBIC8qIFdlYkdQVUxheWVyLm1tICov
LAorCQkJCTMxNkJEQjhBMUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXllci5oICovLAogCQkJ
KTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNzE2
Myw2ICsyNzE3OCw3IEBACiAJCQkJMTlCRkY2NEYxMUMwRjJBQzAwQjhDMDREIC8qIEpTU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDczMEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJGQTNENzUwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZCREI4QzFFNkUxNTMwMDBERTBENUEg
LyogV2ViR1BVTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDc3MEFCNzVBNkYwMDBF
NUFDNCAvKiBKU1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDM1OEU4N0QxMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENzkwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVGbG9v
ZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc1MTUsNiArMjc1MzEsNyBAQAogCQkJCUQz
QTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEM0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNo
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0OTNCNkMxMUQ3NEI0MTIwMDg4RTc4MCAvKiBNZWRp
YVF1ZXJ5UGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZCREI4NjFFNkUwQTI3MDBERTBE
NUEgLyogR1BVRGV2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTA4NDNEMDFCMThFNDdEMDBC
Njg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QUNB
OEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEOEFDQThCMUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yOTg4Nyw2ICsyOTkwNCw3IEBACiAJCQkJNjJDRDMyNTkxMTU3RTU3QzAw
NjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3QkM2QTIwMTUw
NUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0JDNkEy
MzE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2VBdXRob3JpemVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTMxNkJEQjhCMUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXllci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTk3QkM2QTI3MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUNvbnRleHQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU0NTZGMTgxNjc3RDc0RTAwNUVEREY5IC8qIERhdGFi
YXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNCMkIyMzFBNTczM0Y0MDAzMzMz
OTIgLyogRGF0YWJhc2VQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNDY4LDYgKzMw
NDg2LDcgQEAKIAkJCQlBNTg0MEUxQzE4N0I3NEQ1MDA4NDNCMTAgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcxQjFFMTI2MTY0MDQ5MUEw
MEIxODgwQSAvKiBJbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNTA3MUU4MDFDNTA2QjY2MDA5OTUxQkUgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCOEQxRTZFMTg5ODAwREUwRDVBIC8qIEdQVURldmljZU1l
dGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzUxMjVDODI2NzAwQzUwNjlEIC8qIElu
c3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MDRBQUNDRDE4MzQ0
NTU5MDBFM0Q5QkMgLyogSW5zcGVjdG9yTm9kZUZpbmRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3QzUyMkQ0QjE1QjQ3N0U4MDA5QjdDOTUgLyogSW5zcGVjdG9yT3ZlcmxheS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTMxNDI1LDYgKzMxNDQ0LDcgQEAKIAkJCQkwN0ZGREU2ODE4MUFFRDQyMDA3
MkQ0MDkgLyogTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDRDYwQzBDNjE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRL
aXQubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTZCREI4NzFFNkUwQTJDMDBERTBENUEgLyogR1BV
RGV2aWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMkNDMEY3MURGRkRBMUYwMDRDMEY5RiAv
KiBNZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlDN0NDQjUx
OEM2Qjg5OTAwMzJFNDEzIC8qIE1lbW9pemVkRE9NUmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxRTFCQUMyMUJEODA2NEUwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCBi
YTU3N2ViMmY4MzAzMThkMjIzYjZlNTRhMTI5NjFmOTVkMGJkZjA4Li5jNzRiOTdmNTYyOGU0YWYy
MzE5NTljMGEyOGY5NTkzNWRlOTMyZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBA
IC04Nyw2ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFVSTFBhcnNlcikgXAog
ICAgIE0oV2ViQXVkaW8pIFwKICAgICBNKFdlYkdMKSBcCisgICAgTShXZWJHUFUpIFwKICAgICBN
KFdlYlJUQykgXAogICAgIE0oV2ViUmVwbGF5KSBcCiAgICAgTShXaGVlbEV2ZW50VGVzdFRyaWdn
ZXJzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HUFVEZXZpY2VNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dQVURldmljZU1ldGFsLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4YzUzM2U3MmYwZTAwNGNkNzRmMGEw
NWE3ZDNhNjEyMDYxM2FmYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbQpAQCAtMCwwICsxLDc4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJHUFVEZXZpY2UuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2lt
cG9ydCAiV2ViR1BVTGF5ZXIuaCIKKworI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKyNpbXBvcnQg
PHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25z
Lmg+CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dQVURl
dmljZTo6R1BVRGV2aWNlKCkKK3sKKyAgICBtX2RldmljZSA9IChNVExEZXZpY2UqKU1UTENyZWF0
ZVN5c3RlbURlZmF1bHREZXZpY2UoKTsKKyAgICBMT0coV2ViR1BVLCAiR1BVRGV2aWNlOjpHUFVE
ZXZpY2UgTWV0YWwgZGV2aWNlIGlzICVwIiwgbV9kZXZpY2UuZ2V0KCkpOworCisgICAgaWYgKCFt
X2RldmljZSkgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVRGV2aWNlOjpHUFVEZXZpY2UgLS0g
Y291bGQgbm90IGNyZWF0ZSB0aGUgZGV2aWNlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBtX2xheWVyID0gW1tXZWJHUFVM
YXllciBhbGxvY10gaW5pdFdpdGhHUFVEZXZpY2U6dGhpc107CisgICAgW21fbGF5ZXIgc2V0T3Bh
cXVlOjBdOworI2lmbmRlZiBOREVCVUcKKyAgICBbbV9sYXllciBzZXROYW1lOkAiV2ViR1BVIExh
eWVyIl07CisjZW5kaWYKKworICAgIFttX2xheWVyIHNldERldmljZTooaWQ8TVRMRGV2aWNlPilt
X2RldmljZS5nZXQoKV07CisgICAgW21fbGF5ZXIgc2V0UGl4ZWxGb3JtYXQ6TVRMUGl4ZWxGb3Jt
YXRCR1JBOFVub3JtXTsKKyAgICBbbV9sYXllciBzZXRGcmFtZWJ1ZmZlck9ubHk6WUVTXTsKKyAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCit9CisKK3ZvaWQgR1BVRGV2aWNlOjpyZXNoYXBl
KGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBpZiAoIW1fZGV2aWNlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAobV9sYXllcikgeworICAgICAgICBbbV9sYXllciBzZXRCb3VuZHM6
Q0dSZWN0TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KV07CisgICAgICAgIFttX2xheWVyIHNldERy
YXdhYmxlU2l6ZTpDR1NpemVNYWtlKHdpZHRoLCBoZWlnaHQpXTsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogV2ViR1BVIC0gTG90cyBvZiByZXNoYXBlIHN0dWZmIHNob3VsZCBnbyBoZXJlLiBTZWUg
R0MzRC4KK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHUFVMYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR1BVTGF5ZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMDU4YTk4MTI1NTg2YmQ5MjZjMDhjZTVhZTJlNTI1NDU4OGVjOGQxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
R1BVTGF5ZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVh
cnR6Q29yZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHUFVEZXZpY2U7Cit9CisK
K0BpbnRlcmZhY2UgV2ViR1BVTGF5ZXIgOiBDQU1ldGFsTGF5ZXIgeworICAgIFdlYkNvcmU6OkdQ
VURldmljZSogX2NvbnRleHQ7CisgICAgZmxvYXQgX2RldmljZVBpeGVsUmF0aW87Cit9CisKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljKSBXZWJDb3JlOjpHUFVEZXZpY2UqIGNvbnRleHQ7CisKKy0gKGlk
KWluaXRXaXRoR1BVRGV2aWNlOihXZWJDb3JlOjpHUFVEZXZpY2UqKWNvbnRleHQ7CisKKy0gKENH
SW1hZ2VSZWYpY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTooQ0dDb2xvclNwYWNlUmVm
KWNvbG9yU3BhY2U7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdQVUxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR1BVTGF5ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNkYjIxYzI1MTE1NWI0
YmM3ZTkzM2FmZDZiNzk2MWVhN2Q1NDc5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdQVUxheWVyLm1tCkBAIC0wLDAgKzEsNzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJHUFVMYXllci5oIgorCisjaW1wb3J0ICJHUFVEZXZp
Y2UuaCIKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW1wb3J0ICJHcmFwaGljc0xh
eWVyLmgiCisjaW1wb3J0IDx3dGYvRmFzdE1hbGxvYy5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQGltcGxlbWVudGF0aW9uIFdlYkdQ
VUxheWVyCisKK0BzeW50aGVzaXplIGNvbnRleHQ9X2NvbnRleHQ7CisKKy0gKGlkKWluaXRXaXRo
R1BVRGV2aWNlOihHUFVEZXZpY2UqKWNvbnRleHQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRd
OworICAgIF9jb250ZXh0ID0gY29udGV4dDsKKworICAgIC8vIEZJWE1FOiBXZWJHUFUgLSBoYW5k
bGUgcmV0aW5hIGNvcnJlY3RseS4KKyAgICBfZGV2aWNlUGl4ZWxSYXRpbyA9IDE7CisKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgc2VsZi5jb250ZW50c1NjYWxlID0gX2RldmljZVBpeGVsUmF0aW87
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyAgICBpZiAo
W3NlbGYgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRDb2xvcnNwYWNlOildKQorICAg
ICAgICBbc2VsZiBzZXRDb2xvcnNwYWNlOnNSR0JDb2xvclNwYWNlUmVmKCldOworI2VuZGlmCisj
ZW5kaWYKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoQ0dJbWFnZVJlZiljb3B5SW1hZ2VTbmFw
c2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYpY29sb3JTcGFjZQoreworICAgIGlm
ICghX2NvbnRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgVU5VU0VEX1BBUkFN
KGNvbG9yU3BhY2UpOworICAgIHJldHVybiBudWxscHRyOworfQorCistICh2b2lkKWRpc3BsYXkK
K3sKKyAgICAvLyBUaGlzIGlzIGEgbm8tb3AuIFdlIGRvbid0IG5lZWQgdG8KKyAgICAvLyBjYWxs
IGRpc3BsYXkgLSBpbnN0ZWFkIHdlIHByZXNlbnQKKyAgICAvLyBhIGRyYXdhYmxlIGZyb20gb3Vy
IGNvbnRleHQuCit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVURldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI0YWJjZWQ2MGJmYzBkYjAyN2Q0
YzBiM2I5MmUzZGJhMTY1NjQ5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkdQVURldmljZS5oIgorCisjaW1wb3J0ICJMb2dnaW5nLmgiCisKKyNpZiBF
TkFCTEUoV0VCR1BVKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxHUFVEZXZpY2U+
IEdQVURldmljZTo6Y3JlYXRlKCkKK3sKKyAgICBSZWZQdHI8R1BVRGV2aWNlPiBkZXZpY2UgPSBh
ZG9wdFJlZihuZXcgR1BVRGV2aWNlKCkpOworICAgIExPRyhXZWJHUFUsICJHUFVEZXZpY2U6OmNy
ZWF0ZSgpIGRldmljZSBpcyAlcCIsIGRldmljZS5nZXQoKSk7CisKKyAgICBpZiAoIWRldmljZS0+
bV9kZXZpY2UpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVURldmljZTo6Y3JlYXRlIC0tIG5v
IGRldmljZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4g
ZGV2aWNlOworfQorCitHUFVEZXZpY2U6On5HUFVEZXZpY2UoKQoreworICAgIExPRyhXZWJHUFUs
ICJHUFVEZXZpY2U6On5HUFVEZXZpY2UoKSIpOworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQor
CitHUFVEZXZpY2U6OkdQVURldmljZSgpCit7CisKK30KKwordm9pZCBHUFVEZXZpY2U6OnJlc2hh
cGUoaW50LCBpbnQpCit7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURl
dmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIxZWNjN2JmYmIzM2UzY2YxY2VkZjczY2M3NWRmNTY1YzFhODg1
ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVRGV2aWNlLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkK
KworI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVm
ZmVyVmlldy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKKyNpZiBQTEFURk9STShD
T0NPQSkKK09CSkNfQ0xBU1MgQ0FMYXllcjsKK09CSkNfQ0xBU1MgTVRMRGV2aWNlOworT0JKQ19D
TEFTUyBXZWJHUFVMYXllcjsKK3R5cGVkZWYgTVRMRGV2aWNlIFBsYXRmb3JtR1BVRGV2aWNlOwor
I2Vsc2UKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1HUFVEZXZpY2U7CisjZW5kaWYKKworI2lmIFVT
RShDQSkKKyNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXIuaCIKKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEdQVURldmljZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVURldmlj
ZT4geworcHVibGljOgorCisgICAgc3RhdGljIFJlZlB0cjxHUFVEZXZpY2U+IGNyZWF0ZSgpOwor
ICAgIH5HUFVEZXZpY2UoKTsKKworICAgIHZvaWQgcmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWln
aHQpOworCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJHUFVMYXllciogbGF5ZXIoKSB7
IHJldHVybiBtX2xheWVyLmdldCgpOyB9CisgICAgQ0FMYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1fbGF5ZXIuZ2V0KCkpOyB9
CisgICAgUGxhdGZvcm1HUFVEZXZpY2UqIGRldmljZSgpIHsgcmV0dXJuIG1fZGV2aWNlLmdldCgp
OyB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBHUFVEZXZpY2UoKTsKKworICAgIFJldGFpblB0
cjxXZWJHUFVMYXllcj4gbV9sYXllcjsKKyAgICBSZXRhaW5QdHI8UGxhdGZvcm1HUFVEZXZpY2U+
IG1fZGV2aWNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303640</attachid>
            <date>2017-03-07 04:09:06 -0800</date>
            <delta_ts>2017-03-07 04:37:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169219-20170307230905.patch</filename>
            <type>text/plain</type>
            <size>23830</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzBmZGUzMDA5N2I0ZmQ1
YjI5NTNiNTRiYmQzNzNiODQ4ZjFkMjFlNi4uZGM5YWE5ZGM2N2U2YTU0YmEyNDUwNWM3N2NiNmMy
Yzk3MDE2OGE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTAzLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgR1BVRGV2aWNlIGltcGxl
bWVudGF0aW9uIGFuZCBXZWJHUFVMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDg3OTA0
OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OkdQVURldmljZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVEZXZpY2U6OnJlc2hhcGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdQVUxheWVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdQVUxheWVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViR1BVTGF5ZXIgaW5pdFdpdGhH
UFVEZXZpY2U6XSk6CisgICAgICAgICgtW1dlYkdQVUxheWVyIGNvcHlJbWFnZVNuYXBzaG90V2l0
aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdQVUxheWVyIGRpc3BsYXldKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZp
Y2U6On5HUFVEZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpHUFVEZXZpY2Up
OgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpyZXNoYXBlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGV2aWNlOjpsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnBsYXRmb3Jt
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpkZXZpY2UpOgorCiAyMDE3LTAz
LTA3ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjEzNDEyKTogSlBFRyBwcmVtdWx0aXBsaWNhdGlvbiB0ZXN0cyBmYWlsIHVuZGVyIEd1YXJk
TWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3Jl
LnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZp
ZwppbmRleCA5OTY1OTg5N2ZhYWMxYTlhNWRmZDU2ZTI1MzdlNDVhNTg1YzRiZmUyLi5kMTc1ZjAy
ZWQwZTA0ZDYyNWI2ZjMxMDUxYWVjYzU3YjE0MGFhOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKQEAgLTc4LDcgKzc4LDcgQEAgTElCV0VC
UlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9GUkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09S
RV9GUkFNRVdPUktTX0RJUikKIExJQldFQlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJB
TUVXT1JLU19ESVJfWUVTID0gJChXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVS
X0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JNKQotT1RIRVJf
TERGTEFHU19CQVNFID0gLWxzcWxpdGUzIC1sb2JqYyAtbEFOR0xFOworT1RIRVJfTERGTEFHU19C
QVNFID0gLWxzcWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgTWV0YWw7CiBPVEhFUl9M
REZMQUdTX0JBU0VfaW9zID0gJChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ0ZOZXR3
b3JrIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29y
ayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIE1vYmlsZUNvcmVTZXJ2
aWNlcyAtZnJhbWV3b3JrIE9wZW5HTEVTIC1sTW9iaWxlR2VzdGFsdCAkKFdLX0lPU19CSU5DT01Q
QVRfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1pcGhvbmVvcypdID0gJChP
VEhFUl9MREZMQUdTX0JBU0VfaW9zKSAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIEdy
YXBoaWNzU2VydmljZXMgJChMSUJXRUJSVENfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTX1BMQVRG
T1JNW3Nkaz1pcGhvbmVzaW11bGF0b3IqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgJChM
SUJXRUJSVENfTERGTEFHUyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmMxZjViYzI3MGM1NDQzNmExYjdiYWEzOTJiODIzNTJk
MzkyYWJkYy4uOWYzZDBmNmFjYmU4MzlhNTU5NWVhNDcyZjZkNWY2NTdjOTdkYTdmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTM1Miw2ICsxMzUyLDExIEBACiAJCTMxNEJFM0EzMUIzMEY2RDEwMDE0MTk4MiAvKiBDU1NOYW1l
ZEltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE0QkUzQTIxQjMwRjZEMTAwMTQxOTgyIC8qIENTU05hbWVkSW1hZ2VWYWx1ZS5jcHAg
Ki87IH07CiAJCTMxNEJFM0E2MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVk
SW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0QkUzQTQxQjMxMDNGQjAwMTQxOTgyIC8qIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAg
Ki87IH07CiAJCTMxNEJFM0E3MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVk
SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
NEJFM0E1MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCAqLzsg
fTsKKwkJMzE2QkRCODYxRTZFMEEyNzAwREUwRDVBIC8qIEdQVURldmljZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCODUxRTZFMEEyMTAwREUw
RDVBIC8qIEdQVURldmljZS5oICovOyB9OworCQkzMTZCREI4NzFFNkUwQTJDMDBERTBENUEgLyog
R1BVRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxNkJEQjg0MUU2RTBBMjEwMERFMEQ1QSAvKiBHUFVEZXZpY2UuY3BwICovOyB9OworCQkz
MTZCREI4QjFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREI4OTFFNkUxNTMwMDBERTBENUEg
LyogV2ViR1BVTGF5ZXIubW0gKi87IH07CisJCTMxNkJEQjhDMUU2RTE1MzAwMERFMEQ1QSAvKiBX
ZWJHUFVMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE2QkRCOEExRTZFMTUzMDAwREUwRDVBIC8qIFdlYkdQVUxheWVyLmggKi87IH07CisJCTMx
NkJEQjhEMUU2RTE4OTgwMERFMEQ1QSAvKiBHUFVEZXZpY2VNZXRhbC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQjg4MUU2RTE0MUMwMERFMEQ1
QSAvKiBHUFVEZXZpY2VNZXRhbC5tbSAqLzsgfTsKIAkJMzE2RkUwNzEwRTZDQ0JFRTAwQkY2MDg4
IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1l
UnVsZS5jcHAgKi87IH07CiAJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZy
YW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJ
CTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkYwRTZDQ0JF
RTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi87IH07CkBAIC04NjY0LDYgKzg2
NjksMTEgQEAKIAkJMzE0QkUzQTIxQjMwRjZEMTAwMTQxOTgyIC8qIENTU05hbWVkSW1hZ2VWYWx1
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NOYW1lZEltYWdl
VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTRCRTNBNDFCMzEwM0ZC
MDAxNDE5ODIgLyogTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNEJFM0E1MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1l
ZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxNkJEQjg0MUU2RTBBMjEwMERFMEQ1QSAvKiBHUFVEZXZpY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVRGV2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE2QkRCODUxRTZFMEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE2QkRCODgxRTZFMTQxQzAwREUwRDVBIC8qIEdQVURldmljZU1ldGFs
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVRGV2aWNlTWV0
YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQjg5MUU2RTE1MzAwMERF
MEQ1QSAvKiBXZWJHUFVMYXllci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkdQVUxheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZC
REI4QTFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViR1BVTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8q
IEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
Q1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZG
MEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NLZXlmcmFtZXNSdWxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NDM2LDYgKzE3NDQ2LDggQEAKIAkJNDk4NzcwQzExMjQy
QzUwRDAwMjIyNkJBIC8qIGdwdSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMzE2QkRCODQxRTZFMEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5jcHAgKi8s
CisJCQkJMzE2QkRCODUxRTZFMEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5oICovLAogCQkJCTQ5
ODc3MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmNwcCAqLywKIAkJCQk0OTg3NzBEODEy
NDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovLAogCQkJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIy
MjZCQSAvKiBUaWxpbmdEYXRhLmNwcCAqLywKQEAgLTIyNTI3LDYgKzIyNTM5LDcgQEAKIAkJCQlC
MkFGRkM3ODBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhc2NhZGVDb2NvYS5tbSAqLywKIAkJCQk3
QzRFREQ3MzFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tICovLAogCQkJCUI1MzIwRDZB
MTIyQTI0RTkwMDJEMTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gKi8sCisJCQkJMzE2
QkRCODgxRTZFMTQxQzAwREUwRDVBIC8qIEdQVURldmljZU1ldGFsLm1tICovLAogCQkJCTJEMEI0
QUE5MThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UuaCAqLywKIAkJCQkyRDBCNEFBQTE4REEx
Q0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLm1tICovLAogCQkJCUFEOUZGNkUwMTkwODM5MUQwMDNC
NjFFMCAvKiBJT1N1cmZhY2VQb29sQ29jb2EubW0gKi8sCkBAIC0yMjUzNiw2ICsyMjU0OSw4IEBA
CiAJCQkJMkQzRUY0NDUxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5
ZXJEZWxlZ2F0ZS5tbSAqLywKIAkJCQkyRDNFRjQ0NjE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29y
ZUNBTGF5ZXJFeHRyYXMuaCAqLywKIAkJCQkyRDNFRjQ0NzE5MTc5MTVDMDAwMzQxODQgLyogV2Vi
Q29yZUNBTGF5ZXJFeHRyYXMubW0gKi8sCisJCQkJMzE2QkRCODkxRTZFMTUzMDAwREUwRDVBIC8q
IFdlYkdQVUxheWVyLm1tICovLAorCQkJCTMxNkJEQjhBMUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJH
UFVMYXllci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0yNzE5NSw2ICsyNzIxMCw3IEBACiAJCQkJMTlCRkY2NEYxMUMwRjJBQzAw
QjhDMDREIC8qIEpTU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyRkEzRDczMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENzUwQUI3NUE2RjAwMEU1QUM0IC8qIEpT
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZCREI4
QzFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
RkEzRDc3MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDM1OEU4N0QxMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENzkwQUI3NUE2RjAwMEU1
QUM0IC8qIEpTU1ZHRkVGbG9vZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc1NDcsNiAr
Mjc1NjMsNyBAQAogCQkJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIg
LyogTWVkaWFRdWVyeU1hdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0OTNCNkMxMUQ3NEI0
MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5UGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZC
REI4NjFFNkUwQTI3MDBERTBENUEgLyogR1BVRGV2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
OTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExp
bmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEFDQThCMUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRp
YVJlbW90ZVNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTkyMSw2ICsyOTkzOCw3IEBACiAJCQkJ
NjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTk3QkM2QTIwMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5N0JDNkEyMzE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2VBdXRob3JpemVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkJEQjhCMUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJH
UFVMYXllci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTk3QkM2QTI3MTUwNUYwODEwMDFCNzRBQyAv
KiBEYXRhYmFzZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU0NTZGMTgxNjc3RDc0
RTAwNUVEREY5IC8qIERhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNC
MkIyMzFBNTczM0Y0MDAzMzMzOTIgLyogRGF0YWJhc2VQcm92aWRlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTMwNTAyLDYgKzMwNTIwLDcgQEAKIAkJCQlBNTg0MEUxQzE4N0I3NEQ1MDA4NDNCMTAg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTcxQjFFMTI2MTY0MDQ5MUEwMEIxODgwQSAvKiBJbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNTA3MUU4MDFDNTA2QjY2MDA5OTUxQkUgLyogSW5zcGVjdG9y
TWVtb3J5QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCOEQxRTZFMTg5ODAwREUw
RDVBIC8qIEdQVURldmljZU1ldGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzUxMjVD
ODI2NzAwQzUwNjlEIC8qIEluc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MDRBQUNDRDE4MzQ0NTU5MDBFM0Q5QkMgLyogSW5zcGVjdG9yTm9kZUZpbmRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QzUyMkQ0QjE1QjQ3N0U4MDA5QjdDOTUgLyogSW5zcGVjdG9y
T3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNDYxLDYgKzMxNDgwLDcgQEAKIAkJCQkw
N0ZGREU2ODE4MUFFRDQyMDA3MkQ0MDkgLyogTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDYwQzBDNjE5M0U4N0M3MDAzQzY1
NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTZCREI4NzFFNkUw
QTJDMDBERTBENUEgLyogR1BVRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMkNDMEY3
MURGRkRBMUYwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTlDN0NDQjUxOEM2Qjg5OTAwMzJFNDEzIC8qIE1lbW9pemVkRE9NUmVzdWx0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTFCQUMyMUJEODA2NEUwMDU1RDgxRiAvKiBNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvZ2dpbmcuaAppbmRleCBiYTU3N2ViMmY4MzAzMThkMjIzYjZlNTRhMTI5NjFmOTVkMGJkZjA4
Li5jNzRiOTdmNTYyOGU0YWYyMzE5NTljMGEyOGY5NTkzNWRlOTMyZmU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9nZ2luZy5oCkBAIC04Nyw2ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBNKFVSTFBhcnNlcikgXAogICAgIE0oV2ViQXVkaW8pIFwKICAgICBNKFdlYkdMKSBcCisgICAg
TShXZWJHUFUpIFwKICAgICBNKFdlYlJUQykgXAogICAgIE0oV2ViUmVwbGF5KSBcCiAgICAgTShX
aGVlbEV2ZW50VGVzdFRyaWdnZXJzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVURldmljZU1ldGFsLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4YzUz
M2U3MmYwZTAwNGNkNzRmMGEwNWE3ZDNhNjEyMDYxM2FmYmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbQpA
QCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHUFVEZXZpY2UuaCIKKworI2ltcG9y
dCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiV2ViR1BVTGF5ZXIuaCIKKworI2ltcG9ydCA8TWV0YWwv
TWV0YWwuaD4KKyNpbXBvcnQgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KKyNpbXBvcnQgPHd0Zi9C
bG9ja09iakNFeGNlcHRpb25zLmg+CisKKyNpZiBFTkFCTEUoV0VCR1BVKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0dQVURldmljZTo6R1BVRGV2aWNlKCkKK3sKKyAgICBtX2RldmljZSA9IChN
VExEZXZpY2UqKU1UTENyZWF0ZVN5c3RlbURlZmF1bHREZXZpY2UoKTsKKyAgICBMT0coV2ViR1BV
LCAiR1BVRGV2aWNlOjpHUFVEZXZpY2UgTWV0YWwgZGV2aWNlIGlzICVwIiwgbV9kZXZpY2UuZ2V0
KCkpOworCisgICAgaWYgKCFtX2RldmljZSkgeworICAgICAgICBMT0coV2ViR1BVLCAiR1BVRGV2
aWNlOjpHUFVEZXZpY2UgLS0gY291bGQgbm90IGNyZWF0ZSB0aGUgZGV2aWNlIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBt
X2xheWVyID0gW1tXZWJHUFVMYXllciBhbGxvY10gaW5pdFdpdGhHUFVEZXZpY2U6dGhpc107Cisg
ICAgW21fbGF5ZXIgc2V0T3BhcXVlOjBdOworI2lmbmRlZiBOREVCVUcKKyAgICBbbV9sYXllciBz
ZXROYW1lOkAiV2ViR1BVIExheWVyIl07CisjZW5kaWYKKworICAgIFttX2xheWVyIHNldERldmlj
ZTooaWQ8TVRMRGV2aWNlPiltX2RldmljZS5nZXQoKV07CisgICAgW21fbGF5ZXIgc2V0UGl4ZWxG
b3JtYXQ6TVRMUGl4ZWxGb3JtYXRCR1JBOFVub3JtXTsKKyAgICBbbV9sYXllciBzZXRGcmFtZWJ1
ZmZlck9ubHk6WUVTXTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCit9CisKK3ZvaWQg
R1BVRGV2aWNlOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBpZiAoIW1f
ZGV2aWNlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9sYXllcikgeworICAgICAgICBb
bV9sYXllciBzZXRCb3VuZHM6Q0dSZWN0TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KV07CisgICAg
ICAgIFttX2xheWVyIHNldERyYXdhYmxlU2l6ZTpDR1NpemVNYWtlKHdpZHRoLCBoZWlnaHQpXTsK
KyAgICB9CisKKyAgICAvLyBGSVhNRTogV2ViR1BVIC0gTG90cyBvZiByZXNoYXBlIHN0dWZmIHNo
b3VsZCBnbyBoZXJlLiBTZWUgR0MzRC4KK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJHUFVMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR1BVTGF5ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDMyNWVjYzA2ZTJhMjM1NDc5NDFlNzgwY2Q4
NmQ2MGZkNDhjNGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR1BVTGF5ZXIuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBv
cnQgPE1ldGFsL01ldGFsLmg+CisjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR1BVRGV2aWNlOworfQorCisjaWYgIVBMQVRGT1JN
KElPU19TSU1VTEFUT1IpCitAaW50ZXJmYWNlIFdlYkdQVUxheWVyIDogQ0FNZXRhbExheWVyIHsK
KyNlbHNlCitAaW50ZXJmYWNlIFdlYkdQVUxheWVyIDogQ0FMYXllciB7CisjZW5kaWYKKyAgICBX
ZWJDb3JlOjpHUFVEZXZpY2UqIF9jb250ZXh0OworICAgIGZsb2F0IF9kZXZpY2VQaXhlbFJhdGlv
OworfQorCitAcHJvcGVydHkgKG5vbmF0b21pYykgV2ViQ29yZTo6R1BVRGV2aWNlKiBjb250ZXh0
OworCistIChpZClpbml0V2l0aEdQVURldmljZTooV2ViQ29yZTo6R1BVRGV2aWNlKiljb250ZXh0
OworCistIChDR0ltYWdlUmVmKWNvcHlJbWFnZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6KENHQ29s
b3JTcGFjZVJlZiljb2xvclNwYWNlOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHUFVMYXllci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdQVUxheWVyLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljZGIy
MWMyNTExNTViNGJjN2U5MzNhZmQ2Yjc5NjFlYTdkNTQ3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHUFVMYXllci5tbQpAQCAt
MCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViR1BVTGF5ZXIuaCIKKworI2ltcG9y
dCAiR1BVRGV2aWNlLmgiCisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2ltcG9ydCAi
R3JhcGhpY3NMYXllci5oIgorI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0BpbXBsZW1lbnRh
dGlvbiBXZWJHUFVMYXllcgorCitAc3ludGhlc2l6ZSBjb250ZXh0PV9jb250ZXh0OworCistIChp
ZClpbml0V2l0aEdQVURldmljZTooR1BVRGV2aWNlKiljb250ZXh0Cit7CisgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKKyAgICBfY29udGV4dCA9IGNvbnRleHQ7CisKKyAgICAvLyBGSVhNRTogV2Vi
R1BVIC0gaGFuZGxlIHJldGluYSBjb3JyZWN0bHkuCisgICAgX2RldmljZVBpeGVsUmF0aW8gPSAx
OworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHNlbGYuY29udGVudHNTY2FsZSA9IF9kZXZpY2VQ
aXhlbFJhdGlvOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAw
CisgICAgaWYgKFtzZWxmIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0Q29sb3JzcGFj
ZTopXSkKKyAgICAgICAgW3NlbGYgc2V0Q29sb3JzcGFjZTpzUkdCQ29sb3JTcGFjZVJlZigpXTsK
KyNlbmRpZgorI2VuZGlmCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKENHSW1hZ2VSZWYpY29w
eUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTooQ0dDb2xvclNwYWNlUmVmKWNvbG9yU3BhY2UK
K3sKKyAgICBpZiAoIV9jb250ZXh0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFVO
VVNFRF9QQVJBTShjb2xvclNwYWNlKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworLSAodm9p
ZClkaXNwbGF5Cit7CisgICAgLy8gVGhpcyBpcyBhIG5vLW9wLiBXZSBkb24ndCBuZWVkIHRvCisg
ICAgLy8gY2FsbCBkaXNwbGF5IC0gaW5zdGVhZCB3ZSBwcmVzZW50CisgICAgLy8gYSBkcmF3YWJs
ZSBmcm9tIG91ciBjb250ZXh0LgorfQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNGFiY2VkNjBi
ZmMwZGIwMjdkNGMwYjNiOTJlM2RiYTE2NTY0OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcApAQCAtMCwwICsxLDY4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJHUFVEZXZpY2UuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5o
IgorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8
R1BVRGV2aWNlPiBHUFVEZXZpY2U6OmNyZWF0ZSgpCit7CisgICAgUmVmUHRyPEdQVURldmljZT4g
ZGV2aWNlID0gYWRvcHRSZWYobmV3IEdQVURldmljZSgpKTsKKyAgICBMT0coV2ViR1BVLCAiR1BV
RGV2aWNlOjpjcmVhdGUoKSBkZXZpY2UgaXMgJXAiLCBkZXZpY2UuZ2V0KCkpOworCisgICAgaWYg
KCFkZXZpY2UtPm1fZGV2aWNlKSB7CisgICAgICAgIExPRyhXZWJHUFUsICJHUFVEZXZpY2U6OmNy
ZWF0ZSAtLSBubyBkZXZpY2UiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisg
ICAgcmV0dXJuIGRldmljZTsKK30KKworR1BVRGV2aWNlOjp+R1BVRGV2aWNlKCkKK3sKKyAgICBM
T0coV2ViR1BVLCAiR1BVRGV2aWNlOjp+R1BVRGV2aWNlKCkiKTsKK30KKworI2lmICFQTEFURk9S
TShDT0NPQSkKKworR1BVRGV2aWNlOjpHUFVEZXZpY2UoKQoreworCit9CisKK3ZvaWQgR1BVRGV2
aWNlOjpyZXNoYXBlKGludCwgaW50KQoreworfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVEZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMWVjYzdiZmJiMzNlM2NmMWNlZGY3M2NjNzVk
ZjU2NWMxYTg4NWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJHUFUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8cnVudGlt
ZS9BcnJheUJ1ZmZlclZpZXcuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCisjaWYg
UExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIENBTGF5ZXI7CitPQkpDX0NMQVNTIE1UTERldmlj
ZTsKK09CSkNfQ0xBU1MgV2ViR1BVTGF5ZXI7Cit0eXBlZGVmIE1UTERldmljZSBQbGF0Zm9ybUdQ
VURldmljZTsKKyNlbHNlCit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR1BVRGV2aWNlOworI2VuZGlm
CisKKyNpZiBVU0UoQ0EpCisjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyLmgiCisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHUFVEZXZpY2UgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHUFVEZXZpY2U+IHsKK3B1YmxpYzoKKworICAgIHN0YXRpYyBSZWZQdHI8R1BVRGV2aWNlPiBj
cmVhdGUoKTsKKyAgICB+R1BVRGV2aWNlKCk7CisKKyAgICB2b2lkIHJlc2hhcGUoaW50IHdpZHRo
LCBpbnQgaGVpZ2h0KTsKKworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViR1BVTGF5ZXIq
IGxheWVyKCkgeyByZXR1cm4gbV9sYXllci5nZXQoKTsgfQorICAgIENBTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCB7IHJldHVybiByZWludGVycHJldF9jYXN0PENBTGF5ZXIqPihtX2xheWVy
LmdldCgpKTsgfQorICAgIFBsYXRmb3JtR1BVRGV2aWNlKiBkZXZpY2UoKSB7IHJldHVybiBtX2Rl
dmljZS5nZXQoKTsgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgR1BVRGV2aWNlKCk7CisKKyAg
ICBSZXRhaW5QdHI8V2ViR1BVTGF5ZXI+IG1fbGF5ZXI7CisgICAgUmV0YWluUHRyPFBsYXRmb3Jt
R1BVRGV2aWNlPiBtX2RldmljZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303644</attachid>
            <date>2017-03-07 04:38:07 -0800</date>
            <delta_ts>2017-03-07 13:01:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169219-20170307233805.patch</filename>
            <type>text/plain</type>
            <size>26084</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzBmZGUzMDA5N2I0ZmQ1
YjI5NTNiNTRiYmQzNzNiODQ4ZjFkMjFlNi4uZGM5YWE5ZGM2N2U2YTU0YmEyNDUwNWM3N2NiNmMy
Yzk3MDE2OGE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTAzLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgR1BVRGV2aWNlIGltcGxl
bWVudGF0aW9uIGFuZCBXZWJHUFVMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDg3OTA0
OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OkdQVURldmljZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVEZXZpY2U6OnJlc2hhcGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdQVUxheWVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdQVUxheWVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViR1BVTGF5ZXIgaW5pdFdpdGhH
UFVEZXZpY2U6XSk6CisgICAgICAgICgtW1dlYkdQVUxheWVyIGNvcHlJbWFnZVNuYXBzaG90V2l0
aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdQVUxheWVyIGRpc3BsYXldKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpHUFVEZXZpY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZp
Y2U6On5HUFVEZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpHUFVEZXZpY2Up
OgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpyZXNoYXBlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R1BVRGV2aWNlOjpsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVEZXZpY2U6OnBsYXRmb3Jt
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpkZXZpY2UpOgorCiAyMDE3LTAz
LTA3ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjEzNDEyKTogSlBFRyBwcmVtdWx0aXBsaWNhdGlvbiB0ZXN0cyBmYWlsIHVuZGVyIEd1YXJk
TWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3Jl
LnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZp
ZwppbmRleCA5OTY1OTg5N2ZhYWMxYTlhNWRmZDU2ZTI1MzdlNDVhNTg1YzRiZmUyLi5kMTc1ZjAy
ZWQwZTA0ZDYyNWI2ZjMxMDUxYWVjYzU3YjE0MGFhOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKQEAgLTc4LDcgKzc4LDcgQEAgTElCV0VC
UlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9GUkFNRVdPUktTX0RJUl9OTyA9ICQoV0VCQ09S
RV9GUkFNRVdPUktTX0RJUikKIExJQldFQlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJB
TUVXT1JLU19ESVJfWUVTID0gJChXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUik7CiAKIE9USEVS
X0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JNKQotT1RIRVJf
TERGTEFHU19CQVNFID0gLWxzcWxpdGUzIC1sb2JqYyAtbEFOR0xFOworT1RIRVJfTERGTEFHU19C
QVNFID0gLWxzcWxpdGUzIC1sb2JqYyAtbEFOR0xFIC1mcmFtZXdvcmsgTWV0YWw7CiBPVEhFUl9M
REZMQUdTX0JBU0VfaW9zID0gJChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ0ZOZXR3
b3JrIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29y
ayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIE1vYmlsZUNvcmVTZXJ2
aWNlcyAtZnJhbWV3b3JrIE9wZW5HTEVTIC1sTW9iaWxlR2VzdGFsdCAkKFdLX0lPU19CSU5DT01Q
QVRfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1pcGhvbmVvcypdID0gJChP
VEhFUl9MREZMQUdTX0JBU0VfaW9zKSAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIEdy
YXBoaWNzU2VydmljZXMgJChMSUJXRUJSVENfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTX1BMQVRG
T1JNW3Nkaz1pcGhvbmVzaW11bGF0b3IqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgJChM
SUJXRUJSVENfTERGTEFHUyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmMxZjViYzI3MGM1NDQzNmExYjdiYWEzOTJiODIzNTJk
MzkyYWJkYy4uOWYzZDBmNmFjYmU4MzlhNTU5NWVhNDcyZjZkNWY2NTdjOTdkYTdmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTM1Miw2ICsxMzUyLDExIEBACiAJCTMxNEJFM0EzMUIzMEY2RDEwMDE0MTk4MiAvKiBDU1NOYW1l
ZEltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE0QkUzQTIxQjMwRjZEMTAwMTQxOTgyIC8qIENTU05hbWVkSW1hZ2VWYWx1ZS5jcHAg
Ki87IH07CiAJCTMxNEJFM0E2MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVk
SW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0QkUzQTQxQjMxMDNGQjAwMTQxOTgyIC8qIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAg
Ki87IH07CiAJCTMxNEJFM0E3MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVk
SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
NEJFM0E1MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCAqLzsg
fTsKKwkJMzE2QkRCODYxRTZFMEEyNzAwREUwRDVBIC8qIEdQVURldmljZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCODUxRTZFMEEyMTAwREUw
RDVBIC8qIEdQVURldmljZS5oICovOyB9OworCQkzMTZCREI4NzFFNkUwQTJDMDBERTBENUEgLyog
R1BVRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxNkJEQjg0MUU2RTBBMjEwMERFMEQ1QSAvKiBHUFVEZXZpY2UuY3BwICovOyB9OworCQkz
MTZCREI4QjFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREI4OTFFNkUxNTMwMDBERTBENUEg
LyogV2ViR1BVTGF5ZXIubW0gKi87IH07CisJCTMxNkJEQjhDMUU2RTE1MzAwMERFMEQ1QSAvKiBX
ZWJHUFVMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE2QkRCOEExRTZFMTUzMDAwREUwRDVBIC8qIFdlYkdQVUxheWVyLmggKi87IH07CisJCTMx
NkJEQjhEMUU2RTE4OTgwMERFMEQ1QSAvKiBHUFVEZXZpY2VNZXRhbC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQjg4MUU2RTE0MUMwMERFMEQ1
QSAvKiBHUFVEZXZpY2VNZXRhbC5tbSAqLzsgfTsKIAkJMzE2RkUwNzEwRTZDQ0JFRTAwQkY2MDg4
IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1l
UnVsZS5jcHAgKi87IH07CiAJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZy
YW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJ
CTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkYwRTZDQ0JF
RTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi87IH07CkBAIC04NjY0LDYgKzg2
NjksMTEgQEAKIAkJMzE0QkUzQTIxQjMwRjZEMTAwMTQxOTgyIC8qIENTU05hbWVkSW1hZ2VWYWx1
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NOYW1lZEltYWdl
VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTRCRTNBNDFCMzEwM0ZC
MDAxNDE5ODIgLyogTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNEJFM0E1MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1l
ZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxNkJEQjg0MUU2RTBBMjEwMERFMEQ1QSAvKiBHUFVEZXZpY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVRGV2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE2QkRCODUxRTZFMEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE2QkRCODgxRTZFMTQxQzAwREUwRDVBIC8qIEdQVURldmljZU1ldGFs
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVRGV2aWNlTWV0
YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQjg5MUU2RTE1MzAwMERF
MEQ1QSAvKiBXZWJHUFVMYXllci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkdQVUxheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZC
REI4QTFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViR1BVTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8q
IEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
Q1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZG
MEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NLZXlmcmFtZXNSdWxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NDM2LDYgKzE3NDQ2LDggQEAKIAkJNDk4NzcwQzExMjQy
QzUwRDAwMjIyNkJBIC8qIGdwdSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMzE2QkRCODQxRTZFMEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5jcHAgKi8s
CisJCQkJMzE2QkRCODUxRTZFMEEyMTAwREUwRDVBIC8qIEdQVURldmljZS5oICovLAogCQkJCTQ5
ODc3MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmNwcCAqLywKIAkJCQk0OTg3NzBEODEy
NDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovLAogCQkJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIy
MjZCQSAvKiBUaWxpbmdEYXRhLmNwcCAqLywKQEAgLTIyNTI3LDYgKzIyNTM5LDcgQEAKIAkJCQlC
MkFGRkM3ODBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhc2NhZGVDb2NvYS5tbSAqLywKIAkJCQk3
QzRFREQ3MzFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tICovLAogCQkJCUI1MzIwRDZB
MTIyQTI0RTkwMDJEMTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gKi8sCisJCQkJMzE2
QkRCODgxRTZFMTQxQzAwREUwRDVBIC8qIEdQVURldmljZU1ldGFsLm1tICovLAogCQkJCTJEMEI0
QUE5MThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UuaCAqLywKIAkJCQkyRDBCNEFBQTE4REEx
Q0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLm1tICovLAogCQkJCUFEOUZGNkUwMTkwODM5MUQwMDNC
NjFFMCAvKiBJT1N1cmZhY2VQb29sQ29jb2EubW0gKi8sCkBAIC0yMjUzNiw2ICsyMjU0OSw4IEBA
CiAJCQkJMkQzRUY0NDUxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5
ZXJEZWxlZ2F0ZS5tbSAqLywKIAkJCQkyRDNFRjQ0NjE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29y
ZUNBTGF5ZXJFeHRyYXMuaCAqLywKIAkJCQkyRDNFRjQ0NzE5MTc5MTVDMDAwMzQxODQgLyogV2Vi
Q29yZUNBTGF5ZXJFeHRyYXMubW0gKi8sCisJCQkJMzE2QkRCODkxRTZFMTUzMDAwREUwRDVBIC8q
IFdlYkdQVUxheWVyLm1tICovLAorCQkJCTMxNkJEQjhBMUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJH
UFVMYXllci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0yNzE5NSw2ICsyNzIxMCw3IEBACiAJCQkJMTlCRkY2NEYxMUMwRjJBQzAw
QjhDMDREIC8qIEpTU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyRkEzRDczMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENzUwQUI3NUE2RjAwMEU1QUM0IC8qIEpT
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZCREI4
QzFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
RkEzRDc3MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDM1OEU4N0QxMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENzkwQUI3NUE2RjAwMEU1
QUM0IC8qIEpTU1ZHRkVGbG9vZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc1NDcsNiAr
Mjc1NjMsNyBAQAogCQkJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIg
LyogTWVkaWFRdWVyeU1hdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0OTNCNkMxMUQ3NEI0
MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5UGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTZC
REI4NjFFNkUwQTI3MDBERTBENUEgLyogR1BVRGV2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
OTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExp
bmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEFDQThCMUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRp
YVJlbW90ZVNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTkyMSw2ICsyOTkzOCw3IEBACiAJCQkJ
NjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTk3QkM2QTIwMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5N0JDNkEyMzE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2VBdXRob3JpemVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkJEQjhCMUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJH
UFVMYXllci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTk3QkM2QTI3MTUwNUYwODEwMDFCNzRBQyAv
KiBEYXRhYmFzZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU0NTZGMTgxNjc3RDc0
RTAwNUVEREY5IC8qIERhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNC
MkIyMzFBNTczM0Y0MDAzMzMzOTIgLyogRGF0YWJhc2VQcm92aWRlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTMwNTAyLDYgKzMwNTIwLDcgQEAKIAkJCQlBNTg0MEUxQzE4N0I3NEQ1MDA4NDNCMTAg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTcxQjFFMTI2MTY0MDQ5MUEwMEIxODgwQSAvKiBJbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNTA3MUU4MDFDNTA2QjY2MDA5OTUxQkUgLyogSW5zcGVjdG9y
TWVtb3J5QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCOEQxRTZFMTg5ODAwREUw
RDVBIC8qIEdQVURldmljZU1ldGFsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzUxMjVD
ODI2NzAwQzUwNjlEIC8qIEluc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MDRBQUNDRDE4MzQ0NTU5MDBFM0Q5QkMgLyogSW5zcGVjdG9yTm9kZUZpbmRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QzUyMkQ0QjE1QjQ3N0U4MDA5QjdDOTUgLyogSW5zcGVjdG9y
T3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNDYxLDYgKzMxNDgwLDcgQEAKIAkJCQkw
N0ZGREU2ODE4MUFFRDQyMDA3MkQ0MDkgLyogTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0Q2NDFFQkYxODE5QjM2MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDYwQzBDNjE5M0U4N0M3MDAzQzY1
NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTZCREI4NzFFNkUw
QTJDMDBERTBENUEgLyogR1BVRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMkNDMEY3
MURGRkRBMUYwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTlDN0NDQjUxOEM2Qjg5OTAwMzJFNDEzIC8qIE1lbW9pemVkRE9NUmVzdWx0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTFCQUMyMUJEODA2NEUwMDU1RDgxRiAvKiBNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvZ2dpbmcuaAppbmRleCBiYTU3N2ViMmY4MzAzMThkMjIzYjZlNTRhMTI5NjFmOTVkMGJkZjA4
Li5jNzRiOTdmNTYyOGU0YWYyMzE5NTljMGEyOGY5NTkzNWRlOTMyZmU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9nZ2luZy5oCkBAIC04Nyw2ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBNKFVSTFBhcnNlcikgXAogICAgIE0oV2ViQXVkaW8pIFwKICAgICBNKFdlYkdMKSBcCisgICAg
TShXZWJHUFUpIFwKICAgICBNKFdlYlJUQykgXAogICAgIE0oV2ViUmVwbGF5KSBcCiAgICAgTShX
aGVlbEV2ZW50VGVzdFRyaWdnZXJzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVURldmljZU1ldGFsLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZjc4
NTUxYjI1MThlZGRkY2M0NzY5ZDc3ZWU3ZTkwMDI4NDQyY2IKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbQpA
QCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJHUFVEZXZpY2UuaCIKKworI2ltcG9y
dCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiV2ViR1BVTGF5ZXIuaCIKKworI2ltcG9ydCA8TWV0YWwv
TWV0YWwuaD4KKyNpbXBvcnQgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KKyNpbXBvcnQgPHd0Zi9C
bG9ja09iakNFeGNlcHRpb25zLmg+CisKKyNpZiBFTkFCTEUoV0VCR1BVKSAmJiAhUExBVEZPUk0o
SU9TX1NJTVVMQVRPUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVEZXZpY2U6OkdQVURl
dmljZSgpCit7CisgICAgbV9kZXZpY2UgPSAoTVRMRGV2aWNlKilNVExDcmVhdGVTeXN0ZW1EZWZh
dWx0RGV2aWNlKCk7CisgICAgTE9HKFdlYkdQVSwgIkdQVURldmljZTo6R1BVRGV2aWNlIE1ldGFs
IGRldmljZSBpcyAlcCIsIG1fZGV2aWNlLmdldCgpKTsKKworICAgIGlmICghbV9kZXZpY2UpIHsK
KyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVURldmljZTo6R1BVRGV2aWNlIC0tIGNvdWxkIG5vdCBj
cmVhdGUgdGhlIGRldmljZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgbV9sYXllciA9IFtbV2ViR1BVTGF5ZXIgYWxsb2Nd
IGluaXRXaXRoR1BVRGV2aWNlOnRoaXNdOworICAgIFttX2xheWVyIHNldE9wYXF1ZTowXTsKKyNp
Zm5kZWYgTkRFQlVHCisgICAgW21fbGF5ZXIgc2V0TmFtZTpAIldlYkdQVSBMYXllciJdOworI2Vu
ZGlmCisKKyAgICBbbV9sYXllciBzZXREZXZpY2U6KGlkPE1UTERldmljZT4pbV9kZXZpY2UuZ2V0
KCldOworICAgIFttX2xheWVyIHNldFBpeGVsRm9ybWF0Ok1UTFBpeGVsRm9ybWF0QkdSQThVbm9y
bV07CisgICAgW21fbGF5ZXIgc2V0RnJhbWVidWZmZXJPbmx5OllFU107CisgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUworfQorCit2b2lkIEdQVURldmljZTo6cmVzaGFwZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpCit7CisgICAgaWYgKCFtX2RldmljZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG1fbGF5ZXIpIHsKKyAgICAgICAgW21fbGF5ZXIgc2V0Qm91bmRzOkNHUmVjdE1ha2Uo
MCwgMCwgd2lkdGgsIGhlaWdodCldOworICAgICAgICBbbV9sYXllciBzZXREcmF3YWJsZVNpemU6
Q0dTaXplTWFrZSh3aWR0aCwgaGVpZ2h0KV07CisgICAgfQorCisgICAgLy8gRklYTUU6IFdlYkdQ
VSAtIExvdHMgb2YgcmVzaGFwZSBzdHVmZiBzaG91bGQgZ28gaGVyZS4gU2VlIEdDM0QuCit9Cisg
ICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR1BVTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdQVUxheWVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDAzMjVlY2MwNmUyYTIzNTQ3OTQxZTc4MGNkODZkNjBmZDQ4YzRkNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdQVUxheWVyLmgK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgorI2ltcG9ydCA8
UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdQ
VURldmljZTsKK30KKworI2lmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKQorQGludGVyZmFjZSBX
ZWJHUFVMYXllciA6IENBTWV0YWxMYXllciB7CisjZWxzZQorQGludGVyZmFjZSBXZWJHUFVMYXll
ciA6IENBTGF5ZXIgeworI2VuZGlmCisgICAgV2ViQ29yZTo6R1BVRGV2aWNlKiBfY29udGV4dDsK
KyAgICBmbG9hdCBfZGV2aWNlUGl4ZWxSYXRpbzsKK30KKworQHByb3BlcnR5IChub25hdG9taWMp
IFdlYkNvcmU6OkdQVURldmljZSogY29udGV4dDsKKworLSAoaWQpaW5pdFdpdGhHUFVEZXZpY2U6
KFdlYkNvcmU6OkdQVURldmljZSopY29udGV4dDsKKworLSAoQ0dJbWFnZVJlZiljb3B5SW1hZ2VT
bmFwc2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYpY29sb3JTcGFjZTsKKworQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
R1BVTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJH
UFVMYXllci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2RiMjFjMjUxMTU1YjRiYzdlOTMzYWZkNmI3OTYxZWE3
ZDU0NzlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViR1BVTGF5ZXIubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbXBv
cnQgIldlYkdQVUxheWVyLmgiCisKKyNpbXBvcnQgIkdQVURldmljZS5oIgorI2ltcG9ydCAiR3Jh
cGhpY3NDb250ZXh0Q0cuaCIKKyNpbXBvcnQgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbXBvcnQgPHd0
Zi9GYXN0TWFsbG9jLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCitAaW1wbGVtZW50YXRpb24gV2ViR1BVTGF5ZXIKKworQHN5bnRoZXNp
emUgY29udGV4dD1fY29udGV4dDsKKworLSAoaWQpaW5pdFdpdGhHUFVEZXZpY2U6KEdQVURldmlj
ZSopY29udGV4dAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgX2NvbnRleHQgPSBj
b250ZXh0OworCisgICAgLy8gRklYTUU6IFdlYkdQVSAtIGhhbmRsZSByZXRpbmEgY29ycmVjdGx5
LgorICAgIF9kZXZpY2VQaXhlbFJhdGlvID0gMTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBz
ZWxmLmNvbnRlbnRzU2NhbGUgPSBfZGV2aWNlUGl4ZWxSYXRpbzsKKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAorICAgIGlmIChbc2VsZiByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHNldENvbG9yc3BhY2U6KV0pCisgICAgICAgIFtzZWxmIHNldENvbG9y
c3BhY2U6c1JHQkNvbG9yU3BhY2VSZWYoKV07CisjZW5kaWYKKyNlbmRpZgorICAgIHJldHVybiBz
ZWxmOworfQorCistIChDR0ltYWdlUmVmKWNvcHlJbWFnZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6
KENHQ29sb3JTcGFjZVJlZiljb2xvclNwYWNlCit7CisgICAgaWYgKCFfY29udGV4dCkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBVTlVTRURfUEFSQU0oY29sb3JTcGFjZSk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKKy0gKHZvaWQpZGlzcGxheQoreworICAgIC8vIFRoaXMgaXMg
YSBuby1vcC4gV2UgZG9uJ3QgbmVlZCB0bworICAgIC8vIGNhbGwgZGlzcGxheSAtIGluc3RlYWQg
d2UgcHJlc2VudAorICAgIC8vIGEgZHJhd2FibGUgZnJvbSBvdXIgY29udGV4dC4KK30KKworQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURl
dmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zZDIzOGU3ZDUwMjU4MmI2OWViN2E1N2VjMmY0YjVlMTdiZDRhYjYx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVURldmljZS5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR1BVRGV2
aWNlLmgiCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPEdQVURldmljZT4gR1BVRGV2aWNlOjpjcmVhdGUo
KQoreworICAgIFJlZlB0cjxHUFVEZXZpY2U+IGRldmljZSA9IGFkb3B0UmVmKG5ldyBHUFVEZXZp
Y2UoKSk7CisgICAgTE9HKFdlYkdQVSwgIkdQVURldmljZTo6Y3JlYXRlKCkgZGV2aWNlIGlzICVw
IiwgZGV2aWNlLmdldCgpKTsKKworICAgIGlmICghZGV2aWNlLT5tX2RldmljZSkgeworICAgICAg
ICBMT0coV2ViR1BVLCAiR1BVRGV2aWNlOjpjcmVhdGUgLS0gbm8gZGV2aWNlIik7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBkZXZpY2U7Cit9CisKK0dQVURl
dmljZTo6fkdQVURldmljZSgpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVURldmljZTo6fkdQVURl
dmljZSgpIik7Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKElPU19TSU1V
TEFUT1IpCisKK0dQVURldmljZTo6R1BVRGV2aWNlKCkKK3sKKworfQorCit2b2lkIEdQVURldmlj
ZTo6cmVzaGFwZShpbnQsIGludCkKK3sKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFlY2M3YmZiYjMzZTNjZjFjZWRmNzNjYzc1ZGY1
NjVjMWE4ODVkMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVEZXZpY2UuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCR1BVKQorCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUv
QXJyYXlCdWZmZXJWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworI2lmIFBM
QVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBDQUxheWVyOworT0JKQ19DTEFTUyBNVExEZXZpY2U7
CitPQkpDX0NMQVNTIFdlYkdQVUxheWVyOwordHlwZWRlZiBNVExEZXZpY2UgUGxhdGZvcm1HUFVE
ZXZpY2U7CisjZWxzZQordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdQVURldmljZTsKKyNlbmRpZgor
CisjaWYgVVNFKENBKQorI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgorI2VuZGlmCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1BVRGV2aWNlIDogcHVibGljIFJlZkNvdW50ZWQ8
R1BVRGV2aWNlPiB7CitwdWJsaWM6CisKKyAgICBzdGF0aWMgUmVmUHRyPEdQVURldmljZT4gY3Jl
YXRlKCk7CisgICAgfkdQVURldmljZSgpOworCisgICAgdm9pZCByZXNoYXBlKGludCB3aWR0aCwg
aW50IGhlaWdodCk7CisKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkdQVUxheWVyKiBs
YXllcigpIHsgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7IH0KKyAgICBDQUxheWVyKiBwbGF0Zm9ybUxh
eWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVyKj4obV9sYXllci5n
ZXQoKSk7IH0KKyAgICBQbGF0Zm9ybUdQVURldmljZSogZGV2aWNlKCkgeyByZXR1cm4gbV9kZXZp
Y2UuZ2V0KCk7IH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdQVURldmljZSgpOworCisgICAg
UmV0YWluUHRyPFdlYkdQVUxheWVyPiBtX2xheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUdQ
VURldmljZT4gbV9kZXZpY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL21hYy9HUFVE
ZXZpY2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvbWFjL0dQVURldmlj
ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jN2Y0ZWJmN2QyNTRiNjRmNDE4NGNjZGE4OTE4NTMwOGU3ZTRlNzk5
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL21h
Yy9HUFVEZXZpY2UubW0KQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvR1BVRGV2aWNlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoR1BVLCBCYXNpYykKK3sKKyAgICBh
dXRvIGRldmljZSA9IEdQVURldmljZTo6Y3JlYXRlKCk7CisgICAgRVhQRUNUX05PVF9OVUxMKGRl
dmljZS0+bGF5ZXIoKSk7CisgICAgRVhQRUNUX05PVF9OVUxMKGRldmljZS0+cGxhdGZvcm1MYXll
cigpKTsKKworICAgIE1UTERldmljZSAqbXRsRGV2aWNlID0gZGV2aWNlLT5kZXZpY2UoKTsKKyAg
ICBFWFBFQ1RfTk9UX05VTEwobXRsRGV2aWNlKTsKKworICAgIE5TU3RyaW5nICpkZXZpY2VOYW1l
ID0gbXRsRGV2aWNlLm5hbWU7CisgICAgRVhQRUNUX0dUKGRldmljZU5hbWUubGVuZ3RoLCAwKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303706</attachid>
            <date>2017-03-07 13:01:45 -0800</date>
            <delta_ts>2017-03-07 13:26:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169219-20170308080141.patch</filename>
            <type>text/plain</type>
            <size>34689</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzBmZGUzMDA5N2I0ZmQ1
YjI5NTNiNTRiYmQzNzNiODQ4ZjFkMjFlNi4uNjIyMTU1NWVhZjM5MTYwZDIxZmZjOWNmNDUwN2Yz
MjdjMGRkNzRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE3LTAzLTA3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgR1BVRGV2aWNlIGltcGxl
bWVudGF0aW9uIGFuZCBXZWJHUFVMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDg3OTA0
OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBiYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBhIEdQVURldmljZSBvYmplY3QsCisgICAgICAgIHdo
aWNoIHJlZmVyZW5jZXMgYSBNVExEZXZpY2UuIEFsc28gYWRkIGEgV2ViR1BVTGF5ZXIKKyAgICAg
ICAgdGhhdCB3aWxsIHVsdGltYXRlbHkgYmUgdXNlZCB0byBob3N0IFdlYkdQVSBjb250ZW50Lgor
CisgICAgICAgIFdlYktpdCBBUEkgVGVzdDogV2ViQ29yZS9tYWMvR1BVRGV2aWNlLm1tCisKKyAg
ICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOiBMaW5rIHRvIE1ldGFsLgor
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6IE5ldyBmaWxlcy4KKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dn
aW5nLmg6IEFkZCBhIFdlYkdQVSBsb2dnaW5nIGNoYW5uZWwuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRhbC5tbTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpHUFVEZXZpY2U6OkdQVURldmljZSk6IENvY29hIGltcGxlbWVudGF0aW9uLgorICAgICAg
ICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpyZXNoYXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJHUFVMYXllci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJHUFVMYXllci5tbTogQWRkZWQuCisgICAgICAgICgtW1dlYkdQVUxheWVy
IGluaXRXaXRoR1BVRGV2aWNlOl0pOgorICAgICAgICAoLVtXZWJHUFVMYXllciBjb3B5SW1hZ2VT
bmFwc2hvdFdpdGhDb2xvclNwYWNlOl0pOgorICAgICAgICAoLVtXZWJHUFVMYXllciBkaXNwbGF5
XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVRGV2aWNlOjp+R1BVRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6
R1BVRGV2aWNlKTogSW1wbGVtZW50YXRpb24gZm9yIHBsYXRmb3JtcworICAgICAgICBvdGhlciB0
aGFuIE1hYyBhbmQgaU9TIGhhcmR3YXJlLgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpy
ZXNoYXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlOjpwbGF0Zm9ybUxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVURldmljZTo6cGxhdGZvcm1EZXZpY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVRGV2aWNlOjpsYXllcik6CisKIDIwMTctMDMtMDcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMTM0MTIpOiBKUEVHIHByZW11bHRp
cGxpY2F0aW9uIHRlc3RzIGZhaWwgdW5kZXIgR3VhcmRNYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29y
ZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCmluZGV4IDk5NjU5ODk3ZmFhYzFhOWE1
ZGZkNTZlMjUzN2U0NWE1ODVjNGJmZTIuLmQxNzVmMDJlZDBlMDRkNjI1YjZmMzEwNTFhZWNjNTdi
MTQwYWE4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNv
cmUueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54
Y2NvbmZpZwpAQCAtNzgsNyArNzgsNyBAQCBMSUJXRUJSVENfTElCUkFSWV9ESVJfVVNFX09WRVJS
SURFX0ZSQU1FV09SS1NfRElSX05PID0gJChXRUJDT1JFX0ZSQU1FV09SS1NfRElSKQogTElCV0VC
UlRDX0xJQlJBUllfRElSX1VTRV9PVkVSUklERV9GUkFNRVdPUktTX0RJUl9ZRVMgPSAkKFdLX09W
RVJSSURFX0ZSQU1FV09SS1NfRElSKTsKIAogT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAk
KE9USEVSX0xERkxBR1NfUExBVEZPUk0pCi1PVEhFUl9MREZMQUdTX0JBU0UgPSAtbHNxbGl0ZTMg
LWxvYmpjIC1sQU5HTEU7CitPVEhFUl9MREZMQUdTX0JBU0UgPSAtbHNxbGl0ZTMgLWxvYmpjIC1s
QU5HTEUgLWZyYW1ld29yayBNZXRhbDsKIE9USEVSX0xERkxBR1NfQkFTRV9pb3MgPSAkKE9USEVS
X0xERkxBR1NfQkFTRSkgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlR3JhcGhp
Y3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJ
bWFnZUlPIC1mcmFtZXdvcmsgTW9iaWxlQ29yZVNlcnZpY2VzIC1mcmFtZXdvcmsgT3BlbkdMRVMg
LWxNb2JpbGVHZXN0YWx0ICQoV0tfSU9TX0JJTkNPTVBBVF9MREZMQUdTKTsKIE9USEVSX0xERkxB
R1NfUExBVEZPUk1bc2RrPWlwaG9uZW9zKl0gPSAkKE9USEVSX0xERkxBR1NfQkFTRV9pb3MpIC1m
cmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgR3JhcGhpY3NTZXJ2aWNlcyAkKExJQldFQlJU
Q19MREZMQUdTKTsKIE9USEVSX0xERkxBR1NfUExBVEZPUk1bc2RrPWlwaG9uZXNpbXVsYXRvcipd
ID0gJChPVEhFUl9MREZMQUdTX0JBU0VfaW9zKSAkKExJQldFQlJUQ19MREZMQUdTKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1NYWMuY21ha2UKaW5kZXggNWUwZDk1NTk2NTM3M2Q3YmJhNmM3MWU2ZmRhM2U2OWZl
NTg2Mzg4MS4uODA1ODI4MGU4MjQxMTNkZDhlZDQwMzk1NzRhNzQ1MWU3OTI3ZWZhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTEwNyw2ICsxMDcsNyBAQCBsaXN0KEFQUEVORCBXZWJD
b3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NnIgog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jdiIKKyAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9ncmFwaGljcy9lZ2wiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW50eXBlIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wiCkBA
IC00MTQsNiArNDE1LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvU3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jZy9UcmFuc2Zvcm1hdGlvbk1hdHJpeENHLmNwcAogCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR1BVRGV2aWNlTWV0YWwubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250
Q2FzY2FkZUNvY29hLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1t
CkBAIC00MjcsNiArNDI5LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKIAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVEZXZpY2UuY3BwCisKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0K
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQu
bW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDJjMWY1YmMyNzBjNTQ0MzZhMWI3YmFhMzkyYjgyMzUyZDM5MmFiZGMuLjA2OTEwYzBl
Y2M0MWNkMmM3MWMzMTg3NDYyNDdlZDA2Y2Y4MjgwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNTIsNiArMTM1MiwxMSBA
QAogCQkzMTRCRTNBMzFCMzBGNkQxMDAxNDE5ODIgLyogQ1NTTmFtZWRJbWFnZVZhbHVlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNEJFM0EyMUIz
MEY2RDEwMDE0MTk4MiAvKiBDU1NOYW1lZEltYWdlVmFsdWUuY3BwICovOyB9OwogCQkzMTRCRTNB
NjFCMzEwM0ZCMDAxNDE5ODIgLyogTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNEJFM0E0MUIzMTAzRkIw
MDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwICovOyB9OwogCQkzMTRCRTNB
NzFCMzEwM0ZCMDAxNDE5ODIgLyogTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTRCRTNBNTFCMzEwM0ZCMDAx
NDE5ODIgLyogTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmggKi87IH07CisJCTMxNkJEQjg2MUU2
RTBBMjcwMERFMEQ1QSAvKiBHUFVEZXZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQjg1MUU2RTBBMjEwMERFMEQ1QSAvKiBHUFVEZXZpY2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzMTZC
REI4NzFFNkUwQTJDMDBERTBENUEgLyogR1BVRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQjg0MUU2RTBBMjEwMERFMEQ1QSAvKiBH
UFVEZXZpY2UuY3BwICovOyB9OworCQkzMTZCREI4QjFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BV
TGF5ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTZCREI4OTFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIubW0gKi87IH07CisJCTMxNkJE
QjhDMUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCOEExRTZFMTUzMDAwREUwRDVBIC8qIFdl
YkdQVUxheWVyLmggKi87IH07CisJCTMxNkJEQjhEMUU2RTE4OTgwMERFMEQ1QSAvKiBHUFVEZXZp
Y2VNZXRhbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxNkJEQjg4MUU2RTE0MUMwMERFMEQ1QSAvKiBHUFVEZXZpY2VNZXRhbC5tbSAqLzsgfTsKIAkJ
MzE2RkUwNzEwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZEMEU2Q0NCRUUw
MEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5jcHAgKi87IH07CiAJCTMxNkZFMDcyMEU2Q0NC
RUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NT
S2V5ZnJhbWVSdWxlLmggKi87IH07CiAJCTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NT
U0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzE2RkUwNkYwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5j
cHAgKi87IH07CkBAIC04NjY0LDYgKzg2NjksMTEgQEAKIAkJMzE0QkUzQTIxQjMwRjZEMTAwMTQx
OTgyIC8qIENTU05hbWVkSW1hZ2VWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDU1NOYW1lZEltYWdlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTRCRTNBNDFCMzEwM0ZCMDAxNDE5ODIgLyogTmFtZWRJbWFnZUdlbmVyYXRlZElt
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hbWVkSW1hZ2VH
ZW5lcmF0ZWRJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNEJFM0E1
MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQjg0MUU2RTBBMjEwMERFMEQ1QSAvKiBHUFVE
ZXZpY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVRGV2aWNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2QkRCODUxRTZFMEEyMTAwREUw
RDVBIC8qIEdQVURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVE
ZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2QkRCODgxRTZFMTQxQzAw
REUwRDVBIC8qIEdQVURldmljZU1ldGFsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gR1BVRGV2aWNlTWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxNkJEQjg5MUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXllci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdQVUxheWVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMTZCREI4QTFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVTGF5ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpT
Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2
RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxNkZFMDZGMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1l
c1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NLZXlm
cmFtZXNSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NDM2LDYgKzE3
NDQ2LDggQEAKIAkJNDk4NzcwQzExMjQyQzUwRDAwMjIyNkJBIC8qIGdwdSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMzE2QkRCODQxRTZFMEEyMTAwREUw
RDVBIC8qIEdQVURldmljZS5jcHAgKi8sCisJCQkJMzE2QkRCODUxRTZFMEEyMTAwREUwRDVBIC8q
IEdQVURldmljZS5oICovLAogCQkJCTQ5ODc3MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJl
LmNwcCAqLywKIAkJCQk0OTg3NzBEODEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovLAog
CQkJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmNwcCAqLywKQEAgLTIy
NTI3LDYgKzIyNTM5LDcgQEAKIAkJCQlCMkFGRkM3ODBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENh
c2NhZGVDb2NvYS5tbSAqLywKIAkJCQk3QzRFREQ3MzFBN0I2MDc4MDAxOThDNEQgLyogRm9udENv
Y29hLm1tICovLAogCQkJCUI1MzIwRDZBMTIyQTI0RTkwMDJEMTQ0MCAvKiBGb250UGxhdGZvcm1E
YXRhQ29jb2EubW0gKi8sCisJCQkJMzE2QkRCODgxRTZFMTQxQzAwREUwRDVBIC8qIEdQVURldmlj
ZU1ldGFsLm1tICovLAogCQkJCTJEMEI0QUE5MThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2Uu
aCAqLywKIAkJCQkyRDBCNEFBQTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLm1tICovLAog
CQkJCUFEOUZGNkUwMTkwODM5MUQwMDNCNjFFMCAvKiBJT1N1cmZhY2VQb29sQ29jb2EubW0gKi8s
CkBAIC0yMjUzNiw2ICsyMjU0OSw4IEBACiAJCQkJMkQzRUY0NDUxOTE3OTE1QzAwMDM0MTg0IC8q
IFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbSAqLywKIAkJCQkyRDNFRjQ0NjE5
MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCAqLywKIAkJCQkyRDNFRjQ0
NzE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gKi8sCisJCQkJMzE2
QkRCODkxRTZFMTUzMDAwREUwRDVBIC8qIFdlYkdQVUxheWVyLm1tICovLAorCQkJCTMxNkJEQjhB
MUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXllci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBj
b2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNzE5NSw2ICsyNzIxMCw3IEBA
CiAJCQkJMTlCRkY2NEYxMUMwRjJBQzAwQjhDMDREIC8qIEpTU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDczMEFCNzVBNkYwMDBFNUFDNCAvKiBK
U1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNE
NzUwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQkzMTZCREI4QzFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDc3MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZF
RGlzdGFudExpZ2h0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM1OEU4N0QxMzYwQTJF
RTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjJGQTNENzkwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVGbG9vZEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjc1NDcsNiArMjc1NjMsNyBAQAogCQkJCUQzQTk0QTNCMTIyREFCQUMw
MEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
M0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk0OTNCNkMxMUQ3NEI0MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5UGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkzMTZCREI4NjFFNkUwQTI3MDBERTBENUEgLyogR1BVRGV2aWNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFS
ZW1vdGVDb250cm9scy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUND
NTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEFDQThC
MUQyMzk0NjQwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
OTkyMSw2ICsyOTkzOCw3IEBACiAJCQkJNjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3Rv
bUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3QkM2QTIwMTUwNUYwODEwMDFCNzRBQyAv
KiBEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0JDNkEyMzE1MDVGMDgxMDAxQjc0
QUMgLyogRGF0YWJhc2VBdXRob3JpemVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNkJEQjhC
MUU2RTE1MzAwMERFMEQ1QSAvKiBXZWJHUFVMYXllci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTk3
QkM2QTI3MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUNvbnRleHQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkU0NTZGMTgxNjc3RDc0RTAwNUVEREY5IC8qIERhdGFiYXNlTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQUNCMkIyMzFBNTczM0Y0MDAzMzMzOTIgLyogRGF0YWJhc2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNTAyLDYgKzMwNTIwLDcgQEAKIAkJCQlB
NTg0MEUxQzE4N0I3NEQ1MDA4NDNCMTAgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcxQjFFMTI2MTY0MDQ5MUEwMEIxODgwQSAvKiBJbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTA3MUU4MDFDNTA2
QjY2MDA5OTUxQkUgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMzE2QkRCOEQxRTZFMTg5ODAwREUwRDVBIC8qIEdQVURldmljZU1ldGFsLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODJBQjE3NzUxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3Rvck5ldHdvcmtB
Z2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MDRBQUNDRDE4MzQ0NTU5MDBFM0Q5QkMgLyog
SW5zcGVjdG9yTm9kZUZpbmRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzUyMkQ0QjE1QjQ3
N0U4MDA5QjdDOTUgLyogSW5zcGVjdG9yT3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMx
NDYxLDYgKzMxNDgwLDcgQEAKIAkJCQkwN0ZGREU2ODE4MUFFRDQyMDA3MkQ0MDkgLyogTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q2NDFFQkYxODE5QjM2
MDAwRUU0QzQxIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDRDYwQzBDNjE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291cmNl
cyAqLywKKwkJCQkzMTZCREI4NzFFNkUwQTJDMDBERTBENUEgLyogR1BVRGV2aWNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzMkNDMEY3MURGRkRBMUYwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29u
c3RyYWludHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlDN0NDQjUxOEM2Qjg5OTAwMzJFNDEz
IC8qIE1lbW9pemVkRE9NUmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTFCQUMyMUJE
ODA2NEUwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCBiYTU3N2ViMmY4MzAzMThk
MjIzYjZlNTRhMTI5NjFmOTVkMGJkZjA4Li5jNzRiOTdmNTYyOGU0YWYyMzE5NTljMGEyOGY5NTkz
NWRlOTMyZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC04Nyw2ICs4Nyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFVSTFBhcnNlcikgXAogICAgIE0oV2ViQXVkaW8p
IFwKICAgICBNKFdlYkdMKSBcCisgICAgTShXZWJHUFUpIFwKICAgICBNKFdlYlJUQykgXAogICAg
IE0oV2ViUmVwbGF5KSBcCiAgICAgTShXaGVlbEV2ZW50VGVzdFRyaWdnZXJzKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVEZXZpY2VNZXRh
bC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVURldmljZU1l
dGFsLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVlNzgwNWY2NzlmNmRjYzQzZmQ3ZGEzYjA0ODM5ODQwZjZjZjk3
YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HUFVEZXZpY2VNZXRhbC5tbQpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJHUFVEZXZpY2UuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiV2ViR1BVTGF5
ZXIuaCIKKworI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKyNpbXBvcnQgPHJ1bnRpbWUvQXJyYXlC
dWZmZXIuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisKKyNpZiBFTkFC
TEUoV0VCR1BVKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitHUFVEZXZpY2U6OkdQVURldmljZSgpCit7CisgICAgbV9kZXZpY2UgPSBNVExDcmVh
dGVTeXN0ZW1EZWZhdWx0RGV2aWNlKCk7CisgICAgTE9HKFdlYkdQVSwgIkdQVURldmljZTo6R1BV
RGV2aWNlIE1ldGFsIGRldmljZSBpcyAlcCIsIG1fZGV2aWNlLmdldCgpKTsKKworICAgIGlmICgh
bV9kZXZpY2UpIHsKKyAgICAgICAgTE9HKFdlYkdQVSwgIkdQVURldmljZTo6R1BVRGV2aWNlIC0t
IGNvdWxkIG5vdCBjcmVhdGUgdGhlIGRldmljZSIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgbV9sYXllciA9IFtbV2ViR1BV
TGF5ZXIgYWxsb2NdIGluaXRXaXRoR1BVRGV2aWNlOnRoaXNdOworICAgIFttX2xheWVyIHNldE9w
YXF1ZTowXTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW21fbGF5ZXIgc2V0TmFtZTpAIldlYkdQVSBM
YXllciJdOworI2VuZGlmCisKKyAgICBbbV9sYXllciBzZXREZXZpY2U6KGlkPE1UTERldmljZT4p
bV9kZXZpY2UuZ2V0KCldOworICAgIFttX2xheWVyIHNldFBpeGVsRm9ybWF0Ok1UTFBpeGVsRm9y
bWF0QkdSQThVbm9ybV07CisgICAgW21fbGF5ZXIgc2V0RnJhbWVidWZmZXJPbmx5OllFU107Cisg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworfQorCit2b2lkIEdQVURldmljZTo6cmVzaGFw
ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgaWYgKCFtX2RldmljZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fbGF5ZXIpIHsKKyAgICAgICAgW21fbGF5ZXIgc2V0Qm91bmRz
OkNHUmVjdE1ha2UoMCwgMCwgd2lkdGgsIGhlaWdodCldOworICAgICAgICBbbV9sYXllciBzZXRE
cmF3YWJsZVNpemU6Q0dTaXplTWFrZSh3aWR0aCwgaGVpZ2h0KV07CisgICAgfQorCisgICAgLy8g
RklYTUU6IFdlYkdQVSAtIExvdHMgb2YgcmVzaGFwZSBzdHVmZiBzaG91bGQgZ28gaGVyZS4gU2Vl
IEdDM0QuCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHUFVMYXllci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR1BVTGF5ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MDMyNWVjYzA2ZTJhMjM1NDc5NDFlNzgwY2Q4NmQ2MGZkNDhjNGQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR1BV
TGF5ZXIuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+Cisj
aW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgR1BVRGV2aWNlOworfQorCisjaWYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCitAaW50
ZXJmYWNlIFdlYkdQVUxheWVyIDogQ0FNZXRhbExheWVyIHsKKyNlbHNlCitAaW50ZXJmYWNlIFdl
YkdQVUxheWVyIDogQ0FMYXllciB7CisjZW5kaWYKKyAgICBXZWJDb3JlOjpHUFVEZXZpY2UqIF9j
b250ZXh0OworICAgIGZsb2F0IF9kZXZpY2VQaXhlbFJhdGlvOworfQorCitAcHJvcGVydHkgKG5v
bmF0b21pYykgV2ViQ29yZTo6R1BVRGV2aWNlKiBjb250ZXh0OworCistIChpZClpbml0V2l0aEdQ
VURldmljZTooV2ViQ29yZTo6R1BVRGV2aWNlKiljb250ZXh0OworCistIChDR0ltYWdlUmVmKWNv
cHlJbWFnZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6KENHQ29sb3JTcGFjZVJlZiljb2xvclNwYWNl
OworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJHUFVMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkdQVUxheWVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljZGIyMWMyNTExNTViNGJjN2U5MzNhZmQ2
Yjc5NjFlYTdkNTQ3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJHUFVMYXllci5tbQpAQCAtMCwwICsxLDc1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2ltcG9ydCAiV2ViR1BVTGF5ZXIuaCIKKworI2ltcG9ydCAiR1BVRGV2aWNlLmgiCisjaW1w
b3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2ltcG9ydCAiR3JhcGhpY3NMYXllci5oIgorI2lt
cG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0BpbXBsZW1lbnRhdGlvbiBXZWJHUFVMYXllcgorCitA
c3ludGhlc2l6ZSBjb250ZXh0PV9jb250ZXh0OworCistIChpZClpbml0V2l0aEdQVURldmljZToo
R1BVRGV2aWNlKiljb250ZXh0Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBfY29u
dGV4dCA9IGNvbnRleHQ7CisKKyAgICAvLyBGSVhNRTogV2ViR1BVIC0gaGFuZGxlIHJldGluYSBj
b3JyZWN0bHkuCisgICAgX2RldmljZVBpeGVsUmF0aW8gPSAxOworCisjaWYgUExBVEZPUk0oTUFD
KQorICAgIHNlbGYuY29udGVudHNTY2FsZSA9IF9kZXZpY2VQaXhlbFJhdGlvOworI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCisgICAgaWYgKFtzZWxmIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0Q29sb3JzcGFjZTopXSkKKyAgICAgICAgW3NlbGYg
c2V0Q29sb3JzcGFjZTpzUkdCQ29sb3JTcGFjZVJlZigpXTsKKyNlbmRpZgorI2VuZGlmCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKENHSW1hZ2VSZWYpY29weUltYWdlU25hcHNob3RXaXRoQ29s
b3JTcGFjZTooQ0dDb2xvclNwYWNlUmVmKWNvbG9yU3BhY2UKK3sKKyAgICBpZiAoIV9jb250ZXh0
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFVOVVNFRF9QQVJBTShjb2xvclNwYWNl
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworLSAodm9pZClkaXNwbGF5Cit7CisgICAgLy8g
VGhpcyBpcyBhIG5vLW9wLiBXZSBkb24ndCBuZWVkIHRvCisgICAgLy8gY2FsbCBkaXNwbGF5IC0g
aW5zdGVhZCB3ZSBwcmVzZW50CisgICAgLy8gYSBkcmF3YWJsZSBmcm9tIG91ciBjb250ZXh0Lgor
fQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiM2JlMjg0MjEwMWIzYWRhNDFiOTdjZjhhYWVmZmRk
MTczZmJmMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVRGV2aWNlLmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJHUFVEZXZpY2UuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorCisjaWYgRU5BQkxFKFdFQkdQ
VSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8R1BVRGV2aWNlPiBHUFVEZXZpY2U6
OmNyZWF0ZSgpCit7CisgICAgUmVmUHRyPEdQVURldmljZT4gZGV2aWNlID0gYWRvcHRSZWYobmV3
IEdQVURldmljZSgpKTsKKyAgICBMT0coV2ViR1BVLCAiR1BVRGV2aWNlOjpjcmVhdGUoKSBkZXZp
Y2UgaXMgJXAiLCBkZXZpY2UuZ2V0KCkpOworICAgIHJldHVybiBkZXZpY2U7Cit9CisKK0dQVURl
dmljZTo6fkdQVURldmljZSgpCit7CisgICAgTE9HKFdlYkdQVSwgIkdQVURldmljZTo6fkdQVURl
dmljZSgpIik7Cit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKElPU19TSU1V
TEFUT1IpCisKK0dQVURldmljZTo6R1BVRGV2aWNlKCkKK3sKKworfQorCit2b2lkIEdQVURldmlj
ZTo6cmVzaGFwZShpbnQsIGludCkKK3sKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGMxNjQzOWEyYzY4ODgyNjQzOGUyYjk1ZGFmZWQw
M2EzYzFiOTc1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVEZXZpY2UuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCR1BVKQorCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUv
QXJyYXlCdWZmZXJWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworI2lmIFVT
RShDQSkKKyNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXIuaCIKKyNlbmRpZgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCit0eXBlZGVmIHN0cnVjdCBvYmpjX29iamVjdCogaWQ7CitPQkpDX0NMQVNTIENB
TGF5ZXI7CitPQkpDX0NMQVNTIFdlYkdQVUxheWVyOworI2Vsc2UKK2NsYXNzIFdlYkdQVUxheWVy
OwordHlwZWRlZiB2b2lkIFBsYXRmb3JtR1BVRGV2aWNlOworI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgR1BVRGV2aWNlIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVRGV2aWNl
PiB7CitwdWJsaWM6CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEdQVURldmlj
ZT4gY3JlYXRlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgfkdQVURldmljZSgpOworCisgICAgdm9p
ZCByZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBDQUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxDQUxheWVyKj4obV9sYXllci5nZXQoKSk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBpZCBw
bGF0Zm9ybURldmljZSgpIHsgcmV0dXJuIG1fZGV2aWNlLmdldCgpOyB9CisjZW5kaWYKKworICAg
IFdlYkdQVUxheWVyKiBsYXllcigpIHsgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7IH0KKworcHJpdmF0
ZToKKyAgICBHUFVEZXZpY2UoKTsKKworICAgIFJldGFpblB0cjxXZWJHUFVMYXllcj4gbV9sYXll
cjsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8aWQ+IG1fZGV2aWNlOworI2Vu
ZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0NjEyN2YxZjc2NGQzZjc5
NDBhMTBjNmI3N2Y4ODUyMWRiYjE4NzEuLjJmNWEyNDdkZGQzYTM0YTQzNThmMjQ2NTYxZTY1OGMw
ZGMzMzZjOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wMy0wNyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIEdQVURldmljZSBpbXBsZW1lbnRhdGlvbiBhbmQgV2ViR1BV
TGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
OTIxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzA4NzkwNDg+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBmb3IgV2ViQ29yZSdzIEdQVURl
dmljZSBjbGFzcy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9tYWMvR1BVRGV2aWNlLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorCiAyMDE3LTAzLTA3ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW9Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLiBSZW1vdmVkIG15c2VsZiBmcm9tIHRoZSBBY2Nlc3Np
YmlsaXR5IHdhdGNoIGxpc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGQ5NmU3MWY1Mzk2
OTQzZmQ3MGVjZWZlNDM2ZGNiYTE1MjUyMmE0Ni4uYmVkY2EyOGY5YTEwMTYzYjA2MjlkZDAwYWE1
ZDBkN2Q0MTI1OTEyNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzLDYgKzkzLDcgQEAK
IAkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZEMzFEOEFFREJCMDAw
NEJCMzAgLyogVGVzdFdLV2ViVmlldy5tbSAqLzsgfTsKIAkJMkVGRjA2RDcxRDhBRjM0QTAwMDRC
QjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2Vi
Vmlld0NhbmRpZGF0ZVRlc3RzLm1tICovOyB9OwogCQkzMTUxMTgxMDFEQjFBRTQwMDAxNzYzMDQg
LyogRXh0ZW5kZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTUxMTgwRjFEQjFBREQ1MDAxNzYzMDQgLyogRXh0ZW5kZWRDb2xvci5jcHAg
Ki87IH07CisJCTMxNjJBRTlDMUU2RjJGRjUwMDBFNERCQyAvKiBHUFVEZXZpY2UubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYyQUU5QjFFNkYyRkNF
MDAwRTREQkMgLyogR1BVRGV2aWNlLm1tICovOyB9OwogCQkzM0JFNUFGOTEzN0I1QUFFMDA3MDU4
MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCRTVBRjgxMzdCNUFBRTAwNzA1ODEzIC8qIE1v
dXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLzsgfTsKIAkJMzNEQzg5MTIxNDE5NTVGRTAw
NzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0RDODkwRTE0MTk1MzkzMDA3NDdFRjcgLyogc2lt
cGxlLWlmcmFtZS5odG1sICovOyB9OwogCQkzM0RDODkxNDE0MTk1NzlGMDA3NDdFRjcgLyogTG9h
ZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0RDODkxMzE0MTk1NzlGMDA3NDdF
RjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi87
IH07CkBAIC05NDYsNiArOTQ3LDcgQEAKIAkJMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRl
c3RXS1dlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBU
ZXN0V0tXZWJWaWV3Lm1tOyBwYXRoID0gY29jb2EvVGVzdFdLV2ViVmlldy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmll
d0NhbmRpZGF0ZVRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxNTExODBGMURCMUFERDUwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4dGVuZGVkQ29sb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMTYyQUU5QjFFNkYyRkNFMDAwRTREQkMgLyogR1BVRGV2
aWNlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVRGV2aWNl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZD
RTMgLyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTMzQkU1QUY0MTM3QjVBNkMwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNy
YXNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFm
dGVyQ3Jhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzM0JFNUFGODEzN0I1
QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY2MCwyMSArMTY2MiwyMyBAQAogCQkJ
cGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTMxNjJBRTlB
MUU2RjJGOEYwMDBFNERCQyAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTMxNjJBRTlCMUU2RjJGQ0UwMDBFNERCQyAvKiBHUFVEZXZpY2UubW0g
Ki8sCisJCQkpOworCQkJcGF0aCA9IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTQ0MEExRDM2MTRBMDEwMDAwMDhBNjZGMiAvKiBXZWJDb3JlICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk4RTRBODUzNjFFMUQxQUExMDBGNTNC
MEYgLyogR3JpZFBvc2l0aW9uLmNwcCAqLywKLQkJCQlDRDg5RDAzNzFDNEVEQjEzMDAwNDBBMDQg
LyogY29jb2EgKi8sCiAJCQkJN0E5MDlBNkYxRDg3NzQ3NTAwN0UxMEY4IC8qIEFmZmluZVRyYW5z
Zm9ybS5jcHAgKi8sCi0JCQkJMDdDMDQ2QzkxRTQyNTczRTAwNzIwMUU3IC8qIENBUmluZ0J1ZmZl
ci5jcHAgKi8sCi0JCQkJN0E5MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UG9pbnQuY3Bw
ICovLAotCQkJCTdBOTA5QTcxMUQ4Nzc0NzUwMDdFMTBGOCAvKiBGbG9hdFJlY3QuY3BwICovLAot
CQkJCTdBOTA5QTcyMUQ4Nzc0NzUwMDdFMTBGOCAvKiBGbG9hdFNpemUuY3BwICovLAotCQkJCTdB
OTA5QTczMUQ4Nzc0NzUwMDdFMTBGOCAvKiBJbnRQb2ludC5jcHAgKi8sCi0JCQkJN0E5MDlBNzQx
RDg3NzQ3NTAwN0UxMEY4IC8qIEludFJlY3QuY3BwICovLAotCQkJCTdBOTA5QTc1MUQ4Nzc0NzUw
MDdFMTBGOCAvKiBJbnRTaXplLmNwcCAqLywKIAkJCQk5M0E3MjBFNTE4RjFBMEU4MDBBODQ4RTEg
LyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8sCisJCQkJMDdDMDQ2QzkxRTQyNTczRTAwNzIwMUU3
IC8qIENBUmluZ0J1ZmZlci5jcHAgKi8sCisJCQkJQ0Q4OUQwMzcxQzRFREIxMzAwMDQwQTA0IC8q
IGNvY29hICovLAogCQkJCTdDMzk2NTA1MUNERDc0RjkwMDk0REJCOCAvKiBDb2xvci5jcHAgKi8s
CisJCQkJMUM5RUI4NDAxRTM4MERBMTAwNUM2NDQyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5j
cHAgKi8sCiAJCQkJN0NCMTg0QzQxQUEzRjIxMDAwNjZFREZEIC8qIENvbnRlbnRFeHRlbnNpb25z
LmNwcCAqLywKIAkJCQlDRDU0NTFFOTE5RTQxRjlEMDAxNjkzNkYgLyogQ1NTUGFyc2VyLmNwcCAq
LywKIAkJCQkyNjBCQTU3ODFCMUQyRTdCMDA0RkEwN0MgLyogREZBQ29tYmluZXIuY3BwICovLApA
QCAtMTY4Miw4ICsxNjg2LDE3IEBACiAJCQkJMjZGNkUxRUYxQURDNzQ5QjAwREU2OTZCIC8qIERG
QU1pbmltaXplci5jcHAgKi8sCiAJCQkJMzE1MTE4MEYxREIxQURENTAwMTc2MzA0IC8qIEV4dGVu
ZGVkQ29sb3IuY3BwICovLAogCQkJCTQxOTczQjVBMUFGMjI4NkEwMDZDN0IzNiAvKiBGaWxlU3lz
dGVtLmNwcCAqLywKKwkJCQk3QTkwOUE3MDFEODc3NDc1MDA3RTEwRjggLyogRmxvYXRQb2ludC5j
cHAgKi8sCisJCQkJN0E5MDlBNzExRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UmVjdC5jcHAgKi8s
CisJCQkJN0E5MDlBNzIxRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0U2l6ZS5jcHAgKi8sCisJCQkJ
MUNBRDFGODUxRTVDRTdEQTAwQUYyQzJDIC8qIEZvbnRDYWNoZS5jcHAgKi8sCisJCQkJOEU0QTg1
MzYxRTFEMUFBMTAwRjUzQjBGIC8qIEdyaWRQb3NpdGlvbi5jcHAgKi8sCiAJCQkJODNCODhBMzMx
QzgwMDU2RDAwQkIyNDE4IC8qIEhUTUxQYXJzZXJJZGlvbXMuY3BwICovLAorCQkJCTdBOTA5QTcz
MUQ4Nzc0NzUwMDdFMTBGOCAvKiBJbnRQb2ludC5jcHAgKi8sCisJCQkJN0E5MDlBNzQxRDg3NzQ3
NTAwN0UxMEY4IC8qIEludFJlY3QuY3BwICovLAorCQkJCTdBOTA5QTc1MUQ4Nzc0NzUwMDdFMTBG
OCAvKiBJbnRTaXplLmNwcCAqLywKIAkJCQkxNDQ2NDAxMjE2N0E4MzA1MDAwQkQyMTggLyogTGF5
b3V0VW5pdC5jcHAgKi8sCisJCQkJMzE2MkFFOUExRTZGMkY4RjAwMEU0REJDIC8qIG1hYyAqLywK
IAkJCQlDRDIyNUMwNzFDNDVBNjkyMDAxNDA3NjEgLyogUGFyc2VkQ29udGVudFJhbmdlLmNwcCAq
LywKIAkJCQlDRENGQTdBOTFFNDUxMjJGMDBDMjQzM0QgLyogU2FtcGxlTWFwLmNwcCAqLywKIAkJ
CQlDRTA2REY5QTFFMTg1MUYyMDBFNTcwQzkgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovLApAQCAt
MTY5Niw4ICsxNzA5LDYgQEAKIAkJCQk0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogVVJMLmNw
cCAqLywKIAkJCQk1QzZFNjU0MTFENUNFRjg1MDBGNzg2MkUgLyogVVJMUGFyc2VyLmNwcCAqLywK
IAkJCQk5QzY0REMzMTFENzYxOThBMDA0QjU5OEUgLyogWW91VHViZVBsdWdpblJlcGxhY2VtZW50
LmNwcCAqLywKLQkJCQkxQzlFQjg0MDFFMzgwREExMDA1QzY0NDIgLyogQ29tcGxleFRleHRDb250
cm9sbGVyLmNwcCAqLywKLQkJCQkxQ0FEMUY4NTFFNUNFN0RBMDBBRjJDMkMgLyogRm9udENhY2hl
LmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2ViQ29yZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0yNzY4LDYgKzI3NzksNyBAQAogCQkJCTJEQjAyMzJGMUU0RTg3MTgwMDcwNzEy
MyAvKiBJbnRlcmFjdGlvbkRlYWRsb2NrQWZ0ZXJDcmFzaC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RjA3MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYWdlTG9hZEJhc2ljLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RjA4MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYWdlTG9hZERpZENoYW5nZUxv
Y2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxNjJBRTlD
MUU2RjJGRjUwMDBFNERCQyAvKiBHUFVEZXZpY2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NF
N0VDNzFBNDExQTdFMDA0NDdDNEMgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFu
Z2VzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDkxQTQxMUFFNjAwNDQ3QzRDIC8qIFBh
cmVudEZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFENTdBQzIxMURBNzQ2NUIwMEZGMUJE
RSAvKiBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL21hYy9H
UFVEZXZpY2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvbWFjL0dQVURl
dmljZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44OTEzYTk3N2VjZjVmN2ZhMjEzYWU3OTBmYTg1YzY3Nzk3OTYx
ZWVjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L21hYy9HUFVEZXZpY2UubW0KQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0dQVURldmljZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKEdQVSwgQmFzaWMpCit7CisgICAg
YXV0byBkZXZpY2UgPSBHUFVEZXZpY2U6OmNyZWF0ZSgpOworICAgIEVYUEVDVF9OT1RfTlVMTChk
ZXZpY2UtPmxheWVyKCkpOworICAgIEVYUEVDVF9OT1RfTlVMTChkZXZpY2UtPnBsYXRmb3JtTGF5
ZXIoKSk7CisKKyAgICBpZDxNVExEZXZpY2U+IG10bERldmljZSA9IChpZDxNVExEZXZpY2U+KWRl
dmljZS0+cGxhdGZvcm1EZXZpY2UoKTsKKyAgICBFWFBFQ1RfTk9UX05VTEwobXRsRGV2aWNlKTsK
KworICAgIE5TU3RyaW5nICpkZXZpY2VOYW1lID0gbXRsRGV2aWNlLm5hbWU7CisgICAgRVhQRUNU
X0dUKGRldmljZU5hbWUubGVuZ3RoLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPigwKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>
<flag name="review"
          id="325314"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>