<?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>151512</bug_id>
          
          <creation_ts>2015-11-20 13:56:29 -0800</creation_ts>
          <short_desc>Remove NETWORK_PROCESS compile flag</short_desc>
          <delta_ts>2015-11-20 14:11:13 -0800</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>151418</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143799</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-11-20 13:56:29 -0800</bug_when>
    <thetext>Remove NETWORK_PROCESS compile flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143800</commentid>
    <comment_count>1</comment_count>
      <attachid>265994</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-11-20 13:57:35 -0800</bug_when>
    <thetext>Created attachment 265994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143810</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-11-20 14:11:13 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/192697</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265994</attachid>
            <date>2015-11-20 13:57:35 -0800</date>
            <delta_ts>2015-11-20 14:05:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151512-20151120135722.patch</filename>
            <type>text/plain</type>
            <size>113204</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE5MjY5
NCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTEx
LTIwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVtb3ZlIE5FVFdPUktfUFJPQ0VTUyBjb21waWxlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTUxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNFZmwu
Y21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6CisgICAgICAg
ICogU291cmNlL2NtYWtlL09wdGlvbnNNYWMuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtl
L1dlYktpdEZlYXR1cmVzLmNtYWtlOgorCiAyMDE1LTExLTIwICBDc2FiYSBPc3p0cm9nb27DoWMg
IDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0VGTF0gRW5hYmxlIEZUTCBKSVQgYnkgZGVm
YXVsdCBvbiBYODZfNjQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MjY5NSkKKysrIFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyMyBAQAorMjAx
NS0xMS0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJlbW92ZSBORVRXT1JLX1BST0NFU1MgY29tcGlsZSBmbGFnCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvTmV0d29y
a1Byb2Nlc3NNYWluLm1tOgorICAgICAgICAoTmV0d29ya1Byb2Nlc3NNYWluKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNl
RW50cnlQb2ludC5tbToKKyAgICAgICAgKE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXIpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtCbG9iUmVnaXN0cnk6OmZpbGVzSW5CbG9iKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpibG9iU2l6ZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2Fk
UGFyYW1ldGVyczo6TmV0d29ya0xvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2FjaGUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2VmbC9OZXR3b3JrUHJvY2Vzc01haW5FZmwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc01haW5Vbml4KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9ndGsvTmV0d29ya1Byb2Nlc3NNYWluR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NNYWluVW5peCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQ
cm9jZXNzSU9TLm1tOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrTG9hZE1h
Yy5tbToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNw
b25zZUFzeW5jKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNz
U291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVRlcm1p
bmF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29u
dGV4dFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFn
ZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVk
L05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29sTWFuYWdlckNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmFkZEN1c3RvbVByb3Rv
Y29sKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyLmg6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xz
L3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkN1
c3RvbVByb3RvY29sTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpD
dXN0b21Qcm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpDdXN0
b21Qcm90b2NvbE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lKToKKyAgICAgICAgKiBTaGFyZWQvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAg
ICAgICogU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50Lmg6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudDo6aW5pdGlhbGl6ZSk6CisgICAgICAg
ICogU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaDoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAg
ICAgICogU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OmV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OmV4ZWN1
dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9ndGsvUHJvY2Vz
c0V4ZWN1dGFibGVQYXRoR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZXhlY3V0YWJsZVBhdGhP
ZlBsdWdpblByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpleGVjdXRhYmxlUGF0aE9mTmV0d29y
a1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9j
ZXNzKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmg6CisgICAgICAg
ICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbToKKyAgICAgICAgKC1bV0tOU1VSTFNl
c3Npb25Mb2NhbCBfZ2V0Q29va2llSGVhZGVyc0ZvclRhc2s6Y29tcGxldGlvbkhhbmRsZXI6XSk6
CisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElTZXNzaW9uLmNwcDoKKyAgICAgICAgKEFQSTo6U2Vzc2lvbjo6flNl
c3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1h
Yy5tbToKKyAgICAgICAgKFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwOgorICAgICAgICAoZXdr
X2NvbnRleHRfcHJvY2Vzc19tb2RlbF9zZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfcHJvY2Vz
c19tb2RlbF9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9nZXQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3Rh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5Ojpj
YW5jZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OnByb2Nlc3NUeXBlQXNTdHJpbmcp
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmdldFByb2Nlc3NUeXBlRnJvbVN0
cmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OmNvbXB1dGVQcm9jZXNzU2hpbVBhdGgpOgorICAgICAgICAoV2ViS2l0OjpzZXJ2aWNl
TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OnNob3VsZExlYWtCb29zdCk6CisgICAgICAgIChXZWJL
aXQ6OmNyZWF0ZVByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvbWFj
L05ldHdvcmtQcm9jZXNzUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzZXRTZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmluaXRpYWxpemVXZWJQYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2wp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6fldlYlByb2Nlc3NQb29sKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVDbGllbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6bmV0d29ya2luZ1Byb2Nlc3NDb25uZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Omxhbmd1YWdlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRVc2VzTmV0d29ya1Byb2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dXNlc05ldHdvcmtQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVEYXRhYmFzZVByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRI
YXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OmRvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlc3VtZURv
d25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFkZGl0aW9uYWxQ
bHVnaW5zRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Om5ldHdv
cmtQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpz
ZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0Q2FjaGVNb2RlbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZh
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVEb3dubG9hZFByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVzZVRlc3RpbmdOZXR3b3JrU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjphbGxvd1NwZWNpZmljSFRU
UFNDZXJ0aWZpY2F0ZUZvckhvc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6
cmVxdWVzdE5ldHdvcmtpbmdTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2w6OmhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvTmV0d29ya2luZ1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvTmV0d29ya2lu
Z1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpnZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVEb3dubG9hZFByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cmVpbnN0YXRlTmV0d29ya1Byb2Nlc3NBc3NlcnRp
b25TdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0
aW9uU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp0aHJvdHRsZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6OmNsb25lU2Vzc2lvbkRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2Vi
UHJvY2Vzc1Bvb2xHdGsuY3BwOgorICAgICAgICAoV2ViS2l0Ojppbml0SW5zcGVjdG9yU2VydmVy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldElnbm9yZVRMU0Vycm9ycyk6
CisgICAgICAgICogVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9G
aWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmxvYlJlZ2lz
dHJ5UHJveHk6OmJsb2JTaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJl
Z2lzdHJ5UHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwOgorICAgICAgICAo
V2ViS2l0Ojppbml0aWFsaXplQnJvd3NlckZ1bmNzKToKKyAgICAgICAgKFdlYktpdDo6bmV0c2Nh
cGVCcm93c2VyRnVuY3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZVBsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpyZWdp
c3RlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnVybFJlZGly
ZWN0UmVzcG9uc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpzZXRDb29raWVzRnJvbURPTSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29va2llc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlc291cmNlTG9hZFNjaGVkdWxlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWU6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6V2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hlbWVB
c0VtcHR5RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1c2VzTmV0d29y
a1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpuZXR3b3JrQ29ubmVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYlJlc291cmNlTG9hZFNjaGVkdWxl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZWZldGNoRE5T
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBjb25maWcu
aDoKKwogMjAxNS0xMS0xOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBCYWNrLWJ1ZmZlciB0byBmcm9udC1idWZmZXIgY29weSBmYWlscyBmb3Igc29t
ZSBidWZmZXIgZm9ybWF0cwpJbmRleDogU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE5MjY5
NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04
MDMsMTYgKzgwMywxMyBAQCBpZiAoV2ViS2l0Ml9XZWJQcm9jZXNzX09VVFBVVF9OQU1FKQogICAg
IHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJQcm9jZXNzIFBST1BFUlRJRVMgT1VUUFVUX05BTUUg
JHtXZWJLaXQyX1dlYlByb2Nlc3NfT1VUUFVUX05BTUV9KQogZW5kaWYgKCkKIAotaWYgKEVOQUJM
RV9ORVRXT1JLX1BST0NFU1MpCi0gICAgYWRkX2V4ZWN1dGFibGUoTmV0d29ya1Byb2Nlc3MgJHtO
ZXR3b3JrUHJvY2Vzc19TT1VSQ0VTfSkKLSAgICBhZGRfd2Via2l0Ml9wcmVmaXhfaGVhZGVyKE5l
dHdvcmtQcm9jZXNzKQotICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhOZXR3b3JrUHJvY2VzcyAk
e05ldHdvcmtQcm9jZXNzX0xJQlJBUklFU30pCi0gICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE5l
dHdvcmtQcm9jZXNzIFBST1BFUlRJRVMgRk9MREVSICJXZWJLaXQiKQotICAgIGluc3RhbGwoVEFS
R0VUUyBOZXR3b3JrUHJvY2VzcyBERVNUSU5BVElPTiAiJHtMSUJFWEVDX0lOU1RBTExfRElSfSIp
CithZGRfZXhlY3V0YWJsZShOZXR3b3JrUHJvY2VzcyAke05ldHdvcmtQcm9jZXNzX1NPVVJDRVN9
KQorYWRkX3dlYmtpdDJfcHJlZml4X2hlYWRlcihOZXR3b3JrUHJvY2VzcykKK3RhcmdldF9saW5r
X2xpYnJhcmllcyhOZXR3b3JrUHJvY2VzcyAke05ldHdvcmtQcm9jZXNzX0xJQlJBUklFU30pCitz
ZXRfdGFyZ2V0X3Byb3BlcnRpZXMoTmV0d29ya1Byb2Nlc3MgUFJPUEVSVElFUyBGT0xERVIgIldl
YktpdCIpCiAKLSAgICBpZiAoV2ViS2l0Ml9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRSkKLSAg
ICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE5ldHdvcmtQcm9jZXNzIFBST1BFUlRJRVMgT1VU
UFVUX05BTUUgJHtXZWJLaXQyX05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FfSkKLSAgICBlbmRp
ZiAoKQoraWYgKFdlYktpdDJfTmV0d29ya1Byb2Nlc3NfT1VUUFVUX05BTUUpCisgICAgc2V0X3Rh
cmdldF9wcm9wZXJ0aWVzKE5ldHdvcmtQcm9jZXNzIFBST1BFUlRJRVMgT1VUUFVUX05BTUUgJHtX
ZWJLaXQyX05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FfSkKIGVuZGlmICgpCiAKIGlmIChFTkFC
TEVfUExVR0lOX1BST0NFU1MpCkBAIC04NDcsNyArODQ0LDcgQEAgc2V0X3RhcmdldF9wcm9wZXJ0
aWVzKFdlYktpdDIgUFJPUEVSVElFUwogaWYgKEFQUExFKQogICAgIFdFQktJVF9GUkFNRVdPUkso
V2ViS2l0MikKIGVsc2UgKCkKLSAgICBpbnN0YWxsKFRBUkdFVFMgV2ViS2l0MiBXZWJQcm9jZXNz
CisgICAgaW5zdGFsbChUQVJHRVRTIFdlYktpdDIgV2ViUHJvY2VzcyBOZXR3b3JrUHJvY2Vzcwog
ICAgICAgICBMSUJSQVJZIERFU1RJTkFUSU9OICIke0xJQl9JTlNUQUxMX0RJUn0iCiAgICAgICAg
IFJVTlRJTUUgREVTVElOQVRJT04gIiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iCiAgICAgKQpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDJQcmVmaXguaAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktp
dDIvV2ViS2l0MlByZWZpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw4ICszNiw2IEBACiAKICNk
ZWZpbmUgRU5BQkxFX1dFQl9QUk9DRVNTX1NBTkRCT1ggMQogCi0jZGVmaW5lIEVOQUJMRV9ORVRX
T1JLX1BST0NFU1MgMQotCiAjZGVmaW5lIEVOQUJMRV9EQVRBQkFTRV9QUk9DRVNTIDEKIAogI2Rl
ZmluZSBFTkFCTEVfTUVNT1JZX1NBTVBMRVIgMQpAQCAtNTksNyArNTcsNiBAQAogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShHVEspCi0jZGVmaW5lIEVOQUJMRV9ORVRXT1JLX1BST0NFU1MgMQogI2Rl
ZmluZSBFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIDEKICNlbmRpZgogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9jb25maWcuaAko
cmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvY29uZmlnLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTkxLDcgKzkxLDcgQEAKICNlbmRpZgogCiAjaWZuZGVmIEVOQUJMRV9ORVRXT1JLX0NB
Q0hFCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykgJiYgKFBMQVRGT1JNKENPQ09BKSB8fCBQ
TEFURk9STShHVEspKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCiAjZGVm
aW5lIEVOQUJMRV9ORVRXT1JLX0NBQ0hFIDEKICNlbHNlCiAjZGVmaW5lIEVOQUJMRV9ORVRXT1JL
X0NBQ0hFIDAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE5
MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgi
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW5jbHVkZSAiTmV0d29ya0Jsb2JS
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgpAQCAtMjc0LDUgKzI3MiwzIEBAIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJsb2IKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpJbmRleDogU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzX2gKICNkZWZpbmUgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NfaAogCi0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2luY2x1ZGUgIkJsb2NraW5nUmVzcG9uc2VNYXAuaCIK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtMTAyLDYgKzEwMCw0IEBAIHByaXZhdGU6CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQog
I2VuZGlmIC8vIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzX2gKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAxOTI2OTQpCisr
KyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjAsOCArMjAsNiBAQAogIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKLQogbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5
UmVjZWl2ZXIgewogCiAgICAgU2NoZWR1bGVSZXNvdXJjZUxvYWQoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQpAQCAtNDgsNSArNDYs
MyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzCiAgICAgVW5yZWdp
c3RlckJsb2JVUkwoV2ViQ29yZTo6VVJMIHVybCkKICAgICBCbG9iU2l6ZShXZWJDb3JlOjpVUkwg
dXJsKSAtPiAodWludDY0X3QgcmVzdWx0U2l6ZSkKIH0KLQotI2VuZGlmIC8vIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWQuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDYgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICNp
bmNsdWRlICJOZXR3b3JrTG9hZC5oIgogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmgiCkBAIC0zNzEsNSArMzcwLDMgQEAgdm9pZCBOZXR3b3JrTG9hZDo6cmVjZWl2ZWRDYW5jZWxs
YXRpb24oUgogI2VuZGlmIC8vICFVU0UoTkVUV09SS19TRVNTSU9OKQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHJldmlzaW9uIDE5MjY5
NCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgTmV0d29ya0xvYWRfaAogI2RlZmlu
ZSBOZXR3b3JrTG9hZF9oCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW5jbHVk
ZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgpAQCAtMTI2LDYgKzEyNCw0
IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKLQogI2VuZGlmIC8vIE5ldHdvcmtMb2FkX2gKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDbGllbnQuaAkocmV2
aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBOZXR3
b3JrTG9hZENsaWVudF9oCiAjZGVmaW5lIE5ldHdvcmtMb2FkQ2xpZW50X2gKIAotI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCi0KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXNwb25zZS5oPgpAQCAtNjYsNyArNjQsNSBAQCBwdWJsaWM6CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2Vu
ZGlmIC8vIE5ldHdvcmtMb2FkQ2xpZW50X2gKIApJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuY3BwCShyZXZpc2lv
biAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBh
cmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw4ICsyNCw2IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICNpbmNsdWRl
ICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKIAogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmgiCkBAIC00Nyw1ICs0NSwzIEBAIE5ldHdvcmtMb2FkUGFyYW1ldGVyczo6
TmV0d29ya0xvYWRQYXJhbWUKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDE5MjY5
NCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIE5ldHdvcmtMb2Fk
UGFyYW1ldGVyc19oCiAjZGVmaW5lIE5ldHdvcmtMb2FkUGFyYW1ldGVyc19oCiAKLSNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9w
dGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+CkBAIC01NSw2ICs1Myw0IEBAIHB1YmxpYzoKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAj
ZW5kaWYgLy8gTmV0d29ya0xvYWRQYXJhbWV0ZXJzX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE5MjY5NCkK
KysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAj
aW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJBdHRhY2htZW50LmgiCiAjaW5j
bHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCkBAIC01NTQsNSArNTUyLDMgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dNZW1vcnlIYQogI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNp
b24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBOZXR3b3JrUHJv
Y2Vzc19oCiAjZGVmaW5lIE5ldHdvcmtQcm9jZXNzX2gKIAotI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCi0KICNpbmNsdWRlICJDYWNoZU1vZGVsLmgiCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNz
LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCkBAIC0xOTcsNiArMTk1LDQgQEAgcHJp
dmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQotCiAjZW5kaWYgLy8gTmV0d29ya1Byb2Nlc3NfaApJbmRleDogU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4JKHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCw2
IEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQotCiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciB7CiAgICAgIyBJbml0aWFsaXplcyB0aGUgbmV0d29yayBwcm9jZXNzLgogICAgIEluaXRp
YWxpemVOZXR3b3JrUHJvY2VzcyhzdHJ1Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQpAQCAtNjMsNSArNjEsMyBAQCBt
ZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlCiAgICAgQ2FuY2VsUHJlcGFy
ZVRvU3VzcGVuZCgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZSgpCiB9Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxOTI2OTQp
CisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAKLSNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQotCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQmxvYlJlZ2lzdHJ5LmgiCkBAIC01ODEsNSArNTc5LDMg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQ2FuQQogI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjYs
OCArMjYsNiBAQAogI2lmbmRlZiBOZXR3b3JrUmVzb3VyY2VMb2FkZXJfaAogI2RlZmluZSBOZXR3
b3JrUmVzb3VyY2VMb2FkZXJfaAogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2lu
Y2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKQEAgLTE2
OSw2ICsxNjcsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlm
IC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0KICNlbmRpZiAvLyBOZXR3b3JrUmVzb3VyY2VM
b2FkZXJfaApJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTky
Njk0KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCw2IEBACiAjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQotCiBtZXNzYWdlcyAtPiBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgTGVnYWN5UmVjZWl2ZXIg
ewogCiAgICAgQ29udGludWVXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QpCkBAIC0zMCw1ICsyOCwzIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtSZXNvdXJjZUxv
YWRlciBMZWdhY3kKICAgICBDb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2UoYm9vbCBjYW5BdXRoZW50aWNhdGUpCiAjZW5kaWYKIH0KLQotI2VuZGlmIC8vIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL05ldHdvcmtQcm9jZXNzTWFpbi5tbQkocmV2aXNpb24gMTkyNjk0KQorKysgU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc01haW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDYgQEAKIAog
I2ltcG9ydCAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW1w
b3J0ICJDaGlsZFByb2Nlc3NFbnRyeVBvaW50LmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5o
IgogI2ltcG9ydCAiV0tCYXNlLmgiCkBAIC0zOSw1ICszNywzIEBAIGludCBOZXR3b3JrUHJvY2Vz
c01haW4oaW50IGFyZ2MsIGNoYXIqKiAKIHsKICAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxO
ZXR3b3JrUHJvY2VzcywgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlPihhcmdjLCBhcmd2KTsKIH0K
LQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNl
RW50cnlQb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQko
cmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQ
b2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTUyLDcgKzUyLDYgQEAgZXh0ZXJuICJDIiBXS19FWFBPUlQgdm9pZCBOZXR3b3Jr
U2VydmljZQogCiB2b2lkIE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25f
dCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQogewotI2lmIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgLy8gUmVtb3ZlIHRoZSBTZWNJdGVtU2hpbSBmcm9t
IHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gYW55IHBy
b2Nlc3NlcyBzcGF3bmVkIGJ5CiAgICAgLy8gdGhlIHRoaXMgcHJvY2VzcyBkb24ndCB0cnkgdG8g
aW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFzaC4KICAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3Ry
aXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1NlY0l0
ZW1TaGltLmR5bGliIik7CkBAIC02OSw1ICs2OCw0IEBAIHZvaWQgTmV0d29ya1NlcnZpY2VJbml0
aWFsaXplcih4cGNfY29ubmUKICNpZiBIQVZFKE9TX0FDVElWSVRZKQogICAgIG9zX2FjdGl2aXR5
X2VuZChhY3Rpdml0eSk7CiAjZW5kaWYKLSNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVn
aXN0cnkuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Jsb2JS
ZWdpc3RyeS5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2luY2x1ZGUgIkJs
b2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2Fu
ZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlBhcnQuaD4KQEAgLTE1MSw1
ICsxNDksMyBAQCBWZWN0b3I8UmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IE5lCiB9CiAK
IH0KLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJ
L05ldHdvcmtCbG9iUmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuaAkocmV2aXNpb24gMTkyNjk0
KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJl
Z2lzdHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgTmV0d29y
a0Jsb2JSZWdpc3RyeV9oCiAjZGVmaW5lIE5ldHdvcmtCbG9iUmVnaXN0cnlfaAogCi0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2luY2x1ZGUgPFdlYkNvcmUvVVJMSGFzaC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTY4LDYg
KzY2LDQgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKLQogI2VuZGlmIC8vIE5ldHdvcmtCbG9iUmVnaXN0cnlfaApJbmRleDogU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0Nv
Y29hLm1tCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsy
Niw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzLmgiCiAK
LSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW1wb3J0ICJOZXR3b3JrQ2FjaGUuaCIK
ICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKQEAgLTI2Nyw1ICsyNjUsMyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpjbGVhckRpc2tDYWNoZShzdGQ6CiB9CiAKIH0KLQotI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NNYWluRWZsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1By
b2Nlc3NNYWluRWZsLmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzTWFpbkVmbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc01haW5Vbml4LmgiCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW5j
bHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAj
aW5jbHVkZSA8RWNvcmUuaD4KQEAgLTcwLDUgKzY4LDMgQEAgaW50IE5ldHdvcmtQcm9jZXNzTWFp
blVuaXgoaW50IGFyZ2MsIGNoYQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9ndGsvTmV0d29ya1Byb2Nlc3NNYWluR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9ndGsvTmV0d29ya1Byb2Nlc3NNYWluR3RrLmNwcAko
cmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZ3RrL05l
dHdvcmtQcm9jZXNzTWFpbkd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01haW5Vbml4Lmgi
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNz
TWFpbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9T
b3VwTmV0d29ya1Nlc3Npb24uaD4KQEAgLTYzLDUgKzYxLDMgQEAgaW50IE5ldHdvcmtQcm9jZXNz
TWFpblVuaXgoaW50IGFyZ2MsIGNoYQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCShyZXZpc2lv
biAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1By
b2Nlc3NJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNv
bmZpZy5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKIAotI2lmIFBMQVRGT1JNKElPUykg
JiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpZiBQTEFURk9STShJT1MpCiAKICNpbXBvcnQg
Ik5ldHdvcmtDYWNoZS5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCIKQEAgLTEwMSw0ICsxMDEsNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVRl
cm1pbmF0ZSgpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gUExBVEZPUk0o
SU9TKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2VuZGlmIC8vIFBMQVRGT1JNKElPUykK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrTG9hZE1hYy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29y
a0xvYWRNYWMubW0JKHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9OZXR3b3JrTG9hZE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUs
NiBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CiAjaW1wb3J0ICJOZXR3b3JrTG9hZC5oIgogCiAjaW1wb3J0IDxXZWJDb3JlL0NGTmV0d29ya1NQ
SS5oPgpAQCAtNjAsNSArNTksMyBAQCB2b2lkIE5ldHdvcmtMb2FkOjp3aWxsQ2FjaGVSZXNwb25z
ZUFzeW5jCiAjZW5kaWYgLy8gIVVTRShDRk5FVFdPUkspCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0J
KHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9O
ZXR3b3JrUHJvY2Vzc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2lt
cG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgogCi0jaWYgUExBVEZP
Uk0oTUFDKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2lmIFBMQVRGT1JNKE1BQykKIAog
I2ltcG9ydCAiTmV0d29ya0NhY2hlLmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgpAQCAtMTQ0LDQgKzE0NCw0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBs
YXRmb3JtVGVybWluYXRlKCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBQ
TEFURk9STShNQUMpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtS
ZXNvdXJjZUxvYWRlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tCShyZXZpc2lvbiAxOTI2OTQp
CisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9h
ZGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaW1wb3J0ICJjb25m
aWcuaCIKICNpbXBvcnQgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogCi0jaWYgRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKLQogI2ltcG9ydCAiTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IuaCIKICNp
bXBvcnQgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NGTmV0d29ya1NQ
SS5oPgpAQCAtOTAsNiArODgsMyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbENh
Y2hlUmVzCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKLQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAkocmV2aXNpb24gMTkyNjk0
KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1Nv
dXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw2IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3MuaCIKIAogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgpAQCAtMTcwLDUgKzE2OSwz
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtVGVybWluYXRlKCkKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHRTb3VwLmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw3ICsyNiw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIK
IAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CkBAIC01Nyw1ICs1
NiwzIEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgUmVtb3RlTmV0d29ya2luZ0MKIH0KIAogfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgJKHJldmlzaW9uIDE5MjY5NCkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAkod29ya2luZyBj
b3B5KQpAQCAtMzIsOSArMzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogU3RyaW5nIGV4ZWN1
dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblBy
b2Nlc3MoKTsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogU3RyaW5nIGV4ZWN1dGFibGVQ
YXRoT2ZOZXR3b3JrUHJvY2VzcygpOwotI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NF
U1MpCiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpOwogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQz
LDkgKzQzLDcgQEAgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6V2ViUHJvY2VzcwogICAg
ICwgc2hvdWxkRW5hYmxlSklUKGZhbHNlKQogICAgICwgc2hvdWxkRW5hYmxlRlRMSklUKGZhbHNl
KQogI2VuZGlmCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICAsIHVzZXNOZXR3b3Jr
UHJvY2VzcyhmYWxzZSkKLSNlbmRpZgogICAgICwgbWVtb3J5Q2FjaGVEaXNhYmxlZChmYWxzZSkK
ICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAsIGhhc0ltYWdlU2VydmljZXMoZmFs
c2UpCkBAIC0xMzMsOSArMTMxLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZAogICAgIGVuY29kZXIgPDwgbm90aWZpY2F0aW9uUGVybWlzc2lvbnM7CiAjZW5kaWYK
IAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgZW5jb2RlciA8PCB1c2VzTmV0d29y
a1Byb2Nlc3M7Ci0jZW5kaWYKIAogICAgIGVuY29kZXIgPDwgcGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
SGFzaGVzOwogICAgIGVuY29kZXIgPDwgcGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKQEAgLTI5MSwx
MCArMjg3LDggQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVzZXNOZXR3b3JrUHJvY2Vzcykp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLnBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpA
QCAtMTU0LDkgKzE1NCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4gbm90aWZpY2F0aW9uUGVybWlzc2lvbnM7CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgYm9vbCB1c2VzTmV0d29ya1By
b2Nlc3M7Ci0jZW5kaWYKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFw
PHVuc2lnbmVkLCBkb3VibGU+PiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAgICAgVmVj
dG9yPFN0cmluZz4gcGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgogI2luY2x1ZGUgIkRv
d25sb2FkLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCkBA
IC0zNywxMCArMzgsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2xpZW50Lmg+CiAKLSNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNz
YWdlcy5oIgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTEyOCw3ICsxMjUsNiBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6
ZGlkUmVjZWl2ZUF1CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShmcmFtZS0+ZnJhbWVJRCgpLCBhdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxlbmdlSUQpLCBmcmFtZS0+cGFnZSgpLT5wYWdlSUQo
KSk7CiB9CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogI2lmIFVTRShORVRXT1JLX1NF
U1NJT04pCiB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VD
b21wbGV0aW9uSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlcikKIHsKQEAgLTE1Nyw3ICsxNTMsNiBA
QCB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1CiAgICAgCiAgICAgbV9w
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UocGFnZUlELCBmcmFtZUlELCBhdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSwgY2hhbGxlbmdlSUQpKTsKIH0KLSNlbmRpZgogCiAjaWYgIVVTRShORVRXT1JLX1NFU1NJ
T04pCiB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKERvd25sb2FkKiBkb3dubG9hZCwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVk
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKIAotI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCi0KICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC0xNjgsNSArMTY2LDMgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJl
dmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYg
QEAKICNpZm5kZWYgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnNfaAogI2RlZmluZSBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyc19oCiAKLSNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQotCiAjaW5jbHVkZSAiQ2FjaGVNb2RlbC5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRl
bnNpb24uaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xMDMsNiArMTAxLDQgQEAgc3Ry
dWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIAogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0KICNlbmRpZiAvLyBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyc19oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaAko
cmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NTdXBwbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEyICszMywxMCBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50IDogcHVibGljIENoaWxkUHJvY2Vz
c1N1cHBsZW1lbnQgewotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGluaXRpYWxpemUoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmKQogICAgIHsKICAgICB9Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMTkyNjk0KQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw2IEBACiAjaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCi0jaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtMTYwLDUgKzE1OCwzIEBAIGJvb2wgTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnM6OmRlY28KIH0KICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0j
ZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuaAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdv
cmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzIs
OCArMzIsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0K
IG5hbWVzcGFjZSBJUEMgewogICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKICAgICBjbGFzcyBB
cmd1bWVudEVuY29kZXI7CkBAIC02OCw2ICs2Niw0IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjZW5kaWYg
Ly8gTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnNfaApJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC04MywxMCArODMsOCBAQCBwcml2YXRlOgogICAgIC8vIFdl
YlByb2Nlc3NTdXBwbGVtZW50CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCiAgICAgLy8gTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50CiAgICAgdm9pZCBpbml0aWFsaXpl
KGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7Ci0jZW5k
aWYKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVy
cmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyQ29jb2EubW0JKHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFn
ZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbXBvcnQgIkN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbXBvcnQg
Ik5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
ICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CkBAIC0zNywxMCArMzgsNiBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25z
ZS5oPgogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLSNpbXBvcnQgIk5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jZW5kaWYKLQogI2lmZGVmIF9faGFzX2luY2x1ZGUK
ICNpZiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4p
CiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4KQEAgLTEzNywx
NCArMTM0LDEyIEBAIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0aWFsaXplQ28KIAog
dm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQogICAgIEFTU0VSVChwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9t
UHJvdG9jb2xzLmlzRW1wdHkoKSB8fCAhcGFyYW1ldGVycy51c2VzTmV0d29ya1Byb2Nlc3MpOwog
ICAgIGlmIChwYXJhbWV0ZXJzLnVzZXNOZXR3b3JrUHJvY2VzcykgewogICAgICAgICBtX2NoaWxk
UHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+cmVtb3ZlV29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7CiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlID0gbnVsbHB0cjsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgW05TVVJMUHJvdG9jb2wgcmVnaXN0ZXJDbGFzczpb
V0tDdXN0b21Qcm90b2NvbCBjbGFzc11dOwogCkBAIC0xNTIsNyArMTQ3LDYgQEAgdm9pZCBDdXN0
b21Qcm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemUoYwogICAgICAgICByZWdpc3RlclNjaGVtZShw
YXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzW2ldKTsKIH0K
IAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdl
cjo6aW5pdGlhbGl6ZShjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKIHsKICAgICBbTlNVUkxQcm90b2NvbCByZWdpc3RlckNsYXNzOltXS0N1c3RvbVBy
b3RvY29sIGNsYXNzXV07CkBAIC0xNjAsNyArMTU0LDYgQEAgdm9pZCBDdXN0b21Qcm90b2NvbE1h
bmFnZXI6OmluaXRpYWxpemUoYwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1ldGVy
cy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scy5zaXplKCk7ICsraSkKICAg
ICAgICAgcmVnaXN0ZXJTY2hlbWUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1
c3RvbVByb3RvY29sc1tpXSk7CiB9Ci0jZW5kaWYKIAogdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFn
ZXI6OmFkZEN1c3RvbVByb3RvY29sKFdLQ3VzdG9tUHJvdG9jb2wgKmN1c3RvbVByb3RvY29sKQog
ewpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3Nv
dXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyU291cC5jcHAJKHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNvdXAu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMyArMjMsMTAgQEAKICNpbmNsdWRlICJDaGlsZFBy
b2Nlc3MuaCIKICNpbmNsdWRlICJDdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBsLmgiCiAjaW5jbHVk
ZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKLSNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNvbnN0IGNoYXIq
IEN1c3RvbVByb3RvY29sTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQpAQCAtNTEsMjUgKzQ4LDIx
IEBAIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0aWFsaXplQ28KIAogdm9pZCBDdXN0
b21Qcm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAg
IEFTU0VSVChwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xz
LmlzRW1wdHkoKSB8fCAhcGFyYW1ldGVycy51c2VzTmV0d29ya1Byb2Nlc3MpOwogICAgIGlmIChw
YXJhbWV0ZXJzLnVzZXNOZXR3b3JrUHJvY2VzcykgewogICAgICAgICBtX2NoaWxkUHJvY2Vzcy0+
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7
CiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSNlbmRpZgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1ldGVycy51cmxTY2hl
bWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scy5zaXplKCk7ICsraSkKICAgICAgICAgcmVn
aXN0ZXJTY2hlbWUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3Rv
Y29sc1tpXSk7CiB9CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogdm9pZCBDdXN0b21Q
cm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJh
bWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzLnNpemUoKTsgKytp
KQogICAgICAgICByZWdpc3RlclNjaGVtZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVk
Rm9yQ3VzdG9tUHJvdG9jb2xzW2ldKTsKIH0KLSNlbmRpZgogCiB2b2lkIEN1c3RvbVByb3RvY29s
TWFuYWdlcjo6cmVnaXN0ZXJTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiB7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBh
dGhFZmwuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZs
L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDE0ICs4
MSwxMiBAQCBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKQogICAgIHJldHVy
biB3ZWJLaXRQbHVnaW5Qcm9jZXNzTmFtZTsKIH0KIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCkKIHsKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB3ZWJLaXROZXR3b3JrUHJvY2Vzc05hbWUo
ZmluZFByb2Nlc3NQYXRoKE5FVFdPUktQUk9DRVNTTkFNRSkpOwogCiAgICAgcmV0dXJuIHdlYktp
dE5ldHdvcmtQcm9jZXNzTmFtZTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BS
T0NFU1MpCiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Qcm9jZXNzRXhlY3V0YWJsZVBh
dGhHdGsuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3Rr
L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDEyICs3
OSwxMCBAQCBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKQogICAgIHJldHVy
biBmaW5kV2ViS2l0UHJvY2VzcygiV2ViS2l0UGx1Z2luUHJvY2VzcyIpOwogfQogCi0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nl
c3MoKQogewogICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV2ViS2l0TmV0d29ya1Byb2Nl
c3MiKTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiBTdHJpbmcg
ZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5oCShyZXZpc2lvbiAxOTI2OTQpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgQ29va2llU3RvcmFnZVNoaW1faAogI2RlZmlu
ZSBDb29raWVTdG9yYWdlU2hpbV9oCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAKQEAgLTQ5LDYgKzQ3LDQgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKLQogI2VuZGlmIC8vIENvb2tpZVN0b3JhZ2VTaGltX2gKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQkocmV2
aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdl
U2hpbS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltLmgiCiAKLSNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQotCiAjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgiCiAjaW5j
bHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKQEAgLTEzNSw1ICsxMzMsMyBAQCAtICh2b2lkKV9nZXRDb29r
aWVIZWFkZXJzRm9yVGFzazooTlNVUkxTCiB9CiAKIEBlbmQKLQotI2VuZGlmIC8vIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0
b3JhZ2VTaGltTGlicmFyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCIKIAotI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpICYmICFQTEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykKIAogI2luY2x1ZGUg
PFdlYkNvcmUvRHluYW1pY0xpbmtlckludGVycG9zaW5nLmg+CiAKQEAgLTkwLDQgKzkwLDQgQEAg
dm9pZCBXZWJLaXRDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemUoYwogICAgIAogfQogCi0jZW5k
aWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykgJiYgIVBMQVRGT1JNKElPUykKKyNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVT
dG9yYWdlU2hpbUxpYnJhcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIENvb2tpZVN0b3JhZ2VTaGltTGlicmFy
eV9oCiAjZGVmaW5lIENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeV9oCiAKLSNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQotCiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdl
KiAgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MCw2
ICszOCw0IEBAIHR5cGVkZWYgdm9pZCAoKkNvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGkKIAogfQog
Ci0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2VuZGlmIC8vIENvb2tpZVN0
b3JhZ2VTaGltTGlicmFyeV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2MywxMCArMTYzLDggQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhU
VFBDb29raQogICAgIC8vIC0gV2hlbiB0ZXN0aW5nLCB3ZSBvbmx5IGhhdmUgb25lIFdlYlByb2Nl
c3MgYW5kIG9uZSBOZXR3b3JrUHJvY2VzcywgYW5kIFdlYktpdFRlc3RSdW5uZXIgbmV2ZXIgcmVz
dGFydHMgdGhlbTsKICAgICAvLyAtIFdoZW4gbm90IHRlc3RpbmcsIENvY29hIGhhcyB0aGUgcG9s
aWN5IHBlcnNpc3RlZCwgYW5kIHRodXMgbmV3IHByb2Nlc3NlcyB1c2UgaXQgKGV2ZW4gZm9yIGVw
aGVtZXJhbCBzZXNzaW9ucykuCiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBv
bGljeSkpOwotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKHByb2Nlc3NQb29s
KCktPnVzZXNOZXR3b3JrUHJvY2VzcygpKQogICAgICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9O
ZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShzdGQ6OmZ1bmN0aW9uPHZvaWQgKEhU
VFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0
aW9uKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJl
dmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSAiTmF0aXZlV2Vi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRl
ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1
ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIlBh
Z2VDbGllbnQuaCIKQEAgLTEzOCwxMCArMTM5LDYgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZExlYWtDb3VudGVyLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0j
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgotI2VuZGlmCi0KICNpZiBQTEFURk9S
TShDT0NPQSkKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAj
aW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhLmgiCkBAIC00
ODcsMTAgKzQ4NCw4IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHAK
IAogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQsICp0aGlzKTsKIAotI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCiAg
ICAgICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24obV9z
ZXNzaW9uSUQpKTsKLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgY29uc3QgQ0ZJ
bmRleCB2aWV3U3RhdGVDaGFuZ2VSdW5Mb29wT3JkZXIgPSAoQ0ZJbmRleClSdW5Mb29wT2JzZXJ2
ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRlcnM6OkNvcmVBbmltYXRpb25Db21taXQgLSAxOwpAQCAt
Nzc0LDEwICs3NjksOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U2Vzc2lvbklEKFNlc3Npb25J
CiAgICAgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRTZXNzaW9uSUQoc2Vzc2lvbklEKSwgbV9wYWdlSUQpOwogCi0jaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkp
CiAgICAgICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5zZW5kVG9OZXR3b3JraW5nUHJvY2Vz
cyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
c2Vzc2lvbklEKSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVX
ZWJQYWdlKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsOSBAQAogI2luY2x1ZGUg
IkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNp
bmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCkBAIC03
OCwxMiArODEsNiBAQAogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjZW5k
aWYKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2Vz
LmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgotI2VuZGlmCi0KICNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKICNpbmNsdWRlICJTZXJ2aWNlc0NvbnRyb2xsZXIuaCIKICNl
bmRpZgpAQCAtMTU5LDEwICsxNTYsOCBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2wo
QVBJOjpQcm9jCiAjZW5kaWYKICAgICAsIG1fc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9u
KGZhbHNlKQogICAgICwgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVkKHRydWUpCi0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICAsIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2
YWx1YXRpb24odHJ1ZSkKICAgICAsIG1fZGlkTmV0d29ya1Byb2Nlc3NDcmFzaChmYWxzZSkKLSNl
bmRpZgogI2lmIFVTRShTT1VQKQogICAgICwgbV9pZ25vcmVUTFNFcnJvcnModHJ1ZSkKICNlbmRp
ZgpAQCAtMjU0LDEwICsyNDksOCBAQCBXZWJQcm9jZXNzUG9vbDo6fldlYlByb2Nlc3NQb29sKCkK
ICAgICBwcm9jZXNzUG9vbENvdW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKIAotI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAgIG1f
bmV0d29ya1Byb2Nlc3MtPnNodXREb3duUHJvY2VzcygpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tDb250ZXh0Q2xpZW50QmFzZSog
Y2xpZW50KQpAQCAtMzE1LDE4ICszMDgsMTIgQEAgSVBDOjpDb25uZWN0aW9uKiBXZWJQcm9jZXNz
UG9vbDo6bmV0d29yawogewogICAgIHN3aXRjaCAocHJvY2Vzc01vZGVsKCkpIHsKICAgICBjYXNl
IFByb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M6Ci0jaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKICAgICAgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpKQogICAgICAgICAgICAg
cmV0dXJuIG1fbmV0d29ya1Byb2Nlc3MtPmNvbm5lY3Rpb24oKTsKLSNlbmRpZgogICAgICAgICBy
ZXR1cm4gbV9wcm9jZXNzZXNbMF0tPmNvbm5lY3Rpb24oKTsKICAgICBjYXNlIFByb2Nlc3NNb2Rl
bE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CiAgICAgICAgIEFTU0VSVCh1c2VzTmV0d29ya1Byb2Nlc3MoKSk7CiAgICAgICAgIHJldHVybiBt
X25ldHdvcmtQcm9jZXNzLT5jb25uZWN0aW9uKCk7Ci0jZWxzZQotICAgICAgICBicmVhazsKLSNl
bmRpZgogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKQEAg
LTM0MCw3ICszMjcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpsYW5ndWFnZUNoYW5nZWQodm9p
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpsYW5ndWFnZUNoYW5nZWQoKQogewogICAgIHNlbmRUb0Fs
bFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6VXNlclByZWZlcnJlZExhbmd1YWdlc0No
YW5nZWQodXNlclByZWZlcnJlZExhbmd1YWdlcygpKSk7Ci0jaWYgVVNFKFNPVVApICYmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCisjaWYgVVNFKFNPVVApCiAgICAgaWYgKHVzZXNOZXR3b3JrUHJv
Y2VzcygpICYmIG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdl
ZCh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkpLCAwKTsKICNlbmRpZgpAQCAtMzU4LDIzICszNDUs
MTQgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGV4dENoZWNrZXJTdGF0ZUNoYQogCiB2b2lkIFdl
YlByb2Nlc3NQb29sOjpzZXRVc2VzTmV0d29ya1Byb2Nlc3MoYm9vbCB1c2VzTmV0d29ya1Byb2Nl
c3MpCiB7Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBtX2NvbmZpZ3VyYXRpb24t
PnNldFVzZU5ldHdvcmtQcm9jZXNzKHVzZXNOZXR3b3JrUHJvY2Vzcyk7Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTSh1c2VzTmV0d29ya1Byb2Nlc3MpOwotI2VuZGlmCiB9CiAKIGJvb2wgV2ViUHJv
Y2Vzc1Bvb2w6OnVzZXNOZXR3b3JrUHJvY2VzcygpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKICAgICByZXR1cm4gbV9jb25maWd1cmF0aW9uLT51c2VOZXR3b3JrUHJvY2Vz
cygpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAotI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCiBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5z
dXJlTmV0d29ya1Byb2Nlc3MoKQogewogICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQpAQCAtNDU5
LDcgKzQzNyw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ28KIAog
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihyZXBseSk7
CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6ZW5zdXJlRGF0YWJhc2VQcm9jZXNzKCkKQEAgLTUyNywxNCArNTA0LDEyIEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2gKIHsKICAgICBtX2ljb25EYXRh
YmFzZS0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsK
IAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2Vz
cygpICYmIG5ldHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpCiAgICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQoKSksIDApOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBuZXR3
b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAw
KTsKICAgICB9Ci0jZW5kaWYgLy8gRU5BQkxFRChORVRXT1JLX1BST0NFU1MpCiAKICAgICBpZiAo
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CkBAIC01NzksMTAgKzU1NCw4IEBAIFdlYlByb2Nl
c3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZVMKIAogV2ViUHJvY2Vzc1Byb3h5JiBXZWJQ
cm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiB7Ci0jaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKICAgICBpZiAodXNlc05ldHdvcmtQcm9jZXNzKCkpCiAgICAgICAgIGVuc3VyZU5l
dHdvcmtQcm9jZXNzKCk7Ci0jZW5kaWYKIAogICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IHByb2Nl
c3MgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgqdGhpcyk7CiAKQEAgLTY1OSw5ICs2MzIsNyBA
QCBXZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOCiAgICAgc3VwcGxlbWVu
dDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCktPnBvcHVsYXRlQ29weU9mTm90aWZpY2F0
aW9uUGVybWlzc2lvbnMocGFyYW1ldGVycy5ub3RpZmljYXRpb25QZXJtaXNzaW9ucyk7CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgcGFyYW1ldGVycy51c2VzTmV0
d29ya1Byb2Nlc3MgPSB1c2VzTmV0d29ya1Byb2Nlc3MoKTsKLSNlbmRpZgogCiAgICAgcGFyYW1l
dGVycy5wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMgPSBtX3BsdWdJbkF1dG9TdGFydFByb3Zp
ZGVyLmF1dG9TdGFydE9yaWdpbkhhc2hlc0NvcHkoKTsKICAgICBjb3B5VG9WZWN0b3IobV9wbHVn
SW5BdXRvU3RhcnRQcm92aWRlci5hdXRvU3RhcnRPcmlnaW5zKCksIHBhcmFtZXRlcnMucGx1Z0lu
QXV0b1N0YXJ0T3JpZ2lucyk7CkBAIC04NzMsMTMgKzg0NCwxMSBAQCBEb3dubG9hZFByb3h5KiBX
ZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQoCiAgICAgdWludDY0X3QgaW5pdGlhdGluZ1BhZ2VJRCA9
IGluaXRpYXRpbmdQYWdlID8gaW5pdGlhdGluZ1BhZ2UtPnBhZ2VJRCgpIDogMDsKICAgICBTZXNz
aW9uSUQgc2Vzc2lvbklEID0gaW5pdGlhdGluZ1BhZ2UgPyBpbml0aWF0aW5nUGFnZS0+c2Vzc2lv
bklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKIAotI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCiAgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG5ldHdvcmtQcm9j
ZXNzKCkpIHsKICAgICAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogUmVwbGljYXRlIHdo
YXRldmVyIEZyYW1lTG9hZGVyOjpzZXRPcmlnaW5hbFVSTEZvckRvd25sb2FkUmVxdWVzdCBkb2Vz
IHdpdGggdGhlIHJlcXVlc3QgaGVyZS4KICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRvd25sb2FkUmVxdWVzdChzZXNzaW9uSUQsIGRvd25s
b2FkUHJveHktPmRvd25sb2FkSUQoKSwgcmVxdWVzdCksIDApOwogICAgICAgICByZXR1cm4gZG93
bmxvYWRQcm94eTsKICAgICB9Ci0jZW5kaWYKIAogICAgIG1fcHJvY2Vzc2VzWzBdLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpEb3dubG9hZFJlcXVlc3Qoc2Vzc2lvbklELCBkb3dubG9hZFBy
b3h5LT5kb3dubG9hZElEKCksIGluaXRpYXRpbmdQYWdlSUQsIHJlcXVlc3QpLCAwKTsKICAgICBy
ZXR1cm4gZG93bmxvYWRQcm94eTsKQEAgLTg5MywxMiArODYyLDEwIEBAIERvd25sb2FkUHJveHkq
IFdlYlByb2Nlc3NQb29sOjpyZXN1bWVEb3cKICAgICBpZiAoIXBhdGguaXNFbXB0eSgpKQogICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocGF0aCwgU2FuZGJveEV4dGVuc2lv
bjo6UmVhZFdyaXRlLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKIAotI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCiAgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG5ldHdvcmtQcm9j
ZXNzKCkpIHsKICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlJlc3VtZURvd25sb2FkKGRvd25sb2FkUHJveHktPmRvd25sb2FkSUQoKSwgcmVz
dW1lRGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBwYXRoLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwg
MCk7CiAgICAgICAgIHJldHVybiBkb3dubG9hZFByb3h5OwogICAgIH0KLSNlbmRpZgogCiAgICAg
bV9wcm9jZXNzZXNbMF0tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlJlc3VtZURvd25sb2Fk
KGRvd25sb2FkUHJveHktPmRvd25sb2FkSUQoKSwgcmVzdW1lRGF0YS0+ZGF0YVJlZmVyZW5jZSgp
LCBwYXRoLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwgMCk7CiAgICAgcmV0dXJuIGRvd25sb2Fk
UHJveHk7CkBAIC05NDAsNyArOTA3LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWRkaXRp
b25hbFBsdWdpbgogfQogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCi0j
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIFBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIgV2Vi
UHJvY2Vzc1Bvb2w6Om5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpCiB7CiAgICAgaWYgKCFtX25l
dHdvcmtQcm9jZXNzKQpAQCAtOTQ4LDcgKzkxNCw2IEBAIFBsYXRmb3JtUHJvY2Vzc0lkZW50aWZp
ZXIgV2ViUHJvY2Vzc1Bvb2wKIAogICAgIHJldHVybiBtX25ldHdvcmtQcm9jZXNzLT5wcm9jZXNz
SWRlbnRpZmllcigpOwogfQotI2VuZGlmCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFsd2F5
c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiB7CkBA
IC05ODgsMTUgKzk1MywxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXREb21haW5SZWxheGF0
aW9uCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldENhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RF
dmFsdWF0aW9uKGJvb2wgdmFsdWUpCiB7Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAg
ICBtX2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uID0gdmFsdWU7CiAgICAgaWYg
KHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG1fbmV0d29ya1Byb2Nlc3MpIHsKICAgICAgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldENhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKHZhbHVlKSwgMCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYg
dXJsU2NoZW1lKQpAQCAtMTA2NCwxMCArMTAyNSw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNl
dENhY2hlTW9kZWwoQ2FjaGUKICAgICBtX2NvbmZpZ3VyYXRpb24tPnNldENhY2hlTW9kZWwoY2Fj
aGVNb2RlbCk7CiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpT
ZXRDYWNoZU1vZGVsKGNhY2hlTW9kZWwpKTsKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CiAgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG1fbmV0d29ya1Byb2Nlc3MpCiAgICAg
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRD
YWNoZU1vZGVsKGNhY2hlTW9kZWwpLCAwKTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpzZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChkb3VibGUgdGltZW91dEludGVy
dmFsKQpAQCAtMTA3NywxMyArMTAzNiwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXREZWZh
dWx0UmVxdWVzdFRpCiAKIERvd25sb2FkUHJveHkqIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVEb3du
bG9hZFByb3h5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkgewogICAgICAg
ICBlbnN1cmVOZXR3b3JrUHJvY2VzcygpOwogICAgICAgICBBU1NFUlQobV9uZXR3b3JrUHJvY2Vz
cyk7CiAgICAgICAgIHJldHVybiBtX25ldHdvcmtQcm9jZXNzLT5jcmVhdGVEb3dubG9hZFByb3h5
KHJlcXVlc3QpOwogICAgIH0KLSNlbmRpZgogCiAgICAgcmV0dXJuIGVuc3VyZVNoYXJlZFdlYlBy
b2Nlc3MoKS5jcmVhdGVEb3dubG9hZFByb3h5KHJlcXVlc3QpOwogfQpAQCAtMTE4MiwxMiArMTEz
OSwxMCBAQCBTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmNvb2tpZVN0b3JhZ2VEaXJlCiB2b2lkIFdl
YlByb2Nlc3NQb29sOjp1c2VUZXN0aW5nTmV0d29ya1Nlc3Npb24oKQogewogICAgIEFTU0VSVCht
X3Byb2Nlc3Nlcy5pc0VtcHR5KCkpOwotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAg
QVNTRVJUKCFtX25ldHdvcmtQcm9jZXNzKTsKIAogICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQog
ICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAgIGlmICghbV9wcm9jZXNzZXMuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47CkBAIC0xMTk3LDEyICsxMTUyLDEwIEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnVzZVRlc3RpbmdOZXR3b3JrU2UKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6YWxsb3dT
cGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyog
Y2VydGlmaWNhdGUsIGNvbnN0IFN0cmluZyYgaG9zdCkKIHsKLSNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSAmJiBtX25ldHdvcmtQcm9jZXNz
KSB7CiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2VydGlmaWNhdGUtPmNl
cnRpZmljYXRlSW5mbygpLCBob3N0KSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5k
aWYKIAogI2lmIFVTRShTT1VQKQogICAgIG1fcHJvY2Vzc2VzWzBdLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzOjpBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2VydGlmaWNh
dGUtPmNlcnRpZmljYXRlSW5mbygpLCBob3N0KSwgMCk7CkBAIC0xMjY4LDI1ICsxMjIxLDE0IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlcXVlc3RXZWJDb250ZW50U3QKIAogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cmVxdWVzdE5ldHdvcmtpbmdTdGF0aXN0aWNzKFN0YXRpc3RpY3NSZXF1ZXN0KiBy
ZXF1ZXN0KQogewotICAgIGJvb2wgbmV0d29ya1Byb2Nlc3NVbmF2YWlsYWJsZTsKLSNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQotICAgIG5ldHdvcmtQcm9jZXNzVW5hdmFpbGFibGUgPSAhdXNl
c05ldHdvcmtQcm9jZXNzKCkgfHwgIW1fbmV0d29ya1Byb2Nlc3M7Ci0jZWxzZQotICAgIG5ldHdv
cmtQcm9jZXNzVW5hdmFpbGFibGUgPSB0cnVlOwotI2VuZGlmCi0KLSAgICBpZiAobmV0d29ya1By
b2Nlc3NVbmF2YWlsYWJsZSkgeworICAgIGlmICghdXNlc05ldHdvcmtQcm9jZXNzKCkgfHwgIW1f
bmV0d29ya1Byb2Nlc3MpIHsKICAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0IHRvIGdldCBOZXR3
b3JrUHJvY2VzcyBzdGF0aXN0aWNzIGJ1dCB0aGUgTmV0d29ya1Byb2Nlc3MgaXMgdW5hdmFpbGFi
bGUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCiAgICAgdWludDY0X3QgcmVxdWVzdElEID0gcmVxdWVzdC0+YWRkT3V0c3RhbmRpbmdSZXF1
ZXN0KCk7CiAgICAgbV9zdGF0aXN0aWNzUmVxdWVzdHMuc2V0KHJlcXVlc3RJRCwgcmVxdWVzdCk7
CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Okdl
dE5ldHdvcmtQcm9jZXNzU3RhdGlzdGljcyhyZXF1ZXN0SUQpLCAwKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKHJlcXVlc3QpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6Omhh
bmRsZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2VOYW1lLCBjb25zdCBXZWJLaXQ6OlVzZXJEYXRhJiBtZXNzYWdlQm9keSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCShyZXZpc2lvbiAxOTI2OTQp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5o
IgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJQbHVnSW5BdXRv
U3RhcnRQcm92aWRlci5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUg
IlByb2Nlc3NNb2RlbC5oIgpAQCAtNTksMTAgKzYwLDYgQEAKICNpbmNsdWRlICJEYXRhYmFzZVBy
b2Nlc3NQcm94eS5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT04pCiAjaW5jbHVkZSAiV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmgiCiAjZW5k
aWYKQEAgLTg2LDE1ICs4MywxMiBAQCBjbGFzcyBXZWJDb250ZXh0U3VwcGxlbWVudDsKIGNsYXNz
IFdlYkljb25EYXRhYmFzZTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94
eTsKK3N0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBTdGF0
aXN0aWNzRGF0YTsKIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogICAgIAog
dHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8QVBJOjpEaWN0aW9uYXJ5Kj4gRGljdGlvbmFyeUNhbGxi
YWNrOwogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLXN0cnVjdCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBpbnQg
bmV0d29ya1Byb2Nlc3NMYXRlbmN5UU9TKCk7CiBpbnQgbmV0d29ya1Byb2Nlc3NUaHJvdWdocHV0
UU9TKCk7CkBAIC0xOTMsOSArMTg3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJQbHVnaW5D
bGllbnRQb2xpY2llcygpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQog
ICAgIFBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIgbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7
Ci0jZW5kaWYKIAogICAgIHZvaWQgc2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9v
bCk7CiAgICAgdm9pZCBzZXRTaG91bGRVc2VGb250U21vb3RoaW5nKGJvb2wpOwpAQCAtMjg5LDEz
ICsyODEsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlc05ldHdvcmtQcm9jZXNzKGJvb2wp
OwogICAgIGJvb2wgdXNlc05ldHdvcmtQcm9jZXNzKCkgY29uc3Q7CiAKLSNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogICAgIE5ldHdvcmtQcm9jZXNzUHJveHkmIGVuc3VyZU5ldHdvcmtQcm9j
ZXNzKCk7CiAgICAgTmV0d29ya1Byb2Nlc3NQcm94eSogbmV0d29ya1Byb2Nlc3MoKSB7IHJldHVy
biBtX25ldHdvcmtQcm9jZXNzLmdldCgpOyB9CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNo
ZWQoTmV0d29ya1Byb2Nlc3NQcm94eSopOwogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4pOwotI2VuZGlmCiAKICNpZiBFTkFCTEUo
REFUQUJBU0VfUFJPQ0VTUykKICAgICB2b2lkIGVuc3VyZURhdGFiYXNlUHJvY2VzcygpOwpAQCAt
Mzc4LDkgKzM2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0V2ViQ29udGVudFN0YXRp
c3RpY3MoU3RhdGlzdGljc1JlcXVlc3QqKTsKICAgICB2b2lkIHJlcXVlc3ROZXR3b3JraW5nU3Rh
dGlzdGljcyhTdGF0aXN0aWNzUmVxdWVzdCopOwogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7Ci0jZW5kaWYKIAogICAgIHZvaWQgaGFuZGxlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBjb25zdCBVc2Vy
RGF0YSYgbWVzc2FnZUJvZHkpOwogICAgIHZvaWQgaGFuZGxlU3luY2hyb25vdXNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIGNvbnN0IFVzZXJEYXRh
JiBtZXNzYWdlQm9keSwgVXNlckRhdGEmIHJldHVyblVzZXJEYXRhKTsKQEAgLTUwMCwxMSArNDg4
LDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVkOwog
Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNT
ZXJ2ZXJUcnVzdEV2YWx1YXRpb247CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jhc2g7
CiAgICAgUmVmUHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nlc3M7Ci0jZW5k
aWYKIAogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogICAgIFJlZlB0cjxEYXRhYmFzZVBy
b2Nlc3NQcm94eT4gbV9kYXRhYmFzZVByb2Nlc3M7CkBAIC01NDEsMjQgKzUyNywxOCBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpzZW5kVG9OZXR3b3JraW5nUHJvCiB7CiAgICAgc3dpdGNoIChwcm9j
ZXNzTW9kZWwoKSkgewogICAgIGNhc2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2Vz
czoKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgICAgICBpZiAodXNlc05ldHdvcmtQ
cm9jZXNzKCkpIHsKICAgICAgICAgICAgIGlmIChtX25ldHdvcmtQcm9jZXNzICYmIG1fbmV0d29y
a1Byb2Nlc3MtPmNhblNlbmRNZXNzYWdlKCkpCiAgICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9Ci0jZW5kaWYKICAgICAgICAgaWYgKCFtX3Byb2Nlc3Nlcy5pc0VtcHR5
KCkgJiYgbV9wcm9jZXNzZXNbMF0tPmNhblNlbmRNZXNzYWdlKCkpCiAgICAgICAgICAgICBtX3By
b2Nlc3Nlc1swXS0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOwogICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBQcm9jZXNzTW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczoK
LSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgICAgICBpZiAobV9uZXR3b3JrUHJvY2Vz
cyAmJiBtX25ldHdvcmtQcm9jZXNzLT5jYW5TZW5kTWVzc2FnZSgpKQogICAgICAgICAgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOwogICAgICAg
ICByZXR1cm47Ci0jZWxzZQotICAgICAgICBicmVhazsKLSNlbmRpZgogICAgIH0KICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTU2OCwyNCArNTQ4LDE4IEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnNlbmRUb05ldHdvcmtpbmdQcm8KIHsKICAgICBzd2l0Y2ggKHByb2Nlc3NNb2RlbCgp
KSB7CiAgICAgY2FzZSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOgotI2lmIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkg
ewogICAgICAgICAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKTsKICAgICAgICAgICAgIG1fbmV0
d29ya1Byb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIGVuc3VyZVNoYXJlZFdlYlBy
b2Nlc3MoKTsKICAgICAgICAgbV9wcm9jZXNzZXNbMF0tPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1l
c3NhZ2UpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUHJvY2Vzc01vZGVsTXVsdGlw
bGVTZWNvbmRhcnlQcm9jZXNzZXM6Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICAg
ICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKTsKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2Vu
ZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOwogICAgICAgICByZXR1cm47Ci0jZWxzZQot
ICAgICAgICBicmVhazsKLSNlbmRpZgogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI3LDEyICs0MjcsMTAgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nlc3NDbwogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbihQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiByZXBseSkKIHsKICAgICBtX3Byb2Nl
c3NQb29sLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ocmVwbHkpOwogfQotI2VuZGlmIC8v
IEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykK
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFBhc3NS
ZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVj
dGlvbjo6RGVsYXllZFJlcGx5PiByZXBseSkKQEAgLTcwNCw5ICs3MDIsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6dXBkYXRlVGV4dENoZWNrZXJTCiAKIERvd25sb2FkUHJveHkqIFdlYlByb2Nl
c3NQcm94eTo6Y3JlYXRlRG93bmxvYWRQcm94eShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCiB7Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBBU1NFUlQoIW1fcHJvY2Vz
c1Bvb2wtPnVzZXNOZXR3b3JrUHJvY2VzcygpKTsKLSNlbmRpZgogCiAgICAgaWYgKCFtX2Rvd25s
b2FkUHJveHlNYXApCiAgICAgICAgIG1fZG93bmxvYWRQcm94eU1hcCA9IHN0ZDo6bWFrZV91bmlx
dWU8RG93bmxvYWRQcm94eU1hcD4odGhpcyk7CkBAIC05NDcsNyArOTQzLDYgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRpZENhbmNlbFByb2Nlc3NTdQogICAgIG1fdGhyb3R0bGVyLmRpZENhbmNl
bFByb2Nlc3NTdXNwZW5zaW9uKCk7CiB9CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQog
dm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlaW5zdGF0ZU5ldHdvcmtQcm9jZXNzQXNzZXJ0aW9uU3Rh
dGUoTmV0d29ya1Byb2Nlc3NQcm94eSYgbmV3TmV0d29ya1Byb2Nlc3NQcm94eSkKIHsKICNpZiBQ
TEFURk9STShJT1MpCkBAIC05NjIsMTEgKzk1NywxMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
cmVpbnN0YXRlTmV0d29ya1ByCiAgICAgVU5VU0VEX1BBUkFNKG5ld05ldHdvcmtQcm9jZXNzUHJv
eHkpOwogI2VuZGlmCiB9Ci0jZW5kaWYKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFz
c2VydGlvblN0YXRlKEFzc2VydGlvblN0YXRlIHN0YXRlKQogewotI2lmIFBMQVRGT1JNKElPUykg
JiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpZiBQTEFURk9STShJT1MpCiAgICAgQVNTRVJU
KCFtX2JhY2tncm91bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzIHx8ICFtX2ZvcmVncm91bmRUb2tl
bkZvck5ldHdvcmtQcm9jZXNzKTsKIAogICAgIHN3aXRjaCAoc3RhdGUpIHsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDE5MjY5NCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkod29ya2luZyBj
b3B5KQpAQCAtMTUyLDkgKzE1Miw3IEBAIHB1YmxpYzoKIAogICAgIFByb2Nlc3NUaHJvdHRsZXIm
IHRocm90dGxlcigpIHsgcmV0dXJuIG1fdGhyb3R0bGVyOyB9CiAKLSNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQogICAgIHZvaWQgcmVpbnN0YXRlTmV0d29ya1Byb2Nlc3NBc3NlcnRpb25TdGF0
ZShOZXR3b3JrUHJvY2Vzc1Byb3h5Jik7Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKQEAgLTE4Niw5ICsxODQsNyBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHZvaWQgZ2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBQYXNzUmVm
UHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHk+KTsKICNlbmRpZgotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAg
ICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eT4pOwotI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAgICAgdm9pZCBnZXRE
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5Pik7CiAjZW5k
aWYKQEAgLTI1Myw3ICsyNDksNyBAQCBwcml2YXRlOgogICAgIGludCBtX251bWJlck9mVGltZXNT
dWRkZW5UZXJtaW5hdGlvbldhc0Rpc2FibGVkOwogICAgIFByb2Nlc3NUaHJvdHRsZXIgbV90aHJv
dHRsZXI7CiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gbV90
b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlczsKLSNpZiBQTEFURk9STShJT1MpICYmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCisjaWYgUExBVEZPUk0oSU9TKQogICAgIFByb2Nlc3NUaHJvdHRsZXI6
OkZvcmVncm91bmRBY3Rpdml0eVRva2VuIG1fZm9yZWdyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nl
c3M7CiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gbV9iYWNr
Z3JvdW5kVG9rZW5Gb3JOZXR3b3JrUHJvY2VzczsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw5ICszOCw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXYKICAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVz
aCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4gYXBwbGljYXRpb25QbHVnaW5zKQogICAgIEdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNobWVu
dCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRp
b24pIERlbGF5ZWQKICNlbmRpZgotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgR2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9u
SGFuZGxlKSBEZWxheWVkCi0jZW5kaWYKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKICAg
ICBHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25u
ZWN0aW9uSGFuZGxlKSBEZWxheWVkCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJU2Vzc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9BUElTZXNzaW9uLmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElTZXNzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYs
MTIgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBUElTZXNzaW9uLmgi
CiAKLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Bvb2wuaCIKLSNlbmRpZgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFj
ZSBBUEkgewogCkBAIC04MCwxMiArNzcsMTAgQEAgV2ViQ29yZTo6U2Vzc2lvbklEIFNlc3Npb246
OmdldElEKCkgY29ucwogCiBTZXNzaW9uOjp+U2Vzc2lvbigpCiB7Ci0jaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKICAgICBpZiAobV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgewogICAgICAg
ICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWxsUHJv
Y2Vzc1Bvb2xzKCkpCiAgICAgICAgICAgICBwcm9jZXNzUG9vbC0+c2VuZFRvTmV0d29ya2luZ1By
b2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihtX3Nlc3Npb25JRCkpOwogICAgIH0KLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBB
UEkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJp
dmF0ZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
bWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0JKHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTY2LDEwICsxNjYsNSBAQCBib29sIFdLQ29udGV4dFNob3VsZFN1Z2dlc3RC
bG9ja1dlYkdMKCkKIAogcGlkX3QgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CiAgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjb250ZXh0UmVmKTsKLSAgICByZXR1cm4gMDsK
LSNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0LmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzAsMjkg
KzU3MCwxOCBAQCB2b2lkIGV3a19jb250ZXh0X21lc3NhZ2VfZnJvbV9leHRlbnNpb25zCiAKIEVp
bmFfQm9vbCBld2tfY29udGV4dF9wcm9jZXNzX21vZGVsX3NldChFd2tfQ29udGV4dCogZXdrQ29u
dGV4dCwgRXdrX1Byb2Nlc3NfTW9kZWwgcHJvY2Vzc01vZGVsKQogewotI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCiAgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oRXdrQ29udGV4dCwg
ZXdrQ29udGV4dCwgaW1wbCwgZmFsc2UpOwogCiAgICAgaW1wbC0+c2V0UHJvY2Vzc01vZGVsKHBy
b2Nlc3NNb2RlbCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFN
KGV3a0NvbnRleHQpOwotICAgIFVOVVNFRF9QQVJBTShwcm9jZXNzTW9kZWwpOwotICAgIHJldHVy
biBmYWxzZTsKLSNlbmRpZgogfQogCiBFd2tfUHJvY2Vzc19Nb2RlbCBld2tfY29udGV4dF9wcm9j
ZXNzX21vZGVsX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCkKIHsKLSNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQogICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0
IEV3a0NvbnRleHQsIGV3a0NvbnRleHQsIGltcGwsIEVXS19QUk9DRVNTX01PREVMX1NIQVJFRF9T
RUNPTkRBUlkpOwogCiAgICAgcmV0dXJuIGltcGwtPnByb2Nlc3NNb2RlbCgpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oZXdrQ29udGV4dCk7Ci0gICAgcmV0dXJuIEVXS19QUk9DRVNTX01PREVM
X1NIQVJFRF9TRUNPTkRBUlk7Ci0jZW5kaWYKIH0KIAogRXdrX1RMU19FcnJvcl9Qb2xpY3kgZXdr
X2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9nZXQoY29uc3QgRXdrX0NvbnRleHQqIGNvbnRleHQp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wu
aCIKIAorI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbXBv
cnQgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3NNYW5hZ2Vy
LmgiCiAjaW1wb3J0ICJTYW5kYm94VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5o
IgpAQCAtNDcsMTEgKzQ5LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmg+CiAjaW1wb3J0IDxzeXMvcGFyYW0uaD4KIAotI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCi0jaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotI2lt
cG9ydCAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgotI2VuZGlmCi0KICNpZiBQTEFURk9STShJT1Mp
CiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXJJT1MuaCIKQEAgLTc2LDEwICs3Myw4IEBAIHN0YXRpYyBOU1N0cmluZyAqV2ViS2l0
QXBwbGljYXRpb25EaWRDaGEKIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vOTEzODgxNz4gLSBB
ZnRlciB0aGlzICJiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSIgcmFkYXIgaXMgcmVtb3ZlZCwgdGhp
cyBjb2RlIHNob3VsZCBiZSByZW1vdmVkIHRvIG9ubHkgcmV0dXJuIGFuIGVtcHR5IFN0cmluZy4K
IE5TU3RyaW5nICpXZWJJY29uRGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleSA9IEAiV2ViSWNv
bkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXkiOwogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYktpdDJIVFRQUHJveHlEZWZhdWx0c0tl
eSA9IEAiV2ViS2l0MkhUVFBQcm94eSI7CiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJLaXQy
SFRUUFNQcm94eURlZmF1bHRzS2V5ID0gQCJXZWJLaXQySFRUUFNQcm94eSI7Ci0jZW5kaWYKIAog
I2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0
TmV0d29ya0NhY2hlRW5hYmxlZERlZmF1bHRzS2V5ID0gQCJXZWJLaXROZXR3b3JrQ2FjaGVFbmFi
bGVkIjsKQEAgLTExOSwxMCArMTE0LDggQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJVc2VyRGVmYXVs
dHNJZk5lZWRlZAogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp1cGRhdGVQcm9jZXNzU3VwcHJlc3Np
b25TdGF0ZSgpCiB7Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAodXNlc05l
dHdvcmtQcm9jZXNzKCkgJiYgbV9uZXR3b3JrUHJvY2VzcykKICAgICAgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChwcm9jZXNzU3VwcHJlc3Npb25FbmFi
bGVkKCkpOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBp
ZiAoIW1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291bnRlci52YWx1ZSgpKQpA
QCAtMTk3LDE0ICsxOTAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplVwogCiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gU3RyaW5n
KFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0pOwogCi0jaWYgRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAoIXVzZXNOZXR3b3JrUHJvY2VzcygpKSB7Ci0jZW5k
aWYKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzY2hlbWUgOiBnbG9iYWxVUkxTY2hlbWVzV2l0
aEN1c3RvbVByb3RvY29sSGFuZGxlcnMoKSkKICAgICAgICAgICAgIHBhcmFtZXRlcnMudXJsU2No
ZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMuYXBwZW5kKHNjaGVtZSk7Ci0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICB9Ci0jZW5kaWYKIAogICAgIHBhcmFtZXRlcnMuZm9u
dFdoaXRlbGlzdCA9IG1fZm9udFdoaXRlbGlzdDsKIApAQCAtMjM2LDcgKzIyNSw2IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICNlbmRpZgogfQogCi0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlh
bGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQogewogICAgIE5TVVJMQ2FjaGUgKnVybENhY2hlID0gW05TVVJMQ2FjaGUgc2hhcmVk
VVJMQ2FjaGVdOwpAQCAtMjcxLDcgKzI1OSw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZU4KICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVu
dGlmaWVyLmFwcGVuZChDRkRhdGFHZXRCeXRlUHRyKGNvb2tpZVN0b3JhZ2VEYXRhLmdldCgpKSwg
Q0ZEYXRhR2V0TGVuZ3RoKGNvb2tpZVN0b3JhZ2VEYXRhLmdldCgpKSk7CiAjZW5kaWYKIH0KLSNl
bmRpZgogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KCkK
IHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5LmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTYgKzMxLDEzIEBACiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgog
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWFwLmgi
CisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
Ci0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzUHJveHkuaCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC03NCwxMyArNzEsMTEgQEAgdm9pZCBEb3dubG9hZFByb3h5Ojpj
YW5jZWwoKQogICAgIGlmICghbV9wcm9jZXNzUG9vbCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAobV9wcm9jZXNzUG9vbC0+dXNlc05ldHdv
cmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKE5ldHdvcmtQcm9jZXNzUHJveHkqIG5ldHdvcmtQ
cm9jZXNzID0gbV9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgICAgIG5l
dHdvcmtQcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpDYW5jZWxEb3dubG9hZChtX2Rvd25sb2FkSUQpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSNlbmRpZgogCiAgICAgbV9wcm9jZXNzUG9vbC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpDYW5jZWxEb3dubG9hZChtX2Rvd25sb2FkSUQpKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1
bmNoZXIuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsMTAgKzg0
LDggQEAgY29uc3QgY2hhciogUHJvY2Vzc0xhdW5jaGVyOjpwcm9jZXNzVHlwZQogICAgIGNhc2Ug
UGx1Z2luUHJvY2VzczoKICAgICAgICAgcmV0dXJuICJwbHVnaW5wcm9jZXNzIjsKICNlbmRpZgot
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgY2FzZSBOZXR3b3JrUHJvY2VzczoKICAg
ICAgICAgcmV0dXJuICJuZXR3b3JrcHJvY2VzcyI7Ci0jZW5kaWYKICNpZiBFTkFCTEUoREFUQUJB
U0VfUFJPQ0VTUykKICAgICBjYXNlIERhdGFiYXNlUHJvY2VzczoKICAgICAgICAgcmV0dXJuICJk
YXRhYmFzZXByb2Nlc3MiOwpAQCAtMTEyLDEyICsxMTAsMTAgQEAgYm9vbCBQcm9jZXNzTGF1bmNo
ZXI6OmdldFByb2Nlc3NUeXBlRnJvbQogICAgIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKICAgICBpZiAoIXN0cmNtcChzdHJpbmcsICJuZXR3b3JrcHJvY2VzcyIpKSB7
CiAgICAgICAgIHByb2Nlc3NUeXBlID0gTmV0d29ya1Byb2Nlc3M7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAgICAg
aWYgKCFzdHJjbXAoc3RyaW5nLCAiZGF0YWJhc2Vwcm9jZXNzIikpIHsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgJKHJl
dmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsOSArNTAsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgICAgIFBsdWdpblByb2Nlc3MsCiAj
ZW5kaWYKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgICAgICBOZXR3b3JrUHJvY2Vz
cywKLSNlbmRpZgogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogICAgICAgICBEYXRhYmFz
ZVByb2Nlc3MsCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAJKHJldmlzaW9u
IDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vz
c0xhdW5jaGVyRWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDExICsxMTQsOSBAQCB2b2lk
IFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHBsdWdpblBhdGggPSBt
X2xhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVnaW4tcGF0aCIp
OwogICAgICAgICBicmVhazsKICNlbmRpZgotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAg
ICAgY2FzZSBOZXR3b3JrUHJvY2VzczoKICAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRh
YmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICNpZiBF
TkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKICAgICBjYXNlIERhdGFiYXNlUHJvY2VzczoKICAgICAg
ICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hl
ckd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTc2LDExICs3Niw5IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVu
Y2hQcm9jZXNzKCkKICAgICAgICAgcmVhbFBsdWdpblBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24ocGx1Z2luUGF0aCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCi0jaWYgRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKICAgICBjYXNlIE5ldHdvcmtQcm9jZXNzOgogICAgICAgICBleGVjdXRh
YmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOwogICAgICAgICBicmVh
azsKLSNlbmRpZgogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogICAgIGNhc2UgRGF0YWJh
c2VQcm9jZXNzOgogICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZEYXRh
YmFzZVByb2Nlc3MoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9t
YWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCShyZXZpc2lvbiAxOTI2
OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVu
Y2hlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA1LDE0ICsxMDUsMTIgQEAgc3RhdGljIFJl
dGFpblB0cjxOU1N0cmluZz4gY29tcHV0ZVByb2NlcwogICAgIH0KICNlbmRpZgogCi0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9
PSBQcm9jZXNzTGF1bmNoZXI6Ok5ldHdvcmtQcm9jZXNzKSB7CiAgICAgICAgIE5TU3RyaW5nICpw
cm9jZXNzUGF0aCA9IFt3ZWJLaXRCdW5kbGUgcGF0aEZvckF1eGlsaWFyeUV4ZWN1dGFibGU6QCJO
ZXR3b3JrUHJvY2Vzcy5hcHAiXTsKICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NBcHBFeGVjdXRh
YmxlUGF0aCA9IFtbTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6cHJvY2Vzc1BhdGhdIGV4ZWN1dGFi
bGVQYXRoXTsKIAogICAgICAgICByZXR1cm4gW1twcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggc3Ry
aW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21w
b25lbnQ6QCJTZWNJdGVtU2hpbS5keWxpYiJdOwogICAgIH0KLSNlbmRpZgogCiAgICAgaWYgKGxh
dW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpXZWJQcm9jZXNzKSB7
CiAgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzUGF0aCA9IFt3ZWJLaXRCdW5kbGUgcGF0aEZvckF1
eGlsaWFyeUV4ZWN1dGFibGU6QCJXZWJQcm9jZXNzLmFwcCJdOwpAQCAtMTY3LDEyICsxNjUsMTAg
QEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKGNvbnN0IFBybwogICAgICAgICBpZiAo
Zm9yRGV2ZWxvcG1lbnQpCiAgICAgICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuV2Vi
Q29udGVudC5EZXZlbG9wbWVudCI7CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50IjsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGNhc2UgUHJvY2Vz
c0xhdW5jaGVyOjpOZXR3b3JrUHJvY2VzczoKICAgICAgICAgaWYgKGZvckRldmVsb3BtZW50KQog
ICAgICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1l
bnQiOwogICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZyI7Ci0jZW5k
aWYKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKICAgICBjYXNlIFByb2Nlc3NMYXVuY2hl
cjo6RGF0YWJhc2VQcm9jZXNzOgogICAgICAgICBpZiAoZm9yRGV2ZWxvcG1lbnQpCkBAIC0yMDYs
MTIgKzIwMiw5IEBAIHN0YXRpYyBib29sIHNob3VsZExlYWtCb29zdChjb25zdCBQcm9jZXMKICAg
ICAvLyBPbiBpT1MsIGxlYWsgYSBib29zdCBvbnRvIGFsbCBjaGlsZCBwcm9jZXNzZXMKICAgICBV
TlVTRURfUEFSQU0obGF1bmNoT3B0aW9ucyk7CiAgICAgcmV0dXJuIHRydWU7Ci0jZWxpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQorI2Vsc2UKICAgICAvLyBPbiBNYWMsIGxlYWsgYSBib29zdCBv
bnRvIHRoZSBOZXR3b3JrUHJvY2Vzcy4KICAgICByZXR1cm4gbGF1bmNoT3B0aW9ucy5wcm9jZXNz
VHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6Ok5ldHdvcmtQcm9jZXNzOwotI2Vsc2UKLSAgICBVTlVT
RURfUEFSQU0obGF1bmNoT3B0aW9ucyk7Ci0gICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAg
ICAgCkBAIC00ODMsMTEgKzQ3Niw5IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVByb2Nlc3MoY29uc3Qg
UHJvY2Vzc0wKICAgICAgICAgcHJvY2Vzc1BhdGggPSBbd2ViS2l0QnVuZGxlIHBhdGhGb3JBdXhp
bGlhcnlFeGVjdXRhYmxlOkAiUGx1Z2luUHJvY2Vzcy5hcHAiXTsKICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGNhc2UgUHJvY2Vzc0xhdW5j
aGVyOjpOZXR3b3JrUHJvY2VzczoKICAgICAgICAgcHJvY2Vzc1BhdGggPSBbd2ViS2l0QnVuZGxl
IHBhdGhGb3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAiTmV0d29ya1Byb2Nlc3MuYXBwIl07CiAgICAg
ICAgIGJyZWFrOwotI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAgICAgY2Fz
ZSBQcm9jZXNzTGF1bmNoZXI6OkRhdGFiYXNlUHJvY2VzczoKICAgICAgICAgcHJvY2Vzc1BhdGgg
PSBbd2ViS2l0QnVuZGxlIHBhdGhGb3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAiRGF0YWJhc2VQcm9j
ZXNzLmFwcCJdOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDE5MjY5NCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKLQogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRl
ICJDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRG93bmxv
YWRQcm94eU1lc3NhZ2VzLmgiCkBAIC0zNzcsNSArMzc1LDMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZXRJc0hvbGRpbmdMbwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCShyZXZpc2lv
biAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgTmV0
d29ya1Byb2Nlc3NQcm94eV9oCiAjZGVmaW5lIE5ldHdvcmtQcm9jZXNzUHJveHlfaAogCi0jaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5Lmgi
CiAjaW5jbHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJQcm9j
ZXNzTGF1bmNoZXIuaCIKQEAgLTEzMiw2ICsxMzAsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0KICNlbmRp
ZiAvLyBOZXR3b3JrUHJvY2Vzc1Byb3h5X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
MjAsOCArMjAsNiBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0j
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQogCkBAIC0zOSw1
ICszNywzIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmUKICAgICBM
b2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2NF90IHBhZ2VJRCwgU3Ry
aW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQogICAgIExv
Z1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIFN0cmlu
ZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIFN0cmluZyB2YWx1ZSkKIH0KLQotI2VuZGlm
IC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9tYWMvTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9tYWMvTmV0d29ya1Byb2Nlc3NQcm94eU1h
Yy5tbQkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvbWFjL05ldHdvcmtQcm9jZXNzUHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDgg
KzI4LDYgQEAKIAogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogCi0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtNTksNSArNTcsMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnBsYXRmb3JtR2V0TGF1CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8g
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNv
dXAuY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9zb3VwL05ldHdvcmtQcm9jZXNzUHJveHlTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNyArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgogI2luY2x1
ZGUgPGdsaWIuaD4KQEAgLTQzLDUgKzQyLDMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpw
bGF0Zm9ybUdldExhdQogfQogCiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05NCwxMiArOTQsMTAgQEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRh
U3RvcmUoKQogewogICAgIHBsYXRmb3JtRGVzdHJveSgpOwogCi0jaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKICAgICBpZiAobV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgewogICAgICAgICBm
b3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygp
KQogICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24obV9zZXNz
aW9uSUQpKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpjbG9u
ZVNlc3Npb25EYXRhKFdlYlBhZ2VQcm94eSYgc291cmNlUGFnZSwgV2ViUGFnZVByb3h5JiBuZXdQ
YWdlKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcm9j
ZXNzUG9vbEd0ay5jcHAJKHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9ndGsvV2ViUHJvY2Vzc1Bvb2xHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICsz
MCw3IEBACiAKICNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclNl
cnZlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTQx
LDEwICs0Miw2IEBACiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0jaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBzdGF0aWMgdm9pZCBpbml0SW5zcGVjdG9yU2VydmVyKCkKQEAgLTE0OSwxMiArMTQ2
LDEwIEBAIFN0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWYKIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycykKIHsK
ICAgICBtX2lnbm9yZVRMU0Vycm9ycyA9IGlnbm9yZVRMU0Vycm9yczsKLSNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSAmJiBuZXR3b3JrUHJv
Y2VzcygpKSB7CiAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpTZXRJZ25vcmVUTFNFcnJvcnMobV9pZ25vcmVUTFNFcnJvcnMpLCAwKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNz
YWdlczo6V2ViUHJvY2Vzczo6U2V0SWdub3JlVExTRXJyb3JzKG1faWdub3JlVExTRXJyb3JzKSk7
CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29s
U291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2Vi
UHJvY2Vzc1Bvb2xTb3VwLmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNyArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCiAKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgpAQCAtNDcsNSArNDYsMyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOCiB9CiAKIH0KLQotI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE5
MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2Vz
c2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgpAQCAtNjAsNiArNjEs
NyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQb29sTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIldlYnNpdGVE
YXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlcy5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTTG9jay5oPgpAQCAtMTAxLDEyICsxMDMsOSBAQAogI2luY2x1ZGUgIk9iakNPYmpl
Y3RHcmFwaC5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogI2lmIFBM
QVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltLmgiCiAjZW5kaWYKLSNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNlbmRpZgogCiAjaWYgRU5BQkxF
KFNFQ19JVEVNX1NISU0pCiAjaW5jbHVkZSAiU2VjSXRlbVNoaW0uaCIKQEAgLTEyNCwxMCArMTIz
LDYgQEAKICNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlci5oIgogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQotI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
IgotI2VuZGlmCi0KICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3IuaD4KICNlbmRpZgpAQCAtMTYxLDExICsxNTYsOSBA
QCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICAsIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5h
YmxlZChmYWxzZSkKICAgICAsIG1fdGV4dENoZWNrZXJTdGF0ZSgpCiAgICAgLCBtX2ljb25EYXRh
YmFzZVByb3h5KG5ldyBXZWJJY29uRGF0YWJhc2VQcm94eSh0aGlzKSkKLSNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogICAgICwgbV91c2VzTmV0d29ya1Byb2Nlc3MoZmFsc2UpCiAgICAgLCBt
X3dlYlJlc291cmNlTG9hZFNjaGVkdWxlcihuZXcgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyKQog
ICAgICwgbV9kbnNQcmVmZXRjaEh5c3RlcmVyaXMoW3RoaXNdKEh5c3RlcmVzaXNTdGF0ZSBzdGF0
ZSkgeyBpZiAoc3RhdGUgPT0gSHlzdGVyZXNpc1N0YXRlOjpTdG9wcGVkKSBtX2Ruc1ByZWZldGNo
ZWRIb3N0cy5jbGVhcigpOyB9KQotI2VuZGlmCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9B
UEkpCiAgICAgLCBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcihQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXI6OmNyZWF0ZSgpKQogI2VuZGlmCkBAIC0yNzYsOSArMjY5LDcgQEAg
dm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZQogewogICAgIEFTU0VSVCht
X3BhZ2VNYXAuaXNFbXB0eSgpKTsKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAg
bV91c2VzTmV0d29ya1Byb2Nlc3MgPSBwYXJhbWV0ZXJzLnVzZXNOZXR3b3JrUHJvY2VzczsKLSNl
bmRpZgogCiAjaWYgT1MoTElOVVgpCiAgICAgV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVy
OjpSZWxpZWZMb2dnZXI6OnNldExvZ2dpbmdFbmFibGVkKHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxl
TWVtb3J5UHJlc3N1cmVSZWxpZWZMb2dnaW5nKTsKQEAgLTM1OCwxNCArMzQ5LDEyIEBAIHZvaWQg
V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2UKICAgICBpZiAocGFyYW1ldGVycy5z
aG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24pCiAgICAgICAgIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpOwogCi0jaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKICAgICBlbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgQ29v
a2llU3RvcmFnZVNoaW06OnNpbmdsZXRvbigpLmluaXRpYWxpemUoKTsKICNlbmRpZgotI2VuZGlm
CiAgICAgc2V0VGVybWluYXRpb25UaW1lb3V0KHBhcmFtZXRlcnMudGVybWluYXRpb25UaW1lb3V0
KTsKIAogICAgIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKHBhcmFtZXRlcnMucGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKTsKQEAgLTM5Niw3ICszODUsNiBAQCB2b2lkIFdlYlBy
b2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX3VzZXNOZXR3b3JrUHJvY2VzcykKQEAgLTQyMiw3ICs0
MTAsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29uCiAgICAgICAg
IHJldHVybjsKICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIH0KLSNlbmRpZiAvLyBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3M6OnJlZ2lzdGVyVVJMU2No
ZW1lQXNFbXB0eURvY3VtZW50KGNvbnN0IFN0cmluZyYgdXJsU2NoZW1lKQogewpAQCAtMTAyNywx
NCArMTAxNCw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0SW5qZWN0ZWRCdW5kbGVQYXJhbWUKIAog
Ym9vbCBXZWJQcm9jZXNzOjp1c2VzTmV0d29ya1Byb2Nlc3MoKSBjb25zdAogewotI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAgICAgcmV0dXJuIG1fdXNlc05ldHdvcmtQcm9jZXNzOwotI2Vs
c2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAotI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIFdlYlByb2Nlc3M6Om5ldHdvcmtDb25u
ZWN0aW9uKCkKIHsKICAgICBBU1NFUlQobV91c2VzTmV0d29ya1Byb2Nlc3MpOwpAQCAtMTA2NCw3
ICsxMDQ2LDYgQEAgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyJiBXZWJQcm9jZXNzOjp3ZQogewog
ICAgIHJldHVybiAqbV93ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI7CiB9Ci0jZW5kaWYgLy8gRU5B
QkxFRChORVRXT1JLX1BST0NFU1MpCiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKIHZv
aWQgV2ViUHJvY2Vzczo6d2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjdGlvbikKQEAgLTE0NzAsNyArMTQ1MSw2
IEBAIHZvaWQgV2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW4KICAgICBpZiAoaG9z
dG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkgewogICAgICAgICBpZiAobV9k
bnNQcmVmZXRjaGVkSG9zdHMuYWRkKGhvc3RuYW1lKS5pc05ld0VudHJ5KQogICAgICAgICAgICAg
bmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UHJlZmV0Y2hETlMoaG9zdG5hbWUpLCAwKTsKQEAgLTE0
ODAsNyArMTQ2MCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW4K
ICAgICAgICAgbV9kbnNQcmVmZXRjaEh5c3RlcmVyaXMuaW1wdWxzZSgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotI2VuZGlmCiAgICAgV2ViQ29yZTo6cHJlZmV0Y2hETlMoaG9zdG5hbWUpOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24g
MTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTc0LDYgKzc0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBEb3du
bG9hZE1hbmFnZXI7CiBjbGFzcyBFdmVudERpc3BhdGNoZXI7CiBjbGFzcyBJbmplY3RlZEJ1bmRs
ZTsKK2NsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKIGNsYXNzIE9iakNPYmplY3RHcmFw
aDsKIGNsYXNzIFVzZXJEYXRhOwogY2xhc3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOwpAQCAt
ODIsMTYgKzgzLDEyIEBAIGNsYXNzIFdlYkljb25EYXRhYmFzZVByb3h5OwogY2xhc3MgV2ViUGFn
ZTsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1N1cHBsZW1lbnQ7
CitjbGFzcyBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQYWdlR3JvdXBEYXRhOwogc3RydWN0IFdlYlByZWZlcmVu
Y2VzU3RvcmU7CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIAotI2lmIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCi1jbGFzcyBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb247Ci1j
bGFzcyBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShEQVRB
QkFTRV9QUk9DRVNTKQogY2xhc3MgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOwogI2Vu
ZGlmCkBAIC0xNTksMTEgKzE1Niw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgdXNlc05ldHdvcmtQ
cm9jZXNzKCkgY29uc3Q7CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbiogbmV0d29ya0Nvbm5lY3Rpb24oKTsKICAgICB2b2lkIG5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qKTsKICAg
ICBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXImIHdlYlJlc291cmNlTG9hZFNjaGVkdWxlcigpOwot
I2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKICAgICB2b2lkIHdlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b24qKTsKQEAgLTM1OSwxNCArMzU0LDEyIEBAIHByaXZhdGU6CiAKICAgICBXZWJJY29uRGF0YWJh
c2VQcm94eSogbV9pY29uRGF0YWJhc2VQcm94eTsKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCiAgICAgdm9pZCBlbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBSZWZQ
dHI8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsK
ICAgICBib29sIG1fdXNlc05ldHdvcmtQcm9jZXNzOwogICAgIFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlciogbV93ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
ZG5zUHJlZmV0Y2hlZEhvc3RzOwogICAgIFdlYkNvcmU6Okh5c3RlcmVzaXNBY3Rpdml0eSBtX2Ru
c1ByZWZldGNoSHlzdGVyZXJpczsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NF
U1MpCiAgICAgdm9pZCBlbnN1cmVXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JS
ZWdpc3RyeVByb3h5LmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkJsb2JSZWdpc3Ry
eVByb3h5LmgiCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW5jbHVkZSAiTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpA
QCAtOTAsNSArODgsMyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgQmxvYlJlZ2lzdHJ5UHJveHk6OmJs
CiB9CiAKIH0KLQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJv
eHkuaAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxl
QVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAK
ICNpZm5kZWYgQmxvYlJlZ2lzdHJ5UHJveHlfaAogI2RlZmluZSBCbG9iUmVnaXN0cnlQcm94eV9o
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9i
UmVnaXN0cnkuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NCw2ICs0Miw0IEBAIHB1Ymxp
YzoKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2VuZGlmIC8v
IEJsb2JSZWdpc3RyeVByb3h5X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCShy
ZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsOCArMzcsNiBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0KIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTk4LDUgKzk2LDMgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUgogI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgJKHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsOCArMzEsNiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQotCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIERhdGFSZWZlcmVuY2U7CiB9CkBAIC04Miw3
ICs4MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8g
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQotCiAjZW5kaWYgLy8gTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
MjAsOCArMjAsNiBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0j
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VS
Q0UpCkBAIC0yOSw1ICsyNywzIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
biBMZWcKICNlbmRpZgogCiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDE5MjY5NCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw4ICs1Miw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9T
dWJyZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2lm
IEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTI4Niw1ICsyODQsMyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6bmV0d29ya1ByCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5k
aWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmgJKHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIs
NiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKQEAgLTc3LDYgKzc1LDQg
QEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQotCiAjZW5kaWYgLy8gV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyX2gK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlJlc291
cmNlTG9hZGVyLmgiCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKQEAgLTIyMSw1ICsyMTksMyBAQCB2b2lkIFdlYlJlc291cmNl
TG9hZGVyOjpjYW5BdXRoZW50aWNhdGVBCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgJKHJl
dmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVm
IFdlYlJlc291cmNlTG9hZGVyX2gKICNkZWZpbmUgV2ViUmVzb3VyY2VMb2FkZXJfaAogCi0jaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKQEAg
LTk0LDYgKzkyLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRp
ZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotCiAjZW5kaWYgLy8gV2ViUmVzb3VyY2VMb2Fk
ZXJfaApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTkyNjk0
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCw2IEBACiAjIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQotCiBtZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUxvYWRlciBMZWdhY3lSZWNlaXZlciB7CiAgICAg
V2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UpCiAgICAgRGlkU2VuZERhdGEodWlu
dDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCkBAIC0zOSw1ICsz
NywzIEBAIG1lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZGVyIExlZ2FjeVJlY2UKICAgICBEaWRS
ZWNlaXZlUmVzb3VyY2UoV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNl
LCBkb3VibGUgZmluaXNoVGltZSkKICNlbmRpZgogfQotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAko
cmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1Mywx
MSArMTA1Myw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVCcm93c2VyRnVuY3MoTlBOZXQKICAg
ICBuZXRzY2FwZUZ1bmNzLnBvcHVwY29udGV4dG1lbnUgPSAwOwogICAgIG5ldHNjYXBlRnVuY3Mu
Y29udmVydHBvaW50ID0gMDsKICNlbmRpZgotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAg
ICAgbmV0c2NhcGVGdW5jcy51cmxyZWRpcmVjdHJlc3BvbnNlID0gTlBOX1VSTFJlZGlyZWN0UmVz
cG9uc2U7Ci0jZWxzZQotICAgIG5ldHNjYXBlRnVuY3MudXJscmVkaXJlY3RyZXNwb25zZSA9IDA7
Ci0jZW5kaWYKIH0KICAgICAKIE5QTmV0c2NhcGVGdW5jcyogbmV0c2NhcGVCcm93c2VyRnVuY3Mo
KQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDAsMTYgKzQwMCwxMiBAQCBib29sIE5ldHNjYXBlUGx1
Z2luOjpnZXRBdXRoZW50aWNhdGlvbkluCiAKIHZvaWQgTmV0c2NhcGVQbHVnaW46OnJlZ2lzdGVy
UmVkaXJlY3QoTmV0c2NhcGVQbHVnaW5TdHJlYW0qIHN0cmVhbSwgY29uc3QgVVJMJiByZXF1ZXN0
VVJMLCBpbnQgcmVkaXJlY3RSZXNwb25zZVN0YXR1cywgdm9pZCogbm90aWZpY2F0aW9uRGF0YSkK
IHsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIC8vIE5QUF9VUkxSZWRpcmVjdE5v
dGlmeSBtYXkgc3luY2hyb25vdXNseSByZXF1ZXN0IHRoaXMgc3RyZWFtIGJhY2sgb3V0LCBzbyBz
ZXQgaXQgZmlyc3QKICAgICBtX3JlZGlyZWN0cy5zZXQobm90aWZpY2F0aW9uRGF0YSwgc3RkOjpt
YWtlX3BhaXIoc3RyZWFtLCByZXF1ZXN0VVJMLnN0cmluZygpKSk7CiAgICAgaWYgKCFOUFBfVVJM
UmVkaXJlY3ROb3RpZnkocmVxdWVzdFVSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCByZWRpcmVj
dFJlc3BvbnNlU3RhdHVzLCBub3RpZmljYXRpb25EYXRhKSkgewogICAgICAgICBtX3JlZGlyZWN0
cy50YWtlKG5vdGlmaWNhdGlvbkRhdGEpOwogICAgICAgICBjb250cm9sbGVyKCktPmNvbnRpbnVl
U3RyZWFtTG9hZChzdHJlYW0tPnN0cmVhbUlEKCkpOwogICAgIH0KLSNlbHNlCi0gICAgY29udHJv
bGxlcigpLT5jb250aW51ZVN0cmVhbUxvYWQoc3RyZWFtLT5zdHJlYW1JRCgpKTsKLSNlbmRpZgog
fQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjp1cmxSZWRpcmVjdFJlc3BvbnNlKHZvaWQqIG5vdGlm
eURhdGEsIGJvb2wgYWxsb3cpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCShyZXZpc2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDkgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmgiCiAKKyNpbmNsdWRlICJCbG9iUmVnaXN0cnlQcm94eS5oIgogI2luY2x1ZGUg
IkJsb2NraW5nUmVzcG9uc2VNYXAuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSAiSGFuZ0RldGVjdGlvbkRpc2FibGVyLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKQEAg
LTQ0LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oPgpAQCAtNjMsMTMgKzY3
LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotI2luY2x1ZGUgIkJsb2JSZWdpc3RyeVBy
b3h5LmgiCi0jaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5o
IgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIldlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5oIgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTExMiw3ICsxMDksNiBAQCBQbHVnaW5TdHJhdGVn
eSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjCiAKIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQogewotI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCiAgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpOwogICAgIGlmICh3ZWJQcm9jZXNzLnVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAg
IFN0cmluZyByZXN1bHQ7CkBAIC0xMjAsMjcgKzExNiwyMyBAQCBTdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb29raWVzRm9yCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotI2VuZGlmCiAKICAgICByZXR1cm4gV2ViQ29yZTo6
Y29va2llc0ZvckRPTShzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCiB2b2lkIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKICAgICBp
ZiAod2ViUHJvY2Vzcy51c2VzTmV0d29ya1Byb2Nlc3MoKSkgewogICAgICAgICB3ZWJQcm9jZXNz
Lm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldENvb2tpZXNGcm9tRE9NKFNlc3Npb25UcmFja2Vy
OjpzZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCwgY29va2llU3RyaW5nKSwgMCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIFdlYkNvcmU6OnNldENvb2tp
ZXNGcm9tRE9NKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCwgY29va2llU3RyaW5nKTsKIH0KIAog
Ym9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwm
IHVybCkKIHsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGF1dG8mIHdlYlByb2Nl
c3MgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKICAgICBpZiAod2ViUHJvY2Vzcy51c2VzTmV0
d29ya1Byb2Nlc3MoKSkgewogICAgICAgICBib29sIHJlc3VsdDsKQEAgLTE0OCwxNCArMTQwLDEy
IEBAIGJvb2wgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVzRW5hYmwKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0jZW5kaWYKIAog
ICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVzRW5hYmxlZChzZXNzaW9uLCBmaXJzdFBhcnR5LCB1
cmwpOwogfQogCiBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCiB7Ci0jaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKICAgICBhdXRvJiB3ZWJQcm9jZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7
CiAgICAgaWYgKHdlYlByb2Nlc3MudXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgU3Ry
aW5nIHJlc3VsdDsKQEAgLTE2Myw0MSArMTUzLDM1IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvb2tpZVJlcXUKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9Ci0jZW5kaWYKIAogICAgIHJldHVybiBXZWJDb3JlOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwpOwogfQog
CiBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJM
JiB1cmwsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKQogewotI2lmIEVOQUJMRShORVRXT1JL
X1BST0NFU1MpCiAgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
OwogICAgIGlmICh3ZWJQcm9jZXNzLnVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIGlm
ICghd2ViUHJvY2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5j
KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R2V0UmF3Q29va2llcyhT
ZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKHNlc3Npb24pLCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdldFJhd0Nvb2tpZXM6OlJlcGx5
KHJhd0Nvb2tpZXMpLCAwKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQotI2VuZGlmCiAKICAgICByZXR1cm4gV2ViQ29yZTo6Z2V0UmF3Q29v
a2llcyhzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwsIHJhd0Nvb2tpZXMpOwogfQogCiB2b2lkIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6ZGVsZXRlQ29va2llKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkK
IHsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKICAgICBpZiAod2ViUHJvY2Vzcy51c2VzTmV0d29ya1By
b2Nlc3MoKSkgewogICAgICAgICB3ZWJQcm9jZXNzLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkRl
bGV0ZUNvb2tpZShTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKHNlc3Npb24pLCB1cmwsIGNvb2tp
ZU5hbWUpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgV2ViQ29y
ZTo6ZGVsZXRlQ29va2llKHNlc3Npb24sIHVybCwgY29va2llTmFtZSk7CiB9CiAKIC8vIExvYWRl
clN0cmF0ZWd5CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogUmVzb3VyY2VMb2FkU2No
ZWR1bGVyKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlc291cmNlTG9hZFNjaGVkdWxlcigpCiB7
CiAgICAgc3RhdGljIFJlc291cmNlTG9hZFNjaGVkdWxlciogc2NoZWR1bGVyOwpAQCAtMjgyLDcg
KzI2Niw2IEBAIEJsb2JSZWdpc3RyeSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmUKICAgICAg
ICAgcmV0dXJuIExvYWRlclN0cmF0ZWd5OjpjcmVhdGVCbG9iUmVnaXN0cnkoKTsKICAgICByZXR1
cm4gbmV3IEJsb2JSZWdpc3RyeVByb3h5OyAgICAKIH0KLSNlbmRpZgogCiAvLyBQbHVnaW5TdHJh
dGVneQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDE5
MjY5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDEyICs1OSwxMCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7CiAKICAgICAvLyBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneQotI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXIq
IHJlc291cmNlTG9hZFNjaGVkdWxlcigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWdu
ZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgV2ViQ29yZTo6Q2xpZW50Q3JlZGVu
dGlhbFBvbGljeSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlUGluZ0hhbmRsZShXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCosIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Up
IG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICAvLyBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneQogICAg
IHZpcnR1YWwgdm9pZCByZWZyZXNoUGx1Z2lucygpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCShyZXZpc2lvbiAxOTI2
OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMywxMCArMzMsMTMgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgiCiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIgorI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiV0tBUElD
YXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViQ2hyb21l
Q2xpZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5TWVzc2FnZXMuaCIKQEAgLTgxLDEyICs4NCw2IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9MZWdhY3lXZWJBcmNoaXZlLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCi0jaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgotI2VuZGlmCi0KICNpZm5kZWYgTkRFQlVHCiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2VuZGlmCkBAIC0yNjEsMTIgKzI1OCwxMCBAQCB2
b2lkIFdlYkZyYW1lOjpzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvCiAgICAgQVNTRVJUKHdlYlBy
b2Nlc3MudXNlc05ldHdvcmtQcm9jZXNzKCkpOwogI2VuZGlmCiAgICAgU2Vzc2lvbklEIHNlc3Np
b25JRCA9IHBhZ2UoKSA/IHBhZ2UoKS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKTsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGlmICh3ZWJQcm9j
ZXNzLnVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIHdlYlByb2Nlc3MubmV0d29ya0Nv
bm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6U3RhcnREb3dubG9hZChzZXNzaW9uSUQsIHBvbGljeURvd25sb2FkSUQs
IHJlcXVlc3QpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAjaWYgVVNF
KE5FVFdPUktfU0VTU0lPTikKICAgICAvLyBVc2luZyBORVRXT1JLX1NFU1NJT04gcmVxdWlyZXMg
dGhlIHVzZSBvZiBhIG5ldHdvcmsgcHJvY2Vzcy4KQEAgLTI4Niw3ICsyODEsNiBAQCB2b2lkIFdl
YkZyYW1lOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvCiAgICAgU3VicmVzb3VyY2VMb2FkZXIq
IG1haW5SZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50TG9hZGVyLT5tYWluUmVzb3VyY2VMb2FkZXIo
KTsKIAogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKLSNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAg
QVNTRVJUKHdlYlByb2Nlc3MudXNlc05ldHdvcmtQcm9jZXNzKCkpOwogI2VuZGlmCkBAIC0zMDMs
NyArMjk3LDYgQEAgdm9pZCBXZWJGcmFtZTo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUbwogICAg
ICAgICB3ZWJQcm9jZXNzLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZChzZXNzaW9uSUQsIG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBw
b2xpY3lEb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25zZSksIDApOwogICAgICAgICByZXR1cm47
CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAoIW1haW5SZXNvdXJjZUxvYWRlcikgewogICAgICAg
ICAvLyBUaGUgbWFpbiByZXNvdXJjZSBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZC4gU3RhcnQgYSBu
ZXcgZG93bmxvYWQgaW5zdGVhZC4KSW5kZXg6IFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCShyZXZpc2lvbiAx
OTI2OTQpCisrKyBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMTEzLDcgKzExMyw2IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV8KIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9OQVZJR0FUT1JfQ09O
VEVOVF9VVElMUyBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgUFVCTElDIE9OKQot
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05FVFdPUktfUFJPQ0VTUyBQ
VUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTk9TTklG
RiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUE9J
TlRFUl9MT0NLIFBSSVZBVEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCBQUklWQVRFIE9OKQpJbmRleDogU291cmNlL2NtYWtl
L09wdGlvbnNHVEsuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2NtYWtlL09wdGlvbnNHVEsu
Y21ha2UJKHJldmlzaW9uIDE5MjY5NCkKKysrIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtl
CSh3b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDYgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFXwogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCR0wgUFJJVkFURSBPTikKLVdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRXT1JLX1BST0NFU1MgUFJJVkFURSBPTikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9USFJFQURFRF9DT01QT1NJ
VE9SIFBSSVZBVEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1NIQURPV19ET00gUFJJVkFURSBPRkYpCiAKSW5kZXg6IFNvdXJjZS9jbWFrZS9PcHRpb25zTWFj
LmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9jbWFrZS9PcHRpb25zTWFjLmNtYWtlCShyZXZp
c2lvbiAxOTI2OTQpCisrKyBTb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQkod29ya2luZyBj
b3B5KQpAQCAtMjIwLDcgKzIyMCw2IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV8KIAogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NBTkRC
T1hfRVhURU5TSU9OUyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX1dFQl9QUk9DRVNTX1NBTkRCT1ggUFJJVkFURSBPTikKLVdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRXT1JLX1BST0NFU1MgUFJJVkFURSBPTikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9QUk9DRVNTIFBS
SVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUExVR0lO
X1BST0NFU1MgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9NRU1PUllfU0FNUExFUiBQUklWQVRFIE9OKQpJbmRleDogU291cmNlL2NtYWtlL1dlYktp
dEZlYXR1cmVzLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJl
cy5jbWFrZQkocmV2aXNpb24gMTkyNjk0KQorKysgU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVz
LmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNyArMTI4LDYgQEAgbWFjcm8oV0VCS0lUX09Q
VElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTkFWSUdBVE9SX0hX
Q09OQ1VSUkVOQ1kgIlRvZ2dsZSBOYXZpZ2F0b3IgaGFyZHdhcmUgY29uY3VycmVuY3kgc3VwcG9y
dCIgUFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTk9TTklGRiAi
VG9nZ2xlIHN1cHBvcnQgZm9yICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBub3NuaWZmJyIgUFJJ
VkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX05FVFNDQVBFX1BMVUdJ
Tl9BUEkgIlRvZ2dsZSBOZXRzY2FwZSBQbHVnaW4gc3VwcG9ydCIgUFJJVkFURSBPTikKLSAgICBX
RUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTkVUV09SS19QUk9DRVNTICJUb2dnbGUgZGVkaWNh
dGVkIG5ldHdvcmsgcHJvY2VzcyBzdXBwb3J0IGluIFdlYktpdDIiIFBSSVZBVEUgT0ZGKQogICAg
IFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9OT1RJRklDQVRJT05TICJUb2dnbGUgRGVza3Rv
cCBOb3RpZmljYXRpb25zIFN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgIlRvZ2dsZSBPcmllbnRhdGlvbiBFdmVu
dHMgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X1BERktJVF9QTFVHSU4gIlRvZ2dsZSBQREZLaXQgcGx1Z2luIHN1cHBvcnQiIFBSSVZBVEUgT0ZG
KQo=
</data>
<flag name="review"
          id="291019"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>