<?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>152541</bug_id>
          
          <creation_ts>2015-12-23 16:09:36 -0800</creation_ts>
          <short_desc>REGRESSION (r187593): Scroll position jumps when selecting text in an iframe</short_desc>
          <delta_ts>2015-12-23 20:55:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1151204</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-12-23 16:09:36 -0800</bug_when>
    <thetext>REGRESSION (r190487): Scroll position jumps when selecting text in an iframe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151206</commentid>
    <comment_count>1</comment_count>
      <attachid>267877</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-12-23 16:21:00 -0800</bug_when>
    <thetext>Created attachment 267877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151207</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-12-23 16:21:45 -0800</bug_when>
    <thetext>rdar://problem/23886181</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151211</commentid>
    <comment_count>3</comment_count>
      <attachid>267877</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-23 16:32:04 -0800</bug_when>
    <thetext>Comment on attachment 267877
Patch

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

&gt; Source/WebCore/platform/graphics/IntPoint.cpp:40
&gt; +IntPoint IntPoint::constrainedBetween(const IntPoint&amp; min, const IntPoint&amp; max) const

A bunch of things do .expandedTo().shrunkTo() to achieve this. Please consider adopting constrainedBetween in some of those places, it makes a looooot more sense.

&gt; Source/WebCore/rendering/RenderLayer.cpp:2456
&gt; +    // This will prevent us from revealing text hidden by the slider in Safari RSS.

Wat</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151241</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-12-23 20:55:22 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/194405</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267877</attachid>
            <date>2015-12-23 16:21:00 -0800</date>
            <delta_ts>2015-12-23 16:32:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152541-20151223162024.patch</filename>
            <type>text/plain</type>
            <size>26717</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY5MmI0YmVkZmYyYTEx
NjRlODg1NTA4ZGNjMjljYzk0YzBmYjNmYy4uZGNhZjZjNTcwZjlkMTNkMjE3N2UyYWM5ODA1MDhi
ZDAwYTMwOGFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE1LTEyLTIzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIxODc1OTMpOiBTY3JvbGwgcG9zaXRpb24ganVtcHMgd2hlbiBzZWxlY3RpbmcgdGV4dCBpbiBh
biBpZnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MjU0MQorICAgICAgICByZGFyOi8vcHJvYmxlbS8yMzg4NjE4MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgcjE1NDM4MiBhZGRlZCBj
b2RlIHRoYXQgbW9kaWZpZXMgcGFyZW50TGF5ZXIgdHJhdmVyc2FsLCBsb29raW5nIGZvciBhbmNl
c3RvcgorICAgICAgICBzY3JvbGxhYmxlIGxheWVycy4gSG93ZXZlciwgaXQgY29uZnVzaW5nbHkg
YWRkZWQgYW5vdGhlciBjb2RlIHBhdGggaW4gd2hpY2gKKyAgICAgICAgdGhlIGFuY2VzdG9yIGxh
eWVyIHRyYXZlcnNhbCBjcm9zcyBhIGZyYW1lIGJvdW5kYXJ5LCB3aGVuIFJlbmRlckxheWVyOjpz
Y3JvbGxSZWN0VG9WaXNpYmxlKCkKKyAgICAgICAgYWxyZWFkeSBoYXMgb25lLiBJIGZpeGVkIHRo
aXMgbmV3IGxvY2F0aW9uIHRvIGFkanVzdCB0aGUgcmVjdCBjb29yZGluYXRlcyBpbiByMTg3NTkz
LAorICAgICAgICBidXQgdGhlbiBjb2RlIHRoYXQgaGl0IGJvdGggY3Jvc3NpbmcgcG9pbnRzIGRv
dWJsZS1tYXBwZWQgdGhlIGNvb3JkaW5hdGVzLCBjYXVzaW5nCisgICAgICAgIGF1dG9zY3JvbGwg
anVtcGluZy4KKyAgICAgICAgCisgICAgICAgIEZpeCBieSByZXZlcnRpbmcgcjE1NDM4MiBhbmQg
cjE4NzU5MywgZ29pbmcgYmFjayB0byBkb2luZyB0aGUgYW5jZXN0b3Igd2FsayBpbgorICAgICAg
ICBvbmUgcGxhY2UuIFJlLWZpeCByMTU0MzgyIGJ5IGltcGxlbWVudGluZyBSZW5kZXJMYXllcjo6
YWxsb3dzQ3VycmVudFNjcm9sbCgpLAorICAgICAgICB3aGljaCBjb250YWlucyB0aGUgbG9naWMg
Zm9yIGxpbmUgY2xhbXAsIGF1dG9zY3JvbGwgYW5kIGVuc3VyaW5nIHRoYXQgb3ZlcmZsb3c6aGlk
ZGVuCisgICAgICAgIGNhbiBiZSBwcm9ncmFtbWF0aWNhbGx5IHNjcm9sbGVkLgorICAgICAgICAK
KyAgICAgICAgRm9ybSBjb250cm9scyBhcmUgc3BlY2lhbDsgdGhleSBjYW4gaGF2ZSBvdmVyZmxv
dzpoaWRkZW4gYnV0IHN0aWxsIGJlIHVzZXItc2Nyb2xsYWJsZQorICAgICAgICBkdXJpbmcgYXV0
b3Njcm9sbDsgdGhpcyBpcyBoYW5kbGVkIHZpYSB0aGUgY29uZnVzaW5nbHktbmFtZWQgY2FuQmVQ
cm9ncmFtYXRpY2FsbHlTY3JvbGxlZCgpLgorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUgaW1wbGVtZW50cyB0aGlzIHRvIGVuc3VyZSB0aGF0IHJlYWRvbmx5IHRleHQgaW5wdXRz
CisgICAgICAgIGF1dG9zY3JvbGwgKHdoaWNoIGlzIGV4ZXJjaXNlZCBieSBhIHRlc3QpLgorICAg
ICAgICAKKyAgICAgICAgVGhlIGZyYW1lLXRvLXBhcmVudC1mcmFtZSByZWN0IG1hcHBpbmcgaW4g
UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoKSBpcworICAgICAgICBmaXhlZCB0byB1
c2UgdGhlIGNvb3JkaW5hdGUgbWFwcGluZyBmdW5jdGlvbnMgZnJvbSBXaWRnZXQvU2Nyb2xsVmll
dywgd2l0aCB0aGUKKyAgICAgICAgYWRkaXRpb24gb2YgYSBuZXcgdXRpbGl0eSBmdW5jdGlvbiBj
b250ZW50c1RvQ29udGFpbmluZ1ZpZXdDb250ZW50cygpLgorICAgICAgICAKKyAgICAgICAgQSAi
U2Nyb2xsaW5nIiBsb2dnaW5nIGNoYW5uZWwgaXMgYWRkZWQgd2l0aCBhIGZldyBsb2cgcG9pbnRz
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2F1dG9zY3JvbGwtaW4taWZyYW1lLWJvZHku
aHRtbAorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlTm9uRmFz
dFNjcm9sbGFibGVSZWdpb25Gb3JGcmFtZSk6CisgICAgICAgIHVzZSBjb250ZW50c1RvQ29udGFp
bmluZ1ZpZXdDb250ZW50cygpLgorICAgICAgICAqIHBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OmNvbnRlbnRzVG9Db250YWluaW5nVmlld0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50UG9pbnQ6OmNvbnN0cmFpbmVkQmV0d2Vlbik6IE5ldyBo
ZWxwZXIgdG8gY29uc3RyYWluIGEgcG9pbnQgYmV0d2VlbgorICAgICAgICB0d28gb3RoZXIgcG9p
bnRzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRQb2ludDo6ZXhwYW5kZWRUbyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRQb2lu
dDo6c2hydW5rVG8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJlbnRM
YXllckNyb3NzRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmVuY2xvc2lu
Z1Njcm9sbGFibGVMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpmcmFtZUVsZW1lbnRBbmRWaWV3
UGVybWl0U2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjphbGxvd3NDdXJy
ZW50U2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9W
aXNpYmxlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMTUtMTItMjIgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWlub3IgY2xl
YW51cCBpbiBSZW5kZXJCb3g6OmNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCmluZGV4IGJjOTNiZWNmMWYzNTEzNzVkZTgxNTE0NDE0ZDRhNzM5NGY1ZDg5ZDMuLjUzYjk4
YzE0NWEzNzI5ZWM4ZDI1MWZjZTI3ZWI2NmU0Zjc5N2IwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTE2
MCw5ICsxNjAsNyBAQCBSZWdpb24gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlTm9uRmFz
dFNjcm9sbGFibGVSZWdpb25Gb3JGcmFtZShjb25zdCBGcmFtZQogCiAgICAgICAgIFJlZ2lvbiBz
dWJmcmFtZVJlZ2lvbiA9IGFic29sdXRlTm9uRmFzdFNjcm9sbGFibGVSZWdpb25Gb3JGcmFtZSgq
c3ViZnJhbWUpOwogICAgICAgICAvLyBNYXAgZnJvbSB0aGUgZnJhbWUgZG9jdW1lbnQgdG8gb3Vy
IGRvY3VtZW50LgotICAgICAgICBJbnRQb2ludCBvZmZzZXQgPSBzdWJmcmFtZVZpZXctPmNvbnRl
bnRzVG9WaWV3KEludFBvaW50KCkpOwotICAgICAgICBvZmZzZXQgPSBzdWJmcmFtZVZpZXctPmNv
bnZlcnRUb0NvbnRhaW5pbmdWaWV3KG9mZnNldCk7Ci0gICAgICAgIG9mZnNldCA9IGZyYW1lVmll
dy0+dmlld1RvQ29udGVudHMob2Zmc2V0KTsKKyAgICAgICAgSW50UG9pbnQgb2Zmc2V0ID0gc3Vi
ZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmluZ1ZpZXdDb250ZW50cyhJbnRQb2ludCgpKTsK
IAogICAgICAgICAvLyBGSVhNRTogdGhpcyB0cmFuc2xhdGlvbiBpZ25vcmVzIG5vbi10cml2YWwg
dHJhbnNmb3JtcyBvbiB0aGUgZnJhbWUuCiAgICAgICAgIHN1YmZyYW1lUmVnaW9uLnRyYW5zbGF0
ZSh0b0ludFNpemUob2Zmc2V0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggOWM0
ODU1NWI5MGZhYmUyMWEzMWE3N2NkN2ZlZDg3N2FhNWJkZjUzNi4uM2YwZmQ3YWMxNjU3ZjgyZDI4
NDY1OGNiNDhiNmE2MzFiYzNmNjI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAt
NzcsNiArNzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShTUUxEYXRhYmFzZSkgXAog
ICAgIE0oU1ZHKSBcCiAgICAgTShTZXJ2aWNlcykgXAorICAgIE0oU2Nyb2xsaW5nKSBcCiAgICAg
TShTcGVsbGluZ0FuZEdyYW1tYXIpIFwKICAgICBNKFN0b3JhZ2VBUEkpIFwKICAgICBNKFRocmVh
ZGluZykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCBmODU4MjM0
NmZiNmNlMjcyNGE2OTJjNzMxMGNlMGQ0ZDJmNWRlMjVmLi5kMGRkMmE5NmQzYWE1ODQ4Mjg4NTYx
YzkwNzEwZTlhY2Q4OTgyOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cApAQCAtMjksMTEgKzI5LDEzIEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNs
dWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUg
IlRleHRTdHJlYW0uaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTg3MSw2ICs4NzMsMjYgQEAgSW50UmVjdCBTY3JvbGxWaWV3Ojpjb250
ZW50c1RvVmlldyhJbnRSZWN0IHJlY3QpIGNvbnN0CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKK0lu
dFBvaW50IFNjcm9sbFZpZXc6OmNvbnRlbnRzVG9Db250YWluaW5nVmlld0NvbnRlbnRzKGNvbnN0
IEludFBvaW50JiBwb2ludCkgY29uc3QKK3sKKyAgICBpZiAoY29uc3QgU2Nyb2xsVmlldyogcGFy
ZW50U2Nyb2xsVmlldyA9IHBhcmVudCgpKSB7CisgICAgICAgIEludFBvaW50IHBvaW50SW5Db250
YWluaW5nVmlldyA9IGNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KGNvbnRlbnRzVG9WaWV3KHBvaW50
KSk7CisgICAgICAgIHJldHVybiBwYXJlbnRTY3JvbGxWaWV3LT52aWV3VG9Db250ZW50cyhwb2lu
dEluQ29udGFpbmluZ1ZpZXcpOworICAgIH0KKworICAgIHJldHVybiBjb250ZW50c1RvVmlldyhw
b2ludCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsVmlldzo6Y29udGVudHNUb0NvbnRhaW5pbmdWaWV3
Q29udGVudHMoSW50UmVjdCByZWN0KSBjb25zdAoreworICAgIGlmIChjb25zdCBTY3JvbGxWaWV3
KiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50KCkpIHsKKyAgICAgICAgSW50UmVjdCByZWN0SW5D
b250YWluaW5nVmlldyA9IGNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KGNvbnRlbnRzVG9WaWV3KHJl
Y3QpKTsKKyAgICAgICAgcmV0dXJuIHBhcmVudFNjcm9sbFZpZXctPnZpZXdUb0NvbnRlbnRzKHJl
Y3RJbkNvbnRhaW5pbmdWaWV3KTsKKyAgICB9CisKKyAgICByZXR1cm4gY29udGVudHNUb1ZpZXco
cmVjdCk7Cit9CisKIEludFBvaW50IFNjcm9sbFZpZXc6OnJvb3RWaWV3VG9Db250ZW50cyhjb25z
dCBJbnRQb2ludCYgcm9vdFZpZXdQb2ludCkgY29uc3QKIHsKICAgICBpZiAoZGVsZWdhdGVzU2Ny
b2xsaW5nKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKaW5kZXggMjFjODUzOTIx
Y2FhYWE4ZjdhZWQ2MWFlNjcwN2U4NDY1YmNiOTI4OS4uZjQ2ZTAxN2ZjNWMyZWY3ZTcxODJhMzcx
MDBiZDNlNDc2MWIwMDAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaApAQCAt
Mjk0LDYgKzI5NCw5IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IHZpZXdUb0NvbnRlbnRzKEludFJl
Y3QpIGNvbnN0OwogICAgIEludFJlY3QgY29udGVudHNUb1ZpZXcoSW50UmVjdCkgY29uc3Q7CiAK
KyAgICBJbnRQb2ludCBjb250ZW50c1RvQ29udGFpbmluZ1ZpZXdDb250ZW50cyhjb25zdCBJbnRQ
b2ludCYpIGNvbnN0OworICAgIEludFJlY3QgY29udGVudHNUb0NvbnRhaW5pbmdWaWV3Q29udGVu
dHMoSW50UmVjdCkgY29uc3Q7CisKICAgICBXRUJDT1JFX0VYUE9SVCBJbnRQb2ludCByb290Vmll
d1RvVG90YWxDb250ZW50cyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogCiAgICAgLy8gRXZlbnQg
Y29vcmRpbmF0ZXMgYXJlIGFzc3VtZWQgdG8gYmUgaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2Yg
YSB3aW5kb3cgdGhhdCBjb250YWlucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW50UG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW50UG9pbnQuY3BwCmluZGV4IDIyNjRhNDI5YjhkNDVmNjNlODUxZWExNzA1YzRkZDVmNWJj
ZTYzOTcuLjBmN2RlYWIyMjEzMzA3ODYzNWZiNDY1OTE2NDFlZGMxYWVhMTUyMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5jcHAKQEAgLTM3LDYgKzM3
LDE1IEBAIEludFBvaW50OjpJbnRQb2ludChjb25zdCBGbG9hdFBvaW50JiBwKQogewogfQogCitJ
bnRQb2ludCBJbnRQb2ludDo6Y29uc3RyYWluZWRCZXR3ZWVuKGNvbnN0IEludFBvaW50JiBtaW4s
IGNvbnN0IEludFBvaW50JiBtYXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgc3Rk
OjptYXgobWluLngoKSwgc3RkOjptaW4obWF4LngoKSwgbV94KSksCisgICAgICAgIHN0ZDo6bWF4
KG1pbi55KCksIHN0ZDo6bWluKG1heC55KCksIG1feSkpCisgICAgfTsKK30KKworCiBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBJbnRQb2ludCYgcCkKIHsKICAg
ICByZXR1cm4gdHMgPDwgIigiIDw8IHAueCgpIDw8ICIsIiA8PCBwLnkoKSA8PCAiKSI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaAppbmRleCBhMmJjMzMxYzQ4
OGQ5NTM2ZDZiMzg1MDY3NTRlMDg2MjVkZTZiZjUxLi4wYjVkNDNhZTc1ODg4M2NlNzZkY2M5NGQ1
NmRmM2Q3Y2E1MWQ3NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbnRQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lu
dFBvaW50LmgKQEAgLTg0LDE2ICs4NCwyMiBAQCBwdWJsaWM6CiAgICAgCiAgICAgSW50UG9pbnQg
ZXhwYW5kZWRUbyhjb25zdCBJbnRQb2ludCYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICBy
ZXR1cm4gSW50UG9pbnQobV94ID4gb3RoZXIubV94ID8gbV94IDogb3RoZXIubV94LAotICAgICAg
ICAgICAgbV95ID4gb3RoZXIubV95ID8gbV95IDogb3RoZXIubV95KTsKKyAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgIG1feCA+IG90aGVyLm1feCA/IG1feCA6IG90aGVyLm1feCwKKyAgICAg
ICAgICAgIG1feSA+IG90aGVyLm1feSA/IG1feSA6IG90aGVyLm1feQorICAgICAgICB9OwogICAg
IH0KIAogICAgIEludFBvaW50IHNocnVua1RvKGNvbnN0IEludFBvaW50JiBvdGhlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBJbnRQb2ludChtX3ggPCBvdGhlci5tX3ggPyBtX3ggOiBv
dGhlci5tX3gsCi0gICAgICAgICAgICBtX3kgPCBvdGhlci5tX3kgPyBtX3kgOiBvdGhlci5tX3kp
OworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgbV94IDwgb3RoZXIubV94ID8gbV94IDog
b3RoZXIubV94LAorICAgICAgICAgICAgbV95IDwgb3RoZXIubV95ID8gbV95IDogb3RoZXIubV95
CisgICAgICAgIH07CiAgICAgfQogCisgICAgSW50UG9pbnQgY29uc3RyYWluZWRCZXR3ZWVuKGNv
bnN0IEludFBvaW50JiBtaW4sIGNvbnN0IEludFBvaW50JiBtYXgpIGNvbnN0OworCiAgICAgaW50
IGRpc3RhbmNlU3F1YXJlZFRvUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKIAogICAgIHZv
aWQgY2xhbXBOZWdhdGl2ZVRvWmVybygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCmluZGV4IDU4NGY1MWEwYTE2MDI5ZDUyNjc5NTlmNjUwMGNjYmY4ODI2MDNkOTQuLjY4MjUw
ZjNlNjkyM2JkZTk2MWE4NTc1MDE1Zjc1ZWU3Mjg0OTBlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCkBAIC04NzUsNiArODc1LDcgQEAgYm9vbCBSZW5kZXJCb3g6Omlz
U2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGVCb3goKSBjb25zdAogICAgIHJldHVybiBjYW5CZVNj
cm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEoKTsKIH0KIAorLy8gRklYTUU6IFRoaXMgaXMgYmFk
bHkgbmFtZWQuIG92ZXJmbG93OmhpZGRlbiBjYW4gYmUgcHJvZ3JhbW1hdGljYWxseSBzY3JvbGxl
ZCwgeWV0IHRoaXMgcmV0dXJucyBmYWxzZSBpbiB0aGF0IGNhc2UuCiBib29sIFJlbmRlckJveDo6
Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZCgpIGNvbnN0CiB7CiAgICAgaWYgKGlzUmVuZGVy
VmlldygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZjMw
NTI3YTU1ZWVlNTE0MGRjZjA5NDMzOGQxMGZmMTJjY2VmNjAzOC4uMGQzM2IxYTgzNTk2MGVmNTY5
ZmVhZjMwN2FkYTc1N2IyOTBlNTEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCkBAIC03OCw2ICs3OCw3IEBACiAjaW5jbHVkZSAiSGl0VGVzdGluZ1RyYW5zZm9y
bVN0YXRlLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJIaXRUZXN0
UmVzdWx0LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk92ZXJmbG93RXZlbnQu
aCIKICNpbmNsdWRlICJPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQuaCIKICNpbmNsdWRlICJQYWdl
LmgiCkBAIC0xNDU0LDcgKzE0NTUsNyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xv
c2luZ0FuY2VzdG9yRm9yUG9zaXRpb24oRVBvc2l0aW9uIHBvc2l0aW9uKSBjb25zdAogICAgIHJl
dHVybiBjdXJyOwogfQogCi1zdGF0aWMgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyQ3Jvc3NGcmFt
ZShjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIExheW91dFJlY3QqIHJlY3QgPSBudWxscHRyKQor
c3RhdGljIFJlbmRlckxheWVyKiBwYXJlbnRMYXllckNyb3NzRnJhbWUoY29uc3QgUmVuZGVyTGF5
ZXImIGxheWVyKQogewogICAgIGlmIChsYXllci5wYXJlbnQoKSkKICAgICAgICAgcmV0dXJuIGxh
eWVyLnBhcmVudCgpOwpAQCAtMTQ2NywxOCArMTQ2OCwxMiBAQCBzdGF0aWMgUmVuZGVyTGF5ZXIq
IHBhcmVudExheWVyQ3Jvc3NGcmFtZShjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIExheW91dFJl
Y3QqCiAgICAgaWYgKCFvd25lclJlbmRlcmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIC8vIENvbnZlcnQgdGhlIHJlY3QgaW50byB0aGUgY29vcmRpbmF0ZSBzcGFjZSBvZiB0aGUg
cGFyZW50IGZyYW1lJ3MgZG9jdW1lbnQuCi0gICAgaWYgKHJlY3QpIHsKLSAgICAgICAgSW50UmVj
dCB2aWV3UmVjdCA9IGxheWVyLnJlbmRlcmVyKCkuZnJhbWUoKS52aWV3KCktPmNvbnZlcnRUb0Nv
bnRhaW5pbmdWaWV3KGVuY2xvc2luZ0ludFJlY3QoKnJlY3QpKTsKLSAgICAgICAgKnJlY3QgPSBv
d25lclJlbmRlcmVyLT5mcmFtZSgpLnZpZXcoKS0+dmlld1RvQ29udGVudHModmlld1JlY3QpOwot
ICAgIH0KLQogICAgIHJldHVybiBvd25lclJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpOwogfQog
Ci1SZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ1Njcm9sbGFibGVMYXllcihMYXlv
dXRSZWN0KiByZWN0KSBjb25zdAorUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdT
Y3JvbGxhYmxlTGF5ZXIoKSBjb25zdAogewotICAgIGZvciAoUmVuZGVyTGF5ZXIqIG5leHRMYXll
ciA9IHBhcmVudExheWVyQ3Jvc3NGcmFtZSgqdGhpcywgcmVjdCk7IG5leHRMYXllcjsgbmV4dExh
eWVyID0gcGFyZW50TGF5ZXJDcm9zc0ZyYW1lKCpuZXh0TGF5ZXIsIHJlY3QpKSB7CisgICAgZm9y
IChSZW5kZXJMYXllciogbmV4dExheWVyID0gcGFyZW50TGF5ZXJDcm9zc0ZyYW1lKCp0aGlzKTsg
bmV4dExheWVyOyBuZXh0TGF5ZXIgPSBwYXJlbnRMYXllckNyb3NzRnJhbWUoKm5leHRMYXllcikp
IHsKICAgICAgICAgaWYgKGlzPFJlbmRlckJveD4obmV4dExheWVyLT5yZW5kZXJlcigpKSAmJiBk
b3duY2FzdDxSZW5kZXJCb3g+KG5leHRMYXllci0+cmVuZGVyZXIoKSkuY2FuQmVTY3JvbGxlZEFu
ZEhhc1Njcm9sbGFibGVBcmVhKCkpCiAgICAgICAgICAgICByZXR1cm4gbmV4dExheWVyOwogICAg
IH0KQEAgLTIyODMsNiArMjI3OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhblNjcm9sbEZyb21Q
b2ludChjb25zdCBJbnRQb2ludCYgc291cmNlUG9pbnQpCiAgICAgc2Nyb2xsQnlSZWN1cnNpdmVs
eShhZGp1c3RlZFNjcm9sbERlbHRhKGRlbHRhKSwgU2Nyb2xsT2Zmc2V0Q2xhbXBlZCk7CiB9CiAK
Ky8vIEZJWE1FOiB1bmlmeSB3aXRoIHRoZSBzY3JvbGxSZWN0VG9WaXNpYmxlKCkgY29kZSBiZWxv
dy4KIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoY29uc3QgSW50U2l6ZSYg
ZGVsdGEsIFNjcm9sbE9mZnNldENsYW1waW5nIGNsYW1wLCBTY3JvbGxhYmxlQXJlYSoqIHNjcm9s
bGVkQXJlYSkKIHsKICAgICBpZiAoZGVsdGEuaXNaZXJvKCkpCkBAIC0yNDM2LDIzICsyNDMyLDQ4
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKICAgICB2aWV3LmZy
YW1lVmlldygpLnZpZXdwb3J0Q29udGVudHNDaGFuZ2VkKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBmcmFtZUVsZW1lbnRBbmRWaWV3UGVybWl0U2Nyb2xsKEhUTUxGcmFtZUVsZW1lbnRCYXNl
KiBmcmFtZUVsZW1lbnRCYXNlLCBGcmFtZVZpZXcqIGZyYW1lVmlldykgCitzdGF0aWMgaW5saW5l
IGJvb2wgZnJhbWVFbGVtZW50QW5kVmlld1Blcm1pdFNjcm9sbChIVE1MRnJhbWVFbGVtZW50QmFz
ZSogZnJhbWVFbGVtZW50QmFzZSwgRnJhbWVWaWV3JiBmcmFtZVZpZXcpCiB7CiAgICAgLy8gSWYg
c2Nyb2xsYmFycyBhcmVuJ3QgZXhwbGljaXRseSBmb3JiaWRkZW4sIHBlcm1pdCBzY3JvbGxpbmcu
CiAgICAgaWYgKGZyYW1lRWxlbWVudEJhc2UgJiYgZnJhbWVFbGVtZW50QmFzZS0+c2Nyb2xsaW5n
TW9kZSgpICE9IFNjcm9sbGJhckFsd2F5c09mZikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICAvLyBJZiBzY3JvbGxiYXJzIGFyZSBmb3JiaWRkZW4sIHVzZXIgaW5pdGlhdGVkIHNjcm9sbHMg
c2hvdWxkIG9idmlvdXNseSBiZSBpZ25vcmVkLgotICAgIGlmIChmcmFtZVZpZXctPndhc1Njcm9s
bGVkQnlVc2VyKCkpCisgICAgaWYgKGZyYW1lVmlldy53YXNTY3JvbGxlZEJ5VXNlcigpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBGb3JiaWQgYXV0b3Njcm9sbHMgd2hlbiBzY3Jv
bGxiYXJzIGFyZSBvZmYsIGJ1dCBwZXJtaXRzIG90aGVyIHByb2dyYW1tYXRpYyBzY3JvbGxzLAog
ICAgIC8vIGxpa2UgbmF2aWdhdGlvbiB0byBhbiBhbmNob3IuCi0gICAgcmV0dXJuICFmcmFtZVZp
ZXctPmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuYXV0b3Njcm9sbEluUHJvZ3Jlc3MoKTsKKyAgICBy
ZXR1cm4gIWZyYW1lVmlldy5mcmFtZSgpLmV2ZW50SGFuZGxlcigpLmF1dG9zY3JvbGxJblByb2dy
ZXNzKCk7Cit9CisKK2Jvb2wgUmVuZGVyTGF5ZXI6OmFsbG93c0N1cnJlbnRTY3JvbGwoKSBjb25z
dAoreworICAgIGlmICghcmVuZGVyZXIoKS5oYXNPdmVyZmxvd0NsaXAoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgLy8gRG9uJ3Qgc2Nyb2xsIHRvIHJldmVhbCBhbiBvdmVyZmxvdyBs
YXllciB0aGF0IGlzIHJlc3RyaWN0ZWQgYnkgdGhlIC13ZWJraXQtbGluZS1jbGFtcCBwcm9wZXJ0
eS4KKyAgICAvLyBUaGlzIHdpbGwgcHJldmVudCB1cyBmcm9tIHJldmVhbGluZyB0ZXh0IGhpZGRl
biBieSB0aGUgc2xpZGVyIGluIFNhZmFyaSBSU1MuCisgICAgaWYgKHJlbmRlcmVyKCkucGFyZW50
KCkgJiYgIXJlbmRlcmVyKCkucGFyZW50KCktPnN0eWxlKCkubGluZUNsYW1wKCkuaXNOb25lKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94
KCk7CisgICAgQVNTRVJUKGJveCk7IC8vIE9ubHkgYm94ZXMgY2FuIGhhdmUgb3ZlcmZsb3dDbGlw
IHNldC4KKworICAgIGlmIChyZW5kZXJlcigpLmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuYXV0b3Nj
cm9sbEluUHJvZ3Jlc3MoKSkgeworICAgICAgICAvLyBUaGUgInByb2dyYW1tYXRpY2FsbHkiIGhl
cmUgaXMgbWlzbGVhZGluZzsgdGhpcyBhc2tzIHdoZXRoZXIgdGhlIGJveCBoYXMgc2Nyb2xsYWJs
ZSBvdmVyZmxvdywKKyAgICAgICAgLy8gb3IgaXMgYSBzcGVjaWFsIGNhc2UgbGlrZSBhIGZvcm0g
Y29udHJvbC4KKyAgICAgICAgcmV0dXJuIGJveC0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxl
ZCgpOworICAgIH0KKworICAgIC8vIFByb2dyYW1tYXRpYyBzY3JvbGxzIGNhbiBzY3JvbGwgb3Zl
cmZsb3c6aGlkZGVuLgorICAgIHJldHVybiBib3gtPmhhc0hvcml6b250YWxPdmVyZmxvdygpIHx8
IGJveC0+aGFzVmVydGljYWxPdmVyZmxvdygpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpzY3Jv
bGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFNjcm9sbEFsaWdu
bWVudCYgYWxpZ25YLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSkKIHsKKyAgICBMT0df
V0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkxheWVyICIgPDwgdGhpcyA8PCAiIHNj
cm9sbFJlY3RUb1Zpc2libGUgIiA8PCByZWN0KTsKKwogICAgIFJlbmRlckxheWVyKiBwYXJlbnRM
YXllciA9IG51bGxwdHI7CiAgICAgTGF5b3V0UmVjdCBuZXdSZWN0ID0gcmVjdDsKIApAQCAtMjQ2
MCwxMyArMjQ4MSwxMCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNv
bnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFNjcm9sbEFsaWdubQogICAgIC8vIHRoZSBlbmQg
b2YgdGhlIGZ1bmN0aW9uIHNpbmNlIHRoZXkgY291bGQgZGVsZXRlIHRoZSBsYXllciBvciB0aGUg
bGF5ZXIncyByZW5kZXJlcigpLgogICAgIEZyYW1lVmlldyYgZnJhbWVWaWV3ID0gcmVuZGVyZXIo
KS52aWV3KCkuZnJhbWVWaWV3KCk7CiAKLSAgICBib29sIHJlc3RyaWN0ZWRCeUxpbmVDbGFtcCA9
IGZhbHNlOwotICAgIGlmIChyZW5kZXJlcigpLnBhcmVudCgpKSB7CisgICAgaWYgKHJlbmRlcmVy
KCkucGFyZW50KCkpCiAgICAgICAgIHBhcmVudExheWVyID0gcmVuZGVyZXIoKS5wYXJlbnQoKS0+
ZW5jbG9zaW5nTGF5ZXIoKTsKLSAgICAgICAgcmVzdHJpY3RlZEJ5TGluZUNsYW1wID0gIXJlbmRl
cmVyKCkucGFyZW50KCktPnN0eWxlKCkubGluZUNsYW1wKCkuaXNOb25lKCk7Ci0gICAgfQogCi0g
ICAgaWYgKHJlbmRlcmVyKCkuaGFzT3ZlcmZsb3dDbGlwKCkgJiYgIXJlc3RyaWN0ZWRCeUxpbmVD
bGFtcCkgeworICAgIGlmIChhbGxvd3NDdXJyZW50U2Nyb2xsKCkpIHsKICAgICAgICAgLy8gRG9u
J3Qgc2Nyb2xsIHRvIHJldmVhbCBhbiBvdmVyZmxvdyBsYXllciB0aGF0IGlzIHJlc3RyaWN0ZWQg
YnkgdGhlIC13ZWJraXQtbGluZS1jbGFtcCBwcm9wZXJ0eS4KICAgICAgICAgLy8gVGhpcyB3aWxs
IHByZXZlbnQgdXMgZnJvbSByZXZlYWxpbmcgdGV4dCBoaWRkZW4gYnkgdGhlIHNsaWRlciBpbiBT
YWZhcmkgUlNTLgogICAgICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwpAQCAtMjQ4
Myw3ICsyNTAxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25z
dCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBTY3JvbGxBbGlnbm0KICAgICAgICAgICAgIGxvY2Fs
RXhwb3NlUmVjdC5tb3ZlKC1zY3JvbGxPZmZzZXREaWZmZXJlbmNlKTsKICAgICAgICAgICAgIG5l
d1JlY3QgPSBMYXlvdXRSZWN0KGJveC0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQoRmxv
YXRSZWN0KGxvY2FsRXhwb3NlUmVjdCkpLCBVc2VUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpKTsK
ICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoIXBhcmVudExheWVyICYmIHJlbmRlcmVyKCkuaXNC
b3goKSAmJiByZW5kZXJCb3goKS0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZCgpKSB7Cisg
ICAgfSBlbHNlIGlmICghcGFyZW50TGF5ZXIgJiYgcmVuZGVyZXIoKS5pc1JlbmRlclZpZXcoKSkg
ewogICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IHJlbmRlcmVy
KCkuZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKTsKIAogICAgICAgICBpZiAob3duZXJFbGVtZW50
ICYmIG93bmVyRWxlbWVudC0+cmVuZGVyZXIoKSkgewpAQCAtMjQ5MiwyMyArMjUxMCwxOSBAQCB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIHJl
Y3QsIGNvbnN0IFNjcm9sbEFsaWdubQogICAgICAgICAgICAgaWYgKGlzPEhUTUxGcmFtZUVsZW1l
bnRCYXNlPigqb3duZXJFbGVtZW50KSkKICAgICAgICAgICAgICAgICBmcmFtZUVsZW1lbnRCYXNl
ID0gZG93bmNhc3Q8SFRNTEZyYW1lRWxlbWVudEJhc2U+KG93bmVyRWxlbWVudCk7CiAKLSAgICAg
ICAgICAgIGlmIChmcmFtZUVsZW1lbnRBbmRWaWV3UGVybWl0U2Nyb2xsKGZyYW1lRWxlbWVudEJh
c2UsICZmcmFtZVZpZXcpKSB7CisgICAgICAgICAgICBpZiAoZnJhbWVFbGVtZW50QW5kVmlld1Bl
cm1pdFNjcm9sbChmcmFtZUVsZW1lbnRCYXNlLCBmcmFtZVZpZXcpKSB7CiAgICAgICAgICAgICAg
ICAgTGF5b3V0UmVjdCB2aWV3UmVjdCA9IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoTGVn
YWN5SU9TRG9jdW1lbnRWaXNpYmxlUmVjdCk7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBl
eHBvc2VSZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCB2aWV3UmVjdCwgcmVjdCwgYWxp
Z25YLCBhbGlnblkpOwogCi0gICAgICAgICAgICAgICAgaW50IHhPZmZzZXQgPSByb3VuZFRvSW50
KGV4cG9zZVJlY3QueCgpKTsKLSAgICAgICAgICAgICAgICBpbnQgeU9mZnNldCA9IHJvdW5kVG9J
bnQoZXhwb3NlUmVjdC55KCkpOworICAgICAgICAgICAgICAgIEludFBvaW50IHNjcm9sbE9mZnNl
dChyb3VuZGVkSW50UG9pbnQoZXhwb3NlUmVjdC5sb2NhdGlvbigpKSk7CiAgICAgICAgICAgICAg
ICAgLy8gQWRqdXN0IG9mZnNldHMgaWYgdGhleSdyZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2FibGUg
cmFuZ2UuCi0gICAgICAgICAgICAgICAgeE9mZnNldCA9IHN0ZDo6bWF4KDAsIHN0ZDo6bWluKGZy
YW1lVmlldy5jb250ZW50c1dpZHRoKCksIHhPZmZzZXQpKTsKLSAgICAgICAgICAgICAgICB5T2Zm
c2V0ID0gc3RkOjptYXgoMCwgc3RkOjptaW4oZnJhbWVWaWV3LmNvbnRlbnRzSGVpZ2h0KCksIHlP
ZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQuY29u
c3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5jb250ZW50c1Np
emUoKSkpOworICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihzY3Jv
bGxPZmZzZXQpOwogCi0gICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9u
KEludFBvaW50KHhPZmZzZXQsIHlPZmZzZXQpKTsKICAgICAgICAgICAgICAgICBpZiAoZnJhbWVW
aWV3LnNhZmVUb1Byb3BhZ2F0ZVNjcm9sbFRvUGFyZW50KCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50TGF5ZXIgPSBvd25lckVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVy
KCk7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgY29ycmVjdGx5
IGNvbnZlcnQgdGhlIHJlY3QgdG8KLSAgICAgICAgICAgICAgICAgICAgLy8gYWJzb2x1dGUgY29v
cmRpbmF0ZXMgaW4gdGhlIHBhcmVudC4KLSAgICAgICAgICAgICAgICAgICAgbmV3UmVjdC5zZXRY
KHJlY3QueCgpIC0gZnJhbWVWaWV3LnNjcm9sbFgoKSArIGZyYW1lVmlldy54KCkpOwotICAgICAg
ICAgICAgICAgICAgICBuZXdSZWN0LnNldFkocmVjdC55KCkgLSBmcmFtZVZpZXcuc2Nyb2xsWSgp
ICsgZnJhbWVWaWV3LnkoKSk7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIHJl
Y3QgaW50byB0aGUgY29vcmRpbmF0ZSBzcGFjZSBvZiB0aGUgcGFyZW50IGZyYW1lJ3MgZG9jdW1l
bnQuCisgICAgICAgICAgICAgICAgICAgIG5ld1JlY3QgPSBmcmFtZVZpZXcuY29udGVudHNUb0Nv
bnRhaW5pbmdWaWV3Q29udGVudHMoZW5jbG9zaW5nSW50UmVjdChuZXdSZWN0KSk7CiAgICAgICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHBhcmVudExheWVyID0gbnVsbHB0
cjsKICAgICAgICAgICAgIH0KQEAgLTI1MzcsOSArMjU1MSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgU2Nyb2xs
QWxpZ25tCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgaWYgKHJlbmRlcmVyKCkuZnJhbWUo
KS5ldmVudEhhbmRsZXIoKS5hdXRvc2Nyb2xsSW5Qcm9ncmVzcygpKQotICAgICAgICBwYXJlbnRM
YXllciA9IGVuY2xvc2luZ1Njcm9sbGFibGVMYXllcigmbmV3UmVjdCk7Ci0KICAgICBpZiAocGFy
ZW50TGF5ZXIpCiAgICAgICAgIHBhcmVudExheWVyLT5zY3JvbGxSZWN0VG9WaXNpYmxlKG5ld1Jl
Y3QsIGFsaWduWCwgYWxpZ25ZKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKaW5kZXggY2JhODY1MDI3YzczYzgyNzcxMDc4YzdkYzAwY2RmNTk4MGQ5Yjc1Yi4uYTc3M2Vj
YjZmNzdiMjJmMDk1ZTc2MjIyYzJkMjlmNDgzOTZiOGFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKQEAgLTQwNCw3ICs0MDQsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVy
TGF5ZXIqIGVuY2xvc2luZ0FuY2VzdG9yRm9yUG9zaXRpb24oRVBvc2l0aW9uKSBjb25zdDsKIAog
ICAgIC8vIFJldHVybnMgdGhlIG5lYXJlc3QgZW5jbG9zaW5nIGxheWVyIHRoYXQgaXMgc2Nyb2xs
YWJsZS4KLSAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nU2Nyb2xsYWJsZUxheWVyKExheW91dFJl
Y3QqID0gbnVsbHB0cikgY29uc3Q7CisgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ1Njcm9sbGFi
bGVMYXllcigpIGNvbnN0OwogCiAgICAgLy8gVGhlIGxheWVyIHJlbGF0aXZlIHRvIHdoaWNoIGNs
aXBwaW5nIHJlY3RzIGZvciB0aGlzIGxheWVyIGFyZSBjb21wdXRlZC4KICAgICBSZW5kZXJMYXll
ciogY2xpcHBpbmdSb290Rm9yUGFpbnRpbmcoKSBjb25zdDsKQEAgLTg5Nyw2ICs4OTcsOCBAQCBw
cml2YXRlOgogICAgIEludFNpemUgc2Nyb2xsYmFyT2Zmc2V0KGNvbnN0IFNjcm9sbGJhciopIGNv
bnN0OwogICAgIAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoYm9vbCBoYXNPdmVy
Zmxvdyk7CisgICAgCisgICAgYm9vbCBhbGxvd3NDdXJyZW50U2Nyb2xsKCkgY29uc3Q7CiAKICAg
ICB2b2lkIGRpcnR5QW5jZXN0b3JDaGFpblZpc2libGVEZXNjZW5kYW50U3RhdHVzKCk7CiAgICAg
dm9pZCBzZXRBbmNlc3RvckNoYWluSGFzVmlzaWJsZURlc2NlbmRhbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApp
bmRleCA5YjE2MmZlMmQ1NGEzYzFiODQyM2YzZjUyYzIyMThiMDExYmUwNTdmLi5mZDNmNzBiYjZi
YmY4ZDlmOGIzYWRhZjdjZmFiZDJlMjlmZDE5YjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC0xMDUsNiAr
MTA1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaGFzTGluZUlmRW1w
dHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
VGV4dENvbnRyb2xJbm5lckJsb2NrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBjYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDQ3NDgwNjJlMDkzYWIxYmQ4ZjYzY2M2NWMwYWRjNjBmMjVlM2NmZWUuLjhiNGUwYmQyZjBm
ZDYyYWQzNDU5ZDgxZWRiZTdiZTUyOWM4MzJmMmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
NS0xMi0yMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OIChyMTg3NTkzKTogU2Nyb2xsIHBvc2l0aW9uIGp1bXBzIHdoZW4gc2VsZWN0
aW5nIHRleHQgaW4gYW4gaWZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTI1NDEKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjM4ODYxODEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIE5l
dyB0ZXN0IGZvciBhdXRvc2Nyb2xsaW5nIGlmcmFtZSBjb250ZW50cyAoYW4gZXhpc3RpbmcgdGVz
dCBzY3JvbGxlZCBhbiBvdmVyZmxvdzpzY3JvbGwKKyAgICAgICAgaW5zaWRlIGFuIGlmcmFtZSwg
YW5kIGRpZG4ndCBjYXRjaCB0aGUgYnVnKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2F1dG9z
Y3JvbGwtaW4taWZyYW1lLWJvZHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9hdXRvc2Nyb2xsLWluLWlmcmFtZS1ib2R5Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvaW5wdXQtcmVhZG9ubHktYXV0b3Njcm9sbC5odG1sOiBGaXggYSBtaXNzaW5n
IGRvdWJsZSBxdW90ZS4KKwogMjAxNS0xMi0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBNaW5vciBjbGVhbnVwIGluIFJlbmRlckJveDo6Y2FuQmVQ
cm9ncmFtYXRpY2FsbHlTY3JvbGxlZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9hdXRvc2Nyb2xsLWluLWlmcmFtZS1ib2R5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2F1dG9zY3JvbGwtaW4taWZyYW1lLWJvZHktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYxYTA5MGQxNTEwMjE1YWEzZTdlMTljMTY0MWFmNzQ5YTBhOGIxYTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLWluLWlmcmFtZS1i
b2R5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTU0VEOiBzZWxlY3RpbmcgaW4g
dGhlIGlmcmFtZSBkaWQgbm90IHNjcm9sbCB0aGUgcGFnZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1pbi1pZnJhbWUtYm9keS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1pbi1pZnJhbWUtYm9keS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY0ZGNjYTczN2UwZWIzNGY1OGIwMjI5M2EyYTMzOTJlZmEyZmM2NmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLWluLWlmcmFtZS1ib2R5
Lmh0bWwKQEAgLTAsMCArMSw5NiBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHls
ZT4KKyAgICAgICAgICAgIGJvZHkgeworICAgICAgICAgICAgICAgIGhlaWdodDogMjAwMHB4Owor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWZyYW1lIHsKKyAgICAgICAgICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICAgICAgdG9wOiA4MDBweDsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gbG9nKG1zZykKKyAgICAgICAgeworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShtc2cgKyAnXG4nKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZh
ciB2ZXJ0aWNhbFNjcm9sbE9mZnNldDsKKyAgICAgICAgdmFyIGlmcmFtZTsKKyAgICAgICAgdmFy
IG1haW5GcmFtZVNjcm9sbE9mZnNldCA9IDQwMDsKKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9u
IGdldERyYWdTdGFydCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXRGcmFtZScpOworICAgICAgICAgICAgLy8gU3RhcnQgZHJh
Z2dpbmcgbmVhciB0aGUgYm90dG9tIG9mIHRoZSBpZnJhbWUuCisgICAgICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgICAgICd4JyA6IGlmcmFtZS5jbGllbnRMZWZ0ICsgaWZyYW1lLmNsaWVu
dFdpZHRoIC8gMiwKKyAgICAgICAgICAgICAgICAneScgOiBpZnJhbWUuY2xpZW50VG9wICsgaWZy
YW1lLmNsaWVudEhlaWdodCAtIDEwCisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSBtYWluRnJhbWVTY3JvbGxPZmZzZXQ7CisgICAgICAg
ICAgICBpZiAoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgIT0gbWFpbkZyYW1l
U2Nyb2xsT2Zmc2V0KQorICAgICAgICAgICAgICAgIGxvZygiRkFJTEVEOiBmYWlsZWQgdG8gc2Ny
b2xsIGJ5ICIgKyBtYWluRnJhbWVTY3JvbGxPZmZzZXQgKyAicHgiKTsKKworICAgICAgICAgICAg
aWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldEZyYW1lJyk7CisgICAgICAg
ICAgICAvLyBTdGFydCBkcmFnZ2luZyBuZWFyIHRoZSBib3R0b20gb2YgdGhlIGlmcmFtZS4KKyAg
ICAgICAgICAgIHZhciBzdGFydFBvaW50ID0gZ2V0RHJhZ1N0YXJ0KCk7CisgICAgICAgICAgICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIuZHJh
Z01vZGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhz
dGFydFBvaW50LngsIHN0YXJ0UG9pbnQueSk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgc2V0VGltZW91dChhdXRvc2Nyb2xsVGVzdFBhcnQxLCAw
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGF1dG9zY3JvbGxUZXN0UGFydDEoKQor
ICAgICAgICB7CisgICAgICAgICAgICB2YXIgbWFpbkRvY3VtZW50VG9wID0gZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgICAgICBpZiAobWFpbkRvY3VtZW50VG9w
ICE9IG1haW5GcmFtZVNjcm9sbE9mZnNldCkKKyAgICAgICAgICAgICAgICBsb2coIkZBSUxFRDog
Q2xpY2tpbmcgaW4gdGhlIGlmcmFtZSBzY3JvbGxlZCB0aGUgcGFnZSAod2luZG93LnNjcm9sbFRv
cCBpcyAiICsgbWFpbkRvY3VtZW50VG9wICsgIikiKTsKKworICAgICAgICAgICAgaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIHZhciBzdGFydFBvaW50ID0gZ2V0RHJh
Z1N0YXJ0KCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIuZHJhZ01vZGUgPSBmYWxzZTsK
KyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvaW50LngsIHN0
YXJ0UG9pbnQueSk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb2ludC54ICsgMTAs
IHN0YXJ0UG9pbnQueSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRUaW1lb3V0KGF1
dG9zY3JvbGxUZXN0UGFydDIsIDEwMCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBh
dXRvc2Nyb2xsVGVzdFBhcnQyKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAg
ICAgICAgICAgIHZhciBtYWluRG9jdW1lbnRUb3AgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcDsKKyAgICAgICAgICAgIGlmIChtYWluRG9jdW1lbnRUb3AgPT0gbWFpbkZyYW1l
U2Nyb2xsT2Zmc2V0KQorICAgICAgICAgICAgICAgIGxvZygiUEFTU0VEOiBzZWxlY3RpbmcgaW4g
dGhlIGlmcmFtZSBkaWQgbm90IHNjcm9sbCB0aGUgcGFnZS4iKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBsb2coIkZBSUxFRDogdGhlIHBhZ2UgYXV0b3Njcm9sbGVkICh3aW5k
b3cuc2Nyb2xsVG9wIGlzICIgKyBtYWluRG9jdW1lbnRUb3AgKyAiKS4iKTsKKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2hlYWQ+Cis8Ym9keT4KKyAgICA8aWZyYW1lIGlkPSJ0YXJnZXRGcmFtZSIgc3JjPSJkYXRhOnRl
eHQvaHRtbCxMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNp
bmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRv
bG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQg
ZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9k
byBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZv
bHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVy
LiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGlu
IGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLiBM
b3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwg
c2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWdu
YSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0
aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1
YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2
ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRl
dXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1
aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLkxvcmVtIGlwc3Vt
IGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1
c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4g
VXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1j
byBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBh
dXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2Ug
Y2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9j
Y2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEg
ZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uIExvcmVtIGlwc3VtIGRvbG9yIHNp
dCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1w
b3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4iPjwvaWZyYW1l
PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXJlYWRvbmx5LWF1dG9zY3JvbGwu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtcmVhZG9ubHktYXV0b3Njcm9sbC5o
dG1sCmluZGV4IGJjODYzNGM3YTNlMmY1NTQ5MWQ3ZTc5MDk2Zjc1YTJlYTRkYTU4ODQuLjliYTQ5
OWQ4MTk4MmExMmE5ZjNhMjVmMTNkZjRjNmYwZjZlMjA3ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtcmVhZG9ubHktYXV0b3Njcm9sbC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtcmVhZG9ubHktYXV0b3Njcm9sbC5odG1sCkBAIC0zOCw3
ICszOCw3IEBACiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvaGVhZD4KICAgICA8Ym9keSBvbmxv
YWQ9InRlc3QoKSI+Ci0gICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9aHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MzQiPmJ1ZyAxMTUzNDwvYT4uPC9wPgorICAgICAg
ICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTUzNCI+YnVnIDExNTM0PC9hPi48L3A+CiAgICAgICAgIDxwPlJlYWRvbmx5IHRleHQg
ZmllbGRzIGRvbid0IHNjcm9sbCB3aGVuIHNlbGVjdGluZyBjb250ZW50LjwvcD4KICAgICAgICAg
PGlucHV0IGlkPSJ0ZiIgcmVhZG9ubHkgdmFsdWU9ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
Ij48L2lucHV0PgogICAgICAgICA8ZGl2IGlkPSJyZXMiPjwvZGl2Pgo=
</data>
<flag name="review"
          id="292858"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>