<?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>156871</bug_id>
          
          <creation_ts>2016-04-21 14:34:28 -0700</creation_ts>
          <short_desc>[JSC] Commute FDiv-by-constant into FMul-by-reciprocal when it is safe</short_desc>
          <delta_ts>2016-04-22 01:56:59 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>156892</dependson>
          
          <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>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1185959</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-04-21 14:34:28 -0700</bug_when>
    <thetext>[JSC] Commute FDiv-by-constant into FMul-by-reciprocal when it is safe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185964</commentid>
    <comment_count>1</comment_count>
      <attachid>276964</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-04-21 14:47:50 -0700</bug_when>
    <thetext>Created attachment 276964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185969</commentid>
    <comment_count>2</comment_count>
      <attachid>276964</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-21 15:02:07 -0700</bug_when>
    <thetext>Comment on attachment 276964
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:16
&gt; +        LLVM does something similar in InstCombine.

Is this bit-equivalent for sure?  LLVM doesn&apos;t have to obey IEEE as well as we do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186100</commentid>
    <comment_count>3</comment_count>
      <attachid>277002</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-04-21 20:43:54 -0700</bug_when>
    <thetext>Created attachment 277002
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186114</commentid>
    <comment_count>4</comment_count>
      <attachid>277002</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-21 21:46:34 -0700</bug_when>
    <thetext>Comment on attachment 277002
Patch for landing

Clearing flags on attachment: 277002

Committed r199866: &lt;http://trac.webkit.org/changeset/199866&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186115</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-21 21:46:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186172</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-04-22 01:56:59 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 277002 [details]
&gt; Patch for landing
&gt; 
&gt; Clearing flags on attachment: 277002
&gt; 
&gt; Committed r199866: &lt;http://trac.webkit.org/changeset/199866&gt;

and the buildfix landed in https://trac.webkit.org/changeset/199868
Please don&apos;t ignore red EWS bubbles, it&apos;s not WebKit2.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276964</attachid>
            <date>2016-04-21 14:47:50 -0700</date>
            <delta_ts>2016-04-21 20:43:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156871-20160421144813.patch</filename>
            <type>text/plain</type>
            <size>17836</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5Nzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZTkzMGI1OTJkNWEwODJkZDk5MTIyMGE2ZDU3MmYzMzM2NGQ5NWY5Li5mYzEyNGI1ODI4MjlhZjQ3
ZGVhMGY4MWQ4ZGM0YTgzOWIxNGRhMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNi0wNC0yMSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ10gQ29tbXV0ZSBGRGl2LWJ5LWNvbnN0YW50IGludG8gRk11
bC1ieS1yZWNpcHJvY2FsIHdoZW4gaXQgaXMgc2FmZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2ODcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRk11bCBpcyBzaWduaWZpY2FudGx5IGZhc3RlciB0aGFu
IEZEaXYuCisgICAgICAgIEZvciBleGFtcGxlLCBvbiBIYXN3ZWxsLCBGTXVsIGhhcyBhIGxhdGVu
Y3kgb2YgNSwgYSB0aHJvdWdocHV0IG9mIDEKKyAgICAgICAgd2hpbGUgRkRpdiBoYXMgbGF0ZW5j
eSAxMC0yNCwgdGhyb3VnaHB1dCA4LTE4LgorCisgICAgICAgIEZvcnR1bmF0ZWx5IGZvciB1cywg
U3Vuc3BpZGVyIGFuZCBLcmFrZW4gaGF2ZSBwbGVudHkgb2YgZGl2aXNpb24KKyAgICAgICAgYnkg
YSBzaW1wbGUgcG93ZXIgb2YgMiBjb25zdGFudC4gVGhvc2UgYXJlIGp1c3QgZXhwb25lbnQgb3Bl
cmF0aW9uCisgICAgICAgIGFuZCBjYW4gYmUgZWFzaWx5IHJldmVyc2VkIHRvIHVzZSBGTXVsIGlu
c3RlYWQgb2YgRkRpdi4KKworICAgICAgICBMTFZNIGRvZXMgc29tZXRoaW5nIHNpbWlsYXIgaW4g
SW5zdENvbWJpbmUuCisKKyAgICAgICAgKiBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZTo6aGFuZGxlTm9k
ZSk6CisgICAgICAgICogaml0L0pJVERpdkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJ
VERpdkdlbmVyYXRvcjo6bG9hZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpKSVREaXZHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAqIGppdC9TbmlwcGV0T3BlcmFuZC5oOgor
ICAgICAgICAoSlNDOjpTbmlwcGV0T3BlcmFuZDo6YXNDb25zdE51bWJlcik6CisgICAgICAgICog
cnVudGltZS9NYXRoQ29tbW9uLmg6CisgICAgICAgIChKU0M6OnNhZmVSZWNpcHJvY2FsRm9yRGl2
QnlDb25zdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Zsb2F0aW5nLXBvaW50LWRpdi10by1t
dWwuanM6IEFkZGVkLgorICAgICAgICAob3BhcXVlRGl2QnkyKToKKyAgICAgICAgKG9wYXF1ZURp
dkJ5Myk6CisgICAgICAgIChvcGFxdWVEaXZCeTQpOgorICAgICAgICAob3BhcXVlRGl2QnlTYWZl
TWF4TWludXNPbmUpOgorICAgICAgICAob3BhcXVlRGl2QnlTYWZlTWF4KToKKyAgICAgICAgKG9w
YXF1ZURpdkJ5U2FmZU1heFBsdXNPbmUpOgorICAgICAgICAob3BhcXVlRGl2QnlTYWZlTWluKToK
KyAgICAgICAgKG9wYXF1ZURpdkJ5U2FmZU1pbk1pbnVzT25lKToKKyAgICAgICAgKGkuY2F0Y2gp
OgorICAgICAgICAoaS5yZXN1bHQub3BhcXVlRGl2QnlTYWZlTWluLnZhbHVlT2YpOgorCiAyMDE2
LTA0LTIwICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtKU0NdIERGRyBzaG91bGQgbm90IGdlbmVyYXRlIHR3byBqdW1wcyB3aGVuIHRoZSB0YXJnZXQg
b2YgRG91YmxlQnJhbmNoIGlzIHRoZSBuZXh0IGJsb2NrICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCmluZGV4IDQ5
YTkyYzU4ZDQ0MTQ1M2JkMjEzNzBiZTk0Y2Y2NWFiZmIxMjljNDEuLmMyNjNjZDgxMGU1NWZhZWJj
ZGNjMzNhNzE5MTBhYWIyNDA0ZGJjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcApAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmgiCiAjaW5jbHVkZSAi
REZHVmFyaWFibGVBY2Nlc3NEYXRhRHVtcC5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNp
bmNsdWRlICJNYXRoQ29tbW9uLmgiCiAjaW5jbHVkZSAiUmVnRXhwQ29uc3RydWN0b3IuaCIKICNp
bmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKICNpbmNsdWRlIDxjc3RkbGliPgpAQCAtMTkyLDYg
KzE5MywyNSBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAK
KyAgICAgICAgY2FzZSBBcml0aERpdjoKKyAgICAgICAgICAgIC8vIFRyYW5zZm9ybQorICAgICAg
ICAgICAgLy8gICAgQXJpdGhEaXYoeCwgY29uc3RhbnQpCisgICAgICAgICAgICAvLyBJbnRvCisg
ICAgICAgICAgICAvLyAgICBBcml0aE11bCh4LCAxIC8gY29uc3RhbnQpCisgICAgICAgICAgICAv
LyBpZiB0aGUgb3BlcmF0aW9uIGhhcyB0aGUgc2FtZSByZXN1bHQuCisgICAgICAgICAgICBpZiAo
bV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoRG91YmxlUmVwVXNlKQorICAgICAgICAgICAgICAgICYm
IG1fbm9kZS0+Y2hpbGQyKCktPmlzTnVtYmVyQ29uc3RhbnQoKSkgeworCisgICAgICAgICAgICAg
ICAgaWYgKE9wdGlvbmFsPGRvdWJsZT4gcmVjaXByb2NhbCA9IHNhZmVSZWNpcHJvY2FsRm9yRGl2
QnlDb25zdChtX25vZGUtPmNoaWxkMigpLT5hc051bWJlcigpKSkgeworICAgICAgICAgICAgICAg
ICAgICBOb2RlKiByZWNpcHJvY2FsTm9kZSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydENvbnN0YW50
KG1fbm9kZUluZGV4LCBtX25vZGUtPm9yaWdpbiwganNEb3VibGVOdW1iZXIoKnJlY2lwcm9jYWwp
LCBEb3VibGVDb25zdGFudCk7CisgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+c2V0T3AoQXJp
dGhNdWwpOworICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMigpID0gRWRnZShyZWNp
cHJvY2FsTm9kZSwgRG91YmxlUmVwVXNlKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jaGFuZ2Vk
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBWYWx1ZVJl
cDoKICAgICAgICAgY2FzZSBJbnQ1MlJlcDoKICAgICAgICAgY2FzZSBEb3VibGVSZXA6IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAppbmRleCA2YjJh
N2YyODYzZDI2NTBiMDYxYTNiNTRhYWRmMGMxYmEzODlkMDQ3Li5mMjA1ZmRmNjcyOWVmNGFhZGRl
YWJjYzM1Yzc5MDcwYmFhMjg5MDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVERpdkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVREaXZHZW5lcmF0b3IuY3BwCkBAIC0yOSwxMiArMjksMTcgQEAKICNpZiBFTkFCTEUoSklUKQog
CiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJNYXRoQ29tbW9uLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIEpJVERpdkdlbmVyYXRvcjo6bG9hZE9wZXJhbmQo
Q0NhbGxIZWxwZXJzJiBqaXQsIFNuaXBwZXRPcGVyYW5kJiBvcHIsIEpTVmFsdWVSZWdzIG9wclJl
Z3MsIEZQUlJlZyBkZXN0RlBSKQogewogICAgIGlmIChvcHIuaXNDb25zdEludDMyKCkpIHsKKyAg
ICAgICAgLy8gRklYTUU6IHRoaXMgZG9lcyBub3QgbG9va3MgcmlnaHQuCisgICAgICAgIC8vICAg
ICAtT24geDg2XzY0LCBDVlRTSTJTRCBoYXMgcGFydGlhbCByZWdpc3RlciBzdGFsbCBvbiBpdHMg
RlBSLgorICAgICAgICAvLyAgICAgIEEgbW92ZSBvciBsb2FkIG1pZ2h0IGJlIGEgdGlueSBiaXQg
bGFyZ2VyIGJ1dCBzYWZlci4KKyAgICAgICAgLy8gICAgIC1PbiBBUk02NCB3ZSBhbHNvIGhhdmUg
Rk1PViB0aGF0IGNhbiBsb2FkIHNtYWxsIGltbWVkaWF0ZXMuCiAgICAgICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6SW1tMzIob3ByLmFzQ29uc3RJbnQzMigpKSwgbV9zY3JhdGNoR1BSKTsKICAg
ICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKG1fc2NyYXRjaEdQUiwgZGVzdEZQUik7CiAj
aWYgVVNFKEpTVkFMVUU2NCkKQEAgLTc0LDkgKzc5LDI2IEBAIHZvaWQgSklURGl2R2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQogICAgIEFTU0VSVCghbV9sZWZ0
T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkp
OwogICAgIG1fZGlkRW1pdEZhc3RQYXRoID0gdHJ1ZTsKICAgICBsb2FkT3BlcmFuZChqaXQsIG1f
bGVmdE9wZXJhbmQsIG1fbGVmdCwgbV9sZWZ0RlBSKTsKLSAgICBsb2FkT3BlcmFuZChqaXQsIG1f
cmlnaHRPcGVyYW5kLCBtX3JpZ2h0LCBtX3JpZ2h0RlBSKTsKIAotICAgIGppdC5kaXZEb3VibGUo
bV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIE9wdGlvbmFs
PGRvdWJsZT4gc2FmZVJlY2lwcm9jYWw7CisgICAgaWYgKG1fcmlnaHRPcGVyYW5kLmlzQ29uc3Qo
KSkgeworICAgICAgICBkb3VibGUgY29uc3RhbnQgPSBtX3JpZ2h0T3BlcmFuZC5hc0NvbnN0TnVt
YmVyKCk7CisgICAgICAgIHNhZmVSZWNpcHJvY2FsID0gc2FmZVJlY2lwcm9jYWxGb3JEaXZCeUNv
bnN0KGNvbnN0YW50KTsKKyAgICB9CisKKyAgICBpZiAoc2FmZVJlY2lwcm9jYWwpIHsKKyAgICAg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpJbW02NChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oKnNh
ZmVSZWNpcHJvY2FsKSksIG1fc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5tb3ZlNjRUb0RvdWJs
ZShtX3NjcmF0Y2hHUFIsIG1fcmlnaHRGUFIpOworCisgICAgICAgIGppdC5tdWxEb3VibGUobV9y
aWdodEZQUiwgbV9sZWZ0RlBSKTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsKKyAgICAgICAg
bG9hZE9wZXJhbmQoaml0LCBtX3JpZ2h0T3BlcmFuZCwgbV9yaWdodCwgbV9yaWdodEZQUik7CisK
KyAgICAgICAgaml0LmRpdkRvdWJsZShtX3JpZ2h0RlBSLCBtX2xlZnRGUFIpOworICAgIH0KIAog
ICAgIC8vIElzIHRoZSByZXN1bHQgYWN0dWFsbHkgYW4gaW50ZWdlcj8gVGhlIERGRyBKSVQgd291
bGQgcmVhbGx5IGxpa2UgdG8ga25vdy4gSWYgaXQncwogICAgIC8vIG5vdCBhbiBpbnRlZ2VyLCB3
ZSBpbmNyZW1lbnQgYSBjb3VudC4gSWYgdGhpcyB0b2dldGhlciB3aXRoIHRoZSBzbG93IGNhc2Ug
Y291bnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TbmlwcGV0T3Bl
cmFuZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TbmlwcGV0T3BlcmFuZC5oCmluZGV4
IDY3ODg0YjNjMGYwY2MzZTM0YWZjMTViZmIzZWIzOTA3OWI0MGMxODUuLjE1Y2E4NDNiN2VmYzQ1
YTI4Zjg3OWZhNTk5ZDZlMjFjNGViN2M5M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvU25pcHBldE9wZXJhbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1NuaXBwZXRPcGVyYW5kLmgKQEAgLTcwLDYgKzcwLDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIG1fdmFsLmRvdWJsZVZhbDsKICAgICB9CiAKKyAgICBkb3VibGUgYXNDb25zdE51bWJlcigp
IGNvbnN0CisgICAgeworICAgICAgICBpZiAoaXNDb25zdEludDMyKCkpCisgICAgICAgICAgICBy
ZXR1cm4gYXNDb25zdEludDMyKCk7CisgICAgICAgIEFTU0VSVChpc0NvbnN0RG91YmxlKCkpOwor
ICAgICAgICByZXR1cm4gYXNDb25zdERvdWJsZSgpOworICAgIH0KKwogICAgIHZvaWQgc2V0Q29u
c3RJbnQzMihpbnQzMl90IHZhbHVlKQogICAgIHsKICAgICAgICAgbV90eXBlID0gQ29uc3RJbnQz
MjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uaAppbmRleCAyZjg0
ZWQ3MjdjYWZjOGZhMjgxODU2NzAyYjkxMDllMDU3YmYzYWUyLi5mMTc4YzYyZTQ5ODYzMzM0OWYx
ZGUyMmUwYTU5N2M1YzQ5NDJjYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXRoQ29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWF0aENvbW1vbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgTWF0aENvbW1vbl9oCiAKICNpbmNs
dWRlICJKSVRPcGVyYXRpb25zLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAKICNpZm5k
ZWYgSklUX09QRVJBVElPTgogI2RlZmluZSBKSVRfT1BFUkFUSU9OCkBAIC01NCw2ICs1NSwzNCBA
QCBpbmxpbmUgaW50IGNsejMyKHVpbnQzMl90IG51bWJlcikKICNlbmRpZgogfQogCitpbmxpbmUg
T3B0aW9uYWw8ZG91YmxlPiBzYWZlUmVjaXByb2NhbEZvckRpdkJ5Q29uc3QoZG91YmxlIGNvbnN0
YW50KQoreworICAgIC8vIE5vICJ3ZWlyZCIgbnVtYmVycyAoTmFOLCBEZW5vcm1hbCwgZXRjKS4K
KyAgICBpZiAoIWNvbnN0YW50IHx8ICFpc25vcm1hbChjb25zdGFudCkpCisgICAgICAgIHJldHVy
biBOdWxsb3B0OworCisgICAgaW50IGV4cG9uZW50OworICAgIGlmIChmcmV4cChjb25zdGFudCwg
JmV4cG9uZW50KSAhPSAwLjUpCisgICAgICAgIHJldHVybiBOdWxsb3B0OworCisgICAgLy8gTm90
ZSB0aGF0IGZyZXhwKCkgcmV0dXJucyB0aGUgdmFsdWUgZGl2aWRlZCBieSB0d28KKyAgICAvLyBz
byB3ZSB0byBvZmZzZXQgdGhpcyBleHBvbmVudCBieSBvbmUuCisgICAgZXhwb25lbnQgLT0gMTsK
KworICAgIC8vIEEgZG91YmxlIGV4cG9uZW50IGlzIGJldHdlZW4gLTEwMjIgYW5kIDEwMjMuCisg
ICAgLy8gTm90aGluZyB3ZSBjYW4gZG8gdG8gaW52ZXJ0IDEwMjMuCisgICAgaWYgKGV4cG9uZW50
ID09IDEwMjMpCisgICAgICAgIHJldHVybiBOdWxsb3B0OworCisgICAgZG91YmxlIHJlY2lwcm9j
YWwgPSBsZGV4cCgxLCAtZXhwb25lbnQpOworICAgIEFTU0VSVChpc25vcm1hbChyZWNpcHJvY2Fs
KSk7CisgICAgQVNTRVJUKDEuIC8gY29uc3RhbnQgPT0gcmVjaXByb2NhbCk7CisgICAgQVNTRVJU
KGNvbnN0YW50ID09IDEuIC8gcmVjaXByb2NhbCk7CisgICAgQVNTRVJUKDEuID09IGNvbnN0YW50
ICogcmVjaXByb2NhbCk7CisKKyAgICByZXR1cm4gcmVjaXByb2NhbDsKK30KKwogZXh0ZXJuICJD
IiB7CiBkb3VibGUgSklUX09QRVJBVElPTiBqc1JvdW5kKGRvdWJsZSB2YWx1ZSkgUkVGRVJFTkNF
RF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2Zsb2F0aW5nLXBvaW50LWRpdi10by1tdWwuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Zsb2F0aW5nLXBvaW50LWRpdi10by1tdWwuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjE0NmI2ODJjMGE5NWJkZWI2NTNmNzRjNzFmNTM0MDJhZWJmMzQ0ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZmxvYXRp
bmctcG9pbnQtZGl2LXRvLW11bC5qcwpAQCAtMCwwICsxLDIxNiBAQAorZnVuY3Rpb24gb3BhcXVl
RGl2QnkyKGEpCit7CisgICAgcmV0dXJuIGEgLyAyOworfQorbm9JbmxpbmUob3BhcXVlRGl2Qnky
KTsKKworZnVuY3Rpb24gb3BhcXVlRGl2QnkzKGEpCit7CisgICAgcmV0dXJuIGEgLyAzOworfQor
bm9JbmxpbmUob3BhcXVlRGl2QnkzKTsKKworZnVuY3Rpb24gb3BhcXVlRGl2Qnk0KGEpCit7Cisg
ICAgcmV0dXJuIGEgLyA0OworfQorbm9JbmxpbmUob3BhcXVlRGl2Qnk0KTsKKworZnVuY3Rpb24g
b3BhcXVlRGl2QnlTYWZlTWF4TWludXNPbmUoYSkKK3sKKyAgICAvLyAyXjEwMjIKKyAgICByZXR1
cm4gYSAvIDQ0OTQyMzI4MzcxNTU3ODk3NjkzMjMyNjI5NzY5NzI1NjE4MzQwNDQ5NDI0NDczNTU3
NjY0MzE4MzU3NTIwMjg5NDMzMTY4OTUxMzc1MjQwNzgzMTc3MTE5MzMwNjAxODg0MDA1MjgwMDI4
NDY5OTY3ODQ4MzM5NDE0Njk3NDQyMjAzNjA0MTU1NjIzMjExODU3NjU5ODY4NTMxMDk0NDQxOTcz
MzU2MjE2MzcxMzE5MDc1NTU0OTAwMzExNTIzNTI5ODYzMjcwNzM4MDIxMjUxNDQyMjA5NTM3Njcw
NTg1NjE1NzIwMzY4NDc4Mjc3NjM1MjA2ODA5MjkwODM3NjI3NjcxMTQ2NTc0NTU5OTg2ODExNDg0
NjE5OTI5MDc2MjA4ODM5MDgyNDA2MDU2MDM0MzA0OworfQorbm9JbmxpbmUob3BhcXVlRGl2QnlT
YWZlTWF4TWludXNPbmUpOworCitmdW5jdGlvbiBvcGFxdWVEaXZCeVNhZmVNYXgoYSkKK3sKKyAg
ICAvLyAyXjEwMjMKKyAgICByZXR1cm4gYSAvIDg5ODg0NjU2NzQzMTE1Nzk1Mzg2NDY1MjU5NTM5
NDUxMjM2NjgwODk4ODQ4OTQ3MTE1MzI4NjM2NzE1MDQwNTc4ODY2MzM3OTAyNzUwNDgxNTY2MzU0
MjM4NjYxMjAzNzY4MDEwNTYwMDU2OTM5OTM1Njk2Njc4ODI5Mzk0ODg0NDA3MjA4MzExMjQ2NDIz
NzE1MzE5NzM3MDYyMTg4ODgzOTQ2NzEyNDMyNzQyNjM4MTUxMTA5ODAwNjIzMDQ3MDU5NzI2NTQx
NDc2MDQyNTAyODg0NDE5MDc1MzQxMTcxMjMxNDQwNzM2OTU2NTU1MjcwNDEzNjE4NTgxNjc1MjU1
MzQyMjkzMTQ5MTE5OTczNjIyOTY5MjM5ODU4MTUyNDE3Njc4MTY0ODEyMTEyMDY4NjA4OworfQor
bm9JbmxpbmUob3BhcXVlRGl2QnlTYWZlTWF4KTsKKworZnVuY3Rpb24gb3BhcXVlRGl2QnlTYWZl
TWF4UGx1c09uZShhKQoreworICAgIC8vIDJeMTAyNAorICAgIHJldHVybiBhIC8gMTc5NzY5MzEz
NDg2MjMxNTkwNzcyOTMwNTE5MDc4OTAyNDczMzYxNzk3Njk3ODk0MjMwNjU3MjczNDMwMDgxMTU3
NzMyNjc1ODA1NTAwOTYzMTMyNzA4NDc3MzIyNDA3NTM2MDIxMTIwMTEzODc5ODcxMzkzMzU3NjU4
Nzg5NzY4ODE0NDE2NjIyNDkyODQ3NDMwNjM5NDc0MTI0Mzc3NzY3ODkzNDI0ODY1NDg1Mjc2MzAy
MjE5NjAxMjQ2MDk0MTE5NDUzMDgyOTUyMDg1MDA1NzY4ODM4MTUwNjgyMzQyNDYyODgxNDczOTEz
MTEwNTQwODI3MjM3MTYzMzUwNTEwNjg0NTg2Mjk4MjM5OTQ3MjQ1OTM4NDc5NzE2MzA0ODM1MzU2
MzI5NjI0MjI0MTM3MjE2OworfQorbm9JbmxpbmUob3BhcXVlRGl2QnlTYWZlTWF4UGx1c09uZSk7
CisKK2Z1bmN0aW9uIG9wYXF1ZURpdkJ5U2FmZU1pbihhKQoreworICAgIC8vIDJeLTEwMjIKKyAg
ICByZXR1cm4gYSAvICgxIC8gNDQ5NDIzMjgzNzE1NTc4OTc2OTMyMzI2Mjk3Njk3MjU2MTgzNDA0
NDk0MjQ0NzM1NTc2NjQzMTgzNTc1MjAyODk0MzMxNjg5NTEzNzUyNDA3ODMxNzcxMTkzMzA2MDE4
ODQwMDUyODAwMjg0Njk5Njc4NDgzMzk0MTQ2OTc0NDIyMDM2MDQxNTU2MjMyMTE4NTc2NTk4Njg1
MzEwOTQ0NDE5NzMzNTYyMTYzNzEzMTkwNzU1NTQ5MDAzMTE1MjM1Mjk4NjMyNzA3MzgwMjEyNTE0
NDIyMDk1Mzc2NzA1ODU2MTU3MjAzNjg0NzgyNzc2MzUyMDY4MDkyOTA4Mzc2Mjc2NzExNDY1NzQ1
NTk5ODY4MTE0ODQ2MTk5MjkwNzYyMDg4MzkwODI0MDYwNTYwMzQzMDQpOworfQorbm9JbmxpbmUo
b3BhcXVlRGl2QnlTYWZlTWluKTsKKworZnVuY3Rpb24gb3BhcXVlRGl2QnlTYWZlTWluTWludXNP
bmUoYSkKK3sKKyAgICAvLyAyXi0xMDIzCisgICAgcmV0dXJuIGEgLyAoMSAvIDg5ODg0NjU2NzQz
MTE1Nzk1Mzg2NDY1MjU5NTM5NDUxMjM2NjgwODk4ODQ4OTQ3MTE1MzI4NjM2NzE1MDQwNTc4ODY2
MzM3OTAyNzUwNDgxNTY2MzU0MjM4NjYxMjAzNzY4MDEwNTYwMDU2OTM5OTM1Njk2Njc4ODI5Mzk0
ODg0NDA3MjA4MzExMjQ2NDIzNzE1MzE5NzM3MDYyMTg4ODgzOTQ2NzEyNDMyNzQyNjM4MTUxMTA5
ODAwNjIzMDQ3MDU5NzI2NTQxNDc2MDQyNTAyODg0NDE5MDc1MzQxMTcxMjMxNDQwNzM2OTU2NTU1
MjcwNDEzNjE4NTgxNjc1MjU1MzQyMjkzMTQ5MTE5OTczNjIyOTY5MjM5ODU4MTUyNDE3Njc4MTY0
ODEyMTEyMDY4NjA4KTsKK30KK25vSW5saW5lKG9wYXF1ZURpdkJ5U2FmZU1pbk1pbnVzT25lKTsK
KworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgbGV0IHJlc3VsdCA9IG9w
YXF1ZURpdkJ5MihNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0ICE9PSAxLjU3MDc5NjMyNjc5NDg5
NjYpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnkyKE1hdGguUEkpLiBSZXN1bHQg
PSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5MihOYU4pOworICAgIGlmIChy
ZXN1bHQgPT09IHJlc3VsdCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeTIoTmFO
KS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTIoSW5maW5p
dHkpOworICAgIGlmIChyZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICB0aHJvdyAiRmFpbGVk
IG9wYXF1ZURpdkJ5MihJbmZpbml0eSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0
ID0gb3BhcXVlRGl2QnkyKC1JbmZpbml0eSk7CisgICAgaWYgKHJlc3VsdCAhPT0gLUluZmluaXR5
KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5MigtSW5maW5pdHkpLiBSZXN1bHQg
PSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5MihNYXRoLkUpOworICAgIGlm
IChyZXN1bHQgIT09IDEuMzU5MTQwOTE0MjI5NTIyNSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBv
cGFxdWVEaXZCeTIoTWF0aC5FKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKworICAgIHJlc3VsdCA9
IG9wYXF1ZURpdkJ5MyhNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0ICE9PSAxLjA0NzE5NzU1MTE5
NjU5NzYpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnkzKE1hdGguUEkpLiBSZXN1
bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5MyhOYU4pOworICAgIGlm
IChyZXN1bHQgPT09IHJlc3VsdCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeTMo
TmFOKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTMoSW5m
aW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICB0aHJvdyAiRmFp
bGVkIG9wYXF1ZURpdkJ5MyhJbmZpbml0eSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVz
dWx0ID0gb3BhcXVlRGl2QnkzKC1JbmZpbml0eSk7CisgICAgaWYgKHJlc3VsdCAhPT0gLUluZmlu
aXR5KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5MygtSW5maW5pdHkpLiBSZXN1
bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5MyhNYXRoLkUpOworICAg
IGlmIChyZXN1bHQgIT09IDAuOTA2MDkzOTQyODE5NjgxNykKKyAgICAgICAgdGhyb3cgIkZhaWxl
ZCBvcGFxdWVEaXZCeTMoTWF0aC5FKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKworICAgIHJlc3Vs
dCA9IG9wYXF1ZURpdkJ5NChNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0ICE9PSAwLjc4NTM5ODE2
MzM5NzQ0ODMpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2Qnk0KE1hdGguUEkpLiBS
ZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5NChOYU4pOworICAg
IGlmIChyZXN1bHQgPT09IHJlc3VsdCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZC
eTQoTmFOKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTQo
SW5maW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICB0aHJvdyAi
RmFpbGVkIG9wYXF1ZURpdkJ5NChJbmZpbml0eSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAg
cmVzdWx0ID0gb3BhcXVlRGl2Qnk0KC1JbmZpbml0eSk7CisgICAgaWYgKHJlc3VsdCAhPT0gLUlu
ZmluaXR5KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5NCgtSW5maW5pdHkpLiBS
ZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5NChNYXRoLkUpOwor
ICAgIGlmIChyZXN1bHQgIT09IDAuNjc5NTcwNDU3MTE0NzYxMykKKyAgICAgICAgdGhyb3cgIkZh
aWxlZCBvcGFxdWVEaXZCeTQoTWF0aC5FKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKworICAgIHJl
c3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1heE1pbnVzT25lKE1hdGguUEkpOworICAgIGlmIChyZXN1
bHQgIT09IDYuOTkwMjc1Njg3NTgwOTE5ZS0zMDgpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3Bh
cXVlRGl2QnlTYWZlTWF4TWludXNPbmUoTWF0aC5QSSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7Cisg
ICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWF4TWludXNPbmUoTmFOKTsKKyAgICBpZiAocmVz
dWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnlTYWZlTWF4
TWludXNPbmUoTmFOKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVE
aXZCeVNhZmVNYXhNaW51c09uZShJbmZpbml0eSk7CisgICAgaWYgKHJlc3VsdCAhPT0gSW5maW5p
dHkpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnlTYWZlTWF4TWludXNPbmUoSW5m
aW5pdHkpLiBSZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2Fm
ZU1heE1pbnVzT25lKC1JbmZpbml0eSk7CisgICAgaWYgKHJlc3VsdCAhPT0gLUluZmluaXR5KQor
ICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1heE1pbnVzT25lKC1JbmZpbml0
eSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWF4
TWludXNPbmUoTWF0aC5FKTsKKyAgICBpZiAocmVzdWx0ICE9PSA2LjA0ODM3NzgzNjU1OTM3OGUt
MzA4KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1heE1pbnVzT25lKE1h
dGguRSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNh
ZmVNYXgoTWF0aC5QSSk7CisgICAgaWYgKHJlc3VsdCAhPT0gMy40OTUxMzc4NDM3OTA0NTkzZS0z
MDgpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnlTYWZlTWF4KE1hdGguUEkpLiBS
ZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1heChOYU4p
OworICAgIGlmIChyZXN1bHQgPT09IHJlc3VsdCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFx
dWVEaXZCeVNhZmVNYXgoTmFOKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBv
cGFxdWVEaXZCeVNhZmVNYXgoSW5maW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09IEluZmluaXR5
KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1heChJbmZpbml0eSkuIFJl
c3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWF4KC1JbmZp
bml0eSk7CisgICAgaWYgKHJlc3VsdCAhPT0gLUluZmluaXR5KQorICAgICAgICB0aHJvdyAiRmFp
bGVkIG9wYXF1ZURpdkJ5U2FmZU1heCgtSW5maW5pdHkpLiBSZXN1bHQgPSAiICsgcmVzdWx0Owor
ICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1heChNYXRoLkUpOworICAgIGlmIChyZXN1bHQg
IT09IDMuMDI0MTg4OTE4Mjc5Njg5ZS0zMDgpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVl
RGl2QnlTYWZlTWF4KE1hdGguRSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisKKyAgICByZXN1bHQg
PSBvcGFxdWVEaXZCeVNhZmVNYXhQbHVzT25lKE1hdGguUEkpOworICAgIGlmIChyZXN1bHQgIT09
IDApCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnlTYWZlTWF4UGx1c09uZShNYXRo
LlBJKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVN
YXhQbHVzT25lKE5hTik7CisgICAgaWYgKHJlc3VsdCA9PT0gcmVzdWx0KQorICAgICAgICB0aHJv
dyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1heFBsdXNPbmUoTmFOKS4gUmVzdWx0ID0gIiArIHJl
c3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNYXhQbHVzT25lKEluZmluaXR5KTsK
KyAgICBpZiAocmVzdWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVl
RGl2QnlTYWZlTWF4UGx1c09uZShJbmZpbml0eSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAg
cmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWF4UGx1c09uZSgtSW5maW5pdHkpOworICAgIGlmIChy
ZXN1bHQgPT09IHJlc3VsdCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVN
YXhQbHVzT25lKC1JbmZpbml0eSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0g
b3BhcXVlRGl2QnlTYWZlTWF4UGx1c09uZShNYXRoLkUpOworICAgIGlmIChyZXN1bHQgIT09IDAp
CisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnlTYWZlTWF4UGx1c09uZShNYXRoLkUp
LiBSZXN1bHQgPSAiICsgcmVzdWx0OworCisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWlu
KE1hdGguUEkpOworICAgIGlmIChyZXN1bHQgIT09IDEuNDExOTA0ODg2NDczMDY0MmUrMzA4KQor
ICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1pbihNYXRoLlBJKS4gUmVzdWx0
ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNaW4oTmFOKTsKKyAg
ICBpZiAocmVzdWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2
QnlTYWZlTWluKE5hTikuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVl
RGl2QnlTYWZlTWluKEluZmluaXR5KTsKKyAgICBpZiAocmVzdWx0ICE9PSBJbmZpbml0eSkKKyAg
ICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNaW4oSW5maW5pdHkpLiBSZXN1bHQg
PSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1pbigtSW5maW5pdHkp
OworICAgIGlmIChyZXN1bHQgIT09IC1JbmZpbml0eSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBv
cGFxdWVEaXZCeVNhZmVNaW4oLUluZmluaXR5KS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICBy
ZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNaW4oTWF0aC5FKTsKKyAgICBpZiAocmVzdWx0ICE9PSAx
LjIyMTY1OTE0NTQxMDQ1MjJlKzMwOCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZC
eVNhZmVNaW4oTWF0aC5FKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKworICAgIHJlc3VsdCA9IG9w
YXF1ZURpdkJ5U2FmZU1pbk1pbnVzT25lKE1hdGguUEkpOworICAgIGlmIChyZXN1bHQgIT09IElu
ZmluaXR5KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1pbk1pbnVzT25l
KE1hdGguUEkpLiBSZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5
U2FmZU1pbk1pbnVzT25lKE5hTik7CisgICAgaWYgKHJlc3VsdCA9PT0gcmVzdWx0KQorICAgICAg
ICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1pbk1pbnVzT25lKE5hTikuIFJlc3VsdCA9
ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWluTWludXNPbmUoSW5m
aW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICB0aHJvdyAiRmFp
bGVkIG9wYXF1ZURpdkJ5U2FmZU1pbk1pbnVzT25lKEluZmluaXR5KS4gUmVzdWx0ID0gIiArIHJl
c3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNaW5NaW51c09uZSgtSW5maW5pdHkp
OworICAgIGlmIChyZXN1bHQgIT09IC1JbmZpbml0eSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBv
cGFxdWVEaXZCeVNhZmVNaW5NaW51c09uZSgtSW5maW5pdHkpLiBSZXN1bHQgPSAiICsgcmVzdWx0
OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1pbk1pbnVzT25lKE1hdGguRSk7CisgICAg
aWYgKHJlc3VsdCAhPT0gSW5maW5pdHkpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2
QnlTYWZlTWluTWludXNPbmUoTWF0aC5FKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKK30KKworCisv
LyBDaGVjayB0aGF0IHdlIGRvbid0IGRvIGFueXRoaW5nIGNyYXp5IHdpdGggY3JhenkgdHlwZXMu
Citmb3IgKGxldCBpID0gMDsgaSA8IDFlMzsgKytpKSB7CisgICAgbGV0IHJlc3VsdCA9IG9wYXF1
ZURpdkJ5MigpOworICAgIGlmIChyZXN1bHQgPT09IHJlc3VsdCkKKyAgICAgICAgdGhyb3cgIkZh
aWxlZCBvcGFxdWVEaXZCeTIoKSI7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2Qnk0KG51bGwpOwor
ICAgIGlmIChyZXN1bHQgIT09IDApCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2Qnk0
KG51bGwpIjsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNYXhNaW51c09uZSgiV2ViS2l0
ISIpOworICAgIGlmIChyZXN1bHQgPT09IHJlc3VsdCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBv
cGFxdWVEaXZCeTQobnVsbCkiOworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1pbigiIik7
CisgICAgaWYgKHJlc3VsdCAhPT0gMCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZC
eVNhZmVNaW4oJycpIjsKKyAgICB0cnkgeworICAgICAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTIo
U3ltYm9sKCkpOworICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5MihTeW1ib2woKSki
OworICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICBpZiAoZXhjZXB0aW9uICE9ICJU
eXBlRXJyb3I6IFR5cGUgZXJyb3IiKQorICAgICAgICAgICAgdGhyb3cgIldyb25nIGV4Y2VwdGlv
bjogIiArIGV4Y2VwdGlvbjsKKyAgICB9CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2Qnk0KHRydWUp
OworICAgIGlmIChyZXN1bHQgIT09IDAuMjUpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVl
RGl2Qnk0KHRydWUpIjsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNYXhNaW51c09uZShm
YWxzZSk7CisgICAgaWYgKHJlc3VsdCAhPT0gMCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFx
dWVEaXZCeVNhZmVNYXhNaW51c09uZShmYWxzZSkiOworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5
U2FmZU1pbih7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkge8KgcmV0dXJuIDQyOyB9fSk7CisgICAgaWYg
KHJlc3VsdCAhPT0gSW5maW5pdHkpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnlT
YWZlTWluKHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7wqByZXR1cm4gNDI7IH19KSI7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277002</attachid>
            <date>2016-04-21 20:43:54 -0700</date>
            <delta_ts>2016-04-21 21:46:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-156871-20160421204417.patch</filename>
            <type>text/plain</type>
            <size>17840</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
Y2Y2ZWYyYzZiNzI2NzZlODBiOGE4MDhjYjlmZGU5MWUxZWY2Y2E4Li41M2RhNWNiZGIyYTM4Mzhl
Mjk5N2U5NzQxYjY1YTI1MDdlZTRjNTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNi0wNC0yMSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ10gQ29tbXV0ZSBGRGl2LWJ5LWNvbnN0YW50IGludG8gRk11
bC1ieS1yZWNpcHJvY2FsIHdoZW4gaXQgaXMgc2FmZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2ODcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRmls
aXAgUGl6bG8uCisKKyAgICAgICAgRk11bCBpcyBzaWduaWZpY2FudGx5IGZhc3RlciB0aGFuIEZE
aXYuCisgICAgICAgIEZvciBleGFtcGxlLCBvbiBIYXN3ZWxsLCBGTXVsIGhhcyBhIGxhdGVuY3kg
b2YgNSwgYSB0aHJvdWdocHV0IG9mIDEKKyAgICAgICAgd2hpbGUgRkRpdiBoYXMgbGF0ZW5jeSAx
MC0yNCwgdGhyb3VnaHB1dCA4LTE4LgorCisgICAgICAgIEZvcnR1bmF0ZWx5IGZvciB1cywgU3Vu
c3BpZGVyIGFuZCBLcmFrZW4gaGF2ZSBwbGVudHkgb2YgZGl2aXNpb24KKyAgICAgICAgYnkgYSBz
aW1wbGUgcG93ZXIgb2YgMiBjb25zdGFudC4gVGhvc2UgYXJlIGp1c3QgZXhwb25lbnQgb3BlcmF0
aW9ucworICAgICAgICBhbmQgY2FuIGJlIGVhc2lseSByZXZlcnNlZCB0byB1c2UgRk11bCBpbnN0
ZWFkIG9mIEZEaXYuCisKKyAgICAgICAgTExWTSBkb2VzIHNvbWV0aGluZyBzaW1pbGFyIGluIElu
c3RDb21iaW5lLgorCisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUp
OgorICAgICAgICAqIGppdC9KSVREaXZHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKSVRE
aXZHZW5lcmF0b3I6OmxvYWRPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6SklURGl2R2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKiBqaXQvU25pcHBldE9wZXJhbmQuaDoKKyAg
ICAgICAgKEpTQzo6U25pcHBldE9wZXJhbmQ6OmFzQ29uc3ROdW1iZXIpOgorICAgICAgICAqIHJ1
bnRpbWUvTWF0aENvbW1vbi5oOgorICAgICAgICAoSlNDOjpzYWZlUmVjaXByb2NhbEZvckRpdkJ5
Q29uc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mbG9hdGluZy1wb2ludC1kaXYtdG8tbXVs
LmpzOiBBZGRlZC4KKyAgICAgICAgKG9wYXF1ZURpdkJ5Mik6CisgICAgICAgIChvcGFxdWVEaXZC
eTMpOgorICAgICAgICAob3BhcXVlRGl2Qnk0KToKKyAgICAgICAgKG9wYXF1ZURpdkJ5U2FmZU1h
eE1pbnVzT25lKToKKyAgICAgICAgKG9wYXF1ZURpdkJ5U2FmZU1heCk6CisgICAgICAgIChvcGFx
dWVEaXZCeVNhZmVNYXhQbHVzT25lKToKKyAgICAgICAgKG9wYXF1ZURpdkJ5U2FmZU1pbik6Cisg
ICAgICAgIChvcGFxdWVEaXZCeVNhZmVNaW5NaW51c09uZSk6CisgICAgICAgIChpLmNhdGNoKToK
KyAgICAgICAgKGkucmVzdWx0Lm9wYXF1ZURpdkJ5U2FmZU1pbi52YWx1ZU9mKToKKwogMjAxNi0w
NC0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFBvbHltb3Jw
aGljQWNjZXNzIGFkZHMgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpIHJhdGhlciB0aGFuIHN1YnRy
YWN0aW5nIGl0IHdoZW4gY2FsY3VsYXRpbmcgc3RhY2sgaGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAppbmRl
eCA0OWE5MmM1OGQ0NDE0NTNiZDIxMzcwYmU5NGNmNjVhYmZiMTI5YzQxLi5jMjYzY2Q4MTBlNTVm
YWViY2RjYzMzYTcxOTEwYWFiMjQwNGRiYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5oIgogI2luY2x1
ZGUgIkRGR1ZhcmlhYmxlQWNjZXNzRGF0YUR1bXAuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CisjaW5jbHVkZSAiTWF0aENvbW1vbi5oIgogI2luY2x1ZGUgIlJlZ0V4cENvbnN0cnVjdG9yLmgi
CiAjaW5jbHVkZSAiU3RyaW5nUHJvdG90eXBlLmgiCiAjaW5jbHVkZSA8Y3N0ZGxpYj4KQEAgLTE5
Miw2ICsxOTMsMjUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFr
OwogCisgICAgICAgIGNhc2UgQXJpdGhEaXY6CisgICAgICAgICAgICAvLyBUcmFuc2Zvcm0KKyAg
ICAgICAgICAgIC8vICAgIEFyaXRoRGl2KHgsIGNvbnN0YW50KQorICAgICAgICAgICAgLy8gSW50
bworICAgICAgICAgICAgLy8gICAgQXJpdGhNdWwoeCwgMSAvIGNvbnN0YW50KQorICAgICAgICAg
ICAgLy8gaWYgdGhlIG9wZXJhdGlvbiBoYXMgdGhlIHNhbWUgcmVzdWx0LgorICAgICAgICAgICAg
aWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKERvdWJsZVJlcFVzZSkKKyAgICAgICAgICAgICAg
ICAmJiBtX25vZGUtPmNoaWxkMigpLT5pc051bWJlckNvbnN0YW50KCkpIHsKKworICAgICAgICAg
ICAgICAgIGlmIChPcHRpb25hbDxkb3VibGU+IHJlY2lwcm9jYWwgPSBzYWZlUmVjaXByb2NhbEZv
ckRpdkJ5Q29uc3QobV9ub2RlLT5jaGlsZDIoKS0+YXNOdW1iZXIoKSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgTm9kZSogcmVjaXByb2NhbE5vZGUgPSBtX2luc2VydGlvblNldC5pbnNlcnRDb25z
dGFudChtX25vZGVJbmRleCwgbV9ub2RlLT5vcmlnaW4sIGpzRG91YmxlTnVtYmVyKCpyZWNpcHJv
Y2FsKSwgRG91YmxlQ29uc3RhbnQpOworICAgICAgICAgICAgICAgICAgICBtX25vZGUtPnNldE9w
KEFyaXRoTXVsKTsKKyAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDIoKSA9IEVkZ2Uo
cmVjaXByb2NhbE5vZGUsIERvdWJsZVJlcFVzZSk7CisgICAgICAgICAgICAgICAgICAgIG1fY2hh
bmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgVmFs
dWVSZXA6CiAgICAgICAgIGNhc2UgSW50NTJSZXA6CiAgICAgICAgIGNhc2UgRG91YmxlUmVwOiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5jcHAKaW5kZXgg
NmIyYTdmMjg2M2QyNjUwYjA2MWEzYjU0YWFkZjBjMWJhMzg5ZDA0Ny4uZjIwNWZkZjY3MjllZjRh
YWRkZWFiY2MzNWM3OTA3MGJhYTI4OTA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVREaXZHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklURGl2R2VuZXJhdG9yLmNwcApAQCAtMjksMTIgKzI5LDE3IEBACiAjaWYgRU5BQkxFKEpJ
VCkKIAogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiTWF0aENvbW1v
bi5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogdm9pZCBKSVREaXZHZW5lcmF0b3I6OmxvYWRPcGVy
YW5kKENDYWxsSGVscGVycyYgaml0LCBTbmlwcGV0T3BlcmFuZCYgb3ByLCBKU1ZhbHVlUmVncyBv
cHJSZWdzLCBGUFJSZWcgZGVzdEZQUikKIHsKICAgICBpZiAob3ByLmlzQ29uc3RJbnQzMigpKSB7
CisgICAgICAgIC8vIEZJWE1FOiB0aGlzIGRvZXMgbm90IGxvb2tzIHJpZ2h0LgorICAgICAgICAv
LyAgICAgLU9uIHg4Nl82NCwgQ1ZUU0kyU0QgaGFzIHBhcnRpYWwgcmVnaXN0ZXIgc3RhbGwgb24g
aXRzIEZQUi4KKyAgICAgICAgLy8gICAgICBBIG1vdmUgb3IgbG9hZCBtaWdodCBiZSBhIHRpbnkg
Yml0IGxhcmdlciBidXQgc2FmZXIuCisgICAgICAgIC8vICAgICAtT24gQVJNNjQgd2UgYWxzbyBo
YXZlIEZNT1YgdGhhdCBjYW4gbG9hZCBzbWFsbCBpbW1lZGlhdGVzLgogICAgICAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OkltbTMyKG9wci5hc0NvbnN0SW50MzIoKSksIG1fc2NyYXRjaEdQUik7
CiAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShtX3NjcmF0Y2hHUFIsIGRlc3RGUFIp
OwogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC03NCw5ICs3OSwyNiBAQCB2b2lkIEpJVERpdkdlbmVy
YXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKICAgICBBU1NFUlQoIW1f
bGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgfHwgIW1fcmlnaHRPcGVyYW5kLmlzQ29uc3RJbnQz
MigpKTsKICAgICBtX2RpZEVtaXRGYXN0UGF0aCA9IHRydWU7CiAgICAgbG9hZE9wZXJhbmQoaml0
LCBtX2xlZnRPcGVyYW5kLCBtX2xlZnQsIG1fbGVmdEZQUik7Ci0gICAgbG9hZE9wZXJhbmQoaml0
LCBtX3JpZ2h0T3BlcmFuZCwgbV9yaWdodCwgbV9yaWdodEZQUik7CiAKLSAgICBqaXQuZGl2RG91
YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBPcHRp
b25hbDxkb3VibGU+IHNhZmVSZWNpcHJvY2FsOworICAgIGlmIChtX3JpZ2h0T3BlcmFuZC5pc0Nv
bnN0KCkpIHsKKyAgICAgICAgZG91YmxlIGNvbnN0YW50ID0gbV9yaWdodE9wZXJhbmQuYXNDb25z
dE51bWJlcigpOworICAgICAgICBzYWZlUmVjaXByb2NhbCA9IHNhZmVSZWNpcHJvY2FsRm9yRGl2
QnlDb25zdChjb25zdGFudCk7CisgICAgfQorCisgICAgaWYgKHNhZmVSZWNpcHJvY2FsKSB7Cisg
ICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6SW1tNjQoYml0d2lzZV9jYXN0PGludDY0X3Q+
KCpzYWZlUmVjaXByb2NhbCkpLCBtX3NjcmF0Y2hHUFIpOworICAgICAgICBqaXQubW92ZTY0VG9E
b3VibGUobV9zY3JhdGNoR1BSLCBtX3JpZ2h0RlBSKTsKKworICAgICAgICBqaXQubXVsRG91Ymxl
KG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisgICAg
ICAgIGxvYWRPcGVyYW5kKGppdCwgbV9yaWdodE9wZXJhbmQsIG1fcmlnaHQsIG1fcmlnaHRGUFIp
OworCisgICAgICAgIGppdC5kaXZEb3VibGUobV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsKKyAgICB9
CiAKICAgICAvLyBJcyB0aGUgcmVzdWx0IGFjdHVhbGx5IGFuIGludGVnZXI/IFRoZSBERkcgSklU
IHdvdWxkIHJlYWxseSBsaWtlIHRvIGtub3cuIElmIGl0J3MKICAgICAvLyBub3QgYW4gaW50ZWdl
ciwgd2UgaW5jcmVtZW50IGEgY291bnQuIElmIHRoaXMgdG9nZXRoZXIgd2l0aCB0aGUgc2xvdyBj
YXNlIGNvdW50ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU25pcHBl
dE9wZXJhbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU25pcHBldE9wZXJhbmQuaApp
bmRleCA2Nzg4NGIzYzBmMGNjM2UzNGFmYzE1YmZiM2ViMzkwNzliNDBjMTg1Li4xNWNhODQzYjdl
ZmM0NWEyOGY4NzlmYTU5OWQ2ZTIxYzRlYjdjOTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1NuaXBwZXRPcGVyYW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9TbmlwcGV0T3BlcmFuZC5oCkBAIC03MCw2ICs3MCwxNCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBtX3ZhbC5kb3VibGVWYWw7CiAgICAgfQogCisgICAgZG91YmxlIGFzQ29uc3ROdW1i
ZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGlzQ29uc3RJbnQzMigpKQorICAgICAgICAg
ICAgcmV0dXJuIGFzQ29uc3RJbnQzMigpOworICAgICAgICBBU1NFUlQoaXNDb25zdERvdWJsZSgp
KTsKKyAgICAgICAgcmV0dXJuIGFzQ29uc3REb3VibGUoKTsKKyAgICB9CisKICAgICB2b2lkIHNl
dENvbnN0SW50MzIoaW50MzJfdCB2YWx1ZSkKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IENvbnN0
SW50MzI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoQ29t
bW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmgKaW5kZXgg
MmY4NGVkNzI3Y2FmYzhmYTI4MTg1NjcwMmI5MTA5ZTA1N2JmM2FlMi4uZjE3OGM2MmU0OTg2MzMz
NDlmMWRlMjJlMGE1OTdjNWM0OTQyY2M3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWF0aENvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hdGhDb21tb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIE1hdGhDb21tb25faAogCiAj
aW5jbHVkZSAiSklUT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCiAj
aWZuZGVmIEpJVF9PUEVSQVRJT04KICNkZWZpbmUgSklUX09QRVJBVElPTgpAQCAtNTQsNiArNTUs
MzQgQEAgaW5saW5lIGludCBjbHozMih1aW50MzJfdCBudW1iZXIpCiAjZW5kaWYKIH0KIAoraW5s
aW5lIE9wdGlvbmFsPGRvdWJsZT4gc2FmZVJlY2lwcm9jYWxGb3JEaXZCeUNvbnN0KGRvdWJsZSBj
b25zdGFudCkKK3sKKyAgICAvLyBObyAid2VpcmQiIG51bWJlcnMgKE5hTiwgRGVub3JtYWwsIGV0
YykuCisgICAgaWYgKCFjb25zdGFudCB8fCAhaXNub3JtYWwoY29uc3RhbnQpKQorICAgICAgICBy
ZXR1cm4gTnVsbG9wdDsKKworICAgIGludCBleHBvbmVudDsKKyAgICBpZiAoZnJleHAoY29uc3Rh
bnQsICZleHBvbmVudCkgIT0gMC41KQorICAgICAgICByZXR1cm4gTnVsbG9wdDsKKworICAgIC8v
IE5vdGUgdGhhdCBmcmV4cCgpIHJldHVybnMgdGhlIHZhbHVlIGRpdmlkZWQgYnkgdHdvCisgICAg
Ly8gc28gd2UgdG8gb2Zmc2V0IHRoaXMgZXhwb25lbnQgYnkgb25lLgorICAgIGV4cG9uZW50IC09
IDE7CisKKyAgICAvLyBBIGRvdWJsZSBleHBvbmVudCBpcyBiZXR3ZWVuIC0xMDIyIGFuZCAxMDIz
LgorICAgIC8vIE5vdGhpbmcgd2UgY2FuIGRvIHRvIGludmVydCAxMDIzLgorICAgIGlmIChleHBv
bmVudCA9PSAxMDIzKQorICAgICAgICByZXR1cm4gTnVsbG9wdDsKKworICAgIGRvdWJsZSByZWNp
cHJvY2FsID0gbGRleHAoMSwgLWV4cG9uZW50KTsKKyAgICBBU1NFUlQoaXNub3JtYWwocmVjaXBy
b2NhbCkpOworICAgIEFTU0VSVCgxLiAvIGNvbnN0YW50ID09IHJlY2lwcm9jYWwpOworICAgIEFT
U0VSVChjb25zdGFudCA9PSAxLiAvIHJlY2lwcm9jYWwpOworICAgIEFTU0VSVCgxLiA9PSBjb25z
dGFudCAqIHJlY2lwcm9jYWwpOworCisgICAgcmV0dXJuIHJlY2lwcm9jYWw7Cit9CisKIGV4dGVy
biAiQyIgewogZG91YmxlIEpJVF9PUEVSQVRJT04ganNSb3VuZChkb3VibGUgdmFsdWUpIFJFRkVS
RU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mbG9hdGluZy1wb2ludC1kaXYtdG8tbXVsLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mbG9hdGluZy1wb2ludC1kaXYtdG8tbXVs
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYxNDZiNjgyYzBhOTViZGViNjUzZjc0YzcxZjUzNDAyYWViZjM0NGYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Zs
b2F0aW5nLXBvaW50LWRpdi10by1tdWwuanMKQEAgLTAsMCArMSwyMTYgQEAKK2Z1bmN0aW9uIG9w
YXF1ZURpdkJ5MihhKQoreworICAgIHJldHVybiBhIC8gMjsKK30KK25vSW5saW5lKG9wYXF1ZURp
dkJ5Mik7CisKK2Z1bmN0aW9uIG9wYXF1ZURpdkJ5MyhhKQoreworICAgIHJldHVybiBhIC8gMzsK
K30KK25vSW5saW5lKG9wYXF1ZURpdkJ5Myk7CisKK2Z1bmN0aW9uIG9wYXF1ZURpdkJ5NChhKQor
eworICAgIHJldHVybiBhIC8gNDsKK30KK25vSW5saW5lKG9wYXF1ZURpdkJ5NCk7CisKK2Z1bmN0
aW9uIG9wYXF1ZURpdkJ5U2FmZU1heE1pbnVzT25lKGEpCit7CisgICAgLy8gMl4xMDIyCisgICAg
cmV0dXJuIGEgLyA0NDk0MjMyODM3MTU1Nzg5NzY5MzIzMjYyOTc2OTcyNTYxODM0MDQ0OTQyNDQ3
MzU1NzY2NDMxODM1NzUyMDI4OTQzMzE2ODk1MTM3NTI0MDc4MzE3NzExOTMzMDYwMTg4NDAwNTI4
MDAyODQ2OTk2Nzg0ODMzOTQxNDY5NzQ0MjIwMzYwNDE1NTYyMzIxMTg1NzY1OTg2ODUzMTA5NDQ0
MTk3MzM1NjIxNjM3MTMxOTA3NTU1NDkwMDMxMTUyMzUyOTg2MzI3MDczODAyMTI1MTQ0MjIwOTUz
NzY3MDU4NTYxNTcyMDM2ODQ3ODI3NzYzNTIwNjgwOTI5MDgzNzYyNzY3MTE0NjU3NDU1OTk4Njgx
MTQ4NDYxOTkyOTA3NjIwODgzOTA4MjQwNjA1NjAzNDMwNDsKK30KK25vSW5saW5lKG9wYXF1ZURp
dkJ5U2FmZU1heE1pbnVzT25lKTsKKworZnVuY3Rpb24gb3BhcXVlRGl2QnlTYWZlTWF4KGEpCit7
CisgICAgLy8gMl4xMDIzCisgICAgcmV0dXJuIGEgLyA4OTg4NDY1Njc0MzExNTc5NTM4NjQ2NTI1
OTUzOTQ1MTIzNjY4MDg5ODg0ODk0NzExNTMyODYzNjcxNTA0MDU3ODg2NjMzNzkwMjc1MDQ4MTU2
NjM1NDIzODY2MTIwMzc2ODAxMDU2MDA1NjkzOTkzNTY5NjY3ODgyOTM5NDg4NDQwNzIwODMxMTI0
NjQyMzcxNTMxOTczNzA2MjE4ODg4Mzk0NjcxMjQzMjc0MjYzODE1MTEwOTgwMDYyMzA0NzA1OTcy
NjU0MTQ3NjA0MjUwMjg4NDQxOTA3NTM0MTE3MTIzMTQ0MDczNjk1NjU1NTI3MDQxMzYxODU4MTY3
NTI1NTM0MjI5MzE0OTExOTk3MzYyMjk2OTIzOTg1ODE1MjQxNzY3ODE2NDgxMjExMjA2ODYwODsK
K30KK25vSW5saW5lKG9wYXF1ZURpdkJ5U2FmZU1heCk7CisKK2Z1bmN0aW9uIG9wYXF1ZURpdkJ5
U2FmZU1heFBsdXNPbmUoYSkKK3sKKyAgICAvLyAyXjEwMjQKKyAgICByZXR1cm4gYSAvIDE3OTc2
OTMxMzQ4NjIzMTU5MDc3MjkzMDUxOTA3ODkwMjQ3MzM2MTc5NzY5Nzg5NDIzMDY1NzI3MzQzMDA4
MTE1NzczMjY3NTgwNTUwMDk2MzEzMjcwODQ3NzMyMjQwNzUzNjAyMTEyMDExMzg3OTg3MTM5MzM1
NzY1ODc4OTc2ODgxNDQxNjYyMjQ5Mjg0NzQzMDYzOTQ3NDEyNDM3Nzc2Nzg5MzQyNDg2NTQ4NTI3
NjMwMjIxOTYwMTI0NjA5NDExOTQ1MzA4Mjk1MjA4NTAwNTc2ODgzODE1MDY4MjM0MjQ2Mjg4MTQ3
MzkxMzExMDU0MDgyNzIzNzE2MzM1MDUxMDY4NDU4NjI5ODIzOTk0NzI0NTkzODQ3OTcxNjMwNDgz
NTM1NjMyOTYyNDIyNDEzNzIxNjsKK30KK25vSW5saW5lKG9wYXF1ZURpdkJ5U2FmZU1heFBsdXNP
bmUpOworCitmdW5jdGlvbiBvcGFxdWVEaXZCeVNhZmVNaW4oYSkKK3sKKyAgICAvLyAyXi0xMDIy
CisgICAgcmV0dXJuIGEgLyAoMSAvIDQ0OTQyMzI4MzcxNTU3ODk3NjkzMjMyNjI5NzY5NzI1NjE4
MzQwNDQ5NDI0NDczNTU3NjY0MzE4MzU3NTIwMjg5NDMzMTY4OTUxMzc1MjQwNzgzMTc3MTE5MzMw
NjAxODg0MDA1MjgwMDI4NDY5OTY3ODQ4MzM5NDE0Njk3NDQyMjAzNjA0MTU1NjIzMjExODU3NjU5
ODY4NTMxMDk0NDQxOTczMzU2MjE2MzcxMzE5MDc1NTU0OTAwMzExNTIzNTI5ODYzMjcwNzM4MDIx
MjUxNDQyMjA5NTM3NjcwNTg1NjE1NzIwMzY4NDc4Mjc3NjM1MjA2ODA5MjkwODM3NjI3NjcxMTQ2
NTc0NTU5OTg2ODExNDg0NjE5OTI5MDc2MjA4ODM5MDgyNDA2MDU2MDM0MzA0KTsKK30KK25vSW5s
aW5lKG9wYXF1ZURpdkJ5U2FmZU1pbik7CisKK2Z1bmN0aW9uIG9wYXF1ZURpdkJ5U2FmZU1pbk1p
bnVzT25lKGEpCit7CisgICAgLy8gMl4tMTAyMworICAgIHJldHVybiBhIC8gKDEgLyA4OTg4NDY1
Njc0MzExNTc5NTM4NjQ2NTI1OTUzOTQ1MTIzNjY4MDg5ODg0ODk0NzExNTMyODYzNjcxNTA0MDU3
ODg2NjMzNzkwMjc1MDQ4MTU2NjM1NDIzODY2MTIwMzc2ODAxMDU2MDA1NjkzOTkzNTY5NjY3ODgy
OTM5NDg4NDQwNzIwODMxMTI0NjQyMzcxNTMxOTczNzA2MjE4ODg4Mzk0NjcxMjQzMjc0MjYzODE1
MTEwOTgwMDYyMzA0NzA1OTcyNjU0MTQ3NjA0MjUwMjg4NDQxOTA3NTM0MTE3MTIzMTQ0MDczNjk1
NjU1NTI3MDQxMzYxODU4MTY3NTI1NTM0MjI5MzE0OTExOTk3MzYyMjk2OTIzOTg1ODE1MjQxNzY3
ODE2NDgxMjExMjA2ODYwOCk7Cit9Citub0lubGluZShvcGFxdWVEaXZCeVNhZmVNaW5NaW51c09u
ZSk7CisKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIGxldCByZXN1bHQg
PSBvcGFxdWVEaXZCeTIoTWF0aC5QSSk7CisgICAgaWYgKHJlc3VsdCAhPT0gMS41NzA3OTYzMjY3
OTQ4OTY2KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5MihNYXRoLlBJKS4gUmVz
dWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTIoTmFOKTsKKyAgICBp
ZiAocmVzdWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2Qnky
KE5hTikuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnkyKElu
ZmluaXR5KTsKKyAgICBpZiAocmVzdWx0ICE9PSBJbmZpbml0eSkKKyAgICAgICAgdGhyb3cgIkZh
aWxlZCBvcGFxdWVEaXZCeTIoSW5maW5pdHkpLiBSZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJl
c3VsdCA9IG9wYXF1ZURpdkJ5MigtSW5maW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09IC1JbmZp
bml0eSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeTIoLUluZmluaXR5KS4gUmVz
dWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTIoTWF0aC5FKTsKKyAg
ICBpZiAocmVzdWx0ICE9PSAxLjM1OTE0MDkxNDIyOTUyMjUpCisgICAgICAgIHRocm93ICJGYWls
ZWQgb3BhcXVlRGl2QnkyKE1hdGguRSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisKKyAgICByZXN1
bHQgPSBvcGFxdWVEaXZCeTMoTWF0aC5QSSk7CisgICAgaWYgKHJlc3VsdCAhPT0gMS4wNDcxOTc1
NTExOTY1OTc2KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5MyhNYXRoLlBJKS4g
UmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTMoTmFOKTsKKyAg
ICBpZiAocmVzdWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2
QnkzKE5hTikuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2Qnkz
KEluZmluaXR5KTsKKyAgICBpZiAocmVzdWx0ICE9PSBJbmZpbml0eSkKKyAgICAgICAgdGhyb3cg
IkZhaWxlZCBvcGFxdWVEaXZCeTMoSW5maW5pdHkpLiBSZXN1bHQgPSAiICsgcmVzdWx0OworICAg
IHJlc3VsdCA9IG9wYXF1ZURpdkJ5MygtSW5maW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09IC1J
bmZpbml0eSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeTMoLUluZmluaXR5KS4g
UmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTMoTWF0aC5FKTsK
KyAgICBpZiAocmVzdWx0ICE9PSAwLjkwNjA5Mzk0MjgxOTY4MTcpCisgICAgICAgIHRocm93ICJG
YWlsZWQgb3BhcXVlRGl2QnkzKE1hdGguRSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisKKyAgICBy
ZXN1bHQgPSBvcGFxdWVEaXZCeTQoTWF0aC5QSSk7CisgICAgaWYgKHJlc3VsdCAhPT0gMC43ODUz
OTgxNjMzOTc0NDgzKQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5NChNYXRoLlBJ
KS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTQoTmFOKTsK
KyAgICBpZiAocmVzdWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVl
RGl2Qnk0KE5hTikuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2
Qnk0KEluZmluaXR5KTsKKyAgICBpZiAocmVzdWx0ICE9PSBJbmZpbml0eSkKKyAgICAgICAgdGhy
b3cgIkZhaWxlZCBvcGFxdWVEaXZCeTQoSW5maW5pdHkpLiBSZXN1bHQgPSAiICsgcmVzdWx0Owor
ICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5NCgtSW5maW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09
IC1JbmZpbml0eSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeTQoLUluZmluaXR5
KS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeTQoTWF0aC5F
KTsKKyAgICBpZiAocmVzdWx0ICE9PSAwLjY3OTU3MDQ1NzExNDc2MTMpCisgICAgICAgIHRocm93
ICJGYWlsZWQgb3BhcXVlRGl2Qnk0KE1hdGguRSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisKKyAg
ICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNYXhNaW51c09uZShNYXRoLlBJKTsKKyAgICBpZiAo
cmVzdWx0ICE9PSA2Ljk5MDI3NTY4NzU4MDkxOWUtMzA4KQorICAgICAgICB0aHJvdyAiRmFpbGVk
IG9wYXF1ZURpdkJ5U2FmZU1heE1pbnVzT25lKE1hdGguUEkpLiBSZXN1bHQgPSAiICsgcmVzdWx0
OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1heE1pbnVzT25lKE5hTik7CisgICAgaWYg
KHJlc3VsdCA9PT0gcmVzdWx0KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2Fm
ZU1heE1pbnVzT25lKE5hTikuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3Bh
cXVlRGl2QnlTYWZlTWF4TWludXNPbmUoSW5maW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09IElu
ZmluaXR5KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1heE1pbnVzT25l
KEluZmluaXR5KS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZC
eVNhZmVNYXhNaW51c09uZSgtSW5maW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09IC1JbmZpbml0
eSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNYXhNaW51c09uZSgtSW5m
aW5pdHkpLiBSZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2Fm
ZU1heE1pbnVzT25lKE1hdGguRSk7CisgICAgaWYgKHJlc3VsdCAhPT0gNi4wNDgzNzc4MzY1NTkz
NzhlLTMwOCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNYXhNaW51c09u
ZShNYXRoLkUpLiBSZXN1bHQgPSAiICsgcmVzdWx0OworCisgICAgcmVzdWx0ID0gb3BhcXVlRGl2
QnlTYWZlTWF4KE1hdGguUEkpOworICAgIGlmIChyZXN1bHQgIT09IDMuNDk1MTM3ODQzNzkwNDU5
M2UtMzA4KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1heChNYXRoLlBJ
KS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNYXgo
TmFOKTsKKyAgICBpZiAocmVzdWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93ICJGYWlsZWQg
b3BhcXVlRGl2QnlTYWZlTWF4KE5hTikuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0
ID0gb3BhcXVlRGl2QnlTYWZlTWF4KEluZmluaXR5KTsKKyAgICBpZiAocmVzdWx0ICE9PSBJbmZp
bml0eSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNYXgoSW5maW5pdHkp
LiBSZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1heCgt
SW5maW5pdHkpOworICAgIGlmIChyZXN1bHQgIT09IC1JbmZpbml0eSkKKyAgICAgICAgdGhyb3cg
IkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNYXgoLUluZmluaXR5KS4gUmVzdWx0ID0gIiArIHJlc3Vs
dDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNYXgoTWF0aC5FKTsKKyAgICBpZiAocmVz
dWx0ICE9PSAzLjAyNDE4ODkxODI3OTY4OWUtMzA4KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9w
YXF1ZURpdkJ5U2FmZU1heChNYXRoLkUpLiBSZXN1bHQgPSAiICsgcmVzdWx0OworCisgICAgcmVz
dWx0ID0gb3BhcXVlRGl2QnlTYWZlTWF4UGx1c09uZShNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0
ICE9PSAwKQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1heFBsdXNPbmUo
TWF0aC5QSSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlT
YWZlTWF4UGx1c09uZShOYU4pOworICAgIGlmIChyZXN1bHQgPT09IHJlc3VsdCkKKyAgICAgICAg
dGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNYXhQbHVzT25lKE5hTikuIFJlc3VsdCA9ICIg
KyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWF4UGx1c09uZShJbmZpbml0
eSk7CisgICAgaWYgKHJlc3VsdCA9PT0gcmVzdWx0KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9w
YXF1ZURpdkJ5U2FmZU1heFBsdXNPbmUoSW5maW5pdHkpLiBSZXN1bHQgPSAiICsgcmVzdWx0Owor
ICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1heFBsdXNPbmUoLUluZmluaXR5KTsKKyAgICBp
ZiAocmVzdWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnlT
YWZlTWF4UGx1c09uZSgtSW5maW5pdHkpLiBSZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3Vs
dCA9IG9wYXF1ZURpdkJ5U2FmZU1heFBsdXNPbmUoTWF0aC5FKTsKKyAgICBpZiAocmVzdWx0ICE9
PSAwKQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURpdkJ5U2FmZU1heFBsdXNPbmUoTWF0
aC5FKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2Fm
ZU1pbihNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0ICE9PSAxLjQxMTkwNDg4NjQ3MzA2NDJlKzMw
OCkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNaW4oTWF0aC5QSSkuIFJl
c3VsdCA9ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWluKE5hTik7
CisgICAgaWYgKHJlc3VsdCA9PT0gcmVzdWx0KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1
ZURpdkJ5U2FmZU1pbihOYU4pLiBSZXN1bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9w
YXF1ZURpdkJ5U2FmZU1pbihJbmZpbml0eSk7CisgICAgaWYgKHJlc3VsdCAhPT0gSW5maW5pdHkp
CisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVlRGl2QnlTYWZlTWluKEluZmluaXR5KS4gUmVz
dWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNaW4oLUluZmlu
aXR5KTsKKyAgICBpZiAocmVzdWx0ICE9PSAtSW5maW5pdHkpCisgICAgICAgIHRocm93ICJGYWls
ZWQgb3BhcXVlRGl2QnlTYWZlTWluKC1JbmZpbml0eSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7Cisg
ICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWluKE1hdGguRSk7CisgICAgaWYgKHJlc3VsdCAh
PT0gMS4yMjE2NTkxNDU0MTA0NTIyZSszMDgpCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVl
RGl2QnlTYWZlTWluKE1hdGguRSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7CisKKyAgICByZXN1bHQg
PSBvcGFxdWVEaXZCeVNhZmVNaW5NaW51c09uZShNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0ICE9
PSBJbmZpbml0eSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNaW5NaW51
c09uZShNYXRoLlBJKS4gUmVzdWx0ID0gIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVE
aXZCeVNhZmVNaW5NaW51c09uZShOYU4pOworICAgIGlmIChyZXN1bHQgPT09IHJlc3VsdCkKKyAg
ICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNaW5NaW51c09uZShOYU4pLiBSZXN1
bHQgPSAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5U2FmZU1pbk1pbnVzT25l
KEluZmluaXR5KTsKKyAgICBpZiAocmVzdWx0ICE9PSBJbmZpbml0eSkKKyAgICAgICAgdGhyb3cg
IkZhaWxlZCBvcGFxdWVEaXZCeVNhZmVNaW5NaW51c09uZShJbmZpbml0eSkuIFJlc3VsdCA9ICIg
KyByZXN1bHQ7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWluTWludXNPbmUoLUluZmlu
aXR5KTsKKyAgICBpZiAocmVzdWx0ICE9PSAtSW5maW5pdHkpCisgICAgICAgIHRocm93ICJGYWls
ZWQgb3BhcXVlRGl2QnlTYWZlTWluTWludXNPbmUoLUluZmluaXR5KS4gUmVzdWx0ID0gIiArIHJl
c3VsdDsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNaW5NaW51c09uZShNYXRoLkUpOwor
ICAgIGlmIChyZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1
ZURpdkJ5U2FmZU1pbk1pbnVzT25lKE1hdGguRSkuIFJlc3VsdCA9ICIgKyByZXN1bHQ7Cit9CisK
KworLy8gQ2hlY2sgdGhhdCB3ZSBkb24ndCBkbyBhbnl0aGluZyBjcmF6eSB3aXRoIGNyYXp5IHR5
cGVzLgorZm9yIChsZXQgaSA9IDA7IGkgPCAxZTM7ICsraSkgeworICAgIGxldCByZXN1bHQgPSBv
cGFxdWVEaXZCeTIoKTsKKyAgICBpZiAocmVzdWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93
ICJGYWlsZWQgb3BhcXVlRGl2QnkyKCkiOworICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5NChudWxs
KTsKKyAgICBpZiAocmVzdWx0ICE9PSAwKQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURp
dkJ5NChudWxsKSI7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWF4TWludXNPbmUoIldl
YktpdCEiKTsKKyAgICBpZiAocmVzdWx0ID09PSByZXN1bHQpCisgICAgICAgIHRocm93ICJGYWls
ZWQgb3BhcXVlRGl2Qnk0KG51bGwpIjsKKyAgICByZXN1bHQgPSBvcGFxdWVEaXZCeVNhZmVNaW4o
IiIpOworICAgIGlmIChyZXN1bHQgIT09IDApCisgICAgICAgIHRocm93ICJGYWlsZWQgb3BhcXVl
RGl2QnlTYWZlTWluKCcnKSI7CisgICAgdHJ5IHsKKyAgICAgICAgcmVzdWx0ID0gb3BhcXVlRGl2
QnkyKFN5bWJvbCgpKTsKKyAgICAgICAgdGhyb3cgIkZhaWxlZCBvcGFxdWVEaXZCeTIoU3ltYm9s
KCkpIjsKKyAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgaWYgKGV4Y2VwdGlvbiAh
PSAiVHlwZUVycm9yOiBUeXBlIGVycm9yIikKKyAgICAgICAgICAgIHRocm93ICJXcm9uZyBleGNl
cHRpb246ICIgKyBleGNlcHRpb247CisgICAgfQorICAgIHJlc3VsdCA9IG9wYXF1ZURpdkJ5NCh0
cnVlKTsKKyAgICBpZiAocmVzdWx0ICE9PSAwLjI1KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9w
YXF1ZURpdkJ5NCh0cnVlKSI7CisgICAgcmVzdWx0ID0gb3BhcXVlRGl2QnlTYWZlTWF4TWludXNP
bmUoZmFsc2UpOworICAgIGlmIChyZXN1bHQgIT09IDApCisgICAgICAgIHRocm93ICJGYWlsZWQg
b3BhcXVlRGl2QnlTYWZlTWF4TWludXNPbmUoZmFsc2UpIjsKKyAgICByZXN1bHQgPSBvcGFxdWVE
aXZCeVNhZmVNaW4oeyB2YWx1ZU9mOiBmdW5jdGlvbigpIHvCoHJldHVybiA0MjsgfX0pOworICAg
IGlmIChyZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICB0aHJvdyAiRmFpbGVkIG9wYXF1ZURp
dkJ5U2FmZU1pbih7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkge8KgcmV0dXJuIDQyOyB9fSkiOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>