<?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>226775</bug_id>
          
          <creation_ts>2021-06-08 12:38:16 -0700</creation_ts>
          <short_desc>[iOS] Safari tab pill should toggle visibility when tapping on article text on adventure.com</short_desc>
          <delta_ts>2021-06-08 16:30:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1767857</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-08 12:38:16 -0700</bug_when>
    <thetext>rdar://78826820</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767859</commentid>
    <comment_count>1</comment_count>
      <attachid>430877</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-08 12:46:01 -0700</bug_when>
    <thetext>Created attachment 430877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767890</commentid>
    <comment_count>2</comment_count>
      <attachid>430885</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-08 13:45:39 -0700</bug_when>
    <thetext>Created attachment 430885
Small adjustment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767898</commentid>
    <comment_count>3</comment_count>
      <attachid>430885</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-06-08 13:53:49 -0700</bug_when>
    <thetext>Comment on attachment 430885
Small adjustment

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

r=me as well :)

&gt; Source/WebKit/ChangeLog:9
&gt; +        Adjust the meaningful click heuristic to account for click event listeners added to the document node. See below

Do we also want to consider if the event listener was added to the `document.documentElement` or `window`?

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:845
&gt; +    if (is&lt;HTMLBodyElement&gt;(clickNode) || clickNode.isDocumentNode())

NIT: `is&lt;Document&gt;(clickNode)`

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1700
&gt; +    auto frame = makeRefPtr(node.document().frame());

Is it actually necessary/desirable to keep `frame` alive for the lifetime of this function?  My understanding of the &quot;rules&quot; regarding this is that since `Frame::view` is a simple getter it&apos;s not necessary to keep the `frame` alive (this is also true for `FrameDestructionObserver::frame`).

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1735
&gt; +    auto frame = makeRefPtr(node.document().frame());

ditto (:1700)

&gt; LayoutTests/fast/events/ios/non-meaningful-click-when-tapping-document.html:6
&gt; +body, html {

NIT: Is this actually necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767907</commentid>
    <comment_count>4</comment_count>
      <attachid>430885</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-08 14:22:02 -0700</bug_when>
    <thetext>Comment on attachment 430885
Small adjustment

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

&gt;&gt; Source/WebKit/ChangeLog:9
&gt;&gt; +        Adjust the meaningful click heuristic to account for click event listeners added to the document node. See below
&gt; 
&gt; Do we also want to consider if the event listener was added to the `document.documentElement` or `window`?

Good point — I&apos;ll a check for the documentElement(). However, we don&apos;t seem to dispatch synthetic clicks in the case where the click event listener is added on `window`...

&gt;&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:845
&gt;&gt; +    if (is&lt;HTMLBodyElement&gt;(clickNode) || clickNode.isDocumentNode())
&gt; 
&gt; NIT: `is&lt;Document&gt;(clickNode)`

Sure.

&gt;&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1700
&gt;&gt; +    auto frame = makeRefPtr(node.document().frame());
&gt; 
&gt; Is it actually necessary/desirable to keep `frame` alive for the lifetime of this function?  My understanding of the &quot;rules&quot; regarding this is that since `Frame::view` is a simple getter it&apos;s not necessary to keep the `frame` alive (this is also true for `FrameDestructionObserver::frame`).

My understanding is that it&apos;s considered better practice to use smart pointers to hold on to RefCounted objects in local variables, even if it&apos;s only being called with trivial getters.

&gt;&gt; LayoutTests/fast/events/ios/non-meaningful-click-when-tapping-document.html:6
&gt;&gt; +body, html {
&gt; 
&gt; NIT: Is this actually necessary?

Not all of them - just width and height. I&apos;ll remove the other properties, I suppose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767908</commentid>
    <comment_count>5</comment_count>
      <attachid>430891</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-08 14:23:01 -0700</bug_when>
    <thetext>Created attachment 430891
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767955</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-08 16:30:29 -0700</bug_when>
    <thetext>Committed r278633 (238616@main): &lt;https://commits.webkit.org/238616@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430891.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430877</attachid>
            <date>2021-06-08 12:46:01 -0700</date>
            <delta_ts>2021-06-08 13:45:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226775-20210608124600.patch</filename>
            <type>text/plain</type>
            <size>14108</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0ZGE3YzU1NjFmNzRkNDdl
YzM2NmVkY2JmMzc2MDIzOTc2OTA0ZWUuLjNlMTIwZTgxZWY2Nzc4MjMzZGEzYWUxNTk0ZDJlYzEy
ZDRmN2JiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMDYtMDggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gU2FmYXJpIHRh
YiBwaWxsIHNob3VsZCB0b2dnbGUgdmlzaWJpbGl0eSB3aGVuIHRhcHBpbmcgb24gYXJ0aWNsZSB0
ZXh0IG9uIGFkdmVudHVyZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjc3NQorICAgICAgICByZGFyOi8vNzg4MjY4MjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGp1c3QgdGhlIG1lYW5pbmdm
dWwgY2xpY2sgaGV1cmlzdGljIHRvIGFjY291bnQgZm9yIGNsaWNrIGV2ZW50IGxpc3RlbmVycyBh
ZGRlZCB0byB0aGUgZG9jdW1lbnQgbm9kZS4gU2VlIGJlbG93CisgICAgICAgIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvaW9zL25vbi1tZWFuaW5nZnVsLWNs
aWNrLXdoZW4tdGFwcGluZy1kb2N1bWVudC5odG1sCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UGxhdGZvcm1FZGl0b3JTdGF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OmlzUHJvYmFibHlNZWFuaW5nZnVsQ2xpY2spOgor
CisgICAgICAgIFJlbW92ZSBhIGNoZWNrIGZvciB3aGV0aGVyIG9yIG5vdCB0aGUgY2xpY2tlZCBu
b2RlIGlzIGFuIEVsZW1lbnQ7IHRoaXMgZXhpc3RlZCBiZWNhdXNlIHRoZSBjYWxsIHRvCisgICAg
ICAgIGByb290Vmlld0JvdW5kc0ZvckVsZW1lbnRgIGJlbG93IHRha2VzIGFuIEVsZW1lbnQgcmF0
aGVyIHRoYW4ganVzdCBhIE5vZGU7IGhvd2V2ZXIsIHRoaXMgbWV0aG9kIGRvZXNuJ3QgZG8KKyAg
ICAgICAgYW55dGhpbmcgdGhhdCByZXF1aXJlcyBhbiBFbGVtZW50IGluc3RlYWQgb2YgYSBOb2Rl
LCBzbyB3ZSBjYW4ganVzdCByZW1vdmUgdGhlIGNoZWNrIGFuZCByZWZhY3RvciB0aGVzZSBzdGF0
aWMKKyAgICAgICAgbWV0aG9kcyB0byBhY2NlcHQgTm9kZXMuIFRoaXMgYWxsb3dzIHVzIHRvIGJh
aWwgZWFybHkgaWYgdGhlIGNsaWNrZWQgbm9kZSBpcyAqZWl0aGVyKiB0aGUgYm9keSBvciB0aGUg
ZG9jdW1lbnQKKyAgICAgICAgbm9kZSwgaW5zdGVhZCBvZiBqdXN0IHRoZSBib2R5LgorCisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6Omluc2VydERyb3BwZWRJbWFnZVBsYWNlaG9sZGVycyk6Cisg
ICAgICAgIChXZWJLaXQ6OmVsZW1lbnRCb3VuZHNJbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cm9vdFZpZXdCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphYnNv
bHV0ZUludGVyYWN0aW9uQm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cm9vdFZp
ZXdJbnRlcmFjdGlvbkJvdW5kcyk6CisKKyAgICAgICAgRHJpdmUtYnkgcmVmYWN0b3Jpbmc6IGRy
b3AgdGhlIGAtRm9yRWxlbWVudGAgc3VmZml4ZXMgb24gdGhlc2UgaGVscGVyIG1ldGhvZHMsIGFu
ZCBhZGRpdGlvbmFsbHkgbWFrZSB0aGVtIGFjY2VwdAorICAgICAgICBhIE5vZGUgaW5zdGVhZCBv
ZiByZXF1aXJpbmcgYW4gRWxlbWVudC4gVGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZSBgaXM8
RWxlbWVudD4oKWAgY2hlY2sgZnJvbSB0aGUgbWVhbmluZ2Z1bAorICAgICAgICBjbGljayBoZXVy
aXN0aWMgYWJvdmUuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlzcGF0Y2hTeW50aGV0
aWNNb3VzZUV2ZW50c0ZvclNlbGVjdGlvbkdlc3R1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpmb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cm9vdFZpZXdCb3VuZHNGb3JFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6YWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyb290Vmlld0ludGVyYWN0aW9uQm91bmRzRm9yRWxl
bWVudCk6IERlbGV0ZWQuCisKIDIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9yIExpdmUg
VGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDBl
MzQxYjYwY2M4Mjk1MTQ1ZGJmYTViNTNlNDA4ODliNWQzZDk4ZmMuLjRmZThiNThkYTM3NTVjNWJl
Y2ZhMTBmOTI5ZjU1ZTQ3NzQ0NGJkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTEzNTYsMTAgKzEzNTYsMTAgQEAgcHVibGljOgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICAvLyBUaGlzIGV4Y2x1ZGVzIGxheW91dCBvdmVyZmxvdywg
aW5jbHVkZXMgYm9yZGVycy4KLSAgICBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld0Jv
dW5kc0ZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYpOworICAgIHN0YXRpYyBXZWJD
b3JlOjpJbnRSZWN0IHJvb3RWaWV3Qm91bmRzKGNvbnN0IFdlYkNvcmU6Ok5vZGUmKTsKICAgICAv
LyBUaGVzZSBpbmNsdWRlIGxheW91dCBvdmVyZmxvdyBmb3Igb3ZlcmZsb3c6dmlzaWJsZSBlbGVt
ZW50cywgYnV0IGV4Y2x1ZGUgYm9yZGVycy4KLSAgICBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBh
YnNvbHV0ZUludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50
Jik7Ci0gICAgc3RhdGljIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdJbnRlcmFjdGlvbkJvdW5k
c0ZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYpOworICAgIHN0YXRpYyBXZWJDb3Jl
OjpJbnRSZWN0IGFic29sdXRlSW50ZXJhY3Rpb25Cb3VuZHMoY29uc3QgV2ViQ29yZTo6Tm9kZSYp
OworICAgIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3SW50ZXJhY3Rpb25Cb3VuZHMo
Y29uc3QgV2ViQ29yZTo6Tm9kZSYpOwogCiAgICAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gcG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdCYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQppbmRleCBhYWY4ODcyMTM3NzMwMDI0ZjZiYWUzYzFlZmMwNjU4MjIy
ODFhNWNjLi40ZmFiMzczY2U5N2VlMjJmYzM5MWU5ZWI3MWQ0NzlhN2IxNjFhZDkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpA
QCAtMzQ0LDcgKzM0NCw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0UGxhdGZvcm1FZGl0b3JTdGF0ZShG
cmFtZSYgZnJhbWUsIEVkaXRvclN0YXRlJiByZXN1bHQpIGNvbnN0CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAoYXV0byBlZGl0YWJsZVJvb3RPckZvcm1Db250cm9sID0gbWFrZVJlZlB0cihlbmNs
b3NpbmdUZXh0Rm9ybUNvbnRyb2woc2VsZWN0aW9uLnN0YXJ0KCkpID86IHNlbGVjdGlvbi5yb290
RWRpdGFibGVFbGVtZW50KCkpKSB7Ci0gICAgICAgICAgICBwb3N0TGF5b3V0RGF0YS5zZWxlY3Rp
b25DbGlwUmVjdCA9IHJvb3RWaWV3SW50ZXJhY3Rpb25Cb3VuZHNGb3JFbGVtZW50KCplZGl0YWJs
ZVJvb3RPckZvcm1Db250cm9sKTsKKyAgICAgICAgICAgIHBvc3RMYXlvdXREYXRhLnNlbGVjdGlv
bkNsaXBSZWN0ID0gcm9vdFZpZXdJbnRlcmFjdGlvbkJvdW5kcygqZWRpdGFibGVSb290T3JGb3Jt
Q29udHJvbCk7CiAgICAgICAgICAgICBwb3N0TGF5b3V0RGF0YS5lZGl0YWJsZVJvb3RJc1RyYW5z
cGFyZW50T3JGdWxseUNsaXBwZWQgPSByZXN1bHQuaXNDb250ZW50RWRpdGFibGUgJiYgaXNUcmFu
c3BhcmVudE9yRnVsbHlDbGlwcGVkKCplZGl0YWJsZVJvb3RPckZvcm1Db250cm9sKTsKICAgICAg
ICAgfQogICAgICAgICBjb21wdXRlRWRpdGFibGVSb290SGFzQ29udGVudEFuZFBsYWluVGV4dChz
ZWxlY3Rpb24sIHBvc3RMYXlvdXREYXRhKTsKQEAgLTgzOSwxNCArODM5LDE0IEBAIHZvaWQgV2Vi
UGFnZTo6ZGlkRmluaXNoQ29udGVudENoYW5nZU9ic2VydmluZyhXS0NvbnRlbnRDaGFuZ2Ugb2Jz
ZXJ2ZWRDb250ZW50Q2hhCiBzdGF0aWMgYm9vbCBpc1Byb2JhYmx5TWVhbmluZ2Z1bENsaWNrKE5v
ZGUmIGNsaWNrTm9kZSkKIHsKICAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihjbGlja05vZGUu
ZG9jdW1lbnQoKS5mcmFtZSgpKTsKLSAgICBpZiAoIWlzPEVsZW1lbnQ+KGNsaWNrTm9kZSkgfHwg
IWNsaWNrTm9kZS5pc0Nvbm5lY3RlZCgpIHx8ICFmcmFtZSkKKyAgICBpZiAoIWZyYW1lIHx8ICFj
bGlja05vZGUuaXNDb25uZWN0ZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAo
aXM8SFRNTEJvZHlFbGVtZW50PihjbGlja05vZGUpKQorICAgIGlmIChpczxIVE1MQm9keUVsZW1l
bnQ+KGNsaWNrTm9kZSkgfHwgY2xpY2tOb2RlLmlzRG9jdW1lbnROb2RlKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmIChhdXRvIHZpZXcgPSBtYWtlUmVmUHRyKGZyYW1lLT5tYWlu
RnJhbWUoKS52aWV3KCkpKSB7Ci0gICAgICAgIGF1dG8gZWxlbWVudEJvdW5kcyA9IFdlYlBhZ2U6
OnJvb3RWaWV3Qm91bmRzRm9yRWxlbWVudChkb3duY2FzdDxFbGVtZW50PihjbGlja05vZGUpKTsK
KyAgICAgICAgYXV0byBlbGVtZW50Qm91bmRzID0gV2ViUGFnZTo6cm9vdFZpZXdJbnRlcmFjdGlv
bkJvdW5kcyhjbGlja05vZGUpOwogICAgICAgICBhdXRvIHVub2JzY3VyZWRSZWN0ID0gdmlldy0+
dW5vYnNjdXJlZENvbnRlbnRSZWN0KCk7CiAgICAgICAgIGlmIChlbGVtZW50Qm91bmRzLndpZHRo
KCkgPj0gdW5vYnNjdXJlZFJlY3Qud2lkdGgoKSAvIDIgJiYgZWxlbWVudEJvdW5kcy5oZWlnaHQo
KSA+PSB1bm9ic2N1cmVkUmVjdC5oZWlnaHQoKSAvIDIpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0xMDA1LDcgKzEwMDUsNyBAQCB2b2lkIFdlYlBhZ2U6Omluc2VydERyb3BwZWRJbWFn
ZVBsYWNlaG9sZGVycyhjb25zdCBWZWN0b3I8SW50U2l6ZT4mIGltYWdlU2l6ZXMsCiB7CiAgICAg
bV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmluc2VydERyb3BwZWRJbWFnZVBsYWNlaG9sZGVyc0F0
Q2FyZXQoaW1hZ2VTaXplcyk7CiAgICAgYXV0byBwbGFjZWhvbGRlclJlY3RzID0gbV9wYWdlLT5k
cmFnQ29udHJvbGxlcigpLmRyb3BwZWRJbWFnZVBsYWNlaG9sZGVycygpLm1hcChbJl0gKGF1dG8m
IGVsZW1lbnQpIHsKLSAgICAgICAgcmV0dXJuIHJvb3RWaWV3Qm91bmRzRm9yRWxlbWVudChlbGVt
ZW50KTsKKyAgICAgICAgcmV0dXJuIHJvb3RWaWV3Qm91bmRzKGVsZW1lbnQpOwogICAgIH0pOwog
CiAgICAgYXV0byBpbWFnZVBsYWNlaG9sZGVyUmFuZ2UgPSBtX3BhZ2UtPmRyYWdDb250cm9sbGVy
KCkuZHJvcHBlZEltYWdlUGxhY2Vob2xkZXJSYW5nZSgpOwpAQCAtMTM2MCwxMCArMTM2MCwxMCBA
QCBzdGF0aWMgSW50UmVjdCBlbGVtZW50Qm91bmRzSW5GcmFtZShjb25zdCBGcmFtZSYgZnJhbWUs
IGNvbnN0IEVsZW1lbnQmIGZvY3VzZWRFbAogICAgIGZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIAogICAgIGlmIChmb2N1c2VkRWxl
bWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dGV4dGFyZWFUYWcpIHx8IGZvY3VzZWRFbGVtZW50
Lmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykgfHwgZm9jdXNlZEVsZW1lbnQuaGFzVGFn
TmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpCi0gICAgICAgIHJldHVybiBXZWJQYWdlOjphYnNv
bHV0ZUludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudChmb2N1c2VkRWxlbWVudCk7CisgICAgICAg
IHJldHVybiBXZWJQYWdlOjphYnNvbHV0ZUludGVyYWN0aW9uQm91bmRzKGZvY3VzZWRFbGVtZW50
KTsKIAogICAgIGlmIChhdXRvKiByb290RWRpdGFibGVFbGVtZW50ID0gZm9jdXNlZEVsZW1lbnQu
cm9vdEVkaXRhYmxlRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gV2ViUGFnZTo6YWJzb2x1dGVJ
bnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoKnJvb3RFZGl0YWJsZUVsZW1lbnQpOworICAgICAg
ICByZXR1cm4gV2ViUGFnZTo6YWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kcygqcm9vdEVkaXRhYmxl
RWxlbWVudCk7CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtMTY3OCw5ICsxNjc4LDkgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHJhbmdlQXRXb3JkQm91bmRhcnlGb3JQb3Np
dGlvbihGcmFtZSogZnJhbWUsIGMKICAgICByZXR1cm4gbWFrZVNpbXBsZVJhbmdlKGJhc2UsIGV4
dGVudCk7CiB9CiAKLUludFJlY3QgV2ViUGFnZTo6cm9vdFZpZXdCb3VuZHNGb3JFbGVtZW50KGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpCitJbnRSZWN0IFdlYlBhZ2U6OnJvb3RWaWV3Qm91bmRzKGNv
bnN0IE5vZGUmIG5vZGUpCiB7Ci0gICAgYXV0byogZnJhbWUgPSBlbGVtZW50LmRvY3VtZW50KCku
ZnJhbWUoKTsKKyAgICBhdXRvKiBmcmFtZSA9IG5vZGUuZG9jdW1lbnQoKS5mcmFtZSgpOwogICAg
IGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTE2ODgsMjQgKzE2ODgsMjQg
QEAgSW50UmVjdCBXZWJQYWdlOjpyb290Vmlld0JvdW5kc0ZvckVsZW1lbnQoY29uc3QgRWxlbWVu
dCYgZWxlbWVudCkKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBh
dXRvKiByZW5kZXJlciA9IGVsZW1lbnQucmVuZGVyZXIoKTsKKyAgICBhdXRvKiByZW5kZXJlciA9
IG5vZGUucmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4geyB9
OwogCiAgICAgcmV0dXJuIHZpZXctPmNvbnRlbnRzVG9Sb290VmlldyhyZW5kZXJlci0+YWJzb2x1
dGVCb3VuZGluZ0JveFJlY3QoKSk7CiB9CiAKLUludFJlY3QgV2ViUGFnZTo6YWJzb2x1dGVJbnRl
cmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK0ludFJlY3Qg
V2ViUGFnZTo6YWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kcyhjb25zdCBOb2RlJiBub2RlKQogewot
ICAgIGF1dG8qIGZyYW1lID0gZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCk7CisgICAgYXV0byBm
cmFtZSA9IG1ha2VSZWZQdHIobm9kZS5kb2N1bWVudCgpLmZyYW1lKCkpOwogICAgIGlmICghZnJh
bWUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvKiB2aWV3ID0gZnJhbWUtPnZpZXco
KTsKKyAgICBhdXRvIHZpZXcgPSBtYWtlUmVmUHRyKGZyYW1lLT52aWV3KCkpOwogICAgIGlmICgh
dmlldykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVu
dC5yZW5kZXJlcigpOworICAgIGF1dG8qIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOwogICAg
IGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTE3MzAsMTcgKzE3MzAs
MTcgQEAgSW50UmVjdCBXZWJQYWdlOjphYnNvbHV0ZUludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVu
dChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KGJv
dW5kaW5nQm94KTsKIH0KIAotSW50UmVjdCBXZWJQYWdlOjpyb290Vmlld0ludGVyYWN0aW9uQm91
bmRzRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQorSW50UmVjdCBXZWJQYWdlOjpy
b290Vmlld0ludGVyYWN0aW9uQm91bmRzKGNvbnN0IE5vZGUmIG5vZGUpCiB7Ci0gICAgYXV0byog
ZnJhbWUgPSBlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBhdXRvIGZyYW1lID0gbWFr
ZVJlZlB0cihub2RlLmRvY3VtZW50KCkuZnJhbWUoKSk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIHZpZXcgPSBmcmFtZS0+dmlldygpOworICAgIGF1
dG8gdmlldyA9IG1ha2VSZWZQdHIoZnJhbWUtPnZpZXcoKSk7CiAgICAgaWYgKCF2aWV3KQogICAg
ICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHZpZXctPmNvbnRlbnRzVG9Sb290Vmlldyhh
YnNvbHV0ZUludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudChlbGVtZW50KSk7CisgICAgcmV0dXJu
IHZpZXctPmNvbnRlbnRzVG9Sb290VmlldyhhYnNvbHV0ZUludGVyYWN0aW9uQm91bmRzKG5vZGUp
KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpjbGVhclNlbGVjdGlvbigpCkBAIC0xNzU3LDcgKzE3NTcs
NyBAQCB2b2lkIFdlYlBhZ2U6OmRpc3BhdGNoU3ludGhldGljTW91c2VFdmVudHNGb3JTZWxlY3Rp
b25HZXN0dXJlKFNlbGVjdGlvblRvdWNoIHRvdQogCiAgICAgSW50UmVjdCBmb2N1c2VkRWxlbWVu
dFJlY3Q7CiAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQpCi0gICAgICAgIGZvY3VzZWRFbGVtZW50
UmVjdCA9IHJvb3RWaWV3SW50ZXJhY3Rpb25Cb3VuZHNGb3JFbGVtZW50KCptX2ZvY3VzZWRFbGVt
ZW50KTsKKyAgICAgICAgZm9jdXNlZEVsZW1lbnRSZWN0ID0gcm9vdFZpZXdJbnRlcmFjdGlvbkJv
dW5kcygqbV9mb2N1c2VkRWxlbWVudCk7CiAKICAgICBpZiAoZm9jdXNlZEVsZW1lbnRSZWN0Lmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzI0Miw3ICszMjQyLDcgQEAgc3RkOjpvcHRp
b25hbDxGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uPiBXZWJQYWdlOjpmb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uKCkKICAgICAgICAgaW5mb3JtYXRpb24uZWxlbWVudENvbnRleHQgPSBXVEZNb3Zl
KCplbGVtZW50Q29udGV4dCk7CiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBmb2N1c2VkRWxl
bWVudC0+cmVuZGVyZXIoKSkgewotICAgICAgICBpbmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3Qg
PSByb290Vmlld0ludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudCgqZm9jdXNlZEVsZW1lbnQpOwor
ICAgICAgICBpbmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3QgPSByb290Vmlld0ludGVyYWN0aW9u
Qm91bmRzKCpmb2N1c2VkRWxlbWVudCk7CiAgICAgICAgIGluZm9ybWF0aW9uLm5vZGVGb250U2l6
ZSA9IHJlbmRlcmVyLT5zdHlsZSgpLmZvbnREZXNjcmlwdGlvbigpLmNvbXB1dGVkU2l6ZSgpOwog
CiAgICAgICAgIGJvb2wgaW5GaXhlZCA9IGZhbHNlOwpAQCAtMzI2OSwxMSArMzI2OSwxMSBAQCBz
dGQ6Om9wdGlvbmFsPEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24+IFdlYlBhZ2U6OmZvY3VzZWRF
bGVtZW50SW5mb3JtYXRpb24oKQogICAgIGluZm9ybWF0aW9uLmFsbG93c1VzZXJTY2FsaW5nID0g
bV92aWV3cG9ydENvbmZpZ3VyYXRpb24uYWxsb3dzVXNlclNjYWxpbmcoKTsKICAgICBpbmZvcm1h
dGlvbi5hbGxvd3NVc2VyU2NhbGluZ0lnbm9yaW5nQWx3YXlzU2NhbGFibGUgPSBtX3ZpZXdwb3J0
Q29uZmlndXJhdGlvbi5hbGxvd3NVc2VyU2NhbGluZ0lnbm9yaW5nQWx3YXlzU2NhbGFibGUoKTsK
ICAgICBpZiAoYXV0byogbmV4dEVsZW1lbnQgPSBuZXh0QXNzaXN0YWJsZUVsZW1lbnQoZm9jdXNl
ZEVsZW1lbnQuZ2V0KCksICptX3BhZ2UsIHRydWUpKSB7Ci0gICAgICAgIGluZm9ybWF0aW9uLm5l
eHROb2RlUmVjdCA9IHJvb3RWaWV3Qm91bmRzRm9yRWxlbWVudCgqbmV4dEVsZW1lbnQpOworICAg
ICAgICBpbmZvcm1hdGlvbi5uZXh0Tm9kZVJlY3QgPSByb290Vmlld0JvdW5kcygqbmV4dEVsZW1l
bnQpOwogICAgICAgICBpbmZvcm1hdGlvbi5oYXNOZXh0Tm9kZSA9IHRydWU7CiAgICAgfQogICAg
IGlmIChhdXRvKiBwcmV2aW91c0VsZW1lbnQgPSBuZXh0QXNzaXN0YWJsZUVsZW1lbnQoZm9jdXNl
ZEVsZW1lbnQuZ2V0KCksICptX3BhZ2UsIGZhbHNlKSkgewotICAgICAgICBpbmZvcm1hdGlvbi5w
cmV2aW91c05vZGVSZWN0ID0gcm9vdFZpZXdCb3VuZHNGb3JFbGVtZW50KCpwcmV2aW91c0VsZW1l
bnQpOworICAgICAgICBpbmZvcm1hdGlvbi5wcmV2aW91c05vZGVSZWN0ID0gcm9vdFZpZXdCb3Vu
ZHMoKnByZXZpb3VzRWxlbWVudCk7CiAgICAgICAgIGluZm9ybWF0aW9uLmhhc1ByZXZpb3VzTm9k
ZSA9IHRydWU7CiAgICAgfQogICAgIGluZm9ybWF0aW9uLmZvY3VzZWRFbGVtZW50SWRlbnRpZmll
ciA9IG1fY3VycmVudEZvY3VzZWRFbGVtZW50SWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOWM0YTU4MTkz
ZDE0NzliOWZlNmZlNDE0NDgzMTdjZGU1NGY2OWUzLi5kMzM1NzExM2RhZjc3ODEyZDk4Yjk4ZDM4
ZDRmZGYzYzhiOGFjN2VmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDYtMDggIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gU2FmYXJp
IHRhYiBwaWxsIHNob3VsZCB0b2dnbGUgdmlzaWJpbGl0eSB3aGVuIHRhcHBpbmcgb24gYXJ0aWNs
ZSB0ZXh0IG9uIGFkdmVudHVyZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjc3NQorICAgICAgICByZGFyOi8vNzg4MjY4MjAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2lv
cy9ub24tbWVhbmluZ2Z1bC1jbGljay13aGVuLXRhcHBpbmctZG9jdW1lbnQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvbm9uLW1lYW5pbmdmdWwtY2xpY2st
d2hlbi10YXBwaW5nLWRvY3VtZW50Lmh0bWw6IEFkZGVkLgorCiAyMDIxLTA2LTA3ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVwc3RyZWFtIFdlYktp
dCBzdXBwb3J0IGZvciBMaXZlIFRleHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2lvcy9ub24tbWVhbmluZ2Z1bC1jbGljay13aGVuLXRhcHBpbmctZG9jdW1lbnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25vbi1tZWFuaW5nZnVsLWNsaWNr
LXdoZW4tdGFwcGluZy1kb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgxYzEyYjYw
ZDAxZjQ3N2EyMjZmMjY4ODIzNWVkNmZlNjg5NWFlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9ub24tbWVhbmluZ2Z1bC1jbGljay13aGVuLXRhcHBpbmct
ZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBleGVyY2lz
ZXMgdGhlICdtZWFuaW5nZnVsIGNsaWNrJyBoZXVyaXN0aWMgd2hlbiBkaXNwYXRjaGluZyBjbGlj
a3Mgb24gdGhlIGRvY3VtZW50IG5vZGUsIGFuZCByZXF1aXJlcyBXZWJLaXRUZXN0UnVubmVyLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgZGlkRGlzcGF0Y2hDbGljayBiZWNh
bWUgdHJ1ZQorUEFTUyBkaWREaXNwYXRjaE5vbk1lYW5pbmdmdWxDbGlja0NhbGxiYWNrIGJlY2Ft
ZSB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25vbi1tZWFuaW5nZnVs
LWNsaWNrLXdoZW4tdGFwcGluZy1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvaW9zL25vbi1tZWFuaW5nZnVsLWNsaWNrLXdoZW4tdGFwcGluZy1kb2N1bWVudC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJkOWFlNzAyNjA2NTRhYTg3NTMzYjBhZTg5ZjUyZDA1YTk1ZmE4OTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvbm9uLW1lYW5pbmdmdWwt
Y2xpY2std2hlbi10YXBwaW5nLWRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NU
WVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10
cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4K
KzxzdHlsZT4KK2JvZHksIGh0bWwgeworICAgIGZvbnQtc2l6ZTogMThweDsKKyAgICBmb250LWZh
bWlseTogc3lzdGVtLXVpOworICAgIHdpZHRoOiAxMDAlOworICAgIGhlaWdodDogMTAwJTsKKyAg
ICBtYXJnaW46IDA7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IGV4ZXJjaXNlcyB0aGUgJ21lYW5pbmdmdWwgY2xpY2snIGhldXJpc3RpYyB3
aGVuIGRpc3BhdGNoaW5nIGNsaWNrcyBvbiB0aGUgZG9jdW1lbnQgbm9kZSwgYW5kIHJlcXVpcmVz
IFdlYktpdFRlc3RSdW5uZXIuIik7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZGlkRGlzcGF0Y2hOb25NZWFuaW5nZnVsQ2xpY2tDYWxsYmFjayA9
IGZhbHNlOworICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZE5vdEhhbmRsZVRhcEFzTWVhbmluZ2Z1
bENsaWNrQ2FsbGJhY2soKCkgPT4geworICAgICAgICBkaWREaXNwYXRjaE5vbk1lYW5pbmdmdWxD
bGlja0NhbGxiYWNrID0gdHJ1ZTsKKyAgICB9KTsKKworICAgIGRpZERpc3BhdGNoQ2xpY2sgPSBm
YWxzZTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKKyAg
ICAgICAgZGlkRGlzcGF0Y2hDbGljayA9IHRydWU7CisgICAgfSk7CisKKyAgICBhd2FpdCBVSUhl
bHBlci5hY3RpdmF0ZUF0KDEwMCwgMTAwKTsKKyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yRG91
YmxlVGFwRGVsYXkoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNob3VsZEJl
Y29tZUVxdWFsKCJkaWREaXNwYXRjaENsaWNrIiwgInRydWUiLCByZXNvbHZlKSk7CisgICAgYXdh
aXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaG91bGRCZWNvbWVFcXVhbCgiZGlkRGlzcGF0Y2hO
b25NZWFuaW5nZnVsQ2xpY2tDYWxsYmFjayIsICJ0cnVlIiwgcmVzb2x2ZSkpOworCisgICAgdGVz
dFJ1bm5lci5jbGVhclRlc3RSdW5uZXJDYWxsYmFja3MoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30pOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430885</attachid>
            <date>2021-06-08 13:45:39 -0700</date>
            <delta_ts>2021-06-08 13:50:24 -0700</delta_ts>
            <desc>Small adjustment</desc>
            <filename>bug-226775-20210608134538.patch</filename>
            <type>text/plain</type>
            <size>14160</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0ZGE3YzU1NjFmNzRkNDdl
YzM2NmVkY2JmMzc2MDIzOTc2OTA0ZWUuLmMwMDZiYTA1MDFlNmEwNTlhMDRjMTJlNjY4MWQ0MDAx
NzNiZWExZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjEtMDYtMDggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gU2FmYXJpIHRh
YiBwaWxsIHNob3VsZCB0b2dnbGUgdmlzaWJpbGl0eSB3aGVuIHRhcHBpbmcgb24gYXJ0aWNsZSB0
ZXh0IG9uIGFkdmVudHVyZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjc3NQorICAgICAgICByZGFyOi8vNzg4MjY4MjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGp1c3QgdGhlIG1lYW5pbmdm
dWwgY2xpY2sgaGV1cmlzdGljIHRvIGFjY291bnQgZm9yIGNsaWNrIGV2ZW50IGxpc3RlbmVycyBh
ZGRlZCB0byB0aGUgZG9jdW1lbnQgbm9kZS4gU2VlIGJlbG93CisgICAgICAgIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvaW9zL25vbi1tZWFuaW5nZnVsLWNs
aWNrLXdoZW4tdGFwcGluZy1kb2N1bWVudC5odG1sCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UGxhdGZvcm1FZGl0b3JTdGF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OmlzUHJvYmFibHlNZWFuaW5nZnVsQ2xpY2spOgor
CisgICAgICAgIFJlbW92ZSBhIGNoZWNrIGZvciB3aGV0aGVyIG9yIG5vdCB0aGUgY2xpY2tlZCBu
b2RlIGlzIGFuIEVsZW1lbnQ7IHRoaXMgZXhpc3RlZCBiZWNhdXNlIHRoZSBjYWxsIHRvCisgICAg
ICAgIGByb290Vmlld0JvdW5kc0ZvckVsZW1lbnRgIGJlbG93IHRha2VzIGFuIEVsZW1lbnQgcmF0
aGVyIHRoYW4ganVzdCBhIE5vZGU7IGhvd2V2ZXIsIHRoaXMgbWV0aG9kIGRvZXNuJ3QgZG8KKyAg
ICAgICAgYW55dGhpbmcgdGhhdCByZXF1aXJlcyBhbiBFbGVtZW50IGluc3RlYWQgb2YgYSBOb2Rl
LCBzbyB3ZSBjYW4ganVzdCByZW1vdmUgdGhlIGNoZWNrIGFuZCByZWZhY3RvciB0aGVzZSBzdGF0
aWMKKyAgICAgICAgbWV0aG9kcyB0byBhY2NlcHQgTm9kZXMuIFRoaXMgYWxsb3dzIHVzIHRvIGJh
aWwgZWFybHkgaWYgdGhlIGNsaWNrZWQgbm9kZSBpcyAqZWl0aGVyKiB0aGUgYm9keSBvciB0aGUg
ZG9jdW1lbnQKKyAgICAgICAgbm9kZSwgaW5zdGVhZCBvZiBqdXN0IHRoZSBib2R5LgorCisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6Omluc2VydERyb3BwZWRJbWFnZVBsYWNlaG9sZGVycyk6Cisg
ICAgICAgIChXZWJLaXQ6OmVsZW1lbnRCb3VuZHNJbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cm9vdFZpZXdCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphYnNv
bHV0ZUludGVyYWN0aW9uQm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cm9vdFZp
ZXdJbnRlcmFjdGlvbkJvdW5kcyk6CisKKyAgICAgICAgRHJpdmUtYnkgcmVmYWN0b3Jpbmc6IGRy
b3AgdGhlIGAtRm9yRWxlbWVudGAgc3VmZml4ZXMgb24gdGhlc2UgaGVscGVyIG1ldGhvZHMsIGFu
ZCBhZGRpdGlvbmFsbHkgbWFrZSB0aGVtIGFjY2VwdAorICAgICAgICBhIE5vZGUgaW5zdGVhZCBv
ZiByZXF1aXJpbmcgYW4gRWxlbWVudC4gVGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZSBgaXM8
RWxlbWVudD4oKWAgY2hlY2sgZnJvbSB0aGUgbWVhbmluZ2Z1bAorICAgICAgICBjbGljayBoZXVy
aXN0aWMgYWJvdmUuCisKKyAgICAgICAgQWxzbyBkZXBsb3kgUmVmUHRyIGluIGEgZmV3IG1vcmUg
cGxhY2VzLgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpc3BhdGNoU3ludGhldGljTW91
c2VFdmVudHNGb3JTZWxlY3Rpb25HZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Zm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJv
b3RWaWV3Qm91bmRzRm9yRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmFic29sdXRlSW50ZXJhY3Rpb25Cb3VuZHNGb3JFbGVtZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6cm9vdFZpZXdJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQp
OiBEZWxldGVkLgorCiAyMDIxLTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFVwc3RyZWFtIFdlYktpdCBzdXBwb3J0IGZvciBMaXZlIFRleHQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwZTM0MWI2
MGNjODI5NTE0NWRiZmE1YjUzZTQwODg5YjVkM2Q5OGZjLi40ZmU4YjU4ZGEzNzU1YzViZWNmYTEw
ZjkyOWY1NWU0Nzc0NDRiZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xMzU2LDEwICsxMzU2LDEwIEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgLy8gVGhpcyBleGNsdWRlcyBsYXlvdXQgb3ZlcmZsb3csIGluY2x1
ZGVzIGJvcmRlcnMuCi0gICAgc3RhdGljIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdCb3VuZHNG
b3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmKTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6
SW50UmVjdCByb290Vmlld0JvdW5kcyhjb25zdCBXZWJDb3JlOjpOb2RlJik7CiAgICAgLy8gVGhl
c2UgaW5jbHVkZSBsYXlvdXQgb3ZlcmZsb3cgZm9yIG92ZXJmbG93OnZpc2libGUgZWxlbWVudHMs
IGJ1dCBleGNsdWRlIGJvcmRlcnMuCi0gICAgc3RhdGljIFdlYkNvcmU6OkludFJlY3QgYWJzb2x1
dGVJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYpOwot
ICAgIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3SW50ZXJhY3Rpb25Cb3VuZHNGb3JF
bGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmKTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6SW50
UmVjdCBhYnNvbHV0ZUludGVyYWN0aW9uQm91bmRzKGNvbnN0IFdlYkNvcmU6Ok5vZGUmKTsKKyAg
ICBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld0ludGVyYWN0aW9uQm91bmRzKGNvbnN0
IFdlYkNvcmU6Ok5vZGUmKTsKIAogICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
IHBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qm
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KaW5kZXggYWFmODg3MjEzNzczMDAyNGY2YmFlM2MxZWZjMDY1ODIyMjgxYTVj
Yy4uZGFhMTVlYTkwZmQ0N2ZlZGM1OTBkODZlNzQyNDhkNTgyOWY5MmEwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTM0
NCw3ICszNDQsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFBsYXRmb3JtRWRpdG9yU3RhdGUoRnJhbWUm
IGZyYW1lLCBFZGl0b3JTdGF0ZSYgcmVzdWx0KSBjb25zdAogICAgICAgICB9CiAKICAgICAgICAg
aWYgKGF1dG8gZWRpdGFibGVSb290T3JGb3JtQ29udHJvbCA9IG1ha2VSZWZQdHIoZW5jbG9zaW5n
VGV4dEZvcm1Db250cm9sKHNlbGVjdGlvbi5zdGFydCgpKSA/OiBzZWxlY3Rpb24ucm9vdEVkaXRh
YmxlRWxlbWVudCgpKSkgewotICAgICAgICAgICAgcG9zdExheW91dERhdGEuc2VsZWN0aW9uQ2xp
cFJlY3QgPSByb290Vmlld0ludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudCgqZWRpdGFibGVSb290
T3JGb3JtQ29udHJvbCk7CisgICAgICAgICAgICBwb3N0TGF5b3V0RGF0YS5zZWxlY3Rpb25DbGlw
UmVjdCA9IHJvb3RWaWV3SW50ZXJhY3Rpb25Cb3VuZHMoKmVkaXRhYmxlUm9vdE9yRm9ybUNvbnRy
b2wpOwogICAgICAgICAgICAgcG9zdExheW91dERhdGEuZWRpdGFibGVSb290SXNUcmFuc3BhcmVu
dE9yRnVsbHlDbGlwcGVkID0gcmVzdWx0LmlzQ29udGVudEVkaXRhYmxlICYmIGlzVHJhbnNwYXJl
bnRPckZ1bGx5Q2xpcHBlZCgqZWRpdGFibGVSb290T3JGb3JtQ29udHJvbCk7CiAgICAgICAgIH0K
ICAgICAgICAgY29tcHV0ZUVkaXRhYmxlUm9vdEhhc0NvbnRlbnRBbmRQbGFpblRleHQoc2VsZWN0
aW9uLCBwb3N0TGF5b3V0RGF0YSk7CkBAIC04MzksMTQgKzgzOSwxNCBAQCB2b2lkIFdlYlBhZ2U6
OmRpZEZpbmlzaENvbnRlbnRDaGFuZ2VPYnNlcnZpbmcoV0tDb250ZW50Q2hhbmdlIG9ic2VydmVk
Q29udGVudENoYQogc3RhdGljIGJvb2wgaXNQcm9iYWJseU1lYW5pbmdmdWxDbGljayhOb2RlJiBj
bGlja05vZGUpCiB7CiAgICAgYXV0byBmcmFtZSA9IG1ha2VSZWZQdHIoY2xpY2tOb2RlLmRvY3Vt
ZW50KCkuZnJhbWUoKSk7Ci0gICAgaWYgKCFpczxFbGVtZW50PihjbGlja05vZGUpIHx8ICFjbGlj
a05vZGUuaXNDb25uZWN0ZWQoKSB8fCAhZnJhbWUpCisgICAgaWYgKCFmcmFtZSB8fCAhY2xpY2tO
b2RlLmlzQ29ubmVjdGVkKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKGlzPEhU
TUxCb2R5RWxlbWVudD4oY2xpY2tOb2RlKSkKKyAgICBpZiAoaXM8SFRNTEJvZHlFbGVtZW50Pihj
bGlja05vZGUpIHx8IGNsaWNrTm9kZS5pc0RvY3VtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBpZiAoYXV0byB2aWV3ID0gbWFrZVJlZlB0cihmcmFtZS0+bWFpbkZyYW1l
KCkudmlldygpKSkgewotICAgICAgICBhdXRvIGVsZW1lbnRCb3VuZHMgPSBXZWJQYWdlOjpyb290
Vmlld0JvdW5kc0ZvckVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oY2xpY2tOb2RlKSk7CisgICAg
ICAgIGF1dG8gZWxlbWVudEJvdW5kcyA9IFdlYlBhZ2U6OnJvb3RWaWV3SW50ZXJhY3Rpb25Cb3Vu
ZHMoY2xpY2tOb2RlKTsKICAgICAgICAgYXV0byB1bm9ic2N1cmVkUmVjdCA9IHZpZXctPnVub2Jz
Y3VyZWRDb250ZW50UmVjdCgpOwogICAgICAgICBpZiAoZWxlbWVudEJvdW5kcy53aWR0aCgpID49
IHVub2JzY3VyZWRSZWN0LndpZHRoKCkgLyAyICYmIGVsZW1lbnRCb3VuZHMuaGVpZ2h0KCkgPj0g
dW5vYnNjdXJlZFJlY3QuaGVpZ2h0KCkgLyAyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMTAwNSw3ICsxMDA1LDcgQEAgdm9pZCBXZWJQYWdlOjppbnNlcnREcm9wcGVkSW1hZ2VQbGFj
ZWhvbGRlcnMoY29uc3QgVmVjdG9yPEludFNpemU+JiBpbWFnZVNpemVzLAogewogICAgIG1fcGFn
ZS0+ZHJhZ0NvbnRyb2xsZXIoKS5pbnNlcnREcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnNBdENhcmV0
KGltYWdlU2l6ZXMpOwogICAgIGF1dG8gcGxhY2Vob2xkZXJSZWN0cyA9IG1fcGFnZS0+ZHJhZ0Nv
bnRyb2xsZXIoKS5kcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMoKS5tYXAoWyZdIChhdXRvJiBlbGVt
ZW50KSB7Ci0gICAgICAgIHJldHVybiByb290Vmlld0JvdW5kc0ZvckVsZW1lbnQoZWxlbWVudCk7
CisgICAgICAgIHJldHVybiByb290Vmlld0JvdW5kcyhlbGVtZW50KTsKICAgICB9KTsKIAogICAg
IGF1dG8gaW1hZ2VQbGFjZWhvbGRlclJhbmdlID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRy
b3BwZWRJbWFnZVBsYWNlaG9sZGVyUmFuZ2UoKTsKQEAgLTEzNjAsMTAgKzEzNjAsMTAgQEAgc3Rh
dGljIEludFJlY3QgZWxlbWVudEJvdW5kc0luRnJhbWUoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25z
dCBFbGVtZW50JiBmb2N1c2VkRWwKICAgICBmcmFtZS5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICAKICAgICBpZiAoZm9jdXNlZEVsZW1lbnQu
aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRleHRhcmVhVGFnKSB8fCBmb2N1c2VkRWxlbWVudC5oYXNU
YWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpIHx8IGZvY3VzZWRFbGVtZW50Lmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpzZWxlY3RUYWcpKQotICAgICAgICByZXR1cm4gV2ViUGFnZTo6YWJzb2x1dGVJ
bnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoZm9jdXNlZEVsZW1lbnQpOworICAgICAgICByZXR1
cm4gV2ViUGFnZTo6YWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kcyhmb2N1c2VkRWxlbWVudCk7CiAK
ICAgICBpZiAoYXV0byogcm9vdEVkaXRhYmxlRWxlbWVudCA9IGZvY3VzZWRFbGVtZW50LnJvb3RF
ZGl0YWJsZUVsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIFdlYlBhZ2U6OmFic29sdXRlSW50ZXJh
Y3Rpb25Cb3VuZHNGb3JFbGVtZW50KCpyb290RWRpdGFibGVFbGVtZW50KTsKKyAgICAgICAgcmV0
dXJuIFdlYlBhZ2U6OmFic29sdXRlSW50ZXJhY3Rpb25Cb3VuZHMoKnJvb3RFZGl0YWJsZUVsZW1l
bnQpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTE2NzgsMzQgKzE2NzgsMzQgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHJhbmdlQXRXb3JkQm91bmRhcnlGb3JQb3NpdGlv
bihGcmFtZSogZnJhbWUsIGMKICAgICByZXR1cm4gbWFrZVNpbXBsZVJhbmdlKGJhc2UsIGV4dGVu
dCk7CiB9CiAKLUludFJlY3QgV2ViUGFnZTo6cm9vdFZpZXdCb3VuZHNGb3JFbGVtZW50KGNvbnN0
IEVsZW1lbnQmIGVsZW1lbnQpCitJbnRSZWN0IFdlYlBhZ2U6OnJvb3RWaWV3Qm91bmRzKGNvbnN0
IE5vZGUmIG5vZGUpCiB7Ci0gICAgYXV0byogZnJhbWUgPSBlbGVtZW50LmRvY3VtZW50KCkuZnJh
bWUoKTsKKyAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihub2RlLmRvY3VtZW50KCkuZnJhbWUo
KSk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIHZp
ZXcgPSBmcmFtZS0+dmlldygpOworICAgIGF1dG8gdmlldyA9IG1ha2VSZWZQdHIoZnJhbWUtPnZp
ZXcoKSk7CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byog
cmVuZGVyZXIgPSBlbGVtZW50LnJlbmRlcmVyKCk7CisgICAgYXV0byogcmVuZGVyZXIgPSBub2Rl
LnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIHsgfTsKIAog
ICAgIHJldHVybiB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocmVuZGVyZXItPmFic29sdXRlQm91
bmRpbmdCb3hSZWN0KCkpOwogfQogCi1JbnRSZWN0IFdlYlBhZ2U6OmFic29sdXRlSW50ZXJhY3Rp
b25Cb3VuZHNGb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCitJbnRSZWN0IFdlYlBh
Z2U6OmFic29sdXRlSW50ZXJhY3Rpb25Cb3VuZHMoY29uc3QgTm9kZSYgbm9kZSkKIHsKLSAgICBh
dXRvKiBmcmFtZSA9IGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpOworICAgIGF1dG8gZnJhbWUg
PSBtYWtlUmVmUHRyKG5vZGUuZG9jdW1lbnQoKS5mcmFtZSgpKTsKICAgICBpZiAoIWZyYW1lKQog
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byogdmlldyA9IGZyYW1lLT52aWV3KCk7Cisg
ICAgYXV0byB2aWV3ID0gbWFrZVJlZlB0cihmcmFtZS0+dmlldygpKTsKICAgICBpZiAoIXZpZXcp
CiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQucmVu
ZGVyZXIoKTsKKyAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKICAgICBpZiAo
IXJlbmRlcmVyKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC0xNzMwLDE3ICsxNzMwLDE3IEBA
IEludFJlY3QgV2ViUGFnZTo6YWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoY29u
c3QgRWxlbWVudCYgZWxlbWVudCkKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChib3VuZGlu
Z0JveCk7CiB9CiAKLUludFJlY3QgV2ViUGFnZTo6cm9vdFZpZXdJbnRlcmFjdGlvbkJvdW5kc0Zv
ckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK0ludFJlY3QgV2ViUGFnZTo6cm9vdFZp
ZXdJbnRlcmFjdGlvbkJvdW5kcyhjb25zdCBOb2RlJiBub2RlKQogewotICAgIGF1dG8qIGZyYW1l
ID0gZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCk7CisgICAgYXV0byBmcmFtZSA9IG1ha2VSZWZQ
dHIobm9kZS5kb2N1bWVudCgpLmZyYW1lKCkpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKLSAgICBhdXRvKiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBhdXRvIHZp
ZXcgPSBtYWtlUmVmUHRyKGZyYW1lLT52aWV3KCkpOwogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuIHsgfTsKIAotICAgIHJldHVybiB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcoYWJzb2x1
dGVJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoZWxlbWVudCkpOworICAgIHJldHVybiB2aWV3
LT5jb250ZW50c1RvUm9vdFZpZXcoYWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kcyhub2RlKSk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6Y2xlYXJTZWxlY3Rpb24oKQpAQCAtMTc1Nyw3ICsxNzU3LDcgQEAg
dm9pZCBXZWJQYWdlOjpkaXNwYXRjaFN5bnRoZXRpY01vdXNlRXZlbnRzRm9yU2VsZWN0aW9uR2Vz
dHVyZShTZWxlY3Rpb25Ub3VjaCB0b3UKIAogICAgIEludFJlY3QgZm9jdXNlZEVsZW1lbnRSZWN0
OwogICAgIGlmIChtX2ZvY3VzZWRFbGVtZW50KQotICAgICAgICBmb2N1c2VkRWxlbWVudFJlY3Qg
PSByb290Vmlld0ludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudCgqbV9mb2N1c2VkRWxlbWVudCk7
CisgICAgICAgIGZvY3VzZWRFbGVtZW50UmVjdCA9IHJvb3RWaWV3SW50ZXJhY3Rpb25Cb3VuZHMo
Km1fZm9jdXNlZEVsZW1lbnQpOwogCiAgICAgaWYgKGZvY3VzZWRFbGVtZW50UmVjdC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMyNDIsNyArMzI0Miw3IEBAIHN0ZDo6b3B0aW9uYWw8
Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbj4gV2ViUGFnZTo6Zm9jdXNlZEVsZW1lbnRJbmZvcm1h
dGlvbigpCiAgICAgICAgIGluZm9ybWF0aW9uLmVsZW1lbnRDb250ZXh0ID0gV1RGTW92ZSgqZWxl
bWVudENvbnRleHQpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZm9jdXNlZEVsZW1lbnQt
PnJlbmRlcmVyKCkpIHsKLSAgICAgICAgaW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0ID0gcm9v
dFZpZXdJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoKmZvY3VzZWRFbGVtZW50KTsKKyAgICAg
ICAgaW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0ID0gcm9vdFZpZXdJbnRlcmFjdGlvbkJvdW5k
cygqZm9jdXNlZEVsZW1lbnQpOwogICAgICAgICBpbmZvcm1hdGlvbi5ub2RlRm9udFNpemUgPSBy
ZW5kZXJlci0+c3R5bGUoKS5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFNpemUoKTsKIAogICAg
ICAgICBib29sIGluRml4ZWQgPSBmYWxzZTsKQEAgLTMyNjksMTEgKzMyNjksMTEgQEAgc3RkOjpv
cHRpb25hbDxGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uPiBXZWJQYWdlOjpmb2N1c2VkRWxlbWVu
dEluZm9ybWF0aW9uKCkKICAgICBpbmZvcm1hdGlvbi5hbGxvd3NVc2VyU2NhbGluZyA9IG1fdmll
d3BvcnRDb25maWd1cmF0aW9uLmFsbG93c1VzZXJTY2FsaW5nKCk7CiAgICAgaW5mb3JtYXRpb24u
YWxsb3dzVXNlclNjYWxpbmdJZ25vcmluZ0Fsd2F5c1NjYWxhYmxlID0gbV92aWV3cG9ydENvbmZp
Z3VyYXRpb24uYWxsb3dzVXNlclNjYWxpbmdJZ25vcmluZ0Fsd2F5c1NjYWxhYmxlKCk7CiAgICAg
aWYgKGF1dG8qIG5leHRFbGVtZW50ID0gbmV4dEFzc2lzdGFibGVFbGVtZW50KGZvY3VzZWRFbGVt
ZW50LmdldCgpLCAqbV9wYWdlLCB0cnVlKSkgewotICAgICAgICBpbmZvcm1hdGlvbi5uZXh0Tm9k
ZVJlY3QgPSByb290Vmlld0JvdW5kc0ZvckVsZW1lbnQoKm5leHRFbGVtZW50KTsKKyAgICAgICAg
aW5mb3JtYXRpb24ubmV4dE5vZGVSZWN0ID0gcm9vdFZpZXdCb3VuZHMoKm5leHRFbGVtZW50KTsK
ICAgICAgICAgaW5mb3JtYXRpb24uaGFzTmV4dE5vZGUgPSB0cnVlOwogICAgIH0KICAgICBpZiAo
YXV0byogcHJldmlvdXNFbGVtZW50ID0gbmV4dEFzc2lzdGFibGVFbGVtZW50KGZvY3VzZWRFbGVt
ZW50LmdldCgpLCAqbV9wYWdlLCBmYWxzZSkpIHsKLSAgICAgICAgaW5mb3JtYXRpb24ucHJldmlv
dXNOb2RlUmVjdCA9IHJvb3RWaWV3Qm91bmRzRm9yRWxlbWVudCgqcHJldmlvdXNFbGVtZW50KTsK
KyAgICAgICAgaW5mb3JtYXRpb24ucHJldmlvdXNOb2RlUmVjdCA9IHJvb3RWaWV3Qm91bmRzKCpw
cmV2aW91c0VsZW1lbnQpOwogICAgICAgICBpbmZvcm1hdGlvbi5oYXNQcmV2aW91c05vZGUgPSB0
cnVlOwogICAgIH0KICAgICBpbmZvcm1hdGlvbi5mb2N1c2VkRWxlbWVudElkZW50aWZpZXIgPSBt
X2N1cnJlbnRGb2N1c2VkRWxlbWVudElkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzljNGE1ODE5M2QxNDc5
YjlmZTZmZTQxNDQ4MzE3Y2RlNTRmNjllMy4uZDMzNTcxMTNkYWY3NzgxMmQ5OGI5OGQzOGQ0ZmRm
M2M4YjhhYzdlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA2LTA4ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFNhZmFyaSB0YWIg
cGlsbCBzaG91bGQgdG9nZ2xlIHZpc2liaWxpdHkgd2hlbiB0YXBwaW5nIG9uIGFydGljbGUgdGV4
dCBvbiBhZHZlbnR1cmUuY29tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjY3NzUKKyAgICAgICAgcmRhcjovLzc4ODI2ODIwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvbm9u
LW1lYW5pbmdmdWwtY2xpY2std2hlbi10YXBwaW5nLWRvY3VtZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL25vbi1tZWFuaW5nZnVsLWNsaWNrLXdoZW4t
dGFwcGluZy1kb2N1bWVudC5odG1sOiBBZGRlZC4KKwogMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3Vw
cG9ydCBmb3IgTGl2ZSBUZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
b3Mvbm9uLW1lYW5pbmdmdWwtY2xpY2std2hlbi10YXBwaW5nLWRvY3VtZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9ub24tbWVhbmluZ2Z1bC1jbGljay13aGVu
LXRhcHBpbmctZG9jdW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MWMxMmI2MGQwMWY0
NzdhMjI2ZjI2ODgyMzVlZDZmZTY4OTVhZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9pb3Mvbm9uLW1lYW5pbmdmdWwtY2xpY2std2hlbi10YXBwaW5nLWRvY3Vt
ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgZXhlcmNpc2VzIHRo
ZSAnbWVhbmluZ2Z1bCBjbGljaycgaGV1cmlzdGljIHdoZW4gZGlzcGF0Y2hpbmcgY2xpY2tzIG9u
IHRoZSBkb2N1bWVudCBub2RlLCBhbmQgcmVxdWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGRpZERpc3BhdGNoQ2xpY2sgYmVjYW1lIHRy
dWUKK1BBU1MgZGlkRGlzcGF0Y2hOb25NZWFuaW5nZnVsQ2xpY2tDYWxsYmFjayBiZWNhbWUgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9ub24tbWVhbmluZ2Z1bC1jbGlj
ay13aGVuLXRhcHBpbmctZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lv
cy9ub24tbWVhbmluZ2Z1bC1jbGljay13aGVuLXRhcHBpbmctZG9jdW1lbnQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZDlhZTcwMjYwNjU0YWE4NzUzM2IwYWU4OWY1MmQwNWE5NWZhODk4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25vbi1tZWFuaW5nZnVsLWNsaWNr
LXdoZW4tdGFwcGluZy1kb2N1bWVudC5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBd
IC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cis8c3R5
bGU+Citib2R5LCBodG1sIHsKKyAgICBmb250LXNpemU6IDE4cHg7CisgICAgZm9udC1mYW1pbHk6
IHN5c3RlbS11aTsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgbWFy
Z2luOiAwOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Fk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBleGVyY2lzZXMgdGhlICdtZWFuaW5nZnVsIGNsaWNrJyBoZXVyaXN0aWMgd2hlbiBk
aXNwYXRjaGluZyBjbGlja3Mgb24gdGhlIGRvY3VtZW50IG5vZGUsIGFuZCByZXF1aXJlcyBXZWJL
aXRUZXN0UnVubmVyLiIpOworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIGRpZERpc3BhdGNoTm9uTWVhbmluZ2Z1bENsaWNrQ2FsbGJhY2sgPSBmYWxz
ZTsKKyAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWROb3RIYW5kbGVUYXBBc01lYW5pbmdmdWxDbGlj
a0NhbGxiYWNrKCgpID0+IHsKKyAgICAgICAgZGlkRGlzcGF0Y2hOb25NZWFuaW5nZnVsQ2xpY2tD
YWxsYmFjayA9IHRydWU7CisgICAgfSk7CisKKyAgICBkaWREaXNwYXRjaENsaWNrID0gZmFsc2U7
CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CisgICAgICAg
IGRpZERpc3BhdGNoQ2xpY2sgPSB0cnVlOworICAgIH0pOworCisgICAgYXdhaXQgVUlIZWxwZXIu
YWN0aXZhdGVBdCgxMDAsIDEwMCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckRvdWJsZVRh
cERlbGF5KCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaG91bGRCZWNvbWVF
cXVhbCgiZGlkRGlzcGF0Y2hDbGljayIsICJ0cnVlIiwgcmVzb2x2ZSkpOworICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoImRpZERpc3BhdGNoTm9uTWVh
bmluZ2Z1bENsaWNrQ2FsbGJhY2siLCAidHJ1ZSIsIHJlc29sdmUpKTsKKworICAgIHRlc3RSdW5u
ZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsK
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="452490"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430891</attachid>
            <date>2021-06-08 14:23:01 -0700</date>
            <delta_ts>2021-06-08 16:30:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226775-20210608142300.patch</filename>
            <type>text/plain</type>
            <size>14172</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0ZGE3YzU1NjFmNzRkNDdl
YzM2NmVkY2JmMzc2MDIzOTc2OTA0ZWUuLmQ3MWVhNWFmZTg4MzgxZDJmMjhkZTZmY2E0MTNiNjhl
ZDZiYTVmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjEtMDYtMDggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gU2FmYXJpIHRh
YiBwaWxsIHNob3VsZCB0b2dnbGUgdmlzaWJpbGl0eSB3aGVuIHRhcHBpbmcgb24gYXJ0aWNsZSB0
ZXh0IG9uIGFkdmVudHVyZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjc3NQorICAgICAgICByZGFyOi8vNzg4MjY4MjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBUaW0gSG9ydG9uIGFuZCBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgQWRqdXN0
IHRoZSBtZWFuaW5nZnVsIGNsaWNrIGhldXJpc3RpYyB0byBhY2NvdW50IGZvciBjbGljayBldmVu
dCBsaXN0ZW5lcnMgYWRkZWQgdG8gdGhlIGRvY3VtZW50IG5vZGUuIFNlZSBiZWxvdworICAgICAg
ICBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2lvcy9ub24t
bWVhbmluZ2Z1bC1jbGljay13aGVuLXRhcHBpbmctZG9jdW1lbnQuaHRtbAorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFBsYXRm
b3JtRWRpdG9yU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0Ojppc1Byb2JhYmx5TWVhbmlu
Z2Z1bENsaWNrKToKKworICAgICAgICBSZW1vdmUgYSBjaGVjayBmb3Igd2hldGhlciBvciBub3Qg
dGhlIGNsaWNrZWQgbm9kZSBpcyBhbiBFbGVtZW50OyB0aGlzIGV4aXN0ZWQgYmVjYXVzZSB0aGUg
Y2FsbCB0bworICAgICAgICBgcm9vdFZpZXdCb3VuZHNGb3JFbGVtZW50YCBiZWxvdyB0YWtlcyBh
biBFbGVtZW50IHJhdGhlciB0aGFuIGp1c3QgYSBOb2RlOyBob3dldmVyLCB0aGlzIG1ldGhvZCBk
b2Vzbid0IGRvCisgICAgICAgIGFueXRoaW5nIHRoYXQgcmVxdWlyZXMgYW4gRWxlbWVudCBpbnN0
ZWFkIG9mIGEgTm9kZSwgc28gd2UgY2FuIGp1c3QgcmVtb3ZlIHRoZSBjaGVjayBhbmQgcmVmYWN0
b3IgdGhlc2Ugc3RhdGljCisgICAgICAgIG1ldGhvZHMgdG8gYWNjZXB0IE5vZGVzLiBUaGlzIGFs
bG93cyB1cyB0byBiYWlsIGVhcmx5IGlmIHRoZSBjbGlja2VkIG5vZGUgaXMgKmVpdGhlciogdGhl
IGJvZHkgb3IgdGhlIGRvY3VtZW50CisgICAgICAgIG5vZGUsIGluc3RlYWQgb2YganVzdCB0aGUg
Ym9keS4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbnNlcnREcm9wcGVkSW1hZ2VQbGFj
ZWhvbGRlcnMpOgorICAgICAgICAoV2ViS2l0OjplbGVtZW50Qm91bmRzSW5GcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJvb3RWaWV3Qm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6YWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnJvb3RWaWV3SW50ZXJhY3Rpb25Cb3VuZHMpOgorCisgICAgICAgIERyaXZlLWJ5IHJl
ZmFjdG9yaW5nOiBkcm9wIHRoZSBgLUZvckVsZW1lbnRgIHN1ZmZpeGVzIG9uIHRoZXNlIGhlbHBl
ciBtZXRob2RzLCBhbmQgYWRkaXRpb25hbGx5IG1ha2UgdGhlbSBhY2NlcHQKKyAgICAgICAgYSBO
b2RlIGluc3RlYWQgb2YgcmVxdWlyaW5nIGFuIEVsZW1lbnQuIFRoaXMgYWxsb3dzIHVzIHRvIHJl
bW92ZSB0aGUgYGlzPEVsZW1lbnQ+KClgIGNoZWNrIGZyb20gdGhlIG1lYW5pbmdmdWwKKyAgICAg
ICAgY2xpY2sgaGV1cmlzdGljIGFib3ZlLgorCisgICAgICAgIEFsc28gZGVwbG95IFJlZlB0ciBp
biBhIGZldyBtb3JlIHBsYWNlcy4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaXNwYXRj
aFN5bnRoZXRpY01vdXNlRXZlbnRzRm9yU2VsZWN0aW9uR2VzdHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpyb290Vmlld0JvdW5kc0ZvckVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjphYnNvbHV0ZUludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJvb3RWaWV3SW50ZXJhY3Rpb25Cb3Vu
ZHNGb3JFbGVtZW50KTogRGVsZXRlZC4KKwogMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVcHN0cmVhbSBXZWJLaXQgc3VwcG9ydCBm
b3IgTGl2ZSBUZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggMGUzNDFiNjBjYzgyOTUxNDVkYmZhNWI1M2U0MDg4OWI1ZDNkOThmYy4uNGZlOGI1OGRh
Mzc1NWM1YmVjZmExMGY5MjlmNTVlNDc3NDQ0YmRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTM1NiwxMCArMTM1NiwxMCBAQCBwdWJsaWM6CiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIC8vIFRoaXMgZXhjbHVkZXMgbGF5b3V0IG92
ZXJmbG93LCBpbmNsdWRlcyBib3JkZXJzLgotICAgIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHJv
b3RWaWV3Qm91bmRzRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50Jik7CisgICAgc3Rh
dGljIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdCb3VuZHMoY29uc3QgV2ViQ29yZTo6Tm9kZSYp
OwogICAgIC8vIFRoZXNlIGluY2x1ZGUgbGF5b3V0IG92ZXJmbG93IGZvciBvdmVyZmxvdzp2aXNp
YmxlIGVsZW1lbnRzLCBidXQgZXhjbHVkZSBib3JkZXJzLgotICAgIHN0YXRpYyBXZWJDb3JlOjpJ
bnRSZWN0IGFic29sdXRlSW50ZXJhY3Rpb25Cb3VuZHNGb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6
OkVsZW1lbnQmKTsKLSAgICBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld0ludGVyYWN0
aW9uQm91bmRzRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50Jik7CisgICAgc3RhdGlj
IFdlYkNvcmU6OkludFJlY3QgYWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kcyhjb25zdCBXZWJDb3Jl
OjpOb2RlJik7CisgICAgc3RhdGljIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdJbnRlcmFjdGlv
bkJvdW5kcyhjb25zdCBXZWJDb3JlOjpOb2RlJik7CiAKICAgICBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiBwb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0Jik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGFhZjg4NzIxMzc3MzAwMjRmNmJhZTNjMWVm
YzA2NTgyMjI4MWE1Y2MuLjRkMjY2ZWUyNzUwOTVjOWZlYTkxYWNmYjQ5OTU0YmY1MmVmZDY2NTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRQbGF0Zm9ybUVkaXRv
clN0YXRlKEZyYW1lJiBmcmFtZSwgRWRpdG9yU3RhdGUmIHJlc3VsdCkgY29uc3QKICAgICAgICAg
fQogCiAgICAgICAgIGlmIChhdXRvIGVkaXRhYmxlUm9vdE9yRm9ybUNvbnRyb2wgPSBtYWtlUmVm
UHRyKGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChzZWxlY3Rpb24uc3RhcnQoKSkgPzogc2VsZWN0
aW9uLnJvb3RFZGl0YWJsZUVsZW1lbnQoKSkpIHsKLSAgICAgICAgICAgIHBvc3RMYXlvdXREYXRh
LnNlbGVjdGlvbkNsaXBSZWN0ID0gcm9vdFZpZXdJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQo
KmVkaXRhYmxlUm9vdE9yRm9ybUNvbnRyb2wpOworICAgICAgICAgICAgcG9zdExheW91dERhdGEu
c2VsZWN0aW9uQ2xpcFJlY3QgPSByb290Vmlld0ludGVyYWN0aW9uQm91bmRzKCplZGl0YWJsZVJv
b3RPckZvcm1Db250cm9sKTsKICAgICAgICAgICAgIHBvc3RMYXlvdXREYXRhLmVkaXRhYmxlUm9v
dElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCA9IHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSAm
JiBpc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQoKmVkaXRhYmxlUm9vdE9yRm9ybUNvbnRyb2wp
OwogICAgICAgICB9CiAgICAgICAgIGNvbXB1dGVFZGl0YWJsZVJvb3RIYXNDb250ZW50QW5kUGxh
aW5UZXh0KHNlbGVjdGlvbiwgcG9zdExheW91dERhdGEpOwpAQCAtODM5LDE0ICs4MzksMTQgQEAg
dm9pZCBXZWJQYWdlOjpkaWRGaW5pc2hDb250ZW50Q2hhbmdlT2JzZXJ2aW5nKFdLQ29udGVudENo
YW5nZSBvYnNlcnZlZENvbnRlbnRDaGEKIHN0YXRpYyBib29sIGlzUHJvYmFibHlNZWFuaW5nZnVs
Q2xpY2soTm9kZSYgY2xpY2tOb2RlKQogewogICAgIGF1dG8gZnJhbWUgPSBtYWtlUmVmUHRyKGNs
aWNrTm9kZS5kb2N1bWVudCgpLmZyYW1lKCkpOwotICAgIGlmICghaXM8RWxlbWVudD4oY2xpY2tO
b2RlKSB8fCAhY2xpY2tOb2RlLmlzQ29ubmVjdGVkKCkgfHwgIWZyYW1lKQorICAgIGlmICghZnJh
bWUgfHwgIWNsaWNrTm9kZS5pc0Nvbm5lY3RlZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIGlmIChpczxIVE1MQm9keUVsZW1lbnQ+KGNsaWNrTm9kZSkpCisgICAgaWYgKGlzPEhUTUxC
b2R5RWxlbWVudD4oY2xpY2tOb2RlKSB8fCBpczxEb2N1bWVudD4oY2xpY2tOb2RlKSB8fCBjbGlj
a05vZGUuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSA9PSAmY2xpY2tOb2RlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoYXV0byB2aWV3ID0gbWFrZVJlZlB0cihmcmFtZS0+
bWFpbkZyYW1lKCkudmlldygpKSkgewotICAgICAgICBhdXRvIGVsZW1lbnRCb3VuZHMgPSBXZWJQ
YWdlOjpyb290Vmlld0JvdW5kc0ZvckVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oY2xpY2tOb2Rl
KSk7CisgICAgICAgIGF1dG8gZWxlbWVudEJvdW5kcyA9IFdlYlBhZ2U6OnJvb3RWaWV3SW50ZXJh
Y3Rpb25Cb3VuZHMoY2xpY2tOb2RlKTsKICAgICAgICAgYXV0byB1bm9ic2N1cmVkUmVjdCA9IHZp
ZXctPnVub2JzY3VyZWRDb250ZW50UmVjdCgpOwogICAgICAgICBpZiAoZWxlbWVudEJvdW5kcy53
aWR0aCgpID49IHVub2JzY3VyZWRSZWN0LndpZHRoKCkgLyAyICYmIGVsZW1lbnRCb3VuZHMuaGVp
Z2h0KCkgPj0gdW5vYnNjdXJlZFJlY3QuaGVpZ2h0KCkgLyAyKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTAwNSw3ICsxMDA1LDcgQEAgdm9pZCBXZWJQYWdlOjppbnNlcnREcm9wcGVk
SW1hZ2VQbGFjZWhvbGRlcnMoY29uc3QgVmVjdG9yPEludFNpemU+JiBpbWFnZVNpemVzLAogewog
ICAgIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5pbnNlcnREcm9wcGVkSW1hZ2VQbGFjZWhvbGRl
cnNBdENhcmV0KGltYWdlU2l6ZXMpOwogICAgIGF1dG8gcGxhY2Vob2xkZXJSZWN0cyA9IG1fcGFn
ZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMoKS5tYXAoWyZdIChh
dXRvJiBlbGVtZW50KSB7Ci0gICAgICAgIHJldHVybiByb290Vmlld0JvdW5kc0ZvckVsZW1lbnQo
ZWxlbWVudCk7CisgICAgICAgIHJldHVybiByb290Vmlld0JvdW5kcyhlbGVtZW50KTsKICAgICB9
KTsKIAogICAgIGF1dG8gaW1hZ2VQbGFjZWhvbGRlclJhbmdlID0gbV9wYWdlLT5kcmFnQ29udHJv
bGxlcigpLmRyb3BwZWRJbWFnZVBsYWNlaG9sZGVyUmFuZ2UoKTsKQEAgLTEzNjAsMTAgKzEzNjAs
MTAgQEAgc3RhdGljIEludFJlY3QgZWxlbWVudEJvdW5kc0luRnJhbWUoY29uc3QgRnJhbWUmIGZy
YW1lLCBjb25zdCBFbGVtZW50JiBmb2N1c2VkRWwKICAgICBmcmFtZS5kb2N1bWVudCgpLT51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICAKICAgICBpZiAoZm9jdXNl
ZEVsZW1lbnQuaGFzVGFnTmFtZShIVE1MTmFtZXM6OnRleHRhcmVhVGFnKSB8fCBmb2N1c2VkRWxl
bWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpIHx8IGZvY3VzZWRFbGVtZW50Lmhh
c1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpKQotICAgICAgICByZXR1cm4gV2ViUGFnZTo6
YWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoZm9jdXNlZEVsZW1lbnQpOworICAg
ICAgICByZXR1cm4gV2ViUGFnZTo6YWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kcyhmb2N1c2VkRWxl
bWVudCk7CiAKICAgICBpZiAoYXV0byogcm9vdEVkaXRhYmxlRWxlbWVudCA9IGZvY3VzZWRFbGVt
ZW50LnJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIFdlYlBhZ2U6OmFic29s
dXRlSW50ZXJhY3Rpb25Cb3VuZHNGb3JFbGVtZW50KCpyb290RWRpdGFibGVFbGVtZW50KTsKKyAg
ICAgICAgcmV0dXJuIFdlYlBhZ2U6OmFic29sdXRlSW50ZXJhY3Rpb25Cb3VuZHMoKnJvb3RFZGl0
YWJsZUVsZW1lbnQpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTE2NzgsMzQgKzE2NzgsMzQg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHJhbmdlQXRXb3JkQm91bmRhcnlG
b3JQb3NpdGlvbihGcmFtZSogZnJhbWUsIGMKICAgICByZXR1cm4gbWFrZVNpbXBsZVJhbmdlKGJh
c2UsIGV4dGVudCk7CiB9CiAKLUludFJlY3QgV2ViUGFnZTo6cm9vdFZpZXdCb3VuZHNGb3JFbGVt
ZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCitJbnRSZWN0IFdlYlBhZ2U6OnJvb3RWaWV3Qm91
bmRzKGNvbnN0IE5vZGUmIG5vZGUpCiB7Ci0gICAgYXV0byogZnJhbWUgPSBlbGVtZW50LmRvY3Vt
ZW50KCkuZnJhbWUoKTsKKyAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihub2RlLmRvY3VtZW50
KCkuZnJhbWUoKSk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAg
IGF1dG8qIHZpZXcgPSBmcmFtZS0+dmlldygpOworICAgIGF1dG8gdmlldyA9IG1ha2VSZWZQdHIo
ZnJhbWUtPnZpZXcoKSk7CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LnJlbmRlcmVyKCk7CisgICAgYXV0byogcmVuZGVy
ZXIgPSBub2RlLnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJu
IHsgfTsKIAogICAgIHJldHVybiB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocmVuZGVyZXItPmFi
c29sdXRlQm91bmRpbmdCb3hSZWN0KCkpOwogfQogCi1JbnRSZWN0IFdlYlBhZ2U6OmFic29sdXRl
SW50ZXJhY3Rpb25Cb3VuZHNGb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCitJbnRS
ZWN0IFdlYlBhZ2U6OmFic29sdXRlSW50ZXJhY3Rpb25Cb3VuZHMoY29uc3QgTm9kZSYgbm9kZSkK
IHsKLSAgICBhdXRvKiBmcmFtZSA9IGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpOworICAgIGF1
dG8gZnJhbWUgPSBtYWtlUmVmUHRyKG5vZGUuZG9jdW1lbnQoKS5mcmFtZSgpKTsKICAgICBpZiAo
IWZyYW1lKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byogdmlldyA9IGZyYW1lLT52
aWV3KCk7CisgICAgYXV0byB2aWV3ID0gbWFrZVJlZlB0cihmcmFtZS0+dmlldygpKTsKICAgICBp
ZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvKiByZW5kZXJlciA9IGVs
ZW1lbnQucmVuZGVyZXIoKTsKKyAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsK
ICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC0xNzMwLDE3ICsx
NzMwLDE3IEBAIEludFJlY3QgV2ViUGFnZTo6YWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kc0ZvckVs
ZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVj
dChib3VuZGluZ0JveCk7CiB9CiAKLUludFJlY3QgV2ViUGFnZTo6cm9vdFZpZXdJbnRlcmFjdGlv
bkJvdW5kc0ZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK0ludFJlY3QgV2ViUGFn
ZTo6cm9vdFZpZXdJbnRlcmFjdGlvbkJvdW5kcyhjb25zdCBOb2RlJiBub2RlKQogewotICAgIGF1
dG8qIGZyYW1lID0gZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCk7CisgICAgYXV0byBmcmFtZSA9
IG1ha2VSZWZQdHIobm9kZS5kb2N1bWVudCgpLmZyYW1lKCkpOwogICAgIGlmICghZnJhbWUpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvKiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAg
ICBhdXRvIHZpZXcgPSBtYWtlUmVmUHRyKGZyYW1lLT52aWV3KCkpOwogICAgIGlmICghdmlldykK
ICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiB2aWV3LT5jb250ZW50c1RvUm9vdFZp
ZXcoYWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoZWxlbWVudCkpOworICAgIHJl
dHVybiB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcoYWJzb2x1dGVJbnRlcmFjdGlvbkJvdW5kcyhu
b2RlKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Y2xlYXJTZWxlY3Rpb24oKQpAQCAtMTc1Nyw3ICsx
NzU3LDcgQEAgdm9pZCBXZWJQYWdlOjpkaXNwYXRjaFN5bnRoZXRpY01vdXNlRXZlbnRzRm9yU2Vs
ZWN0aW9uR2VzdHVyZShTZWxlY3Rpb25Ub3VjaCB0b3UKIAogICAgIEludFJlY3QgZm9jdXNlZEVs
ZW1lbnRSZWN0OwogICAgIGlmIChtX2ZvY3VzZWRFbGVtZW50KQotICAgICAgICBmb2N1c2VkRWxl
bWVudFJlY3QgPSByb290Vmlld0ludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudCgqbV9mb2N1c2Vk
RWxlbWVudCk7CisgICAgICAgIGZvY3VzZWRFbGVtZW50UmVjdCA9IHJvb3RWaWV3SW50ZXJhY3Rp
b25Cb3VuZHMoKm1fZm9jdXNlZEVsZW1lbnQpOwogCiAgICAgaWYgKGZvY3VzZWRFbGVtZW50UmVj
dC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMyNDIsNyArMzI0Miw3IEBAIHN0ZDo6
b3B0aW9uYWw8Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbj4gV2ViUGFnZTo6Zm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbigpCiAgICAgICAgIGluZm9ybWF0aW9uLmVsZW1lbnRDb250ZXh0ID0gV1RG
TW92ZSgqZWxlbWVudENvbnRleHQpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZm9jdXNl
ZEVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKLSAgICAgICAgaW5mb3JtYXRpb24uaW50ZXJhY3Rpb25S
ZWN0ID0gcm9vdFZpZXdJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoKmZvY3VzZWRFbGVtZW50
KTsKKyAgICAgICAgaW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0ID0gcm9vdFZpZXdJbnRlcmFj
dGlvbkJvdW5kcygqZm9jdXNlZEVsZW1lbnQpOwogICAgICAgICBpbmZvcm1hdGlvbi5ub2RlRm9u
dFNpemUgPSByZW5kZXJlci0+c3R5bGUoKS5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFNpemUo
KTsKIAogICAgICAgICBib29sIGluRml4ZWQgPSBmYWxzZTsKQEAgLTMyNjksMTEgKzMyNjksMTEg
QEAgc3RkOjpvcHRpb25hbDxGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uPiBXZWJQYWdlOjpmb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uKCkKICAgICBpbmZvcm1hdGlvbi5hbGxvd3NVc2VyU2NhbGlu
ZyA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmFsbG93c1VzZXJTY2FsaW5nKCk7CiAgICAgaW5m
b3JtYXRpb24uYWxsb3dzVXNlclNjYWxpbmdJZ25vcmluZ0Fsd2F5c1NjYWxhYmxlID0gbV92aWV3
cG9ydENvbmZpZ3VyYXRpb24uYWxsb3dzVXNlclNjYWxpbmdJZ25vcmluZ0Fsd2F5c1NjYWxhYmxl
KCk7CiAgICAgaWYgKGF1dG8qIG5leHRFbGVtZW50ID0gbmV4dEFzc2lzdGFibGVFbGVtZW50KGZv
Y3VzZWRFbGVtZW50LmdldCgpLCAqbV9wYWdlLCB0cnVlKSkgewotICAgICAgICBpbmZvcm1hdGlv
bi5uZXh0Tm9kZVJlY3QgPSByb290Vmlld0JvdW5kc0ZvckVsZW1lbnQoKm5leHRFbGVtZW50KTsK
KyAgICAgICAgaW5mb3JtYXRpb24ubmV4dE5vZGVSZWN0ID0gcm9vdFZpZXdCb3VuZHMoKm5leHRF
bGVtZW50KTsKICAgICAgICAgaW5mb3JtYXRpb24uaGFzTmV4dE5vZGUgPSB0cnVlOwogICAgIH0K
ICAgICBpZiAoYXV0byogcHJldmlvdXNFbGVtZW50ID0gbmV4dEFzc2lzdGFibGVFbGVtZW50KGZv
Y3VzZWRFbGVtZW50LmdldCgpLCAqbV9wYWdlLCBmYWxzZSkpIHsKLSAgICAgICAgaW5mb3JtYXRp
b24ucHJldmlvdXNOb2RlUmVjdCA9IHJvb3RWaWV3Qm91bmRzRm9yRWxlbWVudCgqcHJldmlvdXNF
bGVtZW50KTsKKyAgICAgICAgaW5mb3JtYXRpb24ucHJldmlvdXNOb2RlUmVjdCA9IHJvb3RWaWV3
Qm91bmRzKCpwcmV2aW91c0VsZW1lbnQpOwogICAgICAgICBpbmZvcm1hdGlvbi5oYXNQcmV2aW91
c05vZGUgPSB0cnVlOwogICAgIH0KICAgICBpbmZvcm1hdGlvbi5mb2N1c2VkRWxlbWVudElkZW50
aWZpZXIgPSBtX2N1cnJlbnRGb2N1c2VkRWxlbWVudElkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzljNGE1
ODE5M2QxNDc5YjlmZTZmZTQxNDQ4MzE3Y2RlNTRmNjllMy4uMzYxNTVkMmYwMDUwNWFkYzljOGFk
ODNmMjVmZjc3ZDIwMzA4Yjk3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA2LTA4ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFNh
ZmFyaSB0YWIgcGlsbCBzaG91bGQgdG9nZ2xlIHZpc2liaWxpdHkgd2hlbiB0YXBwaW5nIG9uIGFy
dGljbGUgdGV4dCBvbiBhZHZlbnR1cmUuY29tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3NzUKKyAgICAgICAgcmRhcjovLzc4ODI2ODIwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbiBhbmQgRGV2aW4gUm91c3NvLgorCisgICAgICAg
ICogZmFzdC9ldmVudHMvaW9zL25vbi1tZWFuaW5nZnVsLWNsaWNrLXdoZW4tdGFwcGluZy1kb2N1
bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy9ub24t
bWVhbmluZ2Z1bC1jbGljay13aGVuLXRhcHBpbmctZG9jdW1lbnQuaHRtbDogQWRkZWQuCisKIDIw
MjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9yIExpdmUgVGV4dApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25vbi1tZWFuaW5nZnVsLWNsaWNrLXdoZW4tdGFwcGlu
Zy1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvbm9u
LW1lYW5pbmdmdWwtY2xpY2std2hlbi10YXBwaW5nLWRvY3VtZW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lODFjMTJiNjBkMDFmNDc3YTIyNmYyNjg4MjM1ZWQ2ZmU2ODk1YWUzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL25vbi1tZWFuaW5nZnVsLWNs
aWNrLXdoZW4tdGFwcGluZy1kb2N1bWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGhpcyB0ZXN0IGV4ZXJjaXNlcyB0aGUgJ21lYW5pbmdmdWwgY2xpY2snIGhldXJpc3RpYyB3aGVu
IGRpc3BhdGNoaW5nIGNsaWNrcyBvbiB0aGUgZG9jdW1lbnQgbm9kZSwgYW5kIHJlcXVpcmVzIFdl
YktpdFRlc3RSdW5uZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBkaWRE
aXNwYXRjaENsaWNrIGJlY2FtZSB0cnVlCitQQVNTIGRpZERpc3BhdGNoTm9uTWVhbmluZ2Z1bENs
aWNrQ2FsbGJhY2sgYmVjYW1lIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
b3Mvbm9uLW1lYW5pbmdmdWwtY2xpY2std2hlbi10YXBwaW5nLWRvY3VtZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvbm9uLW1lYW5pbmdmdWwtY2xpY2std2hlbi10YXBwaW5n
LWRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTVlY2Y3ZGY0MTZlMmNjNDA1MzdjYzM4Yzk3N2M4
MzM2OTUzNDQ4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lv
cy9ub24tbWVhbmluZ2Z1bC1jbGljay13aGVuLXRhcHBpbmctZG9jdW1lbnQuaHRtbApAQCAtMCww
ICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVz
ZXItc2NhbGFibGU9bm8iPgorPHN0eWxlPgorYm9keSwgaHRtbCB7CisgICAgd2lkdGg6IDEwMCU7
CisgICAgaGVpZ2h0OiAxMDAlOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9
IHRydWU7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdCBleGVyY2lzZXMgdGhlICdtZWFuaW5nZnVsIGNsaWNrJyBoZXVy
aXN0aWMgd2hlbiBkaXNwYXRjaGluZyBjbGlja3Mgb24gdGhlIGRvY3VtZW50IG5vZGUsIGFuZCBy
ZXF1aXJlcyBXZWJLaXRUZXN0UnVubmVyLiIpOworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIGRpZERpc3BhdGNoTm9uTWVhbmluZ2Z1bENsaWNrQ2Fs
bGJhY2sgPSBmYWxzZTsKKyAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWROb3RIYW5kbGVUYXBBc01l
YW5pbmdmdWxDbGlja0NhbGxiYWNrKCgpID0+IHsKKyAgICAgICAgZGlkRGlzcGF0Y2hOb25NZWFu
aW5nZnVsQ2xpY2tDYWxsYmFjayA9IHRydWU7CisgICAgfSk7CisKKyAgICBkaWREaXNwYXRjaENs
aWNrID0gZmFsc2U7CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9
PiB7CisgICAgICAgIGRpZERpc3BhdGNoQ2xpY2sgPSB0cnVlOworICAgIH0pOworCisgICAgYXdh
aXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxMDAsIDEwMCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2Fp
dEZvckRvdWJsZVRhcERlbGF5KCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBz
aG91bGRCZWNvbWVFcXVhbCgiZGlkRGlzcGF0Y2hDbGljayIsICJ0cnVlIiwgcmVzb2x2ZSkpOwor
ICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoImRpZERp
c3BhdGNoTm9uTWVhbmluZ2Z1bENsaWNrQ2FsbGJhY2siLCAidHJ1ZSIsIHJlc29sdmUpKTsKKwor
ICAgIHRlc3RSdW5uZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>