<?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>198477</bug_id>
          
          <creation_ts>2019-06-03 00:53:26 -0700</creation_ts>
          <short_desc>[JSC] JSObject::attemptToInterceptPutByIndexOnHole should use getPrototype instead of getPrototypeDirect</short_desc>
          <delta_ts>2019-06-04 15:08:53 -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>JavaScriptCore</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1541189</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-03 00:53:26 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541209</commentid>
    <comment_count>1</comment_count>
      <attachid>371184</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-03 02:59:42 -0700</bug_when>
    <thetext>Created attachment 371184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541210</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-03 03:00:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/51299504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541254</commentid>
    <comment_count>3</comment_count>
      <attachid>371184</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-03 09:54:00 -0700</bug_when>
    <thetext>Comment on attachment 371184
Patch

Why? Won&apos;t this lead to use calling getPrototypeOf twice on proxy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541257</commentid>
    <comment_count>4</comment_count>
      <attachid>371184</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-03 10:06:40 -0700</bug_when>
    <thetext>Comment on attachment 371184
Patch

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

Otherwise, as the test described (without this patch, it fails), object[10101010] = xxx; bypasses getPrototype (instead using getPrototypeDirect), which means that this [[Put]] access bypasses JSWindow::getPrototype.

attemptToInterceptPutByIndexOnHoleForPrototype is not a side-effect free check. If put is intercepted, this function performs [[Put]].

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:2747
&gt;          if (current-&gt;type() == ProxyObjectType) {
&gt; +            scope.release();
&gt;              ProxyObject* proxy = jsCast&lt;ProxyObject*&gt;(current);
&gt;              putResult = proxy-&gt;putByIndexCommon(exec, thisValue, i, value, shouldThrow);
&gt;              return true;

For example, Proxy case goes into this path, and we actually performs [[Put]] here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541268</commentid>
    <comment_count>5</comment_count>
      <attachid>371184</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-03 10:57:48 -0700</bug_when>
    <thetext>Comment on attachment 371184
Patch

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541274</commentid>
    <comment_count>6</comment_count>
      <attachid>371184</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-03 11:27:52 -0700</bug_when>
    <thetext>Comment on attachment 371184
Patch

Clearing flags on attachment: 371184

Committed r246040: &lt;https://trac.webkit.org/changeset/246040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541275</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-03 11:27:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541752</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-04 15:08:53 -0700</bug_when>
    <thetext>Committed r246084: &lt;https://trac.webkit.org/changeset/246084&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371184</attachid>
            <date>2019-06-03 02:59:42 -0700</date>
            <delta_ts>2019-06-03 11:27:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198477-20190603025939.patch</filename>
            <type>text/plain</type>
            <size>11821</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NWE1ZTM5NWI3Njc5MjQzMDA0MzZkYmVjOWUxZmVhNjczMmM0YTI4Li45YzY1NjY4ZDBmMmMzYTM3
ZDJiNjNmODZmZmRmNzdiM2ZjNDAyYWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0wNi0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEpTT2JqZWN0OjphdHRlbXB0VG9JbnRlcmNlcHRQdXRCeUluZGV4
T25Ib2xlIHNob3VsZCB1c2UgZ2V0UHJvdG90eXBlIGluc3RlYWQgb2YgZ2V0UHJvdG90eXBlRGly
ZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg0
NzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMjk5NTA0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEpTT2JqZWN0OjphdHRlbXB0VG9JbnRlcmNl
cHRQdXRCeUluZGV4T25Ib2xlIHVzZXMgZ2V0UHJvdG90eXBlRGlyZWN0LCBidXQgaXQgc2hvdWxk
IHVzZSBnZXRQcm90b3R5cGUgdG8KKyAgICAgICAgaGFuZGxlIGdldFByb3RvdHlwZSBtZXRob2Rz
IGluIGRlcml2ZWQgSlNPYmplY3QgY2xhc3NlcyBjb3JyZWN0bHkuCisKKyAgICAgICAgKiBydW50
aW1lL0pTQXJyYXlJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1c2hJbmxpbmUp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6cHV0QnlJbmRleCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjphdHRlbXB0VG9JbnRlcmNl
cHRQdXRCeUluZGV4T25Ib2xlRm9yUHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6
OmF0dGVtcHRUb0ludGVyY2VwdFB1dEJ5SW5kZXhPbkhvbGUpOgorICAgICAgICAoSlNDOjpKU09i
amVjdDo6cHV0QnlJbmRleEJleW9uZFZlY3Rvckxlbmd0aCk6CisKIDIwMTktMDYtMDIgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBDcmFzaCBleHBs
aWNpdGx5IGlmIFN0cnVjdHVyZUlEcyBhcmUgZXhoYXVzdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheUlubGluZXMuaAppbmRleCBhZjcxOGRjMmZmNTg5NGE2OGE0
YTY1OWNjNjY2NDg0ZjgxOWMzOWRlLi5kYmUxYTRlYTRkMTAwMjczODRlMjg0NzQ2N2NhYjk5Yzc0
NjM1YTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJbmxp
bmVzLmgKQEAgLTIxMiw4ICsyMTIsMTAgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpTQXJyYXk6OnB1
c2hJbmxpbmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogICAgIGNhc2UgQXJyYXlX
aXRoU2xvd1B1dEFycmF5U3RvcmFnZTogewogICAgICAgICB1bnNpZ25lZCBvbGRMZW5ndGggPSBs
ZW5ndGgoKTsKICAgICAgICAgYm9vbCBwdXRSZXN1bHQgPSBmYWxzZTsKLSAgICAgICAgaWYgKGF0
dGVtcHRUb0ludGVyY2VwdFB1dEJ5SW5kZXhPbkhvbGUoZXhlYywgb2xkTGVuZ3RoLCB2YWx1ZSwg
dHJ1ZSwgcHV0UmVzdWx0KSkgewotICAgICAgICAgICAgaWYgKCFzY29wZS5leGNlcHRpb24oKSAm
JiBvbGRMZW5ndGggPCAweEZGRkZGRkZGdSkgeworICAgICAgICBib29sIHJlc3VsdCA9IGF0dGVt
cHRUb0ludGVyY2VwdFB1dEJ5SW5kZXhPbkhvbGUoZXhlYywgb2xkTGVuZ3RoLCB2YWx1ZSwgdHJ1
ZSwgcHV0UmVzdWx0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgp
KTsKKyAgICAgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKG9sZExlbmd0aCA8IDB4
RkZGRkZGRkZ1KSB7CiAgICAgICAgICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICAg
ICAgICAgIHNldExlbmd0aChleGVjLCBvbGRMZW5ndGggKyAxLCB0cnVlKTsKICAgICAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBhMGMw
YjIwMjkxZWRkZjIzZTUyNWIxZGVlYWVlMzhhYzhhNThlZTYxLi4xY2I3ZWUwZTA5ZTRiOWNiMDQ4
N2Q3NWNiOTNiZDk0ZWE1NWUyMTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCkBAIC05NDMsMTggKzk0MywyNCBAQCBib29sIEpTT2JqZWN0OjpwdXRCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
CiAgICAgICAgIAogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4mIHZhbHVlU2xvdCA9IHN0
b3JhZ2UtPm1fdmVjdG9yW3Byb3BlcnR5TmFtZV07CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9
IHN0b3JhZ2UtPmxlbmd0aCgpOworCisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICAgICAgCiAgICAgICAgIC8vIFVwZGF0ZSBsZW5ndGggJiBtX251bVZh
bHVlc0luVmVjdG9yIGFzIG5lY2Vzc2FyeS4KICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA+PSBs
ZW5ndGgpIHsKICAgICAgICAgICAgIGJvb2wgcHV0UmVzdWx0ID0gZmFsc2U7Ci0gICAgICAgICAg
ICBpZiAodGhpc09iamVjdC0+YXR0ZW1wdFRvSW50ZXJjZXB0UHV0QnlJbmRleE9uSG9sZShleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdywgcHV0UmVzdWx0KSkKKyAgICAgICAg
ICAgIGJvb2wgcmVzdWx0ID0gdGhpc09iamVjdC0+YXR0ZW1wdFRvSW50ZXJjZXB0UHV0QnlJbmRl
eE9uSG9sZShleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdywgcHV0UmVzdWx0
KTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAg
ICAgICAgIGlmIChyZXN1bHQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHB1dFJlc3VsdDsKICAg
ICAgICAgICAgIGxlbmd0aCA9IHByb3BlcnR5TmFtZSArIDE7CiAgICAgICAgICAgICBzdG9yYWdl
LT5zZXRMZW5ndGgobGVuZ3RoKTsKICAgICAgICAgICAgICsrc3RvcmFnZS0+bV9udW1WYWx1ZXNJ
blZlY3RvcjsKICAgICAgICAgfSBlbHNlIGlmICghdmFsdWVTbG90KSB7CiAgICAgICAgICAgICBi
b29sIHB1dFJlc3VsdCA9IGZhbHNlOwotICAgICAgICAgICAgaWYgKHRoaXNPYmplY3QtPmF0dGVt
cHRUb0ludGVyY2VwdFB1dEJ5SW5kZXhPbkhvbGUoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
c2hvdWxkVGhyb3csIHB1dFJlc3VsdCkpCisgICAgICAgICAgICBib29sIHJlc3VsdCA9IHRoaXNP
YmplY3QtPmF0dGVtcHRUb0ludGVyY2VwdFB1dEJ5SW5kZXhPbkhvbGUoZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3csIHB1dFJlc3VsdCk7CisgICAgICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgICAgICAgICBpZiAocmVzdWx0KQogICAg
ICAgICAgICAgICAgIHJldHVybiBwdXRSZXN1bHQ7CiAgICAgICAgICAgICArK3N0b3JhZ2UtPm1f
bnVtVmFsdWVzSW5WZWN0b3I7CiAgICAgICAgIH0KQEAgLTI3MTYsNiArMjcyMiw4IEBAIHZvaWQg
SlNPYmplY3Q6OmRlYWxsb2NhdGVTcGFyc2VJbmRleE1hcCgpCiBib29sIEpTT2JqZWN0OjphdHRl
bXB0VG9JbnRlcmNlcHRQdXRCeUluZGV4T25Ib2xlRm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSB0aGlzVmFsdWUsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hv
dWxkVGhyb3csIGJvb2wmIHB1dFJlc3VsdCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKwogICAgIGZvciAoSlNP
YmplY3QqIGN1cnJlbnQgPSB0aGlzOyA7KSB7CiAgICAgICAgIC8vIFRoaXMgaGFzIHRoZSBzYW1l
IGJlaGF2aW9yIHdpdGggcmVzcGVjdCB0byBwcm90b3R5cGVzIGFzIEpTT2JqZWN0OjpwdXQoKS4g
SXQgb25seQogICAgICAgICAvLyBhbGxvd3MgYSBwcm90b3R5cGUgdG8gaW50ZXJjZXB0IGEgcHV0
IGlmIChhKSB0aGUgcHJvdG90eXBlIGRlY2xhcmVzIHRoZSBwcm9wZXJ0eQpAQCAtMjcyNiwxOCAr
MjczNCwyMSBAQCBib29sIEpTT2JqZWN0OjphdHRlbXB0VG9JbnRlcmNlcHRQdXRCeUluZGV4T25I
b2xlRm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSgogICAgICAgICBpZiAoc3RvcmFnZSAm
JiBzdG9yYWdlLT5tX3NwYXJzZU1hcCkgewogICAgICAgICAgICAgU3BhcnNlQXJyYXlWYWx1ZU1h
cDo6aXRlcmF0b3IgaXRlciA9IHN0b3JhZ2UtPm1fc3BhcnNlTWFwLT5maW5kKGkpOwogICAgICAg
ICAgICAgaWYgKGl0ZXIgIT0gc3RvcmFnZS0+bV9zcGFyc2VNYXAtPm5vdEZvdW5kKCkgJiYgKGl0
ZXItPnZhbHVlLmF0dHJpYnV0ZXMoKSAmIChQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKSkgeworICAgICAgICAgICAgICAgIHNjb3BlLnJl
bGVhc2UoKTsKICAgICAgICAgICAgICAgICBwdXRSZXN1bHQgPSBpdGVyLT52YWx1ZS5wdXQoZXhl
YywgdGhpc1ZhbHVlLCBzdG9yYWdlLT5tX3NwYXJzZU1hcC5nZXQoKSwgdmFsdWUsIHNob3VsZFRo
cm93KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCiAgICAgICAgIGlmIChjdXJyZW50LT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlKSB7
CisgICAgICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgICAgICBQcm94eU9iamVjdCog
cHJveHkgPSBqc0Nhc3Q8UHJveHlPYmplY3QqPihjdXJyZW50KTsKICAgICAgICAgICAgIHB1dFJl
c3VsdCA9IHByb3h5LT5wdXRCeUluZGV4Q29tbW9uKGV4ZWMsIHRoaXNWYWx1ZSwgaSwgdmFsdWUs
IHNob3VsZFRocm93KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAg
ICAgIAotICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZVZhbHVlID0gY3VycmVudC0+Z2V0UHJvdG90
eXBlRGlyZWN0KHZtKTsKKyAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGVWYWx1ZSA9IGN1cnJlbnQt
PmdldFByb3RvdHlwZSh2bSwgZXhlYyk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGZhbHNlKTsKICAgICAgICAgaWYgKHByb3RvdHlwZVZhbHVlLmlzTnVsbCgpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKQEAgLTI3NDcsMTEgKzI3NTgsMTUgQEAgYm9v
bCBKU09iamVjdDo6YXR0ZW1wdFRvSW50ZXJjZXB0UHV0QnlJbmRleE9uSG9sZUZvclByb3RvdHlw
ZShFeGVjU3RhdGUqIGV4ZWMsIEoKIAogYm9vbCBKU09iamVjdDo6YXR0ZW1wdFRvSW50ZXJjZXB0
UHV0QnlJbmRleE9uSG9sZShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFs
dWUsIGJvb2wgc2hvdWxkVGhyb3csIGJvb2wmIHB1dFJlc3VsdCkKIHsKLSAgICBKU1ZhbHVlIHBy
b3RvdHlwZVZhbHVlID0gZ2V0UHJvdG90eXBlRGlyZWN0KGV4ZWMtPnZtKCkpOworICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworCisgICAgSlNWYWx1ZSBwcm90b3R5cGVWYWx1ZSA9IGdldFByb3RvdHlwZSh2bSwgZXhlYyk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgIGlmIChwcm90b3R5
cGVWYWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIHJldHVy
biBhc09iamVjdChwcm90b3R5cGVWYWx1ZSktPmF0dGVtcHRUb0ludGVyY2VwdFB1dEJ5SW5kZXhP
bkhvbGVGb3JQcm90b3R5cGUoZXhlYywgdGhpcywgaSwgdmFsdWUsIHNob3VsZFRocm93LCBwdXRS
ZXN1bHQpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgYXNPYmplY3QocHJvdG90eXBl
VmFsdWUpLT5hdHRlbXB0VG9JbnRlcmNlcHRQdXRCeUluZGV4T25Ib2xlRm9yUHJvdG90eXBlKGV4
ZWMsIHRoaXMsIGksIHZhbHVlLCBzaG91bGRUaHJvdywgcHV0UmVzdWx0KSk7CiB9CiAKIHRlbXBs
YXRlPEluZGV4aW5nVHlwZSBpbmRleGluZ1NoYXBlPgpAQCAtMjkzNywxMCArMjk1MiwxNiBAQCBi
b29sIEpTT2JqZWN0OjpwdXRCeUluZGV4QmV5b25kVmVjdG9yTGVuZ3RoKEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaSwgSlNWYWx1ZQogICAgIGNhc2UgTm9uQXJyYXlXaXRoU2xvd1B1dEFycmF5
U3RvcmFnZToKICAgICBjYXNlIEFycmF5V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2U6IHsKICAgICAg
ICAgLy8gTm8gb3duIHByb3BlcnR5IHByZXNlbnQgaW4gdGhlIHZlY3RvciwgYnV0IHRoZXJlIG1p
Z2h0IGJlIGluIHRoZSBzcGFyc2UgbWFwIQorICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgICAgIFNwYXJzZUFycmF5VmFsdWVNYXAqIG1hcCA9IGFycmF5
U3RvcmFnZSgpLT5tX3NwYXJzZU1hcC5nZXQoKTsKICAgICAgICAgYm9vbCBwdXRSZXN1bHQgPSBm
YWxzZTsKLSAgICAgICAgaWYgKCEobWFwICYmIG1hcC0+Y29udGFpbnMoaSkpICYmIGF0dGVtcHRU
b0ludGVyY2VwdFB1dEJ5SW5kZXhPbkhvbGUoZXhlYywgaSwgdmFsdWUsIHNob3VsZFRocm93LCBw
dXRSZXN1bHQpKQotICAgICAgICAgICAgcmV0dXJuIHB1dFJlc3VsdDsKKyAgICAgICAgaWYgKCEo
bWFwICYmIG1hcC0+Y29udGFpbnMoaSkpKSB7CisgICAgICAgICAgICBib29sIHJlc3VsdCA9IGF0
dGVtcHRUb0ludGVyY2VwdFB1dEJ5SW5kZXhPbkhvbGUoZXhlYywgaSwgdmFsdWUsIHNob3VsZFRo
cm93LCBwdXRSZXN1bHQpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZmFsc2UpOworICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
cHV0UmVzdWx0OworICAgICAgICB9CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAg
RkFMTFRIUk9VR0g7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzc1NzE0ODFhMmM4ODMxZTFjNTU2OTAxOWQ2
MzVkN2NmZDFiMzI4NS4uNzJjOTIyMWExNDIxYzg5YWM5ODc1MTA0MjhiNzBmM2NiOGM1MTA3OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA2LTAzICBZdXN1a2UgU3V6dWtpICA8eXN1enVr
aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gSlNPYmplY3Q6OmF0dGVtcHRUb0ludGVyY2Vw
dFB1dEJ5SW5kZXhPbkhvbGUgc2hvdWxkIHVzZSBnZXRQcm90b3R5cGUgaW5zdGVhZCBvZiBnZXRQ
cm90b3R5cGVEaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5ODQ3NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTEyOTk1MDQ+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIHRoYXQgSlNX
aW5kb3c6OmdldFByb3RvdHlwZSBpcyB1c2VkLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mtb2JqZWN0LWdldFByb3RvdHlwZU9mLWluLXB1dC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJh
bWUtYWNjZXNzLW9iamVjdC1nZXRQcm90b3R5cGVPZi1pbi1wdXQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZv
ci1vYmplY3QtZ2V0UHJvdG90eXBlT2YtaW4tcHV0LXRlc3QuaHRtbDogQWRkZWQuCisKIDIwMTkt
MDYtMDEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
W0FzeW5jIG92ZXJmbG93IHNjcm9sbF0gRmxhc2hpbmcgY29udGVudCB3aGVuIHNjcm9sbGluZyBh
c3luYyBvdmVyZmxvdyB3aXRoIGEgbmVnYXRpdmUgei1pbmRleCBjaGlsZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mtb2JqZWN0
LWdldFByb3RvdHlwZU9mLWluLXB1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1vYmplY3QtZ2V0UHJvdG90eXBlT2YtaW4t
cHV0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDViY2ExY2YzYTMyZTI4Y2FhYzAyYjNhNWY3
Y2ZjMTgwMzU0YWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mtb2JqZWN0LWdldFByb3RvdHlwZU9mLWluLXB1dC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUaGlzIHRlc3RzIHRoYXQgeW91IGNhbid0IGdl
dCB0aGUgcHJvdG90eXBlIG9mIHRoZSB3aW5kb3cgZHVyaW5nIFtbUHV0XV0gb3BlcmF0aW9uLgor
CitQQVNTOiBzdWNjZXNzZnVsbHlQYXJzZWQgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3Mtb2JqZWN0LWdldFByb3RvdHlwZU9mLWluLXB1dC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mtb2JqZWN0
LWdldFByb3RvdHlwZU9mLWluLXB1dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZmUxMzU0NjBkMmJmNmM5
YjY3YTJlMTM3M2E0MGUzYjFjNzYzNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1vYmplY3QtZ2V0UHJvdG90eXBl
T2YtaW4tcHV0Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWFjY2Vzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAg
Ly8gU2V0IHVwIGxpc3RlbmVyIGZvciBtZXNzYWdlIGZyb20gaWZyYW1lCisgICAgICAgIGFkZEV2
ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50LmRhdGEgPT0gImZpbmlzaGVkTG9hZCIpCisgICAgICAgICAgICAgICAgZG9UZXN0KCk7
CisgICAgICAgIH0sIGZhbHNlKTsKKworCisgICAgICAgIGRvVGVzdCA9IGZ1bmN0aW9uKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgdGFyZ2V0V2luZG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpLmNvbnRlbnRXaW5kb3c7CisgICAgICAgICAgICB2YXIgYXJyYXkgPSBbXTsK
KyAgICAgICAgICAgIGFycmF5Ll9fcHJvdG9fXy5fX3Byb3RvX18gPSB0YXJnZXRXaW5kb3c7Cisg
ICAgICAgICAgICBhcnJheVswXSA9IDExLjExOworICAgICAgICAgICAgYXJyYXlbMl0gPSAyMi4y
MjsKKyAgICAgICAgICAgIGFycmF5WzEwMTAxMDEwXSA9IHsKKyAgICAgICAgICAgICAgICB0b1N0
cmluZygpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgidG9TdHJpbmcgaXMgY2Fs
bGVkIGJ5IDEwMTAxMDEwIHNldHRlciIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICBhcnJheVsiY29jb2EiXSA9IHsKKyAgICAgICAgICAgICAgICB0b1N0
cmluZygpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgidG9TdHJpbmcgaXMgY2Fs
bGVkIGJ5IGNvY29hIHNldHRlciIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisgICAgPGRpdj5UaGlzIHRlc3RzIHRoYXQgeW91IGNhbid0IGdldCB0
aGUgcHJvdG90eXBlIG9mIHRoZSB3aW5kb3cgZHVyaW5nIFtbUHV0XV0gb3BlcmF0aW9uLjwvZGl2
PgorICAgIDxpZnJhbWUgaWQ9InRhcmdldCIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2Vj
dXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3Itb2JqZWN0LWdldFByb3RvdHlw
ZU9mLWluLXB1dC10ZXN0Lmh0bWwiPjwvaWZyYW1lPgorICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwv
cHJlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3Itb2JqZWN0
LWdldFByb3RvdHlwZU9mLWluLXB1dC10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLW9iamVjdC1nZXRQcm90
b3R5cGVPZi1pbi1wdXQtdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkNmY4MjE3ZDIyMDgzZjgwZGNj
MmY4Y2FjZmJjMTU2MjE1YTJiMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLW9iamVjdC1n
ZXRQcm90b3R5cGVPZi1pbi1wdXQtdGVzdC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgor
PGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgb25sb2FkID0gZnVuY3Rpb24oKQorICAgICAg
ICB7CisgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwg
MTAxMDEwMTAsIHsKKyAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2KSB7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAnYScgKyB2OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5
cGUsICJjb2NvYSIsIHsKKyAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2KSB7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAnYScgKyB2OworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgcGFyZW50LnBvc3RNZXNzYWdlKCJmaW5pc2hlZExvYWQi
LCAiKiIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICBC
b2R5Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>