<?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>183590</bug_id>
          
          <creation_ts>2018-03-12 23:24:47 -0700</creation_ts>
          <short_desc>[DFG][FTL] Make ArraySlice(0) code tight</short_desc>
          <delta_ts>2018-03-20 00:13:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1406079</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-12 23:24:47 -0700</bug_when>
    <thetext>[DFG][FTL] Make ArraySlice(0) code tight</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406080</commentid>
    <comment_count>1</comment_count>
      <attachid>335683</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-12 23:33:19 -0700</bug_when>
    <thetext>Created attachment 335683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406081</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-12 23:35:32 -0700</bug_when>
    <thetext>Attachment 335683 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:7632:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 3 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>1406091</commentid>
    <comment_count>3</comment_count>
      <attachid>335688</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-13 03:47:08 -0700</bug_when>
    <thetext>Created attachment 335688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406092</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-13 03:49:45 -0700</bug_when>
    <thetext>Attachment 335688 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:7624:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:7635:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:7689:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 3 in 9 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>1407597</commentid>
    <comment_count>5</comment_count>
      <attachid>335688</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-03-19 22:37:23 -0700</bug_when>
    <thetext>Comment on attachment 335688
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1079
&gt; +                fixEdge&lt;Int32Use&gt;(m_graph.varArgChild(node, 1));

Don’t you want to do this if count &gt;= 2?

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1080
&gt; +                if (node-&gt;numChildren() == 4)

Ignore above comment (bugzilla on my phone is not allowing me to delete the above comment). I misread the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407611</commentid>
    <comment_count>6</comment_count>
      <attachid>335688</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-20 00:12:10 -0700</bug_when>
    <thetext>Comment on attachment 335688
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:1080
&gt;&gt; +                if (node-&gt;numChildren() == 4)
&gt; 
&gt; Ignore above comment (bugzilla on my phone is not allowing me to delete the above comment). I misread the code.

OK, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407612</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-20 00:13:01 -0700</bug_when>
    <thetext>Committed r229742: &lt;https://trac.webkit.org/changeset/229742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407613</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-20 00:13:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/38653765&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335683</attachid>
            <date>2018-03-12 23:33:19 -0700</date>
            <delta_ts>2018-03-13 03:47:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183590-20180313153318.patch</filename>
            <type>text/plain</type>
            <size>3085</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
YzgwYmUzYWYyOWViMTYwZjYyNWFhNzA5ZmI0NDNiODQ4NmFiNGRlLi4wNzZjY2MzZGEzODAxYmM2
N2Q4NzNjYWQ3ZDc0YTUyZTJmMDA4OWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOC0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXVtGVExdIE1ha2UgQXJyYXlTbGljZSgwKSBjb2RlIHRpZ2h0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM1OTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmVtaXRQb3B1bGF0ZVNsaWNlSW5kZXgpOgorICAgICAgICBXZSBjYW4gc2tpcCBzb21lIG9mIGNo
ZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBwcm92ZW4gY29uc3RhbnQuCisKKyAgICAgICAg
KiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZUFycmF5U2xpY2UpOgorICAgICAgICBDaGFuZ2UgYmVsb3cgdG8gYmVs
b3dPckVxdWFsLiBJdCBkb2VzIG5vdCBjaGFuZ2UgbWVhbmluZyBpbiB0aGUgY29kZS4gQnV0IGl0
IGFsbG93cyB1cworICAgICAgICB0byBmb2xkIEJlbG93RXF1YWwoMCwgeCkgdG8gdHJ1ZS4KKwog
MjAxOC0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCBmaXggb2Jzb2xldGUgQVNTRVJUCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGI4YzA0NmMwYWE1YzhkNDVk
YzcwOTJhNTVkNTAwYjU2MGUzNDMxNzEuLmU5YWQ4Mzk2MWQzOWFlMDYxOWVhOWY0YzI3MGIwZjIy
ZTA0ZWY2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCkBAIC03NjIyLDYgKzc2MjIsMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1p
dFBvcHVsYXRlU2xpY2VJbmRleChFZGdlJiB0YXJnZXQsIEdQUlJlZyBsZW5ndGgsIEdQUlJlZwog
ICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBpbmRleCh0aGlzLCB0YXJnZXQpOwogICAgIEdQUlJl
ZyBpbmRleEdQUiA9IGluZGV4LmdwcigpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBk
b25lOworCisgICAgaWYgKHRhcmdldC0+aXNJbnQzMkNvbnN0YW50KCkpIHsKKyAgICAgICAgaW50
MzJfdCB2YWx1ZSA9IHRhcmdldC0+YXNJbnQzMigpOworICAgICAgICBpZiAodmFsdWUgPiAwKSB7
CisgICAgICAgICAgICBtX2ppdC5tb3ZlKGluZGV4R1BSLCByZXN1bHQpOworICAgICAgICAgICAg
ZG9uZS5hcHBlbmQobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93T3JFcXVhbCwg
cmVzdWx0LCBsZW5ndGgpKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUobGVuZ3RoLCByZXN1bHQp
OworICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09IDApCisgICAgICAgICAgICBtX2ppdC5tb3Zl
KGluZGV4R1BSLCByZXN1bHQpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1faml0Lm1v
dmUobGVuZ3RoLCByZXN1bHQpOworICAgICAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuYnJhbmNo
QWRkMzIoTWFjcm9Bc3NlbWJsZXI6OlBvc2l0aXZlT3JaZXJvLCBpbmRleEdQUiwgcmVzdWx0KSk7
CisgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMigwKSwgcmVzdWx0KTsKKyAgICAg
ICAgfQorICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIGF1dG8gaXNQb3NpdGl2ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpH
cmVhdGVyVGhhbk9yRXF1YWwsIGluZGV4R1BSLCBUcnVzdGVkSW1tMzIoMCkpOwogICAgIG1faml0
Lm1vdmUobGVuZ3RoLCByZXN1bHQpOwogICAgIGRvbmUuYXBwZW5kKG1faml0LmJyYW5jaEFkZDMy
KE1hY3JvQXNzZW1ibGVyOjpQb3NpdGl2ZU9yWmVybywgaW5kZXhHUFIsIHJlc3VsdCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IGJiMzY1
NjNjY2E2Zjg3MzZjNTUwMWNmMzMxOGU1ODFkYzEwMWViMjMuLmM5ODViYmExZTNkNjZkNWM0MTNh
ODM0ZTFhMzUxODRiOWM0ZTA5MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKQEAgLTQ3MDEsNyArNDcwMSw3IEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAgICAgICAgIExWYWx1ZSBzdGFydEluZGV4ID0gcmFuZ2UuZmlyc3Q7CiAgICAgICAgIExW
YWx1ZSBlbmRCb3VuZGFyeSA9IHJhbmdlLnNlY29uZDsKIAotICAgICAgICBMVmFsdWUgcmVzdWx0
TGVuZ3RoID0gbV9vdXQuc2VsZWN0KG1fb3V0LmJlbG93KHN0YXJ0SW5kZXgsIGVuZEJvdW5kYXJ5
KSwKKyAgICAgICAgTFZhbHVlIHJlc3VsdExlbmd0aCA9IG1fb3V0LnNlbGVjdChtX291dC5iZWxv
d09yRXF1YWwoc3RhcnRJbmRleCwgZW5kQm91bmRhcnkpLAogICAgICAgICAgICAgbV9vdXQuc3Vi
KGVuZEJvdW5kYXJ5LCBzdGFydEluZGV4KSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIo
MCkpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335688</attachid>
            <date>2018-03-13 03:47:08 -0700</date>
            <delta_ts>2018-03-19 22:37:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183590-20180313194707.patch</filename>
            <type>text/plain</type>
            <size>15506</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
YzljYzViYTY3MzY3MDdmMGUwMjE4OWIwZTVlNGU2M2JkZjk5OGU0Li5jZWVkZWFiYmZiNTJhMDk1
ZjUyMTM5Y2IwNmZjZjBiMmVkNjY0MzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxOC0wMy0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXVtGVExdIE1ha2UgQXJyYXlTbGljZSgwKSBjb2RlIHRpZ2h0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM1OTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIHRpZ2h0ZW5zIEFycmF5U2xpY2UgY29kZSwgaW4gcGFydGljdWxhciwgc3RhcnRJbmRleCA9
IDAgY2FzZS4KKworICAgICAgICAxLiBXZSBzdXBwb3J0IGFycmF5LnNsaWNlKCkgY2FsbC4gVGhp
cyBpcyBhIHdlbGwtdXNlZCB3YXkgdG8gY2xvbmUgYXJyYXkuCisgICAgICAgIEZvciBleGFtcGxl
LCB1bmRlcnNjb3JlLmpzIHVzZXMgdGhpcyB0ZWNobmlxdWUuCisKKyAgICAgICAgMi4gV2UgcmVt
b3ZlIHNldmVyYWwgY2hlY2tzIGlmIHRoZSBnaXZlbiBpbmRleCB2YWx1ZSBpcyBhIHByb3ZlbiBj
b25zdGFudC4KKworICAgICAgICAqIGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdh
dGUpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwpOgorICAgICAgICAqIGRm
Zy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1
cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRQb3B1bGF0ZVNsaWNlSW5kZXgpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlTbGljZSk6CisgICAgICAg
IFdlIGNhbiBza2lwIHNvbWUgb2YgY2hlY2tzIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHByb3Zl
biBjb25zdGFudC4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQXJyYXlTbGljZSk6CisgICAg
ICAgIENoYW5nZSBiZWxvdyB0byBiZWxvd09yRXF1YWwuIEl0IGRvZXMgbm90IGNoYW5nZSBtZWFu
aW5nIGluIHRoZSBjb2RlLiBCdXQgaXQgYWxsb3dzIHVzCisgICAgICAgIHRvIGZvbGQgQmVsb3dF
cXVhbCgwLCB4KSB0byB0cnVlLgorCiAyMDE4LTAzLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBHYXJkZW5pbmc6IHNwZWN1bGF0aXZlIGJ1aWxkIGZpeCBmb3Ig
V2luQ2Fpcm8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JhY2t3
YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
YWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCAxZDFmZTAzZTIwNzMwNzk3ZjBjZDBi
ZWQzOWU5OTJhOTg3N2IzNjE2Li45NTQ3Zjg5NjYxYTI1YTFmYTc2MmQ2OWM4Yzc2NzY5ZDM4NjFi
ODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JhY2t3YXJkc1By
b3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFj
a3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTIzOCwxMCArMjM4LDE0IEBAIGNsYXNzIEJh
Y2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogCiAgICAgICAgIGNhc2Ug
QXJyYXlTbGljZTogewogICAgICAgICAgICAgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKS0+
bWVyZ2VGbGFncyhOb2RlQnl0ZWNvZGVVc2VzQXNWYWx1ZSk7Ci0gICAgICAgICAgICBtX2dyYXBo
LnZhckFyZ0NoaWxkKG5vZGUsIDEpLT5tZXJnZUZsYWdzKE5vZGVCeXRlY29kZVVzZXNBc051bWJl
ciB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyIHwgTm9kZUJ5dGVjb2RlVXNlc0FzSW50IHwgTm9k
ZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCk7Ci0gICAgICAgICAgICBpZiAobm9kZS0+bnVtQ2hp
bGRyZW4oKSA9PSAzKQorCisgICAgICAgICAgICBpZiAobm9kZS0+bnVtQ2hpbGRyZW4oKSA9PSAy
KQorICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSktPm1lcmdlRmxh
Z3MoTm9kZUJ5dGVjb2RlVXNlc0FzVmFsdWUpOworICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+
bnVtQ2hpbGRyZW4oKSA9PSAzKSB7CisgICAgICAgICAgICAgICAgbV9ncmFwaC52YXJBcmdDaGls
ZChub2RlLCAxKS0+bWVyZ2VGbGFncyhOb2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIgfCBOb2RlQnl0
ZWNvZGVVc2VzQXNPdGhlciB8IE5vZGVCeXRlY29kZVVzZXNBc0ludCB8IE5vZGVCeXRlY29kZVVz
ZXNBc0FycmF5SW5kZXgpOwogICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9k
ZSwgMiktPm1lcmdlRmxhZ3MoTm9kZUJ5dGVjb2RlVXNlc0FzVmFsdWUpOwotICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPm51bUNoaWxkcmVuKCkgPT0gNCkg
eworICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSktPm1lcmdlRmxh
Z3MoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgfCBO
b2RlQnl0ZWNvZGVVc2VzQXNJbnQgfCBOb2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4KTsKICAg
ICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpLT5tZXJnZUZsYWdzKE5v
ZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyIHwgTm9kZUJ5
dGVjb2RlVXNlc0FzSW50IHwgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCk7CiAgICAgICAg
ICAgICAgICAgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAzKS0+bWVyZ2VGbGFncyhOb2RlQnl0
ZWNvZGVVc2VzQXNWYWx1ZSk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGE1NjNkNzgwNDNjZGY4ZDEyMjU1
YTRkMGIyZjIwYjRjZWQ5MzE4NzguLjBmZWZhNTQ3ZTMzZWVlMjIwNjM1MzdkMGU0NjFhOTk0ZmJl
YzQ5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCkBAIC0yMjQxLDcgKzIyNDEsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJ
bnRyaW5zaWNDYWxsKE5vZGUqIGNhbGxlZSwgaW50IHJlc3VsdE9wZXJhbmQsIEludHJpbgogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgaWYgKGFy
Z3VtZW50Q291bnRJbmNsdWRpbmdUaGlzIDwgMikKKyAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzIDwgMSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBp
ZiAobV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJ
bmRleCwgQmFkQ29uc3RhbnRDYWNoZSkKQEAgLTIzMDMsNyArMjMwMyw4IEBAIGJvb2wgQnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwoTm9kZSogY2FsbGVlLCBpbnQgcmVzdWx0T3Bl
cmFuZCwgSW50cmluCiAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja1N0cnVjdHVyZSwg
T3BJbmZvKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHN0cnVjdHVyZVNldCkpLCBhcnJheSk7CiAK
ICAgICAgICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChhcnJheSk7Ci0gICAgICAgICAgICAgICAg
YWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDEsIHJlZ2lzdGVy
T2Zmc2V0KSkpOyAvLyBTdGFydCBpbmRleC4KKyAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMgPj0gMikKKyAgICAgICAgICAgICAgICAgICAgYWRkVmFyQXJnQ2hp
bGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDEsIHJlZ2lzdGVyT2Zmc2V0KSkpOyAv
LyBTdGFydCBpbmRleC4KICAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgPj0gMykKICAgICAgICAgICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1
YWxSZWdpc3RlckZvckFyZ3VtZW50KDIsIHJlZ2lzdGVyT2Zmc2V0KSkpOyAvLyBFbmQgaW5kZXgu
CiAgICAgICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoYWRkVG9HcmFwaChHZXRCdXR0ZXJmbHks
IGFycmF5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApp
bmRleCAxNDI5NDNkZWVjOWRiNGI4NjBiNWNlZTk0NmE4ZDY1ZjY5YzhlMWRkLi4wNDg1Y2E4NTYz
NmMyNGI0NzM5YWI0YTJmNzY1YjQ0YzBhZDJmNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTEwNzUsOSArMTA3NSwxMSBAQCBjbGFzcyBGaXh1
cFBoYXNlIDogcHVibGljIFBoYXNlIHsKIAogICAgICAgICBjYXNlIEFycmF5U2xpY2U6IHsKICAg
ICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDApKTsKLSAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bm9kZSwgMSkpOwotICAgICAgICAgICAgaWYgKG5vZGUtPm51bUNoaWxkcmVuKCkgPT0gNCkKLSAg
ICAgICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDIpKTsKKyAgICAgICAgICAgIGlmIChub2RlLT5udW1DaGlsZHJlbigpID49IDMpIHsKKyAgICAg
ICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEp
KTsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+bnVtQ2hpbGRyZW4oKSA9PSA0KQorICAgICAg
ICAgICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDIpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXgg
YjhjMDQ2YzBhYTVjOGQ0NWRjNzA5MmE1NWQ1MDBiNTYwZTM0MzE3MS4uM2Y0YWJmMTg1NDQ0N2Zi
MDhjOWY4ODdjNjY3OTFiYWIyNDBkZjY1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTc2MTksOSArNzYxOSwzMiBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UmVzdExlbmd0aChOb2RlKiBub2RlKQogCiB2b2lkIFNw
ZWN1bGF0aXZlSklUOjplbWl0UG9wdWxhdGVTbGljZUluZGV4KEVkZ2UmIHRhcmdldCwgR1BSUmVn
IGxlbmd0aCwgR1BSUmVnIHJlc3VsdCkKIHsKKyAgICBpZiAodGFyZ2V0LT5pc0ludDMyQ29uc3Rh
bnQoKSkgeworICAgICAgICBpbnQzMl90IHZhbHVlID0gdGFyZ2V0LT5hc0ludDMyKCk7CisgICAg
ICAgIGlmICh2YWx1ZSA9PSAwKSB7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0z
MigwKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBkb25lOworICAgICAgICBpZiAodmFsdWUgPiAwKSB7
CisgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMih2YWx1ZSksIHJlc3VsdCk7Cisg
ICAgICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVs
b3dPckVxdWFsLCByZXN1bHQsIGxlbmd0aCkpOworICAgICAgICAgICAgbV9qaXQubW92ZShsZW5n
dGgsIHJlc3VsdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQodmFsdWUg
IT0gMCk7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKGxlbmd0aCwgcmVzdWx0KTsKKyAgICAgICAg
ICAgIGRvbmUuYXBwZW5kKG1faml0LmJyYW5jaEFkZDMyKE1hY3JvQXNzZW1ibGVyOjpQb3NpdGl2
ZU9yWmVybywgVHJ1c3RlZEltbTMyKHZhbHVlKSwgcmVzdWx0KSk7CisgICAgICAgICAgICBtX2pp
dC5tb3ZlKFRydXN0ZWRJbW0zMigwKSwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICBkb25l
LmxpbmsoJm1faml0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFNwZWN1bGF0ZUlu
dDMyT3BlcmFuZCBpbmRleCh0aGlzLCB0YXJnZXQpOwogICAgIEdQUlJlZyBpbmRleEdQUiA9IGlu
ZGV4LmdwcigpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBkb25lOworCiAgICAgYXV0
byBpc1Bvc2l0aXZlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkdyZWF0ZXJUaGFu
T3JFcXVhbCwgaW5kZXhHUFIsIFRydXN0ZWRJbW0zMigwKSk7CiAgICAgbV9qaXQubW92ZShsZW5n
dGgsIHJlc3VsdCk7CiAgICAgZG9uZS5hcHBlbmQobV9qaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3Nl
bWJsZXI6OlBvc2l0aXZlT3JaZXJvLCBpbmRleEdQUiwgcmVzdWx0KSk7CkBAIC03NjQzLDE0ICs3
NjY2LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcnJheVNsaWNlKE5vZGUqIG5v
ZGUpCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1faml0LmdyYXBoKCkuZ2xv
YmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CiAKICAgICBHUFJUZW1wb3Jhcnkg
dGVtcCh0aGlzKTsKLSAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG5vZGUtPm51bUNo
aWxkcmVuKCkgPT0gMyA/IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikgOiBtX2pp
dC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsKKyAgICBTdG9yYWdlT3BlcmFuZCBzdG9y
YWdlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgbm9kZS0+bnVtQ2hpbGRy
ZW4oKSAtIDEpKTsKICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAgIAogICAgIEdQ
UlJlZyBzdG9yYWdlR1BSID0gc3RvcmFnZS5ncHIoKTsKICAgICBHUFJSZWcgcmVzdWx0R1BSID0g
cmVzdWx0LmdwcigpOwogICAgIEdQUlJlZyB0ZW1wR1BSID0gdGVtcC5ncHIoKTsKIAotICAgIHsK
KyAgICBpZiAobm9kZS0+bnVtQ2hpbGRyZW4oKSA9PSAyKQorICAgICAgICBtX2ppdC5sb2FkMzIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZUdQUiwgQnV0dGVyZmx5OjpvZmZzZXRPZlB1
YmxpY0xlbmd0aCgpKSwgdGVtcEdQUik7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChub2Rl
LT5udW1DaGlsZHJlbigpID09IDMgfHwgbm9kZS0+bnVtQ2hpbGRyZW4oKSA9PSA0KTsKICAgICAg
ICAgR1BSVGVtcG9yYXJ5IHRlbXBMZW5ndGgodGhpcyk7CiAgICAgICAgIEdQUlJlZyBsZW5ndGhH
UFIgPSB0ZW1wTGVuZ3RoLmdwcigpOwogICAgICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc3RvcmFnZUdQUiwgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgp
KSwgbGVuZ3RoR1BSKTsKQEAgLTc2NjAsMTcgKzc2ODYsMjIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUFycmF5U2xpY2UoTm9kZSogbm9kZSkKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgbV9qaXQubW92ZShsZW5ndGhHUFIsIHRlbXBHUFIpOwogCi0gICAgICAgIEdQUlRlbXBvcmFy
eSB0ZW1wU3RhcnRJbmRleCh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHN0YXJ0R1BSID0gdGVtcFN0
YXJ0SW5kZXguZ3ByKCk7Ci0gICAgICAgIGVtaXRQb3B1bGF0ZVNsaWNlSW5kZXgobV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSwgbGVuZ3RoR1BSLCBzdGFydEdQUik7CisgICAgICAg
IGlmIChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLT5pc0ludDMyQ29uc3RhbnQo
KSAmJiBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLT5hc0ludDMyKCkgPT0gMCkg
eworICAgICAgICAgICAgLy8gRG8gbm90aGluZyBmb3IgYXJyYXkuc2xpY2UoMCwgZW5kKSBvciBh
cnJheS5zbGljZSgwKSBjYXNlcy4KKyAgICAgICAgICAgIC8vIGB0ZW1wR1BSYCBhbHJlYWR5IHBv
aW50cyB0byB0aGUgc2l6ZSBvZiBhIG5ld2x5IGNyZWF0ZWQgYXJyYXkuCisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcFN0YXJ0SW5kZXgodGhpcyk7CisgICAg
ICAgICAgICBHUFJSZWcgc3RhcnRHUFIgPSB0ZW1wU3RhcnRJbmRleC5ncHIoKTsKKyAgICAgICAg
ICAgIGVtaXRQb3B1bGF0ZVNsaWNlSW5kZXgobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2Rl
LCAxKSwgbGVuZ3RoR1BSLCBzdGFydEdQUik7CiAKLSAgICAgICAgYXV0byB0b29CaWcgPSBtX2pp
dC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmUsIHN0YXJ0R1BSLCB0ZW1wR1BSKTsKLSAg
ICAgICAgbV9qaXQuc3ViMzIoc3RhcnRHUFIsIHRlbXBHUFIpOyAvLyB0aGUgc2l6ZSBvZiB0aGUg
YXJyYXkgd2UnbGwgbWFrZS4KLSAgICAgICAgYXV0byBkb25lID0gbV9qaXQuanVtcCgpOworICAg
ICAgICAgICAgYXV0byB0b29CaWcgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJv
dmUsIHN0YXJ0R1BSLCB0ZW1wR1BSKTsKKyAgICAgICAgICAgIG1faml0LnN1YjMyKHN0YXJ0R1BS
LCB0ZW1wR1BSKTsgLy8gdGhlIHNpemUgb2YgdGhlIGFycmF5IHdlJ2xsIG1ha2UuCisgICAgICAg
ICAgICBhdXRvIGRvbmUgPSBtX2ppdC5qdW1wKCk7CiAKLSAgICAgICAgdG9vQmlnLmxpbmsoJm1f
aml0KTsKLSAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoMCksIHRlbXBHUFIpOwotICAg
ICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIHRvb0JpZy5saW5rKCZtX2ppdCk7
CisgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMigwKSwgdGVtcEdQUik7CisgICAg
ICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgfQogICAgIH0KIAogCkBAIC03NzU3
LDEyICs3Nzg4LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcnJheVNsaWNlKE5v
ZGUqIG5vZGUpCiAgICAgR1BSVGVtcG9yYXJ5IHRlbXA0KHRoaXMpOwogICAgIEdQUlJlZyBsb2Fk
SW5kZXggPSB0ZW1wNC5ncHIoKTsKIAotICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdG9yYWdlR1BSLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpLCB0
ZW1wVmFsdWUpOwotICAgIGlmIChub2RlLT5udW1DaGlsZHJlbigpID09IDQpCi0gICAgICAgIGVt
aXRQb3B1bGF0ZVNsaWNlSW5kZXgobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSwg
dGVtcFZhbHVlLCB0ZW1wR1BSKTsKLSAgICBlbHNlCi0gICAgICAgIG1faml0Lm1vdmUodGVtcFZh
bHVlLCB0ZW1wR1BSKTsKLSAgICBlbWl0UG9wdWxhdGVTbGljZUluZGV4KG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMSksIHRlbXBWYWx1ZSwgbG9hZEluZGV4KTsKKyAgICBpZiAobm9k
ZS0+bnVtQ2hpbGRyZW4oKSA9PSAyKSB7CisgICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhzdG9yYWdlR1BSLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3Ro
KCkpLCB0ZW1wR1BSKTsKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoMCksIGxvYWRJ
bmRleCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHN0b3JhZ2VHUFIsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSks
IHRlbXBWYWx1ZSk7CisgICAgICAgIGlmIChub2RlLT5udW1DaGlsZHJlbigpID09IDQpCisgICAg
ICAgICAgICBlbWl0UG9wdWxhdGVTbGljZUluZGV4KG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQo
bm9kZSwgMiksIHRlbXBWYWx1ZSwgdGVtcEdQUik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG1faml0Lm1vdmUodGVtcFZhbHVlLCB0ZW1wR1BSKTsKKyAgICAgICAgZW1pdFBvcHVsYXRlU2xp
Y2VJbmRleChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCB0ZW1wVmFsdWUsIGxv
YWRJbmRleCk7CisgICAgfQogCiAgICAgR1BSVGVtcG9yYXJ5IHRlbXA1KHRoaXMpOwogICAgIEdQ
UlJlZyBzdG9yZUluZGV4ID0gdGVtcDUuZ3ByKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggYmIzNjU2M2NjYTZmODczNmM1NTAxY2YzMzE4
ZTU4MWRjMTAxZWIyMy4uNzQxNGNjZTg2YzQ4NWYzNGFmNzYyMjgwM2M3NjJmNGU2OTBjMmJjYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAt
NDY5MCwyMCArNDY5MCwyOCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1f
bm9kZS0+b3JpZ2luLnNlbWFudGljKTsKIAotICAgICAgICBMVmFsdWUgc291cmNlU3RvcmFnZSA9
IGxvd1N0b3JhZ2UobV9ub2RlLT5udW1DaGlsZHJlbigpID09IDMgPyBtX2dyYXBoLnZhckFyZ0No
aWxkKG1fbm9kZSwgMikgOiBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMykpOworICAgICAg
ICBMVmFsdWUgc291cmNlU3RvcmFnZSA9IGxvd1N0b3JhZ2UobV9ncmFwaC52YXJBcmdDaGlsZCht
X25vZGUsIG1fbm9kZS0+bnVtQ2hpbGRyZW4oKSAtIDEpKTsKICAgICAgICAgTFZhbHVlIGlucHV0
TGVuZ3RoID0gbV9vdXQubG9hZDMyKHNvdXJjZVN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1
YmxpY0xlbmd0aCk7Ci0gICAgICAgIExWYWx1ZSBzdGFydCA9IGxvd0ludDMyKG1fZ3JhcGgudmFy
QXJnQ2hpbGQobV9ub2RlLCAxKSk7Ci0gICAgICAgIExWYWx1ZSBlbmQgPSBudWxscHRyOwotICAg
ICAgICBpZiAobV9ub2RlLT5udW1DaGlsZHJlbigpICE9IDMpCi0gICAgICAgICAgICBlbmQgPSBs
b3dJbnQzMihtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMikpOwogCi0gICAgICAgIGF1dG8g
cmFuZ2UgPSBwb3B1bGF0ZVNsaWNlUmFuZ2Uoc3RhcnQsIGVuZCwgaW5wdXRMZW5ndGgpOwotICAg
ICAgICBMVmFsdWUgc3RhcnRJbmRleCA9IHJhbmdlLmZpcnN0OwotICAgICAgICBMVmFsdWUgZW5k
Qm91bmRhcnkgPSByYW5nZS5zZWNvbmQ7CisgICAgICAgIExWYWx1ZSBzdGFydEluZGV4ID0gbnVs
bHB0cjsKKyAgICAgICAgTFZhbHVlIHJlc3VsdExlbmd0aCA9IG51bGxwdHI7CisgICAgICAgIGlm
IChtX25vZGUtPm51bUNoaWxkcmVuKCkgPT0gMikgeworICAgICAgICAgICAgc3RhcnRJbmRleCA9
IG1fb3V0LmNvbnN0SW50MzIoMCk7CisgICAgICAgICAgICByZXN1bHRMZW5ndGggPSBpbnB1dExl
bmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExWYWx1ZSBzdGFydCA9IGxvd0lu
dDMyKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSk7CisgICAgICAgICAgICBMVmFsdWUg
ZW5kID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPm51bUNoaWxkcmVuKCkgIT0g
MykKKyAgICAgICAgICAgICAgICBlbmQgPSBsb3dJbnQzMihtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMikpOworCisgICAgICAgICAgICBhdXRvIHJhbmdlID0gcG9wdWxhdGVTbGljZVJhbmdl
KHN0YXJ0LCBlbmQsIGlucHV0TGVuZ3RoKTsKKyAgICAgICAgICAgIHN0YXJ0SW5kZXggPSByYW5n
ZS5maXJzdDsKKyAgICAgICAgICAgIExWYWx1ZSBlbmRCb3VuZGFyeSA9IHJhbmdlLnNlY29uZDsK
IAotICAgICAgICBMVmFsdWUgcmVzdWx0TGVuZ3RoID0gbV9vdXQuc2VsZWN0KG1fb3V0LmJlbG93
KHN0YXJ0SW5kZXgsIGVuZEJvdW5kYXJ5KSwKLSAgICAgICAgICAgIG1fb3V0LnN1YihlbmRCb3Vu
ZGFyeSwgc3RhcnRJbmRleCksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKDApKTsKKyAg
ICAgICAgICAgIHJlc3VsdExlbmd0aCA9IG1fb3V0LnNlbGVjdChtX291dC5iZWxvd09yRXF1YWwo
c3RhcnRJbmRleCwgZW5kQm91bmRhcnkpLAorICAgICAgICAgICAgICAgIG1fb3V0LnN1YihlbmRC
b3VuZGFyeSwgc3RhcnRJbmRleCksCisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMigw
KSk7CisgICAgICAgIH0KIAogICAgICAgICBBcnJheVZhbHVlcyBhcnJheVJlc3VsdDsKICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCA2YzQ4NzdiOTZmZDVkNDgyNTVlYjZhNWM0YjY3NWVlODZlNTVlZmRlLi41MzZkNTRjMjVk
ZWVkODgxMzhjMmFjYzc2N2I0ZmI4MWU5OTUzMGQ1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTAzLTEz
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtERkdd
W0ZUTF0gTWFrZSBBcnJheVNsaWNlKDApIGNvZGUgdGlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzU5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2FycmF5LXNsaWNlLXdpdGgtemVy
by5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKHRlc3QyKToKKyAgICAgICAgKiBzdHJlc3MvYXJyYXktc2xpY2UtemVyby1hcmdzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorCiAyMDE4LTAzLTEx
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtERkdd
IEFJIHNob3VsZCBjb252ZXJ0IENyZWF0ZVRoaXMgdG8gTmV3T2JqZWN0IGlmIHRoZSBwcm90b3R5
cGUgb2JqZWN0IGlzIHByb3ZlZApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktc2xp
Y2Utd2l0aC16ZXJvLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktc2xpY2Utd2l0aC16ZXJvLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNkODJmODE2OTk1ZTIwNWQwOWUzZjQzMzJhMzA2MjdmZDE5YWU1NDQKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS1zbGljZS13aXRoLXplcm8uanMK
QEAgLTAsMCArMSwzNCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewor
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoYXJyYXkpCit7CisgICAg
cmV0dXJuIGFycmF5LnNsaWNlKDApOworfQorbm9JbmxpbmUodGVzdCk7CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMWU1OyArK2kpIHsKKyAgICB2YXIgYXJyYXkgPSBbaSwgaSwgaV07CisgICAgdmFy
IHJlc3VsdCA9IHRlc3QoYXJyYXkpOworICAgIHNob3VsZEJlKGFycmF5ICE9PSByZXN1bHQsIHRy
dWUpOworICAgIHNob3VsZEJlKHJlc3VsdC5sZW5ndGgsIDMpOworICAgIGZvciAodmFyIGogPSAw
OyBqIDwgMzsgKytqKQorICAgICAgICBzaG91bGRCZShyZXN1bHRbal0sIGkpOworfQorCitmdW5j
dGlvbiB0ZXN0MihhcnJheSwgaSkKK3sKKyAgICByZXR1cm4gYXJyYXkuc2xpY2UoMCwgaSk7Cit9
Citub0lubGluZSh0ZXN0Mik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU1OyArK2kpIHsKKyAg
ICB2YXIgYXJyYXkgPSBbaSwgaSwgaV07CisgICAgdmFyIHJlc3VsdCA9IHRlc3QyKGFycmF5LCAy
KTsKKyAgICBzaG91bGRCZShhcnJheSAhPT0gcmVzdWx0LCB0cnVlKTsKKyAgICBzaG91bGRCZShy
ZXN1bHQubGVuZ3RoLCAyKTsKKyAgICBmb3IgKHZhciBqID0gMDsgaiA8IDI7ICsraikKKyAgICAg
ICAgc2hvdWxkQmUocmVzdWx0W2pdLCBpKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2FycmF5LXNsaWNlLXplcm8tYXJncy5qcyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXNsaWNlLXpl
cm8tYXJncy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGZlOWNhNWMxYmNkZTAyZmZkNjEyYTc5MzlmZjQ5NTUw
YWI5NWI5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktc2xpY2UtemVy
by1hcmdzLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGFycmF5
KQoreworICAgIHJldHVybiBhcnJheS5zbGljZSgpOworfQorbm9JbmxpbmUodGVzdCk7CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICB2YXIgYXJyYXkgPSBbaSwgaSwgaV07
CisgICAgdmFyIHJlc3VsdCA9IHRlc3QoYXJyYXkpOworICAgIHNob3VsZEJlKGFycmF5ICE9PSBy
ZXN1bHQsIHRydWUpOworICAgIHNob3VsZEJlKHJlc3VsdC5sZW5ndGgsIDMpOworICAgIGZvciAo
dmFyIGogPSAwOyBqIDwgMzsgKytqKQorICAgICAgICBzaG91bGRCZShyZXN1bHRbal0sIGkpOwor
fQo=
</data>
<flag name="review"
          id="354286"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>