<?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>210750</bug_id>
          
          <creation_ts>2020-04-20 09:47:12 -0700</creation_ts>
          <short_desc>Text manipulation sometimes fails to replace text in title elements</short_desc>
          <delta_ts>2020-04-20 13:20:00 -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>HTML Editing</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1643484</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-04-20 09:47:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/61066103&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643501</commentid>
    <comment_count>1</comment_count>
      <attachid>396986</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-04-20 10:16:37 -0700</bug_when>
    <thetext>Created attachment 396986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643563</commentid>
    <comment_count>2</comment_count>
      <attachid>396986</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-20 12:10:11 -0700</bug_when>
    <thetext>Comment on attachment 396986
Patch

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

&gt; Source/WebCore/editing/TextManipulationController.cpp:481
&gt; +        if (replacementTokens.size() &gt; 1 &amp;&amp; (!item.element || !canPerformTextManipulationByReplacingEntireTextContent(*item.element)))

What&apos;s all the null checking? Didn&apos;t we just do this with `element` above? Why not just use that, too?

&gt; Source/WebCore/editing/TextManipulationController.cpp:488
&gt; +            if (i)

Sad that we have to avoid range-based for just for this, but alas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643570</commentid>
    <comment_count>3</comment_count>
      <attachid>396986</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-04-20 12:12:53 -0700</bug_when>
    <thetext>Comment on attachment 396986
Patch

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

&gt;&gt; Source/WebCore/editing/TextManipulationController.cpp:481
&gt;&gt; +        if (replacementTokens.size() &gt; 1 &amp;&amp; (!item.element || !canPerformTextManipulationByReplacingEntireTextContent(*item.element)))
&gt; 
&gt; What&apos;s all the null checking? Didn&apos;t we just do this with `element` above? Why not just use that, too?

Good catch! Changed this to just use `element` and avoid the redundant null check.

&gt;&gt; Source/WebCore/editing/TextManipulationController.cpp:488
&gt;&gt; +            if (i)
&gt; 
&gt; Sad that we have to avoid range-based for just for this, but alas

:P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643590</commentid>
    <comment_count>4</comment_count>
      <attachid>396986</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-20 12:37:36 -0700</bug_when>
    <thetext>Comment on attachment 396986
Patch

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

&gt;&gt;&gt; Source/WebCore/editing/TextManipulationController.cpp:488
&gt;&gt;&gt; +            if (i)
&gt;&gt; 
&gt;&gt; Sad that we have to avoid range-based for just for this, but alas
&gt; 
&gt; :P

I think we should add a StringBuilder feature for appending things with separators. This comes up a *lot*.

&gt; Source/WebCore/editing/TextManipulationController.cpp:489
&gt; +                newValue.appendLiteral(&quot; &quot;);

Appending a space is more efficiently done with &apos; &apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643596</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-04-20 12:49:58 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 396986 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396986&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/editing/TextManipulationController.cpp:488
&gt; &gt;&gt;&gt; +            if (i)
&gt; &gt;&gt; 
&gt; &gt;&gt; Sad that we have to avoid range-based for just for this, but alas
&gt; &gt; 
&gt; &gt; :P
&gt; 
&gt; I think we should add a StringBuilder feature for appending things with
&gt; separators. This comes up a *lot*.

+1 to this.

I also looked for a helper somewhere in WTF to join Vector&lt;String&gt; with a separator, but couldn’t find any.

&gt; 
&gt; &gt; Source/WebCore/editing/TextManipulationController.cpp:489
&gt; &gt; +                newValue.appendLiteral(&quot; &quot;);
&gt; 
&gt; Appending a space is more efficiently done with &apos; &apos;.

Good point — changed to newValue.append(&apos; &apos;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643598</commentid>
    <comment_count>6</comment_count>
      <attachid>397006</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-04-20 12:52:39 -0700</bug_when>
    <thetext>Created attachment 397006
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643612</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-20 13:19:59 -0700</bug_when>
    <thetext>Committed r260393: &lt;https://trac.webkit.org/changeset/260393&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397006.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396986</attachid>
            <date>2020-04-20 10:16:37 -0700</date>
            <delta_ts>2020-04-20 12:10:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210750-20200420101636.patch</filename>
            <type>text/plain</type>
            <size>9144</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzcyZDVlNjJjYzY4NWM3
ZGM4NzlkYmM2NDllZTVjNmI2MWQ5ZWI2OC4uZjJlM2MyOGVjZTFlMmQwZDY5YzUxYmNhZjJlNmE5
MjMwYzBlYTBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA0LTIwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1
bGF0aW9uIHNvbWV0aW1lcyBmYWlscyB0byByZXBsYWNlIHRleHQgaW4gdGl0bGUgZWxlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDc1MAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjEwNjYxMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50ZXJuYWwgY2xpZW50cyB1c2luZyBXZWJLaXQg
dGV4dCBtYW5pcHVsYXRpb24gQVBJcyBjdXJyZW50bHkgZmFpbCB0byByZXBsYWNlIHRleHQgaW4g
dGl0bGUgYW5kIG9wdGlvbiBlbGVtZW50cworICAgICAgICBpbiB0aGUgY2FzZSB3aGVyZSB0ZXh0
IG1hbmlwdWxhdGlvbiBoYXMgYmVlbiBjb21wbGV0ZWQgd2l0aCBtb3JlIHRoYW4gb25lIHRva2Vu
LiBUaGVzZSBhcmUgZWxlbWVudHMgZm9yIHdoaWNoIHdlCisgICAgICAgIHdhbnQgdG8gcmVwbGFj
ZSB0aGUgZW50aXJlIHRleHQgYXMgYSBzaW5nbGUgdG9rZW4sIGV2ZW4gaWYgdGhlIHRleHQgbWFu
aXB1bGF0aW9uIGNsaWVudCBlbmRzIHVwIGJyZWFraW5nIHRoZQorICAgICAgICB0b2tlbiBpbnRv
IG11bHRpcGxlIGNodW5rcy4KKworICAgICAgICBUbyBoYW5kbGUgdGhpcyBjYXNlLCBwdWxsIHRo
ZSBgdGl0bGUgfHwgb3B0aW9uYCBjaGVjayBvdXQgaW50byBhIGhlbHBlciBmdW5jdGlvbiwgYW5k
IGNvbnN1bHQgaXQgd2hlbiBjb21wbGV0aW5nCisgICAgICAgIHRleHQgbWFuaXB1bGF0aW9uIGlu
IHRoZSBjYXNlIHdoZXJlIHRoZSBtYW5pcHVsYXRpb24gZGF0YSBsYWNrcyBlaXRoZXIgc3RhcnQg
b3IgZW5kIHBvc2l0aW9ucy4gSWYKKyAgICAgICAgYGNhblBlcmZvcm1UZXh0TWFuaXB1bGF0aW9u
QnlSZXBsYWNpbmdFbnRpcmVUZXh0Q29udGVudGAgaXMgdHJ1ZSBhbmQgdGhlcmUgYXJlIG11bHRp
cGxlIHJlcGxhY2VtZW50IHRva2VucywKKyAgICAgICAgYWxsb3cgb3Vyc2VsdmVzIHRvIHByb2Nl
c3MgdGhlIHJlcGxhY2VtZW50IGJ5IGNvbWJpbmluZyB0aGUgcmVwbGFjZW1lbnQgdG9rZW5zIGlu
dG8gYSBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nLgorCisgICAgICAgIFRlc3Q6IFRleHRNYW5pcHVs
YXRpb24uQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU2hvdWxkUmVwbGFjZVRleHRDb250ZW50V2l0
aE11bHRpcGxlVG9rZW5zCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhblBlcmZvcm1UZXh0TWFuaXB1bGF0aW9u
QnlSZXBsYWNpbmdFbnRpcmVUZXh0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0TWFu
aXB1bGF0aW9uQ29udHJvbGxlcjo6b2JzZXJ2ZVBhcmFncmFwaHMpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OnJlcGxhY2UpOgorCiAyMDIwLTA0LTIwICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBBZGQg
c3VwcG9ydCBmb3IgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggNDkx
M2I1ZWJkNDE2YjIzNjdhZTExYWMzN2I3N2QxZTU3NDQ5NDZlMy4uNjdmZjg2ODgzZDk0NjAzZGYw
YTdiZDI1NDEyMmY3NDAyMTE1M2VlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTIzNyw2ICsyMzcsMTEgQEAg
c3RhdGljIGJvb2wgaXNBdHRyaWJ1dGVGb3JUZXh0TWFuaXB1bGF0aW9uKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWVUb0NoZWNrKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGJvb2wg
Y2FuUGVyZm9ybVRleHRNYW5pcHVsYXRpb25CeVJlcGxhY2luZ0VudGlyZVRleHRDb250ZW50KGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGVsZW1lbnQuaGFzVGFnTmFtZShI
VE1MTmFtZXM6OnRpdGxlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRp
b25UYWcpOworfQorCiB2b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpvYnNlcnZlUGFy
YWdyYXBocyhjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQpCiB7CiAg
ICAgaWYgKHN0YXJ0LmlzTnVsbCgpIHx8IGVuZC5pc051bGwoKSkKQEAgLTI2Myw3ICsyNjgsNyBA
QCB2b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpvYnNlcnZlUGFyYWdyYXBocyhjb25z
dCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0CiAKICAgICAgICAgICAgIGlmIChpczxFbGVtZW50Pigq
Y29udGVudC5ub2RlKSkgewogICAgICAgICAgICAgICAgIGF1dG8mIGN1cnJlbnRFbGVtZW50ID0g
ZG93bmNhc3Q8RWxlbWVudD4oKmNvbnRlbnQubm9kZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFj
b250ZW50LmlzVGV4dENvbnRlbnQgJiYgKGNvbnRlbnQubm9kZS0+aGFzVGFnTmFtZShIVE1MTmFt
ZXM6OnRpdGxlVGFnKSB8fCBjb250ZW50Lm5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRp
b25UYWcpKSkgeworICAgICAgICAgICAgICAgIGlmICghY29udGVudC5pc1RleHRDb250ZW50ICYm
IGNhblBlcmZvcm1UZXh0TWFuaXB1bGF0aW9uQnlSZXBsYWNpbmdFbnRpcmVUZXh0Q29udGVudChj
dXJyZW50RWxlbWVudCkpIHsKICAgICAgICAgICAgICAgICAgICAgYWRkSXRlbShNYW5pcHVsYXRp
b25JdGVtRGF0YSB7IFBvc2l0aW9uKCksIFBvc2l0aW9uKCksIG1ha2VXZWFrUHRyKGN1cnJlbnRF
bGVtZW50KSwgbnVsbFFOYW1lKCksCiAgICAgICAgICAgICAgICAgICAgICAgICB7IE1hbmlwdWxh
dGlvblRva2VuIHsgbV90b2tlbklkZW50aWZpZXIuZ2VuZXJhdGUoKSwgY3VycmVudEVsZW1lbnQu
dGV4dENvbnRlbnQoKSB9IH0gfSk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNDczLDE4ICs0Nzgs
MjEgQEAgYXV0byBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cmVwbGFjZShjb25zdCBNYW5p
cHVsYXRpb25JdGVtRGF0YSYgaXRlbSwgY29uc3QKICAgICAgICAgYXV0byBlbGVtZW50ID0gbWFr
ZVJlZlB0cihpdGVtLmVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAg
ICAgICAgICByZXR1cm4gTWFuaXB1bGF0aW9uRmFpbHVyZVR5cGU6OkNvbnRlbnRDaGFuZ2VkOwot
ICAgICAgICBpZiAocmVwbGFjZW1lbnRUb2tlbnMuc2l6ZSgpID4gMSkKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50VG9rZW5zLnNpemUoKSA+IDEgJiYgKCFpdGVtLmVsZW1lbnQgfHwgIWNhblBlcmZv
cm1UZXh0TWFuaXB1bGF0aW9uQnlSZXBsYWNpbmdFbnRpcmVUZXh0Q29udGVudCgqaXRlbS5lbGVt
ZW50KSkpCiAgICAgICAgICAgICByZXR1cm4gTWFuaXB1bGF0aW9uRmFpbHVyZVR5cGU6OkludmFs
aWRUb2tlbjsKLSAgICAgICAgU3RyaW5nIG5ld1ZhbHVlOwotICAgICAgICBpZiAoIXJlcGxhY2Vt
ZW50VG9rZW5zLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50VG9rZW5z
WzBdLmlkZW50aWZpZXIgIT0gaXRlbS50b2tlbnNbMF0uaWRlbnRpZmllcikKKyAgICAgICAgYXV0
byBleHBlY3RlZFRva2VuSWRlbnRpZmllciA9IGl0ZW0udG9rZW5zWzBdLmlkZW50aWZpZXI7Cisg
ICAgICAgIFN0cmluZ0J1aWxkZXIgbmV3VmFsdWU7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgcmVwbGFjZW1lbnRUb2tlbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudFRva2Vuc1tpXS5pZGVudGlmaWVyICE9IGV4cGVjdGVkVG9rZW5JZGVudGlmaWVy
KQogICAgICAgICAgICAgICAgIHJldHVybiBNYW5pcHVsYXRpb25GYWlsdXJlVHlwZTo6SW52YWxp
ZFRva2VuOwotICAgICAgICAgICAgbmV3VmFsdWUgPSByZXBsYWNlbWVudFRva2Vuc1swXS5jb250
ZW50OworICAgICAgICAgICAgaWYgKGkpCisgICAgICAgICAgICAgICAgbmV3VmFsdWUuYXBwZW5k
TGl0ZXJhbCgiICIpOworICAgICAgICAgICAgbmV3VmFsdWUuYXBwZW5kKHJlcGxhY2VtZW50VG9r
ZW5zW2ldLmNvbnRlbnQpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLmF0dHJpYnV0ZU5h
bWUgPT0gbnVsbFFOYW1lKCkpCi0gICAgICAgICAgICBlbGVtZW50LT5zZXRUZXh0Q29udGVudChu
ZXdWYWx1ZSk7CisgICAgICAgICAgICBlbGVtZW50LT5zZXRUZXh0Q29udGVudChuZXdWYWx1ZS50
b1N0cmluZygpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZWxlbWVudC0+c2V0QXR0cmli
dXRlKGl0ZW0uYXR0cmlidXRlTmFtZSwgbmV3VmFsdWUpOworICAgICAgICAgICAgZWxlbWVudC0+
c2V0QXR0cmlidXRlKGl0ZW0uYXR0cmlidXRlTmFtZSwgbmV3VmFsdWUudG9TdHJpbmcoKSk7CiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODE3ZTM0MTRmNzI0YTZmNDRlOTQ0MWJk
MjU4ODQ1ZDc4ZmRhY2VjYy4uZTY5ZmVhNjdiNmFjZTMxZmRkZDk4MTQyMDg0YTA2MWJmNzY2NjIz
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTA0LTIwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1bGF0aW9uIHNvbWV0aW1lcyBmYWlscyB0byBy
ZXBsYWNlIHRleHQgaW4gdGl0bGUgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDc1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjEw
NjYxMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IGEgc2luZ2xlIHRpdGxlIG9yIG9wdGlv
biBlbGVtZW50IG1heSBiZSByZXBsYWNlZCB3aXRoIG11bHRpcGxlIHRva2VucywgYXMgbG9uZwor
ICAgICAgICBhcyBhbGwgdGhlIHRva2VuIGlkZW50aWZpZXJzIG1hdGNoLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tOgorCiAy
MDIwLTA0LTIwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIE92ZXJzaXplZCBjYXJldCBhbmQgc2VsZWN0aW9uIHJlY3RzIGluIHRleHQgZmllbGRzIG9u
IGdhbmppLmNvbSBhbmQgbmV0ZmxpeC5jb20vbG9naW4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQppbmRleCA3
YmU2MjNkMTM5ZmJiYjU5ODM4YjhlOWRkMTliNTJjMmU4MTZkMmY4Li44YTZkNDZhM2ZjYmY0OTE1
YTQ5OWYyNDkzNjc5NjE3MjA5YTU2MzE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCkBAIC0xMDkzLDYg
KzEwOTMsNTggQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRp
b25TaG91bGRSZXBsYWNlQ29udGVudEZvbGxvd2VkQWZ0ZXIKICAgICAgICAgIjxkaXY+PHNwYW4g
c3R5bGU9XCJkaXNwbGF5OiBibG9ja1wiPmhlbGxvLCB3b3JsZDwvc3Bhbj48L2Rpdj48L2Rpdj4i
LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5p
bm5lckhUTUwiXSk7CiB9CiAKK1RFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFu
aXB1bGF0aW9uU2hvdWxkUmVwbGFjZVRleHRDb250ZW50V2l0aE11bHRpcGxlVG9rZW5zKQorewor
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKKyAgICBb
d2ViVmlldyBfc2V0VGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKwor
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjwhRE9DVFlQRSBodG1s
PjxodG1sPiIKKyAgICAgICAgIjx0aXRsZT5UaGlzIGlzIGEgdGVzdDwvdGl0bGU+IgorICAgICAg
ICAiPHNlbGVjdD4iCisgICAgICAgICIgICAgPG9wdGlvbiBzZWxlY3RlZD5IZWxsbyB3b3JsZDwv
b3B0aW9uPiIKKyAgICAgICAgIiAgICA8b3B0aW9uPlNob3VsZCBub3QgYmUgcmVwbGFjZWQ8L29w
dGlvbj4iCisgICAgICAgICI8L3NlbGVjdD4iCisgICAgICAgICI8L2h0bWw+Il07CisKKyAgICBk
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX3N0YXJ0VGV4dE1hbmlwdWxhdGlvbnNXaXRoQ29u
ZmlndXJhdGlvbjpuaWwgY29tcGxldGlvbjpeeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byAqaXRl
bXMgPSBbZGVsZWdhdGUgaXRlbXNdOworICAgIEVYUEVDVF9FUShpdGVtcy5jb3VudCwgM1VMKTsK
KyAgICBFWFBFQ1RfRVEoaXRlbXNbMF0udG9rZW5zLmNvdW50LCAxVUwpOworICAgIEVYUEVDVF9F
UShpdGVtc1sxXS50b2tlbnMuY291bnQsIDFVTCk7CisgICAgRVhQRUNUX0VRKGl0ZW1zWzJdLnRv
a2Vucy5jb3VudCwgMVVMKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIlRoaXMgaXMgYSB0ZXN0Iiwg
aXRlbXNbMF0udG9rZW5zWzBdLmNvbnRlbnQpOworICAgIEVYUEVDVF9XS19TVFJFUSgiSGVsbG8g
d29ybGQiLCBpdGVtc1sxXS50b2tlbnNbMF0uY29udGVudCk7CisgICAgRVhQRUNUX1dLX1NUUkVR
KCJTaG91bGQgbm90IGJlIHJlcGxhY2VkIiwgaXRlbXNbMl0udG9rZW5zWzBdLmNvbnRlbnQpOwor
CisgICAgYXV0byByZXBsYWNlbWVudEl0ZW1zID0gcmV0YWluUHRyKEBbCisgICAgICAgIGNyZWF0
ZUl0ZW0oaXRlbXNbMF0uaWRlbnRpZmllciwgeyB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlm
aWVyLCBAIlJlcGxhY2VtZW50IiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBA
InRpdGxlIiB9IH0pLmF1dG9yZWxlYXNlKCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMV0u
aWRlbnRpZmllciwgeyB7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIlJlcGxhY2Vt
ZW50IiB9LCB7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIm9wdGlvbiIgfSB9KS5h
dXRvcmVsZWFzZSgpLAorICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzJdLmlkZW50aWZpZXIsIHsg
eyBpdGVtc1syXS50b2tlbnNbMF0uaWRlbnRpZmllciwgQCJGYWlsZWQgcmVwbGFjZW1lbnQiIH0s
IHsgQCIxMjM0NSIsIEAib3B0aW9uIiB9IH0pLmF1dG9yZWxlYXNlKCksCisgICAgXSk7CisKKyAg
ICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX2NvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbkZv
ckl0ZW1zOnJlcGxhY2VtZW50SXRlbXMuZ2V0KCkgY29tcGxldGlvbjpeKE5TQXJyYXk8TlNFcnJv
ciAqPiAqZXJyb3JzKSB7CisgICAgICAgIEVYUEVDVF9FUShlcnJvcnMuY291bnQsIDFVTCk7Cisg
ICAgICAgIEVYUEVDVF9FUShlcnJvcnMuZmlyc3RPYmplY3QuZG9tYWluLCBfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbUVycm9yRG9tYWluKTsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9ycy5maXJzdE9i
amVjdC5jb2RlLCBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbUVycm9ySW52YWxpZFRva2VuKTsKKyAg
ICAgICAgRVhQRUNUX0VRKGVycm9ycy5maXJzdE9iamVjdC51c2VySW5mb1tfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbUVycm9ySXRlbUtleV0sIFtyZXBsYWNlbWVudEl0ZW1zIGxhc3RPYmplY3RdKTsK
KyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworCisgICAgTlNBcnJheTxOU1N0cmluZyAqPiAqb3B0aW9ucyA9IFt3ZWJW
aWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJBcnJheS5mcm9tKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ3NlbGVjdCcpLm9wdGlvbnMpLm1hcChvcHRpb24gPT4gb3B0aW9uLnRleHRD
b250ZW50KSJdOworICAgIEVYUEVDVF9XS19TVFJFUSgiUmVwbGFjZW1lbnQgb3B0aW9uIiwgb3B0
aW9ucy5maXJzdE9iamVjdCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJTaG91bGQgbm90IGJlIHJl
cGxhY2VkIiwgb3B0aW9ucy5sYXN0T2JqZWN0KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIlJlcGxh
Y2VtZW50IHRpdGxlIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRv
Y3VtZW50LnRpdGxlIl0pOworfQorCiBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4
dE1hbmlwdWxhdGlvblNob3VsZFJlcGxhY2VDb250ZW50c0Fyb3VuZFBhcmFncmFwaFdpdGhKdXN0
SW1hZ2UpCiB7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXh0TWFuaXB1bGF0aW9u
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
</data>
<flag name="review"
          id="412408"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397006</attachid>
            <date>2020-04-20 12:52:39 -0700</date>
            <delta_ts>2020-04-20 13:19:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210750-20200420125239.patch</filename>
            <type>text/plain</type>
            <size>9137</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzcyZDVlNjJjYzY4NWM3
ZGM4NzlkYmM2NDllZTVjNmI2MWQ5ZWI2OC4uOWE1ZDY5NGQ4YWRhYTBmOGI4ZTk5OTQzNDZkZWMx
MmEwNDhlODFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA0LTIwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1
bGF0aW9uIHNvbWV0aW1lcyBmYWlscyB0byByZXBsYWNlIHRleHQgaW4gdGl0bGUgZWxlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDc1MAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjEwNjYxMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltIEhvcnRvbiBhbmQgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSW50ZXJuYWwgY2xpZW50cyB1
c2luZyBXZWJLaXQgdGV4dCBtYW5pcHVsYXRpb24gQVBJcyBjdXJyZW50bHkgZmFpbCB0byByZXBs
YWNlIHRleHQgaW4gdGl0bGUgYW5kIG9wdGlvbiBlbGVtZW50cworICAgICAgICBpbiB0aGUgY2Fz
ZSB3aGVyZSB0ZXh0IG1hbmlwdWxhdGlvbiBoYXMgYmVlbiBjb21wbGV0ZWQgd2l0aCBtb3JlIHRo
YW4gb25lIHRva2VuLiBUaGVzZSBhcmUgZWxlbWVudHMgZm9yIHdoaWNoIHdlCisgICAgICAgIHdh
bnQgdG8gcmVwbGFjZSB0aGUgZW50aXJlIHRleHQgYXMgYSBzaW5nbGUgdG9rZW4sIGV2ZW4gaWYg
dGhlIHRleHQgbWFuaXB1bGF0aW9uIGNsaWVudCBlbmRzIHVwIGJyZWFraW5nIHRoZQorICAgICAg
ICB0b2tlbiBpbnRvIG11bHRpcGxlIGNodW5rcy4KKworICAgICAgICBUbyBoYW5kbGUgdGhpcyBj
YXNlLCBwdWxsIHRoZSBgdGl0bGUgfHwgb3B0aW9uYCBjaGVjayBvdXQgaW50byBhIGhlbHBlciBm
dW5jdGlvbiwgYW5kIGNvbnN1bHQgaXQgd2hlbiBjb21wbGV0aW5nCisgICAgICAgIHRleHQgbWFu
aXB1bGF0aW9uIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBtYW5pcHVsYXRpb24gZGF0YSBsYWNrcyBl
aXRoZXIgc3RhcnQgb3IgZW5kIHBvc2l0aW9ucy4gSWYKKyAgICAgICAgYGNhblBlcmZvcm1UZXh0
TWFuaXB1bGF0aW9uQnlSZXBsYWNpbmdFbnRpcmVUZXh0Q29udGVudGAgaXMgdHJ1ZSBhbmQgdGhl
cmUgYXJlIG11bHRpcGxlIHJlcGxhY2VtZW50IHRva2VucywKKyAgICAgICAgYWxsb3cgb3Vyc2Vs
dmVzIHRvIHByb2Nlc3MgdGhlIHJlcGxhY2VtZW50IGJ5IGNvbWJpbmluZyB0aGUgcmVwbGFjZW1l
bnQgdG9rZW5zIGludG8gYSBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nLgorCisgICAgICAgIFRlc3Q6
IFRleHRNYW5pcHVsYXRpb24uQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU2hvdWxkUmVwbGFjZVRl
eHRDb250ZW50V2l0aE11bHRpcGxlVG9rZW5zCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhblBlcmZvcm1UZXh0
TWFuaXB1bGF0aW9uQnlSZXBsYWNpbmdFbnRpcmVUZXh0Q29udGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6b2JzZXJ2ZVBhcmFncmFwaHMpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OnJlcGxhY2UpOgorCiAy
MDIwLTA0LTIwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xG
Q11bVEZDXSBBZGQgc3VwcG9ydCBmb3IgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5j
cHAKaW5kZXggNDkxM2I1ZWJkNDE2YjIzNjdhZTExYWMzN2I3N2QxZTU3NDQ5NDZlMy4uMzBiZDdm
YmFkYTYxNWJjOGE2ZDdkNWZlMTE5YmU1YjY2YWE3ZmE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTIzNyw2
ICsyMzcsMTEgQEAgc3RhdGljIGJvb2wgaXNBdHRyaWJ1dGVGb3JUZXh0TWFuaXB1bGF0aW9uKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWVUb0NoZWNrKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
c3RhdGljIGJvb2wgY2FuUGVyZm9ybVRleHRNYW5pcHVsYXRpb25CeVJlcGxhY2luZ0VudGlyZVRl
eHRDb250ZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGVsZW1lbnQu
aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRpdGxlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjpvcHRpb25UYWcpOworfQorCiB2b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
OjpvYnNlcnZlUGFyYWdyYXBocyhjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9u
JiBlbmQpCiB7CiAgICAgaWYgKHN0YXJ0LmlzTnVsbCgpIHx8IGVuZC5pc051bGwoKSkKQEAgLTI2
Myw3ICsyNjgsNyBAQCB2b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpvYnNlcnZlUGFy
YWdyYXBocyhjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0CiAKICAgICAgICAgICAgIGlmIChp
czxFbGVtZW50PigqY29udGVudC5ub2RlKSkgewogICAgICAgICAgICAgICAgIGF1dG8mIGN1cnJl
bnRFbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKmNvbnRlbnQubm9kZSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFjb250ZW50LmlzVGV4dENvbnRlbnQgJiYgKGNvbnRlbnQubm9kZS0+aGFzVGFn
TmFtZShIVE1MTmFtZXM6OnRpdGxlVGFnKSB8fCBjb250ZW50Lm5vZGUtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjpvcHRpb25UYWcpKSkgeworICAgICAgICAgICAgICAgIGlmICghY29udGVudC5pc1Rl
eHRDb250ZW50ICYmIGNhblBlcmZvcm1UZXh0TWFuaXB1bGF0aW9uQnlSZXBsYWNpbmdFbnRpcmVU
ZXh0Q29udGVudChjdXJyZW50RWxlbWVudCkpIHsKICAgICAgICAgICAgICAgICAgICAgYWRkSXRl
bShNYW5pcHVsYXRpb25JdGVtRGF0YSB7IFBvc2l0aW9uKCksIFBvc2l0aW9uKCksIG1ha2VXZWFr
UHRyKGN1cnJlbnRFbGVtZW50KSwgbnVsbFFOYW1lKCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICB7IE1hbmlwdWxhdGlvblRva2VuIHsgbV90b2tlbklkZW50aWZpZXIuZ2VuZXJhdGUoKSwgY3Vy
cmVudEVsZW1lbnQudGV4dENvbnRlbnQoKSB9IH0gfSk7CiAgICAgICAgICAgICAgICAgfQpAQCAt
NDczLDE4ICs0NzgsMjEgQEAgYXV0byBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cmVwbGFj
ZShjb25zdCBNYW5pcHVsYXRpb25JdGVtRGF0YSYgaXRlbSwgY29uc3QKICAgICAgICAgYXV0byBl
bGVtZW50ID0gbWFrZVJlZlB0cihpdGVtLmVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBpZiAoIWVs
ZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gTWFuaXB1bGF0aW9uRmFpbHVyZVR5cGU6OkNvbnRl
bnRDaGFuZ2VkOwotICAgICAgICBpZiAocmVwbGFjZW1lbnRUb2tlbnMuc2l6ZSgpID4gMSkKKyAg
ICAgICAgaWYgKHJlcGxhY2VtZW50VG9rZW5zLnNpemUoKSA+IDEgJiYgIWNhblBlcmZvcm1UZXh0
TWFuaXB1bGF0aW9uQnlSZXBsYWNpbmdFbnRpcmVUZXh0Q29udGVudCgqZWxlbWVudCkpCiAgICAg
ICAgICAgICByZXR1cm4gTWFuaXB1bGF0aW9uRmFpbHVyZVR5cGU6OkludmFsaWRUb2tlbjsKLSAg
ICAgICAgU3RyaW5nIG5ld1ZhbHVlOwotICAgICAgICBpZiAoIXJlcGxhY2VtZW50VG9rZW5zLmlz
RW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50VG9rZW5zWzBdLmlkZW50aWZp
ZXIgIT0gaXRlbS50b2tlbnNbMF0uaWRlbnRpZmllcikKKyAgICAgICAgYXV0byBleHBlY3RlZFRv
a2VuSWRlbnRpZmllciA9IGl0ZW0udG9rZW5zWzBdLmlkZW50aWZpZXI7CisgICAgICAgIFN0cmlu
Z0J1aWxkZXIgbmV3VmFsdWU7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVwbGFj
ZW1lbnRUb2tlbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudFRv
a2Vuc1tpXS5pZGVudGlmaWVyICE9IGV4cGVjdGVkVG9rZW5JZGVudGlmaWVyKQogICAgICAgICAg
ICAgICAgIHJldHVybiBNYW5pcHVsYXRpb25GYWlsdXJlVHlwZTo6SW52YWxpZFRva2VuOwotICAg
ICAgICAgICAgbmV3VmFsdWUgPSByZXBsYWNlbWVudFRva2Vuc1swXS5jb250ZW50OworICAgICAg
ICAgICAgaWYgKGkpCisgICAgICAgICAgICAgICAgbmV3VmFsdWUuYXBwZW5kKCcgJyk7CisgICAg
ICAgICAgICBuZXdWYWx1ZS5hcHBlbmQocmVwbGFjZW1lbnRUb2tlbnNbaV0uY29udGVudCk7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0uYXR0cmlidXRlTmFtZSA9PSBudWxsUU5hbWUoKSkK
LSAgICAgICAgICAgIGVsZW1lbnQtPnNldFRleHRDb250ZW50KG5ld1ZhbHVlKTsKKyAgICAgICAg
ICAgIGVsZW1lbnQtPnNldFRleHRDb250ZW50KG5ld1ZhbHVlLnRvU3RyaW5nKCkpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoaXRlbS5hdHRyaWJ1dGVO
YW1lLCBuZXdWYWx1ZSk7CisgICAgICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoaXRlbS5h
dHRyaWJ1dGVOYW1lLCBuZXdWYWx1ZS50b1N0cmluZygpKTsKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA4MTdlMzQxNGY3MjRhNmY0NGU5NDQxYmQyNTg4NDVkNzhmZGFjZWNjLi40
Zjc0N2Q5MDgxNTU4YmFhMDMyMWYwNzUxOTFiYTc3ZDAwNGIyNzFmIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAt
MDQtMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
VGV4dCBtYW5pcHVsYXRpb24gc29tZXRpbWVzIGZhaWxzIHRvIHJlcGxhY2UgdGV4dCBpbiB0aXRs
ZSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwNzUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTA2NjEwMz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBUaW0gSG9ydG9uIGFuZCBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGQgYSBu
ZXcgQVBJIHRlc3QgdG8gdmVyaWZ5IHRoYXQgYSBzaW5nbGUgdGl0bGUgb3Igb3B0aW9uIGVsZW1l
bnQgbWF5IGJlIHJlcGxhY2VkIHdpdGggbXVsdGlwbGUgdG9rZW5zLCBhcyBsb25nCisgICAgICAg
IGFzIGFsbCB0aGUgdG9rZW4gaWRlbnRpZmllcnMgbWF0Y2guCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW06CisKIDIwMjAtMDQt
MjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgT3Zl
cnNpemVkIGNhcmV0IGFuZCBzZWxlY3Rpb24gcmVjdHMgaW4gdGV4dCBmaWVsZHMgb24gZ2Fuamku
Y29tIGFuZCBuZXRmbGl4LmNvbS9sb2dpbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCmluZGV4IDdiZTYyM2Qx
MzlmYmJiNTk4MzhiOGU5ZGQxOWI1MmMyZTgxNmQyZjguLjhhNmQ0NmEzZmNiZjQ5MTVhNDk5ZjI0
OTM2Nzk2MTcyMDlhNTYzMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KQEAgLTEwOTMsNiArMTA5Myw1
OCBAQCBURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvblNob3Vs
ZFJlcGxhY2VDb250ZW50Rm9sbG93ZWRBZnRlcgogICAgICAgICAiPGRpdj48c3BhbiBzdHlsZT1c
ImRpc3BsYXk6IGJsb2NrXCI+aGVsbG8sIHdvcmxkPC9zcGFuPjwvZGl2PjwvZGl2PiIsIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVySFRN
TCJdKTsKIH0KIAorVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRp
b25TaG91bGRSZXBsYWNlVGV4dENvbnRlbnRXaXRoTXVsdGlwbGVUb2tlbnMpCit7CisgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDQwMCwgNDAwKV0pOworICAgIFt3ZWJWaWV3
IF9zZXRUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+PGh0bWw+
IgorICAgICAgICAiPHRpdGxlPlRoaXMgaXMgYSB0ZXN0PC90aXRsZT4iCisgICAgICAgICI8c2Vs
ZWN0PiIKKyAgICAgICAgIiAgICA8b3B0aW9uIHNlbGVjdGVkPkhlbGxvIHdvcmxkPC9vcHRpb24+
IgorICAgICAgICAiICAgIDxvcHRpb24+U2hvdWxkIG5vdCBiZSByZXBsYWNlZDwvb3B0aW9uPiIK
KyAgICAgICAgIjwvc2VsZWN0PiIKKyAgICAgICAgIjwvaHRtbD4iXTsKKworICAgIGRvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldyBfc3RhcnRUZXh0TWFuaXB1bGF0aW9uc1dpdGhDb25maWd1cmF0
aW9uOm5pbCBjb21wbGV0aW9uOl57CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBhdXRvICppdGVtcyA9IFtk
ZWxlZ2F0ZSBpdGVtc107CisgICAgRVhQRUNUX0VRKGl0ZW1zLmNvdW50LCAzVUwpOworICAgIEVY
UEVDVF9FUShpdGVtc1swXS50b2tlbnMuY291bnQsIDFVTCk7CisgICAgRVhQRUNUX0VRKGl0ZW1z
WzFdLnRva2Vucy5jb3VudCwgMVVMKTsKKyAgICBFWFBFQ1RfRVEoaXRlbXNbMl0udG9rZW5zLmNv
dW50LCAxVUwpOworICAgIEVYUEVDVF9XS19TVFJFUSgiVGhpcyBpcyBhIHRlc3QiLCBpdGVtc1sw
XS50b2tlbnNbMF0uY29udGVudCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIs
IGl0ZW1zWzFdLnRva2Vuc1swXS5jb250ZW50KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIlNob3Vs
ZCBub3QgYmUgcmVwbGFjZWQiLCBpdGVtc1syXS50b2tlbnNbMF0uY29udGVudCk7CisKKyAgICBh
dXRvIHJlcGxhY2VtZW50SXRlbXMgPSByZXRhaW5QdHIoQFsKKyAgICAgICAgY3JlYXRlSXRlbShp
dGVtc1swXS5pZGVudGlmaWVyLCB7IHsgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAi
UmVwbGFjZW1lbnQiIH0sIHsgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAidGl0bGUi
IH0gfSkuYXV0b3JlbGVhc2UoKSwKKyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1sxXS5pZGVudGlm
aWVyLCB7IHsgaXRlbXNbMV0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiUmVwbGFjZW1lbnQiIH0s
IHsgaXRlbXNbMV0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAib3B0aW9uIiB9IH0pLmF1dG9yZWxl
YXNlKCksCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMl0uaWRlbnRpZmllciwgeyB7IGl0ZW1z
WzJdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkZhaWxlZCByZXBsYWNlbWVudCIgfSwgeyBAIjEy
MzQ1IiwgQCJvcHRpb24iIH0gfSkuYXV0b3JlbGVhc2UoKSwKKyAgICBdKTsKKworICAgIGRvbmUg
PSBmYWxzZTsKKyAgICBbd2ViVmlldyBfY29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRm9ySXRlbXM6
cmVwbGFjZW1lbnRJdGVtcy5nZXQoKSBjb21wbGV0aW9uOl4oTlNBcnJheTxOU0Vycm9yICo+ICpl
cnJvcnMpIHsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9ycy5jb3VudCwgMVVMKTsKKyAgICAgICAg
RVhQRUNUX0VRKGVycm9ycy5maXJzdE9iamVjdC5kb21haW4sIF9XS1RleHRNYW5pcHVsYXRpb25J
dGVtRXJyb3JEb21haW4pOworICAgICAgICBFWFBFQ1RfRVEoZXJyb3JzLmZpcnN0T2JqZWN0LmNv
ZGUsIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtRXJyb3JJbnZhbGlkVG9rZW4pOworICAgICAgICBF
WFBFQ1RfRVEoZXJyb3JzLmZpcnN0T2JqZWN0LnVzZXJJbmZvW19XS1RleHRNYW5pcHVsYXRpb25J
dGVtRXJyb3JJdGVtS2V5XSwgW3JlcGxhY2VtZW50SXRlbXMgbGFzdE9iamVjdF0pOworICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisKKyAgICBOU0FycmF5PE5TU3RyaW5nICo+ICpvcHRpb25zID0gW3dlYlZpZXcgb2Jq
ZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIkFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxl
Y3Rvcignc2VsZWN0Jykub3B0aW9ucykubWFwKG9wdGlvbiA9PiBvcHRpb24udGV4dENvbnRlbnQp
Il07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJSZXBsYWNlbWVudCBvcHRpb24iLCBvcHRpb25zLmZp
cnN0T2JqZWN0KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIlNob3VsZCBub3QgYmUgcmVwbGFjZWQi
LCBvcHRpb25zLmxhc3RPYmplY3QpOworICAgIEVYUEVDVF9XS19TVFJFUSgiUmVwbGFjZW1lbnQg
dGl0bGUiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQu
dGl0bGUiXSk7Cit9CisKIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1
bGF0aW9uU2hvdWxkUmVwbGFjZUNvbnRlbnRzQXJvdW5kUGFyYWdyYXBoV2l0aEp1c3RJbWFnZSkK
IHsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>