<?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>27745</bug_id>
          
          <creation_ts>2009-07-27 16:55:50 -0700</creation_ts>
          <short_desc>fix more obvious global object lookups</short_desc>
          <delta_ts>2010-02-26 23:11:57 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>27634</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>paul</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>135061</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-27 16:55:50 -0700</bug_when>
    <thetext>fix more obvious global object lookups

This patch will be the untestable (or at least very difficult to test) prototype lookups.  The remaining pieces of bug 27634 will all need tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135066</commentid>
    <comment_count>1</comment_count>
      <attachid>33582</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-27 17:01:07 -0700</bug_when>
    <thetext>Created attachment 33582
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135068</commentid>
    <comment_count>2</comment_count>
      <attachid>33582</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-27 17:14:49 -0700</bug_when>
    <thetext>Comment on attachment 33582
patch

Ok.  The ones that use global execs probably don&apos;t have any observable change.  The ones about wrapping the events, you might be able to test with page-created events and synchronous dispatching, but I&apos;m not sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135071</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-27 17:21:06 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/bindings/js/JSDOMWindowBase.cpp
	M	WebCore/bindings/js/JSDataGridColumnListCustom.cpp
	M	WebCore/bindings/js/JSEventListener.cpp
	M	WebCore/bindings/js/JSEventTarget.cpp
	M	WebCore/bindings/js/JSHTMLElementCustom.cpp
	M	WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
	M	WebCore/bindings/js/JSLazyEventListener.cpp
	M	WebCore/bindings/js/ScriptController.cpp
	M	WebCore/bindings/js/ScriptEventListener.cpp
	M	WebCore/bindings/js/ScriptObject.cpp
	M	WebCore/bindings/js/ScriptObjectQuarantine.cpp
	M	WebCore/bindings/objc/DOMInternal.mm
Committed r46444
	M	WebCore/ChangeLog
	M	WebCore/bindings/js/ScriptEventListener.cpp
	M	WebCore/bindings/js/JSDataGridColumnListCustom.cpp
	M	WebCore/bindings/js/JSEventListener.cpp
	M	WebCore/bindings/js/ScriptObject.cpp
	M	WebCore/bindings/js/JSHTMLElementCustom.cpp
	M	WebCore/bindings/js/JSLazyEventListener.cpp
	M	WebCore/bindings/js/JSDOMWindowBase.cpp
	M	WebCore/bindings/js/ScriptController.cpp
	M	WebCore/bindings/js/ScriptObjectQuarantine.cpp
	M	WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
	M	WebCore/bindings/js/JSEventTarget.cpp
	M	WebCore/bindings/objc/DOMInternal.mm
r46444 = 8568d33f7c41bbcda2101e2710d3cf1c6f917fa2 (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/46444</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194465</commentid>
    <comment_count>4</comment_count>
    <who name="Paul Sowden">paul</who>
    <bug_when>2010-02-26 23:11:57 -0800</bug_when>
    <thetext>Pretty sure bug 26520 was an observable symptom of this changeset.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33582</attachid>
            <date>2009-07-27 17:01:07 -0700</date>
            <delta_ts>2009-07-27 17:14:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27745-20090727170106.patch</filename>
            <type>text/plain</type>
            <size>15595</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTYwM2E0NC4uMTBiMDg2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAwOS0wNy0yNyAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgZml4IG1vcmUgb2J2aW91cyBnbG9iYWwgb2JqZWN0IGxvb2t1cHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzQ1CisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGZvciB0aGVzZSBjaGFuZ2VzLiAgSSBiZWxpZXZlIGluIG1hbnkgY2Fz
ZXMKKyAgICAgICAgdGVzdGluZyB0byBiZSBpbXBvc3NpYmxlLiAgTGFjayBvZiB0ZXN0aW5nIGp1
c3RpZmljYXRpb24gbmV4dCB0bworICAgICAgICBlYWNoIGNoYW5nZSBiZWxvdy4gIFRoZSByZW1h
aW5pbmcgcGllY2VzIG9mIGJ1ZyAyNzYzNCB3aWxsIGFsbAorICAgICAgICBuZWVkIHRlc3RzLgor
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93QmFzZTo6dXBkYXRlRG9jdW1lbnQpOiBub3QgdGVzdGFibGUuCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNEYXRhR3JpZENvbHVtbkxpc3Q6Om5hbWVHZXR0ZXIpOiBubyB0ZXN0
aW5nIGZvciB0aGlzIGluY29tcGxldGUgZmVhdHVyZS4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjpo
YW5kbGVFdmVudCk6IHdvdWxkIHJlcXVpcmUgb3V0ZXIgZnJhbWUgdG8gdHJpZ2dlciBhbiBldmVu
dCBpbiB0aGUgaW5uZXIgZnJhbWUKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBjb3ZlcmVkIGJ5IG90aGVyIHRlc3RzLCBh
bHdheXMgY29ycmVjdCB0byBwYXNzIHRoZSBnbG9iYWxPYmplY3QgdGhyb3VnaC4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTSFRNTEVsZW1lbnQ6OnB1c2hFdmVudEhhbmRsZXJTY29wZSk6IHVuY2xlYXIgd2hlbiB0aGlz
IGNvdWxkIGJlIHRyaWdnZXJlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25z
Q29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxPcHRpb25zQ29s
bGVjdGlvbjo6cmVtb3ZlKTogdG9KUyBzZWVtcyBzdXBlcmZsdW91cyBoZXJlIHRvIGJlZ2luIHdp
dGguCisgICAgICAgICogYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0xhenlFdmVudExpc3RlbmVyOjpwYXJzZUNvZGUpOiB3b3VsZCByZXF1
aXJlIG91dGVyIGZyYW1lIHRvIHRyaWdnZXIgaW5uZXIgZnJhbWUgZXZlbnQuCisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRDb250cm9sbGVyOjpqc09iamVjdEZvclBsdWdpbkVsZW1lbnQpOiBvbmx5IHVzZWQgZm9yIE5Q
QVBJIGJpbmRpbmcsIHVuY2xlYXIgaG93IHRvIHRlc3QuCisgICAgICAgICogYmluZGluZ3MvanMv
U2NyaXB0RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdHRyaWJ1
dGVFdmVudExpc3RlbmVyKTogdW5jbGVhciBob3cgdG8gdGVzdC4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0R2xvYmFsT2Jq
ZWN0OjpzZXQpOiB1bmNsZWFyIGhvdyB0byB0ZXN0L2luc3BlY3RvciBvbmx5LgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z2V0UXVhcmFudGluZWRTY3JpcHRPYmplY3QpOiB1bmNsZWFyIGhvdyB0byB0ZXN0LgorICAg
ICAgICAqIGJpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW06CisgICAgICAgICgtW1dlYlNjcmlw
dE9iamVjdCBfaW5pdGlhbGl6ZVNjcmlwdERPTU5vZGVJbXBdKTogdW5jbGVhciBob3cgdG8gdGVz
dC4KKwogMjAwOS0wNy0yNyAgQWRhbSBUcmVhdCAgPGFkYW0udHJlYXRAdG9yY2htb2JpbGUuY29t
PgogCiAgICAgICAgIFNwZWN1bGF0aXZlIGJ1aWxkIGZpeCBmb3IgV2luZG93cyBhbmQgV2luQ0Uu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggODllOWFmOC4uZGY2
MDY4YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtNjMsNyAr
NjMsNyBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6dXBkYXRlRG9jdW1lbnQoKQogewogICAgIEFT
U0VSVChkKCktPmltcGwtPmRvY3VtZW50KCkpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2Jh
bEV4ZWMoKTsKLSAgICBzeW1ib2xUYWJsZVB1dFdpdGhBdHRyaWJ1dGVzKElkZW50aWZpZXIoZXhl
YywgImRvY3VtZW50IiksIHRvSlMoZXhlYywgZCgpLT5pbXBsLT5kb2N1bWVudCgpKSwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBzeW1ib2xUYWJsZVB1dFdpdGhBdHRyaWJ1dGVzKElkZW50
aWZpZXIoZXhlYywgImRvY3VtZW50IiksIHRvSlMoZXhlYywgdGhpcywgZCgpLT5pbXBsLT5kb2N1
bWVudCgpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KIAogU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogSlNET01XaW5kb3dCYXNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFHcmlkQ29sdW1uTGlzdEN1c3RvbS5jcHAK
aW5kZXggYzdmZmNkZS4uOTFiM2QxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RhdGFHcmlkQ29sdW1uTGlzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RhdGFHcmlkQ29sdW1uTGlzdEN1c3RvbS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgYm9vbCBKU0Rh
dGFHcmlkQ29sdW1uTGlzdDo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIERhdGFHcmlk
Q29sdW1uTGlzdCogaW0KIEpTVmFsdWUgSlNEYXRhR3JpZENvbHVtbkxpc3Q6Om5hbWVHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0RhdGFHcmlkQ29sdW1uTGlzdCogdGhpc09iaiA9
IHN0YXRpY19jYXN0PEpTRGF0YUdyaWRDb2x1bW5MaXN0Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFz
ZSgpKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+aW1wbCgpLT5pdGVtV2l0aE5h
bWUocHJvcGVydHlOYW1lKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFs
T2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS0+aXRlbVdpdGhOYW1lKHByb3BlcnR5TmFtZSkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0
ZW5lci5jcHAKaW5kZXggZjE0YzA5Yi4uYTY1OWQzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
dmVudExpc3RlbmVyLmNwcApAQCAtNzEsNiArNzEsNyBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6
aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZlbnQpCiAgICAgLy8gTnVs
bCBjaGVjayBhcyBjbGVhckdsb2JhbE9iamVjdCgpIGNhbiBjbGVhciB0aGlzIGFuZCB3ZSBzdGls
bCBnZXQgY2FsbGVkIGJhY2sgYnkKICAgICAvLyB4bWxodHRwcmVxdWVzdCBvYmplY3RzLiBTZWUg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNzUKICAgICAvLyBGSVhN
RTogSXMgdGhpcyBjaGVjayBzdGlsbCBuZWNlc3Nhcnk/IFJlcXVlc3RzIGFyZSBzdXBwb3NlZCB0
byBiZSBzdG9wcGVkIGJlZm9yZSBjbGVhckdsb2JhbE9iamVjdCgpIGlzIGNhbGxlZC4KKyAgICBB
U1NFUlQoZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0xMDcsNyArMTA4LDcgQEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2
ZW50KEV2ZW50KiBldmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQogICAgICAgICByZWYoKTsKIAog
ICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgICAgICBhcmdzLmFwcGVuZCh0
b0pTKGV4ZWMsIGV2ZW50KSk7CisgICAgICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBldmVudCkpOwogCiAgICAgICAgIEV2ZW50KiBzYXZlZEV2ZW50ID0gZ2xvYmFsT2Jq
ZWN0LT5jdXJyZW50RXZlbnQoKTsKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZl
bnQoZXZlbnQpOwpAQCAtMTI3LDcgKzEyOCw3IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5k
bGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKICAgICAgICAgICAgIGlm
IChpc1dpbmRvd0V2ZW50KQogICAgICAgICAgICAgICAgIHRoaXNWYWx1ZSA9IGdsb2JhbE9iamVj
dC0+dG9UaGlzT2JqZWN0KGV4ZWMpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IHRoaXNWYWx1ZSA9IHRvSlMoZXhlYywgZXZlbnQtPmN1cnJlbnRUYXJnZXQoKSk7CisgICAgICAg
ICAgICAgICAgdGhpc1ZhbHVlID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGV2ZW50LT5jdXJy
ZW50VGFyZ2V0KCkpOwogICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCktPnRp
bWVvdXRDaGVja2VyLnN0YXJ0KCk7CiAgICAgICAgICAgICByZXR2YWwgPSBjYWxsKGV4ZWMsIGpz
RnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmdzKTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKaW5kZXggZDUyNTJjNy4uYjc1Y2Nj
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCkBAIC02NSw3ICs2NSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqLCBFdmVudFRhcmdldCogdGFy
Z2V0KQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRXZlbnRUYXJnZXQqIHRhcmdldCkKIHsKICAgICBpZiAoIXRhcmdldCkKICAg
ICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtNzMsMzIgKzczLDMyIEBAIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgRXZlbnRUYXJnZXQqIHRhcmdldCkK
ICNpZiBFTkFCTEUoU1ZHKQogICAgIC8vIFNWR0VsZW1lbnRJbnN0YW5jZSBzdXBwb3J0cyBib3Ro
IHRvU1ZHRWxlbWVudEluc3RhbmNlIGFuZCB0b05vZGUgc2luY2Ugc28gbXVjaCBtb3VzZSBoYW5k
bGluZyBjb2RlIGRlcGVuZHMgb24gdG9Ob2RlIHJldHVybmluZyBhIHZhbGlkIG5vZGUuCiAgICAg
aWYgKFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2UgPSB0YXJnZXQtPnRvU1ZHRWxlbWVudElu
c3RhbmNlKCkpCi0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGluc3RhbmNlKTsKKyAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnN0YW5jZSk7CiAjZW5kaWYKICAgICAK
ICAgICBpZiAoTm9kZSogbm9kZSA9IHRhcmdldC0+dG9Ob2RlKCkpCi0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIG5vZGUpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
IG5vZGUpOwogCiAgICAgaWYgKERPTVdpbmRvdyogZG9tV2luZG93ID0gdGFyZ2V0LT50b0RPTVdp
bmRvdygpKQotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBkb21XaW5kb3cpOworICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGRvbVdpbmRvdyk7CiAKICAgICBpZiAoWE1M
SHR0cFJlcXVlc3QqIHhociA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdCgpKQotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCB4aHIpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIHhocik7CiAKICAgICBpZiAoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRh
cmdldC0+dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgpKQotICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCB1cGxvYWQpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHVwbG9h
ZCk7CiAKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChET01B
cHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkp
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGNhY2hlKTsKKyAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBjYWNoZSk7CiAjZW5kaWYKIAogICAgIGlmIChNZXNzYWdlUG9y
dCogbWVzc2FnZVBvcnQgPSB0YXJnZXQtPnRvTWVzc2FnZVBvcnQoKSkKLSAgICAgICAgcmV0dXJu
IHRvSlMoZXhlYywgbWVzc2FnZVBvcnQpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIG1lc3NhZ2VQb3J0KTsKIAogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIGlmIChX
b3JrZXIqIHdvcmtlciA9IHRhcmdldC0+dG9Xb3JrZXIoKSkKLSAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgd29ya2VyKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCB3
b3JrZXIpOwogCiAgICAgaWYgKERlZGljYXRlZFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQg
PSB0YXJnZXQtPnRvRGVkaWNhdGVkV29ya2VyQ29udGV4dCgpKQogICAgICAgICByZXR1cm4gdG9K
U0RPTUdsb2JhbE9iamVjdCh3b3JrZXJDb250ZXh0KTsKQEAgLTEwNiw3ICsxMDYsNyBAQCBKU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCosIEV2ZW50VGFyZ2V0
KiB0YXJnZXQpCiAKICNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCiAgICAgaWYgKFNoYXJlZFdv
cmtlciogc2hhcmVkV29ya2VyID0gdGFyZ2V0LT50b1NoYXJlZFdvcmtlcigpKQotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBzaGFyZWRXb3JrZXIpOworICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIHNoYXJlZFdvcmtlcik7CiAjZW5kaWYKIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAK
aW5kZXggMzM0NTc2NC4uNDE5NDY1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVs
ZW1lbnRDdXN0b20uY3BwCkBAIC0zOCwxNCArMzgsMTQgQEAgdm9pZCBKU0hUTUxFbGVtZW50Ojpw
dXNoRXZlbnRIYW5kbGVyU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluJiBzY29wZSkg
Y28KICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGltcGwoKTsKIAogICAgIC8vIFRoZSBkb2N1
bWVudCBpcyBwdXQgb24gZmlyc3QsIGZhbGwgYmFjayB0byBzZWFyY2hpbmcgaXQgb25seSBhZnRl
ciB0aGUgZWxlbWVudCBhbmQgZm9ybS4KLSAgICBzY29wZS5wdXNoKGFzT2JqZWN0KHRvSlMoZXhl
YywgZWxlbWVudC0+b3duZXJEb2N1bWVudCgpKSkpOworICAgIHNjb3BlLnB1c2goYXNPYmplY3Qo
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgZWxlbWVudC0+b3duZXJEb2N1bWVudCgpKSkpOwog
CiAgICAgLy8gVGhlIGZvcm0gaXMgbmV4dCwgc2VhcmNoZWQgYmVmb3JlIHRoZSBkb2N1bWVudCwg
YnV0IGFmdGVyIHRoZSBlbGVtZW50IGl0c2VsZi4KICAgICBpZiAoSFRNTEZvcm1FbGVtZW50KiBm
b3JtID0gZWxlbWVudC0+Zm9ybSgpKQotICAgICAgICBzY29wZS5wdXNoKGFzT2JqZWN0KHRvSlMo
ZXhlYywgZm9ybSkpKTsKKyAgICAgICAgc2NvcGUucHVzaChhc09iamVjdCh0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCgpLCBmb3JtKSkpOwogCiAgICAgLy8gVGhlIGVsZW1lbnQgaXMgb24gdG9wLCBz
ZWFyY2hlZCBmaXJzdC4KLSAgICBzY29wZS5wdXNoKGFzT2JqZWN0KHRvSlMoZXhlYywgZWxlbWVu
dCkpKTsKKyAgICBzY29wZS5wdXNoKGFzT2JqZWN0KHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCks
IGVsZW1lbnQpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKaW5kZXgg
NDYwYmEwOC4uN2JjYTJkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxP
cHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgSlNWYWx1ZSBK
U0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlz
dCYgYXJncykKIEpTVmFsdWUgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OnJlbW92ZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7CiAgICAgSFRNTE9wdGlvbnNDb2xsZWN0
aW9uKiBpbXAgPSBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihpbXBsKCkpOwot
ICAgIEpTSFRNTFNlbGVjdEVsZW1lbnQqIGJhc2UgPSBzdGF0aWNfY2FzdDxKU0hUTUxTZWxlY3RF
bGVtZW50Kj4oYXNPYmplY3QodG9KUyhleGVjLCBpbXAtPmJhc2UoKSkpKTsKKyAgICBKU0hUTUxT
ZWxlY3RFbGVtZW50KiBiYXNlID0gc3RhdGljX2Nhc3Q8SlNIVE1MU2VsZWN0RWxlbWVudCo+KGFz
T2JqZWN0KHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGltcC0+YmFzZSgpKSkpOwogICAgIHJl
dHVybiBiYXNlLT5yZW1vdmUoZXhlYywgYXJncyk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDg5MTMyNDMuLjdjYWZmMmIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcApAQCAtMTE3LDcgKzExNyw3
IEBAIHZvaWQgSlNMYXp5RXZlbnRMaXN0ZW5lcjo6cGFyc2VDb2RlKCkgY29uc3QKICAgICAgICAg
Ly8gKGFuZCB0aGUgZG9jdW1lbnQsIGFuZCB0aGUgZm9ybSAtIHNlZSBKU0hUTUxFbGVtZW50Ojpl
dmVudEhhbmRsZXJTY29wZSkKICAgICAgICAgU2NvcGVDaGFpbiBzY29wZSA9IGxpc3RlbmVyQXNG
dW5jdGlvbi0+c2NvcGUoKTsKIAotICAgICAgICBKU1ZhbHVlIHRoaXNPYmogPSB0b0pTKGV4ZWMs
IG1fb3JpZ2luYWxOb2RlKTsKKyAgICAgICAgSlNWYWx1ZSB0aGlzT2JqID0gdG9KUyhleGVjLCBt
X2dsb2JhbE9iamVjdCwgbV9vcmlnaW5hbE5vZGUpOwogICAgICAgICBpZiAodGhpc09iai5pc09i
amVjdCgpKSB7CiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxKU05vZGUqPihhc09iamVjdCh0aGlz
T2JqKSktPnB1c2hFdmVudEhhbmRsZXJTY29wZShleGVjLCBzY29wZSk7CiAgICAgICAgICAgICBs
aXN0ZW5lckFzRnVuY3Rpb24tPnNldFNjb3BlKHNjb3BlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGJjOGQzMGEuLmExYzQzNzYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzI3LDcgKzMyNyw3IEBAIEpTT2JqZWN0
KiBTY3JpcHRDb250cm9sbGVyOjpqc09iamVjdEZvclBsdWdpbkVsZW1lbnQoSFRNTFBsdWdJbkVs
ZW1lbnQqIHBsdWdpbikKICAgICAvLyBDcmVhdGUgYSBKU09iamVjdCBib3VuZCB0byB0aGlzIGVs
ZW1lbnQKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7Ci0gICAgSlNWYWx1ZSBq
c0VsZW1lbnRWYWx1ZSA9IHRvSlMoZXhlYywgcGx1Z2luKTsKKyAgICBKU1ZhbHVlIGpzRWxlbWVu
dFZhbHVlID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgcGx1Z2luKTsKICAgICBpZiAoIWpz
RWxlbWVudFZhbHVlIHx8ICFqc0VsZW1lbnRWYWx1ZS5pc09iamVjdCgpKQogICAgICAgICByZXR1
cm4gMDsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRM
aXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3Bw
CmluZGV4IDA4ZDJjYmMuLjg3OGM1MzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRF
dmVudExpc3RlbmVyLmNwcApAQCAtNzIsNyArNzIsOCBAQCBQYXNzUmVmUHRyPEpTTGF6eUV2ZW50
TGlzdGVuZXI+IGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoTm9kZSogbm9kZSwgQXR0cmli
dQogICAgIC8vIEVuc3VyZSB0aGF0ICdub2RlJyBoYXMgYSBKYXZhU2NyaXB0IHdyYXBwZXIgdG8g
bWFyayB0aGUgZXZlbnQgbGlzdGVuZXIgd2UncmUgY3JlYXRpbmcuCiAgICAgewogICAgICAgICBK
U0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgICAgICB0b0pTKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRXhlYygpLCBub2RlKTsKKyAgICAgICAgLy8gRklYTUU6IFNob3VsZCBwYXNz
IHRoZSBnbG9iYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZQorICAgICAgICB0b0pT
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBnbG9iYWxPYmplY3QsIG5vZGUpOwogICAgIH0K
IAogICAgIHJldHVybiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGUoYXR0ci0+bG9jYWxOYW1l
KCkuc3RyaW5nKCksIGV2ZW50UGFyYW1ldGVyTmFtZShub2RlLT5pc1NWR0VsZW1lbnQoKSksIGF0
dHItPnZhbHVlKCksIGdsb2JhbE9iamVjdCwgbm9kZSwgc2NyaXB0Q29udHJvbGxlci0+ZXZlbnRI
YW5kbGVyTGluZU51bWJlcigpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0T2JqZWN0LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcAppbmRl
eCBmMmYzOGMzLi5lNjY0NjQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dE9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3QuY3BwCkBA
IC0xMjYsNyArMTI2LDggQEAgYm9vbCBTY3JpcHRHbG9iYWxPYmplY3Q6OnNldChTY3JpcHRTdGF0
ZSogc2NyaXB0U3RhdGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFMKIGJvb2wgU2NyaXB0R2xv
YmFsT2JqZWN0OjpzZXQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBjb25zdCBjaGFyKiBuYW1l
LCBJbnNwZWN0b3JCYWNrZW5kKiB2YWx1ZSkKIHsKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNz
ZXJ0aW9uc09ubHkpOwotICAgIHNjcmlwdFN0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnB1
dERpcmVjdChJZGVudGlmaWVyKHNjcmlwdFN0YXRlLCBuYW1lKSwgdG9KUyhzY3JpcHRTdGF0ZSwg
dmFsdWUpKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihzY3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KTsKKyAgICBnbG9iYWxPYmplY3QtPnB1dERpcmVjdChJZGVudGlmaWVyKHNjcmlwdFN0YXRlLCBu
YW1lKSwgdG9KUyhzY3JpcHRTdGF0ZSwgZ2xvYmFsT2JqZWN0LCB2YWx1ZSkpOwogICAgIHJldHVy
biBoYW5kbGVFeGNlcHRpb24oc2NyaXB0U3RhdGUpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRPYmplY3RRdWFyYW50aW5lLmNwcAppbmRleCAwZjg0ZWM2Li4xNzE4ODNhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdFF1YXJhbnRpbmUuY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0UXVhcmFudGluZS5jcHAKQEAg
LTY5LDEwICs2OSwxMSBAQCBib29sIGdldFF1YXJhbnRpbmVkU2NyaXB0T2JqZWN0KERhdGFiYXNl
KiBkYXRhYmFzZSwgU2NyaXB0T2JqZWN0JiBxdWFyYW50aW5lZE9iagogICAgIGlmICghZnJhbWUp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHRvSlNET01X
aW5kb3coZnJhbWUpLT5nbG9iYWxFeGVjKCk7CisgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IHRvSlNET01XaW5kb3coZnJhbWUpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2Vy
dGlvbnNPbmx5KTsKLSAgICBxdWFyYW50aW5lZE9iamVjdCA9IFNjcmlwdE9iamVjdChhc09iamVj
dChKU0luc3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAoZXhlYywgdG9KUyhleGVjLCBkYXRhYmFz
ZSkpKSk7CisgICAgcXVhcmFudGluZWRPYmplY3QgPSBTY3JpcHRPYmplY3QoYXNPYmplY3QoSlNJ
bnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBkYXRhYmFzZSkpKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg0LDEwICs4NSwxMSBA
QCBib29sIGdldFF1YXJhbnRpbmVkU2NyaXB0T2JqZWN0KEZyYW1lKiBmcmFtZSwgU3RvcmFnZSog
c3RvcmFnZSwgU2NyaXB0T2JqZWN0JiBxdQogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgQVNTRVJU
KHN0b3JhZ2UpOwogCi0gICAgRXhlY1N0YXRlKiBleGVjID0gdG9KU0RPTVdpbmRvdyhmcmFtZSkt
Pmdsb2JhbEV4ZWMoKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9K
U0RPTVdpbmRvdyhmcmFtZSk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5n
bG9iYWxFeGVjKCk7CiAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwot
ICAgIHF1YXJhbnRpbmVkT2JqZWN0ID0gU2NyaXB0T2JqZWN0KGFzT2JqZWN0KEpTSW5zcGVjdGVk
T2JqZWN0V3JhcHBlcjo6d3JhcChleGVjLCB0b0pTKGV4ZWMsIHN0b3JhZ2UpKSkpOworICAgIHF1
YXJhbnRpbmVkT2JqZWN0ID0gU2NyaXB0T2JqZWN0KGFzT2JqZWN0KEpTSW5zcGVjdGVkT2JqZWN0
V3JhcHBlcjo6d3JhcChleGVjLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RvcmFnZSkpKSk7
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEwMCw3ICsxMDIsOCBAQCBib29sIGdldFF1YXJh
bnRpbmVkU2NyaXB0T2JqZWN0KE5vZGUqIG5vZGUsIFNjcmlwdE9iamVjdCYgcXVhcmFudGluZWRP
YmplY3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VB
c3NlcnRpb25zT25seSk7Ci0gICAgcXVhcmFudGluZWRPYmplY3QgPSBTY3JpcHRPYmplY3QoYXNP
YmplY3QoSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyOjp3cmFwKGV4ZWMsIHRvSlMoZXhlYywgbm9k
ZSkpKSk7CisgICAgLy8gRklYTUU6IFNob3VsZCB1c2Ugc29tZSBzb3J0IG9mIGdsb2JhbE9iamVj
dEZyb21Ob2RlKCkKKyAgICBxdWFyYW50aW5lZE9iamVjdCA9IFNjcmlwdE9iamVjdChhc09iamVj
dChKU0luc3BlY3RlZE9iamVjdFdyYXBwZXI6OndyYXAoZXhlYywgdG9KUyhleGVjLCBkZXByZWNh
dGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBub2RlKSkpKTsKIAogICAgIHJldHVy
biB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFs
Lm1tIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLm1tCmluZGV4IGViOThhOGEu
LjliMjZlNTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5t
bQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW0KQEAgLTEyMywxMSAr
MTIzLDEzIEBAIHZvaWQgcmVtb3ZlRE9NV3JhcHBlcihET01PYmplY3RJbnRlcm5hbCogaW1wbCkK
ICAgICAgICAgZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQogICAg
ICAgICByZXR1cm47Ci0gICAgICAgIAotICAgIEpTQzo6RXhlY1N0YXRlICpleGVjID0gZnJhbWUt
PnNjcmlwdCgpLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwotICAgIAorCisgICAgLy8g
VGhlIGdsb2JhbCBvYmplY3Qgd2hpY2ggc2hvdWxkIG93biB0aGlzIG5vZGUuCisgICAgV2ViQ29y
ZTo6SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGZyYW1lLT5zY3JpcHQoKS0+Z2xv
YmFsT2JqZWN0KCk7CisgICAgSlNDOjpFeGVjU3RhdGUgKmV4ZWMgPSBnbG9iYWxPYmplY3QtPmds
b2JhbEV4ZWMoKTsKKwogICAgIC8vIEdldCAob3IgY3JlYXRlKSBhIGNhY2hlZCBKUyBvYmplY3Qg
Zm9yIHRoZSBET00gbm9kZS4KLSAgICBKU0M6OkpTT2JqZWN0ICpzY3JpcHRJbXAgPSBhc09iamVj
dChXZWJDb3JlOjp0b0pTKGV4ZWMsIG5vZGVJbXBsKSk7CisgICAgSlNDOjpKU09iamVjdCAqc2Ny
aXB0SW1wID0gYXNPYmplY3QoV2ViQ29yZTo6dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIG5vZGVJ
bXBsKSk7CiAKICAgICBKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0KiByb290T2JqZWN0ID0gZnJh
bWUtPnNjcmlwdCgpLT5iaW5kaW5nUm9vdE9iamVjdCgpOw==
</data>
<flag name="review"
          id="17837"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>