<?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>133166</bug_id>
          
          <creation_ts>2014-05-21 20:47:33 -0700</creation_ts>
          <short_desc>[ftlopt] DFG::clobberize should be blind to the effects of GC</short_desc>
          <delta_ts>2014-05-21 21:43:10 -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>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>barraclough</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1010877</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-05-21 20:47:33 -0700</bug_when>
    <thetext>Clobberization should only be used during the earlier parts of compilation, when it&apos;s fair game to insert allocations anywhere.  This change will allow for hoisting of MakeRope&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010878</commentid>
    <comment_count>1</comment_count>
      <attachid>231851</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-05-21 20:55:46 -0700</bug_when>
    <thetext>Created attachment 231851
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010879</commentid>
    <comment_count>2</comment_count>
      <attachid>231851</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-21 20:58:45 -0700</bug_when>
    <thetext>Comment on attachment 231851
the patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGDoesGC.cpp:37
&gt; +    switch (node-&gt;op()) {

Might be nice to list all the ops here explicitly, and remove the default. That would make it impossible to add a new op without considering whether it does GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010880</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-05-21 20:59:47 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 231851 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=231851&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGDoesGC.cpp:37
&gt; &gt; +    switch (node-&gt;op()) {
&gt; 
&gt; Might be nice to list all the ops here explicitly, and remove the default. That would make it impossible to add a new op without considering whether it does GC.

True.  I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010881</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-05-21 21:11:59 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/169188</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010886</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-05-21 21:43:10 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; This change will allow for hoisting of MakeRope&apos;s.

I love you.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231851</attachid>
            <date>2014-05-21 20:55:46 -0700</date>
            <delta_ts>2014-05-21 20:58:45 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>21198</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY5MTg2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE0LTA1LTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W2Z0bG9wdF0gREZHOjpjbG9iYmVyaXplIHNob3VsZCBiZSBibGluZCB0byB0aGUgZWZmZWN0cyBv
ZiBHQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMz
MTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBNb3ZlIHRoZSBjb21wdXRhdGlvbiBvZiB3aGVyZSBHQ3MgaGFwcGVuIHRvIERGRzo6ZG9l
c0dDKCkuCisgICAgICAgIAorICAgICAgICBMYXJnZSAoPjV4KSBzcGVlZC11cCBvbiBwcm9ncmFt
cyB0aGF0IGRvIGxvb3AtaW52YXJpYW50IHN0cmluZyBjb25jYXRlbmF0aW9ucy4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEhlYXAuaDoKKyAgICAg
ICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUp
OgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemVGb3JBbGxvY2F0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkRGRzo6
ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmg6IEFkZGVkLgorICAgICAgICAqIGRm
Zy9ERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlN0
b3JlQmFycmllckVsaXNpb25QaGFzZTo6aGFuZGxlTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6
U3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlOjpjb3VsZENhdXNlR0MpOiBEZWxldGVkLgorCiAyMDE0
LTA1LTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2Ug
dHJ1bmsgcjE2OTE4NCB0byBmdGxvcHQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiAxNjkxNzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfU09VUkNFUwogICAgIGRmZy9ERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuY3BwCiAgICAg
ZGZnL0RGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmNwcAogICAgIGRmZy9ERkdEaXNhc3NlbWJsZXIu
Y3BwCisgICAgZGZnL0RGR0RvZXNHQy5jcHAKICAgICBkZmcvREZHRG9taW5hdG9ycy5jcHAKICAg
ICBkZmcvREZHRHJpdmVyLmNwcAogICAgIGRmZy9ERkdFZGdlLmNwcApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjkxNzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zODgsNiArMzg4LDcgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdEaXNhc3NlbWJsZXIuY3BwIiAvPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0RvZXNHQy5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHRG9taW5hdG9ycy5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxkZmdcREZHRHJpdmVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGRmZ1xERkdFZGdlLmNwcCIgLz4KQEAgLTk0Myw2ICs5NDQsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHRGlzYXNzZW1ibGVyLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHRG9lc0dDLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHRG9taW5hdG9ycy5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZGZnXERGR0RvdWJsZUZvcm1hdFN0YXRlLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkZmdcREZHRHJpdmVyLmgiIC8+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMTY5MTcwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTI4OSw2ICsyODksOCBAQAogCQkwRjU2QTFENTE1MDAxQ0Y0MDAyOTkyQjEgLyogRXhlY3V0aW9u
Q291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi87IH07
CiAJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NzJENEQxNjg3OUZEQjAw
RTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1NzgwQTIxOEZFMUU5ODAwMUU3MkQ5IC8qIFB1cmVOYU4u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTc4MEEx
MThGRTFFOTgwMDFFNzJEOSAvKiBQdXJlTmFOLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY1QTEyNzMxOTJEOUZERjAwODc2NEEzIC8qIERGR0Rv
ZXNHQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjVBMTI3MTE5MkQ5RkRGMDA4NzY0QTMgLyogREZHRG9lc0dDLmNwcCAqLzsgfTsKKwkJMEY1QTEy
NzQxOTJEOUZERjAwODc2NEEzIC8qIERGR0RvZXNHQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QTEyNzIxOTJEOUZERjAwODc2NEEzIC8qIERGR0Rv
ZXNHQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGNUE1MkQwMTdBREQ3MTcwMDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUE1MkNGMTdBREQ3MTcwMDhFQ0IyRCAv
KiBDb3B5VG9rZW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjVBNjI4MzE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVBNjI4MTE4OEM5
OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgKi87IH07CiAJCTBGNUE2Mjg0MTg4Qzk4
RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVS
YW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0yMDk2LDYgKzIwOTgsOCBAQAogCQkwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0
aW9uQ291bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVj
dXRpb25Db3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NzJENEQx
Njg3OUZEQjAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRodW5rR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGNTc4MEExMThGRTFFOTgwMDFFNzJEOSAvKiBQdXJlTmFOLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFB1cmVOYU4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEY1QTEyNzExOTJEOUZERjAwODc2NEEzIC8qIERGR0RvZXNHQy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdEb2VzR0MuY3BwOyBwYXRoID0gZGZnL0RGR0Rv
ZXNHQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUExMjcyMTkyRDlGREYw
MDg3NjRBMyAvKiBERkdEb2VzR0MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHRG9lc0dDLmg7IHBhdGggPSBkZmcvREZHRG9lc0dDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNUE1MkNGMTdBREQ3MTcwMDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29weVRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUE2MjgxMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFZhbHVlUmFuZ2UuY3Bw
OyBwYXRoID0gZnRsL0ZUTFZhbHVlUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExWYWx1ZVJhbmdlLmg7IHBhdGggPSBmdGwvRlRM
VmFsdWVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY3NCw2ICs0Njc4
LDggQEAKIAkJCQlDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFy
cmllcnMuaCAqLywKIAkJCQkwRkY0Mjc2MTE1OTFBMUM5MDA0Q0I5RkYgLyogREZHRGlzYXNzZW1i
bGVyLmNwcCAqLywKIAkJCQkwRkY0Mjc2MjE1OTFBMUM5MDA0Q0I5RkYgLyogREZHRGlzYXNzZW1i
bGVyLmggKi8sCisJCQkJMEY1QTEyNzExOTJEOUZERjAwODc2NEEzIC8qIERGR0RvZXNHQy5jcHAg
Ki8sCisJCQkJMEY1QTEyNzIxOTJEOUZERjAwODc2NEEzIC8qIERGR0RvZXNHQy5oICovLAogCQkJ
CTBGRDgxQUNGMTU0RkI0RUIwMDk4M0U3MiAvKiBERkdEb21pbmF0b3JzLmNwcCAqLywKIAkJCQkw
RkQ4MUFEMDE1NEZCNEVCMDA5ODNFNzIgLyogREZHRG9taW5hdG9ycy5oICovLAogCQkJCTBGMUUz
QTQ0MTUzNENCQUQwMDBGOTQ1NiAvKiBERkdEb3VibGVGb3JtYXRTdGF0ZS5oICovLApAQCAtNDY5
NCw2ICs0NzAwLDggQEAKIAkJCQkwRjlEMzM5NTE3RkZDNEU2MDA3M0MyQkMgLyogREZHRmx1c2hl
ZEF0LmggKi8sCiAJCQkJQTdEODlDRTgxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0ZsdXNoRm9ybWF0
LmNwcCAqLywKIAkJCQlBN0Q4OUNFOTE3QTBCOENDMDA3NzNBRDggLyogREZHRmx1c2hGb3JtYXQu
aCAqLywKKwkJCQkyQTg4MDY3NjE5MTA3RDU1MDBDQjBCQkIgLyogREZHRnVuY3Rpb25XaGl0ZWxp
c3QuY3BwICovLAorCQkJCTJBODgwNjc3MTkxMDdENTUwMENCMEJCQiAvKiBERkdGdW5jdGlvbldo
aXRlbGlzdC5oICovLAogCQkJCTg2RUM5REI2MTMyOERGODIwMDJCMkFENyAvKiBERkdHZW5lcmF0
aW9uSW5mby5oICovLAogCQkJCTg2RUM5REI3MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5j
cHAgKi8sCiAJCQkJODZFQzlEQjgxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmggKi8sCkBA
IC00ODM0LDggKzQ4NDIsNiBAQAogCQkJCTBGQzk3RjNDMTgyMDIxMTkwMDJDOUIyNiAvKiBERkdX
YXRjaHBvaW50Q29sbGVjdGlvblBoYXNlLmggKi8sCiAJCQkJMEZEQjJDRTUxNzQ4MzBBMjAwN0Iz
QzFCIC8qIERGR1dvcmtsaXN0LmNwcCAqLywKIAkJCQkwRkRCMkNFNjE3NDgzMEEyMDA3QjNDMUIg
LyogREZHV29ya2xpc3QuaCAqLywKLQkJCQkyQTg4MDY3NjE5MTA3RDU1MDBDQjBCQkIgLyogREZH
RnVuY3Rpb25XaGl0ZWxpc3QuY3BwICovLAotCQkJCTJBODgwNjc3MTkxMDdENTUwMENCMEJCQiAv
KiBERkdGdW5jdGlvbldoaXRlbGlzdC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBkZmc7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTk2MCw2ICs1OTY2LDcgQEAKIAkJCQkwRjJCNjZG
MjE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJCNjZGNDE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVBMTI3NDE5MkQ5RkRGMDA4NzY0QTMgLyogREZHRG9l
c0dDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGNTE3QjZCNUFCMDBBN0FFM0YgLyogSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2
NkY2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUlu
bGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDIxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBK
U0dsb2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC03MDQ5LDYgKzcwNTYsNyBAQAogCQkJ
CTBGMjM1QkUxMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY2QjFDQzUxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEYyMzVCRTMxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFZhbHVlRm9ybWF0
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNUExMjczMTkyRDlGREYwMDg3NjRBMyAvKiBERkdE
b2VzR0MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzQ0UwODcxOEJDMUE1NjAwQkVERjc2IC8q
IEpTQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjVBNjI4MzE4OEM5OEQ0MDA3MkM5
REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDQjEwN0VD
Mzc2MDA0MjdBNDggLyogRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RIZWFwLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAkocmV2aXNp
b24gMTY5MTcwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAu
aAkod29ya2luZyBjb3B5KQpAQCAtNzAsOCArNzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAgICAgbWFjcm8oQXJyYXlTdG9yYWdlUHJvcGVydGllcykgXAogICAgIG1hY3Jv
KFZhcmlhYmxlcykgXAogICAgIG1hY3JvKFR5cGVkQXJyYXlQcm9wZXJ0aWVzKSBcCi0gICAgbWFj
cm8oR0NTdGF0ZSkgXAotICAgIG1hY3JvKEJhcnJpZXJTdGF0ZSkgXAorICAgIG1hY3JvKEhlYXBP
YmplY3RDb3VudCkgLyogVXNlZCB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgc29tZSBhbGxvY2F0
aW9ucyByZXZlYWwgb2JqZWN0IGlkZW50aXR5ICovXAogICAgIG1hY3JvKFJlZ0V4cFN0YXRlKSBc
CiAgICAgbWFjcm8oSW50ZXJuYWxTdGF0ZSkgXAogICAgIG1hY3JvKEFic29sdXRlKSBcCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkocmV2aXNpb24gMTY5
MTcwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDE1ICszNSw2IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFJlYWRGdW5jdG9yLCB0eXBlbmFtZSBXcml0ZUZ1bmN0
b3I+Ci12b2lkIGNsb2JiZXJpemVGb3JBbGxvY2F0aW9uKFJlYWRGdW5jdG9yJiByZWFkLCBXcml0
ZUZ1bmN0b3ImIHdyaXRlKQotewotICAgIHJlYWQoR0NTdGF0ZSk7Ci0gICAgcmVhZChCYXJyaWVy
U3RhdGUpOwotICAgIHdyaXRlKEdDU3RhdGUpOwotICAgIHdyaXRlKEJhcnJpZXJTdGF0ZSk7Ci19
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFJlYWRGdW5jdG9yLCB0eXBlbmFtZSBXcml0ZUZ1bmN0b3I+
CiB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBSZWFkRnVuY3RvciYg
cmVhZCwgV3JpdGVGdW5jdG9yJiB3cml0ZSkKIHsKICAgICAvLyBTb21lIG5vdGVzOgpAQCAtMTMx
LDYgKzEyMiw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUKICAg
ICBjYXNlIERvdWJsZVJlcDoKICAgICBjYXNlIFZhbHVlUmVwOgogICAgIGNhc2UgSW50NTJSZXA6
CisgICAgY2FzZSBNYWtlUm9wZToKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNl
IE1vdkhpbnQ6CkBAIC0xNTYsNiArMTQ4LDggQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZQogICAgIGNhc2UgQnJlYWtwb2ludDoKICAgICBjYXNlIFByb2ZpbGVXaWxs
Q2FsbDoKICAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgorICAgIGNhc2UgU3RvcmVCYXJyaWVyOgor
ICAgIGNhc2UgU3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjazoKICAgICAgICAgd3JpdGUoU2lkZVN0
YXRlKTsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKQEAgLTE3Miw3ICsxNjYsOCBAQCB2b2lk
IGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAKICAgICBjYXNlIENyZWF0ZUFj
dGl2YXRpb246CiAgICAgY2FzZSBDcmVhdGVBcmd1bWVudHM6Ci0gICAgICAgIGNsb2JiZXJpemVG
b3JBbGxvY2F0aW9uKHJlYWQsIHdyaXRlKTsKKyAgICAgICAgcmVhZChIZWFwT2JqZWN0Q291bnQp
OworICAgICAgICB3cml0ZShIZWFwT2JqZWN0Q291bnQpOwogICAgICAgICB3cml0ZShTaWRlU3Rh
dGUpOwogICAgICAgICB3cml0ZShXYXRjaHBvaW50X2ZpcmUpOwogICAgICAgICByZXR1cm47CkBA
IC0xODQsNyArMTc5LDggQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZQogICAgIGNhc2UgVG9UaGlzOgogICAgIGNhc2UgQ3JlYXRlVGhpczoKICAgICAgICAgcmVhZChN
aXNjRmllbGRzKTsKLSAgICAgICAgY2xvYmJlcml6ZUZvckFsbG9jYXRpb24ocmVhZCwgd3JpdGUp
OworICAgICAgICByZWFkKEhlYXBPYmplY3RDb3VudCk7CisgICAgICAgIHdyaXRlKEhlYXBPYmpl
Y3RDb3VudCk7CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgVmFySW5qZWN0aW9uV2F0Y2hw
b2ludDoKQEAgLTQ1MSwxMyArNDQ3LDExIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgs
IE5vZGUqIG5vZGUKICAgICAgICAgCiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToK
ICAgICAgICAgd3JpdGUoSlNPYmplY3RfYnV0dGVyZmx5KTsKLSAgICAgICAgY2xvYmJlcml6ZUZv
ckFsbG9jYXRpb24ocmVhZCwgd3JpdGUpOwogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAg
IGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAgICAgcmVhZChKU09iamVjdF9i
dXR0ZXJmbHkpOwogICAgICAgICB3cml0ZShKU09iamVjdF9idXR0ZXJmbHkpOwotICAgICAgICBj
bG9iYmVyaXplRm9yQWxsb2NhdGlvbihyZWFkLCB3cml0ZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICAgICAgCiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CkBAIC00NzIsNyArNDY2LDYgQEAgdm9pZCBj
bG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZQogICAgICAgICB3cml0ZShKU0NlbGxf
c3RydWN0dXJlSUQpOwogICAgICAgICB3cml0ZShKU0NlbGxfaW5kZXhpbmdUeXBlKTsKICAgICAg
ICAgd3JpdGUoSlNPYmplY3RfYnV0dGVyZmx5KTsKLSAgICAgICAgY2xvYmJlcml6ZUZvckFsbG9j
YXRpb24ocmVhZCwgd3JpdGUpOwogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIGNhc2Ug
R2V0SW5kZXhlZFByb3BlcnR5U3RvcmFnZToKQEAgLTUwNSwxMCArNDk4LDggQEAgdm9pZCBjbG9i
YmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZQogICAgICAgICB3cml0ZShBYnN0cmFjdEhl
YXAoTmFtZWRQcm9wZXJ0aWVzLCBub2RlLT5tdWx0aVB1dEJ5T2Zmc2V0RGF0YSgpLmlkZW50aWZp
ZXJOdW1iZXIpKTsKICAgICAgICAgaWYgKG5vZGUtPm11bHRpUHV0QnlPZmZzZXREYXRhKCkud3Jp
dGVzU3RydWN0dXJlcygpKQogICAgICAgICAgICAgd3JpdGUoSlNDZWxsX3N0cnVjdHVyZUlEKTsK
LSAgICAgICAgaWYgKG5vZGUtPm11bHRpUHV0QnlPZmZzZXREYXRhKCkucmVhbGxvY2F0ZXNTdG9y
YWdlKCkpIHsKKyAgICAgICAgaWYgKG5vZGUtPm11bHRpUHV0QnlPZmZzZXREYXRhKCkucmVhbGxv
Y2F0ZXNTdG9yYWdlKCkpCiAgICAgICAgICAgICB3cml0ZShKU09iamVjdF9idXR0ZXJmbHkpOwot
ICAgICAgICAgICAgY2xvYmJlcml6ZUZvckFsbG9jYXRpb24ocmVhZCwgd3JpdGUpOwotICAgICAg
ICB9CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgY2FzZSBQdXRCeU9mZnNldDoKQEAg
LTU3NCwxNSArNTY1LDE2IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUKICAgICBjYXNlIE5ld0FycmF5QnVmZmVyOgogICAgIGNhc2UgTmV3UmVnZXhwOgogICAgIGNh
c2UgTmV3U3RyaW5nT2JqZWN0OgotICAgIGNhc2UgTWFrZVJvcGU6CiAgICAgY2FzZSBOZXdGdW5j
dGlvbk5vQ2hlY2s6CiAgICAgY2FzZSBOZXdGdW5jdGlvbjoKICAgICBjYXNlIE5ld0Z1bmN0aW9u
RXhwcmVzc2lvbjoKLSAgICAgICAgY2xvYmJlcml6ZUZvckFsbG9jYXRpb24ocmVhZCwgd3JpdGUp
OworICAgICAgICByZWFkKEhlYXBPYmplY3RDb3VudCk7CisgICAgICAgIHdyaXRlKEhlYXBPYmpl
Y3RDb3VudCk7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgY2FzZSBOZXdUeXBlZEFy
cmF5OgotICAgICAgICBjbG9iYmVyaXplRm9yQWxsb2NhdGlvbihyZWFkLCB3cml0ZSk7CisgICAg
ICAgIHJlYWQoSGVhcE9iamVjdENvdW50KTsKKyAgICAgICAgd3JpdGUoSGVhcE9iamVjdENvdW50
KTsKICAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICAgICAg
Y2FzZSBJbnQzMlVzZToKICAgICAgICAgICAgIHJldHVybjsKQEAgLTY2MCw3ICs2NTIsOCBAQCB2
b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAKICAgICBjYXNlIFRocm93
UmVmZXJlbmNlRXJyb3I6CiAgICAgICAgIHdyaXRlKFNpZGVTdGF0ZSk7Ci0gICAgICAgIGNsb2Ji
ZXJpemVGb3JBbGxvY2F0aW9uKHJlYWQsIHdyaXRlKTsKKyAgICAgICAgcmVhZChIZWFwT2JqZWN0
Q291bnQpOworICAgICAgICB3cml0ZShIZWFwT2JqZWN0Q291bnQpOwogICAgICAgICByZXR1cm47
CiAgICAgICAgIAogICAgIGNhc2UgQ291bnRFeGVjdXRpb246CkBAIC02NjgsMTIgKzY2MSw2IEBA
IHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUKICAgICAgICAgcmVhZChJ
bnRlcm5hbFN0YXRlKTsKICAgICAgICAgd3JpdGUoSW50ZXJuYWxTdGF0ZSk7CiAgICAgICAgIHJl
dHVybjsKLQotICAgIGNhc2UgU3RvcmVCYXJyaWVyOgotICAgIGNhc2UgU3RvcmVCYXJyaWVyV2l0
aE51bGxDaGVjazoKLSAgICAgICAgcmVhZChCYXJyaWVyU3RhdGUpOwotICAgICAgICB3cml0ZShC
YXJyaWVyU3RhdGUpOwotICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIGNhc2UgTGFzdE5v
ZGVUeXBlOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJERkdEb2VzR0MuaCIKKworI2luY2x1ZGUg
IkRGR0dyYXBoLmgiCisjaW5jbHVkZSAiREZHTm9kZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitib29sIGRvZXNHQyhOb2Rl
KiBub2RlKQoreworICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgIGNhc2UgQ3JlYXRlQWN0
aXZhdGlvbjoKKyAgICBjYXNlIENyZWF0ZUFyZ3VtZW50czoKKyAgICBjYXNlIFRvVGhpczoKKyAg
ICBjYXNlIENyZWF0ZVRoaXM6CisgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAg
ICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CisgICAgY2FzZSBBcnJheWlmeToKKyAg
ICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CisgICAgY2FzZSBOZXdPYmplY3Q6CisgICAgY2Fz
ZSBOZXdBcnJheToKKyAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6CisgICAgY2FzZSBOZXdBcnJh
eUJ1ZmZlcjoKKyAgICBjYXNlIE5ld1JlZ2V4cDoKKyAgICBjYXNlIE5ld1N0cmluZ09iamVjdDoK
KyAgICBjYXNlIE1ha2VSb3BlOgorICAgIGNhc2UgTmV3RnVuY3Rpb25Ob0NoZWNrOgorICAgIGNh
c2UgTmV3RnVuY3Rpb246CisgICAgY2FzZSBOZXdGdW5jdGlvbkV4cHJlc3Npb246CisgICAgY2Fz
ZSBOZXdUeXBlZEFycmF5OgorICAgIGNhc2UgVGhyb3dSZWZlcmVuY2VFcnJvcjoKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIAorICAgIGNhc2UgTXVsdGlQdXRCeU9mZnNldDoKKyAgICAg
ICAgcmV0dXJuIG5vZGUtPm11bHRpUHV0QnlPZmZzZXREYXRhKCkucmVhbGxvY2F0ZXNTdG9yYWdl
KCk7CisgICAgICAgIAorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdEb2VzR0MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEb2VzR0MuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgREZHRG9lc0dD
X2gKKyNkZWZpbmUgREZHRG9lc0dDX2gKKworI2lmIEVOQUJMRShERkdfSklUKQorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIEdyYXBoOworc3RydWN0IE5vZGU7CisK
K2Jvb2wgZG9lc0dDKE5vZGUqKTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCisKKyNlbmRpZiAvLyBERkdEb2VzR0NfaAorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJF
bGlzaW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNjkxNzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRGR0Jhc2ljQmxvY2suaCIKICNpbmNsdWRlICJE
RkdDbG9iYmVyaXplLmgiCisjaW5jbHVkZSAiREZHRG9lc0dDLmgiCiAjaW5jbHVkZSAiREZHR3Jh
cGguaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAg
LTU4LDExICs1OSw2IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBjb3Vs
ZENhdXNlR0MoTm9kZSogbm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB3cml0ZXNPdmVybGFw
KG1fZ3JhcGgsIG5vZGUsIEdDU3RhdGUpOwotICAgIH0KLQogICAgIGJvb2wgYWxsb2NhdGVzRnJl
c2hPYmplY3QoTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkg
ewpAQCAtMTA0LDcgKzEwMCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGhhbmRsZU5vZGUoSGFz
aFNldDxOb2RlKj4mIGRvbnROZWVkQmFycmllcnMsIE5vZGUqIG5vZGUpCiAgICAgewotICAgICAg
ICBpZiAoY291bGRDYXVzZUdDKG5vZGUpKQorICAgICAgICBpZiAoZG9lc0dDKG5vZGUpKQogICAg
ICAgICAgICAgZG9udE5lZWRCYXJyaWVycy5jbGVhcigpOwogCiAgICAgICAgIGlmIChhbGxvY2F0
ZXNGcmVzaE9iamVjdChub2RlKSkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTE4NykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA1
LTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2Z0bG9wdF0g
REZHOjpjbG9iYmVyaXplIHNob3VsZCBiZSBibGluZCB0byB0aGUgZWZmZWN0cyBvZiBHQworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMTY2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9yZWdyZXNz
L2hvaXN0LW1ha2Utcm9wZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvaG9pc3QtbWFrZS1yb3BlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2hvaXN0LW1ha2Utcm9wZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAy
MDE0LTA1LTE5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgW2Z0
bG9wdF0gREZHIGJ5dGVjb2RlIHBhcnNlciBzaG91bGQgdHVybiBHZXRCeUlkIHdpdGggbm90aGlu
ZyBidXQgYSBHZXR0ZXIgc3R1YiBhcyBzdHVmZitoYW5kbGVDYWxsLCBhbmQgaGFuZGxlQ2FsbCBz
aG91bGQgYmUgYWxsb3dlZCB0byBpbmxpbmUgaWYgaXQgd2FudHMgdG8KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvaG9pc3QtbWFrZS1yb3BlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2hvaXN0LW1ha2Utcm9wZS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2hvaXN0LW1ha2Utcm9wZS1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2hvaXN0
LW1ha2Utcm9wZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNl
cHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9ob2lzdC1tYWtlLXJvcGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2hvaXN0LW1ha2Utcm9wZS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9ob2lzdC1tYWtlLXJv
cGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9ob2lzdC1tYWtlLXJvcGUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvaG9pc3QtbWFrZS1yb3BlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2hvaXN0LW1ha2Utcm9wZS5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2hvaXN0LW1ha2Utcm9wZS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiBmb28oYSwgYikgeworICAg
IHZhciByZXN1bHQ7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgICAg
ICByZXN1bHQgPSBhICsgYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitub0lubGluZShmb28p
OworCitmb3IgKHZhciBpID0gMDsgaSA8IDUwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
bygiaGVsbG8gIiwgIndvcmxkISIpOworICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIHdvcmxkISIp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30K
</data>
<flag name="review"
          id="256313"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>