<?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>121861</bug_id>
          
          <creation_ts>2013-09-24 13:25:53 -0700</creation_ts>
          <short_desc>Move MessageEncoder and ArgumentEncoder to std::unique_ptr</short_desc>
          <delta_ts>2013-09-24 15:18:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>932693</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-24 13:25:53 -0700</bug_when>
    <thetext>Move MessageEncoder and ArgumentEncoder to std::unique_ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932698</commentid>
    <comment_count>1</comment_count>
      <attachid>212497</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-24 13:28:45 -0700</bug_when>
    <thetext>Created attachment 212497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932702</commentid>
    <comment_count>2</comment_count>
      <attachid>212497</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-24 13:33:12 -0700</bug_when>
    <thetext>Comment on attachment 212497
Patch

Great. rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932705</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-24 13:40:28 -0700</bug_when>
    <thetext>Committed r156354: &lt;http://trac.webkit.org/changeset/156354&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932743</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-09-24 15:18:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Committed r156354: &lt;http://trac.webkit.org/changeset/156354&gt;

Unix buildfix landed in http://trac.webkit.org/changeset/156363.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212497</attachid>
            <date>2013-09-24 13:28:45 -0700</date>
            <delta_ts>2013-09-24 13:33:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121861-20130924132844.patch</filename>
            <type>text/plain</type>
            <size>72343</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTIzMTY1NGE2YjQwMTc2
NDNjYTAwNDQ4ZTA2YWNmZDMzMGZmOTI5YS4uM2M3MWNjYzJjMGU4ODhkYjU0M2FmMWJlYjgyYzg2
NGU4NWY2MTEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk4IEBACiAyMDEzLTA5LTI0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW92ZSBNZXNzYWdl
RW5jb2RlciBhbmQgQXJndW1lbnRFbmNvZGVyIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODYxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMv
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaFdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVj
dGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5l
Y3Rpb246OnNlbmRNZXNzYWdlKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnNlbmRT
eW5jUmVwbHkpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdl
KToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNv
bmRhcnlUaHJlYWQpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6c2VuZE91dGdvaW5n
TWVzc2FnZXMpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hTeW5jTWVz
c2FnZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAg
IChDb3JlSVBDOjpDb25uZWN0aW9uOjpzZW5kKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rp
b246OnNlbmRTeW5jKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2Uu
aDoKKyAgICAgICAgKENvcmVJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkKToKKyAgICAgICAgKiBQ
bGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oOgorICAgICAgICAoQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIFBsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ok1lc3Nh
Z2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VTZW5kZXIuY3BwOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZVNlbmRlcjo6c2Vu
ZE1lc3NhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVNlbmRlci5oOgor
ICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZVNlbmRlcjo6c2VuZCk6CisgICAgICAgICogUGxhdGZv
cm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25u
ZWN0aW9uOjpvcGVuKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnNlbmRPdXRnb2lu
Z01lc3NhZ2UpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChtZXNzYWdlX3Rv
X3N0cnVjdF9kZWNsYXJhdGlvbik6CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weToKKyAgICAg
ICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaGls
ZFByb2Nlc3NQcm94eTo6c2VuZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nl
c3NQcm94eTo6ZGlzcGF0Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJv
Y2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFNoYXJlZC9DaGlsZFBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NQcm94eTo6c2VuZCk6
CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaDoKKyAg
ICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5QUmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAg
ICAqIFNoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmg6CisgICAgICAgICogU2hhcmVk
L1dlYkNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb25uZWN0aW9uOjpwb3N0
TWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaXNwYXRj
aFN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkljb25EYXRhYmFzZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnBvc3RNZXNz
YWdlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnBvc3RTeW5jaHJvbm91c01l
c3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6
CisKKzIwMTMtMDktMjQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwog
ICAgICAgICBSZW1vdmUgZW5jb2RlciBjcmVhdGUgZnVuY3Rpb25zCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE4NTMKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCmluZGV4IDc0ZjkwMTMyNGNmMDQ2ZDQ5YWQ4OWI5OTUwZmJlMTA0NDE3MmU3
NmYuLjg5ZDRlYWZiMzc0YjQ5NGU0ZGIzZWRhNTJlMzYxY2FkMWQ0ZmFiZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmUKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseSkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVf
cHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHkpCiB7CiAgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIGRpZFJlY2VpdmVTeW5j
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIs
IHJlcGx5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGYwNjEzNzBmYzZkYmRjNzY0
ZjU0ZmYzNmI4ZTlhYzUzNjg3YmRjZWEuLmZiZmQ4MjMxNTE2ZTJiZWI2ODQ1NGY1YTdjODM4OGI2
MjZjNjRhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNjEsMTMgKzYxLDEzIEBA
IHByaXZhdGU6CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgQ29yZUlQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VOYW1lKTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBk
aWRSZWNlaXZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogICAgIAog
ICAgIHZvaWQgc2NoZWR1bGVSZXNvdXJjZUxvYWQoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMmKTsKICAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0xvYWQoY29uc3QgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmLCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5
Pik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKaW5kZXggMDMzZGZiY2RlYTVjOTk3ZTRlODdkMWIwNzAzZGU3YWNjMTVjMWY4Yy4uNDQ0OWUx
NzM1YzkwZDQxYjcxMjdiMGI5Njc5YmVjMzk5Njg1OTJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMTE0LDcgKzExNCw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6CiAgICAgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+JiByZXBseUVuY29kZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4m
IHJlcGx5RW5jb2RlcikKIHsKICAgICBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAwMGY0MDY4Y2Y4
MDEyODNhMmI4NmYwNWRmYmI1YTU0Nzk1YjMxYWRhLi4wMTI4MTc0YTM2ODExYzFkY2QyNzJiZjAz
Y2VjMTA0MDVlZGQxMTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmgKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIENvcmVJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0
cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Db25uZWN0aW9uLmNwcAppbmRleCBkMjkzMGI4ODRkNDk5Y2M4NDllOTUwODczYTRhZGJkMDgx
NDNjMTY1Li4wMDcxNzBhMTZlMDQ2ODljNWRjYjhhNDFkN2IxM2EzNGM1YWZjOGFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTMwMCw3
ICszMDAsNyBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyTWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgYXV0byByZXBseUVuY29kZXIgPSBjcmVhdGVPd25lZDxNZXNzYWdlRW5jb2Rlcj4o
IklQQyIsICJTeW5jTWVzc2FnZVJlcGx5Iiwgc3luY1JlcXVlc3RJRCk7CisgICAgYXV0byByZXBs
eUVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5bmNN
ZXNzYWdlUmVwbHkiLCBzeW5jUmVxdWVzdElEKTsKIAogICAgIC8vIEhhbmQgb2ZmIGJvdGggdGhl
IGRlY29kZXIgYW5kIGVuY29kZXIgdG8gdGhlIHdvcmsgcXVldWUgbWVzc2FnZSByZWNlaXZlci4K
ICAgICB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZSh0aGlz
LCAqZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKQEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIENvbm5l
Y3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZShXb3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZQogICAgIEFTU0VSVCghZGVjb2Rlci0+aXNJbnZhbGlkKCkpOwogCiAgICAg
aWYgKHJlcGx5RW5jb2RlcikKLSAgICAgICAgc2VuZFN5bmNSZXBseShyZXBseUVuY29kZXIucmVs
ZWFzZSgpKTsKKyAgICAgICAgc2VuZFN5bmNSZXBseShzdGQ6Om1vdmUocmVwbHlFbmNvZGVyKSk7
CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6c2V0RGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVD
YWxsYmFjayhEaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrIGNhbGxiYWNrKQpA
QCAtMzQwLDkgKzM0MCw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6bWFya0N1cnJlbnRseURpc3BhdGNo
ZWRNZXNzYWdlQXNJbnZhbGlkKCkKICAgICBtX2RpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSA9IHRy
dWU7CiB9CiAKLU93blB0cjxNZXNzYWdlRW5jb2Rlcj4gQ29ubmVjdGlvbjo6Y3JlYXRlU3luY01l
c3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2NF90JiBz
eW5jUmVxdWVzdElEKQorc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBDb25uZWN0aW9u
OjpjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25J
RCwgdWludDY0X3QmIHN5bmNSZXF1ZXN0SUQpCiB7Ci0gICAgYXV0byBlbmNvZGVyID0gY3JlYXRl
T3duZWQ8TWVzc2FnZUVuY29kZXI+KG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1lLCBk
ZXN0aW5hdGlvbklEKTsKKyAgICBhdXRvIGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3Nh
Z2VFbmNvZGVyPihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlTmFtZSwgZGVzdGluYXRpb25J
RCk7CiAgICAgZW5jb2Rlci0+c2V0SXNTeW5jTWVzc2FnZSh0cnVlKTsKIAogICAgIC8vIEVuY29k
ZSB0aGUgc3luYyByZXF1ZXN0IElELgpAQCAtMzUzLDcgKzM1Myw3IEBAIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4gQ29ubmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVy
ZW5jZSBtZXNzCiAgICAgcmV0dXJuIGVuY29kZXI7CiB9CiAKLWJvb2wgQ29ubmVjdGlvbjo6c2Vu
ZE1lc3NhZ2UoT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCB1bnNpZ25lZCBtZXNzYWdl
U2VuZEZsYWdzKQorYm9vbCBDb25uZWN0aW9uOjpzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZUVuY29kZXI+IGVuY29kZXIsIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MpCiB7CiAg
ICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM3Myw3ICszNzMs
NyBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKE93blB0cjxNZXNzYWdlRW5jb2Rlcj4g
ZW5jb2RlciwgdW5zaWduZWQgbWVzc2FnZVNlbgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IENvbm5lY3Rpb246OnNlbmRTeW5jUmVwbHkoT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVy
KQorYm9vbCBDb25uZWN0aW9uOjpzZW5kU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdl
RW5jb2Rlcj4gZW5jb2RlcikKIHsKICAgICByZXR1cm4gc2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKGVu
Y29kZXIpKTsKIH0KQEAgLTQzNCw3ICs0MzQsNyBAQCBPd25QdHI8TWVzc2FnZURlY29kZXI+IENv
bm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZQog
ICAgIHJldHVybiBudWxscHRyOwogfQogCi1Pd25QdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rp
b246OnNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBPd25QdHI8TWVzc2Fn
ZUVuY29kZXI+IGVuY29kZXIsIGRvdWJsZSB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdz
KQorT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2UodWlu
dDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNv
ZGVyLCBkb3VibGUgdGltZW91dCwgdW5zaWduZWQgc3luY1NlbmRGbGFncykKIHsKICAgICBpZiAo
UnVuTG9vcDo6Y3VycmVudCgpICE9IG1fY2xpZW50UnVuTG9vcCkgewogICAgICAgICAvLyBObyBm
bGFncyBhcmUgc3VwcG9ydGVkIGZvciBzeW5jaHJvbm91cyBtZXNzYWdlcyBzZW50IGZyb20gc2Vj
b25kYXJ5IHRocmVhZHMuCkBAIC00ODMsNyArNDgzLDcgQEAgT3duUHRyPE1lc3NhZ2VEZWNvZGVy
PiBDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgT3du
UHQKICAgICByZXR1cm4gcmVwbHkucmVsZWFzZSgpOwogfQogCi1Pd25QdHI8TWVzc2FnZURlY29k
ZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQodWludDY0
X3Qgc3luY1JlcXVlc3RJRCwgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCBkb3VibGUg
dGltZW91dCkKK093blB0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2VuZFN5bmNNZXNz
YWdlRnJvbVNlY29uZGFyeVRocmVhZCh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIsIGRvdWJsZSB0aW1lb3V0KQogewogICAgIEFT
U0VSVChSdW5Mb29wOjpjdXJyZW50KCkgIT0gbV9jbGllbnRSdW5Mb29wKTsKIApAQCAtNzE5LDcg
KzcxOSw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZXMoKQogICAgICAg
ICByZXR1cm47CiAKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBPd25QdHI8TWVzc2FnZUVu
Y29kZXI+IG1lc3NhZ2U7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4g
bWVzc2FnZTsKKwogICAgICAgICB7CiAgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9v
dXRnb2luZ01lc3NhZ2VzTG9jayk7CiAgICAgICAgICAgICBpZiAobV9vdXRnb2luZ01lc3NhZ2Vz
LmlzRW1wdHkoKSkKQEAgLTcyNyw3ICs3MjgsNyBAQCB2b2lkIENvbm5lY3Rpb246OnNlbmRPdXRn
b2luZ01lc3NhZ2VzKCkKICAgICAgICAgICAgIG1lc3NhZ2UgPSBtX291dGdvaW5nTWVzc2FnZXMu
dGFrZUZpcnN0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIXNlbmRPdXRnb2luZ01lc3Nh
Z2UobWVzc2FnZS5yZWxlYXNlKCkpKQorICAgICAgICBpZiAoIXNlbmRPdXRnb2luZ01lc3NhZ2Uo
c3RkOjptb3ZlKG1lc3NhZ2UpKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTc0
Myw3ICs3NDQsNyBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2Fn
ZURlY29kZXImIGRlY29kZXIpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJl
cGx5RW5jb2RlciA9IGNyZWF0ZU93bmVkPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5bmNNZXNz
YWdlUmVwbHkiLCBzeW5jUmVxdWVzdElEKTsKKyAgICBhdXRvIHJlcGx5RW5jb2RlciA9IHN0ZDo6
bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+KCJJUEMiLCAiU3luY01lc3NhZ2VSZXBseSIsIHN5
bmNSZXF1ZXN0SUQpOwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUgZGVjb2RlciBhbmQgZW5j
b2RlciB0byB0aGUgY2xpZW50LgogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlU3luY01lc3NhZ2Uo
dGhpcywgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKQEAgLTc1Miw3ICs3NTMsNyBAQCB2b2lkIENv
bm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZURlY29kZXImIGRlY29kZXIpCiAg
ICAgQVNTRVJUKCFkZWNvZGVyLmlzSW52YWxpZCgpKTsKIAogICAgIGlmIChyZXBseUVuY29kZXIp
Ci0gICAgICAgIHNlbmRTeW5jUmVwbHkoYWRvcHRQdHIoc3RhdGljX2Nhc3Q8TWVzc2FnZUVuY29k
ZXIqPihyZXBseUVuY29kZXIubGVha1B0cigpKSkpOworICAgICAgICBzZW5kU3luY1JlcGx5KHN0
ZDo6bW92ZShyZXBseUVuY29kZXIpKTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaERp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShjb25zdCBDU3RyaW5nJiBtZXNzYWdlUmVjZWl2ZXJOYW1l
U3RyaW5nLCBjb25zdCBDU3RyaW5nJiBtZXNzYWdlTmFtZVN0cmluZykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggYzNmYzY5ZDZmZjJhNmI5ZmYy
MGZmMjI5MjhlNjJjZWJmNDE4MTc1My4uMTUzODZmNGE0YTQyYmJkOGUxYTdjMWM1MmVhMzM5ZDg5
YjBmZjRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9u
LmgKQEAgLTE3MywxMSArMTczLDExIEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBib29sIHNlbmRTeW5jKGNvbnN0IFQmIG1lc3NhZ2UsIGNvbnN0IHR5cGVuYW1lIFQ6OlJlcGx5
JiByZXBseSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgZG91YmxlIHRpbWVvdXQgPSBOb1RpbWVv
dXQsIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3MgPSAwKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBib29sIHdhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5KHVpbnQ2NF90IGRlc3RpbmF0aW9u
SUQsIGRvdWJsZSB0aW1lb3V0KTsKIAotICAgIE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gY3JlYXRl
U3luY01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2
NF90JiBzeW5jUmVxdWVzdElEKTsKLSAgICBib29sIHNlbmRNZXNzYWdlKE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4sIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MgPSAwKTsKLSAgICBPd25QdHI8TWVz
c2FnZURlY29kZXI+IHNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBPd25Q
dHI8TWVzc2FnZUVuY29kZXI+LCBkb3VibGUgdGltZW91dCwgdW5zaWduZWQgc3luY1NlbmRGbGFn
cyA9IDApOwotICAgIE93blB0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlRnJvbVNl
Y29uZGFyeVRocmVhZCh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBPd25QdHI8TWVzc2FnZUVuY29k
ZXI+LCBkb3VibGUgdGltZW91dCk7Ci0gICAgYm9vbCBzZW5kU3luY1JlcGx5KE93blB0cjxNZXNz
YWdlRW5jb2Rlcj4pOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gY3JlYXRl
U3luY01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2
NF90JiBzeW5jUmVxdWVzdElEKTsKKyAgICBib29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRW5jb2Rlcj4sIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MgPSAwKTsKKyAgICBP
d25QdHI8TWVzc2FnZURlY29kZXI+IHNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVz
dElELCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+LCBkb3VibGUgdGltZW91dCwgdW5z
aWduZWQgc3luY1NlbmRGbGFncyA9IDApOworICAgIE93blB0cjxNZXNzYWdlRGVjb2Rlcj4gc2Vu
ZFN5bmNNZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZCh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+LCBkb3VibGUgdGltZW91dCk7CisgICAgYm9v
bCBzZW5kU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4pOwogCiAgICAg
dm9pZCB3YWtlVXBSdW5Mb29wKCk7CiAKQEAgLTIwOCw3ICsyMDgsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgY2FuU2VuZE91dGdvaW5nTWVzc2FnZXMoKSBjb25zdDsKICAgICBib29sIHBsYXRmb3Jt
Q2FuU2VuZE91dGdvaW5nTWVzc2FnZXMoKSBjb25zdDsKICAgICB2b2lkIHNlbmRPdXRnb2luZ01l
c3NhZ2VzKCk7Ci0gICAgYm9vbCBzZW5kT3V0Z29pbmdNZXNzYWdlKE93blB0cjxNZXNzYWdlRW5j
b2Rlcj4pOworICAgIGJvb2wgc2VuZE91dGdvaW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZUVuY29kZXI+KTsKICAgICB2b2lkIGNvbm5lY3Rpb25EaWRDbG9zZSgpOwogICAgIAogICAg
IC8vIENhbGxlZCBvbiB0aGUgbGlzdGVuZXIgdGhyZWFkLgpAQCAtMjQ4LDcgKzI0OCw3IEBAIHBy
aXZhdGU6CiAKICAgICAvLyBPdXRnb2luZyBtZXNzYWdlcy4KICAgICBNdXRleCBtX291dGdvaW5n
TWVzc2FnZXNMb2NrOwotICAgIERlcXVlPE93blB0cjxNZXNzYWdlRW5jb2Rlcj4+IG1fb3V0Z29p
bmdNZXNzYWdlczsKKyAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+PiBt
X291dGdvaW5nTWVzc2FnZXM7CiAgICAgCiAgICAgVGhyZWFkQ29uZGl0aW9uIG1fd2FpdEZvck1l
c3NhZ2VDb25kaXRpb247CiAgICAgTXV0ZXggbV93YWl0Rm9yTWVzc2FnZU11dGV4OwpAQCAtMzI2
LDcgKzMyNiw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8dWludDhfdD4gbV9yZWFkQnVmZmVy
OwogICAgIE9WRVJMQVBQRUQgbV9yZWFkU3RhdGU7Ci0gICAgT3duUHRyPE1lc3NhZ2VFbmNvZGVy
PiBtX3BlbmRpbmdXcml0ZUVuY29kZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNv
ZGVyPiBtX3BlbmRpbmdXcml0ZUVuY29kZXI7CiAgICAgT1ZFUkxBUFBFRCBtX3dyaXRlU3RhdGU7
CiAgICAgSEFORExFIG1fY29ubmVjdGlvblBpcGU7CiAjZWxpZiBVU0UoVU5JWF9ET01BSU5fU09D
S0VUUykKQEAgLTM0OSwxMCArMzQ5LDEwIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgQ29u
bmVjdGlvbjo6c2VuZChjb25zdCBUJiBtZXNzYWdlLCB1aW50NjRfdCBkZXN0aW5hdGlvCiB7CiAg
ICAgQ09NUElMRV9BU1NFUlQoIVQ6OmlzU3luYywgQXN5bmNNZXNzYWdlRXhwZWN0ZWQpOwogCi0g
ICAgYXV0byBlbmNvZGVyID0gY3JlYXRlT3duZWQ8TWVzc2FnZUVuY29kZXI+KFQ6OnJlY2VpdmVy
TmFtZSgpLCBUOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOworICAgIGF1dG8gZW5jb2RlciA9IHN0
ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+KFQ6OnJlY2VpdmVyTmFtZSgpLCBUOjpuYW1l
KCksIGRlc3RpbmF0aW9uSUQpOwogICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlKTsKICAgICAK
LSAgICByZXR1cm4gc2VuZE1lc3NhZ2UoZW5jb2Rlci5yZWxlYXNlKCksIG1lc3NhZ2VTZW5kRmxh
Z3MpOworICAgIHJldHVybiBzZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5jb2RlciksIG1lc3NhZ2VT
ZW5kRmxhZ3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIENvbm5lY3Rpb246OnNl
bmRTeW5jKGNvbnN0IFQmIG1lc3NhZ2UsIGNvbnN0IHR5cGVuYW1lIFQ6OlJlcGx5JiByZXBseSwg
dWludDY0X3QgZGVzdGluYXRpb25JRCwgZG91YmxlIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNTZW5k
RmxhZ3MpCkBAIC0zNjAsMTMgKzM2MCwxMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIENv
bm5lY3Rpb246OnNlbmRTeW5jKGNvbnN0IFQmIG1lc3NhZ2UsIGNvbnN0IHR5cGVuYW1lCiAgICAg
Q09NUElMRV9BU1NFUlQoVDo6aXNTeW5jLCBTeW5jTWVzc2FnZUV4cGVjdGVkKTsKIAogICAgIHVp
bnQ2NF90IHN5bmNSZXF1ZXN0SUQgPSAwOwotICAgIE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gZW5j
b2RlciA9IGNyZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihUOjpyZWNlaXZlck5hbWUoKSwgVDo6bmFt
ZSgpLCBkZXN0aW5hdGlvbklELCBzeW5jUmVxdWVzdElEKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoVDo6cmVj
ZWl2ZXJOYW1lKCksIFQ6Om5hbWUoKSwgZGVzdGluYXRpb25JRCwgc3luY1JlcXVlc3RJRCk7CiAg
ICAgCiAgICAgLy8gRW5jb2RlIHRoZSByZXN0IG9mIHRoZSBpbnB1dCBhcmd1bWVudHMuCiAgICAg
ZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2UpOwogCiAgICAgLy8gTm93IHNlbmQgdGhlIG1lc3NhZ2Ug
YW5kIHdhaXQgZm9yIGEgcmVwbHkuCi0gICAgT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiByZXBseURl
Y29kZXIgPSBzZW5kU3luY01lc3NhZ2Uoc3luY1JlcXVlc3RJRCwgZW5jb2Rlci5yZWxlYXNlKCks
IHRpbWVvdXQsIHN5bmNTZW5kRmxhZ3MpOworICAgIE93blB0cjxNZXNzYWdlRGVjb2Rlcj4gcmVw
bHlEZWNvZGVyID0gc2VuZFN5bmNNZXNzYWdlKHN5bmNSZXF1ZXN0SUQsIHN0ZDo6bW92ZShlbmNv
ZGVyKSwgdGltZW91dCwgc3luY1NlbmRGbGFncyk7CiAgICAgaWYgKCFyZXBseURlY29kZXIpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCA3M2Q2N2JjZjk4ZWM5NjUyNmM4M2Q4MTcwYzUyZTBm
NzUxMTJkZjRkLi40ZTYzMzQyMTAwNzJiYWQ1OWI5NjNhZTcyOTk2NDVkNDljNzRjNTFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAt
NDMwLDEzICs0MzAsMTMgQEAgdm9pZCBoYW5kbGVNZXNzYWdlVmFyaWFkaWMoTWVzc2FnZURlY29k
ZXImIGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VE
ZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rp
b24pCit2b2lkIGhhbmRsZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+JiBy
ZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7CiAgICAgdHlwZW5hbWUgVDo6
RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50czsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjx0eXBlbmFtZSBUOjpE
ZWxheWVkUmVwbHk+IGRlbGF5ZWRSZXBseSA9IGFkb3B0UmVmKG5ldyB0eXBlbmFtZSBUOjpEZWxh
eWVkUmVwbHkoY29ubmVjdGlvbiwgcmVwbHlFbmNvZGVyLnJlbGVhc2UoKSkpOworICAgIFJlZlB0
cjx0eXBlbmFtZSBUOjpEZWxheWVkUmVwbHk+IGRlbGF5ZWRSZXBseSA9IGFkb3B0UmVmKG5ldyB0
eXBlbmFtZSBUOjpEZWxheWVkUmVwbHkoY29ubmVjdGlvbiwgc3RkOjptb3ZlKHJlcGx5RW5jb2Rl
cikpKTsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIGRlbGF5
ZWRSZXBseS5yZWxlYXNlKCksIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaAppbmRleCA3NmZmZWJl
OWQ3MWZmOTgwMWNiODlhZGU4N2VlODZlZWEwMWU1YWIxLi5iOGQyOWIwZTI4MzA3MzNiZWIxNjA3
ZDM1OTRhNmRmMGQyNWJhMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfk1lc3NhZ2VSZWNlaXZlcigpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlRGVjb2RlciYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlRGVjb2RlciYs
IE93blB0cjxNZXNzYWdlRW5jb2Rlcj4mKQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPE1l
c3NhZ2VFbmNvZGVyPiYpCiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VS
ZWNlaXZlck1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VS
ZWNlaXZlck1hcC5jcHAKaW5kZXggMzBjOWRmOTA0OTZmZmExMTE5MjQ4OWQxYTNhYWEzMzBhMWE0
MmRlOC4uN2Y0YzgyZWFkYjQ3YjRmZDFlMzRlZTM2M2JiODVkNThhMzc5MDc5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFw
LmNwcApAQCAtOTAsNyArOTAsNyBAQCBib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hN
ZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJgogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotYm9vbCBNZXNzYWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoU3luY01lc3Nh
Z2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0
cjxNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK2Jvb2wgTWVzc2FnZVJlY2VpdmVyTWFw
OjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29k
ZXIpCiB7CiAgICAgaWYgKE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9nbG9i
YWxNZXNzYWdlUmVjZWl2ZXJzLmdldChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSkpIHsK
ICAgICAgICAgQVNTRVJUKCFkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAppbmRleCBh
YTMyODliOTQ3YjZhNWE3MTRkMmM5OTg3ZDBkMjEwNzAxZTRkMTVkLi5kOTNjOWUxNGQ3MDU1ZjU1
NTlmZmIzMjM3MDIzODg1ZTNmZWMyNDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2Uo
Q29ubmVjdGlvbiosIE1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNz
YWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdlRW5jb2Rlcj4m
KTsKKyAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiYpOwogCiBwcml2YXRlOgogICAg
IC8vIE1lc3NhZ2UgcmVjZWl2ZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZSBhIGRlc3RpbmF0aW9uIElE
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlU2Vu
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVNlbmRlci5j
cHAKaW5kZXggNTZmODJjOTI3YzJkNzRhNDAzZjY0MWU4YmUwMjRiOWRkZjE5MzczMS4uOGQ5NzE3
MmRhZDg0NjM1YTNkNGMwY2I4OWE2ZGYwMTBmOTgzNzc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VTZW5kZXIuY3BwCkBAIC0zMiwxMSArMzIsMTEg
QEAgTWVzc2FnZVNlbmRlcjo6fk1lc3NhZ2VTZW5kZXIoKQogewogfQogCi1ib29sIE1lc3NhZ2VT
ZW5kZXI6OnNlbmRNZXNzYWdlKFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCiti
b29sIE1lc3NhZ2VTZW5kZXI6OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5j
b2Rlcj4gZW5jb2RlcikKIHsKICAgICBBU1NFUlQobWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSk7
CiAKLSAgICByZXR1cm4gbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKS0+c2VuZE1lc3NhZ2UoZW5j
b2Rlcik7CisgICAgcmV0dXJuIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCktPnNlbmRNZXNzYWdl
KHN0ZDo6bW92ZShlbmNvZGVyKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIENvcmVJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVNlbmRlci5oIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmgKaW5kZXggNDlm
YjZkZDgxODFjZjYxZDZiMDU2ZTc5MzFhMWJiZjA1MDFlN2Y0YS4uNDg3ODMwZGI3MDU3MTgzNjE0
ZjUzMzUyMjAzMDY2MGQyMTJkNzlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlU2VuZGVyLmgKQEAgLTQzLDEwICs0MywxMCBAQCBwdWJsaWM6CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBzZW5kKGNvbnN0IFUmIG1lc3NhZ2UsIHVpbnQ2NF90
IGRlc3RpbmF0aW9uSUQpCiAgICAgewogICAgICAgICBDT01QSUxFX0FTU0VSVCghVTo6aXNTeW5j
LCBBc3luY01lc3NhZ2VFeHBlY3RlZCk7Ci0gICAgICAgIGF1dG8gZW5jb2RlciA9IGNyZWF0ZU93
bmVkPE1lc3NhZ2VFbmNvZGVyPihVOjpyZWNlaXZlck5hbWUoKSwgVTo6bmFtZSgpLCBkZXN0aW5h
dGlvbklEKTsKKyAgICAgICAgYXV0byBlbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNZXNzYWdl
RW5jb2Rlcj4oVTo6cmVjZWl2ZXJOYW1lKCksIFU6Om5hbWUoKSwgZGVzdGluYXRpb25JRCk7CiAg
ICAgICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlKTsKICAgICAgICAgCi0gICAgICAgIHJldHVy
biBzZW5kTWVzc2FnZShlbmNvZGVyLnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVybiBzZW5kTWVz
c2FnZShzdGQ6Om1vdmUoZW5jb2RlcikpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IGJvb2wgc2VuZFN5bmMoY29uc3QgVSYgbWVzc2FnZSwgY29uc3QgdHlwZW5hbWUgVTo6UmVw
bHkmIHJlcGx5LCBkb3VibGUgdGltZW91dCA9IENvbm5lY3Rpb246Ok5vVGltZW91dCkKQEAgLTYy
LDcgKzYyLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKS0+c2VuZFN5bmMobWVzc2FnZSwgcmVwbHksIGRlc3RpbmF0aW9uSUQsIHRpbWVvdXQpOwog
ICAgIH0KIAotICAgIGJvb2wgc2VuZE1lc3NhZ2UoUGFzc093blB0cjxNZXNzYWdlRW5jb2Rlcj4p
OworICAgIGJvb2wgc2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPik7
CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
bWFjL0Nvbm5lY3Rpb25NYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9t
YWMvQ29ubmVjdGlvbk1hYy5jcHAKaW5kZXggY2U1N2M4NWUxOWU5NmNkNTk2NGE5NjgyZjNhN2Q1
MGQ5M2U5YjU4MC4uOWNkYzg4ZTBmNmY5ZGY5MDAzZmFhOTkyZjkzN2UyYTJmMGM3MzkyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1h
Yy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlv
bk1hYy5jcHAKQEAgLTE0MSwxMCArMTQxLDEwIEBAIGJvb2wgQ29ubmVjdGlvbjo6b3BlbigpCiAg
ICAgICAgIG1faXNDb25uZWN0ZWQgPSB0cnVlOwogICAgICAgICAKICAgICAgICAgLy8gU2VuZCB0
aGUgaW5pdGlhbGl6ZSBtZXNzYWdlLCB3aGljaCBjb250YWlucyBhIHNlbmQgcmlnaHQgZm9yIHRo
ZSBzZXJ2ZXIgdG8gdXNlLgotICAgICAgICBhdXRvIGVuY29kZXIgPSBjcmVhdGVPd25lZDxNZXNz
YWdlRW5jb2Rlcj4oIklQQyIsICJJbml0aWFsaXplQ29ubmVjdGlvbiIsIDApOworICAgICAgICBh
dXRvIGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIklu
aXRpYWxpemVDb25uZWN0aW9uIiwgMCk7CiAgICAgICAgIGVuY29kZXItPmVuY29kZShNYWNoUG9y
dChtX3JlY2VpdmVQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORCkpOwogCi0gICAgICAgIHNl
bmRNZXNzYWdlKGVuY29kZXIucmVsZWFzZSgpKTsKKyAgICAgICAgc2VuZE1lc3NhZ2Uoc3RkOjpt
b3ZlKGVuY29kZXIpKTsKIAogICAgICAgICBpbml0aWFsaXplRGVhZE5hbWVTb3VyY2UoKTsKICAg
ICB9CkBAIC0xNTksMTAgKzE1OSwxMCBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogICAgIGlm
IChtX2V4Y2VwdGlvblBvcnQpIHsKICAgICAgICAgbV9leGNlcHRpb25Qb3J0RGF0YUF2YWlsYWJs
ZVNvdXJjZSA9IGNyZWF0ZURhdGFBdmFpbGFibGVTb3VyY2UobV9leGNlcHRpb25Qb3J0LCBtX2Nv
bm5lY3Rpb25RdWV1ZS5nZXQoKSwgYmluZCgmQ29ubmVjdGlvbjo6ZXhjZXB0aW9uU291cmNlRXZl
bnRIYW5kbGVyLCB0aGlzKSk7CiAKLSAgICAgICAgYXV0byBlbmNvZGVyID0gY3JlYXRlT3duZWQ8
TWVzc2FnZUVuY29kZXI+KCJJUEMiLCAiU2V0RXhjZXB0aW9uUG9ydCIsIDApOworICAgICAgICBh
dXRvIGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlNl
dEV4Y2VwdGlvblBvcnQiLCAwKTsKICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKE1hY2hQb3J0KG1f
ZXhjZXB0aW9uUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpKTsKIAotICAgICAgICBzZW5k
TWVzc2FnZShlbmNvZGVyLnJlbGVhc2UoKSk7CisgICAgICAgIHNlbmRNZXNzYWdlKHN0ZDo6bW92
ZShlbmNvZGVyKSk7CiAgICAgfQogCiAgICAgcmVmKCk7CkBAIC0xOTgsNyArMTk4LDcgQEAgYm9v
bCBDb25uZWN0aW9uOjpwbGF0Zm9ybUNhblNlbmRPdXRnb2luZ01lc3NhZ2VzKCkgY29uc3QKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdl
KE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKK2Jvb2wgQ29ubmVjdGlvbjo6c2VuZE91
dGdvaW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCiB7
CiAgICAgVmVjdG9yPEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnRzID0gZW5jb2Rlci0+cmVsZWFzZUF0
dGFjaG1lbnRzKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAppbmRleCBjOGY0MzAxOThiZDZjYWZkZDk4MWQzMTdi
ODkyYjViZWRlOTBjNjY0Li42NzhlMmJkZTc5YWMwMWY2MzQwMTYyOTg5NmYwMTg5YzAxNDk2YmJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xs
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJv
bGxlclByb3h5LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVzdHJveSgp
OwogCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRyb2xsZXJQcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3Rk
Ojp1bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgYm9vbCB3YW50
c1doZWVsRXZlbnRzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNzdkZjAyYmY3ZjZjYTRmODBk
NDljMjcwMmU2NmQ5OTllYzcyMDRhYi4uOGU4YWM5M2Q3YTQ1OWYzNjdlNTg2YTkyNzVlNzRiMGFj
ZTU2YWE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIFdlYlByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDbwogICAgIHBsdWdpbkNvbnRyb2xsZXJQcm94eS0+ZGlkUmVjZWl2ZVBsdWdpbkNvbnRy
b2xsZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBXZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgLy8gRm9yY2Ug
YWxsIHRpbWVycyB0byBydW4gYXQgZnVsbCBzcGVlZCB3aGVuIHByb2Nlc3NpbmcgYSBzeW5jaHJv
bm91cyBtZXNzYWdlCiAgICAgQWN0aXZpdHlBc3NlcnRpb24gYWN0aXZpdHlBc3NlcnRpb24oUGx1
Z2luUHJvY2Vzczo6c2hhcmVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDYwY2ViNjM3MGNhNTI0MGUzYjQzMmQ2
NDZmYWZhN2FhOTAyNjU2NzEuLjQzOWUxMjVjNTNiMGJiNGQ0ZjhkMDFjNzRkNzZhYjhiNDMwN2Qy
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3ND
b25uZWN0aW9uLmgKQEAgLTYzLDEzICs2MywxMyBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29yZUlQ
Qzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlTmFtZSk7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxDb3Jl
SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2b2lkIGNyZWF0ZVBsdWdpbihjb25zdCBQbHVn
aW5DcmVhdGlvblBhcmFtZXRlcnMmLCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29u
bmVjdGlvbjo6Q3JlYXRlUGx1Z2luOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIGNyZWF0ZVBs
dWdpbkFzeW5jaHJvbm91c2x5KGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAg
IHZvaWQgZGVzdHJveVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBib29sIGFzeW5j
aHJvbm91c0NyZWF0aW9uSW5jb21wbGV0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtp
dDIvbWVzc2FnZXMucHkKaW5kZXggM2NmNmJiZjliYWEyMmZmZmMzYzYxNWNmNTAxYWY0MDNiZmU1
MDRmYy4uMTJlMzNkOWQ4Yzk2NjMzMTdjNDlkMWFiMDY3ZGZhYWU3NzIyMDUxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMTMwLDE0ICsxMzAsMTQg
QEAgZGVmIG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKG1lc3NhZ2UpOgogICAgICAgICBp
ZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpOgogICAgICAgICAgICAg
c2VuZF9wYXJhbWV0ZXJzID0gWyhmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSh4LnR5cGUpLCB4Lm5h
bWUpIGZvciB4IGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyc10KICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICBzdHJ1Y3QgRGVsYXllZFJlcGx5IDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPERlbGF5ZWRSZXBseT4ge1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIE93blB0
cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4pO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4s
IHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4pO1xuJykKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgfkRlbGF5ZWRSZXBseSgpO1xuJykKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAg
ICAgYm9vbCBzZW5kKCVzKTtcbicgJSAnLCAnLmpvaW4oWycgJy5qb2luKHgpIGZvciB4IGluIHNl
bmRfcGFyYW1ldGVyc10pKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHByaXZhdGU6XG4nKQogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnICAgICAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
O1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgT3duUHRyPENvcmVJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiBtX2VuY29kZXI7XG4nKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5j
b2RlcjtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgfTtcblxuJykKIAogICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgdHlwZWRlZiAlcyBSZXBseTtcbicgJSByZXBseV90eXBl
KG1lc3NhZ2UpKQpAQCAtNTI0LDcgKzUyNCw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRs
ZXIoZmlsZSk6CiAgICAgICAgICAgICBpZiBtZXNzYWdlLmNvbmRpdGlvbjoKICAgICAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcjaWYgJXNcblxuJyAlIG1lc3NhZ2UuY29uZGl0aW9uKQogICAg
ICAgICAgICAgCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCclczo6RGVsYXllZFJlcGx5OjpE
ZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpXG4nICUgbWVzc2FnZS5uYW1l
KQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnJXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJl
cGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlx
dWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKVxuJyAlIG1lc3NhZ2UubmFt
ZSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0
aW9uKVxuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAsIG1fZW5jb2RlcihzdGQ6
Om1vdmUoZW5jb2RlcikpXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKQEAg
LTUzOSw3ICs1MzksNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
JyAgICBBU1NFUlQobV9lbmNvZGVyKTtcbicpCiAgICAgICAgICAgICByZXN1bHQgKz0gWycgICAg
Km1fZW5jb2RlciA8PCAlcztcbicgJSB4Lm5hbWUgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJh
bWV0ZXJzXQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGJvb2wgcmVzdWx0ID0gbV9j
b25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KG1fZW5jb2Rlci5yZWxlYXNlKCkpO1xuJykKKyAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBib29sIHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2Vu
ZFN5bmNSZXBseShzdGQ6Om1vdmUobV9lbmNvZGVyKSk7XG4nKQogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7XG4nKQogICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnICAgIHJldHVybiByZXN1bHQ7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnfVxuJykKQEAgLTU3Niw5ICs1NzYsOSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5k
bGVyKGZpbGUpOgogICAgIGlmIHN5bmNfbWVzc2FnZXM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
J1xuJykKICAgICAgICAgaWYgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShMRUdBQ1lfUkVDRUlWRVJf
QVRUUklCVVRFKToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRpZFJlY2Vp
dmVTeW5jJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qJXMsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVu
Y29kZXIpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUsICcgY29ubmVjdGlvbicg
aWYgc3luY19kZWxheWVkX21lc3NhZ2VzIGVsc2UgJycpKQorICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZVN5bmMlc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biolcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxD
b3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcilcbicgJSAocmVjZWl2ZXIubmFt
ZSwgcmVjZWl2ZXIubmFtZSwgJyBjb25uZWN0aW9uJyBpZiBzeW5jX2RlbGF5ZWRfbWVzc2FnZXMg
ZWxzZSAnJykpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd2b2lk
ICVzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSkpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2Rl
cilcbicgJSAocmVjZWl2ZXIubmFtZSkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAg
ICAgICAgIHJlc3VsdCArPSBbc3luY19tZXNzYWdlX3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2Fn
ZSkgZm9yIG1lc3NhZ2UgaW4gc3luY19tZXNzYWdlc10KICAgICAgICAgaWYgbm90IHJlY2VpdmVy
Lmhhc19hdHRyaWJ1dGUoTEVHQUNZX1JFQ0VJVkVSX0FUVFJJQlVURSk6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKaW5kZXggZDEx
ZTI3ODdkZTg2ZmI2YjM0OWIzYWNlOTU4NjJmZGY5YWM5ZDJiYy4uYWE5MWNlZjBlMGI4N2FlNTRj
MTJlOWYyMjkxMzNhYmQzMmVhZTMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1Njcmlw
dHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQpAQCAtNDc2LDE0ICs0NzYsMTQgQEAgc3Ry
dWN0IEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25z
dCBXVEY6OlN0cmluZyY+IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwog
CiAgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxE
ZWxheWVkUmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6
Q29ubmVjdGlvbj4sIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4pOworICAgICAgICBE
ZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgc3RkOjp1bmlxdWVf
cHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxheWVkUmVwbHkoKTsK
IAogICAgICAgICBib29sIHNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBj
b25uZWN0aW9uSGFuZGxlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxDb3JlSVBD
OjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93blB0cjxDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcj4gbV9lbmNvZGVyOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6
TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlwZWRlZiBDb3JlSVBD
OjpBcmd1bWVudHMxPENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+IFJlcGx5OwpAQCAtNTAw
LDE0ICs1MDAsMTQgQEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpB
cmd1bWVudHMwIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCiAgICAg
c3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVk
UmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVj
dGlvbj4sIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4pOworICAgICAgICBEZWxheWVk
UmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgc3RkOjp1bmlxdWVfcHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxheWVkUmVwbHkoKTsKIAogICAg
ICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxDb3JlSVBD
OjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93blB0cjxDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcj4gbV9lbmNvZGVyOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6
TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlwZWRlZiBDb3JlSVBD
OjpBcmd1bWVudHMwIFJlcGx5OwpAQCAtNjYzLDcgKzY2Myw3IEBAIG5hbWVzcGFjZSBNZXNzYWdl
cyB7CiAKIG5hbWVzcGFjZSBXZWJQYWdlIHsKIAotR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246
OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlv
bj4gY29ubmVjdGlvbiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQor
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBh
c3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRy
PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQogICAgIDogbV9jb25uZWN0aW9uKGNv
bm5lY3Rpb24pCiAgICAgLCBtX2VuY29kZXIoc3RkOjptb3ZlKGVuY29kZXIpKQogewpAQCAtNjc4
LDEyICs2NzgsMTIgQEAgYm9vbCBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5OjpzZW5kKGNvbnN0IENvcmVJUEM6OkNvbm5lY3Rpb246OkgKIHsKICAgICBBU1NFUlQobV9l
bmNvZGVyKTsKICAgICAqbV9lbmNvZGVyIDw8IGNvbm5lY3Rpb25IYW5kbGU7Ci0gICAgYm9vbCBy
ZXN1bHQgPSBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkobV9lbmNvZGVyLnJlbGVhc2UoKSk7
CisgICAgYm9vbCByZXN1bHQgPSBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkoc3RkOjptb3Zl
KG1fZW5jb2RlcikpOwogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotVGVzdE11bHRpcGxlQXR0cmlidXRlczo6RGVsYXllZFJlcGx5OjpEZWxheWVk
UmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCitUZXN0TXVsdGlwbGVBdHRyaWJ1dGVz
OjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rp
b24+IGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4g
ZW5jb2RlcikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9lbmNvZGVy
KHN0ZDo6bW92ZShlbmNvZGVyKSkKIHsKQEAgLTY5Nyw3ICs2OTcsNyBAQCBUZXN0TXVsdGlwbGVB
dHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6On5EZWxheWVkUmVwbHkoKQogYm9vbCBUZXN0TXVsdGlw
bGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6OnNlbmQoKQogewogICAgIEFTU0VSVChtX2VuY29k
ZXIpOwotICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KG1fZW5j
b2Rlci5yZWxlYXNlKCkpOworICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3lu
Y1JlcGx5KHN0ZDo6bW92ZShtX2VuY29kZXIpKTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRy
OwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC03NjksNyArNzY5LDcgQEAgdm9pZCBXZWJQYWdl
OjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VEZWMKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJQYWdl
OjpkaWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6
TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVT
eW5jV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFt
ZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVQbHVnaW46Om5hbWUoKSkgewogICAgICAg
ICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVQbHVnaW4+
KGRlY29kZXIsICpyZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdlOjpjcmVhdGVQbHVnaW4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXggMDU0NjBm
YTJkZWRkYWY1OTNlZDczYWQ3ODBkM2YyZmZiZjJmNDM0Ni4uYzYzMjVmZGJiNzhlZTY0ZmQ4NjIy
NTIzMWExYmQ0MDgwYTBmZmFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0No
aWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzUHJveHkuY3BwCkBAIC03MSwxMiArNzEsMTIgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6
dGVybWluYXRlKCkKICAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXItPnRlcm1pbmF0ZVByb2Nlc3Mo
KTsKIH0KIAotYm9vbCBDaGlsZFByb2Nlc3NQcm94eTo6c2VuZE1lc3NhZ2UoUGFzc093blB0cjxD
b3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFn
cykKK2Jvb2wgQ2hpbGRQcm9jZXNzUHJveHk6OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxD
b3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFn
cykKIHsKICAgICAvLyBJZiB3ZSdyZSB3YWl0aW5nIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gbGF1
bmNoLCB3ZSBuZWVkIHRvIHN0YXNoIGF3YXkgdGhlIG1lc3NhZ2VzIHNvIHdlIGNhbiBzZW5kIHRo
ZW0gb25jZSB3ZSBoYXZlCiAgICAgLy8gYSBDb3JlSVBDIGNvbm5lY3Rpb24uCiAgICAgaWYgKGlz
TGF1bmNoaW5nKCkpIHsKLSAgICAgICAgbV9wZW5kaW5nTWVzc2FnZXMuYXBwZW5kKHN0ZDo6bWFr
ZV9wYWlyKGVuY29kZXIsIG1lc3NhZ2VTZW5kRmxhZ3MpKTsKKyAgICAgICAgbV9wZW5kaW5nTWVz
c2FnZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0ZDo6bW92ZShlbmNvZGVyKSwgbWVzc2FnZVNl
bmRGbGFncykpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTg0LDcgKzg0LDcg
QEAgYm9vbCBDaGlsZFByb2Nlc3NQcm94eTo6c2VuZE1lc3NhZ2UoUGFzc093blB0cjxDb3JlSVBD
OjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGNvbm5lY3Rpb24oKS0+c2VuZE1lc3NhZ2Uo
ZW5jb2RlciwgbWVzc2FnZVNlbmRGbGFncyk7CisgICAgcmV0dXJuIGNvbm5lY3Rpb24oKS0+c2Vu
ZE1lc3NhZ2Uoc3RkOjptb3ZlKGVuY29kZXIpLCBtZXNzYWdlU2VuZEZsYWdzKTsKIH0KIAogdm9p
ZCBDaGlsZFByb2Nlc3NQcm94eTo6YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIqIG1l
c3NhZ2VSZWNlaXZlcikKQEAgLTEwNyw3ICsxMDcsNyBAQCBib29sIENoaWxkUHJvY2Vzc1Byb3h5
OjpkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
QwogICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2Rlcik7CiB9CiAKLWJvb2wgQ2hpbGRQcm9jZXNzUHJveHk6OmRpc3BhdGNoU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5
RW5jb2RlcikKK2Jvb2wgQ2hpbGRQcm9jZXNzUHJveHk6OmRpc3BhdGNoU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5j
b2RlcikKIHsKICAgICByZXR1cm4gbV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQpAQCAtMTM1LDkgKzEz
NSw5IEBAIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNz
TGF1bmNoZXIqLCBDb3JlSVBDOjpDb25uZWN0aW9uCiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7
CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcGVuZGluZ01lc3NhZ2VzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gbWVzc2FnZSA9
IG1fcGVuZGluZ01lc3NhZ2VzW2ldLmZpcnN0LnJlbGVhc2UoKTsKKyAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtZXNzYWdlID0gc3RkOjptb3ZlKG1fcGVu
ZGluZ01lc3NhZ2VzW2ldLmZpcnN0KTsKICAgICAgICAgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFn
cyA9IG1fcGVuZGluZ01lc3NhZ2VzW2ldLnNlY29uZDsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kTWVzc2FnZShtZXNzYWdlLnJlbGVhc2UoKSwgbWVzc2FnZVNlbmRGbGFncyk7CisgICAgICAg
IG1fY29ubmVjdGlvbi0+c2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKG1lc3NhZ2UpLCBtZXNzYWdlU2Vu
ZEZsYWdzKTsKICAgICB9CiAKICAgICBtX3BlbmRpbmdNZXNzYWdlcy5jbGVhcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaAppbmRleCBiMDBiZGZhZGUyZTMxMTI2
NTFjNDUyODBmMDJiYzg2MzEwOTgzOWNmLi5kMDA0NzQ5MTVjMjg4OGM3Y2I5YTEzZDlkZTQ3NWIw
MTI1MDkyM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaApA
QCAtNzQsMTYgKzc0LDE2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNo
TGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIpIE9WRVJSSURFOwogCiAgICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKKyAgICBib29sIGRpc3BhdGNoU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3Rk
Ojp1bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbldpbGxPcGVuKENvcmVJUEM6
OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbldpbGxDbG9zZShDb3Jl
SVBDOjpDb25uZWN0aW9uKik7CiAKLSAgICBib29sIHNlbmRNZXNzYWdlKFBhc3NPd25QdHI8Q29y
ZUlQQzo6TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzKTsKKyAgICBi
b29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4s
IHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MpOwogCi0gICAgVmVjdG9yPHN0ZDo6cGFpcjxPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZD4+IG1fcGVuZGluZ01lc3NhZ2Vz
OworICAgIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiwgdW5zaWduZWQ+PiBtX3BlbmRpbmdNZXNzYWdlczsKICAgICBSZWZQdHI8UHJvY2Vz
c0xhdW5jaGVyPiBtX3Byb2Nlc3NMYXVuY2hlcjsKICAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOwogICAgIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX21l
c3NhZ2VSZWNlaXZlck1hcDsKQEAgLTk0LDEwICs5NCwxMCBAQCBib29sIENoaWxkUHJvY2Vzc1By
b3h5OjpzZW5kKGNvbnN0IFQmIG1lc3NhZ2UsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVuc2ln
bmVkCiB7CiAgICAgQ09NUElMRV9BU1NFUlQoIVQ6OmlzU3luYywgQXN5bmNNZXNzYWdlRXhwZWN0
ZWQpOwogCi0gICAgYXV0byBlbmNvZGVyID0gY3JlYXRlT3duZWQ8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+KFQ6OnJlY2VpdmVyTmFtZSgpLCBUOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOworICAg
IGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+
KFQ6OnJlY2VpdmVyTmFtZSgpLCBUOjpuYW1lKCksIGRlc3RpbmF0aW9uSUQpOwogICAgIGVuY29k
ZXItPmVuY29kZShtZXNzYWdlKTsKIAotICAgIHJldHVybiBzZW5kTWVzc2FnZShlbmNvZGVyLnJl
bGVhc2UoKSwgbWVzc2FnZVNlbmRGbGFncyk7CisgICAgcmV0dXJuIHNlbmRNZXNzYWdlKHN0ZDo6
bW92ZShlbmNvZGVyKSwgbWVzc2FnZVNlbmRGbGFncyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0
TWVzc2FnZVJlY2VpdmVyLmgKaW5kZXggMjFiMDM3OTAyN2Q1OTljNDJhOTVmMWFiNDkyZjdmNTI2
N2FkM2Y2NC4uNDYwN2QwNTY2OGMxM2QyNTQ4MjhhMmEzNWEzZTgyYmJkMDc2Y2JlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VS
ZWNlaXZlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0
cjxOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcj4gY3JlYXRlKE5QUmVtb3RlT2JqZWN0TWFwKiwgUGx1
Z2luKiwgdWludDY0X3QgbnBPYmplY3RJRCwgTlBPYmplY3QqKTsKICAgICB+TlBPYmplY3RNZXNz
YWdlUmVjZWl2ZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VS
ZWNlaXZlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBt
X3BsdWdpbjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBP
YmplY3Q7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVt
b3RlT2JqZWN0TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3Rl
T2JqZWN0TWFwLmNwcAppbmRleCA2M2U5NDlkOGQxZWJmYjRkMWM1NmRkNzRhZDkxNTNkMmMyODEx
ZWZlLi44ZjJhNDAzN2FlODA2MmZiOTk3MjMzMjdlZDQyOGYxMTJmYzYyNDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCkBA
IC0yMjcsNyArMjI3LDcgQEAgdm9pZCBOUFJlbW90ZU9iamVjdE1hcDo6cGx1Z2luRGVzdHJveWVk
KFBsdWdpbiogcGx1Z2luKQogICAgIH0KIH0KIAotdm9pZCBOUFJlbW90ZU9iamVjdE1hcDo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+JiByZXBseUVuY29kZXIpCit2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rl
cj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciogbWVzc2Fn
ZVJlY2VpdmVyID0gbV9yZWdpc3RlcmVkTlBPYmplY3RzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9u
SUQoKSk7CiAgICAgaWYgKCFtZXNzYWdlUmVjZWl2ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaAppbmRleCBkOTQ4MDRkOGU0MzFiZmNl
YmIyNTc1ODNiYzkyYTQzMmFkYzJjZjI2Li41YzhhNDczMmFiYmM2ZmYxNTBlMDljNzM4MzM4Yjg2
MjM1N2VkMTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJl
bW90ZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVt
b3RlT2JqZWN0TWFwLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwbHVn
aW5EZXN0cm95ZWQoUGx1Z2luKik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29y
ZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IE5QUmVtb3RlT2JqZWN0TWFwKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcAppbmRleCBhMGRhNTRkODNjYWNjZjg5Y2E3ZWE3MmRm
ZTZhYzQyOGJmZjQyMjI4Li42YTk0MmM1MjAzNzY4NWEwOTYzZmE3YmFkY2M3ZGUzYmUyMmIyMjM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uY3BwCkBAIC01MSwxMSArNTEs
MTEgQEAgdm9pZCBXZWJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2VOYW1lLCBBUElPYmplY3QqIG1lc3NhZ2VCb2QKICAgICBpZiAoIWhhc1ZhbGlkQ29ubmVjdGlv
bigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGVuY29kZXIgPSBjcmVhdGVPd25lZDxD
b3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4oTWVzc2FnZXM6OldlYkNvbm5lY3Rpb246OkhhbmRsZU1l
c3NhZ2U6OnJlY2VpdmVyTmFtZSgpLCBNZXNzYWdlczo6V2ViQ29ubmVjdGlvbjo6SGFuZGxlTWVz
c2FnZTo6bmFtZSgpLCAwKTsKKyAgICBhdXRvIGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPihNZXNzYWdlczo6V2ViQ29ubmVjdGlvbjo6SGFuZGxlTWVz
c2FnZTo6cmVjZWl2ZXJOYW1lKCksIE1lc3NhZ2VzOjpXZWJDb25uZWN0aW9uOjpIYW5kbGVNZXNz
YWdlOjpuYW1lKCksIDApOwogICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlTmFtZSk7CiAgICAg
ZW5jb2RlTWVzc2FnZUJvZHkoKmVuY29kZXIsIG1lc3NhZ2VCb2R5KTsKIAotICAgIHNlbmRNZXNz
YWdlKGVuY29kZXIucmVsZWFzZSgpKTsKKyAgICBzZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5jb2Rl
cikpOwogfQogCiB2b2lkIFdlYkNvbm5lY3Rpb246OmRpZENsb3NlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggMWQ5ODMw
NWUwZDA1NDlmYTA1ZmNlZmJmODA1MTc5MGY4NTk0NDRmMS4uMzZjOGQ3YzdkNjM2N2I4MjJiMjU3
NzZjODk2OTMxNzExZGI3YzM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAg
IHZvaWQgcHJvY2Vzc0RpZENsb3NlKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFBy
b3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jRG93bmxvYWRQcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6
OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICNpZiBQTEFURk9STShR
VCkKICAgICB2b2lkIHN0YXJ0VHJhbnNmZXIoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSk7CkBAIC03
Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAg
IHZvaWQgZGlkU3RhcnQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IGYxNWJkYjQ0MmYwZDA4NTA1MzgxNTQ2MjgzMjFlN2RiNGI3NTUzNTYuLjA5
NDBkYjRiMDA1MzgwODE3ZGE5MWU5ZTc4OGM2MDY5YTJmMjg0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3IKICAgICBkaWRSZWNl
aXZlTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAK
LXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
LCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCit2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1
bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAg
IGlmIChkaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cikpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCAyY2M5ZTg4NDBlM2Y4YjAzZjRm
MWY3ZDQwNzkwMzYxNzY4NGY1OWI2Li42NjUxNzc3NzQwYjE1ZjYzN2UxYjQ5YmM4ZTQyZjg3Y2Zi
MTkzN2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAKICAgICAv
LyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6
TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApp
bmRleCA3NGU1YzlkYTIxYmIxMWY0NDAwZjQxYjkzZGVlZWE2ZDRiZWMzNDI2Li5lM2I4MWZiOWVk
ZWNjZWZlOGM4NmQyZmU2Zjc0YzhmZjEwYjAyMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtMTA3LDcgKzEw
Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2Fn
ZUVuY29kZXI+JikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5h
bWUpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VNYW5hZ2VyLmgKaW5kZXggNWZjNTI2MWU0Y2FiZTRjMzY5MzQzNmU5ZjE4NjlmOTgwYzgz
OTJiOC4uZTkyZjZkZWZjMWU2Nzc4MzQ0Y2NiZjA0ZDgzYzcyZWQ1Y2Q2YWE4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCkBAIC03
MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpXb3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5j
b2RlcikgT1ZFUlJJREU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgY3Jl
YXRlTG9jYWxTdG9yYWdlTWFwKENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCBzdG9yYWdl
TWFwSUQsIHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggM2MxMjMw
OThlYmQ1OTgwZmI2MzY5NjFjMmZjNjEwZTE5MjZjZDdjNi4uNzdhOWYwOGM0OTM1YzNlNDM1OTM4
YTFmNTYyY2EwYjU4OGY3Y2JkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcApAQCAtODk3LDcgKzg5Nyw3IEBAIGJvb2wgV2ViQ29udGV4dDo6ZGlzcGF0Y2hNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhCiAgICAgcmV0
dXJuIG1fbWVzc2FnZVJlY2VpdmVyTWFwLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKIH0KIAotYm9vbCBXZWJDb250ZXh0OjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
LCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCitib29sIFdl
YkNvbnRleHQ6OmRpc3BhdGNoU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxD
b3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICByZXR1cm4gbV9t
ZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
LCByZXBseUVuY29kZXIpOwogfQpAQCAtOTI2LDcgKzkyNiw3IEBAIHZvaWQgV2ViQ29udGV4dDo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dDo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+JiByZXBseUVuY29kZXIpCit2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6V2ViQ29udGV4dDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAg
IGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IGM1NzY3
Nzk5NGM3NTZmMjBjOWRhZWIyNzE2NzA4MzgzYzA3Zjk0YzcuLjdiZTQ5MGVmNmY5ZTZhMTlhYWUz
YTI0ZGRlMTgwNjY5Nzk5N2ZhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
aApAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgdWludDY0
X3QgZGVzdGluYXRpb25JRCk7CiAKICAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICBib29sIGRpc3BhdGNo
U3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOworICAgIGJvb2wgZGlzcGF0Y2hT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICB2b2lk
IGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tDb250ZXh0Q2xpZW50Kik7CiAgICAgdm9pZCBpbml0
aWFsaXplSW5qZWN0ZWRCdW5kbGVDbGllbnQoY29uc3QgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVD
bGllbnQqKTsKQEAgLTE4OCw3ICsxODgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZXNzYWdlUmVj
ZWl2ZXIuCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPENvcmVJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVs
KENhY2hlTW9kZWwpOwogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2FjaGVNb2RlbDsgfQpAQCAtMzUxLDcgKzM1MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIAog
ICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVy
LmNwcAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNvbnRleHRNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNXZWJDb250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY1dlYkNvbnRleHRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxhbmd1YWdlQ2hhbmdlZCh2b2lkKiBjb250ZXh0
KTsKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggOWRhYjYxYzNjN2I0
ZmZlMDNkOWI2MzlhZGNiODNhNjQzODllNzkzOS4uMDg1YmQwYTk2ZDVjNDBlZTdiNTZiZDZjYjJi
ZjI5YmJiZWFkZTJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxG
cmFtZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZmluYWxGcmFtZSk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+
JikgT1ZFUlJJREU7CiAKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBQbGF0Zm9ybVdl
YlZpZXcqIG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJh
c2UuaAppbmRleCBiZTFiM2RjYmNjZTI1M2U1NzNkZmIxNDMyM2M4NzVlYzQ3MWQwYWZmLi4wMWQ1
OGVkZTlhOTBmYTMwNWNkODkwZTY0ZWE2MzcwNmQyOGJkOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQ
Qzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7
CiAKICAgICB2b2lkIG5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4
IGM1YzVkNjUzZjI4ZjQ0NDE4OWI1YTdmMmVjMTQ1M2VjYmUwYzllYzYuLjFjNmU3ZjQ5M2I2YTQz
YzliMTk2YjA3OGE5NjY5N2UxZGRmOGMyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xNTEsNyArMTUxLDcgQEAgcHJpdmF0ZToKIAogICAg
IC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYs
IHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAog
ICAgIFdlYlBhZ2VQcm94eSogcGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCk7CiAgICAgdm9p
ZCBwbGF0Zm9ybU9wZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA4YTE5NjAxMjgzZGM1ODJhYjIwZmI1YTU4YjY0ODA2NWUzYzdmMTUzLi41OWNmY2RmMWU3
MmVhMmM2ZTNiOTRkNmQ2YWNiMzZkZjBkNTQ5Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC03ODUsNyArNzg1LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIENv
cmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAogICAgIC8v
IFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2Vk
Rm9yUG9wdXBNZW51KFdlYlBvcHVwTWVudVByb3h5KiwgaW50MzJfdCBuZXdTZWxlY3RlZEluZGV4
KTsKQEAgLTgwMCw3ICs4MDAsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4g
Z2VuZXJhdGVkIFdlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0
cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2Vi
UGFnZVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAg
ICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKICAgICB2b2lkIGRp
ZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0NDU2NzIzZWE5YThjMzEzODYyZTRmYjE5
ZmY3OTcyYjNlZDJmNGQwLi4zNDNhZjNjNzQ0M2Q0Y2E0ZTVjNmUyNzE3Njk2NmUzMWExYzIyMTlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAt
MzUyLDcgKzM1Miw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDCiAgICAgLy8gRklYTUU6IEFk
ZCB1bmhhbmRsZWQgbWVzc2FnZSBsb2dnaW5nLgogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+JiByZXBseUVuY29kZXIpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgaWYgKGRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDEwZGY3NGU0NWNkY2NjNGNk
ZGUyZTU5N2E2ZjgwMDRhM2VjMTQyNDAuLjA1ZDg4MzlhYTVlMGZhZThkMWFiNjk4N2EwY2RiY2I3
MTJjOTM2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
QEAgLTE1Niw3ICsxNTYsNyBAQCBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246
OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlUmVjZWl2ZXJOYW1lLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUp
IE9WRVJSSURFOwogCkBAIC0xNzYsNyArMTc2LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEltcGxl
bWVudGVkIGluIGdlbmVyYXRlZCBXZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAg
ICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CisgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgYm9vbCBjYW5UZXJtaW5hdGVDaGlsZFByb2Nlc3MoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA1OWQ5MzYzMzU4ZWNkMTdiZTVmZWQ2M2JiYzFk
NzRiZjMyYmY2ODUzLi43NGZhMzY1MDhhNmY0YjM2NDI2YmYzMDBlNDA5MjMyZGUxNDJjYWI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMTAxLDExICsxMDEsMTEgQEAgdm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6aW5pdGlhbGl6ZUNsaWVudChXS0J1bmRsZUNsaWVudCogY2xpZW50KQogCiB2b2lk
IEluamVjdGVkQnVuZGxlOjpwb3N0TWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBB
UElPYmplY3QqIG1lc3NhZ2VCb2R5KQogewotICAgIGF1dG8gZW5jb2RlciA9IGNyZWF0ZU93bmVk
PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPihXZWJDb250ZXh0TGVnYWN5TWVzc2FnZXM6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2VzOjpwb3N0TWVzc2FnZU1l
c3NhZ2VOYW1lKCksIDApOworICAgIGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8Q29y
ZUlQQzo6TWVzc2FnZUVuY29kZXI+KFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlczo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBXZWJDb250ZXh0TGVnYWN5TWVzc2FnZXM6OnBvc3RNZXNzYWdlTWVzc2Fn
ZU5hbWUoKSwgMCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2VOYW1lKTsKICAgICBlbmNv
ZGVyLT5lbmNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkp
KTsKIAotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmRNZXNzYWdlKGVuY29kZXIucmVsZWFzZSgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5jb2Rl
cikpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0U3luY2hyb25vdXNNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZHksIFJlZlB0cjxB
UElPYmplY3Q+JiByZXR1cm5EYXRhKQpAQCAtMTEzLDExICsxMTMsMTEgQEAgdm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6cG9zdFN5bmNocm9ub3VzTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1l
LCBBUElPYmplY3QKICAgICBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdl
RGVjb2RlcihyZXR1cm5EYXRhKTsKIAogICAgIHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQ7Ci0gICAg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gV2ViUHJvY2Vzczo6c2hh
cmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVy
KFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBXZWJDb250
ZXh0TGVnYWN5TWVzc2FnZXM6OnBvc3RTeW5jaHJvbm91c01lc3NhZ2VNZXNzYWdlTmFtZSgpLCAw
LCBzeW5jUmVxdWVzdElEKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+IGVuY29kZXIgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5jcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2Vz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlczo6cG9zdFN5
bmNocm9ub3VzTWVzc2FnZU1lc3NhZ2VOYW1lKCksIDAsIHN5bmNSZXF1ZXN0SUQpOwogICAgIGVu
Y29kZXItPmVuY29kZShtZXNzYWdlTmFtZSk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKEluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7CiAKLSAgICBPd25QdHI8Q29y
ZUlQQzo6TWVzc2FnZURlY29kZXI+IHJlcGx5RGVjb2RlciA9IFdlYlByb2Nlc3M6OnNoYXJlZCgp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jTWVzc2FnZShzeW5jUmVxdWVzdElE
LCBlbmNvZGVyLnJlbGVhc2UoKSwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Tm9UaW1lb3V0KTsKKyAg
ICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZURlY29kZXI+IHJlcGx5RGVjb2RlciA9IFdlYlByb2Nl
c3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jTWVzc2FnZShz
eW5jUmVxdWVzdElELCBzdGQ6Om1vdmUoZW5jb2RlciksIENvcmVJUEM6OkNvbm5lY3Rpb246Ok5v
VGltZW91dCk7CiAgICAgaWYgKCFyZXBseURlY29kZXIgfHwgIXJlcGx5RGVjb2Rlci0+ZGVjb2Rl
KG1lc3NhZ2VEZWNvZGVyKSkgewogICAgICAgICByZXR1cm5EYXRhID0gbnVsbHB0cjsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBkZmE4NTlmY2VkNzgy
NmYwYWQ4NDdjNTczM2UwMTllNmI5NzdiNTc1Li4zY2Q1NzIwNDk4YjNkZjYxZjFhYTFiZjMzNDcx
MTE4ZjhmNTFhMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtNjUsNyArNjUs
NyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbgogICAgIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCi12b2lkIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCit2b2lkIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVu
aXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMGNk
YzczZTI4YTE3MDc3ZjI2MDg2ZWYxNDY4YzJkZWY1OTA5Nzg0My4uMWQxZjY4Nzc4ZmU1MjhjZjll
MjFlNjlkZDRjYjgwYzliNjQyMTVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjQs
NyArNjQsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3Jl
SVBDOjpDb25uZWN0aW9uKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
TmFtZSkgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDhjMjNhYWE2
NmQ5YWY0MmUyZjMzOTJlOTYxOWJlMzYyYTllZjBkNjAuLjZhN2QwMDk1YzE3NGFhN2Q5NDcxZTNk
NmM2ZDQ1ZTg0NjBiZmFkZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtOTksNyAr
OTksNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLAogICAgIHBsdWdpblByb3h5LT5kaWRSZWNl
aXZlUGx1Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCi12b2lkIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3ZvaWQgUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1
bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBtX25wUmVt
b3RlT2JqZWN0TWFwLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggYjNhYzYzOGEyZDgxM2Qx
MzA1MTQyYmEzZGEyN2NhOTVlZjM0NTEzYi4uODVkNzE0MTU3ZTY3MmJmMTc5ODI2N2JmNGJlNzI2
NTMwZGYxMTU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTY2LDEyICs2NiwxMiBAQCBw
cml2YXRlOgogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0
aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgT1ZFUlJJREU7CiAKICAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPENvcmVJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogICAgIHZvaWQgc2V0RXhjZXB0aW9uKGNvbnN0IFN0cmlu
ZyYpOwogCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKiBtX3BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5LmgKaW5kZXggN2ExMzUzODNlODI2OTkzOGIzNWQzZjU1NjkxNjQ1OTM2
OTY0N2I2MC4uNDIzOTUyMzE1OGFjMzVkZGU0NDhiY2NmOWJkNzQ2MTY1ZTMzZGU0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKQEAgLTYz
LDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgcGx1Z2luUHJvY2Vzc0NyYXNoZWQoKTsKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1
Z2luUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jUGx1Z2luUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rl
cj4mKTsKIAogICAgIGJvb2wgaXNCZWluZ0FzeW5jaHJvbm91c2x5SW5pdGlhbGl6ZWQoKSBjb25z
dCB7IHJldHVybiBtX3dhaXRpbmdPbkFzeW5jaHJvbm91c0luaXRpYWxpemF0aW9uOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2N2Qx
Yzc4ODI2OTg0YWRlZGUzMDBlYTI0MDE1YzMyMDY1YWYxN2M0Li5kMjY0Yzg3ZTY0NGQ4MjhhMWQ3
ZDBlYjYzNzk2MmRiYWQzYmYyYTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMTcyLDcgKzMxNzIsNyBAQCB2b2lkIFdlYlBhZ2U6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZwogICAgIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3ZvaWQgV2ViUGFn
ZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8Q29yZUlQ
Qzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7ICAgCiAgICAgZGlkUmVjZWl2ZVN5
bmNXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYTIwNmI3
NTViMjcxYmZlYzRhM2VlNTBmODBhMGU4ZjE2MjY0ZGYxZi4uZGYzMzRhZmZkZTY1OTg0NjExYzU1
YjA0OTZmOGY4MGRkOGIzMmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC0yNDIsNyArMjQyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWN0
aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoUGFzc1JlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcj4pOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CisgICAg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYpIE9WRVJSSURFOwogCiAgICAgLy8gLS0gSW5qZWN0ZWRCdW5kbGUgbWV0aG9kcwogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQpAQCAtNjczLDcgKzY3Myw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+
Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBD
OjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogI2lmICFQTEFURk9STShNQUMpCiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IFdlYkNvcmU6OktleWJvYXJkRXZlbnQq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDk0MGY5OGVi
MGNkMmIzNzAxZDc0MTE2NjVkMWE3YTdlNWE3ZmZlYTUuLmViMWUzNzY3ZjAzMTE2YmRlODA0NDky
YTZjZmI2MGE0YjdhOTI3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtNjIzLDcgKzYyMyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6dGVybWluYXRlKCkKICAg
ICBDaGlsZFByb2Nlc3M6OnRlcm1pbmF0ZSgpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKQordm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5
RW5jb2RlcikKIHsKICAgICBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDQzNjVkMGQ5NzQwMWJkZGZjYzA0MTFhY2M2YmUwYjk4
ZTQwNjljYTMuLjZkNDczYzNlNGQ1N2E5NTNhNzlhOTgzODg4M2Q3Njg0Nzg0ZDNhMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0yNDYsNyArMjQ2LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICBmcmllbmQgY2xh
c3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxD
b3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIE9W
RVJSSURFOwogCg==
</data>
<flag name="review"
          id="234734"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>