<?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>203974</bug_id>
          
          <creation_ts>2019-11-07 12:42:48 -0800</creation_ts>
          <short_desc>WKWebView is missing an equivalent to WebKit 1&apos;s API to set the media style</short_desc>
          <delta_ts>2019-11-18 09:15:01 -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>WebKit2</component>
          <version>Safari 13</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=204297</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ken Case">kc</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1588357</commentid>
    <comment_count>0</comment_count>
    <who name="Ken Case">kc</who>
    <bug_when>2019-11-07 12:42:48 -0800</bug_when>
    <thetext>We&apos;re trying to migrate all of our apps from using WebView to WKWebView, and one of the pieces we&apos;re missing is an equivalent to the old WebKit&apos;s -[WebView setMediaStyle:]. It would be great if that API could be reintroduced!

(We use media styles in the CSS of some pages to render content differently based on whether you&apos;re viewing the page on the web or in an embedded context like our software update window.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588920</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-11-08 17:29:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/49862107&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589619</commentid>
    <comment_count>2</comment_count>
      <attachid>383378</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-11-12 13:48:02 -0800</bug_when>
    <thetext>Created attachment 383378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589626</commentid>
    <comment_count>3</comment_count>
      <attachid>383381</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-11-12 13:57:46 -0800</bug_when>
    <thetext>Created attachment 383381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589647</commentid>
    <comment_count>4</comment_count>
      <attachid>383388</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-11-12 14:56:50 -0800</bug_when>
    <thetext>Created attachment 383388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589653</commentid>
    <comment_count>5</comment_count>
      <attachid>383388</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-11-12 15:12:55 -0800</bug_when>
    <thetext>Comment on attachment 383388
Patch

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        - Expose a read/write property on WKWebView.

I assume this needs to be changed at runtime so it can&apos;t be on the configuration.  Ok.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:325
&gt; +@discussion The value of mediaType will override the normal value of the CSS media property.

I don&apos;t think this description makes it easy to understand how to use this.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:9502
&gt; +    m_overriddenMediaType = mediaType;

WebKitLegacy&apos;s implementation does nothing if we&apos;re setting it to the same value.  Do we want such an optimization here?

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:9503
&gt; +    m_process-&gt;send(Messages::WebPage::SetOverriddenMediaType(mediaType), m_webPageID);

This appears to be the only way to set the override in the web process.  What if we do a cross-domain navigation?  I imagine we will probably want the same media type unless the API has been used to change it.  Please add the string to WebPageCreationParameters and add such a test.  Also one that sets the media type before the first navigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589666</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-11-12 15:40:45 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #5)
&gt; Comment on attachment 383388 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383388&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:11
&gt; &gt; +        - Expose a read/write property on WKWebView.
&gt; 
&gt; I assume this needs to be changed at runtime so it can&apos;t be on the
&gt; configuration.  Ok.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:325
&gt; &gt; +@discussion The value of mediaType will override the normal value of the CSS media property.
&gt; 
&gt; I don&apos;t think this description makes it easy to understand how to use this.

If you are interested in this property, and therefore the related CSS concepts, the above should make sense.

It&apos;s pretty much cribbed directly from WebView.h mediaStyle - Which isn&apos;t to say we shouldn&apos;t improve it if there&apos;s an obvious path towards improving it!

I&apos;m open to suggestions.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:9502
&gt; &gt; +    m_overriddenMediaType = mediaType;
&gt; 
&gt; WebKitLegacy&apos;s implementation does nothing if we&apos;re setting it to the same
&gt; value.  Do we want such an optimization here?

WK1&apos;s implementation is busted in that it doesn&apos;t do the extra necessary work.

WK2 has normal IPC work (which is great to avoid) and the extra necessary work (for style recalc) - Both great to avoid.

&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:9503
&gt; &gt; +    m_process-&gt;send(Messages::WebPage::SetOverriddenMediaType(mediaType), m_webPageID);
&gt; 
&gt; This appears to be the only way to set the override in the web process. 
&gt; What if we do a cross-domain navigation?  I imagine we will probably want
&gt; the same media type unless the API has been used to change it.  Please add
&gt; the string to WebPageCreationParameters and add such a test.  Also one that
&gt; sets the media type before the first navigation.

*DEFINITELY* didn&apos;t account for process swap. On it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589702</commentid>
    <comment_count>7</comment_count>
      <attachid>383407</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-11-12 16:49:10 -0800</bug_when>
    <thetext>Created attachment 383407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590262</commentid>
    <comment_count>8</comment_count>
      <attachid>383407</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-14 10:09:37 -0800</bug_when>
    <thetext>Comment on attachment 383407
Patch

Clearing flags on attachment: 383407

Committed r252459: &lt;https://trac.webkit.org/changeset/252459&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590263</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-14 10:09:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590313</commentid>
    <comment_count>10</comment_count>
      <attachid>383407</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-11-14 13:08:57 -0800</bug_when>
    <thetext>Comment on attachment 383407
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:329
&gt; +@property (nonatomic, null_resettable, copy) NSString *mediaType;

This says &quot;null_resettable&quot;, which means you can set this property to nil, but it will never return nil.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4784
&gt; +    return _page-&gt;overriddenMediaType().isNull() ? nil : (NSString *)_page-&gt;overriddenMediaType();

But this method returns nil when it’s null, not &quot;the normal value&quot;. So I think the property should be &quot;nullable&quot;, not &quot;null_resettable&quot;. And the documentation discussion may need to be rewritten to be slightly clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590533</commentid>
    <comment_count>11</comment_count>
      <attachid>383407</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-11-15 09:53:53 -0800</bug_when>
    <thetext>Comment on attachment 383407
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:329
&gt;&gt; +@property (nonatomic, null_resettable, copy) NSString *mediaType;
&gt; 
&gt; This says &quot;null_resettable&quot;, which means you can set this property to nil, but it will never return nil.

I did more research and this should definitely be &quot;nullable&quot; rather than &quot;null_resettable&quot;. Was working a patch to fix it, but there’s something wrong with my Subversion login so someone else should probably do it.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4784
&gt;&gt; +    return _page-&gt;overriddenMediaType().isNull() ? nil : (NSString *)_page-&gt;overriddenMediaType();
&gt; 
&gt; But this method returns nil when it’s null, not &quot;the normal value&quot;. So I think the property should be &quot;nullable&quot;, not &quot;null_resettable&quot;. And the documentation discussion may need to be rewritten to be slightly clearer.

Thought about it further, and I don’t think the discussion needs to change. Just the &quot;nullable&quot; thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591074</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-11-18 09:15:01 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #11)
&gt; I did more research and this should definitely be &quot;nullable&quot; rather than
&gt; &quot;null_resettable&quot;.

Bug 204297 has my patch for this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383378</attachid>
            <date>2019-11-12 13:48:02 -0800</date>
            <delta_ts>2019-11-12 13:57:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203974-20191112134802.patch</filename>
            <type>text/plain</type>
            <size>16764</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0NjdiMTQwM2U0MGJiYzIy
OWNjY2JhODAyMTdhMzk4ZjUxZjQyMjkuLmRiMDVjMmE0N2QzZGE5MGE3OGRkYzU1YzJiNDYyMmJj
MzkyMzk3NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTktMTEtMTIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1bW1hcnk6IFdLV2ViVmlldyBp
cyBtaXNzaW5nIGFuIGVxdWl2YWxlbnQgdG8gV2ViS2l0IDEncyBBUEkgdG8gc2V0IHRoZSBtZWRp
YSBzdHlsZS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MjUxMjkxPiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzk3NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0Lgor
CisgICAgICAgIFRoaXMgaXMgYmFzaWNhbGx5OgorICAgICAgICAtIEV4cG9zZSBhIHJlYWQvd3Jp
dGUgcHJvcGVydHkgb24gV0tXZWJWaWV3LgorICAgICAgICAtIFBpcGUgdGhlIG5ldyBtZWRpYSB0
eXBlIHRvIHRoZSBXZWJQcm9jZXNzLgorICAgICAgICAtIEZvcmNlIGEgc3R5bGUgcmVjYWxjLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNl
dE1lZGlhVHlwZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1lZGlhVHlwZV0pOgorICAgICAg
ICAKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzZXRPdmVycmlkZGVuTWVkaWFUeXBlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6b3Zl
cnJpZGRlbk1lZGlhVHlwZSBjb25zdCk6CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6b3ZlcnJpZGVNZWRpYVR5cGUgY29uc3QpOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNldE92ZXJyaWRkZW5NZWRpYVR5cGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om92ZXJy
aWRkZW5NZWRpYVR5cGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOgorCiAyMDE5LTExLTEyICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1MjM1MS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAppbmRleCA0NmQz
MjRmZjQ0OTViNmQ5ZmExYzZhYjk0MGYxNTVlYWM1MjI5ODMzLi5kN2U1N2M3ODI1Zjk3M2Q2NTdl
NWZjODEyMzk3NjBkZjhlZTFlZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5oCkBAIC0zMjAsNiArMzIwLDE0IEBAIFRoZSB1bmlmb3JtIHR5cGUg
aWRlbnRpZmllciBrVVRUeXBlV2ViQXJjaGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0ZWQg
cGFzdGViCiAgKi8KICsgKEJPT0wpaGFuZGxlc1VSTFNjaGVtZTooTlNTdHJpbmcgKil1cmxTY2hl
bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKKworLyogQGFi
c3RyYWN0IFRoZSBtZWRpYSB0eXBlIGZvciB0aGUgV0tXZWJWaWV3CitAZGlzY3Vzc2lvbiBUaGUg
dmFsdWUgb2YgbWVkaWFUeXBlIHdpbGwgb3ZlcnJpZGUgdGhlIG5vcm1hbCB2YWx1ZSBvZiB0aGUg
Q1NTIG1lZGlhIHByb3BlcnR5LgorIFNldHRpbmcgdGhlIHZhbHVlIHRvIG5pbCB3aWxsIHJlc3Rv
cmUgdGhlIG5vcm1hbCB2YWx1ZS4KKyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBuaWwuCisqLworQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxfcmVzZXR0YWJsZSwgY29weSkgTlNTdHJpbmcgKm1lZGlh
VHlwZTsKKwogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAvKiBAYWJzdHJhY3QgUmV0dXJucyBhbiBO
U1ByaW50T3BlcmF0aW9uIG9iamVjdCBjb25maWd1cmVkIHRvIHByaW50IHRoZSBjb250ZW50cyBv
ZiB0aGlzIFdLV2ViVmlldwogQHBhcmFtIHByaW50SW5mbyBUaGUgcHJpbnQgaW5mbyBvYmplY3Qg
dXNlZCB0byBjb25maWd1cmUgdGhlIHJlc3VsdGluZyBwcmludCBvcGVyYXRpb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA1MDBkYjVj
NTI4NzFkNTJkZjFkODhhMDY1MmEyZjkzNWUyYjNjNjI1Li5kNmRjNTdiNzFiOTA0ZDExYzBiMTc4
MDdjY2NjODExNDdkZjA3MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ0MzksNiArNDQzOSwxNiBAQCBBTExPV19ERVBSRUNBVEVE
X0lNUExFTUVOVEFUSU9OU19FTkQKICAgICByZXR1cm4gX3BhZ2UtPnBhZ2Vab29tRmFjdG9yKCk7
CiB9CiAKKy0gKHZvaWQpc2V0TWVkaWFUeXBlOihOU1N0cmluZyAqKW1lZGlhU3R5bGUKK3sKKyAg
ICBfcGFnZS0+c2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShtZWRpYVN0eWxlKTsKK30KKworLSAoTlNT
dHJpbmcgKiltZWRpYVR5cGUKK3sKKyAgICByZXR1cm4gX3BhZ2UtPm92ZXJyaWRkZW5NZWRpYVR5
cGUoKS5pc051bGwoKSA/IG5pbCA6IChOU1N0cmluZyAqKV9wYWdlLT5vdmVycmlkZGVuTWVkaWFU
eXBlKCk7Cit9CisKIC0gKEJPT0wpX3VzZVBsYXRmb3JtRmluZFVJCiB7CiAgICAgcmV0dXJuIF91
c2VQbGF0Zm9ybUZpbmRVSTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGZkOWQzNTQ3ZWZjZjE5N2E0NWJlNzI4OTUzNzEwYjQ4MWY4ZDU5YzkuLjlhYWYxYzEy
ZTNjM2U4NDNmNWYzMzlhNGZlNGJiNWU0NDI5ZDU0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtOTQ5Nyw2ICs5NDk3LDEyIEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpjb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXI6CiAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUGFnZTo6Q29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKGl0ZW1JRCwgdG9r
ZW5zKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fd2ViUGFnZUlEKTsKIH0KIAordm9p
ZCBXZWJQYWdlUHJveHk6OnNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRp
YVR5cGUpCit7CisgICAgbV9vdmVycmlkZGVuTWVkaWFUeXBlID0gbWVkaWFUeXBlOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0T3ZlcnJpZGRlbk1lZGlhVHlwZSht
ZWRpYVR5cGUpLCBtX3dlYlBhZ2VJRCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
dW5kZWYgTUVSR0VfV0hFRUxfRVZFTlRTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGM2YzM2ZjM1NDhmMzg1NzE4ZmM4NGFiYzI0MWZlZTA5N2UyM2JiYjkuLmQxN2U1
NGUyNDJkYTg2OTk0Mzk1NmQ4ZmViMDUwNGRhNmU0MjQyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjIxLDYgKzE2MjEsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRy
b2xsZXI6Okl0ZW1JZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvblRva2VuPiYsCiAgICAgICAgIFdURjo6RnVuY3Rp
b248dm9pZCAoV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlv
blJlc3VsdCk+JiYpOwogCisgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVuTWVkaWFUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CisgICAgdm9pZCBzZXRPdmVy
cmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOworCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQ
cm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0yNjE3LDYgKzI2
MjAsOCBAQCBwcml2YXRlOgogICAgIENPTVB0cjxJRDNEMTFEZXZpY2UxPiBtX2RldmljZTsKICNl
bmRpZgogICAgIGJvb2wgbV9pc1F1b3RhSW5jcmVhc2VEZW5pZWQgeyBmYWxzZSB9OworICAgIAor
ICAgIFN0cmluZyBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGQzZjc4Nzk4N2IwZGE3
ZmYzZjJmY2NiNTliZjBiMjQ2MWU5YjliNmQuLmQ2ZGQ3NTY2N2EyOWE4NzYwY2NiYTkxMDBmNWQ4
MTc0ODRhYzMyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTcyMCw3
ICsxNzIwLDExIEBAIE9iamVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmpl
Y3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVybCwgY29uc3QKIAogU3RyaW5nIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBpZiAobV9mcmFtZSkgeworICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBwYWdlLT5vdmVycmlkZGVuTWVkaWFUeXBl
KCk7CisgICAgfQorCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBjNTg4MDQwNDU3NTVmNTlkOTM5
Yzc5NzYxZDY4Y2QzN2Q5OWYwZmQuLmZjN2Q3ODcyYjNhZGQ2YTM3MzgzNmM0MjA1OTA0MDJlNGNj
NjI2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC02ODI1LDYgKzY4MjUsMTUgQEAgdm9pZCBXZWJQYWdlOjp0ZXh0QXV0b1NpemluZ0FkanVz
dG1lbnRUaW1lckZpcmVkKCkKIH0KICNlbmRpZgogCit2b2lkIFdlYlBhZ2U6OnNldE92ZXJyaWRk
ZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCit7CisgICAgaWYgKG1lZGlhVHlw
ZSA9PSBtX292ZXJyaWRkZW5NZWRpYVR5cGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fb3Zl
cnJpZGRlbk1lZGlhVHlwZSA9IG1lZGlhVHlwZTsKKyAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxj
U3R5bGVJbkFsbEZyYW1lcygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVm
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA2MjMwOGRjNjYwMjkzNWNhZjY3NGM2YWNjMWE3NmMyNmRmOTA1MDU3
Li5iOTRkODhhOTM5ZWM2ZmJjMWY0ZDFiNjkzN2IzMTBkZTJkZTQ4MDRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjQwLDYgKzEyNDAsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFp
bkZyYW1lKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgU3RyaW5nJik+JiYpOwogI2VuZGlmCiAKKyAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5N
ZWRpYVR5cGUoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KKyAgICB2
b2lkIHNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgCiBwcml2YXRl
OgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmJik7CiAKQEAgLTE5OTgsNiArMjAwMSw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KFRFWFRfQVVUT1NJWklORykKICAgICBXZWJDb3JlOjpUaW1lciBtX3RleHRBdXRvU2l6aW5nQWRq
dXN0bWVudFRpbWVyOwogI2VuZGlmCisKKyAgICBTdHJpbmcgbV9vdmVycmlkZGVuTWVkaWFUeXBl
OwogfTsKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZGExYzc1NWY1
YjMyODc1YjNhYzE0Zjg3M2MyZjI1NjdjOGQ4ZjcxZi4uZGI4MzlkNDFlN2U5ZTdiZDA0ZjBhY2Zm
ZWQ2MWIxY2EzYTk4YThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01ODEsNCArNTgxLDYgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKIAogICAgIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMoVmVjdG9yPFdlYkNv
cmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlPiBleGNsdXNpb25S
dWxlcykgLT4gKCkgQXN5bmMKICAgICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgVmVjdG9y
PFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Ub2tlbj4g
dG9rZW5zKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9s
bGVyOjpNYW5pcHVsYXRpb25SZXN1bHQgcmVzdWx0KSBBc3luYworICAgIAorICAgIFNldE92ZXJy
aWRkZW5NZWRpYVR5cGUoU3RyaW5nIG1lZGlhVHlwZSkKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2NzY0NzFhYzE1YTFhYzQ3NDBjMjIzMTA3
MzBmN2FiMGViMDlhZDcwLi5jNzY1MjVjZDgxZTcyMzNmMWIwNWZmOTU3MTIwNmEwMTY1YTRiMWQ2
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTktMTEtMTIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgorCisgICAgICAgIFN1bW1hcnk6IFdLV2ViVmlldyBpcyBtaXNzaW5nIGFuIGVxdWl2YWxlbnQg
dG8gV2ViS2l0IDEncyBBUEkgdG8gc2V0IHRoZSBtZWRpYSBzdHlsZS4KKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU2MjUxMjkxPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9NZWRpYVR5
cGUubW06IEFkZGVkLgorICAgICAgICAoVEVTVCk6CisKIDIwMTktMTEtMTIgIERpZWdvIFBpbm8g
R2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgJ3Rlc3QyNjIt
dGVzdCcgc3RlcCB0byBHVEsgYW5kIFdQRSBidWlsZCBib3RzCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGUzMmI4NWU0MmRjMWYxOTI1YjdjZmQ4YTliOTMzZWI3MjFkMWFjZWMuLjc3NWIxYzEy
ZTM0ZjQwMjE3YzQ2ODJkZTFiYmU2YjViYTllMmIyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yODksNiArMjg5LDcgQEAKIAkJNTFCMUVFOTcxQzgwRkFFRjAwNjRGQjk4IC8qIEluZGV4
ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIxRUU5NTFDODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERC
UGVyc2lzdGVuY2UtMi5odG1sICovOyB9OwogCQk1MUJDRUU0RTFDODRGNTNCMDA0MkM4MkUgLyog
SW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUJDRUU0QzFDODRGNTJDMDA0MkM4MkUgLyogSW5k
ZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCAqLzsgfTsKIAkJNTFCQ0VFNEYxQzg0RjUzQjAwNDJD
ODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCQ0VFNEQxQzg0RjUyQzAwNDJDODJF
IC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwgKi87IH07CisJCTUxQkU5RTY2MjM3NjA4
OUYwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUJFOUU2NTIzNzYwODk1MDBCNEUxMTcgLyogTWVkaWFUeXBlLm1t
ICovOyB9OwogCQk1MUM2ODNERTFFQTEzNEU4MDA2NTAxODMgLyogV0tVUkxTY2hlbWVIYW5kbGVy
LTEubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUM2
ODNERDFFQTEzNERCMDA2NTAxODMgLyogV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0gKi87IH07CiAJ
CTUxQzhFMUE1MUYyNkFGNEMwMEJGNzMxQiAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDOEUxQTQxRjI2
QUM1NDAwQkY3MzFCIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gKi87IH07CiAJCTUxQzhF
MUE5MUYyN0Y0OTYwMEJGNzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLnBsaXN0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxQzhFMUE4MUYyN0Y0NzMwMEJGNzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0ICovOyB9OwpAQCAtMTgzMiw2ICsxODMzLDcgQEAK
IAkJNTFCQ0VFNDkxQzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWREQk11bHRpUHJv
Y2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCQ0VFNEMxQzg0RjUyQzAw
NDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0xLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAiSW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxQkNFRTREMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0
aVByb2Nlc3MtMi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIkluZGV4ZWREQk11
bHRpUHJvY2Vzcy0yLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUJFOUU2
NTIzNzYwODk1MDBCNEUxMTcgLyogTWVkaWFUeXBlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTWVkaWFUeXBlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUM2ODNERDFFQTEzNERCMDA2NTAxODMgLyogV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSAiV0tVUkxTY2hlbWVIYW5k
bGVyLTEubW0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUM4RTFBNDFGMjZBQzU0
MDBCRjczMUIgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxQzhFMUE4MUYyN0Y0NzMwMEJGNzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gZmlsZS5icGxpc3Q7IHBhdGggPSBFbXB0eUdyYW5kZmF0aGVyZWRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjkwMiw2ICsyOTA0LDcgQEAKIAkJCQk4QzEwQUY5NjIwNjQ2Nzc3MDAxOEZEOTAgLyogTG9jYWxT
dG9yYWdlUGVyc2lzdGVuY2UubW0gKi8sCiAJCQkJN0E2QTJDNkYxRENDRjg3QjAwQzBEMDg1IC8q
IExvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbSAqLywKIAkJCQkwN0NDN0RGRDIyNjYzMzA4MDBFMzkx
ODEgLyogTWVkaWFCdWZmZXJpbmdQb2xpY3kubW0gKi8sCisJCQkJNTFCRTlFNjUyMzc2MDg5NTAw
QjRFMTE3IC8qIE1lZGlhVHlwZS5tbSAqLywKIAkJCQk1MTY1RkUwMzIwMUVFNjE3MDA5RjdFQzMg
LyogTWVzc2FnZVBvcnRQcm92aWRlcnMubW0gKi8sCiAJCQkJNTFDRDFDNkExQjM4Q0UzNjAwMTQy
Q0E1IC8qIE1vZGFsQWxlcnRzLm1tICovLAogCQkJCTFBQkMzREVEMTg5OUJFNkQwMDRGMDYyNiAv
KiBOYXZpZ2F0aW9uLm1tICovLApAQCAtNDcxNSw2ICs0NzE4LDcgQEAKIAkJCQkwN0NDN0RGRTIy
NjYzMzA5MDBFMzkxODEgLyogTWVkaWFCdWZmZXJpbmdQb2xpY3kubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDREEzMTU5ODFFRDUzNjUxMDA5RjYwRDMgLyogTWVkaWFQbGF5YmFja1NsZWVwQXNzZXJ0
aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDOTQ0MkUxRUYxRkMwODAwNTlDM0M0IC8qIE1l
ZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxQkU5RTY2MjM3
NjA4OUYwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VD
NTFBNDExQTdFMDA0NDdDNEMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2Fk
RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDNjFBNDExQTdFMDA0NDdDNEMg
LyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUMwQkY4OEQxREQ1OTY0RDAwQjAwMzI4IC8qIE1lbW9yeVByZXNzdXJlSGFu
ZGxlci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9NZWRpYVR5cGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL01lZGlhVHlwZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTQwN2ZmYzE4M2Q0ZDE5Mzk4
OTgxMTU1NWQ5ZDM1MTQ2ZDRkMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9NZWRpYVR5cGUubW0KQEAgLTAsMCArMSw4MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZpbmRDb25maWd1cmF0aW9uLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tGaW5kUmVzdWx0Lmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+
CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK05TU3RyaW5nICp0ZXN0UGFnZSA9IEAiPHN0
eWxlPlxuIgorIkBtZWRpYSBzY3JlZW4ge1xuIgorIi5TaG93Rm9yUHJpbnRpbmd7XG4iCisiICAg
IHZpc2liaWxpdHk6IGhpZGRlbjtcbiIKKyJ9XG4iCisiLlNob3dGb3JMYXZhTGFtcHtcbiIKKyIg
ICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuIgorIn1cbiIKKyJ9XG4iCisiQG1lZGlhIHByaW50IHtc
biIKKyIuU2hvd0ZvclNjcmVlbntcbiIKKyIgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuIgorIn1c
biIKKyIuU2hvd0ZvckxhdmFMYW1we1xuIgorIiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4iCisi
fVxuIgorIn1cbiIKKyJAbWVkaWEgbGF2YWxhbXAge1xuIgorIi5TaG93Rm9yU2NyZWVuIHtcbiIK
KyIgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuIgorIn1cbiIKKyIuU2hvd0ZvclByaW50aW5ne1xu
IgorIiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4iCisifVxuIgorIn1cbiIKKyI8L3N0eWxlPlxu
IgorIjxkaXYgY2xhc3M9J1Nob3dGb3JTY3JlZW4nPlNjcmVlbjwvZGl2PlxuIgorIjxkaXYgY2xh
c3M9J1Nob3dGb3JQcmludGluZyc+UHJpbnQ8L2Rpdj5cbiIKKyI8ZGl2IGNsYXNzPSdTaG93Rm9y
TGF2YUxhbXAnPkxhdmFMYW1wPC9kaXY+XG4iOworCitURVNUKFdLV2ViVmlldywgTWVkaWFUeXBl
KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOnRlc3RQYWdlIGJhc2VVUkw6bmlsXTsKKworICAg
IEVYUEVDVF9UUlVFKHdlYlZpZXcuZ2V0KCkubWVkaWFUeXBlID09IG5pbCk7CisgICAgRVhQRUNU
X1RSVUUoW1tbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQu
Ym9keS5pbm5lclRleHQiXSBzdHJpbmdCeVRyaW1taW5nQ2hhcmFjdGVyc0luU2V0OltOU0NoYXJh
Y3RlclNldCB3aGl0ZXNwYWNlQW5kTmV3bGluZUNoYXJhY3RlclNldF1dIGlzRXF1YWxUb1N0cmlu
ZzpAIlNjcmVlbiJdKTsKKyAgICAKKyAgICB3ZWJWaWV3LmdldCgpLm1lZGlhVHlwZSA9IEAic2Ny
ZWVuIjsKKyAgICBFWFBFQ1RfVFJVRShbW1t3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCJdIHN0cmluZ0J5VHJpbW1pbmdDaGFyYWN0
ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IHdoaXRlc3BhY2VBbmROZXdsaW5lQ2hhcmFjdGVyU2V0
XV0gaXNFcXVhbFRvU3RyaW5nOkAiU2NyZWVuIl0pOworCisgICAgd2ViVmlldy5nZXQoKS5tZWRp
YVR5cGUgPSBAInByaW50IjsKKyAgICBFWFBFQ1RfVFJVRShbW1t3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCJdIHN0cmluZ0J5VHJp
bW1pbmdDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IHdoaXRlc3BhY2VBbmROZXdsaW5l
Q2hhcmFjdGVyU2V0XV0gaXNFcXVhbFRvU3RyaW5nOkAiUHJpbnQiXSk7CisKKyAgICB3ZWJWaWV3
LmdldCgpLm1lZGlhVHlwZSA9IEAibGF2YWxhbXAiOworICAgIEVYUEVDVF9UUlVFKFtbW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0
Il0gc3RyaW5nQnlUcmltbWluZ0NoYXJhY3RlcnNJblNldDpbTlNDaGFyYWN0ZXJTZXQgd2hpdGVz
cGFjZUFuZE5ld2xpbmVDaGFyYWN0ZXJTZXRdXSBpc0VxdWFsVG9TdHJpbmc6QCJMYXZhTGFtcCJd
KTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383381</attachid>
            <date>2019-11-12 13:57:46 -0800</date>
            <delta_ts>2019-11-12 14:56:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203974-20191112135745.patch</filename>
            <type>text/plain</type>
            <size>16764</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0NjdiMTQwM2U0MGJiYzIy
OWNjY2JhODAyMTdhMzk4ZjUxZjQyMjkuLjM5YWM4NDY1OTY3MjNkM2E3ZDI3NWNiZWUyYjY1YmIx
YmRlYzE4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTktMTEtMTIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1bW1hcnk6IFdLV2ViVmlldyBp
cyBtaXNzaW5nIGFuIGVxdWl2YWxlbnQgdG8gV2ViS2l0IDEncyBBUEkgdG8gc2V0IHRoZSBtZWRp
YSBzdHlsZS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5ODYyMTA3PiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzk3NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0Lgor
CisgICAgICAgIFRoaXMgaXMgYmFzaWNhbGx5OgorICAgICAgICAtIEV4cG9zZSBhIHJlYWQvd3Jp
dGUgcHJvcGVydHkgb24gV0tXZWJWaWV3LgorICAgICAgICAtIFBpcGUgdGhlIG5ldyBtZWRpYSB0
eXBlIHRvIHRoZSBXZWJQcm9jZXNzLgorICAgICAgICAtIEZvcmNlIGEgc3R5bGUgcmVjYWxjLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNl
dE1lZGlhVHlwZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1lZGlhVHlwZV0pOgorICAgICAg
ICAKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzZXRPdmVycmlkZGVuTWVkaWFUeXBlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6b3Zl
cnJpZGRlbk1lZGlhVHlwZSBjb25zdCk6CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6b3ZlcnJpZGVNZWRpYVR5cGUgY29uc3QpOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNldE92ZXJyaWRkZW5NZWRpYVR5cGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om92ZXJy
aWRkZW5NZWRpYVR5cGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOgorCiAyMDE5LTExLTEyICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1MjM1MS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAppbmRleCA0NmQz
MjRmZjQ0OTViNmQ5ZmExYzZhYjk0MGYxNTVlYWM1MjI5ODMzLi5kN2U1N2M3ODI1Zjk3M2Q2NTdl
NWZjODEyMzk3NjBkZjhlZTFlZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5oCkBAIC0zMjAsNiArMzIwLDE0IEBAIFRoZSB1bmlmb3JtIHR5cGUg
aWRlbnRpZmllciBrVVRUeXBlV2ViQXJjaGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0ZWQg
cGFzdGViCiAgKi8KICsgKEJPT0wpaGFuZGxlc1VSTFNjaGVtZTooTlNTdHJpbmcgKil1cmxTY2hl
bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKKworLyogQGFi
c3RyYWN0IFRoZSBtZWRpYSB0eXBlIGZvciB0aGUgV0tXZWJWaWV3CitAZGlzY3Vzc2lvbiBUaGUg
dmFsdWUgb2YgbWVkaWFUeXBlIHdpbGwgb3ZlcnJpZGUgdGhlIG5vcm1hbCB2YWx1ZSBvZiB0aGUg
Q1NTIG1lZGlhIHByb3BlcnR5LgorIFNldHRpbmcgdGhlIHZhbHVlIHRvIG5pbCB3aWxsIHJlc3Rv
cmUgdGhlIG5vcm1hbCB2YWx1ZS4KKyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBuaWwuCisqLworQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxfcmVzZXR0YWJsZSwgY29weSkgTlNTdHJpbmcgKm1lZGlh
VHlwZTsKKwogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAvKiBAYWJzdHJhY3QgUmV0dXJucyBhbiBO
U1ByaW50T3BlcmF0aW9uIG9iamVjdCBjb25maWd1cmVkIHRvIHByaW50IHRoZSBjb250ZW50cyBv
ZiB0aGlzIFdLV2ViVmlldwogQHBhcmFtIHByaW50SW5mbyBUaGUgcHJpbnQgaW5mbyBvYmplY3Qg
dXNlZCB0byBjb25maWd1cmUgdGhlIHJlc3VsdGluZyBwcmludCBvcGVyYXRpb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA1MDBkYjVj
NTI4NzFkNTJkZjFkODhhMDY1MmEyZjkzNWUyYjNjNjI1Li5kNmRjNTdiNzFiOTA0ZDExYzBiMTc4
MDdjY2NjODExNDdkZjA3MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ0MzksNiArNDQzOSwxNiBAQCBBTExPV19ERVBSRUNBVEVE
X0lNUExFTUVOVEFUSU9OU19FTkQKICAgICByZXR1cm4gX3BhZ2UtPnBhZ2Vab29tRmFjdG9yKCk7
CiB9CiAKKy0gKHZvaWQpc2V0TWVkaWFUeXBlOihOU1N0cmluZyAqKW1lZGlhU3R5bGUKK3sKKyAg
ICBfcGFnZS0+c2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShtZWRpYVN0eWxlKTsKK30KKworLSAoTlNT
dHJpbmcgKiltZWRpYVR5cGUKK3sKKyAgICByZXR1cm4gX3BhZ2UtPm92ZXJyaWRkZW5NZWRpYVR5
cGUoKS5pc051bGwoKSA/IG5pbCA6IChOU1N0cmluZyAqKV9wYWdlLT5vdmVycmlkZGVuTWVkaWFU
eXBlKCk7Cit9CisKIC0gKEJPT0wpX3VzZVBsYXRmb3JtRmluZFVJCiB7CiAgICAgcmV0dXJuIF91
c2VQbGF0Zm9ybUZpbmRVSTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGZkOWQzNTQ3ZWZjZjE5N2E0NWJlNzI4OTUzNzEwYjQ4MWY4ZDU5YzkuLjlhYWYxYzEy
ZTNjM2U4NDNmNWYzMzlhNGZlNGJiNWU0NDI5ZDU0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtOTQ5Nyw2ICs5NDk3LDEyIEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpjb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXI6CiAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUGFnZTo6Q29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKGl0ZW1JRCwgdG9r
ZW5zKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fd2ViUGFnZUlEKTsKIH0KIAordm9p
ZCBXZWJQYWdlUHJveHk6OnNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRp
YVR5cGUpCit7CisgICAgbV9vdmVycmlkZGVuTWVkaWFUeXBlID0gbWVkaWFUeXBlOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0T3ZlcnJpZGRlbk1lZGlhVHlwZSht
ZWRpYVR5cGUpLCBtX3dlYlBhZ2VJRCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
dW5kZWYgTUVSR0VfV0hFRUxfRVZFTlRTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGM2YzM2ZjM1NDhmMzg1NzE4ZmM4NGFiYzI0MWZlZTA5N2UyM2JiYjkuLmQxN2U1
NGUyNDJkYTg2OTk0Mzk1NmQ4ZmViMDUwNGRhNmU0MjQyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjIxLDYgKzE2MjEsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRy
b2xsZXI6Okl0ZW1JZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvblRva2VuPiYsCiAgICAgICAgIFdURjo6RnVuY3Rp
b248dm9pZCAoV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlv
blJlc3VsdCk+JiYpOwogCisgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVuTWVkaWFUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CisgICAgdm9pZCBzZXRPdmVy
cmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOworCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQ
cm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0yNjE3LDYgKzI2
MjAsOCBAQCBwcml2YXRlOgogICAgIENPTVB0cjxJRDNEMTFEZXZpY2UxPiBtX2RldmljZTsKICNl
bmRpZgogICAgIGJvb2wgbV9pc1F1b3RhSW5jcmVhc2VEZW5pZWQgeyBmYWxzZSB9OworICAgIAor
ICAgIFN0cmluZyBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGQzZjc4Nzk4N2IwZGE3
ZmYzZjJmY2NiNTliZjBiMjQ2MWU5YjliNmQuLmQ2ZGQ3NTY2N2EyOWE4NzYwY2NiYTkxMDBmNWQ4
MTc0ODRhYzMyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTcyMCw3
ICsxNzIwLDExIEBAIE9iamVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmpl
Y3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVybCwgY29uc3QKIAogU3RyaW5nIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBpZiAobV9mcmFtZSkgeworICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBwYWdlLT5vdmVycmlkZGVuTWVkaWFUeXBl
KCk7CisgICAgfQorCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBjNTg4MDQwNDU3NTVmNTlkOTM5
Yzc5NzYxZDY4Y2QzN2Q5OWYwZmQuLmZjN2Q3ODcyYjNhZGQ2YTM3MzgzNmM0MjA1OTA0MDJlNGNj
NjI2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC02ODI1LDYgKzY4MjUsMTUgQEAgdm9pZCBXZWJQYWdlOjp0ZXh0QXV0b1NpemluZ0FkanVz
dG1lbnRUaW1lckZpcmVkKCkKIH0KICNlbmRpZgogCit2b2lkIFdlYlBhZ2U6OnNldE92ZXJyaWRk
ZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCit7CisgICAgaWYgKG1lZGlhVHlw
ZSA9PSBtX292ZXJyaWRkZW5NZWRpYVR5cGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fb3Zl
cnJpZGRlbk1lZGlhVHlwZSA9IG1lZGlhVHlwZTsKKyAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxj
U3R5bGVJbkFsbEZyYW1lcygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVm
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA2MjMwOGRjNjYwMjkzNWNhZjY3NGM2YWNjMWE3NmMyNmRmOTA1MDU3
Li5iOTRkODhhOTM5ZWM2ZmJjMWY0ZDFiNjkzN2IzMTBkZTJkZTQ4MDRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjQwLDYgKzEyNDAsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFp
bkZyYW1lKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgU3RyaW5nJik+JiYpOwogI2VuZGlmCiAKKyAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5N
ZWRpYVR5cGUoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KKyAgICB2
b2lkIHNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgCiBwcml2YXRl
OgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmJik7CiAKQEAgLTE5OTgsNiArMjAwMSw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KFRFWFRfQVVUT1NJWklORykKICAgICBXZWJDb3JlOjpUaW1lciBtX3RleHRBdXRvU2l6aW5nQWRq
dXN0bWVudFRpbWVyOwogI2VuZGlmCisKKyAgICBTdHJpbmcgbV9vdmVycmlkZGVuTWVkaWFUeXBl
OwogfTsKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZGExYzc1NWY1
YjMyODc1YjNhYzE0Zjg3M2MyZjI1NjdjOGQ4ZjcxZi4uZGI4MzlkNDFlN2U5ZTdiZDA0ZjBhY2Zm
ZWQ2MWIxY2EzYTk4YThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01ODEsNCArNTgxLDYgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKIAogICAgIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMoVmVjdG9yPFdlYkNv
cmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlPiBleGNsdXNpb25S
dWxlcykgLT4gKCkgQXN5bmMKICAgICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgVmVjdG9y
PFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Ub2tlbj4g
dG9rZW5zKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9s
bGVyOjpNYW5pcHVsYXRpb25SZXN1bHQgcmVzdWx0KSBBc3luYworICAgIAorICAgIFNldE92ZXJy
aWRkZW5NZWRpYVR5cGUoU3RyaW5nIG1lZGlhVHlwZSkKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2NzY0NzFhYzE1YTFhYzQ3NDBjMjIzMTA3
MzBmN2FiMGViMDlhZDcwLi5lMjM3YzJjMzI1OTJhZDUzOTFhOGM0ZjM0NzQ0ZTdkZjM5OGZjNTEw
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTktMTEtMTIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgorCisgICAgICAgIFN1bW1hcnk6IFdLV2ViVmlldyBpcyBtaXNzaW5nIGFuIGVxdWl2YWxlbnQg
dG8gV2ViS2l0IDEncyBBUEkgdG8gc2V0IHRoZSBtZWRpYSBzdHlsZS4KKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQ5ODYyMTA3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9NZWRpYVR5
cGUubW06IEFkZGVkLgorICAgICAgICAoVEVTVCk6CisKIDIwMTktMTEtMTIgIERpZWdvIFBpbm8g
R2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgJ3Rlc3QyNjIt
dGVzdCcgc3RlcCB0byBHVEsgYW5kIFdQRSBidWlsZCBib3RzCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGUzMmI4NWU0MmRjMWYxOTI1YjdjZmQ4YTliOTMzZWI3MjFkMWFjZWMuLjc3NWIxYzEy
ZTM0ZjQwMjE3YzQ2ODJkZTFiYmU2YjViYTllMmIyY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yODksNiArMjg5LDcgQEAKIAkJNTFCMUVFOTcxQzgwRkFFRjAwNjRGQjk4IC8qIEluZGV4
ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIxRUU5NTFDODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERC
UGVyc2lzdGVuY2UtMi5odG1sICovOyB9OwogCQk1MUJDRUU0RTFDODRGNTNCMDA0MkM4MkUgLyog
SW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUJDRUU0QzFDODRGNTJDMDA0MkM4MkUgLyogSW5k
ZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCAqLzsgfTsKIAkJNTFCQ0VFNEYxQzg0RjUzQjAwNDJD
ODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCQ0VFNEQxQzg0RjUyQzAwNDJDODJF
IC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwgKi87IH07CisJCTUxQkU5RTY2MjM3NjA4
OUYwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUJFOUU2NTIzNzYwODk1MDBCNEUxMTcgLyogTWVkaWFUeXBlLm1t
ICovOyB9OwogCQk1MUM2ODNERTFFQTEzNEU4MDA2NTAxODMgLyogV0tVUkxTY2hlbWVIYW5kbGVy
LTEubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUM2
ODNERDFFQTEzNERCMDA2NTAxODMgLyogV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0gKi87IH07CiAJ
CTUxQzhFMUE1MUYyNkFGNEMwMEJGNzMxQiAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDOEUxQTQxRjI2
QUM1NDAwQkY3MzFCIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gKi87IH07CiAJCTUxQzhF
MUE5MUYyN0Y0OTYwMEJGNzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLnBsaXN0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxQzhFMUE4MUYyN0Y0NzMwMEJGNzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0ICovOyB9OwpAQCAtMTgzMiw2ICsxODMzLDcgQEAK
IAkJNTFCQ0VFNDkxQzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWREQk11bHRpUHJv
Y2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCQ0VFNEMxQzg0RjUyQzAw
NDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0xLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAiSW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxQkNFRTREMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0
aVByb2Nlc3MtMi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIkluZGV4ZWREQk11
bHRpUHJvY2Vzcy0yLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUJFOUU2
NTIzNzYwODk1MDBCNEUxMTcgLyogTWVkaWFUeXBlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTWVkaWFUeXBlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUM2ODNERDFFQTEzNERCMDA2NTAxODMgLyogV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSAiV0tVUkxTY2hlbWVIYW5k
bGVyLTEubW0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUM4RTFBNDFGMjZBQzU0
MDBCRjczMUIgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxQzhFMUE4MUYyN0Y0NzMwMEJGNzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gZmlsZS5icGxpc3Q7IHBhdGggPSBFbXB0eUdyYW5kZmF0aGVyZWRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjkwMiw2ICsyOTA0LDcgQEAKIAkJCQk4QzEwQUY5NjIwNjQ2Nzc3MDAxOEZEOTAgLyogTG9jYWxT
dG9yYWdlUGVyc2lzdGVuY2UubW0gKi8sCiAJCQkJN0E2QTJDNkYxRENDRjg3QjAwQzBEMDg1IC8q
IExvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbSAqLywKIAkJCQkwN0NDN0RGRDIyNjYzMzA4MDBFMzkx
ODEgLyogTWVkaWFCdWZmZXJpbmdQb2xpY3kubW0gKi8sCisJCQkJNTFCRTlFNjUyMzc2MDg5NTAw
QjRFMTE3IC8qIE1lZGlhVHlwZS5tbSAqLywKIAkJCQk1MTY1RkUwMzIwMUVFNjE3MDA5RjdFQzMg
LyogTWVzc2FnZVBvcnRQcm92aWRlcnMubW0gKi8sCiAJCQkJNTFDRDFDNkExQjM4Q0UzNjAwMTQy
Q0E1IC8qIE1vZGFsQWxlcnRzLm1tICovLAogCQkJCTFBQkMzREVEMTg5OUJFNkQwMDRGMDYyNiAv
KiBOYXZpZ2F0aW9uLm1tICovLApAQCAtNDcxNSw2ICs0NzE4LDcgQEAKIAkJCQkwN0NDN0RGRTIy
NjYzMzA5MDBFMzkxODEgLyogTWVkaWFCdWZmZXJpbmdQb2xpY3kubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDREEzMTU5ODFFRDUzNjUxMDA5RjYwRDMgLyogTWVkaWFQbGF5YmFja1NsZWVwQXNzZXJ0
aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDOTQ0MkUxRUYxRkMwODAwNTlDM0M0IC8qIE1l
ZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxQkU5RTY2MjM3
NjA4OUYwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VD
NTFBNDExQTdFMDA0NDdDNEMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2Fk
RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDNjFBNDExQTdFMDA0NDdDNEMg
LyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUMwQkY4OEQxREQ1OTY0RDAwQjAwMzI4IC8qIE1lbW9yeVByZXNzdXJlSGFu
ZGxlci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9NZWRpYVR5cGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL01lZGlhVHlwZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTQwN2ZmYzE4M2Q0ZDE5Mzk4
OTgxMTU1NWQ5ZDM1MTQ2ZDRkMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9NZWRpYVR5cGUubW0KQEAgLTAsMCArMSw4MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZpbmRDb25maWd1cmF0aW9uLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tGaW5kUmVzdWx0Lmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+
CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK05TU3RyaW5nICp0ZXN0UGFnZSA9IEAiPHN0
eWxlPlxuIgorIkBtZWRpYSBzY3JlZW4ge1xuIgorIi5TaG93Rm9yUHJpbnRpbmd7XG4iCisiICAg
IHZpc2liaWxpdHk6IGhpZGRlbjtcbiIKKyJ9XG4iCisiLlNob3dGb3JMYXZhTGFtcHtcbiIKKyIg
ICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuIgorIn1cbiIKKyJ9XG4iCisiQG1lZGlhIHByaW50IHtc
biIKKyIuU2hvd0ZvclNjcmVlbntcbiIKKyIgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuIgorIn1c
biIKKyIuU2hvd0ZvckxhdmFMYW1we1xuIgorIiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4iCisi
fVxuIgorIn1cbiIKKyJAbWVkaWEgbGF2YWxhbXAge1xuIgorIi5TaG93Rm9yU2NyZWVuIHtcbiIK
KyIgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuIgorIn1cbiIKKyIuU2hvd0ZvclByaW50aW5ne1xu
IgorIiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4iCisifVxuIgorIn1cbiIKKyI8L3N0eWxlPlxu
IgorIjxkaXYgY2xhc3M9J1Nob3dGb3JTY3JlZW4nPlNjcmVlbjwvZGl2PlxuIgorIjxkaXYgY2xh
c3M9J1Nob3dGb3JQcmludGluZyc+UHJpbnQ8L2Rpdj5cbiIKKyI8ZGl2IGNsYXNzPSdTaG93Rm9y
TGF2YUxhbXAnPkxhdmFMYW1wPC9kaXY+XG4iOworCitURVNUKFdLV2ViVmlldywgTWVkaWFUeXBl
KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOnRlc3RQYWdlIGJhc2VVUkw6bmlsXTsKKworICAg
IEVYUEVDVF9UUlVFKHdlYlZpZXcuZ2V0KCkubWVkaWFUeXBlID09IG5pbCk7CisgICAgRVhQRUNU
X1RSVUUoW1tbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQu
Ym9keS5pbm5lclRleHQiXSBzdHJpbmdCeVRyaW1taW5nQ2hhcmFjdGVyc0luU2V0OltOU0NoYXJh
Y3RlclNldCB3aGl0ZXNwYWNlQW5kTmV3bGluZUNoYXJhY3RlclNldF1dIGlzRXF1YWxUb1N0cmlu
ZzpAIlNjcmVlbiJdKTsKKyAgICAKKyAgICB3ZWJWaWV3LmdldCgpLm1lZGlhVHlwZSA9IEAic2Ny
ZWVuIjsKKyAgICBFWFBFQ1RfVFJVRShbW1t3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCJdIHN0cmluZ0J5VHJpbW1pbmdDaGFyYWN0
ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IHdoaXRlc3BhY2VBbmROZXdsaW5lQ2hhcmFjdGVyU2V0
XV0gaXNFcXVhbFRvU3RyaW5nOkAiU2NyZWVuIl0pOworCisgICAgd2ViVmlldy5nZXQoKS5tZWRp
YVR5cGUgPSBAInByaW50IjsKKyAgICBFWFBFQ1RfVFJVRShbW1t3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCJdIHN0cmluZ0J5VHJp
bW1pbmdDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IHdoaXRlc3BhY2VBbmROZXdsaW5l
Q2hhcmFjdGVyU2V0XV0gaXNFcXVhbFRvU3RyaW5nOkAiUHJpbnQiXSk7CisKKyAgICB3ZWJWaWV3
LmdldCgpLm1lZGlhVHlwZSA9IEAibGF2YWxhbXAiOworICAgIEVYUEVDVF9UUlVFKFtbW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0
Il0gc3RyaW5nQnlUcmltbWluZ0NoYXJhY3RlcnNJblNldDpbTlNDaGFyYWN0ZXJTZXQgd2hpdGVz
cGFjZUFuZE5ld2xpbmVDaGFyYWN0ZXJTZXRdXSBpc0VxdWFsVG9TdHJpbmc6QCJMYXZhTGFtcCJd
KTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383388</attachid>
            <date>2019-11-12 14:56:50 -0800</date>
            <delta_ts>2019-11-12 16:49:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203974-20191112145649.patch</filename>
            <type>text/plain</type>
            <size>16760</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0NjdiMTQwM2U0MGJiYzIy
OWNjY2JhODAyMTdhMzk4ZjUxZjQyMjkuLjM5YWM4NDY1OTY3MjNkM2E3ZDI3NWNiZWUyYjY1YmIx
YmRlYzE4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTktMTEtMTIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1bW1hcnk6IFdLV2ViVmlldyBp
cyBtaXNzaW5nIGFuIGVxdWl2YWxlbnQgdG8gV2ViS2l0IDEncyBBUEkgdG8gc2V0IHRoZSBtZWRp
YSBzdHlsZS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5ODYyMTA3PiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzk3NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0Lgor
CisgICAgICAgIFRoaXMgaXMgYmFzaWNhbGx5OgorICAgICAgICAtIEV4cG9zZSBhIHJlYWQvd3Jp
dGUgcHJvcGVydHkgb24gV0tXZWJWaWV3LgorICAgICAgICAtIFBpcGUgdGhlIG5ldyBtZWRpYSB0
eXBlIHRvIHRoZSBXZWJQcm9jZXNzLgorICAgICAgICAtIEZvcmNlIGEgc3R5bGUgcmVjYWxjLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNl
dE1lZGlhVHlwZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1lZGlhVHlwZV0pOgorICAgICAg
ICAKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzZXRPdmVycmlkZGVuTWVkaWFUeXBlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6b3Zl
cnJpZGRlbk1lZGlhVHlwZSBjb25zdCk6CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6b3ZlcnJpZGVNZWRpYVR5cGUgY29uc3QpOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNldE92ZXJyaWRkZW5NZWRpYVR5cGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om92ZXJy
aWRkZW5NZWRpYVR5cGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOgorCiAyMDE5LTExLTEyICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1MjM1MS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAppbmRleCA0NmQz
MjRmZjQ0OTViNmQ5ZmExYzZhYjk0MGYxNTVlYWM1MjI5ODMzLi5kN2U1N2M3ODI1Zjk3M2Q2NTdl
NWZjODEyMzk3NjBkZjhlZTFlZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5oCkBAIC0zMjAsNiArMzIwLDE0IEBAIFRoZSB1bmlmb3JtIHR5cGUg
aWRlbnRpZmllciBrVVRUeXBlV2ViQXJjaGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0ZWQg
cGFzdGViCiAgKi8KICsgKEJPT0wpaGFuZGxlc1VSTFNjaGVtZTooTlNTdHJpbmcgKil1cmxTY2hl
bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKKworLyogQGFi
c3RyYWN0IFRoZSBtZWRpYSB0eXBlIGZvciB0aGUgV0tXZWJWaWV3CitAZGlzY3Vzc2lvbiBUaGUg
dmFsdWUgb2YgbWVkaWFUeXBlIHdpbGwgb3ZlcnJpZGUgdGhlIG5vcm1hbCB2YWx1ZSBvZiB0aGUg
Q1NTIG1lZGlhIHByb3BlcnR5LgorIFNldHRpbmcgdGhlIHZhbHVlIHRvIG5pbCB3aWxsIHJlc3Rv
cmUgdGhlIG5vcm1hbCB2YWx1ZS4KKyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBuaWwuCisqLworQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxfcmVzZXR0YWJsZSwgY29weSkgTlNTdHJpbmcgKm1lZGlh
VHlwZTsKKwogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAvKiBAYWJzdHJhY3QgUmV0dXJucyBhbiBO
U1ByaW50T3BlcmF0aW9uIG9iamVjdCBjb25maWd1cmVkIHRvIHByaW50IHRoZSBjb250ZW50cyBv
ZiB0aGlzIFdLV2ViVmlldwogQHBhcmFtIHByaW50SW5mbyBUaGUgcHJpbnQgaW5mbyBvYmplY3Qg
dXNlZCB0byBjb25maWd1cmUgdGhlIHJlc3VsdGluZyBwcmludCBvcGVyYXRpb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA1MDBkYjVj
NTI4NzFkNTJkZjFkODhhMDY1MmEyZjkzNWUyYjNjNjI1Li4yMDg5NDI0NjQ5NWIwODVhZGJlOWM4
MGJkMjBiYTg2NWEzZjJjMzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ3NzQsNiArNDc3NCwxNiBAQCBpbmxpbmUgV2ViS2l0OjpG
aW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25zKFdLRmluZENvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRp
b24pCiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpc2V0TWVkaWFUeXBlOihOU1N0cmluZyAqKW1lZGlh
U3R5bGUKK3sKKyAgICBfcGFnZS0+c2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShtZWRpYVN0eWxlKTsK
K30KKworLSAoTlNTdHJpbmcgKiltZWRpYVR5cGUKK3sKKyAgICByZXR1cm4gX3BhZ2UtPm92ZXJy
aWRkZW5NZWRpYVR5cGUoKS5pc051bGwoKSA/IG5pbCA6IChOU1N0cmluZyAqKV9wYWdlLT5vdmVy
cmlkZGVuTWVkaWFUeXBlKCk7Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLV2ViVmll
dyAoV0tQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggZmQ5ZDM1NDdlZmNmMTk3YTQ1YmU3Mjg5NTM3MTBiNDgxZjhkNTljOS4uOWFhZjFjMTJlM2Mz
ZTg0M2Y1ZjMzOWE0ZmU0YmI1ZTQ0MjlkNTQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC05NDk3LDYgKzk0OTcsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbihXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcjoKICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJQYWdlOjpDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oaXRlbUlELCB0b2tlbnMp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbV93ZWJQYWdlSUQpOwogfQogCit2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlw
ZSkKK3sKKyAgICBtX292ZXJyaWRkZW5NZWRpYVR5cGUgPSBtZWRpYVR5cGU7CisgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRPdmVycmlkZGVuTWVkaWFUeXBlKG1lZGlh
VHlwZSksIG1fd2ViUGFnZUlEKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRl
ZiBNRVJHRV9XSEVFTF9FVkVOVFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggYzZjMzZmMzU0OGYzODU3MThmYzg0YWJjMjQxZmVlMDk3ZTIzYmJiOS4uZDE3ZTU0ZTI0
MmRhODY5OTQzOTU2ZDhmZWIwNTA0ZGE2ZTQyNDJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTE2MjEsNiArMTYyMSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNv
bXBsZXRlVGV4dE1hbmlwdWxhdGlvbihXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxl
cjo6SXRlbUlkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9rZW4+JiwKICAgICAgICAgV1RGOjpGdW5jdGlvbjx2
b2lkIChXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uUmVz
dWx0KT4mJik7CiAKKyAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUoKSBjb25z
dCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KKyAgICB2b2lkIHNldE92ZXJyaWRk
ZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5
KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlv
bj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTI2MTcsNiArMjYyMCw4
IEBAIHByaXZhdGU6CiAgICAgQ09NUHRyPElEM0QxMURldmljZTE+IG1fZGV2aWNlOwogI2VuZGlm
CiAgICAgYm9vbCBtX2lzUXVvdGFJbmNyZWFzZURlbmllZCB7IGZhbHNlIH07CisgICAgCisgICAg
U3RyaW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZDNmNzg3OTg3YjBkYTdmZjNm
MmZjY2I1OWJmMGIyNDYxZTliOWI2ZC4uZDZkZDc1NjY3YTI5YTg3NjBjY2JhOTEwMGY1ZDgxNzQ4
NGFjMzI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNzIwLDcgKzE3
MjAsMTEgQEAgT2JqZWN0Q29udGVudFR5cGUgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENv
bnRlbnRUeXBlKGNvbnN0IFVSTCYgdXJsLCBjb25zdAogCiBTdHJpbmcgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6Om92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIGlmIChtX2ZyYW1lKSB7CisgICAgICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpKQorICAgICAgICAgICAgcmV0dXJuIHBhZ2UtPm92ZXJyaWRkZW5NZWRpYVR5cGUoKTsK
KyAgICB9CisKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGM1ODgwNDA0NTc1NWY1OWQ5MzljNzk3
NjFkNjhjZDM3ZDk5ZjBmZC4uZmM3ZDc4NzJiM2FkZDZhMzczODM2YzQyMDU5MDQwMmU0Y2M2MjZl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTY4MjUsNiArNjgyNSwxNSBAQCB2b2lkIFdlYlBhZ2U6OnRleHRBdXRvU2l6aW5nQWRqdXN0bWVu
dFRpbWVyRmlyZWQoKQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUGFnZTo6c2V0T3ZlcnJpZGRlbk1l
ZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKK3sKKyAgICBpZiAobWVkaWFUeXBlID09
IG1fb3ZlcnJpZGRlbk1lZGlhVHlwZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vdmVycmlk
ZGVuTWVkaWFUeXBlID0gbWVkaWFUeXBlOworICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHls
ZUluQWxsRnJhbWVzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IDYyMzA4ZGM2NjAyOTM1Y2FmNjc0YzZhY2MxYTc2YzI2ZGY5MDUwNTcuLmI5
NGQ4OGE5MzllYzZmYmMxZjRkMWI2OTM3YjMxMGRlMmRlNDgwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEyNDAsNiArMTI0MCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJh
bWUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBT
dHJpbmcmKT4mJik7CiAjZW5kaWYKIAorICAgIGNvbnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlh
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsgfQorICAgIHZvaWQg
c2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICAKIHByaXZhdGU6CiAg
ICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYmKTsKIApAQCAtMTk5OCw2ICsyMDAxLDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVEVY
VF9BVVRPU0laSU5HKQogICAgIFdlYkNvcmU6OlRpbWVyIG1fdGV4dEF1dG9TaXppbmdBZGp1c3Rt
ZW50VGltZXI7CiAjZW5kaWYKKworICAgIFN0cmluZyBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CiB9
OwogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkYTFjNzU1ZjViMzI4
NzViM2FjMTRmODczYzJmMjU2N2M4ZDhmNzFmLi5kYjgzOWQ0MWU3ZTllN2JkMDRmMGFjZmZlZDYx
YjFjYTNhOThhOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTU4MSw0ICs1ODEsNiBAQCBHZW5lcmF0ZVN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZQogCiAgICAgU3RhcnRUZXh0TWFuaXB1bGF0aW9ucyhWZWN0b3I8V2ViQ29yZTo6
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OkV4Y2x1c2lvblJ1bGU+IGV4Y2x1c2lvblJ1bGVz
KSAtPiAoKSBBc3luYwogICAgIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbihXZWJDb3JlOjpUZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6SXRlbUlkZW50aWZpZXIgaXRlbUlELCBWZWN0b3I8V2Vi
Q29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvblRva2VuPiB0b2tl
bnMpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6
Ok1hbmlwdWxhdGlvblJlc3VsdCByZXN1bHQpIEFzeW5jCisgICAgCisgICAgU2V0T3ZlcnJpZGRl
bk1lZGlhVHlwZShTdHJpbmcgbWVkaWFUeXBlKQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY3NjQ3MWFjMTVhMWFjNDc0MGMyMjMxMDczMGY3
YWIwZWIwOWFkNzAuLmUyMzdjMmMzMjU5MmFkNTM5MWE4YzRmMzQ3NDRlN2RmMzk4ZmM1MTAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxOS0xMS0xMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgU3VtbWFyeTogV0tXZWJWaWV3IGlzIG1pc3NpbmcgYW4gZXF1aXZhbGVudCB0byBX
ZWJLaXQgMSdzIEFQSSB0byBzZXQgdGhlIG1lZGlhIHN0eWxlLgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDk4NjIxMDc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzOTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01lZGlhVHlwZS5t
bTogQWRkZWQuCisgICAgICAgIChURVNUKToKKwogMjAxOS0xMS0xMiAgRGllZ28gUGlubyBHYXJj
aWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCAndGVzdDI2Mi10ZXN0
JyBzdGVwIHRvIEdUSyBhbmQgV1BFIGJ1aWxkIGJvdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZTMyYjg1ZTQyZGMxZjE5MjViN2NmZDhhOWI5MzNlYjcyMWQxYWNlYy4uNzc1YjFjMTJlMzRm
NDAyMTdjNDY4MmRlMWJiZTZiNWJhOWUyYjJjZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI4OSw2ICsyODksNyBAQAogCQk1MUIxRUU5NzFDODBGQUVGMDA2NEZCOTggLyogSW5kZXhlZERC
UGVyc2lzdGVuY2UtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQjFFRTk1MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJz
aXN0ZW5jZS0yLmh0bWwgKi87IH07CiAJCTUxQkNFRTRFMUM4NEY1M0IwMDQyQzgyRSAvKiBJbmRl
eGVkREJNdWx0aVByb2Nlc3MtMS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQkNFRTRDMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVk
REJNdWx0aVByb2Nlc3MtMS5odG1sICovOyB9OwogCQk1MUJDRUU0RjFDODRGNTNCMDA0MkM4MkUg
LyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUJDRUU0RDFDODRGNTJDMDA0MkM4MkUgLyog
SW5kZXhlZERCTXVsdGlQcm9jZXNzLTIuaHRtbCAqLzsgfTsKKwkJNTFCRTlFNjYyMzc2MDg5RjAw
QjRFMTE3IC8qIE1lZGlhVHlwZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxQkU5RTY1MjM3NjA4OTUwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gKi87
IH07CiAJCTUxQzY4M0RFMUVBMTM0RTgwMDY1MDE4MyAvKiBXS1VSTFNjaGVtZUhhbmRsZXItMS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzY4M0RE
MUVBMTM0REIwMDY1MDE4MyAvKiBXS1VSTFNjaGVtZUhhbmRsZXItMS5tbSAqLzsgfTsKIAkJNTFD
OEUxQTUxRjI2QUY0QzAwQkY3MzFCIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUM4RTFBNDFGMjZBQzU0
MDBCRjczMUIgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSAqLzsgfTsKIAkJNTFDOEUxQTkx
RjI3RjQ5NjAwQkY3MzFCIC8qIEVtcHR5R3JhbmRmYXRoZXJlZFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MucGxpc3QgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFDOEUxQTgxRjI3RjQ3MzAwQkY3MzFCIC8qIEVtcHR5R3JhbmRmYXRoZXJlZFJlc291
cmNlTG9hZFN0YXRpc3RpY3MucGxpc3QgKi87IH07CkBAIC0xODMyLDYgKzE4MzMsNyBAQAogCQk1
MUJDRUU0OTFDODRGNEFGMDA0MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5kZXhlZERCTXVsdGlQcm9jZXNz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUJDRUU0QzFDODRGNTJDMDA0MkM4
MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJJbmRleGVkREJNdWx0aVByb2Nlc3MtMS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFCQ0VFNEQxQzg0RjUyQzAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJv
Y2Vzcy0yLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5kZXhlZERCTXVsdGlQ
cm9jZXNzLTIuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQkU5RTY1MjM3
NjA4OTUwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBNZWRpYVR5cGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxQzY4M0REMUVBMTM0REIwMDY1MDE4MyAvKiBXS1VSTFNjaGVtZUhhbmRsZXItMS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9ICJXS1VSTFNjaGVtZUhhbmRsZXIt
MS5tbSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQzhFMUE0MUYyNkFDNTQwMEJG
NzMxQiAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTFDOEUxQTgxRjI3RjQ3MzAwQkY3MzFCIC8qIEVtcHR5R3JhbmRmYXRoZXJlZFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmaWxlLmJwbGlzdDsgcGF0aCA9IEVtcHR5R3JhbmRmYXRoZXJlZFJlc291cmNl
TG9hZFN0YXRpc3RpY3MucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTAy
LDYgKzI5MDQsNyBAQAogCQkJCThDMTBBRjk2MjA2NDY3NzcwMDE4RkQ5MCAvKiBMb2NhbFN0b3Jh
Z2VQZXJzaXN0ZW5jZS5tbSAqLywKIAkJCQk3QTZBMkM2RjFEQ0NGODdCMDBDMEQwODUgLyogTG9j
YWxTdG9yYWdlUXVpcmtUZXN0Lm1tICovLAogCQkJCTA3Q0M3REZEMjI2NjMzMDgwMEUzOTE4MSAv
KiBNZWRpYUJ1ZmZlcmluZ1BvbGljeS5tbSAqLywKKwkJCQk1MUJFOUU2NTIzNzYwODk1MDBCNEUx
MTcgLyogTWVkaWFUeXBlLm1tICovLAogCQkJCTUxNjVGRTAzMjAxRUU2MTcwMDlGN0VDMyAvKiBN
ZXNzYWdlUG9ydFByb3ZpZGVycy5tbSAqLywKIAkJCQk1MUNEMUM2QTFCMzhDRTM2MDAxNDJDQTUg
LyogTW9kYWxBbGVydHMubW0gKi8sCiAJCQkJMUFCQzNERUQxODk5QkU2RDAwNEYwNjI2IC8qIE5h
dmlnYXRpb24ubW0gKi8sCkBAIC00NzE1LDYgKzQ3MTgsNyBAQAogCQkJCTA3Q0M3REZFMjI2NjMz
MDkwMEUzOTE4MSAvKiBNZWRpYUJ1ZmZlcmluZ1BvbGljeS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUNEQTMxNTk4MUVENTM2NTEwMDlGNjBEMyAvKiBNZWRpYVBsYXliYWNrU2xlZXBBc3NlcnRpb24u
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDREM5NDQyRTFFRjFGQzA4MDA1OUMzQzQgLyogTWVkaWFT
dHJlYW1UcmFja0RldGFjaGVkLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTFCRTlFNjYyMzc2MDg5
RjAwQjRFMTE3IC8qIE1lZGlhVHlwZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUM1MUE0
MTFBN0UwMDQ0N0M0QyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxl
Z2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUM2MUE0MTFBN0UwMDQ0N0M0QyAvKiBN
ZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1QzBCRjg4RDFERDU5NjREMDBCMDAzMjggLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVy
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL01lZGlhVHlwZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvTWVkaWFUeXBlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxNDA3ZmZjMTgzZDRkMTkzOTg5ODEx
NTU1ZDlkMzUxNDZkNGQyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL01lZGlhVHlwZS5tbQpAQCAtMCwwICsxLDgyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5o
IgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRmluZENvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQg
PFdlYktpdC9XS0ZpbmRSZXN1bHQuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworTlNTdHJpbmcgKnRlc3RQYWdlID0gQCI8c3R5bGU+
XG4iCisiQG1lZGlhIHNjcmVlbiB7XG4iCisiLlNob3dGb3JQcmludGluZ3tcbiIKKyIgICAgdmlz
aWJpbGl0eTogaGlkZGVuO1xuIgorIn1cbiIKKyIuU2hvd0ZvckxhdmFMYW1we1xuIgorIiAgICB2
aXNpYmlsaXR5OiBoaWRkZW47XG4iCisifVxuIgorIn1cbiIKKyJAbWVkaWEgcHJpbnQge1xuIgor
Ii5TaG93Rm9yU2NyZWVue1xuIgorIiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4iCisifVxuIgor
Ii5TaG93Rm9yTGF2YUxhbXB7XG4iCisiICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiIKKyJ9XG4i
CisifVxuIgorIkBtZWRpYSBsYXZhbGFtcCB7XG4iCisiLlNob3dGb3JTY3JlZW4ge1xuIgorIiAg
ICB2aXNpYmlsaXR5OiBoaWRkZW47XG4iCisifVxuIgorIi5TaG93Rm9yUHJpbnRpbmd7XG4iCisi
ICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiIKKyJ9XG4iCisifVxuIgorIjwvc3R5bGU+XG4iCisi
PGRpdiBjbGFzcz0nU2hvd0ZvclNjcmVlbic+U2NyZWVuPC9kaXY+XG4iCisiPGRpdiBjbGFzcz0n
U2hvd0ZvclByaW50aW5nJz5QcmludDwvZGl2PlxuIgorIjxkaXYgY2xhc3M9J1Nob3dGb3JMYXZh
TGFtcCc+TGF2YUxhbXA8L2Rpdj5cbiI7CisKK1RFU1QoV0tXZWJWaWV3LCBNZWRpYVR5cGUpCit7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKKyAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6dGVzdFBhZ2UgYmFzZVVSTDpuaWxdOworCisgICAgRVhQ
RUNUX1RSVUUod2ViVmlldy5nZXQoKS5tZWRpYVR5cGUgPT0gbmlsKTsKKyAgICBFWFBFQ1RfVFJV
RShbW1t3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5
LmlubmVyVGV4dCJdIHN0cmluZ0J5VHJpbW1pbmdDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVy
U2V0IHdoaXRlc3BhY2VBbmROZXdsaW5lQ2hhcmFjdGVyU2V0XV0gaXNFcXVhbFRvU3RyaW5nOkAi
U2NyZWVuIl0pOworICAgIAorICAgIHdlYlZpZXcuZ2V0KCkubWVkaWFUeXBlID0gQCJzY3JlZW4i
OworICAgIEVYUEVDVF9UUlVFKFtbW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0Il0gc3RyaW5nQnlUcmltbWluZ0NoYXJhY3RlcnNJ
blNldDpbTlNDaGFyYWN0ZXJTZXQgd2hpdGVzcGFjZUFuZE5ld2xpbmVDaGFyYWN0ZXJTZXRdXSBp
c0VxdWFsVG9TdHJpbmc6QCJTY3JlZW4iXSk7CisKKyAgICB3ZWJWaWV3LmdldCgpLm1lZGlhVHlw
ZSA9IEAicHJpbnQiOworICAgIEVYUEVDVF9UUlVFKFtbW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0Il0gc3RyaW5nQnlUcmltbWlu
Z0NoYXJhY3RlcnNJblNldDpbTlNDaGFyYWN0ZXJTZXQgd2hpdGVzcGFjZUFuZE5ld2xpbmVDaGFy
YWN0ZXJTZXRdXSBpc0VxdWFsVG9TdHJpbmc6QCJQcmludCJdKTsKKworICAgIHdlYlZpZXcuZ2V0
KCkubWVkaWFUeXBlID0gQCJsYXZhbGFtcCI7CisgICAgRVhQRUNUX1RSVUUoW1tbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5pbm5lclRleHQiXSBz
dHJpbmdCeVRyaW1taW5nQ2hhcmFjdGVyc0luU2V0OltOU0NoYXJhY3RlclNldCB3aGl0ZXNwYWNl
QW5kTmV3bGluZUNoYXJhY3RlclNldF1dIGlzRXF1YWxUb1N0cmluZzpAIkxhdmFMYW1wIl0pOwor
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383407</attachid>
            <date>2019-11-12 16:49:10 -0800</date>
            <delta_ts>2019-11-14 10:09:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203974-20191112164909.patch</filename>
            <type>text/plain</type>
            <size>22459</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0NjdiMTQwM2U0MGJiYzIy
OWNjY2JhODAyMTdhMzk4ZjUxZjQyMjkuLjM5YWM4NDY1OTY3MjNkM2E3ZDI3NWNiZWUyYjY1YmIx
YmRlYzE4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTktMTEtMTIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1bW1hcnk6IFdLV2ViVmlldyBp
cyBtaXNzaW5nIGFuIGVxdWl2YWxlbnQgdG8gV2ViS2l0IDEncyBBUEkgdG8gc2V0IHRoZSBtZWRp
YSBzdHlsZS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5ODYyMTA3PiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzk3NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0Lgor
CisgICAgICAgIFRoaXMgaXMgYmFzaWNhbGx5OgorICAgICAgICAtIEV4cG9zZSBhIHJlYWQvd3Jp
dGUgcHJvcGVydHkgb24gV0tXZWJWaWV3LgorICAgICAgICAtIFBpcGUgdGhlIG5ldyBtZWRpYSB0
eXBlIHRvIHRoZSBXZWJQcm9jZXNzLgorICAgICAgICAtIEZvcmNlIGEgc3R5bGUgcmVjYWxjLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNl
dE1lZGlhVHlwZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1lZGlhVHlwZV0pOgorICAgICAg
ICAKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzZXRPdmVycmlkZGVuTWVkaWFUeXBlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6b3Zl
cnJpZGRlbk1lZGlhVHlwZSBjb25zdCk6CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6b3ZlcnJpZGVNZWRpYVR5cGUgY29uc3QpOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNldE92ZXJyaWRkZW5NZWRpYVR5cGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om92ZXJy
aWRkZW5NZWRpYVR5cGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOgorCiAyMDE5LTExLTEyICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1MjM1MS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAK
aW5kZXggN2Y1NWE4ODRlZjM4ZmYxYzRmMTgwYTFiOGIyMTgyZWY2MTEzN2E2OC4uN2I3MmFmM2Zj
YmU0ODgwYzk2MGE4NWU5YjRhNWIxOGMzNTE5ZTMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTEyOSw2ICsxMjksNyBA
QCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IGJhY2tncm91bmRDb2xvcjsKICAg
ICBlbmNvZGVyIDw8IG9sZFBhZ2VJRDsKKyAgICBlbmNvZGVyIDw8IG92ZXJyaWRkZW5NZWRpYVR5
cGU7CiB9CiAKIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC0zOTMsNiAr
Mzk0LDkgQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICAgICBwYXJhbWV0ZXJzLm9sZFBhZ2VJRCA9IFdURk1vdmUoKm9sZFBhZ2VJRCk7CiAK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMub3ZlcnJpZGRlbk1lZGlhVHlwZSkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICByZXR1cm4gcGFyYW1ldGVyczsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IGZiZjU0MzlhODUxMTkzZjczN2U2NjQ3YjVhOGMyYzI0ZmYxOTZiNTguLjU5OTcy
ZWY3NTc2MjYyOGYzY2NmODI1OTAxMjJlYmY1ZTg2YmYxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTIwMCw2ICsyMDAsOCBA
QCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6Q29sb3I+IGJhY2tncm91bmRDb2xvcjsKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvbGRQYWdlSUQ7CisKKyAgICBTdHJpbmcgb3ZlcnJpZGRlbk1lZGlhVHlwZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDQ2ZDMyNGZmNDQ5NWI2ZDlmYTFjNmFiOTQwZjE1
NWVhYzUyMjk4MzMuLmQ3ZTU3Yzc4MjVmOTczZDY1N2U1ZmM4MTIzOTc2MGRmOGVlMWVmNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAgLTMy
MCw2ICszMjAsMTQgQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5cGVXZWJBcmNo
aXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKICAqLwogKyAoQk9PTCloYW5k
bGVzVVJMU2NoZW1lOihOU1N0cmluZyAqKXVybFNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzKSwgaW9zKDExLjApKTsKIAorCisvKiBAYWJzdHJhY3QgVGhlIG1lZGlhIHR5cGUgZm9y
IHRoZSBXS1dlYlZpZXcKK0BkaXNjdXNzaW9uIFRoZSB2YWx1ZSBvZiBtZWRpYVR5cGUgd2lsbCBv
dmVycmlkZSB0aGUgbm9ybWFsIHZhbHVlIG9mIHRoZSBDU1MgbWVkaWEgcHJvcGVydHkuCisgU2V0
dGluZyB0aGUgdmFsdWUgdG8gbmlsIHdpbGwgcmVzdG9yZSB0aGUgbm9ybWFsIHZhbHVlLgorIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzIG5pbC4KKyovCitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbF9y
ZXNldHRhYmxlLCBjb3B5KSBOU1N0cmluZyAqbWVkaWFUeXBlOworCiAjaWYgIVRBUkdFVF9PU19J
UEhPTkUKIC8qIEBhYnN0cmFjdCBSZXR1cm5zIGFuIE5TUHJpbnRPcGVyYXRpb24gb2JqZWN0IGNv
bmZpZ3VyZWQgdG8gcHJpbnQgdGhlIGNvbnRlbnRzIG9mIHRoaXMgV0tXZWJWaWV3CiBAcGFyYW0g
cHJpbnRJbmZvIFRoZSBwcmludCBpbmZvIG9iamVjdCB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgcmVz
dWx0aW5nIHByaW50IG9wZXJhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDUwMGRiNWM1Mjg3MWQ1MmRmMWQ4OGEwNjUyYTJmOTM1
ZTJiM2M2MjUuLjIwODk0MjQ2NDk1YjA4NWFkYmU5YzgwYmQyMGJhODY1YTNmMmMzMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDc3
NCw2ICs0Nzc0LDE2IEBAIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMo
V0tGaW5kQ29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbikKICAgICB9KTsKIH0KIAorLSAodm9p
ZClzZXRNZWRpYVR5cGU6KE5TU3RyaW5nICopbWVkaWFTdHlsZQoreworICAgIF9wYWdlLT5zZXRP
dmVycmlkZGVuTWVkaWFUeXBlKG1lZGlhU3R5bGUpOworfQorCistIChOU1N0cmluZyAqKW1lZGlh
VHlwZQoreworICAgIHJldHVybiBfcGFnZS0+b3ZlcnJpZGRlbk1lZGlhVHlwZSgpLmlzTnVsbCgp
ID8gbmlsIDogKE5TU3RyaW5nICopX3BhZ2UtPm92ZXJyaWRkZW5NZWRpYVR5cGUoKTsKK30KKwog
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3IChXS1ByaXZhdGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBmZDlkMzU0N2VmY2YxOTdhNDViZTcy
ODk1MzcxMGI0ODFmOGQ1OWM5Li5kM2JmMGRlNjA3ZDc2NmFkNjIwOGUwNjFhNzc2MmMwZDVlOGU0
MzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0MTcs
NiArNzQxNyw4IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVh
dGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVycy5uZWVk
c0ZvbnRBdHRyaWJ1dGVzID0gbV9uZWVkc0ZvbnRBdHRyaWJ1dGVzOwogICAgIHBhcmFtZXRlcnMu
YmFja2dyb3VuZENvbG9yID0gbV9iYWNrZ3JvdW5kQ29sb3I7CiAKKyAgICBwYXJhbWV0ZXJzLm92
ZXJyaWRkZW5NZWRpYVR5cGUgPSBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CisKICAgICBwcm9jZXNz
LmFkZFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KG1fdXNlckNvbnRlbnRDb250cm9sbGVy
LCBwYXJhbWV0ZXJzKTsKIAogICAgIHJldHVybiBwYXJhbWV0ZXJzOwpAQCAtOTQ5Nyw2ICs5NDk5
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29y
ZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6CiAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9u
KCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6Q29tcGxldGVUZXh0TWFu
aXB1bGF0aW9uKGl0ZW1JRCwgdG9rZW5zKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1f
d2ViUGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNldE92ZXJyaWRkZW5NZWRpYVR5
cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCit7CisgICAgbV9vdmVycmlkZGVuTWVkaWFUeXBl
ID0gbWVkaWFUeXBlOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0
T3ZlcnJpZGRlbk1lZGlhVHlwZShtZWRpYVR5cGUpLCBtX3dlYlBhZ2VJRCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVSR0VfV0hFRUxfRVZFTlRTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGM2YzM2ZjM1NDhmMzg1NzE4ZmM4NGFiYzI0
MWZlZTA5N2UyM2JiYjkuLmQxN2U1NGUyNDJkYTg2OTk0Mzk1NmQ4ZmViMDUwNGRhNmU0MjQyZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjIxLDYgKzE2MjEs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvblRva2VuPiYs
CiAgICAgICAgIFdURjo6RnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXI6Ok1hbmlwdWxhdGlvblJlc3VsdCk+JiYpOwogCisgICAgY29uc3QgU3RyaW5nJiBv
dmVycmlkZGVuTWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBl
OyB9CisgICAgdm9pZCBzZXRPdmVycmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOworCiBw
cml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5Jiwg
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplKCk7CkBAIC0yNjE3LDYgKzI2MjAsOCBAQCBwcml2YXRlOgogICAgIENPTVB0cjxJRDNEMTFE
ZXZpY2UxPiBtX2RldmljZTsKICNlbmRpZgogICAgIGJvb2wgbV9pc1F1b3RhSW5jcmVhc2VEZW5p
ZWQgeyBmYWxzZSB9OworICAgIAorICAgIFN0cmluZyBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IGQzZjc4Nzk4N2IwZGE3ZmYzZjJmY2NiNTliZjBiMjQ2MWU5YjliNmQuLmQ2ZGQ3NTY2
N2EyOWE4NzYwY2NiYTkxMDBmNWQ4MTc0ODRhYzMyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcApAQCAtMTcyMCw3ICsxNzIwLDExIEBAIE9iamVjdENvbnRlbnRUeXBlIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVybCwgY29uc3QK
IAogU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAobV9mcmFtZSkgeworICAgICAgICBp
ZiAoYXV0byogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBwYWdl
LT5vdmVycmlkZGVuTWVkaWFUeXBlKCk7CisgICAgfQorCiAgICAgcmV0dXJuIFN0cmluZygpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDBjNTg4MDQwNDU3NTVmNTlkOTM5Yzc5NzYxZDY4Y2QzN2Q5OWYwZmQuLjRjNDRmMWE4MDJlY2U5
ZDgzZGZmY2IxN2NlYjBlNjM0YWU4MzY0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MzIsNiArNDMyLDcgQEAgV2ViUGFnZTo6V2ViUGFn
ZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgLCBtX3RleHRBdXRvU2l6
aW5nQWRqdXN0bWVudFRpbWVyKCp0aGlzLCAmV2ViUGFnZTo6dGV4dEF1dG9TaXppbmdBZGp1c3Rt
ZW50VGltZXJGaXJlZCkKICNlbmRpZgorICAgICwgbV9vdmVycmlkZGVuTWVkaWFUeXBlKHBhcmFt
ZXRlcnMub3ZlcnJpZGRlbk1lZGlhVHlwZSkKIHsKICAgICBBU1NFUlQobV9pZGVudGlmaWVyKTsK
IApAQCAtNjgyNSw2ICs2ODI2LDE1IEBAIHZvaWQgV2ViUGFnZTo6dGV4dEF1dG9TaXppbmdBZGp1
c3RtZW50VGltZXJGaXJlZCgpCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQYWdlOjpzZXRPdmVycmlk
ZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlKQoreworICAgIGlmIChtZWRpYVR5
cGUgPT0gbV9vdmVycmlkZGVuTWVkaWFUeXBlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX292
ZXJyaWRkZW5NZWRpYVR5cGUgPSBtZWRpYVR5cGU7CisgICAgbV9wYWdlLT5zZXROZWVkc1JlY2Fs
Y1N0eWxlSW5BbGxGcmFtZXMoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRl
ZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggNjIzMDhkYzY2MDI5MzVjYWY2NzRjNmFjYzFhNzZjMjZkZjkwNTA1
Ny4uYjk0ZDg4YTkzOWVjNmZiYzFmNGQxYjY5MzdiMzEwZGUyZGU0ODA0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI0MCw2ICsxMjQwLDkgQEAg
cHVibGljOgogICAgIHZvaWQgcmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1h
aW5GcmFtZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFN0cmluZyYpPiYmKTsKICNlbmRpZgogCisgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVu
TWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CisgICAg
dm9pZCBzZXRPdmVycmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIAogcHJpdmF0
ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYpOwogCkBAIC0xOTk4LDYgKzIwMDEsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJM
RShURVhUX0FVVE9TSVpJTkcpCiAgICAgV2ViQ29yZTo6VGltZXIgbV90ZXh0QXV0b1NpemluZ0Fk
anVzdG1lbnRUaW1lcjsKICNlbmRpZgorCisgICAgU3RyaW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlw
ZTsKIH07CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGRhMWM3NTVm
NWIzMjg3NWIzYWMxNGY4NzNjMmYyNTY3YzhkOGY3MWYuLmRiODM5ZDQxZTdlOWU3YmQwNGYwYWNm
ZmVkNjFiMWNhM2E5OGE4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTgxLDQgKzU4MSw2IEBAIEdlbmVyYXRl
U3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRp
dGluZ0NvbW1hbmRUeXBlCiAKICAgICBTdGFydFRleHRNYW5pcHVsYXRpb25zKFZlY3RvcjxXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6RXhjbHVzaW9uUnVsZT4gZXhjbHVzaW9u
UnVsZXMpIC0+ICgpIEFzeW5jCiAgICAgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKFdlYkNvcmU6
OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRpZmllciBpdGVtSUQsIFZlY3Rv
cjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9rZW4+
IHRva2VucykgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcjo6TWFuaXB1bGF0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKKyAgICAKKyAgICBTZXRPdmVy
cmlkZGVuTWVkaWFUeXBlKFN0cmluZyBtZWRpYVR5cGUpCiB9CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjc2NDcxYWMxNWExYWM0NzQwYzIyMzEw
NzMwZjdhYjBlYjA5YWQ3MC4uMDdjNGI4NmQxYTkzMjg4MDA1MGRhZDI5NWIxMDA4NmEyMTg4N2I2
YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE5LTExLTEyICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBTdW1tYXJ5OiBXS1dlYlZpZXcgaXMgbWlzc2luZyBhbiBlcXVpdmFsZW50
IHRvIFdlYktpdCAxJ3MgQVBJIHRvIHNldCB0aGUgbWVkaWEgc3R5bGUuCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80OTg2MjEwNz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTWVkaWFU
eXBlLm1tOiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisKIDIwMTktMTEt
MTIgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBBZGQgJ3Rlc3QyNjItdGVzdCcgc3RlcCB0byBHVEsgYW5kIFdQRSBidWlsZCBib3RzCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGUzMmI4NWU0MmRjMWYxOTI1YjdjZmQ4YTliOTMzZWI3MjFk
MWFjZWMuLjc3NWIxYzEyZTM0ZjQwMjE3YzQ2ODJkZTFiYmU2YjViYTllMmIyY2UgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yODksNiArMjg5LDcgQEAKIAkJNTFCMUVFOTcxQzgwRkFFRjAw
NjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIxRUU5NTFDODBGQUREMDA2NEZC
OTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sICovOyB9OwogCQk1MUJDRUU0RTFDODRG
NTNCMDA0MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUJDRUU0QzFDODRGNTJD
MDA0MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCAqLzsgfTsKIAkJNTFCQ0VF
NEYxQzg0RjUzQjAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCQ0VFNEQx
Qzg0RjUyQzAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwgKi87IH07CisJ
CTUxQkU5RTY2MjM3NjA4OUYwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUJFOUU2NTIzNzYwODk1MDBCNEUxMTcg
LyogTWVkaWFUeXBlLm1tICovOyB9OwogCQk1MUM2ODNERTFFQTEzNEU4MDA2NTAxODMgLyogV0tV
UkxTY2hlbWVIYW5kbGVyLTEubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUM2ODNERDFFQTEzNERCMDA2NTAxODMgLyogV0tVUkxTY2hlbWVIYW5kbGVy
LTEubW0gKi87IH07CiAJCTUxQzhFMUE1MUYyNkFGNEMwMEJGNzMxQiAvKiBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFDOEUxQTQxRjI2QUM1NDAwQkY3MzFCIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3MubW0g
Ki87IH07CiAJCTUxQzhFMUE5MUYyN0Y0OTYwMEJGNzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzhFMUE4MUYyN0Y0NzMwMEJGNzMxQiAvKiBFbXB0
eUdyYW5kZmF0aGVyZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0ICovOyB9OwpAQCAtMTgz
Miw2ICsxODMzLDcgQEAKIAkJNTFCQ0VFNDkxQzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWREQk11
bHRpUHJvY2Vzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IElu
ZGV4ZWREQk11bHRpUHJvY2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFC
Q0VFNEMxQzg0RjUyQzAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0xLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQkNFRTREMUM4NEY1MkMwMDQyQzgyRSAv
KiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gIkluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MUJFOUU2NTIzNzYwODk1MDBCNEUxMTcgLyogTWVkaWFUeXBlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFUeXBlLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MUM2ODNERDFFQTEzNERCMDA2NTAxODMgLyogV0tVUkxTY2hl
bWVIYW5kbGVyLTEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSAi
V0tVUkxTY2hlbWVIYW5kbGVyLTEubW0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MUM4RTFBNDFGMjZBQzU0MDBCRjczMUIgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxQzhFMUE4MUYyN0Y0NzMwMEJGNzMxQiAvKiBFbXB0eUdyYW5k
ZmF0aGVyZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZS5icGxpc3Q7IHBhdGggPSBFbXB0eUdy
YW5kZmF0aGVyZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjkwMiw2ICsyOTA0LDcgQEAKIAkJCQk4QzEwQUY5NjIwNjQ2Nzc3MDAx
OEZEOTAgLyogTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0gKi8sCiAJCQkJN0E2QTJDNkYxREND
Rjg3QjAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbSAqLywKIAkJCQkwN0NDN0RG
RDIyNjYzMzA4MDBFMzkxODEgLyogTWVkaWFCdWZmZXJpbmdQb2xpY3kubW0gKi8sCisJCQkJNTFC
RTlFNjUyMzc2MDg5NTAwQjRFMTE3IC8qIE1lZGlhVHlwZS5tbSAqLywKIAkJCQk1MTY1RkUwMzIw
MUVFNjE3MDA5RjdFQzMgLyogTWVzc2FnZVBvcnRQcm92aWRlcnMubW0gKi8sCiAJCQkJNTFDRDFD
NkExQjM4Q0UzNjAwMTQyQ0E1IC8qIE1vZGFsQWxlcnRzLm1tICovLAogCQkJCTFBQkMzREVEMTg5
OUJFNkQwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uLm1tICovLApAQCAtNDcxNSw2ICs0NzE4LDcgQEAK
IAkJCQkwN0NDN0RGRTIyNjYzMzA5MDBFMzkxODEgLyogTWVkaWFCdWZmZXJpbmdQb2xpY3kubW0g
aW4gU291cmNlcyAqLywKIAkJCQlDREEzMTU5ODFFRDUzNjUxMDA5RjYwRDMgLyogTWVkaWFQbGF5
YmFja1NsZWVwQXNzZXJ0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDOTQ0MkUxRUYxRkMw
ODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTUxQkU5RTY2MjM3NjA4OUYwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0VDNTFBNDExQTdFMDA0NDdDNEMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0
aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDNjFB
NDExQTdFMDA0NDdDNEMgLyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVn
YXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMwQkY4OEQxREQ1OTY0RDAwQjAwMzI4IC8qIE1l
bW9yeVByZXNzdXJlSGFuZGxlci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9NZWRpYVR5cGUubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01lZGlhVHlwZS5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTQw
N2ZmYzE4M2Q0ZDE5Mzk4OTgxMTU1NWQ5ZDM1MTQ2ZDRkMmU5Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9NZWRpYVR5cGUubW0KQEAgLTAs
MCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2ltcG9ydCAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIK
KyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZpbmRDb25maWd1
cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tGaW5kUmVzdWx0Lmg+CisjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK05TU3RyaW5nICp0
ZXN0UGFnZSA9IEAiPHN0eWxlPlxuIgorIkBtZWRpYSBzY3JlZW4ge1xuIgorIi5TaG93Rm9yUHJp
bnRpbmd7XG4iCisiICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiIKKyJ9XG4iCisiLlNob3dGb3JM
YXZhTGFtcHtcbiIKKyIgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuIgorIn1cbiIKKyJ9XG4iCisi
QG1lZGlhIHByaW50IHtcbiIKKyIuU2hvd0ZvclNjcmVlbntcbiIKKyIgICAgdmlzaWJpbGl0eTog
aGlkZGVuO1xuIgorIn1cbiIKKyIuU2hvd0ZvckxhdmFMYW1we1xuIgorIiAgICB2aXNpYmlsaXR5
OiBoaWRkZW47XG4iCisifVxuIgorIn1cbiIKKyJAbWVkaWEgbGF2YWxhbXAge1xuIgorIi5TaG93
Rm9yU2NyZWVuIHtcbiIKKyIgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuIgorIn1cbiIKKyIuU2hv
d0ZvclByaW50aW5ne1xuIgorIiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4iCisifVxuIgorIn1c
biIKKyI8L3N0eWxlPlxuIgorIjxkaXYgY2xhc3M9J1Nob3dGb3JTY3JlZW4nPlNjcmVlbjwvZGl2
PlxuIgorIjxkaXYgY2xhc3M9J1Nob3dGb3JQcmludGluZyc+UHJpbnQ8L2Rpdj5cbiIKKyI8ZGl2
IGNsYXNzPSdTaG93Rm9yTGF2YUxhbXAnPkxhdmFMYW1wPC9kaXY+XG4iOworCitURVNUKFdLV2Vi
VmlldywgTWVkaWFUeXBlKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOnRlc3RQYWdlIGJhc2VV
Ukw6bmlsXTsKKworICAgIEVYUEVDVF9UUlVFKHdlYlZpZXcuZ2V0KCkubWVkaWFUeXBlID09IG5p
bCk7CisgICAgRVhQRUNUX1RSVUUoW1tbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAiZG9jdW1lbnQuYm9keS5pbm5lclRleHQiXSBzdHJpbmdCeVRyaW1taW5nQ2hhcmFjdGVy
c0luU2V0OltOU0NoYXJhY3RlclNldCB3aGl0ZXNwYWNlQW5kTmV3bGluZUNoYXJhY3RlclNldF1d
IGlzRXF1YWxUb1N0cmluZzpAIlNjcmVlbiJdKTsKKyAgICAKKyAgICB3ZWJWaWV3LmdldCgpLm1l
ZGlhVHlwZSA9IEAic2NyZWVuIjsKKyAgICBFWFBFQ1RfVFJVRShbW1t3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCJdIHN0cmluZ0J5
VHJpbW1pbmdDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IHdoaXRlc3BhY2VBbmROZXds
aW5lQ2hhcmFjdGVyU2V0XV0gaXNFcXVhbFRvU3RyaW5nOkAiU2NyZWVuIl0pOworCisgICAgd2Vi
Vmlldy5nZXQoKS5tZWRpYVR5cGUgPSBAInByaW50IjsKKyAgICBFWFBFQ1RfVFJVRShbW1t3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4
dCJdIHN0cmluZ0J5VHJpbW1pbmdDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IHdoaXRl
c3BhY2VBbmROZXdsaW5lQ2hhcmFjdGVyU2V0XV0gaXNFcXVhbFRvU3RyaW5nOkAiUHJpbnQiXSk7
CisKKyAgICB3ZWJWaWV3LmdldCgpLm1lZGlhVHlwZSA9IEAibGF2YWxhbXAiOworICAgIEVYUEVD
VF9UUlVFKFtbW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50
LmJvZHkuaW5uZXJUZXh0Il0gc3RyaW5nQnlUcmltbWluZ0NoYXJhY3RlcnNJblNldDpbTlNDaGFy
YWN0ZXJTZXQgd2hpdGVzcGFjZUFuZE5ld2xpbmVDaGFyYWN0ZXJTZXRdXSBpc0VxdWFsVG9TdHJp
bmc6QCJMYXZhTGFtcCJdKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4
IDdhNzI2NWQzODE1YmY1NzBhM2YwMGJhMjg2Yjk2ZDNhY2RlYTczNzIuLjc5NmViNGUxOTFkNzBj
ZDU4MmIzNGE1ZWFiODQxMDBkMjBmNDgwNDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bi5tbQpAQCAtMzAwOCw2ICszMDA4LDc1IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhZ2Vab29tTGV2
ZWxBZnRlclN3YXApCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKK3N0YXRpYyBjb25zdCBj
aGFyKiBtZWRpYVR5cGVCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAorPHN0eWxlPgorQG1lZGlhIHNj
cmVlbiB7CisucHJpbnR7CisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworfQorfQorCitAbWVkaWEg
cHJpbnQgeworLnNjcmVlbnsKKyAgICB2aXNpYmlsaXR5OiBoaWRkZW47Cit9Cit9Cis8L3N0eWxl
PgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJzY3JlZW4iPlNjcmVlbjwvZGl2PgorPGRpdiBjbGFzcz0i
cHJpbnQiPlByaW50PC9kaXY+Cis8L2JvZHk+CispUFNPTlJFU09VUkNFIjsKKworVEVTVChQcm9j
ZXNzU3dhcCwgTWVkaWFUeXBlQWZ0ZXJTd2FwKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1dG8gcHJv
Y2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8gd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9j
ZXNzUG9vbC5nZXQoKV07CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUg
YWxsb2NdIGluaXRdKTsKKyAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTptZWRpYVR5cGVCeXRlc107Cisg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNv
bS9tYWluLmh0bWwiIHRvRGF0YTptZWRpYVR5cGVCeXRlc107CisgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQ
U09OIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2Vi
Vmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRO
YXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CisgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIE5TU3RyaW5nICppbm5lclRleHQgPSBbW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0
Il0gc3RyaW5nQnlUcmltbWluZ0NoYXJhY3RlcnNJblNldDpbTlNDaGFyYWN0ZXJTZXQgd2hpdGVz
cGFjZUFuZE5ld2xpbmVDaGFyYWN0ZXJTZXRdXTsKKyAgICBFWFBFQ1RfVFJVRShbaW5uZXJUZXh0
IGlzRXF1YWxUb1N0cmluZzpAIlNjcmVlbiJdKTsKKworICAgIHdlYlZpZXcuZ2V0KCkubWVkaWFU
eXBlID0gQCJwcmludCI7CisKKyAgICBpbm5lclRleHQgPSBbW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0Il0gc3RyaW5nQnlUcmlt
bWluZ0NoYXJhY3RlcnNJblNldDpbTlNDaGFyYWN0ZXJTZXQgd2hpdGVzcGFjZUFuZE5ld2xpbmVD
aGFyYWN0ZXJTZXRdXTsKKyAgICBFWFBFQ1RfVFJVRShbaW5uZXJUZXh0IGlzRXF1YWxUb1N0cmlu
ZzpAIlByaW50Il0pOworCisgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwi
XV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGlubmVyVGV4
dCA9IFtbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9k
eS5pbm5lclRleHQiXSBzdHJpbmdCeVRyaW1taW5nQ2hhcmFjdGVyc0luU2V0OltOU0NoYXJhY3Rl
clNldCB3aGl0ZXNwYWNlQW5kTmV3bGluZUNoYXJhY3RlclNldF1dOworICAgIEVYUEVDVF9UUlVF
KFtpbm5lclRleHQgaXNFcXVhbFRvU3RyaW5nOkAiUHJpbnQiXSk7CisKKyAgICAvLyBLaWxsIHRo
ZSBXZWJQcm9jZXNzLCB0aGUgcGFnZSBzaG91bGQgcmVsb2FkIGF1dG9tYXRpY2FsbHkgYW5kIHRo
ZSBtZWRpYSB0eXBlIHNob3VsZCBiZSBtYWludGFpbmVkLgorICAgIGtpbGwoW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXSwgOSk7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGlubmVyVGV4dCA9IFtbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5pbm5lclRleHQiXSBz
dHJpbmdCeVRyaW1taW5nQ2hhcmFjdGVyc0luU2V0OltOU0NoYXJhY3RlclNldCB3aGl0ZXNwYWNl
QW5kTmV3bGluZUNoYXJhY3RlclNldF1dOworICAgIEVYUEVDVF9UUlVFKFtpbm5lclRleHQgaXNF
cXVhbFRvU3RyaW5nOkAiUHJpbnQiXSk7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyKiBuYXZpZ2F0
ZUJlZm9yZVBhZ2VMb2FkRW5kQnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxib2R5PgogPGEgaWQ9
InRlc3RMaW5rIiBocmVmPSJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiPkxpbms8L2E+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>