<?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>186407</bug_id>
          
          <creation_ts>2018-06-07 13:49:33 -0700</creation_ts>
          <short_desc>Add base class to get WeakPtrFactory member and avoid some boilerplate code</short_desc>
          <delta_ts>2018-06-07 21:55:27 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fujii</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1431006</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-07 13:49:33 -0700</bug_when>
    <thetext>Add base class to get WeakPtrFactory member and avoid some boilerplate code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431066</commentid>
    <comment_count>1</comment_count>
      <attachid>342216</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-07 16:13:21 -0700</bug_when>
    <thetext>Created attachment 342216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431076</commentid>
    <comment_count>2</comment_count>
      <attachid>342219</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-07 16:28:13 -0700</bug_when>
    <thetext>Created attachment 342219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431122</commentid>
    <comment_count>3</comment_count>
      <attachid>342219</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-06-07 20:28:20 -0700</bug_when>
    <thetext>Comment on attachment 342219
Patch

Nice cleanup!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431124</commentid>
    <comment_count>4</comment_count>
      <attachid>342219</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-07 20:56:12 -0700</bug_when>
    <thetext>Comment on attachment 342219
Patch

Clearing flags on attachment: 342219

Committed r232613: &lt;https://trac.webkit.org/changeset/232613&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431125</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-07 20:56:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431126</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-07 20:57:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/40922716&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431145</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-06-07 21:55:27 -0700</bug_when>
    <thetext>Committed r232615: &lt;https://trac.webkit.org/changeset/232615&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342216</attachid>
            <date>2018-06-07 16:13:21 -0700</date>
            <delta_ts>2018-06-07 16:28:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186407-20180607161320.patch</filename>
            <type>text/plain</type>
            <size>215120</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YjM4MDcxZDFlODVkZjQ5MjQ2YzFiYWM4MGJhZmExNTJmOGIyZGFmLi45Y2Q5NGU3ZWQ1NmZjYWZk
NzcxOWRjNGJhNWFlMDBmNzY0OGU3ZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOC0wNi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBiYXNlIGNsYXNzIHRvIGdldCBXZWFrUHRyRmFjdG9yeSBtZW1iZXIgYW5k
IGF2b2lkIHNvbWUgYm9pbGVycGxhdGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIENhbk1ha2VXZWFrUHRyIGJhc2UgY2xhc3MgdG8gZ2V0
IFdlYWtQdHJGYWN0b3J5IG1lbWJlciBhbmQgaXRzIGdldHRlciwgaW4KKyAgICAgICAgb3JkZXIg
dG8gYXZvaWQgc29tZSBib2lsZXJwbGF0ZSBjb2RlIGluIGV2ZXJ5IGNsYXNzIG5lZWRpbmcgYSBX
ZWFrUHRyRmFjdG9yeS4KKyAgICAgICAgVGhpcyBhbHNvIGdldHMgcmlkIG9mIG9sZC1zdHlsZSBj
cmVhdGVXZWFrUHRyKCkgbWV0aG9kcyBpbiBmYXZvciBvZiB0aGUgbmV3ZXIKKyAgICAgICAgbWFr
ZVdlYWtQdHIoKS4KKworICAgICAgICAqIHdhc20vV2FzbUluc3RhbmNlLmg6CisgICAgICAgICog
d2FzbS9XYXNtTWVtb3J5LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5OjpyZWdpc3Rl
ckluc3RhbmNlKToKKwogMjAxOC0wNi0wNyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIERGRyB0byBGVEwgT1NSIGVudHJ5IGNvZGUgbW9yZSBzYW5lIGJ5
IHJlbW92aW5nIGJhZCBSRUxFQVNFX0FTU0VSVFMgYW5kIG1ha2luZyBpdCB0cmlnZ2VyIGNvbXBp
bGVzIGluIG91dGVyIGxvb3BzIGJlZm9yZSBpbm5lciBvbmVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1ZGI0MjQ0N2M1OGZh
MGJmMzdlN2E4ZTUxNGVhZmY3MzE3NjdhODUuLjkwM2VhODQxMmQ3NTRlZWFlYzFjMDI2OGYwNDY2
YjU4NTFhNTllNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTgtMDYtMDcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzZSBjbGFzcyB0byBnZXQgV2Vh
a1B0ckZhY3RvcnkgbWVtYmVyIGFuZCBhdm9pZCBzb21lIGJvaWxlcnBsYXRlIGNvZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQwNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBDYW5NYWtlV2Vh
a1B0ciBiYXNlIGNsYXNzIHRvIGdldCBXZWFrUHRyRmFjdG9yeSBtZW1iZXIgYW5kIGl0cyBnZXR0
ZXIsIGluCisgICAgICAgIG9yZGVyIHRvIGF2b2lkIHNvbWUgYm9pbGVycGxhdGUgY29kZSBpbiBl
dmVyeSBjbGFzcyBuZWVkaW5nIGEgV2Vha1B0ckZhY3RvcnkuCisgICAgICAgIFRoaXMgYWxzbyBn
ZXRzIHJpZCBvZiBvbGQtc3R5bGUgY3JlYXRlV2Vha1B0cigpIG1ldGhvZHMgaW4gZmF2b3Igb2Yg
dGhlIG5ld2VyCisgICAgICAgIG1ha2VXZWFrUHRyKCkuCisKKyAgICAgICAgKiB3dGYvV2Vha1B0
ci5oOgorICAgICAgICAoV1RGOjpDYW5NYWtlV2Vha1B0cjo6d2Vha1B0ckZhY3RvcnkgY29uc3Qp
OgorICAgICAgICAoV1RGOjpDYW5NYWtlV2Vha1B0cjo6d2Vha1B0ckZhY3RvcnkpOgorCiAyMDE4
LTA2LTA1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2Fd
IFJldGlyZSBEaXNwYXRjaFB0ciwgYW5kIGFkZCBtb3JlIG1vdmUgc2VtYW50aWNzIGFuZCBzaW1w
bGVyICNpZnMgdG8gb3RoZXIgc21hcnQgcG9pbnRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MjRkZDdjNjhm
OTBiM2MxYzFhZWRjNTE4MjgxMTYyNTY3MjdjYjJkLi45MzZlYTFjOTI0ZDJiNmYwM2FjY2Y0OGQ2
ZmMzNDI3MDZmZjA5ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjM1IEBACisyMDE4LTA2LTA3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2UgY2xh
c3MgdG8gZ2V0IFdlYWtQdHJGYWN0b3J5IG1lbWJlciBhbmQgYXZvaWQgc29tZSBib2lsZXJwbGF0
ZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODY0MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQ2FuTWFrZVdlYWtQdHIgYmFzZSBjbGFzcyB0byBnZXQgV2Vha1B0ckZhY3RvcnkgbWVtYmVy
IGFuZCBpdHMgZ2V0dGVyLCBpbgorICAgICAgICBvcmRlciB0byBhdm9pZCBzb21lIGJvaWxlcnBs
YXRlIGNvZGUgaW4gZXZlcnkgY2xhc3MgbmVlZGluZyBhIFdlYWtQdHJGYWN0b3J5LgorICAgICAg
ICBUaGlzIGFsc28gZ2V0cyByaWQgb2Ygb2xkLXN0eWxlIGNyZWF0ZVdlYWtQdHIoKSBtZXRob2Rz
IGluIGZhdm9yIG9mIHRoZSBuZXdlcgorICAgICAgICBtYWtlV2Vha1B0cigpLgorCisgICAgICAg
ICogTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5oOgor
ICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvTmF2aWdhdG9yQ3JlZGVudGlh
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQ3JlZGVudGlhbHM6OmNyZWRlbnRp
YWxzKToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDRE06OmRvU3VwcG9ydGVkQ29uZmlndXJhdGlvblN0ZXApOgorICAgICAgICAo
V2ViQ29yZTo6Q0RNOjpnZXRDb25zZW50U3RhdHVzKToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL0NETS5oOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6Z2VuZXJh
dGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6bG9hZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVNlc3Npb246OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5
U2Vzc2lvbjo6cmVtb3ZlKToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5U2Vzc2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5czo6Y3JlYXRlU2Vzc2lvbik6CisgICAg
ICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBh
ZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpHYW1lcGFkTWFuYWdlcjo6bWFrZUdhbWVwYWRWaXNpYmxlKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURl
dmljZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6YXBwbHlDb25zdHJh
aW50cyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNWR1Jvb3Q6OnNldFBhcmVudCk6CisgICAgICAgICogY3J5
cHRvL1N1YnRsZUNyeXB0by5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmVu
Y3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjpkZWNyeXB0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6c2lnbik6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0
bGVDcnlwdG86OnZlcmlmeSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmRpZ2Vz
dCk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmdlbmVyYXRlS2V5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6ZGVyaXZlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OlN1YnRsZUNyeXB0bzo6ZGVyaXZlQml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlw
dG86OmltcG9ydEtleSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmV4cG9ydEtl
eSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OndyYXBLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6U3VidGxlQ3J5cHRvOjp1bndyYXBLZXkpOgorICAgICAgICAqIGNyeXB0by9TdWJ0
bGVDcnlwdG8uaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udEZhY2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRGYWNlOjp3cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpzZXRXcmFw
cGVyKToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaDoKKyAgICAgICAgKiBj
c3MvRm9udEZhY2UuY3BwOgorICAgICAgICAqIGNzcy9Gb250RmFjZS5oOgorICAgICAgICAqIGNz
cy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
dmFsdWF0b3I6Ok1lZGlhUXVlcnlFdmFsdWF0b3IpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0
Q29udGVudHMuaDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU0RlZmVycmVkUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0RlZmVycmVkUGFyc2VyOjpDU1NEZWZlcnJlZFBhcnNlcik6
CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbUxpc3Q6OmVuc3VyZUl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJpbmdEYXRhKToKKyAgICAgICAgKiBkb20vRGF0
YVRyYW5zZmVySXRlbUxpc3QuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBvc3RUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXF1
ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29udGV4dERvY3VtZW50KToKKyAgICAgICAgKiBkb20vTWVz
c2FnZVBvcnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6c2V0UGljdHVyZUVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckNyZWF0ZVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
cGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnN0eWxlIGNv
bnN0KToKKyAgICAgICAgKiBsb2FkZXIvRm9ybVN0YXRlLmg6CisgICAgICAgICogbG9hZGVyL0xp
bmtMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6cHJlY29ubmVjdElm
TmVlZGVkKToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5oOgorICAgICAgICAqIGxvYWRl
ci9MaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5r
UHJlbG9hZFJlc291cmNlQ2xpZW50OjpMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50KToKKyAgICAg
ICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBsb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6Cisg
ICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2lkZ2V0
Rm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZUxhc3RT
Y3JvbGxiYXJVbmRlck1vdXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRhc2tEaXNwYXRjaGVyPFRpbWVyPjo6cG9zdFRhc2sp
OgorICAgICAgICAqIHBsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkdlbmVyaWNUYXNrUXVldWU6OmVucXVldWVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
bmVyaWNUYXNrUXVldWU6OmNhbmNlbEFsbFRhc2tzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxiYXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9XaWRnZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRQYXJlbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L1dpZGdldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVS
ZWFkZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpk
ZWNvZGVBdWRpb0ZvckJ1c0NyZWF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYzo6QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmg6CisgICAgICAgICog
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VDbGVhcktleTo6cmVxdWVzdExpY2Vuc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VDbGVhcktleTo6dXBkYXRlTGljZW5zZSk6CisgICAgICAg
IChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5Ojpsb2FkU2Vzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpjbG9zZVNlc3Npb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNSW5zdGFuY2VDbGVhcktleTo6cmVtb3ZlU2Vzc2lvbkRhdGEpOgorICAgICAgICAq
IHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2NoZWR1
bGVNYWluVGhyZWFkTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlzcGF0Y2hOb3RpZmljYXRpb24pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6
OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRl
b0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNoZWNrUGxheWFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpj
cmVhdGVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KToKKyAgICAgICAgKC1b
V2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpj
aGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlcXVlc3ROb3RpZmljYXRpb25XaGVuUmVhZHlGb3JWaWRl
b0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpzY2hlZHVsZURlZmVycmVkVGFzayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVGV4dHVyZUNhY2hlQ1YuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9U
ZXh0dXJlQ2FjaGVDVi5tbToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjp0ZXh0
dXJlRnJvbUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZWaWRlbyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mQXVkaW8pOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNz
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aGFuZGxlU3luY01lc3NhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aW5pdGlhbGl6
YXRpb25EYXRhRW5jb3VudGVyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmspOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5
TGlua0ZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6
OnNldE1hc2tMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNl
dFJlcGxpY2FMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjplbmRDcmVhdGVkTWVkaWFTb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjplbmRHZXRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRp
b246OkN1c3RvbVZpZGVvUHJlc2VudGVyOjpwcm9jZXNzSW5wdXROb3RpZnkpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6UmVtb3RlQ29tbWFu
ZExpc3RlbmVyTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hl
ZHVsZURlZmVycmVkVGFzayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpz
Y2hlZHVsZURlZmVycmVkVGFzayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9T
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFt
KToKKyAgICAgICAgKiBwbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5oOgorICAgICAgICAq
IHBsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFuYWdlck9wZW5WUi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWUlBsYXRmb3JtTWFuYWdlck9wZW5WUjo6Z2V0VlJEaXNwbGF5cyk6CisgICAg
ICAgICogcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5oOgorICAgICAgICAoV2ViQ29yZTo6Rmxv
YXRpbmdPYmplY3Q6OnNldE9yaWdpbmF0aW5nTGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRo
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnV2l0aENvbnRleHQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdXaXRoQ29udGV4dDo6U1ZHUGF0aFNlZ1dpdGhDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdXaXRoQ29udGV4dDo6c2V0Q29udGV4dEFu
ZFJvbGUpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFsKToKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFy
T2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJP
ZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQ
cm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVy
dHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5pdGlhbGl6ZVZhbHVl
c0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Z2V0SXRl
bVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6
aW5zZXJ0SXRlbUJlZm9yZVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAqIHRlc3RpbmcvTW9j
a0NETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETUZhY3Rvcnk6OmNyZWF0
ZUNETSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSk6CisgICAg
ICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9FeHRlbmRhYmxlRXZlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEV2ZW50OjpyZXNwb25kV2l0aCk6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oOgorICAgICAgICAqIHhtbC9E
T01QYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGFyc2VyOjpET01QYXJzZXIpOgor
CiAyMDE4LTA2LTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ10gTWVyZ2UgaGVpZ2h0IGFuZCB2ZXJ0aWNhbCBtYXJnaW4gY29tcHV0YXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IDBiODg3YzA2MTQ2NjA4MzU3YzE3ZTgxNGFhMzFjNzE4NmU3OTVjNDMu
Ljk1ZDlkYzEwYTIwNTFlZjQzODVkMTBlZTNhZjJkNWFhY2U5NTkyZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA2LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2UgY2xhc3MgdG8gZ2V0IFdlYWtQdHJGYWN0b3J5
IG1lbWJlciBhbmQgYXZvaWQgc29tZSBib2lsZXJwbGF0ZSBjb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY0MDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAxODY0MDdfQ2FuTWFrZVdlYWtQdHIKKwor
ICAgICAgICAqIHBhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMuaDoKKyAgICAg
ICAgKiBwYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tOgorICAgICAgICAo
UEFMOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjKToKKwog
MjAxOC0wNi0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBMb2dnaW5nIG1hY3JvcyBhcmUgc2Vuc2l0aXZlIHRvIHBhbC9Mb2dnaW5nLmggdnMgTG9n
Z2luZy5oIGluY2x1ZGUgb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDA5ZDM2YTZmOWFiOWM5YTBkNzYxNDBk
OThkNTFlMzg3NjkyMTczOC4uMDkyZTNhZTBhZTE4Zjk3NDY3N2E5NzEyMjg4MzkxNDNiZThhYzA2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxOC0wNi0wNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNlIGNsYXNzIHRvIGdldCBXZWFrUHRy
RmFjdG9yeSBtZW1iZXIgYW5kIGF2b2lkIHNvbWUgYm9pbGVycGxhdGUgY29kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NDA3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIENhbk1ha2VXZWFrUHRy
IGJhc2UgY2xhc3MgdG8gZ2V0IFdlYWtQdHJGYWN0b3J5IG1lbWJlciBhbmQgaXRzIGdldHRlciwg
aW4KKyAgICAgICAgb3JkZXIgdG8gYXZvaWQgc29tZSBib2lsZXJwbGF0ZSBjb2RlIGluIGV2ZXJ5
IGNsYXNzIG5lZWRpbmcgYSBXZWFrUHRyRmFjdG9yeS4KKyAgICAgICAgVGhpcyBhbHNvIGdldHMg
cmlkIG9mIG9sZC1zdHlsZSBjcmVhdGVXZWFrUHRyKCkgbWV0aG9kcyBpbiBmYXZvciBvZiB0aGUg
bmV3ZXIKKyAgICAgICAgbWFrZVdlYWtQdHIoKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkQ2hlY2tlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNhbkF1dGhlbnRp
Y2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1By
ZWNvbm5lY3RUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lLmg6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHA6
CisgICAgICAgIChBUEk6OkF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0
aXZlQ2FyZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpv
cGVuUGF5bWVudFNldHVwKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXBwbGVQYXkvbWFjL1dl
YlBheW1lbnRDb29yZGluYXRvclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1TaG93UGF5bWVudFVJKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW06CisgICAgICAgIChXZWJLaXQ6OkFwcGxpY2F0aW9u
U3RhdGVUcmFja2VyOjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZp
ZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFn
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzZXRUb3BDb250ZW50SW5zZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6dmlld0RpZE1vdmVUb1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpw
cmVwYXJlRm9yTW92ZVRvV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZh
bGlkYXRlVXNlckludGVyZmFjZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb25JZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjppbnRlcnByZXRLZXlFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjprZXlVcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlEb3duKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNN
ZXNzZW5nZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNyZWRlbnRpYWxzTWVzc2Vu
Z2VyUHJveHk6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ3JlZGVudGlh
bHNNZXNzZW5nZXJQcm94eTo6Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ3Jl
ZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRvd25sb2FkUHJveHk6OnNldE9yaWdpbmF0aW5nUGFnZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzQXNz
ZXJ0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldheWxh
bmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRhY2hCdWZmZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nl
c3NBc3NlcnRpb25JT1MubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OlBy
b2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5TGluazo6ZGlzcGxheUxpbmtDYWxsYmFjayk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisKIDIwMTgtMDYtMDcgIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjMyNTIwKTogQ3Jhc2gg
dW5kZXIgSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNyZWRlbnRpYWw+OjplbmNvZGVQbGF0
Zm9ybURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBmOGUzMDlhMTgzOTU1ZWE3
M2Q4YzMzODNmOTJlMWViODc5ZDYzMzI3Li4wN2M1MWQ5YjcyMGVhOThkYmI3ZTZkMGE1OWI5OWYy
MjkzNDY4YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTgtMDYtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYmFzZSBjbGFzcyB0byBnZXQgV2Vha1B0ckZhY3RvcnkgbWVtYmVyIGFuZCBhdm9pZCBzb21l
IGJvaWxlcnBsYXRlIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NjQwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBDYW5NYWtlV2Vha1B0ciBiYXNlIGNsYXNzIHRvIGdldCBXZWFrUHRyRmFj
dG9yeSBtZW1iZXIgYW5kIGl0cyBnZXR0ZXIsIGluCisgICAgICAgIG9yZGVyIHRvIGF2b2lkIHNv
bWUgYm9pbGVycGxhdGUgY29kZSBpbiBldmVyeSBjbGFzcyBuZWVkaW5nIGEgV2Vha1B0ckZhY3Rv
cnkuCisgICAgICAgIFRoaXMgYWxzbyBnZXRzIHJpZCBvZiBvbGQtc3R5bGUgY3JlYXRlV2Vha1B0
cigpIG1ldGhvZHMgaW4gZmF2b3Igb2YgdGhlIG5ld2VyCisgICAgICAgIG1ha2VXZWFrUHRyKCku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKToKKwogMjAxOC0wNi0wNSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjIzMjA4
Mik6IFdlYnNpdGVzIGdldCBsb2FkZWQgaW5zaWRlIG9mIE1lc3NhZ2VzIEFwcCBjaGF0IHRyYW5z
Y3JpcHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5j
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKaW5kZXggYzcw
YzQ5OGQ5NzhiZTYzM2VlYzhkMjdlODVlYmFhZjRhMDFiNmI1MS4uYTc3Mzg3ODBlZGI0YjI0MDJi
YjY5OTg0ZmI4ZjM5MWRjN2Y4YWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUluc3RhbmNlLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBX
YXNtIHsKIAogc3RydWN0IENvbnRleHQ7CiAKLWNsYXNzIEluc3RhbmNlIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEluc3RhbmNlPiB7CitjbGFzcyBJbnN0YW5jZSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxJbnN0YW5jZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxJbnN0YW5j
ZT4gewogcHVibGljOgogICAgIHVzaW5nIFN0b3JlVG9wQ2FsbEZyYW1lQ2FsbGJhY2sgPSBXVEY6
OkZ1bmN0aW9uPHZvaWQodm9pZCopPjsKIApAQCAtNjksNyArNjksNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCogY2FjaGVkTWVtb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRNZW1vcnk7IH0KICAg
ICBzaXplX3QgY2FjaGVkTWVtb3J5U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkTWVtb3J5
U2l6ZTsgfQogCi0gICAgV2Vha1B0cjxJbnN0YW5jZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJu
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KICAgICB2b2lkIHNldE1l
bW9yeShSZWY8TWVtb3J5PiYmIG1lbW9yeSkKICAgICB7CiAgICAgICAgIG1fbWVtb3J5ID0gV1RG
TW92ZShtZW1vcnkpOwpAQCAtMTU3LDcgKzE1Niw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCoqIG1f
cG9pbnRlclRvQWN0dWFsU3RhY2tMaW1pdCB7IG51bGxwdHIgfTsKICAgICB2b2lkKiBtX2NhY2hl
ZFN0YWNrTGltaXQgeyBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWlu
dHB0cl90Pjo6bWF4KCkpIH07CiAgICAgU3RvcmVUb3BDYWxsRnJhbWVDYWxsYmFjayBtX3N0b3Jl
VG9wQ2FsbEZyYW1lOwotICAgIFdlYWtQdHJGYWN0b3J5PEluc3RhbmNlPiBtX3dlYWtQdHJGYWN0
b3J5OwogICAgIHVuc2lnbmVkIG1fbnVtSW1wb3J0RnVuY3Rpb25zIHsgMCB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAppbmRleCA0YzA0MGQyZGE0Zjg4
ZDJlMGQyYzE3MDIwMjE2ODVmZTkxZDVlYzcxLi5hNjg1ZjBlYTNlNGZjZjkwNWRiMmNjMzZkNTAw
YWE3NTljYjc3YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNw
cApAQCAtNDQ1LDExICs0NDUsMTEgQEAgdm9pZCBNZW1vcnk6OnJlZ2lzdGVySW5zdGFuY2UoSW5z
dGFuY2UqIGluc3RhbmNlKQogICAgIHNpemVfdCBjb3VudCA9IG1faW5zdGFuY2VzLnNpemUoKTsK
ICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7IGluZGV4KyspIHsKICAg
ICAgICAgaWYgKG1faW5zdGFuY2VzLmF0KGluZGV4KS5nZXQoKSA9PSBudWxscHRyKSB7Ci0gICAg
ICAgICAgICBtX2luc3RhbmNlcy5hdChpbmRleCkgPSBpbnN0YW5jZS0+Y3JlYXRlV2Vha1B0cigp
OworICAgICAgICAgICAgbV9pbnN0YW5jZXMuYXQoaW5kZXgpID0gbWFrZVdlYWtQdHIoKmluc3Rh
bmNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICBtX2luc3Rh
bmNlcy5hcHBlbmQoaW5zdGFuY2UtPmNyZWF0ZVdlYWtQdHIoKSk7CisgICAgbV9pbnN0YW5jZXMu
YXBwZW5kKG1ha2VXZWFrUHRyKCppbnN0YW5jZSkpOwogfQogCiB2b2lkIE1lbW9yeTo6ZHVtcChQ
cmludFN0cmVhbSYgb3V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha1B0
ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IGZkOWZmNzZkOWQyMDVhN2YxNTQ4
YWM1MWQ4NzI1ZDhkNTY5YmRjYzkuLmVlZGQ4MWYzZjZjMGIzZWZiZDliZTVkMmI0ODg0MDk0YmU3
ZWVkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTEyMyw2ICsxMjMsMTUgQEAgcHJpdmF0ZToKICAgICBtdXRh
YmxlIFJlZlB0cjxXZWFrUmVmZXJlbmNlPFQ+PiBtX3JlZjsKIH07CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNsYXNzIENhbk1ha2VXZWFrUHRyIHsKK3B1YmxpYzoKKyAgICBjb25zdCBXZWFrUHRy
RmFjdG9yeTxUPiYgd2Vha1B0ckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3dlYWtGYWN0b3J5
OyB9CisgICAgV2Vha1B0ckZhY3Rvcnk8VD4mIHdlYWtQdHJGYWN0b3J5KCkgeyByZXR1cm4gbV93
ZWFrRmFjdG9yeTsgfQorCitwcml2YXRlOgorICAgIFdlYWtQdHJGYWN0b3J5PFQ+IG1fd2Vha0Zh
Y3Rvcnk7Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgV2Vh
a1JlZmVyZW5jZTxUPiogd2Vha19yZWZlcmVuY2VfdXBjYXN0KFdlYWtSZWZlcmVuY2U8VT4qIHdl
YWtSZWZlcmVuY2UpCiB7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2NvbnZlcnRpYmxlPFUq
LCBUKj46OnZhbHVlLCAiVSogbXVzdCBiZSBjb252ZXJ0aWJsZSB0byBUKiIpOwpAQCAtMjAxLDYg
KzIxMCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9w
ZXJhdG9yIT0oVCogYSwgY29uc3QgV2Vha1B0cjxVPiYKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAK
K3VzaW5nIFdURjo6Q2FuTWFrZVdlYWtQdHI7CiB1c2luZyBXVEY6OldlYWtQdHI7CiB1c2luZyBX
VEY6OldlYWtQdHJGYWN0b3J5OwogdXNpbmcgV1RGOjpXZWFrUmVmZXJlbmNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFs
c01lc3Nlbmdlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVu
dC9DcmVkZW50aWFsc01lc3Nlbmdlci5oCmluZGV4IDNkOGNjOTU2OWYzMzA0ODcyMWIzYzA4NmJh
NWQ4YzJiMDc2YWQ0MDAuLmYyOGFmOTVjMTZhYmZmOWNiZWVhMTU4MzY2NmIwNTk1OWFiYmU4ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNNZXNzZW5nZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRl
bnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmgKQEAgLTcwLDcgKzcwLDcgQEAg
dXNpbmcgQ3JlYXRpb25Db21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhjZXB0aW9uT3I8Q3JlYXRpb25SZXQKIHVzaW5nIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8QXNzZXJ0aW9uUmV0dXJuQnVuZGxl
PiYmKT47CiB1c2luZyBRdWVyeUNvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT47CiAKLWNsYXNzIENyZWRlbnRpYWxzTWVzc2VuZ2VyIHsKK2NsYXNzIENyZWRl
bnRpYWxzTWVzc2VuZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENyZWRlbnRpYWxzTWVzc2Vu
Z2VyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQ3JlZGVudGlhbHNNZXNzZW5nZXIpOwogcHVibGljOgpAQCAtODcsOCArODcsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEFzc2VydGlvblJlcGx5KHVpbnQ2NF90IG1lc3Nh
Z2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjcmVkZW50aWFsSWQsIGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgYXV0aGVudGljYXRvckRhdGEsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgc2lnbmF0
dXJlLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHVzZXJIYW5kbGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHko
dWludDY0X3QgbWVzc2FnZUlkLCBib29sKSA9IDA7CiAKLSAgICBhdXRvJiB3ZWFrUHRyRmFjdG9y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha0ZhY3Rvcnk7IH0KLQogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgfkNyZWRlbnRpYWxzTWVzc2VuZ2VyKCkgPSBkZWZhdWx0OwogCkBAIC0xMDAsOCArOTgs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgUXVlcnlDb21wbGV0aW9uSGFuZGxl
ciB0YWtlUXVlcnlDb21wbGV0aW9uSGFuZGxlcih1aW50NjRfdCk7CiAKIHByaXZhdGU6Ci0gICAg
V2Vha1B0ckZhY3Rvcnk8Q3JlZGVudGlhbHNNZXNzZW5nZXI+IG1fd2Vha0ZhY3Rvcnk7Ci0KICAg
ICBlbnVtIENhbGxCYWNrQ2xhc3NpZmllciA6IHVpbnQ2NF90IHsKICAgICAgICAgQ3JlYXRpb24g
PSAweDAxLAogICAgICAgICBSZXF1ZXN0ID0gMHgwMiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvTmF2aWdhdG9yQ3JlZGVudGlhbHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9OYXZpZ2F0b3JD
cmVkZW50aWFscy5jcHAKaW5kZXggOWQ4ZjBjZmU4OTlkNWY3YzkzOWFjZWExYjQxMTgzZTk0NTkw
ODQxMi4uNzFmNDM4Y2Y3ODZjNzZkN2I1ODcyMTU1OTc2NjhiNjIzNjFiNTk5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9OYXZpZ2F0b3JD
cmVkZW50aWFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFu
YWdlbWVudC9OYXZpZ2F0b3JDcmVkZW50aWFscy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgQ3JlZGVu
dGlhbHNDb250YWluZXIqIE5hdmlnYXRvckNyZWRlbnRpYWxzOjpjcmVkZW50aWFscyhOYXZpZ2F0
b3ImIG5hdmlnYXRvcikKIHsKICAgICBpZiAoIW5hdmlnYXRvci5mcmFtZSgpIHx8ICFuYXZpZ2F0
b3IuZnJhbWUoKS0+ZG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0
dXJuIE5hdmlnYXRvckNyZWRlbnRpYWxzOjpmcm9tKCZuYXZpZ2F0b3IpLT5jcmVkZW50aWFscyhu
YXZpZ2F0b3IuZnJhbWUoKS0+ZG9jdW1lbnQoKS0+Y3JlYXRlV2Vha1B0cigpKTsKKyAgICByZXR1
cm4gTmF2aWdhdG9yQ3JlZGVudGlhbHM6OmZyb20oJm5hdmlnYXRvciktPmNyZWRlbnRpYWxzKG1h
a2VXZWFrUHRyKCpuYXZpZ2F0b3IuZnJhbWUoKS0+ZG9jdW1lbnQoKSkpOwogfQogCiBOYXZpZ2F0
b3JDcmVkZW50aWFscyogTmF2aWdhdG9yQ3JlZGVudGlhbHM6OmZyb20oTmF2aWdhdG9yKiBuYXZp
Z2F0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHAK
aW5kZXggYTJiZDQ0Y2M2MmJhZjkyZDFkZDAxMTk5Y2ZjYWExMWQyZjNiNmVlYi4uMzRjZjNkMzY3
ODE4Mjg5ODUzNTU2YTY3M2NhY2VjYTdhN2FmODMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgQ0RN
Ojpkb1N1cHBvcnRlZENvbmZpZ3VyYXRpb25TdGVwKE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlv
biYmIGNhbmRpZGF0ZUNvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGNvbnNl
bnRDYWxsYmFjayA9IFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0gKENvbnNlbnRTdGF0dXMgc3RhdHVzLCBNZWRpYUtleVN5c3RlbUNvbmZp
Z3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmJiByZXN0cmlj
dGlvbnMpIG11dGFibGUgeworICAgIGF1dG8gY29uc2VudENhbGxiYWNrID0gW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoQ29uc2Vu
dFN0YXR1cyBzdGF0dXMsIE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24sIE1lZGlhS2V5c1Jlc3RyaWN0aW9ucyYmIHJlc3RyaWN0aW9ucykgbXV0YWJsZSB7CiAgICAg
ICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7
CiAgICAgICAgICAgICByZXR1cm47CkBAIC01MTEsNyArNTExLDcgQEAgdm9pZCBDRE06OmdldENv
bnNlbnRTdGF0dXMoTWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uJiYgYWNjdW11bGF0ZWRDb25m
aWd1cmF0aW8KICAgICAvLyBOT1RFOiBJbiB0aGUgZnV0dXJlLCB0aGVzZSBjaGVja3MgYmVsb3dl
IHdpbGwgaW52b2x2ZSBhc2tpbmcgdGhlIHBhZ2UgY2xpZW50LCBwb3NzaWJseSBhY3Jvc3MgYSBw
cm9jZXNzIGJvdW5kYXJ5LgogICAgIC8vIFRoZXkgd2lsbCBieSBuZWNlc3NpdHkgYmUgYXN5bmNo
cm9ub3VzIHdpdGggY2FsbGJhY2tzLiBGb3Igbm93LCBpbXBseSB0aGlzIGJlaGF2aW9yIGJ5IHBl
cmZvcm1pbmcgaXQgaW4gYW4gYXN5bmMgdGFzay4KIAotICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+cG9zdFRhc2soW3RoaXMsIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpLCBhY2N1bXVs
YXRlZENvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGFjY3VtdWxhdGVkQ29uZmlndXJhdGlvbiksIHJl
c3RyaWN0aW9ucyA9IFdURk1vdmUocmVzdHJpY3Rpb25zKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgYWNjdW11bGF0ZWRDb25maWd1cmF0aW9uID0gV1RGTW92ZShhY2N1bXVsYXRlZENv
bmZpZ3VyYXRpb24pLCByZXN0cmljdGlvbnMgPSBXVEZNb3ZlKHJlc3RyaWN0aW9ucyksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIW1fcHJpdmF0ZSkgewogICAgICAgICAgICAg
Y2FsbGJhY2soQ29uc2VudFN0YXR1czo6Q29uc2VudERlbmllZCwgV1RGTW92ZShhY2N1bXVsYXRl
ZENvbmZpZ3VyYXRpb24pLCBXVEZNb3ZlKHJlc3RyaWN0aW9ucykpOwogICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9D
RE0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmgKaW5kZXgg
NGJmN2I2ODc4ODVmY2YyYTIxYTU1MGQ2MzFmNWVhOWJjMzE0MTk2My4uZTE1NThjNWMyYjA0ZjNl
YmY5YjU2YmNhYzljMDc1NzY4OTdlNDA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETS5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAotY2xhc3Mg
Q0RNIDogcHVibGljIFJlZkNvdW50ZWQ8Q0RNPiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlciB7CitjbGFzcyBDRE0gOiBwdWJsaWMgUmVmQ291bnRlZDxDRE0+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8Q0RNPiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJik7
CiAgICAgc3RhdGljIGJvb2wgaXNQZXJzaXN0ZW50VHlwZShNZWRpYUtleVNlc3Npb25UeXBlKTsK
QEAgLTEwMSwxMyArMTAxLDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxNZWRpYUtl
eVN5c3RlbUNvbmZpZ3VyYXRpb24+ICBnZXRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKGNvbnN0IE1l
ZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYgY2FuZGlkYXRlQ29uZmlndXJhdGlvbiwgTWVkaWFL
ZXlzUmVzdHJpY3Rpb25zJik7CiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8TWVkaWFLZXlTeXN0
ZW1NZWRpYUNhcGFiaWxpdHk+PiBnZXRTdXBwb3J0ZWRDYXBhYmlsaXRpZXNGb3JBdWRpb1ZpZGVv
VHlwZShBdWRpb1ZpZGVvVHlwZSwgY29uc3QgVmVjdG9yPE1lZGlhS2V5U3lzdGVtTWVkaWFDYXBh
YmlsaXR5PiYgcmVxdWVzdGVkQ2FwYWJpbGl0aWVzLCBjb25zdCBNZWRpYUtleVN5c3RlbUNvbmZp
Z3VyYXRpb24mIHBhcnRpYWxDb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmKTsK
IAotICAgIFdlYWtQdHI8Q0RNPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAgICAgdXNpbmcgQ29uc2VudFN0YXR1c0Nh
bGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKENvbnNlbnRTdGF0dXMsIE1lZGlhS2V5U3lzdGVt
Q29uZmlndXJhdGlvbiYmLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmJik+OwogICAgIHZvaWQgZ2V0
Q29uc2VudFN0YXR1cyhNZWRpYUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mJiBhY2N1bXVsYXRlZENv
bmZpZ3VyYXRpb24sIE1lZGlhS2V5c1Jlc3RyaWN0aW9ucyYmLCBDb25zZW50U3RhdHVzQ2FsbGJh
Y2smJik7CiAgICAgU3RyaW5nIG1fa2V5U3lzdGVtOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDRE1Q
cml2YXRlPiBtX3ByaXZhdGU7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8Q0RNPiBtX3dlYWtQdHJGYWN0
b3J5OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCmluZGV4IDc3YzM3NzE5ODExODE5ZTIwYzcw
YmYxY2ZhY2NmNmE4NDJlMzIxNjEuLjk0MjdjZDQyMzY0MGQxZWViNTkzMjNmYmNjN2FjYjk2NzVk
NjY1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIE1lZGlh
S2V5U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFU
eXBlLCBjb25zdCBCdQogICAgICAgICAgICAgbV9sYXRlc3REZWNyeXB0VGltZSA9IDA7CiAgICAg
ICAgIH0KIAotICAgICAgICBtX2luc3RhbmNlLT5yZXF1ZXN0TGljZW5zZShtX3Nlc3Npb25UeXBl
LCBpbml0RGF0YVR5cGUsIFdURk1vdmUoaW5pdERhdGEpLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKFJlZjxTaGFyZWRCdWZmZXI+JiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9u
SWQsIGJvb2wgbmVlZHNJbmRpdmlkdWFsaXphdGlvbiwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1
ZSBzdWNjZWVkZWQpIG11dGFibGUgeworICAgICAgICBtX2luc3RhbmNlLT5yZXF1ZXN0TGljZW5z
ZShtX3Nlc3Npb25UeXBlLCBpbml0RGF0YVR5cGUsIFdURk1vdmUoaW5pdERhdGEpLCBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XSAoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwg
Ym9vbCBuZWVkc0luZGl2aWR1YWxpemF0aW9uLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1
Y2NlZWRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKIApAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9u
Ojpsb2FkKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pCiAgICAgICAgIC8vIDguNi4gTGV0IG1lc3NhZ2UgdHlwZSBiZSBudWxsLgogICAgICAgICAv
LyA4LjcuIExldCBjZG0gYmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRlZCBieSB0aGlzIG9i
amVjdCdzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAgLy8gOC44LiBVc2UgdGhlIGNkbSB0
byBleGVjdXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIG1faW5zdGFuY2UtPmxvYWRT
ZXNzaW9uKG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRTZXNzaW9uSWQsIG9yaWdpbiwgW3RoaXMs
IHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIHNhbml0aXplZFNlc3Npb25JZCA9ICpzYW5pdGl6ZWRTZXNz
aW9uSWRdIChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3I+JiYga25v
d25LZXlzLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBleHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFs
PENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3RhbmNlOjpTdWNjZXNzVmFs
dWUgc3VjY2VlZGVkLCBDRE1JbnN0YW5jZTo6U2Vzc2lvbkxvYWRGYWlsdXJlIGZhaWx1cmUpIG11
dGFibGUgeworICAgICAgICBtX2luc3RhbmNlLT5sb2FkU2Vzc2lvbihtX3Nlc3Npb25UeXBlLCAq
c2FuaXRpemVkU2Vzc2lvbklkLCBvcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHNhbml0aXplZFNlc3Npb25JZCA9
ICpzYW5pdGl6ZWRTZXNzaW9uSWRdIChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0
dXNWZWN0b3I+JiYga25vd25LZXlzLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBleHBpcmF0aW9u
LCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3Rh
bmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkLCBDRE1JbnN0YW5jZTo6U2Vzc2lvbkxvYWRGYWls
dXJlIGZhaWx1cmUpIG11dGFibGUgewogICAgICAgICAgICAgLy8gOC44LjEuIElmIHRoZXJlIGlz
IG5vIGRhdGEgc3RvcmVkIGZvciB0aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9yaWdp
biwgcmVzb2x2ZSBwcm9taXNlIHdpdGggZmFsc2UgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAg
ICAgICAgICAgLy8gOC44LjIuIElmIHRoZSBzdG9yZWQgc2Vzc2lvbidzIHNlc3Npb24gdHlwZSBp
cyBub3QgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgTWVkaWFLZXlTZXNzaW9uIHNlc3Npb24gdHlw
ZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVycm9yLgogICAgICAg
ICAgICAgLy8gOC44LjMuIExldCBzZXNzaW9uIGRhdGEgYmUgdGhlIGRhdGEgc3RvcmVkIGZvciB0
aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9yaWdpbi4gVGhpcyBtdXN0IG5vdCBpbmNs
dWRlIGRhdGEgZnJvbSBvdGhlciBvcmlnaW4ocykgb3IgdGhhdCBpcyBub3QgYXNzb2NpYXRlZCB3
aXRoIGFuIG9yaWdpbi4KQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6
dXBkYXRlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgcmVzcG9uc2UsIFJlZjxEZWZlcnJlZFByb21pc2U+
JgogICAgICAgICAvLyA2LjUuIExldCBzZXNzaW9uIGNsb3NlZCBiZSBmYWxzZS4KICAgICAgICAg
Ly8gNi42LiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBv
YmplY3QncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDYuNy4gVXNlIHRoZSBjZG0g
dG8gZXhlY3V0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT51cGRh
dGVMaWNlbnNlKG1fc2Vzc2lvbklkLCBtX3Nlc3Npb25UeXBlLCAqc2FuaXRpemVkUmVzcG9uc2Us
IFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBzZXNzaW9uV2FzQ2xvc2VkLCBzdGQ6
Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3I+JiYgY2hhbmdlZEtleXMsIHN0
ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIGNoYW5nZWRFeHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPENE
TUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUg
c3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZS0+dXBkYXRlTGljZW5zZSht
X3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgKnNhbml0aXplZFJlc3BvbnNlLCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAo
Ym9vbCBzZXNzaW9uV2FzQ2xvc2VkLCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0
dXNWZWN0b3I+JiYgY2hhbmdlZEtleXMsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIGNoYW5nZWRF
eHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2Us
IENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01MDAsNyAr
NTAwLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OmNsb3NlKFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgewogICAgICAgICAvLyA1LjEuIExldCBjZG0g
YmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRlZCBieSBzZXNzaW9uJ3MgY2RtIGluc3RhbmNl
IHZhbHVlLgogICAgICAgICAvLyA1LjIuIFVzZSBjZG0gdG8gY2xvc2UgdGhlIGtleSBzZXNzaW9u
IGFzc29jaWF0ZWQgd2l0aCBzZXNzaW9uLgotICAgICAgICBtX2luc3RhbmNlLT5jbG9zZVNlc3Np
b24obV9zZXNzaW9uSWQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgbV9pbnN0YW5jZS0+Y2xvc2VTZXNzaW9uKG1fc2Vzc2lvbklkLCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAo
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnJlbW92
ZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgICAgIC8vIDQuMy4gTGV0IG1l
c3NhZ2UgdHlwZSBiZSBudWxsLgogCiAgICAgICAgIC8vIDQuNC4gVXNlIHRoZSBjZG0gdG8gZXhl
Y3V0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT5yZW1vdmVTZXNz
aW9uRGF0YShtX3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgW3RoaXMsIHdlYWtUaGlzID0gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldIChDRE1JbnN0YW5jZTo6S2V5U3RhdHVzVmVjdG9yJiYga2V5cywgc3RkOjpvcHRpb25h
bDxSZWY8U2hhcmVkQnVmZmVyPj4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVl
IHN1Y2NlZWRlZCkgbXV0YWJsZSB7CisgICAgICAgIG1faW5zdGFuY2UtPnJlbW92ZVNlc3Npb25E
YXRhKG1fc2Vzc2lvbklkLCBtX3Nlc3Npb25UeXBlLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoQ0RNSW5zdGFuY2U6Oktl
eVN0YXR1c1ZlY3RvciYmIGtleXMsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYg
bWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgewog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
U2Vzc2lvbi5oCmluZGV4IGVjYzU3YjQ1MGNkYWJmYzU4ZTYwNzQ1MWNhM2EwZTEzOWRiYzBhN2Iu
LjBkMTkwMGUzMWJjN2JkNDkxN2U4MjZiNjEwMzMxZWM1ODhjOTUxMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24u
aApAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBNZWRpYUtleVN0YXR1c01hcDsKIGNsYXNzIE1lZGlh
S2V5czsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAotY2xhc3MgTWVkaWFLZXlTZXNzaW9uIGZpbmFs
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBDRE1JbnN0YW5j
ZUNsaWVudCB7CitjbGFzcyBNZWRpYUtleVNlc3Npb24gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYUtleVNlc3Npb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhS2V5U2Vzc2lv
bj4sIHB1YmxpYyBDRE1JbnN0YW5jZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxN
ZWRpYUtleVNlc3Npb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2Vha1B0cjxN
ZWRpYUtleXM+JiYsIE1lZGlhS2V5U2Vzc2lvblR5cGUsIGJvb2wgdXNlRGlzdGluY3RpdmVJZGVu
dGlmaWVyLCBSZWY8Q0RNPiYmLCBSZWY8Q0RNSW5zdGFuY2U+JiYpOwogICAgIHZpcnR1YWwgfk1l
ZGlhS2V5U2Vzc2lvbigpOwpAQCAtMTE3LDcgKzExNyw2IEBAIHByaXZhdGU6CiAgICAgZG91Ymxl
IG1fZmlyc3REZWNyeXB0VGltZSB7IDAgfTsKICAgICBkb3VibGUgbV9sYXRlc3REZWNyeXB0VGlt
ZSB7IDAgfTsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZjxTaGFyZWRCdWZmZXI+LCBNZWRpYUtl
eVN0YXR1cz4+IG1fc3RhdHVzZXM7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFLZXlTZXNzaW9u
PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCmlu
ZGV4IGJlZjM2YTMyZGUxZmViNWNhYTQwMTg3YjZlMTU2MTgxNWI3MWYzY2IuLjM5ZmJiODBlOTc2
MTQ2Y2I3OGE2MjRmNzFiMmFlOWYwNWJhYjJhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKQEAgLTY3LDcgKzY3LDcgQEAg
RXhjZXB0aW9uT3I8UmVmPE1lZGlhS2V5U2Vzc2lvbj4+IE1lZGlhS2V5czo6Y3JlYXRlU2Vzc2lv
bihTY3JpcHRFeGVjdXRpb25Db250ZXgKICAgICAvLyAzLiBMZXQgc2Vzc2lvbiBiZSBhIG5ldyBN
ZWRpYUtleVNlc3Npb24gb2JqZWN0LCBhbmQgaW5pdGlhbGl6ZSBpdCBhcyBmb2xsb3dzOgogICAg
IC8vIE5PVEU6IENvbnRpbnVlZCBpbiBNZWRpYUtleVNlc3Npb24uCiAgICAgLy8gNC4gUmV0dXJu
IHNlc3Npb24uCi0gICAgYXV0byBzZXNzaW9uID0gTWVkaWFLZXlTZXNzaW9uOjpjcmVhdGUoY29u
dGV4dCwgbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgc2Vzc2lvblR5cGUs
IG1fdXNlRGlzdGluY3RpdmVJZGVudGlmaWVyLCBtX2ltcGxlbWVudGF0aW9uLmNvcHlSZWYoKSwg
bV9pbnN0YW5jZS5jb3B5UmVmKCkpOworICAgIGF1dG8gc2Vzc2lvbiA9IE1lZGlhS2V5U2Vzc2lv
bjo6Y3JlYXRlKGNvbnRleHQsIG1ha2VXZWFrUHRyKCp0aGlzKSwgc2Vzc2lvblR5cGUsIG1fdXNl
RGlzdGluY3RpdmVJZGVudGlmaWVyLCBtX2ltcGxlbWVudGF0aW9uLmNvcHlSZWYoKSwgbV9pbnN0
YW5jZS5jb3B5UmVmKCkpOwogICAgIG1fc2Vzc2lvbnMuYXBwZW5kKHNlc3Npb24uY29weVJlZigp
KTsKICAgICByZXR1cm4gV1RGTW92ZShzZXNzaW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oCmluZGV4IDczYzlmYjJhYTdkM2Zk
Zjk0MjRhMTVhMjY1Zjc4ZTY3ZGJmYTM1N2YuLjkxNDYxNGRlNzE5ZjM3NTMwN2JjYjhiN2Q4Y2U1
YjMwYTAwNjcxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleXMuaApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBDRE1JbnN0YW5jZTsKIGNs
YXNzIEJ1ZmZlclNvdXJjZTsKIGNsYXNzIE1lZGlhS2V5U2Vzc2lvbjsKIAotY2xhc3MgTWVkaWFL
ZXlzIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlzPiB7CitjbGFzcyBNZWRpYUtleXMgOiBw
dWJsaWMgUmVmQ291bnRlZDxNZWRpYUtleXM+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFL
ZXlzPiB7CiBwdWJsaWM6CiAgICAgdXNpbmcgS2V5U2Vzc2lvblR5cGUgPSBNZWRpYUtleVNlc3Np
b25UeXBlOwogCkBAIC03Nyw3ICs3Nyw2IEBAIHByb3RlY3RlZDoKICAgICBSZWY8Q0RNPiBtX2lt
cGxlbWVudGF0aW9uOwogICAgIFJlZjxDRE1JbnN0YW5jZT4gbV9pbnN0YW5jZTsKIAotICAgIFdl
YWtQdHJGYWN0b3J5PE1lZGlhS2V5cz4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBWZWN0b3I8UmVm
PE1lZGlhS2V5U2Vzc2lvbj4+IG1fc2Vzc2lvbnM7CiAgICAgVmVjdG9yPENETUNsaWVudCo+IG1f
Y2RtQ2xpZW50czsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Rhc2tRdWV1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCmlu
ZGV4IGIyMWEwZDU3ZDZkZGJhNzVhYzBlNWU1MTJiMWY3OThjMzg4Y2QxMzcuLjNkMzBlYzdhNTlm
MjQyYzQ1NmQ1NGM1NzllMmIxOTU5OTBmNDFhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lk
IEdhbWVwYWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1l
cGFkJiBwbGF0Zm9ybUdhbWVwYQogewogICAgIFZlY3RvcjxXZWFrUHRyPERPTVdpbmRvdz4+IHdl
YWtXaW5kb3dzOwogICAgIGZvciAoYXV0byogZG9tV2luZG93IDogbV9kb21XaW5kb3dzKQotICAg
ICAgICB3ZWFrV2luZG93cy5hcHBlbmQoZG9tV2luZG93LT5jcmVhdGVXZWFrUHRyKCkpOworICAg
ICAgICB3ZWFrV2luZG93cy5hcHBlbmQobWFrZVdlYWtQdHIoKmRvbVdpbmRvdykpOwogCiAgICAg
SGFzaFNldDxOYXZpZ2F0b3JHYW1lcGFkKj4gbm90aWZpZWROYXZpZ2F0b3JzOwogCkBAIC0xNDQs
NyArMTQ0LDcgQEAgdm9pZCBHYW1lcGFkTWFuYWdlcjo6bWFrZUdhbWVwYWRWaXNpYmxlKFBsYXRm
b3JtR2FtZXBhZCYgcGxhdGZvcm1HYW1lcGFkLCBIYXNoU2UKIAogICAgIFZlY3RvcjxXZWFrUHRy
PERPTVdpbmRvdz4+IHdlYWtXaW5kb3dzOwogICAgIGZvciAoYXV0byogZG9tV2luZG93IDogbV9k
b21XaW5kb3dzKQotICAgICAgICB3ZWFrV2luZG93cy5hcHBlbmQoZG9tV2luZG93LT5jcmVhdGVX
ZWFrUHRyKCkpOworICAgICAgICB3ZWFrV2luZG93cy5hcHBlbmQobWFrZVdlYWtQdHIoKmRvbVdp
bmRvdykpOwogCiAgICAgZm9yIChhdXRvJiB3aW5kb3cgOiB3ZWFrV2luZG93cykgewogICAgICAg
ICAvLyBFdmVudCBkaXNwYXRjaCBtaWdodCBoYXZlIG1hZGUgdGhpcyB3aW5kb3cgZ28gYXdheS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcAppbmRleCAwZDgyZmMzNTRlOGExMTVmYThjMjczMzUzZTdlN2Q0MWJjNGQzNjg0Li5hZjNi
ZjEzMjI5NDk3YzA5OTU1NDYyNmNhMjM4OWVjYjZhY2ExYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC01MCw3ICs1
MCw3IEBAIGlubGluZSBNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCiAgICAgLCBt
X3NjaGVkdWxlZEV2ZW50VGltZXIoKnRoaXMsICZNZWRpYURldmljZXM6OnNjaGVkdWxlZEV2ZW50
VGltZXJGaXJlZCkKIHsKLSAgICBtX2RldmljZUNoYW5nZWRUb2tlbiA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoW3dlYWtU
aGlzID0gY3JlYXRlV2Vha1B0cigpLCB0aGlzXSgpIHsKKyAgICBtX2RldmljZUNoYW5nZWRUb2tl
biA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmFkZERldmljZXNDaGFu
Z2VkT2JzZXJ2ZXIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXSgpIHsKIAog
ICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggMDRjYzYw
NTliYTM2ZDZmYmJkY2ExZmY3Yzg2NzkxYjMxNTRiYmEzMC4uYWUzNWQ1ZTk0ZDBiYTc2OTEwMTU0
ZThkYzEwZWUzZGE4ZmY4NjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIE1lZGlhU3Ry
ZWFtOwogCiBzdHJ1Y3QgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzOwogCi1jbGFzcyBN
ZWRpYURldmljZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYURldmljZXM+LCBwdWJsaWMgQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
IHsKK2NsYXNzIE1lZGlhRGV2aWNlcyA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlcz4s
IHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYURldmljZXM+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlcz4gY3JlYXRlKERvY3VtZW50Jik7CiAKQEAg
LTkwLDExICs5MCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJy
aWRlIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRl
cmVmKCk7IH0KIAotICAgIFdlYWtQdHI8TWVkaWFEZXZpY2VzPiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAgICAgVGlt
ZXIgbV9zY2hlZHVsZWRFdmVudFRpbWVyOwogICAgIHN0ZDo6b3B0aW9uYWw8UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6RGV2aWNlc0NoYW5nZWRPYnNlcnZlclRva2VuPiBtX2RldmljZUNoYW5n
ZWRUb2tlbjsKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYURldmljZXM+IG1fd2Vha1B0ckZhY3Rv
cnk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCA4Njc2
OTQyNWY3NWVkNWQ1MWE2ZGU3MjFhYjc1ZDI4ZWU1NjE4NTEyLi5iMmE4ZjBiMTcwODExNmEwOGMz
MjFlNzkzMDZjMTZhNDNmYmQxNTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBA
QCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRp
b25hbDxNZWRpYVRyYWNrQ29uc3RyYWludAogewogICAgIG1fcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSk7CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8g
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgYXV0byBmYWlsdXJlSGFuZGxlciA9
IFt3ZWFrVGhpc10gKGNvbnN0IFN0cmluZyYgZmFpbGVkQ29uc3RyYWludCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUaGlzLT5tX3Byb21p
c2UpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IGRhMWIxYzA2MDdiODdhMTk5
YzYzM2EyOWJkYzRkNDRkY2U3Mjc0ODMuLjUxNWFjYzE0MmU3ZDJkZTNjNmNiZTlhYzkzZTQ1OTRl
YmZiYzJiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIE1lZGlhU3RyZWFt
VHJhY2sgOgogICAgIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtVHJhY2s+LAogICAgIHB1
YmxpYyBBY3RpdmVET01PYmplY3QsCiAgICAgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEsCisgICAgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhU3RyZWFtVHJhY2s+LAogICAgIHBy
aXZhdGUgTWVkaWFQcm9kdWNlciwKICAgICBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpPYnNlcnZlciB7CiBwdWJsaWM6CkBAIC0xNjksMTQgKzE3MCwxMSBAQCBwcml2YXRlOgogICAg
IHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5h
bDsKICAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KSBmaW5hbDsKIAotICAgIFdlYWtQdHI8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlV2Vha1B0cigp
IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KLQogICAg
IFZlY3RvcjxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4gbV9wcml2YXRlOwogCiAgICAgTWVkaWFUcmFja0NvbnN0cmFpbnRzIG1fY29uc3Ry
YWludHM7CiAgICAgc3RkOjpvcHRpb25hbDxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fcHJv
bWlzZTsKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVN0cmVhbVRyYWNrPiBtX3dlYWtQdHJGYWN0
b3J5OwogICAgIEdlbmVyaWNUYXNrUXVldWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV90YXNr
UXVldWU7CiAKICAgICBib29sIG1fZW5kZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLmgK
aW5kZXggZTE5YjVkOWMyYmY1YWNlZTIyMjc0OWE2NmUyMTMwNDhlZDhmYmZkYS4uMmFlNDAzNWU5
ODJlMmI2ZmQ4MzA1ODk5MTIwMTc2MWFjMmUxMjI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2NvY29hL0xvY2FsQXV0aGVudGljYXRvci5oCkBA
IC00NCw3ICs0NCw3IEBAIHVzaW5nIEV4Y2VwdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChj
b25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+OwogdHlwZWRlZiB2b2lkICheQ29tcGxldGlv
bkJsb2NrKShTZWNLZXlSZWYgX051bGxhYmxlIHJlZmVyZW5jZUtleSwgTlNBcnJheSAqIF9OdWxs
YWJsZSBjZXJ0aWZpY2F0ZXMsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpOwogCiAvLyBGSVhN
RSgxODI3NjkpOiBMb2NhbEF1dGhlbnRpY2F0b3Igc2hvdWxkIGJlbG9uZ3MgdG8gV2ViS2l0LiBI
b3dldmVyLCB3ZSBuZWVkIHVuaXQgdGVzdHMuCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBMb2NhbEF1
dGhlbnRpY2F0b3IgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTG9jYWxBdXRoZW50aWNhdG9yIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPExvY2FsQXV0aGVudGljYXRvcj4gewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKExvY2FsQXV0aGVudGljYXRvcik7CiBwdWJsaWM6CiAgICAgTG9jYWxBdXRo
ZW50aWNhdG9yKCk7CkBAIC01Nyw4ICs1Nyw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICAv
LyBBcHBsZSBBdHRlc3RhdGlvbiBpcyBtb3ZlZCBpbnRvIHRoaXMgdmlydHVhbCBtZXRob2Qgc3Vj
aCB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZWQgYnkgc2VsZiBhdHRlc3RhdGlvbiBmb3IgdGVzdGlu
Zy4KICAgICB2aXJ0dWFsIHZvaWQgaXNzdWVDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcm
IHJwSWQsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFz
aCwgQ29tcGxldGlvbkJsb2NrIF9Ob25udWxsKSBjb25zdDsKLQotICAgIFdlYWtQdHJGYWN0b3J5
PExvY2FsQXV0aGVudGljYXRvcj4gbV93ZWFrRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY29j
b2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggNzRhMTlhMzdhZDU4MGM3YzQyNjk4
Zjk5NjFiZjQyYmMwNTE0NTBmMi4uM2E3NDBlZDI5NWQxNDY5MzY5MDc5ODA5NDYxODQ5ZDI1NzJh
OGQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9M
b2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIExv
Y2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBo
YXNoLCBjb25zdCBQdWJsaQogCiAgICAgTlNTdHJpbmcgKnJlYXNvbiA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiQWxsb3cgJUAgdG8gY3JlYXRlIGEgcHVibGljIGtleSBjcmVkZW50aWFs
IGZvciAlQCIsIChpZClvcHRpb25zLnJwLmlkLCAoaWQpb3B0aW9ucy51c2VyLm5hbWVdOwogICAg
IC8vIEZJWE1FKDE4MzUzNCk6IE9wdGltaXplIHRoZSBmb2xsb3dpbmcgbmVzdGVkIGNhbGxiYWNr
cyBhbmQgdGhyZWFkaW5nLgotICAgIFtjb250ZXh0IGV2YWx1YXRlUG9saWN5OkxBUG9saWN5RGV2
aWNlT3duZXJBdXRoZW50aWNhdGlvbldpdGhCaW9tZXRyaWNzIGxvY2FsaXplZFJlYXNvbjpyZWFz
b24gcmVwbHk6QmxvY2tQdHI8dm9pZChCT09MLCBOU0Vycm9yICopPjo6ZnJvbUNhbGxhYmxlKFt3
ZWFrVGhpcyA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayksIGV4Y2VwdGlvbkNhbGxiYWNrID0gV1RGTW92ZShleGNlcHRpb25D
YWxsYmFjayksIG9wdGlvbnMgPSBjcm9zc1RocmVhZENvcHkob3B0aW9ucyksIGhhc2hdIChCT09M
IHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICBbY29udGV4dCBldmFsdWF0
ZVBvbGljeTpMQVBvbGljeURldmljZU93bmVyQXV0aGVudGljYXRpb25XaXRoQmlvbWV0cmljcyBs
b2NhbGl6ZWRSZWFzb246cmVhc29uIHJlcGx5OkJsb2NrUHRyPHZvaWQoQk9PTCwgTlNFcnJvciAq
KT46OmZyb21DYWxsYWJsZShbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayksIGV4Y2VwdGlvbkNhbGxiYWNrID0gV1RGTW92ZShleGNlcHRp
b25DYWxsYmFjayksIG9wdGlvbnMgPSBjcm9zc1RocmVhZENvcHkob3B0aW9ucyksIGhhc2hdIChC
T09MIHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CiAgICAgICAgIGlmICghc3VjY2VzcyB8fCBlcnJvcikgewogICAgICAg
ICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBhdXRoZW50aWNhdGUgd2l0aCBiaW9tZXRyaWNzOiAl
QCIsIGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21h
Yy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3Rl
bS9tYWMvU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oCmluZGV4IDkyMjZlMTBkZDlkNzNkOWY1Y2I2
Y2E5MGE2MDIwNmE1ZTRlMTFiMWEuLjUyNTFiYjdmNmJjY2YwZWZiYjBmNDM0ODQ3MWYzMjM2MGEx
YjUxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0
ZW1TbGVlcExpc3RlbmVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
bWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3Bh
Y2UgUEFMIHsKIAotY2xhc3MgU3lzdGVtU2xlZXBMaXN0ZW5lck1hYyA6IHB1YmxpYyBTeXN0ZW1T
bGVlcExpc3RlbmVyIHsKK2NsYXNzIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMgOiBwdWJsaWMgU3lz
dGVtU2xlZXBMaXN0ZW5lciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFN5c3RlbVNsZWVwTGlzdGVu
ZXJNYWM+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHByb3RlY3RlZDoKICAgICBT
eXN0ZW1TbGVlcExpc3RlbmVyTWFjKENsaWVudCYpOwpAQCAtNDAsNyArNDAsNiBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPFN5c3RlbVNsZWVwTGlzdGVuZXI+IFN5
c3RlbVNsZWVwTGlzdGVuZXI6OmNyZWF0ZShDbGllbnQmKTsKIAotICAgIFdlYWtQdHJGYWN0b3J5
PFN5c3RlbVNsZWVwTGlzdGVuZXJNYWM+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgaWQgbV9zbGVl
cE9ic2VydmVyOwogICAgIGlkIG1fd2FrZU9ic2VydmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMu
bW0KaW5kZXggNmQ1M2E3YmZkMGQ4ZjdhY2VkMTJlN2NkZWYyMTZlMjhjZDI5ZmRmZi4uMTdmNjQ2
YzkzZjlhMGIyMzJmYTg3MjU3Yzk1MzViNDA5ODgwMzBkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMu
bW0KQEAgLTQ2LDcgKzQ2LDcgQEAgU3lzdGVtU2xlZXBMaXN0ZW5lck1hYzo6U3lzdGVtU2xlZXBM
aXN0ZW5lck1hYyhDbGllbnQmIGNsaWVudCkKICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqY2Vu
dGVyID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNhdGlvbkNlbnRlcl07
CiAgICAgTlNPcGVyYXRpb25RdWV1ZSAqcXVldWUgPSBbTlNPcGVyYXRpb25RdWV1ZSBtYWluUXVl
dWVdOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKIAogICAg
IG1fc2xlZXBPYnNlcnZlciA9IFtjZW50ZXIgYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TV29ya3NwYWNl
V2lsbFNsZWVwTm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVldWU6cXVldWUgdXNpbmdCbG9jazpe
KE5TTm90aWZpY2F0aW9uICopIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNd
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggODFiYjViZWIxOTBiNjBjMGRlZWJmODNiZjVkODAwOWM0
YjUyNGVkOC4uNDhhZjY1YWQwZDE0ZDk4ODZkZTgzYjRlNmIzNTRlMTY1ZjZjYTMyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFZp
c2libGVTZWxlY3Rpb247CiBjbGFzcyBXaWRnZXQ7CiAgICAgCi1jbGFzcyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0IDogcHVibGljIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0IHsKK2NsYXNzIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGUoUmVu
ZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpOwpA
QCAtMjAwLDggKzIwMCw2IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFs
dWVGb3JNU0FBKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgcGFzc3dvcmRGaWVsZFZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgCi0gICAgV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqKTsKQEAgLTIyMCw3ICsyMTgsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgV2Vha1B0cjxSZW5kZXJPYmplY3Q+IG1fcmVuZGVyZXI7CiAKIHByaXZhdGU6
Ci0gICAgV2Vha1B0ckZhY3Rvcnk8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4gbV93ZWFrUHRy
RmFjdG9yeTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGFyaWFMaXN0Ym94U2VsZWN0ZWRDaGlsZHJl
bihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKTsKICAgICB2b2lkIGFyaWFMaXN0Ym94Vmlz
aWJsZUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcAppbmRl
eCBmMTRkZDY3OGQ0NTZjODVjNGNkZGQwMzIwMGVkMzk5YmVkMjc3OGZjLi4zMjM2YWYwMjIyNzMy
YTVkMjVkNWJhODQyNTFkNTFjMDgxYTAzZGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcApAQCAtNDUsMTIgKzQ1LDkg
QEAgUmVmPEFjY2Vzc2liaWxpdHlTVkdSb290PiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6Y3JlYXRl
KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNz
aWJpbGl0eVNWR1Jvb3QocmVuZGVyZXIpKTsKIH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5U1ZHUm9v
dDo6c2V0UGFyZW50KEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgKnBhcmVudCkKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVNWR1Jvb3Q6OnNldFBhcmVudChBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KiBw
YXJlbnQpCiB7Ci0gICAgaWYgKHBhcmVudCkKLSAgICAgICAgbV9wYXJlbnQgPSBwYXJlbnQtPmNy
ZWF0ZVdlYWtQdHIoKTsKLSAgICBlbHNlCi0gICAgICAgIG1fcGFyZW50ID0gbnVsbHB0cjsKKyAg
ICBtX3BhcmVudCA9IG1ha2VXZWFrUHRyKHBhcmVudCk7CiB9CiAgICAgCiBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKaW5kZXggZmM2YWExMjc3MjU3ZGExMzBmMjQ0
NWFhMWI2NTM0MTdiMTA5N2E5YS4uYTBkMGQ5YWI5NDg5MDI1ODYxYjMwYWY1NjQzODE2YzUwYWE4
MjcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKQEAgLTU0Myw3ICs1
NDMsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6ZW5jcnlwdChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUs
IEFsZ29yaXRobUlkZW50aWZpZXImJiBhbGdvcml0aAogCiAgICAgYXV0byBpbmRleCA9IHByb21p
c2UucHRyKCk7CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3ZlKHByb21p
c2UpKTsKLSAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVy
ID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRs
ZUNyeXB0b1dlYWtQb2ludGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGNpcGhlclRleHQpIG11
dGFibGUgewogICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3Vi
dGxlQ3J5cHRvV2Vha1BvaW50ZXIpKQogICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJy
YXlCdWZmZXIocHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBjaXBoZXJUZXh0LmRhdGEoKSwgY2lw
aGVyVGV4dC5zaXplKCkpOwpAQCAtNTgxLDcgKzU4MSw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjpk
ZWNyeXB0KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgQWxnb3JpdGhtSWRlbnRpZmllciYmIGFsZ29y
aXRoCiAKICAgICBhdXRvIGluZGV4ID0gcHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9t
aXNlcy5hZGQoaW5kZXgsIFdURk1vdmUocHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRv
V2Vha1BvaW50ZXIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAg
IGF1dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAg
YXV0byBjYWxsYmFjayA9IFtpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXJdKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgcGxhaW5UZXh0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8gcHJv
bWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSkKICAgICAg
ICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHByb21pc2UucmVsZWFzZU5vbk51
bGwoKSwgcGxhaW5UZXh0LmRhdGEoKSwgcGxhaW5UZXh0LnNpemUoKSk7CkBAIC02MTksNyArNjE5
LDcgQEAgdm9pZCBTdWJ0bGVDcnlwdG86OnNpZ24oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBBbGdv
cml0aG1JZGVudGlmaWVyJiYgYWxnb3JpdGhtSWQKIAogICAgIGF1dG8gaW5kZXggPSBwcm9taXNl
LnB0cigpOwogICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChpbmRleCwgV1RGTW92ZShwcm9taXNl
KSk7Ci0gICAgYXV0byBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciA9IG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyk7CisgICAgYXV0byBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciA9
IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVD
cnlwdG9XZWFrUG9pbnRlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBzaWduYXR1cmUpIG11dGFi
bGUgewogICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxl
Q3J5cHRvV2Vha1BvaW50ZXIpKQogICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlC
dWZmZXIocHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBzaWduYXR1cmUuZGF0YSgpLCBzaWduYXR1
cmUuc2l6ZSgpKTsKQEAgLTY1OCw3ICs2NTgsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6dmVyaWZ5
KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgQWxnb3JpdGhtSWRlbnRpZmllciYmIGFsZ29yaXRobQog
CiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMu
YWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQ
b2ludGVyID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRv
IHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGF1dG8g
Y2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyXShib29sIHJlc3VsdCkg
bXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBz
dWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCiAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElE
TEJvb2xlYW4+KHJlc3VsdCk7CkBAIC02ODYsNyArNjg2LDcgQEAgdm9pZCBTdWJ0bGVDcnlwdG86
OmRpZ2VzdChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEFsZ29yaXRobUlkZW50aWZpZXImJiBhbGdv
cml0aG0KIAogICAgIGF1dG8gaW5kZXggPSBwcm9taXNlLnB0cigpOwogICAgIG1fcGVuZGluZ1By
b21pc2VzLmFkZChpbmRleCwgV1RGTW92ZShwcm9taXNlKSk7Ci0gICAgYXV0byBzdWJ0bGVDcnlw
dG9XZWFrUG9pbnRlciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7Cisg
ICAgYXV0byBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAg
ICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcl0oY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBkaWdlc3QpIG11dGFibGUgewogICAgICAgICBpZiAoYXV0byBwcm9t
aXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIpKQogICAgICAg
ICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIocHJvbWlzZS5yZWxlYXNlTm9uTnVs
bCgpLCBkaWdlc3QuZGF0YSgpLCBkaWdlc3Quc2l6ZSgpKTsKQEAgLTcxNCw3ICs3MTQsNyBAQCB2
b2lkIFN1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBBbGdv
cml0aG1JZGVudGlmaWVyJiYgYWxnbwogCiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7
CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAg
ICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdl
YWtQdHIoKnRoaXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dl
YWtQb2ludGVyXShLZXlPcktleVBhaXImJiBrZXlPcktleVBhaXIpIG11dGFibGUgewogICAgICAg
ICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1Bv
aW50ZXIpKSB7CiAgICAgICAgICAgICBXVEY6OnN3aXRjaE9uKGtleU9yS2V5UGFpciwKQEAgLTc5
NSw3ICs3OTUsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6ZGVyaXZlS2V5KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSwgQWxnb3JpdGhtSWRlbnRpZmllciYmIGFsZ29yaQogCiAgICAgYXV0byBpbmRleCA9
IHByb21pc2UucHRyKCk7CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3Zl
KHByb21pc2UpKTsKLSAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQ
b2ludGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgs
IHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyLCBpbXBvcnRBbGdvcml0aG0sIGltcG9ydFBhcmFtcyA9
IFdURk1vdmUoaW1wb3J0UGFyYW1zKSwgZXh0cmFjdGFibGUsIGtleVVzYWdlc0JpdG1hcF0oY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBkZXJpdmVkS2V5KSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklY
TUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzOTUKICAgICAg
ICAgS2V5RGF0YSBkYXRhID0gZGVyaXZlZEtleTsKQEAgLTg0Niw3ICs4NDYsNyBAQCB2b2lkIFN1
YnRsZUNyeXB0bzo6ZGVyaXZlQml0cyhKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEFsZ29yaXRobUlk
ZW50aWZpZXImJiBhbGdvcgogCiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7CiAgICAg
bV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICBhdXRv
IHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIo
KnRoaXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2lu
dGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGRlcml2ZWRLZXkpIG11dGFibGUgewogICAgICAg
ICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1Bv
aW50ZXIpKQogICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIocHJvbWlz
ZS5yZWxlYXNlTm9uTnVsbCgpLCBkZXJpdmVkS2V5LmRhdGEoKSwgZGVyaXZlZEtleS5zaXplKCkp
OwpAQCAtODgxLDcgKzg4MSw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjppbXBvcnRLZXkoSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBLZXlGb3JtYXQgZm9ybWF0LCBLZXlEYXRhVmFyCiAKICAgICBhdXRv
IGluZGV4ID0gcHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQoaW5kZXgs
IFdURk1vdmUocHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAgIGF1dG8gc3VidGxlQ3J5
cHRvV2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgYXV0byBjYWxsYmFjayA9
IFtpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXJdKENyeXB0b0tleSYga2V5KSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNy
eXB0b1dlYWtQb2ludGVyKSkgewogICAgICAgICAgICAgaWYgKChrZXkudHlwZSgpID09IENyeXB0
b0tleVR5cGU6OlByaXZhdGUgfHwga2V5LnR5cGUoKSA9PSBDcnlwdG9LZXlUeXBlOjpTZWNyZXQp
ICYmICFrZXkudXNhZ2VzQml0bWFwKCkpIHsKQEAgLTkxOCw3ICs5MTgsNyBAQCB2b2lkIFN1YnRs
ZUNyeXB0bzo6ZXhwb3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b0tleSYga2V5LCBSZWY8
RGVmZXJyZWRQcm9taQogCiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7CiAgICAgbV9w
ZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICBhdXRvIHN1
YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0
aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIoKnRo
aXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVy
XShTdWJ0bGVDcnlwdG86OktleUZvcm1hdCBmb3JtYXQsIEtleURhdGEmJiBrZXkpIG11dGFibGUg
ewogICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5
cHRvV2Vha1BvaW50ZXIpKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewpAQCAtOTky
LDcgKzk5Miw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjp3cmFwS2V5KEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgS2V5Rm9ybWF0IGZvcm1hdCwgQ3J5cHRvS2V5JiBrCiAKICAgICBhdXRvIGluZGV4ID0g
cHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQoaW5kZXgsIFdURk1vdmUo
cHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vha1Bv
aW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwg
c3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIsIHdyYXBBbGdvcml0aG0sIHdyYXBwaW5nS2V5ID0gbWFr
ZVJlZih3cmFwcGluZ0tleSksIHdyYXBQYXJhbXMgPSBXVEZNb3ZlKHdyYXBQYXJhbXMpLCBpc0Vu
Y3J5cHRpb24sIGNvbnRleHQsIHdvcmtRdWV1ZSA9IG1fd29ya1F1ZXVlLmNvcHlSZWYoKV0oU3Vi
dGxlQ3J5cHRvOjpLZXlGb3JtYXQgZm9ybWF0LCBLZXlEYXRhJiYga2V5KSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSB7CiAgICAgICAgICAgICBpZiAoYXV0
byBwcm9taXNlID0gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXItPm1fcGVuZGluZ1Byb21pc2VzLmdl
dChpbmRleCkpIHsKQEAgLTEwOTUsNyArMTA5NSw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjp1bndy
YXBLZXkoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBLZXlGb3JtYXQgZm9ybWF0LCBCdWZmZXJTb3Vy
CiAKICAgICBhdXRvIGluZGV4ID0gcHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9taXNl
cy5hZGQoaW5kZXgsIFdURk1vdmUocHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vh
a1BvaW50ZXIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAgIGF1
dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgYXV0
byBjYWxsYmFjayA9IFtpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIsIGZvcm1hdCwgaW1w
b3J0QWxnb3JpdGhtLCB1bndyYXBwZWRLZXlBbGdvcml0aG0gPSBXVEZNb3ZlKHVud3JhcHBlZEtl
eUFsZ29yaXRobSksIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXNCaXRtYXBdKGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgYnl0ZXMpIG11dGFibGUgewogICAgICAgICBpZiAoc3VidGxlQ3J5cHRvV2Vha1Bv
aW50ZXIpIHsKICAgICAgICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBzdWJ0bGVDcnlwdG9XZWFr
UG9pbnRlci0+bV9wZW5kaW5nUHJvbWlzZXMuZ2V0KGluZGV4KSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L1N1YnRsZUNyeXB0by5oCmluZGV4IGNhZjQ4Zjk4OWZhYjc3YzJkNGJjZWUyNGI4Y2JiN2VkMTc4
ZDZjYmEuLjA0ZTYwM2VmOTY1NDU4OGY3NmVmOWM4MjAyNjI2NGUzNjdhYjJmMTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgRGVmZXJy
ZWRQcm9taXNlOwogCiBlbnVtIGNsYXNzIENyeXB0b0tleVVzYWdlOwogCi1jbGFzcyBTdWJ0bGVD
cnlwdG8gOiBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3Vu
dGVkPFN1YnRsZUNyeXB0bz4geworY2xhc3MgU3VidGxlQ3J5cHRvIDogcHVibGljIENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxTdWJ0bGVDcnlwdG8+LCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U3VidGxlQ3J5cHRvPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxTdWJ0bGVDcnlwdG8+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFN1YnRsZUNyeXB0byhjb250ZXh0KSk7IH0KICAgICB+U3Vi
dGxlQ3J5cHRvKCk7CkBAIC04Miw3ICs4Miw2IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V29ya1F1
ZXVlPiBtX3dvcmtRdWV1ZTsKICAgICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJlZjxEZWZl
cnJlZFByb21pc2U+PiBtX3BlbmRpbmdQcm9taXNlczsKLSAgICBXZWFrUHRyRmFjdG9yeTxTdWJ0
bGVDcnlwdG8+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlLmNwcAppbmRleCA5MGExODA4Yjg5OWJkOTJmYzY4YjczNDU4MzFkMDc0OTM3NmQ4NDBhLi5m
N2Q3NzVmZmJiYTc2YjgwY2VlZTcxZGVlYzVjZjRiNjdlMmZmMzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZS5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgQ1NTRm9udEZhY2U6OkNTU0ZvbnRGYWNl
KENTU0ZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9yLCBTdHlsZVJ1bGVGb250RmFjZSogY3NzQ28K
ICAgICA6IG1fdGltZW91dFRpbWVyKCp0aGlzLCAmQ1NTRm9udEZhY2U6OnRpbWVvdXRGaXJlZCkK
ICAgICAsIG1fZm9udFNlbGVjdG9yKGZvbnRTZWxlY3RvcikKICAgICAsIG1fY3NzQ29ubmVjdGlv
bihjc3NDb25uZWN0aW9uKQotICAgICwgbV93cmFwcGVyKHdyYXBwZXIgPyB3cmFwcGVyLT5jcmVh
dGVXZWFrUHRyKCkgOiBXZWFrUHRyPEZvbnRGYWNlPigpKQorICAgICwgbV93cmFwcGVyKG1ha2VX
ZWFrUHRyKHdyYXBwZXIpKQogICAgICwgbV9pc0xvY2FsRmFsbGJhY2soaXNMb2NhbEZhbGxiYWNr
KQogICAgICwgbV9tYXlCZVB1cmdlZCghd3JhcHBlcikKIHsKQEAgLTU2MywxNCArNTYzLDE0IEBA
IFJlZjxGb250RmFjZT4gQ1NTRm9udEZhY2U6OndyYXBwZXIoKQogICAgICAgICByZXR1cm4gKm1f
d3JhcHBlci5nZXQoKTsKIAogICAgIGF1dG8gd3JhcHBlciA9IEZvbnRGYWNlOjpjcmVhdGUoKnRo
aXMpOwotICAgIG1fd3JhcHBlciA9IHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBtX3dy
YXBwZXIgPSBtYWtlV2Vha1B0cih3cmFwcGVyLmdldCgpKTsKICAgICBpbml0aWFsaXplV3JhcHBl
cigpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCiB2b2lkIENTU0ZvbnRGYWNlOjpzZXRXcmFw
cGVyKEZvbnRGYWNlJiBuZXdXcmFwcGVyKQogewotICAgIG1fd3JhcHBlciA9IG5ld1dyYXBwZXIu
Y3JlYXRlV2Vha1B0cigpOworICAgIG1fd3JhcHBlciA9IG1ha2VXZWFrUHRyKG5ld1dyYXBwZXIp
OwogICAgIGluaXRpYWxpemVXcmFwcGVyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmgKaW5kZXggNzdlMmUzNmM2OTI0MTc1ZTY5ODcyNzE1ZDJmMGRhZDhm
MGQ1MmRkNi4uMTZiY2E5NmQwNjg3ZmJjY2IyYzdhMGI1MThhMmY4MWVhMGU2NWNmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKQEAgLTM2LDcgKzM2LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZSA6IHB1
YmxpYyBSZWZDb3VudGVkPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiB7CitjbGFzcyBEZXByZWNhdGVk
Q1NTT01WYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiB7CiBwdWJsaWM6CiAgICAg
Ly8gRXhhY3RseSBtYXRjaCB0aGUgSURMLiBObyByZWFzb24gdG8gYWRkIGFueXRoaW5nIGlmIGl0
J3Mgbm90IGluIHRoZSBJREwuCiAgICAgZW51bSBUeXBlIHsKQEAgLTY1LDggKzY1LDYgQEAgcHVi
bGljOgogCiAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgb3duZXIoKSBjb25zdCB7IHJldHVybiBt
X293bmVyOyB9CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxEZXByZWNhdGVkQ1NTT01WYWx1ZT4mIHdl
YWtQdHJGYWN0b3J5KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeTsgfQotCiBwcm90ZWN0ZWQ6
CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBDbGFzc1R5cGVCaXRzID0gMjsKICAgICBlbnVtIERl
cHJlY2F0ZWRDbGFzc1R5cGUgewpAQCAtOTUsNyArOTMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5z
aWduZWQgbV9jbGFzc1R5cGUgOiBDbGFzc1R5cGVCaXRzOyAvLyBDbGFzc1R5cGUKICAgICAKICAg
ICBSZWY8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gbV9vd25lcjsKLSAgICBXZWFrUHRyRmFjdG9yeTxE
ZXByZWNhdGVkQ1NTT01WYWx1ZT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIGNsYXNzIERlcHJl
Y2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZSA6IHB1YmxpYyBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRleCA1ODFmNWU4YzllNWFhMTEzMGFjYjZmYmM4ODJhMTM0
YWE1YmFkYTU0Li4xZmZmYjE3NWRlNDI1ZTIxMTE1MzA1NjAyNjhhODFjMjM3MzNkMWE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250RmFjZS5jcHAKQEAgLTE0MiwxMSArMTQyLDYgQEAgRm9udEZhY2U6On5Gb250
RmFjZSgpCiAgICAgbV9iYWNraW5nLT5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCi1XZWFrUHRy
PEZvbnRGYWNlPiBGb250RmFjZTo6Y3JlYXRlV2Vha1B0cigpCi17Ci0gICAgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7Ci19Ci0KIFJlZlB0cjxDU1NWYWx1ZT4g
Rm9udEZhY2U6OnBhcnNlU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQpCiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCB1c2UgdGhlIERvY3VtZW50IHRv
IGdldCB0aGUgcmlnaHQgcGFyc2luZyBtb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaAppbmRleCAzNDgw
MDMwZjU5OGFkN2M3NzRkZjg1ZTRhMTgwZDc1NWE0ZmJhNDg5Li4zZDlhMGVjMWM5YWRhYWM4MjFi
Njc0MDFiODc5NmVhN2NiNjc4YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9u
dEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaApAQCAtMzgsNyArMzgs
NyBAQCBjbGFzcyBBcnJheUJ1ZmZlclZpZXc7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgRm9udEZhY2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxGb250RmFjZT4sIHByaXZhdGUg
Q1NTRm9udEZhY2U6OkNsaWVudCB7CitjbGFzcyBGb250RmFjZSBmaW5hbCA6IHB1YmxpYyBSZWZD
b3VudGVkPEZvbnRGYWNlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZvbnRGYWNlPiwgcHJpdmF0
ZSBDU1NGb250RmFjZTo6Q2xpZW50IHsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgRGVzY3JpcHRvcnMg
ewogICAgICAgICBTdHJpbmcgc3R5bGU7CkBAIC04OCw4ICs4OCw2IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgZm9udFN0YXRlQ2hhbmdlZChDU1NGb250RmFjZSYsIENTU0ZvbnRGYWNlOjpTdGF0dXMg
b2xkU3RhdGUsIENTU0ZvbnRGYWNlOjpTdGF0dXMgbmV3U3RhdGUpIGZpbmFsOwogCi0gICAgV2Vh
a1B0cjxGb250RmFjZT4gY3JlYXRlV2Vha1B0cigpOwotCiAgICAgdm9pZCByZWYoKSBmaW5hbCB7
IFJlZkNvdW50ZWQ6OnJlZigpOyB9CiAgICAgdm9pZCBkZXJlZigpIGZpbmFsIHsgUmVmQ291bnRl
ZDo6ZGVyZWYoKTsgfQogCkBAIC0xMDAsNyArOTgsNiBAQCBwcml2YXRlOgogICAgIC8vIENhbGxi
YWNrIGZvciBMb2FkZWRQcm9taXNlLgogICAgIEZvbnRGYWNlJiBsb2FkZWRQcm9taXNlUmVzb2x2
ZSgpOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8Rm9udEZhY2U+IG1fd2Vha1B0ckZhY3Rvcnk7CiAg
ICAgUmVmPENTU0ZvbnRGYWNlPiBtX2JhY2tpbmc7CiAgICAgTG9hZGVkUHJvbWlzZSBtX2xvYWRl
ZFByb21pc2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
CmluZGV4IDhjNzkzYzJiNzg2OTAzYTU4MmM1MmEwOGVlYWI3Y2NmNDUzNTQyOTUuLmNjNmViMWIy
NDY5NzY5NDU4ZWZlZjMwNjU5N2IzNDRlZWE5Mzk1NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBNZWRpYVF1ZXJ5RXZh
bHVhdG9yOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRpYVR5
cGUsIGJvb2wgbQogCiBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNv
bnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRpYVR5cGUsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIDogbV9tZWRpYVR5cGUoYWNjZXB0ZWRNZWRp
YVR5cGUpCi0gICAgLCBtX2RvY3VtZW50KGNvbnN0X2Nhc3Q8RG9jdW1lbnQmPihkb2N1bWVudCku
Y3JlYXRlV2Vha1B0cigpKQorICAgICwgbV9kb2N1bWVudChtYWtlV2Vha1B0cihjb25zdF9jYXN0
PERvY3VtZW50Jj4oZG9jdW1lbnQpKSkKICAgICAsIG1fc3R5bGUoc3R5bGUpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKaW5kZXggMDExN2VhYWU1ZjNjMjc5MDM1
NmMzNTgxMTMyZjFjODY4MjNiZjJmYi4uNDkwODAzZDRmM2MwMzMzOTgxMDRlNzdhOWUxMDI5OTdk
OTRlMjhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtNDMs
NyArNDMsNyBAQCBjbGFzcyBTdHlsZVJ1bGVCYXNlOwogY2xhc3MgU3R5bGVSdWxlSW1wb3J0Owog
Y2xhc3MgU3R5bGVSdWxlTmFtZXNwYWNlOwogCi1jbGFzcyBTdHlsZVNoZWV0Q29udGVudHMgZmlu
YWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHlsZVNoZWV0Q29udGVudHM+IHsKK2NsYXNzIFN0eWxl
U2hlZXRDb250ZW50cyBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFN0eWxlU2hlZXRDb250ZW50
cz4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTdHlsZVNoZWV0Q29udGVudHM+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFN0eWxlU2hlZXRDb250ZW50cz4gY3JlYXRlKGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGNvbnRleHQgPSBDU1NQYXJzZXJDb250ZXh0KEhUTUxTdGFuZGFyZE1vZGUpKQog
ICAgIHsKQEAgLTE0NCw4ICsxNDQsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNocmlua1RvRml0
KCk7CiAKLSAgICBXZWFrUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KLQogcHJpdmF0
ZToKICAgICBXRUJDT1JFX0VYUE9SVCBTdHlsZVNoZWV0Q29udGVudHMoU3R5bGVSdWxlSW1wb3J0
KiBvd25lclJ1bGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IENTU1BhcnNlckNv
bnRleHQmKTsKICAgICBTdHlsZVNoZWV0Q29udGVudHMoY29uc3QgU3R5bGVTaGVldENvbnRlbnRz
Jik7CkBAIC0xNzUsOCArMTczLDYgQEAgcHJpdmF0ZToKICAgICBDU1NQYXJzZXJDb250ZXh0IG1f
cGFyc2VyQ29udGV4dDsKIAogICAgIFZlY3RvcjxDU1NTdHlsZVNoZWV0Kj4gbV9jbGllbnRzOwot
ICAgIAotICAgIFdlYWtQdHJGYWN0b3J5PFN0eWxlU2hlZXRDb250ZW50cz4gbV93ZWFrUHRyRmFj
dG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTRGVmZXJyZWRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NEZWZlcnJlZFBhcnNlci5jcHAKaW5kZXggMDY0NjllYTlmMTk2ZmQyMDM3
ZDUwOGFhODU1OTA2MzdjZDc1Y2I0ZS4uZDM0YzE5YjAxYTFmOTlhNmFmMGRjYzA4OTZhZTViMThj
MzNiM2ZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NEZWZlcnJl
ZFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NEZWZlcnJlZFBh
cnNlci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogQ1NTRGVmZXJy
ZWRQYXJzZXI6OkNTU0RlZmVycmVkUGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0LCBTdHlsZVNoZWV0Q29udGVudHMmIHN0eWxlU2hl
ZXQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fc2hlZXRUZXh0KHNoZWV0VGV4
dCkKLSAgICAsIG1fc3R5bGVTaGVldChzdHlsZVNoZWV0LmNyZWF0ZVdlYWtQdHIoKSkKKyAgICAs
IG1fc3R5bGVTaGVldChtYWtlV2Vha1B0cihzdHlsZVNoZWV0KSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKaW5kZXggODEyNzE5NDc5NWY2OThl
MzFlMDYzNjM3OTM1MjUzM2QxMWQ3Yjc2YS4uY2VhOGJjMjU0YzViMjIwZTg5NGY4ZTYzN2U5NDE2
YTVjMzg1YzExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0
ZW1MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3Qu
Y3BwCkBAIC03Niw3ICs3Niw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVt
Pj4gRGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZChjb25zdCBTdHJpbmcmIGRhCiAKICAgICBtX2Rh
dGFUcmFuc2Zlci5zZXREYXRhRnJvbUl0ZW1MaXN0KGxvd2VyY2FzZWRUeXBlLCBkYXRhKTsKICAg
ICBBU1NFUlQobV9pdGVtcyk7Ci0gICAgbV9pdGVtcy0+YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06
OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2Vk
VHlwZSkpOworICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobWFr
ZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOwogICAgIHJldHVybiBtX2l0ZW1zLT5s
YXN0KCkucHRyKCk7CiB9CiAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmUHRyPERhdGFUcmFuc2Zlckl0
ZW0+IERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoUmVmPEZpbGU+JiYgZmlsZSkKICAgICBpZiAo
IW1fZGF0YVRyYW5zZmVyLmNhbldyaXRlRGF0YSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIGVuc3VyZUl0ZW1zKCkuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBmaWxlLT50eXBlKCksIGZpbGUuY29w
eVJlZigpKSk7CisgICAgZW5zdXJlSXRlbXMoKS5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3Jl
YXRlKG1ha2VXZWFrUHRyKCp0aGlzKSwgZmlsZS0+dHlwZSgpLCBmaWxlLmNvcHlSZWYoKSkpOwog
ICAgIG1fZGF0YVRyYW5zZmVyLmRpZEFkZEZpbGVUb0l0ZW1MaXN0KCk7CiAgICAgcmV0dXJuIG1f
aXRlbXMtPmxhc3QoKS5wdHIoKTsKIH0KQEAgLTEzNiwxMSArMTM2LDExIEBAIFZlY3RvcjxSZWY8
RGF0YVRyYW5zZmVySXRlbT4+JiBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZW5zdXJlSXRlbXMoKSBj
b25zdAogICAgIGZvciAoYXV0byYgdHlwZSA6IG1fZGF0YVRyYW5zZmVyLnR5cGVzRm9ySXRlbUxp
c3QoKSkgewogICAgICAgICBhdXRvIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5jb252ZXJ0VG9BU0NJ
SUxvd2VyY2FzZSgpOwogICAgICAgICBpZiAoc2hvdWxkRXhwb3NlVHlwZUluSXRlbUxpc3QobG93
ZXJjYXNlZFR5cGUpKQotICAgICAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06
OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8RGF0YVRy
YW5zZmVySXRlbUxpc3QqPih0aGlzKSksIGxvd2VyY2FzZWRUeXBlKSk7CisgICAgICAgICAgICBp
dGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1ha2VXZWFrUHRyKCpjb25zdF9j
YXN0PERhdGFUcmFuc2Zlckl0ZW1MaXN0Kj4odGhpcykpLCBsb3dlcmNhc2VkVHlwZSkpOwogICAg
IH0KIAogICAgIGZvciAoYXV0byYgZmlsZSA6IG1fZGF0YVRyYW5zZmVyLmZpbGVzKCkuZmlsZXMo
KSkKLSAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8RGF0YVRyYW5zZmVySXRlbUxpc3Qq
Pih0aGlzKSksIGZpbGUtPnR5cGUoKSwgZmlsZS5jb3B5UmVmKCkpKTsKKyAgICAgICAgaXRlbXMu
YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtYWtlV2Vha1B0cigqY29uc3RfY2FzdDxE
YXRhVHJhbnNmZXJJdGVtTGlzdCo+KHRoaXMpKSwgZmlsZS0+dHlwZSgpLCBmaWxlLmNvcHlSZWYo
KSkpOwogCiAgICAgbV9pdGVtcyA9IFdURk1vdmUoaXRlbXMpOwogCkBAIC0xODUsNyArMTg1LDcg
QEAgdm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZGlkU2V0U3RyaW5nRGF0YShjb25zdCBTdHJp
bmcmIHR5cGUpCiAgICAgU3RyaW5nIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5jb252ZXJ0VG9BU0NJ
SUxvd2VyY2FzZSgpOwogICAgIHJlbW92ZVN0cmluZ0l0ZW1PZkxvd2VyY2FzZWRUeXBlKCptX2l0
ZW1zLCB0eXBlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpOwogCi0gICAgbV9pdGVtcy0+YXBw
ZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOworICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJh
bnNmZXJJdGVtOjpjcmVhdGUobWFrZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5oCmluZGV4IDEz
MTIwZTU0YWQzNjgwYWU2Njk4M2NmZmUyY2NhMmQ0NGJiNjdiOGEuLmQyNTM1OWFiYWM5YjUzNjYw
N2RkMTMzNDQwZmU5M2ZkZDExNmM4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdC5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERhdGFUcmFuc2Zlckl0ZW07CiBjbGFzcyBGaWxlOwogCi1jbGFzcyBEYXRhVHJhbnNmZXJJdGVt
TGlzdCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgeworY2xhc3MgRGF0YVRyYW5zZmVySXRlbUxp
c3QgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RGF0YVRy
YW5zZmVySXRlbUxpc3Q+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRhVHJhbnNmZXJJ
dGVtTGlzdCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIERhdGFUcmFu
c2Zlckl0ZW1MaXN0KERhdGFUcmFuc2ZlciYpOwpAQCAtNzUsNyArNzUsNiBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIFZlY3RvcjxSZWY8RGF0YVRyYW5zZmVySXRlbT4+JiBlbnN1cmVJdGVtcygp
IGNvbnN0OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IG1fd2Vh
a1B0ckZhY3Rvcnk7CiAgICAgRGF0YVRyYW5zZmVyJiBtX2RhdGFUcmFuc2ZlcjsKICAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxEYXRhVHJhbnNmZXJJdGVtPj4+IG1faXRlbXM7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTBkZGM5YTE2MGE2MzdhNDU3YjE2YjAz
NjdjZGIyYjNjYzRmNzU5MS4uMzlhMjU3ZDA0OTFmNGUxNjZjMzBjNGM0NGY3YmFiMWQ1MWE0NGI2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01ODIxLDcgKzU4MjEsNyBAQCB2b2lkIERv
Y3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwsIGNvbnN0IFN0cmluZwogCiB2b2lkIERvY3VtZW50Ojpwb3N0VGFzayhUYXNrJiYgdGFzaykK
IHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtkb2N1bWVudFJlZmVyZW5jZSA9IG1fd2Vha0ZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSgpIG11dGFibGUg
eworICAgIGNhbGxPbk1haW5UaHJlYWQoW2RvY3VtZW50UmVmZXJlbmNlID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCB0YXNrID0gV1RGTW92ZSh0YXNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb2N1bWVu
dFJlZmVyZW5jZS5nZXQoKTsKQEAgLTc1NTksNyArNzU1OSw3IEBAIHZvaWQgRG9jdW1lbnQ6Omhh
c1N0b3JhZ2VBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIGlmIChQ
YWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CiAgICAgICAgIGF1dG8gaWZyYW1lSG9zdCA9IHNl
Y3VyaXR5T3JpZ2luLmhvc3QoKTsKICAgICAgICAgYXV0byB0b3BIb3N0ID0gdG9wU2VjdXJpdHlP
cmlnaW4uaG9zdCgpOwotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYXNTdG9yYWdl
QWNjZXNzKFdURk1vdmUoaWZyYW1lSG9zdCksIFdURk1vdmUodG9wSG9zdCksIGZyYW1lSUQudmFs
dWUoKSwgcGFnZUlELnZhbHVlKCksIFtkb2N1bWVudFJlZmVyZW5jZSA9IG1fd2Vha0ZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBo
YXNBY2Nlc3MpIHsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFzU3RvcmFnZUFj
Y2VzcyhXVEZNb3ZlKGlmcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEhvc3QpLCBmcmFtZUlELnZhbHVl
KCksIHBhZ2VJRC52YWx1ZSgpLCBbZG9jdW1lbnRSZWZlcmVuY2UgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBoYXNBY2Nlc3MpIHsKICAgICAg
ICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvY3VtZW50UmVmZXJlbmNlLmdldCgpOwogICAg
ICAgICAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC03NjI5
LDE0ICs3NjI5LDE0IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnJlcXVlc3RTdG9yYWdlQWNjZXNzKFdURk1vdmUoaWZy
YW1lSG9zdCksIFdURk1vdmUodG9wSG9zdCksIGZyYW1lSUQudmFsdWUoKSwgcGFnZUlELnZhbHVl
KCksIFtkb2N1bWVudFJlZmVyZW5jZSA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCB3YXNHcmFudGVkKSBtdXRhYmxl
IHsKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0U3RvcmFnZUFjY2VzcyhXVEZN
b3ZlKGlmcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEhvc3QpLCBmcmFtZUlELnZhbHVlKCksIHBhZ2VJ
RC52YWx1ZSgpLCBbZG9jdW1lbnRSZWZlcmVuY2UgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCB3YXNHcmFudGVkKSBtdXRhYmxlIHsKICAgICAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZG9jdW1lbnRSZWZlcmVuY2UuZ2V0KCk7CiAgICAgICAg
IGlmICghZG9jdW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAgICBp
ZiAod2FzR3JhbnRlZCkgewogICAgICAgICAgICAgZG9jdW1lbnQtPnNldEhhc0ZyYW1lU3BlY2lm
aWNTdG9yYWdlQWNjZXNzKHRydWUpOwotICAgICAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5U
aHJlYWRRdWV1ZSgpLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPFZvaWRNaWNyb3Rhc2s+KFtkb2N1
bWVudFJlZmVyZW5jZSA9IGRvY3VtZW50LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmRv
Y3VtZW50KV0gKCkgeworICAgICAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1
ZSgpLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPFZvaWRNaWNyb3Rhc2s+KFtkb2N1bWVudFJlZmVy
ZW5jZSA9IG1ha2VXZWFrUHRyKCpkb2N1bWVudCldICgpIHsKICAgICAgICAgICAgICAgICBpZiAo
YXV0byogZG9jdW1lbnQgPSBkb2N1bWVudFJlZmVyZW5jZS5nZXQoKSkKICAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQtPmVuYWJsZVRlbXBvcmFyeVRpbWVVc2VyR2VzdHVyZSgpOwogICAgICAg
ICAgICAgfSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0OTliYWNiZTFhNzM4NzI3YzE3ZmRj
NWQ3MjBiYzIzYmVmNDE2ZDY2Li4wY2IzYzFjNTg0MmRkN2Q3YmJmNTQyMDdjYjkzOWMzYzcwMDQ2
YzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzIxLDYgKzMyMSw3IEBAIGNsYXNzIERvY3Vt
ZW50CiAgICAgLCBwdWJsaWMgVHJlZVNjb3BlCiAgICAgLCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dAogICAgICwgcHVibGljIEZvbnRTZWxlY3RvckNsaWVudAorICAgICwgcHVibGljIENh
bk1ha2VXZWFrUHRyPERvY3VtZW50PgogICAgICwgcHVibGljIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcgogICAgICwgcHVibGljIFN1cHBsZW1lbnRhYmxlPERvY3VtZW50PgogICAgICwgcHVibGlj
IExvZ2dlcjo6T2JzZXJ2ZXIgewpAQCAtNzk5LDcgKzgwMCw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBXaW5kb3dQcm94eSogd2luZG93UHJveHkoKSBjb25zdDsKIAogICAgIERvY3Vt
ZW50JiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKLSAgICB2b2lkIHNldENvbnRleHREb2N1bWVu
dChEb2N1bWVudCYgZG9jdW1lbnQpIHsgbV9jb250ZXh0RG9jdW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVXZWFrUHRyKCk7IH0KKyAgICB2b2lkIHNldENvbnRleHREb2N1bWVudChEb2N1bWVudCYgZG9j
dW1lbnQpIHsgbV9jb250ZXh0RG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCk7IH0KIAog
ICAgIC8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGZvcndhcmRpbmcgRE9NV2luZG93IGV2ZW50IHJl
bGF0ZWQgdGFza3MgdG8gdGhlIERPTVdpbmRvdyBpZiBpdCBleGlzdHMuCiAgICAgdm9pZCBzZXRX
aW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcm
IHZhbHVlLCBET01XcmFwcGVyV29ybGQmKTsKQEAgLTEzMTEsNyArMTMxMiw2IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzQ2FwdHVyaW5nKCkgY29uc3QgeyByZXR1cm4gTWVkaWFQcm9kdWNlcjo6aXND
YXB0dXJpbmcobV9tZWRpYVN0YXRlKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRl
SXNQbGF5aW5nTWVkaWEodWludDY0X3QgPSBIVE1MTWVkaWFFbGVtZW50SW52YWxpZElEKTsKICAg
ICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCk7Ci0gICAgV2Vha1B0cjxEb2N1bWVudD4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7IH0KIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBh
ZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50Jik7
CkBAIC0xNjk0LDggKzE2OTQsNiBAQCBwcml2YXRlOgogICAgIFJlbmRlclB0cjxSZW5kZXJWaWV3
PiBtX3JlbmRlclZpZXc7CiAgICAgbXV0YWJsZSBEb2N1bWVudEV2ZW50UXVldWUgbV9ldmVudFF1
ZXVlOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8RG9jdW1lbnQ+IG1fd2Vha0ZhY3Rvcnk7Ci0KICAg
ICBIYXNoU2V0PE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcio+IG1fbWVkaWFDYW5TdGFydExpc3RlbmVy
czsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZXNzYWdlUG9ydC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgK
aW5kZXggY2I5N2QxMWM4ODVlODZjOGMxMWNiMjRjYTRkYjQ1OWJiYmM4NzU0YS4uOGVhZGY3OTBi
MmFiMTZjMmI2N2Y3ZTg0N2MyNzlhZGJiZDI4YzBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VQb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0
LmgKQEAgLTQ0LDEzICs0NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZyYW1l
OwogCi1jbGFzcyBNZXNzYWdlUG9ydCBmaW5hbCA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1
YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK2NsYXNzIE1lc3NhZ2VQb3J0IGZpbmFs
IDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZXNzYWdlUG9ydD4gewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8TWVzc2FnZVBvcnQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlm
aWVyJiByZW1vdGUpOwogICAgIHZpcnR1YWwgfk1lc3NhZ2VQb3J0KCk7CiAKLSAgICBhdXRvJiB3
ZWFrUHRyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha0ZhY3Rvcnk7IH0KLQogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVl
IG1lc3NhZ2UsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJik7CiAKICAgICB2
b2lkIHN0YXJ0KCk7CkBAIC0xMTUsOCArMTEzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2xv
c2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW50YW5nbGVkIHsgdHJ1ZSB9OwogCi0gICAgV2Vh
a1B0ckZhY3Rvcnk8TWVzc2FnZVBvcnQ+IG1fd2Vha0ZhY3Rvcnk7Ci0KICAgICAvLyBGbGFncyB0
byBtYW5hZ2UgcXVlcnlpbmcgdGhlIHJlbW90ZSBwb3J0IGZvciBHQyBwdXJwb3NlcwogICAgIG11
dGFibGUgYm9vbCBtX21pZ2h0QmVFbGlnaWJsZUZvckdDIHsgZmFsc2UgfTsKICAgICBtdXRhYmxl
IGJvb2wgbV9oYXNIYWRMb2NhbEFjdGl2aXR5U2luY2VMYXN0Q2hlY2sgeyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggNTczOTlhNGQ0NTUyYzZl
OTcyZDg3OGUzZDE2YjBjNDM4NzBlOGQ0OC4uYWJlMDA2ZDAzZjkyODMwMzc1YTE0NmM3NzUyYjJm
MmEzMjJjN2JjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBA
IC0zNzEsNyArMzcxLDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRQaWN0dXJlRWxlbWVu
dChIVE1MUGljdHVyZUVsZW1lbnQqIHBpY3R1cmVFbGVtZW50KQogICAgIAogICAgIGlmICghZ1Bp
Y3R1cmVPd25lck1hcCkKICAgICAgICAgZ1BpY3R1cmVPd25lck1hcCA9IG5ldyBQaWN0dXJlT3du
ZXJNYXAoKTsKLSAgICBnUGljdHVyZU93bmVyTWFwLT5hZGQodGhpcywgcGljdHVyZUVsZW1lbnQt
PmNyZWF0ZVdlYWtQdHIoKSk7CisgICAgZ1BpY3R1cmVPd25lck1hcC0+YWRkKHRoaXMsIG1ha2VX
ZWFrUHRyKCpwaWN0dXJlRWxlbWVudCkpOwogfQogICAgIAogdW5zaWduZWQgSFRNTEltYWdlRWxl
bWVudDo6d2lkdGgoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGJmNjA1ZGZjM2RmYjE4YWY4NTNkZGE2ZDIzODhl
ZTAwZTBiZmJmMDguLjgwYTdlMjI4NTYwOWFhYTQ5ZjU0ZGE3ODBkYmVjOTUwYjQ0M2Y1YWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHN0
cnVjdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlIHsKICAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVu
dD4gY2hlY2tlZFJhZGlvQnV0dG9uOwogfTsKIAotY2xhc3MgSFRNTElucHV0RWxlbWVudCA6IHB1
YmxpYyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCB7CitjbGFzcyBIVE1MSW5wdXRFbGVtZW50
IDogcHVibGljIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8SFRNTElucHV0RWxlbWVudD4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRNTElu
cHV0RWxlbWVudCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kiwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpOwpAQCAtMzQzLDggKzM0Myw2IEBAIHB1YmxpYzoKIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVjdGlvblJhbmdlRm9yQmluZGluZ3MoaW50IHN0YXJ0
LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7CiAKLSAgICBhdXRvJiB3ZWFrUHRy
RmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha0ZhY3Rvcnk7IH0KLQogcHJvdGVjdGVkOgog
ICAgIEhUTUxJbnB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRN
TEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCkBAIC00ODUsNyArNDgzLDYg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyPiBtX2xpc3RBdHRyaWJ1dGVUYXJnZXRP
YnNlcnZlcjsKICNlbmRpZgotICAgIFdlYWtQdHJGYWN0b3J5PEhUTUxJbnB1dEVsZW1lbnQ+IG1f
d2Vha0ZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAppbmRleCAxNjI3MGVhOTZlMjIzODc3NWNlNDEwYmFjNjgzZWFkYzY1OTQ3YTBlLi5mNmI1
ZTM2MWRkOWE4MjQxNmIxYmUyNTc4ODNmNjM3MGNkNGM5M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTY5MTAsNyArNjkxMCw3IEBAIFJlZlB0cjxQbGF0
Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ3Jl
YXRlUmVzb3VyY2VMCiB7CiAgICAgYXV0byBtZWRpYVJlc291cmNlTG9hZGVyID0gYWRvcHRSZWYo
Km5ldyBNZWRpYVJlc291cmNlTG9hZGVyKGRvY3VtZW50KCksICp0aGlzLCBjcm9zc09yaWdpbigp
KSk7CiAKLSAgICBtX2xhc3RNZWRpYVJlc291cmNlTG9hZGVyRm9yVGVzdGluZyA9IG1lZGlhUmVz
b3VyY2VMb2FkZXItPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBtX2xhc3RNZWRpYVJlc291cmNlTG9h
ZGVyRm9yVGVzdGluZyA9IG1ha2VXZWFrUHRyKG1lZGlhUmVzb3VyY2VMb2FkZXIuZ2V0KCkpOwog
CiAgICAgcmV0dXJuIFdURk1vdmUobWVkaWFSZXNvdXJjZUxvYWRlcik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDIzN2MzNjBjM2E4MDIzYTM0MjQwYmZkMzkw
ZDFmNTU1NDg5YTc3YmQuLjNlZTg4MWE2YjRlMjk0ZmRlY2QwZTllYjIxZWIzNGMxMzI3YTdjMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMjMsNiArMTIzLDcg
QEAgY2xhc3MgSFRNTE1lZGlhRWxlbWVudAogICAgIDogcHVibGljIEhUTUxFbGVtZW50CiAgICAg
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CiAgICAgLCBwdWJsaWMgTWVkaWFDb250cm9sbGVySW50
ZXJmYWNlCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4KICAg
ICAsIHB1YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudAogICAgICwgcHJpdmF0ZSBNZWRp
YUNhblN0YXJ0TGlzdGVuZXIKICAgICAsIHByaXZhdGUgTWVkaWFQbGF5ZXJDbGllbnQKQEAgLTE0
Niw3ICsxNDcsNiBAQCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50CiB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChIVE1MTWVkaWFFbGVtZW50KTsKIHB1YmxpYzoKLSAgICBXZWFrUHRyPEhUTUxN
ZWRpYUVsZW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpOyB9CiAgICAgUmVmUHRyPE1lZGlhUGxheWVyPiBwbGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX3BsYXllcjsgfQogCiAgICAgdmlydHVhbCBib29sIGlzVmlkZW8oKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQpAQCAtOTIyLDcgKzkyMiw2IEBAIHByaXZhdGU6CiAgICAgY29u
c3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpIGZpbmFsIHsgcmV0dXJuIGxvZ2dlcigpOyB9
CiAjZW5kaWYKIAotICAgIFdlYWtQdHJGYWN0b3J5PEhUTUxNZWRpYUVsZW1lbnQ+IG1fd2Vha0Zh
Y3Rvcnk7CiAgICAgVGltZXIgbV9wZW5kaW5nQWN0aW9uVGltZXI7CiAgICAgVGltZXIgbV9wcm9n
cmVzc0V2ZW50VGltZXI7CiAgICAgVGltZXIgbV9wbGF5YmFja1Byb2dyZXNzVGltZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaAppbmRleCAzZDUwN2NlYzMyMmNiNjkz
YjllYmVlM2M1ZjQ4N2I5YTFlODUyMzI5Li5jNmRhMzU3NmM0ODIxMGRhNDgxMzExYjczODZiMDdk
ZDdkZmFmYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmgKQEAg
LTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MUGljdHVy
ZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworY2xhc3MgSFRNTFBpY3R1cmVF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
SFRNTFBpY3R1cmVFbGVtZW50PiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MUGlj
dHVyZUVsZW1lbnQpOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRNTFBpY3R1cmVFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkBAIC00NCw4ICs0NCw2
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgdmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUoKSBj
b25zdDsKIAotICAgIFdlYWtQdHI8SFRNTFBpY3R1cmVFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAjaWYgVVNF
KFNZU1RFTV9QUkVWSUVXKQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTeXN0ZW1QcmV2aWV3
SW1hZ2UoKSBjb25zdDsKICNlbmRpZgpAQCAtNTUsNyArNTMsNiBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50
JiBuZXdEb2N1bWVudCkgZmluYWw7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxIVE1MUGljdHVyZUVs
ZW1lbnQ+IG1fd2Vha0ZhY3Rvcnk7CiAgICAgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+IG1fdmll
d3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgKaW5kZXggYWEyYzc4MmRl
MDU4MzdmNTIyODYzOWY5NmIwODMyZTMzYjVjY2FiMS4uZGFlNzQ2NGIzODM4N2M0NzU2MThhZjMx
NjllZjMxZjVmMDQ3ZGVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFJlc291cmNlUHJlbG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFJlc291cmNlUHJlbG9hZGVyLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogdHlw
ZWRlZiBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFByZWxvYWRSZXF1ZXN0Pj4gUHJlbG9hZFJlcXVl
c3RTdHJlYW07CiAKLWNsYXNzIEhUTUxSZXNvdXJjZVByZWxvYWRlciB7CitjbGFzcyBIVE1MUmVz
b3VyY2VQcmVsb2FkZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SFRNTFJlc291cmNlUHJlbG9h
ZGVyPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSFRNTFJlc291cmNlUHJlbG9hZGVyKTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSFRNTFJlc291
cmNlUHJlbG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTgzLDExICs4Myw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHByZWxvYWQoUHJlbG9hZFJlcXVlc3RTdHJlYW0pOwogICAgIHZvaWQgcHJl
bG9hZChzdGQ6OnVuaXF1ZV9wdHI8UHJlbG9hZFJlcXVlc3Q+KTsKIAotICAgIFdlYWtQdHI8SFRN
TFJlc291cmNlUHJlbG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiBwcml2YXRlOgogICAgIERvY3VtZW50JiBtX2Rv
Y3VtZW50OwotICAgIFdlYWtQdHJGYWN0b3J5PEhUTUxSZXNvdXJjZVByZWxvYWRlcj4gbV93ZWFr
RmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKaW5kZXggNjIxNWIzOWVlY2RlMDIyNTMyYTE0
MDNkMmM5MWJiOTY3NzJlODFkMS4uOWRiMjA2MDE2MjIwNzg5NmVjYWVhMjBjNDBhNTUyZTE3M2I3
NWU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgK
QEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBjbGFzcyBDb250YWluZXI7CiBj
bGFzcyBUcmVlQnVpbGRlcjsKIAotY2xhc3MgQm94IHsKK2NsYXNzIEJveCA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxCb3g+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEJveCk7CiBwdWJs
aWM6CiAgICAgZnJpZW5kIGNsYXNzIFRyZWVCdWlsZGVyOwpAQCAtOTQsNyArOTQsNiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc1BhZGRpbmdBcHBsaWNhYmxlKCkgY29uc3Q7CiAKICAgICBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlOyB9Ci0gICAgYXV0byYg
d2Vha1B0ckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3dlYWtGYWN0b3J5OyB9CiAKICAgICBz
dGQ6Om9wdGlvbmFsPGNvbnN0IFJlcGxhY2VkPiByZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVwbGFjZWQ7IH0KIApAQCAtMTI5LDcgKzEyOCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRO
ZXh0U2libGluZyhCb3gmIG5leHRTaWJsaW5nKSB7IG1fbmV4dFNpYmxpbmcgPSAmbmV4dFNpYmxp
bmc7IH0KICAgICB2b2lkIHNldFByZXZpb3VzU2libGluZyhCb3gmIHByZXZpb3VzU2libGluZykg
eyBtX3ByZXZpb3VzU2libGluZyA9ICZwcmV2aW91c1NpYmxpbmc7IH0KIAotICAgIFdlYWtQdHJG
YWN0b3J5PEJveD4gbV93ZWFrRmFjdG9yeTsKICAgICBSZW5kZXJTdHlsZSBtX3N0eWxlOwogICAg
IHN0ZDo6b3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+IG1fZWxlbWVudEF0dHJpYnV0ZXM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3RhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Gb3JtU3RhdGUuaAppbmRleCA3NzU4NDMyOWFmMTY0MjQ2NTBjMDBkYjhh
NzkzZDlkOTU1ZjUwNTBmLi42ZWQ4YmVjYjE0NTkyZmU3OTE2ZTk5YmY4YjBmMTVlZmQ5ZTlkZjYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdGF0ZS5oCkBAIC00MSw3ICs0MSw3IEBAIGVudW0gRm9y
bVN1Ym1pc3Npb25UcmlnZ2VyIHsgU3VibWl0dGVkQnlKYXZhU2NyaXB0LCBOb3RTdWJtaXR0ZWRC
eUphdmFTY3JpcHQgfTsKIAogdXNpbmcgU3RyaW5nUGFpclZlY3RvciA9IFZlY3RvcjxzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+PjsKIAotY2xhc3MgRm9ybVN0YXRlIDogcHVibGljIFJlZkNvdW50
ZWQ8Rm9ybVN0YXRlPiwgcHVibGljIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciB7CitjbGFzcyBG
b3JtU3RhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGb3JtU3RhdGU+LCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8Rm9ybVN0YXRlPiwgcHVibGljIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxGb3JtU3RhdGU+IGNyZWF0ZShIVE1MRm9ybUVsZW1lbnQmLCBT
dHJpbmdQYWlyVmVjdG9yJiYgdGV4dEZpZWxkVmFsdWVzLCBEb2N1bWVudCYsIEZvcm1TdWJtaXNz
aW9uVHJpZ2dlcik7CiAKQEAgLTUwLDggKzUwLDYgQEAgcHVibGljOgogICAgIERvY3VtZW50JiBz
b3VyY2VEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlRG9jdW1lbnQ7IH0KICAgICBG
b3JtU3VibWlzc2lvblRyaWdnZXIgZm9ybVN1Ym1pc3Npb25UcmlnZ2VyKCkgY29uc3QgeyByZXR1
cm4gbV9mb3JtU3VibWlzc2lvblRyaWdnZXI7IH0KIAotICAgIGF1dG8mIHdlYWtQdHJGYWN0b3J5
KCkgY29uc3QgeyByZXR1cm4gbV93ZWFrRmFjdG9yeTsgfQotCiBwcml2YXRlOgogICAgIEZvcm1T
dGF0ZShIVE1MRm9ybUVsZW1lbnQmLCBTdHJpbmdQYWlyVmVjdG9yJiYgdGV4dEZpZWxkVmFsdWVz
LCBEb2N1bWVudCYsIEZvcm1TdWJtaXNzaW9uVHJpZ2dlcik7CiAgICAgdm9pZCB3aWxsRGV0YWNo
UGFnZSgpIG92ZXJyaWRlOwpAQCAtNjAsNyArNTgsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZ1Bh
aXJWZWN0b3IgbV90ZXh0RmllbGRWYWx1ZXM7CiAgICAgUmVmPERvY3VtZW50PiBtX3NvdXJjZURv
Y3VtZW50OwogICAgIEZvcm1TdWJtaXNzaW9uVHJpZ2dlciBtX2Zvcm1TdWJtaXNzaW9uVHJpZ2dl
cjsKLSAgICBXZWFrUHRyRmFjdG9yeTxGb3JtU3RhdGU+IG1fd2Vha0ZhY3Rvcnk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5k
ZXggYmNiNTBkNmM4NWQwNDZiMGQyNGExODRhZjMyOTE4MGU3ZmRjOTdmNC4uZTYzN2IzOTk1YjE3
ZjA1MWFmYzU5Njg2NGM5MzUwYmQ2N2IxZGJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9h
ZGVyLmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQgTGlua0xvYWRlcjo6cHJlY29ubmVjdElm
TmVlZGVkKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QKICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjcm9zc09yaWdpbiwgImFub255bW91cyIpICYmIGRv
Y3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNjZXNzKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUo
aHJlZikpKQogICAgICAgICBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAgICAgQVNTRVJUKGRvY3VtZW50LmZyYW1lKCktPmxvYWRl
cigpLm5ldHdvcmtpbmdDb250ZXh0KCkpOwotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2Fk
ZXJTdHJhdGVneSgpLT5wcmVjb25uZWN0VG8oZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCksIGhy
ZWYsIHN0b3JhZ2VDcmVkZW50aWFsc1BvbGljeSwgW3dlYWtEb2N1bWVudCA9IGRvY3VtZW50LmNy
ZWF0ZVdlYWtQdHIoKSwgaHJlZl0oUmVzb3VyY2VFcnJvciBlcnJvcikgeworICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wcmVjb25uZWN0VG8oZG9jdW1lbnQuZnJh
bWUoKS0+bG9hZGVyKCksIGhyZWYsIHN0b3JhZ2VDcmVkZW50aWFsc1BvbGljeSwgW3dlYWtEb2N1
bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50KSwgaHJlZl0oUmVzb3VyY2VFcnJvciBlcnJvcikg
ewogICAgICAgICBpZiAoIXdlYWtEb2N1bWVudCkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKaW5kZXggN2I5YmQzOTM0ZmFhMDkwODNiZTQzNGMxODNk
NDVhNzY3NDU1Y2NmMy4uMDFkMWVmYzMxNWE1YjAyZDA2OTllOWFjNDVkZmQxMzY4NzhmNGFiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIExp
bmtQcmVsb2FkUmVzb3VyY2VDbGllbnQ7CiAKIHN0cnVjdCBMaW5rUmVsQXR0cmlidXRlOwogCi1j
bGFzcyBMaW5rTG9hZGVyIDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CitjbGFzcyBM
aW5rTG9hZGVyIDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPExpbmtMb2FkZXI+IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBMaW5rTG9hZGVyKExp
bmtMb2FkZXJDbGllbnQmKTsKICAgICB2aXJ0dWFsIH5MaW5rTG9hZGVyKCk7CkBAIC01OCw3ICs1
OCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2FkTGlua3NGcm9tSGVhZGVyKGNvbnN0
IFN0cmluZyYgaGVhZGVyVmFsdWUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgRG9jdW1lbnQmLCBNZWRp
YUF0dHJpYnV0ZUNoZWNrKTsKICAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZFR5cGUoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCi0gICAgV2Vha1B0cjxM
aW5rTG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIHZvaWQgdHJpZ2dlckV2ZW50cyhjb25zdCBDYWNoZWRS
ZXNvdXJjZSYpOwogICAgIHZvaWQgY2FuY2VsTG9hZCgpOwogCkBAIC03MSw3ICs3MCw2IEBAIHBy
aXZhdGU6CiAgICAgTGlua0xvYWRlckNsaWVudCYgbV9jbGllbnQ7CiAgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IG1fY2FjaGVkTGlua1Jlc291cmNlOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50PiBtX3ByZWxvYWRSZXNvdXJjZUNs
aWVudDsKLSAgICBXZWFrUHRyRmFjdG9yeTxMaW5rTG9hZGVyPiBtX3dlYWtQdHJGYWN0b3J5Owog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtQcmVsb2FkUmVz
b3VyY2VDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rUHJlbG9hZFJlc291
cmNlQ2xpZW50cy5jcHAKaW5kZXggMWNkNzQ0MzAwZjMyMjdkYzI4OTcyMTBiN2Y4YmY2OGQwOTNl
NzM3NC4uYWI5Mzc3MzY0OTViMjhiYTc0MjhmMWJjM2Y0MTdiODAxNTM2Y2MzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtQcmVsb2FkUmVzb3VyY2VDbGllbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuY3Bw
CkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTGlua1ByZWxvYWRSZXNv
dXJjZUNsaWVudDo6TGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudChMaW5rTG9hZGVyJiBsb2FkZXIs
IENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKIHsKLSAgICBtX2xvYWRlciA9IGxvYWRlci5jcmVh
dGVXZWFrUHRyKCk7CisgICAgbV9sb2FkZXIgPSBtYWtlV2Vha1B0cihsb2FkZXIpOwogICAgIG1f
cmVzb3VyY2UgPSAmcmVzb3VyY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRp
YVJlc291cmNlTG9hZGVyLmNwcAppbmRleCAzZDdjNGQ0YzU0ZDZmNDJiYmIxN2RhMWM5ZGJjNzVm
YTQ0NzFkNjQ3Li44MDc3ZDVhNWZlOGFjNThiNmU2MWRlYjcyOGZlYzg1YjMyNjJkYmI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00Myw3
ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhUmVzb3VyY2VMb2FkZXI6Ok1lZGlh
UmVzb3VyY2VMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50JiBtZWRp
YUVsZW1lbnQsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlKQogICAgIDogQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgbV9kb2N1bWVudCgmZG9jdW1lbnQp
Ci0gICAgLCBtX21lZGlhRWxlbWVudChtZWRpYUVsZW1lbnQuY3JlYXRlV2Vha1B0cigpKQorICAg
ICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIobWVkaWFFbGVtZW50KSkKICAgICAsIG1fY3Jv
c3NPcmlnaW5Nb2RlKGNyb3NzT3JpZ2luTW9kZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oCmluZGV4IDM0OTI3N2UwZDlkMjA0MDI5OTM1ZDc5Y2U0
NGMxMzY1NjgzZjk0ZTQuLjYxODQ1OGExMjhkNDI2Y2YxMmI0YjQzZjRhODc3MDY2Nzg1NzMxZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQs
NyArNDQsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiBjbGFz
cyBNZWRpYVJlc291cmNlOwogCi1jbGFzcyBNZWRpYVJlc291cmNlTG9hZGVyIGZpbmFsIDogcHVi
bGljIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlciwgcHVibGljIENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyIHsKK2NsYXNzIE1lZGlhUmVzb3VyY2VMb2FkZXIgZmluYWwgOiBwdWJsaWMgUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZXNv
dXJjZUxvYWRlcj4sIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZXNvdXJjZUxvYWRlcihEb2N1bWVudCYsIEhUTUxN
ZWRpYUVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB+TWVkaWFSZXNvdXJjZUxvYWRlcigpOwpAQCAtNTgsOCArNTgsNiBA
QCBwdWJsaWM6CiAgICAgVmVjdG9yPFJlc291cmNlUmVzcG9uc2U+IHJlc3BvbnNlc0ZvclRlc3Rp
bmcoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlc0ZvclRlc3Rpbmc7IH0KICAgICB2b2lkIGFk
ZFJlc3BvbnNlRm9yVGVzdGluZyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICBXZWFr
UHRyPGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KIHByaXZhdGU6CiAgICAgdm9p
ZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKQEAgLTY3LDcgKzY1LDYgQEAgcHJpdmF0
ZToKICAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fbWVkaWFFbGVtZW50OwogICAgIFN0
cmluZyBtX2Nyb3NzT3JpZ2luTW9kZTsKICAgICBIYXNoU2V0PE1lZGlhUmVzb3VyY2UqPiBtX3Jl
c291cmNlczsKLSAgICBXZWFrUHRyRmFjdG9yeTxjb25zdCBNZWRpYVJlc291cmNlTG9hZGVyPiBt
X3dlYWtGYWN0b3J5OwogICAgIFZlY3RvcjxSZXNvdXJjZVJlc3BvbnNlPiBtX3Jlc3BvbnNlc0Zv
clRlc3Rpbmc7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBjN2JhNzQ3NzkwMjI5
ZDczMmQyMzNlZDRiMmQ4YzQ3Y2E0NDQ2OTFmLi41YzQ4ZTdjZGZkZTQ2NWUyODM2YTI1NzI5NmM5
Zjk1Zjc4MGVlOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTkyLDYgKzkyLDcgQEAg
ZW51bSBjbGFzcyBJbmNsdWRlVGFyZ2V0T3JpZ2luIHsgTm8sIFllcyB9OwogLy8gRklYTUU6IFJl
bmFtZSBET01XaW5kb3cgdG8gTG9jYWxXaW5kb3cgYW5kIEFic3RyYWN0RE9NV2luZG93IHRvIERP
TVdpbmRvdy4KIGNsYXNzIERPTVdpbmRvdyBmaW5hbAogICAgIDogcHVibGljIEFic3RyYWN0RE9N
V2luZG93CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RE9NV2luZG93PgogICAgICwgcHVi
bGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyCiAgICAgLCBwdWJsaWMgRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyCiAgICAgLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzCkBAIC0zMzUsOCArMzM2
LDYgQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKTsKICAgICB2
b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogCi0gICAgV2Vha1B0cjxET01XaW5kb3c+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KnRoaXMpOyB9Ci0KIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRE9NV2luZG93KERvY3VtZW50Jik7
CiAKQEAgLTM5Myw4ICszOTIsNiBAQCBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgUGFnZVN0YXR1
cyB7IE5vbmUsIFNob3duLCBIaWRkZW4gfTsKICAgICBQYWdlU3RhdHVzIG1fbGFzdFBhZ2VTdGF0
dXMgeyBQYWdlU3RhdHVzOjpOb25lIH07CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxET01XaW5kb3c+
IG1fd2Vha1B0ckZhY3Rvcnk7Ci0KICNpZiBQTEFURk9STShJT1MpCiAgICAgdW5zaWduZWQgbV9z
Y3JvbGxFdmVudExpc3RlbmVyQ291bnQgeyAwIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAppbmRleCBhNGY2MzMxMGM3ZWEwY2EzY2QxOGUzNTNlYTE0MzczMjE0Yjdh
NzY0Li5hNWJiZjkwNDM0YTVkZDkzOWFkZGRkNDAyZDQ4ZTAzNTdkMDUxMmJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNzI0LDcgKzI3MjQsNyBAQCBzdGF0aWMgV2Vh
a1B0cjxXaWRnZXQ+IHdpZGdldEZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKICAg
ICBpZiAoIWlzPFJlbmRlcldpZGdldD4odGFyZ2V0KSB8fCAhZG93bmNhc3Q8UmVuZGVyV2lkZ2V0
PigqdGFyZ2V0KS53aWRnZXQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBk
b3duY2FzdDxSZW5kZXJXaWRnZXQ+KCp0YXJnZXQpLndpZGdldCgpLT5jcmVhdGVXZWFrUHRyKCk7
CisgICAgcmV0dXJuIG1ha2VXZWFrUHRyKCpkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KCp0YXJnZXQp
LndpZGdldCgpKTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OmNvbXBsZXRlV2lkZ2V0V2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBjb25zdCBXZWFrUHRyPFdpZGdl
dD4mIHdpZGdldCwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mIHNjcm9sbGFibGVBcmVh
LCBDb250YWluZXJOb2RlKiBzY3JvbGxhYmxlQ29udGFpbmVyKQpAQCAtMzk4MCw3ICszOTgwLDcg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZUxhc3RTY3JvbGxiYXJVbmRlck1vdXNlKFNjcm9s
bGJhciogc2Nyb2xsYmFyLCBTZXRPckNsZWEKICAgICAgICAgLy8gU2VuZCBtb3VzZSBlbnRlcmVk
IGlmIHdlJ3JlIHNldHRpbmcgYSBuZXcgc2Nyb2xsYmFyLgogICAgICAgICBpZiAoc2Nyb2xsYmFy
ICYmIHNldE9yQ2xlYXIgPT0gU2V0T3JDbGVhckxhc3RTY3JvbGxiYXI6OlNldCkgewogICAgICAg
ICAgICAgc2Nyb2xsYmFyLT5tb3VzZUVudGVyZWQoKTsKLSAgICAgICAgICAgIG1fbGFzdFNjcm9s
bGJhclVuZGVyTW91c2UgPSBzY3JvbGxiYXItPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgICAg
IG1fbGFzdFNjcm9sbGJhclVuZGVyTW91c2UgPSBtYWtlV2Vha1B0cigqc2Nyb2xsYmFyKTsKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX2xhc3RTY3JvbGxiYXJVbmRlck1vdXNlID0gbnVs
bHB0cjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmlj
VGFza1F1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUu
Y3BwCmluZGV4IGFiMDg4NjJkM2RlNjlkYTI5MTM1MWQ5MmY2M2E2NGEyMzc4Y2Y5ZDMuLjdkYmJh
OTI0NjQ2NTBiNjM3ZmFkOTkyYzJkMGVjNjgxNWNhZGJmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFRhc2tEaXNw
YXRjaGVyPFRpbWVyPjo6VGFza0Rpc3BhdGNoZXIoKQogdm9pZCBUYXNrRGlzcGF0Y2hlcjxUaW1l
cj46OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIHsKICAgICBtX3BlbmRp
bmdUYXNrcy5hcHBlbmQoV1RGTW92ZShmdW5jdGlvbikpOwotICAgIHBlbmRpbmdEaXNwYXRjaGVy
cygpLmFwcGVuZChtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpKTsKKyAgICBw
ZW5kaW5nRGlzcGF0Y2hlcnMoKS5hcHBlbmQobWFrZVdlYWtQdHIoKnRoaXMpKTsKICAgICBpZiAo
IXNoYXJlZFRpbWVyKCkuaXNBY3RpdmUoKSkKICAgICAgICAgc2hhcmVkVGltZXIoKS5zdGFydE9u
ZVNob3QoMF9zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVy
aWNUYXNrUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUu
aAppbmRleCAwMmMwYWI5YzJjN2Y4OWY3Yzg2YTY3MTBkNjc5YmQwMWJiOTllOGU1Li5hYWE5NDUw
ZGI5N2RiOWNlM2U0ZGNlYzYxYTQ0MjNiMzZlNmVkNjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oCkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiB9Owog
CiB0ZW1wbGF0ZTw+Ci1jbGFzcyBUYXNrRGlzcGF0Y2hlcjxUaW1lcj4geworY2xhc3MgVGFza0Rp
c3BhdGNoZXI8VGltZXI+IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFRhc2tEaXNwYXRjaGVyPFRp
bWVyPj4gewogcHVibGljOgogICAgIFRhc2tEaXNwYXRjaGVyKCk7CiAgICAgdm9pZCBwb3N0VGFz
ayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CkBAIC02MiwxMiArNjIsMTEgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgZGlzcGF0Y2hPbmVUYXNrKCk7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxUYXNr
RGlzcGF0Y2hlcj4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4+IG1fcGVuZGluZ1Rhc2tzOwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFz
cyBHZW5lcmljVGFza1F1ZXVlIHsKK2NsYXNzIEdlbmVyaWNUYXNrUXVldWUgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8R2VuZXJpY1Rhc2tRdWV1ZTxUPj4gewogcHVibGljOgogICAgIEdlbmVyaWNU
YXNrUXVldWUoKQogICAgICAgICA6IG1fZGlzcGF0Y2hlcigpCkBAIC04Nyw4ICs4Niw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICArK21fcGVuZGluZ1Rhc2tzOwot
ICAgICAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0
aGlzKTsKLSAgICAgICAgbV9kaXNwYXRjaGVyLnBvc3RUYXNrKFt3ZWFrVGhpcywgdGFzayA9IFdU
Rk1vdmUodGFzayldIHsKKyAgICAgICAgbV9kaXNwYXRjaGVyLnBvc3RUYXNrKFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldIHsKICAgICAgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgQVNT
RVJUKHdlYWtUaGlzLT5tX3BlbmRpbmdUYXNrcyk7CkBAIC0xMDUsMTMgKzEwMywxMiBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGNhbmNlbEFsbFRhc2tzKCkKICAgICB7Ci0gICAgICAgIG1fd2Vha1B0
ckZhY3RvcnkucmV2b2tlQWxsKCk7CisgICAgICAgIENhbk1ha2VXZWFrUHRyPEdlbmVyaWNUYXNr
UXVldWU8VD4+Ojp3ZWFrUHRyRmFjdG9yeSgpLnJldm9rZUFsbCgpOwogICAgICAgICBtX3BlbmRp
bmdUYXNrcyA9IDA7CiAgICAgfQogICAgIGJvb2wgaGFzUGVuZGluZ1Rhc2tzKCkgY29uc3QgeyBy
ZXR1cm4gbV9wZW5kaW5nVGFza3M7IH0KIAogcHJpdmF0ZToKLSAgICBXZWFrUHRyRmFjdG9yeTxH
ZW5lcmljVGFza1F1ZXVlPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFRhc2tEaXNwYXRjaGVyPFQ+
IG1fZGlzcGF0Y2hlcjsKICAgICB1bnNpZ25lZCBtX3BlbmRpbmdUYXNrcyB7IDAgfTsKICAgICBi
b29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CmluZGV4IDc5NzgxMDIwNDlkNmY1YmEyYjgzNGQwMzU5OWYyN2ExNDU3Mjc0N2YuLmU0NWFkMmJi
YzM3MzNjZTRiOTNmMzU2MzYxYzM2Yjk1NTMxMGZmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmgKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeVBhZ2VUaGF0Q29udGVudEFyZWFXaWxsUGFpbnQoKSBjb25zdDsKIAorICAgIHVzaW5n
IFdpZGdldDo6d2Vha1B0ckZhY3Rvcnk7CisKICAgICBJbnRQb2ludCBsb2NhdGlvbk9mQ29udGVu
dHMoKSBjb25zdDsKIAogICAgIC8vIE5PVEU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5
IHRoZSBvdmVycmlkZW4gc2V0U2Nyb2xsT2Zmc2V0IGZyb20gU2Nyb2xsYWJsZUFyZWEuCkBAIC0z
NzIsOCArMzc0LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzVW5jbGFtcGVkU2Nyb2xs
UG9zaXRpb25Gb3JUZXN0aW5nKGJvb2wgYWxsb3dzVW5jbGFtcGVkU2Nyb2xsUG9zaXRpb24pIHsg
bV9hbGxvd3NVbmNsYW1wZWRTY3JvbGxQb3NpdGlvbiA9IGFsbG93c1VuY2xhbXBlZFNjcm9sbFBv
c2l0aW9uOyB9CiAgICAgYm9vbCBhbGxvd3NVbmNsYW1wZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fYWxsb3dzVW5jbGFtcGVkU2Nyb2xsUG9zaXRpb247IH0KIAotICAgIGF1dG8m
IHdlYWtQdHJGYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeTsgfQotCiBw
cm90ZWN0ZWQ6CiAgICAgU2Nyb2xsVmlldygpOwogCkBAIC00NjAsOCArNDYwLDYgQEAgcHJpdmF0
ZToKIAogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsSWNvblBvaW50OwogCi0gICAgV2Vha1B0ckZh
Y3Rvcnk8U2Nyb2xsVmlldz4gbV93ZWFrUHRyRmFjdG9yeTsKLQogICAgIGJvb2wgbV9ob3Jpem9u
dGFsU2Nyb2xsYmFyTG9jayB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZlcnRpY2FsU2Nyb2xsYmFy
TG9jayB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CmluZGV4IGIyNzNhZjA1ODU0OGRhYWRiZjIxMTBmMWQ5ZGJlOGQ2NzUxNjEzN2UuLmI3MTkzOWI3
YmM4NWI1MTgxNjhiYzc5ZjBiZDRjYTkyM2FhMmEyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNDgsNyArNDgsNyBAQCB0eXBlZGVmIEludFBvaW50IFNj
cm9sbFBvc2l0aW9uOwogLy8gc2Nyb2xsT2Zmc2V0KCkgaXMgdGhlIHZhbHVlIHVzZWQgYnkgc2Ny
b2xsYmFycyAobWluIGlzIDAsMCksIGFuZCBzaG91bGQgbmV2ZXIgaGF2ZSBuZWdhdGl2ZSBjb21w
b25lbnRzLgogdHlwZWRlZiBJbnRQb2ludCBTY3JvbGxPZmZzZXQ7CiAKLWNsYXNzIFNjcm9sbGFi
bGVBcmVhIHsKK2NsYXNzIFNjcm9sbGFibGVBcmVhIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNj
cm9sbGFibGVBcmVhPiB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGwo
U2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkKTsKQEAgLTY1LDggKzY1LDYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCi0gICAgYXV0
byYgd2Vha1B0ckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5OyB9Ci0K
ICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFZl
Y3RvcjxMYXlvdXRVbml0PiogaG9yaXpvbnRhbFNuYXBPZmZzZXRzKCkgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgY29uc3QgVmVjdG9yPExheW91dFVuaXQ+KiB2ZXJ0aWNhbFNuYXBPZmZzZXRz
KCkgY29uc3Q7CkBAIC0zMzgsOCArMzM2LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBoYXNM
YXllckZvclNjcm9sbENvcm5lcigpIGNvbnN0OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8U2Nyb2xs
YWJsZUFyZWE+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0KIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdEludGVybmFsKFZpc2libGVDb250
ZW50UmVjdEluY2x1ZGVzU2Nyb2xsYmFycywgVmlzaWJsZUNvbnRlbnRSZWN0QmVoYXZpb3IpIGNv
bnN0OwogICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKGNvbnN0IFNjcm9sbFBvc2l0aW9u
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCmluZGV4IDFhODZiZjMzMjViY2I3MzE3
ODE3ZTY3ZGFkMTExMmI0ZGNhMDJlYzQuLjYyZjUwNDRhODM5M2JlNjRlZWJiYzY0NzU0NzVlOGIy
ZTJkNzIwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCkBAIC0yOCw3ICsyOCw2
IEBACiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgIldpZGdldC5oIgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMTMzLDggKzEzMiw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc3VwcG9ydHNV
cGRhdGVPblNlY29uZGFyeVRocmVhZCgpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxTY3JvbGxiYXI+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KnRoaXMpOyB9Ci0KIHByb3RlY3RlZDoKICAgICBTY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEmLCBT
Y3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemUsIFNjcm9sbGJhclRoZW1l
KiA9IDAsIGJvb2wgaXNDdXN0b21TY3JvbGxiYXIgPSBmYWxzZSk7CiAKQEAgLTE4Myw4ICsxODAs
NiBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1Njcm9sbGJhcigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQotICAgIFdlYWtQdHJGYWN0b3J5PFNjcm9sbGJh
cj4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9XaWRnZXQuY3BwCmluZGV4IDQwMjM1OGJkYTg1NWRmNjA3OWM2Y2E3N2ZhNzc5
NDhlNDMyNTNiOTQuLmM1Zjc4ZDJkYzJmNmUzMzJmZTI4NjBhYjM0NTVhNDRmMzhhOGEzZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmNwcApAQCAtNDYsNyArNDYsNyBAQCB2b2lkIFdpZGdl
dDo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpCiAgICAgQVNTRVJUKCF2aWV3IHx8ICFtX3Bh
cmVudCk7CiAgICAgaWYgKCF2aWV3IHx8ICF2aWV3LT5pc1Zpc2libGUoKSkKICAgICAgICAgc2V0
UGFyZW50VmlzaWJsZShmYWxzZSk7Ci0gICAgbV9wYXJlbnQgPSB2aWV3ID8gbWFrZVdlYWtQdHIo
KnZpZXcpIDogbnVsbHB0cjsKKyAgICBtX3BhcmVudCA9IG1ha2VXZWFrUHRyKHZpZXcpOwogICAg
IGlmICh2aWV3ICYmIHZpZXctPmlzVmlzaWJsZSgpKQogICAgICAgICBzZXRQYXJlbnRWaXNpYmxl
KHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRleCA0MDgxNDYwY2YyNjNlZmFl
NWVkYmM1YTVlOTAzMWM3NWQ1OTNlOWNjLi5mMzFmMjQ1YTgwYmJkNzBhY2NlNjIxMTg1NDljZDJk
NDAwYWMyMWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaApAQCAtODcsNyArODcsNyBAQCBl
bnVtIFdpZGdldE5vdGlmaWNhdGlvbiB7IFdpbGxQYWludEZsYXR0ZW5lZCwgRGlkUGFpbnRGbGF0
dGVuZWQgfTsKIC8vIFNjcm9sbGJhciAtIE1hYywgR3RrCiAvLyBQbHVnaW4gLSBNYWMsIFdpbmRv
d3MgKHdpbmRvd2VkIG9ubHkpLCBRdCAod2luZG93ZWQgb25seSwgd2lkZ2V0IGlzIGFuIEhXTkQg
b24gd2luZG93cyksIEd0ayAod2luZG93ZWQgb25seSkKIC8vCi1jbGFzcyBXaWRnZXQgOiBwdWJs
aWMgUmVmQ291bnRlZDxXaWRnZXQ+IHsKK2NsYXNzIFdpZGdldCA6IHB1YmxpYyBSZWZDb3VudGVk
PFdpZGdldD4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXaWRnZXQ+IHsKIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBleHBsaWNpdCBXaWRnZXQoUGxhdGZvcm1XaWRnZXQgPSBudWxscHRyKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5XaWRnZXQoKTsKQEAgLTE4Nyw4ICsxODcsNiBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0VG9D
b250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2lu
dCYpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxXaWRnZXQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KIHByaXZhdGU6CiAg
ICAgdm9pZCBpbml0KFBsYXRmb3JtV2lkZ2V0KTsgLy8gTXVzdCBiZSBjYWxsZWQgYnkgYWxsIFdp
ZGdldCBjb25zdHJ1Y3RvcnMgdG8gaW5pdGlhbGl6ZSBjcm9zcy1wbGF0Zm9ybSBkYXRhLgogCkBA
IC0yMTAsNyArMjA4LDYgQEAgcHJpdmF0ZToKICNlbHNlCiAgICAgUmV0YWluUHRyPE5TVmlldz4g
bV93aWRnZXQ7CiAjZW5kaWYKLSAgICBXZWFrUHRyRmFjdG9yeTxXaWRnZXQ+IG1fd2Vha1B0ckZh
Y3Rvcnk7CiAgICAgYm9vbCBtX3NlbGZWaXNpYmxlOwogICAgIGJvb2wgbV9wYXJlbnRWaXNpYmxl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDc4OTg2OTMz
MmVjOTE1MTVlZGFkZTZhMGVkMzgzMmNkMWM0NDZjY2UuLmI5MTIwNzczZGQ1MTAxNWMxNjI3ODRj
ZDI3MTgwOTA3NjhlZmI3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIu
Y3BwCkBAIC0zOCw3ICszOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXVk
aW9GaWxlUmVhZGVyIHsKK2NsYXNzIEF1ZGlvRmlsZVJlYWRlciA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxBdWRpb0ZpbGVSZWFkZXI+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb0Zp
bGVSZWFkZXIpOwogcHVibGljOgogICAgIEF1ZGlvRmlsZVJlYWRlcihjb25zdCBjaGFyKiBmaWxl
UGF0aCk7CkBAIC00OCw4ICs0OCw2IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QXVkaW9CdXM+IGNy
ZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubyk7CiAKIHByaXZhdGU6Ci0g
ICAgV2Vha1B0cjxBdWRpb0ZpbGVSZWFkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KICAgICBzdGF0aWMgdm9pZCBk
ZWludGVybGVhdmVQYWRBZGRlZENhbGxiYWNrKEF1ZGlvRmlsZVJlYWRlciosIEdzdFBhZCopOwog
ICAgIHN0YXRpYyB2b2lkIGRlaW50ZXJsZWF2ZVJlYWR5Q2FsbGJhY2soQXVkaW9GaWxlUmVhZGVy
Kik7CiAgICAgc3RhdGljIHZvaWQgZGVjb2RlYmluUGFkQWRkZWRDYWxsYmFjayhBdWRpb0ZpbGVS
ZWFkZXIqLCBHc3RQYWQqKTsKQEAgLTYxLDcgKzU5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRl
Y29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24oKTsKICAgICBHc3RGbG93UmV0dXJuIGhhbmRsZVNhbXBs
ZShHc3RBcHBTaW5rKik7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxBdWRpb0ZpbGVSZWFkZXI+IG1f
d2Vha1B0ckZhY3Rvcnk7CiAgICAgUnVuTG9vcCYgbV9ydW5Mb29wOwogICAgIGNvbnN0IHZvaWQq
IG1fZGF0YSB7IG51bGxwdHIgfTsKICAgICBzaXplX3QgbV9kYXRhU2l6ZSB7IDAgfTsKQEAgLTMw
MSw3ICsyOTgsNyBAQCB2b2lkIEF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVh
dGlvbigpCiAgICAgICAgICAgICByZWFkZXIuaGFuZGxlTWVzc2FnZShtZXNzYWdlKTsKICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICBHUmVmUHRyPEdzdE1lc3NhZ2U+IHByb3RlY3RNZXNzYWdl
KG1lc3NhZ2UpOwotICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IHJlYWRlci5jcmVhdGVXZWFr
UHRyKCk7CisgICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIocmVhZGVyKTsK
ICAgICAgICAgICAgIHJlYWRlci5tX3J1bkxvb3AuZGlzcGF0Y2goW3dlYWtUaGlzLCBwcm90ZWN0
TWVzc2FnZV0gewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAg
ICAgICAgd2Vha1RoaXMtPmhhbmRsZU1lc3NhZ2UocHJvdGVjdE1lc3NhZ2UuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9I
YXJkd2FyZUxpc3RlbmVyTWFjLmNwcAppbmRleCBkYmJkYzlmMGE5N2Y1YmE0OTBjZjUwMWRiMzNj
MjI0NTNkNzk4Nzg0Li43OGNiNjA3YmZiZGU0ZTQ0YTdkNjEyZDFkNDFlYWEwZmE3NzM5OTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIEF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYzo6QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjKENsaWVudCYgY2xpZW50
KQogICAgIHNldEhhcmR3YXJlQWN0aXZpdHkoaXNBdWRpb0hhcmR3YXJlUHJvY2Vzc1J1bm5pbmco
KSk7CiAgICAgc2V0T3V0cHV0RGV2aWNlU3VwcG9ydHNMb3dQb3dlck1vZGUoY3VycmVudERldmlj
ZVN1cHBvcnRzTG93UG93ZXJCdWZmZXJTaXplKCkpOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1f
d2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKTsKICAgICBtX2Jsb2NrID0gQmxvY2tfY29weSheKFVJbnQzMiBjb3Vu
dCwgY29uc3QgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MgcHJvcGVydGllc1tdKSB7CiAgICAg
ICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5wcm9wZXJ0eUNoYW5nZWQo
Y291bnQsIHByb3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oCmluZGV4IDYwNTdkMzg0
MGQxM2M5MjQzNTUxNmRmNTI3MzRmY2ExY2YzZDZlNDguLjA3MjBjZTQ3MmViMDg3ZWJlZmUzZTE2
OGNjZWZlNjI4Zjk3MGVlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmgKQEAgLTM1LDcgKzM1
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJNYWMgOiBwdWJsaWMgQXVkaW9IYXJkd2FyZUxpc3RlbmVyIHsKK2NsYXNzIEF1ZGlvSGFyZHdh
cmVMaXN0ZW5lck1hYyA6IHB1YmxpYyBBdWRpb0hhcmR3YXJlTGlzdGVuZXIsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM+IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgV1RGOjpSZWY8QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjPiBjcmVhdGUoQ2xpZW50Jik7CiAK
QEAgLTQ5LDcgKzQ5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByb3BlcnR5Q2hhbmdlZChVSW50
MzIsIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzW10pOwogCiAgICAgQXVkaW9PYmpl
Y3RQcm9wZXJ0eUxpc3RlbmVyQmxvY2sgbV9ibG9jazsKLSAgICBXZWFrUHRyRmFjdG9yeTxBdWRp
b0hhcmR3YXJlTGlzdGVuZXJNYWM+IG1fd2Vha0ZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtl
eS9DRE1DbGVhcktleS5jcHAKaW5kZXggY2VkNTQ2YzZkOWU5ZmZiYzRlMGM5OTk3NDA3YmRhZDc2
ZmUzMzk5MS4uYjQ1Mjc4MGQxMTE3MzAwMDY2N2MyOGFiM2FlZjhhNjlkOTg0YzY0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RN
Q2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcApAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgQ0RNSW5z
dGFuY2VDbGVhcktleTo6cmVxdWVzdExpY2Vuc2UoTGljZW5zZVR5cGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgaW5pdERhCiAgICAgICAgIGluaXREYXRhID0gZXh0cmFjdEtleWlkc0Zyb21DZW5jSW5p
dERhdGEoaW5pdERhdGEuZ2V0KCkpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZCgKLSAgICAgICAg
W3dlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgaW5pdERhdGEgPSBXVEZNb3ZlKGluaXREYXRhKSwgc2Vz
c2lvbklkVmFsdWUgPSBzX3Nlc3Npb25JZFZhbHVlXSgpIG11dGFibGUgeworICAgICAgICBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayks
IGluaXREYXRhID0gV1RGTW92ZShpbml0RGF0YSksIHNlc3Npb25JZFZhbHVlID0gc19zZXNzaW9u
SWRWYWx1ZV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogCkBAIC00OTcsNyArNDk3LDcgQEAgdm9pZCBDRE1JbnN0YW5jZUNs
ZWFyS2V5Ojp1cGRhdGVMaWNlbnNlKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBMaWNlbnNlVHlw
ZSwgY28KICAgICBhdXRvIGRpc3BhdGNoQ2FsbGJhY2sgPQogICAgICAgICBbdGhpcywgJmNhbGxi
YWNrXShib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8S2V5U3RhdHVzVmVjdG9y
PiYmIGNoYW5nZWRLZXlzLCBTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBj
YWxsT25NYWluVGhyZWFkKAotICAgICAgICAgICAgICAgIFt3ZWFrVGhpcyA9IG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayks
IHNlc3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlzID0gV1RGTW92ZShjaGFuZ2VkS2V5cyksIHN1
Y2NlZWRlZF0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBzZXNzaW9uV2FzQ2xv
c2VkLCBjaGFuZ2VkS2V5cyA9IFdURk1vdmUoY2hhbmdlZEtleXMpLCBzdWNjZWVkZWRdICgpIG11
dGFibGUgewogICAgICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01OTcsNyArNTk3LDcgQEAgdm9pZCBDRE1JbnN0YW5j
ZUNsZWFyS2V5Ojpsb2FkU2Vzc2lvbihMaWNlbnNlVHlwZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9u
SWQsIGNvbnMKICAgICBhdXRvIGRpc3BhdGNoQ2FsbGJhY2sgPQogICAgICAgICBbdGhpcywgJmNh
bGxiYWNrXShzdGQ6Om9wdGlvbmFsPEtleVN0YXR1c1ZlY3Rvcj4mJiBleGlzdGluZ0tleXMsIFN1
Y2Nlc3NWYWx1ZSBzdWNjZXNzLCBTZXNzaW9uTG9hZEZhaWx1cmUgbG9hZEZhaWx1cmUpIHsKICAg
ICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAgICAgICAgICAgW3dlYWtUaGlzID0g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKSwgZXhpc3RpbmdLZXlzID0gV1RGTW92ZShleGlzdGluZ0tleXMpLCBzdWNjZXNz
LCBsb2FkRmFpbHVyZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGV4aXN0aW5n
S2V5cyA9IFdURk1vdmUoZXhpc3RpbmdLZXlzKSwgc3VjY2VzcywgbG9hZEZhaWx1cmVdKCkgbXV0
YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTYyNyw3ICs2MjcsNyBAQCB2b2lkIENETUluc3RhbmNl
Q2xlYXJLZXk6OmxvYWRTZXNzaW9uKExpY2Vuc2VUeXBlLCBjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZCwgY29ucwogdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5OjpjbG9zZVNlc3Npb24oY29uc3QgU3Ry
aW5nJiwgQ2xvc2VTZXNzaW9uQ2FsbGJhY2sgY2FsbGJhY2spCiB7CiAgICAgY2FsbE9uTWFpblRo
cmVhZCgKLSAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0geworICAgICAgICBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsK
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC02NDEsNyArNjQxLDcgQEAgdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5OjpyZW1vdmVTZXNzaW9u
RGF0YShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGljZW5zZVR5cGUKICAgICBhdXRvIGRpc3Bh
dGNoQ2FsbGJhY2sgPQogICAgICAgICBbdGhpcywgJmNhbGxiYWNrXShLZXlTdGF0dXNWZWN0b3Im
JiBrZXlTdGF0dXNWZWN0b3IsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYgbWVz
c2FnZSwgU3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpIHsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoCi0gICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwga2V5U3RhdHVzVmVj
dG9yID0gV1RGTW92ZShrZXlTdGF0dXNWZWN0b3IpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdl
KSwgc3VjY2Vzc10oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGtleVN0YXR1c1Zl
Y3RvciA9IFdURk1vdmUoa2V5U3RhdHVzVmVjdG9yKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2Fn
ZSksIHN1Y2Nlc3NdKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5oCmluZGV4IGQ5OGZlMDdkMTA1ZDJiMTA4MGFiZDNkNTNmMTc0ZGQwMzFmNDE3YzkuLmNk
NGM4ODAxYzE5YWFiMGU2MTIzNTI0MjIxMTBhZjQ1ZWE4MTE2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RN
Q2xlYXJLZXkuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IHNhbml0aXplU2Vzc2lvbklkKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwog
fTsKIAotY2xhc3MgQ0RNSW5zdGFuY2VDbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1JbnN0YW5j
ZSB7CitjbGFzcyBDRE1JbnN0YW5jZUNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETUluc3RhbmNl
LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFuY2VDbGVhcktleT4gewogcHVibGljOgog
ICAgIENETUluc3RhbmNlQ2xlYXJLZXkoKTsKICAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZUNsZWFy
S2V5KCk7CkBAIC0xMDMsOSArMTAzLDYgQEAgcHVibGljOgogICAgIH07CiAKICAgICBjb25zdCBW
ZWN0b3I8S2V5PiBrZXlzKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgV2Vha1B0ckZhY3Rvcnk8
Q0RNSW5zdGFuY2VDbGVhcktleT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fz
Y2FkZS5oCmluZGV4IDM1MjlhOTU2OTc4MTY1MmU3OTQ4MzFlODIzMWE4MmJmY2Q0NTViN2MuLjAw
NTkwNzUxYWFhM2QzYWQ3ZTZmMDllMzdiMTA5ZjkxYzhlZGZlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaApAQCAtOTgsNyArOTgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBvcGVyYXRvcigpKFRleHRMYXlvdXQqKSBjb25zdDsKIH07CiAKLWNs
YXNzIEZvbnRDYXNjYWRlIHsKK2NsYXNzIEZvbnRDYXNjYWRlIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPEZvbnRDYXNjYWRlPiB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRm9udENhc2Nh
ZGUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBGb250Q2FzY2FkZShGb250Q2FzY2FkZURlc2NyaXB0
aW9uJiYsIGZsb2F0IGxldHRlclNwYWNpbmcgPSAwLCBmbG9hdCB3b3JkU3BhY2luZyA9IDApOwpA
QCAtMTk5LDggKzE5OSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcHJpbWFyeUZvbnRJc1N5c3Rl
bUZvbnQoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0ZVdlYWtQdHIo
KSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nh
c3Q8Rm9udENhc2NhZGUqPih0aGlzKSk7IH0KLQogICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q+IGRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBUZXh0UnVuJiwgdW5zaWduZWQgZnJvbSA9IDAsIHN0ZDo6b3B0aW9uYWw8dW5zaWdu
ZWQ+IHRvID0geyB9LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24gPSBDdXN0b21Gb250Tm90UmVh
ZHlBY3Rpb246OkRvTm90UGFpbnRJZkZvbnROb3RSZWFkeSkgY29uc3Q7CiAgICAgCiBwcml2YXRl
OgpAQCAtMzEzLDcgKzMxMSw2IEBAIHByaXZhdGU6CiAKICAgICBGb250Q2FzY2FkZURlc2NyaXB0
aW9uIG1fZm9udERlc2NyaXB0aW9uOwogICAgIG11dGFibGUgUmVmUHRyPEZvbnRDYXNjYWRlRm9u
dHM+IG1fZm9udHM7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8Rm9udENhc2NhZGU+IG1fd2Vha1B0ckZh
Y3Rvcnk7CiAgICAgZmxvYXQgbV9sZXR0ZXJTcGFjaW5nIHsgMCB9OwogICAgIGZsb2F0IG1fd29y
ZFNwYWNpbmcgeyAwIH07CiAgICAgbXV0YWJsZSBib29sIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1i
b2wgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCAxZDI4NzBlZjc2OGEwMzU5OGM4ODE5OThjMjU0ZGQ0
MjU1N2M1ZGYwLi5jZTk3MzUxNjk5NTAyMDQ0YjI2N2EwOGQ1YzU4NjkwZDA2NTQwNTI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcApAQCAtNzk5LDcgKzc5OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uOjpzY2hlZHVsZU1haW5UaHJlYWROb3RpZmljYXRpb24oTm90aWZpY2F0aW9uCiAgICAgaWYg
KGRlbGF5RGlzcGF0Y2ggJiYgIW1fbWFpblRocmVhZENhbGxQZW5kaW5nKSB7CiAgICAgICAgIG1f
bWFpblRocmVhZENhbGxQZW5kaW5nID0gdHJ1ZTsKIAotICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKV0geworICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTgzMiw3ICs4MzIsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlzcGF0Y2hOb3RpZmljYXRpb24oKQog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoIW1fcXVldWVkTm90aWZpY2F0aW9ucy5p
c0VtcHR5KCkgJiYgIW1fbWFpblRocmVhZENhbGxQZW5kaW5nKSB7Ci0gICAgICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKV0geworICAgICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKICAgICAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aAppbmRleCA3MDNmMzVkZmQwZDIwMTVjMTFlZjNmMGVlNTJkMjliNmQ5ZDgxYTczLi4zZmJjZGFm
YWM3YWU0MWQxYjI2YjRhOTViMDQ4ZTZiNzI0MmYwYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC00Niw3ICs0Niw3IEBA
IGNsYXNzIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjsKIGNsYXNzIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY7CiBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIAotY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSwgcHVibGljIEFWRkluYmFuZFRyYWNrUGFyZW50CitjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uPiwgcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGlj
IEFWRkluYmFuZFRyYWNrUGFyZW50CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBw
cml2YXRlIExvZ2dlckhlbHBlcgogI2VuZGlmCkBAIC0xNTksOCArMTU5LDYgQEAgcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXll
ciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbigpOwogCi0g
ICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KICAg
ICAvLyBNZWRpYVBsYXllclByaXZhdGVQcml2YXRlSW50ZXJmYWNlIG92ZXJyaWRlcy4KICAgICB2
b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCkBAIC0zMzAsOCArMzI4LDYgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBNZWRp
YVBsYXllciogbV9wbGF5ZXI7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0KICAgICBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4gbV9wZW5kaW5nU2VlazsKIAogICAgIERlcXVlPE5vdGlmaWNhdGlvbj4gbV9xdWV1ZWRO
b3RpZmljYXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgKaW5kZXggYmNhN2I5MzRhYjA5ZWVh
MjIzZDg2NTY3YTBiNGIzYzAzZjYwMjNkZC4uODNiOWQ1MDIzY2MxOGE5ZTQyOTNmZjYyNWFmMTUz
M2NhMmZhMDEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oCkBAIC00Miw3ICs0Miw3IEBAIE9C
SkNfQ0xBU1MgV2ViQ29yZUZQU0NvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGU7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMg
ZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2UgeworY2xhc3MgQ0RNSW5zdGFuY2VGYWlyUGxheVN0
cmVhbWluZ0FWRk9iakMgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2UsIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQz4gewogcHVibGljOgog
ICAgIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKCk7CiAgICAgdmlydHVhbCB+
Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMoKTsKQEAgLTgyLDEyICs4MiwxMCBA
QCBwdWJsaWM6CiAgICAgQVZDb250ZW50S2V5U2Vzc2lvbiAqY29udGVudEtleVNlc3Npb24oKSB7
IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBXZWFrUHRyPENETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIGJvb2wgaXNMaWNl
bnNlVHlwZVN1cHBvcnRlZChMaWNlbnNlVHlwZSkgY29uc3Q7CiAKICAgICBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IGtleUlEcygpOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8Q0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gbV9zZXJ2ZXJDZXJ0aWZpY2F0ZTsKICAgICBib29sIG1fcGVyc2lzdGVudFN0
YXRlQWxsb3dlZCB7IHRydWUgfTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IG1fc3RvcmFnZURpcmVj
dG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5kZXggMDNhYTYyNzZjMGFhYmNhM2FkNTQ0
NTQzMjA2N2MxZDA2ZDY4OTZmNy4uNDYzMDQxNjRlMmUxMzQ0ZWY0NGY1MTM3ZjlhYzdhZmRmZTMw
Mjc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KQEAgLTQ1NSw3ICs0NTUsNyBAQCB2b2lk
IENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVxdWVzdChB
VkNvbnRlbnRLZXlSZXF1ZXN0CiAgICAgfQogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY29udGVu
dElkZW50aWZpZXIgPSBrZXlJRHMuZmlyc3QoKS0+Y3JlYXRlTlNEYXRhKCk7Ci0gICAgW21fcmVx
dWVzdCBtYWtlU3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmFwcElkZW50aWZp
ZXIuZ2V0KCkgY29udGVudElkZW50aWZpZXI6Y29udGVudElkZW50aWZpZXIuZ2V0KCkgb3B0aW9u
czpuaWwgY29tcGxldGlvbkhhbmRsZXI6W3RoaXMsIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigp
XSAoTlNEYXRhICpjb250ZW50S2V5UmVxdWVzdERhdGEsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxl
IHsKKyAgICBbbV9yZXF1ZXN0IG1ha2VTdHJlYW1pbmdDb250ZW50S2V5UmVxdWVzdERhdGFGb3JB
cHA6YXBwSWRlbnRpZmllci5nZXQoKSBjb250ZW50SWRlbnRpZmllcjpjb250ZW50SWRlbnRpZmll
ci5nZXQoKSBvcHRpb25zOm5pbCBjb21wbGV0aW9uSGFuZGxlcjpbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyldIChOU0RhdGEgKmNvbnRlbnRLZXlSZXF1ZXN0RGF0YSwgTlNFcnJv
ciAqZXJyb3IpIG11dGFibGUgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFr
VGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBlcnJvciA9IHJldGFpblB0cihlcnJvciksIGNvbnRl
bnRLZXlSZXF1ZXN0RGF0YSA9IHJldGFpblB0cihjb250ZW50S2V5UmVxdWVzdERhdGEpXSB7CiAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFtX3JlcXVlc3RMaWNlbnNlQ2FsbGJhY2spCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMWFiZTcyYWFlYTBjYWQzMTI1MThjYTQy
NzVhOTkwOWMyZWQ5ZDk3OS4uMjJhYWZlYzdiODM0MjdiODEzMGE3YzA0M2Y4ZjY3MjA4MzRjY2E0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzsKIAotY2xhc3MgQ0RNU2Vzc2lvbkFW
Rm91bmRhdGlvbk9iakMgOiBwdWJsaWMgTGVnYWN5Q0RNU2Vzc2lvbiB7CitjbGFzcyBDRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBMZWdhY3lDRE1TZXNzaW9uLCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IHsKIHB1YmxpYzoKICAgICBD
RE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKiBwYXJlbnQsIExlZ2FjeUNETVNlc3Npb25DbGllbnQqKTsKICAgICB2aXJ0dWFsIH5DRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQygpOwpAQCAtNTMsMTQgKzUzLDExIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcGxheWVyRGlkUmVjZWl2ZUVycm9yKE5TRXJyb3IgKik7CiAKLSAgICBXZWFrUHRy
PENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiBwcm90ZWN0ZWQ6CiAgICAg
V2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBtX3BhcmVudDsKICAg
ICBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KiBtX2NsaWVudDsKICAgICBTdHJpbmcgbV9zZXNzaW9u
SWQ7CiAgICAgUmV0YWluUHRyPEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0PiBtX3JlcXVl
c3Q7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IG1fd2Vh
a1B0ckZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGQ4MmVmNzRlZWVkZTczNDZlZTVkNTVl
YTA5YWM5NzAxZDAwMmIxMGUuLjgyZjRjZGMwNzBmNTNhZDA3ZTZiOWI1ZjJjODM0NGY4ODI2M2Iy
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLm1tCkBAIC01MCw3ICs1MCw3IEBAIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRp
b24sIEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0KQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMo
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyogcGFyZW50LCBMZWdhY3lDRE1TZXNz
aW9uQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3BhcmVudChwYXJlbnQtPmNyZWF0ZVdlYWtQdHIo
KSkKKyAgICA6IG1fcGFyZW50KG1ha2VXZWFrUHRyKCpwYXJlbnQpKQogICAgICwgbV9jbGllbnQo
Y2xpZW50KQogICAgICwgbV9zZXNzaW9uSWQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lv
bi5oCmluZGV4IDBiNzRkYTQwNDVhNzU4N2QxNDBlNDhkNTJmZjU0ZGQ3ZGM2NzkxYmMuLmUxZGU3
MmE4NzJiNDc1MzliYTA1OTNhYmI5ZjQ4Y2M0NzU2MmU1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0
cmVhbVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLmgKQEAgLTQwLDcgKzQwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOwogCi1jbGFzcyBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uIDogcHVibGljIENETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakMgeworY2xhc3MgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbiA6
IHB1YmxpYyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbj4gewogcHVibGljOgogICAgIENETVNlc3Npb25B
VlN0cmVhbVNlc3Npb24oY29uc3QgVmVjdG9yPGludD4mIHByb3RvY29sVmVyc2lvbnMsIENETVBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmLCBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50Kik7CiAgICAg
dmlydHVhbCB+Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbigpOwpAQCAtNjAsNyArNjAsNiBAQCBw
dWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVs
ZWFzZU1lc3NhZ2UodW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNv
ZGUpOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbj4gbV93
ZWFrUHRyRmFjdG9yeTsKICAgICBSZXRhaW5QdHI8QVZTdHJlYW1TZXNzaW9uPiBtX3N0cmVhbVNl
c3Npb247CiAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1faW5pdERhdGE7CiAgICAgUmVmUHRyPFVp
bnQ4QXJyYXk+IG1fY2VydGlmaWNhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMTMzY2Mw
OGRjYzU2YTIzYWQ1Mjg2ODFkMmUwYTU3ZTZmZWNiZTdjNy4uMzgzMjVlNWI5YjczZjY5ODAyYWIz
OTc3ZTExOTlmZGY5MzY0ZTgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTQ4LDggKzE0
OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RN
SW5zdGFuY2UmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBz
dXBwb3J0CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKTsKQEAgLTMyNSw4ICszMjMsNiBAQCBw
cml2YXRlOgogCiAgICAgQVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRpb25BVlBsYXllcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fYXZQbGF5ZXIuZ2V0KCk7IH0KIAotICAgIFdlYWtQdHJGYWN0b3J5
PE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0K
ICAgICBSZXRhaW5QdHI8QVZVUkxBc3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxBVlBs
YXllcj4gbV9hdlBsYXllcjsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJdGVtPiBtX2F2UGxheWVy
SXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDQ4Y2U3NzkzNWQ5MTIxMzQ1MzllNDJi
N2U3OTdjMGY4NjcwMDQ3ZTYuLmFiNjAyNGQ3ZjU4MzY5OTE0YjhjMTI1M2I1ZmM1OTc3ZGY3MzMw
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNjY3LDcgKzY2Nyw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9MYXllcigpCiAgICAg
aWYgKCFtX2F2UGxheWVyIHx8IG1faGF2ZUJlZW5Bc2tlZFRvQ3JlYXRlTGF5ZXIpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gY3JlYXRl
V2Vha1B0cigpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJl
dHVybjsKIApAQCAtMTA5Nyw3ICsxMDk3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjaGVja1BsYXlhYmlsaXR5KCkKICAgICBtX2hhdmVDaGVja2VkUGxheWFi
aWxpdHkgPSB0cnVlOwogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0gICAgYXV0byB3
ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpOwogCiAgICAgW21fYXZBc3NldC5nZXQoKSBsb2FkVmFsdWVzQXN5bmNocm9ub3Vz
bHlGb3JLZXlzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6QCJwbGF5YWJsZSIsIEAidHJhY2tz
IiwgbmlsXSBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3
ZWFrVGhpc10gewpAQCAtMTExMyw3ICsxMTEzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpiZWdpbkxvYWRpbmdNZXRhZGF0YSgpCiAKICAgICBPU09iamVjdFB0
cjxkaXNwYXRjaF9ncm91cF90PiBtZXRhZGF0YUxvYWRpbmdHcm91cCA9IGFkb3B0T1NPYmplY3Qo
ZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCkpOwogICAgIGRpc3BhdGNoX2dyb3VwX2VudGVyKG1ldGFk
YXRhTG9hZGluZ0dyb3VwLmdldCgpKTsKLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0
cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgW21fYXZB
c3NldC5nZXQoKSBsb2FkVmFsdWVzQXN5bmNocm9ub3VzbHlGb3JLZXlzOmFzc2V0TWV0YWRhdGFL
ZXlOYW1lcygpIGNvbXBsZXRpb25IYW5kbGVyOl57CiAKICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbd2Vha1RoaXMsIG1ldGFkYXRhTG9hZGluZ0dyb3VwXSB7CkBAIC0xMzM3LDcgKzEzMzcsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUoY29u
c3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAgIGlmIChDTVRpbWVDb21wYXJlKGNtQmVmb3Jl
LCBrQ01UaW1lWmVybykgPCAwKQogICAgICAgICBjbUJlZm9yZSA9IGtDTVRpbWVaZXJvOwogICAg
IAotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKIAogICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSBzZWVr
VG9UaW1lOmNtVGltZSB0b2xlcmFuY2VCZWZvcmU6Y21CZWZvcmUgdG9sZXJhbmNlQWZ0ZXI6Y21B
ZnRlciBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgZmluaXNoZWQpIHsKICAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1RoaXMsIGZpbmlzaGVkXSB7CkBAIC0yNDE5LDcgKzI0MTksNyBAQCBz
dGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlU2VzcwogICAgIGlmICgha2V5U3lzdGVtSXNTdXBwb3J0ZWQoa2V5
U3lzdGVtKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBzZXNzaW9uID0gc3Rk
OjptYWtlX3VuaXF1ZTxDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQz4odGhpcywgY2xpZW50KTsK
LSAgICBtX3Nlc3Npb24gPSBzZXNzaW9uLT5jcmVhdGVXZWFrUHRyKCk7CisgICAgbV9zZXNzaW9u
ID0gbWFrZVdlYWtQdHIoKnNlc3Npb24pOwogICAgIHJldHVybiBXVEZNb3ZlKHNlc3Npb24pOwog
fQogI2VuZGlmCkBAIC0yOTQxLDcgKzI5NDEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2hvdQog
ICAgIEFTU0VSVChtX3BsYXliYWNrVGFyZ2V0LT50YXJnZXRUeXBlKCkgPT0gTWVkaWFQbGF5YmFj
a1RhcmdldDo6TW9jayk7CiAKICAgICBzZXREZWxheUNhbGxiYWNrcyh0cnVlKTsKLSAgICBhdXRv
IHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyk7CiAgICAgc2NoZWR1bGVNYWluVGhyZWFkTm90aWZpY2F0aW9uKE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Tm90aWZpY2F0aW9uKFt3ZWFrVGhpc10gewogICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzQyMiw3ICszNDIyLDcg
QEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6KGlkKW9i
amVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeQogICAgIGlmICghZnVuY3Rpb24pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGF1dG8gd2Vha1RoaXMgPSBtX2NhbGxiYWNrLT5jcmVhdGVXZWFrUHRyKCk7
CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCptX2NhbGxiYWNrKTsKICAgICBtX2Nh
bGxiYWNrLT5zY2hlZHVsZU1haW5UaHJlYWROb3RpZmljYXRpb24oTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpOb3RpZmljYXRpb24oW3dlYWtUaGlzLCBmdW5jdGlvbiA9IFdURk1vdmUo
ZnVuY3Rpb24pXXsKICAgICAgICAgLy8gd2Vha1RoaXMgYW5kIGZ1bmN0aW9uIGJvdGggcmVmZXIg
dG8gdGhlIHNhbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyBpbnN0YW5jZS4g
SWYgdGhlIFdlYWtQdHIgaGFzCiAgICAgICAgIC8vIGJlZW4gY2xlYXJlZCwgdGhlIHVuZGVybHlp
bmcgb2JqZWN0IGhhcyBiZWVuIGRlc3Ryb3llZCwgYW5kIGl0IGlzIHVuc2FmZSB0byBjYWxsIGZ1
bmN0aW9uKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IGQ2MWU3MjI2MmI4ZTNjOGU2
NTQ1OWExN2Q5ZDQ3NThhYmZiY2ZmYTYuLjZiYjEwMTY2MDNjOTZiZWE4NjFhMmNjMTVkN2JiNmUz
ZjBiNzEyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC01Nyw3ICs1Nyw3IEBAIGNs
YXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y7CiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXJPYmpDOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTsKIAotY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIGZpbmFsIDogcHVibGljIE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHJpdmF0ZSBNZWRpYVN0cmVhbVByaXZhdGU6Ok9ic2Vy
dmVyLCBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIGZpbmFsIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQz4sIHB1YmxpYyBNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHByaXZhdGUgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNl
cnZlciwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCiAjZW5kaWYKQEAg
LTc4LDggKzc4LDYgQEAgcHVibGljOgogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5
U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KICAgICB2b2lkIGVuc3VyZUxheWVycygpOwogICAgIHZv
aWQgZGVzdHJveUxheWVycygpOwogCkBAIC0yMzIsNyArMjMwLDYgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCkgZmluYWw7CiAKICAgICBNZWRpYVBsYXll
ciogbV9wbGF5ZXIgeyBudWxscHRyIH07Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFJlZlB0cjxN
ZWRpYVN0cmVhbVByaXZhdGU+IG1fbWVkaWFTdHJlYW1Qcml2YXRlOwogICAgIFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9hY3RpdmVWaWRlb1RyYWNrOwogICAgIFJldGFpblB0cjxX
ZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyPiBtX3N0YXR1c0NoYW5nZUxpc3Rl
bmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGE5N2M5MzhiMmEyN2M0OWQ0MWE0
ZmE5ZDI3MTVkMjdhZjVkMzQyODcuLmUxZDMwMWRkZGM2OTk5ZDY3NzRjYjUyNDcxMjdkZjlhMTA4
NWI1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTM5NSw3ICszOTUsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2Ft
cGxlKE1lZGlhU3RyZWFtVHJhY2tQcgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cmVxdWVzdE5vdGlmaWNhdGlvbldoZW5SZWFkeUZvclZpZGVvRGF0YSgpCiB7
Ci0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBy
ZXF1ZXN0TWVkaWFEYXRhV2hlblJlYWR5T25RdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6XiB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1
cm47CkBAIC0xMTMzLDcgKzExMzMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2V0U2hvdWxkQnVmZmVyRGF0YShib29sIHNob3VsZEJ1ZmZlcgogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJyZWRUYXNr
KEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsK
LSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgZnVuY3Rp
b24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0geworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CiAg
ICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oCmluZGV4
IDU0N2M3OWMyNmY2MTYzNGM3NWVmZWJhNjA3Yjg4ZDg3ZmRlZDEyYTUuLjgxYWIyZjkyNGRhZjI2
Y2RhMjJjNWUyMDA3NzZjMjE4MDIwMjNhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YuaApAQCAtNDMsNyArNDMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCi1jbGFzcyBU
ZXh0dXJlQ2FjaGVDViB7CitjbGFzcyBUZXh0dXJlQ2FjaGVDViA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxUZXh0dXJlQ2FjaGVDVj4gewogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8VGV4dHVyZUNhY2hlQ1Y+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYpOwogCkBAIC02Myw3
ICs2Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBt
X2NvbnRleHQ7CiAgICAgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+IG1fY2FjaGU7Ci0gICAg
V2Vha1B0ckZhY3Rvcnk8VGV4dHVyZUNhY2hlQ1Y+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJl
Q2FjaGVDVi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVD
YWNoZUNWLm1tCmluZGV4IGJiYjhlNzViMDEzOGRhNjAwMTk5MjA3ZWIzNjBlMmJjY2NiNzNkMDIu
LmNmOTU5Mjk4MjBhMDBmOTc0NmQ5N2M1OTc0OGVkOWY5YTlhMjY0YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCkBA
IC03NCw3ICs3NCw3IEBAIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZVR5cGU+IFRl
eHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKENWUGl4ZWxCCiAjZW5kaWYKICAgICBSZXRh
aW5QdHI8VGV4dHVyZVR5cGU+IHZpZGVvVGV4dHVyZSA9IGFkb3B0Q0YoYmFyZVZpZGVvVGV4dHVy
ZSk7CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10gewogICAg
ICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA3ZDg0N2YxOGQ3NjZlYTZk
N2ZiNDU4NmI0MzQzNTc2NGI5Zjg5MmFlLi42MzI3YzJjMjFmMzlkNGM1OTRmOGU1MDhiY2FlN2M2
N2NlNGRjNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtNjQxLDcgKzY0MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpjbGVhclRyYWNrcygpCiAjZGVmaW5lIENSRUFURV9UUkFDSyh0eXBlLCBUeXBlKSBcCiAg
ICAgbV9oYXMjI1R5cGUgPSB0cnVlOyBcCiAgICAgaWYgKCF1c2VNZWRpYVNvdXJjZSkge1wKLSAg
ICAgICAgUmVmUHRyPFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBUeXBlIyNU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShjcmVhdGVXZWFrUHRyKCksIGksIHN0cmVhbSk7
IFwKKyAgICAgICAgUmVmUHRyPFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBU
eXBlIyNUcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShtYWtlV2Vha1B0cigqdGhpcyksIGks
IHN0cmVhbSk7IFwKICAgICAgICAgbV8jI3R5cGUjI1RyYWNrcy5hZGQodHJhY2stPmlkKCksIHRy
YWNrKTsgXAogICAgICAgICBtX3BsYXllci0+YWRkIyNUeXBlIyNUcmFjaygqdHJhY2spO1wKICAg
ICAgICAgaWYgKGdzdF9zdHJlYW1fZ2V0X3N0cmVhbV9mbGFncyhzdHJlYW0uZ2V0KCkpICYgR1NU
X1NUUkVBTV9GTEFHX1NFTEVDVCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKQEAgLTgxMiw3ICs4MTIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5UGxheWVyT2ZWaWRlbygpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAg
ICBSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI+IHRyYWNrID0gVmlkZW9UcmFja1By
aXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShjcmVhdGVXZWFrUHRyKCksIGksIHBhZCk7CisgICAgICAg
IFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBWaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFrUHRyKCp0aGlzKSwgaSwgcGFkKTsKICAgICAg
ICAgQVNTRVJUKHN0cmVhbUlkID09IHRyYWNrLT5pZCgpKTsKICAgICAgICAgbV92aWRlb1RyYWNr
cy5hZGQoc3RyZWFtSWQsIHRyYWNrKTsKICAgICAgICAgbV9wbGF5ZXItPmFkZFZpZGVvVHJhY2so
KnRyYWNrKTsKQEAgLTg4Niw3ICs4ODYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bm90aWZ5UGxheWVyT2ZBdWRpbygpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAot
ICAgICAgICBSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXI+IHRyYWNrID0gQXVkaW9U
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShjcmVhdGVXZWFrUHRyKCksIGksIHBhZCk7Cisg
ICAgICAgIFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBBdWRpb1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFrUHRyKCp0aGlzKSwgaSwgcGFkKTsK
ICAgICAgICAgQVNTRVJUKHN0cmVhbUlkID09IHRyYWNrLT5pZCgpKTsKICAgICAgICAgbV9hdWRp
b1RyYWNrcy5hZGQoc3RyZWFtSWQsIHRyYWNrKTsKICAgICAgICAgbV9wbGF5ZXItPmFkZEF1ZGlv
VHJhY2soKnRyYWNrKTsKQEAgLTEyMTMsNyArMTIxMyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgY2Fz
ZSBHU1RfTUVTU0FHRV9FTEVNRU5UOgogICAgICAgICBpZiAoZ3N0X2lzX21pc3NpbmdfcGx1Z2lu
X21lc3NhZ2UobWVzc2FnZSkpIHsKICAgICAgICAgICAgIGlmIChnc3RfaW5zdGFsbF9wbHVnaW5z
X3N1cHBvcnRlZCgpKSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPE1lZGlhUGxheWVyUmVxdWVz
dEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrPiBtaXNzaW5nUGx1Z2luQ2FsbGJhY2sgPSBN
ZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3JlYXRlKFt3
ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKV0odWludDMyX3QgcmVzdWx0LCBNZWRpYVBsYXllclJl
cXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYgbWlzc2luZ1BsdWdpbkNhbGxiYWNr
KSB7CisgICAgICAgICAgICAgICAgUmVmUHRyPE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNz
aW5nUGx1Z2luc0NhbGxiYWNrPiBtaXNzaW5nUGx1Z2luQ2FsbGJhY2sgPSBNZWRpYVBsYXllclJl
cXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3JlYXRlKFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKV0odWludDMyX3QgcmVzdWx0LCBNZWRpYVBsYXllclJlcXVlc3RJbnN0
YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYgbWlzc2luZ1BsdWdpbkNhbGxiYWNrKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IEdTVF9JTkZPKCJnb3QgbWlzc2luZyBwbHVnaW5nIGluc3RhbGxhdGlvbiBjYWxsYmFjayBpbiBk
ZXN0cm95ZWQgcGxheWVyIHdpdGggcmVzdWx0ICV1IiwgcmVzdWx0KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaAppbmRleCAxYWU0YTU0YmFlMGFkZDNmZmFmYzEwYTI0YzQwMTU0OTU4M2U4ZDU2Li45
MjdhYzM4MGE5MmE0YjQwOTllZmI2YzRmN2E5YjM2ZTIyZWQ1YTI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC02MCwxMyArNjAsMTEgQEAgY2xh
c3MgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI7CiBjbGFzcyBNZWRpYVNvdXJjZVByaXZhdGVD
bGllbnQ7CiAjZW5kaWYKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVi
bGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgeworY2xhc3MgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Us
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5
ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKTsKIAotICAg
IFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAgICAgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAgICAg
dm9pZCBoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbklu
c3RhbGxlclJlc3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybik7CkBAIC0yMzYsNyArMjM0LDYg
QEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBtX3dlYWtQdHJGYWN0b3J5OwogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV90ZXh0QXBwU2luazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApp
bmRleCAyZWI0NDFkMjc1M2FlMmQ1ZjVhODhhOTUyYjRiZTZiNWI3ZjBjNWY3Li5jMTcyYmNhZjI0
NzZhNzk2MTY3MjE4MDdmMzY0MGNmN2U0YzgyZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0zODQsNyArMzg0LDcgQEAg
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2FnZShH
c3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBpZiAoY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVu
a3NOdW1iZXIgPiAxKQogICAgICAgICAgICAgZXZlbnRLZXlTeXN0ZW1JZFN0cmluZyA9IGVtcHR5
U3RyaW5nKCk7CiAKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGV2ZW50S2V5U3lzdGVtSWRT
dHJpbmcsIGluaXREYXRhID0gV1RGTW92ZShjb25jYXRlbmF0ZWRJbml0RGF0YUNodW5rcyldIHsK
KyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgZXZlbnRLZXlTeXN0ZW1JZFN0cmluZywgaW5pdERhdGEgPSBXVEZNb3ZlKGNvbmNh
dGVuYXRlZEluaXREYXRhQ2h1bmtzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEyNDMsNyArMTI0Myw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQo
R3N0RXZlbnQqIGV2CiAgICAgZ3N0X2J1ZmZlcl91bm1hcChkYXRhLCAmbWFwSW5mbyk7CiAKICAg
ICBTdHJpbmcgZXZlbnRLZXlTeXN0ZW1VVUlEU3RyaW5nID0gZXZlbnRLZXlTeXN0ZW1VVUlEOwot
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBldmVudEtleVN5c3RlbVVVSUQgPSBldmVudEtleVN5c3Rl
bVVVSURTdHJpbmcsIGluaXREYXRhXSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgZXZlbnRLZXlTeXN0ZW1VVUlEID0gZXZlbnRL
ZXlTeXN0ZW1VVUlEU3RyaW5nLCBpbml0RGF0YV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQog
ICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCBjZTVkODI1YjFmZDlmY2U1YmIwNzg1NTQzM2M4M2Y5
N2JlMGIxZjdlLi43ODYyYThjZDVjMjM1MTYzZTgyMTcwNmVlODJjNzdlMWZhNDc2MTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAg
LTYxLDcgKzYxLDcgQEAgY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTsKIAog
dm9pZCByZWdpc3RlcldlYktpdEdTdHJlYW1lckVsZW1lbnRzKCk7CiAKLWNsYXNzIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIDogcHVibGljIE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U+CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogICAgICwg
cHVibGljIFBsYXRmb3JtTGF5ZXIKICNlbmRpZgpAQCAtMjE3LDcgKzIxNyw2IEBAIHByb3RlY3Rl
ZDoKICNlbmRpZgogICAgIH07CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFJlZjxNYWluVGhyZWFkTm90
aWZpZXI8TWFpblRocmVhZE5vdGlmaWNhdGlvbj4+IG1fbm90aWZpZXI7CiAgICAgTWVkaWFQbGF5
ZXIqIG1fcGxheWVyOwogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV9waXBlbGluZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBw
ZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggZTIxM2QyZGU0MWNkMjFkOTIxOTdmZDQz
ZDUxOTgzZGJjMTZiY2UzMy4uZmQxODZhZjk5MDliYTBlY2JhYjEyZDJmOGU0NGM5YmRhNzI3YzBk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTEwMTMsMTEgKzEwMTMs
MTEgQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmso
R3N0UGFkKiBkZW11eGVyU3JjUGFkKQogICAgIHN3aXRjaCAobV9zdHJlYW1UeXBlKSB7CiAgICAg
Y2FzZSBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3RyZWFtZXI6OkF1ZGlvOgogICAg
ICAgICBpZiAobV9wbGF5ZXJQcml2YXRlKQotICAgICAgICAgICAgbV90cmFjayA9IFdlYkNvcmU6
OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUobV9wbGF5ZXJQcml2YXRlLT5jcmVh
dGVXZWFrUHRyKCksIGlkKCksIHNpbmtTaW5rUGFkLmdldCgpKTsKKyAgICAgICAgICAgIG1fdHJh
Y2sgPSBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFr
UHRyKCptX3BsYXllclByaXZhdGUpLCBpZCgpLCBzaW5rU2lua1BhZC5nZXQoKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFTb3VyY2VTdHJlYW1UeXBlR1N0cmVhbWVy
OjpWaWRlbzoKICAgICAgICAgaWYgKG1fcGxheWVyUHJpdmF0ZSkKLSAgICAgICAgICAgIG1fdHJh
Y2sgPSBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1fcGxheWVy
UHJpdmF0ZS0+Y3JlYXRlV2Vha1B0cigpLCBpZCgpLCBzaW5rU2lua1BhZC5nZXQoKSk7CisgICAg
ICAgICAgICBtX3RyYWNrID0gV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNy
ZWF0ZShtYWtlV2Vha1B0cigqbV9wbGF5ZXJQcml2YXRlKSwgaWQoKSwgc2lua1NpbmtQYWQuZ2V0
KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhU291cmNlU3RyZWFt
VHlwZUdTdHJlYW1lcjo6VGV4dDoKICAgICAgICAgbV90cmFjayA9IFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShpZCgpLCBzaW5rU2lua1BhZC5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCmluZGV4IGQ5M2QyYjEzZTNhZDkzNTVl
YWUwNGY5ZGJhZWZmNWRlZWY5MmM5MGMuLmJlYjZjMDQ3MjUyMmQ1ZDZhMGFkYTU2NjFkMmZjZDc3
ZjkzMDgwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCkBAIC04OSw3ICs4
OSw3IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkK
IAogICAgIHNldElzUHJldmlvdXNGcmFtZURvbmUoZmFsc2UpOwogCi0gICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFt3ZWFrUHRyID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlz
KV0geworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1B0ciA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0gewogICAgICAgICBpZiAoYXV0byogbW9uaXRvciA9IHdlYWtQdHIuZ2V0KCkpCiAg
ICAgICAgICAgICBoYW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0aW9uT25NYWluVGhyZWFk
KG1vbml0b3IpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmluZGV4IDNm
N2NjZGYyOGQ3M2M2ZTVkYzAwOGMwYTUxZTAwNTE0MjdkZmIzY2YuLmE0NTQ1NzdkNTZlZDE1OTdl
YzJjOWM1N2E4MDhkMzE5ZTc4ZTYyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgK
QEAgLTM0LDcgKzM0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkRpc3BsYXlMaW5rICpDVkRpc3Bs
YXlMaW5rUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERpc3BsYXlSZWZyZXNo
TW9uaXRvck1hYyA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3IgeworY2xhc3MgRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjIDogcHVibGljIERpc3BsYXlSZWZyZXNoTW9uaXRvciwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYz4gewogcHVibGljOgogICAg
IHN0YXRpYyBSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjPiBjcmVhdGUoUGxhdGZvcm1EaXNw
bGF5SUQgZGlzcGxheUlEKQogICAgIHsKQEAgLTQ5LDcgKzQ5LDYgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoUGxhdGZvcm1EaXNwbGF5
SUQpOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjPiBtX3dl
YWtGYWN0b3J5OwogICAgIENWRGlzcGxheUxpbmtSZWYgbV9kaXNwbGF5TGluayB7IG51bGxwdHIg
fTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggMjViNmNhNDNkZGMxZmNi
YTlkNTRiMTczMTAwYmRhNDRmNDIxZWZkYy4uMWRjODM3NjBkYWUyZGU4MDNkZDY1Yjk0MjViOWRj
OWZmZDQxNmM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTQ5NSw4ICs0OTUs
OCBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cmVtb3ZlQWxsQ2hpbGRyZW4oKQogdm9pZCBU
ZXh0dXJlTWFwcGVyTGF5ZXI6OnNldE1hc2tMYXllcihUZXh0dXJlTWFwcGVyTGF5ZXIqIG1hc2tM
YXllcikKIHsKICAgICBpZiAobWFza0xheWVyKSB7Ci0gICAgICAgIG1hc2tMYXllci0+bV9lZmZl
Y3RUYXJnZXQgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgICAgIG1fc3RhdGUubWFza0xheWVyID0g
bWFza0xheWVyLT5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIG1hc2tMYXllci0+bV9lZmZlY3RU
YXJnZXQgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgICAgIG1fc3RhdGUubWFza0xheWVyID0g
bWFrZVdlYWtQdHIoKm1hc2tMYXllcik7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fc3RhdGUubWFz
a0xheWVyID0gbnVsbHB0cjsKIH0KQEAgLTUwNCw4ICs1MDQsOCBAQCB2b2lkIFRleHR1cmVNYXBw
ZXJMYXllcjo6c2V0TWFza0xheWVyKFRleHR1cmVNYXBwZXJMYXllciogbWFza0xheWVyKQogdm9p
ZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldFJlcGxpY2FMYXllcihUZXh0dXJlTWFwcGVyTGF5ZXIq
IHJlcGxpY2FMYXllcikKIHsKICAgICBpZiAocmVwbGljYUxheWVyKSB7Ci0gICAgICAgIHJlcGxp
Y2FMYXllci0+bV9lZmZlY3RUYXJnZXQgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgICAgIG1fc3Rh
dGUucmVwbGljYUxheWVyID0gcmVwbGljYUxheWVyLT5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAg
IHJlcGxpY2FMYXllci0+bV9lZmZlY3RUYXJnZXQgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAg
ICAgIG1fc3RhdGUucmVwbGljYUxheWVyID0gbWFrZVdlYWtQdHIoKnJlcGxpY2FMYXllcik7CiAg
ICAgfSBlbHNlCiAgICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyID0gbnVsbHB0cjsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuaAppbmRleCBhYzEwNzk0NjkzMTg4ZjUyODY1ZGI4ZGUyN2Q0Mjgz
MGI1YTU2ZWQyLi4zM2ZjOWFlYmIzZjdjZTY2NGZmNzdiMDAwZjNjNDZiMTBhYWU1ZGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5oCkBAIC0zNCwxMyArMzQsMTIgQEAgY2xhc3MgUmVnaW9uOwog
Y2xhc3MgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9uczsKIGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyOwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBUZXh0dXJlTWFwcGVyTGF5ZXIgewor
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgVGV4dHVyZU1hcHBlckxheWVyIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPFRleHR1cmVNYXBwZXJMYXllcj4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRl
eHR1cmVNYXBwZXJMYXllcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgVGV4dHVyZU1hcHBlckxheWVyKCk7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckxh
eWVyKCk7Ci0gICAgV2Vha1B0cjxUZXh0dXJlTWFwcGVyTGF5ZXI+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICB2b2lk
IHNldElEKHVpbnQzMl90IGlkKSB7IG1faWQgPSBpZDsgfQogICAgIHVpbnQzMl90IGlkKCkgeyBy
ZXR1cm4gbV9pZDsgfQpAQCAtMTQxLDcgKzE0MCw2IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVy
biBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBtX3N0YXRlLnNpemUpOwogICAgIH0KIAot
ICAgIFdlYWtQdHJGYWN0b3J5PFRleHR1cmVNYXBwZXJMYXllcj4gbV93ZWFrRmFjdG9yeTsKICAg
ICBWZWN0b3I8VGV4dHVyZU1hcHBlckxheWVyKj4gbV9jaGlsZHJlbjsKICAgICBUZXh0dXJlTWFw
cGVyTGF5ZXIqIG1fcGFyZW50IHsgbnVsbHB0ciB9OwogICAgIFdlYWtQdHI8VGV4dHVyZU1hcHBl
ckxheWVyPiBtX2VmZmVjdFRhcmdldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggMzU5ZWUxMWQ1YzA0MDllMzIxMTE3OGU2NTliMjJmMjE4
MzU1N2U0YS4uMzg0MGZkZGNhM2RmZjZjZDBmYjgzMDA4MGQ4NTM5NDk2YTUyMjE1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTQ5OSw3
ICs0OTksNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kQ3Jl
YXRlZE1lZGlhU291cmNlKElNRkFzeW5jUmVzdWx0KiBhcwogICAgIGhyID0gYXN5bmNSZXN1bHQt
PkdldFN0YXR1cygpOwogICAgIG1fbG9hZGluZ1Byb2dyZXNzID0gU1VDQ0VFREVEKGhyKTsKIAot
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1B0ciA9IG1ha2VXZWFr
UHRyKCp0aGlzKV0gewogICAgICAgICBpZiAoIXdlYWtQdHIpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIHdlYWtQdHItPm9uQ3JlYXRlZE1lZGlhU291cmNlKCk7CkBAIC01MjgsNyArNTI4
LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmVuZEdldEV2ZW50
KElNRkFzeW5jUmVzdWx0KiBhc3luY1Jlc3VsdCkKIAogICAgIHN3aXRjaCAobWVkaWFFdmVudFR5
cGUpIHsKICAgICBjYXNlIE1FU2Vzc2lvblRvcG9sb2d5U2V0OiB7Ci0gICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
XSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtYWtlV2Vha1B0cigqdGhp
cyldIHsKICAgICAgICAgICAgIGlmICghd2Vha1B0cikKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB3ZWFrUHRyLT5vblRvcG9sb2d5U2V0KCk7CkBAIC01MzcsNyArNTM3LDcg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmVuZEdldEV2ZW50KElN
RkFzeW5jUmVzdWx0KiBhc3luY1Jlc3VsdCkKICAgICB9CiAKICAgICBjYXNlIE1FU2Vzc2lvblN0
YXJ0ZWQ6IHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
d2Vha1B0ciA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrUHRy
KQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHdlYWtQdHItPm9uU2Vzc2lv
blN0YXJ0ZWQoKTsKQEAgLTU0Niw3ICs1NDYsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbjo6ZW5kR2V0RXZlbnQoSU1GQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0KQog
ICAgIH0KIAogICAgIGNhc2UgTUVCdWZmZXJpbmdTdGFydGVkOiB7Ci0gICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
XSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtYWtlV2Vha1B0cigqdGhp
cyldIHsKICAgICAgICAgICAgIGlmICghd2Vha1B0cikKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB3ZWFrUHRyLT5vbkJ1ZmZlcmluZ1N0YXJ0ZWQoKTsKQEAgLTU1NSw3ICs1
NTUsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kR2V0RXZl
bnQoSU1GQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0KQogICAgIH0KIAogICAgIGNhc2UgTUVCdWZm
ZXJpbmdTdG9wcGVkOiB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoW3dlYWtQdHIgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1B0cikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB3ZWFrUHRyLT5v
bkJ1ZmZlcmluZ1N0b3BwZWQoKTsKQEAgLTU2NCw3ICs1NjQsNyBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kR2V0RXZlbnQoSU1GQXN5bmNSZXN1bHQqIGFzeW5j
UmVzdWx0KQogICAgIH0KIAogICAgIGNhc2UgTUVTZXNzaW9uRW5kZWQ6IHsKLSAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigq
dGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1B0ciA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrUHRyKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIHdlYWtQdHItPm9uU2Vzc2lvbkVuZGVkKCk7CkBAIC0xNzIzLDcg
KzE3MjMsNyBAQCBIUkVTVUxUIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6Q3Vz
dG9tVmlkZW9QcmVzZW50ZXI6OnByb2Nlc3NJbnB1dE5vdAogICAgIAogICAgIC8vIEludmFsaWRh
dGUgdGhlIHZpZGVvIGFyZWEKICAgICBpZiAobV9tZWRpYVBsYXllcikgewotICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFt3ZWFrUHRyID0gbV9tZWRpYVBsYXllci0+bV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCptX21lZGlhUGxheWVyKV0geworICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt3ZWFrUHRyID0gbV9tZWRpYVBsYXllci0+bWFrZVdlYWtQdHIoKm1fbWVkaWFQbGF5ZXIpXSB7
CiAgICAgICAgICAgICBpZiAod2Vha1B0cikKICAgICAgICAgICAgICAgICB3ZWFrUHRyLT5pbnZh
bGlkYXRlRnJhbWVWaWV3KCk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbi5oCmluZGV4IGM2NzJjMjI5OGI0NjI5YWFhMWFhZTQ1MTIxMWI1
ODYzOWUwNTMzYTMuLmZjY2VlMWMxMjVjZjg4MDA2NzZjNjNjOTJhZjc0YWZlNWE0YmFjOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKQEAgLTQ2LDcg
KzQ2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsK
K2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbiA6IHB1YmxpYyBNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb24+IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFGb3VuZGF0aW9uKCk7CkBAIC0xMjQsNyArMTI0LDYgQEAgcHJpdmF0ZToKICAg
ICBGbG9hdFNpemUgbV9jYWNoZWROYXR1cmFsU2l6ZTsKICAgICBtdXRhYmxlIExvY2sgbV9jYWNo
ZWROYXR1cmFsU2l6ZUxvY2s7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb24+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgQ09NUHRyPElNRk1lZGlh
U2Vzc2lvbj4gbV9tZWRpYVNlc3Npb247CiAgICAgQ09NUHRyPElNRlNvdXJjZVJlc29sdmVyPiBt
X3NvdXJjZVJlc29sdmVyOwogICAgIENPTVB0cjxJTUZNZWRpYVNvdXJjZT4gbV9tZWRpYVNvdXJj
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5k
TGlzdGVuZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5k
TGlzdGVuZXJJT1MuaAppbmRleCBkNTA3YzMxYzllYzExZDg3M2ViODUwMzZmYjEzZTYwYjFmMDhh
MGQ2Li5mOGIxNDFiNGRhYzMxN2RkODhiNWFmODBmZmNjMWM5YjE4MDQ4NDg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uy5oCkBAIC0zOCwxNiArMzgsMTQgQEAgdHlwZWRlZiB2b2lkICppZDsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MgOiBwdWJsaWMgUmVtb3Rl
Q29tbWFuZExpc3RlbmVyIHsKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUyA6IHB1Ymxp
YyBSZW1vdGVDb21tYW5kTGlzdGVuZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1M+IHsKIHB1YmxpYzoKICAgICBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1Mo
UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFu
ZExpc3RlbmVySU9TKCk7CiAKIHByb3RlY3RlZDoKLSAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KICAgICB2b2lkIHVwZGF0ZVN1cHBvcnRlZENvbW1hbmRzKCkg
b3ZlcnJpZGU7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M+
IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgUmV0YWluUHRyPGlkPiBtX3BsYXlUYXJnZXQ7CiAgICAg
UmV0YWluUHRyPGlkPiBtX3BhdXNlVGFyZ2V0OwogICAgIFJldGFpblB0cjxpZD4gbV90b2dnbGVQ
bGF5UGF1c2VUYXJnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQppbmRleCAzNWVmMWNmMjRmYzcxYzU4YmI1Yjdj
ZGZjYTU4ZjVhMDNiZjhlZTZjLi45YWU3NzM5YzUyZGVkNTNiNzU5YTMxZjE0NjQyOGI2NTZkYjY4
MDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFu
ZExpc3RlbmVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MubW0KQEAgLTUyLDcgKzUyLDcgQEAgUmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xp
ZW50JgogICAgIDogUmVtb3RlQ29tbWFuZExpc3RlbmVyKGNsaWVudCkKIHsKICAgICBNUFJlbW90
ZUNvbW1hbmRDZW50ZXIgKmNlbnRlciA9IFtnZXRNUFJlbW90ZUNvbW1hbmRDZW50ZXJDbGFzcygp
IHNoYXJlZENvbW1hbmRDZW50ZXJdOwotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRy
KCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICAKICAgICBt
X3BhdXNlVGFyZ2V0ID0gW1tjZW50ZXIgcGF1c2VDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxl
cjpeKE1QUmVtb3RlQ29tbWFuZEV2ZW50ICopIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
d2Vha1RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMuaAppbmRleCBiNzgxZTZhZDRhMWMyZjg0ZTk0MTZjNWU0YjE2
MzFkZGYzYWMyNTZkLi45NGE0MmUxOTE3MWIyZGNiOWZlOWI5MGYxZDU4YzIzYzlmNzhhMjNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3Rl
bmVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRM
aXN0ZW5lck1hYy5oCkBAIC0zMywxNyArMzMsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMgOiBwdWJsaWMgUmVtb3RlQ29tbWFuZExp
c3RlbmVyIHsKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYyA6IHB1YmxpYyBSZW1vdGVD
b21tYW5kTGlzdGVuZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVDb21tYW5kTGlzdGVu
ZXJNYWM+IHsKIHB1YmxpYzoKICAgICBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMoUmVtb3RlQ29t
bWFuZExpc3RlbmVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjKCk7CiAKIHByb3RlY3RlZDoKLSAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1h
Yz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7IH0KLQogICAgIHZvaWQgdXBkYXRlU3VwcG9ydGVkQ29tbWFuZHMoKSBvdmVycmlk
ZTsKIAotICAgIFdlYWtQdHJGYWN0b3J5PFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4gbV93ZWFr
UHRyRmFjdG9yeTsKICAgICB2b2lkKiBtX2NvbW1hbmRIYW5kbGVyIHsgbnVsbHB0ciB9OwogfTsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29t
bWFuZExpc3RlbmVyTWFjLm1tCmluZGV4IDNkNzQ3MjIyMmMyM2UwYjEwYTkyN2NhZDE4YjNjNmY0
YjE1ZTkzNjYuLjA1Y2MwODk1N2UxZDUwMTI0ZGQ2MzJlMmE0Yzg5MjEyOTg5Njk2MTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0
ZW5lck1hYy5tbQpAQCAtODQsNyArODQsNyBAQCBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM6OlJl
bW90ZUNvbW1hbmRMaXN0ZW5lck1hYyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmCiAKICAg
ICB1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0
ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAg
IG1fY29tbWFuZEhhbmRsZXIgPSBNUk1lZGlhUmVtb3RlQWRkQXN5bmNDb21tYW5kSGFuZGxlckJs
b2NrKF4oTVJNZWRpYVJlbW90ZUNvbW1hbmQgY29tbWFuZCwgQ0ZEaWN0aW9uYXJ5UmVmIG9wdGlv
bnMsIHZvaWQoXmNvbXBsZXRpb24pKENGQXJyYXlSZWYpKSB7CiAKICAgICAgICAgTE9HKE1lZGlh
LCAiUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMgLSBy
ZWNlaXZlZCBjb21tYW5kICV1IiwgY29tbWFuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAppbmRleCA0
MjY0NzcwNWI4MmRmM2RmNmUxNWQ3YzA1NmUyOGQ2NDUwYjdkNzU0Li5mY2I0MjNmM2M4YzE1ZGVm
ODM5MGRkZDM3ZjVlZTBlNTRkMmFhODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKQEAgLTI5NCw3
ICsyOTQsNyBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tFbmRlZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpCiB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoZnVuY3Rp
b24pOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpLCBm
dW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbild
IHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaAppbmRleCBjOTg0ZGViOTFmNzg0ZjZiODA0MzRkNzgzNDg4MjkyNzQ3ZjQ5N2RmLi4z
NTdmZDMwNmQ5NWVhMTQzYjQ2MDRiNjkwNDgxYmY2NDA5M2YxMTk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
aApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVN0cmVh
bTsKIGNsYXNzIE9yaWVudGF0aW9uTm90aWZpZXI7CiAKLWNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0
ZSA6IHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhU3RyZWFtUHJpdmF0ZT4geworY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlIDog
cHVibGljIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciwgcHVibGljIFJlZkNvdW50
ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhU3RyZWFt
UHJpdmF0ZT4gewogcHVibGljOgogICAgIGNsYXNzIE9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBA
IC0xMDIsOCArMTAyLDYgQEAgcHVibGljOgogCiAgICAgRmxvYXRTaXplIGludHJpbnNpY1NpemUo
KSBjb25zdDsKIAotICAgIFdlYWtQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAg
ICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpOwogCiBwcml2
YXRlOgpAQCAtMTIxLDcgKzExOSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjaGVkdWxlRGVm
ZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYpOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8TWVk
aWFTdHJlYW1Qcml2YXRlPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFZlY3RvcjxPYnNlcnZlcio+
IG1fb2JzZXJ2ZXJzOwogICAgIFN0cmluZyBtX2lkOwogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlKiBtX2FjdGl2ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CmluZGV4IDZjMDg5ZDAyMzQ2YWEzOTAxMjBkNzZiOWFmYzExNWQ3YWZlY2Q2ZjAuLjdiYTQwZmNk
N2ExMzcyZDYyODdiYzM4NGJmNzFhM2JlZTI0ZGE3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CkBAIC05MTMsNyArOTEzLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFY2hvQ2Fu
Y2VsbGF0aW9uKGJvb2wgZWNob0NhbmNlbGxhdGlvbikKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2NoZWR1bGVEZWZlcnJlZFRhc2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24p
CiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhp
cyA9IGNyZWF0ZVdlYWtQdHIoKSwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0geworICAg
IGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBmdW5jdGlv
biA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA5YjQ1MTIwNWU1YjkzYTUxZWUx
YWRjMjRlNWMwMGViMzhlNTM1OGI1Li4zOWI1MTBiNTMwNDdmMTBiZmMwNGNmNTE2ZmU0MGFmZDhm
NTFhNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02Miw3ICs2Miw3IEBAIGNsYXNzIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKIAogc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwog
Ci1jbGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIFJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVh
bHRpbWVNZWRpYVNvdXJjZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZWFsdGltZU1lZGlhU291
cmNlPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTI0
OSwxNSArMjQ5LDEyIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJik7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgc2l6ZV90KTsKIAotICAgIFdlYWtQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3Jl
YXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7IH0KLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgeyB9CiAKICAgICBib29s
IG1fbXV0ZWQgeyBmYWxzZSB9OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBTdHJpbmcgbV9pZDsKICAgICBTdHJpbmcgbV9w
ZXJzaXN0ZW50SUQ7CiAgICAgVHlwZSBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYy5oCmluZGV4IDA3YmMzZjgzMGEwYzY1Y2Y3N2M1YjlmZGU1NjdhNTU2
MGUzNWIwMjIuLjNkYjI3MGZlYTQ0MWVjNTczNmZkN2Y5MDczMjdjY2IzZWQ5NDUxMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCkBAIC0xMDAsNyArMTAw
LDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8Q0dEaXNwbGF5U3RyZWFtUmVmPiBtX2Rpc3Bs
YXlTdHJlYW07CiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IG1fYnVmZmVy
QXR0cmlidXRlczsKICAgICBDR0Rpc3BsYXlTdHJlYW1GcmFtZUF2YWlsYWJsZUhhbmRsZXIgbV9m
cmFtZUF2YWlsYWJsZUJsb2NrOwotICAgIFdlYWtQdHJGYWN0b3J5PFNjcmVlbkRpc3BsYXlDYXB0
dXJlU291cmNlTWFjPiBtX3dlYWtGYWN0b3J5OwogICAgIE1lZGlhVGltZSBtX3ByZXNlbnRhdGlv
blRpbWVTdGFtcDsKICAgICBNZWRpYVRpbWUgbV9mcmFtZUR1cmF0aW9uOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNh
cHR1cmVTb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KaW5kZXggNzhhYTAxMmY1ZGE5NjUz
MzcxNWE3YzZhMDkyZTZiNTgwZTAxYmYwYy4uY2Y0OTRiODdiMDI3ZDdlNmY5ZDRhMDkwOWYxMjYy
NjE1YzNjYTIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1h
Yy5tbQpAQCAtMTY3LDcgKzE2Nyw3IEBAIGJvb2wgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0oKQogICAgICAgICB9OwogICAgICAgICBhdXRvIHN0cmVh
bU9wdGlvbnMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFy
eUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKIAotICAg
ICAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsK
KyAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICAgICAgbV9m
cmFtZUF2YWlsYWJsZUJsb2NrID0gQmxvY2tfY29weSheKENHRGlzcGxheVN0cmVhbUZyYW1lU3Rh
dHVzIHN0YXR1cywgdWludDY0X3QgZGlzcGxheVRpbWUsIElPU3VyZmFjZVJlZiBmcmFtZVN1cmZh
Y2UsIENHRGlzcGxheVN0cmVhbVVwZGF0ZVJlZiB1cGRhdGVSZWYpIHsKICAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3ZyL1ZSUGxhdGZvcm1EaXNwbGF5LmgKaW5kZXggNzYyMzI1Y2JjNDRhZjJmMTE3
ZjA4NmNiOTAxYmFjMGNkMDllNzIzOC4uMWEwOGViMjhmZjI0YTM1YTIxOTFlYWZiOTI5YjdhMDQy
M2IyN2NhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9y
bURpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlz
cGxheS5oCkBAIC0xNTcsMTUgKzE1NywxMSBAQCBzdHJ1Y3QgVlJQbGF0Zm9ybVRyYWNraW5nSW5m
byB7CiAgICAgZG91YmxlIHRpbWVzdGFtcCB7IDAgfTsKIH07CiAKLWNsYXNzIFZSUGxhdGZvcm1E
aXNwbGF5IHsKK2NsYXNzIFZSUGxhdGZvcm1EaXNwbGF5IDogcHVibGljIENhbk1ha2VXZWFrUHRy
PFZSUGxhdGZvcm1EaXNwbGF5PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCBWUlBsYXRmb3JtRGlz
cGxheUluZm8gZ2V0RGlzcGxheUluZm8oKSA9IDA7CiAgICAgdmlydHVhbCBWUlBsYXRmb3JtVHJh
Y2tpbmdJbmZvIGdldFRyYWNraW5nSW5mbygpID0gMDsKICAgICB2aXJ0dWFsIH5WUlBsYXRmb3Jt
RGlzcGxheSgpID0gZGVmYXVsdDsKLQotICAgIFdlYWtQdHI8VlJQbGF0Zm9ybURpc3BsYXk+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOyB9Ci1wcml2YXRlOgotICAgIFdlYWtQdHJGYWN0b3J5PFZSUGxhdGZvcm1EaXNwbGF5PiBt
X3dlYWtQdHJGYWN0b3J5OwogfTsKIAogfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFuYWdlck9w
ZW5WUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybU1h
bmFnZXJPcGVuVlIuY3BwCmluZGV4IDk5YThmMWQxNzE2YjFhODQ4MWM1NmQzOGRhZjdkZjhmMDFm
ZThjMzMuLmQxZGM2NzM2ODZmNjUxZTNlMDMyOTFiN2MwMmMzMWIwYzE2OWJiYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFuYWdlck9w
ZW5WUi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZv
cm1NYW5hZ2VyT3BlblZSLmNwcApAQCAtNzksNyArNzksNyBAQCBWZWN0b3I8V2Vha1B0cjxWUlBs
YXRmb3JtRGlzcGxheT4+IFZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSOjpnZXRWUkRpc3BsYXlzKCkK
ICAgICBWZWN0b3I8V2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4+IGRpc3BsYXlzOwogICAgIGlm
ICghbV9kaXNwbGF5KQogICAgICAgICBtX2Rpc3BsYXkgPSBzdGQ6Om1ha2VfdW5pcXVlPFZSUGxh
dGZvcm1EaXNwbGF5T3BlblZSPihtX3N5c3RlbSwgY2hhcGVyb25lLCBjb21wb3NpdG9yKTsKLSAg
ICBkaXNwbGF5cy5hcHBlbmQobV9kaXNwbGF5LT5jcmVhdGVXZWFrUHRyKCkpOworICAgIGRpc3Bs
YXlzLmFwcGVuZChtYWtlV2Vha1B0cigqbV9kaXNwbGF5KSk7CiAgICAgcmV0dXJuIGRpc3BsYXlz
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmpl
Y3RzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmgKaW5kZXgg
NjY2MTkyODQ1NGYwMGRjM2YwOGFlMjJhZTA3NWVjYmRkOGNjOGY1Yy4uMTFlNjhhN2E3YjlmMmMy
OGY5MDBkM2MwZTBiM2ViYTdkZWMyNzIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9G
bG9hdGluZ09iamVjdHMuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6
IENhbGxlcnMgb2YgdGhlc2UgbWV0aG9kcyBhcmUgZGFuZ2Vyb3VzIGFuZCBzaG91bGQgYmUgd2hp
dGVsaXN0ZWQgZXhwbGljaXRseSBvciByZW1vdmVkLgogICAgIFJvb3RJbmxpbmVCb3gqIG9yaWdp
bmF0aW5nTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luYXRpbmdMaW5lLmdldCgpOyB9CiAg
ICAgdm9pZCBjbGVhck9yaWdpbmF0aW5nTGluZSgpIHsgbV9vcmlnaW5hdGluZ0xpbmUgPSBudWxs
cHRyOyB9Ci0gICAgdm9pZCBzZXRPcmlnaW5hdGluZ0xpbmUoUm9vdElubGluZUJveCYgbGluZSkg
eyBtX29yaWdpbmF0aW5nTGluZSA9IGxpbmUuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgdm9pZCBz
ZXRPcmlnaW5hdGluZ0xpbmUoUm9vdElubGluZUJveCYgbGluZSkgeyBtX29yaWdpbmF0aW5nTGlu
ZSA9IG1ha2VXZWFrUHRyKGxpbmUpOyB9CiAKICAgICBMYXlvdXRTaXplIGxvY2F0aW9uT2Zmc2V0
T2ZCb3JkZXJCb3goKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAppbmRleCA4M2FiZmI4Nzk4OTA3NWUzYzdmMGQ5N2YzN2VjYzNhYTczOGE4YTE5Li5j
Y2Q2ODZlNTFjYmRhMzcwOGJhOTY2NjE1YzNkMTNlY2ZlOTllNzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RydWN0IEFubm90
YXRlZFJlZ2lvblZhbHVlIHsKICNlbmRpZgogCiAvLyBCYXNlIGNsYXNzIGZvciBhbGwgcmVuZGVy
aW5nIHRyZWUgb2JqZWN0cy4KLWNsYXNzIFJlbmRlck9iamVjdCA6IHB1YmxpYyBDYWNoZWRJbWFn
ZUNsaWVudCB7CitjbGFzcyBSZW5kZXJPYmplY3QgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW5kZXJPYmplY3Q+IHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKFJlbmRlck9iamVjdCk7CiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlckJsb2NrOwog
ICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJCbG9ja0Zsb3c7CkBAIC0xMTQsOCArMTE0LDYgQEAgcHVi
bGljOgogICAgIGV4cGxpY2l0IFJlbmRlck9iamVjdChOb2RlJik7CiAgICAgdmlydHVhbCB+UmVu
ZGVyT2JqZWN0KCk7CiAKLSAgICBhdXRvJiB3ZWFrUHRyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJu
IG1fd2Vha0ZhY3Rvcnk7IH0KLQogICAgIFJlbmRlclRoZW1lJiB0aGVtZSgpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgPSAwOwpAQCAtODM4LDgg
KzgzNiw2IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyT2JqZWN0KiBtX3ByZXZpb3VzOwogICAgIFJl
bmRlck9iamVjdCogbV9uZXh0OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8UmVuZGVyT2JqZWN0PiBt
X3dlYWtGYWN0b3J5OwotCiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV9oYXNBWE9iamVjdCAg
ICAgICAgICAgICA6IDE7CiAgICAgYm9vbCBtX3NldE5lZWRzTGF5b3V0Rm9yYmlkZGVuIDogMTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAppbmRleCAwODY5MGI5
YzI2ZDU0MjE0NzIyMjIyMzg3NDFjMjZjNmZhNDdmODIxLi5jOGMwZTU0MzlmMjMyZTUyMTU0MjFj
ODIwYTYwNTY4M2M0MDY0YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Um9vdElubGluZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxp
bmVCb3guY3BwCkBAIC00NSw5ICs0NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJvb3RJbmxpbmVCb3gpOwogCi1zdHJ1Y3QgU2FtZVNpemVB
c1Jvb3RJbmxpbmVCb3ggOiBwdWJsaWMgSW5saW5lRmxvd0JveCB7CitzdHJ1Y3QgU2FtZVNpemVB
c1Jvb3RJbmxpbmVCb3ggOiBwdWJsaWMgSW5saW5lRmxvd0JveCwgcHVibGljIENhbk1ha2VXZWFr
UHRyPFJvb3RJbmxpbmVCb3g+IHsKICAgICB1bnNpZ25lZCB2YXJpYWJsZXNbN107Ci0gICAgdm9p
ZCogcG9pbnRlcnNbNF07CisgICAgdm9pZCogcG9pbnRlcnNbM107CiB9OwogCiBDT01QSUxFX0FT
U0VSVChzaXplb2YoUm9vdElubGluZUJveCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNSb290SW5saW5l
Qm94KSwgUm9vdElubGluZUJveF9zaG91bGRfc3RheV9zbWFsbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAppbmRleCA0ZWVjMDA5NzkxYTA1MDFkMmFmNjRkOTIzMTcx
Yzk4Y2YxN2E5Y2E0Li5kZDk1OTRmZmJjZmJjMGY2MmI5YWU3MWE3NTQyYTU4MDc3ZDVjMjExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKQEAgLTM2LDEyICszNiwx
MSBAQCBjbGFzcyBSZW5kZXJGcmFnbWVudENvbnRhaW5lcjsKIHN0cnVjdCBCaWRpU3RhdHVzOwog
c3RydWN0IEdhcFJlY3RzOwogCi1jbGFzcyBSb290SW5saW5lQm94IDogcHVibGljIElubGluZUZs
b3dCb3ggeworY2xhc3MgUm9vdElubGluZUJveCA6IHB1YmxpYyBJbmxpbmVGbG93Qm94LCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8Um9vdElubGluZUJveD4gewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoUm9vdElubGluZUJveCk7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUm9vdElubGluZUJv
eChSZW5kZXJCbG9ja0Zsb3cmKTsKICAgICB2aXJ0dWFsIH5Sb290SW5saW5lQm94KCk7Ci0gICAg
V2Vha1B0cjxSb290SW5saW5lQm94PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgUmVuZGVyQmxvY2tGbG93JiBi
bG9ja0Zsb3coKSBjb25zdDsKIApAQCAtMjMyLDcgKzIzMSw2IEBAIHByaXZhdGU6CiAgICAgLy8g
RmxvYXRzIGhhbmdpbmcgb2ZmIHRoZSBsaW5lIGFyZSBwdXNoZWQgaW50byB0aGlzIHZlY3RvciBk
dXJpbmcgbGF5b3V0LiBJdCBpcyBvbmx5CiAgICAgLy8gZ29vZCBmb3IgYXMgbG9uZyBhcyB0aGUg
bGluZSBoYXMgbm90IGJlZW4gbWFya2VkIGRpcnR5LgogICAgIHN0ZDo6dW5pcXVlX3B0cjxDbGVh
bkxpbmVGbG9hdExpc3Q+IG1fZmxvYXRzOwotICAgIFdlYWtQdHJGYWN0b3J5PFJvb3RJbmxpbmVC
b3g+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwogCiBpbmxpbmUgUm9vdElubGluZUJveCogUm9vdElu
bGluZUJveDo6bmV4dFJvb3RCb3goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQu
aAppbmRleCBiY2RmMTQ4ZTVlOGFlYzIwYjJlNTRjNjhhN2VmODIwYmUzMDViMzMyLi4xZTRlYzhm
NjM4NTA1NzcyM2MzMzhmNWUwOTg1NDRhMzY2YjkwZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aEVsZW1lbnQuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRy
YXRpY1Ntb290aFJlbDsKIGNsYXNzIFNWR1BhdGhTZWdMaXN0OwogY2xhc3MgU1ZHUG9pbnQ7CiAK
LWNsYXNzIFNWR1BhdGhFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0dlb21ldHJ5RWxlbWVudCwg
cHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgeworY2xhc3MgU1ZHUGF0aEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHR2VvbWV0cnlFbGVtZW50LCBwdWJsaWMgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNWR1BhdGhFbGVtZW50PiB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTVkdQYXRoRWxlbWVudCk7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxTVkdQYXRoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwpAQCAtOTksOCArOTksNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5p
bVZhbE9ic2VydmVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1WYWxPYnNlcnZlZDsgfQogCi0g
ICAgV2Vha1B0cjxTVkdQYXRoRWxlbWVudD4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJu
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqY29uc3RfY2FzdDxTVkdQYXRoRWxlbWVu
dCo+KHRoaXMpKTsgfQotCiAgICAgdm9pZCBhbmltYXRlZFByb3BlcnR5V2lsbEJlRGVsZXRlZCgp
OwogCiAgICAgc2l6ZV90IGFwcHJveGltYXRlTWVtb3J5Q29zdCgpIGNvbnN0IGZpbmFsOwpAQCAt
MTM1LDcgKzEzMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gbV9wYXRoQnl0
ZVN0cmVhbTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8UGF0aD4gbV9jYWNoZWRQYXRoOwog
ICAgIG11dGFibGUgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFNWR1BhdGhTZWdM
aXN0VmFsdWVzPiBtX3BhdGhTZWdMaXN0OwotICAgIFdlYWtQdHJGYWN0b3J5PFNWR1BhdGhFbGVt
ZW50PiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIGJvb2wgbV9pc0FuaW1WYWxPYnNlcnZlZDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnV2l0aENvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnV2l0aENvbnRleHQuaAppbmRleCA2MGYz
OTI1ODJjMWI1NjlmODViMjhmMTFjYjYwMDIxOWY2ZGU2ZTczLi40ZTM5NWI5ZTJmYTgzOWZhOTNm
ZDgzN2I4MWEwYWIwNjIxMGQzYTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ1dpdGhDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdX
aXRoQ29udGV4dC5oCkBAIC0yNyw3ICsyNyw3IEBAIGNsYXNzIFNWR1BhdGhTZWdXaXRoQ29udGV4
dCA6IHB1YmxpYyBTVkdQYXRoU2VnIHsKIHB1YmxpYzoKICAgICBTVkdQYXRoU2VnV2l0aENvbnRl
eHQoY29uc3QgU1ZHUGF0aEVsZW1lbnQmIGVsZW1lbnQsIFNWR1BhdGhTZWdSb2xlIHJvbGUpCiAg
ICAgICAgIDogbV9yb2xlKHJvbGUpCi0gICAgICAgICwgbV9lbGVtZW50KGVsZW1lbnQuY3JlYXRl
V2Vha1B0cigpKQorICAgICAgICAsIG1fZWxlbWVudChtYWtlV2Vha1B0cihjb25zdF9jYXN0PFNW
R1BhdGhFbGVtZW50Jj4oZWxlbWVudCkpKQogICAgIHsKICAgICB9CiAKQEAgLTU1LDcgKzU1LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGV4dEFuZFJvbGUoU1ZHUGF0aEVsZW1lbnQqIGVs
ZW1lbnQsIFNWR1BhdGhTZWdSb2xlIHJvbGUpCiAgICAgewogICAgICAgICBtX3JvbGUgPSByb2xl
OwotICAgICAgICBtX2VsZW1lbnQgPSBlbGVtZW50ID8gZWxlbWVudC0+Y3JlYXRlV2Vha1B0cigp
IDogV2Vha1B0cjxTVkdQYXRoRWxlbWVudD4oKTsKKyAgICAgICAgbV9lbGVtZW50ID0gbWFrZVdl
YWtQdHIoZWxlbWVudCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Ry
YW5zZm9ybUxpc3QuaAppbmRleCAzYjM0MzMzNDRlOWNjZmYyNWU0OTYxZDFmYmNmMGJlMWQwYTFl
MDkwLi5jODcyZmNhNTI3NjIwNmM5Y2I0MmRlY2MwMTdjNWE3YzBmOTE1NDQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAg
ICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7CiAgICAgICAgIAogICAgICAgICBSZWZQdHI8U1ZH
VHJhbnNmb3JtPiB3cmFwcGVyID0gbV92YWx1ZXMtPmNvbnNvbGlkYXRlKCk7Ci0gICAgICAgIG1f
d3JhcHBlcnMtPmFwcGVuZCh3cmFwcGVyLT5jcmVhdGVXZWFrUHRyKCkpOworICAgICAgICBtX3dy
YXBwZXJzLT5hcHBlbmQobWFrZVdlYWtQdHIoKndyYXBwZXIpKTsKIAogICAgICAgICBBU1NFUlQo
bV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICByZXR1cm4g
V1RGTW92ZSh3cmFwcGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgKaW5kZXggNjBjNGJh
MDZlMTIyNzhjZDM2N2JkM2E4ZTYzNWEwMTBmMDRhZTUzYi4uNDI5OGM2ZWIxNWNmOGY2MTMwZTMy
Y2Y0ODdiMmJmM2U2ODU1ZGE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgKQEAgLTUx
LDcgKzUxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxMaXN0
UHJvcGVydHlUZWFyT2ZmKj4obV9iYXNlVmFsLmdldCgpKTsKIAogICAgICAgICBhdXRvIHByb3Bl
cnR5ID0gTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9sZSwgbV92
YWx1ZXMsIG1fd3JhcHBlcnMpOwotICAgICAgICBtX2Jhc2VWYWwgPSBwcm9wZXJ0eS0+Y3JlYXRl
V2Vha1B0cigpOworICAgICAgICBtX2Jhc2VWYWwgPSBtYWtlV2Vha1B0cihwcm9wZXJ0eS5nZXQo
KSk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKICAgICB9CiAKQEAgLTYxLDcgKzYxLDcgQEAg
cHVibGljOgogICAgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxMaXN0UHJvcGVydHlUZWFy
T2ZmKj4obV9hbmltVmFsLmdldCgpKTsKIAogICAgICAgICBhdXRvIHByb3BlcnR5ID0gTGlzdFBy
b3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBBbmltVmFsUm9sZSwgbV92YWx1ZXMsIG1fd3Jh
cHBlcnMpOwotICAgICAgICBtX2FuaW1WYWwgPSBwcm9wZXJ0eS0+Y3JlYXRlV2Vha1B0cigpOwor
ICAgICAgICBtX2FuaW1WYWwgPSBtYWtlV2Vha1B0cihwcm9wZXJ0eS5nZXQoKSk7CiAgICAgICAg
IHJldHVybiBwcm9wZXJ0eTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJv
cGVydHlUZWFyT2ZmLmgKaW5kZXggMmUzZDFmODMwNWU2YWI0Y2Q2Y2E5YTcwNjU3MDNmZWQ0MjMw
YTcyMC4uNjczMmY5YWYyNGMxYWI1ZDJmN2Q3ZDlmM2MxNmE3NjhmOWVhZmQyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PExpc3RQcm9wZXJ0eVRlYXJPZmYq
PihtX2Jhc2VWYWwuZ2V0KCkpOwogCiAgICAgICAgIGF1dG8gcHJvcGVydHkgPSBTVkdQYXRoU2Vn
TGlzdDo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9sZSwgUGF0aFNlZ1VuYWx0ZXJlZFJvbGUsIG1f
dmFsdWVzLCBtX3dyYXBwZXJzKTsKLSAgICAgICAgbV9iYXNlVmFsID0gcHJvcGVydHktPmNyZWF0
ZVdlYWtQdHIoKTsKKyAgICAgICAgbV9iYXNlVmFsID0gbWFrZVdlYWtQdHIocHJvcGVydHkuZ2V0
KCkpOwogICAgICAgICByZXR1cm4gcHJvcGVydHk7CiAgICAgfQogCkBAIC01Myw3ICs1Myw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8TGlzdFByb3BlcnR5VGVh
ck9mZio+KG1fYW5pbVZhbC5nZXQoKSk7CiAKICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFNWR1Bh
dGhTZWdMaXN0OjpjcmVhdGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBQYXRoU2VnVW5hbHRlcmVkUm9s
ZSwgbV92YWx1ZXMsIG1fd3JhcHBlcnMpOwotICAgICAgICBtX2FuaW1WYWwgPSBwcm9wZXJ0eS0+
Y3JlYXRlV2Vha1B0cigpOworICAgICAgICBtX2FuaW1WYWwgPSBtYWtlV2Vha1B0cihwcm9wZXJ0
eS5nZXQoKSk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2Zm
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVh
ck9mZi5oCmluZGV4IGVlNWYwNmViMjkyZmNjNjFhY2Y2MmE5ZmJmZWVjZWFiMmIzOTZjYTQuLjIw
Y2U1ZTU4MzE1YTNiY2IxM2ZmZjg5OTZiNTFkNjhiMGFmZTI1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJP
ZmYuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gKnN0YXRp
Y19jYXN0PFByb3BlcnR5VGVhck9mZio+KG1fYmFzZVZhbC5nZXQoKSk7CiAKICAgICAgICAgYXV0
byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9sZSwg
bV9wcm9wZXJ0eSk7Ci0gICAgICAgIG1fYmFzZVZhbCA9IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRy
KCk7CisgICAgICAgIG1fYmFzZVZhbCA9IG1ha2VXZWFrUHRyKHByb3BlcnR5LmdldCgpKTsKICAg
ICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KIApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PFByb3BlcnR5VGVhck9mZio+KG1fYW5p
bVZhbC5nZXQoKSk7CiAKICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6
Y3JlYXRlKCp0aGlzLCBBbmltVmFsUm9sZSwgbV9wcm9wZXJ0eSk7Ci0gICAgICAgIG1fYW5pbVZh
bCA9IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIG1fYW5pbVZhbCA9IG1ha2VX
ZWFrUHRyKHByb3BlcnR5LmdldCgpKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAppbmRleCBhYTM1
NGQ2YjhjOGI0N2E5ZmVkNGY1NjkwNDlmNGRlMjcyZjNmMDVlLi4zMzk3MjAyNDY5MWZjYjczMzRh
MTE0MGU2MzU2YTU5ODI1YzU5ZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9w
ZXJ0eVRlYXJPZmYuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1
cm4gKnN0YXRpY19jYXN0PExpc3RQcm9wZXJ0eVRlYXJPZmYqPihtX2Jhc2VWYWwuZ2V0KCkpOwog
CiAgICAgICAgIGF1dG8gcHJvcGVydHkgPSBTVkdUcmFuc2Zvcm1MaXN0OjpjcmVhdGUoKnRoaXMs
IEJhc2VWYWxSb2xlLCBtX3ZhbHVlcywgbV93cmFwcGVycyk7Ci0gICAgICAgIG1fYmFzZVZhbCA9
IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIG1fYmFzZVZhbCA9IG1ha2VXZWFr
UHRyKHByb3BlcnR5LmdldCgpKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KIApA
QCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0
PExpc3RQcm9wZXJ0eVRlYXJPZmYqPihtX2FuaW1WYWwuZ2V0KCkpOwogCiAgICAgICAgIGF1dG8g
cHJvcGVydHkgPSBTVkdUcmFuc2Zvcm1MaXN0OjpjcmVhdGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBt
X3ZhbHVlcywgbV93cmFwcGVycyk7Ci0gICAgICAgIG1fYW5pbVZhbCA9IHByb3BlcnR5LT5jcmVh
dGVXZWFrUHRyKCk7CisgICAgICAgIG1fYW5pbVZhbCA9IG1ha2VXZWFrUHRyKHByb3BlcnR5Lmdl
dCgpKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaAppbmRleCA4MDc0OTJkZDkwNWVj
NmQ2MWI3NTRhYmQ5ODBkMTljNWMwN2FmNzJjLi5hMDAwNzJkOGZmNWE4MDNiNjMwZmRkMGY2NGZi
ODBlZTYzY2M1M2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdMaXN0UHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdM
aXN0UHJvcGVydHkuaApAQCAtMzcsNyArMzcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0
eVR5cGU+CiBjbGFzcyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY7CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLWNsYXNzIFNWR0xpc3RQcm9wZXJ0eSA6IHB1YmxpYyBT
VkdQcm9wZXJ0eSB7CitjbGFzcyBTVkdMaXN0UHJvcGVydHkgOiBwdWJsaWMgU1ZHUHJvcGVydHks
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTVkdMaXN0UHJvcGVydHk8UHJvcGVydHlUeXBlPj4gewog
cHVibGljOgogICAgIHR5cGVkZWYgU1ZHTGlzdFByb3BlcnR5PFByb3BlcnR5VHlwZT4gU2VsZjsK
IApAQCAtMTYyLDcgKzE2Miw3IEBAIHB1YmxpYzoKICAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7
CiAKICAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgp
KTsKLSAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7
CisgICAgICAgIG1fd3JhcHBlcnMtPmFwcGVuZChtYWtlV2Vha1B0cihuZXdJdGVtLmdldCgpKSk7
CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0l0
ZW0pOwpAQCAtMjA2LDcgKzIwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIC8vIEl0IGlzIGFs
c28gYXNzb2NpYXRlZCB3aXRoIG91ciBhbmltYXRlZCBwcm9wZXJ0eSwgc28gaXQgY2FuIG5vdGlm
eSB0aGUgU1ZHIEVsZW1lbnQgd2hpY2ggaG9sZHMgdGhlIFNWR0FuaW1hdGVkKkxpc3QKICAgICAg
ICAgICAgIC8vIHRoYXQgaXQgaGFzIGJlZW4gbW9kaWZpZWQgKGFuZCB0aHVzIGNhbiBjYWxsIHN2
Z0F0dHJpYnV0ZUNoYW5nZWQoYXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUpKS4KICAgICAgICAgICAg
IHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5l
ZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOwotICAgICAgICAgICAgbV93cmFwcGVycy0+YXQo
aW5kZXgpID0gd3JhcHBlci0+Y3JlYXRlV2Vha1B0cigpOworICAgICAgICAgICAgbV93cmFwcGVy
cy0+YXQoaW5kZXgpID0gbWFrZVdlYWtQdHIoKndyYXBwZXIpOwogICAgICAgICB9CiAKICAgICAg
ICAgcmV0dXJuIHdyYXBwZXIucmVsZWFzZU5vbk51bGwoKTsKQEAgLTI2NCw3ICsyNjQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPnByb3BlcnR5
UmVmZXJlbmNlKCkpOwogCiAgICAgICAgIC8vIFN0b3JlIG5ldyB3cmFwcGVyIGF0IHBvc2l0aW9u
ICdpbmRleCcsIGNoYW5nZSBpdHMgdW5kZXJseWluZyB2YWx1ZSwgc28gbXV0YXRpb25zIG9mIG5l
d0l0ZW0sIGRpcmVjdGx5IGFmZmVjdCB0aGUgaXRlbSBpbiB0aGUgbGlzdC4KLSAgICAgICAgbV93
cmFwcGVycy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOworICAgICAg
ICBtX3dyYXBwZXJzLT5pbnNlcnQoaW5kZXgsIG1ha2VXZWFrUHRyKG5ld0l0ZW0uZ2V0KCkpKTsK
IAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUobmV3SXRl
bSk7CkBAIC0zNDEsNyArMzQxLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUg
dmFsdWUgYW5kIHRoZSB3cmFwcGVyIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uICdpbmRleCcuIAog
ICAgICAgICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2Uo
KTsKLSAgICAgICAgbV93cmFwcGVycy0+YXQoaW5kZXgpID0gbmV3SXRlbS0+Y3JlYXRlV2Vha1B0
cigpOworICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRleCkgPSBtYWtlV2Vha1B0cihuZXdJdGVt
LmdldCgpKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIFdURk1v
dmUobmV3SXRlbSk7CkBAIC00MzUsNyArNDM1LDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIEFw
cGVuZCB0aGUgdmFsdWUgYW5kIHdyYXBwZXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAgICAg
ICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKLSAgICAg
ICAgbV93cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7CisgICAgICAg
IG1fd3JhcHBlcnMtPmFwcGVuZChtYWtlV2Vha1B0cihuZXdJdGVtLmdldCgpKSk7CiAKICAgICAg
ICAgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25BcHBlbmQpOwogICAgICAgICByZXR1cm4g
V1RGTW92ZShuZXdJdGVtKTsKQEAgLTQ1MywxMSArNDUzLDYgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gKm1fd3JhcHBlcnM7CiAgICAgfQogCi0gICAgV2Vha1B0cjxTVkdMaXN0UHJvcGVydHk+
IGNyZWF0ZVdlYWtQdHIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqY29uc3RfY2FzdDxTVkdMaXN0UHJvcGVydHkqPih0aGlzKSk7
Ci0gICAgfQotCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHTGlzdFByb3BlcnR5KFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMp
CiAgICAgICAgIDogbV9yb2xlKHJvbGUpCkBAIC00ODYsNyArNDgxLDYgQEAgcHJvdGVjdGVkOgog
ICAgIGJvb2wgbV9vd25zVmFsdWVzOwogICAgIFByb3BlcnR5VHlwZSogbV92YWx1ZXM7CiAgICAg
TGlzdFdyYXBwZXJDYWNoZSogbV93cmFwcGVyczsKLSAgICBXZWFrUHRyRmFjdG9yeTxTVkdMaXN0
UHJvcGVydHk+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKaW5kZXggZTBiZjBkMDgyN2U3M2Y3
ZmM4ZmZkMjA5MzA5ZGYwMWUzYzI5OWExNS4uMzMyMjYwYTYzMGQ0MzE0ZDdhYjI1NGMyNmU0YmMw
NGVlNzg1ZDE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
TWF0cml4VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01h
dHJpeFRlYXJPZmYuaApAQCAtMjksOCArMjksOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxT
VkdNYXRyaXhUZWFyT2ZmPiBjcmVhdGUoU1ZHVHJhbnNmb3JtJiBwYXJlbnQsIFNWR01hdHJpeFZh
bHVlJiB2YWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQu
cHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSA9PSAmdmFsdWUpOwotICAgICAgICBSZWY8
U1ZHTWF0cml4VGVhck9mZj4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXhUZWFyT2Zm
KHBhcmVudCkpOwotICAgICAgICBwYXJlbnQuYWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIocmVzdWx0KSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYo
Km5ldyBTVkdNYXRyaXhUZWFyT2ZmKHBhcmVudCkpOworICAgICAgICBwYXJlbnQuYWRkQ2hpbGQo
bWFrZVdlYWtQdHIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogCkBAIC01Miw3ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPFNWR1Ry
YW5zZm9ybT4gbV9wYXJlbnQ7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8U1ZHUHJvcGVydHlUZWFyT2Zm
QmFzZT4gbV93ZWFrRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKaW5k
ZXggY2ViNGJmM2VkZDViZDM1OTQzOGYwZDZhMmRhNDdhNWVkMDlhYTY2OC4uOTAwOGYzYjg2NDUy
OWMyMmMyZWU2NzJjNjI4ODcxYmUxYTI0Yzc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVi
bGljOgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIFNWR1Byb3BlcnR5VGVhck9m
ZiA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmZCYXNlIHsKK2NsYXNzIFNWR1Byb3BlcnR5VGVh
ck9mZiA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmZCYXNlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFQ+PiB7CiBwdWJsaWM6CiAgICAgdXNpbmcgUHJvcGVydHlU
eXBlID0gVDsKICAgICB1c2luZyBTZWxmID0gU1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlw
ZT47CkBAIC0xMjUsMTEgKzEyNSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPiBjcmVhdGVXZWFrUHRyKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKmNvbnN0X2Nhc3Q8U1ZHUHJvcGVydHlUZWFyT2ZmKj4odGhpcykpOwotICAgIH0KLQogcHJv
dGVjdGVkOgogICAgIFNWR1Byb3BlcnR5VGVhck9mZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZSkK
ICAgICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTE3Myw3
ICsxNjgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKICAgICBQ
cm9wZXJ0eVR5cGUqIG1fdmFsdWU7CiAgICAgVmVjdG9yPFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFy
T2ZmQmFzZT4+IG1fY2hpbGRUZWFyT2ZmczsKLSAgICBXZWFrUHRyRmFjdG9yeTxTVkdQcm9wZXJ0
eVRlYXJPZmY+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgYm9vbCBtX3ZhbHVlSXNDb3B5OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCBlMmZkZmJj
MWNhNGNhMWIxZWI1OGJjODc1OTkwZGE5YTRkOTZjNmJjLi4wNzBhNWUxNWViNjIyNTNiNTdiNWQ0
ZGI3YmJmZmIyNTgxMTRjYTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tDRE1GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0
b3J5LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIE1vY2tDRE1GYWN0b3J5OjpzZXRTdXBwb3J0
ZWREYXRhVHlwZXMoVmVjdG9yPFN0cmluZz4mJiB0eXBlcykKIAogc3RkOjp1bmlxdWVfcHRyPENE
TVByaXZhdGU+IE1vY2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0oY29uc3QgU3RyaW5nJikKIHsKLSAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrQ0RNPihtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrQ0RNPiht
YWtlV2Vha1B0cigqdGhpcykpOwogfQogCiBNb2NrQ0RNOjpNb2NrQ0RNKFdlYWtQdHI8TW9ja0NE
TUZhY3Rvcnk+IGZhY3RvcnkpCkBAIC0xNjYsNyArMTY2LDcgQEAgUmVmUHRyPENETUluc3RhbmNl
PiBNb2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSgpCiB7CiAgICAgaWYgKG1fZmFjdG9yeSAmJiAhbV9m
YWN0b3J5LT5jYW5DcmVhdGVJbnN0YW5jZXMoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNb2NrQ0RNSW5zdGFuY2UobV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0NETUlu
c3RhbmNlKG1ha2VXZWFrUHRyKCp0aGlzKSkpOwogfQogCiB2b2lkIE1vY2tDRE06OmxvYWRBbmRJ
bml0aWFsaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaAppbmRleCA0
MThkMzkwYmYwNmQ3ZmI3ZGRmOTBlYTc4NDM1YWJhZGI1YWFlZGQ4Li4yMTZkMjlhMGE3YzMzNzZk
ODMzODk5ZDE1NDAwMjdiMjgzYWU4M2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tDRE1GYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RN
RmFjdG9yeS5oCkBAIC0zOSw3ICszOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgTW9ja0NETUZhY3RvcnkgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2NrQ0RNRmFjdG9yeT4sIHBy
aXZhdGUgQ0RNRmFjdG9yeSB7CitjbGFzcyBNb2NrQ0RNRmFjdG9yeSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPE1vY2tDRE1GYWN0b3J5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1vY2tDRE1GYWN0b3J5
PiwgcHJpdmF0ZSBDRE1GYWN0b3J5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1vY2tDRE1G
YWN0b3J5PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tDRE1GYWN0b3J5KTsg
fQogICAgIH5Nb2NrQ0RNRmFjdG9yeSgpOwpAQCAtOTAsMTEgKzkwLDEwIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2NhbkNyZWF0ZUluc3RhbmNlcyB7IHRydWUgfTsKICAgICBib29sIG1fc3VwcG9y
dHNTZXJ2ZXJDZXJ0aWZpY2F0ZXMgeyB0cnVlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzU2Vzc2lv
bnMgeyB0cnVlIH07Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TW9ja0NETUZhY3Rvcnk+IG1fd2Vha1B0
ckZhY3Rvcnk7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+
IG1fc2Vzc2lvbnM7CiB9OwogCi1jbGFzcyBNb2NrQ0RNIDogcHVibGljIENETVByaXZhdGUgewor
Y2xhc3MgTW9ja0NETSA6IHB1YmxpYyBDRE1Qcml2YXRlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
TW9ja0NETT4gewogcHVibGljOgogICAgIE1vY2tDRE0oV2Vha1B0cjxNb2NrQ0RNRmFjdG9yeT4p
OwogCkBAIC0xMjAsNyArMTE5LDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gc2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAKICAgICBX
ZWFrUHRyPE1vY2tDRE1GYWN0b3J5PiBtX2ZhY3Rvcnk7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TW9j
a0NETT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIGNsYXNzIE1vY2tDRE1JbnN0YW5jZSA6IHB1
YmxpYyBDRE1JbnN0YW5jZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZUV2ZW50LmgKaW5kZXggZjNhNTQ0MmNlMWQwZTMzNzM5Nzk5NWM5NjJkMDY0MWZk
MTE5ODFmNS4uOTAzOGNhYWUzZTU0ODgxYTI3MDJiOTBmNjRlYmYzZWZmZjk4M2JmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuaApAQCAt
MzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVByb21pc2U7CiAK
LWNsYXNzIEV4dGVuZGFibGVFdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBFeHRlbmRhYmxl
RXZlbnQgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxFeHRlbmRhYmxlRXZl
bnQ+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEV4dGVuZGFibGVFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXh0ZW5kYWJsZUV2ZW50SW5pdCYgaW5pdGlh
bGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKQogICAgIHsKQEAgLTU1
LDE0ICs1NSwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgRXh0ZW5kYWJsZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEV4dGVuZGFibGVFdmVudEluaXQmLCBJc1Ry
dXN0ZWQpOwogICAgIEV4dGVuZGFibGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBib29sIGJ1
YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSk7CiAKLSAgICBXZWFrUHRyPEV4dGVuZGFibGVFdmVudD4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigq
dGhpcyk7IH0KLQogICAgIHZvaWQgYWRkRXh0ZW5kTGlmZXRpbWVQcm9taXNlKFJlZjxET01Qcm9t
aXNlPiYmKTsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3BlbmRpbmdQcm9taXNlQ291bnQg
eyAwIH07CiAgICAgSGFzaFNldDxSZWY8RE9NUHJvbWlzZT4+IG1fZXh0ZW5kTGlmZXRpbWVQcm9t
aXNlczsKLSAgICBXZWFrUHRyRmFjdG9yeTxFeHRlbmRhYmxlRXZlbnQ+IG1fd2Vha1B0ckZhY3Rv
cnk7CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKEhhc2hTZXQ8UmVmPERPTVByb21pc2U+PiYmKT4g
bV93aGVuQWxsRXh0ZW5kTGlmZXRpbWVQcm9taXNlc0FyZVNldHRsZWRIYW5kbGVyOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCmluZGV4IDIw
ZTBjODA5ZjQ0ZDY4NzFhYWJmNzEzZDIwNGI2ZjIxNTZjYzNlNjEuLmEwNTRlODQzY2YwNmFkN2U3
ODE4Yzc3YmMzMjE0YWY5OTNjNzdlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9GZXRjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvRmV0Y2hFdmVudC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
RmV0Y2hFdmVudDo6cmVzcG9uZFdpdGgoUmVmPERPTVByb21pc2U+JiYgcHJvbWlzZSkKICAgICBt
X3Jlc3BvbmRQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKICAgICBhZGRFeHRlbmRMaWZldGlt
ZVByb21pc2UoKm1fcmVzcG9uZFByb21pc2UpOwogCi0gICAgbV9yZXNwb25kUHJvbWlzZS0+d2hl
blNldHRsZWQoW3RoaXMsIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpXSAoKSB7CisgICAgbV9y
ZXNwb25kUHJvbWlzZS0+d2hlblNldHRsZWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpXSAoKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIHByb21pc2VJc1NldHRsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCBjZjVlY2MxNjVlNDhiMzI3YTAyYjI0
YTAzZmY0YzUzNGM2ODM4N2NhLi40OWFlYzE4NGZmYWE5OWM4NmNkMTM0YTU3NjAzNGE0OTJjNmNk
OTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5oCkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIFRpbWVyOwogY2xhc3MgU1dTZXJ2ZXIgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGNsYXNzIENvbm5lY3Rp
b24geworICAgIGNsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q29ubmVj
dGlvbj4gewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICAgICAgZnJpZW5k
IGNsYXNzIFNXU2VydmVyOwogICAgIHB1YmxpYzoKQEAgLTc0LDggKzc0LDYgQEAgcHVibGljOgog
ICAgICAgICB1c2luZyBJZGVudGlmaWVyID0gU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsK
ICAgICAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlm
aWVyOyB9CiAKLSAgICAgICAgYXV0byYgd2Vha1B0ckZhY3RvcnkoKSB7IHJldHVybiBtX3dlYWtG
YWN0b3J5OyB9Ci0KICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRSZXNvbHZlUmVnaXN0
cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Jik7CiAgICAg
ICAgIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkgeyByZXR1
cm4gbV9zZXJ2ZXIuZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVudFVSTCk7
IH0KICAgICAgICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyhTV1NlcnZl
clJlZ2lzdHJhdGlvbiYpOwpAQCAtMTE0LDcgKzExMiw2IEBAIHB1YmxpYzoKIAogICAgICAgICBT
V1NlcnZlciYgbV9zZXJ2ZXI7CiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAg
ICAgICBXZWFrUHRyRmFjdG9yeTxDb25uZWN0aW9uPiBtX3dlYWtGYWN0b3J5OwogICAgICAgICBW
ZWN0b3I8UmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0PiBtX3JlZ2lzdHJhdGlvblJlYWR5UmVxdWVz
dHM7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL0RPTVBhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmNwcAppbmRleCBkYWYyZGI2ZDdiOGI4
M2RiN2Y3YmY0ZDExMWU2NGZlZjYwYmI5NmU4Li4yNzEzZTU5M2Q0Mzc0Njc2ZjEwNTAyZGU5NmUw
ZDFjNjgzMmQ2ZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmNwcApAQCAtMjUsNyArMjUsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUgRE9NUGFyc2VyOjpET01QYXJzZXIoRG9j
dW1lbnQmIGNvbnRleHREb2N1bWVudCkKLSAgICA6IG1fY29udGV4dERvY3VtZW50KGNvbnRleHRE
b2N1bWVudC5jcmVhdGVXZWFrUHRyKCkpCisgICAgOiBtX2NvbnRleHREb2N1bWVudChtYWtlV2Vh
a1B0cihjb250ZXh0RG9jdW1lbnQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCBlYzc0ODkyNzA2ZjgwY2EwMzI5
YjljMGRmZDRkNDk1ZDYwNjgwNTE4Li4xNDQyNjM5ZTI1NzVhOTUyZjRlNzVmZjQ0NTRlODBhNTk0
NmFmODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRDaGVja2VyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtDT1JTUHJlZmxpZ2h0
Q2hlY2tlcjsKIAotY2xhc3MgTmV0d29ya0xvYWRDaGVja2VyIDogcHVibGljIFdlYkNvcmU6OkNv
bnRlbnRTZWN1cml0eVBvbGljeUNsaWVudCB7CitjbGFzcyBOZXR3b3JrTG9hZENoZWNrZXIgOiBw
dWJsaWMgV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LCBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8TmV0d29ya0xvYWRDaGVja2VyPiB7CiBwdWJsaWM6CiAgICAgTmV0d29ya0xvYWRD
aGVja2VyKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgdWludDY0X3Qgd2ViUGFnZUlE
LCB1aW50NjRfdCB3ZWJGcmFtZUlELCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiwg
V2ViQ29yZTo6VVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiwgV2ViQ29y
ZTo6UHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlcik7CiAgICAgfk5ldHdvcmtMb2Fk
Q2hlY2tlcigpOwpAQCAtNjksOCArNjksNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6
VVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KCkgY29uc3QgeyByZXR1cm4g
bV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeTsgfQogCi0gICAgV2Vha1B0ckZhY3Rvcnk8TmV0d29y
a0xvYWRDaGVja2VyPiYgd2Vha1B0ckZhY3RvcnkoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5OyB9
Ci0KIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KiBjb250ZW50
U2VjdXJpdHlQb2xpY3koKTsKICAgICBib29sIGlzQ2hlY2tpbmcoKSBjb25zdCB7IHJldHVybiAh
IW1fY29yc1ByZWZsaWdodENoZWNrZXI7IH0KQEAgLTEzNCw3ICsxMzIsNiBAQCBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSBtX3ByZWZsaWdodFBvbGljeTsKICAgICBTdHJp
bmcgbV9kbnRIZWFkZXJWYWx1ZTsKICAgICBTdHJpbmcgbV9yZWZlcnJlcjsKLSAgICBXZWFrUHRy
RmFjdG9yeTxOZXR3b3JrTG9hZENoZWNrZXI+IG1fd2Vha0ZhY3Rvcnk7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDIz
NjUyYmFmZDI0MTc0NGU4MDEzZWYxMzAzYjY0ZDQ4MjJhNGYxOWQuLjNmYjgxNjQ2YzlmZWU4NDQ4
YmVjMWYyZjJhNWU0MDNkOTFkZGVlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShOZXR3b3JrUmVz
b3VyY2VMb2FkZXIKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQ
cm90ZWN0aW9uU3BhY2UoUHJlY29ubmVjdFRhc2smIHByZWNvbm5lY3RUYXNrLCBjb25zdCBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKIHsKICAgICB1aW50NjRfdCBs
b2FkZXJJRCA9IGdlbmVyYXRlQ2FuQXV0aGVudGljYXRlSWRlbnRpZmllcigpOwotICAgIG1fd2Fp
dGluZ1ByZWNvbm5lY3RUYXNrcy5zZXQobG9hZGVySUQsIHByZWNvbm5lY3RUYXNrLmNyZWF0ZVdl
YWtQdHIoKSk7CisgICAgbV93YWl0aW5nUHJlY29ubmVjdFRhc2tzLnNldChsb2FkZXJJRCwgbWFr
ZVdlYWtQdHIocHJlY29ubmVjdFRhc2spKTsKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpDYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlKGxvYWRlcklELCBwcmVjb25uZWN0VGFzay5wYWdlSUQoKSwgcHJl
Y29ubmVjdFRhc2suZnJhbWVJRCgpLCBwcm90ZWN0aW9uU3BhY2UpLCAwKTsKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oCmluZGV4IDdh
ZjAxODhjN2FmMTc4MGZjYzE4NTZiYmM1ZWViNGJkMjc4YzQ2MGYuLmZjZWY5ZGEyOTAzZTI1MmM4
ZTJhZDk1MTJlYmEwYjU1YjRjZmFiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByZWNvbm5lY3RUYXNrLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiBjbGFzcyBOZXR3b3JrTG9hZDsKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVyczsKIAotY2xh
c3MgUHJlY29ubmVjdFRhc2sgZmluYWwgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQgeworY2xh
c3MgUHJlY29ubmVjdFRhc2sgZmluYWwgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQsIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxQcmVjb25uZWN0VGFzaz4gewogcHVibGljOgogICAgIGV4cGxpY2l0
IFByZWNvbm5lY3RUYXNrKE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmLCBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyID0geyB9KTsKICAgICB+UHJlY29ubmVjdFRhc2soKTsKQEAgLTQ3LDggKzQ3LDYgQEAg
cHVibGljOgogCiAgICAgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2UoYm9vbCk7CiAKLSAgICBXZWFrUHRyPFByZWNvbm5lY3RUYXNrPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiBw
cml2YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgogICAgIGJvb2wgaXNTeW5jaHJvbm91
cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC02Niw3ICs2NCw2IEBAIHByaXZh
dGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtMb2FkPiBtX25ldHdvcmtMb2FkOwogICAg
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
Jik+IG1fY29tcGxldGlvbkhhbmRsZXI7CiAgICAgV2ViQ29yZTo6VGltZXIgbV90aW1lb3V0VGlt
ZXI7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8UHJlY29ubmVjdFRhc2s+IG1fd2Vha0ZhY3Rvcnk7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oCmluZGV4IGUyOTczYjJiNTZl
ZGYyYmQzOTUzZDZlOWQ0MGIwMjE4ZjgxZTAzN2MuLmNkZmMzNDgzYTA0OTE2NDRhNTUxZjRhMjYy
NmQ5MmQ2Y2ZkOGE2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3Bh
Y2UgQ2FjaGVTdG9yYWdlIHsKIHVzaW5nIENhY2hlSWRlbnRpZmllciA9IHVpbnQ2NF90OwogdXNp
bmcgTG9ja0NvdW50ID0gdWludDY0X3Q7CiAKLWNsYXNzIEVuZ2luZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEVuZ2luZT4geworY2xhc3MgRW5naW5lIDogcHVibGljIFJlZkNvdW50ZWQ8RW5naW5lPiwg
cHVibGljIENhbk1ha2VXZWFrUHRyPEVuZ2luZT4gewogcHVibGljOgogICAgIH5FbmdpbmUoKTsK
IApAQCAtOTAsOCArOTAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckFsbENhY2hlcyhXVEY6
OkNhbGxiYWNrQWdncmVnYXRvciYpOwogICAgIHZvaWQgY2xlYXJDYWNoZXNGb3JPcmlnaW4oY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV1RGOjpDYWxsYmFja0FnZ3JlZ2F0b3Im
KTsKIAotICAgIFdlYWtQdHJGYWN0b3J5PEVuZ2luZT4mIHdlYWtQdHJGYWN0b3J5KCkgeyByZXR1
cm4gbV93ZWFrRmFjdG9yeTsgfQotCiBwcml2YXRlOgogICAgIHN0YXRpYyBFbmdpbmUmIGRlZmF1
bHRFbmdpbmUoKTsKICAgICBleHBsaWNpdCBFbmdpbmUoU3RyaW5nJiYgcm9vdFBhdGgpOwpAQCAt
MTE5LDcgKzExNyw2IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxOZXR3b3JrQ2FjaGU6
OlNhbHQ+IG1fc2FsdDsKICAgICBIYXNoTWFwPENhY2hlSWRlbnRpZmllciwgTG9ja0NvdW50PiBt
X2NhY2hlTG9ja3M7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDb21wbGV0
aW9uQ2FsbGJhY2s+IG1faW5pdGlhbGl6YXRpb25DYWxsYmFja3M7Ci0gICAgV2Vha1B0ckZhY3Rv
cnk8RW5naW5lPiBtX3dlYWtGYWN0b3J5OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkNvcmU6
OkRPTUNhY2hlRW5naW5lOjpDb21wbGV0aW9uQ2FsbGJhY2s+IG1fcGVuZGluZ1dyaXRlQ2FsbGJh
Y2tzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
TmV0d29ya0NhY2hlOjpEYXRhJiwgaW50IGVycm9yKT4+IG1fcGVuZGluZ1JlYWRDYWxsYmFja3M7
CiAgICAgdWludDY0X3QgbV9wZW5kaW5nQ2FsbGJhY2tzQ291bnRlciB7IDAgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmgKaW5kZXggNGIxNGRkZWRkY2ZiYjczZWI4ZWZlYmY0N2E4YmNjMjE1NjU2NDFh
Yy4uZGY1NGNlYjU5MWY3NTlmNzRjYmVlNjdhZTgwNjliZmY0Mjc1NjQ0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmgKQEAgLTU5LDcgKzU5LDcgQEAgZW51bSBjbGFzcyBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZURpc3Bvc2l0aW9uIHsKIH07CiB1c2luZyBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxl
ciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpPjsKIAotY2xhc3MgQXV0aGVudGljYXRp
b25NYW5hZ2VyIDogcHVibGljIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIEF1dGhlbnRpY2F0aW9uTWFuYWdlciA6IHB1YmxpYyBO
ZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPEF1dGhlbnRpY2F0aW9uTWFuYWdlcj4gewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEF1dGhlbnRpY2F0aW9uTWFuYWdlcik7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgQXV0aGVudGljYXRpb25NYW5hZ2VyKENoaWxkUHJvY2VzcyYpOwpAQCAtMTE1LDggKzExNSw2
IEBAIHByaXZhdGU6CiAgICAgQ2hpbGRQcm9jZXNzJiBtX3Byb2Nlc3M7CiAKICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBDaGFsbGVuZ2U+IG1fY2hhbGxlbmdlczsKLQotICAgIFdlYWtQdHJGYWN0b3J5
PEF1dGhlbnRpY2F0aW9uTWFuYWdlcj4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUF0dGFjaG1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1l
bnQuY3BwCmluZGV4IDA0ZTA3MTdlM2M3ZjMyYWM5NmM5N2ZmODk5MGI1ZmEzY2ZmMjljZGEuLjdl
MDA5ZDZiMmU1NTljZDg1Yjk4NDY2ODEyMTE5YTRjOGI5Njk2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgUmVm
PEF0dGFjaG1lbnQ+IEF0dGFjaG1lbnQ6OmNyZWF0ZShjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRp
ZmllciwgV2ViS2l0OjpXZWJQYWcKIAogQXR0YWNobWVudDo6QXR0YWNobWVudChjb25zdCBXVEY6
OlN0cmluZyYgaWRlbnRpZmllciwgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHdlYlBhZ2UpCiAgICAg
OiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fd2ViUGFnZSh3ZWJQYWdlLmNyZWF0
ZVdlYWtQdHIoKSkKKyAgICAsIG1fd2ViUGFnZShtYWtlV2Vha1B0cih3ZWJQYWdlKSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkv
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDkxNDk1MmVhNjAyNjdkNjA0NjI3
ZGY1NTJlMWY3MDgzMTJlNmU1NzcuLjc4MGExNWU5NmQzYzM2MjQ2YmI1ZDVhNDFjNzEyN2IyYWJk
ZDEzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAg
dm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzKGJvb2wmIHJl
cGx5KQogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpjYW5NYWtlUGF5bWVudHNX
aXRoQWN0aXZlQ2FyZChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkb21haW5OYW1lLCB1aW50NjRfdCByZXF1ZXN0SUQpCiB7Ci0gICAgYXV0byB3ZWFrVGhp
cyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CisgICAgYXV0byB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICBwbGF0Zm9ybUNhbk1ha2VQYXltZW50c1dp
dGhBY3RpdmVDYXJkKG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFtZSwgW3dlYWtUaGlzLCBy
ZXF1ZXN0SURdKGJvb2wgY2FuTWFrZVBheW1lbnRzKSB7CiAgICAgICAgIGF1dG8gcGF5bWVudENv
b3JkaW5hdG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQoKTsKICAgICAgICAgaWYgKCFwYXltZW50Q29v
cmRpbmF0b3JQcm94eSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBtZXIK
IAogdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6b3BlblBheW1lbnRTZXR1cChjb25z
dCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCB1
aW50NjRfdCByZXF1ZXN0SUQpCiB7Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKTsKICAgICBwbGF0Zm9ybU9wZW5QYXltZW50U2V0dXAobWVyY2hhbnRJZGVudGlmaWVy
LCBkb21haW5OYW1lLCBbd2Vha1RoaXMsIHJlcXVlc3RJRF0oYm9vbCByZXN1bHQpIHsKICAgICAg
ICAgYXV0byBwYXltZW50Q29vcmRpbmF0b3JQcm94eSA9IHdlYWtUaGlzLmdldCgpOwogICAgICAg
ICBpZiAoIXBheW1lbnRDb29yZGluYXRvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgK
aW5kZXggYzgyMGJkNTg2ZjQ0ODYyYzdlOWM1NWRmZWQwOWQzZWY1YWU2OTAxMC4uMDg1MDE5ZGEw
NmUzMmZiMGY0ZWM1ODk5MTUzNTQ4NmZlYmE3ZjhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eS5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdl
UHJveHk7CiAKLWNsYXNzIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5IDogcHJpdmF0ZSBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eSA6IHBy
aXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eT4gewogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYlBheW1lbnRD
b29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYpOwogICAgIH5XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eSgpOwpAQCAtMTA3LDcgKzEwNyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9y
bUNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdl
UHJveHk7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk+IG1f
d2Vha1B0ckZhY3Rvcnk7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsKICAgICAgICAgLy8gSWRs
ZSAtIE5vdGhpbmcncyBoYXBwZW5pbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHlNYWMubW0KaW5kZXggZGZmOGRlYzkyMTU4Y2QxYmRhNjkxNzAxY2E4ZGQyYjU3ZWFhMjJlZS4u
NzQxNTkzODNmMTk1NDI3ZGI5NzYwYThjMDFlYzcwNjdhNjdjNmY5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvbWFjL1dlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L21hYy9XZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQpAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFdlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNob3dQYXltZW50VUkoY29uc3QgV2ViQ29y
ZTo6VVJMJiBvcmlnaQogICAgIGF1dG8gcGF5bWVudFJlcXVlc3QgPSB0b1BLUGF5bWVudFJlcXVl
c3QobV93ZWJQYWdlUHJveHksIG9yaWdpbmF0aW5nVVJMLCBsaW5rSWNvblVSTFN0cmluZ3MsIHJl
cXVlc3QpOwogCiAgICAgYXV0byBzaG93UGF5bWVudFVJUmVxdWVzdFNlZWQgPSBtX3Nob3dQYXlt
ZW50VUlSZXF1ZXN0U2VlZDsKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpOwogICAgIFtnZXRQS1BheW1lbnRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXJDbGFzcygp
IHJlcXVlc3RWaWV3Q29udHJvbGxlcldpdGhQYXltZW50UmVxdWVzdDpwYXltZW50UmVxdWVzdC5n
ZXQoKSBjb21wbGV0aW9uOkJsb2NrUHRyPHZvaWQgKFBLUGF5bWVudEF1dGhvcml6YXRpb25WaWV3
Q29udHJvbGxlciAqLCBOU0Vycm9yICopPjo6ZnJvbUNhbGxhYmxlKFtwYXltZW50UmVxdWVzdCwg
c2hvd1BheW1lbnRVSVJlcXVlc3RTZWVkLCB3ZWFrVGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oUEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250
cm9sbGVyICp2aWV3Q29udHJvbGxlciwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgYXV0byBw
YXltZW50Q29vcmRpbmF0b3JQcm94eSA9IHdlYWtUaGlzLmdldCgpOwogICAgICAgICBpZiAoIXBh
eW1lbnRDb29yZGluYXRvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Fw
cGxpY2F0aW9uU3RhdGVUcmFja2VyLmgKaW5kZXggYTBlOTNiZGJlNzZlMGY5OTAzMjk2YTE2YWUy
YzJjOGY0OGIzZWQwMy4uNGViNWIyYmM0ZmVlM2QyMGJmMzZiMWIxYmIyMjZjYjg1NjAyODI4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNr
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tl
ci5oCkBAIC0zNyw3ICszNyw3IEBAIE9CSkNfQ0xBU1MgVUlWaWV3OwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotY2xhc3MgQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIgeworY2xhc3MgQXBwbGljYXRp
b25TdGF0ZVRyYWNrZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8QXBwbGljYXRpb25TdGF0ZVRy
YWNrZXI+IHsKIHB1YmxpYzoKICAgICBBcHBsaWNhdGlvblN0YXRlVHJhY2tlcihVSVZpZXcgKiwg
U0VMIGRpZEVudGVyQmFja2dyb3VuZFNlbGVjdG9yLCBTRUwgZGlkQ3JlYXRlV2luZG93Q29udGV4
dFNlbGVjdG9yLCBTRUwgZGlkRmluaXNoU25hcHNob3R0aW5nQWZ0ZXJFbnRlcmluZ0JhY2tncm91
bmRTZWxlY3RvciwgU0VMIHdpbGxFbnRlckZvcmVncm91bmRTZWxlY3Rvcik7CiAgICAgfkFwcGxp
Y2F0aW9uU3RhdGVUcmFja2VyKCk7CkBAIC01OCw4ICs1OCw2IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIG1faXNJbkJhY2tncm91bmQ7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxBcHBsaWNhdGlvblN0
YXRlVHJhY2tlcj4gbV93ZWFrUHRyRmFjdG9yeTsKLQogICAgIFJldGFpblB0cjxCS1NBcHBsaWNh
dGlvblN0YXRlTW9uaXRvcj4gbV9hcHBsaWNhdGlvblN0YXRlTW9uaXRvcjsKIAogICAgIGlkIG1f
ZGlkRW50ZXJCYWNrZ3JvdW5kT2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCmluZGV4IGM2NTIzYTM4YWQ4NjNmOGZiYzUy
ZTRkMTgyZTBlODdhMGM3Nzk4MzYuLjViMDNhZmI0MjUxNTIyZTRiNjhkZTlhNzZmNGExZGE5ZjVl
ZjVhYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3Rh
dGVUcmFja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3Rh
dGVUcmFja2VyLm1tCkBAIC05Myw3ICs5Myw3IEBAIEFwcGxpY2F0aW9uU3RhdGVUcmFja2VyOjpB
cHBsaWNhdGlvblN0YXRlVHJhY2tlcihVSVZpZXcgKnZpZXcsIFNFTCBkaWRFbnRlckJhY2tnCiAg
ICAgQVNTRVJUKHdpbmRvdyk7CiAKICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqbm90aWZpY2F0
aW9uQ2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdOwotICAgIGF1
dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAg
IGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgbV9kaWRDcmVhdGVXaW5k
b3dDb250ZXh0T2JzZXJ2ZXIgPSBbbm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyRm9yTmFt
ZTpAIl9VSVdpbmRvd0RpZENyZWF0ZVdpbmRvd0NvbnRleHROb3RpZmljYXRpb24iIG9iamVjdDp3
aW5kb3cgcXVldWU6bmlsIHVzaW5nQmxvY2s6W3dlYWtUaGlzXShOU05vdGlmaWNhdGlvbiAqKSB7
CiAgICAgICAgIGF1dG8gYXBwbGljYXRpb25TdGF0ZVRyYWNrZXIgPSB3ZWFrVGhpcy5nZXQoKTsK
ICAgICAgICAgaWYgKCFhcHBsaWNhdGlvblN0YXRlVHJhY2tlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCmluZGV4
IDJiM2JhNzdmMzFjMTE4N2E1ODA5OTJiNjAxNjEyMjg5ZGE2MmYwMjUuLjM1Mzc4YjBkYzM0OTY1
NzFhNzZhZDYwNThjYzUwZjI2YTQ5NTNiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMTA4LDEwICsx
MDgsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkRW5kR2VzdHVyZSgpCiAgICAg
CiB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0
U291cmNlUGFnZShXZWJQYWdlUHJveHkqIHBhZ2UpCiB7Ci0gICAgaWYgKHBhZ2UpCi0gICAgICAg
IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZSA9IHBhZ2UtPmNyZWF0ZVdlYWtQ
dHIoKTsKLSAgICBlbHNlCi0gICAgICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNl
UGFnZS5jbGVhcigpOworICAgIG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFnZSA9
IG1ha2VXZWFrUHRyKHBhZ2UpOwogfQogICAgIAogYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6
OmNhblN3aXBlSW5EaXJlY3Rpb24oU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggZTM5OTRkM2Rm
NTY3YzgzYmYxYmE3M2Y5NTc3MmYzYjZjZTgzNzJiYS4uMTY0YmFjM2JkNjVmZmMwY2NhNjc5ZmI4
ZGQwNjQ4NTdlM2VkODJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5oCkBAIC0xMjQsNyArMTI0LDcgQEAgdHlwZWRlZiBpZCA8TlNWYWxpZGF0ZWRVc2Vy
SW50ZXJmYWNlSXRlbT4gVmFsaWRhdGlvbkl0ZW07CiB0eXBlZGVmIFZlY3RvcjxSZXRhaW5QdHI8
VmFsaWRhdGlvbkl0ZW0+PiBWYWxpZGF0aW9uVmVjdG9yOwogdHlwZWRlZiBIYXNoTWFwPFN0cmlu
ZywgVmFsaWRhdGlvblZlY3Rvcj4gVmFsaWRhdGlvbk1hcDsKIAotY2xhc3MgV2ViVmlld0ltcGwg
eworY2xhc3MgV2ViVmlld0ltcGwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViVmlld0ltcGw+
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShXZWJWaWV3SW1wbCk7CiBwdWJsaWM6CkBAIC01NzgsOCArNTc4LDYgQEAgcHJpdmF0ZToKICNl
bmRpZiAvLyBFTkFCTEUoV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIpCiAjZW5kaWYgLy8g
SEFWRShUT1VDSF9CQVIpCiAKLSAgICBXZWFrUHRyPFdlYlZpZXdJbXBsPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAg
ICAgYm9vbCBzdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgY29uc3Q7CiAgICAgZmxvYXQg
aW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2b2lkIGRpc3BhdGNoU2V0
VG9wQ29udGVudEluc2V0KCk7CkBAIC02MTMsOCArNjExLDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UGFnZUNsaWVudD4gbV9wYWdlQ2xpZW50OwogICAgIFJlZjxXZWJQYWdlUHJv
eHk+IG1fcGFnZTsKIAotICAgIFdlYWtQdHJGYWN0b3J5PFdlYlZpZXdJbXBsPiBtX3dlYWtQdHJG
YWN0b3J5OwotCiAgICAgYm9vbCBtX3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluIHsgZmFs
c2UgfTsKICAgICBib29sIG1faW5CZWNvbWVGaXJzdFJlc3BvbmRlciB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2luUmVzaWduRmlyc3RSZXNwb25kZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA2Zjk0YmM2Y2E3ZTYyMGRhMzY0
MjgwZjcwMTRkZjkxMGMyYWY2ODE1Li5iM2ZiYmE0NWQ4MTgyMzEzOGZkNzBjZjQyMjAxZTY1YzQw
YzNkNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQpAQCAtMTU3NCw3ICsxNTc0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlV2luZG93QW5k
Vmlld0ZyYW1lcygpCiAKICAgICBtX2RpZFNjaGVkdWxlV2luZG93QW5kVmlld0ZyYW1lVXBkYXRl
ID0gdHJ1ZTsKIAotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0
byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3MDYsNyArMTcwNiw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OnNldFRvcENvbnRlbnRJbnNldChDR0Zsb2F0IGNvbnRlbnRJbnNldCkKIAogICAgIG1f
ZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQgPSB0cnVlOwogCi0gICAgYXV0byB3ZWFrVGhp
cyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpOwogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFr
VGhpc10gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MjA2OSw3ICsyMDY5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdygp
CiAgICAgICAgIG1fcGFnZS0+bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwogCiAgICAgICAg
IGlmICghbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKLSAgICAgICAgICAgIGF1dG8gd2Vh
a1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpOwogICAgICAgICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3Ig
PSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1h
c2tGbGFnc0NoYW5nZWQgaGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRF
dmVudCkgewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAg
ICAgd2Vha1RoaXMtPnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQo
ZmxhZ3NDaGFuZ2VkRXZlbnQpOwpAQCAtMjI0OSw3ICsyMjQ5LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6cHJlcGFyZUZvck1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqdGFyZ2V0V2luZG93LCBXVEY6OkZ1
bmN0aW9uPHYKIAogICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gZmFsc2U7
CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgbV9wYWdlLT5pbnN0YWxsQWN0aXZpdHlTdGF0
ZUNoYW5nZUNvbXBsZXRpb25IYW5kbGVyKFt3ZWFrVGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CiAKQEAgLTI3ODYsNyArMjc4Niw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnZhbGlkYXRlVXNl
ckludGVyZmFjZUl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0CiAgICAg
ICAgIC8vIElmIHdlIGFyZSBub3QgYWxyZWFkeSBhd2FpdGluZyB2YWxpZGF0aW9uIGZvciB0aGlz
IGNvbW1hbmQsIHN0YXJ0IHRoZSBhc3luY2hyb25vdXMgdmFsaWRhdGlvbiBwcm9jZXNzLgogICAg
ICAgICAvLyBGSVhNRTogVGhlb3JldGljYWxseSwgdGhlcmUgaXMgYSByYWNlIGhlcmU7IHdoZW4g
d2UgZ2V0IHRoZSBhbnN3ZXIgaXQgbWlnaHQgYmUgb2xkLCBmcm9tIGEgcHJldmlvdXMgdGltZQog
ICAgICAgICAvLyB3ZSBhc2tlZCBmb3IgdGhlIHNhbWUgY29tbWFuZDsgdGhlcmUgaXMgbm8gZ3Vh
cmFudGVlIHRoZSBhbnN3ZXIgaXMgc3RpbGwgdmFsaWQuCi0gICAgICAgIGF1dG8gd2Vha1RoaXMg
PSBjcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyk7CiAgICAgICAgIG1fcGFnZS0+dmFsaWRhdGVDb21tYW5kKGNvbW1hbmROYW1lLCBbd2Vh
a1RoaXNdKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGJvb2wgaXNFbmFibGVkLCBpbnQzMl90
IHN0YXRlLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzAzNiw3ICszMDM2
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb25JZk5l
ZWRlZCgpCiAjaWYgSEFWRShBRFZBTkNFRF9TUEVMTF9DSEVDS0lORykKICAgICBOU1JhbmdlIHNl
bGVjdGVkUmFuZ2UgPSBOU01ha2VSYW5nZShwb3N0TGF5b3V0RGF0YS5jYW5kaWRhdGVSZXF1ZXN0
U3RhcnRQb3NpdGlvbiwgcG9zdExheW91dERhdGEuc2VsZWN0ZWRUZXh0TGVuZ3RoKTsKICAgICBO
U1RleHRDaGVja2luZ1R5cGVzIGNoZWNraW5nVHlwZXMgPSBOU1RleHRDaGVja2luZ1R5cGVTcGVs
bGluZyB8IE5TVGV4dENoZWNraW5nVHlwZVJlcGxhY2VtZW50IHwgTlNUZXh0Q2hlY2tpbmdUeXBl
Q29ycmVjdGlvbjsKLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGF1
dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgbV9sYXN0Q2FuZGlkYXRlUmVx
dWVzdFNlcXVlbmNlTnVtYmVyID0gW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJd
IHJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0ZWRSYW5nZTpzZWxlY3RlZFJhbmdlIGluU3RyaW5n
OnBvc3RMYXlvdXREYXRhLnBhcmFncmFwaENvbnRleHRGb3JDYW5kaWRhdGVSZXF1ZXN0IHR5cGVz
OmNoZWNraW5nVHlwZXMgb3B0aW9uczpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbENo
ZWNrZXJEb2N1bWVudFRhZygpIGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrVGhpc10oTlNJbnRlZ2Vy
IHNlcXVlbmNlTnVtYmVyLCBOU0FycmF5PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+ICpjYW5kaWRh
dGVzKSB7CiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IF57CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtNDM2NSw3ICs0MzY1LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6aW50ZXJwcmV0S2V5RXZlbnQoTlNFdmVudCAqZXZlbnQsIHZvaWQoXmNv
bXBsZXRpb25IYW5kbGVyKShCT08KICAgICB9CiAKICAgICBMT0coVGV4dElucHV0LCAiLT4gaGFu
ZGxlRXZlbnRCeUlucHV0TWV0aG9kOiVwICVAIiwgZXZlbnQsIGV2ZW50KTsKLSAgICBbaW5wdXRD
b250ZXh0KCkgaGFuZGxlRXZlbnRCeUlucHV0TWV0aG9kOmV2ZW50IGNvbXBsZXRpb25IYW5kbGVy
Olt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgY2FwdHVyZWRFdmVudCA9IHJldGFpblB0cihl
dmVudCksIGNhcHR1cmVkQmxvY2sgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShC
T09MIGhhbmRsZWQpIHsKKyAgICBbaW5wdXRDb250ZXh0KCkgaGFuZGxlRXZlbnRCeUlucHV0TWV0
aG9kOmV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KSwgY2FwdHVyZWRFdmVudCA9IHJldGFpblB0cihldmVudCksIGNhcHR1cmVkQmxvY2sgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShCT09MIGhhbmRsZWQpIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykgewogICAgICAgICAgICAgY2FwdHVyZWRCbG9jayhOTywgeyB9KTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTQ1NTksNyArNDU1OSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmZp
cnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKE5TUmFuZ2UgcmFuZ2UsIHZvaWQoXmNvbXBsZXRpb25I
YW5kCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRl
V2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAg
bV9wYWdlLT5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHJhbmdlLCBbd2Vha1RoaXMs
IGNvbXBsZXRpb25IYW5kbGVyXShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBjb25zdCBF
ZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJy
b3IpIHsKICAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlckJsb2NrID0gKHZvaWQgKF4pKE5T
UmVjdCwgTlNSYW5nZSkpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpIHsKQEAgLTQ3MzQsNyArNDczNCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1L
ZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIC8vIHRoaXMgZXZlbnQuIFRoaXMgbGV0
cyB3ZWJwYWdlcyBoYXZlIGEgY3JhY2sgYXQgaW50ZXJjZXB0aW5nIGtleS1tb2RpZmllZCBrZXlw
cmVzc2VzLgogICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhlIGZpcnN0UmVzcG9uZGVyIGNoZWNrIG5l
ZWRlZD8KICAgICBpZiAobV92aWV3LmdldEF1dG9yZWxlYXNlZCgpID09IFttX3ZpZXcgd2luZG93
XS5maXJzdFJlc3BvbmRlcikgewotICAgICAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgW3dl
YWtUaGlzID0gY3JlYXRlV2Vha1B0cigpLCBjYXB0dXJlZEV2ZW50ID0gcmV0YWluUHRyKGV2ZW50
KV0oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7CisgICAgICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50
LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhcHR1cmVkRXZlbnQgPSByZXRhaW5Q
dHIoZXZlbnQpXShCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhp
cykKICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50
KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoY2FwdHVyZWRFdmVudC5nZXQoKSwgaGFuZGxlZEJ5SW5w
dXRNZXRob2QsIGZhbHNlLCBjb21tYW5kcykpOwogICAgICAgICB9KTsKQEAgLTQ3NTIsNyArNDc1
Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmtleVVwKE5TRXZlbnQgKmV2ZW50KQogICAgIExPRyhU
ZXh0SW5wdXQsICJrZXlVcDolcCAlQCIsIGV2ZW50LCBldmVudCk7CiAKICAgICBtX2lzVGV4dElu
c2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZhbHNlOwotICAgIGludGVycHJldEtleUV2ZW50
KGV2ZW50LCBbd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCksIGNhcHR1cmVkRXZlbnQgPSByZXRh
aW5QdHIoZXZlbnQpXShCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKKyAgICBpbnRlcnByZXRLZXlFdmVu
dChldmVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjYXB0dXJlZEV2ZW50ID0g
cmV0YWluUHRyKGV2ZW50KV0oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7CiAgICAgICAgIEFTU0VSVCgh
aGFuZGxlZEJ5SW5wdXRNZXRob2QgfHwgY29tbWFuZHMuaXNFbXB0eSgpKTsKICAgICAgICAgaWYg
KHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRF
dmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGNhcHR1cmVkRXZlbnQuZ2V0KCksIGhhbmRsZWRC
eUlucHV0TWV0aG9kLCB3ZWFrVGhpcy0+bV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3Bh
Y2UsIGNvbW1hbmRzKSk7CkBAIC00NzgxLDcgKzQ3ODEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpr
ZXlEb3duKE5TRXZlbnQgKmV2ZW50KQogICAgIH0KIAogICAgIG1faXNUZXh0SW5zZXJ0aW9uUmVw
bGFjaW5nU29mdFNwYWNlID0gZmFsc2U7Ci0gICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIFt3
ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgY2FwdHVyZWRFdmVudCA9IHJldGFpblB0cihldmVu
dCldKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgeworICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50LCBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhcHR1cmVkRXZlbnQgPSByZXRhaW5QdHIo
ZXZlbnQpXShCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKICAgICAgICAgQVNTRVJUKCFoYW5kbGVkQnlJ
bnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOwogICAgICAgICBpZiAod2Vha1RoaXMp
CiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2
ZVdlYktleWJvYXJkRXZlbnQoY2FwdHVyZWRFdmVudC5nZXQoKSwgaGFuZGxlZEJ5SW5wdXRNZXRo
b2QsIHdlYWtUaGlzLT5tX2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSwgY29tbWFu
ZHMpKTsKQEAgLTQ4MTAsNyArNDgxMCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdl
ZChOU0V2ZW50ICpldmVudCkKICAgICAgICAgaWYgKG1faWdub3Jlc05vbldoZWVsRXZlbnRzKSBc
CiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgaWYgKE5TVGV4dElucHV0Q29udGV4dCAq
Y29udGV4dCA9IFttX3ZpZXcgaW5wdXRDb250ZXh0XSkgeyBcCi0gICAgICAgICAgICBhdXRvIHdl
YWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOyBcCisgICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpOyBcCiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNFdmVudD4gcmV0
YWluZWRFdmVudCA9IGV2ZW50OyBcCiAgICAgICAgICAgICBbY29udGV4dCBoYW5kbGVFdmVudDpl
dmVudCBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha1RoaXMsIHJldGFpbmVkRXZlbnRdIChCT09MIGhh
bmRsZWQpIHsgXAogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpIFwKQEAgLTQ4MzMsNyAr
NDgzMyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkK
ICAgICAgICAgaWYgKG1faWdub3Jlc05vbldoZWVsRXZlbnRzKSBcCiAgICAgICAgICAgICByZXR1
cm47IFwKICAgICAgICAgaWYgKE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4dCA9IFttX3ZpZXcg
aW5wdXRDb250ZXh0XSkgeyBcCi0gICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vh
a1B0cigpOyBcCisgICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
OyBcCiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNFdmVudD4gcmV0YWluZWRFdmVudCA9IGV2ZW50
OyBcCiAgICAgICAgICAgICBbY29udGV4dCBoYW5kbGVFdmVudDpldmVudCBjb21wbGV0aW9uSGFu
ZGxlcjpbd2Vha1RoaXMsIHJldGFpbmVkRXZlbnRdIChCT09MIGhhbmRsZWQpIHsgXAogICAgICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3Jl
ZGVudGlhbHNNZXNzZW5nZXJQcm94eS5jcHAKaW5kZXggM2FmZGQxMzVjMWFmODE0NjgxYjIwMDI1
MDMwN2UzNjJkNzkxMTdiNS4uNDhhNjBlYmExMzA0MmYyMmZjMTZhNTc2MjdjYTU1YzU5YWQ5MmQ1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1l
bnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94
eS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5
OjptYWtlQ3JlZGVudGlhbCh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZlY3QKICAgICB9CiAg
ICAgLy8gRklYTUUoMTgzNTM0KTogV2VhayBwb2ludGVycyBkb2Vzbid0IHdvcmsgaW4gYW5vdGhl
ciB0aHJlYWQgYmVjYXVzZSBvZiByYWNlIGNvbmRpdGlvbi4KICAgICAvLyBGSVhNRSgxODM1MzQp
OiBVbmlmeSBjYWxsYmFja3MuCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha0ZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KTsKICAgICBhdXRvIGNhbGxiYWNrID0gW3dlYWtUaGlzLCBtZXNzYWdlSWRdIChjb25zdCBWZWN0
b3I8dWludDhfdD4mIGNyZWRlbnRpYWxJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBhdHRlc3Rh
dGlvbk9iamVjdCkgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtNzksNyArNzksNyBAQCB2b2lkIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk6Omdl
dEFzc2VydGlvbih1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZlY3RvcgogICAgICAgICBleGNl
cHRpb25SZXBseShtZXNzYWdlSWQsIHsgV2ViQ29yZTo6Tm90QWxsb3dlZEVycm9yLCBBU0NJSUxp
dGVyYWwoIk5vIGF2YWxpYWJsZSBhdXRoZW50aWNhdG9ycy4iKSB9KTsKICAgICAvLyBGSVhNRSgx
ODM1MzQpOiBXZWFrIHBvaW50ZXJzIGRvZXNuJ3Qgd29yayBpbiBhbm90aGVyIHRocmVhZCBiZWNh
dXNlIG9mIHJhY2UgY29uZGl0aW9uLgogICAgIC8vIEZJWE1FKDE4MzUzNCk6IFVuaWZ5IGNhbGxi
YWNrcy4KLSAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0
aGlzKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGF1dG8g
Y2FsbGJhY2sgPSBbd2Vha1RoaXMsIG1lc3NhZ2VJZF0gKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
Y3JlZGVudGlhbElkLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGF1dGhlbnRpY2F0b3JEYXRhLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mIHNpZ25hdHVyZSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB1
c2VySGFuZGxlKSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgIHdlYWtUaGlz
LT5nZXRBc3NlcnRpb25SZXBseShtZXNzYWdlSWQsIGNyZWRlbnRpYWxJZCwgYXV0aGVudGljYXRv
ckRhdGEsIHNpZ25hdHVyZSwgdXNlckhhbmRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJD
cmVkZW50aWFsc01lc3NlbmdlclByb3h5LmgKaW5kZXggMGMyYTRkZTE1ZTI5YTc1M2FhYzM0Zjc5
ZGQ5MDc5M2JkNjM0MTI4Ni4uOWQ3NGM5NzI3MGI3ODNlODdlNGY4ZTUyZjI4ZGEwZWEyOTBjNzBj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1l
bnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHku
aApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZVBy
b3h5OwogCi1jbGFzcyBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5IDogcHJpdmF0ZSBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5IDog
cHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJD
cmVkZW50aWFsc01lc3NlbmdlclByb3h5KTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBXZWJDcmVk
ZW50aWFsc01lc3NlbmdlclByb3h5KFdlYlBhZ2VQcm94eSYpOwpAQCAtNjcsNyArNjcsNiBAQCBw
cml2YXRlOgogCiAgICAgV2ViUGFnZVByb3h5JiBtX3dlYlBhZ2VQcm94eTsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6TG9jYWxBdXRoZW50aWNhdG9yPiBtX2F1dGhlbnRpY2F0b3I7Ci0g
ICAgV2Vha1B0ckZhY3Rvcnk8V2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eT4gbV93ZWFrRmFj
dG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCmluZGV4IDI4ZGFjMjEzODg3
ZDI1MWI5MTY1YTZlNDY4MzY5NjNkZTRjYjFiNmYuLjk2MzI2ZWJmYTVhN2Y4Y2NhZDQ5ODVjMWRh
MzhlMTlmMThlNDM4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRQcm94eS5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgV2ViUGFnZVByb3h5KiBE
b3dubG9hZFByb3h5OjpvcmlnaW5hdGluZ1BhZ2UoKSBjb25zdAogCiB2b2lkIERvd25sb2FkUHJv
eHk6OnNldE9yaWdpbmF0aW5nUGFnZShXZWJQYWdlUHJveHkqIHBhZ2UpCiB7Ci0gICAgbV9vcmln
aW5hdGluZ1BhZ2UgPSBwYWdlID8gcGFnZS0+Y3JlYXRlV2Vha1B0cigpIDogbnVsbHB0cjsKKyAg
ICBtX29yaWdpbmF0aW5nUGFnZSA9IG1ha2VXZWFrUHRyKHBhZ2UpOwogfQogCiB2b2lkIERvd25s
b2FkUHJveHk6OmRpZFN0YXJ0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKaW5kZXggM2FiYWJiY2NlZWRjZTNlNzlkZWRl
MGEzMzkzMWE1MmYyZWY1NzM2MC4uODMxYjE4ZGVmNGJjNzQzNjcwZjc1MzZiNTU3ZmY4MzU1YTI1
OTI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vz
c0xhdW5jaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vz
c0xhdW5jaGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNs
YXNzIFByb2Nlc3NMYXVuY2hlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQcm9jZXNz
TGF1bmNoZXI+IHsKK2NsYXNzIFByb2Nlc3NMYXVuY2hlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxQcm9jZXNzTGF1bmNoZXI+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UHJvY2Vzc0xh
dW5jaGVyPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgQ2xpZW50IHsKICAgICBwdWJsaWM6CkBAIC0x
MDEsNyArMTAxLDYgQEAgcHJpdmF0ZToKICAgICBXVEY6OldpbjMySGFuZGxlIG1faFByb2Nlc3M7
CiAjZW5kaWYKIAotICAgIFdlYWtQdHJGYWN0b3J5PFByb2Nlc3NMYXVuY2hlcj4gbV93ZWFrUHRy
RmFjdG9yeTsKICAgICBjb25zdCBMYXVuY2hPcHRpb25zIG1fbGF1bmNoT3B0aW9uczsKICAgICBi
b29sIG1faXNMYXVuY2hpbmc7CiAgICAgUHJvY2Vzc0lEIG1fcHJvY2Vzc0lkZW50aWZpZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xh
dW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbQppbmRleCAzMTEwNWU0NzAzYzBlZmQ0ODE0Y2IxNTM2ZjkxNGM4NWUz
MDhmOTE5Li4zNzVhMTcwNWNkMzc0NzM0YjUwYjA4MWMwNzJjZGNjYzhhZDYxZjhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW0KQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6
bGF1bmNoUHJvY2VzcygpCiAKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUoYm9vdHN0cmFw
TWVzc2FnZS5nZXQoKSwgImV4dHJhLWluaXRpYWxpemF0aW9uLWRhdGEiLCBleHRyYUluaXRpYWxp
emF0aW9uRGF0YS5nZXQoKSk7CiAKLSAgICBhdXRvIHdlYWtQcm9jZXNzTGF1bmNoZXIgPSBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAgIGF1dG8gd2Vha1Byb2Nlc3NM
YXVuY2hlciA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICBhdXRvIGVycm9ySGFuZGxlciA9IFt3
ZWFrUHJvY2Vzc0xhdW5jaGVyLCBsaXN0ZW5pbmdQb3J0XSh4cGNfb2JqZWN0X3QgZXZlbnQpIHsK
ICAgICAgICAgQVNTRVJUKCFldmVudCB8fCB4cGNfZ2V0X3R5cGUoZXZlbnQpID09IFhQQ19UWVBF
X0VSUk9SKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmlu
ZGV4IGRjOWFmZDgwOTQzOWM3NWEwMzllY2ViZTg2NThjOGVhMzRkY2MzZjIuLjRjOTE5NDc2Yjcz
YjM5NTRmNWQ1Mjc3YzYxZmJhOWU4NDU0ODk2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAgLTUzLDcgKzUzLDExIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgYXNzZXJ0aW9uV2lsbEV4cGlyZUltbWluZW50bHkoKSA9IDA7CiB9OwogCi1jbGFz
cyBQcm9jZXNzQXNzZXJ0aW9uIHsKK2NsYXNzIFByb2Nlc3NBc3NlcnRpb24KKyNpZiBQTEFURk9S
TShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKQorICAgIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPFByb2Nlc3NBc3NlcnRpb24+CisjZW5kaWYKK3sKIHB1YmxpYzoKICAgICBQcm9jZXNz
QXNzZXJ0aW9uKFByb2Nlc3NJRCwgQXNzZXJ0aW9uU3RhdGUsIEZ1bmN0aW9uPHZvaWQoKT4mJiBp
bnZhbGlkYXRpb25DYWxsYmFjayA9IHsgfSk7CiAgICAgdmlydHVhbCB+UHJvY2Vzc0Fzc2VydGlv
bigpOwpAQCAtNzIsMTIgKzc2LDEwIEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKQotICAgIFdlYWtQdHI8UHJvY2Vz
c0Fzc2VydGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRl
V2Vha1B0cigqdGhpcyk7IH0KICAgICB2b2lkIG1hcmtBc0ludmFsaWRhdGVkKCk7CiAKICAgICBS
ZXRhaW5QdHI8QktTUHJvY2Vzc0Fzc2VydGlvbj4gbV9hc3NlcnRpb247CiAgICAgVmFsaWRpdHkg
bV92YWxpZGl0eSB7IFZhbGlkaXR5OjpVbnNldCB9OwotICAgIFdlYWtQdHJGYWN0b3J5PFByb2Nl
c3NBc3NlcnRpb24+IG1fd2Vha0ZhY3Rvcnk7CiAgICAgRnVuY3Rpb248dm9pZCgpPiBtX2ludmFs
aWRhdGlvbkNhbGxiYWNrOwogI2VuZGlmCiAgICAgQXNzZXJ0aW9uU3RhdGUgbV9hc3NlcnRpb25T
dGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOGEzYjcyNzk5
MTA2NTkxZjM4MThhMTVlMGZhMjQ0ZjRiMzJiODU1Yi4uZTA0OTRjMDE3NDQ0Y2Y3NzM5NWY1ZTBk
NTNlZWFlZDA0YmRkOWU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTMyMiw3ICszMjIsOCBAQCBjbGFzcyBXZWJQYWdlUHJveHkgOiBwdWJsaWMgQVBJOjpPYmpl
Y3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpQYWdlPgogI2VuZGlmCiAgICAgLCBwdWJsaWMgV2Vi
UG9wdXBNZW51UHJveHk6OkNsaWVudAogICAgICwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVy
Ci0gICAgLCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICAsIHB1YmxpYyBJUEM6Ok1l
c3NhZ2VTZW5kZXIKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJQYWdlUHJveHk+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlBhZ2VQcm94eT4gY3JlYXRlKFBhZ2VDbGllbnQm
LCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYmKTsKICAgICB2aXJ0dWFsIH5XZWJQYWdlUHJveHkoKTsKQEAgLTEyNjEsOCArMTI2
Miw2IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoR0FNRVBBRCkKICAgICB2b2lkIGdhbWVwYWRBY3Rp
dml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiwgYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNW
aXNpYmxlKTsKICNlbmRpZgotICAgICAgICAKLSAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4gY3Jl
YXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqY29uc3RfY2FzdDxXZWJQYWdlUHJveHkqPih0aGlzKSk7IH0KIAogICAgIHZvaWQgaXNMb2Fk
aW5nQ2hhbmdlZCgpIHsgYWN0aXZpdHlTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpBY3Rpdml0eVN0
YXRlOjpJc0xvYWRpbmcpOyB9CiAKQEAgLTIxNjAsOCArMjE1OSw2IEBAIHByaXZhdGU6CiAKICAg
ICBib29sIG1faXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMIHsgZmFsc2UgfTsKIAotICAgIFdl
YWtQdHJGYWN0b3J5PFdlYlBhZ2VQcm94eT4gbV93ZWFrUHRyRmFjdG9yeTsKLQogICAgIEhhc2hN
YXA8U3RyaW5nLCBSZWY8V2ViVVJMU2NoZW1lSGFuZGxlcj4+IG1fdXJsU2NoZW1lSGFuZGxlcnNC
eVNjaGVtZTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8V2ViVVJMU2NoZW1lSGFuZGxlcj4+
IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXI7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmlu
ZGV4IDNhYmY4ZmY1MWY0NDJiODUwOGIzNzY5MjVmNWFhZDNhOGIwNjg1YWIuLjk3OGMzZDk0NWM1
YzA4M2NiY2ZjZjY3Yzg0MmFiMjYzOWQwMDcxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTczLDcgKzcz
LDcgQEAgc3RydWN0IFBsdWdpbk1vZHVsZUluZm87CiAKIGVudW0gY2xhc3MgU2hvdWxkQ2xlYXJG
aXJzdCB7IE5vLCBZZXMgfTsKIAotY2xhc3MgV2Vic2l0ZURhdGFTdG9yZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYnNpdGVEYXRhU3RvcmU+LCBwdWJsaWMgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2
ZXIsIHB1YmxpYyBJZGVudGlmaWVkPFdlYnNpdGVEYXRhU3RvcmU+ICB7CitjbGFzcyBXZWJzaXRl
RGF0YVN0b3JlIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBX
ZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlciwgcHVibGljIElkZW50aWZpZWQ8V2Vic2l0ZURhdGFT
dG9yZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJzaXRlRGF0YVN0b3JlPiAgewogcHVibGlj
OgogICAgIGNvbnN0ZXhwciBzdGF0aWMgdWludDY0X3QgZGVmYXVsdENhY2hlU3RvcmFnZVBlck9y
aWdpblF1b3RhID0gNTAgKiAxMDI0ICogMTAyNDsKIApAQCAtMTgzLDggKzE4Myw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFkZFNlY0tleVByb3h5U3RvcmUoUmVmPFNlY0tleVByb3h5U3RvcmU+JiYp
OwogI2VuZGlmCiAKLSAgICBhdXRvJiB3ZWFrUHRyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
d2Vha0ZhY3Rvcnk7IH0KLQogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3Jl
KFBBTDo6U2Vzc2lvbklEKTsKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKENvbmZpZ3Vy
YXRpb24sIFBBTDo6U2Vzc2lvbklEKTsKQEAgLTIxNSw3ICsyMTMsNiBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBtYXliZVJlZ2lzdGVyV2l0aFNlc3Npb25JRE1hcCgpOwogCi0gICAgV2Vha1B0ckZh
Y3Rvcnk8V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWFrRmFjdG9yeTsKICAgICBjb25zdCBQQUw6OlNl
c3Npb25JRCBtX3Nlc3Npb25JRDsKIAogICAgIGNvbnN0IENvbmZpZ3VyYXRpb24gbV9jb25maWd1
cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRD
b21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9z
aXRvci5jcHAKaW5kZXggNmIzMzllMDA5MTQwNjljOTc5MGE5OGNmY2Y1M2QzMWJlNjdhOTZmOS4u
OGE4ZTY5NzZkOTYwODA5ODRlNTNlNTI0MTNkNWEzZTU2YjlmM2Y3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwCkBAIC0yMTYsNyAr
MjE2LDcgQEAgdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6YXR0YWNoQnVmZmVyKHN0
cnVjdCB3bF9yZXNvdXJjZSogYnVmZmVyKQogCiAgICAgaWYgKGJ1ZmZlcikgewogICAgICAgICBh
dXRvKiBjb21wb3NpdG9yQnVmZmVyID0gV2F5bGFuZENvbXBvc2l0b3I6OkJ1ZmZlcjo6Z2V0T3JD
cmVhdGUoYnVmZmVyKTsKLSAgICAgICAgbV9wZW5kaW5nQnVmZmVyID0gY29tcG9zaXRvckJ1ZmZl
ci0+Y3JlYXRlV2Vha1B0cigpOworICAgICAgICBtX3BlbmRpbmdCdWZmZXIgPSBtYWtlV2Vha1B0
cigqY29tcG9zaXRvckJ1ZmZlcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5oCmluZGV4IGFhOTMzMzQzZWM4MTcyMjgwMDBh
MDY1YWNmMzMzNmYxNjI2YzUzY2MuLjZlNTEzMTE5M2U1MzVkMDgxZjM4MzkyZDdmMjk0YjE1ZjYy
MGM2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29t
cG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9z
aXRvci5oCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFdheWxhbmRDb21wb3NpdG9yIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgV2F5bGFuZENvbXBvc2l0b3ImIHNpbmdsZXRvbigpOwogCi0gICAgY2xh
c3MgQnVmZmVyIHsKKyAgICBjbGFzcyBCdWZmZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8QnVm
ZmVyPiB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJ1ZmZlcik7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIEJ1ZmZlciogZ2V0T3JD
cmVhdGUoc3RydWN0IHdsX3Jlc291cmNlKik7CkBAIC02Nyw4ICs2Nyw2IEBAIHB1YmxpYzoKICAg
ICAgICAgRUdMSW1hZ2VLSFIgY3JlYXRlSW1hZ2UoKSBjb25zdDsKICAgICAgICAgV2ViQ29yZTo6
SW50U2l6ZSBzaXplKCkgY29uc3Q7CiAKLSAgICAgICAgV2Vha1B0cjxCdWZmZXI+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9
Ci0KICAgICBwcml2YXRlOgogICAgICAgICBCdWZmZXIoc3RydWN0IHdsX3Jlc291cmNlKik7CiAg
ICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lMaXN0ZW5lckNhbGxiYWNrKHN0cnVjdCB3bF9saXN0
ZW5lciosIHZvaWQqKTsKQEAgLTc2LDcgKzc0LDYgQEAgcHVibGljOgogICAgICAgICBzdHJ1Y3Qg
d2xfcmVzb3VyY2UqIG1fcmVzb3VyY2UgeyBudWxscHRyIH07CiAgICAgICAgIHN0cnVjdCB3bF9s
aXN0ZW5lciBtX2Rlc3Ryb3lMaXN0ZW5lcjsKICAgICAgICAgdWludDMyX3QgbV9idXN5Q291bnQg
eyAwIH07Ci0gICAgICAgIFdlYWtQdHJGYWN0b3J5PEJ1ZmZlcj4gbV93ZWFrUHRyRmFjdG9yeTsK
ICAgICB9OwogCiAgICAgY2xhc3MgU3VyZmFjZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IDA2NDlkMTE3MzEyMzMxYmUw
OThmN2U0NDNkN2RhNmYxYmQ4NDFhNjIuLmJmYzZlNzVmYjI2ZjE1NTY1YjkzODQ2ZDFiNWY4Y2Zm
ZmMwMTYzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
QXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
QXNzZXJ0aW9uSU9TLm1tCkBAIC0xNjMsNyArMTYzLDcgQEAgUHJvY2Vzc0Fzc2VydGlvbjo6UHJv
Y2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlLCBG
dW4KICAgICA6IG1faW52YWxpZGF0aW9uQ2FsbGJhY2soV1RGTW92ZShpbnZhbGlkYXRpb25DYWxs
YmFjaykpCiAgICAgLCBtX2Fzc2VydGlvblN0YXRlKGFzc2VydGlvblN0YXRlKQogewotICAgIGF1
dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKTsKICAgICBCS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRpb25IYW5kbGVy
IGhhbmRsZXIgPSBeKEJPT0wgYWNxdWlyZWQpIHsKICAgICAgICAgaWYgKCFhY3F1aXJlZCkgewog
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICIgJXAgLSBQ
cm9jZXNzQXNzZXJ0aW9uKCkgVW5hYmxlIHRvIGFjcXVpcmUgYXNzZXJ0aW9uIGZvciBwcm9jZXNz
IHdpdGggUElEICVkIiwgdGhpcywgcGlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
RGlzcGxheUxpbmsuY3BwCmluZGV4IGJjNjhjMzAyYWY1NDk0YjdiYzdkYTgyZWU0OWFkN2E1ZmMx
YTg3ZDIuLmJhYjA3NWJmM2M1YzQyMDAxMjVhMDUyZjA0YWMyMjgyYzJmOTk1YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcApAQCAtOTgsNyArOTgsNyBA
QCB2b2lkIERpc3BsYXlMaW5rOjpyZXN1bWUoKQogQ1ZSZXR1cm4gRGlzcGxheUxpbms6OmRpc3Bs
YXlMaW5rQ2FsbGJhY2soQ1ZEaXNwbGF5TGlua1JlZiBkaXNwbGF5TGlua1JlZiwgY29uc3QgQ1ZU
aW1lU3RhbXAqLCBjb25zdCBDVlRpbWVTdGFtcCosIENWT3B0aW9uRmxhZ3MsIENWT3B0aW9uRmxh
Z3MqLCB2b2lkKiBkYXRhKQogewogICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5ID0gcmVp
bnRlcnByZXRfY2FzdDxXZWJQYWdlUHJveHkqPihkYXRhKTsKLSAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3dlYWtQdHIgPSB3ZWJQYWdlUHJveHktPmNyZWF0ZVdlYWtQdHIoKV0geworICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1B0ciA9IG1ha2VXZWFrUHRyKCp3ZWJQYWdl
UHJveHkpXSB7CiAgICAgICAgIGlmIChhdXRvKiBwcm94eSA9IHdlYWtQdHIuZ2V0KCkpCiAgICAg
ICAgICAgICBwcm94eS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpEaXNw
bGF5V2FzUmVmcmVzaGVkKCksIHByb3h5LT5wYWdlSUQoKSk7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNo
TW9uaXRvci5tbQppbmRleCA5Y2E4M2IyMjhiNzFjYWVlOTRkY2VkMjNjMjg0MjNmNjY2MWIxNGFl
Li4yMjYzYmM5NTg1MDUwYjA4OWFiM2RhM2UwMmUyZWI3MjlmZmI0NDNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVz
aE1vbml0b3IubW0KQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFJlbW90
ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEmIGRyYXdpbmdBcmVhKQogICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9yKGRp
c3BsYXlJRCkKLSAgICAsIG1fZHJhd2luZ0FyZWEoZHJhd2luZ0FyZWEuY3JlYXRlV2Vha1B0cigp
KQorICAgICwgbV9kcmF3aW5nQXJlYShtYWtlV2Vha1B0cihkcmF3aW5nQXJlYSkpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgK
aW5kZXggOWFmNWNiM2E4MWJlZmE1ZTVjYzI1YTdlYzgwODRkZTMyY2Y1ZGZiYy4uZTllZTAzZTE0
OWZkOTM3MTRlNDk1YzViZGEwOTc2OGI2M2ZjYzgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwogY2xhc3MgUmVt
b3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOwogCi1jbGFzcyBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYSA6IHB1YmxpYyBEcmF3aW5nQXJlYSwgcHVibGljIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDbGllbnQgeworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEgOiBwdWJs
aWMgRHJhd2luZ0FyZWEsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYT4sIHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50IHsKICAgICBmcmll
bmQgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOwogcHVibGljOgog
ICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdlYlBhZ2UmLCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJik7CkBAIC01NCw4ICs1NCw2IEBAIHB1YmxpYzoKICAgICB1aW50NjRf
dCBuZXh0VHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFRyYW5zYWN0aW9u
SUQgKyAxOyB9CiAgICAgdWludDY0X3QgbGFzdENvbW1pdHRlZFRyYW5zYWN0aW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnRUcmFuc2FjdGlvbklEOyB9CiAKLSAgICBXZWFrUHRyPFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiBwcml2YXRlOgogICAgIC8vIERyYXdp
bmdBcmVhCiAgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKQEAgLTE3MCw4ICsx
NjgsNiBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbV9jb250ZW50
TGF5ZXIgeyBudWxscHRyIH07CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbV92aWV3T3Zl
cmxheVJvb3RMYXllciB7IG51bGxwdHIgfTsKLSAgICAKLSAgICBXZWFrUHRyRmFjdG9yeTxSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBmYTJlZDMyODI1Nzg0NzhiM2NmNWQw
ODFmNzFjODY1ZWY4MWQ3MDM1Li40ZjEwYWQzNzZkMWVkZmFmYzY1YjBmMmJiZDQwMmI0NGE0OTVi
MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtNDMsNyArNDMsNyBAQAogQGNsYXNzIFdlYlZpZXc7
CiBAY2xhc3MgV2ViRWRpdG9yVW5kb1RhcmdldDsKIAotY2xhc3MgV2ViRWRpdG9yQ2xpZW50IGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRleHRD
aGVja2VyQ2xpZW50IHsKK2NsYXNzIFdlYkVkaXRvckNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJD
b3JlOjpFZGl0b3JDbGllbnQsIHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFdlYkVkaXRvckNsaWVudD4gewogcHVibGljOgogICAgIFdlYkVk
aXRvckNsaWVudChXZWJWaWV3ICopOwogICAgIHZpcnR1YWwgfldlYkVkaXRvckNsaWVudCgpOwpA
QCAtMTkzLDggKzE5Myw2IEBAIHByaXZhdGU6CiAKICAgICBlbnVtIGNsYXNzIEVkaXRvclN0YXRl
SXNDb250ZW50RWRpdGFibGUgeyBObywgWWVzLCBVbnNldCB9OwogICAgIEVkaXRvclN0YXRlSXND
b250ZW50RWRpdGFibGUgbV9sYXN0RWRpdG9yU3RhdGVXYXNDb250ZW50RWRpdGFibGUgeyBFZGl0
b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpVbnNldCB9OwotCi0gICAgV2Vha1B0ckZhY3Rvcnk8
V2ViRWRpdG9yQ2xpZW50PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKIAogaW5saW5lIE5TU2VsZWN0
aW9uQWZmaW5pdHkga2l0KFdlYkNvcmU6OkVBZmZpbml0eSBhZmZpbml0eSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQppbmRleCBmY2U1ZDdhYWI0YTViMDZhZjk1MjYzYWJjYTI3YzBmZTJlMTU0ODY1Li42MTBm
OGUwODNkMWUwNzAzZjc5YTkxNWU2ZDhlMmE4MmQ1YmJjYThjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1t
CkBAIC0xMjEzLDcgKzEyMTMsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENhbmRp
ZGF0ZXNGb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZQogICAgIG1fcGFy
YWdyYXBoQ29udGV4dEZvckNhbmRpZGF0ZVJlcXVlc3QgPSBwbGFpblRleHQoZnJhbWUtPmVkaXRv
cigpLmNvbnRleHRSYW5nZUZvckNhbmRpZGF0ZVJlcXVlc3QoKS5nZXQoKSk7CiAKICAgICBOU1Rl
eHRDaGVja2luZ1R5cGVzIGNoZWNraW5nVHlwZXMgPSBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGlu
ZyB8IE5TVGV4dENoZWNraW5nVHlwZVJlcGxhY2VtZW50IHwgTlNUZXh0Q2hlY2tpbmdUeXBlQ29y
cmVjdGlvbjsKLSAgICBhdXRvIHdlYWtFZGl0b3IgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpOworICAgIGF1dG8gd2Vha0VkaXRvciA9IG1ha2VXZWFrUHRyKCp0aGlzKTsK
ICAgICBtX2xhc3RDYW5kaWRhdGVSZXF1ZXN0U2VxdWVuY2VOdW1iZXIgPSBbW05TU3BlbGxDaGVj
a2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3RlZFJhbmdl
Om1fcmFuZ2VGb3JDYW5kaWRhdGVzIGluU3RyaW5nOm1fcGFyYWdyYXBoQ29udGV4dEZvckNhbmRp
ZGF0ZVJlcXVlc3QuZ2V0KCkgdHlwZXM6Y2hlY2tpbmdUeXBlcyBvcHRpb25zOm5pbCBpblNwZWxs
RG9jdW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgY29tcGxldGlvbkhhbmRs
ZXI6W3dlYWtFZGl0b3JdKE5TSW50ZWdlciBzZXF1ZW5jZU51bWJlciwgTlNBcnJheTxOU1RleHRD
aGVja2luZ1Jlc3VsdCAqPiAqY2FuZGlkYXRlcykgewogICAgICAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICAgICAgaWYgKCF3ZWFrRWRpdG9y
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342219</attachid>
            <date>2018-06-07 16:28:13 -0700</date>
            <delta_ts>2018-06-07 20:56:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186407-20180607162812.patch</filename>
            <type>text/plain</type>
            <size>215710</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YjM4MDcxZDFlODVkZjQ5MjQ2YzFiYWM4MGJhZmExNTJmOGIyZGFmLi45Y2Q5NGU3ZWQ1NmZjYWZk
NzcxOWRjNGJhNWFlMDBmNzY0OGU3ZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOC0wNi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBiYXNlIGNsYXNzIHRvIGdldCBXZWFrUHRyRmFjdG9yeSBtZW1iZXIgYW5k
IGF2b2lkIHNvbWUgYm9pbGVycGxhdGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIENhbk1ha2VXZWFrUHRyIGJhc2UgY2xhc3MgdG8gZ2V0
IFdlYWtQdHJGYWN0b3J5IG1lbWJlciBhbmQgaXRzIGdldHRlciwgaW4KKyAgICAgICAgb3JkZXIg
dG8gYXZvaWQgc29tZSBib2lsZXJwbGF0ZSBjb2RlIGluIGV2ZXJ5IGNsYXNzIG5lZWRpbmcgYSBX
ZWFrUHRyRmFjdG9yeS4KKyAgICAgICAgVGhpcyBhbHNvIGdldHMgcmlkIG9mIG9sZC1zdHlsZSBj
cmVhdGVXZWFrUHRyKCkgbWV0aG9kcyBpbiBmYXZvciBvZiB0aGUgbmV3ZXIKKyAgICAgICAgbWFr
ZVdlYWtQdHIoKS4KKworICAgICAgICAqIHdhc20vV2FzbUluc3RhbmNlLmg6CisgICAgICAgICog
d2FzbS9XYXNtTWVtb3J5LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5OjpyZWdpc3Rl
ckluc3RhbmNlKToKKwogMjAxOC0wNi0wNyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIERGRyB0byBGVEwgT1NSIGVudHJ5IGNvZGUgbW9yZSBzYW5lIGJ5
IHJlbW92aW5nIGJhZCBSRUxFQVNFX0FTU0VSVFMgYW5kIG1ha2luZyBpdCB0cmlnZ2VyIGNvbXBp
bGVzIGluIG91dGVyIGxvb3BzIGJlZm9yZSBpbm5lciBvbmVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1ZGI0MjQ0N2M1OGZh
MGJmMzdlN2E4ZTUxNGVhZmY3MzE3NjdhODUuLjkwM2VhODQxMmQ3NTRlZWFlYzFjMDI2OGYwNDY2
YjU4NTFhNTllNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTgtMDYtMDcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYmFzZSBjbGFzcyB0byBnZXQgV2Vh
a1B0ckZhY3RvcnkgbWVtYmVyIGFuZCBhdm9pZCBzb21lIGJvaWxlcnBsYXRlIGNvZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQwNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBDYW5NYWtlV2Vh
a1B0ciBiYXNlIGNsYXNzIHRvIGdldCBXZWFrUHRyRmFjdG9yeSBtZW1iZXIgYW5kIGl0cyBnZXR0
ZXIsIGluCisgICAgICAgIG9yZGVyIHRvIGF2b2lkIHNvbWUgYm9pbGVycGxhdGUgY29kZSBpbiBl
dmVyeSBjbGFzcyBuZWVkaW5nIGEgV2Vha1B0ckZhY3RvcnkuCisgICAgICAgIFRoaXMgYWxzbyBn
ZXRzIHJpZCBvZiBvbGQtc3R5bGUgY3JlYXRlV2Vha1B0cigpIG1ldGhvZHMgaW4gZmF2b3Igb2Yg
dGhlIG5ld2VyCisgICAgICAgIG1ha2VXZWFrUHRyKCkuCisKKyAgICAgICAgKiB3dGYvV2Vha1B0
ci5oOgorICAgICAgICAoV1RGOjpDYW5NYWtlV2Vha1B0cjo6d2Vha1B0ckZhY3RvcnkgY29uc3Qp
OgorICAgICAgICAoV1RGOjpDYW5NYWtlV2Vha1B0cjo6d2Vha1B0ckZhY3RvcnkpOgorCiAyMDE4
LTA2LTA1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2Fd
IFJldGlyZSBEaXNwYXRjaFB0ciwgYW5kIGFkZCBtb3JlIG1vdmUgc2VtYW50aWNzIGFuZCBzaW1w
bGVyICNpZnMgdG8gb3RoZXIgc21hcnQgcG9pbnRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MjRkZDdjNjhm
OTBiM2MxYzFhZWRjNTE4MjgxMTYyNTY3MjdjYjJkLi45MzZlYTFjOTI0ZDJiNmYwM2FjY2Y0OGQ2
ZmMzNDI3MDZmZjA5ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjM1IEBACisyMDE4LTA2LTA3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2UgY2xh
c3MgdG8gZ2V0IFdlYWtQdHJGYWN0b3J5IG1lbWJlciBhbmQgYXZvaWQgc29tZSBib2lsZXJwbGF0
ZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODY0MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQ2FuTWFrZVdlYWtQdHIgYmFzZSBjbGFzcyB0byBnZXQgV2Vha1B0ckZhY3RvcnkgbWVtYmVy
IGFuZCBpdHMgZ2V0dGVyLCBpbgorICAgICAgICBvcmRlciB0byBhdm9pZCBzb21lIGJvaWxlcnBs
YXRlIGNvZGUgaW4gZXZlcnkgY2xhc3MgbmVlZGluZyBhIFdlYWtQdHJGYWN0b3J5LgorICAgICAg
ICBUaGlzIGFsc28gZ2V0cyByaWQgb2Ygb2xkLXN0eWxlIGNyZWF0ZVdlYWtQdHIoKSBtZXRob2Rz
IGluIGZhdm9yIG9mIHRoZSBuZXdlcgorICAgICAgICBtYWtlV2Vha1B0cigpLgorCisgICAgICAg
ICogTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5oOgor
ICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvTmF2aWdhdG9yQ3JlZGVudGlh
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQ3JlZGVudGlhbHM6OmNyZWRlbnRp
YWxzKToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDRE06OmRvU3VwcG9ydGVkQ29uZmlndXJhdGlvblN0ZXApOgorICAgICAgICAo
V2ViQ29yZTo6Q0RNOjpnZXRDb25zZW50U3RhdHVzKToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL0NETS5oOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6Z2VuZXJh
dGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6bG9hZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVNlc3Npb246OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5
U2Vzc2lvbjo6cmVtb3ZlKToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5U2Vzc2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5czo6Y3JlYXRlU2Vzc2lvbik6CisgICAg
ICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBh
ZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpHYW1lcGFkTWFuYWdlcjo6bWFrZUdhbWVwYWRWaXNpYmxlKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURl
dmljZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6YXBwbHlDb25zdHJh
aW50cyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNWR1Jvb3Q6OnNldFBhcmVudCk6CisgICAgICAgICogY3J5
cHRvL1N1YnRsZUNyeXB0by5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmVu
Y3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjpkZWNyeXB0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6c2lnbik6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0
bGVDcnlwdG86OnZlcmlmeSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmRpZ2Vz
dCk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmdlbmVyYXRlS2V5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6ZGVyaXZlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OlN1YnRsZUNyeXB0bzo6ZGVyaXZlQml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlw
dG86OmltcG9ydEtleSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmV4cG9ydEtl
eSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OndyYXBLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6U3VidGxlQ3J5cHRvOjp1bndyYXBLZXkpOgorICAgICAgICAqIGNyeXB0by9TdWJ0
bGVDcnlwdG8uaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udEZhY2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRGYWNlOjp3cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpzZXRXcmFw
cGVyKToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaDoKKyAgICAgICAgKiBj
c3MvRm9udEZhY2UuY3BwOgorICAgICAgICAqIGNzcy9Gb250RmFjZS5oOgorICAgICAgICAqIGNz
cy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
dmFsdWF0b3I6Ok1lZGlhUXVlcnlFdmFsdWF0b3IpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0
Q29udGVudHMuaDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU0RlZmVycmVkUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0RlZmVycmVkUGFyc2VyOjpDU1NEZWZlcnJlZFBhcnNlcik6
CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbUxpc3Q6OmVuc3VyZUl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJpbmdEYXRhKToKKyAgICAgICAgKiBkb20vRGF0
YVRyYW5zZmVySXRlbUxpc3QuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBvc3RUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXF1
ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29udGV4dERvY3VtZW50KToKKyAgICAgICAgKiBkb20vTWVz
c2FnZVBvcnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6c2V0UGljdHVyZUVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckNyZWF0ZVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
cGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnN0eWxlIGNv
bnN0KToKKyAgICAgICAgKiBsb2FkZXIvRm9ybVN0YXRlLmg6CisgICAgICAgICogbG9hZGVyL0xp
bmtMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6cHJlY29ubmVjdElm
TmVlZGVkKToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5oOgorICAgICAgICAqIGxvYWRl
ci9MaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5r
UHJlbG9hZFJlc291cmNlQ2xpZW50OjpMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50KToKKyAgICAg
ICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBsb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6Cisg
ICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2lkZ2V0
Rm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZUxhc3RT
Y3JvbGxiYXJVbmRlck1vdXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRhc2tEaXNwYXRjaGVyPFRpbWVyPjo6cG9zdFRhc2sp
OgorICAgICAgICAqIHBsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkdlbmVyaWNUYXNrUXVldWU6OmVucXVldWVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
bmVyaWNUYXNrUXVldWU6OmNhbmNlbEFsbFRhc2tzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxiYXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9XaWRnZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRQYXJlbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L1dpZGdldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVS
ZWFkZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpk
ZWNvZGVBdWRpb0ZvckJ1c0NyZWF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYzo6QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmg6CisgICAgICAgICog
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VDbGVhcktleTo6cmVxdWVzdExpY2Vuc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VDbGVhcktleTo6dXBkYXRlTGljZW5zZSk6CisgICAgICAg
IChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5Ojpsb2FkU2Vzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpjbG9zZVNlc3Npb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNSW5zdGFuY2VDbGVhcktleTo6cmVtb3ZlU2Vzc2lvbkRhdGEpOgorICAgICAgICAq
IHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2NoZWR1
bGVNYWluVGhyZWFkTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlzcGF0Y2hOb3RpZmljYXRpb24pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6
OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRl
b0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNoZWNrUGxheWFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2Vla1RvVGltZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpj
cmVhdGVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KToKKyAgICAgICAgKC1b
V2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpj
aGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlcXVlc3ROb3RpZmljYXRpb25XaGVuUmVhZHlGb3JWaWRl
b0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpzY2hlZHVsZURlZmVycmVkVGFzayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVGV4dHVyZUNhY2hlQ1YuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9U
ZXh0dXJlQ2FjaGVDVi5tbToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVDYWNoZUNWOjp0ZXh0
dXJlRnJvbUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZWaWRlbyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mQXVkaW8pOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNz
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aGFuZGxlU3luY01lc3NhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aW5pdGlhbGl6
YXRpb25EYXRhRW5jb3VudGVyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmspOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5
TGlua0ZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6
OnNldE1hc2tMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNl
dFJlcGxpY2FMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjplbmRDcmVhdGVkTWVkaWFTb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjplbmRHZXRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRp
b246OkN1c3RvbVZpZGVvUHJlc2VudGVyOjpwcm9jZXNzSW5wdXROb3RpZnkpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6UmVtb3RlQ29tbWFu
ZExpc3RlbmVyTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hl
ZHVsZURlZmVycmVkVGFzayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpz
Y2hlZHVsZURlZmVycmVkVGFzayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9T
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFt
KToKKyAgICAgICAgKiBwbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxheS5oOgorICAgICAgICAq
IHBsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFuYWdlck9wZW5WUi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWUlBsYXRmb3JtTWFuYWdlck9wZW5WUjo6Z2V0VlJEaXNwbGF5cyk6CisgICAg
ICAgICogcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5oOgorICAgICAgICAoV2ViQ29yZTo6Rmxv
YXRpbmdPYmplY3Q6OnNldE9yaWdpbmF0aW5nTGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRo
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnV2l0aENvbnRleHQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdXaXRoQ29udGV4dDo6U1ZHUGF0aFNlZ1dpdGhDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdXaXRoQ29udGV4dDo6c2V0Q29udGV4dEFu
ZFJvbGUpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFsKToKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFy
T2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJP
ZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQ
cm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVy
dHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5pdGlhbGl6ZVZhbHVl
c0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Z2V0SXRl
bVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6
aW5zZXJ0SXRlbUJlZm9yZVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAqIHRlc3RpbmcvTW9j
a0NETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETUZhY3Rvcnk6OmNyZWF0
ZUNETSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSk6CisgICAg
ICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9FeHRlbmRhYmxlRXZlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEV2ZW50OjpyZXNwb25kV2l0aCk6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oOgorICAgICAgICAqIHhtbC9E
T01QYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGFyc2VyOjpET01QYXJzZXIpOgor
CiAyMDE4LTA2LTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ10gTWVyZ2UgaGVpZ2h0IGFuZCB2ZXJ0aWNhbCBtYXJnaW4gY29tcHV0YXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IDBiODg3YzA2MTQ2NjA4MzU3YzE3ZTgxNGFhMzFjNzE4NmU3OTVjNDMu
Ljk1ZDlkYzEwYTIwNTFlZjQzODVkMTBlZTNhZjJkNWFhY2U5NTkyZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA2LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2UgY2xhc3MgdG8gZ2V0IFdlYWtQdHJGYWN0b3J5
IG1lbWJlciBhbmQgYXZvaWQgc29tZSBib2lsZXJwbGF0ZSBjb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY0MDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAxODY0MDdfQ2FuTWFrZVdlYWtQdHIKKwor
ICAgICAgICAqIHBhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMuaDoKKyAgICAg
ICAgKiBwYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tOgorICAgICAgICAo
UEFMOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjKToKKwog
MjAxOC0wNi0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBMb2dnaW5nIG1hY3JvcyBhcmUgc2Vuc2l0aXZlIHRvIHBhbC9Mb2dnaW5nLmggdnMgTG9n
Z2luZy5oIGluY2x1ZGUgb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDA5ZDM2YTZmOWFiOWM5YTBkNzYxNDBk
OThkNTFlMzg3NjkyMTczOC4uMDkyZTNhZTBhZTE4Zjk3NDY3N2E5NzEyMjg4MzkxNDNiZThhYzA2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxOC0wNi0wNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBiYXNlIGNsYXNzIHRvIGdldCBXZWFrUHRy
RmFjdG9yeSBtZW1iZXIgYW5kIGF2b2lkIHNvbWUgYm9pbGVycGxhdGUgY29kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NDA3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIENhbk1ha2VXZWFrUHRy
IGJhc2UgY2xhc3MgdG8gZ2V0IFdlYWtQdHJGYWN0b3J5IG1lbWJlciBhbmQgaXRzIGdldHRlciwg
aW4KKyAgICAgICAgb3JkZXIgdG8gYXZvaWQgc29tZSBib2lsZXJwbGF0ZSBjb2RlIGluIGV2ZXJ5
IGNsYXNzIG5lZWRpbmcgYSBXZWFrUHRyRmFjdG9yeS4KKyAgICAgICAgVGhpcyBhbHNvIGdldHMg
cmlkIG9mIG9sZC1zdHlsZSBjcmVhdGVXZWFrUHRyKCkgbWV0aG9kcyBpbiBmYXZvciBvZiB0aGUg
bmV3ZXIKKyAgICAgICAgbWFrZVdlYWtQdHIoKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkQ2hlY2tlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNhbkF1dGhlbnRp
Y2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1By
ZWNvbm5lY3RUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lLmg6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHA6
CisgICAgICAgIChBUEk6OkF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0
aXZlQ2FyZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpv
cGVuUGF5bWVudFNldHVwKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXBwbGVQYXkvbWFjL1dl
YlBheW1lbnRDb29yZGluYXRvclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1TaG93UGF5bWVudFVJKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW06CisgICAgICAgIChXZWJLaXQ6OkFwcGxpY2F0aW9u
U3RhdGVUcmFja2VyOjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZp
ZXdHZXN0dXJlQ29udHJvbGxlcjo6c2V0QWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlUGFn
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzZXRUb3BDb250ZW50SW5zZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6dmlld0RpZE1vdmVUb1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpw
cmVwYXJlRm9yTW92ZVRvV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZh
bGlkYXRlVXNlckludGVyZmFjZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb25JZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjppbnRlcnByZXRLZXlFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjprZXlVcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlEb3duKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNN
ZXNzZW5nZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNyZWRlbnRpYWxzTWVzc2Vu
Z2VyUHJveHk6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ3JlZGVudGlh
bHNNZXNzZW5nZXJQcm94eTo6Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ3Jl
ZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRvd25sb2FkUHJveHk6OnNldE9yaWdpbmF0aW5nUGFnZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzQXNz
ZXJ0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldheWxh
bmRDb21wb3NpdG9yOjpTdXJmYWNlOjphdHRhY2hCdWZmZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nl
c3NBc3NlcnRpb25JT1MubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OlBy
b2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5TGluazo6ZGlzcGxheUxpbmtDYWxsYmFjayk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisKIDIwMTgtMDYtMDcgIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjMyNTIwKTogQ3Jhc2gg
dW5kZXIgSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNyZWRlbnRpYWw+OjplbmNvZGVQbGF0
Zm9ybURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBmOGUzMDlhMTgzOTU1ZWE3
M2Q4YzMzODNmOTJlMWViODc5ZDYzMzI3Li4wN2M1MWQ5YjcyMGVhOThkYmI3ZTZkMGE1OWI5OWYy
MjkzNDY4YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTgtMDYtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYmFzZSBjbGFzcyB0byBnZXQgV2Vha1B0ckZhY3RvcnkgbWVtYmVyIGFuZCBhdm9pZCBzb21l
IGJvaWxlcnBsYXRlIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NjQwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBDYW5NYWtlV2Vha1B0ciBiYXNlIGNsYXNzIHRvIGdldCBXZWFrUHRyRmFj
dG9yeSBtZW1iZXIgYW5kIGl0cyBnZXR0ZXIsIGluCisgICAgICAgIG9yZGVyIHRvIGF2b2lkIHNv
bWUgYm9pbGVycGxhdGUgY29kZSBpbiBldmVyeSBjbGFzcyBuZWVkaW5nIGEgV2Vha1B0ckZhY3Rv
cnkuCisgICAgICAgIFRoaXMgYWxzbyBnZXRzIHJpZCBvZiBvbGQtc3R5bGUgY3JlYXRlV2Vha1B0
cigpIG1ldGhvZHMgaW4gZmF2b3Igb2YgdGhlIG5ld2VyCisgICAgICAgIG1ha2VXZWFrUHRyKCku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKToKKwogMjAxOC0wNi0wNSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjIzMjA4
Mik6IFdlYnNpdGVzIGdldCBsb2FkZWQgaW5zaWRlIG9mIE1lc3NhZ2VzIEFwcCBjaGF0IHRyYW5z
Y3JpcHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5j
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKaW5kZXggYzcw
YzQ5OGQ5NzhiZTYzM2VlYzhkMjdlODVlYmFhZjRhMDFiNmI1MS4uYTc3Mzg3ODBlZGI0YjI0MDJi
YjY5OTg0ZmI4ZjM5MWRjN2Y4YWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUluc3RhbmNlLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBX
YXNtIHsKIAogc3RydWN0IENvbnRleHQ7CiAKLWNsYXNzIEluc3RhbmNlIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEluc3RhbmNlPiB7CitjbGFzcyBJbnN0YW5jZSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxJbnN0YW5jZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxJbnN0YW5j
ZT4gewogcHVibGljOgogICAgIHVzaW5nIFN0b3JlVG9wQ2FsbEZyYW1lQ2FsbGJhY2sgPSBXVEY6
OkZ1bmN0aW9uPHZvaWQodm9pZCopPjsKIApAQCAtNjksNyArNjksNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCogY2FjaGVkTWVtb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRNZW1vcnk7IH0KICAg
ICBzaXplX3QgY2FjaGVkTWVtb3J5U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkTWVtb3J5
U2l6ZTsgfQogCi0gICAgV2Vha1B0cjxJbnN0YW5jZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJu
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KICAgICB2b2lkIHNldE1l
bW9yeShSZWY8TWVtb3J5PiYmIG1lbW9yeSkKICAgICB7CiAgICAgICAgIG1fbWVtb3J5ID0gV1RG
TW92ZShtZW1vcnkpOwpAQCAtMTU3LDcgKzE1Niw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCoqIG1f
cG9pbnRlclRvQWN0dWFsU3RhY2tMaW1pdCB7IG51bGxwdHIgfTsKICAgICB2b2lkKiBtX2NhY2hl
ZFN0YWNrTGltaXQgeyBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWlu
dHB0cl90Pjo6bWF4KCkpIH07CiAgICAgU3RvcmVUb3BDYWxsRnJhbWVDYWxsYmFjayBtX3N0b3Jl
VG9wQ2FsbEZyYW1lOwotICAgIFdlYWtQdHJGYWN0b3J5PEluc3RhbmNlPiBtX3dlYWtQdHJGYWN0
b3J5OwogICAgIHVuc2lnbmVkIG1fbnVtSW1wb3J0RnVuY3Rpb25zIHsgMCB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAppbmRleCA0YzA0MGQyZGE0Zjg4
ZDJlMGQyYzE3MDIwMjE2ODVmZTkxZDVlYzcxLi5hNjg1ZjBlYTNlNGZjZjkwNWRiMmNjMzZkNTAw
YWE3NTljYjc3YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNw
cApAQCAtNDQ1LDExICs0NDUsMTEgQEAgdm9pZCBNZW1vcnk6OnJlZ2lzdGVySW5zdGFuY2UoSW5z
dGFuY2UqIGluc3RhbmNlKQogICAgIHNpemVfdCBjb3VudCA9IG1faW5zdGFuY2VzLnNpemUoKTsK
ICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7IGluZGV4KyspIHsKICAg
ICAgICAgaWYgKG1faW5zdGFuY2VzLmF0KGluZGV4KS5nZXQoKSA9PSBudWxscHRyKSB7Ci0gICAg
ICAgICAgICBtX2luc3RhbmNlcy5hdChpbmRleCkgPSBpbnN0YW5jZS0+Y3JlYXRlV2Vha1B0cigp
OworICAgICAgICAgICAgbV9pbnN0YW5jZXMuYXQoaW5kZXgpID0gbWFrZVdlYWtQdHIoKmluc3Rh
bmNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICBtX2luc3Rh
bmNlcy5hcHBlbmQoaW5zdGFuY2UtPmNyZWF0ZVdlYWtQdHIoKSk7CisgICAgbV9pbnN0YW5jZXMu
YXBwZW5kKG1ha2VXZWFrUHRyKCppbnN0YW5jZSkpOwogfQogCiB2b2lkIE1lbW9yeTo6ZHVtcChQ
cmludFN0cmVhbSYgb3V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha1B0
ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IGZkOWZmNzZkOWQyMDVhN2YxNTQ4
YWM1MWQ4NzI1ZDhkNTY5YmRjYzkuLmVlZGQ4MWYzZjZjMGIzZWZiZDliZTVkMmI0ODg0MDk0YmU3
ZWVkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTEyMyw2ICsxMjMsMTUgQEAgcHJpdmF0ZToKICAgICBtdXRh
YmxlIFJlZlB0cjxXZWFrUmVmZXJlbmNlPFQ+PiBtX3JlZjsKIH07CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNsYXNzIENhbk1ha2VXZWFrUHRyIHsKK3B1YmxpYzoKKyAgICBjb25zdCBXZWFrUHRy
RmFjdG9yeTxUPiYgd2Vha1B0ckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3dlYWtGYWN0b3J5
OyB9CisgICAgV2Vha1B0ckZhY3Rvcnk8VD4mIHdlYWtQdHJGYWN0b3J5KCkgeyByZXR1cm4gbV93
ZWFrRmFjdG9yeTsgfQorCitwcml2YXRlOgorICAgIFdlYWtQdHJGYWN0b3J5PFQ+IG1fd2Vha0Zh
Y3Rvcnk7Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgV2Vh
a1JlZmVyZW5jZTxUPiogd2Vha19yZWZlcmVuY2VfdXBjYXN0KFdlYWtSZWZlcmVuY2U8VT4qIHdl
YWtSZWZlcmVuY2UpCiB7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2NvbnZlcnRpYmxlPFUq
LCBUKj46OnZhbHVlLCAiVSogbXVzdCBiZSBjb252ZXJ0aWJsZSB0byBUKiIpOwpAQCAtMjAxLDYg
KzIxMCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9w
ZXJhdG9yIT0oVCogYSwgY29uc3QgV2Vha1B0cjxVPiYKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAK
K3VzaW5nIFdURjo6Q2FuTWFrZVdlYWtQdHI7CiB1c2luZyBXVEY6OldlYWtQdHI7CiB1c2luZyBX
VEY6OldlYWtQdHJGYWN0b3J5OwogdXNpbmcgV1RGOjpXZWFrUmVmZXJlbmNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFs
c01lc3Nlbmdlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVu
dC9DcmVkZW50aWFsc01lc3Nlbmdlci5oCmluZGV4IDNkOGNjOTU2OWYzMzA0ODcyMWIzYzA4NmJh
NWQ4YzJiMDc2YWQ0MDAuLmYyOGFmOTVjMTZhYmZmOWNiZWVhMTU4MzY2NmIwNTk1OWFiYmU4ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNNZXNzZW5nZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRl
bnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmgKQEAgLTcwLDcgKzcwLDcgQEAg
dXNpbmcgQ3JlYXRpb25Db21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhjZXB0aW9uT3I8Q3JlYXRpb25SZXQKIHVzaW5nIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8QXNzZXJ0aW9uUmV0dXJuQnVuZGxl
PiYmKT47CiB1c2luZyBRdWVyeUNvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT47CiAKLWNsYXNzIENyZWRlbnRpYWxzTWVzc2VuZ2VyIHsKK2NsYXNzIENyZWRl
bnRpYWxzTWVzc2VuZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENyZWRlbnRpYWxzTWVzc2Vu
Z2VyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQ3JlZGVudGlhbHNNZXNzZW5nZXIpOwogcHVibGljOgpAQCAtODcsOCArODcsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEFzc2VydGlvblJlcGx5KHVpbnQ2NF90IG1lc3Nh
Z2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjcmVkZW50aWFsSWQsIGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgYXV0aGVudGljYXRvckRhdGEsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgc2lnbmF0
dXJlLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHVzZXJIYW5kbGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHko
dWludDY0X3QgbWVzc2FnZUlkLCBib29sKSA9IDA7CiAKLSAgICBhdXRvJiB3ZWFrUHRyRmFjdG9y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha0ZhY3Rvcnk7IH0KLQogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgfkNyZWRlbnRpYWxzTWVzc2VuZ2VyKCkgPSBkZWZhdWx0OwogCkBAIC0xMDAsOCArOTgs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgUXVlcnlDb21wbGV0aW9uSGFuZGxl
ciB0YWtlUXVlcnlDb21wbGV0aW9uSGFuZGxlcih1aW50NjRfdCk7CiAKIHByaXZhdGU6Ci0gICAg
V2Vha1B0ckZhY3Rvcnk8Q3JlZGVudGlhbHNNZXNzZW5nZXI+IG1fd2Vha0ZhY3Rvcnk7Ci0KICAg
ICBlbnVtIENhbGxCYWNrQ2xhc3NpZmllciA6IHVpbnQ2NF90IHsKICAgICAgICAgQ3JlYXRpb24g
PSAweDAxLAogICAgICAgICBSZXF1ZXN0ID0gMHgwMiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvTmF2aWdhdG9yQ3JlZGVudGlhbHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9OYXZpZ2F0b3JD
cmVkZW50aWFscy5jcHAKaW5kZXggOWQ4ZjBjZmU4OTlkNWY3YzkzOWFjZWExYjQxMTgzZTk0NTkw
ODQxMi4uNzFmNDM4Y2Y3ODZjNzZkN2I1ODcyMTU1OTc2NjhiNjIzNjFiNTk5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9OYXZpZ2F0b3JD
cmVkZW50aWFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFu
YWdlbWVudC9OYXZpZ2F0b3JDcmVkZW50aWFscy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgQ3JlZGVu
dGlhbHNDb250YWluZXIqIE5hdmlnYXRvckNyZWRlbnRpYWxzOjpjcmVkZW50aWFscyhOYXZpZ2F0
b3ImIG5hdmlnYXRvcikKIHsKICAgICBpZiAoIW5hdmlnYXRvci5mcmFtZSgpIHx8ICFuYXZpZ2F0
b3IuZnJhbWUoKS0+ZG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0
dXJuIE5hdmlnYXRvckNyZWRlbnRpYWxzOjpmcm9tKCZuYXZpZ2F0b3IpLT5jcmVkZW50aWFscyhu
YXZpZ2F0b3IuZnJhbWUoKS0+ZG9jdW1lbnQoKS0+Y3JlYXRlV2Vha1B0cigpKTsKKyAgICByZXR1
cm4gTmF2aWdhdG9yQ3JlZGVudGlhbHM6OmZyb20oJm5hdmlnYXRvciktPmNyZWRlbnRpYWxzKG1h
a2VXZWFrUHRyKCpuYXZpZ2F0b3IuZnJhbWUoKS0+ZG9jdW1lbnQoKSkpOwogfQogCiBOYXZpZ2F0
b3JDcmVkZW50aWFscyogTmF2aWdhdG9yQ3JlZGVudGlhbHM6OmZyb20oTmF2aWdhdG9yKiBuYXZp
Z2F0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHAK
aW5kZXggYTJiZDQ0Y2M2MmJhZjkyZDFkZDAxMTk5Y2ZjYWExMWQyZjNiNmVlYi4uMzRjZjNkMzY3
ODE4Mjg5ODUzNTU2YTY3M2NhY2VjYTdhN2FmODMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgQ0RN
Ojpkb1N1cHBvcnRlZENvbmZpZ3VyYXRpb25TdGVwKE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlv
biYmIGNhbmRpZGF0ZUNvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGNvbnNl
bnRDYWxsYmFjayA9IFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0gKENvbnNlbnRTdGF0dXMgc3RhdHVzLCBNZWRpYUtleVN5c3RlbUNvbmZp
Z3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmJiByZXN0cmlj
dGlvbnMpIG11dGFibGUgeworICAgIGF1dG8gY29uc2VudENhbGxiYWNrID0gW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoQ29uc2Vu
dFN0YXR1cyBzdGF0dXMsIE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24sIE1lZGlhS2V5c1Jlc3RyaWN0aW9ucyYmIHJlc3RyaWN0aW9ucykgbXV0YWJsZSB7CiAgICAg
ICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7
CiAgICAgICAgICAgICByZXR1cm47CkBAIC01MTEsNyArNTExLDcgQEAgdm9pZCBDRE06OmdldENv
bnNlbnRTdGF0dXMoTWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uJiYgYWNjdW11bGF0ZWRDb25m
aWd1cmF0aW8KICAgICAvLyBOT1RFOiBJbiB0aGUgZnV0dXJlLCB0aGVzZSBjaGVja3MgYmVsb3dl
IHdpbGwgaW52b2x2ZSBhc2tpbmcgdGhlIHBhZ2UgY2xpZW50LCBwb3NzaWJseSBhY3Jvc3MgYSBw
cm9jZXNzIGJvdW5kYXJ5LgogICAgIC8vIFRoZXkgd2lsbCBieSBuZWNlc3NpdHkgYmUgYXN5bmNo
cm9ub3VzIHdpdGggY2FsbGJhY2tzLiBGb3Igbm93LCBpbXBseSB0aGlzIGJlaGF2aW9yIGJ5IHBl
cmZvcm1pbmcgaXQgaW4gYW4gYXN5bmMgdGFzay4KIAotICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+cG9zdFRhc2soW3RoaXMsIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpLCBhY2N1bXVs
YXRlZENvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGFjY3VtdWxhdGVkQ29uZmlndXJhdGlvbiksIHJl
c3RyaWN0aW9ucyA9IFdURk1vdmUocmVzdHJpY3Rpb25zKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgYWNjdW11bGF0ZWRDb25maWd1cmF0aW9uID0gV1RGTW92ZShhY2N1bXVsYXRlZENv
bmZpZ3VyYXRpb24pLCByZXN0cmljdGlvbnMgPSBXVEZNb3ZlKHJlc3RyaWN0aW9ucyksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIW1fcHJpdmF0ZSkgewogICAgICAgICAgICAg
Y2FsbGJhY2soQ29uc2VudFN0YXR1czo6Q29uc2VudERlbmllZCwgV1RGTW92ZShhY2N1bXVsYXRl
ZENvbmZpZ3VyYXRpb24pLCBXVEZNb3ZlKHJlc3RyaWN0aW9ucykpOwogICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9D
RE0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmgKaW5kZXgg
NGJmN2I2ODc4ODVmY2YyYTIxYTU1MGQ2MzFmNWVhOWJjMzE0MTk2My4uZTE1NThjNWMyYjA0ZjNl
YmY5YjU2YmNhYzljMDc1NzY4OTdlNDA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETS5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAotY2xhc3Mg
Q0RNIDogcHVibGljIFJlZkNvdW50ZWQ8Q0RNPiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlciB7CitjbGFzcyBDRE0gOiBwdWJsaWMgUmVmQ291bnRlZDxDRE0+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8Q0RNPiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJik7
CiAgICAgc3RhdGljIGJvb2wgaXNQZXJzaXN0ZW50VHlwZShNZWRpYUtleVNlc3Npb25UeXBlKTsK
QEAgLTEwMSwxMyArMTAxLDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxNZWRpYUtl
eVN5c3RlbUNvbmZpZ3VyYXRpb24+ICBnZXRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKGNvbnN0IE1l
ZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYgY2FuZGlkYXRlQ29uZmlndXJhdGlvbiwgTWVkaWFL
ZXlzUmVzdHJpY3Rpb25zJik7CiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8TWVkaWFLZXlTeXN0
ZW1NZWRpYUNhcGFiaWxpdHk+PiBnZXRTdXBwb3J0ZWRDYXBhYmlsaXRpZXNGb3JBdWRpb1ZpZGVv
VHlwZShBdWRpb1ZpZGVvVHlwZSwgY29uc3QgVmVjdG9yPE1lZGlhS2V5U3lzdGVtTWVkaWFDYXBh
YmlsaXR5PiYgcmVxdWVzdGVkQ2FwYWJpbGl0aWVzLCBjb25zdCBNZWRpYUtleVN5c3RlbUNvbmZp
Z3VyYXRpb24mIHBhcnRpYWxDb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmKTsK
IAotICAgIFdlYWtQdHI8Q0RNPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAgICAgdXNpbmcgQ29uc2VudFN0YXR1c0Nh
bGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKENvbnNlbnRTdGF0dXMsIE1lZGlhS2V5U3lzdGVt
Q29uZmlndXJhdGlvbiYmLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmJik+OwogICAgIHZvaWQgZ2V0
Q29uc2VudFN0YXR1cyhNZWRpYUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mJiBhY2N1bXVsYXRlZENv
bmZpZ3VyYXRpb24sIE1lZGlhS2V5c1Jlc3RyaWN0aW9ucyYmLCBDb25zZW50U3RhdHVzQ2FsbGJh
Y2smJik7CiAgICAgU3RyaW5nIG1fa2V5U3lzdGVtOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDRE1Q
cml2YXRlPiBtX3ByaXZhdGU7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8Q0RNPiBtX3dlYWtQdHJGYWN0
b3J5OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCmluZGV4IDc3YzM3NzE5ODExODE5ZTIwYzcw
YmYxY2ZhY2NmNmE4NDJlMzIxNjEuLjk0MjdjZDQyMzY0MGQxZWViNTkzMjNmYmNjN2FjYjk2NzVk
NjY1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIE1lZGlh
S2V5U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFU
eXBlLCBjb25zdCBCdQogICAgICAgICAgICAgbV9sYXRlc3REZWNyeXB0VGltZSA9IDA7CiAgICAg
ICAgIH0KIAotICAgICAgICBtX2luc3RhbmNlLT5yZXF1ZXN0TGljZW5zZShtX3Nlc3Npb25UeXBl
LCBpbml0RGF0YVR5cGUsIFdURk1vdmUoaW5pdERhdGEpLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKFJlZjxTaGFyZWRCdWZmZXI+JiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9u
SWQsIGJvb2wgbmVlZHNJbmRpdmlkdWFsaXphdGlvbiwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1
ZSBzdWNjZWVkZWQpIG11dGFibGUgeworICAgICAgICBtX2luc3RhbmNlLT5yZXF1ZXN0TGljZW5z
ZShtX3Nlc3Npb25UeXBlLCBpbml0RGF0YVR5cGUsIFdURk1vdmUoaW5pdERhdGEpLCBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XSAoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwg
Ym9vbCBuZWVkc0luZGl2aWR1YWxpemF0aW9uLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1
Y2NlZWRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKIApAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9u
Ojpsb2FkKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pCiAgICAgICAgIC8vIDguNi4gTGV0IG1lc3NhZ2UgdHlwZSBiZSBudWxsLgogICAgICAgICAv
LyA4LjcuIExldCBjZG0gYmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRlZCBieSB0aGlzIG9i
amVjdCdzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAgLy8gOC44LiBVc2UgdGhlIGNkbSB0
byBleGVjdXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIG1faW5zdGFuY2UtPmxvYWRT
ZXNzaW9uKG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRTZXNzaW9uSWQsIG9yaWdpbiwgW3RoaXMs
IHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIHNhbml0aXplZFNlc3Npb25JZCA9ICpzYW5pdGl6ZWRTZXNz
aW9uSWRdIChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3I+JiYga25v
d25LZXlzLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBleHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFs
PENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3RhbmNlOjpTdWNjZXNzVmFs
dWUgc3VjY2VlZGVkLCBDRE1JbnN0YW5jZTo6U2Vzc2lvbkxvYWRGYWlsdXJlIGZhaWx1cmUpIG11
dGFibGUgeworICAgICAgICBtX2luc3RhbmNlLT5sb2FkU2Vzc2lvbihtX3Nlc3Npb25UeXBlLCAq
c2FuaXRpemVkU2Vzc2lvbklkLCBvcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHNhbml0aXplZFNlc3Npb25JZCA9
ICpzYW5pdGl6ZWRTZXNzaW9uSWRdIChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0
dXNWZWN0b3I+JiYga25vd25LZXlzLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBleHBpcmF0aW9u
LCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3Rh
bmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkLCBDRE1JbnN0YW5jZTo6U2Vzc2lvbkxvYWRGYWls
dXJlIGZhaWx1cmUpIG11dGFibGUgewogICAgICAgICAgICAgLy8gOC44LjEuIElmIHRoZXJlIGlz
IG5vIGRhdGEgc3RvcmVkIGZvciB0aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9yaWdp
biwgcmVzb2x2ZSBwcm9taXNlIHdpdGggZmFsc2UgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAg
ICAgICAgICAgLy8gOC44LjIuIElmIHRoZSBzdG9yZWQgc2Vzc2lvbidzIHNlc3Npb24gdHlwZSBp
cyBub3QgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgTWVkaWFLZXlTZXNzaW9uIHNlc3Npb24gdHlw
ZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVycm9yLgogICAgICAg
ICAgICAgLy8gOC44LjMuIExldCBzZXNzaW9uIGRhdGEgYmUgdGhlIGRhdGEgc3RvcmVkIGZvciB0
aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9yaWdpbi4gVGhpcyBtdXN0IG5vdCBpbmNs
dWRlIGRhdGEgZnJvbSBvdGhlciBvcmlnaW4ocykgb3IgdGhhdCBpcyBub3QgYXNzb2NpYXRlZCB3
aXRoIGFuIG9yaWdpbi4KQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6
dXBkYXRlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgcmVzcG9uc2UsIFJlZjxEZWZlcnJlZFByb21pc2U+
JgogICAgICAgICAvLyA2LjUuIExldCBzZXNzaW9uIGNsb3NlZCBiZSBmYWxzZS4KICAgICAgICAg
Ly8gNi42LiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBv
YmplY3QncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDYuNy4gVXNlIHRoZSBjZG0g
dG8gZXhlY3V0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT51cGRh
dGVMaWNlbnNlKG1fc2Vzc2lvbklkLCBtX3Nlc3Npb25UeXBlLCAqc2FuaXRpemVkUmVzcG9uc2Us
IFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBzZXNzaW9uV2FzQ2xvc2VkLCBzdGQ6
Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3I+JiYgY2hhbmdlZEtleXMsIHN0
ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIGNoYW5nZWRFeHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPENE
TUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUg
c3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZS0+dXBkYXRlTGljZW5zZSht
X3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgKnNhbml0aXplZFJlc3BvbnNlLCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAo
Ym9vbCBzZXNzaW9uV2FzQ2xvc2VkLCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0
dXNWZWN0b3I+JiYgY2hhbmdlZEtleXMsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIGNoYW5nZWRF
eHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2Us
IENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01MDAsNyAr
NTAwLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OmNsb3NlKFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgewogICAgICAgICAvLyA1LjEuIExldCBjZG0g
YmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRlZCBieSBzZXNzaW9uJ3MgY2RtIGluc3RhbmNl
IHZhbHVlLgogICAgICAgICAvLyA1LjIuIFVzZSBjZG0gdG8gY2xvc2UgdGhlIGtleSBzZXNzaW9u
IGFzc29jaWF0ZWQgd2l0aCBzZXNzaW9uLgotICAgICAgICBtX2luc3RhbmNlLT5jbG9zZVNlc3Np
b24obV9zZXNzaW9uSWQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgbV9pbnN0YW5jZS0+Y2xvc2VTZXNzaW9uKG1fc2Vzc2lvbklkLCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAo
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnJlbW92
ZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgICAgIC8vIDQuMy4gTGV0IG1l
c3NhZ2UgdHlwZSBiZSBudWxsLgogCiAgICAgICAgIC8vIDQuNC4gVXNlIHRoZSBjZG0gdG8gZXhl
Y3V0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT5yZW1vdmVTZXNz
aW9uRGF0YShtX3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgW3RoaXMsIHdlYWtUaGlzID0gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldIChDRE1JbnN0YW5jZTo6S2V5U3RhdHVzVmVjdG9yJiYga2V5cywgc3RkOjpvcHRpb25h
bDxSZWY8U2hhcmVkQnVmZmVyPj4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVl
IHN1Y2NlZWRlZCkgbXV0YWJsZSB7CisgICAgICAgIG1faW5zdGFuY2UtPnJlbW92ZVNlc3Npb25E
YXRhKG1fc2Vzc2lvbklkLCBtX3Nlc3Npb25UeXBlLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoQ0RNSW5zdGFuY2U6Oktl
eVN0YXR1c1ZlY3RvciYmIGtleXMsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYg
bWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgewog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
U2Vzc2lvbi5oCmluZGV4IGVjYzU3YjQ1MGNkYWJmYzU4ZTYwNzQ1MWNhM2EwZTEzOWRiYzBhN2Iu
LjBkMTkwMGUzMWJjN2JkNDkxN2U4MjZiNjEwMzMxZWM1ODhjOTUxMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24u
aApAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBNZWRpYUtleVN0YXR1c01hcDsKIGNsYXNzIE1lZGlh
S2V5czsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAotY2xhc3MgTWVkaWFLZXlTZXNzaW9uIGZpbmFs
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBDRE1JbnN0YW5j
ZUNsaWVudCB7CitjbGFzcyBNZWRpYUtleVNlc3Npb24gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYUtleVNlc3Npb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhS2V5U2Vzc2lv
bj4sIHB1YmxpYyBDRE1JbnN0YW5jZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxN
ZWRpYUtleVNlc3Npb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2Vha1B0cjxN
ZWRpYUtleXM+JiYsIE1lZGlhS2V5U2Vzc2lvblR5cGUsIGJvb2wgdXNlRGlzdGluY3RpdmVJZGVu
dGlmaWVyLCBSZWY8Q0RNPiYmLCBSZWY8Q0RNSW5zdGFuY2U+JiYpOwogICAgIHZpcnR1YWwgfk1l
ZGlhS2V5U2Vzc2lvbigpOwpAQCAtMTE3LDcgKzExNyw2IEBAIHByaXZhdGU6CiAgICAgZG91Ymxl
IG1fZmlyc3REZWNyeXB0VGltZSB7IDAgfTsKICAgICBkb3VibGUgbV9sYXRlc3REZWNyeXB0VGlt
ZSB7IDAgfTsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZjxTaGFyZWRCdWZmZXI+LCBNZWRpYUtl
eVN0YXR1cz4+IG1fc3RhdHVzZXM7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFLZXlTZXNzaW9u
PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCmlu
ZGV4IGJlZjM2YTMyZGUxZmViNWNhYTQwMTg3YjZlMTU2MTgxNWI3MWYzY2IuLjM5ZmJiODBlOTc2
MTQ2Y2I3OGE2MjRmNzFiMmFlOWYwNWJhYjJhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKQEAgLTY3LDcgKzY3LDcgQEAg
RXhjZXB0aW9uT3I8UmVmPE1lZGlhS2V5U2Vzc2lvbj4+IE1lZGlhS2V5czo6Y3JlYXRlU2Vzc2lv
bihTY3JpcHRFeGVjdXRpb25Db250ZXgKICAgICAvLyAzLiBMZXQgc2Vzc2lvbiBiZSBhIG5ldyBN
ZWRpYUtleVNlc3Npb24gb2JqZWN0LCBhbmQgaW5pdGlhbGl6ZSBpdCBhcyBmb2xsb3dzOgogICAg
IC8vIE5PVEU6IENvbnRpbnVlZCBpbiBNZWRpYUtleVNlc3Npb24uCiAgICAgLy8gNC4gUmV0dXJu
IHNlc3Npb24uCi0gICAgYXV0byBzZXNzaW9uID0gTWVkaWFLZXlTZXNzaW9uOjpjcmVhdGUoY29u
dGV4dCwgbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgc2Vzc2lvblR5cGUs
IG1fdXNlRGlzdGluY3RpdmVJZGVudGlmaWVyLCBtX2ltcGxlbWVudGF0aW9uLmNvcHlSZWYoKSwg
bV9pbnN0YW5jZS5jb3B5UmVmKCkpOworICAgIGF1dG8gc2Vzc2lvbiA9IE1lZGlhS2V5U2Vzc2lv
bjo6Y3JlYXRlKGNvbnRleHQsIG1ha2VXZWFrUHRyKCp0aGlzKSwgc2Vzc2lvblR5cGUsIG1fdXNl
RGlzdGluY3RpdmVJZGVudGlmaWVyLCBtX2ltcGxlbWVudGF0aW9uLmNvcHlSZWYoKSwgbV9pbnN0
YW5jZS5jb3B5UmVmKCkpOwogICAgIG1fc2Vzc2lvbnMuYXBwZW5kKHNlc3Npb24uY29weVJlZigp
KTsKICAgICByZXR1cm4gV1RGTW92ZShzZXNzaW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oCmluZGV4IDczYzlmYjJhYTdkM2Zk
Zjk0MjRhMTVhMjY1Zjc4ZTY3ZGJmYTM1N2YuLjkxNDYxNGRlNzE5ZjM3NTMwN2JjYjhiN2Q4Y2U1
YjMwYTAwNjcxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleXMuaApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBDRE1JbnN0YW5jZTsKIGNs
YXNzIEJ1ZmZlclNvdXJjZTsKIGNsYXNzIE1lZGlhS2V5U2Vzc2lvbjsKIAotY2xhc3MgTWVkaWFL
ZXlzIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlzPiB7CitjbGFzcyBNZWRpYUtleXMgOiBw
dWJsaWMgUmVmQ291bnRlZDxNZWRpYUtleXM+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFL
ZXlzPiB7CiBwdWJsaWM6CiAgICAgdXNpbmcgS2V5U2Vzc2lvblR5cGUgPSBNZWRpYUtleVNlc3Np
b25UeXBlOwogCkBAIC03Nyw3ICs3Nyw2IEBAIHByb3RlY3RlZDoKICAgICBSZWY8Q0RNPiBtX2lt
cGxlbWVudGF0aW9uOwogICAgIFJlZjxDRE1JbnN0YW5jZT4gbV9pbnN0YW5jZTsKIAotICAgIFdl
YWtQdHJGYWN0b3J5PE1lZGlhS2V5cz4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBWZWN0b3I8UmVm
PE1lZGlhS2V5U2Vzc2lvbj4+IG1fc2Vzc2lvbnM7CiAgICAgVmVjdG9yPENETUNsaWVudCo+IG1f
Y2RtQ2xpZW50czsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Rhc2tRdWV1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCmlu
ZGV4IGIyMWEwZDU3ZDZkZGJhNzVhYzBlNWU1MTJiMWY3OThjMzg4Y2QxMzcuLjNkMzBlYzdhNTlm
MjQyYzQ1NmQ1NGM1NzllMmIxOTU5OTBmNDFhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lk
IEdhbWVwYWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1l
cGFkJiBwbGF0Zm9ybUdhbWVwYQogewogICAgIFZlY3RvcjxXZWFrUHRyPERPTVdpbmRvdz4+IHdl
YWtXaW5kb3dzOwogICAgIGZvciAoYXV0byogZG9tV2luZG93IDogbV9kb21XaW5kb3dzKQotICAg
ICAgICB3ZWFrV2luZG93cy5hcHBlbmQoZG9tV2luZG93LT5jcmVhdGVXZWFrUHRyKCkpOworICAg
ICAgICB3ZWFrV2luZG93cy5hcHBlbmQobWFrZVdlYWtQdHIoKmRvbVdpbmRvdykpOwogCiAgICAg
SGFzaFNldDxOYXZpZ2F0b3JHYW1lcGFkKj4gbm90aWZpZWROYXZpZ2F0b3JzOwogCkBAIC0xNDQs
NyArMTQ0LDcgQEAgdm9pZCBHYW1lcGFkTWFuYWdlcjo6bWFrZUdhbWVwYWRWaXNpYmxlKFBsYXRm
b3JtR2FtZXBhZCYgcGxhdGZvcm1HYW1lcGFkLCBIYXNoU2UKIAogICAgIFZlY3RvcjxXZWFrUHRy
PERPTVdpbmRvdz4+IHdlYWtXaW5kb3dzOwogICAgIGZvciAoYXV0byogZG9tV2luZG93IDogbV9k
b21XaW5kb3dzKQotICAgICAgICB3ZWFrV2luZG93cy5hcHBlbmQoZG9tV2luZG93LT5jcmVhdGVX
ZWFrUHRyKCkpOworICAgICAgICB3ZWFrV2luZG93cy5hcHBlbmQobWFrZVdlYWtQdHIoKmRvbVdp
bmRvdykpOwogCiAgICAgZm9yIChhdXRvJiB3aW5kb3cgOiB3ZWFrV2luZG93cykgewogICAgICAg
ICAvLyBFdmVudCBkaXNwYXRjaCBtaWdodCBoYXZlIG1hZGUgdGhpcyB3aW5kb3cgZ28gYXdheS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcAppbmRleCAwZDgyZmMzNTRlOGExMTVmYThjMjczMzUzZTdlN2Q0MWJjNGQzNjg0Li5hZjNi
ZjEzMjI5NDk3YzA5OTU1NDYyNmNhMjM4OWVjYjZhY2ExYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC01MCw3ICs1
MCw3IEBAIGlubGluZSBNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCiAgICAgLCBt
X3NjaGVkdWxlZEV2ZW50VGltZXIoKnRoaXMsICZNZWRpYURldmljZXM6OnNjaGVkdWxlZEV2ZW50
VGltZXJGaXJlZCkKIHsKLSAgICBtX2RldmljZUNoYW5nZWRUb2tlbiA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoW3dlYWtU
aGlzID0gY3JlYXRlV2Vha1B0cigpLCB0aGlzXSgpIHsKKyAgICBtX2RldmljZUNoYW5nZWRUb2tl
biA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmFkZERldmljZXNDaGFu
Z2VkT2JzZXJ2ZXIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXSgpIHsKIAog
ICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggMDRjYzYw
NTliYTM2ZDZmYmJkY2ExZmY3Yzg2NzkxYjMxNTRiYmEzMC4uYWUzNWQ1ZTk0ZDBiYTc2OTEwMTU0
ZThkYzEwZWUzZGE4ZmY4NjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIE1lZGlhU3Ry
ZWFtOwogCiBzdHJ1Y3QgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzOwogCi1jbGFzcyBN
ZWRpYURldmljZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYURldmljZXM+LCBwdWJsaWMgQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
IHsKK2NsYXNzIE1lZGlhRGV2aWNlcyA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlcz4s
IHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYURldmljZXM+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPE1lZGlhRGV2aWNlcz4gY3JlYXRlKERvY3VtZW50Jik7CiAKQEAg
LTkwLDExICs5MCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJy
aWRlIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRl
cmVmKCk7IH0KIAotICAgIFdlYWtQdHI8TWVkaWFEZXZpY2VzPiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAgICAgVGlt
ZXIgbV9zY2hlZHVsZWRFdmVudFRpbWVyOwogICAgIHN0ZDo6b3B0aW9uYWw8UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6RGV2aWNlc0NoYW5nZWRPYnNlcnZlclRva2VuPiBtX2RldmljZUNoYW5n
ZWRUb2tlbjsKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYURldmljZXM+IG1fd2Vha1B0ckZhY3Rv
cnk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCA4Njc2
OTQyNWY3NWVkNWQ1MWE2ZGU3MjFhYjc1ZDI4ZWU1NjE4NTEyLi5iMmE4ZjBiMTcwODExNmEwOGMz
MjFlNzkzMDZjMTZhNDNmYmQxNTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBA
QCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRp
b25hbDxNZWRpYVRyYWNrQ29uc3RyYWludAogewogICAgIG1fcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSk7CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8g
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgYXV0byBmYWlsdXJlSGFuZGxlciA9
IFt3ZWFrVGhpc10gKGNvbnN0IFN0cmluZyYgZmFpbGVkQ29uc3RyYWludCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUaGlzLT5tX3Byb21p
c2UpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IGRhMWIxYzA2MDdiODdhMTk5
YzYzM2EyOWJkYzRkNDRkY2U3Mjc0ODMuLjUxNWFjYzE0MmU3ZDJkZTNjNmNiZTlhYzkzZTQ1OTRl
YmZiYzJiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIE1lZGlhU3RyZWFt
VHJhY2sgOgogICAgIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtVHJhY2s+LAogICAgIHB1
YmxpYyBBY3RpdmVET01PYmplY3QsCiAgICAgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEsCisgICAgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhU3RyZWFtVHJhY2s+LAogICAgIHBy
aXZhdGUgTWVkaWFQcm9kdWNlciwKICAgICBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpPYnNlcnZlciB7CiBwdWJsaWM6CkBAIC0xNjksMTQgKzE3MCwxMSBAQCBwcml2YXRlOgogICAg
IHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5h
bDsKICAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KSBmaW5hbDsKIAotICAgIFdlYWtQdHI8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlV2Vha1B0cigp
IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KLQogICAg
IFZlY3RvcjxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4gbV9wcml2YXRlOwogCiAgICAgTWVkaWFUcmFja0NvbnN0cmFpbnRzIG1fY29uc3Ry
YWludHM7CiAgICAgc3RkOjpvcHRpb25hbDxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fcHJv
bWlzZTsKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVN0cmVhbVRyYWNrPiBtX3dlYWtQdHJGYWN0
b3J5OwogICAgIEdlbmVyaWNUYXNrUXVldWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV90YXNr
UXVldWU7CiAKICAgICBib29sIG1fZW5kZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLmgK
aW5kZXggZTE5YjVkOWMyYmY1YWNlZTIyMjc0OWE2NmUyMTMwNDhlZDhmYmZkYS4uMmFlNDAzNWU5
ODJlMmI2ZmQ4MzA1ODk5MTIwMTc2MWFjMmUxMjI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2NvY29hL0xvY2FsQXV0aGVudGljYXRvci5oCkBA
IC00NCw3ICs0NCw3IEBAIHVzaW5nIEV4Y2VwdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChj
b25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+OwogdHlwZWRlZiB2b2lkICheQ29tcGxldGlv
bkJsb2NrKShTZWNLZXlSZWYgX051bGxhYmxlIHJlZmVyZW5jZUtleSwgTlNBcnJheSAqIF9OdWxs
YWJsZSBjZXJ0aWZpY2F0ZXMsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpOwogCiAvLyBGSVhN
RSgxODI3NjkpOiBMb2NhbEF1dGhlbnRpY2F0b3Igc2hvdWxkIGJlbG9uZ3MgdG8gV2ViS2l0LiBI
b3dldmVyLCB3ZSBuZWVkIHVuaXQgdGVzdHMuCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBMb2NhbEF1
dGhlbnRpY2F0b3IgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTG9jYWxBdXRoZW50aWNhdG9yIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPExvY2FsQXV0aGVudGljYXRvcj4gewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKExvY2FsQXV0aGVudGljYXRvcik7CiBwdWJsaWM6CiAgICAgTG9jYWxBdXRo
ZW50aWNhdG9yKCk7CkBAIC01Nyw4ICs1Nyw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICAv
LyBBcHBsZSBBdHRlc3RhdGlvbiBpcyBtb3ZlZCBpbnRvIHRoaXMgdmlydHVhbCBtZXRob2Qgc3Vj
aCB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZWQgYnkgc2VsZiBhdHRlc3RhdGlvbiBmb3IgdGVzdGlu
Zy4KICAgICB2aXJ0dWFsIHZvaWQgaXNzdWVDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcm
IHJwSWQsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFz
aCwgQ29tcGxldGlvbkJsb2NrIF9Ob25udWxsKSBjb25zdDsKLQotICAgIFdlYWtQdHJGYWN0b3J5
PExvY2FsQXV0aGVudGljYXRvcj4gbV93ZWFrRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY29j
b2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggNzRhMTlhMzdhZDU4MGM3YzQyNjk4
Zjk5NjFiZjQyYmMwNTE0NTBmMi4uM2E3NDBlZDI5NWQxNDY5MzY5MDc5ODA5NDYxODQ5ZDI1NzJh
OGQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jb2NvYS9M
b2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9jb2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIExv
Y2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBo
YXNoLCBjb25zdCBQdWJsaQogCiAgICAgTlNTdHJpbmcgKnJlYXNvbiA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiQWxsb3cgJUAgdG8gY3JlYXRlIGEgcHVibGljIGtleSBjcmVkZW50aWFs
IGZvciAlQCIsIChpZClvcHRpb25zLnJwLmlkLCAoaWQpb3B0aW9ucy51c2VyLm5hbWVdOwogICAg
IC8vIEZJWE1FKDE4MzUzNCk6IE9wdGltaXplIHRoZSBmb2xsb3dpbmcgbmVzdGVkIGNhbGxiYWNr
cyBhbmQgdGhyZWFkaW5nLgotICAgIFtjb250ZXh0IGV2YWx1YXRlUG9saWN5OkxBUG9saWN5RGV2
aWNlT3duZXJBdXRoZW50aWNhdGlvbldpdGhCaW9tZXRyaWNzIGxvY2FsaXplZFJlYXNvbjpyZWFz
b24gcmVwbHk6QmxvY2tQdHI8dm9pZChCT09MLCBOU0Vycm9yICopPjo6ZnJvbUNhbGxhYmxlKFt3
ZWFrVGhpcyA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayksIGV4Y2VwdGlvbkNhbGxiYWNrID0gV1RGTW92ZShleGNlcHRpb25D
YWxsYmFjayksIG9wdGlvbnMgPSBjcm9zc1RocmVhZENvcHkob3B0aW9ucyksIGhhc2hdIChCT09M
IHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICBbY29udGV4dCBldmFsdWF0
ZVBvbGljeTpMQVBvbGljeURldmljZU93bmVyQXV0aGVudGljYXRpb25XaXRoQmlvbWV0cmljcyBs
b2NhbGl6ZWRSZWFzb246cmVhc29uIHJlcGx5OkJsb2NrUHRyPHZvaWQoQk9PTCwgTlNFcnJvciAq
KT46OmZyb21DYWxsYWJsZShbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayksIGV4Y2VwdGlvbkNhbGxiYWNrID0gV1RGTW92ZShleGNlcHRp
b25DYWxsYmFjayksIG9wdGlvbnMgPSBjcm9zc1RocmVhZENvcHkob3B0aW9ucyksIGhhc2hdIChC
T09MIHN1Y2Nlc3MsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CiAgICAgICAgIGlmICghc3VjY2VzcyB8fCBlcnJvcikgewogICAgICAg
ICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBhdXRoZW50aWNhdGUgd2l0aCBiaW9tZXRyaWNzOiAl
QCIsIGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21h
Yy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3Rl
bS9tYWMvU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oCmluZGV4IDkyMjZlMTBkZDlkNzNkOWY1Y2I2
Y2E5MGE2MDIwNmE1ZTRlMTFiMWEuLjUyNTFiYjdmNmJjY2YwZWZiYjBmNDM0ODQ3MWYzMjM2MGEx
YjUxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0
ZW1TbGVlcExpc3RlbmVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
bWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3Bh
Y2UgUEFMIHsKIAotY2xhc3MgU3lzdGVtU2xlZXBMaXN0ZW5lck1hYyA6IHB1YmxpYyBTeXN0ZW1T
bGVlcExpc3RlbmVyIHsKK2NsYXNzIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMgOiBwdWJsaWMgU3lz
dGVtU2xlZXBMaXN0ZW5lciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFN5c3RlbVNsZWVwTGlzdGVu
ZXJNYWM+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHByb3RlY3RlZDoKICAgICBT
eXN0ZW1TbGVlcExpc3RlbmVyTWFjKENsaWVudCYpOwpAQCAtNDAsNyArNDAsNiBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPFN5c3RlbVNsZWVwTGlzdGVuZXI+IFN5
c3RlbVNsZWVwTGlzdGVuZXI6OmNyZWF0ZShDbGllbnQmKTsKIAotICAgIFdlYWtQdHJGYWN0b3J5
PFN5c3RlbVNsZWVwTGlzdGVuZXJNYWM+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgaWQgbV9zbGVl
cE9ic2VydmVyOwogICAgIGlkIG1fd2FrZU9ic2VydmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMu
bW0KaW5kZXggNmQ1M2E3YmZkMGQ4ZjdhY2VkMTJlN2NkZWYyMTZlMjhjZDI5ZmRmZi4uMTdmNjQ2
YzkzZjlhMGIyMzJmYTg3MjU3Yzk1MzViNDA5ODgwMzBkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMu
bW0KQEAgLTQ2LDcgKzQ2LDcgQEAgU3lzdGVtU2xlZXBMaXN0ZW5lck1hYzo6U3lzdGVtU2xlZXBM
aXN0ZW5lck1hYyhDbGllbnQmIGNsaWVudCkKICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqY2Vu
dGVyID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNhdGlvbkNlbnRlcl07
CiAgICAgTlNPcGVyYXRpb25RdWV1ZSAqcXVldWUgPSBbTlNPcGVyYXRpb25RdWV1ZSBtYWluUXVl
dWVdOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKIAogICAg
IG1fc2xlZXBPYnNlcnZlciA9IFtjZW50ZXIgYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TV29ya3NwYWNl
V2lsbFNsZWVwTm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVldWU6cXVldWUgdXNpbmdCbG9jazpe
KE5TTm90aWZpY2F0aW9uICopIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNd
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggODFiYjViZWIxOTBiNjBjMGRlZWJmODNiZjVkODAwOWM0
YjUyNGVkOC4uNDhhZjY1YWQwZDE0ZDk4ODZkZTgzYjRlNmIzNTRlMTY1ZjZjYTMyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFZp
c2libGVTZWxlY3Rpb247CiBjbGFzcyBXaWRnZXQ7CiAgICAgCi1jbGFzcyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0IDogcHVibGljIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0IHsKK2NsYXNzIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGUoUmVu
ZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpOwpA
QCAtMjAwLDggKzIwMCw2IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFs
dWVGb3JNU0FBKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgcGFzc3dvcmRGaWVsZFZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgCi0gICAgV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqKTsKQEAgLTIyMCw3ICsyMTgsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgV2Vha1B0cjxSZW5kZXJPYmplY3Q+IG1fcmVuZGVyZXI7CiAKIHByaXZhdGU6
Ci0gICAgV2Vha1B0ckZhY3Rvcnk8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4gbV93ZWFrUHRy
RmFjdG9yeTsKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGFyaWFMaXN0Ym94U2VsZWN0ZWRDaGlsZHJl
bihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKTsKICAgICB2b2lkIGFyaWFMaXN0Ym94Vmlz
aWJsZUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcAppbmRl
eCBmMTRkZDY3OGQ0NTZjODVjNGNkZGQwMzIwMGVkMzk5YmVkMjc3OGZjLi4zMjM2YWYwMjIyNzMy
YTVkMjVkNWJhODQyNTFkNTFjMDgxYTAzZGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcApAQCAtNDUsMTIgKzQ1LDkg
QEAgUmVmPEFjY2Vzc2liaWxpdHlTVkdSb290PiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6Y3JlYXRl
KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNz
aWJpbGl0eVNWR1Jvb3QocmVuZGVyZXIpKTsKIH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5U1ZHUm9v
dDo6c2V0UGFyZW50KEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgKnBhcmVudCkKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVNWR1Jvb3Q6OnNldFBhcmVudChBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KiBw
YXJlbnQpCiB7Ci0gICAgaWYgKHBhcmVudCkKLSAgICAgICAgbV9wYXJlbnQgPSBwYXJlbnQtPmNy
ZWF0ZVdlYWtQdHIoKTsKLSAgICBlbHNlCi0gICAgICAgIG1fcGFyZW50ID0gbnVsbHB0cjsKKyAg
ICBtX3BhcmVudCA9IG1ha2VXZWFrUHRyKHBhcmVudCk7CiB9CiAgICAgCiBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKaW5kZXggZmM2YWExMjc3MjU3ZGExMzBmMjQ0
NWFhMWI2NTM0MTdiMTA5N2E5YS4uYTBkMGQ5YWI5NDg5MDI1ODYxYjMwYWY1NjQzODE2YzUwYWE4
MjcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKQEAgLTU0Myw3ICs1
NDMsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6ZW5jcnlwdChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUs
IEFsZ29yaXRobUlkZW50aWZpZXImJiBhbGdvcml0aAogCiAgICAgYXV0byBpbmRleCA9IHByb21p
c2UucHRyKCk7CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3ZlKHByb21p
c2UpKTsKLSAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVy
ID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRs
ZUNyeXB0b1dlYWtQb2ludGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGNpcGhlclRleHQpIG11
dGFibGUgewogICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3Vi
dGxlQ3J5cHRvV2Vha1BvaW50ZXIpKQogICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJy
YXlCdWZmZXIocHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBjaXBoZXJUZXh0LmRhdGEoKSwgY2lw
aGVyVGV4dC5zaXplKCkpOwpAQCAtNTgxLDcgKzU4MSw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjpk
ZWNyeXB0KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgQWxnb3JpdGhtSWRlbnRpZmllciYmIGFsZ29y
aXRoCiAKICAgICBhdXRvIGluZGV4ID0gcHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9t
aXNlcy5hZGQoaW5kZXgsIFdURk1vdmUocHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRv
V2Vha1BvaW50ZXIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAg
IGF1dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAg
YXV0byBjYWxsYmFjayA9IFtpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXJdKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgcGxhaW5UZXh0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8gcHJv
bWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSkKICAgICAg
ICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHByb21pc2UucmVsZWFzZU5vbk51
bGwoKSwgcGxhaW5UZXh0LmRhdGEoKSwgcGxhaW5UZXh0LnNpemUoKSk7CkBAIC02MTksNyArNjE5
LDcgQEAgdm9pZCBTdWJ0bGVDcnlwdG86OnNpZ24oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBBbGdv
cml0aG1JZGVudGlmaWVyJiYgYWxnb3JpdGhtSWQKIAogICAgIGF1dG8gaW5kZXggPSBwcm9taXNl
LnB0cigpOwogICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChpbmRleCwgV1RGTW92ZShwcm9taXNl
KSk7Ci0gICAgYXV0byBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciA9IG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyk7CisgICAgYXV0byBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciA9
IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVD
cnlwdG9XZWFrUG9pbnRlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBzaWduYXR1cmUpIG11dGFi
bGUgewogICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxl
Q3J5cHRvV2Vha1BvaW50ZXIpKQogICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlC
dWZmZXIocHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBzaWduYXR1cmUuZGF0YSgpLCBzaWduYXR1
cmUuc2l6ZSgpKTsKQEAgLTY1OCw3ICs2NTgsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6dmVyaWZ5
KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgQWxnb3JpdGhtSWRlbnRpZmllciYmIGFsZ29yaXRobQog
CiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMu
YWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQ
b2ludGVyID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRv
IHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGF1dG8g
Y2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyXShib29sIHJlc3VsdCkg
bXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBz
dWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCiAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElE
TEJvb2xlYW4+KHJlc3VsdCk7CkBAIC02ODYsNyArNjg2LDcgQEAgdm9pZCBTdWJ0bGVDcnlwdG86
OmRpZ2VzdChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEFsZ29yaXRobUlkZW50aWZpZXImJiBhbGdv
cml0aG0KIAogICAgIGF1dG8gaW5kZXggPSBwcm9taXNlLnB0cigpOwogICAgIG1fcGVuZGluZ1By
b21pc2VzLmFkZChpbmRleCwgV1RGTW92ZShwcm9taXNlKSk7Ci0gICAgYXV0byBzdWJ0bGVDcnlw
dG9XZWFrUG9pbnRlciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7Cisg
ICAgYXV0byBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAg
ICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcl0oY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBkaWdlc3QpIG11dGFibGUgewogICAgICAgICBpZiAoYXV0byBwcm9t
aXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIpKQogICAgICAg
ICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIocHJvbWlzZS5yZWxlYXNlTm9uTnVs
bCgpLCBkaWdlc3QuZGF0YSgpLCBkaWdlc3Quc2l6ZSgpKTsKQEAgLTcxNCw3ICs3MTQsNyBAQCB2
b2lkIFN1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBBbGdv
cml0aG1JZGVudGlmaWVyJiYgYWxnbwogCiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7
CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAg
ICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdl
YWtQdHIoKnRoaXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dl
YWtQb2ludGVyXShLZXlPcktleVBhaXImJiBrZXlPcktleVBhaXIpIG11dGFibGUgewogICAgICAg
ICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1Bv
aW50ZXIpKSB7CiAgICAgICAgICAgICBXVEY6OnN3aXRjaE9uKGtleU9yS2V5UGFpciwKQEAgLTc5
NSw3ICs3OTUsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6ZGVyaXZlS2V5KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSwgQWxnb3JpdGhtSWRlbnRpZmllciYmIGFsZ29yaQogCiAgICAgYXV0byBpbmRleCA9
IHByb21pc2UucHRyKCk7CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3Zl
KHByb21pc2UpKTsKLSAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQ
b2ludGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgs
IHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyLCBpbXBvcnRBbGdvcml0aG0sIGltcG9ydFBhcmFtcyA9
IFdURk1vdmUoaW1wb3J0UGFyYW1zKSwgZXh0cmFjdGFibGUsIGtleVVzYWdlc0JpdG1hcF0oY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBkZXJpdmVkS2V5KSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklY
TUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzOTUKICAgICAg
ICAgS2V5RGF0YSBkYXRhID0gZGVyaXZlZEtleTsKQEAgLTg0Niw3ICs4NDYsNyBAQCB2b2lkIFN1
YnRsZUNyeXB0bzo6ZGVyaXZlQml0cyhKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEFsZ29yaXRobUlk
ZW50aWZpZXImJiBhbGdvcgogCiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7CiAgICAg
bV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICBhdXRv
IHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIo
KnRoaXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2lu
dGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGRlcml2ZWRLZXkpIG11dGFibGUgewogICAgICAg
ICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1Bv
aW50ZXIpKQogICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIocHJvbWlz
ZS5yZWxlYXNlTm9uTnVsbCgpLCBkZXJpdmVkS2V5LmRhdGEoKSwgZGVyaXZlZEtleS5zaXplKCkp
OwpAQCAtODgxLDcgKzg4MSw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjppbXBvcnRLZXkoSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBLZXlGb3JtYXQgZm9ybWF0LCBLZXlEYXRhVmFyCiAKICAgICBhdXRv
IGluZGV4ID0gcHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQoaW5kZXgs
IFdURk1vdmUocHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAgIGF1dG8gc3VidGxlQ3J5
cHRvV2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgYXV0byBjYWxsYmFjayA9
IFtpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXJdKENyeXB0b0tleSYga2V5KSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNy
eXB0b1dlYWtQb2ludGVyKSkgewogICAgICAgICAgICAgaWYgKChrZXkudHlwZSgpID09IENyeXB0
b0tleVR5cGU6OlByaXZhdGUgfHwga2V5LnR5cGUoKSA9PSBDcnlwdG9LZXlUeXBlOjpTZWNyZXQp
ICYmICFrZXkudXNhZ2VzQml0bWFwKCkpIHsKQEAgLTkxOCw3ICs5MTgsNyBAQCB2b2lkIFN1YnRs
ZUNyeXB0bzo6ZXhwb3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b0tleSYga2V5LCBSZWY8
RGVmZXJyZWRQcm9taQogCiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7CiAgICAgbV9w
ZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICBhdXRvIHN1
YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0
aGlzKTsKKyAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIoKnRo
aXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVy
XShTdWJ0bGVDcnlwdG86OktleUZvcm1hdCBmb3JtYXQsIEtleURhdGEmJiBrZXkpIG11dGFibGUg
ewogICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5
cHRvV2Vha1BvaW50ZXIpKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewpAQCAtOTky
LDcgKzk5Miw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjp3cmFwS2V5KEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgS2V5Rm9ybWF0IGZvcm1hdCwgQ3J5cHRvS2V5JiBrCiAKICAgICBhdXRvIGluZGV4ID0g
cHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQoaW5kZXgsIFdURk1vdmUo
cHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vha1Bv
aW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwg
c3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIsIHdyYXBBbGdvcml0aG0sIHdyYXBwaW5nS2V5ID0gbWFr
ZVJlZih3cmFwcGluZ0tleSksIHdyYXBQYXJhbXMgPSBXVEZNb3ZlKHdyYXBQYXJhbXMpLCBpc0Vu
Y3J5cHRpb24sIGNvbnRleHQsIHdvcmtRdWV1ZSA9IG1fd29ya1F1ZXVlLmNvcHlSZWYoKV0oU3Vi
dGxlQ3J5cHRvOjpLZXlGb3JtYXQgZm9ybWF0LCBLZXlEYXRhJiYga2V5KSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSB7CiAgICAgICAgICAgICBpZiAoYXV0
byBwcm9taXNlID0gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXItPm1fcGVuZGluZ1Byb21pc2VzLmdl
dChpbmRleCkpIHsKQEAgLTEwOTUsNyArMTA5NSw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjp1bndy
YXBLZXkoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBLZXlGb3JtYXQgZm9ybWF0LCBCdWZmZXJTb3Vy
CiAKICAgICBhdXRvIGluZGV4ID0gcHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9taXNl
cy5hZGQoaW5kZXgsIFdURk1vdmUocHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vh
a1BvaW50ZXIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAgIGF1
dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgYXV0
byBjYWxsYmFjayA9IFtpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIsIGZvcm1hdCwgaW1w
b3J0QWxnb3JpdGhtLCB1bndyYXBwZWRLZXlBbGdvcml0aG0gPSBXVEZNb3ZlKHVud3JhcHBlZEtl
eUFsZ29yaXRobSksIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXNCaXRtYXBdKGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgYnl0ZXMpIG11dGFibGUgewogICAgICAgICBpZiAoc3VidGxlQ3J5cHRvV2Vha1Bv
aW50ZXIpIHsKICAgICAgICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBzdWJ0bGVDcnlwdG9XZWFr
UG9pbnRlci0+bV9wZW5kaW5nUHJvbWlzZXMuZ2V0KGluZGV4KSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L1N1YnRsZUNyeXB0by5oCmluZGV4IGNhZjQ4Zjk4OWZhYjc3YzJkNGJjZWUyNGI4Y2JiN2VkMTc4
ZDZjYmEuLjA0ZTYwM2VmOTY1NDU4OGY3NmVmOWM4MjAyNjI2NGUzNjdhYjJmMTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgRGVmZXJy
ZWRQcm9taXNlOwogCiBlbnVtIGNsYXNzIENyeXB0b0tleVVzYWdlOwogCi1jbGFzcyBTdWJ0bGVD
cnlwdG8gOiBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3Vu
dGVkPFN1YnRsZUNyeXB0bz4geworY2xhc3MgU3VidGxlQ3J5cHRvIDogcHVibGljIENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxTdWJ0bGVDcnlwdG8+LCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U3VidGxlQ3J5cHRvPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxTdWJ0bGVDcnlwdG8+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFN1YnRsZUNyeXB0byhjb250ZXh0KSk7IH0KICAgICB+U3Vi
dGxlQ3J5cHRvKCk7CkBAIC04Miw3ICs4Miw2IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V29ya1F1
ZXVlPiBtX3dvcmtRdWV1ZTsKICAgICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJlZjxEZWZl
cnJlZFByb21pc2U+PiBtX3BlbmRpbmdQcm9taXNlczsKLSAgICBXZWFrUHRyRmFjdG9yeTxTdWJ0
bGVDcnlwdG8+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlLmNwcAppbmRleCA5MGExODA4Yjg5OWJkOTJmYzY4YjczNDU4MzFkMDc0OTM3NmQ4NDBhLi5m
N2Q3NzVmZmJiYTc2YjgwY2VlZTcxZGVlYzVjZjRiNjdlMmZmMzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZS5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgQ1NTRm9udEZhY2U6OkNTU0ZvbnRGYWNl
KENTU0ZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9yLCBTdHlsZVJ1bGVGb250RmFjZSogY3NzQ28K
ICAgICA6IG1fdGltZW91dFRpbWVyKCp0aGlzLCAmQ1NTRm9udEZhY2U6OnRpbWVvdXRGaXJlZCkK
ICAgICAsIG1fZm9udFNlbGVjdG9yKGZvbnRTZWxlY3RvcikKICAgICAsIG1fY3NzQ29ubmVjdGlv
bihjc3NDb25uZWN0aW9uKQotICAgICwgbV93cmFwcGVyKHdyYXBwZXIgPyB3cmFwcGVyLT5jcmVh
dGVXZWFrUHRyKCkgOiBXZWFrUHRyPEZvbnRGYWNlPigpKQorICAgICwgbV93cmFwcGVyKG1ha2VX
ZWFrUHRyKHdyYXBwZXIpKQogICAgICwgbV9pc0xvY2FsRmFsbGJhY2soaXNMb2NhbEZhbGxiYWNr
KQogICAgICwgbV9tYXlCZVB1cmdlZCghd3JhcHBlcikKIHsKQEAgLTU2MywxNCArNTYzLDE0IEBA
IFJlZjxGb250RmFjZT4gQ1NTRm9udEZhY2U6OndyYXBwZXIoKQogICAgICAgICByZXR1cm4gKm1f
d3JhcHBlci5nZXQoKTsKIAogICAgIGF1dG8gd3JhcHBlciA9IEZvbnRGYWNlOjpjcmVhdGUoKnRo
aXMpOwotICAgIG1fd3JhcHBlciA9IHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBtX3dy
YXBwZXIgPSBtYWtlV2Vha1B0cih3cmFwcGVyLmdldCgpKTsKICAgICBpbml0aWFsaXplV3JhcHBl
cigpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCiB2b2lkIENTU0ZvbnRGYWNlOjpzZXRXcmFw
cGVyKEZvbnRGYWNlJiBuZXdXcmFwcGVyKQogewotICAgIG1fd3JhcHBlciA9IG5ld1dyYXBwZXIu
Y3JlYXRlV2Vha1B0cigpOworICAgIG1fd3JhcHBlciA9IG1ha2VXZWFrUHRyKG5ld1dyYXBwZXIp
OwogICAgIGluaXRpYWxpemVXcmFwcGVyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmgKaW5kZXggNzdlMmUzNmM2OTI0MTc1ZTY5ODcyNzE1ZDJmMGRhZDhm
MGQ1MmRkNi4uMTZiY2E5NmQwNjg3ZmJjY2IyYzdhMGI1MThhMmY4MWVhMGU2NWNmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKQEAgLTM2LDcgKzM2LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZSA6IHB1
YmxpYyBSZWZDb3VudGVkPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiB7CitjbGFzcyBEZXByZWNhdGVk
Q1NTT01WYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiB7CiBwdWJsaWM6CiAgICAg
Ly8gRXhhY3RseSBtYXRjaCB0aGUgSURMLiBObyByZWFzb24gdG8gYWRkIGFueXRoaW5nIGlmIGl0
J3Mgbm90IGluIHRoZSBJREwuCiAgICAgZW51bSBUeXBlIHsKQEAgLTY1LDggKzY1LDYgQEAgcHVi
bGljOgogCiAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgb3duZXIoKSBjb25zdCB7IHJldHVybiBt
X293bmVyOyB9CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxEZXByZWNhdGVkQ1NTT01WYWx1ZT4mIHdl
YWtQdHJGYWN0b3J5KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeTsgfQotCiBwcm90ZWN0ZWQ6
CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBDbGFzc1R5cGVCaXRzID0gMjsKICAgICBlbnVtIERl
cHJlY2F0ZWRDbGFzc1R5cGUgewpAQCAtOTUsNyArOTMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5z
aWduZWQgbV9jbGFzc1R5cGUgOiBDbGFzc1R5cGVCaXRzOyAvLyBDbGFzc1R5cGUKICAgICAKICAg
ICBSZWY8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gbV9vd25lcjsKLSAgICBXZWFrUHRyRmFjdG9yeTxE
ZXByZWNhdGVkQ1NTT01WYWx1ZT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIGNsYXNzIERlcHJl
Y2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZSA6IHB1YmxpYyBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRleCA1ODFmNWU4YzllNWFhMTEzMGFjYjZmYmM4ODJhMTM0
YWE1YmFkYTU0Li4xZmZmYjE3NWRlNDI1ZTIxMTE1MzA1NjAyNjhhODFjMjM3MzNkMWE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250RmFjZS5jcHAKQEAgLTE0MiwxMSArMTQyLDYgQEAgRm9udEZhY2U6On5Gb250
RmFjZSgpCiAgICAgbV9iYWNraW5nLT5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCi1XZWFrUHRy
PEZvbnRGYWNlPiBGb250RmFjZTo6Y3JlYXRlV2Vha1B0cigpCi17Ci0gICAgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7Ci19Ci0KIFJlZlB0cjxDU1NWYWx1ZT4g
Rm9udEZhY2U6OnBhcnNlU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQpCiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCB1c2UgdGhlIERvY3VtZW50IHRv
IGdldCB0aGUgcmlnaHQgcGFyc2luZyBtb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaAppbmRleCAzNDgw
MDMwZjU5OGFkN2M3NzRkZjg1ZTRhMTgwZDc1NWE0ZmJhNDg5Li4zZDlhMGVjMWM5YWRhYWM4MjFi
Njc0MDFiODc5NmVhN2NiNjc4YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9u
dEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaApAQCAtMzgsNyArMzgs
NyBAQCBjbGFzcyBBcnJheUJ1ZmZlclZpZXc7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgRm9udEZhY2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxGb250RmFjZT4sIHByaXZhdGUg
Q1NTRm9udEZhY2U6OkNsaWVudCB7CitjbGFzcyBGb250RmFjZSBmaW5hbCA6IHB1YmxpYyBSZWZD
b3VudGVkPEZvbnRGYWNlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZvbnRGYWNlPiwgcHJpdmF0
ZSBDU1NGb250RmFjZTo6Q2xpZW50IHsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgRGVzY3JpcHRvcnMg
ewogICAgICAgICBTdHJpbmcgc3R5bGU7CkBAIC04OCw4ICs4OCw2IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgZm9udFN0YXRlQ2hhbmdlZChDU1NGb250RmFjZSYsIENTU0ZvbnRGYWNlOjpTdGF0dXMg
b2xkU3RhdGUsIENTU0ZvbnRGYWNlOjpTdGF0dXMgbmV3U3RhdGUpIGZpbmFsOwogCi0gICAgV2Vh
a1B0cjxGb250RmFjZT4gY3JlYXRlV2Vha1B0cigpOwotCiAgICAgdm9pZCByZWYoKSBmaW5hbCB7
IFJlZkNvdW50ZWQ6OnJlZigpOyB9CiAgICAgdm9pZCBkZXJlZigpIGZpbmFsIHsgUmVmQ291bnRl
ZDo6ZGVyZWYoKTsgfQogCkBAIC0xMDAsNyArOTgsNiBAQCBwcml2YXRlOgogICAgIC8vIENhbGxi
YWNrIGZvciBMb2FkZWRQcm9taXNlLgogICAgIEZvbnRGYWNlJiBsb2FkZWRQcm9taXNlUmVzb2x2
ZSgpOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8Rm9udEZhY2U+IG1fd2Vha1B0ckZhY3Rvcnk7CiAg
ICAgUmVmPENTU0ZvbnRGYWNlPiBtX2JhY2tpbmc7CiAgICAgTG9hZGVkUHJvbWlzZSBtX2xvYWRl
ZFByb21pc2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
CmluZGV4IDhjNzkzYzJiNzg2OTAzYTU4MmM1MmEwOGVlYWI3Y2NmNDUzNTQyOTUuLmNjNmViMWIy
NDY5NzY5NDU4ZWZlZjMwNjU5N2IzNDRlZWE5Mzk1NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBNZWRpYVF1ZXJ5RXZh
bHVhdG9yOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRpYVR5
cGUsIGJvb2wgbQogCiBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNv
bnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRpYVR5cGUsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIDogbV9tZWRpYVR5cGUoYWNjZXB0ZWRNZWRp
YVR5cGUpCi0gICAgLCBtX2RvY3VtZW50KGNvbnN0X2Nhc3Q8RG9jdW1lbnQmPihkb2N1bWVudCku
Y3JlYXRlV2Vha1B0cigpKQorICAgICwgbV9kb2N1bWVudChtYWtlV2Vha1B0cihjb25zdF9jYXN0
PERvY3VtZW50Jj4oZG9jdW1lbnQpKSkKICAgICAsIG1fc3R5bGUoc3R5bGUpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKaW5kZXggMDExN2VhYWU1ZjNjMjc5MDM1
NmMzNTgxMTMyZjFjODY4MjNiZjJmYi4uNDkwODAzZDRmM2MwMzMzOTgxMDRlNzdhOWUxMDI5OTdk
OTRlMjhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtNDMs
NyArNDMsNyBAQCBjbGFzcyBTdHlsZVJ1bGVCYXNlOwogY2xhc3MgU3R5bGVSdWxlSW1wb3J0Owog
Y2xhc3MgU3R5bGVSdWxlTmFtZXNwYWNlOwogCi1jbGFzcyBTdHlsZVNoZWV0Q29udGVudHMgZmlu
YWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHlsZVNoZWV0Q29udGVudHM+IHsKK2NsYXNzIFN0eWxl
U2hlZXRDb250ZW50cyBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFN0eWxlU2hlZXRDb250ZW50
cz4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTdHlsZVNoZWV0Q29udGVudHM+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFN0eWxlU2hlZXRDb250ZW50cz4gY3JlYXRlKGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGNvbnRleHQgPSBDU1NQYXJzZXJDb250ZXh0KEhUTUxTdGFuZGFyZE1vZGUpKQog
ICAgIHsKQEAgLTE0NCw4ICsxNDQsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNocmlua1RvRml0
KCk7CiAKLSAgICBXZWFrUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KLQogcHJpdmF0
ZToKICAgICBXRUJDT1JFX0VYUE9SVCBTdHlsZVNoZWV0Q29udGVudHMoU3R5bGVSdWxlSW1wb3J0
KiBvd25lclJ1bGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IENTU1BhcnNlckNv
bnRleHQmKTsKICAgICBTdHlsZVNoZWV0Q29udGVudHMoY29uc3QgU3R5bGVTaGVldENvbnRlbnRz
Jik7CkBAIC0xNzUsOCArMTczLDYgQEAgcHJpdmF0ZToKICAgICBDU1NQYXJzZXJDb250ZXh0IG1f
cGFyc2VyQ29udGV4dDsKIAogICAgIFZlY3RvcjxDU1NTdHlsZVNoZWV0Kj4gbV9jbGllbnRzOwot
ICAgIAotICAgIFdlYWtQdHJGYWN0b3J5PFN0eWxlU2hlZXRDb250ZW50cz4gbV93ZWFrUHRyRmFj
dG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTRGVmZXJyZWRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NEZWZlcnJlZFBhcnNlci5jcHAKaW5kZXggMDY0NjllYTlmMTk2ZmQyMDM3
ZDUwOGFhODU1OTA2MzdjZDc1Y2I0ZS4uZDM0YzE5YjAxYTFmOTlhNmFmMGRjYzA4OTZhZTViMThj
MzNiM2ZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NEZWZlcnJl
ZFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NEZWZlcnJlZFBh
cnNlci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogQ1NTRGVmZXJy
ZWRQYXJzZXI6OkNTU0RlZmVycmVkUGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0LCBTdHlsZVNoZWV0Q29udGVudHMmIHN0eWxlU2hl
ZXQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fc2hlZXRUZXh0KHNoZWV0VGV4
dCkKLSAgICAsIG1fc3R5bGVTaGVldChzdHlsZVNoZWV0LmNyZWF0ZVdlYWtQdHIoKSkKKyAgICAs
IG1fc3R5bGVTaGVldChtYWtlV2Vha1B0cihzdHlsZVNoZWV0KSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKaW5kZXggODEyNzE5NDc5NWY2OThl
MzFlMDYzNjM3OTM1MjUzM2QxMWQ3Yjc2YS4uY2VhOGJjMjU0YzViMjIwZTg5NGY4ZTYzN2U5NDE2
YTVjMzg1YzExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0
ZW1MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3Qu
Y3BwCkBAIC03Niw3ICs3Niw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVt
Pj4gRGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZChjb25zdCBTdHJpbmcmIGRhCiAKICAgICBtX2Rh
dGFUcmFuc2Zlci5zZXREYXRhRnJvbUl0ZW1MaXN0KGxvd2VyY2FzZWRUeXBlLCBkYXRhKTsKICAg
ICBBU1NFUlQobV9pdGVtcyk7Ci0gICAgbV9pdGVtcy0+YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06
OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2Vk
VHlwZSkpOworICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobWFr
ZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOwogICAgIHJldHVybiBtX2l0ZW1zLT5s
YXN0KCkucHRyKCk7CiB9CiAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmUHRyPERhdGFUcmFuc2Zlckl0
ZW0+IERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoUmVmPEZpbGU+JiYgZmlsZSkKICAgICBpZiAo
IW1fZGF0YVRyYW5zZmVyLmNhbldyaXRlRGF0YSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIGVuc3VyZUl0ZW1zKCkuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBmaWxlLT50eXBlKCksIGZpbGUuY29w
eVJlZigpKSk7CisgICAgZW5zdXJlSXRlbXMoKS5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3Jl
YXRlKG1ha2VXZWFrUHRyKCp0aGlzKSwgZmlsZS0+dHlwZSgpLCBmaWxlLmNvcHlSZWYoKSkpOwog
ICAgIG1fZGF0YVRyYW5zZmVyLmRpZEFkZEZpbGVUb0l0ZW1MaXN0KCk7CiAgICAgcmV0dXJuIG1f
aXRlbXMtPmxhc3QoKS5wdHIoKTsKIH0KQEAgLTEzNiwxMSArMTM2LDExIEBAIFZlY3RvcjxSZWY8
RGF0YVRyYW5zZmVySXRlbT4+JiBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZW5zdXJlSXRlbXMoKSBj
b25zdAogICAgIGZvciAoYXV0byYgdHlwZSA6IG1fZGF0YVRyYW5zZmVyLnR5cGVzRm9ySXRlbUxp
c3QoKSkgewogICAgICAgICBhdXRvIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5jb252ZXJ0VG9BU0NJ
SUxvd2VyY2FzZSgpOwogICAgICAgICBpZiAoc2hvdWxkRXhwb3NlVHlwZUluSXRlbUxpc3QobG93
ZXJjYXNlZFR5cGUpKQotICAgICAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06
OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8RGF0YVRy
YW5zZmVySXRlbUxpc3QqPih0aGlzKSksIGxvd2VyY2FzZWRUeXBlKSk7CisgICAgICAgICAgICBp
dGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1ha2VXZWFrUHRyKCpjb25zdF9j
YXN0PERhdGFUcmFuc2Zlckl0ZW1MaXN0Kj4odGhpcykpLCBsb3dlcmNhc2VkVHlwZSkpOwogICAg
IH0KIAogICAgIGZvciAoYXV0byYgZmlsZSA6IG1fZGF0YVRyYW5zZmVyLmZpbGVzKCkuZmlsZXMo
KSkKLSAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8RGF0YVRyYW5zZmVySXRlbUxpc3Qq
Pih0aGlzKSksIGZpbGUtPnR5cGUoKSwgZmlsZS5jb3B5UmVmKCkpKTsKKyAgICAgICAgaXRlbXMu
YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtYWtlV2Vha1B0cigqY29uc3RfY2FzdDxE
YXRhVHJhbnNmZXJJdGVtTGlzdCo+KHRoaXMpKSwgZmlsZS0+dHlwZSgpLCBmaWxlLmNvcHlSZWYo
KSkpOwogCiAgICAgbV9pdGVtcyA9IFdURk1vdmUoaXRlbXMpOwogCkBAIC0xODUsNyArMTg1LDcg
QEAgdm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZGlkU2V0U3RyaW5nRGF0YShjb25zdCBTdHJp
bmcmIHR5cGUpCiAgICAgU3RyaW5nIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5jb252ZXJ0VG9BU0NJ
SUxvd2VyY2FzZSgpOwogICAgIHJlbW92ZVN0cmluZ0l0ZW1PZkxvd2VyY2FzZWRUeXBlKCptX2l0
ZW1zLCB0eXBlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpOwogCi0gICAgbV9pdGVtcy0+YXBw
ZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOworICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJh
bnNmZXJJdGVtOjpjcmVhdGUobWFrZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5oCmluZGV4IDEz
MTIwZTU0YWQzNjgwYWU2Njk4M2NmZmUyY2NhMmQ0NGJiNjdiOGEuLmQyNTM1OWFiYWM5YjUzNjYw
N2RkMTMzNDQwZmU5M2ZkZDExNmM4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdC5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERhdGFUcmFuc2Zlckl0ZW07CiBjbGFzcyBGaWxlOwogCi1jbGFzcyBEYXRhVHJhbnNmZXJJdGVt
TGlzdCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgeworY2xhc3MgRGF0YVRyYW5zZmVySXRlbUxp
c3QgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RGF0YVRy
YW5zZmVySXRlbUxpc3Q+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRhVHJhbnNmZXJJ
dGVtTGlzdCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIERhdGFUcmFu
c2Zlckl0ZW1MaXN0KERhdGFUcmFuc2ZlciYpOwpAQCAtNzUsNyArNzUsNiBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIFZlY3RvcjxSZWY8RGF0YVRyYW5zZmVySXRlbT4+JiBlbnN1cmVJdGVtcygp
IGNvbnN0OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IG1fd2Vh
a1B0ckZhY3Rvcnk7CiAgICAgRGF0YVRyYW5zZmVyJiBtX2RhdGFUcmFuc2ZlcjsKICAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxEYXRhVHJhbnNmZXJJdGVtPj4+IG1faXRlbXM7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTBkZGM5YTE2MGE2MzdhNDU3YjE2YjAz
NjdjZGIyYjNjYzRmNzU5MS4uMzlhMjU3ZDA0OTFmNGUxNjZjMzBjNGM0NGY3YmFiMWQ1MWE0NGI2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01ODIxLDcgKzU4MjEsNyBAQCB2b2lkIERv
Y3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwsIGNvbnN0IFN0cmluZwogCiB2b2lkIERvY3VtZW50Ojpwb3N0VGFzayhUYXNrJiYgdGFzaykK
IHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtkb2N1bWVudFJlZmVyZW5jZSA9IG1fd2Vha0ZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSgpIG11dGFibGUg
eworICAgIGNhbGxPbk1haW5UaHJlYWQoW2RvY3VtZW50UmVmZXJlbmNlID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCB0YXNrID0gV1RGTW92ZSh0YXNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb2N1bWVu
dFJlZmVyZW5jZS5nZXQoKTsKQEAgLTc1NTksNyArNzU1OSw3IEBAIHZvaWQgRG9jdW1lbnQ6Omhh
c1N0b3JhZ2VBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIGlmIChQ
YWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CiAgICAgICAgIGF1dG8gaWZyYW1lSG9zdCA9IHNl
Y3VyaXR5T3JpZ2luLmhvc3QoKTsKICAgICAgICAgYXV0byB0b3BIb3N0ID0gdG9wU2VjdXJpdHlP
cmlnaW4uaG9zdCgpOwotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYXNTdG9yYWdl
QWNjZXNzKFdURk1vdmUoaWZyYW1lSG9zdCksIFdURk1vdmUodG9wSG9zdCksIGZyYW1lSUQudmFs
dWUoKSwgcGFnZUlELnZhbHVlKCksIFtkb2N1bWVudFJlZmVyZW5jZSA9IG1fd2Vha0ZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBo
YXNBY2Nlc3MpIHsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFzU3RvcmFnZUFj
Y2VzcyhXVEZNb3ZlKGlmcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEhvc3QpLCBmcmFtZUlELnZhbHVl
KCksIHBhZ2VJRC52YWx1ZSgpLCBbZG9jdW1lbnRSZWZlcmVuY2UgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBoYXNBY2Nlc3MpIHsKICAgICAg
ICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvY3VtZW50UmVmZXJlbmNlLmdldCgpOwogICAg
ICAgICAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC03NjI5
LDE0ICs3NjI5LDE0IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnJlcXVlc3RTdG9yYWdlQWNjZXNzKFdURk1vdmUoaWZy
YW1lSG9zdCksIFdURk1vdmUodG9wSG9zdCksIGZyYW1lSUQudmFsdWUoKSwgcGFnZUlELnZhbHVl
KCksIFtkb2N1bWVudFJlZmVyZW5jZSA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCB3YXNHcmFudGVkKSBtdXRhYmxl
IHsKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0U3RvcmFnZUFjY2VzcyhXVEZN
b3ZlKGlmcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEhvc3QpLCBmcmFtZUlELnZhbHVlKCksIHBhZ2VJ
RC52YWx1ZSgpLCBbZG9jdW1lbnRSZWZlcmVuY2UgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCB3YXNHcmFudGVkKSBtdXRhYmxlIHsKICAgICAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZG9jdW1lbnRSZWZlcmVuY2UuZ2V0KCk7CiAgICAgICAg
IGlmICghZG9jdW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAgICBp
ZiAod2FzR3JhbnRlZCkgewogICAgICAgICAgICAgZG9jdW1lbnQtPnNldEhhc0ZyYW1lU3BlY2lm
aWNTdG9yYWdlQWNjZXNzKHRydWUpOwotICAgICAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5U
aHJlYWRRdWV1ZSgpLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPFZvaWRNaWNyb3Rhc2s+KFtkb2N1
bWVudFJlZmVyZW5jZSA9IGRvY3VtZW50LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmRv
Y3VtZW50KV0gKCkgeworICAgICAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1
ZSgpLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPFZvaWRNaWNyb3Rhc2s+KFtkb2N1bWVudFJlZmVy
ZW5jZSA9IG1ha2VXZWFrUHRyKCpkb2N1bWVudCldICgpIHsKICAgICAgICAgICAgICAgICBpZiAo
YXV0byogZG9jdW1lbnQgPSBkb2N1bWVudFJlZmVyZW5jZS5nZXQoKSkKICAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQtPmVuYWJsZVRlbXBvcmFyeVRpbWVVc2VyR2VzdHVyZSgpOwogICAgICAg
ICAgICAgfSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0OTliYWNiZTFhNzM4NzI3YzE3ZmRj
NWQ3MjBiYzIzYmVmNDE2ZDY2Li4wY2IzYzFjNTg0MmRkN2Q3YmJmNTQyMDdjYjkzOWMzYzcwMDQ2
YzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzIxLDYgKzMyMSw3IEBAIGNsYXNzIERvY3Vt
ZW50CiAgICAgLCBwdWJsaWMgVHJlZVNjb3BlCiAgICAgLCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dAogICAgICwgcHVibGljIEZvbnRTZWxlY3RvckNsaWVudAorICAgICwgcHVibGljIENh
bk1ha2VXZWFrUHRyPERvY3VtZW50PgogICAgICwgcHVibGljIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcgogICAgICwgcHVibGljIFN1cHBsZW1lbnRhYmxlPERvY3VtZW50PgogICAgICwgcHVibGlj
IExvZ2dlcjo6T2JzZXJ2ZXIgewpAQCAtNzk5LDcgKzgwMCw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBXaW5kb3dQcm94eSogd2luZG93UHJveHkoKSBjb25zdDsKIAogICAgIERvY3Vt
ZW50JiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKLSAgICB2b2lkIHNldENvbnRleHREb2N1bWVu
dChEb2N1bWVudCYgZG9jdW1lbnQpIHsgbV9jb250ZXh0RG9jdW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVXZWFrUHRyKCk7IH0KKyAgICB2b2lkIHNldENvbnRleHREb2N1bWVudChEb2N1bWVudCYgZG9j
dW1lbnQpIHsgbV9jb250ZXh0RG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCk7IH0KIAog
ICAgIC8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGZvcndhcmRpbmcgRE9NV2luZG93IGV2ZW50IHJl
bGF0ZWQgdGFza3MgdG8gdGhlIERPTVdpbmRvdyBpZiBpdCBleGlzdHMuCiAgICAgdm9pZCBzZXRX
aW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcm
IHZhbHVlLCBET01XcmFwcGVyV29ybGQmKTsKQEAgLTEzMTEsNyArMTMxMiw2IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzQ2FwdHVyaW5nKCkgY29uc3QgeyByZXR1cm4gTWVkaWFQcm9kdWNlcjo6aXND
YXB0dXJpbmcobV9tZWRpYVN0YXRlKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRl
SXNQbGF5aW5nTWVkaWEodWludDY0X3QgPSBIVE1MTWVkaWFFbGVtZW50SW52YWxpZElEKTsKICAg
ICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCk7Ci0gICAgV2Vha1B0cjxEb2N1bWVudD4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7IH0KIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBh
ZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50Jik7
CkBAIC0xNjk0LDggKzE2OTQsNiBAQCBwcml2YXRlOgogICAgIFJlbmRlclB0cjxSZW5kZXJWaWV3
PiBtX3JlbmRlclZpZXc7CiAgICAgbXV0YWJsZSBEb2N1bWVudEV2ZW50UXVldWUgbV9ldmVudFF1
ZXVlOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8RG9jdW1lbnQ+IG1fd2Vha0ZhY3Rvcnk7Ci0KICAg
ICBIYXNoU2V0PE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcio+IG1fbWVkaWFDYW5TdGFydExpc3RlbmVy
czsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZXNzYWdlUG9ydC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgK
aW5kZXggY2I5N2QxMWM4ODVlODZjOGMxMWNiMjRjYTRkYjQ1OWJiYmM4NzU0YS4uOGVhZGY3OTBi
MmFiMTZjMmI2N2Y3ZTg0N2MyNzlhZGJiZDI4YzBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VQb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0
LmgKQEAgLTQ0LDEzICs0NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZyYW1l
OwogCi1jbGFzcyBNZXNzYWdlUG9ydCBmaW5hbCA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1
YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK2NsYXNzIE1lc3NhZ2VQb3J0IGZpbmFs
IDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZXNzYWdlUG9ydD4gewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8TWVzc2FnZVBvcnQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlm
aWVyJiByZW1vdGUpOwogICAgIHZpcnR1YWwgfk1lc3NhZ2VQb3J0KCk7CiAKLSAgICBhdXRvJiB3
ZWFrUHRyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha0ZhY3Rvcnk7IH0KLQogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVl
IG1lc3NhZ2UsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJik7CiAKICAgICB2
b2lkIHN0YXJ0KCk7CkBAIC0xMTUsOCArMTEzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2xv
c2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW50YW5nbGVkIHsgdHJ1ZSB9OwogCi0gICAgV2Vh
a1B0ckZhY3Rvcnk8TWVzc2FnZVBvcnQ+IG1fd2Vha0ZhY3Rvcnk7Ci0KICAgICAvLyBGbGFncyB0
byBtYW5hZ2UgcXVlcnlpbmcgdGhlIHJlbW90ZSBwb3J0IGZvciBHQyBwdXJwb3NlcwogICAgIG11
dGFibGUgYm9vbCBtX21pZ2h0QmVFbGlnaWJsZUZvckdDIHsgZmFsc2UgfTsKICAgICBtdXRhYmxl
IGJvb2wgbV9oYXNIYWRMb2NhbEFjdGl2aXR5U2luY2VMYXN0Q2hlY2sgeyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggNTczOTlhNGQ0NTUyYzZl
OTcyZDg3OGUzZDE2YjBjNDM4NzBlOGQ0OC4uYWJlMDA2ZDAzZjkyODMwMzc1YTE0NmM3NzUyYjJm
MmEzMjJjN2JjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBA
IC0zNzEsNyArMzcxLDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRQaWN0dXJlRWxlbWVu
dChIVE1MUGljdHVyZUVsZW1lbnQqIHBpY3R1cmVFbGVtZW50KQogICAgIAogICAgIGlmICghZ1Bp
Y3R1cmVPd25lck1hcCkKICAgICAgICAgZ1BpY3R1cmVPd25lck1hcCA9IG5ldyBQaWN0dXJlT3du
ZXJNYXAoKTsKLSAgICBnUGljdHVyZU93bmVyTWFwLT5hZGQodGhpcywgcGljdHVyZUVsZW1lbnQt
PmNyZWF0ZVdlYWtQdHIoKSk7CisgICAgZ1BpY3R1cmVPd25lck1hcC0+YWRkKHRoaXMsIG1ha2VX
ZWFrUHRyKCpwaWN0dXJlRWxlbWVudCkpOwogfQogICAgIAogdW5zaWduZWQgSFRNTEltYWdlRWxl
bWVudDo6d2lkdGgoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGJmNjA1ZGZjM2RmYjE4YWY4NTNkZGE2ZDIzODhl
ZTAwZTBiZmJmMDguLjgwYTdlMjI4NTYwOWFhYTQ5ZjU0ZGE3ODBkYmVjOTUwYjQ0M2Y1YWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHN0
cnVjdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlIHsKICAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVu
dD4gY2hlY2tlZFJhZGlvQnV0dG9uOwogfTsKIAotY2xhc3MgSFRNTElucHV0RWxlbWVudCA6IHB1
YmxpYyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCB7CitjbGFzcyBIVE1MSW5wdXRFbGVtZW50
IDogcHVibGljIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8SFRNTElucHV0RWxlbWVudD4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRNTElu
cHV0RWxlbWVudCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kiwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpOwpAQCAtMzQzLDggKzM0Myw2IEBAIHB1YmxpYzoKIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVjdGlvblJhbmdlRm9yQmluZGluZ3MoaW50IHN0YXJ0
LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7CiAKLSAgICBhdXRvJiB3ZWFrUHRy
RmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha0ZhY3Rvcnk7IH0KLQogcHJvdGVjdGVkOgog
ICAgIEhUTUxJbnB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRN
TEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCkBAIC00ODUsNyArNDgzLDYg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyPiBtX2xpc3RBdHRyaWJ1dGVUYXJnZXRP
YnNlcnZlcjsKICNlbmRpZgotICAgIFdlYWtQdHJGYWN0b3J5PEhUTUxJbnB1dEVsZW1lbnQ+IG1f
d2Vha0ZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAppbmRleCAxNjI3MGVhOTZlMjIzODc3NWNlNDEwYmFjNjgzZWFkYzY1OTQ3YTBlLi5mNmI1
ZTM2MWRkOWE4MjQxNmIxYmUyNTc4ODNmNjM3MGNkNGM5M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTY5MTAsNyArNjkxMCw3IEBAIFJlZlB0cjxQbGF0
Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ3Jl
YXRlUmVzb3VyY2VMCiB7CiAgICAgYXV0byBtZWRpYVJlc291cmNlTG9hZGVyID0gYWRvcHRSZWYo
Km5ldyBNZWRpYVJlc291cmNlTG9hZGVyKGRvY3VtZW50KCksICp0aGlzLCBjcm9zc09yaWdpbigp
KSk7CiAKLSAgICBtX2xhc3RNZWRpYVJlc291cmNlTG9hZGVyRm9yVGVzdGluZyA9IG1lZGlhUmVz
b3VyY2VMb2FkZXItPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBtX2xhc3RNZWRpYVJlc291cmNlTG9h
ZGVyRm9yVGVzdGluZyA9IG1ha2VXZWFrUHRyKG1lZGlhUmVzb3VyY2VMb2FkZXIuZ2V0KCkpOwog
CiAgICAgcmV0dXJuIFdURk1vdmUobWVkaWFSZXNvdXJjZUxvYWRlcik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDIzN2MzNjBjM2E4MDIzYTM0MjQwYmZkMzkw
ZDFmNTU1NDg5YTc3YmQuLjNlZTg4MWE2YjRlMjk0ZmRlY2QwZTllYjIxZWIzNGMxMzI3YTdjMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMjMsNiArMTIzLDcg
QEAgY2xhc3MgSFRNTE1lZGlhRWxlbWVudAogICAgIDogcHVibGljIEhUTUxFbGVtZW50CiAgICAg
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CiAgICAgLCBwdWJsaWMgTWVkaWFDb250cm9sbGVySW50
ZXJmYWNlCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4KICAg
ICAsIHB1YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudAogICAgICwgcHJpdmF0ZSBNZWRp
YUNhblN0YXJ0TGlzdGVuZXIKICAgICAsIHByaXZhdGUgTWVkaWFQbGF5ZXJDbGllbnQKQEAgLTE0
Niw3ICsxNDcsNiBAQCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50CiB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChIVE1MTWVkaWFFbGVtZW50KTsKIHB1YmxpYzoKLSAgICBXZWFrUHRyPEhUTUxN
ZWRpYUVsZW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpOyB9CiAgICAgUmVmUHRyPE1lZGlhUGxheWVyPiBwbGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX3BsYXllcjsgfQogCiAgICAgdmlydHVhbCBib29sIGlzVmlkZW8oKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQpAQCAtOTIyLDcgKzkyMiw2IEBAIHByaXZhdGU6CiAgICAgY29u
c3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpIGZpbmFsIHsgcmV0dXJuIGxvZ2dlcigpOyB9
CiAjZW5kaWYKIAotICAgIFdlYWtQdHJGYWN0b3J5PEhUTUxNZWRpYUVsZW1lbnQ+IG1fd2Vha0Zh
Y3Rvcnk7CiAgICAgVGltZXIgbV9wZW5kaW5nQWN0aW9uVGltZXI7CiAgICAgVGltZXIgbV9wcm9n
cmVzc0V2ZW50VGltZXI7CiAgICAgVGltZXIgbV9wbGF5YmFja1Byb2dyZXNzVGltZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaAppbmRleCAzZDUwN2NlYzMyMmNiNjkz
YjllYmVlM2M1ZjQ4N2I5YTFlODUyMzI5Li5jNmRhMzU3NmM0ODIxMGRhNDgxMzExYjczODZiMDdk
ZDdkZmFmYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmgKQEAg
LTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MUGljdHVy
ZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworY2xhc3MgSFRNTFBpY3R1cmVF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
SFRNTFBpY3R1cmVFbGVtZW50PiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MUGlj
dHVyZUVsZW1lbnQpOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRNTFBpY3R1cmVFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkBAIC00NCw4ICs0NCw2
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgdmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUoKSBj
b25zdDsKIAotICAgIFdlYWtQdHI8SFRNTFBpY3R1cmVFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAjaWYgVVNF
KFNZU1RFTV9QUkVWSUVXKQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTeXN0ZW1QcmV2aWV3
SW1hZ2UoKSBjb25zdDsKICNlbmRpZgpAQCAtNTUsNyArNTMsNiBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50
JiBuZXdEb2N1bWVudCkgZmluYWw7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxIVE1MUGljdHVyZUVs
ZW1lbnQ+IG1fd2Vha0ZhY3Rvcnk7CiAgICAgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+IG1fdmll
d3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgKaW5kZXggYWEyYzc4MmRl
MDU4MzdmNTIyODYzOWY5NmIwODMyZTMzYjVjY2FiMS4uZGFlNzQ2NGIzODM4N2M0NzU2MThhZjMx
NjllZjMxZjVmMDQ3ZGVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFJlc291cmNlUHJlbG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFJlc291cmNlUHJlbG9hZGVyLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogdHlw
ZWRlZiBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFByZWxvYWRSZXF1ZXN0Pj4gUHJlbG9hZFJlcXVl
c3RTdHJlYW07CiAKLWNsYXNzIEhUTUxSZXNvdXJjZVByZWxvYWRlciB7CitjbGFzcyBIVE1MUmVz
b3VyY2VQcmVsb2FkZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SFRNTFJlc291cmNlUHJlbG9h
ZGVyPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSFRNTFJlc291cmNlUHJlbG9hZGVyKTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSFRNTFJlc291
cmNlUHJlbG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTgzLDExICs4Myw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHByZWxvYWQoUHJlbG9hZFJlcXVlc3RTdHJlYW0pOwogICAgIHZvaWQgcHJl
bG9hZChzdGQ6OnVuaXF1ZV9wdHI8UHJlbG9hZFJlcXVlc3Q+KTsKIAotICAgIFdlYWtQdHI8SFRN
TFJlc291cmNlUHJlbG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiBwcml2YXRlOgogICAgIERvY3VtZW50JiBtX2Rv
Y3VtZW50OwotICAgIFdlYWtQdHJGYWN0b3J5PEhUTUxSZXNvdXJjZVByZWxvYWRlcj4gbV93ZWFr
RmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKaW5kZXggNjIxNWIzOWVlY2RlMDIyNTMyYTE0
MDNkMmM5MWJiOTY3NzJlODFkMS4uOWRiMjA2MDE2MjIwNzg5NmVjYWVhMjBjNDBhNTUyZTE3M2I3
NWU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgK
QEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBjbGFzcyBDb250YWluZXI7CiBj
bGFzcyBUcmVlQnVpbGRlcjsKIAotY2xhc3MgQm94IHsKK2NsYXNzIEJveCA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxCb3g+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEJveCk7CiBwdWJs
aWM6CiAgICAgZnJpZW5kIGNsYXNzIFRyZWVCdWlsZGVyOwpAQCAtOTQsNyArOTQsNiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc1BhZGRpbmdBcHBsaWNhYmxlKCkgY29uc3Q7CiAKICAgICBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlOyB9Ci0gICAgYXV0byYg
d2Vha1B0ckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3dlYWtGYWN0b3J5OyB9CiAKICAgICBz
dGQ6Om9wdGlvbmFsPGNvbnN0IFJlcGxhY2VkPiByZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVwbGFjZWQ7IH0KIApAQCAtMTI5LDcgKzEyOCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRO
ZXh0U2libGluZyhCb3gmIG5leHRTaWJsaW5nKSB7IG1fbmV4dFNpYmxpbmcgPSAmbmV4dFNpYmxp
bmc7IH0KICAgICB2b2lkIHNldFByZXZpb3VzU2libGluZyhCb3gmIHByZXZpb3VzU2libGluZykg
eyBtX3ByZXZpb3VzU2libGluZyA9ICZwcmV2aW91c1NpYmxpbmc7IH0KIAotICAgIFdlYWtQdHJG
YWN0b3J5PEJveD4gbV93ZWFrRmFjdG9yeTsKICAgICBSZW5kZXJTdHlsZSBtX3N0eWxlOwogICAg
IHN0ZDo6b3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+IG1fZWxlbWVudEF0dHJpYnV0ZXM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3RhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Gb3JtU3RhdGUuaAppbmRleCA3NzU4NDMyOWFmMTY0MjQ2NTBjMDBkYjhh
NzkzZDlkOTU1ZjUwNTBmLi42ZWQ4YmVjYjE0NTkyZmU3OTE2ZTk5YmY4YjBmMTVlZmQ5ZTlkZjYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdGF0ZS5oCkBAIC00MSw3ICs0MSw3IEBAIGVudW0gRm9y
bVN1Ym1pc3Npb25UcmlnZ2VyIHsgU3VibWl0dGVkQnlKYXZhU2NyaXB0LCBOb3RTdWJtaXR0ZWRC
eUphdmFTY3JpcHQgfTsKIAogdXNpbmcgU3RyaW5nUGFpclZlY3RvciA9IFZlY3RvcjxzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+PjsKIAotY2xhc3MgRm9ybVN0YXRlIDogcHVibGljIFJlZkNvdW50
ZWQ8Rm9ybVN0YXRlPiwgcHVibGljIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciB7CitjbGFzcyBG
b3JtU3RhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGb3JtU3RhdGU+LCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8Rm9ybVN0YXRlPiwgcHVibGljIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxGb3JtU3RhdGU+IGNyZWF0ZShIVE1MRm9ybUVsZW1lbnQmLCBT
dHJpbmdQYWlyVmVjdG9yJiYgdGV4dEZpZWxkVmFsdWVzLCBEb2N1bWVudCYsIEZvcm1TdWJtaXNz
aW9uVHJpZ2dlcik7CiAKQEAgLTUwLDggKzUwLDYgQEAgcHVibGljOgogICAgIERvY3VtZW50JiBz
b3VyY2VEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlRG9jdW1lbnQ7IH0KICAgICBG
b3JtU3VibWlzc2lvblRyaWdnZXIgZm9ybVN1Ym1pc3Npb25UcmlnZ2VyKCkgY29uc3QgeyByZXR1
cm4gbV9mb3JtU3VibWlzc2lvblRyaWdnZXI7IH0KIAotICAgIGF1dG8mIHdlYWtQdHJGYWN0b3J5
KCkgY29uc3QgeyByZXR1cm4gbV93ZWFrRmFjdG9yeTsgfQotCiBwcml2YXRlOgogICAgIEZvcm1T
dGF0ZShIVE1MRm9ybUVsZW1lbnQmLCBTdHJpbmdQYWlyVmVjdG9yJiYgdGV4dEZpZWxkVmFsdWVz
LCBEb2N1bWVudCYsIEZvcm1TdWJtaXNzaW9uVHJpZ2dlcik7CiAgICAgdm9pZCB3aWxsRGV0YWNo
UGFnZSgpIG92ZXJyaWRlOwpAQCAtNjAsNyArNTgsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZ1Bh
aXJWZWN0b3IgbV90ZXh0RmllbGRWYWx1ZXM7CiAgICAgUmVmPERvY3VtZW50PiBtX3NvdXJjZURv
Y3VtZW50OwogICAgIEZvcm1TdWJtaXNzaW9uVHJpZ2dlciBtX2Zvcm1TdWJtaXNzaW9uVHJpZ2dl
cjsKLSAgICBXZWFrUHRyRmFjdG9yeTxGb3JtU3RhdGU+IG1fd2Vha0ZhY3Rvcnk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5k
ZXggYmNiNTBkNmM4NWQwNDZiMGQyNGExODRhZjMyOTE4MGU3ZmRjOTdmNC4uZTYzN2IzOTk1YjE3
ZjA1MWFmYzU5Njg2NGM5MzUwYmQ2N2IxZGJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9h
ZGVyLmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQgTGlua0xvYWRlcjo6cHJlY29ubmVjdElm
TmVlZGVkKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QKICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjcm9zc09yaWdpbiwgImFub255bW91cyIpICYmIGRv
Y3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNjZXNzKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUo
aHJlZikpKQogICAgICAgICBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAgICAgQVNTRVJUKGRvY3VtZW50LmZyYW1lKCktPmxvYWRl
cigpLm5ldHdvcmtpbmdDb250ZXh0KCkpOwotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2Fk
ZXJTdHJhdGVneSgpLT5wcmVjb25uZWN0VG8oZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCksIGhy
ZWYsIHN0b3JhZ2VDcmVkZW50aWFsc1BvbGljeSwgW3dlYWtEb2N1bWVudCA9IGRvY3VtZW50LmNy
ZWF0ZVdlYWtQdHIoKSwgaHJlZl0oUmVzb3VyY2VFcnJvciBlcnJvcikgeworICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wcmVjb25uZWN0VG8oZG9jdW1lbnQuZnJh
bWUoKS0+bG9hZGVyKCksIGhyZWYsIHN0b3JhZ2VDcmVkZW50aWFsc1BvbGljeSwgW3dlYWtEb2N1
bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50KSwgaHJlZl0oUmVzb3VyY2VFcnJvciBlcnJvcikg
ewogICAgICAgICBpZiAoIXdlYWtEb2N1bWVudCkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKaW5kZXggN2I5YmQzOTM0ZmFhMDkwODNiZTQzNGMxODNk
NDVhNzY3NDU1Y2NmMy4uMDFkMWVmYzMxNWE1YjAyZDA2OTllOWFjNDVkZmQxMzY4NzhmNGFiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIExp
bmtQcmVsb2FkUmVzb3VyY2VDbGllbnQ7CiAKIHN0cnVjdCBMaW5rUmVsQXR0cmlidXRlOwogCi1j
bGFzcyBMaW5rTG9hZGVyIDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CitjbGFzcyBM
aW5rTG9hZGVyIDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPExpbmtMb2FkZXI+IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBMaW5rTG9hZGVyKExp
bmtMb2FkZXJDbGllbnQmKTsKICAgICB2aXJ0dWFsIH5MaW5rTG9hZGVyKCk7CkBAIC01OCw3ICs1
OCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2FkTGlua3NGcm9tSGVhZGVyKGNvbnN0
IFN0cmluZyYgaGVhZGVyVmFsdWUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgRG9jdW1lbnQmLCBNZWRp
YUF0dHJpYnV0ZUNoZWNrKTsKICAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZFR5cGUoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCi0gICAgV2Vha1B0cjxM
aW5rTG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIHZvaWQgdHJpZ2dlckV2ZW50cyhjb25zdCBDYWNoZWRS
ZXNvdXJjZSYpOwogICAgIHZvaWQgY2FuY2VsTG9hZCgpOwogCkBAIC03MSw3ICs3MCw2IEBAIHBy
aXZhdGU6CiAgICAgTGlua0xvYWRlckNsaWVudCYgbV9jbGllbnQ7CiAgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IG1fY2FjaGVkTGlua1Jlc291cmNlOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50PiBtX3ByZWxvYWRSZXNvdXJjZUNs
aWVudDsKLSAgICBXZWFrUHRyRmFjdG9yeTxMaW5rTG9hZGVyPiBtX3dlYWtQdHJGYWN0b3J5Owog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtQcmVsb2FkUmVz
b3VyY2VDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rUHJlbG9hZFJlc291
cmNlQ2xpZW50cy5jcHAKaW5kZXggMWNkNzQ0MzAwZjMyMjdkYzI4OTcyMTBiN2Y4YmY2OGQwOTNl
NzM3NC4uYWI5Mzc3MzY0OTViMjhiYTc0MjhmMWJjM2Y0MTdiODAxNTM2Y2MzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtQcmVsb2FkUmVzb3VyY2VDbGllbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuY3Bw
CkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTGlua1ByZWxvYWRSZXNv
dXJjZUNsaWVudDo6TGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudChMaW5rTG9hZGVyJiBsb2FkZXIs
IENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKIHsKLSAgICBtX2xvYWRlciA9IGxvYWRlci5jcmVh
dGVXZWFrUHRyKCk7CisgICAgbV9sb2FkZXIgPSBtYWtlV2Vha1B0cihsb2FkZXIpOwogICAgIG1f
cmVzb3VyY2UgPSAmcmVzb3VyY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRp
YVJlc291cmNlTG9hZGVyLmNwcAppbmRleCAzZDdjNGQ0YzU0ZDZmNDJiYmIxN2RhMWM5ZGJjNzVm
YTQ0NzFkNjQ3Li44MDc3ZDVhNWZlOGFjNThiNmU2MWRlYjcyOGZlYzg1YjMyNjJkYmI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00Myw3
ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhUmVzb3VyY2VMb2FkZXI6Ok1lZGlh
UmVzb3VyY2VMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50JiBtZWRp
YUVsZW1lbnQsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlKQogICAgIDogQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgbV9kb2N1bWVudCgmZG9jdW1lbnQp
Ci0gICAgLCBtX21lZGlhRWxlbWVudChtZWRpYUVsZW1lbnQuY3JlYXRlV2Vha1B0cigpKQorICAg
ICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIobWVkaWFFbGVtZW50KSkKICAgICAsIG1fY3Jv
c3NPcmlnaW5Nb2RlKGNyb3NzT3JpZ2luTW9kZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oCmluZGV4IDM0OTI3N2UwZDlkMjA0MDI5OTM1ZDc5Y2U0
NGMxMzY1NjgzZjk0ZTQuLjYxODQ1OGExMjhkNDI2Y2YxMmI0YjQzZjRhODc3MDY2Nzg1NzMxZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQs
NyArNDQsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiBjbGFz
cyBNZWRpYVJlc291cmNlOwogCi1jbGFzcyBNZWRpYVJlc291cmNlTG9hZGVyIGZpbmFsIDogcHVi
bGljIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlciwgcHVibGljIENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyIHsKK2NsYXNzIE1lZGlhUmVzb3VyY2VMb2FkZXIgZmluYWwgOiBwdWJsaWMgUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZXNv
dXJjZUxvYWRlcj4sIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZXNvdXJjZUxvYWRlcihEb2N1bWVudCYsIEhUTUxN
ZWRpYUVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB+TWVkaWFSZXNvdXJjZUxvYWRlcigpOwpAQCAtNTgsOCArNTgsNiBA
QCBwdWJsaWM6CiAgICAgVmVjdG9yPFJlc291cmNlUmVzcG9uc2U+IHJlc3BvbnNlc0ZvclRlc3Rp
bmcoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlc0ZvclRlc3Rpbmc7IH0KICAgICB2b2lkIGFk
ZFJlc3BvbnNlRm9yVGVzdGluZyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICBXZWFr
UHRyPGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KIHByaXZhdGU6CiAgICAgdm9p
ZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKQEAgLTY3LDcgKzY1LDYgQEAgcHJpdmF0
ZToKICAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fbWVkaWFFbGVtZW50OwogICAgIFN0
cmluZyBtX2Nyb3NzT3JpZ2luTW9kZTsKICAgICBIYXNoU2V0PE1lZGlhUmVzb3VyY2UqPiBtX3Jl
c291cmNlczsKLSAgICBXZWFrUHRyRmFjdG9yeTxjb25zdCBNZWRpYVJlc291cmNlTG9hZGVyPiBt
X3dlYWtGYWN0b3J5OwogICAgIFZlY3RvcjxSZXNvdXJjZVJlc3BvbnNlPiBtX3Jlc3BvbnNlc0Zv
clRlc3Rpbmc7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBjN2JhNzQ3NzkwMjI5
ZDczMmQyMzNlZDRiMmQ4YzQ3Y2E0NDQ2OTFmLi41YzQ4ZTdjZGZkZTQ2NWUyODM2YTI1NzI5NmM5
Zjk1Zjc4MGVlOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTkyLDYgKzkyLDcgQEAg
ZW51bSBjbGFzcyBJbmNsdWRlVGFyZ2V0T3JpZ2luIHsgTm8sIFllcyB9OwogLy8gRklYTUU6IFJl
bmFtZSBET01XaW5kb3cgdG8gTG9jYWxXaW5kb3cgYW5kIEFic3RyYWN0RE9NV2luZG93IHRvIERP
TVdpbmRvdy4KIGNsYXNzIERPTVdpbmRvdyBmaW5hbAogICAgIDogcHVibGljIEFic3RyYWN0RE9N
V2luZG93CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RE9NV2luZG93PgogICAgICwgcHVi
bGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyCiAgICAgLCBwdWJsaWMgRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyCiAgICAgLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzCkBAIC0zMzUsOCArMzM2
LDYgQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKTsKICAgICB2
b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogCi0gICAgV2Vha1B0cjxET01XaW5kb3c+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KnRoaXMpOyB9Ci0KIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRE9NV2luZG93KERvY3VtZW50Jik7
CiAKQEAgLTM5Myw4ICszOTIsNiBAQCBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgUGFnZVN0YXR1
cyB7IE5vbmUsIFNob3duLCBIaWRkZW4gfTsKICAgICBQYWdlU3RhdHVzIG1fbGFzdFBhZ2VTdGF0
dXMgeyBQYWdlU3RhdHVzOjpOb25lIH07CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxET01XaW5kb3c+
IG1fd2Vha1B0ckZhY3Rvcnk7Ci0KICNpZiBQTEFURk9STShJT1MpCiAgICAgdW5zaWduZWQgbV9z
Y3JvbGxFdmVudExpc3RlbmVyQ291bnQgeyAwIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAppbmRleCBhNGY2MzMxMGM3ZWEwY2EzY2QxOGUzNTNlYTE0MzczMjE0Yjdh
NzY0Li5hNWJiZjkwNDM0YTVkZDkzOWFkZGRkNDAyZDQ4ZTAzNTdkMDUxMmJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNzI0LDcgKzI3MjQsNyBAQCBzdGF0aWMgV2Vh
a1B0cjxXaWRnZXQ+IHdpZGdldEZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKICAg
ICBpZiAoIWlzPFJlbmRlcldpZGdldD4odGFyZ2V0KSB8fCAhZG93bmNhc3Q8UmVuZGVyV2lkZ2V0
PigqdGFyZ2V0KS53aWRnZXQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBk
b3duY2FzdDxSZW5kZXJXaWRnZXQ+KCp0YXJnZXQpLndpZGdldCgpLT5jcmVhdGVXZWFrUHRyKCk7
CisgICAgcmV0dXJuIG1ha2VXZWFrUHRyKCpkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KCp0YXJnZXQp
LndpZGdldCgpKTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OmNvbXBsZXRlV2lkZ2V0V2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBjb25zdCBXZWFrUHRyPFdpZGdl
dD4mIHdpZGdldCwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mIHNjcm9sbGFibGVBcmVh
LCBDb250YWluZXJOb2RlKiBzY3JvbGxhYmxlQ29udGFpbmVyKQpAQCAtMzk4MCw3ICszOTgwLDcg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZUxhc3RTY3JvbGxiYXJVbmRlck1vdXNlKFNjcm9s
bGJhciogc2Nyb2xsYmFyLCBTZXRPckNsZWEKICAgICAgICAgLy8gU2VuZCBtb3VzZSBlbnRlcmVk
IGlmIHdlJ3JlIHNldHRpbmcgYSBuZXcgc2Nyb2xsYmFyLgogICAgICAgICBpZiAoc2Nyb2xsYmFy
ICYmIHNldE9yQ2xlYXIgPT0gU2V0T3JDbGVhckxhc3RTY3JvbGxiYXI6OlNldCkgewogICAgICAg
ICAgICAgc2Nyb2xsYmFyLT5tb3VzZUVudGVyZWQoKTsKLSAgICAgICAgICAgIG1fbGFzdFNjcm9s
bGJhclVuZGVyTW91c2UgPSBzY3JvbGxiYXItPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgICAg
IG1fbGFzdFNjcm9sbGJhclVuZGVyTW91c2UgPSBtYWtlV2Vha1B0cigqc2Nyb2xsYmFyKTsKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX2xhc3RTY3JvbGxiYXJVbmRlck1vdXNlID0gbnVs
bHB0cjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmlj
VGFza1F1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUu
Y3BwCmluZGV4IGFiMDg4NjJkM2RlNjlkYTI5MTM1MWQ5MmY2M2E2NGEyMzc4Y2Y5ZDMuLjdkYmJh
OTI0NjQ2NTBiNjM3ZmFkOTkyYzJkMGVjNjgxNWNhZGJmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFRhc2tEaXNw
YXRjaGVyPFRpbWVyPjo6VGFza0Rpc3BhdGNoZXIoKQogdm9pZCBUYXNrRGlzcGF0Y2hlcjxUaW1l
cj46OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIHsKICAgICBtX3BlbmRp
bmdUYXNrcy5hcHBlbmQoV1RGTW92ZShmdW5jdGlvbikpOwotICAgIHBlbmRpbmdEaXNwYXRjaGVy
cygpLmFwcGVuZChtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpKTsKKyAgICBw
ZW5kaW5nRGlzcGF0Y2hlcnMoKS5hcHBlbmQobWFrZVdlYWtQdHIoKnRoaXMpKTsKICAgICBpZiAo
IXNoYXJlZFRpbWVyKCkuaXNBY3RpdmUoKSkKICAgICAgICAgc2hhcmVkVGltZXIoKS5zdGFydE9u
ZVNob3QoMF9zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVy
aWNUYXNrUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUu
aAppbmRleCAwMmMwYWI5YzJjN2Y4OWY3Yzg2YTY3MTBkNjc5YmQwMWJiOTllOGU1Li5hYWE5NDUw
ZGI5N2RiOWNlM2U0ZGNlYzYxYTQ0MjNiMzZlNmVkNjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oCkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiB9Owog
CiB0ZW1wbGF0ZTw+Ci1jbGFzcyBUYXNrRGlzcGF0Y2hlcjxUaW1lcj4geworY2xhc3MgVGFza0Rp
c3BhdGNoZXI8VGltZXI+IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFRhc2tEaXNwYXRjaGVyPFRp
bWVyPj4gewogcHVibGljOgogICAgIFRhc2tEaXNwYXRjaGVyKCk7CiAgICAgdm9pZCBwb3N0VGFz
ayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CkBAIC02MiwxMiArNjIsMTEgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgZGlzcGF0Y2hPbmVUYXNrKCk7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxUYXNr
RGlzcGF0Y2hlcj4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4+IG1fcGVuZGluZ1Rhc2tzOwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFz
cyBHZW5lcmljVGFza1F1ZXVlIHsKK2NsYXNzIEdlbmVyaWNUYXNrUXVldWUgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8R2VuZXJpY1Rhc2tRdWV1ZTxUPj4gewogcHVibGljOgogICAgIEdlbmVyaWNU
YXNrUXVldWUoKQogICAgICAgICA6IG1fZGlzcGF0Y2hlcigpCkBAIC04Nyw4ICs4Niw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICArK21fcGVuZGluZ1Rhc2tzOwot
ICAgICAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0
aGlzKTsKLSAgICAgICAgbV9kaXNwYXRjaGVyLnBvc3RUYXNrKFt3ZWFrVGhpcywgdGFzayA9IFdU
Rk1vdmUodGFzayldIHsKKyAgICAgICAgbV9kaXNwYXRjaGVyLnBvc3RUYXNrKFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldIHsKICAgICAgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgQVNT
RVJUKHdlYWtUaGlzLT5tX3BlbmRpbmdUYXNrcyk7CkBAIC0xMDUsMTMgKzEwMywxMiBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGNhbmNlbEFsbFRhc2tzKCkKICAgICB7Ci0gICAgICAgIG1fd2Vha1B0
ckZhY3RvcnkucmV2b2tlQWxsKCk7CisgICAgICAgIENhbk1ha2VXZWFrUHRyPEdlbmVyaWNUYXNr
UXVldWU8VD4+Ojp3ZWFrUHRyRmFjdG9yeSgpLnJldm9rZUFsbCgpOwogICAgICAgICBtX3BlbmRp
bmdUYXNrcyA9IDA7CiAgICAgfQogICAgIGJvb2wgaGFzUGVuZGluZ1Rhc2tzKCkgY29uc3QgeyBy
ZXR1cm4gbV9wZW5kaW5nVGFza3M7IH0KIAogcHJpdmF0ZToKLSAgICBXZWFrUHRyRmFjdG9yeTxH
ZW5lcmljVGFza1F1ZXVlPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFRhc2tEaXNwYXRjaGVyPFQ+
IG1fZGlzcGF0Y2hlcjsKICAgICB1bnNpZ25lZCBtX3BlbmRpbmdUYXNrcyB7IDAgfTsKICAgICBi
b29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CmluZGV4IDc5NzgxMDIwNDlkNmY1YmEyYjgzNGQwMzU5OWYyN2ExNDU3Mjc0N2YuLmU0NWFkMmJi
YzM3MzNjZTRiOTNmMzU2MzYxYzM2Yjk1NTMxMGZmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmgKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeVBhZ2VUaGF0Q29udGVudEFyZWFXaWxsUGFpbnQoKSBjb25zdDsKIAorICAgIHVzaW5n
IFdpZGdldDo6d2Vha1B0ckZhY3Rvcnk7CisKICAgICBJbnRQb2ludCBsb2NhdGlvbk9mQ29udGVu
dHMoKSBjb25zdDsKIAogICAgIC8vIE5PVEU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5
IHRoZSBvdmVycmlkZW4gc2V0U2Nyb2xsT2Zmc2V0IGZyb20gU2Nyb2xsYWJsZUFyZWEuCkBAIC0z
NzIsOCArMzc0LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzVW5jbGFtcGVkU2Nyb2xs
UG9zaXRpb25Gb3JUZXN0aW5nKGJvb2wgYWxsb3dzVW5jbGFtcGVkU2Nyb2xsUG9zaXRpb24pIHsg
bV9hbGxvd3NVbmNsYW1wZWRTY3JvbGxQb3NpdGlvbiA9IGFsbG93c1VuY2xhbXBlZFNjcm9sbFBv
c2l0aW9uOyB9CiAgICAgYm9vbCBhbGxvd3NVbmNsYW1wZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fYWxsb3dzVW5jbGFtcGVkU2Nyb2xsUG9zaXRpb247IH0KIAotICAgIGF1dG8m
IHdlYWtQdHJGYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeTsgfQotCiBw
cm90ZWN0ZWQ6CiAgICAgU2Nyb2xsVmlldygpOwogCkBAIC00NjAsOCArNDYwLDYgQEAgcHJpdmF0
ZToKIAogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsSWNvblBvaW50OwogCi0gICAgV2Vha1B0ckZh
Y3Rvcnk8U2Nyb2xsVmlldz4gbV93ZWFrUHRyRmFjdG9yeTsKLQogICAgIGJvb2wgbV9ob3Jpem9u
dGFsU2Nyb2xsYmFyTG9jayB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZlcnRpY2FsU2Nyb2xsYmFy
TG9jayB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CmluZGV4IGIyNzNhZjA1ODU0OGRhYWRiZjIxMTBmMWQ5ZGJlOGQ2NzUxNjEzN2UuLmI3MTkzOWI3
YmM4NWI1MTgxNjhiYzc5ZjBiZDRjYTkyM2FhMmEyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNDgsNyArNDgsNyBAQCB0eXBlZGVmIEludFBvaW50IFNj
cm9sbFBvc2l0aW9uOwogLy8gc2Nyb2xsT2Zmc2V0KCkgaXMgdGhlIHZhbHVlIHVzZWQgYnkgc2Ny
b2xsYmFycyAobWluIGlzIDAsMCksIGFuZCBzaG91bGQgbmV2ZXIgaGF2ZSBuZWdhdGl2ZSBjb21w
b25lbnRzLgogdHlwZWRlZiBJbnRQb2ludCBTY3JvbGxPZmZzZXQ7CiAKLWNsYXNzIFNjcm9sbGFi
bGVBcmVhIHsKK2NsYXNzIFNjcm9sbGFibGVBcmVhIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNj
cm9sbGFibGVBcmVhPiB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGwo
U2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkKTsKQEAgLTY1LDggKzY1LDYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCi0gICAgYXV0
byYgd2Vha1B0ckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5OyB9Ci0K
ICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFZl
Y3RvcjxMYXlvdXRVbml0PiogaG9yaXpvbnRhbFNuYXBPZmZzZXRzKCkgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgY29uc3QgVmVjdG9yPExheW91dFVuaXQ+KiB2ZXJ0aWNhbFNuYXBPZmZzZXRz
KCkgY29uc3Q7CkBAIC0zMzgsOCArMzM2LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBoYXNM
YXllckZvclNjcm9sbENvcm5lcigpIGNvbnN0OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8U2Nyb2xs
YWJsZUFyZWE+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0KIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdEludGVybmFsKFZpc2libGVDb250
ZW50UmVjdEluY2x1ZGVzU2Nyb2xsYmFycywgVmlzaWJsZUNvbnRlbnRSZWN0QmVoYXZpb3IpIGNv
bnN0OwogICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKGNvbnN0IFNjcm9sbFBvc2l0aW9u
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCmluZGV4IDFhODZiZjMzMjViY2I3MzE3
ODE3ZTY3ZGFkMTExMmI0ZGNhMDJlYzQuLjYyZjUwNDRhODM5M2JlNjRlZWJiYzY0NzU0NzVlOGIy
ZTJkNzIwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCkBAIC0yOCw3ICsyOCw2
IEBACiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgIldpZGdldC5oIgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMTMzLDggKzEzMiw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc3VwcG9ydHNV
cGRhdGVPblNlY29uZGFyeVRocmVhZCgpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxTY3JvbGxiYXI+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KnRoaXMpOyB9Ci0KIHByb3RlY3RlZDoKICAgICBTY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEmLCBT
Y3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemUsIFNjcm9sbGJhclRoZW1l
KiA9IDAsIGJvb2wgaXNDdXN0b21TY3JvbGxiYXIgPSBmYWxzZSk7CiAKQEAgLTE4Myw4ICsxODAs
NiBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1Njcm9sbGJhcigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQotICAgIFdlYWtQdHJGYWN0b3J5PFNjcm9sbGJh
cj4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9XaWRnZXQuY3BwCmluZGV4IDQwMjM1OGJkYTg1NWRmNjA3OWM2Y2E3N2ZhNzc5
NDhlNDMyNTNiOTQuLmM1Zjc4ZDJkYzJmNmUzMzJmZTI4NjBhYjM0NTVhNDRmMzhhOGEzZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmNwcApAQCAtNDYsNyArNDYsNyBAQCB2b2lkIFdpZGdl
dDo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpCiAgICAgQVNTRVJUKCF2aWV3IHx8ICFtX3Bh
cmVudCk7CiAgICAgaWYgKCF2aWV3IHx8ICF2aWV3LT5pc1Zpc2libGUoKSkKICAgICAgICAgc2V0
UGFyZW50VmlzaWJsZShmYWxzZSk7Ci0gICAgbV9wYXJlbnQgPSB2aWV3ID8gbWFrZVdlYWtQdHIo
KnZpZXcpIDogbnVsbHB0cjsKKyAgICBtX3BhcmVudCA9IG1ha2VXZWFrUHRyKHZpZXcpOwogICAg
IGlmICh2aWV3ICYmIHZpZXctPmlzVmlzaWJsZSgpKQogICAgICAgICBzZXRQYXJlbnRWaXNpYmxl
KHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRleCA0MDgxNDYwY2YyNjNlZmFl
NWVkYmM1YTVlOTAzMWM3NWQ1OTNlOWNjLi5mMzFmMjQ1YTgwYmJkNzBhY2NlNjIxMTg1NDljZDJk
NDAwYWMyMWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaApAQCAtODcsNyArODcsNyBAQCBl
bnVtIFdpZGdldE5vdGlmaWNhdGlvbiB7IFdpbGxQYWludEZsYXR0ZW5lZCwgRGlkUGFpbnRGbGF0
dGVuZWQgfTsKIC8vIFNjcm9sbGJhciAtIE1hYywgR3RrCiAvLyBQbHVnaW4gLSBNYWMsIFdpbmRv
d3MgKHdpbmRvd2VkIG9ubHkpLCBRdCAod2luZG93ZWQgb25seSwgd2lkZ2V0IGlzIGFuIEhXTkQg
b24gd2luZG93cyksIEd0ayAod2luZG93ZWQgb25seSkKIC8vCi1jbGFzcyBXaWRnZXQgOiBwdWJs
aWMgUmVmQ291bnRlZDxXaWRnZXQ+IHsKK2NsYXNzIFdpZGdldCA6IHB1YmxpYyBSZWZDb3VudGVk
PFdpZGdldD4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXaWRnZXQ+IHsKIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBleHBsaWNpdCBXaWRnZXQoUGxhdGZvcm1XaWRnZXQgPSBudWxscHRyKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5XaWRnZXQoKTsKQEAgLTE4Nyw4ICsxODcsNiBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0VG9D
b250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2lu
dCYpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxXaWRnZXQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KIHByaXZhdGU6CiAg
ICAgdm9pZCBpbml0KFBsYXRmb3JtV2lkZ2V0KTsgLy8gTXVzdCBiZSBjYWxsZWQgYnkgYWxsIFdp
ZGdldCBjb25zdHJ1Y3RvcnMgdG8gaW5pdGlhbGl6ZSBjcm9zcy1wbGF0Zm9ybSBkYXRhLgogCkBA
IC0yMTAsNyArMjA4LDYgQEAgcHJpdmF0ZToKICNlbHNlCiAgICAgUmV0YWluUHRyPE5TVmlldz4g
bV93aWRnZXQ7CiAjZW5kaWYKLSAgICBXZWFrUHRyRmFjdG9yeTxXaWRnZXQ+IG1fd2Vha1B0ckZh
Y3Rvcnk7CiAgICAgYm9vbCBtX3NlbGZWaXNpYmxlOwogICAgIGJvb2wgbV9wYXJlbnRWaXNpYmxl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDc4OTg2OTMz
MmVjOTE1MTVlZGFkZTZhMGVkMzgzMmNkMWM0NDZjY2UuLmI5MTIwNzczZGQ1MTAxNWMxNjI3ODRj
ZDI3MTgwOTA3NjhlZmI3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIu
Y3BwCkBAIC0zOCw3ICszOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXVk
aW9GaWxlUmVhZGVyIHsKK2NsYXNzIEF1ZGlvRmlsZVJlYWRlciA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxBdWRpb0ZpbGVSZWFkZXI+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb0Zp
bGVSZWFkZXIpOwogcHVibGljOgogICAgIEF1ZGlvRmlsZVJlYWRlcihjb25zdCBjaGFyKiBmaWxl
UGF0aCk7CkBAIC00OCw4ICs0OCw2IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QXVkaW9CdXM+IGNy
ZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubyk7CiAKIHByaXZhdGU6Ci0g
ICAgV2Vha1B0cjxBdWRpb0ZpbGVSZWFkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KICAgICBzdGF0aWMgdm9pZCBk
ZWludGVybGVhdmVQYWRBZGRlZENhbGxiYWNrKEF1ZGlvRmlsZVJlYWRlciosIEdzdFBhZCopOwog
ICAgIHN0YXRpYyB2b2lkIGRlaW50ZXJsZWF2ZVJlYWR5Q2FsbGJhY2soQXVkaW9GaWxlUmVhZGVy
Kik7CiAgICAgc3RhdGljIHZvaWQgZGVjb2RlYmluUGFkQWRkZWRDYWxsYmFjayhBdWRpb0ZpbGVS
ZWFkZXIqLCBHc3RQYWQqKTsKQEAgLTYxLDcgKzU5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRl
Y29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24oKTsKICAgICBHc3RGbG93UmV0dXJuIGhhbmRsZVNhbXBs
ZShHc3RBcHBTaW5rKik7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxBdWRpb0ZpbGVSZWFkZXI+IG1f
d2Vha1B0ckZhY3Rvcnk7CiAgICAgUnVuTG9vcCYgbV9ydW5Mb29wOwogICAgIGNvbnN0IHZvaWQq
IG1fZGF0YSB7IG51bGxwdHIgfTsKICAgICBzaXplX3QgbV9kYXRhU2l6ZSB7IDAgfTsKQEAgLTMw
MSw3ICsyOTgsNyBAQCB2b2lkIEF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVh
dGlvbigpCiAgICAgICAgICAgICByZWFkZXIuaGFuZGxlTWVzc2FnZShtZXNzYWdlKTsKICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICBHUmVmUHRyPEdzdE1lc3NhZ2U+IHByb3RlY3RNZXNzYWdl
KG1lc3NhZ2UpOwotICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IHJlYWRlci5jcmVhdGVXZWFr
UHRyKCk7CisgICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIocmVhZGVyKTsK
ICAgICAgICAgICAgIHJlYWRlci5tX3J1bkxvb3AuZGlzcGF0Y2goW3dlYWtUaGlzLCBwcm90ZWN0
TWVzc2FnZV0gewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAg
ICAgICAgd2Vha1RoaXMtPmhhbmRsZU1lc3NhZ2UocHJvdGVjdE1lc3NhZ2UuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9I
YXJkd2FyZUxpc3RlbmVyTWFjLmNwcAppbmRleCBkYmJkYzlmMGE5N2Y1YmE0OTBjZjUwMWRiMzNj
MjI0NTNkNzk4Nzg0Li43OGNiNjA3YmZiZGU0ZTQ0YTdkNjEyZDFkNDFlYWEwZmE3NzM5OTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIEF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYzo6QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjKENsaWVudCYgY2xpZW50
KQogICAgIHNldEhhcmR3YXJlQWN0aXZpdHkoaXNBdWRpb0hhcmR3YXJlUHJvY2Vzc1J1bm5pbmco
KSk7CiAgICAgc2V0T3V0cHV0RGV2aWNlU3VwcG9ydHNMb3dQb3dlck1vZGUoY3VycmVudERldmlj
ZVN1cHBvcnRzTG93UG93ZXJCdWZmZXJTaXplKCkpOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1f
d2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKTsKICAgICBtX2Jsb2NrID0gQmxvY2tfY29weSheKFVJbnQzMiBjb3Vu
dCwgY29uc3QgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MgcHJvcGVydGllc1tdKSB7CiAgICAg
ICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5wcm9wZXJ0eUNoYW5nZWQo
Y291bnQsIHByb3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oCmluZGV4IDYwNTdkMzg0
MGQxM2M5MjQzNTUxNmRmNTI3MzRmY2ExY2YzZDZlNDguLjA3MjBjZTQ3MmViMDg3ZWJlZmUzZTE2
OGNjZWZlNjI4Zjk3MGVlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmgKQEAgLTM1LDcgKzM1
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJNYWMgOiBwdWJsaWMgQXVkaW9IYXJkd2FyZUxpc3RlbmVyIHsKK2NsYXNzIEF1ZGlvSGFyZHdh
cmVMaXN0ZW5lck1hYyA6IHB1YmxpYyBBdWRpb0hhcmR3YXJlTGlzdGVuZXIsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM+IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgV1RGOjpSZWY8QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjPiBjcmVhdGUoQ2xpZW50Jik7CiAK
QEAgLTQ5LDcgKzQ5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByb3BlcnR5Q2hhbmdlZChVSW50
MzIsIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzW10pOwogCiAgICAgQXVkaW9PYmpl
Y3RQcm9wZXJ0eUxpc3RlbmVyQmxvY2sgbV9ibG9jazsKLSAgICBXZWFrUHRyRmFjdG9yeTxBdWRp
b0hhcmR3YXJlTGlzdGVuZXJNYWM+IG1fd2Vha0ZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtl
eS9DRE1DbGVhcktleS5jcHAKaW5kZXggY2VkNTQ2YzZkOWU5ZmZiYzRlMGM5OTk3NDA3YmRhZDc2
ZmUzMzk5MS4uYjQ1Mjc4MGQxMTE3MzAwMDY2N2MyOGFiM2FlZjhhNjlkOTg0YzY0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RN
Q2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcApAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgQ0RNSW5z
dGFuY2VDbGVhcktleTo6cmVxdWVzdExpY2Vuc2UoTGljZW5zZVR5cGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgaW5pdERhCiAgICAgICAgIGluaXREYXRhID0gZXh0cmFjdEtleWlkc0Zyb21DZW5jSW5p
dERhdGEoaW5pdERhdGEuZ2V0KCkpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZCgKLSAgICAgICAg
W3dlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgaW5pdERhdGEgPSBXVEZNb3ZlKGluaXREYXRhKSwgc2Vz
c2lvbklkVmFsdWUgPSBzX3Nlc3Npb25JZFZhbHVlXSgpIG11dGFibGUgeworICAgICAgICBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayks
IGluaXREYXRhID0gV1RGTW92ZShpbml0RGF0YSksIHNlc3Npb25JZFZhbHVlID0gc19zZXNzaW9u
SWRWYWx1ZV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogCkBAIC00OTcsNyArNDk3LDcgQEAgdm9pZCBDRE1JbnN0YW5jZUNs
ZWFyS2V5Ojp1cGRhdGVMaWNlbnNlKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBMaWNlbnNlVHlw
ZSwgY28KICAgICBhdXRvIGRpc3BhdGNoQ2FsbGJhY2sgPQogICAgICAgICBbdGhpcywgJmNhbGxi
YWNrXShib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8S2V5U3RhdHVzVmVjdG9y
PiYmIGNoYW5nZWRLZXlzLCBTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBj
YWxsT25NYWluVGhyZWFkKAotICAgICAgICAgICAgICAgIFt3ZWFrVGhpcyA9IG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayks
IHNlc3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlzID0gV1RGTW92ZShjaGFuZ2VkS2V5cyksIHN1
Y2NlZWRlZF0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBzZXNzaW9uV2FzQ2xv
c2VkLCBjaGFuZ2VkS2V5cyA9IFdURk1vdmUoY2hhbmdlZEtleXMpLCBzdWNjZWVkZWRdICgpIG11
dGFibGUgewogICAgICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01OTcsNyArNTk3LDcgQEAgdm9pZCBDRE1JbnN0YW5j
ZUNsZWFyS2V5Ojpsb2FkU2Vzc2lvbihMaWNlbnNlVHlwZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9u
SWQsIGNvbnMKICAgICBhdXRvIGRpc3BhdGNoQ2FsbGJhY2sgPQogICAgICAgICBbdGhpcywgJmNh
bGxiYWNrXShzdGQ6Om9wdGlvbmFsPEtleVN0YXR1c1ZlY3Rvcj4mJiBleGlzdGluZ0tleXMsIFN1
Y2Nlc3NWYWx1ZSBzdWNjZXNzLCBTZXNzaW9uTG9hZEZhaWx1cmUgbG9hZEZhaWx1cmUpIHsKICAg
ICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAgICAgICAgICAgW3dlYWtUaGlzID0g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKSwgZXhpc3RpbmdLZXlzID0gV1RGTW92ZShleGlzdGluZ0tleXMpLCBzdWNjZXNz
LCBsb2FkRmFpbHVyZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGV4aXN0aW5n
S2V5cyA9IFdURk1vdmUoZXhpc3RpbmdLZXlzKSwgc3VjY2VzcywgbG9hZEZhaWx1cmVdKCkgbXV0
YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTYyNyw3ICs2MjcsNyBAQCB2b2lkIENETUluc3RhbmNl
Q2xlYXJLZXk6OmxvYWRTZXNzaW9uKExpY2Vuc2VUeXBlLCBjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZCwgY29ucwogdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5OjpjbG9zZVNlc3Npb24oY29uc3QgU3Ry
aW5nJiwgQ2xvc2VTZXNzaW9uQ2FsbGJhY2sgY2FsbGJhY2spCiB7CiAgICAgY2FsbE9uTWFpblRo
cmVhZCgKLSAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0geworICAgICAgICBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsK
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC02NDEsNyArNjQxLDcgQEAgdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5OjpyZW1vdmVTZXNzaW9u
RGF0YShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGljZW5zZVR5cGUKICAgICBhdXRvIGRpc3Bh
dGNoQ2FsbGJhY2sgPQogICAgICAgICBbdGhpcywgJmNhbGxiYWNrXShLZXlTdGF0dXNWZWN0b3Im
JiBrZXlTdGF0dXNWZWN0b3IsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYgbWVz
c2FnZSwgU3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpIHsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoCi0gICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwga2V5U3RhdHVzVmVj
dG9yID0gV1RGTW92ZShrZXlTdGF0dXNWZWN0b3IpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdl
KSwgc3VjY2Vzc10oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGtleVN0YXR1c1Zl
Y3RvciA9IFdURk1vdmUoa2V5U3RhdHVzVmVjdG9yKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2Fn
ZSksIHN1Y2Nlc3NdKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5oCmluZGV4IGQ5OGZlMDdkMTA1ZDJiMTA4MGFiZDNkNTNmMTc0ZGQwMzFmNDE3YzkuLmNk
NGM4ODAxYzE5YWFiMGU2MTIzNTI0MjIxMTBhZjQ1ZWE4MTE2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RN
Q2xlYXJLZXkuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IHNhbml0aXplU2Vzc2lvbklkKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwog
fTsKIAotY2xhc3MgQ0RNSW5zdGFuY2VDbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1JbnN0YW5j
ZSB7CitjbGFzcyBDRE1JbnN0YW5jZUNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETUluc3RhbmNl
LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFuY2VDbGVhcktleT4gewogcHVibGljOgog
ICAgIENETUluc3RhbmNlQ2xlYXJLZXkoKTsKICAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZUNsZWFy
S2V5KCk7CkBAIC0xMDMsOSArMTAzLDYgQEAgcHVibGljOgogICAgIH07CiAKICAgICBjb25zdCBW
ZWN0b3I8S2V5PiBrZXlzKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgV2Vha1B0ckZhY3Rvcnk8
Q0RNSW5zdGFuY2VDbGVhcktleT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fz
Y2FkZS5oCmluZGV4IDM1MjlhOTU2OTc4MTY1MmU3OTQ4MzFlODIzMWE4MmJmY2Q0NTViN2MuLjAw
NTkwNzUxYWFhM2QzYWQ3ZTZmMDllMzdiMTA5ZjkxYzhlZGZlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaApAQCAtOTgsNyArOTgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBvcGVyYXRvcigpKFRleHRMYXlvdXQqKSBjb25zdDsKIH07CiAKLWNs
YXNzIEZvbnRDYXNjYWRlIHsKK2NsYXNzIEZvbnRDYXNjYWRlIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPEZvbnRDYXNjYWRlPiB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRm9udENhc2Nh
ZGUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBGb250Q2FzY2FkZShGb250Q2FzY2FkZURlc2NyaXB0
aW9uJiYsIGZsb2F0IGxldHRlclNwYWNpbmcgPSAwLCBmbG9hdCB3b3JkU3BhY2luZyA9IDApOwpA
QCAtMTk5LDggKzE5OSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcHJpbWFyeUZvbnRJc1N5c3Rl
bUZvbnQoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0ZVdlYWtQdHIo
KSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nh
c3Q8Rm9udENhc2NhZGUqPih0aGlzKSk7IH0KLQogICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q+IGRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBUZXh0UnVuJiwgdW5zaWduZWQgZnJvbSA9IDAsIHN0ZDo6b3B0aW9uYWw8dW5zaWdu
ZWQ+IHRvID0geyB9LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24gPSBDdXN0b21Gb250Tm90UmVh
ZHlBY3Rpb246OkRvTm90UGFpbnRJZkZvbnROb3RSZWFkeSkgY29uc3Q7CiAgICAgCiBwcml2YXRl
OgpAQCAtMzEzLDcgKzMxMSw2IEBAIHByaXZhdGU6CiAKICAgICBGb250Q2FzY2FkZURlc2NyaXB0
aW9uIG1fZm9udERlc2NyaXB0aW9uOwogICAgIG11dGFibGUgUmVmUHRyPEZvbnRDYXNjYWRlRm9u
dHM+IG1fZm9udHM7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8Rm9udENhc2NhZGU+IG1fd2Vha1B0ckZh
Y3Rvcnk7CiAgICAgZmxvYXQgbV9sZXR0ZXJTcGFjaW5nIHsgMCB9OwogICAgIGZsb2F0IG1fd29y
ZFNwYWNpbmcgeyAwIH07CiAgICAgbXV0YWJsZSBib29sIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1i
b2wgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCAxZDI4NzBlZjc2OGEwMzU5OGM4ODE5OThjMjU0ZGQ0
MjU1N2M1ZGYwLi5jZTk3MzUxNjk5NTAyMDQ0YjI2N2EwOGQ1YzU4NjkwZDA2NTQwNTI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcApAQCAtNzk5LDcgKzc5OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uOjpzY2hlZHVsZU1haW5UaHJlYWROb3RpZmljYXRpb24oTm90aWZpY2F0aW9uCiAgICAgaWYg
KGRlbGF5RGlzcGF0Y2ggJiYgIW1fbWFpblRocmVhZENhbGxQZW5kaW5nKSB7CiAgICAgICAgIG1f
bWFpblRocmVhZENhbGxQZW5kaW5nID0gdHJ1ZTsKIAotICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKV0geworICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTgzMiw3ICs4MzIsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlzcGF0Y2hOb3RpZmljYXRpb24oKQog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoIW1fcXVldWVkTm90aWZpY2F0aW9ucy5p
c0VtcHR5KCkgJiYgIW1fbWFpblRocmVhZENhbGxQZW5kaW5nKSB7Ci0gICAgICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKV0geworICAgICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKICAgICAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aAppbmRleCA3MDNmMzVkZmQwZDIwMTVjMTFlZjNmMGVlNTJkMjliNmQ5ZDgxYTczLi4zZmJjZGFm
YWM3YWU0MWQxYjI2YjRhOTViMDQ4ZTZiNzI0MmYwYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC00Niw3ICs0Niw3IEBA
IGNsYXNzIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjsKIGNsYXNzIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY7CiBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIAotY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSwgcHVibGljIEFWRkluYmFuZFRyYWNrUGFyZW50CitjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uPiwgcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGlj
IEFWRkluYmFuZFRyYWNrUGFyZW50CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBw
cml2YXRlIExvZ2dlckhlbHBlcgogI2VuZGlmCkBAIC0xNTksOCArMTU5LDYgQEAgcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXll
ciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbigpOwogCi0g
ICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KICAg
ICAvLyBNZWRpYVBsYXllclByaXZhdGVQcml2YXRlSW50ZXJmYWNlIG92ZXJyaWRlcy4KICAgICB2
b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCkBAIC0zMzAsOCArMzI4LDYgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBNZWRp
YVBsYXllciogbV9wbGF5ZXI7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0KICAgICBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4gbV9wZW5kaW5nU2VlazsKIAogICAgIERlcXVlPE5vdGlmaWNhdGlvbj4gbV9xdWV1ZWRO
b3RpZmljYXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgKaW5kZXggYmNhN2I5MzRhYjA5ZWVh
MjIzZDg2NTY3YTBiNGIzYzAzZjYwMjNkZC4uODNiOWQ1MDIzY2MxOGE5ZTQyOTNmZjYyNWFmMTUz
M2NhMmZhMDEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oCkBAIC00Miw3ICs0Miw3IEBAIE9C
SkNfQ0xBU1MgV2ViQ29yZUZQU0NvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGU7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMg
ZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2UgeworY2xhc3MgQ0RNSW5zdGFuY2VGYWlyUGxheVN0
cmVhbWluZ0FWRk9iakMgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2UsIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQz4gewogcHVibGljOgog
ICAgIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKCk7CiAgICAgdmlydHVhbCB+
Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMoKTsKQEAgLTgyLDEyICs4MiwxMCBA
QCBwdWJsaWM6CiAgICAgQVZDb250ZW50S2V5U2Vzc2lvbiAqY29udGVudEtleVNlc3Npb24oKSB7
IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBXZWFrUHRyPENETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIGJvb2wgaXNMaWNl
bnNlVHlwZVN1cHBvcnRlZChMaWNlbnNlVHlwZSkgY29uc3Q7CiAKICAgICBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IGtleUlEcygpOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8Q0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gbV9zZXJ2ZXJDZXJ0aWZpY2F0ZTsKICAgICBib29sIG1fcGVyc2lzdGVudFN0
YXRlQWxsb3dlZCB7IHRydWUgfTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IG1fc3RvcmFnZURpcmVj
dG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5kZXggMDNhYTYyNzZjMGFhYmNhM2FkNTQ0
NTQzMjA2N2MxZDA2ZDY4OTZmNy4uNDYzMDQxNjRlMmUxMzQ0ZWY0NGY1MTM3ZjlhYzdhZmRmZTMw
Mjc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KQEAgLTQ1NSw3ICs0NTUsNyBAQCB2b2lk
IENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVxdWVzdChB
VkNvbnRlbnRLZXlSZXF1ZXN0CiAgICAgfQogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY29udGVu
dElkZW50aWZpZXIgPSBrZXlJRHMuZmlyc3QoKS0+Y3JlYXRlTlNEYXRhKCk7Ci0gICAgW21fcmVx
dWVzdCBtYWtlU3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmFwcElkZW50aWZp
ZXIuZ2V0KCkgY29udGVudElkZW50aWZpZXI6Y29udGVudElkZW50aWZpZXIuZ2V0KCkgb3B0aW9u
czpuaWwgY29tcGxldGlvbkhhbmRsZXI6W3RoaXMsIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigp
XSAoTlNEYXRhICpjb250ZW50S2V5UmVxdWVzdERhdGEsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxl
IHsKKyAgICBbbV9yZXF1ZXN0IG1ha2VTdHJlYW1pbmdDb250ZW50S2V5UmVxdWVzdERhdGFGb3JB
cHA6YXBwSWRlbnRpZmllci5nZXQoKSBjb250ZW50SWRlbnRpZmllcjpjb250ZW50SWRlbnRpZmll
ci5nZXQoKSBvcHRpb25zOm5pbCBjb21wbGV0aW9uSGFuZGxlcjpbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyldIChOU0RhdGEgKmNvbnRlbnRLZXlSZXF1ZXN0RGF0YSwgTlNFcnJv
ciAqZXJyb3IpIG11dGFibGUgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFr
VGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBlcnJvciA9IHJldGFpblB0cihlcnJvciksIGNvbnRl
bnRLZXlSZXF1ZXN0RGF0YSA9IHJldGFpblB0cihjb250ZW50S2V5UmVxdWVzdERhdGEpXSB7CiAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFtX3JlcXVlc3RMaWNlbnNlQ2FsbGJhY2spCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMWFiZTcyYWFlYTBjYWQzMTI1MThjYTQy
NzVhOTkwOWMyZWQ5ZDk3OS4uMjJhYWZlYzdiODM0MjdiODEzMGE3YzA0M2Y4ZjY3MjA4MzRjY2E0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzsKIAotY2xhc3MgQ0RNU2Vzc2lvbkFW
Rm91bmRhdGlvbk9iakMgOiBwdWJsaWMgTGVnYWN5Q0RNU2Vzc2lvbiB7CitjbGFzcyBDRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBMZWdhY3lDRE1TZXNzaW9uLCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IHsKIHB1YmxpYzoKICAgICBD
RE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKiBwYXJlbnQsIExlZ2FjeUNETVNlc3Npb25DbGllbnQqKTsKICAgICB2aXJ0dWFsIH5DRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQygpOwpAQCAtNTMsMTQgKzUzLDExIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcGxheWVyRGlkUmVjZWl2ZUVycm9yKE5TRXJyb3IgKik7CiAKLSAgICBXZWFrUHRy
PENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiBwcm90ZWN0ZWQ6CiAgICAg
V2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBtX3BhcmVudDsKICAg
ICBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KiBtX2NsaWVudDsKICAgICBTdHJpbmcgbV9zZXNzaW9u
SWQ7CiAgICAgUmV0YWluUHRyPEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0PiBtX3JlcXVl
c3Q7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IG1fd2Vh
a1B0ckZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGQ4MmVmNzRlZWVkZTczNDZlZTVkNTVl
YTA5YWM5NzAxZDAwMmIxMGUuLjgyZjRjZGMwNzBmNTNhZDA3ZTZiOWI1ZjJjODM0NGY4ODI2M2Iy
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLm1tCkBAIC01MCw3ICs1MCw3IEBAIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRp
b24sIEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0KQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMo
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyogcGFyZW50LCBMZWdhY3lDRE1TZXNz
aW9uQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3BhcmVudChwYXJlbnQtPmNyZWF0ZVdlYWtQdHIo
KSkKKyAgICA6IG1fcGFyZW50KG1ha2VXZWFrUHRyKCpwYXJlbnQpKQogICAgICwgbV9jbGllbnQo
Y2xpZW50KQogICAgICwgbV9zZXNzaW9uSWQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lv
bi5oCmluZGV4IDBiNzRkYTQwNDVhNzU4N2QxNDBlNDhkNTJmZjU0ZGQ3ZGM2NzkxYmMuLmUxZGU3
MmE4NzJiNDc1MzliYTA1OTNhYmI5ZjQ4Y2M0NzU2MmU1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0
cmVhbVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLmgKQEAgLTQwLDcgKzQwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOwogCi1jbGFzcyBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uIDogcHVibGljIENETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakMgeworY2xhc3MgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbiA6
IHB1YmxpYyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbj4gewogcHVibGljOgogICAgIENETVNlc3Npb25B
VlN0cmVhbVNlc3Npb24oY29uc3QgVmVjdG9yPGludD4mIHByb3RvY29sVmVyc2lvbnMsIENETVBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmLCBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50Kik7CiAgICAg
dmlydHVhbCB+Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbigpOwpAQCAtNjAsNyArNjAsNiBAQCBw
dWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVs
ZWFzZU1lc3NhZ2UodW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWludDMyX3QmIHN5c3RlbUNv
ZGUpOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbj4gbV93
ZWFrUHRyRmFjdG9yeTsKICAgICBSZXRhaW5QdHI8QVZTdHJlYW1TZXNzaW9uPiBtX3N0cmVhbVNl
c3Npb247CiAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1faW5pdERhdGE7CiAgICAgUmVmUHRyPFVp
bnQ4QXJyYXk+IG1fY2VydGlmaWNhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMTMzY2Mw
OGRjYzU2YTIzYWQ1Mjg2ODFkMmUwYTU3ZTZmZWNiZTdjNy4uMzgzMjVlNWI5YjczZjY5ODAyYWIz
OTc3ZTExOTlmZGY5MzY0ZTgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTQ4LDggKzE0
OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RN
SW5zdGFuY2UmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBz
dXBwb3J0CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKTsKQEAgLTMyNSw4ICszMjMsNiBAQCBw
cml2YXRlOgogCiAgICAgQVZQbGF5ZXIgKm9iakNBVkZvdW5kYXRpb25BVlBsYXllcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fYXZQbGF5ZXIuZ2V0KCk7IH0KIAotICAgIFdlYWtQdHJGYWN0b3J5
PE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0K
ICAgICBSZXRhaW5QdHI8QVZVUkxBc3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxBVlBs
YXllcj4gbV9hdlBsYXllcjsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJdGVtPiBtX2F2UGxheWVy
SXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDQ4Y2U3NzkzNWQ5MTIxMzQ1MzllNDJi
N2U3OTdjMGY4NjcwMDQ3ZTYuLmFiNjAyNGQ3ZjU4MzY5OTE0YjhjMTI1M2I1ZmM1OTc3ZGY3MzMw
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNjY3LDcgKzY2Nyw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlVmlkZW9MYXllcigpCiAgICAg
aWYgKCFtX2F2UGxheWVyIHx8IG1faGF2ZUJlZW5Bc2tlZFRvQ3JlYXRlTGF5ZXIpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gY3JlYXRl
V2Vha1B0cigpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJl
dHVybjsKIApAQCAtMTA5Nyw3ICsxMDk3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjaGVja1BsYXlhYmlsaXR5KCkKICAgICBtX2hhdmVDaGVja2VkUGxheWFi
aWxpdHkgPSB0cnVlOwogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7Ci0gICAgYXV0byB3
ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpOwogCiAgICAgW21fYXZBc3NldC5nZXQoKSBsb2FkVmFsdWVzQXN5bmNocm9ub3Vz
bHlGb3JLZXlzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6QCJwbGF5YWJsZSIsIEAidHJhY2tz
IiwgbmlsXSBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3
ZWFrVGhpc10gewpAQCAtMTExMyw3ICsxMTEzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpiZWdpbkxvYWRpbmdNZXRhZGF0YSgpCiAKICAgICBPU09iamVjdFB0
cjxkaXNwYXRjaF9ncm91cF90PiBtZXRhZGF0YUxvYWRpbmdHcm91cCA9IGFkb3B0T1NPYmplY3Qo
ZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCkpOwogICAgIGRpc3BhdGNoX2dyb3VwX2VudGVyKG1ldGFk
YXRhTG9hZGluZ0dyb3VwLmdldCgpKTsKLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0
cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgW21fYXZB
c3NldC5nZXQoKSBsb2FkVmFsdWVzQXN5bmNocm9ub3VzbHlGb3JLZXlzOmFzc2V0TWV0YWRhdGFL
ZXlOYW1lcygpIGNvbXBsZXRpb25IYW5kbGVyOl57CiAKICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbd2Vha1RoaXMsIG1ldGFkYXRhTG9hZGluZ0dyb3VwXSB7CkBAIC0xMzM3LDcgKzEzMzcsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNlZWtUb1RpbWUoY29u
c3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAgIGlmIChDTVRpbWVDb21wYXJlKGNtQmVmb3Jl
LCBrQ01UaW1lWmVybykgPCAwKQogICAgICAgICBjbUJlZm9yZSA9IGtDTVRpbWVaZXJvOwogICAg
IAotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKIAogICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSBzZWVr
VG9UaW1lOmNtVGltZSB0b2xlcmFuY2VCZWZvcmU6Y21CZWZvcmUgdG9sZXJhbmNlQWZ0ZXI6Y21B
ZnRlciBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgZmluaXNoZWQpIHsKICAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1RoaXMsIGZpbmlzaGVkXSB7CkBAIC0yNDE5LDcgKzI0MTksNyBAQCBz
dGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlU2VzcwogICAgIGlmICgha2V5U3lzdGVtSXNTdXBwb3J0ZWQoa2V5
U3lzdGVtKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBzZXNzaW9uID0gc3Rk
OjptYWtlX3VuaXF1ZTxDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQz4odGhpcywgY2xpZW50KTsK
LSAgICBtX3Nlc3Npb24gPSBzZXNzaW9uLT5jcmVhdGVXZWFrUHRyKCk7CisgICAgbV9zZXNzaW9u
ID0gbWFrZVdlYWtQdHIoKnNlc3Npb24pOwogICAgIHJldHVybiBXVEZNb3ZlKHNlc3Npb24pOwog
fQogI2VuZGlmCkBAIC0yOTQxLDcgKzI5NDEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2hvdQog
ICAgIEFTU0VSVChtX3BsYXliYWNrVGFyZ2V0LT50YXJnZXRUeXBlKCkgPT0gTWVkaWFQbGF5YmFj
a1RhcmdldDo6TW9jayk7CiAKICAgICBzZXREZWxheUNhbGxiYWNrcyh0cnVlKTsKLSAgICBhdXRv
IHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyk7CiAgICAgc2NoZWR1bGVNYWluVGhyZWFkTm90aWZpY2F0aW9uKE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Tm90aWZpY2F0aW9uKFt3ZWFrVGhpc10gewogICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzQyMiw3ICszNDIyLDcg
QEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6KGlkKW9i
amVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeQogICAgIGlmICghZnVuY3Rpb24pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGF1dG8gd2Vha1RoaXMgPSBtX2NhbGxiYWNrLT5jcmVhdGVXZWFrUHRyKCk7
CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCptX2NhbGxiYWNrKTsKICAgICBtX2Nh
bGxiYWNrLT5zY2hlZHVsZU1haW5UaHJlYWROb3RpZmljYXRpb24oTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpOb3RpZmljYXRpb24oW3dlYWtUaGlzLCBmdW5jdGlvbiA9IFdURk1vdmUo
ZnVuY3Rpb24pXXsKICAgICAgICAgLy8gd2Vha1RoaXMgYW5kIGZ1bmN0aW9uIGJvdGggcmVmZXIg
dG8gdGhlIHNhbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyBpbnN0YW5jZS4g
SWYgdGhlIFdlYWtQdHIgaGFzCiAgICAgICAgIC8vIGJlZW4gY2xlYXJlZCwgdGhlIHVuZGVybHlp
bmcgb2JqZWN0IGhhcyBiZWVuIGRlc3Ryb3llZCwgYW5kIGl0IGlzIHVuc2FmZSB0byBjYWxsIGZ1
bmN0aW9uKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IGQ2MWU3MjI2MmI4ZTNjOGU2
NTQ1OWExN2Q5ZDQ3NThhYmZiY2ZmYTYuLjZiYjEwMTY2MDNjOTZiZWE4NjFhMmNjMTVkN2JiNmUz
ZjBiNzEyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC01Nyw3ICs1Nyw3IEBAIGNs
YXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y7CiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXJPYmpDOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTsKIAotY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIGZpbmFsIDogcHVibGljIE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHJpdmF0ZSBNZWRpYVN0cmVhbVByaXZhdGU6Ok9ic2Vy
dmVyLCBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIGZpbmFsIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQz4sIHB1YmxpYyBNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHByaXZhdGUgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNl
cnZlciwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCiAjZW5kaWYKQEAg
LTc4LDggKzc4LDYgQEAgcHVibGljOgogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5
U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KICAgICB2b2lkIGVuc3VyZUxheWVycygpOwogICAgIHZv
aWQgZGVzdHJveUxheWVycygpOwogCkBAIC0yMzIsNyArMjMwLDYgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCkgZmluYWw7CiAKICAgICBNZWRpYVBsYXll
ciogbV9wbGF5ZXIgeyBudWxscHRyIH07Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFJlZlB0cjxN
ZWRpYVN0cmVhbVByaXZhdGU+IG1fbWVkaWFTdHJlYW1Qcml2YXRlOwogICAgIFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9hY3RpdmVWaWRlb1RyYWNrOwogICAgIFJldGFpblB0cjxX
ZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyPiBtX3N0YXR1c0NoYW5nZUxpc3Rl
bmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGE5N2M5MzhiMmEyN2M0OWQ0MWE0
ZmE5ZDI3MTVkMjdhZjVkMzQyODcuLmUxZDMwMWRkZGM2OTk5ZDY3NzRjYjUyNDcxMjdkZjlhMTA4
NWI1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTM5NSw3ICszOTUsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2Ft
cGxlKE1lZGlhU3RyZWFtVHJhY2tQcgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cmVxdWVzdE5vdGlmaWNhdGlvbldoZW5SZWFkeUZvclZpZGVvRGF0YSgpCiB7
Ci0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBy
ZXF1ZXN0TWVkaWFEYXRhV2hlblJlYWR5T25RdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
IHVzaW5nQmxvY2s6XiB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1
cm47CkBAIC0xMTMzLDcgKzExMzMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2V0U2hvdWxkQnVmZmVyRGF0YShib29sIHNob3VsZEJ1ZmZlcgogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJyZWRUYXNr
KEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsK
LSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgZnVuY3Rp
b24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0geworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CiAg
ICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5oCmluZGV4
IDU0N2M3OWMyNmY2MTYzNGM3NWVmZWJhNjA3Yjg4ZDg3ZmRlZDEyYTUuLjgxYWIyZjkyNGRhZjI2
Y2RhMjJjNWUyMDA3NzZjMjE4MDIwMjNhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YuaApAQCAtNDMsNyArNDMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCi1jbGFzcyBU
ZXh0dXJlQ2FjaGVDViB7CitjbGFzcyBUZXh0dXJlQ2FjaGVDViA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxUZXh0dXJlQ2FjaGVDVj4gewogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8VGV4dHVyZUNhY2hlQ1Y+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCYpOwogCkBAIC02Myw3
ICs2Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBt
X2NvbnRleHQ7CiAgICAgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+IG1fY2FjaGU7Ci0gICAg
V2Vha1B0ckZhY3Rvcnk8VGV4dHVyZUNhY2hlQ1Y+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJl
Q2FjaGVDVi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVD
YWNoZUNWLm1tCmluZGV4IGJiYjhlNzViMDEzOGRhNjAwMTk5MjA3ZWIzNjBlMmJjY2NiNzNkMDIu
LmNmOTU5Mjk4MjBhMDBmOTc0NmQ5N2M1OTc0OGVkOWY5YTlhMjY0YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCkBA
IC03NCw3ICs3NCw3IEBAIFJldGFpblB0cjxUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZVR5cGU+IFRl
eHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKENWUGl4ZWxCCiAjZW5kaWYKICAgICBSZXRh
aW5QdHI8VGV4dHVyZVR5cGU+IHZpZGVvVGV4dHVyZSA9IGFkb3B0Q0YoYmFyZVZpZGVvVGV4dHVy
ZSk7CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10gewogICAg
ICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA3ZDg0N2YxOGQ3NjZlYTZk
N2ZiNDU4NmI0MzQzNTc2NGI5Zjg5MmFlLi42MzI3YzJjMjFmMzlkNGM1OTRmOGU1MDhiY2FlN2M2
N2NlNGRjNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtNjQxLDcgKzY0MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpjbGVhclRyYWNrcygpCiAjZGVmaW5lIENSRUFURV9UUkFDSyh0eXBlLCBUeXBlKSBcCiAg
ICAgbV9oYXMjI1R5cGUgPSB0cnVlOyBcCiAgICAgaWYgKCF1c2VNZWRpYVNvdXJjZSkge1wKLSAg
ICAgICAgUmVmUHRyPFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBUeXBlIyNU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShjcmVhdGVXZWFrUHRyKCksIGksIHN0cmVhbSk7
IFwKKyAgICAgICAgUmVmUHRyPFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBU
eXBlIyNUcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShtYWtlV2Vha1B0cigqdGhpcyksIGks
IHN0cmVhbSk7IFwKICAgICAgICAgbV8jI3R5cGUjI1RyYWNrcy5hZGQodHJhY2stPmlkKCksIHRy
YWNrKTsgXAogICAgICAgICBtX3BsYXllci0+YWRkIyNUeXBlIyNUcmFjaygqdHJhY2spO1wKICAg
ICAgICAgaWYgKGdzdF9zdHJlYW1fZ2V0X3N0cmVhbV9mbGFncyhzdHJlYW0uZ2V0KCkpICYgR1NU
X1NUUkVBTV9GTEFHX1NFTEVDVCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKQEAgLTgxMiw3ICs4MTIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5UGxheWVyT2ZWaWRlbygpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAg
ICBSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI+IHRyYWNrID0gVmlkZW9UcmFja1By
aXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShjcmVhdGVXZWFrUHRyKCksIGksIHBhZCk7CisgICAgICAg
IFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBWaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFrUHRyKCp0aGlzKSwgaSwgcGFkKTsKICAgICAg
ICAgQVNTRVJUKHN0cmVhbUlkID09IHRyYWNrLT5pZCgpKTsKICAgICAgICAgbV92aWRlb1RyYWNr
cy5hZGQoc3RyZWFtSWQsIHRyYWNrKTsKICAgICAgICAgbV9wbGF5ZXItPmFkZFZpZGVvVHJhY2so
KnRyYWNrKTsKQEAgLTg4Niw3ICs4ODYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bm90aWZ5UGxheWVyT2ZBdWRpbygpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAot
ICAgICAgICBSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXI+IHRyYWNrID0gQXVkaW9U
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShjcmVhdGVXZWFrUHRyKCksIGksIHBhZCk7Cisg
ICAgICAgIFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gdHJhY2sgPSBBdWRpb1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFrUHRyKCp0aGlzKSwgaSwgcGFkKTsK
ICAgICAgICAgQVNTRVJUKHN0cmVhbUlkID09IHRyYWNrLT5pZCgpKTsKICAgICAgICAgbV9hdWRp
b1RyYWNrcy5hZGQoc3RyZWFtSWQsIHRyYWNrKTsKICAgICAgICAgbV9wbGF5ZXItPmFkZEF1ZGlv
VHJhY2soKnRyYWNrKTsKQEAgLTEyMTMsNyArMTIxMyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgY2Fz
ZSBHU1RfTUVTU0FHRV9FTEVNRU5UOgogICAgICAgICBpZiAoZ3N0X2lzX21pc3NpbmdfcGx1Z2lu
X21lc3NhZ2UobWVzc2FnZSkpIHsKICAgICAgICAgICAgIGlmIChnc3RfaW5zdGFsbF9wbHVnaW5z
X3N1cHBvcnRlZCgpKSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPE1lZGlhUGxheWVyUmVxdWVz
dEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrPiBtaXNzaW5nUGx1Z2luQ2FsbGJhY2sgPSBN
ZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3JlYXRlKFt3
ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKV0odWludDMyX3QgcmVzdWx0LCBNZWRpYVBsYXllclJl
cXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYgbWlzc2luZ1BsdWdpbkNhbGxiYWNr
KSB7CisgICAgICAgICAgICAgICAgUmVmUHRyPE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNz
aW5nUGx1Z2luc0NhbGxiYWNrPiBtaXNzaW5nUGx1Z2luQ2FsbGJhY2sgPSBNZWRpYVBsYXllclJl
cXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3JlYXRlKFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKV0odWludDMyX3QgcmVzdWx0LCBNZWRpYVBsYXllclJlcXVlc3RJbnN0
YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYgbWlzc2luZ1BsdWdpbkNhbGxiYWNrKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IEdTVF9JTkZPKCJnb3QgbWlzc2luZyBwbHVnaW5nIGluc3RhbGxhdGlvbiBjYWxsYmFjayBpbiBk
ZXN0cm95ZWQgcGxheWVyIHdpdGggcmVzdWx0ICV1IiwgcmVzdWx0KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaAppbmRleCAxYWU0YTU0YmFlMGFkZDNmZmFmYzEwYTI0YzQwMTU0OTU4M2U4ZDU2Li44
ZGU2MjMzMTZlOTZjNmVjYmVmYzFjM2YwMDE2ZjEzYzkyNzg2ZGJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC02NSw4ICs2NSw2IEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIq
KTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKTsKIAotICAgIFdl
YWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1
cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAgICAgc3RhdGlj
IHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAgICAgdm9p
ZCBoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3Rh
bGxlclJlc3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybik7CkBAIC0yMzYsNyArMjM0LDYgQEAg
cHJvdGVjdGVkOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBtX3dlYWtQdHJGYWN0b3J5OwogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV90ZXh0QXBwU2luazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRl
eCAyZWI0NDFkMjc1M2FlMmQ1ZjVhODhhOTUyYjRiZTZiNWI3ZjBjNWY3Li5jMTcyYmNhZjI0NzZh
Nzk2MTY3MjE4MDdmMzY0MGNmN2U0YzgyZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0zODQsNyArMzg0LDcgQEAgYm9v
bCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBpZiAoY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVua3NO
dW1iZXIgPiAxKQogICAgICAgICAgICAgZXZlbnRLZXlTeXN0ZW1JZFN0cmluZyA9IGVtcHR5U3Ry
aW5nKCk7CiAKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGV2ZW50S2V5U3lzdGVtSWRTdHJp
bmcsIGluaXREYXRhID0gV1RGTW92ZShjb25jYXRlbmF0ZWRJbml0RGF0YUNodW5rcyldIHsKKyAg
ICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgZXZlbnRLZXlTeXN0ZW1JZFN0cmluZywgaW5pdERhdGEgPSBXVEZNb3ZlKGNvbmNhdGVu
YXRlZEluaXREYXRhQ2h1bmtzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTEyNDMsNyArMTI0Myw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoR3N0
RXZlbnQqIGV2CiAgICAgZ3N0X2J1ZmZlcl91bm1hcChkYXRhLCAmbWFwSW5mbyk7CiAKICAgICBT
dHJpbmcgZXZlbnRLZXlTeXN0ZW1VVUlEU3RyaW5nID0gZXZlbnRLZXlTeXN0ZW1VVUlEOwotICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpLCBldmVudEtleVN5c3RlbVVVSUQgPSBldmVudEtleVN5c3RlbVVV
SURTdHJpbmcsIGluaXREYXRhXSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgZXZlbnRLZXlTeXN0ZW1VVUlEID0gZXZlbnRLZXlT
eXN0ZW1VVUlEU3RyaW5nLCBpbml0RGF0YV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuaAppbmRleCBjZTVkODI1YjFmZDlmY2U1YmIwNzg1NTQzM2M4M2Y5N2Jl
MGIxZjdlLi43ODYyYThjZDVjMjM1MTYzZTgyMTcwNmVlODJjNzdlMWZhNDc2MTFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTYx
LDcgKzYxLDcgQEAgY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTsKIAogdm9p
ZCByZWdpc3RlcldlYktpdEdTdHJlYW1lckVsZW1lbnRzKCk7CiAKLWNsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
CitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2U+CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogICAgICwgcHVi
bGljIFBsYXRmb3JtTGF5ZXIKICNlbmRpZgpAQCAtMjE3LDcgKzIxNyw2IEBAIHByb3RlY3RlZDoK
ICNlbmRpZgogICAgIH07CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFJlZjxNYWluVGhyZWFkTm90aWZp
ZXI8TWFpblRocmVhZE5vdGlmaWNhdGlvbj4+IG1fbm90aWZpZXI7CiAgICAgTWVkaWFQbGF5ZXIq
IG1fcGxheWVyOwogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV9waXBlbGluZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5k
UGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggZTIxM2QyZGU0MWNkMjFkOTIxOTdmZDQzZDUx
OTgzZGJjMTZiY2UzMy4uZmQxODZhZjk5MDliYTBlY2JhYjEyZDJmOGU0NGM5YmRhNzI3YzBkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTEwMTMsMTEgKzEwMTMsMTEg
QEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmsoR3N0
UGFkKiBkZW11eGVyU3JjUGFkKQogICAgIHN3aXRjaCAobV9zdHJlYW1UeXBlKSB7CiAgICAgY2Fz
ZSBXZWJDb3JlOjpNZWRpYVNvdXJjZVN0cmVhbVR5cGVHU3RyZWFtZXI6OkF1ZGlvOgogICAgICAg
ICBpZiAobV9wbGF5ZXJQcml2YXRlKQotICAgICAgICAgICAgbV90cmFjayA9IFdlYkNvcmU6OkF1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUobV9wbGF5ZXJQcml2YXRlLT5jcmVhdGVX
ZWFrUHRyKCksIGlkKCksIHNpbmtTaW5rUGFkLmdldCgpKTsKKyAgICAgICAgICAgIG1fdHJhY2sg
PSBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFrUHRy
KCptX3BsYXllclByaXZhdGUpLCBpZCgpLCBzaW5rU2lua1BhZC5nZXQoKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFTb3VyY2VTdHJlYW1UeXBlR1N0cmVhbWVyOjpW
aWRlbzoKICAgICAgICAgaWYgKG1fcGxheWVyUHJpdmF0ZSkKLSAgICAgICAgICAgIG1fdHJhY2sg
PSBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1fcGxheWVyUHJp
dmF0ZS0+Y3JlYXRlV2Vha1B0cigpLCBpZCgpLCBzaW5rU2lua1BhZC5nZXQoKSk7CisgICAgICAg
ICAgICBtX3RyYWNrID0gV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0
ZShtYWtlV2Vha1B0cigqbV9wbGF5ZXJQcml2YXRlKSwgaWQoKSwgc2lua1NpbmtQYWQuZ2V0KCkp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhU291cmNlU3RyZWFtVHlw
ZUdTdHJlYW1lcjo6VGV4dDoKICAgICAgICAgbV90cmFjayA9IFdlYkNvcmU6OkluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShpZCgpLCBzaW5rU2lua1BhZC5nZXQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCmluZGV4IGQ5M2QyYjEzZTNhZDkzNTVlYWUw
NGY5ZGJhZWZmNWRlZWY5MmM5MGMuLmJlYjZjMDQ3MjUyMmQ1ZDZhMGFkYTU2NjFkMmZjZDc3Zjkz
MDgwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9E
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkKIAog
ICAgIHNldElzUHJldmlvdXNGcmFtZURvbmUoZmFsc2UpOwogCi0gICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFt3ZWFrUHRyID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKV0g
eworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1B0ciA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gewogICAgICAgICBpZiAoYXV0byogbW9uaXRvciA9IHdlYWtQdHIuZ2V0KCkpCiAgICAg
ICAgICAgICBoYW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0aW9uT25NYWluVGhyZWFkKG1v
bml0b3IpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmluZGV4IDNmN2Nj
ZGYyOGQ3M2M2ZTVkYzAwOGMwYTUxZTAwNTE0MjdkZmIzY2YuLmE0NTQ1NzdkNTZlZDE1OTdlYzJj
OWM1N2E4MDhkMzE5ZTc4ZTYyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKQEAg
LTM0LDcgKzM0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkRpc3BsYXlMaW5rICpDVkRpc3BsYXlM
aW5rUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYyA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3IgeworY2xhc3MgRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjIDogcHVibGljIERpc3BsYXlSZWZyZXNoTW9uaXRvciwgcHVibGljIENh
bk1ha2VXZWFrUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYz4gewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjPiBjcmVhdGUoUGxhdGZvcm1EaXNwbGF5
SUQgZGlzcGxheUlEKQogICAgIHsKQEAgLTQ5LDcgKzQ5LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoUGxhdGZvcm1EaXNwbGF5SUQp
OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjPiBtX3dlYWtG
YWN0b3J5OwogICAgIENWRGlzcGxheUxpbmtSZWYgbV9kaXNwbGF5TGluayB7IG51bGxwdHIgfTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggMjViNmNhNDNkZGMxZmNiYTlk
NTRiMTczMTAwYmRhNDRmNDIxZWZkYy4uMWRjODM3NjBkYWUyZGU4MDNkZDY1Yjk0MjViOWRjOWZm
ZDQxNmM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTQ5NSw4ICs0OTUsOCBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cmVtb3ZlQWxsQ2hpbGRyZW4oKQogdm9pZCBUZXh0
dXJlTWFwcGVyTGF5ZXI6OnNldE1hc2tMYXllcihUZXh0dXJlTWFwcGVyTGF5ZXIqIG1hc2tMYXll
cikKIHsKICAgICBpZiAobWFza0xheWVyKSB7Ci0gICAgICAgIG1hc2tMYXllci0+bV9lZmZlY3RU
YXJnZXQgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgICAgIG1fc3RhdGUubWFza0xheWVyID0gbWFz
a0xheWVyLT5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIG1hc2tMYXllci0+bV9lZmZlY3RUYXJn
ZXQgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgICAgIG1fc3RhdGUubWFza0xheWVyID0gbWFr
ZVdlYWtQdHIoKm1hc2tMYXllcik7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fc3RhdGUubWFza0xh
eWVyID0gbnVsbHB0cjsKIH0KQEAgLTUwNCw4ICs1MDQsOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJM
YXllcjo6c2V0TWFza0xheWVyKFRleHR1cmVNYXBwZXJMYXllciogbWFza0xheWVyKQogdm9pZCBU
ZXh0dXJlTWFwcGVyTGF5ZXI6OnNldFJlcGxpY2FMYXllcihUZXh0dXJlTWFwcGVyTGF5ZXIqIHJl
cGxpY2FMYXllcikKIHsKICAgICBpZiAocmVwbGljYUxheWVyKSB7Ci0gICAgICAgIHJlcGxpY2FM
YXllci0+bV9lZmZlY3RUYXJnZXQgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgICAgIG1fc3RhdGUu
cmVwbGljYUxheWVyID0gcmVwbGljYUxheWVyLT5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIHJl
cGxpY2FMYXllci0+bV9lZmZlY3RUYXJnZXQgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgICAg
IG1fc3RhdGUucmVwbGljYUxheWVyID0gbWFrZVdlYWtQdHIoKnJlcGxpY2FMYXllcik7CiAgICAg
fSBlbHNlCiAgICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyID0gbnVsbHB0cjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTGF5ZXIuaAppbmRleCBhYzEwNzk0NjkzMTg4ZjUyODY1ZGI4ZGUyN2Q0MjgzMGI1
YTU2ZWQyLi4zM2ZjOWFlYmIzZjdjZTY2NGZmNzdiMDAwZjNjNDZiMTBhYWU1ZGQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJMYXllci5oCkBAIC0zNCwxMyArMzQsMTIgQEAgY2xhc3MgUmVnaW9uOwogY2xh
c3MgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9uczsKIGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyOwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBUZXh0dXJlTWFwcGVyTGF5ZXIgeworY2xh
c3MgV0VCQ09SRV9FWFBPUlQgVGV4dHVyZU1hcHBlckxheWVyIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFRleHR1cmVNYXBwZXJMYXllcj4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRleHR1
cmVNYXBwZXJMYXllcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgVGV4dHVyZU1hcHBlckxheWVyKCk7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckxheWVy
KCk7Ci0gICAgV2Vha1B0cjxUZXh0dXJlTWFwcGVyTGF5ZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICB2b2lkIHNl
dElEKHVpbnQzMl90IGlkKSB7IG1faWQgPSBpZDsgfQogICAgIHVpbnQzMl90IGlkKCkgeyByZXR1
cm4gbV9pZDsgfQpAQCAtMTQxLDcgKzE0MCw2IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBG
bG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBtX3N0YXRlLnNpemUpOwogICAgIH0KIAotICAg
IFdlYWtQdHJGYWN0b3J5PFRleHR1cmVNYXBwZXJMYXllcj4gbV93ZWFrRmFjdG9yeTsKICAgICBW
ZWN0b3I8VGV4dHVyZU1hcHBlckxheWVyKj4gbV9jaGlsZHJlbjsKICAgICBUZXh0dXJlTWFwcGVy
TGF5ZXIqIG1fcGFyZW50IHsgbnVsbHB0ciB9OwogICAgIFdlYWtQdHI8VGV4dHVyZU1hcHBlckxh
eWVyPiBtX2VmZmVjdFRhcmdldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbi5jcHAKaW5kZXggMzU5ZWUxMWQ1YzA0MDllMzIxMTE3OGU2NTliMjJmMjE4MzU1
N2U0YS4uMzg0MGZkZGNhM2RmZjZjZDBmYjgzMDA4MGQ4NTM5NDk2YTUyMjE1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTQ5OSw3ICs0
OTksNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kQ3JlYXRl
ZE1lZGlhU291cmNlKElNRkFzeW5jUmVzdWx0KiBhcwogICAgIGhyID0gYXN5bmNSZXN1bHQtPkdl
dFN0YXR1cygpOwogICAgIG1fbG9hZGluZ1Byb2dyZXNzID0gU1VDQ0VFREVEKGhyKTsKIAotICAg
IGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1B0ciA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0gewogICAgICAgICBpZiAoIXdlYWtQdHIpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIHdlYWtQdHItPm9uQ3JlYXRlZE1lZGlhU291cmNlKCk7CkBAIC01MjgsNyArNTI4LDcg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmVuZEdldEV2ZW50KElN
RkFzeW5jUmVzdWx0KiBhc3luY1Jlc3VsdCkKIAogICAgIHN3aXRjaCAobWVkaWFFdmVudFR5cGUp
IHsKICAgICBjYXNlIE1FU2Vzc2lvblRvcG9sb2d5U2V0OiB7Ci0gICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpXSB7
CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtYWtlV2Vha1B0cigqdGhpcyld
IHsKICAgICAgICAgICAgIGlmICghd2Vha1B0cikKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB3ZWFrUHRyLT5vblRvcG9sb2d5U2V0KCk7CkBAIC01MzcsNyArNTM3LDcgQEAg
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmVuZEdldEV2ZW50KElNRkFz
eW5jUmVzdWx0KiBhc3luY1Jlc3VsdCkKICAgICB9CiAKICAgICBjYXNlIE1FU2Vzc2lvblN0YXJ0
ZWQ6IHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vh
a1B0ciA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrUHRyKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHdlYWtQdHItPm9uU2Vzc2lvblN0
YXJ0ZWQoKTsKQEAgLTU0Niw3ICs1NDYsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbjo6ZW5kR2V0RXZlbnQoSU1GQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0KQogICAg
IH0KIAogICAgIGNhc2UgTUVCdWZmZXJpbmdTdGFydGVkOiB7Ci0gICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpXSB7
CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtYWtlV2Vha1B0cigqdGhpcyld
IHsKICAgICAgICAgICAgIGlmICghd2Vha1B0cikKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB3ZWFrUHRyLT5vbkJ1ZmZlcmluZ1N0YXJ0ZWQoKTsKQEAgLTU1NSw3ICs1NTUs
NyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kR2V0RXZlbnQo
SU1GQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0KQogICAgIH0KIAogICAgIGNhc2UgTUVCdWZmZXJp
bmdTdG9wcGVkOiB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3dlYWtQdHIgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKICAgICAgICAgICAgIGlmICghd2Vh
a1B0cikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB3ZWFrUHRyLT5vbkJ1
ZmZlcmluZ1N0b3BwZWQoKTsKQEAgLTU2NCw3ICs1NjQsNyBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kR2V0RXZlbnQoSU1GQXN5bmNSZXN1bHQqIGFzeW5jUmVz
dWx0KQogICAgIH0KIAogICAgIGNhc2UgTUVTZXNzaW9uRW5kZWQ6IHsKLSAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyldIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1B0ciA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrUHRyKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIHdlYWtQdHItPm9uU2Vzc2lvbkVuZGVkKCk7CkBAIC0xNzIzLDcgKzE3
MjMsNyBAQCBIUkVTVUxUIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6Q3VzdG9t
VmlkZW9QcmVzZW50ZXI6OnByb2Nlc3NJbnB1dE5vdAogICAgIAogICAgIC8vIEludmFsaWRhdGUg
dGhlIHZpZGVvIGFyZWEKICAgICBpZiAobV9tZWRpYVBsYXllcikgewotICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFt3ZWFrUHRyID0gbV9tZWRpYVBsYXllci0+bV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCptX21lZGlhUGxheWVyKV0geworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3
ZWFrUHRyID0gbV9tZWRpYVBsYXllci0+bWFrZVdlYWtQdHIoKm1fbWVkaWFQbGF5ZXIpXSB7CiAg
ICAgICAgICAgICBpZiAod2Vha1B0cikKICAgICAgICAgICAgICAgICB3ZWFrUHRyLT5pbnZhbGlk
YXRlRnJhbWVWaWV3KCk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5oCmluZGV4IGM2NzJjMjI5OGI0NjI5YWFhMWFhZTQ1MTIxMWI1ODYz
OWUwNTMzYTMuLmZjY2VlMWMxMjVjZjg4MDA2NzZjNjNjOTJhZjc0YWZlNWE0YmFjOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKQEAgLTQ2LDcgKzQ2
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKK2Ns
YXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbiA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb24+IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uKCk7CkBAIC0xMjQsNyArMTI0LDYgQEAgcHJpdmF0ZToKICAgICBG
bG9hdFNpemUgbV9jYWNoZWROYXR1cmFsU2l6ZTsKICAgICBtdXRhYmxlIExvY2sgbV9jYWNoZWRO
YXR1cmFsU2l6ZUxvY2s7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb24+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgQ09NUHRyPElNRk1lZGlhU2Vz
c2lvbj4gbV9tZWRpYVNlc3Npb247CiAgICAgQ09NUHRyPElNRlNvdXJjZVJlc29sdmVyPiBtX3Nv
dXJjZVJlc29sdmVyOwogICAgIENPTVB0cjxJTUZNZWRpYVNvdXJjZT4gbV9tZWRpYVNvdXJjZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlz
dGVuZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlz
dGVuZXJJT1MuaAppbmRleCBkNTA3YzMxYzllYzExZDg3M2ViODUwMzZmYjEzZTYwYjFmMDhhMGQ2
Li5mOGIxNDFiNGRhYzMxN2RkODhiNWFmODBmZmNjMWM5YjE4MDQ4NDg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5o
CkBAIC0zOCwxNiArMzgsMTQgQEAgdHlwZWRlZiB2b2lkICppZDsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MgOiBwdWJsaWMgUmVtb3RlQ29t
bWFuZExpc3RlbmVyIHsKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUyA6IHB1YmxpYyBS
ZW1vdGVDb21tYW5kTGlzdGVuZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVDb21tYW5k
TGlzdGVuZXJJT1M+IHsKIHB1YmxpYzoKICAgICBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoUmVt
b3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExp
c3RlbmVySU9TKCk7CiAKIHByb3RlY3RlZDoKLSAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0
ZW5lcklPUz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigqdGhpcyk7IH0KICAgICB2b2lkIHVwZGF0ZVN1cHBvcnRlZENvbW1hbmRzKCkgb3Zl
cnJpZGU7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M+IG1f
d2Vha1B0ckZhY3Rvcnk7CiAgICAgUmV0YWluUHRyPGlkPiBtX3BsYXlUYXJnZXQ7CiAgICAgUmV0
YWluUHRyPGlkPiBtX3BhdXNlVGFyZ2V0OwogICAgIFJldGFpblB0cjxpZD4gbV90b2dnbGVQbGF5
UGF1c2VUYXJnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVt
b3RlQ29tbWFuZExpc3RlbmVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Jl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQppbmRleCAzNWVmMWNmMjRmYzcxYzU4YmI1YjdjZGZj
YTU4ZjVhMDNiZjhlZTZjLi45YWU3NzM5YzUyZGVkNTNiNzU5YTMxZjE0NjQyOGI2NTZkYjY4MDdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExp
c3RlbmVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1MubW0KQEAgLTUyLDcgKzUyLDcgQEAgUmVtb3RlQ29tbWFuZExpc3RlbmVy
SU9TOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50
JgogICAgIDogUmVtb3RlQ29tbWFuZExpc3RlbmVyKGNsaWVudCkKIHsKICAgICBNUFJlbW90ZUNv
bW1hbmRDZW50ZXIgKmNlbnRlciA9IFtnZXRNUFJlbW90ZUNvbW1hbmRDZW50ZXJDbGFzcygpIHNo
YXJlZENvbW1hbmRDZW50ZXJdOwotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7
CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICAKICAgICBtX3Bh
dXNlVGFyZ2V0ID0gW1tjZW50ZXIgcGF1c2VDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpe
KE1QUmVtb3RlQ29tbWFuZEV2ZW50ICopIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vh
a1RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJNYWMuaAppbmRleCBiNzgxZTZhZDRhMWMyZjg0ZTk0MTZjNWU0YjE2MzFk
ZGYzYWMyNTZkLi45NGE0MmUxOTE3MWIyZGNiOWZlOWI5MGYxZDU4YzIzYzlmNzhhMjNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0
ZW5lck1hYy5oCkBAIC0zMywxNyArMzMsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMgOiBwdWJsaWMgUmVtb3RlQ29tbWFuZExpc3Rl
bmVyIHsKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYyA6IHB1YmxpYyBSZW1vdGVDb21t
YW5kTGlzdGVuZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXJN
YWM+IHsKIHB1YmxpYzoKICAgICBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMoUmVtb3RlQ29tbWFu
ZExpc3RlbmVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
KCk7CiAKIHByb3RlY3RlZDoKLSAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigq
dGhpcyk7IH0KLQogICAgIHZvaWQgdXBkYXRlU3VwcG9ydGVkQ29tbWFuZHMoKSBvdmVycmlkZTsK
IAotICAgIFdlYWtQdHJGYWN0b3J5PFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4gbV93ZWFrUHRy
RmFjdG9yeTsKICAgICB2b2lkKiBtX2NvbW1hbmRIYW5kbGVyIHsgbnVsbHB0ciB9OwogfTsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5k
TGlzdGVuZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFu
ZExpc3RlbmVyTWFjLm1tCmluZGV4IDNkNzQ3MjIyMmMyM2UwYjEwYTkyN2NhZDE4YjNjNmY0YjE1
ZTkzNjYuLjA1Y2MwODk1N2UxZDUwMTI0ZGQ2MzJlMmE0Yzg5MjEyOTg5Njk2MTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5l
ck1hYy5tbQpAQCAtODQsNyArODQsNyBAQCBSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM6OlJlbW90
ZUNvbW1hbmRMaXN0ZW5lck1hYyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmCiAKICAgICB1
cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdl
YWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIG1f
Y29tbWFuZEhhbmRsZXIgPSBNUk1lZGlhUmVtb3RlQWRkQXN5bmNDb21tYW5kSGFuZGxlckJsb2Nr
KF4oTVJNZWRpYVJlbW90ZUNvbW1hbmQgY29tbWFuZCwgQ0ZEaWN0aW9uYXJ5UmVmIG9wdGlvbnMs
IHZvaWQoXmNvbXBsZXRpb24pKENGQXJyYXlSZWYpKSB7CiAKICAgICAgICAgTE9HKE1lZGlhLCAi
UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMgLSByZWNl
aXZlZCBjb21tYW5kICV1IiwgY29tbWFuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAppbmRleCA0MjY0
NzcwNWI4MmRmM2RmNmUxNWQ3YzA1NmUyOGQ2NDUwYjdkNzU0Li5mY2I0MjNmM2M4YzE1ZGVmODM5
MGRkZDM3ZjVlZTBlNTRkMmFhODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKQEAgLTI5NCw3ICsy
OTQsNyBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpCiB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJlZFRh
c2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24p
OwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpLCBmdW5j
dGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuaAppbmRleCBjOTg0ZGViOTFmNzg0ZjZiODA0MzRkNzgzNDg4MjkyNzQ3ZjQ5N2RmLi4zNTdm
ZDMwNmQ5NWVhMTQzYjQ2MDRiNjkwNDgxYmY2NDA5M2YxMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApA
QCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVN0cmVhbTsK
IGNsYXNzIE9yaWVudGF0aW9uTm90aWZpZXI7CiAKLWNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZSA6
IHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3Vu
dGVkPE1lZGlhU3RyZWFtUHJpdmF0ZT4geworY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlIDogcHVi
bGljIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8
TWVkaWFTdHJlYW1Qcml2YXRlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhU3RyZWFtUHJp
dmF0ZT4gewogcHVibGljOgogICAgIGNsYXNzIE9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC0x
MDIsOCArMTAyLDYgQEAgcHVibGljOgogCiAgICAgRmxvYXRTaXplIGludHJpbnNpY1NpemUoKSBj
b25zdDsKIAotICAgIFdlYWtQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiAgICAg
dm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpOwogCiBwcml2YXRl
OgpAQCAtMTIxLDcgKzExOSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJy
ZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYpOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFT
dHJlYW1Qcml2YXRlPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1f
b2JzZXJ2ZXJzOwogICAgIFN0cmluZyBtX2lkOwogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
KiBtX2FjdGl2ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmlu
ZGV4IDZjMDg5ZDAyMzQ2YWEzOTAxMjBkNzZiOWFmYzExNWQ3YWZlY2Q2ZjAuLjdiYTQwZmNkN2Ex
MzcyZDYyODdiYzM4NGJmNzFhM2JlZTI0ZGE3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBA
IC05MTMsNyArOTEzLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFY2hvQ2FuY2Vs
bGF0aW9uKGJvb2wgZWNob0NhbmNlbGxhdGlvbikKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2NoZWR1bGVEZWZlcnJlZFRhc2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiB7
CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9
IGNyZWF0ZVdlYWtQdHIoKSwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0geworICAgIGNh
bGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBmdW5jdGlvbiA9
IFdURk1vdmUoZnVuY3Rpb24pXSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA5YjQ1MTIwNWU1YjkzYTUxZWUxYWRj
MjRlNWMwMGViMzhlNTM1OGI1Li4zOWI1MTBiNTMwNDdmMTBiZmMwNGNmNTE2ZmU0MGFmZDhmNTFh
Nzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02Miw3ICs2Miw3IEBAIGNsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5nczsKIAogc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwogCi1j
bGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JU
IFJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRp
bWVNZWRpYVNvdXJjZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZWFsdGltZU1lZGlhU291cmNl
PiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTI0OSwx
NSArMjQ5LDEyIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1l
ZGlhU2FtcGxlJik7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFU
aW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgc2l6ZV90KTsKIAotICAgIFdlYWtQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7
IH0KLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgeyB9CiAKICAgICBib29sIG1f
bXV0ZWQgeyBmYWxzZSB9OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBTdHJpbmcgbV9pZDsKICAgICBTdHJpbmcgbV9wZXJz
aXN0ZW50SUQ7CiAgICAgVHlwZSBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYy5oCmluZGV4IDA3YmMzZjgzMGEwYzY1Y2Y3N2M1YjlmZGU1NjdhNTU2MGUz
NWIwMjIuLjNkYjI3MGZlYTQ0MWVjNTczNmZkN2Y5MDczMjdjY2IzZWQ5NDUxMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCkBAIC0xMDAsNyArMTAwLDYg
QEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8Q0dEaXNwbGF5U3RyZWFtUmVmPiBtX2Rpc3BsYXlT
dHJlYW07CiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IG1fYnVmZmVyQXR0
cmlidXRlczsKICAgICBDR0Rpc3BsYXlTdHJlYW1GcmFtZUF2YWlsYWJsZUhhbmRsZXIgbV9mcmFt
ZUF2YWlsYWJsZUJsb2NrOwotICAgIFdlYWtQdHJGYWN0b3J5PFNjcmVlbkRpc3BsYXlDYXB0dXJl
U291cmNlTWFjPiBtX3dlYWtGYWN0b3J5OwogICAgIE1lZGlhVGltZSBtX3ByZXNlbnRhdGlvblRp
bWVTdGFtcDsKICAgICBNZWRpYVRpbWUgbV9mcmFtZUR1cmF0aW9uOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KaW5kZXggNzhhYTAxMmY1ZGE5NjUzMzcx
NWE3YzZhMDkyZTZiNTgwZTAxYmYwYy4uY2Y0OTRiODdiMDI3ZDdlNmY5ZDRhMDkwOWYxMjYyNjE1
YzNjYTIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5t
bQpAQCAtMTY3LDcgKzE2Nyw3IEBAIGJvb2wgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6
OmNyZWF0ZURpc3BsYXlTdHJlYW0oKQogICAgICAgICB9OwogICAgICAgICBhdXRvIHN0cmVhbU9w
dGlvbnMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBr
ZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtl
eUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKIAotICAgICAg
ICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAg
ICAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICAgICAgbV9mcmFt
ZUF2YWlsYWJsZUJsb2NrID0gQmxvY2tfY29weSheKENHRGlzcGxheVN0cmVhbUZyYW1lU3RhdHVz
IHN0YXR1cywgdWludDY0X3QgZGlzcGxheVRpbWUsIElPU3VyZmFjZVJlZiBmcmFtZVN1cmZhY2Us
IENHRGlzcGxheVN0cmVhbVVwZGF0ZVJlZiB1cGRhdGVSZWYpIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3ZyL1ZSUGxhdGZvcm1EaXNwbGF5LmgKaW5kZXggNzYyMzI1Y2JjNDRhZjJmMTE3ZjA4
NmNiOTAxYmFjMGNkMDllNzIzOC4uMWEwOGViMjhmZjI0YTM1YTIxOTFlYWZiOTI5YjdhMDQyM2Iy
N2NhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvVlJQbGF0Zm9ybURp
c3BsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9WUlBsYXRmb3JtRGlzcGxh
eS5oCkBAIC0xNTcsMTUgKzE1NywxMSBAQCBzdHJ1Y3QgVlJQbGF0Zm9ybVRyYWNraW5nSW5mbyB7
CiAgICAgZG91YmxlIHRpbWVzdGFtcCB7IDAgfTsKIH07CiAKLWNsYXNzIFZSUGxhdGZvcm1EaXNw
bGF5IHsKK2NsYXNzIFZSUGxhdGZvcm1EaXNwbGF5IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFZS
UGxhdGZvcm1EaXNwbGF5PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCBWUlBsYXRmb3JtRGlzcGxh
eUluZm8gZ2V0RGlzcGxheUluZm8oKSA9IDA7CiAgICAgdmlydHVhbCBWUlBsYXRmb3JtVHJhY2tp
bmdJbmZvIGdldFRyYWNraW5nSW5mbygpID0gMDsKICAgICB2aXJ0dWFsIH5WUlBsYXRmb3JtRGlz
cGxheSgpID0gZGVmYXVsdDsKLQotICAgIFdlYWtQdHI8VlJQbGF0Zm9ybURpc3BsYXk+IGNyZWF0
ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
OyB9Ci1wcml2YXRlOgotICAgIFdlYWtQdHJGYWN0b3J5PFZSUGxhdGZvcm1EaXNwbGF5PiBtX3dl
YWtQdHJGYWN0b3J5OwogfTsKIAogfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFuYWdlck9wZW5W
Ui5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS92ci9vcGVudnIvVlJQbGF0Zm9ybU1hbmFn
ZXJPcGVuVlIuY3BwCmluZGV4IDk5YThmMWQxNzE2YjFhODQ4MWM1NmQzOGRhZjdkZjhmMDFmZThj
MzMuLmQxZGM2NzM2ODZmNjUxZTNlMDMyOTFiN2MwMmMzMWIwYzE2OWJiYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3ZyL29wZW52ci9WUlBsYXRmb3JtTWFuYWdlck9wZW5W
Ui5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdnIvb3BlbnZyL1ZSUGxhdGZvcm1N
YW5hZ2VyT3BlblZSLmNwcApAQCAtNzksNyArNzksNyBAQCBWZWN0b3I8V2Vha1B0cjxWUlBsYXRm
b3JtRGlzcGxheT4+IFZSUGxhdGZvcm1NYW5hZ2VyT3BlblZSOjpnZXRWUkRpc3BsYXlzKCkKICAg
ICBWZWN0b3I8V2Vha1B0cjxWUlBsYXRmb3JtRGlzcGxheT4+IGRpc3BsYXlzOwogICAgIGlmICgh
bV9kaXNwbGF5KQogICAgICAgICBtX2Rpc3BsYXkgPSBzdGQ6Om1ha2VfdW5pcXVlPFZSUGxhdGZv
cm1EaXNwbGF5T3BlblZSPihtX3N5c3RlbSwgY2hhcGVyb25lLCBjb21wb3NpdG9yKTsKLSAgICBk
aXNwbGF5cy5hcHBlbmQobV9kaXNwbGF5LT5jcmVhdGVXZWFrUHRyKCkpOworICAgIGRpc3BsYXlz
LmFwcGVuZChtYWtlV2Vha1B0cigqbV9kaXNwbGF5KSk7CiAgICAgcmV0dXJuIGRpc3BsYXlzOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3Rz
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmgKaW5kZXggNjY2
MTkyODQ1NGYwMGRjM2YwOGFlMjJhZTA3NWVjYmRkOGNjOGY1Yy4uMTFlNjhhN2E3YjlmMmMyOGY5
MDBkM2MwZTBiM2ViYTdkZWMyNzIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0Zsb2F0aW5nT2JqZWN0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG9h
dGluZ09iamVjdHMuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IENh
bGxlcnMgb2YgdGhlc2UgbWV0aG9kcyBhcmUgZGFuZ2Vyb3VzIGFuZCBzaG91bGQgYmUgd2hpdGVs
aXN0ZWQgZXhwbGljaXRseSBvciByZW1vdmVkLgogICAgIFJvb3RJbmxpbmVCb3gqIG9yaWdpbmF0
aW5nTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luYXRpbmdMaW5lLmdldCgpOyB9CiAgICAg
dm9pZCBjbGVhck9yaWdpbmF0aW5nTGluZSgpIHsgbV9vcmlnaW5hdGluZ0xpbmUgPSBudWxscHRy
OyB9Ci0gICAgdm9pZCBzZXRPcmlnaW5hdGluZ0xpbmUoUm9vdElubGluZUJveCYgbGluZSkgeyBt
X29yaWdpbmF0aW5nTGluZSA9IGxpbmUuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgdm9pZCBzZXRP
cmlnaW5hdGluZ0xpbmUoUm9vdElubGluZUJveCYgbGluZSkgeyBtX29yaWdpbmF0aW5nTGluZSA9
IG1ha2VXZWFrUHRyKGxpbmUpOyB9CiAKICAgICBMYXlvdXRTaXplIGxvY2F0aW9uT2Zmc2V0T2ZC
b3JkZXJCb3goKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAppbmRleCA4M2FiZmI4Nzk4OTA3NWUzYzdmMGQ5N2YzN2VjYzNhYTczOGE4YTE5Li5jY2Q2
ODZlNTFjYmRhMzcwOGJhOTY2NjE1YzNkMTNlY2ZlOTllNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RydWN0IEFubm90YXRl
ZFJlZ2lvblZhbHVlIHsKICNlbmRpZgogCiAvLyBCYXNlIGNsYXNzIGZvciBhbGwgcmVuZGVyaW5n
IHRyZWUgb2JqZWN0cy4KLWNsYXNzIFJlbmRlck9iamVjdCA6IHB1YmxpYyBDYWNoZWRJbWFnZUNs
aWVudCB7CitjbGFzcyBSZW5kZXJPYmplY3QgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW5kZXJPYmplY3Q+IHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKFJlbmRlck9iamVjdCk7CiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlckJsb2NrOwogICAg
IGZyaWVuZCBjbGFzcyBSZW5kZXJCbG9ja0Zsb3c7CkBAIC0xMTQsOCArMTE0LDYgQEAgcHVibGlj
OgogICAgIGV4cGxpY2l0IFJlbmRlck9iamVjdChOb2RlJik7CiAgICAgdmlydHVhbCB+UmVuZGVy
T2JqZWN0KCk7CiAKLSAgICBhdXRvJiB3ZWFrUHRyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
d2Vha0ZhY3Rvcnk7IH0KLQogICAgIFJlbmRlclRoZW1lJiB0aGVtZSgpIGNvbnN0OwogCiAgICAg
dmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgPSAwOwpAQCAtODM4LDggKzgz
Niw2IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyT2JqZWN0KiBtX3ByZXZpb3VzOwogICAgIFJlbmRl
ck9iamVjdCogbV9uZXh0OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8UmVuZGVyT2JqZWN0PiBtX3dl
YWtGYWN0b3J5OwotCiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV9oYXNBWE9iamVjdCAgICAg
ICAgICAgICA6IDE7CiAgICAgYm9vbCBtX3NldE5lZWRzTGF5b3V0Rm9yYmlkZGVuIDogMTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAppbmRleCAwODY5MGI5YzI2
ZDU0MjE0NzIyMjIyMzg3NDFjMjZjNmZhNDdmODIxLi5jOGMwZTU0MzlmMjMyZTUyMTU0MjFjODIw
YTYwNTY4M2M0MDY0YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9v
dElubGluZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVC
b3guY3BwCkBAIC00NSw5ICs0NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKFJvb3RJbmxpbmVCb3gpOwogCi1zdHJ1Y3QgU2FtZVNpemVBc1Jv
b3RJbmxpbmVCb3ggOiBwdWJsaWMgSW5saW5lRmxvd0JveCB7CitzdHJ1Y3QgU2FtZVNpemVBc1Jv
b3RJbmxpbmVCb3ggOiBwdWJsaWMgSW5saW5lRmxvd0JveCwgcHVibGljIENhbk1ha2VXZWFrUHRy
PFJvb3RJbmxpbmVCb3g+IHsKICAgICB1bnNpZ25lZCB2YXJpYWJsZXNbN107Ci0gICAgdm9pZCog
cG9pbnRlcnNbNF07CisgICAgdm9pZCogcG9pbnRlcnNbM107CiB9OwogCiBDT01QSUxFX0FTU0VS
VChzaXplb2YoUm9vdElubGluZUJveCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNSb290SW5saW5lQm94
KSwgUm9vdElubGluZUJveF9zaG91bGRfc3RheV9zbWFsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1Jvb3RJbmxpbmVCb3guaAppbmRleCA0ZWVjMDA5NzkxYTA1MDFkMmFmNjRkOTIzMTcxYzk4
Y2YxN2E5Y2E0Li5kZDk1OTRmZmJjZmJjMGY2MmI5YWU3MWE3NTQyYTU4MDc3ZDVjMjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKQEAgLTM2LDEyICszNiwxMSBA
QCBjbGFzcyBSZW5kZXJGcmFnbWVudENvbnRhaW5lcjsKIHN0cnVjdCBCaWRpU3RhdHVzOwogc3Ry
dWN0IEdhcFJlY3RzOwogCi1jbGFzcyBSb290SW5saW5lQm94IDogcHVibGljIElubGluZUZsb3dC
b3ggeworY2xhc3MgUm9vdElubGluZUJveCA6IHB1YmxpYyBJbmxpbmVGbG93Qm94LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8Um9vdElubGluZUJveD4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoUm9vdElubGluZUJveCk7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUm9vdElubGluZUJveChS
ZW5kZXJCbG9ja0Zsb3cmKTsKICAgICB2aXJ0dWFsIH5Sb290SW5saW5lQm94KCk7Ci0gICAgV2Vh
a1B0cjxSb290SW5saW5lQm94PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgUmVuZGVyQmxvY2tGbG93JiBibG9j
a0Zsb3coKSBjb25zdDsKIApAQCAtMjMyLDcgKzIzMSw2IEBAIHByaXZhdGU6CiAgICAgLy8gRmxv
YXRzIGhhbmdpbmcgb2ZmIHRoZSBsaW5lIGFyZSBwdXNoZWQgaW50byB0aGlzIHZlY3RvciBkdXJp
bmcgbGF5b3V0LiBJdCBpcyBvbmx5CiAgICAgLy8gZ29vZCBmb3IgYXMgbG9uZyBhcyB0aGUgbGlu
ZSBoYXMgbm90IGJlZW4gbWFya2VkIGRpcnR5LgogICAgIHN0ZDo6dW5pcXVlX3B0cjxDbGVhbkxp
bmVGbG9hdExpc3Q+IG1fZmxvYXRzOwotICAgIFdlYWtQdHJGYWN0b3J5PFJvb3RJbmxpbmVCb3g+
IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwogCiBpbmxpbmUgUm9vdElubGluZUJveCogUm9vdElubGlu
ZUJveDo6bmV4dFJvb3RCb3goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaApp
bmRleCBiY2RmMTQ4ZTVlOGFlYzIwYjJlNTRjNjhhN2VmODIwYmUzMDViMzMyLi4xZTRlYzhmNjM4
NTA1NzcyM2MzMzhmNWUwOTg1NDRhMzY2YjkwZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1Ntb290aFJlbDsKIGNsYXNzIFNWR1BhdGhTZWdMaXN0OwogY2xhc3MgU1ZHUG9pbnQ7CiAKLWNs
YXNzIFNWR1BhdGhFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0dlb21ldHJ5RWxlbWVudCwgcHVi
bGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgeworY2xhc3MgU1ZHUGF0aEVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgU1ZHR2VvbWV0cnlFbGVtZW50LCBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNWR1BhdGhFbGVtZW50PiB7CiAg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTVkdQYXRoRWxlbWVudCk7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxTVkdQYXRoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwpAQCAtOTksOCArOTksNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbVZh
bE9ic2VydmVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1WYWxPYnNlcnZlZDsgfQogCi0gICAg
V2Vha1B0cjxTVkdQYXRoRWxlbWVudD4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqY29uc3RfY2FzdDxTVkdQYXRoRWxlbWVudCo+
KHRoaXMpKTsgfQotCiAgICAgdm9pZCBhbmltYXRlZFByb3BlcnR5V2lsbEJlRGVsZXRlZCgpOwog
CiAgICAgc2l6ZV90IGFwcHJveGltYXRlTWVtb3J5Q29zdCgpIGNvbnN0IGZpbmFsOwpAQCAtMTM1
LDcgKzEzMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gbV9wYXRoQnl0ZVN0
cmVhbTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8UGF0aD4gbV9jYWNoZWRQYXRoOwogICAg
IG11dGFibGUgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFNWR1BhdGhTZWdMaXN0
VmFsdWVzPiBtX3BhdGhTZWdMaXN0OwotICAgIFdlYWtQdHJGYWN0b3J5PFNWR1BhdGhFbGVtZW50
PiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIGJvb2wgbV9pc0FuaW1WYWxPYnNlcnZlZDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnV2l0aENvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnV2l0aENvbnRleHQuaAppbmRleCA2MGYzOTI1
ODJjMWI1NjlmODViMjhmMTFjYjYwMDIxOWY2ZGU2ZTczLi40ZTM5NWI5ZTJmYTgzOWZhOTNmZDgz
N2I4MWEwYWIwNjIxMGQzYTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ1dpdGhDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdXaXRo
Q29udGV4dC5oCkBAIC0yNyw3ICsyNyw3IEBAIGNsYXNzIFNWR1BhdGhTZWdXaXRoQ29udGV4dCA6
IHB1YmxpYyBTVkdQYXRoU2VnIHsKIHB1YmxpYzoKICAgICBTVkdQYXRoU2VnV2l0aENvbnRleHQo
Y29uc3QgU1ZHUGF0aEVsZW1lbnQmIGVsZW1lbnQsIFNWR1BhdGhTZWdSb2xlIHJvbGUpCiAgICAg
ICAgIDogbV9yb2xlKHJvbGUpCi0gICAgICAgICwgbV9lbGVtZW50KGVsZW1lbnQuY3JlYXRlV2Vh
a1B0cigpKQorICAgICAgICAsIG1fZWxlbWVudChtYWtlV2Vha1B0cihjb25zdF9jYXN0PFNWR1Bh
dGhFbGVtZW50Jj4oZWxlbWVudCkpKQogICAgIHsKICAgICB9CiAKQEAgLTU1LDcgKzU1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0Q29udGV4dEFuZFJvbGUoU1ZHUGF0aEVsZW1lbnQqIGVsZW1l
bnQsIFNWR1BhdGhTZWdSb2xlIHJvbGUpCiAgICAgewogICAgICAgICBtX3JvbGUgPSByb2xlOwot
ICAgICAgICBtX2VsZW1lbnQgPSBlbGVtZW50ID8gZWxlbWVudC0+Y3JlYXRlV2Vha1B0cigpIDog
V2Vha1B0cjxTVkdQYXRoRWxlbWVudD4oKTsKKyAgICAgICAgbV9lbGVtZW50ID0gbWFrZVdlYWtQ
dHIoZWxlbWVudCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybUxpc3QuaAppbmRleCAzYjM0MzMzNDRlOWNjZmYyNWU0OTYxZDFmYmNmMGJlMWQwYTFlMDkw
Li5jODcyZmNhNTI3NjIwNmM5Y2I0MmRlY2MwMTdjNWE3YzBmOTE1NDQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgICAg
ICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7CiAgICAgICAgIAogICAgICAgICBSZWZQdHI8U1ZHVHJh
bnNmb3JtPiB3cmFwcGVyID0gbV92YWx1ZXMtPmNvbnNvbGlkYXRlKCk7Ci0gICAgICAgIG1fd3Jh
cHBlcnMtPmFwcGVuZCh3cmFwcGVyLT5jcmVhdGVXZWFrUHRyKCkpOworICAgICAgICBtX3dyYXBw
ZXJzLT5hcHBlbmQobWFrZVdlYWtQdHIoKndyYXBwZXIpKTsKIAogICAgICAgICBBU1NFUlQobV92
YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICByZXR1cm4gV1RG
TW92ZSh3cmFwcGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgKaW5kZXggNjBjNGJhMDZl
MTIyNzhjZDM2N2JkM2E4ZTYzNWEwMTBmMDRhZTUzYi4uNDI5OGM2ZWIxNWNmOGY2MTMwZTMyY2Y0
ODdiMmJmM2U2ODU1ZGE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgKQEAgLTUxLDcg
KzUxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxMaXN0UHJv
cGVydHlUZWFyT2ZmKj4obV9iYXNlVmFsLmdldCgpKTsKIAogICAgICAgICBhdXRvIHByb3BlcnR5
ID0gTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9sZSwgbV92YWx1
ZXMsIG1fd3JhcHBlcnMpOwotICAgICAgICBtX2Jhc2VWYWwgPSBwcm9wZXJ0eS0+Y3JlYXRlV2Vh
a1B0cigpOworICAgICAgICBtX2Jhc2VWYWwgPSBtYWtlV2Vha1B0cihwcm9wZXJ0eS5nZXQoKSk7
CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKICAgICB9CiAKQEAgLTYxLDcgKzYxLDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxMaXN0UHJvcGVydHlUZWFyT2Zm
Kj4obV9hbmltVmFsLmdldCgpKTsKIAogICAgICAgICBhdXRvIHByb3BlcnR5ID0gTGlzdFByb3Bl
cnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBBbmltVmFsUm9sZSwgbV92YWx1ZXMsIG1fd3JhcHBl
cnMpOwotICAgICAgICBtX2FuaW1WYWwgPSBwcm9wZXJ0eS0+Y3JlYXRlV2Vha1B0cigpOworICAg
ICAgICBtX2FuaW1WYWwgPSBtYWtlV2Vha1B0cihwcm9wZXJ0eS5nZXQoKSk7CiAgICAgICAgIHJl
dHVybiBwcm9wZXJ0eTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmLmgKaW5kZXggMmUzZDFmODMwNWU2YWI0Y2Q2Y2E5YTcwNjU3MDNmZWQ0MjMwYTcy
MC4uNjczMmY5YWYyNGMxYWI1ZDJmN2Q3ZDlmM2MxNmE3NjhmOWVhZmQyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3Bl
cnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PExpc3RQcm9wZXJ0eVRlYXJPZmYqPiht
X2Jhc2VWYWwuZ2V0KCkpOwogCiAgICAgICAgIGF1dG8gcHJvcGVydHkgPSBTVkdQYXRoU2VnTGlz
dDo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9sZSwgUGF0aFNlZ1VuYWx0ZXJlZFJvbGUsIG1fdmFs
dWVzLCBtX3dyYXBwZXJzKTsKLSAgICAgICAgbV9iYXNlVmFsID0gcHJvcGVydHktPmNyZWF0ZVdl
YWtQdHIoKTsKKyAgICAgICAgbV9iYXNlVmFsID0gbWFrZVdlYWtQdHIocHJvcGVydHkuZ2V0KCkp
OwogICAgICAgICByZXR1cm4gcHJvcGVydHk7CiAgICAgfQogCkBAIC01Myw3ICs1Myw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8TGlzdFByb3BlcnR5VGVhck9m
Zio+KG1fYW5pbVZhbC5nZXQoKSk7CiAKICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFNWR1BhdGhT
ZWdMaXN0OjpjcmVhdGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBQYXRoU2VnVW5hbHRlcmVkUm9sZSwg
bV92YWx1ZXMsIG1fd3JhcHBlcnMpOwotICAgICAgICBtX2FuaW1WYWwgPSBwcm9wZXJ0eS0+Y3Jl
YXRlV2Vha1B0cigpOworICAgICAgICBtX2FuaW1WYWwgPSBtYWtlV2Vha1B0cihwcm9wZXJ0eS5n
ZXQoKSk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9m
Zi5oCmluZGV4IGVlNWYwNmViMjkyZmNjNjFhY2Y2MmE5ZmJmZWVjZWFiMmIzOTZjYTQuLjIwY2U1
ZTU4MzE1YTNiY2IxM2ZmZjg5OTZiNTFkNjhiMGFmZTI1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYu
aApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gKnN0YXRpY19j
YXN0PFByb3BlcnR5VGVhck9mZio+KG1fYmFzZVZhbC5nZXQoKSk7CiAKICAgICAgICAgYXV0byBw
cm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9sZSwgbV9w
cm9wZXJ0eSk7Ci0gICAgICAgIG1fYmFzZVZhbCA9IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRyKCk7
CisgICAgICAgIG1fYmFzZVZhbCA9IG1ha2VXZWFrUHRyKHByb3BlcnR5LmdldCgpKTsKICAgICAg
ICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KIApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PFByb3BlcnR5VGVhck9mZio+KG1fYW5pbVZh
bC5nZXQoKSk7CiAKICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3Jl
YXRlKCp0aGlzLCBBbmltVmFsUm9sZSwgbV9wcm9wZXJ0eSk7Ci0gICAgICAgIG1fYW5pbVZhbCA9
IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIG1fYW5pbVZhbCA9IG1ha2VXZWFr
UHRyKHByb3BlcnR5LmdldCgpKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAppbmRleCBhYTM1NGQ2
YjhjOGI0N2E5ZmVkNGY1NjkwNDlmNGRlMjcyZjNmMDVlLi4zMzk3MjAyNDY5MWZjYjczMzRhMTE0
MGU2MzU2YTU5ODI1YzU5ZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0
eVRlYXJPZmYuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4g
KnN0YXRpY19jYXN0PExpc3RQcm9wZXJ0eVRlYXJPZmYqPihtX2Jhc2VWYWwuZ2V0KCkpOwogCiAg
ICAgICAgIGF1dG8gcHJvcGVydHkgPSBTVkdUcmFuc2Zvcm1MaXN0OjpjcmVhdGUoKnRoaXMsIEJh
c2VWYWxSb2xlLCBtX3ZhbHVlcywgbV93cmFwcGVycyk7Ci0gICAgICAgIG1fYmFzZVZhbCA9IHBy
b3BlcnR5LT5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIG1fYmFzZVZhbCA9IG1ha2VXZWFrUHRy
KHByb3BlcnR5LmdldCgpKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KIApAQCAt
NDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PExp
c3RQcm9wZXJ0eVRlYXJPZmYqPihtX2FuaW1WYWwuZ2V0KCkpOwogCiAgICAgICAgIGF1dG8gcHJv
cGVydHkgPSBTVkdUcmFuc2Zvcm1MaXN0OjpjcmVhdGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBtX3Zh
bHVlcywgbV93cmFwcGVycyk7Ci0gICAgICAgIG1fYW5pbVZhbCA9IHByb3BlcnR5LT5jcmVhdGVX
ZWFrUHRyKCk7CisgICAgICAgIG1fYW5pbVZhbCA9IG1ha2VXZWFrUHRyKHByb3BlcnR5LmdldCgp
KTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaAppbmRleCA4MDc0OTJkZDkwNWVjNmQ2
MWI3NTRhYmQ5ODBkMTljNWMwN2FmNzJjLi5hMDAwNzJkOGZmNWE4MDNiNjMwZmRkMGY2NGZiODBl
ZTYzY2M1M2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdM
aXN0UHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0
UHJvcGVydHkuaApAQCAtMzcsNyArMzcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5
cGU+CiBjbGFzcyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFByb3BlcnR5VHlwZT4KLWNsYXNzIFNWR0xpc3RQcm9wZXJ0eSA6IHB1YmxpYyBTVkdQ
cm9wZXJ0eSB7CitjbGFzcyBTVkdMaXN0UHJvcGVydHkgOiBwdWJsaWMgU1ZHUHJvcGVydHksIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxTVkdMaXN0UHJvcGVydHk8UHJvcGVydHlUeXBlPj4gewogcHVi
bGljOgogICAgIHR5cGVkZWYgU1ZHTGlzdFByb3BlcnR5PFByb3BlcnR5VHlwZT4gU2VsZjsKIApA
QCAtMTYyLDcgKzE2Miw3IEBAIHB1YmxpYzoKICAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CiAK
ICAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsK
LSAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7Cisg
ICAgICAgIG1fd3JhcHBlcnMtPmFwcGVuZChtYWtlV2Vha1B0cihuZXdJdGVtLmdldCgpKSk7CiAK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0l0ZW0p
OwpAQCAtMjA2LDcgKzIwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIC8vIEl0IGlzIGFsc28g
YXNzb2NpYXRlZCB3aXRoIG91ciBhbmltYXRlZCBwcm9wZXJ0eSwgc28gaXQgY2FuIG5vdGlmeSB0
aGUgU1ZHIEVsZW1lbnQgd2hpY2ggaG9sZHMgdGhlIFNWR0FuaW1hdGVkKkxpc3QKICAgICAgICAg
ICAgIC8vIHRoYXQgaXQgaGFzIGJlZW4gbW9kaWZpZWQgKGFuZCB0aHVzIGNhbiBjYWxsIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoYXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUpKS4KICAgICAgICAgICAgIHdy
YXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJv
bGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOwotICAgICAgICAgICAgbV93cmFwcGVycy0+YXQoaW5k
ZXgpID0gd3JhcHBlci0+Y3JlYXRlV2Vha1B0cigpOworICAgICAgICAgICAgbV93cmFwcGVycy0+
YXQoaW5kZXgpID0gbWFrZVdlYWtQdHIoKndyYXBwZXIpOwogICAgICAgICB9CiAKICAgICAgICAg
cmV0dXJuIHdyYXBwZXIucmVsZWFzZU5vbk51bGwoKTsKQEAgLTI2NCw3ICsyNjQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPnByb3BlcnR5UmVm
ZXJlbmNlKCkpOwogCiAgICAgICAgIC8vIFN0b3JlIG5ldyB3cmFwcGVyIGF0IHBvc2l0aW9uICdp
bmRleCcsIGNoYW5nZSBpdHMgdW5kZXJseWluZyB2YWx1ZSwgc28gbXV0YXRpb25zIG9mIG5ld0l0
ZW0sIGRpcmVjdGx5IGFmZmVjdCB0aGUgaXRlbSBpbiB0aGUgbGlzdC4KLSAgICAgICAgbV93cmFw
cGVycy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOworICAgICAgICBt
X3dyYXBwZXJzLT5pbnNlcnQoaW5kZXgsIG1ha2VXZWFrUHRyKG5ld0l0ZW0uZ2V0KCkpKTsKIAog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUobmV3SXRlbSk7
CkBAIC0zNDEsNyArMzQxLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFs
dWUgYW5kIHRoZSB3cmFwcGVyIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uICdpbmRleCcuIAogICAg
ICAgICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKTsK
LSAgICAgICAgbV93cmFwcGVycy0+YXQoaW5kZXgpID0gbmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigp
OworICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRleCkgPSBtYWtlV2Vha1B0cihuZXdJdGVtLmdl
dCgpKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUo
bmV3SXRlbSk7CkBAIC00MzUsNyArNDM1LDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIEFwcGVu
ZCB0aGUgdmFsdWUgYW5kIHdyYXBwZXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAgICAgICAg
bV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKLSAgICAgICAg
bV93cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7CisgICAgICAgIG1f
d3JhcHBlcnMtPmFwcGVuZChtYWtlV2Vha1B0cihuZXdJdGVtLmdldCgpKSk7CiAKICAgICAgICAg
Y29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25BcHBlbmQpOwogICAgICAgICByZXR1cm4gV1RG
TW92ZShuZXdJdGVtKTsKQEAgLTQ1MywxMSArNDUzLDYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gKm1fd3JhcHBlcnM7CiAgICAgfQogCi0gICAgV2Vha1B0cjxTVkdMaXN0UHJvcGVydHk+IGNy
ZWF0ZVdlYWtQdHIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigqY29uc3RfY2FzdDxTVkdMaXN0UHJvcGVydHkqPih0aGlzKSk7Ci0g
ICAgfQotCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHTGlzdFByb3BlcnR5KFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMpCiAg
ICAgICAgIDogbV9yb2xlKHJvbGUpCkBAIC00ODYsNyArNDgxLDYgQEAgcHJvdGVjdGVkOgogICAg
IGJvb2wgbV9vd25zVmFsdWVzOwogICAgIFByb3BlcnR5VHlwZSogbV92YWx1ZXM7CiAgICAgTGlz
dFdyYXBwZXJDYWNoZSogbV93cmFwcGVyczsKLSAgICBXZWFrUHRyRmFjdG9yeTxTVkdMaXN0UHJv
cGVydHk+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKaW5kZXggZTBiZjBkMDgyN2U3M2Y3ZmM4
ZmZkMjA5MzA5ZGYwMWUzYzI5OWExNS4uMzMyMjYwYTYzMGQ0MzE0ZDdhYjI1NGMyNmU0YmMwNGVl
Nzg1ZDE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0
cml4VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJp
eFRlYXJPZmYuaApAQCAtMjksOCArMjksOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdN
YXRyaXhUZWFyT2ZmPiBjcmVhdGUoU1ZHVHJhbnNmb3JtJiBwYXJlbnQsIFNWR01hdHJpeFZhbHVl
JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQucHJv
cGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSA9PSAmdmFsdWUpOwotICAgICAgICBSZWY8U1ZH
TWF0cml4VGVhck9mZj4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXhUZWFyT2ZmKHBh
cmVudCkpOwotICAgICAgICBwYXJlbnQuYWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIocmVzdWx0KSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5l
dyBTVkdNYXRyaXhUZWFyT2ZmKHBhcmVudCkpOworICAgICAgICBwYXJlbnQuYWRkQ2hpbGQobWFr
ZVdlYWtQdHIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQog
CkBAIC01Miw3ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmUHRyPFNWR1RyYW5z
Zm9ybT4gbV9wYXJlbnQ7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8U1ZHUHJvcGVydHlUZWFyT2ZmQmFz
ZT4gbV93ZWFrRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKaW5kZXgg
Y2ViNGJmM2VkZDViZDM1OTQzOGYwZDZhMmRhNDdhNWVkMDlhYTY2OC4uOTAwOGYzYjg2NDUyOWMy
MmMyZWU2NzJjNjI4ODcxYmUxYTI0Yzc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGlj
OgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIFNWR1Byb3BlcnR5VGVhck9mZiA6
IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmZCYXNlIHsKK2NsYXNzIFNWR1Byb3BlcnR5VGVhck9m
ZiA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmZCYXNlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
U1ZHUHJvcGVydHlUZWFyT2ZmPFQ+PiB7CiBwdWJsaWM6CiAgICAgdXNpbmcgUHJvcGVydHlUeXBl
ID0gVDsKICAgICB1c2luZyBTZWxmID0gU1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT47
CkBAIC0xMjUsMTEgKzEyNSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAotICAgIFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPiBjcmVhdGVXZWFrUHRyKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KmNvbnN0X2Nhc3Q8U1ZHUHJvcGVydHlUZWFyT2ZmKj4odGhpcykpOwotICAgIH0KLQogcHJvdGVj
dGVkOgogICAgIFNWR1Byb3BlcnR5VGVhck9mZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZSkKICAg
ICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTE3Myw3ICsx
NjgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKICAgICBQcm9w
ZXJ0eVR5cGUqIG1fdmFsdWU7CiAgICAgVmVjdG9yPFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2Zm
QmFzZT4+IG1fY2hpbGRUZWFyT2ZmczsKLSAgICBXZWFrUHRyRmFjdG9yeTxTVkdQcm9wZXJ0eVRl
YXJPZmY+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgYm9vbCBtX3ZhbHVlSXNDb3B5OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCBlMmZkZmJjMWNh
NGNhMWIxZWI1OGJjODc1OTkwZGE5YTRkOTZjNmJjLi4wNzBhNWUxNWViNjIyNTNiNTdiNWQ0ZGI3
YmJmZmIyNTgxMTRjYTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tD
RE1GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5
LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIE1vY2tDRE1GYWN0b3J5OjpzZXRTdXBwb3J0ZWRE
YXRhVHlwZXMoVmVjdG9yPFN0cmluZz4mJiB0eXBlcykKIAogc3RkOjp1bmlxdWVfcHRyPENETVBy
aXZhdGU+IE1vY2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0oY29uc3QgU3RyaW5nJikKIHsKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrQ0RNPihtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrQ0RNPihtYWtl
V2Vha1B0cigqdGhpcykpOwogfQogCiBNb2NrQ0RNOjpNb2NrQ0RNKFdlYWtQdHI8TW9ja0NETUZh
Y3Rvcnk+IGZhY3RvcnkpCkBAIC0xNjYsNyArMTY2LDcgQEAgUmVmUHRyPENETUluc3RhbmNlPiBN
b2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSgpCiB7CiAgICAgaWYgKG1fZmFjdG9yeSAmJiAhbV9mYWN0
b3J5LT5jYW5DcmVhdGVJbnN0YW5jZXMoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBNb2NrQ0RNSW5zdGFuY2UobV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0NETUluc3Rh
bmNlKG1ha2VXZWFrUHRyKCp0aGlzKSkpOwogfQogCiB2b2lkIE1vY2tDRE06OmxvYWRBbmRJbml0
aWFsaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3Rv
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaAppbmRleCA0MThk
MzkwYmYwNmQ3ZmI3ZGRmOTBlYTc4NDM1YWJhZGI1YWFlZGQ4Li4yMTZkMjlhMGE3YzMzNzZkODMz
ODk5ZDE1NDAwMjdiMjgzYWU4M2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tDRE1GYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5oCkBAIC0zOSw3ICszOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
TW9ja0NETUZhY3RvcnkgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2NrQ0RNRmFjdG9yeT4sIHByaXZh
dGUgQ0RNRmFjdG9yeSB7CitjbGFzcyBNb2NrQ0RNRmFjdG9yeSA6IHB1YmxpYyBSZWZDb3VudGVk
PE1vY2tDRE1GYWN0b3J5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1vY2tDRE1GYWN0b3J5Piwg
cHJpdmF0ZSBDRE1GYWN0b3J5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1vY2tDRE1GYWN0
b3J5PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tDRE1GYWN0b3J5KTsgfQog
ICAgIH5Nb2NrQ0RNRmFjdG9yeSgpOwpAQCAtOTAsMTEgKzkwLDEwIEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2NhbkNyZWF0ZUluc3RhbmNlcyB7IHRydWUgfTsKICAgICBib29sIG1fc3VwcG9ydHNT
ZXJ2ZXJDZXJ0aWZpY2F0ZXMgeyB0cnVlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzU2Vzc2lvbnMg
eyB0cnVlIH07Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TW9ja0NETUZhY3Rvcnk+IG1fd2Vha1B0ckZh
Y3Rvcnk7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IG1f
c2Vzc2lvbnM7CiB9OwogCi1jbGFzcyBNb2NrQ0RNIDogcHVibGljIENETVByaXZhdGUgeworY2xh
c3MgTW9ja0NETSA6IHB1YmxpYyBDRE1Qcml2YXRlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TW9j
a0NETT4gewogcHVibGljOgogICAgIE1vY2tDRE0oV2Vha1B0cjxNb2NrQ0RNRmFjdG9yeT4pOwog
CkBAIC0xMjAsNyArMTE5LDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4g
c2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAKICAgICBXZWFr
UHRyPE1vY2tDRE1GYWN0b3J5PiBtX2ZhY3Rvcnk7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8TW9ja0NE
TT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIGNsYXNzIE1vY2tDRE1JbnN0YW5jZSA6IHB1Ymxp
YyBDRE1JbnN0YW5jZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvRXh0ZW5kYWJsZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0
ZW5kYWJsZUV2ZW50LmgKaW5kZXggZjNhNTQ0MmNlMWQwZTMzNzM5Nzk5NWM5NjJkMDY0MWZkMTE5
ODFmNS4uOTAzOGNhYWUzZTU0ODgxYTI3MDJiOTBmNjRlYmYzZWZmZjk4M2JmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuaApAQCAtMzUs
NyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVByb21pc2U7CiAKLWNs
YXNzIEV4dGVuZGFibGVFdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBFeHRlbmRhYmxlRXZl
bnQgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxFeHRlbmRhYmxlRXZlbnQ+
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEV4dGVuZGFibGVFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXh0ZW5kYWJsZUV2ZW50SW5pdCYgaW5pdGlhbGl6
ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKQogICAgIHsKQEAgLTU1LDE0
ICs1NSwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgRXh0ZW5kYWJsZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEV4dGVuZGFibGVFdmVudEluaXQmLCBJc1RydXN0
ZWQpOwogICAgIEV4dGVuZGFibGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBib29sIGJ1YmJs
ZXMsIGJvb2wgY2FuY2VsYWJsZSk7CiAKLSAgICBXZWFrUHRyPEV4dGVuZGFibGVFdmVudD4gY3Jl
YXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7IH0KLQogICAgIHZvaWQgYWRkRXh0ZW5kTGlmZXRpbWVQcm9taXNlKFJlZjxET01Qcm9taXNl
PiYmKTsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3BlbmRpbmdQcm9taXNlQ291bnQgeyAw
IH07CiAgICAgSGFzaFNldDxSZWY8RE9NUHJvbWlzZT4+IG1fZXh0ZW5kTGlmZXRpbWVQcm9taXNl
czsKLSAgICBXZWFrUHRyRmFjdG9yeTxFeHRlbmRhYmxlRXZlbnQ+IG1fd2Vha1B0ckZhY3Rvcnk7
CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKEhhc2hTZXQ8UmVmPERPTVByb21pc2U+PiYmKT4gbV93
aGVuQWxsRXh0ZW5kTGlmZXRpbWVQcm9taXNlc0FyZVNldHRsZWRIYW5kbGVyOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCmluZGV4IDIwZTBj
ODA5ZjQ0ZDY4NzFhYWJmNzEzZDIwNGI2ZjIxNTZjYzNlNjEuLmEwNTRlODQzY2YwNmFkN2U3ODE4
Yzc3YmMzMjE0YWY5OTNjNzdlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9GZXRjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvRmV0Y2hFdmVudC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRmV0
Y2hFdmVudDo6cmVzcG9uZFdpdGgoUmVmPERPTVByb21pc2U+JiYgcHJvbWlzZSkKICAgICBtX3Jl
c3BvbmRQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKICAgICBhZGRFeHRlbmRMaWZldGltZVBy
b21pc2UoKm1fcmVzcG9uZFByb21pc2UpOwogCi0gICAgbV9yZXNwb25kUHJvbWlzZS0+d2hlblNl
dHRsZWQoW3RoaXMsIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpXSAoKSB7CisgICAgbV9yZXNw
b25kUHJvbWlzZS0+d2hlblNldHRsZWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpXSAoKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIHByb21pc2VJc1NldHRsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCBjZjVlY2MxNjVlNDhiMzI3YTAyYjI0YTAz
ZmY0YzUzNGM2ODM4N2NhLi40OWFlYzE4NGZmYWE5OWM4NmNkMTM0YTU3NjAzNGE0OTJjNmNkOTcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ci5oCkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIFRpbWVyOwogY2xhc3MgU1dTZXJ2ZXIgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGNsYXNzIENvbm5lY3Rpb24g
eworICAgIGNsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q29ubmVjdGlv
bj4gewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICAgICAgZnJpZW5kIGNs
YXNzIFNXU2VydmVyOwogICAgIHB1YmxpYzoKQEAgLTc0LDggKzc0LDYgQEAgcHVibGljOgogICAg
ICAgICB1c2luZyBJZGVudGlmaWVyID0gU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKICAg
ICAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CiAKLSAgICAgICAgYXV0byYgd2Vha1B0ckZhY3RvcnkoKSB7IHJldHVybiBtX3dlYWtGYWN0
b3J5OyB9Ci0KICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0
aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Jik7CiAgICAgICAg
IFNXU2VydmVyUmVnaXN0cmF0aW9uKiBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkgeyByZXR1cm4g
bV9zZXJ2ZXIuZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVudFVSTCk7IH0K
ICAgICAgICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyhTV1NlcnZlclJl
Z2lzdHJhdGlvbiYpOwpAQCAtMTE0LDcgKzExMiw2IEBAIHB1YmxpYzoKIAogICAgICAgICBTV1Nl
cnZlciYgbV9zZXJ2ZXI7CiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgICAg
ICBXZWFrUHRyRmFjdG9yeTxDb25uZWN0aW9uPiBtX3dlYWtGYWN0b3J5OwogICAgICAgICBWZWN0
b3I8UmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0PiBtX3JlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHM7
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL0RPTVBhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmNwcAppbmRleCBkYWYyZGI2ZDdiOGI4M2Ri
N2Y3YmY0ZDExMWU2NGZlZjYwYmI5NmU4Li4yNzEzZTU5M2Q0Mzc0Njc2ZjEwNTAyZGU5NmUwZDFj
NjgzMmQ2ZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmNwcApAQCAtMjUsNyArMjUsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUgRE9NUGFyc2VyOjpET01QYXJzZXIoRG9jdW1l
bnQmIGNvbnRleHREb2N1bWVudCkKLSAgICA6IG1fY29udGV4dERvY3VtZW50KGNvbnRleHREb2N1
bWVudC5jcmVhdGVXZWFrUHRyKCkpCisgICAgOiBtX2NvbnRleHREb2N1bWVudChtYWtlV2Vha1B0
cihjb250ZXh0RG9jdW1lbnQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCBlYzc0ODkyNzA2ZjgwY2EwMzI5Yjlj
MGRmZDRkNDk1ZDYwNjgwNTE4Li4xNDQyNjM5ZTI1NzVhOTUyZjRlNzVmZjQ0NTRlODBhNTk0NmFm
ODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hl
Y2tlcjsKIAotY2xhc3MgTmV0d29ya0xvYWRDaGVja2VyIDogcHVibGljIFdlYkNvcmU6OkNvbnRl
bnRTZWN1cml0eVBvbGljeUNsaWVudCB7CitjbGFzcyBOZXR3b3JrTG9hZENoZWNrZXIgOiBwdWJs
aWMgV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8TmV0d29ya0xvYWRDaGVja2VyPiB7CiBwdWJsaWM6CiAgICAgTmV0d29ya0xvYWRDaGVj
a2VyKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgdWludDY0X3Qgd2ViUGFnZUlELCB1
aW50NjRfdCB3ZWJGcmFtZUlELCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRj
aE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiwgV2Vi
Q29yZTo6VVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiwgV2ViQ29yZTo6
UHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlcik7CiAgICAgfk5ldHdvcmtMb2FkQ2hl
Y2tlcigpOwpAQCAtNjksOCArNjksNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6VVJM
JiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9z
dG9yZWRDcmVkZW50aWFsc1BvbGljeTsgfQogCi0gICAgV2Vha1B0ckZhY3Rvcnk8TmV0d29ya0xv
YWRDaGVja2VyPiYgd2Vha1B0ckZhY3RvcnkoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5OyB9Ci0K
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KiBjb250ZW50U2Vj
dXJpdHlQb2xpY3koKTsKICAgICBib29sIGlzQ2hlY2tpbmcoKSBjb25zdCB7IHJldHVybiAhIW1f
Y29yc1ByZWZsaWdodENoZWNrZXI7IH0KQEAgLTEzNCw3ICsxMzIsNiBAQCBwcml2YXRlOgogICAg
IFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSBtX3ByZWZsaWdodFBvbGljeTsKICAgICBTdHJpbmcg
bV9kbnRIZWFkZXJWYWx1ZTsKICAgICBTdHJpbmcgbV9yZWZlcnJlcjsKLSAgICBXZWFrUHRyRmFj
dG9yeTxOZXR3b3JrTG9hZENoZWNrZXI+IG1fd2Vha0ZhY3Rvcnk7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDIzNjUy
YmFmZDI0MTc0NGU4MDEzZWYxMzAzYjY0ZDQ4MjJhNGYxOWQuLjNmYjgxNjQ2YzlmZWU4NDQ4YmVj
MWYyZjJhNWU0MDNkOTFkZGVlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2UoUHJlY29ubmVjdFRhc2smIHByZWNvbm5lY3RUYXNrLCBjb25zdCBXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKIHsKICAgICB1aW50NjRfdCBsb2Fk
ZXJJRCA9IGdlbmVyYXRlQ2FuQXV0aGVudGljYXRlSWRlbnRpZmllcigpOwotICAgIG1fd2FpdGlu
Z1ByZWNvbm5lY3RUYXNrcy5zZXQobG9hZGVySUQsIHByZWNvbm5lY3RUYXNrLmNyZWF0ZVdlYWtQ
dHIoKSk7CisgICAgbV93YWl0aW5nUHJlY29ubmVjdFRhc2tzLnNldChsb2FkZXJJRCwgbWFrZVdl
YWtQdHIocHJlY29ubmVjdFRhc2spKTsKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpDYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKGxvYWRlcklELCBwcmVjb25uZWN0VGFzay5wYWdlSUQoKSwgcHJlY29u
bmVjdFRhc2suZnJhbWVJRCgpLCBwcm90ZWN0aW9uU3BhY2UpLCAwKTsKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oCmluZGV4IDdhZjAx
ODhjN2FmMTc4MGZjYzE4NTZiYmM1ZWViNGJkMjc4YzQ2MGYuLmZjZWY5ZGEyOTAzZTI1MmM4ZTJh
ZDk1MTJlYmEwYjU1YjRjZmFiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJlY29ubmVjdFRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByZWNvbm5lY3RUYXNrLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBOZXR3b3JrTG9hZDsKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVyczsKIAotY2xhc3Mg
UHJlY29ubmVjdFRhc2sgZmluYWwgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQgeworY2xhc3Mg
UHJlY29ubmVjdFRhc2sgZmluYWwgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQsIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxQcmVjb25uZWN0VGFzaz4gewogcHVibGljOgogICAgIGV4cGxpY2l0IFBy
ZWNvbm5lY3RUYXNrKE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmLCBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyID0geyB9KTsKICAgICB+UHJlY29ubmVjdFRhc2soKTsKQEAgLTQ3LDggKzQ3LDYgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2UoYm9vbCk7CiAKLSAgICBXZWFrUHRyPFByZWNvbm5lY3RUYXNrPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQotCiBwcml2
YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgogICAgIGJvb2wgaXNTeW5jaHJvbm91cygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC02Niw3ICs2NCw2IEBAIHByaXZhdGU6
CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtMb2FkPiBtX25ldHdvcmtMb2FkOwogICAgIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik+
IG1fY29tcGxldGlvbkhhbmRsZXI7CiAgICAgV2ViQ29yZTo6VGltZXIgbV90aW1lb3V0VGltZXI7
Ci0gICAgV2Vha1B0ckZhY3Rvcnk8UHJlY29ubmVjdFRhc2s+IG1fd2Vha0ZhY3Rvcnk7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oCmluZGV4IGUyOTczYjJiNTZlZGYy
YmQzOTUzZDZlOWQ0MGIwMjE4ZjgxZTAzN2MuLmNkZmMzNDgzYTA0OTE2NDRhNTUxZjRhMjYyNmQ5
MmQ2Y2ZkOGE2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2Ug
Q2FjaGVTdG9yYWdlIHsKIHVzaW5nIENhY2hlSWRlbnRpZmllciA9IHVpbnQ2NF90OwogdXNpbmcg
TG9ja0NvdW50ID0gdWludDY0X3Q7CiAKLWNsYXNzIEVuZ2luZSA6IHB1YmxpYyBSZWZDb3VudGVk
PEVuZ2luZT4geworY2xhc3MgRW5naW5lIDogcHVibGljIFJlZkNvdW50ZWQ8RW5naW5lPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPEVuZ2luZT4gewogcHVibGljOgogICAgIH5FbmdpbmUoKTsKIApA
QCAtOTAsOCArOTAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckFsbENhY2hlcyhXVEY6OkNh
bGxiYWNrQWdncmVnYXRvciYpOwogICAgIHZvaWQgY2xlYXJDYWNoZXNGb3JPcmlnaW4oY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV1RGOjpDYWxsYmFja0FnZ3JlZ2F0b3ImKTsK
IAotICAgIFdlYWtQdHJGYWN0b3J5PEVuZ2luZT4mIHdlYWtQdHJGYWN0b3J5KCkgeyByZXR1cm4g
bV93ZWFrRmFjdG9yeTsgfQotCiBwcml2YXRlOgogICAgIHN0YXRpYyBFbmdpbmUmIGRlZmF1bHRF
bmdpbmUoKTsKICAgICBleHBsaWNpdCBFbmdpbmUoU3RyaW5nJiYgcm9vdFBhdGgpOwpAQCAtMTE5
LDcgKzExNyw2IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxOZXR3b3JrQ2FjaGU6OlNh
bHQ+IG1fc2FsdDsKICAgICBIYXNoTWFwPENhY2hlSWRlbnRpZmllciwgTG9ja0NvdW50PiBtX2Nh
Y2hlTG9ja3M7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDb21wbGV0aW9u
Q2FsbGJhY2s+IG1faW5pdGlhbGl6YXRpb25DYWxsYmFja3M7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8
RW5naW5lPiBtX3dlYWtGYWN0b3J5OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkNvcmU6OkRP
TUNhY2hlRW5naW5lOjpDb21wbGV0aW9uQ2FsbGJhY2s+IG1fcGVuZGluZ1dyaXRlQ2FsbGJhY2tz
OwogICAgIEhhc2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgTmV0
d29ya0NhY2hlOjpEYXRhJiwgaW50IGVycm9yKT4+IG1fcGVuZGluZ1JlYWRDYWxsYmFja3M7CiAg
ICAgdWludDY0X3QgbV9wZW5kaW5nQ2FsbGJhY2tzQ291bnRlciB7IDAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25N
YW5hZ2VyLmgKaW5kZXggNGIxNGRkZWRkY2ZiYjczZWI4ZWZlYmY0N2E4YmNjMjE1NjU2NDFhYy4u
ZGY1NGNlYjU5MWY3NTlmNzRjYmVlNjdhZTgwNjliZmY0Mjc1NjQ0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25N
YW5hZ2VyLmgKQEAgLTU5LDcgKzU5LDcgQEAgZW51bSBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZURpc3Bvc2l0aW9uIHsKIH07CiB1c2luZyBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpPjsKIAotY2xhc3MgQXV0aGVudGljYXRpb25N
YW5hZ2VyIDogcHVibGljIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKK2NsYXNzIEF1dGhlbnRpY2F0aW9uTWFuYWdlciA6IHB1YmxpYyBOZXR3
b3JrUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPEF1dGhlbnRpY2F0aW9uTWFuYWdlcj4gewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEF1dGhlbnRpY2F0aW9uTWFuYWdlcik7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
QXV0aGVudGljYXRpb25NYW5hZ2VyKENoaWxkUHJvY2VzcyYpOwpAQCAtMTE1LDggKzExNSw2IEBA
IHByaXZhdGU6CiAgICAgQ2hpbGRQcm9jZXNzJiBtX3Byb2Nlc3M7CiAKICAgICBIYXNoTWFwPHVp
bnQ2NF90LCBDaGFsbGVuZ2U+IG1fY2hhbGxlbmdlczsKLQotICAgIFdlYWtQdHJGYWN0b3J5PEF1
dGhlbnRpY2F0aW9uTWFuYWdlcj4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRp
b24vY29jb2EvQXV0aGVudGljYXRpb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbQpp
bmRleCBhMmNmN2VhMDA3MDYzZTNhMGY2MjVhMTI3MWEwYjBkNzIxMzhiYjQxLi4wODBjNjFlNDA2
YWE2MGE4YTk3YjM5NmM5NTVmMzQ5ZTM1Njk1NGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50
aWNhdGlvbk1hbmFnZXJDb2NvYS5tbQpAQCAtNDAsNyArNDAsNyBAQCB2b2lkIEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIHdlYWtUaGlz
ID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIC8vIFRoZSBmb2xsb3dpbmcgeHBjIGV2ZW50
IGhhbmRsZXIgb3ZlcndyaXRlcyB0aGUgYm9vc3RyYXAgZXZlbnQgaGFuZGxlciBhbmQgaXMgb25s
eSB1c2VkCiAgICAgLy8gdG8gY2FwdHVyZSBjbGllbnQgY2VydGlmaWNhdGUgY3JlZGVudGlhbC4K
ICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLT54cGNDb25u
ZWN0aW9uKCksIF4oeHBjX29iamVjdF90IGV2ZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAKaW5kZXggMDRlMDcxN2UzYzdmMzJhYzk2Yzk3ZmY4
OTkwYjVmYTNjZmYyOWNkYS4uN2UwMDlkNmIyZTU1OWNkODViOTg0NjY4MTIxMTlhNGM4Yjk2OTZl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcApA
QCAtNDAsNyArNDAsNyBAQCBSZWY8QXR0YWNobWVudD4gQXR0YWNobWVudDo6Y3JlYXRlKGNvbnN0
IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBXZWJLaXQ6OldlYlBhZwogCiBBdHRhY2htZW50OjpB
dHRhY2htZW50KGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYgd2ViUGFnZSkKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV93
ZWJQYWdlKHdlYlBhZ2UuY3JlYXRlV2Vha1B0cigpKQorICAgICwgbV93ZWJQYWdlKG1ha2VXZWFr
UHRyKHdlYlBhZ2UpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXgg
OTE0OTUyZWE2MDI2N2Q2MDQ2MjdkZjU1MmUxZjcwODMxMmU2ZTU3Ny4uNzgwYTE1ZTk2ZDNjMzYy
NDZiYjVkNWE0MWM3MTI3YjJhYmRkMTMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNw
cApAQCAtNjksNyArNjksNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpjYW5N
YWtlUGF5bWVudHMoYm9vbCYgcmVwbHkpCiAKIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OmNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJRCkK
IHsKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0
aGlzKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIHBsYXRm
b3JtQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQobWVyY2hhbnRJZGVudGlmaWVyLCBkb21h
aW5OYW1lLCBbd2Vha1RoaXMsIHJlcXVlc3RJRF0oYm9vbCBjYW5NYWtlUGF5bWVudHMpIHsKICAg
ICAgICAgYXV0byBwYXltZW50Q29vcmRpbmF0b3JQcm94eSA9IHdlYWtUaGlzLmdldCgpOwogICAg
ICAgICBpZiAoIXBheW1lbnRDb29yZGluYXRvclByb3h5KQpAQCAtODEsNyArODEsNyBAQCB2b2lk
IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2Fy
ZChjb25zdCBTdHJpbmcmIG1lcgogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpv
cGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJRCkKIHsKLSAgICBhdXRvIHdlYWtU
aGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIHBsYXRmb3JtT3BlblBheW1lbnRTZXR1
cChtZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUsIFt3ZWFrVGhpcywgcmVxdWVzdElEXShi
b29sIHJlc3VsdCkgewogICAgICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0gd2Vh
a1RoaXMuZ2V0KCk7CiAgICAgICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkuaAppbmRleCBjODIwYmQ1ODZmNDQ4NjJjN2U5YzU1ZGZlZDA5ZDNl
ZjVhZTY5MDEwLi4wODUwMTlkYTA2ZTMyZmIwZjRlYzU4OTkxNTM1NDg2ZmViYTdmOGRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5LmgKQEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xhc3MgV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYlBheW1lbnRD
b29yZGluYXRvclByb3h5IDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENh
bk1ha2VXZWFrUHRyPFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5PiB7CiBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAg
fldlYlBheW1lbnRDb29yZGluYXRvclByb3h5KCk7CkBAIC0xMDcsNyArMTA3LDYgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYpOwogCiAgICAgV2Vi
UGFnZVByb3h5JiBtX3dlYlBhZ2VQcm94eTsKLSAgICBXZWFrUHRyRmFjdG9yeTxXZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eT4gbV93ZWFrUHRyRmFjdG9yeTsKIAogICAgIGVudW0gY2xhc3MgU3Rh
dGUgewogICAgICAgICAvLyBJZGxlIC0gTm90aGluZydzIGhhcHBlbmluZy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L21hYy9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L21hYy9XZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQppbmRleCBkZmY4ZGVjOTIxNThjZDFiZGE2OTE3
MDFjYThkZDJiNTdlYWEyMmVlLi43NDE1OTM4M2YxOTU0MjdkYjk3NjBhOGMwMWVjNzA2N2E2N2M2
Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMvV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXBwbGVQYXkvbWFjL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5TWFjLm1tCkBAIC01MSw3
ICs1MSw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtU2hvd1Bh
eW1lbnRVSShjb25zdCBXZWJDb3JlOjpVUkwmIG9yaWdpCiAgICAgYXV0byBwYXltZW50UmVxdWVz
dCA9IHRvUEtQYXltZW50UmVxdWVzdChtX3dlYlBhZ2VQcm94eSwgb3JpZ2luYXRpbmdVUkwsIGxp
bmtJY29uVVJMU3RyaW5ncywgcmVxdWVzdCk7CiAKICAgICBhdXRvIHNob3dQYXltZW50VUlSZXF1
ZXN0U2VlZCA9IG1fc2hvd1BheW1lbnRVSVJlcXVlc3RTZWVkOwotICAgIGF1dG8gd2Vha1RoaXMg
PSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAgIGF1dG8gd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgW2dldFBLUGF5bWVudEF1dGhvcml6YXRpb25W
aWV3Q29udHJvbGxlckNsYXNzKCkgcmVxdWVzdFZpZXdDb250cm9sbGVyV2l0aFBheW1lbnRSZXF1
ZXN0OnBheW1lbnRSZXF1ZXN0LmdldCgpIGNvbXBsZXRpb246QmxvY2tQdHI8dm9pZCAoUEtQYXlt
ZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyICosIE5TRXJyb3IgKik+Ojpmcm9tQ2FsbGFi
bGUoW3BheW1lbnRSZXF1ZXN0LCBzaG93UGF5bWVudFVJUmVxdWVzdFNlZWQsIHdlYWtUaGlzLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShQS1BheW1lbnRB
dXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXIgKnZpZXdDb250cm9sbGVyLCBOU0Vycm9yICplcnJv
cikgewogICAgICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0gd2Vha1RoaXMuZ2V0
KCk7CiAgICAgICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaAppbmRleCBhMGU5M2Jk
YmU3NmUwZjk5MDMyOTZhMTZhZTJjMmM4ZjQ4YjNlZDAzLi40ZWI1YjJiYzRmZWUzZDIwYmYzNmIx
YjFiYjIyNmNiODU2MDI4MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
cHBsaWNhdGlvblN0YXRlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Fw
cGxpY2F0aW9uU3RhdGVUcmFja2VyLmgKQEAgLTM3LDcgKzM3LDcgQEAgT0JKQ19DTEFTUyBVSVZp
ZXc7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBBcHBsaWNhdGlvblN0YXRlVHJhY2tl
ciB7CitjbGFzcyBBcHBsaWNhdGlvblN0YXRlVHJhY2tlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxBcHBsaWNhdGlvblN0YXRlVHJhY2tlcj4gewogcHVibGljOgogICAgIEFwcGxpY2F0aW9uU3Rh
dGVUcmFja2VyKFVJVmlldyAqLCBTRUwgZGlkRW50ZXJCYWNrZ3JvdW5kU2VsZWN0b3IsIFNFTCBk
aWRDcmVhdGVXaW5kb3dDb250ZXh0U2VsZWN0b3IsIFNFTCBkaWRGaW5pc2hTbmFwc2hvdHRpbmdB
ZnRlckVudGVyaW5nQmFja2dyb3VuZFNlbGVjdG9yLCBTRUwgd2lsbEVudGVyRm9yZWdyb3VuZFNl
bGVjdG9yKTsKICAgICB+QXBwbGljYXRpb25TdGF0ZVRyYWNrZXIoKTsKQEAgLTU4LDggKzU4LDYg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc0luQmFja2dyb3VuZDsKIAotICAgIFdlYWtQdHJG
YWN0b3J5PEFwcGxpY2F0aW9uU3RhdGVUcmFja2VyPiBtX3dlYWtQdHJGYWN0b3J5OwotCiAgICAg
UmV0YWluUHRyPEJLU0FwcGxpY2F0aW9uU3RhdGVNb25pdG9yPiBtX2FwcGxpY2F0aW9uU3RhdGVN
b25pdG9yOwogCiAgICAgaWQgbV9kaWRFbnRlckJhY2tncm91bmRPYnNlcnZlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0KaW5kZXgg
YzY1MjNhMzhhZDg2M2Y4ZmJjNTJlNGQxODJlMGU4N2EwYzc3OTgzNi4uNWIwM2FmYjQyNTE1MjJl
NGI2OGRlOWE3NmY0YTFkYTlmNWVmNWFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0KQEAgLTkzLDcgKzkzLDcgQEAgQXBwbGlj
YXRpb25TdGF0ZVRyYWNrZXI6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyKFVJVmlldyAqdmlldywg
U0VMIGRpZEVudGVyQmFja2cKICAgICBBU1NFUlQod2luZG93KTsKIAogICAgIE5TTm90aWZpY2F0
aW9uQ2VudGVyICpub3RpZmljYXRpb25DZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl07Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigqdGhpcyk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsK
ICAgICBtX2RpZENyZWF0ZVdpbmRvd0NvbnRleHRPYnNlcnZlciA9IFtub3RpZmljYXRpb25DZW50
ZXIgYWRkT2JzZXJ2ZXJGb3JOYW1lOkAiX1VJV2luZG93RGlkQ3JlYXRlV2luZG93Q29udGV4dE5v
dGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvdyBxdWV1ZTpuaWwgdXNpbmdCbG9jazpbd2Vha1RoaXNd
KE5TTm90aWZpY2F0aW9uICopIHsKICAgICAgICAgYXV0byBhcHBsaWNhdGlvblN0YXRlVHJhY2tl
ciA9IHdlYWtUaGlzLmdldCgpOwogICAgICAgICBpZiAoIWFwcGxpY2F0aW9uU3RhdGVUcmFja2Vy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5jcHAKaW5kZXggMmIzYmE3N2YzMWMxMTg3YTU4MDk5MmI2MDE2MTIyODlkYTYy
ZjAyNS4uMzUzNzhiMGRjMzQ5NjU3MWE3NmFkNjA1OGNjNTBmMjZhNDk1M2I4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlld0dlc3R1cmVDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIuY3BwCkBAIC0xMDgsMTAgKzEwOCw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpk
aWRFbmRHZXN0dXJlKCkKICAgICAKIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpzZXRBbHRl
cm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAg
ICBpZiAocGFnZSkKLSAgICAgICAgbV9hbHRlcm5hdGVCYWNrRm9yd2FyZExpc3RTb3VyY2VQYWdl
ID0gcGFnZS0+Y3JlYXRlV2Vha1B0cigpOwotICAgIGVsc2UKLSAgICAgICAgbV9hbHRlcm5hdGVC
YWNrRm9yd2FyZExpc3RTb3VyY2VQYWdlLmNsZWFyKCk7CisgICAgbV9hbHRlcm5hdGVCYWNrRm9y
d2FyZExpc3RTb3VyY2VQYWdlID0gbWFrZVdlYWtQdHIocGFnZSk7CiB9CiAgICAgCiBib29sIFZp
ZXdHZXN0dXJlQ29udHJvbGxlcjo6Y2FuU3dpcGVJbkRpcmVjdGlvbihTd2lwZURpcmVjdGlvbiBk
aXJlY3Rpb24pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAppbmRleCBlMzk5NGQzZGY1NjdjODNiZjFiYTczZjk1NzcyZjNiNmNlODM3MmJhLi4xNjRi
YWMzYmQ2NWZmYzBjY2E2NzlmYjhkZDA2NDg1N2UzZWQ4MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTEyNCw3ICsxMjQsNyBAQCB0eXBlZGVm
IGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPiBWYWxpZGF0aW9uSXRlbTsKIHR5cGVk
ZWYgVmVjdG9yPFJldGFpblB0cjxWYWxpZGF0aW9uSXRlbT4+IFZhbGlkYXRpb25WZWN0b3I7CiB0
eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWYWxpZGF0aW9uVmVjdG9yPiBWYWxpZGF0aW9uTWFwOwog
Ci1jbGFzcyBXZWJWaWV3SW1wbCB7CitjbGFzcyBXZWJWaWV3SW1wbCA6IHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxXZWJWaWV3SW1wbD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKIHB1YmxpYzoKQEAgLTU3OCw4ICs1
NzgsNiBAQCBwcml2YXRlOgogI2VuZGlmIC8vIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNf
TUFOQUdFUikKICNlbmRpZiAvLyBIQVZFKFRPVUNIX0JBUikKIAotICAgIFdlYWtQdHI8V2ViVmll
d0ltcGw+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpOyB9Ci0KICAgICBib29sIHN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMo
KSBjb25zdDsKICAgICBmbG9hdCBpbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0Owog
ICAgIHZvaWQgZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQoKTsKQEAgLTYxMyw4ICs2MTEsNiBA
QCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxQYWdlQ2xpZW50PiBtX3BhZ2VDbGllbnQ7
CiAgICAgUmVmPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8V2Vi
Vmlld0ltcGw+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0KICAgICBib29sIG1fd2lsbEJlY29tZUZpcnN0
UmVzcG9uZGVyQWdhaW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9pbkJlY29tZUZpcnN0UmVzcG9u
ZGVyIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5SZXNpZ25GaXJzdFJlc3BvbmRlciB7IGZhbHNl
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4
IDZmOTRiYzZjYTdlNjIwZGEzNjQyODBmNzAxNGRmOTEwYzJhZjY4MTUuLmIzZmJiYTQ1ZDgxODIz
MTM4ZmQ3MGNmNDIyMDFlNjVjNDBjM2Q0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xNTc0LDcgKzE1NzQsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjp1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCkKIAogICAgIG1fZGlkU2NoZWR1bGVXaW5k
b3dBbmRWaWV3RnJhbWVVcGRhdGUgPSB0cnVlOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0
ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10gewog
ICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTcwNiw3ICsx
NzA2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0VG9wQ29udGVudEluc2V0KENHRmxvYXQgY29u
dGVudEluc2V0KQogCiAgICAgbV9kaWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldCA9IHRydWU7
CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgW3dlYWtUaGlzXSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0yMDY5LDcgKzIwNjksNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2
aWV3RGlkTW92ZVRvV2luZG93KCkKICAgICAgICAgbV9wYWdlLT5sYXllckhvc3RpbmdNb2RlRGlk
Q2hhbmdlKCk7CiAKICAgICAgICAgaWYgKCFtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikgewot
ICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgICAg
IGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgICAgICAgICBtX2ZsYWdz
Q2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01h
dGNoaW5nTWFzazpOU0V2ZW50TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVyOlt3ZWFrVGhpc10gKE5T
RXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlz
KQogICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRG
b3JGbGFnc0NoYW5nZWRFdmVudChmbGFnc0NoYW5nZWRFdmVudCk7CkBAIC0yMjQ5LDcgKzIyNDks
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9yTW92ZVRvV2luZG93KE5TV2luZG93ICp0
YXJnZXRXaW5kb3csIFdURjo6RnVuY3Rpb248dgogCiAgICAgbV9zaG91bGREZWZlclZpZXdJbldp
bmRvd0NoYW5nZXMgPSBmYWxzZTsKIAotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRy
KCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICBtX3BhZ2Ut
Pmluc3RhbGxBY3Rpdml0eVN0YXRlQ2hhbmdlQ29tcGxldGlvbkhhbmRsZXIoW3dlYWtUaGlzLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIApAQCAtMjc4Niw3ICsyNzg2LDcgQEAgYm9vbCBXZWJW
aWV3SW1wbDo6dmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbShpZCA8TlNWYWxpZGF0ZWRVc2VySW50
ZXJmYWNlSXRlbT4gaXQKICAgICAgICAgLy8gSWYgd2UgYXJlIG5vdCBhbHJlYWR5IGF3YWl0aW5n
IHZhbGlkYXRpb24gZm9yIHRoaXMgY29tbWFuZCwgc3RhcnQgdGhlIGFzeW5jaHJvbm91cyB2YWxp
ZGF0aW9uIHByb2Nlc3MuCiAgICAgICAgIC8vIEZJWE1FOiBUaGVvcmV0aWNhbGx5LCB0aGVyZSBp
cyBhIHJhY2UgaGVyZTsgd2hlbiB3ZSBnZXQgdGhlIGFuc3dlciBpdCBtaWdodCBiZSBvbGQsIGZy
b20gYSBwcmV2aW91cyB0aW1lCiAgICAgICAgIC8vIHdlIGFza2VkIGZvciB0aGUgc2FtZSBjb21t
YW5kOyB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhlIGFuc3dlciBpcyBzdGlsbCB2YWxpZC4KLSAg
ICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgYXV0byB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAgICAgICAgbV9wYWdlLT52YWxpZGF0ZUNvbW1h
bmQoY29tbWFuZE5hbWUsIFt3ZWFrVGhpc10oY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgYm9v
bCBpc0VuYWJsZWQsIGludDMyX3Qgc3RhdGUsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBl
cnJvcikgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC0zMDM2LDcgKzMwMzYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXF1ZXN0Q2FuZGlk
YXRlc0ZvclNlbGVjdGlvbklmTmVlZGVkKCkKICNpZiBIQVZFKEFEVkFOQ0VEX1NQRUxMX0NIRUNL
SU5HKQogICAgIE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSA9IE5TTWFrZVJhbmdlKHBvc3RMYXlvdXRE
YXRhLmNhbmRpZGF0ZVJlcXVlc3RTdGFydFBvc2l0aW9uLCBwb3N0TGF5b3V0RGF0YS5zZWxlY3Rl
ZFRleHRMZW5ndGgpOwogICAgIE5TVGV4dENoZWNraW5nVHlwZXMgY2hlY2tpbmdUeXBlcyA9IE5T
VGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgTlNUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQg
fCBOU1RleHRDaGVja2luZ1R5cGVDb3JyZWN0aW9uOwotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVh
dGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKICAg
ICBtX2xhc3RDYW5kaWRhdGVSZXF1ZXN0U2VxdWVuY2VOdW1iZXIgPSBbW05TU3BlbGxDaGVja2Vy
IHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3RlZFJhbmdlOnNl
bGVjdGVkUmFuZ2UgaW5TdHJpbmc6cG9zdExheW91dERhdGEucGFyYWdyYXBoQ29udGV4dEZvckNh
bmRpZGF0ZVJlcXVlc3QgdHlwZXM6Y2hlY2tpbmdUeXBlcyBvcHRpb25zOm5pbCBpblNwZWxsRG9j
dW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgY29tcGxldGlvbkhhbmRsZXI6
W3dlYWtUaGlzXShOU0ludGVnZXIgc2VxdWVuY2VOdW1iZXIsIE5TQXJyYXk8TlNUZXh0Q2hlY2tp
bmdSZXN1bHQgKj4gKmNhbmRpZGF0ZXMpIHsKICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCkBAIC00
MzY1LDcgKzQzNjUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnRlcnByZXRLZXlFdmVudChOU0V2
ZW50ICpldmVudCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXIpKEJPTwogICAgIH0KIAogICAgIExP
RyhUZXh0SW5wdXQsICItPiBoYW5kbGVFdmVudEJ5SW5wdXRNZXRob2Q6JXAgJUAiLCBldmVudCwg
ZXZlbnQpOwotICAgIFtpbnB1dENvbnRleHQoKSBoYW5kbGVFdmVudEJ5SW5wdXRNZXRob2Q6ZXZl
bnQgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpLCBjYXB0dXJl
ZEV2ZW50ID0gcmV0YWluUHRyKGV2ZW50KSwgY2FwdHVyZWRCbG9jayA9IG1ha2VCbG9ja1B0cihj
b21wbGV0aW9uSGFuZGxlcildKEJPT0wgaGFuZGxlZCkgeworICAgIFtpbnB1dENvbnRleHQoKSBo
YW5kbGVFdmVudEJ5SW5wdXRNZXRob2Q6ZXZlbnQgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjYXB0dXJlZEV2ZW50ID0gcmV0YWluUHRyKGV2ZW50KSwg
Y2FwdHVyZWRCbG9jayA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKEJPT0wgaGFu
ZGxlZCkgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAgICAgICBjYXB0dXJlZEJs
b2NrKE5PLCB7IH0pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDU1OSw3ICs0NTU5LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoTlNSYW5nZSByYW5n
ZSwgdm9pZCheY29tcGxldGlvbkhhbmQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1
dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKTsKICAgICBtX3BhZ2UtPmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQXN5
bmMocmFuZ2UsIFt3ZWFrVGhpcywgY29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHJlY3QsIGNvbnN0IEVkaXRpbmdSYW5nZSYgYWN0dWFsUmFuZ2UsIFdlYktpdDo6Q2Fs
bGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewogICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVy
QmxvY2sgPSAodm9pZCAoXikoTlNSZWN0LCBOU1JhbmdlKSljb21wbGV0aW9uSGFuZGxlci5nZXQo
KTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykgewpAQCAtNDczNCw3ICs0NzM0LDcgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgLy8g
dGhpcyBldmVudC4gVGhpcyBsZXRzIHdlYnBhZ2VzIGhhdmUgYSBjcmFjayBhdCBpbnRlcmNlcHRp
bmcga2V5LW1vZGlmaWVkIGtleXByZXNzZXMuCiAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGUgZmly
c3RSZXNwb25kZXIgY2hlY2sgbmVlZGVkPwogICAgIGlmIChtX3ZpZXcuZ2V0QXV0b3JlbGVhc2Vk
KCkgPT0gW21fdmlldyB3aW5kb3ddLmZpcnN0UmVzcG9uZGVyKSB7Ci0gICAgICAgIGludGVycHJl
dEtleUV2ZW50KGV2ZW50LCBbd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCksIGNhcHR1cmVkRXZl
bnQgPSByZXRhaW5QdHIoZXZlbnQpXShCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKKyAgICAgICAgaW50
ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2Fw
dHVyZWRFdmVudCA9IHJldGFpblB0cihldmVudCldKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewogICAg
ICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BhZ2Ut
PmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChjYXB0dXJlZEV2ZW50
LmdldCgpLCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgZmFsc2UsIGNvbW1hbmRzKSk7CiAgICAgICAg
IH0pOwpAQCAtNDc1Miw3ICs0NzUyLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5VXAoTlNFdmVu
dCAqZXZlbnQpCiAgICAgTE9HKFRleHRJbnB1dCwgImtleVVwOiVwICVAIiwgZXZlbnQsIGV2ZW50
KTsKIAogICAgIG1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlID0gZmFsc2U7Ci0g
ICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwg
Y2FwdHVyZWRFdmVudCA9IHJldGFpblB0cihldmVudCldKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRo
b2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewor
ICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIGNhcHR1cmVkRXZlbnQgPSByZXRhaW5QdHIoZXZlbnQpXShCT09MIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMp
IHsKICAgICAgICAgQVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0Vt
cHR5KCkpOwogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9w
YWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoY2FwdHVyZWRF
dmVudC5nZXQoKSwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIHdlYWtUaGlzLT5tX2lzVGV4dEluc2Vy
dGlvblJlcGxhY2luZ1NvZnRTcGFjZSwgY29tbWFuZHMpKTsKQEAgLTQ3ODEsNyArNDc4MSw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OmtleURvd24oTlNFdmVudCAqZXZlbnQpCiAgICAgfQogCiAgICAg
bV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPSBmYWxzZTsKLSAgICBpbnRlcnBy
ZXRLZXlFdmVudChldmVudCwgW3dlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpLCBjYXB0dXJlZEV2
ZW50ID0gcmV0YWluUHRyKGV2ZW50KV0oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7CisgICAgaW50ZXJw
cmV0S2V5RXZlbnQoZXZlbnQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2FwdHVy
ZWRFdmVudCA9IHJldGFpblB0cihldmVudCldKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewogICAgICAg
ICBBU1NFUlQoIWhhbmRsZWRCeUlucHV0TWV0aG9kIHx8IGNvbW1hbmRzLmlzRW1wdHkoKSk7CiAg
ICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BhZ2UtPmhhbmRs
ZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChjYXB0dXJlZEV2ZW50LmdldCgp
LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgd2Vha1RoaXMtPm1faXNUZXh0SW5zZXJ0aW9uUmVwbGFj
aW5nU29mdFNwYWNlLCBjb21tYW5kcykpOwpAQCAtNDgxMCw3ICs0ODEwLDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6ZmxhZ3NDaGFuZ2VkKE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBpZiAobV9pZ25v
cmVzTm9uV2hlZWxFdmVudHMpIFwKICAgICAgICAgICAgIHJldHVybjsgXAogICAgICAgICBpZiAo
TlNUZXh0SW5wdXRDb250ZXh0ICpjb250ZXh0ID0gW21fdmlldyBpbnB1dENvbnRleHRdKSB7IFwK
LSAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7IFwKKyAgICAgICAg
ICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7IFwKICAgICAgICAgICAgIFJl
dGFpblB0cjxOU0V2ZW50PiByZXRhaW5lZEV2ZW50ID0gZXZlbnQ7IFwKICAgICAgICAgICAgIFtj
b250ZXh0IGhhbmRsZUV2ZW50OmV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrVGhpcywgcmV0
YWluZWRFdmVudF0gKEJPT0wgaGFuZGxlZCkgeyBcCiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFr
VGhpcykgXApAQCAtNDgzMyw3ICs0ODMzLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZmxhZ3NDaGFu
Z2VkKE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMp
IFwKICAgICAgICAgICAgIHJldHVybjsgXAogICAgICAgICBpZiAoTlNUZXh0SW5wdXRDb250ZXh0
ICpjb250ZXh0ID0gW21fdmlldyBpbnB1dENvbnRleHRdKSB7IFwKLSAgICAgICAgICAgIGF1dG8g
d2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7IFwKKyAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyk7IFwKICAgICAgICAgICAgIFJldGFpblB0cjxOU0V2ZW50PiBy
ZXRhaW5lZEV2ZW50ID0gZXZlbnQ7IFwKICAgICAgICAgICAgIFtjb250ZXh0IGhhbmRsZUV2ZW50
OmV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrVGhpcywgcmV0YWluZWRFdmVudF0gKEJPT0wg
aGFuZGxlZCkgeyBcCiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVu
dGlhbHNNZXNzZW5nZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50
aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmNwcAppbmRleCAzYWZk
ZDEzNWMxYWY4MTQ2ODFiMjAwMjUwMzA3ZTM2MmQ3OTExN2I1Li40OGE2MGViYTEzMDQyZjIyZmMx
NmE1NzYyN2NhNTVjNTlhZDkyZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVk
ZW50aWFsc01lc3NlbmdlclByb3h5LmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFdlYkNyZWRl
bnRpYWxzTWVzc2VuZ2VyUHJveHk6Om1ha2VDcmVkZW50aWFsKHVpbnQ2NF90IG1lc3NhZ2VJZCwg
Y29uc3QgVmVjdAogICAgIH0KICAgICAvLyBGSVhNRSgxODM1MzQpOiBXZWFrIHBvaW50ZXJzIGRv
ZXNuJ3Qgd29yayBpbiBhbm90aGVyIHRocmVhZCBiZWNhdXNlIG9mIHJhY2UgY29uZGl0aW9uLgog
ICAgIC8vIEZJWE1FKDE4MzUzNCk6IFVuaWZ5IGNhbGxiYWNrcy4KLSAgICBhdXRvIHdlYWtUaGlz
ID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKKyAgICBhdXRvIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGF1dG8gY2FsbGJhY2sgPSBbd2Vha1RoaXMsIG1l
c3NhZ2VJZF0gKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgY3JlZGVudGlhbElkLCBjb25zdCBWZWN0
b3I8dWludDhfdD4mIGF0dGVzdGF0aW9uT2JqZWN0KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMp
CiAgICAgICAgICAgICByZXR1cm47CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgV2ViQ3JlZGVudGlh
bHNNZXNzZW5nZXJQcm94eTo6Z2V0QXNzZXJ0aW9uKHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3Qg
VmVjdG9yCiAgICAgICAgIGV4Y2VwdGlvblJlcGx5KG1lc3NhZ2VJZCwgeyBXZWJDb3JlOjpOb3RB
bGxvd2VkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYXZhbGlhYmxlIGF1dGhlbnRpY2F0b3JzLiIp
IH0pOwogICAgIC8vIEZJWE1FKDE4MzUzNCk6IFdlYWsgcG9pbnRlcnMgZG9lc24ndCB3b3JrIGlu
IGFub3RoZXIgdGhyZWFkIGJlY2F1c2Ugb2YgcmFjZSBjb25kaXRpb24uCiAgICAgLy8gRklYTUUo
MTgzNTM0KTogVW5pZnkgY2FsbGJhY2tzLgotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyk7CiAgICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcywgbWVzc2FnZUlkXSAoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBjcmVkZW50aWFsSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
YXV0aGVudGljYXRvckRhdGEsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgc2lnbmF0dXJlLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIHVzZXJIYW5kbGUpIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQog
ICAgICAgICAgICAgd2Vha1RoaXMtPmdldEFzc2VydGlvblJlcGx5KG1lc3NhZ2VJZCwgY3JlZGVu
dGlhbElkLCBhdXRoZW50aWNhdG9yRGF0YSwgc2lnbmF0dXJlLCB1c2VySGFuZGxlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRl
bnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuaAppbmRleCAwYzJh
NGRlMTVlMjlhNzUzYWFjMzRmNzlkZDkwNzkzYmQ2MzQxMjg2Li45ZDc0Yzk3MjcwYjc4M2U4N2U0
ZjhlNTJmMjhkYTBlYTI5MGM3MGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVu
dGlhbHNNZXNzZW5nZXJQcm94eS5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2Vy
UHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYkNyZWRlbnRp
YWxzTWVzc2VuZ2VyUHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8V2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eT4gewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkpOwogcHVibGljOgog
ICAgIGV4cGxpY2l0IFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7
CkBAIC02Nyw3ICs2Nyw2IEBAIHByaXZhdGU6CiAKICAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFn
ZVByb3h5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpMb2NhbEF1dGhlbnRpY2F0b3I+
IG1fYXV0aGVudGljYXRvcjsKLSAgICBXZWFrUHRyRmFjdG9yeTxXZWJDcmVkZW50aWFsc01lc3Nl
bmdlclByb3h5PiBtX3dlYWtGYWN0b3J5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5j
cHAKaW5kZXggMjhkYWMyMTM4ODdkMjUxYjkxNjVhNmU0NjgzNjk2M2RlNGNiMWI2Zi4uOTYzMjZl
YmZhNWE3ZjhjY2FkNDk4NWMxZGEzOGUxOWYxOGU0MzgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcApAQCAtOTksNyArOTks
NyBAQCBXZWJQYWdlUHJveHkqIERvd25sb2FkUHJveHk6Om9yaWdpbmF0aW5nUGFnZSgpIGNvbnN0
CiAKIHZvaWQgRG93bmxvYWRQcm94eTo6c2V0T3JpZ2luYXRpbmdQYWdlKFdlYlBhZ2VQcm94eSog
cGFnZSkKIHsKLSAgICBtX29yaWdpbmF0aW5nUGFnZSA9IHBhZ2UgPyBwYWdlLT5jcmVhdGVXZWFr
UHRyKCkgOiBudWxscHRyOworICAgIG1fb3JpZ2luYXRpbmdQYWdlID0gbWFrZVdlYWtQdHIocGFn
ZSk7CiB9CiAKIHZvaWQgRG93bmxvYWRQcm94eTo6ZGlkU3RhcnQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCAz
YWJhYmJjY2VlZGNlM2U3OWRlZGUwYTMzOTMxYTUyZjJlZjU3MzYwLi44MzFiMThkZWY0YmM3NDM2
NzBmNzUzNmI1NTdmZjgzNTVhMjU5MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNDEsNyArNDEsNyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUHJvY2Vzc0xhdW5jaGVyIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFByb2Nlc3NMYXVuY2hlcj4geworY2xhc3MgUHJvY2Vzc0xhdW5jaGVyIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFByb2Nlc3NMYXVuY2hlcj4sIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxQcm9jZXNzTGF1bmNoZXI+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBDbGllbnQg
ewogICAgIHB1YmxpYzoKQEAgLTEwMSw3ICsxMDEsNiBAQCBwcml2YXRlOgogICAgIFdURjo6V2lu
MzJIYW5kbGUgbV9oUHJvY2VzczsKICNlbmRpZgogCi0gICAgV2Vha1B0ckZhY3Rvcnk8UHJvY2Vz
c0xhdW5jaGVyPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIGNvbnN0IExhdW5jaE9wdGlvbnMgbV9s
YXVuY2hPcHRpb25zOwogICAgIGJvb2wgbV9pc0xhdW5jaGluZzsKICAgICBQcm9jZXNzSUQgbV9w
cm9jZXNzSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IDMxMTA1ZTQ3MDNjMGVm
ZDQ4MTRjYjE1MzZmOTE0Yzg1ZTMwOGY5MTkuLjM3NWExNzA1Y2QzNzQ3MzRiNTBiMDgxYzA3MmNk
Y2NjOGFkNjFmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjAxLDcgKzIwMSw3IEBAIHZv
aWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5
X3NldF92YWx1ZShib290c3RyYXBNZXNzYWdlLmdldCgpLCAiZXh0cmEtaW5pdGlhbGl6YXRpb24t
ZGF0YSIsIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgpKTsKIAotICAgIGF1dG8gd2Vha1By
b2Nlc3NMYXVuY2hlciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7Cisg
ICAgYXV0byB3ZWFrUHJvY2Vzc0xhdW5jaGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIGF1
dG8gZXJyb3JIYW5kbGVyID0gW3dlYWtQcm9jZXNzTGF1bmNoZXIsIGxpc3RlbmluZ1BvcnRdKHhw
Y19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoIWV2ZW50IHx8IHhwY19nZXRfdHlw
ZShldmVudCkgPT0gWFBDX1RZUEVfRVJST1IpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm9jZXNzQXNzZXJ0aW9uLmgKaW5kZXggZGM5YWZkODA5NDM5Yzc1YTAzOWVjZWJlODY1OGM4ZWEz
NGRjYzNmMi4uNGM5MTk0NzZiNzNiMzk1NGY1ZDUyNzdjNjFmYmE5ZTg0NTQ4OTZmNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaApAQCAtNTMsNyArNTMsMTEg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhc3NlcnRpb25XaWxsRXhwaXJlSW1taW5lbnRs
eSgpID0gMDsKIH07CiAKLWNsYXNzIFByb2Nlc3NBc3NlcnRpb24geworY2xhc3MgUHJvY2Vzc0Fz
c2VydGlvbgorI2lmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisg
ICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UHJvY2Vzc0Fzc2VydGlvbj4KKyNlbmRpZgorewog
cHVibGljOgogICAgIFByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBBc3NlcnRpb25TdGF0ZSwg
RnVuY3Rpb248dm9pZCgpPiYmIGludmFsaWRhdGlvbkNhbGxiYWNrID0geyB9KTsKICAgICB2aXJ0
dWFsIH5Qcm9jZXNzQXNzZXJ0aW9uKCk7CkBAIC03MiwxMiArNzYsMTAgQEAgcHJvdGVjdGVkOgog
CiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1Ip
Ci0gICAgV2Vha1B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIHZvaWQgbWFya0FzSW52
YWxpZGF0ZWQoKTsKIAogICAgIFJldGFpblB0cjxCS1NQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2Vy
dGlvbjsKICAgICBWYWxpZGl0eSBtX3ZhbGlkaXR5IHsgVmFsaWRpdHk6OlVuc2V0IH07Ci0gICAg
V2Vha1B0ckZhY3Rvcnk8UHJvY2Vzc0Fzc2VydGlvbj4gbV93ZWFrRmFjdG9yeTsKICAgICBGdW5j
dGlvbjx2b2lkKCk+IG1faW52YWxpZGF0aW9uQ2FsbGJhY2s7CiAjZW5kaWYKICAgICBBc3NlcnRp
b25TdGF0ZSBtX2Fzc2VydGlvblN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA4YTNiNzI3OTkxMDY1OTFmMzgxOGExNWUwZmEyNDRmNGIzMmI4NTViLi5lMDQ5
NGMwMTc0NDRjZjc3Mzk1ZjVlMGQ1M2VlYWVkMDRiZGQ5ZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzIyLDcgKzMyMiw4IEBAIGNsYXNzIFdlYlBhZ2VQcm94
eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2U+CiAjZW5k
aWYKICAgICAsIHB1YmxpYyBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50CiAgICAgLCBwdWJsaWMg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICAsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewor
ICAgICwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlcgorICAgICwgcHVibGljIENhbk1ha2VXZWFr
UHRyPFdlYlBhZ2VQcm94eT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViUGFnZVByb3h5
PiBjcmVhdGUoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHBhZ2VJRCwg
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZpcnR1YWwgfldlYlBhZ2VQcm94
eSgpOwpAQCAtMTI2MSw4ICsxMjYyLDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShHQU1FUEFEKQog
ICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mLCBib29s
IHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpOwogI2VuZGlmCi0gICAgICAgIAotICAgIFdlYWtQ
dHI8V2ViUGFnZVByb3h5PiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCpjb25zdF9jYXN0PFdlYlBhZ2VQcm94eSo+KHRoaXMpKTsg
fQogCiAgICAgdm9pZCBpc0xvYWRpbmdDaGFuZ2VkKCkgeyBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdl
KFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzTG9hZGluZyk7IH0KIApAQCAtMjE2MCw4ICsyMTU5
LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wg
eyBmYWxzZSB9OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJG
YWN0b3J5OwotCiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxXZWJVUkxTY2hlbWVIYW5kbGVyPj4g
bV91cmxTY2hlbWVIYW5kbGVyc0J5U2NoZW1lOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZjxX
ZWJVUkxTY2hlbWVIYW5kbGVyPj4gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllcjsKICAg
ICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggM2FiZjhmZjUxZjQ0MmI4NTA4YjM3NjkyNWY1YWFkM2E4
YjA2ODVhYi4uOTc4YzNkOTQ1YzVjMDgzY2JjZmNmNjdjODQyYWIyNjM5ZDAwNzFhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaApAQCAtNzMsNyArNzMsNyBAQCBzdHJ1Y3QgUGx1Z2luTW9kdWxlSW5mbzsKIAogZW51
bSBjbGFzcyBTaG91bGRDbGVhckZpcnN0IHsgTm8sIFllcyB9OwogCi1jbGFzcyBXZWJzaXRlRGF0
YVN0b3JlIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBXZWJQ
cm9jZXNzTGlmZXRpbWVPYnNlcnZlciwgcHVibGljIElkZW50aWZpZWQ8V2Vic2l0ZURhdGFTdG9y
ZT4gIHsKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJzaXRl
RGF0YVN0b3JlPiwgcHVibGljIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLCBwdWJsaWMgSWRl
bnRpZmllZDxXZWJzaXRlRGF0YVN0b3JlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYnNpdGVE
YXRhU3RvcmU+ICB7CiBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRpYyB1aW50NjRfdCBkZWZh
dWx0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEgPSA1MCAqIDEwMjQgKiAxMDI0OwogCkBAIC0x
ODMsOCArMTgzLDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkU2VjS2V5UHJveHlTdG9yZShSZWY8
U2VjS2V5UHJveHlTdG9yZT4mJik7CiAjZW5kaWYKIAotICAgIGF1dG8mIHdlYWtQdHJGYWN0b3J5
KCkgY29uc3QgeyByZXR1cm4gbV93ZWFrRmFjdG9yeTsgfQotCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFdlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQpOwogICAgIGV4cGxpY2l0IFdlYnNp
dGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9uSUQpOwpAQCAtMjE1LDcgKzIx
Myw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG1heWJlUmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFw
KCk7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxXZWJzaXRlRGF0YVN0b3JlPiBtX3dlYWtGYWN0b3J5
OwogICAgIGNvbnN0IFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogCiAgICAgY29uc3QgQ29u
ZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcAppbmRleCA2YjMzOWUwMDkxNDA2OWM5NzkwYTk4
Y2ZjZjUzZDMxYmU2N2E5NmY5Li44YThlNjk3NmQ5NjA4MDk4NGU1M2U1MjQxM2Q1YTNlNTZiOWYz
ZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBv
c2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9z
aXRvci5jcHAKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFdheWxhbmRDb21wb3NpdG9yOjpTdXJm
YWNlOjphdHRhY2hCdWZmZXIoc3RydWN0IHdsX3Jlc291cmNlKiBidWZmZXIpCiAKICAgICBpZiAo
YnVmZmVyKSB7CiAgICAgICAgIGF1dG8qIGNvbXBvc2l0b3JCdWZmZXIgPSBXYXlsYW5kQ29tcG9z
aXRvcjo6QnVmZmVyOjpnZXRPckNyZWF0ZShidWZmZXIpOwotICAgICAgICBtX3BlbmRpbmdCdWZm
ZXIgPSBjb21wb3NpdG9yQnVmZmVyLT5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIG1fcGVuZGlu
Z0J1ZmZlciA9IG1ha2VXZWFrUHRyKCpjb21wb3NpdG9yQnVmZmVyKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmgKaW5kZXgg
YWE5MzMzNDNlYzgxNzIyODAwMGEwNjVhY2YzMzM2ZjE2MjZjNTNjYy4uNmU1MTMxMTkzZTUzNWQw
ODFmMzgzOTJkN2YyOTRiMTVmNjIwYzYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmgKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgV2F5bGFu
ZENvbXBvc2l0b3IgewogcHVibGljOgogICAgIHN0YXRpYyBXYXlsYW5kQ29tcG9zaXRvciYgc2lu
Z2xldG9uKCk7CiAKLSAgICBjbGFzcyBCdWZmZXIgeworICAgIGNsYXNzIEJ1ZmZlciA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxCdWZmZXI+IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
QnVmZmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICBz
dGF0aWMgQnVmZmVyKiBnZXRPckNyZWF0ZShzdHJ1Y3Qgd2xfcmVzb3VyY2UqKTsKQEAgLTY3LDgg
KzY3LDYgQEAgcHVibGljOgogICAgICAgICBFR0xJbWFnZUtIUiBjcmVhdGVJbWFnZSgpIGNvbnN0
OwogICAgICAgICBXZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdDsKIAotICAgICAgICBXZWFr
UHRyPEJ1ZmZlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAgIEJ1ZmZlcihzdHJ1
Y3Qgd2xfcmVzb3VyY2UqKTsKICAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveUxpc3RlbmVyQ2Fs
bGJhY2soc3RydWN0IHdsX2xpc3RlbmVyKiwgdm9pZCopOwpAQCAtNzYsNyArNzQsNiBAQCBwdWJs
aWM6CiAgICAgICAgIHN0cnVjdCB3bF9yZXNvdXJjZSogbV9yZXNvdXJjZSB7IG51bGxwdHIgfTsK
ICAgICAgICAgc3RydWN0IHdsX2xpc3RlbmVyIG1fZGVzdHJveUxpc3RlbmVyOwogICAgICAgICB1
aW50MzJfdCBtX2J1c3lDb3VudCB7IDAgfTsKLSAgICAgICAgV2Vha1B0ckZhY3Rvcnk8QnVmZmVy
PiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIH07CiAKICAgICBjbGFzcyBTdXJmYWNlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KaW5k
ZXggMDY0OWQxMTczMTIzMzFiZTA5OGY3ZTQ0M2Q3ZGE2ZjFiZDg0MWE2Mi4uYmZjNmU3NWZiMjZm
MTU1NjViOTM4NDZkMWI1ZjhjZmZmYzAxNjMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KQEAgLTE2Myw3ICsxNjMsNyBAQCBQ
cm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgQXNzZXJ0aW9uU3Rh
dGUgYXNzZXJ0aW9uU3RhdGUsIEZ1bgogICAgIDogbV9pbnZhbGlkYXRpb25DYWxsYmFjayhXVEZN
b3ZlKGludmFsaWRhdGlvbkNhbGxiYWNrKSkKICAgICAsIG1fYXNzZXJ0aW9uU3RhdGUoYXNzZXJ0
aW9uU3RhdGUpCiB7Ci0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBh
dXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIEJLU1Byb2Nlc3NBc3NlcnRp
b25BY3F1aXNpdGlvbkhhbmRsZXIgaGFuZGxlciA9IF4oQk9PTCBhY3F1aXJlZCkgewogICAgICAg
ICBpZiAoIWFjcXVpcmVkKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNz
U3VzcGVuc2lvbiwgIiAlcCAtIFByb2Nlc3NBc3NlcnRpb24oKSBVbmFibGUgdG8gYWNxdWlyZSBh
c3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQSUQgJWQiLCB0aGlzLCBwaWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKaW5kZXggYmM2OGMzMDJhZjU0OTRi
N2JjN2RhODJlZTQ5YWQ3YTVmYzFhODdkMi4uYmFiMDc1YmYzYzVjNDIwMDEyNWEwNTJmMDRhYzIy
ODJjMmY5OTVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsu
Y3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgRGlzcGxheUxpbms6OnJlc3VtZSgpCiBDVlJldHVy
biBEaXNwbGF5TGluazo6ZGlzcGxheUxpbmtDYWxsYmFjayhDVkRpc3BsYXlMaW5rUmVmIGRpc3Bs
YXlMaW5rUmVmLCBjb25zdCBDVlRpbWVTdGFtcCosIGNvbnN0IENWVGltZVN0YW1wKiwgQ1ZPcHRp
b25GbGFncywgQ1ZPcHRpb25GbGFncyosIHZvaWQqIGRhdGEpCiB7CiAgICAgV2ViUGFnZVByb3h5
KiB3ZWJQYWdlUHJveHkgPSByZWludGVycHJldF9jYXN0PFdlYlBhZ2VQcm94eSo+KGRhdGEpOwot
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1B0ciA9IHdlYlBhZ2VQcm94eS0+Y3Jl
YXRlV2Vha1B0cigpXSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrUHRyID0g
bWFrZVdlYWtQdHIoKndlYlBhZ2VQcm94eSldIHsKICAgICAgICAgaWYgKGF1dG8qIHByb3h5ID0g
d2Vha1B0ci5nZXQoKSkKICAgICAgICAgICAgIHByb3h5LT5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6RHJhd2luZ0FyZWE6OkRpc3BsYXlXYXNSZWZyZXNoZWQoKSwgcHJveHktPnBhZ2VJRCgpKTsK
ICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmluZGV4IDljYTgzYjIyOGI3MWNhZWU5NGRj
ZWQyM2MyODQyM2Y2NjYxYjE0YWUuLjIyNjNiYzk1ODUwNTBiMDg5YWIzZGEzZTAyZTJlYjcyOWZm
YjQ0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpSZW1v
dGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxh
eUlELCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEpCiAgICAgOiBEaXNw
bGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQotICAgICwgbV9kcmF3aW5nQXJlYShkcmF3aW5n
QXJlYS5jcmVhdGVXZWFrUHRyKCkpCisgICAgLCBtX2RyYXdpbmdBcmVhKG1ha2VXZWFrUHRyKGRy
YXdpbmdBcmVhKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCA5YWY1Y2IzYTgxYmVmYTVlNWNjMjVhN2VjODA4NGRl
MzJjZjVkZmJjLi5lOWVlMDNlMTQ5ZmQ5MzcxNGU0OTVjNWJkYTA5NzY4YjYzZmNjODI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApA
QCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQ7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I7CiAK
LWNsYXNzIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIDogcHVibGljIERyYXdpbmdBcmVhLCBw
dWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCB7CitjbGFzcyBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYSA6IHB1YmxpYyBEcmF3aW5nQXJlYSwgcHVibGljIENhbk1ha2VXZWFrUHRy
PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPiwgcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDbGllbnQgewogICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVz
aE1vbml0b3I7CiBwdWJsaWM6CiAgICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoV2ViUGFn
ZSYsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKQEAgLTU0LDggKzU0LDYgQEAg
cHVibGljOgogICAgIHVpbnQ2NF90IG5leHRUcmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4g
bV9jdXJyZW50VHJhbnNhY3Rpb25JRCArIDE7IH0KICAgICB1aW50NjRfdCBsYXN0Q29tbWl0dGVk
VHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFRyYW5zYWN0aW9uSUQ7IH0K
IAotICAgIFdlYWtQdHI8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9Ci0KIHBy
aXZhdGU6CiAgICAgLy8gRHJhd2luZ0FyZWEKICAgICB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92
ZXJyaWRlOwpAQCAtMTcwLDggKzE2OCw2IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKiBtX2NvbnRlbnRMYXllciB7IG51bGxwdHIgfTsKICAgICBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKiBtX3ZpZXdPdmVybGF5Um9vdExheWVyIHsgbnVsbHB0ciB9OwotICAgIAotICAg
IFdlYWtQdHJGYWN0b3J5PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPiBtX3dlYWtQdHJGYWN0
b3J5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGZh
MmVkMzI4MjU3ODQ3OGIzY2Y1ZDA4MWY3MWM4NjVlZjgxZDcwMzUuLjRmMTBhZDM3NmQxZWRmYWZj
NjViMGYyYmJkNDAyYjQ0YTQ5NWIxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC00Myw3ICs0Myw3
IEBACiBAY2xhc3MgV2ViVmlldzsKIEBjbGFzcyBXZWJFZGl0b3JVbmRvVGFyZ2V0OwogCi1jbGFz
cyBXZWJFZGl0b3JDbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50LCBw
dWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgeworY2xhc3MgV2ViRWRpdG9yQ2xpZW50
IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRl
eHRDaGVja2VyQ2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViRWRpdG9yQ2xpZW50PiB7
CiBwdWJsaWM6CiAgICAgV2ViRWRpdG9yQ2xpZW50KFdlYlZpZXcgKik7CiAgICAgdmlydHVhbCB+
V2ViRWRpdG9yQ2xpZW50KCk7CkBAIC0xOTMsOCArMTkzLDYgQEAgcHJpdmF0ZToKIAogICAgIGVu
dW0gY2xhc3MgRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZSB7IE5vLCBZZXMsIFVuc2V0IH07
CiAgICAgRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZSBtX2xhc3RFZGl0b3JTdGF0ZVdhc0Nv
bnRlbnRFZGl0YWJsZSB7IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGU6OlVuc2V0IH07Ci0K
LSAgICBXZWFrUHRyRmFjdG9yeTxXZWJFZGl0b3JDbGllbnQ+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9
OwogCiBpbmxpbmUgTlNTZWxlY3Rpb25BZmZpbml0eSBraXQoV2ViQ29yZTo6RUFmZmluaXR5IGFm
ZmluaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IGZjZTVkN2FhYjRhNWIwNmFmOTUyNjNhYmNh
MjdjMGZlMmUxNTQ4NjUuLjYxMGY4ZTA4M2QxZTA3MDNmNzlhOTE1ZTZkOGUyYTgyZDViYmNhOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTEyMTMsNyArMTIxMyw3IEBAIHZvaWQgV2ViRWRpdG9y
Q2xpZW50OjpyZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlCiAgICAgbV9wYXJhZ3JhcGhDb250ZXh0Rm9yQ2FuZGlkYXRlUmVxdWVzdCA9IHBs
YWluVGV4dChmcmFtZS0+ZWRpdG9yKCkuY29udGV4dFJhbmdlRm9yQ2FuZGlkYXRlUmVxdWVzdCgp
LmdldCgpKTsKIAogICAgIE5TVGV4dENoZWNraW5nVHlwZXMgY2hlY2tpbmdUeXBlcyA9IE5TVGV4
dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgTlNUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQgfCBO
U1RleHRDaGVja2luZ1R5cGVDb3JyZWN0aW9uOwotICAgIGF1dG8gd2Vha0VkaXRvciA9IG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CisgICAgYXV0byB3ZWFrRWRpdG9yID0g
bWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIG1fbGFzdENhbmRpZGF0ZVJlcXVlc3RTZXF1ZW5jZU51
bWJlciA9IFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2FuZGlk
YXRlc0ZvclNlbGVjdGVkUmFuZ2U6bV9yYW5nZUZvckNhbmRpZGF0ZXMgaW5TdHJpbmc6bV9wYXJh
Z3JhcGhDb250ZXh0Rm9yQ2FuZGlkYXRlUmVxdWVzdC5nZXQoKSB0eXBlczpjaGVja2luZ1R5cGVz
IG9wdGlvbnM6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxDaGVja2VyRG9jdW1lbnRU
YWcoKSBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha0VkaXRvcl0oTlNJbnRlZ2VyIHNlcXVlbmNlTnVt
YmVyLCBOU0FycmF5PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+ICpjYW5kaWRhdGVzKSB7CiAgICAg
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CiAgICAgICAg
ICAgICBpZiAoIXdlYWtFZGl0b3IpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>