<?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>59326</bug_id>
          
          <creation_ts>2011-04-25 09:38:33 -0700</creation_ts>
          <short_desc>Web Inspector: Use CachedResource to retrieve charset-decoded stylesheet text</short_desc>
          <delta_ts>2011-04-28 02:24: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>0</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>391785</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-04-25 09:38:33 -0700</bug_when>
    <thetext>Instead of manual text decoding, use CachedCSSStyleSheet::sheetText() which does what we need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391824</commentid>
    <comment_count>1</comment_count>
      <attachid>90929</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-04-25 10:40:21 -0700</bug_when>
    <thetext>Created attachment 90929
[PATCH] Suggested fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391838</commentid>
    <comment_count>2</comment_count>
      <attachid>90929</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-25 11:05:34 -0700</bug_when>
    <thetext>Comment on attachment 90929
[PATCH] Suggested fix

Btw, how does this new code relate to the decoding logic in the InspectorPageAgent::resourceContent itself? It seems that it should produce valid result without your change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392514</commentid>
    <comment_count>3</comment_count>
      <attachid>91118</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-04-26 09:35:28 -0700</bug_when>
    <thetext>Created attachment 91118
[PATCH] Improved solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392515</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-26 09:37:24 -0700</bug_when>
    <thetext>Attachment 91118 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/inspector/InspectorPageAgent.cpp:180:  Local variables should never be PassRefPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392517</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-04-26 09:40:11 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 90929 [details])
&gt; Btw, how does this new code relate to the decoding logic in the InspectorPageAgent::resourceContent itself? It seems that it should produce valid result without your change.

The other way round: it does not produce valid results even with my previous change (and \uFEFF did get into the frontend JavaScript but were not displayed). This is now fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392520</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-26 09:41:14 -0700</bug_when>
    <thetext>Attachment 91118 did not build on mac:
Build output: http://queues.webkit.org/results/8507670</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392522</commentid>
    <comment_count>7</comment_count>
      <attachid>91118</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-26 09:43:13 -0700</bug_when>
    <thetext>Comment on attachment 91118
[PATCH] Improved solution

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

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:67
&gt; +bool decodeSharedBuffer(PassRefPtr&lt;SharedBuffer&gt; buffer, const String&amp; textEncodingName, String* result)

Please make this static.

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:79
&gt; +bool prepareCachedResourceBuffer(CachedResource* cachedResource, bool* hasZeroSize)

Ditto.

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:105
&gt; +bool cachedResourceDecoded(CachedResource* cachedResource, String* result)

ditto. decodeCachedResource ?

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:131
&gt; +PassRefPtr&lt;SharedBuffer&gt; mainResourceSharedBuffer(Frame* frame, const KURL&amp; url, String* textEncodingName)

ditto

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:135
&gt; +    if (equalIgnoringFragmentIdentifier(url, loader-&gt;url())) {

You should only enter mainResourceSharedBuffer for main resource urls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392538</commentid>
    <comment_count>8</comment_count>
      <attachid>91123</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-04-26 10:08:35 -0700</bug_when>
    <thetext>Created attachment 91123
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394316</commentid>
    <comment_count>9</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-04-28 02:24:01 -0700</bug_when>
    <thetext>Committed r85172: &lt;http://trac.webkit.org/changeset/85172&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90929</attachid>
            <date>2011-04-25 10:40:21 -0700</date>
            <delta_ts>2011-04-26 09:35:28 -0700</delta_ts>
            <desc>[PATCH] Suggested fix</desc>
            <filename>cachedcss.patch</filename>
            <type>text/plain</type>
            <size>3090</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDE2ZjYzMmQyODIzYTViYTBlZjg5ZTc0YTk5M2QxYWUwYmJiMzhhNDgKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBNb24gQXByIDI1
IDIxOjEyOjEwIDIwMTEgKzA0MDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRhYzAxMC4uMTM2
MTZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDExLTA0LTI1ICBBbGV4YW5kZXIg
UGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogVXNlIENhY2hlZFJlc291cmNl
IHRvIHJldHJpZXZlIGNoYXJzZXQtZGVjb2RlZCBzdHlsZXNoZWV0IHRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MzI2CisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBhcyB0aGlzIGlzIGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JT
dHlsZVNoZWV0OjpvcmlnaW5hbFN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclN0eWxlU2hlZXQ6OnJlc291cmNlU3R5bGVTaGVldFRleHQpOgorCisyMDExLTA0LTI1
ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2
aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDU1Mg
aXMgcGFyc2VkIGltcHJvcGVybHkgd2hlbiBzYXZlZCBpbiBVVEYtOCB3aXRoIGEgQk9NCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXgg
MWU5MTI4NS4uZDgxNmUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKIAorI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKICNpbmNsdWRlICJDU1NN
ZWRpYVJ1bGUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKQEAgLTQ1LDcgKzQ3LDYgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAi
U3R5bGVTaGVldExpc3QuaCIKLSNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5j
bHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogCiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgpAQCAtMTA1NSwxNyArMTA1Niw5IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldDo6cmV2YWxp
ZGF0ZVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIHBhZ2VTdHlsZSkKIAogYm9vbCBJbnNwZWN0
b3JTdHlsZVNoZWV0OjpvcmlnaW5hbFN0eWxlU2hlZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25z
dAogewotICAgIFN0cmluZyByYXdUZXh0OwotICAgIGJvb2wgc3VjY2VzcyA9IGlubGluZVN0eWxl
U2hlZXRUZXh0KCZyYXdUZXh0KTsKKyAgICBib29sIHN1Y2Nlc3MgPSBpbmxpbmVTdHlsZVNoZWV0
VGV4dChyZXN1bHQpOwogICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgc3VjY2VzcyA9IHJlc291
cmNlU3R5bGVTaGVldFRleHQoJnJhd1RleHQpOwotICAgIGlmIChzdWNjZXNzKSB7Ci0gICAgICAg
IENTdHJpbmcgY1N0cmluZyA9IHJhd1RleHQudXRmOCgpOwotICAgICAgICBSZWZQdHI8VGV4dFJl
c291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4
dC9jc3MiKTsKLSAgICAgICAgU3RyaW5nIHNoZWV0VGV4dCA9IGRlY29kZXItPmRlY29kZShjU3Ry
aW5nLmRhdGEoKSwgY1N0cmluZy5sZW5ndGgoKSk7Ci0gICAgICAgIHNoZWV0VGV4dCArPSBkZWNv
ZGVyLT5mbHVzaCgpOwotICAgICAgICAqcmVzdWx0ID0gc2hlZXRUZXh0OwotICAgIH0KKyAgICAg
ICAgc3VjY2VzcyA9IHJlc291cmNlU3R5bGVTaGVldFRleHQocmVzdWx0KTsKICAgICByZXR1cm4g
c3VjY2VzczsKIH0KIApAQCAtMTA3Nyw5ICsxMDcwLDExIEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVT
aGVldDo6cmVzb3VyY2VTdHlsZVNoZWV0VGV4dChTdHJpbmcqIHJlc3VsdCkgY29uc3QKICAgICBp
ZiAoIW1fcGFnZVN0eWxlU2hlZXQgfHwgIW93bmVyRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgU3RyaW5nIGVycm9yOwotICAgIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVz
b3VyY2VDb250ZW50KCZlcnJvciwgb3duZXJEb2N1bWVudCgpLT5mcmFtZSgpLCBtX3BhZ2VTdHls
ZVNoZWV0LT5maW5hbFVSTCgpLCByZXN1bHQpOwotICAgIHJldHVybiBlcnJvci5pc0VtcHR5KCk7
CisgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gSW5zcGVjdG9yUGFnZUFnZW50
OjpjYWNoZWRSZXNvdXJjZShvd25lckRvY3VtZW50KCktPmZyYW1lKCksIG1fcGFnZVN0eWxlU2hl
ZXQtPmZpbmFsVVJMKCkpOworICAgIGlmICghY2FjaGVkUmVzb3VyY2UgfHwgY2FjaGVkUmVzb3Vy
Y2UtPnR5cGUoKSAhPSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICpyZXN1bHQgPSBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0
Kj4oY2FjaGVkUmVzb3VyY2UpLT5zaGVldFRleHQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
Ym9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0OjppbmxpbmVTdHlsZVNoZWV0VGV4dChTdHJpbmcqIHJl
c3VsdCkgY29uc3QK
</data>
<flag name="review"
          id="83693"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91118</attachid>
            <date>2011-04-26 09:35:28 -0700</date>
            <delta_ts>2011-04-26 10:08:35 -0700</delta_ts>
            <desc>[PATCH] Improved solution</desc>
            <filename>decodebuffers.patch</filename>
            <type>text/plain</type>
            <size>8698</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGQzNDEyN2NiYTA5ODEyYjJhOWIwMjFlNGZiNTEwNTA3ZmYyNTEyYmYKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBNb24gQXByIDI1
IDIxOjEyOjEwIDIwMTEgKzA0MDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUzZDkzNi4uNmRm
N2IxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTA0LTI2ICBBbGV4YW5kZXIg
UGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogVXNlIENhY2hlZFJlc291cmNl
IHRvIHJldHJpZXZlIGNoYXJzZXQtZGVjb2RlZCBzdHlsZXNoZWV0IHRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MzI2CisKKyAgICAgICAgQ29u
Y3JldGUgQ2FjaGVkUmVzb3VyY2Ugc3VjY2Vzc29ycyBmb3Igc3R5bGVzaGVldHMgYW5kIHNjcmlw
dHMKKyAgICAgICAgY2FuIGRlY29kZSB0aGVpciBjb250ZW50IGJldHRlciB0aGFuIHRoZSBnZW5l
cmljIGFwcHJvYWNoIHdlIHVzZS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGVjb2RlU2hhcmVkQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnByZXBhcmVDYWNoZWRSZXNvdXJjZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpjYWNoZWRSZXNvdXJjZURlY29kZWQpOgorICAgICAgICAoV2ViQ29yZTo6bWFpblJlc291
cmNlU2hhcmVkQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6
cmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6
cmVzb3VyY2VEYXRhKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0OjpvcmlnaW5hbFN0eWxl
U2hlZXRUZXh0KToKKwogMjAxMS0wNC0yNiAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggZGYyMGJmMS4uODhlZmYw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKQEAgLTM1LDcgKzM1LDEwIEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUg
IkJhc2U2NC5oIgorI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5j
bHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiQ29v
a2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTYxLDYgKzY0LDgyIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBkZWNvZGVTaGFyZWRCdWZmZXIoUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+IGJ1ZmZlciwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmdOYW1lLCBTdHJp
bmcqIHJlc3VsdCkKK3sKKyAgICBpZiAoYnVmZmVyKSB7CisgICAgICAgIFRleHRFbmNvZGluZyBl
bmNvZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKKyAgICAgICAgaWYgKCFlbmNvZGluZy5pc1ZhbGlk
KCkpCisgICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRpbjFFbmNvZGluZygpOworICAg
ICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNp
emUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgcHJlcGFyZUNhY2hlZFJlc291cmNlQnVmZmVyKENhY2hlZFJlc291cmNlKiBjYWNo
ZWRSZXNvdXJjZSwgYm9vbCogaGFzWmVyb1NpemUpCit7CisgICAgKmhhc1plcm9TaXplID0gZmFs
c2U7CisgICAgaWYgKCFjYWNoZWRSZXNvdXJjZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgLy8gWmVyby1zaXplZCByZXNvdXJjZXMgZG9uJ3QgaGF2ZSBkYXRhIGF0IGFsbCAtLSBzbyBm
YWtlIHRoZSBlbXB0eSBidWZmZXIsIGluc3RlYWQgb2YgaW5kaWNhdGluZyBlcnJvciBieSByZXR1
cm5pbmcgMC4KKyAgICBpZiAoIWNhY2hlZFJlc291cmNlLT5lbmNvZGVkU2l6ZSgpKSB7CisgICAg
ICAgICpoYXNaZXJvU2l6ZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIGlmIChjYWNoZWRSZXNvdXJjZS0+aXNQdXJnZWFibGUoKSkgeworICAgICAgICAvLyBJZiB0
aGUgcmVzb3VyY2UgaXMgcHVyZ2VhYmxlIHRoZW4gbWFrZSBpdCB1bnB1cmdlYWJsZSB0byBnZXQK
KyAgICAgICAgLy8gZ2V0IGl0cyBkYXRhLiBUaGlzIG1pZ2h0IGZhaWwsIGluIHdoaWNoIGNhc2Ug
d2UgcmV0dXJuIGFuCisgICAgICAgIC8vIGVtcHR5IFN0cmluZy4KKyAgICAgICAgLy8gRklYTUU6
IHNob3VsZCB3ZSBkbyBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY2FzZSBvZiBhIHB1cmdlZAorICAg
ICAgICAvLyByZXNvdXJjZSB0aGF0IGluZm9ybXMgdGhlIHVzZXIgd2h5IHRoZXJlIGlzIG5vIGRh
dGEgaW4gdGhlCisgICAgICAgIC8vIGluc3BlY3Rvcj8KKyAgICAgICAgaWYgKCFjYWNoZWRSZXNv
dXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgY2FjaGVkUmVzb3VyY2VEZWNvZGVk
KENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSwgU3RyaW5nKiByZXN1bHQpCit7CisgICAg
Ym9vbCBoYXNaZXJvU2l6ZTsKKyAgICBib29sIHByZXBhcmVkID0gcHJlcGFyZUNhY2hlZFJlc291
cmNlQnVmZmVyKGNhY2hlZFJlc291cmNlLCAmaGFzWmVyb1NpemUpOworICAgIGlmICghcHJlcGFy
ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChjYWNoZWRSZXNvdXJjZSkgewor
ICAgICAgICBzd2l0Y2ggKGNhY2hlZFJlc291cmNlLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKKyAgICAgICAgICAgICpyZXN1bHQgPSBzdGF0
aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4oY2FjaGVkUmVzb3VyY2UpLT5zaGVldFRleHQo
KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpTY3JpcHQ6CisgICAgICAgICAgICAqcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0
Kj4oY2FjaGVkUmVzb3VyY2UpLT5zY3JpcHQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKGhhc1plcm9TaXplKSB7CisgICAgICAg
ICAgICAgICAgKnJlc3VsdCA9ICIiOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGRlY29kZVNoYXJlZEJ1ZmZlcihjYWNoZWRS
ZXNvdXJjZS0+ZGF0YSgpLCBjYWNoZWRSZXNvdXJjZS0+ZW5jb2RpbmcoKSwgcmVzdWx0KTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBtYWluUmVzb3VyY2VTaGFyZWRCdWZmZXIoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJM
JiB1cmwsIFN0cmluZyogdGV4dEVuY29kaW5nTmFtZSkKK3sKKyAgICBGcmFtZUxvYWRlciogZnJh
bWVMb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7CisgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9
IGZyYW1lTG9hZGVyLT5kb2N1bWVudExvYWRlcigpOworICAgIGlmIChlcXVhbElnbm9yaW5nRnJh
Z21lbnRJZGVudGlmaWVyKHVybCwgbG9hZGVyLT51cmwoKSkpIHsKKyAgICAgICAgKnRleHRFbmNv
ZGluZ05hbWUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+aW5wdXRFbmNvZGluZygpOworICAgICAgICBy
ZXR1cm4gZnJhbWVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZURhdGEoKTsK
KyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogUGFzc093blB0cjxJbnNwZWN0b3JQYWdlQWdl
bnQ+IEluc3BlY3RvclBhZ2VBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIFBhZ2UqIHBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yUGFn
ZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2UsIGluamVjdGVkU2NyaXB0TWFuYWdlcikp
OwpAQCAtNzQsMTYgKzE1MywxMyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VD
b250ZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJhbWUqIGZyYW1lLAogICAgIH0KIAog
ICAgIFN0cmluZyB0ZXh0RW5jb2RpbmdOYW1lOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1
ZmZlciA9IEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VEYXRhKGZyYW1lLCB1cmwsICZ0ZXh0
RW5jb2RpbmdOYW1lKTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBtYWluUmVz
b3VyY2VTaGFyZWRCdWZmZXIoZnJhbWUsIHVybCwgJnRleHRFbmNvZGluZ05hbWUpOworICAgIGJv
b2wgc3VjY2VzcyA9IGRlY29kZVNoYXJlZEJ1ZmZlcihidWZmZXIsIHRleHRFbmNvZGluZ05hbWUs
IHJlc3VsdCk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBzdWNjZXNzID0gY2FjaGVkUmVz
b3VyY2VEZWNvZGVkKGNhY2hlZFJlc291cmNlKGZyYW1lLCB1cmwpLCByZXN1bHQpOwogCi0gICAg
aWYgKGJ1ZmZlcikgewotICAgICAgICBUZXh0RW5jb2RpbmcgZW5jb2RpbmcodGV4dEVuY29kaW5n
TmFtZSk7Ci0gICAgICAgIGlmICghZW5jb2RpbmcuaXNWYWxpZCgpKQotICAgICAgICAgICAgZW5j
b2RpbmcgPSBXaW5kb3dzTGF0aW4xRW5jb2RpbmcoKTsKLSAgICAgICAgKnJlc3VsdCA9IGVuY29k
aW5nLmRlY29kZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgICplcnJvclN0cmluZyA9ICJObyByZXNvdXJjZSB3aXRoIGdpdmVuIFVS
TCBmb3VuZCI7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8g
cmVzb3VyY2Ugd2l0aCBnaXZlbiBVUkwgZm91bmQiOwogfQogCiB2b2lkIEluc3BlY3RvclBhZ2VB
Z2VudDo6cmVzb3VyY2VDb250ZW50QmFzZTY0KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIFN0cmluZyogcmVzdWx0KQpAQCAtMTAxLDM0ICsx
NzcsMjAgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlQ29udGVudEJhc2U2NChF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZyYW1lKgogCiBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZURhdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBL
VVJMJiB1cmwsIFN0cmluZyogdGV4dEVuY29kaW5nTmFtZSkKIHsKLSAgICBGcmFtZUxvYWRlciog
ZnJhbWVMb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7Ci0gICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRl
ciA9IGZyYW1lTG9hZGVyLT5kb2N1bWVudExvYWRlcigpOwotICAgIGlmIChlcXVhbElnbm9yaW5n
RnJhZ21lbnRJZGVudGlmaWVyKHVybCwgbG9hZGVyLT51cmwoKSkpIHsKLSAgICAgICAgKnRleHRF
bmNvZGluZ05hbWUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+aW5wdXRFbmNvZGluZygpOwotICAgICAg
ICByZXR1cm4gZnJhbWVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZURhdGEo
KTsKLSAgICB9CisgICAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IG1haW5SZXNv
dXJjZVNoYXJlZEJ1ZmZlcihmcmFtZSwgdXJsLCB0ZXh0RW5jb2RpbmdOYW1lKTsKKyAgICBpZiAo
YnVmZmVyKQorICAgICAgICByZXR1cm4gYnVmZmVyOwogCiAgICAgQ2FjaGVkUmVzb3VyY2UqIGNh
Y2hlZFJlc291cmNlID0gSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZShmcmFtZSwg
dXJsKTsKICAgICBpZiAoIWNhY2hlZFJlc291cmNlKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IC8vIFplcm8tc2l6ZWQgcmVzb3VyY2VzIGRvbid0IGhhdmUgZGF0YSBhdCBhbGwgLS0gc28gZmFr
ZSB0aGUgZW1wdHkgYnVmZmVyLCBpbnN0ZWQgb2YgaW5kaWNhdGluZyBlcnJvciBieSByZXR1cm5p
bmcgMC4KLSAgICBpZiAoIWNhY2hlZFJlc291cmNlLT5lbmNvZGVkU2l6ZSgpKQotICAgICAgICBy
ZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKLQotICAgIGlmIChjYWNoZWRSZXNvdXJjZS0+
aXNQdXJnZWFibGUoKSkgewotICAgICAgICAvLyBJZiB0aGUgcmVzb3VyY2UgaXMgcHVyZ2VhYmxl
IHRoZW4gbWFrZSBpdCB1bnB1cmdlYWJsZSB0byBnZXQKLSAgICAgICAgLy8gZ2V0IGl0cyBkYXRh
LiBUaGlzIG1pZ2h0IGZhaWwsIGluIHdoaWNoIGNhc2Ugd2UgcmV0dXJuIGFuCi0gICAgICAgIC8v
IGVtcHR5IFN0cmluZy4KLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB3ZSBkbyBzb21ldGhpbmcg
ZWxzZSBpbiB0aGUgY2FzZSBvZiBhIHB1cmdlZAotICAgICAgICAvLyByZXNvdXJjZSB0aGF0IGlu
Zm9ybXMgdGhlIHVzZXIgd2h5IHRoZXJlIGlzIG5vIGRhdGEgaW4gdGhlCi0gICAgICAgIC8vIGlu
c3BlY3Rvcj8KLSAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxz
ZSkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICB9CisgICAgYm9vbCBoYXNaZXJvU2l6ZTsK
KyAgICBib29sIHByZXBhcmVkID0gcHJlcGFyZUNhY2hlZFJlc291cmNlQnVmZmVyKGNhY2hlZFJl
c291cmNlLCAmaGFzWmVyb1NpemUpOworICAgIGlmICghcHJlcGFyZWQpCisgICAgICAgIHJldHVy
biAwOwogCi0gICAgKnRleHRFbmNvZGluZ05hbWUgPSBjYWNoZWRSZXNvdXJjZS0+ZW5jb2Rpbmco
KTsKLSAgICByZXR1cm4gY2FjaGVkUmVzb3VyY2UtPmRhdGEoKTsKKyAgICByZXR1cm4gaGFzWmVy
b1NpemUgPyBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpIDogY2FjaGVkUmVzb3VyY2UtPmRhdGEoKTsK
IH0KIAogQ2FjaGVkUmVzb3VyY2UqIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2Uo
RnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggMmI3NzBhNS4uNmFiZDg4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApA
QCAtNDUsNyArNDUsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUg
Ik5vZGUuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0TGlzdC5oIgotI2luY2x1ZGUgIlRleHRSZXNv
dXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAKICNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xMDU1LDE3ICsxMDU0LDkgQEAgdm9pZCBJbnNwZWN0
b3JTdHlsZVNoZWV0OjpyZXZhbGlkYXRlU3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogcGFnZVN0
eWxlKQogCiBib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6Om9yaWdpbmFsU3R5bGVTaGVldFRleHQo
U3RyaW5nKiByZXN1bHQpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJhd1RleHQ7Ci0gICAgYm9vbCBz
dWNjZXNzID0gaW5saW5lU3R5bGVTaGVldFRleHQoJnJhd1RleHQpOworICAgIGJvb2wgc3VjY2Vz
cyA9IGlubGluZVN0eWxlU2hlZXRUZXh0KHJlc3VsdCk7CiAgICAgaWYgKCFzdWNjZXNzKQotICAg
ICAgICBzdWNjZXNzID0gcmVzb3VyY2VTdHlsZVNoZWV0VGV4dCgmcmF3VGV4dCk7Ci0gICAgaWYg
KHN1Y2Nlc3MpIHsKLSAgICAgICAgQ1N0cmluZyBjU3RyaW5nID0gcmF3VGV4dC51dGY4KCk7Ci0g
ICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBkZWNvZGVyID0gVGV4dFJlc291cmNl
RGVjb2Rlcjo6Y3JlYXRlKCJ0ZXh0L2NzcyIpOwotICAgICAgICBTdHJpbmcgc2hlZXRUZXh0ID0g
ZGVjb2Rlci0+ZGVjb2RlKGNTdHJpbmcuZGF0YSgpLCBjU3RyaW5nLmxlbmd0aCgpKTsKLSAgICAg
ICAgc2hlZXRUZXh0ICs9IGRlY29kZXItPmZsdXNoKCk7Ci0gICAgICAgICpyZXN1bHQgPSBzaGVl
dFRleHQ7Ci0gICAgfQorICAgICAgICBzdWNjZXNzID0gcmVzb3VyY2VTdHlsZVNoZWV0VGV4dChy
ZXN1bHQpOwogICAgIHJldHVybiBzdWNjZXNzOwogfQogCg==
</data>
<flag name="review"
          id="83898"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91123</attachid>
            <date>2011-04-26 10:08:35 -0700</date>
            <delta_ts>2011-04-26 10:26:18 -0700</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>decodebuffers.patch</filename>
            <type>text/plain</type>
            <size>8542</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDVjMDIzY2MzZmFhMGM2OTFmMWJjZGVhMmU5NmM2OTBjY2NjNjFkMzEKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBNb24gQXByIDI1
IDIxOjEyOjEwIDIwMTEgKzA0MDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUzZDkzNi4uZWIx
ZWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTA0LTI2ICBBbGV4YW5kZXIg
UGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogVXNlIENhY2hlZFJlc291cmNl
IHRvIHJldHJpZXZlIGNoYXJzZXQtZGVjb2RlZCBzdHlsZXNoZWV0IHRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MzI2CisKKyAgICAgICAgQ29u
Y3JldGUgQ2FjaGVkUmVzb3VyY2Ugc3VjY2Vzc29ycyBmb3Igc3R5bGVzaGVldHMgYW5kIHNjcmlw
dHMKKyAgICAgICAgY2FuIGRlY29kZSB0aGVpciBjb250ZW50IGJldHRlciB0aGFuIHRoZSBnZW5l
cmljIGFwcHJvYWNoIHdlIHVzZS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGVjb2RlU2hhcmVkQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnByZXBhcmVDYWNoZWRSZXNvdXJjZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpjYWNoZWRSZXNvdXJjZURlY29kZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpyZXNvdXJjZURhdGEpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6Om9y
aWdpbmFsU3R5bGVTaGVldFRleHQpOgorCiAyMDExLTA0LTI2ICBEYXZpZCBMZXZpbiAgPGxldmlu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBkZjIw
YmYxLi5hZjNjNWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcApAQCAtMzUsNyArMzUsMTAgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
CiAjaW5jbHVkZSAiQmFzZTY0LmgiCisjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgor
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDb29raWUuaCIKICNp
bmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNjEsNiArNjQs
NzAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgYm9vbCBkZWNvZGVTaGFyZWRC
dWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciwgY29uc3QgU3RyaW5nJiB0ZXh0
RW5jb2RpbmdOYW1lLCBTdHJpbmcqIHJlc3VsdCkKK3sKKyAgICBpZiAoYnVmZmVyKSB7CisgICAg
ICAgIFRleHRFbmNvZGluZyBlbmNvZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKKyAgICAgICAgaWYg
KCFlbmNvZGluZy5pc1ZhbGlkKCkpCisgICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRp
bjFFbmNvZGluZygpOworICAgICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+
ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIHByZXBhcmVDYWNoZWRSZXNvdXJjZUJ1
ZmZlcihDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIGJvb2wqIGhhc1plcm9TaXplKQor
eworICAgICpoYXNaZXJvU2l6ZSA9IGZhbHNlOworICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFplcm8tc2l6ZWQgcmVzb3VyY2VzIGRvbid0
IGhhdmUgZGF0YSBhdCBhbGwgLS0gc28gZmFrZSB0aGUgZW1wdHkgYnVmZmVyLCBpbnN0ZWFkIG9m
IGluZGljYXRpbmcgZXJyb3IgYnkgcmV0dXJuaW5nIDAuCisgICAgaWYgKCFjYWNoZWRSZXNvdXJj
ZS0+ZW5jb2RlZFNpemUoKSkgeworICAgICAgICAqaGFzWmVyb1NpemUgPSB0cnVlOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoY2FjaGVkUmVzb3VyY2UtPmlzUHVyZ2Vh
YmxlKCkpIHsKKyAgICAgICAgLy8gSWYgdGhlIHJlc291cmNlIGlzIHB1cmdlYWJsZSB0aGVuIG1h
a2UgaXQgdW5wdXJnZWFibGUgdG8gZ2V0CisgICAgICAgIC8vIGdldCBpdHMgZGF0YS4gVGhpcyBt
aWdodCBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIHJldHVybiBhbgorICAgICAgICAvLyBlbXB0eSBT
dHJpbmcuCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgd2UgZG8gc29tZXRoaW5nIGVsc2UgaW4g
dGhlIGNhc2Ugb2YgYSBwdXJnZWQKKyAgICAgICAgLy8gcmVzb3VyY2UgdGhhdCBpbmZvcm1zIHRo
ZSB1c2VyIHdoeSB0aGVyZSBpcyBubyBkYXRhIGluIHRoZQorICAgICAgICAvLyBpbnNwZWN0b3I/
CisgICAgICAgIGlmICghY2FjaGVkUmVzb3VyY2UtPm1ha2VQdXJnZWFibGUoZmFsc2UpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitz
dGF0aWMgYm9vbCBkZWNvZGVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVz
b3VyY2UsIFN0cmluZyogcmVzdWx0KQoreworICAgIGJvb2wgaGFzWmVyb1NpemU7CisgICAgYm9v
bCBwcmVwYXJlZCA9IHByZXBhcmVDYWNoZWRSZXNvdXJjZUJ1ZmZlcihjYWNoZWRSZXNvdXJjZSwg
Jmhhc1plcm9TaXplKTsKKyAgICBpZiAoIXByZXBhcmVkKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoY2FjaGVkUmVzb3VyY2UpIHsKKyAgICAgICAgc3dpdGNoIChjYWNoZWRSZXNv
dXJjZS0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hl
ZXQ6CisgICAgICAgICAgICAqcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVl
dCo+KGNhY2hlZFJlc291cmNlKS0+c2hlZXRUZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0OgorICAgICAgICAgICAgKnJl
c3VsdCA9IHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdCo+KGNhY2hlZFJlc291cmNlKS0+c2NyaXB0
KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIGlmIChoYXNaZXJvU2l6ZSkgeworICAgICAgICAgICAgICAgICpyZXN1bHQgPSAiIjsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJl
dHVybiBkZWNvZGVTaGFyZWRCdWZmZXIoY2FjaGVkUmVzb3VyY2UtPmRhdGEoKSwgY2FjaGVkUmVz
b3VyY2UtPmVuY29kaW5nKCksIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBQYXNzT3duUHRyPEluc3BlY3RvclBhZ2VBZ2VudD4gSW5zcGVjdG9yUGFn
ZUFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
UGFnZSogcGFnZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JQYWdlQWdlbnQoaW5zdHJ1bWVu
dGluZ0FnZW50cywgcGFnZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7CkBAIC03MywxNyArMTQw
LDIwIEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBGcmFtZSogZnJhbWUsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBTdHJpbmcgdGV4dEVuY29kaW5nTmFtZTsKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBi
dWZmZXIgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlRGF0YShmcmFtZSwgdXJsLCAmdGV4
dEVuY29kaW5nTmFtZSk7Ci0KLSAgICBpZiAoYnVmZmVyKSB7Ci0gICAgICAgIFRleHRFbmNvZGlu
ZyBlbmNvZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKLSAgICAgICAgaWYgKCFlbmNvZGluZy5pc1Zh
bGlkKCkpCi0gICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRpbjFFbmNvZGluZygpOwot
ICAgICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXIt
PnNpemUoKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIg
PSBmcmFtZS0+bG9hZGVyKCk7CisgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGZyYW1lTG9h
ZGVyLT5kb2N1bWVudExvYWRlcigpOworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsK
KyAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50
SWRlbnRpZmllcih1cmwsIGxvYWRlci0+dXJsKCkpKSB7CisgICAgICAgIFN0cmluZyB0ZXh0RW5j
b2RpbmdOYW1lID0gZnJhbWUtPmRvY3VtZW50KCktPmlucHV0RW5jb2RpbmcoKTsKKyAgICAgICAg
YnVmZmVyID0gZnJhbWVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZURhdGEo
KTsKKyAgICAgICAgc3VjY2VzcyA9IGRlY29kZVNoYXJlZEJ1ZmZlcihidWZmZXIsIHRleHRFbmNv
ZGluZ05hbWUsIHJlc3VsdCk7CiAgICAgfQotICAgICplcnJvclN0cmluZyA9ICJObyByZXNvdXJj
ZSB3aXRoIGdpdmVuIFVSTCBmb3VuZCI7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBzdWNj
ZXNzID0gZGVjb2RlQ2FjaGVkUmVzb3VyY2UoY2FjaGVkUmVzb3VyY2UoZnJhbWUsIHVybCksIHJl
c3VsdCk7CisKKyAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgICplcnJvclN0cmluZyA9ICJObyBy
ZXNvdXJjZSB3aXRoIGdpdmVuIFVSTCBmb3VuZCI7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFn
ZW50OjpyZXNvdXJjZUNvbnRlbnRCYXNlNjQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBGcmFt
ZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5nKiByZXN1bHQpCkBAIC0xMDEsMzQgKzE3
MSwyNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VDb250ZW50QmFzZTY0KEVy
cm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJhbWUqCiAKIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlRGF0YShGcmFtZSogZnJhbWUsIGNvbnN0IEtV
UkwmIHVybCwgU3RyaW5nKiB0ZXh0RW5jb2RpbmdOYW1lKQogeworICAgIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IGJ1ZmZlcjsKICAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBmcmFtZS0+bG9h
ZGVyKCk7CiAgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGZyYW1lTG9hZGVyLT5kb2N1bWVu
dExvYWRlcigpOwogICAgIGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKHVybCwg
bG9hZGVyLT51cmwoKSkpIHsKICAgICAgICAgKnRleHRFbmNvZGluZ05hbWUgPSBmcmFtZS0+ZG9j
dW1lbnQoKS0+aW5wdXRFbmNvZGluZygpOwotICAgICAgICByZXR1cm4gZnJhbWVMb2FkZXItPmRv
Y3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZURhdGEoKTsKKyAgICAgICAgYnVmZmVyID0gZnJh
bWVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZURhdGEoKTsKKyAgICAgICAg
aWYgKGJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBidWZmZXI7CiAgICAgfQogCiAgICAgQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRS
ZXNvdXJjZShmcmFtZSwgdXJsKTsKICAgICBpZiAoIWNhY2hlZFJlc291cmNlKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIC8vIFplcm8tc2l6ZWQgcmVzb3VyY2VzIGRvbid0IGhhdmUgZGF0YSBh
dCBhbGwgLS0gc28gZmFrZSB0aGUgZW1wdHkgYnVmZmVyLCBpbnN0ZWQgb2YgaW5kaWNhdGluZyBl
cnJvciBieSByZXR1cm5pbmcgMC4KLSAgICBpZiAoIWNhY2hlZFJlc291cmNlLT5lbmNvZGVkU2l6
ZSgpKQotICAgICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKLQotICAgIGlmIChj
YWNoZWRSZXNvdXJjZS0+aXNQdXJnZWFibGUoKSkgewotICAgICAgICAvLyBJZiB0aGUgcmVzb3Vy
Y2UgaXMgcHVyZ2VhYmxlIHRoZW4gbWFrZSBpdCB1bnB1cmdlYWJsZSB0byBnZXQKLSAgICAgICAg
Ly8gZ2V0IGl0cyBkYXRhLiBUaGlzIG1pZ2h0IGZhaWwsIGluIHdoaWNoIGNhc2Ugd2UgcmV0dXJu
IGFuCi0gICAgICAgIC8vIGVtcHR5IFN0cmluZy4KLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB3
ZSBkbyBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY2FzZSBvZiBhIHB1cmdlZAotICAgICAgICAvLyBy
ZXNvdXJjZSB0aGF0IGluZm9ybXMgdGhlIHVzZXIgd2h5IHRoZXJlIGlzIG5vIGRhdGEgaW4gdGhl
Ci0gICAgICAgIC8vIGluc3BlY3Rvcj8KLSAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZS0+bWFr
ZVB1cmdlYWJsZShmYWxzZSkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICB9CisgICAgYm9v
bCBoYXNaZXJvU2l6ZTsKKyAgICBib29sIHByZXBhcmVkID0gcHJlcGFyZUNhY2hlZFJlc291cmNl
QnVmZmVyKGNhY2hlZFJlc291cmNlLCAmaGFzWmVyb1NpemUpOworICAgIGlmICghcHJlcGFyZWQp
CisgICAgICAgIHJldHVybiAwOwogCiAgICAgKnRleHRFbmNvZGluZ05hbWUgPSBjYWNoZWRSZXNv
dXJjZS0+ZW5jb2RpbmcoKTsKLSAgICByZXR1cm4gY2FjaGVkUmVzb3VyY2UtPmRhdGEoKTsKKyAg
ICByZXR1cm4gaGFzWmVyb1NpemUgPyBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpIDogY2FjaGVkUmVz
b3VyY2UtPmRhdGEoKTsKIH0KIAogQ2FjaGVkUmVzb3VyY2UqIEluc3BlY3RvclBhZ2VBZ2VudDo6
Y2FjaGVkUmVzb3VyY2UoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggMmI3NzBh
NS4uNmFiZDg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcApAQCAtNDUsNyArNDUsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVl
cy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0TGlzdC5oIgotI2lu
Y2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFt
ZXNSdWxlLmgiCiAKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xMDU1LDE3ICsxMDU0LDkg
QEAgdm9pZCBJbnNwZWN0b3JTdHlsZVNoZWV0OjpyZXZhbGlkYXRlU3R5bGUoQ1NTU3R5bGVEZWNs
YXJhdGlvbiogcGFnZVN0eWxlKQogCiBib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6Om9yaWdpbmFs
U3R5bGVTaGVldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJhd1Rl
eHQ7Ci0gICAgYm9vbCBzdWNjZXNzID0gaW5saW5lU3R5bGVTaGVldFRleHQoJnJhd1RleHQpOwor
ICAgIGJvb2wgc3VjY2VzcyA9IGlubGluZVN0eWxlU2hlZXRUZXh0KHJlc3VsdCk7CiAgICAgaWYg
KCFzdWNjZXNzKQotICAgICAgICBzdWNjZXNzID0gcmVzb3VyY2VTdHlsZVNoZWV0VGV4dCgmcmF3
VGV4dCk7Ci0gICAgaWYgKHN1Y2Nlc3MpIHsKLSAgICAgICAgQ1N0cmluZyBjU3RyaW5nID0gcmF3
VGV4dC51dGY4KCk7Ci0gICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBkZWNvZGVy
ID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJ0ZXh0L2NzcyIpOwotICAgICAgICBTdHJp
bmcgc2hlZXRUZXh0ID0gZGVjb2Rlci0+ZGVjb2RlKGNTdHJpbmcuZGF0YSgpLCBjU3RyaW5nLmxl
bmd0aCgpKTsKLSAgICAgICAgc2hlZXRUZXh0ICs9IGRlY29kZXItPmZsdXNoKCk7Ci0gICAgICAg
ICpyZXN1bHQgPSBzaGVldFRleHQ7Ci0gICAgfQorICAgICAgICBzdWNjZXNzID0gcmVzb3VyY2VT
dHlsZVNoZWV0VGV4dChyZXN1bHQpOwogICAgIHJldHVybiBzdWNjZXNzOwogfQogCg==
</data>
<flag name="review"
          id="83903"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>