<?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>72542</bug_id>
          
          <creation_ts>2011-11-16 13:47:57 -0800</creation_ts>
          <short_desc>DFG global variable CSE mishandles the cross-global-object inlining corner case</short_desc>
          <delta_ts>2011-11-16 15:22:45 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504215</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-16 13:47:57 -0800</bug_when>
    <thetext>The DFG GetGlobalVar is smart enough to know which global object to read from when it is used from inlined code, if the inlinee comes from a different global object than the inline caller.  But CSE is not smart enough to handle this, and may replace a GetGlobalVar from one global object with a GetGlobalVar from another global object, if the inline caller and inlinee (or two different inlinees) both did GetGlobalVar on the same identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504226</commentid>
    <comment_count>1</comment_count>
      <attachid>115445</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-16 13:57:08 -0800</bug_when>
    <thetext>Created attachment 115445
the patch

Going to investigate making a test for this in LayoutTests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504305</commentid>
    <comment_count>2</comment_count>
      <attachid>115457</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-16 15:13:34 -0800</bug_when>
    <thetext>Created attachment 115457
the patch

Added a test case, and checked that it indeed does break on ToT but not with my changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504306</commentid>
    <comment_count>3</comment_count>
      <attachid>115457</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-11-16 15:16:25 -0800</bug_when>
    <thetext>Comment on attachment 115457
the patch

r=me

Please copy this to Radar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504308</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-16 15:17:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/10458466&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504312</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-16 15:22:45 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/100514</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115445</attachid>
            <date>2011-11-16 13:57:08 -0800</date>
            <delta_ts>2011-11-16 15:13:34 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>fixglobalvarcse_patch_1.diff</filename>
            <type>text/plain</type>
            <size>4337</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAwNDk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDExLTExLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIGdsb2JhbCB2YXJpYWJsZSBDU0UgbWlzaGFuZGxlcyB0aGUgY3Jvc3MtZ2xvYmFsLW9iamVj
dCBpbmxpbmluZyBjb3JuZXIgY2FzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzI1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgCisgICAgICAgIE1vdmVkIGNvZGUgdG8gZ2V0IHRoZSBnbG9iYWwgb2JqZWN0
IGZvciBhIGNvZGUgb3JpZ2luIGludG8gQ29kZUJsb2NrLCBzbyBpdCBpcworICAgICAgICBtb3Jl
IGJyb2FkbHkgYWNjZXNzaWJsZS4gRml4ZWQgQ1NFIHRvIGNvbXBhcmUgYm90aCB0aGUgdmFyaWFi
bGUgbnVtYmVyLCBhbmQgdGhlCisgICAgICAgIGdsb2JhbCBvYmplY3QsIGJlZm9yZSBkZWNpZGlu
ZyB0byBwZXJmb3JtIGVsaW1pbmF0aW9uLgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
Lmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2xvYmFsT2JqZWN0Rm9yKToKKyAgICAgICAg
KiBkZmcvREZHQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QXNzZW1ibHlI
ZWxwZXJzOjpnbG9iYWxPYmplY3RGb3IpOgorICAgICAgICAqIGRmZy9ERkdQcm9wYWdhdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpQcm9wYWdhdG9yOjpnbG9iYWxWYXJMb2FkRWxpbWluYXRp
b24pOgorICAgICAgICAoSlNDOjpERkc6OlByb3BhZ2F0b3I6OnBlcmZvcm1Ob2RlQ1NFKToKKwog
MjAxMS0xMS0xNiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIERlLXZpcnR1YWxpemUgRXhlY3V0YWJsZUJhc2U6OmNsZWFyQ29kZVZpcnR1YWwKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9u
IDEwMDQ5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAko
d29ya2luZyBjb3B5KQpAQCAtODIxLDYgKzgyMSwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgfQogCiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBt
X2dsb2JhbE9iamVjdC5nZXQoKTsgfQorICAgICAgICAKKyAgICAgICAgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdEZvcihDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGdsb2JhbE9iamVjdCgpOworICAgICAgICAgICAgLy8gRklYTUU6IGlmIHdlIGV2ZXIg
aW5saW5lIGJhc2VkIG9uIGV4ZWN1dGFibGUgbm90IGZ1bmN0aW9uLCB0aGlzIGNvZGUgd2lsbCBu
ZWVkIHRvIGNoYW5nZS4KKyAgICAgICAgICAgIHJldHVybiBjb2RlT3JpZ2luLmlubGluZUNhbGxG
cmFtZS0+Y2FsbGVlLT5zY29wZSgpLT5nbG9iYWxPYmplY3QuZ2V0KCk7CisgICAgICAgIH0KIAog
ICAgICAgICAvLyBKdW1wIFRhYmxlcwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fzc2VtYmx5SGVscGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgJKHJldmlzaW9uIDEwMDQ5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4NCwxMCArMjg0LDcgQEAgcHVibGljOgogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdEZvcihDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgewotICAgICAgICBpZiAoIWNvZGVP
cmlnaW4uaW5saW5lQ2FsbEZyYW1lKQotICAgICAgICAgICAgcmV0dXJuIGNvZGVCbG9jaygpLT5n
bG9iYWxPYmplY3QoKTsKLSAgICAgICAgLy8gRklYTUU6IGlmIHdlIGV2ZXIgaW5saW5lIGJhc2Vk
IG9uIGV4ZWN1dGFibGUgbm90IGZ1bmN0aW9uLCB0aGlzIGNvZGUgd2lsbCBuZWVkIHRvIGNoYW5n
ZS4KLSAgICAgICAgcmV0dXJuIGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWUtPnNj
b3BlKCktPmdsb2JhbE9iamVjdC5nZXQoKTsKKyAgICAgICAgcmV0dXJuIGNvZGVCbG9jaygpLT5n
bG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbik7CiAgICAgfQogICAgIAogICAgIGJvb2wgc3RyaWN0
TW9kZUZvcihDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJKHJldmlzaW9uIDEwMDQ5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4
MSwxOCArOTgxLDE4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBOb05vZGU7CiAgICAgfQog
ICAgIAotICAgIE5vZGVJbmRleCBnbG9iYWxWYXJMb2FkRWxpbWluYXRpb24odW5zaWduZWQgdmFy
TnVtYmVyKQorICAgIE5vZGVJbmRleCBnbG9iYWxWYXJMb2FkRWxpbWluYXRpb24odW5zaWduZWQg
dmFyTnVtYmVyLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAg
Tm9kZUluZGV4IHN0YXJ0ID0gc3RhcnRJbmRleEZvckNoaWxkcmVuKCk7CiAgICAgICAgIGZvciAo
Tm9kZUluZGV4IGluZGV4ID0gbV9jb21waWxlSW5kZXg7IGluZGV4LS0gPiBzdGFydDspIHsKICAg
ICAgICAgICAgIE5vZGUmIG5vZGUgPSBtX2dyYXBoW2luZGV4XTsKICAgICAgICAgICAgIHN3aXRj
aCAobm9kZS5vcCkgewogICAgICAgICAgICAgY2FzZSBHZXRHbG9iYWxWYXI6Ci0gICAgICAgICAg
ICAgICAgaWYgKG5vZGUudmFyTnVtYmVyKCkgPT0gdmFyTnVtYmVyKQorICAgICAgICAgICAgICAg
IGlmIChub2RlLnZhck51bWJlcigpID09IHZhck51bWJlciAmJiBtX2NvZGVCbG9jay0+Z2xvYmFs
T2JqZWN0Rm9yKG5vZGUuY29kZU9yaWdpbikgPT0gZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBjYXNlIFB1dEdsb2JhbFZhcjoKLSAgICAgICAgICAgICAgICBpZiAobm9kZS52YXJOdW1iZXIo
KSA9PSB2YXJOdW1iZXIpCisgICAgICAgICAgICAgICAgaWYgKG5vZGUudmFyTnVtYmVyKCkgPT0g
dmFyTnVtYmVyICYmIG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3Iobm9kZS5jb2RlT3JpZ2lu
KSA9PSBnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmNoaWxk
MSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKQEAgLTEz
MzQsNyArMTMzNCw3IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIEZpbmFsbHkgaGFuZGxlIGhlYXAg
YWNjZXNzZXMuIFRoZXNlIGFyZSBub3QgcXVpdGUgcHVyZSwgYnV0IHdlIGNhbiBzdGlsbAogICAg
ICAgICAvLyBvcHRpbWl6ZSB0aGVtIHByb3ZpZGVkIHRoYXQgc29tZSBzdWJ0bGUgY29uZGl0aW9u
cyBhcmUgbWV0LgogICAgICAgICBjYXNlIEdldEdsb2JhbFZhcjoKLSAgICAgICAgICAgIHNldFJl
cGxhY2VtZW50KGdsb2JhbFZhckxvYWRFbGltaW5hdGlvbihub2RlLnZhck51bWJlcigpKSk7Cisg
ICAgICAgICAgICBzZXRSZXBsYWNlbWVudChnbG9iYWxWYXJMb2FkRWxpbWluYXRpb24obm9kZS52
YXJOdW1iZXIoKSwgbV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihub2RlLmNvZGVPcmlnaW4p
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEdldEJ5
VmFsOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115457</attachid>
            <date>2011-11-16 15:13:34 -0800</date>
            <delta_ts>2011-11-16 15:16:25 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>cseglobvar_patch_1.diff</filename>
            <type>text/plain</type>
            <size>8422</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAwNDk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDExLTExLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIGdsb2JhbCB2YXJpYWJsZSBDU0UgbWlzaGFuZGxlcyB0aGUgY3Jvc3MtZ2xvYmFsLW9iamVj
dCBpbmxpbmluZyBjb3JuZXIgY2FzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzI1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgCisgICAgICAgIE1vdmVkIGNvZGUgdG8gZ2V0IHRoZSBnbG9iYWwgb2JqZWN0
IGZvciBhIGNvZGUgb3JpZ2luIGludG8gQ29kZUJsb2NrLCBzbyBpdCBpcworICAgICAgICBtb3Jl
IGJyb2FkbHkgYWNjZXNzaWJsZS4gRml4ZWQgQ1NFIHRvIGNvbXBhcmUgYm90aCB0aGUgdmFyaWFi
bGUgbnVtYmVyLCBhbmQgdGhlCisgICAgICAgIGdsb2JhbCBvYmplY3QsIGJlZm9yZSBkZWNpZGlu
ZyB0byBwZXJmb3JtIGVsaW1pbmF0aW9uLgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
Lmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2xvYmFsT2JqZWN0Rm9yKToKKyAgICAgICAg
KiBkZmcvREZHQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QXNzZW1ibHlI
ZWxwZXJzOjpnbG9iYWxPYmplY3RGb3IpOgorICAgICAgICAqIGRmZy9ERkdQcm9wYWdhdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpQcm9wYWdhdG9yOjpnbG9iYWxWYXJMb2FkRWxpbWluYXRp
b24pOgorICAgICAgICAoSlNDOjpERkc6OlByb3BhZ2F0b3I6OnBlcmZvcm1Ob2RlQ1NFKToKKwog
MjAxMS0xMS0xNiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIERlLXZpcnR1YWxpemUgRXhlY3V0YWJsZUJhc2U6OmNsZWFyQ29kZVZpcnR1YWwKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9u
IDEwMDQ5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAko
d29ya2luZyBjb3B5KQpAQCAtODIxLDYgKzgyMSwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgfQogCiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBt
X2dsb2JhbE9iamVjdC5nZXQoKTsgfQorICAgICAgICAKKyAgICAgICAgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdEZvcihDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGdsb2JhbE9iamVjdCgpOworICAgICAgICAgICAgLy8gRklYTUU6IGlmIHdlIGV2ZXIg
aW5saW5lIGJhc2VkIG9uIGV4ZWN1dGFibGUgbm90IGZ1bmN0aW9uLCB0aGlzIGNvZGUgd2lsbCBu
ZWVkIHRvIGNoYW5nZS4KKyAgICAgICAgICAgIHJldHVybiBjb2RlT3JpZ2luLmlubGluZUNhbGxG
cmFtZS0+Y2FsbGVlLT5zY29wZSgpLT5nbG9iYWxPYmplY3QuZ2V0KCk7CisgICAgICAgIH0KIAog
ICAgICAgICAvLyBKdW1wIFRhYmxlcwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fzc2VtYmx5SGVscGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgJKHJldmlzaW9uIDEwMDQ5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4NCwxMCArMjg0LDcgQEAgcHVibGljOgogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdEZvcihDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgewotICAgICAgICBpZiAoIWNvZGVP
cmlnaW4uaW5saW5lQ2FsbEZyYW1lKQotICAgICAgICAgICAgcmV0dXJuIGNvZGVCbG9jaygpLT5n
bG9iYWxPYmplY3QoKTsKLSAgICAgICAgLy8gRklYTUU6IGlmIHdlIGV2ZXIgaW5saW5lIGJhc2Vk
IG9uIGV4ZWN1dGFibGUgbm90IGZ1bmN0aW9uLCB0aGlzIGNvZGUgd2lsbCBuZWVkIHRvIGNoYW5n
ZS4KLSAgICAgICAgcmV0dXJuIGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWUtPnNj
b3BlKCktPmdsb2JhbE9iamVjdC5nZXQoKTsKKyAgICAgICAgcmV0dXJuIGNvZGVCbG9jaygpLT5n
bG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbik7CiAgICAgfQogICAgIAogICAgIGJvb2wgc3RyaWN0
TW9kZUZvcihDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJKHJldmlzaW9uIDEwMDQ5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4
MSwxOCArOTgxLDE4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBOb05vZGU7CiAgICAgfQog
ICAgIAotICAgIE5vZGVJbmRleCBnbG9iYWxWYXJMb2FkRWxpbWluYXRpb24odW5zaWduZWQgdmFy
TnVtYmVyKQorICAgIE5vZGVJbmRleCBnbG9iYWxWYXJMb2FkRWxpbWluYXRpb24odW5zaWduZWQg
dmFyTnVtYmVyLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAg
Tm9kZUluZGV4IHN0YXJ0ID0gc3RhcnRJbmRleEZvckNoaWxkcmVuKCk7CiAgICAgICAgIGZvciAo
Tm9kZUluZGV4IGluZGV4ID0gbV9jb21waWxlSW5kZXg7IGluZGV4LS0gPiBzdGFydDspIHsKICAg
ICAgICAgICAgIE5vZGUmIG5vZGUgPSBtX2dyYXBoW2luZGV4XTsKICAgICAgICAgICAgIHN3aXRj
aCAobm9kZS5vcCkgewogICAgICAgICAgICAgY2FzZSBHZXRHbG9iYWxWYXI6Ci0gICAgICAgICAg
ICAgICAgaWYgKG5vZGUudmFyTnVtYmVyKCkgPT0gdmFyTnVtYmVyKQorICAgICAgICAgICAgICAg
IGlmIChub2RlLnZhck51bWJlcigpID09IHZhck51bWJlciAmJiBtX2NvZGVCbG9jay0+Z2xvYmFs
T2JqZWN0Rm9yKG5vZGUuY29kZU9yaWdpbikgPT0gZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBjYXNlIFB1dEdsb2JhbFZhcjoKLSAgICAgICAgICAgICAgICBpZiAobm9kZS52YXJOdW1iZXIo
KSA9PSB2YXJOdW1iZXIpCisgICAgICAgICAgICAgICAgaWYgKG5vZGUudmFyTnVtYmVyKCkgPT0g
dmFyTnVtYmVyICYmIG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3Iobm9kZS5jb2RlT3JpZ2lu
KSA9PSBnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmNoaWxk
MSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKQEAgLTEz
MzQsNyArMTMzNCw3IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIEZpbmFsbHkgaGFuZGxlIGhlYXAg
YWNjZXNzZXMuIFRoZXNlIGFyZSBub3QgcXVpdGUgcHVyZSwgYnV0IHdlIGNhbiBzdGlsbAogICAg
ICAgICAvLyBvcHRpbWl6ZSB0aGVtIHByb3ZpZGVkIHRoYXQgc29tZSBzdWJ0bGUgY29uZGl0aW9u
cyBhcmUgbWV0LgogICAgICAgICBjYXNlIEdldEdsb2JhbFZhcjoKLSAgICAgICAgICAgIHNldFJl
cGxhY2VtZW50KGdsb2JhbFZhckxvYWRFbGltaW5hdGlvbihub2RlLnZhck51bWJlcigpKSk7Cisg
ICAgICAgICAgICBzZXRSZXBsYWNlbWVudChnbG9iYWxWYXJMb2FkRWxpbWluYXRpb24obm9kZS52
YXJOdW1iZXIoKSwgbV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihub2RlLmNvZGVPcmlnaW4p
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEdldEJ5
VmFsOgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTAwNTEzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEtMTYgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBERkcgZ2xvYmFsIHZhcmlhYmxlIENTRSBt
aXNoYW5kbGVzIHRoZSBjcm9zcy1nbG9iYWwtb2JqZWN0IGlubGluaW5nIGNvcm5lciBjYXNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9qcy9j
cm9zcy1nbG9iYWwtb2JqZWN0LWlubGluZS1nbG9iYWwtdmFyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9qcy9jcm9zcy1nbG9iYWwtb2JqZWN0LWlubGluZS1nbG9iYWwtdmFy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2Nyb3NzLWdsb2Jh
bC1vYmplY3QtaW5saW5lLWdsb2JhbC12YXIuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAg
ICAgICAgKGRvbmUpOgorICAgICAgICAoZG9pdCk6CisKIDIwMTEtMTEtMTYgIEphbWVzIFJvYmlu
c29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVwZGF0ZSB0
ZXh0IGJhc2VsaW5lcyBmb3IgbXEtdHJhbnNmb3JtLTBbMjNdIHRlc3RzCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2pzL2Nyb3NzLWdsb2JhbC1vYmplY3QtaW5saW5lLWdsb2JhbC12YXItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvY3Jvc3MtZ2xvYmFsLW9i
amVjdC1pbmxpbmUtZ2xvYmFsLXZhci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2pzL2Nyb3NzLWdsb2JhbC1vYmplY3QtaW5saW5lLWdsb2JhbC12YXItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3RzIHRoYXQg
ZnVuY3Rpb24gaW5saW5pbmcgaW4gdGhlIERGRyBKSVQgZG9lc24ndCBnZXQgY29uZnVzZWQgYnkg
ZGlmZmVyZW50IGdsb2JhbCBvYmplY3RzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBmb28oMykgaXMgMzI0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK1BBU1MgZG9uZSgpIGNhbGxlZCB3aXRoIDU3NzA1MDAKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9jcm9zcy1nbG9iYWwtb2JqZWN0LWlubGluZS1nbG9iYWwtdmFy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9jcm9zcy1nbG9iYWwtb2Jq
ZWN0LWlubGluZS1nbG9iYWwtdmFyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2pzL2Nyb3NzLWdsb2JhbC1vYmplY3QtaW5saW5lLWdsb2JhbC12YXIuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJmcmFtZXBh
cmVudCI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Nyb3NzLWdsb2JhbC1vYmpl
Y3QtaW5saW5lLWdsb2JhbC12YXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvY3Jvc3MtZ2xvYmFsLW9iamVjdC1pbmxpbmUt
Z2xvYmFsLXZhci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10
ZXN0cy9jcm9zcy1nbG9iYWwtb2JqZWN0LWlubGluZS1nbG9iYWwtdmFyLmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvY3Jvc3MtZ2xvYmFsLW9iamVj
dC1pbmxpbmUtZ2xvYmFsLXZhci5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorZGVz
Y3JpcHRpb24oCisiVGhpcyB0ZXN0cyB0aGF0IGZ1bmN0aW9uIGlubGluaW5nIGluIHRoZSBERkcg
SklUIGRvZXNuJ3QgZ2V0IGNvbmZ1c2VkIGJ5IGRpZmZlcmVudCBnbG9iYWwgb2JqZWN0cy4iCisp
OworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwordmFyIGIgPSAzMjE7CisKK2Z1bmN0aW9uIGZvbyhh
KSB7CisgICAgcmV0dXJuIGEgKyBiOworfQorCitzaG91bGRCZSgiZm9vKDMpIiwgIjMyNCIpOwor
CitmdW5jdGlvbiBkb25lKHZhbHVlKSB7CisgICAgdmFyIGV4cGVjdGVkID0gNTc3MDUwMDsKKyAg
ICBpZiAodmFsdWUgPT0gZXhwZWN0ZWQpCisgICAgICAgIHRlc3RQYXNzZWQoImRvbmUoKSBjYWxs
ZWQgd2l0aCAiICsgZXhwZWN0ZWQpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiZG9u
ZSgpIGlzICIgKyB2YWx1ZSArICIgYW5kIHNob3VsZCBiZSAiICsgZXhwZWN0ZWQgKyAiLiIpOwor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gZG9pdCgpIHsKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhbWVwYXJlbnQiKS5pbm5lckhUTUwgPSAiIjsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhbWVwYXJlbnQiKS5pbm5lckhUTUwgPSAiPGlmcmFt
ZSBpZD0ndGVzdGZyYW1lJz4iOworICAgIHZhciB0ZXN0RnJhbWUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdGZyYW1lIik7CisgICAgdGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudC5vcGVu
KCk7CisgICAgCisgICAgY29kZSA9ICI8IURPQ1RZUEUgaHRtbD5cbjxoZWFkPjwvaGVhZD48Ym9k
eT48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbiI7CisgICAgCisgICAgLy8gTWFr
ZSBzdXJlIHRoYXQgd2UgZ2V0IGFzIG1hbnkgdmFyaWFibGVzIGFzIHRoZSBwYXJlbnQuCisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgY29kZSArPSAidmFyIGIiICsg
aSArICIgPSAiICtpICsgIjtcbiI7CisgICAgCisgICAgY29kZSArPSAicmVzdWx0ID0gMDtcbiIg
KworICAgICAgICAiZnVuY3Rpb24gYmFyKGEpIHtcbiIgKworICAgICAgICAiICAgIHZhciBmb28g
PSB3aW5kb3cucGFyZW50LmZvbztcbiIgKworICAgICAgICAiICAgIHJldHVybiAiOworICAgIAor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIGNvZGUgKz0gImIiICsg
aSArICIgKyAiOworICAgIAorICAgIGNvZGUgKz0gImZvbyhhKTtcbiIgKworICAgICAgICAifVxu
IiArCisgICAgICAgICJmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkge1xuIiArCisgICAg
ICAgICIgICAgcmVzdWx0ICs9IGJhcihpKTtcbiIgKworICAgICAgICAifVxuIiArCisgICAgICAg
ICJ3aW5kb3cucGFyZW50LmRvbmUocmVzdWx0KTtcbiIgKworICAgICAgICAiPC9zY3JpcHQ+PC9i
b2R5PjwvaHRtbD4iCisgICAgCisgICAgdGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudC53cml0ZShj
b2RlKTsKK30KKword2luZG93LnNldFRpbWVvdXQoZG9pdCwgMTApOworCg==
</data>
<flag name="review"
          id="114378"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>