<?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>45528</bug_id>
          
          <creation_ts>2010-09-10 03:24:24 -0700</creation_ts>
          <short_desc>Move JavaScriptCore statistics gathering into JavaScriptCore</short_desc>
          <delta_ts>2010-10-13 14:13:02 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stephanie Lewis">slewis</reporter>
          <assigned_to name="Stephanie Lewis">slewis</assigned_to>
          <cc>eric</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>277098</commentid>
    <comment_count>0</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2010-09-10 03:24:24 -0700</bug_when>
    <thetext>Refactor JavaScriptCore memory statistics so that WebKit doesn&apos;t need to know about the JIT and other implementation details of JavaScriptCore.  Necessary to fix PPC build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277101</commentid>
    <comment_count>1</comment_count>
      <attachid>67166</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2010-09-10 03:39:15 -0700</bug_when>
    <thetext>Created attachment 67166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277102</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-10 03:41:37 -0700</bug_when>
    <thetext>Attachment 67166 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/runtime/MemoryStatistics.cpp:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
JavaScriptCore/runtime/MemoryStatistics.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 7 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>277224</commentid>
    <comment_count>3</comment_count>
      <attachid>67166</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-10 08:53:20 -0700</bug_when>
    <thetext>Comment on attachment 67166
Patch

Oops!

&gt; +#include &quot;ExecutableAllocator.h&quot;
&gt; +#include &quot;JSGlobalData.h&quot;
&gt; +#include &quot;RegisterFile.h&quot;
&gt; +
&gt; +

Extra blank line here.

&gt; +namespace JSC {
&gt; +
&gt; +    MemoryStatistics memoryStatistics(JSGlobalData* commonGlobalData) 

This shouldn&apos;t be indented.

I think that it&apos;s nice to put heap and stack/JIT statistics under a common umbrella. But I don&apos;t think that it&apos;s good to report both global and per-heap statistics via one call. Can it be split in two?

&gt; +namespace JSC {
&gt; +
&gt; +    struct MemoryStatistics {

This shouldn&apos;t be indented.

&gt; +    MemoryStatistics mStats = memoryStatistics(JSDOMWindow::commonJSGlobalData());

We prefer to not abbreviate words - and &quot;m&quot; is a prefix for member variables!

r=me, since we need to fix the build ASAP, but I think that this can be improved a bit later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293614</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-13 12:27:23 -0700</bug_when>
    <thetext>Attachment 67166 was posted by a committer and has review+, assigning to Stephanie Lewis for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293703</commentid>
    <comment_count>5</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2010-10-13 14:13:02 -0700</bug_when>
    <thetext>oops, I forgot to close this bug.  Sorry!

Landed in http://trac.webkit.org/projects/webkit/changeset/67265</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67166</attachid>
            <date>2010-09-10 03:39:15 -0700</date>
            <delta_ts>2010-09-10 08:53:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>jsStats.patch</filename>
            <type>text/plain</type>
            <size>14185</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3MTg1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDktMTAgIFN0ZXBoYW5p
ZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisgICAgICAgIAorICAgICAgICBSZWZhY3RvciBKYXZhU2NyaXB0Q29yZSBtZW1v
cnkgc3RhdGlzdGljcyBzbyB0aGF0IFdlYktpdCBkb2Vzbid0IG5lZWQgdG8ga25vdyAKKyAgICAg
ICAgYWJvdXQgdGhlIEpJVCBhbmQgb3RoZXIgaW1wbGVtZW50YXRpb24gZGV0YWlscyBvZiBKYXZh
U2NyaXB0Q29yZS4gIE5lY2Vzc2FyeSAKKyAgICAgICAgdG8gZml4IFBQQyBidWlsZC4KKyAgICAg
ICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTUy
OAorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9NZW1vcnlT
dGF0aXN0aWNzLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6Om1lbW9yeVN0YXRpc3RpY3MpOgor
ICAgICAgICAqIHJ1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5oOiBBZGRlZC4KKwogMjAxMC0wOS0w
OSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJ
KHJldmlzaW9uIDY3MTY0KQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzIsNyArMTMyLDYgQEAgX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE0
c2hhcmVkSW5zdGFuY2VFdgogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE1ZHVtcFJlZ0V4cFRyYWNl
RXYKIF9fWk4zSlNDMTJKU0dsb2JhbERhdGE2Y3JlYXRlRU5TXzE1VGhyZWFkU3RhY2tUeXBlRQog
X19aTjNKU0MxMkpTR2xvYmFsRGF0YUQxRXYKLV9fWk4zSlNDMTJSZWdpc3RlckZpbGUxOGNvbW1p
dHRlZEJ5dGVDb3VudEV2CiBfX1pOM0pTQzEyU2FtcGxpbmdUb29sNXNldHVwRXYKIF9fWk4zSlND
MTJTbWFsbFN0cmluZ3MxN2NyZWF0ZUVtcHR5U3RyaW5nRVBOU18xMkpTR2xvYmFsRGF0YUUKIF9f
Wk4zSlNDMTJTbWFsbFN0cmluZ3MyN2NyZWF0ZVNpbmdsZUNoYXJhY3RlclN0cmluZ0VQTlNfMTJK
U0dsb2JhbERhdGFFaApAQCAtMTc1LDYgKzE3NCw3IEBAIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0
aW9uQzJFUE5TXzEySlNHbG8KIF9fWk4zSlNDMTZKU1ZhcmlhYmxlT2JqZWN0MTRkZWxldGVQcm9w
ZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTZKU1Zhcmlh
YmxlT2JqZWN0MTRzeW1ib2xUYWJsZUdldEVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0
eURlc2NyaXB0b3JFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE5Z2V0T3duUHJvcGVydHlO
YW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0
aW9uTW9kZUUKK19fWk4zSlNDMTZtZW1vcnlTdGF0aXN0aWNzRVBOU18xMkpTR2xvYmFsRGF0YUUK
IF9fWk4zSlNDMTZXZWFrR0NIYW5kbGVQb29sNGZyZWVFUE5TXzEyV2Vha0dDSGFuZGxlRQogX19a
TjNKU0MxNmNyZWF0ZVJhbmdlRXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmluZ0UKIF9f
Wk4zSlNDMTZ0aHJvd1N5bnRheEVycm9yRVBOU185RXhlY1N0YXRlRQpAQCAtMTkzLDcgKzE5Myw2
IEBAIF9fWk4zSlNDMThQcm9wZXJ0eURlc2NyaXB0b3IxN2RlZmF1bHRBdHQKIF9fWk4zSlNDMThQ
cm9wZXJ0eURlc2NyaXB0b3IyMXNldEFjY2Vzc29yRGVzY3JpcHRvckVOU183SlNWYWx1ZUVTMV9q
CiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yOXNldEdldHRlckVOU183SlNWYWx1ZUUKIF9f
Wk4zSlNDMThQcm9wZXJ0eURlc2NyaXB0b3I5c2V0U2V0dGVyRU5TXzdKU1ZhbHVlRQotX19aTjNK
U0MxOUV4ZWN1dGFibGVBbGxvY2F0b3IxOGNvbW1pdHRlZEJ5dGVDb3VudEV2CiBfX1pOM0pTQzE5
aW5pdGlhbGl6ZVRocmVhZGluZ0V2CiBfX1pOM0pTQzIwTWFya2VkQXJndW1lbnRCdWZmZXIxMHNs
b3dBcHBlbmRFTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzIwY3JlYXRlUmVmZXJlbmNlRXJyb3JFUE5T
XzlFeGVjU3RhdGVFUktOU183VVN0cmluZ0UKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
NjcxNjQpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDggQEAKIAkJODZFQUM0OUIw
RjkzRThEMTAwOEVDOTQ4IC8qIFJlZ2V4UGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVBQzQ5MzBGOTNFOEQxMDA4RUM5NDggLyogUmVnZXhQ
YXJzZXIuaCAqLzsgfTsKIAkJODZFQUM0OUMwRjkzRThEMTAwOEVDOTQ4IC8qIFJlZ2V4UGF0dGVy
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQUM0
OTQwRjkzRThEMTAwOEVDOTQ4IC8qIFJlZ2V4UGF0dGVybi5oICovOyB9OwogCQk4NkYzODg1OTEy
MTEzMENBMDA3QTdDRTMgLyogQXRvbWljU3RyaW5nSGFzaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZGMzg4NTgxMjExMzBDQTAwN0E3Q0UzIC8qIEF0
b21pY1N0cmluZ0hhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5MDIxM0UzRDEyM0E0MEMyMDBENDIyRjMgLyogTWVtb3J5U3RhdGlzdGljcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDIxM0Uz
QjEyM0E0MEMyMDBENDIyRjMgLyogTWVtb3J5U3RhdGlzdGljcy5jcHAgKi87IH07CisJCTkwMjEz
RTNFMTIzQTQwQzIwMEQ0MjJGMyAvKiBNZW1vcnlTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDIxM0UzQzEyM0E0MEMyMDBENDIyRjMg
LyogTWVtb3J5U3RhdGlzdGljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkwNUIwMkFFMEUyODY0MEYwMDZERjg4MiAvKiBSZWZDb3VudGVkTGVh
a0NvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTA1QjAyQUQwRTI4NjQwRjAwNkRGODgyIC8qIFJlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAg
Ki87IH07CiAJCTkwRDM0NjlDMEUyODUyODAwMDk0OTJFRSAvKiBSZWZDb3VudGVkTGVha0NvdW50
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDM0
NjlCMEUyODUyODAwMDk0OTJFRSAvKiBSZWZDb3VudGVkTGVha0NvdW50ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzA1MkMzNDBGQjc5MjE5
MDA0OEZEQzMgLyogUGFyc2VyQXJlbmEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTMwNTJDMzIwRkI3OTIxOTAwNDhGREMzIC8qIFBhcnNlckFyZW5h
LmNwcCAqLzsgfTsKQEAgLTg1OSw2ICs4NjEsOCBAQAogCQk4NkVBQzQ5MzBGOTNFOEQxMDA4RUM5
NDggLyogUmVnZXhQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVn
ZXhQYXJzZXIuaDsgcGF0aCA9IHlhcnIvUmVnZXhQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODZFQUM0OTQwRjkzRThEMTAwOEVDOTQ4IC8qIFJlZ2V4UGF0dGVybi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZWdleFBhdHRlcm4uaDsgcGF0aCA9IHlh
cnIvUmVnZXhQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2RjM4ODU4
MTIxMTMwQ0EwMDdBN0NFMyAvKiBBdG9taWNTdHJpbmdIYXNoLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEF0b21pY1N0cmluZ0hhc2guaDsgcGF0aCA9IHRleHQvQXRvbWljU3Ry
aW5nSGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MDIxM0UzQjEyM0E0MEMy
MDBENDIyRjMgLyogTWVtb3J5U3RhdGlzdGljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBNZW1vcnlTdGF0aXN0aWNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTAyMTNFM0MxMjNBNDBDMjAwRDQyMkYzIC8qIE1lbW9yeVN0YXRpc3RpY3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5U3RhdGlzdGljcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDVCMDJBRDBFMjg2NDBGMDA2REY4ODIgLyogUmVm
Q291bnRlZExlYWtDb3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlZkNvdW50ZWRMZWFrQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkwRDM0NjlCMEUyODUyODAwMDk0OTJFRSAvKiBSZWZDb3VudGVkTGVha0NvdW50ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmQ291bnRlZExlYWtDb3VudGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDNGNTY3MDk5MTE4RkEwMEFENzFCOCAv
KiBPd25QdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3duUHRyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzM1LDYgKzE3MzksOCBAQAogCQkJCUE3QzUz
MEUzMTAyQTM4MTMwMDVCQzc0MSAvKiBNYXJrU3RhY2tQb3NpeC5jcHAgKi8sCiAJCQkJRjY5MkE4
NkEwMjU1NTk3RDAxRkY2MEY3IC8qIE1hdGhPYmplY3QuY3BwICovLAogCQkJCUY2OTJBODZCMDI1
NTU5N0QwMUZGNjBGNyAvKiBNYXRoT2JqZWN0LmggKi8sCisJCQkJOTAyMTNFM0IxMjNBNDBDMjAw
RDQyMkYzIC8qIE1lbW9yeVN0YXRpc3RpY3MuY3BwICovLAorCQkJCTkwMjEzRTNDMTIzQTQwQzIw
MEQ0MjJGMyAvKiBNZW1vcnlTdGF0aXN0aWNzLmggKi8sCiAJCQkJQkMwMkU5MDgwRTE4MzlEQjAw
MEY5Mjk3IC8qIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwICovLAogCQkJCUJDMDJFOTA5MEUx
ODM5REIwMDBGOTI5NyAvKiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yLmggKi8sCiAJCQkJQkMwMkU5
MEEwRTE4MzlEQjAwMEY5Mjk3IC8qIE5hdGl2ZUVycm9yUHJvdG90eXBlLmNwcCAqLywKQEAgLTIz
MDcsNiArMjMxMyw3IEBACiAJCQkJOTcxNEFGNEYxMjJGMjg5QTAwOTJEOUY1IC8qIFVSTFNlZ21l
bnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzE0QUY1RjEyMkYzMjA3MDA5MkQ5RjUgLyogUGFy
c2VkVVJMLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzE0QUY2MDEyMkYzMjA3MDA5MkQ5RjUgLyog
VVJMU3RyaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MDIxM0UzRTEyM0E0MEMyMDBENDIyRjMg
LyogTWVtb3J5U3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzYwLDYgKzI3NjcsNyBA
QAogCQkJCUE3NERFMUQwMTIwQjg3NTYwMEQ0MEQ1QiAvKiBBUk12N0Fzc2VtYmxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5NzE0QUY0NjEyMkYyODg1MDA5MkQ5RjUgLyogVVJMU2VnbWVudHMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcxNEFGNUUxMjJGMzIwNzAwOTJEOUY1IC8qIFBhcnNl
ZFVSTC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MDIxM0UzRDEyM0E0MEMyMDBENDIyRjMgLyog
TWVtb3J5U3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NZW1vcnlTdGF0aXN0aWNzLmNwcAkocmV2aXNpb24gMCkKKysrIEphdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVt
b3J5U3RhdGlzdGljcy5oIgorCisjaW5jbHVkZSAiRXhlY3V0YWJsZUFsbG9jYXRvci5oIgorI2lu
Y2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyRmlsZS5oIgorCisKK25h
bWVzcGFjZSBKU0MgeworCisgICAgTWVtb3J5U3RhdGlzdGljcyBtZW1vcnlTdGF0aXN0aWNzKEpT
R2xvYmFsRGF0YSogY29tbW9uR2xvYmFsRGF0YSkgCisgICAgeworICAgICAgICBNZW1vcnlTdGF0
aXN0aWNzIHN0YXRzOworICAgIAorICAgICAgICBzdGF0cy5oZWFwU3RhdGlzdGljcyA9IGNvbW1v
bkdsb2JhbERhdGEtPmhlYXAuc3RhdGlzdGljcygpOworICAgICAgICBzdGF0cy5zdGFja0J5dGVz
ID0gUmVnaXN0ZXJGaWxlOjpjb21taXR0ZWRCeXRlQ291bnQoKTsKKyNpZiBFTkFCTEUoRVhFQ1VU
QUJMRV9BTExPQ0FUT1JfRklYRUQpCisgICAgICAgIHN0YXRzLkpJVEJ5dGVzID0gRXhlY3V0YWJs
ZUFsbG9jYXRvcjo6Y29tbWl0dGVkQnl0ZUNvdW50KCk7CisjZWxzZQorICAgICAgICBzdGF0cy5K
SVRCeXRlcyA9IDA7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIHN0YXRzOworICAgIH0KK30KKwor
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuaAkocmV2aXNp
b24gMCkKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACisvKiAKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVtb3J5U3Rh
dGlzdGljc19oCisjZGVmaW5lIE1lbW9yeVN0YXRpc3RpY3NfaAorCisjaW5jbHVkZSAiQ29sbGVj
dG9yLmgiCisKK2NsYXNzIEpTR2xvYmFsRGF0YTsKKworbmFtZXNwYWNlIEpTQyB7CisKKyAgICBz
dHJ1Y3QgTWVtb3J5U3RhdGlzdGljcyB7CisgICAgICAgIEhlYXA6OlN0YXRpc3RpY3MgaGVhcFN0
YXRpc3RpY3M7CisgICAgICAgIHNpemVfdCBzdGFja0J5dGVzOworICAgICAgICBzaXplX3QgSklU
Qnl0ZXM7CisgICAgfTsKKworICAgIE1lbW9yeVN0YXRpc3RpY3MgbWVtb3J5U3RhdGlzdGljcyhK
U0dsb2JhbERhdGEqIGNvbW1vbkdsb2JhbERhdGEpOworfQorCisjZW5kaWYgLy8gTWVtb3J5U3Rh
dGlzdGljc19oCisKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NzE4NSkKKysrIFdlYktpdC9tYWMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDktMTAgIFN0ZXBoYW5p
ZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgSmF2YVNjcmlwdENvcmUgbWVtb3J5IHN0YXRp
c3RpY3Mgc28gdGhhdCBXZWJLaXQgZG9lc24ndCBuZWVkIHRvIGtub3cgYWJvdXQgdGhlIEpJVCBh
bmQKKyAgICAgICAgb3RoZXIgaW1wbGVtZW50YXRpb24gZGV0YWlscyBvZiBKYXZhU2NyaXB0Q29y
ZS4gIE5lY2Vzc2FyeSB0byBmaXggUFBDIGJ1aWxkLgorICAgICAgICAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NTI4CisKKyAgICAgICAgKiBNaXNj
L1dlYkNvcmVTdGF0aXN0aWNzLm1tOgorICAgICAgICAoK1tXZWJDb3JlU3RhdGlzdGljcyBtZW1v
cnlTdGF0aXN0aWNzXSk6CisKIDIwMTAtMDktMDkgIEpvaG4gVGhlcnJlbGwgIDxqdGhlcnJlbGxA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCklu
ZGV4OiBXZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCShyZXZpc2lvbiA2NzE2NCkKKysr
IFdlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjksMTEgKzI5LDEwIEBACiAjaW1wb3J0ICJXZWJDb3JlU3RhdGlzdGljcy5oIgogCiAjaW1wb3J0
ICJET01FbGVtZW50SW50ZXJuYWwuaCIKLSNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1JlZ2lzdGVy
RmlsZS5oPgotI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvRXhlY3V0YWJsZUFsbG9jYXRvci5oPgog
I2ltcG9ydCAiV2ViQ2FjaGUuaCIKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKLSNpbXBv
cnQgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4K
KyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KICNpbXBvcnQgPFdl
YkNvcmUvQ29uc29sZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250Q2FjaGUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRnJhbWUuaD4KQEAgLTE5NywxNyArMTk2LDE2IEBAICsgKE5TRGljdGlvbmFyeSAq
KW1lbW9yeVN0YXRpc3RpY3MKIHsKICAgICBXVEY6OkZhc3RNYWxsb2NTdGF0aXN0aWNzIGZhc3RN
YWxsb2NTdGF0aXN0aWNzID0gV1RGOjpmYXN0TWFsbG9jU3RhdGlzdGljcygpOwogICAgIEpTTG9j
ayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0gICAgSGVhcDo6U3RhdGlzdGljcyBqc0hl
YXBTdGF0aXN0aWNzID0gSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLnN0
YXRpc3RpY3MoKTsKLSAgICBzaXplX3QganNjU3RhY2tCeXRlcyA9IFJlZ2lzdGVyRmlsZTo6Y29t
bWl0dGVkQnl0ZUNvdW50KCk7Ci0gICAgc2l6ZV90IGpzY0pJVEJ5dGVzID0gRXhlY3V0YWJsZUFs
bG9jYXRvcjo6Y29tbWl0dGVkQnl0ZUNvdW50KCk7CisgICAgTWVtb3J5U3RhdGlzdGljcyBtU3Rh
dHMgPSBtZW1vcnlTdGF0aXN0aWNzKEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7
CisgICAgCiAgICAgcmV0dXJuIFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5k
S2V5czoKICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpmYXN0TWFsbG9j
U3RhdGlzdGljcy5yZXNlcnZlZFZNQnl0ZXNdLCBAIkZhc3RNYWxsb2NSZXNlcnZlZFZNQnl0ZXMi
LAogICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OmZhc3RNYWxsb2NTdGF0
aXN0aWNzLmNvbW1pdHRlZFZNQnl0ZXNdLCBAIkZhc3RNYWxsb2NDb21taXR0ZWRWTUJ5dGVzIiwK
ICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpmYXN0TWFsbG9jU3RhdGlz
dGljcy5mcmVlTGlzdEJ5dGVzXSwgQCJGYXN0TWFsbG9jRnJlZUxpc3RCeXRlcyIsCi0gICAgICAg
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6anNIZWFwU3RhdGlzdGljcy5zaXplXSwg
QCJKYXZhU2NyaXB0SGVhcFNpemUiLAotICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJX
aXRoSW50OmpzSGVhcFN0YXRpc3RpY3MuZnJlZV0sIEAiSmF2YVNjcmlwdEZyZWVTaXplIiwKLSAg
ICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50Oih1bnNpZ25lZCBp
bnQpanNjU3RhY2tCeXRlc10sIEAiSmF2YVNjcmlwdFN0YWNrU2l6ZSIsCi0gICAgICAgICAgICAg
ICAgW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludDoodW5zaWduZWQgaW50KWpzY0pJVEJ5
dGVzXSwgQCJKYXZhU2NyaXB0SklUU2l6ZSIsCisgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhJbnQ6bVN0YXRzLmhlYXBTdGF0aXN0aWNzLnNpemVdLCBAIkphdmFTY3JpcHRIZWFw
U2l6ZSIsCisgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6bVN0YXRzLmhl
YXBTdGF0aXN0aWNzLmZyZWVdLCBAIkphdmFTY3JpcHRGcmVlU2l6ZSIsCisgICAgICAgICAgICAg
ICAgW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludDoodW5zaWduZWQgaW50KW1TdGF0cy5z
dGFja0J5dGVzXSwgQCJKYXZhU2NyaXB0U3RhY2tTaXplIiwKKyAgICAgICAgICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50Oih1bnNpZ25lZCBpbnQpbVN0YXRzLkpJVEJ5dGVz
XSwgQCJKYXZhU2NyaXB0SklUU2l6ZSIsCiAgICAgICAgICAgICBuaWxdOwogfQogCg==
</data>
<flag name="review"
          id="56396"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>