<?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>211207</bug_id>
          
          <creation_ts>2020-04-29 14:33:40 -0700</creation_ts>
          <short_desc>REGRESSION(r260791) Network process fails to suspend promptly</short_desc>
          <delta_ts>2020-06-02 16:21:32 -0700</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=212608</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>211080</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1647160</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-29 14:33:40 -0700</bug_when>
    <thetext>Network process fails to suspend promptly because NetworkProcess::prepareToSuspend() does not call its completion handler.

This issue is with this code and was caused by using the same WorkQueue for all ITP stores:
&quot;&quot;&quot;
    forEachNetworkSession([&amp;callbackAggregator](auto&amp; networkSession) {
        if (auto* resourceLoadStatistics = networkSession.resourceLoadStatistics()) {
            if (!resourceLoadStatistics-&gt;isEphemeral()) {
                WTFLogAlways(&quot;CHRIS: resourceLoadStatistics::BEGIN&quot;);
                resourceLoadStatistics-&gt;suspend([callbackAggregator] { WTFLogAlways(&quot;CHRIS: resourceLoadStatistics::END&quot;); });
            }
        }
    });
&quot;&quot;&quot;

On first loop iteration, resourceLoadStatistics-&gt;suspend() hangs/suspends the WorkQueue so every follow-up iteration will hang when calling resourceLoadStatistics-&gt;suspend().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647170</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-29 15:03:42 -0700</bug_when>
    <thetext>Will try a static suspend() for the static WorkQueue, instead of suspending each ITP store individually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647181</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-29 15:26:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/62620454&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647183</commentid>
    <comment_count>3</comment_count>
      <attachid>398002</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-29 15:35:49 -0700</bug_when>
    <thetext>Created attachment 398002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647184</commentid>
    <comment_count>4</comment_count>
      <attachid>398002</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-29 15:36:37 -0700</bug_when>
    <thetext>Comment on attachment 398002
Patch

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

&gt; Source/WebKit/ChangeLog:12
&gt; +

Trying to write an API test for this. For now, I validated this manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647186</commentid>
    <comment_count>5</comment_count>
      <attachid>398002</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-29 15:40:21 -0700</bug_when>
    <thetext>Comment on attachment 398002
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:-1385
&gt; -    ASSERT(RunLoop::isMain() &amp;&amp; !isEphemeral());

Why not keep the RunLoop::isMain() assertion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647187</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-04-29 15:41:38 -0700</bug_when>
    <thetext>Why not just call the completion handler, if that was the bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647188</commentid>
    <comment_count>7</comment_count>
      <attachid>398002</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-04-29 15:42:12 -0700</bug_when>
    <thetext>Comment on attachment 398002
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:67
&gt; +WebResourceLoadStatisticsStore::State WebResourceLoadStatisticsStore::suspendedState { WebResourceLoadStatisticsStore::State::Running };
&gt; +Lock WebResourceLoadStatisticsStore::suspendedStateLock;
&gt; +Condition WebResourceLoadStatisticsStore::suspendedStateChangeCondition;

Do these need to be globals instead of data members?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647189</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-29 15:43:35 -0700</bug_when>
    <thetext>They&apos;re static, so just as global as sharedStatisticsQueue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647191</commentid>
    <comment_count>9</comment_count>
      <attachid>398003</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-29 16:00:19 -0700</bug_when>
    <thetext>Created attachment 398003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647193</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-29 16:01:43 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #7)
&gt; Comment on attachment 398002 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=398002&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:67
&gt; &gt; +WebResourceLoadStatisticsStore::State WebResourceLoadStatisticsStore::suspendedState { WebResourceLoadStatisticsStore::State::Running };
&gt; &gt; +Lock WebResourceLoadStatisticsStore::suspendedStateLock;
&gt; &gt; +Condition WebResourceLoadStatisticsStore::suspendedStateChangeCondition;
&gt; 
&gt; Do these need to be globals instead of data members?

Could you clarify? They are global in that they are static. Would you like me to move those statics to the cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647210</commentid>
    <comment_count>11</comment_count>
      <attachid>398010</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-29 16:59:27 -0700</bug_when>
    <thetext>Created attachment 398010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647211</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-29 16:59:42 -0700</bug_when>
    <thetext>I added an API test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647223</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-29 17:50:07 -0700</bug_when>
    <thetext>Committed r260928: &lt;https://trac.webkit.org/changeset/260928&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398010.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398002</attachid>
            <date>2020-04-29 15:35:49 -0700</date>
            <delta_ts>2020-04-29 16:00:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211207-20200429153549.patch</filename>
            <type>text/plain</type>
            <size>7396</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmZGRiYTJlMmI1OTExYzkz
YjViYWM1MDkzZDNjNjRkYmU1NWFiYTcuLmY5MmY0ZThlYzU1ODM5MDI0ZjA1ZGJmZmViYTA0ZGJj
NDBlNWVjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDQtMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNjA3OTEpIE5l
dHdvcmsgcHJvY2VzcyBmYWlscyB0byBzdXNwZW5kIHByb21wdGx5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyMDcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzYyNjIwNDU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFmdGVyIHIyNjA3OTEsIGFsbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUgaW5zdGFuY2VzIHNoYXJlIGEgc2luZ2xlIFdvcmtRdWV1ZS4KKyAgICAgICAgQXMgYSByZXN1
bHQsIHRoZSBsb2dpYyB0byBzdXNwZW5kIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSdz
IFdvcmtRdWV1ZXMgaW4KKyAgICAgICAgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQo
KSBuZWVkcyB0byBnZXQgdXBkYXRlZCB0byByZWZsZWN0IHRoaXMuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVu
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVz
dW1lKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cmVzdW1lKToKKwogMjAyMC0w
NC0yOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW1dL
Ml0gQWRkIHRpbWVvdXQgZm9yICJDbGllbnQgbmF2aWdhdGlvbiIgZm9yZWdyb3VuZCBhc3NlcnRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5k
ZXggNzY4MjRjMmQ2MzFmNWU5MWY1YmIxZjA3MDY2ZjUwN2FmYjAzMjliMS4uOWJmMGQzZDYyOWE2
NTUzZWFhYjU2Y2NhOGVkOGM3MDE5ZjNlY2I5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTYyLDYgKzYyLDEwIEBACiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCitXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OlN0YXRlIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVu
ZGVkU3RhdGUgeyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlN0YXRlOjpSdW5uaW5n
IH07CitMb2NrIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZGVkU3RhdGVM
b2NrOworQ29uZGl0aW9uIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZGVk
U3RhdGVDaGFuZ2VDb25kaXRpb247CisKIGNvbnN0IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
JiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1vbml0b3JlZERhdGFUeXBlcygpCiB7
CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+PiBk
YXRhVHlwZXMoc3RkOjppbml0aWFsaXplcl9saXN0PFdlYnNpdGVEYXRhVHlwZT4oewpAQCAtMTM4
MSw0MyArMTM4NSwzOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6YWdn
cmVnYXRlZFRoaXJkUGFydHlEYXRhKENvbXBsZXRpb25IYW5kbGVyPAogCiB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgLy8gU3VzcGVuZCBpcyBuZWVkZWQgdG8gbWFu
YWdlIHRoZSBkYXRhYmFzZSBzdG9yZSB3aGljaCBpcyBub3QgdXNlZCBpbiBlcGhlbWVyYWwgc2Vz
c2lvbnMuCi0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpICYmICFpc0VwaGVtZXJhbCgpKTsK
LQogICAgIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIGNvbXBsZXRpb25IYW5kbGVyQ2Fs
bGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICBMb2NrZXI8TG9jaz4gc3RhdGVM
b2NrZXIobV9zdGF0ZUxvY2spOwotICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpSdW5uaW5nKQor
ICAgIExvY2tlcjxMb2NrPiBzdGF0ZUxvY2tlcihzdXNwZW5kZWRTdGF0ZUxvY2spOworICAgIGlm
IChzdXNwZW5kZWRTdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykKICAgICAgICAgcmV0dXJuOwotICAg
IG1fc3RhdGUgPSBTdGF0ZTo6V2lsbFN1c3BlbmQ7CisgICAgc3VzcGVuZGVkU3RhdGUgPSBTdGF0
ZTo6V2lsbFN1c3BlbmQ7CiAKLSAgICBwb3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIg
PSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldICgpIG11dGFibGUgewotICAgICAg
ICBMb2NrZXI8TG9jaz4gc3RhdGVMb2NrZXIobV9zdGF0ZUxvY2spOwotICAgICAgICBBU1NFUlQo
bV9zdGF0ZSAhPSBTdGF0ZTo6U3VzcGVuZGVkKTsKKyAgICBzaGFyZWRTdGF0aXN0aWNzUXVldWUo
KS0+ZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIu
cmVsZWFzZSgpXSAoKSBtdXRhYmxlIHsKIAotICAgICAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6
V2lsbFN1c3BlbmQpIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IHN0YXRlTG9ja2VyKHN1c3BlbmRl
ZFN0YXRlTG9jayk7CisgICAgICAgIEFTU0VSVChzdXNwZW5kZWRTdGF0ZSAhPSBTdGF0ZTo6U3Vz
cGVuZGVkKTsKKworICAgICAgICBpZiAoc3VzcGVuZGVkU3RhdGUgIT0gU3RhdGU6OldpbGxTdXNw
ZW5kKSB7CiAgICAgICAgICAgICBwb3N0VGFza1JlcGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1fc3RhdGUg
PSBTdGF0ZTo6U3VzcGVuZGVkOworICAgICAgICBzdXNwZW5kZWRTdGF0ZSA9IFN0YXRlOjpTdXNw
ZW5kZWQ7CiAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogCi0gICAgICAgIHdoaWxlIChtX3N0YXRlID09IFN0YXRlOjpTdXNwZW5kZWQpCi0gICAgICAg
ICAgICBtX3N0YXRlQ2hhbmdlQ29uZGl0aW9uLndhaXQobV9zdGF0ZUxvY2spOworICAgICAgICB3
aGlsZSAoc3VzcGVuZGVkU3RhdGUgPT0gU3RhdGU6OlN1c3BlbmRlZCkKKyAgICAgICAgICAgIHN1
c3BlbmRlZFN0YXRlQ2hhbmdlQ29uZGl0aW9uLndhaXQoc3VzcGVuZGVkU3RhdGVMb2NrKTsKICAg
ICAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OlJ1bm5pbmcpOwogICAgIH0pOwogfQogCiB2
b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzdW1lKCkKIHsKLSAgICAvLyBS
ZXN1bWUgaXMgbmVlZGVkIHRvIG1hbmFnZSB0aGUgZGF0YWJhc2Ugc3RvcmUgd2hpY2ggaXMgbm90
IHVzZWQgaW4gZXBoZW1lcmFsIHNlc3Npb25zLgotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSAmJiAhaXNFcGhlbWVyYWwoKSk7Ci0KLSAgICBMb2NrZXI8TG9jaz4gc3RhdGVMb2NrZXIobV9z
dGF0ZUxvY2spOwotICAgIGF1dG8gcHJldmlvdXNTdGF0ZSA9IG1fc3RhdGU7Ci0gICAgbV9zdGF0
ZSA9IFN0YXRlOjpSdW5uaW5nOworICAgIExvY2tlcjxMb2NrPiBzdGF0ZUxvY2tlcihzdXNwZW5k
ZWRTdGF0ZUxvY2spOworICAgIGF1dG8gcHJldmlvdXNTdGF0ZSA9IHN1c3BlbmRlZFN0YXRlOwor
ICAgIHN1c3BlbmRlZFN0YXRlID0gU3RhdGU6OlJ1bm5pbmc7CiAgICAgaWYgKHByZXZpb3VzU3Rh
dGUgPT0gU3RhdGU6OlN1c3BlbmRlZCkKLSAgICAgICAgbV9zdGF0ZUNoYW5nZUNvbmRpdGlvbi5u
b3RpZnlPbmUoKTsKKyAgICAgICAgc3VzcGVuZGVkU3RhdGVDaGFuZ2VDb25kaXRpb24ubm90aWZ5
T25lKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGI1OGVlMzVkNGJjZGMwODczYTI3ZjIzZDYy
NTQ3YmQxNzYxZDRlYjYuLjEzNTliM2I3ZTc1ZTA5NDUxNDdjOTcyNGE3ZjgwNGZhNTUyYzY3NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI5
Miw4ICsyOTIsOCBAQCBzdHJ1Y3QgVGhpcmRQYXJ0eURhdGEgewogICAgIHZvaWQgcmVzb3VyY2VM
b2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M+JiYpOwogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW5J
bk5lZWRPZlN0b3JhZ2VBY2Nlc3MmJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVySUQs
IE9wZW5lckRvbWFpbiYmKTsKICAgICB2b2lkIGFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OlRoaXJkUGFydHlEYXRhPiYmKT4mJik7Ci0gICAgdm9pZCBzdXNwZW5kKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCByZXN1bWUoKTsKKyAgICBzdGF0aWMgdm9pZCBzdXNw
ZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgc3RhdGljIHZvaWQgcmVzdW1l
KCk7CiAgICAgCiAgICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFcGhl
bWVyYWwgPT0gV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6Olll
czsgfTsKIApAQCAtMzM3LDkgKzMzNyw5IEBAIHByaXZhdGU6CiAgICAgICAgIFdpbGxTdXNwZW5k
LAogICAgICAgICBTdXNwZW5kZWQKICAgICB9OwotICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6
UnVubmluZyB9OwotICAgIExvY2sgbV9zdGF0ZUxvY2s7Ci0gICAgQ29uZGl0aW9uIG1fc3RhdGVD
aGFuZ2VDb25kaXRpb247CisgICAgc3RhdGljIFN0YXRlIHN1c3BlbmRlZFN0YXRlOworICAgIHN0
YXRpYyBMb2NrIHN1c3BlbmRlZFN0YXRlTG9jazsKKyAgICBzdGF0aWMgQ29uZGl0aW9uIHN1c3Bl
bmRlZFN0YXRlQ2hhbmdlQ29uZGl0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4
IDUwMDQ4YzgzMzBjMjExMjQzZmQyYWFiMDYzNjkxYTJiOTNkNmIyMGIuLjI0ZWE1YWRkNTdiZTJm
ZmJlMTg3ZTM1ZTA0Mjk0ZDgxYzFjNDJlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yMjE4LDEyICsyMjE4LDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50
LCBDb21wbGV0aW9uSGFuZGwKICAgICB9KTsKICAgICAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQotICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJmNhbGxiYWNrQWdncmVn
YXRvcl0oYXV0byYgbmV0d29ya1Nlc3Npb24pIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkp
IHsKLSAgICAgICAgICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNFcGhlbWVyYWwo
KSkKLSAgICAgICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zdXNwZW5kKFtjYWxs
YmFja0FnZ3JlZ2F0b3JdIHsgfSk7Ci0gICAgICAgIH0KLSAgICB9KTsKKyAgICBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsK
ICNlbmRpZgogCiAgICAgcGxhdGZvcm1QcmVwYXJlVG9TdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0
b3JdIHsgfSk7CkBAIC0yMjY1LDEyICsyMjYwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVz
dW1lKCkKICAgICAgICAgY29ubmVjdGlvbi0+ZW5kU3VzcGVuc2lvbigpOwogCiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oW10o
YXV0byYgbmV0d29ya1Nlc3Npb24pIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKLSAg
ICAgICAgICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNFcGhlbWVyYWwoKSkKLSAg
ICAgICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5yZXN1bWUoKTsKLSAgICAgICAg
fQotICAgIH0pOworICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzdW1lKCk7
CiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398003</attachid>
            <date>2020-04-29 16:00:19 -0700</date>
            <delta_ts>2020-04-29 16:59:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211207-20200429160018.patch</filename>
            <type>text/plain</type>
            <size>7449</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmZGRiYTJlMmI1OTExYzkz
YjViYWM1MDkzZDNjNjRkYmU1NWFiYTcuLjM1ZDRjMDY5NjVmNDg0MTI1ODc2OTQxNDRmNTY4ZDI0
Mjk1MmVlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDQtMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNjA3OTEpIE5l
dHdvcmsgcHJvY2VzcyBmYWlscyB0byBzdXNwZW5kIHByb21wdGx5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyMDcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzYyNjIwNDU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4u
CisKKyAgICAgICAgQWZ0ZXIgcjI2MDc5MSwgYWxsIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZSBpbnN0YW5jZXMgc2hhcmUgYSBzaW5nbGUgV29ya1F1ZXVlLgorICAgICAgICBBcyBhIHJl
c3VsdCwgdGhlIGxvZ2ljIHRvIHN1c3BlbmQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
J3MgV29ya1F1ZXVlcyBpbgorICAgICAgICBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVu
ZCgpIG5lZWRzIHRvIGdldCB1cGRhdGVkIHRvIHJlZmxlY3QgdGhpcy4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNw
ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpy
ZXN1bWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3Vz
cGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZXN1bWUpOgorCiAyMDIw
LTA0LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11b
V0syXSBBZGQgdGltZW91dCBmb3IgIkNsaWVudCBuYXZpZ2F0aW9uIiBmb3JlZ3JvdW5kIGFzc2Vy
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApp
bmRleCA3NjgyNGMyZDYzMWY1ZTkxZjViYjFmMDcwNjZmNTA3YWZiMDMyOWIxLi42OGY1NWM0YzVj
ZGRlNzVjNmI0MmFiMjJhZjg3MzE5ZWQ2ODY0NmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtNjIsNiArNjIsMTAgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6U3RhdGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNw
ZW5kZWRTdGF0ZSB7IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U3RhdGU6OlJ1bm5p
bmcgfTsKK0xvY2sgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5kZWRTdGF0
ZUxvY2s7CitDb25kaXRpb24gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5k
ZWRTdGF0ZUNoYW5nZUNvbmRpdGlvbjsKKwogY29uc3QgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4mIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bW9uaXRvcmVkRGF0YVR5cGVzKCkK
IHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4+
IGRhdGFUeXBlcyhzdGQ6OmluaXRpYWxpemVyX2xpc3Q8V2Vic2l0ZURhdGFUeXBlPih7CkBAIC0x
MzgxLDQzICsxMzg1LDM4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjph
Z2dyZWdhdGVkVGhpcmRQYXJ0eURhdGEoQ29tcGxldGlvbkhhbmRsZXI8CiAKIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICAvLyBTdXNwZW5kIGlzIG5lZWRlZCB0byBt
YW5hZ2UgdGhlIGRhdGFiYXNlIHN0b3JlIHdoaWNoIGlzIG5vdCB1c2VkIGluIGVwaGVtZXJhbCBz
ZXNzaW9ucy4KLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkgJiYgIWlzRXBoZW1lcmFsKCkp
OwotCiAgICAgQ29tcGxldGlvbkhhbmRsZXJDYWxsaW5nU2NvcGUgY29tcGxldGlvbkhhbmRsZXJD
YWxsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIExvY2tlcjxMb2NrPiBzdGF0
ZUxvY2tlcihtX3N0YXRlTG9jayk7Ci0gICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcp
CisgICAgTG9ja2VyPExvY2s+IHN0YXRlTG9ja2VyKHN1c3BlbmRlZFN0YXRlTG9jayk7CisgICAg
aWYgKHN1c3BlbmRlZFN0YXRlICE9IFN0YXRlOjpSdW5uaW5nKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9zdGF0ZSA9IFN0YXRlOjpXaWxsU3VzcGVuZDsKKyAgICBzdXNwZW5kZWRTdGF0ZSA9IFN0
YXRlOjpXaWxsU3VzcGVuZDsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxl
ciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIExvY2tlcjxMb2NrPiBzdGF0ZUxvY2tlcihtX3N0YXRlTG9jayk7Ci0gICAgICAgIEFTU0VS
VChtX3N0YXRlICE9IFN0YXRlOjpTdXNwZW5kZWQpOworICAgIHNoYXJlZFN0YXRpc3RpY3NRdWV1
ZSgpLT5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxl
ci5yZWxlYXNlKCldICgpIG11dGFibGUgewogCi0gICAgICAgIGlmIChtX3N0YXRlICE9IFN0YXRl
OjpXaWxsU3VzcGVuZCkgeworICAgICAgICBMb2NrZXI8TG9jaz4gc3RhdGVMb2NrZXIoc3VzcGVu
ZGVkU3RhdGVMb2NrKTsKKyAgICAgICAgQVNTRVJUKHN1c3BlbmRlZFN0YXRlICE9IFN0YXRlOjpT
dXNwZW5kZWQpOworCisgICAgICAgIGlmIChzdXNwZW5kZWRTdGF0ZSAhPSBTdGF0ZTo6V2lsbFN1
c3BlbmQpIHsKICAgICAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbV9zdGF0
ZSA9IFN0YXRlOjpTdXNwZW5kZWQ7CisgICAgICAgIHN1c3BlbmRlZFN0YXRlID0gU3RhdGU6OlN1
c3BlbmRlZDsKICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiAKLSAgICAgICAgd2hpbGUgKG1fc3RhdGUgPT0gU3RhdGU6OlN1c3BlbmRlZCkKLSAgICAg
ICAgICAgIG1fc3RhdGVDaGFuZ2VDb25kaXRpb24ud2FpdChtX3N0YXRlTG9jayk7Ci0gICAgICAg
IEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpSdW5uaW5nKTsKKyAgICAgICAgd2hpbGUgKHN1c3Bl
bmRlZFN0YXRlID09IFN0YXRlOjpTdXNwZW5kZWQpCisgICAgICAgICAgICBzdXNwZW5kZWRTdGF0
ZUNoYW5nZUNvbmRpdGlvbi53YWl0KHN1c3BlbmRlZFN0YXRlTG9jayk7CisgICAgICAgIEFTU0VS
VChzdXNwZW5kZWRTdGF0ZSA9PSBTdGF0ZTo6UnVubmluZyk7CiAgICAgfSk7CiB9CiAKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKQogewotICAgIC8vIFJlc3Vt
ZSBpcyBuZWVkZWQgdG8gbWFuYWdlIHRoZSBkYXRhYmFzZSBzdG9yZSB3aGljaCBpcyBub3QgdXNl
ZCBpbiBlcGhlbWVyYWwgc2Vzc2lvbnMuCi0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpICYm
ICFpc0VwaGVtZXJhbCgpKTsKLQotICAgIExvY2tlcjxMb2NrPiBzdGF0ZUxvY2tlcihtX3N0YXRl
TG9jayk7Ci0gICAgYXV0byBwcmV2aW91c1N0YXRlID0gbV9zdGF0ZTsKLSAgICBtX3N0YXRlID0g
U3RhdGU6OlJ1bm5pbmc7CisgICAgTG9ja2VyPExvY2s+IHN0YXRlTG9ja2VyKHN1c3BlbmRlZFN0
YXRlTG9jayk7CisgICAgYXV0byBwcmV2aW91c1N0YXRlID0gc3VzcGVuZGVkU3RhdGU7CisgICAg
c3VzcGVuZGVkU3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKICAgICBpZiAocHJldmlvdXNTdGF0ZSA9
PSBTdGF0ZTo6U3VzcGVuZGVkKQotICAgICAgICBtX3N0YXRlQ2hhbmdlQ29uZGl0aW9uLm5vdGlm
eU9uZSgpOworICAgICAgICBzdXNwZW5kZWRTdGF0ZUNoYW5nZUNvbmRpdGlvbi5ub3RpZnlPbmUo
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggYjU4ZWUzNWQ0YmNkYzA4NzNhMjdmMjNkNjI1NDdi
ZDE3NjFkNGViNi4uMTM1OWIzYjdlNzVlMDk0NTE0N2M5NzI0YTdmODA0ZmE1NTJjNjc2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMjkyLDgg
KzI5Miw4IEBAIHN0cnVjdCBUaGlyZFBhcnR5RGF0YSB7CiAgICAgdm9pZCByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4m
Jik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbkluTmVl
ZE9mU3RvcmFnZUFjY2VzcyYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJJRCwgT3Bl
bmVyRG9tYWluJiYpOwogICAgIHZvaWQgYWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhp
cmRQYXJ0eURhdGE+JiYpPiYmKTsKLSAgICB2b2lkIHN1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIHJlc3VtZSgpOworICAgIHN0YXRpYyB2b2lkIHN1c3BlbmQo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBzdGF0aWMgdm9pZCByZXN1bWUoKTsK
ICAgICAKICAgICBib29sIGlzRXBoZW1lcmFsKCkgY29uc3QgeyByZXR1cm4gbV9pc0VwaGVtZXJh
bCA9PSBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6WWVzOyB9
OwogCkBAIC0zMzcsOSArMzM3LDkgQEAgcHJpdmF0ZToKICAgICAgICAgV2lsbFN1c3BlbmQsCiAg
ICAgICAgIFN1c3BlbmRlZAogICAgIH07Ci0gICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpSdW5u
aW5nIH07Ci0gICAgTG9jayBtX3N0YXRlTG9jazsKLSAgICBDb25kaXRpb24gbV9zdGF0ZUNoYW5n
ZUNvbmRpdGlvbjsKKyAgICBzdGF0aWMgU3RhdGUgc3VzcGVuZGVkU3RhdGU7CisgICAgc3RhdGlj
IExvY2sgc3VzcGVuZGVkU3RhdGVMb2NrOworICAgIHN0YXRpYyBDb25kaXRpb24gc3VzcGVuZGVk
U3RhdGVDaGFuZ2VDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNTAw
NDhjODMzMGMyMTEyNDNmZDJhYWIwNjM2OTFhMmI5M2Q2YjIwYi4uMjRlYTVhZGQ1N2JlMmZmYmUx
ODdlMzVlMDQyOTRkODFjMWM0MmVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIyMTgsMTIgKzIyMTgsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENv
bXBsZXRpb25IYW5kbAogICAgIH0pOwogICAgIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCi0gICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmY2FsbGJhY2tBZ2dyZWdhdG9y
XShhdXRvJiBuZXR3b3JrU2Vzc2lvbikgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkgewot
ICAgICAgICAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc0VwaGVtZXJhbCgpKQot
ICAgICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnN1c3BlbmQoW2NhbGxiYWNr
QWdncmVnYXRvcl0geyB9KTsKLSAgICAgICAgfQotICAgIH0pOworICAgIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogI2Vu
ZGlmCiAKICAgICBwbGF0Zm9ybVByZXBhcmVUb1N1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0g
eyB9KTsKQEAgLTIyNjUsMTIgKzIyNjAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXN1bWUo
KQogICAgICAgICBjb25uZWN0aW9uLT5lbmRTdXNwZW5zaW9uKCk7CiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbXShhdXRv
JiBuZXR3b3JrU2Vzc2lvbikgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IG5ldHdvcmtTZXNzaW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkgewotICAgICAg
ICAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc0VwaGVtZXJhbCgpKQotICAgICAg
ICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlc3VtZSgpOwotICAgICAgICB9Ci0g
ICAgfSk7CisgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsKICNl
bmRpZgogICAgIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398010</attachid>
            <date>2020-04-29 16:59:27 -0700</date>
            <delta_ts>2020-04-29 17:50:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211207-20200429165926.patch</filename>
            <type>text/plain</type>
            <size>15061</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmZGRiYTJlMmI1OTExYzkz
YjViYWM1MDkzZDNjNjRkYmU1NWFiYTcuLjM1ZDRjMDY5NjVmNDg0MTI1ODc2OTQxNDRmNTY4ZDI0
Mjk1MmVlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDQtMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNjA3OTEpIE5l
dHdvcmsgcHJvY2VzcyBmYWlscyB0byBzdXNwZW5kIHByb21wdGx5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyMDcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzYyNjIwNDU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4u
CisKKyAgICAgICAgQWZ0ZXIgcjI2MDc5MSwgYWxsIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZSBpbnN0YW5jZXMgc2hhcmUgYSBzaW5nbGUgV29ya1F1ZXVlLgorICAgICAgICBBcyBhIHJl
c3VsdCwgdGhlIGxvZ2ljIHRvIHN1c3BlbmQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
J3MgV29ya1F1ZXVlcyBpbgorICAgICAgICBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVu
ZCgpIG5lZWRzIHRvIGdldCB1cGRhdGVkIHRvIHJlZmxlY3QgdGhpcy4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNw
ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpy
ZXN1bWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3Vz
cGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZXN1bWUpOgorCiAyMDIw
LTA0LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11b
V0syXSBBZGQgdGltZW91dCBmb3IgIkNsaWVudCBuYXZpZ2F0aW9uIiBmb3JlZ3JvdW5kIGFzc2Vy
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApp
bmRleCA3NjgyNGMyZDYzMWY1ZTkxZjViYjFmMDcwNjZmNTA3YWZiMDMyOWIxLi42OGY1NWM0YzVj
ZGRlNzVjNmI0MmFiMjJhZjg3MzE5ZWQ2ODY0NmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtNjIsNiArNjIsMTAgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6U3RhdGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNw
ZW5kZWRTdGF0ZSB7IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U3RhdGU6OlJ1bm5p
bmcgfTsKK0xvY2sgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5kZWRTdGF0
ZUxvY2s7CitDb25kaXRpb24gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5k
ZWRTdGF0ZUNoYW5nZUNvbmRpdGlvbjsKKwogY29uc3QgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4mIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bW9uaXRvcmVkRGF0YVR5cGVzKCkK
IHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4+
IGRhdGFUeXBlcyhzdGQ6OmluaXRpYWxpemVyX2xpc3Q8V2Vic2l0ZURhdGFUeXBlPih7CkBAIC0x
MzgxLDQzICsxMzg1LDM4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjph
Z2dyZWdhdGVkVGhpcmRQYXJ0eURhdGEoQ29tcGxldGlvbkhhbmRsZXI8CiAKIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICAvLyBTdXNwZW5kIGlzIG5lZWRlZCB0byBt
YW5hZ2UgdGhlIGRhdGFiYXNlIHN0b3JlIHdoaWNoIGlzIG5vdCB1c2VkIGluIGVwaGVtZXJhbCBz
ZXNzaW9ucy4KLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkgJiYgIWlzRXBoZW1lcmFsKCkp
OwotCiAgICAgQ29tcGxldGlvbkhhbmRsZXJDYWxsaW5nU2NvcGUgY29tcGxldGlvbkhhbmRsZXJD
YWxsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIExvY2tlcjxMb2NrPiBzdGF0
ZUxvY2tlcihtX3N0YXRlTG9jayk7Ci0gICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcp
CisgICAgTG9ja2VyPExvY2s+IHN0YXRlTG9ja2VyKHN1c3BlbmRlZFN0YXRlTG9jayk7CisgICAg
aWYgKHN1c3BlbmRlZFN0YXRlICE9IFN0YXRlOjpSdW5uaW5nKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9zdGF0ZSA9IFN0YXRlOjpXaWxsU3VzcGVuZDsKKyAgICBzdXNwZW5kZWRTdGF0ZSA9IFN0
YXRlOjpXaWxsU3VzcGVuZDsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxl
ciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIExvY2tlcjxMb2NrPiBzdGF0ZUxvY2tlcihtX3N0YXRlTG9jayk7Ci0gICAgICAgIEFTU0VS
VChtX3N0YXRlICE9IFN0YXRlOjpTdXNwZW5kZWQpOworICAgIHNoYXJlZFN0YXRpc3RpY3NRdWV1
ZSgpLT5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxl
ci5yZWxlYXNlKCldICgpIG11dGFibGUgewogCi0gICAgICAgIGlmIChtX3N0YXRlICE9IFN0YXRl
OjpXaWxsU3VzcGVuZCkgeworICAgICAgICBMb2NrZXI8TG9jaz4gc3RhdGVMb2NrZXIoc3VzcGVu
ZGVkU3RhdGVMb2NrKTsKKyAgICAgICAgQVNTRVJUKHN1c3BlbmRlZFN0YXRlICE9IFN0YXRlOjpT
dXNwZW5kZWQpOworCisgICAgICAgIGlmIChzdXNwZW5kZWRTdGF0ZSAhPSBTdGF0ZTo6V2lsbFN1
c3BlbmQpIHsKICAgICAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbV9zdGF0
ZSA9IFN0YXRlOjpTdXNwZW5kZWQ7CisgICAgICAgIHN1c3BlbmRlZFN0YXRlID0gU3RhdGU6OlN1
c3BlbmRlZDsKICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiAKLSAgICAgICAgd2hpbGUgKG1fc3RhdGUgPT0gU3RhdGU6OlN1c3BlbmRlZCkKLSAgICAg
ICAgICAgIG1fc3RhdGVDaGFuZ2VDb25kaXRpb24ud2FpdChtX3N0YXRlTG9jayk7Ci0gICAgICAg
IEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpSdW5uaW5nKTsKKyAgICAgICAgd2hpbGUgKHN1c3Bl
bmRlZFN0YXRlID09IFN0YXRlOjpTdXNwZW5kZWQpCisgICAgICAgICAgICBzdXNwZW5kZWRTdGF0
ZUNoYW5nZUNvbmRpdGlvbi53YWl0KHN1c3BlbmRlZFN0YXRlTG9jayk7CisgICAgICAgIEFTU0VS
VChzdXNwZW5kZWRTdGF0ZSA9PSBTdGF0ZTo6UnVubmluZyk7CiAgICAgfSk7CiB9CiAKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKQogewotICAgIC8vIFJlc3Vt
ZSBpcyBuZWVkZWQgdG8gbWFuYWdlIHRoZSBkYXRhYmFzZSBzdG9yZSB3aGljaCBpcyBub3QgdXNl
ZCBpbiBlcGhlbWVyYWwgc2Vzc2lvbnMuCi0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpICYm
ICFpc0VwaGVtZXJhbCgpKTsKLQotICAgIExvY2tlcjxMb2NrPiBzdGF0ZUxvY2tlcihtX3N0YXRl
TG9jayk7Ci0gICAgYXV0byBwcmV2aW91c1N0YXRlID0gbV9zdGF0ZTsKLSAgICBtX3N0YXRlID0g
U3RhdGU6OlJ1bm5pbmc7CisgICAgTG9ja2VyPExvY2s+IHN0YXRlTG9ja2VyKHN1c3BlbmRlZFN0
YXRlTG9jayk7CisgICAgYXV0byBwcmV2aW91c1N0YXRlID0gc3VzcGVuZGVkU3RhdGU7CisgICAg
c3VzcGVuZGVkU3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKICAgICBpZiAocHJldmlvdXNTdGF0ZSA9
PSBTdGF0ZTo6U3VzcGVuZGVkKQotICAgICAgICBtX3N0YXRlQ2hhbmdlQ29uZGl0aW9uLm5vdGlm
eU9uZSgpOworICAgICAgICBzdXNwZW5kZWRTdGF0ZUNoYW5nZUNvbmRpdGlvbi5ub3RpZnlPbmUo
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggYjU4ZWUzNWQ0YmNkYzA4NzNhMjdmMjNkNjI1NDdi
ZDE3NjFkNGViNi4uMTM1OWIzYjdlNzVlMDk0NTE0N2M5NzI0YTdmODA0ZmE1NTJjNjc2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMjkyLDgg
KzI5Miw4IEBAIHN0cnVjdCBUaGlyZFBhcnR5RGF0YSB7CiAgICAgdm9pZCByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4m
Jik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbkluTmVl
ZE9mU3RvcmFnZUFjY2VzcyYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJJRCwgT3Bl
bmVyRG9tYWluJiYpOwogICAgIHZvaWQgYWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhp
cmRQYXJ0eURhdGE+JiYpPiYmKTsKLSAgICB2b2lkIHN1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIHJlc3VtZSgpOworICAgIHN0YXRpYyB2b2lkIHN1c3BlbmQo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBzdGF0aWMgdm9pZCByZXN1bWUoKTsK
ICAgICAKICAgICBib29sIGlzRXBoZW1lcmFsKCkgY29uc3QgeyByZXR1cm4gbV9pc0VwaGVtZXJh
bCA9PSBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6WWVzOyB9
OwogCkBAIC0zMzcsOSArMzM3LDkgQEAgcHJpdmF0ZToKICAgICAgICAgV2lsbFN1c3BlbmQsCiAg
ICAgICAgIFN1c3BlbmRlZAogICAgIH07Ci0gICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpSdW5u
aW5nIH07Ci0gICAgTG9jayBtX3N0YXRlTG9jazsKLSAgICBDb25kaXRpb24gbV9zdGF0ZUNoYW5n
ZUNvbmRpdGlvbjsKKyAgICBzdGF0aWMgU3RhdGUgc3VzcGVuZGVkU3RhdGU7CisgICAgc3RhdGlj
IExvY2sgc3VzcGVuZGVkU3RhdGVMb2NrOworICAgIHN0YXRpYyBDb25kaXRpb24gc3VzcGVuZGVk
U3RhdGVDaGFuZ2VDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNTAw
NDhjODMzMGMyMTEyNDNmZDJhYWIwNjM2OTFhMmI5M2Q2YjIwYi4uMjRlYTVhZGQ1N2JlMmZmYmUx
ODdlMzVlMDQyOTRkODFjMWM0MmVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIyMTgsMTIgKzIyMTgsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENv
bXBsZXRpb25IYW5kbAogICAgIH0pOwogICAgIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCi0gICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmY2FsbGJhY2tBZ2dyZWdhdG9y
XShhdXRvJiBuZXR3b3JrU2Vzc2lvbikgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkgewot
ICAgICAgICAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc0VwaGVtZXJhbCgpKQot
ICAgICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnN1c3BlbmQoW2NhbGxiYWNr
QWdncmVnYXRvcl0geyB9KTsKLSAgICAgICAgfQotICAgIH0pOworICAgIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogI2Vu
ZGlmCiAKICAgICBwbGF0Zm9ybVByZXBhcmVUb1N1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0g
eyB9KTsKQEAgLTIyNjUsMTIgKzIyNjAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXN1bWUo
KQogICAgICAgICBjb25uZWN0aW9uLT5lbmRTdXNwZW5zaW9uKCk7CiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbXShhdXRv
JiBuZXR3b3JrU2Vzc2lvbikgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IG5ldHdvcmtTZXNzaW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkgewotICAgICAg
ICAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc0VwaGVtZXJhbCgpKQotICAgICAg
ICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlc3VtZSgpOwotICAgICAgICB9Ci0g
ICAgfSk7CisgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsKICNl
bmRpZgogICAgIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggNDJkNDU2YTIx
Y2I5NmJjMzRjOGNjNTk5N2ExYjMxN2Y5NGIyOTVmZi4uNTY5NTU3MDQ3Y2Y1NmRjODhlNjc0ZWZl
ZDRiOWIzYTA5ODhiOGRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQyMSw2ICs0MjEsMTMgQEAgLSAodm9pZClfc2Vu
ZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5CiAgICAgX3Byb2Nlc3NQb29sLT5z
ZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nKCk7CiB9CiAK
Ky0gKHZvaWQpX3NlbmROZXR3b3JrUHJvY2Vzc1ByZXBhcmVUb1N1c3BlbmQ6KHZvaWQoXikodm9p
ZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcHJvY2Vzc1Bvb2wtPnNlbmROZXR3b3JrUHJv
Y2Vzc1ByZXBhcmVUb1N1c3BlbmRGb3JUZXN0aW5nKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VC
bG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lCiB7
CiAgICAgX3Byb2Nlc3NQb29sLT5zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmgKaW5kZXggM2JhNTM2NmIzMTZhM2IxYzgxNGFiODFlODlmYzE1MGJjZDZhN2EwZS4u
NTUxMTY4ZWRlMWM4MGMzNmU3NWNlZTQzN2Y5ZWJlYzc0NDBlNjY3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRl
LmgKQEAgLTg4LDYgKzg4LDcgQEAKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIG9u
bHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgogLSAodm9pZClf
dGVybWluYXRlTmV0d29ya1Byb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlv
cygxMy4wKSk7CistICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NQcmVwYXJlVG9TdXNwZW5kOih2
b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NX
aWxsU3VzcGVuZEltbWluZW50bHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAtICh2b2lkKV90ZXJtaW5hdGVTZXJ2aWNl
V29ya2VycyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKaW5kZXggNDlmOTAxZmY0ODJiNzNlMDkwMDIyMGY3NTQ5MmFkMzg4ZTEwZjliOS4uMDhkYzlm
ZDk4NDc0MmNkMWVkYzk1Zjk2ZTUzZDk4MzJiZGVkOGJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTIyNiw2
ICsyMjYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckFwcEJvdW5kU2Vzc2lvbihQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGdldEFwcEJv
dW5kRG9tYWlucyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0
PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7CiAKKyAgICAvLyBQcm9jZXNzVGhy
b3R0bGVyQ2xpZW50CisgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25J
bW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKwogcHJpdmF0ZToK
ICAgICAvLyBBdXhpbGlhcnlQcm9jZXNzUHJveHkKICAgICBBU0NJSUxpdGVyYWwgcHJvY2Vzc05h
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTmV0d29ya2luZyJfczsgfQpAQCAtMjM3LDkgKzI0
MCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKICAgICB2
b2lkIGNsZWFyQ2FsbGJhY2tTdGF0ZXMoKTsKIAotICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGll
bnQKLSAgICB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwotCiAgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKaW5kZXggNzVjZTYwNzlkZmE1ZWI0YjA1YmQ5ZjJhYmMxMDkzNWEyODllODc5Yi4uMjI0
YTVhMjBhZDExY2E1OWMzYjMwNDMzNzYzZDI0MDEzM2RlYTc1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTc5OSw2ICsxNzk5LDE0IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZUFsbFdlYkNvbnRlbnRQcm9jZXNzZXMoKQogICAgICAg
ICBwcm9jZXNzLT50ZXJtaW5hdGUoKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZE5l
dHdvcmtQcm9jZXNzUHJlcGFyZVRvU3VzcGVuZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9uZXR3b3JrUHJvY2Vz
cykKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CisKKyAgICBtX25ldHdvcmtQ
cm9jZXNzLT5zZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudDo6Tm8sIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2Vu
ZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpCiB7CiAgICAg
aWYgKG1fbmV0d29ya1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAppbmRleCAyOGE5ZmJmZDIyMmU2Mjk2YTNmMmNjZDE4NWM1OGQ5ZmIwNjAwMTcyLi5lZmEy
ZWI4OWNiNmYyMWFiOWVmZTlkYTVmZjkyODk4YmNhYWQ5ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTMyMSw2ICszMjEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlQWxsV2ViQ29udGVudFByb2Nlc3NlcygpOwor
ICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzUHJlcGFyZVRvU3VzcGVuZEZvclRlc3RpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1dp
bGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmcoKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJv
Y2Vzc0RpZFJlc3VtZSgpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlcnMoKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1NDVlZmM1
OGM4YzA3YjI3NDk3MTdkNTVjMjViMmEzZmFiMmRkYTVkLi5lMGU1MWRjMzk1YmE2ZjVlYjk5MWUz
ZjkzM2Y1M2ZhNWNjYjc5NWQ2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMjkgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNjA3OTEpIE5ldHdvcmsg
cHJvY2VzcyBmYWlscyB0byBzdXNwZW5kIHByb21wdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzYyNjIwNDU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tOgorICAgICAgICAoVEVT
VCk6CisKIDIwMjAtMDQtMjkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVmYWN0b3IgbGF5b3V0IHRlc3RzIGFmdGVyIHVwZGF0ZXMgdG8gSW4t
QXBwIEJyb3dzZXIgUHJpdmFjeQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCmluZGV4IGIw
MjE3ZmFjMTllNDJjZDQ4MGMyZmEwNTkyMjM1MTZmYzJkZDUzNDIuLjNkYjgxODAyMjVmZmIxNGJk
NmJjYzBiNWU2Y2Y2OGYwODdlNTM1NmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0K
QEAgLTE1NDksMyArMTU0OSw1MCBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIE1pZ3Jh
dGVEYXRhRnJvbU1pc3NpbmdUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0U2FtZVNpdAogCiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lRmxhZyk7CiB9CisKK1RFU1QoUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcywgU3RvcmVTdXNwZW5zaW9uKQoreworICAgIGF1dG8gKnNoYXJlZFByb2Nlc3NQ
b29sID0gW1dLUHJvY2Vzc1Bvb2wgX3NoYXJlZFByb2Nlc3NQb29sXTsKKyAgICBhdXRvICpkYXRh
U3RvcmUxID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsKKyAgICBhdXRv
ICpkYXRhU3RvcmUyID0gW1tbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25m
aWd1cmF0aW9uOltbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSBhdXRvcmVsZWFzZV1dIGF1dG9yZWxlYXNlXTsKKworICAgIFtkYXRhU3RvcmUxIF9zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOworICAgIFtkYXRhU3RvcmUyIF9zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOworCisgICAgc3RhdGljIGJvb2wgZG9uZUZs
YWcgPSBmYWxzZTsKKyAgICBbZGF0YVN0b3JlMSBfc2V0VXNlSVRQRGF0YWJhc2U6dHJ1ZSBjb21w
bGV0aW9uSGFuZGxlcjogXih2b2lkKSB7CisgICAgICAgIGRvbmVGbGFnID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVGbGFnKTsKKworICAgIGRvbmVG
bGFnID0gZmFsc2U7CisgICAgW2RhdGFTdG9yZTIgX3NldFVzZUlUUERhdGFiYXNlOnRydWUgY29t
cGxldGlvbkhhbmRsZXI6IF4odm9pZCkgeworICAgICAgICBkb25lRmxhZyA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lRmxhZyk7CisKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24xID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBbY29uZmlndXJhdGlvbjEgc2V0UHJvY2Vzc1Bvb2w6IHNoYXJlZFByb2Nl
c3NQb29sXTsKKyAgICBjb25maWd1cmF0aW9uMS5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gZGF0
YVN0b3JlMTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbjIgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uMiBzZXRQcm9j
ZXNzUG9vbDogc2hhcmVkUHJvY2Vzc1Bvb2xdOworICAgIGNvbmZpZ3VyYXRpb24yLmdldCgpLndl
YnNpdGVEYXRhU3RvcmUgPSBkYXRhU3RvcmUyOworCisgICAgYXV0byB3ZWJWaWV3MSA9IGFkb3B0
TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uMS5nZXQoKV0pOworICAgIGF1dG8gd2Vi
VmlldzIgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjIuZ2V0KCldKTsK
KworICAgIFt3ZWJWaWV3MSBsb2FkSFRNTFN0cmluZzpAIldlYktpdCBUZXN0IiBiYXNlVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3dlYmtpdC5vcmciXV07CisgICAgW3dlYlZpZXcx
IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIFt3ZWJWaWV3MiBsb2Fk
SFRNTFN0cmluZzpAIldlYktpdCBUZXN0IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
aHR0cDovL3dlYmtpdDIub3JnIl1dOworICAgIFt3ZWJWaWV3MiBfdGVzdF93YWl0Rm9yRGlkRmlu
aXNoTmF2aWdhdGlvbl07CisKKyAgICBkb25lRmxhZyA9IGZhbHNlOworICAgIFtzaGFyZWRQcm9j
ZXNzUG9vbCBfc2VuZE5ldHdvcmtQcm9jZXNzUHJlcGFyZVRvU3VzcGVuZDpeeworICAgICAgICBk
b25lRmxhZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lRmxhZyk7CisKKyAgICBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3NlbmROZXR3b3JrUHJvY2Vzc0Rp
ZFJlc3VtZV07Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>