<?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>11963</bug_id>
          
          <creation_ts>2006-12-24 17:55:53 -0800</creation_ts>
          <short_desc>Fix JS wrappers for SVG Lists operating on POD types</short_desc>
          <delta_ts>2006-12-25 16:54:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>39856</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-12-24 17:55:53 -0800</bug_when>
    <thetext>Currently, the JS wrapping for SVG Lists works, but not &quot;readwrite&quot;. Writing
mySVGPointList.getItem(0).x = 10; didn&apos;t take any effect. The JS wrappers are
functional, though the changes end up in nirvana. Attaching patch soon to fix it.

This makes the carto.net SVG examples work much better, the text positioning
from JS works now! (there is another bug report for it, which can be closed too, then)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39857</commentid>
    <comment_count>1</comment_count>
      <attachid>12013</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-12-24 18:00:12 -0800</bug_when>
    <thetext>Created attachment 12013
Initial patch

The attached patch, also fixes bug 11123:
http://bugs.webkit.org/show_bug.cgi?id=11123</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39852</commentid>
    <comment_count>2</comment_count>
      <attachid>12014</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-12-24 18:07:16 -0800</bug_when>
    <thetext>Created attachment 12014
Updated patch

Missing bug references in the ChangeLogs, fixed. Noticed by ddkilzer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39801</commentid>
    <comment_count>3</comment_count>
      <attachid>12014</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2006-12-25 16:53:37 -0800</bug_when>
    <thetext>Comment on attachment 12014
Updated patch

r=me, with the formatting only patch pulled out, as discussed in irc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39799</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-12-25 16:54:13 -0800</bug_when>
    <thetext>Landed in r18415.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12013</attachid>
            <date>2006-12-24 18:00:12 -0800</date>
            <delta_ts>2006-12-24 18:07:16 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>FixSVGPODLists.diff</filename>
            <type>text/plain</type>
            <size>69238</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NDEyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDYtMTItMjUgIE5pa29sYXMgWmltbWVybWFu
biAgPHppbW1lcm1hbm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXhlczoKKworICAgICAgICBBZGRpbmcgdHdvIG5ldyB0ZXN0Y2Fz
ZXMgZGVtb25zdHJhdGluZyB0aGUgd29ya2luZyBKUyBTVkdQT0RMaXN0IHdyYXBwZXJzLgorCisg
ICAgICAgICogc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1jaGFuZ2VzLWV4cGVjdGVkLmNo
ZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLWNo
YW5nZXMtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2pzLXVwZGF0
ZS1wb2x5Z29uLWNoYW5nZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3Vz
dG9tL2pzLXVwZGF0ZS1wb2x5Z29uLWNoYW5nZXMuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
Y3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLXJlbW92YWwtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgorICAgICAgICAqIHN2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tcmVtb3ZhbC1leHBlY3Rl
ZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tcmVt
b3ZhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vanMtdXBkYXRl
LXBvbHlnb24tcmVtb3ZhbC5zdmc6IEFkZGVkLgorCiAyMDA2LTEyLTI0ICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYuCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLWNoYW5nZXMtZXhwZWN0ZWQuY2hl
Y2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9s
eWdvbi1jaGFuZ2VzLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1jaGFuZ2VzLWV4cGVjdGVkLmNoZWNrc3Vt
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACisyYzA1YmZmZjU1ODQ4OGI5Njk5YTk5ZWQ5MTYy
MDA2ZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9j
dXN0b20vanMtdXBkYXRlLXBvbHlnb24tY2hhbmdlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1jaGFuZ2VzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRl
LXBvbHlnb24tY2hhbmdlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBA
QAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtzdmd9IGF0ICgyNjUuMjAsMjA5LjYx
KSBzaXplIDE2MS4xNXgxMDQuMzkKKyAgICAgIFJlbmRlclBhdGgge3BvbHlnb259IGF0ICgyNjUu
MjAsMjA5LjYxKSBzaXplIDE2MS4xNXgxMDQuMzkgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDBGRjAwXSBbc3Ryb2tlIHdpZHRoPTguMDBdfV0gW2RhdGE9Ik0yNzAuMDAsMjU1LjAwTDMw
MC4wMCwyNzUuMDBMMzIwLjAwLDI1NS4wMEwzNDAuMDAsMjc1LjAwTDI4MC4wMCwzMTAuMDBMMzkw
LjAwLDMxMC4wMEw0MjAuMDAsMjcwLjAwTDI4MC4wMCwyMTUuMDAiXQpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1jaGFuZ2VzLnN2Zwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLWNoYW5nZXMuc3ZnCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1j
aGFuZ2VzLnN2ZwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBz
dmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMjAwMTA5MDQvL0VOIiAiaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwMS9SRUMtU1ZHLTIwMDEwOTA0L0RURC9zdmcxMC5kdGQiPgorPHN2ZyB3aWR0aD0i
NDUwIiBoZWlnaHQ9IjQ1MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKwor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCit3aW5kb3cuc2V0VGltZW91dCgiY2xpY2tO
b3coKSIsIDApOworCitmdW5jdGlvbiBjbGlja05vdygpIHsKKyAgICBpZiAod2luZG93LmV2ZW50
U2VuZGVyKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDI3MCwgMjY1KTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIG1vdXNlSGFuZGxlcihldnQpCit7CisgICAgdmFyIHBvbHkgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicG9seWdvbiIpOworICAgIHZhciBuciA9IHBvbHkucG9pbnRzLm51bWJlck9m
SXRlbXM7CisgICAgZm9yKGkgPSAwOyBpICZsdDsgbnI7IGkrKykgeworICAgICAgICB2YXIgcCA9
IHBvbHkucG9pbnRzLmdldEl0ZW0oaSk7CisgICAgICAgIHAueSA9IHAueSAtIDEwOworICAgIH0K
K30KKzwvc2NyaXB0PgorCis8cG9seWdvbiBpZD0icG9seWdvbiIgb25jbGljaz0ibW91c2VIYW5k
bGVyKGV2dCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwRkYwMCIgc3Ryb2tlLXdpZHRoPSI4IiBw
b2ludHM9IjI3MCwyNjUgMzAwLDI4NSAzMjAsMjY1IDM0MCwyODUgMjgwLDMyMCAzOTAsMzIwIDQy
MCwyODAgMjgwLDIyNSIvPgorCis8L3N2Zz4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20v
anMtdXBkYXRlLXBvbHlnb24tcmVtb3ZhbC1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLXJlbW92YWwtZXhwZWN0
ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVw
ZGF0ZS1wb2x5Z29uLXJlbW92YWwtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEgQEAKK2Y2NTRkOTc0YzM4MWFkMGIxNTQzNDkyYjBhYzdiOWQxClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9s
eWdvbi1yZW1vdmFsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLXJlbW92YWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1yZW1vdmFsLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5k
ZXJTVkdDb250YWluZXIge3N2Z30gYXQgKDI2NS4yMCwyNTkuMzQpIHNpemUgMTYyLjI1eDY0LjY2
CisgICAgICBSZW5kZXJQYXRoIHtwb2x5Z29ufSBhdCAoMjY1LjIwLDI1OS4zNCkgc2l6ZSAxNjIu
MjV4NjQuNjYgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBGRjAwXSBbc3Ryb2tlIHdp
ZHRoPTguMDBdfV0gW2RhdGE9Ik0yNzAuMDAsMjY1LjAwTDMwMC4wMCwyODUuMDBMMzIwLjAwLDI2
NS4wMEwzNDAuMDAsMjg1LjAwTDI4MC4wMCwzMjAuMDBMMzkwLjAwLDMyMC4wMEw0MjAuMDAsMjgw
LjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tcmVt
b3ZhbC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUt
cG9seWdvbi1yZW1vdmFsLnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0
b20vanMtdXBkYXRlLXBvbHlnb24tcmVtb3ZhbC5zdmcJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiIHN0YW5kYWxv
bmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0
Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQvc3Zn
MTAuZHRkIj4KKzxzdmcgd2lkdGg9IjQ1MCIgaGVpZ2h0PSI0NTAiIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyI+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKword2lu
ZG93LnNldFRpbWVvdXQoImNsaWNrTm93KCkiLCAwKTsKKworZnVuY3Rpb24gY2xpY2tOb3coKSB7
CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbygyNzAsIDI2NSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBtb3VzZUhhbmRsZXIoZXZ0KQoreworICAgIHZh
ciBwb2x5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvbHlnb24iKTsKKyAgICBwb2x5LnBv
aW50cy5yZW1vdmVJdGVtKHBvbHkucG9pbnRzLm51bWJlck9mSXRlbXMgLSAxKTsKK30KKzwvc2Ny
aXB0PgorCis8cG9seWdvbiBpZD0icG9seWdvbiIgb25jbGljaz0ibW91c2VIYW5kbGVyKGV2dCki
IGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwRkYwMCIgc3Ryb2tlLXdpZHRoPSI4IiBwb2ludHM9IjI3
MCwyNjUgMzAwLDI4NSAzMjAsMjY1IDM0MCwyODUgMjgwLDMyMCAzOTAsMzIwIDQyMCwyODAgMjgw
LDIyNSIvPgorCis8L3N2Zz4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODcgQEAKKzIwMDYtMTItMjUgIE5pa29sYXMgWmlt
bWVybWFubiAgPHppbW1lcm1hbm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlczoKKworICAgICAgICBGaXggU1ZHTGlzdCBKUyB3
cmFwcGVycywgd2hpY2ggb3BlcmF0ZSBvbiBQT0QgdHlwZXMgKGllLiBQb2ludCkuCisgICAgICAg
IFRoZXJlIGV4aXN0cyBhIHNwZWNpYWwgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0
IGNsYXNzIG5vdywKKyAgICAgICAgd2hpY2ggb3BlcmF0b3JzIG9uIHNwZWNpYWxpemVkIFNWR1BP
RExpc3Qncy4gSXQgbWFrZXMgaXQgcG9zc2libGUKKyAgICAgICAgdG8gc3VwcG9ydCBzdHVmZiBs
aWtlICJteUxpc3QuZ2V0SXRlbSgwKS52YWx1ZSA9IDIwMCIsIGZvciBQT0QgbGlzdHMuCisKKyAg
ICAgICAgQWRkaW5nIHR3byBuZXcgdGVzdGNhc2VzIGRlbW9uc3RyYXRpbmcgdGhlIHVzYWdlIG9m
IFNWRyBET00gJiBTVkdBbmltYXRlZFBvaW50cy4KKworICAgICAgICAqIFdlYkNvcmUucHJvOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1NWR1BPRFR5cGVXcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1NW
R1BPRFR5cGVXcmFwcGVyQ3JlYXRvckZvckxpc3Q6OkpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9y
Rm9yTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvckZv
ckxpc3Q6On5KU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvckZvckxpc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0Ojpjb21taXRDaGFuZ2UpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dXBkYXRlUGF0aFNlZ0NvbnRleHRNYXApOgorICAgICAgICAoV2ViQ29yZTo6
cmVtb3ZlRnJvbVBhdGhTZWdDb250ZXh0TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUGF0
aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUGF0aFNlZ0xpc3Q6Omlu
aXRpYWxpemUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BvaW50TGlzdDo6Y2xlYXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTVkdQb2ludExpc3Q6OmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNTVkdQb2ludExpc3Q6OmdldEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQ
b2ludExpc3Q6Omluc2VydEl0ZW1CZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQb2lu
dExpc3Q6OnJlcGxhY2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUG9pbnRMaXN0Ojpy
ZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUG9pbnRMaXN0OjphcHBlbmRJdGVt
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAg
ICAgKiBrc3ZnMi9taXNjL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpiYXNlVmFsdWVNYXApOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpnZW5lcmljQ29udGV4dE1hcCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVuc2lvbnM6OmdlbmVyaWNDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0RvY3VtZW50RXh0ZW5zaW9uczo6c2V0R2VuZXJpY0NvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpyZW1vdmVHZW5lcmljQ29udGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVuc2lvbnM6Omhhc0dlbmVyaWND
b250ZXh0KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHA6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuaDoKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmlt
YXRlZFBvaW50cy5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xlbmd0aExpc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdDo6cGFyc2UpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdM
ZW5ndGhMaXN0Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xpc3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BPRExpc3RJdGVtOjpTVkdQT0RMaXN0SXRlbSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQT0RMaXN0SXRlbTo6b3BlcmF0b3IgSXRlbSYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UE9ETGlzdEl0ZW06Om9wZXJhdG9yIGNvbnN0IEl0ZW0mKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BPRExpc3RJdGVtOjp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQT0RMaXN0SXRlbTo6
c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUE9ETGlzdDo6U1ZHUE9ETGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQT0RMaXN0Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BPRExpc3Q6OmdldEZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BPRExpc3Q6
OmdldExhc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUE9ETGlzdDo6Z2V0SXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQT0RMaXN0OjppbnNlcnRJdGVtQmVmb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BPRExpc3Q6OnJlcGxhY2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BP
RExpc3Q6OnJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUE9ETGlzdDo6YXBwZW5k
SXRlbSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaXN0LmlkbDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHUG9pbnRMaXN0LmNwcDoKKyAgICAgICAgKFNWR1BvaW50TGlzdDo6U1ZH
UG9pbnRMaXN0KToKKyAgICAgICAgKFNWR1BvaW50TGlzdDo6Y29udGV4dCk6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2ludExp
c3QuaWRsOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6U1ZHUG9seUVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUG9seUVsZW1lbnQ6OnBvaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5
RWxlbWVudDo6YW5pbWF0ZWRQb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVt
ZW50Ojpub3RpZnlBdHRyaWJ1dGVDaGFuZ2UpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2x5
RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2x5Z29uRWxlbWVudDo6dG9QYXRoRGF0YSk6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R1BvbHlsaW5lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5bGluZUVsZW1l
bnQ6OnRvUGF0aERhdGEpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisKIDIwMDYtMTItMjQg
IE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1h
Y2llaiBhbmQgR2VvZmYuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDE4NDEyKQorKysgV2ViQ29yZS9XZWJDb3Jl
LnBybwkod29ya2luZyBjb3B5KQpAQCAtODI4LDYgKzgyOCw3IEBAIGNvbnRhaW5zKERFRklORVMs
IFNWR19TVVBQT1JUPTEpIHsKICAgICAgICAgYmluZGluZ3MvanMvSlNTVkdNYXRyaXhDdXN0b20u
Y3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcCBcCiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwIFwKKyAgICAgICAgYmlu
ZGluZ3MvanMvSlNTVkdQb2ludExpc3RDdXN0b20uY3BwIFwKICAgICAgICAga3N2ZzIvY3NzL1NW
R0NTU1BhcnNlci5jcHAgXAogICAgICAgICBrc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5bGVEZWZzLmNw
cCBcCiAgICAgICAgIGtzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZS5jcHAgXApJbmRleDogV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE4NDEyKQorKysg
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTIyMTgsNiArMjIxOCw3IEBACiAJCUFCRERGRTdBMEE1QzZFNzAwMEEzRTExRCAvKiBSZW5k
ZXJNZW51TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUJEREZFNzQwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggKi87IH07CiAJ
CUIyMDExMTA3MEFCNzc0MDUwMERCMEU2OCAvKiBKU1NWR0FFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMDExMTA1MEFCNzc0MDUwMERC
MEU2OCAvKiBKU1NWR0FFbGVtZW50LmNwcCAqLzsgfTsKIAkJQjIwMTExMDgwQUI3NzQwNTAwREIw
RTY4IC8qIEpTU1ZHQUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyMDExMTA2MEFCNzc0MDUwMERCMEU2OCAvKiBKU1NWR0FFbGVtZW50Lmgg
Ki87IH07CisJCUIyMDgwQTEyMEIzQ0EzQjYwMDEyMDg1MiAvKiBKU1NWR1BvaW50TGlzdEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjA4
MEExMTBCM0NBM0I2MDAxMjA4NTIgLyogSlNTVkdQb2ludExpc3RDdXN0b20uY3BwICovOyB9Owog
CQlCMjA5NjRCRjBBQjc2RUY2MDBFNEM3NDAgLyogU1ZHQW5nbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIwOTY0QkQwQUI3NkVGNjAwRTRDNzQw
IC8qIFNWR0FuZ2xlLmNwcCAqLzsgfTsKIAkJQjIwOTY0QzAwQUI3NkVGNjAwRTRDNzQwIC8qIFNW
R0FuZ2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MjA5NjRCRTBBQjc2RUY2MDBFNEM3NDAgLyogU1ZHQW5nbGUuaCAqLzsgfTsKIAkJQjIxMTI3QTYw
QjMxODY3NzAwMDlCRTUzIC8qIEpTU1ZHUE9EVHlwZVdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMTEyN0E1MEIzMTg2NzcwMDA5QkU1MyAv
KiBKU1NWR1BPRFR5cGVXcmFwcGVyLmggKi87IH07CkBAIC01MTg4LDYgKzUxODksNyBAQAogCQlB
QkRERkU3NDBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlck1lbnVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUIyMDExMTA1MEFCNzc0MDUwMERCMEU2OCAvKiBKU1NWR0FFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR0FFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIwMTExMDYwQUI3NzQwNTAwREIwRTY4
IC8qIEpTU1ZHQUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
U1ZHQUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjIwODBBMTEwQjND
QTNCNjAwMTIwODUyIC8qIEpTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR1BvaW50TGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMDk2NEJEMEFCNzZFRjYwMEU0Qzc0MCAvKiBTVkdBbmds
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5nbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjA5NjRCRTBBQjc2RUY2MDBFNEM3NDAg
LyogU1ZHQW5nbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuZ2xl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMTEyN0E1MEIzMTg2NzcwMDA5QkU1
MyAvKiBKU1NWR1BPRFR5cGVXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1NWR1BPRFR5cGVXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04NjY5LDYgKzg2NzEsNyBAQAogCQkJCUIyQzk2RDhDMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NW
R1BhdGhTZWdDdXN0b20uY3BwICovLAogCQkJCUIyOTdCQzZGMEIzQzE0Q0YwMDQ1QTU5MCAvKiBK
U1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQlCMjExMjdBNTBCMzE4Njc3MDAwOUJF
NTMgLyogSlNTVkdQT0RUeXBlV3JhcHBlci5oICovLAorCQkJCUIyMDgwQTExMEIzQ0EzQjYwMDEy
MDg1MiAvKiBKU1NWR1BvaW50TGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJMUE3NTBFMzMwQTkwRjg5
RjAwMEZGMjE1IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi8sCiAJCQkJOTNCNzBENDEwOUVC
MEM3QzAwOUQ4NDY4IC8qIEpTWE1MSHR0cFJlcXVlc3QuY3BwICovLAogCQkJCTkzQjcwRDQyMDlF
QjBDN0MwMDlEODQ2OCAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggKi8sCkBAIC0xMjE3Nyw2ICsxMjE4
MCw3IEBACiAJCQkJQjIzQkNDRTUwQjM4MjlDOTAwNUIyNDE1IC8qIEltYWdlQnVmZmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyQzk2RDhEMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NWR1BhdGhT
ZWdDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI5N0JDNzAwQjNDMTRDRjAwNDVBNTkw
IC8qIEpTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjIwODBB
MTIwQjNDQTNCNjAwMTIwODUyIC8qIEpTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BPRFR5cGVXcmFwcGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BPRFR5cGVXcmFwcGVyLmgJKHJl
dmlzaW9uIDE4NDEyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BPRFR5cGVXcmFwcGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpZmRlZiBTVkdfU1VQUE9SVAog
CiAjaW5jbHVkZSAiU2hhcmVkLmgiCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgorCiAj
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUs
NyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICBvcGVyYXRvciBQT0RUeXBlJigpIHsgcmV0dXJuIG1f
cG9kVHlwZTsgfQogCi0gICAgLy8gSW1wbGVtZW50ZWQgYnkgSlNTVkdQT0RUeXBlV3JhcHBlckNy
ZWF0b3IgICAgCisgICAgLy8gSW1wbGVtZW50ZWQgYnkgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0
b3IKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdlKCkgeyB9CiAKIHByaXZhdGU6CkBAIC03
NSw2ICs3NywzOCBAQCBwcml2YXRlOgogICAgIFNldHRlck1ldGhvZCBtX3NldHRlcjsKIH07CiAK
K3RlbXBsYXRlPHR5cGVuYW1lIFBPRFR5cGU+CitjbGFzcyBTVkdQT0RMaXN0SXRlbTsKKwordGVt
cGxhdGU8dHlwZW5hbWUgUE9EVHlwZSwgdHlwZW5hbWUgTGlzdFR5cGU+CitjbGFzcyBKU1NWR1BP
RFR5cGVXcmFwcGVyQ3JlYXRvckZvckxpc3QgOiBwdWJsaWMgSlNTVkdQT0RUeXBlV3JhcHBlckNy
ZWF0b3I8UE9EVHlwZSwgU1ZHUE9ETGlzdEl0ZW08UE9EVHlwZT4gPgoreworcHVibGljOgorICAg
IEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdChTVkdQT0RMaXN0SXRlbTxQT0RUeXBl
PiogY3JlYXRvciwgY29uc3QgTGlzdFR5cGUqIGxpc3QpCisgICAgOiBKU1NWR1BPRFR5cGVXcmFw
cGVyQ3JlYXRvcjxQT0RUeXBlLCBTVkdQT0RMaXN0SXRlbTxQT0RUeXBlPiA+KGNyZWF0b3IsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZTVkdQT0RMaXN0SXRlbTxQT0RUeXBlPjo6dmFsdWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZT
VkdQT0RMaXN0SXRlbTxQT0RUeXBlPjo6c2V0VmFsdWUpCisgICAgLCBtX2xpc3QobGlzdCkKKyAg
ICB7IH0KKworICAgIHZpcnR1YWwgfkpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdCgp
IHsgfQorCisgICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZSgpCisgICAgeworICAgICAgICAv
LyBVcGRhdGUgUE9EIGl0ZW0gd2l0aGluIFNWR0xpc3QKKyAgICAgICAgSlNTVkdQT0RUeXBlV3Jh
cHBlckNyZWF0b3I8UE9EVHlwZSwgU1ZHUE9ETGlzdEl0ZW08UE9EVHlwZT4gPjo6Y29tbWl0Q2hh
bmdlKCk7CisKKyAgICAgICAgLy8gTm90aWZ5IG93bmVyIG9mIHRoZSBsaXN0LCB0aGF0IGl0J3Mg
Y29udGVudCBjaGFuZ2VkCisgICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQg
PSBtX2xpc3QtPmNvbnRleHQoKTsKKyAgICAgICAgQVNTRVJUKGNvbnRleHQpOworCisgICAgICAg
IGNvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOyAgICAgICAgIAorICAgIH0KKworcHJp
dmF0ZToKKyAgICBjb25zdCBMaXN0VHlwZSogbV9saXN0OworfTsKKwogfTsKIAogI2VuZGlmIC8v
IFNWR19TVVBQT1JUCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RD
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRoU2Vn
TGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDE4NDEyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTIgKzQ4LDEw
IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVBhdGhTZWdDb250ZXh0TWFwKEV4ZWMKICAgICAvLyBVcGRh
dGUgdGhlIFNWR1BhdGhTZWcqIGhhc2htYXAsIHNvIHRoYXQgdGhlIEpTU1ZHUGF0aFNlZyogd3Jh
cHBlcnMsIGNhbiBhY2Nlc3MgdGhlIGNvbnRleHQgZWxlbWVudAogICAgIFNWR0RvY3VtZW50RXh0
ZW5zaW9ucyogZXh0ZW5zaW9ucyA9IChhY3RpdmVGcmFtZS0+ZG9jdW1lbnQoKSA/IGFjdGl2ZUZy
YW1lLT5kb2N1bWVudCgpLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkgOiAwKTsKICAgICBpZiAoZXh0
ZW5zaW9ucykgewotICAgICAgICBpZiAoZXh0ZW5zaW9ucy0+aGFzUGF0aFNlZ0NvbnRleHQob2Jq
KSkgewotICAgICAgICAgICAgQVNTRVJUKGV4dGVuc2lvbnMtPnBhdGhTZWdDb250ZXh0KG9iaikg
PT0gY29udGV4dCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBl
eHRlbnNpb25zLT5zZXRQYXRoU2VnQ29udGV4dChvYmosIGNvbnRleHQpOworICAgICAgICBpZiAo
ZXh0ZW5zaW9ucy0+aGFzR2VuZXJpY0NvbnRleHQ8U1ZHUGF0aFNlZz4ob2JqKSkKKyAgICAgICAg
ICAgIEFTU0VSVChleHRlbnNpb25zLT5nZW5lcmljQ29udGV4dDxTVkdQYXRoU2VnPihvYmopID09
IGNvbnRleHQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBleHRlbnNpb25zLT5zZXRHZW5l
cmljQ29udGV4dDxTVkdQYXRoU2VnPihvYmosIGNvbnRleHQpOwogICAgIH0KIAogICAgIGNvbnRl
eHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwpAQCAtNzEsMTMgKzY5LDQzIEBAIHN0YXRpYyB2
b2lkIHJlbW92ZUZyb21QYXRoU2VnQ29udGV4dE1hcCgKIAogICAgIFNWR0RvY3VtZW50RXh0ZW5z
aW9ucyogZXh0ZW5zaW9ucyA9IChhY3RpdmVGcmFtZS0+ZG9jdW1lbnQoKSA/IGFjdGl2ZUZyYW1l
LT5kb2N1bWVudCgpLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkgOiAwKTsKICAgICBpZiAoZXh0ZW5z
aW9ucykgewotICAgICAgICBpZiAoZXh0ZW5zaW9ucy0+aGFzUGF0aFNlZ0NvbnRleHQob2JqKSkK
LSAgICAgICAgICAgIGV4dGVuc2lvbnMtPnJlbW92ZVBhdGhTZWdDb250ZXh0KG9iaik7CisgICAg
ICAgIGlmIChleHRlbnNpb25zLT5oYXNHZW5lcmljQ29udGV4dDxTVkdQYXRoU2VnPihvYmopKQor
ICAgICAgICAgICAgZXh0ZW5zaW9ucy0+cmVtb3ZlR2VuZXJpY0NvbnRleHQ8U1ZHUGF0aFNlZz4o
b2JqKTsKICAgICB9CiAKICAgICBjb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKIH0K
IAorSlNWYWx1ZSogSlNTVkdQYXRoU2VnTGlzdDo6Y2xlYXIoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBMaXN0JiBhcmdzKQoreworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworCisgICAgU1ZHUGF0
aFNlZ0xpc3QqIGltcCA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0Kj4oaW1wbCgpKTsKKwor
ICAgIHVuc2lnbmVkIGludCBuciA9IGltcC0+bnVtYmVyT2ZJdGVtcygpOworICAgIGZvciAodW5z
aWduZWQgaW50IGkgPSAwOyBpIDwgbnI7IGkrKykKKyAgICAgICAgcmVtb3ZlRnJvbVBhdGhTZWdD
b250ZXh0TWFwKGV4ZWMsIGltcCwgaW1wLT5nZXRJdGVtKGksIGVjKS5nZXQoKSk7CisKKyAgICBp
bXAtPmNsZWFyKGVjKTsKKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworfQorCitKU1ZhbHVlKiBKU1NWR1BhdGhTZWdMaXN0Ojppbml0aWFs
aXplKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCYgYXJncykKK3sKKyAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKKyAgICBTVkdQYXRoU2VnKiBuZXdJdGVtID0gdG9TVkdQYXRoU2VnKGFyZ3Nb
MF0pOworCisgICAgU1ZHUGF0aFNlZ0xpc3QqIGltcCA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdM
aXN0Kj4oaW1wbCgpKTsKKworICAgIFNWR1BhdGhTZWcqIG9iaiA9IFdURjo6Z2V0UHRyKGltcC0+
aW5pdGlhbGl6ZShuZXdJdGVtLCBlYykpOworICAgIHVwZGF0ZVBhdGhTZWdDb250ZXh0TWFwKGV4
ZWMsIGltcCwgb2JqKTsKKworICAgIEtKUzo6SlNWYWx1ZSogcmVzdWx0ID0gdG9KUyhleGVjLCBv
YmopOworICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKwogSlNWYWx1ZSogSlNTVkdQYXRoU2VnTGlzdDo6Z2V0SXRlbShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IExpc3QmIGFyZ3MpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQb2ludExpc3RDdXN0b20uY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBOaWtv
bGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0
b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZmRlZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIkpTU1ZHUG9pbnRMaXN0LmgiCisKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNTVkdQb2ludC5o
IgorI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgorI2luY2x1ZGUgIlNWR1BvaW50
TGlzdC5oIgorI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBLSlM7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworSlNWYWx1ZSogSlNTVkdQb2ludExpc3Q6OmNsZWFyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgTGlzdCYpCit7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisKKyAgICBTVkdQb2ludExp
c3QqIGltcCA9IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdCo+KGltcGwoKSk7CisgICAgaW1wLT5j
bGVhcihlYyk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKworICAgIEFTU0VSVChp
bXAtPmNvbnRleHQoKSk7CisgICAgaW1wLT5jb250ZXh0KCktPm5vdGlmeUF0dHJpYnV0ZUNoYW5n
ZSgpOworCisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK0pTVmFsdWUqIEpTU1ZHUG9p
bnRMaXN0Ojppbml0aWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCYgYXJncykKK3sK
KyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBGbG9hdFBvaW50IG5ld0l0ZW0gPSB0b1NW
R1BvaW50KGFyZ3NbMF0pOworCisgICAgU1ZHUG9pbnRMaXN0KiBpbXAgPSBzdGF0aWNfY2FzdDxT
VkdQb2ludExpc3QqPihpbXBsKCkpOworICAgIFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVt
PEZsb2F0UG9pbnQ+ID4gPiogbGlzdEltcCA9IGltcDsKKworICAgIFNWR1BPRExpc3RJdGVtPEZs
b2F0UG9pbnQ+KiBsaXN0SXRlbSA9IGxpc3RJbXAtPmluaXRpYWxpemUobmV3IFNWR1BPRExpc3RJ
dGVtPEZsb2F0UG9pbnQ+KG5ld0l0ZW0pLCBlYykuZ2V0KCk7IAorICAgIEpTU1ZHUE9EVHlwZVdy
YXBwZXJDcmVhdG9yRm9yTGlzdDxGbG9hdFBvaW50LCBTVkdQb2ludExpc3Q+KiBvYmogPSBuZXcg
SlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PEZsb2F0UG9pbnQsIFNWR1BvaW50TGlz
dD4obGlzdEl0ZW0sIGltcCk7CisKKyAgICBLSlM6OkpTVmFsdWUqIHJlc3VsdCA9IHRvSlMoZXhl
Yywgb2JqKTsKKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworCisgICAgQVNTRVJUKGlt
cC0+Y29udGV4dCgpKTsKKyAgICBpbXAtPmNvbnRleHQoKS0+bm90aWZ5QXR0cmlidXRlQ2hhbmdl
KCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlKiBKU1NWR1BvaW50TGlzdDo6
Z2V0SXRlbShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IExpc3QmIGFyZ3MpCit7CisgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CisKKyAgICBib29sIGluZGV4T2s7CisgICAgdW5zaWduZWQgaW5kZXgg
PSBhcmdzWzBdLT50b0ludDMyKGV4ZWMsIGluZGV4T2spOworICAgIGlmICghaW5kZXhPaykgewor
ICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBTVkdQb2ludExpc3QqIGltcCA9
IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdCo+KGltcGwoKSk7CisgICAgU1ZHTGlzdDxSZWZQdHI8
U1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4gPiA+KiBsaXN0SW1wID0gaW1wOworCisgICAgU1ZH
UE9ETGlzdEl0ZW08RmxvYXRQb2ludD4qIGxpc3RJdGVtID0gbGlzdEltcC0+Z2V0SXRlbShpbmRl
eCwgZWMpLmdldCgpOworICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdDxGbG9h
dFBvaW50LCBTVkdQb2ludExpc3Q+KiBvYmogPSBuZXcgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0
b3JGb3JMaXN0PEZsb2F0UG9pbnQsIFNWR1BvaW50TGlzdD4obGlzdEl0ZW0sIGltcCk7CisKKyAg
ICBLSlM6OkpTVmFsdWUqIHJlc3VsdCA9IHRvSlMoZXhlYywgb2JqKTsKKyAgICBzZXRET01FeGNl
cHRpb24oZXhlYywgZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0pTVmFsdWUqIEpTU1ZH
UG9pbnRMaXN0OjppbnNlcnRJdGVtQmVmb3JlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCYg
YXJncykKK3sKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBGbG9hdFBvaW50IG5ld0l0
ZW0gPSB0b1NWR1BvaW50KGFyZ3NbMF0pOworCisgICAgYm9vbCBpbmRleE9rOworICAgIHVuc2ln
bmVkIGluZGV4ID0gYXJnc1sxXS0+dG9JbnQzMihleGVjLCBpbmRleE9rKTsKKyAgICBpZiAoIWlu
ZGV4T2spIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJS
KTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgU1ZHUG9pbnRM
aXN0KiBpbXAgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3QqPihpbXBsKCkpOworICAgIFNWR0xp
c3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVtPEZsb2F0UG9pbnQ+ID4gPiogbGlzdEltcCA9IGltcDsK
KworICAgIFNWR1BPRExpc3RJdGVtPEZsb2F0UG9pbnQ+KiBsaXN0SXRlbSA9IGxpc3RJbXAtPmlu
c2VydEl0ZW1CZWZvcmUobmV3IFNWR1BPRExpc3RJdGVtPEZsb2F0UG9pbnQ+KG5ld0l0ZW0pLCBp
bmRleCwgZWMpLmdldCgpOworICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdDxG
bG9hdFBvaW50LCBTVkdQb2ludExpc3Q+KiBvYmogPSBuZXcgSlNTVkdQT0RUeXBlV3JhcHBlckNy
ZWF0b3JGb3JMaXN0PEZsb2F0UG9pbnQsIFNWR1BvaW50TGlzdD4obGlzdEl0ZW0sIGltcCk7CisK
KyAgICBLSlM6OkpTVmFsdWUqIHJlc3VsdCA9IHRvSlMoZXhlYywgb2JqKTsKKyAgICBzZXRET01F
eGNlcHRpb24oZXhlYywgZWMpOworCisgICAgQVNTRVJUKGltcC0+Y29udGV4dCgpKTsKKyAgICBp
bXAtPmNvbnRleHQoKS0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitKU1ZhbHVlKiBKU1NWR1BvaW50TGlzdDo6cmVwbGFjZUl0ZW0oRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBMaXN0JiBhcmdzKQoreworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIEZsb2F0UG9pbnQgbmV3SXRlbSA9IHRvU1ZHUG9pbnQoYXJnc1swXSk7CisKKyAgICBib29s
IGluZGV4T2s7CisgICAgdW5zaWduZWQgaW5kZXggPSBhcmdzWzFdLT50b0ludDMyKGV4ZWMsIGlu
ZGV4T2spOworICAgIGlmICghaW5kZXhPaykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhl
YywgVFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICB9CisKKyAgICBTVkdQb2ludExpc3QqIGltcCA9IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdCo+
KGltcGwoKSk7CisgICAgU1ZHTGlzdDxSZWZQdHI8U1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4g
PiA+KiBsaXN0SW1wID0gaW1wOworCisgICAgU1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4qIGxp
c3RJdGVtID0gbGlzdEltcC0+cmVwbGFjZUl0ZW0obmV3IFNWR1BPRExpc3RJdGVtPEZsb2F0UG9p
bnQ+KG5ld0l0ZW0pLCBpbmRleCwgZWMpLmdldCgpOyAKKyAgICBKU1NWR1BPRFR5cGVXcmFwcGVy
Q3JlYXRvckZvckxpc3Q8RmxvYXRQb2ludCwgU1ZHUG9pbnRMaXN0Piogb2JqID0gbmV3IEpTU1ZH
UE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdDxGbG9hdFBvaW50LCBTVkdQb2ludExpc3Q+KGxp
c3RJdGVtLCBpbXApOworCisgICAgS0pTOjpKU1ZhbHVlKiByZXN1bHQgPSB0b0pTKGV4ZWMsIG9i
aik7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKworICAgIEFTU0VSVChpbXAtPmNv
bnRleHQoKSk7CisgICAgaW1wLT5jb250ZXh0KCktPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwor
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNWYWx1ZSogSlNTVkdQb2ludExpc3Q6OnJlbW92
ZUl0ZW0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0JiBhcmdzKQoreworICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOworICAgIAorICAgIGJvb2wgaW5kZXhPazsKKyAgICB1bnNpZ25lZCBpbmRl
eCA9IGFyZ3NbMF0tPnRvSW50MzIoZXhlYywgaW5kZXhPayk7CisgICAgaWYgKCFpbmRleE9rKSB7
CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VSUik7CisgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFNWR1BvaW50TGlzdCogaW1w
ID0gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0Kj4oaW1wbCgpKTsKKyAgICBTVkdMaXN0PFJlZlB0
cjxTVkdQT0RMaXN0SXRlbTxGbG9hdFBvaW50PiA+ID4qIGxpc3RJbXAgPSBpbXA7CisKKyAgICBS
ZWZQdHI8U1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4gPiBsaXN0SXRlbShsaXN0SW1wLT5yZW1v
dmVJdGVtKGluZGV4LCBlYykpOworICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXI8RmxvYXRQb2ludD4q
IG9iaiA9IG5ldyBKU1NWR1BPRFR5cGVXcmFwcGVyPEZsb2F0UG9pbnQ+KChGbG9hdFBvaW50Jikg
Kmxpc3RJdGVtLmdldCgpKTsKKworICAgIEtKUzo6SlNWYWx1ZSogcmVzdWx0ID0gdG9KUyhleGVj
LCBvYmopOworICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisKKyAgICBBU1NFUlQoaW1w
LT5jb250ZXh0KCkpOworICAgIGltcC0+Y29udGV4dCgpLT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2Uo
KTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0pTVmFsdWUqIEpTU1ZHUG9pbnRMaXN0Ojph
cHBlbmRJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCYgYXJncykKK3sKKyAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKKyAgICBGbG9hdFBvaW50IG5ld0l0ZW0gPSB0b1NWR1BvaW50KGFy
Z3NbMF0pOworCisgICAgU1ZHUG9pbnRMaXN0KiBpbXAgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExp
c3QqPihpbXBsKCkpOworICAgIFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVtPEZsb2F0UG9p
bnQ+ID4gPiogbGlzdEltcCA9IGltcDsKKworICAgIFNWR1BPRExpc3RJdGVtPEZsb2F0UG9pbnQ+
KiBsaXN0SXRlbSA9IGxpc3RJbXAtPmFwcGVuZEl0ZW0obmV3IFNWR1BPRExpc3RJdGVtPEZsb2F0
UG9pbnQ+KG5ld0l0ZW0pLCBlYykuZ2V0KCk7IAorICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVh
dG9yRm9yTGlzdDxGbG9hdFBvaW50LCBTVkdQb2ludExpc3Q+KiBvYmogPSBuZXcgSlNTVkdQT0RU
eXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PEZsb2F0UG9pbnQsIFNWR1BvaW50TGlzdD4obGlzdEl0
ZW0sIGltcCk7CisKKyAgICBLSlM6OkpTVmFsdWUqIHJlc3VsdCA9IHRvSlMoZXhlYywgb2JqKTsK
KyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworCisgICAgQVNTRVJUKGltcC0+Y29udGV4
dCgpKTsKKyAgICBpbXAtPmNvbnRleHQoKS0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CisKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit9CisKKyNlbmRpZiAvLyBTVkdfU1VQUE9SVAorCisvLyB2
aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0JKHJldmlzaW9uIDE4NDEyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtODExLDcgKzgxMSw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHJldHVybiBKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4gIjo6Z2V0Q29uc3RydWN0
b3IoZXhlYyk7XG4iKTsKICAgICAgICAgICAgIH0gZWxzaWYgKCFAeyRhdHRyaWJ1dGUtPmdldHRl
ckV4Y2VwdGlvbnN9KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
Y2FzZSAiIC4gV0tfdWNmaXJzdCgkbmFtZSkgLiAiQXR0ck51bTpcbiIpOwotCisgICAgICAgIAog
ICAgICAgICAgICAgICAgIGlmICgkcG9kVHlwZSkgewogICAgICAgICAgICAgICAgICAgICBpZiAo
JHBvZFR5cGUgZXEgImRvdWJsZSIpIHsgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVyCiAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJu
ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAiIiwgImltcCIpIC4g
IjtcbiIpOwpAQCAtODI0LDcgKzgyNCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGNhc2UgIiAuIFdLX3VjZmlyc3QoJG5hbWUpIC4gIkF0dHJOdW06IHtcbiIpOwogICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDtcbiIpOwotCisgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICgkcG9kVHlwZSkgewogICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgS0pTOjpKU1ZhbHVl
KiByZXN1bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgIiIs
ICJpbXAuJG5hbWUoZWMpIikgLiAiO1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKQEAg
LTgzNiw3ICs4MzYsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuICAgIHJldHVybiAwO1xu
fVxuXG4iKTsKIAogICAgICAgICAjIENoZWNrIGlmIHdlIGhhdmUgYW55IHdyaXRhYmxlIGF0dHJp
YnV0ZXMKQEAgLTkxNSwxMiArOTE0LDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgRnJhbWUqIGFjdGl2ZUZyYW1l
ID0gc3RhdGljX2Nhc3Q8U2NyaXB0SW50ZXJwcmV0ZXIqPihleGVjLT5keW5hbWljSW50ZXJwcmV0
ZXIoKSktPmZyYW1lKCk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoIWFjdGl2ZUZyYW1lKVxuICAgICAgICByZXR1cm47XG5cbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFNWR0RvY3VtZW50RXh0ZW5zaW9ucyogZXh0
ZW5zaW9ucyA9IChhY3RpdmVGcmFtZS0+ZG9jdW1lbnQoKSA/IGFjdGl2ZUZyYW1lLT5kb2N1bWVu
dCgpLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkgOiAwKTtcbiIpOwotICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmIChleHRlbnNpb25zICYmIGV4dGVuc2lvbnMtPmhhc1Bh
dGhTZWdDb250ZXh0KGltcCkpIHtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gZXh0ZW5zaW9u
cy0+cGF0aFNlZ0NvbnRleHQoaW1wKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmIChleHRlbnNpb25zICYmIGV4dGVuc2lvbnMtPmhhc0dlbmVyaWNDb250
ZXh0PCRpbnRlcmZhY2VOYW1lPihpbXApKSB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCA9IGV4
dGVuc2lvbnMtPmdlbmVyaWNDb250ZXh0PCRpbnRlcmZhY2VOYW1lPihpbXApO1xuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIEFTU0VSVChjb250ZXh0KTtc
blxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGNvbnRl
eHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgfVxuXG4iKTsKLSAgICAgICAgICAgICAgICBwcmludCAiSUZBQ0U6
ICRpbnRlcmZhY2VOYW1lXG4iOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIn1cblxuIik7ICMgZW5kIGZ1bmN0aW9uCkBAIC05NDYsNiArOTQ0LDkgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgfQogCiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHN3aXRjaCAoaWQpIHtcbiIpOworCisgICAgICAgIG15ICRoYXNDdXN0
b21GdW5jdGlvbnNPbmx5ID0gMTsKKwogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHsk
ZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGNhc2UgJHtjbGFzc05hbWV9OjoiIC4gV0tfdWNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+bmFtZSkgLiAiRnVuY051bToge1xuIik7CiAKQEAgLTk1NCw2ICs5NTUsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIG5leHQ7CiAgICAgICAgICAgICB9
CiAKKyAgICAgICAgICAgICRoYXNDdXN0b21GdW5jdGlvbnNPbmx5ID0gMDsKICAgICAgICAgICAg
IEFkZEluY2x1ZGVzRm9yVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7CiAKICAgICAg
ICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKQEAgLTEwMDgsNiAr
MTAxMCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICB9XG4iKTsgIyBlbmQgY2FzZQogICAgICAgICB9CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOyAjIGVuZCBzd2l0Y2gKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgKHZvaWQpaW1wO1xuIikgaWYgJGhhc0N1c3RvbUZ1bmN0aW9uc09u
bHk7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAwO1xuIik7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAgfQpJbmRleDogV2ViQ29yZS9rc3Zn
Mi9taXNjL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaAkocmV2aXNpb24gMTg0MTIpCisrKyBXZWJD
b3JlL2tzdmcyL21pc2MvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDcgKzQyLDYgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFNWR0VsZW1lbnQ7CiBjbGFzcyBTdHJp
bmc7CiBjbGFzcyBUaW1lU2NoZWR1bGVyOwotY2xhc3MgU1ZHUGF0aFNlZzsKIGNsYXNzIFNWR1N0
eWxlZEVsZW1lbnQ7CiBjbGFzcyBTVkdTVkdFbGVtZW50OwogCkBAIC03MCwxNCArNjksMTUgQEAg
cHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGU+CiAgICAgSGFzaE1hcDxj
b25zdCBTVkdFbGVtZW50KiwgSGFzaE1hcDxTdHJpbmdJbXBsKiwgVmFsdWVUeXBlPio+IGJhc2VW
YWx1ZU1hcCgpIGNvbnN0CiAgICAgewotICAgICAgICBzdGF0aWMgSGFzaE1hcDxjb25zdCBTVkdF
bGVtZW50KiwgSGFzaE1hcDxTdHJpbmdJbXBsKiwgVmFsdWVUeXBlPio+IHNfdmFsdWVUeXBlOwot
ICAgICAgICByZXR1cm4gc192YWx1ZVR5cGU7CisgICAgICAgIHN0YXRpYyBIYXNoTWFwPGNvbnN0
IFNWR0VsZW1lbnQqLCBIYXNoTWFwPFN0cmluZ0ltcGwqLCBWYWx1ZVR5cGU+Kj4gc19iYXNlVmFs
dWVNYXA7CisgICAgICAgIHJldHVybiBzX2Jhc2VWYWx1ZU1hcDsKICAgICB9CiAKLSAgICBIYXNo
TWFwPGNvbnN0IFNWR1BhdGhTZWcqLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50Kj4gcGF0aFNlZ0Nv
bnRleHRNYXAoKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGU+CisgICAgSGFz
aE1hcDxjb25zdCBLZXlUeXBlKiwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCo+IGdlbmVyaWNDb250
ZXh0TWFwKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHN0YXRpYyBIYXNoTWFwPGNvbnN0IFNWR1Bh
dGhTZWcqLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50Kj4gc192YWx1ZVR5cGU7Ci0gICAgICAgIHJl
dHVybiBzX3ZhbHVlVHlwZTsKKyAgICAgICAgc3RhdGljIEhhc2hNYXA8Y29uc3QgS2V5VHlwZSos
IGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqPiBzX2dlbmVyaWNDb250ZXh0TWFwOworICAgICAgICBy
ZXR1cm4gc19nZW5lcmljQ29udGV4dE1hcDsKICAgICB9CiAKIHB1YmxpYzoKQEAgLTEyNCwyNSAr
MTI0LDI5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIC8v
IFVzZWQgYnkgU1ZHUGF0aFNlZyogSlMgd3JhcHBlcnMKLSAgICBjb25zdCBTVkdTdHlsZWRFbGVt
ZW50KiBwYXRoU2VnQ29udGV4dChjb25zdCBTVkdQYXRoU2VnKiBvYmopIGNvbnN0CisgICAgLy8g
VXNlZCBieSBzZXZlcmFsIEpTIHdyYXBwZXJzCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlw
ZT4KKyAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBnZW5lcmljQ29udGV4dChjb25zdCBLZXlU
eXBlKiBvYmopIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gcGF0aFNlZ0NvbnRleHRNYXAo
KS5nZXQob2JqKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyaWNDb250ZXh0TWFwPEtleVR5cGU+KCku
Z2V0KG9iaik7CiAgICAgfQogCi0gICAgdm9pZCBzZXRQYXRoU2VnQ29udGV4dChjb25zdCBTVkdQ
YXRoU2VnKiBvYmosIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQpCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgS2V5VHlwZT4KKyAgICB2b2lkIHNldEdlbmVyaWNDb250ZXh0KGNvbnN0IEtl
eVR5cGUqIG9iaiwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKICAgICB7Ci0gICAg
ICAgIHBhdGhTZWdDb250ZXh0TWFwKCkuc2V0KG9iaiwgY29udGV4dCk7CisgICAgICAgIGdlbmVy
aWNDb250ZXh0TWFwPEtleVR5cGU+KCkuc2V0KG9iaiwgY29udGV4dCk7CiAgICAgfQogCi0gICAg
dm9pZCByZW1vdmVQYXRoU2VnQ29udGV4dChjb25zdCBTVkdQYXRoU2VnKiBvYmopCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgS2V5VHlwZT4KKyAgICB2b2lkIHJlbW92ZUdlbmVyaWNDb250ZXh0KGNv
bnN0IEtleVR5cGUqIG9iaikKICAgICB7Ci0gICAgICAgIHBhdGhTZWdDb250ZXh0TWFwKCkucmVt
b3ZlKG9iaik7CisgICAgICAgIGdlbmVyaWNDb250ZXh0TWFwPEtleVR5cGU+KCkucmVtb3ZlKG9i
aik7CiAgICAgfQogCi0gICAgYm9vbCBoYXNQYXRoU2VnQ29udGV4dChjb25zdCBTVkdQYXRoU2Vn
KiBvYmopCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlwZT4KKyAgICBib29sIGhhc0dlbmVy
aWNDb250ZXh0KGNvbnN0IEtleVR5cGUqIG9iaikKICAgICB7Ci0gICAgICAgIHJldHVybiBwYXRo
U2VnQ29udGV4dE1hcCgpLmNvbnRhaW5zKG9iaik7CisgICAgICAgIHJldHVybiBnZW5lcmljQ29u
dGV4dE1hcDxLZXlUeXBlPigpLmNvbnRhaW5zKG9iaik7CiAgICAgfQogfTsKIApJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAJKHJldmlzaW9uIDE4NDEyKQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtv
bGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAg
ICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAK
ICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIxLDYgKzIxLDcg
QEAKICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIgogCkBAIC0zNiw2ICszNyw2IEBAIFNWR0FuaW1h
dGVkUGF0aERhdGE6On5TVkdBbmltYXRlZFBhdGhEYXQKIAogfQogCi0vLyB2aW06dHM9NDpub2V0
CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuaAkocmV2aXNpb24gMTg0MTIpCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFBhdGhEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1l
cm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw
MDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAg
ICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlz
IGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIwLDEzICsyMCwxNSBAQAogICAg
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR0FuaW1h
dGVkUGF0aERhdGFJbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdBbmltYXRlZFBhdGhEYXRhSW1wbF9I
CisjaWZuZGVmIFNWR0FuaW1hdGVkUGF0aERhdGFfSAorI2RlZmluZSBTVkdBbmltYXRlZFBhdGhE
YXRhX0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7CiAgICAg
Y2xhc3MgU1ZHUGF0aFNlZ0xpc3Q7CisKICAgICBjbGFzcyBTVkdBbmltYXRlZFBhdGhEYXRhCiAg
ICAgewogICAgIHB1YmxpYzoKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUG9p
bnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFBvaW50
cy5jcHAJKHJldmlzaW9uIDE4NDEyKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQ
b2ludHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Cisg
ICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8emlt
bWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2Ig
QnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0CkBAIC0yMSw2ICsyMSw3IEBACiAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNp
ZmRlZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUG9pbnRzLmgiCiAKQEAgLTM2
LDYgKzM3LDYgQEAgU1ZHQW5pbWF0ZWRQb2ludHM6On5TVkdBbmltYXRlZFBvaW50cygpCiAKIH0K
IAotLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKKy8vIHZpbTp0cz00
Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaAkocmV2aXNpb24g
MTg0MTIpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgog
ICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yMCwxMyAr
MjAsMTUgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICovCiAKLSNpZm5kZWYg
S1NWR19TVkdBbmltYXRlZFBvaW50c0ltcGxfSAotI2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkUG9p
bnRzSW1wbF9ICisjaWZuZGVmIFNWR0FuaW1hdGVkUG9pbnRzX0gKKyNkZWZpbmUgU1ZHQW5pbWF0
ZWRQb2ludHNfSAorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAogbmFtZXNwYWNlIFdlYkNvcmUKIHsK
ICAgICBjbGFzcyBTVkdQb2ludExpc3Q7CisKICAgICBjbGFzcyBTVkdBbmltYXRlZFBvaW50cwog
ICAgIHsKICAgICBwdWJsaWM6CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0LmNwcAko
cmV2aXNpb24gMTg0MTIpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBT
VkdMZW5ndGhMaXN0OjpTVkdMZW5ndGhMaXN0KCkKLSAgICA6IFNWR0xpc3Q8U1ZHTGVuZ3RoPigp
CisgICAgOiBTVkdQT0RMaXN0PFNWR0xlbmd0aD4oKQogewogfQogCkBAIC00MCw2ICs0MCw3IEBA
IFNWR0xlbmd0aExpc3Q6On5TVkdMZW5ndGhMaXN0KCkKIHZvaWQgU1ZHTGVuZ3RoTGlzdDo6cGFy
c2UoY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCwg
U1ZHTGVuZ3RoTW9kZSBtb2RlKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGNs
ZWFyKGVjKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IGxlbmd0aHMgPSB2YWx1ZS5zcGxpdCgnICcp
OwogICAgIFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBsZW5ndGhzLmVuZCgp
OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGVuZ3RoTGlzdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuaAkocmV2aXNpb24gMTg0MTIpCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1h
bm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAg
ICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZp
bGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIwLDggKzIwLDggQEAKICAgICBCb3N0
b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICovCiAKLSNpZm5kZWYgS1NWR19TVkdMZW5ndGhMaXN0
X0gKLSNkZWZpbmUgS1NWR19TVkdMZW5ndGhMaXN0X0gKKyNpZm5kZWYgU1ZHTGVuZ3RoTGlzdF9I
CisjZGVmaW5lIFNWR0xlbmd0aExpc3RfSAogCiAjaWZkZWYgU1ZHX1NVUFBPUlQKIApAQCAtMzAs
NyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZQogewotICAgIGNsYXNzIFNWR0xlbmd0aExp
c3QgOiBwdWJsaWMgU1ZHTGlzdDxTVkdMZW5ndGg+CisgICAgY2xhc3MgU1ZHTGVuZ3RoTGlzdCA6
IHB1YmxpYyBTVkdQT0RMaXN0PFNWR0xlbmd0aD4KICAgICB7CiAgICAgcHVibGljOgogICAgICAg
ICBTVkdMZW5ndGhMaXN0KCk7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMaXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGlzdC5oCShyZXZpc2lvbiAxODQxMikK
KysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYg
KzEzMiwxMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBWZWN0b3I8SXRlbT4gbV92
ZWN0b3I7CiAgICAgfTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZW0+CisgICAgY2xhc3Mg
U1ZHUE9ETGlzdEl0ZW0gOiBwdWJsaWMgU2hhcmVkPFNWR1BPRExpc3RJdGVtPEl0ZW0+ID4KKyAg
ICB7CisgICAgcHVibGljOgorICAgICAgICBTVkdQT0RMaXN0SXRlbSgpIDogbV9pdGVtKCkgeyB9
CisgICAgICAgIFNWR1BPRExpc3RJdGVtKGNvbnN0IEl0ZW0mIGl0ZW0pIDogbV9pdGVtKGl0ZW0p
IHsgfQorCisgICAgICAgIG9wZXJhdG9yIEl0ZW0mKCkgeyByZXR1cm4gbV9pdGVtOyB9CisgICAg
ICAgIG9wZXJhdG9yIGNvbnN0IEl0ZW0mKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtOyB9CisKKyAg
ICAgICAgLy8gVXBkYXRpbmcgZmFjaWxpdGllcywgdXNlZCBieSBKU1NWR1BPRFR5cGVXcmFwcGVy
Q3JlYXRvckZvckxpc3QKKyAgICAgICAgSXRlbSB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXRl
bTsgfQorICAgICAgICB2b2lkIHNldFZhbHVlKEl0ZW0gbmV3SXRlbSkgeyBtX2l0ZW0gPSBuZXdJ
dGVtOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBJdGVtIG1faXRlbTsKKyAgICB9OworCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KKyAgICBjbGFzcyBTVkdQT0RMaXN0IDogcHVibGlj
IFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVtPEl0ZW0+ID4gPgorICAgIHsKKyAgICBwdWJs
aWM6CisgICAgICAgIFNWR1BPRExpc3QoKSA6IFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVt
PEl0ZW0+ID4gPigpIHsgfQorCisgICAgICAgIEl0ZW0gaW5pdGlhbGl6ZShJdGVtIG5ld0l0ZW0s
IEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgICAgICB7CisgICAgICAgICAgICBTVkdQT0RMaXN0SXRl
bTxJdGVtPiogcHRyKFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVtPEl0ZW0+ID4gPjo6aW5p
dGlhbGl6ZShuZXcgU1ZHUE9ETGlzdEl0ZW08SXRlbT4obmV3SXRlbSksIGVjKS5nZXQoKSk7Cisg
ICAgICAgICAgICBpZiAoIXB0cikKKyAgICAgICAgICAgICAgICByZXR1cm4gSXRlbSgpOworCisg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSXRlbSY+KCpwdHIpOyAKKyAgICAg
ICAgfQorCisgICAgICAgIEl0ZW0gZ2V0Rmlyc3QoKSBjb25zdAorICAgICAgICB7CisgICAgICAg
ICAgICBTVkdQT0RMaXN0SXRlbTxJdGVtPiogcHRyKFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJ
dGVtPEl0ZW0+ID4gPjo6Z2V0Rmlyc3QoKS5nZXQoKSk7CisgICAgICAgICAgICBpZiAoIXB0cikK
KyAgICAgICAgICAgICAgICByZXR1cm4gSXRlbSgpOworCisgICAgICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Y29uc3QgSXRlbSY+KCpwdHIpOworICAgICAgICB9CisKKyAgICAgICAgSXRlbSBn
ZXRMYXN0KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgU1ZHUE9ETGlzdEl0ZW08SXRl
bT4qIHB0cihTVkdMaXN0PFJlZlB0cjxTVkdQT0RMaXN0SXRlbTxJdGVtPiA+ID46OmdldExhc3Qo
KS5nZXQoKSk7CisgICAgICAgICAgICBpZiAoIXB0cikKKyAgICAgICAgICAgICAgICByZXR1cm4g
SXRlbSgpOworCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSXRlbSY+KCpw
dHIpOyAKKyAgICAgICAgfQorCisgICAgICAgIEl0ZW0gZ2V0SXRlbSh1bnNpZ25lZCBpbnQgaW5k
ZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgICAgICB7CisgICAgICAgICAgICBTVkdQT0RMaXN0
SXRlbTxJdGVtPiogcHRyKFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVtPEl0ZW0+ID4gPjo6
Z2V0SXRlbShpbmRleCwgZWMpLmdldCgpKTsKKyAgICAgICAgICAgIGlmICghcHRyKQorICAgICAg
ICAgICAgICAgIHJldHVybiBJdGVtKCk7CisKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBJdGVtJj4oKnB0cik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBJdGVtIGdl
dEl0ZW0odW5zaWduZWQgaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKKyAgICAg
ICAgeworICAgICAgICAgICAgU1ZHUE9ETGlzdEl0ZW08SXRlbT4qIHB0cihTVkdMaXN0PFJlZlB0
cjxTVkdQT0RMaXN0SXRlbTxJdGVtPiA+ID46OmdldEl0ZW0oaW5kZXgsIGVjKS5nZXQoKSk7Cisg
ICAgICAgICAgICAgaWYgKCFwdHIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEl0ZW0oKTsKKwor
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEl0ZW0mPigqcHRyKTsKKyAgICAg
ICAgfQorCisgICAgICAgIEl0ZW0gaW5zZXJ0SXRlbUJlZm9yZShJdGVtIG5ld0l0ZW0sIHVuc2ln
bmVkIGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCisgICAgICAgIHsKKyAgICAgICAgICAg
IFNWR1BPRExpc3RJdGVtPEl0ZW0+KiBwdHIoU1ZHTGlzdDxSZWZQdHI8U1ZHUE9ETGlzdEl0ZW08
SXRlbT4gPiA+OjppbnNlcnRJdGVtQmVmb3JlKG5ldyBTVkdQT0RMaXN0SXRlbTxJdGVtPihuZXdJ
dGVtKSwgaW5kZXgsIGVjKS5nZXQoKSk7CisgICAgICAgICAgICBpZiAoIXB0cikKKyAgICAgICAg
ICAgICAgICByZXR1cm4gSXRlbSgpOworCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgSXRlbSY+KCpwdHIpOyAKKyAgICAgICAgfQorCisgICAgICAgIEl0ZW0gcmVwbGFjZUl0
ZW0oSXRlbSBuZXdJdGVtLCB1bnNpZ25lZCBpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
ICAgICAgICB7CisgICAgICAgICAgICBTVkdQT0RMaXN0SXRlbTxJdGVtPiogcHRyKFNWR0xpc3Q8
UmVmUHRyPFNWR1BPRExpc3RJdGVtPEl0ZW0+ID4gPjo6cmVwbGFjZUl0ZW0obmV3IFNWR1BPRExp
c3RJdGVtPEl0ZW0+KG5ld0l0ZW0pLCBpbmRleCwgZWMpLmdldCgpKTsKKyAgICAgICAgICAgIGlm
ICghcHRyKQorICAgICAgICAgICAgICAgIHJldHVybiBJdGVtKCk7CisKKyAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBJdGVtJj4oKnB0cik7CisgICAgICAgIH0KKworICAgICAg
ICBJdGVtIHJlbW92ZUl0ZW0odW5zaWduZWQgaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykK
KyAgICAgICAgeworICAgICAgICAgICAgU1ZHUE9ETGlzdEl0ZW08SXRlbT4qIHB0cihTVkdMaXN0
PFJlZlB0cjxTVkdQT0RMaXN0SXRlbTxJdGVtPiA+ID46OnJlbW92ZUl0ZW0oaW5kZXgsIGVjKS5n
ZXQoKSk7CisgICAgICAgICAgICBpZiAoIXB0cikKKyAgICAgICAgICAgICAgICByZXR1cm4gSXRl
bSgpOworCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSXRlbSY+KCpwdHIp
OyAKKyAgICAgICAgfQorCisgICAgICAgIEl0ZW0gYXBwZW5kSXRlbShJdGVtIG5ld0l0ZW0sIEV4
Y2VwdGlvbkNvZGUmIGVjKQorICAgICAgICB7CisgICAgICAgICAgICBTVkdQT0RMaXN0SXRlbTxJ
dGVtPiogcHRyKFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVtPEl0ZW0+ID4gPjo6YXBwZW5k
SXRlbShuZXcgU1ZHUE9ETGlzdEl0ZW08SXRlbT4obmV3SXRlbSksIGVjKS5nZXQoKSk7CisgICAg
ICAgICAgICBpZiAoIXB0cikKKyAgICAgICAgICAgICAgICByZXR1cm4gSXRlbSgpOworCisgICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSXRlbSY+KCpwdHIpOyAKKyAgICAgICAg
fQorICAgIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR19TVVBQ
T1JUCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsCShyZXZpc2lvbiAxODQx
MikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaXN0LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjksOSArMjksOSBAQCBtb2R1bGUgc3ZnIHsKICAgICBpbnRlcmZhY2UgW0NvbmRpdGlv
bmFsPVNWR10gU1ZHUGF0aFNlZ0xpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOwogCi0gICAgICAgIHZvaWQgY2xlYXIoKQorICAgICAg
ICBbQ3VzdG9tXSB2b2lkIGNsZWFyKCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OwotICAgICAgICBTVkdQYXRoU2VnIGluaXRpYWxpemUoaW4gU1ZHUGF0aFNlZyBuZXdJdGVtKQor
ICAgICAgICBbQ3VzdG9tXSBTVkdQYXRoU2VnIGluaXRpYWxpemUoaW4gU1ZHUGF0aFNlZyBuZXdJ
dGVtKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uKTsKICAg
ICAgICAgW0N1c3RvbV0gU1ZHUGF0aFNlZyBnZXRJdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1BvaW50TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
UG9pbnRMaXN0LmNwcAkocmV2aXNpb24gMTg0MTIpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQ
b2ludExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+
CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVp
cyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9q
ZWN0CkBAIC0yOCw4ICsyOCw5IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1TVkdQ
b2ludExpc3Q6OlNWR1BvaW50TGlzdCgpCi0gICAgOiBTVkdMaXN0PEZsb2F0UG9pbnQ+KCkKK1NW
R1BvaW50TGlzdDo6U1ZHUG9pbnRMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQp
CisgICAgOiBTVkdQT0RMaXN0PEZsb2F0UG9pbnQ+KCkKKyAgICAsIG1fY29udGV4dChjb250ZXh0
KQogewogfQogCkBAIC0zNyw2ICszOCwxMSBAQCBTVkdQb2ludExpc3Q6On5TVkdQb2ludExpc3Qo
KQogewogfQogCitjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBTVkdQb2ludExpc3Q6OmNvbnRleHQo
KSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQ7Cit9CisKICNlbmRpZiAvLyBTVkdfU1VQ
UE9SVAogCiAvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2lu
dExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2ludExpc3QuaAko
cmV2aXNpb24gMTg0MTIpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2ludExpc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9y
Zz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
IAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdApAQCAtMjAsOCArMjAs
OCBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZH
X1NWR1BvaW50TGlzdEltcGxfSAotI2RlZmluZSBLU1ZHX1NWR1BvaW50TGlzdEltcGxfSAorI2lm
bmRlZiBTVkdQb2ludExpc3RfSAorI2RlZmluZSBTVkdQb2ludExpc3RfSAogCiAjaWZkZWYgU1ZH
X1NVUFBPUlQKIApAQCAtMzAsMTEgKzMwLDE4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7Ci0g
ICAgY2xhc3MgU1ZHUG9pbnRMaXN0IDogcHVibGljIFNWR0xpc3Q8RmxvYXRQb2ludD4KKyAgICBj
bGFzcyBTVkdTdHlsZWRFbGVtZW50OworCisgICAgY2xhc3MgU1ZHUG9pbnRMaXN0IDogcHVibGlj
IFNWR1BPRExpc3Q8RmxvYXRQb2ludD4KICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdQ
b2ludExpc3QoKTsKKyAgICAgICAgU1ZHUG9pbnRMaXN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQq
IGNvbnRleHQpOwogICAgICAgICB2aXJ0dWFsIH5TVkdQb2ludExpc3QoKTsKKworICAgICAgICBj
b25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBtX2NvbnRleHQ7CiAgICAgfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnRMaXN0
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2ludExpc3QuaWRsCShy
ZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDE5ICsyOCwxOSBAQCBtb2R1bGUgc3ZnIHsKICAgICBpbnRlcmZh
Y2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHUG9pbnRMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICAgICAgICB2b2lkIGNsZWFy
KCkKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBjbGVhcigpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgU1ZHUG9pbnQgaW5pdGlhbGl6ZShpbiBTVkdQb2ludCBpdGVt
KQorICAgICAgICBbQ3VzdG9tXSBTVkdQb2ludCBpbml0aWFsaXplKGluIFNWR1BvaW50IGl0ZW0p
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24pOwotICAgICAg
ICBTVkdQb2ludCBnZXRJdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgIFtDdXN0
b21dIFNWR1BvaW50IGdldEl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKICAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBTVkdQb2ludCBpbnNlcnRJdGVtQmVmb3Jl
KGluIFNWR1BvaW50IGl0ZW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgIFtDdXN0
b21dIFNWR1BvaW50IGluc2VydEl0ZW1CZWZvcmUoaW4gU1ZHUG9pbnQgaXRlbSwgaW4gdW5zaWdu
ZWQgbG9uZyBpbmRleCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24sIFNWR0V4Y2Vw
dGlvbik7Ci0gICAgICAgIFNWR1BvaW50IHJlcGxhY2VJdGVtKGluIFNWR1BvaW50IGl0ZW0sIGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgIFtDdXN0b21dIFNWR1BvaW50IHJlcGxhY2VJ
dGVtKGluIFNWR1BvaW50IGl0ZW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24pOwotICAgICAgICBTVkdQb2ludCBy
ZW1vdmVJdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgIFtDdXN0b21dIFNWR1Bv
aW50IHJlbW92ZUl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwotICAgICAgICBTVkdQb2ludCBhcHBlbmRJdGVtKGluIFNWR1BvaW50
IGl0ZW0pCisgICAgICAgIFtDdXN0b21dIFNWR1BvaW50IGFwcGVuZEl0ZW0oaW4gU1ZHUG9pbnQg
aXRlbSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbik7CiAg
ICAgfTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAkocmV2aXNpb24g
MTg0MTIpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
ICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIxLDYgKzIx
LDcgQEAKICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAj
aW5jbHVkZSAiU1ZHUG9seUVsZW1lbnQuaCIKIApAQCAtMzgsNiArMzksNyBAQCBTVkdQb2x5RWxl
bWVudDo6U1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhCiAgICAgLCBTVkdBbmltYXRlZFBvaW50cygp
CiAgICAgLCBTVkdQb2x5UGFyc2VyKCkKIHsKKyAgICBtX2lnbm9yZUF0dHJpYnV0ZUNoYW5nZXMg
PSBmYWxzZTsKIH0KIAogU1ZHUG9seUVsZW1lbnQ6On5TVkdQb2x5RWxlbWVudCgpCkBAIC00Nywx
MyArNDksMTQgQEAgU1ZHUG9seUVsZW1lbnQ6On5TVkdQb2x5RWxlbWVudCgpCiBTVkdQb2ludExp
c3QqIFNWR1BvbHlFbGVtZW50Ojpwb2ludHMoKSBjb25zdAogewogICAgIGlmICghbV9wb2ludHMp
Ci0gICAgICAgIG1fcG9pbnRzID0gbmV3IFNWR1BvaW50TGlzdCgpOworICAgICAgICBtX3BvaW50
cyA9IG5ldyBTVkdQb2ludExpc3QodGhpcyk7CiAKICAgICByZXR1cm4gbV9wb2ludHMuZ2V0KCk7
CiB9CiAKIFNWR1BvaW50TGlzdCogU1ZHUG9seUVsZW1lbnQ6OmFuaW1hdGVkUG9pbnRzKCkgY29u
c3QKIHsKKyAgICAvLyBGSVhNRSEKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNjQsOSArNjcsMTIg
QEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dAogICAgICAgICBwb2lu
dHMoKS0+Y2xlYXIoZWMpOwogICAgICAgICBwYXJzZVBvaW50cyhhdHRyLT52YWx1ZSgpLmRlcHJl
Y2F0ZWRTdHJpbmcoKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKFNWR1Rlc3RzOjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAgICAgICBpZiAoU1ZHTGFuZ1NwYWNl
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAgICAgICBpZiAoU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpIHJldHVy
bjsKKyAgICAgICAgaWYgKFNWR1Rlc3RzOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoYXR0cikpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKKyAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwogICAgIH0KIH0KQEAgLTc5LDEwICs4NSwxMCBAQCB2
b2lkIFNWR1BvbHlFbGVtZW50OjpzdmdQb2x5VG8oZG91YmxlIHgxCiAKIHZvaWQgU1ZHUG9seUVs
ZW1lbnQ6Om5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIGJvb2wg
aWdub3JlTm90aWZpY2F0aW9ucyA9IGZhbHNlOwotICAgIGlmIChpZ25vcmVOb3RpZmljYXRpb25z
IHx8IG93bmVyRG9jdW1lbnQoKS0+cGFyc2luZygpKQorICAgIGlmIChtX2lnbm9yZUF0dHJpYnV0
ZUNoYW5nZXMgfHwgb3duZXJEb2N1bWVudCgpLT5wYXJzaW5nKCkpCiAgICAgICAgIHJldHVybjsK
IAorICAgIG1faWdub3JlQXR0cmlidXRlQ2hhbmdlcyA9IHRydWU7CiAgICAgU1ZHU3R5bGVkRWxl
bWVudDo6bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKQEAgLTEwMSwxNCArMTA3LDE0IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6Om5vdGlmeUF0dHJp
YnV0ZUNoYW4KICAgICBSZWZQdHI8QXR0cj4gYXR0ciA9IGNvbnN0X2Nhc3Q8U1ZHUG9seUVsZW1l
bnQqPih0aGlzKS0+Z2V0QXR0cmlidXRlTm9kZShwLmltcGwoKSk7CiAgICAgaWYgKGF0dHIpIHsK
ICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGlnbm9yZU5vdGlmaWNhdGlv
bnMgPSB0cnVlOyAvLyBwcmV2ZW50IHJlY3Vyc2lvbi4KICAgICAgICAgYXR0ci0+c2V0VmFsdWUo
X3BvaW50cywgZWMpOwotICAgICAgICBpZ25vcmVOb3RpZmljYXRpb25zID0gZmFsc2U7CiAgICAg
fQorCisgICAgbV9pZ25vcmVBdHRyaWJ1dGVDaGFuZ2VzID0gZmFsc2U7CiB9CiAKIH0KIAotLy8g
dmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKKy8vIHZpbTp0cz00Om5vZXQK
SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuaAkocmV2aXNpb24gMTg0MTIpCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJt
YW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAg
ICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yMCw4ICsyMCw5IEBACiAgICAgQm9z
dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHUG9seUVsZW1l
bnRJbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdQb2x5RWxlbWVudEltcGxfSAorI2lmbmRlZiBTVkdQ
b2x5RWxlbWVudF9ICisjZGVmaW5lIFNWR1BvbHlFbGVtZW50X0gKKwogI2lmZGVmIFNWR19TVVBQ
T1JUCiAKICNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50cy5oIgpAQCAtNjAsNiArNjEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZQogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKKyAgICAg
ICAgbXV0YWJsZSBib29sIG1faWdub3JlQXR0cmlidXRlQ2hhbmdlczsKICAgICAgICAgbXV0YWJs
ZSBSZWZQdHI8U1ZHUG9pbnRMaXN0PiBtX3BvaW50czsKIAogICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9GT1JXQVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBi
b29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
KQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcAkocmV2aXNpb24g
MTg0MTIpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+
CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIxLDYg
KzIxLDcgQEAKICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JU
CiAjaW5jbHVkZSAiU1ZHUG9seWdvbkVsZW1lbnQuaCIKIApAQCAtNDAsMTIgKzQxLDE0IEBAIFNW
R1BvbHlnb25FbGVtZW50Ojp+U1ZHUG9seWdvbkVsZW1lbnQoKQogUGF0aCBTVkdQb2x5Z29uRWxl
bWVudDo6dG9QYXRoRGF0YSgpIGNvbnN0CiB7CiAgICAgUGF0aCBwb2x5RGF0YTsKKwogICAgIGlu
dCBsZW4gPSBwb2ludHMoKS0+bnVtYmVyT2ZJdGVtcygpOwogICAgIGlmIChsZW4gPCAxKQogICAg
ICAgICByZXR1cm4gcG9seURhdGE7CiAgICAgCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAg
ICAgcG9seURhdGEubW92ZVRvKHBvaW50cygpLT5nZXRJdGVtKDAsIGVjKSk7CisKICAgICBmb3Ig
KGludCBpID0gMTsgaSA8IGxlbjsgKytpKQogICAgICAgICBwb2x5RGF0YS5hZGRMaW5lVG8ocG9p
bnRzKCktPmdldEl0ZW0oaSwgZWMpKTsKIApAQCAtNTUsNiArNTgsNiBAQCBQYXRoIFNWR1BvbHln
b25FbGVtZW50Ojp0b1BhdGhEYXRhKCkgY29uCiAKIH0KIAotLy8gdmltOnRzPTQ6bm9ldAogI2Vu
ZGlmIC8vIFNWR19TVVBQT1JUCiAKKy8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHUG9seWdvbkVsZW1lbnQuaAkocmV2aXNpb24gMTg0MTIpCisrKyBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxk
Zm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IE5pa29sYXMg
WmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwg
MjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yMCw4ICsyMCw5IEBACiAgICAgQm9zdG9uLCBNQSAw
MjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHUG9seWdvbkVsZW1lbnRJbXBs
X0gKLSNkZWZpbmUgS1NWR19TVkdQb2x5Z29uRWxlbWVudEltcGxfSAorI2lmbmRlZiBTVkdQb2x5
Z29uRWxlbWVudF9ICisjZGVmaW5lIFNWR1BvbHlnb25FbGVtZW50X0gKKwogI2lmZGVmIFNWR19T
VVBQT1JUCiAKICNpbmNsdWRlICJTVkdQb2x5RWxlbWVudC5oIgpJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1h
bm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAg
ICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZp
bGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIxLDYgKzIxLDcgQEAKICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUG9s
eWxpbmVFbGVtZW50LmgiCiAKQEAgLTQwLDEyICs0MSwxNCBAQCBTVkdQb2x5bGluZUVsZW1lbnQ6
On5TVkdQb2x5bGluZUVsZW1lbnQoCiBQYXRoIFNWR1BvbHlsaW5lRWxlbWVudDo6dG9QYXRoRGF0
YSgpIGNvbnN0CiB7CiAgICAgUGF0aCBwb2x5RGF0YTsKKwogICAgIGludCBsZW4gPSBwb2ludHMo
KS0+bnVtYmVyT2ZJdGVtcygpOwogICAgIGlmIChsZW4gPCAxKQogICAgICAgICByZXR1cm4gcG9s
eURhdGE7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBwb2x5RGF0YS5tb3ZlVG8o
cG9pbnRzKCktPmdldEl0ZW0oMCwgZWMpKTsKKwogICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVu
OyArK2kpCiAgICAgICAgIHBvbHlEYXRhLmFkZExpbmVUbyhwb2ludHMoKS0+Z2V0SXRlbShpLCBl
YykpOwogICAgIApAQCAtNTQsNiArNTcsNiBAQCBQYXRoIFNWR1BvbHlsaW5lRWxlbWVudDo6dG9Q
YXRoRGF0YSgpIGNvCiAKIH0KIAotLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQ
T1JUCiAKKy8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHls
aW5lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlsaW5l
RWxlbWVudC5oCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHls
aW5lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+
CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBS
b2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtE
RSBwcm9qZWN0CkBAIC0yMCw4ICsyMCw5IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV
U0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHUG9seWxpbmVFbGVtZW50SW1wbF9ICi0jZGVmaW5l
IEtTVkdfU1ZHUG9seWxpbmVFbGVtZW50SW1wbF9ICisjaWZuZGVmIFNWR1BvbHlsaW5lRWxlbWVu
dF9ICisjZGVmaW5lIFNWR1BvbHlsaW5lRWxlbWVudF9ICisKICNpZmRlZiBTVkdfU1VQUE9SVAog
CiAjaW5jbHVkZSAiU1ZHUG9seUVsZW1lbnQuaCIKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNW
R1RleHQuY3BwCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNW
R1RleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCIKKyNp
bmNsdWRlICJTVkdMZW5ndGguaCIKICNpbmNsdWRlICJTVkdMZW5ndGhMaXN0LmgiCiAjaW5jbHVk
ZSAiU1ZHVGV4dEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdSb290SW5saW5lQm94LmgiCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLWNoYW5nZXMtZXhwZWN0
ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5
IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tY2hh
bmdlcy1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllD
QVlBQUFDYWRvSndBQUFia1VsRVFWUjRuTzNkYjZ5ZWRYM0g4VS8valQ4TgpvWGF4UVVaWGd3Z082
bW8ySzdKc2hXN0Qxa2gwcmFEamo2VzE5M0ViWTJYTHBJNGxJbFd6QVdPTFNEVFRjNFEyeGVSRUtO
a2dFc0ZFCjJ2ckFkdFhGU2pFQk1iR2pFZEtFcnRpMFhTMDkzWVBSUlZCNnpuM3U2M3pQZlovemVw
MUhMZWY2OWhjZXRIMzN1cjdYUGVYNDhlUEgKQXdBQVVHRHFlQjhBQUFDWVBBUUlBQUJRUm9BQUFB
QmxCQWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FBQUFCbApCQWdBQUZCR2dB
QUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVh
QUFBQUFaUVFJCkFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJQUFC
UVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdVRUNBQUEKVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFn
QUFGQkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCRwpnQUFBQUdV
RUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFB
WlFRSUFBQlFSb0FBCkFBQmxCQWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FB
QUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUEKWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJH
Z0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdVRQpDQUFB
VUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlB
QUJRUm9BQUFBQmxCQWdBCkFGQkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxC
QWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlEKUm9BQUFBQmxCQWdBQUZCR2dBQUFB
R1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQQpB
QUFBWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJv
QUFBQUJsQkFnQUFGQkdnQUFBCkFHVUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFG
QkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmwKQkFnQUFGQkdnQUFBQUdVRUNB
QUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFR
SQpBQUJRUm9BQUFBQmxCQWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FBQUFC
bEJBZ0FBRkJHZ0FBQUFHVUVDQUFBClVFYUFBQUFBWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FB
QUFHVUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkcKZ0FBQUFHVUVDQUFBVUVh
QUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJR
Um9BQQpBQUJsQkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdB
QUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBClpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCR2dBQUFBR1VF
Q0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUUKQ0FBQVVFYUFBQUFB
WlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUFB
QUJsQkFnQQpBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdn
QUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRClJvQUFBQUJsQkFnQUFGQkdnQUNOK2w2K2w2RU1q
ZmN4QUlBdUpVQ0F4aHpKa2Z4K2ZqL241dHg4T3AvT251d1o3eU1CQUYxbXl2SGoKeDQrUDl5R0Fp
V0ZMdHVTeVhQYi9QNTZhcVZtYXBmbFlQcGIzNVgyWm51bmpkemdBb0N1NEF3STBabk0yditySFF4
bktvM2swZjVJLwp5ZHpNemQvbjcvUGovSGg4RGdjQWRBVjNRSURHTE03aVg0cVExNXFTS1ZtY3hl
bExYNVpsV1U3SktUV0hBd0M2Z2dBQkduRWtSeklyCnMvSS8rWjhSWHpNN3M3TWlLOUpLS3hmbG9q
RThIUURRTFFRSTBJalg3biswNjVKY2tyNzA1VVA1VUdabVpuTUhBd0M2aWgwUW9CSEQKUFhvMW5P
L2tPL2xvUHBvMzVVMzU4L3g1dnB2dk5uTXdBS0NydUFNQ05HSWsreC90V3BBRjZVdGZyczIxbVpW
WmpjNEdBTWFIQUFFNgpOcHI5ajNhY2x0TnlWYTVLSzYzOFFmNWdUSDROQUtDR0FBRTYxdW4rUnpz
dXlBVnBwWlVWV1pFNW1WUHlhd0lBemJFREFuUnN1RWV2CjVtZCtsbWQ1Wm1SR3g3L1cwM2s2Titm
bW5KTnpjbFd1eXVONVBFTVo2bmd1QUZCRGdBQWRHeTVBcnN5VjJaUk4yWk05dVNOMzVQeWMKMy9H
dmVUUkg4MkFlekpJc3liazVONS9KWjdJbmV6cWVDd0NNTFk5Z0FSMFp5ZjdINW16T3BibjBWVCsz
SlZ2U24vNXN5cWJHZGtlbQpaVnFXWm1uNjBwZjM1WDJabnVtTnpBVUFtaU5BZ0k0TXQvOXhhazdO
L3V4LzNVODgzNS85MlppTkdjaEFmcEFmTkhhdXMzSldWbVZWClZtZDEzcEszTkRZWEFPaU1SN0NB
amd6MytOVzc4KzdYalk4a21aVlorYXY4VlhabVo3Wm5lMXBwNVl5YzBmRzVYc2dMK2NmOFk5NmEK
dCthUDhrY1p6R0NPNUVqSGN3R0F6Z2dRb0NQREJVZzdiOGQ2Vjk2Vi92VG5wL2xwK3RPZmkzTnha
NGRMY2p6SDg2MThLMWZuNnB5ZApzL00zK1pzOGxhYzZuZ3NBakk1SHNJQlJHKzMrUnp0MlpWZjYw
NS83YzMvMlpkK281N3pXSmJra3JiVHk0WHc0TXpPenNia0F3TWtKCkVHRFVPdDMvYU1lUkhNbW1i
RXAvK3JNbFczSTh6ZnpXZFViT3lEVzVKcTIwOHM2OHM1R1pBTURyOHdnV01HcWQ3biswNDVTY2tt
dHkKVFo3SUUza216K1FUK1VUT3lsa2R6ejJRQS9sU3ZwU0ZXWmgzNUIzNVFyNlEvZG5md0lrQmdG
OUZnQUNqMXVUK1J6dk95M201UGJmbgp1VHlYaC9KUTNwdjNabW9EdjUzdHpNN2NtQnR6ZHM3T2lx
ekl0L1B0Qms0TEFQd2lqMkFCbzFLeC85R081L0pjN24zbDY3L3lYNDNOCnZTQVhwSlZXVm1SRjVt
Uk9ZM01CWUxJU0lNQ29WTzUvdEdNb1EzazhqNmMvL1hra2orUm9qall5ZDBabTVBUDVRUHJTbHov
T0h6ZHkKeHdVQUppTi9nZ0tqVXJuLzBZNnBtWnFsV1pwTjJaUTkyWk03Y2tmT3ova2R6ejJhbzNr
d0QyWkpsdVRjbkp2UDVEUFprejBObkJnQQpKaGNCQW96S2VPMS90R05PNW1SdDF1YnBQSjNOMlp6
cmNsMU96YWtkejkyZDNiazF0K2JOZVhPdXlCWDU5L3g3WHM3TERad1lBQ1krCmoyQUJiZXUyL1k5
MjdNLytiTXpHREdRZ1A4Z1BHcHQ3VnM3S3Fxeks2cXpPVy9LV3h1WUN3RVFqUUlDMmRlditSN3Yr
SS8rUmdReGsKTUlNNWtBT056SnlTS1ZtY3hXbWxsZVZaM3ZYL0R3Q2dta2V3Z0xaMTYvNUh1OTZW
ZCtYTCtYS2V6L01aeUVBdXpzVWR6enllNC9sVwp2cFZyY2szT3p0bjU2L3gxZG1WWEE2Y0ZnSWxC
Z0FCdDY0WDlqM2JNek15c3p1cHN5N1k4bVNlekptc3lPN003bnJzdiszSjM3czdiCjgvYjhYbjR2
OStiZUhNekJCazRNQUwzTEkxaEFXM3A1LzZNZFIzSWttN0lwL2VuUGxteko4VFR6VytVWk9TTlg1
K3IwcFMvdnpEc2IKbVFrQXZVU0FBRzJaS1BzZjdYZzJ6MllnQTltUURYa2hMelEyZDBFV3BDOTl1
VGJYWmxabU5UWVhBTHFaUjdDQXRreVUvWTkybkpmegpjbnR1ejNONUxnL2xvYnczNzIza2d3aDNa
bWR1ekkwNU8yZG5SVmJrMi9sMkE2Y0ZnTzRtUUlDMlRMVDlqM1pNei9Rc3k3SThta2Z6Cmsvd2t0
K1cyL0daK3MrTzVoM000RzdNeGk3SW9iOHZiY2xmdXl0N3NiZURFQU5COVBJSUZqTmhrMmY5b3gx
Q0c4bmdlejBBRzhuQWUKenRFY2JXVHVqTXpJQi9LQnROTEs1Ym04a1RzdUFOQU5CQWd3WXBOeC82
TWRlN00zNjdNK1g4bFg4a3llYVd6dXZNekw2cXpPcXF6SwpPVG1uc2JrQU1CNzhreG93WXBOeC82
TWRjekluYTdNMlQrZnBiTTdtWEpmcmNtcE83WGp1N3V6T3JiazFiODZiYzBXdXlML2wzL0p5Clht
N2d4QUJRVDRBQUl6YVo5ei9hZFdrdXpjWnN6UE41UHZma25peklnbzVuSHN1eGZEMWZ6N0lzeTl6
TXpTMjVKVC9PanhzNExRRFUKOFFnV01DTDJQenEzSXp2U24vNE1aakFIY3FDUm1WTXlKWXV6T0sy
MHNqekxKL1VkS0FCNmd3QUJSc1QrUjNNTzVtQUdNNWorOUdkNwp0amMyZDNabTV5UDVTRnBwWlg3
bU56WVhBSnJrRVN4Z1JPeC9OR2RtWm1aMVZtZGJ0dVhKUEprMVdaUFptZDN4M0gzWmw3dHpkOTZl
CnQrZVNYSko3YzI4TzVtQURKd2FBNWdnUVlFUW0ydjdIOWxlK3h0djh6TS9kdVRzL3pVL3oxWHcx
bCtXeVRNbVVqdWR1eTdhc3p1cTgKS1cvS24rWFA4dDE4dDRIVEFrRG5QSUlGREd1aTdYOXN6L1lz
eVpJa3lXTjVMQmZuNG5FKzBhczltMmN6a0lGc3lJYThrQmNhbTdzZwpDOUtYdmx5YmF6TXJzeHFi
Q3dEdEVDREFzQ2JTL3NlSitIZ3BMeVZKenN5WlhSa2hTZkp5WHM0amVTUURHY2czOG8wTVphaVJ1
YWZsCnRGeVpLOU5LSzR1eXFKR1pBREJTSHNFQ2hqVlI5ajllR3g5SjhsSmV5cElzNllySHNWNXJl
cVpuV1pibDYvbDZkbWQzMW1WZDVtVmUKeDNNUDUzQTJabU11emFXNUlCZmtydHlWdmRuYndJa0JZ
SGp1Z0FERFdwekZKNDJRdCtWdDJaUk51VEFYMWgycVRkdXpQZS9KZS9LegovT3hYL3ZkdXZoUHlp
NFl5bEcvbW0rbFBmeDdPd3ptYW80M01uWkVaZVgvZW43NzA1ZkpjbnFuK2ZRcUFNU0pBZ0pNYXlm
NUhrcHlTClUzSmJic3ZOdVRuVE1xM29kQ016WEh5YzBDc1Jjc0xlN00yR2JNaEFCdkpNbm1sczdy
ek15MGRmK1RvbjV6UTJGd0FTQVFJTVk3ajkKajlkYW1JVlpuL1ZkY3pma1Z6MTJkVEs5RmlFbmJN
M1c5S2MvRCtiQllXTnhwS1ptYXBabWFmclNseXR5UmFabmVpTnpBWmpjM0dNSApUcXJkMTdmdXlJ
NzhUbjRudCtmMkhNdXhNVHJWeUxRYkgwbDM3NFNjektJc3lzWnN6UE41UHZma25peklnbzVuRG1V
b2orYlJMTXV5CnpNM2MzSkpiOG15ZWJlQzBBRXhtN29BQUozVXN4M0puN3N5NnJNdVJIR25yMnZH
OEd6S2ErUGhGdlhvbjVCZnR5STcwcHorREdjeUIKSEdoazVwUk15V1c1TEgzcHkvSXM3NG1YRHdE
UVhRUUlNQ0pQNWFtc3pNcTI3NGlNeDI1SXAvRnh3a1NJa0NRNW1JTVp6R0FHTXBCdAoyZGJZM05t
Wm5ZL2tJMm1sbGZtWjM5aGNBQ1kyQVFLTTJMRWN5eDI1SSt1eUxqL1B6OXU2dHVwdVNGUHhjY0pF
aVpBVGRtVlgrdE9mCiszTi85bVZmWTNQZm5YZW5MMzM1Y0Q2Y21abloyRndBSmg0QkFyU3RXKytH
dEJNZlorYk1KQm54OTA2a0NFbis3KzFtbTdJcEF4bkkKNW16TzhUVHpSOEVaT1NOWDUrcTAwc3JD
TEd4a0pnQVRpd0FCUnFYYjdvYTBHeCtQNWJFa2FmdWFpUlFoSnp5YlovT1ZmQ1hyc3o0dgo1SVhH
NWk3SWdyVFN5blc1THJNeXE3RzVBUFEyQVFKMHBCdnVob3dtUGs2RVJDZlhUalF2NStVOGtrY3lr
SUY4STkvSVVJWWFtWHRhClRzdVZ1VEt0dExJb2l4cVpDVUR2RWlCQXg4Ynpia2dUQVNGQ2Z0bWU3
TW05cjN6dHp1N0c1cDZmODlOS0s5Zm4rc3pKbk1ibUF0QTcKQkFqUW1PcTdJVTJHZ3dqNTFZWXls
Ry9tbStsUGZ4N093em1hbzQzTW5aRVplWC9lbjc3MDVmSmNucWsrbGdwZzBoQWdRS05PM0EzNQpk
RDQ5cHA4Yk1oYkJJRUpPYm0vMlprTTJaQ0FEZVNiUE5EWjNYdWJsbzY5OG5aTnpHcHNMUUhjU0lN
Q1k2T1J1eUtmeXFhek4ydGU5Ckc3STkyL09ldkNjL3k4K0duZGR1S0lpUWtkbWFyZWxQZnpabFV3
N25jQ016cDJacWxtWnArdEtYSzNKRnBtZDZJM01CNkM0Q0JCZ3oKblg2SytuMjVMeGZsb2xmOWZF
VWdpSkNSMjUvOXVULzNaeUFEMlptZGpjMDlLMmRsWlZabWRWYm52SnpYMkZ3QXhwOEFBY1pjVTNk
RApLc05BaExSdlIzYWtQLzBaekdBTzVFQWpNMmRtWnA3TzAvbU4vRVlqOHdBWWZ3SUVLTkhwM1pD
YmNsUCtNbjlaR2dRaVpIUU81bUFHCk01aUJER1JidG5VMGEzM1c1L3BjMzlESkFPZ0dBZ1FvTmRx
N0lTUFZkQWlJa003c3lxNE1aQ0Fic3pIN3NxK3RhMWRtWmU3TGZXTjAKTWdER2l3QUJ5blZ5TitS
a3hpb0FSRWpuanVSSUhzcER1U3QzNVQvem44TisvNFc1TUR1eUk2Zm45SUxUQVZCSmdBRGpwc203
SVdQOQpGMzhSMHJsRE9aU0ZXWmdmNW9jbi9iN1RjM3AyWk1lb1A1d1NnTzdtazUrQWNYTlJMc3Ey
Yk1zLzVCOXlTazRaOVp5S3YvQmZuSXZ6CldCN0xtVGx6Mk85OUtTOWxTWlprZTdhUDJYbDYwUTI1
WWRqNFNKSXY1b3ZpQTJBQ0V5REF1SnFXYWJrbHQrUjcrVjRXWm1IYjExZmUKYlRpVVEzbGozamlp
N3hVaHI3WSs2N01oRzRiOXZwVlphZWtjWUlMekNCYlFOZHJkRGFtS2o1L2tKMW1idFhrZ0Q3Ujk3
Wms1TTF1egpOYitkM3g2RGsvV0dIK2FIV1ppRk9aUkRKLzArZXg4QWs0TTdJRURYYU9kdVNFVjhI
TTdoM0piYmNtRXVIRlY4dkNGdnlHZnoyVi82Ck1NWEo1RkFPNWFwY05XeDhuSjdUODBBZUVCOEFr
NEFBQWJyT1Jia28zOGwzWG5jM3BDSSt2cGF2NVlKY2tIVlpsOE01M05hMTB6SXQKZjVHL3lJL3lv
OXlZR3pNdDA4Ym9sTjNQM2djQXIrVVJMS0NyUFpXbnNpcXJzaU03a294OWZPek16cXpKbW16TjFs
RmR2eWlMOHZsOApQZ3V5b09HVDlaNzFXWjlWV1RYczkvbThENERKUllBQVhlL0Vic2puOHJrOG5J
ZkhKRDVlekl1NU5iZm1TL2xTanVWWTI5ZlB6ZHpjCm1UdnpwL25UeHMvV2kreDlBUEI2QkFqUU0z
NmVuK2ZYOG11TnpqeVdZL25YL0dzK21VL212L1BmYlY5L2FrN056Yms1dCtTV25KYlQKR2oxYnIv
SjVId0NjelBUeFBnREFTRFVkSDAva2lkeVVtL0prbmh6VjljdXpQUCtTZjhtOHpHdjBYTDF1cEhz
Zlg4Z1h4QWZBSkNSQQpnRWxuZDNibjQvbDRIc3lEbzdwK2Z1Ym44L2w4Rm1keHd5ZnJmZTE4M3Nm
S3JCejdBd0hRZFR5Q0JVd2FoM0lvZDc3eTFlNmJyWkwvCmU2M3V1cXpMRGJsaFVyL1o2dlhZK3dC
Z0pOd0JBU2FGQi9KQS9qWi9tK2Z5WE52WFRzdTA5S1V2bjgxbjgrdjU5VEU0WGUvemVSOEEKakpR
QUFTYTBuZG1abTNKVHRtVExxSzczV3QyUnNmY0J3RWo1SUVKZ1Fub3hMK2FHM0pEZnplK09Lajdt
Wm00R001Z3QyU0kraG1IdgpBNEIyMkFFQkpwU21YcXY3ZC9rN2p3bU5nTDBQQU5ybEVTeGd3dkJh
M1ZyMlBnQVlEUUVDOUR5djFSMGY5ajRBR0EwN0lFRFBPcFJECnVTMjM1YmZ5VzZPS2p6ZmtEYmtu
OStUNytiNzRhSk85RHdCR3l3NEkwSk8rbHEvbDQvbTQxK3FPQTNzZkFIVENJMWhBVC9GYTNmRmwK
N3dPQVRua0VDK2dKWHF2YkhleDlBTkFwZDBDQXJ1YTF1dDNEM2djQVRiQURBblN0Si9KRTFtUk5k
bVhYcUs3L1lENllmODQvZTYxdQpBK3g5QU5BVWQwQ0FydU8xdXQzRjNnY0FUYklEQW5TTlF6bVVU
K1ZUWHF2YlpleDlBTkFrZDBDQXJ1QzF1dDNKM2djQVRiTURBb3dyCnI5WHRYdlkrQUJnTEhzRUN4
b1hYNm5ZM2V4OEFqQldQWUFHbG1uaXQ3dHFzelNmeUNYL3BIVVAyUGdBWUt3SUVLT08xdXIzQjNn
Y0EKWThrT0NERG12RmEzZDlqN0FHQ3MyUUVCeG96WDZ2WVdleDhBVlBBSUZqQW12RmEzOTR4MDcr
T0wrYUs5RHdCR3pTTllRS04yWm1mVwpaRTIyWnV0NEg0VXhzRElyYzEvdUcrOWpBTkREQkFqUWlC
ZnpZajZaVCtiTCtYS081ZGg0SDRjeFlPOERnQ1o0QkF2b1NLZXYxYVUzCjJQc0FvQ2tDQkJpMVRs
K3JTKyt3OXdGQVU3d0ZDMmpiN3V6T1Zia3FmNWcvRkIrVHdNcXN6UFc1ZnJ5UEFjQUVZUWNFR0xG
RE9aUTcKY2tmK0tmK1V3ems4M3NlaGdMMFBBSnJtRVN4Z1JEcDVyUzY5eWQ0SEFHTkJnQUFuNWJX
Nms1ZTlEd0RHZ2tld0FBQ0FNcGJRQVFDQQpNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJ
Q0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDCkJBQUFLQ05BQUFD
QU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFB
QUlBeUFnUUEKQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dq
UUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBbwpJMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFB
S0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BCkFBQ0FNZ0lF
QUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlB
Z1FBQUNnalFBQUEKZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFn
RElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeQpBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFB
QUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFCkFBQW9J
MEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFD
Z2pRQUFBZ0RJQ0JBQUEKS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JB
QUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnagpRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1n
SUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBCkFJ
QXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFB
QWdESUNCQUFBS0NOQUFBQ0EKTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NO
QUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQwpCQUFBS0NOQUFBQ0FNZ0lFQUFB
b0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FB
CkFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElD
QkFBQUtDTkFBQUNBTWdJRUFBQW8KSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNB
TWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQQpBQUNBTWdJRUFBQW9JMEFB
QUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pR
QUFBCmdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFL
Q05BQUFDQU1nSUVBQUFvSTBBQUFJQXkKQWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVB
QUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRQpBQUFvSTBBQUFJQXlB
Z1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdE
SUNCQUFBCktDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFB
Q0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2oKUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kw
QUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQQpBSUF5QWdRQUFD
Z2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFB
QUtDTkFBQUNBCk1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJ
RUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUMKQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlB
eUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQQpBQ2dqUUFB
QWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05B
QUFDQU1nSUVBQUFvCkkwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFv
STBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkEKQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FB
QUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQQpnRElD
QkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeS93c2RQN0VFdlF6UFpBQUFBQUJKUlU1RXJrSmdn
Zz09CgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1yZW1v
dmFsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBh
cyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1w
b2x5Z29uLXJlbW92YWwtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlw
ZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdB
QUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBVURrbEVRVlI0bk8zZFFZaWNaeDNIOFo5R2JCSzEKYVJR
eGFSbzhlS2hOaXg0a2VCTTAwTjZWZ3JkdUJBOUdTUVJyYkErMUNSU2hGVVVyRmhVaDhTQkk0OGxi
VDZYeElERVZERFlGRWFWRgpiUk50TFBHdzBjSVNEMlpMMm1SM1ozWm5mak96OC9uTVlUYkp2THRQ
YnZ2bGVmL1ArNDZyVjY5ZURRQUFRTUU3SjcwQUFBQmdmZ2dRCkFBQ2dSb0FBQUFBMUFnUUFBS2dS
SUFBQVFJMEFBUUFBYWdRSUFBQlFJMEFBQUlBYUFRSUFBTlFJRUFBQW9FYUFBQUFBTlFJRUFBQ28K
RVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05BQUFDQUdnRUNBQURVQ0JBQUFLQkdnQUFBQURVQ0JBQUFx
QkVnQUFCQWpRQUJBQUJxQkFnQQpBRkFqUUFBQWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMUFnUUFB
S2dSSUFBQVFJMEFBUUFBYWdRSUFBQlFJMEFBQUlBYUFRSUFBTlFJCkVBQUFvRWFBQUFBQU5RSUVB
QUNvRVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05BQUFDQUdnRUNBQURVQ0JBQUFLQkdnQUFBQURVQ0JB
QUEKcUJFZ0FBQkFqUUFCQUFCcUJBZ0FBRkFqUUFBQWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMUFn
UUFBS2dSSUFBQVFJMEFBUUFBYWdRSQpBQUJRSTBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFBQU5R
SUVBQUNvRVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05BQUFDQUdnRUNBQURVCkNCQUFBS0JHZ0FBQUFE
VUNCQUFBcUJFZ0FBQkFqUUFCQUFCcUJBZ0FBRkFqUUFBQWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFB
MUFnUUEKQUtnUklBQUFRSTBBQVFBQWFnUUlBQUJRSTBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFB
QU5RSUVBQUNvRVNBQUFFQ05BQUVBQUdvRQpDQUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JHZ0FB
QUFEVUNCQUFBcUJFZ0FBQkFqUUFCQUFCcUJBZ0FBRkFqUUFBQWdCb0JBZ0FBCjFBZ1FBQUNnUm9B
QUFBQTFBZ1FBQUtnUklBQUFRSTBBQVFBQWFnUUlBQUJRSTBBQUFJQWFBUUlBQU5RSUVBQUFvRWFB
QUFBQU5RSUUKQUFDb0VTQUFBRUNOQUFFQUFHb0VDQUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JH
Z0FBQUFEVUNCQUFBcUJFZ0FBQkFqUUFCQUFCcQpCQWdBQUZBalFBQUFnQm9CQWdBQTFBZ1FBQUNn
Um9BQUFBQTFBZ1FBQUtnUklBQUFRSTBBQVFBQWFnUUlBQUJRSTBBQUFJQWFBUUlBCkFOUUlFQUFB
b0VhQUFBQUFOUUlFQUFDb0VTQUFBRUNOQUFFQUFHb0VDQUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFB
S0JHZ0FBQUFEVUMKQkFBQXFCRWdBQUJBalFBQkFBQnFCQWdBQUZBalFBQUFnQm9CQWdBQTFBZ1FB
QUNnUm9BQUFBQTFBZ1FBQUtnUklBQUFRSTBBQVFBQQphZ1FJQUFCUUkwQUFBSUFhQVFJQUFOUUlF
QUFBb0VhQUFBQUFOUUlFQUFDb0VTQUFBRUNOQUFFQUFHb0VDQUFBVUNOQUFBQ0FHZ0VDCkFBRFVD
QkFBQUtCR2dBQUFBRFVDQkFBQXFCRWdBQUJBalFBQkFBQnFCQWdBQUZBalFBQUFnQm9CQWdBQTFB
Z1FBQUNnUm9BQUFBQTEKQWdRQUFLZ1JJQUFBUUkwQUFRQUFhZ1FJQUFCUUkwQUFBSUFhQVFJQUFO
UUlFQUFBb0VhQUFBQUFOUUlFQUFDb0VTQUFBRUNOQUFFQQpBR29FQ0FBQVVDTkFBQUNBR2dFQ0FB
RFVDQkFBQUtCR2dBQUFBRFVDQkFBQXFCRWdBQUJBalFBQkFBQnFCQWdBQUZBalFBQUFnQm9CCkFn
QUExQWdRQUFDZ1JvQUFBQUExQWdRQUFLZ1JJQUFBUUkwQUFRQUFhZ1FJQUFCUUkwQUFBSUFhQVFJ
QUFOUUlFQUFBb0VhQUFBQUEKTlFJRUFBQ29FU0FBQUVDTkFBRUFBR29FQ0FBQVVDTkFBQUNBR2dF
Q0FBRFVDQkFBQUtCR2dBQUFBRFVDQkFBQXFCRWdBQUJBalFBQgpBQUJxQkFnQUFGQWpRQUFBZ0Jv
QkFnQUExQWdRQUFDZ1JvQUFBQUExQWdRQUFLZ1JJQUFBUUkwQUFRQUFhZ1FJQUFCUUkwQUFBSUFh
CkFRSUFBTlFJRUFBQW9FYUFBQUFBTlFJRUFBQ29FU0FBQUVDTkFBRUFBR29FQ0FBQVVDTkFBQUNB
R2dFQ0FBRFVDQkFBQUtCR2dBQUEKQURVQ0JBQUFxQkVnQUFCQWpRQUJBQUJxQkFnQUFGQWpRQUFB
Z0JvQkFnQUExQWdRQUFDZ1JvQUFBQUExQWdRQUFLZ1JJQUFBUUkwQQpBUUFBYWdRSUFBQlFJMEFB
QUlBYUFRSUFBTlFJRUFBQW9FYUFBQUFBTlFJRUFBQ29FU0FBQUVDTkFBRUFBR29FQ0FBQVVDTkFB
QUNBCkdnRUNBQURVQ0JBQUFLQkdnQUJ6NmN5MUZ3RFFKVUNBdVhNbVozTGZ0WmNJQVlDdWQxeTll
dlhxcEJjQnpKWURPWkMvNVcrNS9kcHIKZDNibjl0eWVEK1ZEdVNOM3ZQbm45K2E5azE3cURjN2tU
TzdOdmZsMy9wMGsyWkVkZVNiUDVKUDU1SVJYQmdEelFZQUFRL2xML3BLUAo1Q01EZlhaN3RtZDNk
bWR2OXI0WkpXOS9iNGJLOHM3SDVWeCt5OStMRUFEb2VkZWtGd0RNbHAvbjV3Ti9kakdMK2ZPMTEy
cTJaL3RiCmRrNXVGaW03c3p2dnkvdld2ZTZWNGlOSkx1ZHk3c3Q5SWdRQUN1eUFBRVA1YUQ2YVAr
YVBFL25aMjdJdGQrU09tOGJKOWU5dkQ1WFYKNHVONmRrSUFZUHdFQ0RDdzUvTjg5bWYvcEpleHB1
VlEyWjNkMlpWZGVTYlByQmtmeTBRSUFJeVhBQUVHOXRWOE5kL1A5eWU5akxIYgprUjM1YVg2YWUz
SlBicy90dVRXM1RucEpBTEJwQ0JCZ0lFdFp5cDdzeWNWY25QUlM2clpsVy9aa3o0cnpLYnV5SzN1
eVI2Z0F3QUFFCkNEQ1ExL042N3MyOWVUN1BUM29wVTJzNVZKWnYvVnFPbHJlSHk0N3NtUFJTQVdC
aUJBZ3dzS1VzNWZFOG51TTVuamZ5eHFTWE03TzIKWmR1YllYS3pYWlhsZDZFQ3dHWWtRSUNobmMv
NUhNekJuTTNab2E5OVQ5NlRBem1RVjYrOS9wRi9pSmtWWEI4cXkxR3lLN3ZlRWk5QwpCWUJaSTBD
QWRkbklic2orN00vSm5NeSs3TXZWWE0wLzg4KzhrbGZ5YWw3Tks5ZGV5MTh2dnd1VmxXM04xamR2
L1ZydE9TcTM1YlpKCkx4VUFCQWl3TWVkelBndFpHSG8yNUpiY2trZnphSTdtYUxaa3k1cWZYdzZW
bTBYS3IvUHJ2SkFYMXZ0Zm1CdGJzL1dHSFpYbHI2Ly8KczFBQllKd0VDTEJoUzFuS0Uza2l4M0pz
WGJzaEozSWlkK2Z1ZGYzc1FSOHltQ1MzNXRiY2xidnlTbDdKeFZ5MG83S0M1VkJaN1dHUAp1N003
TzdOejBrc0ZZQVlKRUdCa1dyc2h5NGFKajVzOVlQRDZXNzlleWt0NUtBOE4vTUJDYmd5VmxkNkZD
Z0RYRXlEQVNDM3ZoaHpQCjhmdzMveDNxMm1GMlF6WWFIeHY5bmtseVorN01iYmt0citiVlhNZ0ZP
eW9yMkpxdGE4Nm5DQldBK1NGQWdMRVk1MjdJT09KakZOLzcKdGJ5MjRoRDloVnpJMy9QM1hNekZv
Y05zWHF3V0tnZHlJSHV5WjlKTEJHQUVCQWd3TnVQWURSbG5mTFIreG5Lb1hCOHAxdy9YTDgrbwpD
SlgvMjVkOU9adXoyWjd0azE0S0FDTWdRSUN4RzlWdVNDTStsalYvMWtwZXkyczM3S1M4L1JTd0M3
bXdxVU5sZTdibmJNNW1YL1pOCmVpa0FqSWdBQVNvMnVodHlKRWZ5NVh5NUdnVFRFQ0dEdUpSTHF6
NUhaZmsxaTZGeU1pZnpRQjZZOURJQUdDRUJBbFN0ZHpka1VLTU8KZ1ZtSmtFRmN5cVZWSC9ZNGJh
R3lrSVdjeUlsSkx3T0FFUk1nUU4xR2RrTldNNjRBMkV3Uk1vanJRMlcxOTNHR2lya1BnTTFMZ0FB
VApNOHJka0hILzRqOXZFVEtJZitWZk45MVJlZnZwWC8vSmY0YjZ2dVkrQURZM0FRSk0xQ2gyUTFx
LzhJdVE5VmtPbFMva0MvbHRmcnZtCjU4MTlBR3h1NzV6MEFvRDV0aVZiOG5BZXp1L3l1K3pQL3FH
dmIvNml2NWpGZkRBZkhPaXpsM001OStXK25NbVpNYTlxK3IwLzc4L1oKbkIwb1BoYXlJRDRBTmpr
N0lNRFVHSFkzcEJVZkwrV2xITTNSbk1xcG9hL2RrUjA1bmRQNVdENDJocFhOaGhmell2Wm5meGF6
dU9ybgp6SDBBekFjN0lNRFVHR1kzcEJFZlYzSWx4M0lzKzdKdlhmR3hNenZ6V0I2NzRXR0s4MlF4
aTdrLzk2OFpIOXV6UGFkeVNud0F6QUVCCkFreWR1M04zZnBQZjVGdjVWbTdKTFRmOGV5TStuczdU
dVROMzVuaU81MHF1REhYdGxtekpsL0tsL0NsL3lsZnlsV3pKbGpHdGN2b2QKeXFHOG1CZlgvTnhU
ZWNyUU9jQ2NjQXNXTU5YTzUzd081bURPNW15UzhjZkh1WnpMNFJ6TzZaeGUxL1dmeXFmeVpKN014
L1B4RWE5cwo5cHpNeVJ6TXdUVS81M2tmQVBORmdBQlRiM2syNUh2NVhuNlZYNDBsUGk3bFVyNlpi
K2JIK1hHV3NqVDA5WHV6TjAva2lYdytueC81CjJtYVJ1UThBVmlKQWdKbnhSdDdJdS9QdWtYN1Bw
U3psUi9sUkhza2plVDJ2RDMzOTFtek4xL1AxUEp5SHN5M2JScnEyV2JXWXhlelAKL2pWdnZmSzhE
NEQ1OUs1Skx3QmdVS09PajJmemJJN2tTUDZRUDZ6citzL21zL2x1dnBzUDU4TWpYZGVzRzNUdTQ0
ZjVvZmdBbUVNQwpCSmc3TCtmbFBKZ0g4OHY4Y2wzWDM1Tjc4bVNlektmejZSR3ZiUGFkek1uOExE
OWI4M01MMTE0QXpCKzNZQUZ6WXpHTGVlTGFhOWlUCnJaTC9INnQ3UE1kektJZm0rbVNybFpqN0FH
QVFka0NBdVhBcXAvSzFmQzEvelYrSHZuWkx0dVNMK1dJZXkyUDVRRDR3aHRYTlBzLzcKQUdCUUFn
VFkxTTdsWEk3a1NKN0xjK3U2M3JHNmd6SDNBY0NnUElnUTJKUXU1VklPNVZBK2tVK3NLejcyWm05
K2tWL2t1VHduUHRaZwo3Z09BWVpnQkFUYVZVUjJyKzFBZWNwdlFBTXg5QURBc3QyQUJtNFpqZGJ2
TWZRQ3dIZ0lFbUhtTzFaME1jeDhBckljWkVHQm1MV1l4CngzSXNkK1d1ZGNYSHp1ek1EL0tEL0Q2
L0Z4OURNdmNCd0hxWkFRRm0wdE41T2cvbVFjZnFUb0M1RHdBMndpMVl3RXh4ck81a21mc0EKWUtQ
Y2dnWE1CTWZxVGdkekh3QnNsQjBRWUtvNVZuZDZtUHNBWUJUTWdBQlQ2OWs4bThNNW5CZnl3cnF1
LzF3K2wrL2tPNDdWSFFGegpId0NNaWgwUVlPbzRWbmU2bVBzQVlKVE1nQUJUWXpHTGVUU1BPbFoz
eXBqN0FHQ1U3SUFBVThHeHV0UEozQWNBbzJZR0JKZ294K3BPCkwzTWZBSXlEVzdDQWlYQ3M3blF6
OXdIQXVMZ0ZDNmdheGJHNlIzTTAzOGczL05JN1J1WStBQmdYQVFMVU9GWjNOcGo3QUdDY3pJQUEK
WStkWTNkbGg3Z09BY1RNREFveU5ZM1ZuaTdrUEFCcmNnZ1dNaFdOMVo4K2djeDlQNVNsekh3Q3Nt
MXV3Z0pFNmwzTTVuTU01bmRPVApYZ3Bqc0pDRm5NaUpTUzhEZ0JrbVFJQ1J1SlJMZVNTUDVDZjVT
WmF5Tk9ubE1BYm1QZ0FZQmJkZ0FSdXkwV04xbVEzbVBnQVlGUUVDCnJOdEdqOVZsZHBqN0FHQlVu
SUlGRE8zbHZKejdjMzgrazgrSWp6bXdrSVU4a0FjbXZRd0FOZ2t6SU1EQUZyT1l4L040dnAxdjUw
cXUKVEhvNUZKajdBR0RVM0lJRkRHUWp4K295bTh4OUFEQU9BZ1JZbFdOMTU1ZTVEd0RHd1MxWUFB
QkFqU0YwQUFDZ1JvQUFBQUExQWdRQQpBS2dSSUFBQVFJMEFBUUFBYWdRSUFBQlFJMEFBQUlBYUFR
SUFBTlFJRUFBQW9FYUFBQUFBTlFJRUFBQ29FU0FBQUVDTkFBRUFBR29FCkNBQUFVQ05BQUFDQUdn
RUNBQURVQ0JBQUFLQkdnQUFBQURVQ0JBQUFxQkVnQUFCQWpRQUJBQUJxQkFnQUFGQWpRQUFBZ0Jv
QkFnQUEKMUFnUUFBQ2dSb0FBQUFBMUFnUUFBS2dSSUFBQVFJMEFBUUFBYWdRSUFBQlFJMEFBQUlB
YUFRSUFBTlFJRUFBQW9FYUFBQUFBTlFJRQpBQUNvRVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05BQUFD
QUdnRUNBQURVQ0JBQUFLQkdnQUFBQURVQ0JBQUFxQkVnQUFCQWpRQUJBQUJxCkJBZ0FBRkFqUUFB
QWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMUFnUUFBS2dSSUFBQVFJMEFBUUFBYWdRSUFBQlFJMEFB
QUlBYUFRSUEKQU5RSUVBQUFvRWFBQUFBQU5RSUVBQUNvRVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05B
QUFDQUdnRUNBQURVQ0JBQUFLQkdnQUFBQURVQwpCQUFBcUJFZ0FBQkFqUUFCQUFCcUJBZ0FBRkFq
UUFBQWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMUFnUUFBS2dSSUFBQVFJMEFBUUFBCmFnUUlBQUJR
STBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFBQU5RSUVBQUNvRVNBQUFFQ05BQUVBQUdvRUNBQUFV
Q05BQUFDQUdnRUMKQUFEVUNCQUFBS0JHZ0FBQUFEVUNCQUFBcUJFZ0FBQkFqUUFCQUFCcUJBZ0FB
RkFqUUFBQWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMQpBZ1FBQUtnUklBQUFRSTBBQVFBQWFnUUlB
QUJRSTBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFBQU5RSUVBQUNvRVNBQUFFQ05BQUVBCkFHb0VD
QUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JHZ0FBQUFEVUNCQUFBcUJFZ0FBQkFqUUFCQUFCcUJB
Z0FBRkFqUUFBQWdCb0IKQWdBQTFBZ1FBQUNnUm9BQUFBQTFBZ1FBQUtnUklBQUFRSTBBQVFBQWFn
UUlBQUJRSTBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFBQQpOUUlFQUFDb0VTQUFBRUNOQUFFQUFH
b0VDQUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JHZ0FBQUFEVUNCQUFBcUJFZ0FBQkFqUUFCCkFB
QnFCQWdBQUZBalFBQUFnQm9CQWdBQTFBZ1FBQUNnUm9BQUFBQTFBZ1FBQUtnUklBQUFRSTBBQVFB
QWFnUUlBQUJRSTBBQUFJQWEKQVFJQUFOUUlFQUFBb0VhQUFBQUFOUUlFQUFDb0VTQUFBRUNOQUFF
QUFHb0VDQUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JHZ0FBQQpBRFVDQkFBQXFCRWdBQUJBalFB
QkFBQnFCQWdBQUZBalFBQUFnQm9CQWdBQTFBZ1FBQUNnUm9BQUFBQTFBZ1FBQUtnUklBQUFRSTBB
CkFRQUFhZ1FJQUFCUUkwQUFBSUFhQVFJQUFOUUlFQUFBb0VhQUFBQUFOUUlFQUFDb0VTQUFBRUNO
QUFFQUFHb0VDQUFBVUNOQUFBQ0EKR2dFQ0FBRFVDQkFBQUtCR2dBQUFBRFVDQkFBQXFCRWdBQUJB
alFBQkFBQnFCQWdBQUZBalFBQUFnQm9CQWdBQTFBZ1FBQUNnUm9BQQpBQUExQWdRQUFLZ1JJQUFB
UUkwQUFRQUFhZ1FJQUFCUUkwQUFBSUFhQVFJQUFOUUlFQUFBb0VhQUFBQUFOUUlFQUFDb0VTQUFB
RUNOCkFBRUFBR29FQ0FBQVVDTkFBQUNBR2dFQ0FBRFVDQkFBQUtCR2dBQUFBRFVDQkFBQXFCRWdB
QUJBalFBQkFBQnFCQWdBQUZBalFBQUEKZ0JvQkFnQUExQWdRQUFDZ1JvQUFBQUExQWdRQUFLZ1JJ
QUFBUUkwQUFRQUFhZ1FJQUFCUUkwQUFBSUFhQVFJQUFOUUlFQUFBb0VhQQpBQUFBTlFJRUFBQ29F
U0FBQUVDTkFBRUFBR29FQ0FBQVVDTkFBQUNBR2dFQ0FBRFVDQkFBQUtCR2dBQUFBRFVDQkFBQXFC
RWdBQUJBCmpRQUJBQUJxQkFnQUFGQWpRQUFBZ0JvQkFnQUExQWdRQUFDZ1JvQUFBQUExQWdRQUFL
Z1JJQUFBUUkwQUFRQUFhZ1FJQUFCUUkwQUEKQUlBYUFRSUFBTlFJRUFBQW9FYUFBQUFBTlFJRUFB
Q29FU0FBQUVDTkFBRUFBR29FQ0FBQVVDTkFBQUNBR2dFQ0FBRFVDQkFBQUtCRwpnQUFBQURVQ0JB
QUFxQkVnQUFCQWpRQUJBQUJxQkFnQUFGQWpRQUFBZ0JvQkFnQUExQWdRQUFDZ1JvQUFBQUExQWdR
QUFLZ1JJQUFBClFJMEFBUUFBYWdRSUFBQlFJMEFBQUlBYUFRSUFBTlFJRUFBQW9FYUFBQUFBTlFJ
RUFBQ28rUis3QTI3Q3ExaW5td0FBQUFCSlJVNUUKcmtKZ2dnPT0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12014</attachid>
            <date>2006-12-24 18:07:16 -0800</date>
            <delta_ts>2006-12-25 16:53:37 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>FixSVGPODLists.diff</filename>
            <type>text/plain</type>
            <size>69450</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NDEyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDYtMTItMjUgIE5pa29sYXMgWmltbWVybWFu
biAgPHppbW1lcm1hbm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXhlczogaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE5NjMKKyAgICAgICAgRml4ZXM6IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMTIzCisKKyAgICAgICAgQWRkaW5nIHR3byBuZXcgdGVzdGNhc2VzIGRlbW9u
c3RyYXRpbmcgdGhlIHdvcmtpbmcgSlMgU1ZHUE9ETGlzdCB3cmFwcGVycy4KKworICAgICAgICAq
IHN2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tY2hhbmdlcy1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1jaGFuZ2VzLWV4
cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdv
bi1jaGFuZ2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9qcy11
cGRhdGUtcG9seWdvbi1jaGFuZ2VzLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9q
cy11cGRhdGUtcG9seWdvbi1yZW1vdmFsLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLXJlbW92YWwtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLXJlbW92YWwtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29u
LXJlbW92YWwuc3ZnOiBBZGRlZC4KKwogMjAwNi0xMi0yNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmLgpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1jaGFuZ2VzLWV4cGVjdGVkLmNoZWNrc3VtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tY2hh
bmdlcy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9j
dXN0b20vanMtdXBkYXRlLXBvbHlnb24tY2hhbmdlcy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSBAQAorMmMwNWJmZmY1NTg0ODhiOTY5OWE5OWVkOTE2MjAwNmYKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pz
LXVwZGF0ZS1wb2x5Z29uLWNoYW5nZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tY2hhbmdlcy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29u
LWNoYW5nZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7c3ZnfSBhdCAoMjY1LjIwLDIwOS42MSkgc2l6ZSAx
NjEuMTV4MTA0LjM5CisgICAgICBSZW5kZXJQYXRoIHtwb2x5Z29ufSBhdCAoMjY1LjIwLDIwOS42
MSkgc2l6ZSAxNjEuMTV4MTA0LjM5IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYw
MF0gW3N0cm9rZSB3aWR0aD04LjAwXX1dIFtkYXRhPSJNMjcwLjAwLDI1NS4wMEwzMDAuMDAsMjc1
LjAwTDMyMC4wMCwyNTUuMDBMMzQwLjAwLDI3NS4wMEwyODAuMDAsMzEwLjAwTDM5MC4wMCwzMTAu
MDBMNDIwLjAwLDI3MC4wMEwyODAuMDAsMjE1LjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9j
dXN0b20vanMtdXBkYXRlLXBvbHlnb24tY2hhbmdlcy5zdmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1jaGFuZ2VzLnN2ZwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tY2hhbmdlcy5z
dmcJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9IklTTy04ODU5LTEiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4KKzxzdmcgd2lkdGg9IjQ1MCIgaGVp
Z2h0PSI0NTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisKKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKword2luZG93LnNldFRpbWVvdXQoImNsaWNrTm93KCkiLCAw
KTsKKworZnVuY3Rpb24gY2xpY2tOb3coKSB7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyNzAsIDI2NSk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBt
b3VzZUhhbmRsZXIoZXZ0KQoreworICAgIHZhciBwb2x5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInBvbHlnb24iKTsKKyAgICB2YXIgbnIgPSBwb2x5LnBvaW50cy5udW1iZXJPZkl0ZW1zOwor
ICAgIGZvcihpID0gMDsgaSAmbHQ7IG5yOyBpKyspIHsKKyAgICAgICAgdmFyIHAgPSBwb2x5LnBv
aW50cy5nZXRJdGVtKGkpOworICAgICAgICBwLnkgPSBwLnkgLSAxMDsKKyAgICB9Cit9Cis8L3Nj
cmlwdD4KKworPHBvbHlnb24gaWQ9InBvbHlnb24iIG9uY2xpY2s9Im1vdXNlSGFuZGxlcihldnQp
IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMEZGMDAiIHN0cm9rZS13aWR0aD0iOCIgcG9pbnRzPSIy
NzAsMjY1IDMwMCwyODUgMzIwLDI2NSAzNDAsMjg1IDI4MCwzMjAgMzkwLDMyMCA0MjAsMjgwIDI4
MCwyMjUiLz4KKworPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0
ZS1wb2x5Z29uLXJlbW92YWwtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1yZW1vdmFsLWV4cGVjdGVkLmNoZWNr
c3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9s
eWdvbi1yZW1vdmFsLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBA
CitmNjU0ZDk3NGMzODFhZDBiMTU0MzQ5MmIwYWM3YjlkMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tcmVt
b3ZhbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9q
cy11cGRhdGUtcG9seWdvbi1yZW1vdmFsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tcmVtb3ZhbC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtzdmd9IGF0ICgyNjUuMjAsMjU5LjM0KSBzaXplIDE2Mi4yNXg2NC42NgorICAgICAg
UmVuZGVyUGF0aCB7cG9seWdvbn0gYXQgKDI2NS4yMCwyNTkuMzQpIHNpemUgMTYyLjI1eDY0LjY2
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF0gW3N0cm9rZSB3aWR0aD04LjAw
XX1dIFtkYXRhPSJNMjcwLjAwLDI2NS4wMEwzMDAuMDAsMjg1LjAwTDMyMC4wMCwyNjUuMDBMMzQw
LjAwLDI4NS4wMEwyODAuMDAsMzIwLjAwTDM5MC4wMCwzMjAuMDBMNDIwLjAwLDI4MC4wMCJdCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLXJlbW92YWwuc3Zn
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24t
cmVtb3ZhbC5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVw
ZGF0ZS1wb2x5Z29uLXJlbW92YWwuc3ZnCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiBzdGFuZGFsb25lPSJubyI/
PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAyMDAxMDkwNC8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+
Cis8c3ZnIHdpZHRoPSI0NTAiIGhlaWdodD0iNDUwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK3dpbmRvdy5zZXRU
aW1lb3V0KCJjbGlja05vdygpIiwgMCk7CisKK2Z1bmN0aW9uIGNsaWNrTm93KCkgeworICAgIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
MjcwLCAyNjUpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOworICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIH0KK30KKworZnVuY3Rpb24gbW91c2VIYW5kbGVyKGV2dCkKK3sKKyAgICB2YXIgcG9seSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb2x5Z29uIik7CisgICAgcG9seS5wb2ludHMucmVt
b3ZlSXRlbShwb2x5LnBvaW50cy5udW1iZXJPZkl0ZW1zIC0gMSk7Cit9Cis8L3NjcmlwdD4KKwor
PHBvbHlnb24gaWQ9InBvbHlnb24iIG9uY2xpY2s9Im1vdXNlSGFuZGxlcihldnQpIiBmaWxsPSJu
b25lIiBzdHJva2U9IiMwMEZGMDAiIHN0cm9rZS13aWR0aD0iOCIgcG9pbnRzPSIyNzAsMjY1IDMw
MCwyODUgMzIwLDI2NSAzNDAsMjg1IDI4MCwzMjAgMzkwLDMyMCA0MjAsMjgwIDI4MCwyMjUiLz4K
KworPC9zdmc+CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MTIpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDg4IEBACisyMDA2LTEyLTI1ICBOaWtvbGFzIFppbW1lcm1hbm4g
IDx6aW1tZXJtYW5uQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRml4ZXM6IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExOTYzCisgICAgICAgIEZpeGVzOiBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTEyMworCisgICAgICAgIEZpeCBTVkdMaXN0IEpTIHdyYXBwZXJzLCB3aGljaCBv
cGVyYXRlIG9uIFBPRCB0eXBlcyAoaWUuIFBvaW50KS4KKyAgICAgICAgVGhlcmUgZXhpc3RzIGEg
c3BlY2lhbCBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvckZvckxpc3QgY2xhc3Mgbm93LAorICAg
ICAgICB3aGljaCBvcGVyYXRvcnMgb24gc3BlY2lhbGl6ZWQgU1ZHUE9ETGlzdCdzLiBJdCBtYWtl
cyBpdCBwb3NzaWJsZQorICAgICAgICB0byBzdXBwb3J0IHN0dWZmIGxpa2UgIm15TGlzdC5nZXRJ
dGVtKDApLnZhbHVlID0gMjAwIiwgZm9yIFBPRCBsaXN0cy4KKworICAgICAgICBBZGRpbmcgdHdv
IG5ldyB0ZXN0Y2FzZXMgZGVtb25zdHJhdGluZyB0aGUgdXNhZ2Ugb2YgU1ZHIERPTSAmIFNWR0Fu
aW1hdGVkUG9pbnRzLgorCisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1ZH
UE9EVHlwZVdyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUE9EVHlwZVdyYXBwZXJD
cmVhdG9yRm9yTGlzdDo6SlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdDo6fkpTU1ZHUE9E
VHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BPRFR5
cGVXcmFwcGVyQ3JlYXRvckZvckxpc3Q6OmNvbW1pdENoYW5nZSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNTVkdQYXRoU2VnTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRh
dGVQYXRoU2VnQ29udGV4dE1hcCk6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVGcm9tUGF0aFNl
Z0NvbnRleHRNYXApOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQYXRoU2VnTGlzdDo6Y2xlYXIp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQYXRoU2VnTGlzdDo6aW5pdGlhbGl6ZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNTVkdQb2ludExpc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkpTU1ZHUG9pbnRMaXN0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpK
U1NWR1BvaW50TGlzdDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BvaW50
TGlzdDo6Z2V0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BvaW50TGlzdDo6aW5zZXJ0
SXRlbUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BvaW50TGlzdDo6cmVwbGFjZUl0
ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQb2ludExpc3Q6OnJlbW92ZUl0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTVkdQb2ludExpc3Q6OmFwcGVuZEl0ZW0pOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGtzdmcyL21pc2Mv
U1ZHRG9jdW1lbnRFeHRlbnNpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4
dGVuc2lvbnM6OmJhc2VWYWx1ZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4
dGVuc2lvbnM6OmdlbmVyaWNDb250ZXh0TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3Vt
ZW50RXh0ZW5zaW9uczo6Z2VuZXJpY0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRG9j
dW1lbnRFeHRlbnNpb25zOjpzZXRHZW5lcmljQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdEb2N1bWVudEV4dGVuc2lvbnM6OnJlbW92ZUdlbmVyaWNDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0RvY3VtZW50RXh0ZW5zaW9uczo6aGFzR2VuZXJpY0NvbnRleHQpOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFBhdGhEYXRhLmNwcDoKKyAgICAgICAgKiBrc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRl
ZFBvaW50cy5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmg6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5n
dGhMaXN0OjpwYXJzZSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUE9ETGlz
dEl0ZW06OlNWR1BPRExpc3RJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BPRExpc3RJdGVt
OjpvcGVyYXRvciBJdGVtJik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQT0RMaXN0SXRlbTo6b3Bl
cmF0b3IgY29uc3QgSXRlbSYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUE9ETGlzdEl0ZW06OnZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BPRExpc3RJdGVtOjpzZXRWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQT0RMaXN0OjpTVkdQT0RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BPRExpc3Q6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUE9ETGlzdDo6
Z2V0Rmlyc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUE9ETGlzdDo6Z2V0TGFzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQT0RMaXN0OjpnZXRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BPRExpc3Q6Omluc2VydEl0ZW1CZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUE9ETGlz
dDo6cmVwbGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUE9ETGlzdDo6cmVtb3ZlSXRl
bSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQT0RMaXN0OjphcHBlbmRJdGVtKToKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQ
b2ludExpc3QuY3BwOgorICAgICAgICAoU1ZHUG9pbnRMaXN0OjpTVkdQb2ludExpc3QpOgorICAg
ICAgICAoU1ZHUG9pbnRMaXN0Ojpjb250ZXh0KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUG9p
bnRMaXN0Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5pZGw6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bv
bHlFbGVtZW50OjpTVkdQb2x5RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxl
bWVudDo6cG9pbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50OjphbmltYXRl
ZFBvaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6Om5vdGlmeUF0dHJp
YnV0ZUNoYW5nZSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50Lmg6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BvbHlnb25FbGVtZW50Ojp0b1BhdGhEYXRhKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
UG9seWdvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlsaW5lRWxlbWVudDo6dG9QYXRoRGF0YSk6
CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcDoKKwogMjAwNi0xMi0yNCAgTWl0eiBQZXR0ZWwgIDxt
aXR6QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIGFuZCBHZW9mZi4K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnBybwkocmV2aXNpb24gMTg0MTIpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC04MjgsNiArODI4LDcgQEAgY29udGFpbnMoREVGSU5FUywgU1ZHX1NVUFBPUlQ9MSkg
ewogICAgICAgICBiaW5kaW5ncy9qcy9KU1NWR01hdHJpeEN1c3RvbS5jcHAgXAogICAgICAgICBi
aW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMv
SlNTVkdQYXRoU2VnTGlzdEN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9qcy9KU1NWR1Bv
aW50TGlzdEN1c3RvbS5jcHAgXAogICAgICAgICBrc3ZnMi9jc3MvU1ZHQ1NTUGFyc2VyLmNwcCBc
CiAgICAgICAgIGtzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZURlZnMuY3BwIFwKICAgICAgICAga3N2
ZzIvY3NzL1NWR1JlbmRlclN0eWxlLmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTg0MTIpCisrKyBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjIxOCw2ICsyMjE4
LDcgQEAKIAkJQUJEREZFN0EwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkRERkU3NDBBNUM2
RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCAqLzsgfTsKIAkJQjIwMTExMDcwQUI3NzQw
NTAwREIwRTY4IC8qIEpTU1ZHQUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjIwMTExMDUwQUI3NzQwNTAwREIwRTY4IC8qIEpTU1ZHQUVs
ZW1lbnQuY3BwICovOyB9OwogCQlCMjAxMTEwODBBQjc3NDA1MDBEQjBFNjggLyogSlNTVkdBRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIw
MTExMDYwQUI3NzQwNTAwREIwRTY4IC8qIEpTU1ZHQUVsZW1lbnQuaCAqLzsgfTsKKwkJQjIwODBB
MTIwQjNDQTNCNjAwMTIwODUyIC8qIEpTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMDgwQTExMEIzQ0EzQjYwMDEy
MDg1MiAvKiBKU1NWR1BvaW50TGlzdEN1c3RvbS5jcHAgKi87IH07CiAJCUIyMDk2NEJGMEFCNzZF
RjYwMEU0Qzc0MCAvKiBTVkdBbmdsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjA5NjRCRDBBQjc2RUY2MDBFNEM3NDAgLyogU1ZHQW5nbGUuY3Bw
ICovOyB9OwogCQlCMjA5NjRDMDBBQjc2RUY2MDBFNEM3NDAgLyogU1ZHQW5nbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMDk2NEJFMEFCNzZFRjYw
MEU0Qzc0MCAvKiBTVkdBbmdsZS5oICovOyB9OwogCQlCMjExMjdBNjBCMzE4Njc3MDAwOUJFNTMg
LyogSlNTVkdQT0RUeXBlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjIxMTI3QTUwQjMxODY3NzAwMDlCRTUzIC8qIEpTU1ZHUE9EVHlwZVdy
YXBwZXIuaCAqLzsgfTsKQEAgLTUxODgsNiArNTE4OSw3IEBACiAJCUFCRERGRTc0MEE1QzZFNzAw
MEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyTWVudUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIw
MTExMDUwQUI3NzQwNTAwREIwRTY4IC8qIEpTU1ZHQUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHQUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMjAxMTEwNjBBQjc3NDA1MDBEQjBFNjggLyogSlNTVkdBRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdBRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMjA4MEExMTBCM0NBM0I2MDAxMjA4NTIgLyog
SlNTVkdQb2ludExpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTU1ZHUG9pbnRMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjIwOTY0QkQwQUI3NkVGNjAwRTRDNzQwIC8qIFNWR0FuZ2xlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmdsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUIyMDk2NEJFMEFCNzZFRjYwMEU0Qzc0MCAvKiBTVkdBbmdsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5nbGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQjIxMTI3QTUwQjMxODY3NzAwMDlCRTUzIC8qIEpTU1ZHUE9EVHlw
ZVdyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHUE9EVHlw
ZVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg2NjksNiArODY3MSw3
IEBACiAJCQkJQjJDOTZEOEMwQjNBRjJCNzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNlZ0N1c3RvbS5j
cHAgKi8sCiAJCQkJQjI5N0JDNkYwQjNDMTRDRjAwNDVBNTkwIC8qIEpTU1ZHUGF0aFNlZ0xpc3RD
dXN0b20uY3BwICovLAogCQkJCUIyMTEyN0E1MEIzMTg2NzcwMDA5QkU1MyAvKiBKU1NWR1BPRFR5
cGVXcmFwcGVyLmggKi8sCisJCQkJQjIwODBBMTEwQjNDQTNCNjAwMTIwODUyIC8qIEpTU1ZHUG9p
bnRMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQkxQTc1MEUzMzBBOTBGODlGMDAwRkYyMTUgLyogSlNU
cmVlV2Fsa2VyQ3VzdG9tLmNwcCAqLywKIAkJCQk5M0I3MEQ0MTA5RUIwQzdDMDA5RDg0NjggLyog
SlNYTUxIdHRwUmVxdWVzdC5jcHAgKi8sCiAJCQkJOTNCNzBENDIwOUVCMEM3QzAwOUQ4NDY4IC8q
IEpTWE1MSHR0cFJlcXVlc3QuaCAqLywKQEAgLTEyMTc3LDYgKzEyMTgwLDcgQEAKIAkJCQlCMjNC
Q0NFNTBCMzgyOUM5MDA1QjI0MTUgLyogSW1hZ2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJDOTZEOEQwQjNBRjJCNzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjk3QkM3MDBCM0MxNENGMDA0NUE1OTAgLyogSlNTVkdQYXRoU2Vn
TGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCMjA4MEExMjBCM0NBM0I2MDAxMjA4
NTIgLyogSlNTVkdQb2ludExpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU1ZHUE9EVHlwZVdyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU1ZHUE9EVHlwZVdyYXBwZXIuaAkocmV2aXNpb24gMTg0MTIpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUE9EVHlwZVdyYXBwZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksOCBAQAogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJTaGFy
ZWQuaCIKKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCisKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw3ICs0Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIG9wZXJhdG9yIFBPRFR5cGUmKCkgeyByZXR1cm4gbV9wb2RUeXBlOyB9CiAKLSAg
ICAvLyBJbXBsZW1lbnRlZCBieSBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvciAgICAKKyAgICAv
LyBJbXBsZW1lbnRlZCBieSBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvcgogICAgIHZpcnR1YWwg
dm9pZCBjb21taXRDaGFuZ2UoKSB7IH0KIAogcHJpdmF0ZToKQEAgLTc1LDYgKzc3LDM4IEBAIHBy
aXZhdGU6CiAgICAgU2V0dGVyTWV0aG9kIG1fc2V0dGVyOwogfTsKIAordGVtcGxhdGU8dHlwZW5h
bWUgUE9EVHlwZT4KK2NsYXNzIFNWR1BPRExpc3RJdGVtOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBQ
T0RUeXBlLCB0eXBlbmFtZSBMaXN0VHlwZT4KK2NsYXNzIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVh
dG9yRm9yTGlzdCA6IHB1YmxpYyBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvcjxQT0RUeXBlLCBT
VkdQT0RMaXN0SXRlbTxQT0RUeXBlPiA+Cit7CitwdWJsaWM6CisgICAgSlNTVkdQT0RUeXBlV3Jh
cHBlckNyZWF0b3JGb3JMaXN0KFNWR1BPRExpc3RJdGVtPFBPRFR5cGU+KiBjcmVhdG9yLCBjb25z
dCBMaXN0VHlwZSogbGlzdCkKKyAgICA6IEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yPFBPRFR5
cGUsIFNWR1BPRExpc3RJdGVtPFBPRFR5cGU+ID4oY3JlYXRvciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlNWR1BP
RExpc3RJdGVtPFBPRFR5cGU+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlNWR1BPRExpc3RJdGVtPFBP
RFR5cGU+OjpzZXRWYWx1ZSkKKyAgICAsIG1fbGlzdChsaXN0KQorICAgIHsgfQorCisgICAgdmly
dHVhbCB+SlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0KCkgeyB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgY29tbWl0Q2hhbmdlKCkKKyAgICB7CisgICAgICAgIC8vIFVwZGF0ZSBQT0QgaXRl
bSB3aXRoaW4gU1ZHTGlzdAorICAgICAgICBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvcjxQT0RU
eXBlLCBTVkdQT0RMaXN0SXRlbTxQT0RUeXBlPiA+Ojpjb21taXRDaGFuZ2UoKTsKKworICAgICAg
ICAvLyBOb3RpZnkgb3duZXIgb2YgdGhlIGxpc3QsIHRoYXQgaXQncyBjb250ZW50IGNoYW5nZWQK
KyAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCA9IG1fbGlzdC0+Y29udGV4
dCgpOworICAgICAgICBBU1NFUlQoY29udGV4dCk7CisKKyAgICAgICAgY29udGV4dC0+bm90aWZ5
QXR0cmlidXRlQ2hhbmdlKCk7ICAgICAgICAgCisgICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0
IExpc3RUeXBlKiBtX2xpc3Q7Cit9OworCiB9OwogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnTGlzdEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcAko
cmV2aXNpb24gMTg0MTIpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RD
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMiArNDgsMTAgQEAgc3RhdGljIHZvaWQg
dXBkYXRlUGF0aFNlZ0NvbnRleHRNYXAoRXhlYwogICAgIC8vIFVwZGF0ZSB0aGUgU1ZHUGF0aFNl
ZyogaGFzaG1hcCwgc28gdGhhdCB0aGUgSlNTVkdQYXRoU2VnKiB3cmFwcGVycywgY2FuIGFjY2Vz
cyB0aGUgY29udGV4dCBlbGVtZW50CiAgICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBleHRlbnNp
b25zID0gKGFjdGl2ZUZyYW1lLT5kb2N1bWVudCgpID8gYWN0aXZlRnJhbWUtPmRvY3VtZW50KCkt
PmFjY2Vzc1NWR0V4dGVuc2lvbnMoKSA6IDApOwogICAgIGlmIChleHRlbnNpb25zKSB7Ci0gICAg
ICAgIGlmIChleHRlbnNpb25zLT5oYXNQYXRoU2VnQ29udGV4dChvYmopKSB7Ci0gICAgICAgICAg
ICBBU1NFUlQoZXh0ZW5zaW9ucy0+cGF0aFNlZ0NvbnRleHQob2JqKSA9PSBjb250ZXh0KTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGV4dGVuc2lvbnMtPnNldFBh
dGhTZWdDb250ZXh0KG9iaiwgY29udGV4dCk7CisgICAgICAgIGlmIChleHRlbnNpb25zLT5oYXNH
ZW5lcmljQ29udGV4dDxTVkdQYXRoU2VnPihvYmopKQorICAgICAgICAgICAgQVNTRVJUKGV4dGVu
c2lvbnMtPmdlbmVyaWNDb250ZXh0PFNWR1BhdGhTZWc+KG9iaikgPT0gY29udGV4dCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGV4dGVuc2lvbnMtPnNldEdlbmVyaWNDb250ZXh0PFNWR1Bh
dGhTZWc+KG9iaiwgY29udGV4dCk7CiAgICAgfQogCiAgICAgY29udGV4dC0+bm90aWZ5QXR0cmli
dXRlQ2hhbmdlKCk7CkBAIC03MSwxMyArNjksNDMgQEAgc3RhdGljIHZvaWQgcmVtb3ZlRnJvbVBh
dGhTZWdDb250ZXh0TWFwKAogCiAgICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBleHRlbnNpb25z
ID0gKGFjdGl2ZUZyYW1lLT5kb2N1bWVudCgpID8gYWN0aXZlRnJhbWUtPmRvY3VtZW50KCktPmFj
Y2Vzc1NWR0V4dGVuc2lvbnMoKSA6IDApOwogICAgIGlmIChleHRlbnNpb25zKSB7Ci0gICAgICAg
IGlmIChleHRlbnNpb25zLT5oYXNQYXRoU2VnQ29udGV4dChvYmopKQotICAgICAgICAgICAgZXh0
ZW5zaW9ucy0+cmVtb3ZlUGF0aFNlZ0NvbnRleHQob2JqKTsKKyAgICAgICAgaWYgKGV4dGVuc2lv
bnMtPmhhc0dlbmVyaWNDb250ZXh0PFNWR1BhdGhTZWc+KG9iaikpCisgICAgICAgICAgICBleHRl
bnNpb25zLT5yZW1vdmVHZW5lcmljQ29udGV4dDxTVkdQYXRoU2VnPihvYmopOwogICAgIH0KIAog
ICAgIGNvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCitKU1ZhbHVlKiBKU1NW
R1BhdGhTZWdMaXN0OjpjbGVhcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IExpc3QmIGFyZ3MpCit7
CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisKKyAgICBTVkdQYXRoU2VnTGlzdCogaW1wID0g
c3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3QqPihpbXBsKCkpOworCisgICAgdW5zaWduZWQgaW50
IG5yID0gaW1wLT5udW1iZXJPZkl0ZW1zKCk7CisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBucjsgaSsrKQorICAgICAgICByZW1vdmVGcm9tUGF0aFNlZ0NvbnRleHRNYXAoZXhlYywg
aW1wLCBpbXAtPmdldEl0ZW0oaSwgZWMpLmdldCgpKTsKKworICAgIGltcC0+Y2xlYXIoZWMpOwor
ICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Cit9CisKK0pTVmFsdWUqIEpTU1ZHUGF0aFNlZ0xpc3Q6OmluaXRpYWxpemUoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBMaXN0JiBhcmdzKQoreworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAg
IFNWR1BhdGhTZWcqIG5ld0l0ZW0gPSB0b1NWR1BhdGhTZWcoYXJnc1swXSk7CisKKyAgICBTVkdQ
YXRoU2VnTGlzdCogaW1wID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3QqPihpbXBsKCkpOwor
CisgICAgU1ZHUGF0aFNlZyogb2JqID0gV1RGOjpnZXRQdHIoaW1wLT5pbml0aWFsaXplKG5ld0l0
ZW0sIGVjKSk7CisgICAgdXBkYXRlUGF0aFNlZ0NvbnRleHRNYXAoZXhlYywgaW1wLCBvYmopOwor
CisgICAgS0pTOjpKU1ZhbHVlKiByZXN1bHQgPSB0b0pTKGV4ZWMsIG9iaik7CisgICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBKU1ZhbHVlKiBK
U1NWR1BhdGhTZWdMaXN0OjpnZXRJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCYgYXJn
cykKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNTVkdQb2ludExpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNTVkdQb2ludExpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1NWR1BvaW50TGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmZGVmIFNWR19TVVBQT1JU
CisjaW5jbHVkZSAiSlNTVkdQb2ludExpc3QuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU1NWR1BvaW50LmgiCisjaW5jbHVkZSAiU1ZH
RG9jdW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCisjaW5jbHVk
ZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgorCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIEtKUzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU1ZhbHVlKiBK
U1NWR1BvaW50TGlzdDo6Y2xlYXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0JikKK3sKKyAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKworICAgIFNWR1BvaW50TGlzdCogaW1wID0gc3RhdGlj
X2Nhc3Q8U1ZHUG9pbnRMaXN0Kj4oaW1wbCgpKTsKKyAgICBpbXAtPmNsZWFyKGVjKTsKKyAgICBz
ZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworCisgICAgQVNTRVJUKGltcC0+Y29udGV4dCgpKTsK
KyAgICBpbXAtPmNvbnRleHQoKS0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CisKKyAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKK30KKworSlNWYWx1ZSogSlNTVkdQb2ludExpc3Q6OmluaXRpYWxp
emUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0JiBhcmdzKQoreworICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOworICAgIEZsb2F0UG9pbnQgbmV3SXRlbSA9IHRvU1ZHUG9pbnQoYXJnc1swXSk7
CisKKyAgICBTVkdQb2ludExpc3QqIGltcCA9IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdCo+KGlt
cGwoKSk7CisgICAgU1ZHTGlzdDxSZWZQdHI8U1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4gPiA+
KiBsaXN0SW1wID0gaW1wOworCisgICAgU1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4qIGxpc3RJ
dGVtID0gbGlzdEltcC0+aW5pdGlhbGl6ZShuZXcgU1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4o
bmV3SXRlbSksIGVjKS5nZXQoKTsgCisgICAgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JM
aXN0PEZsb2F0UG9pbnQsIFNWR1BvaW50TGlzdD4qIG9iaiA9IG5ldyBKU1NWR1BPRFR5cGVXcmFw
cGVyQ3JlYXRvckZvckxpc3Q8RmxvYXRQb2ludCwgU1ZHUG9pbnRMaXN0PihsaXN0SXRlbSwgaW1w
KTsKKworICAgIEtKUzo6SlNWYWx1ZSogcmVzdWx0ID0gdG9KUyhleGVjLCBvYmopOworICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisKKyAgICBBU1NFUlQoaW1wLT5jb250ZXh0KCkpOwor
ICAgIGltcC0+Y29udGV4dCgpLT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK0pTVmFsdWUqIEpTU1ZHUG9pbnRMaXN0OjpnZXRJdGVtKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgTGlzdCYgYXJncykKK3sKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KworICAgIGJvb2wgaW5kZXhPazsKKyAgICB1bnNpZ25lZCBpbmRleCA9IGFyZ3NbMF0tPnRvSW50
MzIoZXhlYywgaW5kZXhPayk7CisgICAgaWYgKCFpbmRleE9rKSB7CisgICAgICAgIHNldERPTUV4
Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgIH0KKworICAgIFNWR1BvaW50TGlzdCogaW1wID0gc3RhdGljX2Nhc3Q8U1ZH
UG9pbnRMaXN0Kj4oaW1wbCgpKTsKKyAgICBTVkdMaXN0PFJlZlB0cjxTVkdQT0RMaXN0SXRlbTxG
bG9hdFBvaW50PiA+ID4qIGxpc3RJbXAgPSBpbXA7CisKKyAgICBTVkdQT0RMaXN0SXRlbTxGbG9h
dFBvaW50PiogbGlzdEl0ZW0gPSBsaXN0SW1wLT5nZXRJdGVtKGluZGV4LCBlYykuZ2V0KCk7Cisg
ICAgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PEZsb2F0UG9pbnQsIFNWR1BvaW50
TGlzdD4qIG9iaiA9IG5ldyBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvckZvckxpc3Q8RmxvYXRQ
b2ludCwgU1ZHUG9pbnRMaXN0PihsaXN0SXRlbSwgaW1wKTsKKworICAgIEtKUzo6SlNWYWx1ZSog
cmVzdWx0ID0gdG9KUyhleGVjLCBvYmopOworICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNWYWx1ZSogSlNTVkdQb2ludExpc3Q6Omluc2Vy
dEl0ZW1CZWZvcmUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0JiBhcmdzKQoreworICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIEZsb2F0UG9pbnQgbmV3SXRlbSA9IHRvU1ZHUG9pbnQo
YXJnc1swXSk7CisKKyAgICBib29sIGluZGV4T2s7CisgICAgdW5zaWduZWQgaW5kZXggPSBhcmdz
WzFdLT50b0ludDMyKGV4ZWMsIGluZGV4T2spOworICAgIGlmICghaW5kZXhPaykgeworICAgICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBTVkdQb2ludExpc3QqIGltcCA9IHN0YXRp
Y19jYXN0PFNWR1BvaW50TGlzdCo+KGltcGwoKSk7CisgICAgU1ZHTGlzdDxSZWZQdHI8U1ZHUE9E
TGlzdEl0ZW08RmxvYXRQb2ludD4gPiA+KiBsaXN0SW1wID0gaW1wOworCisgICAgU1ZHUE9ETGlz
dEl0ZW08RmxvYXRQb2ludD4qIGxpc3RJdGVtID0gbGlzdEltcC0+aW5zZXJ0SXRlbUJlZm9yZShu
ZXcgU1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4obmV3SXRlbSksIGluZGV4LCBlYykuZ2V0KCk7
CisgICAgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PEZsb2F0UG9pbnQsIFNWR1Bv
aW50TGlzdD4qIG9iaiA9IG5ldyBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRvckZvckxpc3Q8Rmxv
YXRQb2ludCwgU1ZHUG9pbnRMaXN0PihsaXN0SXRlbSwgaW1wKTsKKworICAgIEtKUzo6SlNWYWx1
ZSogcmVzdWx0ID0gdG9KUyhleGVjLCBvYmopOworICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBl
Yyk7CisKKyAgICBBU1NFUlQoaW1wLT5jb250ZXh0KCkpOworICAgIGltcC0+Y29udGV4dCgpLT5u
b3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0pTVmFs
dWUqIEpTU1ZHUG9pbnRMaXN0OjpyZXBsYWNlSXRlbShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IExp
c3QmIGFyZ3MpCit7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgRmxvYXRQb2ludCBu
ZXdJdGVtID0gdG9TVkdQb2ludChhcmdzWzBdKTsKKworICAgIGJvb2wgaW5kZXhPazsKKyAgICB1
bnNpZ25lZCBpbmRleCA9IGFyZ3NbMV0tPnRvSW50MzIoZXhlYywgaW5kZXhPayk7CisgICAgaWYg
KCFpbmRleE9rKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENI
X0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFNWR1Bv
aW50TGlzdCogaW1wID0gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0Kj4oaW1wbCgpKTsKKyAgICBT
VkdMaXN0PFJlZlB0cjxTVkdQT0RMaXN0SXRlbTxGbG9hdFBvaW50PiA+ID4qIGxpc3RJbXAgPSBp
bXA7CisKKyAgICBTVkdQT0RMaXN0SXRlbTxGbG9hdFBvaW50PiogbGlzdEl0ZW0gPSBsaXN0SW1w
LT5yZXBsYWNlSXRlbShuZXcgU1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4obmV3SXRlbSksIGlu
ZGV4LCBlYykuZ2V0KCk7IAorICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdDxG
bG9hdFBvaW50LCBTVkdQb2ludExpc3Q+KiBvYmogPSBuZXcgSlNTVkdQT0RUeXBlV3JhcHBlckNy
ZWF0b3JGb3JMaXN0PEZsb2F0UG9pbnQsIFNWR1BvaW50TGlzdD4obGlzdEl0ZW0sIGltcCk7CisK
KyAgICBLSlM6OkpTVmFsdWUqIHJlc3VsdCA9IHRvSlMoZXhlYywgb2JqKTsKKyAgICBzZXRET01F
eGNlcHRpb24oZXhlYywgZWMpOworCisgICAgQVNTRVJUKGltcC0+Y29udGV4dCgpKTsKKyAgICBp
bXAtPmNvbnRleHQoKS0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitKU1ZhbHVlKiBKU1NWR1BvaW50TGlzdDo6cmVtb3ZlSXRlbShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IExpc3QmIGFyZ3MpCit7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Cisg
ICAgCisgICAgYm9vbCBpbmRleE9rOworICAgIHVuc2lnbmVkIGluZGV4ID0gYXJnc1swXS0+dG9J
bnQzMihleGVjLCBpbmRleE9rKTsKKyAgICBpZiAoIWluZGV4T2spIHsKKyAgICAgICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisgICAgfQorCisgICAgU1ZHUG9pbnRMaXN0KiBpbXAgPSBzdGF0aWNfY2FzdDxT
VkdQb2ludExpc3QqPihpbXBsKCkpOworICAgIFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVt
PEZsb2F0UG9pbnQ+ID4gPiogbGlzdEltcCA9IGltcDsKKworICAgIFJlZlB0cjxTVkdQT0RMaXN0
SXRlbTxGbG9hdFBvaW50PiA+IGxpc3RJdGVtKGxpc3RJbXAtPnJlbW92ZUl0ZW0oaW5kZXgsIGVj
KSk7CisgICAgSlNTVkdQT0RUeXBlV3JhcHBlcjxGbG9hdFBvaW50Piogb2JqID0gbmV3IEpTU1ZH
UE9EVHlwZVdyYXBwZXI8RmxvYXRQb2ludD4oKEZsb2F0UG9pbnQmKSAqbGlzdEl0ZW0uZ2V0KCkp
OworCisgICAgS0pTOjpKU1ZhbHVlKiByZXN1bHQgPSB0b0pTKGV4ZWMsIG9iaik7CisgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKworICAgIEFTU0VSVChpbXAtPmNvbnRleHQoKSk7Cisg
ICAgaW1wLT5jb250ZXh0KCktPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOworCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworSlNWYWx1ZSogSlNTVkdQb2ludExpc3Q6OmFwcGVuZEl0ZW0oRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBMaXN0JiBhcmdzKQoreworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIEZsb2F0UG9pbnQgbmV3SXRlbSA9IHRvU1ZHUG9pbnQoYXJnc1swXSk7CisKKyAgICBT
VkdQb2ludExpc3QqIGltcCA9IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdCo+KGltcGwoKSk7Cisg
ICAgU1ZHTGlzdDxSZWZQdHI8U1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4gPiA+KiBsaXN0SW1w
ID0gaW1wOworCisgICAgU1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4qIGxpc3RJdGVtID0gbGlz
dEltcC0+YXBwZW5kSXRlbShuZXcgU1ZHUE9ETGlzdEl0ZW08RmxvYXRQb2ludD4obmV3SXRlbSks
IGVjKS5nZXQoKTsgCisgICAgSlNTVkdQT0RUeXBlV3JhcHBlckNyZWF0b3JGb3JMaXN0PEZsb2F0
UG9pbnQsIFNWR1BvaW50TGlzdD4qIG9iaiA9IG5ldyBKU1NWR1BPRFR5cGVXcmFwcGVyQ3JlYXRv
ckZvckxpc3Q8RmxvYXRQb2ludCwgU1ZHUG9pbnRMaXN0PihsaXN0SXRlbSwgaW1wKTsKKworICAg
IEtKUzo6SlNWYWx1ZSogcmVzdWx0ID0gdG9KUyhleGVjLCBvYmopOworICAgIHNldERPTUV4Y2Vw
dGlvbihleGVjLCBlYyk7CisKKyAgICBBU1NFUlQoaW1wLT5jb250ZXh0KCkpOworICAgIGltcC0+
Y29udGV4dCgpLT5ub3RpZnlBdHRyaWJ1dGVDaGFuZ2UoKTsKKworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK30KKworI2VuZGlmIC8vIFNWR19TVVBQT1JUCisKKy8vIHZpbTp0cz00Om5vZXQKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNp
b24gMTg0MTIpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CSh3b3JraW5nIGNvcHkpCkBAIC04MTEsNyArODExLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJu
IEpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiOjpnZXRDb25zdHJ1Y3RvcihleGVjKTtcbiIpOwog
ICAgICAgICAgICAgfSBlbHNpZiAoIUB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYXNlICIgLiBXS191Y2Zp
cnN0KCRuYW1lKSAuICJBdHRyTnVtOlxuIik7Ci0KKyAgICAgICAgCiAgICAgICAgICAgICAgICAg
aWYgKCRwb2RUeXBlKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICgkcG9kVHlwZSBlcSAiZG91
YmxlIikgeyAjIFNwZWNpYWwgY2FzZSBmb3IgSlNTVkdOdW1iZXIKICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gIiAuIE5hdGl2ZVRvSlNW
YWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICIiLCAiaW1wIikgLiAiO1xuIik7CkBAIC04MjQs
NyArODI0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzZSAiIC4gV0tf
dWNmaXJzdCgkbmFtZSkgLiAiQXR0ck51bToge1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7Ci0KKyAgICAg
ICAgCiAgICAgICAgICAgICAgICAgaWYgKCRwb2RUeXBlKSB7CiAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBLSlM6OkpTVmFsdWUqIHJlc3VsdCA9ICIgLiBO
YXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAiIiwgImltcC4kbmFtZShlYyki
KSAuICI7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewpAQCAtODM2LDcgKzgzNiw2IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLQogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4gICAgcmV0dXJuIDA7XG59XG5cbiIpOwogCiAgICAg
ICAgICMgQ2hlY2sgaWYgd2UgaGF2ZSBhbnkgd3JpdGFibGUgYXR0cmlidXRlcwpAQCAtOTE1LDEy
ICs5MTQsMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0aWNfY2FzdDxT
Y3JpcHRJbnRlcnByZXRlcio+KGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpKS0+ZnJhbWUoKTtc
biIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghYWN0aXZl
RnJhbWUpXG4gICAgICAgIHJldHVybjtcblxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBleHRlbnNpb25zID0gKGFjdGl2
ZUZyYW1lLT5kb2N1bWVudCgpID8gYWN0aXZlRnJhbWUtPmRvY3VtZW50KCktPmFjY2Vzc1NWR0V4
dGVuc2lvbnMoKSA6IDApO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKGV4dGVuc2lvbnMgJiYgZXh0ZW5zaW9ucy0+aGFzUGF0aFNlZ0NvbnRleHQoaW1w
KSkge1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSBleHRlbnNpb25zLT5wYXRoU2VnQ29udGV4
dChpbXApO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYg
KGV4dGVuc2lvbnMgJiYgZXh0ZW5zaW9ucy0+aGFzR2VuZXJpY0NvbnRleHQ8JGludGVyZmFjZU5h
bWU+KGltcCkpIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0ID0gZXh0ZW5zaW9ucy0+Z2VuZXJp
Y0NvbnRleHQ8JGludGVyZmFjZU5hbWU+KGltcCk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgQVNTRVJUKGNvbnRleHQpO1xuXG4iKTsKICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgY29udGV4dC0+bm90aWZ5QXR0cmli
dXRlQ2hhbmdlKCk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICB9XG5cbiIpOwotICAgICAgICAgICAgICAgIHByaW50ICJJRkFDRTogJGludGVyZmFjZU5hbWVc
biI7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsgIyBlbmQgZnVuY3Rpb24KQEAgLTk0Niw2ICs5NDQsOSBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICB9CiAKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
c3dpdGNoIChpZCkge1xuIik7CisKKyAgICAgICAgbXkgJGhhc0N1c3RvbUZ1bmN0aW9uc09ubHkg
PSAxOworCiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rp
b25zfSkgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzZSAke2NsYXNz
TmFtZX06OiIgLiBXS191Y2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKSAuICJGdW5j
TnVtOiB7XG4iKTsKIApAQCAtOTU0LDYgKzk1NSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICAgICAgbmV4dDsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAg
JGhhc0N1c3RvbUZ1bmN0aW9uc09ubHkgPSAwOwogICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JU
eXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKIAogICAgICAgICAgICAgaWYgKEB7JGZ1
bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgewpAQCAtMTAwOCw2ICsxMDEwLDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IH1cbiIpOyAjIGVuZCBjYXNlCiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgfVxuIik7ICMgZW5kIHN3aXRjaAorICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAodm9pZClpbXA7XG4iKSBpZiAkaGFzQ3VzdG9tRnVuY3Rpb25zT25seTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIDA7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG4iKTsKICAgICB9CkluZGV4OiBXZWJDb3JlL2tzdmcyL21pc2MvU1ZHRG9jdW1l
bnRFeHRlbnNpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9taXNjL1NWR0RvY3Vt
ZW50RXh0ZW5zaW9ucy5oCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUva3N2ZzIvbWlzYy9T
VkdEb2N1bWVudEV4dGVuc2lvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNiBAQCBj
bGFzcyBOb2RlOwogY2xhc3MgU1ZHRWxlbWVudDsKIGNsYXNzIFN0cmluZzsKIGNsYXNzIFRpbWVT
Y2hlZHVsZXI7Ci1jbGFzcyBTVkdQYXRoU2VnOwogY2xhc3MgU1ZHU3R5bGVkRWxlbWVudDsKIGNs
YXNzIFNWR1NWR0VsZW1lbnQ7CiAKQEAgLTcwLDE0ICs2OSwxNSBAQCBwcml2YXRlOgogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZT4KICAgICBIYXNoTWFwPGNvbnN0IFNWR0VsZW1lbnQq
LCBIYXNoTWFwPFN0cmluZ0ltcGwqLCBWYWx1ZVR5cGU+Kj4gYmFzZVZhbHVlTWFwKCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIHN0YXRpYyBIYXNoTWFwPGNvbnN0IFNWR0VsZW1lbnQqLCBIYXNoTWFw
PFN0cmluZ0ltcGwqLCBWYWx1ZVR5cGU+Kj4gc192YWx1ZVR5cGU7Ci0gICAgICAgIHJldHVybiBz
X3ZhbHVlVHlwZTsKKyAgICAgICAgc3RhdGljIEhhc2hNYXA8Y29uc3QgU1ZHRWxlbWVudCosIEhh
c2hNYXA8U3RyaW5nSW1wbCosIFZhbHVlVHlwZT4qPiBzX2Jhc2VWYWx1ZU1hcDsKKyAgICAgICAg
cmV0dXJuIHNfYmFzZVZhbHVlTWFwOwogICAgIH0KIAotICAgIEhhc2hNYXA8Y29uc3QgU1ZHUGF0
aFNlZyosIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqPiBwYXRoU2VnQ29udGV4dE1hcCgpIGNvbnN0
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlwZT4KKyAgICBIYXNoTWFwPGNvbnN0IEtleVR5
cGUqLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50Kj4gZ2VuZXJpY0NvbnRleHRNYXAoKSBjb25zdAog
ICAgIHsKLSAgICAgICAgc3RhdGljIEhhc2hNYXA8Y29uc3QgU1ZHUGF0aFNlZyosIGNvbnN0IFNW
R1N0eWxlZEVsZW1lbnQqPiBzX3ZhbHVlVHlwZTsKLSAgICAgICAgcmV0dXJuIHNfdmFsdWVUeXBl
OworICAgICAgICBzdGF0aWMgSGFzaE1hcDxjb25zdCBLZXlUeXBlKiwgY29uc3QgU1ZHU3R5bGVk
RWxlbWVudCo+IHNfZ2VuZXJpY0NvbnRleHRNYXA7CisgICAgICAgIHJldHVybiBzX2dlbmVyaWND
b250ZXh0TWFwOwogICAgIH0KIAogcHVibGljOgpAQCAtMTI0LDI1ICsxMjQsMjkgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgLy8gVXNlZCBieSBTVkdQYXRo
U2VnKiBKUyB3cmFwcGVycwotICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIHBhdGhTZWdDb250
ZXh0KGNvbnN0IFNWR1BhdGhTZWcqIG9iaikgY29uc3QKKyAgICAvLyBVc2VkIGJ5IHNldmVyYWwg
SlMgd3JhcHBlcnMKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlUeXBlPgorICAgIGNvbnN0IFNW
R1N0eWxlZEVsZW1lbnQqIGdlbmVyaWNDb250ZXh0KGNvbnN0IEtleVR5cGUqIG9iaikgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBwYXRoU2VnQ29udGV4dE1hcCgpLmdldChvYmopOworICAg
ICAgICByZXR1cm4gZ2VuZXJpY0NvbnRleHRNYXA8S2V5VHlwZT4oKS5nZXQob2JqKTsKICAgICB9
CiAKLSAgICB2b2lkIHNldFBhdGhTZWdDb250ZXh0KGNvbnN0IFNWR1BhdGhTZWcqIG9iaiwgY29u
c3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlU
eXBlPgorICAgIHZvaWQgc2V0R2VuZXJpY0NvbnRleHQoY29uc3QgS2V5VHlwZSogb2JqLCBjb25z
dCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0KQogICAgIHsKLSAgICAgICAgcGF0aFNlZ0NvbnRl
eHRNYXAoKS5zZXQob2JqLCBjb250ZXh0KTsKKyAgICAgICAgZ2VuZXJpY0NvbnRleHRNYXA8S2V5
VHlwZT4oKS5zZXQob2JqLCBjb250ZXh0KTsKICAgICB9CiAKLSAgICB2b2lkIHJlbW92ZVBhdGhT
ZWdDb250ZXh0KGNvbnN0IFNWR1BhdGhTZWcqIG9iaikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBL
ZXlUeXBlPgorICAgIHZvaWQgcmVtb3ZlR2VuZXJpY0NvbnRleHQoY29uc3QgS2V5VHlwZSogb2Jq
KQogICAgIHsKLSAgICAgICAgcGF0aFNlZ0NvbnRleHRNYXAoKS5yZW1vdmUob2JqKTsKKyAgICAg
ICAgZ2VuZXJpY0NvbnRleHRNYXA8S2V5VHlwZT4oKS5yZW1vdmUob2JqKTsKICAgICB9CiAKLSAg
ICBib29sIGhhc1BhdGhTZWdDb250ZXh0KGNvbnN0IFNWR1BhdGhTZWcqIG9iaikKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlUeXBlPgorICAgIGJvb2wgaGFzR2VuZXJpY0NvbnRleHQoY29uc3Qg
S2V5VHlwZSogb2JqKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHBhdGhTZWdDb250ZXh0TWFwKCku
Y29udGFpbnMob2JqKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyaWNDb250ZXh0TWFwPEtleVR5cGU+
KCkuY29udGFpbnMob2JqKTsKICAgICB9CiB9OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdBbmltYXRlZFBhdGhEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdBbmltYXRlZFBhdGhEYXRhLmNwcAkocmV2aXNpb24gMTg0MTIpCisrKyBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdBbmltYXRlZFBhdGhEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8
d2lsZGZveEBrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBOaWtv
bGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIw
MDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdApAQCAtMjEsNiArMjEsNyBAQAogKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlICJTVkdBbmltYXRl
ZFBhdGhEYXRhLmgiCiAKQEAgLTM2LDYgKzM3LDYgQEAgU1ZHQW5pbWF0ZWRQYXRoRGF0YTo6flNW
R0FuaW1hdGVkUGF0aERhdAogCiB9CiAKLS8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdf
U1VQUE9SVAogCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdB
bmltYXRlZFBhdGhEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5p
bWF0ZWRQYXRoRGF0YS5oCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkUGF0aERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
ICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBr
ZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBOaWtvbGFzIFppbW1l
cm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUs
IDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdApAQCAtMjAsMTMgKzIwLDE1IEBACiAgICAgQm9zdG9uLCBNQSAwMjEx
MS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHQW5pbWF0ZWRQYXRoRGF0YUltcGxf
SAotI2RlZmluZSBLU1ZHX1NWR0FuaW1hdGVkUGF0aERhdGFJbXBsX0gKKyNpZm5kZWYgU1ZHQW5p
bWF0ZWRQYXRoRGF0YV9ICisjZGVmaW5lIFNWR0FuaW1hdGVkUGF0aERhdGFfSAorCiAjaWZkZWYg
U1ZHX1NVUFBPUlQKIAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKICAgICBjbGFzcyBTVkdQYXRoU2Vn
TGlzdDsKKwogICAgIGNsYXNzIFNWR0FuaW1hdGVkUGF0aERhdGEKICAgICB7CiAgICAgcHVibGlj
OgpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmNwcAkocmV2aXNpb24g
MTg0MTIpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+
CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIxLDYg
KzIxLDcgQEAKICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmZGVmIFNWR19TVVBQT1JU
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2ludHMuaCIKIApAQCAtMzYsNiArMzcsNiBAQCBTVkdB
bmltYXRlZFBvaW50czo6flNWR0FuaW1hdGVkUG9pbnRzKCkKIAogfQogCi0vLyB2aW06dHM9NDpu
b2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5oCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1h
bm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAg
ICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZp
bGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIwLDEzICsyMCwxNSBAQAogICAgIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVk
UG9pbnRzSW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHQW5pbWF0ZWRQb2ludHNJbXBsX0gKKyNpZm5k
ZWYgU1ZHQW5pbWF0ZWRQb2ludHNfSAorI2RlZmluZSBTVkdBbmltYXRlZFBvaW50c19ICisKICNp
ZmRlZiBTVkdfU1VQUE9SVAogCiBuYW1lc3BhY2UgV2ViQ29yZQogewogICAgIGNsYXNzIFNWR1Bv
aW50TGlzdDsKKwogICAgIGNsYXNzIFNWR0FuaW1hdGVkUG9pbnRzCiAgICAgewogICAgIHB1Ymxp
YzoKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuY3BwCShyZXZpc2lvbiAxODQxMikK
KysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw3ICsyOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNWR0xlbmd0aExpc3Q6OlNW
R0xlbmd0aExpc3QoKQotICAgIDogU1ZHTGlzdDxTVkdMZW5ndGg+KCkKKyAgICA6IFNWR1BPRExp
c3Q8U1ZHTGVuZ3RoPigpCiB7CiB9CiAKQEAgLTQwLDYgKzQwLDcgQEAgU1ZHTGVuZ3RoTGlzdDo6
flNWR0xlbmd0aExpc3QoKQogdm9pZCBTVkdMZW5ndGhMaXN0OjpwYXJzZShjb25zdCBTdHJpbmcm
IHZhbHVlLCBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiBjb250ZXh0LCBTVkdMZW5ndGhNb2RlIG1v
ZGUpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgY2xlYXIoZWMpOwogCiAgICAg
VmVjdG9yPFN0cmluZz4gbGVuZ3RocyA9IHZhbHVlLnNwbGl0KCcgJyk7CiAgICAgVmVjdG9yPFN0
cmluZz46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGxlbmd0aHMuZW5kKCk7CkluZGV4OiBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHTGVuZ3RoTGlzdC5oCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gICAg
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUu
b3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIw
MDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdApAQCAtMjAsOCArMjAsOCBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR0xlbmd0aExpc3RfSAotI2RlZmluZSBLU1ZH
X1NWR0xlbmd0aExpc3RfSAorI2lmbmRlZiBTVkdMZW5ndGhMaXN0X0gKKyNkZWZpbmUgU1ZHTGVu
Z3RoTGlzdF9ICiAKICNpZmRlZiBTVkdfU1VQUE9SVAogCkBAIC0zMCw3ICszMCw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlCiB7Ci0gICAgY2xhc3MgU1ZHTGVuZ3RoTGlzdCA6IHB1YmxpYyBTVkdM
aXN0PFNWR0xlbmd0aD4KKyAgICBjbGFzcyBTVkdMZW5ndGhMaXN0IDogcHVibGljIFNWR1BPRExp
c3Q8U1ZHTGVuZ3RoPgogICAgIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNWR0xlbmd0aExpc3Qo
KTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdMaXN0LmgJKHJldmlzaW9uIDE4NDEyKQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDExMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFZlY3RvcjxJdGVtPiBtX3ZlY3RvcjsKICAgICB9Owog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KKyAgICBjbGFzcyBTVkdQT0RMaXN0SXRlbSA6
IHB1YmxpYyBTaGFyZWQ8U1ZHUE9ETGlzdEl0ZW08SXRlbT4gPgorICAgIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIFNWR1BPRExpc3RJdGVtKCkgOiBtX2l0ZW0oKSB7IH0KKyAgICAgICAgU1ZHUE9E
TGlzdEl0ZW0oY29uc3QgSXRlbSYgaXRlbSkgOiBtX2l0ZW0oaXRlbSkgeyB9CisKKyAgICAgICAg
b3BlcmF0b3IgSXRlbSYoKSB7IHJldHVybiBtX2l0ZW07IH0KKyAgICAgICAgb3BlcmF0b3IgY29u
c3QgSXRlbSYoKSBjb25zdCB7IHJldHVybiBtX2l0ZW07IH0KKworICAgICAgICAvLyBVcGRhdGlu
ZyBmYWNpbGl0aWVzLCB1c2VkIGJ5IEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdAor
ICAgICAgICBJdGVtIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtOyB9CisgICAgICAgIHZv
aWQgc2V0VmFsdWUoSXRlbSBuZXdJdGVtKSB7IG1faXRlbSA9IG5ld0l0ZW07IH0KKworICAgIHBy
aXZhdGU6CisgICAgICAgIEl0ZW0gbV9pdGVtOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBJdGVtPgorICAgIGNsYXNzIFNWR1BPRExpc3QgOiBwdWJsaWMgU1ZHTGlzdDxSZWZQdHI8
U1ZHUE9ETGlzdEl0ZW08SXRlbT4gPiA+CisgICAgeworICAgIHB1YmxpYzoKKyAgICAgICAgU1ZH
UE9ETGlzdCgpIDogU1ZHTGlzdDxSZWZQdHI8U1ZHUE9ETGlzdEl0ZW08SXRlbT4gPiA+KCkgeyB9
CisKKyAgICAgICAgSXRlbSBpbml0aWFsaXplKEl0ZW0gbmV3SXRlbSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCisgICAgICAgIHsKKyAgICAgICAgICAgIFNWR1BPRExpc3RJdGVtPEl0ZW0+KiBwdHIoU1ZH
TGlzdDxSZWZQdHI8U1ZHUE9ETGlzdEl0ZW08SXRlbT4gPiA+Ojppbml0aWFsaXplKG5ldyBTVkdQ
T0RMaXN0SXRlbTxJdGVtPihuZXdJdGVtKSwgZWMpLmdldCgpKTsKKyAgICAgICAgICAgIGlmICgh
cHRyKQorICAgICAgICAgICAgICAgIHJldHVybiBJdGVtKCk7CisKKyAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxjb25zdCBJdGVtJj4oKnB0cik7IAorICAgICAgICB9CisKKyAgICAgICAg
SXRlbSBnZXRGaXJzdCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIFNWR1BPRExpc3RJ
dGVtPEl0ZW0+KiBwdHIoU1ZHTGlzdDxSZWZQdHI8U1ZHUE9ETGlzdEl0ZW08SXRlbT4gPiA+Ojpn
ZXRGaXJzdCgpLmdldCgpKTsKKyAgICAgICAgICAgIGlmICghcHRyKQorICAgICAgICAgICAgICAg
IHJldHVybiBJdGVtKCk7CisKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBJ
dGVtJj4oKnB0cik7CisgICAgICAgIH0KKworICAgICAgICBJdGVtIGdldExhc3QoKSBjb25zdAor
ICAgICAgICB7CisgICAgICAgICAgICBTVkdQT0RMaXN0SXRlbTxJdGVtPiogcHRyKFNWR0xpc3Q8
UmVmUHRyPFNWR1BPRExpc3RJdGVtPEl0ZW0+ID4gPjo6Z2V0TGFzdCgpLmdldCgpKTsKKyAgICAg
ICAgICAgIGlmICghcHRyKQorICAgICAgICAgICAgICAgIHJldHVybiBJdGVtKCk7CisKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBJdGVtJj4oKnB0cik7IAorICAgICAgICB9
CisKKyAgICAgICAgSXRlbSBnZXRJdGVtKHVuc2lnbmVkIGludCBpbmRleCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCisgICAgICAgIHsKKyAgICAgICAgICAgIFNWR1BPRExpc3RJdGVtPEl0ZW0+KiBwdHIo
U1ZHTGlzdDxSZWZQdHI8U1ZHUE9ETGlzdEl0ZW08SXRlbT4gPiA+OjpnZXRJdGVtKGluZGV4LCBl
YykuZ2V0KCkpOworICAgICAgICAgICAgaWYgKCFwdHIpCisgICAgICAgICAgICAgICAgcmV0dXJu
IEl0ZW0oKTsKKworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEl0ZW0mPigq
cHRyKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IEl0ZW0gZ2V0SXRlbSh1bnNpZ25lZCBp
bnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAg
ICBTVkdQT0RMaXN0SXRlbTxJdGVtPiogcHRyKFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExpc3RJdGVt
PEl0ZW0+ID4gPjo6Z2V0SXRlbShpbmRleCwgZWMpLmdldCgpKTsKKyAgICAgICAgICAgICBpZiAo
IXB0cikKKyAgICAgICAgICAgICAgICByZXR1cm4gSXRlbSgpOworCisgICAgICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSXRlbSY+KCpwdHIpOworICAgICAgICB9CisKKyAgICAgICAg
SXRlbSBpbnNlcnRJdGVtQmVmb3JlKEl0ZW0gbmV3SXRlbSwgdW5zaWduZWQgaW50IGluZGV4LCBF
eGNlcHRpb25Db2RlJiBlYykKKyAgICAgICAgeworICAgICAgICAgICAgU1ZHUE9ETGlzdEl0ZW08
SXRlbT4qIHB0cihTVkdMaXN0PFJlZlB0cjxTVkdQT0RMaXN0SXRlbTxJdGVtPiA+ID46Omluc2Vy
dEl0ZW1CZWZvcmUobmV3IFNWR1BPRExpc3RJdGVtPEl0ZW0+KG5ld0l0ZW0pLCBpbmRleCwgZWMp
LmdldCgpKTsKKyAgICAgICAgICAgIGlmICghcHRyKQorICAgICAgICAgICAgICAgIHJldHVybiBJ
dGVtKCk7CisKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBJdGVtJj4oKnB0
cik7IAorICAgICAgICB9CisKKyAgICAgICAgSXRlbSByZXBsYWNlSXRlbShJdGVtIG5ld0l0ZW0s
IHVuc2lnbmVkIGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIFNWR1BPRExpc3RJdGVtPEl0ZW0+KiBwdHIoU1ZHTGlzdDxSZWZQdHI8U1ZHUE9ETGlz
dEl0ZW08SXRlbT4gPiA+OjpyZXBsYWNlSXRlbShuZXcgU1ZHUE9ETGlzdEl0ZW08SXRlbT4obmV3
SXRlbSksIGluZGV4LCBlYykuZ2V0KCkpOworICAgICAgICAgICAgaWYgKCFwdHIpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIEl0ZW0oKTsKKworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IEl0ZW0mPigqcHRyKTsKKyAgICAgICAgfQorCisgICAgICAgIEl0ZW0gcmVtb3ZlSXRl
bSh1bnNpZ25lZCBpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgICAgICB7CisgICAg
ICAgICAgICBTVkdQT0RMaXN0SXRlbTxJdGVtPiogcHRyKFNWR0xpc3Q8UmVmUHRyPFNWR1BPRExp
c3RJdGVtPEl0ZW0+ID4gPjo6cmVtb3ZlSXRlbShpbmRleCwgZWMpLmdldCgpKTsKKyAgICAgICAg
ICAgIGlmICghcHRyKQorICAgICAgICAgICAgICAgIHJldHVybiBJdGVtKCk7CisKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBJdGVtJj4oKnB0cik7IAorICAgICAgICB9CisK
KyAgICAgICAgSXRlbSBhcHBlbmRJdGVtKEl0ZW0gbmV3SXRlbSwgRXhjZXB0aW9uQ29kZSYgZWMp
CisgICAgICAgIHsKKyAgICAgICAgICAgIFNWR1BPRExpc3RJdGVtPEl0ZW0+KiBwdHIoU1ZHTGlz
dDxSZWZQdHI8U1ZHUE9ETGlzdEl0ZW08SXRlbT4gPiA+OjphcHBlbmRJdGVtKG5ldyBTVkdQT0RM
aXN0SXRlbTxJdGVtPihuZXdJdGVtKSwgZWMpLmdldCgpKTsKKyAgICAgICAgICAgIGlmICghcHRy
KQorICAgICAgICAgICAgICAgIHJldHVybiBJdGVtKCk7CisKKyAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBJdGVtJj4oKnB0cik7IAorICAgICAgICB9CisgICAgfTsKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1BhdGhTZWdMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdQYXRoU2VnTGlzdC5pZGwJKHJldmlzaW9uIDE4NDEyKQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5
IEBAIG1vZHVsZSBzdmcgewogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdQYXRo
U2VnTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJl
ck9mSXRlbXM7CiAKLSAgICAgICAgdm9pZCBjbGVhcigpCisgICAgICAgIFtDdXN0b21dIHZvaWQg
Y2xlYXIoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFNWR1Bh
dGhTZWcgaW5pdGlhbGl6ZShpbiBTVkdQYXRoU2VnIG5ld0l0ZW0pCisgICAgICAgIFtDdXN0b21d
IFNWR1BhdGhTZWcgaW5pdGlhbGl6ZShpbiBTVkdQYXRoU2VnIG5ld0l0ZW0pCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24pOwogICAgICAgICBbQ3VzdG9tXSBT
VkdQYXRoU2VnIGdldEl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnRMaXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2ludExpc3QuY3BwCShy
ZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTI4LDggKzI4
LDkgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVNWR1BvaW50TGlzdDo6U1ZHUG9p
bnRMaXN0KCkKLSAgICA6IFNWR0xpc3Q8RmxvYXRQb2ludD4oKQorU1ZHUG9pbnRMaXN0OjpTVkdQ
b2ludExpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCkKKyAgICA6IFNWR1BPRExp
c3Q8RmxvYXRQb2ludD4oKQorICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiB7CiB9CiAKQEAgLTM3
LDYgKzM4LDExIEBAIFNWR1BvaW50TGlzdDo6flNWR1BvaW50TGlzdCgpCiB7CiB9CiAKK2NvbnN0
IFNWR1N0eWxlZEVsZW1lbnQqIFNWR1BvaW50TGlzdDo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY29udGV4dDsKK30KKwogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKIC8vIHZpbTp0
cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5oCShyZXZpc2lvbiAxODQxMikK
KysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1t
ZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAg
ICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CkBAIC0yMCw4ICsyMCw4IEBACiAgICAgQm9zdG9u
LCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtTVkdfU1ZHUG9pbnRMaXN0SW1w
bF9ICi0jZGVmaW5lIEtTVkdfU1ZHUG9pbnRMaXN0SW1wbF9ICisjaWZuZGVmIFNWR1BvaW50TGlz
dF9ICisjZGVmaW5lIFNWR1BvaW50TGlzdF9ICiAKICNpZmRlZiBTVkdfU1VQUE9SVAogCkBAIC0z
MCwxMSArMzAsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKLSAgICBjbGFzcyBTVkdQb2lu
dExpc3QgOiBwdWJsaWMgU1ZHTGlzdDxGbG9hdFBvaW50PgorICAgIGNsYXNzIFNWR1N0eWxlZEVs
ZW1lbnQ7CisKKyAgICBjbGFzcyBTVkdQb2ludExpc3QgOiBwdWJsaWMgU1ZHUE9ETGlzdDxGbG9h
dFBvaW50PgogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1BvaW50TGlzdCgpOworICAg
ICAgICBTVkdQb2ludExpc3QoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCk7CiAgICAg
ICAgIHZpcnR1YWwgflNWR1BvaW50TGlzdCgpOworCisgICAgICAgIGNvbnN0IFNWR1N0eWxlZEVs
ZW1lbnQqIGNvbnRleHQoKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFNW
R1N0eWxlZEVsZW1lbnQqIG1fY29udGV4dDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2ludExpc3QuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvaW50TGlzdC5pZGwJKHJldmlzaW9uIDE4NDEyKQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9pbnRMaXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MjgsMTkgKzI4LDE5IEBAIG1vZHVsZSBzdmcgewogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9
U1ZHXSBTVkdQb2ludExpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBudW1iZXJPZkl0ZW1zOwogCi0gICAgICAgIHZvaWQgY2xlYXIoKQorICAgICAgICBbQ3Vz
dG9tXSB2b2lkIGNsZWFyKCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICBTVkdQb2ludCBpbml0aWFsaXplKGluIFNWR1BvaW50IGl0ZW0pCisgICAgICAgIFtDdXN0
b21dIFNWR1BvaW50IGluaXRpYWxpemUoaW4gU1ZHUG9pbnQgaXRlbSkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbik7Ci0gICAgICAgIFNWR1BvaW50IGdldEl0
ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKKyAgICAgICAgW0N1c3RvbV0gU1ZHUG9pbnQgZ2V0
SXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIFNWR1BvaW50IGluc2VydEl0ZW1CZWZvcmUoaW4gU1ZHUG9pbnQgaXRl
bSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKKyAgICAgICAgW0N1c3RvbV0gU1ZHUG9pbnQgaW5z
ZXJ0SXRlbUJlZm9yZShpbiBTVkdQb2ludCBpdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KQog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uKTsKLSAgICAgICAg
U1ZHUG9pbnQgcmVwbGFjZUl0ZW0oaW4gU1ZHUG9pbnQgaXRlbSwgaW4gdW5zaWduZWQgbG9uZyBp
bmRleCkKKyAgICAgICAgW0N1c3RvbV0gU1ZHUG9pbnQgcmVwbGFjZUl0ZW0oaW4gU1ZHUG9pbnQg
aXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24sIFNWR0V4Y2VwdGlvbik7Ci0gICAgICAgIFNWR1BvaW50IHJlbW92ZUl0ZW0oaW4gdW5z
aWduZWQgbG9uZyBpbmRleCkKKyAgICAgICAgW0N1c3RvbV0gU1ZHUG9pbnQgcmVtb3ZlSXRlbShp
biB1bnNpZ25lZCBsb25nIGluZGV4KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
Ci0gICAgICAgIFNWR1BvaW50IGFwcGVuZEl0ZW0oaW4gU1ZHUG9pbnQgaXRlbSkKKyAgICAgICAg
W0N1c3RvbV0gU1ZHUG9pbnQgYXBwZW5kSXRlbShpbiBTVkdQb2ludCBpdGVtKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uKTsKICAgICB9OwogCkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFu
biA8d2lsZGZveEBrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAg
IDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdApAQCAtMjEsNiArMjEsNyBAQAogKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlICJTVkdQb2x5
RWxlbWVudC5oIgogCkBAIC0zOCw2ICszOSw3IEBAIFNWR1BvbHlFbGVtZW50OjpTVkdQb2x5RWxl
bWVudChjb25zdCBRdWEKICAgICAsIFNWR0FuaW1hdGVkUG9pbnRzKCkKICAgICAsIFNWR1BvbHlQ
YXJzZXIoKQogeworICAgIG1faWdub3JlQXR0cmlidXRlQ2hhbmdlcyA9IGZhbHNlOwogfQogCiBT
VkdQb2x5RWxlbWVudDo6flNWR1BvbHlFbGVtZW50KCkKQEAgLTQ3LDEzICs0OSwxNCBAQCBTVkdQ
b2x5RWxlbWVudDo6flNWR1BvbHlFbGVtZW50KCkKIFNWR1BvaW50TGlzdCogU1ZHUG9seUVsZW1l
bnQ6OnBvaW50cygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BvaW50cykKLSAgICAgICAgbV9wb2lu
dHMgPSBuZXcgU1ZHUG9pbnRMaXN0KCk7CisgICAgICAgIG1fcG9pbnRzID0gbmV3IFNWR1BvaW50
TGlzdCh0aGlzKTsKIAogICAgIHJldHVybiBtX3BvaW50cy5nZXQoKTsKIH0KIAogU1ZHUG9pbnRM
aXN0KiBTVkdQb2x5RWxlbWVudDo6YW5pbWF0ZWRQb2ludHMoKSBjb25zdAogeworICAgIC8vIEZJ
WE1FIQogICAgIHJldHVybiAwOwogfQogCkBAIC02NCw5ICs2NywxMiBAQCB2b2lkIFNWR1BvbHlF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0CiAgICAgICAgIHBvaW50cygpLT5jbGVhcihlYyk7
CiAgICAgICAgIHBhcnNlUG9pbnRzKGF0dHItPnZhbHVlKCkuZGVwcmVjYXRlZFN0cmluZygpKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KGF0dHIpKSByZXR1cm47Ci0gICAgICAgIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZiAo
U1ZHVGVzdHM6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQorICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cik7CiAgICAgfQogfQpAQCAtNzksMTAgKzg1LDEwIEBAIHZvaWQgU1ZHUG9seUVsZW1l
bnQ6OnN2Z1BvbHlUbyhkb3VibGUgeDEKIAogdm9pZCBTVkdQb2x5RWxlbWVudDo6bm90aWZ5QXR0
cmlidXRlQ2hhbmdlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgYm9vbCBpZ25vcmVOb3RpZmljYXRp
b25zID0gZmFsc2U7Ci0gICAgaWYgKGlnbm9yZU5vdGlmaWNhdGlvbnMgfHwgb3duZXJEb2N1bWVu
dCgpLT5wYXJzaW5nKCkpCisgICAgaWYgKG1faWdub3JlQXR0cmlidXRlQ2hhbmdlcyB8fCBvd25l
ckRvY3VtZW50KCktPnBhcnNpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9pZ25vcmVB
dHRyaWJ1dGVDaGFuZ2VzID0gdHJ1ZTsKICAgICBTVkdTdHlsZWRFbGVtZW50Ojpub3RpZnlBdHRy
aWJ1dGVDaGFuZ2UoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMTAxLDE0ICsx
MDcsMTQgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6bm90aWZ5QXR0cmlidXRlQ2hhbgogICAgIFJl
ZlB0cjxBdHRyPiBhdHRyID0gY29uc3RfY2FzdDxTVkdQb2x5RWxlbWVudCo+KHRoaXMpLT5nZXRB
dHRyaWJ1dGVOb2RlKHAuaW1wbCgpKTsKICAgICBpZiAoYXR0cikgewogICAgICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICAgICAgaWdub3JlTm90aWZpY2F0aW9ucyA9IHRydWU7IC8vIHBy
ZXZlbnQgcmVjdXJzaW9uLgogICAgICAgICBhdHRyLT5zZXRWYWx1ZShfcG9pbnRzLCBlYyk7Ci0g
ICAgICAgIGlnbm9yZU5vdGlmaWNhdGlvbnMgPSBmYWxzZTsKICAgICB9CisKKyAgICBtX2lnbm9y
ZUF0dHJpYnV0ZUNoYW5nZXMgPSBmYWxzZTsKIH0KIAogfQogCi0vLyB2aW06dHM9NDpub2V0CiAj
ZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdQb2x5RWxlbWVudC5oCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1BvbHlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAg
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2Rl
Lm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJt
YW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAy
MDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0
aGUgS0RFIHByb2plY3QKQEAgLTIwLDggKzIwLDkgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEz
MDcsIFVTQS4KICovCiAKLSNpZm5kZWYgS1NWR19TVkdQb2x5RWxlbWVudEltcGxfSAotI2RlZmlu
ZSBLU1ZHX1NWR1BvbHlFbGVtZW50SW1wbF9ICisjaWZuZGVmIFNWR1BvbHlFbGVtZW50X0gKKyNk
ZWZpbmUgU1ZHUG9seUVsZW1lbnRfSAorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkUG9pbnRzLmgiCkBAIC02MCw2ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
CiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiB0aGlzOyB9CiAKICAgICBwcml2YXRlOgorICAgICAgICBtdXRhYmxlIGJvb2wg
bV9pZ25vcmVBdHRyaWJ1dGVDaGFuZ2VzOwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdQb2lu
dExpc3Q+IG1fcG9pbnRzOwogCiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVD
TEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCkluZGV4OiBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVy
bWFubiA8d2lsZGZveEBrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAg
ICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMg
ZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdApAQCAtMjEsNiArMjEsNyBAQAogKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlICJTVkdQ
b2x5Z29uRWxlbWVudC5oIgogCkBAIC00MCwxMiArNDEsMTQgQEAgU1ZHUG9seWdvbkVsZW1lbnQ6
On5TVkdQb2x5Z29uRWxlbWVudCgpCiBQYXRoIFNWR1BvbHlnb25FbGVtZW50Ojp0b1BhdGhEYXRh
KCkgY29uc3QKIHsKICAgICBQYXRoIHBvbHlEYXRhOworCiAgICAgaW50IGxlbiA9IHBvaW50cygp
LT5udW1iZXJPZkl0ZW1zKCk7CiAgICAgaWYgKGxlbiA8IDEpCiAgICAgICAgIHJldHVybiBwb2x5
RGF0YTsKICAgICAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBwb2x5RGF0YS5tb3Zl
VG8ocG9pbnRzKCktPmdldEl0ZW0oMCwgZWMpKTsKKwogICAgIGZvciAoaW50IGkgPSAxOyBpIDwg
bGVuOyArK2kpCiAgICAgICAgIHBvbHlEYXRhLmFkZExpbmVUbyhwb2ludHMoKS0+Z2V0SXRlbShp
LCBlYykpOwogCkBAIC01NSw2ICs1OCw2IEBAIFBhdGggU1ZHUG9seWdvbkVsZW1lbnQ6OnRvUGF0
aERhdGEoKSBjb24KIAogfQogCi0vLyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBP
UlQKIAorLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seWdv
bkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5Z29uRWxl
bWVudC5oCShyZXZpc2lvbiAxODQxMikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlnb25F
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1t
ZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBC
dWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHBy
b2plY3QKQEAgLTIwLDggKzIwLDkgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4K
ICovCiAKLSNpZm5kZWYgS1NWR19TVkdQb2x5Z29uRWxlbWVudEltcGxfSAotI2RlZmluZSBLU1ZH
X1NWR1BvbHlnb25FbGVtZW50SW1wbF9ICisjaWZuZGVmIFNWR1BvbHlnb25FbGVtZW50X0gKKyNk
ZWZpbmUgU1ZHUG9seWdvbkVsZW1lbnRfSAorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAogI2luY2x1
ZGUgIlNWR1BvbHlFbGVtZW50LmgiCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5bGlu
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlsaW5l
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE4NDEyKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9s
eWxpbmVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gICAg
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUu
b3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIw
MDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdApAQCAtMjEsNiArMjEsNyBAQAogKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorCiAjaWZkZWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlICJTVkdQb2x5bGluZUVsZW1lbnQuaCIK
IApAQCAtNDAsMTIgKzQxLDE0IEBAIFNWR1BvbHlsaW5lRWxlbWVudDo6flNWR1BvbHlsaW5lRWxl
bWVudCgKIFBhdGggU1ZHUG9seWxpbmVFbGVtZW50Ojp0b1BhdGhEYXRhKCkgY29uc3QKIHsKICAg
ICBQYXRoIHBvbHlEYXRhOworCiAgICAgaW50IGxlbiA9IHBvaW50cygpLT5udW1iZXJPZkl0ZW1z
KCk7CiAgICAgaWYgKGxlbiA8IDEpCiAgICAgICAgIHJldHVybiBwb2x5RGF0YTsKIAogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHBvbHlEYXRhLm1vdmVUbyhwb2ludHMoKS0+Z2V0SXRl
bSgwLCBlYykpOworCiAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsZW47ICsraSkKICAgICAgICAg
cG9seURhdGEuYWRkTGluZVRvKHBvaW50cygpLT5nZXRJdGVtKGksIGVjKSk7CiAgICAgCkBAIC01
NCw2ICs1Nyw2IEBAIFBhdGggU1ZHUG9seWxpbmVFbGVtZW50Ojp0b1BhdGhEYXRhKCkgY28KIAog
fQogCi0vLyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorLy8gdmltOnRz
PTQ6bm9ldApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgJKHJldmlz
aW9uIDE4NDEyKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKQEAgLTIw
LDggKzIwLDkgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICovCiAKLSNpZm5k
ZWYgS1NWR19TVkdQb2x5bGluZUVsZW1lbnRJbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdQb2x5bGlu
ZUVsZW1lbnRJbXBsX0gKKyNpZm5kZWYgU1ZHUG9seWxpbmVFbGVtZW50X0gKKyNkZWZpbmUgU1ZH
UG9seWxpbmVFbGVtZW50X0gKKwogI2lmZGVmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJTVkdQ
b2x5RWxlbWVudC5oIgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHJldmlz
aW9uIDE4NDEyKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlNWR0xlbmd0
aC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aExpc3QuaCIKICNpbmNsdWRlICJTVkdUZXh0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIlNWR1Jvb3RJbmxpbmVCb3guaCIKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tY2hhbmdlcy1leHBlY3RlZC5wbmcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUt
dHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9qcy11cGRhdGUtcG9seWdvbi1jaGFuZ2VzLWV4cGVjdGVkLnBu
ZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQWJr
VWxFUVZSNG5PM2RiNnllZFgzSDhVLy9qVDhOCm9YYXhRVVpYZ3dnTzZtbzJLN0pzaFc3RDFraDBy
YURqajZXMTkzRWJZMlhMcEk0bElsV3pBV09MU0RUVGM0UTJ4ZVJFS05rZ0VzRkUKMnZyQWR0WEZT
akVCTWJHakVkS0VydGkwWFMwOTNZUFJSVkI2em4zdTYzelBmWi96ZXAxSExlZjY5aGNldEgzM3Vy
N1hQZVg0OGVQSApBd0FBVUdEcWVCOEFBQUNZUEFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFH
VUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsCkJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFB
QUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUkKQUFCUVJv
QUFBQUJsQkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZC
R2dBQUFBR1VFQ0FBQQpVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCR2dBQUFBR1VFQ0FB
QVVFYUFBQUFBWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHCmdBQUFBR1VFQ0FBQVVFYUFBQUFBWlFR
SUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUEKQUFC
bEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFB
QUdVRUNBQUFVRWFBQUFBQQpaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFB
QUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCR2dBQUFBR1VFCkNBQUFVRWFBQUFBQVpRUUlBQUJR
Um9BQUFBQmxCQWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FBQUFCbEJBZ0EK
QUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVD
QUFBVUVhQUFBQUFaUVFJQUFCUQpSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFa
UVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFBCkFBQUFaUVFJQUFCUVJvQUFB
QUJsQkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCR2dB
QUEKQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCR2dBQUFBR1VFQ0FBQVVF
YUFBQUFBWlFRSUFBQlFSb0FBQUFCbApCQWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFB
QlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJCkFBQlFSb0FBQUFCbEJB
Z0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdV
RUNBQUEKVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFBQUFB
QVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCRwpnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9B
QUFBQmxCQWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FBCkFBQmxCQWdBQUZC
R2dBQUFBR1VFQ0FBQVVFYUFBQUFBWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFB
VUVhQUFBQUEKWlFRSUFBQlFSb0FBQUFCbEJBZ0FBRkJHZ0FBQUFHVUVDQUFBVUVhQUFBQUFaUVFJ
QUFCUVJvQUFBQUJsQkFnQUFGQkdnQUFBQUdVRQpDQUFBVUVhQUFBQUFaUVFJQUFCUVJvQUFBQUJs
QkFnQUFGQkdnQUFBQUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBCkFGQkdnQUFB
QUdVRUNBQUFVRWFBQUFBQVpRUUlBQUJRUm9BQUFBQmxCQWdBQUZCR2dBQUFBR1VFQ0FBQVVFYUFB
QUFBWlFRSUFBQlEKUm9BQUFBQmxCQWdBQUZCR2dBQ04rbDYrbDZFTWpmY3hBSUF1SlVDQXhoekpr
ZngrZmovbjV0eDhPcC9PbnV3Wjd5TUJBRjFteXZIagp4NCtQOXlHQWlXRkx0dVN5WFBiL1A1NmFx
Vm1hcGZsWVBwYjM1WDJabnVuamR6Z0FvQ3U0QXdJMFpuTTJ2K3JIUXhuS28zazBmNUkvCnlkek16
ZC9uNy9Qai9IaDhEZ2NBZEFWM1FJREdMTTdpWDRxUTE1cVNLVm1jeGVsTFg1WmxXVTdKS1RXSEF3
QzZnZ0FCR25Fa1J6SXIKcy9JLytaOFJYek03czdNaUs5SktLeGZsb2pFOEhRRFFMUVFJMElqWDdu
KzA2NUpja3I3MDVVUDVVR1ptWm5NSEF3QzZpaDBRb0JIRApQWG8xbk8va08vbG9QcG8zNVUzNTgv
eDV2cHZ2Tm5Nd0FLQ3J1QU1DTkdJayt4L3RXcEFGNlV0ZnJzMjFtWlZaamM0R0FNYUhBQUU2Ck5w
cjlqM2FjbHROeVZhNUtLNjM4UWY1Z1RINE5BS0NHQUFFNjF1bitSenN1eUFWcHBaVVZXWkU1bVZQ
eWF3SUF6YkVEQW5Sc3VFZXYKNW1kK2xtZDVabVJHeDcvVzAzazZOK2ZtbkpOemNsV3V5dU41UEVN
WjZuZ3VBRkJEZ0FBZEd5NUFyc3lWMlpSTjJaTTl1U04zNVB5YwozL0d2ZVRSSDgyQWV6SklzeWJr
NU41L0paN0luZXpxZUN3Q01MWTlnQVIwWnlmN0g1bXpPcGJuMFZUKzNKVnZTbi81c3lxYkdka2Vt
ClpWcVdabW42MHBmMzVYMlpudW1OekFVQW1pTkFnSTRNdC85eGFrN04vdXgvM1U4ODM1LzkyWmlO
R2NoQWZwQWZOSGF1czNKV1ZtVlYKVm1kMTNwSzNORFlYQU9pTVI3Q0FqZ3ozK05XNzgrN1hqWThr
bVpWWithdjhWWFptWjdabmUxcHA1WXljMGZHNVhzZ0wrY2Y4WTk2YQp0K2FQOGtjWnpHQ081RWpI
Y3dHQXpnZ1FvQ1BEQlVnN2I4ZDZWOTZWL3ZUbnAvbHArdE9maTNOeFo0ZExjanpIODYxOEsxZm42
cHlkCnMvTTMrWnM4bGFjNm5nc0FqSTVIc0lCUkcrMytSenQyWlZmNjA1LzdjMy8yWmQrbzU3eldK
YmtrcmJUeTRYdzRNek96c2JrQXdNa0oKRUdEVU90My9hTWVSSE1tbWJFcC8rck1sVzNJOHpmeldk
VWJPeURXNUpxMjA4czY4czVHWkFNRHI4d2dXTUdxZDduKzA0NVNja210eQpUWjdJRTNrbXorUVQr
VVRPeWxrZHp6MlFBL2xTdnBTRldaaDM1QjM1UXI2US9kbmZ3SWtCZ0Y5RmdBQ2oxdVQrUnp2T3kz
bTVQYmZuCnVUeVhoL0pRM3B2M1ptb0R2NTN0ek03Y21CdHpkczdPaXF6SXQvUHRCazRMQVB3aWoy
QUJvMUt4LzlHTzUvSmM3bjNsNjcveVg0M04KdlNBWHBKVldWbVJGNW1ST1kzTUJZTElTSU1Db1ZP
NS90R01vUTNrOGo2Yy8vWGtraitSb2pqWXlkMFptNUFQNVFQclNsei9PSHpkeQp4d1VBSmlOL2dn
S2pVcm4vMFk2cG1acWxXWnBOMlpROTJaTTdja2ZPei9rZHp6MmFvM2t3RDJaSmx1VGNuSnZQNURQ
Wmt6ME5uQmdBCkpoY0JBb3pLZU8xL3RHTk81bVJ0MXVicFBKM04yWnpyY2wxT3pha2R6OTJkM2Jr
MXQrYk5lWE91eUJYNTkveDdYczdMRFp3WUFDWSsKajJBQmJldTIvWTkyN00vK2JNekdER1FnUDhn
UEdwdDdWczdLcXF6SzZxek9XL0tXeHVZQ3dFUWpRSUMyZGV2K1I3ditJLytSZ1F4awpNSU01a0FP
TnpKeVNLVm1jeFdtbGxlVlozdlgvRHdDZ21rZXdnTFoxNi81SHU5NlZkK1hMK1hLZXovTVp5RUF1
enNVZHp6eWU0L2xXCnZwVnJjazNPenRuNTYveDFkbVZYQTZjRmdJbEJnQUJ0NjRYOWozYk16TXlz
enVwc3k3WThtU2V6Sm1zeU83TTducnN2KzNKMzdzN2IKOC9iOFhuNHY5K2JlSE16QkJrNE1BTDNM
STFoQVczcDUvNk1kUjNJa203SXAvZW5QbG16SjhUVHpXK1VaT1NOWDUrcjBwUy92ekRzYgptUWtB
dlVTQUFHMlpLUHNmN1hnMnoyWWdBOW1RRFhraEx6UTJkMEVXcEM5OXVUYlhabFptTlRZWEFMcVpS
N0NBdGt5VS9ZOTJuSmZ6CmNudHV6M041TGcvbG9idzM3MjNrZ3doM1ptZHV6STA1TzJkblJWYmsy
L2wyQTZjRmdPNG1RSUMyVExUOWozWk16L1FzeTdJOG1rZnoKay93a3QrVzIvR1orcytPNWgzTTRH
N014aTdJb2I4dmJjbGZ1eXQ3c2JlREVBTkI5UElJRmpOaGsyZjlveDFDRzhuZ2V6MEFHOG5BZQp6
dEVjYldUdWpNeklCL0tCdE5MSzVibThrVHN1QU5BTkJBZ3dZcE54LzZNZGU3TTM2N00rWDhsWDhr
eWVhV3p1dk16TDZxek9xcXpLCk9UbW5zYmtBTUI3OGt4b3dZcE54LzZNZGN6SW5hN00yVCtmcGJN
N21YSmZyY21wTzdYanU3dXpPcmJrMWI4NmJjMFd1eUwvbDMvSnkKWG03Z3hBQlFUNEFBSXphWjl6
L2FkV2t1emNac3pQTjVQdmZrbml6SWdvNW5Ic3V4ZkQxZno3SXN5OXpNelMyNUpUL09qeHM0TFFE
VQo4UWdXTUNMMlB6cTNJenZTbi80TVpqQUhjcUNSbVZNeUpZdXpPSzIwc2p6TEovVWRLQUI2Z3dB
QlJzVCtSM01PNW1BR001ais5R2Q3CnRqYzJkM1ptNXlQNVNGcHBaWDdtTnpZWEFKcmtFU3hnUk94
L05HZG1abVoxVm1kYnR1WEpQSmsxV1pQWm1kM3gzSDNabDd0emQ5NmUKdCtlU1hKSjdjMjhPNW1B
REp3YUE1Z2dRWUVRbTJ2N0g5bGUreHR2OHpNL2R1VHMvelUvejFYdzFsK1d5VE1tVWp1ZHV5N2Fz
enVxOApLVy9LbitYUDh0MTh0NEhUQWtEblBJSUZER3VpN1g5c3ovWXN5WklreVdONUxCZm40bkUr
MGFzOW0yY3prSUZzeUlhOGtCY2FtN3NnCkM5S1h2bHliYXpNcnN4cWJDd0R0RUNEQXNDYlMvc2VK
K0hncEx5Vkp6c3laWFJraFNmSnlYczRqZVNRREdjZzM4bzBNWmFpUnVhZmwKdEZ5Wks5TktLNHV5
cUpHWkFEQlNIc0VDaGpWUjlqOWVHeDlKOGxKZXlwSXM2WXJIc1Y1cmVxWm5XWmJsNi9sNmRtZDMx
bVZkNW1WZQp4M01QNTNBMlptTXV6YVc1SUJma3J0eVZ2ZG5id0lrQllIanVnQUREV3B6Rko0MlF0
K1Z0MlpSTnVUQVgxaDJxVGR1elBlL0plL0t6Ci9PeFgvdmR1dmhQeWk0WXlsRy9tbStsUGZ4N093
em1hbzQzTW5aRVplWC9lbjc3MDVmSmNucW4rZlFxQU1TSkFnSk1heWY1SGtweVMKVTNKYmJzdk51
VG5UTXEzb2RDTXpYSHljMENzUmNzTGU3TTJHYk1oQUJ2Sk1ubWxzN3J6TXkwZGYrVG9uNXpRMkZ3
QVNBUUlNWTdqOQpqOWRhbUlWWm4vVmRjemZrVnoxMmRUSzlGaUVuYk0zVzlLYy9EK2JCWVdOeHBL
Wm1hcFptYWZyU2x5dHlSYVpuZWlOekFaamMzR01IClRxcmQxN2Z1eUk3OFRuNG50K2YySE11eE1U
clZ5TFFiSDBsMzc0U2N6S0lzeXNac3pQTjVQdmZrbml6SWdvNW5EbVVvaitiUkxNdXkKek0zYzNK
SmI4bXllYmVDMEFFeG03b0FBSjNVc3gzSm43c3k2ck11UkhHbnIydkc4R3pLYStQaEZ2WG9uNUJm
dHlJNzBweitER2N5QgpIR2hrNXBSTXlXVzVMSDNweS9Jczc0bVhEd0RRWFFRSU1DSlA1YW1zek1x
Mjc0aU14MjVJcC9GeHdrU0lrQ1E1bUlNWnpHQUdNcEJ0CjJkYlkzTm1ablkva0kybWxsZm1aMzlo
Y0FDWTJBUUtNMkxFY3l4MjVJK3V5TGovUHo5dTZ0dXB1U0ZQeGNjSkVpWkFUZG1WWCt0T2YKKzNO
LzltVmZZM1BmblhlbkwzMzVjRDZjbVpuWjJGd0FKaDRCQXJTdFcrK0d0Qk1mWitiTUpCbng5MDZr
Q0VuKzcrMW1tN0lwQXhuSQo1bXpPOFRUelI4RVpPU05YNStxMDBzckNMR3hrSmdBVGl3QUJScVhi
N29hMEd4K1A1YkVrYWZ1YWlSUWhKenliWi9PVmZDWHJzejR2CjVJWEc1aTdJZ3JUU3luVzVMck15
cTdHNUFQUTJBUUowcEJ2dWhvd21QazZFUkNmWFRqUXY1K1U4a2tjeWtJRjhJOS9JVUlZYW1YdGEK
VHN1VnVUS3R0TElvaXhxWkNVRHZFaUJBeDhiemJrZ1RBU0ZDZnRtZTdNbTlyM3p0enU3RzVwNmY4
OU5LSzlmbitzekpuTWJtQXRBNwpCQWpRbU9xN0lVMkdnd2o1MVlZeWxHL21tK2xQZng3T3d6bWFv
NDNNblpFWmVYL2VuNzcwNWZKY25xaytsZ3BnMGhBZ1FLTk8zQTM1CmRENDlwcDhiTWhiQklFSk9i
bS8yWmtNMlpDQURlU2JQTkRaM1h1YmxvNjk4blpOekdwc0xRSGNTSU1DWTZPUnV5S2Z5cWF6TjJ0
ZTkKRzdJOTIvT2V2Q2MveTgrR25kZHVLSWlRa2RtYXJlbFBmelpsVXc3bmNDTXpwMlpxbG1acCt0
S1hLM0pGcG1kNkkzTUI2QzRDQkJnegpuWDZLK24yNUx4ZmxvbGY5ZkVVZ2lKQ1IyNS85dVQvM1p5
QUQyWm1kamMwOUsyZGxaVlptZFZibnZKelgyRndBeHA4QUFjWmNVM2RECktzTkFoTFJ2UjNha1Av
MFp6R0FPNUVBak0yZG1acDdPMC9tTi9FWWo4d0FZZndJRUtOSHAzWkNiY2xQK01uOVpHZ1FpWkhR
TzVtQUcKTTVpQkRHUmJ0blUwYTMzVzUvcGMzOURKQU9nR0FnUW9OZHE3SVNQVmRBaUlrTTdzeXE0
TVpDQWJzekg3c3ErdGExZG1aZTdMZldOMApNZ0RHaXdBQnluVnlOK1JreGlvQVJFam5qdVJJSHNw
RHVTdDM1VC96bjhOKy80VzVNRHV5STZmbjlJTFRBVkJKZ0FEanBzbTdJV1A5CkYzOFIwcmxET1pT
RldaZ2Y1b2NuL2I3VGMzcDJaTWVvUDV3U2dPN21rNStBY1hOUkxzcTJiTXMvNUI5eVNrNFo5WnlL
di9CZm5JdnoKV0I3TG1UbHoyTzk5S1M5bFNaWmtlN2FQMlhsNjBRMjVZZGo0U0pJdjVvdmlBMkFD
RXlEQXVKcVdhYmtsdCtSNytWNFdabUhiMTFmZQpiVGlVUTNsajNqaWk3eFVocjdZKzY3TWhHNGI5
dnBWWmFla2NZSUx6Q0JiUU5kcmREYW1LajUva0oxbWJ0WGtnRDdSOTdaazVNMXV6Ck5iK2QzeDZE
ay9XR0grYUhXWmlGT1pSREovMCtleDhBazRNN0lFRFhhT2R1U0VWOEhNN2gzSmJiY21FdUhGVjh2
Q0Z2eUdmejJWLzYKTU1YSjVGQU81YXBjTld4OG5KN1Q4MEFlRUI4QWs0QUFBYnJPUmJrbzM4bDNY
bmMzcENJK3ZwYXY1WUpja0hWWmw4TTUzTmExMHpJdApmNUcveUkveW85eVlHek10MDhib2xOM1Az
Z2NBcitVUkxLQ3JQWlduc2lxcnNpTTdrb3g5Zk96TXpxekptbXpOMWxGZHZ5aUw4dmw4ClBndXlv
T0dUOVo3MVdaOVZXVFhzOS9tOEQ0REpSWUFBWGUvRWJzam44cms4bklmSEpENWV6SXU1TmJmbVMv
bFNqdVZZMjlmUHpkemMKbVR2enAvblR4cy9XaSt4OUFQQjZCQWpRTTM2ZW4rZlg4bXVOemp5V1kv
blgvR3MrbVUvbXYvUGZiVjkvYWs3TnpiazV0K1NXbkpiVApHajFici9KNUh3Q2N6UFR4UGdEQVNE
VWRIMC9raWR5VW0vSmtuaHpWOWN1elBQK1NmOG04ekd2MFhMMXVwSHNmWDhnWHhBZkFKQ1JBCmdF
bG5kM2JuNC9sNEhzeURvN3ArZnVibjgvbDhGbWR4d3lmcmZlMTgzc2ZLckJ6N0F3SFFkVHlDQlV3
YWgzSW9kNzd5MWU2YnJaTC8KZTYzdXVxekxEYmxoVXIvWjZ2WFkrd0JnSk53QkFTYUZCL0pBL2pa
L20rZnlYTnZYVHN1MDlLVXZuODFuOCt2NTlURTRYZS96ZVI4QQpqSlFBQVNhMG5kbVptM0pUdG1U
THFLNzNXdDJSc2ZjQndFajVJRUpnUW5veEwrYUczSkRmemUrT0tqN21abTRHTTVndDJTSStobUh2
CkE0QjIyQUVCSnBTbVhxdjdkL2s3andtTmdMMFBBTnJsRVN4Z3d2QmEzVnIyUGdBWURRRUM5RHl2
MVIwZjlqNEFHQTA3SUVEUE9wUkQKdVMyMzViZnlXNk9Lanpma0Ria245K1Q3K2I3NGFKTzlEd0JH
eXc0STBKTytscS9sNC9tNDErcU9BM3NmQUhUQ0kxaEFUL0ZhM2ZGbAo3d09BVG5rRUMrZ0pYcXZi
SGV4OUFOQXBkMENBcnVhMXV0M0QzZ2NBVGJBREFuU3RKL0pFMW1STmRtWFhxSzcvWUQ2WWY4NC9l
NjF1CkEreDlBTkFVZDBDQXJ1TzF1dDNGM2djQVRiSURBblNOUXptVVQrVlRYcXZiWmV4OUFOQWtk
MENBcnVDMXV0M0ozZ2NBVGJNREFvd3IKcjlYdFh2WStBQmdMSHNFQ3hvWFg2blkzZXg4QWpCV1BZ
QUdsbW5pdDd0cXN6U2Z5Q1gvcEhVUDJQZ0FZS3dJRUtPTzF1cjNCM2djQQpZOGtPQ0REbXZGYTNk
OWo3QUdDczJRRUJ4b3pYNnZZV2V4OEFWUEFJRmpBbXZGYTM5NHgwNytPTCthSzlEd0JHelNOWVFL
TjJabWZXClpFMjJadXQ0SDRVeHNESXJjMS91Rys5akFORERCQWpRaUJmellqNlpUK2JMK1hLTzVk
aDRINGN4WU84RGdDWjRCQXZvU0tldjFhVTMKMlBzQW9Da0NCQmkxVGwrclMrK3c5d0ZBVTd3RkMy
amI3dXpPVmJrcWY1Zy9GQitUd01xc3pQVzVmcnlQQWNBRVlRY0VHTEZET1pRNwpja2YrS2YrVXd6
azgzc2VoZ0wwUEFKcm1FU3hnUkRwNXJTNjl5ZDRIQUdOQmdBQW41Ylc2azVlOUR3REdna2V3QUFD
QU1wYlFBUUNBCk1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJ
RUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUMKQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlB
eUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQQpBQ2dqUUFB
QWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05B
QUFDQU1nSUVBQUFvCkkwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFv
STBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkEKQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FB
QUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQQpnRElD
QkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FN
Z0lFQUFBb0kwQUFBSUF5CkFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFB
SUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUUKQUFBb0kwQUFBSUF5QWdRQUFDZ2pR
QUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQQpL
Q05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFB
QW9JMEFBQUlBeUFnUUFBQ2dqClFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFn
UUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUEKQUlBeUFnUUFBQ2dqUUFBQWdE
SUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFD
QQpNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBB
QUFJQXlBZ1FBQUNnalFBQUFnRElDCkJBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNn
alFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUEKQUNnalFBQUFnRElDQkFB
QUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lF
QUFBbwpJMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5
QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BCkFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFB
Z0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUEKZ0RJQ0JBQUFLQ05B
QUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9J
MEFBQUlBeQpBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFB
Q2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFCkFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNC
QUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUEKS0NOQUFBQ0FN
Z0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJ
QXlBZ1FBQUNnagpRQUFBZ0RJQ0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFB
QUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBCkFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtD
TkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0EKTWdJRUFB
QW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdR
QUFDZ2pRQUFBZ0RJQwpCQUFBS0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBZ0RJ
Q0JBQUFLQ05BQUFDQU1nSUVBQUFvSTBBQUFJQXlBZ1FBCkFDZ2pRQUFBZ0RJQ0JBQUFLQ05BQUFD
QU1nSUVBQUFvSTBBQUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW8KSTBB
QUFJQXlBZ1FBQUNnalFBQUFnRElDQkFBQUtDTkFBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dq
UUFBQWdESUNCQUFBS0NOQQpBQUNBTWdJRUFBQW9JMEFBQUlBeUFnUUFBQ2dqUUFBQWdESUNCQUFB
S0NOQUFBQ0FNZ0lFQUFBb0kwQUFBSUF5QWdRQUFDZ2pRQUFBCmdESUNCQUFBS0NOQUFBQ0FNZ0lF
QUFBb0kwQUFBSUF5L3dzZFA3RUV2UXpQWkFBQUFBQkpSVTVFcmtKZ2dnPT0KCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL2pzLXVwZGF0ZS1wb2x5Z29uLXJlbW92YWwtZXhwZWN0ZWQucG5n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUu
CnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL3N2Zy9jdXN0b20vanMtdXBkYXRlLXBvbHlnb24tcmVtb3ZhbC1l
eHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRp
b24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFD
YWRvSndBQUFVRGtsRVFWUjRuTzNkUVlpY1p4M0g4WjlHYkJLMQphUlF4YVJvOGVLaE5peDRrZUJN
MDBONlZncmR1QkE5R1NRUnJiQSsxQ1JTaEZVVXJGaFVoOFNCSTQ4bGJUNlh4SURFVkREWUZFYVZG
CmJSTnRMUEd3MGNJU0QyWkwybVIzWjNabmZqT3o4L25NWVRiSnZMdFBidnZsZWYvUCs0NnJWNjll
RFFBQVFNRTdKNzBBQUFCZ2ZnZ1EKQUFDZ1JvQUFBQUExQWdRQUFLZ1JJQUFBUUkwQUFRQUFhZ1FJ
QUFCUUkwQUFBSUFhQVFJQUFOUUlFQUFBb0VhQUFBQUFOUUlFQUFDbwpFU0FBQUVDTkFBRUFBR29F
Q0FBQVVDTkFBQUNBR2dFQ0FBRFVDQkFBQUtCR2dBQUFBRFVDQkFBQXFCRWdBQUJBalFBQkFBQnFC
QWdBCkFGQWpRQUFBZ0JvQkFnQUExQWdRQUFDZ1JvQUFBQUExQWdRQUFLZ1JJQUFBUUkwQUFRQUFh
Z1FJQUFCUUkwQUFBSUFhQVFJQUFOUUkKRUFBQW9FYUFBQUFBTlFJRUFBQ29FU0FBQUVDTkFBRUFB
R29FQ0FBQVVDTkFBQUNBR2dFQ0FBRFVDQkFBQUtCR2dBQUFBRFVDQkFBQQpxQkVnQUFCQWpRQUJB
QUJxQkFnQUFGQWpRQUFBZ0JvQkFnQUExQWdRQUFDZ1JvQUFBQUExQWdRQUFLZ1JJQUFBUUkwQUFR
QUFhZ1FJCkFBQlFJMEFBQUlBYUFRSUFBTlFJRUFBQW9FYUFBQUFBTlFJRUFBQ29FU0FBQUVDTkFB
RUFBR29FQ0FBQVVDTkFBQUNBR2dFQ0FBRFUKQ0JBQUFLQkdnQUFBQURVQ0JBQUFxQkVnQUFCQWpR
QUJBQUJxQkFnQUFGQWpRQUFBZ0JvQkFnQUExQWdRQUFDZ1JvQUFBQUExQWdRQQpBS2dSSUFBQVFJ
MEFBUUFBYWdRSUFBQlFJMEFBQUlBYUFRSUFBTlFJRUFBQW9FYUFBQUFBTlFJRUFBQ29FU0FBQUVD
TkFBRUFBR29FCkNBQUFVQ05BQUFDQUdnRUNBQURVQ0JBQUFLQkdnQUFBQURVQ0JBQUFxQkVnQUFC
QWpRQUJBQUJxQkFnQUFGQWpRQUFBZ0JvQkFnQUEKMUFnUUFBQ2dSb0FBQUFBMUFnUUFBS2dSSUFB
QVFJMEFBUUFBYWdRSUFBQlFJMEFBQUlBYUFRSUFBTlFJRUFBQW9FYUFBQUFBTlFJRQpBQUNvRVNB
QUFFQ05BQUVBQUdvRUNBQUFVQ05BQUFDQUdnRUNBQURVQ0JBQUFLQkdnQUFBQURVQ0JBQUFxQkVn
QUFCQWpRQUJBQUJxCkJBZ0FBRkFqUUFBQWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMUFnUUFBS2dS
SUFBQVFJMEFBUUFBYWdRSUFBQlFJMEFBQUlBYUFRSUEKQU5RSUVBQUFvRWFBQUFBQU5RSUVBQUNv
RVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05BQUFDQUdnRUNBQURVQ0JBQUFLQkdnQUFBQURVQwpCQUFB
cUJFZ0FBQkFqUUFCQUFCcUJBZ0FBRkFqUUFBQWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMUFnUUFB
S2dSSUFBQVFJMEFBUUFBCmFnUUlBQUJRSTBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFBQU5RSUVB
QUNvRVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05BQUFDQUdnRUMKQUFEVUNCQUFBS0JHZ0FBQUFEVUNC
QUFBcUJFZ0FBQkFqUUFCQUFCcUJBZ0FBRkFqUUFBQWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMQpB
Z1FBQUtnUklBQUFRSTBBQVFBQWFnUUlBQUJRSTBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFBQU5R
SUVBQUNvRVNBQUFFQ05BQUVBCkFHb0VDQUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JHZ0FBQUFE
VUNCQUFBcUJFZ0FBQkFqUUFCQUFCcUJBZ0FBRkFqUUFBQWdCb0IKQWdBQTFBZ1FBQUNnUm9BQUFB
QTFBZ1FBQUtnUklBQUFRSTBBQVFBQWFnUUlBQUJRSTBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFB
QQpOUUlFQUFDb0VTQUFBRUNOQUFFQUFHb0VDQUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JHZ0FB
QUFEVUNCQUFBcUJFZ0FBQkFqUUFCCkFBQnFCQWdBQUZBalFBQUFnQm9CQWdBQTFBZ1FBQUNnUm9B
QUFBQTFBZ1FBQUtnUklBQUFRSTBBQVFBQWFnUUlBQUJRSTBBQUFJQWEKQVFJQUFOUUlFQUFBb0Vh
QUFBQUFOUUlFQUFDb0VTQUFBRUNOQUFFQUFHb0VDQUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JH
Z0FBQQpBRFVDQkFBQXFCRWdBQUJBalFBQkFBQnFCQWdBQUZBalFBQUFnQm9CQWdBQTFBZ1FBQUNn
Um9BQUFBQTFBZ1FBQUtnUklBQUFRSTBBCkFRQUFhZ1FJQUFCUUkwQUFBSUFhQVFJQUFOUUlFQUFB
b0VhQUFBQUFOUUlFQUFDb0VTQUFBRUNOQUFFQUFHb0VDQUFBVUNOQUFBQ0EKR2dFQ0FBRFVDQkFB
QUtCR2dBQno2Y3kxRndEUUpVQ0F1WE1tWjNMZnRaY0lBWUN1ZDF5OWV2WHFwQmNCekpZRE9aQy81
Vys1L2RwcgpkM2JuOXR5ZUQrVkR1U04zdlBubjkrYTlrMTdxRGM3a1RPN052ZmwzL3AwazJaRWRl
U2JQNUpQNTVJUlhCZ0R6UVlBQVEvbEwvcEtQCjVDTURmWFo3dG1kM2RtZHY5cjRaSlc5L2I0Yks4
czdINVZ4K3k5K0xFQURvZWRla0Z3RE1scC9uNXdOL2RqR0wrZk8xMTJxMlovdGIKZGs1dUZpbTdz
enZ2eS92V3ZlNlY0aU5KTHVkeTdzdDlJZ1FBQ3V5QUFFUDVhRDZhUCthUEUvbloyN0l0ZCtTT204
Yko5ZTl2RDVYVgo0dU42ZGtJQVlQd0VDREN3NS9OODltZi9wSmV4cHVWUTJaM2QyWlZkZVNiUHJC
a2Z5MFFJQUl5WEFBRUc5dFY4TmQvUDl5ZTlqTEhiCmtSMzVhWDZhZTNKUGJzL3R1VFczVG5wSkFM
QnBDQkJnSUV0WnlwN3N5Y1ZjblBSUzZyWmxXL1prejRyektidXlLM3V5UjZnQXdBQUUKQ0RDUTEv
TjY3czI5ZVQ3UFQzb3BVMnM1Vkpadi9WcU9scmVIeTQ3c21QUlNBV0JpQkFnd3NLVXM1ZkU4bnVN
NW5qZnl4cVNYTTdPMgpaZHViWVhLelhaWGxkNkVDd0dZa1FJQ2huYy81SE16Qm5NM1pvYTk5VDk2
VEF6bVFWNis5L3BGL2lKa1ZYQjhxeTFHeUs3dmVFaTlDCkJZQlpJMENBZGRuSWJzais3TS9Kbk15
KzdNdlZYTTAvODgrOGtsZnlhbDdOSzlkZXkxOHZ2d3VWbFczTjFqZHYvVnJ0T1NxMzViWkoKTHhV
QUJBaXdNZWR6UGd0WkdIbzI1SmJja2tmemFJN21hTFpreTVxZlh3NlZtMFhLci9QcnZKQVgxdnRm
bUJ0YnMvV0dIWlhscjYvLwpzMUFCWUp3RUNMQmhTMW5LRTNraXgzSnNYYnNoSjNJaWQrZnVkZjNz
UVI4eW1DUzM1dGJjbGJ2eVNsN0p4VnkwbzdLQzVWQlo3V0dQCnU3TTdPN056MGtzRllBWUpFR0Jr
V3JzaHk0YUpqNXM5WVBENlc3OWV5a3Q1S0E4Ti9NQkNiZ3lWbGQ2RkNnRFhFeURBU0MzdmhoelAK
OGZ3My94M3EybUYyUXpZYUh4djlua2x5Wis3TWJia3RyK2JWWE1nRk95b3IySnF0YTg2bkNCV0Er
U0ZBZ0xFWTUyN0lPT0pqRk4vNwp0YnkyNGhEOWhWekkzL1AzWE16Rm9jTnNYcXdXS2dkeUlIdXla
OUpMQkdBRUJBZ3dOdVBZRFJsbmZMUit4bktvWEI4cDF3L1hMOCtvCkNKWC8yNWQ5T1p1ejJaN3Rr
MTRLQUNNZ1FJQ3hHOVZ1U0NNK2xqVi8xa3BleTJzMzdLUzgvUlN3Qzdtd3FVTmxlN2JuYk01bVgv
Wk4KZWlrQWpJZ0FBU28ydWh0eUpFZnk1WHk1R2dUVEVDR0R1SlJMcXo1SFpmazFpNkZ5TWlmelFC
Nlk5RElBR0NFQkFsU3RkemRrVUtNTwpnVm1Ka0VGY3lxVlZIL1k0YmFHeWtJV2N5SWxKTHdPQUVS
TWdRTjFHZGtOV002NEEyRXdSTW9qclEyVzE5M0dHaXJrUGdNMUxnQUFUCk04cmRrSEgvNGo5dkVU
S0lmK1ZmTjkxUmVmdnBYLy9KZjRiNnZ1WStBRFkzQVFKTTFDaDJRMXEvOEl1UTlWa09sUy9rQy9s
dGZydm0KNTgxOUFHeHU3NXowQW9ENXRpVmI4bkFlenUveXUrelAvcUd2Yi82aXY1akZmREFmSE9p
emwzTTU5K1crbk1tWk1hOXErcjAvNzgvWgpuQjBvUGhheUlENEFOams3SU1EVUdIWTNwQlVmTCtX
bEhNM1JuTXFwb2EvZGtSMDVuZFA1V0Q0MmhwWE5oaGZ6WXZabmZ4YXp1T3JuCnpIMEF6QWM3SU1E
VUdHWTNwQkVmVjNJbHgzSXMrN0p2WGZHeE16dnpXQjY3NFdHSzgyUXhpN2svOTY4Wkg5dXpQYWR5
U253QXpBRUIKQWt5ZHUzTjNmcFBmNUZ2NVZtN0pMVGY4ZXlNK25zN1R1VE4zNW5pTzUwcXVESFh0
bG16SmwvS2wvQ2wveWxmeWxXekpsakd0Y3ZvZAp5cUc4bUJmWC9OeFRlY3JRT2NDY2NBc1dNTlhP
NTN3TzVtRE81bXlTOGNmSHVaekw0UnpPNlp4ZTEvV2Z5cWZ5Wko3TXgvUHhFYTlzCjlwek15UnpN
d1RVLzUza2ZBUE5GZ0FCVGIzazI1SHY1WG42Vlg0MGxQaTdsVXI2WmIrYkgrWEdXc2pUMDlYdXpO
MC9raVh3K254LzUKMm1hUnVROEFWaUpBZ0pueFJ0N0l1L1B1a1g3UHBTemxSL2xSSHNramVUMnZE
MzM5MW16TjEvUDFQSnlIc3kzYlJycTJXYldZeGV6UAovalZ2dmZLOEQ0RDU5SzVKTHdCZ1VLT09q
MmZ6Ykk3a1NQNlFQNnpyK3MvbXMvbHV2cHNQNThNalhkZXNHM1R1NDRmNW9mZ0FtRU1DCkJKZzdM
K2ZsUEpnSDg4djhjbDNYMzVONzhtU2V6S2Z6NlJHdmJQYWR6TW44TEQ5YjgzTUwxMTRBekIrM1lB
RnpZekdMZWVMYWE5aVQKclpML0g2dDdQTWR6S0lmbSttU3JsWmo3QUdBUWRrQ0F1WEFxcC9LMWZD
MS96VitIdm5aTHR1U0wrV0lleTJQNVFENHdodFhOUHMvNwpBR0JRQWdUWTFNN2xYSTdrU0o3TGMr
dTYzckc2Z3pIM0FjQ2dQSWdRMkpRdTVWSU81VkEra1Urc0t6NzJabTkra1Yva3VUd25QdFpnCjdn
T0FZWmdCQVRhVlVSMnIrMUFlY3B2UUFNeDlBREFzdDJBQm00WmpkYnZNZlFDd0hnSUVtSG1PMVow
TWN4OEFySWNaRUdCbUxXWXgKeDNJc2QrV3VkY1hIenV6TUQvS0QvRDYvRng5RE12Y0J3SHFaQVFG
bTB0TjVPZy9tUWNmcVRvQzVEd0Eyd2kxWXdFeHhyTzVrbWZzQQpZS1BjZ2dYTUJNZnFUZ2R6SHdC
c2xCMFFZS281Vm5kNm1Qc0FZQlRNZ0FCVDY5azhtOE01bkJmeXdycXUvMXcrbCsva080N1ZIUUZ6
Ckh3Q01paDBRWU9vNFZuZTZtUHNBWUpUTWdBQlRZekdMZVRTUE9sWjN5cGo3QUdDVTdJQUFVOEd4
dXRQSjNBY0FvMllHQkpnb3grcE8KTDNNZkFJeURXN0NBaVhDczduUXo5d0hBdUxnRkM2Z2F4Ykc2
UjNNMDM4ZzMvTkk3UnVZK0FCZ1hBUUxVT0ZaM05wajdBR0NjeklBQQpZK2RZM2RsaDdnT0FjVE1E
QW95TlkzVm5pN2tQQUJyY2dnV01oV04xWjgrZ2N4OVA1U2x6SHdDc20xdXdnSkU2bDNNNW5NTTVu
ZE9UClhncGpzSkNGbk1pSlNTOERnQmttUUlDUnVKUkxlU1NQNUNmNVNaYXlOT25sTUFibVBnQVlC
YmRnQVJ1eTBXTjFtUTNtUGdBWUZRRUMKck50R2o5VmxkcGo3QUdCVW5JSUZETzNsdkp6N2MzOCtr
OCtJanptd2tJVThrQWNtdlF3QU5na3pJTURBRnJPWXgvTjR2cDF2NTBxdQpUSG81RkpqN0FHRFUz
SUlGREdRangrb3ltOHg5QURBT0FnUllsV04xNTVlNUR3REd3UzFZQUFCQWpTRjBBQUNnUm9BQUFB
QTFBZ1FBCkFLZ1JJQUFBUUkwQUFRQUFhZ1FJQUFCUUkwQUFBSUFhQVFJQUFOUUlFQUFBb0VhQUFB
QUFOUUlFQUFDb0VTQUFBRUNOQUFFQUFHb0UKQ0FBQVVDTkFBQUNBR2dFQ0FBRFVDQkFBQUtCR2dB
QUFBRFVDQkFBQXFCRWdBQUJBalFBQkFBQnFCQWdBQUZBalFBQUFnQm9CQWdBQQoxQWdRQUFDZ1Jv
QUFBQUExQWdRQUFLZ1JJQUFBUUkwQUFRQUFhZ1FJQUFCUUkwQUFBSUFhQVFJQUFOUUlFQUFBb0Vh
QUFBQUFOUUlFCkFBQ29FU0FBQUVDTkFBRUFBR29FQ0FBQVVDTkFBQUNBR2dFQ0FBRFVDQkFBQUtC
R2dBQUFBRFVDQkFBQXFCRWdBQUJBalFBQkFBQnEKQkFnQUFGQWpRQUFBZ0JvQkFnQUExQWdRQUFD
Z1JvQUFBQUExQWdRQUFLZ1JJQUFBUUkwQUFRQUFhZ1FJQUFCUUkwQUFBSUFhQVFJQQpBTlFJRUFB
QW9FYUFBQUFBTlFJRUFBQ29FU0FBQUVDTkFBRUFBR29FQ0FBQVVDTkFBQUNBR2dFQ0FBRFVDQkFB
QUtCR2dBQUFBRFVDCkJBQUFxQkVnQUFCQWpRQUJBQUJxQkFnQUFGQWpRQUFBZ0JvQkFnQUExQWdR
QUFDZ1JvQUFBQUExQWdRQUFLZ1JJQUFBUUkwQUFRQUEKYWdRSUFBQlFJMEFBQUlBYUFRSUFBTlFJ
RUFBQW9FYUFBQUFBTlFJRUFBQ29FU0FBQUVDTkFBRUFBR29FQ0FBQVVDTkFBQUNBR2dFQwpBQURV
Q0JBQUFLQkdnQUFBQURVQ0JBQUFxQkVnQUFCQWpRQUJBQUJxQkFnQUFGQWpRQUFBZ0JvQkFnQUEx
QWdRQUFDZ1JvQUFBQUExCkFnUUFBS2dSSUFBQVFJMEFBUUFBYWdRSUFBQlFJMEFBQUlBYUFRSUFB
TlFJRUFBQW9FYUFBQUFBTlFJRUFBQ29FU0FBQUVDTkFBRUEKQUdvRUNBQUFVQ05BQUFDQUdnRUNB
QURVQ0JBQUFLQkdnQUFBQURVQ0JBQUFxQkVnQUFCQWpRQUJBQUJxQkFnQUFGQWpRQUFBZ0JvQgpB
Z0FBMUFnUUFBQ2dSb0FBQUFBMUFnUUFBS2dSSUFBQVFJMEFBUUFBYWdRSUFBQlFJMEFBQUlBYUFR
SUFBTlFJRUFBQW9FYUFBQUFBCk5RSUVBQUNvRVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05BQUFDQUdn
RUNBQURVQ0JBQUFLQkdnQUFBQURVQ0JBQUFxQkVnQUFCQWpRQUIKQUFCcUJBZ0FBRkFqUUFBQWdC
b0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMUFnUUFBS2dSSUFBQVFJMEFBUUFBYWdRSUFBQlFJMEFBQUlB
YQpBUUlBQU5RSUVBQUFvRWFBQUFBQU5RSUVBQUNvRVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05BQUFD
QUdnRUNBQURVQ0JBQUFLQkdnQUFBCkFEVUNCQUFBcUJFZ0FBQkFqUUFCQUFCcUJBZ0FBRkFqUUFB
QWdCb0JBZ0FBMUFnUUFBQ2dSb0FBQUFBMUFnUUFBS2dSSUFBQVFJMEEKQVFBQWFnUUlBQUJRSTBB
QUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFBQU5RSUVBQUNvRVNBQUFFQ05BQUVBQUdvRUNBQUFVQ05B
QUFDQQpHZ0VDQUFEVUNCQUFBS0JHZ0FBQUFEVUNCQUFBcUJFZ0FBQkFqUUFCQUFCcUJBZ0FBRkFq
UUFBQWdCb0JBZ0FBMUFnUUFBQ2dSb0FBCkFBQTFBZ1FBQUtnUklBQUFRSTBBQVFBQWFnUUlBQUJR
STBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBQUFBQU5RSUVBQUNvRVNBQUFFQ04KQUFFQUFHb0VDQUFB
VUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JHZ0FBQUFEVUNCQUFBcUJFZ0FBQkFqUUFCQUFCcUJBZ0FB
RkFqUUFBQQpnQm9CQWdBQTFBZ1FBQUNnUm9BQUFBQTFBZ1FBQUtnUklBQUFRSTBBQVFBQWFnUUlB
QUJRSTBBQUFJQWFBUUlBQU5RSUVBQUFvRWFBCkFBQUFOUUlFQUFDb0VTQUFBRUNOQUFFQUFHb0VD
QUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JHZ0FBQUFEVUNCQUFBcUJFZ0FBQkEKalFBQkFBQnFC
QWdBQUZBalFBQUFnQm9CQWdBQTFBZ1FBQUNnUm9BQUFBQTFBZ1FBQUtnUklBQUFRSTBBQVFBQWFn
UUlBQUJRSTBBQQpBSUFhQVFJQUFOUUlFQUFBb0VhQUFBQUFOUUlFQUFDb0VTQUFBRUNOQUFFQUFH
b0VDQUFBVUNOQUFBQ0FHZ0VDQUFEVUNCQUFBS0JHCmdBQUFBRFVDQkFBQXFCRWdBQUJBalFBQkFB
QnFCQWdBQUZBalFBQUFnQm9CQWdBQTFBZ1FBQUNnUm9BQUFBQTFBZ1FBQUtnUklBQUEKUUkwQUFR
QUFhZ1FJQUFCUUkwQUFBSUFhQVFJQUFOUUlFQUFBb0VhQUFBQUFOUUlFQUFDbytSKzdBMjdDcTFp
bm13QUFBQUJKUlU1RQpya0pnZ2c9PQoK
</data>
<flag name="review"
          id="4411"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>