<?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>154664</bug_id>
          
          <creation_ts>2016-02-24 19:02:00 -0800</creation_ts>
          <short_desc>[JSC] Temporal Dead Zone checks on &quot;this&quot; are eliminated when doing OSR Entry to FTL</short_desc>
          <delta_ts>2016-02-25 18:04:41 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1167999</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-02-24 19:02:00 -0800</bug_when>
    <thetext>[JSC] Temporal Dead Zone checks on &quot;this&quot; are eliminated when doing OSR Entry to FTL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168001</commentid>
    <comment_count>1</comment_count>
      <attachid>272168</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-02-24 19:06:26 -0800</bug_when>
    <thetext>Created attachment 272168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168002</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-02-24 19:11:18 -0800</bug_when>
    <thetext>I went this way because that was easy :)

I am not familiar with the responsibilities of VariableAccessData. Would it make more sense to have a flush format FlushedJSValueOrEmpty and a flag on VariableAccessData when empty is an option?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168213</commentid>
    <comment_count>3</comment_count>
      <attachid>272168</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-02-25 14:13:29 -0800</bug_when>
    <thetext>Comment on attachment 272168
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        that this may have been set to null by a previously executed block.

&quot;null&quot; or the empty value?  Two different things and I think you mean empty value.

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        In this patch, I added a simple workaround: A new node CanBeEmptyHint

This is really ugly.  Can we just make ExtractOSREntryLocal have a flag or something that indicates that it might return the empty value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168216</commentid>
    <comment_count>4</comment_count>
      <attachid>272168</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-02-25 14:17:48 -0800</bug_when>
    <thetext>Comment on attachment 272168
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:166
&gt; +            changed |= variableAccessData-&gt;predict(SpecBytecodeTop);

This is extremely bad.  You&apos;re turning off all type inference for &apos;this&apos;!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168217</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-02-25 14:19:02 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 272168 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=272168&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:9
&gt; &gt; +        that this may have been set to null by a previously executed block.
&gt; 
&gt; &quot;null&quot; or the empty value?  Two different things and I think you mean empty
&gt; value.
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:14
&gt; &gt; +        In this patch, I added a simple workaround: A new node CanBeEmptyHint
&gt; 
&gt; This is really ugly.  Can we just make ExtractOSREntryLocal have a flag or
&gt; something that indicates that it might return the empty value?

Right - you can&apos;t do this because there is no ExtractOSREntryLocal.

I think that this problem has nothing to do with prediction propagation.  Why isn&apos;t this an AbstractInterpreter change that makes sure that AI knows that &apos;this&apos; could be the empty value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168258</commentid>
    <comment_count>6</comment_count>
      <attachid>272250</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-02-25 15:22:40 -0800</bug_when>
    <thetext>Created attachment 272250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168259</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-02-25 15:23:19 -0800</bug_when>
    <thetext>I was convinced this would be a perf regression but it is completely neutral:


                                                  Conf#1                    Conf#2                                      
Octane:
   encrypt                                   0.26922+-0.00229          0.26788+-0.00274       
   decrypt                                   4.98148+-0.02076    ?     4.98607+-0.01449       ?
   deltablue                        x2       0.22267+-0.00673          0.22164+-0.00638       
   earley                                    0.51225+-0.00240          0.50874+-0.00208       
   boyer                                     8.34783+-0.03074          8.34247+-0.03670       
   navier-stokes                    x2       6.47051+-0.00903    ?     6.47304+-0.00743       ?
   raytrace                         x2       1.51409+-0.01446          1.51369+-0.01413       
   richards                         x2       0.14226+-0.00122          0.14169+-0.00130       
   splay                            x2       0.53940+-0.00313          0.53757+-0.00336       
   regexp                           x2      39.26591+-0.32509    ?    39.48002+-0.62183       ?
   pdfjs                            x2      61.29357+-0.26341         61.11385+-0.19545       
   mandreel                         x2      70.67145+-0.65415         70.09903+-0.42861       
   gbemu                            x2      46.61627+-1.11143         46.12028+-0.78242         might be 1.0108x faster
   closure                                   0.93911+-0.00197          0.93727+-0.00265       
   jquery                                   11.91794+-0.07194    ?    12.01694+-0.16999       ?
   box2d                            x2      16.65716+-0.12012         16.64404+-0.08303       
   zlib                             x2     582.30538+-2.23464    ?   582.94125+-1.60820       ?
   typescript                       x2    1115.89500+-3.30588    ?  1119.10688+-6.57086       ?

   &lt;geometric&gt;                               8.65685+-0.03625          8.64086+-0.02104         might be 1.0019x faster

                                                  Conf#1                    Conf#2                                      
Kraken:
   ai-astar                                  151.121+-3.629      ?     151.314+-1.159         ?
   audio-beat-detection                       71.331+-0.263      ?      71.519+-0.323         ?
   audio-dft                                 127.270+-1.026      ?     127.357+-0.840         ?
   audio-fft                                  57.120+-0.125             57.041+-0.117         
   audio-oscillator                           85.345+-0.151      ?      85.349+-0.158         ?
   imaging-darkroom                           95.645+-0.178             95.468+-0.133         
   imaging-desaturate                         92.703+-0.271             92.581+-0.333         
   imaging-gaussian-blur                     132.539+-2.278            130.049+-3.360           might be 1.0191x faster
   json-parse-financial                       66.548+-0.428      ?      66.781+-0.349         ?
   json-stringify-tinderbox                   40.954+-0.088      ?      41.128+-0.320         ?
   stanford-crypto-aes                        63.024+-0.348             62.991+-0.614         
   stanford-crypto-ccm                        60.982+-1.559      ?      61.174+-1.411         ?
   stanford-crypto-pbkdf2                    153.449+-1.405            152.747+-1.040         
   stanford-crypto-sha256-iterative           59.976+-0.413      ?      60.595+-0.440         ? might be 1.0103x slower

   &lt;arithmetic&gt;                               89.858+-0.345             89.721+-0.259           might be 1.0015x faster

                                                  Conf#1                    Conf#2                                      
AsmBench:
   bigfib.cpp                               661.8311+-9.5454          657.4292+-6.3489        
   cray.c                                   577.4569+-2.2899     ?    580.9863+-2.2050        ?
   dry.c                                    675.2116+-17.1696         674.9946+-7.3268        
   FloatMM.c                                907.1338+-8.6865          897.4068+-8.5989          might be 1.0108x faster
   gcc-loops.cpp                           6307.8684+-6.3469     ?   6316.4279+-9.5400        ?
   n-body.c                                1583.8569+-3.1433         1582.5694+-2.4083        
   Quicksort.c                              589.0678+-1.4176     ?    589.9603+-1.7609        ?
   stepanov_container.cpp                  4538.2725+-32.5647    ?   4548.8271+-27.7810       ?
   Towers.c                                 386.0708+-0.3375     ?    386.7750+-0.8667        ?

   &lt;geometric&gt;                             1102.7601+-2.8050         1102.1545+-1.5262          might be 1.0005x faster

                                                  Conf#1                    Conf#2                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                           95.0157+-0.2075           94.8919+-0.0949          might be 1.0013x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168346</commentid>
    <comment_count>8</comment_count>
      <attachid>272250</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-25 18:04:37 -0800</bug_when>
    <thetext>Comment on attachment 272250
Patch

Clearing flags on attachment: 272250

Committed r197155: &lt;http://trac.webkit.org/changeset/197155&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168347</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-25 18:04:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272168</attachid>
            <date>2016-02-24 19:06:26 -0800</date>
            <delta_ts>2016-02-25 15:22:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154664-20160224190609.patch</filename>
            <type>text/plain</type>
            <size>13609</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YmZkZGQwNjcyNjU3OGE2YzgxMDllZjk5OWMwYTk2ZWExOTI0MzcyLi4zMTgyZDNiMmFlMGNkMjlj
ZmYwODBkOWE3MDcyOTU2NmI1YjM5MDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxNi0wMi0yNCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ10gVGVtcG9yYWwgRGVhZCBab25lIGNoZWNrcyBvbiAidGhp
cyIgYXJlIGVsaW1pbmF0ZWQgd2hlbiBkb2luZyBPU1IgRW50cnkgdG8gRlRMCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ2NjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIE9TUiBFbnRl
ciBpbnRvIGEgY29uc3RydWN0b3IsIHdlIGxvc2UgdGhlIGluZm9ybWF0aW9uCisgICAgICAgIHRo
YXQgdGhpcyBtYXkgaGF2ZSBiZWVuIHNldCB0byBudWxsIGJ5IGEgcHJldmlvdXNseSBleGVjdXRl
ZCBibG9jay4KKworICAgICAgICBBbGwgdGhlIGNvZGUganVzdCBhc3N1bWVkIHRoZSB0eXBlIGZv
ciBhIEZsdXNoZWRKUyB2YWx1ZSBhbmQgdGh1cworICAgICAgICBub3QgYW4gZW1wdHkgdmFsdWUu
CisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwgSSBhZGRlZCBhIHNpbXBsZSB3b3JrYXJvdW5kOiBB
IG5ldyBub2RlIENhbkJlRW1wdHlIaW50CisgICAgICAgIGJlZm9yZSB0aGUgU2V0QXJndW1lbnQg
aW5mb3JtcyB0aGUgdHlwZSBzeXN0ZW0gdGhhdCB0aGUgdmFsdWUgbWF5IGhhdmUKKyAgICAgICAg
YmVlbiBzZXQgdG8gZW1wdHkgb3V0c2lkZSB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAgSW4gdGhl
IGZ1dHVyZSwgd2Ugc2hvdWxkIHJlYWxseSB3YWxrIHRoZSBkb21pbmF0b3JzIHRvIGZpbmQgd2hh
dCBjYW5ub3QKKyAgICAgICAgcG9zc2libHkgYmUgZW1wdHkgKHNpbmNlIHRoYXQncyB0aGUgY29t
bW9uIGNhc2UpLgorICAgICAgICBJbiB0aGlzIHBhdGNoLCBJIHdlbnQgd2l0aCB0aGUgbW9zdCBj
b25zZXJ2YXRpdmUgYXBwcm9hY2ggYW5kIGFsd2F5cyBhc3N1bWUKKyAgICAgICAgdGhlIHdvcnN0
LgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAo
SlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICog
ZGZnL0RGR01heUV4aXQuY3BwOgorICAgICAgICAoSlNDOjpERkc6Om1heUV4aXQpOgorICAgICAg
ICAqIGRmZy9ERkdOb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNWYXJpYWJs
ZUFjY2Vzc0RhdGEpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRm
Zy9ERkdPU1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
T1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAg
KiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxl
KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9jbGFzcy1zeW50YXgtdGR6LW9zci1lbnRyeS1pbi1sb29wLmpzOiBBZGRlZC4KKyAgICAgICAg
KEEpOgorICAgICAgICAoQik6CisgICAgICAgIChpLmNhdGNoKToKKwogMjAxNi0wMi0yNCAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE5NzAzMy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCBkN2MxYmZmODQz
Y2U0ODU5MzY1YzVhMTQ4NGZmYmE2NmI2ZTkzNGFiLi4yM2ZjMmE0ODI2Y2MwY2MzNTc3YWZhNmQ2
MjNjZTZhMDQ4YWE5MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0xNTMsNyArMTUzLDEyIEBA
IGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZl
Y3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGZvck5vZGUobm9kZSkubWFrZUJ5dGVj
b2RlVG9wKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAgICAgICAgIAorCisgICAgY2Fz
ZSBDYW5CZUVtcHR5SGludDogeworICAgICAgICBtX3N0YXRlLnZhcmlhYmxlcygpLm9wZXJhbmQo
bm9kZS0+bG9jYWwoKSkubWFrZUJ5dGVjb2RlVG9wKCk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KwogICAgIGNhc2UgR2V0TG9jYWw6IHsKICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJp
YWJsZUFjY2Vzc0RhdGEgPSBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAgQWJz
dHJhY3RWYWx1ZSB2YWx1ZSA9IG1fc3RhdGUudmFyaWFibGVzKCkub3BlcmFuZCh2YXJpYWJsZUFj
Y2Vzc0RhdGEtPmxvY2FsKCkub2Zmc2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Nsb2JiZXJpemUuaAppbmRleCAzNDNhNmRlOWMyOTA5YjkzZTA1MjhjZjAyNzg0YWFkOTRkMDFi
NGQxLi42NDBjODgxZDI0YjlkZjk1ZjQ3MDFlZTRiOTViZDg3NjVhZWZhNDc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMzQ0LDYgKzM0NCw3IEBAIHZv
aWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9y
JiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAgICAg
Y2FzZSBTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBQdXRIaW50OgorICAgIGNhc2UgQ2FuQmVFbXB0
eUhpbnQ6CiAgICAgICAgIHdyaXRlKFNpZGVTdGF0ZSk7CiAgICAgICAgIHJldHVybjsKICAgICAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNzAyZGE1YmYx
ZTdjMGYxYzhmZTU1YzY0ODQ0NThmY2FkODFlMmFhNS4uY2UxMDg2YzU0YjgwZmU0MWRiY2NkYjM1
OGZiMzBjMjc3N2JlYTNlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNw
cApAQCAtMTcxLDYgKzE3MSw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSkKICAgICBjYXNlIFN0cmluZ0Zyb21DaGFyQ29kZToKICAgICBjYXNlIFVucmVhY2hhYmxlOgog
ICAgIGNhc2UgRXh0cmFjdE9TUkVudHJ5TG9jYWw6CisgICAgY2FzZSBDYW5CZUVtcHR5SGludDoK
ICAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOgogICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVy
bjoKICAgICBjYXNlIENoZWNrVGllclVwQW5kT1NSRW50ZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCA2YTRlYjEzYWVkMzJiYjk3ZThjNGRhODk3
Mjg3NjA4NDJjNjA5Y2I5Li5lNWNhMTdlNzBkZDQ2NWU1OGIxZjQ2Y2RlM2NiNzY2ZDUwZjZiMGQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTE0
NjUsNiArMTQ2NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ2hlY2tXYXRjaGRvZ1RpbWVy
OgogICAgICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgICAgICBjYXNlIEV4dHJhY3RPU1JFbnRy
eUxvY2FsOgorICAgICAgICBjYXNlIENhbkJlRW1wdHlIaW50OgogICAgICAgICBjYXNlIExvb3BI
aW50OgogICAgICAgICBjYXNlIE1vdkhpbnQ6CiAgICAgICAgIGNhc2UgWm9tYmllSGludDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWF5RXhpdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01heUV4aXQuY3BwCmluZGV4IGRhYTI5MzM5ZGJmYmRm
ODBhYWQ5YjY0NmEyY2I3YTA1ODdkOTYyMzguLjk0NmNkZDk1Yzk5NDBmNzhiZjdkMTgzYzFhNDM1
NTg0MGZkOWMwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWF5
RXhpdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXlFeGl0LmNwcApA
QCAtMTI0LDYgKzEyNCw3IEBAIEV4aXRNb2RlIG1heUV4aXQoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlKQogICAgIGNhc2UgSW50NTJSZXA6CiAgICAgY2FzZSBWYWx1ZVJlcDoKICAgICBjYXNlIEV4
dHJhY3RPU1JFbnRyeUxvY2FsOgorICAgIGNhc2UgQ2FuQmVFbXB0eUhpbnQ6CiAgICAgY2FzZSBM
b2dpY2FsTm90OgogICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmNwcAppbmRleCA2YTk4NTM0MjQ2ODcxYmE2
Yjk1OWMwYjMyNGU3Nzc3YTI5YjQyYTIzLi5jYTFlYmE3YTMxMjQ3MTFlMGM4NjdiNjJlOWQ3OTU0
MWFmZjM2N2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5jcHAKQEAgLTc5LDYg
Kzc5LDcgQEAgYm9vbCBOb2RlOjpoYXNWYXJpYWJsZUFjY2Vzc0RhdGEoR3JhcGgmIGdyYXBoKQog
ICAgIGNhc2UgU2V0QXJndW1lbnQ6CiAgICAgY2FzZSBGbHVzaDoKICAgICBjYXNlIFBoYW50b21M
b2NhbDoKKyAgICBjYXNlIENhbkJlRW1wdHlIaW50OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmgKaW5kZXggZGRkMGI5N2NiMmZlNjkyNjA0NTEwM2Y4YTcxMDcwMDQ4MmU5
ZjZiZC4uMjY3OWRlNWI0MDZmZmE1Y2QxNmI2YWM4NjllYjFlZmE2Yzk5OGI0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtODksNiArODksOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgLyogdmFyaWFibGUgZnJvbSB0aGUgc2NyYXRj
aCBidWZmZXIuICovXAogICAgIG1hY3JvKEV4dHJhY3RPU1JFbnRyeUxvY2FsLCBOb2RlUmVzdWx0
SlMpIFwKICAgICBcCisgICAgLyogU3BlY2lhbCBub2RlIGhpbnRpbmcgdGhhdCBhIGxvY2FsIGNh
biBiZSB0aGUgZW1wdHkgdmFsdWUuICovXAorICAgIG1hY3JvKENhbkJlRW1wdHlIaW50LCBOb2Rl
TXVzdEdlbmVyYXRlKSBcCisgICAgXAogICAgIC8qIFRpZXItdXAgY2hlY2tzIGZyb20gdGhlIERG
RyB0byB0aGUgRlRMLiAqL1wKICAgICBtYWNybyhDaGVja1RpZXJVcEluTG9vcCwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrVGllclVwQW5kT1NSRW50ZXIsIE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50
cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHAKaW5kZXggNWU1YTE1MDRjMjRkMDY0MDRmNzg2
YjE3MjJlMmY2MTUwZjhmYWI2My4uNjhlNzY2ZGFjNDkzNjQ0ODg4MTE0MzY5NjcwNDRjNjkyNDdk
OTBjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeXBv
aW50Q3JlYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHAKQEAgLTExOCw5ICsxMTgsMTYgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgIC8vIEp1c3QgZm9yIHNhbml0eSwgYWx3YXlzIGhhdmUgYSBTZXRB
cmd1bWVudCBldmVuIGlmIGl0J3Mgbm90IG5lZWRlZC4KICAgICAgICAgICAgICAgICBvbGROb2Rl
ID0gbV9ncmFwaC5tX2FyZ3VtZW50c1thcmd1bWVudF07CiAgICAgICAgICAgICB9CisgICAgICAg
ICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSA9IG9sZE5vZGUtPnZh
cmlhYmxlQWNjZXNzRGF0YSgpOworICAgICAgICAgICAgLy8gInRoaXMiIGNhbiBiZSBlbXB0eSBp
ZiB3ZSBPU1IgRW50ZXIgaW4gYSBjb25zdHJ1Y3RvciBiZWZvcmUgdGhlIG9iamVjdAorICAgICAg
ICAgICAgLy8gaXMgaW5pdGlhbGl6ZWQuCisgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgb3Bl
cmFuZCA9IHZhcmlhYmxlQWNjZXNzRGF0YS0+bG9jYWwoKTsKKyAgICAgICAgICAgIGlmIChvcGVy
YW5kLmlzQXJndW1lbnQoKSAmJiAhb3BlcmFuZC50b0FyZ3VtZW50KCkpCisgICAgICAgICAgICAg
ICAgbmV3Um9vdC0+YXBwZW5kTm9kZShtX2dyYXBoLCBTcGVjTm9uZSwgQ2FuQmVFbXB0eUhpbnQs
IG9yaWdpbiwgT3BJbmZvKHZhcmlhYmxlQWNjZXNzRGF0YSkpOworCiAgICAgICAgICAgICBOb2Rl
KiBub2RlID0gbmV3Um9vdC0+YXBwZW5kTm9kZSgKICAgICAgICAgICAgICAgICBtX2dyYXBoLCBT
cGVjTm9uZSwgU2V0QXJndW1lbnQsIG9yaWdpbiwKLSAgICAgICAgICAgICAgICBPcEluZm8ob2xk
Tm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpKTsKKyAgICAgICAgICAgICAgICBPcEluZm8odmFy
aWFibGVBY2Nlc3NEYXRhKSk7CiAgICAgICAgICAgICBtX2dyYXBoLm1fYXJndW1lbnRzW2FyZ3Vt
ZW50XSA9IG5vZGU7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBmYTQ4
MjQ4NDI5YWIzY2QyMTNmNzU2M2ZiNGJmNzQ3M2JmMTAyOTAwLi4xMzgxMDA3YzQ5YTgxMzJhMmQ1
ODlhNzliMjk5YTg0NDY1MWFkM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMTYwLDYg
KzE2MCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgY2hhbmdlZCB8PSB2YXJpYWJsZUFjY2Vz
c0RhdGEtPnByZWRpY3Qobm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQorCisgICAgICAgIGNhc2UgQ2FuQmVFbXB0eUhpbnQ6IHsKKyAg
ICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGVBY2Nlc3NEYXRhID0gbm9kZS0+
dmFyaWFibGVBY2Nlc3NEYXRhKCk7CisgICAgICAgICAgICBjaGFuZ2VkIHw9IHZhcmlhYmxlQWNj
ZXNzRGF0YS0+cHJlZGljdChTcGVjQnl0ZWNvZGVUb3ApOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEJpdEFuZDoKICAgICAgICAgY2Fz
ZSBCaXRPcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgK
aW5kZXggMjMwZWZlZGM0ODMxNTEyYmFjNTY4YmVlZmRiMjc2OTYxODcyMDk0Yy4uYTY1MDM5NzNj
ZDg2M2ZjNGRkNTFiOTFkZjNiMzE5ODk3MzNkNzhjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTI4Nyw2ICsyODcsNyBAQCBib29sIHNhZmVU
b0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUpCiAgICAgY2FzZSBOZXdUeXBlZEFycmF5OgogICAgIGNhc2UgVW5yZWFjaGFibGU6CiAgICAg
Y2FzZSBFeHRyYWN0T1NSRW50cnlMb2NhbDoKKyAgICBjYXNlIENhbkJlRW1wdHlIaW50OgogICAg
IGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CiAgICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgog
ICAgIGNhc2UgQ2hlY2tUaWVyVXBBbmRPU1JFbnRlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDM4YTEyNDA1ODMw
ZWJmYWQwNmIzNzBkZTU1NGIxMWY2NmYyNDU1MDUuLjE1ZTFkMjcyNmViMWM2ODRjNjAwYzUxNGE4
NDBiOTgwZDI1Y2YyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDgyNiw2ICs0ODI2LDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgUGhpOgogICAgIGNhc2Ug
VXBzaWxvbjoKICAgICBjYXNlIEV4dHJhY3RPU1JFbnRyeUxvY2FsOgorICAgIGNhc2UgQ2FuQmVF
bXB0eUhpbnQ6CiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKICAgICBjYXNlIENoZWNrVGll
clVwQXRSZXR1cm46CiAgICAgY2FzZSBDaGVja1RpZXJVcEFuZE9TUkVudGVyOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggOGY1
Njg4YTQ1NTM3OGIwZTI4YzYxZTdkMTgxOWUzNGU0YTNkMmE5NC4uZGM1Y2Q0MTdkYTE2NGRjNjM1
NGM1Y2NlODUzOTIzMGNhMjliMzNmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC00ODc3LDYgKzQ4NzcsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQaGk6CiAgICAgY2Fz
ZSBVcHNpbG9uOgogICAgIGNhc2UgRXh0cmFjdE9TUkVudHJ5TG9jYWw6CisgICAgY2FzZSBDYW5C
ZUVtcHR5SGludDoKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6CiAgICAgY2FzZSBBcml0aElNdWw6
CiAgICAgY2FzZSBNdWx0aUdldEJ5T2Zmc2V0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDgzNDhkY2M2YzI1Y2I4OTVkM2ZkMGE4YzNlZDdj
YjMyM2YyYmVkNTMuLjljMDljNDI4ODQ3YWM1Yzk2MGQ3MWI0MjQ1OGRiNDNiZWE2NThmMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTEw
Nyw2ICsxMDcsNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9k
ZSkKICAgICBjYXNlIFBoaToKICAgICBjYXNlIFVwc2lsb246CiAgICAgY2FzZSBFeHRyYWN0T1NS
RW50cnlMb2NhbDoKKyAgICBjYXNlIENhbkJlRW1wdHlIaW50OgogICAgIGNhc2UgTG9vcEhpbnQ6
CiAgICAgY2FzZSBTa2lwU2NvcGU6CiAgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IGJhNTEwMDEw
NjkyNzZmNGVjYTFlMGVlZjcxNjIzM2RkZTNiYjgwNGMuLmM3YjI4NzE4MDZiNjNjY2VjNzdhZDgx
MjAxOTMzZjFjYTZjMmVjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKQEAgLTkxNyw2ICs5MTcsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IFB1dEhpbnQ6CiAgICAgICAgIGNhc2UgQm90dG9tVmFsdWU6CiAgICAgICAgIGNhc2UgS2lsbFN0
YWNrOgorICAgICAgICBjYXNlIENhbkJlRW1wdHlIaW50OgogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAi
VW5yZWNvZ25pemVkIG5vZGUgaW4gRlRMIGJhY2tlbmQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvY2xhc3Mtc3ludGF4LXRkei1vc3ItZW50cnktaW4t
bG9vcC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvY2xhc3Mtc3ludGF4
LXRkei1vc3ItZW50cnktaW4tbG9vcC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMmRhNzU5NzNmMjE2NmZjODMx
YzdmY2M2MTk0NDcwNzI0NzIyOTlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtdGR6LW9zci1lbnRyeS1pbi1sb29wLmpz
CkBAIC0wLDAgKzEsNTggQEAKKworY2xhc3MgQSB7CisgICAgY29uc3RydWN0b3IoKSB7IH0KK30K
KworY2xhc3MgQiBleHRlbmRzIEEgeworICAgIGNvbnN0cnVjdG9yKGl0ZXJhdGlvbkNvdW50KSB7
CisgICAgICAgIGxldCB2YWx1ZXMgPSBbXTsKKworICAgICAgICBmb3IgKGxldCBpID0gMjsgaSA8
IGl0ZXJhdGlvbkNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIC8vIExldCdzIGtlZXAgdGhlIGxv
b3AgYnVzeS4KKyAgICAgICAgICAgIGxldCBkaXZpZGVkID0gZmFsc2U7CisgICAgICAgICAgICBm
b3IgKGxldCBqID0gaSAtIDE7IGogPiAxOyAtLWopIHsKKyAgICAgICAgICAgICAgICBpZiAoIShp
ICUgaikpIHsKKyAgICAgICAgICAgICAgICAgICAgZGl2aWRlZCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmICghZGl2aWRlZCkKKyAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsKKwor
ICAgICAgICAgICAgaWYgKCEoaSAlIChpdGVyYXRpb25Db3VudCAtIDIpKSkKKyAgICAgICAgICAg
ICAgICBwcmludCh0aGlzKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlcy5sZW5ndGggPT0g
aXRlcmF0aW9uQ291bnQpCisgICAgICAgICAgICAgICAgc3VwZXIodmFsdWVzKTsKKyAgICAgICAg
fQorICAgIH0KK30KKworbm9JbmxpbmUoQik7CisKKy8vIFNtYWxsIHdhcm0gdXAgd2l0aCBzbWFs
bCBpdGVyYXRpb24gY291bnQuIFRyeSB0byBnZXQgdG8gREZHLgorZm9yICh2YXIgaSA9IDA7IGkg
PCAzMDsgKytpKSB7CisgICAgdmFyIGV4Y2VwdGlvbiA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAg
ICAgbmV3IEIoMTApOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsK
KyAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkKKyAgICAgICAgICAg
IHRocm93ICJFeGNlcHRpb24gdGhyb3duIGluIGl0ZXJhdGlvbiAiICsgaSArICIgd2FzIG5vdCBh
IHJlZmVyZW5jZSBlcnJvciI7CisgICAgfQorICAgIGlmICghZXhjZXB0aW9uKQorICAgICAgICB0
aHJvdyAiRXhjZXB0aW9uIG5vdCB0aHJvd24gZm9yIGFuIHVuaXRpYWxpemVkIHRoaXMgYXQgaXRl
cmF0aW9uICIgKyBpOworfQorCisvLyBOb3cgdHJ5IHRvIGdvIHRvIEZUTCBpbiB0aGUgY29uc3Ry
dWN0b3IuCitmb3IgKHZhciBpID0gMDsgaSA8IDI7ICsraSkgeworICAgIHZhciBleGNlcHRpb24g
PSBudWxsOworICAgIHRyeSB7CisgICAgICAgIG5ldyBCKDdlMyk7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICBleGNlcHRpb24gPSBlOworICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgUmVm
ZXJlbmNlRXJyb3IpKQorICAgICAgICAgICAgdGhyb3cgIkV4Y2VwdGlvbiB0aHJvd24gaW4gaXRl
cmF0aW9uICIgKyBpICsgIiB3YXMgbm90IGEgcmVmZXJlbmNlIGVycm9yIjsKKyAgICB9CisgICAg
aWYgKCFleGNlcHRpb24pCisgICAgICAgIHRocm93ICJFeGNlcHRpb24gbm90IHRocm93biBmb3Ig
YW4gdW5pdGlhbGl6ZWQgdGhpcyBhdCBpdGVyYXRpb24gIiArIGk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272250</attachid>
            <date>2016-02-25 15:22:40 -0800</date>
            <delta_ts>2016-02-25 18:04:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154664-20160225152223.patch</filename>
            <type>text/plain</type>
            <size>2062</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OTlmN2UxNTNkZGJiNzdkMmQ5MTI2ZGY2MTFhNTkyYzBlYTFkMzJkLi45Yzk1YmFmYmFlMGE3M2Fm
Yzc5ZTdjMDY3NjNkZDA1NjZhNDUwNjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNi0wMi0yNSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ10gVGVtcG9yYWwgRGVhZCBab25lIGNoZWNrcyBvbiAidGhp
cyIgYXJlIGVsaW1pbmF0ZWQgd2hlbiBkb2luZyBPU1IgRW50cnkgdG8gRlRMCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ2NjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIE9TUiBFbnRl
ciBpbnRvIGEgY29uc3RydWN0b3IsIHdlIGxvc2UgdGhlIGluZm9ybWF0aW9uCisgICAgICAgIHRo
YXQgdGhpcyBtYXkgaGF2ZSBiZWVuIHNldCB0byBlbXB0eSBieSBhIHByZXZpb3VzbHkgZXhlY3V0
ZWQgYmxvY2suCisKKyAgICAgICAgQWxsIHRoZSBjb2RlIGp1c3QgYXNzdW1lZCB0aGUgdHlwZSBm
b3IgYSBGbHVzaGVkSlMgdmFsdWUgYW5kIHRodXMKKyAgICAgICAgbm90IGFuIGVtcHR5IHZhbHVl
LiBJdCB3YXMgdGhlbiBva2F5IHRvIGVsaW1pbmF0ZSB0aGUgVERaIGNoZWNrcy4KKworICAgICAg
ICBJbiB0aGlzIHBhdGNoLCB0aGUgdmFsdWVzIG9uIHJvb3QgZW50cnkgbm93IGFzc3VtZSB0aGV5
IG1heSBiZSBlbXB0eS4KKyAgICAgICAgQXMgYSByZXN1bHQsIHRoZSBTZXRBcmd1bWVudCgpIGZv
ciAidGhpcyIgaGFzICJlbXB0eSIgYXMgcG9zc2libGUKKyAgICAgICAgdHlwZSBhbmQgdGhlIFRE
WiBjaGVja3MgYXJlIG5vIGxvbmdlciBlbGltaW5hdGVkLgorCisgICAgICAgICogZGZnL0RGR0lu
UGxhY2VBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpJblBsYWNlQWJzdHJh
Y3RTdGF0ZTo6aW5pdGlhbGl6ZSk6CisKIDIwMTYtMDItMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFeHBvc2UgUHJveHkg
dGFyZ2V0IGFuZCBoYW5kbGVyIGludGVybmFsIHByb3BlcnRpZXMgdG8gSW5zcGVjdG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUu
Y3BwCmluZGV4IDU1NmI4Yzg4ZDM2N2QzMjBiNTBmYjI3NjI3OTFmZjQzN2Q0NjliM2UuLmZlZmY0
ZWJmMWEyNDQ4MTkzMTRhYzM2ODI1NGRjNDQxM2NlYzJmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCkBAIC0xMjEs
NyArMTIxLDcgQEAgdm9pZCBJblBsYWNlQWJzdHJhY3RTdGF0ZTo6aW5pdGlhbGl6ZSgpCiAgICAg
ICAgICAgICByb290LT52YWx1ZXNBdEhlYWQuYXJndW1lbnQoaSkuc2V0VHlwZShtX2dyYXBoLCBT
cGVjQ2VsbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGbHVzaGVkSlNWYWx1
ZToKLSAgICAgICAgICAgIHJvb3QtPnZhbHVlc0F0SGVhZC5hcmd1bWVudChpKS5tYWtlSGVhcFRv
cCgpOworICAgICAgICAgICAgcm9vdC0+dmFsdWVzQXRIZWFkLmFyZ3VtZW50KGkpLm1ha2VCeXRl
Y29kZVRvcCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbnVsbHB0ciwgIkJhZCBmbHVzaCBmb3JtYXQgZm9yIGFy
Z3VtZW50Iik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>