<?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>205015</bug_id>
          
          <creation_ts>2019-12-09 09:55:54 -0800</creation_ts>
          <short_desc>Navigation from empty page doesn&apos;t use cached web process</short_desc>
          <delta_ts>2019-12-18 21:20:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>205433</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1596866</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-12-09 09:55:54 -0800</bug_when>
    <thetext>When navigating from an empty page to another domain foo.com, we always use the source WebProcess (which is basically uninitialized) rather than using an already-initialized cached WebProcess that has navigated to foo.com. The cached WebProcess should probably be preferred since it has more relevant cached resources available to it (e.g. memory cache, JS bytecode cache, prewarmed fonts, ...).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596871</commentid>
    <comment_count>1</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-12-09 10:04:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/57703742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596873</commentid>
    <comment_count>2</comment_count>
      <attachid>385162</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-12-09 10:06:29 -0800</bug_when>
    <thetext>Created attachment 385162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596874</commentid>
    <comment_count>3</comment_count>
      <attachid>385162</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-12-09 10:07:41 -0800</bug_when>
    <thetext>Comment on attachment 385162
Patch

For perf testing purposes, this mainly affects the first warm page load on Mac PLT5. The perf bots show that this speeds up that first page load by 10-15% across all devices; the overall impact is 0.4%-1.5% depending on the device.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597249</commentid>
    <comment_count>4</comment_count>
      <attachid>385162</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-10 10:46:54 -0800</bug_when>
    <thetext>Comment on attachment 385162
Patch

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

The patch is not safe as is because it causes a process-swap in cases where we know it is not OK to process-swap (e.g. when navigation.openedByDOMWithOpener() returns true). If a page does a window.open() of another, we cannot process swap due to the opener link.

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:2142
&gt; +        if (!targetRegistrableDomain.isEmpty()) {

We should write an API test for this. See existing ProcessSwap API tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598623</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-12-13 23:03:24 -0800</bug_when>
    <thetext>
&gt; The patch is not safe as is because it causes a process-swap in cases where
&gt; we know it is not OK to process-swap (e.g. when
&gt; navigation.openedByDOMWithOpener() returns true). If a page does a
&gt; window.open() of another, we cannot process swap due to the opener link.

Is it possible to add a test for this too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598663</commentid>
    <comment_count>6</comment_count>
      <attachid>385697</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-12-14 13:18:31 -0800</bug_when>
    <thetext>Created attachment 385697
test case for window.open (unused)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598664</commentid>
    <comment_count>7</comment_count>
      <attachid>385698</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-12-14 13:19:17 -0800</bug_when>
    <thetext>Created attachment 385698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598665</commentid>
    <comment_count>8</comment_count>
      <attachid>385698</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-12-14 13:25:43 -0800</bug_when>
    <thetext>Comment on attachment 385698
Patch

I discussed this offline with Chris and he thinks it&apos;s more correct and less error-prone in the future if we move the hasCommittedAnyProvisionalLoads block to near the end of the function after all the special cases (e.g. opened by window.open) have been handled. I&apos;ve done that in this patch.

Note that there are already multiple test cases that test various window.open scenarios, e.g. &quot;if a page does a window.open() of another, we cannot process swap due to the opener link&quot;. Those tests passed with the previous patch and still pass with the current patch with the hasCommittedAnyProvisionalLoads block moved down.

I spent quite a bit of time trying to write a rather convoluted test case that would cause a WebProcess to spawn with an empty document, while also being opened with window.open, but that led to nothing since the sourceProcess always ends up being the process that executed the window.open. See the attached unused test case for an example.

However, I did write a test case for the behavior that I added, which is that we should prefer a cached process over the current process if the current process hasn&apos;t committed any provisional loads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598675</commentid>
    <comment_count>9</comment_count>
      <attachid>385698</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-14 15:20:12 -0800</bug_when>
    <thetext>Comment on attachment 385698
Patch

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

Looks good.

&gt; Source/WebKit/ChangeLog:15
&gt; +        Add an API test.

&quot;Added&quot;

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:2208
&gt; +            LOG(ProcessSwapping, &quot;(ProcessSwapping) Reusing a previously cached process with pid %i to continue navigation to URL %s in place of pid %i that hasn&apos;t committed any provisional loads&quot;, process-&gt;processIdentifier(), targetURL.string().utf8().data(), sourceProcess-&gt;processIdentifier());

I don&apos;t mind you adding a LOG() that contains the URL since this is debug only. However, there should definitely be a RELEASE_LOG() like in the rest of this function to facilitate debugging in release builds. You also cannot log the URL or domain in the RELEASE_LOG() though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598941</commentid>
    <comment_count>10</comment_count>
      <attachid>385776</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-12-16 10:03:33 -0800</bug_when>
    <thetext>Created attachment 385776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598944</commentid>
    <comment_count>11</comment_count>
      <attachid>385776</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-12-16 10:04:44 -0800</bug_when>
    <thetext>Comment on attachment 385776
Patch

The target domain in the LOG doesn&apos;t seem that useful (unless there is a bug in WebProcessCache, which would be a much bigger problem somewhere else), so just remove that and make it a RELEASE_LOG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599550</commentid>
    <comment_count>12</comment_count>
      <attachid>385776</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-17 13:42:29 -0800</bug_when>
    <thetext>Comment on attachment 385776
Patch

Clearing flags on attachment: 385776

Committed r253646: &lt;https://trac.webkit.org/changeset/253646&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599551</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-17 13:42:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600136</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 21:20:24 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 205433</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385162</attachid>
            <date>2019-12-09 10:06:29 -0800</date>
            <delta_ts>2019-12-14 13:19:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205015-20191209100628.patch</filename>
            <type>text/plain</type>
            <size>2660</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ0NTQ0ZGM3NjY5ZDdhNWFk
NGU4MTU0MGI4ZGFiYWU1NzRkMjI4ODguLjQ2NWM1YmU3MDgwYmRmYjVlMmE2MGRiOTY1NmJmNWNh
NTQxMjJlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMTItMDkgIEJlbmphbWlu
IE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBOYXZpZ2F0aW9uIGZyb20gZW1wdHkg
cGFnZSBkb2Vzbid0IHVzZSBjYWNoZWQgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTAxNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGVtcHR5
IHBhZ2UgdG8gYW5vdGhlciBkb21haW4gZm9vLmNvbSwgd2UgYWx3YXlzIHVzZSB0aGUgc291cmNl
CisgICAgICAgIFdlYlByb2Nlc3MgKHdoaWNoIGlzIGJhc2ljYWxseSB1bmluaXRpYWxpemVkKSBy
YXRoZXIgdGhhbiB1c2luZyBhbiBhbHJlYWR5LWluaXRpYWxpemVkCisgICAgICAgIGNhY2hlZCBX
ZWJQcm9jZXNzIHRoYXQgaGFzIG5hdmlnYXRlZCB0byBmb28uY29tLiBUaGUgY2FjaGVkIFdlYlBy
b2Nlc3Mgc2hvdWxkIHByb2JhYmx5IGJlCisgICAgICAgIHByZWZlcnJlZCBzaW5jZSBpdCBoYXMg
bW9yZSByZWxldmFudCBjYWNoZWQgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBpdCAoZS5nLiBtZW1v
cnkgY2FjaGUsIEpTCisgICAgICAgIGJ5dGVjb2RlIGNhY2hlLCBwcmV3YXJtZWQgZm9udHMsIC4u
LikuCisKKyAgICAgICAgVGhpcyBzaG93cyB1cCBhcyBhIDAuNCUgLSAxLjUlIHdpbiBvbiBNYWMg
UExUNSwgZGVwZW5kaW5nIG9uIHRoZSBkZXZpY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJvY2Vz
c0Zvck5hdmlnYXRpb25JbnRlcm5hbCk6CisKIDIwMTktMTItMDIgIFlvc2hpYWtpIEppdHN1a2F3
YSAgPHlvc2hpYWtpLmppdHN1a2F3YUBzb255LmNvbT4KIAogICAgICAgICBSZXNwb25zaXZlbmVz
c1RpbWVyIG1pc3Rha2VubHkgcmVzdGFydHMgaW1tZWRpYXRlbHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0MDI1NTU2YmM5Y2YwYTdiYTQzNzBjMzIx
YmM2YzExYWYyZDYyYWNkLi4zOWFkNzNhOTU1NTk3NjQ2MDY1OGI1MTM0OGU2ZDZhNTM2MzZkMGE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0yMTM5
LDYgKzIxMzksMTMgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb25J
bnRlcm5hbChXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSToKICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc291cmNlUHJvY2VzcyksIG51bGxwdHIsICJBbiBhdXRv
bWF0aW9uIHNlc3Npb24gaXMgYWN0aXZlIl9zKTsKIAogICAgIGlmICghc291cmNlUHJvY2Vzcy0+
aGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcygpKSB7CisgICAgICAgIGlmICghdGFyZ2V0
UmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBwcm9j
ZXNzID0gd2ViUHJvY2Vzc0NhY2hlKCkudGFrZVByb2Nlc3ModGFyZ2V0UmVnaXN0cmFibGVEb21h
aW4sIGRhdGFTdG9yZSkpIHsKKyAgICAgICAgICAgICAgICBMT0coUHJvY2Vzc1N3YXBwaW5nLCAi
KFByb2Nlc3NTd2FwcGluZykgUmV1c2luZyBhIHByZXZpb3VzbHkgY2FjaGVkIHByb2Nlc3Mgd2l0
aCBwaWQgJWkgdG8gY29udGludWUgbmF2aWdhdGlvbiB0byBVUkwgJXMgaW4gcGxhY2Ugb2YgcGlk
ICVpIHRoYXQgaGFzbid0IGNvbW1pdHRlZCBhbnkgcHJvdmlzaW9uYWwgbG9hZHMiLCBwcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCB0YXJnZXRVUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
c291cmNlUHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKHByb2Nlc3MucmVsZWFzZU5vbk51bGwoKSwgbnVsbHB0ciwg
IlJldXNpbmcgY2FjaGVkIHByb2Nlc3MgaW4gcGxhY2Ugb2YgcHJvY2VzcyB0aGF0IGhhc24ndCBj
b21taXR0ZWQgYW55IGxvYWRzIl9zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAg
ICAgIHRyeVByZXdhcm1XaXRoRG9tYWluSW5mb3JtYXRpb24oc291cmNlUHJvY2VzcywgdGFyZ2V0
UmVnaXN0cmFibGVEb21haW4pOwogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShzb3VyY2VQcm9jZXNzKSwgbnVsbHB0ciwgIlByb2Nlc3MgaGFzIG5vdCB5ZXQgY29tbWl0
dGVkIGFueSBwcm92aXNpb25hbCBsb2FkcyJfcyk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>385697</attachid>
            <date>2019-12-14 13:18:31 -0800</date>
            <delta_ts>2019-12-14 13:18:31 -0800</delta_ts>
            <desc>test case for window.open (unused)</desc>
            <filename>window-opener-process-reuse-test-unused.mm</filename>
            <type>text/plain</type>
            <size>3193</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlvbkZyb21FbXB0eURvY3VtZW50V2l0aFNhbWVTaXRl
T3BlbmVyUmV1c2VzUHJvY2VzcykKewogICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24g
PSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICBhdXRvIHByb2Nlc3NQb29sID0g
YWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CgogICAgYXV0byB3ZWJWaWV3Q29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCld
OwogICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsK
ICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL29wZW5fd2luZG93Lmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZVNpdGVXaXRoT3BlbmVy
VGVzdEJ5dGVzXTsKICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwoKICAgIHBpZF90IHBpZDEgPSAw
LCBwaWQyID0gMCwgcGlkMyA9IDAsIHBpZDQgPSAwLCBwaWQ1ID0gMDsKCiAgICBhdXRvIG5hdkRl
bGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
ICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dFdpdGhOYXZpZ2F0aW9uRGVsZWdhdGU6bmF2RGVsZWdhdGUuZ2V0KCldKTsKICAgIFt1aURlbGVn
YXRlIHNldFdlYlZpZXdDbGFzczpbUFNPTkVhZ2VyUHJvY2Vzc0xhdW5jaGluZ1dlYlZpZXcgY2xh
c3NdXTsKCiAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhbW1BTT05FYWdlclByb2Nlc3NMYXVu
Y2hpbmdXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgIFt3ZWJW
aWV3MSBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2RGVsZWdhdGUuZ2V0KCldOwogICAgW3dlYlZp
ZXcxIHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CgogICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICBbd2ViVmlldzEgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CgogICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
ICAgIGRvbmUgPSBmYWxzZTsKICAgIHBpZDEgPSBbd2ViVmlldzEgX3dlYlByb2Nlc3NJZGVudGlm
aWVyXTsKCiAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICBhdXRvIHdlYlZpZXcyID0gYWRv
cHROUyhbW1BTT05FYWdlclByb2Nlc3NMYXVuY2hpbmdXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZp
Z3VyYXRpb24uZ2V0KCldKTsKICAgICAgICBbd2ViVmlldzIgc2V0TmF2aWdhdGlvbkRlbGVnYXRl
Om5hdkRlbGVnYXRlLmdldCgpXTsKICAgICAgICBbd2ViVmlldzIgc2V0VUlEZWxlZ2F0ZTp1aURl
bGVnYXRlLmdldCgpXTsKCiAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBw
bGUuY29tL21haW4uaHRtbCJdXTsKICAgICAgICBbd2ViVmlldzIgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07CgogICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgICAgZG9u
ZSA9IGZhbHNlOwogICAgICAgIHBpZDIgPSBbd2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKCiAgICAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKICAg
ICAgICBbd2ViVmlldzIgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CgogICAgICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgICAgZG9uZSA9IGZhbHNlOwogICAgICAgIHBpZDMg
PSBbd2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAgIH0KCiAgICAvLyB3YWl0IGZv
ciBhcHBsZS5jb20gYW5kIHdlYmtpdC5vcmcgZnJvbSB3ZWJWaWV3MiB0byBlbnRlciBjYWNoZWQg
cHJvY2VzcyBwb29sCiAgICB3aGlsZSAoW3Byb2Nlc3NQb29sIF9wcm9jZXNzQ2FjaGVTaXplXSAh
PSAyKQogICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7CgogICAgcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvb3Blbl93aW5kb3cuaHRtbCJdXTsKICAgIFt3ZWJWaWV3MSBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKCiAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OwogICAgZG9uZSA9IGZhbHNlOwoKICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ3Jl
YXRlV2ViVmlldyk7CiAgICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CgogICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgIGRvbmUgPSBmYWxzZTsKCiAgICBwaWQ0ID0gW3dl
YlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICBwaWQ1ID0gW2NyZWF0ZWRXZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CgogICAgTlNMb2coQCJwaWQxOiAlZCIsIHBpZDEpOwog
ICAgTlNMb2coQCJwaWQyOiAlZCIsIHBpZDIpOwogICAgTlNMb2coQCJwaWQzOiAlZCIsIHBpZDMp
OwogICAgTlNMb2coQCJwaWQ0OiAlZCIsIHBpZDQpOwogICAgTlNMb2coQCJwaWQ1OiAlZCIsIHBp
ZDUpOwoKICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKICAgIEVYUEVDVF9ORShwaWQxLCBwaWQz
KTsKICAgIEVYUEVDVF9FUShwaWQxLCBwaWQ0KTsKICAgIEVYUEVDVF9FUShwaWQxLCBwaWQ1KTsK
fQ==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385698</attachid>
            <date>2019-12-14 13:19:17 -0800</date>
            <delta_ts>2019-12-16 10:03:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205015-20191214131917.patch</filename>
            <type>text/plain</type>
            <size>9943</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4ZjRmYjkzNTE5OTI1N2E2
ZDA0ZTZmOTFlOGQxYWNkN2JiMjIyYzYuLjY0Y2FjZGEwZDBhZjNmNTk2ZmI3MGQ5ZjNmZmY0MDI1
ZDNiOWRiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMTItMTQgIEJlbiBOaGFt
ICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTmF2aWdhdGlvbiBmcm9tIGVtcHR5IHBhZ2Ug
ZG9lc24ndCB1c2UgY2FjaGVkIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3
NzAzNzQyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGVtcHR5IHBhZ2UgdG8gYW5vdGhlciBkb21haW4gZm9v
LmNvbSwgd2UgYWx3YXlzIHVzZSB0aGUgc291cmNlCisgICAgICAgIFdlYlByb2Nlc3MgKHdoaWNo
IGlzIGJhc2ljYWxseSB1bmluaXRpYWxpemVkKSByYXRoZXIgdGhhbiB1c2luZyBhbiBhbHJlYWR5
LWluaXRpYWxpemVkCisgICAgICAgIGNhY2hlZCBXZWJQcm9jZXNzIHRoYXQgaGFzIG5hdmlnYXRl
ZCB0byBmb28uY29tLiBUaGUgY2FjaGVkIFdlYlByb2Nlc3Mgc2hvdWxkIHByb2JhYmx5IGJlCisg
ICAgICAgIHByZWZlcnJlZCBzaW5jZSBpdCBoYXMgbW9yZSByZWxldmFudCBjYWNoZWQgcmVzb3Vy
Y2VzIGF2YWlsYWJsZSB0byBpdCAoZS5nLiBtZW1vcnkgY2FjaGUsIEpTCisgICAgICAgIGJ5dGVj
b2RlIGNhY2hlLCBwcmV3YXJtZWQgZm9udHMsIC4uLikuCisKKyAgICAgICAgQWRkIGFuIEFQSSB0
ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGlu
Zy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9lbnN1cmVSdW5uaW5nUHJvY2Vzc0ZvclRlc3Rp
bmddKToKKyAgICAgICAgQWxsb3dzIHRlc3RzIHRvIGZvcmNlIFdlYlByb2Nlc3MgdG8gbGF1bmNo
IHRvIGFuIGVtcHR5IGRvY3VtZW50IGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBUaGlzCisgICAgICAg
IG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIGhvdyBTYWZhcmkgdXNlcyBXS1dlYlZpZXcuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbCk6IFByZWZlciBjYWNo
ZWQgd2ViIHByb2Nlc3Mgb3ZlcgorICAgICAgICBzb3VyY2UgcHJvY2VzcyBpZiB0aGUgc291cmNl
IHByb2Nlc3MgaGFzbid0IGNvbW1pdHRlZCBhbnkgbG9hZHMuCisKIDIwMTktMTItMTQgIERhdmlk
IEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcmVsZWFzZSBhc3Nl
cnQgZm9yIHNlbGVjdGVkSW5kZXggaW4gV2ViS2l0OjpXZWJQb3B1cE1lbnU6OnNob3coKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaAppbmRleCA2MTRlNGM0ZmMzYWIxYmRjY2JhN2E2NjEwN2E0
ZTljZjE4NTZiM2I5Li5lMTAxMTEzNWYwMDdhOTBmMGE3MTc5YjUxNDg0NDc3MDdlMWYzMmE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtNTksNCArNTksNiBAQAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9oYXNTZXJ2aWNlV29ya2VyRm9yZWdyb3VuZEFj
dGl2aXR5Rm9yVGVzdGluZzsKIC0gKHZvaWQpX3NldEFzc2VydGlvblN0YXRlRm9yVGVzdGluZzoo
aW50KXN0YXRlOwogCistICh2b2lkKV9lbnN1cmVSdW5uaW5nUHJvY2Vzc0ZvclRlc3Rpbmc7CisK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1Rlc3RpbmcubW0KaW5kZXggOWU2MjU2OTk5ZjlhOTM4Njk2NmE3NDFhNmEwNmNmZGIwOGFm
YjgwNS4uMDJkODJhNTMyYjM4ZTYyYjQ3OTE0MmMwYjlmZTU3ODA3ZDBmNTNlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rpbmcu
bW0KQEAgLTIwMiw0ICsyMDIsOSBAQAogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX2Vuc3VyZVJ1bm5p
bmdQcm9jZXNzRm9yVGVzdGluZworeworICAgIF9wYWdlLT5lbnN1cmVSdW5uaW5nUHJvY2Vzcygp
OworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggMzVhNTdiZTkxZTg1MjliODk0NDE5NjY3NDUzZDMyNDZiODU4NjljYy4uYzA2ZDNmNzMz
ZDZlNDMwYmFmMzBmMTU5NjAwZmQ1MmExZjE4MTA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjE2OCwxMSArMjE2OCw2IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JiBwYWdl
LCBjb25zdCBBUEk6CiAgICAgaWYgKG1fYXV0b21hdGlvblNlc3Npb24pCiAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNvdXJjZVByb2Nlc3MpLCBudWxscHRyLCAiQW4g
YXV0b21hdGlvbiBzZXNzaW9uIGlzIGFjdGl2ZSJfcyk7CiAKLSAgICBpZiAoIXNvdXJjZVByb2Nl
c3MtPmhhc0NvbW1pdHRlZEFueVByb3Zpc2lvbmFsTG9hZHMoKSkgewotICAgICAgICB0cnlQcmV3
YXJtV2l0aERvbWFpbkluZm9ybWF0aW9uKHNvdXJjZVByb2Nlc3MsIHRhcmdldFJlZ2lzdHJhYmxl
RG9tYWluKTsKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc291cmNl
UHJvY2VzcyksIG51bGxwdHIsICJQcm9jZXNzIGhhcyBub3QgeWV0IGNvbW1pdHRlZCBhbnkgcHJv
dmlzaW9uYWwgbG9hZHMiX3MpOwotICAgIH0KLQogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3Vw
cG9ydCBwcm9jZXNzIHN3YXAgd2hlbiBhIHdpbmRvdyBoYXMgYmVlbiBvcGVuZWQgdmlhIHdpbmRv
dy5vcGVuKCkgd2l0aG91dCAnbm9vcGVuZXInLgogICAgIC8vIFRoZSBpc3N1ZSBpcyB0aGF0IHRo
ZSBvcGVuZXIgaGFzIGEgaGFuZGxlIHRvIHRoZSBXaW5kb3dQcm94eS4KICAgICBpZiAobmF2aWdh
dGlvbi5vcGVuZWRCeURPTVdpdGhPcGVuZXIoKSAmJiAhbV9jb25maWd1cmF0aW9uLT5wcm9jZXNz
U3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKCkpCkBAIC0yMjA4LDYgKzIyMDMsMTYgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChXZWJQYWdlUHJv
eHkmIHBhZ2UsIGNvbnN0IEFQSToKICAgICBpZiAobmF2aWdhdGlvbi50cmVhdEFzU2FtZU9yaWdp
bk5hdmlnYXRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
c291cmNlUHJvY2VzcyksIG51bGxwdHIsICJUaGUgdHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9u
IGZsYWcgaXMgc2V0Il9zKTsKIAorICAgIGlmICghc291cmNlUHJvY2Vzcy0+aGFzQ29tbWl0dGVk
QW55UHJvdmlzaW9uYWxMb2FkcygpKSB7CisgICAgICAgIGlmIChhdXRvIHByb2Nlc3MgPSB3ZWJQ
cm9jZXNzQ2FjaGUoKS50YWtlUHJvY2Vzcyh0YXJnZXRSZWdpc3RyYWJsZURvbWFpbiwgZGF0YVN0
b3JlKSkgeworICAgICAgICAgICAgTE9HKFByb2Nlc3NTd2FwcGluZywgIihQcm9jZXNzU3dhcHBp
bmcpIFJldXNpbmcgYSBwcmV2aW91c2x5IGNhY2hlZCBwcm9jZXNzIHdpdGggcGlkICVpIHRvIGNv
bnRpbnVlIG5hdmlnYXRpb24gdG8gVVJMICVzIGluIHBsYWNlIG9mIHBpZCAlaSB0aGF0IGhhc24n
dCBjb21taXR0ZWQgYW55IHByb3Zpc2lvbmFsIGxvYWRzIiwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgdGFyZ2V0VVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHNvdXJjZVByb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKHByb2Nlc3MucmVsZWFzZU5vbk51bGwoKSwgbnVsbHB0ciwgIlJldXNpbmcgY2FjaGVkIHBy
b2Nlc3MgaW4gcGxhY2Ugb2YgcHJvY2VzcyB0aGF0IGhhc24ndCBjb21taXR0ZWQgYW55IGxvYWRz
Il9zKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeVByZXdhcm1XaXRoRG9tYWluSW5mb3JtYXRp
b24oc291cmNlUHJvY2VzcywgdGFyZ2V0UmVnaXN0cmFibGVEb21haW4pOworICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzb3VyY2VQcm9jZXNzKSwgbnVsbHB0ciwgIlBy
b2Nlc3MgaGFzIG5vdCB5ZXQgY29tbWl0dGVkIGFueSBwcm92aXNpb25hbCBsb2FkcyJfcyk7Cisg
ICAgfQorCiAgICAgVVJMIHNvdXJjZVVSTDsKICAgICBpZiAocGFnZS5pc1BhZ2VPcGVuZWRCeURP
TVNob3dpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpICYmICFuYXZpZ2F0aW9uLnJlcXVlc3Rlck9y
aWdpbigpLmlzRW1wdHkoKSkKICAgICAgICAgc291cmNlVVJMID0gVVJMIHsgVVJMKCksIG5hdmln
YXRpb24ucmVxdWVzdGVyT3JpZ2luKCkudG9TdHJpbmcoKSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg3YzcyMjU1NDcyOGIwNDUyNGY2YjQy
M2ZjMDFkMWE1YzA3MDNiZjUuLjMzYzljOGJmMmJlYjNiNTNkODZkMzhlMDY1N2NhMTIyOWQyMzIy
YTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxOS0xMi0xNCAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKwor
ICAgICAgICBOYXZpZ2F0aW9uIGZyb20gZW1wdHkgcGFnZSBkb2Vzbid0IHVzZSBjYWNoZWQgd2Vi
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTAxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc3MDM3NDI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBuYXZpZ2F0aW5nIGZyb20g
YW4gZW1wdHkgcGFnZSB0byBhbm90aGVyIGRvbWFpbiBmb28uY29tLCB3ZSBhbHdheXMgdXNlIHRo
ZSBzb3VyY2UKKyAgICAgICAgV2ViUHJvY2VzcyAod2hpY2ggaXMgYmFzaWNhbGx5IHVuaW5pdGlh
bGl6ZWQpIHJhdGhlciB0aGFuIHVzaW5nIGFuIGFscmVhZHktaW5pdGlhbGl6ZWQKKyAgICAgICAg
Y2FjaGVkIFdlYlByb2Nlc3MgdGhhdCBoYXMgbmF2aWdhdGVkIHRvIGZvby5jb20uIFRoZSBjYWNo
ZWQgV2ViUHJvY2VzcyBzaG91bGQgcHJvYmFibHkgYmUKKyAgICAgICAgcHJlZmVycmVkIHNpbmNl
IGl0IGhhcyBtb3JlIHJlbGV2YW50IGNhY2hlZCByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGl0IChl
LmcuIG1lbW9yeSBjYWNoZSwgSlMKKyAgICAgICAgYnl0ZWNvZGUgY2FjaGUsIHByZXdhcm1lZCBm
b250cywgLi4uKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgIFZlcmlmeSB0aGF0IGEgbG9hZCBm
cm9tIGFuIGVtcHR5IGRvY3VtZW50IHVzZXMgdGhlIHByb2Nlc3MgY2FjaGUuIFRvIGFjdHVhbGx5
IGZvcmNlIHRoZQorICAgICAgICBXZWJQcm9jZXNzIHRvIGxhdW5jaCB3aXRoIGFuIGVtcHR5IGRv
Y3VtZW50IGxvYWRlZCwgd2UgdXNlIHRoZSBwcml2YXRlIEFQSQorICAgICAgICBfZW5zdXJlUnVu
bmluZ1Byb2Nlc3NGb3JUZXN0aW5nLgorCiAyMDE5LTEyLTEzICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgbWFjQ2F0
YWx5c3QgYnVpbGQgYWZ0ZXIgcjI1MzQ4NgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
aW5kZXggZDIzM2Y0NDhiYzZhZDViOTBmYzRhNjU3MmYzZDliOTQ5ZDUxZjhiNC4uNDU1YTBmOTE1
Y2E1MGY1ODM1ZDM3N2I2NGZlMDc5N2IyYmFlMTEwZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tCkBAIC01OCwxMCArNTgsNiBAQAogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLUBpbnRlcmZhY2UgV0tQcm9j
ZXNzUG9vbCAoKQotLSAoV0tDb250ZXh0UmVmKV9jb250ZXh0Rm9yVGVzdGluZzsKLUBlbmQKLQog
c3RhdGljIGJvb2wgZG9uZTsKIHN0YXRpYyBib29sIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkOwog
c3RhdGljIGJvb2wgZmFpbGVkOwpAQCAtMzU2MSw2ICszNTU3LDcyIEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIFVzZVdlYlByb2Nlc3NDYWNoZUFmdGVyVGVybWluYXRpb24pCiAgICAgRVhQRUNUX0VRKDFV
LCBbcHJvY2Vzc1Bvb2wgX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2FybWVkXSk7CiB9CiAK
K1RFU1QoUHJvY2Vzc1N3YXAsIFVzZVdlYlByb2Nlc3NDYWNoZUZvckxvYWRJbkVtcHR5RG9jdW1l
bnQpCit7CisgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uKCk7CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1By
b2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBhdXRv
IGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJM
U2NoZW1lOkAiUFNPTiJdOworCisgICAgcGlkX3QgcGlkMSA9IDA7CisgICAgcGlkX3QgcGlkMiA9
IDA7CisgICAgcGlkX3QgcGlkMyA9IDA7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIEBhdXRvcmVsZWFz
ZXBvb2wgeworICAgICAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgICAgIFt3ZWJWaWV3MSBzZXROYXZp
Z2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgICAgIE5TVVJMUmVxdWVzdCAq
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKKyAgICAgICAgW3dlYlZp
ZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgICAgIGRvbmUgPSBmYWxzZTsKKworICAgICAgICBwaWQxID0gW3dl
YlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgICAgIEVYUEVDVF9ORShwaWQxLCAw
KTsKKworICAgICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKKyAg
ICAgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIGRvbmUgPSBmYWxzZTsKKworICAgICAg
ICBwaWQyID0gW3dlYlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgICAgIEVYUEVD
VF9ORShwaWQyLCAwKTsKKyAgICB9CisKKyAgICBhdXRvIHdlYlZpZXcyID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcy
IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAvLyBGb3JjZSB3
ZWJWaWV3MiB0byBlYWdlcmx5IGxhdW5jaCBhIFdlYlByb2Nlc3MgdGhhdCBsb2FkcyB0aGUgZW1w
dHkgZG9jdW1lbnQuIChTYWZhcmkKKyAgICAvLyBpbXBsaWNpdGx5IGxhdW5jaGVzIFdlYlByb2Nl
c3MgdG8gdGhlIGVtcHR5IGRvY3VtZW50IGJlY2F1c2UgaXQgaW1tZWRpYXRlbHkgcG9zdHMgYSBt
ZXNzYWdlCisgICAgLy8gdG8gaXRzIGluamVjdGVkIGJ1bmRsZSBhZnRlciBjcmVhdGluZyBpdHMg
V0tXZWJWaWV3LiBIZXJlIHdlIGxhdW5jaCBXZWJQcm9jZXNzIGV4cGxpY2l0bHkuKQorICAgIFt3
ZWJWaWV3MiBfZW5zdXJlUnVubmluZ1Byb2Nlc3NGb3JUZXN0aW5nXTsKKworICAgIC8vIFdhaXQg
Zm9yIHdlYmtpdC5vcmcgYW5kIGFwcGxlLmNvbSBmcm9tIHdlYlZpZXcxIHRvIGVudGVyIGNhY2hl
ZCBwcm9jZXNzIHBvb2wuCisgICAgd2hpbGUgKFtwcm9jZXNzUG9vbCBfcHJvY2Vzc0NhY2hlU2l6
ZV0gIT0gMikKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC4xKTsKKworICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsK
KyAgICBbd2ViVmlldzIgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIHBpZDMgPSBbd2Vi
VmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMywgMCk7CisK
KyAgICBFWFBFQ1RfRVEoM3UsIHNlZW5QSURzLnNpemUoKSk7CisgICAgRVhQRUNUX05FKHBpZDEs
IHBpZDIpOworICAgIEVYUEVDVF9ORShwaWQyLCBwaWQzKTsKKyAgICBFWFBFQ1RfRVEocGlkMSwg
cGlkMyk7Cit9CisKIFRFU1QoUHJvY2Vzc1N3YXAsIFVzZVdlYlByb2Nlc3NDYWNoZUZvckxvYWRJ
bk5ld1ZpZXcpCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385776</attachid>
            <date>2019-12-16 10:03:33 -0800</date>
            <delta_ts>2019-12-17 13:42:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205015-20191216100333.patch</filename>
            <type>text/plain</type>
            <size>9880</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4ZjRmYjkzNTE5OTI1N2E2
ZDA0ZTZmOTFlOGQxYWNkN2JiMjIyYzYuLmNkZjg1ZTIwZmM5MTZlNGYwMDIzM2JiYzIxMzNjNGZh
YjM0MWVmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMTItMTQgIEJlbiBOaGFt
ICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTmF2aWdhdGlvbiBmcm9tIGVtcHR5IHBhZ2Ug
ZG9lc24ndCB1c2UgY2FjaGVkIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwMTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3
NzAzNzQyPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFdo
ZW4gbmF2aWdhdGluZyBmcm9tIGFuIGVtcHR5IHBhZ2UgdG8gYW5vdGhlciBkb21haW4gZm9vLmNv
bSwgd2UgYWx3YXlzIHVzZSB0aGUgc291cmNlCisgICAgICAgIFdlYlByb2Nlc3MgKHdoaWNoIGlz
IGJhc2ljYWxseSB1bmluaXRpYWxpemVkKSByYXRoZXIgdGhhbiB1c2luZyBhbiBhbHJlYWR5LWlu
aXRpYWxpemVkCisgICAgICAgIGNhY2hlZCBXZWJQcm9jZXNzIHRoYXQgaGFzIG5hdmlnYXRlZCB0
byBmb28uY29tLiBUaGUgY2FjaGVkIFdlYlByb2Nlc3Mgc2hvdWxkIHByb2JhYmx5IGJlCisgICAg
ICAgIHByZWZlcnJlZCBzaW5jZSBpdCBoYXMgbW9yZSByZWxldmFudCBjYWNoZWQgcmVzb3VyY2Vz
IGF2YWlsYWJsZSB0byBpdCAoZS5nLiBtZW1vcnkgY2FjaGUsIEpTCisgICAgICAgIGJ5dGVjb2Rl
IGNhY2hlLCBwcmV3YXJtZWQgZm9udHMsIC4uLikuCisKKyAgICAgICAgQWRkZWQgYW4gQVBJIHRl
c3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5n
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Vuc3VyZVJ1bm5pbmdQcm9jZXNzRm9yVGVzdGlu
Z10pOgorICAgICAgICBBbGxvd3MgdGVzdHMgdG8gZm9yY2UgV2ViUHJvY2VzcyB0byBsYXVuY2gg
dG8gYW4gZW1wdHkgZG9jdW1lbnQgZm9yIHRlc3RpbmcgcHVycG9zZXMuIFRoaXMKKyAgICAgICAg
bWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgaG93IFNhZmFyaSB1c2VzIFdLV2ViVmlldy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKTogUHJlZmVyIGNhY2hl
ZCB3ZWIgcHJvY2VzcyBvdmVyCisgICAgICAgIHNvdXJjZSBwcm9jZXNzIGlmIHRoZSBzb3VyY2Ug
cHJvY2VzcyBoYXNuJ3QgY29tbWl0dGVkIGFueSBsb2Fkcy4KKwogMjAxOS0xMi0xNCAgRGF2aWQg
S2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCByZWxlYXNlIGFzc2Vy
dCBmb3Igc2VsZWN0ZWRJbmRleCBpbiBXZWJLaXQ6OldlYlBvcHVwTWVudTo6c2hvdygpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oCmluZGV4IDYxNGU0YzRmYzNhYjFiZGNjYmE3YTY2MTA3YTRl
OWNmMTg1NmIzYjkuLmUxMDExMTM1ZjAwN2E5MGYwYTcxNzliNTE0ODQ0NzcwN2UxZjMyYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlRm9yVGVzdGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCkBAIC01OSw0ICs1OSw2IEBACiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc1NlcnZpY2VXb3JrZXJGb3JlZ3JvdW5kQWN0
aXZpdHlGb3JUZXN0aW5nOwogLSAodm9pZClfc2V0QXNzZXJ0aW9uU3RhdGVGb3JUZXN0aW5nOihp
bnQpc3RhdGU7CiAKKy0gKHZvaWQpX2Vuc3VyZVJ1bm5pbmdQcm9jZXNzRm9yVGVzdGluZzsKKwog
QGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1Rlc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3VGVzdGluZy5tbQppbmRleCA5ZTYyNTY5OTlmOWE5Mzg2OTY2YTc0MWE2YTA2Y2ZkYjA4YWZi
ODA1Li4wMmQ4MmE1MzJiMzhlNjJiNDc5MTQyYzBiOWZlNTc4MDdkMGY1M2UyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5t
bQpAQCAtMjAyLDQgKzIwMiw5IEBACiAjZW5kaWYKIH0KIAorLSAodm9pZClfZW5zdXJlUnVubmlu
Z1Byb2Nlc3NGb3JUZXN0aW5nCit7CisgICAgX3BhZ2UtPmVuc3VyZVJ1bm5pbmdQcm9jZXNzKCk7
Cit9CisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApp
bmRleCAzNWE1N2JlOTFlODUyOWI4OTQ0MTk2Njc0NTNkMzI0NmI4NTg2OWNjLi44NzIxZDM3YTI2
NGRjODVhN2YzMzg4MTc2OGNlMzMwNTJjMDgzMGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0yMTY4LDExICsyMTY4LDYgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChXZWJQYWdlUHJveHkmIHBhZ2Us
IGNvbnN0IEFQSToKICAgICBpZiAobV9hdXRvbWF0aW9uU2Vzc2lvbikKICAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc291cmNlUHJvY2VzcyksIG51bGxwdHIsICJBbiBh
dXRvbWF0aW9uIHNlc3Npb24gaXMgYWN0aXZlIl9zKTsKIAotICAgIGlmICghc291cmNlUHJvY2Vz
cy0+aGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcygpKSB7Ci0gICAgICAgIHRyeVByZXdh
cm1XaXRoRG9tYWluSW5mb3JtYXRpb24oc291cmNlUHJvY2VzcywgdGFyZ2V0UmVnaXN0cmFibGVE
b21haW4pOwotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzb3VyY2VQ
cm9jZXNzKSwgbnVsbHB0ciwgIlByb2Nlc3MgaGFzIG5vdCB5ZXQgY29tbWl0dGVkIGFueSBwcm92
aXNpb25hbCBsb2FkcyJfcyk7Ci0gICAgfQotCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdXBw
b3J0IHByb2Nlc3Mgc3dhcCB3aGVuIGEgd2luZG93IGhhcyBiZWVuIG9wZW5lZCB2aWEgd2luZG93
Lm9wZW4oKSB3aXRob3V0ICdub29wZW5lcicuCiAgICAgLy8gVGhlIGlzc3VlIGlzIHRoYXQgdGhl
IG9wZW5lciBoYXMgYSBoYW5kbGUgdG8gdGhlIFdpbmRvd1Byb3h5LgogICAgIGlmIChuYXZpZ2F0
aW9uLm9wZW5lZEJ5RE9NV2l0aE9wZW5lcigpICYmICFtX2NvbmZpZ3VyYXRpb24tPnByb2Nlc3NT
d2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIoKSkKQEAgLTIyMDgsNiArMjIwMywxNiBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QgQVBJOgogICAgIGlmIChuYXZpZ2F0aW9uLnRyZWF0QXNTYW1lT3JpZ2lu
TmF2aWdhdGlvbigpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShz
b3VyY2VQcm9jZXNzKSwgbnVsbHB0ciwgIlRoZSB0cmVhdEFzU2FtZU9yaWdpbk5hdmlnYXRpb24g
ZmxhZyBpcyBzZXQiX3MpOwogCisgICAgaWYgKCFzb3VyY2VQcm9jZXNzLT5oYXNDb21taXR0ZWRB
bnlQcm92aXNpb25hbExvYWRzKCkpIHsKKyAgICAgICAgaWYgKGF1dG8gcHJvY2VzcyA9IHdlYlBy
b2Nlc3NDYWNoZSgpLnRha2VQcm9jZXNzKHRhcmdldFJlZ2lzdHJhYmxlRG9tYWluLCBkYXRhU3Rv
cmUpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICIoUHJvY2Vz
c1N3YXBwaW5nKSBSZXVzaW5nIGEgcHJldmlvdXNseSBjYWNoZWQgcHJvY2VzcyB3aXRoIHBpZCAl
aSBpbiBwbGFjZSBvZiBwaWQgJWkgdGhhdCBoYXNuJ3QgY29tbWl0dGVkIGFueSBwcm92aXNpb25h
bCBsb2FkcyIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIHNvdXJjZVByb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KHByb2Nlc3MucmVsZWFzZU5vbk51bGwoKSwgbnVsbHB0ciwgIlJldXNpbmcgY2FjaGVkIHByb2Nl
c3MgaW4gcGxhY2Ugb2YgcHJvY2VzcyB0aGF0IGhhc24ndCBjb21taXR0ZWQgYW55IGxvYWRzIl9z
KTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeVByZXdhcm1XaXRoRG9tYWluSW5mb3JtYXRpb24o
c291cmNlUHJvY2VzcywgdGFyZ2V0UmVnaXN0cmFibGVEb21haW4pOworICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzb3VyY2VQcm9jZXNzKSwgbnVsbHB0ciwgIlByb2Nl
c3MgaGFzIG5vdCB5ZXQgY29tbWl0dGVkIGFueSBwcm92aXNpb25hbCBsb2FkcyJfcyk7CisgICAg
fQorCiAgICAgVVJMIHNvdXJjZVVSTDsKICAgICBpZiAocGFnZS5pc1BhZ2VPcGVuZWRCeURPTVNo
b3dpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpICYmICFuYXZpZ2F0aW9uLnJlcXVlc3Rlck9yaWdp
bigpLmlzRW1wdHkoKSkKICAgICAgICAgc291cmNlVVJMID0gVVJMIHsgVVJMKCksIG5hdmlnYXRp
b24ucmVxdWVzdGVyT3JpZ2luKCkudG9TdHJpbmcoKSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg3YzcyMjU1NDcyOGIwNDUyNGY2YjQyM2Zj
MDFkMWE1YzA3MDNiZjUuLmJkZWJjNzZiMDA5ZjVlMDgxYzkyOGY5NjY1MmNiZTM3NTY0ODNjYjIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0xMi0xNCAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBOYXZpZ2F0aW9uIGZyb20gZW1wdHkgcGFnZSBkb2Vzbid0IHVzZSBjYWNoZWQgd2ViIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTAxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc3MDM3NDI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgV2hlbiBuYXZpZ2F0aW5nIGZyb20gYW4gZW1w
dHkgcGFnZSB0byBhbm90aGVyIGRvbWFpbiBmb28uY29tLCB3ZSBhbHdheXMgdXNlIHRoZSBzb3Vy
Y2UKKyAgICAgICAgV2ViUHJvY2VzcyAod2hpY2ggaXMgYmFzaWNhbGx5IHVuaW5pdGlhbGl6ZWQp
IHJhdGhlciB0aGFuIHVzaW5nIGFuIGFscmVhZHktaW5pdGlhbGl6ZWQKKyAgICAgICAgY2FjaGVk
IFdlYlByb2Nlc3MgdGhhdCBoYXMgbmF2aWdhdGVkIHRvIGZvby5jb20uIFRoZSBjYWNoZWQgV2Vi
UHJvY2VzcyBzaG91bGQgcHJvYmFibHkgYmUKKyAgICAgICAgcHJlZmVycmVkIHNpbmNlIGl0IGhh
cyBtb3JlIHJlbGV2YW50IGNhY2hlZCByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGl0IChlLmcuIG1l
bW9yeSBjYWNoZSwgSlMKKyAgICAgICAgYnl0ZWNvZGUgY2FjaGUsIHByZXdhcm1lZCBmb250cywg
Li4uKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgIFZlcmlmeSB0aGF0IGEgbG9hZCBmcm9tIGFu
IGVtcHR5IGRvY3VtZW50IHVzZXMgdGhlIHByb2Nlc3MgY2FjaGUuIFRvIGFjdHVhbGx5IGZvcmNl
IHRoZQorICAgICAgICBXZWJQcm9jZXNzIHRvIGxhdW5jaCB3aXRoIGFuIGVtcHR5IGRvY3VtZW50
IGxvYWRlZCwgd2UgdXNlIHRoZSBwcml2YXRlIEFQSQorICAgICAgICBfZW5zdXJlUnVubmluZ1By
b2Nlc3NGb3JUZXN0aW5nLgorCiAyMDE5LTEyLTEzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgbWFjQ2F0YWx5c3Qg
YnVpbGQgYWZ0ZXIgcjI1MzQ4NgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXgg
ZDIzM2Y0NDhiYzZhZDViOTBmYzRhNjU3MmYzZDliOTQ5ZDUxZjhiNC4uNDU1YTBmOTE1Y2E1MGY1
ODM1ZDM3N2I2NGZlMDc5N2IyYmFlMTEwZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tCkBAIC01OCwxMCArNTgsNiBAQAogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgog
I2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLUBpbnRlcmZhY2UgV0tQcm9jZXNzUG9v
bCAoKQotLSAoV0tDb250ZXh0UmVmKV9jb250ZXh0Rm9yVGVzdGluZzsKLUBlbmQKLQogc3RhdGlj
IGJvb2wgZG9uZTsKIHN0YXRpYyBib29sIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkOwogc3RhdGlj
IGJvb2wgZmFpbGVkOwpAQCAtMzU2MSw2ICszNTU3LDcyIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFVz
ZVdlYlByb2Nlc3NDYWNoZUFmdGVyVGVybWluYXRpb24pCiAgICAgRVhQRUNUX0VRKDFVLCBbcHJv
Y2Vzc1Bvb2wgX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2FybWVkXSk7CiB9CiAKK1RFU1Qo
UHJvY2Vzc1N3YXAsIFVzZVdlYlByb2Nlc3NDYWNoZUZvckxvYWRJbkVtcHR5RG9jdW1lbnQpCit7
CisgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uKCk7CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQ
b29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBhdXRvIGhhbmRs
ZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29u
ZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1l
OkAiUFNPTiJdOworCisgICAgcGlkX3QgcGlkMSA9IDA7CisgICAgcGlkX3QgcGlkMiA9IDA7Cisg
ICAgcGlkX3QgcGlkMyA9IDA7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05O
YXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIEBhdXRvcmVsZWFzZXBvb2wg
eworICAgICAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZp
ZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgICAgIFt3ZWJWaWV3MSBzZXROYXZpZ2F0aW9u
RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKKyAgICAgICAgW3dlYlZpZXcxIGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgICAgIGRvbmUgPSBmYWxzZTsKKworICAgICAgICBwaWQxID0gW3dlYlZpZXcx
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKwor
ICAgICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKKyAgICAgICAg
W3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIGRvbmUgPSBmYWxzZTsKKworICAgICAgICBwaWQy
ID0gW3dlYlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgICAgIEVYUEVDVF9ORShw
aWQyLCAwKTsKKyAgICB9CisKKyAgICBhdXRvIHdlYlZpZXcyID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcyIHNldE5h
dmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAvLyBGb3JjZSB3ZWJWaWV3
MiB0byBlYWdlcmx5IGxhdW5jaCBhIFdlYlByb2Nlc3MgdGhhdCBsb2FkcyB0aGUgZW1wdHkgZG9j
dW1lbnQuIChTYWZhcmkKKyAgICAvLyBpbXBsaWNpdGx5IGxhdW5jaGVzIFdlYlByb2Nlc3MgdG8g
dGhlIGVtcHR5IGRvY3VtZW50IGJlY2F1c2UgaXQgaW1tZWRpYXRlbHkgcG9zdHMgYSBtZXNzYWdl
CisgICAgLy8gdG8gaXRzIGluamVjdGVkIGJ1bmRsZSBhZnRlciBjcmVhdGluZyBpdHMgV0tXZWJW
aWV3LiBIZXJlIHdlIGxhdW5jaCBXZWJQcm9jZXNzIGV4cGxpY2l0bHkuKQorICAgIFt3ZWJWaWV3
MiBfZW5zdXJlUnVubmluZ1Byb2Nlc3NGb3JUZXN0aW5nXTsKKworICAgIC8vIFdhaXQgZm9yIHdl
YmtpdC5vcmcgYW5kIGFwcGxlLmNvbSBmcm9tIHdlYlZpZXcxIHRvIGVudGVyIGNhY2hlZCBwcm9j
ZXNzIHBvb2wuCisgICAgd2hpbGUgKFtwcm9jZXNzUG9vbCBfcHJvY2Vzc0NhY2hlU2l6ZV0gIT0g
MikKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC4xKTsKKworICAgIE5TVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKKyAgICBb
d2ViVmlldzIgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIHBpZDMgPSBbd2ViVmlldzIg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMywgMCk7CisKKyAgICBF
WFBFQ1RfRVEoM3UsIHNlZW5QSURzLnNpemUoKSk7CisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIp
OworICAgIEVYUEVDVF9ORShwaWQyLCBwaWQzKTsKKyAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMyk7
Cit9CisKIFRFU1QoUHJvY2Vzc1N3YXAsIFVzZVdlYlByb2Nlc3NDYWNoZUZvckxvYWRJbk5ld1Zp
ZXcpCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>