<?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>63526</bug_id>
          
          <creation_ts>2011-06-28 03:36:06 -0700</creation_ts>
          <short_desc>[Meta] Fix unused parameter warnings</short_desc>
          <delta_ts>2014-12-03 07:48:41 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          <dependson>96712</dependson>
    
    <dependson>98243</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>428781</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-06-28 03:36:06 -0700</bug_when>
    <thetext>The goal is fix all unused parameter warnings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428820</commentid>
    <comment_count>1</comment_count>
      <attachid>98903</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-06-28 05:51:25 -0700</bug_when>
    <thetext>Created attachment 98903
WIP patch to make Qt Linux build happy

cq-, because I&apos;d like to land it manually, because it might 
break Qt-Win, Qt-Symbian and Qt-Mac, Qt-minimal platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428822</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-28 05:54:08 -0700</bug_when>
    <thetext>Attachment 98903 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/JavaScriptCore/Change...&quot; exit_code: 1

Source/WebCore/platform/RuntimeApplicationChecks.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/qt/QWebPageClient.h:60:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 2 in 68 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428823</commentid>
    <comment_count>3</comment_count>
      <attachid>98903</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-28 05:56:31 -0700</bug_when>
    <thetext>Comment on attachment 98903
WIP patch to make Qt Linux build happy

Attachment 98903 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8950712</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428825</commentid>
    <comment_count>4</comment_count>
      <attachid>98903</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-06-28 06:01:36 -0700</bug_when>
    <thetext>Comment on attachment 98903
WIP patch to make Qt Linux build happy

Attachment 98903 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8952578</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428832</commentid>
    <comment_count>5</comment_count>
      <attachid>98903</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-28 06:12:33 -0700</bug_when>
    <thetext>Comment on attachment 98903
WIP patch to make Qt Linux build happy

Attachment 98903 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/8951598</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428844</commentid>
    <comment_count>6</comment_count>
      <attachid>98903</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-06-28 06:36:42 -0700</bug_when>
    <thetext>Comment on attachment 98903
WIP patch to make Qt Linux build happy

will fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1052155</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-12-03 07:48:41 -0800</bug_when>
    <thetext>There is no Qt and the patch is obsolete, these warnings are fixed continuosly.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98903</attachid>
            <date>2011-06-28 05:51:25 -0700</date>
            <delta_ts>2011-06-28 06:36:42 -0700</delta_ts>
            <desc>WIP patch to make Qt Linux build happy</desc>
            <filename>1.patch</filename>
            <type>text/plain</type>
            <size>76668</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0NmJmZGJlLi42MTIxNTY5
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTEtMDYtMjggIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbTWV0YV0gRml4IHVu
dXNlZCBwYXJhbWV0ZXIgd2FybmluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYzNTI2CisKKyAgICAgICAgKiBTb3VyY2UvV2ViS2l0LnByaToKKwog
MjAxMS0wNi0yNyAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCmluZGV4IDI1NjE2NTQuLmMwY2FiYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA2LTI4ICBDc2FiYSBPc3p0cm9nb27DoWMg
IDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW01ldGFdIEZpeCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUyNgorCisgICAgICAg
ICogaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwOgorICAgICAgICAoSlNDOjpwdGhyZWFkU2ln
bmFsSGFuZGxlclN1c3BlbmRSZXN1bWUpOgorICAgICAgICAqIHd0Zi9PU0FsbG9jYXRvclBvc2l4
LmNwcDoKKyAgICAgICAgKFdURjo6T1NBbGxvY2F0b3I6OnJlc2VydmVBbmRDb21taXQpOgorCiAy
MDExLTA2LTI4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAppbmRleCA3M2EzZGI2Li40OGZmOTUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAK
QEAgLTExMSw3ICsxMTEsNyBAQCB0eXBlZGVmIEhBTkRMRSBQbGF0Zm9ybVRocmVhZDsKIHR5cGVk
ZWYgcHRocmVhZF90IFBsYXRmb3JtVGhyZWFkOwogc3RhdGljIGNvbnN0IGludCBTaWdUaHJlYWRT
dXNwZW5kUmVzdW1lID0gU0lHVVNSMjsKIAotc3RhdGljIHZvaWQgcHRocmVhZFNpZ25hbEhhbmRs
ZXJTdXNwZW5kUmVzdW1lKGludCBzaWdubykKK3N0YXRpYyB2b2lkIHB0aHJlYWRTaWduYWxIYW5k
bGVyU3VzcGVuZFJlc3VtZShpbnQpCiB7CiAgICAgc2lnc2V0X3Qgc2lnbmFsU2V0OwogICAgIHNp
Z2VtcHR5c2V0KCZzaWduYWxTZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9PU0FsbG9jYXRvclBvc2l4LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NB
bGxvY2F0b3JQb3NpeC5jcHAKaW5kZXggZjVkNTg5MS4uZTJiYjUzOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NBbGxvY2F0b3JQb3NpeC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9PU0FsbG9jYXRvclBvc2l4LmNwcApAQCAtNzAsNiArNzAsNyBA
QCB2b2lkKiBPU0FsbG9jYXRvcjo6cmVzZXJ2ZUFuZENvbW1pdChzaXplX3QgYnl0ZXMsIFVzYWdl
IHVzYWdlLCBib29sIHdyaXRhYmxlLCBibwogI2lmIE9TKERBUldJTikKICAgICBpbnQgZmQgPSB1
c2FnZTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHVzYWdlKTsKICAgICBpbnQgZmQgPSAtMTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBhNjhkNTAuLjEwMmYwZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw5NCBAQAorMjAxMS0wNi0yOCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtNZXRhXSBGaXggdW51c2VkIHBhcmFtZXRlciB3YXJuaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1MjYKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdE5vdGlmaWNhdGlvbik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjpmb250Rm9yU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5n
L1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hCdWZmZXI6OmFwcGVu
ZCk6CisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Om1haW5CdW5kbGVJc0VxdWFsVG8pOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6d2hlZWxFdmVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1UZXh0RHJhd2luZ01v
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDYWNoZVF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0U2ltaWxhckZvbnRQbGF0Zm9ybURhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmZpbGxSb3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdGb2N1c1JpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpwdXNo
VHJhbnNwYXJlbmN5TGF5ZXJJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpzZXRQbGF0Zm9ybUZpbGxDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwdXRJbWFnZURh
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0OjpwYWludEN1cnJl
bnRGcmFtZUluQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyOjpwYXVzZUFuaW1hdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJOb2RlOjpzb3J0QnlaT3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlck5vZGU6OnN5bmNDb21wb3NpdGluZ1N0YXRlU2VsZik6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6c3luY0FuaW1hdGlvbnMpOgorICAgICAgICAqIHBsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL3F0L0ltYWdlRnJhbWVRdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUZyYW1lOjpzZXRDb2xvclByb2ZpbGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvcXQvU29ja2V0U3RyZWFtSGFuZGxlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0
U3RyZWFtSGFuZGxlUHJpdmF0ZTo6c29ja2V0RXJyb3JDYWxsYmFjayk6CisgICAgICAgICogcGxh
dGZvcm0vcXQvQ29udGV4dE1lbnVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybU1l
bnVEZXNjcmlwdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vcXQvQ29va2llSmFyUXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9E
cmFnRGF0YVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc1VSTCk6
CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L1FXZWJQYWdlQ2xpZW50Lmg6CisgICAgICAgIChRV2ViUGFnZUNsaWVudDo6c2V0Um9vdEdy
YXBoaWNzTGF5ZXIpOgorICAgICAgICAoUVdlYlBhZ2VDbGllbnQ6Om1hcmtGb3JTeW5jKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9xdC9RdFN0eWxlT3B0aW9uV2ViQ29tYm9Cb3guaDoKKyAgICAgICAg
KFdlYkNvcmU6OlF0U3R5bGVPcHRpb25XZWJDb21ib0JveDo6UXRTdHlsZU9wdGlvbldlYkNvbWJv
Qm94KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBhaW50U2xpZGVyVGh1bWIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVRdDo6YWRqdXN0U2VhcmNoRmllbGRTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjphZGp1c3RTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblN0eWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBhaW50TWVkaWFDdXJyZW50VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0Ojpmb3JtYXRNZWRpYUNvbnRyb2xz
UmVtYWluaW5nVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjpwYWludE1l
ZGlhVm9sdW1lU2xpZGVyVGh1bWIpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1dpZGdldFF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Rm9jdXMpOgorICAgICAgICAqIHBsdWdp
bnMvUGx1Z2luU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblN0cmVhbTo6ZGVs
YXlEZWxpdmVyeVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luU3RyZWFtOjpk
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luU3RyZWFtOjpkaWRS
ZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5TdHJlYW06OmRpZEZhaWwpOgor
ICAgICAgICAoV2ViQ29yZTo6UGx1Z2luU3RyZWFtOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAg
ICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmll
dzo6cmVxdWVzdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6bmV3
U3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OndyaXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmludmFsaWRhdGVUaW1lckZpcmVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1
Z2lucy9ucGFwaS5jcHA6CisgICAgICAgIChOUE5fTWVtRmx1c2gpOgorICAgICAgICAoTlBOX1Jl
cXVlc3RSZWFkKToKKyAgICAgICAgKE5QTl9HZXRKYXZhUGVlcik6CisgICAgICAgICogcGx1Z2lu
cy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHA6CisgICAgICAgIChQbHVnaW5Db250YWluZXJRdDo6
Zm9jdXNJbkV2ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWxsb3dzSW5k
ZXBlbmRlbnRseUNvbXBvc2l0ZWRGcmFtZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0UmVwYWludFJl
Y3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpwcmVwYXJlR3JhcGhpY3NDb250ZXh0Rm9y
VGV4dFBhaW50aW5nKToKKwogMjAxMS0wNi0yOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgRml4IGEgYnVpbGQgZXJyb3Igb24gTWFjIGJ5IHI4OTkwNy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggOTVjYzdm
My4uZGI2YjQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTE4MSw4ICsxODEsOCBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVBcmlhUm9sZUNoYW5nZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpkZXRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqKSB7IH0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVu
ZGVyT2JqZWN0KikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0
aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBib29sIHBvc3RUb0VsZW1lbnQsIFBv
c3RUeXBlKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIGJvb2wgcG9z
dFRvRWxlbWVudCwgUG9zdFR5cGUpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgYm9vbCwgUG9zdFR5
cGUpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgYm9vbCwgUG9zdFR5
cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbikgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3Qq
LCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCB1bnNpZ25lZCkgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCB1bnNpZ25lZCkgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMmU0ZmM0MS4uNjc3ZTExOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcApAQCAtNTYwLDYgKzU2MCw3IEBAIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBF
ZGl0b3I6OmZvbnRGb3JTZWxlY3Rpb24oYm9vbCYgaGFzTXVsdGlwbGVGb250cykgY29uc3QKIAog
ICAgIHJldHVybiBmb250OwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaGFzTXVsdGlwbGVGb250
cyk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmNwcAppbmRleCBmYzE3OTYyLi4wYWRmNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwCkBAIC0yMjA3LDcgKzIyMDcsNyBAQCBpbmxpbmUgdm9pZCBTZWFy
Y2hCdWZmZXI6OmFwcGVuZChVQ2hhciBjLCBib29sIGlzU3RhcnQpCiAKIGlubGluZSBzaXplX3Qg
U2VhcmNoQnVmZmVyOjphcHBlbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5n
dGgpCiB7Ci0gICAgQVNTRVJUKGxlbmd0aCk7CisgICAgQVNTRVJUX1VOVVNFRChsZW5ndGgsIGxl
bmd0aCk7CiAgICAgaWYgKCEobV9vcHRpb25zICYgQ2FzZUluc2Vuc2l0aXZlKSkgewogICAgICAg
ICBhcHBlbmQoY2hhcmFjdGVyc1swXSwgdHJ1ZSk7CiAgICAgICAgIHJldHVybiAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAK
aW5kZXggN2VmOTk1OS4uY2NhYWJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjZW5k
aWYKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9VbnVz
ZWRQYXJhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCkBAIC00OSw2ICs1MCw3IEBA
IHN0YXRpYyBib29sIG1haW5CdW5kbGVJc0VxdWFsVG8oY29uc3QgU3RyaW5nJiBidW5kbGVJZGVu
dGlmaWVyU3RyaW5nKQogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYnVuZGxlSWRlbnRpZmll
clRvQ29tcGFyZShBZG9wdENGLCBidW5kbGVJZGVudGlmaWVyU3RyaW5nLmNyZWF0ZUNGU3RyaW5n
KCkpOwogICAgIHJldHVybiBDRlN0cmluZ0NvbXBhcmUoYnVuZGxlSWRlbnRpZmllciwgYnVuZGxl
SWRlbnRpZmllclRvQ29tcGFyZS5nZXQoKSwgMCkgPT0ga0NGQ29tcGFyZUVxdWFsVG87CiAjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShidW5kbGVJZGVudGlmaWVyU3RyaW5nKTsKICAgICByZXR1cm4g
ZmFsc2U7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5k
ZXggMGQ3Y2NmMS4uYTg4OTRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAKQEAgLTEyODIsNyArMTI4Miw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3Jv
bGxiYXJzU3VwcHJlc3NlZChib29sKQogewogfQogCi12b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3Jt
U2V0U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50JiwgYm9vbCB1cGRhdGVQb3NpdGlvbkF0QWxs
LCBib29sIHVwZGF0ZVBvc2l0aW9uU3luY2hyb25vdXNseSkKK3ZvaWQgU2Nyb2xsVmlldzo6cGxh
dGZvcm1TZXRTY3JvbGxPcmlnaW4oY29uc3QgSW50UG9pbnQmLCBib29sLCBib29sKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcAppbmRleCAzYjc3YjlmLi42NDlkZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTY4OSw3ICs2ODks
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TdHJva2VQYXR0ZXJuKFBhdHRl
cm4qKQogI2lmICFVU0UoQ0cpICYmICFVU0UoU0tJQSkKIC8vIEltcGxlbWVudCB0aGlzIGlmIHlv
dSB3YW50IHRvIGdvIGFoZWFkIGFuZCBwdXNoIHRoZSBkcmF3aW5nIG1vZGUgaW50byB5b3VyIG5h
dGl2ZSBjb250ZXh0CiAvLyBpbW1lZGlhdGVseS4KLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVRleHREcmF3aW5nTW9kZShUZXh0RHJhd2luZ01vZGVGbGFncyBtb2RlKQordm9pZCBH
cmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtVGV4dERyYXdpbmdNb2RlKFRleHREcmF3aW5nTW9k
ZUZsYWdzKQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9Gb250Q2FjaGVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9Gb250Q2FjaGVRdC5jcHAKaW5kZXggNzFjZjNlYS4uN2QxNjk5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udENhY2hlUXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDYWNoZVF0LmNw
cApAQCAtODksNyArODksNyBAQCBjb25zdCBTaW1wbGVGb250RGF0YSogRm9udENhY2hlOjpnZXRG
b250RGF0YUZvckNoYXJhY3RlcnMoY29uc3QgRm9udCYgZm9udCwgY29ucwogI2VuZGlmCiB9CiAK
LVNpbXBsZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldFNpbWlsYXJGb250UGxhdGZvcm1EYXRhKGNv
bnN0IEZvbnQmIGZvbnQpCitTaW1wbGVGb250RGF0YSogRm9udENhY2hlOjpnZXRTaW1pbGFyRm9u
dFBsYXRmb3JtRGF0YShjb25zdCBGb250JikKIHsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCmluZGV4IGE1YTE2ZTAu
LmVhNTMwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9u
dFF0LmNwcApAQCAtNDMxLDcgKzQzMSw3IEBAIGludCBGb250OjpvZmZzZXRGb3JQb3NpdGlvbkZv
clNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBmbG9hdCBwb3NpdGlvbiwgYm9vCiB9CiAK
IAotZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVu
LCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKK2Zs
b2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgR2x5
cGhCdWZmZXIqLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qLCBHbHlwaE92ZXJmbG93
KikgY29uc3QKIHsKICAgICBpZiAoIXByaW1hcnlGb250KCktPnBsYXRmb3JtRGF0YSgpLnNpemUo
KSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKaW5kZXggNzkzY2RlMC4uNGM1
YWZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3Jh
cGhpY3NDb250ZXh0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcApAQCAtNzE0LDcgKzcxNCw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB9CiAKIAotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29s
b3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9y
U3BhY2UpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhY29sb3IuaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm47CkBAIC03MzksNyArNzM5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBD
b2xvclMKICAgICBwLT5maWxsUmVjdChub3JtYWxpemVkUmVjdCwgbV9kYXRhLT5zb2xpZENvbG9y
KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRS
ZWN0JiByZWN0LCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdo
dCwgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQs
IGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQordm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBJbnRT
aXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwgY29uc3QgSW50U2l6ZSYgYm90
dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNvbnN0IENvbG9yJiBjb2xvciwg
Q29sb3JTcGFjZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFjb2xvci5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTgyMiw3ICs4MjIsNyBAQCB2b2lkIGRyYXdGb2N1
c1JpbmdGb3JQYXRoKFFQYWludGVyKiBwLCBjb25zdCBRUGFpbnRlclBhdGgmIHBhdGgsIGNvbnN0
IENvbG9yJiBjbwogICAgIHAtPnNldFJlbmRlckhpbnQoUVBhaW50ZXI6OkFudGlhbGlhc2luZywg
YW50aUFsaWFzKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29u
c3QgUGF0aCYgcGF0aCwgaW50IC8qIHdpZHRoICovLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYg
Y29sb3IpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBw
YXRoLCBpbnQgLyogd2lkdGggKi8sIGludCAvKiBvZmZzZXQgKi8sIGNvbnN0IENvbG9yJiBjb2xv
cikKIHsKICAgICAvLyBGSVhNRTogVXNlICdvZmZzZXQnIGZvciBzb21ldGhpbmc/IGh0dHA6Ly93
ZWJraXQub3JnL2IvNDk5MDkKIApAQCAtOTQ3LDcgKzk0Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpjbGVhclBsYXRmb3JtU2hhZG93KCkKICAgICBtX2RhdGEtPnNoYWRvdy5jbGVhcigpOwog
fQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6cHVzaFRyYW5zcGFyZW5jeUxheWVySW50ZXJuYWwo
Y29uc3QgUVJlY3QgJnJlY3QsIHFyZWFsIG9wYWNpdHksIFFQaXhtYXAmIGFscGhhTWFzaykKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjpwdXNoVHJhbnNwYXJlbmN5TGF5ZXJJbnRlcm5hbChjb25zdCBR
UmVjdCAmcmVjdCwgcXJlYWwsIFFQaXhtYXAmIGFscGhhTWFzaykKIHsKICAgICBRUGFpbnRlciog
cCA9IG1fZGF0YS0+cCgpOwogICAgIG1fZGF0YS0+bGF5ZXJzLnB1c2gobmV3IFRyYW5zcGFyZW5j
eUxheWVyKHAsIHAtPnRyYW5zZm9ybSgpLm1hcFJlY3QocmVjdCksIDEuMCwgYWxwaGFNYXNrKSk7
CkBAIC0xMjMyLDcgKzEyMzIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0VVJMRm9yUmVj
dChjb25zdCBLVVJMJiwgY29uc3QgSW50UmVjdCYpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29uc3QgQ29s
b3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6
c2V0UGxhdGZvcm1TdHJva2VDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UpCiB7
CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhY29sb3IuaXNWYWxpZCgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xMjY0LDcgKzEyNjQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0
UGxhdGZvcm1TdHJva2VUaGlja25lc3MoZmxvYXQgdGhpY2tuZXNzKQogICAgIHAtPnNldFBlbihu
ZXdQZW4pOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1GaWxsQ29sb3Io
Y29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1GaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNw
YWNlKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgIWNvbG9yLmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCBkNjBkZGEzLi5lOTYyNDk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0
LmNwcApAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgcHV0SW1hZ2VEYXRhKEJ5dGVBcnJheSomIHNv
dXJjZSwgY29uc3QgSW50U2l6ZSYgc291cmNlU2l6ZSwgY29uc3QgSW50UmVjdCYKICAgICBpbnQg
b3JpZ2lueCA9IHNvdXJjZVJlY3QueCgpOwogICAgIGludCBkZXN0eCA9IGRlc3RQb2ludC54KCkg
KyBzb3VyY2VSZWN0LngoKTsKICAgICBBU1NFUlQoZGVzdHggPj0gMCk7Ci0gICAgQVNTRVJUKGRl
c3R4IDwgc2l6ZS53aWR0aCgpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHNpemUsIGRlc3R4IDwgc2l6
ZS53aWR0aCgpKTsKICAgICBBU1NFUlQob3JpZ2lueCA+PSAwKTsKICAgICBBU1NFUlQob3JpZ2lu
eCA8PSBzb3VyY2VSZWN0Lm1heFgoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcAppbmRleCA5
NTI5Y2Q0Li40ZmQwZmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCkBAIC01ODcsNyArNTg3
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIG1fdmlkZW9TY2VuZS0+cmVuZGVyKHBh
aW50ZXIsIFFSZWN0RihRUmVjdChyZWN0KSksIG1fdmlkZW9JdGVtLT5zY2VuZUJvdW5kaW5nUmVj
dCgpKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdDo6cGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVRdDo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JikKIHsKICAgICBpZiAoY29udGV4
dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAppbmRleCBmMDQ2Mzc1Li42MDQyNjMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKQEAgLTM5MCw3ICszOTAsNyBA
QCBib29sIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjphZGRBbmltYXRpb24oY29uc3QgS2V5
ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEdy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpwYXVzZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFu
aW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0KQordm9pZCBHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcjo6cGF1c2VBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3Vi
bGUpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FuaW1hdGlvbnMuc2l6ZSgpOyAr
K2kpIHsKICAgICAgICAgaWYgKG1fYW5pbWF0aW9uc1tpXS0+bmFtZSAhPSBhbmltYXRpb25OYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKaW5kZXggMzg4OGUyOS4uZjY1NTA1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlck5vZGUuY3BwCkBAIC00MTgsNyArNDE4LDcgQEAgaW50IFRleHR1cmVNYXBw
ZXJOb2RlOjpjb21wYXJlR3JhcGhpY3NMYXllcnNaVmFsdWUoY29uc3Qgdm9pZCogYSwgY29uc3Qg
dm9pZCogYikKICAgICByZXR1cm4gaW50KCgoKm5vZGVBKS0+bV90cmFuc2Zvcm1zLmNlbnRlclog
LSAoKm5vZGVCKS0+bV90cmFuc2Zvcm1zLmNlbnRlclopICogMTAwMCk7CiB9CiAKLXZvaWQgVGV4
dHVyZU1hcHBlck5vZGU6OnNvcnRCeVpPcmRlcihWZWN0b3I8VGV4dHVyZU1hcHBlck5vZGUqID4m
IGFycmF5LCBpbnQgZmlyc3QsIGludCBsYXN0KQordm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6c29y
dEJ5Wk9yZGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyTm9kZSogPiYgYXJyYXksIGludCwgaW50KQog
ewogICAgIHFzb3J0KGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpLCBzaXplb2YoVGV4dHVyZU1h
cHBlck5vZGUqKSwgY29tcGFyZUdyYXBoaWNzTGF5ZXJzWlZhbHVlKTsKIH0KQEAgLTU3Nyw3ICs1
NzcsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZShHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpYwogICAgIHN5bmNDb21wb3NpdGluZ1N0YXRl
KGdyYXBoaWNzTGF5ZXIsIHJvb3RMYXllcigpLT5tX3RleHR1cmVNYXBwZXIsIG9wdGlvbnMpOwog
fQogCi12b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZVNlbGYoR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBwZXIqIHRl
eHR1cmVNYXBwZXIpCit2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzeW5jQ29tcG9zaXRpbmdTdGF0
ZVNlbGYoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVN
YXBwZXIqKQogewogICAgIGludCBjaGFuZ2VNYXNrID0gZ3JhcGhpY3NMYXllci0+Y2hhbmdlTWFz
aygpOwogICAgIGNvbnN0IFRleHR1cmVNYXBwZXJOb2RlOjpDb250ZW50RGF0YSYgcGVuZGluZ0Nv
bnRlbnQgPSBncmFwaGljc0xheWVyLT5wZW5kaW5nQ29udGVudCgpOwpAQCAtODM1LDcgKzgzNSw3
IEBAIGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6Omhhc1RyYW5zZm9ybUFuaW1hdGlvbigpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzeW5jQW5p
bWF0aW9ucyhHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogbGF5ZXIpCit2b2lkIFRleHR1cmVN
YXBwZXJOb2RlOjpzeW5jQW5pbWF0aW9ucyhHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciopCiB7
CiAgICAgZm9yIChpbnQgaSA9IG1fYW5pbWF0aW9ucy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkg
ewogICAgICAgICBSZWZQdHI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbj4gYW5pbWF0aW9uID0gbV9h
bmltYXRpb25zW2ldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvcXQvSW1hZ2VGcmFtZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL3F0L0ltYWdlRnJhbWVRdC5jcHAKaW5kZXggYTNjZmJmNi4uOTQwMThiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcXQvSW1h
Z2VGcmFtZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9xdC9JbWFnZUZyYW1lUXQuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBJbWFnZUZyYW1l
OjpzZXRIYXNBbHBoYShib29sIGFscGhhKQogICAgIG1faGFzQWxwaGEgPSBhbHBoYTsKIH0KIAot
dm9pZCBJbWFnZUZyYW1lOjpzZXRDb2xvclByb2ZpbGUoY29uc3QgQ29sb3JQcm9maWxlJiBjb2xv
clByb2ZpbGUpCit2b2lkIEltYWdlRnJhbWU6OnNldENvbG9yUHJvZmlsZShjb25zdCBDb2xvclBy
b2ZpbGUmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1NvY2tldFN0cmVhbUhhbmRsZVF0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvU29ja2V0U3RyZWFtSGFuZGxlUXQuY3Bw
CmluZGV4IDEwNTUwYWUuLjBlOTA5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvU29ja2V0U3RyZWFtSGFuZGxlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvU29ja2V0U3RyZWFtSGFuZGxlUXQuY3BwCkBAIC0xMzYs
NyArMTM2LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVQcml2YXRlOjpzb2NrZXRDbG9zZWRD
YWxsYmFjaygpCiAgICAgfQogfQogCi12b2lkIFNvY2tldFN0cmVhbUhhbmRsZVByaXZhdGU6OnNv
Y2tldEVycm9yQ2FsbGJhY2soaW50IGVycm9yKQordm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVQcml2
YXRlOjpzb2NrZXRFcnJvckNhbGxiYWNrKGludCkKIHsKICAgICAvLyBGSVhNRSAtIGluIHRoZSBm
dXR1cmUsIHdlIG1pZ2h0IG5vdCB3YW50IHRvIHRyZWF0IGFsbCBlcnJvcnMgYXMgZmF0YWwuCiAg
ICAgaWYgKG1fc3RyZWFtSGFuZGxlICYmIG1fc3RyZWFtSGFuZGxlLT5jbGllbnQoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ29udGV4dE1lbnVRdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcAppbmRleCA2MWFhYjZk
Li5kNjNiZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db250ZXh0
TWVudVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0
LmNwcApAQCAtODIsNyArODIsNyBAQCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBjb250ZXh0TWVu
dUl0ZW1WZWN0b3IoY29uc3QgUUxpc3Q8Q29udGV4dE1lbnVJdGVtPiogaXRlbQogICAgIHJldHVy
biBtZW51SXRlbVZlY3RvcjsKIH0KIAotUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gcGxhdGZvcm1N
ZW51RGVzY3JpcHRpb24oVmVjdG9yPENvbnRleHRNZW51SXRlbT4mIG1lbnVJdGVtVmVjdG9yKQor
UGxhdGZvcm1NZW51RGVzY3JpcHRpb24gcGxhdGZvcm1NZW51RGVzY3JpcHRpb24oVmVjdG9yPENv
bnRleHRNZW51SXRlbT4mKQogewogICAgIC8vIEZJWE1FIC0gSW1wbGVtZW50ICAgIAogICAgIHJl
dHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ29va2llSmFy
UXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ29va2llSmFyUXQuY3BwCmluZGV4
IGJkMTM5MDMuLmM3OTNkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0Nvb2tpZUphclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db29raWVK
YXJRdC5jcHAKQEAgLTEyOSwxMiArMTI5LDEyIEBAIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERv
Y3VtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCiAgICAgLy8gRklYTUU6IE5vdCB5
ZXQgaW1wbGVtZW50ZWQKIH0KIAotdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhIYXNoU2V0
PFN0cmluZz4mIGhvc3RuYW1lcykKK3ZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNl
dDxTdHJpbmc+JikKIHsKICAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAogfQogCi12
b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQordm9p
ZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBGSVhN
RTogTm90IHlldCBpbXBsZW1lbnRlZAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFn
RGF0YVF0LmNwcAppbmRleCAyNTU0ZGY0Li42YWU0MDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIGJvb2wgRHJhZ0RhdGE6
OmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBjb250YWluc0Nv
bG9yKCkgfHwgY29udGFpbnNVUkwoMCkgfHwgbV9wbGF0Zm9ybURyYWdEYXRhLT5oYXNIdG1sKCkg
fHwgbV9wbGF0Zm9ybURyYWdEYXRhLT5oYXNUZXh0KCk7CiB9CiAKLWJvb2wgRHJhZ0RhdGE6OmNv
bnRhaW5zVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYW1lUG9saWN5
KSBjb25zdAorYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNVUkwoRnJhbWUqLCBGaWxlbmFtZUNvbnZl
cnNpb25Qb2xpY3kpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFVzZSBmaWxlbmFtZVBvbGljeS4K
ICAgICBpZiAoIW1fcGxhdGZvcm1EcmFnRGF0YSkKQEAgLTExNSw3ICsxMTUsNyBAQCBib29sIERy
YWdEYXRhOjpjb250YWluc1VSTChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxl
bmFtZVBvbGljeSkgY29ucwogICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmhhc1VybHMo
KTsKIH0KIAotU3RyaW5nIERyYWdEYXRhOjphc1VSTChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lv
blBvbGljeSBmaWxlbmFtZVBvbGljeSwgU3RyaW5nKikgY29uc3QKK1N0cmluZyBEcmFnRGF0YTo6
YXNVUkwoRnJhbWUqLCBGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3ksIFN0cmluZyopIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IFVzZSBmaWxlbmFtZVBvbGljeS4KICAgICBpZiAoIW1fcGxhdGZvcm1E
cmFnRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oCmlu
ZGV4IDgzOTZjYWMuLjk5ZmNiMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1FXZWJQYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUVdl
YlBhZ2VDbGllbnQuaApAQCAtNTIsMTIgKzUyLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0SW5wdXRNZXRob2RFbmFibGVkKGJvb2wgZW5hYmxlKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGlucHV0TWV0aG9kRW5hYmxlZCgpIGNvbnN0ID0gMDsKICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0gICAgdmlydHVhbCB2b2lkIHNldFJvb3RHcmFwaGljc0xheWVyKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdEdy
YXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIHsgfQogCiAgICAgLy8gdGhpcyBn
ZXRzIGNhbGxlZCB3aGVuIHRoZSBjb21wb3NpdG9yIHdhbnRzIHVzIHRvIHN5bmMgdGhlIGxheWVy
cwogICAgIC8vIGlmIHNjaGVkdWxlU3luYyBpcyB0cnVlLCB3ZSBzY2hlZHVsZSBhIHN5bmMgb3Vy
c2VsdmVzLiBvdGhlcndpc2UsCiAgICAgLy8gd2Ugd2FpdCBmb3IgdGhlIG5leHQgdXBkYXRlIGFu
ZCBzeW5jIHRoZSBsYXllcnMgdGhlbi4KLSAgICB2aXJ0dWFsIHZvaWQgbWFya0ZvclN5bmMoYm9v
bCBzY2hlZHVsZVN5bmMgPSBmYWxzZSkge30KKyAgICB2aXJ0dWFsIHZvaWQgbWFya0ZvclN5bmMo
Ym9vbCkge30KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUXRTdHlsZU9wdGlvbldlYkNvbWJvQm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9RdFN0eWxlT3B0aW9uV2ViQ29tYm9Cb3guaAppbmRleCAyOWM4MjIw
Li40YzdhMTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdFN0eWxl
T3B0aW9uV2ViQ29tYm9Cb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdFN0
eWxlT3B0aW9uV2ViQ29tYm9Cb3guaApAQCAtNDAsNiArNDAsOSBAQCBwdWJsaWM6CiAgICAgICAg
ICwgbV9tdWx0aXBsZShmYWxzZSkKICAgICAjZW5kaWYKICAgICB7CisgICAgI2lmICFFTkFCTEUo
Tk9fTElTVEJPWF9SRU5ERVJJTkcpCisgICAgICBVTlVTRURfUEFSQU0obyk7CisgICAgI2VuZGlm
CiAgICAgfQogCiAgICAgYm9vbCBtdWx0aXBsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbXVsdGlwbGU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKaW5kZXgg
ZGE1ZjFkMi4uYTI3YzM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
UmVuZGVyVGhlbWVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVy
VGhlbWVRdC5jcHAKQEAgLTk1OSw4ICs5NTksNyBAQCB2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVz
dFNsaWRlclRyYWNrU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBzdHlsZQog
ICAgIHN0eWxlLT5zZXRCb3hTaGFkb3cobnVsbHB0cik7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVR
dDo6cGFpbnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgcikK
K2Jvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikKIHsKICAgICAvLyBXZSd2ZSBhbHJlYWR5IHBh
aW50ZWQgaXQgaW4gcGFpbnRTbGlkZXJUcmFjaygpLCBubyBuZWVkIHRvIGRvIGFueXRoaW5nIGhl
cmUuCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTc4LDggKzk3Nyw3IEBAIGJvb2wgUmVuZGVyVGhl
bWVRdDo6cGFpbnRTZWFyY2hGaWVsZChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYg
cGksCiAgICAgcmV0dXJuIHBhaW50VGV4dEZpZWxkKG8sIHBpLCByKTsKIH0KIAotdm9pZCBSZW5k
ZXJUaGVtZVF0OjphZGp1c3RTZWFyY2hGaWVsZFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVj
dG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRWxlbWVudCogZSkgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVRdDo6YWRqdXN0
U2VhcmNoRmllbGRTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqIHN0eWxlLCBF
bGVtZW50KikgY29uc3QKIHsKICAgICAvLyBSZXNldHRpbmcgdGhlIHN0eWxlIGxpa2UgdGhpcyBs
ZWFkcyB0byBkaWZmZXJlbmNlcyBsaWtlOgogICAgIC8vIC0gUmVuZGVyVGV4dENvbnRyb2wge0lO
UFVUfSBhdCAoMiwyKSBzaXplIDE2OHgyNSBbYmdjb2xvcj0jRkZGRkZGXSBib3JkZXI6ICgycHgg
aW5zZXQgIzAwMDAwMCldCkBAIC05OTIsOCArOTkwLDcgQEAgdm9pZCBSZW5kZXJUaGVtZVF0Ojph
ZGp1c3RTZWFyY2hGaWVsZFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJT
dHkKICAgICBjb21wdXRlU2l6ZUJhc2VkT25TdHlsZShzdHlsZSk7CiB9CiAKLXZvaWQgUmVuZGVy
VGhlbWVRdDo6YWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVj
dG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnQqIGUpIGNvbnN0Cit2b2lk
IFJlbmRlclRoZW1lUXQ6OmFkanVzdFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoQ1NTU3R5
bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0CiB7CiAgICAg
Ly8gTG9naWMgdGFrZW4gZnJvbSBSZW5kZXJUaGVtZUNocm9taXVtLmNwcC4KICAgICAvLyBTY2Fs
ZSB0aGUgYnV0dG9uIHNpemUgYmFzZWQgb24gdGhlIGZvbnQgc2l6ZS4KQEAgLTEzMzAsNyArMTMy
Nyw3IEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRNZWRpYVNlZWtGb3J3YXJkQnV0dG9uKFJl
bmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIFJlbmRlclRoZW1lUXQ6OnBhaW50TWVkaWFDdXJyZW50VGltZShSZW5kZXJPYmplY3QqIG8s
IGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByKQorYm9vbCBSZW5k
ZXJUaGVtZVF0OjpwYWludE1lZGlhQ3VycmVudFRpbWUoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHIpCiB7CiAgICAgU3R5bGVQYWludGVy
IHAodGhpcywgcGFpbnRJbmZvKTsKICAgICBpZiAoIXAuaXNWYWxpZCgpKQpAQCAtMTM0Nyw3ICsx
MzQ0LDcgQEAgU3RyaW5nIFJlbmRlclRoZW1lUXQ6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50
VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHUKICAgICByZXR1cm4gZm9ybWF0TWVkaWFD
b250cm9sc1RpbWUoY3VycmVudFRpbWUpICsgIiAvICIgKyBmb3JtYXRNZWRpYUNvbnRyb2xzVGlt
ZShkdXJhdGlvbik7CiB9CiAKLVN0cmluZyBSZW5kZXJUaGVtZVF0Ojpmb3JtYXRNZWRpYUNvbnRy
b2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0
CitTdHJpbmcgUmVuZGVyVGhlbWVRdDo6Zm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUo
ZmxvYXQsIGZsb2F0KSBjb25zdAogewogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KQEAgLTE0MDAs
NyArMTM5Nyw3IEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRy
YWNrKFJlbmRlck9iamVjdCAqbywgY29uc3QgUGFpbnRJbmZvCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1ib29sIFJlbmRlclRoZW1lUXQ6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihSZW5k
ZXJPYmplY3QgKm8sIGNvbnN0IFBhaW50SW5mbyAmcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0ICZy
KQorYm9vbCBSZW5kZXJUaGVtZVF0OjpwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIoUmVuZGVy
T2JqZWN0ICosIGNvbnN0IFBhaW50SW5mbyAmcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0ICYpCiB7
CiAgICAgU3R5bGVQYWludGVyIHAodGhpcywgcGFpbnRJbmZvKTsKICAgICBpZiAoIXAuaXNWYWxp
ZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2lkZ2V0UXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2lkZ2V0UXQuY3BwCmluZGV4IDUyMTVlNjYu
LmVlMGM0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dpZGdldFF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAKQEAgLTcx
LDcgKzcxLDcgQEAgdm9pZCBXaWRnZXQ6OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0
KQogICAgIGZyYW1lUmVjdHNDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhi
b29sIGZvY3VzZWQpCit2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwCmluZGV4IGZkMGFmY2EuLjBlYWY1MGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKQEAgLTMxMSw3ICszMTEsNyBA
QCB2b2lkIFBsdWdpblN0cmVhbTo6ZGVzdHJveVN0cmVhbSgpCiAKIHZvaWQgUGx1Z2luU3RyZWFt
OjpkZWxheURlbGl2ZXJ5VGltZXJGaXJlZChUaW1lcjxQbHVnaW5TdHJlYW0+KiB0aW1lcikKIHsK
LSAgICBBU1NFUlQodGltZXIgPT0gJm1fZGVsYXlEZWxpdmVyeVRpbWVyKTsKKyAgICBBU1NFUlRf
VU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV9kZWxheURlbGl2ZXJ5VGltZXIpOwogCiAgICAgZGVs
aXZlckRhdGEoKTsKIH0KQEAgLTM5NSw3ICszOTUsNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6c2Vu
ZEphdmFTY3JpcHRTdHJlYW0oY29uc3QgS1VSTCYgcmVxdWVzdFVSTCwgY29uc3QgQ1N0cmluZyYg
cgogCiB2b2lkIFBsdWdpblN0cmVhbTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
ewotICAgIEFTU0VSVChsb2FkZXIgPT0gbV9sb2FkZXIpOworICAgIEFTU0VSVF9VTlVTRUQobG9h
ZGVyLCBsb2FkZXIgPT0gbV9sb2FkZXIpOwogICAgIEFTU0VSVChtX3N0cmVhbVN0YXRlID09IFN0
cmVhbUJlZm9yZVN0YXJ0ZWQpOwogCiAgICAgbV9yZXNvdXJjZVJlc3BvbnNlID0gcmVzcG9uc2U7
CkBAIC00MDUsNyArNDA1LDcgQEAgdm9pZCBQbHVnaW5TdHJlYW06OmRpZFJlY2VpdmVSZXNwb25z
ZShOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciogbG9hZGVyLCBjb25zdAogCiB2b2lkIFBsdWdp
blN0cmVhbTo6ZGlkUmVjZWl2ZURhdGEoTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIqIGxvYWRl
ciwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKLSAgICBBU1NFUlQobG9hZGVyID09
IG1fbG9hZGVyKTsKKyAgICBBU1NFUlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09IG1fbG9hZGVy
KTsKICAgICBBU1NFUlQobV9zdHJlYW1TdGF0ZSA9PSBTdHJlYW1TdGFydGVkKTsKIAogICAgIC8v
IElmIHRoZSBwbHVnLWluIGNhbmNlbHMgdGhlIHN0cmVhbSBpbiBkZWxpdmVyRGF0YSBpdCBjb3Vs
ZCBiZSBkZWxldGVkLCAKQEAgLTQzMiw3ICs0MzIsNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6ZGlk
UmVjZWl2ZURhdGEoTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIqIGxvYWRlciwgY29uc3QgY2hh
cgogCiB2b2lkIFBsdWdpblN0cmVhbTo6ZGlkRmFpbChOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ciogbG9hZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJikKIHsKLSAgICBBU1NFUlQobG9hZGVyID09
IG1fbG9hZGVyKTsKKyAgICBBU1NFUlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09IG1fbG9hZGVy
KTsKIAogICAgIExPR19QTFVHSU5fTkVUX0VSUk9SKCk7CiAKQEAgLTQ0Niw3ICs0NDYsNyBAQCB2
b2lkIFBsdWdpblN0cmVhbTo6ZGlkRmFpbChOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciogbG9h
ZGVyLCBjb25zdCBSZXNvdXJjZUVycgogCiB2b2lkIFBsdWdpblN0cmVhbTo6ZGlkRmluaXNoTG9h
ZGluZyhOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciogbG9hZGVyKQogewotICAgIEFTU0VSVChs
b2FkZXIgPT0gbV9sb2FkZXIpOworICAgIEFTU0VSVF9VTlVTRUQobG9hZGVyLCBsb2FkZXIgPT0g
bV9sb2FkZXIpOwogICAgIEFTU0VSVChtX3N0cmVhbVN0YXRlID09IFN0cmVhbVN0YXJ0ZWQpOwog
CiAgICAgLy8gZGVzdHJveVN0cmVhbSBjYW4gcmVzdWx0IGluIG91ciBiZWluZyBkZWxldGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBkMWM3MjFhLi4xNGFlZjg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBAQCB2
b2lkIFBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KFBsdWdpblJlcXVlc3QqIHJlcXVlc3QpCiAK
IHZvaWQgUGx1Z2luVmlldzo6cmVxdWVzdFRpbWVyRmlyZWQoVGltZXI8UGx1Z2luVmlldz4qIHRp
bWVyKQogewotICAgIEFTU0VSVCh0aW1lciA9PSAmbV9yZXF1ZXN0VGltZXIpOworICAgIEFTU0VS
VF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3JlcXVlc3RUaW1lcik7CiAgICAgQVNTRVJUKG1f
cmVxdWVzdHMuc2l6ZSgpID4gMCk7CiAgICAgQVNTRVJUKCFtX2lzSmF2YVNjcmlwdFBhdXNlZCk7
CiAKQEAgLTU5MywxNCArNTkzLDE0IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6cG9zdFVSTChjb25z
dCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRhcmdldCwgdWludDMyX3QgbGVuLCBjCiAgICAgcmV0
dXJuIGhhbmRsZVBvc3QodXJsLCB0YXJnZXQsIGxlbiwgYnVmLCBmaWxlLCAwLCBmYWxzZSwgZmls
ZSk7CiB9CiAKLU5QRXJyb3IgUGx1Z2luVmlldzo6bmV3U3RyZWFtKE5QTUlNRVR5cGUgdHlwZSwg
Y29uc3QgY2hhciogdGFyZ2V0LCBOUFN0cmVhbSoqIHN0cmVhbSkKK05QRXJyb3IgUGx1Z2luVmll
dzo6bmV3U3RyZWFtKE5QTUlNRVR5cGUsIGNvbnN0IGNoYXIqLCBOUFN0cmVhbSoqKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgLy8gVW5zdXBwb3J0ZWQKICAgICByZXR1cm4gTlBFUlJf
R0VORVJJQ19FUlJPUjsKIH0KIAotaW50MzJfdCBQbHVnaW5WaWV3Ojp3cml0ZShOUFN0cmVhbSog
c3RyZWFtLCBpbnQzMl90IGxlbiwgdm9pZCogYnVmZmVyKQoraW50MzJfdCBQbHVnaW5WaWV3Ojp3
cml0ZShOUFN0cmVhbSosIGludDMyX3QsIHZvaWQqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgLy8gVW5zdXBwb3J0ZWQKQEAgLTY5Myw3ICs2OTMsNyBAQCBOUEVycm9yIFBsdWdpblZp
ZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKIAogdm9pZCBQ
bHVnaW5WaWV3OjppbnZhbGlkYXRlVGltZXJGaXJlZChUaW1lcjxQbHVnaW5WaWV3PiogdGltZXIp
CiB7Ci0gICAgQVNTRVJUKHRpbWVyID09ICZtX2ludmFsaWRhdGVUaW1lcik7CisgICAgQVNTRVJU
X1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1faW52YWxpZGF0ZVRpbWVyKTsKIAogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX2ludmFsaWRSZWN0cy5zaXplKCk7IGkrKykKICAgICAgICAg
aW52YWxpZGF0ZVJlY3QobV9pbnZhbGlkUmVjdHNbaV0pOwpAQCAtMTUwMCw3ICsxNTAwLDcgQEAg
TlBFcnJvciBQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJs
ZSwgY29uc3QgY2hhciogdXJsLCBjb24KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1OUEVycm9y
IFBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwg
Y29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0
IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFz
c3dvcmQsIHVpbnQzMl90KiBwbGVuKQorTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRBdXRoZW50aWNh
dGlvbkluZm8oY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBpbnQzMl90LCBjb25zdCBjaGFyKiwg
Y29uc3QgY2hhciosIGNoYXIqKiwgdWludDMyX3QqLCBjaGFyKiosIHVpbnQzMl90KikKIHsKICAg
ICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbzogcHJvdG9j
b2w9JXMsIGhvc3Q9JXMsIHBvcnQ9JWQiLCBwcm90b2NvbCwgaG9zdCwgcG9ydCk7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvbnBhcGku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKaW5kZXggMGYxOGMzOC4uNTk0
MzIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBO
UE5fTWVtRnJlZSh2b2lkKiBwdHIpCiAgICAgZnJlZShwdHIpOwogfQogCi11aW50MzJfdCBOUE5f
TWVtRmx1c2godWludDMyX3Qgc2l6ZSkKK3VpbnQzMl90IE5QTl9NZW1GbHVzaCh1aW50MzJfdCkK
IHsKICAgICAvLyBEbyBub3RoaW5nCiAgICAgcmV0dXJuIDA7CkBAIC02NCw3ICs2NCw3IEBAIHZv
aWQgTlBOX1JlbG9hZFBsdWdpbnMoTlBCb29sIHJlbG9hZFBhZ2VzKQogICAgIFBhZ2U6OnJlZnJl
c2hQbHVnaW5zKHJlbG9hZFBhZ2VzKTsKIH0KIAotTlBFcnJvciBOUE5fUmVxdWVzdFJlYWQoTlBT
dHJlYW0qIHN0cmVhbSwgTlBCeXRlUmFuZ2UqIHJhbmdlTGlzdCkKK05QRXJyb3IgTlBOX1JlcXVl
c3RSZWFkKE5QU3RyZWFtKiwgTlBCeXRlUmFuZ2UqKQogewogICAgIHJldHVybiBOUEVSUl9TVFJF
QU1fTk9UX1NFRUtBQkxFOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQqIE5QTl9HZXRKYXZh
RW52KCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCogTlBOX0dldEphdmFQZWVyKE5QUCBpbnN0
YW5jZSkKK3ZvaWQqIE5QTl9HZXRKYXZhUGVlcihOUFApCiB7CiAgICAgLy8gVW5zdXBwb3J0ZWQK
ICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1
Z2luQ29udGFpbmVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5Db250
YWluZXJRdC5jcHAKaW5kZXggODQ4NjE4MC4uN2E1ZmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCBi
b29sIFBsdWdpbkNvbnRhaW5lclF0Ojp4MTFFdmVudChYRXZlbnQqIGV2ZW50KQogICAgIHJldHVy
biBRWDExRW1iZWRDb250YWluZXI6OngxMUV2ZW50KGV2ZW50KTsKIH0KIAotdm9pZCBQbHVnaW5D
b250YWluZXJRdDo6Zm9jdXNJbkV2ZW50KFFGb2N1c0V2ZW50KiBldmVudCkKK3ZvaWQgUGx1Z2lu
Q29udGFpbmVyUXQ6OmZvY3VzSW5FdmVudChRRm9jdXNFdmVudCopCiB7CiAgICAgLy8gd2UgZ290
IGZvY3VzLCBzdG9wIHJlZGlyZWN0aW5nIHRoZSB3aGVlbCBldmVudHMKICAgICByZWRpcmVjdFdo
ZWVsRXZlbnRzVG9QYXJlbnQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA0MzlhNzRkLi5iYTY2MmFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cApAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZGVvLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL1VudXNl
ZFBhcmFtLmg+CiAKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICNpbmNsdWRl
ICJIVE1MTWVkaWFFbGVtZW50LmgiCkBAIC0xMjAwLDggKzEyMDEsMTAgQEAgYm9vbCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmFsbG93c0luZGVwZW5kZW50bHlDb21wb3NpdGVkRnJhbWVzKGNvbnN0
IEZyYW1lVmlldyoKICNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gZnJhbWVzIGFyZSBvbmx5IGlu
ZGVwZW5kZW50bHkgY29tcG9zaXRlZCBpbiBNYWMgcHJlLVdlYktpdDIuCiAgICAgcmV0dXJuIHZp
ZXctPnBsYXRmb3JtV2lkZ2V0KCk7Ci0jZW5kaWYKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZp
ZXcpOwogICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiBib29sIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6c2hvdWxkUHJvcGFnYXRlQ29tcG9zaXRpbmdUb0VuY2xvc2luZ0ZyYW1lKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IGQyMzkwMzIu
LjNmMzkxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAt
NDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3RyaW5nVHJ1
bmNhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCisjaW5jbHVk
ZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKICNpZiBFTkFCTEUoTUVURVJfVEFHKQogI2luY2x1ZGUg
IkhUTUxNZXRlckVsZW1lbnQuaCIKQEAgLTY2Niw2ICs2NjcsOSBAQCB2b2lkIFJlbmRlclRoZW1l
OjphZGp1c3RSZXBhaW50UmVjdChjb25zdCBSZW5kZXJPYmplY3QqIG8sIEludFJlY3QmIHIpCiB7
CiAjaWYgVVNFKE5FV19USEVNRSkKICAgICBtX3RoZW1lLT5pbmZsYXRlQ29udHJvbFBhaW50UmVj
dChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCksIGNvbnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihvKSwg
ciwgby0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KG8pOworICAgIFVOVVNFRF9QQVJBTShyKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAppbmRleCBhYmY5YjZiLi5i
NjY2OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGlu
ZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5l
VGV4dEJveC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTVkdJbWFnZUJ1ZmZlclRv
b2xzLmgiCiAjaW5jbHVkZSAiU1ZHUm9vdElubGluZUJveC5oIgogI2luY2x1ZGUgIlNWR1RleHRS
dW5SZW5kZXJpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTM5Miw2ICszOTMsOCBAQCBib29sIFNWR0lubGluZVRl
eHRCb3g6OnByZXBhcmVHcmFwaGljc0NvbnRleHRGb3JUZXh0UGFpbnRpbmcoR3JhcGhpY3NDb250
ZXh0KiYgYwogICAgIFRleHRSdW46OlJlbmRlcmluZ0NvbnRleHQqIHJlbmRlcmluZ0NvbnRleHQg
PSB0ZXh0UnVuLnJlbmRlcmluZ0NvbnRleHQoKTsKICAgICBpZiAocmVuZGVyaW5nQ29udGV4dCkK
ICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQqPihyZW5kZXJp
bmdDb250ZXh0KS0+c2V0QWN0aXZlUGFpbnRpbmdSZXNvdXJjZShtX3BhaW50aW5nUmVzb3VyY2Up
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odGV4dFJ1bik7CiAjZW5kaWYKIAogICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC5wcmkgYi9Tb3VyY2UvV2ViS2l0LnBy
aQppbmRleCA3MGY3ZTBkLi5hNzA3NzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0LnByaQor
KysgYi9Tb3VyY2UvV2ViS2l0LnByaQpAQCAtODgsNyArODgsNyBAQCB3aW4zMi1nKysqIHsKIH0K
IAogQ09ORklHIC09IHdhcm5fb24KLSotZysrKjpRTUFLRV9DWFhGTEFHUyArPSAtV2FsbCAtV2V4
dHJhIC1XcmV0dXJuLXR5cGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLVdjaGFyLXN1YnNjcmlwdHMg
LVdmb3JtYXQtc2VjdXJpdHkgLVdyZXR1cm4tdHlwZSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVdu
by1zaWduLWNvbXBhcmUgLVduby1zd2l0Y2ggLVduby1zd2l0Y2gtZW51bSAtV3VuZGVmIC1XbWlz
c2luZy1ub3JldHVybiAtV2luaXQtc2VsZgorKi1nKysqOlFNQUtFX0NYWEZMQUdTICs9IC1XYWxs
IC1XZXh0cmEgLVdyZXR1cm4tdHlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtV2NoYXItc3Vic2Ny
aXB0cyAtV2Zvcm1hdC1zZWN1cml0eSAtV3JldHVybi10eXBlIC1Xbm8tc2lnbi1jb21wYXJlIC1X
bm8tc3dpdGNoIC1Xbm8tc3dpdGNoLWVudW0gLVd1bmRlZiAtV21pc3Npbmctbm9yZXR1cm4gLVdp
bml0LXNlbGYKIAogIyBUcmVhdCB3YXJuaW5ncyBhcyBlcnJvcnMgb24geDg2L0xpbnV4L0dDQwog
bGludXgtZysrKiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViaW5zcGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJpbnNwZWN0b3IuY3BwCmluZGV4IDY3
MDZmMmEuLmMxYzRiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJpbnNw
ZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJpbnNwZWN0b3IuY3BwCkBA
IC0xNTYsNyArMTU2LDcgQEAgdm9pZCBRV2ViSW5zcGVjdG9yOjpyZXNpemVFdmVudChRUmVzaXpl
RXZlbnQqIGV2ZW50KQogfQogCiAvKiEgXHJlaW1wICovCi12b2lkIFFXZWJJbnNwZWN0b3I6OnNo
b3dFdmVudChRU2hvd0V2ZW50KiBldmVudCkKK3ZvaWQgUVdlYkluc3BlY3Rvcjo6c2hvd0V2ZW50
KFFTaG93RXZlbnQqKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgLy8gQWxsb3dzIFFX
ZWJJbnNwZWN0b3I6OnNob3coKSB0byBpbml0IHRoZSBpbnNwZWN0b3IuCkBAIC0xNjYsNyArMTY2
LDcgQEAgdm9pZCBRV2ViSW5zcGVjdG9yOjpzaG93RXZlbnQoUVNob3dFdmVudCogZXZlbnQpCiB9
CiAKIC8qISBccmVpbXAgKi8KLXZvaWQgUVdlYkluc3BlY3Rvcjo6aGlkZUV2ZW50KFFIaWRlRXZl
bnQqIGV2ZW50KQordm9pZCBRV2ViSW5zcGVjdG9yOjpoaWRlRXZlbnQoUUhpZGVFdmVudCopCiB7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoZC0+cGFnZSkKQEAgLTE3NSw3ICsxNzUs
NyBAQCB2b2lkIFFXZWJJbnNwZWN0b3I6OmhpZGVFdmVudChRSGlkZUV2ZW50KiBldmVudCkKIH0K
IAogLyohIFxyZWltcCAqLwotdm9pZCBRV2ViSW5zcGVjdG9yOjpjbG9zZUV2ZW50KFFDbG9zZUV2
ZW50KiBldmVudCkKK3ZvaWQgUVdlYkluc3BlY3Rvcjo6Y2xvc2VFdmVudChRQ2xvc2VFdmVudCop
CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoZC0+cGFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2Vic2V0dGluZ3MuY3BwCmluZGV4IGNhMjU3Y2QuLmYzZGZjYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgPFFV
cmw+CiAjaW5jbHVkZSA8UUZpbGVJbmZvPgogI2luY2x1ZGUgPFFTdHlsZT4KKyNpbmNsdWRlIDx3
dGYvVW51c2VkUGFyYW0uaD4KIAogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAK
QEAgLTU5LDYgKzYwLDggQEAgdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF9uZXR3b3JrQWNjZXNzQWxs
b3dlZChib29sIGlzQWxsb3dlZCkKIHsKICNpZiBFTkFCTEUoUVRfQkVBUkVSKQogICAgIFdlYkNv
cmU6Om5ldHdvcmtTdGF0ZU5vdGlmaWVyKCkuc2V0TmV0d29ya0FjY2Vzc0FsbG93ZWQoaXNBbGxv
d2VkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGlzQWxsb3dlZCk7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZwppbmRleCA0ZTM0ZmYwLi5mYzZjZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ4IEBACisyMDExLTA2LTI4ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW01l
dGFdIEZpeCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUyNgorCisgICAgICAgICogQXBpL3F3ZWJpbnNw
ZWN0b3IuY3BwOgorICAgICAgICAoUVdlYkluc3BlY3Rvcjo6c2hvd0V2ZW50KToKKyAgICAgICAg
KFFXZWJJbnNwZWN0b3I6OmhpZGVFdmVudCk6CisgICAgICAgIChRV2ViSW5zcGVjdG9yOjpjbG9z
ZUV2ZW50KToKKyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKHF0X25l
dHdvcmtBY2Nlc3NBbGxvd2VkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3JlYXRlV2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjppbnZhbGlkYXRlQ29udGVudHNB
bmRXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2tRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNs
aWVudE1vY2tRdDo6c2V0Q29udHJvbGxlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OmdldEd1
ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFF0LmNwcDoKKyAgICAgICAgKGRydFByaW50RnJhbWVVc2VyR2VzdHVyZVN0YXR1cyk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpjYW5TaG93TUlNRVR5cGVBc0hUTUwp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0TWFpbkRvY3VtZW50
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hE
aWRGYWlsTG9hZGluZyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25QZXJt
aXNzaW9uQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25QZXJtaXNz
aW9uQ2xpZW50UXQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlQ2xpZW50UXQ6OmRpZEltcG9ydEljb25VUkxGb3JQ
YWdlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZUNsaWVudFF0OjpkaWRDaGFu
Z2VJY29uRm9yUGFnZVVSTCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50UXQ6Om9wZW5JbnNw
ZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDbGllbnRRV2lkZ2V0OjptYXJrRm9yU3luYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0OjptYXJrRm9yU3luYyk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51UXQ6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6
OnNlbGVjdEl0ZW0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1F0RmFsbGJhY2tXZWJQb3B1
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRdEZhbGxiYWNrV2ViUG9wdXBDb21ibzo6ZXZlbnRG
aWx0ZXIpOgorICAgICAgICAqIHRlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6CisgICAg
ICAgIChFdmVudFNweTo6ZXZlbnRGaWx0ZXIpOgorICAgICAgICAoRXJyb3JQYWdlOjpleHRlbnNp
b24pOgorCiAyMDExLTA2LTI3ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9z
c2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCA5ZjM1
MjE5Li41YjRhZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50
UXQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKQogewogfQogCi1QYWdlKiBDaHJvbWVDbGll
bnRRdDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JikKK1BhZ2UqIENocm9tZUNsaWVudFF0OjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJikKIHsKICAgICBRV2ViUGFnZSogbmV3UGFnZSA9IG1fd2ViUGFnZS0+Y3Jl
YXRlV2luZG93KGZlYXR1cmVzLmRpYWxvZyA/IFFXZWJQYWdlOjpXZWJNb2RhbERpYWxvZyA6IFFX
ZWJQYWdlOjpXZWJCcm93c2VyV2luZG93KTsKICAgICBpZiAoIW5ld1BhZ2UpCkBAIC00MjMsNyAr
NDIzLDcgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRS
ZWN0JiB3aW5kb3dSZWN0LCBib29sKQogI2VuZGlmCiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50UXQ6
OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBi
b29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50UXQ6OmludmFsaWRhdGVDb250ZW50c0Fu
ZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIC8qIGltbWVkaWF0ZSAqLykK
IHsKICAgICAvLyBObyBkb3VibGUgYnVmZmVyLCBzbyBvbmx5IHVwZGF0ZSB0aGUgUVdpZGdldCBp
ZiBjb250ZW50IGNoYW5nZWQuCiAgICAgaWYgKHBsYXRmb3JtUGFnZUNsaWVudCgpKSB7CkBAIC02
MjgsNyArNjI4LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNv
ciYgY3Vyc29yKQogCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi12b2lkIENo
cm9tZUNsaWVudFF0OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBo
aWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIENocm9tZUNsaWVudFF0OjphdHRhY2hSb290
R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAg
ICAgaWYgKHBsYXRmb3JtUGFnZUNsaWVudCgpKQogICAgICAgICBwbGF0Zm9ybVBhZ2VDbGllbnQo
KS0+c2V0Um9vdEdyYXBoaWNzTGF5ZXIoZ3JhcGhpY3NMYXllcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9ja1F0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrUXQuY3BwCmluZGV4IDgxZGRhYTIuLjgzZjFkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrUXQuY3BwCkBAIC00OCw3ICs0OCw3IEBAIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9ja1F0Ojp+RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrUXQoKQogICAgIGRlbGV0ZSBt
X2NsaWVudE1vY2s7CiB9CiAKLXZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrUXQ6OnNl
dENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyKQordm9p
ZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2tRdDo6c2V0Q29udHJvbGxlcihEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqKQogewogICAgIG1fY2xpZW50TW9jay0+c2V0Q29udHJvbGxlciht
X2NvbnRyb2xsZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmNwcAppbmRleCA3MzIxMGYwLi5jNDRhZTYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcApAQCAtNjE0
LDcgKzYxNCw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50UXQ6OnNwZWxsaW5nVUlJc1Nob3dpbmcoKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRRdDo6Z2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxT
dHJpbmc+JiBndWVzc2VzKQordm9pZCBFZGl0b3JDbGllbnRRdDo6Z2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCA4ZWM3ZjYwLi5iZTAwM2YyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCBzdGF0aWMgUVN0cmluZyBkcnREZXNj
cmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChXZWJDb3JlOjpGcmFtZSogd2ViQ29yZUZyYW1l
KQogICAgIHJldHVybiBRTGF0aW4xU3RyaW5nKCJmcmFtZSAoYW5vbnltb3VzKSIpOwogfQogCi1z
dGF0aWMgUVN0cmluZyBkcnRQcmludEZyYW1lVXNlckdlc3R1cmVTdGF0dXMoV2ViQ29yZTo6RnJh
bWUqIGZyYW1lKQorc3RhdGljIFFTdHJpbmcgZHJ0UHJpbnRGcmFtZVVzZXJHZXN0dXJlU3RhdHVz
KFdlYkNvcmU6OkZyYW1lKikKIHsKICAgICBpZiAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCiAgICAgICAgIHJldHVybiBRU3RyaW5nOjpmcm9tTGF0
aW4xKCJGcmFtZSB3aXRoIHVzZXIgZ2VzdHVyZSBcIiUxXCIiKS5hcmcoUUxhdGluMVN0cmluZygi
dHJ1ZSIpKTsKQEAgLTY1Myw3ICs2NTMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmZp
bmlzaGVkTG9hZGluZyhEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIG1faGFzU2VudFJlc3Bv
bnNlVG9QbHVnaW4gPSBmYWxzZTsKIH0KIAotYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpjYW5T
aG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3QKK2Jvb2wgRnJh
bWVMb2FkZXJDbGllbnRRdDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmluZyYpIGNv
bnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkBAIC04OTgs
NyArODk4LDcgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpjYW5DYWNoZVBhZ2UoKSBjb25z
dAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldE1h
aW5Eb2N1bWVudEVycm9yKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpz
ZXRNYWluRG9jdW1lbnRFcnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlmICghbV9wbHVnaW5WaWV3KQogICAg
ICAgICByZXR1cm47CkBAIC0xMTIxLDcgKzExMjEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVu
cwogICAgICAgICAgICAgICAgKGR1bXBBc3NpZ25lZFVybHMuY29udGFpbnMoaWRlbnRpZmllcikg
PyBxUHJpbnRhYmxlKGR1bXBBc3NpZ25lZFVybHNbaWRlbnRpZmllcl0pIDogIjx1bmtub3duPiIp
KTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5n
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50UXQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
IGVycm9yKQogewogICAgIGlmIChkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKQogICAgICAgICBw
cmludGYoIiVzIC0gZGlkRmFpbExvYWRpbmdXaXRoRXJyb3I6ICVzXG4iLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvblBlcm1pc3Npb25DbGll
bnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uUGVy
bWlzc2lvbkNsaWVudFF0LmNwcAppbmRleCA3NTAwZTk5Li5hMDc0YzM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uUGVybWlzc2lvbkNsaWVu
dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9u
UGVybWlzc2lvbkNsaWVudFF0LmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIEdlb2xvY2F0aW9u
UGVybWlzc2lvbkNsaWVudFF0OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUo
UVdlYkZyYQogfQogCiAKLXZvaWQgR2VvbG9jYXRpb25QZXJtaXNzaW9uQ2xpZW50UXQ6OmNhbmNl
bEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShRV2ViRnJhbWUqIHdlYkZyYW1l
LCBHZW9sb2NhdGlvbiogbGlzdGVuZXIpCit2b2lkIEdlb2xvY2F0aW9uUGVybWlzc2lvbkNsaWVu
dFF0OjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoUVdlYkZyYW1l
KiB3ZWJGcmFtZSwgR2VvbG9jYXRpb24qKQogewogICAgIG1fcGVuZGluZ1Blcm1pc3Npb25SZXF1
ZXN0cy5yZW1vdmUod2ViRnJhbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50UXQuY3BwCmluZGV4IDc3YjQxZGIuLjhh
NzdlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSWNvbkRh
dGFiYXNlQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
SWNvbkRhdGFiYXNlQ2xpZW50UXQuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgSWNvbkRhdGFi
YXNlQ2xpZW50UXQ6OmRpZFJlbW92ZUFsbEljb25zKCkKIHsKIH0KIAotdm9pZCBJY29uRGF0YWJh
c2VDbGllbnRRdDo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiB1cmwp
Cit2b2lkIEljb25EYXRhYmFzZUNsaWVudFF0OjpkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChj
b25zdCBTdHJpbmcmKQogewogfQogCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
Q2xpZW50UXQ6OmRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHVybCkK
ICAgICBlbWl0IGljb25Mb2FkZWRGb3JQYWdlVVJMKHVybCk7CiB9CiAKLXZvaWQgSWNvbkRhdGFi
YXNlQ2xpZW50UXQ6OmRpZENoYW5nZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgdXJsKQor
dm9pZCBJY29uRGF0YWJhc2VDbGllbnRRdDo6ZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoY29uc3Qg
U3RyaW5nJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudFF0LmNwcAppbmRleCAxMDU1ODE3Li4yZDcyYWJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0
LmNwcApAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50UXQ6Omluc3BlY3Rv
ckRlc3Ryb3llZCgpCiB9CiAKICAgICAKLXZvaWQgSW5zcGVjdG9yQ2xpZW50UXQ6Om9wZW5JbnNw
ZWN0b3JGcm9udGVuZChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250
cm9sbGVyKQordm9pZCBJbnNwZWN0b3JDbGllbnRRdDo6b3Blbkluc3BlY3RvckZyb250ZW5kKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXIqKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgT3duUHRyPFFXZWJWaWV3PiBpbnNwZWN0b3JWaWV3ID0gYWRvcHRQdHIobmV3IFFXZWJWaWV3
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVu
dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNw
cAppbmRleCAzOWJmMmU4Li41MTQ5MDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgUGFnZUNs
aWVudFFXaWRnZXQ6OnNldFJvb3RHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQog
ICAgIHRleHR1cmVNYXBwZXJOb2RlQ2xpZW50LmNsZWFyKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVu
dFFXaWRnZXQ6Om1hcmtGb3JTeW5jKGJvb2wgc2NoZWR1bGVTeW5jKQordm9pZCBQYWdlQ2xpZW50
UVdpZGdldDo6bWFya0ZvclN5bmMoYm9vbCkKIHsKICAgICBzeW5jVGltZXIuc3RhcnRPbmVTaG90
KDApOwogfQpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgUGFnZUNsaWVudFFHcmFwaGljc1dpZGdl
dDo6c2V0Um9vdEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB9CiAjZW5kaWYK
IAotdm9pZCBQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0OjptYXJrRm9yU3luYyhib29sIHNjaGVk
dWxlU3luYykKK3ZvaWQgUGFnZUNsaWVudFFHcmFwaGljc1dpZGdldDo6bWFya0ZvclN5bmMoYm9v
bCkKIHsKICAgICBzaG91bGRTeW5jID0gdHJ1ZTsKICAgICBzeW5jVGltZXIuc3RhcnRPbmVTaG90
KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1l
bnVRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudVF0LmNw
cAppbmRleCAzM2Y2N2Y1Li5mNzlmNmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1BvcHVwTWVudVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudVF0LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlF0
RmFsbGJhY2tXZWJQb3B1cC5oIgogCiAjaW5jbHVkZSAicXdlYmtpdHBsYXRmb3JtcGx1Z2luLmgi
CisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKIGNsYXNzIFNlbGVjdERhdGEgOiBwdWJs
aWMgUVdlYlNlbGVjdERhdGEgewogcHVibGljOgpAQCAtOTUsNyArOTYsNyBAQCB2b2lkIFBvcHVw
TWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KCkKICAgICBtX3BvcHVwQ2xpZW50ID0gMDsKIH0KIAot
dm9pZCBQb3B1cE1lbnVRdDo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZp
ZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51UXQ6OnNob3coY29uc3QgSW50UmVjdCYgcmVj
dCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQpCiB7CiAjaWZuZGVmIFFUX05PX0NPTUJPQk9YCiAgICAg
aWYgKCFtX3BvcHVwQ2xpZW50KQpAQCAtMTQ4LDYgKzE0OSw5IEBAIHZvaWQgUG9wdXBNZW51UXQ6
OnNlbGVjdEl0ZW0oaW50IGluZGV4LCBib29sIGN0cmwsIGJvb2wgc2hpZnQpCiAgICAgICAgIGNs
aWVudC0+bGlzdEJveFNlbGVjdEl0ZW0oaW5kZXgsIGN0cmwsIHNoaWZ0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGN0cmwpOworICAgIFVOVVNFRF9Q
QVJBTShzaGlmdCk7CiAjZW5kaWYKIAogICAgIG1fcG9wdXBDbGllbnQtPnZhbHVlQ2hhbmdlZChp
bmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0RmFs
bGJhY2tXZWJQb3B1cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0RmFs
bGJhY2tXZWJQb3B1cC5jcHAKaW5kZXggYTUxNjEwNi4uZWIxMGEwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEZhbGxiYWNrV2ViUG9wdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVwLmNwcApA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFFJbnB1dENvbnRleHQ+CiAjaW5jbHVkZSA8UU1v
dXNlRXZlbnQ+CiAjaW5jbHVkZSA8UVN0YW5kYXJkSXRlbU1vZGVsPgorI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzgsNyArNzksNyBAQCB2
b2lkIFF0RmFsbGJhY2tXZWJQb3B1cENvbWJvOjpoaWRlUG9wdXAoKQogCiBib29sIFF0RmFsbGJh
Y2tXZWJQb3B1cENvbWJvOjpldmVudEZpbHRlcihRT2JqZWN0KiB3YXRjaGVkLCBRRXZlbnQqIGV2
ZW50KQogewotICAgIFFfQVNTRVJUKHdhdGNoZWQgPT0gdmlldygpKTsKKyAgICBBU1NFUlRfVU5V
U0VEKHdhdGNoZWQsIHdhdGNoZWQgPT0gdmlldygpKTsKIAogICAgIGlmIChldmVudC0+dHlwZSgp
ID09IFFFdmVudDo6U2hvdyAmJiAhbV9vd25lclBvcHVwLm1fcG9wdXBWaXNpYmxlKQogICAgICAg
ICBzaG93UG9wdXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBh
Z2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0
X3F3ZWJwYWdlLmNwcAppbmRleCBhZDZjOWIyLi42YTIwMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC02Niw3ICs2Niw3IEBA
IHB1YmxpYzoKICAgICAgICAgb2JqZWN0VG9TcHktPmluc3RhbGxFdmVudEZpbHRlcih0aGlzKTsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZXZlbnRGaWx0ZXIoUU9iamVjdCogcmVjZWl2ZXIs
IFFFdmVudCogZXZlbnQpCisgICAgdmlydHVhbCBib29sIGV2ZW50RmlsdGVyKFFPYmplY3QqLCBR
RXZlbnQqIGV2ZW50KQogICAgIHsKICAgICAgICAgYXBwZW5kKGV2ZW50LT50eXBlKCkpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNDk2LDcgKzI0OTYsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBleHRlbnNpb24gPT0gRXJyb3JQYWdlRXh0ZW5zaW9uOwogICAgIH0KIAotICAgIHZp
cnR1YWwgYm9vbCBleHRlbnNpb24oRXh0ZW5zaW9uLCBjb25zdCBFeHRlbnNpb25PcHRpb24qIG9w
dGlvbiwgRXh0ZW5zaW9uUmV0dXJuKiBvdXRwdXQpCisgICAgdmlydHVhbCBib29sIGV4dGVuc2lv
bihFeHRlbnNpb24sIGNvbnN0IEV4dGVuc2lvbk9wdGlvbiosIEV4dGVuc2lvblJldHVybiogb3V0
cHV0KQogICAgIHsKICAgICAgICAgRXJyb3JQYWdlRXh0ZW5zaW9uUmV0dXJuKiBlcnJvclBhZ2Ug
PSBzdGF0aWNfY2FzdDxFcnJvclBhZ2VFeHRlbnNpb25SZXR1cm4qPihvdXRwdXQpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjU4ZjAwZS4u
YTE2NTE4YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDc5IEBACisyMDExLTA2LTI4ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW01ldGFdIEZpeCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUyNgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpbk9iamVjdC5jcHA6CisgICAgICAg
IChwbHVnaW5IYXNQcm9wZXJ0eSk6CisgICAgICAgIChwbHVnaW5IYXNNZXRob2QpOgorICAgICAg
ICAodGVzdEludm9rZURlZmF1bHQpOgorICAgICAgICAoZGVzdHJveVN0cmVhbSk6CisgICAgICAg
IChkZXN0cm95TnVsbFN0cmVhbSk6CisgICAgICAgICh0ZXN0U2V0U3RhdHVzKToKKyAgICAgICAg
KGludmFsaWRhdGVSZWN0KToKKyAgICAgICAgKG9iamVjdHNBcmVTYW1lKToKKyAgICAgICAgKHBs
dWdpbkFsbG9jYXRlKToKKyAgICAgICAgKGhhbmRsZUNhbGxiYWNrKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luVGVzdC5jcHA6CisgICAgICAgIChQ
bHVnaW5UZXN0OjpOUFBfTmV3KToKKyAgICAgICAgKFBsdWdpblRlc3Q6Ok5QUF9OZXdTdHJlYW0p
OgorICAgICAgICAoUGx1Z2luVGVzdDo6TlBQX0Rlc3Ryb3lTdHJlYW0pOgorICAgICAgICAoUGx1
Z2luVGVzdDo6TlBQX1dyaXRlKToKKyAgICAgICAgKFBsdWdpblRlc3Q6Ok5QUF9VUkxOb3RpZnkp
OgorICAgICAgICAoUGx1Z2luVGVzdDo6TlBQX0dldFZhbHVlKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luVGVzdC5oOgorICAgICAgICAoUGx1Z2lu
VGVzdDo6T2JqZWN0OjpoYXNNZXRob2QpOgorICAgICAgICAoUGx1Z2luVGVzdDo6T2JqZWN0Ojpp
bnZva2UpOgorICAgICAgICAoUGx1Z2luVGVzdDo6T2JqZWN0OjppbnZva2VEZWZhdWx0KToKKyAg
ICAgICAgKFBsdWdpblRlc3Q6Ok9iamVjdDo6aGFzUHJvcGVydHkpOgorICAgICAgICAoUGx1Z2lu
VGVzdDo6T2JqZWN0OjpnZXRQcm9wZXJ0eSk6CisgICAgICAgIChQbHVnaW5UZXN0OjpPYmplY3Q6
Ok5QX0FsbG9jYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVn
SW4vVGVzdHMvR2V0VVJMTm90aWZ5V2l0aFVSTFRoYXRGYWlsc1RvTG9hZC5jcHA6CisgICAgICAg
IChHZXRVUkxOb3RpZnlXaXRoVVJMVGhhdEZhaWxzVG9Mb2FkOjpOUFBfTmV3KToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VVJMV2l0aEphdmFT
Y3JpcHRVUkwuY3BwOgorICAgICAgICAoR2V0VVJMV2l0aEphdmFTY3JpcHRVUkw6Ok5QUF9OZXcp
OgorICAgICAgICAoR2V0VVJMV2l0aEphdmFTY3JpcHRVUkw6Ok5QUF9OZXdTdHJlYW0pOgorICAg
ICAgICAoR2V0VVJMV2l0aEphdmFTY3JpcHRVUkw6Ok5QUF9Xcml0ZSk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0dldFVSTFdpdGhKYXZhU2NyaXB0
VVJMRGVzdHJveWluZ1BsdWdpbi5jcHA6CisgICAgICAgIChHZXRVUkxXaXRoSmF2YVNjcmlwdFVS
TERlc3Ryb3lpbmdQbHVnaW46Ok5QUF9OZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rl
c3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9HZXRVc2VyQWdlbnRXaXRoTnVsbE5QUEZyb21OUFBOZXcu
Y3BwOgorICAgICAgICAoR2V0VXNlckFnZW50V2l0aE51bGxOUFBGcm9tTlBQTmV3OjpOUFBfTmV3
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvTlBE
ZWFsbG9jYXRlQ2FsbGVkQmVmb3JlTlBTaHV0ZG93bi5jcHA6CisgICAgICAgIChOUERlYWxsb2Nh
dGVDYWxsZWRCZWZvcmVOUFNodXRkb3duOjpOUFBfTmV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvTlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVz
dHJ1Y3Rpb24uY3BwOgorICAgICAgICAoTlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rp
b246OlNjcmlwdE9iamVjdDo6aW52b2tlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0
TmV0c2NhcGVQbHVnSW4vVGVzdHMvTlBSdW50aW1lUmVtb3ZlUHJvcGVydHkuY3BwOgorICAgICAg
ICAoTlBSdW50aW1lUmVtb3ZlUHJvcGVydHk6OlRlc3RPYmplY3Q6Omludm9rZSk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL1Bhc3NEaWZmZXJlbnRO
UFBTdHJ1Y3QuY3BwOgorICAgICAgICAoUGFzc0RpZmZlcmVudE5QUFN0cnVjdDo6TlBQX1NldFdp
bmRvdyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4u
Y3BwOgorICAgICAgICAoTlBQX1N0cmVhbUFzRmlsZSk6CisgICAgICAgIChOUFBfUHJpbnQpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TnVsbFByaW50ZXI6Ok51bGxQYWludEVuZ2luZTo6ZHJhd1BpeG1hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpOdWxsUHJpbnRlcjo6TnVsbFBhaW50RW5naW5lOjp1cGRhdGVTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJQYWdlOjpleHRlbnNpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViVmlld0dyYXBoaWNzQmFzZWQ6OldlYlZpZXdHcmFwaGljc0Jhc2VkKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcDoKKyAgICAgICAgKEV2ZW50
U2VuZGVyOjp0aW1lckV2ZW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQ
bHVnaW5zRW5hYmxlZCk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TWFpbkZy
YW1lSXNGaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xl
YXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpsb2NhbFN0b3JhZ2VEaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldENhY2hlTW9kZWwpOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKToKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjpvYnNlcnZlU3RvcmFnZVRyYWNrZXJOb3RpZmljYXRpb25z
KToKKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL1F0VGVzdEJyb3dzZXIucHJvOgorICAgICAgICAq
IFF0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuY3BwOgorICAgICAgICAoTGF1bmNoZXJXaW5k
b3c6OmdyYWJab29tS2V5cyk6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcDoK
KyAgICAgICAgKFdlYlBhZ2U6OmV4dGVuc2lvbik6CisKIDIwMTEtMDYtMjcgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVn
aW5PYmplY3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Bs
dWdpbk9iamVjdC5jcHAKaW5kZXggNTJlZTQ0Ni4uNTMzOGMzNiAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpbk9iamVjdC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpbk9iamVjdC5jcHAK
QEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplSWRlbnRpZmllcnModm9p
ZCkKICAgICBicm93c2VyLT5nZXRzdHJpbmdpZGVudGlmaWVycyhwbHVnaW5NZXRob2RJZGVudGlm
aWVyTmFtZXMsIE5VTV9NRVRIT0RfSURFTlRJRklFUlMsIHBsdWdpbk1ldGhvZElkZW50aWZpZXJz
KTsKIH0KIAotc3RhdGljIGJvb2wgcGx1Z2luSGFzUHJvcGVydHkoTlBPYmplY3QgKm9iaiwgTlBJ
ZGVudGlmaWVyIG5hbWUpCitzdGF0aWMgYm9vbCBwbHVnaW5IYXNQcm9wZXJ0eShOUE9iamVjdCAq
LCBOUElkZW50aWZpZXIgbmFtZSkKIHsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9QUk9Q
RVJUWV9JREVOVElGSUVSUzsgaSsrKQogICAgICAgICBpZiAobmFtZSA9PSBwbHVnaW5Qcm9wZXJ0
eUlkZW50aWZpZXJzW2ldKQpAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyBib29sIHBsdWdpbkhh
c1Byb3BlcnR5KE5QT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBuYW1lKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotc3RhdGljIGJvb2wgcGx1Z2luSGFzTWV0aG9kKE5QT2JqZWN0ICpvYmosIE5Q
SWRlbnRpZmllciBuYW1lKQorc3RhdGljIGJvb2wgcGx1Z2luSGFzTWV0aG9kKE5QT2JqZWN0ICos
IE5QSWRlbnRpZmllciBuYW1lKQogewogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX01FVEhP
RF9JREVOVElGSUVSUzsgaSsrKQogICAgICAgICBpZiAobmFtZSA9PSBwbHVnaW5NZXRob2RJZGVu
dGlmaWVyc1tpXSkKQEAgLTU4MCw3ICs1ODAsNyBAQCBzdGF0aWMgYm9vbCBnZXRVUkxOb3RpZnko
UGx1Z2luT2JqZWN0KiBvYmosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQwog
ICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCB0ZXN0SW52b2tlRGVmYXVsdChQbHVn
aW5PYmplY3QqIG9iaiwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBhcmdDb3VudCwg
TlBWYXJpYW50KiByZXN1bHQpCitzdGF0aWMgYm9vbCB0ZXN0SW52b2tlRGVmYXVsdChQbHVnaW5P
YmplY3QqIG9iaiwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCwgTlBWYXJpYW50KiBy
ZXN1bHQpCiB7CiAgICAgaWYgKCFOUFZBUklBTlRfSVNfT0JKRUNUKGFyZ3NbMF0pKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC02MDAsMTQgKzYwMCwxNCBAQCBzdGF0aWMgYm9vbCB0ZXN0SW52
b2tlRGVmYXVsdChQbHVnaW5PYmplY3QqIG9iaiwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50
MzJfdAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBkZXN0cm95U3RyZWFtKFBs
dWdpbk9iamVjdCogb2JqLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50
LCBOUFZhcmlhbnQqIHJlc3VsdCkKK3N0YXRpYyBib29sIGRlc3Ryb3lTdHJlYW0oUGx1Z2luT2Jq
ZWN0KiBvYmosIGNvbnN0IE5QVmFyaWFudCosIHVpbnQzMl90LCBOUFZhcmlhbnQqIHJlc3VsdCkK
IHsKICAgICBOUEVycm9yIG5wRXJyb3IgPSBicm93c2VyLT5kZXN0cm95c3RyZWFtKG9iai0+bnBw
LCBvYmotPnN0cmVhbSwgTlBSRVNfVVNFUl9CUkVBSyk7CiAgICAgSU5UMzJfVE9fTlBWQVJJQU5U
KG5wRXJyb3IsICpyZXN1bHQpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBk
ZXN0cm95TnVsbFN0cmVhbShQbHVnaW5PYmplY3QqIG9iaiwgY29uc3QgTlBWYXJpYW50KiBhcmdz
LCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCitzdGF0aWMgYm9vbCBkZXN0
cm95TnVsbFN0cmVhbShQbHVnaW5PYmplY3QqIG9iaiwgY29uc3QgTlBWYXJpYW50KiwgdWludDMy
X3QsIE5QVmFyaWFudCogcmVzdWx0KQogewogICAgIE5QRXJyb3IgbnBFcnJvciA9IGJyb3dzZXIt
PmRlc3Ryb3lzdHJlYW0ob2JqLT5ucHAsIDAsIE5QUkVTX1VTRVJfQlJFQUspOwogICAgIElOVDMy
X1RPX05QVkFSSUFOVChucEVycm9yLCAqcmVzdWx0KTsKQEAgLTk0Nyw3ICs5NDcsNyBAQCBib29s
IHRlc3RXaW5kb3dPcGVuKE5QUCBucHApCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBi
b29sIHRlc3RTZXRTdGF0dXMoUGx1Z2luT2JqZWN0KiBvYmosIGNvbnN0IE5QVmFyaWFudCogYXJn
cywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQorc3RhdGljIGJvb2wgdGVz
dFNldFN0YXR1cyhQbHVnaW5PYmplY3QqIG9iaiwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50
MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50KikKIHsKICAgICBjaGFyKiBtZXNzYWdlID0gMDsKICAg
ICBpZiAoYXJnQ291bnQgJiYgTlBWQVJJQU5UX0lTX1NUUklORyhhcmdzWzBdKSkgewpAQCAtOTk1
LDcgKzk5NSw3IEBAIHN0YXRpYyBib29sIG5vcm1hbGl6ZU92ZXJyaWRlKFBsdWdpbk9iamVjdCog
b2JqLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXN0YXRpYyBib29sIGludmFsaWRhdGVSZWN0KFBsdWdpbk9iamVjdCogb2JqLCBjb25zdCBO
UFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCkKK3N0
YXRpYyBib29sIGludmFsaWRhdGVSZWN0KFBsdWdpbk9iamVjdCogb2JqLCBjb25zdCBOUFZhcmlh
bnQqIGFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQqKQogewogICAgIGlmIChhcmdD
b3VudCAhPSA0KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDEwLDcgKzEwMTAsNyBAQCBz
dGF0aWMgYm9vbCBpbnZhbGlkYXRlUmVjdChQbHVnaW5PYmplY3QqIG9iaiwgY29uc3QgTlBWYXJp
YW50KiBhcmdzLCB1aW50MzJfdCBhcgogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9v
bCBvYmplY3RzQXJlU2FtZShQbHVnaW5PYmplY3QqIG9iaiwgY29uc3QgTlBWYXJpYW50KiBhcmdz
LCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50KiByZXN1bHQpCitzdGF0aWMgYm9vbCBvYmpl
Y3RzQXJlU2FtZShQbHVnaW5PYmplY3QqLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90
IGFyZ0NvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJnQ291bnQgIT0gMiB8
fCAhTlBWQVJJQU5UX0lTX09CSkVDVChhcmdzWzBdKSB8fCAhTlBWQVJJQU5UX0lTX09CSkVDVChh
cmdzWzFdKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTE0OCw3ICsxMTQ4LDcgQEAgc3Rh
dGljIHZvaWQgcGx1Z2luSW52YWxpZGF0ZShOUE9iamVjdCogaGVhZGVyKQogICAgIHBsdWdpbi0+
cmVtZW1iZXJlZE9iamVjdCA9IDA7CiB9CiAKLXN0YXRpYyBOUE9iamVjdCAqcGx1Z2luQWxsb2Nh
dGUoTlBQIG5wcCwgTlBDbGFzcyAqdGhlQ2xhc3MpCitzdGF0aWMgTlBPYmplY3QgKnBsdWdpbkFs
bG9jYXRlKE5QUCBucHAsIE5QQ2xhc3MgKikKIHsKICAgICBQbHVnaW5PYmplY3QqIG5ld0luc3Rh
bmNlID0gKFBsdWdpbk9iamVjdCopbWFsbG9jKHNpemVvZihQbHVnaW5PYmplY3QpKTsKIApAQCAt
MTIwNSw3ICsxMjA1LDcgQEAgc3RhdGljIHZvaWQgcGx1Z2luRGVhbGxvY2F0ZShOUE9iamVjdCog
aGVhZGVyKQogICAgIGZyZWUocGx1Z2luKTsKIH0KIAotdm9pZCBoYW5kbGVDYWxsYmFjayhQbHVn
aW5PYmplY3QqIG9iamVjdCwgY29uc3QgY2hhciAqdXJsLCBOUFJlYXNvbiByZWFzb24sIHZvaWQg
Km5vdGlmeURhdGEpCit2b2lkIGhhbmRsZUNhbGxiYWNrKFBsdWdpbk9iamVjdCogb2JqZWN0LCBj
b25zdCBjaGFyICosIE5QUmVhc29uIHJlYXNvbiwgdm9pZCAqbm90aWZ5RGF0YSkKIHsKICAgICBh
c3NlcnQob2JqZWN0KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5l
dHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5l
dHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuY3BwCmluZGV4IGRjODc1ODMuLjQ3ZmIwOWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5UZXN0
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2lu
VGVzdC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBQbHVnaW5UZXN0OjppbmRpY2F0ZVRlc3RG
YWlsdXJlKCkKICNlbmRpZgogfQogCi1OUEVycm9yIFBsdWdpblRlc3Q6Ok5QUF9OZXcoTlBNSU1F
VHlwZSBwbHVnaW5UeXBlLCB1aW50MTZfdCBtb2RlLCBpbnQxNl90IGFyZ2MsIGNoYXIgKmFyZ25b
XSwgY2hhciAqYXJndltdLCBOUFNhdmVkRGF0YSAqc2F2ZWQpCitOUEVycm9yIFBsdWdpblRlc3Q6
Ok5QUF9OZXcoTlBNSU1FVHlwZSwgdWludDE2X3QsIGludDE2X3QsIGNoYXIgKltdLCBjaGFyICpb
XSwgTlBTYXZlZERhdGEgKikKIHsKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CkBAIC05
NywxMiArOTcsMTIgQEAgTlBFcnJvciBQbHVnaW5UZXN0OjpOUFBfU2V0V2luZG93KE5QUCwgTlBX
aW5kb3cqKQogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0KIAotTlBFcnJvciBQbHVnaW5U
ZXN0OjpOUFBfTmV3U3RyZWFtKE5QTUlNRVR5cGUgdHlwZSwgTlBTdHJlYW0qIHN0cmVhbSwgTlBC
b29sIHNlZWthYmxlLCB1aW50MTZfdCogc3R5cGUpCitOUEVycm9yIFBsdWdpblRlc3Q6Ok5QUF9O
ZXdTdHJlYW0oTlBNSU1FVHlwZSwgTlBTdHJlYW0qLCBOUEJvb2wsIHVpbnQxNl90KikKIHsKICAg
ICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKLU5QRXJyb3IgUGx1Z2luVGVzdDo6TlBQX0Rl
c3Ryb3lTdHJlYW0oTlBTdHJlYW0gKnN0cmVhbSwgTlBSZWFzb24gcmVhc29uKQorTlBFcnJvciBQ
bHVnaW5UZXN0OjpOUFBfRGVzdHJveVN0cmVhbShOUFN0cmVhbSAqLCBOUFJlYXNvbikKIHsKICAg
ICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CkBAIC0xMTIsNyArMTEyLDcgQEAgaW50MzJfdCBQ
bHVnaW5UZXN0OjpOUFBfV3JpdGVSZWFkeShOUFN0cmVhbSopCiAgICAgcmV0dXJuIDQwOTY7CiB9
CiAKLWludDMyX3QgUGx1Z2luVGVzdDo6TlBQX1dyaXRlKE5QU3RyZWFtKiwgaW50MzJfdCBvZmZz
ZXQsIGludDMyX3QgbGVuLCB2b2lkKiBidWZmZXIpCitpbnQzMl90IFBsdWdpblRlc3Q6Ok5QUF9X
cml0ZShOUFN0cmVhbSosIGludDMyX3QsIGludDMyX3QgbGVuLCB2b2lkKikKIHsKICAgICByZXR1
cm4gbGVuOwogfQpAQCAtMTIyLDE0ICsxMjIsMTQgQEAgaW50MTZfdCBQbHVnaW5UZXN0OjpOUFBf
SGFuZGxlRXZlbnQodm9pZCopCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgUGx1Z2luVGVzdDo6
TlBQX1VSTE5vdGlmeShjb25zdCBjaGFyKiB1cmwsIE5QUmVhc29uLCB2b2lkKiBub3RpZnlEYXRh
KQorYm9vbCBQbHVnaW5UZXN0OjpOUFBfVVJMTm90aWZ5KGNvbnN0IGNoYXIqLCBOUFJlYXNvbiwg
dm9pZCopCiB7CiAgICAgLy8gRklYTUU6IFBvcnQgdGhlIGNvZGUgZnJvbSBOUFBfVVJMTm90aWZ5
IGluIG1haW4uY3BwIG92ZXIgdG8gYWx3YXlzIHVzaW5nCiAgICAgLy8gUGx1Z2luVGVzdCwgc28g
d2UgZG9uJ3QgaGF2ZSB0byB1c2UgYSByZXR1cm4gdmFsdWUgdG8gaW5kaWNhdGUgd2hldGhlciB0
aGUgImRlZmF1bHQiIE5QUF9VUkxOb3RpZnkgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlIGludm9r
ZWQuCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1OUEVycm9yIFBsdWdpblRlc3Q6Ok5QUF9HZXRW
YWx1ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpCitOUEVycm9yIFBsdWdpblRl
c3Q6Ok5QUF9HZXRWYWx1ZShOUFBWYXJpYWJsZSwgdm9pZCopCiB7CiAgICAgLy8gV2UgZG9uJ3Qg
a25vdyBhbnl0aGluZyBhYm91dCBwbHVnLWluIHZhbHVlcyBzbyBqdXN0IHJldHVybiBOUEVSUl9H
RU5FUklDX0VSUk9SLgogICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5UZXN0LmgKaW5k
ZXggYjExMzI3YzAuLjRhMjNmNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5UZXN0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuaApAQCAtMTI5LDMxICsxMjksMzEgQEAgcHJv
dGVjdGVkOgogICAgICAgICB9CiAgICAgCiAgICAgICAgIC8vIFRoZXNlIHNob3VsZCBuZXZlciBi
ZSBjYWxsZWQuCi0gICAgICAgIGJvb2wgaGFzTWV0aG9kKE5QSWRlbnRpZmllciBtZXRob2ROYW1l
KQorICAgICAgICBib29sIGhhc01ldGhvZChOUElkZW50aWZpZXIpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGFzc2VydChmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KIAotICAgICAgICBib29sIGludm9rZShOUElkZW50aWZpZXIgbWV0aG9kTmFtZSwgY29uc3Qg
TlBWYXJpYW50KiwgdWludDMyX3QsIE5QVmFyaWFudCogcmVzdWx0KQorICAgICAgICBib29sIGlu
dm9rZShOUElkZW50aWZpZXIsIGNvbnN0IE5QVmFyaWFudCosIHVpbnQzMl90LCBOUFZhcmlhbnQq
KQogICAgICAgICB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UpOwogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBib29sIGludm9rZURlZmF1
bHQoY29uc3QgTlBWYXJpYW50KiwgdWludDMyX3QsIE5QVmFyaWFudCogcmVzdWx0KQorICAgICAg
ICBib29sIGludm9rZURlZmF1bHQoY29uc3QgTlBWYXJpYW50KiwgdWludDMyX3QsIE5QVmFyaWFu
dCopCiAgICAgICAgIHsKICAgICAgICAgICAgIGFzc2VydChmYWxzZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGhhc1Byb3BlcnR5KE5QSWRl
bnRpZmllciBwcm9wZXJ0eU5hbWUpCisgICAgICAgIGJvb2wgaGFzUHJvcGVydHkoTlBJZGVudGlm
aWVyKQogICAgICAgICB7CiAgICAgICAgICAgICBhc3NlcnQoZmFsc2UpOwogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBnZXRQcm9wZXJ0eShOUElk
ZW50aWZpZXIgcHJvcGVydHlOYW1lLCBOUFZhcmlhbnQqIHJlc3VsdCkKKyAgICAgICAgYm9vbCBn
ZXRQcm9wZXJ0eShOUElkZW50aWZpZXIsIE5QVmFyaWFudCopCiAgICAgICAgIHsKICAgICAgICAg
ICAgIGFzc2VydChmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzIsNyAr
MTcyLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBQbHVnaW5UZXN0KiBwbHVnaW5UZXN0KCkgY29u
c3QgeyByZXR1cm4gbV9wbHVnaW5UZXN0OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBzdGF0
aWMgTlBPYmplY3QqIE5QX0FsbG9jYXRlKE5QUCBucHAsIE5QQ2xhc3MqIGFDbGFzcykKKyAgICAg
ICAgc3RhdGljIE5QT2JqZWN0KiBOUF9BbGxvY2F0ZShOUFAsIE5QQ2xhc3MqKQogICAgICAgICB7
CiAgICAgICAgICAgICByZXR1cm4gbmV3IFQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9HZXRVUkxOb3RpZnlXaXRo
VVJMVGhhdEZhaWxzVG9Mb2FkLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2Fw
ZVBsdWdJbi9UZXN0cy9HZXRVUkxOb3RpZnlXaXRoVVJMVGhhdEZhaWxzVG9Mb2FkLmNwcAppbmRl
eCBmNmYzOWFiLi5iNjRjNWU0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VVJMTm90aWZ5V2l0aFVSTFRoYXRGYWlsc1RvTG9hZC5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0dl
dFVSTE5vdGlmeVdpdGhVUkxUaGF0RmFpbHNUb0xvYWQuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKIAotICAgIHZpcnR1YWwgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5
cGUgcGx1Z2luVHlwZSwgdWludDE2X3QgbW9kZSwgaW50MTZfdCBhcmdjLCBjaGFyICphcmduW10s
IGNoYXIgKmFyZ3ZbXSwgTlBTYXZlZERhdGEgKnNhdmVkKQorICAgIHZpcnR1YWwgTlBFcnJvciBO
UFBfTmV3KE5QTUlNRVR5cGUsIHVpbnQxNl90LCBpbnQxNl90LCBjaGFyICpbXSwgY2hhciAqW10s
IE5QU2F2ZWREYXRhICopCiAgICAgewogICAgICAgICBOUE5fR2V0VVJMTm90aWZ5KHVybFRoYXRG
YWlsc1RvTG9hZCwgMCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHgxMjM0NTY3OCkpOwogICAg
ICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VVJMV2l0aEphdmFTY3JpcHRVUkwuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0dldFVSTFdp
dGhKYXZhU2NyaXB0VVJMLmNwcAppbmRleCBiM2E3MmIwLi5lOWE2YzQ1IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VVJMV2l0aEph
dmFTY3JpcHRVUkwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBs
dWdJbi9UZXN0cy9HZXRVUkxXaXRoSmF2YVNjcmlwdFVSTC5jcHAKQEAgLTQ0LDEzICs0NCwxMyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgTlBFcnJvciBOUFBfTmV3
KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgdWludDE2X3QgbW9kZSwgaW50MTZfdCBhcmdjLCBjaGFy
ICphcmduW10sIGNoYXIgKmFyZ3ZbXSwgTlBTYXZlZERhdGEgKnNhdmVkKQorICAgIHZpcnR1YWwg
TlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUsIHVpbnQxNl90LCBpbnQxNl90LCBjaGFyICpbXSwg
Y2hhciAqW10sIE5QU2F2ZWREYXRhICopCiAgICAgewogICAgICAgICBOUE5fR2V0VVJMKGphdmFT
Y3JpcHRVUkwsIDApOwogICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiAgICAgfQogCi0g
ICAgTlBFcnJvciBOUFBfTmV3U3RyZWFtKE5QTUlNRVR5cGUgdHlwZSwgTlBTdHJlYW0qIHN0cmVh
bSwgTlBCb29sIHNlZWthYmxlLCB1aW50MTZfdCogc3R5cGUpCisgICAgTlBFcnJvciBOUFBfTmV3
U3RyZWFtKE5QTUlNRVR5cGUsIE5QU3RyZWFtKiBzdHJlYW0sIE5QQm9vbCwgdWludDE2X3QqIHN0
eXBlKQogICAgIHsKICAgICAgICAgc3RyZWFtLT5wZGF0YSA9IHRoaXM7CiAKQEAgLTk2LDExICs5
NiwxMSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gMjsKICAgICB9CiAKLSAgICBpbnQzMl90
IE5QUF9Xcml0ZShOUFN0cmVhbSogc3RyZWFtLCBpbnQzMl90IG9mZnNldCwgaW50MzJfdCBsZW4s
IHZvaWQqIGJ1ZmZlcikKKyAgICBpbnQzMl90IE5QUF9Xcml0ZShOUFN0cmVhbSogc3RyZWFtLCBp
bnQzMl90LCBpbnQzMl90IGxlbiwgdm9pZCogYnVmZmVyKQogICAgIHsKICAgICAgICAgaWYgKHN0
cmVhbS0+cGRhdGEgIT0gdGhpcykKICAgICAgICAgICAgIG1fZGlkRmFpbCA9IHRydWU7Ci0gICAg
ICAgIAorCiAgICAgICAgIG1fZGF0YS5pbnNlcnQobV9kYXRhLmVuZCgpLCBzdGF0aWNfY2FzdDxj
aGFyKj4oYnVmZmVyKSwgc3RhdGljX2Nhc3Q8Y2hhcio+KGJ1ZmZlcikgKyBsZW4pOwogICAgICAg
ICByZXR1cm4gbGVuOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9HZXRVUkxXaXRoSmF2YVNjcmlwdFVSTERlc3Ryb3lpbmdQ
bHVnaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3Rz
L0dldFVSTFdpdGhKYXZhU2NyaXB0VVJMRGVzdHJveWluZ1BsdWdpbi5jcHAKaW5kZXggOWQ2MzE5
OC4uYTM3NDIwNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luL1Rlc3RzL0dldFVSTFdpdGhKYXZhU2NyaXB0VVJMRGVzdHJveWluZ1BsdWdpbi5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0dldFVS
TFdpdGhKYXZhU2NyaXB0VVJMRGVzdHJveWluZ1BsdWdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogCi0gICAgdmlydHVhbCBOUEVycm9yIE5QUF9OZXcoTlBNSU1F
VHlwZSBwbHVnaW5UeXBlLCB1aW50MTZfdCBtb2RlLCBpbnQxNl90IGFyZ2MsIGNoYXIgKmFyZ25b
XSwgY2hhciAqYXJndltdLCBOUFNhdmVkRGF0YSAqc2F2ZWQpCisgICAgdmlydHVhbCBOUEVycm9y
IE5QUF9OZXcoTlBNSU1FVHlwZSwgdWludDE2X3QsIGludDE2X3QsIGNoYXIgKltdLCBjaGFyICpb
XSwgTlBTYXZlZERhdGEgKikKICAgICB7CiAgICAgICAgIE5QTl9HZXRVUkwoImphdmFzY3JpcHQ6
cmVtb3ZlUGx1Z2luKCkiLCAwKTsKICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0dl
dFVzZXJBZ2VudFdpdGhOdWxsTlBQRnJvbU5QUE5ldy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VXNlckFnZW50V2l0aE51bGxOUFBGcm9tTlBQ
TmV3LmNwcAppbmRleCAzMjJkM2ZlLi5kMmQzMmYwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VXNlckFnZW50V2l0aE51bGxOUFBG
cm9tTlBQTmV3LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVn
SW4vVGVzdHMvR2V0VXNlckFnZW50V2l0aE51bGxOUFBGcm9tTlBQTmV3LmNwcApAQCAtNDEsNyAr
NDEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgTlBFcnJvciBO
UFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgdWludDE2X3QgbW9kZSwgaW50MTZfdCBhcmdj
LCBjaGFyICphcmduW10sIGNoYXIgKmFyZ3ZbXSwgTlBTYXZlZERhdGEgKnNhdmVkKQorICAgIHZp
cnR1YWwgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUsIHVpbnQxNl90LCBpbnQxNl90LCBjaGFy
ICpbXSwgY2hhciAqW10sIE5QU2F2ZWREYXRhICopCiAgICAgewogICAgICAgICBpZiAoIWJyb3dz
ZXItPnVhZ2VudCgwKSkKICAgICAgICAgICAgIHBsdWdpbkxvZyhtX25wcCwgIkZBSUxVUkU6IE51
bGwgdXNlciBhZ2VudCByZXR1cm5lZC4iKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9OUERlYWxsb2NhdGVDYWxsZWRCZWZvcmVOUFNo
dXRkb3duLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0
cy9OUERlYWxsb2NhdGVDYWxsZWRCZWZvcmVOUFNodXRkb3duLmNwcAppbmRleCA5MWY0N2FmLi41
OWI5YWQ1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVn
SW4vVGVzdHMvTlBEZWFsbG9jYXRlQ2FsbGVkQmVmb3JlTlBTaHV0ZG93bi5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL05QRGVhbGxvY2F0ZUNh
bGxlZEJlZm9yZU5QU2h1dGRvd24uY3BwCkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIH0KICAgICB9OwogCi0gICAgdmlydHVhbCBOUEVycm9yIE5QUF9OZXcoTlBNSU1FVHlwZSBw
bHVnaW5UeXBlLCB1aW50MTZfdCBtb2RlLCBpbnQxNl90IGFyZ2MsIGNoYXIgKmFyZ25bXSwgY2hh
ciAqYXJndltdLCBOUFNhdmVkRGF0YSAqc2F2ZWQpCisgICAgdmlydHVhbCBOUEVycm9yIE5QUF9O
ZXcoTlBNSU1FVHlwZSwgdWludDE2X3QsIGludDE2X3QsIGNoYXIgKltdLCBjaGFyICpbXSwgTlBT
YXZlZERhdGEgKikKICAgICB7CiAgICAgICAgIHJlZ2lzdGVyTlBTaHV0ZG93bkZ1bmN0aW9uKHNo
dXRkb3duKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luL1Rlc3RzL05QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9OUFBTZXRXaW5kb3dD
YWxsZWREdXJpbmdEZXN0cnVjdGlvbi5jcHAKaW5kZXggYmE2MzI0My4uODg2NTAwNyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL05QUFNl
dFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvTlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVz
dHJ1Y3Rpb24uY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgYm9vbCBOUFBTZXRXaW5kb3dDYWxsZWRE
dXJpbmdEZXN0cnVjdGlvbjo6U2NyaXB0T2JqZWN0OjpoYXNNZXRob2QoTlBJZGVudGlmaWVyIG0K
ICAgICByZXR1cm4gbWV0aG9kTmFtZSA9PSBwbHVnaW5UZXN0KCktPk5QTl9HZXRTdHJpbmdJZGVu
dGlmaWVyKCJzZXRXaWxsQmVEZXN0cm95ZWQiKTsKIH0KIAotYm9vbCBOUFBTZXRXaW5kb3dDYWxs
ZWREdXJpbmdEZXN0cnVjdGlvbjo6U2NyaXB0T2JqZWN0OjppbnZva2UoTlBJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IE5QVmFyaWFudCosIHVpbnQzMl90LCBOUFZhcmlhbnQqKQorYm9vbCBO
UFBTZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbjo6U2NyaXB0T2JqZWN0OjppbnZva2Uo
TlBJZGVudGlmaWVyLCBjb25zdCBOUFZhcmlhbnQqLCB1aW50MzJfdCwgTlBWYXJpYW50KikKIHsK
ICAgICBhc3NlcnQoaWRlbnRpZmllciA9PSBwbHVnaW5UZXN0KCktPk5QTl9HZXRTdHJpbmdJZGVu
dGlmaWVyKCJzZXRXaWxsQmVEZXN0cm95ZWQiKSk7CiAgICAgc3RhdGljX2Nhc3Q8TlBQU2V0V2lu
ZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb24qPihwbHVnaW5UZXN0KCkpLT5zZXRXaWxsQmVEZXN0
cm95ZWQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBs
dWdJbi9UZXN0cy9OUFJ1bnRpbWVSZW1vdmVQcm9wZXJ0eS5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvTlBSdW50aW1lUmVtb3ZlUHJvcGVydHkuY3Bw
CmluZGV4IDBlZjYwYjYuLjVjZDc4N2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9OUFJ1bnRpbWVSZW1vdmVQcm9wZXJ0eS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL05QUnVudGlt
ZVJlbW92ZVByb3BlcnR5LmNwcApAQCAtMjMsNyArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaW5jbHVkZSA8Y29uZmlnLmg+CisKICNpbmNsdWRl
ICJQbHVnaW5UZXN0LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIApAQCAtNDMsOSArNDYsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0
dXJuIG1ldGhvZE5hbWUgPT0gcGx1Z2luVGVzdCgpLT5OUE5fR2V0U3RyaW5nSWRlbnRpZmllcigi
dGVzdFJlbW92ZVByb3BlcnR5Iik7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGludm9rZShO
UElkZW50aWZpZXIgbWV0aG9kTmFtZSwgY29uc3QgTlBWYXJpYW50KiBhcmd1bWVudHMsIHVpbnQz
Ml90IGFyZ3VtZW50Q291bnQsIE5QVmFyaWFudCogcmVzdWx0KQorICAgICAgICBib29sIGludm9r
ZShOUElkZW50aWZpZXIgbWV0aG9kbmFtZSwgY29uc3QgTlBWYXJpYW50KiBhcmd1bWVudHMsIHVp
bnQzMl90IGFyZ3VtZW50Q291bnQsIE5QVmFyaWFudCogcmVzdWx0KQogICAgICAgICB7Ci0gICAg
ICAgICAgICBhc3NlcnQobWV0aG9kTmFtZSA9PSBwbHVnaW5UZXN0KCktPk5QTl9HZXRTdHJpbmdJ
ZGVudGlmaWVyKCJ0ZXN0UmVtb3ZlUHJvcGVydHkiKSk7CisgICAgICAgICAgICBBU1NFUlRfVU5V
U0VEKG1ldGhvZG5hbWUsIG1ldGhvZE5hbWUgPT0gcGx1Z2luVGVzdCgpLT5OUE5fR2V0U3RyaW5n
SWRlbnRpZmllcigidGVzdFJlbW92ZVByb3BlcnR5IikpOwogCiAgICAgICAgICAgICBpZiAoYXJn
dW1lbnRDb3VudCAhPSAyKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9QYXNzRGlm
ZmVyZW50TlBQU3RydWN0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBs
dWdJbi9UZXN0cy9QYXNzRGlmZmVyZW50TlBQU3RydWN0LmNwcAppbmRleCBlNDY0OTk2Li4xMTI0
ODQ3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4v
VGVzdHMvUGFzc0RpZmZlcmVudE5QUFN0cnVjdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL1Bhc3NEaWZmZXJlbnROUFBTdHJ1Y3QuY3BwCkBA
IC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBO
UEVycm9yIE5QUF9TZXRXaW5kb3coTlBQIGluc3RhbmNlLCBOUFdpbmRvdyogd2luZG93KQorICAg
IHZpcnR1YWwgTlBFcnJvciBOUFBfU2V0V2luZG93KE5QUCBpbnN0YW5jZSwgTlBXaW5kb3cqKQog
ICAgIHsKICAgICAgICAgaWYgKG1fZGlkUmVjZWl2ZUluaXRpYWxTZXRXaW5kb3dDYWxsKQogICAg
ICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4uY3BwCmluZGV4IDU2MzkzNjIuLmJjZDc3ZmMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAK
QEAgLTQzOCwxMSArNDM4LDExIEBAIGludDMyX3QgTlBQX1dyaXRlKE5QUCBpbnN0YW5jZSwgTlBT
dHJlYW0gKnN0cmVhbSwgaW50MzJfdCBvZmZzZXQsIGludDMyX3QgbGVuLCB2CiAgICAgcmV0dXJu
IG9iai0+cGx1Z2luVGVzdC0+TlBQX1dyaXRlKHN0cmVhbSwgb2Zmc2V0LCBsZW4sIGJ1ZmZlcik7
CiB9CiAKLXZvaWQgTlBQX1N0cmVhbUFzRmlsZShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtICpzdHJl
YW0sIGNvbnN0IGNoYXIgKmZuYW1lKQordm9pZCBOUFBfU3RyZWFtQXNGaWxlKE5QUCwgTlBTdHJl
YW0gKiwgY29uc3QgY2hhciAqKQogewogfQogCi12b2lkIE5QUF9QcmludChOUFAgaW5zdGFuY2Us
IE5QUHJpbnQgKnBsYXRmb3JtUHJpbnQpCit2b2lkIE5QUF9QcmludChOUFAsIE5QUHJpbnQgKikK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRy
ZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApp
bmRleCAxY2VlM2M2Li5hZjY2OTBiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9EdW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1w
UmVuZGVyVHJlZVF0LmNwcApAQCAtMTIzLDggKzEyMyw4IEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCBib29sIGJlZ2luKFFQYWludERldmljZSopIHsgcmV0dXJuIHRydWU7IH0KICAgICAgICAg
dmlydHVhbCBib29sIGVuZCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICAgICAgdmlydHVhbCBRUGFp
bnRFbmdpbmU6OlR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIFFQYWludEVuZ2luZTo6VXNlcjsg
fQotICAgICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BpeG1hcChjb25zdCBRUmVjdEYmIHIsIGNvbnN0
IFFQaXhtYXAmIHBtLCBjb25zdCBRUmVjdEYmIHNyKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVN0YXRlKGNvbnN0IFFQYWludEVuZ2luZVN0YXRlJiBzdGF0ZSkgeyB9CisgICAgICAg
IHZpcnR1YWwgdm9pZCBkcmF3UGl4bWFwKGNvbnN0IFFSZWN0RiYsIGNvbnN0IFFQaXhtYXAmLCBj
b25zdCBRUmVjdEYmKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0YXRlKGNvbnN0
IFFQYWludEVuZ2luZVN0YXRlJikgeyB9CiAgICAgfTsKIAogICAgIHZpcnR1YWwgUVBhaW50RW5n
aW5lKiBwYWludEVuZ2luZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8TnVsbFBhaW50RW5n
aW5lKj4oJm1fZW5naW5lKTsgfQpAQCAtMzM5LDcgKzMzOSw3IEBAIGJvb2wgV2ViUGFnZTo6c3Vw
cG9ydHNFeHRlbnNpb24oUVdlYlBhZ2U6OkV4dGVuc2lvbiBleHRlbnNpb24pIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFdlYlBhZ2U6OmV4dGVuc2lvbihFeHRlbnNpb24gZXh0
ZW5zaW9uLCBjb25zdCBFeHRlbnNpb25PcHRpb24gKm9wdGlvbiwgRXh0ZW5zaW9uUmV0dXJuICpv
dXRwdXQpCitib29sIFdlYlBhZ2U6OmV4dGVuc2lvbihFeHRlbnNpb24sIGNvbnN0IEV4dGVuc2lv
bk9wdGlvbiAqb3B0aW9uLCBFeHRlbnNpb25SZXR1cm4gKm91dHB1dCkKIHsKICAgICBjb25zdCBR
V2ViUGFnZTo6RXJyb3JQYWdlRXh0ZW5zaW9uT3B0aW9uKiBpbmZvID0gc3RhdGljX2Nhc3Q8Y29u
c3QgUVdlYlBhZ2U6OkVycm9yUGFnZUV4dGVuc2lvbk9wdGlvbio+KG9wdGlvbik7CiAKQEAgLTM3
Niw3ICszNzYsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFZpZXdHZW9tZXRyeShjb25zdCBRUmVjdCYg
cmVjdCkKICAgICAgICAgdi0+c2V0R2VvbWV0cnkocmVjdCk7CiB9CiAKLVdlYlZpZXdHcmFwaGlj
c0Jhc2VkOjpXZWJWaWV3R3JhcGhpY3NCYXNlZChRV2lkZ2V0KiBwYXJlbnQpCitXZWJWaWV3R3Jh
cGhpY3NCYXNlZDo6V2ViVmlld0dyYXBoaWNzQmFzZWQoUVdpZGdldCopCiAgICAgOiBtX2l0ZW0o
bmV3IFFHcmFwaGljc1dlYlZpZXcpCiB7CiAgICAgc2V0U2NlbmUobmV3IFFHcmFwaGljc1NjZW5l
KHRoaXMpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVy
UXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5jcHAKaW5kZXgg
MWVjYjczOS4uNTY5ODI0MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZl
bnRTZW5kZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJR
dC5jcHAKQEAgLTYxNyw3ICs2MTcsNyBAQCBib29sIEV2ZW50U2VuZGVyOjpldmVudEZpbHRlcihR
T2JqZWN0KiB3YXRjaGVkLCBRRXZlbnQqIGV2ZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
dm9pZCBFdmVudFNlbmRlcjo6dGltZXJFdmVudChRVGltZXJFdmVudCogZXYpCit2b2lkIEV2ZW50
U2VuZGVyOjp0aW1lckV2ZW50KFFUaW1lckV2ZW50KikKIHsKICAgICBtX2NsaWNrVGltZXIuc3Rv
cCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmNwcAppbmRleCBmNjA2YjI4Li5kM2ZhNDEyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtNDY1LDcgKzQ2NSw3
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJv
b2wgZW5hYmxlKQogICAgIG1fZHJ0LT53ZWJQYWdlKCktPnNldHRpbmdzKCktPnNldEF0dHJpYnV0
ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRDYW5PcGVuV2luZG93cywgIWVuYWJsZSk7CiB9CiAK
LXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBsdWdpbnNFbmFibGVkKGJvb2wgZmxhZykK
K3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBsdWdpbnNFbmFibGVkKGJvb2wpCiB7CiAg
ICAgLy8gRklYTUU6IEltcGxlbWVudAogfQpAQCAtNDgxLDcgKzQ4MSw3IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgaXNLZXkpCiAgICAgbV9kcnQtPnN3
aXRjaEZvY3VzKGlzS2V5KTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TWFp
bkZyYW1lSXNGaXJzdFJlc3BvbmRlcihib29sIGlzRmlyc3QpCit2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGJvb2wpCiB7CiAgICAgLy9GSVhN
RTogb25seSBuZWVkIHRoaXMgZm9yIHRoZSBtb21lbnQ6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMjk5MAogfQpAQCAtNTY0LDEyICs1NjQsMTIgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpCiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKTsKIH0KIAotdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKGNv
bnN0IFFTdHJpbmcmIHVybCkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQXBwbGlj
YXRpb25DYWNoZUZvck9yaWdpbihjb25zdCBRU3RyaW5nJikKIHsKICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRvIHN1cHBvcnQgZGVsZXRpbmcgYWxsIGFwcGxpY2F0aW9uIGNhY2hlcyBmb3IgYW4g
b3JpZ2luLgogfQogCi1sb25nIGxvbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxvY2FsU3RvcmFn
ZURpc2tVc2FnZUZvck9yaWdpbihjb25zdCBRU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQorbG9u
ZyBsb25nIExheW91dFRlc3RDb250cm9sbGVyOjpsb2NhbFN0b3JhZ2VEaXNrVXNhZ2VGb3JPcmln
aW4oY29uc3QgUVN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0
IGdldHRpbmcgZGlzayB1c2FnZSBpbiBieXRlcyBmb3IgYW4gb3JpZ2luLgogICAgIHJldHVybiAw
OwpAQCAtNTgyLDcgKzU4Miw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvCiAgICAgbV90b3BM
b2FkaW5nRnJhbWUtPnNlY3VyaXR5T3JpZ2luKCkuc2V0QXBwbGljYXRpb25DYWNoZVF1b3RhKHF1
b3RhKTsKIH0KIAotbG9uZyBsb25nIExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNh
Y2hlRGlza1VzYWdlRm9yT3JpZ2luKGNvbnN0IFFTdHJpbmcmIG9yaWdpbikKK2xvbmcgbG9uZyBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihj
b25zdCBRU3RyaW5nJikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgZ2V0
dGluZyBkaXNrIHVzYWdlIGJ5IGFsbCBhcHBsaWNhdGlvbiBjYWNoZXMgZm9yIGFuIG9yaWdpbi4K
ICAgICByZXR1cm4gMDsKQEAgLTU5NCw3ICs1OTQsNyBAQCBRU3RyaW5nTGlzdCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKCkKICAgICByZXR1cm4gUVN0
cmluZ0xpc3QoKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Q2FjaGVNb2Rl
bChpbnQgbW9kZWwpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRDYWNoZU1vZGVsKGlu
dCkKIHsKICAgICAvLyBxd2Vic2V0dGluZyBkb2Vzbid0IGhhdmUgbWF0Y2hlZCBzZXR0aW5nIHll
dCA6CiAgICAgLy8gV0VCS0lUX0NBQ0hFX01PREVMX0RPQ1VNRU5UX1ZJRVdFUgpAQCAtODQ5LDcg
Kzg0OSw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvCiAgICAgICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihwYWdlLCBsYXRpdHVkZSwgbG9u
Z2l0dWRlLCBhY2N1cmFjeSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1v
Y2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBRU3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRl
bmNlLCBjb25zdCBRU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBRU3RyaW5nJiwgZG91YmxlLCBjb25zdCBR
U3RyaW5nJikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBzcGVlY2ggaW5wdXQgbGF5
b3V0IHRlc3RzLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzk0ODUuCkBAIC05MTksMTIgKzkxOSwxMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpkZWxldGVBbGxMb2NhbFN0b3JhZ2UoKQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiB9
CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRlbGV0ZUxvY2FsU3RvcmFnZUZvck9yaWdp
bihjb25zdCBRU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQordm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6ZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKGNvbnN0IFFTdHJpbmcmKQogewogICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQuCiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om9i
c2VydmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnModW5zaWduZWQgbnVtYmVyKQordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6b2JzZXJ2ZVN0b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucyh1
bnNpZ25lZCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvUXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybyBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIv
UXRUZXN0QnJvd3Nlci5wcm8KaW5kZXggYTc4MjZlNS4uZjY3MTYzMiAxMDA2NDQKLS0tIGEvVG9v
bHMvUXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybworKysgYi9Ub29scy9RdFRlc3RCcm93
c2VyL1F0VGVzdEJyb3dzZXIucHJvCkBAIC0yNyw2ICsyNyw3IEBAIEhFQURFUlMgKz0gXAogaXNF
bXB0eShPVVRQVVRfRElSKTogT1VUUFVUX0RJUiA9IC4uLy4uCiBpbmNsdWRlKC4uLy4uL1NvdXJj
ZS9XZWJLaXQucHJpKQogSU5DTFVERVBBVEggKz0gLi4vLi4vU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydAorSU5DTFVERVBBVEggKz0gLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlCiAK
IERFU1RESVIgPSAkJE9VVFBVVF9ESVIvYmluCiAhQ09ORklHKHN0YW5kYWxvbmVfcGFja2FnZSk6
IENPTkZJRyAtPSBhcHBfYnVuZGxlCmRpZmYgLS1naXQgYS9Ub29scy9RdFRlc3RCcm93c2VyL2xh
dW5jaGVyd2luZG93LmNwcCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuY3Bw
CmluZGV4IGVkYzgzMzguLjJhNzc4N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIv
bGF1bmNoZXJ3aW5kb3cuY3BwCisrKyBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5k
b3cuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8UU1lc3NhZ2VCb3g+CiAjaW5jbHVk
ZSA8UU5ldHdvcmtSZXBseT4KICNlbmRpZgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgog
CiBjb25zdCBpbnQgZ0V4aXRDbGlja0FyZWEgPSA4MDsKIFFWZWN0b3I8aW50PiBMYXVuY2hlcldp
bmRvdzo6bV96b29tTGV2ZWxzOwpAQCAtNTEyLDYgKzUxMyw4IEBAIHZvaWQgTGF1bmNoZXJXaW5k
b3c6OmdyYWJab29tS2V5cyhib29sIGdyYWIpCiAKICAgICB1bnNpZ25lZCBsb25nIHZhbCA9IChn
cmFiKSA/IDEgOiAwOwogICAgIFhDaGFuZ2VQcm9wZXJ0eShRWDExSW5mbzo6ZGlzcGxheSgpLCB3
aW5JZCgpLCBhdG9tLCBYQV9JTlRFR0VSLCAzMiwgUHJvcE1vZGVSZXBsYWNlLCByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkIGNoYXIqPigmdmFsKSwgMSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShncmFiKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Ub29scy9RdFRlc3RCcm93c2VyL3dl
YnBhZ2UuY3BwIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcAppbmRleCA5MDg4Y2Uy
Li5jODYzZTBhIDEwMDY0NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwCisr
KyBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvd2VicGFnZS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgYm9v
bCBXZWJQYWdlOjpzdXBwb3J0c0V4dGVuc2lvbihRV2ViUGFnZTo6RXh0ZW5zaW9uIGV4dGVuc2lv
bikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgV2ViUGFnZTo6ZXh0ZW5zaW9u
KEV4dGVuc2lvbiBleHRlbnNpb24sIGNvbnN0IEV4dGVuc2lvbk9wdGlvbiogb3B0aW9uLCBFeHRl
bnNpb25SZXR1cm4qIG91dHB1dCkKK2Jvb2wgV2ViUGFnZTo6ZXh0ZW5zaW9uKEV4dGVuc2lvbiwg
Y29uc3QgRXh0ZW5zaW9uT3B0aW9uKiBvcHRpb24sIEV4dGVuc2lvblJldHVybiogb3V0cHV0KQog
ewogICAgIGNvbnN0IFFXZWJQYWdlOjpFcnJvclBhZ2VFeHRlbnNpb25PcHRpb24qIGluZm8gPSBz
dGF0aWNfY2FzdDxjb25zdCBRV2ViUGFnZTo6RXJyb3JQYWdlRXh0ZW5zaW9uT3B0aW9uKj4ob3B0
aW9uKTsKICAgICBRV2ViUGFnZTo6RXJyb3JQYWdlRXh0ZW5zaW9uUmV0dXJuKiBlcnJvclBhZ2Ug
PSBzdGF0aWNfY2FzdDxRV2ViUGFnZTo6RXJyb3JQYWdlRXh0ZW5zaW9uUmV0dXJuKj4ob3V0cHV0
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>