<?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>176046</bug_id>
          
          <creation_ts>2017-08-28 22:40:15 -0700</creation_ts>
          <short_desc>[Mac] Upstream WKSetMetadataURL() from WebKitSystemInterface</short_desc>
          <delta_ts>2017-08-31 09:32:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343062</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-28 22:40:15 -0700</bug_when>
    <thetext>[Mac] Upstream WKSetMetadataURL() from WebKitSystemInterface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343064</commentid>
    <comment_count>1</comment_count>
      <attachid>319246</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-28 22:43:06 -0700</bug_when>
    <thetext>Created attachment 319246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343077</commentid>
    <comment_count>2</comment_count>
      <attachid>319246</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-29 02:10:56 -0700</bug_when>
    <thetext>Comment on attachment 319246
Patch

Clearing flags on attachment: 319246

Committed r221291: &lt;http://trac.webkit.org/changeset/221291&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343078</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-29 02:10:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343079</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-29 02:12:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/34128954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343350</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-08-29 17:44:50 -0700</bug_when>
    <thetext>Do we need to do something to avoid exiting the process while this write operation is still in progress?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343449</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-29 21:37:05 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Do we need to do something to avoid exiting the process while this write
&gt; operation is still in progress?

That&apos;s a good question. Are you concerned about the app terminating before the block executes on the global concurrent queue, or sudden termination while the block is executing?

For the former case, failing to add &quot;Where From&quot; metadata seems acceptable.

In the latter case, we could use a SuddenTerminationDisabler to ensure the MDItem operation completes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343949</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-08-31 09:32:31 -0700</bug_when>
    <thetext>(In reply to Andy Estes from comment #6)
&gt; That&apos;s a good question. Are you concerned about the app terminating before
&gt; the block executes on the global concurrent queue, or sudden termination
&gt; while the block is executing?

On Mac and iOS, I’m concerned both about cases where someone explicitly chooses the Quit command and about the case where sudden termination takes effect.

There’s also the separate related issue of abnormal terminations like crashes, jetsams, reboots.

Given that we are taking about the file system, we should briefly consider all these cases, and what gets left behind.

&gt; For the former case, failing to add &quot;Where From&quot; metadata seems acceptable.

I am not sure that’s great. If it’s just a normal Quit command I would like to see the quit take slightly longer so the metadata gets attached. I see this metadata as a continuation of the downloading process and I would like it to be treated similarly to the rest of that process.

There are some techniques where finishing the job looks to the user like the app is still running; looks like a &quot;hang during the quit process&quot;. Others where the job is finished but to the user it looks like the app has already quit; roughly speaking “a daemon finishes the job”.

&gt; In the latter case, we could use a SuddenTerminationDisabler to ensure the
&gt; MDItem operation completes.

Sounds like a good idea. Would be nice to figure out what level of the software is responsible for tying this in with the rest of the I/O to create the file and write out its contents so the whole thing works smoothly and consistently.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319246</attachid>
            <date>2017-08-28 22:43:06 -0700</date>
            <delta_ts>2017-08-29 02:10:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176046-20170828224306.patch</filename>
            <type>text/plain</type>
            <size>19392</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E5NTZlNDhiYmNkNDJi
OWM0NGQ0MzJiZWE0YjNjZTA0OTk4MjkyYS4uMmUyMDkwMTIxNjcyMWI3MjlmM2ZlNjZiYmZmMjBh
MGNiNDUyNGJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIxIEBACiAyMDE3LTA4LTI4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBbTWFjXSBVcHN0cmVhbSBXS1Nl
dE1ldGFkYXRhVVJMKCkgZnJvbSBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjA0NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRNZXRhZGF0YVVSTCk6CisgICAgICAgICogcGxhdGZv
cm0vRmlsZVN5c3RlbS5oOgorICAgICAgICAoV2ViQ29yZTo6c2V0TWV0YWRhdGFVUkwpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9GaWxlU3lzdGVtTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
c2V0TWV0YWRhdGFVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50
ZXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
bW06CisKKzIwMTctMDgtMjggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCiAgICAg
ICAgIFtDb2NvYV0gVXBzdHJlYW0gV0tHZXRXZWJEZWZhdWx0Q0ZTdHJpbmdFbmNvZGluZygpCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMzkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggZTExNGMyODJjN2M2MzI4NmQ0ODA5ZmY1ZGEwOWM3MDU5MTYy
OThjZC4uYzUyZWU4YzJiNTYyMzI3MjcwMGVmNGRmMDE5ZThkNjUxMzI2NTNmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTctMDgtMjggIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIFdLU2V0TWV0YWRhdGFVUkwo
KSBmcm9tIFdlYktpdFN5c3RlbUludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwYWwvc3BpL21hYy9NZXRhZGF0YVNQSS5oOiBBZGRlZC4KKworMjAxNy0wOC0yOCAg
QW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKICAgICAgICAgW0NvY29hXSBVcHN0cmVh
bSBDRk5ldHdvcmstcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwMzIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBkNGY1OGRkYWNhODU4YWY5MDEzMmY4ZTQ4MGMyODhhYmY1OTAwNmY2Li5kNGY3Zjkx
Njk4OGM1MWY3ZTIwNGExMWFkZjZmMzU1MTcxZTBlYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3
IEBACiAyMDE3LTA4LTI4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAg
ICBbTWFjXSBVcHN0cmVhbSBXS1NldE1ldGFkYXRhVVJMKCkgZnJvbSBXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NjA0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6c2F2ZVBERlRvVGVtcG9yYXJ5Rm9sZGVyQW5kT3BlbldpdGhOYXRpdmVBcHBsaWNh
dGlvblJhdyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lz
dGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOgor
CisyMDE3LTA4LTI4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBb
Q29jb2FdIFVwc3RyZWFtIFdLR2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcoKQogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDM5CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAyMDM0ZWM2ZjdlZmFlYmRkYzM5Y2FhM2E1MTg3Yjdl
YTg3MjA0OTY1Li5hYjliNDU1NGY2NDM4Mzc5NjVhZWY5MjMzM2ZiMDkxMTRjMjI4MzZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTctMDgtMjggIEFu
ZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIFdL
U2V0TWV0YWRhdGFVUkwoKSBmcm9tIFdlYktpdFN5c3RlbUludGVyZmFjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDQ2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB0aGUgcHRocmVhZCBs
b2dpYyBmcm9tIC1fd2Via2l0X3NldE1ldGFkYXRhVVJMOnJlZmVycmVyOmF0UGF0aDogYW5kIHJl
cGxhY2VkIHdpdGgKKyAgICAgICAgV2ViQ29yZTo6c2V0TWV0YWRhdGFVUkwoKSwgd2hpY2ggdXNl
cyBkaXNwYXRjaF9hc3luYygpIGZvciB0aGUgc2FtZSBwdXJwb3NlIGFzIHRoZSBwdGhyZWFkLgor
CisgICAgICAgICogTWlzYy9XZWJOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tOgorICAgICAgICAoLVtO
U0ZpbGVNYW5hZ2VyIF93ZWJraXRfc2V0TWV0YWRhdGFVUkw6cmVmZXJyZXI6YXRQYXRoOl0pOgor
ICAgICAgICAoc2V0TWV0YURhdGEpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKToKKworMjAxNy0wOC0yOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKICAg
ICAgICAgW0NvY29hXSBVcHN0cmVhbSBXS0dldFdlYkRlZmF1bHRDRlN0cmluZ0VuY29kaW5nKCkK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjAzOQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZWFlN2MzZGIzNjE5ZGVmYzBjOGM0ZGU1ODhkMWE3NTAwNjNjYTI3MC4uYjM4NGFkOGZi
OGIzMjIwMzY4OTg2MTNhZmEzYjBlNzM2ZGZmZDAzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTcsNiArOTcsNyBAQAogCQkx
QzA5RDA1MzFFMzFDNDQxMDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzA5RDA1MjFFMzFDNDQxMDA3MjVGMTgg
LyogQ3J5cHRvRGlnZXN0LmggKi87IH07CiAJCTFDMDlEMDU2MUUzMUM0NjUwMDcyNUYxOCAvKiBD
cnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUMwOUQwNTUxRTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2Vz
dENvbW1vbkNyeXB0by5jcHAgKi87IH07CiAJCTFDMDlEMDU4MUUzMUM1N0UwMDcyNUYxOCAvKiBj
b25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
MDlEMDU3MUUzMUM1N0UwMDcyNUYxOCAvKiBjb25maWcuaCAqLzsgfTsKKwkJQTFGNTVEQ0YxRjU1
MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFT
UEkuaCAqLzsgfTsKIAkJQTMwRDQxMjExRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzBENDExRTFGMERE
MEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCAqLzsgfTsKIAkJQTMwRDQxMjIxRjBERDBFQTAwQjcx
OTU0IC8qIEtpbGxSaW5nTm9uZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMzBENDExRjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNw
cCAqLzsgfTsKIAkJQTMwRDQxMjUxRjBERDEyRDAwQjcxOTU0IC8qIEtpbGxSaW5nTWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMjQxRjBE
RDEyRDAwQjcxOTU0IC8qIEtpbGxSaW5nTWFjLm1tICovOyB9OwpAQCAtMjA4LDYgKzIwOSw3IEBA
CiAJCTFDMDlEMDYzMUUzMUVDMzEwMDcyNUYxOCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDNjdDRUExMUUzMkVEQTgwMEY4MEYyRSAvKiBGZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM2N0NFQTIxRTMyRUUyNjAwRjgw
RjJFIC8qIFZlcnNpb24ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0g
VmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFGNTVEQ0Ux
RjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1ldGFkYXRh
U1BJLmg7IHBhdGggPSBzcGkvbWFjL01ldGFkYXRhU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUEzMEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBLaWxsUmluZy5oOyBwYXRoID0gdGV4dC9LaWxsUmlu
Zy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMzBENDExRjFGMEREMEVBMDBCNzE5
NTQgLyogS2lsbFJpbmdOb25lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEtpbGxSaW5nTm9uZS5jcHA7IHBhdGggPSB0ZXh0L0tpbGxSaW5nTm9uZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTI0MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxs
UmluZ01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEtpbGxS
aW5nTWFjLm1tOyBwYXRoID0gdGV4dC9tYWMvS2lsbFJpbmdNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zMzEsNiArMzMzLDcgQEAKIAkJCQkwQzc3ODU3MTFGNDUxMzBGMDBG
NEVCQjYgLyogRGF0YURldGVjdG9yc1NQSS5oICovLAogCQkJCTBDNzc4NTcyMUY0NTEzMEYwMEY0
RUJCNiAvKiBMb29rdXBTUEkuaCAqLywKIAkJCQkwQzc3ODU3MzFGNDUxMzBGMDBGNEVCQjYgLyog
TWVkaWFSZW1vdGVTUEkuaCAqLywKKwkJCQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0
YWRhdGFTUEkuaCAqLywKIAkJCQkwQzc3ODU3NDFGNDUxMzBGMDBGNEVCQjYgLyogTlNBY2Nlc3Np
YmlsaXR5U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzUxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TQXBwbGlj
YXRpb25TUEkuaCAqLywKIAkJCQkwQzc3ODU3NjFGNDUxMzBGMDBGNEVCQjYgLyogTlNFdmVudFNQ
SS5oICovLApAQCAtNTExLDYgKzUxNCw3IEBACiAJCQkJMEMyREExNDgxRjNCRUI0OTAwREJDMzE3
IC8qIE1hY2hWTVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUQxRjQzQTRDNzAwMkVB
QzAyIC8qIE1lZGlhUGxheWVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QzFGNDUx
MzBGMDBGNEVCQjYgLyogTWVkaWFSZW1vdGVTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExRjU1
RENGMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM1QUY5MUUxRjQzQTRDNzAwMkVBQzAyIC8qIE1vYmlsZUdlc3RhbHRTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBDMkRBMTQ5MUYzQkVCNDkwMERCQzMxNyAvKiBORUZpbHRlclNvdXJjZVNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1OEQxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TQWNjZXNz
aWJpbGl0eVNQSS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvTWV0YWRhdGFTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L21hYy9NZXRhZGF0YVNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMTkxMmVmOWY2Yzg0Yzc3NWFiZWRkNTA5
MTcwNzUxNWEyNGY5MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvTWV0YWRhdGFTUEkuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW5jbHVkZSA8TWV0
YWRhdGEvTWV0YWRhdGFQcml2Lmg+CisKKyNlbmRpZgorCitXVEZfRVhURVJOX0NfQkVHSU4KKwor
Qm9vbGVhbiBNREl0ZW1TZXRBdHRyaWJ1dGUoTURJdGVtUmVmLCBDRlN0cmluZ1JlZiBuYW1lLCBD
RlR5cGVSZWYgYXR0cik7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZVN5c3RlbS5jcHAKaW5kZXggZDk0NjUzNTczYWRiMGYzMzUzYmMyODM2YTg3OTQyMGM4NTY1
MjY5OC4uNGFiZDM0M2E4MWEzODM4ODlmNWQyMzQ3OTQ5MDExODcyYTM0ZmY4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCBib29sIGZp
bGVzSGF2ZVNhbWVWb2x1bWUoY29uc3QgU3RyaW5nJiBmaWxlQSwgY29uc3QgU3RyaW5nJiBmaWxl
QikKIAogI2lmICFQTEFURk9STShNQUMpCiAKLXZvaWQgc2V0TWV0YWRhdGFVUkwoY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgc2V0TWV0YWRhdGFVUkwoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZVN5c3RlbS5oCmluZGV4IGRhNWM2YmQ5YzI3Zjk2ODAyYWFjNGY4MGU3MWMxYjQ1N2IwNDdj
ZmQuLmZhZTVhZTM4OGI3YTk4NWI1MGE0NDM2MzZmMDE0MjYwMTlmZjA2MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmKTsKIFdFQkNPUkVfRVhQT1JUIGJv
b2wgZ2V0Vm9sdW1lRnJlZVNwYWNlKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90Jik7CiBXRUJDT1JF
X0VYUE9SVCBzdGQ6Om9wdGlvbmFsPGludDMyX3Q+IGdldEZpbGVEZXZpY2VJZChjb25zdCBDU3Ry
aW5nJik7CiAKLVdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWV0YWRhdGFVUkwoY29uc3QgU3RyaW5n
JiBwYXRoLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE1ldGFkYXRhVVJMKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgcmVmZXJyZXIgPSB7IH0pOwogCiBib29sIGNhbkV4Y2x1ZGVGcm9tQmFj
a3VwKCk7IC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgZmlsZSBjYW4gZXZlciBiZSBleGNsdWRlZCBm
cm9tIGJhY2t1cC4KIGJvb2wgZXhjbHVkZUZyb21CYWNrdXAoY29uc3QgU3RyaW5nJik7IC8vIFJl
dHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RmlsZVN5c3RlbU1hYy5tbQppbmRleCA1OGRjZWE4OGI0M2MzODZlZmM3Y2E5ZDdiMDg0ZDI2Zjcw
NjUzZWYxLi45NDMyNTk2ODUxMTE4NmYyZGJkZGQ0YjY0OWFlNjRjMTRkOTIzNDBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQpAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPHBhbC9zcGkvbWFjL01ldGFkYXRhU1BJLmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDgsNyArNDksNyBAQCBib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0
aCkKICAgICByZXR1cm4gIXJtZGlyKGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKS5kYXRh
KCkpOwogfQogCi12b2lkIHNldE1ldGFkYXRhVVJMKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3Qg
U3RyaW5nJiBtZXRhZGF0YVVSTFN0cmluZykKK3ZvaWQgc2V0TWV0YWRhdGFVUkwoY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIG1ldGFkYXRhVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyKQogewogICAgIFN0cmluZyB1cmxTdHJpbmc7CiAgICAgaWYgKE5TVVJMICp1cmwg
PSBVUkxXaXRoVXNlclR5cGVkU3RyaW5nKHVybFN0cmluZywgbmlsKSkKQEAgLTU2LDkgKzU3LDE4
IEBAIHZvaWQgc2V0TWV0YWRhdGFVUkwoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcm
IG1ldGFkYXRhVVJMU3RyaW5nKQogICAgIGVsc2UKICAgICAgICAgdXJsU3RyaW5nID0gbWV0YWRh
dGFVUkxTdHJpbmc7CiAKLSAgICAvLyBDYWxsIFdLU2V0TWV0YWRhdGFVUkwgb24gYSBiYWNrZ3Jv
dW5kIHF1ZXVlIGJlY2F1c2UgaXQgY2FuIHRha2Ugc29tZSB0aW1lLgotICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVG
QVVMVCwgMCksIFtwYXRoID0gcGF0aC5pc29sYXRlZENvcHkoKSwgdXJsU3RyaW5nID0gdXJsU3Ry
aW5nLmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAgIHdrU2V0TWV0YWRhdGFVUkwodXJsU3RyaW5n
LCBuaWwsIFtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzpbcGF0aCBmaWxlU3lzdGVtUmVw
cmVzZW50YXRpb25dXSk7CisgICAgLy8gQ2FsbCBNZXRhZGF0YSBBUEkgb24gYSBiYWNrZ3JvdW5k
IHF1ZXVlIGJlY2F1c2UgaXQgY2FuIHRha2Ugc29tZSB0aW1lLgorICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVM
VCwgMCksIFtwYXRoID0gcGF0aC5pc29sYXRlZENvcHkoKSwgdXJsU3RyaW5nID0gdXJsU3RyaW5n
Lmlzb2xhdGVkQ29weSgpLCByZWZlcnJlciA9IHJlZmVycmVyLmlzb2xhdGVkQ29weSgpXSB7Cisg
ICAgICAgIGF1dG8gaXRlbSA9IGFkb3B0Q0YoTURJdGVtQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHBhdGguY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgICAgICBpZiAoIWl0ZW0pCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byB3aGVyZUZyb21BdHRyaWJ1dGUgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czp1cmxTdHJpbmcs
IG5pbF0pOworICAgICAgICBpZiAoIXJlZmVycmVyLmlzTnVsbCgpKQorICAgICAgICAgICAgW3do
ZXJlRnJvbUF0dHJpYnV0ZSBhZGRPYmplY3Q6cmVmZXJyZXJdOworCisgICAgICAgIE1ESXRlbVNl
dEF0dHJpYnV0ZShpdGVtLmdldCgpLCBrTURJdGVtV2hlcmVGcm9tcywgd2hlcmVGcm9tQXR0cmli
dXRlLmdldCgpKTsKKyAgICAgICAgTURJdGVtU2V0QXR0cmlidXRlKGl0ZW0uZ2V0KCksIGtNREl0
ZW1Eb3dubG9hZGVkRGF0ZSwgQFsgW05TRGF0ZSBkYXRlXSBdKTsKICAgICB9KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgKaW5kZXggOTNlYjUxZTMxMDVmZDcwMTdlMzZlMjU0NWYzZGZiYjdjODBlZmJkNC4uMGEyNTFm
YWQwMWU1YmQxYmMyMDdkNDExZjRmZmRlMjVhNGU5MTA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCkBAIC0yMTUsNyAr
MjE1LDYgQEAgZXh0ZXJuIHZvaWQgKCp3a1NldExheWVyQ29udGVudHNTY2FsZSkoQ0FMYXllciAq
KTsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbiogQ0ZVUkxTdG9y
YWdlU2Vzc2lvblJlZjsKIAogI2lmICFQTEFURk9STShJT1MpCi1leHRlcm4gdm9pZCAoKndrU2V0
TWV0YWRhdGFVUkwpKE5TU3RyaW5nICp1cmxTdHJpbmcsIE5TU3RyaW5nICpyZWZlcnJlciwgTlNT
dHJpbmcgKnBhdGgpOwogZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9yVGltZURl
bHRhKShDR0Zsb2F0IGluaXRpYWxQb3NpdGlvbiwgQ0dGbG9hdCBpbml0aWFsVmVsb2NpdHksIENH
RmxvYXQgZWxhcHNlZFRpbWUpOwogZXh0ZXJuIENHRmxvYXQgKCp3a05TRWxhc3RpY0RlbHRhRm9y
UmVib3VuZERlbHRhKShDR0Zsb2F0IGRlbHRhKTsKIGV4dGVybiBDR0Zsb2F0ICgqd2tOU1JlYm91
bmREZWx0YUZvckVsYXN0aWNEZWx0YSkoQ0dGbG9hdCBkZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCmluZGV4IDVk
ZjY3ODMwYjJkMDc3ZmJlZjM1YjA5M2MwNThlNWUxZmIwNDRmNmIuLmZlMzQxYWRlZmFlMzgxZmFm
ZGEyNTM1MmIyOTUwMThhNjA0MDQ0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tCkBAIC05Miw4ICs5Miw2IEBAIENG
VHlwZVJlZiAoKndrQ3JlYXRlQVhUZXh0TWFya2VyKShjb25zdCB2b2lkICpieXRlcywgc2l6ZV90
IGxlbik7CiBCT09MICgqd2tHZXRCeXRlc0Zyb21BWFRleHRNYXJrZXIpKENGVHlwZVJlZiB0ZXh0
TWFya2VyLCB2b2lkICpieXRlcywgc2l6ZV90IGxlbmd0aCk7CiBBWFVJRWxlbWVudFJlZiAoKndr
Q3JlYXRlQVhVSUVsZW1lbnRSZWYpKGlkIGVsZW1lbnQpOwogCi12b2lkICgqd2tTZXRNZXRhZGF0
YVVSTCkoTlNTdHJpbmcgKnVybFN0cmluZywgTlNTdHJpbmcgKnJlZmVycmVyLCBOU1N0cmluZyAq
cGF0aCk7Ci0KICNpZiAhUExBVEZPUk0oSU9TKQogQ0dGbG9hdCAoKndrTlNFbGFzdGljRGVsdGFG
b3JUaW1lRGVsdGEpKENHRmxvYXQgaW5pdGlhbFBvc2l0aW9uLCBDR0Zsb2F0IGluaXRpYWxWZWxv
Y2l0eSwgQ0dGbG9hdCBlbGFwc2VkVGltZSk7CiBDR0Zsb2F0ICgqd2tOU0VsYXN0aWNEZWx0YUZv
clJlYm91bmREZWx0YSkoQ0dGbG9hdCBkZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCAzZTllN2ViMDViMDVlMzJiMmEyYTZkNTk3
MGU4NTJjM2QxOTI5NjQ5Li45MDZkNjcxYjg0NDlkODhmNmRhOTUzOTAyMjY4MDdkNzkwNTM3N2U3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0K
QEAgLTQ4Nyw3ICs0ODcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhUb1BERk9uRGlzayhjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2F2ZVBE
RlRvVGVtcG9yYXJ5Rm9sZGVyQW5kT3BlbldpdGhOYXRpdmVBcHBsaWNhdGlvblJhdyhjb25zdCBT
dHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJMU3Ry
aW5nLCBjb25zdCB1aW50OF90KiBkYXRhLCB1bnNpZ25lZCBsb25nIHNpemUsIGNvbnN0IFN0cmlu
ZyYgcGRmVVVJRCkKIHsKLSAgICAvLyBGSVhNRTogV3JpdGUgb3JpZ2luYXRpbmdVUkxTdHJpbmcg
dG8gdGhlIGZpbGUncyBvcmlnaW5hdGluZyBVUkwgbWV0YWRhdGEgKHBlcmhhcHMgV0tTZXRNZXRh
ZGF0YVVSTD8pLgorICAgIC8vIEZJWE1FOiBXcml0ZSBvcmlnaW5hdGluZ1VSTFN0cmluZyB0byB0
aGUgZmlsZSdzIG9yaWdpbmF0aW5nIFVSTCBtZXRhZGF0YSAocGVyaGFwcyBXZWJDb3JlOjpzZXRN
ZXRhZGF0YVVSTCgpPykuCiAgICAgVU5VU0VEX1BBUkFNKG9yaWdpbmF0aW5nVVJMU3RyaW5nKTsK
IAogICAgIGlmICghc3VnZ2VzdGVkRmlsZW5hbWUuZW5kc1dpdGgoIi5wZGYiLCBmYWxzZSkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggZDBmMjdiN2YxMWJkM2E4NmE4
ZjE0M2ZhNGEyNzg2ZjY3YjYyZTliMS4uMWU5NjIzMDdhN2Y5OTk4ZTU3MjdhMzFjMDkyZmI5NGQw
NGZhZWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTc2LDcgKzc2
LDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogI2VuZGlmCiAKICNp
ZiAhUExBVEZPUk0oSU9TKQotICAgICAgICBJTklUKFNldE1ldGFkYXRhVVJMKTsKICAgICAgICAg
SU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJkKTsKICAgICAgICAg
SU5JVChDb3B5RGVmYXVsdFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpOwogICAgICAgICBJTklU
KEN1cnNvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5T
RmlsZU1hbmFnZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5T
RmlsZU1hbmFnZXJFeHRyYXMubW0KaW5kZXggMTRjNjc2ZDFmYTk0ZjZlOGM5NzgyMTk0MzA1NTky
MjcyZjRlNDEzNS4uYWZkZDM2NWFmOGMzMmRlYmM5NjljNTM3MjU0MTNiYjA5MTc2MTZhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ZpbGVNYW5hZ2VyRXh0
cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNGaWxlTWFuYWdl
ckV4dHJhcy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCwxMCBAQAog
CiAjaW1wb3J0ICJXZWJLaXROU1N0cmluZ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNVUkxFeHRy
YXMuaCIKLSNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZpbGVT
eXN0ZW0uaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8c3lz
L3N0YXQuaD4KKyNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1
bnRpbWVFeHRyYXMuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTQzLDU3ICs0NCwxMSBAQCBA
aW1wbGVtZW50YXRpb24gTlNGaWxlTWFuYWdlciAoV2ViTlNGaWxlTWFuYWdlckV4dHJhcykKIAog
I2lmICFQTEFURk9STShJT1MpCiAKLXR5cGVkZWYgc3RydWN0IE1ldGFEYXRhSW5mbwotewotICAg
IENGU3RyaW5nUmVmIFVSTFN0cmluZzsKLSAgICBDRlN0cmluZ1JlZiByZWZlcnJlcjsKLSAgICBD
RlN0cmluZ1JlZiBwYXRoOwotfSBNZXRhRGF0YUluZm87Ci0KLXN0YXRpYyB2b2lkICpzZXRNZXRh
RGF0YSh2b2lkKiBjb250ZXh0KQotewotICAgIE1ldGFEYXRhSW5mbyAqaW5mbyA9IChNZXRhRGF0
YUluZm8gKiljb250ZXh0OwotICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9y
ZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgV0tTZXRNZXRhZGF0YVVSTCgoTlNTdHJpbmcg
KilpbmZvLT5VUkxTdHJpbmcsIChOU1N0cmluZyAqKWluZm8tPnJlZmVycmVyLCAoTlNTdHJpbmcg
KilpbmZvLT5wYXRoKTsKLQotICAgIGlmIChpbmZvLT5VUkxTdHJpbmcpCi0gICAgICAgIENGUmVs
ZWFzZShpbmZvLT5VUkxTdHJpbmcpOwotICAgIGlmIChpbmZvLT5yZWZlcnJlcikKLSAgICAgICAg
Q0ZSZWxlYXNlKGluZm8tPnJlZmVycmVyKTsKLSAgICBpZiAoaW5mby0+cGF0aCkKLSAgICAgICAg
Q0ZSZWxlYXNlKGluZm8tPnBhdGgpOwotCi0gICAgZnJlZShpbmZvKTsKLSAgICBbcG9vbCBkcmFp
bl07Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogLSAodm9pZClfd2Via2l0X3NldE1ldGFkYXRhVVJM
OihOU1N0cmluZyAqKVVSTFN0cmluZyByZWZlcnJlcjooTlNTdHJpbmcgKilyZWZlcnJlciBhdFBh
dGg6KE5TU3RyaW5nICopcGF0aAogewogICAgIEFTU0VSVChVUkxTdHJpbmcpOwogICAgIEFTU0VS
VChwYXRoKTsKLQotICAgIE5TVVJMICpVUkwgPSBbTlNVUkwgX3dlYmtpdF9VUkxXaXRoVXNlclR5
cGVkU3RyaW5nOlVSTFN0cmluZ107Ci0gICAgaWYgKFVSTCkKLSAgICAgICAgVVJMU3RyaW5nID0g
W1tVUkwgX3dlYl9VUkxCeVJlbW92aW5nVXNlckluZm9dIF93ZWJfdXNlclZpc2libGVTdHJpbmdd
OwotIAotICAgIC8vIFNwYXduIGEgYmFja2dyb3VuZCB0aHJlYWQgZm9yIFdLU2V0TWV0YWRhdGFV
UkwgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IHJldHVybiB1bnRpbCBtZHMgaGFzCi0g
ICAgLy8gam91cm5hbGVkIHRoZSBkYXRhIHdlJ3JlJ3JlIHRyeWluZyB0byBzZXQuIERlcGVuZGlu
ZyBvbiB3aGF0IG90aGVyIEkvTyBpcyBnb2luZyBvbiwgaXQgY2FuIHRha2Ugc29tZQotICAgIC8v
IHRpbWUuIAotICAgIHB0aHJlYWRfdCB0aWQ7Ci0gICAgcHRocmVhZF9hdHRyX3QgYXR0cjsKLSAg
ICBwdGhyZWFkX2F0dHJfaW5pdCgmYXR0cik7Ci0gICAgcHRocmVhZF9hdHRyX3NldGRldGFjaHN0
YXRlKCZhdHRyLCBQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRCk7Ci0KLSAgICBNZXRhRGF0YUluZm8g
KmluZm8gPSBzdGF0aWNfY2FzdDxNZXRhRGF0YUluZm8gKj4obWFsbG9jKHNpemVvZihNZXRhRGF0
YUluZm8pKSk7Ci0gICAgCi0gICAgaW5mby0+VVJMU3RyaW5nID0gVVJMU3RyaW5nID8gQ0ZTdHJp
bmdDcmVhdGVDb3B5KDAsIChDRlN0cmluZ1JlZilVUkxTdHJpbmcpIDogMDsKLSAgICBpbmZvLT5y
ZWZlcnJlciA9IHJlZmVycmVyID8gQ0ZTdHJpbmdDcmVhdGVDb3B5KDAsIChDRlN0cmluZ1JlZily
ZWZlcnJlcikgOiAwOwotICAgIGluZm8tPnBhdGggPSBwYXRoID8gQ0ZTdHJpbmdDcmVhdGVDb3B5
KDAsIChDRlN0cmluZ1JlZilwYXRoKSA6IDA7Ci0KLSAgICBwdGhyZWFkX2NyZWF0ZSgmdGlkLCAm
YXR0ciwgc2V0TWV0YURhdGEsIGluZm8pOwotICAgIHB0aHJlYWRfYXR0cl9kZXN0cm95KCZhdHRy
KTsKKyAgICBXZWJDb3JlOjpzZXRNZXRhZGF0YVVSTChwYXRoLCBVUkxTdHJpbmcsIHJlZmVycmVy
KTsKIH0KIAogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0K
aW5kZXggNDVjNjg3MmZjMDMxNzUxMmQyOGE2OTNhMDIwNTg0NDY3ZGFlNzM0My4uZWMyNzRkZGZl
Nzk3MTNkZTkzYTU0YTVlYzhiNGY5ODAwOGI0ZDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5t
bQpAQCAtMTA0LDcgKzEwNCw2IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9p
ZCkKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBJTklUKFNldE1ldGFkYXRhVVJM
KTsKICAgICBJTklUKE5TRWxhc3RpY0RlbHRhRm9yVGltZURlbHRhKTsKICAgICBJTklUKE5TRWxh
c3RpY0RlbHRhRm9yUmVib3VuZERlbHRhKTsKICAgICBJTklUKE5TUmVib3VuZERlbHRhRm9yRWxh
c3RpY0RlbHRhKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>