<?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>213156</bug_id>
          
          <creation_ts>2020-06-12 16:45:13 -0700</creation_ts>
          <short_desc>Text manipulation does not observe newly displayed element inside previously observed content</short_desc>
          <delta_ts>2020-06-17 11:34:41 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=213311</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1662230</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-06-12 16:45:13 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662232</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-06-12 16:46:41 -0700</bug_when>
    <thetext>&lt;rdar://problems/63734491&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662238</commentid>
    <comment_count>2</comment_count>
      <attachid>401804</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-06-12 16:56:28 -0700</bug_when>
    <thetext>Created attachment 401804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662432</commentid>
    <comment_count>3</comment_count>
      <attachid>401804</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-13 14:34:07 -0700</bug_when>
    <thetext>Comment on attachment 401804
Patch

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

&gt; Source/WebCore/editing/TextManipulationController.cpp:774
&gt; -        updateInsertions(lastTopDownPath, topDownPath, nullptr, reusedOriginalNodes, insertions);
&gt; +        updateInsertions(lastTopDownPath, topDownPath, nullptr, reusedOriginalNodes, insertions, false);

This goes against WebKit coding style. We frown on functions with boolean arguments, where call sites pass a constant, since there’s no way to tell what &quot;false&quot; means. We prefer either separately named functions that make the difference clear, or enum classes for boolean values so you can see their meaning at the call site.

&gt; Source/WebCore/editing/TextManipulationController.cpp:781
&gt; -        insertions.append(NodeInsertion { lastTopDownPath.size() ? lastTopDownPath.last().second.ptr() : nullptr, *node });
&gt; +        insertions.append(NodeInsertion { lastTopDownPath.size() ? lastTopDownPath.last().second.ptr() : nullptr, *node, false });

I think the same applies here, even though this is aggregate initialization rather than function calling. The enum class approach helps make these things easier to understand at the call site. The &quot;false&quot; is quite mysterious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662690</commentid>
    <comment_count>4</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-06-15 10:12:33 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 401804 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401804&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/TextManipulationController.cpp:774
&gt; &gt; -        updateInsertions(lastTopDownPath, topDownPath, nullptr, reusedOriginalNodes, insertions);
&gt; &gt; +        updateInsertions(lastTopDownPath, topDownPath, nullptr, reusedOriginalNodes, insertions, false);
&gt; 
&gt; This goes against WebKit coding style. We frown on functions with boolean
&gt; arguments, where call sites pass a constant, since there’s no way to tell
&gt; what &quot;false&quot; means. We prefer either separately named functions that make
&gt; the difference clear, or enum classes for boolean values so you can see
&gt; their meaning at the call site.
&gt; 
&gt; &gt; Source/WebCore/editing/TextManipulationController.cpp:781
&gt; &gt; -        insertions.append(NodeInsertion { lastTopDownPath.size() ? lastTopDownPath.last().second.ptr() : nullptr, *node });
&gt; &gt; +        insertions.append(NodeInsertion { lastTopDownPath.size() ? lastTopDownPath.last().second.ptr() : nullptr, *node, false });
&gt; 
&gt; I think the same applies here, even though this is aggregate initialization
&gt; rather than function calling. The enum class approach helps make these
&gt; things easier to understand at the call site. The &quot;false&quot; is quite
&gt; mysterious.

Thanks for the review. I will use enum class IsNodeManipulated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662696</commentid>
    <comment_count>5</comment_count>
      <attachid>401909</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-06-15 10:21:48 -0700</bug_when>
    <thetext>Created attachment 401909
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662705</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-15 10:51:43 -0700</bug_when>
    <thetext>Committed r263044: &lt;https://trac.webkit.org/changeset/263044&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401909.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401804</attachid>
            <date>2020-06-12 16:56:28 -0700</date>
            <delta_ts>2020-06-15 10:21:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213156-20200612165627.patch</filename>
            <type>text/plain</type>
            <size>12713</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBlMGNkNWY5ODBkYzJk
ZTBlMjZhNmQzZDU1YjViNjg1NmZjNmI0MC4uMjk1ODE5ZmRhNDkxZDRkMTI4ZTZlNmU1ZWUxYzE2
YTc5NGU3ZGJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA2LTEyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1bGF0aW9u
IGRvZXMgbm90IG9ic2VydmUgbmV3bHkgZGlzcGxheWVkIGVsZW1lbnQgaW5zaWRlIHByZXZpb3Vz
bHkgb2JzZXJ2ZWQgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEzMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IHR3byBpc3N1ZXM6CisgICAgICAgIDEuIFNvbWUgaW5zZXJ0ZWQgbm9k
ZXMgYXJlIG1hcmtlZCBhcyBtYW5pcHVsYXRlZCwgYnV0IHRoZXkgYXJlIGluc2VydGVkIGJlY2F1
c2UgdGhleSBnZXQgcmVtb3ZlZCBpbiB0aGUKKyAgICAgICAgcmVwbGFjZW1lbnQgcHJvY2Vzcywg
bm90IGJlY2F1c2UgdGhleSBhcmUgbWFuaXB1bGF0ZWQgb3IgaW4gdGhlIHJhbmdlIG9mIGl0ZW0u
CisgICAgICAgIDIuIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyIGRvZXMgbm90IHBlcmZvcm0g
bWFuaXB1bGF0aW9uIG9uIGFuIGVsZW1lbnQgaWYgaXRzIGFuY2VzdG9yIGlzIG1hbmlwdWxhdGVk
LiBUaGlzCisgICAgICAgIG1lYW5zIHRoZSBuZXdseSBpbnNlcnRlZC9kaXNwbGF5ZWQgY2hpbGRy
ZW4gb2YgYSBtYW5pcHVsYXRlZCBlbGVtZW50IGFyZSBydWxlZCBvdXQgZm9yIG1hbmlwdWxhdGlv
bi4KKworICAgICAgICBUZXN0OiBUZXh0TWFuaXB1bGF0aW9uLkNvbXBsZXRlVGV4dE1hbmlwdWxh
dGlvbkZvck5ld2x5RGlzcGxheWVkUGFyYWdyYXBoCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyOjpvYnNlcnZlUGFyYWdyYXBocyk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6ZGlkQ3JlYXRlUmVuZGVyZXJGb3JFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjp1cGRhdGVJbnNl
cnRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpy
ZXBsYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpp
c0luTWFuaXB1bGF0ZWRFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL1RleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyLmg6CisKIDIwMjAtMDYtMTIgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZpbGVJbnB1dFR5cGUgc2hvdWxkIHVzZSBXZWFrUHRy
IGZvciBGaWxlTGlzdENyZWF0b3IgbGFtYmRhcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA1MjY5NmFmMzRkNjQ2
MWRkMTU5ZmQzMDRjNmExYjEzZTZhODVmNTNkLi4wYjc4OWMzNThjYzAyNzhkMjRmMWE4Y2YwYzRi
ZThkMzA1MDg1ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTE5LDE3ICsxMTksNiBAQCBUZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlcjo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIoRG9jdW1lbnQmIGRv
Y3VtZW50KQogewogfQogCi1ib29sIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjppc0luTWFu
aXB1bGF0ZWRFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgaWYgKCFtX21hbmlwdWxh
dGVkRWxlbWVudHMuY2FwYWNpdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBGYXN0IHBh
dGggZm9yIHN0YXJ0T2JzZXJ2aW5nUGFyYWdyYXBocy4KLSAgICBmb3IgKGF1dG8mIGFuY2VzdG9y
T3JTZWxmIDogbGluZWFnZU9mVHlwZTxFbGVtZW50PihlbGVtZW50KSkgewotICAgICAgICBpZiAo
bV9tYW5pcHVsYXRlZEVsZW1lbnRzLmNvbnRhaW5zKGFuY2VzdG9yT3JTZWxmKSkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OnN0YXJ0T2JzZXJ2aW5nUGFyYWdyYXBocyhNYW5pcHVs
YXRpb25JdGVtQ2FsbGJhY2smJiBjYWxsYmFjaywgVmVjdG9yPEV4Y2x1c2lvblJ1bGU+JiYgZXhj
bHVzaW9uUnVsZXMpCiB7CiAgICAgYXV0byBkb2N1bWVudCA9IG1ha2VSZWZQdHIobV9kb2N1bWVu
dC5nZXQoKSk7CkBAIC00MzMsOCArNDIyLDcgQEAgdm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcjo6b2JzZXJ2ZVBhcmFncmFwaHMoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdAogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBjdXJyZW50RWxlbWVudEFuY2Vz
dG9yID0gaXM8RWxlbWVudD4oKmNvbnRlbnROb2RlKSA/IGRvd25jYXN0PEVsZW1lbnQ+KGNvbnRl
bnROb2RlKSA6IGNvbnRlbnROb2RlLT5wYXJlbnRPclNoYWRvd0hvc3RFbGVtZW50KCkpIHsKLSAg
ICAgICAgICAgIC8vIFdlIGNhbiBleGl0IGVhcmx5IGhlcmUgYmVjYXVzZSBzY2hlZHVsZU9ic2Vy
dmF0aW9uVXBkYXRlIGNhbGxzIHRoaXMgZnVuY3Rpb24gb24gZWFjaCBwYXJhZ3JhcGggc2VwYXJh
dGVseS4KLSAgICAgICAgICAgIGlmIChpc0luTWFuaXB1bGF0ZWRFbGVtZW50KCpjdXJyZW50RWxl
bWVudEFuY2VzdG9yKSkKKyAgICAgICAgICAgIGlmIChtX21hbmlwdWxhdGVkRWxlbWVudHMuY29u
dGFpbnMoKmN1cnJlbnRFbGVtZW50QW5jZXN0b3IpKQogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCkBAIC00ODgsNyArNDc2LDcgQEAgdm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29u
dHJvbGxlcjo6b2JzZXJ2ZVBhcmFncmFwaHMoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdAog
CiB2b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpkaWRDcmVhdGVSZW5kZXJlckZvckVs
ZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBpZiAoaXNJbk1hbmlwdWxhdGVkRWxlbWVu
dChlbGVtZW50KSkKKyAgICBpZiAobV9tYW5pcHVsYXRlZEVsZW1lbnRzLmNvbnRhaW5zKGVsZW1l
bnQpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9lbGVtZW50c1dpdGhOZXdSZW5kZXJl
ci5jb21wdXRlc0VtcHR5KCkpCkBAIC02MzAsNyArNjE4LDcgQEAgVmVjdG9yPFJlZjxOb2RlPj4g
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OmdldFBhdGgoTm9kZSogYW5jZXN0b3IsIE5vZGUq
IG5vZGUKICAgICByZXR1cm4gcGF0aDsKIH0KIAotdm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcjo6dXBkYXRlSW5zZXJ0aW9ucyhWZWN0b3I8Tm9kZUVudHJ5PiYgbGFzdFRvcERvd25QYXRo
LCBjb25zdCBWZWN0b3I8UmVmPE5vZGU+PiYgY3VycmVudFRvcERvd25QYXRoLCBOb2RlKiBjdXJy
ZW50Tm9kZSwgSGFzaFNldDxSZWY8Tm9kZT4+JiBpbnNlcnRlZE5vZGVzLCBWZWN0b3I8Tm9kZUlu
c2VydGlvbj4mIGluc2VydGlvbnMpCit2b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjp1
cGRhdGVJbnNlcnRpb25zKFZlY3RvcjxOb2RlRW50cnk+JiBsYXN0VG9wRG93blBhdGgsIGNvbnN0
IFZlY3RvcjxSZWY8Tm9kZT4+JiBjdXJyZW50VG9wRG93blBhdGgsIE5vZGUqIGN1cnJlbnROb2Rl
LCBIYXNoU2V0PFJlZjxOb2RlPj4mIGluc2VydGVkTm9kZXMsIFZlY3RvcjxOb2RlSW5zZXJ0aW9u
PiYgaW5zZXJ0aW9ucywgYm9vbCBpc05vZGVNYW5pcHVsYXRlZCkKIHsKICAgICBzaXplX3QgaSA9
MDsKICAgICB3aGlsZSAoaSA8IGxhc3RUb3BEb3duUGF0aC5zaXplKCkgJiYgaSA8IGN1cnJlbnRU
b3BEb3duUGF0aC5zaXplKCkgJiYgbGFzdFRvcERvd25QYXRoW2ldLmZpcnN0LnB0cigpID09IGN1
cnJlbnRUb3BEb3duUGF0aFtpXS5wdHIoKSkKQEAgLTY1NCw3ICs2NDIsNyBAQCB2b2lkIFRleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyOjp1cGRhdGVJbnNlcnRpb25zKFZlY3RvcjxOb2RlRW50cnk+
JiBsYXN0VG9wRG93bgogICAgIH0KIAogICAgIGlmIChjdXJyZW50Tm9kZSkKLSAgICAgICAgaW5z
ZXJ0aW9ucy5hcHBlbmQoTm9kZUluc2VydGlvbiB7IGxhc3RUb3BEb3duUGF0aC5zaXplKCkgPyBs
YXN0VG9wRG93blBhdGgubGFzdCgpLnNlY29uZC5wdHIoKSA6IG51bGxwdHIsICpjdXJyZW50Tm9k
ZSB9KTsKKyAgICAgICAgaW5zZXJ0aW9ucy5hcHBlbmQoTm9kZUluc2VydGlvbiB7IGxhc3RUb3BE
b3duUGF0aC5zaXplKCkgPyBsYXN0VG9wRG93blBhdGgubGFzdCgpLnNlY29uZC5wdHIoKSA6IG51
bGxwdHIsICpjdXJyZW50Tm9kZSwgaXNOb2RlTWFuaXB1bGF0ZWQgfSk7CiB9CiAKIGF1dG8gVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OnJlcGxhY2UoY29uc3QgTWFuaXB1bGF0aW9uSXRlbURh
dGEmIGl0ZW0sIGNvbnN0IFZlY3RvcjxNYW5pcHVsYXRpb25Ub2tlbj4mIHJlcGxhY2VtZW50VG9r
ZW5zKSAtPiBPcHRpb25hbDxNYW5pcHVsYXRpb25GYWlsdXJlVHlwZT4KQEAgLTc4MywxNCArNzcx
LDE0IEBAIGF1dG8gVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OnJlcGxhY2UoY29uc3QgTWFu
aXB1bGF0aW9uSXRlbURhdGEmIGl0ZW0sIGNvbnN0CiAgICAgUmVmUHRyPE5vZGU+IGVuZE5vZGUg
PSBlbmQuZmlyc3ROb2RlKCk7CiAgICAgaWYgKG5vZGUgJiYgbm9kZSAhPSBlbmROb2RlKSB7CiAg
ICAgICAgIGF1dG8gdG9wRG93blBhdGggPSBnZXRQYXRoKGNvbW1vbkFuY2VzdG9yLmdldCgpLCBu
b2RlLT5wYXJlbnROb2RlKCkpOwotICAgICAgICB1cGRhdGVJbnNlcnRpb25zKGxhc3RUb3BEb3du
UGF0aCwgdG9wRG93blBhdGgsIG51bGxwdHIsIHJldXNlZE9yaWdpbmFsTm9kZXMsIGluc2VydGlv
bnMpOworICAgICAgICB1cGRhdGVJbnNlcnRpb25zKGxhc3RUb3BEb3duUGF0aCwgdG9wRG93blBh
dGgsIG51bGxwdHIsIHJldXNlZE9yaWdpbmFsTm9kZXMsIGluc2VydGlvbnMsIGZhbHNlKTsKICAg
ICB9CiAgICAgd2hpbGUgKG5vZGUgIT0gZW5kTm9kZSkgewogICAgICAgICBSZWY8Tm9kZT4gcGFy
ZW50Tm9kZSA9ICpub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIHdoaWxlICghbGFzdFRvcERv
d25QYXRoLmlzRW1wdHkoKSAmJiBsYXN0VG9wRG93blBhdGgubGFzdCgpLmZpcnN0LnB0cigpICE9
IHBhcmVudE5vZGUucHRyKCkpCiAgICAgICAgICAgICBsYXN0VG9wRG93blBhdGgucmVtb3ZlTGFz
dCgpOwogCi0gICAgICAgIGluc2VydGlvbnMuYXBwZW5kKE5vZGVJbnNlcnRpb24geyBsYXN0VG9w
RG93blBhdGguc2l6ZSgpID8gbGFzdFRvcERvd25QYXRoLmxhc3QoKS5zZWNvbmQucHRyKCkgOiBu
dWxscHRyLCAqbm9kZSB9KTsKKyAgICAgICAgaW5zZXJ0aW9ucy5hcHBlbmQoTm9kZUluc2VydGlv
biB7IGxhc3RUb3BEb3duUGF0aC5zaXplKCkgPyBsYXN0VG9wRG93blBhdGgubGFzdCgpLnNlY29u
ZC5wdHIoKSA6IG51bGxwdHIsICpub2RlLCBmYWxzZSB9KTsKICAgICAgICAgbGFzdFRvcERvd25Q
YXRoLmFwcGVuZCh7ICpub2RlLCAqbm9kZSB9KTsKICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJz
YWw6Om5leHQoKm5vZGUpOwogICAgIH0KQEAgLTgwOCw3ICs3OTYsNyBAQCBhdXRvIFRleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyOjpyZXBsYWNlKGNvbnN0IE1hbmlwdWxhdGlvbkl0ZW1EYXRhJiBp
dGVtLCBjb25zdAogICAgICAgICAgICAgaW5zZXJ0aW9uUG9pbnQgPSBwb3NpdGlvbkluUGFyZW50
QWZ0ZXJOb2RlKGluc2VydGlvbi5jaGlsZC5wdHIoKSk7CiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgaW5zZXJ0aW9uLnBhcmVudElmRGlmZmVyZW50RnJvbUNvbW1vbkFuY2VzdG9yLT5hcHBl
bmRDaGlsZChpbnNlcnRpb24uY2hpbGQpOwotICAgICAgICBpZiAoaXM8RWxlbWVudD4oaW5zZXJ0
aW9uLmNoaWxkLmdldCgpKSkKKyAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KGluc2VydGlvbi5jaGls
ZC5nZXQoKSkgJiYgaW5zZXJ0aW9uLmlzQ2hpbGRNYW5pcHVsYXRlZCkKICAgICAgICAgICAgIG1f
bWFuaXB1bGF0ZWRFbGVtZW50cy5hZGQoZG93bmNhc3Q8RWxlbWVudD4oaW5zZXJ0aW9uLmNoaWxk
LmdldCgpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyLmgKaW5kZXggMTRlNzUxOTBhN2E2NDNmYzVjMTI3YzEwMjBi
MzZjNzBlNDdlZGI3Zi4uMzcwODI0NzAyYTZmNWVkYjc1OTcxZWQyNjMzODYzNDlkZTU2NmZmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRy
b2xsZXIuaApAQCAtMTM2LDcgKzEzNiw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBW
ZWN0b3I8TWFuaXB1bGF0aW9uRmFpbHVyZT4gY29tcGxldGVNYW5pcHVsYXRpb24oY29uc3QgVmVj
dG9yPE1hbmlwdWxhdGlvbkl0ZW0+Jik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc0luTWFuaXB1
bGF0ZWRFbGVtZW50KEVsZW1lbnQmKTsKICAgICB2b2lkIG9ic2VydmVQYXJhZ3JhcGhzKGNvbnN0
IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCk7CiAgICAgdm9pZCBzY2hlZHVs
ZU9ic2VydmF0aW9uVXBkYXRlKCk7CiAKQEAgLTE2NywxMCArMTY2LDExIEBAIHByaXZhdGU6CiAg
ICAgc3RydWN0IE5vZGVJbnNlcnRpb24gewogICAgICAgICBSZWZQdHI8Tm9kZT4gcGFyZW50SWZE
aWZmZXJlbnRGcm9tQ29tbW9uQW5jZXN0b3I7CiAgICAgICAgIFJlZjxOb2RlPiBjaGlsZDsKKyAg
ICAgICAgYm9vbCBpc0NoaWxkTWFuaXB1bGF0ZWQgeyB0cnVlIH07CiAgICAgfTsKICAgICB1c2lu
ZyBOb2RlRW50cnkgPSBzdGQ6OnBhaXI8UmVmPE5vZGU+LCBSZWY8Tm9kZT4+OwogICAgIFZlY3Rv
cjxSZWY8Tm9kZT4+IGdldFBhdGgoTm9kZSosIE5vZGUqKTsKLSAgICB2b2lkIHVwZGF0ZUluc2Vy
dGlvbnMoVmVjdG9yPE5vZGVFbnRyeT4mLCBjb25zdCBWZWN0b3I8UmVmPE5vZGU+PiYsIE5vZGUq
LCBIYXNoU2V0PFJlZjxOb2RlPj4mLCBWZWN0b3I8Tm9kZUluc2VydGlvbj4mKTsKKyAgICB2b2lk
IHVwZGF0ZUluc2VydGlvbnMoVmVjdG9yPE5vZGVFbnRyeT4mLCBjb25zdCBWZWN0b3I8UmVmPE5v
ZGU+PiYsIE5vZGUqLCBIYXNoU2V0PFJlZjxOb2RlPj4mLCBWZWN0b3I8Tm9kZUluc2VydGlvbj4m
LCBib29sIGlzTm9kZU1hbmlwdWxhdGVkID0gdHJ1ZSk7CiAgICAgT3B0aW9uYWw8TWFuaXB1bGF0
aW9uRmFpbHVyZVR5cGU+IHJlcGxhY2UoY29uc3QgTWFuaXB1bGF0aW9uSXRlbURhdGEmLCBjb25z
dCBWZWN0b3I8TWFuaXB1bGF0aW9uVG9rZW4+Jik7CiAKICAgICBXZWFrUHRyPERvY3VtZW50PiBt
X2RvY3VtZW50OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDRlMWZhMDkzOGNmMTRhZDRjYTE2ZjJkYWI3ZDkzZTIxNGQ5ODZlYTAuLmViMTMyN2Qy
YjEyOTAzMGUxMjNlM2VmYWM4NzRlZjc5MDA4M2EzZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNi0xMiAg
U2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBUZXh0IG1hbmlwdWxh
dGlvbiBkb2VzIG5vdCBvYnNlcnZlIG5ld2x5IGRpc3BsYXllZCBlbGVtZW50IGluc2lkZSBwcmV2
aW91c2x5IG9ic2VydmVkIGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFu
aXB1bGF0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDYt
MTIgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBv
cnQgYnVpbGRpbmcgdGVzdCBydW5uZXJzIGZvciB3YXRjaE9TIGFuZCB0dk9TCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24u
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRp
b24ubW0KaW5kZXggMGYxMjA1ZjUzNjRiNzgxY2VkZGJhNzAwZmE0MmMzNzI1Y2JhZmIwNC4uNjlm
NzE5ZGY2YWY1NWMwNWExMTg2OTIwNTVmM2YzZjcyMGIzNGEyZSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5t
bQpAQCAtMjQwMCw3ICsyNDAwLDcgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBDb21wbGV0ZVRl
eHRNYW5pcHVsYXRpb25TUHJlc2VydmVOb2Rlc0JlZm9yZVBhcmFncmFwaFJhbmcKICAgICBFWFBF
Q1RfV0tfU1RSRVEoIjxwPjxiPjxicj48YnI+SGVsbG88aT5Xb3JsZDwvaT48L2I+RnJvbSBXZWJL
aXQ8L3A+IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50
LmJvZHkuaW5uZXJIVE1MIl0pOwogfQogCi1URVNUKFRleHRNYW5pcHVsYXRpb24sIEluc2VydGlu
Z0NvbnRlbnRJbnRvQWxyZWFkeU1hbmlwdWxhdGVkQ29udGVudERvZXNOb3RDcmVhdGVUZXh0TWFu
aXB1bGF0aW9uSXRlbSkKK1RFU1QoVGV4dE1hbmlwdWxhdGlvbiwgSW5zZXJ0aW5nQ29udGVudElu
dG9BbHJlYWR5TWFuaXB1bGF0ZWRDb250ZW50Q3JlYXRlc1RleHRNYW5pcHVsYXRpb25JdGVtKQog
ewogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKQEAg
LTI0NDIsNyArMjQ0Miw3IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgSW5zZXJ0aW5nQ29udGVu
dEludG9BbHJlYWR5TWFuaXB1bGF0ZWRDb250ZW50RG9lc05vdENyZWF0CiAgICAgW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzcGFuJyk7IHNwYW4udGV4dENvbnRlbnQgPSAnIFdlYktpdCEnOyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdiJykuYWZ0ZXIoc3Bhbik7Il07CiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQ
cmVzZW50YXRpb25VcGRhdGVdOwogCi0gICAgRVhQRUNUX0ZBTFNFKGZvdW5kTmV3SXRlbUFmdGVy
Q29tcGxldGluZ1RleHRNYW5pcHVsYXRpb24pOworICAgIEVYUEVDVF9UUlVFKGZvdW5kTmV3SXRl
bUFmdGVyQ29tcGxldGluZ1RleHRNYW5pcHVsYXRpb24pOwogICAgIEVYUEVDVF9XS19TVFJFUSgi
PHA+PGk+PGI+aGVsbG8sPC9iPjxzcGFuPiBXZWJLaXQhPC9zcGFuPjwvaT4gd29ybGQ8L3A+Iiwg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5u
ZXJIVE1MIl0pOwogfQogCkBAIC0yNDg1LDYgKzI0ODUsNjcgQEAgVEVTVChUZXh0TWFuaXB1bGF0
aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25JbkJ1dHRvbnNBbmRUZXh0RmllbGRzKQogICAg
IEVYUEVDVF9XS19TVFJFUSgid29ybGQyIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9c3VibWl0XScpLnZh
bHVlIl0pOwogfQogCitURVNUKFRleHRNYW5pcHVsYXRpb24sIENvbXBsZXRlVGV4dE1hbmlwdWxh
dGlvbkZvck5ld2x5RGlzcGxheWVkUGFyYWdyYXBoKQoreworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKKyAgICBbd2ViVmlldyBfc2V0VGV4dE1hbmlw
dWxhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzpAIjwhRE9DVFlQRSBodG1sPjxodG1sPjxib2R5PiIKKyAgICAg
ICAgIjxzdHlsZT4gLmhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IH0gPC9zdHlsZT4iCisgICAgICAg
ICI8ZGl2PiIKKyAgICAgICAgICAgICI8Yj53ZWJraXQhPC9iPiIKKyAgICAgICAgICAgICI8c3Bh
bj4iCisgICAgICAgICAgICAgICAgImhlbGxvIHdvcmxkIgorICAgICAgICAgICAgICAgICI8aSBj
bGFzcz0naGlkZGVuJz5ieWU8L2k+IgorICAgICAgICAgICAgIjwvc3Bhbj4iCisgICAgICAgICI8
L2Rpdj4iCisgICAgICAgICI8L2JvZHk+PC9odG1sPiJdOworCisgICAgZG9uZSA9IGZhbHNlOwor
ICAgIFt3ZWJWaWV3IF9zdGFydFRleHRNYW5pcHVsYXRpb25zV2l0aENvbmZpZ3VyYXRpb246bmls
IGNvbXBsZXRpb246XnsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGF1dG8gKml0ZW1zID0gW2RlbGVnYXRl
IGl0ZW1zXTsKKyAgICBFWFBFQ1RfRVEoaXRlbXMuY291bnQsIDFVTCk7CisgICAgRVhQRUNUX0VR
KGl0ZW1zWzBdLnRva2Vucy5jb3VudCwgMlVMKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIndlYmtp
dCEiLCBpdGVtc1swXS50b2tlbnNbMF0uY29udGVudCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJo
ZWxsbyB3b3JsZCIsIGl0ZW1zWzBdLnRva2Vuc1sxXS5jb250ZW50KTsKKworICAgIGRvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldyBfY29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRm9ySXRlbXM6QFsK
KyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1swXS5pZGVudGlmaWVyLCB7eyBpdGVtc1swXS50b2tl
bnNbMF0uaWRlbnRpZmllciwgQCJXZWJLaXQhIiB9LCB7IGl0ZW1zWzBdLnRva2Vuc1sxXS5pZGVu
dGlmaWVyLCBAIkhlbGxvIFdvcmxkIiB9fSkuZ2V0KCksCisgICAgXSBjb21wbGV0aW9uOl4oTlNB
cnJheTxOU0Vycm9yICo+ICplcnJvcnMpIHsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9ycywgbmls
KTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5p
dGVtQ2FsbGJhY2sgPSBeKF9XS1RleHRNYW5pcHVsYXRpb25JdGVtICppdGVtKSB7CisgICAgICAg
IGRvbmUgPSB0cnVlOworICAgIH07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2knKS5yZW1vdmVBdHRyaWJ1dGUoJ2Ns
YXNzJyk7Il07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIEVY
UEVDVF9FUShpdGVtcy5jb3VudCwgMlVMKTsKKyAgICBFWFBFQ1RfRVEoaXRlbXNbMV0udG9rZW5z
LmNvdW50LCAxVUwpOworICAgIEVYUEVDVF9XS19TVFJFUSgiYnllIiwgaXRlbXNbMV0udG9rZW5z
WzBdLmNvbnRlbnQpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IF9jb21wbGV0
ZVRleHRNYW5pcHVsYXRpb25Gb3JJdGVtczpAWworICAgICAgICBjcmVhdGVJdGVtKGl0ZW1zWzFd
LmlkZW50aWZpZXIsIHt7IGl0ZW1zWzFdLnRva2Vuc1swXS5pZGVudGlmaWVyLCBAIkJ5ZSIgfX0p
LmdldCgpLAorICAgIF0gY29tcGxldGlvbjpeKE5TQXJyYXk8TlNFcnJvciAqPiAqZXJyb3JzKSB7
CisgICAgICAgIEVYUEVDVF9FUShlcnJvcnMsIG5pbCk7CisgICAgICAgIGRvbmUgPSB0cnVlOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBFWFBF
Q1RfV0tfU1RSRVEoIjxiPldlYktpdCE8L2I+PHNwYW4+SGVsbG8gV29ybGQ8aT5CeWU8L2k+PC9z
cGFuPiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCdkaXYnKS5pbm5lckhUTUwiXSk7Cit9CisKIFRFU1QoVGV4dE1hbmlwdWxh
dGlvbiwgVGV4dE1hbmlwdWxhdGlvblRva2VuRGVidWdEZXNjcmlwdGlvbikKIHsKICAgICBhdXRv
IHRva2VuID0gYWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25Ub2tlbiBhbGxvY10gaW5pdF0p
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401909</attachid>
            <date>2020-06-15 10:21:48 -0700</date>
            <delta_ts>2020-06-15 10:51:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213156-20200615102147.patch</filename>
            <type>text/plain</type>
            <size>12969</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJhNThiZDgwMzk1Mjk5
OWRlNzcwOGE4ZGFkMzJlNGFjYzBjMjgxZi4uZWQ1MzUxMTMyZDRmZTg1Y2QxZWE3Zjk0OTgwMTg0
YjA1ZTEyNGZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA2LTE1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFRleHQgbWFuaXB1bGF0aW9u
IGRvZXMgbm90IG9ic2VydmUgbmV3bHkgZGlzcGxheWVkIGVsZW1lbnQgaW5zaWRlIHByZXZpb3Vz
bHkgb2JzZXJ2ZWQgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEzMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgRml4IHR3byBpc3N1ZXM6CisgICAgICAgIDEuIFNvbWUgaW5zZXJ0ZWQgbm9kZXMg
YXJlIG1hcmtlZCBhcyBtYW5pcHVsYXRlZCwgYnV0IHRoZXkgYXJlIGluc2VydGVkIGJlY2F1c2Ug
dGhleSBnZXQgcmVtb3ZlZCBpbiB0aGUKKyAgICAgICAgcmVwbGFjZW1lbnQgcHJvY2Vzcywgbm90
IGJlY2F1c2UgdGhleSBhcmUgbWFuaXB1bGF0ZWQgb3IgaW4gdGhlIHJhbmdlIG9mIGl0ZW0uCisg
ICAgICAgIDIuIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyIGRvZXMgbm90IHBlcmZvcm0gbWFu
aXB1bGF0aW9uIG9uIGFuIGVsZW1lbnQgaWYgaXRzIGFuY2VzdG9yIGlzIG1hbmlwdWxhdGVkLiBU
aGlzCisgICAgICAgIG1lYW5zIHRoZSBuZXdseSBpbnNlcnRlZC9kaXNwbGF5ZWQgY2hpbGRyZW4g
b2YgYSBtYW5pcHVsYXRlZCBlbGVtZW50IGFyZSBydWxlZCBvdXQgZm9yIG1hbmlwdWxhdGlvbi4K
KworICAgICAgICBUZXN0OiBUZXh0TWFuaXB1bGF0aW9uLkNvbXBsZXRlVGV4dE1hbmlwdWxhdGlv
bkZvck5ld2x5RGlzcGxheWVkUGFyYWdyYXBoCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyOjpvYnNlcnZlUGFyYWdyYXBocyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6ZGlkQ3JlYXRlUmVuZGVyZXJGb3JFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjp1cGRhdGVJbnNlcnRp
b25zKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpyZXBs
YWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjppc0lu
TWFuaXB1bGF0ZWRFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmg6CisKIDIwMjAtMDYtMTUgIEFsZXhleSBTaHZheWthICA8c2h2
YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIHN1cGVyIHNob3VsZCBub3QgZGVwZW5kIG9u
IF9fcHJvdG9fXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcAppbmRleCA1MjY5NmFmMzRkNjQ2MWRkMTU5ZmQzMDRjNmExYjEz
ZTZhODVmNTNkLi4yZTRiNDkwOTI0OTUzZWNiODg4ZWU0MWY5YzMyNjhhN2M1MDFiNzE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9s
bGVyLmNwcApAQCAtMTE5LDE3ICsxMTksNiBAQCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogewogfQogCi1i
b29sIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjppc0luTWFuaXB1bGF0ZWRFbGVtZW50KEVs
ZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgaWYgKCFtX21hbmlwdWxhdGVkRWxlbWVudHMuY2FwYWNp
dHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBGYXN0IHBhdGggZm9yIHN0YXJ0T2JzZXJ2
aW5nUGFyYWdyYXBocy4KLSAgICBmb3IgKGF1dG8mIGFuY2VzdG9yT3JTZWxmIDogbGluZWFnZU9m
VHlwZTxFbGVtZW50PihlbGVtZW50KSkgewotICAgICAgICBpZiAobV9tYW5pcHVsYXRlZEVsZW1l
bnRzLmNvbnRhaW5zKGFuY2VzdG9yT3JTZWxmKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgVGV4dE1hbmlwdWxhdGlvbkNvbnRy
b2xsZXI6OnN0YXJ0T2JzZXJ2aW5nUGFyYWdyYXBocyhNYW5pcHVsYXRpb25JdGVtQ2FsbGJhY2sm
JiBjYWxsYmFjaywgVmVjdG9yPEV4Y2x1c2lvblJ1bGU+JiYgZXhjbHVzaW9uUnVsZXMpCiB7CiAg
ICAgYXV0byBkb2N1bWVudCA9IG1ha2VSZWZQdHIobV9kb2N1bWVudC5nZXQoKSk7CkBAIC00MzMs
OCArNDIyLDcgQEAgdm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6b2JzZXJ2ZVBhcmFn
cmFwaHMoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdAogICAgICAgICB9CiAKICAgICAgICAg
aWYgKFJlZlB0cjxFbGVtZW50PiBjdXJyZW50RWxlbWVudEFuY2VzdG9yID0gaXM8RWxlbWVudD4o
KmNvbnRlbnROb2RlKSA/IGRvd25jYXN0PEVsZW1lbnQ+KGNvbnRlbnROb2RlKSA6IGNvbnRlbnRO
b2RlLT5wYXJlbnRPclNoYWRvd0hvc3RFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIGNh
biBleGl0IGVhcmx5IGhlcmUgYmVjYXVzZSBzY2hlZHVsZU9ic2VydmF0aW9uVXBkYXRlIGNhbGxz
IHRoaXMgZnVuY3Rpb24gb24gZWFjaCBwYXJhZ3JhcGggc2VwYXJhdGVseS4KLSAgICAgICAgICAg
IGlmIChpc0luTWFuaXB1bGF0ZWRFbGVtZW50KCpjdXJyZW50RWxlbWVudEFuY2VzdG9yKSkKKyAg
ICAgICAgICAgIGlmIChtX21hbmlwdWxhdGVkRWxlbWVudHMuY29udGFpbnMoKmN1cnJlbnRFbGVt
ZW50QW5jZXN0b3IpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC00
ODgsNyArNDc2LDcgQEAgdm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6b2JzZXJ2ZVBh
cmFncmFwaHMoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdAogCiB2b2lkIFRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyOjpkaWRDcmVhdGVSZW5kZXJlckZvckVsZW1lbnQoRWxlbWVudCYgZWxl
bWVudCkKIHsKLSAgICBpZiAoaXNJbk1hbmlwdWxhdGVkRWxlbWVudChlbGVtZW50KSkKKyAgICBp
ZiAobV9tYW5pcHVsYXRlZEVsZW1lbnRzLmNvbnRhaW5zKGVsZW1lbnQpKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAobV9lbGVtZW50c1dpdGhOZXdSZW5kZXJlci5jb21wdXRlc0VtcHR5KCkp
CkBAIC02MzAsNyArNjE4LDcgQEAgVmVjdG9yPFJlZjxOb2RlPj4gVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXI6OmdldFBhdGgoTm9kZSogYW5jZXN0b3IsIE5vZGUqIG5vZGUKICAgICByZXR1cm4g
cGF0aDsKIH0KIAotdm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6dXBkYXRlSW5zZXJ0
aW9ucyhWZWN0b3I8Tm9kZUVudHJ5PiYgbGFzdFRvcERvd25QYXRoLCBjb25zdCBWZWN0b3I8UmVm
PE5vZGU+PiYgY3VycmVudFRvcERvd25QYXRoLCBOb2RlKiBjdXJyZW50Tm9kZSwgSGFzaFNldDxS
ZWY8Tm9kZT4+JiBpbnNlcnRlZE5vZGVzLCBWZWN0b3I8Tm9kZUluc2VydGlvbj4mIGluc2VydGlv
bnMpCit2b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjp1cGRhdGVJbnNlcnRpb25zKFZl
Y3RvcjxOb2RlRW50cnk+JiBsYXN0VG9wRG93blBhdGgsIGNvbnN0IFZlY3RvcjxSZWY8Tm9kZT4+
JiBjdXJyZW50VG9wRG93blBhdGgsIE5vZGUqIGN1cnJlbnROb2RlLCBIYXNoU2V0PFJlZjxOb2Rl
Pj4mIGluc2VydGVkTm9kZXMsIFZlY3RvcjxOb2RlSW5zZXJ0aW9uPiYgaW5zZXJ0aW9ucywgSXNO
b2RlTWFuaXB1bGF0ZWQgaXNOb2RlTWFuaXB1bGF0ZWQpCiB7CiAgICAgc2l6ZV90IGkgPTA7CiAg
ICAgd2hpbGUgKGkgPCBsYXN0VG9wRG93blBhdGguc2l6ZSgpICYmIGkgPCBjdXJyZW50VG9wRG93
blBhdGguc2l6ZSgpICYmIGxhc3RUb3BEb3duUGF0aFtpXS5maXJzdC5wdHIoKSA9PSBjdXJyZW50
VG9wRG93blBhdGhbaV0ucHRyKCkpCkBAIC02NTQsNyArNjQyLDcgQEAgdm9pZCBUZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlcjo6dXBkYXRlSW5zZXJ0aW9ucyhWZWN0b3I8Tm9kZUVudHJ5PiYgbGFz
dFRvcERvd24KICAgICB9CiAKICAgICBpZiAoY3VycmVudE5vZGUpCi0gICAgICAgIGluc2VydGlv
bnMuYXBwZW5kKE5vZGVJbnNlcnRpb24geyBsYXN0VG9wRG93blBhdGguc2l6ZSgpID8gbGFzdFRv
cERvd25QYXRoLmxhc3QoKS5zZWNvbmQucHRyKCkgOiBudWxscHRyLCAqY3VycmVudE5vZGUgfSk7
CisgICAgICAgIGluc2VydGlvbnMuYXBwZW5kKE5vZGVJbnNlcnRpb24geyBsYXN0VG9wRG93blBh
dGguc2l6ZSgpID8gbGFzdFRvcERvd25QYXRoLmxhc3QoKS5zZWNvbmQucHRyKCkgOiBudWxscHRy
LCAqY3VycmVudE5vZGUsIGlzTm9kZU1hbmlwdWxhdGVkIH0pOwogfQogCiBhdXRvIFRleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyOjpyZXBsYWNlKGNvbnN0IE1hbmlwdWxhdGlvbkl0ZW1EYXRhJiBp
dGVtLCBjb25zdCBWZWN0b3I8TWFuaXB1bGF0aW9uVG9rZW4+JiByZXBsYWNlbWVudFRva2Vucykg
LT4gT3B0aW9uYWw8TWFuaXB1bGF0aW9uRmFpbHVyZVR5cGU+CkBAIC03ODMsMTQgKzc3MSwxNCBA
QCBhdXRvIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpyZXBsYWNlKGNvbnN0IE1hbmlwdWxh
dGlvbkl0ZW1EYXRhJiBpdGVtLCBjb25zdAogICAgIFJlZlB0cjxOb2RlPiBlbmROb2RlID0gZW5k
LmZpcnN0Tm9kZSgpOwogICAgIGlmIChub2RlICYmIG5vZGUgIT0gZW5kTm9kZSkgewogICAgICAg
ICBhdXRvIHRvcERvd25QYXRoID0gZ2V0UGF0aChjb21tb25BbmNlc3Rvci5nZXQoKSwgbm9kZS0+
cGFyZW50Tm9kZSgpKTsKLSAgICAgICAgdXBkYXRlSW5zZXJ0aW9ucyhsYXN0VG9wRG93blBhdGgs
IHRvcERvd25QYXRoLCBudWxscHRyLCByZXVzZWRPcmlnaW5hbE5vZGVzLCBpbnNlcnRpb25zKTsK
KyAgICAgICAgdXBkYXRlSW5zZXJ0aW9ucyhsYXN0VG9wRG93blBhdGgsIHRvcERvd25QYXRoLCBu
dWxscHRyLCByZXVzZWRPcmlnaW5hbE5vZGVzLCBpbnNlcnRpb25zLCBJc05vZGVNYW5pcHVsYXRl
ZDo6Tm8pOwogICAgIH0KICAgICB3aGlsZSAobm9kZSAhPSBlbmROb2RlKSB7CiAgICAgICAgIFJl
ZjxOb2RlPiBwYXJlbnROb2RlID0gKm5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgd2hpbGUg
KCFsYXN0VG9wRG93blBhdGguaXNFbXB0eSgpICYmIGxhc3RUb3BEb3duUGF0aC5sYXN0KCkuZmly
c3QucHRyKCkgIT0gcGFyZW50Tm9kZS5wdHIoKSkKICAgICAgICAgICAgIGxhc3RUb3BEb3duUGF0
aC5yZW1vdmVMYXN0KCk7CiAKLSAgICAgICAgaW5zZXJ0aW9ucy5hcHBlbmQoTm9kZUluc2VydGlv
biB7IGxhc3RUb3BEb3duUGF0aC5zaXplKCkgPyBsYXN0VG9wRG93blBhdGgubGFzdCgpLnNlY29u
ZC5wdHIoKSA6IG51bGxwdHIsICpub2RlIH0pOworICAgICAgICBpbnNlcnRpb25zLmFwcGVuZChO
b2RlSW5zZXJ0aW9uIHsgbGFzdFRvcERvd25QYXRoLnNpemUoKSA/IGxhc3RUb3BEb3duUGF0aC5s
YXN0KCkuc2Vjb25kLnB0cigpIDogbnVsbHB0ciwgKm5vZGUsIElzTm9kZU1hbmlwdWxhdGVkOjpO
byB9KTsKICAgICAgICAgbGFzdFRvcERvd25QYXRoLmFwcGVuZCh7ICpub2RlLCAqbm9kZSB9KTsK
ICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUpOwogICAgIH0KQEAgLTgw
OCw3ICs3OTYsNyBAQCBhdXRvIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpyZXBsYWNlKGNv
bnN0IE1hbmlwdWxhdGlvbkl0ZW1EYXRhJiBpdGVtLCBjb25zdAogICAgICAgICAgICAgaW5zZXJ0
aW9uUG9pbnQgPSBwb3NpdGlvbkluUGFyZW50QWZ0ZXJOb2RlKGluc2VydGlvbi5jaGlsZC5wdHIo
KSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW5zZXJ0aW9uLnBhcmVudElmRGlmZmVy
ZW50RnJvbUNvbW1vbkFuY2VzdG9yLT5hcHBlbmRDaGlsZChpbnNlcnRpb24uY2hpbGQpOwotICAg
ICAgICBpZiAoaXM8RWxlbWVudD4oaW5zZXJ0aW9uLmNoaWxkLmdldCgpKSkKKyAgICAgICAgaWYg
KGlzPEVsZW1lbnQ+KGluc2VydGlvbi5jaGlsZC5nZXQoKSkgJiYgaW5zZXJ0aW9uLmlzQ2hpbGRN
YW5pcHVsYXRlZCA9PSBJc05vZGVNYW5pcHVsYXRlZDo6WWVzKQogICAgICAgICAgICAgbV9tYW5p
cHVsYXRlZEVsZW1lbnRzLmFkZChkb3duY2FzdDxFbGVtZW50PihpbnNlcnRpb24uY2hpbGQuZ2V0
KCkpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlw
dWxhdGlvbkNvbnRyb2xsZXIuaAppbmRleCAxNGU3NTE5MGE3YTY0M2ZjNWMxMjdjMTAyMGIzNmM3
MGU0N2VkYjdmLi5kNmFjZDNjMWU0NzQ2OWQ4Nzc1NmVhZjgwMThiNzNhNjY0Yjk5ZTk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxl
ci5oCkBAIC0xMzYsNyArMTM2LDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3Rv
cjxNYW5pcHVsYXRpb25GYWlsdXJlPiBjb21wbGV0ZU1hbmlwdWxhdGlvbihjb25zdCBWZWN0b3I8
TWFuaXB1bGF0aW9uSXRlbT4mKTsKIAogcHJpdmF0ZToKLSAgICBib29sIGlzSW5NYW5pcHVsYXRl
ZEVsZW1lbnQoRWxlbWVudCYpOwogICAgIHZvaWQgb2JzZXJ2ZVBhcmFncmFwaHMoY29uc3QgUG9z
aXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kKTsKICAgICB2b2lkIHNjaGVkdWxlT2Jz
ZXJ2YXRpb25VcGRhdGUoKTsKIApAQCAtMTY0LDEzICsxNjMsMTUgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGFkZEl0ZW1JZlBvc3NpYmxlKFZlY3RvcjxNYW5pcHVsYXRpb25Vbml0PiYmKTsKICAgICB2
b2lkIGZsdXNoUGVuZGluZ0l0ZW1zRm9yQ2FsbGJhY2soKTsKIAorICAgIGVudW0gY2xhc3MgSXNO
b2RlTWFuaXB1bGF0ZWQgOiBib29sIHsgTm8sIFllcyB9OwogICAgIHN0cnVjdCBOb2RlSW5zZXJ0
aW9uIHsKICAgICAgICAgUmVmUHRyPE5vZGU+IHBhcmVudElmRGlmZmVyZW50RnJvbUNvbW1vbkFu
Y2VzdG9yOwogICAgICAgICBSZWY8Tm9kZT4gY2hpbGQ7CisgICAgICAgIElzTm9kZU1hbmlwdWxh
dGVkIGlzQ2hpbGRNYW5pcHVsYXRlZCB7IElzTm9kZU1hbmlwdWxhdGVkOjpZZXMgfTsKICAgICB9
OwogICAgIHVzaW5nIE5vZGVFbnRyeSA9IHN0ZDo6cGFpcjxSZWY8Tm9kZT4sIFJlZjxOb2RlPj47
CiAgICAgVmVjdG9yPFJlZjxOb2RlPj4gZ2V0UGF0aChOb2RlKiwgTm9kZSopOwotICAgIHZvaWQg
dXBkYXRlSW5zZXJ0aW9ucyhWZWN0b3I8Tm9kZUVudHJ5PiYsIGNvbnN0IFZlY3RvcjxSZWY8Tm9k
ZT4+JiwgTm9kZSosIEhhc2hTZXQ8UmVmPE5vZGU+PiYsIFZlY3RvcjxOb2RlSW5zZXJ0aW9uPiYp
OworICAgIHZvaWQgdXBkYXRlSW5zZXJ0aW9ucyhWZWN0b3I8Tm9kZUVudHJ5PiYsIGNvbnN0IFZl
Y3RvcjxSZWY8Tm9kZT4+JiwgTm9kZSosIEhhc2hTZXQ8UmVmPE5vZGU+PiYsIFZlY3RvcjxOb2Rl
SW5zZXJ0aW9uPiYsIElzTm9kZU1hbmlwdWxhdGVkID0gSXNOb2RlTWFuaXB1bGF0ZWQ6Olllcyk7
CiAgICAgT3B0aW9uYWw8TWFuaXB1bGF0aW9uRmFpbHVyZVR5cGU+IHJlcGxhY2UoY29uc3QgTWFu
aXB1bGF0aW9uSXRlbURhdGEmLCBjb25zdCBWZWN0b3I8TWFuaXB1bGF0aW9uVG9rZW4+Jik7CiAK
ICAgICBXZWFrUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQyNDM2OWRkZjgxMzA2M2YyNDZlYTRkODQz
YmZhZDIyNjg5ZmUxZGMuLjAxNTM1ZTg5MzhhODRhOThmNmU0ZmM4OWFkMDcwYmY0NzM0YzU1MzIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wNi0xNSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4K
KworICAgICAgICBUZXh0IG1hbmlwdWxhdGlvbiBkb2VzIG5vdCBvYnNlcnZlIG5ld2x5IGRpc3Bs
YXllZCBlbGVtZW50IGluc2lkZSBwcmV2aW91c2x5IG9ic2VydmVkIGNvbnRlbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzE1NgorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMjAtMDYtMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtGbGF0cGFrIFNES10gQnVtcCBTdWJ2ZXJzaW9uIGFuZCBlbmFi
bGUgUGVybCBiaW5kaW5ncwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tCmluZGV4IDBmMTIwNWY1MzY0Yjc4MWNl
ZGRiYTcwMGZhNDJjMzcyNWNiYWZiMDQuLjY5ZjcxOWRmNmFmNTVjMDVhMTE4NjkyMDU1ZjNmM2Y3
MjBiMzRhMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvVGV4dE1hbmlwdWxhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0KQEAgLTI0MDAsNyArMjQwMCw3IEBAIFRFU1Qo
VGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uU1ByZXNlcnZlTm9kZXNC
ZWZvcmVQYXJhZ3JhcGhSYW5nCiAgICAgRVhQRUNUX1dLX1NUUkVRKCI8cD48Yj48YnI+PGJyPkhl
bGxvPGk+V29ybGQ8L2k+PC9iPkZyb20gV2ViS2l0PC9wPiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVySFRNTCJdKTsKIH0KIAotVEVT
VChUZXh0TWFuaXB1bGF0aW9uLCBJbnNlcnRpbmdDb250ZW50SW50b0FscmVhZHlNYW5pcHVsYXRl
ZENvbnRlbnREb2VzTm90Q3JlYXRlVGV4dE1hbmlwdWxhdGlvbkl0ZW0pCitURVNUKFRleHRNYW5p
cHVsYXRpb24sIEluc2VydGluZ0NvbnRlbnRJbnRvQWxyZWFkeU1hbmlwdWxhdGVkQ29udGVudENy
ZWF0ZXNUZXh0TWFuaXB1bGF0aW9uSXRlbSkKIHsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7CkBAIC0yNDQyLDcgKzI0NDIsNyBAQCBURVNUKFRleHRN
YW5pcHVsYXRpb24sIEluc2VydGluZ0NvbnRlbnRJbnRvQWxyZWFkeU1hbmlwdWxhdGVkQ29udGVu
dERvZXNOb3RDcmVhdAogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOyBzcGFuLnRleHRDb250ZW50
ID0gJyBXZWJLaXQhJzsgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYicpLmFmdGVyKHNwYW4pOyJd
OwogICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKIAotICAgIEVY
UEVDVF9GQUxTRShmb3VuZE5ld0l0ZW1BZnRlckNvbXBsZXRpbmdUZXh0TWFuaXB1bGF0aW9uKTsK
KyAgICBFWFBFQ1RfVFJVRShmb3VuZE5ld0l0ZW1BZnRlckNvbXBsZXRpbmdUZXh0TWFuaXB1bGF0
aW9uKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIjxwPjxpPjxiPmhlbGxvLDwvYj48c3Bhbj4gV2Vi
S2l0ITwvc3Bhbj48L2k+IHdvcmxkPC9wPiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVySFRNTCJdKTsKIH0KIApAQCAtMjQ4NSw2ICsy
NDg1LDY3IEBAIFRFU1QoVGV4dE1hbmlwdWxhdGlvbiwgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9u
SW5CdXR0b25zQW5kVGV4dEZpZWxkcykKICAgICBFWFBFQ1RfV0tfU1RSRVEoIndvcmxkMiIsIFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCdpbnB1dFt0eXBlPXN1Ym1pdF0nKS52YWx1ZSJdKTsKIH0KIAorVEVTVChUZXh0TWFuaXB1
bGF0aW9uLCBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb25Gb3JOZXdseURpc3BsYXllZFBhcmFncmFw
aCkKK3sKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1RleHRNYW5pcHVsYXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDApXSk7
CisgICAgW3dlYlZpZXcgX3NldFRleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQo
KV07CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8IURPQ1RZ
UEUgaHRtbD48aHRtbD48Ym9keT4iCisgICAgICAgICI8c3R5bGU+IC5oaWRkZW4geyBkaXNwbGF5
OiBub25lOyB9IDwvc3R5bGU+IgorICAgICAgICAiPGRpdj4iCisgICAgICAgICAgICAiPGI+d2Vi
a2l0ITwvYj4iCisgICAgICAgICAgICAiPHNwYW4+IgorICAgICAgICAgICAgICAgICJoZWxsbyB3
b3JsZCIKKyAgICAgICAgICAgICAgICAiPGkgY2xhc3M9J2hpZGRlbic+YnllPC9pPiIKKyAgICAg
ICAgICAgICI8L3NwYW4+IgorICAgICAgICAiPC9kaXY+IgorICAgICAgICAiPC9ib2R5PjwvaHRt
bD4iXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBfc3RhcnRUZXh0TWFuaXB1
bGF0aW9uc1dpdGhDb25maWd1cmF0aW9uOm5pbCBjb21wbGV0aW9uOl57CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisK
KyAgICBhdXRvICppdGVtcyA9IFtkZWxlZ2F0ZSBpdGVtc107CisgICAgRVhQRUNUX0VRKGl0ZW1z
LmNvdW50LCAxVUwpOworICAgIEVYUEVDVF9FUShpdGVtc1swXS50b2tlbnMuY291bnQsIDJVTCk7
CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ3ZWJraXQhIiwgaXRlbXNbMF0udG9rZW5zWzBdLmNvbnRl
bnQpOworICAgIEVYUEVDVF9XS19TVFJFUSgiaGVsbG8gd29ybGQiLCBpdGVtc1swXS50b2tlbnNb
MV0uY29udGVudCk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX2NvbXBsZXRl
VGV4dE1hbmlwdWxhdGlvbkZvckl0ZW1zOkBbCisgICAgICAgIGNyZWF0ZUl0ZW0oaXRlbXNbMF0u
aWRlbnRpZmllciwge3sgaXRlbXNbMF0udG9rZW5zWzBdLmlkZW50aWZpZXIsIEAiV2ViS2l0ISIg
fSwgeyBpdGVtc1swXS50b2tlbnNbMV0uaWRlbnRpZmllciwgQCJIZWxsbyBXb3JsZCIgfX0pLmdl
dCgpLAorICAgIF0gY29tcGxldGlvbjpeKE5TQXJyYXk8TlNFcnJvciAqPiAqZXJyb3JzKSB7Cisg
ICAgICAgIEVYUEVDVF9FUShlcnJvcnMsIG5pbCk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBkb25lID0g
ZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuaXRlbUNhbGxiYWNrID0gXihfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbSAqaXRlbSkgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9OworICAgIFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCdpJykucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycpOyJdOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBFWFBFQ1RfRVEoaXRlbXMuY291bnQsIDJVTCk7Cisg
ICAgRVhQRUNUX0VRKGl0ZW1zWzFdLnRva2Vucy5jb3VudCwgMVVMKTsKKyAgICBFWFBFQ1RfV0tf
U1RSRVEoImJ5ZSIsIGl0ZW1zWzFdLnRva2Vuc1swXS5jb250ZW50KTsKKworICAgIGRvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldyBfY29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRm9ySXRlbXM6QFsK
KyAgICAgICAgY3JlYXRlSXRlbShpdGVtc1sxXS5pZGVudGlmaWVyLCB7eyBpdGVtc1sxXS50b2tl
bnNbMF0uaWRlbnRpZmllciwgQCJCeWUiIH19KS5nZXQoKSwKKyAgICBdIGNvbXBsZXRpb246XihO
U0FycmF5PE5TRXJyb3IgKj4gKmVycm9ycykgeworICAgICAgICBFWFBFQ1RfRVEoZXJyb3JzLCBu
aWwpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworCisgICAgRVhQRUNUX1dLX1NUUkVRKCI8Yj5XZWJLaXQhPC9iPjxz
cGFuPkhlbGxvIFdvcmxkPGk+QnllPC9pPjwvc3Bhbj4iLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2JykuaW5uZXJIVE1M
Il0pOworfQorCiBURVNUKFRleHRNYW5pcHVsYXRpb24sIFRleHRNYW5pcHVsYXRpb25Ub2tlbkRl
YnVnRGVzY3JpcHRpb24pCiB7CiAgICAgYXV0byB0b2tlbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFu
aXB1bGF0aW9uVG9rZW4gYWxsb2NdIGluaXRdKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>