<?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>209944</bug_id>
          
          <creation_ts>2020-04-02 17:32:51 -0700</creation_ts>
          <short_desc>REGRESSION(r259390): It broke WinCairo builds (Requested by fujihiro on #webkit).</short_desc>
          <delta_ts>2020-04-02 17:38:17 -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>
          
          <blocked>207119</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>darin</cc>
    
    <cc>fujii</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1637174</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-04-02 17:32:51 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/259390 broke the build:
It broke WinCairo builds (Requested by fujihiro on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637175</commentid>
    <comment_count>1</comment_count>
      <attachid>395330</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-04-02 17:32:56 -0700</bug_when>
    <thetext>Created attachment 395330
REVERT of r259390

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637177</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-02 17:37:50 -0700</bug_when>
    <thetext>Committed r259436: &lt;https://trac.webkit.org/changeset/259436&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395330.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637178</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-02 17:38:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/61235019&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395330</attachid>
            <date>2020-04-02 17:32:56 -0700</date>
            <delta_ts>2020-04-02 17:37:51 -0700</delta_ts>
            <desc>REVERT of r259390</desc>
            <filename>bug-209944-20200402173255.patch</filename>
            <type>text/plain</type>
            <size>29037</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmQ4YWI0YzllOGI3ODA1YTg1MmU2MjRjMTFhZWFiMDFkMGUwMDM5Li4xZDU5OWU4Y2YwZTVkNDdi
YzI3NGU4NjhjNTlmYjdhNjU3NDFkN2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0wNC0wMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNTkzOTAuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk5NDQKKworICAgICAg
ICBJdCBicm9rZSBXaW5DYWlybyBidWlsZHMgKFJlcXVlc3RlZCBieSBmdWppaGlybyBvbiAjd2Vi
a2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkVuYWJsZSBv
ZmZsaW5lYXNtIGRlYnVnIGFubm90YXRpb25zIGZvciBHQ0MiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxMTkKKyAgICAgICAgaHR0cHM6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzI1OTM5MAorCiAyMDIwLTA0LTAyICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVjb3JkZWRTdGF0dXNlcydz
IGFzc2lnbm1lbnQgc2hvdWxkIGJlIGd1YXJkZWQgYnkgQ29kZUJsb2NrJ3MgbG9jawpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAw
NGIxNTJiZjNkYTU2Y2Q4NjEzZmZmZmFiNGY5ZDg0OGJkNzAyNDg0Li40NGJiZjE2NGUyMWNiNjRk
MjEwZTU1OGU0YTY3OWEwMGRlYTY1Nzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA0LTAy
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJl
dmlld2VkLCByZXZlcnRpbmcgcjI1OTM5MC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTk0NAorCisgICAgICAgIEl0IGJyb2tlIFdpbkNhaXJvIGJ1
aWxkcyAoUmVxdWVzdGVkIGJ5IGZ1amloaXJvIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVy
dGVkIGNoYW5nZXNldDoKKworICAgICAgICAiRW5hYmxlIG9mZmxpbmVhc20gZGVidWcgYW5ub3Rh
dGlvbnMgZm9yIEdDQyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNzExOQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MjU5MzkwCisKIDIwMjAtMDQtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBSZXBsYWNlIFVJS2l0IGJhY2tncm91bmQgdGFzayB3aXRoIGEgUnVubmlu
Z0JvYXJkIEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDc5MWI3ZmU5MzllNzI1YWMxODI2YzE3NGFkYWY1OThhMzk2
NGMyNjYuLjNmZjIyNWUwNzFkOWViNGNjNDRlZGU4ZWE2ZTg1ZjQxYjViZTI3ZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMyMyw3ICszMjMsNyBAQCBhZGRfY3VzdG9t
X2NvbW1hbmQoCiAgICAgT1VUUFVUICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vJHtMTEludE91dHB1dH0KICAgICBNQUlOX0RFUEVOREVOQ1kgJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L29mZmxpbmVhc20vYXNtLnJiCiAgICAgREVQRU5EUyBMTEludE9mZnNldHNFeHRyYWN0b3Ig
JHtMTElOVF9BU019ICR7T0ZGTElORV9BU019ICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vSW5pdEJ5dGVjb2Rlcy5hc20gJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9Jbml0V2FzbS5hc20KLSAgICBDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLUUgZW52
IENNQUtFX0NYWF9DT01QSUxFUl9JRD0ke0NNQUtFX0NYWF9DT01QSUxFUl9JRH0gR0NDX09GRkxJ
TkVBU01fU09VUkNFX01BUD0ke0dDQ19PRkZMSU5FQVNNX1NPVVJDRV9NQVB9ICR7UlVCWV9FWEVD
VVRBQkxFfSAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vb2ZmbGluZWFzbS9hc20ucmIgLUkke0phdmFT
Y3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9LyAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gJDxUQVJHRVRfRklMRTpMTEludE9mZnNldHNFeHRy
YWN0b3I+ICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtMTEludE91dHB1
dH0gJHtPRkZMSU5FX0FTTV9BUkdTfQorICAgIENPTU1BTkQgJHtSVUJZX0VYRUNVVEFCTEV9ICR7
SkFWQVNDUklQVENPUkVfRElSfS9vZmZsaW5lYXNtL2FzbS5yYiAtSSR7SmF2YVNjcmlwdENvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vICR7SkFWQVNDUklQVENPUkVfRElSfS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbSAkPFRBUkdFVF9GSUxFOkxMSW50T2Zmc2V0c0V4dHJhY3Rvcj4gJHtK
YXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS8ke0xMSW50T3V0cHV0fSAke09GRkxJ
TkVfQVNNX0FSR1N9CiAgICAgQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IC1FIHRvdWNoX25vY3Jl
YXRlICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtMTEludE91dHB1dH0K
ICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke0phdmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9CiAgICAgVkVSQkFUSU0pCkBAIC0zNDgsMTcgKzM0OCwxMCBAQCBpZiAoTVNWQyBBTkQgTk9U
IEVOQUJMRV9DX0xPT1ApCiAgICAgICAgIENPTU1BTkQgJHtNQVNNX0VYRUNVVEFCTEV9ICR7TExJ
TlRfTUFTTV9GTEFHU30gJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Mb3dM
ZXZlbEludGVycHJldGVyV2luLm9iaiAke0phdmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19E
SVJ9L0xvd0xldmVsSW50ZXJwcmV0ZXJXaW4uYXNtCiAgICAgICAgIFZFUkJBVElNKQogICAgIGxp
c3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX1NPVVJDRVMgJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVE
X1NPVVJDRVNfRElSfS9Mb3dMZXZlbEludGVycHJldGVyV2luLm9iaikKLSAgICBhZGRfbGlicmFy
eShMb3dMZXZlbEludGVycHJldGVyTGliIE9CSkVDVCBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
LmNwcCkKIGVsc2UgKCkKLSAgICAjIEFzIHRoZXJlJ3MgcG9vciB0b29sY2hhaW4gc3VwcG9ydCBm
b3IgdXNpbmcgYC5maWxlYCBkaXJlY3RpdmVzIGluCi0gICAgIyBpbmxpbmUgYXNtIChpLmUuIHRo
ZXJlJ3Mgbm8gd2F5IHRvIGF2b2lkIGNsYXNoZXMgd2l0aCB0aGUgYC5maWxlYAotICAgICMgZGly
ZWN0aXZlcyBnZW5lcmF0ZWQgYnkgdGhlIEMgY29kZSBpbiB0aGUgY29tcGlsYXRpb24gdW5pdCks
IHdlCi0gICAgIyBpbnRyb2R1Y2UgYSBwb3N0cHJvY2Vzc2luZyBwYXNzIGZvciB0aGUgYXNtIHRo
YXQgZ2V0cyBhc3NlbWJsZWQgaW50bwotICAgICMgYW4gb2JqZWN0IGZpbGUuIFdlIG9ubHkgbmVl
ZCB0byBkbyB0aGlzIGZvciBMb3dMZXZlbEludGVycHJldGVyLmNwcAotICAgICMgYW5kIGNtYWtl
IGRvZXNuJ3QgYWxsb3cgdXMgdG8gaW50cm9kdWNlIGEgY29tcGlsZXIgd3JhcHBlciBmb3IgYQot
ICAgICMgc2luZ2xlIHNvdXJjZSBmaWxlLCBzbyB3ZSBuZWVkIHRvIGNyZWF0ZSBhIHNlcGFyYXRl
IHRhcmdldCBmb3IgaXQuCi0gICAgYWRkX2xpYnJhcnkoTG93TGV2ZWxJbnRlcnByZXRlckxpYiBP
QkpFQ1QgbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAKLSAgICAgICAgJHtKYXZhU2NyaXB0
Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS8ke0xMSW50T3V0cHV0fSkKKyAgICBsaXN0KEFQUEVO
RCBKYXZhU2NyaXB0Q29yZV9IRUFERVJTCisgICAgICAgICR7SmF2YVNjcmlwdENvcmVfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vTExJbnRBc3NlbWJseS5oCisgICAgKQogZW5kaWYgKCkKIAogIyBXZWJB
c3NlbWJseSBnZW5lcmF0b3IKQEAgLTEzNjksMjkgKzEzNjIsNiBAQCB0YXJnZXRfaW5jbHVkZV9k
aXJlY3RvcmllcyhMTEludE9mZnNldHNFeHRyYWN0b3IgU1lTVEVNIFBSSVZBVEUgJHtKYXZhU2Ny
aXB0Q29yZQogCiBhZGRfc3ViZGlyZWN0b3J5KHNoZWxsKQogCi10YXJnZXRfaW5jbHVkZV9kaXJl
Y3RvcmllcyhMb3dMZXZlbEludGVycHJldGVyTGliCi0gICAgUFJJVkFURSAiJDxUQVJHRVRfUFJP
UEVSVFk6SmF2YVNjcmlwdENvcmUsSU5DTFVERV9ESVJFQ1RPUklFUz4iKQotCi1pZiAoQ01BS0Vf
Q09NUElMRVJfSVNfR05VQ1hYIEFORCBHQ0NfT0ZGTElORUFTTV9TT1VSQ0VfTUFQKQotICAgIG1l
c3NhZ2UoU1RBVFVTICJFbmFibGluZyBhc20gcG9zdHByb2Nlc3NpbmciKQotCi0gICAgc2V0KExv
d0xldmVsSW50ZXJwcmV0ZXJfTEFVTkNIRVIgIiR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19TT1VS
Q0VTX0RJUn0vcG9zdHByb2Nlc3MtYXNtIikKLSAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KFBST1Bf
UlVMRV9MQVVOQ0hfQ09NUElMRSBMb3dMZXZlbEludGVycHJldGVyTGliIFJVTEVfTEFVTkNIX0NP
TVBJTEUpCi0gICAgaWYgKFBST1BfUlVMRV9MQVVOQ0hfQ09NUElMRSkKLSAgICAgICAgc2V0KExv
d0xldmVsSW50ZXJwcmV0ZXJfTEFVTkNIRVIgIiR7TG93TGV2ZWxJbnRlcnByZXRlcl9MQVVOQ0hF
Un0gJHtQUk9QX1JVTEVfTEFVTkNIX0NPTVBJTEV9IikKLSAgICBlbmRpZiAoKQotICAgIHNldF9w
cm9wZXJ0eShUQVJHRVQgTG93TGV2ZWxJbnRlcnByZXRlckxpYgotICAgICAgICBQUk9QRVJUWSBS
VUxFX0xBVU5DSF9DT01QSUxFICIke0xvd0xldmVsSW50ZXJwcmV0ZXJfTEFVTkNIRVJ9IikKLQot
ICAgICMgUGFzcyBpbiB0aGUgZmlsZW5hbWUgYXMgYSBtYWdpYyBwcmVwcm9jZXNzb3IgZGlyZWN0
aXZlLCBzbyB0aGF0Ci0gICAgIyB0aGUgd3JhcHBlciBjYW4gYWNjdXJhdGVseSBpZGVudGlmeSB0
aGUgc291cmNlIGZpbGUuCi0gICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCJsbGludC9M
b3dMZXZlbEludGVycHJldGVyLmNwcCIKLSAgICAgICAgUFJPUEVSVElFUwotICAgICAgICBDT01Q
SUxFX0RFRklOSVRJT05TICJQT1NUUFJPQ0VTU19BU009bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5jcHAiKQotZW5kaWYgKCkKLQotbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfTElCUkFSSUVT
IExvd0xldmVsSW50ZXJwcmV0ZXJMaWIpCi0KIFdFQktJVF9DT01QVVRFX1NPVVJDRVMoSmF2YVNj
cmlwdENvcmUpCiBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUKCR7SmF2YVNjcmlwdENvcmVfU09VUkNF
U30pCiBXRUJLSVRfRlJBTUVXT1JLKEphdmFTY3JpcHRDb3JlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvcG9zdHByb2Nlc3MtYXNtIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvcG9zdHByb2Nlc3MtYXNtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCBkZjBhMzEyZWU0YTc4MTQ5ZmM5ZTllZTEzNDM4MWFjNGY2Y2QwMGJmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Bvc3Rwcm9jZXNzLWFzbQorKysgL2Rldi9udWxsCkBAIC0xLDE5MyArMCwwIEBA
Ci0jIS91c3IvYmluL2VudiBydWJ5Ci0KLSMgQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLiBM
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0j
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIyBXcmFwcGVyIGZv
ciBhIC5jcHAgLT4gLm8gY29tcGlsYXRpb24gY29tbWFuZC4gSXQKLSMgMS4gY29udmVydHMgdGhl
IGNvbW1hbmQgdG8gZ2VuZXJhdGUgYSBgLnMnIGZpbGUKLSMgMi4gcnVucyB0aGUgQVNNIHBvc3Rw
cm9jZXNzb3Igb24gaXQgdG8gZ2VuZXJhdGUgdGhlIGZpbmFsIGAuc2AgZmlsZQotIyAzLiBhc3Nl
bWJsZXMgdGhlIGAuc2AgZmlsZSB0byBhIGAub2AgZmlsZQotCi0kYXNtX3N1ZmZpeF9wcmUgPSAi
LnByZS5zIgotJGFzbV9zdWZmaXggPSAiLnMiCi0kcG9zdHByb2Nlc3NvciA9ICIje0ZpbGUuZGly
bmFtZSgkMCl9L3Jlc29sdmUtYXNtLWZpbGUtY29uZmxpY3RzLnJiIgotCi0KLSRpbnRlcm1lZGlh
dGVfcGF0aHMgPSBbXQotCi0jIFdlIG5lZWQgdG8gd29yayB3aXRoIGluZGljZXMgYSBsb3QgYW5k
IHVuZm9ydHVuYXRlbHkgJ2dldG9wdGxvbmcnIGluCi0jIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGRv
ZXNuJ3QgZXhwb3NlIG9wdGluZCwgc28gd2UncmUgZ29pbmcgd2l0aAotIyBhcnJheSBzZWFyY2hl
cyBmb3Igc2ltcGxpY2l0eS4KLWRlZiBpbmRleF9ub2ZhaWwoYXJ5LCBmLCBlcnJtc2cpCi0gIGlk
eCA9IGFyeS5pbmRleCB7IHxlbHwKLSAgICBmLmNhbGwoZWwpCi0gIH0KLSAgaWYgaWR4Lm5pbD8K
LSAgICAkc3RkZXJyLnB1dHMoZXJybXNnKQotICAgIGV4aXQoMykKLSAgZW5kCi0gIGlkeAotZW5k
Ci0KLSMgRmluZCBhbmQgcmV0dXJuIHRoZSBzb3VyY2UgZmlsZSBmb3IgdGhpcyBjb21waWxhdGlv
biBjb21tYW5kLAotIyByZW1vdmluZyBpdCBmcm9tIHRoZSBhcmdzLiBOb3RlIHRoYXQgdGhlIHBh
dGggKEEpIGFzIGl0IGFwcGVhcnMgaGVyZQotIyAoY29taW5nIGZyb20gYSBjbWFrZSBydWxlKSBp
cyBsaWtlbHkgdG8gYmUgZGlmZmVyZW50IHRvIHRoZQotIyBhbm9ueW1vdXMgYXJndW1lbnQgKEIp
IHRvIHRoZSBjb21waWxhdGlvbiBjb21tYW5kLiBIb3dldmVyLCBBIHdpbGwKLSMgYmUgYSBzdWZm
aXggb2YgQi4KLSMKLSMgRXhpdCB3aXRoIGFuIGVycm9yIGlmIHRoZSBhcmd1bWVudCBpcyBub3Qg
dGhlcmUuIFRoaXMgaGFzIGFscmVhZHkKLSMgYmVlbiBjaGVja2VkIGJ5IGBjeHgtd3JhcHBlcmAs
IG90aGVyd2lzZSB3ZSB3b3VsZG4ndCBiZSBydW5uaW5nLgotZGVmIGV4dHJhY3RfaW5wdXQhKGFy
Z3MpCi0gIHByZWZpeCA9ICctRFBPU1RQUk9DRVNTX0FTTT0nCi0KLSAgaWR4ID0gaW5kZXhfbm9m
YWlsKGFyZ3MsIFByb2MubmV3IHsgfGFyZ3wKLSAgICBhcmcuc3RhcnRfd2l0aD8ocHJlZml4KQot
ICB9LCAiTm8gYC1EUE9TVFBST0NFU1NfQVNNYCBhcmd1bWVudGAiKQotCi0gIHBhdGggPSBhcmdz
W2lkeF1bcHJlZml4LnNpemUuLi0xXQotICBpZiBwYXRoLnNpemUgPT0gMAotICAgICRzdGRlcnIu
cHV0cygiRW1wdHkgcGF0aCBpbiAtRFBPU1RQUk9DRVNTX0FTTT0iKQotICAgIGV4aXQoMykKLSAg
ZW5kCi0gICMgV2Ugb25seSBuZWVkIHRoaXMgdG8gYmUgZGVmaW5lZCBmb3IgdGhlIHByZXByb2Nl
c3NvciAobm90IGFueQotICAjIHdyYXBwZXIpIGZyb20gbm93IG9uLgotICBhcmdzW2lkeF0gPSAi
LURQT1NUUFJPQ0VTU19BU00iCi0gIHJldHVybiBwYXRoCi1lbmQKLQotIyBHZXQgdGhlIGluZGV4
IG9mIHRoZSBmaXJzdCBhcmd1bWVudCBlbmRpbmcgaW4gdGhpcyBzdWZmaXguCi0jCi0jIEV4aXQg
d2l0aCBhbiBlcnJvciBpZiB0aGUgYXJndW1lbnQgaXNuJ3QgdGhlcmUuIFdlJ3JlIG9ubHkgZXZl
cgotIyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgd2Uga25vdyBhcmUgYmVpbmcgcGFzc2VkIGluIGJ5
IHRoZSBidWlsZAotIyBzeXN0ZW0uCi1kZWYgZ2V0X2FyZ19pZHhfc3VmZml4KGFyZ3MsIHdhbnRl
ZCkKLSAgaW5kZXhfbm9mYWlsKGFyZ3MsIFByb2MubmV3IHsgfGFyZ3wKLSAgICAgICAgICAgICAg
ICAgYXJnLmVuZF93aXRoPyh3YW50ZWQpCi0gICAgICAgICAgICAgICB9LCAiTm8gYXJndW1lbnQg
ZW5kcyB3aXRoICN7d2FudGVkfSIpCi1lbmQKLQotIyBHZXQgaW5kZXggb2YgYSBnaXZlbiBhcmd1
bWVudC4gRGllIGlmIGl0J3Mgbm90IHRoZXJlLgotZGVmIGdldF9hcmdfaWR4KGFyZ3MsIHdhbnRl
ZCkKLSAgaW5kZXhfbm9mYWlsKGFyZ3MsIFByb2MubmV3IHsgfGFyZ3wKLSAgICAgICAgICAgICAg
ICAgYXJnID09IHdhbnRlZAotICAgICAgICAgICAgICAgfSwgIk5vIGAje3dhbnRlZH1gIGFyZ3Vt
ZW50IikKLWVuZAotCi0jIEdldCB0aGUgaW5kZXggb2YgYC1vYCBhbmQgdmVyaWZ5IHRoYXQgYW4g
YXJndW1lbnQgZm9sbG93cy4KLSMgQm90aCBhcmUgZ3VhcmFudGVlZCB0byBleGlzdCAoZnJvbSBv
dXIgYnVpbGQgc3lzdGVtKS4KLWRlZiBnZXRfb19pZHgoYXJncykKLSAgaSA9IGdldF9hcmdfaWR4
KGFyZ3MsICctbycpCi0gIGlmIChpICsgMSkgPj0gYXJncy5zaXplCi0gICAgJHN0ZGVyci5wdXRz
KCJObyBhcmd1bWVudCB0byBgLW9gIikKLSAgICBleGl0KDMpCi0gIGVuZAotICBpCi1lbmQKLQot
IyBSdW4gY29tbWFuZCBhbmQgZGllIGlmIGl0IGZhaWxzLCBwcm9wYWdhdGluZyB0aGUgZXhpdCBj
b2RlLgotZGVmIHJ1bl9jbWQoY21kKQotICBwaWQgPSBQcm9jZXNzLnNwYXduKCpjbWQpCi0gIFBy
b2Nlc3Mud2FpdHBpZChwaWQpCi0gIHJldCA9ICQ/Ci0gIGlmIG5vdCByZXQuc3VjY2Vzcz8KLSAg
ICAkc3RkZXJyLnB1dHMoIkVycm9yIHJ1bm5pbmcgY21kOiAje3JldH0iKQotICAgIGV4aXQocmV0
LmV4aXRzdGF0dXMpCi0gIGVuZAotZW5kCi0KLSMgQ29udmVydAotIyAgICBjeHggLW8gYmxhaC5v
IC1jIGJsYWguY3BwCi0jIHRvCi0jICAgIGN4eCAtbyBibGFoLnMgLVMgYmxhaC5jcHAKLWRlZiBi
dWlsZF9jeHhfY21kKGFyZ3MpCi0gIGNfaWR4ID0gZ2V0X2FyZ19pZHgoYXJncywgJy1jJykKLSAg
b19pZHggPSBnZXRfb19pZHgoYXJncykKLQotICBjeHhfYXJncyA9IGFyZ3MuY2xvbmUKLQotICBj
eHhfYXJnc1tjX2lkeF0gPSAnLVMnCi0gIG9fcGF0aCA9IGN4eF9hcmdzW29faWR4ICsgMV0KLSAg
Y3h4X2FyZ3Nbb19pZHggKyAxXSA9IG9fcGF0aC5zdWIoL1suXW8kLywgJGFzbV9zdWZmaXgpCi0g
ICRpbnRlcm1lZGlhdGVfcGF0aHMgPDwgY3h4X2FyZ3Nbb19pZHggKyAxXQotICBpZiBjeHhfYXJn
c1tvX2lkeCArIDFdID09IG9fcGF0aAotICAgICRzdGRlcnIucHV0cygiT3V0cHV0IGZpbGUgbmFt
ZSBub3QgYW4gb2JqZWN0IGZpbGU6IGAje29fcGF0aH1gIikKLSAgICBleGl0KDMpCi0gIGVuZAot
ICBjeHhfYXJncwotZW5kCi0KLSMgRG8KLSMgICAgIG12IGJsYWguUyBibGFoLnByZS5TCi0jIFRo
ZSByZWFzb24gd2UgZG8gYSByZW5hbWUgaW5zdGVhZCBvZiBkaXJlY3RseSBnZW5lcmF0aW5nIHRo
ZSAucHJlLnMKLSMgZmlsZSB3aGVuIGNvbXBpbGluZyBpcyBzbyB0aGF0IHRoZSBjb3JyZXNwb25k
aW5nIC5kd28gZmlsZSB3aWxsIGhhdmUKLSMgdGhlIGNvcnJlY3QgbmFtZSBlbWJlZGRlZC4KLWRl
ZiByZW5hbWVfc19maWxlKGFyZ3MpCi0gIG9fcGF0aCA9IGFyZ3NbZ2V0X29faWR4KGFyZ3MpICsg
MV0KLSAgRmlsZS5yZW5hbWUob19wYXRoLnN1YigvWy5dbyQvLCAkYXNtX3N1ZmZpeCksCi0gICAg
ICAgICAgICAgIG9fcGF0aC5zdWIoL1suXW8kLywgJGFzbV9zdWZmaXhfcHJlKSkKLWVuZAotCi0j
IEJ1aWxkCi0jICAgICBwb3N0cHJvY2Vzc29yIGJsYWgucHJlLlMgYmxhaC5TCi1kZWYgYnVpbGRf
cG9zdHByb2Nlc3Nvcl9jbWQoYXJncykKLSAgb19wYXRoID0gYXJnc1tnZXRfb19pZHgoYXJncykg
KyAxXQotCi0gIHBwX2FyZ3MgPSBbCi0gICAgJHBvc3Rwcm9jZXNzb3IsCi0gICAgb19wYXRoLnN1
YigvWy5dbyQvLCAkYXNtX3N1ZmZpeF9wcmUpLCAjIGlucHV0Ci0gICAgb19wYXRoLnN1YigvWy5d
byQvLCAkYXNtX3N1ZmZpeCkgIyBvdXRwdXQKLSAgXQotICAkaW50ZXJtZWRpYXRlX3BhdGhzIDw8
IHBwX2FyZ3NbLTJdCi0gICRpbnRlcm1lZGlhdGVfcGF0aHMgPDwgcHBfYXJnc1stMV0KLSAgcHBf
YXJncwotZW5kCi0KLSMgQnVpbGQKLSMgICAgIGN4eCAtbyBibGFoLm8gLWMgYmxhaC5TCi1kZWYg
YnVpbGRfYXNfY21kKGFyZ3MsIGlfcGF0aCkKLSAgaV9pZHggPSBnZXRfYXJnX2lkeF9zdWZmaXgo
YXJncywgaV9wYXRoKQotICBvX3BhdGggPSBhcmdzW2dldF9vX2lkeChhcmdzKSArIDFdCi0KLSAg
YXNfYXJncyA9IGFyZ3MuY2xvbmUKLSAgaV9wYXRoID0gYXNfYXJnc1tpX2lkeF0KLSAgYXNfYXJn
c1tpX2lkeF0gPSBvX3BhdGguc3ViKC9bLl1vJC8sICRhc21fc3VmZml4KQotICBhc19hcmdzCi1l
bmQKLQotYXJncyA9IEFSR1YudG9fYQotaV9wYXRoID0gZXh0cmFjdF9pbnB1dCEoYXJncykKLQot
YmVnaW4KLSAgcnVuX2NtZChidWlsZF9jeHhfY21kKGFyZ3MpKQotICByZW5hbWVfc19maWxlKGFy
Z3MpCi0gIHJ1bl9jbWQoYnVpbGRfcG9zdHByb2Nlc3Nvcl9jbWQoYXJncykpCi0gIHJ1bl9jbWQo
YnVpbGRfYXNfY21kKGFyZ3MsIGlfcGF0aCkpCi1lbnN1cmUKLSAgJGludGVybWVkaWF0ZV9wYXRo
cy5lYWNoIHsgfHB8Ci0gICAgaWYgRmlsZS5leGlzdD8ocCkKLSAgICAgIEZpbGUuZGVsZXRlKHAp
Ci0gICAgZW5kCi0gIH0KLWVuZAotCi1leGl0KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy9yZXNvbHZlLWFzbS1maWxlLWNvbmZsaWN0cy5yYiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Jlc29sdmUtYXNtLWZpbGUtY29uZmxpY3RzLnJiCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAyMTgzMmQ4ZDAxZjI5Y2FhYTM2YTlkNmMwYjE0OTYx
ZDdhNDhiN2RmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Jlc29sdmUtYXNtLWZpbGUtY29uZmxpY3Rz
LnJiCisrKyAvZGV2L251bGwKQEAgLTEsMzk5ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHJ1YnkK
LQotIyBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuIEwuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0jIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jIFJlc29sdmUgY29uZmxpY3RzIGluIGAuZmlsZWAgZGly
ZWN0aXZlcyBpbiBhc3NlbWJsZXIgZmlsZXMuIFRob3NlCi0jIG1heSByZXN1bHQgZnJvbSBpbmxp
bmUgYXNtIHN0YXRlbWVudHMgd2hpY2ggdGhlbXNlbHZlcyBoYXZlIGAuZmlsZWAKLSMgZGlyZWN0
aXZlcy4gQXMgdGhlIGlubGluZSBhc20gaGFzIG5vIGlkZWEgd2hhdCB0aGUgbmV4dCBmcmVlIGZp
bGUKLSMgbnVtYmVyIGlzLCBpdCdsbCBnZW5lcmFsbHkgaGF2ZSBpdHMgb3duIG51bWJlcmluZy4g
VG8gZ2V0IHRoaW5ncyB0bwotIyB3b3JrIHdlIGhhdmUgdG8KLSMgMS4gcmVtYXAgY29uZmxpY3Rp
bmcgZmlsZSBudW1iZXJzCi0jIDIuIGNoYW5nZSBgLmxvY2AgZGlyZWN0aXZlcyB0byByZWZlcmVu
Y2UgdGhlIGFwcHJvcHJpYXRlIGZpbGUgbnVtYmVyLgotIwotIyBUbyBiZSBhYmxlIHRvIGRvIHRo
YXQsIHdlIG5lZWQgc29tZSBjb25jZXB0IG9mICJzY29wZSIsIGkuZS4gd2hpY2gKLSMgc2V0IG9m
IGZpbGVzIGEgZ2l2ZW4gYC5sb2NgIGRpcmVjdGl2ZSByZWZlcnMgdG8uIFdlIGdldCB0aGF0IGJ5
Ci0jIHRyYWNraW5nIHRoZSAjQVBQLyNOT0FQUCBkaXJlY3RpdmVzIHRoYXQgdGhlIGNvbXBpbGVy
IGVtaXRzIHdoZW4gaXQKLSMgc3dpdGNoIHRvL2Zyb20gaW5saW5lIGFzbS4KLSMKLSMgSW4gZWZm
ZWN0LCB3ZSBjb252ZXJ0Ci0jICAgICAuZmlsZSAxICJmb28iCi0jICAgICAjQVBQCi0jICAgICAu
ZmlsZSAxICJiYXIiCi0jICAgICAuZmlsZSAyICJmb28iCi0jICAgICAubG9jIDEsIFgKLSMgICAg
ICNOT0FQUAotIyAgICAgLmxvYyAxLCBZCi0jIHRvCi0jICAgICAuZmlsZSAxICJmb28iCi0jICAg
ICAjQVBQCi0jICAgICAuZmlsZSAyICJiYXIiCi0jICAgICAuZmlsZSAxICJmb28iCi0jICAgICAu
bG9jIDIsIFgKLSMgICAgICNOT0FQUAotIyAgICAgLmxvYyAxLCBZCi0KLXJlcXVpcmUgJ3BhdGhu
YW1lJwotcmVxdWlyZSAnc3RyaW5naW8nCi1yZXF1aXJlICdzdHJzY2FuJwotCi1QYXJzZVJlc3Vs
dFN1Y2Nlc3MgPSBTdHJ1Y3QubmV3KDpzdHIpCi1QYXJzZVJlc3VsdEVycm9yID0gU3RydWN0Lm5l
dyg6ZXJyb3IpCi0KLSMgUGFyc2VzIHRoZSBzaW5nbGUgc3RyaW5nIGxpdGVyYWwgZm9sbG93aW5n
IGEgLmZpbGUgYXNzZW1ibGVyIGRpcmVjdGl2ZQotY2xhc3MgRmlsZURpcmVjdGl2ZUFyZ1NjYW5u
ZXIKLSAgZGVmIGluaXRpYWxpemUocykKLSAgICBAcyA9IFN0cmluZ1NjYW5uZXIubmV3KHMpCi0g
IGVuZAotICBkZWYgcGFyc2UKLSAgICBAcy5za2lwKC9ccyovKQotCi0gICAgIyBXZSByZXF1aXJl
IGF0IGxlYXN0IG9uZSBzdHJpbmcgbGl0ZXJhbAotICAgIHJldCA9IHBhcnNlX3N0cmluZ19saXRl
cmFsCi0gICAgaWYgcmV0LnJlc3BvbmRfdG8/KDplcnJvcikKLSAgICAgIHJldHVybiByZXQKLSAg
ICBlbmQKLQotICAgIEBzLnNraXAoL1xzKi8pCi0gICAgaWYgbm90IEBzLmVvcz8KLSAgICAgIHJl
dHVybiBQYXJzZVJlc3VsdEVycm9yLm5ldygiRXhwZWN0ZWQgZW5kIG9mIGxpbmUgYWZ0ZXIgI3ty
ZXQuc3RyfSIpCi0gICAgZW5kCi0gICAgcmV0dXJuIFBhcnNlUmVzdWx0U3VjY2Vzcy5uZXcocmV0
LnN0cikKLSAgZW5kCi0gIGRlZiBwYXJzZV9zdHJpbmdfbGl0ZXJhbAotICAgIGlmIEBzLnNjYW4o
LyIvKS5uaWw/Ci0gICAgICBlcnIgPSAiRXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgYXQgYCN7QHMu
c3RyaW5nfWAgKHBvcyAje0BzLnBvc30pIgotICAgICAgcmV0dXJuIFBhcnNlUmVzdWx0RXJyb3Iu
bmV3KGVycikKLSAgICBlbmQKLSAgICBwYXJzZV91bnRpbF9lbmRfb2Zfc3RyaW5nX2xpdGVyYWwK
LSAgZW5kCi0gIGRlZiBwYXJzZV91bnRpbF9lbmRfb2Zfc3RyaW5nX2xpdGVyYWwKLSAgICBzdGFy
dF9wb3MgPSBAcy5wb3MKLSAgICB3aGlsZSB0cnVlCi0gICAgICAjIFNlYXJjaCBmb3Igb3VyIHNw
ZWNpYWwgY2hhcmFjdGVycwotICAgICAgQHMuc2tpcCgvW14iXFxdKy8pCi0gICAgICBpZiBAcy5z
Y2FuKC9cXC8pCi0gICAgICAgIGlmIEBzLnNjYW4oL1xcLykKLSAgICAgICAgICAjIFdoZW4gd2Ug
c2VlICdcXCcsIGNvbnN1bWUgYm90aCBjaGFyYWN0ZXJzIHNvIHRoYXQgdGhlCi0gICAgICAgICAg
IyBzZWNvbmQgJ1wnIHdpbGwgbm90IGJlIHRyZWF0ZWQgYXMgYW4gZXNjYXBlIGNoYXIuCi0gICAg
ICAgICAgbmV4dAotICAgICAgICBlbHNpZiBAcy5zY2FuKC8iLykKLSAgICAgICAgICAjIEZvciAn
XCInLCBjb25zdW1lIGJvdGggY2hhcmFjdGVycyBzbyB0aGF0IHRoZSAnIicgd2lsbCBub3QKLSAg
ICAgICAgICAjIHRlcm1pbmF0ZSB0aGUgc3RyaW5nLgotICAgICAgICAgIG5leHQKLSAgICAgICAg
ZW5kCi0gICAgICAgIG5leHQKLSAgICAgIGVsc2lmIEBzLnNjYW4oLyIvKQotICAgICAgICAjICci
JyB3aXRob3V0IGEgcHJlY2VlZGluZyAnXCc7IHRlcm1pbmF0ZSB0aGUgbGl0ZXJhbC4KLSAgICAg
ICAgIyBXZSdyZSBhbHJlYWR5IHBhc3QgdGhlICciJywgc28gdGhlIGxpdGVyYWwgZW5kcyBhdCAt
MgotICAgICAgICAjIGNoYXJhY3RlcnMuCi0gICAgICAgIHJldHVybiBQYXJzZVJlc3VsdFN1Y2Nl
c3MubmV3KEBzLnN0cmluZ1tzdGFydF9wb3MuLihAcy5wb3MgLSAyKV0pCi0gICAgICBlbHNpZiBA
cy5lb3M/Ci0gICAgICAgIGVyciA9ICJVbnRlcm1pbmF0ZWQgc3RyaW5nIGxpdGVyYWwgKHN0YXJ0
aW5nIGF0IHBvcyAje3N0YXJ0X3Bvc30gaW4gI3tAcy5zdHJpbmd9IgotICAgICAgICByZXR1cm4g
UGFyc2VSZXN1bHRFcnJvci5uZXcoZXJyKQotICAgICAgZW5kCi0gICAgICByYWlzZSAiSW50ZXJu
YWwgZXJyb3IgKCN7QHMuaW5zcGVjdH0pIgotICAgIGVuZAotICBlbmQKLWVuZAotCi1kZWYgdGVz
dChvdXRmLCBzdHIsIHJlcykKLSAgcHIgPSBGaWxlRGlyZWN0aXZlQXJnU2Nhbm5lci5uZXcoc3Ry
KS5wYXJzZQotICBpZiByZXMuaXNfYT8oQXJyYXkpCi0gICAgaWYgcHIucmVzcG9uZF90bz8oOmVy
cm9yKQotICAgICAgb3V0Zi5wdXRzKCJQYXJzZSByZXN1bHQgaXMgYCN7cHIuZXJyb3J9YCBidXQg
ZXhwZWN0ZWQgI3tyZXN9IikKLSAgICAgIHJldHVybiBmYWxzZQotICAgIGVuZAotICAgIGlmIHBy
LnN0ciAhPSByZXNbMF0KLSAgICAgIG91dGYucHV0cygiUGFyc2VkIHBhdGggYCN7cHIuc3RyfWAg
YnV0IGV4cGVjdGVkIGAje3Jlc1swXX1gIikKLSAgICAgIHJldHVybiBmYWxzZQotICAgIGVuZAot
ICAgIHJldHVybiB0cnVlCi0gIGVsc2lmIHJlcy5pc19hPyhTdHJpbmcpCi0gICAgaWYgcHIucmVz
cG9uZF90bz8oOmVycm9yKQotICAgICAgaWYgbm90IHByLmVycm9yLmRvd25jYXNlLmluY2x1ZGU/
KHJlcy5kb3duY2FzZSkKLSAgICAgICAgZXJyID0gIkVycm9yIG1lc3NhZ2UgYCN7cHIuZXJyb3J9
YCBkb2VzIG5vdCBpbmNsdWRlIGV4cGVjdGVkIHN1YnN0cmluZyBgI3tyZXN9YCIKLSAgICAgICAg
b3V0Zi5wdXRzKGVycikKLSAgICAgICAgcmV0dXJuIGZhbHNlCi0gICAgICBlbmQKLSAgICAgIHJl
dHVybiB0cnVlCi0gICAgZW5kCi0gICAgb3V0Zi5wdXRzKCJFeHBlY3RlZCBlcnJvciAoI3tyZXN9
KSBidXQgZ290IHN1Y2Nlc3NmdWwgcGFyc2UgI3twci5zdHJ9IikKLSAgICByZXR1cm4gZmFsc2UK
LSAgZWxzZQotICAgIHJhaXNlICJJbnRlcm5hbCBlcnJvciAje3Jlcy5jbGFzc30iCi0gIGVuZAot
ZW5kCi0KLWRlZiBzZWxmdGVzdAotICBucl9zdWNjZWVkZWQgPSAwCi0gIHRlc3RzID0gWwotICAg
ICMgc2ltcGxlIHN0cmluZwotICAgIFsnImZvby9iYXIiJywgWyJmb28vYmFyIl1dLAotCi0gICAg
WyciZm9vJywgIlVudGVybWluYXRlZCBzdHJpbmcgbGl0ZXJhbCJdLAotCi0gICAgWyciZm9vXCIn
LCAiVW50ZXJtaW5hdGVkIHN0cmluZyBsaXRlcmFsIl0sCi0KLSAgICAjICJmb29cIgotICAgIFsi
XCJmb29cXFwiIiwgIlVudGVybWluYXRlZCBzdHJpbmcgbGl0ZXJhbCJdLAotCi0gICAgIyAiZm9v
XFwiCi0gICAgWyJcImZvb1xcXFxcIiIsIFsiZm9vXHg1Y1x4NWMiXV0sCi0KLSAgICAjIENhbiBl
c2NhcGUgJyInCi0gICAgWyciZm9vXCJiYXIiJywgWydmb29cImJhciddXSwKLQotICAgICMgQ2Fu
IHBhcnNlIHJlbGF0aXZlCi0gICAgWyciZm9vL2JhciInLCBbJ2Zvby9iYXInXV0sCi0KLSAgICAj
IENhbiBwYXJzZSBhYnNvbHV0ZQotICAgIFsnIi9iYXIiJywgWycvYmFyJ11dLAotCi0gICAgIyBD
YW4gcGFyc2UgYWJzb2x1dGUgd2l0aCB0d28gY29tcG9uZW50cwotICAgIFsnIi9iYXIvYmF6Iics
IFsnL2Jhci9iYXonXV0sCi0KLSAgICAjIENhbiBkZXRlY3Qgc3RyYXkgdG9rZW4KLSAgICBbJyJm
b28iIGJhcicsICJFeHBlY3RlZCBlbmQgb2YgbGluZSJdLAotCi0gICAgIyBDYW4gZGV0ZWN0IHN0
cmF5IHRva2VuIHdpdGhvdXQgd2hpdGVzcGFjZQotICAgIFsnImZvbyJiYXInLCAiRXhwZWN0ZWQg
ZW5kIG9mIGxpbmUiXSwKLQotICAgICMgV2lsbCBub3QgYWNjZXB0IGNsYW5nLXN0eWxlIC5maWxl
IGRpcmVjdGl2ZXMKLSAgICBbJyJ3b3JraW5nX2RpcmVjdG9yeSIgInBhdGgiJywgIkV4cGVjdGVk
IGVuZCBvZiBsaW5lIl0KLSAgXQotICBvdXRmID0gU3RyaW5nSU8ubmV3KCIiKQotICB0ZXN0cy5l
YWNoIHsgfHN0ciwgcmVzfAotICAgIGlmIHRlc3Qob3V0Ziwgc3RyLCByZXMpCi0gICAgICBucl9z
dWNjZWVkZWQgKz0gMQotICAgIGVuZAotICB9Ci0gIGlmIG5yX3N1Y2NlZWRlZCAhPSB0ZXN0cy5z
aXplCi0gICAgJHN0ZGVyci5wdXRzKG91dGYuc3RyaW5nKQotICAgICRzdGRlcnIucHV0cygiU29t
ZSBzZWxmIHRlc3RzIGZhaWxlZCAje25yX3N1Y2NlZWRlZH0vI3t0ZXN0cy5zaXplfSIpCi0gICAg
ZXhpdCgzKQotICBlbmQKLWVuZAotCi0jIEtlZXAgdHJhY2sgb2Ygd2hpY2ggZmlsZW5vIGlzIGFz
c2lnbmVkIHRvIHdoaWNoIGZpbGUgcGF0aC4gV2UgY2FsbAotIyB0aGUgZmlsZW5vIGEgJ3Nsb3Qn
LgotY2xhc3MgRmlsZVNsb3RUcmFja2VyCi0gIEBAbmV4dF9mcmVlID0gMSAgICMgTmV4dCBmcmVl
IGdsb2JhbCBzbG90Ci0gIEBAcGF0aHMgPSB7fSAjIE1hcHMgcGF0aCAtPiBnbG9iYWwgc2xvdAot
ICBkZWYgaW5pdGlhbGl6ZShwYXJlbnQpCi0gICAgQHBhcmVudCA9IHBhcmVudAotICAgICMgVGhp
cyBtYXBzIGZyb20gb3VyIG93biBsb2NhbCBzbG90cyAoaS5lLiB3aXRoaW4gYW4gQVBQIHNlY3Rp
b24pCi0gICAgIyB0byBhIGdsb2JhbCBzbG90LgotICAgIEBzbG90X21hcCA9IHt9Ci0gIGVuZAot
ICAjIFdlIG1ha2Ugc3VyZSB0aGF0IC5maWxlIGRpcmVjdGl2ZXMgdGhhdCBzcGVjaWZ5IHRoZSBz
YW1lIHBhdGggYXJlCi0gICMgZGVkdXAnZCwgaS5lLiBpZiB3ZSBzZWUKLSAgIyAgICAgLmZpbGUg
TiAiL3BhdGgvdG8vaW5jbHVkZS5oIgotICAjICAgICAuLi4KLSAgIyAgICAgLmZpbGUgTSAiL3Bh
dGgvdG8vaW5jbHVkZS5oIgotICAjIHRoZW4gdGhlICJsb2NhbCIgTiwgTSBzbG90cyB3aWxsIGJl
IG1hcHBlZCB0byB0aGUgc2FtZSAiZ2xvYmFsIiBzbG90LgotICBkZWYgcmVnaXN0ZXJfcGF0aChw
YXRoLCBzbG90KQotICAgIGN1cnJfc2xvdCA9IEBAcGF0aHNbcGF0aF0KLSAgICBpZiBjdXJyX3Ns
b3QubmlsPwotICAgICAgIyBXZSBoYXZlbid0IHNlZW4gdGhpcyBmaWxlIGJlZm9yZQotICAgICAg
aWYgc2xvdCA8PSBAQG5leHRfZnJlZQotICAgICAgICAjIERlc2lyZWQgZmlsZSBzbG90IGVpdGhl
ciBjbGFzaGVzIHdpdGggYW4gZXhpc3Rpbmcgb25lLCBvciBpcwotICAgICAgICAjIHRoZSBuZXh0
IG9uZSB0byBiZSBhbGxvY2F0ZWQuIEluIGVpdGhlciBjYXNlLCBhc3NpZ24gdGhlCi0gICAgICAg
ICMgbmV4dCBmcmVlIHNsb3QuCi0gICAgICAgIGFzc2lnbl9uZXh0X3Nsb3QocGF0aCkKLSAgICAg
IGVsc2UKLSAgICAgICAgIyBEb24ndCBhbGxvdyBzbG90IGdhcHMuIFRlY2huaWNhbGx5IHdlIGNv
dWxkIGhhbmRsZSB0aGVtLCBidXQKLSAgICAgICAgIyB0aGV5IHNob3VsZCBuZXZlciBoYXBwZW47
IGJhaWwgbm93IHJhdGhlciB0aGFuIHBhcGVyaW5nIG92ZXIKLSAgICAgICAgIyBhbiBlYXJsaWVy
IGVycm9yLgotICAgICAgICAkc3RkZXJyLnB1dHMoIkZpbGUgd2FudHMgc2xvdCAje3Nsb3R9IGJ1
dCBvbmx5IHNlZW4gI3tAQG5leHRfZnJlZX0gc28gZmFyIikKLSAgICAgICAgZXhpdCgyKQotICAg
ICAgZW5kCi0gICAgZWxzZQotICAgICAgIyBXZSd2ZSBhbHJlYWR5IGFzc2lnbmVkIGEgc2xvdCBm
b3IgdGhpcyBmaWxlLgotICAgIGVuZAotICAgIEBzbG90X21hcFtzbG90XSA9IEBAcGF0aHNbcGF0
aF0KLSAgICBpZiBAc2xvdF9tYXBbc2xvdF0ubmlsPwotICAgICAgcmFpc2UgIkRpZG4ndCBtYXAg
bG9jYWwgc2xvdCAje3Nsb3R9IgotICAgIGVuZAotICBlbmQKLSAgIyBSZXR1cm4gZ2xvYmFsIHNs
b3QgZm9yIHBhdGgKLSAgZGVmIHNsb3RfZm9yX3BhdGgocGF0aCkKLSAgICByZXR1cm4gQEBwYXRo
c1twYXRoXQotICBlbmQKLSAgIyBSZXR1cm4gZ2xvYmFsIHNsb3QgdGhhdCB3aWxsIHJlcGxhY2Ug
dGhlIGxvY2FsIHNsb3QKLSAgZGVmIHJlbWFwX3Nsb3Qoc2xvdCkKLSAgICByZXQgPSBuaWwKLSAg
ICBpZiBAc2xvdF9tYXAuc2l6ZSA+IDAKLSAgICAgICMgSWYgdGhlIGN1cnJlbnQgTk9fQVBQIHNl
Z21lbnQgaGFzIGRlZmluZWQgYSAuZmlsZSwgb25seSBsb29rCi0gICAgICAjIGluIHRoZSBjdXJy
ZW50IEZpbGVTbG90VHJhY2tlci4gVGhpcyBpcyB0aGUgY2FzZSBmb3IgYQotICAgICAgIyB0b3At
bGV2ZWwgaW5saW5lIGFzbSBzdGF0ZW1lbnQuCi0gICAgICByZXQgPSBAc2xvdF9tYXBbc2xvdF0K
LSAgICBlbHNpZiBub3QgQHBhcmVudC5uaWw/Ci0gICAgICAjIElmIHRoZSBjdXJyZW50IE5PX0FQ
UCBzZWdtZW50IGhhcyBub3QgZGVmaW5lZCBhIC5maWxlLCBjbGVhcmx5Ci0gICAgICAjIGFsbCAu
bG9jIGRpcmVjdGl2ZXMgcmVmZXIgdG8gZmlsZXMgZGVmaW5lZCBpbiB0aGUgQVBQCi0gICAgICAj
IHBhcnQuIFRoaXMgaXMgdGhlIGNhc2UgZm9yIG5vbi10b3AtbGV2ZWwgaW5saW5lIGFzbQotICAg
ICAgIyBzdGF0ZW1lbnRzLgotICAgICAgcmV0ID0gQHBhcmVudC5yZW1hcF9zbG90KHNsb3QpCi0g
ICAgZW5kCi0gICAgaWYgcmV0Lm5pbD8KLSAgICAgIHJhaXNlICJObyBnbG9iYWwgc2xvdCBmb3Ig
I3tzbG90fSIKLSAgICBlbmQKLSAgICByZXQKLSAgZW5kCi0gIHByaXZhdGUKLSAgZGVmIGFzc2ln
bl9uZXh0X3Nsb3QocGF0aCkKLSAgICBAQHBhdGhzW3BhdGhdID0gQEBuZXh0X2ZyZWUKLSAgICBA
QG5leHRfZnJlZSArPSAxCi0gIGVuZAotZW5kCi0KLSMgUmV0dXJuIHNlcXVlbnRpYWwgbGluZXMs
IHdoaWxlIGtlZXBpbmcgdHJhY2sgb2Ygd2hldGhlciB3ZSdyZSBpbiBhbgotIyAjQVBQIG9yICNO
T0FQUCBzZWN0aW9uLgotY2xhc3MgQXNtUmVhZGVyCi0gIGF0dHJfcmVhZGVyIDppbl9hcHAKLSAg
YXR0cl9hY2Nlc3NvciA6YXBwX3RvX25vYXBwLCA6bm9hcHBfdG9fYXBwCi0gIGRlZiBpbml0aWFs
aXplKGYpCi0gICAgQGYgPSBmCi0gICAgQGYucmV3aW5kCi0gICAgQGxpbmVuciA9IDAKLSAgICBA
aW5fYXBwID0gZmFsc2UKLSAgICBAbGFzdF9zd2l0Y2ggPSAic3RhcnQgb2YgZmlsZSIgIyBGb3Ig
ZXJyb3IgbWVzc2FnZXMKLSAgZW5kCi0gIGRlZiBuZXh0X2xpbmUKLSAgICB3aGlsZSB0cnVlCi0g
ICAgICBsID0gQGYuZ2V0cwotICAgICAgaWYgbC5uaWw/Ci0gICAgICAgIHJldHVybiBsCi0gICAg
ICBlbmQKLSAgICAgIEBsaW5lbnIgKz0gMQotICAgICAgaWYgL14jXHMqQVBQXHMqLy5tYXRjaChs
KQotICAgICAgICBpZiBAaW5fYXBwCi0gICAgICAgICAgcmFpc2UgIiNBUFAgb24gbGluZSAje0Bs
aW5lbnJ9IGJ1dCBhbHJlYWR5IGluICNBUFAgKCN7QGxhc3Rfc3dpdGNofSkiCi0gICAgICAgIGVu
ZAotICAgICAgICBAaW5fYXBwID0gdHJ1ZQotICAgICAgICBAbGFzdF9zd2l0Y2ggPSBAbGluZW5y
Ci0gICAgICAgIGlmIEBub2FwcF90b19hcHAKLSAgICAgICAgICBAbm9hcHBfdG9fYXBwLmNhbGwo
KQotICAgICAgICBlbmQKLSAgICAgIGVuZAotICAgICAgaWYgL14jXHMqTk9fQVBQXHMqLy5tYXRj
aChsKQotICAgICAgICBpZiBub3QgQGluX2FwcAotICAgICAgICAgIHJhaXNlICIjTk9BUFAgb24g
bGluZSAje0BsaW5lbnJ9IGJ1dCB3YXMgbm90IGluICNBUFAgKGxhc3Qgc3dpY2ggYXQgI3tAbGFz
dF9zd2l0Y2h9KSIKLSAgICAgICAgZW5kCi0gICAgICAgIEBpbl9hcHAgPSBmYWxzZQotICAgICAg
ICBAbGFzdF9zd2l0Y2ggPSBAbGluZW5yCi0gICAgICAgIGlmIEBhcHBfdG9fbm9hcHAKLSAgICAg
ICAgICBAYXBwX3RvX25vYXBwLmNhbGwoKQotICAgICAgICBlbmQKLSAgICAgIGVuZAotICAgICAg
cmV0dXJuIGwKLSAgICBlbmQKLSAgZW5kCi1lbmQKLQotY2xhc3MgRmlsZUNvbmZsaWN0UmVzb2x2
ZXIKLSAgQEBmaWxlX3JlID0gL15ccypbLl1maWxlXHMrKD88c2xvdD5cZCspXHMrKD88cmVzdD4u
KikkLwotICBAQGxvY19yZSA9IC9eKD88d2hpdGUxPlxzKilbLl1sb2MoPzx3aGl0ZTI+XHMrKSg/
PHNsb3Q+XGQrKSg/PHJlc3Q+XHMrXGQrLiopJC8KLSAgZGVmIGluaXRpYWxpemUoaW5mLCBvdXRm
KQotICAgIEBvdXRmID0gb3V0ZgotICAgIEB0cmFja2VycyA9IFtGaWxlU2xvdFRyYWNrZXIubmV3
KG5pbCldCi0gICAgQGFzbV9yZWFkZXIgPSBBc21SZWFkZXIubmV3KGluZikKLSAgICAjIFdoZW4g
d2UgZW50ZXIgYW4gI0FQUCBzZWN0aW9uIChpLmUuIGFzbSBlbWl0dGVkIGZyb20gYW4gZXhwYW5k
ZWQKLSAgICAjIGlubGluZSBhc20gc3RhdGVtZW50KSwgY3JlYXRlIGEgbmV3IGZpbGUgdHJhY2tl
ciwgaW4gZWZmZWN0Ci0gICAgIyBwcm9jZXNzaW5nIHRoZSAuZmlsZSBhbmQgLmxvYyBkaXJlY3Rp
dmVzIGluIGEgbmV3ICJuYW1lc3BhY2UiCi0gICAgIyAoYXMgZmFyIGFzIHRoZSBmaWxlIG51bWJl
cnMgYXJlIGNvbmNlcm5lZCkuIFRoaXMgaXMgYW4gYXJyYXksCi0gICAgIyBidXQgaW4gcHJhY3Rp
Y2UgdGhlIHNpemUgd2lsbCBlaXRoZXIgYmUgMSAoTk9BUFApIG9yIDIgKEFQUCkuCi0gICAgQGFz
bV9yZWFkZXIuYXBwX3RvX25vYXBwID0gUHJvYy5uZXcgeyB8fAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQHRyYWNrZXJzLnBvcAotICAgIH0KLSAgICBAYXNtX3Jl
YWRlci5ub2FwcF90b19hcHAgPSBQcm9jLm5ldyB7IHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBAdHJhY2tlcnMucHVzaChGaWxlU2xvdFRyYWNrZXIubmV3KEB0
cmFja2Vyc1stMV0pKQotICAgIH0KLSAgZW5kCi0gIGRlZiBydW4KLSAgICB3aGlsZSB0cnVlCi0g
ICAgICBsID0gQGFzbV9yZWFkZXIubmV4dF9saW5lCi0gICAgICBicmVhayB1bmxlc3MgbAotCi0g
ICAgICBtZCA9IEBAZmlsZV9yZS5tYXRjaChsKQotICAgICAgaWYgbWQKLSAgICAgICAgZmlsZV9k
aXJlY3RpdmUobWQpCi0gICAgICAgIG5leHQKLSAgICAgIGVuZAotICAgICAgbWQgPSBAQGxvY19y
ZS5tYXRjaChsKQotICAgICAgaWYgbWQKLSAgICAgICAgbG9jX2RpcmVjdGl2ZShtZCkKLSAgICAg
ICAgbmV4dAotICAgICAgZW5kCi0gICAgICBAb3V0Zi53cml0ZShsKQotICAgICAgbmV4dAotICAg
IGVuZAotICBlbmQKLSAgZGVmIGxvY19kaXJlY3RpdmUobWQpCi0gICAgdHJhY2tlciA9IEB0cmFj
a2Vycy5sYXN0Ci0gICAgc2xvdCA9IHRyYWNrZXIucmVtYXBfc2xvdChtZFs6c2xvdF0udG9faSkK
LSAgICBAb3V0Zi5wdXRzKCIje21kWzp3aGl0ZTFdfS5sb2Mje21kWzp3aGl0ZTJdfSN7c2xvdH0j
e21kWzpyZXN0XX0iKQotICBlbmQKLSAgZGVmIGZpbGVfZGlyZWN0aXZlKG1kKQotICAgIHRyYWNr
ZXIgPSBAdHJhY2tlcnMubGFzdAotCi0gICAgcHIgPSBGaWxlRGlyZWN0aXZlQXJnU2Nhbm5lci5u
ZXcobWRbOnJlc3RdKS5wYXJzZQotICAgIGlmIHByLnJlc3BvbmRfdG8/KDplcnJvcikKLSAgICAg
ICRzdGRlcnIucHV0cygiRXJyb3IgcGFyc2luZyBwYXRoIGFyZ3VtZW50IHRvIC5maWxlIGRpcmVj
dGl2ZTogI3twci5lcnJvcn0iKQotICAgICAgZXhpdCgyKQotICAgIGVuZAotCi0gICAgcGF0aCA9
IHByLnN0cgotICAgIHRyYWNrZXIucmVnaXN0ZXJfcGF0aChwYXRoLCBtZFs6c2xvdF0udG9faSkK
LQotICAgIHNsb3QgPSB0cmFja2VyLnNsb3RfZm9yX3BhdGgocGF0aCkKLSAgICBAb3V0Zi5wdXRz
KCJcdC5maWxlXHQje3Nsb3R9ICN7bWRbOnJlc3RdfSIpCi0gIGVuZAotZW5kCi0KLSMgRmlyc3Qs
IG1ha2Ugc3VyZSBvdXIgdGVzdHMgc3RpbGwgcGFzcy4gVGhpcyBvbmx5IHRha2VzIGEgZnJhY3Rp
b24gb2YKLSMgb3VyIHJ1bnRpbWUgYW5kIGVuc3VyZXMgdGhlIHRlc3RzIHdpbGwgZ2V0IHJ1biBi
eSBhbnlvbmUgdHJ5aW5nIG91dAotIyBjaGFuZ2VzIHRvIHRoaXMgZmlsZS4KLXNlbGZ0ZXN0Ci0K
LWlmIEFSR1Yuc2l6ZSAhPSAyCi0gICRzdGRlcnIucHV0cygiVXNhZ2U6ICN7JDB9IGlucHV0IG91
dHB1dCIpCi0gIGV4aXQoMikKLWVuZAotCi1pbnBhdGgsIG91dHBhdGggPSBBUkdWLmNvbGxlY3Qg
eyB8bnwgUGF0aG5hbWUubmV3KG4pIH0KLQotaWYgbm90IGlucGF0aC5maWxlPwotICAkc3RkZXJy
LnB1dHMoIk5vdCBhIHJlZ3VsYXIgZmlsZTogYCN7aW5wYXRofWAiKQotICBleGl0KDIpCi1lbmQK
LQotaWYgaW5wYXRoLmV4dG5hbWUudXBjYXNlICE9ICIuUyIKLSAgJHN0ZGVyci5wdXRzKCJ3YXJu
aW5nOiBmaWxlIGAje2lucGF0aH1gIGRvZXNuJ3QgaGF2ZSBhIGAuc2Agb3IgYC5TYCBleHRlbnNp
b24uIEdvaW5nIG9uIGFueXdheS4uLiIpCi1lbmQKLQotRmlsZS5vcGVuKGlucGF0aCwgInIiKSB7
IHxpbmZ8Ci0gIEZpbGUub3BlbihvdXRwYXRoLCAidyIpIHsgfG91dGZ8Ci0gICAgRmlsZUNvbmZs
aWN0UmVzb2x2ZXIubmV3KGluZiwgb3V0ZikucnVuCi0gIH0KLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCBlNmRlYjAxNDI1MjA0MDhmOGM3ODEwMGFhNjg2NWRhNWRmODdkMzc2Li5j
N2I2MzhiYzQwMTFjOWNkNDRlMTYyOTk3ZTA5M2M4ZTA0ZTQyMGEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NvdXJjZXMudHh0CkBAIC02NzUsNiArNjc1LDggQEAgbGxpbnQvTExJbnRFbnRyeXBvaW50LmNw
cAogbGxpbnQvTExJbnRFeGNlcHRpb25zLmNwcAogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCiBs
bGludC9MTEludFRodW5rcy5jcHAKKy8vIEZJWE1FOiBXZSBjYW4ndCBidW5kbGUgdGhpcyBmaWxl
IGR1ZSB0byBhIGNsYW5nIGJ1Zy4KK2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwIEBuby11
bmlmeQogCiBwYXJzZXIvTGV4ZXIuY3BwCiBwYXJzZXIvTW9kdWxlQW5hbHl6ZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAK
aW5kZXggYzlhYWZjMTVlODcwN2JiYTk4OTIxNDMyMzU0NzNjZjA3MmU0Yjg2NS4uZjhhZmM3YTA3
MGQ3MzUzODEzYTlmYjMzZTJmZjIzNTJjNjllYmE3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcApAQCAtNTM3LDE5ICs1Mzcs
OCBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZvaWQq
IGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sCiAjZGVmaW5lIE9GRkxJTkVfQVNNX09QQ09ERV9E
RUJVR19MQUJFTChsYWJlbCkKICNlbmRpZgogCi0vLyBUaGlzIHdvcmtzIGFyb3VuZCBhIGJ1ZyBp
biBHREIgd2hlcmUsIGlmIHRoZSBjb21waWxhdGlvbiB1bml0Ci0vLyBkb2Vzbid0IGhhdmUgYW55
IGFkZHJlc3MgcmFuZ2UgaW5mb3JtYXRpb24sIGl0cyBsaW5lIHRhYmxlIHdvbid0Ci0vLyBldmVu
IGJlIGNvbnN1bHRlZC4gRW1pdCB7YmVmb3JlLGFmdGVyfV9sbGludF9hc20gc28gdGhhdCB0aGUg
Y29kZQotLy8gZW1pdHRlZCBpbiB0aGUgdG9wIGxldmVsIGlubGluZSBhc20gc3RhdGVtZW50IGlz
IHdpdGhpbiBmdW5jdGlvbnMKLS8vIHZpc2libGUgdG8gdGhlIGNvbXBpbGVyLiBUaGlzIHdheSwg
R0RCIGNhbiByZXNvbHZlIGEgUEMgaW4gdGhlCi0vLyBsbGludCBhc20gY29kZSB0byB0aGlzIGNv
bXBpbGF0aW9uIHVuaXQgYW5kIHRoZSBzdWNjZXNzZnVsbHkgbG9vawotLy8gdXAgdGhlIGxpbmUg
bnVtYmVyIGluZm9ybWF0aW9uLgotREVCVUdHRVJfQU5OT1RBVElPTl9NQVJLRVIoYmVmb3JlX2xs
aW50X2FzbSkKLQogLy8gVGhpcyBpcyBhIGZpbGUgZ2VuZXJhdGVkIGJ5IG9mZmxpbmVhc20sIHdo
aWNoIGNvbnRhaW5zIGFsbCBvZiB0aGUgYXNzZW1ibHkgY29kZQogLy8gZm9yIHRoZSBpbnRlcnBy
ZXRlciwgYXMgY29tcGlsZWQgZnJvbSBMb3dMZXZlbEludGVycHJldGVyLmFzbS4KICNpbmNsdWRl
ICJMTEludEFzc2VtYmx5LmgiCiAKLURFQlVHR0VSX0FOTk9UQVRJT05fTUFSS0VSKGFmdGVyX2xs
aW50X2FzbSkKLQogI2VuZGlmIC8vIEVOQUJMRShDX0xPT1ApCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jb25maWcucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9jb25maWcucmIKaW5kZXggMmYzMTIzZTVmYTA0MzUzZGEwYTM3MmY0NTll
ZDM3OGFkZjgzMjlhYy4uNDk1NDNmY2QxYjJmYTE2ZTY1ODhiNjgzMjg5YWMwNDc3MjdiN2YwZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY29uZmlnLnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2NvbmZpZy5yYgpAQCAtODksMTAg
Kzg5LDYgQEAgZGVmIHNob3VsZEVuYWJsZURlYnVnQW5ub3RhdGlvbnMoKQogICAgICAgICAgICAg
ICAgIGVuZAogICAgICAgICAgICAgZW5kCiAgICAgICAgIGVuZAotICAgIGVsc2lmIEVOVlsiQ01B
S0VfQ1hYX0NPTVBJTEVSX0lEIl0gPT0gJ0dOVScgYW5kCi0gICAgICAgICBFTlZbIkdDQ19PRkZM
SU5FQVNNX1NPVVJDRV9NQVAiXSA9PSAnT04nCi0gICAgICAjIEFsbCBHQ0MgdmVyc2lvbnMgdGhh
dCBjYW4gYnVpbGQgSlNDIHN1cHBvcnQgZGVidWcgYW5ub3RhdGlvbnMKLSAgICAgIHJldHVybiB0
cnVlCiAgICAgZW5kCiAKICAgICBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ29t
cGlsZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgKaW5kZXggMGZiMzMyMDI3ZWQ5ZWY1
ZjY0MmRhZDZlZDg5NTY1NWQ2YjAzMWZiMS4uNDM3NGNiM2FmMjNjODliYjUzNDk0NjlkYzg4ZWZj
NjQ0NjE0YTQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Db21waWxlci5oCkBAIC0zODIsMTcgKzM4Miw2IEBACiAjZGVmaW5lIFdB
Uk5fVU5VU0VEX1JFVFVSTgogI2VuZGlmCiAKLS8qIERFQlVHR0VSX0FOTk9UQVRJT05fTUFSS0VS
ICovCi0KLSNpZiAhZGVmaW5lZChERUJVR0dFUl9BTk5PVEFUSU9OX01BUktFUikgJiYgQ09NUElM
RVIoR0NDKQotI2RlZmluZSBERUJVR0dFUl9BTk5PVEFUSU9OX01BUktFUihuYW1lKSBcCi0gICAg
X19hdHRyaWJ1dGVfXygoX19ub19yZW9yZGVyX18pKSB2b2lkIG5hbWUodm9pZCkgeyBfX2FzbV9f
KCIiKTsgfQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChERUJVR0dFUl9BTk5PVEFUSU9OX01BUktF
UikKLSNkZWZpbmUgREVCVUdHRVJfQU5OT1RBVElPTl9NQVJLRVIobmFtZSkKLSNlbmRpZgotCiAj
aWYgIWRlZmluZWQoX19oYXNfaW5jbHVkZSkgJiYgQ09NUElMRVIoTVNWQykKICNkZWZpbmUgX19o
YXNfaW5jbHVkZShwYXRoKSAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRp
b25zQ29tbW9uLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNDb21tb24uY21ha2UKaW5kZXgg
ZWExMzYyNDgzZTc4MGU0MTVjYzg1NDhjYzZmOTE0YjJhODhjZDhjZS4uYTU3NGVmOGMyMjJiYTA3
MjBkMjJhMWZkNWQ1YzgxNTNhNGRjZjcyMSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlv
bnNDb21tb24uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNDb21tb24uY21ha2UKQEAg
LTExMiwxNSArMTEyLDYgQEAgaWYgKERFQlVHX0ZJU1NJT04pCiAgICAgc2V0KENNQUtFX1NIQVJF
RF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfRVhFX0xJTktFUl9GTEFHU30gLVdsLC0tZ2RiLWluZGV4
IikKIGVuZGlmICgpCiAKLXNldChHQ0NfT0ZGTElORUFTTV9TT1VSQ0VfTUFQX0RFRkFVTFQgT0ZG
KQotaWYgKENNQUtFX0JVSUxEX1RZUEUgU1RSRVFVQUwgIkRlYnVnIiBPUiBDTUFLRV9CVUlMRF9U
WVBFIFNUUkVRVUFMICJSZWxXaXRoRGViSW5mbyIpCi0gICAgc2V0KEdDQ19PRkZMSU5FQVNNX1NP
VVJDRV9NQVBfREVGQVVMVCBPTikKLWVuZGlmICgpCi0KLW9wdGlvbihHQ0NfT0ZGTElORUFTTV9T
T1VSQ0VfTUFQCi0gICJQcm9kdWNlIGRlYnVnIGxpbmUgaW5mb3JtYXRpb24gZm9yIG9mZmxpbmVh
c20tZ2VuZXJhdGVkIGNvZGUiCi0gICR7R0NDX09GRkxJTkVBU01fU09VUkNFX01BUF9ERUZBVUxU
fSkKLQogIyBFbmFibGUgdGhlIHVzYWdlIG9mIE9wZW5NUC4KICMgIC0gQXQgdGhpcyBtb21lbnQs
IE9wZW5NUCBpcyBvbmx5IHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24KICMg
ICAgdG8gbmF0aXZlIHRocmVhZHMgZm9yIHRoZSBwYXJhbGxlbGl6YXRpb24gb2YgdGhlIFNWRyBm
aWx0ZXJzLgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDIyNmZmZWUz
MTI5NjNlOGI0NzlhOWQ0MWM5NTY2Zjc1N2IyZTRiYzAuLjM0OWRjMDdkYjQyMjNhMzEyODIxYjUw
NzM0N2U4NmRiOTM2ZGEwODAgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNC0wMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNTkzOTAuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk5NDQKKwor
ICAgICAgICBJdCBicm9rZSBXaW5DYWlybyBidWlsZHMgKFJlcXVlc3RlZCBieSBmdWppaGlybyBv
biAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkVu
YWJsZSBvZmZsaW5lYXNtIGRlYnVnIGFubm90YXRpb25zIGZvciBHQ0MiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxMTkKKyAgICAgICAgaHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI1OTM5MAorCiAyMDIwLTA0LTAxICBEb24gT2xt
c3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0dQVVBdW1BsYXlTdGF0
aW9uXSBFbmFibGUgR1BVIFByb2Nlc3MK
</data>

          </attachment>
      

    </bug>

</bugzilla>