<?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>221848</bug_id>
          
          <creation_ts>2021-02-12 13:57:59 -0800</creation_ts>
          <short_desc>REGRESSION (r268421): TestWebKitAPI.WebKit.PreferenceChanges* tests are flaky failures</short_desc>
          <delta_ts>2021-11-02 14:48:33 -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>New Bugs</component>
          <version>Other</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=222825</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>jenner</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1728776</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-02-12 13:57:59 -0800</bug_when>
    <thetext>REGRESSION (r268421): TestWebKitAPI.WebKit.PreferenceChanges* tests are flaky failures

TestWebKitAPI.WebKit.PreferenceChangesDate
TestWebKitAPI.WebKit.PreferenceChangesArray
TestWebKitAPI.WebKit.PreferenceChangesData
TestWebKitAPI.WebKit.PreferenceChangesNil</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728777</commentid>
    <comment_count>1</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-02-12 13:58:10 -0800</bug_when>
    <thetext>These tests were disabled in https://trac.webkit.org/changeset/270510/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728779</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-02-12 13:58:43 -0800</bug_when>
    <thetext>&lt;rdar://problem/70966379&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742484</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-03-22 14:51:27 -0700</bug_when>
    <thetext>*** Bug 221781 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742488</commentid>
    <comment_count>4</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-03-22 14:53:41 -0700</bug_when>
    <thetext>I also disabled TestWebKitAPI.WebKit.GlobalPreferenceChangesUsingDefaultsWrite in https://commits.webkit.org/234051@main</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810978</commentid>
    <comment_count>5</comment_count>
      <attachid>443038</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-11-01 17:10:50 -0700</bug_when>
    <thetext>Created attachment 443038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811024</commentid>
    <comment_count>6</comment_count>
      <attachid>443038</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-11-01 20:44:21 -0700</bug_when>
    <thetext>Comment on attachment 443038
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:191
&gt; +        TestWebKitAPI::Util::spinRunLoop();

This will potentially slow down the process. Is it possible to wait until a sync has happened (perhaps using an event or completion handler)?

&gt; Tools/TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:223
&gt; +    for (;;) {

It seems like this could hang the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811165</commentid>
    <comment_count>7</comment_count>
      <attachid>443103</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-11-02 10:17:04 -0700</bug_when>
    <thetext>Created attachment 443103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811170</commentid>
    <comment_count>8</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-11-02 10:26:15 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #6)
&gt; Comment on attachment 443038 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=443038&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:191
&gt; &gt; +        TestWebKitAPI::Util::spinRunLoop();
&gt; 
&gt; This will potentially slow down the process. Is it possible to wait until a
&gt; sync has happened (perhaps using an event or completion handler)?
&gt; 

That is a good point. I think we for example could post a notification in the WebContent process when a preference is set, which TestWebKitAPI could then subscribe to. There is some ambiguity to this approach, however, since we&apos;re not using WebKit API to set the preference, but using NSUserDefaults directly. This means it is not trivial to match the preference change made by TestWebKitAPI with the corresponding notification, since the preference change could also have come from elsewhere. Due to this ambiguity, I did not go down this road, but added a sleep interval to the loop in order to avoid using too much CPU. Would you be OK with that approach?

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:223
&gt; &gt; +    for (;;) {
&gt; 
&gt; It seems like this could hang the test.

Fixed in the latest patch by exiting the loop after N number of iterations.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811176</commentid>
    <comment_count>9</comment_count>
      <attachid>443038</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-11-02 10:32:41 -0700</bug_when>
    <thetext>Comment on attachment 443038
Patch

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

&gt;&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:191
&gt;&gt;&gt; +        TestWebKitAPI::Util::spinRunLoop();
&gt;&gt; 
&gt;&gt; This will potentially slow down the process. Is it possible to wait until a sync has happened (perhaps using an event or completion handler)?
&gt; 
&gt; That is a good point. I think we for example could post a notification in the WebContent process when a preference is set, which TestWebKitAPI could then subscribe to. There is some ambiguity to this approach, however, since we&apos;re not using WebKit API to set the preference, but using NSUserDefaults directly. This means it is not trivial to match the preference change made by TestWebKitAPI with the corresponding notification, since the preference change could also have come from elsewhere. Due to this ambiguity, I did not go down this road, but added a sleep interval to the loop in order to avoid using too much CPU. Would you be OK with that approach?

Is there no notification sent when NSUserDefaults changes a value? I believe that a process can subscribe to notifications so that when a user changes a preference the app can react. It might be that we receive notifications for unrelated preference changes, so we would want to see what preference changed and ignore unrelated ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811229</commentid>
    <comment_count>10</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-11-02 12:52:50 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #9)
&gt; Comment on attachment 443038 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=443038&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:191
&gt; &gt;&gt;&gt; +        TestWebKitAPI::Util::spinRunLoop();
&gt; &gt;&gt; 
&gt; &gt;&gt; This will potentially slow down the process. Is it possible to wait until a sync has happened (perhaps using an event or completion handler)?
&gt; &gt; 
&gt; &gt; That is a good point. I think we for example could post a notification in the WebContent process when a preference is set, which TestWebKitAPI could then subscribe to. There is some ambiguity to this approach, however, since we&apos;re not using WebKit API to set the preference, but using NSUserDefaults directly. This means it is not trivial to match the preference change made by TestWebKitAPI with the corresponding notification, since the preference change could also have come from elsewhere. Due to this ambiguity, I did not go down this road, but added a sleep interval to the loop in order to avoid using too much CPU. Would you be OK with that approach?
&gt; 
&gt; Is there no notification sent when NSUserDefaults changes a value? I believe
&gt; that a process can subscribe to notifications so that when a user changes a
&gt; preference the app can react. It might be that we receive notifications for
&gt; unrelated preference changes, so we would want to see what preference
&gt; changed and ignore unrelated ones.

I believe it is possible to use KVO to listen to changes for a specific preference key. Since this requires sandbox access to the preference daemon, which is blocked in the WebContent process, it might not be applicable in this case. Should we create a custom notification that we post from WP when a preference change message is received? TestWebKitAPI could then listen to this notification, and we could avoid the loop in the test.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811260</commentid>
    <comment_count>11</comment_count>
      <attachid>443038</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-11-02 14:09:38 -0700</bug_when>
    <thetext>Comment on attachment 443038
Patch

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

&gt;&gt;&gt;&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:191
&gt;&gt;&gt;&gt;&gt; +        TestWebKitAPI::Util::spinRunLoop();
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; This will potentially slow down the process. Is it possible to wait until a sync has happened (perhaps using an event or completion handler)?
&gt;&gt;&gt; 
&gt;&gt;&gt; That is a good point. I think we for example could post a notification in the WebContent process when a preference is set, which TestWebKitAPI could then subscribe to. There is some ambiguity to this approach, however, since we&apos;re not using WebKit API to set the preference, but using NSUserDefaults directly. This means it is not trivial to match the preference change made by TestWebKitAPI with the corresponding notification, since the preference change could also have come from elsewhere. Due to this ambiguity, I did not go down this road, but added a sleep interval to the loop in order to avoid using too much CPU. Would you be OK with that approach?
&gt;&gt; 
&gt;&gt; Is there no notification sent when NSUserDefaults changes a value? I believe that a process can subscribe to notifications so that when a user changes a preference the app can react. It might be that we receive notifications for unrelated preference changes, so we would want to see what preference changed and ignore unrelated ones.
&gt; 
&gt; I believe it is possible to use KVO to listen to changes for a specific preference key. Since this requires sandbox access to the preference daemon, which is blocked in the WebContent process, it might not be applicable in this case. Should we create a custom notification that we post from WP when a preference change message is received? TestWebKitAPI could then listen to this notification, and we could avoid the loop in the test.
&gt; 
&gt; Thanks for reviewing!

Ah! That&apos;s a great reason to not use KVO. Thanks for clarifying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811261</commentid>
    <comment_count>12</comment_count>
      <attachid>443103</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-11-02 14:10:09 -0700</bug_when>
    <thetext>Comment on attachment 443103
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811262</commentid>
    <comment_count>13</comment_count>
      <attachid>443103</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-11-02 14:13:02 -0700</bug_when>
    <thetext>Comment on attachment 443103
Patch

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811278</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-02 14:48:30 -0700</bug_when>
    <thetext>Committed r285184 (243813@main): &lt;https://commits.webkit.org/243813@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443103.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443038</attachid>
            <date>2021-11-01 17:10:50 -0700</date>
            <delta_ts>2021-11-02 10:17:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221848-20211101171048.patch</filename>
            <type>text/plain</type>
            <size>6701</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI4NTE0NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDIxLTExLTAxICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJFR1JFU1NJT04gKHIyNjg0MjEpOiBUZXN0V2ViS2l0QVBJLldlYktpdC5QcmVmZXJl
bmNlQ2hhbmdlcyogdGVzdHMgYXJlIGZsYWt5IGZhaWx1cmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE4NDgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcwOTY2Mzc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFmdGVyIHIyNjg0MjEsIHRoZSBwcmVmZXJlbmNlcyBhcmUgc2V0IGFzeW5jaHJvbm91
c2x5IGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MsIHdoaWNoIGludHJvZHVjZWQgdGhpcyBmbGFr
aW5lc3MuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIHRoaXMgYnkgbW9kaWZ5aW5nIHRo
ZSBmbGFreSB0ZXN0cyB0byBsb29wIHVudGlsIHRoZSBwcmVmZXJlbmNlIHZhbHVlIGlzIGVxdWFs
IHRvIHRoZSBleHBlY3RlZAorICAgICAgICB2YWx1ZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFuZ2VzLm1tOgorICAgICAgICAoVEVTVCk6CisK
IDIwMjEtMTEtMDEgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFt3ZWJraXRzY21weV0gT25seSByZXNwZWN0IHRoZSBsYXRlc3QgcmV2aWV3CkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hh
bmdlcy5tbQkocmV2aXNpb24gMjg0NzgzKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1MSw4ICsxNTEs
NiBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXMpCiAgICAgQ0xFQVJfREVGQVVMVFMo
KTsKIH0KIAotLy8gRklYTUU6IFJlLWVuYWJsZSB0aGVzZSB0ZXN0cyBvbmNlIHdlYmtpdC5vcmcv
Yi8yMjE4NDggIGlzIHJlc29sdmVkLgotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA8IDExMDAwMAogVEVTVChXZWJLaXQsIEdsb2JhbFByZWZlcmVu
Y2VDaGFuZ2VzVXNpbmdEZWZhdWx0c1dyaXRlKQogewogICAgIENMRUFSX0RFRkFVTFRTKCk7CkBA
IC0xODksNyArMTg3LDggQEAgVEVTVChXZWJLaXQsIEdsb2JhbFByZWZlcmVuY2VDaGFuZ2VzVXNp
bgogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFByZWZlcmVuY2VOb3Rp
ZmljYXRpb24pOwogCi0gICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1ZSgpLCAyKTsKKyAgICB3
aGlsZSAocHJlZmVyZW5jZVZhbHVlKCkgIT0gMikKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6c3BpblJ1bkxvb3AoKTsKIAogICAgIENMRUFSX0RFRkFVTFRTKCk7CiB9CkBAIC0yMjEsMTQg
KzIyMCwxNiBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNBcnJheSkKICAgICBOU0Fy
cmF5ICpjaGFuZ2VkQXJyYXkgPSBAW0AzLCBAMiwgQDFdOwogICAgIFt1c2VyRGVmYXVsdHMgc2V0
T2JqZWN0OmNoYW5nZWRBcnJheSBmb3JLZXk6KE5TU3RyaW5nICopVEVTVF9LRVkoKV07CiAKLSAg
ICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKLSAgICBhdXRvIGVuY29k
ZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3Ry
aW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7Ci0gICAgQVNTRVJUX1RSVUUoZW5jb2RlZERh
dGEpOwotICAgIE5TRXJyb3IgKmVyciA9IG5pbDsKLSAgICBhdXRvIG9iamVjdCA9IHJldGFpblB0
cihbTlNLZXllZFVuYXJjaGl2ZXIgdW5hcmNoaXZlZE9iamVjdE9mQ2xhc3M6W05TT2JqZWN0IGNs
YXNzXSBmcm9tRGF0YTplbmNvZGVkRGF0YS5nZXQoKSBlcnJvcjomZXJyXSk7Ci0gICAgQVNTRVJU
X1RSVUUoIWVycik7Ci0gICAgQVNTRVJUX1RSVUUob2JqZWN0KTsKLSAgICBBU1NFUlRfVFJVRShb
b2JqZWN0IGlzRXF1YWw6Y2hhbmdlZEFycmF5XSk7CisgICAgZm9yICg7OykgeworICAgICAgICBh
dXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFsdWUoKTsKKyAgICAgICAgYXV0byBlbmNv
ZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0
cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOworICAgICAgICBBU1NFUlRfVFJVRShlbmNv
ZGVkRGF0YSk7CisgICAgICAgIE5TRXJyb3IgKmVyciA9IG5pbDsKKyAgICAgICAgYXV0byBvYmpl
Y3QgPSByZXRhaW5QdHIoW05TS2V5ZWRVbmFyY2hpdmVyIHVuYXJjaGl2ZWRPYmplY3RPZkNsYXNz
OltOU09iamVjdCBjbGFzc10gZnJvbURhdGE6ZW5jb2RlZERhdGEuZ2V0KCkgZXJyb3I6JmVycl0p
OworICAgICAgICBpZiAoW29iamVjdCBpc0VxdWFsOmNoYW5nZWRBcnJheV0pCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAg
ICB9CiAKICAgICBDTEVBUl9ERUZBVUxUUygpOwogfQpAQCAtMjY3LDE1ICsyNjgsMTcgQEAgVEVT
VChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQogICAgIH07CiAgICAgW3VzZXJE
ZWZhdWx0cyBzZXRPYmplY3Q6Y2hhbmdlZERpY3QgZm9yS2V5OihOU1N0cmluZyAqKVRFU1RfS0VZ
KCldOwogCi0gICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZhbHVlKCk7Ci0gICAg
YXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0
RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwotICAgIEFTU0VSVF9UUlVF
KGVuY29kZWREYXRhKTsKLSAgICBOU0Vycm9yICplcnIgPSBuaWw7Ci0gICAgYXV0byBvYmplY3Qg
PSByZXRhaW5QdHIoW05TS2V5ZWRVbmFyY2hpdmVyIHVuYXJjaGl2ZWRPYmplY3RPZkNsYXNzOltO
U09iamVjdCBjbGFzc10gZnJvbURhdGE6ZW5jb2RlZERhdGEuZ2V0KCkgZXJyb3I6JmVycl0pOwot
ICAgIEFTU0VSVF9UUlVFKCFlcnIpOwotICAgIEFTU0VSVF9UUlVFKG9iamVjdCk7Ci0gICAgQVNT
RVJUX1RSVUUoW29iamVjdCBpc0VxdWFsOmNoYW5nZWREaWN0XSk7Ci0KKyAgICBmb3IgKDs7KSB7
CisgICAgICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VWYWx1ZSgpOworICAgICAg
ICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNl
NjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczowXSk7CisgICAgICAgIEFTU0VS
VF9UUlVFKGVuY29kZWREYXRhKTsKKyAgICAgICAgTlNFcnJvciAqZXJyID0gbmlsOworICAgICAg
ICBhdXRvIG9iamVjdCA9IHJldGFpblB0cihbTlNLZXllZFVuYXJjaGl2ZXIgdW5hcmNoaXZlZE9i
amVjdE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNzXSBmcm9tRGF0YTplbmNvZGVkRGF0YS5nZXQoKSBl
cnJvcjomZXJyXSk7CisgICAgICAgIGlmIChbb2JqZWN0IGlzRXF1YWw6Y2hhbmdlZERpY3RdKQor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5M
b29wKCk7CisgICAgfQorICAgIAogICAgIENMRUFSX0RFRkFVTFRTKCk7CiB9CiAKQEAgLTMwNiwx
NSArMzA5LDE3IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGEpCiAgICAgTlNE
YXRhICpjaGFuZ2VkRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiYWJjZCIgbGVuZ3RoOjRd
OwogICAgIFt1c2VyRGVmYXVsdHMgc2V0T2JqZWN0OmNoYW5nZWREYXRhIGZvcktleTooTlNTdHJp
bmcgKilURVNUX0tFWSgpXTsKIAotICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VW
YWx1ZSgpOwotICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsKLSAg
ICBBU1NFUlRfVFJVRShlbmNvZGVkRGF0YSk7Ci0gICAgTlNFcnJvciAqZXJyID0gbmlsOwotICAg
IGF1dG8gb2JqZWN0ID0gcmV0YWluUHRyKFtOU0tleWVkVW5hcmNoaXZlciB1bmFyY2hpdmVkT2Jq
ZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZyb21EYXRhOmVuY29kZWREYXRhLmdldCgpIGVy
cm9yOiZlcnJdKTsKLSAgICBBU1NFUlRfVFJVRSghZXJyKTsKLSAgICBBU1NFUlRfVFJVRShvYmpl
Y3QpOwotICAgIEFTU0VSVF9UUlVFKFtvYmplY3QgaXNFcXVhbDpjaGFuZ2VkRGF0YV0pOwotCisg
ICAgZm9yICg7OykgeworICAgICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNlVmFs
dWUoKTsKKyAgICAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2Nd
IGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwor
ICAgICAgICBBU1NFUlRfVFJVRShlbmNvZGVkRGF0YSk7CisgICAgICAgIE5TRXJyb3IgKmVyciA9
IG5pbDsKKyAgICAgICAgYXV0byBvYmplY3QgPSByZXRhaW5QdHIoW05TS2V5ZWRVbmFyY2hpdmVy
IHVuYXJjaGl2ZWRPYmplY3RPZkNsYXNzOltOU09iamVjdCBjbGFzc10gZnJvbURhdGE6ZW5jb2Rl
ZERhdGEuZ2V0KCkgZXJyb3I6JmVycl0pOworICAgICAgICBpZiAoW29iamVjdCBpc0VxdWFsOmNo
YW5nZWREYXRhXSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpzcGluUnVuTG9vcCgpOworICAgIH0KKyAgICAKICAgICBDTEVBUl9ERUZBVUxUUygpOwog
fQogCkBAIC0zNDUsMTQgKzM1MCwxNiBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNE
YXRlKQogICAgIE5TRGF0ZSAqY2hhbmdlZERhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVy
dmFsU2luY2VOb3c6MTBdOwogICAgIFt1c2VyRGVmYXVsdHMgc2V0T2JqZWN0OmNoYW5nZWREYXRl
IGZvcktleTooTlNTdHJpbmcgKilURVNUX0tFWSgpXTsKIAotICAgIGF1dG8gZW5jb2RlZFN0cmlu
ZyA9IHByZWZlcmVuY2VWYWx1ZSgpOwotICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtb
TlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBv
cHRpb25zOjBdKTsKLSAgICBBU1NFUlRfVFJVRShlbmNvZGVkRGF0YSk7Ci0gICAgTlNFcnJvciAq
ZXJyID0gbmlsOwotICAgIGF1dG8gb2JqZWN0ID0gcmV0YWluUHRyKFtOU0tleWVkVW5hcmNoaXZl
ciB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZyb21EYXRhOmVuY29k
ZWREYXRhLmdldCgpIGVycm9yOiZlcnJdKTsKLSAgICBBU1NFUlRfVFJVRSghZXJyKTsKLSAgICBB
U1NFUlRfVFJVRShvYmplY3QpOwotICAgIEFTU0VSVF9UUlVFKFtvYmplY3QgaXNFcXVhbDpjaGFu
Z2VkRGF0ZV0pOworICAgIGZvciAoOzspIHsKKyAgICAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0g
cHJlZmVyZW5jZVZhbHVlKCk7CisgICAgICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtb
TlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBv
cHRpb25zOjBdKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoZW5jb2RlZERhdGEpOworICAgICAgICBO
U0Vycm9yICplcnIgPSBuaWw7CisgICAgICAgIGF1dG8gb2JqZWN0ID0gcmV0YWluUHRyKFtOU0tl
eWVkVW5hcmNoaXZlciB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZy
b21EYXRhOmVuY29kZWREYXRhLmdldCgpIGVycm9yOiZlcnJdKTsKKyAgICAgICAgaWYgKFtvYmpl
Y3QgaXNFcXVhbDpjaGFuZ2VkRGF0ZV0pCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAgICB9CiAKICAgICBDTEVBUl9ERUZB
VUxUUygpOwogfQpAQCAtMzgyLDExICszODksMTEgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VD
aGFuZ2VzTmlsKQogCiAgICAgW3VzZXJEZWZhdWx0cyBzZXRPYmplY3Q6bmlsIGZvcktleTooTlNT
dHJpbmcgKilURVNUX0tFWSgpXTsKIAotICAgIEVYUEVDVF9FUSgwLCBwcmVmZXJlbmNlVmFsdWUo
KSk7CisgICAgd2hpbGUgKHByZWZlcmVuY2VWYWx1ZSgpKQorICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpzcGluUnVuTG9vcCgpOwogCiAgICAgQ0xFQVJfREVGQVVMVFMoKTsKIH0KLSNlbmRp
ZiAvLyBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAx
MTAwMDAKIAogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogc3RhdGljIElNUCBzaGFy
ZWRJbnN0YW5jZU1ldGhvZE9yaWdpbmFsID0gbmlsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443103</attachid>
            <date>2021-11-02 10:17:04 -0700</date>
            <delta_ts>2021-11-02 14:48:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221848-20211102101702.patch</filename>
            <type>text/plain</type>
            <size>7953</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI4NTE0NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDIxLTExLTAxICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJFR1JFU1NJT04gKHIyNjg0MjEpOiBUZXN0V2ViS2l0QVBJLldlYktpdC5QcmVmZXJl
bmNlQ2hhbmdlcyogdGVzdHMgYXJlIGZsYWt5IGZhaWx1cmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE4NDgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcwOTY2Mzc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFmdGVyIHIyNjg0MjEsIHRoZSBwcmVmZXJlbmNlcyBhcmUgc2V0IGFzeW5jaHJvbm91
c2x5IGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MsIHdoaWNoIGludHJvZHVjZWQgdGhpcyBmbGFr
aW5lc3MuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIHRoaXMgYnkgbW9kaWZ5aW5nIHRo
ZSBmbGFreSB0ZXN0cyB0byBsb29wIHVudGlsIHRoZSBwcmVmZXJlbmNlIHZhbHVlIGlzIGVxdWFs
IHRvIHRoZSBleHBlY3RlZAorICAgICAgICB2YWx1ZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1ByZWZlcmVuY2VDaGFuZ2VzLm1tOgorICAgICAgICAoVEVTVCk6CisK
IDIwMjEtMTEtMDEgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFt3ZWJraXRzY21weV0gT25seSByZXNwZWN0IHRoZSBsYXRlc3QgcmV2aWV3CkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hhbmdlcy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmVmZXJlbmNlQ2hh
bmdlcy5tbQkocmV2aXNpb24gMjg0NzgzKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvUHJlZmVyZW5jZUNoYW5nZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDkg
QEAgc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHRlc3REb21haW4gPSBDRgogICAgIENGUHJlZmVy
ZW5jZXNTZXRBcHBWYWx1ZShURVNUX0tFWSgpLCBuaWwsIHRlc3REb21haW4pOyBcCiB9CiAKK3N0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgcHJlZmVyZW5jZVF1ZXJ5TWF4Q291bnQgPSAxMDsKK3N0
YXRpYyBjb25zdGV4cHIgZmxvYXQgcHJlZmVyZW5jZVF1ZXJ5U2xlZXBUaW1lID0gMTsKKwogc3Rh
dGljIHZvaWQgd2FpdEZvclByZWZlcmVuY2VTeW5jaHJvbml6YXRpb24oKQogewogICAgIF9fYmxv
Y2sgYm9vbCBkaWRTeW5jaHJvbml6ZSA9IGZhbHNlOwpAQCAtMTUxLDggKzE1NCw2IEBAIFRFU1Qo
V2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlcykKICAgICBDTEVBUl9ERUZBVUxUUygpOwogfQogCi0v
LyBGSVhNRTogUmUtZW5hYmxlIHRoZXNlIHRlc3RzIG9uY2Ugd2Via2l0Lm9yZy9iLzIyMTg0OCAg
aXMgcmVzb2x2ZWQuCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEIDwgMTEwMDAwCiBURVNUKFdlYktpdCwgR2xvYmFsUHJlZmVyZW5jZUNoYW5nZXNV
c2luZ0RlZmF1bHRzV3JpdGUpCiB7CiAgICAgQ0xFQVJfREVGQVVMVFMoKTsKQEAgLTE4MSw3ICsx
ODIsNyBAQCBURVNUKFdlYktpdCwgR2xvYmFsUHJlZmVyZW5jZUNoYW5nZXNVc2luCiAgICAgICAg
IHJldHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXS5pbnRWYWx1
ZTsKICAgICB9OwogCi0gICAgRVhQRUNUX0VRKHByZWZlcmVuY2VWYWx1ZSgpLCAxKTsKKyAgICBw
cmVmZXJlbmNlVmFsdWUoKTsKIAogICAgIHJlY2VpdmVkUHJlZmVyZW5jZU5vdGlmaWNhdGlvbiA9
IGZhbHNlOwogCkBAIC0xODksNiArMTkwLDExIEBAIFRFU1QoV2ViS2l0LCBHbG9iYWxQcmVmZXJl
bmNlQ2hhbmdlc1VzaW4KIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRQ
cmVmZXJlbmNlTm90aWZpY2F0aW9uKTsKIAorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBw
cmVmZXJlbmNlUXVlcnlNYXhDb3VudCAmJiBwcmVmZXJlbmNlVmFsdWUoKSAhPSAyOyBpKyspIHsK
KyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAgICAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6c2xlZXAocHJlZmVyZW5jZVF1ZXJ5U2xlZXBUaW1lKTsKKyAgICB9
CisKICAgICBFWFBFQ1RfRVEocHJlZmVyZW5jZVZhbHVlKCksIDIpOwogCiAgICAgQ0xFQVJfREVG
QVVMVFMoKTsKQEAgLTIyMSwxMyArMjI3LDE3IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hh
bmdlc0FycmF5KQogICAgIE5TQXJyYXkgKmNoYW5nZWRBcnJheSA9IEBbQDMsIEAyLCBAMV07CiAg
ICAgW3VzZXJEZWZhdWx0cyBzZXRPYmplY3Q6Y2hhbmdlZEFycmF5IGZvcktleTooTlNTdHJpbmcg
KilURVNUX0tFWSgpXTsKIAotICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VWYWx1
ZSgpOwotICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0
V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsKLSAgICBB
U1NFUlRfVFJVRShlbmNvZGVkRGF0YSk7Ci0gICAgTlNFcnJvciAqZXJyID0gbmlsOwotICAgIGF1
dG8gb2JqZWN0ID0gcmV0YWluUHRyKFtOU0tleWVkVW5hcmNoaXZlciB1bmFyY2hpdmVkT2JqZWN0
T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZyb21EYXRhOmVuY29kZWREYXRhLmdldCgpIGVycm9y
OiZlcnJdKTsKLSAgICBBU1NFUlRfVFJVRSghZXJyKTsKLSAgICBBU1NFUlRfVFJVRShvYmplY3Qp
OworICAgIFJldGFpblB0cjxOU09iamVjdD4gb2JqZWN0OworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBwcmVmZXJlbmNlUXVlcnlNYXhDb3VudCAmJiAhW29iamVjdCBpc0VxdWFsOmNoYW5n
ZWRBcnJheV07IGkrKykgeworICAgICAgICBhdXRvIGVuY29kZWRTdHJpbmcgPSBwcmVmZXJlbmNl
VmFsdWUoKTsKKyAgICAgICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxs
b2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0p
OworICAgICAgICBBU1NFUlRfVFJVRShlbmNvZGVkRGF0YSk7CisgICAgICAgIE5TRXJyb3IgKmVy
ciA9IG5pbDsKKyAgICAgICAgb2JqZWN0ID0gcmV0YWluUHRyKFtOU0tleWVkVW5hcmNoaXZlciB1
bmFyY2hpdmVkT2JqZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZyb21EYXRhOmVuY29kZWRE
YXRhLmdldCgpIGVycm9yOiZlcnJdKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3Bp
blJ1bkxvb3AoKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAocHJlZmVyZW5j
ZVF1ZXJ5U2xlZXBUaW1lKTsKKyAgICB9CisKICAgICBBU1NFUlRfVFJVRShbb2JqZWN0IGlzRXF1
YWw6Y2hhbmdlZEFycmF5XSk7CiAKICAgICBDTEVBUl9ERUZBVUxUUygpOwpAQCAtMjY3LDEzICsy
NzcsMTcgQEAgVEVTVChXZWJLaXQsIFByZWZlcmVuY2VDaGFuZ2VzRGljdGlvbmFyeQogICAgIH07
CiAgICAgW3VzZXJEZWZhdWx0cyBzZXRPYmplY3Q6Y2hhbmdlZERpY3QgZm9yS2V5OihOU1N0cmlu
ZyAqKVRFU1RfS0VZKCldOwogCi0gICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5jZVZh
bHVlKCk7Ci0gICAgYXV0byBlbmNvZGVkRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGlu
aXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzplbmNvZGVkU3RyaW5nIG9wdGlvbnM6MF0pOwotICAg
IEFTU0VSVF9UUlVFKGVuY29kZWREYXRhKTsKLSAgICBOU0Vycm9yICplcnIgPSBuaWw7Ci0gICAg
YXV0byBvYmplY3QgPSByZXRhaW5QdHIoW05TS2V5ZWRVbmFyY2hpdmVyIHVuYXJjaGl2ZWRPYmpl
Y3RPZkNsYXNzOltOU09iamVjdCBjbGFzc10gZnJvbURhdGE6ZW5jb2RlZERhdGEuZ2V0KCkgZXJy
b3I6JmVycl0pOwotICAgIEFTU0VSVF9UUlVFKCFlcnIpOwotICAgIEFTU0VSVF9UUlVFKG9iamVj
dCk7CisgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBvYmplY3Q7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHByZWZlcmVuY2VRdWVyeU1heENvdW50ICYmICFbb2JqZWN0IGlzRXF1YWw6Y2hh
bmdlZERpY3RdOyBpKyspIHsKKyAgICAgICAgYXV0byBlbmNvZGVkU3RyaW5nID0gcHJlZmVyZW5j
ZVZhbHVlKCk7CisgICAgICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFs
bG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBd
KTsKKyAgICAgICAgQVNTRVJUX1RSVUUoZW5jb2RlZERhdGEpOworICAgICAgICBOU0Vycm9yICpl
cnIgPSBuaWw7CisgICAgICAgIG9iamVjdCA9IHJldGFpblB0cihbTlNLZXllZFVuYXJjaGl2ZXIg
dW5hcmNoaXZlZE9iamVjdE9mQ2xhc3M6W05TT2JqZWN0IGNsYXNzXSBmcm9tRGF0YTplbmNvZGVk
RGF0YS5nZXQoKSBlcnJvcjomZXJyXSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNw
aW5SdW5Mb29wKCk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKHByZWZlcmVu
Y2VRdWVyeVNsZWVwVGltZSk7CisgICAgfQorICAgIAogICAgIEFTU0VSVF9UUlVFKFtvYmplY3Qg
aXNFcXVhbDpjaGFuZ2VkRGljdF0pOwogCiAgICAgQ0xFQVJfREVGQVVMVFMoKTsKQEAgLTMwNiwx
MyArMzIwLDE3IEBAIFRFU1QoV2ViS2l0LCBQcmVmZXJlbmNlQ2hhbmdlc0RhdGEpCiAgICAgTlNE
YXRhICpjaGFuZ2VkRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiYWJjZCIgbGVuZ3RoOjRd
OwogICAgIFt1c2VyRGVmYXVsdHMgc2V0T2JqZWN0OmNoYW5nZWREYXRhIGZvcktleTooTlNTdHJp
bmcgKilURVNUX0tFWSgpXTsKIAotICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVuY2VW
YWx1ZSgpOwotICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsKLSAg
ICBBU1NFUlRfVFJVRShlbmNvZGVkRGF0YSk7Ci0gICAgTlNFcnJvciAqZXJyID0gbmlsOwotICAg
IGF1dG8gb2JqZWN0ID0gcmV0YWluUHRyKFtOU0tleWVkVW5hcmNoaXZlciB1bmFyY2hpdmVkT2Jq
ZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZyb21EYXRhOmVuY29kZWREYXRhLmdldCgpIGVy
cm9yOiZlcnJdKTsKLSAgICBBU1NFUlRfVFJVRSghZXJyKTsKLSAgICBBU1NFUlRfVFJVRShvYmpl
Y3QpOworICAgIFJldGFpblB0cjxOU09iamVjdD4gb2JqZWN0OworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwcmVmZXJlbmNlUXVlcnlNYXhDb3VudCAmJiAhW29iamVjdCBpc0VxdWFsOmNo
YW5nZWREYXRhXTsgaSsrKSB7CisgICAgICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVu
Y2VWYWx1ZSgpOworICAgICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0YSBh
bGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9uczow
XSk7CisgICAgICAgIEFTU0VSVF9UUlVFKGVuY29kZWREYXRhKTsKKyAgICAgICAgTlNFcnJvciAq
ZXJyID0gbmlsOworICAgICAgICBvYmplY3QgPSByZXRhaW5QdHIoW05TS2V5ZWRVbmFyY2hpdmVy
IHVuYXJjaGl2ZWRPYmplY3RPZkNsYXNzOltOU09iamVjdCBjbGFzc10gZnJvbURhdGE6ZW5jb2Rl
ZERhdGEuZ2V0KCkgZXJyb3I6JmVycl0pOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpz
cGluUnVuTG9vcCgpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcChwcmVmZXJl
bmNlUXVlcnlTbGVlcFRpbWUpOworICAgIH0KKyAgICAKICAgICBBU1NFUlRfVFJVRShbb2JqZWN0
IGlzRXF1YWw6Y2hhbmdlZERhdGFdKTsKIAogICAgIENMRUFSX0RFRkFVTFRTKCk7CkBAIC0zNDUs
MTMgKzM2MywxNyBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNEYXRlKQogICAgIE5T
RGF0ZSAqY2hhbmdlZERhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6
MTBdOwogICAgIFt1c2VyRGVmYXVsdHMgc2V0T2JqZWN0OmNoYW5nZWREYXRlIGZvcktleTooTlNT
dHJpbmcgKilURVNUX0tFWSgpXTsKIAotICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZlcmVu
Y2VWYWx1ZSgpOwotICAgIGF1dG8gZW5jb2RlZERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9j
XSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6ZW5jb2RlZFN0cmluZyBvcHRpb25zOjBdKTsK
LSAgICBBU1NFUlRfVFJVRShlbmNvZGVkRGF0YSk7Ci0gICAgTlNFcnJvciAqZXJyID0gbmlsOwot
ICAgIGF1dG8gb2JqZWN0ID0gcmV0YWluUHRyKFtOU0tleWVkVW5hcmNoaXZlciB1bmFyY2hpdmVk
T2JqZWN0T2ZDbGFzczpbTlNPYmplY3QgY2xhc3NdIGZyb21EYXRhOmVuY29kZWREYXRhLmdldCgp
IGVycm9yOiZlcnJdKTsKLSAgICBBU1NFUlRfVFJVRSghZXJyKTsKLSAgICBBU1NFUlRfVFJVRShv
YmplY3QpOworICAgIFJldGFpblB0cjxOU09iamVjdD4gb2JqZWN0OworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBwcmVmZXJlbmNlUXVlcnlNYXhDb3VudCAmJiAhW29iamVjdCBpc0VxdWFs
OmNoYW5nZWREYXRlXTsgaSsrKSB7CisgICAgICAgIGF1dG8gZW5jb2RlZFN0cmluZyA9IHByZWZl
cmVuY2VWYWx1ZSgpOworICAgICAgICBhdXRvIGVuY29kZWREYXRhID0gYWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmVuY29kZWRTdHJpbmcgb3B0aW9u
czowXSk7CisgICAgICAgIEFTU0VSVF9UUlVFKGVuY29kZWREYXRhKTsKKyAgICAgICAgTlNFcnJv
ciAqZXJyID0gbmlsOworICAgICAgICBvYmplY3QgPSByZXRhaW5QdHIoW05TS2V5ZWRVbmFyY2hp
dmVyIHVuYXJjaGl2ZWRPYmplY3RPZkNsYXNzOltOU09iamVjdCBjbGFzc10gZnJvbURhdGE6ZW5j
b2RlZERhdGEuZ2V0KCkgZXJyb3I6JmVycl0pOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpzcGluUnVuTG9vcCgpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcChwcmVm
ZXJlbmNlUXVlcnlTbGVlcFRpbWUpOworICAgIH0KKyAgICAKICAgICBBU1NFUlRfVFJVRShbb2Jq
ZWN0IGlzRXF1YWw6Y2hhbmdlZERhdGVdKTsKIAogICAgIENMRUFSX0RFRkFVTFRTKCk7CkBAIC0z
ODIsMTEgKzQwNCwxNSBAQCBURVNUKFdlYktpdCwgUHJlZmVyZW5jZUNoYW5nZXNOaWwpCiAKICAg
ICBbdXNlckRlZmF1bHRzIHNldE9iamVjdDpuaWwgZm9yS2V5OihOU1N0cmluZyAqKVRFU1RfS0VZ
KCldOwogCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByZWZlcmVuY2VRdWVyeU1heENv
dW50ICYmIHByZWZlcmVuY2VWYWx1ZSgpOyBpKyspIHsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAo
cHJlZmVyZW5jZVF1ZXJ5U2xlZXBUaW1lKTsKKyAgICB9CisgICAgCiAgICAgRVhQRUNUX0VRKDAs
IHByZWZlcmVuY2VWYWx1ZSgpKTsKIAogICAgIENMRUFSX0RFRkFVTFRTKCk7CiB9Ci0jZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTEw
MDAwCiAKICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKIHN0YXRpYyBJTVAgc2hhcmVk
SW5zdGFuY2VNZXRob2RPcmlnaW5hbCA9IG5pbDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>