<?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>12471</bug_id>
          
          <creation_ts>2007-01-30 01:11:58 -0800</creation_ts>
          <short_desc>XPathResult not invalidated for documents retrieved via XMLHttpRequest</short_desc>
          <delta_ts>2009-06-01 01:28:05 -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>XML</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>12450</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>30550</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-30 01:11:58 -0800</bug_when>
    <thetext>XPathResult relies on DOM Mutation events for invalidation, but these don&apos;t work for documents retrieved via XMLHttpRequest (addEventListener() checks for document()-&gt;attached(), and bails out if it&apos;s not).

This causes several layout test failures:
dom/svg/level3/xpath/XPathResult_invalidIteratorState_ORDERED_NODE_ITERATOR_TYPE.svg
dom/svg/level3/xpath/XPathResult_invalidIteratorState_UNORDERED_NODE_ITERATOR_TYPE.svg
dom/svg/level3/xpath/XPathResult_invalidIteratorState_ANY_TYPE.svg
dom/svg/level3/xpath/XPathResult_iterateNext_INVALID_STATE_ERR.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29986</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-30 22:15:28 -0800</bug_when>
    <thetext>This check for document()-&gt;attached() was added in r8557 &lt;http://trac.webkit.org/projects/webkit/changeset/8557&gt; as a part of a fix to memory leaks on eBay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29697</commentid>
    <comment_count>2</comment_count>
      <attachid>12832</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-31 12:34:46 -0800</bug_when>
    <thetext>Created attachment 12832
work in progress

It seems that DOM events don&apos;t work for createDocument() and XMLHttpRequest-based documents in Firefox and Opera, too.

I&apos;ve tried rewriting XPathResult to use domTreeVersion for invalidation - but that also doesn&apos;t work in such documents (the DOM version is mostly updated from attach()/detach()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123805</commentid>
    <comment_count>3</comment_count>
      <attachid>30828</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-01 00:57:18 -0700</bug_when>
    <thetext>Created attachment 30828
proposed fix

DOM tree version magically works in ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123808</commentid>
    <comment_count>4</comment_count>
      <attachid>30828</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-06-01 01:20:25 -0700</bug_when>
    <thetext>Comment on attachment 30828
proposed fix

&gt; + * Copyright (C) 2006, 2009 Apple Computer, Inc.

The preferred form is &quot;&lt;year&gt; Apple Inc. All rights reserved.&quot;

I sometimes worry that the single document-wide tree version number is too blunt a tool; glad it works better here than what we were doing before!

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123809</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-01 01:28:05 -0700</bug_when>
    <thetext>Committed r44317.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12832</attachid>
            <date>2007-01-31 12:34:46 -0800</date>
            <delta_ts>2009-06-01 00:57:18 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>12471.txt</filename>
            <type>text/plain</type>
            <size>5800</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAxOTMwNikKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTEwNiw3ICsxMTEwNiw2IEBACiAJCTA4NjdENjkwRkU4NDAyOEZD
MDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJ
CQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87Ci0JCQlj
b21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOwogCQkJaGFzU2Nhbm5lZEZvckVuY29k
aW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTExMTIxLDcg
KzExMTIwLDYgQEAKIAkJCXByb2R1Y3RSZWZHcm91cCA9IDAzNDc2OERGRkYzOEE1MDQxMURCOUM4
QiAvKiBQcm9kdWN0cyAqLzsKIAkJCXByb2plY3REaXJQYXRoID0gIiI7CiAJCQlwcm9qZWN0Um9v
dCA9ICIiOwotCQkJc2hvdWxkQ2hlY2tDb21wYXRpYmlsaXR5ID0gMTsKIAkJCXRhcmdldHMgPSAo
CiAJCQkJOTNGMTk4QTUwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmUgKi8sCiAJCQkJREQwNDFG
QkUwOUQ5RERCRTAwMTBBRjJBIC8qIERlcml2ZWQgU291cmNlcyAqLywKSW5kZXg6IFdlYkNvcmUv
eG1sL1hQYXRoRXhwcmVzc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFBhdGhF
eHByZXNzaW9uLmNwcAkocmV2aXNpb24gMTkzMDYpCisrKyBXZWJDb3JlL3htbC9YUGF0aEV4cHJl
c3Npb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NywxMyArNjcsOSBAQCBQYXNzUmVmUHRyPFhQ
YXRoUmVzdWx0PiBYUGF0aEV4cHJlc3Npb246CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAot
ICAgIEV2ZW50VGFyZ2V0Tm9kZSogZXZlbnRUYXJnZXQgPSBjb250ZXh0Tm9kZS0+b3duZXJEb2N1
bWVudCgpCi0gICAgICAgID8gY29udGV4dE5vZGUtPm93bmVyRG9jdW1lbnQoKQotICAgICAgICA6
IHN0YXRpY19jYXN0PEV2ZW50VGFyZ2V0Tm9kZSo+KGNvbnRleHROb2RlKTsKLQogICAgIEV4cHJl
c3Npb246OmV2YWx1YXRpb25Db250ZXh0KCkubm9kZSA9IGNvbnRleHROb2RlOyAgICAKICAgICBt
X3RvcEV4cHJlc3Npb24tPm9wdGltaXplKCk7Ci0gICAgUmVmUHRyPFhQYXRoUmVzdWx0PiByZXN1
bHQgPSBuZXcgWFBhdGhSZXN1bHQoZXZlbnRUYXJnZXQsIG1fdG9wRXhwcmVzc2lvbi0+ZXZhbHVh
dGUoKSk7CisgICAgUmVmUHRyPFhQYXRoUmVzdWx0PiByZXN1bHQgPSBuZXcgWFBhdGhSZXN1bHQo
Y29udGV4dE5vZGUtPmRvY3VtZW50KCksIG1fdG9wRXhwcmVzc2lvbi0+ZXZhbHVhdGUoKSk7CiAK
ICAgICBpZiAodHlwZSAhPSBYUGF0aFJlc3VsdDo6QU5ZX1RZUEUpIHsKICAgICAgICAgZWMgPSAw
OwpJbmRleDogV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUveG1sL1hQYXRoUmVzdWx0LmNwcAkocmV2aXNpb24gMTkzMDYpCisrKyBXZWJDb3JlL3htbC9Y
UGF0aFJlc3VsdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDkgKzI5LDggQEAKIAogI2lmZGVm
IFhQQVRIX1NVUFBPUlQKIAotI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJFdmVudFRhcmdl
dE5vZGUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiWFBhdGhFdmFs
dWF0b3IuaCIKIApAQCAtMzksMjAgKzM4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNp
bmcgbmFtZXNwYWNlIFhQYXRoOwogCi1jbGFzcyBJbnZhbGlkYXRpbmdFdmVudExpc3RlbmVyIDog
cHVibGljIEV2ZW50TGlzdGVuZXIgewotcHVibGljOgotICAgIEludmFsaWRhdGluZ0V2ZW50TGlz
dGVuZXIoWFBhdGhSZXN1bHQqIHJlc3VsdCkgOiBtX3Jlc3VsdChyZXN1bHQpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wpIHsgbV9yZXN1bHQtPmludmFsaWRh
dGVJdGVyYXRvclN0YXRlKCk7IH0KLXByaXZhdGU6Ci0gICAgWFBhdGhSZXN1bHQqIG1fcmVzdWx0
OwotfTsKLQotWFBhdGhSZXN1bHQ6OlhQYXRoUmVzdWx0KEV2ZW50VGFyZ2V0Tm9kZSogZXZlbnRU
YXJnZXQsIGNvbnN0IFZhbHVlJiB2YWx1ZSkKK1hQYXRoUmVzdWx0OjpYUGF0aFJlc3VsdChEb2N1
bWVudCogZG9jdW1lbnQsIGNvbnN0IFZhbHVlJiB2YWx1ZSkKICAgICA6IG1fdmFsdWUodmFsdWUp
Ci0gICAgLCBtX2V2ZW50VGFyZ2V0KGV2ZW50VGFyZ2V0KQorICAgICwgbV9kb2N1bWVudChkb2N1
bWVudCkKIHsKLSAgICBtX2V2ZW50TGlzdGVuZXIgPSBuZXcgSW52YWxpZGF0aW5nRXZlbnRMaXN0
ZW5lcih0aGlzKTsKLSAgICBtX2V2ZW50VGFyZ2V0LT5hZGRFdmVudExpc3RlbmVyKEV2ZW50TmFt
ZXM6OkRPTVN1YnRyZWVNb2RpZmllZEV2ZW50LCBtX2V2ZW50TGlzdGVuZXIsIGZhbHNlKTsKICAg
ICBzd2l0Y2ggKG1fdmFsdWUudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgVmFsdWU6OkJvb2xlYW5W
YWx1ZToKICAgICAgICAgICAgIG1fcmVzdWx0VHlwZSA9IEJPT0xFQU5fVFlQRTsKQEAgLTY3LDcg
KzU2LDcgQEAgWFBhdGhSZXN1bHQ6OlhQYXRoUmVzdWx0KEV2ZW50VGFyZ2V0Tm9kZQogICAgICAg
ICAgICAgbV9yZXN1bHRUeXBlID0gVU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRTsKICAgICAg
ICAgICAgIG1fbm9kZVNldFBvc2l0aW9uID0gMDsKICAgICAgICAgICAgIG1fbm9kZVNldCA9IG1f
dmFsdWUudG9Ob2RlVmVjdG9yKCk7Ci0gICAgICAgICAgICBtX2ludmFsaWRJdGVyYXRvclN0YXRl
ID0gZmFsc2U7CisgICAgICAgICAgICBtX2RvbVRyZWVWZXJzaW9uID0gbV9kb2N1bWVudC0+ZG9t
VHJlZVZlcnNpb24oKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC03NSw4ICs2NCw2IEBAIFhQYXRoUmVzdWx0OjpYUGF0aFJlc3VsdChF
dmVudFRhcmdldE5vZGUKIAogWFBhdGhSZXN1bHQ6On5YUGF0aFJlc3VsdCgpCiB7Ci0gICAgaWYg
KG1fZXZlbnRUYXJnZXQpCi0gICAgICAgIG1fZXZlbnRUYXJnZXQtPnJlbW92ZUV2ZW50TGlzdGVu
ZXIoRXZlbnROYW1lczo6RE9NU3VidHJlZU1vZGlmaWVkRXZlbnQsIG1fZXZlbnRMaXN0ZW5lci5n
ZXQoKSwgZmFsc2UpOwogfQogCiB2b2lkIFhQYXRoUmVzdWx0Ojpjb252ZXJ0VG8odW5zaWduZWQg
c2hvcnQgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xNTYsMjQgKzE0MywxMiBAQCBOb2Rl
KiBYUGF0aFJlc3VsdDo6c2luZ2xlTm9kZVZhbHVlKEV4Y2VwCiAgICAgcmV0dXJuIG5vZGVzWzBd
LmdldCgpOwogfQogCi12b2lkIFhQYXRoUmVzdWx0OjppbnZhbGlkYXRlSXRlcmF0b3JTdGF0ZSgp
Ci17IAotICAgIG1faW52YWxpZEl0ZXJhdG9yU3RhdGUgPSB0cnVlOwotICAgIAotICAgIEFTU0VS
VChtX2V2ZW50VGFyZ2V0KTsKLSAgICBBU1NFUlQobV9ldmVudExpc3RlbmVyKTsKLSAgICAKLSAg
ICBtX2V2ZW50VGFyZ2V0LT5yZW1vdmVFdmVudExpc3RlbmVyKEV2ZW50TmFtZXM6OkRPTVN1YnRy
ZWVNb2RpZmllZEV2ZW50LCBtX2V2ZW50TGlzdGVuZXIuZ2V0KCksIGZhbHNlKTsKLSAgICAKLSAg
ICBtX2V2ZW50VGFyZ2V0ID0gMDsKLX0KLQogYm9vbCBYUGF0aFJlc3VsdDo6aW52YWxpZEl0ZXJh
dG9yU3RhdGUoKSBjb25zdAogewogICAgIGlmIChyZXN1bHRUeXBlKCkgIT0gVU5PUkRFUkVEX05P
REVfSVRFUkFUT1JfVFlQRSAmJiByZXN1bHRUeXBlKCkgIT0gT1JERVJFRF9OT0RFX0lURVJBVE9S
X1RZUEUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICByZXR1cm4gbV9pbnZhbGlk
SXRlcmF0b3JTdGF0ZTsKKyAgICByZXR1cm4gbV9kb2N1bWVudC0+ZG9tVHJlZVZlcnNpb24oKSAh
PSBtX2RvbVRyZWVWZXJzaW9uOwogfQogCiB1bnNpZ25lZCBsb25nIFhQYXRoUmVzdWx0OjpzbmFw
c2hvdExlbmd0aChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKQEAgLTE5Myw3ICsxNjgsNyBAQCBO
b2RlKiBYUGF0aFJlc3VsdDo6aXRlcmF0ZU5leHQoRXhjZXB0aW9uCiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KICAgICAKLSAgICBpZiAobV9pbnZhbGlkSXRlcmF0b3JTdGF0ZSkgeworICAgIGlm
IChpbnZhbGlkSXRlcmF0b3JTdGF0ZSgpKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9F
UlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KSW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoUmVz
dWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaAkocmV2aXNpb24g
MTkzMDYpCisrKyBXZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw4ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHR5cGVkZWYgaW50IEV4Y2Vw
dGlvbkNvZGU7CiAKLSAgICBjbGFzcyBFdmVudExpc3RlbmVyOwotICAgIGNsYXNzIEV2ZW50VGFy
Z2V0Tm9kZTsKKyAgICBjbGFzcyBEb2N1bWVudDsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNz
IFN0cmluZzsKIApAQCAtNTYsNyArNTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
ICAgICBGSVJTVF9PUkRFUkVEX05PREVfVFlQRSA9IDkKICAgICAgICAgfTsKICAgICAgICAgCi0g
ICAgICAgIFhQYXRoUmVzdWx0KEV2ZW50VGFyZ2V0Tm9kZSosIGNvbnN0IFhQYXRoOjpWYWx1ZSYp
OworICAgICAgICBYUGF0aFJlc3VsdChEb2N1bWVudCosIGNvbnN0IFhQYXRoOjpWYWx1ZSYpOwog
ICAgICAgICB+WFBhdGhSZXN1bHQoKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgY29udmVydFRv
KHVuc2lnbmVkIHNob3J0IHR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTczLDE2ICs3MiwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUqIGl0ZXJhdGVOZXh0KEV4Y2VwdGlv
bkNvZGUmKTsKICAgICAgICAgTm9kZSogc25hcHNob3RJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgs
IEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgICAgICB2b2lkIGludmFsaWRhdGVJdGVyYXRvclN0YXRl
KCk7Ci0KICAgICBwcml2YXRlOgogICAgICAgICBYUGF0aDo6VmFsdWUgbV92YWx1ZTsKICAgICAg
ICAgdW5zaWduZWQgbV9ub2RlU2V0UG9zaXRpb247CiAgICAgICAgIFhQYXRoOjpOb2RlVmVjdG9y
IG1fbm9kZVNldDsKICAgICAgICAgdW5zaWduZWQgc2hvcnQgbV9yZXN1bHRUeXBlOwotICAgICAg
ICBib29sIG1faW52YWxpZEl0ZXJhdG9yU3RhdGU7Ci0gICAgICAgIFJlZlB0cjxFdmVudFRhcmdl
dE5vZGU+IG1fZXZlbnRUYXJnZXQ7Ci0gICAgICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBtX2V2
ZW50TGlzdGVuZXI7CisgICAgICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKKyAgICAg
ICAgdW5zaWduZWQgbV9kb21UcmVlVmVyc2lvbjsKICAgICB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30828</attachid>
            <date>2009-06-01 00:57:18 -0700</date>
            <delta_ts>2009-06-01 01:20:25 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>XPathDOMTreeVersion.txt</filename>
            <type>text/plain</type>
            <size>13858</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDMxMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMDYtMDEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ3MQorICAgICAgICBY
UGF0aFJlc3VsdCBub3QgaW52YWxpZGF0ZWQgZm9yIGRvY3VtZW50cyByZXRyaWV2ZWQgdmlhIFhN
TEh0dHBSZXF1ZXN0CisKKyAgICAgICAgVGVzdDogZmFzdC94cGF0aC9kZXRhY2hlZC1zdWJ0cmVl
LWludmFsaWRhdGUtaXRlcmF0b3IuaHRtbCBhbmQgZXhpc3RpbmcgdGVzdHMgaW4gZG9tL3N2Zy9s
ZXZlbDMveHBhdGguCisKKyAgICAgICAgVXNlIERPTSB0cmVlIHZlcnNpb24gaW5zdGVhZCBvZiBE
T01TdWJ0cmVlTW9kaWZpZWQgZXZlbnRzIHRvIGludmFsaWRhdGUsIHdoaWNoIGlzIG1vcmUKKyAg
ICAgICAgcmVsaWFibGUgYW5kIG11Y2ggZmFzdGVyLgorCisgICAgICAgICogeG1sL1hQYXRoRXhw
cmVzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aEV4cHJlc3Npb246OmV2YWx1YXRl
KToKKyAgICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBh
dGhSZXN1bHQ6OlhQYXRoUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoUmVzdWx0Ojp+
WFBhdGhSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGhSZXN1bHQ6OmludmFsaWRJdGVy
YXRvclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoUmVzdWx0OjppdGVyYXRlTmV4dCk6
CisgICAgICAgICogeG1sL1hQYXRoUmVzdWx0Lmg6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aFJl
c3VsdDo6Y3JlYXRlKToKKwogMjAwOS0wNi0wMSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4gIExhbmRlZCBieSBB
ZGFtIEJhcnRoLgpJbmRleDogV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uY3BwCShyZXZpc2lvbiA0NDMwNSkK
KysrIFdlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IDIwMDUgRnJlcmljaCBSYWFiZSA8cmFhYmVAa2Rl
Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29w
eXJpZ2h0IChDKSAyMDA1IEZyZXJpY2ggUmFhYmUgPHJhYWJlQGtkZS5vcmc+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDkgQXBwbGUgQ29tcHV0ZXIsIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNjcsMTMgKzY3LDExIEBAIFBhc3NSZWZQdHI8WFBhdGhSZXN1bHQ+
IFhQYXRoRXhwcmVzc2lvbjoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgTm9kZSog
ZXZlbnRUYXJnZXQgPSBjb250ZXh0Tm9kZS0+b3duZXJEb2N1bWVudCgpID8gY29udGV4dE5vZGUt
Pm93bmVyRG9jdW1lbnQoKSA6IGNvbnRleHROb2RlOwotCiAgICAgRXZhbHVhdGlvbkNvbnRleHQm
IGV2YWx1YXRpb25Db250ZXh0ID0gRXhwcmVzc2lvbjo6ZXZhbHVhdGlvbkNvbnRleHQoKTsKICAg
ICBldmFsdWF0aW9uQ29udGV4dC5ub2RlID0gY29udGV4dE5vZGU7CiAgICAgZXZhbHVhdGlvbkNv
bnRleHQuc2l6ZSA9IDE7CiAgICAgZXZhbHVhdGlvbkNvbnRleHQucG9zaXRpb24gPSAxOwotICAg
IFJlZlB0cjxYUGF0aFJlc3VsdD4gcmVzdWx0ID0gWFBhdGhSZXN1bHQ6OmNyZWF0ZShldmVudFRh
cmdldCwgbV90b3BFeHByZXNzaW9uLT5ldmFsdWF0ZSgpKTsKKyAgICBSZWZQdHI8WFBhdGhSZXN1
bHQ+IHJlc3VsdCA9IFhQYXRoUmVzdWx0OjpjcmVhdGUoY29udGV4dE5vZGUtPmRvY3VtZW50KCks
IG1fdG9wRXhwcmVzc2lvbi0+ZXZhbHVhdGUoKSk7CiAgICAgZXZhbHVhdGlvbkNvbnRleHQubm9k
ZSA9IDA7IC8vIERvIG5vdCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBjb250ZXh0IG5vZGUsIGFz
IHRoaXMgbWF5IHByZXZlbnQgdGhlIHdob2xlIGRvY3VtZW50IGZyb20gYmVpbmcgZGVzdHJveWVk
IGluIHRpbWUuCiAKICAgICBpZiAodHlwZSAhPSBYUGF0aFJlc3VsdDo6QU5ZX1RZUEUpIHsKSW5k
ZXg6IFdlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3ht
bC9YUGF0aFJlc3VsdC5jcHAJKHJldmlzaW9uIDQ0MzA1KQorKysgV2ViQ29yZS94bWwvWFBhdGhS
ZXN1bHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdo
dCAyMDA1IEZyZXJpY2ggUmFhYmUgPHJhYWJlQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNSBGcmVyaWNoIFJh
YWJlIDxyYWFiZUBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIElu
Yy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksOCArMjksNyBAQAogCiAj
aWYgRU5BQkxFKFhQQVRIKQogCi0jaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgotI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIk5vZGUuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiWFBhdGhFdmFsdWF0b3IuaCIK
QEAgLTQwLDIyICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNl
IFhQYXRoOwogCi1jbGFzcyBJbnZhbGlkYXRpbmdFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50
TGlzdGVuZXIgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludmFsaWRhdGluZ0V2
ZW50TGlzdGVuZXI+IGNyZWF0ZShYUGF0aFJlc3VsdCogcmVzdWx0KSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgSW52YWxpZGF0aW5nRXZlbnRMaXN0ZW5lcihyZXN1bHQpKTsgfQotICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wpIHsgbV9yZXN1bHQtPmludmFsaWRhdGVJdGVy
YXRvclN0YXRlKCk7IH0KLQotcHJpdmF0ZToKLSAgICBJbnZhbGlkYXRpbmdFdmVudExpc3RlbmVy
KFhQYXRoUmVzdWx0KiByZXN1bHQpIDogbV9yZXN1bHQocmVzdWx0KSB7IH0KLSAgICBYUGF0aFJl
c3VsdCogbV9yZXN1bHQ7Ci19OwotCi1YUGF0aFJlc3VsdDo6WFBhdGhSZXN1bHQoTm9kZSogZXZl
bnRUYXJnZXQsIGNvbnN0IFZhbHVlJiB2YWx1ZSkKK1hQYXRoUmVzdWx0OjpYUGF0aFJlc3VsdChE
b2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFZhbHVlJiB2YWx1ZSkKICAgICA6IG1fdmFsdWUodmFs
dWUpCi0gICAgLCBtX2V2ZW50VGFyZ2V0KGV2ZW50VGFyZ2V0KQogewotICAgIG1fZXZlbnRMaXN0
ZW5lciA9IEludmFsaWRhdGluZ0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh0aGlzKTsKLSAgICBtX2V2
ZW50VGFyZ2V0LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ET01TdWJ0cmVlTW9kaWZp
ZWRFdmVudCwgbV9ldmVudExpc3RlbmVyLCBmYWxzZSk7CiAgICAgc3dpdGNoIChtX3ZhbHVlLnR5
cGUoKSkgewogICAgICAgICBjYXNlIFZhbHVlOjpCb29sZWFuVmFsdWU6CiAgICAgICAgICAgICBt
X3Jlc3VsdFR5cGUgPSBCT09MRUFOX1RZUEU7CkBAIC03MCw3ICs1Niw4IEBAIFhQYXRoUmVzdWx0
OjpYUGF0aFJlc3VsdChOb2RlKiBldmVudFRhcmcKICAgICAgICAgICAgIG1fcmVzdWx0VHlwZSA9
IFVOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU7CiAgICAgICAgICAgICBtX25vZGVTZXRQb3Np
dGlvbiA9IDA7CiAgICAgICAgICAgICBtX25vZGVTZXQgPSBtX3ZhbHVlLnRvTm9kZVNldCgpOwot
ICAgICAgICAgICAgbV9pbnZhbGlkSXRlcmF0b3JTdGF0ZSA9IGZhbHNlOworICAgICAgICAgICAg
bV9kb2N1bWVudCA9IGRvY3VtZW50OworICAgICAgICAgICAgbV9kb21UcmVlVmVyc2lvbiA9IGRv
Y3VtZW50LT5kb21UcmVlVmVyc2lvbigpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTc4LDggKzY1LDYgQEAgWFBhdGhSZXN1bHQ6OlhQ
YXRoUmVzdWx0KE5vZGUqIGV2ZW50VGFyZwogCiBYUGF0aFJlc3VsdDo6flhQYXRoUmVzdWx0KCkK
IHsKLSAgICBpZiAobV9ldmVudFRhcmdldCkKLSAgICAgICAgbV9ldmVudFRhcmdldC0+cmVtb3Zl
RXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NU3VidHJlZU1vZGlmaWVkRXZlbnQsIG1fZXZl
bnRMaXN0ZW5lci5nZXQoKSwgZmFsc2UpOwogfQogCiB2b2lkIFhQYXRoUmVzdWx0Ojpjb252ZXJ0
VG8odW5zaWduZWQgc2hvcnQgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xNzQsMjQgKzE1
OSwxMyBAQCBOb2RlKiBYUGF0aFJlc3VsdDo6c2luZ2xlTm9kZVZhbHVlKEV4Y2VwCiAgICAgICAg
IHJldHVybiBub2Rlcy5hbnlOb2RlKCk7CiB9CiAKLXZvaWQgWFBhdGhSZXN1bHQ6OmludmFsaWRh
dGVJdGVyYXRvclN0YXRlKCkKLXsgCi0gICAgbV9pbnZhbGlkSXRlcmF0b3JTdGF0ZSA9IHRydWU7
Ci0gICAgCi0gICAgQVNTRVJUKG1fZXZlbnRUYXJnZXQpOwotICAgIEFTU0VSVChtX2V2ZW50TGlz
dGVuZXIpOwotICAgIAotICAgIG1fZXZlbnRUYXJnZXQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZl
bnROYW1lcygpLkRPTVN1YnRyZWVNb2RpZmllZEV2ZW50LCBtX2V2ZW50TGlzdGVuZXIuZ2V0KCks
IGZhbHNlKTsKLSAgICAKLSAgICBtX2V2ZW50VGFyZ2V0ID0gMDsKLX0KLQogYm9vbCBYUGF0aFJl
c3VsdDo6aW52YWxpZEl0ZXJhdG9yU3RhdGUoKSBjb25zdAogewogICAgIGlmIChyZXN1bHRUeXBl
KCkgIT0gVU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSAmJiByZXN1bHRUeXBlKCkgIT0gT1JE
RVJFRF9OT0RFX0lURVJBVE9SX1RZUEUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAg
ICByZXR1cm4gbV9pbnZhbGlkSXRlcmF0b3JTdGF0ZTsKKworICAgIEFTU0VSVChtX2RvY3VtZW50
KTsKKyAgICByZXR1cm4gbV9kb2N1bWVudC0+ZG9tVHJlZVZlcnNpb24oKSAhPSBtX2RvbVRyZWVW
ZXJzaW9uOwogfQogCiB1bnNpZ25lZCBsb25nIFhQYXRoUmVzdWx0OjpzbmFwc2hvdExlbmd0aChF
eGNlcHRpb25Db2RlJiBlYykgY29uc3QKQEAgLTIxMSw3ICsxODUsNyBAQCBOb2RlKiBYUGF0aFJl
c3VsdDo6aXRlcmF0ZU5leHQoRXhjZXB0aW9uCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAg
ICAKLSAgICBpZiAobV9pbnZhbGlkSXRlcmF0b3JTdGF0ZSkgeworICAgIGlmIChpbnZhbGlkSXRl
cmF0b3JTdGF0ZSgpKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KSW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaAkocmV2aXNpb24gNDQzMDUpCisrKyBX
ZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAog
LyoKLSAqIENvcHlyaWdodCAyMDA1IEZyZXJpY2ggUmFhYmUgPHJhYWJlQGtkZS5vcmc+Ci0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykg
MjAwNSBGcmVyaWNoIFJhYWJlIDxyYWFiZUBrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA5IEFwcGxlIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjks
MTUgKzI5LDE0IEBACiAKICNpZiBFTkFCTEUoWFBBVEgpCiAKLSNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgIlhQYXRoVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICB0eXBlZGVmIGludCBFeGNlcHRpb25D
b2RlOwogCi0gICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKLSAgICBjbGFzcyBOb2RlOworICAgIGNs
YXNzIERvY3VtZW50OwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgU3RyaW5nOwogCkBAIC01
Niw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIEZJUlNUX09SREVS
RURfTk9ERV9UWVBFID0gOQogICAgICAgICB9OwogICAgICAgICAKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8WFBhdGhSZXN1bHQ+IGNyZWF0ZShOb2RlKiBldmVudFRhcmdldCwgY29uc3QgWFBh
dGg6OlZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFhQYXRoUmVzdWx0KGV2ZW50
VGFyZ2V0LCB2YWx1ZSkpOyB9CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhQYXRoUmVzdWx0
PiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBYUGF0aDo6VmFsdWUmIHZhbHVlKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgWFBhdGhSZXN1bHQoZG9jdW1lbnQsIHZhbHVlKSk7IH0KICAg
ICAgICAgflhQYXRoUmVzdWx0KCk7CiAgICAgICAgIAogICAgICAgICB2b2lkIGNvbnZlcnRUbyh1
bnNpZ25lZCBzaG9ydCB0eXBlLCBFeGNlcHRpb25Db2RlJik7CkBAIC03MywyMSArNzIsMTggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOb2RlKiBpdGVyYXRlTmV4dChFeGNlcHRpb25D
b2RlJik7CiAgICAgICAgIE5vZGUqIHNuYXBzaG90SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBF
eGNlcHRpb25Db2RlJik7CiAKLSAgICAgICAgdm9pZCBpbnZhbGlkYXRlSXRlcmF0b3JTdGF0ZSgp
OwotCiAgICAgcHJpdmF0ZToKLSAgICAgICAgWFBhdGhSZXN1bHQoTm9kZSosIGNvbnN0IFhQYXRo
OjpWYWx1ZSYpOworICAgICAgICBYUGF0aFJlc3VsdChEb2N1bWVudCosIGNvbnN0IFhQYXRoOjpW
YWx1ZSYpOwogICAgICAgICAKICAgICAgICAgWFBhdGg6OlZhbHVlIG1fdmFsdWU7CiAgICAgICAg
IHVuc2lnbmVkIG1fbm9kZVNldFBvc2l0aW9uOwogICAgICAgICBYUGF0aDo6Tm9kZVNldCBtX25v
ZGVTZXQ7IC8vIEZJWE1FOiB3aHkgZHVwbGljYXRlIHRoZSBub2RlIHNldCBzdG9yZWQgaW4gbV92
YWx1ZT8KICAgICAgICAgdW5zaWduZWQgc2hvcnQgbV9yZXN1bHRUeXBlOwotICAgICAgICBib29s
IG1faW52YWxpZEl0ZXJhdG9yU3RhdGU7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBtX2V2ZW50VGFy
Z2V0OwotICAgICAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gbV9ldmVudExpc3RlbmVyOworICAg
ICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CisgICAgICAgIHVuc2lnbmVkIG1fZG9t
VHJlZVZlcnNpb247CiAgICAgfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFhQQVRIKQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NDMxMykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDA5LTA2
LTAxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzEKKyAgICAgICAgWFBhdGhSZXN1bHQgbm90IGludmFsaWRh
dGVkIGZvciBkb2N1bWVudHMgcmV0cmlldmVkIHZpYSBYTUxIdHRwUmVxdWVzdAorCisgICAgICAg
ICogZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhSZXN1bHRfaW52YWxpZEl0ZXJhdG9yU3RhdGVf
QU5ZX1RZUEUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQ
YXRoUmVzdWx0X2ludmFsaWRJdGVyYXRvclN0YXRlX09SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBF
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aFJlc3Vs
dF9pbnZhbGlkSXRlcmF0b3JTdGF0ZV9VTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBkb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aFJlc3VsdF9pdGVy
YXRlTmV4dF9JTlZBTElEX1NUQVRFX0VSUi1leHBlY3RlZC50eHQ6CisgICAgICAgIFRoZXNlIHRl
c3RzIG5vdyBwYXNzLgorCisgICAgICAgICogZmFzdC94cGF0aC9kZXRhY2hlZC1zdWJ0cmVlLWlu
dmFsaWRhdGUtaXRlcmF0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hw
YXRoL2RldGFjaGVkLXN1YnRyZWUtaW52YWxpZGF0ZS1pdGVyYXRvci5odG1sOiBBZGRlZC4KKwog
MjAwOS0wNi0wMSAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuICBMYW5kZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6
IExheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoUmVzdWx0X2ludmFsaWRJdGVy
YXRvclN0YXRlX0FOWV9UWVBFLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aFJlc3VsdF9pbnZhbGlkSXRlcmF0b3JTdGF0ZV9B
TllfVFlQRS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ0MzA1KQorKysgTGF5b3V0VGVzdHMvZG9t
L3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhSZXN1bHRfaW52YWxpZEl0ZXJhdG9yU3RhdGVfQU5ZX1RZ
UEUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEgQEAKLVhQYXRoUmVzdWx0
X2ludmFsaWRJdGVyYXRvclN0YXRlX0FOWV9UWVBFCi10cnVlOiBhc3NlcnRUcnVlIGZhaWxlZAor
WFBhdGhSZXN1bHRfaW52YWxpZEl0ZXJhdG9yU3RhdGVfQU5ZX1RZUEU6IFN1Y2Nlc3MKSW5kZXg6
IExheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoUmVzdWx0X2ludmFsaWRJdGVy
YXRvclN0YXRlX09SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aFJlc3VsdF9pbnZh
bGlkSXRlcmF0b3JTdGF0ZV9PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDQ0MzA1KQorKysgTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBh
dGhSZXN1bHRfaW52YWxpZEl0ZXJhdG9yU3RhdGVfT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEgQEAKLVhQYXRoUmVzdWx0X2lu
dmFsaWRJdGVyYXRvclN0YXRlX09SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFCi10cnVlOiBhc3Nl
cnRUcnVlIGZhaWxlZAorWFBhdGhSZXN1bHRfaW52YWxpZEl0ZXJhdG9yU3RhdGVfT1JERVJFRF9O
T0RFX0lURVJBVE9SX1RZUEU6IFN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS9zdmcvbGV2
ZWwzL3hwYXRoL1hQYXRoUmVzdWx0X2ludmFsaWRJdGVyYXRvclN0YXRlX1VOT1JERVJFRF9OT0RF
X0lURVJBVE9SX1RZUEUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Rv
bS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoUmVzdWx0X2ludmFsaWRJdGVyYXRvclN0YXRlX1VOT1JE
RVJFRF9OT0RFX0lURVJBVE9SX1RZUEUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NDMwNSkKKysr
IExheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoUmVzdWx0X2ludmFsaWRJdGVy
YXRvclN0YXRlX1VOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDIgKzEgQEAKLVhQYXRoUmVzdWx0X2ludmFsaWRJdGVyYXRvclN0YXRl
X1VOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUKLXRydWU6IGFzc2VydFRydWUgZmFpbGVkCitY
UGF0aFJlc3VsdF9pbnZhbGlkSXRlcmF0b3JTdGF0ZV9VTk9SREVSRURfTk9ERV9JVEVSQVRPUl9U
WVBFOiBTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0
aFJlc3VsdF9pdGVyYXRlTmV4dF9JTlZBTElEX1NUQVRFX0VSUi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhSZXN1bHRfaXRl
cmF0ZU5leHRfSU5WQUxJRF9TVEFURV9FUlItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NDMwNSkK
KysrIExheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoUmVzdWx0X2l0ZXJhdGVO
ZXh0X0lOVkFMSURfU1RBVEVfRVJSLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwy
ICsxIEBACi1YUGF0aFJlc3VsdF9pdGVyYXRlTmV4dF9JTlZBTElEX1NUQVRFX0VSUgotdGhyb3df
SU5WQUxJRF9TVEFURV9FUlI6IGFzc2VydFRydWUgZmFpbGVkCitYUGF0aFJlc3VsdF9pdGVyYXRl
TmV4dF9JTlZBTElEX1NUQVRFX0VSUjogU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94
cGF0aC9kZXRhY2hlZC1zdWJ0cmVlLWludmFsaWRhdGUtaXRlcmF0b3ItZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QveHBhdGgvZGV0YWNoZWQtc3VidHJlZS1pbnZh
bGlkYXRlLWl0ZXJhdG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QveHBhdGgvZGV0YWNoZWQtc3VidHJlZS1pbnZhbGlkYXRlLWl0ZXJhdG9yLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0IGl0ZXJhdG9ycyBh
cmUgaW52YWxpZGF0ZWQgZXZlbiBpZiB0aGUgb3JpZ2luYWwgY29udGV4dCBpcyBkZXRhY2hlZC4K
KworUEFTUyByZXN1bHQuaW52YWxpZEl0ZXJhdG9yU3RhdGUgaXMgZmFsc2UKK1BBU1MgcmVzdWx0
Lml0ZXJhdGVOZXh0KCkudGFnTmFtZSBpcyAnc3BhbicKK01vZGlmeWluZyB0aGUgZG9jdW1lbnQu
Li4KK1BBU1MgcmVzdWx0LmludmFsaWRJdGVyYXRvclN0YXRlIGlzIHRydWUKK1BBU1MgcmVzdWx0
Lml0ZXJhdGVOZXh0KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRo
L2RldGFjaGVkLXN1YnRyZWUtaW52YWxpZGF0ZS1pdGVyYXRvci1leHBlY3RlZC50eHQKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0
eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9kZXRhY2hlZC1z
dWJ0cmVlLWludmFsaWRhdGUtaXRlcmF0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L3hwYXRoL2RldGFjaGVkLXN1YnRyZWUtaW52YWxpZGF0ZS1pdGVyYXRvci5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9kZXRhY2hlZC1zdWJ0cmVlLWlu
dmFsaWRhdGUtaXRlcmF0b3IuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InhwYXRoLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCB0aGF0IGl0ZXJhdG9ycyBhcmUgaW52YWxp
ZGF0ZWQgZXZlbiBpZiB0aGUgb3JpZ2luYWwgY29udGV4dCBpcyBkZXRhY2hlZC48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZG9jID0gZG9jdW1lbnQuaW1wbGVt
ZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgImRvYyIsIG51bGwpOwordmFyIHJvb3QgPSBk
b2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cityb290LmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVt
ZW50KCJzcGFuIikpOworcm9vdC5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgicCIpKTsK
KwordmFyIHJlc3VsdCA9IGRvYy5ldmFsdWF0ZSgiLi8vKiIsIHJvb3QsIG51bGwsIFhQYXRoUmVz
dWx0Lk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFLCBudWxsKTsKK3Nob3VsZEJlKCJyZXN1bHQu
aW52YWxpZEl0ZXJhdG9yU3RhdGUiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJyZXN1bHQuaXRlcmF0
ZU5leHQoKS50YWdOYW1lIiwgIidzcGFuJyIpOworCitkZWJ1ZygiTW9kaWZ5aW5nIHRoZSBkb2N1
bWVudC4uLiIpOworZG9jLmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoImZvbyIsICJiYXIi
KTsKKworc2hvdWxkQmUoInJlc3VsdC5pbnZhbGlkSXRlcmF0b3JTdGF0ZSIsICJ0cnVlIik7Citz
aG91bGRUaHJvdygicmVzdWx0Lml0ZXJhdGVOZXh0KCkiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9kZXRhY2hlZC1zdWJ0cmVlLWludmFsaWRh
dGUtaXRlcmF0b3IuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0
L2h0bWwKCg==
</data>
<flag name="review"
          id="15647"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>