<?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>150511</bug_id>
          
          <creation_ts>2015-10-23 13:03:07 -0700</creation_ts>
          <short_desc>Air needs a late register liveness phase that calls Special::reportUsedRegisters()</short_desc>
          <delta_ts>2015-10-31 16:02:56 -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>
          
          <blocked>150279</blocked>
    
    <blocked>150750</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1136118</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-23 13:03:07 -0700</bug_when>
    <thetext>Otherwise, stackmaps will think that no registers are in use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138103</commentid>
    <comment_count>1</comment_count>
      <attachid>264462</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-30 19:47:17 -0700</bug_when>
    <thetext>Created attachment 264462
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138119</commentid>
    <comment_count>2</comment_count>
      <attachid>264462</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-10-30 22:37:30 -0700</bug_when>
    <thetext>Comment on attachment 264462
the patch

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

LGTM

&gt; Source/JavaScriptCore/b3/air/AirGenerate.cpp:79
&gt; +    recordUsedRegisters(code);

Do we cache the results of the used registers?
If not, maybe a better name would be just reportUsedRegisters like the function name?

&gt; Source/JavaScriptCore/b3/air/AirRecordUsedRegisters.cpp:67
&gt; +

Style: I think we can drop the new lines at the end of the file.

&gt; Source/JavaScriptCore/b3/air/AirRecordUsedRegisters.h:35
&gt; +// This allocates StackSlots to places on the stack. It first allocates the pinned ones in index

Is this really what this phase does?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138122</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-30 23:39:55 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 264462 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=264462&amp;action=review
&gt; 
&gt; LGTM
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/AirGenerate.cpp:79
&gt; &gt; +    recordUsedRegisters(code);
&gt; 
&gt; Do we cache the results of the used registers?
&gt; If not, maybe a better name would be just reportUsedRegisters like the
&gt; function name?

Good point.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/AirRecordUsedRegisters.cpp:67
&gt; &gt; +
&gt; 
&gt; Style: I think we can drop the new lines at the end of the file.

OK.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/AirRecordUsedRegisters.h:35
&gt; &gt; +// This allocates StackSlots to places on the stack. It first allocates the pinned ones in index
&gt; 
&gt; Is this really what this phase does?

Ooops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138227</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-31 16:02:56 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/191845</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264462</attachid>
            <date>2015-10-30 19:47:17 -0700</date>
            <delta_ts>2015-10-30 22:37:30 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12498</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxODM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDE1LTEwLTMwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QWlyIG5lZWRzIGEgbGF0ZSByZWdpc3RlciBsaXZlbmVzcyBwaGFzZSB0aGF0IGNhbGxzIFNwZWNp
YWw6OnJlcG9ydFVzZWRSZWdpc3RlcnMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcyBzdWNoIGEgcGhhc2UuIEluIHRoZSBw
cm9jZXNzIG9mIHdyaXRpbmcgaXQsIEkgd2FzIHJlbWluZGVkIGFib3V0IHRoZQorICAgICAgICBn
bGFyaW5nIGVmZmljaWVuY3kgYnVncyBpbiBBaXI6OkxpdmVuZXNzIGFuZCBzbyBJIGZpbGVkIGEg
YnVnIGFuZCBhZGRlZCBGSVhNRXMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGIzL2Fpci9BaXJBbGxvY2F0ZVN0YWNrLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6YWxsb2NhdGVTdGFjayk6CisgICAgICAgICogYjMv
YWlyL0FpckdlbmVyYXRlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Z2VuZXJhdGUpOgor
ICAgICAgICAqIGIzL2Fpci9BaXJSZWNvcmRVc2VkUmVnaXN0ZXJzLmNwcDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpBaXI6OnJlY29yZFVzZWRSZWdpc3RlcnMpOgorICAgICAgICAqIGIzL2Fp
ci9BaXJSZWNvcmRVc2VkUmVnaXN0ZXJzLmg6IEFkZGVkLgorCiAyMDE1LTEwLTMwICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmVtb3Zpbmcg
RklYTUUgcmVmZXJlbmNpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MDU0MC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxOTE4
MzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzExLDYgKzMxMSw4IEBACiAJCTBGNDI2
QTQ5MTQ2MENCQjcwMDEzMUY4RiAvKiBWaXJ0dWFsUmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDI2QTQ2MTQ2MENCQUIwMDEzMUY4RiAv
KiBWaXJ0dWFsUmVnaXN0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjQyNkE0QjE0NjBDRDZFMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0MjZBNEExNDYw
Q0Q2QjAwMTMxRjhGIC8qIERhdGFGb3JtYXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjQzMTczODE0NkJBQzY5MDA3RTM4OTAgLyogTGlzdGFi
bGVIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjQzMTczNjE0NkJBQzY1MDA3RTM4OTAgLyogTGlzdGFibGVIYW5kbGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY0NTcwM0MxQkU0NUYw
QTAwNjJBNjI5IC8qIEFpclJlY29yZFVzZWRSZWdpc3RlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NTcwM0ExQkU0NUYwQTAwNjJBNjI5IC8q
IEFpclJlY29yZFVzZWRSZWdpc3RlcnMuY3BwICovOyB9OworCQkwRjQ1NzAzRDFCRTQ1RjBBMDA2
MkE2MjkgLyogQWlyUmVjb3JkVXNlZFJlZ2lzdGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NTcwM0IxQkU0NUYwQTAwNjJBNjI5IC8qIEFpclJl
Y29yZFVzZWRSZWdpc3RlcnMuaCAqLzsgfTsKIAkJMEY0NjgwODIxNEJBNTcyRDAwQkZFMjcyIC8q
IEpJVEV4Y2VwdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNDY4MDgwMTRCQTU3MjcwMEJGRTI3MiAvKiBKSVRFeGNlcHRpb25zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0NjgwODMxNEJB
NTczMTAwQkZFMjcyIC8qIEpJVEV4Y2VwdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwN0YxNEJBNTcyNzAwQkZFMjcyIC8qIEpJVEV4
Y2VwdGlvbnMuY3BwICovOyB9OwogCQkwRjQ2ODBBMzE0QkE3RjhEMDBCRkUyNzIgLyogTExJbnRF
eGNlcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjQ2ODA5RTE0QkE3RjgyMDBCRkUyNzIgLyogTExJbnRFeGNlcHRpb25zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIzMjYsNiArMjMyOCw4
IEBACiAJCTBGNDI2QTQ2MTQ2MENCQUIwMDEzMUY4RiAvKiBWaXJ0dWFsUmVnaXN0ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlydHVhbFJlZ2lzdGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDI2QTRBMTQ2MENENkIwMDEzMUY4RiAvKiBEYXRhRm9y
bWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFGb3JtYXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0MzE3MzYxNDZCQUM2NTAwN0UzODkwIC8qIExp
c3RhYmxlSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaXN0YWJs
ZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0NTcwM0ExQkU0NUYw
QTAwNjJBNjI5IC8qIEFpclJlY29yZFVzZWRSZWdpc3RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyUmVjb3JkVXNlZFJlZ2lzdGVycy5jcHA7IHBhdGggPSBi
My9haXIvQWlyUmVjb3JkVXNlZFJlZ2lzdGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGNDU3MDNCMUJFNDVGMEEwMDYyQTYyOSAvKiBBaXJSZWNvcmRVc2VkUmVnaXN0ZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFpclJlY29yZFVzZWRSZWdpc3Rl
cnMuaDsgcGF0aCA9IGIzL2Fpci9BaXJSZWNvcmRVc2VkUmVnaXN0ZXJzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNDY4MDdGMTRCQTU3MjcwMEJGRTI3MiAvKiBKSVRFeGNlcHRp
b25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVEV4Y2VwdGlv
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ2ODA4MDE0QkE1NzI3MDBC
RkUyNzIgLyogSklURXhjZXB0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKSVRFeGNlcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDY4MDlE
MTRCQTdGODIwMEJGRTI3MiAvKiBMTEludEV4Y2VwdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTExJbnRFeGNlcHRpb25zLmNwcDsgcGF0aCA9IGxsaW50L0xM
SW50RXhjZXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDk0LDYg
KzQ0OTgsOCBAQAogCQkJCTBGRUM4NTVEMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJMaXZlbmVzcy5o
ICovLAogCQkJCTBGRUM4NTVFMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJQaGFzZVNjb3BlLmNwcCAq
LywKIAkJCQkwRkVDODU1RjFCREFDREM3MDA4MEZGNzQgLyogQWlyUGhhc2VTY29wZS5oICovLAor
CQkJCTBGNDU3MDNBMUJFNDVGMEEwMDYyQTYyOSAvKiBBaXJSZWNvcmRVc2VkUmVnaXN0ZXJzLmNw
cCAqLywKKwkJCQkwRjQ1NzAzQjFCRTQ1RjBBMDA2MkE2MjkgLyogQWlyUmVjb3JkVXNlZFJlZ2lz
dGVycy5oICovLAogCQkJCTBGRUM4NTYwMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJSZWdpc3RlclBy
aW9yaXR5LmNwcCAqLywKIAkJCQkwRkVDODU2MTFCREFDREM3MDA4MEZGNzQgLyogQWlyUmVnaXN0
ZXJQcmlvcml0eS5oICovLAogCQkJCTBGRUM4NTYyMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJTcGVj
aWFsLmNwcCAqLywKQEAgLTY3NzYsNiArNjc4Miw3IEBACiAJCQkJMEZEOEEzMjYxN0Q1MUY1NzAw
Q0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkMwOTc2QTE0NjhBNkY3MDBDRjI0NDIgLyogREZHT1NSRXhpdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEYyMzVCRUMxNzE3OEU3MzAwNjkwQzdGIC8qIERGR09TUkV4aXRCYXNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjQ1NzAzRDFCRTQ1RjBBMDA2MkE2MjkgLyogQWlyUmVjb3JkVXNl
ZFJlZ2lzdGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGQjkyMUMxNkQwMkYxMTAwNTVBNURC
IC8qIERGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4
NTM1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrU2xvdFZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkMwOTc3MTE0NjkzQUY1MDBDRjI0NDIgLyogREZHT1NSRXhpdENvbXBpbGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTgzNzksNiArODM4Niw3IEBACiAJCQkJNjI3NzREQUExQjhENEIxOTAw
MDZGMDVBIC8qIEZUTEpTVGFpbENhbGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNEZCNzMx
QkM4NDMxNDAwMjVDQTVBIC8qIEZUTExhenlTbG93UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjhGMkI5NTE3MkUwNEEwMDA3REJEQTUgLyogRlRMTGluay5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkwRjQ1NzAzQzFCRTQ1RjBBMDA2MkE2MjkgLyogQWlyUmVjb3JkVXNlZFJlZ2lzdGVycy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNFRkFERjE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9j
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQTBBMEYxNzA1MTNEQjAwQkI3MjJDIC8q
IEZUTExvd2VyREZHVG9MTFZNLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTAwMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVTdGFjay5jcHAJKHJl
dmlzaW9uIDE5MTgzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2Nh
dGVTdGFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw2ICsxNDEsOCBAQCB2b2lkIGFsbG9j
YXRlU3RhY2soQ29kZSYgY29kZSkKICAgICB9CiAKICAgICAvLyBOb3cgd2UgaGFuZGxlIHRoZSBh
bm9ueW1vdXMgc2xvdHMuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0ZWxsIExpdmVuZXNzIHRv
IG9ubHkgdHJhY2sgU3RhY2tTbG90cy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUwNzUxCiAgICAgTGl2ZW5lc3M8QXJnPiBsaXZlbmVzcyhjb2RlKTsK
ICAgICBJbmRleE1hcDxTdGFja1Nsb3QsIEhhc2hTZXQ8U3RhY2tTbG90Kj4+IGludGVyZmVyZW5j
ZShjb2RlLnN0YWNrU2xvdHMoKS5zaXplKCkpOwogICAgIFZlY3RvcjxTdGFja1Nsb3QqPiBzbG90
czsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3Bw
CShyZXZpc2lvbiAxOTE4MzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckdl
bmVyYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFp
ckNvZGUuaCIKICNpbmNsdWRlICJBaXJHZW5lcmF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkFp
ckhhbmRsZUNhbGxlZVNhdmVzLmgiCisjaW5jbHVkZSAiQWlyUmVjb3JkVXNlZFJlZ2lzdGVycy5o
IgogI2luY2x1ZGUgIkFpclNwaWxsRXZlcnl0aGluZy5oIgogI2luY2x1ZGUgIkFpclZhbGlkYXRl
LmgiCiAjaW5jbHVkZSAiQjNDb21tb24uaCIKQEAgLTc1LDkgKzc2LDcgQEAgdm9pZCBnZW5lcmF0
ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVh
bGx5IGhhdmUgYSBjb2RlIGxheW91dCBvcHRpbWl6YXRpb24gaGVyZS4KICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDc4CiAKLSAgICAvLyBGSVhNRTog
V2UgbmVlZCBhIGxhdGUgbGl2ZW5lc3MgYW5hbHlzaXMgb3ZlciByZWdpc3RlcnMgdG8gZmlsbCBp
biB0aGUKLSAgICAvLyBTcGVjaWFsOjpyZXBvcnRVc2VkUmVnaXN0ZXJzKCkuCi0gICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDUxMQorICAgIHJlY29yZFVz
ZWRSZWdpc3RlcnMoY29kZSk7CiAKICAgICBpZiAoc2hvdWxkVmFsaWRhdGVJUigpKQogICAgICAg
ICB2YWxpZGF0ZShjb2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
UmVjb3JkVXNlZFJlZ2lzdGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJSZWNvcmRVc2VkUmVnaXN0ZXJzLmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUmVjb3JkVXNlZFJlZ2lzdGVycy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWlyUmVj
b3JkVXNlZFJlZ2lzdGVycy5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkFp
ckNvZGUuaCIKKyNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgorI2luY2x1ZGUgIkFpckxpdmVu
ZXNzLmgiCisjaW5jbHVkZSAiQWlyUGhhc2VTY29wZS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisKK3ZvaWQgcmVjb3JkVXNlZFJlZ2lzdGVycyhD
b2RlJiBjb2RlKQoreworICAgIFBoYXNlU2NvcGUgcGhhc2VTY29wZShjb2RlLCAicmVjb3JkVXNl
ZFJlZ2lzdGVycyIpOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0ZWxsIGxpdmVuZXNzIHRv
IG9ubHkgdHJhY2sgUmVncy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUwNzUxCisgICAgTGl2ZW5lc3M8VG1wPiBsaXZlbmVzcyhjb2RlKTsKKworICAg
IGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIExpdmVuZXNzPFRtcD46
OkxvY2FsQ2FsYyBsb2NhbENhbGMobGl2ZW5lc3MsIGJsb2NrKTsKKworICAgICAgICBmb3IgKHVu
c2lnbmVkIGluc3RJbmRleCA9IGJsb2NrLT5zaXplKCk7IGluc3RJbmRleC0tOykgeworICAgICAg
ICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpbnN0SW5kZXgpOworICAgICAgICAgICAgaWYg
KGluc3QuaGFzU3BlY2lhbCgpKSB7CisgICAgICAgICAgICAgICAgUmVnaXN0ZXJTZXQgcmVnaXN0
ZXJTZXQ7CisgICAgICAgICAgICAgICAgZm9yIChUbXAgdG1wIDogbG9jYWxDYWxjLmxpdmUoKSkg
eworICAgICAgICAgICAgICAgICAgICBpZiAodG1wLmlzUmVnKCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICByZWdpc3RlclNldC5zZXQodG1wLnJlZygpKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaW5zdC5yZXBvcnRVc2VkUmVnaXN0ZXJzKHJlZ2lzdGVyU2V0KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvY2FsQ2FsYy5leGVjdXRlKGluc3QpOworICAgICAg
ICB9CisgICAgfQorfQorCit9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQjNfSklUKQorCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyUmVjb3JkVXNlZFJlZ2lzdGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyUmVjb3JkVXNlZFJlZ2lzdGVycy5oCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJSZWNvcmRVc2VkUmVnaXN0ZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFpclJlY29yZFVzZWRSZWdpc3RlcnNfaAorI2Rl
ZmluZSBBaXJSZWNvcmRVc2VkUmVnaXN0ZXJzX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKKworY2xhc3MgQ29k
ZTsKKworLy8gVGhpcyBhbGxvY2F0ZXMgU3RhY2tTbG90cyB0byBwbGFjZXMgb24gdGhlIHN0YWNr
LiBJdCBmaXJzdCBhbGxvY2F0ZXMgdGhlIHBpbm5lZCBvbmVzIGluIGluZGV4CisvLyBvcmRlciBh
bmQgdGhlbiBpdCBhbGxvY2F0ZXMgdGhlIHJlc3QgdXNpbmcgZmlyc3QgZml0LgorCit2b2lkIHJl
Y29yZFVzZWRSZWdpc3RlcnMoQ29kZSYpOworCit9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6
QWlyCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQWlyUmVjb3JkVXNl
ZFJlZ2lzdGVyc19oCisK
</data>
<flag name="review"
          id="289589"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>