<?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>163334</bug_id>
          
          <creation_ts>2016-10-12 09:07:06 -0700</creation_ts>
          <short_desc>Remove JITWriteBarrier.h</short_desc>
          <delta_ts>2016-10-12 09:59:32 -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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1239294</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-12 09:07:06 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239296</commentid>
    <comment_count>1</comment_count>
      <attachid>291359</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-12 09:13:19 -0700</bug_when>
    <thetext>Created attachment 291359
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239299</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-12 09:15:44 -0700</bug_when>
    <thetext>Attachment 291359 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
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>1239304</commentid>
    <comment_count>3</comment_count>
      <attachid>291361</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-12 09:19:56 -0700</bug_when>
    <thetext>Created attachment 291361
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239305</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-12 09:21:14 -0700</bug_when>
    <thetext>Attachment 291361 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 4 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>1239326</commentid>
    <comment_count>5</comment_count>
      <attachid>291361</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-10-12 09:38:56 -0700</bug_when>
    <thetext>Comment on attachment 291361
the patch

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

r=me with fixes.

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        one by overwhelming majority, so we should finally remove JITWriteBarrier.

typo: /one/won/.

&gt; Source/JavaScriptCore/bytecode/CallLinkInfo.cpp:34
&gt;  #include &quot;Opcode.h&quot;
&gt; +#include &quot;MacroAssembler.h&quot;

Please fix ordering: M before O.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239327</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-12 09:39:54 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 291361 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291361&amp;action=review
&gt; 
&gt; r=me with fixes.
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:14
&gt; &gt; +        one by overwhelming majority, so we should finally remove JITWriteBarrier.
&gt; 
&gt; typo: /one/won/.

Oops.

&gt; 
&gt; &gt; Source/JavaScriptCore/bytecode/CallLinkInfo.cpp:34
&gt; &gt;  #include &quot;Opcode.h&quot;
&gt; &gt; +#include &quot;MacroAssembler.h&quot;
&gt; 
&gt; Please fix ordering: M before O.

Ooops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239337</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-12 09:59:32 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/207222</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291359</attachid>
            <date>2016-10-12 09:13:19 -0700</date>
            <delta_ts>2016-10-12 09:19:56 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14537</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MjE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE2LTEwLTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIEpJVFdyaXRlQmFycmllci5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjMzMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIEkgZ3Vlc3MgdGhhdCB0aGUgaWRlYSBvZiBKSVRXcml0
ZUJhcnJpZXIgd2FzIHRvIG1ha2Ugc3VyZSB0aGF0IGlmIHlvdSBzbGFwIHNvbWUgaGVhcCBwb2lu
dGVyCisgICAgICAgIGJpdHMgaW50byBtYWNoaW5lIGNvZGUsIHRoZW4geW91IGJldHRlciBleGVj
dXRlIGEgYmFycmllciBvbiB0aGUgY29kZSBibG9jay4gQnV0IGl0J3MgYQorICAgICAgICBjb21w
bGljYXRlZCBwaWVjZSBvZiBjb2RlLCBhbmQgSSBjYW4gbmV2ZXIgcmVtZW1iZXIgaG93IGl0IHF1
aXRlIHdvcmtzLiBUaGVzZSBkYXlzIGl0IGxvb2tzCisgICAgICAgIHZlc3RpZ2lhbCwgcGFydGlj
dWxhcmx5IHNpbmNlIG9ubHkgdGhlIENhbGxMaW5rSW5mbyBwYXRjaGFibGUgY2FsbGVlIGltbWVk
aWF0ZSB1c2VzIGl0LiBJdCdzCisgICAgICAgIG5vdCByZWFsbHkgbmVjZXNzYXJ5IHRvIGhhdmUg
c29tZXRoaW5nIGxpa2UgdGhpcywgc2luY2Ugb3VyIGNvbnZlbnRpb24gaXMgdGhhdCBhbnkgcG9p
bnRlcgorICAgICAgICBzdG9yZWQgaW4gbWFjaGluZSBjb2RlIG11c3QgYWx3YXlzIGJlIHNoYWRv
d2VkIGluIHRoZSBHQyBoZWFwLiBJIHRoaW5rIHRoYXQgY29udmVudGlvbiBoYXMKKyAgICAgICAg
b25lIGJ5IG92ZXJ3aGVsbWluZyBtYWpvcml0eSwgc28gd2Ugc2hvdWxkIGZpbmFsbHkgcmVtb3Zl
IEpJVFdyaXRlQmFycmllci4KKyAgICAgICAgCisgICAgICAgIEEgcHJhY3RpY2FsIG91dGNvbWUg
b2YgdGhpcyBjaGFuZ2UgaXMgdGhhdCBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gaW1wbGVtZW50IERp
cmVjdENhbGwgSUNzLAorICAgICAgICB3aGljaCB3aWxsIGhhdmUgdG8gc3RvcmUgdGhlIGNhbGxl
ZSBpbiB0aGUgQ2FsbExpbmtJbmZvIGJ1dCBub3QgaW4gdGhlIG1hY2hpbmUgY29kZS4KKworICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKiBieXRlY29k
ZS9DYWxsTGlua0luZm8uY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNldENhbGxl
ZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6Y2xlYXJDYWxsZWUpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNl
dENhbGxlZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6Y2xlYXJDYWxs
ZWUpOiBEZWxldGVkLgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBq
aXQvSklUV3JpdGVCYXJyaWVyLmg6IFJlbW92ZWQuCisKIDIwMTYtMTAtMTIgIENzYWJhIE9zenRy
b2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkZml4
IGZvciBHQ0MgNC45IGFmdGVyIHIyMDcxODYuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjA3MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3Njks
NyArMTc2OSw2IEBACiAJCUE3NjdCNUI2MTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVh
ZGVyQ3JlYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc2N0I1QjQxN0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVh
dGlvblBoYXNlLmggKi87IH07CiAJCUE3NkM1MTc2MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVy
ZmFjZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc2QzUxNzQxMTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc2RjI3OTQxNUYxM0M5NjAw
NTE3RDY3IC8qIFVubGlua2VkQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OUU3ODFFMTVFRUNCQTgwMDQ3Qzg1NSAvKiBVbmxpbmtl
ZENvZGVCbG9jay5jcHAgKi87IH07Ci0JCUE3NkY1NEEzMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRX
cml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzdBNDIzRDE3QTBC
QkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdB
YnN0cmFjdEhlYXAuY3BwICovOyB9OwogCQlBNzdBNDIzRTE3QTBCQkZEMDBBOERCODEgLyogREZH
QWJzdHJhY3RIZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzdBNDIzNzE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmggKi87IH07
CiAJCUE3N0E0MjNGMTdBMEJCRkQwMEE4REI4MSAvKiBERkdDbG9iYmVyaXplLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0E0MjM4MTdBMEJCRkQw
MEE4REI4MSAvKiBERkdDbG9iYmVyaXplLmNwcCAqLzsgfTsKQEAgLTQwNzcsNyArNDA3Niw2IEBA
CiAJCUE3NjdCNUIzMTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25Q
aGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdMb29wUHJl
SGVhZGVyQ3JlYXRpb25QaGFzZS5jcHA7IHBhdGggPSBkZmcvREZHTG9vcFByZUhlYWRlckNyZWF0
aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzY3QjVCNDE3QTBC
OTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaDsg
cGF0aCA9IGRmZy9ERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VK
SVQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnRlcmZhY2VKSVQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNFIC8q
IEpJVFdyaXRlQmFycmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRX
cml0ZUJhcnJpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3QTQyMzYxN0Ew
QkJGRDAwQThEQjgxIC8qIERGR0Fic3RyYWN0SGVhcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdBYnN0cmFjdEhlYXAuY3BwOyBwYXRoID0gZGZnL0RGR0Fic3Ry
YWN0SGVhcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0E0MjM3MTdBMEJC
RkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gREZHQWJzdHJhY3RIZWFwLmg7IHBhdGggPSBkZmcvREZHQWJzdHJhY3RIZWFwLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0E0MjM4MTdBMEJCRkQwMEE4REI4MSAv
KiBERkdDbG9iYmVyaXplLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IERGR0Nsb2JiZXJpemUuY3BwOyBwYXRoID0gZGZnL0RGR0Nsb2JiZXJpemUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTI3OSw3ICs1Mjc3LDYgQEAKIAkJCQkwRkM3MTJFMTE3
Q0Q4NzhGMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAq
LywKIAkJCQlEQzAxODQxNzFEMTBDMTg3MDA1N0IwNTMgLyogSklUV29ya2xpc3QuY3BwICovLAog
CQkJCURDMDE4NDE4MUQxMEMxODcwMDU3QjA1MyAvKiBKSVRXb3JrbGlzdC5oICovLAotCQkJCUE3
NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlBNzZD
NTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQk3OTJDQjM0
NzFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovLAogCQkJCTc5MkNC
MzQ4MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oICovLApAQCAtNzk0NSw3
ICs3OTQyLDYgQEAKIAkJCQkwRjc2NkQyQzE1QThDQzNBMDA4RjM2M0UgLyogSklUU3R1YlJvdXRp
bmVTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBK
SVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzcxMkUzMTdDRDg3OTMwMDhDQzkzQyAv
KiBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQTc2RjU0QTMxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODQwNDgwMTMxMDIxQTFEOTAwOEU3RjAxIC8qIEpTQVBJVmFsdWVXcmFwcGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkNGMzlDMjE2RTE1QTgxMDBERDY5QkUgLyogSlNBUElX
cmFwcGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxNzBFMTZGNUNEMDBCMzQ0
NjAgLyogSlNBcnJheS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkocmV2
aXNpb24gMjA3MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFj
dE1hY3JvQXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDYgQEAgc3RydWN0
IE9TUkV4aXQ7CiB0ZW1wbGF0ZSA8Y2xhc3MgQXNzZW1ibGVyVHlwZSwgY2xhc3MgTWFjcm9Bc3Nl
bWJsZXJUeXBlPgogY2xhc3MgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlciB7CiBwdWJsaWM6Ci0gICAg
ZnJpZW5kIGNsYXNzIEpJVFdyaXRlQmFycmllckJhc2U7CiAgICAgdHlwZWRlZiBBYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyPEFzc2VtYmxlclR5cGUsIE1hY3JvQXNzZW1ibGVyVHlwZT4gQWJzdHJhY3RN
YWNyb0Fzc2VtYmxlclR5cGU7CiAgICAgdHlwZWRlZiBBc3NlbWJsZXJUeXBlIEFzc2VtYmxlclR5
cGVfVDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5m
by5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAJKHJldmlzaW9uIDIwNzIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJKU0NJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIK
ICNpbmNsdWRlICJSZXBhdGNoLmgiCiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAKQEAgLTk3
LDYgKzk4LDE4IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp1bmxpbmsoVk0mIHZtKQogICAgICAgICBy
ZW1vdmUoKTsKIH0KIAordm9pZCBDYWxsTGlua0luZm86OnNldENhbGxlZShWTSYgdm0sIEpTQ2Vs
bCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxlZSkKK3sKKyAgICBNYWNyb0Fzc2VtYmxlcjo6cmVw
YXRjaFBvaW50ZXIobV9ob3RQYXRoQmVnaW4sIGNhbGxlZSk7CisgICAgbV9jYWxsZWUuc2V0KHZt
LCBvd25lciwgY2FsbGVlKTsKK30KKwordm9pZCBDYWxsTGlua0luZm86OmNsZWFyQ2FsbGVlKCkK
K3sKKyAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaFBvaW50ZXIobV9ob3RQYXRoQmVnaW4sIG51
bGxwdHIpOworICAgIG1fY2FsbGVlLmNsZWFyKCk7Cit9CisKIHZvaWQgQ2FsbExpbmtJbmZvOjp2
aXNpdFdlYWsoVk0mIHZtKQogewogICAgIGF1dG8gaGFuZGxlU3BlY2lmaWNDYWxsZWUgPSBbJl0g
KEpTRnVuY3Rpb24qIGNhbGxlZSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uaAkocmV2aXNpb24gMjA3MjE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCwgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJDYWxsTW9kZS5oIgogI2luY2x1ZGUg
IkNvZGVMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKLSNp
bmNsdWRlICJKSVRXcml0ZUJhcnJpZXIuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJp
ZXIuaCIKQEAgLTE1OCwxNSArMTU3LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9ob3RQ
YXRoT3RoZXI7CiAgICAgfQogCi0gICAgdm9pZCBzZXRDYWxsZWUoVk0mIHZtLCBDb2RlTG9jYXRp
b25EYXRhTGFiZWxQdHIgbG9jYXRpb24sIEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxl
ZSkKLSAgICB7Ci0gICAgICAgIG1fY2FsbGVlLnNldCh2bSwgbG9jYXRpb24sIG93bmVyLCBjYWxs
ZWUpOwotICAgIH0KKyAgICB2b2lkIHNldENhbGxlZShWTSYsIEpTQ2VsbCosIEpTRnVuY3Rpb24q
IGNhbGxlZSk7CiAKLSAgICB2b2lkIGNsZWFyQ2FsbGVlKCkKLSAgICB7Ci0gICAgICAgIG1fY2Fs
bGVlLmNsZWFyKCk7Ci0gICAgfQorICAgIHZvaWQgY2xlYXJDYWxsZWUoKTsKIAogICAgIEpTRnVu
Y3Rpb24qIGNhbGxlZSgpCiAgICAgewpAQCAtMzE0LDcgKzMwNyw3IEBAIHByaXZhdGU6CiAgICAg
Q29kZUxvY2F0aW9uTmVhckNhbGwgbV9jYWxsUmV0dXJuTG9jYXRpb247CiAgICAgQ29kZUxvY2F0
aW9uRGF0YUxhYmVsUHRyIG1faG90UGF0aEJlZ2luOwogICAgIENvZGVMb2NhdGlvbk5lYXJDYWxs
IG1faG90UGF0aE90aGVyOwotICAgIEpJVFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2NhbGxl
ZTsKKyAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9jYWxsZWU7CiAgICAgV3JpdGVCYXJy
aWVyPEpTRnVuY3Rpb24+IG1fbGFzdFNlZW5DYWxsZWU7CiAgICAgUmVmUHRyPFBvbHltb3JwaGlj
Q2FsbFN0dWJSb3V0aW5lPiBtX3N0dWI7CiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBtX3Ns
b3dTdHViOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCShy
ZXZpc2lvbiAyMDcyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBAIGNsYXNzIEdDVGhyZWFkU2hhcmVk
RGF0YTsKIGNsYXNzIEhlYXA7CiBjbGFzcyBIZWFwQ2VsbDsKIGNsYXNzIEhlYXBTbmFwc2hvdEJ1
aWxkZXI7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBKSVRXcml0ZUJhcnJpZXI7CiBjbGFz
cyBNYXJrZWRCbG9jazsKIGNsYXNzIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXI7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBjbGFzcyBXZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRXcml0ZUJhcnJpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFdyaXRlQmFycmllci5oCShyZXZpc2lvbiAyMDcyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oCShub25leGlzdGVudCkKQEAgLTEsMTM5ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShKSVQpCi0K
LSNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgotI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCi0j
aW5jbHVkZSAiVW51c2VkUG9pbnRlci5oIgotI2luY2x1ZGUgIlZNLmgiCi0jaW5jbHVkZSAiV3Jp
dGVCYXJyaWVyLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBKU0NlbGw7Ci1jbGFzcyBW
TTsKLQotLy8gTmVlZHMgdG8gYmUgZXZlbiB0byBhcHBlYXNlIHNvbWUgb2YgdGhlIGJhY2tlbmRz
LgotI2RlZmluZSBKSVRXcml0ZUJhcnJpZXJGbGFnICgodm9pZCopMikKLWNsYXNzIEpJVFdyaXRl
QmFycmllckJhc2UgewotcHVibGljOgotICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25z
dCB7IHJldHVybiBnZXQoKTsgfQotICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4g
IWdldCgpOyB9Ci0KLSAgICB2b2lkIHNldEZsYWdPbkJhcnJpZXIoKQotICAgIHsKLSAgICAgICAg
QVNTRVJUKCFtX2xvY2F0aW9uKTsKLSAgICAgICAgbV9sb2NhdGlvbiA9IENvZGVMb2NhdGlvbkRh
dGFMYWJlbFB0cihKSVRXcml0ZUJhcnJpZXJGbGFnKTsKLSAgICB9Ci0KLSAgICBib29sIGlzRmxh
Z2dlZCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gISFtX2xvY2F0aW9uOwotICAgIH0K
LQotICAgIHZvaWQgc2V0TG9jYXRpb24oQ29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0aW9u
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2xvY2F0aW9uKTsKLSAgICAgICAgbV9sb2NhdGlv
biA9IGxvY2F0aW9uOwotICAgIH0KLQotICAgIENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0ciBsb2Nh
dGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoKCEhbV9sb2NhdGlvbikgJiYgbV9s
b2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpICE9IEpJVFdyaXRlQmFycmllckZsYWcpOwotICAg
ICAgICByZXR1cm4gbV9sb2NhdGlvbjsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBjbGVhcigpIHsg
Y2xlYXIoMCk7IH0KLSAgICB2b2lkIGNsZWFyVG9VbnVzZWRQb2ludGVyKCkgeyBjbGVhcihyZWlu
dGVycHJldF9jYXN0PHZvaWQqPih1bnVzZWRQb2ludGVyKSk7IH0KLQotcHJvdGVjdGVkOgotICAg
IEpJVFdyaXRlQmFycmllckJhc2UoKQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIHNldChWTSYg
dm0sIENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0ciBsb2NhdGlvbiwgSlNDZWxsKiBvd25lciwgSlND
ZWxsKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKG93bmVyLCB2
YWx1ZSk7Ci0gICAgICAgIG1fbG9jYXRpb24gPSBsb2NhdGlvbjsKLSAgICAgICAgQVNTRVJUKCgo
ISFtX2xvY2F0aW9uKSAmJiBtX2xvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkgIT0gSklUV3Jp
dGVCYXJyaWVyRmxhZykgfHwgKGxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkgPT0gbV9sb2Nh
dGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBh
dGNoUG9pbnRlcihtX2xvY2F0aW9uLCB2YWx1ZSk7Ci0gICAgICAgIEFTU0VSVChnZXQoKSA9PSB2
YWx1ZSk7Ci0gICAgfQotCi0gICAgSlNDZWxsKiBnZXQoKSBjb25zdAotICAgIHsKLSAgICAgICAg
aWYgKCFtX2xvY2F0aW9uIHx8IG1fbG9jYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSA9PSBKSVRX
cml0ZUJhcnJpZXJGbGFnKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHZvaWQqIHJl
c3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KE1hY3JvQXNzZW1ibGVyOjpyZWFkUG9pbnRlciht
X2xvY2F0aW9uKSk7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4odW51c2VkUG9pbnRlcikpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEpTQ2VsbCo+KHJlc3VsdCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHZv
aWQgY2xlYXIodm9pZCogY2xlYXJlZFZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2xvY2F0
aW9uKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAobV9sb2NhdGlvbi5leGVjdXRh
YmxlQWRkcmVzcygpICE9IEpJVFdyaXRlQmFycmllckZsYWcpCi0gICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6cmVwYXRjaFBvaW50ZXIobV9sb2NhdGlvbiwgY2xlYXJlZFZhbHVlKTsKLSAgICB9
Ci0KLSAgICBDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHIgbV9sb2NhdGlvbjsKLX07Ci0KLSN1bmRl
ZiBKSVRXcml0ZUJhcnJpZXJGbGFnCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBKSVRX
cml0ZUJhcnJpZXIgOiBwdWJsaWMgSklUV3JpdGVCYXJyaWVyQmFzZSB7Ci1wdWJsaWM6Ci0gICAg
SklUV3JpdGVCYXJyaWVyKCkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBzZXQoVk0mIHZtLCBD
b2RlTG9jYXRpb25EYXRhTGFiZWxQdHIgbG9jYXRpb24sIEpTQ2VsbCogb3duZXIsIFQqIHZhbHVl
KQotICAgIHsKLSAgICAgICAgdmFsaWRhdGVDZWxsKG93bmVyKTsKLSAgICAgICAgdmFsaWRhdGVD
ZWxsKHZhbHVlKTsKLSAgICAgICAgSklUV3JpdGVCYXJyaWVyQmFzZTo6c2V0KHZtLCBsb2NhdGlv
biwgb3duZXIsIHZhbHVlKTsKLSAgICB9Ci0gICAgdm9pZCBzZXQoVk0mIHZtLCBKU0NlbGwqIG93
bmVyLCBUKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHNldCh2bSwgbG9jYXRpb24oKSwgb3duZXIs
IHZhbHVlKTsKLSAgICB9Ci0gICAgVCogZ2V0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIFQqIHJl
c3VsdCA9IHN0YXRpY19jYXN0PFQqPihKSVRXcml0ZUJhcnJpZXJCYXNlOjpnZXQoKSk7Ci0gICAg
ICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICB2YWxpZGF0ZUNlbGwocmVzdWx0KTsKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2Vu
ZGlmIC8vIEVOQUJMRShKSVQpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1z
dHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291361</attachid>
            <date>2016-10-12 09:19:56 -0700</date>
            <delta_ts>2016-10-12 09:38:56 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>15379</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MjE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE2LTEwLTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIEpJVFdyaXRlQmFycmllci5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjMzMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIEkgZ3Vlc3MgdGhhdCB0aGUgaWRlYSBvZiBKSVRXcml0
ZUJhcnJpZXIgd2FzIHRvIG1ha2Ugc3VyZSB0aGF0IGlmIHlvdSBzbGFwIHNvbWUgaGVhcCBwb2lu
dGVyCisgICAgICAgIGJpdHMgaW50byBtYWNoaW5lIGNvZGUsIHRoZW4geW91IGJldHRlciBleGVj
dXRlIGEgYmFycmllciBvbiB0aGUgY29kZSBibG9jay4gQnV0IGl0J3MgYQorICAgICAgICBjb21w
bGljYXRlZCBwaWVjZSBvZiBjb2RlLCBhbmQgSSBjYW4gbmV2ZXIgcmVtZW1iZXIgaG93IGl0IHF1
aXRlIHdvcmtzLiBUaGVzZSBkYXlzIGl0IGxvb2tzCisgICAgICAgIHZlc3RpZ2lhbCwgcGFydGlj
dWxhcmx5IHNpbmNlIG9ubHkgdGhlIENhbGxMaW5rSW5mbyBwYXRjaGFibGUgY2FsbGVlIGltbWVk
aWF0ZSB1c2VzIGl0LiBJdCdzCisgICAgICAgIG5vdCByZWFsbHkgbmVjZXNzYXJ5IHRvIGhhdmUg
c29tZXRoaW5nIGxpa2UgdGhpcywgc2luY2Ugb3VyIGNvbnZlbnRpb24gaXMgdGhhdCBhbnkgcG9p
bnRlcgorICAgICAgICBzdG9yZWQgaW4gbWFjaGluZSBjb2RlIG11c3QgYWx3YXlzIGJlIHNoYWRv
d2VkIGluIHRoZSBHQyBoZWFwLiBJIHRoaW5rIHRoYXQgY29udmVudGlvbiBoYXMKKyAgICAgICAg
b25lIGJ5IG92ZXJ3aGVsbWluZyBtYWpvcml0eSwgc28gd2Ugc2hvdWxkIGZpbmFsbHkgcmVtb3Zl
IEpJVFdyaXRlQmFycmllci4KKyAgICAgICAgCisgICAgICAgIEEgcHJhY3RpY2FsIG91dGNvbWUg
b2YgdGhpcyBjaGFuZ2UgaXMgdGhhdCBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gaW1wbGVtZW50IERp
cmVjdENhbGwgSUNzLAorICAgICAgICB3aGljaCB3aWxsIGhhdmUgdG8gc3RvcmUgdGhlIGNhbGxl
ZSBpbiB0aGUgQ2FsbExpbmtJbmZvIGJ1dCBub3QgaW4gdGhlIG1hY2hpbmUgY29kZS4KKworICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKiBieXRlY29k
ZS9DYWxsTGlua0luZm8uY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNldENhbGxl
ZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6Y2xlYXJDYWxsZWUpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNl
dENhbGxlZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6Y2xlYXJDYWxs
ZWUpOiBEZWxldGVkLgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3IuaDoKKyAgICAgICAgKiBq
aXQvSklUV3JpdGVCYXJyaWVyLmg6IFJlbW92ZWQuCisKIDIwMTYtMTAtMTIgIENzYWJhIE9zenRy
b2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkZml4
IGZvciBHQ0MgNC45IGFmdGVyIHIyMDcxODYuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjA3MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3Njks
NyArMTc2OSw2IEBACiAJCUE3NjdCNUI2MTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVh
ZGVyQ3JlYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc2N0I1QjQxN0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVh
dGlvblBoYXNlLmggKi87IH07CiAJCUE3NkM1MTc2MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVy
ZmFjZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc2QzUxNzQxMTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc2RjI3OTQxNUYxM0M5NjAw
NTE3RDY3IC8qIFVubGlua2VkQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OUU3ODFFMTVFRUNCQTgwMDQ3Qzg1NSAvKiBVbmxpbmtl
ZENvZGVCbG9jay5jcHAgKi87IH07Ci0JCUE3NkY1NEEzMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRX
cml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzdBNDIzRDE3QTBC
QkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAvKiBERkdB
YnN0cmFjdEhlYXAuY3BwICovOyB9OwogCQlBNzdBNDIzRTE3QTBCQkZEMDBBOERCODEgLyogREZH
QWJzdHJhY3RIZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzdBNDIzNzE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmggKi87IH07
CiAJCUE3N0E0MjNGMTdBMEJCRkQwMEE4REI4MSAvKiBERkdDbG9iYmVyaXplLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0E0MjM4MTdBMEJCRkQw
MEE4REI4MSAvKiBERkdDbG9iYmVyaXplLmNwcCAqLzsgfTsKQEAgLTQwNzcsNyArNDA3Niw2IEBA
CiAJCUE3NjdCNUIzMTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25Q
aGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdMb29wUHJl
SGVhZGVyQ3JlYXRpb25QaGFzZS5jcHA7IHBhdGggPSBkZmcvREZHTG9vcFByZUhlYWRlckNyZWF0
aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzY3QjVCNDE3QTBC
OTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaDsg
cGF0aCA9IGRmZy9ERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VK
SVQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnRlcmZhY2VKSVQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNFIC8q
IEpJVFdyaXRlQmFycmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRX
cml0ZUJhcnJpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3QTQyMzYxN0Ew
QkJGRDAwQThEQjgxIC8qIERGR0Fic3RyYWN0SGVhcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdBYnN0cmFjdEhlYXAuY3BwOyBwYXRoID0gZGZnL0RGR0Fic3Ry
YWN0SGVhcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0E0MjM3MTdBMEJC
RkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gREZHQWJzdHJhY3RIZWFwLmg7IHBhdGggPSBkZmcvREZHQWJzdHJhY3RIZWFwLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0E0MjM4MTdBMEJCRkQwMEE4REI4MSAv
KiBERkdDbG9iYmVyaXplLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IERGR0Nsb2JiZXJpemUuY3BwOyBwYXRoID0gZGZnL0RGR0Nsb2JiZXJpemUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTI3OSw3ICs1Mjc3LDYgQEAKIAkJCQkwRkM3MTJFMTE3
Q0Q4NzhGMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAq
LywKIAkJCQlEQzAxODQxNzFEMTBDMTg3MDA1N0IwNTMgLyogSklUV29ya2xpc3QuY3BwICovLAog
CQkJCURDMDE4NDE4MUQxMEMxODcwMDU3QjA1MyAvKiBKSVRXb3JrbGlzdC5oICovLAotCQkJCUE3
NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlBNzZD
NTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQk3OTJDQjM0
NzFDNEVFRDVDMDBEMTNBRjMgLyogUENUb0NvZGVPcmlnaW5NYXAuY3BwICovLAogCQkJCTc5MkNC
MzQ4MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oICovLApAQCAtNzk0NSw3
ICs3OTQyLDYgQEAKIAkJCQkwRjc2NkQyQzE1QThDQzNBMDA4RjM2M0UgLyogSklUU3R1YlJvdXRp
bmVTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBK
SVRUaHVua3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzcxMkUzMTdDRDg3OTMwMDhDQzkzQyAv
KiBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQTc2RjU0QTMxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODQwNDgwMTMxMDIxQTFEOTAwOEU3RjAxIC8qIEpTQVBJVmFsdWVXcmFwcGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkNGMzlDMjE2RTE1QTgxMDBERDY5QkUgLyogSlNBUElX
cmFwcGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxNzBFMTZGNUNEMDBCMzQ0
NjAgLyogSlNBcnJheS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkocmV2
aXNpb24gMjA3MjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFj
dE1hY3JvQXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDYgQEAgc3RydWN0
IE9TUkV4aXQ7CiB0ZW1wbGF0ZSA8Y2xhc3MgQXNzZW1ibGVyVHlwZSwgY2xhc3MgTWFjcm9Bc3Nl
bWJsZXJUeXBlPgogY2xhc3MgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlciB7CiBwdWJsaWM6Ci0gICAg
ZnJpZW5kIGNsYXNzIEpJVFdyaXRlQmFycmllckJhc2U7CiAgICAgdHlwZWRlZiBBYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyPEFzc2VtYmxlclR5cGUsIE1hY3JvQXNzZW1ibGVyVHlwZT4gQWJzdHJhY3RN
YWNyb0Fzc2VtYmxlclR5cGU7CiAgICAgdHlwZWRlZiBBc3NlbWJsZXJUeXBlIEFzc2VtYmxlclR5
cGVfVDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5m
by5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAJKHJldmlzaW9uIDIwNzIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJKU0NJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIK
ICNpbmNsdWRlICJSZXBhdGNoLmgiCiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAKQEAgLTk3
LDYgKzk4LDE4IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp1bmxpbmsoVk0mIHZtKQogICAgICAgICBy
ZW1vdmUoKTsKIH0KIAordm9pZCBDYWxsTGlua0luZm86OnNldENhbGxlZShWTSYgdm0sIEpTQ2Vs
bCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxlZSkKK3sKKyAgICBNYWNyb0Fzc2VtYmxlcjo6cmVw
YXRjaFBvaW50ZXIobV9ob3RQYXRoQmVnaW4sIGNhbGxlZSk7CisgICAgbV9jYWxsZWUuc2V0KHZt
LCBvd25lciwgY2FsbGVlKTsKK30KKwordm9pZCBDYWxsTGlua0luZm86OmNsZWFyQ2FsbGVlKCkK
K3sKKyAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaFBvaW50ZXIobV9ob3RQYXRoQmVnaW4sIG51
bGxwdHIpOworICAgIG1fY2FsbGVlLmNsZWFyKCk7Cit9CisKIHZvaWQgQ2FsbExpbmtJbmZvOjp2
aXNpdFdlYWsoVk0mIHZtKQogewogICAgIGF1dG8gaGFuZGxlU3BlY2lmaWNDYWxsZWUgPSBbJl0g
KEpTRnVuY3Rpb24qIGNhbGxlZSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uaAkocmV2aXNpb24gMjA3MjE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCwgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJDYWxsTW9kZS5oIgogI2luY2x1ZGUg
IkNvZGVMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKLSNp
bmNsdWRlICJKSVRXcml0ZUJhcnJpZXIuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJp
ZXIuaCIKQEAgLTE1OCwxNSArMTU3LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9ob3RQ
YXRoT3RoZXI7CiAgICAgfQogCi0gICAgdm9pZCBzZXRDYWxsZWUoVk0mIHZtLCBDb2RlTG9jYXRp
b25EYXRhTGFiZWxQdHIgbG9jYXRpb24sIEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxl
ZSkKLSAgICB7Ci0gICAgICAgIG1fY2FsbGVlLnNldCh2bSwgbG9jYXRpb24sIG93bmVyLCBjYWxs
ZWUpOwotICAgIH0KKyAgICB2b2lkIHNldENhbGxlZShWTSYsIEpTQ2VsbCosIEpTRnVuY3Rpb24q
IGNhbGxlZSk7CiAKLSAgICB2b2lkIGNsZWFyQ2FsbGVlKCkKLSAgICB7Ci0gICAgICAgIG1fY2Fs
bGVlLmNsZWFyKCk7Ci0gICAgfQorICAgIHZvaWQgY2xlYXJDYWxsZWUoKTsKIAogICAgIEpTRnVu
Y3Rpb24qIGNhbGxlZSgpCiAgICAgewpAQCAtMzE0LDcgKzMwNyw3IEBAIHByaXZhdGU6CiAgICAg
Q29kZUxvY2F0aW9uTmVhckNhbGwgbV9jYWxsUmV0dXJuTG9jYXRpb247CiAgICAgQ29kZUxvY2F0
aW9uRGF0YUxhYmVsUHRyIG1faG90UGF0aEJlZ2luOwogICAgIENvZGVMb2NhdGlvbk5lYXJDYWxs
IG1faG90UGF0aE90aGVyOwotICAgIEpJVFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2NhbGxl
ZTsKKyAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9jYWxsZWU7CiAgICAgV3JpdGVCYXJy
aWVyPEpTRnVuY3Rpb24+IG1fbGFzdFNlZW5DYWxsZWU7CiAgICAgUmVmUHRyPFBvbHltb3JwaGlj
Q2FsbFN0dWJSb3V0aW5lPiBtX3N0dWI7CiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBtX3Ns
b3dTdHViOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCShy
ZXZpc2lvbiAyMDcyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBAIGNsYXNzIEdDVGhyZWFkU2hhcmVk
RGF0YTsKIGNsYXNzIEhlYXA7CiBjbGFzcyBIZWFwQ2VsbDsKIGNsYXNzIEhlYXBTbmFwc2hvdEJ1
aWxkZXI7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBKSVRXcml0ZUJhcnJpZXI7CiBjbGFz
cyBNYXJrZWRCbG9jazsKIGNsYXNzIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXI7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBjbGFzcyBXZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRXcml0ZUJhcnJpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFdyaXRlQmFycmllci5oCShyZXZpc2lvbiAyMDcyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oCShub25leGlzdGVudCkKQEAgLTEsMTM5ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShKSVQpCi0K
LSNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgotI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCi0j
aW5jbHVkZSAiVW51c2VkUG9pbnRlci5oIgotI2luY2x1ZGUgIlZNLmgiCi0jaW5jbHVkZSAiV3Jp
dGVCYXJyaWVyLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBKU0NlbGw7Ci1jbGFzcyBW
TTsKLQotLy8gTmVlZHMgdG8gYmUgZXZlbiB0byBhcHBlYXNlIHNvbWUgb2YgdGhlIGJhY2tlbmRz
LgotI2RlZmluZSBKSVRXcml0ZUJhcnJpZXJGbGFnICgodm9pZCopMikKLWNsYXNzIEpJVFdyaXRl
QmFycmllckJhc2UgewotcHVibGljOgotICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25z
dCB7IHJldHVybiBnZXQoKTsgfQotICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4g
IWdldCgpOyB9Ci0KLSAgICB2b2lkIHNldEZsYWdPbkJhcnJpZXIoKQotICAgIHsKLSAgICAgICAg
QVNTRVJUKCFtX2xvY2F0aW9uKTsKLSAgICAgICAgbV9sb2NhdGlvbiA9IENvZGVMb2NhdGlvbkRh
dGFMYWJlbFB0cihKSVRXcml0ZUJhcnJpZXJGbGFnKTsKLSAgICB9Ci0KLSAgICBib29sIGlzRmxh
Z2dlZCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gISFtX2xvY2F0aW9uOwotICAgIH0K
LQotICAgIHZvaWQgc2V0TG9jYXRpb24oQ29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0aW9u
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2xvY2F0aW9uKTsKLSAgICAgICAgbV9sb2NhdGlv
biA9IGxvY2F0aW9uOwotICAgIH0KLQotICAgIENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0ciBsb2Nh
dGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoKCEhbV9sb2NhdGlvbikgJiYgbV9s
b2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpICE9IEpJVFdyaXRlQmFycmllckZsYWcpOwotICAg
ICAgICByZXR1cm4gbV9sb2NhdGlvbjsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBjbGVhcigpIHsg
Y2xlYXIoMCk7IH0KLSAgICB2b2lkIGNsZWFyVG9VbnVzZWRQb2ludGVyKCkgeyBjbGVhcihyZWlu
dGVycHJldF9jYXN0PHZvaWQqPih1bnVzZWRQb2ludGVyKSk7IH0KLQotcHJvdGVjdGVkOgotICAg
IEpJVFdyaXRlQmFycmllckJhc2UoKQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIHNldChWTSYg
dm0sIENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0ciBsb2NhdGlvbiwgSlNDZWxsKiBvd25lciwgSlND
ZWxsKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKG93bmVyLCB2
YWx1ZSk7Ci0gICAgICAgIG1fbG9jYXRpb24gPSBsb2NhdGlvbjsKLSAgICAgICAgQVNTRVJUKCgo
ISFtX2xvY2F0aW9uKSAmJiBtX2xvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkgIT0gSklUV3Jp
dGVCYXJyaWVyRmxhZykgfHwgKGxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkgPT0gbV9sb2Nh
dGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBh
dGNoUG9pbnRlcihtX2xvY2F0aW9uLCB2YWx1ZSk7Ci0gICAgICAgIEFTU0VSVChnZXQoKSA9PSB2
YWx1ZSk7Ci0gICAgfQotCi0gICAgSlNDZWxsKiBnZXQoKSBjb25zdAotICAgIHsKLSAgICAgICAg
aWYgKCFtX2xvY2F0aW9uIHx8IG1fbG9jYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSA9PSBKSVRX
cml0ZUJhcnJpZXJGbGFnKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHZvaWQqIHJl
c3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KE1hY3JvQXNzZW1ibGVyOjpyZWFkUG9pbnRlciht
X2xvY2F0aW9uKSk7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4odW51c2VkUG9pbnRlcikpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEpTQ2VsbCo+KHJlc3VsdCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHZv
aWQgY2xlYXIodm9pZCogY2xlYXJlZFZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2xvY2F0
aW9uKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAobV9sb2NhdGlvbi5leGVjdXRh
YmxlQWRkcmVzcygpICE9IEpJVFdyaXRlQmFycmllckZsYWcpCi0gICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6cmVwYXRjaFBvaW50ZXIobV9sb2NhdGlvbiwgY2xlYXJlZFZhbHVlKTsKLSAgICB9
Ci0KLSAgICBDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHIgbV9sb2NhdGlvbjsKLX07Ci0KLSN1bmRl
ZiBKSVRXcml0ZUJhcnJpZXJGbGFnCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBKSVRX
cml0ZUJhcnJpZXIgOiBwdWJsaWMgSklUV3JpdGVCYXJyaWVyQmFzZSB7Ci1wdWJsaWM6Ci0gICAg
SklUV3JpdGVCYXJyaWVyKCkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBzZXQoVk0mIHZtLCBD
b2RlTG9jYXRpb25EYXRhTGFiZWxQdHIgbG9jYXRpb24sIEpTQ2VsbCogb3duZXIsIFQqIHZhbHVl
KQotICAgIHsKLSAgICAgICAgdmFsaWRhdGVDZWxsKG93bmVyKTsKLSAgICAgICAgdmFsaWRhdGVD
ZWxsKHZhbHVlKTsKLSAgICAgICAgSklUV3JpdGVCYXJyaWVyQmFzZTo6c2V0KHZtLCBsb2NhdGlv
biwgb3duZXIsIHZhbHVlKTsKLSAgICB9Ci0gICAgdm9pZCBzZXQoVk0mIHZtLCBKU0NlbGwqIG93
bmVyLCBUKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHNldCh2bSwgbG9jYXRpb24oKSwgb3duZXIs
IHZhbHVlKTsKLSAgICB9Ci0gICAgVCogZ2V0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIFQqIHJl
c3VsdCA9IHN0YXRpY19jYXN0PFQqPihKSVRXcml0ZUJhcnJpZXJCYXNlOjpnZXQoKSk7Ci0gICAg
ICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICB2YWxpZGF0ZUNlbGwocmVzdWx0KTsKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2Vu
ZGlmIC8vIEVOQUJMRShKSVQpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1z
dHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAyMDcy
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NjYsNyArNTY2LDcgQEAgdm9pZCBsaW5rRm9yKAogICAgIFZNKiB2bSA9IGNhbGxl
ckNvZGVCbG9jay0+dm0oKTsKICAgICAKICAgICBBU1NFUlQoIWNhbGxMaW5rSW5mby5pc0xpbmtl
ZCgpKTsKLSAgICBjYWxsTGlua0luZm8uc2V0Q2FsbGVlKGV4ZWMtPmNhbGxlckZyYW1lKCktPnZt
KCksIGNhbGxMaW5rSW5mby5ob3RQYXRoQmVnaW4oKSwgY2FsbGVyQ29kZUJsb2NrLCBjYWxsZWUp
OworICAgIGNhbGxMaW5rSW5mby5zZXRDYWxsZWUoZXhlYy0+Y2FsbGVyRnJhbWUoKS0+dm0oKSwg
Y2FsbGVyQ29kZUJsb2NrLCBjYWxsZWUpOwogICAgIGNhbGxMaW5rSW5mby5zZXRMYXN0U2VlbkNh
bGxlZShleGVjLT5jYWxsZXJGcmFtZSgpLT52bSgpLCBjYWxsZXJDb2RlQmxvY2ssIGNhbGxlZSk7
CiAgICAgaWYgKHNob3VsZER1bXBEaXNhc3NlbWJseUZvcihjYWxsZXJDb2RlQmxvY2spKQogICAg
ICAgICBkYXRhTG9nKCJMaW5raW5nIGNhbGwgaW4gIiwgKmNhbGxlckNvZGVCbG9jaywgIiBhdCAi
LCBjYWxsTGlua0luZm8uY29kZU9yaWdpbigpLCAiIHRvICIsIHBvaW50ZXJEdW1wKGNhbGxlZUNv
ZGVCbG9jayksICIsIGVudHJ5cG9pbnQgYXQgIiwgY29kZVB0ciwgIlxuIik7Cg==
</data>
<flag name="review"
          id="314497"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>