<?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>43304</bug_id>
          
          <creation_ts>2010-07-31 13:43:11 -0700</creation_ts>
          <short_desc>REGRESSION(r64422): Build fixes are needed for Snow Leopard and Windows. (Requested by lca on #webkit).</short_desc>
          <delta_ts>2010-07-31 14:04:37 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42592</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>luiz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>258632</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-31 13:43:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64422 broke the build:
Build fixes are needed for Snow Leopard and Windows. (Requested by lca on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258633</commentid>
    <comment_count>1</comment_count>
      <attachid>63158</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-31 13:43:22 -0700</bug_when>
    <thetext>Created attachment 63158
ROLLOUT of r64422

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258636</commentid>
    <comment_count>2</comment_count>
      <attachid>63158</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-31 14:04:30 -0700</bug_when>
    <thetext>Comment on attachment 63158
ROLLOUT of r64422

Clearing flags on attachment: 63158

Committed r64423: &lt;http://trac.webkit.org/changeset/64423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258638</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-31 14:04:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63158</attachid>
            <date>2010-07-31 13:43:22 -0700</date>
            <delta_ts>2010-07-31 14:04:30 -0700</delta_ts>
            <desc>ROLLOUT of r64422</desc>
            <filename>bug-43304-20100731204320.patch</filename>
            <type>text/plain</type>
            <size>166039</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGM3YTA4NDVkZWU0NDBkMzQ4ODQ0NTQyYTZjOGI2MTNiNDllNDgyZS4uNmUxMmQ0ZjkyNGY3NmEx
ZGQzYTllZjkxOGY0MGFjMDYwMjRjMTYzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTEgQEAKKzIwMTAtMDctMzEgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NDQyMi4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvNjQ0MjIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzMzA0CisKKyAgICAgICAgQnVpbGQgZml4ZXMgYXJlIG5lZWRlZCBmb3IgU25v
dyBMZW9wYXJkIGFuZCBXaW5kb3dzLgorICAgICAgICAoUmVxdWVzdGVkIGJ5IGxjYSBvbiAjd2Vi
a2l0KS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50
cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5o
OgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vUG9w
dXBNZW51Lmg6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UG9wdXBNZW51OjpjbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpzY3Jv
bGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjppdGVtSGVpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnU6OnBvcHVwSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6c2V0
V2FzQ2xpY2tlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Ondhc0NsaWNrZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpzZXRTY3JvbGxPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51OjpzY3JvbGxPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51Ojp3aGVlbERlbHRhKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6c2Nyb2xs
YmFyQ2FwdHVyaW5nTW91c2UpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpzZXRTY3Jv
bGxiYXJDYXB0dXJpbmdNb3VzZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OmlzQWN0
aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6c2Nyb2xsYmFyQ29ybmVyUHJlc2Vu
dCk6CisgICAgICAgICogcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9Q
b3B1cE1lbnVCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6UG9wdXBNZW51
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6flBvcHVwTWVudSk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnU6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojpo
aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3Lmg6IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdl
YkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vYnJl
dy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
OjpQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp+UG9wdXBNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnU6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp1cGRhdGVGcm9t
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudTo6UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dTo6flBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudTo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Bv
cHVwTWVudUVmbC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9TZWFyY2hQb3B1
cE1lbnVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50
U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50
U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjplbmFibGVkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmg6IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnU6OlBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6On5Q
b3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpzaG93KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudTo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6
OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6aXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojpt
ZW51SXRlbUFjdGl2YXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Om1lbnVVbm1h
cHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Om1lbnVQb3NpdGlvbkZ1bmN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6bWVudVJlbW92ZUl0ZW0pOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVu
dUd0ay5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpQb3B1cE1lbnVIYWlrdSk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6flBvcHVwTWVudUhhaWt1KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudTo6flBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OnNo
b3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpoaWRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgICogcGxhdGZv
cm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9o
YWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnU6OmVuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVu
dUhhaWt1Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5o
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OlBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnU6On5Qb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpjbGVh
cik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OnBvcHVsYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudTo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Omhp
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLmg6IFJlbW92ZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdl
YkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgICogcGxhdGZvcm0vcXQv
UG9wdXBNZW51UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpQb3B1cE1lbnUp
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp+UG9wdXBNZW51KToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudTo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Omhp
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oOiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudTo6U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dTo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dTo6ZW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudTo6flBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OnBvcHVw
Q2xhc3NOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6c2hvdyk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnU6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
OjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
OjpzZXRGb2N1c2VkSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp2aXNpYmxl
SXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpsaXN0SW5kZXhBdFBvaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6Zm9jdXNlZEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudTo6Zm9jdXNGaXJzdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnU6OmZvY3VzTGFzdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OmRvd24pOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp1cCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnU6OmludmFsaWRhdGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6Y2xpZW50
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OmluY3JlbWVudFdoZWVsRGVsdGEp
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpyZWR1Y2VXaGVlbERlbHRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudTo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
Ojp2YWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjppbnZhbGlkYXRl
U2Nyb2xsYmFyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OnJlZ2lzdGVyQ2xh
c3MpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpQb3B1cE1lbnVXbmRQcm9jKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6d25kUHJvYyk6CisgICAgICAgICogcGxhdGZvcm0v
d2luL1BvcHVwTWVudVdpbi5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TZWFy
Y2hQb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpT
ZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjplbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJj
aGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJj
aGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmg6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51OjpQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
Ojp+UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Ok9uTWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnU6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp1
cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6Oml0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9Qb3B1cE1lbnVX
eC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgICog
cGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guaDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxp
c3Q6OmFkanVzdElubmVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6
OnNob3dQb3B1cCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6On5SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjphZGRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpzaG93UG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpoaWRlUG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnZhbHVlQ2hhbmdlZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOgorCiAyMDEwLTA3LTI3ICBM
dWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGM1NTdhYjFjNGE3NmMzMjUyOThkOGJh
NGQ5OTcyYWVlNDAxMDRiZTkuLmQzNWI3NGEyYmQ2YjI5YWRjMThjZTM3NzMzYTAyZjRjNDQ0Y2Vm
ZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMjQ2NSw3ICsyNDY1LDYgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwK
IAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmggXAogCVdlYkNvcmUvcGxh
dGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmNwcCBcCi0JV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmgg
XAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Ny
b2xsYmFyR3RrLmNwcCBcCkBAIC0yNDc0LDcgKzI0NzMsNiBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmggXAogCVdlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0
ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwIFwKLQlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQ
b3B1cE1lbnVHdGsuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNw
cCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkVGltZXJHdGsuY3BwIFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Tb3VuZEd0ay5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggY2VlYWQzMWRiZTMwOWRmOWE2
ZGQzYTZkNTdmM2VkNTE0YTZhMWVmNi4uOWYzM2UzNmZmMDZjOWJiZDUyMjNhOTQ0NGI1MGY4ZDlj
NmNlYWE5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC0yNTAsNyArMjUwLDYgQEAgX19aTjdXZWJDb3JlMTJJY29uRGF0
YWJhc2UyN2NoZWNrSW50ZWdyaXR5QmVmb3JlT3BlbmluZ0V2CiBfX1pON1dlYkNvcmUxMkljb25E
YXRhYmFzZTRvcGVuRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlNWNs
b3NlRXYKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlOXNldENsaWVudEVQTlNfMThJY29uRGF0
YWJhc2VDbGllbnRFCi1fX1pON1dlYkNvcmUxMlBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVu
dUNsaWVudEUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTJwYWdlUHJvcGVydHlFUE5TXzVG
cmFtZUVQS2NpCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDEzbnVtYmVyT2ZQYWdlc0VQTlNf
NUZyYW1lRVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTZpc1Bh
Z2VCb3hWaXNpYmxlRVBOU181RnJhbWVFaQpAQCAtNDEyLDcgKzQxMSw2IEBAIF9fWk43V2ViQ29y
ZTE3b3BlblRlbXBvcmFyeUZpbGVFUEtjUmkKIF9fWk43V2ViQ29yZTE4ZGVwcmVjYXRlZFBhcnNl
VVJMRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4aXNTdGFydE9mUGFyYWdyYXBoRVJLTlNf
MTVWaXNpYmxlUG9zaXRpb25FCiBfX1pON1dlYkNvcmUxOHBsdWdpblNjcmlwdE9iamVjdEVQTjNK
U0M5RXhlY1N0YXRlRVBOU18xM0pTSFRNTEVsZW1lbnRFCi1fX1pON1dlYkNvcmUxOFNlYXJjaFBv
cHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2ViQ29yZTE5QW5pbWF0
aW9uQ29udHJvbGxlcjE2cmVzdW1lQW5pbWF0aW9uc0VQTlNfOERvY3VtZW50RQogX19aTjdXZWJD
b3JlMTlBbmltYXRpb25Db250cm9sbGVyMTdzdXNwZW5kQW5pbWF0aW9uc0VQTlNfOERvY3VtZW50
RQogX19aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMjBwYXVzZUFuaW1hdGlvbkF0VGlt
ZUVQTlNfMTJSZW5kZXJPYmplY3RFUktOU182U3RyaW5nRWQKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggN2JiZmZlMjMwMDcwMjA1
YTI2NGJjY2ExNDA0NzFlMmUxOTQyNGNkYi4uODI0NDkwNjcxMzAyODU2NDhkYzFmYWViMDUyOTk0
Y2VjOTAxMTcwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTIxMzAsNyArMjEzMCw2IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bU1hYy5tbScsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbi5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcCcsCi0g
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2hhcmVkVGltZXJDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NvdW5kQ2hyb21pdW1Qb3NpeC5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NvdW5kQ2hyb21pdW1XaW4uY3BwJywK
QEAgLTI2MjMsNyArMjYyMiw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1Bhc3RlYm9h
cmRNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9QbGF0Zm9ybU1vdXNlRXZlbnRN
YWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbScs
Ci0gICAgICAgICAgICAncGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
YWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1NT
TEtleUdlbmVyYXRvck1hYy5tbScsCkBAIC0yNjMxLDcgKzI2MjksNiBAQAogICAgICAgICAgICAg
J3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
YWMvU2Nyb2xsYmFyVGhlbWVNYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLm1tJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBN
ZW51TWFjLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMu
bW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0nLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL21hYy9TaGFyZWRUaW1lck1hYy5tbScsCkBAIC0yNzgyLDcgKzI3
NzksNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1BsYXRmb3JtTW91c2VFdmVudFF0LmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCcsCi0gICAgICAgICAgICAncGxh
dGZvcm0vcXQvUG9wdXBNZW51UXQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUVdlYlBv
cHVwLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUVdlYlBvcHVwLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwJywKQEAgLTI3OTMsNyArMjc4OSw2
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU2Nyb2xsYmFyVGhlbWVRdC5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL3F0L1Njcm9sbGJhclRoZW1lUXQuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9y
bS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9TaGFy
ZWRCdWZmZXJRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcCcsCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBmZTI2MWFj
YmZjNzJiYmRjMzFmZTBkZmY2MWI2YWI2ODlmY2ZlYTE0Li4xMjhhYzRlNWFiOTkwNzc0M2JmY2Zk
ZjBmYjBkMjliZjRhZWE5ZTJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE3MDksNyArMTcwOSw2IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBcCiAgICAgcGxhdGZv
cm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2lu
dC5oIFwKLSAgICBwbGF0Zm9ybS9Qb3B1cE1lbnUuaCBcCiAgICAgcGxhdGZvcm0vcXQvQ2xpcGJv
YXJkUXQuaCBcCiAgICAgcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaCBcCiAgICAgcGxhdGZv
cm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggXApAQCAtMTcxOSw3ICsxNzE4LDYgQEAgSEVBREVS
UyArPSBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsYmFyLmggXAogICAgIHBsYXRmb3JtL1Njcm9sbGJh
clRoZW1lQ29tcG9zaXRlLmggXAogICAgIHBsYXRmb3JtL1Njcm9sbFZpZXcuaCBcCi0gICAgcGxh
dGZvcm0vU2VhcmNoUG9wdXBNZW51LmggXAogICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIFwK
ICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBcCiAgICAgcGxhdGZvcm0vc3FsL1NR
TGl0ZUZpbGVTeXN0ZW0uaCBcCkBAIC0zMjk5LDggKzMyOTcsNiBAQCBIRUFERVJTICs9IFwKICAg
ICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmggXAogICAg
IC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmggXAotICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQb3B1cE1lbnUuaCBcCi0gICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNlYXJjaFBvcHVwTWVudS5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaCBcCkBAIC0zMzczLDggKzMzNjksNiBAQCBTT1VSQ0VTICs9IFwKICAgICAu
Li9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkJhY2tGb3J3YXJkQ29udHJvbGxlckNsaWVudC5jcHAgXAotICAgIC4uL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIFwKLSAgICAuLi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBcCiAgICAg
Li4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkVycm9yc1F0LmNwcCBc
CiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdB
cmVhLmNwcCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
Y3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDAwNmE3MGVkMmYy
NWJhYjk2ZjcxNjM3YmNlY2I3MTcyOGMyMTg1MjEuLmM3ZTRjODAwYTAwYWExYjhlYTdjZjA1YmEw
MDBjMGMwNTIyYzIyNzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
MjM3MjAsMTAgKzIzNzIwLDYgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQot
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxQb3B1cE1lbnVXaW4uaCINCi0JCQkJ
CT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVx3aW5cU2Nyb2xsYmFyVGhlbWVTYWZhcmkuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+
DQpAQCAtMjM3NDQsMTAgKzIzNzQwLDYgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxG
aWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxTZWFyY2hQb3B1cE1lbnVX
aW4uaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVx3aW5cU2hhcmVkQnVmZmVyV2luLmNwcCINCiAJCQkJCT4NCiAJCQkJ
PC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjAyYzI5Njc4NDE2YWU1YzdiYmFjZGU4ZTAxYWZiZmUwODc2ZjlmYS4uMWRiY2FiZjNmOWU2NzQ2
YTUwN2VkZjA5YTEzOTFkNWIyMDVkODgxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQyLDcgKzQyLDcgQEAKIAkJMDY1QUQ0RjUwQjBDMkVEQTAwNUEy
QjFEIC8qIENvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGMjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwNjVBRDRGNjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFENEYzMEIw
QzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQkwNjVB
RDRGNzBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGNDBCMEMyRURBMDA1
QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDY2OEUxOEIwQUREOTYyNDAwNDEyOEUwIC8qIFBv
cHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA2NjhFMThCMEFERDk2MjQwMDQxMjhF
MCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA2NjhFMTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKIAkJ
MDY2OEUxOTAwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NjhFMThFMEFERDk2NDAwMDQxMjhF
MCAvKiBQb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCTA2NkM3NzJCMEFCNjAzQjcwMDIzOENDNCAv
KiBGaWxlQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDY2Qzc3MkQwQUI2MDNE
MjAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2Qzc3MkMwQUI2MDNEMjAwMjM4Q0M0IC8qIEZpbGVDaG9v
c2VyTWFjLm1tICovOyB9OwpAQCAtMzYxOSwxMiArMzYxOSwxMiBAQAogCQlBQjRDQjRFQjBCOEJE
QTNEMDA5RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI0Q0I0RUEwQjhCREEzRDAwOUY0MEIw
IC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCAqLzsgfTsKIAkJQUI2N0QxQTgwOTdGM0FF
MzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNjdEMUE2MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5k
ZXJUZXh0Q29udHJvbC5jcHAgKi87IH07CiAJCUFCNjdEMUE5MDk3RjNBRTMwMEY5MzkyRSAvKiBS
ZW5kZXJUZXh0Q29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUI2N0QxQTcwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmgg
Ki87IH07Ci0JCUFCNzE3MDg5MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDg4MEIz
MTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBQjcxNzA4OTBCMzExODA4MDAxNzEyM0UgLyog
U2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggKi87
IH07CiAJCUFCNzE3MEEwMEIzMTE5M0IwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnVNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjcxNzA5RjBC
MzExOTNCMDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51TWFjLm1tICovOyB9OwogCQlBQkFGMjIw
ODBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJBRjIyMDcwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9t
ZU1hYy5tbSAqLzsgfTsKIAkJQUJCNTQxOUUwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RC
b3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJC
NTQxOUMwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RCb3guY3BwICovOyB9OwogCQlBQkI1
NDE5RjBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJCNTQxOUQwQUNEREZFNDAwMjgyMEVCIC8q
IFJlbmRlckxpc3RCb3guaCAqLzsgfTsKLQkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1IC8qIFBv
cHVwTWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUFCQzEyODc3MEIz
M0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1
cE1lbnVDbGllbnQuaCAqLzsgfTsKIAkJQUJEREZFNzkwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRl
ck1lbnVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFCRERGRTczMEE1QzZFNkYwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5jcHAgKi87IH07
CiAJCUFCRERGRTdBMEE1QzZFNzAwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZFNzQwQTVDNkU3MDAw
QTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggKi87IH07CiAJCUFCRkU3RTEyMEQzMkZBRjYwMDY2
RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkZFN0UxMDBEMzJGQUY1MDA2NkY0RDIgLyogTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwICovOyB9OwpAQCAtNTA0NSw4ICs1MDQ1LDYgQEAKIAkJRDIzQ0E1
NUQwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTVDMEFCMEVBQUUwMDUxMDhBNSAv
KiBKU1JhbmdlRXhjZXB0aW9uLmggKi87IH07CiAJCUQyM0NBNTVGMEFCMEVBQjYwMDUxMDhBNSAv
KiBKU1JhbmdlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQyM0NBNTVFMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9u
LmNwcCAqLzsgfTsKIAkJRDIzQ0E1NkMwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU2
QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLzsgfTsKLQkJRDM5RDAwNkQx
MUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVw
TWVudU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCUQzOUQwMDlEMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDlDMTFGOTA3
RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyog
Q29va2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
OEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8q
IEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50
Q29tbWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRP
dXRkZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmgg
Ki87IH07CkBAIC0xMDc2MCw4ICsxMDc1OCw2IEBACiAJCUQyM0NBNTVDMEFCMEVBQUUwMDUxMDhB
NSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1JhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQyM0NB
NTVFMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JhbmdlRXhjZXB0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhj
ZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUV4Y2VwdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMzlEMDA2QzExRjhFMzA4MDA2MDQx
RjIgLyogUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBv
cHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMzlEMDA5QzExRjkw
N0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNlYXJjaFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21t
YW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQyOTAw
MjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTIzMzAsMTIgKzEyMzI2LDEwIEBACiAJCQkJNEIyNzA5ODEwQUYyRTVFMDAwNjUx
MjdGIC8qIFBhc3RlYm9hcmRNYWMubW0gKi8sCiAJCQkJOTM1QzQ3NkYwOUFDNEQ3MzAwQTZBQUI0
IC8qIFBsYXRmb3JtTW91c2VFdmVudE1hYy5tbSAqLywKIAkJCQlCQzk0RDEwNzBDMjc0Rjg4MDA2
QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8sCi0JCQkJRDM5RDAwNkMxMUY4RTMwODAw
NjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oICovLAogCQkJCTA2NjhFMThFMEFERDk2NDAwMDQxMjhF
MCAvKiBQb3B1cE1lbnVNYWMubW0gKi8sCiAJCQkJRTRENjg3NzYwRUQ3QUUzRDAwNkVBOTc4IC8q
IFB1cmdlYWJsZUJ1ZmZlck1hYy5jcHAgKi8sCiAJCQkJNDQ3RDY5MDEwRkE2MjY4MTAwMTVDQ0Ix
IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovLAogCQkJCTQ0N0Q2OTAyMEZBNjI2ODEw
MDE1Q0NCMSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0gKi8sCi0JCQkJRDM5RDAwOUMx
MUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovLAogCQkJCTFDRTI0Rjk2
MEQ3Q0FGMEUwMDdFMDRDMiAvKiBTY2hlZHVsZVBhaXJNYWMubW0gKi8sCiAJCQkJQkNBQTkwQzIw
QTdFQkE2MDAwOEIxMjI5IC8qIFNjcm9sbGJhci5jcHAgKi8sCiAJCQkJQkM4Qjg1M0MwRTdDN0Yx
MTAwQUI2OTg0IC8qIFNjcm9sbGJhclRoZW1lTWFjLmggKi8sCkBAIC0xOTk4MSw4ICsxOTk3NSw2
IEBACiAJCQkJQzU3MkVFMEUxMjAxQzczNjAwN0Q4RjgyIC8qIElEQkluZGV4QmFja2VuZEltcGwu
aCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzJFRTBGMTIwMUM3MzYwMDdEOEY4MiAvKiBJREJJbmRl
eEJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzJFRTFGMTIwMUM5QkMw
MDdEOEY4MiAvKiBKU0lEQkluZGV4LmggaW4gSGVhZGVycyAqLywKLQkJCQlEMzlEMDA2RDExRjhF
MzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLywKLQkJCQlEMzlEMDA5
RDExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYmE3ODQxYzQ5ZTY1MmI0MzEzMTY0MTE5NGE3YjIyNGEw
YjQ0NDc1Yy4uZWNhMDFlODExYWNlODBkZTA0MmYxNjNmYTY3YTY4YWEzYmE1ZWU0ZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKQEAgLTEsNyArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2
IEVyaWMgU2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsOSArMzksNyBAQAogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5j
bHVkZSAiUGx1Z2luSGFsdGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogCiAj
aWYgVVNFKEdMRVMyX1JFTkRFUklORykKICNpbmNsdWRlICJHTEVTMkNvbnRleHQuaCIKQEAgLTYz
LDI1ICs2MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRW1wdHlQb3B1cE1l
bnUgOiBwdWJsaWMgUG9wdXBNZW51IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgc2hvdyhj
b25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50KSB7fQotICAgIHZpcnR1YWwgdm9pZCBoaWRl
KCkge30KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSB7fQotICAgIHZpcnR1
YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkge30KLX07Ci0KLWNsYXNzIEVtcHR5U2VhcmNoUG9w
dXBNZW51IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBQ
b3B1cE1lbnUqIHBvcHVwTWVudSgpIHsgcmV0dXJuICZtX3BvcHVwOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYpIHt9Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHt9Ci0gICAgdmlydHVhbCBib29sIGVuYWJs
ZWQoKSB7IHJldHVybiBmYWxzZTsgfQotCi1wcml2YXRlOgotICAgIEVtcHR5UG9wdXBNZW51IG1f
cG9wdXA7Ci19OwotCiBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGll
bnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkVtcHR5Q2hyb21lQ2xpZW50KCkgeyB9CkBAIC0x
MzQsMTAgKzExMiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFBy
b21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQo
KSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Qg
eyByZXR1cm4gYWRvcHRSZWYobmV3IEVtcHR5UG9wdXBNZW51KCkpOyB9Ci0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCopIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbXB0eVNlYXJjaFBvcHVwTWVu
dSgpKTsgfQotCiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5n
JikgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcAppbmRleCBiZmYwMTAwMjU3YjE4ZmYzZjRlZmFkZmQ5NmNmMDFhNDg1YjFl
OTgyLi4wYzY2OTI1NDJjYjI2ODg3NzVlM2Q3ZWYyODliY2MwMmNmNzZmNTVjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJp
Z2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00ODIsMTkgKzQ4Miw1IEBAIGJvb2wgQ2hyb21lQ2xp
ZW50OjpwYWludEN1c3RvbVNjcm9sbENvcm5lcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9h
dFJlY3QmKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBDaHJvbWU6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1cm4gbV9jbGllbnQtPnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci19Ci0KLVBhc3NSZWZQdHI8UG9wdXBN
ZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVBvcHVwTWVudShjbGllbnQpOwotfQot
Ci1QYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50
LT5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoY2xpZW50KTsKLX0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvV2ViQ29yZS9wYWdlL0No
cm9tZS5oCmluZGV4IDMwZWRmMjg2YjVkMDE2NDA4YWE1NmZkOWFlNmFkMjcyNTYxN2JkZTAuLjUz
NzQ2OGEwZjM2N2ViYmU1OWQ2YjFmOGFjNTBmYTNlZjZjZTM5MDUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTEsNiArMSw1
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTI1LDggKzI0LDYgQEAKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkZv
Y3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgotI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBAIC00Nyw3ICs0NCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAgICAg
Y2xhc3MgUGFnZTsKLSAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3RyaW5n
OwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGNsYXNzIE5vdGlmaWNhdGlvblByZXNl
bnRlcjsKQEAgLTE0OCwxMCArMTQ0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBO
b3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OyAKICNl
bmRpZgogCi0gICAgICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KTsKLSAgICAgICAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKLSAgICAgICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNy
ZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLQogICAgIHByaXZh
dGU6CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKICAgICAgICAgQ2hyb21lQ2xpZW50KiBtX2NsaWVu
dDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAppbmRleCAyOGUwYjRmZjlmY2Y1MTQ4MzI1MjhkOTFmZDE5NmZkMTcz
NTI4MWU4Li4zOWE0MWFlMzVlOWE4YTg1NDcxYzFiNjAxZmZlOGI3MmZiNDYxNzM0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCkBAIC0xLDYgKzEsNSBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjcsMTAgKzI2LDcgQEAKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VyUXVpcmtzLmgiCiAjaW5jbHVkZSAi
SG9zdFdpbmRvdy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgotI2luY2x1ZGUgIlBvcHVwTWVu
dUNsaWVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9w
dXBNZW51LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTU4LDcgKzU0LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFz
cyBTZWN1cml0eU9yaWdpbjsKLSAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3Mg
U3RyaW5nOwogICAgIGNsYXNzIFdpZGdldDsKIApAQCAtMjY3LDEwICsyNjIsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCkg
PSAwOwogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBN
ZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwotICAgICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwotCiAgICAgcHJvdGVjdGVkOgogICAgICAg
ICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKaW5k
ZXggOGViYmEwMzFmYWY4ODFjMjYyZDNlOTdjNTY0MzdkYWU4M2RhMzIxYS4uZDlkMjc0MGI3MWNk
NDgyOGJhNjQxZmU4YTJlYTE0MThhY2JlYjQ3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9Qb3B1cE1lbnUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSwy
MiArMjEsMTgwIEBACiAjaWZuZGVmIFBvcHVwTWVudV9oCiAjZGVmaW5lIFBvcHVwTWVudV9oCiAK
KyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCisj
aWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpZmRlZiBfX09C
SkNfXworQGNsYXNzIE5TUG9wVXBCdXR0b25DZWxsOworI2Vsc2UKK2NsYXNzIE5TUG9wVXBCdXR0
b25DZWxsOworI2VuZGlmCisjZWxpZiBQTEFURk9STShXSU4pCisjaW5jbHVkZSAiU2Nyb2xsYmFy
LmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgordHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwordHlwZWRlZiBzdHJ1Y3QgSERDX18qIEhE
QzsKK3R5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyogSEJJVE1BUDsKKyNlbGlmIFBMQVRGT1JNKFFU
KQorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUXRBYnN0cmFjdFdlYlBvcHVwOworfQorI2Vs
aWYgUExBVEZPUk0oR1RLKQordHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3RrTWVudTsKK3R5cGVk
ZWYgc3RydWN0IF9HdGtNZW51SXRlbSBHdGtNZW51SXRlbTsKK3R5cGVkZWYgc3RydWN0IF9HdGtX
aWRnZXQgR3RrV2lkZ2V0OworI2luY2x1ZGUgIkdSZWZQdHJHdGsuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNlbGlmIFBMQVRGT1JNKFdYKQorI2lmZGVm
IF9fV1hNU1dfXworI2luY2x1ZGUgPHd4L21zdy93aW51bmRlZi5oPgorI2VuZGlmCitjbGFzcyB3
eE1lbnU7CisjaW5jbHVkZSA8d3gvZGVmcy5oPgorI2luY2x1ZGUgPHd4L2V2ZW50Lmg+CisjZWxp
ZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJQb3B1cE1lbnVQcml2YXRlLmgiCisjZWxp
ZiBQTEFURk9STShIQUlLVSkKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFBvcHVwTWVudUhh
aWt1OworfQorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWVWaWV3
OwotY2xhc3MgSW50UmVjdDsKK2NsYXNzIFNjcm9sbGJhcjsKIAotY2xhc3MgUG9wdXBNZW51IDog
cHVibGljIFJlZkNvdW50ZWQ8UG9wdXBNZW51PiB7CitjbGFzcyBQb3B1cE1lbnUgOiBwdWJsaWMg
UmVmQ291bnRlZDxQb3B1cE1lbnU+CisjaWYgUExBVEZPUk0oV0lOKQorICAgICAgICAgICAgICAg
ICwgcHJpdmF0ZSBTY3JvbGxiYXJDbGllbnQKKyNlbmRpZgorI2lmIFBMQVRGT1JNKFdYKQorICAg
ICAgICAgICAgICAgICwgcHVibGljIHd4RXZ0SGFuZGxlcgorI2VuZGlmCit7CiBwdWJsaWM6Ci0g
ICAgdmlydHVhbCB+UG9wdXBNZW51KCkge30KLSAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJ
bnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGhp
ZGUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgPSAwOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFBvcHVwTWVudT4gY3JlYXRlKFBvcHVwTWVudUNsaWVudCogY2xpZW50KSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgUG9wdXBNZW51KGNsaWVudCkpOyB9CisgICAgflBvcHVwTWVudSgpOworICAg
IAorICAgIHZvaWQgZGlzY29ubmVjdENsaWVudCgpIHsgbV9wb3B1cENsaWVudCA9IDA7IH0KKwor
ICAgIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAg
ICB2b2lkIGhpZGUoKTsKKworICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICAKKyAg
ICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7
IH0KKworICAgIHN0YXRpYyBib29sIGl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisK
KyNpZiBQTEFURk9STShXSU4pCisgICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIoKSBjb25zdCB7IHJl
dHVybiBtX3Njcm9sbGJhci5nZXQoKTsgfQorCisgICAgc3RhdGljIExQQ1RTVFIgcG9wdXBDbGFz
c05hbWUoKTsKKworICAgIGJvb2wgdXAodW5zaWduZWQgbGluZXMgPSAxKTsKKyAgICBib29sIGRv
d24odW5zaWduZWQgbGluZXMgPSAxKTsKKworICAgIGludCBpdGVtSGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbV9pdGVtSGVpZ2h0OyB9CisgICAgY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCgpIGNv
bnN0IHsgcmV0dXJuIG1fd2luZG93UmVjdDsgfQorICAgIEludFJlY3QgY2xpZW50UmVjdCgpIGNv
bnN0OworCisgICAgaW50IHZpc2libGVJdGVtcygpIGNvbnN0OworCisgICAgaW50IGxpc3RJbmRl
eEF0UG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKKworICAgIGJvb2wgc2V0Rm9jdXNlZElu
ZGV4KGludCBpbmRleCwgYm9vbCBob3RUcmFja2luZyA9IGZhbHNlKTsKKyAgICBpbnQgZm9jdXNl
ZEluZGV4KCkgY29uc3Q7CisgICAgdm9pZCBmb2N1c0ZpcnN0KCk7CisgICAgdm9pZCBmb2N1c0xh
c3QoKTsKKworICAgIHZvaWQgcGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgSERDID0g
MCk7CisKKyAgICBIV05EIHBvcHVwSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cDsgfQor
CisgICAgdm9pZCBzZXRXYXNDbGlja2VkKGJvb2wgYiA9IHRydWUpIHsgbV93YXNDbGlja2VkID0g
YjsgfQorICAgIGJvb2wgd2FzQ2xpY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2xpY2tlZDsg
fQorCisgICAgdm9pZCBzZXRTY3JvbGxPZmZzZXQoaW50IG9mZnNldCkgeyBtX3Njcm9sbE9mZnNl
dCA9IG9mZnNldDsgfQorICAgIGludCBzY3JvbGxPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbE9mZnNldDsgfQorCisgICAgYm9vbCBzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigpOworCisg
ICAgdm9pZCBpbmNyZW1lbnRXaGVlbERlbHRhKGludCBkZWx0YSk7CisgICAgdm9pZCByZWR1Y2VX
aGVlbERlbHRhKGludCBkZWx0YSk7CisgICAgaW50IHdoZWVsRGVsdGEoKSBjb25zdCB7IHJldHVy
biBtX3doZWVsRGVsdGE7IH0KKworICAgIGJvb2wgc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlOyB9CisgICAgdm9pZCBzZXRT
Y3JvbGxiYXJDYXB0dXJpbmdNb3VzZShib29sIGIpIHsgbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3Vz
ZSA9IGI7IH0KKyNlbmRpZgorCitwcm90ZWN0ZWQ6CisgICAgUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopOworICAgIAorcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGll
bnQ7CisgICAgCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgY2xlYXIoKTsKKyAgICB2b2lk
IHBvcHVsYXRlKCk7CisKKyAgICBSZXRhaW5QdHI8TlNQb3BVcEJ1dHRvbkNlbGw+IG1fcG9wdXA7
CisjZWxpZiBQTEFURk9STShRVCkKKyAgICBRdEFic3RyYWN0V2ViUG9wdXAqIG1fcG9wdXA7Cisj
ZWxpZiBQTEFURk9STShXSU4pCisgICAgLy8gU2Nyb2xsQmFyQ2xpZW50CisgICAgdmlydHVhbCB2
b2lkIHZhbHVlQ2hhbmdlZChTY3JvbGxiYXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpOworICAgIHZpcnR1YWwg
Ym9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
c2Nyb2xsYmFyQ29ybmVyUHJlc2VudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB2
b2lkIGNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3Kik7
CisgICAgdm9pZCBpbnZhbGlkYXRlSXRlbShpbnQgaW5kZXgpOworCisgICAgc3RhdGljIExSRVNV
TFQgQ0FMTEJBQ0sgUG9wdXBNZW51V25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7
CisgICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1Bh
cmFtLCBMUEFSQU0gbFBhcmFtKTsKKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlckNsYXNzKCk7CisK
KyAgICBSZWZQdHI8U2Nyb2xsYmFyPiBtX3Njcm9sbGJhcjsKKyAgICBIV05EIG1fcG9wdXA7Cisg
ICAgSERDIG1fREM7CisgICAgSEJJVE1BUCBtX2JtcDsKKyAgICBib29sIG1fd2FzQ2xpY2tlZDsK
KyAgICBJbnRSZWN0IG1fd2luZG93UmVjdDsKKyAgICBpbnQgbV9pdGVtSGVpZ2h0OworICAgIGlu
dCBtX3Njcm9sbE9mZnNldDsKKyAgICBpbnQgbV93aGVlbERlbHRhOworICAgIGludCBtX2ZvY3Vz
ZWRJbmRleDsKKyAgICBib29sIG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2U7CisgICAgYm9vbCBt
X3Nob3dQb3B1cDsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICBJbnRQb2ludCBtX21lbnVQb3Np
dGlvbjsKKyAgICBHUmVmUHRyPEd0a01lbnU+IG1fcG9wdXA7CisgICAgSGFzaE1hcDxHdGtXaWRn
ZXQqLCBpbnQ+IG1faW5kZXhNYXA7CisgICAgc3RhdGljIHZvaWQgbWVudUl0ZW1BY3RpdmF0ZWQo
R3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVudSopOworICAgIHN0YXRpYyB2b2lkIG1lbnVVbm1h
cHBlZChHdGtXaWRnZXQqLCBQb3B1cE1lbnUqKTsKKyAgICBzdGF0aWMgdm9pZCBtZW51UG9zaXRp
b25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCosIGdpbnQqLCBnYm9vbGVhbiosIFBvcHVwTWVudSop
OworICAgIHN0YXRpYyB2b2lkIG1lbnVSZW1vdmVJdGVtKEd0a1dpZGdldCosIFBvcHVwTWVudSop
OworI2VsaWYgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShCUkVXTVApCisgICAgRnJhbWVWaWV3
KiBtX3ZpZXc7CisjZWxpZiBQTEFURk9STShXWCkKKyAgICB3eE1lbnUqIG1fbWVudTsKKyAgICB2
b2lkIE9uTWVudUl0ZW1TZWxlY3RlZCh3eENvbW1hbmRFdmVudCYpOworI2VsaWYgUExBVEZPUk0o
Q0hST01JVU0pCisgICAgUG9wdXBNZW51UHJpdmF0ZSBwOworI2VsaWYgUExBVEZPUk0oSEFJS1Up
CisgICAgUG9wdXBNZW51SGFpa3UqIG1fbWVudTsKKyNlbmRpZgorCiB9OwogCiB9CiAKLSNlbmRp
ZiAvLyBQb3B1cE1lbnVfaAorI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Nl
YXJjaFBvcHVwTWVudS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaAppbmRl
eCBkMWVjZDBmZmNlODI3NmU3NWVhYTJjMTEyM2U5ZDliM2ViYjljM2ZiLi40Mjg1Y2RmOTZiOWQ5
YWY5NTczYTM2ZDljOGFmYzRiNWQ3YTYyZmU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L1NlYXJjaFBvcHVwTWVudS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTIzLDIxICsyMywyNCBAQAogCiAjaW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF0b21pY1N0cmluZzsKIAotY2xhc3MgU2VhcmNoUG9w
dXBNZW51IDogcHVibGljIFJlZkNvdW50ZWQ8U2VhcmNoUG9wdXBNZW51PiB7CitjbGFzcyBTZWFy
Y2hQb3B1cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5T
ZWFyY2hQb3B1cE1lbnUoKSB7fQotICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxl
ZCgpID0gMDsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZShQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVw
TWVudShjbGllbnQpKTsgfQorCisgICAgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAg
IHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKworICAgIGJvb2wgZW5hYmxlZCgpOworICAgIAorcHJp
dmF0ZToKKyAgICBTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kik7CiB9OwogCiB9CiAK
LSNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVfaAorI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcv
UG9wdXBNZW51QnJldy5jcHAKaW5kZXggMThiMmI0NTExOGI0ZjhmMThhNGQxNTdjOWZmOGVjNTE1
MWMyMmQ0Ny4uZWIwM2M2NjIyYzRhZTQzYmUwNDFjYTI2ZjVjYzhjOGY3MGVjYjYzZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcApAQCAtNCw3ICs0LDYgQEAKICAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQ29tcGFueSAxMDAsIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTI0LDcgKzIzLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
UG9wdXBNZW51QnJldy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogCiAjaW5jbHVkZSAiQ2hy
b21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50QnJldy5oIgpAQCAtMzMsMjUgKzMyLDIwIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51QnJldzo6UG9wdXBNZW51QnJldyhQ
b3B1cE1lbnVDbGllbnQqIG1lbnVMaXN0KQorUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KiBtZW51TGlzdCkKICAgICA6IG1fcG9wdXBDbGllbnQobWVudUxpc3QpCiAgICAgLCBt
X3ZpZXcoMCkKIHsKIH0KIAotUG9wdXBNZW51QnJldzo6flBvcHVwTWVudUJyZXcoKQorUG9wdXBN
ZW51Ojp+UG9wdXBNZW51KCkKIHsKICAgICAvLyBUZWxsIGNsaWVudCB0byBkZXN0cm95IGRhdGEg
cmVsYXRlZCB0byB0aGlzIHBvcHVwIHNpbmNlIHRoaXMgb2JqZWN0IGlzCiAgICAgLy8gZ29pbmcg
YXdheS4KICAgICBoaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51QnJldzo6ZGlzY29ubmVjdENs
aWVudCgpCi17Ci0gICAgbV9wb3B1cENsaWVudCA9IDA7Ci19Ci0KLXZvaWQgUG9wdXBNZW51QnJl
dzo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkK
K3ZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmll
dywgaW50IGluZGV4KQogewogICAgIEFTU0VSVChtX3BvcHVwQ2xpZW50KTsKICAgICBDaHJvbWVD
bGllbnRCcmV3KiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRCcmV3Kj4o
dmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwpAQCAtNjEsNyArNTUs
NyBAQCB2b2lkIFBvcHVwTWVudUJyZXc6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVW
aWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgY2hyb21lQ2xpZW50LT5jcmVhdGVTZWxlY3RQb3B1
cChtX3BvcHVwQ2xpZW50LCBpbmRleCwgcmVjdCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51QnJldzo6
aGlkZSgpCit2b2lkIFBvcHVwTWVudTo6aGlkZSgpCiB7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAg
ICAgQ2hyb21lQ2xpZW50QnJldyogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xp
ZW50QnJldyo+KG1fdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwpA
QCAtNzAsMTggKzY0LDE0IEBAIHZvaWQgUG9wdXBNZW51QnJldzo6aGlkZSgpCiAgICAgY2hyb21l
Q2xpZW50LT5kZXN0cm95U2VsZWN0UG9wdXAoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnVCcmV3Ojp1
cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQog
ewogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0oY2xpZW50KCktPnNlbGVjdGVkSW5kZXgo
KSk7CiB9CiAKLS8vIFRoaXMgY29kZSBtdXN0IGJlIG1vdmVkIHRvIHRoZSBjb25jcmV0ZSBicmV3
IENocm9tZUNsaWVudCB0aGF0IGlzIG5vdCBpbiByZXBvc2l0b3J5LgotLy8gSSBrZXB0IHRoaXMg
Y29kZSBjb21tZW50ZWQgb3V0IGhlcmUgdG8gcHJldmVudCBsb29zaW5nIHRoZSBpbmZvcm1hdGlv
biBvZiB3aGF0Ci0vLyBtdXN0IGJlIHRoZSByZXR1cm4gdmFsdWUgZm9yIGJyZXcuCi0KLS8vIGJv
b2wgUG9wdXBNZW51QnJldzo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotLy8gewot
Ly8gICAgIHJldHVybiB0cnVlOwotLy8gfQorYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJy
ZXcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBjMTcxZGYzZjEwNTlkY2UxODUyNzY1MDE5NTJiNGVlOGIzMzFh
MDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIFBvcHVwTWVudUJyZXdfaAotI2RlZmluZSBQ
b3B1cE1lbnVCcmV3X2gKLQotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJQb3B1cE1l
bnUuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgRnJhbWVWaWV3OwotY2xhc3MgU2Nyb2xsYmFyOwotCi1jbGFzcyBQb3B1cE1l
bnVCcmV3IDogcHVibGljIFBvcHVwTWVudSB7Ci1wdWJsaWM6Ci0gICAgUG9wdXBNZW51QnJldyhQ
b3B1cE1lbnVDbGllbnQqKTsKLSAgICB+UG9wdXBNZW51QnJldygpOwotCi0gICAgdmlydHVhbCB2
b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7Ci0gICAgdmly
dHVhbCB2b2lkIGhpZGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOwotCi1wcml2YXRlOgotICAgIFBv
cHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQot
Ci0gICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwotICAgIEZyYW1lVmlldyogbV92
aWV3OwotfTsKLQotfQotCi0jZW5kaWYgLy8gUG9wdXBNZW51QnJld19oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5jcHAKaW5kZXggYzIyY2I3ODIwOGJiNDUw
ZDg5ZDU0NzVlMjI0M2Q3OGQ5OTI3YWIzYy4uNzgwYzdlNWQ2NmQ0ZTUxM2E4NDM1Y2ZlMDZlOGE5
MTBhZDg0YzZlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVw
TWVudUJyZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVC
cmV3LmNwcApAQCAtMSw2ICsxLDUgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29tcGFu
eSAxMDAsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDM0ICsyNCwyOSBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVCcmV3LmgiCisjaW5jbHVkZSAi
U2VhcmNoUG9wdXBNZW51LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gU2F2ZSB0aGUg
cGFzdCBzZWFyY2hlcyBzdG9yZWQgaW4gJ3NlYXJjaEl0ZW1zJyB0byBhIGRhdGFiYXNlIGFzc29j
aWF0ZWQgd2l0aCAnbmFtZScKLXZvaWQgU2VhcmNoUG9wdXBNZW51QnJldzo6c2F2ZVJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNl
YXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykK
IHsKIH0KIAogLy8gTG9hZCBwYXN0IHNlYXJjaGVzIGFzc29jaWF0ZWQgd2l0aCAnbmFtZScgZnJv
bSB0aGUgZGF0YWJhc2UgdG8gJ3NlYXJjaEl0ZW1zJwotdm9pZCBTZWFyY2hQb3B1cE1lbnVCcmV3
Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3Ry
aW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KQogewogfQogCiAvLyBDcmVhdGUgYSBzZWFyY2ggcG9wdXAgbWVudSAtIG5vdCBzdXJlIHdoYXQg
ZWxzZSB3ZSBoYXZlIHRvIGRvIGhlcmUKLVNlYXJjaFBvcHVwTWVudUJyZXc6OlNlYXJjaFBvcHVw
TWVudUJyZXcoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3BvcHVwKGNsaWVudCkK
K1NlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQorICAgIDogUG9wdXBNZW51KGNsaWVudCkKIHsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnVC
cmV3OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLVBvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51QnJldzo6cG9wdXBN
ZW51KCkKLXsKLSAgICByZXR1cm4gJm1fcG9wdXA7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOGVhMTAyZjI3Mzk3MTY5ZGJmMDQ0NzFkY2YzZGU1NDk5
ZDFkMGE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgU2VhcmNoUG9wdXBN
ZW51QnJld19oCi0jZGVmaW5lIFNlYXJjaFBvcHVwTWVudUJyZXdfaAotCi0jaW5jbHVkZSAiUG9w
dXBNZW51QnJldy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIFNlYXJjaFBvcHVwTWVudUJyZXcgOiBwdWJsaWMgU2VhcmNoUG9w
dXBNZW51IHsKLXB1YmxpYzoKLSAgICBTZWFyY2hQb3B1cE1lbnVCcmV3KFBvcHVwTWVudUNsaWVu
dCopOwotCi0gICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOwotICAgIHZpcnR1YWwg
dm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpOwotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgUG9w
dXBNZW51QnJldyBtX3BvcHVwOwotfTsKLQotfQotCi0jZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51
QnJld19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNo
cm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0u
Y3BwCmluZGV4IDljNzNhOWM2OWE3NWQwMzg5NTZjMTg5ZjFiYmM2ZTk1NGZhMjZiNjkuLmQwN2Jh
MmVmYmI3N2NiNGI0NDVkMWJhZGYxODQ3M2IyNzhkMjgzYjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0xLDYgKzEsNSBAQAogLyoK
ICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtNDksNiArNDgsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRl
ICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlN0cmluZ1RydW5jYXRvci5oIgpAQCAtMTM0
MCwyMCArMTM0MCwyMCBAQCBib29sIFBvcHVwTGlzdEJveDo6aXNQb2ludEluQm91bmRzKGNvbnN0
IEludFBvaW50JiBwb2ludCkKIH0KIAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gUG9wdXBN
ZW51Q2hyb21pdW0gaW1wbGVtZW50YXRpb24KKy8vIFBvcHVwTWVudSBpbXBsZW1lbnRhdGlvbgog
Ly8gCiAvLyBOb3RlOiB5b3UgY2Fubm90IGFkZCBtZXRob2RzIHRvIHRoaXMgY2xhc3MsIHNpbmNl
IGl0IGlzIGRlZmluZWQgYWJvdmUgdGhlIAogLy8gICAgICAgcG9ydGFiaWxpdHkgbGF5ZXIuIFRv
IGFjY2VzcyBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIG9uIHRoZQogLy8gICAgICAgcG9wdXAgd2lk
Z2V0cywgdXNlIHxwb3B1cFdpbmRvd3wgYWJvdmUuIAogCi1Qb3B1cE1lbnVDaHJvbWl1bTo6UG9w
dXBNZW51Q2hyb21pdW0oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnU6OlBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVu
dCkKIHsKIH0KIAotUG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSgpCitQb3B1
cE1lbnU6On5Qb3B1cE1lbnUoKQogewotICAgIC8vIFdoZW4gdGhlIFBvcHVwTWVudUNocm9taXVt
IGlzIGRlc3Ryb3llZCwgdGhlIGNsaWVudCBjb3VsZCBhbHJlYWR5IGhhdmUgYmVlbgorICAgIC8v
IFdoZW4gdGhlIFBvcHVwTWVudSBpcyBkZXN0cm95ZWQsIHRoZSBjbGllbnQgY291bGQgYWxyZWFk
eSBoYXZlIGJlZW4KICAgICAvLyBkZWxldGVkLgogICAgIGlmIChwLnBvcHVwKQogICAgICAgICBw
LnBvcHVwLT5saXN0Qm94KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKQEAgLTEzNjQsNyArMTM2NCw3
IEBAIFBvcHVwTWVudUNocm9taXVtOjp+UG9wdXBNZW51Q2hyb21pdW0oKQogLy8gdG8gZGlzcGxh
eSwgaGFuZGxlIHRoZSBpbnB1dCB0cmFja2luZyBhbmQgbWVudSBpdGVtIHNlbGVjdGlvbiBmb3Ig
dGhlIHBvcHVwLgogLy8gV2luZG93cyBhbmQgTGludXggQ2hyb21pdW0gbGV0IG91ciBXZWJLaXQg
cG9ydCBoYW5kbGUgdGhlIGRpc3BsYXksIHdoaWxlCiAvLyBhbm90aGVyIHByb2Nlc3MgbWFuYWdl
cyB0aGUgcG9wdXAgd2luZG93IGFuZCBpbnB1dCBoYW5kbGluZy4KLXZvaWQgUG9wdXBNZW51Q2hy
b21pdW06OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCit2
b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBp
bmRleCkKIHsKICAgICBpZiAoIXAucG9wdXApCiAgICAgICAgIHAucG9wdXAgPSBQb3B1cENvbnRh
aW5lcjo6Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0LCBkcm9wRG93blNl
dHRpbmdzKTsKQEAgLTEzNzUsMjEgKzEzNzUsMjAgQEAgdm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6
c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKICNlbmRpZgog
fQogCi12b2lkIFBvcHVwTWVudUNocm9taXVtOjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51OjpoaWRl
KCkKIHsKICAgICBpZiAocC5wb3B1cCkKICAgICAgICAgcC5wb3B1cC0+aGlkZSgpOwogfQogCi12
b2lkIFBvcHVwTWVudUNocm9taXVtOjp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVu
dTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewogICAgIHAucG9wdXAtPmxpc3RCb3goKS0+dXBkYXRl
RnJvbUVsZW1lbnQoKTsKIH0KIAotCi12b2lkIFBvcHVwTWVudUNocm9taXVtOjpkaXNjb25uZWN0
Q2xpZW50KCkKLXsKLSAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK2Jvb2wgUG9wdXBNZW51OjppdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIAoreyAKKyAgICByZXR1cm4gZmFsc2U7IAogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTWVudUNocm9taXVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmgKaW5kZXggMGQwZTIzY2UzNWE1ZDc2MzgzMzMzMTlhYTk1MDBkMTFh
OTZlMTE5Ni4uYTg1Y2Y0OTAwZTk1ZmExMDBhY2UxMmUzYjZhNDZjOTZlNWU1ZGU4MCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaApAQCAtMzYsOCAr
MzYsNiBAQAogCiAjaW5jbHVkZSAiRnJhbWVsZXNzU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIklu
dFJlY3QuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVQcml2
YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjAzLDIzICsyMDEsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9wb3B1cE9wZW47CiB9OwogCi1jbGFzcyBQb3B1cE1lbnVDaHJvbWl1
bSA6IHB1YmxpYyBQb3B1cE1lbnUgewotcHVibGljOgotICAgIFBvcHVwTWVudUNocm9taXVtKFBv
cHVwTWVudUNsaWVudCopOwotICAgIH5Qb3B1cE1lbnVDaHJvbWl1bSgpOwotCi0gICAgdmlydHVh
bCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7Ci0gICAg
dmlydHVhbCB2b2lkIGhpZGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOwotCi1wcml2YXRlOgotICAg
IFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsg
fQotCi0gICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwotICAgIFBvcHVwTWVudVBy
aXZhdGUgcDsKLX07Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3Bw
CmluZGV4IDE4ZTg2YzZkMzU2MzcyYWEzMDM5ZGFlZDM4MTMyYTZhMTkwODZlNjUuLjg5YmZkZGQy
MTcxNmQ5Yzk5MTk4N2Q1NWFlMjk5ZmU1YzNmMmNkOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0xLDYgKzEs
NSBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMzAsMzQgKzI5LDI5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUNocm9taXVtLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9w
dXBNZW51LmgiCiAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudUNocm9t
aXVtOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAg
ICA6IG1fcG9wdXAoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBQb3B1cE1lbnUoY2xpZW50KQogewogfQogCi1Q
b3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpwb3B1cE1lbnUoKQotewotICAgIHJl
dHVybiAmbV9wb3B1cDsKLX0KLQotYm9vbCBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxl
ZCgpCitib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpzYXZlUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRl
bXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06Omxv
YWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+
JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2EyYjk4Y2YzYTQwNWQ5NzUwNWNmMjQ4MGQ3ODZlZWY1MTg4OGE4ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgU2VhcmNoUG9wdXBNZW51Q2hyb21p
dW1faAotI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bV9oCi0KLSNpbmNsdWRlICJQb3B1
cE1lbnVDaHJvbWl1bS5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNlYXJjaFBvcHVwTWVudUNocm9taXVtIDogcHVibGljIFNl
YXJjaFBvcHVwTWVudSB7Ci1wdWJsaWM6Ci0gICAgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0oUG9w
dXBNZW51Q2xpZW50Kik7Ci0KLSAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdmlydHVhbCB2b2lk
IGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJp
bmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKLQotcHJpdmF0
ZToKLSAgICBQb3B1cE1lbnVDaHJvbWl1bSBtX3BvcHVwOwotfTsKLQotfQotCi0jZW5kaWYgLy8g
U2VhcmNoUG9wdXBNZW51Q2hyb21pdW1faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUG9wdXBNZW51RWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5j
cHAKaW5kZXggNDAxZjI0ZmVhZmIyODQ4ZjBkNGNhNjRhMjNmMDgzODVkZDE5OGI3MC4uOWRjNjk4
Njk2YTllMTNkOWZlYzE4NzA4ODNmYmMxNGU2MmU5ZTY1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Q
b3B1cE1lbnVFZmwuY3BwCkBAIC0zLDcgKzMsNiBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IElO
ZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIzLDMwICsyMiwyOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJQb3B1cE1lbnVFZmwuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKIAogI2luY2x1ZGUgIkNo
cm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51Q2xp
ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51RWZsOjpQb3B1cE1lbnVF
ZmwoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogICAgICwgbV92
aWV3KDApCiB7CiB9CiAKLVBvcHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCgpCitQb3B1cE1lbnU6
On5Qb3B1cE1lbnUoKQogewogICAgIC8vIFRlbGwgY2xpZW50IHRvIGRlc3Ryb3kgZGF0YSByZWxh
dGVkIHRvIHRoaXMgcG9wdXAgc2luY2UgdGhpcyBvYmplY3QgaXMKICAgICAvLyBnb2luZyBhd2F5
LgogICAgIGhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnVFZmw6OnNob3coY29uc3QgSW50UmVj
dCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudTo6c2hv
dyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAg
ICBBU1NFUlQobV9wb3B1cENsaWVudCk7CiAgICAgQ2hyb21lQ2xpZW50RWZsKiBjaHJvbWVDbGll
bnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRFZmwqPih2aWV3LT5mcmFtZSgpLT5wYWdlKCkt
PmNocm9tZSgpLT5jbGllbnQoKSk7CkBAIC01Niw3ICs1NCw3IEBAIHZvaWQgUG9wdXBNZW51RWZs
OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQog
ICAgIGNocm9tZUNsaWVudC0+Y3JlYXRlU2VsZWN0UG9wdXAobV9wb3B1cENsaWVudCwgaW5kZXgs
IHJlY3QpOwogfQogCi12b2lkIFBvcHVwTWVudUVmbDo6aGlkZSgpCit2b2lkIFBvcHVwTWVudTo6
aGlkZSgpCiB7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQ2hyb21lQ2xpZW50RWZsKiBjaHJv
bWVDbGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRFZmwqPihtX3ZpZXctPmZyYW1lKCkt
PnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKQEAgLTY1LDE0ICs2MywxNCBAQCB2b2lkIFBv
cHVwTWVudUVmbDo6aGlkZSgpCiAgICAgY2hyb21lQ2xpZW50LT5kZXN0cm95U2VsZWN0UG9wdXAo
KTsKIH0KIAotdm9pZCBQb3B1cE1lbnVFZmw6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9w
dXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgY2xpZW50KCktPnNldFRleHRGcm9t
SXRlbShjbGllbnQoKS0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotdm9pZCBQb3B1cE1lbnVFZmw6
OmRpc2Nvbm5lY3RDbGllbnQoKQorYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCkKIHsKLSAgICBtX3BvcHVwQ2xpZW50ID0gMDsKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGEyZGJmYzg0NzA0Yzg0NmI3OGQ5OTI3MTA0ZTUwNzg3NThiNDRkMy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9Qb3B1cE1lbnVFZmwuaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSAqLwotCi0jaWZuZGVmIFBvcHVwTWVudUVmbF9oCi0jZGVmaW5lIFBvcHVwTWVudUVm
bF9oCi0KLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCi0jaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZyYW1lVmlldzsKLWNsYXNzIFNjcm9sbGJhcjsK
LWNsYXNzIFBvcHVwTWVudUNsaWVudDsKLQotY2xhc3MgUG9wdXBNZW51RWZsIDogcHVibGljIFBv
cHVwTWVudSB7Ci1wdWJsaWM6Ci0gICAgUG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVudCopOwot
ICAgIH5Qb3B1cE1lbnVFZmwoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJl
Y3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOwotICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRp
c2Nvbm5lY3RDbGllbnQoKTsKLQotcHJpdmF0ZToKLSAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KLQotICAgIFBvcHVwTWVudUNsaWVu
dCogbV9wb3B1cENsaWVudDsKLSAgICBGcmFtZVZpZXcqIG1fdmlldzsKLX07Ci0KLX0KLQotI2Vu
ZGlmIC8vIFBvcHVwTWVudUVmbF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9T
ZWFyY2hQb3B1cE1lbnVFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBN
ZW51RWZsLmNwcAppbmRleCBjYWZmZTU0ODU0MmM4NWU5OTc0ZTRjN2Y0NjA5NjYxZTQ2YWViMWIz
Li5kMTgxNzRmYWRmZDc0NGVlODYxNzY0OGJhMTE2YWRkYjhjZDI5NzhjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKQEAgLTIsNyArMiw2IEBACiAgKiAg
Q29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQog
ICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAg
KiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcwotICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDM0ICsxOSwyOSBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVFZmwuaCIKKyNpbmNsdWRl
ICJTZWFyY2hQb3B1cE1lbnUuaCIKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQb3B1cE1lbnVF
ZmwoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3BvcHVwKGNsaWVudCkKK1NlYXJj
aFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAg
IDogUG9wdXBNZW51KGNsaWVudCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1Qb3B1
cE1lbnUqIFNlYXJjaFBvcHVwTWVudUVmbDo6cG9wdXBNZW51KCkKLXsKLSAgICByZXR1cm4gJm1f
cG9wdXA7Ci19Ci0KLXZvaWQgU2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQordm9pZCBTZWFyY2hQ
b3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFy
Y2hQb3B1cE1lbnVFZmw6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBW
ZWN0b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVz
KGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudUVmbDo6ZW5hYmxlZCgpCitib29sIFNl
YXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVw
TWVudUVmbC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0Y2IyZTU4Y2Q3NWQyZDAxMzg2ZmQwNDAwZjhi
MzIxMzY5NjVlNWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgU2VhcmNoUG9w
dXBNZW51RWZsX2gKLSNkZWZpbmUgU2VhcmNoUG9wdXBNZW51RWZsX2gKLQotI2luY2x1ZGUgIlBv
cHVwTWVudUVmbC5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIFNlYXJjaFBvcHVwTWVudUVmbCA6IHB1YmxpYyBTZWFyY2hQb3B1
cE1lbnUgewotcHVibGljOgotICAgIFNlYXJjaFBvcHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQq
KTsKLQotICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0
ZW1zKTsKLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOwotCi1wcml2YXRlOgotICAgIFBvcHVw
TWVudUVmbCBtX3BvcHVwOwotfTsKLQotfQotCi0jZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51RWZs
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCmluZGV4IGNhMDY3ZDlhYWNmODk1
M2UwMzRhZDA5ZDAyZmQxZWE5MTUzOTA4N2UuLmJmOGNmYjQ1YTNlNzZhNTZmMjU5OTAxMWEzZDdh
ZmI0ZDdlNmI5MWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0
ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcApAQCAtNCw3
ICs0LDYgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTWljaGFlbCBFbW1lbCBt
aWtlLmVtbWVsQGdtYWlsLmNvbQogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNCw3ICsyMyw3IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudUd0ay5oIgorI2luY2x1
ZGUgIlBvcHVwTWVudS5oIgogCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3Rr
VmVyc2lvbmluZy5oIgpAQCAtMzUsMTIgKzM0LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUG9wdXBNZW51R3RrOjpQb3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQ
b3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9w
dXBDbGllbnQoY2xpZW50KQogewogfQogCi1Qb3B1cE1lbnVHdGs6On5Qb3B1cE1lbnVHdGsoKQor
UG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKIHsKICAgICBpZiAobV9wb3B1cCkgewogICAgICAgICBn
X3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQobV9wb3B1cC5nZXQoKSwgR19TSUdO
QUxfTUFUQ0hfREFUQSwgMCwgMCwgMCwgMCwgdGhpcyk7CkBAIC00OCw3ICs0Nyw3IEBAIFBvcHVw
TWVudUd0azo6flBvcHVwTWVudUd0aygpCiAgICAgfQogfQogCi12b2lkIFBvcHVwTWVudUd0azo6
c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3Zv
aWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywg
aW50IGluZGV4KQogewogICAgIEFTU0VSVChjbGllbnQoKSk7CiAKQEAgLTExMSw0MyArMTEwLDQz
IEBAIHZvaWQgUG9wdXBNZW51R3RrOjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmll
dyogdmlldywgaW50IGluZGV4KQogICAgIGd0a19tZW51X3BvcHVwKG1fcG9wdXAuZ2V0KCksIDAs
IDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R3RrTWVudVBvc2l0aW9uRnVuYz4obWVudVBvc2l0aW9uRnVu
Y3Rpb24pLCB0aGlzLCAwLCBndGtfZ2V0X2N1cnJlbnRfZXZlbnRfdGltZSgpKTsKIH0KIAotdm9p
ZCBQb3B1cE1lbnVHdGs6OmhpZGUoKQordm9pZCBQb3B1cE1lbnU6OmhpZGUoKQogewogICAgIEFT
U0VSVChtX3BvcHVwKTsKICAgICBndGtfbWVudV9wb3Bkb3duKG1fcG9wdXAuZ2V0KCkpOwogfQog
Ci12b2lkIFBvcHVwTWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnU6
OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNs
aWVudCgpLT5zZWxlY3RlZEluZGV4KCkpOwogfQogCi12b2lkIFBvcHVwTWVudUd0azo6ZGlzY29u
bmVjdENsaWVudCgpCitib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKQogewotICAgIG1fcG9wdXBDbGllbnQgPSAwOworICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIFBvcHVwTWVudUd0azo6bWVudUl0ZW1BY3RpdmF0ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBv
cHVwTWVudUd0ayogdGhhdCkKK3ZvaWQgUG9wdXBNZW51OjptZW51SXRlbUFjdGl2YXRlZChHdGtN
ZW51SXRlbSogaXRlbSwgUG9wdXBNZW51KiB0aGF0KQogewogICAgIEFTU0VSVCh0aGF0LT5jbGll
bnQoKSk7CiAgICAgQVNTRVJUKHRoYXQtPm1faW5kZXhNYXAuY29udGFpbnMoR1RLX1dJREdFVChp
dGVtKSkpOwogICAgIHRoYXQtPmNsaWVudCgpLT52YWx1ZUNoYW5nZWQodGhhdC0+bV9pbmRleE1h
cC5nZXQoR1RLX1dJREdFVChpdGVtKSkpOwogfQogCi12b2lkIFBvcHVwTWVudUd0azo6bWVudVVu
bWFwcGVkKEd0a1dpZGdldCosIFBvcHVwTWVudUd0ayogdGhhdCkKK3ZvaWQgUG9wdXBNZW51Ojpt
ZW51VW5tYXBwZWQoR3RrV2lkZ2V0KiwgUG9wdXBNZW51KiB0aGF0KQogewogICAgIEFTU0VSVCh0
aGF0LT5jbGllbnQoKSk7CiAgICAgdGhhdC0+Y2xpZW50KCktPnBvcHVwRGlkSGlkZSgpOwogfQog
Ci12b2lkIFBvcHVwTWVudUd0azo6bWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQq
IHgsIGdpbnQqIHksIGdib29sZWFuKiBwdXNoSW4sIFBvcHVwTWVudUd0ayogdGhhdCkKK3ZvaWQg
UG9wdXBNZW51OjptZW51UG9zaXRpb25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCogeCwgZ2ludCog
eSwgZ2Jvb2xlYW4qIHB1c2hJbiwgUG9wdXBNZW51KiB0aGF0KQogewogICAgICp4ID0gdGhhdC0+
bV9tZW51UG9zaXRpb24ueCgpOwogICAgICp5ID0gdGhhdC0+bV9tZW51UG9zaXRpb24ueSgpOwog
ICAgICpwdXNoSW4gPSB0cnVlOwogfQogCi12b2lkIFBvcHVwTWVudUd0azo6bWVudVJlbW92ZUl0
ZW0oR3RrV2lkZ2V0KiB3aWRnZXQsIFBvcHVwTWVudUd0ayogdGhhdCkKK3ZvaWQgUG9wdXBNZW51
OjptZW51UmVtb3ZlSXRlbShHdGtXaWRnZXQqIHdpZGdldCwgUG9wdXBNZW51KiB0aGF0KQogewog
ICAgIEFTU0VSVCh0aGF0LT5tX3BvcHVwKTsKICAgICBndGtfY29udGFpbmVyX3JlbW92ZShHVEtf
Q09OVEFJTkVSKHRoYXQtPm1fcG9wdXAuZ2V0KCkpLCB3aWRnZXQpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
b3B1cE1lbnVHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmI0ZTdkZDlmZTM5
N2U3OTQwODc3MjY2OTIxMTQ0ZmEzYWZhNWRiOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaAor
KysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIFBv
cHVwTWVudUd0a19oCi0jZGVmaW5lIFBvcHVwTWVudUd0a19oCi0KLSNpbmNsdWRlICJHUmVmUHRy
R3RrLmgiCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgotI2lu
Y2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgotI2luY2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLQotdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3RrTWVudTsKLXR5cGVk
ZWYgc3RydWN0IF9HdGtNZW51SXRlbSBHdGtNZW51SXRlbTsKLXR5cGVkZWYgc3RydWN0IF9HdGtX
aWRnZXQgR3RrV2lkZ2V0OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZyYW1lVmll
dzsKLWNsYXNzIFNjcm9sbGJhcjsKLQotY2xhc3MgUG9wdXBNZW51R3RrIDogcHVibGljIFBvcHVw
TWVudSB7Ci1wdWJsaWM6Ci0gICAgUG9wdXBNZW51R3RrKFBvcHVwTWVudUNsaWVudCopOwotICAg
IH5Qb3B1cE1lbnVHdGsoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3Qm
LCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOwotICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7Ci0gICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Nv
bm5lY3RDbGllbnQoKTsKLQotcHJpdmF0ZToKLSAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KLQotICAgIHN0YXRpYyB2b2lkIG1lbnVJ
dGVtQWN0aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVtLCBQb3B1cE1lbnVHdGsqKTsKLSAgICBzdGF0
aWMgdm9pZCBtZW51VW5tYXBwZWQoR3RrV2lkZ2V0KiwgUG9wdXBNZW51R3RrKik7Ci0gICAgc3Rh
dGljIHZvaWQgbWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQqLCBnaW50KiwgZ2Jv
b2xlYW4qLCBQb3B1cE1lbnVHdGsqKTsKLSAgICBzdGF0aWMgdm9pZCBtZW51UmVtb3ZlSXRlbShH
dGtXaWRnZXQqLCBQb3B1cE1lbnVHdGsqKTsKLQotICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1
cENsaWVudDsKLSAgICBJbnRQb2ludCBtX21lbnVQb3NpdGlvbjsKLSAgICBHUmVmUHRyPEd0a01l
bnU+IG1fcG9wdXA7Ci0gICAgSGFzaE1hcDxHdGtXaWRnZXQqLCBpbnQ+IG1faW5kZXhNYXA7Ci19
OwotCi19Ci0KLSNlbmRpZiAvLyBQb3B1cE1lbnVHdGtfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1NlYXJjaFBvcHVwTWVudUd0ay5jcHAKaW5kZXggZGZiODRhYWZiYTY2MzJjZGU5MzUwZGYzODZm
ZGQ1YzkyYzE1YjQxZi4uZmJhYTUyNzI2ZGMxYTY0MzNhOGI3NTEwM2NkYjQxNGVhZTk4YThlMCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwCkBAIC0xLDYg
KzEsNCBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0gKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAgKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBA
IC0xNywzNCArMTUsMjkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
U2VhcmNoUG9wdXBNZW51R3RrLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJj
aFBvcHVwTWVudUd0azo6U2VhcmNoUG9wdXBNZW51R3RrKFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQotICAgIDogbV9wb3B1cChjbGllbnQpCitTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IFBvcHVwTWVudShjbGllbnQpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVHdGs6
OnBvcHVwTWVudSgpCi17Ci0gICAgcmV0dXJuICZtX3BvcHVwOwotfQotCi12b2lkIFNlYXJjaFBv
cHVwTWVudUd0azo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51R3RrOjpsb2FkUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBTZWFy
Y2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0
b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBTZWFyY2hQ
b3B1cE1lbnVHdGs6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzRjMTdiNDcyNzVmNTQyYWJiNDY3YjBlOTczN2FhZDNkYzRjZDhhOC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9T
ZWFyY2hQb3B1cE1lbnVHdGsuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KLSAqCi0gKi8KLQotI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVHdGtfaAotI2RlZmluZSBTZWFy
Y2hQb3B1cE1lbnVHdGtfaAotCi0jaW5jbHVkZSAiUG9wdXBNZW51R3RrLmgiCi0jaW5jbHVkZSAi
U2VhcmNoUG9wdXBNZW51LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU2VhcmNo
UG9wdXBNZW51R3RrIDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7Ci1wdWJsaWM6Ci0gICAgU2Vh
cmNoUG9wdXBNZW51R3RrKFBvcHVwTWVudUNsaWVudCopOwotCi0gICAgdmlydHVhbCBQb3B1cE1l
bnUqIHBvcHVwTWVudSgpOwotICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
OwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotICAgIHZpcnR1YWwgYm9vbCBl
bmFibGVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgUG9wdXBNZW51R3RrIG1fcG9wdXA7Ci19OwotCi19
Ci0KLSNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVHdGtfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1
L1BvcHVwTWVudUhhaWt1LmNwcAppbmRleCBlM2VkYjgzMTZkYmMyOGU5YmU0ZDdmNGExNGM5YWZl
OWRmMDgxOTIwLi41YWRiYzY2MjBjZDIxYzM4MzY1ZDI2Yjk5N2FhYzJiMzEyODEyMjg3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcApAQCAtMiw3ICsyLDYgQEAK
ICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBwb3B1cCBtZW51IGltcGxlbWVudGF0aW9uIGZv
ciA8c2VsZWN0PiBlbGVtZW50cyBpbiBXZWJDb3JlLgogICoKICAqIENvcHlyaWdodCAoQykgMjAx
MCBTdGVwaGFuIEHDn211cyA8c3VwZXJzdGlwcGlAZ214LmRlPgotICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjIsNyArMjEsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJQb3B1cE1lbnVIYWlrdS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgog
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKQEAgLTczLDkgKzcyLDkgQEAgcHJpdmF0ZToKICAg
ICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CiB9OwogCi1jbGFzcyBIYWlrdVBvcHVw
IDogcHVibGljIEJQb3BVcE1lbnUgeworY2xhc3MgUG9wdXBNZW51SGFpa3UgOiBwdWJsaWMgQlBv
cFVwTWVudSB7CiBwdWJsaWM6Ci0gICAgSGFpa3VQb3B1cChQb3B1cE1lbnVDbGllbnQqIHBvcHVw
Q2xpZW50KQorICAgIFBvcHVwTWVudUhhaWt1KFBvcHVwTWVudUNsaWVudCogcG9wdXBDbGllbnQp
CiAgICAgICAgIDogQlBvcFVwTWVudSgiV2ViQ29yZSBQb3B1cCIsIHRydWUsIGZhbHNlKQogICAg
ICAgICAsIG1fcG9wdXBDbGllbnQocG9wdXBDbGllbnQpCiAgICAgICAgICwgbV9IYW5kbGVyKHBv
cHVwQ2xpZW50KQpAQCAtODcsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgICAgIFNldEFzeW5jQXV0
b0Rlc3RydWN0KGZhbHNlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5IYWlrdVBvcHVwKCkKKyAg
ICB2aXJ0dWFsIH5Qb3B1cE1lbnVIYWlrdSgpCiAgICAgewogICAgICAgICBpZiAoYmVfYXBwLT5M
b2NrKCkpIHsKICAgICAgICAgICAgIGJlX2FwcC0+UmVtb3ZlSGFuZGxlcigmbV9IYW5kbGVyKTsK
QEAgLTE1NCwzOSArMTUzLDM5IEBAIHByaXZhdGU6CiAgICAgUG9wdXBNZW51SGFuZGxlciBtX0hh
bmRsZXI7CiB9OwogCi1Qb3B1cE1lbnVIYWlrdTo6UG9wdXBNZW51SGFpa3UoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpCitQb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQotICAgICwgbV9tZW51KG5ldyBIYWlrdVBv
cHVwKGNsaWVudCkpCisgICAgLCBtX21lbnUobmV3IFBvcHVwTWVudUhhaWt1KGNsaWVudCkpCiB7
CiAgICAgLy8gV2UgZG9uJ3QgbmVlZCBhZGRpdGlvbmFsIHJlZmVyZW5jZXMgdG8gdGhlIGNsaWVu
dCwgc2luY2Ugd2UgY29tcGxldGVseQogICAgIC8vIGNvbnRyb2wgYW55IHN1Yi1vYmplY3RzIHdl
IGNyZWF0ZSB0aGF0IG5lZWQgaXQgYXMgd2VsbC4KIH0KIAotUG9wdXBNZW51SGFpa3U6On5Qb3B1
cE1lbnVIYWlrdSgpCitQb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQogewogICAgIGRlbGV0ZSBtX21l
bnU7CiB9CiAKLXZvaWQgUG9wdXBNZW51SGFpa3U6OmRpc2Nvbm5lY3RDbGllbnQoKQotewotICAg
IG1fcG9wdXBDbGllbnQgPSAwOwotfQotCi12b2lkIFBvcHVwTWVudUhhaWt1OjpzaG93KGNvbnN0
IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQordm9pZCBQb3B1cE1l
bnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgp
CiB7CiAgICAgLy8gVGhlIG1lbnUgd2lsbCB1cGRhdGUgaXRzZWxmIGZyb20gdGhlIFBvcHVwTWVu
dUNsaWVudCBiZWZvcmUgc2hvd2luZy4KICAgICBtX21lbnUtPnNob3cocmVjdCwgdmlldywgaW5k
ZXgpOwogfQogCi12b2lkIFBvcHVwTWVudUhhaWt1OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51Ojpo
aWRlKCkKIHsKICAgICBtX21lbnUtPmhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnVIYWlrdTo6
dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkK
IHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVk
SW5kZXgoKSk7CiB9CiAKK2Jvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTIwNzkyMzE2MjU0Mjk1NWUzZjZlNThjZGExYTgyYzkwM2YzZTY5Ny4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgUG9wdXBNZW51SGFpa3VfaAotI2RlZmlu
ZSBQb3B1cE1lbnVIYWlrdV9oCi0KLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUG9w
dXBNZW51LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCi0jaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIEZyYW1lVmlldzsKLWNsYXNzIEhhaWt1UG9wdXA7Ci1jbGFzcyBTY3Jv
bGxiYXI7Ci0KLWNsYXNzIFBvcHVwTWVudUhhaWt1IDogcHVibGljIFBvcHVwTWVudSB7Ci1wdWJs
aWM6Ci0gICAgUG9wdXBNZW51SGFpa3UoUG9wdXBNZW51Q2xpZW50Kik7Ci0gICAgflBvcHVwTWVu
dUhhaWt1KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVW
aWV3KiwgaW50IGluZGV4KTsKLSAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOwotICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xp
ZW50KCk7Ci0KLXByaXZhdGU6Ci0gICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9Ci0KLSAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBD
bGllbnQ7Ci0gICAgSGFpa3VQb3B1cCogbV9tZW51OwotfTsKLQotfQotCi0jZW5kaWYgLy8gUG9w
dXBNZW51SGFpa3VfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQ
b3B1cE1lbnVIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVu
dUhhaWt1LmNwcAppbmRleCA0NDMzOGU1MjRhNDRkNmIzNzI5MmQ3YjFhZGI1MDVhMmI3OWMxYjMy
Li5mZDVkOTZjNDM1ZjFkYjJkMzljMWM5NzIyM2ZkY2Y0NjE0NzMyNmRlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmNwcApAQCAtMSw2ICsxLDUg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgUnlhbiBMZWF2ZW5nb29kIDxsZWF2ZW5nb29k
QGdtYWlsLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE5LDcgKzE4
LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBN
ZW51SGFpa3UuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKIAogI2luY2x1ZGUgIkF0
b21pY1N0cmluZy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCkBAIC0yNywzMSArMjYs
MjYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnVIYWlrdTo6U2Vh
cmNoUG9wdXBNZW51SGFpa3UoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3BvcHVw
KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KQorICAgIDogUG9wdXBNZW51KGNsaWVudCkKIHsKIH0KIAotdm9pZCBTZWFyY2hQ
b3B1cE1lbnVIYWlrdTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1l
bnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci12b2lkIFNlYXJjaFBvcHVwTWVudUhhaWt1Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJj
aFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwg
VmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51SGFpa3U6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1
cE1lbnU6OmVuYWJsZWQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1Qb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudUhhaWt1Ojpwb3B1cE1lbnUoKQot
ewotICAgIHJldHVybiBtX3BvcHVwOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjUzMmQzY2M5MTI4YjM5MTFjNDU0NjA4NTNmNDFiM2ZkNjA5
OTNjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgU2VhcmNoUG9wdXBN
ZW51SGFpa3VfaAotI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVIYWlrdV9oCi0KLSNpbmNsdWRlICJQ
b3B1cE1lbnVIYWlrdS5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNlYXJjaFBvcHVwTWVudUhhaWt1IDogcHVibGljIFNlYXJj
aFBvcHVwTWVudSB7Ci1wdWJsaWM6Ci0gICAgU2VhcmNoUG9wdXBNZW51SGFpa3UoUG9wdXBNZW51
Q2xpZW50Kik7Ci0KLSAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7Ci0gICAgdmly
dHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBz
ZWFyY2hJdGVtcyk7Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKLQotcHJpdmF0ZToKLSAg
ICBQb3B1cE1lbnVIYWlrdSBtX3BvcHVwOwotfTsKLQotfQotCi0jZW5kaWYgLy8gU2VhcmNoUG9w
dXBNZW51SGFpa3VfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLmggYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGJiYzM3ZDQxZWRiMmRkYzRlODI1NDU3NjRmODBjMTkzNDJjYTAx
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIFBvcHVwTWVudU1hY19oCi0jZGVmaW5lIFBvcHVw
TWVudU1hY19oCi0KLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51Lmgi
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQotY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUG9wdXBNZW51Q2xpZW50OwotY2xhc3Mg
RnJhbWVWaWV3OwotY2xhc3MgU2Nyb2xsYmFyOwotCi1jbGFzcyBQb3B1cE1lbnVNYWMgOiBwdWJs
aWMgUG9wdXBNZW51IHsKLXB1YmxpYzoKLSAgICBQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50
Kik7Ci0gICAgflBvcHVwTWVudU1hYygpOwotCi0gICAgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkg
eyBtX3BvcHVwQ2xpZW50ID0gMDsgfQotCi0gICAgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBG
cmFtZVZpZXcqLCBpbnQgaW5kZXgpOwotICAgIHZvaWQgaGlkZSgpOwotCi0gICAgdm9pZCB1cGRh
dGVGcm9tRWxlbWVudCgpOwotCi0gICAgc3RhdGljIGJvb2wgaXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBwb3B1
bGF0ZSgpOwotICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9w
b3B1cENsaWVudDsgfQotCi0gICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwotICAg
IFJldGFpblB0cjxOU1BvcFVwQnV0dG9uQ2VsbD4gbV9wb3B1cDsKLX07Ci0KLX0KLQotI2VuZGlm
IC8vIFBvcHVwTWVudU1hY19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1
cE1lbnVNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KaW5kZXgg
MGY1MDU5OGNhNTVlOGM2N2Y3NTExMzA4Y2FmMTI5NzgxZjhiMjFlZS4uNmMwNjdiOTJhMmJjYjE1
MGM0NWRkYmMyODJlYzkxZTI0YTgxNDBmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUG9wdXBNZW51TWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1h
Yy5tbQpAQCAtMSw2ICsxLDUgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMTksNyArMTgsNyBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9y
dCAiUG9wdXBNZW51TWFjLmgiCisjaW1wb3J0ICJQb3B1cE1lbnUuaCIKIAogI2ltcG9ydCAiQVhP
YmplY3RDYWNoZS5oIgogI2ltcG9ydCAiQ2hyb21lLmgiCkBAIC0zMiw3ICszMSw2IEBACiAjaW1w
b3J0ICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTFNlbGVjdEVsZW1lbnQuaCIK
ICNpbXBvcnQgIlBhZ2UuaCIKLSNpbXBvcnQgIlBvcHVwTWVudUNsaWVudC5oIgogI2ltcG9ydCAi
U2ltcGxlRm9udERhdGEuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKIApA
QCAtNDAsMjQgKzM4LDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAotUG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpCitQb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkK
ICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogewogfQogCi1Qb3B1cE1lbnVNYWM6On5Qb3B1
cE1lbnVNYWMoKQorUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKIHsKICAgICBpZiAobV9wb3B1cCkK
ICAgICAgICAgW21fcG9wdXAuZ2V0KCkgc2V0Q29udHJvbFZpZXc6bmlsXTsKIH0KIAotdm9pZCBQ
b3B1cE1lbnVNYWM6OmNsZWFyKCkKK3ZvaWQgUG9wdXBNZW51OjpjbGVhcigpCiB7CiAgICAgaWYg
KG1fcG9wdXApCiAgICAgICAgIFttX3BvcHVwLmdldCgpIHJlbW92ZUFsbEl0ZW1zXTsKIH0KIAot
dm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkKK3ZvaWQgUG9wdXBNZW51Ojpwb3B1bGF0ZSgp
CiB7CiAgICAgaWYgKG1fcG9wdXApCiAgICAgICAgIGNsZWFyKCk7CkBAIC0xMTYsNyArMTE0LDcg
QEAgdm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkKICAgICBbW21fcG9wdXAuZ2V0KCkgbWVu
dV0gc2V0TWVudUNoYW5nZWRNZXNzYWdlc0VuYWJsZWQ6bWVzc2FnZXNFbmFibGVkXTsKIH0KIAot
dm9pZCBQb3B1cE1lbnVNYWM6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBp
bnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZp
ZXcqIHYsIGludCBpbmRleCkKIHsKICAgICBwb3B1bGF0ZSgpOwogICAgIGludCBudW1JdGVtcyA9
IFttX3BvcHVwLmdldCgpIG51bWJlck9mSXRlbXNdOwpAQCAtMTY0LDcgKzE2Miw3IEBAIHZvaWQg
UG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGlu
ZGV4KQogICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSB2LT5mcmFtZSgpOwogICAgIE5TRXZlbnQq
IGV2ZW50ID0gW2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+Y3VycmVudE5TRXZlbnQoKSByZXRhaW5d
OwogICAgIAotICAgIFJlZlB0cjxQb3B1cE1lbnVNYWM+IHByb3RlY3Rvcih0aGlzKTsKKyAgICBS
ZWZQdHI8UG9wdXBNZW51PiBwcm90ZWN0b3IodGhpcyk7CiAKICAgICBSZXRhaW5QdHI8TlNWaWV3
PiBkdW1teVZpZXcoQWRvcHROUywgW1tOU1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cl0pOwog
ICAgIFt2aWV3IGFkZFN1YnZpZXc6ZHVtbXlWaWV3LmdldCgpXTsKQEAgLTE5NiwxNiArMTk0LDE2
IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyog
diwgaW50IGluZGV4KQogICAgIFtldmVudCByZWxlYXNlXTsKIH0KIAotdm9pZCBQb3B1cE1lbnVN
YWM6OmhpZGUoKQordm9pZCBQb3B1cE1lbnU6OmhpZGUoKQogewogICAgIFttX3BvcHVwLmdldCgp
IGRpc21pc3NQb3BVcF07CiB9CiAgICAgCi12b2lkIFBvcHVwTWVudU1hYzo6dXBkYXRlRnJvbUVs
ZW1lbnQoKQordm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKIH0KIAotYm9v
bCBQb3B1cE1lbnVNYWM6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK2Jvb2wgUG9w
dXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVN
YWMuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGY5MWEwY2NiOGM1MTFiYjNjNjczYWI4NjJkMWJlNzU3
ODQ2MzdjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5oCisrKyAvZGV2L251bGwKQEAg
LTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIFNlYXJjaFBvcHVwTWVu
dU1hY19oCi0jZGVmaW5lIFNlYXJjaFBvcHVwTWVudU1hY19oCi0KLSNpbmNsdWRlICJQb3B1cE1l
bnVNYWMuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBTZWFyY2hQb3B1cE1lbnVNYWMgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51
IHsKLXB1YmxpYzoKLSAgICBTZWFyY2hQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50Kik7Ci0K
LSAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7Ci0gICAgdmlydHVhbCB2b2lkIHNh
dmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7
Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKLQotcHJpdmF0ZToKLSAgICBQb3B1cE1lbnVN
YWMgbV9wb3B1cDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudU1hY19oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0gYi9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0KaW5kZXggNzhiMjlhNzM2
ZjYxNDQ5N2VkNDg0NDJmYzliZGEzNzZlM2ZhM2U3Yy4uMjYyNzM0ZDBjNmNkOGE0ZGNiNmRlNjY5
ZDQwMGZiYjNhMDk5NGQ0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNo
UG9wdXBNZW51TWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVu
dU1hYy5tbQpAQCAtMSw2ICsxLDUgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE5LDE0
ICsxOCwxNCBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiU2VhcmNoUG9w
dXBNZW51TWFjLmgiCisjaW1wb3J0ICJTZWFyY2hQb3B1cE1lbnUuaCIKIAogI2ltcG9ydCAiQXRv
bWljU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51TWFj
OjpTZWFyY2hQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3Bv
cHVwKGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KQorICAgIDogUG9wdXBNZW51KGNsaWVudCkKIHsKIH0KIApAQCAtMzUsMTcg
KzM0LDEyIEBAIHN0YXRpYyBOU1N0cmluZyogYXV0b3NhdmVLZXkoY29uc3QgU3RyaW5nJiBuYW1l
KQogICAgIHJldHVybiBbQCJjb20uYXBwbGUuV2ViS2l0LnNlYXJjaEZpZWxkOiIgc3RyaW5nQnlB
cHBlbmRpbmdTdHJpbmc6bmFtZV07CiB9CiAKLVBvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51TWFj
Ojpwb3B1cE1lbnUoKQotewotICAgIHJldHVybiAmbV9wb3B1cDsKLX0KLQotYm9vbCBTZWFyY2hQ
b3B1cE1lbnVNYWM6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQog
ewogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcykKIHsKICAgICBpZiAobmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYy
LDcgKzU2LDcgQEAgdm9pZCBTZWFyY2hQb3B1cE1lbnVNYWM6OnNhdmVSZWNlbnRTZWFyY2hlcyhj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3QKICAgICB9CiB9CiAKLXZvaWQgU2Vh
cmNoUG9wdXBNZW51TWFjOjpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudTo6
bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKQogewogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcAppbmRleCA1NTkwNTU2ZGYyNjBkNDE3
MDlmZjBmOTYzMGFkYjI4ZWNhMGJkNGY4Li4zMTViODkxNzMyNTJjNTIyMzZkYjk1Mzk4MTQ3ZDQ2
YTE3MjgxNjMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcApAQCAtMjQsNyArMjQs
NyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVRdC5o
IgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVk
ZSAiQ2hyb21lQ2xpZW50UXQuaCIKQEAgLTM1LDI0ICszNSwxOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVBvcHVwTWVudVF0OjpQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkKK1BvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDog
bV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX3BvcHVwKDApCiB7CiB9CiAKLVBvcHVwTWVu
dVF0Ojp+UG9wdXBNZW51UXQoKQorUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKIHsKICAgICBkZWxl
dGUgbV9wb3B1cDsKIH0KIAotCi12b2lkIFBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KCkK
LXsKLSAgICBtX3BvcHVwQ2xpZW50ID0gMDsKLX0KLQotdm9pZCBQb3B1cE1lbnVRdDo6c2hvdyhj
b25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9w
dXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGlu
ZGV4KQogewogICAgIENocm9tZUNsaWVudFF0KiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxD
aHJvbWVDbGllbnRRdCo+KAogICAgICAgICB2aWV3LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgp
LT5jbGllbnQoKSk7CkBAIC03MywxNCArNjcsMTkgQEAgdm9pZCBQb3B1cE1lbnVRdDo6c2hvdyhj
b25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIAogfQogCi12
b2lkIFBvcHVwTWVudVF0OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51OjpoaWRlKCkKIHsKICAgICBt
X3BvcHVwLT5oaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51UXQ6OnVwZGF0ZUZyb21FbGVtZW50
KCkKK3ZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit7CisgICAgY2xpZW50KCkt
PnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50LT5zZWxlY3RlZEluZGV4KCkpOworfQorCiti
b29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQogewotICAgIG1f
cG9wdXBDbGllbnQtPnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50LT5zZWxlY3RlZEluZGV4
KCkpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWE5Zjc2ZGJiNTk4OThhOWFkM2UwYjMx
YzcwNjBkNjExNDM4YTczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaAorKysgL2Rldi9udWxsCkBA
IC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIFBvcHVwTWVudVF0X2gKLSNk
ZWZpbmUgUG9wdXBNZW51UXRfaAotCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgRnJhbWVWaWV3OwotY2xhc3MgUXRBYnN0cmFjdFdlYlBvcHVw
OwotY2xhc3MgU2Nyb2xsYmFyOwotY2xhc3MgUG9wdXBNZW51Q2xpZW50OwotCi1jbGFzcyBQb3B1
cE1lbnVRdCA6IHB1YmxpYyBQb3B1cE1lbnUgewotcHVibGljOgotICAgIFBvcHVwTWVudVF0KFBv
cHVwTWVudUNsaWVudCopOwotICAgIH5Qb3B1cE1lbnVRdCgpOwotCi0gICAgdmlydHVhbCB2b2lk
IHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7Ci0gICAgdmlydHVh
bCB2b2lkIGhpZGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOwotCi1wcml2YXRlOgotICAgIFBvcHVw
TWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKLSAgICBRdEFic3RyYWN0V2ViUG9wdXAqIG1fcG9w
dXA7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBQb3B1cE1lbnVRdF9oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9RdEFic3RyYWN0V2ViUG9wdXAuaAppbmRleCA1ZjZmNjE5ZmI0ZGU4YjIxY2Q0Njc1NzAwODg5
MDMxNzBlODdjNGEzLi5kYWQ0OTk3ZDE2MmI1NTZhMGJhYjg3ZjU4NmM0YTdmZDFiY2Y4Njc1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKQEAgLTYzLDcgKzYzLDcg
QEAgcHVibGljOgogICAgIFFGb250IGZvbnQoKSB7IHJldHVybiBtX3BvcHVwQ2xpZW50LT5tZW51
U3R5bGUoKS5mb250KCkuZm9udCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFBv
cHVwTWVudVF0OworICAgIGZyaWVuZCBjbGFzcyBQb3B1cE1lbnU7CiAgICAgUG9wdXBNZW51Q2xp
ZW50KiBtX3BvcHVwQ2xpZW50OwogICAgIFFXZWJQYWdlQ2xpZW50KiBtX3BhZ2VDbGllbnQ7CiAg
ICAgaW50IG1fY3VycmVudEluZGV4OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9T
ZWFyY2hQb3B1cE1lbnVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVu
dVF0LmNwcAppbmRleCA4NjhiOWE3ODFjOGM5YzM1MTYyYTkwODE4ZmYyYmE4NzE0YTMyM2NiLi4x
ODdhNWRlMTJhMzczYjEzYWE1ZmZjYWU2N2FhNjQyNzJhNDIzOTc1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcApAQCAtMSw2ICsxLDUgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgQyAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTE5LDI5ICsxOCwyNiBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVRdC5oIgorI2luY2x1ZGUgIlNlYXJjaFBv
cHVwTWVudS5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQXRvbWljU3RyaW5n
LmgiCiAKLVNlYXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkKLSAgICA6IG1fcG9wdXAoY2xpZW50KQotewotfQorbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1Qb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudVF0Ojpwb3B1cE1lbnUoKQorU2VhcmNo
UG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAg
OiBQb3B1cE1lbnUoY2xpZW50KQogewotICAgIHJldHVybiAmbV9wb3B1cDsKIH0KIAotdm9pZCBT
ZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewog
fQogCi12b2lkIFNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCiB7CiB9
CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1l
bnU6OmVuYWJsZWQoKQogewogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9T
ZWFyY2hQb3B1cE1lbnVRdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTFjMDlk
M2UxMTQ5YWE2Zjg0YWQ1NWY5MDAyMzY4NzdjMzFhNmUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBN
ZW51UXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8K
LQotI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVRdF9oCi0jZGVmaW5lIFNlYXJjaFBvcHVwTWVudVF0
X2gKLQotI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU2VhcmNoUG9wdXBNZW51UXQgOiBw
dWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKLXB1YmxpYzoKLSAgICBTZWFyY2hQb3B1cE1lbnVRdChQ
b3B1cE1lbnVDbGllbnQqKTsKLQotICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0
cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOwotCi1wcml2
YXRlOgotICAgIFBvcHVwTWVudVF0IG1fcG9wdXA7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBTZWFy
Y2hQb3B1cE1lbnVRdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAppbmRleCBj
YmFjZDRmOWVlNGI3MDhlNDNkZjA3MTJlMjc1YjBhNWMzNzRmYzk3Li40YmM2ZGM3Zjg3OTVmOTFh
M2ZmYTk2NjllNzQ4Y2JkYWE2ZTQyMDA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdp
bi5jcHAKQEAgLTEsNyArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAw
Ny0yMDA5IFRvcmNoIE1vYmlsZSBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0yMSw3ICsyMCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlBvcHVwTWVudVdpbi5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogCiAjaW5jbHVkZSAiQml0
bWFwSW5mby5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC04Nyw3ICs4Niw3IEBAIHN0YXRp
YyB2b2lkIHRyYW5zbGF0ZVBvaW50KExQQVJBTSYgbFBhcmFtLCBIV05EIGZyb20sIEhXTkQgdG8p
CiAgICAgbFBhcmFtID0gTUFLRUxQQVJBTShwdC54LCBwdC55KTsKIH0KIAotUG9wdXBNZW51V2lu
OjpQb3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnU6OlBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50
KQogICAgICwgbV9zY3JvbGxiYXIoMCkKICAgICAsIG1fcG9wdXAoMCkKQEAgLTEwMyw3ICsxMDIs
NyBAQCBQb3B1cE1lbnVXaW46OlBvcHVwTWVudVdpbihQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkK
IHsKIH0KIAotUG9wdXBNZW51V2luOjp+UG9wdXBNZW51V2luKCkKK1BvcHVwTWVudTo6flBvcHVw
TWVudSgpCiB7CiAgICAgaWYgKG1fYm1wKQogICAgICAgICA6OkRlbGV0ZU9iamVjdChtX2JtcCk7
CkBAIC0xMTUsMTcgKzExNCwxMiBAQCBQb3B1cE1lbnVXaW46On5Qb3B1cE1lbnVXaW4oKQogICAg
ICAgICBtX3Njcm9sbGJhci0+c2V0UGFyZW50KDApOwogfQogCi12b2lkIFBvcHVwTWVudVdpbjo6
ZGlzY29ubmVjdENsaWVudCgpCi17Ci0gICAgbV9wb3B1cENsaWVudCA9IDA7Ci19Ci0KLUxQQ1RT
VFIgUG9wdXBNZW51V2luOjpwb3B1cENsYXNzTmFtZSgpCitMUENUU1RSIFBvcHVwTWVudTo6cG9w
dXBDbGFzc05hbWUoKQogewogICAgIHJldHVybiBrUG9wdXBXaW5kb3dDbGFzc05hbWU7CiB9CiAK
LXZvaWQgUG9wdXBNZW51V2luOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdmll
dywgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJh
bWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7CiAgICAgY2FsY3VsYXRlUG9zaXRpb25BbmRTaXpl
KHIsIHZpZXcpOwogICAgIGlmIChjbGllbnRSZWN0KCkuaXNFbXB0eSgpKQpAQCAtMjczLDcgKzI2
Nyw3IEBAIHZvaWQgUG9wdXBNZW51V2luOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmll
dyogdmlldywgaW50IGluZGV4KQogICAgIGhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnVXaW46
OmhpZGUoKQordm9pZCBQb3B1cE1lbnU6OmhpZGUoKQogewogICAgIGlmICghbV9zaG93UG9wdXAp
CiAgICAgICAgIHJldHVybjsKQEAgLTI4OSw3ICsyODMsNyBAQCB2b2lkIFBvcHVwTWVudVdpbjo6
aGlkZSgpCiAgICAgOjpQb3N0TWVzc2FnZShtX3BvcHVwLCBXTV9OVUxMLCAwLCAwKTsKIH0KIAot
dm9pZCBQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0
JiByLCBGcmFtZVZpZXcqIHYpCit2b2lkIFBvcHVwTWVudTo6Y2FsY3VsYXRlUG9zaXRpb25BbmRT
aXplKGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdikKIHsKICAgICAvLyByIGlzIGluIGFi
c29sdXRlIGRvY3VtZW50IGNvb3JkaW5hdGVzLCBidXQgd2Ugd2FudCB0byBiZSBpbiBzY3JlZW4g
Y29vcmRpbmF0ZXMKIApAQCAtMzc5LDcgKzM3Myw3IEBAIHZvaWQgUG9wdXBNZW51V2luOjpjYWxj
dWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2KQogICAg
IHJldHVybjsKIH0KIAotYm9vbCBQb3B1cE1lbnVXaW46OnNldEZvY3VzZWRJbmRleChpbnQgaSwg
Ym9vbCBob3RUcmFja2luZykKK2Jvb2wgUG9wdXBNZW51OjpzZXRGb2N1c2VkSW5kZXgoaW50IGks
IGJvb2wgaG90VHJhY2tpbmcpCiB7CiAgICAgaWYgKGkgPCAwIHx8IGkgPj0gY2xpZW50KCktPmxp
c3RTaXplKCkgfHwgaSA9PSBmb2N1c2VkSW5kZXgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtNDAxLDIyICszOTUsMjIgQEAgYm9vbCBQb3B1cE1lbnVXaW46OnNldEZvY3VzZWRJbmRleChp
bnQgaSwgYm9vbCBob3RUcmFja2luZykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotaW50IFBvcHVw
TWVudVdpbjo6dmlzaWJsZUl0ZW1zKCkgY29uc3QKK2ludCBQb3B1cE1lbnU6OnZpc2libGVJdGVt
cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNsaWVudFJlY3QoKS5oZWlnaHQoKSAvIG1faXRlbUhl
aWdodDsKIH0KIAotaW50IFBvcHVwTWVudVdpbjo6bGlzdEluZGV4QXRQb2ludChjb25zdCBJbnRQ
b2ludCYgcG9pbnQpIGNvbnN0CitpbnQgUG9wdXBNZW51OjpsaXN0SW5kZXhBdFBvaW50KGNvbnN0
IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zY3JvbGxPZmZzZXQgKyBw
b2ludC55KCkgLyBtX2l0ZW1IZWlnaHQ7CiB9CiAKLWludCBQb3B1cE1lbnVXaW46OmZvY3VzZWRJ
bmRleCgpIGNvbnN0CitpbnQgUG9wdXBNZW51Ojpmb2N1c2VkSW5kZXgoKSBjb25zdAogewogICAg
IHJldHVybiBtX2ZvY3VzZWRJbmRleDsKIH0KIAotdm9pZCBQb3B1cE1lbnVXaW46OmZvY3VzRmly
c3QoKQordm9pZCBQb3B1cE1lbnU6OmZvY3VzRmlyc3QoKQogewogICAgIGlmICghY2xpZW50KCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTQzMCw3ICs0MjQsNyBAQCB2b2lkIFBvcHVwTWVudVdpbjo6
Zm9jdXNGaXJzdCgpCiAgICAgICAgIH0KIH0KIAotdm9pZCBQb3B1cE1lbnVXaW46OmZvY3VzTGFz
dCgpCit2b2lkIFBvcHVwTWVudTo6Zm9jdXNMYXN0KCkKIHsKICAgICBpZiAoIWNsaWVudCgpKQog
ICAgICAgICByZXR1cm47CkBAIC00NDQsNyArNDM4LDcgQEAgdm9pZCBQb3B1cE1lbnVXaW46OmZv
Y3VzTGFzdCgpCiAgICAgICAgIH0KIH0KIAotYm9vbCBQb3B1cE1lbnVXaW46OmRvd24odW5zaWdu
ZWQgbGluZXMpCitib29sIFBvcHVwTWVudTo6ZG93bih1bnNpZ25lZCBsaW5lcykKIHsKICAgICBp
ZiAoIWNsaWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NjMsNyArNDU3LDcgQEAg
Ym9vbCBQb3B1cE1lbnVXaW46OmRvd24odW5zaWduZWQgbGluZXMpCiAgICAgcmV0dXJuIHNldEZv
Y3VzZWRJbmRleChsYXN0U2VsZWN0YWJsZUluZGV4KTsKIH0KIAotYm9vbCBQb3B1cE1lbnVXaW46
OnVwKHVuc2lnbmVkIGxpbmVzKQorYm9vbCBQb3B1cE1lbnU6OnVwKHVuc2lnbmVkIGxpbmVzKQog
ewogICAgIGlmICghY2xpZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ4Miw3ICs0
NzYsNyBAQCBib29sIFBvcHVwTWVudVdpbjo6dXAodW5zaWduZWQgbGluZXMpCiAgICAgcmV0dXJu
IHNldEZvY3VzZWRJbmRleChsYXN0U2VsZWN0YWJsZUluZGV4KTsKIH0KIAotdm9pZCBQb3B1cE1l
bnVXaW46OmludmFsaWRhdGVJdGVtKGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51OjppbnZhbGlk
YXRlSXRlbShpbnQgaW5kZXgpCiB7CiAgICAgaWYgKCFtX3BvcHVwKQogICAgICAgICByZXR1cm47
CkBAIC00OTcsNyArNDkxLDcgQEAgdm9pZCBQb3B1cE1lbnVXaW46OmludmFsaWRhdGVJdGVtKGlu
dCBpbmRleCkKICAgICA6OkludmFsaWRhdGVSZWN0KG1fcG9wdXAsICZyLCBUUlVFKTsKIH0KIAot
SW50UmVjdCBQb3B1cE1lbnVXaW46OmNsaWVudFJlY3QoKSBjb25zdAorSW50UmVjdCBQb3B1cE1l
bnU6OmNsaWVudFJlY3QoKSBjb25zdAogewogICAgIEludFJlY3QgY2xpZW50UmVjdCA9IG1fd2lu
ZG93UmVjdDsKICAgICBjbGllbnRSZWN0LmluZmxhdGUoLXBvcHVwV2luZG93Qm9yZGVyV2lkdGgp
OwpAQCAtNTA1LDEyICs0OTksMTIgQEAgSW50UmVjdCBQb3B1cE1lbnVXaW46OmNsaWVudFJlY3Qo
KSBjb25zdAogICAgIHJldHVybiBjbGllbnRSZWN0OwogfQogCi12b2lkIFBvcHVwTWVudVdpbjo6
aW5jcmVtZW50V2hlZWxEZWx0YShpbnQgZGVsdGEpCit2b2lkIFBvcHVwTWVudTo6aW5jcmVtZW50
V2hlZWxEZWx0YShpbnQgZGVsdGEpCiB7CiAgICAgbV93aGVlbERlbHRhICs9IGRlbHRhOwogfQog
Ci12b2lkIFBvcHVwTWVudVdpbjo6cmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpCit2b2lkIFBv
cHVwTWVudTo6cmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpCiB7CiAgICAgQVNTRVJUKGRlbHRh
ID49IDApOwogICAgIEFTU0VSVChkZWx0YSA8PSBhYnMobV93aGVlbERlbHRhKSk7CkBAIC01MjMs
NyArNTE3LDcgQEAgdm9pZCBQb3B1cE1lbnVXaW46OnJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRh
KQogICAgICAgICByZXR1cm47CiB9CiAKLWJvb2wgUG9wdXBNZW51V2luOjpzY3JvbGxUb1JldmVh
bFNlbGVjdGlvbigpCitib29sIFBvcHVwTWVudTo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKQog
ewogICAgIGlmICghbV9zY3JvbGxiYXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTU0Myw3
ICs1MzcsNyBAQCBib29sIFBvcHVwTWVudVdpbjo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBQb3B1cE1lbnVXaW46OnVwZGF0ZUZyb21FbGVt
ZW50KCkKK3ZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgaWYgKCFt
X3BvcHVwKQogICAgICAgICByZXR1cm47CkBAIC01NTUsOSArNTQ5LDE0IEBAIHZvaWQgUG9wdXBN
ZW51V2luOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgIDo6VXBkYXRlV2luZG93KG1fcG9w
dXApOwogfQogCitib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KSAKK3sgCisgICAgcmV0dXJuIHRydWU7IAorfQorCiBjb25zdCBpbnQgc2VwYXJhdG9yUGFkZGlu
ZyA9IDQ7CiBjb25zdCBpbnQgc2VwYXJhdG9ySGVpZ2h0ID0gMTsKLXZvaWQgUG9wdXBNZW51V2lu
OjpwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgaGRjKQordm9pZCBQb3B1cE1l
bnU6OnBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIEhEQyBoZGMpCiB7CiAgICAgaWYg
KCFtX3BvcHVwKQogICAgICAgICByZXR1cm47CkBAIC02NjQsNyArNjYzLDcgQEAgdm9pZCBQb3B1
cE1lbnVXaW46OnBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIEhEQyBoZGMpCiAgICAg
ICAgIDo6UmVsZWFzZURDKG1fcG9wdXAsIGxvY2FsREMpOwogfQogCi12b2lkIFBvcHVwTWVudVdp
bjo6dmFsdWVDaGFuZ2VkKFNjcm9sbGJhciogc2Nyb2xsQmFyKQordm9pZCBQb3B1cE1lbnU6OnZh
bHVlQ2hhbmdlZChTY3JvbGxiYXIqIHNjcm9sbEJhcikKIHsKICAgICBBU1NFUlQobV9zY3JvbGxi
YXIpOwogCkBAIC03MDAsNyArNjk5LDcgQEAgdm9pZCBQb3B1cE1lbnVXaW46OnZhbHVlQ2hhbmdl
ZChTY3JvbGxiYXIqIHNjcm9sbEJhcikKICAgICA6OlVwZGF0ZVdpbmRvdyhtX3BvcHVwKTsKIH0K
IAotdm9pZCBQb3B1cE1lbnVXaW46OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciog
c2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBQb3B1cE1lbnU6OmludmFsaWRh
dGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0
KQogewogICAgIEludFJlY3Qgc2Nyb2xsUmVjdCA9IHJlY3Q7CiAgICAgc2Nyb2xsUmVjdC5tb3Zl
KHNjcm9sbGJhci0+eCgpLCBzY3JvbGxiYXItPnkoKSk7CkBAIC03MDgsNyArNzA3LDcgQEAgdm9p
ZCBQb3B1cE1lbnVXaW46OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xs
YmFyLCBjb25zdCBJbnRSZWN0JgogICAgIDo6SW52YWxpZGF0ZVJlY3QobV9wb3B1cCwgJnIsIGZh
bHNlKTsKIH0KIAotdm9pZCBQb3B1cE1lbnVXaW46OnJlZ2lzdGVyQ2xhc3MoKQordm9pZCBQb3B1
cE1lbnU6OnJlZ2lzdGVyQ2xhc3MoKQogewogICAgIHN0YXRpYyBib29sIGhhdmVSZWdpc3RlcmVk
V2luZG93Q2xhc3MgPSBmYWxzZTsKIApAQCAtNzQ0LDcgKzc0Myw3IEBAIHZvaWQgUG9wdXBNZW51
V2luOjpyZWdpc3RlckNsYXNzKCkKIH0KIAogCi1MUkVTVUxUIENBTExCQUNLIFBvcHVwTWVudVdp
bjo6UG9wdXBNZW51V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJh
bSwgTFBBUkFNIGxQYXJhbSkKK0xSRVNVTFQgQ0FMTEJBQ0sgUG9wdXBNZW51OjpQb3B1cE1lbnVX
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKQogewogI2lmIE9TKFdJTkNFKQogICAgIExPTkcgbG9uZ1B0ciA9IEdldFdpbmRvd0xvbmco
aFduZCwgMCk7CkBAIC03NzIsNyArNzcxLDcgQEAgTFJFU1VMVCBDQUxMQkFDSyBQb3B1cE1lbnVX
aW46OlBvcHVwTWVudVduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTQogCiBj
b25zdCBpbnQgc21vb3RoU2Nyb2xsQW5pbWF0aW9uRHVyYXRpb24gPSA1MDAwOwogCi1MUkVTVUxU
IFBvcHVwTWVudVdpbjo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSkKK0xSRVNVTFQgUG9wdXBNZW51Ojp3bmRQcm9jKEhXTkQgaFdu
ZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogewogICAgIExS
RVNVTFQgbFJlc3VsdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bv
cHVwTWVudVdpbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3MmM1YjBiYjY3NjcwZWNhZDQ2Y2E0YThhZjJjNjUx
OWFmM2RmZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5
OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBQb3B1cE1lbnVXaW5faAotI2RlZmlu
ZSBQb3B1cE1lbnVXaW5faAotCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgotI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgotI2luY2x1ZGUgIlNjcm9sbGJh
ci5oIgotI2luY2x1ZGUgIlNjcm9sbGJhckNsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0KLXR5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKLXR5cGVkZWYgc3RydWN0IEhEQ19f
KiBIREM7Ci10eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRnJhbWVWaWV3OwotY2xhc3MgU2Nyb2xsYmFyOwotCi1jbGFzcyBQ
b3B1cE1lbnVXaW4gOiBwdWJsaWMgUG9wdXBNZW51LCBwcml2YXRlIFNjcm9sbGJhckNsaWVudCB7
Ci1wdWJsaWM6Ci0gICAgUG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVudCopOwotICAgIH5Qb3B1
cE1lbnVXaW4oKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFt
ZVZpZXcqLCBpbnQgaW5kZXgpOwotICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7Ci0gICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RD
bGllbnQoKTsKLQotcHJpdmF0ZToKLSAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KLQotICAgIFNjcm9sbGJhciogc2Nyb2xsYmFyKCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KLQotICAgIHN0YXRpYyBMUENUU1RS
IHBvcHVwQ2xhc3NOYW1lKCk7Ci0KLSAgICBib29sIHVwKHVuc2lnbmVkIGxpbmVzID0gMSk7Ci0g
ICAgYm9vbCBkb3duKHVuc2lnbmVkIGxpbmVzID0gMSk7Ci0KLSAgICBpbnQgaXRlbUhlaWdodCgp
IGNvbnN0IHsgcmV0dXJuIG1faXRlbUhlaWdodDsgfQotICAgIGNvbnN0IEludFJlY3QmIHdpbmRv
d1JlY3QoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd1JlY3Q7IH0KLSAgICBJbnRSZWN0IGNsaWVu
dFJlY3QoKSBjb25zdDsKLQotICAgIGludCB2aXNpYmxlSXRlbXMoKSBjb25zdDsKLQotICAgIGlu
dCBsaXN0SW5kZXhBdFBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0KLSAgICBib29sIHNl
dEZvY3VzZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgaG90VHJhY2tpbmcgPSBmYWxzZSk7Ci0gICAg
aW50IGZvY3VzZWRJbmRleCgpIGNvbnN0OwotICAgIHZvaWQgZm9jdXNGaXJzdCgpOwotICAgIHZv
aWQgZm9jdXNMYXN0KCk7Ci0KLSAgICB2b2lkIHBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJl
Y3QsIEhEQyA9IDApOwotCi0gICAgSFdORCBwb3B1cEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9wdXA7IH0KLQotICAgIHZvaWQgc2V0V2FzQ2xpY2tlZChib29sIGIgPSB0cnVlKSB7IG1fd2Fz
Q2xpY2tlZCA9IGI7IH0KLSAgICBib29sIHdhc0NsaWNrZWQoKSBjb25zdCB7IHJldHVybiBtX3dh
c0NsaWNrZWQ7IH0KLQotICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGludCBvZmZzZXQpIHsgbV9z
Y3JvbGxPZmZzZXQgPSBvZmZzZXQ7IH0KLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zY3JvbGxPZmZzZXQ7IH0KLQotICAgIGJvb2wgc2Nyb2xsVG9SZXZlYWxTZWxlY3Rp
b24oKTsKLQotICAgIHZvaWQgaW5jcmVtZW50V2hlZWxEZWx0YShpbnQgZGVsdGEpOwotICAgIHZv
aWQgcmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpOwotICAgIGludCB3aGVlbERlbHRhKCkgY29u
c3QgeyByZXR1cm4gbV93aGVlbERlbHRhOyB9Ci0KLSAgICBib29sIHNjcm9sbGJhckNhcHR1cmlu
Z01vdXNlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZTsgfQotICAg
IHZvaWQgc2V0U2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoYm9vbCBiKSB7IG1fc2Nyb2xsYmFyQ2Fw
dHVyaW5nTW91c2UgPSBiOyB9Ci0KLSAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7
Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBQb3B1cE1lbnVXaW5faApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKaW5kZXggNGE1Y2IyMjkxZjMzOThjN2FhOThmMjg3
OTE3OTFlYTZiMjBlYmQxYi4uZjI3MDliYmU3NjdmNTRhOTFkNWE2NmUwYmY5ZWM1YjQ3YTEwYjcz
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwCkBAIC0x
LDYgKzEsNSBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOSwyNCArMTgsMTkgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51V2luLmgiCisj
aW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIK
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2Vh
cmNoUG9wdXBNZW51V2luOjpTZWFyY2hQb3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCi0gICAgOiBtX3BvcHVwKGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogUG9wdXBNZW51KGNsaWVudCkKIHsK
IH0KIAotUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVXaW46OnBvcHVwTWVudSgpCi17Ci0gICAg
cmV0dXJuICZtX3BvcHVwOwotfQotCi1ib29sIFNlYXJjaFBvcHVwTWVudVdpbjo6ZW5hYmxlZCgp
Citib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC00Nyw3ICs0MSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGF1dG9zYXZl
S2V5KGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICByZXR1cm4gUmV0YWluUHRyPENGU3RyaW5nUmVm
PihBZG9wdENGLCBrZXkuY3JlYXRlQ0ZTdHJpbmcoKSk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBN
ZW51V2luOjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2
ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtNjcsNyArNjEsNyBAQCB2b2lkIFNlYXJjaFBvcHVwTWVudVdpbjo6c2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdAogICAgIENG
UHJlZmVyZW5jZXNBcHBTeW5jaHJvbml6ZShrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlv
bik7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51V2luOjpsb2FkUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lk
IFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIGlmIChuYW1lLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
U2VhcmNoUG9wdXBNZW51V2luLmggYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1l
bnVXaW4uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU4N2Q3NjFlYTBkYzgzMTdh
Y2ExMDkwMzRhYjhkZWUzOTJjZWI1My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaAor
KysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRl
ZiBTZWFyY2hQb3B1cE1lbnVXaW5faAotI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVXaW5faAotCi0j
aW5jbHVkZSAiUG9wdXBNZW51V2luLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU2VhcmNoUG9wdXBNZW51V2luIDogcHVibGlj
IFNlYXJjaFBvcHVwTWVudSB7Ci1wdWJsaWM6Ci0gICAgU2VhcmNoUG9wdXBNZW51V2luKFBvcHVw
TWVudUNsaWVudCopOwotCi0gICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOwotICAg
IHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotICAgIHZpcnR1YWwgdm9pZCBs
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpOwotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7Ci0KLXByaXZhdGU6
Ci0gICAgUG9wdXBNZW51V2luIG1fcG9wdXA7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBTZWFyY2hQ
b3B1cE1lbnVXaW5faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVX
eC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcAppbmRleCBlODhkMWU1
OWRiZWJiODJmMTVjMWZkMTYyNWM3ODY3YzY3NTUxZmNlLi45YjBkZWJhNGY4OWMxMTQzMDZmY2Rj
Njk5ODQ5OTNhZjQwMDQzYWY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVw
TWVudVd4LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcApAQCAt
Miw3ICsyLDYgQEAKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBwb3B1cCBtZW51IGltcGxl
bWVudGF0aW9uIGZvciA8c2VsZWN0PiBlbGVtZW50cyBpbiBXZWJDb3JlLgogICoKICAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMjIsNyArMjEsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJQb3B1cE1lbnVXeC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQyLDIzICs0MSwxOCBA
QCBzdGF0aWMgaW50IHNfbWVudVN0YXJ0SWQgPSB3eE5ld0lkKCk7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUG9wdXBNZW51V3g6OlBvcHVwTWVudVd4KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQorUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBt
X3BvcHVwQ2xpZW50KGNsaWVudCkKICAgICAsIG1fbWVudShOVUxMKQogewogfQogCi1Qb3B1cE1l
bnVXeDo6flBvcHVwTWVudVd4KCkKK1BvcHVwTWVudTo6flBvcHVwTWVudSgpCiB7CiAgICAgZGVs
ZXRlIG1fbWVudTsKIH0KIAotdm9pZCBQb3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCgpCi17
Ci0gICAgbV9wb3B1cENsaWVudCA9IDA7Ci19Ci0KLXZvaWQgUG9wdXBNZW51V3g6OnNob3coY29u
c3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudTo6
c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIHsKICAgICAv
LyBqdXN0IGRlbGV0ZSBhbmQgcmVjcmVhdGUKICAgICBkZWxldGUgbV9tZW51OwpAQCAtODQsMTMg
Kzc4LDEzIEBAIHZvaWQgUG9wdXBNZW51V3g6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVW
aWV3KiB2LCBpbnQgaW5kZXgpCiAgICAgICAgICAgICAgICAgICAgIG1fbWVudS0+QXBwZW5kKHNf
bWVudVN0YXJ0SWQgKyBpLCBjbGllbnQoKS0+aXRlbVRleHQoaSkpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9Ci0gICAgICAgIG5hdGl2ZVdpbi0+Q29ubmVjdChzX21lbnVTdGFydElkLCBzX21l
bnVTdGFydElkICsgKHNpemUtMSksIHd4RVZUX0NPTU1BTkRfTUVOVV9TRUxFQ1RFRCwgd3hDb21t
YW5kRXZlbnRIYW5kbGVyKFBvcHVwTWVudVd4OjpPbk1lbnVJdGVtU2VsZWN0ZWQpLCAwLCB0aGlz
KTsKKyAgICAgICAgbmF0aXZlV2luLT5Db25uZWN0KHNfbWVudVN0YXJ0SWQsIHNfbWVudVN0YXJ0
SWQgKyAoc2l6ZS0xKSwgd3hFVlRfQ09NTUFORF9NRU5VX1NFTEVDVEVELCB3eENvbW1hbmRFdmVu
dEhhbmRsZXIoUG9wdXBNZW51OjpPbk1lbnVJdGVtU2VsZWN0ZWQpLCBOVUxMLCB0aGlzKTsKICAg
ICAgICAgbmF0aXZlV2luLT5Qb3B1cE1lbnUobV9tZW51LCByLngoKSAtIHYtPnNjcm9sbFgoKSwg
ci55KCkgLSB2LT5zY3JvbGxZKCkpOwotICAgICAgICBuYXRpdmVXaW4tPkRpc2Nvbm5lY3Qoc19t
ZW51U3RhcnRJZCwgc19tZW51U3RhcnRJZCArIChzaXplLTEpLCB3eEVWVF9DT01NQU5EX01FTlVf
U0VMRUNURUQsIHd4Q29tbWFuZEV2ZW50SGFuZGxlcihQb3B1cE1lbnVXeDo6T25NZW51SXRlbVNl
bGVjdGVkKSwgMCwgdGhpcyk7CisgICAgICAgIG5hdGl2ZVdpbi0+RGlzY29ubmVjdChzX21lbnVT
dGFydElkLCBzX21lbnVTdGFydElkICsgKHNpemUtMSksIHd4RVZUX0NPTU1BTkRfTUVOVV9TRUxF
Q1RFRCwgd3hDb21tYW5kRXZlbnRIYW5kbGVyKFBvcHVwTWVudTo6T25NZW51SXRlbVNlbGVjdGVk
KSwgTlVMTCwgdGhpcyk7CiAgICAgfQogfQogCi12b2lkIFBvcHVwTWVudVd4OjpPbk1lbnVJdGVt
U2VsZWN0ZWQod3hDb21tYW5kRXZlbnQmIGV2ZW50KQordm9pZCBQb3B1cE1lbnU6Ok9uTWVudUl0
ZW1TZWxlY3RlZCh3eENvbW1hbmRFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKGNsaWVudCgpKSB7
CiAgICAgICAgIGNsaWVudCgpLT52YWx1ZUNoYW5nZWQoZXZlbnQuR2V0SWQoKSAtIHNfbWVudVN0
YXJ0SWQpOwpAQCAtOTksMTUgKzkzLDIwIEBAIHZvaWQgUG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1T
ZWxlY3RlZCh3eENvbW1hbmRFdmVudCYgZXZlbnQpCiAgICAgLy8gVE9ETzogRG8gd2UgbmVlZCB0
byBjYWxsIERpc2Nvbm5lY3QgaGVyZT8gRG8gd2UgaGF2ZSBhIHJlZiB0byB0aGUgbmF0aXZlIHdp
bmRvdyBzdGlsbD8KIH0KIAotdm9pZCBQb3B1cE1lbnVXeDo6aGlkZSgpCit2b2lkIFBvcHVwTWVu
dTo6aGlkZSgpCiB7CiAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJlLCB0
aGUgbmF0aXZlIGNvbnRyb2wgb25seSBleGlzdHMgZHVyaW5nIHRoZSB0aW1lCiAgICAgLy8gc2hv
dyBpcyBjYWxsZWQKIH0KIAotdm9pZCBQb3B1cE1lbnVXeDo6dXBkYXRlRnJvbUVsZW1lbnQoKQor
dm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0
VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKK2Jvb2wg
UG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVu
dVd4LmggYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGMyNTczZmMwM2YwZWRhN2Q5NDcyZGU3ZDIwZWIxNzZmZGJlOGE3N2Qu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIFBvcHVwTWVudVd4X2gKLSNkZWZpbmUgUG9wdXBN
ZW51V3hfaAotCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgot
I2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotI2lmZGVmIF9fV1hNU1dfXwotI2luY2x1
ZGUgPHd4L21zdy93aW51bmRlZi5oPgotI2VuZGlmCi1jbGFzcyB3eE1lbnU7Ci0jaW5jbHVkZSA8
d3gvZGVmcy5oPgotI2luY2x1ZGUgPHd4L2V2ZW50Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgRnJhbWVWaWV3OwotY2xhc3MgU2Nyb2xsYmFyOwotCi1jbGFzcyBQb3B1cE1lbnVX
eCA6IHB1YmxpYyBQb3B1cE1lbnUsIHB1YmxpYyB3eEV2dEhhbmRsZXIgewotcHVibGljOgotICAg
IFBvcHVwTWVudVd4KFBvcHVwTWVudUNsaWVudCopOwotICAgIH5Qb3B1cE1lbnVXeCgpOwotCi0g
ICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRl
eCk7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJv
bUVsZW1lbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOwotCi1wcml2
YXRlOgotICAgIHZvaWQgT25NZW51SXRlbVNlbGVjdGVkKHd4Q29tbWFuZEV2ZW50Jik7Ci0gICAg
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9
Ci0KLSAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7Ci0gICAgd3hNZW51KiBtX21l
bnU7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBQb3B1cE1lbnVXeF9oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
d3gvU2VhcmNoUG9wdXBNZW51V3guY3BwCmluZGV4IGE1YWViMWIzNDU1NjA2OTEzZjhiNTAwZDM2
ZTk4ZjllNTAyYzgwNDIuLmRiYmUzMzkxOTY0ZDQ3NzNlZjE1YmY3M2YzMzUwNDZjZmFmZGRlMmQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guY3BwCkBAIC0xLDYgKzEs
NSBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NSwzNyArMjQsMzIgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2Vh
cmNoUG9wdXBNZW51V3guaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKIAogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9w
dXBNZW51V3g6OlNlYXJjaFBvcHVwTWVudVd4KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAg
IDogbV9wb3B1cChjbGllbnQpCitTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IFBvcHVwTWVudShjbGllbnQpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnVXeDo6c2F2ZVJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNl
YXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudVd4Ojps
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVz
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51V3g6OmVu
YWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQogewogICAgIHJldHVybiB0
cnVlOwogfQogCi1Qb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudVd4Ojpwb3B1cE1lbnUoKQotewot
ICAgIHJldHVybiAmbV9wb3B1cDsKLX0KLQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmggYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBv
cHVwTWVudVd4LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkYzc3YmFiNjIwZWI0
ZmFhMzNmNThkN2VjOGYzYjY2YTJjM2MwMzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5o
CisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZu
ZGVmIFNlYXJjaFBvcHVwTWVudVd4X2gKLSNkZWZpbmUgU2VhcmNoUG9wdXBNZW51V3hfaAotCi0j
aW5jbHVkZSAiUG9wdXBNZW51V3guaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTZWFyY2hQb3B1cE1lbnVXeCA6IHB1YmxpYyBT
ZWFyY2hQb3B1cE1lbnUgewotcHVibGljOgotICAgIFNlYXJjaFBvcHVwTWVudVd4KFBvcHVwTWVu
dUNsaWVudCopOwotCi0gICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOwotICAgIHZp
cnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotICAgIHZpcnR1YWwgdm9pZCBsb2Fk
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYg
c2VhcmNoSXRlbXMpOwotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7Ci0KLXByaXZhdGU6Ci0g
ICAgUG9wdXBNZW51V3ggbV9wb3B1cDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFNlYXJjaFBvcHVw
TWVudVd4X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCBiNmE5N2E5NzE2
ODI5ZmRiYzQwMjQzYmMyNDliOGExYzdlMmExODIyLi5mZjE2ZTdlMzkwYzkzMWM4ZTFkYTliOGI5
NjViYzE2ODE3MmYwZDA0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0y
Niw3ICsyNiw2IEBACiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKIAogI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNl
bGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAg
LTg5LDggKzg4LDggQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSgpCiAg
ICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nUmlnaHQoTGVuZ3RoKHRoZW1lKCkt
PnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZpeGVkKSk7CiAgICAgbV9pbm5l
ckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgpLT5wb3B1cEludGVy
bmFsUGFkZGluZ1RvcChzdHlsZSgpKSwgRml4ZWQpKTsKICAgICBtX2lubmVyQmxvY2stPnN0eWxl
KCktPnNldFBhZGRpbmdCb3R0b20oTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5n
Qm90dG9tKHN0eWxlKCkpLCBGaXhlZCkpOwotCi0gICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKS0+
Y2hyb21lKCktPnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsKKyAgICAg
ICAgCisgICAgaWYgKFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSkg
ewogICAgICAgICAvLyBJdGVtcyBpbiB0aGUgcG9wdXAgd2lsbCBub3QgcmVzcGVjdCB0aGUgQ1NT
IHRleHQtYWxpZ24gYW5kIGRpcmVjdGlvbiBwcm9wZXJ0aWVzLAogICAgICAgICAvLyBzbyB3ZSBt
dXN0IGFkanVzdCBvdXIgb3duIHN0eWxlIHRvIG1hdGNoLgogICAgICAgICBtX2lubmVyQmxvY2st
PnN0eWxlKCktPnNldFRleHRBbGlnbihMRUZUKTsKQEAgLTI3OSw3ICsyNzgsNyBAQCB2b2lkIFJl
bmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKQogICAgIC8vIGluc2lkZSB0aGUgc2hvd1BvcHVwIGNh
bGwgYW5kIGl0IHdvdWxkIGZhaWwuCiAgICAgY3JlYXRlSW5uZXJCbG9jaygpOwogICAgIGlmICgh
bV9wb3B1cCkKLSAgICAgICAgbV9wb3B1cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCkt
PmNyZWF0ZVBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9wb3B1cCA9IFBvcHVwTWVudTo6Y3Jl
YXRlKHRoaXMpOwogICAgIFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChz
dGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7CiAgICAgbV9wb3B1cElzVmlzaWJsZSA9IHRy
dWU7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCmluZGV4IDUxMmZhOWI1NzlhZmZhM2Ix
NjFhOTgxY2IzMjIwYWFjMTlhNTg5NTkuLmFlZjhkNGZlZGY4YWI2YzY4ZTYxNGVhOGEyZmM5M2U5
M2EwZTQwZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApAQCAtMjQsNyArMjQsNiBA
QAogI2lmbmRlZiBSZW5kZXJNZW51TGlzdF9oCiAjZGVmaW5lIFJlbmRlck1lbnVMaXN0X2gKIAot
I2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogI2lu
Y2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94LmgiCiAKQEAgLTM2LDYgKzM1LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBQb3B1cE1lbnU7CiBjbGFzcyBSZW5kZXJUZXh0OwogCiAj
aWYgRU5BQkxFKE5PX0xJU1RCT1hfUkVOREVSSU5HKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggYmNkMzcyOTI4ODNjZWIxODJl
ZGE2NGEyNTBhZGJjODAwZDBhNzg4Ni4uZjQwZmJmMGY1Zjk4Y2U5NzQ2OTY0NTc4NGM2Njc1N2Rl
ZDEyMGI4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuY3BwCkBAIC0yLDcgKzIsNiBAQAogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykg
MjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50
b3JjaG1vYmlsZS5jb20vKSAKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQs
NyArMjMsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oIgogCi0jaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5
bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgpAQCAtNDAsNiArMzgsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJT
ZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgpAQCAtNjMsNyAr
NjIsNyBAQCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OlJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZShOb2RlKiBub2RlLCBib29sIHBsYWNlaAogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjp+UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKCkKIHsKICAgICBpZiAobV9zZWFyY2hQ
b3B1cCkgewotICAgICAgICBtX3NlYXJjaFBvcHVwLT5wb3B1cE1lbnUoKS0+ZGlzY29ubmVjdENs
aWVudCgpOworICAgICAgICBtX3NlYXJjaFBvcHVwLT5kaXNjb25uZWN0Q2xpZW50KCk7CiAgICAg
ICAgIG1fc2VhcmNoUG9wdXAgPSAwOwogICAgIH0KICAKQEAgLTEwOCw3ICsxMDcsNyBAQCB2b2lk
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6YWRkU2VhcmNoUmVzdWx0KCkKIAogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwogICAgIGlmICghbV9zZWFy
Y2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hy
b21lKCktPmNyZWF0ZVNlYXJjaFBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1
cCA9IFNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOwogCiAgICAgbV9zZWFyY2hQb3B1cC0+
c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogfQpAQCAtMTI2LDcg
KzEyNSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXAoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2Vh
cmNoUG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hQb3B1
cE1lbnUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQb3B1cE1lbnU6OmNy
ZWF0ZSh0aGlzKTsKIAogICAgIGlmICghbV9zZWFyY2hQb3B1cC0+ZW5hYmxlZCgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xNDYsMTQgKzE0NSwxNCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNl
YXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgIH0KIAotICAgIG1fc2VhcmNoUG9w
dXAtPnBvcHVwTWVudSgpLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUpLCBkb2N1
bWVudCgpLT52aWV3KCksIC0xKTsKKyAgICBtX3NlYXJjaFBvcHVwLT5zaG93KGFic29sdXRlQm91
bmRpbmdCb3hSZWN0KHRydWUpLCBkb2N1bWVudCgpLT52aWV3KCksIC0xKTsKIH0KIAogdm9pZCBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCgpCiB7CiAgICAgQVNTRVJUKG5v
ZGUoKS0+aXNIVE1MRWxlbWVudCgpKTsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkKLSAgICAgICAg
bV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPmhpZGUoKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1
cC0+aGlkZSgpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c3VidHJl
ZUhhc0NoYW5nZWQoKQpAQCAtNjg2LDcgKzY4NSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgfQogCiAgICAgaWYgKG1fc2VhcmNo
UG9wdXBJc1Zpc2libGUpCi0gICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT51cGRh
dGVGcm9tRWxlbWVudCgpOworICAgICAgICBtX3NlYXJjaFBvcHVwLT51cGRhdGVGcm9tRWxlbWVu
dCgpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y2FjaGVTZWxlY3Rp
b24oaW50IHN0YXJ0LCBpbnQgZW5kKQpAQCAtODg0LDcgKzg4Myw3IEBAIHZvaWQgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29s
IGZpcmVFdmVuCiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2
ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
ICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9w
dXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hQb3B1cE1lbnUo
dGhpcyk7CisgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQb3B1cE1l
bnU6OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVj
ZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmgKaW5kZXggNGJjODBjZjM2ZTBmY2M5NGU5MDE2YjYxNzNkZjAwNjExNGMxZjhlYi4uOGM3ZTg0
NGYxYTRhN2NkMjJkNDEyM2M3NDQwMzg3OTYwYThmNDBjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKQEAgLTEsNyArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQotICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsNyArMjQsNiBAQAogCiAjaW5jbHVkZSAiUG9wdXBN
ZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKLSNpbmNsdWRlICJT
ZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0zNCw2ICszMiw3IEBAIGNsYXNzIElucHV0RWxlbWVudDsKIGNsYXNzIElucHV0Rmll
bGRTcGVlY2hCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVt
ZW50OwogY2xhc3MgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDsKK2NsYXNzIFNlYXJj
aFBvcHVwTWVudTsKIGNsYXNzIFNwaW5CdXR0b25FbGVtZW50OwogY2xhc3MgVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnQ7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDRkYTdlYWEyYWEzMzdjNjZkMTM2NmVhMjEy
ZmI3YTEwMzBmNzAyMGIuLjBlMDU3MWVkNzFjYWZiNzJjNjNlMDlkY2MzMzI5MGIzN2RmOWRhMjQg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA3LTMxICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByNjQ0MjIuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzY0NDIyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MzMwNAorCisgICAgICAgIEJ1aWxkIGZpeGVzIGFyZSBuZWVkZWQgZm9yIFNub3cgTGVvcGFyZCBh
bmQgV2luZG93cy4KKyAgICAgICAgKFJlcXVlc3RlZCBieSBsY2Egb24gI3dlYmtpdCkuCisKKyAg
ICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgICogc3JjL0Nocm9tZUNs
aWVudEltcGwuaDoKKwogMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlA
b3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCAyYTVjMzJlOWMwMjE2YjI3
MjFlNjQwMTUzZDAxYzAwMDQwOGUzYWI5Li5mYzA4YjVkNzI4Mjk5MzFkYzcyNWRjNDAyODgwYzZl
NWY4NjRlM2I3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAg
LTEsNiArMSw1IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtNTYsNyArNTUsNiBAQAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRl
ckltcGwuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21pdW0u
aCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldl
Ykdlb2xvY2F0aW9uU2VydmljZS5oIgpAQCAtNzc1LDE5ICs3NzMsNCBAQCB2b2lkIENocm9tZUNs
aWVudEltcGw6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKiBub2RlKQogICAg
ICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5leGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViTm9kZShu
b2RlKSk7CiB9CiAKLWJvb2wgQ2hyb21lQ2xpZW50SW1wbDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotUGFzc1JlZlB0cjxQ
b3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkgY29uc3QKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUNo
cm9taXVtKGNsaWVudCkpOwotfQotCi1QYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21l
Q2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51Q2hyb21p
dW0oY2xpZW50KSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA3ZjNmZWJmYzk4ZmU0YzhiYTZiMjgwYmNhYjU3Njhk
MzRjOWZjOTBjLi5mZTE5YjhiYmFiNWYxZTY0MGNmNTIyN2RkZDM2ZWUwZWRiYmRlOWU2IDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMSw2ICsxLDUgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMywxNSAr
MzIsMTIgQEAKICNkZWZpbmUgQ2hyb21lQ2xpZW50SW1wbF9oCiAKICNpbmNsdWRlICJDaHJvbWVD
bGllbnRDaHJvbWl1bS5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgotI2luY2x1ZGUgIlNlYXJj
aFBvcHVwTWVudS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBY2Nlc3NpYmlsaXR5
T2JqZWN0OwogY2xhc3MgRmlsZUNob29zZXI7CiBjbGFzcyBIVE1MUGFyc2VyUXVpcmtzOwogY2xh
c3MgUG9wdXBDb250YWluZXI7Ci1jbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBTZWN1cml0
eU9yaWdpbjsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIH0KQEAgLTE3MiwxMCArMTY4LDYgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkN1cnNvckluZm8mIGN1cnNvcik7
CiAgICAgdm9pZCBzZXRDdXJzb3JGb3JQbHVnaW4oY29uc3QgV2ViQ3Vyc29ySW5mbyYgY3Vyc29y
KTsKIAotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgdm9pZCBn
ZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2ViUG9wdXBNZW51SW5m
byopOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCmluZGV4IDQ3MWUzNTQ3NjFlOGIyMmFhNGJkMDhhMDIwZmFjNGJkMjU3MTA5ZDkuLjNh
ZjNjODYxOGUwNjJmNjYxNmIxMjViNGE3OWJjYzBmYWY3NDZmMWYgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTAtMDctMzEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NDQyMi4KKyAgICAgICAgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjQ0MjIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMzA0CisKKyAgICAgICAgQnVpbGQgZml4ZXMg
YXJlIG5lZWRlZCBmb3IgU25vdyBMZW9wYXJkIGFuZCBXaW5kb3dzLgorICAgICAgICAoUmVxdWVz
dGVkIGJ5IGxjYSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
Lmg6CisKIDIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IDIxNzQ3YTFiMGRkNDcz
M2UwOGVjMTQ4NDY0MDFlN2EyMmNmNTkxMTcuLmZhNGQzN2E3YzgxMjljYmVhMTdlYTNiODE2YTVi
MjVmYzE5NzI0ZGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5jcHAKQEAgLTUsNyArNSw2IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRGllZ28gR29u
emFsZXoKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0
ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDksOCArNDgsNiBA
QAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIlBvcHVwTWVudUVmbC5o
IgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUVmbC5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJn
dW1lbnRzLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJld2tfcHJp
dmF0ZS5oIgpAQCAtNTIyLDE5ICs1MTksNCBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6ZGlkUmVj
ZWl2ZVZpZXdwb3J0QXJndW1lbnRzKEZyYW1lKiBmcmFtZSwgY29uc3QgVmlld3BvcnRBcgogICAg
IGV3a192aWV3X3ZpZXdwb3J0X3NldChtX3ZpZXcsIGFyZ3VtZW50cy53aWR0aCwgYXJndW1lbnRz
LmhlaWdodCwgYXJndW1lbnRzLmluaXRpYWxTY2FsZSwgYXJndW1lbnRzLm1pbmltdW1TY2FsZSwg
YXJndW1lbnRzLm1heGltdW1TY2FsZSwgYXJndW1lbnRzLnVzZXJTY2FsYWJsZSk7CiB9CiAKLWJv
b2wgQ2hyb21lQ2xpZW50RWZsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVD
bGllbnRFZmw6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QK
LXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUVmbChjbGllbnQpKTsKLX0KLQot
UGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudEVmbDo6Y3JlYXRlU2VhcmNo
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAotewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51RWZsKGNsaWVudCkpOwotfQotCiB9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAppbmRleCBkOTM5YWU2ZDY5MzFm
NDdjOTMyZTc1YmM3MDAxYzYzNDVlYmI1M2FkLi4yZjNmZDNlNDRlODVmZDcwYzU1YjkyNTg3ZTQ2
NzVkOTBjZWNlMjgyIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmgKQEAgLTMsNyArMyw2IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3Rp
dHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9G
VVNJT04gZW1iZWRkZWQgc3lzdGVtcwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3Vu
ZyBFbGVjdHJvbmljcwotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTM5LDEw
ICsxMzgsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVZpZXdwb3J0
QXJndW1lbnRzKEZyYW1lKiBmcmFtZSwgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50
cykgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1
cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNl
YXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNv
bnN0OwotCiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKICAgICBLVVJMIG1faG92ZXJlZExpbmtV
Ukw7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0No
YW5nZUxvZwppbmRleCAxMzc2ZDgzYmQ4NWUwMDNmODUwN2U3MmE5YTMyYzBiMjkxMDc2Y2FlLi42
NDE1NDZlMmU0YTQxMWI0YmJiNTY3MzJhOGVjZDMzNjFjODU3ZDM0IDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDEwLTA3LTMxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjQ0MjIuCisgICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzY0NDIyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzMwNAorCisgICAgICAgIEJ1aWxkIGZpeGVz
IGFyZSBuZWVkZWQgZm9yIFNub3cgTGVvcGFyZCBhbmQgV2luZG93cy4KKyAgICAgICAgKFJlcXVl
c3RlZCBieSBsY2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5oOgorCiAyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9z
c2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBh
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCAwODFjOTQyMTU4YmMx
NTNjNjYyNzI1ODE2ZDQ0NzBiMGI5MDNhNmZjLi4zZWIyMWY4YjI2NjZjZDRhZjNhMzcwMjVkOTRm
Nzc5NTdkY2JlZGM2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCkBAIC00LDcgKzQsNiBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBM
dGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KICAq
IENvcHlyaWdodCAoQykgMjAwOCBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzUsOSArMzQsNiBAQAogI2lu
Y2x1ZGUgIkljb24uaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVH
dGsuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVHdGsuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIK
ICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCkBAIC02MjYsMTkgKzYyMiw0IEBAIHZvaWQgQ2hy
b21lQ2xpZW50OjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2Vi
Q29yZTo6RnJhbWUqIGZyCiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJnZW9s
b2NhdGlvbi1wb2xpY3ktZGVjaXNpb24tY2FuY2VsbGVkIiwgd2ViRnJhbWUpOwogfQogCi1ib29s
IENocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotewot
ICAgIHJldHVybiB0cnVlOwotfQotCi1QYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gQ2hy
b21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVHdGsoY2xpZW50
KSk7Ci19Ci0KLVBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGll
bnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkgY29uc3QKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUd0ayhj
bGllbnQpKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmgKaW5kZXggOGM2NjdjNGViNTg4M2IyMWJhYmFkOWFlYzU0Mjk5M2Y1NmQ2OWZmNC4uMTZh
OWY1ZDk1MDkxNzVlMzhiYTgyNTlhMDNmZjAwMjdhNDUyZTQyNCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC0xLDYgKzEsNSBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsMTUgKzIyLDkgQEAKIAogI2luY2x1ZGUgIkNocm9t
ZUNsaWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKLSNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZp
ZXcgV2ViS2l0V2ViVmlldzsKIAotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUG9wdXBNZW51
Q2xpZW50OwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgIGNsYXNzIENocm9tZUNsaWVu
dCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJvbWVDbGllbnQgewpAQCAtMTMwLDEwICsxMjMsNiBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9u
Kik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwogCi0g
ICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
OwotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAgICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVw
TWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLQogICAgIHByaXZhdGU6CiAg
ICAgICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKICAgICAgICAgV2ViQ29yZTo6S1VSTCBt
X2hvdmVyZWRMaW5rVVJMOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyBiL1dl
YktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggZGNkYzhkNmQ4NWVjNTY1OTQwMWZkNzAxODNkMWEx
MjdiNTE3YTMyMi4uYWZmMTI0ZDY5ZThjNDJjM2NmNjdhNjZhNGY5ODYxYWZhMTY4YTVkZCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9XZWJLaXQvaGFpa3UvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDctMzEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2
NDQyMi4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjQ0MjIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMzA0CisKKyAg
ICAgICAgQnVpbGQgZml4ZXMgYXJlIG5lZWRlZCBmb3IgU25vdyBMZW9wYXJkIGFuZCBXaW5kb3dz
LgorICAgICAgICAoUmVxdWVzdGVkIGJ5IGxjYSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgorCiAyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8
bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5jcHAgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
SGFpa3UuY3BwCmluZGV4IDZjNTQ0MjQzZTQxZTYyNGVjNzg1NThiMzgzOGI3YTdiY2E2M2VmMGYu
LmMzY2RhYTAwN2NhNjhmMDYzMTRkMjg3MzAzMTk2MzNiNmE1MWRlZTQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKKysrIGIvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcApAQCAtMiw3ICsy
LDYgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgUnlhbiBMZWF2ZW5nb29kIDxsZWF2ZW5nb29k
QGdtYWlsLmNvbT4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dApAQCAtMzcsOCArMzYsNiBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgotI2luY2x1ZGUgIlBvcHVwTWVudUhhaWt1LmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
SGFpa3UuaCIKIAogI2luY2x1ZGUgPEFsZXJ0Lmg+CiAjaW5jbHVkZSA8U3RyaW5nLmg+CkBAIC0z
ODksMjAgKzM4Niw1IEBAIFBhc3NPd25QdHI8SFRNTFBhcnNlclF1aXJrcz4gQ2hyb21lQ2xpZW50
SGFpa3U6OmNyZWF0ZUhUTUxQYXJzZXJRdWlya3MoKQogICAgIHJldHVybiAwOwogfQogCi1ib29s
IENocm9tZUNsaWVudEhhaWt1OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1QYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21l
Q2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUhhaWt1KGNsaWVudCkpOwot
fQotCi1QYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0
ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUhhaWt1KGNsaWVudCkpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmgKaW5kZXggODIwMWZhZTBiNzU3OGVmZTU0MmQ2ZDlhZmMyNjBk
MDgxYWUxMjdhNy4uNDYzZDY2NzRmM2NiMDk2MDY0M2U2N2NjZWJkNmIzYWFkNDQ3ZGUyOSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgK
KysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKQEAg
LTEsNyArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tA
a2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNyBSeWFuIExlYXZlbmdvb2QgPGxlYXZlbmdv
b2RAZ21haWwuY29tPiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC0xMjksMTAgKzEyOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VOYW1lKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKTsKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KikgY29uc3Q7Ci0KICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90
IHNwYWNlTmVlZGVkKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggY2JhZjBiOWFkZTUzOTY2NmE0
MDRkYzZhZmQ4MDA0NjVkZTVjMzVmNi4uNmM2Yzg1NjhhMjkyNjgzNDAxMjU5YzkyODExMTRiZjJk
ZDNkNWEwYSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0zMSAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjY0NDIyLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82
NDQyMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMz
MDQKKworICAgICAgICBCdWlsZCBmaXhlcyBhcmUgbmVlZGVkIGZvciBTbm93IExlb3BhcmQgYW5k
IFdpbmRvd3MuCisgICAgICAgIChSZXF1ZXN0ZWQgYnkgbGNhIG9uICN3ZWJraXQpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorCiAyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5p
ICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IDUwYzE1OWNhNDFiZTY1Y2E1MTg5NmIxMjczYjAxZjdmMGU5OWNjYmQuLmY0NTRjNjA2
ODQ0MTVjOTdjNTAyNTgzNTc3NWU1MWUwN2U5ZDQ4ZWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xNjgsMTAgKzE2OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2Vi
Q29yZTo6R2VvbG9jYXRpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9j
YXRpb24qKSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCgpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+
IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLSAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0KIHByaXZhdGU6CiAg
ICAgV2ViVmlldyAqbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW0KaW5kZXggZDcwNDBjZWRmYzA5MDc0YWU4MTZjN2JhYjc2YzdhMzlk
ODJiYTlhNS4uYWMzNGJjMDI2N2ZhMTIxNjA1MTZlNWJhZjI3MDUyOTkwMjNhYzI5OSAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTEsNiArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHly
aWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjQsMTYgKzY0LDEyIEBACiAj
aW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4u
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
UG9wdXBNZW51TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2lt
cG9ydCA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnVNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2lk
Z2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW1wb3J0IDx3dGYv
UGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCi0KLQogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgog
I2VuZGlmCkBAIC03NDEsMjEgKzczNyw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb3JtRGlk
Qmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgIENhbGxVSURlbGVnYXRlKG1fd2Vi
VmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdChjb25zdF9jYXN0
PFdlYkNvcmU6Ok5vZGUqPihub2RlKSkpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotewotICAgIHJldHVybiBmYWxzZTsK
LX0KLQotUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAotewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51TWFjKGNsaWVudCkpOwotfQotCi1QYXNz
UmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVNYWMoY2xpZW50KSk7Ci19
Ci0KICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIq
IGdyYXBoaWNzTGF5ZXIpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0
L3F0L0NoYW5nZUxvZwppbmRleCA1ODAyMjlkNjFhYmRjNjE4ODY2YmQyMzVjMzgxOGQ3YzIyMTg1
MWY0Li5mZDc2ZGVkODUwZGI2MzA1NDFmYmU2Zjc0NTcyZDMwNDcyOTI0MzUyIDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMC0wNy0zMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY0NDIyLgorICAgICAg
ICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82NDQyMgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMzMDQKKworICAgICAgICBCdWlsZCBm
aXhlcyBhcmUgbmVlZGVkIGZvciBTbm93IExlb3BhcmQgYW5kIFdpbmRvd3MuCisgICAgICAgIChS
ZXF1ZXN0ZWQgYnkgbGNhIG9uICN3ZWJraXQpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0Lmg6CisKIDIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5i
b3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggYTBiYWM3MjJiNmNhNGJh
NzdjMzc5OWMwNGVmOTEyNzY0MDg4NjZjOC4uMmRmOGM3ODg1MTBhZTY5NTg1MWI4MzlhMjkxMWY4
NTNmOTAzNWIwOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
Y3BwCkBAIC0xLDcgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2lu
IDx6YWNrQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgpAQCAtNDYsNyArNDUsNiBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaCIKICNpbmNsdWRl
ICJQYWdlQ2xpZW50UXQuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVRdC5oIgogI2lmIGRlZmluZWQo
UV9XU19NQUVNT181KQogI2luY2x1ZGUgIlF0TWFlbW9XZWJQb3B1cC5oIgogI2Vsc2UKQEAgLTU0
LDcgKzUyLDYgQEAKICNlbmRpZgogI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsYmFyVGhlbWUuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVRdC5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIK
ICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgpAQCAtNjI1LDE5ICs2MjIsNCBAQCB2b2lkIENo
cm9tZUNsaWVudFF0OjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBj
b25zdCBWaWV3cG9ydEFyZwogICAgIGVtaXQgbV93ZWJQYWdlLT52aWV3cG9ydENoYW5nZVJlcXVl
c3RlZChoaW50cyk7CiB9CiAKLWJvb2wgQ2hyb21lQ2xpZW50UXQ6OnNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLVBhc3NSZWZQ
dHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KSBjb25zdAotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51
UXQoY2xpZW50KSk7Ci19Ci0KLVBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGll
bnRRdDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25z
dAotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51UXQoY2xpZW50KSk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmgKaW5kZXggYWFiMjgxMzQxYTQ2M2U2Y2ExNTUxZWMwZWNjMjUzMzhkZjdl
ZDBlMC4uOThhYmY1ZjAxZjkxZjRhZmIzNDYwNjI3NmE5YTc2ZTM2NzI4MmQ4NyAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTEsNiArMSw1IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KLSAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0xNzAsMTAgKzE2OSw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJh
bWUqLCBHZW9sb2NhdGlvbiopIHsgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAg
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLQogICAgICAgICBRdEFic3RyYWN0V2ViUG9w
dXAqIGNyZWF0ZVNlbGVjdFBvcHVwKCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSosIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29u
c3Q7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IGEwOTM0ZTJiZjAwNjVlNDY4NThiMjM0NTI3M2YwMTY3MTdlN2ViN2EuLmZjMmJk
ODY5ODRhZjc0MThjYTZhZDIwY2JkMjViODVhMGM5MWY0NDkgMTAwNjQ0Ci0tLSBhL1dlYktpdC93
aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDctMzEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgor
CisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NDQyMi4KKyAgICAgICAgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjQ0MjIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMzA0CisKKyAgICAgICAgQnVpbGQgZml4ZXMgYXJl
IG5lZWRlZCBmb3IgU25vdyBMZW9wYXJkIGFuZCBXaW5kb3dzLgorICAgICAgICAoUmVxdWVzdGVk
IGJ5IGxjYSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6
CisKIDIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDA4ZDRlZTk0MzZiZWNhZjJj
NzYzOWM3ZWU3NTAwMGExMjEyNmFkOTkuLjRlMTViZTcwYTcwODc1MDVlMzk3YjhkOWZiMDU2MGQy
ZTk5ZmNkM2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTEsNiArMSw1IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU3LDggKzU2LDYgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUG9wdXBNZW51
V2luLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnVXaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjcHJhZ21hIHdhcm5pbmcocG9wKQogCkBAIC04
NzcsMTggKzg3NCwzIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbHNjcmVlbkZvck5v
ZGUoTm9kZSopCiAKICNlbmRpZgogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCi1QYXNz
UmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1
cE1lbnVXaW4oY2xpZW50KSk7Ci19Ci0KLVBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkgY29uc3QKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudVdpbihj
bGllbnQpKTsKLX0KLQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKaW5kZXggY2VhMTFjNzE3YjlkMDdmMzY2ZWIxZmI4MjJjN2IyYmVkMGQwZGVmYi4uN2E2MGZi
NjI0OTkyMjVkNjk3YmY0ZmI1ODk0ZDRjNjFmNjE1YjNkMCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xLDYgKzEsNSBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
NjcsMTAgKzE2Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlv
blByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqPihtX25vdGlmaWNhdGlv
bnNEZWxlZ2F0ZS5nZXQoKSk7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdl
YkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25z
dDsKLQogcHJpdmF0ZToKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGUoKTsK
IApkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cK
aW5kZXggZTg3OTQwYTk3YTI4MTI3ZTQ0ZDRkNGYwYzZlODQ1YzQ0OTM0MzgyMy4uNDE3ZTllMjU2
MTZmM2ZmZmM4ZjAwNTVlMGZjMGMzZGZmMTU2YWFlNSAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L0No
YW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAt
MDctMzEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NDQyMi4KKyAgICAgICAgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjQ0MjIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzMzA0CisKKyAgICAgICAgQnVpbGQgZml4ZXMgYXJlIG5lZWRl
ZCBmb3IgU25vdyBMZW9wYXJkIGFuZCBXaW5kb3dzLgorICAgICAgICAoUmVxdWVzdGVkIGJ5IGxj
YSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3gu
Y3BwOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAxMC0w
Ny0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAgYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHAKaW5kZXggOWM5MDU5NmRhN2YwMzBjNzQxNzhkZTMxOTM5MWI0MjVi
Y2NmOGQ0Ny4uNzY0NjQ4Y2E0NmMzNjU4YmU5Y2IwZTA1YjdlZjkzN2I0M2ZhMDY0OSAxMDA2NDQK
LS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1dl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcApAQCAtMSw2ICsxLDUgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgS2V2aW4gT2xsaXZpZXIgPGtldmlub0B0aGVvbGxp
dmllcnMuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
QEAgLTQwLDggKzM5LDYgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRl
ICJQb3B1cE1lbnVXeC5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVd4LmgiCiAjaW5jbHVk
ZSAiV2luZG93RmVhdHVyZXMuaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC00NjcsMTkgKzQ2
NCw0IEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci1ib29sIENocm9tZUNsaWVudFd4OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1QYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hy
b21lQ2xpZW50V3g6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVd4KGNsaWVudCkpOwotfQot
Ci1QYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50V3g6OmNyZWF0ZVNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKLXsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudVd4KGNsaWVudCkpOwotfQotCiB9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oIGIvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAppbmRleCA1YjYwNDQ2NjVhNDZlNjZiZmNk
YjNiNzVlNWM1NDVlNDVkMjRhNzgwLi41MmVjMGQ4MTE5ZGEyZjE2NDQ3ZmVlNTMzNDQ1NTVhMmUz
ZmUyMmRhIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTEs
NiArMSw1IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEtldmluIE9sbGl2aWVyIDxrZXZp
bm9AdGhlb2xsaXZpZXJzLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCkBAIC0xNDMsMTAgKzE0Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24q
KTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZv
ckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgd3hXZWJWaWV3KiBt
X3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlNzQ4ODhmNDE5OTQyN2M2NGZhMjZhMGJkMWQ3YThkYmEwZWQwNzk3Li5m
MDI5MTdiZjIxNTJlZTVhNWIxZTFmZGY4OGIzNTExYTczM2RlNDExIDEwMDY0NAotLS0gYS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDEwLTA3LTMxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKwor
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjQ0MjIuCisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzY0NDIyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzMwNAorCisgICAgICAgIEJ1aWxkIGZpeGVzIGFyZSBu
ZWVkZWQgZm9yIFNub3cgTGVvcGFyZCBhbmQgV2luZG93cy4KKyAgICAgICAgKFJlcXVlc3RlZCBi
eSBsY2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1l
bnUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UG9wdXBNZW51Lmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51Lmg6IFJlbW92ZWQuCisgICAgICAgICog
d2luL1dlYktpdDIudmNwcm9qOgorCiAyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5h
Z29zdGluaUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hl
ci4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTQ0NGU0
M2I5OWQxNzVmZWFmZDUzYWE5OTY2ZGEzMWEzNGEzMDUyYi4uMTVmZTQyMTVjZDM2MTE1OGViZjU3
ZjBjNmUwZWU1NTk3NzZiOWRiMyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI2NiwxMCArMjY2LDYgQEAKIAkJQkNGNjlGQTMxMTc2RDAxNDAwNDcxQTUy
IC8qIFdlYk5hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9u
RGF0YS5jcHAgKi87IH07CiAJCUJDRjY5RkE5MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRp
b25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0Y2OUZBNzExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJQkNGNjlGQUExMTc2RDFDQjAw
NDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGQTgxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdh
dGlvbkRhdGEuY3BwICovOyB9OwotCQlEM0I5NDg0NjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9w
dXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovOyB9OwotCQlE
M0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkg
LyogV2ViUG9wdXBNZW51LmggKi87IH07Ci0JCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBX
ZWJTZWFyY2hQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVu
dS5jcHAgKi87IH07Ci0JCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
Qjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJ
RTFFRTUzRTMxMUY4Q0ZDMDAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUz
REMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICov
OyB9OwogCQlFMUVFNTNFNzExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRp
dG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQuY3BwICovOyB9OwogCQlFMUVFNTVGNDExRjhGMTg5MDBDQ0JFRTQgLyogV0tCdW5kbGVS
YW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RTU1RjMxMUY4RjE4OTAwQ0NCRUU0IC8qIFdLQnVuZGxlUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC01NzAsMTAgKzU2Niw2IEBACiAJCUJD
RjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOYXZpZ2F0aW9uRGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjY5RkE3MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05h
dmlnYXRpb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTmF2aWdh
dGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNjlGQTgxMTc2RDFD
QjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tOYXZpZ2F0aW9uRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUG9wdXBNZW51LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQb3B1cE1l
bnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMy
QjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxRUU1NUYzMTFGOEYxODkwMENDQkVFNCAvKiBXS0J1bmRsZVJhbmdlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlUmFuZ2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg2OCwxMCArODYwLDYgQEAKIAkJCQlCQzAzMkQ2RDEw
RjQzNzhEMDA1OEMxNUEgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmggKi8sCiAJCQkJMUEzRTczNjAx
MUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8sCiAJCQkJMUEz
RTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5oICovLAotCQkJ
CUQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovLAotCQkJCUQz
Qjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLywKLQkJCQlEM0I5NDg0
NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLywKLQkJCQlEM0I5
NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IFdlYkNvcmVTdXBwb3J0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTEzMzcsOCArMTMyNSw2IEBACiAJCQkJQkNEQjg2QzExMjAwRkI5NzAwNzI1NEJFIC8qIFdlYlVS
TC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMjhDQzAxMjAyMzNEOTAwN0Q5OUJDIC8qIEluamVj
dGVkQnVuZGxlTWVzc2FnZUtpbmRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NCNzVDNjEyMDNB
MUNFMDAyMjJEMUIgLyogV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0xNTQwLDggKzE1MjYsNiBAQAogCQkJCTFBRTQ5ODc5MTFGRjdG
QUEwMDQ4QjQ2NCAvKiBKU05QT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTQ5QTRB
MTFGRkE4Q0UwMDQ4QjQ2NCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
REI4NTgzMTIwMEVDNTcwMDcyNTRCRSAvKiBXS1R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
RDNCOTQ4NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlEM0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmMDU4MGNlMmJmZjhjNjMyYzU5MDA3NmMx
MzBkZjVjOTE1ODMyYjU1Li40ZGVmN2M1M2U5NTFiMTVlZTAxMWRiM2MyNTA3MTU2ZGNmOWM0ZTdi
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcApAQCAtMSw2ICsxLDUgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMTEgKzM0LDkgQEAKICNpbmNsdWRlICJXZWJGcmFt
ZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlS2luZHMuaCIKLSNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKICNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VLaW5kcy5oIgotI2luY2x1ZGUgIldlYlNlYXJjaFBv
cHVwTWVudS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgpAQCAtNDc4
LDIxICs0NzUsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9ybURpZEJsdXIoY29uc3QgTm9k
ZSopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLQotUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAotewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUG9wdXBNZW51KGNsaWVudCkpOwotfQotCi1QYXNz
UmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7Ci19
Ci0KIFBhc3NPd25QdHI8SFRNTFBhcnNlclF1aXJrcz4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVI
VE1MUGFyc2VyUXVpcmtzKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDM1
YjlmOTYwODQ5ZTVjNjMzYjIxZDJlZThhYjlmZWYwM2Q1ZDQ5YmQuLmQyNmE0ZWU4ZWI2NGJiNTFm
MGE2YzgwZTU0ZDA1ZGNjOTZmNzUxMjUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNiArMSw1IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE2NCwxMCArMTYzLDYg
QEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6SFRNTFBh
cnNlclF1aXJrcz4gY3JlYXRlSFRNTFBhcnNlclF1aXJrcygpOwogCi0gICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKLQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb24oKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQz
ZTczOGM1NmIxNTU1N2UzNWM0OGJiZThiZjg0YzRkYjU4MDBkODMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKgotICovCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViUG9wdXBN
ZW51LmgiCi0KLSNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGll
bnQuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYlBvcHVwTWVudTo6V2ViUG9wdXBNZW51
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogbV9wb3B1cENsaWVudChj
bGllbnQpCi17Ci19Ci0KLVdlYlBvcHVwTWVudTo6fldlYlBvcHVwTWVudSgpCi17Ci19Ci0KLQot
dm9pZCBXZWJQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQoKQotewotICAgIG1fcG9wdXBDbGll
bnQgPSAwOwotfQotCi12b2lkIFdlYlBvcHVwTWVudTo6c2hvdyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiByZWN0LCBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKLXsKLQotfQot
Ci12b2lkIFdlYlBvcHVwTWVudTo6aGlkZSgpCi17Ci19Ci0KLXZvaWQgV2ViUG9wdXBNZW51Ojp1
cGRhdGVGcm9tRWxlbWVudCgpCi17Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMWRjMmM2MWU2ZmI2Yzk3ZjE0NDAxMzc3MGI1OTdhNDA4NmE4NmIxMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgV2ViUG9wdXBNZW51X2gKLSNkZWZpbmUgV2Vi
UG9wdXBNZW51X2gKLQotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBQb3B1cE1lbnVDbGllbnQ7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBXZWJQb3B1cE1lbnUgOiBwdWJsaWMgV2ViQ29yZTo6UG9wdXBNZW51IHsKLXB1YmxpYzoK
LSAgICBXZWJQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50Kik7Ci0gICAgfldlYlBv
cHVwTWVudSgpOwotCi0gICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIFdlYkNvcmU6OkZyYW1lVmlldyosIGludCBpbmRleCk7Ci0gICAgdmlydHVhbCB2b2lkIGhp
ZGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlzY29ubmVjdENsaWVudCgpOwotCi1wcml2YXRlOgotICAgIFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFdlYlBvcHVw
TWVudV9oCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2VhcmNoUG9wdXBNZW51LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTZWFyY2hQb3B1cE1lbnUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OGZk
NmU4NjM0ZTliODliY2E1YTRkY2VmOTFlMzU2MGRlYjg1NjA5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgotICoKLSAqLwotCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
ZWJTZWFyY2hQb3B1cE1lbnUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYlNlYXJjaFBv
cHVwTWVudTo6V2ViU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xp
ZW50KQotICAgIDogbV9wb3B1cChjbGllbnQpCi17Ci19Ci0KLVdlYkNvcmU6OlBvcHVwTWVudSog
V2ViU2VhcmNoUG9wdXBNZW51Ojpwb3B1cE1lbnUoKQotewotICAgIHJldHVybiAmbV9wb3B1cDsK
LX0KLQotdm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBX
ZWJDb3JlOjpBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U3RyaW5nPiYpCi17
Ci19Ci0KLXZvaWQgV2ViU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3Qg
V2ViQ29yZTo6QXRvbWljU3RyaW5nJiwgVmVjdG9yPFdlYkNvcmU6OlN0cmluZz4mKQotewotfQot
Ci1ib29sIFdlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi19CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MTEz
OTRkMGFmODg5NGZjZTI4NDA1NGYxYjkzNjI3M2RiNzY4M2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIFdlYlNlYXJjaFBvcHVwTWVudV9oCi0jZGVmaW5l
IFdlYlNlYXJjaFBvcHVwTWVudV9oCi0KLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKLSNp
bmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdl
YlNlYXJjaFBvcHVwTWVudSA6IHB1YmxpYyBXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnUgewotcHVi
bGljOgotICAgIFdlYlNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKTsK
LQotICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IFdlYkNvcmU6OkF0b21pY1N0cmluZyYg
bmFtZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2
aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IFdlYkNvcmU6OkF0b21pY1N0cmlu
ZyYgbmFtZSwgVmVjdG9yPFdlYkNvcmU6OlN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2aXJ0
dWFsIGJvb2wgZW5hYmxlZCgpOwotCi1wcml2YXRlOgotICAgIFdlYlBvcHVwTWVudSBtX3BvcHVw
OwotfTsKLQotfQotCi0jZW5kaWYgLy8gV2ViU2VhcmNoUG9wdXBNZW51X2gKZGlmZiAtLWdpdCBh
L1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oK
aW5kZXggOWM1MGNhMmY5OTlmOGU1Yzg5ODg1MTg3NzUxODljZDY2N2ZmNzA5Yy4uYTM4NDJmZDhl
MDMyMDA5MmI0Y2UxNmYwMzgwYjA0YTg3MWRlMjVlZSAxMDA3NTUKLS0tIGEvV2ViS2l0Mi93aW4v
V2ViS2l0Mi52Y3Byb2oKKysrIGIvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTU4Mywy
MiArNTgzLDYgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBw
b3J0XFdlYkluc3BlY3RvckNsaWVudC5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQotCQkJCTxG
aWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2Vi
UG9wdXBNZW51LmNwcCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYlBvcHVwTWVudS5o
Ig0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViU2VhcmNoUG9wdXBNZW51LmNwcCINCi0J
CQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxX
ZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYlNlYXJjaFBvcHVwTWVudS5oIg0KLQkJCQkJPg0K
LQkJCQk8L0ZpbGU+DQogCQkJCTxGaWx0ZXINCiAJCQkJCU5hbWU9IndpbiINCiAJCQkJCT4NCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>