<?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>152514</bug_id>
          
          <creation_ts>2015-12-22 14:14:41 -0800</creation_ts>
          <short_desc>FTL B3 should be able to run richards</short_desc>
          <delta_ts>2015-12-23 11:21:26 -0800</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>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</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>1150969</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-22 14:14:41 -0800</bug_when>
    <thetext>It doesn&apos;t right now.  It crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150985</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-22 15:38:15 -0800</bug_when>
    <thetext>This looks like a register allocation bug.  A patchpoint is clobbering all volatile registers, but we still use %rdx across the patchpoint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150992</commentid>
    <comment_count>2</comment_count>
      <attachid>267810</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-22 17:11:33 -0800</bug_when>
    <thetext>Created attachment 267810
almost there

Just need to run a few more tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150993</commentid>
    <comment_count>3</comment_count>
      <attachid>267811</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-22 17:22:57 -0800</bug_when>
    <thetext>Created attachment 267811
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150994</commentid>
    <comment_count>4</comment_count>
      <attachid>267811</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-12-22 17:30:22 -0800</bug_when>
    <thetext>Comment on attachment 267811
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150998</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-22 17:39:40 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 267811 [details]
&gt; the patch
&gt; 
&gt; r=me

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151002</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-22 17:51:00 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/194382</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151103</commentid>
    <comment_count>7</comment_count>
      <attachid>267811</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-23 11:21:26 -0800</bug_when>
    <thetext>Comment on attachment 267811
the patch

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

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        The liveness bug was that the code that determined whether we should go around the fixpoint
&gt; +        assumed that BitVector::quickSet() would return true if the bit changed state from false to
&gt; +        true. That&apos;s not how it works. It returns the old value of the bit, so it will return false

Arg, quickSet() is the invert of add() on sets. Good catch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267810</attachid>
            <date>2015-12-22 17:11:33 -0800</date>
            <delta_ts>2015-12-22 17:22:57 -0800</delta_ts>
            <desc>almost there</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10961</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0MzgwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE1LTEyLTIyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBiZSBhYmxlIHRvIHJ1biByaWNoYXJkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNTE0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjYW1lIGRvd24gdG8gYSBsaXZlbmVz
cyBidWcgYW5kIGEgcmVnaXN0ZXIgYWxsb2NhdGlvbiBidWcuCisKKyAgICAgICAgVGhlIGxpdmVu
ZXNzIGJ1ZyB3YXMgdGhhdCB0aGUgY29kZSB0aGF0IGRldGVybWluZWQgd2hldGhlciB3ZSBzaG91
bGQgZ28gYXJvdW5kIHRoZSBmaXhwb2ludAorICAgICAgICBhc3N1bWVkIHRoYXQgQml0VmVjdG9y
OjpxdWlja1NldCgpIHdvdWxkIHJldHVybiB0cnVlIGlmIHRoZSBiaXQgY2hhbmdlZCBzdGF0ZSBm
cm9tIGZhbHNlIHRvCisgICAgICAgIHRydWUuIFRoYXQncyBub3QgaG93IGl0IHdvcmtzLiBJdCBy
ZXR1cm5zIHRoZSBvbGQgdmFsdWUgb2YgdGhlIGJpdCwgc28gaXQgd2lsbCByZXR1cm4gZmFsc2UK
KyAgICAgICAgaWYgdGhlIGJpdCBjaGFuZ2VkIGZyb20gZmFsc2UgdG8gdHJ1ZS4gU2luY2UgdGhl
cmUgaXMgYWxyZWFkeSBhIGxvdCBvZiBjb2RlIHRoYXQgcmVsaWVzIG9uCisgICAgICAgIHRoaXMg
YmVoYXZpb3IsIEkgZml4ZWQgTGl2ZW5lc3MgaW5zdGVhZCBvZiBjaGFuZ2luZyBCaXRWZWN0b3Iu
CisKKyAgICAgICAgVGhlIHJlZ2lzdGVyIGFsbG9jYXRpb24gYnVnIHdhcyB0aGF0IHdlIHdlcmVu
J3QgZ3VhcmRpbmcgc29tZSBjaGVja3Mgb2YgdG1wKCkncyB3aXRoIGNoZWNrcworICAgICAgICB0
aGF0IHRoZSBBcmcgaXNUbXAoKS4KKworICAgICAgICBUaGUgbGl2ZW5lc3MgdG9vayBhIGxvbmcg
dGltZSB0byB0cmFjayBkb3duLCBhbmQgSSBuZWVkZWQgdG8gYWRkIGEgbG90IG9mIGR1bXBpbmcg
dG8gZG8gaXQuCisgICAgICAgIEl0J3Mgbm93IHBvc3NpYmxlIHRvIGR1bXAgbW9yZSBvZiB0aGUg
bGl2ZW5lc3Mgc3RhdGVzLCBpbmNsdWRpbmcgbGl2ZUF0SGVhZC4gSSBmb3VuZCB0aGlzCisgICAg
ICAgIGV4dHJlbWVseSBoZWxwZnVsLCBzbyBJIHJlbW92ZWQgdGhlIGNvZGUgdGhhdCBjbGVhcmVk
IGxpdmVBdEhlYWQuCisKKyAgICAgICAgKiBiMy9haXIvQWlySXRlcmF0ZWRSZWdpc3RlckNvYWxl
c2NpbmcuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJMaXZlbmVzcy5oOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpBYnN0cmFjdExpdmVuZXNzOjpBYnN0cmFjdExpdmVuZXNzKToKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6QWJzdHJhY3RMaXZlbmVzczo6SXRlcmFibGU6Okl0ZXJhYmxlKToKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6QWJzdHJhY3RMaXZlbmVzczo6SXRlcmFibGU6Oml0ZXJhdG9y
OjppdGVyYXRvcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFic3RyYWN0TGl2ZW5lc3M6Okl0
ZXJhYmxlOjppdGVyYXRvcjo6b3BlcmF0b3IqKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QWJz
dHJhY3RMaXZlbmVzczo6SXRlcmFibGU6Oml0ZXJhdG9yOjpvcGVyYXRvcisrKToKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6QWJzdHJhY3RMaXZlbmVzczo6SXRlcmFibGU6Oml0ZXJhdG9yOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QWJzdHJhY3RMaXZlbmVzczo6SXRlcmFi
bGU6Oml0ZXJhdG9yOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QWJzdHJh
Y3RMaXZlbmVzczo6SXRlcmFibGU6OmJlZ2luKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QWJz
dHJhY3RMaXZlbmVzczo6SXRlcmFibGU6OmVuZCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFi
c3RyYWN0TGl2ZW5lc3M6OmxpdmVBdEhlYWQpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBYnN0
cmFjdExpdmVuZXNzOjpsaXZlQXRUYWlsKToKKyAgICAgICAgKiBiMy9haXIvQWlyU3RhY2tTbG90
Lmg6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdDb21t
b24uaDoKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6RlRMOjpjb21waWxlRlRMT1NSRXhpdCk6CisKIDIwMTUtMTItMjIgIFNhYW0gYmFyYXRpICA8
c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xvb3AgYnVpbGQgZml4IGFmdGVyIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1MTEuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckl0ZXJhdGVkUmVnaXN0ZXJDb2FsZXNjaW5nLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckl0ZXJhdGVkUmVn
aXN0ZXJDb2FsZXNjaW5nLmNwcAkocmV2aXNpb24gMTk0MzcyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJJdGVyYXRlZFJlZ2lzdGVyQ29hbGVzY2luZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExOTAsNyArMTE5MCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgLy8g
TW92ZSBpcyB0aGUgY2Fub25pY2FsIHdheSB0byBtb3ZlIGRhdGEgYmV0d2VlbiBHUFJzLgogICAg
ICAgICAgICAgICAgIGJvb2wgZm9yY2VNb3ZlMzJJZkRpZFNwaWxsID0gZmFsc2U7CiAgICAgICAg
ICAgICAgICAgYm9vbCBkaWRTcGlsbCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGlmICh0eXBl
ID09IEFyZzo6R1AgJiYgaW5zdC5vcGNvZGUgPT0gTW92ZSkgeworICAgICAgICAgICAgICAgIGlm
ICh0eXBlID09IEFyZzo6R1AgJiYgaW5zdC5vcGNvZGUgPT0gTW92ZQorICAgICAgICAgICAgICAg
ICAgICAmJiBpbnN0LmFyZ3NbMF0uaXNUbXAoKSAmJiBpbnN0LmFyZ3NbMV0uaXNUbXAoKSkgewog
ICAgICAgICAgICAgICAgICAgICBpZiAobV90bXBXaWR0aC5kZWZXaWR0aChpbnN0LmFyZ3NbMF0u
dG1wKCkpIDw9IEFyZzo6V2lkdGgzMgogICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV90bXBX
aWR0aC51c2VXaWR0aChpbnN0LmFyZ3NbMV0udG1wKCkpIDw9IEFyZzo6V2lkdGgzMikKICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvcmNlTW92ZTMySWZEaWRTcGlsbCA9IHRydWU7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckxpdmVuZXNzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMaXZlbmVzcy5oCShyZXZpc2lvbiAxOTQz
NzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckxpdmVuZXNzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5j
bHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgPHd0Zi9JbmRleFNwYXJzZVNldC5oPgorI2lu
Y2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsg
bmFtZXNwYWNlIEFpciB7CiAKQEAgLTE0MSwxNSArMTQyLDEzIEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICAgICAgdHlwZW5hbWUgQWRhcHRlcjo6SW5kZXhTZXQmIGxpdmVBdFRhaWwgPSBtX2xp
dmVBdFRhaWxbcHJlZGVjZXNzb3JdOwogICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IG5ld1ZhbHVlIDogbV93b3Jrc2V0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGl2
ZUF0VGFpbC5hZGQobmV3VmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGRpcnR5QmxvY2tzLnF1aWNrU2V0KHByZWRlY2Vzc29yLT5pbmRleCgpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoIWRpcnR5QmxvY2tzLnF1aWNrU2V0KHByZWRlY2Vzc29yLT5p
bmRleCgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gd2hpbGUgKGNoYW5nZWQpOwot
Ci0gICAgICAgIG1fbGl2ZUF0SGVhZC5jbGVhcigpOwogICAgIH0KIAogICAgIC8vIFRoaXMgY2Fs
Y3VsYXRvciBoYXMgdG8gYmUgcnVuIGluIHJldmVyc2UuCkBAIC0yNDQsNiArMjQzLDc0IEBAIHB1
YmxpYzoKICAgICAgICAgQmFzaWNCbG9jayogbV9ibG9jazsKICAgICB9OwogCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVW5kZXJseWluZ0l0ZXJhYmxlPgorICAgIGNsYXNzIEl0ZXJhYmxlIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIEl0ZXJhYmxlKEFic3RyYWN0TGl2ZW5lc3MmIGxpdmVuZXNzLCBj
b25zdCBVbmRlcmx5aW5nSXRlcmFibGUmIGl0ZXJhYmxlKQorICAgICAgICAgICAgOiBtX2xpdmVu
ZXNzKGxpdmVuZXNzKQorICAgICAgICAgICAgLCBtX2l0ZXJhYmxlKGl0ZXJhYmxlKQorICAgICAg
ICB7CisgICAgICAgIH0KKworICAgICAgICBjbGFzcyBpdGVyYXRvciB7CisgICAgICAgIHB1Ymxp
YzoKKyAgICAgICAgICAgIGl0ZXJhdG9yKCkKKyAgICAgICAgICAgICAgICA6IG1fbGl2ZW5lc3Mo
bnVsbHB0cikKKyAgICAgICAgICAgICAgICAsIG1faXRlcigpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0ZXJhdG9yKEFic3RyYWN0TGl2
ZW5lc3MmIGxpdmVuZXNzLCB0eXBlbmFtZSBVbmRlcmx5aW5nSXRlcmFibGU6OmNvbnN0X2l0ZXJh
dG9yIGl0ZXIpCisgICAgICAgICAgICAgICAgOiBtX2xpdmVuZXNzKCZsaXZlbmVzcykKKyAgICAg
ICAgICAgICAgICAsIG1faXRlcihpdGVyKQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICB0eXBlbmFtZSBBZGFwdGVyOjpUaGluZyBvcGVyYXRvciooKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBtX2xpdmVuZXNzLT5pbmRleFRvVmFsdWUo
Km1faXRlcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRv
cisrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICArK21faXRlcjsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgQVNTRVJUKG1fbGl2ZW5lc3MgPT0gb3RoZXIubV9saXZlbmVzcyk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1faXRlciA9PSBvdGhlci5tX2l0ZXI7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBpdGVyYXRvciYgb3RoZXIp
IGNvbnN0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0g
b3RoZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBB
YnN0cmFjdExpdmVuZXNzKiBtX2xpdmVuZXNzOworICAgICAgICAgICAgdHlwZW5hbWUgVW5kZXJs
eWluZ0l0ZXJhYmxlOjpjb25zdF9pdGVyYXRvciBtX2l0ZXI7CisgICAgICAgIH07CisKKyAgICAg
ICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcihtX2xpdmVuZXNzLCBt
X2l0ZXJhYmxlLmJlZ2luKCkpOyB9CisgICAgICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0
dXJuIGl0ZXJhdG9yKG1fbGl2ZW5lc3MsIG1faXRlcmFibGUuZW5kKCkpOyB9CisKKyAgICBwcml2
YXRlOgorICAgICAgICBBYnN0cmFjdExpdmVuZXNzJiBtX2xpdmVuZXNzOworICAgICAgICBjb25z
dCBVbmRlcmx5aW5nSXRlcmFibGUmIG1faXRlcmFibGU7CisgICAgfTsKKworICAgIEl0ZXJhYmxl
PFZlY3Rvcjx1bnNpZ25lZD4+IGxpdmVBdEhlYWQoQmFzaWNCbG9jayogYmxvY2spCisgICAgewor
ICAgICAgICByZXR1cm4gSXRlcmFibGU8VmVjdG9yPHVuc2lnbmVkPj4oKnRoaXMsIG1fbGl2ZUF0
SGVhZFtibG9ja10pOworICAgIH0KKworICAgIEl0ZXJhYmxlPHR5cGVuYW1lIEFkYXB0ZXI6Oklu
ZGV4U2V0PiBsaXZlQXRUYWlsKEJhc2ljQmxvY2sqIGJsb2NrKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIEl0ZXJhYmxlPHR5cGVuYW1lIEFkYXB0ZXI6OkluZGV4U2V0PigqdGhpcywgbV9saXZlQXRU
YWlsW2Jsb2NrXSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMb2NhbENh
bGM7CiAgICAgZnJpZW5kIHN0cnVjdCBMb2NhbENhbGM6Okl0ZXJhYmxlOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTdGFja1Nsb3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrU2xvdC5oCShyZXZpc2lvbiAxOTQzNzIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrU2xvdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDksNiArMTA5LDE1IEBAIGlubGluZSBEZWVwU3RhY2tTbG90RHVtcCBkZWVw
RHVtcChjb25zdCAKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCituYW1lc3Bh
Y2UgV1RGIHsKKworaW5saW5lIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBK
U0M6OkIzOjpBaXI6OlN0YWNrU2xvdCogc3RhY2tTbG90KQoreworICAgIG91dC5wcmludCgqc3Rh
Y2tTbG90KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKICNlbmRpZiAvLyBFTkFCTEUoQjNf
SklUKQogCiAjZW5kaWYgLy8gQWlyU3RhY2tTbG90X2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb21tb24uaAkocmV2aXNpb24gMTk0MzcyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAvLyBXZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBh
biBleHBlcmltZW50YWwgdHJhbnNpdGlvbiBmcm9tIExMVk0gdG8gQjMgYXMgdGhlIGJhY2tlbmQg
Zm9yIHRoZSBGVEwuIFdlIGRvbid0CiAvLyB5ZXQga25vdyBob3cgaXQgd2lsbCB0dXJuIG91dC4g
Rm9yIG5vdywgdGhpcyBmbGFnIHdpbGwgY29udHJvbCB3aGV0aGVyIEZUTCB1c2VzIEIzLiBSZW1l
bWJlciB0byBzZXQgdGhpcwogLy8gdG8gMCBiZWZvcmUgY29tbWl0dGluZyEKLSNkZWZpbmUgRlRM
X1VTRVNfQjMgMAorI2RlZmluZSBGVExfVVNFU19CMyAxCiAKIHN0cnVjdCBOb2RlOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3Bw
CShyZXZpc2lvbiAxOTQzNzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4
aXRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyNiw2ICs2MjYsOSBAQCBleHRlcm4g
IkMiIHZvaWQqIGNvbXBpbGVGVExPU1JFeGl0KEV4ZWNTCiAgICAgICAgIGRhdGFMb2coIiAgICBX
aWxsIGFycml2ZSBhdCBleGl0IGZyb20gbGF6eSBzbG93IHBhdGg6ICIsIGV4aXQubV9leGNlcHRp
b25UeXBlID09IEV4Y2VwdGlvblR5cGU6OkxhenlTbG93UGF0aCwgIlxuIik7CiAjZW5kaWYgLy8g
RlRMX1VTRVNfQjMKICAgICAgICAgZGF0YUxvZygiICAgIEV4aXQgdmFsdWVzOiAiLCBleGl0Lm1f
ZGVzY3JpcHRvci0+bV92YWx1ZXMsICJcbiIpOworI2lmIEZUTF9VU0VTX0IzCisgICAgICAgIGRh
dGFMb2coIiAgICBWYWx1ZSByZXBzOiAiLCBsaXN0RHVtcChleGl0Lm1fdmFsdWVSZXBzKSwgIlxu
Iik7CisjZW5kaWYgLy8gRlRMX1VTRVNfQjMKICAgICAgICAgaWYgKCFleGl0Lm1fZGVzY3JpcHRv
ci0+bV9tYXRlcmlhbGl6YXRpb25zLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgZGF0YUxvZygi
ICAgIE1hdGVyaWFsaXphdGlvbnM6XG4iKTsKICAgICAgICAgICAgIGZvciAoRXhpdFRpbWVPYmpl
Y3RNYXRlcmlhbGl6YXRpb24qIG1hdGVyaWFsaXphdGlvbiA6IGV4aXQubV9kZXNjcmlwdG9yLT5t
X21hdGVyaWFsaXphdGlvbnMpCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0MzcyKQorKysgU291cmNlL1dU
Ri9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0xMi0yMiAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEZUTCBCMyBzaG91bGQg
YmUgYWJsZSB0byBydW4gcmljaGFyZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1MjUxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgbGlzdCBkdW1waW5nIGhlbHBlcnMgdG8gd29yayB3
aXRoIGEgYnJvYWRlciBzZXQgb2YgbGlzdCBraW5kcy4KKworICAgICAgICAqIHd0Zi9MaXN0RHVt
cC5oOgorICAgICAgICAoV1RGOjpMaXN0RHVtcDo6ZHVtcCk6CisgICAgICAgIChXVEY6Ok1hcER1
bXA6OmR1bXApOgorICAgICAgICAoV1RGOjpzb3J0ZWRNYXBEdW1wKToKKyAgICAgICAgKFdURjo6
TGlzdER1bXBJbkNvbnRleHQ6OmR1bXApOgorCiAyMDE1LTEyLTIyICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRlRMIEIzIGRvZXMgbm90IGxvZ2ljYWxOb3QgY29y
cmVjdGx5CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9MaXN0RHVtcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL0xpc3REdW1wLmgJKHJldmlzaW9uIDE5NDM3MikKKysrIFNvdXJjZS9XVEYv
d3RmL0xpc3REdW1wLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgog
ICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHsKLSAgICAg
ICAgZm9yICh0eXBlbmFtZSBUOjpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9saXN0LmJlZ2luKCk7
IGl0ZXIgIT0gbV9saXN0LmVuZCgpOyArK2l0ZXIpCisgICAgICAgIGZvciAoYXV0byBpdGVyID0g
bV9saXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9saXN0LmVuZCgpOyArK2l0ZXIpCiAgICAgICAgICAg
ICBvdXQucHJpbnQobV9jb21tYSwgKml0ZXIpOwogICAgIH0KIApAQCAtODQsNyArODQsNyBAQCBw
dWJsaWM6CiAgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAg
ewotICAgICAgICBmb3IgKHR5cGVuYW1lIFQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX21hcC5i
ZWdpbigpOyBpdGVyICE9IG1fbWFwLmVuZCgpOyArK2l0ZXIpCisgICAgICAgIGZvciAoYXV0byBp
dGVyID0gbV9tYXAuYmVnaW4oKTsgaXRlciAhPSBtX21hcC5lbmQoKTsgKytpdGVyKQogICAgICAg
ICAgICAgb3V0LnByaW50KG1fY29tbWEsIGl0ZXItPmtleSwgbV9hcnJvdywgaXRlci0+dmFsdWUp
OwogICAgIH0KICAgICAKQEAgLTEzNSw3ICsxMzUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBDb21wYXJhdG9yCiBDU3RyaW5nIHNvcnRlZE1hcER1bXAoY29uc3QgVCYgbWFwLCBj
b25zdCBDb21wYXJhdG9yJiBjb21wYXJhdG9yLCBjb25zdCBjaGFyKiBhcnJvdyA9ICI9PiIsIGNv
bnN0IGNoYXIqIGNvbW1hID0gIiwgIikKIHsKICAgICBWZWN0b3I8dHlwZW5hbWUgVDo6S2V5VHlw
ZT4ga2V5czsKLSAgICBmb3IgKHR5cGVuYW1lIFQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtYXAu
YmVnaW4oKTsgaXRlciAhPSBtYXAuZW5kKCk7ICsraXRlcikKKyAgICBmb3IgKGF1dG8gaXRlciA9
IG1hcC5iZWdpbigpOyBpdGVyICE9IG1hcC5lbmQoKTsgKytpdGVyKQogICAgICAgICBrZXlzLmFw
cGVuZChpdGVyLT5rZXkpOwogICAgIHN0ZDo6c29ydChrZXlzLmJlZ2luKCksIGtleXMuZW5kKCks
IGNvbXBhcmF0b3IpOwogICAgIFN0cmluZ1ByaW50U3RyZWFtIG91dDsKQEAgLTE1Nyw3ICsxNTcs
NyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
CiAgICAgewotICAgICAgICBmb3IgKHR5cGVuYW1lIFQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBt
X2xpc3QuYmVnaW4oKTsgaXRlciAhPSBtX2xpc3QuZW5kKCk7ICsraXRlcikKKyAgICAgICAgZm9y
IChhdXRvIGl0ZXIgPSBtX2xpc3QuYmVnaW4oKTsgaXRlciAhPSBtX2xpc3QuZW5kKCk7ICsraXRl
cikKICAgICAgICAgICAgIG91dC5wcmludChtX2NvbW1hLCBpbkNvbnRleHQoKml0ZXIsIG1fY29u
dGV4dCkpOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267811</attachid>
            <date>2015-12-22 17:22:57 -0800</date>
            <delta_ts>2015-12-22 17:30:22 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10344</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0MzgwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE1LTEyLTIyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBiZSBhYmxlIHRvIHJ1biByaWNoYXJkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNTE0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjYW1lIGRvd24gdG8gYSBsaXZlbmVz
cyBidWcgYW5kIGEgcmVnaXN0ZXIgYWxsb2NhdGlvbiBidWcuCisKKyAgICAgICAgVGhlIGxpdmVu
ZXNzIGJ1ZyB3YXMgdGhhdCB0aGUgY29kZSB0aGF0IGRldGVybWluZWQgd2hldGhlciB3ZSBzaG91
bGQgZ28gYXJvdW5kIHRoZSBmaXhwb2ludAorICAgICAgICBhc3N1bWVkIHRoYXQgQml0VmVjdG9y
OjpxdWlja1NldCgpIHdvdWxkIHJldHVybiB0cnVlIGlmIHRoZSBiaXQgY2hhbmdlZCBzdGF0ZSBm
cm9tIGZhbHNlIHRvCisgICAgICAgIHRydWUuIFRoYXQncyBub3QgaG93IGl0IHdvcmtzLiBJdCBy
ZXR1cm5zIHRoZSBvbGQgdmFsdWUgb2YgdGhlIGJpdCwgc28gaXQgd2lsbCByZXR1cm4gZmFsc2UK
KyAgICAgICAgaWYgdGhlIGJpdCBjaGFuZ2VkIGZyb20gZmFsc2UgdG8gdHJ1ZS4gU2luY2UgdGhl
cmUgaXMgYWxyZWFkeSBhIGxvdCBvZiBjb2RlIHRoYXQgcmVsaWVzIG9uCisgICAgICAgIHRoaXMg
YmVoYXZpb3IsIEkgZml4ZWQgTGl2ZW5lc3MgaW5zdGVhZCBvZiBjaGFuZ2luZyBCaXRWZWN0b3Iu
CisKKyAgICAgICAgVGhlIHJlZ2lzdGVyIGFsbG9jYXRpb24gYnVnIHdhcyB0aGF0IHdlIHdlcmVu
J3QgZ3VhcmRpbmcgc29tZSBjaGVja3Mgb2YgdG1wKCkncyB3aXRoIGNoZWNrcworICAgICAgICB0
aGF0IHRoZSBBcmcgaXNUbXAoKS4KKworICAgICAgICBUaGUgbGl2ZW5lc3MgdG9vayBhIGxvbmcg
dGltZSB0byB0cmFjayBkb3duLCBhbmQgSSBuZWVkZWQgdG8gYWRkIGEgbG90IG9mIGR1bXBpbmcg
dG8gZG8gaXQuCisgICAgICAgIEl0J3Mgbm93IHBvc3NpYmxlIHRvIGR1bXAgbW9yZSBvZiB0aGUg
bGl2ZW5lc3Mgc3RhdGVzLCBpbmNsdWRpbmcgbGl2ZUF0SGVhZC4gSSBmb3VuZCB0aGlzCisgICAg
ICAgIGV4dHJlbWVseSBoZWxwZnVsLCBzbyBJIHJlbW92ZWQgdGhlIGNvZGUgdGhhdCBjbGVhcmVk
IGxpdmVBdEhlYWQuCisKKyAgICAgICAgKiBiMy9haXIvQWlySXRlcmF0ZWRSZWdpc3RlckNvYWxl
c2NpbmcuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJMaXZlbmVzcy5oOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpBYnN0cmFjdExpdmVuZXNzOjpBYnN0cmFjdExpdmVuZXNzKToKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6QWJzdHJhY3RMaXZlbmVzczo6SXRlcmFibGU6Okl0ZXJhYmxlKToKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6QWJzdHJhY3RMaXZlbmVzczo6SXRlcmFibGU6Oml0ZXJhdG9y
OjppdGVyYXRvcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFic3RyYWN0TGl2ZW5lc3M6Okl0
ZXJhYmxlOjppdGVyYXRvcjo6b3BlcmF0b3IqKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QWJz
dHJhY3RMaXZlbmVzczo6SXRlcmFibGU6Oml0ZXJhdG9yOjpvcGVyYXRvcisrKToKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6QWJzdHJhY3RMaXZlbmVzczo6SXRlcmFibGU6Oml0ZXJhdG9yOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QWJzdHJhY3RMaXZlbmVzczo6SXRlcmFi
bGU6Oml0ZXJhdG9yOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QWJzdHJh
Y3RMaXZlbmVzczo6SXRlcmFibGU6OmJlZ2luKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QWJz
dHJhY3RMaXZlbmVzczo6SXRlcmFibGU6OmVuZCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFi
c3RyYWN0TGl2ZW5lc3M6OmxpdmVBdEhlYWQpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBYnN0
cmFjdExpdmVuZXNzOjpsaXZlQXRUYWlsKToKKyAgICAgICAgKiBiMy9haXIvQWlyU3RhY2tTbG90
Lmg6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGZ0bC9GVExPU1JF
eGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGVGVExPU1JFeGl0KToK
KwogMjAxNS0xMi0yMiAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDbG9vcCBidWlsZCBmaXggYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MjUxMS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySXRl
cmF0ZWRSZWdpc3RlckNvYWxlc2NpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlySXRlcmF0ZWRSZWdpc3RlckNvYWxlc2NpbmcuY3BwCShyZXZpc2lv
biAxOTQzNzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckl0ZXJhdGVkUmVn
aXN0ZXJDb2FsZXNjaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5MCw3ICsxMTkwLDggQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAvLyBNb3ZlIGlzIHRoZSBjYW5vbmljYWwgd2F5IHRv
IG1vdmUgZGF0YSBiZXR3ZWVuIEdQUnMuCiAgICAgICAgICAgICAgICAgYm9vbCBmb3JjZU1vdmUz
MklmRGlkU3BpbGwgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBib29sIGRpZFNwaWxsID0gZmFs
c2U7Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gQXJnOjpHUCAmJiBpbnN0Lm9wY29kZSA9
PSBNb3ZlKSB7CisgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gQXJnOjpHUCAmJiBpbnN0Lm9w
Y29kZSA9PSBNb3ZlCisgICAgICAgICAgICAgICAgICAgICYmIGluc3QuYXJnc1swXS5pc1RtcCgp
ICYmIGluc3QuYXJnc1sxXS5pc1RtcCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX3Rt
cFdpZHRoLmRlZldpZHRoKGluc3QuYXJnc1swXS50bXAoKSkgPD0gQXJnOjpXaWR0aDMyCiAgICAg
ICAgICAgICAgICAgICAgICAgICB8fCBtX3RtcFdpZHRoLnVzZVdpZHRoKGluc3QuYXJnc1sxXS50
bXAoKSkgPD0gQXJnOjpXaWR0aDMyKQogICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VNb3Zl
MzJJZkRpZFNwaWxsID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTGl2ZW5lc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckxpdmVuZXNzLmgJKHJldmlzaW9uIDE5NDM3MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyTGl2ZW5lc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVk
ZSA8d3RmL0luZGV4U3BhcnNlU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTQxLDE1
ICsxNDIsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBBZGFwdGVy
OjpJbmRleFNldCYgbGl2ZUF0VGFpbCA9IG1fbGl2ZUF0VGFpbFtwcmVkZWNlc3Nvcl07CiAgICAg
ICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgbmV3VmFsdWUgOiBtX3dvcmtzZXQpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXZlQXRUYWlsLmFkZChuZXdWYWx1ZSkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlydHlCbG9ja3MucXVpY2tTZXQocHJlZGVj
ZXNzb3ItPmluZGV4KCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZGlydHlC
bG9ja3MucXVpY2tTZXQocHJlZGVjZXNzb3ItPmluZGV4KCkpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICAgICAgfSB3aGlsZSAoY2hhbmdlZCk7Ci0KLSAgICAgICAgbV9saXZlQXRIZWFkLmNsZWFy
KCk7CiAgICAgfQogCiAgICAgLy8gVGhpcyBjYWxjdWxhdG9yIGhhcyB0byBiZSBydW4gaW4gcmV2
ZXJzZS4KQEAgLTI0NCw2ICsyNDMsNzQgQEAgcHVibGljOgogICAgICAgICBCYXNpY0Jsb2NrKiBt
X2Jsb2NrOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVbmRlcmx5aW5nSXRlcmFi
bGU+CisgICAgY2xhc3MgSXRlcmFibGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgSXRlcmFibGUo
QWJzdHJhY3RMaXZlbmVzcyYgbGl2ZW5lc3MsIGNvbnN0IFVuZGVybHlpbmdJdGVyYWJsZSYgaXRl
cmFibGUpCisgICAgICAgICAgICA6IG1fbGl2ZW5lc3MobGl2ZW5lc3MpCisgICAgICAgICAgICAs
IG1faXRlcmFibGUoaXRlcmFibGUpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGNs
YXNzIGl0ZXJhdG9yIHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgaXRlcmF0b3IoKQor
ICAgICAgICAgICAgICAgIDogbV9saXZlbmVzcyhudWxscHRyKQorICAgICAgICAgICAgICAgICwg
bV9pdGVyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgaXRlcmF0b3IoQWJzdHJhY3RMaXZlbmVzcyYgbGl2ZW5lc3MsIHR5cGVuYW1lIFVu
ZGVybHlpbmdJdGVyYWJsZTo6Y29uc3RfaXRlcmF0b3IgaXRlcikKKyAgICAgICAgICAgICAgICA6
IG1fbGl2ZW5lc3MoJmxpdmVuZXNzKQorICAgICAgICAgICAgICAgICwgbV9pdGVyKGl0ZXIpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHR5cGVuYW1lIEFkYXB0
ZXI6OlRoaW5nIG9wZXJhdG9yKigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIG1fbGl2ZW5lc3MtPmluZGV4VG9WYWx1ZSgqbV9pdGVyKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaXRlcmF0b3ImIG9wZXJhdG9yKysoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICsrbV9pdGVyOworICAgICAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBv
dGhlcikgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQobV9saXZl
bmVzcyA9PSBvdGhlci5tX2xpdmVuZXNzKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9pdGVy
ID09IG90aGVyLm1faXRlcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgIEFic3RyYWN0TGl2ZW5lc3MqIG1fbGl2ZW5lc3M7
CisgICAgICAgICAgICB0eXBlbmFtZSBVbmRlcmx5aW5nSXRlcmFibGU6OmNvbnN0X2l0ZXJhdG9y
IG1faXRlcjsKKyAgICAgICAgfTsKKworICAgICAgICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsg
cmV0dXJuIGl0ZXJhdG9yKG1fbGl2ZW5lc3MsIG1faXRlcmFibGUuYmVnaW4oKSk7IH0KKyAgICAg
ICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gaXRlcmF0b3IobV9saXZlbmVzcywgbV9p
dGVyYWJsZS5lbmQoKSk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIEFic3RyYWN0TGl2ZW5l
c3MmIG1fbGl2ZW5lc3M7CisgICAgICAgIGNvbnN0IFVuZGVybHlpbmdJdGVyYWJsZSYgbV9pdGVy
YWJsZTsKKyAgICB9OworCisgICAgSXRlcmFibGU8VmVjdG9yPHVuc2lnbmVkPj4gbGl2ZUF0SGVh
ZChCYXNpY0Jsb2NrKiBibG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBJdGVyYWJsZTxWZWN0
b3I8dW5zaWduZWQ+PigqdGhpcywgbV9saXZlQXRIZWFkW2Jsb2NrXSk7CisgICAgfQorCisgICAg
SXRlcmFibGU8dHlwZW5hbWUgQWRhcHRlcjo6SW5kZXhTZXQ+IGxpdmVBdFRhaWwoQmFzaWNCbG9j
ayogYmxvY2spCisgICAgeworICAgICAgICByZXR1cm4gSXRlcmFibGU8dHlwZW5hbWUgQWRhcHRl
cjo6SW5kZXhTZXQ+KCp0aGlzLCBtX2xpdmVBdFRhaWxbYmxvY2tdKTsKKyAgICB9CisKIHByaXZh
dGU6CiAgICAgZnJpZW5kIGNsYXNzIExvY2FsQ2FsYzsKICAgICBmcmllbmQgc3RydWN0IExvY2Fs
Q2FsYzo6SXRlcmFibGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0
YWNrU2xvdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
U3RhY2tTbG90LmgJKHJldmlzaW9uIDE5NDM3MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyU3RhY2tTbG90LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw2ICsxMDksMTUgQEAg
aW5saW5lIERlZXBTdGFja1Nsb3REdW1wIGRlZXBEdW1wKGNvbnN0IAogCiB9IH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpCMzo6QWlyCiAKK25hbWVzcGFjZSBXVEYgeworCitpbmxpbmUgdm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQzo6QjM6OkFpcjo6U3RhY2tTbG90KiBzdGFj
a1Nsb3QpCit7CisgICAgb3V0LnByaW50KCpzdGFja1Nsb3QpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXVEYKKwogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCiAKICNlbmRpZiAvLyBBaXJTdGFja1Ns
b3RfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENv
bXBpbGVyLmNwcAkocmV2aXNpb24gMTk0MzcyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjYsNiArNjI2LDkg
QEAgZXh0ZXJuICJDIiB2b2lkKiBjb21waWxlRlRMT1NSRXhpdChFeGVjUwogICAgICAgICBkYXRh
TG9nKCIgICAgV2lsbCBhcnJpdmUgYXQgZXhpdCBmcm9tIGxhenkgc2xvdyBwYXRoOiAiLCBleGl0
Lm1fZXhjZXB0aW9uVHlwZSA9PSBFeGNlcHRpb25UeXBlOjpMYXp5U2xvd1BhdGgsICJcbiIpOwog
I2VuZGlmIC8vIEZUTF9VU0VTX0IzCiAgICAgICAgIGRhdGFMb2coIiAgICBFeGl0IHZhbHVlczog
IiwgZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVzLCAiXG4iKTsKKyNpZiBGVExfVVNFU19CMwor
ICAgICAgICBkYXRhTG9nKCIgICAgVmFsdWUgcmVwczogIiwgbGlzdER1bXAoZXhpdC5tX3ZhbHVl
UmVwcyksICJcbiIpOworI2VuZGlmIC8vIEZUTF9VU0VTX0IzCiAgICAgICAgIGlmICghZXhpdC5t
X2Rlc2NyaXB0b3ItPm1fbWF0ZXJpYWxpemF0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
IGRhdGFMb2coIiAgICBNYXRlcmlhbGl6YXRpb25zOlxuIik7CiAgICAgICAgICAgICBmb3IgKEV4
aXRUaW1lT2JqZWN0TWF0ZXJpYWxpemF0aW9uKiBtYXRlcmlhbGl6YXRpb24gOiBleGl0Lm1fZGVz
Y3JpcHRvci0+bV9tYXRlcmlhbGl6YXRpb25zKQpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDM3MikKKysr
IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTUtMTItMjIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBGVEwg
QjMgc2hvdWxkIGJlIGFibGUgdG8gcnVuIHJpY2hhcmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1MTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgdGhlIGxpc3QgZHVtcGluZyBoZWxwZXJz
IHRvIHdvcmsgd2l0aCBhIGJyb2FkZXIgc2V0IG9mIGxpc3Qga2luZHMuCisKKyAgICAgICAgKiB3
dGYvTGlzdER1bXAuaDoKKyAgICAgICAgKFdURjo6TGlzdER1bXA6OmR1bXApOgorICAgICAgICAo
V1RGOjpNYXBEdW1wOjpkdW1wKToKKyAgICAgICAgKFdURjo6c29ydGVkTWFwRHVtcCk6CisgICAg
ICAgIChXVEY6Okxpc3REdW1wSW5Db250ZXh0OjpkdW1wKToKKwogMjAxNS0xMi0yMiAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEZUTCBCMyBkb2VzIG5vdCBsb2dp
Y2FsTm90IGNvcnJlY3RseQpJbmRleDogU291cmNlL1dURi93dGYvTGlzdER1bXAuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9MaXN0RHVtcC5oCShyZXZpc2lvbiAxOTQzNzIpCisrKyBT
b3VyY2UvV1RGL3d0Zi9MaXN0RHVtcC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBA
IHB1YmxpYzoKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIGZvciAodHlwZW5hbWUgVDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fbGlz
dC5iZWdpbigpOyBpdGVyICE9IG1fbGlzdC5lbmQoKTsgKytpdGVyKQorICAgICAgICBmb3IgKGF1
dG8gaXRlciA9IG1fbGlzdC5iZWdpbigpOyBpdGVyICE9IG1fbGlzdC5lbmQoKTsgKytpdGVyKQog
ICAgICAgICAgICAgb3V0LnByaW50KG1fY29tbWEsICppdGVyKTsKICAgICB9CiAKQEAgLTg0LDcg
Kzg0LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBj
b25zdAogICAgIHsKLSAgICAgICAgZm9yICh0eXBlbmFtZSBUOjpjb25zdF9pdGVyYXRvciBpdGVy
ID0gbV9tYXAuYmVnaW4oKTsgaXRlciAhPSBtX21hcC5lbmQoKTsgKytpdGVyKQorICAgICAgICBm
b3IgKGF1dG8gaXRlciA9IG1fbWFwLmJlZ2luKCk7IGl0ZXIgIT0gbV9tYXAuZW5kKCk7ICsraXRl
cikKICAgICAgICAgICAgIG91dC5wcmludChtX2NvbW1hLCBpdGVyLT5rZXksIG1fYXJyb3csIGl0
ZXItPnZhbHVlKTsKICAgICB9CiAgICAgCkBAIC0xMzUsNyArMTM1LDcgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgQ29tcGFyYXRvcgogQ1N0cmluZyBzb3J0ZWRNYXBEdW1wKGNvbnN0
IFQmIG1hcCwgY29uc3QgQ29tcGFyYXRvciYgY29tcGFyYXRvciwgY29uc3QgY2hhciogYXJyb3cg
PSAiPT4iLCBjb25zdCBjaGFyKiBjb21tYSA9ICIsICIpCiB7CiAgICAgVmVjdG9yPHR5cGVuYW1l
IFQ6OktleVR5cGU+IGtleXM7Ci0gICAgZm9yICh0eXBlbmFtZSBUOjpjb25zdF9pdGVyYXRvciBp
dGVyID0gbWFwLmJlZ2luKCk7IGl0ZXIgIT0gbWFwLmVuZCgpOyArK2l0ZXIpCisgICAgZm9yIChh
dXRvIGl0ZXIgPSBtYXAuYmVnaW4oKTsgaXRlciAhPSBtYXAuZW5kKCk7ICsraXRlcikKICAgICAg
ICAga2V5cy5hcHBlbmQoaXRlci0+a2V5KTsKICAgICBzdGQ6OnNvcnQoa2V5cy5iZWdpbigpLCBr
ZXlzLmVuZCgpLCBjb21wYXJhdG9yKTsKICAgICBTdHJpbmdQcmludFN0cmVhbSBvdXQ7CkBAIC0x
NTcsNyArMTU3LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogICAgIHsKLSAgICAgICAgZm9yICh0eXBlbmFtZSBUOjpjb25zdF9pdGVyYXRv
ciBpdGVyID0gbV9saXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9saXN0LmVuZCgpOyArK2l0ZXIpCisg
ICAgICAgIGZvciAoYXV0byBpdGVyID0gbV9saXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9saXN0LmVu
ZCgpOyArK2l0ZXIpCiAgICAgICAgICAgICBvdXQucHJpbnQobV9jb21tYSwgaW5Db250ZXh0KCpp
dGVyLCBtX2NvbnRleHQpKTsKICAgICB9CiAK
</data>
<flag name="review"
          id="292816"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>