<?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>136458</bug_id>
          
          <creation_ts>2014-09-02 10:57:44 -0700</creation_ts>
          <short_desc>Optimize own property GetByVals with rope string subscripts.</short_desc>
          <delta_ts>2014-09-02 15:30:22 -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>528+ (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>Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1032693</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-09-02 10:57:44 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032694</commentid>
    <comment_count>1</comment_count>
      <attachid>237505</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-09-02 10:58:36 -0700</bug_when>
    <thetext>Created attachment 237505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032721</commentid>
    <comment_count>2</comment_count>
      <attachid>237505</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-09-02 12:42:46 -0700</bug_when>
    <thetext>Comment on attachment 237505
Patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGOperations.cpp:300
&gt; +                if (AtomicStringImpl* existingAtomicString = asString(property)-&gt;toExistingAtomicString(exec)) {

This is a clever observation. I wonder if we should build it into JSObject, by providing a (fast?)getOwnProperty() that takes a JSString* argument. That would simplify some of the call sites, and it would encourage folks writing code that used JSString* to do the right thing by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032759</commentid>
    <comment_count>3</comment_count>
      <attachid>237505</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-09-02 15:30:20 -0700</bug_when>
    <thetext>Comment on attachment 237505
Patch

Clearing flags on attachment: 237505

Committed r173188: &lt;http://trac.webkit.org/changeset/173188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032760</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-09-02 15:30:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237505</attachid>
            <date>2014-09-02 10:58:36 -0700</date>
            <delta_ts>2014-09-02 15:30:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136458.diff</filename>
            <type>text/plain</type>
            <size>12401</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE0ZDUxZTYuLjcyZTI4NzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE0LTA5LTAyICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBvd24gcHJvcGVydHkgR2V0
QnlWYWxzIHdpdGggcm9wZSBzdHJpbmcgc3Vic2NyaXB0cy4KKyAgICAgICAgPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzEzNjQ1OD4KKworICAgICAgICBGb3Igc2ltcGxlIEpTT2JqZWN0cyB0aGF0IGRv
bid0IG92ZXJyaWRlIGdldE93blByb3BlcnR5U2xvdCB0byBpbXBsZW1lbnQKKyAgICAgICAgY3Vz
dG9tIHByb3BlcnRpZXMsIHdlIGhhdmUgYSBmYXN0IHBhdGggdGhhdCBncmFicyBkaXJlY3RseSBh
dCB0aGUgb2JqZWN0CisgICAgICAgIHByb3BlcnR5IHN0b3JhZ2UuCisKKyAgICAgICAgTWFrZSB0
aGlzIGZhc3QgcGF0aCBldmVuIGZhc3RlciB3aGVuIHRoZSBwcm9wZXJ0eSBuYW1lIGlzIGFuIHVu
cmVzb2x2ZWQKKyAgICAgICAgcm9wZSBzdHJpbmcgYnkgdXNpbmcgSlNTdHJpbmc6OnRvRXhpc3Rp
bmdBdG9taWNTdHJpbmcoKS4gVGhpcyBpcyBmYXN0ZXIKKyAgICAgICAgYmVjYXVzZSBpdCBhdm9p
ZHMgYWxsb2NhdGluZyBhIG5ldyBTdHJpbmdJbXBsIGlmIHRoZSBzdHJpbmcgaXMgYWxyZWFkeQor
ICAgICAgICBhIGtub3duIElkZW50aWZpZXIsIHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gYmUgdGhl
IGNhc2UgaWYgaXQncyBwcmVzZW50CisgICAgICAgIGFzIGFuIG93biBwcm9wZXJ0eSBvbiB0aGUg
b2JqZWN0LikKKworICAgICAgICB+MTAlIHNwZWVkLXVwIG9uIERyb21hZW8vZG9tLWF0dHIuaHRt
bAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGZn
L0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKEpTQzo6Z2V0QnlWYWwpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNw
cDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEJ5VmFsKToKKworICAgICAgICAgICAgV2hlbiB1
c2luZyB0aGUgZmFzdEdldE93blByb3BlcnR5KCkgb3B0aW1pemF0aW9uLCBnZXQgdGhlIFN0cmlu
ZworICAgICAgICAgICAgb3V0IG9mIEpTU3RyaW5nIGJ5IHVzaW5nIHRvRXhpc3RpbmdBdG9taWNT
dHJpbmcoKS4gVGhpcyBhdm9pZHMKKyAgICAgICAgICAgIFN0cmluZ0ltcGwgYWxsb2NhdGlvbiBh
bmQgbGV0cyB1cyBieXBhc3MgdGhlIFByb3BlcnR5VGFibGUgbG9va3VwCisgICAgICAgICAgICBl
bnRpcmVseSBpZiBubyBBdG9taWNTdHJpbmcgaXMgZm91bmQuCisKKyAgICAgICAgKiBydW50aW1l
L0pTQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpKU0NlbGw6OmZhc3RHZXRPd25Qcm9wZXJ0eSk6CisKKyAgICAgICAgICAgIE1ha2UgZmFz
dEdldE93blByb3BlcnR5KCkgdGFrZSBhIFByb3BlcnR5TmFtZSBpbnN0ZWFkIG9mIGEgU3RyaW5n
LgorICAgICAgICAgICAgVGhpcyBhdm9pZHMgY2h1cm5pbmcgdGhlIHJlZiBjb3VudCwgc2luY2Ug
d2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUKKyAgICAgICAgICAgIGEgdGVtcG9yYXJ5IHdyYXBwZXIg
YXJvdW5kIHRoZSBBdG9taWNTdHJpbmdJbXBsKiBmb3VuZCBpbiBHZXRCeVZhbC4KKworICAgICAg
ICAqIHJ1bnRpbWUvUHJvcGVydHlOYW1lLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZTo6
UHJvcGVydHlOYW1lKToKKworICAgICAgICAgICAgQWRkIGNvbnN0cnVjdG9yOiBQcm9wZXJ0eU5h
bWUoQXRvbWljU3RyaW5nSW1wbCopCisKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5TWFwSGFz
aFRhYmxlLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5VGFibGU6OmdldCk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5VGFibGU6OmZpbmRXaXRoU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmdldCk6CisKKyAgICAgICAgICAgIFJlbW92ZSBj
b2RlIGZvciBxdWVyeWluZyBhIFByb3BlcnR5VGFibGUgd2l0aCBhbiB1bmhhc2hlZCBzdHJpbmcg
a2V5CisgICAgICAgICAgICBzaW5jZSB0aGUgb25seSBjbGllbnQgaXMgbm93IGdvbmUuCisKIDIw
MTQtMDgtMjYgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgUmV0YWluUHRyOjphdXRvcmVsZWFzZSBpbiBzb21lIHBsYWNlcyB3aGVyZSBpdCBzZWVtcyBh
cHByb3ByaWF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAK
aW5kZXggMDc4NDdlODcuLjRkOTg0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcApAQCAtMjk3LDggKzI5NywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZQogICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LmlzU3RyaW5nKCkpIHsKICAgICAgICAg
ICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0gKmJhc2UtPnN0cnVjdHVyZSh2bSk7CiAgICAgICAg
ICAgICBpZiAoSlNDZWxsOjpjYW5Vc2VGYXN0R2V0T3duUHJvcGVydHkoc3RydWN0dXJlKSkgewot
ICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHJlc3VsdCA9IGJhc2UtPmZhc3RHZXRPd25Qcm9w
ZXJ0eSh2bSwgc3RydWN0dXJlLCBhc1N0cmluZyhwcm9wZXJ0eSktPnZhbHVlKGV4ZWMpKSkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworICAgICAg
ICAgICAgICAgIGlmIChBdG9taWNTdHJpbmdJbXBsKiBleGlzdGluZ0F0b21pY1N0cmluZyA9IGFz
U3RyaW5nKHByb3BlcnR5KS0+dG9FeGlzdGluZ0F0b21pY1N0cmluZyhleGVjKSkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBiYXNlLT5mYXN0R2V0T3duUHJvcGVy
dHkodm0sIHN0cnVjdHVyZSwgZXhpc3RpbmdBdG9taWNTdHJpbmcpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTMyNyw4ICszMjksMTAgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbENlbGwoRXhlY1N0
YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UKICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LmlzU3RyaW5n
KCkpIHsKICAgICAgICAgU3RydWN0dXJlJiBzdHJ1Y3R1cmUgPSAqYmFzZS0+c3RydWN0dXJlKHZt
KTsKICAgICAgICAgaWYgKEpTQ2VsbDo6Y2FuVXNlRmFzdEdldE93blByb3BlcnR5KHN0cnVjdHVy
ZSkpIHsKLSAgICAgICAgICAgIGlmIChKU1ZhbHVlIHJlc3VsdCA9IGJhc2UtPmZhc3RHZXRPd25Q
cm9wZXJ0eSh2bSwgc3RydWN0dXJlLCBhc1N0cmluZyhwcm9wZXJ0eSktPnZhbHVlKGV4ZWMpKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgICAg
ICAgICBpZiAoQXRvbWljU3RyaW5nSW1wbCogZXhpc3RpbmdBdG9taWNTdHJpbmcgPSBhc1N0cmlu
Zyhwcm9wZXJ0eSktPnRvRXhpc3RpbmdBdG9taWNTdHJpbmcoZXhlYykpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBiYXNlLT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0
cnVjdHVyZSwgZXhpc3RpbmdBdG9taWNTdHJpbmcpKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4
IDQ5ZmEzNmIuLjdjMmIwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcApAQCAtMTQyMyw4ICsxNDIzLDEwIEBAIHN0YXRpYyBKU1ZhbHVlIGdldEJ5VmFs
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBS
CiAgICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgICAgIFN0cnVjdHVyZSYgc3RydWN0
dXJlID0gKmJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKEpT
Q2VsbDo6Y2FuVXNlRmFzdEdldE93blByb3BlcnR5KHN0cnVjdHVyZSkpIHsKLSAgICAgICAgICAg
IGlmIChKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5hc0NlbGwoKS0+ZmFzdEdldE93blByb3Bl
cnR5KHZtLCBzdHJ1Y3R1cmUsIGFzU3RyaW5nKHN1YnNjcmlwdCktPnZhbHVlKGV4ZWMpKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgaWYgKEF0b21pY1N0cmlu
Z0ltcGwqIGV4aXN0aW5nQXRvbWljU3RyaW5nID0gYXNTdHJpbmcoc3Vic2NyaXB0KS0+dG9FeGlz
dGluZ0F0b21pY1N0cmluZyhleGVjKSkgeworICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHJl
c3VsdCA9IGJhc2VWYWx1ZS5hc0NlbGwoKS0+ZmFzdEdldE93blByb3BlcnR5KHZtLCBzdHJ1Y3R1
cmUsIGV4aXN0aW5nQXRvbWljU3RyaW5nKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggOTQ5ZjYxZi4uMmY3MzBm
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
CkBAIC03MjUsOCArNzI1LDEwIEBAIGlubGluZSBKU1ZhbHVlIGdldEJ5VmFsKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0KQogICAgICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgICAgICBTdHJ1Y3R1cmUmIHN0cnVjdHVyZSA9ICpiYXNlVmFs
dWUuYXNDZWxsKCktPnN0cnVjdHVyZSh2bSk7CiAgICAgICAgIGlmIChKU0NlbGw6OmNhblVzZUZh
c3RHZXRPd25Qcm9wZXJ0eShzdHJ1Y3R1cmUpKSB7Ci0gICAgICAgICAgICBpZiAoSlNWYWx1ZSBy
ZXN1bHQgPSBiYXNlVmFsdWUuYXNDZWxsKCktPmZhc3RHZXRPd25Qcm9wZXJ0eSh2bSwgc3RydWN0
dXJlLCBhc1N0cmluZyhzdWJzY3JpcHQpLT52YWx1ZShleGVjKSkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIGlmIChBdG9taWNTdHJpbmdJbXBsKiBleGlzdGlu
Z0F0b21pY1N0cmluZyA9IGFzU3RyaW5nKHN1YnNjcmlwdCktPnRvRXhpc3RpbmdBdG9taWNTdHJp
bmcoZXhlYykpIHsKKyAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBiYXNlVmFs
dWUuYXNDZWxsKCktPmZhc3RHZXRPd25Qcm9wZXJ0eSh2bSwgc3RydWN0dXJlLCBleGlzdGluZ0F0
b21pY1N0cmluZykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCmluZGV4IDUyZDM5ZTAuLmM2MDM3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbC5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFz
cyBDb3B5VmlzaXRvcjsKIGNsYXNzIEV4ZWNTdGF0ZTsKK2NsYXNzIElkZW50aWZpZXI7CiBjbGFz
cyBKU0FycmF5QnVmZmVyVmlldzsKIGNsYXNzIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0OwogY2xhc3Mg
SlNHbG9iYWxPYmplY3Q7CkBAIC0xNDEsNyArMTQyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNa
YXBwZWQoKSBjb25zdCB7IHJldHVybiAhKnJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90KiBjb25z
dCo+KHRoaXMpOyB9CiAKICAgICBzdGF0aWMgYm9vbCBjYW5Vc2VGYXN0R2V0T3duUHJvcGVydHko
Y29uc3QgU3RydWN0dXJlJik7Ci0gICAgSlNWYWx1ZSBmYXN0R2V0T3duUHJvcGVydHkoVk0mLCBT
dHJ1Y3R1cmUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBKU1ZhbHVlIGZhc3RHZXRPd25Qcm9wZXJ0
eShWTSYsIFN0cnVjdHVyZSYsIFByb3BlcnR5TmFtZSk7CiAKICAgICBlbnVtIEdDRGF0YSA6IHVp
bnQ4X3QgewogICAgICAgICBNYXJrZWQgPSAwLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsSW5saW5lcy5oCmluZGV4IDg1YTQzMWUuLjhhOThjMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKQEAgLTIwOSwxNiArMjA5
LDEwIEBAIGlubGluZSBib29sIEpTQ2VsbDo6aW5oZXJpdHMoY29uc3QgQ2xhc3NJbmZvKiBpbmZv
KSBjb25zdAogICAgIHJldHVybiBjbGFzc0luZm8oKS0+aXNTdWJDbGFzc09mKGluZm8pOwogfQog
Ci0vLyBGYXN0IGNhbGwgdG8gZ2V0IGEgcHJvcGVydHkgd2hlcmUgd2UgbWF5IG5vdCB5ZXQgaGF2
ZSBjb252ZXJ0ZWQgdGhlIHN0cmluZyB0byBhbgotLy8gaWRlbnRpZmllci4gVGhlIGZpcnN0IHRp
bWUgd2UgcGVyZm9ybSBhIHByb3BlcnR5IGFjY2VzcyB3aXRoIGEgZ2l2ZW4gc3RyaW5nLCB0cnkK
LS8vIHBlcmZvcm1pbmcgdGhlIHByb3BlcnR5IG1hcCBsb29rdXAgd2l0aG91dCBmb3JtaW5nIGFu
IGlkZW50aWZpZXIuIFdlIGRldGVjdCB0aGlzCi0vLyBjYXNlIGJ5IGNoZWNraW5nIHdoZXRoZXIg
dGhlIGhhc2ggaGFzIHlldCBiZWVuIHNldCBmb3IgdGhpcyBzdHJpbmcuCi1BTFdBWVNfSU5MSU5F
IEpTVmFsdWUgSlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHkoVk0mIHZtLCBTdHJ1Y3R1cmUmIHN0
cnVjdHVyZSwgY29uc3QgU3RyaW5nJiBuYW1lKQorQUxXQVlTX0lOTElORSBKU1ZhbHVlIEpTQ2Vs
bDo6ZmFzdEdldE93blByb3BlcnR5KFZNJiB2bSwgU3RydWN0dXJlJiBzdHJ1Y3R1cmUsIFByb3Bl
cnR5TmFtZSBuYW1lKQogewogICAgIEFTU0VSVChjYW5Vc2VGYXN0R2V0T3duUHJvcGVydHkoc3Ry
dWN0dXJlKSk7Ci0gICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gbmFtZS5pbXBsKCktPmhhc0hh
c2goKQotICAgICAgICA/IHN0cnVjdHVyZS5nZXQodm0sIElkZW50aWZpZXIoJnZtLCBuYW1lKSkK
LSAgICAgICAgOiBzdHJ1Y3R1cmUuZ2V0KHZtLCBuYW1lKTsKKyAgICBQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQgPSBzdHJ1Y3R1cmUuZ2V0KHZtLCBuYW1lKTsKICAgICBpZiAob2Zmc2V0ICE9IGludmFs
aWRPZmZzZXQpCiAgICAgICAgIHJldHVybiBhc09iamVjdCh0aGlzKS0+bG9jYXRpb25Gb3JPZmZz
ZXQob2Zmc2V0KS0+Z2V0KCk7CiAgICAgcmV0dXJuIEpTVmFsdWUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oCmluZGV4IDkw
ODI0NjguLjFkNjUyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlNYXBIYXNoVGFibGUuaApAQCAtMTcxLDcgKzE3MSw2IEBAIHB1YmxpYzoKIAog
ICAgIC8vIEZpbmQgYSB2YWx1ZSBpbiB0aGUgdGFibGUuCiAgICAgZmluZF9pdGVyYXRvciBmaW5k
KGNvbnN0IEtleVR5cGUmKTsKLSAgICBmaW5kX2l0ZXJhdG9yIGZpbmRXaXRoU3RyaW5nKGNvbnN0
IEtleVR5cGUmKTsKICAgICBWYWx1ZVR5cGUqIGdldChjb25zdCBLZXlUeXBlJik7CiAgICAgLy8g
QWRkIGEgdmFsdWUgdG8gdGhlIHRhYmxlCiAgICAgZW51bSBFZmZlY3RPblByb3BlcnR5T2Zmc2V0
IHsgUHJvcGVydHlPZmZzZXRNYXlDaGFuZ2UsIFByb3BlcnR5T2Zmc2V0TXVzdE5vdENoYW5nZSB9
OwpAQCAtMzQ5LDM1ICszNDgsNiBAQCBpbmxpbmUgUHJvcGVydHlUYWJsZTo6VmFsdWVUeXBlKiBQ
cm9wZXJ0eVRhYmxlOjpnZXQoY29uc3QgS2V5VHlwZSYga2V5KQogICAgIH0KIH0KIAotaW5saW5l
IFByb3BlcnR5VGFibGU6OmZpbmRfaXRlcmF0b3IgUHJvcGVydHlUYWJsZTo6ZmluZFdpdGhTdHJp
bmcoY29uc3QgS2V5VHlwZSYga2V5KQotewotICAgIEFTU0VSVChrZXkpOwotICAgIEFTU0VSVCgh
a2V5LT5pc0F0b21pYygpICYmICFrZXktPmhhc0hhc2goKSk7Ci0gICAgdW5zaWduZWQgaGFzaCA9
IGtleS0+aGFzaCgpOwotICAgIHVuc2lnbmVkIHN0ZXAgPSAwOwotCi0jaWYgRFVNUF9QUk9QRVJU
WU1BUF9TVEFUUwotICAgICsrcHJvcGVydHlNYXBIYXNoVGFibGVTdGF0cy0+bnVtTG9va3VwczsK
LSNlbmRpZgotCi0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgdW5zaWduZWQgZW50cnlJbmRl
eCA9IG1faW5kZXhbaGFzaCAmIG1faW5kZXhNYXNrXTsKLSAgICAgICAgaWYgKGVudHJ5SW5kZXgg
PT0gRW1wdHlFbnRyeUluZGV4KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKChW
YWx1ZVR5cGUqKTAsIGhhc2ggJiBtX2luZGV4TWFzayk7Ci0gICAgICAgIGNvbnN0IEtleVR5cGUm
IGtleUluTWFwID0gdGFibGUoKVtlbnRyeUluZGV4IC0gMV0ua2V5OwotICAgICAgICBpZiAoZXF1
YWwoa2V5LCBrZXlJbk1hcCkgJiYga2V5SW5NYXAtPmlzQXRvbWljKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjptYWtlX3BhaXIoJnRhYmxlKClbZW50cnlJbmRleCAtIDFdLCBoYXNoICYgbV9p
bmRleE1hc2spOwotCi0jaWYgRFVNUF9QUk9QRVJUWU1BUF9TVEFUUwotICAgICAgICArK3Byb3Bl
cnR5TWFwSGFzaFRhYmxlU3RhdHMtPm51bUxvb2t1cFByb2Jpbmc7Ci0jZW5kaWYKLQotICAgICAg
ICBpZiAoIXN0ZXApCi0gICAgICAgICAgICBzdGVwID0gV1RGOjpkb3VibGVIYXNoKGtleS0+ZXhp
c3RpbmdIYXNoKCkpIHwgMTsKLSAgICAgICAgaGFzaCArPSBzdGVwOwotICAgIH0KLX0KLQogaW5s
aW5lIHN0ZDo6cGFpcjxQcm9wZXJ0eVRhYmxlOjpmaW5kX2l0ZXJhdG9yLCBib29sPiBQcm9wZXJ0
eVRhYmxlOjphZGQoY29uc3QgVmFsdWVUeXBlJiBlbnRyeSwgUHJvcGVydHlPZmZzZXQmIG9mZnNl
dCwgRWZmZWN0T25Qcm9wZXJ0eU9mZnNldCBvZmZzZXRFZmZlY3QpCiB7CiAgICAgLy8gTG9vayBm
b3IgYSB2YWx1ZSB3aXRoIGEgbWF0Y2hpbmcga2V5IGFscmVhZHkgaW4gdGhlIGFycmF5LgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWUuaAppbmRleCA5ZTk5ZjUz
Li5kNzM5Y2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eU5hbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5h
bWUuaApAQCAtNzgsMTIgKzc4LDE3IEBAIEFMV0FZU19JTkxJTkUgdWludDMyX3QgdG9VSW50MzJG
cm9tU3RyaW5nSW1wbChTdHJpbmdJbXBsKiBpbXBsKQogCiBjbGFzcyBQcm9wZXJ0eU5hbWUgewog
cHVibGljOgotICAgIFByb3BlcnR5TmFtZShjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
Ci0gICAgICAgIDogbV9pbXBsKHN0YXRpY19jYXN0PEF0b21pY1N0cmluZ0ltcGwqPihwcm9wZXJ0
eU5hbWUuaW1wbCgpKSkKKyAgICBQcm9wZXJ0eU5hbWUoQXRvbWljU3RyaW5nSW1wbCogcHJvcGVy
dHlOYW1lKQorICAgICAgICA6IG1faW1wbChwcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBB
U1NFUlQoIW1faW1wbCB8fCBtX2ltcGwtPmlzQXRvbWljKCkpOwogICAgIH0KIAorICAgIFByb3Bl
cnR5TmFtZShjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCisgICAgICAgIDogUHJvcGVy
dHlOYW1lKHN0YXRpY19jYXN0PEF0b21pY1N0cmluZ0ltcGwqPihwcm9wZXJ0eU5hbWUuaW1wbCgp
KSkKKyAgICB7CisgICAgfQorCiAgICAgUHJvcGVydHlOYW1lKGNvbnN0IFByaXZhdGVOYW1lJiBw
cm9wZXJ0eU5hbWUpCiAgICAgICAgIDogbV9pbXBsKHN0YXRpY19jYXN0PEF0b21pY1N0cmluZ0lt
cGwqPihwcm9wZXJ0eU5hbWUudWlkKCkpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggZmM5ODc4Yy4uOTRlNjYzMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTI2MCw3ICsyNjAsNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBtYXNxdWVyYWRlc0FzVW5kZWZpbmVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKIAogICAgIFByb3BlcnR5T2Zmc2V0IGdldChWTSYsIFByb3BlcnR5TmFt
ZSk7Ci0gICAgUHJvcGVydHlPZmZzZXQgZ2V0KFZNJiwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUp
OwogICAgIFByb3BlcnR5T2Zmc2V0IGdldChWTSYsIFByb3BlcnR5TmFtZSwgdW5zaWduZWQmIGF0
dHJpYnV0ZXMpOwogCiAgICAgUHJvcGVydHlPZmZzZXQgZ2V0Q29uY3VycmVudGx5KFZNJiwgU3Ry
aW5nSW1wbCogdWlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUlubGluZXMuaAppbmRleCBmZmI3NTc3Li45ODIwOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCkBAIC04NSwxOSArODUsNiBA
QCBBTFdBWVNfSU5MSU5FIFByb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6Z2V0KFZNJiB2bSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkKICAgICBQcm9wZXJ0eU1hcEVudHJ5KiBlbnRyeSA9IHBy
b3BlcnR5VGFibGUtPmdldChwcm9wZXJ0eU5hbWUudWlkKCkpOwogICAgIHJldHVybiBlbnRyeSA/
IGVudHJ5LT5vZmZzZXQgOiBpbnZhbGlkT2Zmc2V0OwogfQotCi1BTFdBWVNfSU5MSU5FIFByb3Bl
cnR5T2Zmc2V0IFN0cnVjdHVyZTo6Z2V0KFZNJiB2bSwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUp
Ci17Ci0gICAgQVNTRVJUKCFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOwotICAgIEFTU0VSVChzdHJ1
Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKTsKLSAgICBQcm9wZXJ0eVRhYmxlKiBwcm9w
ZXJ0eVRhYmxlOwotICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeSh2bSwgcHJv
cGVydHlUYWJsZSk7Ci0gICAgaWYgKCFwcm9wZXJ0eVRhYmxlKQotICAgICAgICByZXR1cm4gaW52
YWxpZE9mZnNldDsKLQotICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5ID0gcHJvcGVydHlUYWJs
ZS0+ZmluZFdpdGhTdHJpbmcobmFtZS5pbXBsKCkpLmZpcnN0OwotICAgIHJldHVybiBlbnRyeSA/
IGVudHJ5LT5vZmZzZXQgOiBpbnZhbGlkT2Zmc2V0OwotfQogICAgIAogQUxXQVlTX0lOTElORSBQ
cm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChWTSYgdm0sIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsIHVuc2lnbmVkJiBhdHRyaWJ1dGVzKQogewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>