<?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>116743</bug_id>
          
          <creation_ts>2013-05-24 15:43:08 -0700</creation_ts>
          <short_desc>MessageSender shouldn&apos;t be a class template</short_desc>
          <delta_ts>2013-05-24 17:16:58 -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>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>893474</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-24 15:43:08 -0700</bug_when>
    <thetext>MessageSender shouldn&apos;t be a class template</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893475</commentid>
    <comment_count>1</comment_count>
      <attachid>202857</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-24 15:47:35 -0700</bug_when>
    <thetext>Created attachment 202857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893483</commentid>
    <comment_count>2</comment_count>
      <attachid>202857</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-24 15:55:20 -0700</bug_when>
    <thetext>Comment on attachment 202857
Patch

Attachment 202857 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/671095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893484</commentid>
    <comment_count>3</comment_count>
      <attachid>202857</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-24 15:56:44 -0700</bug_when>
    <thetext>Comment on attachment 202857
Patch

Attachment 202857 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/669069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893520</commentid>
    <comment_count>4</comment_count>
      <attachid>202857</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-05-24 17:12:40 -0700</bug_when>
    <thetext>Comment on attachment 202857
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=202857&amp;action=review

&gt; Source/WebKit2/Platform/CoreIPC/MessageSender.h:69
&gt; +    virtual Connection* messageSenderConnection() = 0;
&gt; +    virtual uint64_t messageSenderDestinationID() = 0;

r=me if you mark all overrides as both &quot;virtual&quot; and &quot;OVERRIDE&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893521</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-24 17:16:58 -0700</bug_when>
    <thetext>Committed r150669: &lt;http://trac.webkit.org/changeset/150669&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202857</attachid>
            <date>2013-05-24 15:47:35 -0700</date>
            <delta_ts>2013-05-24 17:12:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116743-20130524154619.patch</filename>
            <type>text/plain</type>
            <size>93179</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTI2OGQxMjhmODMxZTcx
ZGE1ZmJlZWYyZDQ1YjBiZDk3MzQ4NGJkMS4uMzAxOTliMGFhOGYwYzQ5ODIzMTMwMWU4NWJiYjM2
MGY5NDU3NDk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3NyBAQAorMjAxMy0wNS0yNCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIE1lc3NhZ2VTZW5k
ZXIgc2hvdWxkbid0IGJlIGEgY2xhc3MgdGVtcGxhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBNZXNzYWdlU2VuZGVyIHRvIGJlIGEgcHJv
cGVyIGFic3RyYWN0IGJhc2UgY2xhc3MuIFN1YmNsYXNzZXMgb2YgTWVzc2FnZVNlbmRlciBtdXN0
CisgICAgICAgIGltcGxlbWVudCBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGFzIHdlbGwgYXMg
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKS4KKworICAgICAgICBUaGlzIHJlZHVjZXMgY29k
ZSBzaXplIGFuZCB3aWxsIGFsbG93IHVzIHRvIGJlIG1vcmUgZmxleGlibGUgd2l0aCBNZXNzYWdl
U2VuZGVyIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OnNlbmRBYm9ydGluZ09uRmFpbHVyZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmg6CisgICAgICAgIChOZXR3b3JrUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmg6CisgICAgICAgIChEaXNrQ2FjaGVNb25p
dG9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbToK
KyAgICAgICAgKFdlYktpdDo6RGlza0NhY2hlTW9uaXRvcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpEaXNrQ2FjaGVNb25pdG9yOjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVNlbmRlci5oOgorICAgICAgICAoQ29yZUlQQyk6CisgICAgICAgIChNZXNzYWdl
U2VuZGVyKToKKyAgICAgICAgKENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXI6OnNlbmQpOgorICAgICAg
ICAoQ29yZUlQQzo6TWVzc2FnZVNlbmRlcjo6c2VuZFN5bmMpOgorICAgICAgICAqIFNoYXJlZC9D
aGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6Om1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNo
aWxkUHJvY2Vzczo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQpOgorICAgICAgICAqIFNoYXJl
ZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKENoaWxkUHJvY2Vzcyk6CisgICAgICAgICogU2hh
cmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpt
ZXNzYWdlU2VuZGVyQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpEb3dubG9hZDo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQpOgorICAgICAgICAqIFNo
YXJlZC9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKyAgICAgICAgKERvd25sb2FkKToKKyAgICAgICAg
KiBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdl
ck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0aWFs
aXplKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29u
bmVjdGlvbik6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OnNlbmRTZWNJdGVtUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpoYXNWYWxpZENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAoV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
ZW9sb2NhdGlvbk1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpyZXRhaW5JY29uRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5OjpyZWxlYXNlSWNvbkZvclBhZ2VVUkwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2VQcm94eTo6c3luY2hyb25vdXNJY29uRm9y
UGFnZVVSTCk6CisgICAgICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFzZVByb3h5Ojpsb2FkRGVj
aXNpb25Gb3JJY29uVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlUHJveHk6
OnNldEljb25VUkxGb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNl
UHJveHk6OnNldEljb25EYXRhRm9ySWNvblVSTCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlOjpwb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpw
b3N0U3luY2hyb25vdXNNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3Rp
ZmljYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
OgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OndyaXRlSXRlbXNUb1Bhc3RlYm9hcmQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6
OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6
U3RvcmFnZUFyZWFNYXApOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6flN0b3Jh
Z2VBcmVhTWFwKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6OnNldEl0ZW0pOgor
ICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpjbGVhcik6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VB
cmVhTWFwOjpsb2FkVmFsdWVzSWZOZWVkZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29ubmVjdGlvblRv
VUlQcm9jZXNzOjpoYXNWYWxpZENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3M6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaDoKKyAg
ICAgICAgKFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6dG9v
bGJhcnNWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzdGF0dXNi
YXJWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjptZW51YmFyVmlz
aWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0QWxlcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRDb25maXJtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0UHJvbXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRJ
bnRlcnJ1cHRKYXZhU2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpl
eGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ29sb3JDaG9vc2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2Vy
OjpXZWJDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnNl
dFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmVuZENo
b29zZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRSZWNlaXZlSWNvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50Ojp1cGRhdGVHbG9iYWxIaXN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnlSZWRpcmVjdExpbmtzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNldFRpdGxlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6cG9wdWxhdGVQbHVnaW5DYWNoZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0VHlwZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmJ1ZmZlckZvclR5cGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFBhdGhuYW1lc0ZvclR5cGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnN0cmluZ0ZvclR5cGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvcHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNoYW5nZUNvdW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp1bmlxdWVOYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRm
b3JtU3RyYXRlZ2llczo6dXJsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjphZGRUeXBlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6
c2V0VHlwZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldEJ1
ZmZlckZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNl
dFBhdGhuYW1lc0ZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OnNldFN0cmluZ0ZvclR5cGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUG9wdXBNZW51LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51OjpzaG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51OjpoaWRlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpFdmVudERpc3BhdGNoZXI6OnNlbmREaWRSZWNlaXZlRXZlbnQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OnVwZGF0ZUJhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tG
b3J3YXJkTGlzdFByb3h5OjppdGVtQXRJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tG
b3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdENvdW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6OmZvcndhcmRMaXN0Q291bnQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3I6OmNyZWF0ZUluc3BlY3RvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6
OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpicmluZ1RvRnJvbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6Omluc3BlY3RlZFVSTENoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OnNhdmUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3I6OmFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6YXR0
YWNoQm90dG9tKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjphdHRhY2hSaWdodCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6ZGV0YWNoKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yOjpzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3Rvcjo6c2V0QXR0YWNoZWRXaW5kb3dXaWR0aCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3Rvcjo6c2V0VG9vbGJhckhlaWdodCk6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6dXBkYXRlRG9ja2luZ0F2YWlsYWJpbGl0eSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3Rvcjo6c2VuZE1lc3NhZ2VUb1JlbW90ZUZyb250ZW5kKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViUGFnZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpleGVjdXRlS2V5cHJlc3NDb21tYW5kc0ludGVybmFsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnNob3VsZFRlcm1pbmF0ZSk6CisKIDIwMTMtMDUtMjQgIFRob21hcyBEZW5pYXUgIDxkZW5p
YXVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIGxpbmVzIHRvIHRoZSBjb250ZXh0IGR1
cmluZyBEaWN0aW9uYXJ5IGxvb2t1cHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGNlMWUwZGY3ODExMzBj
NGQzMDAxNmE0NDlmZjQ3NzkxOWM0ODM1OGYuLjRjMzdlNDc3MGFkN2Q3YjMwMjg4M2ZkZDI2MjZl
YTVmODY1NWRmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNjUsMTYgKzY1LDYgQEAgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjp+TmV0d29ya1Jlc291cmNlTG9hZGVyKCkKICAgICBBU1NFUlQoIW1faGFu
ZGxlKTsKIH0KIAotQ29yZUlQQzo6Q29ubmVjdGlvbiogTmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b25uZWN0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gY29ubmVjdGlvblRvV2ViUHJvY2Vzcygp
LT5jb25uZWN0aW9uKCk7Ci19Ci0KLXVpbnQ2NF90IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGVz
dGluYXRpb25JRCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlkZW50aWZpZXIoKTsKLX0KLQogdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwpAQCAtMTExLDcgKzEwMSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
bGVhbnVwKCkKIAogdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OnNlbmRBYm9ydGluZ09uRmFpbHVyZShjb25zdCBVJiBtZXNzYWdlLCB1bnNpZ25lZCBtZXNz
YWdlU2VuZEZsYWdzKQogewotICAgIGJvb2wgcmVzdWx0ID0gY29ubmVjdGlvbigpLT5zZW5kKG1l
c3NhZ2UsIGRlc3RpbmF0aW9uSUQoKSwgbWVzc2FnZVNlbmRGbGFncyk7CisgICAgYm9vbCByZXN1
bHQgPSBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpLT5zZW5kKG1lc3NhZ2UsIG1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCksIG1lc3NhZ2VTZW5kRmxhZ3MpOwogICAgIGlmICghcmVzdWx0KQog
ICAgICAgICBhYm9ydCgpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0zMDQsNiArMjk0LDE2IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShSZXNvdXJjZUhhbmRsZSogaGFuCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorQ29y
ZUlQQzo6Q29ubmVjdGlvbiogTmV0d29ya1Jlc291cmNlTG9hZGVyOjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpCit7CisgICAgcmV0dXJuIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKS0+Y29ubmVj
dGlvbigpOworfQorCit1aW50NjRfdCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCkKK3sKKyAgICByZXR1cm4gaWRlbnRpZmllcigpOworfQorCiAjaWYg
VVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2Up
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCmluZGV4IDQxNDAyYjU0YWNmZDBjNjU0Zjg1NGNhYjA2MmMzOWExNDdiY2Iy
ODkuLjc5OGNjY2YyMGNkNzJlYTQzNGI4NzAyOWM0ZjJkMmQwOTk5ZmI0MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
CkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M7CiBjbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDsKIAotY2xh
c3MgTmV0d29ya1Jlc291cmNlTG9hZGVyIDogcHVibGljIFNjaGVkdWxhYmxlTG9hZGVyLCBwdWJs
aWMgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdl
U2VuZGVyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4geworY2xhc3MgTmV0d29ya1Jlc291cmNlTG9h
ZGVyIDogcHVibGljIFNjaGVkdWxhYmxlTG9hZGVyLCBwdWJsaWMgV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVDbGllbnQsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gY3JlYXRlKGNvbnN0IE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyogY29ubmVjdGlvbikKICAgICB7CkBAIC01NiwxMCArNTYsNiBAQCBwdWJsaWM6
CiAgICAgCiAgICAgfk5ldHdvcmtSZXNvdXJjZUxvYWRlcigpOwogCi0gICAgLy8gVXNlZCBieSBN
ZXNzYWdlU2VuZGVyLgotICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25z
dDsKLSAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEKCkgY29uc3Q7Ci0KICAgICBXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0K
ICAgICB2b2lkIGRpZENvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKCk7CiAKQEAgLTEwNyw2ICsxMDMs
MTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIoY29uc3Qg
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmLCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyopOwogCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVNlbmRlcgorICAgIHZpcnR1YWwgQ29y
ZUlQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgT1ZFUlJJREU7
CisKICAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCk7CiAgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5o
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaApp
bmRleCBkN2EwMzc1Yzc4NTE1YTI4ODQyMWFmYjZlZWE0MmU1NTA0ZmQ3YjY1Li5hZTM5ZDhhZDc5
NjYzODQ0NDU1YWI1MzVjZmY2NjgyY2U5MTBmOTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKQEAgLTM3LDE5ICszNywx
OSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwogCi1jbGFzcyBEaXNrQ2FjaGVNb25p
dG9yIDogcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXI8RGlza0NhY2hlTW9uaXRvcj4gewor
Y2xhc3MgRGlza0NhY2hlTW9uaXRvciA6IHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlU2VuZGVyIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBtb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9u
KENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYsIE5ldHdvcmtSZXNvdXJjZUxvYWRlciopOwogCi0gICAg
Ly8gVXNlZCBieSBNZXNzYWdlU2VuZGVyLgotICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24oKSBjb25zdDsKLSAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEKCkgY29uc3QgeyByZXR1
cm4gMDsgfQotICAgIAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KIAogcHJpdmF0
ZToKICAgICBEaXNrQ2FjaGVNb25pdG9yKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYsIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlciopOwotICAgIAorCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVNlbmRlci4K
KyAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpOworICAg
IHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCk7CisKICAgICBSZWZQdHI8TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAg
ICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5t
bQppbmRleCA5ZjYwNjA2NGUzOGIyZGMyNzk1YjQ4MTNkNjk5Njk3OWRmZGJkZDQ2Li4zNGM4MWU2
MWQzN2E3MjMxODI5MDRlOThkZjYxMzlhZDYyYTY5MGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQpAQCAtOTQsMTEg
Kzk0LDE2IEBAIERpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSwgTmV0d29yCiAgICAgX0NGQ2FjaGVkVVJMUmVzcG9u
c2VTZXRCZWNhbWVGaWxlQmFja2VkQ2FsbEJhY2tCbG9jayhjYWNoZWRSZXNwb25zZSwgYmxvY2ss
IGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwogfQogCi1Db3JlSVBDOjpDb25uZWN0aW9uKiBE
aXNrQ2FjaGVNb25pdG9yOjpjb25uZWN0aW9uKCkgY29uc3QKK0NvcmVJUEM6OkNvbm5lY3Rpb24q
IERpc2tDYWNoZU1vbml0b3I6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKIHsKICAgICByZXR1
cm4gbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCk7CiB9CiAKK3VpbnQ2NF90
IERpc2tDYWNoZU1vbml0b3I6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyAjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VTZW5kZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NmY4MmM5
MjdjMmQ3NGE0MDNmNjQxZThiZTAyNGI5ZGRmMTkzNzMxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmNwcApAQCAtMCwwICsx
LDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lc3Nh
Z2VTZW5kZXIuaCIKKworbmFtZXNwYWNlIENvcmVJUEMgeworCitNZXNzYWdlU2VuZGVyOjp+TWVz
c2FnZVNlbmRlcigpCit7Cit9CisKK2Jvb2wgTWVzc2FnZVNlbmRlcjo6c2VuZE1lc3NhZ2UoUGFz
c093blB0cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKK3sKKyAgICBBU1NFUlQobWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSk7CisKKyAgICByZXR1cm4gbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KS0+c2VuZE1lc3NhZ2UoZW5jb2Rlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIENvcmVJUEMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVNlbmRlci5o
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmgKaW5kZXgg
MTMxMjJjM2ZkNzRlZjMyZDg1YWVlM2UxYWM2OWY0YTRlMTYxZGVhOC4uNDVmNmU1Y2YwOGNkOTA4
NzUwNmMwZThlY2RjYmMwNDllYzhiN2E1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmgKQEAgLTMwLDEyICszMCwxNCBAQAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIENvcmVJUEMgewotICAgIAotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gY2xhc3MgTWVzc2FnZVNlbmRlciB7CisKK2NsYXNzIE1lc3NhZ2VTZW5kZXIgewog
cHVibGljOgorICAgIHZpcnR1YWwgfk1lc3NhZ2VTZW5kZXIoKTsKKwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFU+IGJvb2wgc2VuZChjb25zdCBVJiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHNlbmQobWVzc2FnZSwgc3RhdGljX2Nhc3Q8VCo+KHRoaXMpLT5kZXN0aW5hdGlvbklEKCkp
OworICAgICAgICByZXR1cm4gc2VuZChtZXNzYWdlLCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBib29sIHNlbmQoY29uc3Qg
VSYgbWVzc2FnZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKQEAgLTQ0LDMwICs0NiwyNyBAQCBw
dWJsaWM6CiAgICAgICAgIE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciA9IE1lc3NhZ2VF
bmNvZGVyOjpjcmVhdGUoVTo6cmVjZWl2ZXJOYW1lKCksIFU6Om5hbWUoKSwgZGVzdGluYXRpb25J
RCk7CiAgICAgICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlKTsKICAgICAgICAgCi0gICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxUKj4odGhpcyktPnNlbmRNZXNzYWdlKGVuY29kZXIucmVsZWFz
ZSgpKTsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCBzZW5kTWVzc2FnZShQYXNzT3duUHRyPE1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyKQotICAgIHsKLSAgICAgICAgQ29ubmVjdGlvbiogY29ubmVjdGlv
biA9IHN0YXRpY19jYXN0PFQqPih0aGlzKS0+Y29ubmVjdGlvbigpOwotICAgICAgICBBU1NFUlQo
Y29ubmVjdGlvbik7Ci0KLSAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb24tPnNlbmRNZXNzYWdlKGVu
Y29kZXIpOworICAgICAgICByZXR1cm4gc2VuZE1lc3NhZ2UoZW5jb2Rlci5yZWxlYXNlKCkpOwog
ICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgc2VuZFN5bmMoY29uc3QgVSYg
bWVzc2FnZSwgY29uc3QgdHlwZW5hbWUgVTo6UmVwbHkmIHJlcGx5LCBkb3VibGUgdGltZW91dCA9
IENvbm5lY3Rpb246Ok5vVGltZW91dCkKICAgICB7CiAgICAgICAgIENPTVBJTEVfQVNTRVJUKFU6
OmlzU3luYywgU3luY01lc3NhZ2VFeHBlY3RlZCk7Ci0gICAgICAgIHJldHVybiBzZW5kU3luYyht
ZXNzYWdlLCByZXBseSwgc3RhdGljX2Nhc3Q8VCo+KHRoaXMpLT5kZXN0aW5hdGlvbklEKCksIHRp
bWVvdXQpOworICAgICAgICByZXR1cm4gc2VuZFN5bmMobWVzc2FnZSwgcmVwbHksIG1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCksIHRpbWVvdXQpOwogICAgIH0KLSAgICAKKwogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFU+IGJvb2wgc2VuZFN5bmMoY29uc3QgVSYgbWVzc2FnZSwgY29uc3QgdHlw
ZW5hbWUgVTo6UmVwbHkmIHJlcGx5LCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBkb3VibGUgdGlt
ZW91dCA9IENvbm5lY3Rpb246Ok5vVGltZW91dCkKICAgICB7Ci0gICAgICAgIENvbm5lY3Rpb24q
IGNvbm5lY3Rpb24gPSBzdGF0aWNfY2FzdDxUKj4odGhpcyktPmNvbm5lY3Rpb24oKTsKLSAgICAg
ICAgQVNTRVJUKGNvbm5lY3Rpb24pOworICAgICAgICBBU1NFUlQobWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSk7CiAKLSAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb24tPnNlbmRTeW5jKG1lc3NhZ2Us
IHJlcGx5LCBkZXN0aW5hdGlvbklELCB0aW1lb3V0KTsKKyAgICAgICAgcmV0dXJuIG1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCktPnNlbmRTeW5jKG1lc3NhZ2UsIHJlcGx5LCBkZXN0aW5hdGlvbklE
LCB0aW1lb3V0KTsKICAgICB9CisKKyAgICBib29sIHNlbmRNZXNzYWdlKFBhc3NPd25QdHI8TWVz
c2FnZUVuY29kZXI+KTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIENvbm5lY3Rpb24qIG1lc3Nh
Z2VTZW5kZXJDb25uZWN0aW9uKCkgPSAwOworICAgIHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNl
bmRlckRlc3RpbmF0aW9uSUQoKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IGU3MmEzNzM5ZTVkMDQ5NjIy
NGZlMDQ0NDNhYzYwOGM3ZDg2NWU2NzUuLmE5YTg3NmExYWQ3ZDA2NDBkYzY1MzI4ZjA3YWMxNzM0
MGJkYzI1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCkBAIC0xMjks
NiArMTI5LDE2IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjplbmFibGVUZXJtaW5hdGlvbigpCiAgICAg
bV90ZXJtaW5hdGlvblRpbWVyLnN0YXJ0T25lU2hvdChtX3Rlcm1pbmF0aW9uVGltZW91dCk7CiB9
CiAKK0NvcmVJUEM6OkNvbm5lY3Rpb24qIENoaWxkUHJvY2Vzczo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKQoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7Cit9CisKK3VpbnQ2NF90
IENoaWxkUHJvY2Vzczo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKQoreworICAgIHJldHVy
biAwOworfQorCiB2b2lkIENoaWxkUHJvY2Vzczo6dGVybWluYXRpb25UaW1lckZpcmVkKCkKIHsK
ICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vz
cy5oCmluZGV4IDg3OGQ1YmQzNmMzMWY2NWJjMzVjNTZmZTViYWNkMWFlZWEyMTA2ODguLjc4NjU2
YWE3N2NjMWFmODhlZTA1ZTk2MjczYWI5MzY3ODIwOTAyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IENoaWxkUHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZXh0cmFJ
bml0aWFsaXphdGlvbkRhdGE7CiB9OwogCi1jbGFzcyBDaGlsZFByb2Nlc3MgOiBwcm90ZWN0ZWQg
Q29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVNlbmRl
cjxDaGlsZFByb2Nlc3M+IHsKK2NsYXNzIENoaWxkUHJvY2VzcyA6IHByb3RlY3RlZCBDb3JlSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlU2VuZGVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGlsZFByb2Nlc3MpOwogCiBwdWJsaWM6CkBAIC03MCwx
MCArNzAsNiBAQCBwdWJsaWM6CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQogCi0g
ICAgLy8gVXNlZCBieSBDb3JlSVBDOjpNZXNzYWdlU2VuZGVyCi0gICAgQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQot
ICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0KICAgICBD
b3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAmIG1lc3NhZ2VSZWNlaXZlck1hcCgpIHsgcmV0dXJu
IG1fbWVzc2FnZVJlY2VpdmVyTWFwOyB9CiAKIHByb3RlY3RlZDoKQEAgLTkxLDYgKzg3LDEwIEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlKCk7CiAKIHByaXZhdGU6Cisg
ICAgLy8gQ29yZUlQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBt
ZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCk7CisKICAgICB2b2lkIHRlcm1pbmF0aW9uVGltZXJGaXJlZCgpOwogCiAgICAg
dm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25s
b2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggZDlmMzUxNjkzNTY4NmZmYTVmMDBiZjJjMWI0ZDYwOTIz
YWNlZTFhYi4uNDQ4OGFjNDJmODZmNjhhN2ZjZjNiZDI2OTRmM2JmYTAwYTk1YWI2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKQEAgLTY3LDExICs2
Nyw2IEBAIERvd25sb2FkOjp+RG93bmxvYWQoKQogICAgIG1fZG93bmxvYWRNYW5hZ2VyLmRpZERl
c3Ryb3lEb3dubG9hZCgpOwogfQogCi1Db3JlSVBDOjpDb25uZWN0aW9uKiBEb3dubG9hZDo6Y29u
bmVjdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZG93bmxvYWRNYW5hZ2VyLmRvd25sb2Fk
UHJveHlDb25uZWN0aW9uKCk7Ci19Ci0KIHZvaWQgRG93bmxvYWQ6OmRpZFN0YXJ0KCkKIHsKICAg
ICBzZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRTdGFydChtX3JlcXVlc3QpKTsKQEAg
LTE2NSw0ICsxNjAsMTQgQEAgdm9pZCBEb3dubG9hZDo6ZGlkQ2FuY2VsKGNvbnN0IENvcmVJUEM6
OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEpCiAgICAgbV9kb3dubG9hZE1hbmFnZXIuZG93bmxv
YWRGaW5pc2hlZCh0aGlzKTsKIH0KIAorQ29yZUlQQzo6Q29ubmVjdGlvbiogRG93bmxvYWQ6Om1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9kb3dubG9hZE1hbmFnZXIu
ZG93bmxvYWRQcm94eUNvbm5lY3Rpb24oKTsKK30KKwordWludDY0X3QgRG93bmxvYWQ6Om1lc3Nh
Z2VTZW5kZXJEZXN0aW5hdGlvbklEKCkKK3sKKyAgICByZXR1cm4gbV9kb3dubG9hZElEOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Eb3dubG9hZHMvRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMv
RG93bmxvYWQuaAppbmRleCA3NzM4N2IyY2RiNDE1ODQyMGQ2NDQwZmExMzRlYmY3N2UxYjNkZTE4
Li44YWQ3MjhlZmU2M2VjMjZlZDRlNGZmOTE1M2NiMjQ2NzcwOTg5YWJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCkBAIC03MCwxNiArNzAsMTIgQEAgY2xh
c3MgV2ViUGFnZTsKIGNsYXNzIFF0RmlsZURvd25sb2FkZXI7CiAjZW5kaWYKIAotY2xhc3MgRG93
bmxvYWQgOiBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVNlbmRlcjxEb3dubG9hZD4geworY2xhc3Mg
RG93bmxvYWQgOiBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVNlbmRlciB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoRG93bmxvYWQpOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPERv
d25sb2FkPiBjcmVhdGUoRG93bmxvYWRNYW5hZ2VyJiwgdWludDY0X3QgZG93bmxvYWRJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgfkRvd25sb2FkKCk7CiAKLSAgICAv
LyBVc2VkIGJ5IE1lc3NhZ2VTZW5kZXIuCi0gICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbigpIGNvbnN0OwotICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQoKSBjb25zdCB7IHJldHVy
biBkb3dubG9hZElEKCk7IH0KLQogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0YXJ0V2l0
aEhhbmRsZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKTsKICAgICB2b2lkIGNhbmNlbCgpOwpAQCAtMTIwLDYgKzExNiwxMCBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIHVpbnQ2NF90IGRv
d25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCisgICAgLy8gQ29y
ZUlQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCk7CisKICAgICB2b2lkIHBsYXRmb3JtSW52YWxpZGF0ZSgpOwogCiAgICAgU3RyaW5nIHJldHJp
ZXZlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFt
ZSwgYm9vbCYgYWxsb3dPdmVyd3JpdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1
c3RvbVByb3RvY29sTWFuYWdlck1hYy5tbQppbmRleCA5YzdlMzNiYjBkNjBjMWM0OTU4ZWM4YjUz
ZTUxOGQwYTQ1Y2E3Y2UwLi4yNzI2ZjFjY2M1NDhkNmNjNGU2MWEzNDUyNTQwOTBjM2VhNDNiNDUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlck1h
Yy5tbQpAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0
aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtCiAjaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBBU1NFUlQocGFyYW1ldGVycy51cmxTY2hlbWVzUmVn
aXN0ZXJlZEZvckN1c3RvbVByb3RvY29scy5pc0VtcHR5KCkgfHwgIXBhcmFtZXRlcnMudXNlc05l
dHdvcmtQcm9jZXNzKTsKICAgICBpZiAocGFyYW1ldGVycy51c2VzTmV0d29ya1Byb2Nlc3MpIHsK
LSAgICAgICAgbV9jaGlsZFByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+cmVtb3ZlV29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSk7CisgICAgICAgIG1fY2hpbGRQcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5yZW1vdmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkN1c3RvbVBy
b3RvY29sTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICAgICAgbV9tZXNzYWdl
UXVldWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb25uZWN0aW9uLmgKaW5kZXggYjc3MmU0MWM1MDVmYTU0NzRhMDFhOTNkMjlhMjFkY2Ex
N2Q4OTRiYS4uNGEzNjlkOGJmODMyOTg3NmQ1Y2VmZTBlZWZiZmNkOTA2ZjZkZmJlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5oCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJDb25uZWN0aW9uIDogcHVibGljIFR5cGVkQVBJT2Jq
ZWN0PEFQSU9iamVjdDo6VHlwZUNvbm5lY3Rpb24+LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVJl
Y2VpdmVyLCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVNlbmRlcjxXZWJDb25uZWN0aW9uPiB7Citj
bGFzcyBXZWJDb25uZWN0aW9uIDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlw
ZUNvbm5lY3Rpb24+LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ29y
ZUlQQzo6TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViQ29ubmVjdGlv
bigpOwogCkBAIC00MiwxMCArNDIsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0TWVzc2FnZShj
b25zdCBTdHJpbmcmLCBBUElPYmplY3QqKTsKICAgICB2b2lkIGRpZENsb3NlKCk7CiAKLSAgICAv
LyBVc2VkIGJ5IENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXIKLSAgICB2aXJ0dWFsIENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB1aW50NjRfdCBk
ZXN0aW5hdGlvbklEKCkgY29uc3QgPSAwOwotCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgV2Vi
Q29ubmVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nl
Y0l0ZW1TaGltLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3Bw
CmluZGV4IDUxMjdjNWNkZjU3MjRkM2U1ZjdlZWUxMWNhODJmNjg1YjgwNDdjZDkuLjk1OGE3YWY0
NjJiMTIxOTdlMDRhNjk2YmUwYjFhZmZiZDYyMzY0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvU2VjSXRlbVNoaW0uY3BwCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyB1aW50NjRfdCBn
ZW5lcmF0ZVNlY0l0ZW1SZXF1ZXN0SUQoKQogc3RhdGljIFBhc3NPd25QdHI8U2VjSXRlbVJlc3Bv
bnNlRGF0YT4gc2VuZFNlY0l0ZW1SZXF1ZXN0KFNlY0l0ZW1SZXF1ZXN0RGF0YTo6VHlwZSByZXF1
ZXN0VHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5LCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRl
c1RvTWF0Y2ggPSAwKQogewogICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlU2VjSXRl
bVJlcXVlc3RJRCgpOwotICAgIGlmICghc2hhcmVkUHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpTZWNJdGVtU2hpbVByb3h5OjpTZWNJdGVtUmVxdWVzdChyZXF1ZXN0SUQsIFNl
Y0l0ZW1SZXF1ZXN0RGF0YShyZXF1ZXN0VHlwZSwgcXVlcnksIGF0dHJpYnV0ZXNUb01hdGNoKSks
IDApKQorICAgIGlmICghc2hhcmVkUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6U2VjSXRlbVNoaW1Qcm94eTo6U2VjSXRlbVJlcXVlc3QocmVxdWVzdElE
LCBTZWNJdGVtUmVxdWVzdERhdGEocmVxdWVzdFR5cGUsIHF1ZXJ5LCBhdHRyaWJ1dGVzVG9NYXRj
aCkpLCAwKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gcmVzcG9uc2VN
YXAoKS53YWl0Rm9yUmVzcG9uc2UocmVxdWVzdElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBlYjZkNWVm
YTIzYzdlMjRmYjRhNjc0MTYxNTQ0M2E1MWQ3YTE0NWY4Li5jMmM2ZTI0NTU1MDdmODg3MzlmNmQ4
YTkxMmVjNWE2Nzg3OTczYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC02MSwxOSArNjEsMTkgQEAgYm9v
bCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY28KICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUobWVzc2FnZUJv
ZHlEZWNvZGVyKTsKIH0KIAotQ29yZUlQQzo6Q29ubmVjdGlvbiogV2ViQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Y29ubmVjdGlvbigpIGNvbnN0Citib29sIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6Omhhc1ZhbGlkQ29ubmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJvY2Vzcy0+
Y29ubmVjdGlvbigpOworICAgIHJldHVybiBtX3Byb2Nlc3M7CiB9CiAKLXVpbnQ2NF90IFdlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlc3RpbmF0aW9uSUQoKSBjb25zdAorQ29yZUlQQzo6Q29u
bmVjdGlvbiogV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24o
KTsKIH0KIAotYm9vbCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNWYWxpZENvbm5lY3Rp
b24oKSBjb25zdAordWludDY0X3QgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVzc2FnZVNl
bmRlckRlc3RpbmF0aW9uSUQoKQogewotICAgIHJldHVybiBtX3Byb2Nlc3M7CisgICAgcmV0dXJu
IDA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggNDRkMTA3ZWE3YTQx
OWIxM2JkYzcwZWFlMjkxNzE5NjhmNDJjZDgyNi4uNTcxN2Y0NjI1ODllNjgxNTdlMmY0Njk3ZTlh
YWI2MTgyNTdlMmNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00NiwxMCArNDYsMTIgQEAgcHJpdmF0ZToKICAg
ICAvLyBXZWJDb25uZWN0aW9uCiAgICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYsIEFQSU9iamVjdCopIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQ
dHI8QVBJT2JqZWN0PiYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdWludDY0X3QgZGVz
dGluYXRpb25JRCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBoYXNWYWxpZENv
bm5lY3Rpb24oKSBjb25zdCBPVkVSUklERTsKIAorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VTZW5k
ZXIKKyAgICB2aXJ0dWFsIENvcmVJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpIE9WRVJSSURFOworCiAgICAgV2ViUHJvY2Vzc1Byb3h5KiBtX3Byb2Nlc3M7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZWVkMDFmNzFlNDNkNDRlNGViMDZkZjhiOWVlNmQzYWE5NTc2OTNiNi4uNDkzOTJh
MTkxYTQ0NmNlOTdjZDBkNzM1NzU2NmU5YWNlNzhlMWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTcyLDYgKzE3Miw3IEBA
CiAJCTFBNjQyNTY4MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNjQyNTY2MTJERTQyRUMwMENB
QUUyQyAvKiBCYWNraW5nU3RvcmUuaCAqLzsgfTsKIAkJMUE2NDI1NjkxMkRFNDJFQzAwQ0FBRTJD
IC8qIEJhY2tpbmdTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTY0MjU2NzEyREU0MkVDMDBDQUFFMkMgLyogQmFja2luZ1N0b3JlLmNwcCAq
LzsgfTsKIAkJMUE2NDI5MkQxMkRFNUY5ODAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZU1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNjQyOTJDMTJE
RTVGOTgwMENBQUUyQyAvKiBCYWNraW5nU3RvcmVNYWMubW0gKi87IH07CisJCTFBNjUwNkQyMTc1
MDE1RTcwMDE3NDUxOCAvKiBNZXNzYWdlU2VuZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNjUwNkQxMTc1MDE1RTcwMDE3NDUxOCAvKiBNZXNz
YWdlU2VuZGVyLmNwcCAqLzsgfTsKIAkJMUE2RjlGOTAxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1h
bmRMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTZGOUY4RTExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExpbmUuaCAqLzsgfTsKIAkJMUE2RjlG
QjcxMUUxNDA4NTAwREIxMzcxIC8qIENvbW1hbmRMaW5lTWFjLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAv
KiBDb21tYW5kTGluZU1hYy5jcHAgKi87IH07CiAJCTFBNkZCN0FFMTFFNjRCNjgwMERCMTM3MSAv
KiBQbHVnaW5WaWV3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBNkZCN0FDMTFFNjRCNjgwMERCMTM3MSAvKiBQbHVnaW5WaWV3LmNwcCAqLzsgfTsK
QEAgLTE2MDAsNiArMTYwMSw3IEBACiAJCTFBNjQyNTY2MTJERTQyRUMwMENBQUUyQyAvKiBCYWNr
aW5nU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja2luZ1N0b3Jl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjQyNTY3MTJERTQyRUMwMENBQUUy
QyAvKiBCYWNraW5nU3RvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQmFja2luZ1N0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2NDI5
MkMxMkRFNUY5ODAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJhY2tpbmdTdG9yZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUE2NTA2RDExNzUwMTVFNzAwMTc0NTE4IC8qIE1lc3NhZ2VTZW5k
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2FnZVNlbmRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNkY5RjhFMTFFMTNFRkMwMERC
MTM3MSAvKiBDb21tYW5kTGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b21tYW5kTGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZGOUZCNjExRTE0
MDg1MDBEQjEzNzEgLyogQ29tbWFuZExpbmVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ29tbWFuZExpbmVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQTZGQjdBQzExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5WaWV3LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NTUsNiArMzQ1Nyw3IEBACiAJCQkJMUEzRUVEMTExNjFB
NTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovLAogCQkJCTFBM0VFRDBDMTYxQTUz
NTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwICovLAogCQkJCTFBM0VFRDBEMTYx
QTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLywKKwkJCQkxQTY1MDZEMTE3
NTAxNUU3MDAxNzQ1MTggLyogTWVzc2FnZVNlbmRlci5jcHAgKi8sCiAJCQkJMUExMTlBOTQxMjdC
Nzk2MjAwQTlFQ0IxIC8qIE1lc3NhZ2VTZW5kZXIuaCAqLywKIAkJCQkxQTEzQkVCMTE2MzVBOUM4
MDBGMTlDMDMgLyogU3RyaW5nUmVmZXJlbmNlLmNwcCAqLywKIAkJCQkxQTEzQkVCMjE2MzVBOUM4
MDBGMTlDMDMgLyogU3RyaW5nUmVmZXJlbmNlLmggKi8sCkBAIC02NzUyLDYgKzY3NTUsNyBAQAog
CQkJCTFBMjRCRjNBMTIwODk2QTYwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnlNYWMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTFFREZEQTkxNjI4ODZBQzAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclBy
b2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFREZEQjAxNjI4ODk4MjAwMzlFQ0RBIC8q
IFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMUE2NTA2RDIxNzUwMTVFNzAwMTc0NTE4IC8qIE1lc3NhZ2VTZW5kZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTFFREZEQTgxNjI4ODY5OTAwMzlFQ0RBIC8qIFNoYXJlZFdvcmtlclBy
b2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODM5NTE2QjQ2MDgzMDBBMjc4RkUg
LyogU2hhcmVkV29ya2VyUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMUVERkUx
MjE2MjhDRkIyMDAzOUVDREEgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggYzMyMGM2YmYxNDhj
ODk5ZjBiYTg1ODQzMjRmY2FjZmUxOWUxNGNjYi4uYWE0MmY1YTZkZGYwNTcyOGRhM2E5ZDEwMmVm
YmU5NGRiOTM0ZDc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNjIsNyAr
NjIsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBh
Z2UqIHBhZ2UpCiAgICAgbV9wYWdlU2V0LmFkZChwYWdlKTsKICAgICAKICAgICBpZiAod2FzRW1w
dHkpCi0gICAgICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6U3RhcnRVcGRhdGluZygpLCAwKTsKKyAgICAgICAgbV9w
cm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eTo6U3RhcnRVcGRhdGluZygpLCAwKTsKIH0KIAogdm9pZCBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCkBAIC03
MCw3ICs3MCw3IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjp1bnJlZ2lzdGVyV2ViUGFn
ZShXZWJQYWdlKiBwYWdlKQogICAgIG1fcGFnZVNldC5yZW1vdmUocGFnZSk7CiAKICAgICBpZiAo
bV9wYWdlU2V0LmlzRW1wdHkoKSkKLSAgICAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpTdG9wVXBkYXRpbmcoKSwg
MCk7CisgICAgICAgIG1fcHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlN0b3BVcGRhdGluZygpLCAwKTsK
IH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEmIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQ
cm94eS5jcHAKaW5kZXggMGEwYjQ5ZTM1ODQ3MjNlODQ1NTdiZGZmNTJkNjM1N2M1ZjBmNTY1Yi4u
ZDQwYWMzMzQ0ZWQ5Y2Y3NzRlNDYwYjE3MTczZTAyYWYxZmIxNGExNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25E
YXRhYmFzZVByb3h5LmNwcApAQCAtNjQsMTggKzY0LDE4IEBAIHZvaWQgV2ViSWNvbkRhdGFiYXNl
UHJveHk6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogCiB2b2lkIFdlYkljb25EYXRhYmFzZVBy
b3h5OjpyZXRhaW5JY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCiB7Ci0gICAg
bV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkljb25EYXRhYmFzZTo6
UmV0YWluSWNvbkZvclBhZ2VVUkwocGFnZVVSTCksIDApOworICAgIG1fcHJvY2Vzcy0+cGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSWNvbkRhdGFiYXNlOjpSZXRh
aW5JY29uRm9yUGFnZVVSTChwYWdlVVJMKSwgMCk7CiB9CiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNl
UHJveHk6OnJlbGVhc2VJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCiB7Ci0g
ICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkljb25EYXRhYmFz
ZTo6UmVsZWFzZUljb25Gb3JQYWdlVVJMKHBhZ2VVUkwpLCAwKTsKKyAgICBtX3Byb2Nlc3MtPnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkljb25EYXRhYmFzZTo6
UmVsZWFzZUljb25Gb3JQYWdlVVJMKHBhZ2VVUkwpLCAwKTsKIH0KIAogSW1hZ2UqIFdlYkljb25E
YXRhYmFzZVByb3h5OjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFn
ZVVSTCwgY29uc3QgSW50U2l6ZSYgLypzaXplKi8pCiB7CiAgICAgQ29yZUlQQzo6RGF0YVJlZmVy
ZW5jZSByZXN1bHQ7Ci0gICAgaWYgKCFtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYkljb25EYXRhYmFzZTo6U3luY2hyb25vdXNJY29uRGF0YUZvclBhZ2VVUkwo
cGFnZVVSTCksIE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJhc2U6OlN5bmNocm9ub3VzSWNvbkRhdGFG
b3JQYWdlVVJMOjpSZXBseShyZXN1bHQpLCAwKSkKKyAgICBpZiAoIW1fcHJvY2Vzcy0+cGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYkljb25EYXRhYmFzZTo6
U3luY2hyb25vdXNJY29uRGF0YUZvclBhZ2VVUkwocGFnZVVSTCksIE1lc3NhZ2VzOjpXZWJJY29u
RGF0YWJhc2U6OlN5bmNocm9ub3VzSWNvbkRhdGFGb3JQYWdlVVJMOjpSZXBseShyZXN1bHQpLCAw
KSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCiAgICAgLy8gRklYTUU6IFJldHVybiBJbWFnZSBj
cmVhdGVkIHdpdGggdGhlIGFib3ZlIGRhdGEuCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBXZWJJ
Y29uRGF0YWJhc2VQcm94eTo6bG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIGlj
b25VUkwsIFBhc3NSZWYKICAgICB1aW50NjRfdCBpZCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7
CiAgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJhY2tzLmFkZChpZCwgY2FsbGJhY2spOwogICAg
IAotICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJY29uRGF0
YWJhc2U6OkdldExvYWREZWNpc2lvbkZvckljb25VUkwoaWNvblVSTCwgaWQpLCAwKTsKKyAgICBt
X3Byb2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYklj
b25EYXRhYmFzZTo6R2V0TG9hZERlY2lzaW9uRm9ySWNvblVSTChpY29uVVJMLCBpZCksIDApOwog
fQogCiB2b2lkIFdlYkljb25EYXRhYmFzZVByb3h5OjpyZWNlaXZlZEljb25Mb2FkRGVjaXNpb24o
aW50IGRlY2lzaW9uLCB1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtMTMwLDEzICsxMzAsMTMgQEAg
dm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6aWNvbkRhdGFGb3JJY29uVVJMKGNvbnN0IFN0cmlu
ZyYgLyppY29uVVJMKi8sIFBhc3NSZWYKIAogdm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6c2V0
SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHBh
Z2VVUkwpCiB7Ci0gICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
Ykljb25EYXRhYmFzZTo6U2V0SWNvblVSTEZvclBhZ2VVUkwoaWNvblVSTCwgcGFnZVVSTCksIDAp
OworICAgIG1fcHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViSWNvbkRhdGFiYXNlOjpTZXRJY29uVVJMRm9yUGFnZVVSTChpY29uVVJMLCBwYWdlVVJM
KSwgMCk7CiB9CiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnNldEljb25EYXRhRm9ySWNv
blVSTChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gaWNvbkRhdGEsIGNvbnN0IFN0cmluZyYgaWNv
blVSTCkKIHsKICAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCB1aW50OF90Kj4oaWNvbkRhdGEgPyBpY29uRGF0YS0+ZGF0YSgpIDogMCksIGljb25E
YXRhID8gaWNvbkRhdGEtPnNpemUoKSA6IDApOwotICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJhc2U6OlNldEljb25EYXRhRm9ySWNvblVSTChk
YXRhLCBpY29uVVJMKSwgMCk7CisgICAgbV9wcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJhc2U6OlNldEljb25EYXRhRm9ySWNvblVS
TChkYXRhLCBpY29uVVJMKSwgMCk7CiB9CiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnVy
bEltcG9ydEZpbmlzaGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggN2I1MjM5NzNmOTQ4
ZGQ3OTA4NGQxMDYwYTE3YzcwODAzNTJlMTM1OS4uZWY0YTgyZjZlNWQwN2ZjZjdkOTg3NjU4NjA1
NDVlOWYyMWRlYTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTExMiw3ICsxMTIsNyBA
QCB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0TWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VO
YW1lLCBBUElPYmplY3QqIG1lc3NhZ2VCbwogICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlTmFt
ZSk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVy
KG1lc3NhZ2VCb2R5KSk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmRNZXNzYWdlKGVuY29kZXIucmVsZWFzZSgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kTWVzc2FnZShlbmNvZGVyLnJlbGVhc2Uo
KSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3RTeW5jaHJvbm91c01lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSwgUmVmUHRyPEFQ
SU9iamVjdD4mIHJldHVybkRhdGEpCkBAIC0xMjAsMTEgKzEyMCwxMSBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpwb3N0U3luY2hyb25vdXNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUs
IEFQSU9iamVjdAogICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VE
ZWNvZGVyKHJldHVybkRhdGEpOwogCiAgICAgdWludDY0X3Qgc3luY1JlcXVlc3RJRDsKLSAgICBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb25uZWN0aW9uKCktPmNyZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihXZWJDb250ZXh0TGVn
YWN5TWVzc2FnZXM6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgV2ViQ29udGV4dExlZ2FjeU1lc3Nh
Z2VzOjpwb3N0U3luY2hyb25vdXNNZXNzYWdlTWVzc2FnZU5hbWUoKSwgMCwgc3luY1JlcXVlc3RJ
RCk7CisgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gV2ViUHJv
Y2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+Y3JlYXRlU3luY01lc3Nh
Z2VFbmNvZGVyKFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBXZWJDb250ZXh0TGVnYWN5TWVzc2FnZXM6OnBvc3RTeW5jaHJvbm91c01lc3NhZ2VNZXNzYWdl
TmFtZSgpLCAwLCBzeW5jUmVxdWVzdElEKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobWVzc2FnZU5h
bWUpOwogICAgIGVuY29kZXItPmVuY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rl
cihtZXNzYWdlQm9keSkpOwogCi0gICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyPiBy
ZXBseURlY29kZXIgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5j
TWVzc2FnZShzeW5jUmVxdWVzdElELCBlbmNvZGVyLnJlbGVhc2UoKSwgQ29yZUlQQzo6Q29ubmVj
dGlvbjo6Tm9UaW1lb3V0KTsKKyAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZURlY29kZXI+IHJl
cGx5RGVjb2RlciA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRTeW5jTWVzc2FnZShzeW5jUmVxdWVzdElELCBlbmNvZGVyLnJlbGVhc2UoKSwgQ29y
ZUlQQzo6Q29ubmVjdGlvbjo6Tm9UaW1lb3V0KTsKICAgICBpZiAoIXJlcGx5RGVjb2RlciB8fCAh
cmVwbHlEZWNvZGVyLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKSB7CiAgICAgICAgIHJldHVybkRh
dGEgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCAzMzkxOGY2
YzU2M2E3MmVmNmE0ODJjZjUxNjQ4OWUzOTUxMDJjMmI1Li41MzU3YmJjZjQ0MDA0Y2QzYTUyNDc3
ZTU2MzZkNWFiNzJjZDI0Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTU5LDEyICs1OSwxMiBAQCBX
ZWJSZXNvdXJjZUxvYWRlcjo6fldlYlJlc291cmNlTG9hZGVyKCkKIHsKIH0KIAotQ29yZUlQQzo6
Q29ubmVjdGlvbiogV2ViUmVzb3VyY2VMb2FkZXI6OmNvbm5lY3Rpb24oKSBjb25zdAorQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogV2ViUmVzb3VyY2VMb2FkZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkKIHsKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24o
KS0+Y29ubmVjdGlvbigpOwogfQogCi11aW50NjRfdCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGVzdGlu
YXRpb25JRCgpIGNvbnN0Cit1aW50NjRfdCBXZWJSZXNvdXJjZUxvYWRlcjo6bWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQoKQogewogICAgIHJldHVybiBtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLmgKaW5kZXggNGNlMDhlZjQyM2E5MmU2Zjg1ODM3MzM0NDBjZjZjMzY3YWUx
YWE0OS4uYjM3ZTliMGYwOTI4MDkxNWZhNWIyNGY1MDk2NmMwM2QwOWQ2YjAyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
LmgKQEAgLTUzLDE2ICs1MywxMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvOwogdHlwZWRlZiB1aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVy
OwogCi1jbGFzcyBXZWJSZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlJlc291
cmNlTG9hZGVyPiwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXI8V2ViUmVzb3VyY2VMb2Fk
ZXI+IHsKK2NsYXNzIFdlYlJlc291cmNlTG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUmVz
b3VyY2VMb2FkZXI+LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShQYXNzUmVmUHRy
PFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPik7CiAKICAgICB+V2ViUmVzb3VyY2VMb2FkZXIoKTsK
IAotICAgIC8vIFVzZWQgYnkgTWVzc2FnZVNlbmRlci4KLSAgICBDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uKCkgY29uc3Q7Ci0gICAgdWludDY0X3QgZGVzdGluYXRpb25JRCgpIGNvbnN0
OwotCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlTG9h
ZGVyLmdldCgpOyB9CkBAIC03Miw2ICs2OCwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdl
YlJlc291cmNlTG9hZGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+KTsKIAor
ICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICB2aXJ0dWFsIENvcmVJUEM6OkNvbm5l
Y3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1
aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIE9WRVJSSURFOworCiAgICAgdm9p
ZCBjYW5jZWxSZXNvdXJjZUxvYWRlcigpOwogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5j
cHAKaW5kZXggOTU3NTBlMTk2Njk0MzQ1NzZkOWU2YWE5MDM1MDZhOWMxZTIyM2E0OC4uNTQ0NmU4
NGZhOWM0YWMxMDYyNjBjZGU2ODNiNmJjOGUwMzc2ZTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcApAQCAtMTUzLDkgKzE1Myw5IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkK
ICAgICBpdC0+dmFsdWUuYXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKIAogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQotICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3Rp
ZmljYXRpb24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uVVJMKCkuc3RyaW5nKCksIG5vdGlm
aWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigp
LCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4o
KS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5wYWdlSUQoKSk7CisgICAgbV9w
cm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRp
b24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uVVJMKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlv
bi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3Rp
ZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9T
dHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5wYWdlSUQoKSk7CiAjZWxzZQotICAgIG1f
cHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dO
b3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwg
bm90aWZpY2F0aW9uLT5pY29uVVJMKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+cmVwbGFjZUlk
KCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRp
b24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmco
KSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5wYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dO
b3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwg
bm90aWZpY2F0aW9uLT5pY29uVVJMKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+cmVwbGFjZUlk
KCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRp
b24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmco
KSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5wYWdlSUQoKSk7CiAjZW5kaWYKICAgICByZXR1cm4g
dHJ1ZTsKICNlbHNlCkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpjYW5jZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAg
ICAgaWYgKCFub3RpZmljYXRpb25JRCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fcHJv
Y2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk6OkNhbmNlbChub3RpZmljYXRpb25JRCksIDApOworICAgIG1fcHJvY2Vzcy0+cGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OjpDYW5jZWwobm90aWZpY2F0aW9uSUQpLCAwKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKG5vdGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpAQCAtMTkwLDcgKzE5
MCw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgICAgIHJldHVybjsKICAgICAKICAg
ICBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMgPSBpdC0+dmFsdWU7Ci0gICAgbV9w
cm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvbklEcyksIDApOworICAgIG1f
cHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5OjpDbGVhck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uSURz
KSwgMCk7CiAgICAgc2l6ZV90IGNvdW50ID0gbm90aWZpY2F0aW9uSURzLnNpemUoKTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgUmVmUHRyPE5vdGlm
aWNhdGlvbj4gbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25JRE1hcC50YWtlKG5vdGlmaWNh
dGlvbklEc1tpXSk7CkBAIC0yMTYsNyArMjE2LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLAog
CiAgICAgbV9ub3RpZmljYXRpb25JRE1hcC5yZW1vdmUobm90aWZpY2F0aW9uSUQpOwogICAgIHJl
bW92ZU5vdGlmaWNhdGlvbkZyb21Db250ZXh0TWFwKG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRp
b24pOwotICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9u
SUQpLCAwKTsKKyAgICBtX3Byb2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6RGlkRGVzdHJveU5vdGlmaWNh
dGlvbihub3RpZmljYXRpb25JRCksIDApOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90aWZp
Y2F0aW9uKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGU5OTg5ZWM4OTNmYWQ2
ZjAxZDA1ODYzZTllYmMzZWNlMGI5NzIyMjkuLmExMjU1MjA3NWZkM2NmNzlmYTg3OTM1ZDQyNTQ1
NDMyYjY4MGViODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tCkBAIC04ODEsNyArODgxLDcgQEAgdm9pZCBQREZQbHVnaW46Ondy
aXRlSXRlbXNUb1Bhc3RlYm9hcmQoTlNBcnJheSAqaXRlbXMsIE5TQXJyYXkgKnR5cGVzKQogICAg
IGZvciAoTlNTdHJpbmcgKnR5cGUgaW4gdHlwZXMpCiAgICAgICAgIHBhc3RlYm9hcmRUeXBlcy5h
cHBlbmQodHlwZSk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYkNvbnRleHQ6OlNldFBhc3RlYm9hcmRUeXBlcyhOU0dlbmVyYWxQYm9h
cmQsIHBhc3RlYm9hcmRUeXBlcyksIDApOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkNvbnRleHQ6OlNldFBhc3Rl
Ym9hcmRUeXBlcyhOU0dlbmVyYWxQYm9hcmQsIHBhc3RlYm9hcmRUeXBlcyksIDApOwogCiAgICAg
Zm9yIChOU1VJbnRlZ2VyIGkgPSAwLCBjb3VudCA9IGl0ZW1zLmNvdW50OyBpIDwgY291bnQ7ICsr
aSkgewogICAgICAgICBOU1N0cmluZyAqdHlwZSA9IFt0eXBlcyBvYmplY3RBdEluZGV4OmldOwpA
QCAtODk1LDcgKzg5NSw3IEBAIHZvaWQgUERGUGx1Z2luOjp3cml0ZUl0ZW1zVG9QYXN0ZWJvYXJk
KE5TQXJyYXkgKml0ZW1zLCBOU0FycmF5ICp0eXBlcykKIAogICAgICAgICBpZiAoW3R5cGUgaXNF
cXVhbFRvU3RyaW5nOk5TU3RyaW5nUGJvYXJkVHlwZV0gfHwgW3R5cGUgaXNFcXVhbFRvU3RyaW5n
Ok5TUGFzdGVib2FyZFR5cGVTdHJpbmddKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNTdHJp
bmc+IHBsYWluVGV4dFN0cmluZyA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhE
YXRhOmRhdGEgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddKTsKLSAgICAgICAgICAgIFdl
YlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4
dDo6U2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5cGUoTlNHZW5lcmFsUGJvYXJkLCB0eXBlLCBwbGFp
blRleHRTdHJpbmcuZ2V0KCkpLCAwKTsKKyAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkNvbnRleHQ6OlNl
dFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKE5TR2VuZXJhbFBib2FyZCwgdHlwZSwgcGxhaW5UZXh0
U3RyaW5nLmdldCgpKSwgMCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSk7CiAK
QEAgLTkwNiw3ICs5MDYsNyBAQCB2b2lkIFBERlBsdWdpbjo6d3JpdGVJdGVtc1RvUGFzdGVib2Fy
ZChOU0FycmF5ICppdGVtcywgTlNBcnJheSAqdHlwZXMpCiAgICAgICAgICAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShidWZmZXItPnNp
emUoKSk7CiAgICAgICAgICAgICBtZW1jcHkoc2hhcmVkTWVtb3J5LT5kYXRhKCksIGJ1ZmZlci0+
ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7CiAgICAgICAgICAgICBzaGFyZWRNZW1vcnktPmNyZWF0
ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOwotICAgICAgICAgICAgV2Vi
UHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb250ZXh0
OjpTZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShOU0dlbmVyYWxQYm9hcmQsIHR5cGUsIGhhbmRs
ZSwgYnVmZmVyLT5zaXplKCkpLCAwKTsKKyAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkNvbnRleHQ6OlNl
dFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKE5TR2VuZXJhbFBib2FyZCwgdHlwZSwgaGFuZGxlLCBi
dWZmZXItPnNpemUoKSksIDApOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAppbmRleCAxZDMxZDdhMDFlMTZlZDdjMjIwZTUzYjU0YjBi
NzhlMzQ1OGQyYTg5Li42NDJkYjE1NmFiZDFmYWVhODg0OTg2NTcxNzU5ODRjZmRkZGUxYmI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcApAQCAtNzAsNyArNzAsNyBA
QCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
OjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdAogCiAgICAgQ29yZUlQQzo6QXR0YWNobWVudCBlbmNv
ZGVkQ29ubmVjdGlvbklkZW50aWZpZXI7CiAgICAgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c0lu
aXRpYWxpemF0aW9uOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbihwbHVnaW5Qcm9jZXNzVG9rZW4pLAorICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVk
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ocGx1Z2luUHJvY2Vzc1Rva2VuKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5
KGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllciwgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFs
aXphdGlvbiksIDApKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKaW5kZXggMzgyNTYzYjc1
Mzk2MTljYzk5Yjg1NGI0ZDVhZTI3MmE0ZTYwYmRmZC4uZDgxMTVkZTcxZTUxOWNjM2ZkYmI5NDk0
NjNiMGU1MGI3NDAyMGM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC02OCwxNSArNjgsMTUgQEAgU3RvcmFnZUFy
ZWFNYXA6OlN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VOYW1lc3BhY2VJbXBsKiBzdG9yYWdlTmFtZXNw
YWNlLCBQYXNzUmVmUHQKICAgICAsIG1faGFzUGVuZGluZ0dldFZhbHVlcyhmYWxzZSkKIHsKICAg
ICBpZiAobV9zdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpCi0gICAgICAgIFdlYlByb2Nlc3M6
OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXI6OkNy
ZWF0ZUxvY2FsU3RvcmFnZU1hcChtX3N0b3JhZ2VNYXBJRCwgc3RvcmFnZU5hbWVzcGFjZS0+c3Rv
cmFnZU5hbWVzcGFjZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2lu
KG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCkpKSwgMCk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5h
Z2VyOjpDcmVhdGVMb2NhbFN0b3JhZ2VNYXAobV9zdG9yYWdlTWFwSUQsIHN0b3JhZ2VOYW1lc3Bh
Y2UtPnN0b3JhZ2VOYW1lc3BhY2VJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0
eU9yaWdpbihtX3NlY3VyaXR5T3JpZ2luLmdldCgpKSksIDApOwogICAgIGVsc2UKLSAgICAgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdl
TWFuYWdlcjo6Q3JlYXRlU2Vzc2lvblN0b3JhZ2VNYXAobV9zdG9yYWdlTWFwSUQsIHN0b3JhZ2VO
YW1lc3BhY2UtPnN0b3JhZ2VOYW1lc3BhY2VJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21T
ZWN1cml0eU9yaWdpbihtX3NlY3VyaXR5T3JpZ2luLmdldCgpKSksIDApOworICAgICAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpTdG9yYWdlTWFuYWdlcjo6Q3JlYXRlU2Vzc2lvblN0b3JhZ2VNYXAobV9zdG9yYWdlTWFwSUQs
IHN0b3JhZ2VOYW1lc3BhY2UtPnN0b3JhZ2VOYW1lc3BhY2VJRCgpLCBTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbihtX3NlY3VyaXR5T3JpZ2luLmdldCgpKSksIDApOwogICAg
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3RvcmFn
ZUFyZWFNYXA6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9zdG9yYWdlTWFwSUQsIHRoaXMpOwog
fQogCiBTdG9yYWdlQXJlYU1hcDo6flN0b3JhZ2VBcmVhTWFwKCkKIHsKLSAgICBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyOjpE
ZXN0cm95U3RvcmFnZU1hcChtX3N0b3JhZ2VNYXBJRCksIDApOworICAgIFdlYlByb2Nlc3M6OnNo
YXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VN
YW5hZ2VyOjpEZXN0cm95U3RvcmFnZU1hcChtX3N0b3JhZ2VNYXBJRCksIDApOwogICAgIFdlYlBy
b2Nlc3M6OnNoYXJlZCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3RvcmFnZUFy
ZWFNYXA6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9zdG9yYWdlTWFwSUQpOwogfQogCkBAIC0x
MTgsNyArMTE4LDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6c2V0SXRlbShGcmFtZSogc291cmNl
RnJhbWUsIFN0b3JhZ2VBcmVhSW1wbCogc291cmNlQXJlYSwgY28KIAogICAgIG1fcGVuZGluZ1Zh
bHVlQ2hhbmdlcy5hZGQoa2V5KTsKIAotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXI6OlNldEl0ZW0obV9zdG9yYWdlTWFw
SUQsIHNvdXJjZUFyZWEtPnN0b3JhZ2VBcmVhSUQoKSwgbV9jdXJyZW50U2VlZCwga2V5LCB2YWx1
ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFn
ZU1hbmFnZXI6OlNldEl0ZW0obV9zdG9yYWdlTWFwSUQsIHNvdXJjZUFyZWEtPnN0b3JhZ2VBcmVh
SUQoKSwgbV9jdXJyZW50U2VlZCwga2V5LCB2YWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCkt
PnVybCgpKSwgMCk7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFNYXA6OnJlbW92ZUl0ZW0oV2ViQ29y
ZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUFyZWEsIGNvbnN0
IFN0cmluZyYga2V5KQpAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OnJl
bW92ZUl0ZW0oV2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNv
CiAKICAgICBtX3BlbmRpbmdWYWx1ZUNoYW5nZXMuYWRkKGtleSk7CiAKLSAgICBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyOjpS
ZW1vdmVJdGVtKG1fc3RvcmFnZU1hcElELCBzb3VyY2VBcmVhLT5zdG9yYWdlQXJlYUlEKCksIG1f
Y3VycmVudFNlZWQsIGtleSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpKSwgMCk7Cisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6U3RvcmFnZU1hbmFnZXI6OlJlbW92ZUl0ZW0obV9zdG9yYWdlTWFwSUQsIHNvdXJj
ZUFyZWEtPnN0b3JhZ2VBcmVhSUQoKSwgbV9jdXJyZW50U2VlZCwga2V5LCBzb3VyY2VGcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCkpLCAwKTsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYU1hcDo6Y2xlYXIo
V2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUFyZWEp
CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6Y2xlYXIoV2ViQ29yZTo6
RnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUEKIAogICAgIG1faGFz
UGVuZGluZ0NsZWFyID0gdHJ1ZTsKICAgICBtX3N0b3JhZ2VNYXAgPSBTdG9yYWdlTWFwOjpjcmVh
dGUobV9xdW90YUluQnl0ZXMpOwotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXI6OkNsZWFyKG1fc3RvcmFnZU1hcElELCBz
b3VyY2VBcmVhLT5zdG9yYWdlQXJlYUlEKCksIG1fY3VycmVudFNlZWQsIHNvdXJjZUZyYW1lLT5k
b2N1bWVudCgpLT51cmwoKSksIDApOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyOjpDbGVhciht
X3N0b3JhZ2VNYXBJRCwgc291cmNlQXJlYS0+c3RvcmFnZUFyZWFJRCgpLCBtX2N1cnJlbnRTZWVk
LCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkpLCAwKTsKIH0KIAogYm9vbCBTdG9yYWdl
QXJlYU1hcDo6Y29udGFpbnMoY29uc3QgU3RyaW5nJiBrZXkpCkBAIC0xNzIsNyArMTcyLDcgQEAg
dm9pZCBTdG9yYWdlQXJlYU1hcDo6bG9hZFZhbHVlc0lmTmVlZGVkKCkKICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgdXNlIGEgc3BlY2lhbCBzZW5kU3luYyBmbGFnIHRvIGluZGljYXRlIHRoYXQg
d2UgZG9uJ3Qgd2FudCB0byBwcm9jZXNzIGluY29taW5nIG1lc3NhZ2VzIHdoaWxlIHdhaXRpbmcg
Zm9yIGEgcmVwbHkuCiAgICAgLy8gKFRoaXMgZmxhZyBkb2VzIG5vdCB5ZXQgZXhpc3QpLiBTaW5j
ZSBsb2FkVmFsdWVzSWZOZWVkZWQoKSBlbmRzIHVwIGJlaW5nIGNhbGxlZCBmcm9tIHdpdGhpbiBK
YXZhU2NyaXB0IGNvZGUsIHByb2Nlc3NpbmcgaW5jb21pbmcgc3luY2hyb25vdXMgbWVzc2FnZXMK
ICAgICAvLyBjb3VsZCBsZWFkIHRvIHdlaXJkIHJlZW50cmVuY3kgYnVncyBvdGhlcndpc2UuCi0g
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
U3RvcmFnZU1hbmFnZXI6OkdldFZhbHVlcyhtX3N0b3JhZ2VNYXBJRCwgbV9jdXJyZW50U2VlZCks
IE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlcjo6R2V0VmFsdWVzOjpSZXBseSh2YWx1ZXMpLCAwKTsK
KyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXI6OkdldFZhbHVlcyhtX3N0b3JhZ2VNYXBJRCwg
bV9jdXJyZW50U2VlZCksIE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlcjo6R2V0VmFsdWVzOjpSZXBs
eSh2YWx1ZXMpLCAwKTsKIAogICAgIG1fc3RvcmFnZU1hcCA9IFN0b3JhZ2VNYXA6OmNyZWF0ZSht
X3F1b3RhSW5CeXRlcyk7CiAgICAgbV9zdG9yYWdlTWFwLT5pbXBvcnRJdGVtcyh2YWx1ZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3MuY3BwCmluZGV4IDYxMjM3YmU3YTM5YTk0NzJiMzdjYTQ5ODc3YTM3OTEyYmY0MTJiNDMu
LmU4ZjhkMmI0YTkwZGJmMGRhNDI1MzI1ZDc0ZjdmMGY3ZGRjNmNiODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAK
QEAgLTYzLDE5ICs2MywxOSBAQCBib29sIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZAogICAgIHJldHVybiBk
ZWNvZGVyLmRlY29kZShtZXNzYWdlQm9keURlY29kZXIpOwogfQogCi1Db3JlSVBDOjpDb25uZWN0
aW9uKiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNvbm5lY3Rpb24oKSBjb25zdAorYm9vbCBX
ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6Omhhc1ZhbGlkQ29ubmVjdGlvbigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpOworICAgIHJldHVybiBtX3Byb2Nlc3M7
CiB9CiAKLXVpbnQ2NF90IFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVzdGluYXRpb25JRCgp
IGNvbnN0CitDb3JlSVBDOjpDb25uZWN0aW9uKiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6Om1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9w
cm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOwogfQogCi1ib29sIFdlYkNvbm5lY3Rp
b25Ub1VJUHJvY2Vzczo6aGFzVmFsaWRDb25uZWN0aW9uKCkgY29uc3QKK3VpbnQ2NF90IFdlYkNv
bm5lY3Rpb25Ub1VJUHJvY2Vzczo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKQogewotICAg
IHJldHVybiBtX3Byb2Nlc3M7CisgICAgcmV0dXJuIDA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRv
VUlQcm9jZXNzLmgKaW5kZXggYTc4ZDgyYzk4YjBiMDQ1YjM1MzExZTBmNzQ0ZTNlYzYwNGEzMzNm
Ny4uMmE5MTMxZDc0MDE2M2IwNDk5YTk1YzM2MTc4OGExOTNhYTU4MGQyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCkBA
IC00NCwxMCArNDQsMTIgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb25uZWN0aW9uCiAgICAgdmly
dHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYsIEFQ
SU9iamVjdCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdWludDY0X3QgZGVzdGluYXRpb25JRCgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBoYXNWYWxpZENvbm5lY3Rpb24oKSBjb25zdCBPVkVSUklERTsK
IAorICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICB2aXJ0dWFsIENvcmVJUEM6OkNv
bm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIE9WRVJSSURFOworCiAgICAg
V2ViUHJvY2VzcyogbV9wcm9jZXNzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4
IGU4YTlhMjhkZGIwZjkwYmViODVjYTQ3ZTIyNzljYzNlMDExMmY1OGEuLmI4YzRjY2UxZTQ2MWU2
OTgyODE2ZDE4NzlkMjE0YzVmYTU2ZmQ0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTEyMSw3ICsxMjEsNyBAQCBGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkK
IAogICAgIEZsb2F0UmVjdCBuZXdXaW5kb3dGcmFtZTsKIAotICAgIGlmICghV2ViUHJvY2Vzczo6
c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpH
ZXRXaW5kb3dGcmFtZSgpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZTo6
UmVwbHkobmV3V2luZG93RnJhbWUpLCBtX3BhZ2UtPnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlBy
b2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRvd0ZyYW1lKCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkdldFdpbmRvd0ZyYW1lOjpSZXBseShuZXdXaW5kb3dGcmFtZSksIG1fcGFnZS0+cGFnZUlE
KCkpKQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAKICAgICByZXR1cm4gbmV3V2luZG93
RnJhbWU7CkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRG
cmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKQogICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJG
cmFtZUxvYWRlckNsaWVudCA9IGZyYW1lID8gdG9XZWJGcmFtZUxvYWRlckNsaWVudChmcmFtZS0+
bG9hZGVyKCktPmNsaWVudCgpKSA6IDA7CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gd2ViRnJh
bWVMb2FkZXJDbGllbnQgPyB3ZWJGcmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKSA6IDA7CiAK
LSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFt
ZUlEKCkgOiAwKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpG
b2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDApLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5k
b3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dG
ZWF0dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRp
b25BY3Rpb24pCkBAIC0xOTIsNyArMTkyLDcgQEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb24KIAog
ICAgIHVpbnQ2NF90IG5ld1BhZ2VJRCA9IDA7CiAgICAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyBwYXJhbWV0ZXJzOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRvd0ZlYXR1cmVzLCBtb2RpZmllcnMsIG1vdXNlQnV0dG9u
KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlE
LCBwYXJhbWV0ZXJzKSwgbV9wYWdlLT5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRv
d0ZlYXR1cmVzLCBtb2RpZmllcnMsIG1vdXNlQnV0dG9uKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLT5w
YWdlSUQoKSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKCFuZXdQYWdlSUQpCkBAIC0y
MjksNyArMjI5LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnRvb2xiYXJzVmlzaWJsZSgpCiAg
ICAgICAgIHJldHVybiB0b29sYmFyc1Zpc2liaWxpdHkgPT0gV0tCdW5kbGVQYWdlVUlFbGVtZW50
VmlzaWJsZTsKICAgICAKICAgICBib29sIHRvb2xiYXJzQXJlVmlzaWJsZSA9IHRydWU7Ci0gICAg
aWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkdldFRvb2xiYXJzQXJlVmlzaWJsZSgpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGU6OlJlcGx5KHRvb2xiYXJzQXJlVmlzaWJsZSks
IG1fcGFnZS0+cGFnZUlEKCkpKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0
VG9vbGJhcnNBcmVWaXNpYmxlKCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFRvb2xiYXJz
QXJlVmlzaWJsZTo6UmVwbHkodG9vbGJhcnNBcmVWaXNpYmxlKSwgbV9wYWdlLT5wYWdlSUQoKSkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIHRvb2xiYXJzQXJlVmlzaWJsZTsK
QEAgLTI0Nyw3ICsyNDcsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c3RhdHVzYmFyVmlzaWJs
ZSgpCiAgICAgICAgIHJldHVybiBzdGF0dXNiYXJWaXNpYmlsaXR5ID09IFdLQnVuZGxlUGFnZVVJ
RWxlbWVudFZpc2libGU7CiAKICAgICBib29sIHN0YXR1c0JhcklzVmlzaWJsZSA9IHRydWU7Ci0g
ICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkdldFN0YXR1c0JhcklzVmlzaWJsZSgpLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpHZXRTdGF0dXNCYXJJc1Zpc2libGU6OlJlcGx5KHN0YXR1c0JhcklzVmlzaWJs
ZSksIG1fcGFnZS0+cGFnZUlEKCkpKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
R2V0U3RhdHVzQmFySXNWaXNpYmxlKCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFN0YXR1
c0JhcklzVmlzaWJsZTo6UmVwbHkoc3RhdHVzQmFySXNWaXNpYmxlKSwgbV9wYWdlLT5wYWdlSUQo
KSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIHN0YXR1c0JhcklzVmlzaWJs
ZTsKQEAgLTI3Niw3ICsyNzYsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6bWVudWJhclZpc2li
bGUoKQogICAgICAgICByZXR1cm4gbWVudWJhclZpc2liaWxpdHkgPT0gV0tCdW5kbGVQYWdlVUlF
bGVtZW50VmlzaWJsZTsKICAgICAKICAgICBib29sIG1lbnVCYXJJc1Zpc2libGUgPSB0cnVlOwot
ICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpHZXRNZW51QmFySXNWaXNpYmxlKCksIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkdldE1lbnVCYXJJc1Zpc2libGU6OlJlcGx5KG1lbnVCYXJJc1Zpc2libGUpLCBt
X3BhZ2UtPnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldE1l
bnVCYXJJc1Zpc2libGUoKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0TWVudUJhcklzVmlz
aWJsZTo6UmVwbHkobWVudUJhcklzVmlzaWJsZSksIG1fcGFnZS0+cGFnZUlEKCkpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBtZW51QmFySXNWaXNpYmxlOwpAQCAtMzA3LDcg
KzMwNyw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSoKICAgICBBU1NFUlQod2ViRnJhbWUpOwog
CiAgICAgYm9vbCBzaG91bGRDbG9zZSA9IGZhbHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2hh
cmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwobWVzc2FnZSwgd2ViRnJhbWUtPmZyYW1lSUQoKSksIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6UmVwbHko
c2hvdWxkQ2xvc2UpLCBtX3BhZ2UtPnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNo
YXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChtZXNzYWdlLCB3ZWJGcmFtZS0+
ZnJhbWVJRCgpKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsOjpSZXBseShzaG91bGRDbG9zZSksIG1fcGFnZS0+cGFnZUlEKCkpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gc2hvdWxkQ2xvc2U7CkBAIC0zNDIsNyArMzQyLDcg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUs
IGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQogICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNs
aWVudCgpLndpbGxSdW5KYXZhU2NyaXB0QWxlcnQobV9wYWdlLCBhbGVydFRleHQsIHdlYkZyYW1l
KTsKIAogICAgIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3MgPSAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgPyBDb3JlSVBDOjpTcGluUnVuTG9vcFdoaWxlV2Fp
dGluZ0ZvclJlcGx5IDogMDsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJG
cmFtZS0+ZnJhbWVJRCgpLCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5K
YXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1fcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkNvbm5l
Y3Rpb246Ok5vVGltZW91dCwgc3luY1NlbmRGbGFncyk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVk
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIGFsZXJ0VGV4dCks
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgbV9w
YWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Tm9UaW1lb3V0LCBzeW5jU2VuZEZs
YWdzKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZy
YW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMzU2LDcgKzM1Niw3IEBAIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKIAogICAgIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3MgPSAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgPyBDb3JlSVBDOjpT
cGluUnVuTG9vcFdoaWxlV2FpdGluZ0ZvclJlcGx5IDogMDsKICAgICBib29sIHJlc3VsdCA9IGZh
bHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3lu
YyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+
ZnJhbWVJRCgpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dENvbmZpcm06OlJlcGx5KHJlc3VsdCksIG1fcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkNvbm5l
Y3Rpb246Ok5vVGltZW91dCwgc3luY1NlbmRGbGFncykpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBtZXNz
YWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OlJlcGx5
KHJlc3VsdCksIG1fcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkNvbm5lY3Rpb246Ok5vVGltZW91
dCwgc3luY1NlbmRGbGFncykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBy
ZXN1bHQ7CkBAIC0zNzIsNyArMzcyLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGMKICAgICBt
X3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53aWxsUnVuSmF2YVNjcmlwdFByb21wdCht
X3BhZ2UsIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSwgd2ViRnJhbWUpOwogCiAgICAgdW5zaWduZWQg
c3luY1NlbmRGbGFncyA9IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKSA/IENvcmVJUEM6OlNwaW5SdW5Mb29wV2hpbGVXYWl0aW5nRm9yUmVwbHkgOiAwOwot
ICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlE
KCksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkph
dmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCksIG1fcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6
OkNvbm5lY3Rpb246Ok5vVGltZW91dCwgc3luY1NlbmRGbGFncykpCisgICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlEKCks
IG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFT
Y3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCksIG1fcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkNv
bm5lY3Rpb246Ok5vVGltZW91dCwgc3luY1NlbmRGbGFncykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwpAQCAtMzg5LDcgKzM4OSw3IEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RhdHVz
YmFyVGV4dCkKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
KCkKIHsKICAgICBib29sIHNob3VsZEludGVycnVwdCA9IGZhbHNlOwotICAgIGlmICghV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNob3VsZEludGVycnVwdEphdmFTY3JpcHQ6OlJlcGx5KHNob3VsZEludGVycnVwdCksIG1fcGFn
ZS0+cGFnZUlEKCkpKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvdWxkSW50
ZXJydXB0SmF2YVNjcmlwdCgpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG91bGRJbnRlcnJ1
cHRKYXZhU2NyaXB0OjpSZXBseShzaG91bGRJbnRlcnJ1cHQpLCBtX3BhZ2UtPnBhZ2VJRCgpKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHNob3VsZEludGVycnVwdDsKQEAg
LTU5NSw3ICs1OTUsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1
b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZQogICAgIG5ld1F1b3RhID0g
bV9wYWdlLT5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuZGlkRXhjZWVkRGF0YWJhc2VRdW90YSht
X3BhZ2UsIHdlYlNlY3VyaXR5T3JpZ2luLmdldCgpLCBkYXRhYmFzZU5hbWUsIGRldGFpbHMuZGlz
cGxheU5hbWUoKSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGRldGFpbHMuY3Vy
cmVudFVzYWdlKCksIGRldGFpbHMuZXhwZWN0ZWRVc2FnZSgpKTsKIAogICAgIGlmICghbmV3UXVv
dGEpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3lu
YygKKyAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZFN5bmMoCiAgICAgICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRl
ZERhdGFiYXNlUXVvdGEod2ViRnJhbWUtPmZyYW1lSUQoKSwgb3JpZ2luLT5kYXRhYmFzZUlkZW50
aWZpZXIoKSwgZGF0YWJhc2VOYW1lLCBkZXRhaWxzLmRpc3BsYXlOYW1lKCksIGN1cnJlbnRRdW90
YSwgY3VycmVudE9yaWdpblVzYWdlLCBkZXRhaWxzLmN1cnJlbnRVc2FnZSgpLCBkZXRhaWxzLmV4
cGVjdGVkVXNhZ2UoKSksCiAgICAgICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNl
ZWRlZERhdGFiYXNlUXVvdGE6OlJlcGx5KG5ld1F1b3RhKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDb2xvckNob29zZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwCmluZGV4IGRhNzYzMzg1MDhjMGJhODYyMmU4Mzkx
NjYyMWMxMzlmZDE4OTZlZTMuLjA2ZmU3MmQyOGIxODQwNDRmNTEyNzkwMDFhNDY1ZDEwNzM4MzY5
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ29sb3JDaG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgV2ViQ29sb3JD
aG9vc2VyOjpXZWJDb2xvckNob29zZXIoV2ViUGFnZSogcGFnZSwgQ29sb3JDaG9vc2VyQ2xpZW50
KiBjbGllbnQsIGNvbnMKICAgICAsIG1fcGFnZShwYWdlKQogewogICAgIG1fcGFnZS0+c2V0QWN0
aXZlQ29sb3JDaG9vc2VyKHRoaXMpOwotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Q29sb3JDaG9vc2VyKGluaXRp
YWxDb2xvciwgY2xpZW50LT5lbGVtZW50UmVjdFJlbGF0aXZlVG9Sb290VmlldygpKSwgbV9wYWdl
LT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Q29sb3JDaG9vc2VyKGlu
aXRpYWxDb2xvciwgY2xpZW50LT5lbGVtZW50UmVjdFJlbGF0aXZlVG9Sb290VmlldygpKSwgbV9w
YWdlLT5wYWdlSUQoKSk7CiB9CiAKIFdlYkNvbG9yQ2hvb3Nlcjo6fldlYkNvbG9yQ2hvb3Nlcigp
CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgV2ViQ29sb3JDaG9vc2VyOjpzZXRTZWxlY3RlZENvbG9y
KGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlNldENvbG9yQ2hvb3NlckNvbG9yKGNvbG9yKSwgbV9wYWdlLT5wYWdlSUQo
KSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRDb2xvckNob29zZXJDb2xvcihjb2xvciks
IG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6ZW5kQ2hvb3Nl
cigpCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgV2ViQ29sb3JDaG9vc2VyOjplbmRDaG9vc2VyKCkK
ICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVuZENvbG9y
Q2hvb3NlcigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVu
ZENvbG9yQ2hvb3NlcigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDBlZjdkZTE2OTU2
NTVhOTYwNWZkZDNjMDkzY2U2OGYxNTdhM2Y1YjAuLjQ0Mjc3ZjFkNTg4ZWFkZTFlZTkzMjRmZmVl
NzUzZjcwOTU5ZDMyYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0z
NzUsNyArMzc1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsQ2xv
c2UoKQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVJY29u
KCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYkljb25EYXRhYmFzZTo6RGlkUmVjZWl2ZUljb25Gb3JQYWdlVVJMKG1fZnJhbWUtPnVy
bCgpKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViSWNvbkRhdGFiYXNlOjpEaWRSZWNlaXZlSWNvbkZvclBh
Z2VVUkwobV9mcmFtZS0+dXJsKCkpLCAwKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpCkBAIC05MjAsNyArOTIwLDcgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeSgpCiAgICAgZGF0
YS50aXRsZSA9IGxvYWRlci0+dGl0bGUoKS5zdHJpbmcoKTsKICAgICBkYXRhLm9yaWdpbmFsUmVx
dWVzdCA9IGxvYWRlci0+b3JpZ2luYWxSZXF1ZXN0Q29weSgpOwogCi0gICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRp
ZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKHdlYlBhZ2UtPnBhZ2VJRCgpLCBkYXRhLCBtX2Zy
YW1lLT5mcmFtZUlEKCkpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZE5hdmln
YXRlV2l0aE5hdmlnYXRpb25EYXRhKHdlYlBhZ2UtPnBhZ2VJRCgpLCBkYXRhLCBtX2ZyYW1lLT5m
cmFtZUlEKCkpLCAwKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dXBkYXRlR2xv
YmFsSGlzdG9yeVJlZGlyZWN0TGlua3MoKQpAQCAtOTM0LDEzICs5MzQsMTMgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeVJlZGlyZWN0TGlua3MoKQogCiAg
ICAgLy8gQ2xpZW50IHJlZGlyZWN0CiAgICAgaWYgKCFsb2FkZXItPmNsaWVudFJlZGlyZWN0U291
cmNlRm9ySGlzdG9yeSgpLmlzTnVsbCgpKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRQZXJmb3Jt
Q2xpZW50UmVkaXJlY3Qod2ViUGFnZS0+cGFnZUlEKCksCisgICAgICAgIFdlYlByb2Nlc3M6OnNo
YXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KHdlYlBhZ2UtPnBhZ2VJRCgpLAogICAg
ICAgICAgICAgbG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKSwgbG9hZGVy
LT5jbGllbnRSZWRpcmVjdERlc3RpbmF0aW9uRm9ySGlzdG9yeSgpLCBtX2ZyYW1lLT5mcmFtZUlE
KCkpLCAwKTsKICAgICB9CiAKICAgICAvLyBTZXJ2ZXIgcmVkaXJlY3QKICAgICBpZiAoIWxvYWRl
ci0+c2VydmVyUmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkuaXNOdWxsKCkpIHsKLSAgICAgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCh3ZWJQYWdlLT5wYWdlSUQoKSwKKyAg
ICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qod2Vi
UGFnZS0+cGFnZUlEKCksCiAgICAgICAgICAgICBsb2FkZXItPnNlcnZlclJlZGlyZWN0U291cmNl
Rm9ySGlzdG9yeSgpLCBsb2FkZXItPnNlcnZlclJlZGlyZWN0RGVzdGluYXRpb25Gb3JIaXN0b3J5
KCksIG1fZnJhbWUtPmZyYW1lSUQoKSksIDApOwogICAgIH0KIH0KQEAgLTExNzUsNyArMTE3NSw3
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNldFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhE
aXJlY3Rpb24mIHRpdGxlLCBjb25zdCBLVVJMCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJ
WE1FOiB1c2UgZGlyZWN0aW9uIG9mIHRpdGxlLgotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRVcGRhdGVIaXN0
b3J5VGl0bGUod2ViUGFnZS0+cGFnZUlEKCksCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpE
aWRVcGRhdGVIaXN0b3J5VGl0bGUod2ViUGFnZS0+cGFnZUlEKCksCiAgICAgICAgIHRpdGxlLnN0
cmluZygpLCB1cmwuc3RyaW5nKCksIG1fZnJhbWUtPmZyYW1lSUQoKSksIDApOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggOWE4ZDcwODRmNmIwYzAzYzE2ZGY2
NWJiMGY4ODk5ZTVlOTkyZTFmOS4uNDc0ZTU3NDIwMDJlNzc0NWU3ZTc5YWZhYmZjZDBlNzJhZjdl
YjY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMjk2LDcgKzI5
Niw3IEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKCkK
ICAgICBBU1NFUlQobV9jYWNoZWRQbHVnaW5zLmlzRW1wdHkoKSk7CiAgICAgCiAgICAgLy8gRklY
TUU6IFNob3VsZCB3ZSBkbyBzb21ldGhpbmcgaW4gY2FzZSBvZiBlcnJvciBoZXJlPwotICAgIGlm
ICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5zKG1fc2hvdWxkUmVmcmVzaFBsdWdpbnMpLCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5zOjpSZXBseShtX2NhY2hlZFBsdWdpbnMp
LCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpbnMobV9z
aG91bGRSZWZyZXNoUGx1Z2lucyksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdp
bnM6OlJlcGx5KG1fY2FjaGVkUGx1Z2lucyksIDApKQogICAgICAgICByZXR1cm47CiAKICAgICBt
X3Nob3VsZFJlZnJlc2hQbHVnaW5zID0gZmFsc2U7CkBAIC0zNjMsNyArMzYzLDcgQEAgdm9pZCBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmFkZFZpc2l0ZWRMaW5rKFBhZ2UqLCBMaW5rSGFzaCBsaW5r
SGFzaCkKIAogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFR5cGVzKFZlY3RvcjxTdHJp
bmc+JiB0eXBlcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKLSAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJDb250ZXh0
OjpHZXRQYXN0ZWJvYXJkVHlwZXMocGFzdGVib2FyZE5hbWUpLAorICAgIFdlYlByb2Nlc3M6OnNo
YXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJD
b250ZXh0OjpHZXRQYXN0ZWJvYXJkVHlwZXMocGFzdGVib2FyZE5hbWUpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXM6OldlYkNvbnRleHQ6
OkdldFBhc3RlYm9hcmRUeXBlczo6UmVwbHkodHlwZXMpLCAwKTsKIH0KIApAQCAtMzcxLDcgKzM3
MSw3IEBAIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmJ1ZmZlckZvclR5cGUoY29uc3QgU3RyCiB7CiAgICAgU2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlOwogICAgIHVpbnQ2NF90IHNpemUgPSAwOwotICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYkNvbnRleHQ6OkdldFBhc3Rl
Ym9hcmRCdWZmZXJGb3JUeXBlKHBhc3RlYm9hcmROYW1lLCBwYXN0ZWJvYXJkVHlwZSksCisgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYkNvbnRleHQ6OkdldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKHBhc3RlYm9h
cmROYW1lLCBwYXN0ZWJvYXJkVHlwZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNZXNzYWdlczo6V2ViQ29udGV4dDo6R2V0UGFzdGVib2FyZEJ1ZmZl
ckZvclR5cGU6OlJlcGx5KGhhbmRsZSwgc2l6ZSksIDApOwogICAgIGlmIChoYW5kbGUuaXNOdWxs
KCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMzgxLDI3ICszODEsMjcgQEAgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6YnVmZmVyRm9yVHlw
ZShjb25zdCBTdHIKIAogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFBhdGhuYW1lc0Zv
clR5cGUoVmVjdG9yPFN0cmluZz4mIHBhdGhuYW1lcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpHZXRQ
YXN0ZWJvYXJkUGF0aG5hbWVzRm9yVHlwZShwYXN0ZWJvYXJkTmFtZSwgcGFzdGVib2FyZFR5cGUp
LAorICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpHZXRQYXN0ZWJvYXJkUGF0aG5hbWVzRm9yVHlw
ZShwYXN0ZWJvYXJkTmFtZSwgcGFzdGVib2FyZFR5cGUpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXM6OldlYkNvbnRleHQ6OkdldFBhc3Rl
Ym9hcmRQYXRobmFtZXNGb3JUeXBlOjpSZXBseShwYXRobmFtZXMpLCAwKTsKIH0KIAogU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogewogICAgIFN0cmluZyB2
YWx1ZTsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJDb250ZXh0OjpHZXRQYXN0ZWJvYXJkU3RyaW5nRm9yVHlwZShwYXN0ZWJvYXJk
TmFtZSwgcGFzdGVib2FyZFR5cGUpLAorICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpHZXRQYXN0
ZWJvYXJkU3RyaW5nRm9yVHlwZShwYXN0ZWJvYXJkTmFtZSwgcGFzdGVib2FyZFR5cGUpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXM6Oldl
YkNvbnRleHQ6OkdldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlOjpSZXBseSh2YWx1ZSksIDApOwog
ICAgIHJldHVybiB2YWx1ZTsKIH0KIAogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvcHko
Y29uc3QgU3RyaW5nJiBmcm9tUGFzdGVib2FyZCwgY29uc3QgU3RyaW5nJiB0b1Bhc3RlYm9hcmQp
CiB7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJDb250ZXh0OjpQYXN0ZWJvYXJkQ29weShmcm9tUGFzdGVib2FyZCwgdG9QYXN0ZWJvYXJk
KSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4dDo6UGFzdGVib2FyZENvcHkoZnJvbVBhc3RlYm9h
cmQsIHRvUGFzdGVib2FyZCksIDApOwogfQogCiBpbnQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
aGFuZ2VDb3VudChjb25zdCBXVEY6OlN0cmluZyAmcGFzdGVib2FyZE5hbWUpCiB7CiAgICAgdWlu
dDY0X3QgY2hhbmdlQ291bnQ7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViQ29udGV4dDo6R2V0UGFzdGVib2FyZENoYW5nZUNvdW50
KHBhc3RlYm9hcmROYW1lKSwKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViQ29udGV4dDo6R2V0UGFzdGVib2Fy
ZENoYW5nZUNvdW50KHBhc3RlYm9hcmROYW1lKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpHZXRQYXN0ZWJvYXJk
Q2hhbmdlQ291bnQ6OlJlcGx5KGNoYW5nZUNvdW50KSwgMCk7CiAgICAgcmV0dXJuIGNoYW5nZUNv
dW50OwogfQpAQCAtNDA5LDcgKzQwOSw3IEBAIGludCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNo
YW5nZUNvdW50KGNvbnN0IFdURjo6U3RyaW5nICZwYXN0ZWJvYXJkTmFtZSkKIFN0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OnVuaXF1ZU5hbWUoKQogewogICAgIFN0cmluZyBwYXN0ZWJvYXJk
TmFtZTsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJDb250ZXh0OjpHZXRQYXN0ZWJvYXJkVW5pcXVlTmFtZSgpLAorICAgIFdlYlBy
b2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJDb250ZXh0OjpHZXRQYXN0ZWJvYXJkVW5pcXVlTmFtZSgpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXM6OldlYkNvbnRleHQ6
OkdldFBhc3RlYm9hcmRVbmlxdWVOYW1lOjpSZXBseShwYXN0ZWJvYXJkTmFtZSksIDApOwogICAg
IHJldHVybiBwYXN0ZWJvYXJkTmFtZTsKIH0KQEAgLTQxNyw3ICs0MTcsNyBAQCBTdHJpbmcgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjp1bmlxdWVOYW1lKCkKIENvbG9yIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29sb3IoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBDb2xvciBj
b2xvcjsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJDb250ZXh0OjpHZXRQYXN0ZWJvYXJkQ29sb3IocGFzdGVib2FyZE5hbWUpLAor
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpHZXRQYXN0ZWJvYXJkQ29sb3IocGFzdGVib2FyZE5h
bWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVz
c2FnZXM6OldlYkNvbnRleHQ6OkdldFBhc3RlYm9hcmRDb2xvcjo6UmVwbHkoY29sb3IpLCAwKTsK
ICAgICByZXR1cm4gY29sb3I7CiB9CkBAIC00MjUsMTkgKzQyNSwxOSBAQCBDb2xvciBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbG9yKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiBLVVJM
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6dXJsKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUp
CiB7CiAgICAgU3RyaW5nIHVybFN0cmluZzsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25u
ZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpHZXRQYXN0ZWJvYXJkVVJM
KHBhc3RlYm9hcmROYW1lKSwKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViQ29udGV4dDo6R2V0UGFzdGVib2Fy
ZFVSTChwYXN0ZWJvYXJkTmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNZXNzYWdlczo6V2ViQ29udGV4dDo6R2V0UGFzdGVib2FyZFVSTDo6UmVw
bHkodXJsU3RyaW5nKSwgMCk7CiAgICAgcmV0dXJuIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmxT
dHJpbmcpOwogfQogCiB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6YWRkVHlwZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkNvbnRleHQ6OkFkZFBhc3RlYm9hcmRUeXBlcyhwYXN0ZWJvYXJkTmFtZSwgcGFz
dGVib2FyZFR5cGVzKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4dDo6QWRkUGFzdGVib2FyZFR5
cGVzKHBhc3RlYm9hcmROYW1lLCBwYXN0ZWJvYXJkVHlwZXMpLCAwKTsKIH0KIAogdm9pZCBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OnNldFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJv
YXJkVHlwZXMsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7Ci0gICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpTZXRQ
YXN0ZWJvYXJkVHlwZXMocGFzdGVib2FyZE5hbWUsIHBhc3RlYm9hcmRUeXBlcyksIDApOworICAg
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkNvbnRleHQ6OlNldFBhc3RlYm9hcmRUeXBlcyhwYXN0ZWJvYXJkTmFtZSwgcGFz
dGVib2FyZFR5cGVzKSwgMCk7CiB9CiAKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRC
dWZmZXJGb3JUeXBlKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCkBAIC00NDgs
MTcgKzQ0OCwxNyBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0QnVmZmVyRm9yVHlw
ZShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjbwogICAgICAgICBtZW1jcHkoc2hh
cmVkTWVtb3J5QnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7
CiAgICAgICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpSZWFkT25seSk7CiAgICAgfQotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4dDo6U2V0UGFzdGVib2FyZEJ1ZmZlckZv
clR5cGUocGFzdGVib2FyZE5hbWUsIHBhc3RlYm9hcmRUeXBlLCBoYW5kbGUsIGJ1ZmZlciA/IGJ1
ZmZlci0+c2l6ZSgpIDogMCksIDApOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkNvbnRleHQ6OlNldFBhc3RlYm9h
cmRCdWZmZXJGb3JUeXBlKHBhc3RlYm9hcmROYW1lLCBwYXN0ZWJvYXJkVHlwZSwgaGFuZGxlLCBi
dWZmZXIgPyBidWZmZXItPnNpemUoKSA6IDApLCAwKTsKIH0KIAogdm9pZCBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OnNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhu
YW1lcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYkNvbnRleHQ6OlNldFBhc3RlYm9hcmRQYXRobmFtZXNGb3JUeXBlKHBhc3Rl
Ym9hcmROYW1lLCBwYXN0ZWJvYXJkVHlwZSwgcGF0aG5hbWVzKSwgMCk7CisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
Q29udGV4dDo6U2V0UGFzdGVib2FyZFBhdGhuYW1lc0ZvclR5cGUocGFzdGVib2FyZE5hbWUsIHBh
c3RlYm9hcmRUeXBlLCBwYXRobmFtZXMpLCAwKTsKIH0KIAogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OnNldFN0cmluZ0ZvclR5cGUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7Ci0gICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb250
ZXh0OjpTZXRQYXN0ZWJvYXJkU3RyaW5nRm9yVHlwZShwYXN0ZWJvYXJkTmFtZSwgcGFzdGVib2Fy
ZFR5cGUsIHN0cmluZyksIDApOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkNvbnRleHQ6OlNldFBhc3RlYm9hcmRT
dHJpbmdGb3JUeXBlKHBhc3RlYm9hcmROYW1lLCBwYXN0ZWJvYXJkVHlwZSwgc3RyaW5nKSwgMCk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCmluZGV4IGQ0YWY5MmZjMjAxYjA5M2RjMzY1
ZjEwMTM5NTY0NzA0NDY5ZmFmMTEuLjI4YWZhMjhjZmJkODhlZDc2YmRmYmQ1MTYwNWU4ZjBkMGYx
NjhjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUG9wdXBNZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIFdlYlBv
cHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBp
bmRleCkKICAgICBQbGF0Zm9ybVBvcHVwTWVudURhdGEgcGxhdGZvcm1EYXRhOwogICAgIHNldFVw
UGxhdGZvcm1EYXRhKHBhZ2VDb29yZGluYXRlcywgcGxhdGZvcm1EYXRhKTsKIAotICAgIFdlYlBy
b2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTaG93UG9wdXBNZW51KHBhZ2VDb29yZGluYXRlcywgbV9wb3B1cENsaWVudC0+bWVudVN0eWxl
KCkudGV4dERpcmVjdGlvbigpLCBpdGVtcywgaW5kZXgsIHBsYXRmb3JtRGF0YSksIG1fcGFnZS0+
cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd1BvcHVwTWVudShwYWdlQ29v
cmRpbmF0ZXMsIG1fcG9wdXBDbGllbnQtPm1lbnVTdHlsZSgpLnRleHREaXJlY3Rpb24oKSwgaXRl
bXMsIGluZGV4LCBwbGF0Zm9ybURhdGEpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBX
ZWJQb3B1cE1lbnU6OmhpZGUoKQpAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgV2ViUG9wdXBNZW51
OjpoaWRlKCkKICAgICBpZiAoIW1fcGFnZSB8fCAhbV9wb3B1cENsaWVudCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkhpZGVQb3B1cE1lbnUoKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIaWRlUG9wdXBNZW51KCksIG1fcGFnZS0+cGFnZUlEKCkp
OwogICAgIG1fcGFnZS0+c2V0QWN0aXZlUG9wdXBNZW51KDApOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVu
dS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJj
aFBvcHVwTWVudS5jcHAKaW5kZXggMzlhN2YzMmU2YzAyZDYxMGIzMWM5NDIwNmRjYjM3MjYzYWYz
YzE1MC4uMWY4ZjhiMzA0OGZlZGQ5MWRkN2Q5ZTJkZGM5MmUzM2NmZGE2ZDI2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1
cE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFdlYlNlYXJjaFBv
cHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29u
c3QgVmVjdAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNh
dmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBzZWFyY2hJdGVtcyksIHBhZ2UtPnBhZ2VJRCgpKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBzZWFyY2hJdGVt
cyksIHBhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBy
ZXN1bHRJdGVtcykKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6Omxv
YWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHIKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9hZFJlY2Vu
dFNlYXJjaGVzKG5hbWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2FkUmVjZW50U2VhcmNo
ZXM6OlJlcGx5KHJlc3VsdEl0ZW1zKSwgcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6
OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkxvYWRSZWNlbnRTZWFyY2hlcyhuYW1lKSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6TG9hZFJlY2VudFNlYXJjaGVzOjpSZXBseShyZXN1bHRJdGVtcyksIHBhZ2UtPnBhZ2VJ
RCgpKTsKIH0KIAogYm9vbCBXZWJTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApp
bmRleCBkNzljMjk3MGYyNmJkOGZmNTE4MmVmOWE4NjI5MjU4ZjdkYWU0MDZjLi5kMjc1MWQ4MzJl
YmU5MDMwZGE3OTMzY2Y0ZmUzZTlkODU3Yzk2ZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMTQ2LDcgKzE0
Niw3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEdlc3R1cmVFdmVudCh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFdlYkdlc3R1cmVFdmVuCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9M
TElORykKIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpzZW5kRGlkUmVjZWl2ZUV2ZW50KHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBib29sIGRpZEhhbmRsZUV2ZW50KQogewot
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRSZWNlaXZlRXZlbnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGV2ZW50LnR5
cGUoKSksIGRpZEhhbmRsZUV2ZW50KSwgcGFnZUlEKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFJlY2VpdmVFdmVudChzdGF0aWNfY2FzdDx1aW50MzJfdD4oZXZlbnQudHlwZSgpKSwgZGlk
SGFuZGxlRXZlbnQpLCBwYWdlSUQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHku
Y3BwCmluZGV4IDI3MDRjMjQ2OTVjYjY4MTRkMzc1YzliZGY0YjgxMzk5ZDNjY2VmZDQuLmM5NzFl
MGRlYWUyZTNlYmE3ODRhOGM1ZDRkMjkzZTQ4ZWY3NmZiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFBy
b3h5LmNwcApAQCAtODksNyArODksNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0
ZW0odWludDY0X3QgaXRlbUlELCBIaXN0b3J5SXRlbSogaXRlbSkKICAgICBFbmNvZGVyQWRhcHRl
ciBlbmNvZGVyOwogICAgIGl0ZW0tPmVuY29kZUJhY2tGb3J3YXJkVHJlZShlbmNvZGVyKTsKIAot
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpBZGRCYWNrRm9yd2FyZEl0ZW0oaXRlbUlELCBpdGVtLT5vcmlnaW5hbFVS
TFN0cmluZygpLCBpdGVtLT51cmxTdHJpbmcoKSwgaXRlbS0+dGl0bGUoKSwgZW5jb2Rlci5kYXRh
UmVmZXJlbmNlKCkpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkFkZEJhY2tGb3J3
YXJkSXRlbShpdGVtSUQsIGl0ZW0tPm9yaWdpbmFsVVJMU3RyaW5nKCksIGl0ZW0tPnVybFN0cmlu
ZygpLCBpdGVtLT50aXRsZSgpLCBlbmNvZGVyLmRhdGFSZWZlcmVuY2UoKSksIDApOwogfQogCiB2
b2lkIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjphZGRJdGVtRnJvbVVJUHJvY2Vzcyh1aW50NjRf
dCBpdGVtSUQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IHBycEl0ZW0pCkBAIC0x
ODAsNyArMTgwLDcgQEAgSGlzdG9yeUl0ZW0qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjppdGVt
QXRJbmRleChpbnQgaXRlbUluZGV4KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHVpbnQ2NF90
IGl0ZW1JRCA9IDA7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkSXRlbUF0SW5kZXgo
aXRlbUluZGV4KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRJdGVtQXRJbmRl
eDo6UmVwbHkoaXRlbUlEKSwgbV9wYWdlLT5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNz
OjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEl0ZW1BdEluZGV4KGl0ZW1JbmRleCksIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkSXRlbUF0SW5kZXg6OlJlcGx5KGl0ZW1JRCksIG1f
cGFnZS0+cGFnZUlEKCkpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmICghaXRlbUlEKQpA
QCAtMTk1LDcgKzE5NSw3IEBAIGludCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6YmFja0xpc3RD
b3VudCgpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaW50IGJhY2tMaXN0Q291bnQgPSAwOwot
ICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEJhY2tMaXN0Q291bnQoKSwgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRCYWNrTGlzdENvdW50OjpSZXBseShiYWNrTGlzdENv
dW50KSwgbV9wYWdlLT5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpCYWNrRm9yd2FyZEJhY2tMaXN0Q291bnQoKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFj
a0ZvcndhcmRCYWNrTGlzdENvdW50OjpSZXBseShiYWNrTGlzdENvdW50KSwgbV9wYWdlLT5wYWdl
SUQoKSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgcmV0dXJuIGJhY2tMaXN0Q291bnQ7CkBA
IC0yMDcsNyArMjA3LDcgQEAgaW50IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Ojpmb3J3YXJkTGlz
dENvdW50KCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpbnQgZm9yd2FyZExpc3RDb3VudCA9
IDA7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudCgpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQ6OlJlcGx5
KGZvcndhcmRMaXN0Q291bnQpLCBtX3BhZ2UtPnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlByb2Nl
c3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudCgpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQ6OlJlcGx5KGZvcndhcmRM
aXN0Q291bnQpLCBtX3BhZ2UtPnBhZ2VJRCgpKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBy
ZXR1cm4gZm9yd2FyZExpc3RDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggNTg1MWJhNjA2MTk0ZTcyN2IxMTdmZmM4
NzhlMGZjNjkxNGRmMDk2Ni4uZTQ0MzdkNjU1OTdkYjA2NzBlMDU5NWNmZGI2NTAzNDdjYjMwNjdm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgV2ViUGFnZSogV2ViSW5zcGVjdG9yOjpjcmVhdGVJ
bnNwZWN0b3JQYWdlKCkKICAgICB1aW50NjRfdCBpbnNwZWN0b3JQYWdlSUQgPSAwOwogICAgIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKIAotICAgIGlmICghV2ViUHJvY2Vz
czo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViSW5zcGVjdG9y
UHJveHk6OkNyZWF0ZUluc3BlY3RvclBhZ2UoKSwKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJl
ZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJJbnNw
ZWN0b3JQcm94eTo6Q3JlYXRlSW5zcGVjdG9yUGFnZSgpLAogICAgICAgICAgICAgTWVzc2FnZXM6
OldlYkluc3BlY3RvclByb3h5OjpDcmVhdGVJbnNwZWN0b3JQYWdlOjpSZXBseShpbnNwZWN0b3JQ
YWdlSUQsIHBhcmFtZXRlcnMpLAogICAgICAgICAgICAgbV9wYWdlLT5wYWdlSUQoKSwgQ29yZUlQ
Qzo6Q29ubmVjdGlvbjo6Tm9UaW1lb3V0KSkgewogICAgICAgICByZXR1cm4gMDsKQEAgLTEwNyw1
OCArMTA3LDU4IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpkZXN0cm95SW5zcGVjdG9yUGFnZSgpCiAv
LyBDYWxsZWQgZnJvbSBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudAogdm9pZCBXZWJJbnNwZWN0
b3I6OmRpZENsb3NlKCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpEaWRDbG9zZSgpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6RGlkQ2xvc2UoKSwgbV9wYWdl
LT5wYWdlSUQoKSk7CiAgICAgZGVzdHJveUluc3BlY3RvclBhZ2UoKTsKIH0KIAogdm9pZCBXZWJJ
bnNwZWN0b3I6OmJyaW5nVG9Gcm9udCgpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6QnJpbmdUb0Zyb250
KCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpCcmlu
Z1RvRnJvbnQoKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yOjpp
bnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewotICAgIFdlYlBy
b2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9y
UHJveHk6Okluc3BlY3RlZFVSTENoYW5nZWQodXJsU3RyaW5nKSwgbV9wYWdlLT5wYWdlSUQoKSk7
CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6Okluc3BlY3RlZFVSTENoYW5nZWQodXJsU3Ry
aW5nKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yOjpzYXZlKGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9vbCBmb3JjZVNh
dmVBcykKIHsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpTYXZlKGZpbGVuYW1lLCBjb250ZW50LCBmb3JjZVNh
dmVBcyksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpT
YXZlKGZpbGVuYW1lLCBjb250ZW50LCBmb3JjZVNhdmVBcyksIG1fcGFnZS0+cGFnZUlEKCkpOwog
fQogCiB2b2lkIFdlYkluc3BlY3Rvcjo6YXBwZW5kKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNv
bnN0IFN0cmluZyYgY29udGVudCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpBcHBlbmQoZmlsZW5hbWUs
IGNvbnRlbnQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94
eTo6QXBwZW5kKGZpbGVuYW1lLCBjb250ZW50KSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZv
aWQgV2ViSW5zcGVjdG9yOjphdHRhY2hCb3R0b20oKQogewotICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkF0dGFj
aEJvdHRvbSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94
eTo6QXR0YWNoQm90dG9tKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYkluc3Bl
Y3Rvcjo6YXR0YWNoUmlnaHQoKQogewotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkF0dGFjaFJpZ2h0KCksIG1f
cGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpBdHRhY2hSaWdo
dCgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6OmRldGFjaCgp
CiB7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJJbnNwZWN0b3JQcm94eTo6RGV0YWNoKCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdl
YlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYkluc3BlY3RvclByb3h5OjpEZXRhY2goKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAK
IHZvaWQgV2ViSW5zcGVjdG9yOjpzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWln
aHQpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6U2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoaGVpZ2h0KSwg
bV9wYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNldEF0dGFj
aGVkV2luZG93SGVpZ2h0KGhlaWdodCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdl
Ykluc3BlY3Rvcjo6c2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCB3aWR0aCkKIHsKLSAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYklu
c3BlY3RvclByb3h5OjpTZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHdpZHRoKSwgbV9wYWdlLT5wYWdl
SUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNldEF0dGFjaGVkV2luZG93V2lk
dGgod2lkdGgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6OnNl
dFRvb2xiYXJIZWlnaHQodW5zaWduZWQgaGVpZ2h0KQogewotICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNldFRv
b2xiYXJIZWlnaHQoaGVpZ2h0KSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5z
cGVjdG9yUHJveHk6OlNldFRvb2xiYXJIZWlnaHQoaGVpZ2h0KSwgbV9wYWdlLT5wYWdlSUQoKSk7
CiB9CiAKIC8vIENhbGxlZCBieSBXZWJJbnNwZWN0b3IgbWVzc2FnZXMKQEAgLTI5OSw3ICsyOTks
NyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6dXBkYXRlRG9ja2luZ0F2YWlsYWJpbGl0eSgpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGJvb2wgY2FuQXR0YWNoV2luZG93ID0gbV9mcm9udGVuZENsaWVu
dC0+Y2FuQXR0YWNoV2luZG93KCk7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6QXR0YWNoQXZhaWxhYmlsaXR5
Q2hhbmdlZChjYW5BdHRhY2hXaW5kb3cpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJJbnNwZWN0b3JQcm94eTo6QXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChjYW5BdHRhY2hXaW5k
b3cpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKICAgICBtX2Zyb250ZW5kQ2xpZW50LT5zZXREb2NraW5n
VW5hdmFpbGFibGUoIWNhbkF0dGFjaFdpbmRvdyk7CiB9CiAKQEAgLTMwNyw3ICszMDcsNyBAQCB2
b2lkIFdlYkluc3BlY3Rvcjo6dXBkYXRlRG9ja2luZ0F2YWlsYWJpbGl0eSgpCiB2b2lkIFdlYklu
c3BlY3Rvcjo6c2VuZE1lc3NhZ2VUb1JlbW90ZUZyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKIHsKICAgICBBU1NFUlQobV9yZW1vdGVGcm9udGVuZENvbm5lY3RlZCk7Ci0gICAgV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQ
cm94eTo6U2VuZE1lc3NhZ2VUb1JlbW90ZUZyb250ZW5kKG1lc3NhZ2UpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6U2VuZE1lc3NhZ2VUb1JlbW90ZUZy
b250ZW5kKG1lc3NhZ2UpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0
b3I6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGVGcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggMDRlOGZjMmY2MTM2YTRkOGE3MGQxYTYxYTdjNTk2NDg3MTczNTQxYi4uYzg3MDJiNGU0NDQy
NTFkMzBjYTM1ZThmN2EyMTJhNWNkYjdkZGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDU0LDkgKzQ1NCwxNCBAQCB2b2lkIFdlYlBh
Z2U6OmR1bW15KGJvb2wmKQogewogfQogCi1Db3JlSVBDOjpDb25uZWN0aW9uKiBXZWJQYWdlOjpj
b25uZWN0aW9uKCkgY29uc3QKK0NvcmVJUEM6OkNvbm5lY3Rpb24qIFdlYlBhZ2U6Om1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkKIHsKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpOworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpOworfQorCit1aW50NjRfdCBXZWJQYWdlOjptZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpCit7CisgICAgcmV0dXJuIHBhZ2VJRCgpOwogfQogCiAjaWYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCBhMDlkZTcxMjg2NjEzNGM4MjhmMDIwZmRhODc5ZDhmOWNhYTI1OWQ4Li5jMjkwYzAxZTZi
YTg5ZWIyOGQxMDM2YmE5N2I5Y2U4NTYzNWM3ZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE2NywxNSArMTY3LDExIEBAIGNsYXNzIFdlYlRv
dWNoRXZlbnQ7CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxQYWdlT3ZlcmxheT4+IFBhZ2VPdmVy
bGF5TGlzdDsKIAotY2xhc3MgV2ViUGFnZSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmpl
Y3Q6OlR5cGVCdW5kbGVQYWdlPiwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVi
bGljIENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXI8V2ViUGFnZT4geworY2xhc3MgV2ViUGFnZSA6IHB1
YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVCdW5kbGVQYWdlPiwgcHVibGljIENv
cmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXIgewog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBhZ2U+IGNyZWF0ZSh1aW50NjRfdCBw
YWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIH5X
ZWJQYWdlKCk7CiAKLSAgICAvLyBVc2VkIGJ5IE1lc3NhZ2VTZW5kZXIuCi0gICAgQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIGNvbnN0OwotICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9u
SUQoKSBjb25zdCB7IHJldHVybiBwYWdlSUQoKTsgfQotCiAgICAgdm9pZCBjbG9zZSgpOwogCiAg
ICAgc3RhdGljIFdlYlBhZ2UqIGZyb21Db3JlUGFnZShXZWJDb3JlOjpQYWdlKik7CkBAIC02NjMs
NiArNjU5LDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAorICAgIC8vIENvcmVJUEM6
Ok1lc3NhZ2VTZW5kZXIKKyAgICB2aXJ0dWFsIENvcmVJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1aW50NjRfdCBtZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIE9WRVJSSURFOworCiAgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGMyN2VjMjlk
NDkyNjNhYTBkNjlhNDRlNDg0YzcyYzg0MWY0MzY1NDcuLmRmMGU2OTdkNzI1MjFhZDI4MjM4MDRi
YTBiOTU1NjJkNDJjNDMxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTE4Nyw3ICsxODcsNyBAQCBib29sIFdlYlBh
Z2U6OmV4ZWN1dGVLZXlwcmVzc0NvbW1hbmRzSW50ZXJuYWwoY29uc3QgVmVjdG9yPFdlYkNvcmU6
OktleXByZXNzQ29tbQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgYm9vbCBjb21tYW5kV2FzSGFuZGxlZEJ5VUlQcm9jZXNzID0gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3Rv
cihjb21tYW5kc1tpXS5jb21tYW5kTmFtZSksIAorICAgICAgICAgICAgICAgIFdlYlByb2Nlc3M6
OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbW1hbmRzW2ldLmNv
bW1hbmROYW1lKSwgCiAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yOjpSZXBseShjb21tYW5kV2FzSGFuZGxlZEJ5
VUlQcm9jZXNzKSwgbV9wYWdlSUQpOwogICAgICAgICAgICAgICAgIGV2ZW50V2FzSGFuZGxlZCB8
PSBjb21tYW5kV2FzSGFuZGxlZEJ5VUlQcm9jZXNzOwogICAgICAgICAgICAgfQpAQCAtMjE1LDcg
KzIxNSw3IEBAIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9h
cmRFdmVudCogZXZlbnQsIGJvb2wgc2F2ZUNvbW1hbmRzCiAgICAgaWYgKHNhdmVDb21tYW5kcykg
ewogICAgICAgICBLZXlib2FyZEV2ZW50KiBvbGRFdmVudCA9IG1fa2V5Ym9hcmRFdmVudEJlaW5n
SW50ZXJwcmV0ZWQ7CiAgICAgICAgIG1fa2V5Ym9hcmRFdmVudEJlaW5nSW50ZXJwcmV0ZWQgPSBl
dmVudDsKLSAgICAgICAgYm9vbCBzZW5kUmVzdWx0ID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJbnRlcnByZXRRdWV1
ZWRLZXlFdmVudChlZGl0b3JTdGF0ZSgpKSwgCisgICAgICAgIGJvb2wgc2VuZFJlc3VsdCA9IFdl
YlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkludGVycHJldFF1ZXVlZEtleUV2ZW50KGVkaXRvclN0YXRl
KCkpLCAKICAgICAgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkludGVycHJldFF1ZXVl
ZEtleUV2ZW50OjpSZXBseShldmVudFdhc0hhbmRsZWQsIGNvbW1hbmRzKSwgbV9wYWdlSUQpOwog
ICAgICAgICBtX2tleWJvYXJkRXZlbnRCZWluZ0ludGVycHJldGVkID0gb2xkRXZlbnQ7CiAgICAg
ICAgIGlmICghc2VuZFJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IDk5ZGViYTVlMWU0ZTUxMmIzOGRlYjQ5ZjQxYTBmZjkzNGY4ZDczMDAuLjVhYzk5
NTUwOTVjZDA4YTU4MDMyMjIxYmZmYmI3MWE4ZjVlZDY3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMzcwLDcgKzM3MCw3IEBAIHZvaWQgV2ViUHJvY2Vz
czo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKIAogICAgIENvcmVJUEM6OkF0dGFj
aG1lbnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyOwogCi0gICAgaWYgKCFjb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbigpLAorICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5
bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCksCiAgICAgICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtNjA1LDcgKzYwNSw3IEBAIGJvb2wgV2ViUHJvY2Vzczo6c2hvdWxk
VGVybWluYXRlKCkKIAogICAgIC8vIEZJWE1FOiB0aGUgU2hvdWxkVGVybWluYXRlIG1lc3NhZ2Ug
c2hvdWxkIGFsc28gc2VuZCB0ZXJtaW5hdGlvbiBwYXJhbWV0ZXJzLCBzdWNoIGFzIGFueSBzZXNz
aW9uIGNvb2tpZXMgdGhhdCBuZWVkIHRvIGJlIHByZXNlcnZlZC4KICAgICBib29sIHNob3VsZFRl
cm1pbmF0ZSA9IGZhbHNlOwotICAgIGlmIChjb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OlNob3VsZFRlcm1pbmF0ZSgpLCBNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpTaG91bGRUZXJtaW5hdGU6OlJlcGx5KHNob3VsZFRlcm1pbmF0ZSksIDApCisgICAg
aWYgKHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OlNob3VsZFRlcm1pbmF0ZSgpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpT
aG91bGRUZXJtaW5hdGU6OlJlcGx5KHNob3VsZFRlcm1pbmF0ZSksIDApCiAgICAgICAgICYmICFz
aG91bGRUZXJtaW5hdGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAo=
</data>
<flag name="review"
          id="224259"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="224264"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>