<?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>152579</bug_id>
          
          <creation_ts>2015-12-28 17:55:02 -0800</creation_ts>
          <short_desc>FTL B3 should be able to run all of the old V8v7 tests</short_desc>
          <delta_ts>2016-01-01 22:04:12 -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>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>1151500</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-28 17:55:02 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151501</commentid>
    <comment_count>1</comment_count>
      <attachid>267970</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-28 18:00:10 -0800</bug_when>
    <thetext>Created attachment 267970
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151511</commentid>
    <comment_count>2</comment_count>
      <attachid>267974</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-28 20:06:32 -0800</bug_when>
    <thetext>Created attachment 267974
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151512</commentid>
    <comment_count>3</comment_count>
      <attachid>267975</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-28 20:07:22 -0800</bug_when>
    <thetext>Created attachment 267975
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151513</commentid>
    <comment_count>4</comment_count>
      <attachid>267976</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-28 20:08:23 -0800</bug_when>
    <thetext>Created attachment 267976
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151514</commentid>
    <comment_count>5</comment_count>
      <attachid>267977</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-28 20:08:59 -0800</bug_when>
    <thetext>Created attachment 267977
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151515</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-28 20:11:12 -0800</bug_when>
    <thetext>Attachment 267977 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLB3Output.h:192:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 7 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>1151519</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-28 20:30:26 -0800</bug_when>
    <thetext>With these fixes, we can almost run all of Octane.  The missing piece is some binary snippet that pdfjs uses.


Benchmark report for SunSpider and Octane on shakezilla (MacBookPro11,3).

VMs tested:
&quot;Conf#1&quot; at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r194431)
&quot;Conf#2&quot; at /Volumes/Data/quartary/OpenSource/WebKitBuild/Release/jsc (r194431)

Collected 6 samples per benchmark/VM, with 6 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                          Conf#1                    Conf#2                                      
SunSpider:
   3d-cube                            4.7627+-0.2505            4.7311+-0.3383        
   3d-morph                           5.4824+-0.1328            5.3780+-0.1186          might be 1.0194x faster
   3d-raytrace                        5.2353+-0.1183     ?      5.3410+-0.0713        ? might be 1.0202x slower
   access-binary-trees                2.2360+-0.1027     ?      2.2848+-0.1606        ? might be 1.0218x slower
   access-fannkuch                    5.6672+-0.3503            5.6071+-0.3714          might be 1.0107x faster
   access-nbody                       2.5324+-0.0460     ?      2.9852+-0.6937        ? might be 1.1788x slower
   access-nsieve                      3.3470+-0.2375     ?      3.4620+-0.1418        ? might be 1.0343x slower
   bitops-3bit-bits-in-byte           1.1838+-0.0156            1.1731+-0.0285        
   bitops-bits-in-byte                3.1543+-0.0775     ?      3.1703+-0.0339        ?
   bitops-bitwise-and                 2.0222+-0.0505     ?      2.1941+-0.3710        ? might be 1.0850x slower
   bitops-nsieve-bits                 3.0497+-0.0535     ?      3.1704+-0.2097        ? might be 1.0396x slower
   controlflow-recursive              2.4990+-0.2380            2.4720+-0.2172          might be 1.0109x faster
   crypto-aes                         4.1477+-0.1653     ?      4.6705+-1.3541        ? might be 1.1261x slower
   crypto-md5                         2.8105+-0.8127            2.6470+-0.1065          might be 1.0618x faster
   crypto-sha1                        2.3752+-0.0793     ?      2.4100+-0.1073        ? might be 1.0146x slower
   date-format-tofte                  7.1764+-0.2404            6.9337+-0.4981          might be 1.0350x faster
   date-format-xparb                  4.8194+-0.4084            4.7233+-0.1740          might be 1.0203x faster
   math-cordic                        2.9875+-0.1005            2.9228+-0.0397          might be 1.0222x faster
   math-partial-sums                  4.8293+-0.1177            4.7778+-0.0920          might be 1.0108x faster
   math-spectral-norm                 1.9503+-0.0339     ?      1.9633+-0.0057        ?
   regexp-dna                         6.1565+-0.2353            6.0293+-0.0857          might be 1.0211x faster
   string-base64                      4.5140+-0.2303     ?      4.5533+-0.1427        ?
   string-fasta                       6.1608+-0.5222            5.6602+-0.0546          might be 1.0885x faster
   string-tagcloud                    8.0947+-0.4238            7.8454+-0.1006          might be 1.0318x faster
   string-unpack-code                18.3186+-0.4630     ?     18.8571+-1.9620        ? might be 1.0294x slower
   string-validate-input              5.2292+-2.3270            4.3978+-0.1639          might be 1.1890x faster

   &lt;arithmetic&gt;                       4.6439+-0.0608            4.6292+-0.1105          might be 1.0032x faster

                                          Conf#1                    Conf#2                                      
Octane:
   encrypt                           0.15747+-0.00375    !     0.18074+-0.00209       ! definitely 1.1478x slower
   decrypt                           2.89590+-0.02773    !     3.22444+-0.04698       ! definitely 1.1135x slower
   deltablue                x2       0.13536+-0.00260    !     0.15556+-0.00897       ! definitely 1.1492x slower
   earley                            0.28128+-0.00260    ?     0.28321+-0.00157       ?
   boyer                             4.27392+-0.03602    !     4.39448+-0.06543       ! definitely 1.0282x slower
   navier-stokes            x2       4.82600+-0.03717    !     4.94272+-0.03744       ! definitely 1.0242x slower
   raytrace                 x2       0.85101+-0.00512    !     0.88857+-0.00483       ! definitely 1.0441x slower
   richards                 x2       0.08786+-0.00150    !     0.10193+-0.00157       ! definitely 1.1601x slower
   splay                    x2       0.35165+-0.00142    ?     0.35598+-0.00756       ? might be 1.0123x slower
   regexp                   x2      24.35582+-0.26063         24.28389+-0.26061       
   pdfjs                    x2      38.20492+-0.56883               ERROR             
   mandreel                 x2      43.39686+-0.63562    !    54.05068+-0.41852       ! definitely 1.2455x slower
   gbemu                    x2      29.29804+-0.22415    ?    33.68748+-4.19246       ? might be 1.1498x slower
   closure                           0.58824+-0.00600    ?     0.58916+-0.00412       ?
   jquery                            7.39158+-0.08692    ?     7.43347+-0.05415       ?
   box2d                    x2       9.19709+-0.16573    ?     9.34087+-0.08174       ? might be 1.0156x slower
   zlib                     x2     378.24365+-20.14061   ?   402.73398+-7.39207       ? might be 1.0647x slower
   typescript               x2     672.37345+-11.21920       658.66976+-5.46906         might be 1.0208x faster

   &lt;geometric&gt;                       5.30050+-0.02704               ERROR             

                                          Conf#1                    Conf#2                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                   15.6889+-0.1093                ERROR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151853</commentid>
    <comment_count>8</comment_count>
      <attachid>267977</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-01-01 11:29:54 -0800</bug_when>
    <thetext>Comment on attachment 267977
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151914</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-01 22:04:12 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/194493</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267970</attachid>
            <date>2015-12-28 18:00:10 -0800</date>
            <delta_ts>2015-12-28 20:06:32 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>4216</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NDMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE1LTEyLTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TW92ZSAwLCAldG1wIHNob3VsZCB0dXJuIGludG8gTW92ZTMyIGlmIHRoZSAldG1wIGlzIHNwaWxs
ZWQgd2l0aCBXaWR0aDMyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTI1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJUkMncyBhbmFseXNpcyBvZiB3aGVuIHRvIHR1cm4gYSBNb3ZlIGludG8gYSBNb3Zl
MzIgd2hlbiBzcGlsbGluZyBpcyBiYXNlZCBvbiB0aGUgcHJlbWlzZQorICAgICAgICB0aGF0IGlm
IHRoZSBkc3QgaGFzIGEgMzItYml0IGRlZiB3aWR0aCwgdGhlbiB0aGUgc3JjIG11c3QgYWxzbyBo
YXZlIGEgMzItYml0IGRlZiB3aWR0aC4gQnV0CisgICAgICAgIHRoYXQgZG9lc24ndCBoYXBwZW4g
aWYgdGhlIHNyYyBpcyBhbiBpbW1lZGlhdGUuCisKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoYXQg
Y29uZGl0aW9uIGluIElSQyB0byB1c2UgdGhlIGNvbWJpbmVkIHVzZS9kZWYgd2lkdGggb2YgYm90
aCBzcmMgYW5kIGRzdAorICAgICAgICByYXRoZXIgdGhhbiBiZWluZyBjbGV2ZXIuIFRoaXMgaXMg
Z3JlYXQgYmVjYXVzZSBpdCdzIHRoZSBjb21iaW5lZCB3aWR0aCB0aGF0IGRldGVybWluZXMgdGhl
CisgICAgICAgIHNpemUgb2YgdGhlIHNwaWxsIHNsb3QuCisKKyAgICAgICAgQWxzbyBhZGRlZCBz
b21lIG1vcmUgZGVidWcgc3VwcG9ydCB0byBUbXBXaWR0aC4KKworICAgICAgICBOb3cgVjgvZGVj
cnlwdCBydW5zLiBJdCB3YXMgcHJldmlvdXNseSBmYWlsaW5nIGJlY2F1c2UgYSBNb3ZlIDAsICV0
bXAgd291bGQgY2xlYXIgc29tZSBiaXRzCisgICAgICAgIGFib3ZlIHdoZXJlICVtcCB3YXMgc3Bp
bGxlZCwgd2hpY2ggc2V0IG9uZSBvZiB0aGUgbG9jYWxzIGluIHRoZSBibnBGcm9tU3RyaW5nKCkg
dG8gemVybyBldmVuCisgICAgICAgIHRob3VnaCBpdCBoYWQgc29tZSBub24tdHJpdmlhbCB2YWx1
ZS4KKworICAgICAgICAqIGIzL2Fpci9BaXJJdGVyYXRlZFJlZ2lzdGVyQ29hbGVzY2luZy5jcHA6
CisgICAgICAgICogYjMvYWlyL0FpclRtcFdpZHRoLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6VG1wV2lkdGg6OnJlY29tcHV0ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlRtcFdpZHRo
OjpXaWR0aHM6OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJUbXBXaWR0aC5oOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpUbXBXaWR0aDo6V2lkdGhzOjpXaWR0aHMpOgorCiAyMDE1LTEyLTI3
ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRlRMIEIzIHNob3Vs
ZCBrbm93IHRoYXQgdXNlZCByZWdpc3RlcnMgYXJlIG5vdCB0aGUgc2FtZSB0aGluZyBhcyB1c2Vk
IHJlZ2lzdGVycy4gUmVuYW1lIHRoZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJJdGVyYXRlZFJlZ2lzdGVyQ29hbGVzY2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJdGVyYXRlZFJlZ2lzdGVyQ29hbGVzY2luZy5jcHAJ
KHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySXRl
cmF0ZWRSZWdpc3RlckNvYWxlc2NpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTkzLDggKzEx
OTMsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJvb2wgZm9yY2VNb3ZlMzJJZkRpZFNw
aWxsID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYm9vbCBkaWRTcGlsbCA9IGZhbHNlOwogICAg
ICAgICAgICAgICAgIGlmICh0eXBlID09IEFyZzo6R1AgJiYgaW5zdC5vcGNvZGUgPT0gTW92ZSkg
ewotICAgICAgICAgICAgICAgICAgICBpZiAoKGluc3QuYXJnc1swXS5pc1RtcCgpICYmIG1fdG1w
V2lkdGguZGVmV2lkdGgoaW5zdC5hcmdzWzBdLnRtcCgpKSA8PSBBcmc6OldpZHRoMzIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICB8fCAoaW5zdC5hcmdzWzFdLmlzVG1wKCkgJiYgbV90bXBXaWR0
aC51c2VXaWR0aChpbnN0LmFyZ3NbMV0udG1wKCkpIDw9IEFyZzo6V2lkdGgzMikpCisgICAgICAg
ICAgICAgICAgICAgIGlmICgoaW5zdC5hcmdzWzBdLmlzVG1wKCkgJiYgbV90bXBXaWR0aC53aWR0
aChpbnN0LmFyZ3NbMF0udG1wKCkpIDw9IEFyZzo6V2lkdGgzMikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHx8IChpbnN0LmFyZ3NbMV0uaXNUbXAoKSAmJiBtX3RtcFdpZHRoLndpZHRoKGluc3Qu
YXJnc1sxXS50bXAoKSkgPD0gQXJnOjpXaWR0aDMyKSkKICAgICAgICAgICAgICAgICAgICAgICAg
IGZvcmNlTW92ZTMySWZEaWRTcGlsbCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclRtcFdpZHRoLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclRtcFdpZHRoLmNwcAkocmV2aXNp
b24gMTk0NDMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFpckNvZGUu
aCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5o
PgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAg
LTUwLDYgKzUxLDEzIEBAIHZvaWQgVG1wV2lkdGg6OnJlY29tcHV0ZShDb2RlJiBjb2RlKQogewog
ICAgIC8vIFNldCB0aGlzIHRvIHRydWUgdG8gY2F1c2UgdGhpcyBhbmFseXNpcyB0byBhbHdheXMg
cmV0dXJuIHBlc3NpbWlzdGljIHJlc3VsdHMuCiAgICAgY29uc3QgYm9vbCBiZUNhcmVmdWwgPSBm
YWxzZTsKKworICAgIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworCisgICAgaWYgKHZlcmJv
c2UpIHsKKyAgICAgICAgZGF0YUxvZygiQ29kZSBiZWZvcmUgVG1wV2lkdGg6XG4iKTsKKyAgICAg
ICAgZGF0YUxvZyhjb2RlKTsKKyAgICB9CiAgICAgCiAgICAgbV93aWR0aC5jbGVhcigpOwogICAg
IApAQCAtMTUwLDYgKzE1OCwxNCBAQCB2b2lkIFRtcFdpZHRoOjpyZWNvbXB1dGUoQ29kZSYgY29k
ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KKworICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICBkYXRhTG9nKCJ3aWR0aDogIiwgbWFwRHVtcChtX3dpZHRoKSwgIlxuIik7Cit9CisK
K3ZvaWQgVG1wV2lkdGg6OldpZHRoczo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAorewor
ICAgIG91dC5wcmludCgie3VzZSA9ICIsIHVzZSwgIiwgZGVmID0gIiwgZGVmLCAifSIpOwogfQog
CiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpclRtcFdpZHRoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5oCShyZXZpc2lvbiAxOTQ0MzEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclRtcFdpZHRoLmgJKHdvcmtpbmcgY29weSkKQEAgLTky
LDYgKzkyLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHVzZSA9IEFyZzo6bWluaW11bVdpZHRo
KHR5cGUpOwogICAgICAgICAgICAgZGVmID0gQXJnOjptaW5pbXVtV2lkdGgodHlwZSk7CiAgICAg
ICAgIH0KKworICAgICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Q7CiAgICAg
ICAgIAogICAgICAgICBBcmc6OldpZHRoIHVzZTsKICAgICAgICAgQXJnOjpXaWR0aCBkZWY7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267974</attachid>
            <date>2015-12-28 20:06:32 -0800</date>
            <delta_ts>2015-12-28 20:07:22 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>8047</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NDMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBA
CisyMDE1LTEyLTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBiZSBhYmxlIHRvIHJ1biBhbGwgb2YgdGhlIG9sZCBWOHY3IHRlc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1NzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyBzb21l
IHNpbGx5IGJ1Z3MgdGhhdCB3ZXJlIHByZXZlbnRpbmcgdXMgZnJvbSBydW5uaW5nIGFsbCBvZiB0
aGUgb2xkIFY4djcgdGVzdHMuCisgICAgICAgIAorICAgICAgICBJUkMncyBhbmFseXNpcyBvZiB3
aGVuIHRvIHR1cm4gYSBNb3ZlIGludG8gYSBNb3ZlMzIgd2hlbiBzcGlsbGluZyBpcyBiYXNlZCBv
biB0aGUgcHJlbWlzZQorICAgICAgICB0aGF0IGlmIHRoZSBkc3QgaGFzIGEgMzItYml0IGRlZiB3
aWR0aCwgdGhlbiB0aGUgc3JjIG11c3QgYWxzbyBoYXZlIGEgMzItYml0IGRlZiB3aWR0aC4gQnV0
CisgICAgICAgIHRoYXQgZG9lc24ndCBoYXBwZW4gaWYgdGhlIHNyYyBpcyBhbiBpbW1lZGlhdGUu
CisKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoYXQgY29uZGl0aW9uIGluIElSQyB0byB1c2UgdGhl
IGNvbWJpbmVkIHVzZS9kZWYgd2lkdGggb2YgYm90aCBzcmMgYW5kIGRzdAorICAgICAgICByYXRo
ZXIgdGhhbiBiZWluZyBjbGV2ZXIuIFRoaXMgaXMgZ3JlYXQgYmVjYXVzZSBpdCdzIHRoZSBjb21i
aW5lZCB3aWR0aCB0aGF0IGRldGVybWluZXMgdGhlCisgICAgICAgIHNpemUgb2YgdGhlIHNwaWxs
IHNsb3QuCisKKyAgICAgICAgQWxzbyBhZGRlZCBzb21lIG1vcmUgZGVidWcgc3VwcG9ydCB0byBU
bXBXaWR0aC4KKworICAgICAgICBUaGlzIGFsc28gZml4ZXMgQWlyJ3MgZGVzY3JpcHRpb24gb2Yg
RGl2RG91YmxlOyBwcmV2aW91c2x5IGl0IGNsYWltZWQgdG8gYmUgYSAzMi1iaXQKKyAgICAgICAg
b3BlcmF0aW9uLiBBbHNvIGltcGxlbWVudHMgT3V0cHV0Ojp1bnNpZ25lZFRvRG91YmxlKCksIHNp
bmNlIHdlIGFscmVhZHkgaGFkIGV2ZXJ5dGhpbmcgd2UKKyAgICAgICAgbmVlZGVkIHRvIGltcGxl
bWVudCB0aGlzIG9wdGltYWxseS4KKworICAgICAgICAqIGIzL2Fpci9BaXJJdGVyYXRlZFJlZ2lz
dGVyQ29hbGVzY2luZy5jcHA6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgor
ICAgICAgICAqIGIzL2Fpci9BaXJUbXBXaWR0aC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OlRtcFdpZHRoOjpyZWNvbXB1dGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpUbXBXaWR0aDo6
V2lkdGhzOjpkdW1wKToKKyAgICAgICAgKiBiMy9haXIvQWlyVG1wV2lkdGguaDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6VG1wV2lkdGg6OldpZHRoczo6V2lkdGhzKToKKyAgICAgICAgKiBmdGwv
RlRMQjNPdXRwdXQuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlVG9VSW50
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnVuc2lnbmVkVG9Eb3VibGUpOgorICAgICAg
ICAqIGZ0bC9GVExCM091dHB1dC5oOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6emVyb0V4
dCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp6ZXJvRXh0UHRyKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpPdXRwdXQ6OmludFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6
OmNhc3RUb0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnVuc2lnbmVkVG9Eb3Vi
bGUpOiBEZWxldGVkLgorCisyMDE1LTEyLTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CisKKyAgICAgICAgTW92ZSAwLCAldG1wIHNob3VsZCB0dXJuIGludG8gTW92ZTMyIGlmIHRo
ZSAldG1wIGlzIHNwaWxsZWQgd2l0aCBXaWR0aDMyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJUkMncyBhbmFseXNpcyBvZiB3aGVuIHRvIHR1cm4gYSBN
b3ZlIGludG8gYSBNb3ZlMzIgd2hlbiBzcGlsbGluZyBpcyBiYXNlZCBvbiB0aGUgcHJlbWlzZQor
ICAgICAgICB0aGF0IGlmIHRoZSBkc3QgaGFzIGEgMzItYml0IGRlZiB3aWR0aCwgdGhlbiB0aGUg
c3JjIG11c3QgYWxzbyBoYXZlIGEgMzItYml0IGRlZiB3aWR0aC4gQnV0CisgICAgICAgIHRoYXQg
ZG9lc24ndCBoYXBwZW4gaWYgdGhlIHNyYyBpcyBhbiBpbW1lZGlhdGUuCisKKyAgICAgICAgVGhp
cyBjaGFuZ2VzIHRoYXQgY29uZGl0aW9uIGluIElSQyB0byB1c2UgdGhlIGNvbWJpbmVkIHVzZS9k
ZWYgd2lkdGggb2YgYm90aCBzcmMgYW5kIGRzdAorICAgICAgICByYXRoZXIgdGhhbiBiZWluZyBj
bGV2ZXIuIFRoaXMgaXMgZ3JlYXQgYmVjYXVzZSBpdCdzIHRoZSBjb21iaW5lZCB3aWR0aCB0aGF0
IGRldGVybWluZXMgdGhlCisgICAgICAgIHNpemUgb2YgdGhlIHNwaWxsIHNsb3QuCisKKyAgICAg
ICAgQWxzbyBhZGRlZCBzb21lIG1vcmUgZGVidWcgc3VwcG9ydCB0byBUbXBXaWR0aC4KKworICAg
ICAgICBOb3cgVjgvZGVjcnlwdCBydW5zLiBJdCB3YXMgcHJldmlvdXNseSBmYWlsaW5nIGJlY2F1
c2UgYSBNb3ZlIDAsICV0bXAgd291bGQgY2xlYXIgc29tZSBiaXRzCisgICAgICAgIGFib3ZlIHdo
ZXJlICVtcCB3YXMgc3BpbGxlZCwgd2hpY2ggc2V0IG9uZSBvZiB0aGUgbG9jYWxzIGluIHRoZSBi
bnBGcm9tU3RyaW5nKCkgdG8gemVybyBldmVuCisgICAgICAgIHRob3VnaCBpdCBoYWQgc29tZSBu
b24tdHJpdmlhbCB2YWx1ZS4KKworICAgICAgICAqIGIzL2Fpci9BaXJJdGVyYXRlZFJlZ2lzdGVy
Q29hbGVzY2luZy5jcHA6CisgICAgICAgICogYjMvYWlyL0FpclRtcFdpZHRoLmNwcDoKKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6VG1wV2lkdGg6OnJlY29tcHV0ZSk6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OlRtcFdpZHRoOjpXaWR0aHM6OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJUbXBX
aWR0aC5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpUbXBXaWR0aDo6V2lkdGhzOjpXaWR0aHMp
OgorCiAyMDE1LTEyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgRlRMIEIzIHNob3VsZCBrbm93IHRoYXQgdXNlZCByZWdpc3RlcnMgYXJlIG5vdCB0aGUgc2Ft
ZSB0aGluZyBhcyB1c2VkIHJlZ2lzdGVycy4gUmVuYW1lIHRoZQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJJdGVyYXRlZFJlZ2lzdGVyQ29hbGVzY2luZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJdGVyYXRlZFJlZ2lzdGVy
Q29hbGVzY2luZy5jcHAJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlySXRlcmF0ZWRSZWdpc3RlckNvYWxlc2NpbmcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTkzLDggKzExOTMsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJvb2wgZm9y
Y2VNb3ZlMzJJZkRpZFNwaWxsID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYm9vbCBkaWRTcGls
bCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGlmICh0eXBlID09IEFyZzo6R1AgJiYgaW5zdC5v
cGNvZGUgPT0gTW92ZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoKGluc3QuYXJnc1swXS5p
c1RtcCgpICYmIG1fdG1wV2lkdGguZGVmV2lkdGgoaW5zdC5hcmdzWzBdLnRtcCgpKSA8PSBBcmc6
OldpZHRoMzIpCi0gICAgICAgICAgICAgICAgICAgICAgICB8fCAoaW5zdC5hcmdzWzFdLmlzVG1w
KCkgJiYgbV90bXBXaWR0aC51c2VXaWR0aChpbnN0LmFyZ3NbMV0udG1wKCkpIDw9IEFyZzo6V2lk
dGgzMikpCisgICAgICAgICAgICAgICAgICAgIGlmICgoaW5zdC5hcmdzWzBdLmlzVG1wKCkgJiYg
bV90bXBXaWR0aC53aWR0aChpbnN0LmFyZ3NbMF0udG1wKCkpIDw9IEFyZzo6V2lkdGgzMikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHx8IChpbnN0LmFyZ3NbMV0uaXNUbXAoKSAmJiBtX3RtcFdp
ZHRoLndpZHRoKGluc3QuYXJnc1sxXS50bXAoKSkgPD0gQXJnOjpXaWR0aDMyKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvcmNlTW92ZTMySWZEaWRTcGlsbCA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bj
b2RlLm9wY29kZXMJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHdvcmtpbmcgY29weSkKQEAgLTIwMSwxMCArMjAxLDEw
IEBAIHg4NjogTXVsRmxvYXQgVTpGOjMyLCBVRDpGOjMyCiAgICAgVG1wLCBUbXAKICAgICBBZGRy
LCBUbXAKIAotYXJtNjQ6IERpdkRvdWJsZSBVOkY6MzIsIFU6RjozMiwgRDpGOjMyCithcm02NDog
RGl2RG91YmxlIFU6Rjo2NCwgVTpGOjMyLCBEOkY6NjQKICAgICBUbXAsIFRtcCwgVG1wCiAKLXg4
NjogRGl2RG91YmxlIFU6RjozMiwgVUQ6RjozMgoreDg2OiBEaXZEb3VibGUgVTpGOjY0LCBVRDpG
OjY0CiAgICAgVG1wLCBUbXAKICAgICBBZGRyLCBUbXAKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5jcHAJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVG1wV2lkdGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWly
SW5zdElubGluZXMuaCIKKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC01MCw2ICs1MSwxMyBAQCB2
b2lkIFRtcFdpZHRoOjpyZWNvbXB1dGUoQ29kZSYgY29kZSkKIHsKICAgICAvLyBTZXQgdGhpcyB0
byB0cnVlIHRvIGNhdXNlIHRoaXMgYW5hbHlzaXMgdG8gYWx3YXlzIHJldHVybiBwZXNzaW1pc3Rp
YyByZXN1bHRzLgogICAgIGNvbnN0IGJvb2wgYmVDYXJlZnVsID0gZmFsc2U7CisKKyAgICBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIGRh
dGFMb2coIkNvZGUgYmVmb3JlIFRtcFdpZHRoOlxuIik7CisgICAgICAgIGRhdGFMb2coY29kZSk7
CisgICAgfQogICAgIAogICAgIG1fd2lkdGguY2xlYXIoKTsKICAgICAKQEAgLTE1MCw2ICsxNTgs
MTQgQEAgdm9pZCBUbXBXaWR0aDo6cmVjb21wdXRlKENvZGUmIGNvZGUpCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgZGF0YUxvZygi
d2lkdGg6ICIsIG1hcER1bXAobV93aWR0aCksICJcbiIpOworfQorCit2b2lkIFRtcFdpZHRoOjpX
aWR0aHM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQucHJpbnQoInt1
c2UgPSAiLCB1c2UsICIsIGRlZiA9ICIsIGRlZiwgIn0iKTsKIH0KIAogfSB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6QjM6OkFpcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJU
bXBXaWR0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
VG1wV2lkdGguaAkocmV2aXNpb24gMTk0NDMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJUbXBXaWR0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw4IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICB1c2UgPSBBcmc6Om1pbmltdW1XaWR0aCh0eXBlKTsKICAgICAgICAg
ICAgIGRlZiA9IEFyZzo6bWluaW11bVdpZHRoKHR5cGUpOwogICAgICAgICB9CisKKyAgICAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogICAgICAgICAKICAgICAgICAgQXJn
OjpXaWR0aCB1c2U7CiAgICAgICAgIEFyZzo6V2lkdGggZGVmOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTUsMTAgKzExNSwxNiBAQCBMVmFsdWUgT3V0cHV0Ojpkb3VibGVUb0ludChMVmFsdWUgdmFsdWUp
CiAKIExWYWx1ZSBPdXRwdXQ6OmRvdWJsZVRvVUludChMVmFsdWUgdmFsdWUpCiB7Ci0gICAgUGF0
Y2hwb2ludFZhbHVlKiByZXN1bHQgPSBwYXRjaHBvaW50KEludDMyKTsKKyAgICByZXR1cm4gaW50
VG9Eb3VibGUoemVyb0V4dCh2YWx1ZSwgSW50NjQpKTsKK30KKworTFZhbHVlIE91dHB1dDo6dW5z
aWduZWRUb0RvdWJsZShMVmFsdWUgdmFsdWUpCit7CisgICAgUGF0Y2hwb2ludFZhbHVlKiByZXN1
bHQgPSBwYXRjaHBvaW50KERvdWJsZSk7CiAgICAgcmVzdWx0LT5hcHBlbmQodmFsdWUsIFZhbHVl
UmVwOjpTb21lUmVnaXN0ZXIpOwogICAgIHJlc3VsdC0+c2V0R2VuZXJhdG9yKAogICAgICAgICBb
XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFy
YW1zKSB7CisgICAgICAgICAgICAKICAgICAgICAgICAgIGppdC50cnVuY2F0ZURvdWJsZVRvVWlu
dDMyKHBhcmFtc1sxXS5mcHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7CiAgICAg
cmVzdWx0LT5lZmZlY3RzID0gRWZmZWN0czo6bm9uZSgpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExCM091dHB1dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQjNPdXRwdXQuaAkocmV2aXNpb24gMTk0NDMxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksNyArMTg5
LDcgQEAgcHVibGljOgogICAgIH0KICAgICBMVmFsdWUgemVyb0V4dFB0cihMVmFsdWUgdmFsdWUp
IHsgcmV0dXJuIHplcm9FeHQodmFsdWUsIEIzOjpJbnQ2NCk7IH0KICAgICBMVmFsdWUgaW50VG9E
b3VibGUoTFZhbHVlIHZhbHVlKSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVl
PihtX3Byb2MsIEIzOjpJVG9ELCBvcmlnaW4oKSwgdmFsdWUpOyB9Ci0gICAgTFZhbHVlIHVuc2ln
bmVkVG9Eb3VibGUoTFZhbHVlIHZhbHVlKSB7IENSQVNIKCk7IH0KKyAgICBMVmFsdWUgdW5zaWdu
ZWRUb0RvdWJsZShMVmFsdWUgdmFsdWUpOwogICAgIExWYWx1ZSBjYXN0VG9JbnQzMihMVmFsdWUg
dmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWUtPnR5cGUoKSA9PSBCMzo6SW50MzIg
PyB2YWx1ZSA6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267975</attachid>
            <date>2015-12-28 20:07:22 -0800</date>
            <delta_ts>2015-12-28 20:08:23 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>6748</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NDMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE1LTEyLTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBiZSBhYmxlIHRvIHJ1biBhbGwgb2YgdGhlIG9sZCBWOHY3IHRlc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1NzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyBzb21l
IHNpbGx5IGJ1Z3MgdGhhdCB3ZXJlIHByZXZlbnRpbmcgdXMgZnJvbSBydW5uaW5nIGFsbCBvZiB0
aGUgb2xkIFY4djcgdGVzdHMuCisgICAgICAgIAorICAgICAgICBJUkMncyBhbmFseXNpcyBvZiB3
aGVuIHRvIHR1cm4gYSBNb3ZlIGludG8gYSBNb3ZlMzIgd2hlbiBzcGlsbGluZyBpcyBiYXNlZCBv
biB0aGUgcHJlbWlzZQorICAgICAgICB0aGF0IGlmIHRoZSBkc3QgaGFzIGEgMzItYml0IGRlZiB3
aWR0aCwgdGhlbiB0aGUgc3JjIG11c3QgYWxzbyBoYXZlIGEgMzItYml0IGRlZiB3aWR0aC4gQnV0
CisgICAgICAgIHRoYXQgZG9lc24ndCBoYXBwZW4gaWYgdGhlIHNyYyBpcyBhbiBpbW1lZGlhdGUu
CisKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoYXQgY29uZGl0aW9uIGluIElSQyB0byB1c2UgdGhl
IGNvbWJpbmVkIHVzZS9kZWYgd2lkdGggb2YgYm90aCBzcmMgYW5kIGRzdAorICAgICAgICByYXRo
ZXIgdGhhbiBiZWluZyBjbGV2ZXIuIFRoaXMgaXMgZ3JlYXQgYmVjYXVzZSBpdCdzIHRoZSBjb21i
aW5lZCB3aWR0aCB0aGF0IGRldGVybWluZXMgdGhlCisgICAgICAgIHNpemUgb2YgdGhlIHNwaWxs
IHNsb3QuCisKKyAgICAgICAgQWxzbyBhZGRlZCBzb21lIG1vcmUgZGVidWcgc3VwcG9ydCB0byBU
bXBXaWR0aC4KKworICAgICAgICBUaGlzIGFsc28gZml4ZXMgQWlyJ3MgZGVzY3JpcHRpb24gb2Yg
RGl2RG91YmxlOyBwcmV2aW91c2x5IGl0IGNsYWltZWQgdG8gYmUgYSAzMi1iaXQKKyAgICAgICAg
b3BlcmF0aW9uLiBBbHNvIGltcGxlbWVudHMgT3V0cHV0Ojp1bnNpZ25lZFRvRG91YmxlKCksIHNp
bmNlIHdlIGFscmVhZHkgaGFkIGV2ZXJ5dGhpbmcgd2UKKyAgICAgICAgbmVlZGVkIHRvIGltcGxl
bWVudCB0aGlzIG9wdGltYWxseS4KKworICAgICAgICAqIGIzL2Fpci9BaXJJdGVyYXRlZFJlZ2lz
dGVyQ29hbGVzY2luZy5jcHA6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgor
ICAgICAgICAqIGIzL2Fpci9BaXJUbXBXaWR0aC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OlRtcFdpZHRoOjpyZWNvbXB1dGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpUbXBXaWR0aDo6
V2lkdGhzOjpkdW1wKToKKyAgICAgICAgKiBiMy9haXIvQWlyVG1wV2lkdGguaDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6VG1wV2lkdGg6OldpZHRoczo6V2lkdGhzKToKKyAgICAgICAgKiBmdGwv
RlRMQjNPdXRwdXQuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlVG9VSW50
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnVuc2lnbmVkVG9Eb3VibGUpOgorICAgICAg
ICAqIGZ0bC9GVExCM091dHB1dC5oOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6emVyb0V4
dCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp6ZXJvRXh0UHRyKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpPdXRwdXQ6OmludFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6
OmNhc3RUb0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnVuc2lnbmVkVG9Eb3Vi
bGUpOiBEZWxldGVkLgorCiAyMDE1LTEyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CiAKICAgICAgICAgRlRMIEIzIHNob3VsZCBrbm93IHRoYXQgdXNlZCByZWdpc3RlcnMgYXJl
IG5vdCB0aGUgc2FtZSB0aGluZyBhcyB1c2VkIHJlZ2lzdGVycy4gUmVuYW1lIHRoZQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJdGVyYXRlZFJlZ2lzdGVyQ29hbGVzY2lu
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJdGVy
YXRlZFJlZ2lzdGVyQ29hbGVzY2luZy5jcHAJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySXRlcmF0ZWRSZWdpc3RlckNvYWxlc2NpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTkzLDggKzExOTMsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIGJvb2wgZm9yY2VNb3ZlMzJJZkRpZFNwaWxsID0gZmFsc2U7CiAgICAgICAgICAgICAgICAg
Ym9vbCBkaWRTcGlsbCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGlmICh0eXBlID09IEFyZzo6
R1AgJiYgaW5zdC5vcGNvZGUgPT0gTW92ZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoKGlu
c3QuYXJnc1swXS5pc1RtcCgpICYmIG1fdG1wV2lkdGguZGVmV2lkdGgoaW5zdC5hcmdzWzBdLnRt
cCgpKSA8PSBBcmc6OldpZHRoMzIpCi0gICAgICAgICAgICAgICAgICAgICAgICB8fCAoaW5zdC5h
cmdzWzFdLmlzVG1wKCkgJiYgbV90bXBXaWR0aC51c2VXaWR0aChpbnN0LmFyZ3NbMV0udG1wKCkp
IDw9IEFyZzo6V2lkdGgzMikpCisgICAgICAgICAgICAgICAgICAgIGlmICgoaW5zdC5hcmdzWzBd
LmlzVG1wKCkgJiYgbV90bXBXaWR0aC53aWR0aChpbnN0LmFyZ3NbMF0udG1wKCkpIDw9IEFyZzo6
V2lkdGgzMikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChpbnN0LmFyZ3NbMV0uaXNUbXAo
KSAmJiBtX3RtcFdpZHRoLndpZHRoKGluc3QuYXJnc1sxXS50bXAoKSkgPD0gQXJnOjpXaWR0aDMy
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlTW92ZTMySWZEaWRTcGlsbCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpck9wY29kZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHdvcmtpbmcgY29weSkKQEAgLTIw
MSwxMCArMjAxLDEwIEBAIHg4NjogTXVsRmxvYXQgVTpGOjMyLCBVRDpGOjMyCiAgICAgVG1wLCBU
bXAKICAgICBBZGRyLCBUbXAKIAotYXJtNjQ6IERpdkRvdWJsZSBVOkY6MzIsIFU6RjozMiwgRDpG
OjMyCithcm02NDogRGl2RG91YmxlIFU6Rjo2NCwgVTpGOjMyLCBEOkY6NjQKICAgICBUbXAsIFRt
cCwgVG1wCiAKLXg4NjogRGl2RG91YmxlIFU6RjozMiwgVUQ6RjozMgoreDg2OiBEaXZEb3VibGUg
VTpGOjY0LCBVRDpGOjY0CiAgICAgVG1wLCBUbXAKICAgICBBZGRyLCBUbXAKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5jcHAJKHJldmlzaW9uIDE5
NDQzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVG1wV2lkdGguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAj
aW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC01MCw2
ICs1MSwxMyBAQCB2b2lkIFRtcFdpZHRoOjpyZWNvbXB1dGUoQ29kZSYgY29kZSkKIHsKICAgICAv
LyBTZXQgdGhpcyB0byB0cnVlIHRvIGNhdXNlIHRoaXMgYW5hbHlzaXMgdG8gYWx3YXlzIHJldHVy
biBwZXNzaW1pc3RpYyByZXN1bHRzLgogICAgIGNvbnN0IGJvb2wgYmVDYXJlZnVsID0gZmFsc2U7
CisKKyAgICBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworICAgIGlmICh2ZXJib3NlKSB7
CisgICAgICAgIGRhdGFMb2coIkNvZGUgYmVmb3JlIFRtcFdpZHRoOlxuIik7CisgICAgICAgIGRh
dGFMb2coY29kZSk7CisgICAgfQogICAgIAogICAgIG1fd2lkdGguY2xlYXIoKTsKICAgICAKQEAg
LTE1MCw2ICsxNTgsMTQgQEAgdm9pZCBUbXBXaWR0aDo6cmVjb21wdXRlKENvZGUmIGNvZGUpCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgZGF0YUxvZygid2lkdGg6ICIsIG1hcER1bXAobV93aWR0aCksICJcbiIpOworfQorCit2b2lk
IFRtcFdpZHRoOjpXaWR0aHM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBv
dXQucHJpbnQoInt1c2UgPSAiLCB1c2UsICIsIGRlZiA9ICIsIGRlZiwgIn0iKTsKIH0KIAogfSB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJUbXBXaWR0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyVG1wV2lkdGguaAkocmV2aXNpb24gMTk0NDMxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5
Miw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB1c2UgPSBBcmc6Om1pbmltdW1XaWR0aCh0eXBl
KTsKICAgICAgICAgICAgIGRlZiA9IEFyZzo6bWluaW11bVdpZHRoKHR5cGUpOwogICAgICAgICB9
CisKKyAgICAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogICAgICAgICAK
ICAgICAgICAgQXJnOjpXaWR0aCB1c2U7CiAgICAgICAgIEFyZzo6V2lkdGggZGVmOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAJKHJldmlzaW9uIDE5NDQz
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTUsMTAgKzExNSwxNiBAQCBMVmFsdWUgT3V0cHV0Ojpkb3VibGVUb0ludChM
VmFsdWUgdmFsdWUpCiAKIExWYWx1ZSBPdXRwdXQ6OmRvdWJsZVRvVUludChMVmFsdWUgdmFsdWUp
CiB7Ci0gICAgUGF0Y2hwb2ludFZhbHVlKiByZXN1bHQgPSBwYXRjaHBvaW50KEludDMyKTsKKyAg
ICByZXR1cm4gaW50VG9Eb3VibGUoemVyb0V4dCh2YWx1ZSwgSW50NjQpKTsKK30KKworTFZhbHVl
IE91dHB1dDo6dW5zaWduZWRUb0RvdWJsZShMVmFsdWUgdmFsdWUpCit7CisgICAgUGF0Y2hwb2lu
dFZhbHVlKiByZXN1bHQgPSBwYXRjaHBvaW50KERvdWJsZSk7CiAgICAgcmVzdWx0LT5hcHBlbmQo
dmFsdWUsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpOwogICAgIHJlc3VsdC0+c2V0R2VuZXJhdG9y
KAogICAgICAgICBbXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAKICAgICAgICAgICAgIGppdC50cnVuY2F0
ZURvdWJsZVRvVWludDMyKHBhcmFtc1sxXS5mcHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAg
ICAgfSk7CiAgICAgcmVzdWx0LT5lZmZlY3RzID0gRWZmZWN0czo6bm9uZSgpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuaAkocmV2aXNpb24gMTk0NDMxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xODksNyArMTg5LDcgQEAgcHVibGljOgogICAgIH0KICAgICBMVmFsdWUgemVyb0V4dFB0cihM
VmFsdWUgdmFsdWUpIHsgcmV0dXJuIHplcm9FeHQodmFsdWUsIEIzOjpJbnQ2NCk7IH0KICAgICBM
VmFsdWUgaW50VG9Eb3VibGUoTFZhbHVlIHZhbHVlKSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmRO
ZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpJVG9ELCBvcmlnaW4oKSwgdmFsdWUpOyB9Ci0gICAg
TFZhbHVlIHVuc2lnbmVkVG9Eb3VibGUoTFZhbHVlIHZhbHVlKSB7IENSQVNIKCk7IH0KKyAgICBM
VmFsdWUgdW5zaWduZWRUb0RvdWJsZShMVmFsdWUgdmFsdWUpOwogICAgIExWYWx1ZSBjYXN0VG9J
bnQzMihMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWUtPnR5cGUoKSA9
PSBCMzo6SW50MzIgPyB2YWx1ZSA6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267976</attachid>
            <date>2015-12-28 20:08:23 -0800</date>
            <delta_ts>2015-12-28 20:08:59 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>6931</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NDMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE1LTEyLTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBiZSBhYmxlIHRvIHJ1biBhbGwgb2YgdGhlIG9sZCBWOHY3IHRlc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1NzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyBzb21l
IHNpbGx5IGJ1Z3MgdGhhdCB3ZXJlIHByZXZlbnRpbmcgdXMgZnJvbSBydW5uaW5nIGFsbCBvZiB0
aGUgb2xkIFY4djcgdGVzdHMuCisgICAgICAgIAorICAgICAgICBJUkMncyBhbmFseXNpcyBvZiB3
aGVuIHRvIHR1cm4gYSBNb3ZlIGludG8gYSBNb3ZlMzIgd2hlbiBzcGlsbGluZyBpcyBiYXNlZCBv
biB0aGUgcHJlbWlzZQorICAgICAgICB0aGF0IGlmIHRoZSBkc3QgaGFzIGEgMzItYml0IGRlZiB3
aWR0aCwgdGhlbiB0aGUgc3JjIG11c3QgYWxzbyBoYXZlIGEgMzItYml0IGRlZiB3aWR0aC4gQnV0
CisgICAgICAgIHRoYXQgZG9lc24ndCBoYXBwZW4gaWYgdGhlIHNyYyBpcyBhbiBpbW1lZGlhdGUu
CisKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoYXQgY29uZGl0aW9uIGluIElSQyB0byB1c2UgdGhl
IGNvbWJpbmVkIHVzZS9kZWYgd2lkdGggb2YgYm90aCBzcmMgYW5kIGRzdAorICAgICAgICByYXRo
ZXIgdGhhbiBiZWluZyBjbGV2ZXIuIFRoaXMgaXMgZ3JlYXQgYmVjYXVzZSBpdCdzIHRoZSBjb21i
aW5lZCB3aWR0aCB0aGF0IGRldGVybWluZXMgdGhlCisgICAgICAgIHNpemUgb2YgdGhlIHNwaWxs
IHNsb3QuCisKKyAgICAgICAgQWxzbyBhZGRlZCBzb21lIG1vcmUgZGVidWcgc3VwcG9ydCB0byBU
bXBXaWR0aC4KKworICAgICAgICBUaGlzIGFsc28gZml4ZXMgQWlyJ3MgZGVzY3JpcHRpb24gb2Yg
RGl2RG91YmxlOyBwcmV2aW91c2x5IGl0IGNsYWltZWQgdG8gYmUgYSAzMi1iaXQKKyAgICAgICAg
b3BlcmF0aW9uLiBBbHNvIGltcGxlbWVudHMgT3V0cHV0Ojp1bnNpZ25lZFRvRG91YmxlKCksIHNp
bmNlIHdlIGFscmVhZHkgaGFkIGV2ZXJ5dGhpbmcgd2UKKyAgICAgICAgbmVlZGVkIHRvIGltcGxl
bWVudCB0aGlzIG9wdGltYWxseS4KKworICAgICAgICAqIGIzL2Fpci9BaXJJdGVyYXRlZFJlZ2lz
dGVyQ29hbGVzY2luZy5jcHA6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgor
ICAgICAgICAqIGIzL2Fpci9BaXJUbXBXaWR0aC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OlRtcFdpZHRoOjpyZWNvbXB1dGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpUbXBXaWR0aDo6
V2lkdGhzOjpkdW1wKToKKyAgICAgICAgKiBiMy9haXIvQWlyVG1wV2lkdGguaDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6VG1wV2lkdGg6OldpZHRoczo6V2lkdGhzKToKKyAgICAgICAgKiBmdGwv
RlRMQjNPdXRwdXQuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlVG9VSW50
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnVuc2lnbmVkVG9Eb3VibGUpOgorICAgICAg
ICAqIGZ0bC9GVExCM091dHB1dC5oOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6emVyb0V4
dCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp6ZXJvRXh0UHRyKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpPdXRwdXQ6OmludFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6
OmNhc3RUb0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnVuc2lnbmVkVG9Eb3Vi
bGUpOiBEZWxldGVkLgorCiAyMDE1LTEyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CiAKICAgICAgICAgRlRMIEIzIHNob3VsZCBrbm93IHRoYXQgdXNlZCByZWdpc3RlcnMgYXJl
IG5vdCB0aGUgc2FtZSB0aGluZyBhcyB1c2VkIHJlZ2lzdGVycy4gUmVuYW1lIHRoZQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJdGVyYXRlZFJlZ2lzdGVyQ29hbGVzY2lu
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJdGVy
YXRlZFJlZ2lzdGVyQ29hbGVzY2luZy5jcHAJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySXRlcmF0ZWRSZWdpc3RlckNvYWxlc2NpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTkzLDggKzExOTMsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIGJvb2wgZm9yY2VNb3ZlMzJJZkRpZFNwaWxsID0gZmFsc2U7CiAgICAgICAgICAgICAgICAg
Ym9vbCBkaWRTcGlsbCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGlmICh0eXBlID09IEFyZzo6
R1AgJiYgaW5zdC5vcGNvZGUgPT0gTW92ZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoKGlu
c3QuYXJnc1swXS5pc1RtcCgpICYmIG1fdG1wV2lkdGguZGVmV2lkdGgoaW5zdC5hcmdzWzBdLnRt
cCgpKSA8PSBBcmc6OldpZHRoMzIpCi0gICAgICAgICAgICAgICAgICAgICAgICB8fCAoaW5zdC5h
cmdzWzFdLmlzVG1wKCkgJiYgbV90bXBXaWR0aC51c2VXaWR0aChpbnN0LmFyZ3NbMV0udG1wKCkp
IDw9IEFyZzo6V2lkdGgzMikpCisgICAgICAgICAgICAgICAgICAgIGlmICgoaW5zdC5hcmdzWzBd
LmlzVG1wKCkgJiYgbV90bXBXaWR0aC53aWR0aChpbnN0LmFyZ3NbMF0udG1wKCkpIDw9IEFyZzo6
V2lkdGgzMikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChpbnN0LmFyZ3NbMV0uaXNUbXAo
KSAmJiBtX3RtcFdpZHRoLndpZHRoKGluc3QuYXJnc1sxXS50bXAoKSkgPD0gQXJnOjpXaWR0aDMy
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlTW92ZTMySWZEaWRTcGlsbCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpck9wY29kZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHdvcmtpbmcgY29weSkKQEAgLTIw
MSwxMCArMjAxLDEwIEBAIHg4NjogTXVsRmxvYXQgVTpGOjMyLCBVRDpGOjMyCiAgICAgVG1wLCBU
bXAKICAgICBBZGRyLCBUbXAKIAotYXJtNjQ6IERpdkRvdWJsZSBVOkY6MzIsIFU6RjozMiwgRDpG
OjMyCithcm02NDogRGl2RG91YmxlIFU6Rjo2NCwgVTpGOjMyLCBEOkY6NjQKICAgICBUbXAsIFRt
cCwgVG1wCiAKLXg4NjogRGl2RG91YmxlIFU6RjozMiwgVUQ6RjozMgoreDg2OiBEaXZEb3VibGUg
VTpGOjY0LCBVRDpGOjY0CiAgICAgVG1wLCBUbXAKICAgICBBZGRyLCBUbXAKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5jcHAJKHJldmlzaW9uIDE5
NDQzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVG1wV2lkdGguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAj
aW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC01MCw2
ICs1MSwxMyBAQCB2b2lkIFRtcFdpZHRoOjpyZWNvbXB1dGUoQ29kZSYgY29kZSkKIHsKICAgICAv
LyBTZXQgdGhpcyB0byB0cnVlIHRvIGNhdXNlIHRoaXMgYW5hbHlzaXMgdG8gYWx3YXlzIHJldHVy
biBwZXNzaW1pc3RpYyByZXN1bHRzLgogICAgIGNvbnN0IGJvb2wgYmVDYXJlZnVsID0gZmFsc2U7
CisKKyAgICBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworICAgIGlmICh2ZXJib3NlKSB7
CisgICAgICAgIGRhdGFMb2coIkNvZGUgYmVmb3JlIFRtcFdpZHRoOlxuIik7CisgICAgICAgIGRh
dGFMb2coY29kZSk7CisgICAgfQogICAgIAogICAgIG1fd2lkdGguY2xlYXIoKTsKICAgICAKQEAg
LTE1MCw2ICsxNTgsMTQgQEAgdm9pZCBUbXBXaWR0aDo6cmVjb21wdXRlKENvZGUmIGNvZGUpCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgZGF0YUxvZygid2lkdGg6ICIsIG1hcER1bXAobV93aWR0aCksICJcbiIpOworfQorCit2b2lk
IFRtcFdpZHRoOjpXaWR0aHM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBv
dXQucHJpbnQoInt1c2UgPSAiLCB1c2UsICIsIGRlZiA9ICIsIGRlZiwgIn0iKTsKIH0KIAogfSB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJUbXBXaWR0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyVG1wV2lkdGguaAkocmV2aXNpb24gMTk0NDMxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5
Miw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB1c2UgPSBBcmc6Om1pbmltdW1XaWR0aCh0eXBl
KTsKICAgICAgICAgICAgIGRlZiA9IEFyZzo6bWluaW11bVdpZHRoKHR5cGUpOwogICAgICAgICB9
CisKKyAgICAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogICAgICAgICAK
ICAgICAgICAgQXJnOjpXaWR0aCB1c2U7CiAgICAgICAgIEFyZzo6V2lkdGggZGVmOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAJKHJldmlzaW9uIDE5NDQz
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTUsMTYgKzExNSwyMiBAQCBMVmFsdWUgT3V0cHV0Ojpkb3VibGVUb0ludChM
VmFsdWUgdmFsdWUpCiAKIExWYWx1ZSBPdXRwdXQ6OmRvdWJsZVRvVUludChMVmFsdWUgdmFsdWUp
CiB7Ci0gICAgUGF0Y2hwb2ludFZhbHVlKiByZXN1bHQgPSBwYXRjaHBvaW50KEludDMyKTsKKyAg
ICBQYXRjaHBvaW50VmFsdWUqIHJlc3VsdCA9IHBhdGNocG9pbnQoRG91YmxlKTsKICAgICByZXN1
bHQtPmFwcGVuZCh2YWx1ZSwgVmFsdWVSZXA6OlNvbWVSZWdpc3Rlcik7CiAgICAgcmVzdWx0LT5z
ZXRHZW5lcmF0b3IoCiAgICAgICAgIFtdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgIAogICAgICAgICAgICAg
aml0LnRydW5jYXRlRG91YmxlVG9VaW50MzIocGFyYW1zWzFdLmZwcigpLCBwYXJhbXNbMF0uZ3By
KCkpOwogICAgICAgICB9KTsKICAgICByZXN1bHQtPmVmZmVjdHMgPSBFZmZlY3RzOjpub25lKCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorTFZhbHVlIE91dHB1dDo6dW5zaWduZWRUb0RvdWJs
ZShMVmFsdWUgdmFsdWUpCit7CisgICAgcmV0dXJuIGludFRvRG91YmxlKHplcm9FeHQodmFsdWUs
IEludDY0KSk7Cit9CisKIExWYWx1ZSBPdXRwdXQ6OmxvYWQ4U2lnbkV4dDMyKFR5cGVkUG9pbnRl
ciBwb2ludGVyKQogewogICAgIExWYWx1ZSBsb2FkID0gbV9ibG9jay0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihtX3Byb2MsIExvYWQ4UywgSW50MzIsIG9yaWdpbigpLCBwb2ludGVyLnZhbHVlKCkp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuaAkocmV2aXNpb24g
MTk0NDMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODksNyArMTg5LDcgQEAgcHVibGljOgogICAgIH0KICAgICBMVmFsdWUg
emVyb0V4dFB0cihMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIHplcm9FeHQodmFsdWUsIEIzOjpJbnQ2
NCk7IH0KICAgICBMVmFsdWUgaW50VG9Eb3VibGUoTFZhbHVlIHZhbHVlKSB7IHJldHVybiBtX2Js
b2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpJVG9ELCBvcmlnaW4oKSwgdmFs
dWUpOyB9Ci0gICAgTFZhbHVlIHVuc2lnbmVkVG9Eb3VibGUoTFZhbHVlIHZhbHVlKSB7IENSQVNI
KCk7IH0KKyAgICBMVmFsdWUgdW5zaWduZWRUb0RvdWJsZShMVmFsdWUgdmFsdWUpOwogICAgIExW
YWx1ZSBjYXN0VG9JbnQzMihMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gdmFs
dWUtPnR5cGUoKSA9PSBCMzo6SW50MzIgPyB2YWx1ZSA6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267977</attachid>
            <date>2015-12-28 20:08:59 -0800</date>
            <delta_ts>2016-01-01 11:29:54 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>6486</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NDMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE1LTEyLTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEIzIHNob3VsZCBiZSBhYmxlIHRvIHJ1biBhbGwgb2YgdGhlIG9sZCBWOHY3IHRlc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1NzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyBzb21l
IHNpbGx5IGJ1Z3MgdGhhdCB3ZXJlIHByZXZlbnRpbmcgdXMgZnJvbSBydW5uaW5nIGFsbCBvZiB0
aGUgb2xkIFY4djcgdGVzdHMuCisgICAgICAgIAorICAgICAgICBJUkMncyBhbmFseXNpcyBvZiB3
aGVuIHRvIHR1cm4gYSBNb3ZlIGludG8gYSBNb3ZlMzIgd2hlbiBzcGlsbGluZyBpcyBiYXNlZCBv
biB0aGUgcHJlbWlzZQorICAgICAgICB0aGF0IGlmIHRoZSBkc3QgaGFzIGEgMzItYml0IGRlZiB3
aWR0aCwgdGhlbiB0aGUgc3JjIG11c3QgYWxzbyBoYXZlIGEgMzItYml0IGRlZiB3aWR0aC4gQnV0
CisgICAgICAgIHRoYXQgZG9lc24ndCBoYXBwZW4gaWYgdGhlIHNyYyBpcyBhbiBpbW1lZGlhdGUu
CisKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoYXQgY29uZGl0aW9uIGluIElSQyB0byB1c2UgdGhl
IGNvbWJpbmVkIHVzZS9kZWYgd2lkdGggb2YgYm90aCBzcmMgYW5kIGRzdAorICAgICAgICByYXRo
ZXIgdGhhbiBiZWluZyBjbGV2ZXIuIFRoaXMgaXMgZ3JlYXQgYmVjYXVzZSBpdCdzIHRoZSBjb21i
aW5lZCB3aWR0aCB0aGF0IGRldGVybWluZXMgdGhlCisgICAgICAgIHNpemUgb2YgdGhlIHNwaWxs
IHNsb3QuCisKKyAgICAgICAgQWxzbyBhZGRlZCBzb21lIG1vcmUgZGVidWcgc3VwcG9ydCB0byBU
bXBXaWR0aC4KKworICAgICAgICBUaGlzIGFsc28gZml4ZXMgQWlyJ3MgZGVzY3JpcHRpb24gb2Yg
RGl2RG91YmxlOyBwcmV2aW91c2x5IGl0IGNsYWltZWQgdG8gYmUgYSAzMi1iaXQKKyAgICAgICAg
b3BlcmF0aW9uLiBBbHNvIGltcGxlbWVudHMgT3V0cHV0Ojp1bnNpZ25lZFRvRG91YmxlKCksIHNp
bmNlIHdlIGFscmVhZHkgaGFkIGV2ZXJ5dGhpbmcgd2UKKyAgICAgICAgbmVlZGVkIHRvIGltcGxl
bWVudCB0aGlzIG9wdGltYWxseS4KKworICAgICAgICAqIGIzL2Fpci9BaXJJdGVyYXRlZFJlZ2lz
dGVyQ29hbGVzY2luZy5jcHA6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgor
ICAgICAgICAqIGIzL2Fpci9BaXJUbXBXaWR0aC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OlRtcFdpZHRoOjpyZWNvbXB1dGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpUbXBXaWR0aDo6
V2lkdGhzOjpkdW1wKToKKyAgICAgICAgKiBiMy9haXIvQWlyVG1wV2lkdGguaDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6VG1wV2lkdGg6OldpZHRoczo6V2lkdGhzKToKKyAgICAgICAgKiBmdGwv
RlRMQjNPdXRwdXQuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlVG9VSW50
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnVuc2lnbmVkVG9Eb3VibGUpOgorICAgICAg
ICAqIGZ0bC9GVExCM091dHB1dC5oOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6emVyb0V4
dCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp6ZXJvRXh0UHRyKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpPdXRwdXQ6OmludFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6
OmNhc3RUb0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnVuc2lnbmVkVG9Eb3Vi
bGUpOiBEZWxldGVkLgorCiAyMDE1LTEyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CiAKICAgICAgICAgRlRMIEIzIHNob3VsZCBrbm93IHRoYXQgdXNlZCByZWdpc3RlcnMgYXJl
IG5vdCB0aGUgc2FtZSB0aGluZyBhcyB1c2VkIHJlZ2lzdGVycy4gUmVuYW1lIHRoZQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJdGVyYXRlZFJlZ2lzdGVyQ29hbGVzY2lu
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJdGVy
YXRlZFJlZ2lzdGVyQ29hbGVzY2luZy5jcHAJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySXRlcmF0ZWRSZWdpc3RlckNvYWxlc2NpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTkzLDggKzExOTMsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIGJvb2wgZm9yY2VNb3ZlMzJJZkRpZFNwaWxsID0gZmFsc2U7CiAgICAgICAgICAgICAgICAg
Ym9vbCBkaWRTcGlsbCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGlmICh0eXBlID09IEFyZzo6
R1AgJiYgaW5zdC5vcGNvZGUgPT0gTW92ZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoKGlu
c3QuYXJnc1swXS5pc1RtcCgpICYmIG1fdG1wV2lkdGguZGVmV2lkdGgoaW5zdC5hcmdzWzBdLnRt
cCgpKSA8PSBBcmc6OldpZHRoMzIpCi0gICAgICAgICAgICAgICAgICAgICAgICB8fCAoaW5zdC5h
cmdzWzFdLmlzVG1wKCkgJiYgbV90bXBXaWR0aC51c2VXaWR0aChpbnN0LmFyZ3NbMV0udG1wKCkp
IDw9IEFyZzo6V2lkdGgzMikpCisgICAgICAgICAgICAgICAgICAgIGlmICgoaW5zdC5hcmdzWzBd
LmlzVG1wKCkgJiYgbV90bXBXaWR0aC53aWR0aChpbnN0LmFyZ3NbMF0udG1wKCkpIDw9IEFyZzo6
V2lkdGgzMikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChpbnN0LmFyZ3NbMV0uaXNUbXAo
KSAmJiBtX3RtcFdpZHRoLndpZHRoKGluc3QuYXJnc1sxXS50bXAoKSkgPD0gQXJnOjpXaWR0aDMy
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlTW92ZTMySWZEaWRTcGlsbCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpck9wY29kZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDE5NDQzMSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHdvcmtpbmcgY29weSkKQEAgLTIw
MSwxMCArMjAxLDEwIEBAIHg4NjogTXVsRmxvYXQgVTpGOjMyLCBVRDpGOjMyCiAgICAgVG1wLCBU
bXAKICAgICBBZGRyLCBUbXAKIAotYXJtNjQ6IERpdkRvdWJsZSBVOkY6MzIsIFU6RjozMiwgRDpG
OjMyCithcm02NDogRGl2RG91YmxlIFU6Rjo2NCwgVTpGOjMyLCBEOkY6NjQKICAgICBUbXAsIFRt
cCwgVG1wCiAKLXg4NjogRGl2RG91YmxlIFU6RjozMiwgVUQ6RjozMgoreDg2OiBEaXZEb3VibGUg
VTpGOjY0LCBVRDpGOjY0CiAgICAgVG1wLCBUbXAKICAgICBBZGRyLCBUbXAKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5jcHAJKHJldmlzaW9uIDE5
NDQzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVG1wV2lkdGguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAj
aW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC01MCw2
ICs1MSwxMyBAQCB2b2lkIFRtcFdpZHRoOjpyZWNvbXB1dGUoQ29kZSYgY29kZSkKIHsKICAgICAv
LyBTZXQgdGhpcyB0byB0cnVlIHRvIGNhdXNlIHRoaXMgYW5hbHlzaXMgdG8gYWx3YXlzIHJldHVy
biBwZXNzaW1pc3RpYyByZXN1bHRzLgogICAgIGNvbnN0IGJvb2wgYmVDYXJlZnVsID0gZmFsc2U7
CisKKyAgICBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworICAgIGlmICh2ZXJib3NlKSB7
CisgICAgICAgIGRhdGFMb2coIkNvZGUgYmVmb3JlIFRtcFdpZHRoOlxuIik7CisgICAgICAgIGRh
dGFMb2coY29kZSk7CisgICAgfQogICAgIAogICAgIG1fd2lkdGguY2xlYXIoKTsKICAgICAKQEAg
LTE1MCw2ICsxNTgsMTQgQEAgdm9pZCBUbXBXaWR0aDo6cmVjb21wdXRlKENvZGUmIGNvZGUpCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgZGF0YUxvZygid2lkdGg6ICIsIG1hcER1bXAobV93aWR0aCksICJcbiIpOworfQorCit2b2lk
IFRtcFdpZHRoOjpXaWR0aHM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBv
dXQucHJpbnQoInt1c2UgPSAiLCB1c2UsICIsIGRlZiA9ICIsIGRlZiwgIn0iKTsKIH0KIAogfSB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJUbXBXaWR0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyVG1wV2lkdGguaAkocmV2aXNpb24gMTk0NDMxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJUbXBXaWR0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5
Miw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB1c2UgPSBBcmc6Om1pbmltdW1XaWR0aCh0eXBl
KTsKICAgICAgICAgICAgIGRlZiA9IEFyZzo6bWluaW11bVdpZHRoKHR5cGUpOwogICAgICAgICB9
CisKKyAgICAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogICAgICAgICAK
ICAgICAgICAgQXJnOjpXaWR0aCB1c2U7CiAgICAgICAgIEFyZzo6V2lkdGggZGVmOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5jcHAJKHJldmlzaW9uIDE5NDQz
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjUsNiArMTI1LDExIEBAIExWYWx1ZSBPdXRwdXQ6OmRvdWJsZVRvVUludChM
VmFsdWUgdmFsdWUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitMVmFsdWUgT3V0cHV0Ojp1bnNp
Z25lZFRvRG91YmxlKExWYWx1ZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gaW50VG9Eb3VibGUoemVy
b0V4dCh2YWx1ZSwgSW50NjQpKTsKK30KKwogTFZhbHVlIE91dHB1dDo6bG9hZDhTaWduRXh0MzIo
VHlwZWRQb2ludGVyIHBvaW50ZXIpCiB7CiAgICAgTFZhbHVlIGxvYWQgPSBtX2Jsb2NrLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KG1fcHJvYywgTG9hZDhTLCBJbnQzMiwgb3JpZ2luKCksIHBvaW50
ZXIudmFsdWUoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEIzT3V0cHV0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5o
CShyZXZpc2lvbiAxOTQ0MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEIzT3V0
cHV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OSw3ICsxODksNyBAQCBwdWJsaWM6CiAgICAgfQog
ICAgIExWYWx1ZSB6ZXJvRXh0UHRyKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gemVyb0V4dCh2YWx1
ZSwgQjM6OkludDY0KTsgfQogICAgIExWYWx1ZSBpbnRUb0RvdWJsZShMVmFsdWUgdmFsdWUpIHsg
cmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OklUb0QsIG9y
aWdpbigpLCB2YWx1ZSk7IH0KLSAgICBMVmFsdWUgdW5zaWduZWRUb0RvdWJsZShMVmFsdWUgdmFs
dWUpIHsgQ1JBU0goKTsgfQorICAgIExWYWx1ZSB1bnNpZ25lZFRvRG91YmxlKExWYWx1ZSB2YWx1
ZSk7CiAgICAgTFZhbHVlIGNhc3RUb0ludDMyKExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAg
IHJldHVybiB2YWx1ZS0+dHlwZSgpID09IEIzOjpJbnQzMiA/IHZhbHVlIDoK
</data>
<flag name="review"
          id="292939"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>