<?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>114708</bug_id>
          
          <creation_ts>2013-04-16 15:27:28 -0700</creation_ts>
          <short_desc>fourthTier: DFG should be able to query Structure without modifying it</short_desc>
          <delta_ts>2013-04-24 20:17:37 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>112839</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>876903</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-16 15:27:28 -0700</bug_when>
    <thetext>And it should do it in a way that can be ruggedized against concurrent changes, so that running the DFG concurrently won&apos;t implode the universe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>876916</commentid>
    <comment_count>1</comment_count>
      <attachid>198446</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-16 15:41:07 -0700</bug_when>
    <thetext>Created attachment 198446
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>876942</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-16 16:30:33 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/148570</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881055</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-24 20:17:37 -0700</bug_when>
    <thetext>*** Bug 114707 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198446</attachid>
            <date>2013-04-16 15:41:07 -0700</date>
            <delta_ts>2013-04-16 15:53:15 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>13173</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ4NTU1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDEzLTA0LTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogREZHIHNob3VsZCBiZSBhYmxlIHRvIHF1ZXJ5IFN0cnVjdHVyZSB3aXRob3V0
IG1vZGlmeWluZyBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE0NzA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBUaGlzIGlzIHdvcmsgdG93YXJkcyBhbGxvd2luZyB0aGUgREZHLCBhbmQg
RlRMLCB0byBydW4gb24gYSBzZXBhcmF0ZSB0aHJlYWQuCisgICAgICAgIFRoZSBpZGVhIGlzIHRo
YXQgdGhlIG1vc3QgZXZpbCB0aGluZyB0aGF0IHRoZSBERkcgZG9lcyB0aGF0IGhhcyB0aHJlYWQt
c2FmZXR5CisgICAgICAgIGlzc3VlcyBpcyBmaWRkbGluZyB3aXRoIFN0cnVjdHVyZXMgYnkgY2Fs
bGluZyBTdHJ1Y3R1cmU6OmdldCgpLiBUaGlzIGNhbiBsZWFkCisgICAgICAgIHRvIHJlbWF0ZXJp
YWxpemF0aW9uIG9mIHByb3BlcnR5IHRhYmxlcywgd2hpY2ggaXMgZGVmaW5pdGVseSBub3QgdGhy
ZWFkLXNhZmUKKyAgICAgICAgZHVlIHRvIGhvdyBTdHJpbmdJbXBsIHdvcmtzLiBTbywgdGhpcyBw
YXRjaCBjb21wbGV0ZWx5IHNpZGUtc3RlcHMgdGhlIHByb2JsZW0KKyAgICAgICAgYnkgY3JlYXRp
bmcgYSBuZXcgdmVyc2lvbiBvZiBTdHJ1Y3R1cmU6OmdldCwgY2FsbGVkCisgICAgICAgIFN0cnVj
dHVyZTo6Z2V0V2l0aG91dE1hdGVyaWFsaXppbmcsIHdoaWNoIG1heSBjaG9vc2UgdG8gZG8gYW4g
TyhuKSBzZWFyY2ggaWYKKyAgICAgICAgbmVjZXNzYXJ5IHRvIGF2b2lkIG1hdGVyaWFsaXphdGlv
bi4gSSBiZWxpZXZlIHRoaXMgc2hvdWxkIGJlIGZpbmUgLSB0aGUgREZHCisgICAgICAgIGRvZXMn
dCBjYWxsIGludG8gdGhpc2UgY29kZSBwYXRoIG9mdGVuIGVub3VnaCBmb3IgdGhpcyB0byBtYXR0
ZXIsIGFuZCBtb3N0IG9mCisgICAgICAgIHRoZSB0aW1lLCB0aGUgU3RydWN0dXJlIHRoYXQgd2Ug
Y2FsbCB0aGlzIG9uIHdpbGwgYWxyZWFkeSBoYXZlIGEgcHJvcGVydHkKKyAgICAgICAgdGFibGUg
YmVjYXVzZSBzb21lIGlubGluZSBjYWNoZSB3b3VsZCBoYXZlIGFscmVhZHkgY2FsbGVkIDo6Z2V0
KCkgb24gdGhhdAorICAgICAgICBTdHJ1Y3R1cmUuCisgICAgICAgIAorICAgICAgICBBbHNvIGNs
ZWFuZWQgdXAgdGhlIG1hdGVyaWFsaXphdGlvbiBsb2dpYzogd2UgY2FuIHN0b3AgdGhlIHNlYXJj
aCBhcyBzb29uIGFzCisgICAgICAgIHdlIGZpbmQgYW55IFN0cnVjdHVyZSB3aXRoIGEgcHJvcGVy
dHkgdGFibGUgcmF0aGVyIHRoYW4gc2VhcmNoaW5nIGFsbCB0aGUgd2F5CisgICAgICAgIGZvciBh
IHBpbm5lZCBvbmUuCisKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAg
ICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgICogYnl0ZWNv
ZGUvUHV0QnlJZFN0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OlB1dEJ5SWRTdGF0dXM6OmNvbXB1
dGVGcm9tTExJbnQpOgorICAgICAgICAoSlNDOjpQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKToK
KyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6ZmluZFN0cnVjdHVyZXNBbmRNYXBGb3JNYXRlcmlhbGl6YXRpb24pOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXApOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmU6OmdldFdpdGhvdXRNYXRlcmlhbGl6aW5nKToKKyAgICAgICAgKEpTQyk6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKFN0cnVjdHVyZSk6CisgICAgICAgICog
cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Z2V0
V2l0aG91dE1hdGVyaWFsaXppbmcpOgorICAgICAgICAoSlNDKToKKwogMjAxMy0wNC0xMyAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIGZvdXJ0aFRpZXI6IEZpeCBy
ZWxlYXNlIGJ1aWxkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5
SWRTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcAkocmV2aXNpb24gMTQ4MzE2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEs
NyArMTYxLDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAogICAg
ICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0dWJJbmZvLnUuZ2V0QnlJZFNlbGYuYmFzZU9i
amVjdFN0cnVjdHVyZS5nZXQoKTsKICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlc0lnbm9yZWQ7
CiAgICAgICAgIEpTQ2VsbCogc3BlY2lmaWNWYWx1ZTsKLSAgICAgICAgcmVzdWx0Lm1fb2Zmc2V0
ID0gc3RydWN0dXJlLT5nZXQoCisgICAgICAgIHJlc3VsdC5tX29mZnNldCA9IHN0cnVjdHVyZS0+
Z2V0V2l0aG91dE1hdGVyaWFsaXppbmcoCiAgICAgICAgICAgICAqcHJvZmlsZWRCbG9jay0+Z2xv
YmFsRGF0YSgpLCBpZGVudCwgYXR0cmlidXRlc0lnbm9yZWQsIHNwZWNpZmljVmFsdWUpOwogICAg
ICAgICBpZiAoc3RydWN0dXJlLT5pc0RpY3Rpb25hcnkoKSkKICAgICAgICAgICAgIHNwZWNpZmlj
VmFsdWUgPSAwOwpAQCAtMTg2LDcgKzE4Niw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1
czo6Y29tcHV0ZUZvcigKICAgICAgICAgICAgIAogICAgICAgICAgICAgdW5zaWduZWQgYXR0cmli
dXRlc0lnbm9yZWQ7CiAgICAgICAgICAgICBKU0NlbGwqIHNwZWNpZmljVmFsdWU7Ci0gICAgICAg
ICAgICBQcm9wZXJ0eU9mZnNldCBteU9mZnNldCA9IHN0cnVjdHVyZS0+Z2V0KAorICAgICAgICAg
ICAgUHJvcGVydHlPZmZzZXQgbXlPZmZzZXQgPSBzdHJ1Y3R1cmUtPmdldFdpdGhvdXRNYXRlcmlh
bGl6aW5nKAogICAgICAgICAgICAgICAgICpwcm9maWxlZEJsb2NrLT5nbG9iYWxEYXRhKCksIGlk
ZW50LCBhdHRyaWJ1dGVzSWdub3JlZCwgc3BlY2lmaWNWYWx1ZSk7CiAgICAgICAgICAgICBpZiAo
c3RydWN0dXJlLT5pc0RpY3Rpb25hcnkoKSkKICAgICAgICAgICAgICAgICBzcGVjaWZpY1ZhbHVl
ID0gMDsKQEAgLTI3MSw3ICsyNzEsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3IoCiAgICAgcmVzdWx0Lm1fd2FzU2VlbkluSklUID0gZmFsc2U7IC8vIFRvIG15IGtu
b3dsZWRnZSBub2JvZHkgdGhhdCB1c2VzIGNvbXB1dGVGb3IoSlNHbG9iYWxEYXRhJiwgU3RydWN0
dXJlKiwgSWRlbnRpZmllciYpIHJlYWRzIHRoaXMgZmllbGQsIGJ1dCBJIG1pZ2h0IGFzIHdlbGwg
YmUgaG9uZXN0OiBubywgaXQgd2Fzbid0IHNlZW4gaW4gdGhlIEpJVCwgc2luY2UgSSBjb21wdXRl
ZCBpdCBzdGF0aWNhbGx5LgogICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXM7CiAgICAgSlNDZWxsKiBz
cGVjaWZpY1ZhbHVlOwotICAgIHJlc3VsdC5tX29mZnNldCA9IHN0cnVjdHVyZS0+Z2V0KGdsb2Jh
bERhdGEsIGlkZW50LCBhdHRyaWJ1dGVzLCBzcGVjaWZpY1ZhbHVlKTsKKyAgICByZXN1bHQubV9v
ZmZzZXQgPSBzdHJ1Y3R1cmUtPmdldFdpdGhvdXRNYXRlcmlhbGl6aW5nKGdsb2JhbERhdGEsIGlk
ZW50LCBhdHRyaWJ1dGVzLCBzcGVjaWZpY1ZhbHVlKTsKICAgICBpZiAoIWlzVmFsaWRPZmZzZXQo
cmVzdWx0Lm1fb2Zmc2V0KSkKICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoVGFrZXNTbG93
UGF0aCk7IC8vIEl0J3MgcHJvYmFibHkgYSBwcm90b3R5cGUgbG9va3VwLiBHaXZlIHVwIG9uIGxp
ZmUgZm9yIG5vdywgZXZlbiB0aG91Z2ggd2UgY291bGQgdG90YWxseSBiZSB3YXkgc21hcnRlciBh
Ym91dCBpdC4KICAgICBpZiAoYXR0cmlidXRlcyAmIEFjY2Vzc29yKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAkocmV2aXNpb24g
MTQ4MzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIFB1dEJ5SWRTdGF0dXMgUHV0QnlJ
ZFN0YXR1czo6Y29tcHV0ZUZyb20KICAgICAKICAgICBpZiAoaW5zdHJ1Y3Rpb25bMF0udS5vcGNv
ZGUgPT0gTExJbnQ6OmdldE9wY29kZShsbGludF9vcF9wdXRfYnlfaWQpCiAgICAgICAgIHx8IGlu
c3RydWN0aW9uWzBdLnUub3Bjb2RlID09IExMSW50OjpnZXRPcGNvZGUobGxpbnRfb3BfcHV0X2J5
X2lkX291dF9vZl9saW5lKSkgewotICAgICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBzdHJ1
Y3R1cmUtPmdldCgqcHJvZmlsZWRCbG9jay0+Z2xvYmFsRGF0YSgpLCBpZGVudCk7CisgICAgICAg
IFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHN0cnVjdHVyZS0+Z2V0V2l0aG91dE1hdGVyaWFsaXpp
bmcoKnByb2ZpbGVkQmxvY2stPmdsb2JhbERhdGEoKSwgaWRlbnQpOwogICAgICAgICBpZiAoIWlz
VmFsaWRPZmZzZXQob2Zmc2V0KSkKICAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKE5v
SW5mb3JtYXRpb24sIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwogICAgICAgICAKQEAgLTY4LDcg
KzY4LDcgQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRnJvbQogICAgIEFT
U0VSVChuZXdTdHJ1Y3R1cmUpOwogICAgIEFTU0VSVChjaGFpbik7CiAgICAgCi0gICAgUHJvcGVy
dHlPZmZzZXQgb2Zmc2V0ID0gbmV3U3RydWN0dXJlLT5nZXQoKnByb2ZpbGVkQmxvY2stPmdsb2Jh
bERhdGEoKSwgaWRlbnQpOworICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IG5ld1N0cnVjdHVy
ZS0+Z2V0V2l0aG91dE1hdGVyaWFsaXppbmcoKnByb2ZpbGVkQmxvY2stPmdsb2JhbERhdGEoKSwg
aWRlbnQpOwogICAgIGlmICghaXNWYWxpZE9mZnNldChvZmZzZXQpKQogICAgICAgICByZXR1cm4g
UHV0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKICAg
ICAKQEAgLTk5LDggKzk5LDkgQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRl
Rm9yKAogICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRl
Y29kZUluZGV4LCBpZGVudCk7CiAgICAgICAgIAogICAgIGNhc2UgYWNjZXNzX3B1dF9ieV9pZF9y
ZXBsYWNlOiB7Ci0gICAgICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHN0dWJJbmZvLnUucHV0
QnlJZFJlcGxhY2UuYmFzZU9iamVjdFN0cnVjdHVyZS0+Z2V0KAotICAgICAgICAgICAgKnByb2Zp
bGVkQmxvY2stPmdsb2JhbERhdGEoKSwgaWRlbnQpOworICAgICAgICBQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQgPQorICAgICAgICAgICAgc3R1YkluZm8udS5wdXRCeUlkUmVwbGFjZS5iYXNlT2JqZWN0
U3RydWN0dXJlLT5nZXRXaXRob3V0TWF0ZXJpYWxpemluZygKKyAgICAgICAgICAgICAgICAqcHJv
ZmlsZWRCbG9jay0+Z2xvYmFsRGF0YSgpLCBpZGVudCk7CiAgICAgICAgIGlmIChpc1ZhbGlkT2Zm
c2V0KG9mZnNldCkpIHsKICAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKAogICAgICAg
ICAgICAgICAgIFNpbXBsZVJlcGxhY2UsCkBAIC0xMTQsOCArMTE1LDkgQEAgUHV0QnlJZFN0YXR1
cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAogICAgIGNhc2UgYWNjZXNzX3B1dF9ieV9pZF90
cmFuc2l0aW9uX25vcm1hbDoKICAgICBjYXNlIGFjY2Vzc19wdXRfYnlfaWRfdHJhbnNpdGlvbl9k
aXJlY3Q6IHsKICAgICAgICAgQVNTRVJUKHN0dWJJbmZvLnUucHV0QnlJZFRyYW5zaXRpb24ucHJl
dmlvdXNTdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SGFzQmVlbkludmFsaWRhdGVk
KCkpOwotICAgICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBzdHViSW5mby51LnB1dEJ5SWRU
cmFuc2l0aW9uLnN0cnVjdHVyZS0+Z2V0KAotICAgICAgICAgICAgKnByb2ZpbGVkQmxvY2stPmds
b2JhbERhdGEoKSwgaWRlbnQpOworICAgICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSAKKyAg
ICAgICAgICAgIHN0dWJJbmZvLnUucHV0QnlJZFRyYW5zaXRpb24uc3RydWN0dXJlLT5nZXRXaXRo
b3V0TWF0ZXJpYWxpemluZygKKyAgICAgICAgICAgICAgICAqcHJvZmlsZWRCbG9jay0+Z2xvYmFs
RGF0YSgpLCBpZGVudCk7CiAgICAgICAgIGlmIChpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKICAg
ICAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKAogICAgICAgICAgICAgICAgIFNpbXBsZVRy
YW5zaXRpb24sCkBAIC0xNDgsNyArMTUwLDggQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVz
Ojpjb21wdXRlRm9yKAogICAgIAogICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXM7CiAgICAgSlNDZWxs
KiBzcGVjaWZpY1ZhbHVlSWdub3JlZDsKLSAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBzdHJ1
Y3R1cmUtPmdldChnbG9iYWxEYXRhLCBpZGVudCwgYXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZUln
bm9yZWQpOworICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHN0cnVjdHVyZS0+Z2V0V2l0aG91
dE1hdGVyaWFsaXppbmcoCisgICAgICAgIGdsb2JhbERhdGEsIGlkZW50LCBhdHRyaWJ1dGVzLCBz
cGVjaWZpY1ZhbHVlSWdub3JlZCk7CiAgICAgaWYgKGlzVmFsaWRPZmZzZXQob2Zmc2V0KSkgewog
ICAgICAgICBpZiAoYXR0cmlidXRlcyAmIChBY2Nlc3NvciB8IFJlYWRPbmx5KSkKICAgICAgICAg
ICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCShyZXZpc2lvbiAxNDgzMTYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMzYsMzQgKzIzNiwzOCBAQCB2b2lkIFN0cnVjdHVyZTo6ZGVzdHJveShKU0NlbGwq
IGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8U3RydWN0dXJlKj4oY2VsbCktPlN0cnVjdHVyZTo6flN0
cnVjdHVyZSgpOwogfQogCi12b2lkIFN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcChK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCit2b2lkIFN0cnVjdHVyZTo6ZmluZFN0cnVjdHVyZXNB
bmRNYXBGb3JNYXRlcmlhbGl6YXRpb24oVmVjdG9yPFN0cnVjdHVyZSosIDg+JiBzdHJ1Y3R1cmVz
LCBQcm9wZXJ0eVRhYmxlKiYgdGFibGUpCiB7Ci0gICAgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFz
c0luZm8oKSA9PSAmc19pbmZvKTsKLSAgICBBU1NFUlQoIXByb3BlcnR5VGFibGUoKSk7Ci0KLSAg
ICBWZWN0b3I8U3RydWN0dXJlKiwgOD4gc3RydWN0dXJlczsKLSAgICBzdHJ1Y3R1cmVzLmFwcGVu
ZCh0aGlzKTsKLQotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gdGhpczsKKyAgICBBU1NFUlQo
c3RydWN0dXJlcy5pc0VtcHR5KCkpOworICAgIHRhYmxlID0gMDsKIAotICAgIC8vIFNlYXJjaCBm
b3IgdGhlIGxhc3QgU3RydWN0dXJlIHdpdGggYSBwcm9wZXJ0eSB0YWJsZS4KLSAgICB3aGlsZSAo
KHN0cnVjdHVyZSA9IHN0cnVjdHVyZS0+cHJldmlvdXNJRCgpKSkgewotICAgICAgICBpZiAoc3Ry
dWN0dXJlLT5tX2lzUGlubmVkUHJvcGVydHlUYWJsZSkgewotICAgICAgICAgICAgQVNTRVJUKHN0
cnVjdHVyZS0+cHJvcGVydHlUYWJsZSgpKTsKLSAgICAgICAgICAgIEFTU0VSVCghc3RydWN0dXJl
LT5wcmV2aW91c0lEKCkpOwotCi0gICAgICAgICAgICBwcm9wZXJ0eVRhYmxlKCkuc2V0KGdsb2Jh
bERhdGEsIHRoaXMsIHN0cnVjdHVyZS0+cHJvcGVydHlUYWJsZSgpLT5jb3B5KGdsb2JhbERhdGEs
IDAsIG51bWJlck9mU2xvdHNGb3JMYXN0T2Zmc2V0KG1fb2Zmc2V0LCBtX2lubGluZUNhcGFjaXR5
KSkpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgZm9yIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IHRoaXM7IHN0cnVjdHVyZTsgc3RydWN0dXJlID0gc3RydWN0dXJlLT5wcmV2aW91c0lEKCkpIHsK
KyAgICAgICAgaWYgKHN0cnVjdHVyZS0+cHJvcGVydHlUYWJsZSgpKSB7CisgICAgICAgICAgICB0
YWJsZSA9IHN0cnVjdHVyZS0+cHJvcGVydHlUYWJsZSgpLmdldCgpOworICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIHN0cnVjdHVyZXMuYXBwZW5kKHN0
cnVjdHVyZSk7CiAgICAgfQorfQogCi0gICAgaWYgKCFwcm9wZXJ0eVRhYmxlKCkpCit2b2lkIFN0
cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
Cit7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZvKTsKKyAg
ICBBU1NFUlQoIXByb3BlcnR5VGFibGUoKSk7CisKKyAgICBWZWN0b3I8U3RydWN0dXJlKiwgOD4g
c3RydWN0dXJlczsKKyAgICBQcm9wZXJ0eVRhYmxlKiB0YWJsZTsKKyAgICAKKyAgICBmaW5kU3Ry
dWN0dXJlc0FuZE1hcEZvck1hdGVyaWFsaXphdGlvbihzdHJ1Y3R1cmVzLCB0YWJsZSk7CisgICAg
CisgICAgaWYgKCF0YWJsZSkKICAgICAgICAgY3JlYXRlUHJvcGVydHlNYXAoZ2xvYmFsRGF0YSwg
bnVtYmVyT2ZTbG90c0Zvckxhc3RPZmZzZXQobV9vZmZzZXQsIG1faW5saW5lQ2FwYWNpdHkpKTsK
KyAgICBlbHNlCisgICAgICAgIHByb3BlcnR5VGFibGUoKS5zZXQoZ2xvYmFsRGF0YSwgdGhpcywg
dGFibGUtPmNvcHkoZ2xvYmFsRGF0YSwgMCwgbnVtYmVyT2ZTbG90c0Zvckxhc3RPZmZzZXQobV9v
ZmZzZXQsIG1faW5saW5lQ2FwYWNpdHkpKSk7CiAKLSAgICBmb3IgKHB0cmRpZmZfdCBpID0gc3Ry
dWN0dXJlcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICBzdHJ1Y3R1cmUgPSBz
dHJ1Y3R1cmVzW2ldOworICAgIGZvciAoc2l6ZV90IGkgPSBzdHJ1Y3R1cmVzLnNpemUoKTsgaS0t
OykgeworICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0cnVjdHVyZXNbaV07CiAgICAg
ICAgIGlmICghc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIFByb3BlcnR5TWFwRW50cnkgZW50cnkoZ2xvYmFsRGF0YSwgdGhpcywgc3Ry
dWN0dXJlLT5tX25hbWVJblByZXZpb3VzLmdldCgpLCBzdHJ1Y3R1cmUtPm1fb2Zmc2V0LCBzdHJ1
Y3R1cmUtPm1fYXR0cmlidXRlc0luUHJldmlvdXMsIHN0cnVjdHVyZS0+bV9zcGVjaWZpY1ZhbHVl
SW5QcmV2aW91cy5nZXQoKSk7CkBAIC03NDMsNiArNzQ3LDM1IEBAIFByb3BlcnR5VGFibGUqIFN0
cnVjdHVyZTo6Y29weVByb3BlcnR5VGEKICAgICByZXR1cm4gUHJvcGVydHlUYWJsZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIG51bWJlck9mU2xvdHNGb3JMYXN0T2Zmc2V0KG1fb2Zmc2V0LCBtX2lubGlu
ZUNhcGFjaXR5KSk7CiB9CiAKK1Byb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6Z2V0V2l0aG91dE1h
dGVyaWFsaXppbmcoSlNHbG9iYWxEYXRhJiwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgdW5z
aWduZWQmIGF0dHJpYnV0ZXMsIEpTQ2VsbComIHNwZWNpZmljVmFsdWUpCit7CisgICAgVmVjdG9y
PFN0cnVjdHVyZSosIDg+IHN0cnVjdHVyZXM7CisgICAgUHJvcGVydHlUYWJsZSogdGFibGU7Cisg
ICAgCisgICAgZmluZFN0cnVjdHVyZXNBbmRNYXBGb3JNYXRlcmlhbGl6YXRpb24oc3RydWN0dXJl
cywgdGFibGUpOworICAgIAorICAgIGlmICh0YWJsZSkgeworICAgICAgICBQcm9wZXJ0eU1hcEVu
dHJ5KiBlbnRyeSA9IHRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS51aWQoKSkuZmlyc3Q7CisgICAg
ICAgIGlmIChlbnRyeSkgeworICAgICAgICAgICAgYXR0cmlidXRlcyA9IGVudHJ5LT5hdHRyaWJ1
dGVzOworICAgICAgICAgICAgc3BlY2lmaWNWYWx1ZSA9IGVudHJ5LT5zcGVjaWZpY1ZhbHVlLmdl
dCgpOworICAgICAgICAgICAgcmV0dXJuIGVudHJ5LT5vZmZzZXQ7CisgICAgICAgIH0KKyAgICB9
CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gc3RydWN0dXJlcy5zaXplKCk7IGktLTspIHsK
KyAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmVzW2ldOworICAgICAgICBp
ZiAoc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzLmdldCgpICE9IHByb3BlcnR5TmFtZS51aWQo
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgYXR0cmlidXRlcyA9
IHN0cnVjdHVyZS0+bV9hdHRyaWJ1dGVzSW5QcmV2aW91czsKKyAgICAgICAgc3BlY2lmaWNWYWx1
ZSA9IHN0cnVjdHVyZS0+bV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91cy5nZXQoKTsKKyAgICAgICAg
cmV0dXJuIHN0cnVjdHVyZS0+bV9vZmZzZXQ7CisgICAgfQorICAgIAorICAgIHJldHVybiBpbnZh
bGlkT2Zmc2V0OworfQorCiBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkJiBhdHRy
aWJ1dGVzLCBKU0NlbGwqJiBzcGVjaWZpY1ZhbHVlKQogewogICAgIEFTU0VSVChzdHJ1Y3R1cmUo
KS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNpb24gMTQ4MzE2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYs
OSBAQCBwdWJsaWM6CiAgICAgUHJvcGVydHlPZmZzZXQgZ2V0KEpTR2xvYmFsRGF0YSYsIGNvbnN0
IFdURjo6U3RyaW5nJiBuYW1lKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBQcm9wZXJ0eU9mZnNl
dCBnZXQoSlNHbG9iYWxEYXRhJiwgUHJvcGVydHlOYW1lLCB1bnNpZ25lZCYgYXR0cmlidXRlcywg
SlNDZWxsKiYgc3BlY2lmaWNWYWx1ZSk7CiAKKyAgICBQcm9wZXJ0eU9mZnNldCBnZXRXaXRob3V0
TWF0ZXJpYWxpemluZyhKU0dsb2JhbERhdGEmLCBQcm9wZXJ0eU5hbWUpOworICAgIFByb3BlcnR5
T2Zmc2V0IGdldFdpdGhvdXRNYXRlcmlhbGl6aW5nKEpTR2xvYmFsRGF0YSYsIFByb3BlcnR5TmFt
ZSwgdW5zaWduZWQmIGF0dHJpYnV0ZXMsIEpTQ2VsbComIHNwZWNpZmljVmFsdWUpOworCiAgICAg
Ym9vbCBoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNHZXR0
ZXJTZXR0ZXJQcm9wZXJ0aWVzOyB9CiAgICAgYm9vbCBoYXNSZWFkT25seU9yR2V0dGVyU2V0dGVy
UHJvcGVydGllc0V4Y2x1ZGluZ1Byb3RvKCkgY29uc3QgeyByZXR1cm4gbV9oYXNSZWFkT25seU9y
R2V0dGVyU2V0dGVyUHJvcGVydGllc0V4Y2x1ZGluZ1Byb3RvOyB9CiAgICAgdm9pZCBzZXRIYXNH
ZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKGJvb2wgaXNfX3Byb3RvX18pCkBAIC0zNTQsNiArMzU3LDgg
QEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZShKU0dsb2JhbERhdGEm
LCBjb25zdCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgCisgICAgdm9pZCBmaW5kU3RydWN0dXJlc0Fu
ZE1hcEZvck1hdGVyaWFsaXphdGlvbihWZWN0b3I8U3RydWN0dXJlKiwgOD4mIHN0cnVjdHVyZXMs
IFByb3BlcnR5VGFibGUqJik7CisgICAgCiAgICAgdHlwZWRlZiBlbnVtIHsgCiAgICAgICAgIE5v
bmVEaWN0aW9uYXJ5S2luZCA9IDAsCiAgICAgICAgIENhY2hlZERpY3Rpb25hcnlLaW5kID0gMSwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxp
bmVzLmgJKHJldmlzaW9uIDE0ODMxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsMTQgQEAgaW5s
aW5lIFByb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6Z2V0KEpTRwogICAgIHJldHVybiBlbnRyeSA/
IGVudHJ5LT5vZmZzZXQgOiBpbnZhbGlkT2Zmc2V0OwogfQogICAgIAoraW5saW5lIFByb3BlcnR5
T2Zmc2V0IFN0cnVjdHVyZTo6Z2V0V2l0aG91dE1hdGVyaWFsaXppbmcoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQoreworICAgIHVuc2lnbmVkIGF0
dHJpYnV0ZXNJZ25vcmVkOworICAgIEpTQ2VsbCogc3BlY2lmaWNWYWx1ZUlnbm9yZWQ7CisgICAg
cmV0dXJuIGdldFdpdGhvdXRNYXRlcmlhbGl6aW5nKAorICAgICAgICBnbG9iYWxEYXRhLCBwcm9w
ZXJ0eU5hbWUsIGF0dHJpYnV0ZXNJZ25vcmVkLCBzcGVjaWZpY1ZhbHVlSWdub3JlZCk7Cit9CisK
IGlubGluZSBib29sIFN0cnVjdHVyZTo6bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gdHlwZUluZm8oKS5tYXNx
dWVyYWRlc0FzVW5kZWZpbmVkKCkgJiYgZ2xvYmFsT2JqZWN0KCkgPT0gbGV4aWNhbEdsb2JhbE9i
amVjdDsK
</data>
<flag name="review"
          id="220153"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>