<?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>153079</bug_id>
          
          <creation_ts>2016-01-13 13:21:01 -0800</creation_ts>
          <short_desc>REGRESSION(r194963): This change causes ASan tests to crash and exit early (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2016-01-13 13:24:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>152696</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1155208</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-13 13:21:01 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/194963 broke the build:
This change causes ASan tests to crash and exit early (Requested by ryanhaddad 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>1155210</commentid>
    <comment_count>1</comment_count>
      <attachid>268899</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-13 13:21:34 -0800</bug_when>
    <thetext>Created attachment 268899
ROLLOUT of r194963

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 rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout 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>1155211</commentid>
    <comment_count>2</comment_count>
      <attachid>268899</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-01-13 13:24:24 -0800</bug_when>
    <thetext>Comment on attachment 268899
ROLLOUT of r194963

Clearing flags on attachment: 268899

Committed r194980: &lt;http://trac.webkit.org/changeset/194980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155212</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-01-13 13:24:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268899</attachid>
            <date>2016-01-13 13:21:34 -0800</date>
            <delta_ts>2016-01-13 13:24:24 -0800</delta_ts>
            <desc>ROLLOUT of r194963</desc>
            <filename>bug-153079-20160113132104.patch</filename>
            <type>text/plain</type>
            <size>53668</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0OTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU5ODc1MzQ3ZmMzNWUxN2ZhMjRiNDNk
OTQ1OTUyYTVjNTUyOGM0ZTcuLjBjMmRjM2QyN2IzZWE4OTg3ZDk5ODc2ZDVmYjg4MDk5ZGNkMGVi
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDEtMTMgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
OTQ5NjMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTMwNzkKKworICAgICAgICBUaGlzIGNoYW5nZSBjYXVzZXMgQVNhbiB0ZXN0cyB0byBjcmFzaCBh
bmQgZXhpdCBlYXJseQorICAgICAgICAoUmVxdWVzdGVkIGJ5IHJ5YW5oYWRkYWQgb24gI3dlYmtp
dCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJGcmFnbWVudGF0
aW9uLWZyZWUgYWxsb2NhdG9yIGZvciB0aW1lbGVzcyBhbmQvb3IgY291cGxlZAorICAgICAgICBh
bGxvY2F0aW9ucy4iCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTI2OTYKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTk0
OTYzCisKIDIwMTYtMDEtMTMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIEZyYWdtZW50YXRpb24tZnJlZSBhbGxvY2F0b3IgZm9yIHRpbWVsZXNzIGFuZC9vciBj
b3VwbGVkIGFsbG9jYXRpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU2Y2M3NjVlZjA5MzVhODk3Y2JkZWFh
NTY1M2E0ZWI2ZmUwMGYzMzEuLjdhZjYyMGRjZGI4MjBhOGM1ZDcxMzBjZDJjZmJlMjM2ZWEwMWY0
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNi0wMS0xMyAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE5NDk2My4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MzA3OQorCisgICAgICAgIFRoaXMgY2hhbmdlIGNhdXNlcyBBU2FuIHRlc3RzIHRv
IGNyYXNoIGFuZCBleGl0IGVhcmx5CisgICAgICAgIChSZXF1ZXN0ZWQgYnkgcnlhbmhhZGRhZCBv
biAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkZy
YWdtZW50YXRpb24tZnJlZSBhbGxvY2F0b3IgZm9yIHRpbWVsZXNzIGFuZC9vciBjb3VwbGVkCisg
ICAgICAgIGFsbG9jYXRpb25zLiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MjY5NgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC8xOTQ5NjMKKwogMjAxNi0wMS0xMyAgQWRhbSBCZXJna3Zpc3QgIDxhZGFtLmJlcmdrdmlz
dEBlcmljc3Nvbi5jb20+CiAKICAgICAgICAgV2ViUlRDOiBBZGQgc3VwcG9ydCBmb3IgUlRDUnRw
U2VuZGVyLnJlcGxhY2VUcmFjaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9q
L1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagppbmRleCA4
ZjYzNDY2MjljOWI2MjY5MzIwNDFhNWRmOTAxZGRiNzNiNzAzNzRlLi4yZWM5ZWJiNGRkZGQ5OTU4
ZGU4ZGE0MjM2MzEzYzI1NTljOGZlYWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hw
cm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oK
QEAgLTUzLDcgKzUzLDYgQEAKICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHd0ZlxBc3NlcnRpb25zLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0
ZlxCaXRWZWN0b3IuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXEJ1bXBB
cmVuYS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcQ29tcGlsYXRpb25U
aHJlYWQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXENyeXB0b2dyYXBo
aWNVdGlsaXRpZXMuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXENyeXB0
b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
V1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ov
V1RGLnZjeHByb2ouZmlsdGVycwppbmRleCBiNTQ3YmI4NDE2OTMyNmMwZjliZTAzNzdlOTkyZThj
OTBiYmE5ZmI3Li41ZmIxODQxYTBjYzI0NTg1Y2ZlODZiZTgyNDQwZjYwNmUzM2ZlZWFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKKysrIGIv
U291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCkBAIC0xMjAsOSArMTIw
LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0ZlxCaXRWZWN0b3IuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlx3dGZcQnVtcEFyZW5hLmNwcCI+Ci0gICAgICA8RmlsdGVyPnd0ZjwvRmls
dGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXENy
eXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwIj4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAxMzMxNGIzZTkwYWQxZWMxNGFjMGI2MGQzY2M0MmQ4NTEzMzk3ZjU4Li4zMjhkNjBiMWZj
NTIxYzcyM2MyYjQ2ZjBmZDJkZWQ4MWE0Yzg5ODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTI4Nyw4ICsyODcsNiBAQAogCQlBOEE0NzQ4NjE1MUE4MjVC
MDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFk
RGF0YS5jcHAgKi87IH07CiAJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWRE
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0
NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oICovOyB9OwogCQlBOEE0NzQ4
QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmgg
Ki87IH07Ci0JCUFEOUM1MEMxMUMzQzFENUQwMDVGQkYxRSAvKiBCdW1wQXJlbmEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ5QzUwQkYxQzNDMUQ1
RDAwNUZCRjFFIC8qIEJ1bXBBcmVuYS5jcHAgKi87IH07Ci0JCUFEOUM1MEMyMUMzQzFENUQwMDVG
QkYxRSAvKiBCdW1wQXJlbmEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFEOUM1MEMwMUMzQzFENUQwMDVGQkYxRSAvKiBCdW1wQXJlbmEuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi87IH07CkBAIC02MDIsOCArNjAwLDYgQEAKIAkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZG
IC8qIFdURlRocmVhZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV1RGVGhyZWFkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3
MzdCMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdURlRocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQUQ5QzUwQkYxQzNDMUQ1RDAwNUZCRjFFIC8qIEJ1bXBBcmVuYS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdW1wQXJlbmEuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBRDlDNTBDMDFDM0MxRDVEMDA1RkJGMUUgLyogQnVtcEFyZW5hLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ1bXBBcmVuYS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMzhGRDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmlu
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZURlZmluZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8q
IFN0b3B3YXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9wd2F0Y2gu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMw
IC8qIE1lZGlhVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZWRpYVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzYxLDggKzc1Nyw2
IEBACiAJCQkJQThBNDcyNjUxNTFBODI1QTAwNDEyM0ZGIC8qIEJsb29tRmlsdGVyLmggKi8sCiAJ
CQkJMEY5MzI3NEExQzE3RjRCNzAwQ0Y2NTY0IC8qIEJveC5oICovLAogCQkJCTBGNDU3MDQ0MUJF
ODM0NDEwMDYyQTYyOSAvKiBCdWJibGVTb3J0LmggKi8sCi0JCQkJQUQ5QzUwQkYxQzNDMUQ1RDAw
NUZCRjFFIC8qIEJ1bXBBcmVuYS5jcHAgKi8sCi0JCQkJQUQ5QzUwQzAxQzNDMUQ1RDAwNUZCRjFF
IC8qIEJ1bXBBcmVuYS5oICovLAogCQkJCUE4QTQ3MjY3MTUxQTgyNUEwMDQxMjNGRiAvKiBCdW1w
UG9pbnRlckFsbG9jYXRvci5oICovLAogCQkJCUVCOTVFMUVGMTYxQTcyNDEwMDg5QTJGNSAvKiBC
eXRlT3JkZXIuaCAqLywKIAkJCQlBOEE0NzI2QTE1MUE4MjVBMDA0MTIzRkYgLyogQ2hlY2tlZEFy
aXRobWV0aWMuaCAqLywKQEAgLTEyNjcsNyArMTI2MSw2IEBACiAJCQkJQThBNDc0MkMxNTFBODI1
QjAwNDEyM0ZGIC8qIFN0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0M0Yx
NTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NDg3
NDU0MTdBMEJEQUUwMEZBMDRDQiAvKiBTdHJpbmdIYXNoRHVtcENvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUFEOUM1MEMyMUMzQzFENUQwMDVGQkYxRSAvKiBCdW1wQXJlbmEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3NDQxMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdJbXBsLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzQ0MjE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nT3BlcmF0
b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkREQkZBODE2NjZERkEzMDBDNTVGRUYgLyogU3Ry
aW5nUHJpbnRTdHJlYW0uaCBpbiBIZWFkZXJzICovLApAQCAtMTQxMSw3ICsxNDA0LDYgQEAKIAkJ
CQlBNUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWljU3RyaW5nSW1wbENGLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTlCQzcwRjA1MTc2QzM3OUQwMDEwMURFQyAvKiBBdG9taWNTdHJpbmdU
YWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDY5NDE5RDE2RUFCMTBBMDAyNEUxNDYgLyog
QXV0b2RyYWluZWRQb29sTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQUQ5QzUwQzExQzNDMUQ1
RDAwNUZCRjFFIC8qIEJ1bXBBcmVuYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MTM0MDEzODE1
QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0E4
MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5jYyBpbiBTb3VyY2VzICovLAogCQkJCUE4
QTQ3M0FBMTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0uY2MgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0J1bXBBcmVuYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9CdW1w
QXJlbmEuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWM5MmRjMGU4YTgyNjYx
OGE5NjkzNTlkMDFjYWNjZjRjNGVlZDIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL0J1bXBBcmVuYS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwyNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQnVtcEFyZW5hLmgiCi0K
LSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgotCi0jaWYgREVCVUdfQlVNUEFSRU5BCi0jaW5jbHVkZSA8bm90aWZ5Lmg+Ci0jZW5kaWYKLQot
bmFtZXNwYWNlIFdURiB7Ci0KLWNsYXNzIEJ1bXBBcmVuYTo6QmxvY2sgewotcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tTaXplID0gNDA5NjsKLSAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IGJsb2NrTWFzayA9IH4oYmxvY2tTaXplIC0gMSk7Ci0KLSAgICBzdGF0aWMgY29uc3Rl
eHByIHNpemVfdCBkZWZhdWx0Q2FwYWNpdHkoKSB7IHJldHVybiBCbG9jazo6YmxvY2tTaXplIC0g
c2l6ZW9mKEJsb2NrKTsgfQotCi0gICAgc3RhdGljIFJlZjxCbG9jaz4gY3JlYXRlKEJ1bXBBcmVu
YSYsIHNpemVfdCBjYXBhY2l0eSk7Ci0gICAgfkJsb2NrKCk7Ci0KLSAgICB2b2lkIHJlZigpOwot
ICAgIHZvaWQgZGVyZWYoKTsKLQotICAgIEJ1bXBBcmVuYSYgYXJlbmEoKSB7IHJldHVybiBtX2Fy
ZW5hLmdldCgpOyB9Ci0KLSAgICBzdGF0aWMgQmxvY2smIGJsb2NrRm9yKGNvbnN0IHZvaWQqKTsK
LQotICAgIGNoYXIqIHBheWxvYWRTdGFydCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KCZtX2RhdGEpOyB9Ci0KLSNpZiBERUJVR19CVU1QQVJFTkEKLSAgICB2b2lkIGR1bXAoKTsK
LSNlbmRpZgotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBCdW1wQXJlbmE7Ci0gICAgZXhw
bGljaXQgQmxvY2soQnVtcEFyZW5hJik7Ci0KLSAgICBSZWY8QnVtcEFyZW5hPiBtX2FyZW5hOwot
Ci0gICAgdW5zaWduZWQgbV9yZWZDb3VudCB7IDEgfTsKLQotI2lmIERFQlVHX0JVTVBBUkVOQQot
ICAgIHNpemVfdCBtX2J5dGVzQXZhaWxhYmxlIHsgMCB9OwotI2VuZGlmCi0KLSNpZiBDT01QSUxF
UihNU1ZDKQotI3ByYWdtYSB3YXJuaW5nKHB1c2gpCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTog
NDIwMCkgLy8gRGlzYWJsZSAiemVyby1zaXplZCBhcnJheSBpbiBzdHJ1Y3QvdW5pb24iIHdhcm5p
bmcKLSNlbmRpZgotICAgIGNoYXIqIG1fZGF0YVswXTsKLSNpZiBDT01QSUxFUihNU1ZDKQotI3By
YWdtYSB3YXJuaW5nKHBvcCkKLSNlbmRpZgotfTsKLQotc3RhdGljIEJ1bXBBcmVuYSYgZ2xvYmFs
QXJlbmEoKQotewotICAgIHN0YXRpYyBCdW1wQXJlbmEmIGFyZW5hID0gQnVtcEFyZW5hOjpjcmVh
dGUoKS5sZWFrUmVmKCk7Ci0gICAgcmV0dXJuIGFyZW5hOwotfQotCi0jaWYgREVCVUdfQlVNUEFS
RU5BCi1zdGF0aWMgSGFzaFNldDxCdW1wQXJlbmEqPiYgYXJlbmFzKCkKLXsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxCdW1wQXJlbmEqPj4gc2V0OwotICAgIHJldHVybiBzZXQ7
Ci19Ci0jZW5kaWYKLQotQnVtcEFyZW5hOjpCbG9jazo6QmxvY2soQnVtcEFyZW5hJiBhcmVuYSkK
LSAgICA6IG1fYXJlbmEoYXJlbmEpCi17Ci0jaWYgREVCVUdfQlVNUEFSRU5BCi0gICAgbV9hcmVu
YS0+bV9saXZlQmxvY2tzLmFkZCh0aGlzKTsKLSNlbmRpZgotfQotCi1CdW1wQXJlbmE6OkJsb2Nr
Ojp+QmxvY2soKQotewotI2lmIERFQlVHX0JVTVBBUkVOQQotICAgIG1fYXJlbmEtPm1fbGl2ZUJs
b2Nrcy5yZW1vdmUodGhpcyk7Ci0jZW5kaWYKLX0KLQotdm9pZCBCdW1wQXJlbmE6OkJsb2NrOjpy
ZWYoKQotewotICAgICsrbV9yZWZDb3VudDsKLX0KLQotdm9pZCBCdW1wQXJlbmE6OkJsb2NrOjpk
ZXJlZigpCi17Ci0gICAgLS1tX3JlZkNvdW50OwotCi0gICAgaWYgKCFtX3JlZkNvdW50KSB7Ci0g
ICAgICAgIHRoaXMtPn5CbG9jaygpOwotICAgICAgICBmYXN0QWxpZ25lZEZyZWUodGhpcyk7Ci0g
ICAgfSBlbHNlIGlmIChtX3JlZkNvdW50ID09IDEgJiYgbV9hcmVuYS0+bV9jdXJyZW50QmxvY2sg
PT0gdGhpcykgewotICAgICAgICBtX2FyZW5hLT5tX2N1cnJlbnRQYXlsb2FkRW5kID0gbnVsbHB0
cjsKLSAgICAgICAgbV9hcmVuYS0+bV9jdXJyZW50UmVtYWluaW5nID0gMDsKLSAgICAgICAgLy8g
QnJlYWsgdGhlIHJlZi1jeWNsZSBiZXR3ZWVuIEJ1bXBBcmVuYSBhbmQgdGhpcyBCbG9jay4KLSAg
ICAgICAgbV9hcmVuYS0+bV9jdXJyZW50QmxvY2sgPSBudWxscHRyOwotICAgIH0KLX0KLQotUmVm
PEJ1bXBBcmVuYTo6QmxvY2s+IEJ1bXBBcmVuYTo6QmxvY2s6OmNyZWF0ZShCdW1wQXJlbmEmIGFy
ZW5hLCBzaXplX3QgY2FwYWNpdHkpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKE5vdE51
bGwsIGZhc3RBbGlnbmVkTWFsbG9jKGJsb2NrU2l6ZSwgc2l6ZW9mKEJsb2NrKSArIGNhcGFjaXR5
KSkgQmxvY2soYXJlbmEpKTsKLX0KLQotI2lmIERFQlVHX0JVTVBBUkVOQQotdm9pZCBCdW1wQXJl
bmE6OkJsb2NrOjpkdW1wKCkKLXsKLSAgICBXVEZMb2dBbHdheXMoIiAgJTEwcyAlcCAtICUzdSwg
JThsdSBieXRlcyBhdmFpbGFibGVcbiIsIG1fYXJlbmEtPm1fY3VycmVudEJsb2NrID09IHRoaXMg
PyAiW2N1cnJlbnRdIiA6ICIiLCB0aGlzLCBtX3JlZkNvdW50LCBtX2J5dGVzQXZhaWxhYmxlKTsK
LX0KLQotdm9pZCBCdW1wQXJlbmE6OmR1bXAoKQotewotICAgIFdURkxvZ0Fsd2F5cygiJXNCdW1w
QXJlbmF7JXB9IiwgJmdsb2JhbEFyZW5hKCkgPT0gdGhpcyA/ICJHbG9iYWwgIiA6ICIiLCB0aGlz
KTsKLSAgICBXVEZMb2dBbHdheXMoIiAgcmVmQ291bnQ6ICV1XG4iLCByZWZDb3VudCgpKTsKLSAg
ICBXVEZMb2dBbHdheXMoIiAgQmxvY2tzICglZClcbiIsIG1fbGl2ZUJsb2Nrcy5zaXplKCkpOwot
ICAgIGZvciAoQmxvY2sqIGJsb2NrIDogbV9saXZlQmxvY2tzKSB7Ci0gICAgICAgIGlmIChibG9j
ayA9PSBtX2N1cnJlbnRCbG9jaykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBibG9j
ay0+ZHVtcCgpOwotICAgIH0KLSAgICBpZiAobV9jdXJyZW50QmxvY2spCi0gICAgICAgIG1fY3Vy
cmVudEJsb2NrLT5kdW1wKCk7Ci19Ci0jZW5kaWYKLQotUmVmPEJ1bXBBcmVuYT4gQnVtcEFyZW5h
OjpjcmVhdGUoKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJ1bXBBcmVuYSk7Ci19Ci0K
LUJ1bXBBcmVuYTo6QnVtcEFyZW5hKCkKLXsKLSNpZiBERUJVR19CVU1QQVJFTkEKLSAgICBhcmVu
YXMoKS5hZGQodGhpcyk7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7Ci0gICAgc3Rk
OjpjYWxsX29uY2Uob25jZSwgW10gewotICAgICAgICBpbnQgZDsKLSAgICAgICAgbm90aWZ5X3Jl
Z2lzdGVyX2Rpc3BhdGNoKCJjb20uYXBwbGUuV2ViS2l0LkJ1bXBBcmVuYS5EdW1wIiwgJmQsIGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oaW50KSB7Ci0gICAgICAgICAgICBmb3IgKEJ1bXBB
cmVuYSogYXJlbmEgOiBhcmVuYXMoKSkgewotICAgICAgICAgICAgICAgIGlmICgmZ2xvYmFsQXJl
bmEoKSA9PSBhcmVuYSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg
ICAgICAgYXJlbmEtPmR1bXAoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGdsb2JhbEFy
ZW5hKCkuZHVtcCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLSNlbmRpZgotfQotCi1CdW1wQXJl
bmE6On5CdW1wQXJlbmEoKQotewotI2lmIERFQlVHX0JVTVBBUkVOQQotICAgIGFyZW5hcygpLnJl
bW92ZSh0aGlzKTsKLSNlbmRpZgotfQotCi12b2lkKiBCdW1wQXJlbmE6OmFsbG9jYXRlU2xvdyhz
aXplX3Qgc2l6ZSkKLXsKLSAgICBpZiAoc2l6ZSA+PSBCbG9jazo6ZGVmYXVsdENhcGFjaXR5KCkp
IHsKLSAgICAgICAgLy8gbGVha1JlZigpIGJhbGFuY2VkIGJ5IEFQSSBkZWFsbG9jYXRpb24gb2Yg
cmVnaW9uIGluc2lkZSBibG9jay4KLSAgICAgICAgQmxvY2smIG92ZXJzaXplQmxvY2sgPSBCbG9j
azo6Y3JlYXRlKCp0aGlzLCBzaXplKS5sZWFrUmVmKCk7Ci0gICAgICAgIHJldHVybiBvdmVyc2l6
ZUJsb2NrLnBheWxvYWRTdGFydCgpOwotICAgIH0KLQotICAgIG1fY3VycmVudEJsb2NrID0gQmxv
Y2s6OmNyZWF0ZSgqdGhpcywgQmxvY2s6OmRlZmF1bHRDYXBhY2l0eSgpKTsKLSAgICBtX2N1cnJl
bnRQYXlsb2FkRW5kID0gbV9jdXJyZW50QmxvY2stPnBheWxvYWRTdGFydCgpICsgQmxvY2s6OmRl
ZmF1bHRDYXBhY2l0eSgpOwotICAgIG1fY3VycmVudFJlbWFpbmluZyA9IEJsb2NrOjpkZWZhdWx0
Q2FwYWNpdHkoKSAtIHNpemU7Ci0jaWYgREVCVUdfQlVNUEFSRU5BCi0gICAgbV9jdXJyZW50Qmxv
Y2stPm1fYnl0ZXNBdmFpbGFibGUgPSBtX2N1cnJlbnRSZW1haW5pbmc7Ci0jZW5kaWYKLSAgICBt
X2N1cnJlbnRCbG9jay0+cmVmKCk7Ci0gICAgcmV0dXJuIG1fY3VycmVudFBheWxvYWRFbmQgLSBt
X2N1cnJlbnRSZW1haW5pbmcgLSBzaXplOwotfQotCi12b2lkKiBCdW1wQXJlbmE6OmFsbG9jYXRl
KHNpemVfdCBzaXplKQotewotICAgIHNpemVfdCBjdXJyZW50UmVtYWluaW5nID0gbV9jdXJyZW50
UmVtYWluaW5nOwotICAgIGlmIChzaXplID4gY3VycmVudFJlbWFpbmluZykKLSAgICAgICAgcmV0
dXJuIGFsbG9jYXRlU2xvdyhzaXplKTsKLSAgICBjdXJyZW50UmVtYWluaW5nIC09IHNpemU7Ci0g
ICAgbV9jdXJyZW50UmVtYWluaW5nID0gY3VycmVudFJlbWFpbmluZzsKLSNpZiBERUJVR19CVU1Q
QVJFTkEKLSAgICBtX2N1cnJlbnRCbG9jay0+bV9ieXRlc0F2YWlsYWJsZSA9IG1fY3VycmVudFJl
bWFpbmluZzsKLSNlbmRpZgotICAgIG1fY3VycmVudEJsb2NrLT5yZWYoKTsKLSAgICByZXR1cm4g
bV9jdXJyZW50UGF5bG9hZEVuZCAtIGN1cnJlbnRSZW1haW5pbmcgLSBzaXplOwotfQotCi12b2lk
IEJ1bXBBcmVuYTo6ZGVhbGxvY2F0ZSh2b2lkKiBwKQotewotICAgIGlmICghcCkKLSAgICAgICAg
cmV0dXJuOwotICAgIEJsb2NrOjpibG9ja0ZvcihwKS5kZXJlZigpOwotfQotCi1CdW1wQXJlbmE6
OkJsb2NrJiBCdW1wQXJlbmE6OkJsb2NrOjpibG9ja0Zvcihjb25zdCB2b2lkKiBwKQotewotICAg
IHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxCbG9jayo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90PihwKSAmIGJsb2NrTWFzayk7Ci19Ci0KLUJ1bXBBcmVuYSYgQnVtcEFyZW5hOjphcmVuYUZv
cihjb25zdCB2b2lkKiBwKQotewotICAgIEFTU0VSVChwKTsKLSAgICByZXR1cm4gQmxvY2s6OmJs
b2NrRm9yKHApLmFyZW5hKCk7Ci19Ci0KLXZvaWQqIEJ1bXBBcmVuYTo6YWxsb2NhdGUoQnVtcEFy
ZW5hKiBhcmVuYSwgc2l6ZV90IHNpemUpCi17Ci0gICAgaWYgKGFyZW5hKQotICAgICAgICByZXR1
cm4gYXJlbmEtPmFsbG9jYXRlKHNpemUpOwotICAgIHJldHVybiBnbG9iYWxBcmVuYSgpLmFsbG9j
YXRlKHNpemUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0J1bXBBcmVuYS5oIGIvU291cmNlL1dURi93dGYvQnVtcEFyZW5hLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5M2QwYmJjOTBkMTM0NDJkOTRjNjhiODBmYzViMWE4OTM5
MTFiZDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dURi93dGYvQnVtcEFyZW5hLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQnVt
cEFyZW5hX2gKLSNkZWZpbmUgQnVtcEFyZW5hX2gKLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0K
LSNkZWZpbmUgREVCVUdfQlVNUEFSRU5BIDAKLQotbmFtZXNwYWNlIFdURiB7Ci0KLWNsYXNzIEJ1
bXBBcmVuYSA6IHB1YmxpYyBSZWZDb3VudGVkPEJ1bXBBcmVuYT4gewotcHVibGljOgotICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPEJ1bXBBcmVuYT4gY3JlYXRlKCk7Ci0gICAgV1RG
X0VYUE9SVF9QUklWQVRFIH5CdW1wQXJlbmEoKTsKLQotICAgIFdURl9FWFBPUlRfUFJJVkFURSBz
dGF0aWMgdm9pZCogYWxsb2NhdGUoQnVtcEFyZW5hKiwgc2l6ZV90KTsKLSAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIHZvaWQgZGVhbGxvY2F0ZSh2b2lkKik7Ci0KLSAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIEJ1bXBBcmVuYSYgYXJlbmFGb3IoY29uc3Qgdm9pZCopOwotCi1wcml2
YXRlOgotICAgIEJ1bXBBcmVuYSgpOwotICAgIHZvaWQqIGFsbG9jYXRlKHNpemVfdCk7Ci0gICAg
dm9pZCogYWxsb2NhdGVTbG93KHNpemVfdCk7Ci0KLSAgICBjbGFzcyBCbG9jazsKLSAgICBmcmll
bmQgY2xhc3MgQmxvY2s7Ci0gICAgUmVmUHRyPEJsb2NrPiBtX2N1cnJlbnRCbG9jazsKLQotICAg
IGNoYXIqIG1fY3VycmVudFBheWxvYWRFbmQgeyBudWxscHRyIH07Ci0gICAgc2l6ZV90IG1fY3Vy
cmVudFJlbWFpbmluZyB7IDAgfTsKLQotI2lmIERFQlVHX0JVTVBBUkVOQQotICAgIHZvaWQgZHVt
cCgpOwotICAgIEhhc2hTZXQ8QmxvY2sqPiBtX2xpdmVCbG9ja3M7Ci0jZW5kaWYKLX07Ci0KLSNk
ZWZpbmUgV1RGX01BS0VfQlVNUEFSRU5BX0FMTE9DQVRFRCBcCi1wdWJsaWM6IFwKLSAgICB2b2lk
KiBvcGVyYXRvciBuZXcoc2l6ZV90LCB2b2lkKiBwKSB7IHJldHVybiBwOyB9IFwKLSAgICB2b2lk
KiBvcGVyYXRvciBuZXdbXShzaXplX3QsIHZvaWQqIHApIHsgcmV0dXJuIHA7IH0gXAotICAgIFwK
LSAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpIFwKLSAgICB7IFwKLSAgICAgICAg
cmV0dXJuIDo6V1RGOjpCdW1wQXJlbmE6OmFsbG9jYXRlKG51bGxwdHIsIHNpemUpOyBcCi0gICAg
fSBcCi0gICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplLCBCdW1wQXJlbmEqIGFyZW5h
KSBcCi0gICAgeyBcCi0gICAgICAgIHJldHVybiA6OldURjo6QnVtcEFyZW5hOjphbGxvY2F0ZShh
cmVuYSwgc2l6ZSk7IFwKLSAgICB9IFwKLSAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBw
KSBcCi0gICAgeyBcCi0gICAgICAgIDo6V1RGOjpCdW1wQXJlbmE6OmRlYWxsb2NhdGUocCk7IFwK
LSAgICB9IFwKLSAgICBcCi0gICAgdm9pZCogb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNpemUpIFwK
LSAgICB7IFwKLSAgICAgICAgcmV0dXJuIDo6V1RGOjpCdW1wQXJlbmE6OmFsbG9jYXRlKG51bGxw
dHIsIHNpemUpOyBcCi0gICAgfSBcCi0gICAgXAotICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlW10o
dm9pZCogcCkgXAotICAgIHsgXAotICAgICAgICA6OldURjo6QnVtcEFyZW5hOjpkZWFsbG9jYXRl
KHApOyBcCi0gICAgfSBcCi0gICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCwgTm90TnVsbFRh
Zywgdm9pZCogbG9jYXRpb24pIFwKLSAgICB7IFwKLSAgICAgICAgQVNTRVJUKGxvY2F0aW9uKTsg
XAotICAgICAgICByZXR1cm4gbG9jYXRpb247IFwKLSAgICB9IFwKLXByaXZhdGU6IFwKLXR5cGVk
ZWYgaW50IF9fdGhpc0lzSGVyZVRvRm9yY2VBU2VtaWNvbG9uQWZ0ZXJUaGlzTWFjcm8KLQotfSAv
LyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6QnVtcEFyZW5hOwotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQKaW5kZXggOTU1ZDc3YjAzOTFjYmE3MmM2ZDhjMzViNDBhYWY3M2RmYzVjMzMx
ZC4uMzQ1ZTIxMjdlNmU3N2M2OWE0MGU3NDJjNTQwMTJjZThjODM4NjNkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKQEAgLTcsNyArNyw2IEBAIHNldChXVEZfSEVBREVSUwogICAgIEJpdFZlY3Rvci5o
CiAgICAgQml0bWFwLmgKICAgICBCdWJibGVTb3J0LmgKLSAgICBCdW1wQXJlbmEuaAogICAgIEJ1
bXBQb2ludGVyQWxsb2NhdG9yLmgKICAgICBCeXRlT3JkZXIuaAogICAgIENvbXBpbGF0aW9uVGhy
ZWFkLmgKQEAgLTE1NCw3ICsxNTMsNiBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBBc3NlcnRpb25z
LmNwcAogICAgIEF0b21pY3MuY3BwCiAgICAgQml0VmVjdG9yLmNwcAotICAgIEJ1bXBBcmVuYS5j
cHAKICAgICBDb21waWxhdGlvblRocmVhZC5jcHAKICAgICBDcnlwdG9ncmFwaGljVXRpbGl0aWVz
LmNwcAogICAgIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkuaW4KaW5kZXggNzc2NWJlYjBjZjAxMTM1ZDkyNDFmZGVjNzc1NWRiMmE5MDk3
Y2YzNi4uNjVkNDhhOWI5NWUyNDk4Mjc5ZmQ5NzAzZDc1OTAyMjQzMGYxOTFiZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC00MDMsNyArNDAzLDcgQEAgd2Via2l0X3NlbGVjdG9y
OgogICAgIFdFQktJVF9TRUxFQ1RPUl9TWU0gJ3snIG1heWJlX3NwYWNlIHNlbGVjdG9yX2xpc3Qg
J30nIHsKICAgICAgICAgaWYgKCQ0KSB7CiAgICAgICAgICAgICBpZiAocGFyc2VyLT5tX3NlbGVj
dG9yTGlzdEZvclBhcnNlU2VsZWN0b3IpCi0gICAgICAgICAgICAgICAgcGFyc2VyLT5tX3NlbGVj
dG9yTGlzdEZvclBhcnNlU2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IocGFyc2VyLT5hcmVu
YSgpLCAqJDQpOworICAgICAgICAgICAgICAgIHBhcnNlci0+bV9zZWxlY3Rvckxpc3RGb3JQYXJz
ZVNlbGVjdG9yLT5hZG9wdFNlbGVjdG9yVmVjdG9yKCokNCk7CiAgICAgICAgICAgICBwYXJzZXIt
PnJlY3ljbGVTZWxlY3RvclZlY3RvcihzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+PigkNCkpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTM1
Myw3ICsxMzUzLDcgQEAgcHNldWRvOgogI2lmIEVOQUJMRV9WSURFT19UUkFDSwogICAgIC8vIHVz
ZWQgYnkgOjpjdWUoOnBhc3QvOmZ1dHVyZSkKICAgICB8ICc6JyAnOicgQ1VFRlVOQ1RJT04gbWF5
YmVfc3BhY2Ugc2ltcGxlX3NlbGVjdG9yX2xpc3QgbWF5YmVfc3BhY2UgJyknIHsKLSAgICAgICAg
JCQgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50Q3VlRnVuY3Rpb25TZWxl
Y3RvcihwYXJzZXItPmFyZW5hKCksICQzLCAkNSk7CisgICAgICAgICQkID0gQ1NTUGFyc2VyU2Vs
ZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVudEN1ZUZ1bmN0aW9uU2VsZWN0b3IoJDMsICQ1KTsKICAg
ICB9CiAjZW5kaWYKICAgICAvLyB1c2UgYnkgOi13ZWJraXQtYW55LgpAQCAtMTM2Niw3ICsxMzY2
LDcgQEAgcHNldWRvOgogICAgICAgICBpZiAoJDQpIHsKICAgICAgICAgICAgIGF1dG8gc2VsZWN0
b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwogICAgICAgICAgICAg
c2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7Ci0gICAgICAgICAg
ICBzZWxlY3Rvci0+YWRvcHRTZWxlY3RvclZlY3RvcihwYXJzZXItPmFyZW5hKCksICpzdGQ6OnVu
aXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+PigkNCkp
OworICAgICAgICAgICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IoKnN0ZDo6dW5pcXVl
X3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4+KCQ0KSk7CiAg
ICAgICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CiAgICAgICAgICAg
ICBpZiAoc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc0FueSkKICAgICAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKQEAgLTEz
NzcsNyArMTM3Nyw3IEBAIHBzZXVkbzoKICAgICAgICAgaWYgKCQ0KSB7CiAgICAgICAgICAgICBh
dXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAg
ICAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwot
ICAgICAgICAgICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IocGFyc2VyLT5hcmVuYSgp
LCAqc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0
b3I+Pj4oJDQpKTsKKyAgICAgICAgICAgIHNlbGVjdG9yLT5hZG9wdFNlbGVjdG9yVmVjdG9yKCpz
dGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+
PigkNCkpOwogICAgICAgICAgICAgc2VsZWN0b3ItPnNldFBzZXVkb0NsYXNzVmFsdWUoJDIpOwog
ICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKSA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NNYXRjaGVzKQogICAgICAgICAgICAgICAgICQkID0gc2VsZWN0b3IucmVs
ZWFzZSgpOwpAQCAtMTQyNyw3ICsxNDI3LDcgQEAgcHNldWRvOgogICAgICAgICAgICAgc2VsZWN0
b3ItPnNldEFyZ3VtZW50KCQ0KTsKICAgICAgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9DbGFz
c1ZhbHVlKCQyKTsKICAgICAgICAgICAgIGlmIChlbmRpbmcpCi0gICAgICAgICAgICAgICAgc2Vs
ZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IocGFyc2VyLT5hcmVuYSgpLCAqZW5kaW5nKTsKKyAg
ICAgICAgICAgICAgICBzZWxlY3Rvci0+YWRvcHRTZWxlY3RvclZlY3RvcigqZW5kaW5nKTsKICAg
ICAgICAgICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3NUeXBlID0g
c2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpOwogICAgICAgICAgICAgaWYgKHBzZXVkb0NsYXNz
VHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NOdGhDaGlsZCB8fCBwc2V1ZG9DbGFzc1R5
cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoTGFzdENoaWxkKQogICAgICAgICAgICAg
ICAgICQkID0gc2VsZWN0b3IucmVsZWFzZSgpOwpAQCAtMTQ0Miw3ICsxNDQyLDcgQEAgcHNldWRv
OgogICAgICAgICAgICAgc2VsZWN0b3ItPnNldEFyZ3VtZW50KEF0b21pY1N0cmluZzo6bnVtYmVy
KCQ0ICogJDUpKTsKICAgICAgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9DbGFzc1ZhbHVlKCQy
KTsKICAgICAgICAgICAgIGlmIChlbmRpbmcpCi0gICAgICAgICAgICAgICAgc2VsZWN0b3ItPmFk
b3B0U2VsZWN0b3JWZWN0b3IocGFyc2VyLT5hcmVuYSgpLCAqZW5kaW5nKTsKKyAgICAgICAgICAg
ICAgICBzZWxlY3Rvci0+YWRvcHRTZWxlY3RvclZlY3RvcigqZW5kaW5nKTsKICAgICAgICAgICAg
IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3NUeXBlID0gc2VsZWN0b3It
PnBzZXVkb0NsYXNzVHlwZSgpOwogICAgICAgICAgICAgaWYgKHBzZXVkb0NsYXNzVHlwZSA9PSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NOdGhDaGlsZCB8fCBwc2V1ZG9DbGFzc1R5cGUgPT0gQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoTGFzdENoaWxkKQogICAgICAgICAgICAgICAgICQkID0g
c2VsZWN0b3IucmVsZWFzZSgpOwpAQCAtMTQ1Nyw3ICsxNDU3LDcgQEAgcHNldWRvOgogICAgICAg
ICAgICAgc2VsZWN0b3ItPnNldEFyZ3VtZW50KCQ0KTsKICAgICAgICAgICAgIHNlbGVjdG9yLT5z
ZXRQc2V1ZG9DbGFzc1ZhbHVlKCQyKTsKICAgICAgICAgICAgIGlmIChlbmRpbmcpCi0gICAgICAg
ICAgICAgICBzZWxlY3Rvci0+YWRvcHRTZWxlY3RvclZlY3RvcihwYXJzZXItPmFyZW5hKCksICpl
bmRpbmcpOworICAgICAgICAgICAgICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IoKmVu
ZGluZyk7CiAgICAgICAgICAgICBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHBzZXVkb0Ns
YXNzVHlwZSA9IHNlbGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKTsKICAgICAgICAgICAgIGlmIChw
c2V1ZG9DbGFzc1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoQ2hpbGQgfHwgcHNl
dWRvQ2xhc3NUeXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc050aExhc3RDaGlsZCkKICAg
ICAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKQEAgLTE1MTEsNyArMTUxMSw3
IEBAIHBzZXVkbzoKICAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3Vu
aXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAgICAgICAgICBzZWxlY3Rvci0+c2V0
TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKICAgICAgICAgICAgICAgICBzZWxlY3Rv
ci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7Ci0gICAgICAgICAgICAgICAgc2VsZWN0b3ItPmFk
b3B0U2VsZWN0b3JWZWN0b3IocGFyc2VyLT5hcmVuYSgpLCAqbGlzdCk7CisgICAgICAgICAgICAg
ICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IoKmxpc3QpOwogICAgICAgICAgICAgICAg
IGlmIChzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzTm90KQogICAgICAgICAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNS
dWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5oCmluZGV4IDg5ZjFj
MDQyNzMwZmZkZDQ5MWQ4MDlkN2E2NDFlOTZlNmEwYmU1NWIuLjg2NWJiZWQwYzMwMTczODc1Zjkz
MWUwMzJjNzBmYzI3MDc3NTFkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NL
ZXlmcmFtZXNSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
aApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBDU1NLZXlmcmFtZVJ1bGU7CiAKIGNsYXNzIFN0eWxl
UnVsZUtleWZyYW1lcyA6IHB1YmxpYyBTdHlsZVJ1bGVCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFN0eWxlUnVsZUtleWZyYW1lcz4gY3JlYXRlKEJ1bXBBcmVuYSogYXJlbmEpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgKGFyZW5hKSBTdHlsZVJ1bGVLZXlmcmFtZXMpOyB9CisgICAgc3Rh
dGljIFJlZjxTdHlsZVJ1bGVLZXlmcmFtZXM+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3R5bGVSdWxlS2V5ZnJhbWVzKCkpOyB9CiAgICAgCiAgICAgflN0eWxlUnVsZUtleWZyYW1l
cygpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxMzQxMGUxNTdkZTgxOTQ3
MjM4OGU0NzZkODkyNzZiY2JhMzcxNWFlLi5kMjg2OTZjMmIzYWZjMzliMDRlNGYxOWZmNjNjNjc4
ZGQ1ZTQ2YzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTY0NCw3ICsxNjQ0LDcg
QEAgUmVmPEltbXV0YWJsZVN0eWxlUHJvcGVydGllcz4gQ1NTUGFyc2VyOjpjcmVhdGVTdHlsZVBy
b3BlcnRpZXMoKQogICAgIGlmICh1bnVzZWRFbnRyaWVzKQogICAgICAgICByZXN1bHRzLnJlbW92
ZSgwLCB1bnVzZWRFbnRyaWVzKTsKIAotICAgIHJldHVybiBJbW11dGFibGVTdHlsZVByb3BlcnRp
ZXM6OmNyZWF0ZShhcmVuYSgpLCByZXN1bHRzLmRhdGEoKSwgcmVzdWx0cy5zaXplKCksIG1fY29u
dGV4dC5tb2RlKTsKKyAgICByZXR1cm4gSW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUo
cmVzdWx0cy5kYXRhKCksIHJlc3VsdHMuc2l6ZSgpLCBtX2NvbnRleHQubW9kZSk7CiB9CiAKIHZv
aWQgQ1NTUGFyc2VyOjphZGRQcm9wZXJ0eVdpdGhQcmVmaXhpbmdWYXJpYW50KENTU1Byb3BlcnR5
SUQgcHJvcElkLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJv
b2wgaW1wbGljaXQpCkBAIC0xMjcwMSw5ICsxMjcwMSw5IEBAIFJlZlB0cjxTdHlsZVJ1bGVCYXNl
PiBDU1NQYXJzZXI6OmNyZWF0ZU1lZGlhUnVsZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IG1l
ZGlhCiAgICAgaWYgKCFtZWRpYSkgewogICAgICAgICAvLyBUbyBjb21wbHkgd2l0aCB3M2MgdGVz
dCBzdWl0ZSBleHBlY3RhdGlvbiwgY3JlYXRlIGFuIGVtcHR5IG1lZGlhIHF1ZXJ5CiAgICAgICAg
IC8vIGV2ZW4gd2hlbiBpdCBpcyBzeW50YWN0aWNhbGx5IGluY29ycmVjdC4KLSAgICAgICAgcnVs
ZSA9IFN0eWxlUnVsZU1lZGlhOjpjcmVhdGUoYXJlbmEoKSwgTWVkaWFRdWVyeVNldDo6Y3JlYXRl
KCksIGVtcHR5UnVsZXMpOworICAgICAgICBydWxlID0gU3R5bGVSdWxlTWVkaWE6OmNyZWF0ZShN
ZWRpYVF1ZXJ5U2V0OjpjcmVhdGUoKSwgZW1wdHlSdWxlcyk7CiAgICAgfSBlbHNlCi0gICAgICAg
IHJ1bGUgPSBTdHlsZVJ1bGVNZWRpYTo6Y3JlYXRlKGFyZW5hKCksIG1lZGlhLCBydWxlcyA/ICpy
dWxlcyA6IGVtcHR5UnVsZXMpOworICAgICAgICBydWxlID0gU3R5bGVSdWxlTWVkaWE6OmNyZWF0
ZShtZWRpYSwgcnVsZXMgPyAqcnVsZXMgOiBlbXB0eVJ1bGVzKTsKICAgICBwcm9jZXNzQW5kQWRk
TmV3UnVsZVRvU291cmNlVHJlZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHJ1bGU7CiB9CkBAIC0x
MjcyOSwxMCArMTI3MjksMTAgQEAgUmVmUHRyPFN0eWxlUnVsZUJhc2U+IENTU1BhcnNlcjo6Y3Jl
YXRlU3VwcG9ydHNSdWxlKGJvb2wgY29uZGl0aW9uSXNTdXBwb3J0ZWQsIFIKICAgICAgICAgY29u
ZGl0aW9uVGV4dCA9IFN0cmluZyhtX2RhdGFTdGFydDE2LmdldCgpICsgY29uZGl0aW9uT2Zmc2V0
LCBjb25kaXRpb25MZW5ndGgpLnN0cmlwV2hpdGVTcGFjZSgpOwogCiAgICAgaWYgKHJ1bGVzKQot
ICAgICAgICBydWxlID0gU3R5bGVSdWxlU3VwcG9ydHM6OmNyZWF0ZShhcmVuYSgpLCBjb25kaXRp
b25UZXh0LCBjb25kaXRpb25Jc1N1cHBvcnRlZCwgKnJ1bGVzKTsKKyAgICAgICAgcnVsZSA9IFN0
eWxlUnVsZVN1cHBvcnRzOjpjcmVhdGUoY29uZGl0aW9uVGV4dCwgY29uZGl0aW9uSXNTdXBwb3J0
ZWQsICpydWxlcyk7CiAgICAgZWxzZSB7CiAgICAgICAgIFJ1bGVMaXN0IGVtcHR5UnVsZXM7Ci0g
ICAgICAgIHJ1bGUgPSBTdHlsZVJ1bGVTdXBwb3J0czo6Y3JlYXRlKGFyZW5hKCksIGNvbmRpdGlv
blRleHQsIGNvbmRpdGlvbklzU3VwcG9ydGVkLCBlbXB0eVJ1bGVzKTsKKyAgICAgICAgcnVsZSA9
IFN0eWxlUnVsZVN1cHBvcnRzOjpjcmVhdGUoY29uZGl0aW9uVGV4dCwgY29uZGl0aW9uSXNTdXBw
b3J0ZWQsIGVtcHR5UnVsZXMpOwogICAgIH0KIAogICAgIHByb2Nlc3NBbmRBZGROZXdSdWxlVG9T
b3VyY2VUcmVlSWZOZWVkZWQoKTsKQEAgLTEyODQxLDcgKzEyODQxLDcgQEAgUmVmUHRyPFN0eWxl
UnVsZUtleWZyYW1lcz4gQ1NTUGFyc2VyOjpjcmVhdGVLZXlmcmFtZXNSdWxlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgc3QKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFJlZlB0cjxTdHlsZUtl
eWZyYW1lPj4+IGtleWZyYW1lcyA9IFdURk1vdmUocG9wS2V5ZnJhbWVzKTsKICAgICBtX2FsbG93
SW1wb3J0UnVsZXMgPSBtX2FsbG93TmFtZXNwYWNlRGVjbGFyYXRpb25zID0gZmFsc2U7Ci0gICAg
UmVmUHRyPFN0eWxlUnVsZUtleWZyYW1lcz4gcnVsZSA9IFN0eWxlUnVsZUtleWZyYW1lczo6Y3Jl
YXRlKGFyZW5hKCkpOworICAgIFJlZlB0cjxTdHlsZVJ1bGVLZXlmcmFtZXM+IHJ1bGUgPSBTdHls
ZVJ1bGVLZXlmcmFtZXM6OmNyZWF0ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5
ZnJhbWVzLT5zaXplKCk7ICsraSkKICAgICAgICAgcnVsZS0+cGFyc2VyQXBwZW5kS2V5ZnJhbWUo
a2V5ZnJhbWVzLT5hdChpKSk7CiAgICAgcnVsZS0+c2V0TmFtZShuYW1lKTsKQEAgLTEyODQ5LDI0
ICsxMjg0OSwxNCBAQCBSZWZQdHI8U3R5bGVSdWxlS2V5ZnJhbWVzPiBDU1NQYXJzZXI6OmNyZWF0
ZUtleWZyYW1lc1J1bGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdAogICAgIHJldHVybiBydWxlOwog
fQogCi12b2lkIENTU1BhcnNlcjo6c2V0QXJlbmEoQnVtcEFyZW5hJiBhcmVuYSkKLXsKLSAgICBt
X2FyZW5hID0gJmFyZW5hOwotfQotCi1CdW1wQXJlbmEqIENTU1BhcnNlcjo6YXJlbmEoKQotewot
ICAgIHJldHVybiBtX2FyZW5hLmdldCgpOwotfQotCiBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NT
UGFyc2VyOjpjcmVhdGVTdHlsZVJ1bGUoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJT
ZWxlY3Rvcj4+KiBzZWxlY3RvcnMpCiB7CiAgICAgUmVmUHRyPFN0eWxlUnVsZT4gcnVsZTsKICAg
ICBpZiAoc2VsZWN0b3JzKSB7CiAgICAgICAgIG1fYWxsb3dJbXBvcnRSdWxlcyA9IGZhbHNlOwog
ICAgICAgICBtX2FsbG93TmFtZXNwYWNlRGVjbGFyYXRpb25zID0gZmFsc2U7Ci0gICAgICAgIHJ1
bGUgPSBTdHlsZVJ1bGU6OmNyZWF0ZShhcmVuYSgpLCBtX2xhc3RTZWxlY3RvckxpbmVOdW1iZXIs
IGNyZWF0ZVN0eWxlUHJvcGVydGllcygpKTsKLSAgICAgICAgcnVsZS0+cGFyc2VyQWRvcHRTZWxl
Y3RvclZlY3RvcihhcmVuYSgpLCAqc2VsZWN0b3JzKTsKKyAgICAgICAgcnVsZSA9IFN0eWxlUnVs
ZTo6Y3JlYXRlKG1fbGFzdFNlbGVjdG9yTGluZU51bWJlciwgY3JlYXRlU3R5bGVQcm9wZXJ0aWVz
KCkpOworICAgICAgICBydWxlLT5wYXJzZXJBZG9wdFNlbGVjdG9yVmVjdG9yKCpzZWxlY3RvcnMp
OwogICAgICAgICBwcm9jZXNzQW5kQWRkTmV3UnVsZVRvU291cmNlVHJlZUlmTmVlZGVkKCk7CiAg
ICAgfSBlbHNlCiAgICAgICAgIHBvcFJ1bGVEYXRhKCk7CkBAIC0xMjg4OSw3ICsxMjg3OSw3IEBA
IFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiBDU1NQYXJzZXI6OmNyZWF0ZUZvbnRGYWNlUnVsZSgpCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KLSAgICBSZWZQdHI8
U3R5bGVSdWxlRm9udEZhY2U+IHJ1bGUgPSBTdHlsZVJ1bGVGb250RmFjZTo6Y3JlYXRlKGFyZW5h
KCksIGNyZWF0ZVN0eWxlUHJvcGVydGllcygpKTsKKyAgICBSZWZQdHI8U3R5bGVSdWxlRm9udEZh
Y2U+IHJ1bGUgPSBTdHlsZVJ1bGVGb250RmFjZTo6Y3JlYXRlKGNyZWF0ZVN0eWxlUHJvcGVydGll
cygpKTsKICAgICBjbGVhclByb3BlcnRpZXMoKTsKICAgICBwcm9jZXNzQW5kQWRkTmV3UnVsZVRv
U291cmNlVHJlZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHJ1bGU7CkBAIC0xMjk3MywxMCArMTI5
NjMsMTAgQEAgUmVmUHRyPFN0eWxlUnVsZUJhc2U+IENTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUo
c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG8KICAgICBtX2FsbG93SW1wb3J0UnVsZXMg
PSBtX2FsbG93TmFtZXNwYWNlRGVjbGFyYXRpb25zID0gZmFsc2U7CiAgICAgUmVmUHRyPFN0eWxl
UnVsZVBhZ2U+IHJ1bGU7CiAgICAgaWYgKHBhZ2VTZWxlY3RvcikgewotICAgICAgICBydWxlID0g
U3R5bGVSdWxlUGFnZTo6Y3JlYXRlKGFyZW5hKCksIGNyZWF0ZVN0eWxlUHJvcGVydGllcygpKTsK
KyAgICAgICAgcnVsZSA9IFN0eWxlUnVsZVBhZ2U6OmNyZWF0ZShjcmVhdGVTdHlsZVByb3BlcnRp
ZXMoKSk7CiAgICAgICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+
PiBzZWxlY3RvclZlY3RvcjsKICAgICAgICAgc2VsZWN0b3JWZWN0b3IuYXBwZW5kKFdURk1vdmUo
cGFnZVNlbGVjdG9yKSk7Ci0gICAgICAgIHJ1bGUtPnBhcnNlckFkb3B0U2VsZWN0b3JWZWN0b3Io
YXJlbmEoKSwgc2VsZWN0b3JWZWN0b3IpOworICAgICAgICBydWxlLT5wYXJzZXJBZG9wdFNlbGVj
dG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKICAgICAgICAgcHJvY2Vzc0FuZEFkZE5ld1J1bGVU
b1NvdXJjZVRyZWVJZk5lZWRlZCgpOwogICAgIH0gZWxzZQogICAgICAgICBwb3BSdWxlRGF0YSgp
OwpAQCAtMTMwMDgsNyArMTI5OTgsNyBAQCBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NTUGFyc2Vy
OjpjcmVhdGVSZWdpb25SdWxlKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFycwogCiAgICAg
bV9hbGxvd0ltcG9ydFJ1bGVzID0gbV9hbGxvd05hbWVzcGFjZURlY2xhcmF0aW9ucyA9IGZhbHNl
OwogCi0gICAgUmVmUHRyPFN0eWxlUnVsZVJlZ2lvbj4gcmVnaW9uUnVsZSA9IFN0eWxlUnVsZVJl
Z2lvbjo6Y3JlYXRlKGFyZW5hKCksIHJlZ2lvblNlbGVjdG9yLCAqcnVsZXMpOworICAgIFJlZlB0
cjxTdHlsZVJ1bGVSZWdpb24+IHJlZ2lvblJ1bGUgPSBTdHlsZVJ1bGVSZWdpb246OmNyZWF0ZShy
ZWdpb25TZWxlY3RvciwgKnJ1bGVzKTsKIAogICAgIGlmIChpc0V4dHJhY3RpbmdTb3VyY2VEYXRh
KCkpCiAgICAgICAgIGFkZE5ld1J1bGVUb1NvdXJjZVRyZWUoQ1NTUnVsZVNvdXJjZURhdGE6OmNy
ZWF0ZVVua25vd24oKSk7CkBAIC0xMzI4Miw3ICsxMzI3Miw3IEBAIFBhc3NSZWZQdHI8U3R5bGVS
dWxlQmFzZT4gQ1NTUGFyc2VyOjpjcmVhdGVWaWV3cG9ydFJ1bGUoKQogewogICAgIG1fYWxsb3dJ
bXBvcnRSdWxlcyA9IG1fYWxsb3dOYW1lc3BhY2VEZWNsYXJhdGlvbnMgPSBmYWxzZTsKIAotICAg
IFJlZlB0cjxTdHlsZVJ1bGVWaWV3cG9ydD4gcnVsZSA9IFN0eWxlUnVsZVZpZXdwb3J0OjpjcmVh
dGUoYXJlbmEoKSwgY3JlYXRlU3R5bGVQcm9wZXJ0aWVzKCkpOworICAgIFJlZlB0cjxTdHlsZVJ1
bGVWaWV3cG9ydD4gcnVsZSA9IFN0eWxlUnVsZVZpZXdwb3J0OjpjcmVhdGUoY3JlYXRlU3R5bGVQ
cm9wZXJ0aWVzKCkpOwogICAgIGNsZWFyUHJvcGVydGllcygpOwogCiAgICAgcHJvY2Vzc0FuZEFk
ZE5ld1J1bGVUb1NvdXJjZVRyZWVJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4
IDM3YmUzMjI4ZGNiNjU3Y2M5NDhlNWUwMjE4NzRmMTk1ODM3NjY1NWMuLmZkMDQwOWRmNTg4ODVh
NTVkODkwZjQwZWJlODYyMGU2ZjlmOTU3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTM2
LDcgKzM2LDYgQEAKICNpbmNsdWRlICJTb3VyY2VTaXplTGlzdC5oIgogI2luY2x1ZGUgIldlYktp
dENTU0ZpbHRlclZhbHVlLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHd0Zi9CdW1w
QXJlbmEuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMTE1LDggKzExNCw2IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBDU1NQYXJzZXIoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIH5DU1NQYXJzZXIoKTsKIAotICAgIHZvaWQgc2V0QXJlbmEoQnVt
cEFyZW5hJik7Ci0KICAgICB2b2lkIHBhcnNlU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVGV4dFBvc2l0aW9uJiwgUnVsZVNvdXJjZURhdGFMaXN0KiwgYm9v
bCBsb2dFcnJvcnMpOwogICAgIFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiBwYXJzZVJ1bGUoU3R5bGVT
aGVldENvbnRlbnRzKiwgY29uc3QgU3RyaW5nJik7CiAgICAgUmVmUHRyPFN0eWxlS2V5ZnJhbWU+
IHBhcnNlS2V5ZnJhbWVSdWxlKFN0eWxlU2hlZXRDb250ZW50cyosIGNvbnN0IFN0cmluZyYpOwpA
QCAtNDAwLDggKzM5Nyw2IEBAIHB1YmxpYzoKIAogICAgIENTU1BhcnNlckNvbnRleHQgbV9jb250
ZXh0OwogCi0gICAgQnVtcEFyZW5hKiBhcmVuYSgpOwotICAgIFJlZlB0cjxCdW1wQXJlbmE+IG1f
YXJlbmE7CiAgICAgYm9vbCBtX2ltcG9ydGFudDsKICAgICBDU1NQcm9wZXJ0eUlEIG1faWQ7CiAg
ICAgQXRvbWljU3RyaW5nIG1fY3VzdG9tUHJvcGVydHlOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyVmFsdWVzLmNwcAppbmRleCBhZDY4NDdmOTVlNmYwNTRkMGQxMzU5MGIxZGI4YWRmYmE4
ZTY0NDNkLi5mZDliOWQ1NGQwNDc4YjhmOWQ3YjJmNzQ2YTQ1MjY3MjBjNmFmYjRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcApAQCAtMjE0LDcgKzIxNCw3IEBAIENTU1Bh
cnNlclNlbGVjdG9yKiBDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50U2VsZWN0
b3IoQ1NTUGFyc2VyU3RyaW5nCiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi1DU1NQYXJz
ZXJTZWxlY3RvciogQ1NTUGFyc2VyU2VsZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVudEN1ZUZ1bmN0
aW9uU2VsZWN0b3IoQnVtcEFyZW5hKiBhcmVuYSwgY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBmdW5j
dGlvbklkZW50aWZpZXIsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+
PiogcGFyc2VkU2VsZWN0b3JWZWN0b3IpCitDU1NQYXJzZXJTZWxlY3RvciogQ1NTUGFyc2VyU2Vs
ZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVudEN1ZUZ1bmN0aW9uU2VsZWN0b3IoY29uc3QgQ1NTUGFy
c2VyU3RyaW5nJiBmdW5jdGlvbklkZW50aWZpZXIsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NT
UGFyc2VyU2VsZWN0b3I+PiogcGFyc2VkU2VsZWN0b3JWZWN0b3IpCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChmdW5jdGlvbklkZW50aWZpZXIsIFN0cmluZyhmdW5jdGlvbklkZW50aWZpZXIpID09ICJj
dWUoIik7CiAKQEAgLTIyNiw3ICsyMjYsNyBAQCBDU1NQYXJzZXJTZWxlY3RvciogQ1NTUGFyc2Vy
U2VsZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVudEN1ZUZ1bmN0aW9uU2VsZWN0b3IoQnVtcAogICAg
IGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwog
ICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvRWxl
bWVudCk7CiAgICAgc2VsZWN0b3ItPm1fc2VsZWN0b3ItPnNldFBzZXVkb0VsZW1lbnRUeXBlKENT
U1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50Q3VlKTsKLSAgICBzZWxlY3Rvci0+YWRvcHRTZWxlY3Rv
clZlY3RvcihhcmVuYSwgKnNlbGVjdG9yVmVjdG9yKTsKKyAgICBzZWxlY3Rvci0+YWRvcHRTZWxl
Y3RvclZlY3Rvcigqc2VsZWN0b3JWZWN0b3IpOwogICAgIHJldHVybiBzZWxlY3Rvci5yZWxlYXNl
KCk7CiB9CiAjZW5kaWYKQEAgLTI3OSwxMCArMjc5LDEwIEBAIENTU1BhcnNlclNlbGVjdG9yOjp+
Q1NTUGFyc2VyU2VsZWN0b3IoKQogICAgIH0KIH0KIAotdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6
YWRvcHRTZWxlY3RvclZlY3RvcihCdW1wQXJlbmEqIGFyZW5hLCBWZWN0b3I8c3RkOjp1bmlxdWVf
cHRyPENTU1BhcnNlclNlbGVjdG9yPj4mIHNlbGVjdG9yVmVjdG9yKQordm9pZCBDU1NQYXJzZXJT
ZWxlY3Rvcjo6YWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1Bh
cnNlclNlbGVjdG9yPj4mIHNlbGVjdG9yVmVjdG9yKQogewogICAgIGF1dG8gc2VsZWN0b3JMaXN0
ID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NTZWxlY3Rvckxpc3Q+KCk7Ci0gICAgc2VsZWN0b3JMaXN0
LT5hZG9wdFNlbGVjdG9yVmVjdG9yKGFyZW5hLCBzZWxlY3RvclZlY3Rvcik7CisgICAgc2VsZWN0
b3JMaXN0LT5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKICAgICBtX3NlbGVj
dG9yLT5zZXRTZWxlY3Rvckxpc3QoV1RGTW92ZShzZWxlY3Rvckxpc3QpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCmluZGV4IDUxYmNkNDliMmRmMjZjY2EwZmU5NGQxZTNm
MTc0YjA0NmU0NDYxMTcuLmNlOWI1MzIwNzFjNTdiNWQwNGI5MTliNjUwZTIxYzljNjQ4MzFhZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKQEAgLTI0LDcgKzI0LDYgQEAKICNp
bmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNp
bmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKLSNpbmNsdWRlIDx3dGYvQnVtcEFyZW5hLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMjEyLDcg
KzIxMSw3IEBAIGNsYXNzIENTU1BhcnNlclNlbGVjdG9yIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
Q1NTUGFyc2VyU2VsZWN0b3IqIHBhcnNlUGFnZVBzZXVkb1NlbGVjdG9yKGNvbnN0IENTU1BhcnNl
clN0cmluZyYgcHNldWRvVHlwZVN0cmluZyk7CiAgICAgc3RhdGljIENTU1BhcnNlclNlbGVjdG9y
KiBwYXJzZVBzZXVkb0VsZW1lbnRTZWxlY3RvcihDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVT
dHJpbmcpOwotICAgIHN0YXRpYyBDU1NQYXJzZXJTZWxlY3RvciogcGFyc2VQc2V1ZG9FbGVtZW50
Q3VlRnVuY3Rpb25TZWxlY3RvcihCdW1wQXJlbmEqLCBjb25zdCBDU1NQYXJzZXJTdHJpbmcmIGZ1
bmN0aW9uSWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rv
cj4+KiBzZWxlY3RvclZlY3Rvcik7CisgICAgc3RhdGljIENTU1BhcnNlclNlbGVjdG9yKiBwYXJz
ZVBzZXVkb0VsZW1lbnRDdWVGdW5jdGlvblNlbGVjdG9yKGNvbnN0IENTU1BhcnNlclN0cmluZyYg
ZnVuY3Rpb25JZGVudGlmaWVyLCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVj
dG9yPj4qIHNlbGVjdG9yVmVjdG9yKTsKICAgICBzdGF0aWMgQ1NTUGFyc2VyU2VsZWN0b3IqIHBh
cnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFNlbGVjdG9yKENTU1BhcnNlclN0
cmluZyYgcHNldWRvVHlwZVN0cmluZyk7CiAKICAgICBDU1NQYXJzZXJTZWxlY3RvcigpOwpAQCAt
MjI5LDcgKzIyOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlbGF0aW9uKENTU1NlbGVjdG9y
OjpSZWxhdGlvbiB2YWx1ZSkgeyBtX3NlbGVjdG9yLT5zZXRSZWxhdGlvbih2YWx1ZSk7IH0KICAg
ICB2b2lkIHNldEZvclBhZ2UoKSB7IG1fc2VsZWN0b3ItPnNldEZvclBhZ2UoKTsgfQogCi0gICAg
dm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKEJ1bXBBcmVuYSosIFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JWZWN0b3IpOworICAgIHZvaWQgYWRvcHRT
ZWxlY3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4m
IHNlbGVjdG9yVmVjdG9yKTsKICAgICB2b2lkIHNldExhbmdBcmd1bWVudExpc3QoY29uc3QgVmVj
dG9yPENTU1BhcnNlclN0cmluZz4mIHN0cmluZ1ZlY3Rvcik7CiAKICAgICB2b2lkIHNldFBzZXVk
b0NsYXNzVmFsdWUoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9DbGFzc1N0cmluZyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCmluZGV4IDI4NzNkNWI3MDE3MTMzMjZh
N2VlYzU0ZjVhZmM0NjYxYTU4NGNhOTEuLjM2YWFkZWZiZjlkYmM3NTNiYTNjMDFlZWJmMTVhYTE5
ZmE4Y2U1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCkBAIC0zNyw3
ICszNyw3IEBAIENTU1NlbGVjdG9yTGlzdDo6Q1NTU2VsZWN0b3JMaXN0KGNvbnN0IENTU1NlbGVj
dG9yTGlzdCYgb3RoZXIpCiAgICAgdW5zaWduZWQgb3RoZXJDb21wb25lbnRDb3VudCA9IG90aGVy
LmNvbXBvbmVudENvdW50KCk7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
b3RoZXJDb21wb25lbnRDb3VudCk7CiAKLSAgICBtX3NlbGVjdG9yQXJyYXkgPSByZWludGVycHJl
dF9jYXN0PENTU1NlbGVjdG9yKj4oQnVtcEFyZW5hOjphbGxvY2F0ZSgmQnVtcEFyZW5hOjphcmVu
YUZvcihvdGhlci5tX3NlbGVjdG9yQXJyYXkpLCBzaXplb2YoQ1NTU2VsZWN0b3IpICogb3RoZXJD
b21wb25lbnRDb3VudCkpOworICAgIG1fc2VsZWN0b3JBcnJheSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
Q1NTU2VsZWN0b3IqPihmYXN0TWFsbG9jKHNpemVvZihDU1NTZWxlY3RvcikgKiBvdGhlckNvbXBv
bmVudENvdW50KSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG90aGVyQ29tcG9uZW50
Q291bnQ7ICsraSkKICAgICAgICAgbmV3IChOb3ROdWxsLCAmbV9zZWxlY3RvckFycmF5W2ldKSBD
U1NTZWxlY3RvcihvdGhlci5tX3NlbGVjdG9yQXJyYXlbaV0pOwogfQpAQCAtNDksNyArNDksNyBA
QCBDU1NTZWxlY3Rvckxpc3Q6OkNTU1NlbGVjdG9yTGlzdChDU1NTZWxlY3Rvckxpc3QmJiBvdGhl
cikKICAgICBvdGhlci5tX3NlbGVjdG9yQXJyYXkgPSBudWxscHRyOwogfQogCi12b2lkIENTU1Nl
bGVjdG9yTGlzdDo6YWRvcHRTZWxlY3RvclZlY3RvcihCdW1wQXJlbmEqIGFyZW5hLCBWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4mIHNlbGVjdG9yVmVjdG9yKQordm9p
ZCBDU1NTZWxlY3Rvckxpc3Q6OmFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+JiBzZWxlY3RvclZlY3RvcikKIHsKICAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighc2VsZWN0b3JWZWN0b3IuaXNFbXB0eSgpKTsKIApA
QCAtNjAsNyArNjAsNyBAQCB2b2lkIENTU1NlbGVjdG9yTGlzdDo6YWRvcHRTZWxlY3RvclZlY3Rv
cihCdW1wQXJlbmEqIGFyZW5hLCBWZWN0b3I8c3RkOjp1bmlxdWVfcAogICAgICAgICAgICAgKytm
bGF0dGVuZWRTaXplOwogICAgIH0KICAgICBBU1NFUlQoZmxhdHRlbmVkU2l6ZSk7Ci0gICAgbV9z
ZWxlY3RvckFycmF5ID0gcmVpbnRlcnByZXRfY2FzdDxDU1NTZWxlY3Rvcio+KEJ1bXBBcmVuYTo6
YWxsb2NhdGUoYXJlbmEsIHNpemVvZihDU1NTZWxlY3RvcikgKiBmbGF0dGVuZWRTaXplKSk7Cisg
ICAgbV9zZWxlY3RvckFycmF5ID0gcmVpbnRlcnByZXRfY2FzdDxDU1NTZWxlY3Rvcio+KGZhc3RN
YWxsb2Moc2l6ZW9mKENTU1NlbGVjdG9yKSAqIGZsYXR0ZW5lZFNpemUpKTsKICAgICBzaXplX3Qg
YXJyYXlJbmRleCA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzZWxlY3RvclZlY3Rv
ci5zaXplKCk7ICsraSkgewogICAgICAgICBDU1NQYXJzZXJTZWxlY3RvciogY3VycmVudCA9IHNl
bGVjdG9yVmVjdG9yW2ldLmdldCgpOwpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgQ1NTU2VsZWN0
b3JMaXN0OjpkZWxldGVTZWxlY3RvcnMoKQogICAgICAgICBpc0xhc3RTZWxlY3RvciA9IHMtPmlz
TGFzdEluU2VsZWN0b3JMaXN0KCk7CiAgICAgICAgIHMtPn5DU1NTZWxlY3RvcigpOwogICAgIH0K
LSAgICBCdW1wQXJlbmE6OmRlYWxsb2NhdGUoc2VsZWN0b3JBcnJheSk7CisgICAgZmFzdEZyZWUo
c2VsZWN0b3JBcnJheSk7CiB9CiAKIFN0cmluZyBDU1NTZWxlY3Rvckxpc3Q6OnNlbGVjdG9yc1Rl
eHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5oCmluZGV4IDZjYmZjMDYw
MGYyMjI1MGNiMjU5YzhlZDE4ODE2Nzk3MGFiMDIwYjIuLjA1YjdlOThlMmVlZGU1MzI4OGNmMDc2
OTFlZjFkMTM1OWM4NGY5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvckxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmgKQEAg
LTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCiAjaW5jbHVkZSA8bWVt
b3J5PgotI2luY2x1ZGUgPHd0Zi9CdW1wQXJlbmEuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00Myw3ICs0Miw3IEBAIHB1YmxpYzoKIAogICAgIH5DU1NTZWxlY3Rvckxpc3QoKSB7IGRl
bGV0ZVNlbGVjdG9ycygpOyB9CiAKLSAgICB2b2lkIGFkb3B0U2VsZWN0b3JWZWN0b3IoQnVtcEFy
ZW5hKiwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+Jik7CisgICAg
dm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2Vy
U2VsZWN0b3I+PiYgc2VsZWN0b3JWZWN0b3IpOwogICAgIHZvaWQgYWRvcHRTZWxlY3RvckFycmF5
KENTU1NlbGVjdG9yKiBzZWxlY3RvcnMpIHsgQVNTRVJUKCFtX3NlbGVjdG9yQXJyYXkpOyBtX3Nl
bGVjdG9yQXJyYXkgPSBzZWxlY3RvcnM7IH0KIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuICEhbV9zZWxlY3RvckFycmF5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRp
ZXMuY3BwCmluZGV4IDllNzJkYjFkY2I2YWZlZDU2MjZhOTRkOTk0NWY5MGI0MDBmNjdhYzYuLjE0
ZjdhYzdmOWJkOGMzODA5MWZmMDk1NTQ1MzYyZDI4ODVmZTVmYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC01NSw5ICs1NSw5IEBAIHN0YXRpYyBib29sIGlzSW5p
dGlhbE9ySW5oZXJpdChjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiB2YWx1ZS5sZW5n
dGgoKSA9PSA3ICYmICh2YWx1ZSA9PSAiaW5pdGlhbCIgfHwgdmFsdWUgPT0gImluaGVyaXQiKTsK
IH0KIAotUmVmPEltbXV0YWJsZVN0eWxlUHJvcGVydGllcz4gSW1tdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzOjpjcmVhdGUoQnVtcEFyZW5hKiBhcmVuYSwgY29uc3QgQ1NTUHJvcGVydHkqIHByb3BlcnRp
ZXMsIHVuc2lnbmVkIGNvdW50LCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUpCitSZWY8SW1t
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBJbW11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZShj
b25zdCBDU1NQcm9wZXJ0eSogcHJvcGVydGllcywgdW5zaWduZWQgY291bnQsIENTU1BhcnNlck1v
ZGUgY3NzUGFyc2VyTW9kZSkKIHsKLSAgICB2b2lkKiBzbG90ID0gQnVtcEFyZW5hOjphbGxvY2F0
ZShhcmVuYSwgc2l6ZUZvckltbXV0YWJsZVN0eWxlUHJvcGVydGllc1dpdGhQcm9wZXJ0eUNvdW50
KGNvdW50KSk7CisgICAgdm9pZCogc2xvdCA9IFdURjo6ZmFzdE1hbGxvYyhzaXplRm9ySW1tdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzV2l0aFByb3BlcnR5Q291bnQoY291bnQpKTsKICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyAoTm90TnVsbCwgc2xvdCkgSW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKHBy
b3BlcnRpZXMsIGNvdW50LCBjc3NQYXJzZXJNb2RlKSk7CiB9CiAKQEAgLTY2LDcgKzY2LDcgQEAg
UmVmPEltbXV0YWJsZVN0eWxlUHJvcGVydGllcz4gU3R5bGVQcm9wZXJ0aWVzOjppbW11dGFibGVD
b3B5SWZOZWVkZWQoKSBjb25zdAogICAgIGlmIChpczxJbW11dGFibGVTdHlsZVByb3BlcnRpZXM+
KCp0aGlzKSkKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PEltbXV0YWJsZVN0eWxlUHJvcGVydGll
cz4oY29uc3RfY2FzdDxTdHlsZVByb3BlcnRpZXMmPigqdGhpcykpOwogICAgIGNvbnN0IE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmIG11dGFibGVUaGlzID0gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJv
cGVydGllcz4oKnRoaXMpOwotICAgIHJldHVybiBJbW11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNy
ZWF0ZSgmQnVtcEFyZW5hOjphcmVuYUZvcih0aGlzKSwgbXV0YWJsZVRoaXMubV9wcm9wZXJ0eVZl
Y3Rvci5kYXRhKCksIG11dGFibGVUaGlzLm1fcHJvcGVydHlWZWN0b3Iuc2l6ZSgpLCBjc3NQYXJz
ZXJNb2RlKCkpOworICAgIHJldHVybiBJbW11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSht
dXRhYmxlVGhpcy5tX3Byb3BlcnR5VmVjdG9yLmRhdGEoKSwgbXV0YWJsZVRoaXMubV9wcm9wZXJ0
eVZlY3Rvci5zaXplKCksIGNzc1BhcnNlck1vZGUoKSk7CiB9CiAKIE11dGFibGVTdHlsZVByb3Bl
cnRpZXM6Ok11dGFibGVTdHlsZVByb3BlcnRpZXMoQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2Rl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCmluZGV4IDBkMGE3MDUyMmZkNWQ0MjU4
NmVlZjk1YjBlMjQ1ZTA2YmVhNTIzMTguLjdkMDljNDVlNWMwY2U2ZjdkZTdlMzQ2NzJlYWE0YTg5
NTgxNTY4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmgKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXl3b3Jkcy5oIgogI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDx3dGYvQnVtcEFyZW5hLmg+
CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ3LDggKzQ2LDcgQEAgY2xhc3MgU3R5bGVk
RWxlbWVudDsKIGNsYXNzIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQ7CiBjbGFzcyBTdHlsZVNoZWV0
Q29udGVudHM7CiAKLWNsYXNzIFN0eWxlUHJvcGVydGllcyA6IHB1YmxpYyBXVEY6OlJlZkNvdW50
ZWRCYXNlIHsKLSAgICBXVEZfTUFLRV9CVU1QQVJFTkFfQUxMT0NBVEVEOworY2xhc3MgU3R5bGVQ
cm9wZXJ0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8U3R5bGVQcm9wZXJ0aWVzPiB7CiAgICAgZnJp
ZW5kIGNsYXNzIFByb3BlcnR5UmVmZXJlbmNlOwogcHVibGljOgogICAgIC8vIE92ZXJyaWRlIFJl
ZkNvdW50ZWQncyBkZXJlZigpIHRvIGVuc3VyZSBvcGVyYXRvciBkZWxldGUgaXMgY2FsbGVkIG9u
CkBAIC0xNjMsNyArMTYxLDcgQEAgcHJpdmF0ZToKIGNsYXNzIEltbXV0YWJsZVN0eWxlUHJvcGVy
dGllcyA6IHB1YmxpYyBTdHlsZVByb3BlcnRpZXMgewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIH5JbW11dGFibGVTdHlsZVByb3BlcnRpZXMoKTsKLSAgICBzdGF0aWMgUmVmPEltbXV0YWJs
ZVN0eWxlUHJvcGVydGllcz4gY3JlYXRlKEJ1bXBBcmVuYSosIGNvbnN0IENTU1Byb3BlcnR5KiBw
cm9wZXJ0aWVzLCB1bnNpZ25lZCBjb3VudCwgQ1NTUGFyc2VyTW9kZSk7CisgICAgc3RhdGljIFJl
ZjxJbW11dGFibGVTdHlsZVByb3BlcnRpZXM+IGNyZWF0ZShjb25zdCBDU1NQcm9wZXJ0eSogcHJv
cGVydGllcywgdW5zaWduZWQgY291bnQsIENTU1BhcnNlck1vZGUpOwogCiAgICAgdW5zaWduZWQg
cHJvcGVydHlDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlTaXplOyB9CiAgICAgYm9vbCBp
c0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIXByb3BlcnR5Q291bnQoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlLmNwcAppbmRleCA3MGM4OWFkZWFmYjY4ZjFkNzRlOGY3MjEwOWJlZGQxZTczMWVhMTc0
Li4xMTZjMTI5NzVlOWViODNiNTQ4ZDQ1MmEyMzgwYTkxZTljZDJjMGZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlLmNwcApAQCAtMjE5LDE0ICsyMTksMTQgQEAgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYgU3R5bGVSdWxlOjptdXRhYmxlUHJvcGVydGllcygpCiAgICAgcmV0dXJuIGRvd25jYXN0PE11
dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydGllcy5nZXQoKSk7CiB9CiAKLVJlZjxTdHls
ZVJ1bGU+IFN0eWxlUnVsZTo6Y3JlYXRlKEJ1bXBBcmVuYSogYXJlbmEsIGludCBzb3VyY2VMaW5l
LCBjb25zdCBWZWN0b3I8Y29uc3QgQ1NTU2VsZWN0b3IqPiYgc2VsZWN0b3JzLCBSZWY8U3R5bGVQ
cm9wZXJ0aWVzPiYmIHByb3BlcnRpZXMpCitSZWY8U3R5bGVSdWxlPiBTdHlsZVJ1bGU6OmNyZWF0
ZShpbnQgc291cmNlTGluZSwgY29uc3QgVmVjdG9yPGNvbnN0IENTU1NlbGVjdG9yKj4mIHNlbGVj
dG9ycywgUmVmPFN0eWxlUHJvcGVydGllcz4mJiBwcm9wZXJ0aWVzKQogewogICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFzZWxlY3RvcnMuaXNFbXB0eSgpKTsKLSAgICBDU1NT
ZWxlY3Rvciogc2VsZWN0b3JMaXN0QXJyYXkgPSByZWludGVycHJldF9jYXN0PENTU1NlbGVjdG9y
Kj4oQnVtcEFyZW5hOjphbGxvY2F0ZShhcmVuYSwgc2l6ZW9mKENTU1NlbGVjdG9yKSAqIHNlbGVj
dG9ycy5zaXplKCkpKTsKKyAgICBDU1NTZWxlY3Rvciogc2VsZWN0b3JMaXN0QXJyYXkgPSByZWlu
dGVycHJldF9jYXN0PENTU1NlbGVjdG9yKj4oZmFzdE1hbGxvYyhzaXplb2YoQ1NTU2VsZWN0b3Ip
ICogc2VsZWN0b3JzLnNpemUoKSkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZWxl
Y3RvcnMuc2l6ZSgpOyArK2kpCiAgICAgICAgIG5ldyAoTm90TnVsbCwgJnNlbGVjdG9yTGlzdEFy
cmF5W2ldKSBDU1NTZWxlY3Rvcigqc2VsZWN0b3JzLmF0KGkpKTsKICAgICBzZWxlY3Rvckxpc3RB
cnJheVtzZWxlY3RvcnMuc2l6ZSgpIC0gMV0uc2V0TGFzdEluU2VsZWN0b3JMaXN0KCk7Ci0gICAg
YXV0byBydWxlID0gU3R5bGVSdWxlOjpjcmVhdGUoYXJlbmEsIHNvdXJjZUxpbmUsIFdURk1vdmUo
cHJvcGVydGllcykpOworICAgIGF1dG8gcnVsZSA9IFN0eWxlUnVsZTo6Y3JlYXRlKHNvdXJjZUxp
bmUsIFdURk1vdmUocHJvcGVydGllcykpOwogICAgIHJ1bGUuZ2V0KCkucGFyc2VyQWRvcHRTZWxl
Y3RvckFycmF5KHNlbGVjdG9yTGlzdEFycmF5KTsKICAgICByZXR1cm4gcnVsZTsKIH0KQEAgLTI0
NCw3ICsyNDQsNyBAQCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+IFN0eWxlUnVsZTo6c3BsaXRJ
bnRvTXVsdGlwbGVSdWxlc1dpdGhNYXhpbXVtU2VsZWN0b3JDbwogICAgICAgICAgICAgY29tcG9u
ZW50c0luVGhpc1NlbGVjdG9yLmFwcGVuZChjb21wb25lbnQpOwogCiAgICAgICAgIGlmIChjb21w
b25lbnRzSW5UaGlzU2VsZWN0b3Iuc2l6ZSgpICsgY29tcG9uZW50c1NpbmNlTGFzdFNwbGl0LnNp
emUoKSA+IG1heENvdW50ICYmICFjb21wb25lbnRzU2luY2VMYXN0U3BsaXQuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICBydWxlcy5hcHBlbmQoY3JlYXRlKCZCdW1wQXJlbmE6OmFyZW5hRm9yKHRo
aXMpLCBzb3VyY2VMaW5lKCksIGNvbXBvbmVudHNTaW5jZUxhc3RTcGxpdCwgY29uc3RfY2FzdDxT
dHlsZVByb3BlcnRpZXMmPihtX3Byb3BlcnRpZXMuZ2V0KCkpKSk7CisgICAgICAgICAgICBydWxl
cy5hcHBlbmQoY3JlYXRlKHNvdXJjZUxpbmUoKSwgY29tcG9uZW50c1NpbmNlTGFzdFNwbGl0LCBj
b25zdF9jYXN0PFN0eWxlUHJvcGVydGllcyY+KG1fcHJvcGVydGllcy5nZXQoKSkpKTsKICAgICAg
ICAgICAgIGNvbXBvbmVudHNTaW5jZUxhc3RTcGxpdC5jbGVhcigpOwogICAgICAgICB9CiAKQEAg
LTI1Miw3ICsyNTIsNyBAQCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+IFN0eWxlUnVsZTo6c3Bs
aXRJbnRvTXVsdGlwbGVSdWxlc1dpdGhNYXhpbXVtU2VsZWN0b3JDbwogICAgIH0KIAogICAgIGlm
ICghY29tcG9uZW50c1NpbmNlTGFzdFNwbGl0LmlzRW1wdHkoKSkKLSAgICAgICAgcnVsZXMuYXBw
ZW5kKGNyZWF0ZSgmQnVtcEFyZW5hOjphcmVuYUZvcih0aGlzKSwgc291cmNlTGluZSgpLCBjb21w
b25lbnRzU2luY2VMYXN0U3BsaXQsIGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0aWVzJj4obV9wcm9w
ZXJ0aWVzLmdldCgpKSkpOworICAgICAgICBydWxlcy5hcHBlbmQoY3JlYXRlKHNvdXJjZUxpbmUo
KSwgY29tcG9uZW50c1NpbmNlTGFzdFNwbGl0LCBjb25zdF9jYXN0PFN0eWxlUHJvcGVydGllcyY+
KG1fcHJvcGVydGllcy5nZXQoKSkpKTsKIAogICAgIHJldHVybiBydWxlczsKIH0KQEAgLTM2MCw3
ICszNjAsNyBAQCBTdHlsZVJ1bGVTdXBwb3J0czo6U3R5bGVSdWxlU3VwcG9ydHMoY29uc3QgU3R5
bGVSdWxlU3VwcG9ydHMmIG8pCiBTdHlsZVJ1bGVSZWdpb246OlN0eWxlUnVsZVJlZ2lvbihWZWN0
b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHNlbGVjdG9ycywgVmVjdG9y
PFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mIGFkb3B0UnVsZXMpCiAgICAgOiBTdHlsZVJ1bGVHcm91
cChSZWdpb24sIGFkb3B0UnVsZXMpCiB7Ci0gICAgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3Rv
clZlY3RvcigmQnVtcEFyZW5hOjphcmVuYUZvcih0aGlzKSwgKnNlbGVjdG9ycyk7CisgICAgbV9z
ZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvclZlY3Rvcigqc2VsZWN0b3JzKTsKIH0KIAogU3R5bGVS
dWxlUmVnaW9uOjpTdHlsZVJ1bGVSZWdpb24oY29uc3QgU3R5bGVSdWxlUmVnaW9uJiBvKQpAQCAt
MzY5LDYgKzM2OSw3IEBAIFN0eWxlUnVsZVJlZ2lvbjo6U3R5bGVSdWxlUmVnaW9uKGNvbnN0IFN0
eWxlUnVsZVJlZ2lvbiYgbykKIHsKIH0KIAorCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRB
VElPTikKIFN0eWxlUnVsZVZpZXdwb3J0OjpTdHlsZVJ1bGVWaWV3cG9ydChSZWY8U3R5bGVQcm9w
ZXJ0aWVzPiYmIHByb3BlcnRpZXMpCiAgICAgOiBTdHlsZVJ1bGVCYXNlKFZpZXdwb3J0LCAwKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZS5oCmluZGV4IGE4ODNlYzJlY2QxYzUzZmIxMTBkZTU1MWNmODNjMDhl
NjI5NzIxNmEuLmUyZjg5NzI4ZDA5YzEwZjk5Yjg5Yzk2ODY4NjFlMzMwY2QyMzcxODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSdWxlLmgKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJDU1NTZWxlY3Rv
ckxpc3QuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRp
ZXMuaCIKLSNpbmNsdWRlIDx3dGYvQnVtcEFyZW5hLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIApAQCAtMzgsNyArMzcsNyBAQCBjbGFzcyBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzOwogY2xhc3MgU3R5bGVQcm9wZXJ0aWVzOwogCiBjbGFzcyBT
dHlsZVJ1bGVCYXNlIDogcHVibGljIFdURjo6UmVmQ291bnRlZEJhc2UgewotICAgIFdURl9NQUtF
X0JVTVBBUkVOQV9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgZW51bSBUeXBlIHsKICAgICAgICAgVW5rbm93biwgLy8gTm90IHVzZWQuCkBAIC0x
MDIsMTAgKzEwMSwxMSBAQCBwcml2YXRlOgogfTsKIAogY2xhc3MgU3R5bGVSdWxlIDogcHVibGlj
IFN0eWxlUnVsZUJhc2UgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8U3R5bGVSdWxlPiBjcmVhdGUoQnVtcEFyZW5hKiBhcmVuYSwgaW50IHNv
dXJjZUxpbmUsIFJlZjxTdHlsZVByb3BlcnRpZXM+JiYgcHJvcGVydGllcykKKyAgICBzdGF0aWMg
UmVmPFN0eWxlUnVsZT4gY3JlYXRlKGludCBzb3VyY2VMaW5lLCBSZWY8U3R5bGVQcm9wZXJ0aWVz
PiYmIHByb3BlcnRpZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyAoYXJl
bmEpIFN0eWxlUnVsZShzb3VyY2VMaW5lLCBXVEZNb3ZlKHByb3BlcnRpZXMpKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZShzb3VyY2VMaW5lLCBXVEZNb3ZlKHByb3Bl
cnRpZXMpKSk7CiAgICAgfQogICAgIAogICAgIH5TdHlsZVJ1bGUoKTsKQEAgLTExNCw3ICsxMTQs
NyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzOyB9CiAgICAgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYg
bXV0YWJsZVByb3BlcnRpZXMoKTsKICAgICAKLSAgICB2b2lkIHBhcnNlckFkb3B0U2VsZWN0b3JW
ZWN0b3IoQnVtcEFyZW5hKiBhcmVuYSwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJT
ZWxlY3Rvcj4+JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvclZlY3Rv
cihhcmVuYSwgc2VsZWN0b3JzKTsgfQorICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3Rv
cihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4mIHNlbGVjdG9ycykg
eyBtX3NlbGVjdG9yTGlzdC5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9ycyk7IH0KICAgICB2
b2lkIHdyYXBwZXJBZG9wdFNlbGVjdG9yTGlzdChDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9ycykg
eyBtX3NlbGVjdG9yTGlzdCA9IFdURk1vdmUoc2VsZWN0b3JzKTsgfQogICAgIHZvaWQgcGFyc2Vy
QWRvcHRTZWxlY3RvckFycmF5KENTU1NlbGVjdG9yKiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxp
c3QuYWRvcHRTZWxlY3RvckFycmF5KHNlbGVjdG9ycyk7IH0KIApAQCAtMTI4LDcgKzEyOCw3IEBA
IHByaXZhdGU6CiAgICAgU3R5bGVSdWxlKGludCBzb3VyY2VMaW5lLCBSZWY8U3R5bGVQcm9wZXJ0
aWVzPiYmKTsKICAgICBTdHlsZVJ1bGUoY29uc3QgU3R5bGVSdWxlJik7CiAKLSAgICBzdGF0aWMg
UmVmPFN0eWxlUnVsZT4gY3JlYXRlKEJ1bXBBcmVuYSosIGludCBzb3VyY2VMaW5lLCBjb25zdCBW
ZWN0b3I8Y29uc3QgQ1NTU2VsZWN0b3IqPiYsIFJlZjxTdHlsZVByb3BlcnRpZXM+JiYpOworICAg
IHN0YXRpYyBSZWY8U3R5bGVSdWxlPiBjcmVhdGUoaW50IHNvdXJjZUxpbmUsIGNvbnN0IFZlY3Rv
cjxjb25zdCBDU1NTZWxlY3Rvcio+JiwgUmVmPFN0eWxlUHJvcGVydGllcz4mJik7CiAKICAgICBS
ZWY8U3R5bGVQcm9wZXJ0aWVzPiBtX3Byb3BlcnRpZXM7CiAgICAgQ1NTU2VsZWN0b3JMaXN0IG1f
c2VsZWN0b3JMaXN0OwpAQCAtMTM2LDcgKzEzNiw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIFN0eWxl
UnVsZUZvbnRGYWNlIDogcHVibGljIFN0eWxlUnVsZUJhc2UgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8U3R5bGVSdWxlRm9udEZhY2U+IGNyZWF0ZShCdW1wQXJlbmEqIGFyZW5hLCBSZWY8U3R5
bGVQcm9wZXJ0aWVzPiYmIHByb3BlcnRpZXMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKGFyZW5h
KSBTdHlsZVJ1bGVGb250RmFjZShXVEZNb3ZlKHByb3BlcnRpZXMpKSk7IH0KKyAgICBzdGF0aWMg
UmVmPFN0eWxlUnVsZUZvbnRGYWNlPiBjcmVhdGUoUmVmPFN0eWxlUHJvcGVydGllcz4mJiBwcm9w
ZXJ0aWVzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZUZvbnRGYWNlKFdURk1vdmUo
cHJvcGVydGllcykpKTsgfQogICAgIAogICAgIH5TdHlsZVJ1bGVGb250RmFjZSgpOwogCkBAIC0x
NTUsNyArMTU1LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgU3R5bGVSdWxlUGFnZSA6IHB1YmxpYyBT
dHlsZVJ1bGVCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFN0eWxlUnVsZVBhZ2U+IGNy
ZWF0ZShCdW1wQXJlbmEqIGFyZW5hLCBSZWY8U3R5bGVQcm9wZXJ0aWVzPiYmIHByb3BlcnRpZXMp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKGFyZW5hKSBTdHlsZVJ1bGVQYWdlKFdURk1vdmUocHJv
cGVydGllcykpKTsgfQorICAgIHN0YXRpYyBSZWY8U3R5bGVSdWxlUGFnZT4gY3JlYXRlKFJlZjxT
dHlsZVByb3BlcnRpZXM+JiYgcHJvcGVydGllcykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHls
ZVJ1bGVQYWdlKFdURk1vdmUocHJvcGVydGllcykpKTsgfQogCiAgICAgflN0eWxlUnVsZVBhZ2Uo
KTsKIApAQCAtMTYzLDcgKzE2Myw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHlsZVByb3BlcnRp
ZXMmIHByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXM7IH0KICAgICBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJiBtdXRhYmxlUHJvcGVydGllcygpOwogCi0gICAgdm9pZCBwYXJz
ZXJBZG9wdFNlbGVjdG9yVmVjdG9yKEJ1bXBBcmVuYSogYXJlbmEsIFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFk
b3B0U2VsZWN0b3JWZWN0b3IoYXJlbmEsIHNlbGVjdG9ycyk7IH0KKyAgICB2b2lkIHBhcnNlckFk
b3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rv
cj4+JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvclZlY3RvcihzZWxl
Y3RvcnMpOyB9CiAgICAgdm9pZCB3cmFwcGVyQWRvcHRTZWxlY3Rvckxpc3QoQ1NTU2VsZWN0b3JM
aXN0JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QgPSBXVEZNb3ZlKHNlbGVjdG9ycyk7IH0K
IAogICAgIFJlZjxTdHlsZVJ1bGVQYWdlPiBjb3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTdHlsZVJ1bGVQYWdlKCp0aGlzKSk7IH0KQEAgLTE5Myw5ICsxOTMsOSBAQCBwcml2YXRl
OgogCiBjbGFzcyBTdHlsZVJ1bGVNZWRpYSA6IHB1YmxpYyBTdHlsZVJ1bGVHcm91cCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxTdHlsZVJ1bGVNZWRpYT4gY3JlYXRlKEJ1bXBBcmVuYSogYXJl
bmEsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVkaWEsIFZlY3RvcjxSZWZQdHI8U3R5bGVS
dWxlQmFzZT4+JiBhZG9wdFJ1bGVzKQorICAgIHN0YXRpYyBSZWY8U3R5bGVSdWxlTWVkaWE+IGNy
ZWF0ZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IG1lZGlhLCBWZWN0b3I8UmVmUHRyPFN0eWxl
UnVsZUJhc2U+PiYgYWRvcHRSdWxlcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IChhcmVuYSkgU3R5bGVSdWxlTWVkaWEobWVkaWEsIGFkb3B0UnVsZXMpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlTWVkaWEobWVkaWEsIGFkb3B0UnVsZXMpKTsK
ICAgICB9CiAKICAgICBNZWRpYVF1ZXJ5U2V0KiBtZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVy
biBtX21lZGlhUXVlcmllcy5nZXQoKTsgfQpAQCAtMjExLDkgKzIxMSw5IEBAIHByaXZhdGU6CiAK
IGNsYXNzIFN0eWxlUnVsZVN1cHBvcnRzIDogcHVibGljIFN0eWxlUnVsZUdyb3VwIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFN0eWxlUnVsZVN1cHBvcnRzPiBjcmVhdGUoQnVtcEFyZW5hKiBh
cmVuYSwgY29uc3QgU3RyaW5nJiBjb25kaXRpb25UZXh0LCBib29sIGNvbmRpdGlvbklzU3VwcG9y
dGVkLCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYgYWRvcHRSdWxlcykKKyAgICBzdGF0
aWMgUmVmPFN0eWxlUnVsZVN1cHBvcnRzPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBjb25kaXRpb25U
ZXh0LCBib29sIGNvbmRpdGlvbklzU3VwcG9ydGVkLCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJh
c2U+PiYgYWRvcHRSdWxlcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IChh
cmVuYSkgU3R5bGVSdWxlU3VwcG9ydHMoY29uZGl0aW9uVGV4dCwgY29uZGl0aW9uSXNTdXBwb3J0
ZWQsIGFkb3B0UnVsZXMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxl
U3VwcG9ydHMoY29uZGl0aW9uVGV4dCwgY29uZGl0aW9uSXNTdXBwb3J0ZWQsIGFkb3B0UnVsZXMp
KTsKICAgICB9CiAKICAgICBTdHJpbmcgY29uZGl0aW9uVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y29uZGl0aW9uVGV4dDsgfQpAQCAtMjMwLDkgKzIzMCw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIFN0
eWxlUnVsZVJlZ2lvbiA6IHB1YmxpYyBTdHlsZVJ1bGVHcm91cCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxTdHlsZVJ1bGVSZWdpb24+IGNyZWF0ZShCdW1wQXJlbmEqIGFyZW5hLCBWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4qIHNlbGVjdG9ycywgVmVjdG9yPFJl
ZlB0cjxTdHlsZVJ1bGVCYXNlPj4mIGFkb3B0UnVsZXMpCisgICAgc3RhdGljIFJlZjxTdHlsZVJ1
bGVSZWdpb24+IGNyZWF0ZShWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9y
Pj4qIHNlbGVjdG9ycywgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mIGFkb3B0UnVsZXMp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyAoYXJlbmEpIFN0eWxlUnVsZVJl
Z2lvbihzZWxlY3RvcnMsIGFkb3B0UnVsZXMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3R5bGVSdWxlUmVnaW9uKHNlbGVjdG9ycywgYWRvcHRSdWxlcykpOwogICAgIH0KIAogICAg
IGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9z
ZWxlY3Rvckxpc3Q7IH0KQEAgLTI0OSw3ICsyNDksNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShD
U1NfREVWSUNFX0FEQVBUQVRJT04pCiBjbGFzcyBTdHlsZVJ1bGVWaWV3cG9ydCA6IHB1YmxpYyBT
dHlsZVJ1bGVCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFN0eWxlUnVsZVZpZXdwb3J0
PiBjcmVhdGUoQnVtcEFyZW5hKiBhcmVuYSwgUmVmPFN0eWxlUHJvcGVydGllcz4mJiBwcm9wZXJ0
aWVzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IChhcmVuYSkgU3R5bGVSdWxlVmlld3BvcnQoV1RG
TW92ZShwcm9wZXJ0aWVzKSkpOyB9CisgICAgc3RhdGljIFJlZjxTdHlsZVJ1bGVWaWV3cG9ydD4g
Y3JlYXRlKFJlZjxTdHlsZVByb3BlcnRpZXM+JiYgcHJvcGVydGllcykgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTdHlsZVJ1bGVWaWV3cG9ydChXVEZNb3ZlKHByb3BlcnRpZXMpKSk7IH0KIAogICAg
IH5TdHlsZVJ1bGVWaWV3cG9ydCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVTaGVldENvbnRlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29u
dGVudHMuY3BwCmluZGV4IGU1NGU5MWE1NjIzNmNlOTllMjcwN2Q1NzE1OWQxZjM4M2JhMTE0YTAu
LjNlMzAxNDk5YjVmMjQwOTRhYzBhZTdmZTAxMTc5YjNlNTY2Y2QxNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCkBAIC03MSw3ICs3MSw2IEBAIFN0eWxlU2hl
ZXRDb250ZW50czo6U3R5bGVTaGVldENvbnRlbnRzKFN0eWxlUnVsZUltcG9ydCogb3duZXJSdWxl
LCBjb25zdCBTdHJpbmcmCiAgICAgLCBtX2lzTXV0YWJsZShmYWxzZSkKICAgICAsIG1faXNJbk1l
bW9yeUNhY2hlKGZhbHNlKQogICAgICwgbV9wYXJzZXJDb250ZXh0KGNvbnRleHQpCi0gICAgLCBt
X2FyZW5hKEJ1bXBBcmVuYTo6Y3JlYXRlKCkpCiB7CiB9CiAKQEAgLTkyLDcgKzkxLDYgQEAgU3R5
bGVTaGVldENvbnRlbnRzOjpTdHlsZVNoZWV0Q29udGVudHMoY29uc3QgU3R5bGVTaGVldENvbnRl
bnRzJiBvKQogICAgICwgbV9pc011dGFibGUoZmFsc2UpCiAgICAgLCBtX2lzSW5NZW1vcnlDYWNo
ZShmYWxzZSkKICAgICAsIG1fcGFyc2VyQ29udGV4dChvLm1fcGFyc2VyQ29udGV4dCkKLSAgICAs
IG1fYXJlbmEoQnVtcEFyZW5hOjpjcmVhdGUoKSkKIHsKICAgICBBU1NFUlQoby5pc0NhY2hlYWJs
ZSgpKTsKIApAQCAtMzE1LDcgKzMxMyw2IEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJz
ZUF1dGhvclN0eWxlU2hlZXQoY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogY2FjaGVkCiAgICAg
fQogCiAgICAgQ1NTUGFyc2VyIHAocGFyc2VyQ29udGV4dCgpKTsKLSAgICBwLnNldEFyZW5hKG1f
YXJlbmEuZ2V0KCkpOwogICAgIHAucGFyc2VTaGVldCh0aGlzLCBzaGVldFRleHQsIFRleHRQb3Np
dGlvbigpLCBudWxscHRyLCB0cnVlKTsKIAogICAgIGlmIChtX3BhcnNlckNvbnRleHQubmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MgJiYgaXNTdHJpY3RQYXJzZXJNb2RlKG1fcGFyc2VyQ29udGV4dC5t
b2RlKSkgewpAQCAtMzM3LDcgKzMzNCw2IEBAIGJvb2wgU3R5bGVTaGVldENvbnRlbnRzOjpwYXJz
ZVN0cmluZyhjb25zdCBTdHJpbmcmIHNoZWV0VGV4dCkKIGJvb2wgU3R5bGVTaGVldENvbnRlbnRz
OjpwYXJzZVN0cmluZ0F0UG9zaXRpb24oY29uc3QgU3RyaW5nJiBzaGVldFRleHQsIGNvbnN0IFRl
eHRQb3NpdGlvbiYgdGV4dFBvc2l0aW9uLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBD
U1NQYXJzZXIgcChwYXJzZXJDb250ZXh0KCkpOwotICAgIHAuc2V0QXJlbmEobV9hcmVuYS5nZXQo
KSk7CiAgICAgcC5wYXJzZVNoZWV0KHRoaXMsIHNoZWV0VGV4dCwgdGV4dFBvc2l0aW9uLCBudWxs
cHRyLCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCmluZGV4IDY4MzE3ZGI4MGQxYjY4MzJhZjUyYjdhNDU1
Nzg4Yzg1MDg0ZjlmMmQuLmYyNTY2MjE3MjFlZTI0MDdkOWJjYTNiYzEwNWVhNWEzZmE0ZmQ5YWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKQEAgLTI0LDcgKzI0LDYg
QEAKICNpbmNsdWRlICJDU1NQYXJzZXJNb2RlLmgiCiAjaW5jbHVkZSAiQ2FjaGVQb2xpY3kuaCIK
ICNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRlIDx3dGYvQnVtcEFyZW5hLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgpAQCAtMTc0LDggKzE3Myw2IEBAIHByaXZhdGU6CiAgICAgQ1NTUGFy
c2VyQ29udGV4dCBtX3BhcnNlckNvbnRleHQ7CiAKICAgICBWZWN0b3I8Q1NTU3R5bGVTaGVldCo+
IG1fY2xpZW50czsKLQotICAgIFJlZjxCdW1wQXJlbmE+IG1fYXJlbmE7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCmluZGV4IDViYzk1NjY5Mjk1
OWY4NjE3NjcwYmI4ZWQ2NTA4NTc4ZTYyNzU1MmUuLjU0NzRmMmJkNmIwMzFmNzBiNzEzM2Y0NDk3
OGJhOWI1OWNiMTBjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1
ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKQEAgLTYw
OSwxMSArNjA5LDYgQEAgU2VsZWN0b3JRdWVyeTo6U2VsZWN0b3JRdWVyeShDU1NTZWxlY3Rvckxp
c3QmJiBzZWxlY3Rvckxpc3QpCiB7CiB9CiAKLVNlbGVjdG9yUXVlcnlDYWNoZTo6U2VsZWN0b3JR
dWVyeUNhY2hlKCkKLSAgICA6IG1fYXJlbmEoQnVtcEFyZW5hOjpjcmVhdGUoKSkKLXsKLX0KLQog
U2VsZWN0b3JRdWVyeSogU2VsZWN0b3JRdWVyeUNhY2hlOjphZGQoY29uc3QgU3RyaW5nJiBzZWxl
Y3RvcnMsIERvY3VtZW50JiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgYXV0
byBpdCA9IG1fZW50cmllcy5maW5kKHNlbGVjdG9ycyk7CkBAIC02MjEsNyArNjE2LDYgQEAgU2Vs
ZWN0b3JRdWVyeSogU2VsZWN0b3JRdWVyeUNhY2hlOjphZGQoY29uc3QgU3RyaW5nJiBzZWxlY3Rv
cnMsIERvY3VtZW50JiBkb2N1bWUKICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZS5nZXQoKTsKIAog
ICAgIENTU1BhcnNlciBwYXJzZXIoZG9jdW1lbnQpOwotICAgIHBhcnNlci5zZXRBcmVuYShtX2Fy
ZW5hLmdldCgpKTsKICAgICBDU1NTZWxlY3Rvckxpc3Qgc2VsZWN0b3JMaXN0OwogICAgIHBhcnNl
ci5wYXJzZVNlbGVjdG9yKHNlbGVjdG9ycywgc2VsZWN0b3JMaXN0KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RvclF1ZXJ5LmgKaW5kZXggYTU2NWRhNzczOWY4NzAyYmJmYjAyYjg3Njk3ZmY2Y2E1ODhh
ZTE0ZS4uNThhYjY3MDEwYzVhODY5NTRiMGM0MWNlNjZhYTc1YjI5NTIyMzg2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VsZWN0b3JRdWVyeS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQ1NTU2Vs
ZWN0b3JMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJTZWxlY3RvckNv
bXBpbGVyLmgiCi0jaW5jbHVkZSA8d3RmL0J1bXBBcmVuYS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21p
Y1N0cmluZ0hhc2guaD4KQEAgLTEzMywxMiArMTMyLDEwIEBAIGNsYXNzIFNlbGVjdG9yUXVlcnlD
YWNoZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKIHB1YmxpYzoKLSAgICBTZWxl
Y3RvclF1ZXJ5Q2FjaGUoKTsKICAgICBTZWxlY3RvclF1ZXJ5KiBhZGQoY29uc3QgU3RyaW5nJiwg
RG9jdW1lbnQmLCBFeGNlcHRpb25Db2RlJik7CiAKIHByaXZhdGU6CiAgICAgSGFzaE1hcDxTdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxTZWxlY3RvclF1ZXJ5Pj4gbV9lbnRyaWVzOwotICAgIFJlZjxC
dW1wQXJlbmE+IG1fYXJlbmE7CiB9OwogCiBpbmxpbmUgYm9vbCBTZWxlY3RvclF1ZXJ5OjptYXRj
aGVzKEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZUVsZW1lbnQuY3BwCmluZGV4IDNmZThkMzI1NTJlNzcwNjRlOGVlZjY0ZDliNDFjYWQ3OWIzNWNj
ZGQuLmEyNTc5NzIxYjFlNGU2OTlhYTVlM2MwZDJiNGM3OTQ5YjJhOWM4N2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBTVkdOYW1lczsKIAogaW5saW5lIFNWR0ZvbnRGYWNlRWxlbWVudDo6U1ZHRm9u
dEZhY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX2ZvbnRG
YWNlUnVsZShTdHlsZVJ1bGVGb250RmFjZTo6Y3JlYXRlKG51bGxwdHIsIE11dGFibGVTdHlsZVBy
b3BlcnRpZXM6OmNyZWF0ZShDU1NTdHJpY3RNb2RlKSkpCisgICAgLCBtX2ZvbnRGYWNlUnVsZShT
dHlsZVJ1bGVGb250RmFjZTo6Y3JlYXRlKE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZShD
U1NTdHJpY3RNb2RlKSkpCiAgICAgLCBtX2ZvbnRFbGVtZW50KG51bGxwdHIpCiB7CiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUoZm9udF9mYWNlVGFnKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>