<?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>121188</bug_id>
          
          <creation_ts>2013-09-11 16:00:52 -0700</creation_ts>
          <short_desc>HashSet should work with move only types</short_desc>
          <delta_ts>2013-09-11 17:05:55 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>928025</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-11 16:00:52 -0700</bug_when>
    <thetext>HashSet should work with move only types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928028</commentid>
    <comment_count>1</comment_count>
      <attachid>211361</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-11 16:10:16 -0700</bug_when>
    <thetext>Created attachment 211361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928032</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-11 16:27:49 -0700</bug_when>
    <thetext>Attachment 211361 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/HashSet.h&apos;, u&apos;Source/WTF/wtf/HashTable.h&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj&apos;, u&apos;Tools/TestWebKitAPI/Tests/MoveOnly.h&apos;, u&apos;Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp&apos;, u&apos;Tools/TestWebKitAPI/Tests/WTF/Vector.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/HashTable.h:404:  Missing spaces around &amp;&amp;  [whitespace/operators] [3]
Source/WTF/wtf/HashSet.h:77:  Missing spaces around &amp;&amp;  [whitespace/operators] [3]
Total errors found: 2 in 8 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>928034</commentid>
    <comment_count>3</comment_count>
      <attachid>211361</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 16:32:50 -0700</bug_when>
    <thetext>Comment on attachment 211361
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928035</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-11 16:38:42 -0700</bug_when>
    <thetext>Committed r155577: &lt;http://trac.webkit.org/changeset/155577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928036</commentid>
    <comment_count>5</comment_count>
      <attachid>211361</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-11 16:39:49 -0700</bug_when>
    <thetext>Comment on attachment 211361
Patch

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

&gt;&gt; Source/WTF/wtf/HashSet.h:77
&gt;&gt;          AddResult add(const ValueType&amp;);
&gt;&gt; +        AddResult add(ValueType&amp;&amp;);
&gt; 
&gt; Missing spaces around &amp;&amp;  [whitespace/operators] [3]

Do we need both of these? Why isn’t the second one alone sufficient?

&gt; Source/WTF/wtf/HashTable.h:399
&gt;          AddResult add(const ValueType&amp; value) { return add&lt;IdentityTranslatorType&gt;(Extractor::extract(value), value); }
&gt; +        AddResult add(ValueType&amp;&amp; value) { return add&lt;IdentityTranslatorType&gt;(Extractor::extract(value), std::move(value)); }

Do we need both of these? Why isn’t the second one alone sufficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928045</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-11 17:05:55 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 211361 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=211361&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/HashSet.h:77
&gt; &gt;&gt;          AddResult add(const ValueType&amp;);
&gt; &gt;&gt; +        AddResult add(ValueType&amp;&amp;);
&gt; &gt; 
&gt; &gt; Missing spaces around &amp;&amp;  [whitespace/operators] [3]
&gt; 
&gt; Do we need both of these? Why isn’t the second one alone sufficient?

We do need both. Since ValueType is a class template parameter, ValueType&amp;&amp; is only going to bind to rvalues.

If ValueType were a member function template parameter, it would be able to bind to both rvalues and rvalues, and then we wouldn’t need the extra overload.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211361</attachid>
            <date>2013-09-11 16:10:16 -0700</date>
            <delta_ts>2013-09-11 16:39:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121188-20130911161015.patch</filename>
            <type>text/plain</type>
            <size>13632</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJkYTYwYWE5NDg5ODNkOGUxYTQzMGM2
NjUwOTA3YWVkZWM4Zjk4OWUuLmQ4MzNlN2NiMWFjNGY5ZTE4NzBhOTExNzY0NDdmZTkyYzNmZTQ5
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAKIDIwMTMtMDktMTEgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBIYXNoU2V0IHNob3VsZCB3b3JrIHdpdGggbW92
ZSBvbmx5IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjExODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9IYXNoU2V0Lmg6CisgICAgICAgIChXVEY6Okhhc2hTZXQ6OmFkZCk6CisgICAg
ICAgIEFkZCBhIG5ldyBydmFsdWUgcmVmZXJlbmNlIG92ZXJsb2FkIGFuZCB1c2Ugc3RkOjptb3Zl
IHdoZW4gY2FsbGluZyBIYXNoVGFibGU6OmFkZC4KKworICAgICAgICAqIHd0Zi9IYXNoVGFibGUu
aDoKKyAgICAgICAgKFdURjo6SWRlbnRpdHlIYXNoVHJhbnNsYXRvcjo6dHJhbnNsYXRlKToKKyAg
ICAgICAgQ2hhbmdlIHRoaXMgdG8gdGFrZSBhbiBydmFsdWUgcmVmZXJlbmNlIGZvciB0aGUgdmFs
dWUgc28gd2UgY2FuIGludm9rZSB0aGUgbW92ZSBhc3NpZ25tZW50IG9wZXJhdG9yLgorCisgICAg
ICAgIChXVEY6Okhhc2hUYWJsZTo6YWRkKToKKyAgICAgICAgQ2FsbCB0aGUgYWRkIG1lbWJlciBm
dW5jdGlvbiB0ZW1wbGF0ZSwgdXNpbmcgc3RkOjptb3ZlIHRvIG1vdmUgdGhlIHZhbHVlLgorCisg
ICAgICAgIChXVEY6Okhhc2hUYWJsZTo6YWRkKToKKyAgICAgICAgQWRkIHN0ZDo6Zm9yd2FyZCBz
byB3ZSdsbCBwb3RlbnRpYWxseSBtb3ZlIGV4dHJhLgorCisyMDEzLTA5LTExICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgQXZvaWQgY29weWluZyBhIGhh
c2ggdGFibGUgYnVja2V0IHdoZW4gaW5zZXJ0aW5nIGNhdXNlcyBhIHJlaGFzaAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMTg1CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hTZXQuaApp
bmRleCA1MTZmYmNiZDM5MjAzYzgyYjk1ODE4OWI5MWRjN2I1OWJiNDZjZDU4Li44ODQ1NDBjODEy
MzMyODhjZjcxNzE3ZmE1ZjhjNWE1MTYzOGQ1MDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9IYXNoU2V0LmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaFNldC5oCkBAIC03NCw2ICs3NCw3
IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAvLyBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgcGFp
ciBvZiBhbiBpbnRlcmF0b3IgdG8gdGhlIG5ldyB2YWx1ZSdzIGxvY2F0aW9uLCAKICAgICAgICAg
Ly8gYW5kIGEgYm9vbCB0aGF0IGlzIHRydWUgaWYgYW4gbmV3IGVudHJ5IHdhcyBhZGRlZC4KICAg
ICAgICAgQWRkUmVzdWx0IGFkZChjb25zdCBWYWx1ZVR5cGUmKTsKKyAgICAgICAgQWRkUmVzdWx0
IGFkZChWYWx1ZVR5cGUmJik7CiAKICAgICAgICAgLy8gQW4gYWx0ZXJuYXRlIHZlcnNpb24gb2Yg
YWRkKCkgdGhhdCBmaW5kcyB0aGUgb2JqZWN0IGJ5IGhhc2hpbmcgYW5kIGNvbXBhcmluZwogICAg
ICAgICAvLyB3aXRoIHNvbWUgb3RoZXIgdHlwZSwgdG8gYXZvaWQgdGhlIGNvc3Qgb2YgdHlwZSBj
b252ZXJzaW9uIGlmIHRoZSBvYmplY3QgaXMgYWxyZWFkeQpAQCAtMTg1LDYgKzE4NiwxMiBAQCBu
YW1lc3BhY2UgV1RGIHsKICAgICAgICAgcmV0dXJuIG1faW1wbC5hZGQodmFsdWUpOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFY+CisgICAg
aW5saW5lIHR5cGVuYW1lIEhhc2hTZXQ8VCwgVSwgVj46OkFkZFJlc3VsdCBIYXNoU2V0PFQsIFUs
IFY+OjphZGQoVmFsdWVUeXBlJiYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gbV9pbXBs
LmFkZChzdGQ6Om1vdmUodmFsdWUpKTsKKyAgICB9CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBW
YWx1ZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzPgogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPgogICAgIGlubGluZSB0eXBl
bmFtZSBIYXNoU2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+OjpBZGRSZXN1bHQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oIGIvU291cmNlL1dURi93dGYvSGFz
aFRhYmxlLmgKaW5kZXggMDA2MTRmNTNhODFmZmVkMzVkMmMxMjQ1YWVmNDNmYmE5ZTdkZTUzMy4u
MTQzZjI1YTMxMWVlYTk0M2QyMmFhYzE2OTVkZjFhYjJhZWJhOThmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgK
QEAgLTMwMyw3ICszMDMsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFQmIGtleSkg
eyByZXR1cm4gSGFzaEZ1bmN0aW9uczo6aGFzaChrZXkpOyB9CiAgICAgICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFQmIGEsIGNvbnN0
IFUmIGIpIHsgcmV0dXJuIEhhc2hGdW5jdGlvbnM6OmVxdWFsKGEsIGIpOyB9Ci0gICAgICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0YXRpYyB2b2lkIHRyYW5zbGF0ZShUJiBs
b2NhdGlvbiwgY29uc3QgVSYsIGNvbnN0IFQmIHZhbHVlKSB7IGxvY2F0aW9uID0gdmFsdWU7IH0K
KyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgVj4gc3Rh
dGljIHZvaWQgdHJhbnNsYXRlKFQmIGxvY2F0aW9uLCBjb25zdCBVJiwgViYmIHZhbHVlKSB7IGxv
Y2F0aW9uID0gc3RkOjpmb3J3YXJkPFY+KHZhbHVlKTsgfQogICAgIH07CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBJdGVyYXRvclR5cGU+IHN0cnVjdCBIYXNoVGFibGVBZGRSZXN1bHQgewpAQCAt
Mzk2LDExICszOTYsMTIgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuICFtX2tleUNvdW50OyB9CiAKICAgICAgICAgQWRkUmVzdWx0IGFkZChj
b25zdCBWYWx1ZVR5cGUmIHZhbHVlKSB7IHJldHVybiBhZGQ8SWRlbnRpdHlUcmFuc2xhdG9yVHlw
ZT4oRXh0cmFjdG9yOjpleHRyYWN0KHZhbHVlKSwgdmFsdWUpOyB9CisgICAgICAgIEFkZFJlc3Vs
dCBhZGQoVmFsdWVUeXBlJiYgdmFsdWUpIHsgcmV0dXJuIGFkZDxJZGVudGl0eVRyYW5zbGF0b3JU
eXBlPihFeHRyYWN0b3I6OmV4dHJhY3QodmFsdWUpLCBzdGQ6Om1vdmUodmFsdWUpKTsgfQogCiAg
ICAgICAgIC8vIEEgc3BlY2lhbCB2ZXJzaW9uIG9mIGFkZCgpIHRoYXQgZmluZHMgdGhlIG9iamVj
dCBieSBoYXNoaW5nIGFuZCBjb21wYXJpbmcKICAgICAgICAgLy8gd2l0aCBzb21lIG90aGVyIHR5
cGUsIHRvIGF2b2lkIHRoZSBjb3N0IG9mIHR5cGUgY29udmVyc2lvbiBpZiB0aGUgb2JqZWN0IGlz
IGFscmVhZHkKICAgICAgICAgLy8gaW4gdGhlIHRhYmxlLgotICAgICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgRXh0cmE+IEFkZFJlc3Vs
dCBhZGQoY29uc3QgVCYga2V5LCBjb25zdCBFeHRyYSYpOworICAgICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgRXh0cmE+IEFkZFJlc3Vs
dCBhZGQoVCYmIGtleSwgRXh0cmEmJik7CiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hU
cmFuc2xhdG9yLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBFeHRyYT4gQWRkUmVzdWx0IGFkZFBhc3Np
bmdIYXNoQ29kZShjb25zdCBUJiBrZXksIGNvbnN0IEV4dHJhJik7CiAKICAgICAgICAgaXRlcmF0
b3IgZmluZChjb25zdCBLZXlUeXBlJiBrZXkpIHsgcmV0dXJuIGZpbmQ8SWRlbnRpdHlUcmFuc2xh
dG9yVHlwZT4oa2V5KTsgfQpAQCAtODExLDcgKzgxMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFj
dG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtl
eVRyYWl0cz4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUg
VCwgdHlwZW5hbWUgRXh0cmE+Ci0gICAgaW5saW5lIHR5cGVuYW1lIEhhc2hUYWJsZTxLZXksIFZh
bHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6QWRkUmVz
dWx0IEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0
cywgS2V5VHJhaXRzPjo6YWRkKGNvbnN0IFQmIGtleSwgY29uc3QgRXh0cmEmIGV4dHJhKQorICAg
IGlubGluZSB0eXBlbmFtZSBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVu
Y3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OkFkZFJlc3VsdCBIYXNoVGFibGU8S2V5LCBWYWx1
ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OmFkZChUJiYg
a2V5LCBFeHRyYSYmIGV4dHJhKQogICAgIHsKICAgICAgICAgY2hlY2tLZXk8SGFzaFRyYW5zbGF0
b3I+KGtleSk7CiAKQEAgLTg4NSw3ICs4ODYsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAg
ICAgIC0tbV9kZWxldGVkQ291bnQ7IAogICAgICAgICB9CiAKLSAgICAgICAgSGFzaFRyYW5zbGF0
b3I6OnRyYW5zbGF0ZSgqZW50cnksIGtleSwgZXh0cmEpOworICAgICAgICBIYXNoVHJhbnNsYXRv
cjo6dHJhbnNsYXRlKCplbnRyeSwga2V5LCBzdGQ6OmZvcndhcmQ8RXh0cmE+KGV4dHJhKSk7CiAg
ICAgICAgICsrbV9rZXlDb3VudDsKICAgICAgICAgCiAgICAgICAgIGlmIChzaG91bGRFeHBhbmQo
KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3
MjhmNGIxYWQ4YzVkMTlkMGY5YWVlN2JiMTI3OWUwOTk5N2ZjZjBjLi4yYTJlMjlkODU1OTcwZjI5
NmE4YjU3ZTJlOTM0MDllNTNjNTU5MTkzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDktMTEgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBIYXNoU2V0IHNob3VsZCB3
b3JrIHdpdGggbW92ZSBvbmx5IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjExODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvTW92ZU9ubHku
aDogQWRkZWQuCisgICAgICAgIE1vdmUgdGhlIE1vdmVPbmx5IGNsYXNzIGZyb20gVmVjdG9yIG91
dCBpbnRvIGl0cyBvd24gaGVhZGVyLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGFzaFNldC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
QWRkIGFIYXNoU2V0PE1vdmVPbmx5PiB0ZXN0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgSW5jbHVkZSBNb3ZlT25seS5oLgorCiAyMDEz
LTA5LTExICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtX
aW5kb3dzXSBBdm9pZCBjb252ZXJ0aW5nIGZyb20gSW50U2l6ZS0+U0laRS0+SW50U2l6ZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBlMzU1ZmIyOWY0ZGY3YWZmMTBiZGE5NDMxN2E4Yjg0Yzhi
Mjc5Y2U5Li42NjJjZjczMzYzM2Q4NDBkZGZlMzg1ODczNmU3MjYwMmYwMDllNTkwIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzI1LDYgKzMyNSw3IEBACiAJCTFBNUZFRkRDMTI3MEUyQTMw
MDBFMjkyMSAvKiBFdmFsdWF0ZUphdmFTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRXZhbHVhdGVKYXZhU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUE3QkZDMEExNzFBMEJEQjAwQkM1RjY0IC8qIFdpbGxTZW5kU3VibWl0RXZl
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXaWxsU2VuZFN1
Ym1pdEV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUE5RTU1NzE0OTgw
QTk5MDAwMDFBOEEgLyogRnVuY3Rpb25hbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBGdW5jdGlvbmFsLmNwcDsgcGF0aCA9IFdURi9GdW5jdGlvbmFsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFCMDlEQ0MxN0UwRjkyQjAwMzlFMkVBIC8qIE1v
dmVPbmx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vdmVPbmx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFBREJFRkFEMTMwQzY4OUMwMEQ2MUQxOSAvKiBGb3JjZVJlcGFpbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9yY2VSZXBhaW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFEQkVGQkMxMzBDNkEwMTAwRDYxRDE5IC8qIHNp
bXBsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gInNpbXBsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZy5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUFFNzJGNDcxNzNFQjIxNDAwNjM2MkYwIC8qIFRlcm1pbmF0ZVR3
aWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRlcm1pbmF0ZVR3
aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwOCw2ICs4MDksNyBAQAog
CQkJCUI0MDM5RjlDMTVFNkQ4QjMwMDcyNTVENiAvKiBNYXRoRXh0cmFzLmNwcCAqLywKIAkJCQlD
RDU0OTdCMzE1ODU3RjBDMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLywKIAkJCQkwRkM2QzRD
RTE0MTAzNEFEMDA1QjdGMEMgLyogTWV0YUFsbG9jYXRvci5jcHAgKi8sCisJCQkJMUFCMDlEQ0Mx
N0UwRjkyQjAwMzlFMkVBIC8qIE1vdmVPbmx5LmggKi8sCiAJCQkJMEZDNkM0Q0IxNDEwMjdFMDAw
NUI3RjBDIC8qIFJlZEJsYWNrVHJlZS5jcHAgKi8sCiAJCQkJQ0Q1MzkzQzkxNzU3QkFDNDAwQzA3
MTIzIC8qIFNIQTEuY3BwICovLAogCQkJCTE0RjNCMTEyMTVFNDVFQUIwMDIxMDA2OSAvKiBTYXR1
cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL01vdmVPbmx5LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL01v
dmVPbmx5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI0ZGQyNDUwZmRmMDAyMmQ1ZGZjYjA4ZTU4MDFlZGQ5MzMx
NWE0OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvTW92ZU9u
bHkuaApAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb3ZlT25seV9oCisj
ZGVmaW5lIE1vdmVPbmx5X2gKKworI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKworY2xhc3MgTW92ZU9ubHkgeworcHVibGljOgorICAg
IE1vdmVPbmx5KCkKKyAgICAgICAgOiBtX3ZhbHVlKDApCisgICAgeworICAgIH0KKworICAgIE1v
dmVPbmx5KHVuc2lnbmVkIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCisgICAgewor
ICAgIH0KKworICAgIHVuc2lnbmVkIHZhbHVlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtX3ZhbHVlOworICAgIH0KKworICAgIE1vdmVPbmx5KE1vdmVPbmx5JiYgb3RoZXIpCisgICAg
ICAgIDogbV92YWx1ZShvdGhlci5tX3ZhbHVlKQorICAgIHsKKyAgICAgICAgb3RoZXIubV92YWx1
ZSA9IDA7CisgICAgfQorCisgICAgTW92ZU9ubHkmIG9wZXJhdG9yPShNb3ZlT25seSYmIG90aGVy
KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gJm90aGVyKQorICAgICAgICAgICAgcmV0dXJu
ICp0aGlzOworCisgICAgICAgIG1fdmFsdWUgPSBvdGhlci5tX3ZhbHVlOworICAgICAgICBvdGhl
ci5tX3ZhbHVlID0gMDsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGZyaWVu
ZCBib29sIG9wZXJhdG9yPT0oY29uc3QgTW92ZU9ubHkmIGEsIGNvbnN0IE1vdmVPbmx5JiBiKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGEubV92YWx1ZSA9PSBiLm1fdmFsdWU7CisgICAgfQorCitw
cml2YXRlOgorICAgIHVuc2lnbmVkIG1fdmFsdWU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBI
YXNoVHJhaXRzPE1vdmVPbmx5PiA6IHB1YmxpYyBHZW5lcmljSGFzaFRyYWl0czxNb3ZlT25seT4g
eworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShNb3ZlT25seSYgc2xvdCkg
eyBzbG90ID0gTW92ZU9ubHkoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKTsg
fQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IE1vdmVPbmx5JiBzbG90KSB7
IHJldHVybiBzbG90LnZhbHVlKCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpOyB9Cit9OworCituYW1lc3BhY2UgV1RGIHsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRI
YXNoPE1vdmVPbmx5PiB7CisgICAgc3RydWN0IEhhc2ggeworICAgICAgICBzdGF0aWMgdW5zaWdu
ZWQgaGFzaChjb25zdCBNb3ZlT25seSYga2V5KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gaW50SGFzaChrZXkudmFsdWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgYm9v
bCBlcXVhbChjb25zdCBNb3ZlT25seSYgYSwgY29uc3QgTW92ZU9ubHkmIGIpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiBhID09IGI7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgfTsK
K307Cit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIE1vdmVPbmx5X2gKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHAKaW5kZXggNzFlMjFhYTI4M2E3MTUwZmJh
NWQ4OGE2NGM3ZWRhODY3ZjIwODhjMi4uYmVmYjlhOTA2YjU1ODJmODU1YTMwMzMxNjYxYTMyYWQ5
MTYyM2JkZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNl
dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHAKQEAg
LTI1LDggKzI1LDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2luY2x1ZGUgIk1vdmVP
bmx5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAorCiBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CiAKIHRlbXBsYXRlPGludCBpbml0aWFsQ2FwYWNpdHk+CkBAIC03MSw5ICs3MywyNyBA
QCB0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplPiB2b2lkIGdlbmVyYXRlVGVzdENhcGFjaXR5VXBUb1Np
emUoKQogICAgIHRlc3RJbml0aWFsQ2FwYWNpdHk8c2l6ZT4oKTsKIH0KIAotVEVTVChXVEYsIEhh
c2hTZXRJbml0aWFsQ2FwYWNpdHkpCitURVNUKFdURl9IYXNoU2V0LCBJbml0aWFsQ2FwYWNpdHkp
CiB7CiAgICAgZ2VuZXJhdGVUZXN0Q2FwYWNpdHlVcFRvU2l6ZTwxMjg+KCk7CiB9CiAKK1RFU1Qo
V1RGX0hhc2hTZXQsIE1vdmVPbmx5KQoreworICAgIEhhc2hTZXQ8TW92ZU9ubHk+IGhhc2hTZXQ7
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgICAgIE1vdmVP
bmx5IG1vdmVPbmx5KGkgKyAxKTsKKyAgICAgICAgaGFzaFNldC5hZGQoc3RkOjptb3ZlKG1vdmVP
bmx5KSk7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAg
ICAgICAgRVhQRUNUX1RSVUUoaGFzaFNldC5jb250YWlucyhNb3ZlT25seShpICsgMSkpKTsKKwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIEVYUEVDVF9UUlVF
KGhhc2hTZXQucmVtb3ZlKE1vdmVPbmx5KGkgKyAxKSkpOworCisgICAgRVhQRUNUX1RSVUUoaGFz
aFNldC5pc0VtcHR5KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCA0MGI0ZjU4YjVmM2JkN2Fj
NDEzNzAwOTBhMzY5YTc0NTgzNjY4NTg2Li45NmVjYTg5ZmVmYzM1OWNkNTc1ZWIzNmExYWEzZGEx
YWRjYjM0MjBjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0
b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAg
LTI0LDYgKzI0LDggQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJN
b3ZlT25seS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewpAQCAtMTE5LDM4ICsxMjEsNiBAQCBURVNUKFdURl9WZWN0b3IsIFJldmVyc2VJdGVy
YXRvcikKICAgICBFWFBFQ1RfVFJVRShlbmQgPT0gaXQpOwogfQogCi1jbGFzcyBNb3ZlT25seSB7
Ci1wdWJsaWM6Ci0gICAgTW92ZU9ubHkodW5zaWduZWQgdmFsdWUpCi0gICAgICAgIDogbV92YWx1
ZSh2YWx1ZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdW5zaWduZWQgdmFsdWUoKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWU7Ci0gICAgfQotCi0gICAgTW92ZU9ubHkoTW92ZU9u
bHkmJiBvdGhlcikKLSAgICAgICAgOiBtX3ZhbHVlKG90aGVyLm1fdmFsdWUpCi0gICAgewotICAg
ICAgICBvdGhlci5tX3ZhbHVlID0gMDsKLSAgICB9Ci0KLSAgICBNb3ZlT25seSYgb3BlcmF0b3I9
KE1vdmVPbmx5JiYgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAodGhpcyA9PSAmb3RoZXIpCi0g
ICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0KLSAgICAgICAgbV92YWx1ZSA9IG90aGVyLm1fdmFs
dWU7Ci0gICAgICAgIG90aGVyLm1fdmFsdWUgPSAwOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0g
ICAgfQotCi1wcml2YXRlOgotICAgIHVuc2lnbmVkIG1fdmFsdWU7Ci19OwotCiBURVNUKFdURl9W
ZWN0b3IsIE1vdmVPbmx5X1VuY2hlY2tlZEFwcGVuZCkKIHsKICAgICBWZWN0b3I8TW92ZU9ubHk+
IHZlY3RvcjsK
</data>
<flag name="review"
          id="233451"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>