<?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>97422</bug_id>
          
          <creation_ts>2012-09-23 19:45:42 -0700</creation_ts>
          <short_desc>Add support for query encoding to WTFURL</short_desc>
          <delta_ts>2012-09-24 14:32:18 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>97405</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>726342</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-23 19:45:42 -0700</bug_when>
    <thetext>More passing tests :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726354</commentid>
    <comment_count>1</comment_count>
      <attachid>165305</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-23 20:24:05 -0700</bug_when>
    <thetext>Created attachment 165305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726376</commentid>
    <comment_count>2</comment_count>
      <attachid>165305</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-23 21:38:11 -0700</bug_when>
    <thetext>Comment on attachment 165305
Patch

I don&apos;t have a complete understanding of how we should structure the API.  Having URLBuffer in the API doesn&apos;t seem ideal...  We&apos;ll need to look at the whole thing to figure that sort of stuff out though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727010</commentid>
    <comment_count>3</comment_count>
      <attachid>165305</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-24 14:32:16 -0700</bug_when>
    <thetext>Comment on attachment 165305
Patch

Clearing flags on attachment: 165305

Committed r129413: &lt;http://trac.webkit.org/changeset/129413&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727011</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-24 14:32:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165305</attachid>
            <date>2012-09-23 20:24:05 -0700</date>
            <delta_ts>2012-09-24 14:32:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97422-20120923202326.patch</filename>
            <type>text/plain</type>
            <size>61853</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxNTNkNTQ4NDRlNTMxOWE3YjY4Njhm
N2I1OWRkZTM3MjhhNDA5MzkuLjBjNjZmMDZmOTk1M2I5NzRkOThkYzRhZDEzNzYzODQ3OGY0MzYx
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTItMDktMjMgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBxdWVyeSBlbmNv
ZGluZyB0byBXVEZVUkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk3NDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRXhwb3NlIGNoYXJhY3RlciBjb252ZXJzaW9uIHRocm91Z2ggdGhlIG5ldyBhYnN0cmFj
dCBjbGFzcyBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIuCisgICAgICAgIFVSTFF1ZXJ5Q2hhcnNl
dENvbnZlcnRlciBpcyBpbXBsZW1lbnRlZCBieSBXZWJDb3JlIHRvIGV4cG9zZSB0aGUgVGV4dEVu
Y29kaW5nIGNsYXNzZXMuCisKKyAgICAgICAgVW5mb3J0dW5hdGVsbHkgdGhhdCBmb3JjZXMgdXMg
dG8gYnJpbmcgb3ZlciBVUkxCdWZmZXIgaW4gdGhlIHB1YmxpYyBBUEkuIFdlIG1heSBiZSBhYmxl
CisgICAgICAgIHRvIG1pdGlnYXRlIHRoYXQgbGF0ZXIgd2hlbiBtb3ZpbmcgV1RGVVJMIHRvIG1v
cmUgdGVtcGxhdGVzLgorCisgICAgICAgIFRoZSBjaGFuZ2UgZml4ZXMgMiBvZiB0aGUgVVJMIGxh
eW91dCB0ZXN0cy4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHd0Zi91cmwvYXBpL1BhcnNlZFVSTC5jcHA6CisgICAgICAgIChXVEY6OlBhcnNl
ZFVSTDo6UGFyc2VkVVJMKToKKyAgICAgICAgKiB3dGYvdXJsL2FwaS9QYXJzZWRVUkwuaDoKKyAg
ICAgICAgKFBhcnNlZFVSTCk6CisgICAgICAgIFBhcnNlZFVSTCB3YXMgdXNpbmcgdGhlIHNhbWUg
Y29uc3RydWN0b3IgZm9yIFBhcnNlZFVSTFN0cmluZywgYW5kIFVSTCB3aXRob3V0IGEgYmFzZS4K
KyAgICAgICAgVGhhdCB3YXMgYSBtaXN0YWtlIG9uIG15IHBhcnQsIEkgZGlkIG5vdCBpbnRlbmQg
dGhhdCwgZml4ZWQgaXQgbm93IDopCisKKyAgICAgICAgKiB3dGYvdXJsL2FwaS9VUkxCdWZmZXIu
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMQnVmZmVyLmguCisgICAg
ICAgIChVUkxCdWZmZXIpOgorICAgICAgICAoV1RGOjpVUkxCdWZmZXI6OlVSTEJ1ZmZlcik6Cisg
ICAgICAgIChXVEY6OlVSTEJ1ZmZlcjo6flVSTEJ1ZmZlcik6CisgICAgICAgIChXVEY6OlVSTEJ1
ZmZlcjo6YXQpOgorICAgICAgICAoV1RGOjpVUkxCdWZmZXI6OnNldCk6CisgICAgICAgIChXVEY6
OlVSTEJ1ZmZlcjo6Y2FwYWNpdHkpOgorICAgICAgICAoV1RGOjpVUkxCdWZmZXI6Omxlbmd0aCk6
CisgICAgICAgIChXVEY6OlVSTEJ1ZmZlcjo6ZGF0YSk6CisgICAgICAgIChXVEY6OlVSTEJ1ZmZl
cjo6c2V0TGVuZ3RoKToKKyAgICAgICAgKFdURjo6VVJMQnVmZmVyOjphcHBlbmQpOgorICAgICAg
ICAoV1RGOjpVUkxCdWZmZXI6Omdyb3cpOgorICAgICAgICAqIHd0Zi91cmwvYXBpL1VSTFF1ZXJ5
Q2hhcnNldENvbnZlcnRlci5oOiBBZGRlZC4KKyAgICAgICAgKFVSTFF1ZXJ5Q2hhcnNldENvbnZl
cnRlcik6CisgICAgICAgIChXVEY6OlVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlcjo6VVJMUXVlcnlD
aGFyc2V0Q29udmVydGVyKToKKyAgICAgICAgKFdURjo6VVJMUXVlcnlDaGFyc2V0Q29udmVydGVy
Ojp+VVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKToKKyAgICAgICAgKiB3dGYvdXJsL3NyYy9VUkxD
YW5vbi5oOgorICAgICAgICAoVVJMQ2Fub25pY2FsaXplcik6CisgICAgICAgICogd3RmL3VybC9z
cmMvVVJMQ2Fub25GaWxlc3lzdGVtdXJsLmNwcDoKKyAgICAgICAgKFdURjo6VVJMQ2Fub25pY2Fs
aXplcjo6Y2Fub25pY2FsaXplRmlsZVN5c3RlbVVSTCk6CisgICAgICAgIChXVEY6OlVSTENhbm9u
aWNhbGl6ZXI6OlJlcGxhY2VGaWxlU3lzdGVtVVJMKToKKyAgICAgICAgKiB3dGYvdXJsL3NyYy9V
UkxDYW5vbkZpbGV1cmwuY3BwOgorICAgICAgICAoV1RGOjpVUkxDYW5vbmljYWxpemVyOjpDYW5v
bmljYWxpemVGaWxlVVJMKToKKyAgICAgICAgKFdURjo6VVJMQ2Fub25pY2FsaXplcjo6UmVwbGFj
ZUZpbGVVUkwpOgorICAgICAgICAqIHd0Zi91cmwvc3JjL1VSTENhbm9uSW50ZXJuYWwuaDoKKyAg
ICAgICAgKFVSTENhbm9uaWNhbGl6ZXIpOgorICAgICAgICAqIHd0Zi91cmwvc3JjL1VSTENhbm9u
UXVlcnkuY3BwOgorICAgICAgICAoV1RGOjpVUkxDYW5vbmljYWxpemVyOjpDYW5vbmljYWxpemVR
dWVyeSk6CisgICAgICAgIChXVEY6OlVSTENhbm9uaWNhbGl6ZXI6OkNvbnZlcnRVVEYxNlRvUXVl
cnlFbmNvZGluZyk6CisgICAgICAgICogd3RmL3VybC9zcmMvVVJMQ2Fub25SZWxhdGl2ZS5jcHA6
CisgICAgICAgIChXVEY6OlVSTENhbm9uaWNhbGl6ZXI6OnJlc29sdmVSZWxhdGl2ZVVSTCk6Cisg
ICAgICAgICogd3RmL3VybC9zcmMvVVJMQ2Fub25TdGRVUkwuY3BwOgorICAgICAgICAoV1RGOjpV
UkxDYW5vbmljYWxpemVyOjpDYW5vbmljYWxpemVTdGFuZGFyZFVSTCk6CisgICAgICAgIChXVEY6
OlVSTENhbm9uaWNhbGl6ZXI6OlJlcGxhY2VTdGFuZGFyZFVSTCk6CisgICAgICAgICogd3RmL3Vy
bC9zcmMvVVJMVXRpbC5jcHA6CisgICAgICAgIChVUkxVdGlsaXRpZXMpOgorICAgICAgICAoV1RG
OjpVUkxVdGlsaXRpZXM6OmNhbm9uaWNhbGl6ZSk6CisgICAgICAgIChXVEY6OlVSTFV0aWxpdGll
czo6cmVzb2x2ZVJlbGF0aXZlKToKKyAgICAgICAgKFdURjo6VVJMVXRpbGl0aWVzOjpSZXBsYWNl
Q29tcG9uZW50cyk6CisgICAgICAgICogd3RmL3VybC9zcmMvVVJMVXRpbC5oOgorICAgICAgICAo
VVJMVXRpbGl0aWVzKToKKwogMjAxMi0wOS0yMiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWlu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW50ZWdyYXRlIG1vc3Qgb2YgR29vZ2xlVVJMIGluIFdU
RlVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGZlZmFjODkzZGE5MmMzMmNiMTgyMzM5ZTc2YTc4MzQzOTYwMGY4
NGIuLjI5Y2U3MjFjMGNiYjdkOGJiZDIxNGYzNGY3Mzk5MjZiZDY2OTUyYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxMi0wOS0yMyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWlu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHF1ZXJ5IGVuY29kaW5nIHRv
IFdURlVSTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc0MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgdGhlIENoYXJzZXQgY29udmVyc2lvbiBvbiBXZWJDb3JlIHNpZGUuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9LVVJMV1RGVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OktVUkwpOgor
ICAgICAgICAoQ2hhcnNldENvbnZlcnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDaGFyc2V0Q29u
dmVydGVyOjpDaGFyc2V0Q29udmVydGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS1VSTE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OktVUkwpOgorCiAyMDEyLTA5LTIyICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBJbnRlZ3JhdGUg
bW9zdCBvZiBHb29nbGVVUkwgaW4gV1RGVVJMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA4MmY3MjFjMjA4MTg5YWJiMWZhNTg5OWE2ZWU0ZTJhZjNmMDFlZGIx
Li4yZDI3Yjc0ZTYxODc0ZTkwY2RiNmVjOWUwZTNkNGJlOWJhZjQwYzI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyLDYgKzEyLDcgQEAKIAkJMTQzRjYx
MjAxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0M0Y2MTFFMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXpl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRG
M0IwRjcxNUU0NUU0NjAwMjEwMDY5IC8qIFNhdHVyYXRlZEFyaXRobWV0aWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0RjNCMEY2MTVFNDVFNDYwMDIx
MDA2OSAvKiBTYXR1cmF0ZWRBcml0aG1ldGljLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjYxNDdCMEExNUREQ0NEQzAwRERCOTA3IC8qIEludGVn
ZXJUb1N0cmluZ0NvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdD
b252ZXJzaW9uLmggKi87IH07CisJCTI2NjExMjJFMTYwRkVBRDQwMDEzRjVDMyAvKiBVUkxRdWVy
eUNoYXJzZXRDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDI2NjExMjJEMTYwRkVBRDQwMDEzRjVDMyAvKiBVUkxRdWVyeUNoYXJzZXRDb252
ZXJ0ZXIuaCAqLzsgfTsKIAkJMjZFNkMxRUUxNjA5MDM3MzAwQ0E2QUY0IC8qIFVSTENhbm9uRXRj
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RTZD
MUNFMTYwOTAzNzMwMENBNkFGNCAvKiBVUkxDYW5vbkV0Yy5jcHAgKi87IH07CiAJCTI2RTZDMUVG
MTYwOTAzNzMwMENBNkFGNCAvKiBVUkxDYW5vbkZpbGVzeXN0ZW11cmwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZFNkMxQ0YxNjA5MDM3MzAwQ0E2
QUY0IC8qIFVSTENhbm9uRmlsZXN5c3RlbXVybC5jcHAgKi87IH07CiAJCTI2RTZDMUYwMTYwOTAz
NzMwMENBNkFGNCAvKiBVUkxDYW5vbkZpbGV1cmwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZFNkMxRDAxNjA5MDM3MzAwQ0E2QUY0IC8qIFVSTENh
bm9uRmlsZXVybC5jcHAgKi87IH07CkBAIC0yNzksNiArMjgwLDcgQEAKIAkJMTQzRjYxMUUxNTY1
RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUkFNU2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEYzQjBGNjE1RTQ1
RTQ2MDAyMTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTYXR1cmF0ZWRBcml0aG1ldGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252
ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGVnZXJUb1N0cmlu
Z0NvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjY2MTEyMkQxNjBG
RUFENDAwMTNGNUMzIC8qIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZFNkMxQ0UxNjA5MDM3MzAwQ0E2QUY0IC8qIFVSTENhbm9u
RXRjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTENhbm9uRXRj
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZFNkMxQ0YxNjA5MDM3MzAwQ0E2
QUY0IC8qIFVSTENhbm9uRmlsZXN5c3RlbXVybC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBVUkxDYW5vbkZpbGVzeXN0ZW11cmwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNkU2QzFEMDE2MDkwMzczMDBDQTZBRjQgLyogVVJMQ2Fub25GaWxldXJs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTENhbm9uRmlsZXVy
bC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MDAsNiArOTAyLDggQEAKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCUE4QTQ3MzYwMTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJzZWRVUkwu
Y3BwICovLAogCQkJCUE4QTQ3MzYxMTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJzZWRVUkwuaCAqLywK
KwkJCQlBOEE0NzM2NTE1MUE4MjVCMDA0MTIzRkYgLyogVVJMQnVmZmVyLmggKi8sCisJCQkJMjY2
MTEyMkQxNjBGRUFENDAwMTNGNUMzIC8qIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlci5oICovLAog
CQkJCTQzMzBGMzhFMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcuY3BwICovLAogCQkJCUE4
QTQ3MzYyMTUxQTgyNUIwMDQxMjNGRiAvKiBVUkxTdHJpbmcuaCAqLywKIAkJCSk7CkBAIC05MTAs
NyArOTE0LDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQThB
NDczNjQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhd1VSTEJ1ZmZlci5oICovLAotCQkJCUE4QTQ3MzY1
MTUxQTgyNUIwMDQxMjNGRiAvKiBVUkxCdWZmZXIuaCAqLywKIAkJCQkyNkU2QzFFMTE2MDkwMzcz
MDBDQTZBRjQgLyogVVJMQ2Fub24uaCAqLywKIAkJCQkyNkU2QzFDRTE2MDkwMzczMDBDQTZBRjQg
LyogVVJMQ2Fub25FdGMuY3BwICovLAogCQkJCTI2RTZDMUNGMTYwOTAzNzMwMENBNkFGNCAvKiBV
UkxDYW5vbkZpbGVzeXN0ZW11cmwuY3BwICovLApAQCAtMTEzNSw2ICsxMTM4LDcgQEAKIAkJCQky
NkU2QzIwMzE2MDkwMzczMDBDQTZBRjQgLyogVVJMRmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MjZFNkMyMDUxNjA5MDM3MzAwQ0E2QUY0IC8qIFVSTFBhcnNlSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI2RTZDMjA4MTYwOTAzNzMwMENBNkFGNCAvKiBVUkxQYXJzZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMjY2MTEyMkUxNjBGRUFENDAwMTNGNUMzIC8qIFVSTFF1ZXJ5Q2hhcnNldENv
bnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFNkMyMEExNjA5MDM3MzAwQ0E2QUY0IC8q
IFVSTFV0aWxJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFNkMyMEQxNjA5MDM3MzAw
Q0E2QUY0IC8qIFVSTFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3VybC9hcGkvUGFyc2VkVVJMLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VybC9h
cGkvUGFyc2VkVVJMLmNwcAppbmRleCA1MDQ2MzE5NjIxNGI0ODI4MmFkMjE5NDdlZDNiNjJlZTZh
N2M1MTg2Li5jNzAwZGQ1OWI3OTdjZGI3MGNiMDI4Y2IwZjViNzAzNmI4NDMxODlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi91cmwvYXBpL1BhcnNlZFVSTC5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvdXJsL2FwaS9QYXJzZWRVUkwuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAKIG5hbWVzcGFj
ZSBXVEYgewogCi1QYXJzZWRVUkw6OlBhcnNlZFVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykK
K1BhcnNlZFVSTDo6UGFyc2VkVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBQYXJzZWRVUkxT
dHJpbmdUYWcpCiB7CiAgICAgdW5zaWduZWQgdXJsU3RyaW5nTGVuZ3RoID0gdXJsU3RyaW5nLmxl
bmd0aCgpOwogICAgIGlmICghdXJsU3RyaW5nTGVuZ3RoKQpAQCAtNjcsNyArNjcsMzUgQEAgUGFy
c2VkVVJMOjpQYXJzZWRVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgICAgIG1fc3Bl
YyA9IFVSTFN0cmluZyhTdHJpbmcob3V0cHV0QnVmZmVyLmRhdGEoKSwgb3V0cHV0QnVmZmVyLmxl
bmd0aCgpKSk7CiB9CiAKLVBhcnNlZFVSTDo6UGFyc2VkVVJMKGNvbnN0IFBhcnNlZFVSTCYgYmFz
ZSwgY29uc3QgU3RyaW5nJiByZWxhdGl2ZSkKK1BhcnNlZFVSTDo6UGFyc2VkVVJMKGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nLCBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q2hhcnNldENv
bnZlcnRlcikKK3sKKyAgICB1bnNpZ25lZCB1cmxTdHJpbmdMZW5ndGggPSB1cmxTdHJpbmcubGVu
Z3RoKCk7CisgICAgaWYgKCF1cmxTdHJpbmdMZW5ndGgpCisgICAgICAgIHJldHVybjsKKworICAg
IFJhd1VSTEJ1ZmZlcjxjaGFyPiBvdXRwdXRCdWZmZXI7CisgICAgU3RyaW5nIGJhc2U7CisgICAg
Y29uc3QgQ1N0cmluZyYgYmFzZVN0ciA9IGJhc2UudXRmOCgpOworICAgIGJvb2wgaXNWYWxpZCA9
IGZhbHNlOworICAgIFVSTFNlZ21lbnRzIGJhc2VTZWdtZW50czsKKworICAgIC8vIEZJWE1FOiB3
ZSBzaG91bGQgdGFrZSBzaG9ydGN1dHMgaGVyZSEgV2UgZG8gbm90IGhhdmUgdG8gcmVzb2x2ZSB0
aGUgcmVsYXRpdmUgcGFydC4KKyAgICBpZiAodXJsU3RyaW5nLmlzOEJpdCgpKQorICAgICAgICBp
c1ZhbGlkID0gVVJMVXRpbGl0aWVzOjpyZXNvbHZlUmVsYXRpdmUoYmFzZVN0ci5kYXRhKCksIGJh
c2VTZWdtZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHVybFN0cmluZy5jaGFyYWN0ZXJzOCgp
KSwgdXJsU3RyaW5nTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcXVlcnlDaGFyc2V0Q29udmVydGVyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0QnVmZmVyLCAmbV9zZWdtZW50cyk7Cisg
ICAgZWxzZQorICAgICAgICBpc1ZhbGlkID0gVVJMVXRpbGl0aWVzOjpyZXNvbHZlUmVsYXRpdmUo
YmFzZVN0ci5kYXRhKCksIGJhc2VTZWdtZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVybFN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgdXJsU3RyaW5n
TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cXVlcnlDaGFyc2V0Q29udmVydGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0QnVmZmVyLCAmbV9zZWdtZW50cyk7CisKKyAgICBpZiAoaXNW
YWxpZCkKKyAgICAgICAgbV9zcGVjID0gVVJMU3RyaW5nKFN0cmluZyhvdXRwdXRCdWZmZXIuZGF0
YSgpLCBvdXRwdXRCdWZmZXIubGVuZ3RoKCkpKTsKK30KKworUGFyc2VkVVJMOjpQYXJzZWRVUkwo
Y29uc3QgUGFyc2VkVVJMJiBiYXNlLCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlLCBVUkxRdWVyeUNo
YXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q2hhcnNldENvbnZlcnRlcikKIHsKICAgICBpZiAoIWJhc2Uu
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CkBAIC04NSwxMiArMTEzLDEyIEBAIFBhcnNlZFVS
TDo6UGFyc2VkVVJMKGNvbnN0IFBhcnNlZFVSTCYgYmFzZSwgY29uc3QgU3RyaW5nJiByZWxhdGl2
ZSkKICAgICBpZiAocmVsYXRpdmUuaXM4Qml0KCkpCiAgICAgICAgIGlzVmFsaWQgPSBVUkxVdGls
aXRpZXM6OnJlc29sdmVSZWxhdGl2ZShiYXNlU3RyLmRhdGEoKSwgYmFzZS5tX3NlZ21lbnRzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4ocmVsYXRpdmUuY2hhcmFjdGVyczgoKSksIHJlbGF0aXZlTGVu
Z3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
Y2hhcnNldENvbnZlcnRlciAqLyAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcXVlcnlDaGFyc2V0Q29udmVydGVyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0QnVmZmVyLCAmbV9zZWdtZW50cyk7
CiAgICAgZWxzZQogICAgICAgICBpc1ZhbGlkID0gVVJMVXRpbGl0aWVzOjpyZXNvbHZlUmVsYXRp
dmUoYmFzZVN0ci5kYXRhKCksIGJhc2UubV9zZWdtZW50cywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlLmNoYXJhY3RlcnMxNigpLCByZWxh
dGl2ZUxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qIGNoYXJzZXRDb252ZXJ0ZXIgKi8gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5Q2hhcnNldENvbnZlcnRlciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dEJ1ZmZlciwgJm1fc2Vn
bWVudHMpOwogCiAgICAgaWYgKGlzVmFsaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
cmwvYXBpL1BhcnNlZFVSTC5oIGIvU291cmNlL1dURi93dGYvdXJsL2FwaS9QYXJzZWRVUkwuaApp
bmRleCAwMTRlMjkzNjdhODAyY2QwODI1Y2JiNmY2ZjdlNzIxMDM5M2VjYjA3Li43OWE3MmRkMmRl
Mzk4OGZkNTdlZmM5Mzk2ZDk4NjI0NGQ4YjUyZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi91cmwvYXBpL1BhcnNlZFVSTC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VybC9hcGkvUGFyc2Vk
VVJMLmgKQEAgLTM1LDEzICszNSwxOCBAQAogbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNzIFVSTENv
bXBvbmVudDsKK2NsYXNzIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlcjsKIAogLy8gUGFyc2VkVVJM
IHJlcHJlc2VudHMgYSB2YWxpZCBVUkwgZGVjb21wb3NlZCBieSBjb21wb25lbnRzLgogY2xhc3Mg
UGFyc2VkVVJMIHsKIHB1YmxpYzoKKyAgICBlbnVtIFBhcnNlZFVSTFN0cmluZ1RhZyB7IFBhcnNl
ZFVSTFN0cmluZyB9OworCiAgICAgUGFyc2VkVVJMKCkgeyB9OwotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBleHBsaWNpdCBQYXJzZWRVUkwoY29uc3QgU3RyaW5nJik7Ci0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIGV4cGxpY2l0IFBhcnNlZFVSTChjb25zdCBQYXJzZWRVUkwmIGJhc2UsIGNvbnN0IFN0
cmluZyYgcmVsYXRpdmUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBQYXJzZWRV
UkwoY29uc3QgU3RyaW5nJiwgUGFyc2VkVVJMU3RyaW5nVGFnKTsKKworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBleHBsaWNpdCBQYXJzZWRVUkwoY29uc3QgU3RyaW5nJiwgVVJMUXVlcnlDaGFyc2V0
Q29udmVydGVyKik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFBhcnNlZFVSTChj
b25zdCBQYXJzZWRVUkwmIGJhc2UsIGNvbnN0IFN0cmluZyYgcmVsYXRpdmUsIFVSTFF1ZXJ5Q2hh
cnNldENvbnZlcnRlciopOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFBhcnNlZFVSTCBpc29s
YXRlZENvcHkoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdXJsL2FwaS9V
UkxCdWZmZXIuaCBiL1NvdXJjZS9XVEYvd3RmL3VybC9hcGkvVVJMQnVmZmVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmVjY2QwNGZhNWNmZjMyNjY3ZGUwNWMyNzA0N2Y4OWNjYTJmNmE3YgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VybC9hcGkvVVJMQnVmZmVyLmgKQEAgLTAsMCArMSwxNDIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgVVJMQnVmZmVyX2gKKyNkZWZpbmUgVVJMQnVmZmVyX2gKKworI2lmIFVTRShXVEZVUkwp
CisKK25hbWVzcGFjZSBXVEYgeworCisvLyBCYXNlIGNsYXNzIGZvciB0aGUgY2Fub25pY2FsaXpl
ciBvdXRwdXQsIHRoaXMgbWFpbnRhaW5zIGEgYnVmZmVyIGFuZAorLy8gc3VwcG9ydHMgc2ltcGxl
IHJlc2l6aW5nIGFuZCBhcHBlbmQgb3BlcmF0aW9ucyBvbiBpdC4KKy8vCisvLyBJdCBpcyBWRVJZ
IElNUE9SVEFOVCB0aGF0IG5vIHZpcnR1YWwgZnVuY3Rpb24gY2FsbHMgYmUgbWFkZSBvbiB0aGUg
Y29tbW9uCisvLyBjb2RlIHBhdGguIFdlIG9ubHkgaGF2ZSB0d28gdmlydHVhbCBmdW5jdGlvbiBj
YWxscywgdGhlIGRlc3RydWN0b3IgYW5kIGEKKy8vIHJlc2l6ZSBmdW5jdGlvbiB0aGF0IGlzIGNh
bGxlZCB3aGVuIHRoZSBleGlzdGluZyBidWZmZXIgaXMgbm90IGJpZyBlbm91Z2guCisvLyBUaGUg
ZGVyaXZlZCBjbGFzcyBpcyB0aGVuIGluIGNoYXJnZSBvZiBzZXR0aW5nIHVwIG91ciBidWZmZXIg
d2hpY2ggd2Ugd2lsbAorLy8gbWFuYWdlLgordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZT4KK2NsYXNzIFVSTEJ1ZmZlciB7CitwdWJsaWM6CisgICAgVVJMQnVmZmVyKCkgOiBtX2J1ZmZl
cigwKSwgbV9jYXBhY2l0eSgwKSwgbV9sZW5ndGgoMCkgeyB9CisgICAgdmlydHVhbCB+VVJMQnVm
ZmVyKCkgeyB9CisKKyAgICAvLyBJbXBsZW1lbnRlZCB0byByZXNpemUgdGhlIGJ1ZmZlci4gVGhp
cyBmdW5jdGlvbiBzaG91bGQgdXBkYXRlIHRoZSBidWZmZXIKKyAgICAvLyBwb2ludGVyIHRvIHBv
aW50IHRvIHRoZSBuZXcgYnVmZmVyLCBhbmQgYW55IG9sZCBkYXRhIHVwIHRvIHxtX2xlbmd0aHwg
aW4KKyAgICAvLyB0aGUgYnVmZmVyIG11c3QgYmUgY29waWVkIG92ZXIuCisgICAgLy8KKyAgICAv
LyBUaGUgbmV3IHNpemUgbXVzdCBiZSBsYXJnZXIgdGhhbiBtX2NhcGFjaXR5LgorICAgIHZpcnR1
YWwgdm9pZCByZXNpemUoaW50KSA9IDA7CisKKyAgICBpbmxpbmUgY2hhciBhdChpbnQgb2Zmc2V0
KSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcltvZmZzZXRdOyB9CisgICAgaW5saW5lIHZvaWQgc2V0
KGludCBvZmZzZXQsIENoYXJhY3RlclR5cGUgY2gpCisgICAgeworICAgICAgICAvLyBGSVhNRTog
QWRkIEFTU0VSVChvZmZzZXQgPCBsZW5ndGgoKSk7CisgICAgICAgIG1fYnVmZmVyW29mZnNldF0g
PSBjaDsKKyAgICB9CisKKyAgICAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IGNhcGFjaXR5IG9mIHRo
ZSBidWZmZXIuIFRoZSBsZW5ndGgoKSBpcyB0aGUgbnVtYmVyIG9mCisgICAgLy8gY2hhcmFjdGVy
cyB0aGF0IGhhdmUgYmVlbiBkZWNsYXJlZCB0byBiZSB3cml0dGVuLCBidXQgdGhlIGNhcGFjaXR5
KCkgaXMKKyAgICAvLyB0aGUgbnVtYmVyIHRoYXQgY2FuIGJlIHdyaXR0ZW4gd2l0aG91dCByZWFs
bG9jYXRpb24uIElmIHRoZSBjYWxsZXIgbXVzdAorICAgIC8vIHdyaXRlIG1hbnkgY2hhcmFjdGVy
cyBhdCBvbmNlLCBpdCBjYW4gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCBjYXBhY2l0eSwKKyAg
ICAvLyB3cml0ZSB0aGUgZGF0YSwgdGhlbiB1c2Ugc2V0TGVuZ3RoKCkgdG8gZGVjbGFyZSB0aGUg
bmV3IGxlbmd0aCgpLgorICAgIGludCBjYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FwYWNp
dHk7IH0KKyAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KKworICAg
IC8vIFRoZSBvdXRwdXQgd2lsbCBOT1QgYmUgMC10ZXJtaW5hdGVkLiBDYWxsIGxlbmd0aCgpIHRv
IGdldCB0aGUgbGVuZ3RoLgorICAgIGNvbnN0IENoYXJhY3RlclR5cGUqIGRhdGEoKSBjb25zdCB7
IHJldHVybiBtX2J1ZmZlcjsgfQorICAgIENoYXJhY3RlclR5cGUqIGRhdGEoKSB7IHJldHVybiBt
X2J1ZmZlcjsgfQorCisgICAgLy8gU2hvcnRlbnMgdGhlIFVSTCB0byB0aGUgbmV3IGxlbmd0aC4g
VXNlZCBmb3IgImJhY2tpbmcgdXAiIHdoZW4gcHJvY2Vzc2luZworICAgIC8vIHJlbGF0aXZlIHBh
dGhzLiBUaGlzIGNhbiBhbHNvIGJlIHVzZWQgaWYgYW4gZXh0ZXJuYWwgZnVuY3Rpb24gd3JpdGVz
IGEgbG90CisgICAgLy8gb2YgZGF0YSB0byB0aGUgYnVmZmVyICh3aGVuIHVzaW5nIHRoZSAiUmF3
IiB2ZXJzaW9uIGJlbG93KSBiZXlvbmQgdGhlIGVuZCwKKyAgICAvLyB0byBkZWNsYXJlIHRoZSBu
ZXcgbGVuZ3RoLgorICAgIHZvaWQgc2V0TGVuZ3RoKGludCBsZW5ndGgpCisgICAgeworICAgICAg
ICAvLyBGSVhNRTogQWRkIEFTU0VSVChsZW5ndGggPCBjYXBhY2l0eSgpKTsKKyAgICAgICAgbV9s
ZW5ndGggPSBsZW5ndGg7CisgICAgfQorCisgICAgLy8gVGhpcyBpcyB0aGUgbW9zdCBwZXJmb3Jt
YW5jZSBjcml0aWNhbCBmdW5jdGlvbiwgc2luY2UgaXQgaXMgY2FsbGVkIGZvcgorICAgIC8vIGV2
ZXJ5IGNoYXJhY3Rlci4KKyAgICB2b2lkIGFwcGVuZChDaGFyYWN0ZXJUeXBlIGNoKQorICAgIHsK
KyAgICAgICAgLy8gSW4gVkMyMDA1LCBwdXR0aW5nIHRoaXMgY29tbW9uIGNhc2UgZmlyc3Qgc3Bl
ZWRzIHVwIGV4ZWN1dGlvbgorICAgICAgICAvLyBkcmFtYXRpY2FsbHkgYmVjYXVzZSB0aGlzIGJy
YW5jaCBpcyBwcmVkaWN0ZWQgYXMgdGFrZW4uCisgICAgICAgIGlmIChtX2xlbmd0aCA8IG1fY2Fw
YWNpdHkpIHsKKyAgICAgICAgICAgIG1fYnVmZmVyW21fbGVuZ3RoXSA9IGNoOworICAgICAgICAg
ICAgKyttX2xlbmd0aDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGlmICghZ3JvdygxKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2J1ZmZlcltt
X2xlbmd0aF0gPSBjaDsKKyAgICAgICAgKyttX2xlbmd0aDsKKyAgICB9CisKKyAgICB2b2lkIGFw
cGVuZChjb25zdCBDaGFyYWN0ZXJUeXBlKiBzdHIsIGludCBzdHJMZW5ndGgpCisgICAgeworICAg
ICAgICBpZiAobV9sZW5ndGggKyBzdHJMZW5ndGggPiBtX2NhcGFjaXR5KSB7CisgICAgICAgICAg
ICBpZiAoIWdyb3cobV9sZW5ndGggKyBzdHJMZW5ndGggLSBtX2NhcGFjaXR5KSkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBz
dHJMZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG1fYnVmZmVyW21fbGVuZ3RoICsgaV0gPSBzdHJb
aV07CisgICAgICAgIG1fbGVuZ3RoICs9IHN0ckxlbmd0aDsKKyAgICB9CisKK3Byb3RlY3RlZDoK
KyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGJ1ZmZlciBjb3VsZCBiZSByZXNpemVkLCBmYWxz
ZSBvbiBPT00uCisgICAgYm9vbCBncm93KGludCBtaW5pbXVtQWRkaXRpb25hbENhcGFjaXR5KQor
ICAgIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBtaW5pbXVtQ2FwYWNpdHkgPSAxNjsKKyAg
ICAgICAgaW50IG5ld0NhcGFjaXR5ID0gbV9jYXBhY2l0eSA/IG1fY2FwYWNpdHkgOiBtaW5pbXVt
Q2FwYWNpdHk7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGlmIChuZXdDYXBhY2l0eSA+PSAo
MSA8PCAzMCkpIC8vIFByZXZlbnQgb3ZlcmZsb3cgYmVsb3cuCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgbmV3Q2FwYWNpdHkgKj0gMjsKKyAgICAgICAgfSB3aGls
ZSAobmV3Q2FwYWNpdHkgPCBtX2NhcGFjaXR5ICsgbWluaW11bUFkZGl0aW9uYWxDYXBhY2l0eSk7
CisgICAgICAgIHJlc2l6ZShuZXdDYXBhY2l0eSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIENoYXJhY3RlclR5cGUqIG1fYnVmZmVyOworICAgIGludCBtX2NhcGFjaXR5Owor
ICAgIGludCBtX2xlbmd0aDsgLy8gVXNlZCBjaGFyYWN0ZXJzIGluIHRoZSBidWZmZXIuCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFVTRShXVEZVUkwpCisKKyNlbmRpZiAv
LyBVUkxCdWZmZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdXJsL2FwaS9VUkxRdWVy
eUNoYXJzZXRDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XVEYvd3RmL3VybC9hcGkvVVJMUXVlcnlDaGFy
c2V0Q29udmVydGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc3MWE0MmU0ZjhmMzQ4ZTdhODBiOGZkOWNjNjdl
OTE2NzM5OWM1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VybC9hcGkvVVJM
UXVlcnlDaGFyc2V0Q29udmVydGVyLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAyMDA3IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBVUkxRdWVyeUNoYXJzZXRDb252
ZXJ0ZXJfaAorI2RlZmluZSBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXJfaAorCisjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvVW5pY29kZS5oPgorCisjaWYgVVNFKFdURlVSTCkKKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGNsYXNzIFVSTEJ1ZmZlcjsK
KworY2xhc3MgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyIHsKK3B1YmxpYzoKKyAgICBVUkxRdWVy
eUNoYXJzZXRDb252ZXJ0ZXIoKSB7IH0KKyAgICB2aXJ0dWFsIH5VUkxRdWVyeUNoYXJzZXRDb252
ZXJ0ZXIoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29udmVydEZyb21VVEYxNihjb25zdCBVQ2hh
ciogaW5wdXQsIHVuc2lnbmVkIGlucHV0TGVuZ3RoLCBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1dCkg
PSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBVU0UoV1RGVVJMKQor
CisjZW5kaWYgLy8gVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3VybC9zcmMvVVJMQnVmZmVyLmggYi9Tb3VyY2UvV1RGL3d0Zi91cmwvc3JjL1VS
TEJ1ZmZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZWNjZDA0ZmE1Y2ZmMzI2
NjdkZTA1YzI3MDQ3Zjg5Y2NhMmY2YTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMQnVmZmVyLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBVUkxCdWZmZXJfaAotI2RlZmluZSBVUkxCdWZm
ZXJfaAotCi0jaWYgVVNFKFdURlVSTCkKLQotbmFtZXNwYWNlIFdURiB7Ci0KLS8vIEJhc2UgY2xh
c3MgZm9yIHRoZSBjYW5vbmljYWxpemVyIG91dHB1dCwgdGhpcyBtYWludGFpbnMgYSBidWZmZXIg
YW5kCi0vLyBzdXBwb3J0cyBzaW1wbGUgcmVzaXppbmcgYW5kIGFwcGVuZCBvcGVyYXRpb25zIG9u
IGl0LgotLy8KLS8vIEl0IGlzIFZFUlkgSU1QT1JUQU5UIHRoYXQgbm8gdmlydHVhbCBmdW5jdGlv
biBjYWxscyBiZSBtYWRlIG9uIHRoZSBjb21tb24KLS8vIGNvZGUgcGF0aC4gV2Ugb25seSBoYXZl
IHR3byB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxzLCB0aGUgZGVzdHJ1Y3RvciBhbmQgYQotLy8gcmVz
aXplIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIGV4aXN0aW5nIGJ1ZmZlciBpcyBu
b3QgYmlnIGVub3VnaC4KLS8vIFRoZSBkZXJpdmVkIGNsYXNzIGlzIHRoZW4gaW4gY2hhcmdlIG9m
IHNldHRpbmcgdXAgb3VyIGJ1ZmZlciB3aGljaCB3ZSB3aWxsCi0vLyBtYW5hZ2UuCi10ZW1wbGF0
ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgotY2xhc3MgVVJMQnVmZmVyIHsKLXB1YmxpYzoKLSAg
ICBVUkxCdWZmZXIoKSA6IG1fYnVmZmVyKDApLCBtX2NhcGFjaXR5KDApLCBtX2xlbmd0aCgwKSB7
IH0KLSAgICB2aXJ0dWFsIH5VUkxCdWZmZXIoKSB7IH0KLQotICAgIC8vIEltcGxlbWVudGVkIHRv
IHJlc2l6ZSB0aGUgYnVmZmVyLiBUaGlzIGZ1bmN0aW9uIHNob3VsZCB1cGRhdGUgdGhlIGJ1ZmZl
cgotICAgIC8vIHBvaW50ZXIgdG8gcG9pbnQgdG8gdGhlIG5ldyBidWZmZXIsIGFuZCBhbnkgb2xk
IGRhdGEgdXAgdG8gfG1fbGVuZ3RofCBpbgotICAgIC8vIHRoZSBidWZmZXIgbXVzdCBiZSBjb3Bp
ZWQgb3Zlci4KLSAgICAvLwotICAgIC8vIFRoZSBuZXcgc2l6ZSBtdXN0IGJlIGxhcmdlciB0aGFu
IG1fY2FwYWNpdHkuCi0gICAgdmlydHVhbCB2b2lkIHJlc2l6ZShpbnQpID0gMDsKLQotICAgIGlu
bGluZSBjaGFyIGF0KGludCBvZmZzZXQpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyW29mZnNldF07
IH0KLSAgICBpbmxpbmUgdm9pZCBzZXQoaW50IG9mZnNldCwgQ2hhcmFjdGVyVHlwZSBjaCkKLSAg
ICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgQVNTRVJUKG9mZnNldCA8IGxlbmd0aCgpKTsKLSAg
ICAgICAgbV9idWZmZXJbb2Zmc2V0XSA9IGNoOwotICAgIH0KLQotICAgIC8vIFJldHVybnMgdGhl
IGN1cnJlbnQgY2FwYWNpdHkgb2YgdGhlIGJ1ZmZlci4gVGhlIGxlbmd0aCgpIGlzIHRoZSBudW1i
ZXIgb2YKLSAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgaGF2ZSBiZWVuIGRlY2xhcmVkIHRvIGJlIHdy
aXR0ZW4sIGJ1dCB0aGUgY2FwYWNpdHkoKSBpcwotICAgIC8vIHRoZSBudW1iZXIgdGhhdCBjYW4g
YmUgd3JpdHRlbiB3aXRob3V0IHJlYWxsb2NhdGlvbi4gSWYgdGhlIGNhbGxlciBtdXN0Ci0gICAg
Ly8gd3JpdGUgbWFueSBjaGFyYWN0ZXJzIGF0IG9uY2UsIGl0IGNhbiBtYWtlIHN1cmUgdGhlcmUg
aXMgZW5vdWdoIGNhcGFjaXR5LAotICAgIC8vIHdyaXRlIHRoZSBkYXRhLCB0aGVuIHVzZSBzZXRM
ZW5ndGgoKSB0byBkZWNsYXJlIHRoZSBuZXcgbGVuZ3RoKCkuCi0gICAgaW50IGNhcGFjaXR5KCkg
Y29uc3QgeyByZXR1cm4gbV9jYXBhY2l0eTsgfQotICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBtX2xlbmd0aDsgfQotCi0gICAgLy8gVGhlIG91dHB1dCB3aWxsIE5PVCBiZSAwLXRlcm1p
bmF0ZWQuIENhbGwgbGVuZ3RoKCkgdG8gZ2V0IHRoZSBsZW5ndGguCi0gICAgY29uc3QgQ2hhcmFj
dGVyVHlwZSogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyOyB9Ci0gICAgQ2hhcmFjdGVy
VHlwZSogZGF0YSgpIHsgcmV0dXJuIG1fYnVmZmVyOyB9Ci0KLSAgICAvLyBTaG9ydGVucyB0aGUg
VVJMIHRvIHRoZSBuZXcgbGVuZ3RoLiBVc2VkIGZvciAiYmFja2luZyB1cCIgd2hlbiBwcm9jZXNz
aW5nCi0gICAgLy8gcmVsYXRpdmUgcGF0aHMuIFRoaXMgY2FuIGFsc28gYmUgdXNlZCBpZiBhbiBl
eHRlcm5hbCBmdW5jdGlvbiB3cml0ZXMgYSBsb3QKLSAgICAvLyBvZiBkYXRhIHRvIHRoZSBidWZm
ZXIgKHdoZW4gdXNpbmcgdGhlICJSYXciIHZlcnNpb24gYmVsb3cpIGJleW9uZCB0aGUgZW5kLAot
ICAgIC8vIHRvIGRlY2xhcmUgdGhlIG5ldyBsZW5ndGguCi0gICAgdm9pZCBzZXRMZW5ndGgoaW50
IGxlbmd0aCkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgQVNTRVJUKGxlbmd0aCA8IGNh
cGFjaXR5KCkpOwotICAgICAgICBtX2xlbmd0aCA9IGxlbmd0aDsKLSAgICB9Ci0KLSAgICAvLyBU
aGlzIGlzIHRoZSBtb3N0IHBlcmZvcm1hbmNlIGNyaXRpY2FsIGZ1bmN0aW9uLCBzaW5jZSBpdCBp
cyBjYWxsZWQgZm9yCi0gICAgLy8gZXZlcnkgY2hhcmFjdGVyLgotICAgIHZvaWQgYXBwZW5kKENo
YXJhY3RlclR5cGUgY2gpCi0gICAgewotICAgICAgICAvLyBJbiBWQzIwMDUsIHB1dHRpbmcgdGhp
cyBjb21tb24gY2FzZSBmaXJzdCBzcGVlZHMgdXAgZXhlY3V0aW9uCi0gICAgICAgIC8vIGRyYW1h
dGljYWxseSBiZWNhdXNlIHRoaXMgYnJhbmNoIGlzIHByZWRpY3RlZCBhcyB0YWtlbi4KLSAgICAg
ICAgaWYgKG1fbGVuZ3RoIDwgbV9jYXBhY2l0eSkgewotICAgICAgICAgICAgbV9idWZmZXJbbV9s
ZW5ndGhdID0gY2g7Ci0gICAgICAgICAgICArK21fbGVuZ3RoOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFncm93KDEpKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIG1fYnVmZmVyW21fbGVuZ3RoXSA9IGNoOwotICAgICAgICArK21fbGVuZ3Ro
OwotICAgIH0KLQotICAgIHZvaWQgYXBwZW5kKGNvbnN0IENoYXJhY3RlclR5cGUqIHN0ciwgaW50
IHN0ckxlbmd0aCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2xlbmd0aCArIHN0ckxlbmd0aCA+IG1f
Y2FwYWNpdHkpIHsKLSAgICAgICAgICAgIGlmICghZ3JvdyhtX2xlbmd0aCArIHN0ckxlbmd0aCAt
IG1fY2FwYWNpdHkpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IHN0ckxlbmd0aDsgaSsrKQotICAgICAgICAgICAgbV9idWZm
ZXJbbV9sZW5ndGggKyBpXSA9IHN0cltpXTsKLSAgICAgICAgbV9sZW5ndGggKz0gc3RyTGVuZ3Ro
OwotICAgIH0KLQotcHJvdGVjdGVkOgotICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgYnVmZmVy
IGNvdWxkIGJlIHJlc2l6ZWQsIGZhbHNlIG9uIE9PTS4KLSAgICBib29sIGdyb3coaW50IG1pbmlt
dW1BZGRpdGlvbmFsQ2FwYWNpdHkpCi0gICAgewotICAgICAgICBzdGF0aWMgY29uc3QgaW50IG1p
bmltdW1DYXBhY2l0eSA9IDE2OwotICAgICAgICBpbnQgbmV3Q2FwYWNpdHkgPSBtX2NhcGFjaXR5
ID8gbV9jYXBhY2l0eSA6IG1pbmltdW1DYXBhY2l0eTsKLSAgICAgICAgZG8gewotICAgICAgICAg
ICAgaWYgKG5ld0NhcGFjaXR5ID49ICgxIDw8IDMwKSkgLy8gUHJldmVudCBvdmVyZmxvdyBiZWxv
dy4KLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBuZXdDYXBhY2l0
eSAqPSAyOwotICAgICAgICB9IHdoaWxlIChuZXdDYXBhY2l0eSA8IG1fY2FwYWNpdHkgKyBtaW5p
bXVtQWRkaXRpb25hbENhcGFjaXR5KTsKLSAgICAgICAgcmVzaXplKG5ld0NhcGFjaXR5KTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQ2hhcmFjdGVyVHlwZSogbV9idWZmZXI7
Ci0gICAgaW50IG1fY2FwYWNpdHk7Ci0gICAgaW50IG1fbGVuZ3RoOyAvLyBVc2VkIGNoYXJhY3Rl
cnMgaW4gdGhlIGJ1ZmZlci4KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYgLy8g
VVNFKFdURlVSTCkKLQotI2VuZGlmIC8vIFVSTEJ1ZmZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi91cmwvc3JjL1VSTENhbm9uLmggYi9Tb3VyY2UvV1RGL3d0Zi91cmwvc3JjL1VSTENh
bm9uLmgKaW5kZXggYjY2NjQ5YzAxYmI4Zjg1NTkxMTkzMjc1YmQzOTNmOWFjYWYyYTIzOS4uZDFl
MmIxY2FhYjQ3MzRjN2EyNmJhY2VmMzRiYmM1OTkyNmZmZjAyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdXJsL3NyYy9VUkxDYW5vbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMv
VVJMQ2Fub24uaApAQCAtNDAsMzQgKzQwLDkgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLW5hbWVz
cGFjZSBVUkxDYW5vbmljYWxpemVyIHsKK2NsYXNzIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlcjsK
IAotLy8gQ2hhcmFjdGVyIHNldCBjb252ZXJ0ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8KLS8vIENvbnZlcnRzIHF1ZXJ5IHN0cmluZ3Mg
aW50byBhIGN1c3RvbSBlbmNvZGluZy4gVGhlIGVtYmVkZGVyIGNhbiBzdXBwbHkgYW4KLS8vIGlt
cGxlbWVudGF0aW9uIG9mIHRoaXMgY2xhc3MgdG8gaW50ZXJmYWNlIHdpdGggdGhlaXIgb3duIGNo
YXJhY3RlciBzZXQKLS8vIGNvbnZlcnNpb24gbGlicmFyaWVzLgotLy8KLS8vIEVtYmVkZGVycyB3
aWxsIHdhbnQgdG8gc2VlIHRoZSB1bml0IHRlc3QgZm9yIHRoZSBJQ1UgdmVyc2lvbi4KLQotY2xh
c3MgQ2hhcnNldENvbnZlcnRlciB7Ci1wdWJsaWM6Ci0gICAgQ2hhcnNldENvbnZlcnRlcigpIHsg
fQotICAgIHZpcnR1YWwgfkNoYXJzZXRDb252ZXJ0ZXIoKSB7IH0KLQotICAgIC8vIENvbnZlcnRz
IHRoZSBnaXZlbiBpbnB1dCBzdHJpbmcgZnJvbSBVVEYtMTYgdG8gd2hhdGV2ZXIgb3V0cHV0IGZv
cm1hdCB0aGUKLSAgICAvLyBjb252ZXJ0ZXIgc3VwcG9ydHMuIFRoaXMgaXMgdXNlZCBvbmx5IGZv
ciB0aGUgcXVlcnkgZW5jb2RpbmcgY29udmVyc2lvbiwKLSAgICAvLyB3aGljaCBkb2VzIG5vdCBm
YWlsLiBJbnN0ZWFkLCB0aGUgY29udmVydGVyIHNob3VsZCBpbnNlcnQgImludmFsaWQKLSAgICAv
LyBjaGFyYWN0ZXIiIGNoYXJhY3RlcnMgaW4gdGhlIG91dHB1dCBmb3IgaW52YWxpZCBzZXF1ZW5j
ZXMsIGFuZCBkbyB0aGUKLSAgICAvLyBiZXN0IGl0IGNhbi4KLSAgICAvLwotICAgIC8vIElmIHRo
ZSBpbnB1dCBjb250YWlucyBhIGNoYXJhY3RlciBub3QgcmVwcmVzZW50YWJsZSBpbiB0aGUgb3V0
cHV0Ci0gICAgLy8gY2hhcmFjdGVyIHNldCwgdGhlIGNvbnZlcnRlciBzaG91bGQgYXBwZW5kIHRo
ZSBIVE1MIGVudGl0eSBzZXF1ZW5jZSBpbgotICAgIC8vIGRlY2ltYWwsIChzdWNoIGFzICImIzIw
MzIwOyIpIHdpdGggZXNjYXBpbmcgb2YgdGhlIGFtcGVyc2FuZCwgbnVtYmVyCi0gICAgLy8gc2ln
biwgYW5kIHNlbWljb2xvbiAoaW4gdGhlIHByZXZpb3VzIGV4YW1wbGUgaXQgd291bGQgYmUKLSAg
ICAvLyAiJTI2JTIzMjAzMjAlM0IiKS4gVGhpcyBydWxlIGlzIGJhc2VkIG9uIHdoYXQgSUUgZG9l
cyBpbiB0aGlzIHNpdHVhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgQ29udmVydEZyb21VVEYxNihj
b25zdCBVQ2hhciogaW5wdXQsIGludCBpbnB1dExlbmd0aCwgVVJMQnVmZmVyPGNoYXI+JiBvdXRw
dXQpID0gMDsKLX07CituYW1lc3BhY2UgVVJMQ2Fub25pY2FsaXplciB7CiAKIC8vIFdoaXRlc3Bh
Y2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIApAQCAtMjY0LDggKzIzOSw4IEBAIGJvb2wgRmlsZUNhbm9uaWNhbGl6ZVBh
dGgoY29uc3QgVUNoYXIqIHNwZWMsIGNvbnN0IFVSTENvbXBvbmVudCYgcGF0aCwgVVJMQnVmZmVy
CiAvLyBpZiBuZWNlc3NhcnksIGZvciBBU0NJSSBpbnB1dCwgbm8gY29udmVyc2lvbnMgYXJlIG5l
Y2Vzc2FyeS4KIC8vCiAvLyBUaGUgY29udmVydGVyIGNhbiBiZSBudWxsLiBJbiB0aGlzIGNhc2Us
IHRoZSBvdXRwdXQgZW5jb2Rpbmcgd2lsbCBiZSBVVEYtOC4KLXZvaWQgQ2Fub25pY2FsaXplUXVl
cnkoY29uc3QgY2hhciogc3BlYywgY29uc3QgVVJMQ29tcG9uZW50JiBxdWVyeSwgQ2hhcnNldENv
bnZlcnRlciosIFVSTEJ1ZmZlcjxjaGFyPiYsIFVSTENvbXBvbmVudCogb3V0cHV0UXVlcnkpOwot
dm9pZCBDYW5vbmljYWxpemVRdWVyeShjb25zdCBVQ2hhciogc3BlYywgY29uc3QgVVJMQ29tcG9u
ZW50JiBxdWVyeSwgQ2hhcnNldENvbnZlcnRlciosIFVSTEJ1ZmZlcjxjaGFyPiYsIFVSTENvbXBv
bmVudCogb3V0cHV0UXVlcnkpOwordm9pZCBDYW5vbmljYWxpemVRdWVyeShjb25zdCBjaGFyKiBz
cGVjLCBjb25zdCBVUkxDb21wb25lbnQmIHF1ZXJ5LCBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIq
LCBVUkxCdWZmZXI8Y2hhcj4mLCBVUkxDb21wb25lbnQqIG91dHB1dFF1ZXJ5KTsKK3ZvaWQgQ2Fu
b25pY2FsaXplUXVlcnkoY29uc3QgVUNoYXIqIHNwZWMsIGNvbnN0IFVSTENvbXBvbmVudCYgcXVl
cnksIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciosIFVSTEJ1ZmZlcjxjaGFyPiYsIFVSTENvbXBv
bmVudCogb3V0cHV0UXVlcnkpOwogCiAvLyBSZWY6IFByZXBlbmRzIHRoZSAjIGlmIG5lZWRlZC4g
VGhlIG91dHB1dCB3aWxsIGJlIFVURi04ICh0aGlzIGlzIHRoZSBvbmx5CiAvLyBjYW5vbmljYWxp
emVyIHRoYXQgZG9lcyBub3QgcHJvZHVjZSBBU0NJSSBvdXRwdXQpLiBUaGUgb3V0cHV0IGlzCkBA
IC0yODcsMjEgKzI2MiwyMSBAQCB2b2lkIGNhbm9uaWNhbGl6ZUZyYWdtZW50KGNvbnN0IFVDaGFy
KiBzcGVjLCBjb25zdCBVUkxDb21wb25lbnQmIHBhdGgsIFVSTEJ1ZmZlcgogLy8gVGhlIDgtYml0
IHZlcnNpb25zIHJlcXVpcmUgVVRGLTggZW5jb2RpbmcuCiAKIC8vIFVzZSBmb3Igc3RhbmRhcmQg
VVJMcyB3aXRoIGF1dGhvcml0aWVzIGFuZCBwYXRocy4KLWJvb2wgQ2Fub25pY2FsaXplU3RhbmRh
cmRVUkwoY29uc3QgY2hhciogc3BlYywgaW50IHNwZWNMZW5ndGgsIGNvbnN0IFVSTFNlZ21lbnRz
JiBwYXJzZWQsIENoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAorYm9vbCBDYW5vbmlj
YWxpemVTdGFuZGFyZFVSTChjb25zdCBjaGFyKiBzcGVjLCBpbnQgc3BlY0xlbmd0aCwgY29uc3Qg
VVJMU2VnbWVudHMmIHBhcnNlZCwgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNvbnZl
cnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+JiwgVVJM
U2VnbWVudHMqIG91dHB1dFBhcnNlZCk7Ci1ib29sIENhbm9uaWNhbGl6ZVN0YW5kYXJkVVJMKGNv
bnN0IFVDaGFyKiBzcGVjLCBpbnQgc3BlY0xlbmd0aCwgY29uc3QgVVJMU2VnbWVudHMmIHBhcnNl
ZCwgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCitib29sIENhbm9uaWNhbGl6ZVN0
YW5kYXJkVVJMKGNvbnN0IFVDaGFyKiBzcGVjLCBpbnQgc3BlY0xlbmd0aCwgY29uc3QgVVJMU2Vn
bWVudHMmIHBhcnNlZCwgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNvbnZlcnRlciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+JiwgVVJMU2VnbWVu
dHMqIG91dHB1dFBhcnNlZCk7CiAKIC8vIFVzZSBmb3IgZmlsZSBVUkxzLgotYm9vbCBDYW5vbmlj
YWxpemVGaWxlVVJMKGNvbnN0IGNoYXIqIHNwZWMsIGludCBzcGVjTGVuZ3RoLCBjb25zdCBVUkxT
ZWdtZW50cyYgcGFyc2VkLCBDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNvbnZlcnRlciwKK2Jvb2wg
Q2Fub25pY2FsaXplRmlsZVVSTChjb25zdCBjaGFyKiBzcGVjLCBpbnQgc3BlY0xlbmd0aCwgY29u
c3QgVVJMU2VnbWVudHMmIHBhcnNlZCwgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNv
bnZlcnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mLCBVUkxT
ZWdtZW50cyogb3V0cHV0UGFyc2VkKTsKLWJvb2wgQ2Fub25pY2FsaXplRmlsZVVSTChjb25zdCBV
Q2hhciogc3BlYywgaW50IHNwZWNMZW5ndGgsIGNvbnN0IFVSTFNlZ21lbnRzJiBwYXJzZWQsIENo
YXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAorYm9vbCBDYW5vbmljYWxpemVGaWxlVVJM
KGNvbnN0IFVDaGFyKiBzcGVjLCBpbnQgc3BlY0xlbmd0aCwgY29uc3QgVVJMU2VnbWVudHMmIHBh
cnNlZCwgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNvbnZlcnRlciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mLCBVUkxTZWdtZW50cyogb3V0cHV0UGFy
c2VkKTsKIAogLy8gVXNlIGZvciBmaWxlc3lzdGVtIFVSTHMuCi1ib29sIGNhbm9uaWNhbGl6ZUZp
bGVTeXN0ZW1VUkwoY29uc3QgY2hhciogc3BlYywgY29uc3QgVVJMU2VnbWVudHMmIHBhcnNlZCwg
Q2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCitib29sIGNhbm9uaWNhbGl6ZUZpbGVT
eXN0ZW1VUkwoY29uc3QgY2hhciogc3BlYywgY29uc3QgVVJMU2VnbWVudHMmIHBhcnNlZCwgVVJM
UXVlcnlDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNvbnZlcnRlciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mLCBVUkxTZWdtZW50cyYgb3V0cHV0UGFyc2Vk
KTsKLWJvb2wgY2Fub25pY2FsaXplRmlsZVN5c3RlbVVSTChjb25zdCBVQ2hhciogc3BlYywgY29u
c3QgVVJMU2VnbWVudHMmIHBhcnNlZCwgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIs
Citib29sIGNhbm9uaWNhbGl6ZUZpbGVTeXN0ZW1VUkwoY29uc3QgVUNoYXIqIHNwZWMsIGNvbnN0
IFVSTFNlZ21lbnRzJiBwYXJzZWQsIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogcXVlcnlDb252
ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+Jiwg
VVJMU2VnbWVudHMmIG91dHB1dFBhcnNlZCk7CiAKIC8vIFVzZSBmb3IgcGF0aCBVUkxzIHN1Y2gg
YXMgamF2YXNjcmlwdC4gVGhpcyBkb2VzIG5vdCBtb2RpZnkgdGhlIHBhdGggaW4gYW55CkBAIC01
MjIsMTMgKzQ5NywxMyBAQCBwcml2YXRlOgogYm9vbCBSZXBsYWNlU3RhbmRhcmRVUkwoY29uc3Qg
Y2hhciogYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVSTFNlZ21lbnRzJiBi
YXNlUGFyc2VkLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVwbGFjZW1lbnRzPGNo
YXI+JiwKLSAgICAgICAgICAgICAgICAgICAgICAgIENoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29u
dmVydGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVy
KiBxdWVyeUNvbnZlcnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFy
PiYsCiAgICAgICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50cyogb3V0cHV0UGFyc2VkKTsK
IGJvb2wgUmVwbGFjZVN0YW5kYXJkVVJMKGNvbnN0IGNoYXIqIGJhc2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBVUkxTZWdtZW50cyYgYmFzZVBhcnNlZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFJlcGxhY2VtZW50czxVQ2hhcj4mLAotICAgICAgICAgICAgICAgICAg
ICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAogICAgICAg
ICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+JiwKICAgICAgICAgICAgICAgICAgICAg
ICAgIFVSTFNlZ21lbnRzKiBvdXRwdXRQYXJzZWQpOwogCkBAIC01MzcsMTMgKzUxMiwxMyBAQCBi
b29sIFJlcGxhY2VTdGFuZGFyZFVSTChjb25zdCBjaGFyKiBiYXNlLAogYm9vbCBSZXBsYWNlRmls
ZVN5c3RlbVVSTChjb25zdCBjaGFyKiBiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBVUkxTZWdtZW50cyYgYmFzZVBhcnNlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgUmVwbGFjZW1lbnRzPGNoYXI+JiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hh
cnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVSTFNlZ21lbnRzKiBvdXRwdXRQYXJzZWQpOwogYm9vbCBSZXBsYWNlRmlsZVN5c3RlbVVSTChj
b25zdCBjaGFyKiBiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxTZWdt
ZW50cyYgYmFzZVBhcnNlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVwbGFj
ZW1lbnRzPFVDaGFyPiYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJzZXRDb252ZXJ0
ZXIqIHF1ZXJ5Q29udmVydGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNo
YXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBVUkxCdWZmZXI8Y2hhcj4mLAogICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50
cyogb3V0cHV0UGFyc2VkKTsKIApAQCAtNTUyLDEzICs1MjcsMTMgQEAgYm9vbCBSZXBsYWNlRmls
ZVN5c3RlbVVSTChjb25zdCBjaGFyKiBiYXNlLAogYm9vbCBSZXBsYWNlRmlsZVVSTChjb25zdCBj
aGFyKiBiYXNlLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxTZWdtZW50cyYgYmFzZVBh
cnNlZCwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVwbGFjZW1lbnRzPGNoYXI+JiwKLSAg
ICAgICAgICAgICAgICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAg
ICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIs
CiAgICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYsCiAgICAgICAgICAgICAgICAg
ICAgIFVSTFNlZ21lbnRzKiBvdXRwdXRQYXJzZWQpOwogYm9vbCBSZXBsYWNlRmlsZVVSTChjb25z
dCBjaGFyKiBiYXNlLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxTZWdtZW50cyYgYmFz
ZVBhcnNlZCwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVwbGFjZW1lbnRzPFVDaGFyPiYs
Ci0gICAgICAgICAgICAgICAgICAgIENoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAor
ICAgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVy
dGVyLAogICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mLAogICAgICAgICAgICAg
ICAgICAgICBVUkxTZWdtZW50cyogb3V0cHV0UGFyc2VkKTsKIApAQCAtNjI2LDExICs2MDEsMTEg
QEAgYm9vbCBpc1JlbGF0aXZlVVJMKGNvbnN0IGNoYXIqIGJhc2UsIGNvbnN0IFVSTFNlZ21lbnRz
JiBiYXNlUGFyc2VkLAogLy8gd2FzIGludGVuZGVkIGJ5IHRoZSB3ZWIgcGFnZSBhdXRob3Igb3Ig
Y2FsbGVyLgogYm9vbCByZXNvbHZlUmVsYXRpdmVVUkwoY29uc3QgY2hhciogYmFzZVVSTCwgY29u
c3QgVVJMU2VnbWVudHMmIGJhc2VQYXJzZWQsIGJvb2wgYmFzZUlzRmlsZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJlbGF0aXZlVVJMLCBjb25zdCBVUkxDb21wb25lbnQm
IHJlbGF0aXZlQ29tcG9uZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcnNldENvbnZl
cnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNo
YXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAogICAgICAgICAgICAgICAgICAgICAgICAg
VVJMQnVmZmVyPGNoYXI+JiwgVVJMU2VnbWVudHMqIG91dHB1dFBhcnNlZCk7CiBib29sIHJlc29s
dmVSZWxhdGl2ZVVSTChjb25zdCBjaGFyKiBiYXNlVVJMLCBjb25zdCBVUkxTZWdtZW50cyYgYmFz
ZVBhcnNlZCwgYm9vbCBiYXNlSXNGaWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VUNoYXIqIHJlbGF0aXZlVVJMLCBjb25zdCBVUkxDb21wb25lbnQmIHJlbGF0aXZlQ29tcG9uZW50
LAotICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIHF1
ZXJ5Q29udmVydGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+Jiwg
VVJMU2VnbWVudHMqIG91dHB1dFBhcnNlZCk7CiAKIH0gLy8gbmFtZXNwYWNlIFVSTENhbm9uaWNh
bGl6ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMQ2Fub25GaWxlc3lz
dGVtdXJsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMQ2Fub25GaWxlc3lzdGVtdXJs
LmNwcAppbmRleCBlNzAxOGY3YTQ2NzBiNDFmMDYwMjAyNzhkMWZjYjc5OGUwN2RhOTdjLi4zNjFi
YmJlZjc2ZWY5ZDZiZTQyZDZhMDE3MWYwOTc0YmE0ZWFhMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi91cmwvc3JjL1VSTENhbm9uRmlsZXN5c3RlbXVybC5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvdXJsL3NyYy9VUkxDYW5vbkZpbGVzeXN0ZW11cmwuY3BwCkBAIC01NSw3ICs1NSw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGUsIHR5cGVuYW1lIFVDSEFSPgogYm9vbCBk
b0Nhbm9uaWNhbGl6ZUZpbGVTeXN0ZW1VUkwoY29uc3QgQ2hhcmFjdGVyVHlwZSogc3BlYywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVSTENvbXBvbmVudFNvdXJjZTxD
aGFyYWN0ZXJUeXBlPiYgc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVVJMU2VnbWVudHMmIHBhcnNlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENoYXJzZXRDb252ZXJ0ZXIqIGNoYXJzZXRDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIGNoYXJzZXRDb252ZXJ0
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91
dHB1dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTFNlZ21lbnRzJiBvdXRw
dXRQYXJzZWQpCiB7CkBAIC0xMTQsNyArMTE0LDcgQEAgYm9vbCBkb0Nhbm9uaWNhbGl6ZUZpbGVT
eXN0ZW1VUkwoY29uc3QgQ2hhcmFjdGVyVHlwZSogc3BlYywKIAogYm9vbCBjYW5vbmljYWxpemVG
aWxlU3lzdGVtVVJMKGNvbnN0IGNoYXIqIHNwZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgVVJMU2VnbWVudHMmIHBhcnNlZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDaGFyc2V0Q29udmVydGVyKiBjaGFyc2V0Q29udmVydGVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogY2hhcnNldENvbnZl
cnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91
dHB1dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50cyYgb3V0cHV0
UGFyc2VkKQogewpAQCAtMTIzLDcgKzEyMyw3IEBAIGJvb2wgY2Fub25pY2FsaXplRmlsZVN5c3Rl
bVVSTChjb25zdCBjaGFyKiBzcGVjLAogCiBib29sIGNhbm9uaWNhbGl6ZUZpbGVTeXN0ZW1VUkwo
Y29uc3QgVUNoYXIqIHNwZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VVJMU2VnbWVudHMmIHBhcnNlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFy
c2V0Q29udmVydGVyKiBjaGFyc2V0Q29udmVydGVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogY2hhcnNldENvbnZlcnRlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1dCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50cyYgb3V0cHV0UGFyc2VkKQogewpA
QCAtMTMzLDcgKzEzMyw3IEBAIGJvb2wgY2Fub25pY2FsaXplRmlsZVN5c3RlbVVSTChjb25zdCBV
Q2hhciogc3BlYywKIGJvb2wgUmVwbGFjZUZpbGVTeXN0ZW1VUkwoY29uc3QgY2hhciogYmFzZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVVJMU2VnbWVudHMmIGJhc2VQYXJzZWQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlcGxhY2VtZW50czxjaGFyPiYgcmVw
bGFjZW1lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyc2V0Q29udmVydGVyKiBj
aGFyc2V0Q29udmVydGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNoYXJz
ZXRDb252ZXJ0ZXIqIGNoYXJzZXRDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVSTEJ1ZmZlcjxjaGFyPiYgb3V0cHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxT
ZWdtZW50cyogb3V0cHV0UGFyc2VkKQogewpAQCAtMTQ2LDcgKzE0Niw3IEBAIGJvb2wgUmVwbGFj
ZUZpbGVTeXN0ZW1VUkwoY29uc3QgY2hhciogYmFzZSwKIGJvb2wgUmVwbGFjZUZpbGVTeXN0ZW1V
UkwoY29uc3QgY2hhciogYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVVJM
U2VnbWVudHMmIGJhc2VQYXJzZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJl
cGxhY2VtZW50czxVQ2hhcj4mIHJlcGxhY2VtZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ2hhcnNldENvbnZlcnRlciogY2hhcnNldENvbnZlcnRlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBjaGFyc2V0Q29udmVydGVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1dCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVVJMU2VnbWVudHMqIG91dHB1dFBhcnNlZCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMQ2Fub25GaWxldXJsLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL3VybC9zcmMvVVJMQ2Fub25GaWxldXJsLmNwcAppbmRleCBjNGY4NDEyODc4N2EzMjk3
OWIxMTQ5MGRkNzZiMTBhNmM3OTIxMzQwLi43M2E5ZjZkZDFiZWY2YTljMmUzYjkxNzJkNDlkNzA0
MDdmZGRkMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91cmwvc3JjL1VSTENhbm9uRmls
ZXVybC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdXJsL3NyYy9VUkxDYW5vbkZpbGV1cmwuY3Bw
CkBAIC0xMjIsNyArMTIyLDcgQEAgYm9vbCBkb0ZpbGVDYW5vbmljYWxpemVQYXRoKGNvbnN0IENo
YXJhY3RlclR5cGUqIHNwZWMsCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlLCB0eXBl
bmFtZSBVQ0hBUj4KIGJvb2wgZG9DYW5vbmljYWxpemVGaWxlVVJMKGNvbnN0IFVSTENvbXBvbmVu
dFNvdXJjZTxDaGFyYWN0ZXJUeXBlPiYgc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVVJMU2VnbWVudHMmIHBhcnNlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IENoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNvbnZlcnRlciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0cHV0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVVJMU2VnbWVudHMmIG91dHB1dFBhcnNlZCkKIHsKQEAgLTE1Nyw3ICsx
NTcsNyBAQCBib29sIGRvQ2Fub25pY2FsaXplRmlsZVVSTChjb25zdCBVUkxDb21wb25lbnRTb3Vy
Y2U8Q2hhcmFjdGVyVHlwZT4mIHNvdXJjZSwKIGJvb2wgQ2Fub25pY2FsaXplRmlsZVVSTChjb25z
dCBjaGFyKiBzcGVjLAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKiBzcGVjTGVuZ3Ro
ICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVSTFNlZ21lbnRzJiBwYXJzZWQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBx
dWVyeUNvbnZlcnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4m
IG91dHB1dCwKICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50cyogb3V0cHV0UGFy
c2VkKQogewpAQCAtMTY3LDcgKzE2Nyw3IEBAIGJvb2wgQ2Fub25pY2FsaXplRmlsZVVSTChjb25z
dCBjaGFyKiBzcGVjLAogYm9vbCBDYW5vbmljYWxpemVGaWxlVVJMKGNvbnN0IFVDaGFyKiBzcGVj
LAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKiBzcGVjTGVuZ3RoICovLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFVSTFNlZ21lbnRzJiBwYXJzZWQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNvbnZlcnRl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1dCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50cyogb3V0cHV0UGFyc2VkKQogewpAQCAt
MTkzLDcgKzE5Myw3IEBAIGJvb2wgRmlsZUNhbm9uaWNhbGl6ZVBhdGgoY29uc3QgVUNoYXIqIHNw
ZWMsCiBib29sIFJlcGxhY2VGaWxlVVJMKGNvbnN0IGNoYXIqIGJhc2UsCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFVSTFNlZ21lbnRzJiBiYXNlUGFyc2VkLAogICAgICAgICAgICAgICAgICAg
ICBjb25zdCBSZXBsYWNlbWVudHM8Y2hhcj4mIHJlcGxhY2VtZW50cywKLSAgICAgICAgICAgICAg
ICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAg
ICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCiAgICAgICAgICAg
ICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0cHV0LAogICAgICAgICAgICAgICAgICAgICBV
UkxTZWdtZW50cyogb3V0cHV0UGFyc2VkKQogewpAQCAtMjA2LDcgKzIwNiw3IEBAIGJvb2wgUmVw
bGFjZUZpbGVVUkwoY29uc3QgY2hhciogYmFzZSwKIGJvb2wgUmVwbGFjZUZpbGVVUkwoY29uc3Qg
Y2hhciogYmFzZSwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgVVJMU2VnbWVudHMmIGJhc2VQ
YXJzZWQsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlcGxhY2VtZW50czxVQ2hhcj4mIHJl
cGxhY2VtZW50cywKLSAgICAgICAgICAgICAgICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlD
b252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciog
cXVlcnlDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0
cHV0LAogICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50cyogb3V0cHV0UGFyc2VkKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdXJsL3NyYy9VUkxDYW5vbkludGVybmFsLmggYi9T
b3VyY2UvV1RGL3d0Zi91cmwvc3JjL1VSTENhbm9uSW50ZXJuYWwuaAppbmRleCA0YzEwYzNlM2Vj
NmFiNjM1NWFhMTJiNGE2MzhlN2FmMmI3MzExOTMwLi45YjI5NzA2MzIxNjczNDgwOThmOTA3OWNk
OTI4NDgyYzk4YzBlMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91cmwvc3JjL1VSTENh
bm9uSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91cmwvc3JjL1VSTENhbm9uSW50ZXJu
YWwuaApAQCAtMzExLDcgKzMxMSw3IEBAIGJvb2wgQ29udmVydFVURjhUb1VURjE2KGNvbnN0IGNo
YXIqIGlucHV0LCBpbnQgaW5wdXRMZW5ndGgsIFVSTEJ1ZmZlcjxVQ2hhcj4mIG91CiAKIC8vIENv
bnZlcnRzIGZyb20gVVRGLTE2IHRvIDgtYml0IHVzaW5nIHRoZSBjaGFyYWN0ZXIgc2V0IGNvbnZl
cnRlci4gSWYgdGhlCiAvLyBjb252ZXJ0ZXIgaXMgbnVsbCwgdGhpcyB3aWxsIHVzZSBVVEYtOC4K
LXZvaWQgQ29udmVydFVURjE2VG9RdWVyeUVuY29kaW5nKGNvbnN0IFVDaGFyKiBpbnB1dCwgY29u
c3QgVVJMQ29tcG9uZW50JiBxdWVyeSwgQ2hhcnNldENvbnZlcnRlciosIFVSTEJ1ZmZlcjxjaGFy
PiYgb3V0cHV0KTsKK3ZvaWQgQ29udmVydFVURjE2VG9RdWVyeUVuY29kaW5nKGNvbnN0IFVDaGFy
KiBpbnB1dCwgY29uc3QgVVJMQ29tcG9uZW50JiBxdWVyeSwgVVJMUXVlcnlDaGFyc2V0Q29udmVy
dGVyKiwgVVJMQnVmZmVyPGNoYXI+JiBvdXRwdXQpOwogCiAvLyBBcHBsaWVzIHRoZSByZXBsYWNl
bWVudHMgdG8gdGhlIGdpdmVuIGNvbXBvbmVudCBzb3VyY2UuIFRoZSBjb21wb25lbnQgc291cmNl
CiAvLyBzaG91bGQgYmUgcHJlLWluaXRpYWxpemVkIHRvIHRoZSAib2xkIiBiYXNlLiBUaGF0IGlz
LCBhbGwgcG9pbnRlcnMgd2lsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdXJsL3NyYy9V
UkxDYW5vblF1ZXJ5LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMQ2Fub25RdWVyeS5j
cHAKaW5kZXggNDI2NzNmYjM0MGE3NzM3ZjIzZDI5NGFlYjIzMmJlZTc1NGUxMThiMy4uMGI4Mjli
YTViYTY3N2MzOGE2MGNmMTJkMDY2Njc0NDIxYTQ5MjE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdXJsL3NyYy9VUkxDYW5vblF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91cmwv
c3JjL1VSTENhbm9uUXVlcnkuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUmF3VVJM
QnVmZmVyLmgiCiAjaW5jbHVkZSAiVVJMQ2Fub25JbnRlcm5hbC5oIgogI2luY2x1ZGUgIlVSTENo
YXJhY3RlclR5cGVzLmgiCisjaW5jbHVkZSAiVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvQVNDSUlGYXN0UGF0aC5oPgogCiAvLyBRdWVyeSBjYW5vbmljYWxp
emF0aW9uIGluIElFCkBAIC0xMDcsMjUgKzEwOCwyNSBAQCB2b2lkIGFwcGVuZFJhdzhCaXRRdWVy
eVN0cmluZyhjb25zdCBDaGFyYWN0ZXJUeXBlKiBzb3VyY2UsIGludCBsZW5ndGgsIFVSTEJ1ZmZl
cgogCiAvLyBSdW5zIHRoZSBjb252ZXJ0ZXIgb24gdGhlIGdpdmVuIFVURi04IGlucHV0LiBTaW5j
ZSB0aGUgY29udmVydGVyIGV4cGVjdHMKIC8vIFVURi0xNiwgd2UgaGF2ZSB0byBjb252ZXJ0IGZp
cnN0LiBUaGUgY29udmVydGVyIG11c3QgYmUgbm9uLW51bGwuCi12b2lkIHJ1bkNvbnZlcnRlcihj
b25zdCBjaGFyKiBzcGVjLCBjb25zdCBVUkxDb21wb25lbnQmIHF1ZXJ5LCBDaGFyc2V0Q29udmVy
dGVyKiBjb252ZXJ0ZXIsIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0cHV0KQordm9pZCBydW5Db252ZXJ0
ZXIoY29uc3QgY2hhciogc3BlYywgY29uc3QgVVJMQ29tcG9uZW50JiBxdWVyeSwgVVJMUXVlcnlD
aGFyc2V0Q29udmVydGVyKiBjb252ZXJ0ZXIsIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0cHV0KQogewog
ICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCByZXBsYWNlIGFueSBtaXNlbmNvZGVkIHZhbHVlcyB3
aXRoIHRoZSBpbnZhbGlkCiAgICAgLy8gY2hhcmFjdGVyLiBUaGlzIGlzIHdoYXQgd2Ugd2FudCBz
byB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGZvciBlcnJvci4KICAgICBSYXdVUkxCdWZmZXI8VUNo
YXI+IHV0ZjE2OwogICAgIENvbnZlcnRVVEY4VG9VVEYxNigmc3BlY1txdWVyeS5iZWdpbigpXSwg
cXVlcnkubGVuZ3RoKCksIHV0ZjE2KTsKLSAgICBjb252ZXJ0ZXItPkNvbnZlcnRGcm9tVVRGMTYo
dXRmMTYuZGF0YSgpLCB1dGYxNi5sZW5ndGgoKSwgb3V0cHV0KTsKKyAgICBjb252ZXJ0ZXItPmNv
bnZlcnRGcm9tVVRGMTYodXRmMTYuZGF0YSgpLCB1dGYxNi5sZW5ndGgoKSwgb3V0cHV0KTsKIH0K
IAogLy8gUnVucyB0aGUgY29udmVydGVyIHdpdGggdGhlIGdpdmVuIFVURi0xNiBpbnB1dC4gV2Ug
ZG9uJ3QgaGF2ZSB0byBkbwogLy8gYW55dGhpbmcsIGJ1dCB0aGlzIG92ZXJyaWRkZGVuIGZ1bmN0
aW9uIGFsbG93cyB1cyB0byB1c2UgdGhlIHNhbWUgY29kZQogLy8gZm9yIGJvdGggVVRGLTggYW5k
IFVURi0xNiBpbnB1dC4KLXZvaWQgcnVuQ29udmVydGVyKGNvbnN0IFVDaGFyKiBzcGVjLCBjb25z
dCBVUkxDb21wb25lbnQmIHF1ZXJ5LCBDaGFyc2V0Q29udmVydGVyKiBjb252ZXJ0ZXIsIFVSTEJ1
ZmZlcjxjaGFyPiYgb3V0cHV0KQordm9pZCBydW5Db252ZXJ0ZXIoY29uc3QgVUNoYXIqIHNwZWMs
IGNvbnN0IFVSTENvbXBvbmVudCYgcXVlcnksIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogY29u
dmVydGVyLCBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1dCkKIHsKLSAgICBjb252ZXJ0ZXItPkNvbnZl
cnRGcm9tVVRGMTYoJnNwZWNbcXVlcnkuYmVnaW4oKV0sIHF1ZXJ5Lmxlbmd0aCgpLCBvdXRwdXQp
OworICAgIGNvbnZlcnRlci0+Y29udmVydEZyb21VVEYxNigmc3BlY1txdWVyeS5iZWdpbigpXSwg
cXVlcnkubGVuZ3RoKCksIG91dHB1dCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+Ci12b2lkIGRvQ29udmVydFRvUXVlcnlFbmNvZGluZyhjb25zdCBDaGFyYWN0ZXJUeXBl
KiBzcGVjLCBjb25zdCBVUkxDb21wb25lbnQmIHF1ZXJ5LCBDaGFyc2V0Q29udmVydGVyKiBjb252
ZXJ0ZXIsIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0cHV0KQordm9pZCBkb0NvbnZlcnRUb1F1ZXJ5RW5j
b2RpbmcoY29uc3QgQ2hhcmFjdGVyVHlwZSogc3BlYywgY29uc3QgVVJMQ29tcG9uZW50JiBxdWVy
eSwgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBjb252ZXJ0ZXIsIFVSTEJ1ZmZlcjxjaGFyPiYg
b3V0cHV0KQogewogICAgIGlmIChpc0FsbEFTQ0lJKHNwZWMsIHF1ZXJ5KSkgewogICAgICAgICAv
LyBFYXN5OiB0aGUgaW5wdXQgY2FuIGp1c3QgYXBwZW5kZWQgd2l0aCBubyBjaGFyYWN0ZXIgc2V0
IGNvbnZlcnNpb25zLgpAQCAtMTQ2LDcgKzE0Nyw3IEBAIHZvaWQgZG9Db252ZXJ0VG9RdWVyeUVu
Y29kaW5nKGNvbnN0IENoYXJhY3RlclR5cGUqIHNwZWMsIGNvbnN0IFVSTENvbXBvbmVudCYgcXVl
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Ci12b2lkIGRvQ2Fub25pY2Fs
aXplUXVlcnkoY29uc3QgQ2hhcmFjdGVyVHlwZSogc3BlYywgY29uc3QgVVJMQ29tcG9uZW50JiBx
dWVyeSwgQ2hhcnNldENvbnZlcnRlciogY29udmVydGVyLAordm9pZCBkb0Nhbm9uaWNhbGl6ZVF1
ZXJ5KGNvbnN0IENoYXJhY3RlclR5cGUqIHNwZWMsIGNvbnN0IFVSTENvbXBvbmVudCYgcXVlcnks
IFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogY29udmVydGVyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0cHV0LCBVUkxDb21wb25lbnQmIG91dHB1dFF1ZXJ5
Q29tcG9uZW50KQogewogICAgIGlmIChxdWVyeS5sZW5ndGgoKSA8IDApIHsKQEAgLTE2NCwxOSAr
MTY1LDE5IEBAIHZvaWQgZG9DYW5vbmljYWxpemVRdWVyeShjb25zdCBDaGFyYWN0ZXJUeXBlKiBz
cGVjLCBjb25zdCBVUkxDb21wb25lbnQmIHF1ZXJ5LCBDCiAKIH0gLy8gbmFtZXNwYWNlCiAKLXZv
aWQgQ2Fub25pY2FsaXplUXVlcnkoY29uc3QgY2hhciogc3BlYywgY29uc3QgVVJMQ29tcG9uZW50
JiBxdWVyeSwgQ2hhcnNldENvbnZlcnRlciogY29udmVydGVyLAordm9pZCBDYW5vbmljYWxpemVR
dWVyeShjb25zdCBjaGFyKiBzcGVjLCBjb25zdCBVUkxDb21wb25lbnQmIHF1ZXJ5LCBVUkxRdWVy
eUNoYXJzZXRDb252ZXJ0ZXIqIGNvbnZlcnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgVVJM
QnVmZmVyPGNoYXI+JiBvdXRwdXQsIFVSTENvbXBvbmVudCogb3V0cHV0UXVlcnlDb21wb25lbnQp
CiB7CiAgICAgZG9DYW5vbmljYWxpemVRdWVyeShzcGVjLCBxdWVyeSwgY29udmVydGVyLCBvdXRw
dXQsICpvdXRwdXRRdWVyeUNvbXBvbmVudCk7CiB9CiAKLXZvaWQgQ2Fub25pY2FsaXplUXVlcnko
Y29uc3QgVUNoYXIqIHNwZWMsIGNvbnN0IFVSTENvbXBvbmVudCYgcXVlcnksIENoYXJzZXRDb252
ZXJ0ZXIqIGNvbnZlcnRlciwKK3ZvaWQgQ2Fub25pY2FsaXplUXVlcnkoY29uc3QgVUNoYXIqIHNw
ZWMsIGNvbnN0IFVSTENvbXBvbmVudCYgcXVlcnksIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciog
Y29udmVydGVyLAogICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1
dCwgVVJMQ29tcG9uZW50KiBvdXRwdXRRdWVyeUNvbXBvbmVudCkKIHsKICAgICBkb0Nhbm9uaWNh
bGl6ZVF1ZXJ5KHNwZWMsIHF1ZXJ5LCBjb252ZXJ0ZXIsIG91dHB1dCwgKm91dHB1dFF1ZXJ5Q29t
cG9uZW50KTsKIH0KIAotdm9pZCBDb252ZXJ0VVRGMTZUb1F1ZXJ5RW5jb2RpbmcoY29uc3QgVUNo
YXIqIGlucHV0LCBjb25zdCBVUkxDb21wb25lbnQmIHF1ZXJ5LCBDaGFyc2V0Q29udmVydGVyKiBj
b252ZXJ0ZXIsIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0cHV0KQordm9pZCBDb252ZXJ0VVRGMTZUb1F1
ZXJ5RW5jb2RpbmcoY29uc3QgVUNoYXIqIGlucHV0LCBjb25zdCBVUkxDb21wb25lbnQmIHF1ZXJ5
LCBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIGNvbnZlcnRlciwgVVJMQnVmZmVyPGNoYXI+JiBv
dXRwdXQpCiB7CiAgICAgZG9Db252ZXJ0VG9RdWVyeUVuY29kaW5nPFVDaGFyPihpbnB1dCwgcXVl
cnksIGNvbnZlcnRlciwgb3V0cHV0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Vy
bC9zcmMvVVJMQ2Fub25SZWxhdGl2ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91cmwvc3JjL1VSTENh
bm9uUmVsYXRpdmUuY3BwCmluZGV4IDM1NjRlYTM5NGY5YjdhNGFhODNlYTAzZTRjMTllODYxNjJh
MWZjNWEuLjdlZjA1MDA2NDMwYWZjMmJhMjczM2M2NzQ5NzdiZjZiNGE2ZWRjY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMQ2Fub25SZWxhdGl2ZS5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvdXJsL3NyYy9VUkxDYW5vblJlbGF0aXZlLmNwcApAQCAtMjgzLDcgKzI4Myw3
IEBAIGJvb2wgZG9SZXNvbHZlUmVsYXRpdmVQYXRoKGNvbnN0IGNoYXIqIGJhc2VVUkwsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sIC8qIGJhc2VJc0ZpbGUgKi8sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBDSEFSKiByZWxhdGl2ZVVSTCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFVSTENvbXBvbmVudCYgcmVsYXRpdmVDb21wb25lbnQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNvbnZlcnRlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogcXVl
cnlDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4m
IG91dHB1dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTFNlZ21lbnRzKiBvdXRwdXRQ
YXJzZWQpCiB7CkBAIC0zOTAsNyArMzkwLDcgQEAgYm9vbCBkb1Jlc29sdmVSZWxhdGl2ZUhvc3Qo
Y29uc3QgY2hhciogYmFzZVVSTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVS
TFNlZ21lbnRzJiBiYXNlUGFyc2VkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Q0hBUiogcmVsYXRpdmVVUkwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxD
b21wb25lbnQmIHJlbGF0aXZlQ29tcG9uZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+JiBvdXRwdXQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBVUkxTZWdtZW50cyogb3V0cHV0UGFyc2VkKQogewpAQCAtNDIxLDcgKzQy
MSw3IEBAIGJvb2wgZG9SZXNvbHZlUmVsYXRpdmVIb3N0KGNvbnN0IGNoYXIqIGJhc2VVUkwsCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogYm9vbCBkb1Jlc29sdmVBYnNvbHV0ZUZp
bGUoY29uc3QgQ2hhcmFjdGVyVHlwZSogcmVsYXRpdmVVUkwsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBVUkxDb21wb25lbnQmIHJlbGF0aXZlQ29tcG9uZW50LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29u
dmVydGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+JiBvdXRw
dXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50cyYgb3V0cHV0UGFyc2Vk
KQogewpAQCAtNDQ0LDcgKzQ0NCw3IEBAIGJvb2wgZG9SZXNvbHZlUmVsYXRpdmVVUkwoY29uc3Qg
Y2hhciogYmFzZVVSTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBiYXNlSXNGaWxl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDSEFSKiByZWxhdGl2ZVVSTCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVVJMQ29tcG9uZW50JiByZWxhdGl2ZUNvbXBv
bmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlD
b252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZl
cnRlciogcXVlcnlDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZl
cjxjaGFyPiYgb3V0cHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50cyog
b3V0cHV0UGFyc2VkKQogewpAQCAtNTQ0LDcgKzU0NCw3IEBAIGJvb2wgcmVzb2x2ZVJlbGF0aXZl
VVJMKGNvbnN0IGNoYXIqIGJhc2VVUkwsCiAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGJh
c2VJc0ZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByZWxhdGl2ZVVS
TCwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVSTENvbXBvbmVudCYgcmVsYXRpdmVD
b21wb25lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICBDaGFyc2V0Q29udmVydGVyKiBxdWVy
eUNvbnZlcnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZl
cnRlciogcXVlcnlDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8
Y2hhcj4mIG91dHB1dCwKICAgICAgICAgICAgICAgICAgICAgICAgIFVSTFNlZ21lbnRzKiBvdXRw
dXRQYXJzZWQpCiB7CkBAIC01NTcsNyArNTU3LDcgQEAgYm9vbCByZXNvbHZlUmVsYXRpdmVVUkwo
Y29uc3QgY2hhciogYmFzZVVSTCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYmFzZUlz
RmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiByZWxhdGl2ZVVSTCwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVSTENvbXBvbmVudCYgcmVsYXRpdmVDb21w
b25lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICBDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNv
bnZlcnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRl
ciogcXVlcnlDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hh
cj4mIG91dHB1dCwKICAgICAgICAgICAgICAgICAgICAgICAgIFVSTFNlZ21lbnRzKiBvdXRwdXRQ
YXJzZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91cmwvc3JjL1VSTENhbm9uU3Rk
VVJMLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMQ2Fub25TdGRVUkwuY3BwCmluZGV4
IDEyZDllOWVkOTNmMmU4ZTE2M2FmNTZhNTNhNWMyMTE4NDEzOTg1Y2QuLjVlMmRkMWNlYWYxNDky
YTViMjZkM2I4ODYzMDU1MzgzMTg0MzM5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Vy
bC9zcmMvVVJMQ2Fub25TdGRVUkwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJM
Q2Fub25TdGRVUkwuY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSB7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDSEFSLCB0eXBlbmFtZSBVQ0hBUj4KIGJvb2wgZG9DYW5vbmljYWxpemVTdGFuZGFy
ZFVSTChjb25zdCBVUkxDb21wb25lbnRTb3VyY2U8Q0hBUj4mIHNvdXJjZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxTZWdtZW50cyYgcGFyc2VkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciog
cXVlcnlDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVy
PGNoYXI+JiBvdXRwdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMU2VnbWVu
dHMmIG91dHB1dFBhcnNlZCkKIHsKQEAgLTE0Niw3ICsxNDYsNyBAQCBpbnQgZGVmYXVsdFBvcnRG
b3JTY2hlbWUoY29uc3QgY2hhciogc2NoZW1lLCBpbnQgc2NoZW1lTGVuZ3RoKQogYm9vbCBDYW5v
bmljYWxpemVTdGFuZGFyZFVSTChjb25zdCBjaGFyKiBzcGVjLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgLyogc3BlY0xlbmd0aCAqLywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgVVJMU2VnbWVudHMmIHBhcnNlZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0cHV0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxTZWdtZW50cyogb3V0cHV0UGFyc2VkKQogewpA
QCAtMTU3LDcgKzE1Nyw3IEBAIGJvb2wgQ2Fub25pY2FsaXplU3RhbmRhcmRVUkwoY29uc3QgY2hh
ciogc3BlYywKIGJvb2wgQ2Fub25pY2FsaXplU3RhbmRhcmRVUkwoY29uc3QgVUNoYXIqIHNwZWMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKiBzcGVjTGVuZ3RoICovLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxTZWdtZW50cyYgcGFyc2VkLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyc2V0Q29udmVydGVyKiBxdWVyeUNvbnZlcnRl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVy
KiBxdWVyeUNvbnZlcnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVy
PGNoYXI+JiBvdXRwdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTFNlZ21lbnRz
KiBvdXRwdXRQYXJzZWQpCiB7CkBAIC0xNzcsNyArMTc3LDcgQEAgYm9vbCBDYW5vbmljYWxpemVT
dGFuZGFyZFVSTChjb25zdCBVQ2hhciogc3BlYywKIGJvb2wgUmVwbGFjZVN0YW5kYXJkVVJMKGNv
bnN0IGNoYXIqIGJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxTZWdtZW50
cyYgYmFzZVBhcnNlZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlcGxhY2VtZW50
czxjaGFyPiYgcmVwbGFjZW1lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcnNldENv
bnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBVUkxRdWVy
eUNoYXJzZXRDb252ZXJ0ZXIqIHF1ZXJ5Q29udmVydGVyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgVVJMQnVmZmVyPGNoYXI+JiBvdXRwdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICBVUkxT
ZWdtZW50cyogb3V0cHV0UGFyc2VkKQogewpAQCAtMTkyLDcgKzE5Miw3IEBAIGJvb2wgUmVwbGFj
ZVN0YW5kYXJkVVJMKGNvbnN0IGNoYXIqIGJhc2UsCiBib29sIFJlcGxhY2VTdGFuZGFyZFVSTChj
b25zdCBjaGFyKiBiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVVJMU2VnbWVu
dHMmIGJhc2VQYXJzZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXBsYWNlbWVu
dHM8VUNoYXI+JiByZXBsYWNlbWVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgICBDaGFyc2V0
Q29udmVydGVyKiBxdWVyeUNvbnZlcnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFVSTFF1
ZXJ5Q2hhcnNldENvbnZlcnRlciogcXVlcnlDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1dCwKICAgICAgICAgICAgICAgICAgICAgICAgIFVS
TFNlZ21lbnRzKiBvdXRwdXRQYXJzZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
cmwvc3JjL1VSTFV0aWwuY3BwIGIvU291cmNlL1dURi93dGYvdXJsL3NyYy9VUkxVdGlsLmNwcApp
bmRleCA5ZGNmYWJjZWU4YzgxN2NkZDE1ZjI1MWJkNmQ2MzA4ZWYwYWM5Y2M3Li5kMDUzNTEzOGQ5
NDc3MTVkM2FiNzI3MGEyOTA2YjJmOWNlYzJjZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi91cmwvc3JjL1VSTFV0aWwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMVXRp
bC5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBib29sIGRvRmluZEFuZENvbXBhcmVTY2hlbWUoY29u
c3QgQ2hhcmFjdGVyVHlwZSogc3RyLCBpbnQgc3RyTGVuZ3RoLCBjb25zdCBjaGFyKgogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogYm9vbCBkb0Nhbm9uaWNhbGl6ZShjb25zdCBD
aGFyYWN0ZXJUeXBlKiBpblNwZWMsIGludCBpblNwZWNMZW5ndGgsCi0gICAgICAgICAgICAgICAg
ICAgIFVSTENhbm9uaWNhbGl6ZXI6OkNoYXJzZXRDb252ZXJ0ZXIqIGNoYXJzZXRDb252ZXJ0ZXIs
CisgICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciogY2hhcnNldENv
bnZlcnRlciwKICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+JiBvdXRwdXQsIFVS
TFNlZ21lbnRzJiBvdXB1dFBhcnNlZCkKIHsKICAgICAvLyBSZW1vdmUgYW55IHdoaXRlc3BhY2Ug
ZnJvbSB0aGUgbWlkZGxlIG9mIHRoZSByZWxhdGl2ZSBVUkwsIHBvc3NpYmx5CkBAIC0xOTQsNyAr
MTk0LDcgQEAgYm9vbCBkb0Nhbm9uaWNhbGl6ZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBpblNwZWMs
IGludCBpblNwZWNMZW5ndGgsCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogYm9v
bCBkb1Jlc29sdmVSZWxhdGl2ZShjb25zdCBjaGFyKiBiYXNlU3BlYywgY29uc3QgVVJMU2VnbWVu
dHMmIGJhc2VQYXJzZWQsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENoYXJhY3RlclR5
cGUqIGluUmVsYXRpdmUsIGludCBpblJlbGF0aXZlTGVuZ3RoLAotICAgICAgICAgICAgICAgICAg
ICAgICBVUkxDYW5vbmljYWxpemVyOjpDaGFyc2V0Q29udmVydGVyKiBjaGFyc2V0Q29udmVydGVy
LAorICAgICAgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIGNoYXJz
ZXRDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYgb3V0
cHV0LCBVUkxTZWdtZW50cyogb3VwdXRQYXJzZWQpCiB7CiAgICAgLy8gUmVtb3ZlIGFueSB3aGl0
ZXNwYWNlIGZyb20gdGhlIG1pZGRsZSBvZiB0aGUgcmVsYXRpdmUgVVJMLCBwb3NzaWJseQpAQCAt
MjMyLDcgKzIzMiw3IEBAIGJvb2wgZG9SZXBsYWNlQ29tcG9uZW50cyhjb25zdCBjaGFyKiBzcGVj
LAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcGVjTGVuZ3RoLAogICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFVSTFNlZ21lbnRzJiBwYXJzZWQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgVVJMQ2Fub25pY2FsaXplcjo6UmVwbGFjZW1lbnRzPENoYXJhY3RlclR5
cGU+JiByZXBsYWNlbWVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgVVJMQ2Fub25pY2Fs
aXplcjo6Q2hhcnNldENvbnZlcnRlciogY2hhcnNldENvbnZlcnRlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIGNoYXJzZXRDb252ZXJ0ZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+JiBvdXRwdXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgVVJMU2VnbWVudHMmIG91dHB1dFBhcnNlZCkKIHsKQEAgLTM0MCwx
NCArMzQwLDE0IEBAIGJvb2wgRmluZEFuZENvbXBhcmVTY2hlbWUoY29uc3QgVUNoYXIqIHN0ciwg
aW50IHN0ckxlbmd0aCwgY29uc3QgY2hhciogY29tcGFyZSwKIH0KIAogYm9vbCBjYW5vbmljYWxp
emUoY29uc3QgY2hhciogc3BlYywgaW50IHNwZWNMZW5ndGgsCi0gICAgICAgICAgICAgICAgICBV
UkxDYW5vbmljYWxpemVyOjpDaGFyc2V0Q29udmVydGVyKiBjaGFyc2V0Q29udmVydGVyLAorICAg
ICAgICAgICAgICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBjaGFyc2V0Q29udmVydGVy
LAogICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+JiBvdXRwdXQsIFVSTFNlZ21lbnRz
JiBvdXB1dFBhcnNlZCkKIHsKICAgICByZXR1cm4gZG9DYW5vbmljYWxpemUoc3BlYywgc3BlY0xl
bmd0aCwgY2hhcnNldENvbnZlcnRlciwgb3V0cHV0LCBvdXB1dFBhcnNlZCk7CiB9CiAKIGJvb2wg
Y2Fub25pY2FsaXplKGNvbnN0IFVDaGFyKiBzcGVjLCBpbnQgc3BlY0xlbmd0aCwKLSAgICAgICAg
ICAgICAgICAgIFVSTENhbm9uaWNhbGl6ZXI6OkNoYXJzZXRDb252ZXJ0ZXIqIGNoYXJzZXRDb252
ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIGNoYXJz
ZXRDb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1dCwg
VVJMU2VnbWVudHMmIG91cHV0UGFyc2VkKQogewogICAgIHJldHVybiBkb0Nhbm9uaWNhbGl6ZShz
cGVjLCBzcGVjTGVuZ3RoLCBjaGFyc2V0Q29udmVydGVyLCBvdXRwdXQsIG91cHV0UGFyc2VkKTsK
QEAgLTM1NSw3ICszNTUsNyBAQCBib29sIGNhbm9uaWNhbGl6ZShjb25zdCBVQ2hhciogc3BlYywg
aW50IHNwZWNMZW5ndGgsCiAKIGJvb2wgcmVzb2x2ZVJlbGF0aXZlKGNvbnN0IGNoYXIqIGJhc2VT
cGVjLCBjb25zdCBVUkxTZWdtZW50cyYgYmFzZVBhcnNlZCwKICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIHJlbGF0aXZlLCBpbnQgcmVsYXRpdmVMZW5ndGgsCi0gICAgICAgICAgICAg
ICAgICAgICBVUkxDYW5vbmljYWxpemVyOjpDaGFyc2V0Q29udmVydGVyKiBjaGFyc2V0Q29udmVy
dGVyLAorICAgICAgICAgICAgICAgICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBjaGFy
c2V0Q29udmVydGVyLAogICAgICAgICAgICAgICAgICAgICAgVVJMQnVmZmVyPGNoYXI+JiBvdXRw
dXQsIFVSTFNlZ21lbnRzKiBvdXB1dFBhcnNlZCkKIHsKICAgICByZXR1cm4gZG9SZXNvbHZlUmVs
YXRpdmUoYmFzZVNwZWMsIGJhc2VQYXJzZWQsCkBAIC0zNjUsNyArMzY1LDcgQEAgYm9vbCByZXNv
bHZlUmVsYXRpdmUoY29uc3QgY2hhciogYmFzZVNwZWMsIGNvbnN0IFVSTFNlZ21lbnRzJiBiYXNl
UGFyc2VkLAogCiBib29sIHJlc29sdmVSZWxhdGl2ZShjb25zdCBjaGFyKiBiYXNlU3BlYywgY29u
c3QgVVJMU2VnbWVudHMmIGJhc2VQYXJzZWQsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBV
Q2hhciogcmVsYXRpdmUsIGludCByZWxhdGl2ZUxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAg
IFVSTENhbm9uaWNhbGl6ZXI6OkNoYXJzZXRDb252ZXJ0ZXIqIGNoYXJzZXRDb252ZXJ0ZXIsCisg
ICAgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIqIGNoYXJzZXRDb252
ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1dCwgVVJM
U2VnbWVudHMqIG91cHV0UGFyc2VkKQogewogICAgIHJldHVybiBkb1Jlc29sdmVSZWxhdGl2ZShi
YXNlU3BlYywgYmFzZVBhcnNlZCwKQEAgLTM3Nyw3ICszNzcsNyBAQCBib29sIFJlcGxhY2VDb21w
b25lbnRzKGNvbnN0IGNoYXIqIHNwZWMsCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcGVj
TGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxTZWdtZW50cyYgcGFyc2Vk
LAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxDYW5vbmljYWxpemVyOjpSZXBsYWNl
bWVudHM8Y2hhcj4mIHJlcGxhY2VtZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgVVJMQ2Fu
b25pY2FsaXplcjo6Q2hhcnNldENvbnZlcnRlciogY2hhcnNldENvbnZlcnRlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiBjaGFyc2V0Q29udmVydGVy
LAogICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mIG91dHB1dCwKICAgICAg
ICAgICAgICAgICAgICAgICAgVVJMU2VnbWVudHMqIG91dHB1dFBhcnNlZCkKIHsKQEAgLTM4OSw3
ICszODksNyBAQCBib29sIFJlcGxhY2VDb21wb25lbnRzKGNvbnN0IGNoYXIqIHNwZWMsCiAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBzcGVjTGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBVUkxTZWdtZW50cyYgcGFyc2VkLAogICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBVUkxDYW5vbmljYWxpemVyOjpSZXBsYWNlbWVudHM8VUNoYXI+JiByZXBsYWNlbWVudHMsCi0g
ICAgICAgICAgICAgICAgICAgICAgIFVSTENhbm9uaWNhbGl6ZXI6OkNoYXJzZXRDb252ZXJ0ZXIq
IGNoYXJzZXRDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5Q2hhcnNl
dENvbnZlcnRlciogY2hhcnNldENvbnZlcnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgVVJM
QnVmZmVyPGNoYXI+JiBvdXRwdXQsCiAgICAgICAgICAgICAgICAgICAgICAgIFVSTFNlZ21lbnRz
KiBvdXRwdXRQYXJzZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91cmwvc3JjL1VS
TFV0aWwuaCBiL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMVXRpbC5oCmluZGV4IDBmOWNhOTM1
ZjdhMmY5OTE4N2VjNDI0Njk1YmI1ZjMxNGVmMjFmNDEuLmE3MzkyNDE3NzE1ZGZkYTIxMzA5ZDNl
NjAzYzdjN2QwN2I4MWQzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJM
VXRpbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VybC9zcmMvVVJMVXRpbC5oCkBAIC00MSw2ICs0
MSw4IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCitjbGFzcyBVUkxRdWVyeUNoYXJzZXRDb252ZXJ0
ZXI7CisKIG5hbWVzcGFjZSBVUkxVdGlsaXRpZXMgewogCiAvLyBMb2NhdGVzIHRoZSBzY2hlbWUg
aW4gdGhlIGdpdmVuIHN0cmluZyBhbmQgcGxhY2VzIGl0IGludG8gfGZvdW5kU2NoZW1lfCwKQEAg
LTY5LDkgKzcxLDkgQEAgYm9vbCBpc1N0YW5kYXJkKGNvbnN0IFVDaGFyKiBzcGVjLCBjb25zdCBV
UkxDb21wb25lbnQmIHNjaGVtZSk7CiAvLyBSZXR1cm5zIHRydWUgaWYgYSB2YWxpZCBVUkwgd2Fz
IHByb2R1Y2VkLCBmYWxzZSBpZiBub3QuIE9uIGZhaWx1cmUsIHRoZQogLy8gb3V0cHV0IGFuZCBw
YXJzZWQgc3RydWN0dXJlcyB3aWxsIHN0aWxsIGJlIGZpbGxlZCBhbmQgd2lsbCBiZSBjb25zaXN0
ZW50LAogLy8gYnV0IHRoZXkgd2lsbCBub3QgcmVwcmVzZW50IGEgbG9hZGFibGUgVVJMLgotYm9v
bCBjYW5vbmljYWxpemUoY29uc3QgY2hhciogc3BlYywgaW50IHNwZWNMZW5ndGgsIFVSTENhbm9u
aWNhbGl6ZXI6OkNoYXJzZXRDb252ZXJ0ZXIqLAorYm9vbCBjYW5vbmljYWxpemUoY29uc3QgY2hh
ciogc3BlYywgaW50IHNwZWNMZW5ndGgsIFVSTFF1ZXJ5Q2hhcnNldENvbnZlcnRlciosCiAgICAg
ICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mLCBVUkxTZWdtZW50cyYgb3VwdXRQYXJzZWQp
OwotYm9vbCBjYW5vbmljYWxpemUoY29uc3QgVUNoYXIqIHNwZWMsIGludCBzcGVjTGVuZ3RoLCBV
UkxDYW5vbmljYWxpemVyOjpDaGFyc2V0Q29udmVydGVyKiwKK2Jvb2wgY2Fub25pY2FsaXplKGNv
bnN0IFVDaGFyKiBzcGVjLCBpbnQgc3BlY0xlbmd0aCwgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVy
KiwKICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYsIFVSTFNlZ21lbnRzJiBvdXB1
dFBhcnNlZCk7CiAKIC8vIFJlc29sdmVzIGEgcG90ZW50aWFsbHkgcmVsYXRpdmUgVVJMIHJlbGF0
aXZlIHRvIHRoZSBnaXZlbiBwYXJzZWQgYmFzZSBVUkwuCkBAIC04NiwxMSArODgsMTEgQEAgYm9v
bCBjYW5vbmljYWxpemUoY29uc3QgVUNoYXIqIHNwZWMsIGludCBzcGVjTGVuZ3RoLCBVUkxDYW5v
bmljYWxpemVyOjpDaGFyc2V0Q28KIC8vIGEgdmFsaWQgVVJMLgogYm9vbCByZXNvbHZlUmVsYXRp
dmUoY29uc3QgY2hhciogYmFzZVNwZWMsIGNvbnN0IFVSTFNlZ21lbnRzJiBiYXNlUGFyc2VkLAog
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcmVsYXRpdmUsIGludCByZWxhdGl2ZUxl
bmd0aCwKLSAgICAgICAgICAgICAgICAgICAgIFVSTENhbm9uaWNhbGl6ZXI6OkNoYXJzZXRDb252
ZXJ0ZXIqLAorICAgICAgICAgICAgICAgICAgICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiwK
ICAgICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFyPiYsIFVSTFNlZ21lbnRzKiBvdXB1
dFBhcnNlZCk7CiBib29sIHJlc29sdmVSZWxhdGl2ZShjb25zdCBjaGFyKiBiYXNlU3BlYywgY29u
c3QgVVJMU2VnbWVudHMmIGJhc2VQYXJzZWQsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBV
Q2hhciogcmVsYXRpdmUsIGludCByZWxhdGl2ZUxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAg
IFVSTENhbm9uaWNhbGl6ZXI6OkNoYXJzZXRDb252ZXJ0ZXIqLAorICAgICAgICAgICAgICAgICAg
ICAgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyKiwKICAgICAgICAgICAgICAgICAgICAgIFVSTEJ1
ZmZlcjxjaGFyPiYsIFVSTFNlZ21lbnRzKiBvdXB1dFBhcnNlZCk7CiAKIC8vIFJlcGxhY2VzIGNv
bXBvbmVudHMgaW4gdGhlIGdpdmVuIFZBTElEIGlucHV0IHVybC4gVGhlIG5ldyBjYW5vbmljYWwg
VVJMIGluZm8KQEAgLTk5LDExICsxMDEsMTEgQEAgYm9vbCByZXNvbHZlUmVsYXRpdmUoY29uc3Qg
Y2hhciogYmFzZVNwZWMsIGNvbnN0IFVSTFNlZ21lbnRzJiBiYXNlUGFyc2VkLAogLy8gUmV0dXJu
cyB0cnVlIGlmIHRoZSByZXN1bHRpbmcgVVJMIGlzIHZhbGlkLgogYm9vbCBSZXBsYWNlQ29tcG9u
ZW50cyhjb25zdCBjaGFyKiBzcGVjLCBpbnQgc3BlY0xlbmd0aCwgY29uc3QgVVJMU2VnbWVudHMm
IHBhcnNlZCwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVVJMQ2Fub25pY2FsaXplcjo6
UmVwbGFjZW1lbnRzPGNoYXI+JiwKLSAgICAgICAgICAgICAgICAgICAgICAgVVJMQ2Fub25pY2Fs
aXplcjo6Q2hhcnNldENvbnZlcnRlciosCisgICAgICAgICAgICAgICAgICAgICAgIFVSTFF1ZXJ5
Q2hhcnNldENvbnZlcnRlciosCiAgICAgICAgICAgICAgICAgICAgICAgIFVSTEJ1ZmZlcjxjaGFy
PiYsIFVSTFNlZ21lbnRzKiBvdXRwdXRQYXJzZWQpOwogYm9vbCBSZXBsYWNlQ29tcG9uZW50cyhj
b25zdCBjaGFyKiBzcGVjLCBpbnQgc3BlY0xlbmd0aCwgY29uc3QgVVJMU2VnbWVudHMmIHBhcnNl
ZCwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVVJMQ2Fub25pY2FsaXplcjo6UmVwbGFj
ZW1lbnRzPFVDaGFyPiYsCi0gICAgICAgICAgICAgICAgICAgICAgIFVSTENhbm9uaWNhbGl6ZXI6
OkNoYXJzZXRDb252ZXJ0ZXIqLAorICAgICAgICAgICAgICAgICAgICAgICBVUkxRdWVyeUNoYXJz
ZXRDb252ZXJ0ZXIqLAogICAgICAgICAgICAgICAgICAgICAgICBVUkxCdWZmZXI8Y2hhcj4mLCBV
UkxTZWdtZW50cyogb3V0cHV0UGFyc2VkKTsKIAogLy8gU3RyaW5nIGhlbHBlciBmdW5jdGlvbnMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VSTFdURlVSTC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9LVVJMV1RGVVJMLmNwcAppbmRleCA3ZmI0ZDRhYTBlYzYwZGVlOTE4
ZjU1ZTk4NGY2ZmQ2NDc1MDRlZGRhLi45YTM0ODRkNDE2ZWFhMTFjNDMyNWEyZmQzMjM2MmI5YWJh
Zjc3NzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMV1RGVVJMLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMV1RGVVJMLmNwcApAQCAtMjYsNyAr
MjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAKKyNpbmNs
dWRlIDxUZXh0RW5jb2RpbmcuaD4KICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdXJsL2FwaS9VUkxCdWZmZXIuaD4K
KyNpbmNsdWRlIDx3dGYvdXJsL2FwaS9VUkxRdWVyeUNoYXJzZXRDb252ZXJ0ZXIuaD4KIAogI2lm
IFVTRShXVEZVUkwpCiAKQEAgLTUxLDM0ICs1NSw1MiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZGV0
YWNoKFJlZlB0cjxLVVJMV1RGVVJMSW1wbD4mIHVybEltcGwpCiBLVVJMOjpLVVJMKFBhcnNlZFVS
TFN0cmluZ1RhZywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgOiBtX3VybEltcGwoYWRv
cHRSZWYobmV3IEtVUkxXVEZVUkxJbXBsKCkpKQogewotICAgIG1fdXJsSW1wbC0+bV9wYXJzZWRV
UkwgPSBQYXJzZWRVUkwodXJsU3RyaW5nKTsKKyAgICBtX3VybEltcGwtPm1fcGFyc2VkVVJMID0g
UGFyc2VkVVJMKHVybFN0cmluZywgUGFyc2VkVVJMOjpQYXJzZWRVUkxTdHJpbmcpOwogCiAgICAg
Ly8gRklYTUU6IEZyYW1lOjppbml0KCkgYWN0dWFsbHkgY3JlYXRlIGVtcHR5IFVSTCwgaW52ZXN0
aWdhdGUgd2h5IG5vdCBqdXN0IG51bGwgVVJMLgogICAgIC8vIEFTU0VSVChtX3VybEltcGwtPm1f
cGFyc2VkVVJMLmlzVmFsaWQoKSk7CiB9CiAKK2NsYXNzIENoYXJzZXRDb252ZXJ0ZXIgOiBwdWJs
aWMgVVJMUXVlcnlDaGFyc2V0Q29udmVydGVyIHsKK3B1YmxpYzoKKyAgICBDaGFyc2V0Q29udmVy
dGVyKGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCisgICAgICAgIDogbV9lbmNvZGluZyhl
bmNvZGluZykKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGNvbnZlcnRGcm9tVVRG
MTYoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBpbnB1dExlbmd0aCwgVVJMQnVmZmVyPGNo
YXI+JiBvdXRwdXQpIE9WRVJSSURFCisgICAgeworICAgICAgICBDU3RyaW5nIGVuY29kZWQgPSBt
X2VuY29kaW5nLmVuY29kZShpbnB1dCwgaW5wdXRMZW5ndGgsIFVSTEVuY29kZWRFbnRpdGllc0Zv
clVuZW5jb2RhYmxlcyk7CisgICAgICAgIG91dHB1dC5hcHBlbmQoZW5jb2RlZC5kYXRhKCksIHN0
YXRpY19jYXN0PGludD4oZW5jb2RlZC5sZW5ndGgoKSkpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBjb25zdCBUZXh0RW5jb2RpbmcmIG1fZW5jb2Rpbmc7Cit9OworCiBLVVJMOjpLVVJMKGNvbnN0
IEtVUkwmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgcmVsYXRpdmUpCiAgICAgOiBtX3VybEltcGwo
YWRvcHRSZWYobmV3IEtVUkxXVEZVUkxJbXBsKCkpKQogewogICAgIC8vIEZJWE1FOiB0aGUgY2Fz
ZSB3aXRoIGEgbnVsbCBiYXNlVVJMIGlzIGNvbW1vbi4gV2Ugc2hvdWxkIGhhdmUgYSBzZXBhcmF0
ZSBjb25zdHJ1Y3RvciBpbiBLVVJMLgogICAgIC8vIEZJWE1FOiB0aGUgY2FzZSBvZiBhbiBlbXB0
eSBCYXNlIGlzIHVzZWxlc3MsIHdlIHNob3VsZCBnZXQgcmlkIG9mIGVtcHR5IFVSTHMuCisgICAg
Q2hhcnNldENvbnZlcnRlciBjaGFyc2V0Q29udmVydGVyKFVURjhFbmNvZGluZygpKTsKICAgICBp
ZiAoYmFzZVVSTC5pc0VtcHR5KCkpCi0gICAgICAgIG1fdXJsSW1wbC0+bV9wYXJzZWRVUkwgPSBQ
YXJzZWRVUkwocmVsYXRpdmUpOworICAgICAgICBtX3VybEltcGwtPm1fcGFyc2VkVVJMID0gUGFy
c2VkVVJMKHJlbGF0aXZlLCAmY2hhcnNldENvbnZlcnRlcik7CiAgICAgZWxzZQotICAgICAgICBt
X3VybEltcGwtPm1fcGFyc2VkVVJMID0gUGFyc2VkVVJMKGJhc2VVUkwubV91cmxJbXBsLT5tX3Bh
cnNlZFVSTCwgcmVsYXRpdmUpOworICAgICAgICBtX3VybEltcGwtPm1fcGFyc2VkVVJMID0gUGFy
c2VkVVJMKGJhc2VVUkwubV91cmxJbXBsLT5tX3BhcnNlZFVSTCwgcmVsYXRpdmUsICZjaGFyc2V0
Q29udmVydGVyKTsKIAogICAgIGlmICghbV91cmxJbXBsLT5tX3BhcnNlZFVSTC5pc1ZhbGlkKCkp
CiAgICAgICAgIG1fdXJsSW1wbC0+bV9pbnZhbGlkVXJsU3RyaW5nID0gcmVsYXRpdmU7CiB9CiAK
LUtVUkw6OktVUkwoY29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiByZWxhdGl2ZSwg
Y29uc3QgVGV4dEVuY29kaW5nJikKK0tVUkw6OktVUkwoY29uc3QgS1VSTCYgYmFzZVVSTCwgY29u
c3QgU3RyaW5nJiByZWxhdGl2ZSwgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKICAgICA6
IG1fdXJsSW1wbChhZG9wdFJlZihuZXcgS1VSTFdURlVSTEltcGwoKSkpCiB7Ci0gICAgLy8gRklY
TUU6IGhhbmRsZSB0aGUgZW5jb2RpbmcuCisgICAgQ2hhcnNldENvbnZlcnRlciBjaGFyc2V0Q29u
dmVydGVyKGVuY29kaW5nLmVuY29kaW5nRm9yRm9ybVN1Ym1pc3Npb24oKSk7CiAgICAgaWYgKGJh
c2VVUkwuaXNFbXB0eSgpKQotICAgICAgICBtX3VybEltcGwtPm1fcGFyc2VkVVJMID0gUGFyc2Vk
VVJMKHJlbGF0aXZlKTsKKyAgICAgICAgbV91cmxJbXBsLT5tX3BhcnNlZFVSTCA9IFBhcnNlZFVS
TChyZWxhdGl2ZSwgJmNoYXJzZXRDb252ZXJ0ZXIpOwogICAgIGVsc2UKLSAgICAgICAgbV91cmxJ
bXBsLT5tX3BhcnNlZFVSTCA9IFBhcnNlZFVSTChiYXNlVVJMLm1fdXJsSW1wbC0+bV9wYXJzZWRV
UkwsIHJlbGF0aXZlKTsKKyAgICAgICAgbV91cmxJbXBsLT5tX3BhcnNlZFVSTCA9IFBhcnNlZFVS
TChiYXNlVVJMLm1fdXJsSW1wbC0+bV9wYXJzZWRVUkwsIHJlbGF0aXZlLCAmY2hhcnNldENvbnZl
cnRlcik7CiAKICAgICBpZiAoIW1fdXJsSW1wbC0+bV9wYXJzZWRVUkwuaXNWYWxpZCgpKQogICAg
ICAgICBtX3VybEltcGwtPm1faW52YWxpZFVybFN0cmluZyA9IHJlbGF0aXZlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tVUkxNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbQppbmRleCA5ZWZiZWUwZDg3ZGZmMDk3YmMxOGIxZDMy
Y2NiNmUzZjRmOTg5OTQxLi5kNWMyNWUxNDdiYzA3Nzc4MmUwYzQyNDlhOTgyNzU0OTBkOThkMjc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbQpAQCAtNTMsNyArNTMsNyBA
QCBLVVJMOjpLVVJMKE5TVVJMICp1cmwpCiAjZWxzZQogICAgIG1fdXJsSW1wbCA9IGFkb3B0UmVm
KG5ldyBLVVJMV1RGVVJMSW1wbCgpKTsKICAgICBTdHJpbmcgdXJsU3RyaW5nKGJ5dGVzLCBieXRl
c0xlbmd0aCk7Ci0gICAgbV91cmxJbXBsLT5tX3BhcnNlZFVSTCA9IFBhcnNlZFVSTCh1cmxTdHJp
bmcpOworICAgIG1fdXJsSW1wbC0+bV9wYXJzZWRVUkwgPSBQYXJzZWRVUkwodXJsU3RyaW5nLCAw
KTsKICAgICBpZiAoIW1fdXJsSW1wbC0+bV9wYXJzZWRVUkwuaXNWYWxpZCgpKQogICAgICAgICBt
X3VybEltcGwtPm1faW52YWxpZFVybFN0cmluZyA9IHVybFN0cmluZzsKICNlbmRpZiAvLyBVU0Uo
V1RGVVJMKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>