<?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>25260</bug_id>
          
          <creation_ts>2009-04-16 20:58:08 -0700</creation_ts>
          <short_desc>Finish V8 custom bindings for InspectorController</short_desc>
          <delta_ts>2009-04-16 21:21:01 -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>Web Inspector (Deprecated)</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>117870</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-04-16 20:58:08 -0700</bug_when>
    <thetext>Now that it&apos;s getting unforked, it needs the full bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117871</commentid>
    <comment_count>1</comment_count>
      <attachid>29571</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-04-16 20:59:41 -0700</bug_when>
    <thetext>Created attachment 29571
Finish V8 custom bindings for InspectorController.

 WebCore/ChangeLog                                  |   10 +
 .../v8/custom/V8InspectorControllerCustom.cpp      |  267 +++++++++++++++++++-
 2 files changed, 269 insertions(+), 8 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117872</commentid>
    <comment_count>2</comment_count>
      <attachid>29571</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-04-16 21:02:39 -0700</bug_when>
    <thetext>Comment on attachment 29571
Finish V8 custom bindings for InspectorController.

&gt; +++ b/WebCore/bindings/v8/custom/V8InspectorControllerCustom.cpp

&gt; +    Node* node = V8Proxy::DOMWrapperToNode&lt;Node&gt;(args[0]);
&gt; +    if (!node)
&gt; +        return v8::Undefined();
&gt; +
&gt; +   InspectorController* inspectorController = V8Proxy::ToNativeObject&lt;InspectorController&gt;(V8ClassIndex::INSPECTORCONTROLLER, args.Holder());
&gt; +   inspectorController-&gt;highlight(node);
&gt; +
&gt; +    return v8::Undefined();
&gt; +}

^^^ indentation is off by one there.

otherwise, LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117875</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-04-16 21:21:01 -0700</bug_when>
    <thetext>Doh! Fixed and landed as http://trac.webkit.org/changeset/42603.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29571</attachid>
            <date>2009-04-16 20:59:41 -0700</date>
            <delta_ts>2009-04-16 21:02:39 -0700</delta_ts>
            <desc>Finish V8 custom bindings for InspectorController.</desc>
            <filename>Finish-V8-custom-bindings-for-InspectorController..patch</filename>
            <type>text/plain</type>
            <size>10796</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">OTM1ZWU4MzcxM2I1MjcwNDM2N2MzNTQ3NGQzMDg3ZWM4YTc2NmMwYwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MzVkMThjLi45OGY1MDcy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDA5LTA0LTE2ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MjYwCisgICAg
ICAgIEZpbmlzaCBWOCBjdXN0b20gYmluZGluZ3MgZm9yIEluc3BlY3RvckNvbnRyb2xsZXIuCisK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JDb250cm9sbGVyQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBTExCQUNLX0ZVTkNfREVDTCk6CisKIDIwMDktMDQt
MTYgIEtldmluIFdhdHRlcnMgIDxrZXZpbndhdHRlcnNAZ21haWwuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtldmluIE9sbGl2aWVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhJbnNwZWN0b3JDb250cm9sbGVyQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yQ29udHJvbGxlckN1c3RvbS5jcHAKaW5kZXggMzg3ODA2
Zi4uMzQ5MmIwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnNw
ZWN0b3JDb250cm9sbGVyQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEluc3BlY3RvckNvbnRyb2xsZXJDdXN0b20uY3BwCkBAIC0zMSw3ICszMSwxNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKIAorI2lu
Y2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9y
UmVzb3VyY2UuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk5vZGUu
aCIKKyNpbmNsdWRlICJSYW5nZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJUZXh0
SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKIAogI2luY2x1ZGUgIlY4
QmluZGluZy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tQmluZGluZy5oIgpAQCAtMzksMzIgKzQ5LDI3
MyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0NBTExCQUNLX0ZVTkNfREVDTChJbnNwZWN0
b3JDb250cm9sbGVyUHJvZmlsZXMpCit7CisgICAgSU5DX1NUQVRTKCJJbnNwZWN0b3JDb250cm9s
bGVyLnByb2ZpbGVzIik7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdjg6OlVu
ZGVmaW5lZCgpOworfQorCitDQUxMQkFDS19GVU5DX0RFQ0woSW5zcGVjdG9yQ29udHJvbGxlckhp
Z2hsaWdodERPTU5vZGUpCit7CisgICAgSU5DX1NUQVRTKCJJbnNwZWN0b3JDb250cm9sbGVyLmhp
Z2hsaWdodERPTU5vZGUoKSIpOworCisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgTm9kZSogbm9kZSA9IFY4UHJveHk6OkRP
TVdyYXBwZXJUb05vZGU8Tm9kZT4oYXJnc1swXSk7CisgICAgaWYgKCFub2RlKQorICAgICAgICBy
ZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0
b3JDb250cm9sbGVyID0gVjhQcm94eTo6VG9OYXRpdmVPYmplY3Q8SW5zcGVjdG9yQ29udHJvbGxl
cj4oVjhDbGFzc0luZGV4OjpJTlNQRUNUT1JDT05UUk9MTEVSLCBhcmdzLkhvbGRlcigpKTsKKyAg
IGluc3BlY3RvckNvbnRyb2xsZXItPmhpZ2hsaWdodChub2RlKTsKKworICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7Cit9CisKK0NBTExCQUNLX0ZVTkNfREVDTChJbnNwZWN0b3JDb250cm9sbGVy
QWRkUmVzb3VyY2VTb3VyY2VUb0ZyYW1lKQoreworICAgIElOQ19TVEFUUygiSW5zcGVjdG9yQ29u
dHJvbGxlci5hZGRSZXNvdXJjZVNvdXJjZVRvRnJhbWUoKSIpOworCisgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAyKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgaWYgKCFh
cmdzWzBdLT5Jc051bWJlcigpKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisg
ICAgbG9uZyBsb25nIGlkZW50aWZpZXIgPSBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGFyZ3NbMF0t
Pk51bWJlclZhbHVlKCkpOworCisgICAgSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29u
dHJvbGxlciA9IFY4UHJveHk6OlRvTmF0aXZlT2JqZWN0PEluc3BlY3RvckNvbnRyb2xsZXI+KFY4
Q2xhc3NJbmRleDo6SU5TUEVDVE9SQ09OVFJPTExFUiwgYXJncy5Ib2xkZXIoKSk7CisgICAgUmVm
UHRyPEluc3BlY3RvclJlc291cmNlPiByZXNvdXJjZSA9IGluc3BlY3RvckNvbnRyb2xsZXItPnJl
c291cmNlcygpLmdldChpZGVudGlmaWVyKTsKKyAgICBBU1NFUlQocmVzb3VyY2UpOworICAgIGlm
ICghcmVzb3VyY2UpCisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisKKyAgICBTdHJp
bmcgc291cmNlU3RyaW5nID0gcmVzb3VyY2UtPnNvdXJjZVN0cmluZygpOworICAgIGlmIChzb3Vy
Y2VTdHJpbmcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisg
ICAgTm9kZSogbm9kZSA9IFY4UHJveHk6OkRPTVdyYXBwZXJUb05vZGU8Tm9kZT4oYXJnc1sxXSk7
CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAg
cmV0dXJuIHY4Qm9vbGVhbihpbnNwZWN0b3JDb250cm9sbGVyLT5hZGRTb3VyY2VUb0ZyYW1lKHJl
c291cmNlLT5taW1lVHlwZSgpLCBzb3VyY2VTdHJpbmcsIG5vZGUpKTsKK30KKworQ0FMTEJBQ0tf
RlVOQ19ERUNMKEluc3BlY3RvckNvbnRyb2xsZXJBZGRTb3VyY2VUb0ZyYW1lKQoreworICAgIElO
Q19TVEFUUygiSW5zcGVjdG9yQ29udHJvbGxlci5hZGRTb3VyY2VUb0ZyYW1lKCkiKTsKKworICAg
IGlmIChhcmdzLkxlbmd0aCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsK
KworICAgIHY4OjpUcnlDYXRjaCBleGNlcHRpb25DYXRjaGVyOworCisgICAgU3RyaW5nIG1pbWVU
eXBlID0gdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayhhcmdzWzBdKTsKKyAgICBpZiAobWlt
ZVR5cGUuaXNFbXB0eSgpIHx8IGV4Y2VwdGlvbkNhdGNoZXIuSGFzQ2F1Z2h0KCkpCisgICAgICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisKKyAgICBTdHJpbmcgc291cmNlU3RyaW5nID0gdG9X
ZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayhhcmdzWzFdKTsKKyAgICBpZiAoc291cmNlU3RyaW5n
LmlzRW1wdHkoKSB8fCBleGNlcHRpb25DYXRjaGVyLkhhc0NhdWdodCgpKQorICAgICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgTm9kZSogbm9kZSA9IFY4UHJveHk6OkRPTVdyYXBw
ZXJUb05vZGU8Tm9kZT4oYXJnc1sxXSk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOworCisgICAgSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29u
dHJvbGxlciA9IFY4UHJveHk6OlRvTmF0aXZlT2JqZWN0PEluc3BlY3RvckNvbnRyb2xsZXI+KFY4
Q2xhc3NJbmRleDo6SU5TUEVDVE9SQ09OVFJPTExFUiwgYXJncy5Ib2xkZXIoKSk7CisgICAgcmV0
dXJuIHY4Qm9vbGVhbihpbnNwZWN0b3JDb250cm9sbGVyLT5hZGRTb3VyY2VUb0ZyYW1lKG1pbWVU
eXBlLCBzb3VyY2VTdHJpbmcsIG5vZGUpKTsKK30KKworQ0FMTEJBQ0tfRlVOQ19ERUNMKEluc3Bl
Y3RvckNvbnRyb2xsZXJHZXRSZXNvdXJjZURvY3VtZW50Tm9kZSkKK3sKKyAgICBJTkNfU1RBVFMo
Ikluc3BlY3RvckNvbnRyb2xsZXIuZ2V0UmVzb3VyY2VEb2N1bWVudE5vZGUoKSIpOworCisgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwor
CisgICAgaWYgKCFhcmdzWzFdLT5Jc051bWJlcigpKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOworCisgICAgdW5zaWduZWQgaWRlbnRpZmllciA9IGFyZ3NbMV0tPkludDMyVmFsdWUo
KTsKKworICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIgPSBWOFBy
b3h5OjpUb05hdGl2ZU9iamVjdDxJbnNwZWN0b3JDb250cm9sbGVyPihWOENsYXNzSW5kZXg6OklO
U1BFQ1RPUkNPTlRST0xMRVIsIGFyZ3MuSG9sZGVyKCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JS
ZXNvdXJjZT4gcmVzb3VyY2UgPSBpbnNwZWN0b3JDb250cm9sbGVyLT5yZXNvdXJjZXMoKS5nZXQo
aWRlbnRpZmllcik7CisgICAgQVNTRVJUKHJlc291cmNlKTsKKyAgICBpZiAoIXJlc291cmNlKQor
ICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgRnJhbWUqIGZyYW1lID0gcmVz
b3VyY2UtPmZyYW1lKCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50
KCk7CisKKyAgICBpZiAoZG9jdW1lbnQtPmlzUGx1Z2luRG9jdW1lbnQoKSB8fCBkb2N1bWVudC0+
aXNJbWFnZURvY3VtZW50KCkgfHwgZG9jdW1lbnQtPmlzTWVkaWFEb2N1bWVudCgpKQorICAgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgcmV0dXJuIFY4UHJveHk6OlRvVjhPYmpl
Y3QoVjhDbGFzc0luZGV4OjpET0NVTUVOVCwgZG9jdW1lbnQpOworfQorCitDQUxMQkFDS19GVU5D
X0RFQ0woSW5zcGVjdG9yQ29udHJvbGxlclNlYXJjaCkKK3sKKyAgICBJTkNfU1RBVFMoIkluc3Bl
Y3RvckNvbnRyb2xsZXIuc2VhcmNoKCkiKTsKKworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikK
KyAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKworICAgIE5vZGUqIG5vZGUgPSBWOFBy
b3h5OjpET01XcmFwcGVyVG9Ob2RlPE5vZGU+KGFyZ3NbMF0pOworICAgIGlmICghbm9kZSkKKyAg
ICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKworICAgIFN0cmluZyB0YXJnZXQgPSB0b1dl
YkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKGFyZ3NbMV0pOworICAgIGlmICh0YXJnZXQuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgdjg6OkxvY2FsPHY4
OjpBcnJheT4gcmVzdWx0ID0gdjg6OkFycmF5OjpOZXcoKTsKKyAgICBSZWZQdHI8UmFuZ2U+IHNl
YXJjaFJhbmdlKHJhbmdlT2ZDb250ZW50cyhub2RlKSk7CisKKyAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKKyAgICBpbnQgaW5kZXggPSAwOworICAgIGRvIHsKKyAgICAgICAgUmVmUHRyPFJhbmdl
PiByZXN1bHRSYW5nZShmaW5kUGxhaW5UZXh0KHNlYXJjaFJhbmdlLmdldCgpLCB0YXJnZXQsIHRy
dWUsIGZhbHNlKSk7CisgICAgICAgIGlmIChyZXN1bHRSYW5nZS0+Y29sbGFwc2VkKGVjKSkKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIEEgbm9uLWNvbGxhcHNlZCByZXN1bHQgcmFu
Z2UgY2FuIGluIHNvbWUgZnVua3kgd2hpdGVzcGFjZSBjYXNlcyBzdGlsbCBub3QKKyAgICAgICAg
Ly8gYWR2YW5jZSB0aGUgcmFuZ2UncyBzdGFydCBwb3NpdGlvbiAoNDUwOTMyOCkuIEJyZWFrIHRv
IGF2b2lkIGluZmluaXRlIGxvb3AuCisgICAgICAgIFZpc2libGVQb3NpdGlvbiBuZXdTdGFydCA9
IGVuZFZpc2libGVQb3NpdGlvbihyZXN1bHRSYW5nZS5nZXQoKSwgRE9XTlNUUkVBTSk7CisgICAg
ICAgIGlmIChuZXdTdGFydCA9PSBzdGFydFZpc2libGVQb3NpdGlvbihzZWFyY2hSYW5nZS5nZXQo
KSwgRE9XTlNUUkVBTSkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICByZXN1bHQtPlNl
dCh2ODo6TnVtYmVyOjpOZXcoaW5kZXgrKyksIFY4UHJveHk6OlRvVjhPYmplY3Q8UmFuZ2U+KFY4
Q2xhc3NJbmRleDo6UkFOR0UsIHJlc3VsdFJhbmdlLmdldCgpKSk7CisKKyAgICAgICAgc2V0U3Rh
cnQoc2VhcmNoUmFuZ2UuZ2V0KCksIG5ld1N0YXJ0KTsKKyAgICB9IHdoaWxlICh0cnVlKTsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNpZiBFTkFCTEUoREFUQUJBU0UpCitDQUxMQkFDS19G
VU5DX0RFQ0woSW5zcGVjdG9yQ29udHJvbGxlckRhdGFiYXNlVGFibGVOYW1lcykKK3sKKyAgICBJ
TkNfU1RBVFMoIkluc3BlY3RvckNvbnRyb2xsZXIuZGF0YWJhc2VUYWJsZU5hbWVzKCkiKTsKKyAg
ICB2ODo6TG9jYWw8djg6OkFycmF5PiByZXN1bHQgPSB2ODo6QXJyYXk6Ok5ldygwKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorI2VuZGlmCisKK0NBTExCQUNLX0ZVTkNfREVDTChJbnNwZWN0b3JD
b250cm9sbGVySW5zcGVjdGVkV2luZG93KQoreworICAgIElOQ19TVEFUUygiSW5zcGVjdG9yQ29u
dHJvbGxlci5pbnNwZWN0ZWRXaW5kb3coKSIpOworCisgICAgSW5zcGVjdG9yQ29udHJvbGxlciog
aW5zcGVjdG9yQ29udHJvbGxlciA9IFY4UHJveHk6OlRvTmF0aXZlT2JqZWN0PEluc3BlY3RvckNv
bnRyb2xsZXI+KFY4Q2xhc3NJbmRleDo6SU5TUEVDVE9SQ09OVFJPTExFUiwgYXJncy5Ib2xkZXIo
KSk7CisgICAgcmV0dXJuIFY4UHJveHk6OlRvVjhPYmplY3Q8RE9NV2luZG93PihWOENsYXNzSW5k
ZXg6OkRPTVdJTkRPVywgaW5zcGVjdG9yQ29udHJvbGxlci0+aW5zcGVjdGVkUGFnZSgpLT5tYWlu
RnJhbWUoKS0+ZG9tV2luZG93KCkpOworfQorCitDQUxMQkFDS19GVU5DX0RFQ0woSW5zcGVjdG9y
Q29udHJvbGxlclNldHRpbmcpCit7CisgICAgSU5DX1NUQVRTKCJJbnNwZWN0b3JDb250cm9sbGVy
LnNldHRpbmcoKSIpOworCisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgU3RyaW5nIGtleSA9IHRvV2ViQ29yZVN0cmluZ1dp
dGhOdWxsQ2hlY2soYXJnc1swXSk7CisgICAgaWYgKGtleS5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7CisKKyAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0
b3JDb250cm9sbGVyID0gVjhQcm94eTo6VG9OYXRpdmVPYmplY3Q8SW5zcGVjdG9yQ29udHJvbGxl
cj4oVjhDbGFzc0luZGV4OjpJTlNQRUNUT1JDT05UUk9MTEVSLCBhcmdzLkhvbGRlcigpKTsKKyAg
ICBjb25zdCBJbnNwZWN0b3JDb250cm9sbGVyOjpTZXR0aW5nJiBzZXR0aW5nID0gaW5zcGVjdG9y
Q29udHJvbGxlciAtPnNldHRpbmcoa2V5KTsKKworICAgIHN3aXRjaCAoc2V0dGluZy50eXBlKCkp
IHsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgY2FzZSBJbnNwZWN0b3JDb250cm9sbGVyOjpT
ZXR0aW5nOjpOb1R5cGU6CisgICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworICAg
ICAgICBjYXNlIEluc3BlY3RvckNvbnRyb2xsZXI6OlNldHRpbmc6OlN0cmluZ1R5cGU6CisgICAg
ICAgICAgICByZXR1cm4gdjhTdHJpbmcoc2V0dGluZy5zdHJpbmcoKSk7CisgICAgICAgIGNhc2Ug
SW5zcGVjdG9yQ29udHJvbGxlcjo6U2V0dGluZzo6RG91YmxlVHlwZToKKyAgICAgICAgICAgIHJl
dHVybiB2ODo6TnVtYmVyOjpOZXcoc2V0dGluZy5kb3VibGVWYWx1ZSgpKTsKKyAgICAgICAgY2Fz
ZSBJbnNwZWN0b3JDb250cm9sbGVyOjpTZXR0aW5nOjpJbnRlZ2VyVHlwZToKKyAgICAgICAgICAg
IHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc2V0dGluZy5pbnRlZ2VyVmFsdWUoKSk7CisgICAgICAg
IGNhc2UgSW5zcGVjdG9yQ29udHJvbGxlcjo6U2V0dGluZzo6Qm9vbGVhblR5cGU6CisgICAgICAg
ICAgICByZXR1cm4gdjhCb29sZWFuKHNldHRpbmcuYm9vbGVhblZhbHVlKCkpOworICAgICAgICBj
YXNlIEluc3BlY3RvckNvbnRyb2xsZXI6OlNldHRpbmc6OlN0cmluZ1ZlY3RvclR5cGU6IHsKKyAg
ICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzID0gc2V0dGluZy5zdHJpbmdW
ZWN0b3IoKTsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IHN0cmluZ3NBcnJheSA9
IHY4OjpBcnJheTo6TmV3KHN0cmluZ3Muc2l6ZSgpKTsKKyAgICAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGxlbmd0aCA9IHN0cmluZ3Muc2l6ZSgpOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHN0cmluZ3NBcnJheS0+U2V0
KHY4OjpOdW1iZXI6Ok5ldyhpKSwgdjhTdHJpbmcoc3RyaW5nc1tpXSkpOworICAgICAgICAgICAg
cmV0dXJuIHN0cmluZ3NBcnJheTsKKyAgICAgICAgfQorICAgIH0KK30KKworQ0FMTEJBQ0tfRlVO
Q19ERUNMKEluc3BlY3RvckNvbnRyb2xsZXJTZXRTZXR0aW5nKQoreworICAgIElOQ19TVEFUUygi
SW5zcGVjdG9yQ29udHJvbGxlci5zZXRTZXR0aW5nKCkiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgo
KSA8IDIpCisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisKKyAgICBTdHJpbmcga2V5
ID0gdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayhhcmdzWzBdKTsKKyAgICBpZiAoa2V5Lmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKworICAgIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OlNldHRpbmcgc2V0dGluZzsKKworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IHZhbHVlID0gYXJnc1sxXTsKKyAgICBpZiAodmFsdWUtPklzVW5kZWZpbmVkKCkgfHwgdmFsdWUt
PklzTnVsbCgpKSB7CisgICAgICAgIC8vIERvIG5vdGhpbmcuIFRoZSBzZXR0aW5nIGlzIGFscmVh
ZHkgTm9UeXBlLgorICAgICAgICBBU1NFUlQoc2V0dGluZy50eXBlKCkgPT0gSW5zcGVjdG9yQ29u
dHJvbGxlcjo6U2V0dGluZzo6Tm9UeXBlKTsKKyAgICB9IGVsc2UgaWYgKHZhbHVlLT5Jc1N0cmlu
ZygpKQorICAgICAgICBzZXR0aW5nLnNldCh0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKHZh
bHVlKSk7CisgICAgZWxzZSBpZiAodmFsdWUtPklzTnVtYmVyKCkpCisgICAgICAgIHNldHRpbmcu
c2V0KHZhbHVlLT5OdW1iZXJWYWx1ZSgpKTsKKyAgICBlbHNlIGlmICh2YWx1ZS0+SXNCb29sZWFu
KCkpCisgICAgICAgIHNldHRpbmcuc2V0KHZhbHVlLT5Cb29sZWFuVmFsdWUoKSk7CisgICAgZWxz
ZSBpZiAodmFsdWUtPklzQXJyYXkoKSkgeworICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiB2
OEFycmF5ID0gdjg6OkxvY2FsPHY4OjpBcnJheT46OkNhc3QodmFsdWUpOworICAgICAgICBWZWN0
b3I8U3RyaW5nPiBzdHJpbmdzOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdjhB
cnJheS0+TGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSB0b1dlYkNv
cmVTdHJpbmcodjhBcnJheS0+R2V0KHY4OjpJbnRlZ2VyOjpOZXcoaSkpKTsKKyAgICAgICAgICAg
IGlmIChpdGVtLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOworICAgICAgICAgICAgc3RyaW5ncy5hcHBlbmQoaXRlbSk7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0dGluZy5zZXQoc3RyaW5ncyk7CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7CisKKyAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9s
bGVyID0gVjhQcm94eTo6VG9OYXRpdmVPYmplY3Q8SW5zcGVjdG9yQ29udHJvbGxlcj4oVjhDbGFz
c0luZGV4OjpJTlNQRUNUT1JDT05UUk9MTEVSLCBhcmdzLkhvbGRlcigpKTsKKyAgICBpbnNwZWN0
b3JDb250cm9sbGVyLT5zZXRTZXR0aW5nKGtleSwgc2V0dGluZyk7CisKKyAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOworfQorCitDQUxMQkFDS19GVU5DX0RFQ0woSW5zcGVjdG9yQ29udHJvbGxl
ckN1cnJlbnRDYWxsRnJhbWUpCit7CisgICAgSU5DX1NUQVRTKCJJbnNwZWN0b3JDb250cm9sbGVy
LmN1cnJlbnRDYWxsRnJhbWUoKSIpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IHY4OjpVbmRlZmluZWQoKTsKK30KKwogQ0FMTEJBQ0tfRlVOQ19ERUNMKEluc3BlY3RvckNvbnRy
b2xsZXJEZWJ1Z2dlckVuYWJsZWQpCiB7CiAgICAgSU5DX1NUQVRTKCJJbnNwZWN0b3JDb250cm9s
bGVyLmRlYnVnZ2VyRW5hYmxlZCgpIik7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gdjg6OkZhbHNlKCk7CiB9CiAKIENBTExCQUNLX0ZVTkNfREVDTChJbnNwZWN0b3JDb250cm9s
bGVyUGF1c2VPbkV4Y2VwdGlvbnMpCiB7CiAgICAgSU5DX1NUQVRTKCJJbnNwZWN0b3JDb250cm9s
bGVyLnBhdXNlT25FeGNlcHRpb25zKCkiKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJl
dHVybiB2ODo6RmFsc2UoKTsKIH0KIAogQ0FMTEJBQ0tfRlVOQ19ERUNMKEluc3BlY3RvckNvbnRy
b2xsZXJQcm9maWxlckVuYWJsZWQpCiB7CiAgICAgSU5DX1NUQVRTKCJJbnNwZWN0b3JDb250cm9s
bGVyLnByb2ZpbGVyRW5hYmxlZCgpIik7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gdjg6OkZhbHNlKCk7CiB9CiAKLSNpZiBFTkFCTEUoREFUQUJBU0UpCi1DQUxMQkFDS19GVU5D
X0RFQ0woSW5zcGVjdG9yQ29udHJvbGxlckRhdGFiYXNlVGFibGVOYW1lcykKLXsKLSAgICBJTkNf
U1RBVFMoIkluc3BlY3RvckNvbnRyb2xsZXIuZGF0YWJhc2VUYWJsZU5hbWVzKCkiKTsKLSAgICB2
ODo6TG9jYWw8djg6OkFycmF5PiByZXN1bHQgPSB2ODo6QXJyYXk6Ok5ldygwKTsKLSAgICByZXR1
cm4gcmVzdWx0OwotfQotI2VuZGlmCiAKIENBTExCQUNLX0ZVTkNfREVDTChJbnNwZWN0b3JDb250
cm9sbGVyV3JhcENhbGxiYWNrKQogewo=
</data>
<flag name="review"
          id="14757"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>