<?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>198050</bug_id>
          
          <creation_ts>2019-05-20 13:02:27 -0700</creation_ts>
          <short_desc>Handling for non-persistent data should be consistent in computeNetworkProcessAccessTypeForDataFetch</short_desc>
          <delta_ts>2019-05-23 13:24:30 -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>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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1537670</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-05-20 13:02:27 -0700</bug_when>
    <thetext>... as title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538459</commentid>
    <comment_count>1</comment_count>
      <attachid>370465</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-05-22 16:38:36 -0700</bug_when>
    <thetext>Created attachment 370465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538662</commentid>
    <comment_count>2</comment_count>
      <attachid>370465</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-05-23 08:55:42 -0700</bug_when>
    <thetext>Comment on attachment 370465
Patch

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

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:223
&gt; +            break;

Nice to use ownerProcess.

There is probably no need for std::max.
We could write it as:
bool hasNetworkDataType =  WTF::anyOf(dataTypes, [](auto&amp; type) { return type == WebsiteDataProcessType::Network; });
if (!hasNetworkType)
   return ProcessAccessType::None;
return isNonPersistentStore ? ... 

Can we add an API test as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538733</commentid>
    <comment_count>3</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-05-23 11:45:04 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Comment on attachment 370465 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370465&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:223
&gt; &gt; +            break;
&gt; 
&gt; Nice to use ownerProcess.
&gt; 
&gt; There is probably no need for std::max.
&gt; We could write it as:
&gt; bool hasNetworkDataType =  WTF::anyOf(dataTypes, [](auto&amp; type) { return
&gt; type == WebsiteDataProcessType::Network; });
&gt; if (!hasNetworkType)
&gt;    return ProcessAccessType::None;
&gt; return isNonPersistentStore ? ... 
&gt; 

I tried this before uploading the patch, anyOf doesn&apos;t work when iterating OptionSet as it uses lvalue reference.

&gt; Can we add an API test as well?

It turns out websiteDataStore will create temporary processPool for the datastore operations. The processpool is gone when operation finishes, so we cannot check whether it has network process in the operation callback.

Any other idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538736</commentid>
    <comment_count>4</comment_count>
      <attachid>370514</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-05-23 11:50:24 -0700</bug_when>
    <thetext>Created attachment 370514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538737</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-05-23 12:08:04 -0700</bug_when>
    <thetext>&gt; I tried this before uploading the patch, anyOf doesn&apos;t work when iterating
&gt; OptionSet as it uses lvalue reference.

Can you simplify the patch by not using std::max?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538738</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-05-23 12:08:48 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #4)
&gt; Created attachment 370514 [details]
&gt; Patch

Already done... r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538739</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-05-23 12:09:27 -0700</bug_when>
    <thetext>As of the test, we should be able to remove non persistent data from the network process in memory structures. Then we can write such test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538747</commentid>
    <comment_count>8</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-05-23 12:20:10 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; As of the test, we should be able to remove non persistent data from the
&gt; network process in memory structures. Then we can write such test.

True, currently data of non-persistent datastore will not be fetched or removed from network process, because webprocesspool will not be associated with a non-persistent store and data is only fetched or removed from network process of associated processpool.

Probably we should either:
1. make websitedatastore tries to operate on all processpools, no matter they are associated or not
or
2. let processpool keep track of all websitedatastores in use</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538762</commentid>
    <comment_count>9</comment_count>
      <attachid>370514</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-23 13:23:07 -0700</bug_when>
    <thetext>Comment on attachment 370514
Patch

Clearing flags on attachment: 370514

Committed r245709: &lt;https://trac.webkit.org/changeset/245709&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538763</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-23 13:23:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538765</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-23 13:24:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/51080078&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370465</attachid>
            <date>2019-05-22 16:38:36 -0700</date>
            <delta_ts>2019-05-23 12:07:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198050-20190522163835.patch</filename>
            <type>text/plain</type>
            <size>3488</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY4YWI2ZWNkMDBmZjBiZjI5
NTljMGIxMjVhMmI5NDQyYjdiNzViNTkuLjQwOTEwMTRkOTQwZjUyYzNiZjc5ZmFkOWQyNDc4YjFj
OWI2MTI0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDUtMjIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxpbmcgZm9yIG5vbi1wZXJz
aXN0ZW50IGRhdGEgc2hvdWxkIGJlIGNvbnNpc3RlbnQgaW4gY29tcHV0ZU5ldHdvcmtQcm9jZXNz
QWNjZXNzVHlwZUZvckRhdGFGZXRjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk4MDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmNvbXB1dGVOZXR3b3JrUHJvY2Vzc0FjY2Vzc1R5cGVGb3JE
YXRhRmV0Y2gpOgorCiAyMDE5LTA1LTIyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gQ29tcGF0aWJpbGl0eSBtb3VzZSBldmVudHMgYXJlbid0IHBy
ZXZlbnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZhdWx0KCkgb24gcG9pbnRlcmRvd24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAKaW5kZXggZjVmZjE2YWRkNDVkMmY2MGY2NzdkZWY1MTI3OGVmMWQ1YjI3Zjk3Ni4u
ZmZhYmQ3YWMzZWZiMWFkNmQ1MmNiMjhkMDQ5ZjFmZTRjYmUyNWQ5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAKQEAgLTIxNCw0MSArMjE0LDE2IEBAIHN0YXRpYyBQcm9jZXNzQWNjZXNzVHlwZSBjb21wdXRl
TmV0d29ya1Byb2Nlc3NBY2Nlc3NUeXBlRm9yRGF0YUZldGNoKE9wdGlvblNldDxXCiB7CiAgICAg
UHJvY2Vzc0FjY2Vzc1R5cGUgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBQcm9jZXNzQWNjZXNzVHlwZTo6
Tm9uZTsKIAotICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpDb29r
aWVzKSkgewotICAgICAgICBpZiAoaXNOb25QZXJzaXN0ZW50U3RvcmUpCi0gICAgICAgICAgICBw
cm9jZXNzQWNjZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nlc3NUeXBlLCBQcm9jZXNzQWNj
ZXNzVHlwZTo6T25seUlmTGF1bmNoZWQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwcm9j
ZXNzQWNjZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nlc3NUeXBlLCBQcm9jZXNzQWNjZXNz
VHlwZTo6TGF1bmNoKTsKLSAgICB9Ci0KLSAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6Q3JlZGVudGlhbHMpICYmIGlzTm9uUGVyc2lzdGVudFN0b3JlKQotICAgICAg
ICBwcm9jZXNzQWNjZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nlc3NUeXBlLCBQcm9jZXNz
QWNjZXNzVHlwZTo6T25seUlmTGF1bmNoZWQpOwotCi0gICAgaWYgKGRhdGFUeXBlcy5jb250YWlu
cyhXZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNoZSkgJiYgIWlzTm9uUGVyc2lzdGVudFN0b3JlKQot
ICAgICAgICBwcm9jZXNzQWNjZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nlc3NUeXBlLCBQ
cm9jZXNzQWNjZXNzVHlwZTo6TGF1bmNoKTsKLQotICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMo
V2Vic2l0ZURhdGFUeXBlOjpTZXNzaW9uU3RvcmFnZSkpCi0gICAgICAgIHByb2Nlc3NBY2Nlc3NU
eXBlID0gc3RkOjptYXgocHJvY2Vzc0FjY2Vzc1R5cGUsIFByb2Nlc3NBY2Nlc3NUeXBlOjpPbmx5
SWZMYXVuY2hlZCk7Ci0gICAgCi0gICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkxvY2FsU3RvcmFnZSkpIHsKLSAgICAgICAgaWYgKGlzTm9uUGVyc2lzdGVudFN0b3Jl
KQotICAgICAgICAgICAgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBzdGQ6Om1heChwcm9jZXNzQWNjZXNz
VHlwZSwgUHJvY2Vzc0FjY2Vzc1R5cGU6Ok9ubHlJZkxhdW5jaGVkKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBzdGQ6Om1heChwcm9jZXNzQWNjZXNzVHlw
ZSwgUHJvY2Vzc0FjY2Vzc1R5cGU6OkxhdW5jaCk7CisgICAgZm9yIChhdXRvIGRhdGFUeXBlIDog
ZGF0YVR5cGVzKSB7CisgICAgICAgIGlmIChXZWJzaXRlRGF0YTo6b3duZXJQcm9jZXNzKGRhdGFU
eXBlKSA9PSBXZWJzaXRlRGF0YVByb2Nlc3NUeXBlOjpOZXR3b3JrKSB7CisgICAgICAgICAgICBp
ZiAoaXNOb25QZXJzaXN0ZW50U3RvcmUpCisgICAgICAgICAgICAgICAgcHJvY2Vzc0FjY2Vzc1R5
cGUgPSBzdGQ6Om1heChwcm9jZXNzQWNjZXNzVHlwZSwgUHJvY2Vzc0FjY2Vzc1R5cGU6Ok9ubHlJ
ZkxhdW5jaGVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwcm9jZXNzQWNj
ZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nlc3NUeXBlLCBQcm9jZXNzQWNjZXNzVHlwZTo6
TGF1bmNoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgfQogCi0gICAgLy8g
RklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgwNTAuCi0g
ICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkRPTUNhY2hlKSkKLSAg
ICAgICAgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBzdGQ6Om1heChwcm9jZXNzQWNjZXNzVHlwZSwgUHJv
Y2Vzc0FjY2Vzc1R5cGU6OkxhdW5jaCk7Ci0gICAgCi0gICAgaWYgKGRhdGFUeXBlcy5jb250YWlu
cyhXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcykgJiYgIWlzTm9uUGVyc2lzdGVu
dFN0b3JlKQotICAgICAgICBwcm9jZXNzQWNjZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nl
c3NUeXBlLCBQcm9jZXNzQWNjZXNzVHlwZTo6TGF1bmNoKTsKLQotI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKLSAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbnMpICYmICFpc05vblBlcnNpc3RlbnRTdG9yZSkKLSAgICAg
ICAgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBzdGQ6Om1heChwcm9jZXNzQWNjZXNzVHlwZSwgUHJvY2Vz
c0FjY2Vzc1R5cGU6OkxhdW5jaCk7Ci0jZW5kaWYKLQogICAgIHJldHVybiBwcm9jZXNzQWNjZXNz
VHlwZTsKIH0KIAo=
</data>
<flag name="review"
          id="386465"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370514</attachid>
            <date>2019-05-23 11:50:24 -0700</date>
            <delta_ts>2019-05-23 13:23:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198050-20190523115022.patch</filename>
            <type>text/plain</type>
            <size>3607</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMGQ0OTAzOTYxNzM3ZTI5
NmI4NzFkZTVlZTAzNjI3NzU4MjNmNmUuLjcwNGY1NmJmZGZkM2E5N2I4MDQ2NTgzZWYzMDM3YWUy
ZGQzYmYxMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDUtMjMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxpbmcgZm9yIG5vbi1wZXJz
aXN0ZW50IGRhdGEgc2hvdWxkIGJlIGNvbnNpc3RlbnQgaW4gY29tcHV0ZU5ldHdvcmtQcm9jZXNz
QWNjZXNzVHlwZUZvckRhdGFGZXRjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk4MDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmNvbXB1dGVOZXR3b3JrUHJvY2Vzc0FjY2Vzc1R5cGVGb3JE
YXRhRmV0Y2gpOgorCiAyMDE5LTA1LTIyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNDA1NTIpOiBQREYgY29udGVudHMgYXJl
IG5vdCBleHBvc2VkIHRvIEFjY2Vzc2liaWxpdHkgKFZPLCBldGMuKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApp
bmRleCBmNWZmMTZhZGQ0NWQyZjYwZjY3N2RlZjUxMjc4ZWYxZDViMjdmOTc2Li4wYmY1MTEyYTll
NGRiZTY0YjA3ODQ2NTBjMTkxMjkxNmUwOTE5NTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjEy
LDQ0ICsyMTIsMTQgQEAgZW51bSBjbGFzcyBQcm9jZXNzQWNjZXNzVHlwZSB7CiAKIHN0YXRpYyBQ
cm9jZXNzQWNjZXNzVHlwZSBjb21wdXRlTmV0d29ya1Byb2Nlc3NBY2Nlc3NUeXBlRm9yRGF0YUZl
dGNoKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgYm9vbCBpc05vblBlcnNp
c3RlbnRTdG9yZSkKIHsKLSAgICBQcm9jZXNzQWNjZXNzVHlwZSBwcm9jZXNzQWNjZXNzVHlwZSA9
IFByb2Nlc3NBY2Nlc3NUeXBlOjpOb25lOwotCi0gICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OkNvb2tpZXMpKSB7Ci0gICAgICAgIGlmIChpc05vblBlcnNpc3RlbnRT
dG9yZSkKLSAgICAgICAgICAgIHByb2Nlc3NBY2Nlc3NUeXBlID0gc3RkOjptYXgocHJvY2Vzc0Fj
Y2Vzc1R5cGUsIFByb2Nlc3NBY2Nlc3NUeXBlOjpPbmx5SWZMYXVuY2hlZCk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHByb2Nlc3NBY2Nlc3NUeXBlID0gc3RkOjptYXgocHJvY2Vzc0FjY2Vz
c1R5cGUsIFByb2Nlc3NBY2Nlc3NUeXBlOjpMYXVuY2gpOwotICAgIH0KLQotICAgIGlmIChkYXRh
VHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpDcmVkZW50aWFscykgJiYgaXNOb25QZXJz
aXN0ZW50U3RvcmUpCi0gICAgICAgIHByb2Nlc3NBY2Nlc3NUeXBlID0gc3RkOjptYXgocHJvY2Vz
c0FjY2Vzc1R5cGUsIFByb2Nlc3NBY2Nlc3NUeXBlOjpPbmx5SWZMYXVuY2hlZCk7Ci0KLSAgICBp
ZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSAmJiAhaXNO
b25QZXJzaXN0ZW50U3RvcmUpCi0gICAgICAgIHByb2Nlc3NBY2Nlc3NUeXBlID0gc3RkOjptYXgo
cHJvY2Vzc0FjY2Vzc1R5cGUsIFByb2Nlc3NBY2Nlc3NUeXBlOjpMYXVuY2gpOwotCi0gICAgaWYg
KGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OlNlc3Npb25TdG9yYWdlKSkKLSAg
ICAgICAgcHJvY2Vzc0FjY2Vzc1R5cGUgPSBzdGQ6Om1heChwcm9jZXNzQWNjZXNzVHlwZSwgUHJv
Y2Vzc0FjY2Vzc1R5cGU6Ok9ubHlJZkxhdW5jaGVkKTsKLSAgICAKLSAgICBpZiAoZGF0YVR5cGVz
LmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6TG9jYWxTdG9yYWdlKSkgewotICAgICAgICBpZiAo
aXNOb25QZXJzaXN0ZW50U3RvcmUpCi0gICAgICAgICAgICBwcm9jZXNzQWNjZXNzVHlwZSA9IHN0
ZDo6bWF4KHByb2Nlc3NBY2Nlc3NUeXBlLCBQcm9jZXNzQWNjZXNzVHlwZTo6T25seUlmTGF1bmNo
ZWQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwcm9jZXNzQWNjZXNzVHlwZSA9IHN0ZDo6
bWF4KHByb2Nlc3NBY2Nlc3NUeXBlLCBQcm9jZXNzQWNjZXNzVHlwZTo6TGF1bmNoKTsKKyAgICBm
b3IgKGF1dG8gZGF0YVR5cGUgOiBkYXRhVHlwZXMpIHsKKyAgICAgICAgaWYgKFdlYnNpdGVEYXRh
Ojpvd25lclByb2Nlc3MoZGF0YVR5cGUpID09IFdlYnNpdGVEYXRhUHJvY2Vzc1R5cGU6Ok5ldHdv
cmspIHsKKyAgICAgICAgICAgIGlmIChpc05vblBlcnNpc3RlbnRTdG9yZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gUHJvY2Vzc0FjY2Vzc1R5cGU6Ok9ubHlJZkxhdW5jaGVkOworICAgICAgICAg
ICAgcmV0dXJuIFByb2Nlc3NBY2Nlc3NUeXBlOjpMYXVuY2g7CisgICAgICAgIH0KICAgICB9Ci0K
LSAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
ODA1MC4KLSAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RE9NQ2Fj
aGUpKQotICAgICAgICBwcm9jZXNzQWNjZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nlc3NU
eXBlLCBQcm9jZXNzQWNjZXNzVHlwZTo6TGF1bmNoKTsKLSAgICAKLSAgICBpZiAoZGF0YVR5cGVz
LmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6SW5kZXhlZERCRGF0YWJhc2VzKSAmJiAhaXNOb25Q
ZXJzaXN0ZW50U3RvcmUpCi0gICAgICAgIHByb2Nlc3NBY2Nlc3NUeXBlID0gc3RkOjptYXgocHJv
Y2Vzc0FjY2Vzc1R5cGUsIFByb2Nlc3NBY2Nlc3NUeXBlOjpMYXVuY2gpOwotCi0jaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQotICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucykgJiYgIWlzTm9uUGVyc2lzdGVudFN0b3Jl
KQotICAgICAgICBwcm9jZXNzQWNjZXNzVHlwZSA9IHN0ZDo6bWF4KHByb2Nlc3NBY2Nlc3NUeXBl
LCBQcm9jZXNzQWNjZXNzVHlwZTo6TGF1bmNoKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHByb2Nl
c3NBY2Nlc3NUeXBlOworICAgIHJldHVybiBQcm9jZXNzQWNjZXNzVHlwZTo6Tm9uZTsKIH0KIAog
c3RhdGljIFByb2Nlc3NBY2Nlc3NUeXBlIGNvbXB1dGVXZWJQcm9jZXNzQWNjZXNzVHlwZUZvckRh
dGFGZXRjaChPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGJvb2wgaXNOb25Q
ZXJzaXN0ZW50U3RvcmUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>