<?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>120355</bug_id>
          
          <creation_ts>2013-08-27 05:33:45 -0700</creation_ts>
          <short_desc>Switch some more code to element child/descendant iterators</short_desc>
          <delta_ts>2013-09-05 16:26:44 -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>DOM</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>921463</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-27 05:33:45 -0700</bug_when>
    <thetext>Reasons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921466</commentid>
    <comment_count>1</comment_count>
      <attachid>209755</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-27 05:39:55 -0700</bug_when>
    <thetext>Created attachment 209755
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921470</commentid>
    <comment_count>2</comment_count>
      <attachid>209755</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-27 05:50:01 -0700</bug_when>
    <thetext>Comment on attachment 209755
patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925274</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-05 16:26:44 -0700</bug_when>
    <thetext>This was http://trac.webkit.org/changeset/154679</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209755</attachid>
            <date>2013-08-27 05:39:55 -0700</date>
            <delta_ts>2013-08-27 05:50:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>more-iterators.patch</filename>
            <type>text/plain</type>
            <size>18004</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDY3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDEzLTA4LTI3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTd2l0Y2ggc29tZSBtb3JlIGNv
ZGUgdG8gZWxlbWVudCBjaGlsZC9kZXNjZW5kYW50IGl0ZXJhdG9ycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMzU1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmcm9tIFRyYXZlcnNhbDxFbGVt
ZW50VHlwZT46Om5leHQoKSBhbmQgVHJhdmVyc2FsPEVsZW1lbnRUeXBlPjo6bmV4dFNpYmxpbmco
KSB0byBpdGVyYXRvcnMuCisKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmdldEZvbnREYXRhKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92
ZVRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVCYXNlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpwcm9jZXNzQmFzZUVsZW1lbnQpOgorICAgICAgICAq
IGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpsYWJlbEVs
ZW1lbnRGb3JJZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmZpbmRBbmNob3IpOgor
ICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRmllbGRTZXRFbGVtZW50OjppbnZhbGlkYXRlRGlzYWJsZWRTdGF0ZVVuZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxGaWVsZFNldEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6Cisg
ICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2wpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5jZWxQZW5kaW5n
RXZlbnRzQW5kQ2FsbGJhY2tzKToKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpwYXJhbWV0ZXJzRm9yUGx1
Z2luKToKKyAgICAgICAgKiByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OmJ1aWxkUmVmZXJlbmNlRmlsdGVy
KToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6
CisgICAgICAgIChXZWJDb3JlOjppc1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb24vU01JTFRpbWVDb250YWluZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U01JTFRpbWVDb250YWluZXI6OnVwZGF0ZURvY3VtZW50T3JkZXJJbmRl
eGVzKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHSW1hZ2U6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKToKKwogMjAxMy0wOC0yNiAg
QW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRG9jdW1lbnQncyBy
ZW5kZXJlciBpcyBhbHdheXMgYSBSZW5kZXJWaWV3LgpJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTb3VyY2UuY3BwCShyZXZpc2lvbiAxNTQ2MTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMiArMjYs
MTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NGb250RmFjZVNvdXJjZS5o
IgogCi0jaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlLmgiCiAj
aW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2hpbGRJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRWxlbWVudFRyYXZlcnNhbC5oIgog
I2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2lu
Y2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCkBAIC0xMzksMTQgKzEzOSwxNiBAQCBQYXNzUmVmUHRy
PFNpbXBsZUZvbnREYXRhPiBDU1NGb250RmFjZVNvCiAgICAgICAgICAgICAgICAgaWYgKCFtX2V4
dGVybmFsU1ZHRm9udEVsZW1lbnQpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgICAgICAgICAgICAgaWYgKGF1dG8gZm9udEZhY2VFbGVtZW50ID0gVHJhdmVyc2FsPFNWR0Zv
bnRGYWNlRWxlbWVudD46OmZpcnN0Q2hpbGQobV9leHRlcm5hbFNWR0ZvbnRFbGVtZW50LmdldCgp
KSkgeworICAgICAgICAgICAgICAgIGF1dG8gZm9udEZhY2VDaGlsZHJlbiA9IGNoaWxkcmVuT2ZU
eXBlPFNWR0ZvbnRGYWNlRWxlbWVudD4obV9leHRlcm5hbFNWR0ZvbnRFbGVtZW50LmdldCgpKTsK
KyAgICAgICAgICAgICAgICBhdXRvIGZpcnN0Rm9udEZhY2UgPSBmb250RmFjZUNoaWxkcmVuLmJl
Z2luKCk7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0Rm9udEZhY2UgIT0gZm9udEZhY2VDaGls
ZHJlbi5lbmQoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1fc3ZnRm9udEZhY2VFbGVt
ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSdyZSBjcmVhdGVkIHVzaW5nIGEg
Q1NTIEBmb250LWZhY2UgcnVsZSwgdGhhdCBtZWFucyB3ZSdyZSBub3QgYXNzb2NpYXRlZCB3aXRo
IGEgU1ZHRm9udEZhY2VFbGVtZW50LgogICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHRo
ZSBpbXBvcnRlZCA8Zm9udC1mYWNlPiB0YWcgYXMgcmVmZXJlbmNpbmcgZm9udC1mYWNlIGVsZW1l
bnQgZm9yIHRoZXNlIGNhc2VzLgotICAgICAgICAgICAgICAgICAgICAgICAgbV9zdmdGb250RmFj
ZUVsZW1lbnQgPSBmb250RmFjZUVsZW1lbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3N2
Z0ZvbnRGYWNlRWxlbWVudCA9ICYqZmlyc3RGb250RmFjZTsKICAgICAgICAgICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICAgICAgICAgIGZvbnREYXRhID0gU2ltcGxlRm9udERhdGE6OmNyZWF0
ZShTVkdGb250RGF0YTo6Y3JlYXRlKGZvbnRGYWNlRWxlbWVudCksIGZvbnREZXNjcmlwdGlvbi5j
b21wdXRlZFBpeGVsU2l6ZSgpLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMpOworICAg
ICAgICAgICAgICAgICAgICBmb250RGF0YSA9IFNpbXBsZUZvbnREYXRhOjpjcmVhdGUoU1ZHRm9u
dERhdGE6OmNyZWF0ZSgmKmZpcnN0Rm9udEZhY2UpLCBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQ
aXhlbFNpemUoKSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9IGVsc2UKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCShyZXZpc2lvbiAxNTQ2MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTY1LDggKzE1NjUsOSBAQCB2b2lkIERvY3VtZW50Ojpy
ZW1vdmVUaXRsZShFbGVtZW50KiB0aXRsCiAKICAgICAvLyBVcGRhdGUgdGl0bGUgYmFzZWQgb24g
Zmlyc3QgdGl0bGUgZWxlbWVudCBpbiB0aGUgaGVhZCwgaWYgb25lIGV4aXN0cy4KICAgICBpZiAo
SFRNTEVsZW1lbnQqIGhlYWRFbGVtZW50ID0gaGVhZCgpKSB7Ci0gICAgICAgIGlmIChIVE1MVGl0
bGVFbGVtZW50KiB0aXRsZUVsZW1lbnQgPSBUcmF2ZXJzYWw8SFRNTFRpdGxlRWxlbWVudD46OmZp
cnN0V2l0aGluKGhlYWRFbGVtZW50KSkKLSAgICAgICAgICAgIHNldFRpdGxlRWxlbWVudCh0aXRs
ZUVsZW1lbnQtPnRleHRXaXRoRGlyZWN0aW9uKCksIHRpdGxlRWxlbWVudCk7CisgICAgICAgIGF1
dG8gZmlyc3RUaXRsZSA9IGNoaWxkcmVuT2ZUeXBlPEhUTUxUaXRsZUVsZW1lbnQ+KGhlYWRFbGVt
ZW50KS5iZWdpbigpOworICAgICAgICBpZiAoZmlyc3RUaXRsZSAhPSBjaGlsZHJlbk9mVHlwZTxI
VE1MVGl0bGVFbGVtZW50PihoZWFkRWxlbWVudCkuZW5kKCkpCisgICAgICAgICAgICBzZXRUaXRs
ZUVsZW1lbnQoZmlyc3RUaXRsZS0+dGV4dFdpdGhEaXJlY3Rpb24oKSwgJipmaXJzdFRpdGxlKTsK
ICAgICB9CiAKICAgICBpZiAoIW1fdGl0bGVFbGVtZW50KQpAQCAtMjY0OCw3ICsyNjQ5LDggQEAg
dm9pZCBEb2N1bWVudDo6dXBkYXRlQmFzZVVSTCgpCiAgICAgaWYgKCFlcXVhbElnbm9yaW5nRnJh
Z21lbnRJZGVudGlmaWVyKG9sZEJhc2VVUkwsIG1fYmFzZVVSTCkpIHsKICAgICAgICAgLy8gQmFz
ZSBVUkwgY2hhbmdlIGNoYW5nZXMgYW55IHJlbGF0aXZlIHZpc2l0ZWQgbGlua3MuCiAgICAgICAg
IC8vIEZJWE1FOiBUaGVyZSBhcmUgb3RoZXIgVVJMcyBpbiB0aGUgdHJlZSB0aGF0IHdvdWxkIG5l
ZWQgdG8gYmUgcmUtZXZhbHVhdGVkIG9uIGR5bmFtaWMgYmFzZSBVUkwgY2hhbmdlLiBTdHlsZSBz
aG91bGQgYmUgaW52YWxpZGF0ZWQgdG9vLgotICAgICAgICBmb3IgKEhUTUxBbmNob3JFbGVtZW50
KiBhbmNob3IgPSBUcmF2ZXJzYWw8SFRNTEFuY2hvckVsZW1lbnQ+OjpmaXJzdFdpdGhpbih0aGlz
KTsgYW5jaG9yOyBhbmNob3IgPSBUcmF2ZXJzYWw8SFRNTEFuY2hvckVsZW1lbnQ+OjpuZXh0KGFu
Y2hvcikpCisgICAgICAgIGF1dG8gYW5jaG9yRGVzY2VuZGFudHMgPSBkZXNjZW5kYW50c09mVHlw
ZTxIVE1MQW5jaG9yRWxlbWVudD4odGhpcyk7CisgICAgICAgIGZvciAoYXV0byBhbmNob3IgPSBh
bmNob3JEZXNjZW5kYW50cy5iZWdpbigpLCBlbmQgPSBhbmNob3JEZXNjZW5kYW50cy5lbmQoKTsg
YW5jaG9yICE9IGVuZDsgKythbmNob3IpCiAgICAgICAgICAgICBhbmNob3ItPmludmFsaWRhdGVD
YWNoZWRWaXNpdGVkTGlua0hhc2goKTsKICAgICB9CiB9CkBAIC0yNjY0LDcgKzI2NjYsOCBAQCB2
b2lkIERvY3VtZW50Ojpwcm9jZXNzQmFzZUVsZW1lbnQoKQogICAgIC8vIEZpbmQgdGhlIGZpcnN0
IGhyZWYgYXR0cmlidXRlIGluIGEgYmFzZSBlbGVtZW50IGFuZCB0aGUgZmlyc3QgdGFyZ2V0IGF0
dHJpYnV0ZSBpbiBhIGJhc2UgZWxlbWVudC4KICAgICBjb25zdCBBdG9taWNTdHJpbmcqIGhyZWYg
PSAwOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyogdGFyZ2V0ID0gMDsKLSAgICBmb3IgKEhUTUxC
YXNlRWxlbWVudCogYmFzZSA9IFRyYXZlcnNhbDxIVE1MQmFzZUVsZW1lbnQ+OjpmaXJzdFdpdGhp
bih0aGlzKTsgYmFzZSAmJiAoIWhyZWYgfHwgIXRhcmdldCk7IGJhc2UgPSBUcmF2ZXJzYWw8SFRN
TEJhc2VFbGVtZW50Pjo6bmV4dChiYXNlKSkgeworICAgIGF1dG8gYmFzZURlc2NlbmRhbnRzID0g
ZGVzY2VuZGFudHNPZlR5cGU8SFRNTEJhc2VFbGVtZW50Pih0aGlzKTsKKyAgICBmb3IgKGF1dG8g
YmFzZSA9IGJhc2VEZXNjZW5kYW50cy5iZWdpbigpLCBlbmQgPSBiYXNlRGVzY2VuZGFudHMuZW5k
KCk7IGJhc2UgIT0gZW5kICYmICghaHJlZiB8fCAhdGFyZ2V0KTsgKytiYXNlKSB7CiAgICAgICAg
IGlmICghaHJlZikgewogICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGJh
c2UtPmZhc3RHZXRBdHRyaWJ1dGUoaHJlZkF0dHIpOwogICAgICAgICAgICAgaWYgKCF2YWx1ZS5p
c051bGwoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCShyZXZpc2lvbiAxNTQ2MTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsOSArMzAsOSBAQAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJET01T
ZWxlY3Rpb24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEZXNjZW5kYW50
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
LSNpbmNsdWRlICJFbGVtZW50VHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTI5OCwx
MCArMjk4LDEyIEBAIEhUTUxMYWJlbEVsZW1lbnQqIFRyZWVTY29wZTo6bGFiZWxFbGVtZW4KICAg
ICBpZiAoIW1fbGFiZWxzQnlGb3JBdHRyaWJ1dGUpIHsKICAgICAgICAgLy8gUG9wdWxhdGUgdGhl
IG1hcCBvbiBmaXJzdCBhY2Nlc3MuCiAgICAgICAgIG1fbGFiZWxzQnlGb3JBdHRyaWJ1dGUgPSBh
ZG9wdFB0cihuZXcgRG9jdW1lbnRPcmRlcmVkTWFwKTsKLSAgICAgICAgZm9yIChIVE1MTGFiZWxF
bGVtZW50KiBsYWJlbCA9IFRyYXZlcnNhbDxIVE1MTGFiZWxFbGVtZW50Pjo6Zmlyc3RXaXRoaW4o
cm9vdE5vZGUoKSk7IGxhYmVsOyBsYWJlbCA9IFRyYXZlcnNhbDxIVE1MTGFiZWxFbGVtZW50Pjo6
bmV4dChsYWJlbCkpIHsKKworICAgICAgICBhdXRvIGxhYmVsRGVzY2VuZGFudHMgPSBkZXNjZW5k
YW50c09mVHlwZTxIVE1MTGFiZWxFbGVtZW50Pihyb290Tm9kZSgpKTsKKyAgICAgICAgZm9yIChh
dXRvIGxhYmVsID0gbGFiZWxEZXNjZW5kYW50cy5iZWdpbigpLCBlbmQgPSBsYWJlbERlc2NlbmRh
bnRzLmVuZCgpOyBsYWJlbCAhPSBlbmQ7ICsrbGFiZWwpIHsKICAgICAgICAgICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgZm9yVmFsdWUgPSBsYWJlbC0+ZmFzdEdldEF0dHJpYnV0ZShmb3JBdHRyKTsK
ICAgICAgICAgICAgIGlmICghZm9yVmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGFk
ZExhYmVsKGZvclZhbHVlLCBsYWJlbCk7CisgICAgICAgICAgICAgICAgYWRkTGFiZWwoZm9yVmFs
dWUsICYqbGFiZWwpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0zMzksMTUgKzM0MSwxNiBAQCBF
bGVtZW50KiBUcmVlU2NvcGU6OmZpbmRBbmNob3IoY29uc3QgU3RyCiAgICAgICAgIHJldHVybiAw
OwogICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gZ2V0RWxlbWVudEJ5SWQobmFtZSkpCiAgICAg
ICAgIHJldHVybiBlbGVtZW50OwotICAgIGZvciAoSFRNTEFuY2hvckVsZW1lbnQqIGFuY2hvciA9
IFRyYXZlcnNhbDxIVE1MQW5jaG9yRWxlbWVudD46OmZpcnN0V2l0aGluKHJvb3ROb2RlKCkpOyBh
bmNob3I7IGFuY2hvciA9IFRyYXZlcnNhbDxIVE1MQW5jaG9yRWxlbWVudD46Om5leHQoYW5jaG9y
KSkgeworICAgIGF1dG8gYW5jaG9yRGVzY2VuZGFudHMgPSBkZXNjZW5kYW50c09mVHlwZTxIVE1M
QW5jaG9yRWxlbWVudD4ocm9vdE5vZGUoKSk7CisgICAgZm9yIChhdXRvIGFuY2hvciA9IGFuY2hv
ckRlc2NlbmRhbnRzLmJlZ2luKCksIGVuZCA9IGFuY2hvckRlc2NlbmRhbnRzLmVuZCgpOyBhbmNo
b3IgIT0gZW5kOyArK2FuY2hvcikgewogICAgICAgICBpZiAocm9vdE5vZGUoKS0+ZG9jdW1lbnQo
KS0+aW5RdWlya3NNb2RlKCkpIHsKICAgICAgICAgICAgIC8vIFF1aXJrcyBtb2RlLCBjYXNlIGlu
c2Vuc2l0aXZlIGNvbXBhcmlzb24gb2YgbmFtZXMuCiAgICAgICAgICAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UoYW5jaG9yLT5uYW1lKCksIG5hbWUpKQotICAgICAgICAgICAgICAgIHJldHVybiBh
bmNob3I7CisgICAgICAgICAgICAgICAgcmV0dXJuICYqYW5jaG9yOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgLy8gU3RyaWN0IG1vZGUsIG5hbWVzIG5lZWQgdG8gbWF0Y2ggZXhhY3Rs
eS4KICAgICAgICAgICAgIGlmIChhbmNob3ItPm5hbWUoKSA9PSBuYW1lKQotICAgICAgICAgICAg
ICAgIHJldHVybiBhbmNob3I7CisgICAgICAgICAgICAgICAgcmV0dXJuICYqYW5jaG9yOwogICAg
ICAgICB9CiAgICAgfQogICAgIHJldHVybiAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQ2MTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3
ICsyNSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxl
bWVudC5oIgogCi0jaW5jbHVkZSAiRWxlbWVudFRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIkNoaWxk
SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJEZXNjZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJI
VE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCkBAIC01MSw3ICs1Miw4IEBAIFBhc3NSZWZQdHI8SFRNTEZpZWxkU2V0
RWxlbWVudD4gSFRNTEZpZWwKIAogdm9pZCBIVE1MRmllbGRTZXRFbGVtZW50OjppbnZhbGlkYXRl
RGlzYWJsZWRTdGF0ZVVuZGVyKEVsZW1lbnQqIGJhc2UpCiB7Ci0gICAgZm9yIChIVE1MRm9ybUNv
bnRyb2xFbGVtZW50KiBjb250cm9sID0gVHJhdmVyc2FsPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+
OjpmaXJzdFdpdGhpbihiYXNlKTsgY29udHJvbDsgY29udHJvbCA9IFRyYXZlcnNhbDxIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Pjo6bmV4dChjb250cm9sLCBiYXNlKSkKKyAgICBhdXRvIGZvcm1Db250
cm9sRGVzY2VuZGFudHMgPSBkZXNjZW5kYW50c09mVHlwZTxIVE1MRm9ybUNvbnRyb2xFbGVtZW50
PihiYXNlKTsKKyAgICBmb3IgKGF1dG8gY29udHJvbCA9IGZvcm1Db250cm9sRGVzY2VuZGFudHMu
YmVnaW4oKSwgZW5kID0gZm9ybUNvbnRyb2xEZXNjZW5kYW50cy5lbmQoKTsgY29udHJvbCAhPSBl
bmQ7ICsrY29udHJvbCkKICAgICAgICAgY29udHJvbC0+YW5jZXN0b3JEaXNhYmxlZFN0YXRlV2Fz
Q2hhbmdlZCgpOwogfQogCkBAIC02NSw4ICs2NywxMCBAQCB2b2lkIEhUTUxGaWVsZFNldEVsZW1l
bnQ6OmRpc2FibGVkQXR0cmliCiB2b2lkIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZnRl
ckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkKIHsKICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlZEJ5UGFyc2VyLCBiZWZvcmVDaGFuZ2UsIGFmdGVy
Q2hhbmdlLCBjaGlsZENvdW50RGVsdGEpOwotICAgIGZvciAoSFRNTExlZ2VuZEVsZW1lbnQqIGxl
Z2VuZCA9IFRyYXZlcnNhbDxIVE1MTGVnZW5kRWxlbWVudD46OmZpcnN0Q2hpbGQodGhpcyk7IGxl
Z2VuZDsgbGVnZW5kID0gVHJhdmVyc2FsPEhUTUxMZWdlbmRFbGVtZW50Pjo6bmV4dFNpYmxpbmco
bGVnZW5kKSkKLSAgICAgICAgaW52YWxpZGF0ZURpc2FibGVkU3RhdGVVbmRlcihsZWdlbmQpOwor
CisgICAgYXV0byBsZWdlbmRDaGlsZHJlbiA9IGNoaWxkcmVuT2ZUeXBlPEhUTUxMZWdlbmRFbGVt
ZW50Pih0aGlzKTsKKyAgICBmb3IgKGF1dG8gbGVnZW5kID0gbGVnZW5kQ2hpbGRyZW4uYmVnaW4o
KSwgZW5kID0gbGVnZW5kQ2hpbGRyZW4uZW5kKCk7IGxlZ2VuZCAhPSBlbmQ7ICsrbGVnZW5kKQor
ICAgICAgICBpbnZhbGlkYXRlRGlzYWJsZWRTdGF0ZVVuZGVyKCYqbGVnZW5kKTsKIH0KIAogYm9v
bCBIVE1MRmllbGRTZXRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAkocmV2aXNpb24gMTU0NjEyKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjUsOCArMjUsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxMYWJl
bEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkRlc2NlbmRhbnRJdGVyYXRvci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRWxlbWVudFRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5oIgpAQCAtNjksMTEgKzY5LDEwIEBAIExhYmVsYWJsZUVsZW1lbnQqIEhUTUxMYWJl
bEVsZW1lbnQ6OmNvbnQKICAgICAgICAgLy8gU2VhcmNoIHRoZSBjaGlsZHJlbiBhbmQgZGVzY2Vu
ZGFudHMgb2YgdGhlIGxhYmVsIGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVtZW50LgogICAgICAgICAv
LyBwZXIgaHR0cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3RoZS1sYWJl
bC1lbGVtZW50CiAgICAgICAgIC8vIHRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSAibGFiZWxhYmxl
IGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50Ii4KLQotICAgICAgICBMYWJlbGFibGVFbGVtZW50KiBs
YWJlbGFibGVFbGVtZW50ID0gVHJhdmVyc2FsPExhYmVsYWJsZUVsZW1lbnQ+OjpmaXJzdFdpdGhp
bih0aGlzKTsKLSAgICAgICAgZm9yICg7IGxhYmVsYWJsZUVsZW1lbnQ7IGxhYmVsYWJsZUVsZW1l
bnQgPSBUcmF2ZXJzYWw8TGFiZWxhYmxlRWxlbWVudD46Om5leHQobGFiZWxhYmxlRWxlbWVudCwg
dGhpcykpIHsKKyAgICAgICAgYXV0byBsYWJlbGFibGVEZXNjZW5kYW50cyA9IGRlc2NlbmRhbnRz
T2ZUeXBlPExhYmVsYWJsZUVsZW1lbnQ+KHRoaXMpOworICAgICAgICBmb3IgKGF1dG8gbGFiZWxh
YmxlRWxlbWVudCA9IGxhYmVsYWJsZURlc2NlbmRhbnRzLmJlZ2luKCksIGVuZCA9IGxhYmVsYWJs
ZURlc2NlbmRhbnRzLmVuZCgpOyBsYWJlbGFibGVFbGVtZW50ICE9IGVuZDsgKytsYWJlbGFibGVF
bGVtZW50KSB7CiAgICAgICAgICAgICBpZiAobGFiZWxhYmxlRWxlbWVudC0+c3VwcG9ydExhYmVs
cygpKQotICAgICAgICAgICAgICAgIHJldHVybiBsYWJlbGFibGVFbGVtZW50OworICAgICAgICAg
ICAgICAgIHJldHVybiAmKmxhYmVsYWJsZUVsZW1lbnQ7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTQ2MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUxLDcgKzE2NTEsOCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNhbmNlbFBlbmRpbmdFdmVuCiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlh
RWxlbWVudDo6Y2FuY2VsUGVuZGluZ0V2ZW50c0FuZENhbGxiYWNrcyIpOwogICAgIG1fYXN5bmNF
dmVudFF1ZXVlLT5jYW5jZWxBbGxFdmVudHMoKTsKIAotICAgIGZvciAoYXV0byBzb3VyY2UgPSBU
cmF2ZXJzYWw8SFRNTFNvdXJjZUVsZW1lbnQ+OjpmaXJzdENoaWxkKHRoaXMpOyBzb3VyY2U7IHNv
dXJjZSA9IFRyYXZlcnNhbDxIVE1MU291cmNlRWxlbWVudD46Om5leHRTaWJsaW5nKHNvdXJjZSkp
CisgICAgYXV0byBzb3VyY2VDaGlsZHJlbiA9IGNoaWxkcmVuT2ZUeXBlPEhUTUxTb3VyY2VFbGVt
ZW50Pih0aGlzKTsKKyAgICBmb3IgKGF1dG8gc291cmNlID0gc291cmNlQ2hpbGRyZW4uYmVnaW4o
KSwgZW5kID0gc291cmNlQ2hpbGRyZW4uZW5kKCk7IHNvdXJjZSAhPSBlbmQ7ICsrc291cmNlKQog
ICAgICAgICBzb3VyY2UtPmNhbmNlbFBlbmRpbmdFcnJvckV2ZW50KCk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQ2MTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsOSArMjcsOSBAQAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUg
IkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUg
IkNoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVD
bGllbnQuaCIKLSNpbmNsdWRlICJFbGVtZW50VHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGb3JtRGF0YUxp
c3QuaCIKQEAgLTE1Myw3ICsxNTMsOCBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpwYXJhbWV0
ZXJzRm9yUGx1CiAgICAgCiAgICAgLy8gU2NhbiB0aGUgUEFSQU0gY2hpbGRyZW4gYW5kIHN0b3Jl
IHRoZWlyIG5hbWUvdmFsdWUgcGFpcnMuCiAgICAgLy8gR2V0IHRoZSBVUkwgYW5kIHR5cGUgZnJv
bSB0aGUgcGFyYW1zIGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSB0aGVtLgotICAgIGZvciAoYXV0
byBwYXJhbSA9IFRyYXZlcnNhbDxIVE1MUGFyYW1FbGVtZW50Pjo6Zmlyc3RDaGlsZCh0aGlzKTsg
cGFyYW07IHBhcmFtID0gVHJhdmVyc2FsPEhUTUxQYXJhbUVsZW1lbnQ+OjpuZXh0U2libGluZyhw
YXJhbSkpIHsKKyAgICBhdXRvIHBhcmFtQ2hpbGRyZW4gPSBjaGlsZHJlbk9mVHlwZTxIVE1MUGFy
YW1FbGVtZW50Pih0aGlzKTsKKyAgICBmb3IgKGF1dG8gcGFyYW0gPSBwYXJhbUNoaWxkcmVuLmJl
Z2luKCksIGVuZCA9IHBhcmFtQ2hpbGRyZW4uZW5kKCk7IHBhcmFtICE9IGVuZDsgKytwYXJhbSkg
ewogICAgICAgICBTdHJpbmcgbmFtZSA9IHBhcmFtLT5uYW1lKCk7CiAgICAgICAgIGlmIChuYW1l
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCShyZXZpc2lvbiAxNTQ2
MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBACiAKICNpbmNsdWRlICJGaWx0ZXJFZmZl
Y3RSZW5kZXJlci5oIgogCisjaW5jbHVkZSAiQ2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkNv
bG9yU3BhY2UuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkVsZW1lbnRUcmF2
ZXJzYWwuaCIKICNpbmNsdWRlICJGRUNvbG9yTWF0cml4LmgiCiAjaW5jbHVkZSAiRkVDb21wb25l
bnRUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkZFRHJvcFNoYWRvdy5oIgpAQCAtMTU5LDExICsxNTks
OSBAQCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gRmlsdGVyRWZmZWN0UmVuCiAgICAgLy8gVGhp
cyBtYXkgbmVlZCBhIHNwZWMgY2xhcmlmaWNhdGlvbi4KICAgICBSZWZQdHI8U1ZHRmlsdGVyQnVp
bGRlcj4gYnVpbGRlciA9IFNWR0ZpbHRlckJ1aWxkZXI6OmNyZWF0ZShwcmV2aW91c0VmZmVjdCwg
U291cmNlQWxwaGE6OmNyZWF0ZSh0aGlzKSk7CiAKLSAgICBmb3IgKFNWR0VsZW1lbnQqIHN2Z0Vs
ZW1lbnQgPSBUcmF2ZXJzYWw8U1ZHRWxlbWVudD46OmZpcnN0Q2hpbGQoZmlsdGVyKTsgc3ZnRWxl
bWVudDsgc3ZnRWxlbWVudCA9IFRyYXZlcnNhbDxTVkdFbGVtZW50Pjo6bmV4dFNpYmxpbmcoc3Zn
RWxlbWVudCkpIHsKLSAgICAgICAgaWYgKCFzdmdFbGVtZW50LT5pc0ZpbHRlckVmZmVjdCgpKQot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcyogZWZmZWN0RWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcyo+KHN2Z0VsZW1lbnQpOwotCisgICAgYXV0byBhdHRyaWJ1dGVz
Q2hpbGRyZW4gPSBjaGlsZHJlbk9mVHlwZTxTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXM+KGZpbHRlcik7CisgICAgZm9yIChhdXRvIGl0ID0gYXR0cmlidXRlc0NoaWxkcmVuLmJl
Z2luKCksIGVuZCA9IGF0dHJpYnV0ZXNDaGlsZHJlbi5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7
CisgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyogZWZmZWN0RWxl
bWVudCA9ICYqaXQ7CiAgICAgICAgIGVmZmVjdCA9IGVmZmVjdEVsZW1lbnQtPmJ1aWxkKGJ1aWxk
ZXIuZ2V0KCksIHRoaXMpOwogICAgICAgICBpZiAoIWVmZmVjdCkKICAgICAgICAgICAgIGNvbnRp
bnVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAkocmV2aXNpb24gMTU0NjEyKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Myw2ICs4MywxNCBAQCBwcml2YXRlOgogCiB2b2lkIGludmFsaWRhdGVG
aWx0ZXJQcmltaXRpdmVQYXJlbnQoU1ZHRWxlbWVudCopOwogCitpbmxpbmUgYm9vbCBpc1NWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyhjb25zdCBOb2RlKiBub2RlKQoreworICAg
IHJldHVybiBub2RlLT5pc1NWR0VsZW1lbnQoKSAmJiB0b1NWR0VsZW1lbnQobm9kZSktPmlzRmls
dGVyRWZmZWN0KCk7Cit9CisKK3RlbXBsYXRlIDw+IGlubGluZSBib29sIGlzRWxlbWVudE9mVHlw
ZTxTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+KGNvbnN0IEVsZW1lbnQqIGVs
ZW1lbnQpIHsgcmV0dXJuIGlzU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKGVs
ZW1lbnQpOyB9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNWRykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU01JTFRpbWVDb250YWlu
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU01JTFRp
bWVDb250YWluZXIuY3BwCShyZXZpc2lvbiAxNTQ2MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
YW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCAr
MjcsOCBAQAogI2luY2x1ZGUgIlNNSUxUaW1lQ29udGFpbmVyLmgiCiAKICNpZiBFTkFCTEUoU1ZH
KQorI2luY2x1ZGUgIkRlc2NlbmRhbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
Ci0jaW5jbHVkZSAiRWxlbWVudFRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAj
aW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCkBA
IC0yMjIsOSArMjIyLDExIEBAIHZvaWQgU01JTFRpbWVDb250YWluZXI6OnRpbWVyRmlyZWQoVGlt
ZXIKIHZvaWQgU01JTFRpbWVDb250YWluZXI6OnVwZGF0ZURvY3VtZW50T3JkZXJJbmRleGVzKCkK
IHsKICAgICB1bnNpZ25lZCB0aW1pbmdFbGVtZW50Q291bnQgPSAwOwotICAgIFNWR1NNSUxFbGVt
ZW50KiBzbWlsRWxlbWVudCA9IFRyYXZlcnNhbDxTVkdTTUlMRWxlbWVudD46OmZpcnN0V2l0aGlu
KG1fb3duZXJTVkdFbGVtZW50KTsKLSAgICBmb3IgKDsgc21pbEVsZW1lbnQ7IHNtaWxFbGVtZW50
ID0gVHJhdmVyc2FsPFNWR1NNSUxFbGVtZW50Pjo6bmV4dChzbWlsRWxlbWVudCwgbV9vd25lclNW
R0VsZW1lbnQpKQorCisgICAgYXV0byBzbWlsRGVzY2VuZGFudHMgPSBkZXNjZW5kYW50c09mVHlw
ZTxTVkdTTUlMRWxlbWVudD4obV9vd25lclNWR0VsZW1lbnQpOworICAgIGZvciAoYXV0byBzbWls
RWxlbWVudCA9IHNtaWxEZXNjZW5kYW50cy5iZWdpbigpLCBlbmQgPSBzbWlsRGVzY2VuZGFudHMu
ZW5kKCk7IHNtaWxFbGVtZW50ICE9IGVuZDsgKytzbWlsRWxlbWVudCkKICAgICAgICAgc21pbEVs
ZW1lbnQtPnNldERvY3VtZW50T3JkZXJJbmRleCh0aW1pbmdFbGVtZW50Q291bnQrKyk7CisKICAg
ICBtX2RvY3VtZW50T3JkZXJJbmRleGVzRGlydHkgPSBmYWxzZTsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCShyZXZpc2lvbiAxNTQ2MTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiU1ZHSW1hZ2UuaCIKIAogI2luY2x1ZGUgIkNocm9t
ZS5oIgorI2luY2x1ZGUgIkRlc2NlbmRhbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCi0jaW5jbHVkZSAiRWxlbWVudFRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZl
ci5oIgpAQCAtNzUsNyArNzUsOCBAQCBib29sIFNWR0ltYWdlOjpoYXNTaW5nbGVTZWN1cml0eU9y
aWdpbigpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gRG9uJ3QgYWxsb3cgZm9yZWln
bk9iamVjdCBlbGVtZW50cyBzaW5jZSB0aGV5IGNhbiBsZWFrIGluZm9ybWF0aW9uIHdpdGggYXJi
aXRyYXJ5IEhUTUwgKGxpa2Ugc3BlbGxjaGVjayBvciBjb250cm9sIHRoZW1lKS4KLSAgICBpZiAo
VHJhdmVyc2FsPFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50Pjo6Zmlyc3RXaXRoaW4ocm9vdEVsZW1l
bnQpKQorICAgIGF1dG8gZm9yZWlnbk9iamVjdERlc2NlbmRhbnRzID0gZGVzY2VuZGFudHNPZlR5
cGU8U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ+KHJvb3RFbGVtZW50KTsKKyAgICBpZiAoZm9yZWln
bk9iamVjdERlc2NlbmRhbnRzLmJlZ2luKCkgIT0gZm9yZWlnbk9iamVjdERlc2NlbmRhbnRzLmVu
ZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBCZWNhdXNlIFNWRyBpbWFnZSBy
ZW5kZXJpbmcgZGlzYWxsb3dzIGV4dGVybmFsIHJlc291cmNlcyBhbmQgbGlua3MsCg==
</data>
<flag name="review"
          id="231805"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>