<?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>237055</bug_id>
          
          <creation_ts>2022-02-22 13:35:53 -0800</creation_ts>
          <short_desc>Preconnecting after process swap is a page load time improvement on some devices</short_desc>
          <delta_ts>2022-03-07 18:14: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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>nham</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1844854</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-02-22 13:35:53 -0800</bug_when>
    <thetext>Preconnecting after process swap is a page load time improvement on some devices, but a regression on others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844861</commentid>
    <comment_count>1</comment_count>
      <attachid>452900</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-02-22 13:46:48 -0800</bug_when>
    <thetext>Created attachment 452900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845230</commentid>
    <comment_count>2</comment_count>
      <attachid>453002</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-02-23 11:19:43 -0800</bug_when>
    <thetext>Created attachment 453002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847172</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-01 13:36:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/89638872&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847949</commentid>
    <comment_count>4</comment_count>
      <attachid>453755</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-03-03 10:03:44 -0800</bug_when>
    <thetext>Created attachment 453755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848267</commentid>
    <comment_count>5</comment_count>
      <attachid>453755</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-04 05:35:25 -0800</bug_when>
    <thetext>Comment on attachment 453755
Patch

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

&gt; Source/WebKit/ChangeLog:13
&gt; +        a second preconnect after the first has finished. It is important to wait until the first preconnect has
&gt; +        finished, otherwise the second preconnect will go to waste, since the underlying network layer does not yet
&gt; +        know if this is HTTP/1.1 or not.

In the case of libsoup, if there&apos;s already a connection in idle state preconnect does nothing. So, this patch isn&apos;t useful for soup based ports, but it&apos;s harmless anyway. Maybe it&apos;s worth adding platform ifdefs, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848280</commentid>
    <comment_count>6</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-03-04 07:07:17 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #5)
&gt; Comment on attachment 453755 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453755&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:13
&gt; &gt; +        a second preconnect after the first has finished. It is important to wait until the first preconnect has
&gt; &gt; +        finished, otherwise the second preconnect will go to waste, since the underlying network layer does not yet
&gt; &gt; +        know if this is HTTP/1.1 or not.
&gt; 
&gt; In the case of libsoup, if there&apos;s already a connection in idle state
&gt; preconnect does nothing. So, this patch isn&apos;t useful for soup based ports,
&gt; but it&apos;s harmless anyway. Maybe it&apos;s worth adding platform ifdefs, though.

Ah, yes, that is a good point. I will update the patch.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848325</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-04 09:21:45 -0800</bug_when>
    <thetext>&gt; &gt; In the case of libsoup, if there&apos;s already a connection in idle state
&gt; &gt; preconnect does nothing. So, this patch isn&apos;t useful for soup based ports,
&gt; &gt; but it&apos;s harmless anyway. Maybe it&apos;s worth adding platform ifdefs, though.
&gt; 
&gt; Ah, yes, that is a good point. I will update the patch.

Just a second: My understanding is that CFNetwork&apos;s behavior matches libsoup&apos;s behavior. But that doesn&apos;t invalidate the optimization.

Our thesis is that the prior http/1.1 connection is usually not idle at the time of this preconnect. It is busy loading the main resource request. So, the expected effect of this preconnect is to &quot;go wide&quot; and open a second http/1.1 connection in parallel to downloading the main resource request on the first connection. Then we get a speedup because the second connection is ready to go with zero latency the moment we parse the first subresource request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848328</commentid>
    <comment_count>8</comment_count>
      <attachid>453755</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-04 09:24:52 -0800</bug_when>
    <thetext>Comment on attachment 453755
Patch

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

&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:45
&gt; +, m_timeoutTimer([this] { didFinish(ResourceError { String(), 0, m_networkLoad-&gt;parameters().request.url(), &quot;Preconnection timed out&quot;_s, ResourceError::Type::Timeout }, { }); })

Looks like the indentation got messed up here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848329</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-04 09:33:12 -0800</bug_when>
    <thetext>Perhaps a more principled way to write this optimization would explicitly arrange not to make the second preconnect request until the main resource request has been made (thereby guaranteeing that the first connection is not idle).

Maybe we should test a change like that to see if it improves the optimization across more CPUs?

I guess a way to do that would be for the UI process to initiate the first preconnect right when the navigation starts (as it does today), and then initiate the second  preconnect right after we issue the load request for the main resource. Not sure exactly how to pipe the information that the connection is http/1.1 in this proposal -- maybe Per can figure out that piece.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848524</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-05 07:39:06 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #7)
&gt; &gt; &gt; In the case of libsoup, if there&apos;s already a connection in idle state
&gt; &gt; &gt; preconnect does nothing. So, this patch isn&apos;t useful for soup based ports,
&gt; &gt; &gt; but it&apos;s harmless anyway. Maybe it&apos;s worth adding platform ifdefs, though.
&gt; &gt; 
&gt; &gt; Ah, yes, that is a good point. I will update the patch.
&gt; 
&gt; Just a second: My understanding is that CFNetwork&apos;s behavior matches
&gt; libsoup&apos;s behavior. But that doesn&apos;t invalidate the optimization.
&gt; 
&gt; Our thesis is that the prior http/1.1 connection is usually not idle at the
&gt; time of this preconnect. It is busy loading the main resource request. So,
&gt; the expected effect of this preconnect is to &quot;go wide&quot; and open a second
&gt; http/1.1 connection in parallel to downloading the main resource request on
&gt; the first connection. Then we get a speedup because the second connection is
&gt; ready to go with zero latency the moment we parse the first subresource
&gt; request.

The second preconnect is started right after the first one finishes right? I think it will be still idle at that point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848831</commentid>
    <comment_count>11</comment_count>
      <attachid>454003</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-03-07 10:58:45 -0800</bug_when>
    <thetext>Created attachment 454003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848833</commentid>
    <comment_count>12</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-03-07 11:02:00 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #8)
&gt; Comment on attachment 453755 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453755&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:45
&gt; &gt; +, m_timeoutTimer([this] { didFinish(ResourceError { String(), 0, m_networkLoad-&gt;parameters().request.url(), &quot;Preconnection timed out&quot;_s, ResourceError::Type::Timeout }, { }); })
&gt; 
&gt; Looks like the indentation got messed up here.

Fixed in the latest patch.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848837</commentid>
    <comment_count>13</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-03-07 11:05:17 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #9)
&gt; Perhaps a more principled way to write this optimization would explicitly
&gt; arrange not to make the second preconnect request until the main resource
&gt; request has been made (thereby guaranteeing that the first connection is not
&gt; idle).
&gt; 
&gt; Maybe we should test a change like that to see if it improves the
&gt; optimization across more CPUs?
&gt; 
&gt; I guess a way to do that would be for the UI process to initiate the first
&gt; preconnect right when the navigation starts (as it does today), and then
&gt; initiate the second  preconnect right after we issue the load request for
&gt; the main resource. Not sure exactly how to pipe the information that the
&gt; connection is http/1.1 in this proposal -- maybe Per can figure out that
&gt; piece.

Yes, this is a great idea. I think it would make sure that the second preconnect never goes to waste. I have started looking into this.

Would you be OK with landing the current patch as-is, and then follow up with a new patch? The current patch seems to be a nice progression on macOS, at least on the devices that have been tested.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848841</commentid>
    <comment_count>14</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-03-07 11:08:26 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #10)
&gt; (In reply to Geoffrey Garen from comment #7)
&gt; &gt; &gt; &gt; In the case of libsoup, if there&apos;s already a connection in idle state
&gt; &gt; &gt; &gt; preconnect does nothing. So, this patch isn&apos;t useful for soup based ports,
&gt; &gt; &gt; &gt; but it&apos;s harmless anyway. Maybe it&apos;s worth adding platform ifdefs, though.
&gt; &gt; &gt; 
&gt; &gt; &gt; Ah, yes, that is a good point. I will update the patch.
&gt; &gt; 
&gt; &gt; Just a second: My understanding is that CFNetwork&apos;s behavior matches
&gt; &gt; libsoup&apos;s behavior. But that doesn&apos;t invalidate the optimization.
&gt; &gt; 
&gt; &gt; Our thesis is that the prior http/1.1 connection is usually not idle at the
&gt; &gt; time of this preconnect. It is busy loading the main resource request. So,
&gt; &gt; the expected effect of this preconnect is to &quot;go wide&quot; and open a second
&gt; &gt; http/1.1 connection in parallel to downloading the main resource request on
&gt; &gt; the first connection. Then we get a speedup because the second connection is
&gt; &gt; ready to go with zero latency the moment we parse the first subresource
&gt; &gt; request.
&gt; 
&gt; The second preconnect is started right after the first one finishes right? I
&gt; think it will be still idle at that point.

In the latest patch, finishedPreconnectForMainResource is called before starting the second preconnect. Calling finishedPreconnectForMainResource will in some cases start the load.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848866</commentid>
    <comment_count>15</comment_count>
      <attachid>454003</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-07 11:41:01 -0800</bug_when>
    <thetext>Comment on attachment 454003
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848867</commentid>
    <comment_count>16</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-07 11:41:31 -0800</bug_when>
    <thetext>&gt; Would you be OK with landing the current patch as-is, and then follow up
&gt; with a new patch?

Yup!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849056</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-07 18:13:55 -0800</bug_when>
    <thetext>Committed r290969 (248148@main): &lt;https://commits.webkit.org/248148@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454003.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452900</attachid>
            <date>2022-02-22 13:46:48 -0800</date>
            <delta_ts>2022-02-23 11:19:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237055-20220222134647.patch</filename>
            <type>text/plain</type>
            <size>2849</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyOTAyNjIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAyLTIyICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVjb25uZWN0aW5nIGFmdGVyIHByb2Nlc3Mg
c3dhcCBpcyBhIHBhZ2UgbG9hZCB0aW1lIGltcHJvdmVtZW50IG9uIHNvbWUgZGV2aWNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDU1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlY29ubmVjdGlu
ZyBhZnRlciBwcm9jZXNzIHN3YXAgaXMgYSBwYWdlIGxvYWQgdGltZSBpbXByb3ZlbWVudCBvbiBz
b21lIGRldmljZXMsIGJ1dCBhIHJlZ3Jlc3Npb24gb24gb3RoZXJzLgorICAgICAgICBUaGlzIHBh
dGNoIGFpbXMgdG8gZW5hYmxlIHRoaXMgYmVoYXZpb3Igb25seSBmb3IgZGV2aWNlcyB3aGVyZSBp
dCBpbXByb3ZlcyBwYWdlIGxvYWQgdGltZSBhbmQgZGlzYWJsZSBpdCBmb3IKKyAgICAgICAgZGV2
aWNlcyB3aGVyZSBwYWdlIGxvYWQgdGltZSBiZWNvbWVzIGxvbmdlci4gSXQgaXMgbm90IHdlbGwg
dW5kZXJzdG9vZCB3aHkgdGhlIGJlaGF2aW9yIGlzIGRldmljZSBkZXBlbmRlbnQuCisgICAgICAg
IE9ic2VydmF0aW9ucyBzaG93IHRoYXQgb2xkZXIgaU9TIGRldmljZXMgYW5kIEFwcGxlIFNpbGlj
b24gTWFjcyBiZW5lZml0IGZyb20gYWx3YXlzIHByZWNvbm5lY3RpbmcuCisKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm1FbmFibGUuaDoKKwogMjAyMi0wMi0xOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gU2FmYXJpIGNhbiBzb21ldGltZXMgaGFuZyB3
aGlsZSBwcmludGluZyBkdWUgdG8gc3luYyBJUEMKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUu
aAkocmV2aXNpb24gMjkwMjYyKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAko
d29ya2luZyBjb3B5KQpAQCAtOTU5LDMgKzk1OSw3IEBACiAjZGVmaW5lIEVOQUJMRV9OT1RJRklD
QVRJT05fRVZFTlQgMQogI2VuZGlmCiAjZW5kaWYKKworI2lmICFFTkFCTEUoUFJFQ09OTkVDVF9B
RlRFUl9QUk9DRVNTX1NXQVApICYmIChDUFUoQVJNNjQpICYmIChQTEFURk9STShJT1NfRkFNSUxZ
KSB8fCBQTEFURk9STShNQUMpKSkKKyNkZWZpbmUgRU5BQkxFX1BSRUNPTk5FQ1RfQUZURVJfUFJP
Q0VTU19TV0FQIDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5MDMzMykKKysrIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjItMDItMjIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFByZWNvbm5lY3RpbmcgYWZ0ZXIgcHJvY2VzcyBzd2FwIGlzIGEgcGFnZSBsb2FkIHRpbWUgaW1w
cm92ZW1lbnQgb24gc29tZSBkZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzcwNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgRU5BQkxFKFBSRUNPTk5FQ1RfQUZURVJfUFJPQ0VTU19TV0FQ
KSBndWFyZCB0byBjb250cm9sIHByZWNvbm5lY3QgYmVoYXZpb3IuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojps
b2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKToKKwogMjAyMi0wMi0yMiAgRnVqaWkgSGly
b25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dW1dL
Ml0gYW5pbWF0aW9ucy9iYWNrZ3JvdW5kLXBvc2l0aW9uLmh0bWwgaXMgdGltaW5nIG91dApJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyOTAy
NjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDMyLDcgKzE0MzIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVl
c3RXaXRoTmF2aWdhCiAKICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKHByb2Nlc3MsIGxv
YWRQYXJhbWV0ZXJzKTsKIAorI2lmICFFTkFCTEUoUFJFQ09OTkVDVF9BRlRFUl9QUk9DRVNTX1NX
QVApCiAgICAgaWYgKHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6Ok5vKQorI2VuZGlmCiAgICAgICAgIHByZWNvbm5lY3RUbyh1cmwpOwog
CiAgICAgbmF2aWdhdGlvbi5zZXRJc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKHRydWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453002</attachid>
            <date>2022-02-23 11:19:43 -0800</date>
            <delta_ts>2022-03-03 10:03:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237055-20220223111942.patch</filename>
            <type>text/plain</type>
            <size>2777</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyOTAzNzgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAyLTIzICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVjb25uZWN0aW5nIGFmdGVyIHByb2Nlc3Mg
c3dhcCBpcyBhIHBhZ2UgbG9hZCB0aW1lIGltcHJvdmVtZW50IG9uIHNvbWUgZGV2aWNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDU1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlY29ubmVjdGlu
ZyBhZnRlciBwcm9jZXNzIHN3YXAgaXMgYSBwYWdlIGxvYWQgdGltZSBpbXByb3ZlbWVudCBvbiBt
b3N0IGRldmljZXMuIFRoaXMgcGF0Y2ggYWltcworICAgICAgICB0byBlbmFibGUgdGhpcyBiZWhh
dmlvciBvbmx5IGZvciBkZXZpY2VzIHdoZXJlIGl0IGltcHJvdmVzIHBhZ2UgbG9hZCB0aW1lIGFu
ZCBkaXNhYmxlIGl0IGZvciBkZXZpY2VzCisgICAgICAgIHdoZXJlIHBhZ2UgbG9hZCB0aW1lIGJl
Y29tZXMgbG9uZ2VyLiBJdCBpcyBub3Qgd2VsbCB1bmRlcnN0b29kIHdoeSB0aGUgYmVoYXZpb3Ig
aXMgZGV2aWNlIGRlcGVuZGVudC4KKyAgICAgICAgT2JzZXJ2YXRpb25zIHNob3cgdGhhdCBBcHBs
ZSBTaWxpY29uIE1hY3MgYmVuZWZpdCBmcm9tIGFsd2F5cyBwcmVjb25uZWN0aW5nLgorCisgICAg
ICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjItMDItMjMgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBUaHJlYWQgc2FmZXR5IGFuYWx5c2lz
IG1hY3JvcyBhcmUgY29uZnVzaW5nIGZvciBub24tTG9jayB1c2UtY2FzZXMKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGUuaAkocmV2aXNpb24gMjkwMzc4KQorKysgU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTU5LDMgKzk1OSw3IEBACiAjZGVmaW5l
IEVOQUJMRV9OT1RJRklDQVRJT05fRVZFTlQgMQogI2VuZGlmCiAjZW5kaWYKKworI2lmICFFTkFC
TEUoUFJFQ09OTkVDVF9BRlRFUl9QUk9DRVNTX1NXQVApICYmIENQVShBUk02NCkgJiYgUExBVEZP
Uk0oTUFDKQorI2RlZmluZSBFTkFCTEVfUFJFQ09OTkVDVF9BRlRFUl9QUk9DRVNTX1NXQVAgMQor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjkwMzc4KQorKysgU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wMi0yMyAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUHJlY29ubmVjdGlu
ZyBhZnRlciBwcm9jZXNzIHN3YXAgaXMgYSBwYWdlIGxvYWQgdGltZSBpbXByb3ZlbWVudCBvbiBz
b21lIGRldmljZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNzA1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVzZSBFTkFCTEUoUFJFQ09OTkVDVF9BRlRFUl9QUk9DRVNTX1NXQVApIGd1YXJkIHRvIGNv
bnRyb2wgcHJlY29ubmVjdCBiZWhhdmlvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb25TaGFyZWQpOgorCiAyMDIyLTAyLTIzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBEZS1pbml0aWFsaXplIEdT
dHJlYW1lciBiZWZvcmUgdGVybWluYXRpbmcgV2ViUHJvY2VzcwpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyOTAzNzgpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMy
LDcgKzE0MzIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhCiAK
ICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKHByb2Nlc3MsIGxvYWRQYXJhbWV0ZXJzKTsK
IAorI2lmICFFTkFCTEUoUFJFQ09OTkVDVF9BRlRFUl9QUk9DRVNTX1NXQVApCiAgICAgaWYgKHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Ok5vKQorI2VuZGlmCiAgICAgICAgIHByZWNvbm5lY3RUbyh1cmwpOwogCiAgICAgbmF2aWdhdGlv
bi5zZXRJc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKHRydWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453755</attachid>
            <date>2022-03-03 10:03:44 -0800</date>
            <delta_ts>2022-03-07 10:58:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237055-20220303100343.patch</filename>
            <type>text/plain</type>
            <size>10923</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5MDY2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAzLTAzICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVjb25uZWN0aW5nIGFm
dGVyIHByb2Nlc3Mgc3dhcCBpcyBhIHBhZ2UgbG9hZCB0aW1lIGltcHJvdmVtZW50IG9uIHNvbWUg
ZGV2aWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RXhwb3J0IG1ldGhvZC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRN
ZXRyaWNzLmg6CisKIDIwMjItMDMtMDEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFdoZW4gaW50ZXJwb2xhdGluZyBiZXR3ZWVuIHRyYW5zZm9ybSBs
aXN0cyBwYXJ0aWFsIHByZWZpeCBtYXRjaGVzIHNob3VsZCBub3QgdXNlIG1hdHJpeCBpbnRlcnBv
bGF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2Fk
TWV0cmljcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya0xvYWRNZXRyaWNzLmgJKHJldmlzaW9uIDI5MDY2OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDcgKzY1LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRNZXRyaWNzIHsKIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBOZXR3b3JrTG9hZE1ldHJpY3MoKTsKIAotICAgIHN0YXRpYyBjb25zdCBO
ZXR3b3JrTG9hZE1ldHJpY3MmIGVtcHR5TWV0cmljcygpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIGVtcHR5TWV0cmljcygpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgTmV0d29ya0xvYWRNZXRyaWNzIGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMjkwNzgxKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAyMi0wMy0wMyAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUHJlY29ubmVjdGluZyBhZnRlciBw
cm9jZXNzIHN3YXAgaXMgYSBwYWdlIGxvYWQgdGltZSBpbXByb3ZlbWVudCBvbiBzb21lIGRldmlj
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA1
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIHNv
bWUgZGV2aWNlcyB3ZSBzZWUgdGhhdCBkb2luZyBhIHNlY29uZCBwcmVjb25uZWN0IG9uIEhUVFAv
MS4xIGlzIGEgc2lnbmlmaWNhbnQgcGFnZSBsb2FkIHRpbWUgaW1wcm92ZW1lbnQuCisgICAgICAg
IFRoaXMgaXMgZHVlIHRvIHRoZSBmYWN0IHRoYXQgbW9zdCBwYWdlIGxvYWRzIG9uIEhUVFAvMS4x
IHdpbGwgb3BlbiBzZXZlcmFsIGNvbm5lY3Rpb25zLCBhbmQgaGF2aW5nIHR3bworICAgICAgICBw
cmVjb25uZWN0ZWQgY29ubmVjdGlvbnMgaW5zdGVhZCBvZiBvbmUsIHdpbGwgc3BlZWQgdXAgcGFn
ZSBsb2FkIHRpbWUuIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGlzIGJ5IHN0YXJ0aW5nCisgICAg
ICAgIGEgc2Vjb25kIHByZWNvbm5lY3QgYWZ0ZXIgdGhlIGZpcnN0IGhhcyBmaW5pc2hlZC4gSXQg
aXMgaW1wb3J0YW50IHRvIHdhaXQgdW50aWwgdGhlIGZpcnN0IHByZWNvbm5lY3QgaGFzCisgICAg
ICAgIGZpbmlzaGVkLCBvdGhlcndpc2UgdGhlIHNlY29uZCBwcmVjb25uZWN0IHdpbGwgZ28gdG8g
d2FzdGUsIHNpbmNlIHRoZSB1bmRlcmx5aW5nIG5ldHdvcmsgbGF5ZXIgZG9lcyBub3QgeWV0Cisg
ICAgICAgIGtub3cgaWYgdGhpcyBpcyBIVFRQLzEuMSBvciBub3QuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZW5kSDJQaW5nKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWNvbm5lY3RUbyk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RU
YXNrOjpQcmVjb25uZWN0VGFzayk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RUYXNrOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmRpZEZh
aWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmRpZEZpbmlzaCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2Vy
OjpwcmVjb25uZWN0Rm9yU3VicmVzb3VyY2UpOgorCiAyMDIyLTAzLTAzICBSb3NzIEtpcnNsaW5n
ICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyOTA3NzYp
OiBOZXR3b3JrU2Vzc2lvbjo6c3dTZXJ2ZXIgZGVwZW5kcyBvbiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjkwNjY4KQor
KysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5Niw3ICs2OTYsNyBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZW5kCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihtYWtlVW5leHBlY3RlZChpbnRlcm5hbEVycm9yKHBhcmFtZXRlcnMucmVxdWVzdC51cmwo
KSkpKTsKIAogICAgIFVSTCB1cmwgPSBwYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCk7Ci0gICAgYXV0
byogdGFzayA9IG5ldyBQcmVjb25uZWN0VGFzaygqbmV0d29ya1Nlc3Npb24sIFdURk1vdmUocGFy
YW1ldGVycyksIFtdIChjb25zdCBSZXNvdXJjZUVycm9yJikgeyB9KTsKKyAgICBhdXRvKiB0YXNr
ID0gbmV3IFByZWNvbm5lY3RUYXNrKCpuZXR3b3JrU2Vzc2lvbiwgV1RGTW92ZShwYXJhbWV0ZXJz
KSwgW10gKGNvbnN0IFJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1l
dHJpY3MmKSB7IH0pOwogICAgIHRhc2stPnNldEgyUGluZ0NhbGxiYWNrKHVybCwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogICAgIHRhc2stPnN0YXJ0KCk7CiAjZWxzZQpAQCAtNzI2LDcg
KzcyNiw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWMKICNpZiBF
TkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCiAgICAgYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNz
aW9uKCk7CiAgICAgaWYgKHNlc3Npb24gJiYgc2Vzc2lvbi0+YWxsb3dzU2VydmVyUHJlY29ubmVj
dCgpKSB7Ci0gICAgICAgIChuZXcgUHJlY29ubmVjdFRhc2soKnNlc3Npb24sIFdURk1vdmUobG9h
ZFBhcmFtZXRlcnMpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0gKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSB7CisgICAgICAgIChuZXcgUHJlY29u
bmVjdFRhc2soKnNlc3Npb24sIFdURk1vdmUobG9hZFBhcmFtZXRlcnMpLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IFJlc291cmNlRXJyb3Im
IGVycm9yLCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmKSB7CiAgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihlcnJvcik7CiAgICAgICAgIH0pKS0+c3RhcnQoKTsKICAgICAg
ICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI5MDY2OCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIzLDEwICsx
MzIzLDE4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZWNvbm5lY3RUbyhQQUw6OlMKICAgICBw
YXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k7CiAgICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5
OjpZZXM7CiAKKyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVyc0ZvckFkZGl0aW9u
YWxQcmVjb25uZWN0ID0gcGFyYW1ldGVyczsKKwogICAgIHNlc3Npb24tPm5ldHdvcmtMb2FkU2No
ZWR1bGVyKCkuc3RhcnRlZFByZWNvbm5lY3RGb3JNYWluUmVzb3VyY2UodXJsLCB1c2VyQWdlbnQp
OwotICAgIGF1dG8gdGFzayA9IG5ldyBQcmVjb25uZWN0VGFzaygqc2Vzc2lvbiwgV1RGTW92ZShw
YXJhbWV0ZXJzKSwgW3Nlc3Npb24gPSBXZWFrUHRyIHsgKnNlc3Npb24gfSwgdXJsLCB1c2VyQWdl
bnRdKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKSB7Ci0gICAgICAgIGlmIChz
ZXNzaW9uKQorICAgIGF1dG8gdGFzayA9IG5ldyBQcmVjb25uZWN0VGFzaygqc2Vzc2lvbiwgV1RG
TW92ZShwYXJhbWV0ZXJzKSwgW3Nlc3Npb24gPSBXZWFrUHRyIHsgKnNlc3Npb24gfSwgdXJsLCB1
c2VyQWdlbnQsIHBhcmFtZXRlcnNGb3JBZGRpdGlvbmFsUHJlY29ubmVjdCA9IFdURk1vdmUocGFy
YW1ldGVyc0ZvckFkZGl0aW9uYWxQcmVjb25uZWN0KV0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYgZXJyb3IsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbWV0cmljcykg
bXV0YWJsZSB7CisgICAgICAgIGlmIChzZXNzaW9uKSB7CisgICAgICAgICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShtZXRyaWNzLnByb3RvY29sLCAiaHR0cC8xLjEiKSkgeworICAgICAg
ICAgICAgICAgIGF1dG8gdGFzayA9IG5ldyBQcmVjb25uZWN0VGFzaygqc2Vzc2lvbiwgV1RGTW92
ZShwYXJhbWV0ZXJzRm9yQWRkaXRpb25hbFByZWNvbm5lY3QpLCBbXShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBt
ZXRyaWNzKSB7IH0pOworICAgICAgICAgICAgICAgIHRhc2stPnN0YXJ0KCk7CisgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgIHNlc3Npb24tPm5ldHdvcmtMb2FkU2NoZWR1bGVyKCkuZmluaXNo
ZWRQcmVjb25uZWN0Rm9yTWFpblJlc291cmNlKHVybCwgdXNlckFnZW50LCBlcnJvcik7CisgICAg
ICAgIH0KICAgICB9KTsKICAgICB0YXNrLT5zZXRUaW1lb3V0KDEwX3MpOwogICAgIHRhc2stPnN0
YXJ0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5l
Y3RUYXNrLmNwcAkocmV2aXNpb24gMjkwNjY4KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9QcmVjb25uZWN0VGFzay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEwICszOSwxMCBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVByZWNv
bm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzayhOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24s
IE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgUmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorUHJlY29ubmVj
dFRhc2s6OlByZWNvbm5lY3RUYXNrKE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgTmV0
d29ya0xvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgOiBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKQogICAgICwgbV90aW1lb3V0KDYwX3MpCi0gICAgLCBtX3RpbWVv
dXRUaW1lcihbdGhpc10geyBkaWRGaW5pc2goUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBt
X25ldHdvcmtMb2FkLT5wYXJhbWV0ZXJzKCkucmVxdWVzdC51cmwoKSwgIlByZWNvbm5lY3Rpb24g
dGltZWQgb3V0Il9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpUaW1lb3V0IH0pOyB9KQorLCBtX3Rp
bWVvdXRUaW1lcihbdGhpc10geyBkaWRGaW5pc2goUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAw
LCBtX25ldHdvcmtMb2FkLT5wYXJhbWV0ZXJzKCkucmVxdWVzdC51cmwoKSwgIlByZWNvbm5lY3Rp
b24gdGltZWQgb3V0Il9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpUaW1lb3V0IH0sIHsgfSk7IH0p
CiB7CiAgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OlByZWNv
bm5lY3RUYXNrKCkiLCB0aGlzKTsKIApAQCAtODQsMTYgKzg0LDE2IEBAIHZvaWQgUHJlY29ubmVj
dFRhc2s6OmRpZFJlY2VpdmVCdWZmZXIoY28KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAotdm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9h
ZE1ldHJpY3MmKQordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBO
ZXR3b3JrTG9hZE1ldHJpY3MmIG1ldHJpY3MpCiB7CiAgICAgUkVMRUFTRV9MT0coTmV0d29yaywg
IiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZEZpbmlzaExvYWRpbmciLCB0aGlzKTsKLSAgICBkaWRG
aW5pc2goeyB9KTsKKyAgICBkaWRGaW5pc2goeyB9LCBtZXRyaWNzKTsKIH0KIAogdm9pZCBQcmVj
b25uZWN0VGFzazo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7
CiAgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZEZhaWxM
b2FkaW5nLCBlcnJvcl9jb2RlPSVkIiwgdGhpcywgZXJyb3IuZXJyb3JDb2RlKCkpOwotICAgIGRp
ZEZpbmlzaChlcnJvcik7CisgICAgZGlkRmluaXNoKGVycm9yLCBOZXR3b3JrTG9hZE1ldHJpY3M6
OmVtcHR5TWV0cmljcygpKTsKIH0KIAogdm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkU2VuZERhdGEo
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0
ZXNUb0JlU2VudCkKQEAgLTEwMSwxMCArMTAxLDEwIEBAIHZvaWQgUHJlY29ubmVjdFRhc2s6OmRp
ZFNlbmREYXRhKHVuc2lnbmUKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBQ
cmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9p
ZCBQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBj
b25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG1ldHJpY3MpCiB7CiAgICAgaWYgKG1fY29tcGxldGlv
bkhhbmRsZXIpCi0gICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIoZXJyb3IpOworICAgICAgICBt
X2NvbXBsZXRpb25IYW5kbGVyKGVycm9yLCBtZXRyaWNzKTsKICAgICBkZWxldGUgdGhpczsKIH0K
IApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2su
aAkocmV2aXNpb24gMjkwNjY4KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVj
b25uZWN0VGFzay5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIE5ldHdv
cmtTZXNzaW9uOwogCiBjbGFzcyBQcmVjb25uZWN0VGFzayBmaW5hbCA6IHB1YmxpYyBOZXR3b3Jr
TG9hZENsaWVudCB7CiBwdWJsaWM6Ci0gICAgUHJlY29ubmVjdFRhc2soTmV0d29ya1Nlc3Npb24m
LCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJik+JiYpOworICAgIFByZWNvbm5lY3RUYXNrKE5ldHdvcmtT
ZXNzaW9uJiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2Fk
TWV0cmljcyYpPiYmKTsKICAgICB+UHJlY29ubmVjdFRhc2soKTsKIAogICAgIHZvaWQgc2V0SDJQ
aW5nQ2FsbGJhY2soY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxX
VEY6OlNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+JiYpPiYmKTsKQEAgLTU5LDEwICs1
OSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhjb25zdCBXZWJDb3Jl
OjpOZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZhaWxMb2FkaW5nKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKIAotICAgIHZvaWQgZGlkRmluaXNo
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGRpZEZpbmlzaChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRy
aWNzJik7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0xvYWQ+IG1fbmV0d29ya0xvYWQ7
Ci0gICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
Jik+IG1fY29tcGxldGlvbkhhbmRsZXI7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRy
aWNzJik+IG1fY29tcGxldGlvbkhhbmRsZXI7CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAg
V2ViQ29yZTo6VGltZXIgbV90aW1lb3V0VGltZXI7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCShyZXZpc2lvbiAyOTA2NjgpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
TG9hZE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpwcmVjb25uZWN0RgogICAgIHBhcmFtZXRlcnMuc2hvdWxk
UHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVzOwogICAgIHBhcmFtZXRlcnMucmVx
dWVzdCA9IGNvbnN0cnVjdFJldmFsaWRhdGlvblJlcXVlc3Qoc3VicmVzb3VyY2VJbmZvLmtleSgp
LCBzdWJyZXNvdXJjZUluZm8sIGVudHJ5KTsKICAgICBwYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4gPSBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOwotICAgIChuZXcg
UHJlY29ubmVjdFRhc2soKm5ldHdvcmtTZXNzaW9uLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbXShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgeyB9KSktPnN0YXJ0KCk7CisgICAgKG5ldyBQ
cmVjb25uZWN0VGFzaygqbmV0d29ya1Nlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycyksIFtdKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1l
dHJpY3MmKSB7IH0pKS0+c3RhcnQoKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHN1YnJlc291
cmNlSW5mbyk7CiAgICAgVU5VU0VEX1BBUkFNKGVudHJ5KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454003</attachid>
            <date>2022-03-07 10:58:45 -0800</date>
            <delta_ts>2022-03-07 18:13:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237055-20220307105844.patch</filename>
            <type>text/plain</type>
            <size>12709</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAzLTA3ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQcmVjb25uZWN0aW5nIGFmdGVyIHByb2Nlc3Mg
c3dhcCBpcyBhIHBhZ2UgbG9hZCB0aW1lIGltcHJvdmVtZW50IG9uIHNvbWUgZGV2aWNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDU1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84OTYzODg3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5BQkxFIGd1YXJkIGZvciB0aGlzIGJlaGF2aW9y
LgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMi0wMy0wNCAg
U2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbnVsbCBjaGVj
ayBmb3IgcGF0aCBpbiBtYWtlQWxsRGlyZWN0b3JpZXMKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZUNvY29hLmgJKHJldmlzaW9uIDI5MDgyOSkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaAkod29ya2luZyBjb3B5KQpAQCAtNzU4LDMgKzc1OCw3IEBACiAjZGVm
aW5lIEVOQUJMRV9BUktJVF9JTkxJTkVfUFJFVklFV19BTklNQVRJT05TX0NPTlRST0wgMQogI2Rl
ZmluZSBFTkFCTEVfQVJLSVRfSU5MSU5FX1BSRVZJRVdfQVVESU9fQ09OVFJPTCAxCiAjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9BRERJVElPTkFMX1BSRUNPTk5FQ1RfT05fSFRUUF8xWCkg
JiYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBFTkFCTEVfQURESVRJT05BTF9QUkVDT05ORUNUX09O
X0hUVFBfMVggMQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyOTA4MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAor
MjAyMi0wMy0wNyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUHJlY29ubmVjdGluZyBhZnRlciBwcm9jZXNzIHN3YXAgaXMgYSBwYWdlIGxvYWQgdGltZSBp
bXByb3ZlbWVudCBvbiBzb21lIGRldmljZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzA1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODk2Mzg4
NzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhw
b3J0IG1ldGhvZC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRy
aWNzLmg6CisKIDIwMjItMDMtMDQgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBJdGVyYXRpb24gdG8gc2VhcmNoIGZvciBsZWFzdCBhY3RpdmUgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSBjb3VsZCB1c2UgbWluX2VsZW1lbnQKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaAko
cmV2aXNpb24gMjkwODI5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrTG9hZE1ldHJpY3MuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBjbGFzcyBO
ZXR3b3JrTG9hZE1ldHJpY3MgewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIE5ldHdvcmtM
b2FkTWV0cmljcygpOwogCi0gICAgc3RhdGljIGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgZW1w
dHlNZXRyaWNzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IE5ldHdvcmtMb2Fk
TWV0cmljcyYgZW1wdHlNZXRyaWNzKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBOZXR3b3JrTG9h
ZE1ldHJpY3MgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
OTA4MjkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDIyLTAzLTA3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBQcmVjb25uZWN0aW5nIGFmdGVyIHByb2Nlc3Mgc3dhcCBpcyBhIHBhZ2Ug
bG9hZCB0aW1lIGltcHJvdmVtZW50IG9uIHNvbWUgZGV2aWNlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS84OTYzODg3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBPbiBzb21lIGRldmljZXMgd2Ugc2VlIHRoYXQgZG9pbmcgYSBzZWNvbmQgcHJlY29u
bmVjdCBvbiBIVFRQLzEuMSBpcyBhIHNpZ25pZmljYW50IHBhZ2UgbG9hZCB0aW1lIGltcHJvdmVt
ZW50LgorICAgICAgICBUaGlzIGlzIGR1ZSB0byB0aGUgZmFjdCB0aGF0IG1vc3QgcGFnZSBsb2Fk
cyBvbiBIVFRQLzEuMSB3aWxsIG9wZW4gc2V2ZXJhbCBjb25uZWN0aW9ucywgYW5kIGhhdmluZyB0
d28KKyAgICAgICAgcHJlY29ubmVjdGVkIGNvbm5lY3Rpb25zIGluc3RlYWQgb2Ygb25lLCB3aWxs
IHNwZWVkIHVwIHBhZ2UgbG9hZCB0aW1lLiBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhpcyBieSBz
dGFydGluZworICAgICAgICBhIHNlY29uZCBwcmVjb25uZWN0IGFmdGVyIHRoZSBmaXJzdCBoYXMg
ZmluaXNoZWQuIEl0IGlzIGltcG9ydGFudCB0byB3YWl0IHVudGlsIHRoZSBmaXJzdCBwcmVjb25u
ZWN0IGhhcworICAgICAgICBmaW5pc2hlZCwgb3RoZXJ3aXNlIHRoZSBzZWNvbmQgcHJlY29ubmVj
dCB3aWxsIGdvIHRvIHdhc3RlLCBzaW5jZSB0aGUgdW5kZXJseWluZyBuZXR3b3JrIGxheWVyIGRv
ZXMgbm90IHlldAorICAgICAgICBrbm93IGlmIHRoaXMgaXMgSFRUUC8xLjEgb3Igbm90LiBTaW5j
ZSB3ZSBkbyBub3Qgc2VlIHBhZ2UgbG9hZCB0aW1lIGltcHJvdmVtZW50IG9uIGlPUyB3aXRoIHRo
aXMgYmVoYXZpb3IsCisgICAgICAgIGl0IGlzIGN1cnJlbnRseSBvbmx5IGVuYWJsZWQgZm9yIG1h
Y09TLiBUaGUgbmV4dCBzdGVwIGlzIHRvIGludmVzdGlnYXRlIHdoeSBpdCBkb2VzIG5vdCBzZWVt
IHRvIGJlIGEgcGFnZQorICAgICAgICBsb2FkIHRpbWUgaW1wcm92ZW1lbnQgb24gaU9TLiBXZSBw
cm9iYWJseSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgbWFpbiByZXNvdXJjZSBsb2FkIGhhcyBzdGFy
dGVkIGJlZm9yZSB3ZQorICAgICAgICBzdGFydCB0aGUgc2Vjb25kIHByZWNvbmVjdC4gVGhpcyB3
aWxsIGF2b2lkIHRoYXQgdGhlIHNlY29uZCBwcmVjb25uZWN0IHJldHVybnMgaW1tZWRpYXRlbHku
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpz
ZW5kSDJQaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnByZWNvbm5lY3RUbyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRvKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlByZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzayk6CisgICAgICAgIChXZWJLaXQ6
OlByZWNvbm5lY3RUYXNrOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJl
Y29ubmVjdFRhc2s6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVj
dFRhc2s6OmRpZEZpbmlzaCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRh
c2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVj
dWxhdGl2ZUxvYWRNYW5hZ2VyOjpwcmVjb25uZWN0Rm9yU3VicmVzb3VyY2UpOgorCiAyMDIyLTAz
LTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBMaWJXZWJS
VENDb2RlY3M6OnNldEVuY29kZVJhdGVzIHNob3VsZCBzZW5kIExpYldlYlJUQ0NvZGVjc1Byb3h5
OjpTZXRFbmNvZGVSYXRlcyBvbmx5IHdoZW4gdGhlIGVuY29kZXIgaXMgbGl2ZQpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI5MDgyOSkKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OTIsNyArNjkyLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6c2VuZAogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhw
ZWN0ZWQoaW50ZXJuYWxFcnJvcihwYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkpKSk7CiAKICAgICBV
UkwgdXJsID0gcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpOwotICAgIGF1dG8qIHRhc2sgPSBuZXcg
UHJlY29ubmVjdFRhc2soKm5ldHdvcmtTZXNzaW9uLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbXSAo
Y29uc3QgUmVzb3VyY2VFcnJvciYpIHsgfSk7CisgICAgYXV0byogdGFzayA9IG5ldyBQcmVjb25u
ZWN0VGFzaygqbmV0d29ya1Nlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycyksIFtdIChjb25zdCBS
ZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJikgeyB9KTsK
ICAgICB0YXNrLT5zZXRIMlBpbmdDYWxsYmFjayh1cmwsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICB0YXNrLT5zdGFydCgpOwogI2Vsc2UKQEAgLTcyMiw3ICs3MjIsNyBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVjCiAjaWYgRU5BQkxFKFNFUlZFUl9Q
UkVDT05ORUNUKQogICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbigpOwogICAgIGlm
IChzZXNzaW9uICYmIHNlc3Npb24tPmFsbG93c1NlcnZlclByZWNvbm5lY3QoKSkgewotICAgICAg
ICAobmV3IFByZWNvbm5lY3RUYXNrKCpzZXNzaW9uLCBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikgeworICAgICAgICAobmV3IFByZWNvbm5lY3RUYXNrKCpzZXNz
aW9uLCBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3Qg
V2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJikgewogICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZXJyb3IpOwogICAgICAgICB9KSktPnN0YXJ0KCk7CiAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CShyZXZpc2lvbiAyOTA4MjkpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyMywxMCArMTMyMywyMCBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwcmVjb25uZWN0VG8oUEFMOjpTCiAgICAgcGFyYW1ldGVycy5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIHBhcmFt
ZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVzOwogCisgICAg
TmV0d29ya0xvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnNGb3JBZGRpdGlvbmFsUHJlY29ubmVjdCA9
IHBhcmFtZXRlcnM7CisKICAgICBzZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLnN0YXJ0
ZWRQcmVjb25uZWN0Rm9yTWFpblJlc291cmNlKHVybCwgdXNlckFnZW50KTsKLSAgICBhdXRvIHRh
c2sgPSBuZXcgUHJlY29ubmVjdFRhc2soKnNlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycyksIFtz
ZXNzaW9uID0gV2Vha1B0ciB7ICpzZXNzaW9uIH0sIHVybCwgdXNlckFnZW50XShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikgewotICAgICAgICBpZiAoc2Vzc2lvbikKKyAgICBh
dXRvIHRhc2sgPSBuZXcgUHJlY29ubmVjdFRhc2soKnNlc3Npb24sIFdURk1vdmUocGFyYW1ldGVy
cyksIFtzZXNzaW9uID0gV2Vha1B0ciB7ICpzZXNzaW9uIH0sIHVybCwgdXNlckFnZW50LCBwYXJh
bWV0ZXJzRm9yQWRkaXRpb25hbFByZWNvbm5lY3QgPSBXVEZNb3ZlKHBhcmFtZXRlcnNGb3JBZGRp
dGlvbmFsUHJlY29ubmVjdCldKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBj
b25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG1ldHJpY3MpIG11dGFibGUgeworICAg
ICAgICBpZiAoc2Vzc2lvbikgewogICAgICAgICAgICAgc2Vzc2lvbi0+bmV0d29ya0xvYWRTY2hl
ZHVsZXIoKS5maW5pc2hlZFByZWNvbm5lY3RGb3JNYWluUmVzb3VyY2UodXJsLCB1c2VyQWdlbnQs
IGVycm9yKTsKKyNpZiBFTkFCTEUoQURESVRJT05BTF9QUkVDT05ORUNUX09OX0hUVFBfMVgpCisg
ICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShtZXRyaWNzLnByb3RvY29sLCAi
aHR0cC8xLjEiKSkgeworICAgICAgICAgICAgICAgIGF1dG8gcGFyYW1ldGVycyA9IHBhcmFtZXRl
cnNGb3JBZGRpdGlvbmFsUHJlY29ubmVjdDsKKyAgICAgICAgICAgICAgICBhdXRvIHRhc2sgPSBu
ZXcgUHJlY29ubmVjdFRhc2soKnNlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycyksIFtdKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9h
ZE1ldHJpY3MmIG1ldHJpY3MpIHsgfSk7CisgICAgICAgICAgICAgICAgdGFzay0+c3RhcnQoKTsK
KyAgICAgICAgICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoQURESVRJT05BTF9QUkVDT05ORUNUX09O
X0hUVFBfMVgpCisgICAgICAgIH0KICAgICB9KTsKICAgICB0YXNrLT5zZXRUaW1lb3V0KDEwX3Mp
OwogICAgIHRhc2stPnN0YXJ0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByZWNvbm5lY3RUYXNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcAkocmV2aXNpb24gMjkwODI5KQorKysgU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDEwICszOSwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLVByZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzayhOZXR3b3JrU2Vzc2lvbiYg
bmV0d29ya1Nlc3Npb24sIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQorUHJlY29ubmVjdFRhc2s6OlByZWNvbm5lY3RUYXNrKE5ldHdvcmtTZXNzaW9uJiBuZXR3
b3JrU2Vzc2lvbiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6TmV0d29y
a0xvYWRNZXRyaWNzJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgOiBtX2NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQogICAgICwgbV90aW1lb3V0KDYwX3Mp
Ci0gICAgLCBtX3RpbWVvdXRUaW1lcihbdGhpc10geyBkaWRGaW5pc2goUmVzb3VyY2VFcnJvciB7
IFN0cmluZygpLCAwLCBtX25ldHdvcmtMb2FkLT5wYXJhbWV0ZXJzKCkucmVxdWVzdC51cmwoKSwg
IlByZWNvbm5lY3Rpb24gdGltZWQgb3V0Il9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpUaW1lb3V0
IH0pOyB9KQorICAgICwgbV90aW1lb3V0VGltZXIoW3RoaXNdIHsgZGlkRmluaXNoKFJlc291cmNl
RXJyb3IgeyBTdHJpbmcoKSwgMCwgbV9uZXR3b3JrTG9hZC0+cGFyYW1ldGVycygpLnJlcXVlc3Qu
dXJsKCksICJQcmVjb25uZWN0aW9uIHRpbWVkIG91dCJfcywgUmVzb3VyY2VFcnJvcjo6VHlwZTo6
VGltZW91dCB9LCB7IH0pOyB9KQogewogICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFBy
ZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzaygpIiwgdGhpcyk7CiAKQEAgLTg0LDE2ICs4NCwx
NiBAQCB2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlQnVmZmVyKGNvCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZEZpbmlzaExvYWRp
bmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJikKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZEZp
bmlzaExvYWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBtZXRyaWNzKQogewogICAgIFJF
TEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpkaWRGaW5pc2hMb2FkaW5n
IiwgdGhpcyk7Ci0gICAgZGlkRmluaXNoKHsgfSk7CisgICAgZGlkRmluaXNoKHsgfSwgbWV0cmlj
cyk7CiB9CiAKIHZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZEZhaWxMb2FkaW5nKGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yKQogewogICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNv
bm5lY3RUYXNrOjpkaWRGYWlsTG9hZGluZywgZXJyb3JfY29kZT0lZCIsIHRoaXMsIGVycm9yLmVy
cm9yQ29kZSgpKTsKLSAgICBkaWRGaW5pc2goZXJyb3IpOworICAgIGRpZEZpbmlzaChlcnJvciwg
TmV0d29ya0xvYWRNZXRyaWNzOjplbXB0eU1ldHJpY3MoKSk7CiB9CiAKIHZvaWQgUHJlY29ubmVj
dFRhc2s6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVk
IGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCkBAIC0xMDEsMTAgKzEwMSwxMCBAQCB2b2lk
IFByZWNvbm5lY3RUYXNrOjpkaWRTZW5kRGF0YSh1bnNpZ25lCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CiAKLXZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZEZpbmlzaChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZEZpbmlzaChjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBtZXRyaWNzKQogewog
ICAgIGlmIChtX2NvbXBsZXRpb25IYW5kbGVyKQotICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVy
KGVycm9yKTsKKyAgICAgICAgbV9jb21wbGV0aW9uSGFuZGxlcihlcnJvciwgbWV0cmljcyk7CiAg
ICAgZGVsZXRlIHRoaXM7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJlY29ubmVjdFRhc2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByZWNvbm5lY3RUYXNrLmgJKHJldmlzaW9uIDI5MDgyOSkKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyAr
NDEsNyBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIAogY2xhc3MgUHJlY29ubmVjdFRhc2sgZmlu
YWwgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQgewogcHVibGljOgotICAgIFByZWNvbm5lY3RU
YXNrKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiYmKTsKKyAgICBQcmVj
b25uZWN0VGFzayhOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmKT4mJik7CiAgICAgflByZWNvbm5lY3RUYXNrKCk7
CiAKICAgICB2b2lkIHNldEgyUGluZ0NhbGxiYWNrKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8V1RGOjpTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYm
KT4mJik7CkBAIC01OSwxMCArNTksMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CiAgICAgdm9p
ZCBkaWRGYWlsTG9hZGluZyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CiAK
LSAgICB2b2lkIGRpZEZpbmlzaChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAg
dm9pZCBkaWRGaW5pc2goY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNv
cmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtM
b2FkPiBtX25ldHdvcmtMb2FkOwotICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworICAgIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNv
cmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpPiBtX2NvbXBsZXRpb25IYW5kbGVyOwogICAgIFNlY29u
ZHMgbV90aW1lb3V0OwogICAgIFdlYkNvcmU6OlRpbWVyIG1fdGltZW91dFRpbWVyOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjkwODI5KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcw
LDcgKzQ3MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cHJlY29ubmVjdEYKICAg
ICBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6OlllczsK
ICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBjb25zdHJ1Y3RSZXZhbGlkYXRpb25SZXF1ZXN0KHN1
YnJlc291cmNlSW5mby5rZXkoKSwgc3VicmVzb3VyY2VJbmZvLCBlbnRyeSk7CiAgICAgcGFyYW1l
dGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluID0gaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbjsKLSAgICAobmV3IFByZWNvbm5lY3RUYXNrKCpuZXR3b3JrU2Vzc2lvbiwgV1RGTW92
ZShwYXJhbWV0ZXJzKSwgW10oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIHsgfSkpLT5z
dGFydCgpOworICAgIChuZXcgUHJlY29ubmVjdFRhc2soKm5ldHdvcmtTZXNzaW9uLCBXVEZNb3Zl
KHBhcmFtZXRlcnMpLCBbXShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2Vi
Q29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJikgeyB9KSktPnN0YXJ0KCk7CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTShzdWJyZXNvdXJjZUluZm8pOwogICAgIFVOVVNFRF9QQVJBTShlbnRyeSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>