<?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>124983</bug_id>
          
          <creation_ts>2013-11-28 10:45:39 -0800</creation_ts>
          <short_desc>Nix Upstream: Adding MediaControlsNix to WebCore</short_desc>
          <delta_ts>2014-01-16 13:41:44 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>124950</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago de Barros Lacerda">thiago.lacerda</reporter>
          <assigned_to name="Hugo Parente Lima">hugo.lima</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>954787</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-28 10:45:39 -0800</bug_when>
    <thetext>Nix Upstream: Adding MediaControlsNix to WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954788</commentid>
    <comment_count>1</comment_count>
      <attachid>218015</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-28 10:47:02 -0800</bug_when>
    <thetext>Created attachment 218015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954789</commentid>
    <comment_count>2</comment_count>
      <attachid>218016</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-28 10:51:38 -0800</bug_when>
    <thetext>Created attachment 218016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955379</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-12-02 07:55:12 -0800</bug_when>
    <thetext>Have you seen Source/WebCore/Modules/mediacontrols/? The Apple ports use this to implement media controls with JavaScript. The WinCairo port is looking at implementing media controls this was as well [1].

That approach is *much* simpler in the long run. 

[1] https://bugs.webkit.org/show_bug.cgi?id=124868</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955590</commentid>
    <comment_count>4</comment_count>
      <attachid>218016</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-12-02 14:34:52 -0800</bug_when>
    <thetext>Comment on attachment 218016
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=218016&amp;action=review

&gt; Source/WebCore/html/shadow/MediaControlsNix.cpp:60
&gt; +    return 0;

return nullptr.

&gt; Source/WebCore/html/shadow/MediaControlsNix.cpp:145
&gt; +    Page* page = document().page();
&gt; +    if (!page)

if (!document().page())
    return

&gt; Source/WebCore/html/shadow/MediaControlsNix.cpp:166
&gt; +    double now = m_mediaController-&gt;currentTime();
&gt; +    double duration = m_mediaController-&gt;duration();

This should be done _after_ the early return.

&gt; Source/WebCore/html/shadow/MediaControlsNix.cpp:170
&gt; +
&gt; +    Page* page = document().page();
&gt; +    if (!page)
&gt; +        return;

ditto

&gt; Source/WebCore/html/shadow/MediaControlsNix.h:45
&gt; +    void changedMute() OVERRIDE;

Missing virtual.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955598</commentid>
    <comment_count>5</comment_count>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-12-02 14:48:20 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Have you seen Source/WebCore/Modules/mediacontrols/? The Apple ports use this to implement media controls with JavaScript. The WinCairo port is looking at implementing media controls this was as well [1].
&gt; 
&gt; That approach is *much* simpler in the long run. 
&gt; 
&gt; [1] https://bugs.webkit.org/show_bug.cgi?id=124868

Thanks Eric, I will take a look on that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955600</commentid>
    <comment_count>6</comment_count>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-12-02 14:48:55 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 218016 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=218016&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/shadow/MediaControlsNix.cpp:60
&gt; &gt; +    return 0;
&gt; 
&gt; return nullptr.
&gt; 
&gt; &gt; Source/WebCore/html/shadow/MediaControlsNix.cpp:145
&gt; &gt; +    Page* page = document().page();
&gt; &gt; +    if (!page)
&gt; 
&gt; if (!document().page())
&gt;     return
&gt; 
&gt; &gt; Source/WebCore/html/shadow/MediaControlsNix.cpp:166
&gt; &gt; +    double now = m_mediaController-&gt;currentTime();
&gt; &gt; +    double duration = m_mediaController-&gt;duration();
&gt; 
&gt; This should be done _after_ the early return.
&gt; 
&gt; &gt; Source/WebCore/html/shadow/MediaControlsNix.cpp:170
&gt; &gt; +
&gt; &gt; +    Page* page = document().page();
&gt; &gt; +    if (!page)
&gt; &gt; +        return;
&gt; 
&gt; ditto
&gt; 
&gt; &gt; Source/WebCore/html/shadow/MediaControlsNix.h:45
&gt; &gt; +    void changedMute() OVERRIDE;
&gt; 
&gt; Missing virtual.

Thanks Benjamin, I will fix those</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218015</attachid>
            <date>2013-11-28 10:47:02 -0800</date>
            <delta_ts>2013-11-28 10:51:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124983-20131128154700.patch</filename>
            <type>text/plain</type>
            <size>10718</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5ODQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNlZWMwMGZjNDY1NzQ5
YmIzYjZjMWZjZTY0NGMyYmM1ZDI0ODgyMi4uMmJjMjg2ZjZlN2VhMjI1NTgxMjZiYzg0OTI2YjBj
ZGY3OGFlMWIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTExLTI4ICBUaGlh
Z28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIE5peCBVcHN0cmVhbTogQWRkaW5nIE1lZGlhQ29udHJvbHNOaXggdG8gV2ViQ29yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0OTgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIG5lZWRlZC4KKworICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHNOaXguY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzTml4Lmg6IEFkZGVk
LgorCiAyMDEzLTExLTI4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgZmVhdHVyZTogQ1NTIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc05peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmUyNjVmZTI0YzUx
Y2UxMTk3MjYxNjYxOGM4MTM2NjhlNDU2ZmUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc05peC5jcHAKQEAgLTAsMCArMSwxOTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUyYj
Mzk7JiMzOTsgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiTWVkaWFD
b250cm9sc05peC5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK01lZGlhQ29udHJvbHNOaXg6Ok1lZGlhQ29udHJvbHNOaXgoRG9jdW1lbnQmIGRvY3Vt
ZW50KQorICAgIDogTWVkaWFDb250cm9scyhkb2N1bWVudCkKKyAgICAsIG1fZHVyYXRpb25EaXNw
bGF5KDApCisgICAgLCBtX2VuY2xvc3VyZSgwKQoreworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAg
cmV0dXJuIE1lZGlhQ29udHJvbHNOaXg6OmNyZWF0ZUNvbnRyb2xzKGRvY3VtZW50KTsKK30KKwor
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzTml4PiBNZWRpYUNvbnRyb2xzTml4OjpjcmVhdGVDb250
cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPE1lZGlhQ29udHJvbHNOaXg+IGNvbnRyb2xz
ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbHNOaXgoZG9jdW1lbnQpKTsKKworICAgIGlmIChj
b250cm9scy0+aW5pdGlhbGl6ZUNvbnRyb2xzKGRvY3VtZW50KSkKKyAgICAgICAgcmV0dXJuIGNv
bnRyb2xzLnJlbGVhc2UoKTsKKworICAgIHJldHVybiAwOworfQorCitib29sIE1lZGlhQ29udHJv
bHNOaXg6OmluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgLy8g
Q3JlYXRlIGFuIGVuY2xvc2luZyBlbGVtZW50IGZvciB0aGUgcGFuZWwgc28gd2UgY2FuIHZpc3Vh
bGx5IG9mZnNldCB0aGUgY29udHJvbHMgY29ycmVjdGx5LgorICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbFBhbmVsRW5j
bG9zdXJlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKworICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOworCisgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOworCisgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBwbGF5QnV0dG9uID0gTWVkaWFDb250
cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgbV9wbGF5QnV0dG9u
ID0gcGxheUJ1dHRvbi5nZXQoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbi5y
ZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemlseSk7CisgICAgaWYgKGV4Y2VwdGlv
bkNvZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xU
aW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAgIG1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsK
KyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBleGNlcHRpb25Db2Rl
LCBBdHRhY2hMYXppbHkpOworICAgIGlmIChleGNlcHRpb25Db2RlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVu
dD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBtX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJl
bnRUaW1lRGlzcGxheS5nZXQoKTsKKyAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgpOwor
ICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBleGNl
cHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOworICAgIGlmIChleGNlcHRpb25Db2RlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rp
c3BsYXlFbGVtZW50PiBkdXJhdGlvbkRpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5n
RGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgbV9kdXJhdGlvbkRpc3BsYXkg
PSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGR1cmF0aW9u
RGlzcGxheS5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemlseSk7CisgICAgaWYg
KGV4Y2VwdGlvbkNvZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNv
bnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAg
IG1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOworICAgIHBhbmVsLT5h
cHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCBBdHRh
Y2hMYXppbHkpOworICAgIGlmIChleGNlcHRpb25Db2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlk
ZXIgPSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CisgICAgbV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7CisgICAgbV92b2x1bWVTbGlk
ZXItPnNldENsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlvbih0cnVlKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsK
KyAgICBpZiAoZXhjZXB0aW9uQ29kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVm
UHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsc2NyZWVuQnV0dG9u
ID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgbV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbHNjcmVlbkJ1dHRvbi5nZXQoKTsKKyAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGV4Y2VwdGlvbkNv
ZGUsIEF0dGFjaExhemlseSk7CisgICAgaWYgKGV4Y2VwdGlvbkNvZGUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIG1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKKyAgICBlbmNsb3N1cmUtPmFw
cGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsK
KyAgICBpZiAoZXhjZXB0aW9uQ29kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9l
bmNsb3N1cmUgPSBlbmNsb3N1cmUuZ2V0KCk7CisgICAgYXBwZW5kQ2hpbGQoZW5jbG9zdXJlLnJl
bGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsKKyAgICBpZiAoZXhjZXB0aW9u
Q29kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgTWVkaWFDb250cm9sc05peDo6c2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlcklu
dGVyZmFjZSogY29udHJvbGxlcikKK3sKKyAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIgPT0gY29u
dHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgTWVkaWFDb250cm9sczo6c2V0TWVkaWFD
b250cm9sbGVyKGNvbnRyb2xsZXIpOworCisgICAgaWYgKG1fZHVyYXRpb25EaXNwbGF5KQorICAg
ICAgICBtX2R1cmF0aW9uRGlzcGxheS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwor
ICAgIGlmIChtX2VuY2xvc3VyZSkKKyAgICAgICAgbV9lbmNsb3N1cmUtPnNldE1lZGlhQ29udHJv
bGxlcihjb250cm9sbGVyKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xzTml4OjpyZXNldCgpCit7
CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZG91YmxlIGR1cmF0aW9uID0gbV9tZWRpYUNvbnRyb2xsZXIt
PmR1cmF0aW9uKCk7CisgICAgbV9kdXJhdGlvbkRpc3BsYXktPnNldElubmVyVGV4dChSZW5kZXJU
aGVtZTo6ZGVmYXVsdFRoZW1lKCktPmZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGR1cmF0aW9uKSwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9kdXJhdGlvbkRpc3BsYXktPnNldEN1cnJlbnRW
YWx1ZShkdXJhdGlvbik7CisKKyAgICBNZWRpYUNvbnRyb2xzOjpyZXNldCgpOworfQorCit2b2lk
IE1lZGlhQ29udHJvbHNOaXg6OnBsYXliYWNrU3RhcnRlZCgpCit7CisgICAgbV9jdXJyZW50VGlt
ZURpc3BsYXktPnNob3coKTsKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+aGlkZSgpOworCisgICAg
TWVkaWFDb250cm9sczo6cGxheWJhY2tTdGFydGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9s
c05peDo6dXBkYXRlQ3VycmVudFRpbWVEaXNwbGF5KCkKK3sKKyAgICBkb3VibGUgbm93ID0gbV9t
ZWRpYUNvbnRyb2xsZXItPmN1cnJlbnRUaW1lKCk7CisgICAgZG91YmxlIGR1cmF0aW9uID0gbV9t
ZWRpYUNvbnRyb2xsZXItPmR1cmF0aW9uKCk7CisKKyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQo
KS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBZnRl
ciBzZWVrLCBoaWRlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIHNob3cgY3VycmVudCB0aW1lLgorICAg
IGlmIChub3cgPiAwKSB7CisgICAgICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zaG93KCk7Cisg
ICAgICAgIG1fZHVyYXRpb25EaXNwbGF5LT5oaWRlKCk7CisgICAgfQorCisgICAgLy8gQWxsb3cg
dGhlIHRoZW1lIHRvIGZvcm1hdCB0aGUgdGltZS4KKyAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+
c2V0SW5uZXJUZXh0KFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+Zm9ybWF0TWVkaWFDb250
cm9sc0N1cnJlbnRUaW1lKG5vdywgZHVyYXRpb24pLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBt
X2N1cnJlbnRUaW1lRGlzcGxheS0+c2V0Q3VycmVudFZhbHVlKG5vdyk7Cit9CisKK3ZvaWQgTWVk
aWFDb250cm9sc05peDo6Y2hhbmdlZE11dGUoKQoreworICAgIE1lZGlhQ29udHJvbHM6OmNoYW5n
ZWRNdXRlKCk7CisKKyAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXItPm11dGVkKCkpCisgICAgICAg
IG1fdm9sdW1lU2xpZGVyLT5zZXRWb2x1bWUoMCk7CisgICAgZWxzZQorICAgICAgICBtX3ZvbHVt
ZVNsaWRlci0+c2V0Vm9sdW1lKG1fbWVkaWFDb250cm9sbGVyLT52b2x1bWUoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc05peC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc05peC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFk
MGMyN2E1OTljNWQ5ZDUyYWRiNTc5Y2UxYjE0ZGIwODQyMTAwNjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzTml4LmgKQEAgLTAsMCAr
MSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJiMzOTsmIzM5OyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIE1lZGlhQ29udHJvbHNOaXhfaAorI2RlZmluZSBNZWRpYUNvbnRyb2xzTml4
X2gKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgIk1lZGlhQ29udHJvbHMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUNvbnRyb2xzTml4IDogcHVibGljIE1l
ZGlhQ29udHJvbHMgeworcHVibGljOgorICAgIC8vIENhbGxlZCBmcm9tIHBvcnQtc3BlY2lmaWMg
cGFyZW50IGNyZWF0ZSBmdW5jdGlvbiB0byBjcmVhdGUgY3VzdG9tIGNvbnRyb2xzLgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNOaXg+IGNyZWF0ZUNvbnRyb2xzKERvY3VtZW50
Jik7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxl
ckludGVyZmFjZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXJ0ZWQoKSBPVkVSUklERTsKKyAgICB2b2lk
IGNoYW5nZWRNdXRlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1cnJlbnRU
aW1lRGlzcGxheSgpIE9WRVJSSURFOworCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgTWVkaWFD
b250cm9sc05peChEb2N1bWVudCYpOworCisgICAgYm9vbCBpbml0aWFsaXplQ29udHJvbHMoRG9j
dW1lbnQmKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxh
eUVsZW1lbnQqIG1fZHVyYXRpb25EaXNwbGF5OworICAgIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9z
dXJlRWxlbWVudCogbV9lbmNsb3N1cmU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNlbmRpZiAvLyBNZWRpYUNvbnRyb2xzTml4X2gK
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218016</attachid>
            <date>2013-11-28 10:51:38 -0800</date>
            <delta_ts>2013-12-02 14:34:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124983-20131128155137.patch</filename>
            <type>text/plain</type>
            <size>10730</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5ODQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNlZWMwMGZjNDY1NzQ5
YmIzYjZjMWZjZTY0NGMyYmM1ZDI0ODgyMi4uMmJjMjg2ZjZlN2VhMjI1NTgxMjZiYzg0OTI2YjBj
ZGY3OGFlMWIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTExLTI4ICBUaGlh
Z28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIE5peCBVcHN0cmVhbTogQWRkaW5nIE1lZGlhQ29udHJvbHNOaXggdG8gV2ViQ29yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0OTgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIG5lZWRlZC4KKworICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHNOaXguY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzTml4Lmg6IEFkZGVk
LgorCiAyMDEzLTExLTI4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgZmVhdHVyZTogQ1NTIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc05peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzTml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGI4MTlkMThiYTI1
OTE2ZTkyY2EzZTU4NDAwNTJkMzBmMWY0MmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc05peC5jcHAKQEAgLTAsMCArMSwxOTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAi
TWVkaWFDb250cm9sc05peC5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK01lZGlhQ29udHJvbHNOaXg6Ok1lZGlhQ29udHJvbHNOaXgoRG9jdW1lbnQm
IGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9scyhkb2N1bWVudCkKKyAgICAsIG1fZHVyYXRp
b25EaXNwbGF5KDApCisgICAgLCBtX2VuY2xvc3VyZSgwKQoreworfQorCitQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCit7
CisgICAgcmV0dXJuIE1lZGlhQ29udHJvbHNOaXg6OmNyZWF0ZUNvbnRyb2xzKGRvY3VtZW50KTsK
K30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzTml4PiBNZWRpYUNvbnRyb2xzTml4OjpjcmVh
dGVDb250cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgaWYgKCFkb2N1bWVudC5wYWdl
KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPE1lZGlhQ29udHJvbHNOaXg+IGNv
bnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbHNOaXgoZG9jdW1lbnQpKTsKKworICAg
IGlmIChjb250cm9scy0+aW5pdGlhbGl6ZUNvbnRyb2xzKGRvY3VtZW50KSkKKyAgICAgICAgcmV0
dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKworICAgIHJldHVybiAwOworfQorCitib29sIE1lZGlh
Q29udHJvbHNOaXg6OmluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCit7Cisg
ICAgLy8gQ3JlYXRlIGFuIGVuY2xvc2luZyBlbGVtZW50IGZvciB0aGUgcGFuZWwgc28gd2UgY2Fu
IHZpc3VhbGx5IG9mZnNldCB0aGUgY29udHJvbHMgY29ycmVjdGx5LgorICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbFBh
bmVsRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKworICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworCisgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOworCisg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBwbGF5QnV0dG9uID0gTWVk
aWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgbV9wbGF5
QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1
dHRvbi5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemlseSk7CisgICAgaWYgKGV4
Y2VwdGlvbkNvZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAgIG1fdGltZWxpbmUgPSB0aW1lbGluZS5n
ZXQoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBleGNlcHRp
b25Db2RlLCBBdHRhY2hMYXppbHkpOworICAgIGlmIChleGNlcHRpb25Db2RlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBtX2N1cnJlbnRUaW1lRGlzcGxheSA9
IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsKKyAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlk
ZSgpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgp
LCBleGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOworICAgIGlmIChleGNlcHRpb25Db2RlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFp
bmluZ0Rpc3BsYXlFbGVtZW50PiBkdXJhdGlvbkRpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgbV9kdXJhdGlvbkRp
c3BsYXkgPSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGR1
cmF0aW9uRGlzcGxheS5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemlseSk7Cisg
ICAgaWYgKGV4Y2VwdGlvbkNvZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBN
ZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMp
OworICAgIG1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOworICAgIHBh
bmVsLT5hcHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBleGNlcHRpb25Db2Rl
LCBBdHRhY2hMYXppbHkpOworICAgIGlmIChleGNlcHRpb25Db2RlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50
PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CisgICAgbV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7CisgICAgbV92b2x1
bWVTbGlkZXItPnNldENsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlvbih0cnVlKTsKKyAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6
aWx5KTsKKyAgICBpZiAoZXhjZXB0aW9uQ29kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsc2NyZWVu
QnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CisgICAgbV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbHNjcmVlbkJ1dHRvbi5nZXQoKTsK
KyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGV4Y2Vw
dGlvbkNvZGUsIEF0dGFjaExhemlseSk7CisgICAgaWYgKGV4Y2VwdGlvbkNvZGUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIG1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKKyAgICBlbmNsb3N1
cmUtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6
aWx5KTsKKyAgICBpZiAoZXhjZXB0aW9uQ29kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgbV9lbmNsb3N1cmUgPSBlbmNsb3N1cmUuZ2V0KCk7CisgICAgYXBwZW5kQ2hpbGQoZW5jbG9z
dXJlLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsKKyAgICBpZiAoZXhj
ZXB0aW9uQ29kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3ZvaWQgTWVkaWFDb250cm9sc05peDo6c2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJv
bGxlckludGVyZmFjZSogY29udHJvbGxlcikKK3sKKyAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIg
PT0gY29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgTWVkaWFDb250cm9sczo6c2V0
TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOworCisgICAgaWYgKG1fZHVyYXRpb25EaXNwbGF5
KQorICAgICAgICBtX2R1cmF0aW9uRGlzcGxheS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xs
ZXIpOworICAgIGlmIChtX2VuY2xvc3VyZSkKKyAgICAgICAgbV9lbmNsb3N1cmUtPnNldE1lZGlh
Q29udHJvbGxlcihjb250cm9sbGVyKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xzTml4OjpyZXNl
dCgpCit7CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOworICAgIGlmICghcGFn
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG91YmxlIGR1cmF0aW9uID0gbV9tZWRpYUNvbnRy
b2xsZXItPmR1cmF0aW9uKCk7CisgICAgbV9kdXJhdGlvbkRpc3BsYXktPnNldElubmVyVGV4dChS
ZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPmZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGR1cmF0
aW9uKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9kdXJhdGlvbkRpc3BsYXktPnNldEN1
cnJlbnRWYWx1ZShkdXJhdGlvbik7CisKKyAgICBNZWRpYUNvbnRyb2xzOjpyZXNldCgpOworfQor
Cit2b2lkIE1lZGlhQ29udHJvbHNOaXg6OnBsYXliYWNrU3RhcnRlZCgpCit7CisgICAgbV9jdXJy
ZW50VGltZURpc3BsYXktPnNob3coKTsKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+aGlkZSgpOwor
CisgICAgTWVkaWFDb250cm9sczo6cGxheWJhY2tTdGFydGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFD
b250cm9sc05peDo6dXBkYXRlQ3VycmVudFRpbWVEaXNwbGF5KCkKK3sKKyAgICBkb3VibGUgbm93
ID0gbV9tZWRpYUNvbnRyb2xsZXItPmN1cnJlbnRUaW1lKCk7CisgICAgZG91YmxlIGR1cmF0aW9u
ID0gbV9tZWRpYUNvbnRyb2xsZXItPmR1cmF0aW9uKCk7CisKKyAgICBQYWdlKiBwYWdlID0gZG9j
dW1lbnQoKS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBBZnRlciBzZWVrLCBoaWRlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIHNob3cgY3VycmVudCB0aW1l
LgorICAgIGlmIChub3cgPiAwKSB7CisgICAgICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zaG93
KCk7CisgICAgICAgIG1fZHVyYXRpb25EaXNwbGF5LT5oaWRlKCk7CisgICAgfQorCisgICAgLy8g
QWxsb3cgdGhlIHRoZW1lIHRvIGZvcm1hdCB0aGUgdGltZS4KKyAgICBtX2N1cnJlbnRUaW1lRGlz
cGxheS0+c2V0SW5uZXJUZXh0KFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+Zm9ybWF0TWVk
aWFDb250cm9sc0N1cnJlbnRUaW1lKG5vdywgZHVyYXRpb24pLCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2V0Q3VycmVudFZhbHVlKG5vdyk7Cit9CisKK3Zv
aWQgTWVkaWFDb250cm9sc05peDo6Y2hhbmdlZE11dGUoKQoreworICAgIE1lZGlhQ29udHJvbHM6
OmNoYW5nZWRNdXRlKCk7CisKKyAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXItPm11dGVkKCkpCisg
ICAgICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRWb2x1bWUoMCk7CisgICAgZWxzZQorICAgICAgICBt
X3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKG1fbWVkaWFDb250cm9sbGVyLT52b2x1bWUoKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc05peC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc05peC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNmZGZhNGFlZGI4N2IyYjIwYzUxMjM4OWJkOTljZmQ2MzM5MTQ4OGYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzTml4LmgKQEAg
LTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhQ29udHJvbHNOaXhfaAorI2RlZmluZSBNZWRp
YUNvbnRyb2xzTml4X2gKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgIk1lZGlhQ29u
dHJvbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUNvbnRyb2xzTml4
IDogcHVibGljIE1lZGlhQ29udHJvbHMgeworcHVibGljOgorICAgIC8vIENhbGxlZCBmcm9tIHBv
cnQtc3BlY2lmaWMgcGFyZW50IGNyZWF0ZSBmdW5jdGlvbiB0byBjcmVhdGUgY3VzdG9tIGNvbnRy
b2xzLgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNOaXg+IGNyZWF0ZUNvbnRy
b2xzKERvY3VtZW50Jik7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFDb250cm9sbGVyKE1l
ZGlhQ29udHJvbGxlckludGVyZmFjZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNl
dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXJ0ZWQoKSBPVkVSUklE
RTsKKyAgICB2b2lkIGNoYW5nZWRNdXRlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUN1cnJlbnRUaW1lRGlzcGxheSgpIE9WRVJSSURFOworCitwcm90ZWN0ZWQ6CisgICAgZXhw
bGljaXQgTWVkaWFDb250cm9sc05peChEb2N1bWVudCYpOworCisgICAgYm9vbCBpbml0aWFsaXpl
Q29udHJvbHMoRG9jdW1lbnQmKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQqIG1fZHVyYXRpb25EaXNwbGF5OworICAgIE1lZGlhQ29udHJv
bFBhbmVsRW5jbG9zdXJlRWxlbWVudCogbV9lbmNsb3N1cmU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNlbmRpZiAvLyBNZWRpYUNv
bnRyb2xzTml4X2gKKwo=
</data>
<flag name="review"
          id="241298"
          type_id="1"
          status="-"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="241299"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>