<?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>207530</bug_id>
          
          <creation_ts>2020-02-10 19:49:16 -0800</creation_ts>
          <short_desc>[LFC] Introduce Layout::InlineTextBox</short_desc>
          <delta_ts>2020-02-11 07:13:22 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1617272</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-10 19:49:16 -0800</bug_when>
    <thetext>Layout::Box with Optional&lt;text content&gt; looks a bit odd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617273</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-10 19:49:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/59336020&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617278</commentid>
    <comment_count>2</comment_count>
      <attachid>390340</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-10 20:04:49 -0800</bug_when>
    <thetext>Created attachment 390340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617281</commentid>
    <comment_count>3</comment_count>
      <attachid>390340</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-10 20:19:56 -0800</bug_when>
    <thetext>Comment on attachment 390340
Patch

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

&gt; Source/WebCore/layout/layouttree/AnonymousInlineTextBox.h:37
&gt; +class AnonymousInlineTextBox : public Box {

Shorter name would be cool as discussed.

&gt; Source/WebCore/layout/layouttree/TextContext.h:-35
&gt; -struct TextContext {

Another Context bites the dust!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617284</commentid>
    <comment_count>4</comment_count>
      <attachid>390342</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-10 20:53:46 -0800</bug_when>
    <thetext>Created attachment 390342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617285</commentid>
    <comment_count>5</comment_count>
      <attachid>390343</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-10 20:57:15 -0800</bug_when>
    <thetext>Created attachment 390343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617286</commentid>
    <comment_count>6</comment_count>
      <attachid>390344</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-10 21:28:49 -0800</bug_when>
    <thetext>Created attachment 390344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617368</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-11 06:53:23 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 390344:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617371</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-11 06:53:47 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 390344:

editing/spelling/spellcheck-attribute.html bug 206178 (authors: g.czajkowski@samsung.com, mark.lam@apple.com, and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617375</commentid>
    <comment_count>9</comment_count>
      <attachid>390344</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-11 07:13:20 -0800</bug_when>
    <thetext>Comment on attachment 390344
Patch

Clearing flags on attachment: 390344

Committed r256304: &lt;https://trac.webkit.org/changeset/256304&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617376</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-11 07:13:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390340</attachid>
            <date>2020-02-10 20:04:49 -0800</date>
            <delta_ts>2020-02-10 20:53:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207530-20200210200448.patch</filename>
            <type>text/plain</type>
            <size>55090</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJlN2ExYmVhYWQ4NjIz
OWZiNDI1ZDY0ZTQxNGM3ZTNlNGVmN2UzYi4uZGVjOGMwYmUyOTk0MjFlZjcxZjg5MWI4MTI1M2Rj
MWFkZDA1YzY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTAyLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW50cm9kdWNlIExh
eW91dDo6QW5vbnltb3VzSW5saW5lVGV4dEJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NTMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTMz
NjAyMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
bnkgdGV4dCB0aGF0IGlzIGRpcmVjdGx5IGNvbnRhaW5lZCBpbnNpZGUgYSBibG9jayBjb250YWlu
ZXIgZWxlbWVudCAobm90IGluc2lkZSBhbiBpbmxpbmUgZWxlbWVudCkgbXVzdCBiZSB0cmVhdGVk
IGFzIGFuIGFub255bW91cyBpbmxpbmUgZWxlbWVudC4KKworICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb2xsZWN0
SW5saW5lQ29udGVudElmTmVlZGVkKToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQnJlYWtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVC
cmVha2VyOjp0cnlCcmVha2luZ1RleHRSdW4gY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6bV90ZXh0Q29udGV4dCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lVGV4dEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0
SXRlbTo6Y3JlYXRlQW5kQXBwZW5kVGV4dEl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lVGV4dEl0ZW06OmlzRW1wdHlDb250ZW50IGNvbnN0KToKKyAgICAgICAgKiBsYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6aW5saW5lVGV4dEJveCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpjcmVhdGVOb25XaGl0ZXNw
YWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpjcmVh
dGVFbXB0eUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6
SW5saW5lVGV4dEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRl
bTo6bGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVt
OjpyaWdodCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxh
eW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjplbmRzV2l0aFNvZnRX
cmFwT3Bwb3J0dW5pdHkpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQv
VGV4dFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUZXh0VXRpbDo6d2lkdGgp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUZXh0VXRpbDo6c3BsaXQpOgorICAgICAgICAq
IGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwuaDoKKyAgICAgICAgKiBsYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hUcmVlOjpidWlsZFRyZWUpOgorICAgICAgICAq
IGxheW91dC9sYXlvdXR0cmVlL0Fub255bW91c0lubGluZVRleHRCb3guY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29udGV4dC5oLgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpBbm9ueW1vdXNJbmxpbmVUZXh0Qm94OjpBbm9ueW1vdXNJbmxp
bmVUZXh0Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bV9jYW5Vc2VTaW1wbGlmaWVk
Q29udGVudE1lYXN1cmluZyk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvQW5vbnltb3Vz
SW5saW5lVGV4dEJveC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvVGV4dENvbnRleHQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QW5vbnltb3Vz
SW5saW5lVGV4dEJveDo6Y29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkFub255bW91c0lubGluZVRleHRCb3g6OmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5n
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OkJveCk6CisgICAgICAgICgpOiBEZWxldGVkLgor
ICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCb3g6OmlzQW5vbnltb3VzSW5saW5lVGV4dEJveCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aGFzVGV4dENvbnRlbnQgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnRleHRDb250ZXh0IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250YWluZXI6OkNvbnRhaW5lcik6CisgICAgICAgICgp
OiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZVRleHRC
b3gpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0
Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0cHV0TGF5b3V0Qm94KToKKyAgICAg
ICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oOgorCiAyMDIwLTAyLTA5
ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1lbmFibGUg
TFRPIGZvciBBUk0gYnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDkyOGVjNTVmZWZhOTk3MDcwOGY2
NTA3NzFkMGU5NjZhM2ZhYjFjZGYuLjlkMDQwZDI2ZTg2YjExNDhmMDJkMTIyNWE3OWM2NWNhOTU1
ODU2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDQ5LDYgKzE0NDksNyBAQCBsYXlvdXQvaW50ZWdy
YXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcAogbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKIGxheW91dC9pbnZhbGlkYXRpb24vSW52YWxp
ZGF0aW9uQ29udGV4dC5jcHAKIGxheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUu
Y3BwCitsYXlvdXQvbGF5b3V0dHJlZS9Bbm9ueW1vdXNJbmxpbmVUZXh0Qm94LmNwcAogbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFp
bmVyLmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWQuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDkxY2Y2
OGE4MWFhOGRlNzJkMmE5ZDFiOTE2ZWEyMTMyNDA5ZDg3OC4uYjBhOTQ3NGZkMTA5MDQ2MDkyODBh
MmFmYmU2NDA0ZTM3MWFmNDZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzc5LDcgKzM3OSw2IEBACiAJCTExMzEwQ0Y2MjBC
QTRBNTYwMDY1QThEMCAvKiBMYXlvdXRDaGlsZEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTEwMEZDOTIwOTI3Q0JDMDA4MUFBNkMgLyog
TGF5b3V0Q2hpbGRJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTExMzEwQ0Y3MjBCQTRBNjIwMDY1QThEMCAvKiBMYXlvdXRBbmNlc3Rv
ckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxMTEwMEZDQTIwOTI4NjhEMDA4MUFBNkMgLyogTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExMzQwOURB
MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEzNDA5RDgyMDNFMDM4
MDAwQzY2OTE1IC8qIFJlbmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmggKi87IH07Ci0JCTEx
M0EzQ0I0MjM4NTg2MDEwMEFFM0VDRSAvKiBUZXh0Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEzQTNDQjIyMzg1ODYwMDAwQUUzRUNFIC8q
IFRleHRDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMTEzRDBCNTIxRjlGREQyQjAwRjYxMUJCIC8qIEZyYW1lVmlld0xheW91dENvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExM0Qw
QjUwMUY5RkREMkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTE1Q0ZBNkEyMDhBRjdE
MDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTVDRkE2ODIwOEFGN0QwMDAxRTY5OTEgLyogRm9ybWF0
dGluZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxMTVDRkE2RTIwOEFGQUI3MDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE1Q0ZB
NkMyMDhBRkFCNjAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjA1Niw2ICsyMDU1LDcg
QEAKIAkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjI2RUI0NjIzNDAw
NEE1MDA2OTA2RTIgLyogTGluZUxheW91dENvbnRleHQuaCAqLzsgfTsKIAkJNkYzNjBFNTAyMzk5
OTQyMTAwMTUxMkE3IC8qIElubGluZVNvZnRMaW5lQnJlYWtJdGVtLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjM2MEU0RTIzOTk5NDIwMDAxNTEyQTcg
LyogSW5saW5lU29mdExpbmVCcmVha0l0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjNFMUY2MjIxMzYxNDIwMDBBNjVBMDggLyogRmxvYXRC
b3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGM0Ux
RjYxMjEzNjE0MTcwMEE2NUEwOCAvKiBGbG9hdEJveC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTZGNDEwRjE0MjNGMjJEODIwMDFDQkI1MyAvKiBB
bm9ueW1vdXNJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RjQxMEYxMjIzRjIyRDgxMDAxQ0JCNTMgLyogQW5vbnltb3VzSW5saW5l
VGV4dEJveC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTZGNzc4Njg4MjM0OTFBRDgwMDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Nzg2ODcyMzQ5MUFENzAw
NEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY3Q0EzQzYyMDhDMjk1NzAwMkYyOUFCIC8qIExheW91dFN0
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjdD
QTNDNDIwOEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIg
LyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC01OTE0LDcgKzU5MTQsNiBAQAogCQkxMTJGQjM1MDIzOUMyM0M0MDA4NzA1NEEg
LyogRGlzcGxheUlubGluZVJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlzcGxheUlubGluZVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzNDA5
RDcyMDNFMDM4MDAwQzY2OTE1IC8qIFJlbmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzNDA5RDgyMDNFMDM4MDAwQzY2OTE1IC8qIFJl
bmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRyZWVC
dWlsZGVyQ29udGludWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTExM0Ez
Q0IyMjM4NTg2MDAwMEFFM0VDRSAvKiBUZXh0Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXh0Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxMTNEMEI0RjFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzRDBCNTAxRjlGREQyQjAwRjYxMUJCIC8qIEZyYW1lVmll
d0xheW91dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTVDQTgzMDIzMzI4QjFFMDBGRDNCMDgg
LyogTGF5b3V0VW5pdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0VW5pdHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTMwOCw2ICs5MzA3LDcgQEAKIAkJNkYzNjBF
NEUyMzk5OTQyMDAwMTUxMkE3IC8qIElubGluZVNvZnRMaW5lQnJlYWtJdGVtLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZVNvZnRMaW5lQnJlYWtJdGVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGM0UxRjVGMjEzNjE0MTcwMEE2NUEwOCAvKiBGbG9h
dEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbG9hdEJveC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZGM0UxRjYxMjEzNjE0MTcwMEE2NUEwOCAvKiBGbG9hdEJveC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGbG9hdEJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2
RjQxMEYxMjIzRjIyRDgxMDAxQ0JCNTMgLyogQW5vbnltb3VzSW5saW5lVGV4dEJveC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbm9ueW1vdXNJbmxpbmVUZXh0Qm94Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNEE1QkQ1MjJGOUYxNkIwMEE4MEYyNSAvKiBM
YXlvdXRQaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRQaGFzZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNUI3RUFBMjMwMEE3OUUwMDY3RDlDMyAvKiBUYWJs
ZUdyaWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFibGVHcmlkLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8qIExheW91dFVuaXRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFVuaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC05MzY4LDYgKzkzNjgsNyBAQAogCQk2RkU4RTZGODIzN0JBNkIyMDA3NThEMjYgLyog
SW52YWxpZGF0aW9uU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW52YWxpZGF0aW9uU3Rh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkU5RjA5MjIyMjExMDM1MDA0
QzUwODIgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZGRUZFODFEMjJGOUQyMkEwMDExNDkyNyAvKiBMYXlvdXRQaGFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMYXlvdXRQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk2RkYwQ0RGRTIzRjI1NjQ3MDA3NjM4QTEgLyogQW5vbnltb3VzSW5saW5lVGV4dEJveC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBbm9ueW1vdXNJbmxpbmVUZXh0Qm94LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZGREM0M0UyMTJFRkYxNjAwQTlDQTkxIC8qIEZsb2F0
QXZvaWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbG9hdEF2
b2lkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkZEQzQ0MDIxMkVGRjE2
MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZsb2F0QXZvaWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MDlBMDFG
RDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjczMyw2ICsxNjczNCw4IEBACiAJCTExNUNGQTkwMjA4
Qjk0NDEwMDFFNjk5MSAvKiBsYXlvdXR0cmVlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQk2RkYwQ0RGRTIzRjI1NjQ3MDA3NjM4QTEgLyogQW5vbnltb3Vz
SW5saW5lVGV4dEJveC5jcHAgKi8sCisJCQkJNkY0MTBGMTIyM0YyMkQ4MTAwMUNCQjUzIC8qIEFu
b255bW91c0lubGluZVRleHRCb3guaCAqLywKIAkJCQkxMTEwMEZDQTIwOTI4NjhEMDA4MUFBNkMg
LyogTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oICovLAogCQkJCTExNUNGQTk2MjA4Qjk1MkIwMDFF
Njk5MSAvKiBMYXlvdXRCb3guY3BwICovLAogCQkJCTExNUNGQTk1MjA4Qjk1MkIwMDFFNjk5MSAv
KiBMYXlvdXRCb3guaCAqLywKQEAgLTE2NzQ1LDcgKzE2NzQ4LDYgQEAKIAkJCQkxMTFDNjE1NjIw
QUQxQUUxMDA1QjgyRkEgLyogTGF5b3V0UmVwbGFjZWQuaCAqLywKIAkJCQkxMTEwMEZENTIwOTUx
NERFMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxkZXIuY3BwICovLAogCQkJCTExMTAwRkQ3MjA5
NTE0REYwMDgxQUE2QyAvKiBMYXlvdXRUcmVlQnVpbGRlci5oICovLAotCQkJCTExM0EzQ0IyMjM4
NTg2MDAwMEFFM0VDRSAvKiBUZXh0Q29udGV4dC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBsYXlv
dXR0cmVlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4OTEzLDYgKzI4OTE1LDE3
IEBACiAJCQlmaWxlcyA9ICgKIAkJCQk3MjE0NDMzMjIyM0VDODVGMDBGMTJGRjcgLyogKG51bGwp
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzIxNDQzMzEyMjNFQzg1NDAwRjEyRkY3IC8qIChudWxsKSBp
biBIZWFkZXJzICovLAorCQkJCTJEREUxQ0U0MUY1NzRBRTkwMEQxQTM2NSAvKiAobnVsbCkgaW4g
SGVhZGVycyAqLywKKwkJCQkyRERFMUNGODFGNTc0QzM5MDBEMUEzNjUgLyogKG51bGwpIGluIEhl
YWRlcnMgKi8sCisJCQkJMkRERTFDRkExRjU3NEMzRTAwRDFBMzY1IC8qIChudWxsKSBpbiBIZWFk
ZXJzICovLAorCQkJCTJEREUxQ0ZDMUY1NzRDRUUwMEQxQTM2NSAvKiAobnVsbCkgaW4gSGVhZGVy
cyAqLywKKwkJCQkyRERFMUNGRTFGNTc0Q0YzMDBEMUEzNjUgLyogKG51bGwpIGluIEhlYWRlcnMg
Ki8sCisJCQkJMkRERTFEMDAxRjU3NENGNzAwRDFBMzY1IC8qIChudWxsKSBpbiBIZWFkZXJzICov
LAorCQkJCTJEREUxQ0UzMUY1NzRBRTUwMEQxQTM2NSAvKiAobnVsbCkgaW4gSGVhZGVycyAqLywK
KwkJCQkyRERFMUQwMjFGNTc0RDAwMDBEMUEzNjUgLyogKG51bGwpIGluIEhlYWRlcnMgKi8sCisJ
CQkJMkRERTFEMDQxRjU3NEQwNTAwRDFBMzY1IC8qIChudWxsKSBpbiBIZWFkZXJzICovLAorCQkJ
CTJEREUxRDA2MUY1NzREMEEwMEQxQTM2NSAvKiAobnVsbCkgaW4gSGVhZGVycyAqLywKKwkJCQky
RERFMUQwODFGNTc0RDBFMDBEMUEzNjUgLyogKG51bGwpIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NE
MEUyQjgxRjgwQTQ4MjAwMTZBNENFIC8qIEFib3J0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0NEMEUyQkYxRjgwQTU2RTAwMTZBNENFIC8qIEFib3J0U2lnbmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NkI5NTE5NTIwN0Q2MzM0MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cu
aCBpbiBIZWFkZXJzICovLApAQCAtMjg5NzYsNiArMjg5ODksNyBAQAogCQkJCTcxNEM3QzY3MUZE
QUQyQTkwMEYyQkVFMSAvKiBBbmltYXRpb25QbGF5YmFja0V2ZW50SW5pdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzEwMjVFQ0QxRjk5RjBDRTAwNEEyNTBDIC8qIEFuaW1hdGlvblRpbWVsaW5lLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MEZBRjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9u
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk2RjQxMEYxNDIzRjIyRDgyMDAxQ0JCNTMg
LyogQW5vbnltb3VzSW5saW5lVGV4dEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcxNTJCNUEy
MUNCM0U4ODAwMEMzN0NBIC8qIEFwZHVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzE1
MkI1QzIxQ0MxOTAyMDAwQzM3Q0EgLyogQXBkdVJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOURENzA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzExNzQsMTcgKzMxMTg4LDYgQEAKIAkJCQlCRThFRjA0RDE3MUM5MDE0MDA5
QjQ4QzMgLyogSlNWaWRlb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZFNzkxNDkx
Rjk3RTAxQTAwMTk5NzM5IC8qIEpTVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3Nzc5QkQ5NjFGMzIyNDZBMDBDMjE0MTcgLyogSlNWaXN1YWxWaWV3cG9ydC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMkRERTFDRTQxRjU3NEFFOTAwRDFBMzY1IC8qIChudWxsKSBpbiBIZWFkZXJz
ICovLAotCQkJCTJEREUxQ0Y4MUY1NzRDMzkwMEQxQTM2NSAvKiAobnVsbCkgaW4gSGVhZGVycyAq
LywKLQkJCQkyRERFMUNGQTFGNTc0QzNFMDBEMUEzNjUgLyogKG51bGwpIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMkRERTFDRkMxRjU3NENFRTAwRDFBMzY1IC8qIChudWxsKSBpbiBIZWFkZXJzICovLAot
CQkJCTJEREUxQ0ZFMUY1NzRDRjMwMEQxQTM2NSAvKiAobnVsbCkgaW4gSGVhZGVycyAqLywKLQkJ
CQkyRERFMUQwMDFGNTc0Q0Y3MDBEMUEzNjUgLyogKG51bGwpIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MkRERTFDRTMxRjU3NEFFNTAwRDFBMzY1IC8qIChudWxsKSBpbiBIZWFkZXJzICovLAotCQkJCTJE
REUxRDAyMUY1NzREMDAwMEQxQTM2NSAvKiAobnVsbCkgaW4gSGVhZGVycyAqLywKLQkJCQkyRERF
MUQwNDFGNTc0RDA1MDBEMUEzNjUgLyogKG51bGwpIGluIEhlYWRlcnMgKi8sCi0JCQkJMkRERTFE
MDYxRjU3NEQwQTAwRDFBMzY1IC8qIChudWxsKSBpbiBIZWFkZXJzICovLAotCQkJCTJEREUxRDA4
MUY1NzREMEUwMEQxQTM2NSAvKiAobnVsbCkgaW4gSGVhZGVycyAqLywKIAkJCQlCRTIwNTA4MjE4
QTQ2MEMzMDA4MDY0N0UgLyogSlNWVFRDdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBRjlCMjBE
MThDRkI1RjQwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FG
OUIyMEYxOENGQjVGNDAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMjY5NCw3ICszMjY5Nyw2IEBACiAJCQkJQjJDM0RBNDAwRDAwNkMxRDAwRUY2RjI2IC8q
IFRleHRDb2RlY1VzZXJEZWZpbmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MjBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVVRGMTYuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDND
QjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVycyAqLywKLQkJ
CQkxMTNBM0NCNDIzODU4NjAxMDBBRTNFQ0UgLyogVGV4dENvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE0MkI5N0NBMTMxMzg5NDMwMDhCRUY0QiAvKiBUZXh0Q29udHJvbElubmVyRWxlbWVu
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MkRFMzI1MUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0
RGVjb3JhdGlvblBhaW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDNzNBNzE1MjE4NTc1ODcw
MDRDQ0VBNSAvKiBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNTJjNzZlYjk0NjQ5YWJkNGE2MGZk
Y2NhOWVmZTEzMjQ4YzA2YmY3Yy4uNDhjYTA2MjgwMTg5MDdmMWIxMjE3Yzk5YmI0Yjc0MzhlMDQy
MjY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKKyNpbmNsdWRl
ICJBbm9ueW1vdXNJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiRmxvYXRpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nU3Rh
dGUuaCIKQEAgLTMzOCw4ICszMzksOCBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpj
b2xsZWN0SW5saW5lQ29udGVudElmTmVlZGVkKCkKICAgICAgICAgICAgIGVsc2UgaWYgKGxheW91
dEJveC5pc0F0b21pY0lubGluZUxldmVsQm94KCkpCiAgICAgICAgICAgICAgICAgZm9ybWF0dGlu
Z1N0YXRlLmFkZElubGluZUl0ZW0oeyBsYXlvdXRCb3gsIElubGluZUl0ZW06OlR5cGU6OkJveCB9
KTsKICAgICAgICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5pc0Fub255bW91cygpKSB7Ci0gICAg
ICAgICAgICAgICAgQVNTRVJUKGxheW91dEJveC5oYXNUZXh0Q29udGVudCgpKTsKLSAgICAgICAg
ICAgICAgICBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlQW5kQXBwZW5kVGV4dEl0ZW1zKGZvcm1hdHRp
bmdTdGF0ZS5pbmxpbmVJdGVtcygpLCBsYXlvdXRCb3gpOworICAgICAgICAgICAgICAgIEFTU0VS
VChsYXlvdXRCb3guaXNBbm9ueW1vdXNJbmxpbmVUZXh0Qm94KCkpOworICAgICAgICAgICAgICAg
IElubGluZVRleHRJdGVtOjpjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoZm9ybWF0dGluZ1N0YXRl
LmlubGluZUl0ZW1zKCksIGRvd25jYXN0PEFub255bW91c0lubGluZVRleHRCb3g+KGxheW91dEJv
eCkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChsYXlvdXRCb3guaXNJbmxpbmVCb3goKSkKICAg
ICAgICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkSW5saW5lSXRlbSh7IGxheW91dEJveCwg
SW5saW5lSXRlbTo6VHlwZTo6Q29udGFpbmVyRW5kIH0pOwogICAgICAgICAgICAgZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUJyZWFrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lTGluZUJyZWFrZXIuY3BwCmluZGV4IDYzNWMyZTAzNGY3MWM0MjY5ZmYxZGEwYzdkZmZkNzZi
ZDVjNGVlZjYuLmQ0YzAwNGNiZjFhMGEyNWJlZGVlYzMxOWIyOTg0NTE1ZDlmZGY0MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVC
cmVha2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVMaW5lQnJlYWtlci5jcHAKQEAgLTMxMyw3ICszMTMsNyBAQCBPcHRpb25hbDxMaW5lQnJl
YWtlcjo6UGFydGlhbFJ1bj4gTGluZUJyZWFrZXI6OnRyeUJyZWFraW5nVGV4dFJ1bihjb25zdCBS
dW4mIG92ZQogICAgICAgICAgICAgcmV0dXJuIFBhcnRpYWxSdW4geyBpbmxpbmVUZXh0SXRlbS5s
ZW5ndGgoKSwgb3ZlcmZsb3dSdW4ubG9naWNhbFdpZHRoLCBmYWxzZSB9OwogICAgICAgICB9CiAg
ICAgICAgIC8vIEZJWE1FOiBQYXNzIGluIHRoZSBjb250ZW50IGxvZ2ljYWwgbGVmdCB0byBiZSBh
YmxlIHRvIG1lYXN1cmUgdGFicy4KLSAgICAgICAgYXV0byBzcGxpdERhdGEgPSBUZXh0VXRpbDo6
c3BsaXQoaW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCksIGlubGluZVRleHRJdGVtLnN0YXJ0KCks
IGlubGluZVRleHRJdGVtLmxlbmd0aCgpLCBvdmVyZmxvd1J1bi5sb2dpY2FsV2lkdGgsIGF2YWls
YWJsZVdpZHRoLCB7IH0pOworICAgICAgICBhdXRvIHNwbGl0RGF0YSA9IFRleHRVdGlsOjpzcGxp
dChpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCksIGlubGluZVRleHRJdGVtLnN0YXJ0KCks
IGlubGluZVRleHRJdGVtLmxlbmd0aCgpLCBvdmVyZmxvd1J1bi5sb2dpY2FsV2lkdGgsIGF2YWls
YWJsZVdpZHRoLCB7IH0pOwogICAgICAgICByZXR1cm4gUGFydGlhbFJ1biB7IHNwbGl0RGF0YS5s
ZW5ndGgsIHNwbGl0RGF0YS5sb2dpY2FsV2lkdGgsIGZhbHNlIH07CiAgICAgfQogCkBAIC0zMzYs
MTQgKzMzNiwxMyBAQCBPcHRpb25hbDxMaW5lQnJlYWtlcjo6UGFydGlhbFJ1bj4gTGluZUJyZWFr
ZXI6OnRyeUJyZWFraW5nVGV4dFJ1bihjb25zdCBSdW4mIG92ZQogICAgICAgICAgICAgYXV0byBh
dmFpbGFibGVXaWR0aEV4Y2x1ZGluZ0h5cGhlbiA9IGF2YWlsYWJsZVdpZHRoIC0gaHlwaGVuV2lk
dGg7CiAgICAgICAgICAgICBpZiAoYXZhaWxhYmxlV2lkdGhFeGNsdWRpbmdIeXBoZW4gPD0gMCB8
fCAhZW5vdWdoV2lkdGhGb3JIeXBoZW5hdGlvbihhdmFpbGFibGVXaWR0aEV4Y2x1ZGluZ0h5cGhl
biwgZm9udENhc2NhZGUucGl4ZWxTaXplKCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB7IH07
Ci0gICAgICAgICAgICBsZWZ0U2lkZUxlbmd0aCA9IFRleHRVdGlsOjpzcGxpdChpbmxpbmVUZXh0
SXRlbS5sYXlvdXRCb3goKSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgcnVuTGVuZ3RoLCBvdmVy
Zmxvd1J1bi5sb2dpY2FsV2lkdGgsIGF2YWlsYWJsZVdpZHRoRXhjbHVkaW5nSHlwaGVuLCB7IH0p
Lmxlbmd0aDsKKyAgICAgICAgICAgIGxlZnRTaWRlTGVuZ3RoID0gVGV4dFV0aWw6OnNwbGl0KGlu
bGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgcnVu
TGVuZ3RoLCBvdmVyZmxvd1J1bi5sb2dpY2FsV2lkdGgsIGF2YWlsYWJsZVdpZHRoRXhjbHVkaW5n
SHlwaGVuLCB7IH0pLmxlbmd0aDsKICAgICAgICAgfQogICAgICAgICBpZiAobGVmdFNpZGVMZW5n
dGggPCBsaW1pdEJlZm9yZSkKICAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIGF1dG8g
dGV4dENvbnRlbnQgPSBpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKS50ZXh0Q29udGV4dCgpLT5j
b250ZW50OwogICAgICAgICAvLyBBZGp1c3QgYmVmb3JlIGluZGV4IHRvIGFjY29tbW9kYXRlIHRo
ZSBsaW1pdC1hZnRlciB2YWx1ZSAoaXQncyB0aGUgbGFzdCBwb3RlbnRpYWwgaHlwaGVuIGxvY2F0
aW9uIGluIHRoaXMgcnVuKS4KICAgICAgICAgYXV0byBoeXBoZW5CZWZvcmUgPSBzdGQ6Om1pbihs
ZWZ0U2lkZUxlbmd0aCwgcnVuTGVuZ3RoIC0gbGltaXRBZnRlcikgKyAxOwotICAgICAgICB1bnNp
Z25lZCBoeXBoZW5Mb2NhdGlvbiA9IGxhc3RIeXBoZW5Mb2NhdGlvbihTdHJpbmdWaWV3KHRleHRD
b250ZW50KS5zdWJzdHJpbmcoaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0u
bGVuZ3RoKCkpLCBoeXBoZW5CZWZvcmUsIHN0eWxlLmxvY2FsZSgpKTsKKyAgICAgICAgdW5zaWdu
ZWQgaHlwaGVuTG9jYXRpb24gPSBsYXN0SHlwaGVuTG9jYXRpb24oU3RyaW5nVmlldyhpbmxpbmVU
ZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCkuY29udGVudCgpKS5zdWJzdHJpbmcoaW5saW5lVGV4dEl0
ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkpLCBoeXBoZW5CZWZvcmUsIHN0eWxl
LmxvY2FsZSgpKTsKICAgICAgICAgaWYgKCFoeXBoZW5Mb2NhdGlvbiB8fCBoeXBoZW5Mb2NhdGlv
biA8IGxpbWl0QmVmb3JlKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgLy8gaHlw
aGVuTG9jYXRpb24gaXMgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoaXMgSW5saW5lSXRlbVRl
eHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVMaW5lQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKaW5kZXggZjI0ZDAyM2U0ZDIxYWE1OTY0YzY5ODg3
ZjFlY2I0MDZmZmQ2ZDM0MS4uY2NjZjhiYjRhYzU5ZDYzMjQzZDljYWM3NmVjODA5ZGUzOGYyMDE1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lTGluZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAtNzUwLDcgKzc1MCw3IEBAIExpbmVCdWls
ZGVyOjpSdW46OlJ1bihjb25zdCBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSYgc29mdExpbmVCcmVh
a0l0ZW0sIElubGluZUxhCiAgICAgOiBtX3R5cGUoc29mdExpbmVCcmVha0l0ZW0udHlwZSgpKQog
ICAgICwgbV9sYXlvdXRCb3goJnNvZnRMaW5lQnJlYWtJdGVtLmxheW91dEJveCgpKQogICAgICwg
bV9sb2dpY2FsUmVjdCh7IDAsIGxvZ2ljYWxMZWZ0LCAwLCAwIH0pCi0gICAgLCBtX3RleHRDb250
ZXh0KHsgc29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSwgc29mdExpbmVCcmVha0l0ZW0u
bGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+Y29udGVudCB9KQorICAgICwgbV90ZXh0Q29udGV4
dCh7IHNvZnRMaW5lQnJlYWtJdGVtLnBvc2l0aW9uKCksIDEsIHsgfSB9KQogewogfQogCkBAIC03
NTksNyArNzU5LDcgQEAgTGluZUJ1aWxkZXI6OlJ1bjo6UnVuKGNvbnN0IElubGluZVRleHRJdGVt
JiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2cKICAgICAsIG1fbGF5b3V0Qm94
KCZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkKICAgICAsIG1fbG9naWNhbFJlY3QoeyAwLCBs
b2dpY2FsTGVmdCwgbG9naWNhbFdpZHRoLCAwIH0pCiAgICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFj
ZVR5cGUodHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRlbSkpCi0gICAgLCBtX3Rl
eHRDb250ZXh0KHsgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgbV90cmFpbGluZ1doaXRlc3BhY2VU
eXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6Q29sbGFwc2VkID8gMSA6IGlubGluZVRleHRJdGVt
Lmxlbmd0aCgpLCBpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKS50ZXh0Q29udGV4dCgpLT5jb250
ZW50IH0pCisgICAgLCBtX3RleHRDb250ZXh0KHsgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgbV90
cmFpbGluZ1doaXRlc3BhY2VUeXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6Q29sbGFwc2VkID8g
MSA6IGlubGluZVRleHRJdGVtLmxlbmd0aCgpLCBpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94
KCkuY29udGVudCgpIH0pCiB7CiAgICAgaWYgKG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSAhPSBU
cmFpbGluZ1doaXRlc3BhY2U6Ok5vbmUpIHsKICAgICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2VX
aWR0aCA9IGxvZ2ljYWxXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZVNvZnRMaW5lQnJlYWtJdGVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oCmluZGV4
IGY2ZDJjMGRiYzBiOGQwMTQ5ZGM5ZmMzMDEwZjVkZjA4ZjFiYWQyZTUuLmU0ZjVmZDM0MzlkNmI0
YjNkMDcwMTc5ZDNmNmI4YWQ5NGUxNTIzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVNvZnRMaW5lQnJlYWtJdGVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lU29mdExpbmVCcmVha0l0
ZW0uaApAQCAtMzQsMjAgKzM0LDIwIEBAIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBJbmxp
bmVTb2Z0TGluZUJyZWFrSXRlbSA6IHB1YmxpYyBJbmxpbmVJdGVtIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgSW5saW5lU29mdExpbmVCcmVha0l0ZW0gY3JlYXRlU29mdExpbmVCcmVha0l0ZW0oY29u
c3QgQm94JiwgdW5zaWduZWQgcG9zaXRpb24pOworICAgIHN0YXRpYyBJbmxpbmVTb2Z0TGluZUJy
ZWFrSXRlbSBjcmVhdGVTb2Z0TGluZUJyZWFrSXRlbShjb25zdCBBbm9ueW1vdXNJbmxpbmVUZXh0
Qm94JiwgdW5zaWduZWQgcG9zaXRpb24pOwogCiAgICAgdW5zaWduZWQgcG9zaXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3N0YXJ0T3JQb3NpdGlvbjsgfQogCi0gICAgSW5saW5lU29mdExpbmVCcmVh
a0l0ZW0oY29uc3QgQm94JiwgdW5zaWduZWQgcG9zaXRpb24pOworICAgIElubGluZVNvZnRMaW5l
QnJlYWtJdGVtKGNvbnN0IEFub255bW91c0lubGluZVRleHRCb3gmLCB1bnNpZ25lZCBwb3NpdGlv
bik7CiB9OwogCi1pbmxpbmUgSW5saW5lU29mdExpbmVCcmVha0l0ZW0gSW5saW5lU29mdExpbmVC
cmVha0l0ZW06OmNyZWF0ZVNvZnRMaW5lQnJlYWtJdGVtKGNvbnN0IEJveCYgaW5saW5lQm94LCB1
bnNpZ25lZCBwb3NpdGlvbikKK2lubGluZSBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSBJbmxpbmVT
b2Z0TGluZUJyZWFrSXRlbTo6Y3JlYXRlU29mdExpbmVCcmVha0l0ZW0oY29uc3QgQW5vbnltb3Vz
SW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgdW5zaWduZWQgcG9zaXRpb24pCiB7Ci0gICAg
cmV0dXJuIHsgaW5saW5lQm94LCBwb3NpdGlvbiB9OworICAgIHJldHVybiB7IGlubGluZVRleHRC
b3gsIHBvc2l0aW9uIH07CiB9CiAKLWlubGluZSBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbTo6SW5s
aW5lU29mdExpbmVCcmVha0l0ZW0oY29uc3QgQm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHBvc2l0
aW9uKQotICAgIDogSW5saW5lSXRlbShpbmxpbmVCb3gsIFR5cGU6OlNvZnRMaW5lQnJlYWspCitp
bmxpbmUgSW5saW5lU29mdExpbmVCcmVha0l0ZW06OklubGluZVNvZnRMaW5lQnJlYWtJdGVtKGNv
bnN0IEFub255bW91c0lubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIHVuc2lnbmVkIHBvc2l0
aW9uKQorICAgIDogSW5saW5lSXRlbShpbmxpbmVUZXh0Qm94LCBUeXBlOjpTb2Z0TGluZUJyZWFr
KQogewogICAgIG1fc3RhcnRPclBvc2l0aW9uID0gcG9zaXRpb247CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5j
cHAKaW5kZXggMWNkMzNiYWQzODNhNTZjYmMwZDAyMjI0YTAyMThlMWFjMzlmODAyNS4uYTkwZDVk
ZjNhMmE4MzI4YzliY2Y5MGUyNGQ2YjljODAzYjA1MzRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcApA
QCAtNjUsMjIgKzY1LDIxIEBAIHN0YXRpYyB1bnNpZ25lZCBtb3ZlVG9OZXh0QnJlYWthYmxlUG9z
aXRpb24odW5zaWduZWQgc3RhcnRQb3NpdGlvbiwgTGF6eUxpbmVCcmVhCiAgICAgcmV0dXJuIHRl
eHRMZW5ndGggLSBzdGFydFBvc2l0aW9uOwogfQogCi12b2lkIElubGluZVRleHRJdGVtOjpjcmVh
dGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmIGlubGluZUNvbnRlbnQsIGNvbnN0IEJv
eCYgaW5saW5lQm94KQordm9pZCBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlQW5kQXBwZW5kVGV4dEl0
ZW1zKElubGluZUl0ZW1zJiBpbmxpbmVDb250ZW50LCBjb25zdCBBbm9ueW1vdXNJbmxpbmVUZXh0
Qm94JiBpbmxpbmVUZXh0Qm94KQogewotICAgIGF1dG8mIHRleHRDb250ZXh0ID0gKmlubGluZUJv
eC50ZXh0Q29udGV4dCgpOwotICAgIGF1dG8gdGV4dCA9IHRleHRDb250ZXh0LmNvbnRlbnQ7Cisg
ICAgYXV0byB0ZXh0ID0gaW5saW5lVGV4dEJveC5jb250ZW50KCk7CiAgICAgaWYgKCF0ZXh0Lmxl
bmd0aCgpKQotICAgICAgICByZXR1cm4gaW5saW5lQ29udGVudC5hcHBlbmQoSW5saW5lVGV4dEl0
ZW06OmNyZWF0ZUVtcHR5SXRlbShpbmxpbmVCb3gpKTsKKyAgICAgICAgcmV0dXJuIGlubGluZUNv
bnRlbnQuYXBwZW5kKElubGluZVRleHRJdGVtOjpjcmVhdGVFbXB0eUl0ZW0oaW5saW5lVGV4dEJv
eCkpOwogCi0gICAgYXV0byYgc3R5bGUgPSBpbmxpbmVCb3guc3R5bGUoKTsKKyAgICBhdXRvJiBz
dHlsZSA9IGlubGluZVRleHRCb3guc3R5bGUoKTsKICAgICBhdXRvJiBmb250ID0gc3R5bGUuZm9u
dENhc2NhZGUoKTsKICAgICBMYXp5TGluZUJyZWFrSXRlcmF0b3IgbGluZUJyZWFrSXRlcmF0b3Io
dGV4dCk7CiAgICAgdW5zaWduZWQgY3VycmVudFBvc2l0aW9uID0gMDsKIAogICAgIGF1dG8gaW5s
aW5lSXRlbVdpZHRoID0gWyZdKGF1dG8gc3RhcnRQb3NpdGlvbiwgYXV0byBsZW5ndGgpIC0+IE9w
dGlvbmFsPElubGluZUxheW91dFVuaXQ+IHsKLSAgICAgICAgaWYgKCF0ZXh0Q29udGV4dC5jYW5V
c2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmluZykKKyAgICAgICAgaWYgKCFpbmxpbmVUZXh0Qm94
LmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKCkpCiAgICAgICAgICAgICByZXR1cm4g
eyB9OwotICAgICAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZUJveCwgc3RhcnRQb3Np
dGlvbiwgc3RhcnRQb3NpdGlvbiArIGxlbmd0aCk7CisgICAgICAgIHJldHVybiBUZXh0VXRpbDo6
d2lkdGgoaW5saW5lVGV4dEJveCwgc3RhcnRQb3NpdGlvbiwgc3RhcnRQb3NpdGlvbiArIGxlbmd0
aCk7CiAgICAgfTsKIAogICAgIHdoaWxlIChjdXJyZW50UG9zaXRpb24gPCB0ZXh0Lmxlbmd0aCgp
KSB7CkBAIC05MCwxNiArODksMTYgQEAgdm9pZCBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlQW5kQXBw
ZW5kVGV4dEl0ZW1zKElubGluZUl0ZW1zJiBpbmxpbmVDb250ZW50LCBjb25zdAogCiAgICAgICAg
IC8vIFNlZ21lbnQgYnJlYWtzIHdpdGggcHJlc2VydmUgbmV3IGxpbmUgc3R5bGUgKHdoaXRlLXNw
YWNlOiBwcmUsIHByZS13cmFwLCBicmVhay1zcGFjZXMgYW5kIHByZS1saW5lKSBjb21wdXRlIHRv
IGZvcmNlZCBsaW5lIGJyZWFrLgogICAgICAgICBpZiAoaXNTZWdtZW50QnJlYWtDYW5kaWRhdGUo
dGV4dFtjdXJyZW50UG9zaXRpb25dKSAmJiBzdHlsZS5wcmVzZXJ2ZU5ld2xpbmUoKSkgewotICAg
ICAgICAgICAgaW5saW5lQ29udGVudC5hcHBlbmQoSW5saW5lU29mdExpbmVCcmVha0l0ZW06OmNy
ZWF0ZVNvZnRMaW5lQnJlYWtJdGVtKGlubGluZUJveCwgY3VycmVudFBvc2l0aW9uKSk7CisgICAg
ICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVuZChJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbTo6Y3Jl
YXRlU29mdExpbmVCcmVha0l0ZW0oaW5saW5lVGV4dEJveCwgY3VycmVudFBvc2l0aW9uKSk7CiAg
ICAgICAgICAgICArK2N1cnJlbnRQb3NpdGlvbjsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZUNoYXJhY3Rlcih0ZXh0W2N1cnJlbnRQ
b3NpdGlvbl0sIHN0eWxlLnByZXNlcnZlTmV3bGluZSgpKSkgewogICAgICAgICAgICAgYXV0byBh
cHBlbmRXaGl0ZXNwYWNlSXRlbSA9IFsmXSAoYXV0byBzdGFydFBvc2l0aW9uLCBhdXRvIGl0ZW1M
ZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHNpbXBsZVNpbmdsZVdoaXRlc3BhY2VDb250
ZW50ID0gdGV4dENvbnRleHQuY2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJpbmcgJiYgKGl0
ZW1MZW5ndGggPT0gMSB8fCBzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSk7CisgICAgICAgICAg
ICAgICAgYXV0byBzaW1wbGVTaW5nbGVXaGl0ZXNwYWNlQ29udGVudCA9IGlubGluZVRleHRCb3gu
Y2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJpbmcoKSAmJiAoaXRlbUxlbmd0aCA9PSAxIHx8
IHN0eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgpKTsKICAgICAgICAgICAgICAgICBhdXRvIHdpZHRo
ID0gc2ltcGxlU2luZ2xlV2hpdGVzcGFjZUNvbnRlbnQgPyBtYWtlT3B0aW9uYWwoSW5saW5lTGF5
b3V0VW5pdCB7IGZvbnQuc3BhY2VXaWR0aCgpIH0pIDogaW5saW5lSXRlbVdpZHRoKHN0YXJ0UG9z
aXRpb24sIGl0ZW1MZW5ndGgpOwotICAgICAgICAgICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5k
KElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShpbmxpbmVCb3gsIHN0YXJ0UG9z
aXRpb24sIGl0ZW1MZW5ndGgsIHdpZHRoKSk7CisgICAgICAgICAgICAgICAgaW5saW5lQ29udGVu
dC5hcHBlbmQoSW5saW5lVGV4dEl0ZW06OmNyZWF0ZVdoaXRlc3BhY2VJdGVtKGlubGluZVRleHRC
b3gsIHN0YXJ0UG9zaXRpb24sIGl0ZW1MZW5ndGgsIHdpZHRoKSk7CiAgICAgICAgICAgICB9Owog
CiAgICAgICAgICAgICBhdXRvIGxlbmd0aCA9IG1vdmVUb05leHROb25XaGl0ZXNwYWNlUG9zaXRp
b24odGV4dCwgY3VycmVudFBvc2l0aW9uLCBzdHlsZS5wcmVzZXJ2ZU5ld2xpbmUoKSk7CkBAIC0x
MTYsNyArMTE1LDcgQEAgdm9pZCBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlQW5kQXBwZW5kVGV4dEl0
ZW1zKElubGluZUl0ZW1zJiBpbmxpbmVDb250ZW50LCBjb25zdAogICAgICAgICB9CiAKICAgICAg
ICAgYXV0byBsZW5ndGggPSBtb3ZlVG9OZXh0QnJlYWthYmxlUG9zaXRpb24oY3VycmVudFBvc2l0
aW9uLCBsaW5lQnJlYWtJdGVyYXRvciwgc3R5bGUpOwotICAgICAgICBpbmxpbmVDb250ZW50LmFw
cGVuZChJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlTm9uV2hpdGVzcGFjZUl0ZW0oaW5saW5lQm94LCBj
dXJyZW50UG9zaXRpb24sIGxlbmd0aCwgaW5saW5lSXRlbVdpZHRoKGN1cnJlbnRQb3NpdGlvbiwg
bGVuZ3RoKSkpOworICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVuZChJbmxpbmVUZXh0SXRlbTo6
Y3JlYXRlTm9uV2hpdGVzcGFjZUl0ZW0oaW5saW5lVGV4dEJveCwgY3VycmVudFBvc2l0aW9uLCBs
ZW5ndGgsIGlubGluZUl0ZW1XaWR0aChjdXJyZW50UG9zaXRpb24sIGxlbmd0aCkpKTsKICAgICAg
ICAgY3VycmVudFBvc2l0aW9uICs9IGxlbmd0aDsKICAgICB9CiB9CkBAIC0xMjQsNyArMTIzLDcg
QEAgdm9pZCBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlQW5kQXBwZW5kVGV4dEl0ZW1zKElubGluZUl0
ZW1zJiBpbmxpbmVDb250ZW50LCBjb25zdAogYm9vbCBJbmxpbmVUZXh0SXRlbTo6aXNFbXB0eUNv
bnRlbnQoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2hlY2sgZm9yIG1vcmUg
emVybyB3aWR0aCBjb250ZW50IGFuZCBub3QganVzdCBVKzIwMEIuCi0gICAgcmV0dXJuICFtX2xl
bmd0aCB8fCAobV9sZW5ndGggPT0gMSAmJiBsYXlvdXRCb3goKS50ZXh0Q29udGV4dCgpLT5jb250
ZW50W3N0YXJ0KCldID09IHplcm9XaWR0aFNwYWNlKTsgCisgICAgcmV0dXJuICFtX2xlbmd0aCB8
fCAobV9sZW5ndGggPT0gMSAmJiBpbmxpbmVUZXh0Qm94KCkuY29udGVudCgpW3N0YXJ0KCldID09
IHplcm9XaWR0aFNwYWNlKTsgCiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oCmluZGV4IDJmMTc4NzdhYmQ4
YjFiYzg4MWZmYWRhNDg3NzJlNThkNTQxNzc1ZjMuLjU5NmJkNjBlZThmZmQ3YTQ3NzQxYTJlM2Zh
ZDI5ZGM3NjMzODlhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKKyNpbmNsdWRlICJBbm9ueW1vdXNJ
bmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5j
bHVkZSAiSW5saW5lSXRlbS5oIgogCkBAIC0zNSw3ICszNiw3IEBAIG5hbWVzcGFjZSBMYXlvdXQg
ewogCiBjbGFzcyBJbmxpbmVUZXh0SXRlbSA6IHB1YmxpYyBJbmxpbmVJdGVtIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgdm9pZCBjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmLCBj
b25zdCBCb3gmKTsKKyAgICBzdGF0aWMgdm9pZCBjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5s
aW5lSXRlbXMmLCBjb25zdCBBbm9ueW1vdXNJbmxpbmVUZXh0Qm94Jik7CiAKICAgICB1bnNpZ25l
ZCBzdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRPclBvc2l0aW9uOyB9CiAgICAgdW5zaWdu
ZWQgZW5kKCkgY29uc3QgeyByZXR1cm4gc3RhcnQoKSArIGxlbmd0aCgpOyB9CkBAIC00Niw0OCAr
NDcsNTAgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNXaWR0aCA/IG1ha2VPcHRpb25hbChtX3dpZHRoKSA6IE9wdGlv
bmFsPElubGluZUxheW91dFVuaXQ+IHsgfTsgfQogICAgIGJvb2wgaXNFbXB0eUNvbnRlbnQoKSBj
b25zdDsKIAorICAgIGNvbnN0IEFub255bW91c0lubGluZVRleHRCb3gmIGlubGluZVRleHRCb3go
KSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxBbm9ueW1vdXNJbmxpbmVUZXh0Qm94PihsYXlvdXRC
b3goKSk7IH0KKwogICAgIElubGluZVRleHRJdGVtIGxlZnQodW5zaWduZWQgbGVuZ3RoKSBjb25z
dDsKICAgICBJbmxpbmVUZXh0SXRlbSByaWdodCh1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwogCiBw
cml2YXRlOgogICAgIHVzaW5nIElubGluZUl0ZW06OlRleHRJdGVtVHlwZTsKIAotICAgIElubGlu
ZVRleHRJdGVtKGNvbnN0IEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9w
dGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoLCBUZXh0SXRlbVR5cGUpOwotICAgIElubGlu
ZVRleHRJdGVtKGNvbnN0IEJveCYpOworICAgIElubGluZVRleHRJdGVtKGNvbnN0IEFub255bW91
c0lubGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25h
bDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0aCwgVGV4dEl0ZW1UeXBlKTsKKyAgICBJbmxpbmVUZXh0
SXRlbShjb25zdCBBbm9ueW1vdXNJbmxpbmVUZXh0Qm94Jik7CiAKLSAgICBzdGF0aWMgSW5saW5l
VGV4dEl0ZW0gY3JlYXRlV2hpdGVzcGFjZUl0ZW0oY29uc3QgQm94JiwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgpOwotICAg
IHN0YXRpYyBJbmxpbmVUZXh0SXRlbSBjcmVhdGVOb25XaGl0ZXNwYWNlSXRlbShjb25zdCBCb3gm
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25hbDxJbmxpbmVMYXlvdXRV
bml0PiB3aWR0aCk7Ci0gICAgc3RhdGljIElubGluZVRleHRJdGVtIGNyZWF0ZUVtcHR5SXRlbShj
b25zdCBCb3gmKTsKKyAgICBzdGF0aWMgSW5saW5lVGV4dEl0ZW0gY3JlYXRlV2hpdGVzcGFjZUl0
ZW0oY29uc3QgQW5vbnltb3VzSW5saW5lVGV4dEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKTsKKyAgICBzdGF0aWMg
SW5saW5lVGV4dEl0ZW0gY3JlYXRlTm9uV2hpdGVzcGFjZUl0ZW0oY29uc3QgQW5vbnltb3VzSW5s
aW5lVGV4dEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElu
bGluZUxheW91dFVuaXQ+IHdpZHRoKTsKKyAgICBzdGF0aWMgSW5saW5lVGV4dEl0ZW0gY3JlYXRl
RW1wdHlJdGVtKGNvbnN0IEFub255bW91c0lubGluZVRleHRCb3gmKTsKIH07CiAKLWlubGluZSBJ
bmxpbmVUZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlV2hpdGVzcGFjZUl0ZW0oY29uc3Qg
Qm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFs
PElubGluZUxheW91dFVuaXQ+IHdpZHRoKQoraW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRl
eHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShjb25zdCBBbm9ueW1vdXNJbmxpbmVUZXh0Qm94
JiBpbmxpbmVUZXh0Qm94LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25h
bDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0aCkKIHsKLSAgICByZXR1cm4geyBpbmxpbmVCb3gsIHN0
YXJ0LCBsZW5ndGgsIHdpZHRoLCBUZXh0SXRlbVR5cGU6OldoaXRlc3BhY2UgfTsKKyAgICByZXR1
cm4geyBpbmxpbmVUZXh0Qm94LCBzdGFydCwgbGVuZ3RoLCB3aWR0aCwgVGV4dEl0ZW1UeXBlOjpX
aGl0ZXNwYWNlIH07CiB9CiAKLWlubGluZSBJbmxpbmVUZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6
Y3JlYXRlTm9uV2hpdGVzcGFjZUl0ZW0oY29uc3QgQm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKQor
aW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpjcmVhdGVOb25XaGl0ZXNwYWNl
SXRlbShjb25zdCBBbm9ueW1vdXNJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0
aCkKIHsKLSAgICByZXR1cm4geyBpbmxpbmVCb3gsIHN0YXJ0LCBsZW5ndGgsIHdpZHRoLCBUZXh0
SXRlbVR5cGU6Ok5vbldoaXRlc3BhY2UgfTsKKyAgICByZXR1cm4geyBpbmxpbmVUZXh0Qm94LCBz
dGFydCwgbGVuZ3RoLCB3aWR0aCwgVGV4dEl0ZW1UeXBlOjpOb25XaGl0ZXNwYWNlIH07CiB9CiAK
LWlubGluZSBJbmxpbmVUZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1wdHlJdGVtKGNv
bnN0IEJveCYgaW5saW5lQm94KQoraW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVt
OjpjcmVhdGVFbXB0eUl0ZW0oY29uc3QgQW5vbnltb3VzSW5saW5lVGV4dEJveCYgaW5saW5lVGV4
dEJveCkKIHsKLSAgICByZXR1cm4geyBpbmxpbmVCb3ggfTsKKyAgICByZXR1cm4geyBpbmxpbmVU
ZXh0Qm94IH07CiB9CiAKLWlubGluZSBJbmxpbmVUZXh0SXRlbTo6SW5saW5lVGV4dEl0ZW0oY29u
c3QgQm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlv
bmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoLCBUZXh0SXRlbVR5cGUgdGV4dEl0ZW1UeXBlKQot
ICAgIDogSW5saW5lSXRlbShpbmxpbmVCb3gsIFR5cGU6OlRleHQpCitpbmxpbmUgSW5saW5lVGV4
dEl0ZW06OklubGluZVRleHRJdGVtKGNvbnN0IEFub255bW91c0lubGluZVRleHRCb3gmIGlubGlu
ZVRleHRCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGlu
ZUxheW91dFVuaXQ+IHdpZHRoLCBUZXh0SXRlbVR5cGUgdGV4dEl0ZW1UeXBlKQorICAgIDogSW5s
aW5lSXRlbShpbmxpbmVUZXh0Qm94LCBUeXBlOjpUZXh0KQogewogICAgIG1fc3RhcnRPclBvc2l0
aW9uID0gc3RhcnQ7CiAgICAgbV9sZW5ndGggPSBsZW5ndGg7CiAgICAgbV9oYXNXaWR0aCA9ICEh
d2lkdGg7Ci0gICAgbV9pc0NvbGxhcHNpYmxlID0gdGV4dEl0ZW1UeXBlID09IFRleHRJdGVtVHlw
ZTo6V2hpdGVzcGFjZSAmJiBpbmxpbmVCb3guc3R5bGUoKS5jb2xsYXBzZVdoaXRlU3BhY2UoKTsK
KyAgICBtX2lzQ29sbGFwc2libGUgPSB0ZXh0SXRlbVR5cGUgPT0gVGV4dEl0ZW1UeXBlOjpXaGl0
ZXNwYWNlICYmIGlubGluZVRleHRCb3guc3R5bGUoKS5jb2xsYXBzZVdoaXRlU3BhY2UoKTsKICAg
ICBtX3dpZHRoID0gd2lkdGgudmFsdWVPcigwKTsKICAgICBtX3RleHRJdGVtVHlwZSA9IHRleHRJ
dGVtVHlwZTsKIH0KIAotaW5saW5lIElubGluZVRleHRJdGVtOjpJbmxpbmVUZXh0SXRlbShjb25z
dCBCb3gmIGlubGluZUJveCkKLSAgICA6IElubGluZUl0ZW0oaW5saW5lQm94LCBUeXBlOjpUZXh0
KQoraW5saW5lIElubGluZVRleHRJdGVtOjpJbmxpbmVUZXh0SXRlbShjb25zdCBBbm9ueW1vdXNJ
bmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94KQorICAgIDogSW5saW5lSXRlbShpbmxpbmVUZXh0
Qm94LCBUeXBlOjpUZXh0KQogewogfQogCkBAIC05Niw3ICs5OSw3IEBAIGlubGluZSBJbmxpbmVU
ZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6bGVmdCh1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAg
UkVMRUFTRV9BU1NFUlQobGVuZ3RoIDw9IHRoaXMtPmxlbmd0aCgpKTsKICAgICBBU1NFUlQobV90
ZXh0SXRlbVR5cGUgIT0gVGV4dEl0ZW1UeXBlOjpVbmRlZmluZWQpOwogICAgIEFTU0VSVChsZW5n
dGgpOwotICAgIHJldHVybiB7IGxheW91dEJveCgpLCBzdGFydCgpLCBsZW5ndGgsIFdURjo6bnVs
bG9wdCwgbV90ZXh0SXRlbVR5cGUgfTsKKyAgICByZXR1cm4geyBpbmxpbmVUZXh0Qm94KCksIHN0
YXJ0KCksIGxlbmd0aCwgV1RGOjpudWxsb3B0LCBtX3RleHRJdGVtVHlwZSB9OwogfQogCiBpbmxp
bmUgSW5saW5lVGV4dEl0ZW0gSW5saW5lVGV4dEl0ZW06OnJpZ2h0KHVuc2lnbmVkIGxlbmd0aCkg
Y29uc3QKQEAgLTEwNCw3ICsxMDcsNyBAQCBpbmxpbmUgSW5saW5lVGV4dEl0ZW0gSW5saW5lVGV4
dEl0ZW06OnJpZ2h0KHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICBSRUxFQVNFX0FTU0VSVChs
ZW5ndGggPD0gdGhpcy0+bGVuZ3RoKCkpOwogICAgIEFTU0VSVChtX3RleHRJdGVtVHlwZSAhPSBU
ZXh0SXRlbVR5cGU6OlVuZGVmaW5lZCk7CiAgICAgQVNTRVJUKGxlbmd0aCk7Ci0gICAgcmV0dXJu
IHsgbGF5b3V0Qm94KCksIGVuZCgpIC0gbGVuZ3RoLCBsZW5ndGgsIFdURjo6bnVsbG9wdCwgbV90
ZXh0SXRlbVR5cGUgfTsKKyAgICByZXR1cm4geyBpbmxpbmVUZXh0Qm94KCksIGVuZCgpIC0gbGVu
Z3RoLCBsZW5ndGgsIFdURjo6bnVsbG9wdCwgbV90ZXh0SXRlbVR5cGUgfTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91
dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGlu
ZUxheW91dENvbnRleHQuY3BwCmluZGV4IDRkZWI5NzlhZGQ3MTJlZTk0N2IxNGMzZWM3MjA1Mzli
Y2QwZTNmNzQuLmQ1MTg2NjJiNzMwNjljMDdlZWU0ZGQwMzM3MmMxNTRmNmZhM2RmZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9M
aW5lTGF5b3V0Q29udGV4dC5jcHAKQEAgLTQzLDEzICs0MywxMyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgZW5kc1dpdGhTb2Z0V3JhcE9wcG9ydHVuaXR5KGNvbnN0IElubGluZVRleHRJdGVtJiBjdXJy
ZW50VGV4dAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAvLyBXaGVuIGJvdGggdGhlc2Ugbm9u
LXdoaXRlc3BhY2UgcnVucyBiZWxvbmcgdG8gdGhlIHNhbWUgbGF5b3V0IGJveCwgaXQncyBndWFy
YW50ZWVkIHRoYXQKICAgICAvLyB0aGV5IGFyZSBzcGxpdCBhdCBhIHNvZnQgYnJlYWtpbmcgb3Bw
b3J0dW5pdHkuIFNlZSBJbmxpbmVUZXh0SXRlbTo6bW92ZVRvTmV4dEJyZWFrYWJsZVBvc2l0aW9u
LgotICAgIGlmICgmY3VycmVudFRleHRJdGVtLmxheW91dEJveCgpID09ICZuZXh0SW5saW5lVGV4
dEl0ZW0ubGF5b3V0Qm94KCkpCisgICAgaWYgKCZjdXJyZW50VGV4dEl0ZW0uaW5saW5lVGV4dEJv
eCgpID09ICZuZXh0SW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAvLyBOb3cgd2UgbmVlZCB0byBjb2xsZWN0IGF0IGxlYXN0IDMgYWRqYWNl
bnQgY2hhcmFjdGVycyB0byBiZSBhYmxlIHRvIG1ha2UgYSBkZWNpc2lvbiB3aGV0aGVyIHRoZSBw
cmV2aW91cyB0ZXh0IGl0ZW0gZW5kcyB3aXRoIGJyZWFraW5nIG9wcG9ydHVuaXR5LgogICAgIC8v
IFtleC1dW2FtcGxlXSA8LSBzZWNvbmQgdG8gbGFzdFt4XSBsYXN0Wy1dIGN1cnJlbnRbYV0KICAg
ICAvLyBXZSBuZWVkIGF0IGxlYXN0IDEgY2hhcmFjdGVyIGluIHRoZSBjdXJyZW50IGlubGluZSB0
ZXh0IGl0ZW0gYW5kIDIgbW9yZSBmcm9tIHByZXZpb3VzIGlubGluZSBpdGVtcy4KLSAgICBhdXRv
IHByZXZpb3VzQ29udGVudCA9IGN1cnJlbnRUZXh0SXRlbS5sYXlvdXRCb3goKS50ZXh0Q29udGV4
dCgpLT5jb250ZW50OwotICAgIGF1dG8gbGluZUJyZWFrSXRlcmF0b3IgPSBMYXp5TGluZUJyZWFr
SXRlcmF0b3IgeyBuZXh0SW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+
Y29udGVudCB9OworICAgIGF1dG8gcHJldmlvdXNDb250ZW50ID0gY3VycmVudFRleHRJdGVtLmlu
bGluZVRleHRCb3goKS5jb250ZW50KCk7CisgICAgYXV0byBsaW5lQnJlYWtJdGVyYXRvciA9IExh
enlMaW5lQnJlYWtJdGVyYXRvciB7IG5leHRJbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCku
Y29udGVudCgpIH07CiAgICAgYXV0byBwcmV2aW91c0NvbnRlbnRMZW5ndGggPSBwcmV2aW91c0Nv
bnRlbnQubGVuZ3RoKCk7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBsb29rIGludG8gdGhlIGVu
dGlyZSB1bmNvbW1pdHRlZCBjb250ZW50IGZvciBtb3JlIHRleHQgY29udGV4dC4KICAgICBVQ2hh
ciBsYXN0Q2hhcmFjdGVyID0gcHJldmlvdXNDb250ZW50TGVuZ3RoID8gcHJldmlvdXNDb250ZW50
W3ByZXZpb3VzQ29udGVudExlbmd0aCAtIDFdIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5jcHAKaW5kZXggZThk
YjlkN2NkNDlkMDhlMTI1ZDcwZWIzNDM5MTRmZWE4NmJmYzg5Ni4uMDZlMDI3ODhjYjAxM2Y3ZjIw
YWIwNzdkNDczNWZmN2MyYzFjYzAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCisjaW5jbHVkZSAi
QW5vbnltb3VzSW5saW5lVGV4dEJveC5oIgogI2luY2x1ZGUgIkJyZWFrTGluZXMuaCIKICNpbmNs
dWRlICJGb250Q2FzY2FkZS5oIgogI2luY2x1ZGUgIklubGluZVRleHRJdGVtLmgiCkBAIC00NCwy
NSArNDUsMjQgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5l
VGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCB1bnNpZ25lZAogICAgICAgICBhdXRvIGZvbnQgPSBp
bmxpbmVUZXh0SXRlbS5zdHlsZSgpLmZvbnRDYXNjYWRlKCk7CiAgICAgICAgIHJldHVybiBmb250
LnNwYWNlV2lkdGgoKSArIGZvbnQud29yZFNwYWNpbmcoKTsKICAgICB9Ci0gICAgcmV0dXJuIFRl
eHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSwgZnJvbSwgdG8sIGNvbnRl
bnRMb2dpY2FsTGVmdCk7CisgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRl
bS5pbmxpbmVUZXh0Qm94KCksIGZyb20sIHRvLCBjb250ZW50TG9naWNhbExlZnQpOwogfQogCi1J
bmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBCb3gmIGlubGluZUJveCwgdW5z
aWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxM
ZWZ0KQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgQW5vbnltb3VzSW5s
aW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElu
bGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KQogewotICAgIGF1dG8mIHN0eWxlID0g
aW5saW5lQm94LnN0eWxlKCk7CisgICAgYXV0byYgc3R5bGUgPSBpbmxpbmVUZXh0Qm94LnN0eWxl
KCk7CiAgICAgYXV0byYgZm9udCA9IHN0eWxlLmZvbnRDYXNjYWRlKCk7CiAgICAgaWYgKCFmb250
LnNpemUoKSB8fCBmcm9tID09IHRvKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGF1dG8mIHRl
eHRDb250ZXh0ID0gKmlubGluZUJveC50ZXh0Q29udGV4dCgpOwotICAgIGF1dG8mIHRleHQgPSB0
ZXh0Q29udGV4dC5jb250ZW50OworICAgIGF1dG8gdGV4dCA9IGlubGluZVRleHRCb3guY29udGVu
dCgpOwogICAgIEFTU0VSVCh0byA8PSB0ZXh0Lmxlbmd0aCgpKTsKICAgICBhdXRvIGhhc0tlcm5p
bmdPckxpZ2F0dXJlcyA9IGZvbnQuZW5hYmxlS2VybmluZygpIHx8IGZvbnQucmVxdWlyZXNTaGFw
aW5nKCk7CiAgICAgYXV0byBtZWFzdXJlV2l0aEVuZFNwYWNlID0gaGFzS2VybmluZ09yTGlnYXR1
cmVzICYmIHRvIDwgdGV4dC5sZW5ndGgoKSAmJiB0ZXh0W3RvXSA9PSAnICc7CiAgICAgaWYgKG1l
YXN1cmVXaXRoRW5kU3BhY2UpCiAgICAgICAgICsrdG87CiAgICAgZmxvYXQgd2lkdGggPSAwOwot
ICAgIGlmICh0ZXh0Q29udGV4dC5jYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmluZykgewor
ICAgIGlmIChpbmxpbmVUZXh0Qm94LmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKCkp
IHsKICAgICAgICAgaWYgKGZvbnQuaXNGaXhlZFBpdGNoKCkpCiAgICAgICAgICAgICB3aWR0aCA9
IGZpeGVkUGl0Y2hXaWR0aCh0ZXh0LCBzdHlsZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVm
dCk7CiAgICAgICAgIGVsc2UKQEAgLTEwMCw3ICsxMDAsNyBAQCBJbmxpbmVMYXlvdXRVbml0IFRl
eHRVdGlsOjpmaXhlZFBpdGNoV2lkdGgoY29uc3QgU3RyaW5nVmlldyYgdGV4dCwgY29uc3QgUmVu
ZGVyUwogICAgIHJldHVybiBzdGQ6Om1heDxJbmxpbmVMYXlvdXRVbml0PigwLCBJbmxpbmVMYXlv
dXRVbml0KHdpZHRoKSk7CiB9CiAKLVRleHRVdGlsOjpTcGxpdERhdGEgVGV4dFV0aWw6OnNwbGl0
KGNvbnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCB1bnNpZ25lZCBs
ZW5ndGgsIElubGluZUxheW91dFVuaXQgdGV4dFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGF2YWls
YWJsZVdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCkKK1RleHRVdGls
OjpTcGxpdERhdGEgVGV4dFV0aWw6OnNwbGl0KGNvbnN0IEFub255bW91c0lubGluZVRleHRCb3gm
IGlubGluZVRleHRCb3gsIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24sIHVuc2lnbmVkIGxlbmd0aCwg
SW5saW5lTGF5b3V0VW5pdCB0ZXh0V2lkdGgsIElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lk
dGgsIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KQogewogICAgIEFTU0VSVChh
dmFpbGFibGVXaWR0aCA+PSAwKTsKICAgICBhdXRvIGxlZnQgPSBzdGFydFBvc2l0aW9uOwpAQCAt
MTEzLDcgKzExMyw3IEBAIFRleHRVdGlsOjpTcGxpdERhdGEgVGV4dFV0aWw6OnNwbGl0KGNvbnN0
IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uCiAgICAgSW5saW5lTGF5b3V0
VW5pdCBsZWZ0U2lkZVdpZHRoID0gMDsKICAgICB3aGlsZSAobGVmdCA8IHJpZ2h0KSB7CiAgICAg
ICAgIGF1dG8gbWlkZGxlID0gKGxlZnQgKyByaWdodCkgLyAyOwotICAgICAgICBhdXRvIHdpZHRo
ID0gVGV4dFV0aWw6OndpZHRoKGlubGluZUJveCwgc3RhcnRQb3NpdGlvbiwgbWlkZGxlICsgMSwg
Y29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICAgICAgYXV0byB3aWR0aCA9IFRleHRVdGlsOjp3aWR0
aChpbmxpbmVUZXh0Qm94LCBzdGFydFBvc2l0aW9uLCBtaWRkbGUgKyAxLCBjb250ZW50TG9naWNh
bExlZnQpOwogICAgICAgICBpZiAod2lkdGggPCBhdmFpbGFibGVXaWR0aCkgewogICAgICAgICAg
ICAgbGVmdCA9IG1pZGRsZSArIDE7CiAgICAgICAgICAgICBsZWZ0U2lkZVdpZHRoID0gd2lkdGg7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0
L1RleHRVdGlsLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0
L1RleHRVdGlsLmgKaW5kZXggYzQwZTVlZmI4ODM0OWVjNmE1YWIxYWM3ZmI3ZWMzYTExMzA4ZGY0
Zi4uZjYxZDY5OWMwMTQyODhiNDljYjU5ZTRiNzQzNTRmNDU0OGU2MjYxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwu
aApAQCAtMzcsMTggKzM3LDE5IEBAIGNsYXNzIFJlbmRlclN0eWxlOwogCiBuYW1lc3BhY2UgTGF5
b3V0IHsKIAorY2xhc3MgQW5vbnltb3VzSW5saW5lVGV4dEJveDsKIGNsYXNzIElubGluZVRleHRJ
dGVtOwogCiBjbGFzcyBUZXh0VXRpbCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIElubGluZUxheW91
dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25l
ZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQgPSAwKTsKLSAgICBzdGF0
aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBCb3gmLCB1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQgPSAwKTsKKyAgICBz
dGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBBbm9ueW1vdXNJbmxpbmVUZXh0Qm94
JiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExv
Z2ljYWxMZWZ0ID0gMCk7CiAgICAgc3RydWN0IFNwbGl0RGF0YSB7CiAgICAgICAgIHVuc2lnbmVk
IHN0YXJ0IHsgMCB9OwogICAgICAgICB1bnNpZ25lZCBsZW5ndGggeyAwIH07CiAgICAgICAgIElu
bGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoIHsgMCB9OwogICAgIH07Ci0gICAgc3RhdGljIFNw
bGl0RGF0YSBzcGxpdChjb25zdCBCb3gmLCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCB1bnNpZ25l
ZCBsZW5ndGgsIElubGluZUxheW91dFVuaXQgdGV4dFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGF2
YWlsYWJsZVdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7CisgICAg
c3RhdGljIFNwbGl0RGF0YSBzcGxpdChjb25zdCBBbm9ueW1vdXNJbmxpbmVUZXh0Qm94JiwgdW5z
aWduZWQgc3RhcnRQb3NpdGlvbiwgdW5zaWduZWQgbGVuZ3RoLCBJbmxpbmVMYXlvdXRVbml0IHRl
eHRXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwgSW5saW5lTGF5b3V0VW5p
dCBjb250ZW50TG9naWNhbExlZnQpOwogICAgIHN0YXRpYyBib29sIHNob3VsZFByZXNlcnZlVHJh
aWxpbmdXaGl0ZXNwYWNlKGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgc3RhdGljIHVuc2lnbmVk
IGZpbmROZXh0QnJlYWthYmxlUG9zaXRpb24oTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiwgdW5zaWdu
ZWQgc3RhcnRQb3NpdGlvbiwgY29uc3QgUmVuZGVyU3R5bGUmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25C
b3hUcmVlLmNwcAppbmRleCAwYjcxMGJkYjNhYTc1OWMyMWJhN2Q2YTUzNmIwNDE3MjBiOWY5Mzc2
Li4xZTVmMWM2MDA2NDhlNGU0N2FlYWNmOGJlOGZkOThiYTkyNGQ4NzExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25Cb3hUcmVlLmNwcApAQCAtNTgsOSArNTgsNyBAQCB2b2lkIEJveFRyZWU6OmJ1aWxkVHJl
ZShjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXlvdXQ6OkJveD4gY2hpbGRCb3g7CiAgICAgICAgIGlmIChpczxSZW5kZXJUZXh0PihjaGlsZFJl
bmRlcmVyKSkgewogICAgICAgICAgICAgYXV0byYgdGV4dFJlbmRlcmVyID0gZG93bmNhc3Q8UmVu
ZGVyVGV4dD4oY2hpbGRSZW5kZXJlcik7Ci0gICAgICAgICAgICBhdXRvIHRleHRDb250ZW50ID0g
TGF5b3V0OjpUZXh0Q29udGV4dCB7IHRleHRSZW5kZXJlci50ZXh0KCksIHRleHRSZW5kZXJlci5j
YW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZygpIH07Ci0gICAgICAgICAgICBjaGlsZEJveCA9
IG1ha2VVbmlxdWU8TGF5b3V0OjpCb3g+KFdURk1vdmUodGV4dENvbnRlbnQpLCBSZW5kZXJTdHls
ZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShtX3Jvb3Quc3R5bGUoKSwgRGlzcGxh
eVR5cGU6OklubGluZSkpOwotICAgICAgICAgICAgY2hpbGRCb3gtPnNldElzQW5vbnltb3VzKCk7
CisgICAgICAgICAgICBjaGlsZEJveCA9IG1ha2VVbmlxdWU8TGF5b3V0OjpBbm9ueW1vdXNJbmxp
bmVUZXh0Qm94Pih0ZXh0UmVuZGVyZXIudGV4dCgpLCB0ZXh0UmVuZGVyZXIuY2FuVXNlU2ltcGxp
ZmllZFRleHRNZWFzdXJpbmcoKSwgUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0
aERpc3BsYXkobV9yb290LnN0eWxlKCksIERpc3BsYXlUeXBlOjpJbmxpbmUpKTsKICAgICAgICAg
fSBlbHNlIGlmIChjaGlsZFJlbmRlcmVyLmlzTGluZUJyZWFrKCkpIHsKICAgICAgICAgICAgIGF1
dG8gY2xvbmVkU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUoY2hpbGRSZW5kZXJlci5zdHlsZSgp
KTsKICAgICAgICAgICAgIGNsb25lZFN0eWxlLnNldERpc3BsYXkoRGlzcGxheVR5cGU6OklubGlu
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9Bbm9ueW1v
dXNJbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0Fu
b255bW91c0lubGluZVRleHRCb3guY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2Y2RjNGMxMGY1ODQ2ZmFlMjNl
NmE3MmI0ZmRlNjE5YWRhYTUwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9Bbm9ueW1vdXNJbmxpbmVUZXh0Qm94LmNwcApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFub255bW91
c0lubGluZVRleHRCb3guaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhU
KQorCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEFub255bW91c0lubGluZVRleHRCb3gpOworCitBbm9u
eW1vdXNJbmxpbmVUZXh0Qm94OjpBbm9ueW1vdXNJbmxpbmVUZXh0Qm94KFN0cmluZyBjb250ZW50
LCBib29sIGNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nLCBSZW5kZXJTdHlsZSYmIHN0
eWxlKQorICAgIDogQm94KHsgfSwgV1RGTW92ZShzdHlsZSksIEJveDo6QW5vbnltb3VzSW5saW5l
VGV4dEJveCkKKyAgICAsIG1fY29udGVudChjb250ZW50KQorICAgICwgbV9jYW5Vc2VTaW1wbGlm
aWVkQ29udGVudE1lYXN1cmluZyhjYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmluZykKK3sK
KyAgICBzZXRJc0Fub255bW91cygpOworfQorCit9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvQW5vbnltb3VzSW5saW5lVGV4dEJveC5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvQW5vbnltb3VzSW5saW5lVGV4dEJv
eC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY3NWQ1MzhkODUyNzcyODBlYzA0NjkzZGMwNTY2MDU0ZjllY2UyMGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9Bbm9u
eW1vdXNJbmxpbmVUZXh0Qm94LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNs
dWRlICJMYXlvdXRCb3guaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIEFub255bW91c0lubGlu
ZVRleHRCb3ggOiBwdWJsaWMgQm94IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEFub255
bW91c0lubGluZVRleHRCb3gpOworcHVibGljOgorICAgIEFub255bW91c0lubGluZVRleHRCb3go
U3RyaW5nLCBib29sIGNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nLCBSZW5kZXJTdHls
ZSYmKTsKKyAgICB2aXJ0dWFsIH5Bbm9ueW1vdXNJbmxpbmVUZXh0Qm94KCkgPSBkZWZhdWx0Owor
CisgICAgU3RyaW5nIGNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQ7IH0KKyAgICAv
LyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGEgYm94J3MgcHJvcGVydHkuCisgICAgYm9vbCBj
YW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuVXNl
U2ltcGxpZmllZENvbnRlbnRNZWFzdXJpbmc7IH0KKworcHJpdmF0ZToKKyAgICBTdHJpbmcgbV9j
b250ZW50OworICAgIGJvb2wgbV9jYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmluZyB7IGZh
bHNlIH07Cit9OworCit9Cit9CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VUX0JPWChB
bm9ueW1vdXNJbmxpbmVUZXh0Qm94LCBpc0Fub255bW91c0lubGluZVRleHRCb3goKSkKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcApp
bmRleCBiNGQ2MGE0ZTZhZDAyNWZjYzQ0MjA5MTM1ZTc2MDRhMjJjZWZlYzViLi4xOTdhY2VlZWJm
ZmViYWQ4YTY3MjYzNjg5OWU4Y2IxNGJjZjIzYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTQwLDEwICs0MCw5IEBAIG5hbWVzcGFj
ZSBMYXlvdXQgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQm94KTsKIAotQm94OjpC
b3goT3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+IGF0dHJpYnV0ZXMsIE9wdGlvbmFsPFRleHRD
b250ZXh0PiB0ZXh0Q29udGV4dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSwgQmFzZVR5cGVGbGFncyBi
YXNlVHlwZUZsYWdzKQorQm94OjpCb3goT3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+IGF0dHJp
YnV0ZXMsIFJlbmRlclN0eWxlJiYgc3R5bGUsIEJhc2VUeXBlRmxhZ3MgYmFzZVR5cGVGbGFncykK
ICAgICA6IG1fc3R5bGUoV1RGTW92ZShzdHlsZSkpCiAgICAgLCBtX2VsZW1lbnRBdHRyaWJ1dGVz
KGF0dHJpYnV0ZXMpCi0gICAgLCBtX3RleHRDb250ZXh0KHRleHRDb250ZXh0KQogICAgICwgbV9i
YXNlVHlwZUZsYWdzKGJhc2VUeXBlRmxhZ3MpCiAgICAgLCBtX2hhc1JhcmVEYXRhKGZhbHNlKQog
ICAgICwgbV9pc0Fub255bW91cyhmYWxzZSkKQEAgLTUzLDE2ICs1MiwxMCBAQCBCb3g6OkJveChP
cHRpb25hbDxFbGVtZW50QXR0cmlidXRlcz4gYXR0cmlidXRlcywgT3B0aW9uYWw8VGV4dENvbnRl
eHQ+IHRleHRDb250ZQogfQogCiBCb3g6OkJveChPcHRpb25hbDxFbGVtZW50QXR0cmlidXRlcz4g
YXR0cmlidXRlcywgUmVuZGVyU3R5bGUmJiBzdHlsZSkKLSAgICA6IEJveChhdHRyaWJ1dGVzLCB7
IH0sIFdURk1vdmUoc3R5bGUpLCBCYXNlVHlwZUZsYWc6OkJveEZsYWcpCisgICAgOiBCb3goYXR0
cmlidXRlcywgV1RGTW92ZShzdHlsZSksIEJhc2VUeXBlRmxhZzo6Qm94RmxhZykKIHsKIH0KIAot
Qm94OjpCb3goVGV4dENvbnRleHQmJiB0ZXh0Q29udGV4dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkK
LSAgICA6IEJveCh7IH0sIFdURk1vdmUodGV4dENvbnRleHQpLCBXVEZNb3ZlKHN0eWxlKSwgQmFz
ZVR5cGVGbGFnOjpCb3hGbGFnKQotewotICAgIEFTU0VSVChpc0lubGluZUxldmVsQm94KCkpOwot
fQotCiBCb3g6On5Cb3goKQogewogICAgIGlmIChVTkxJS0VMWShtX2hhc1JhcmVEYXRhKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKaW5kZXggOTQ1M2Iz
ZTMwN2Q3MmZmMTIwMjYxMTMzNDFmMzM4MzUzMjg3YjI5YS4uOGJkYTFhZjZiMTQxNDVmYTAyYjFj
YmE1MDQ0MDhhMGYxMzQ1Mzk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0Qm94LmgKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkxheW91dFJlcGxh
Y2VkLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJUZXh0Q29udGV4dC5o
IgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgog
CkBAIC02NCwxNCArNjMsMTQgQEAgcHVibGljOgogICAgIH07CiAKICAgICBlbnVtIEJhc2VUeXBl
RmxhZyB7Ci0gICAgICAgIEJveEZsYWcgICAgICAgICAgICAgICA9IDEgPDwgMCwKLSAgICAgICAg
Q29udGFpbmVyRmxhZyAgICAgICAgID0gMSA8PCAxCisgICAgICAgIEJveEZsYWcgICAgICAgICAg
ICAgICAgPSAxIDw8IDAsCisgICAgICAgIEFub255bW91c0lubGluZVRleHRCb3ggPSAxIDw8IDEs
CisgICAgICAgIENvbnRhaW5lckZsYWcgICAgICAgICAgPSAxIDw8IDIKICAgICB9OwogICAgIHR5
cGVkZWYgdW5zaWduZWQgQmFzZVR5cGVGbGFnczsKIAogICAgIEJveChPcHRpb25hbDxFbGVtZW50
QXR0cmlidXRlcz4sIFJlbmRlclN0eWxlJiYpOwotICAgIEJveChUZXh0Q29udGV4dCYmLCBSZW5k
ZXJTdHlsZSYmKTsKLSAgICB+Qm94KCk7CisgICAgdmlydHVhbCB+Qm94KCk7CiAKICAgICBib29s
IGVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAgICBib29sIGVzdGFibGlz
aGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwpAQCAtMTQyLDYgKzE0MSw3IEBAIHB1
YmxpYzoKICAgICBCb3gqIG5leHRTaWJsaW5nKCkgeyByZXR1cm4gbV9uZXh0U2libGluZzsgfQog
CiAgICAgYm9vbCBpc0NvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVR5cGVGbGFncyAm
IENvbnRhaW5lckZsYWc7IH0KKyAgICBib29sIGlzQW5vbnltb3VzSW5saW5lVGV4dEJveCgpIGNv
bnN0IHsgcmV0dXJuIG1fYmFzZVR5cGVGbGFncyAmIEFub255bW91c0lubGluZVRleHRCb3g7IH0K
IAogICAgIGJvb2wgaXNQYWRkaW5nQXBwbGljYWJsZSgpIGNvbnN0OwogICAgIGJvb2wgaXNPdmVy
Zmxvd1Zpc2libGUoKSBjb25zdDsKQEAgLTE1Miw4ICsxNTIsNiBAQCBwdWJsaWM6CiAgICAgY29u
c3QgUmVwbGFjZWQqIHJlcGxhY2VkKCkgY29uc3Q7CiAgICAgLy8gRklYTUU6IFRlbXBvcmFyeSB1
bnRpbCBhZnRlciBpbnRyaW5zaWMgc2l6ZSBjaGFuZ2UgaXMgdHJhY2tlZCBieSBSZXBsYWNlZC4K
ICAgICBSZXBsYWNlZCogcmVwbGFjZWQoKTsKLSAgICBib29sIGhhc1RleHRDb250ZW50KCkgY29u
c3QgeyByZXR1cm4gISFtX3RleHRDb250ZXh0OyB9Ci0gICAgY29uc3QgT3B0aW9uYWw8VGV4dENv
bnRleHQ+JiB0ZXh0Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dENvbnRleHQ7IH0KIAog
ICAgIC8vIEZJWE1FOiBGaW5kIGEgYmV0dGVyIHBsYWNlIGZvciByYW5kb20gRE9NIHRoaW5ncy4K
ICAgICB2b2lkIHNldFJvd1NwYW4odW5zaWduZWQpOwpAQCAtMTc2LDcgKzE3NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldENhY2hlZERpc3BsYXlCb3hGb3JMYXlvdXRTdGF0ZShMYXlvdXRTdGF0
ZSYsIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5OjpCb3g+KSBjb25zdDsKIAogcHJvdGVjdGVkOgot
ICAgIEJveChPcHRpb25hbDxFbGVtZW50QXR0cmlidXRlcz4sIE9wdGlvbmFsPFRleHRDb250ZXh0
PiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CisgICAgQm94KE9wdGlvbmFsPEVsZW1l
bnRBdHRyaWJ1dGVzPiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CiAKIHByaXZhdGU6
CiAgICAgY2xhc3MgQm94UmFyZURhdGEgewpAQCAtMjA3LDggKzIwNSw2IEBAIHByaXZhdGU6CiAg
ICAgQm94KiBtX3ByZXZpb3VzU2libGluZyB7IG51bGxwdHIgfTsKICAgICBCb3gqIG1fbmV4dFNp
YmxpbmcgeyBudWxscHRyIH07CiAgICAgCi0gICAgY29uc3QgT3B0aW9uYWw8VGV4dENvbnRleHQ+
IG1fdGV4dENvbnRleHQ7Ci0KICAgICAvLyBGaXJzdCBMYXlvdXRTdGF0ZSBnZXRzIGEgZGlyZWN0
IGNhY2hlLgogICAgIG11dGFibGUgV2Vha1B0cjxMYXlvdXRTdGF0ZT4gbV9jYWNoZWRMYXlvdXRT
dGF0ZTsKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5OjpCb3g+IG1fY2FjaGVk
RGlzcGxheUJveEZvckxheW91dFN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5jcHAKaW5kZXggMGY1MDVmMjYxNWFmYzZkNTU4
M2I0MDY3YTQ2ZWQwMDUzNTIwNTViNi4uYjBjYzgzNGQzMmM5NGQ0ZjYxZTc2YmRlYmU2ZDc2OWU0
ZDljZDk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRDb250YWluZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENvbnRhaW5lcik7CiAKIENvbnRhaW5lcjo6Q29u
dGFpbmVyKE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiBhdHRyaWJ1dGVzLCBSZW5kZXJTdHls
ZSYmIHN0eWxlLCBCYXNlVHlwZUZsYWdzIGJhc2VUeXBlRmxhZ3MpCi0gICAgOiBCb3goYXR0cmli
dXRlcywgeyB9LCBXVEZNb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncyB8IENvbnRhaW5lckZsYWcp
CisgICAgOiBCb3goYXR0cmlidXRlcywgV1RGTW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MgfCBD
b250YWluZXJGbGFnKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKaW5kZXggYzE0NjIyZTkwYzM5Zjc0MzI0
MDkxYjFlY2Q2ODFmZDY5MTliNDQ0MC4uNzgyZTk2M2NhYmJkNmJiMzQ2MDYzODRiOTljNzYwMGQx
MDgwMTkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVl
L0xheW91dFRyZWVCdWlsZGVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKKyNpbmNsdWRlICJBbm9ueW1vdXNJbmxpbmVUZXh0
Qm94LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJEaXNwbGF5Qm94Lmgi
CiAjaW5jbHVkZSAiRGlzcGxheVJ1bi5oIgpAQCAtMTUwLDkgKzE1MSw5IEBAIEJveCYgVHJlZUJ1
aWxkZXI6OmNyZWF0ZUJveChPcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzPiBlbGVtZW50
QXR0cmlidXRlcywKICAgICByZXR1cm4gYm94OwogfQogCi1Cb3gmIFRyZWVCdWlsZGVyOjpjcmVh
dGVUZXh0Qm94KFRleHRDb250ZXh0JiYgdGV4dENvbnRlbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUp
CitCb3gmIFRyZWVCdWlsZGVyOjpjcmVhdGVUZXh0Qm94KFN0cmluZyB0ZXh0LCBib29sIGNhblVz
ZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogewotICAgIGF1
dG8gbmV3Qm94ID0gbWFrZVVuaXF1ZTxCb3g+KFdURk1vdmUodGV4dENvbnRlbnQpLCBXVEZNb3Zl
KHN0eWxlKSk7CisgICAgYXV0byBuZXdCb3ggPSBtYWtlVW5pcXVlPEFub255bW91c0lubGluZVRl
eHRCb3g+KHRleHQsIGNhblVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBXVEZNb3ZlKHN0eWxl
KSk7CiAgICAgYXV0byYgYm94ID0gKm5ld0JveDsKICAgICBtX2xheW91dFRyZWVDb250ZW50LmFk
ZEJveChXVEZNb3ZlKG5ld0JveCkpOwogICAgIHJldHVybiBib3g7CkBAIC0xOTEsMTIgKzE5Miwx
MSBAQCBCb3gqIFRyZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRCb3goY29uc3QgQ29udGFpbmVyJiBw
YXJlbnRDb250YWluZXIsIGNvbnN0IFJlbmRlcgogICAgICAgICBhdXRvJiB0ZXh0UmVuZGVyZXIg
PSBkb3duY2FzdDxSZW5kZXJUZXh0PihjaGlsZFJlbmRlcmVyKTsKICAgICAgICAgLy8gUmVuZGVy
VGV4dDo6dGV4dCgpIGhhcyBhbHJlYWR5IGFwcGxpZWQgdGV4dC10cmFuc2Zvcm0gYW5kIHRleHQt
c2VjdXJpdHkgcHJvcGVydGllcy4KICAgICAgICAgU3RyaW5nIHRleHQgPSB0ZXh0UmVuZGVyZXIu
dGV4dCgpOwotICAgICAgICBhdXRvIHRleHRDb250ZW50ID0gVGV4dENvbnRleHQgeyB0ZXh0LCBj
YW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZyh0ZXh0LCBwYXJlbnRDb250YWluZXIuc3R5bGUo
KS5mb250Q2FzY2FkZSgpLCBwYXJlbnRDb250YWluZXIuc3R5bGUoKS5jb2xsYXBzZVdoaXRlU3Bh
Y2UoKSkgfTsKKyAgICAgICAgYXV0byB1c2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZyA9IGNhblVz
ZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nKHRleHQsIHBhcmVudENvbnRhaW5lci5zdHlsZSgpLmZv
bnRDYXNjYWRlKCksIHBhcmVudENvbnRhaW5lci5zdHlsZSgpLmNvbGxhcHNlV2hpdGVTcGFjZSgp
KTsKICAgICAgICAgaWYgKHBhcmVudENvbnRhaW5lci5zdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNw
bGF5VHlwZTo6SW5saW5lKQotICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSAmY3JlYXRlVGV4
dEJveChXVEZNb3ZlKHRleHRDb250ZW50KSwgUmVuZGVyU3R5bGU6OmNsb25lKHBhcmVudENvbnRh
aW5lci5zdHlsZSgpKSk7CisgICAgICAgICAgICBjaGlsZExheW91dEJveCA9ICZjcmVhdGVUZXh0
Qm94KHRleHQsIHVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZTo6Y2xvbmUo
cGFyZW50Q29udGFpbmVyLnN0eWxlKCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgY2hp
bGRMYXlvdXRCb3ggPSAmY3JlYXRlVGV4dEJveChXVEZNb3ZlKHRleHRDb250ZW50KSwgUmVuZGVy
U3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkocGFyZW50Q29udGFpbmVyLnN0
eWxlKCksIERpc3BsYXlUeXBlOjpJbmxpbmUpKTsKLSAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnNl
dElzQW5vbnltb3VzKCk7CisgICAgICAgICAgICBjaGlsZExheW91dEJveCA9ICZjcmVhdGVUZXh0
Qm94KHRleHQsIHVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZTo6Y3JlYXRl
QW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShwYXJlbnRDb250YWluZXIuc3R5bGUoKSwgRGlzcGxh
eVR5cGU6OklubGluZSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8mIHJlbmRlcmVyID0g
ZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oY2hpbGRSZW5kZXJlcik7CiAgICAgICAgIGF1dG8gZGlz
cGxheVR5cGUgPSByZW5kZXJlci5zdHlsZSgpLmRpc3BsYXkoKTsKQEAgLTQwNiw4ICs0MDYsOCBA
QCBzdGF0aWMgdm9pZCBvdXRwdXRMYXlvdXRCb3goVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBC
b3gmIGxheW91dEJveCwgY29uc3QgRGlzcAogICAgIGlmIChkaXNwbGF5Qm94KQogICAgICAgICBz
dHJlYW0gPDwgIiBhdCAoIiA8PCBkaXNwbGF5Qm94LT5sZWZ0KCkgPDwgIiwiIDw8IGRpc3BsYXlC
b3gtPnRvcCgpIDw8ICIpIHNpemUgIiA8PCBkaXNwbGF5Qm94LT53aWR0aCgpIDw8ICJ4IiA8PCBk
aXNwbGF5Qm94LT5oZWlnaHQoKTsKICAgICBzdHJlYW0gPDwgIiBsYXlvdXQgYm94LT4oIiA8PCAm
bGF5b3V0Qm94IDw8ICIpIjsKLSAgICBpZiAobGF5b3V0Qm94LmlzSW5saW5lTGV2ZWxCb3goKSAm
JiBsYXlvdXRCb3guaXNBbm9ueW1vdXMoKSkKLSAgICAgICAgc3RyZWFtIDw8ICIgdGV4dCBjb250
ZW50IFtcIiIgPDwgbGF5b3V0Qm94LnRleHRDb250ZXh0KCktPmNvbnRlbnQudXRmOCgpLmRhdGEo
KSA8PCAiXCJdIjsKKyAgICBpZiAoaXM8QW5vbnltb3VzSW5saW5lVGV4dEJveD4obGF5b3V0Qm94
KSkKKyAgICAgICAgc3RyZWFtIDw8ICIgdGV4dCBjb250ZW50IFtcIiIgPDwgZG93bmNhc3Q8QW5v
bnltb3VzSW5saW5lVGV4dEJveD4obGF5b3V0Qm94KS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSA8
PCAiXCJdIjsKIAogICAgIHN0cmVhbS5uZXh0TGluZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKaW5kZXggMTkzM2Ew
NDE2Mzg3NmMxNTY1Y2M3OGJjZTk0NzkxNDIwZTg4MGE5MC4uMzg1ZDcyMDM4MzY0Mzg4MTU0N2Fh
NjMzZmFmYjE3ZWNiMzQzYTc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCkBAIC05MSw3ICs5MSw3IEBAIHByaXZhdGU6
CiAgICAgQm94KiBjcmVhdGVMYXlvdXRCb3goY29uc3QgQ29udGFpbmVyJiBwYXJlbnRDb250YWlu
ZXIsIGNvbnN0IFJlbmRlck9iamVjdCYgY2hpbGRSZW5kZXJlcik7CiAKICAgICBCb3gmIGNyZWF0
ZUJveChPcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzPiwgUmVuZGVyU3R5bGUmJik7Ci0g
ICAgQm94JiBjcmVhdGVUZXh0Qm94KFRleHRDb250ZXh0JiYsIFJlbmRlclN0eWxlJiYpOworICAg
IEJveCYgY3JlYXRlVGV4dEJveChTdHJpbmcgdGV4dCwgYm9vbCBjYW5Vc2VTaW1wbGlmaWVkVGV4
dE1lYXN1cmluZywgUmVuZGVyU3R5bGUmJik7CiAgICAgQ29udGFpbmVyJiBjcmVhdGVDb250YWlu
ZXIoT3B0aW9uYWw8Qm94OjpFbGVtZW50QXR0cmlidXRlcz4sIFJlbmRlclN0eWxlJiYpOwogCiAg
ICAgTGF5b3V0VHJlZUNvbnRlbnQmIG1fbGF5b3V0VHJlZUNvbnRlbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29udGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvVGV4dENvbnRleHQuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmExYWJkYTBmNWQ4Njg5MWQyNGQ4ZWI1NzgwYThlYjhjMTFiNjA5NC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKExBWU9VVF9G
T1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBMYXlvdXQgewotCi1zdHJ1Y3QgVGV4dENv
bnRleHQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFN0cmlu
ZyBjb250ZW50OwotICAgIGJvb2wgY2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJpbmcgeyBm
YWxzZSB9OwotfTsKLQotfQotfQotI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390342</attachid>
            <date>2020-02-10 20:53:46 -0800</date>
            <delta_ts>2020-02-10 20:57:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207530-20200210205345.patch</filename>
            <type>text/plain</type>
            <size>52723</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRkY2Q3YWUwYTc4Nzc1
OWQ5MDA2MWNlZDM1NmJjYWYwMGNjMWE3MS4uMTc0ZWRhMjE4ZDk0ZmE3MzhkM2I0MjMwMjAzOGY4
MzE1NzM1MDg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTAyLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW50cm9kdWNlIExh
eW91dDo6SW5saW5lVGV4dEJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA3NTMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTMzNjAyMD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBBbnkgdGV4dCB0
aGF0IGlzIGRpcmVjdGx5IGNvbnRhaW5lZCBpbnNpZGUgYSBibG9jayBjb250YWluZXIgZWxlbWVu
dCAobm90IGluc2lkZSBhbiBpbmxpbmUgZWxlbWVudCkgbXVzdCBiZSB0cmVhdGVkIGFzIGFuIGFu
b255bW91cyBpbmxpbmUgZWxlbWVudC4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIGxheW91dC9WZXJpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0Ojpj
aGVja0Zvck1hdGNoaW5nVGV4dFJ1bnMpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbGxlY3RJbmxpbmVDb250ZW50SWZOZWVkZWQp
OgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OnRyeUJyZWFraW5nVGV4
dFJ1biBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjptX3RleHRDb250ZXh0KToK
KyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVTb2Z0TGluZUJyZWFrSXRl
bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbTo6
Y3JlYXRlU29mdExpbmVCcmVha0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVTb2Z0TGluZUJyZWFrSXRlbTo6SW5saW5lU29mdExpbmVCcmVha0l0ZW0pOgorICAgICAgICAq
IGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjppc0VtcHR5Q29udGVu
dCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0
ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmlubGluZVRl
eHRCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6
Y3JlYXRlV2hpdGVzcGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVU
ZXh0SXRlbTo6Y3JlYXRlTm9uV2hpdGVzcGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1wdHlJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6cmlnaHQgY29uc3QpOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6ZW5kc1dpdGhTb2Z0V3JhcE9wcG9ydHVuaXR5KToKKyAgICAgICAgKiBsYXlv
dXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6VGV4dFV0aWw6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGV4
dFV0aWw6OnNwbGl0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1Rl
eHRVdGlsLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
Qm94VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94VHJl
ZTo6YnVpbGRUcmVlKToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OkJveCk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5saW5lVGV4dEJveCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6aGFzVGV4dENvbnRlbnQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnRleHRDb250ZXh0IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpDb250YWluZXI6OkNvbnRhaW5lcik6CisgICAgICAgICgpOiBE
ZWxldGVkLgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3gu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29u
dGV4dC5oLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0Qm94OjpJbmxpbmVU
ZXh0Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bV9jYW5Vc2VTaW1wbGlmaWVkQ29u
dGVudE1lYXN1cmluZyk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5saW5l
VGV4dEJveC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
VGV4dENvbnRleHQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEJveDo6
Y29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRCb3g6
OmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nIGNvbnN0KToKKyAgICAgICAgKiBsYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVUZXh0Qm94KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6Om91dHB1dExheW91dEJveCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0VHJlZUJ1aWxkZXIuaDoKKwogMjAyMC0wMi0xMCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRqdXN0IHRoZSBtaW5vciB2ZXJzaW9uIG51bWJlciBmb3Ig
dGhlIGRlc2t0b3AgdXNlciBhZ2VudCBzdHJpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDc2ZTllMWYz
M2M5OTU3ZWM1OWJjNzcyMjM5OGUwNmFlZTViZjYyMGEuLmViMzUzYzA1NzY4Mjk0NTc3YmQ2M2Mx
NmMxZDM1NzdlOTAzNTBmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDUxLDYgKzE0NTEsNyBAQCBs
YXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlvbkNvbnRleHQuY3BwCiBsYXlvdXQvaW52YWxp
ZGF0aW9uL0ludmFsaWRhdGlvblN0YXRlLmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94
LmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcAorbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0SW5saW5lVGV4dEJveC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFJl
cGxhY2VkLmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCiBsYXlv
dXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzcyZDY2
OGRlNzcxY2JkMjIzMWYyMjBkMmMyOTQwOTY0NzczOTVhOS4uNmNiNzUxOTZiOWI0NTAzNjA4YWE5
MTY1N2FiYjJhYmM4YzJlOTg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzc5LDcgKzM3OSw2IEBACiAJCTExMzEwQ0Y2MjBC
QTRBNTYwMDY1QThEMCAvKiBMYXlvdXRDaGlsZEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTEwMEZDOTIwOTI3Q0JDMDA4MUFBNkMgLyog
TGF5b3V0Q2hpbGRJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTExMzEwQ0Y3MjBCQTRBNjIwMDY1QThEMCAvKiBMYXlvdXRBbmNlc3Rv
ckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxMTEwMEZDQTIwOTI4NjhEMDA4MUFBNkMgLyogTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExMzQwOURB
MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEzNDA5RDgyMDNFMDM4
MDAwQzY2OTE1IC8qIFJlbmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmggKi87IH07Ci0JCTEx
M0EzQ0I0MjM4NTg2MDEwMEFFM0VDRSAvKiBUZXh0Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEzQTNDQjIyMzg1ODYwMDAwQUUzRUNFIC8q
IFRleHRDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMTEzRDBCNTIxRjlGREQyQjAwRjYxMUJCIC8qIEZyYW1lVmlld0xheW91dENvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExM0Qw
QjUwMUY5RkREMkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTE1Q0ZBNkEyMDhBRjdE
MDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTVDRkE2ODIwOEFGN0QwMDAxRTY5OTEgLyogRm9ybWF0
dGluZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxMTVDRkE2RTIwOEFGQUI3MDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE1Q0ZB
NkMyMDhBRkFCNjAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjA1MCw2ICsyMDQ5LDcg
QEAKIAkJNkVEODc4QzUxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVEODc4QzMxNDc0
OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oICovOyB9OwogCQk2RUQ4QzM3QTE4
M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDhDMzc4MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZFRThB
NzczMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRThBNzcxMTBGODAzRjMw
MDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLzsgfTsKKwkJNkYwQjk4QjUy
M0YyNjhFQzAwRUVDMkYyIC8qIExheW91dElubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGMEI5OEIzMjNGMjY4RUIwMEVFQzJGMiAv
KiBMYXlvdXRJbmxpbmVUZXh0Qm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmVC
dWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUgLyogSW5saW5lTGluZUJ1aWxkZXIuaCAqLzsgfTsKIAkJ
NkYxQ0MxREUyMjVGOEI0OTAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjFDQzFERDIyNUY4QjQyMDA3MjBB
RDIgLyogSW5saW5lVGV4dEl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2RjI2QkI2QzIzMzQzRTZGMDAyRjJCRUEgLyogTGF5b3V0Q29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYyNkJC
NkIyMzM0M0U1QjAwMkYyQkVBIC8qIExheW91dENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTkxNSw3ICs1OTE1LDYgQEAKIAkJMTEy
RkIzNTAyMzlDMjNDNDAwODcwNTRBIC8qIERpc3BsYXlJbmxpbmVSZWN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlJbmxpbmVSZWN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTExMzQwOUQ3MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVp
bGRlckNvbnRpbnVhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRl
ckNvbnRpbnVhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExMzQwOUQ4
MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkxMTNBM0NCMjIzODU4NjAwMDBBRTNFQ0UgLyogVGV4dENvbnRleHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvbnRleHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzRDBCNEYxRjlGREQyQjAwRjYxMUJCIC8qIEZyYW1l
Vmlld0xheW91dENvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnJhbWVWaWV3TGF5b3V0
Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExM0QwQjUwMUY5RkRE
MkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZy
YW1lVmlld0xheW91dENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE1
Q0E4MzAyMzMyOEIxRTAwRkQzQjA4IC8qIExheW91dFVuaXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IExheW91dFVuaXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkyOTQs
NiArOTI5Myw4IEBACiAJCTZFRThBNzcwMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4
dEF0dHJpYnV0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkVFOEE3NzExMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYwODMwREYyMEI0Njk1MTAwOEE5NDVC
IC8qIEJsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk2RjBCOThCMzIzRjI2OEVCMDBFRUMyRjIgLyogTGF5b3V0SW5saW5lVGV4dEJv
eC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbmxpbmVUZXh0Qm94
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGMEI5OEI2MjNGMjY5MDYwMEVFQzJG
MiAvKiBMYXlvdXRJbmxpbmVUZXh0Qm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dElu
bGluZVRleHRCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjBDRDY5MjIy
OUVEMzE5MDBDNTk5NEUgLyogSW5saW5lTGluZUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5saW5lTGluZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUgLyogSW5saW5lTGluZUJ1aWxkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lTGluZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkYxMEIwODYyMkI4NTY4RDAwOTBFNjlDIC8qIElubGluZUZvcm1h
dHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUZvcm1hdHRp
bmdDb250ZXh0UXVpcmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NzQz
LDEyICsxNjc0NCwxMyBAQAogCQkJCTExOTlGQTQ1MjA4RTM1QTMwMDIzNThDQyAvKiBMYXlvdXRD
b250YWluZXIuY3BwICovLAogCQkJCTExOTlGQTQ0MjA4RTM1QTMwMDIzNThDQyAvKiBMYXlvdXRD
b250YWluZXIuaCAqLywKIAkJCQkxMUIwNDJGQjIwQjBFMjE0MDA4MjhBNkIgLyogTGF5b3V0RGVz
Y2VuZGFudEl0ZXJhdG9yLmggKi8sCisJCQkJNkYwQjk4QjYyM0YyNjkwNjAwRUVDMkYyIC8qIExh
eW91dElubGluZVRleHRCb3guY3BwICovLAorCQkJCTZGMEI5OEIzMjNGMjY4RUIwMEVFQzJGMiAv
KiBMYXlvdXRJbmxpbmVUZXh0Qm94LmggKi8sCiAJCQkJMTExMDBGQzcyMDkyNzY0QzAwODFBQTZD
IC8qIExheW91dEl0ZXJhdG9yLmggKi8sCiAJCQkJMTExQzYxNTcyMEFEMUFFMTAwNUI4MkZBIC8q
IExheW91dFJlcGxhY2VkLmNwcCAqLywKIAkJCQkxMTFDNjE1NjIwQUQxQUUxMDA1QjgyRkEgLyog
TGF5b3V0UmVwbGFjZWQuaCAqLywKIAkJCQkxMTEwMEZENTIwOTUxNERFMDA4MUFBNkMgLyogTGF5
b3V0VHJlZUJ1aWxkZXIuY3BwICovLAogCQkJCTExMTAwRkQ3MjA5NTE0REYwMDgxQUE2QyAvKiBM
YXlvdXRUcmVlQnVpbGRlci5oICovLAotCQkJCTExM0EzQ0IyMjM4NTg2MDAwMEFFM0VDRSAvKiBU
ZXh0Q29udGV4dC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBsYXlvdXR0cmVlOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTMxMzAxLDYgKzMxMzAzLDcgQEAKIAkJCQkxMTk5RkE0NjIw
OEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2
RjI2QkI2QzIzMzQzRTZGMDAyRjJCRUEgLyogTGF5b3V0Q29udGV4dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTEzMTBDRjUyMEJBNEE0QzAwNjVBOEQwIC8qIExheW91dERlc2NlbmRhbnRJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkYwQjk4QjUyM0YyNjhFQzAwRUVDMkYyIC8qIExheW91
dElubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MTgwMjU1MjNENDU0OUIwMEZG
QjA3MSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0
QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTExMzEwQ0Y0MjBCQTRBM0QwMDY1QThEMCAvKiBMYXlvdXRJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjY5OCw3ICszMjcwMSw2IEBACiAJCQkJQjJDM0RB
NDAwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VzZXJEZWZpbmVkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE0MjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVVRGMTYuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4
LmggaW4gSGVhZGVycyAqLywKLQkJCQkxMTNBM0NCNDIzODU4NjAxMDBBRTNFQ0UgLyogVGV4dENv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MkI5N0NBMTMxMzg5NDMwMDhCRUY0QiAvKiBU
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MkRFMzI1MUMz
MEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFDNzNBNzE1MjE4NTc1ODcwMDRDQ0VBNSAvKiBUZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZp
Y2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCmluZGV4
IDQ0ZjNjYzcwMWRjODg0NmJkMWI2NzI0YTRmMmIyNzhjYmY5ODBlODAuLjUzNDFlM2NmNTNkOWFj
YmZlODQ4NThiNWQzMTA3YWFiMzVhODc3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9WZXJpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmlj
YXRpb24uY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIGJvb2wgY2hlY2tGb3JNYXRjaGlu
Z05vblRleHRSdW5zKGNvbnN0IERpc3BsYXk6OlJ1biYgaW5saW5lUnVuLCBjb25zdCBXZWIKIH0K
IAogCi1zdGF0aWMgYm9vbCBjaGVja0Zvck1hdGNoaW5nVGV4dFJ1bnMoY29uc3QgRGlzcGxheTo6
UnVuJiBpbmxpbmVSdW4sIGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gpCitzdGF0
aWMgYm9vbCBjaGVja0Zvck1hdGNoaW5nVGV4dFJ1bnMoY29uc3QgRGlzcGxheTo6UnVuJiBpbmxp
bmVSdW4sIGNvbnN0IFdlYkNvcmU6OklubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gpCiB7CiAg
ICAgcmV0dXJuIGFyZUVzc2VudGlhbGx5RXF1YWwoaW5saW5lVGV4dEJveC5sZWZ0KCksIGlubGlu
ZVJ1bi5sZWZ0KCkpCiAgICAgICAgICYmIGFyZUVzc2VudGlhbGx5RXF1YWwoaW5saW5lVGV4dEJv
eC5yaWdodCgpLCBpbmxpbmVSdW4ucmlnaHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250
ZXh0LmNwcAppbmRleCA1MmM3NmViOTQ2NDlhYmQ0YTYwZmRjY2E5ZWZlMTMyNDhjMDZiZjdjLi5k
N2VhYmM5ZjE5NTZlYjM2MDA5NWU4MjNhYjZlMTcxNTBlMGFjNjZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiTGF5b3V0
Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29u
dGV4dC5oIgorI2luY2x1ZGUgIkxheW91dElubGluZVRleHRCb3guaCIKICNpbmNsdWRlICJMYXlv
dXRTdGF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgiCkBAIC0zMzgsOCArMzM5LDggQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dDo6Y29sbGVjdElubGluZUNvbnRlbnRJZk5lZWRlZCgpCiAgICAgICAgICAgICBlbHNlIGlm
IChsYXlvdXRCb3guaXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKQogICAgICAgICAgICAgICAgIGZv
cm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVJdGVtKHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBl
OjpCb3ggfSk7CiAgICAgICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNBbm9ueW1vdXMoKSkg
ewotICAgICAgICAgICAgICAgIEFTU0VSVChsYXlvdXRCb3guaGFzVGV4dENvbnRlbnQoKSk7Ci0g
ICAgICAgICAgICAgICAgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyhm
b3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKSwgbGF5b3V0Qm94KTsKKyAgICAgICAgICAgICAg
ICBBU1NFUlQobGF5b3V0Qm94LmlzSW5saW5lVGV4dEJveCgpKTsKKyAgICAgICAgICAgICAgICBJ
bmxpbmVUZXh0SXRlbTo6Y3JlYXRlQW5kQXBwZW5kVGV4dEl0ZW1zKGZvcm1hdHRpbmdTdGF0ZS5p
bmxpbmVJdGVtcygpLCBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PihsYXlvdXRCb3gpKTsKICAgICAg
ICAgICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LmlzSW5saW5lQm94KCkpCiAgICAgICAgICAgICAg
ICAgZm9ybWF0dGluZ1N0YXRlLmFkZElubGluZUl0ZW0oeyBsYXlvdXRCb3gsIElubGluZUl0ZW06
OlR5cGU6OkNvbnRhaW5lckVuZCB9KTsKICAgICAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVh
a2VyLmNwcAppbmRleCA2MzVjMmUwMzRmNzFjNDI2OWZmMWRhMGM3ZGZmZDc2YmQ1YzRlZWY2Li5k
NGMwMDRjYmYxYTBhMjViZWRlZWMzMTliMjk4NDUxNWQ5ZmRmNDE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJy
ZWFrZXIuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgT3B0aW9uYWw8TGluZUJyZWFrZXI6OlBhcnRp
YWxSdW4+IExpbmVCcmVha2VyOjp0cnlCcmVha2luZ1RleHRSdW4oY29uc3QgUnVuJiBvdmUKICAg
ICAgICAgICAgIHJldHVybiBQYXJ0aWFsUnVuIHsgaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCksIG92
ZXJmbG93UnVuLmxvZ2ljYWxXaWR0aCwgZmFsc2UgfTsKICAgICAgICAgfQogICAgICAgICAvLyBG
SVhNRTogUGFzcyBpbiB0aGUgY29udGVudCBsb2dpY2FsIGxlZnQgdG8gYmUgYWJsZSB0byBtZWFz
dXJlIHRhYnMuCi0gICAgICAgIGF1dG8gc3BsaXREYXRhID0gVGV4dFV0aWw6OnNwbGl0KGlubGlu
ZVRleHRJdGVtLmxheW91dEJveCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0
SXRlbS5sZW5ndGgoKSwgb3ZlcmZsb3dSdW4ubG9naWNhbFdpZHRoLCBhdmFpbGFibGVXaWR0aCwg
eyB9KTsKKyAgICAgICAgYXV0byBzcGxpdERhdGEgPSBUZXh0VXRpbDo6c3BsaXQoaW5saW5lVGV4
dEl0ZW0uaW5saW5lVGV4dEJveCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0
SXRlbS5sZW5ndGgoKSwgb3ZlcmZsb3dSdW4ubG9naWNhbFdpZHRoLCBhdmFpbGFibGVXaWR0aCwg
eyB9KTsKICAgICAgICAgcmV0dXJuIFBhcnRpYWxSdW4geyBzcGxpdERhdGEubGVuZ3RoLCBzcGxp
dERhdGEubG9naWNhbFdpZHRoLCBmYWxzZSB9OwogICAgIH0KIApAQCAtMzM2LDE0ICszMzYsMTMg
QEAgT3B0aW9uYWw8TGluZUJyZWFrZXI6OlBhcnRpYWxSdW4+IExpbmVCcmVha2VyOjp0cnlCcmVh
a2luZ1RleHRSdW4oY29uc3QgUnVuJiBvdmUKICAgICAgICAgICAgIGF1dG8gYXZhaWxhYmxlV2lk
dGhFeGNsdWRpbmdIeXBoZW4gPSBhdmFpbGFibGVXaWR0aCAtIGh5cGhlbldpZHRoOwogICAgICAg
ICAgICAgaWYgKGF2YWlsYWJsZVdpZHRoRXhjbHVkaW5nSHlwaGVuIDw9IDAgfHwgIWVub3VnaFdp
ZHRoRm9ySHlwaGVuYXRpb24oYXZhaWxhYmxlV2lkdGhFeGNsdWRpbmdIeXBoZW4sIGZvbnRDYXNj
YWRlLnBpeGVsU2l6ZSgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICAg
ICAgbGVmdFNpZGVMZW5ndGggPSBUZXh0VXRpbDo6c3BsaXQoaW5saW5lVGV4dEl0ZW0ubGF5b3V0
Qm94KCksIGlubGluZVRleHRJdGVtLnN0YXJ0KCksIHJ1bkxlbmd0aCwgb3ZlcmZsb3dSdW4ubG9n
aWNhbFdpZHRoLCBhdmFpbGFibGVXaWR0aEV4Y2x1ZGluZ0h5cGhlbiwgeyB9KS5sZW5ndGg7Cisg
ICAgICAgICAgICBsZWZ0U2lkZUxlbmd0aCA9IFRleHRVdGlsOjpzcGxpdChpbmxpbmVUZXh0SXRl
bS5pbmxpbmVUZXh0Qm94KCksIGlubGluZVRleHRJdGVtLnN0YXJ0KCksIHJ1bkxlbmd0aCwgb3Zl
cmZsb3dSdW4ubG9naWNhbFdpZHRoLCBhdmFpbGFibGVXaWR0aEV4Y2x1ZGluZ0h5cGhlbiwgeyB9
KS5sZW5ndGg7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGxlZnRTaWRlTGVuZ3RoIDwgbGltaXRC
ZWZvcmUpCiAgICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICBhdXRvIHRleHRDb250ZW50
ID0gaW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+Y29udGVudDsKICAg
ICAgICAgLy8gQWRqdXN0IGJlZm9yZSBpbmRleCB0byBhY2NvbW1vZGF0ZSB0aGUgbGltaXQtYWZ0
ZXIgdmFsdWUgKGl0J3MgdGhlIGxhc3QgcG90ZW50aWFsIGh5cGhlbiBsb2NhdGlvbiBpbiB0aGlz
IHJ1bikuCiAgICAgICAgIGF1dG8gaHlwaGVuQmVmb3JlID0gc3RkOjptaW4obGVmdFNpZGVMZW5n
dGgsIHJ1bkxlbmd0aCAtIGxpbWl0QWZ0ZXIpICsgMTsKLSAgICAgICAgdW5zaWduZWQgaHlwaGVu
TG9jYXRpb24gPSBsYXN0SHlwaGVuTG9jYXRpb24oU3RyaW5nVmlldyh0ZXh0Q29udGVudCkuc3Vi
c3RyaW5nKGlubGluZVRleHRJdGVtLnN0YXJ0KCksIGlubGluZVRleHRJdGVtLmxlbmd0aCgpKSwg
aHlwaGVuQmVmb3JlLCBzdHlsZS5sb2NhbGUoKSk7CisgICAgICAgIHVuc2lnbmVkIGh5cGhlbkxv
Y2F0aW9uID0gbGFzdEh5cGhlbkxvY2F0aW9uKFN0cmluZ1ZpZXcoaW5saW5lVGV4dEl0ZW0uaW5s
aW5lVGV4dEJveCgpLmNvbnRlbnQoKSkuc3Vic3RyaW5nKGlubGluZVRleHRJdGVtLnN0YXJ0KCks
IGlubGluZVRleHRJdGVtLmxlbmd0aCgpKSwgaHlwaGVuQmVmb3JlLCBzdHlsZS5sb2NhbGUoKSk7
CiAgICAgICAgIGlmICghaHlwaGVuTG9jYXRpb24gfHwgaHlwaGVuTG9jYXRpb24gPCBsaW1pdEJl
Zm9yZSkKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIC8vIGh5cGhlbkxvY2F0aW9u
IGlzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGlzIElubGluZUl0ZW1UZXh0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
TGluZUJ1aWxkZXIuY3BwCmluZGV4IGYyNGQwMjNlNGQyMWFhNTk2NGM2OTg4N2YxZWNiNDA2ZmZk
NmQzNDEuLmNjY2Y4YmI0YWM1OWQ2MzI0M2Q5Y2FjNzZlYzgwOWRlMzhmMjAxNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWls
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVMaW5lQnVpbGRlci5jcHAKQEAgLTc1MCw3ICs3NTAsNyBAQCBMaW5lQnVpbGRlcjo6UnVuOjpS
dW4oY29uc3QgSW5saW5lU29mdExpbmVCcmVha0l0ZW0mIHNvZnRMaW5lQnJlYWtJdGVtLCBJbmxp
bmVMYQogICAgIDogbV90eXBlKHNvZnRMaW5lQnJlYWtJdGVtLnR5cGUoKSkKICAgICAsIG1fbGF5
b3V0Qm94KCZzb2Z0TGluZUJyZWFrSXRlbS5sYXlvdXRCb3goKSkKICAgICAsIG1fbG9naWNhbFJl
Y3QoeyAwLCBsb2dpY2FsTGVmdCwgMCwgMCB9KQotICAgICwgbV90ZXh0Q29udGV4dCh7IHNvZnRM
aW5lQnJlYWtJdGVtLnBvc2l0aW9uKCksIDEsIHNvZnRMaW5lQnJlYWtJdGVtLmxheW91dEJveCgp
LnRleHRDb250ZXh0KCktPmNvbnRlbnQgfSkKKyAgICAsIG1fdGV4dENvbnRleHQoeyBzb2Z0TGlu
ZUJyZWFrSXRlbS5wb3NpdGlvbigpLCAxLCB7IH0gfSkKIHsKIH0KIApAQCAtNzU5LDcgKzc1OSw3
IEBAIExpbmVCdWlsZGVyOjpSdW46OlJ1bihjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4
dEl0ZW0sIElubGluZUxheW91dFVuaXQgbG9nCiAgICAgLCBtX2xheW91dEJveCgmaW5saW5lVGV4
dEl0ZW0ubGF5b3V0Qm94KCkpCiAgICAgLCBtX2xvZ2ljYWxSZWN0KHsgMCwgbG9naWNhbExlZnQs
IGxvZ2ljYWxXaWR0aCwgMCB9KQogICAgICwgbV90cmFpbGluZ1doaXRlc3BhY2VUeXBlKHRyYWls
aW5nV2hpdGVzcGFjZVR5cGUoaW5saW5lVGV4dEl0ZW0pKQotICAgICwgbV90ZXh0Q29udGV4dCh7
IGlubGluZVRleHRJdGVtLnN0YXJ0KCksIG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSA9PSBUcmFp
bGluZ1doaXRlc3BhY2U6OkNvbGxhcHNlZCA/IDEgOiBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSwg
aW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+Y29udGVudCB9KQorICAg
ICwgbV90ZXh0Q29udGV4dCh7IGlubGluZVRleHRJdGVtLnN0YXJ0KCksIG1fdHJhaWxpbmdXaGl0
ZXNwYWNlVHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OkNvbGxhcHNlZCA/IDEgOiBpbmxpbmVU
ZXh0SXRlbS5sZW5ndGgoKSwgaW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpLmNvbnRlbnQo
KSB9KQogewogICAgIGlmIChtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgIT0gVHJhaWxpbmdXaGl0
ZXNwYWNlOjpOb25lKSB7CiAgICAgICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggPSBsb2dp
Y2FsV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lU29mdExpbmVCcmVha0l0ZW0uaAppbmRleCBmNmQyYzBkYmMw
YjhkMDE0OWRjOWZjMzAxMGY1ZGYwOGYxYmFkMmU1Li45ZjM5NjUyYTc0YjZkNGI2YjhiYjBmY2Zh
ZDI1ODA1ZDBlMTA5YTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVNvZnRMaW5lQnJlYWtJdGVtLmgKQEAgLTM0
LDIwICszNCwyMCBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgSW5saW5lU29mdExpbmVC
cmVha0l0ZW0gOiBwdWJsaWMgSW5saW5lSXRlbSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIElubGlu
ZVNvZnRMaW5lQnJlYWtJdGVtIGNyZWF0ZVNvZnRMaW5lQnJlYWtJdGVtKGNvbnN0IEJveCYsIHVu
c2lnbmVkIHBvc2l0aW9uKTsKKyAgICBzdGF0aWMgSW5saW5lU29mdExpbmVCcmVha0l0ZW0gY3Jl
YXRlU29mdExpbmVCcmVha0l0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIHVuc2lnbmVkIHBvc2l0
aW9uKTsKIAogICAgIHVuc2lnbmVkIHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydE9y
UG9zaXRpb247IH0KIAotICAgIElubGluZVNvZnRMaW5lQnJlYWtJdGVtKGNvbnN0IEJveCYsIHVu
c2lnbmVkIHBvc2l0aW9uKTsKKyAgICBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbShjb25zdCBJbmxp
bmVUZXh0Qm94JiwgdW5zaWduZWQgcG9zaXRpb24pOwogfTsKIAotaW5saW5lIElubGluZVNvZnRM
aW5lQnJlYWtJdGVtIElubGluZVNvZnRMaW5lQnJlYWtJdGVtOjpjcmVhdGVTb2Z0TGluZUJyZWFr
SXRlbShjb25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgcG9zaXRpb24pCitpbmxpbmUgSW5s
aW5lU29mdExpbmVCcmVha0l0ZW0gSW5saW5lU29mdExpbmVCcmVha0l0ZW06OmNyZWF0ZVNvZnRM
aW5lQnJlYWtJdGVtKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIHVuc2lnbmVk
IHBvc2l0aW9uKQogewotICAgIHJldHVybiB7IGlubGluZUJveCwgcG9zaXRpb24gfTsKKyAgICBy
ZXR1cm4geyBpbmxpbmVUZXh0Qm94LCBwb3NpdGlvbiB9OwogfQogCi1pbmxpbmUgSW5saW5lU29m
dExpbmVCcmVha0l0ZW06OklubGluZVNvZnRMaW5lQnJlYWtJdGVtKGNvbnN0IEJveCYgaW5saW5l
Qm94LCB1bnNpZ25lZCBwb3NpdGlvbikKLSAgICA6IElubGluZUl0ZW0oaW5saW5lQm94LCBUeXBl
OjpTb2Z0TGluZUJyZWFrKQoraW5saW5lIElubGluZVNvZnRMaW5lQnJlYWtJdGVtOjpJbmxpbmVT
b2Z0TGluZUJyZWFrSXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCB1bnNp
Z25lZCBwb3NpdGlvbikKKyAgICA6IElubGluZUl0ZW0oaW5saW5lVGV4dEJveCwgVHlwZTo6U29m
dExpbmVCcmVhaykKIHsKICAgICBtX3N0YXJ0T3JQb3NpdGlvbiA9IHBvc2l0aW9uOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4
dEl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
VGV4dEl0ZW0uY3BwCmluZGV4IDFjZDMzYmFkMzgzYTU2Y2JjMGQwMjIyNGEwMjE4ZTFhYzM5Zjgw
MjUuLjhmNzgxYWQ2M2Q2YWRlMDQ4Mzc3ODhhY2UyMDAyOThhNzIzOGFiODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0
SXRlbS5jcHAKQEAgLTY1LDIyICs2NSwyMSBAQCBzdGF0aWMgdW5zaWduZWQgbW92ZVRvTmV4dEJy
ZWFrYWJsZVBvc2l0aW9uKHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24sIExhenlMaW5lQnJlYQogICAg
IHJldHVybiB0ZXh0TGVuZ3RoIC0gc3RhcnRQb3NpdGlvbjsKIH0KIAotdm9pZCBJbmxpbmVUZXh0
SXRlbTo6Y3JlYXRlQW5kQXBwZW5kVGV4dEl0ZW1zKElubGluZUl0ZW1zJiBpbmxpbmVDb250ZW50
LCBjb25zdCBCb3gmIGlubGluZUJveCkKK3ZvaWQgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFw
cGVuZFRleHRJdGVtcyhJbmxpbmVJdGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QgSW5saW5lVGV4
dEJveCYgaW5saW5lVGV4dEJveCkKIHsKLSAgICBhdXRvJiB0ZXh0Q29udGV4dCA9ICppbmxpbmVC
b3gudGV4dENvbnRleHQoKTsKLSAgICBhdXRvIHRleHQgPSB0ZXh0Q29udGV4dC5jb250ZW50Owor
ICAgIGF1dG8gdGV4dCA9IGlubGluZVRleHRCb3guY29udGVudCgpOwogICAgIGlmICghdGV4dC5s
ZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGlubGluZUNvbnRlbnQuYXBwZW5kKElubGluZVRleHRJ
dGVtOjpjcmVhdGVFbXB0eUl0ZW0oaW5saW5lQm94KSk7CisgICAgICAgIHJldHVybiBpbmxpbmVD
b250ZW50LmFwcGVuZChJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1wdHlJdGVtKGlubGluZVRleHRC
b3gpKTsKIAotICAgIGF1dG8mIHN0eWxlID0gaW5saW5lQm94LnN0eWxlKCk7CisgICAgYXV0byYg
c3R5bGUgPSBpbmxpbmVUZXh0Qm94LnN0eWxlKCk7CiAgICAgYXV0byYgZm9udCA9IHN0eWxlLmZv
bnRDYXNjYWRlKCk7CiAgICAgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIGxpbmVCcmVha0l0ZXJhdG9y
KHRleHQpOwogICAgIHVuc2lnbmVkIGN1cnJlbnRQb3NpdGlvbiA9IDA7CiAKICAgICBhdXRvIGlu
bGluZUl0ZW1XaWR0aCA9IFsmXShhdXRvIHN0YXJ0UG9zaXRpb24sIGF1dG8gbGVuZ3RoKSAtPiBP
cHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB7Ci0gICAgICAgIGlmICghdGV4dENvbnRleHQuY2Fu
VXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJpbmcpCisgICAgICAgIGlmICghaW5saW5lVGV4dEJv
eC5jYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmluZygpKQogICAgICAgICAgICAgcmV0dXJu
IHsgfTsKLSAgICAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVCb3gsIHN0YXJ0UG9z
aXRpb24sIHN0YXJ0UG9zaXRpb24gKyBsZW5ndGgpOworICAgICAgICByZXR1cm4gVGV4dFV0aWw6
OndpZHRoKGlubGluZVRleHRCb3gsIHN0YXJ0UG9zaXRpb24sIHN0YXJ0UG9zaXRpb24gKyBsZW5n
dGgpOwogICAgIH07CiAKICAgICB3aGlsZSAoY3VycmVudFBvc2l0aW9uIDwgdGV4dC5sZW5ndGgo
KSkgewpAQCAtOTAsMTYgKzg5LDE2IEBAIHZvaWQgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFw
cGVuZFRleHRJdGVtcyhJbmxpbmVJdGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QKIAogICAgICAg
ICAvLyBTZWdtZW50IGJyZWFrcyB3aXRoIHByZXNlcnZlIG5ldyBsaW5lIHN0eWxlICh3aGl0ZS1z
cGFjZTogcHJlLCBwcmUtd3JhcCwgYnJlYWstc3BhY2VzIGFuZCBwcmUtbGluZSkgY29tcHV0ZSB0
byBmb3JjZWQgbGluZSBicmVhay4KICAgICAgICAgaWYgKGlzU2VnbWVudEJyZWFrQ2FuZGlkYXRl
KHRleHRbY3VycmVudFBvc2l0aW9uXSkgJiYgc3R5bGUucHJlc2VydmVOZXdsaW5lKCkpIHsKLSAg
ICAgICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5kKElubGluZVNvZnRMaW5lQnJlYWtJdGVtOjpj
cmVhdGVTb2Z0TGluZUJyZWFrSXRlbShpbmxpbmVCb3gsIGN1cnJlbnRQb3NpdGlvbikpOworICAg
ICAgICAgICAgaW5saW5lQ29udGVudC5hcHBlbmQoSW5saW5lU29mdExpbmVCcmVha0l0ZW06OmNy
ZWF0ZVNvZnRMaW5lQnJlYWtJdGVtKGlubGluZVRleHRCb3gsIGN1cnJlbnRQb3NpdGlvbikpOwog
ICAgICAgICAgICAgKytjdXJyZW50UG9zaXRpb247CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIGlmIChpc1doaXRlc3BhY2VDaGFyYWN0ZXIodGV4dFtjdXJyZW50
UG9zaXRpb25dLCBzdHlsZS5wcmVzZXJ2ZU5ld2xpbmUoKSkpIHsKICAgICAgICAgICAgIGF1dG8g
YXBwZW5kV2hpdGVzcGFjZUl0ZW0gPSBbJl0gKGF1dG8gc3RhcnRQb3NpdGlvbiwgYXV0byBpdGVt
TGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBzaW1wbGVTaW5nbGVXaGl0ZXNwYWNlQ29u
dGVudCA9IHRleHRDb250ZXh0LmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nICYmIChp
dGVtTGVuZ3RoID09IDEgfHwgc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCkpOworICAgICAgICAg
ICAgICAgIGF1dG8gc2ltcGxlU2luZ2xlV2hpdGVzcGFjZUNvbnRlbnQgPSBpbmxpbmVUZXh0Qm94
LmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKCkgJiYgKGl0ZW1MZW5ndGggPT0gMSB8
fCBzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSk7CiAgICAgICAgICAgICAgICAgYXV0byB3aWR0
aCA9IHNpbXBsZVNpbmdsZVdoaXRlc3BhY2VDb250ZW50ID8gbWFrZU9wdGlvbmFsKElubGluZUxh
eW91dFVuaXQgeyBmb250LnNwYWNlV2lkdGgoKSB9KSA6IGlubGluZUl0ZW1XaWR0aChzdGFydFBv
c2l0aW9uLCBpdGVtTGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVu
ZChJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlV2hpdGVzcGFjZUl0ZW0oaW5saW5lQm94LCBzdGFydFBv
c2l0aW9uLCBpdGVtTGVuZ3RoLCB3aWR0aCkpOworICAgICAgICAgICAgICAgIGlubGluZUNvbnRl
bnQuYXBwZW5kKElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShpbmxpbmVUZXh0
Qm94LCBzdGFydFBvc2l0aW9uLCBpdGVtTGVuZ3RoLCB3aWR0aCkpOwogICAgICAgICAgICAgfTsK
IAogICAgICAgICAgICAgYXV0byBsZW5ndGggPSBtb3ZlVG9OZXh0Tm9uV2hpdGVzcGFjZVBvc2l0
aW9uKHRleHQsIGN1cnJlbnRQb3NpdGlvbiwgc3R5bGUucHJlc2VydmVOZXdsaW5lKCkpOwpAQCAt
MTE2LDcgKzExNSw3IEBAIHZvaWQgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJ
dGVtcyhJbmxpbmVJdGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QKICAgICAgICAgfQogCiAgICAg
ICAgIGF1dG8gbGVuZ3RoID0gbW92ZVRvTmV4dEJyZWFrYWJsZVBvc2l0aW9uKGN1cnJlbnRQb3Np
dGlvbiwgbGluZUJyZWFrSXRlcmF0b3IsIHN0eWxlKTsKLSAgICAgICAgaW5saW5lQ29udGVudC5h
cHBlbmQoSW5saW5lVGV4dEl0ZW06OmNyZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGlubGluZUJveCwg
Y3VycmVudFBvc2l0aW9uLCBsZW5ndGgsIGlubGluZUl0ZW1XaWR0aChjdXJyZW50UG9zaXRpb24s
IGxlbmd0aCkpKTsKKyAgICAgICAgaW5saW5lQ29udGVudC5hcHBlbmQoSW5saW5lVGV4dEl0ZW06
OmNyZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGlubGluZVRleHRCb3gsIGN1cnJlbnRQb3NpdGlvbiwg
bGVuZ3RoLCBpbmxpbmVJdGVtV2lkdGgoY3VycmVudFBvc2l0aW9uLCBsZW5ndGgpKSk7CiAgICAg
ICAgIGN1cnJlbnRQb3NpdGlvbiArPSBsZW5ndGg7CiAgICAgfQogfQpAQCAtMTI0LDcgKzEyMyw3
IEBAIHZvaWQgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyhJbmxpbmVJ
dGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QKIGJvb2wgSW5saW5lVGV4dEl0ZW06OmlzRW1wdHlD
b250ZW50KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIGZvciBtb3Jl
IHplcm8gd2lkdGggY29udGVudCBhbmQgbm90IGp1c3QgVSsyMDBCLgotICAgIHJldHVybiAhbV9s
ZW5ndGggfHwgKG1fbGVuZ3RoID09IDEgJiYgbGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+Y29u
dGVudFtzdGFydCgpXSA9PSB6ZXJvV2lkdGhTcGFjZSk7IAorICAgIHJldHVybiAhbV9sZW5ndGgg
fHwgKG1fbGVuZ3RoID09IDEgJiYgaW5saW5lVGV4dEJveCgpLmNvbnRlbnQoKVtzdGFydCgpXSA9
PSB6ZXJvV2lkdGhTcGFjZSk7IAogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uaAppbmRleCAyZjE3ODc3YWJk
OGIxYmM4ODFmZmFkYTQ4NzcyZTU4ZDU0MTc3NWYzLi43NDExODllZTI0ZDgwODZmNTc2YTE2YWNm
NDU2ZjY3MGNiN2Y4YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmgKQEAgLTI5LDEzICsyOSwxNCBAQAogCiAj
aW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlbS5o
IgorI2luY2x1ZGUgIkxheW91dElubGluZVRleHRCb3guaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogbmFtZXNwYWNlIExheW91dCB7CiAKIGNsYXNzIElubGluZVRleHRJdGVtIDogcHVibGljIElu
bGluZUl0ZW0gewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUFuZEFwcGVuZFRleHRJ
dGVtcyhJbmxpbmVJdGVtcyYsIGNvbnN0IEJveCYpOworICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUFu
ZEFwcGVuZFRleHRJdGVtcyhJbmxpbmVJdGVtcyYsIGNvbnN0IElubGluZVRleHRCb3gmKTsKIAog
ICAgIHVuc2lnbmVkIHN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydE9yUG9zaXRpb247IH0K
ICAgICB1bnNpZ25lZCBlbmQoKSBjb25zdCB7IHJldHVybiBzdGFydCgpICsgbGVuZ3RoKCk7IH0K
QEAgLTQ2LDQ4ICs0Nyw1MCBAQCBwdWJsaWM6CiAgICAgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5p
dD4gd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2hhc1dpZHRoID8gbWFrZU9wdGlvbmFsKG1fd2lk
dGgpIDogT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4geyB9OyB9CiAgICAgYm9vbCBpc0VtcHR5
Q29udGVudCgpIGNvbnN0OwogCisgICAgY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJv
eCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCgpKTsg
fQorCiAgICAgSW5saW5lVGV4dEl0ZW0gbGVmdCh1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwogICAg
IElubGluZVRleHRJdGVtIHJpZ2h0KHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CiAKIHByaXZhdGU6
CiAgICAgdXNpbmcgSW5saW5lSXRlbTo6VGV4dEl0ZW1UeXBlOwogCi0gICAgSW5saW5lVGV4dEl0
ZW0oY29uc3QgQm94JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8
SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlwZSk7Ci0gICAgSW5saW5lVGV4dEl0
ZW0oY29uc3QgQm94Jik7CisgICAgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91dFVu
aXQ+IHdpZHRoLCBUZXh0SXRlbVR5cGUpOworICAgIElubGluZVRleHRJdGVtKGNvbnN0IElubGlu
ZVRleHRCb3gmKTsKIAotICAgIHN0YXRpYyBJbmxpbmVUZXh0SXRlbSBjcmVhdGVXaGl0ZXNwYWNl
SXRlbShjb25zdCBCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25h
bDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0aCk7Ci0gICAgc3RhdGljIElubGluZVRleHRJdGVtIGNy
ZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGNvbnN0IEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKTsKLSAgICBzdGF0aWMg
SW5saW5lVGV4dEl0ZW0gY3JlYXRlRW1wdHlJdGVtKGNvbnN0IEJveCYpOworICAgIHN0YXRpYyBJ
bmxpbmVUZXh0SXRlbSBjcmVhdGVXaGl0ZXNwYWNlSXRlbShjb25zdCBJbmxpbmVUZXh0Qm94Jiwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5p
dD4gd2lkdGgpOworICAgIHN0YXRpYyBJbmxpbmVUZXh0SXRlbSBjcmVhdGVOb25XaGl0ZXNwYWNl
SXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0
aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgpOworICAgIHN0YXRpYyBJbmxpbmVU
ZXh0SXRlbSBjcmVhdGVFbXB0eUl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYpOwogfTsKIAotaW5s
aW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShj
b25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0
aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgpCitpbmxpbmUgSW5saW5lVGV4dEl0ZW0gSW5s
aW5lVGV4dEl0ZW06OmNyZWF0ZVdoaXRlc3BhY2VJdGVtKGNvbnN0IElubGluZVRleHRCb3gmIGlu
bGluZVRleHRCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElu
bGluZUxheW91dFVuaXQ+IHdpZHRoKQogewotICAgIHJldHVybiB7IGlubGluZUJveCwgc3RhcnQs
IGxlbmd0aCwgd2lkdGgsIFRleHRJdGVtVHlwZTo6V2hpdGVzcGFjZSB9OworICAgIHJldHVybiB7
IGlubGluZVRleHRCb3gsIHN0YXJ0LCBsZW5ndGgsIHdpZHRoLCBUZXh0SXRlbVR5cGU6OldoaXRl
c3BhY2UgfTsKIH0KIAotaW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpjcmVh
dGVOb25XaGl0ZXNwYWNlSXRlbShjb25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgpCitpbmxp
bmUgSW5saW5lVGV4dEl0ZW0gSW5saW5lVGV4dEl0ZW06OmNyZWF0ZU5vbldoaXRlc3BhY2VJdGVt
KGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNp
Z25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKQogewotICAgIHJl
dHVybiB7IGlubGluZUJveCwgc3RhcnQsIGxlbmd0aCwgd2lkdGgsIFRleHRJdGVtVHlwZTo6Tm9u
V2hpdGVzcGFjZSB9OworICAgIHJldHVybiB7IGlubGluZVRleHRCb3gsIHN0YXJ0LCBsZW5ndGgs
IHdpZHRoLCBUZXh0SXRlbVR5cGU6Ok5vbldoaXRlc3BhY2UgfTsKIH0KIAotaW5saW5lIElubGlu
ZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpjcmVhdGVFbXB0eUl0ZW0oY29uc3QgQm94JiBpbmxp
bmVCb3gpCitpbmxpbmUgSW5saW5lVGV4dEl0ZW0gSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUVtcHR5
SXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94KQogewotICAgIHJldHVybiB7
IGlubGluZUJveCB9OworICAgIHJldHVybiB7IGlubGluZVRleHRCb3ggfTsKIH0KIAotaW5saW5l
IElubGluZVRleHRJdGVtOjpJbmxpbmVUZXh0SXRlbShjb25zdCBCb3gmIGlubGluZUJveCwgdW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4g
d2lkdGgsIFRleHRJdGVtVHlwZSB0ZXh0SXRlbVR5cGUpCi0gICAgOiBJbmxpbmVJdGVtKGlubGlu
ZUJveCwgVHlwZTo6VGV4dCkKK2lubGluZSBJbmxpbmVUZXh0SXRlbTo6SW5saW5lVGV4dEl0ZW0o
Y29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2ln
bmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlw
ZSB0ZXh0SXRlbVR5cGUpCisgICAgOiBJbmxpbmVJdGVtKGlubGluZVRleHRCb3gsIFR5cGU6OlRl
eHQpCiB7CiAgICAgbV9zdGFydE9yUG9zaXRpb24gPSBzdGFydDsKICAgICBtX2xlbmd0aCA9IGxl
bmd0aDsKICAgICBtX2hhc1dpZHRoID0gISF3aWR0aDsKLSAgICBtX2lzQ29sbGFwc2libGUgPSB0
ZXh0SXRlbVR5cGUgPT0gVGV4dEl0ZW1UeXBlOjpXaGl0ZXNwYWNlICYmIGlubGluZUJveC5zdHls
ZSgpLmNvbGxhcHNlV2hpdGVTcGFjZSgpOworICAgIG1faXNDb2xsYXBzaWJsZSA9IHRleHRJdGVt
VHlwZSA9PSBUZXh0SXRlbVR5cGU6OldoaXRlc3BhY2UgJiYgaW5saW5lVGV4dEJveC5zdHlsZSgp
LmNvbGxhcHNlV2hpdGVTcGFjZSgpOwogICAgIG1fd2lkdGggPSB3aWR0aC52YWx1ZU9yKDApOwog
ICAgIG1fdGV4dEl0ZW1UeXBlID0gdGV4dEl0ZW1UeXBlOwogfQogCi1pbmxpbmUgSW5saW5lVGV4
dEl0ZW06OklubGluZVRleHRJdGVtKGNvbnN0IEJveCYgaW5saW5lQm94KQotICAgIDogSW5saW5l
SXRlbShpbmxpbmVCb3gsIFR5cGU6OlRleHQpCitpbmxpbmUgSW5saW5lVGV4dEl0ZW06OklubGlu
ZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gpCisgICAgOiBJbmxp
bmVJdGVtKGlubGluZVRleHRCb3gsIFR5cGU6OlRleHQpCiB7CiB9CiAKQEAgLTk2LDcgKzk5LDcg
QEAgaW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpsZWZ0KHVuc2lnbmVkIGxl
bmd0aCkgY29uc3QKICAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPD0gdGhpcy0+bGVuZ3RoKCkp
OwogICAgIEFTU0VSVChtX3RleHRJdGVtVHlwZSAhPSBUZXh0SXRlbVR5cGU6OlVuZGVmaW5lZCk7
CiAgICAgQVNTRVJUKGxlbmd0aCk7Ci0gICAgcmV0dXJuIHsgbGF5b3V0Qm94KCksIHN0YXJ0KCks
IGxlbmd0aCwgV1RGOjpudWxsb3B0LCBtX3RleHRJdGVtVHlwZSB9OworICAgIHJldHVybiB7IGlu
bGluZVRleHRCb3goKSwgc3RhcnQoKSwgbGVuZ3RoLCBXVEY6Om51bGxvcHQsIG1fdGV4dEl0ZW1U
eXBlIH07CiB9CiAKIGlubGluZSBJbmxpbmVUZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6cmlnaHQo
dW5zaWduZWQgbGVuZ3RoKSBjb25zdApAQCAtMTA0LDcgKzEwNyw3IEBAIGlubGluZSBJbmxpbmVU
ZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6cmlnaHQodW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAg
IFJFTEVBU0VfQVNTRVJUKGxlbmd0aCA8PSB0aGlzLT5sZW5ndGgoKSk7CiAgICAgQVNTRVJUKG1f
dGV4dEl0ZW1UeXBlICE9IFRleHRJdGVtVHlwZTo6VW5kZWZpbmVkKTsKICAgICBBU1NFUlQobGVu
Z3RoKTsKLSAgICByZXR1cm4geyBsYXlvdXRCb3goKSwgZW5kKCkgLSBsZW5ndGgsIGxlbmd0aCwg
V1RGOjpudWxsb3B0LCBtX3RleHRJdGVtVHlwZSB9OworICAgIHJldHVybiB7IGlubGluZVRleHRC
b3goKSwgZW5kKCkgLSBsZW5ndGgsIGxlbmd0aCwgV1RGOjpudWxsb3B0LCBtX3RleHRJdGVtVHlw
ZSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKaW5kZXggNGRlYjk3OWFkZDcxMmVl
OTQ3YjE0YzNlYzcyMDUzOWJjZDBlM2Y3NC4uZDUxODY2MmI3MzA2OWMwN2VlZTRkZDAzMzcyYzE1
NGY2ZmEzZGZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcApAQCAtNDMsMTMgKzQzLDEzIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBlbmRzV2l0aFNvZnRXcmFwT3Bwb3J0dW5pdHkoY29uc3QgSW5s
aW5lVGV4dEl0ZW0mIGN1cnJlbnRUZXh0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIC8vIFdo
ZW4gYm90aCB0aGVzZSBub24td2hpdGVzcGFjZSBydW5zIGJlbG9uZyB0byB0aGUgc2FtZSBsYXlv
dXQgYm94LCBpdCdzIGd1YXJhbnRlZWQgdGhhdAogICAgIC8vIHRoZXkgYXJlIHNwbGl0IGF0IGEg
c29mdCBicmVha2luZyBvcHBvcnR1bml0eS4gU2VlIElubGluZVRleHRJdGVtOjptb3ZlVG9OZXh0
QnJlYWthYmxlUG9zaXRpb24uCi0gICAgaWYgKCZjdXJyZW50VGV4dEl0ZW0ubGF5b3V0Qm94KCkg
PT0gJm5leHRJbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkKKyAgICBpZiAoJmN1cnJlbnRUZXh0
SXRlbS5pbmxpbmVUZXh0Qm94KCkgPT0gJm5leHRJbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIC8vIE5vdyB3ZSBuZWVkIHRvIGNvbGxlY3Qg
YXQgbGVhc3QgMyBhZGphY2VudCBjaGFyYWN0ZXJzIHRvIGJlIGFibGUgdG8gbWFrZSBhIGRlY2lz
aW9uIHdoZXRoZXIgdGhlIHByZXZpb3VzIHRleHQgaXRlbSBlbmRzIHdpdGggYnJlYWtpbmcgb3Bw
b3J0dW5pdHkuCiAgICAgLy8gW2V4LV1bYW1wbGVdIDwtIHNlY29uZCB0byBsYXN0W3hdIGxhc3Rb
LV0gY3VycmVudFthXQogICAgIC8vIFdlIG5lZWQgYXQgbGVhc3QgMSBjaGFyYWN0ZXIgaW4gdGhl
IGN1cnJlbnQgaW5saW5lIHRleHQgaXRlbSBhbmQgMiBtb3JlIGZyb20gcHJldmlvdXMgaW5saW5l
IGl0ZW1zLgotICAgIGF1dG8gcHJldmlvdXNDb250ZW50ID0gY3VycmVudFRleHRJdGVtLmxheW91
dEJveCgpLnRleHRDb250ZXh0KCktPmNvbnRlbnQ7Ci0gICAgYXV0byBsaW5lQnJlYWtJdGVyYXRv
ciA9IExhenlMaW5lQnJlYWtJdGVyYXRvciB7IG5leHRJbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3go
KS50ZXh0Q29udGV4dCgpLT5jb250ZW50IH07CisgICAgYXV0byBwcmV2aW91c0NvbnRlbnQgPSBj
dXJyZW50VGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpLmNvbnRlbnQoKTsKKyAgICBhdXRvIGxpbmVC
cmVha0l0ZXJhdG9yID0gTGF6eUxpbmVCcmVha0l0ZXJhdG9yIHsgbmV4dElubGluZVRleHRJdGVt
LmlubGluZVRleHRCb3goKS5jb250ZW50KCkgfTsKICAgICBhdXRvIHByZXZpb3VzQ29udGVudExl
bmd0aCA9IHByZXZpb3VzQ29udGVudC5sZW5ndGgoKTsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGxvb2sgaW50byB0aGUgZW50aXJlIHVuY29tbWl0dGVkIGNvbnRlbnQgZm9yIG1vcmUgdGV4dCBj
b250ZXh0LgogICAgIFVDaGFyIGxhc3RDaGFyYWN0ZXIgPSBwcmV2aW91c0NvbnRlbnRMZW5ndGgg
PyBwcmV2aW91c0NvbnRlbnRbcHJldmlvdXNDb250ZW50TGVuZ3RoIC0gMV0gOiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRp
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRV
dGlsLmNwcAppbmRleCBlOGRiOWQ3Y2Q0OWQwOGUxMjVkNzBlYjM0MzkxNGZlYTg2YmZjODk2Li5h
OTk1YzE2NzIyNThiNDMzMDQyNWEzODY0NGRiZmVhNTYwOTZjYTdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkJyZWFrTGluZXMuaCIKICNpbmNsdWRlICJG
b250Q2FzY2FkZS5oIgogI2luY2x1ZGUgIklubGluZVRleHRJdGVtLmgiCisjaW5jbHVkZSAiTGF5
b3V0SW5saW5lVGV4dEJveC5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJl
bmRlclN0eWxlLmgiCiAKQEAgLTQ0LDI1ICs0NSwyNCBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRV
dGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIHVuc2lnbmVk
CiAgICAgICAgIGF1dG8gZm9udCA9IGlubGluZVRleHRJdGVtLnN0eWxlKCkuZm9udENhc2NhZGUo
KTsKICAgICAgICAgcmV0dXJuIGZvbnQuc3BhY2VXaWR0aCgpICsgZm9udC53b3JkU3BhY2luZygp
OwogICAgIH0KLSAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLmxheW91
dEJveCgpLCBmcm9tLCB0bywgY29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICByZXR1cm4gVGV4dFV0
aWw6OndpZHRoKGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgZnJvbSwgdG8sIGNvbnRl
bnRMb2dpY2FsTGVmdCk7CiB9CiAKLUlubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNv
bnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5
b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpCitJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3
aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCB1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpCiB7Ci0gICAg
YXV0byYgc3R5bGUgPSBpbmxpbmVCb3guc3R5bGUoKTsKKyAgICBhdXRvJiBzdHlsZSA9IGlubGlu
ZVRleHRCb3guc3R5bGUoKTsKICAgICBhdXRvJiBmb250ID0gc3R5bGUuZm9udENhc2NhZGUoKTsK
ICAgICBpZiAoIWZvbnQuc2l6ZSgpIHx8IGZyb20gPT0gdG8pCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgYXV0byYgdGV4dENvbnRleHQgPSAqaW5saW5lQm94LnRleHRDb250ZXh0KCk7Ci0gICAg
YXV0byYgdGV4dCA9IHRleHRDb250ZXh0LmNvbnRlbnQ7CisgICAgYXV0byB0ZXh0ID0gaW5saW5l
VGV4dEJveC5jb250ZW50KCk7CiAgICAgQVNTRVJUKHRvIDw9IHRleHQubGVuZ3RoKCkpOwogICAg
IGF1dG8gaGFzS2VybmluZ09yTGlnYXR1cmVzID0gZm9udC5lbmFibGVLZXJuaW5nKCkgfHwgZm9u
dC5yZXF1aXJlc1NoYXBpbmcoKTsKICAgICBhdXRvIG1lYXN1cmVXaXRoRW5kU3BhY2UgPSBoYXNL
ZXJuaW5nT3JMaWdhdHVyZXMgJiYgdG8gPCB0ZXh0Lmxlbmd0aCgpICYmIHRleHRbdG9dID09ICcg
JzsKICAgICBpZiAobWVhc3VyZVdpdGhFbmRTcGFjZSkKICAgICAgICAgKyt0bzsKICAgICBmbG9h
dCB3aWR0aCA9IDA7Ci0gICAgaWYgKHRleHRDb250ZXh0LmNhblVzZVNpbXBsaWZpZWRDb250ZW50
TWVhc3VyaW5nKSB7CisgICAgaWYgKGlubGluZVRleHRCb3guY2FuVXNlU2ltcGxpZmllZENvbnRl
bnRNZWFzdXJpbmcoKSkgewogICAgICAgICBpZiAoZm9udC5pc0ZpeGVkUGl0Y2goKSkKICAgICAg
ICAgICAgIHdpZHRoID0gZml4ZWRQaXRjaFdpZHRoKHRleHQsIHN0eWxlLCBmcm9tLCB0bywgY29u
dGVudExvZ2ljYWxMZWZ0KTsKICAgICAgICAgZWxzZQpAQCAtMTAwLDcgKzEwMCw3IEBAIElubGlu
ZUxheW91dFVuaXQgVGV4dFV0aWw6OmZpeGVkUGl0Y2hXaWR0aChjb25zdCBTdHJpbmdWaWV3JiB0
ZXh0LCBjb25zdCBSZW5kZXJTCiAgICAgcmV0dXJuIHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+
KDAsIElubGluZUxheW91dFVuaXQod2lkdGgpKTsKIH0KIAotVGV4dFV0aWw6OlNwbGl0RGF0YSBU
ZXh0VXRpbDo6c3BsaXQoY29uc3QgQm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0YXJ0UG9zaXRp
b24sIHVuc2lnbmVkIGxlbmd0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0V2lkdGgsIElubGluZUxh
eW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxM
ZWZ0KQorVGV4dFV0aWw6OlNwbGl0RGF0YSBUZXh0VXRpbDo6c3BsaXQoY29uc3QgSW5saW5lVGV4
dEJveCYgaW5saW5lVGV4dEJveCwgdW5zaWduZWQgc3RhcnRQb3NpdGlvbiwgdW5zaWduZWQgbGVu
Z3RoLCBJbmxpbmVMYXlvdXRVbml0IHRleHRXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCBhdmFpbGFi
bGVXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpCiB7CiAgICAgQVNT
RVJUKGF2YWlsYWJsZVdpZHRoID49IDApOwogICAgIGF1dG8gbGVmdCA9IHN0YXJ0UG9zaXRpb247
CkBAIC0xMTMsNyArMTEzLDcgQEAgVGV4dFV0aWw6OlNwbGl0RGF0YSBUZXh0VXRpbDo6c3BsaXQo
Y29uc3QgQm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24KICAgICBJbmxpbmVM
YXlvdXRVbml0IGxlZnRTaWRlV2lkdGggPSAwOwogICAgIHdoaWxlIChsZWZ0IDwgcmlnaHQpIHsK
ICAgICAgICAgYXV0byBtaWRkbGUgPSAobGVmdCArIHJpZ2h0KSAvIDI7Ci0gICAgICAgIGF1dG8g
d2lkdGggPSBUZXh0VXRpbDo6d2lkdGgoaW5saW5lQm94LCBzdGFydFBvc2l0aW9uLCBtaWRkbGUg
KyAxLCBjb250ZW50TG9naWNhbExlZnQpOworICAgICAgICBhdXRvIHdpZHRoID0gVGV4dFV0aWw6
OndpZHRoKGlubGluZVRleHRCb3gsIHN0YXJ0UG9zaXRpb24sIG1pZGRsZSArIDEsIGNvbnRlbnRM
b2dpY2FsTGVmdCk7CiAgICAgICAgIGlmICh3aWR0aCA8IGF2YWlsYWJsZVdpZHRoKSB7CiAgICAg
ICAgICAgICBsZWZ0ID0gbWlkZGxlICsgMTsKICAgICAgICAgICAgIGxlZnRTaWRlV2lkdGggPSB3
aWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L3RleHQvVGV4dFV0aWwuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L3RleHQvVGV4dFV0aWwuaAppbmRleCBjNDBlNWVmYjg4MzQ5ZWM2YTVhYjFhYzdmYjdlYzNhMTEz
MDhkZjRmLi40NTBkNjcwOTcyMjRkMDY2MzA5MDk3OWNiMTdiMjZjMmYxNzlkZjU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGls
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0
VXRpbC5oCkBAIC0zNywxOCArMzcsMTkgQEAgY2xhc3MgUmVuZGVyU3R5bGU7CiAKIG5hbWVzcGFj
ZSBMYXlvdXQgewogCitjbGFzcyBJbmxpbmVUZXh0Qm94OwogY2xhc3MgSW5saW5lVGV4dEl0ZW07
CiAKIGNsYXNzIFRleHRVdGlsIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5p
dCB3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRv
LCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCA9IDApOwotICAgIHN0YXRpYyBJ
bmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IEJveCYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVk
IHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCA9IDApOworICAgIHN0YXRp
YyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBm
cm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQgPSAw
KTsKICAgICBzdHJ1Y3QgU3BsaXREYXRhIHsKICAgICAgICAgdW5zaWduZWQgc3RhcnQgeyAwIH07
CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCB7IDAgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsV2lkdGggeyAwIH07CiAgICAgfTsKLSAgICBzdGF0aWMgU3BsaXREYXRhIHNwbGl0
KGNvbnN0IEJveCYsIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24sIHVuc2lnbmVkIGxlbmd0aCwgSW5s
aW5lTGF5b3V0VW5pdCB0ZXh0V2lkdGgsIElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgs
IElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICBzdGF0aWMgU3BsaXRE
YXRhIHNwbGl0KGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCB1
bnNpZ25lZCBsZW5ndGgsIElubGluZUxheW91dFVuaXQgdGV4dFdpZHRoLCBJbmxpbmVMYXlvdXRV
bml0IGF2YWlsYWJsZVdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7
CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkUHJlc2VydmVUcmFpbGluZ1doaXRlc3BhY2UoY29uc3Qg
UmVuZGVyU3R5bGUmKTsKICAgICBzdGF0aWMgdW5zaWduZWQgZmluZE5leHRCcmVha2FibGVQb3Np
dGlvbihMYXp5TGluZUJyZWFrSXRlcmF0b3ImLCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCBjb25z
dCBSZW5kZXJTdHlsZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCmluZGV4IDBiNzEw
YmRiM2FhNzU5YzIxYmE3ZDZhNTM2YjA0MTcyMGI5ZjkzNzYuLjA1NzFjM2FhYTVkMjFmZjcyMjY5
MWI2ZmM3MmVkN2UzMTIxODQ1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCkBAIC01
OCw5ICs1OCw3IEBAIHZvaWQgQm94VHJlZTo6YnVpbGRUcmVlKGNvbnN0IFJlbmRlckJsb2NrRmxv
dyYgZmxvdykKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPExheW91dDo6Qm94PiBjaGlsZEJveDsK
ICAgICAgICAgaWYgKGlzPFJlbmRlclRleHQ+KGNoaWxkUmVuZGVyZXIpKSB7CiAgICAgICAgICAg
ICBhdXRvJiB0ZXh0UmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJUZXh0PihjaGlsZFJlbmRlcmVy
KTsKLSAgICAgICAgICAgIGF1dG8gdGV4dENvbnRlbnQgPSBMYXlvdXQ6OlRleHRDb250ZXh0IHsg
dGV4dFJlbmRlcmVyLnRleHQoKSwgdGV4dFJlbmRlcmVyLmNhblVzZVNpbXBsaWZpZWRUZXh0TWVh
c3VyaW5nKCkgfTsKLSAgICAgICAgICAgIGNoaWxkQm94ID0gbWFrZVVuaXF1ZTxMYXlvdXQ6OkJv
eD4oV1RGTW92ZSh0ZXh0Q29udGVudCksIFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHls
ZVdpdGhEaXNwbGF5KG1fcm9vdC5zdHlsZSgpLCBEaXNwbGF5VHlwZTo6SW5saW5lKSk7Ci0gICAg
ICAgICAgICBjaGlsZEJveC0+c2V0SXNBbm9ueW1vdXMoKTsKKyAgICAgICAgICAgIGNoaWxkQm94
ID0gbWFrZVVuaXF1ZTxMYXlvdXQ6OklubGluZVRleHRCb3g+KHRleHRSZW5kZXJlci50ZXh0KCks
IHRleHRSZW5kZXJlci5jYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZygpLCBSZW5kZXJTdHls
ZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShtX3Jvb3Quc3R5bGUoKSwgRGlzcGxh
eVR5cGU6OklubGluZSkpOwogICAgICAgICB9IGVsc2UgaWYgKGNoaWxkUmVuZGVyZXIuaXNMaW5l
QnJlYWsoKSkgewogICAgICAgICAgICAgYXV0byBjbG9uZWRTdHlsZSA9IFJlbmRlclN0eWxlOjpj
bG9uZShjaGlsZFJlbmRlcmVyLnN0eWxlKCkpOwogICAgICAgICAgICAgY2xvbmVkU3R5bGUuc2V0
RGlzcGxheShEaXNwbGF5VHlwZTo6SW5saW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCmluZGV4IGI0ZDYwYTRlNmFkMDI1ZmNjNDQyMDkxMzVl
NzYwNGEyMmNlZmVjNWIuLjE5N2FjZWVlYmZmZWJhZDhhNjcyNjM2ODk5ZThjYjE0YmNmMjNjMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcApA
QCAtNDAsMTAgKzQwLDkgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChCb3gpOwogCi1Cb3g6OkJveChPcHRpb25hbDxFbGVtZW50QXR0cmlidXRlcz4g
YXR0cmlidXRlcywgT3B0aW9uYWw8VGV4dENvbnRleHQ+IHRleHRDb250ZXh0LCBSZW5kZXJTdHls
ZSYmIHN0eWxlLCBCYXNlVHlwZUZsYWdzIGJhc2VUeXBlRmxhZ3MpCitCb3g6OkJveChPcHRpb25h
bDxFbGVtZW50QXR0cmlidXRlcz4gYXR0cmlidXRlcywgUmVuZGVyU3R5bGUmJiBzdHlsZSwgQmFz
ZVR5cGVGbGFncyBiYXNlVHlwZUZsYWdzKQogICAgIDogbV9zdHlsZShXVEZNb3ZlKHN0eWxlKSkK
ICAgICAsIG1fZWxlbWVudEF0dHJpYnV0ZXMoYXR0cmlidXRlcykKLSAgICAsIG1fdGV4dENvbnRl
eHQodGV4dENvbnRleHQpCiAgICAgLCBtX2Jhc2VUeXBlRmxhZ3MoYmFzZVR5cGVGbGFncykKICAg
ICAsIG1faGFzUmFyZURhdGEoZmFsc2UpCiAgICAgLCBtX2lzQW5vbnltb3VzKGZhbHNlKQpAQCAt
NTMsMTYgKzUyLDEwIEBAIEJveDo6Qm94KE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiBhdHRy
aWJ1dGVzLCBPcHRpb25hbDxUZXh0Q29udGV4dD4gdGV4dENvbnRlCiB9CiAKIEJveDo6Qm94KE9w
dGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiBhdHRyaWJ1dGVzLCBSZW5kZXJTdHlsZSYmIHN0eWxl
KQotICAgIDogQm94KGF0dHJpYnV0ZXMsIHsgfSwgV1RGTW92ZShzdHlsZSksIEJhc2VUeXBlRmxh
Zzo6Qm94RmxhZykKKyAgICA6IEJveChhdHRyaWJ1dGVzLCBXVEZNb3ZlKHN0eWxlKSwgQmFzZVR5
cGVGbGFnOjpCb3hGbGFnKQogewogfQogCi1Cb3g6OkJveChUZXh0Q29udGV4dCYmIHRleHRDb250
ZXh0LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQotICAgIDogQm94KHsgfSwgV1RGTW92ZSh0ZXh0Q29u
dGV4dCksIFdURk1vdmUoc3R5bGUpLCBCYXNlVHlwZUZsYWc6OkJveEZsYWcpCi17Ci0gICAgQVNT
RVJUKGlzSW5saW5lTGV2ZWxCb3goKSk7Ci19Ci0KIEJveDo6fkJveCgpCiB7CiAgICAgaWYgKFVO
TElLRUxZKG1faGFzUmFyZURhdGEpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRCb3guaAppbmRleCA5NDUzYjNlMzA3ZDcyZmYxMjAyNjExMzM0MWYzMzgzNTMyODdi
MjlhLi4wYmMzOTBiMGIwODUwNDc2YmE5ODNhNDdiMDFjMTUyMzM3MmY4MGZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaApAQCAtMjksNyArMjksNiBA
QAogCiAjaW5jbHVkZSAiTGF5b3V0UmVwbGFjZWQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5o
IgotI2luY2x1ZGUgIlRleHRDb250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgog
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTY0LDE0ICs2MywxNCBAQCBwdWJsaWM6CiAg
ICAgfTsKIAogICAgIGVudW0gQmFzZVR5cGVGbGFnIHsKLSAgICAgICAgQm94RmxhZyAgICAgICAg
ICAgICAgID0gMSA8PCAwLAotICAgICAgICBDb250YWluZXJGbGFnICAgICAgICAgPSAxIDw8IDEK
KyAgICAgICAgQm94RmxhZyAgICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgSW5saW5l
VGV4dEJveCA9IDEgPDwgMSwKKyAgICAgICAgQ29udGFpbmVyRmxhZyAgICAgICAgICA9IDEgPDwg
MgogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBCYXNlVHlwZUZsYWdzOwogCiAgICAgQm94
KE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiwgUmVuZGVyU3R5bGUmJik7Ci0gICAgQm94KFRl
eHRDb250ZXh0JiYsIFJlbmRlclN0eWxlJiYpOwotICAgIH5Cb3goKTsKKyAgICB2aXJ0dWFsIH5C
b3goKTsKIAogICAgIGJvb2wgZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0Owog
ICAgIGJvb2wgZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CkBAIC0x
NDIsNiArMTQxLDcgQEAgcHVibGljOgogICAgIEJveCogbmV4dFNpYmxpbmcoKSB7IHJldHVybiBt
X25leHRTaWJsaW5nOyB9CiAKICAgICBib29sIGlzQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4g
bV9iYXNlVHlwZUZsYWdzICYgQ29udGFpbmVyRmxhZzsgfQorICAgIGJvb2wgaXNJbmxpbmVUZXh0
Qm94KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlVHlwZUZsYWdzICYgSW5saW5lVGV4dEJveDsgfQog
CiAgICAgYm9vbCBpc1BhZGRpbmdBcHBsaWNhYmxlKCkgY29uc3Q7CiAgICAgYm9vbCBpc092ZXJm
bG93VmlzaWJsZSgpIGNvbnN0OwpAQCAtMTUyLDggKzE1Miw2IEBAIHB1YmxpYzoKICAgICBjb25z
dCBSZXBsYWNlZCogcmVwbGFjZWQoKSBjb25zdDsKICAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IHVu
dGlsIGFmdGVyIGludHJpbnNpYyBzaXplIGNoYW5nZSBpcyB0cmFja2VkIGJ5IFJlcGxhY2VkLgog
ICAgIFJlcGxhY2VkKiByZXBsYWNlZCgpOwotICAgIGJvb2wgaGFzVGV4dENvbnRlbnQoKSBjb25z
dCB7IHJldHVybiAhIW1fdGV4dENvbnRleHQ7IH0KLSAgICBjb25zdCBPcHRpb25hbDxUZXh0Q29u
dGV4dD4mIHRleHRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q29udGV4dDsgfQogCiAg
ICAgLy8gRklYTUU6IEZpbmQgYSBiZXR0ZXIgcGxhY2UgZm9yIHJhbmRvbSBET00gdGhpbmdzLgog
ICAgIHZvaWQgc2V0Um93U3Bhbih1bnNpZ25lZCk7CkBAIC0xNzYsNyArMTc0LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0Q2FjaGVkRGlzcGxheUJveEZvckxheW91dFN0YXRlKExheW91dFN0YXRl
Jiwgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXk6OkJveD4pIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgQm94KE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiwgT3B0aW9uYWw8VGV4dENvbnRleHQ+
LCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKKyAgICBCb3goT3B0aW9uYWw8RWxlbWVu
dEF0dHJpYnV0ZXM+LCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKIAogcHJpdmF0ZToK
ICAgICBjbGFzcyBCb3hSYXJlRGF0YSB7CkBAIC0yMDcsOCArMjA1LDYgQEAgcHJpdmF0ZToKICAg
ICBCb3gqIG1fcHJldmlvdXNTaWJsaW5nIHsgbnVsbHB0ciB9OwogICAgIEJveCogbV9uZXh0U2li
bGluZyB7IG51bGxwdHIgfTsKICAgICAKLSAgICBjb25zdCBPcHRpb25hbDxUZXh0Q29udGV4dD4g
bV90ZXh0Q29udGV4dDsKLQogICAgIC8vIEZpcnN0IExheW91dFN0YXRlIGdldHMgYSBkaXJlY3Qg
Y2FjaGUuCiAgICAgbXV0YWJsZSBXZWFrUHRyPExheW91dFN0YXRlPiBtX2NhY2hlZExheW91dFN0
YXRlOwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXk6OkJveD4gbV9jYWNoZWRE
aXNwbGF5Qm94Rm9yTGF5b3V0U3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcAppbmRleCAwZjUwNWYyNjE1YWZjNmQ1NTgz
YjQwNjdhNDZlZDAwNTM1MjA1NWI2Li5iMGNjODM0ZDMyYzk0ZDRmNjFlNzZiZGViZTZkNzY5ZTRk
OWNkOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xh
eW91dENvbnRhaW5lci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ29udGFpbmVyKTsKIAogQ29udGFpbmVyOjpDb250
YWluZXIoT3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+IGF0dHJpYnV0ZXMsIFJlbmRlclN0eWxl
JiYgc3R5bGUsIEJhc2VUeXBlRmxhZ3MgYmFzZVR5cGVGbGFncykKLSAgICA6IEJveChhdHRyaWJ1
dGVzLCB7IH0sIFdURk1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzIHwgQ29udGFpbmVyRmxhZykK
KyAgICA6IEJveChhdHRyaWJ1dGVzLCBXVEZNb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncyB8IENv
bnRhaW5lckZsYWcpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0SW5saW5lVGV4dEJveC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI4N2M0N2U2
MTYwOWFlNjgxZWRjYTExYmM3MTk2YTJhMjgwZTI4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guY3BwCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TGF5b3V0SW5saW5lVGV4dEJveC5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCisKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQgewor
CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW5saW5lVGV4dEJveCk7CisKK0lubGluZVRl
eHRCb3g6OklubGluZVRleHRCb3goU3RyaW5nIGNvbnRlbnQsIGJvb2wgY2FuVXNlU2ltcGxpZmll
ZENvbnRlbnRNZWFzdXJpbmcsIFJlbmRlclN0eWxlJiYgc3R5bGUpCisgICAgOiBCb3goeyB9LCBX
VEZNb3ZlKHN0eWxlKSwgQm94OjpJbmxpbmVUZXh0Qm94KQorICAgICwgbV9jb250ZW50KGNvbnRl
bnQpCisgICAgLCBtX2NhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKGNhblVzZVNpbXBs
aWZpZWRDb250ZW50TWVhc3VyaW5nKQoreworICAgIHNldElzQW5vbnltb3VzKCk7Cit9CisKK30K
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRJbmxpbmVUZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRJbmxpbmVUZXh0Qm94LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE2N2MzZjA4NzIxOWRlYTRlYjBh
YWE0YTE3MjI4ODIxMzU4OWQ3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guaApAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKKworI2luY2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgTGF5b3V0IHsKKworY2xh
c3MgSW5saW5lVGV4dEJveCA6IHB1YmxpYyBCb3ggeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoSW5saW5lVGV4dEJveCk7CitwdWJsaWM6CisgICAgSW5saW5lVGV4dEJveChTdHJpbmcsIGJv
b2wgY2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJpbmcsIFJlbmRlclN0eWxlJiYpOworICAg
IHZpcnR1YWwgfklubGluZVRleHRCb3goKSA9IGRlZmF1bHQ7CisKKyAgICBTdHJpbmcgY29udGVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudDsgfQorICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBub3QgYmUgYSBib3gncyBwcm9wZXJ0eS4KKyAgICBib29sIGNhblVzZVNpbXBsaWZpZWRDb250
ZW50TWVhc3VyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1l
YXN1cmluZzsgfQorCitwcml2YXRlOgorICAgIFN0cmluZyBtX2NvbnRlbnQ7CisgICAgYm9vbCBt
X2NhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nIHsgZmFsc2UgfTsKK307CisKK30KK30K
KworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfQk9YKElubGluZVRleHRCb3gsIGlzSW5s
aW5lVGV4dEJveCgpKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAppbmRleCBjMTQ2MjJlOTBjMzlmNzQz
MjQwOTFiMWVjZDY4MWZkNjkxOWI0NDQwLi5hNGMzMGYwYjQ2MjY2ZDQzNmEzMjUzZDQ2MTBkMTY1
OWI1YmU2MzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTGF5
b3V0Q29udGFpbmVyLmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgogI2luY2x1ZGUgIkxh
eW91dERlc2NlbmRhbnRJdGVyYXRvci5oIgorI2luY2x1ZGUgIkxheW91dElubGluZVRleHRCb3gu
aCIKICNpbmNsdWRlICJMYXlvdXRQaGFzZS5oIgogI2luY2x1ZGUgIkxheW91dFNpemUuaCIKICNp
bmNsdWRlICJMYXlvdXRTdGF0ZS5oIgpAQCAtMTUwLDkgKzE1MSw5IEBAIEJveCYgVHJlZUJ1aWxk
ZXI6OmNyZWF0ZUJveChPcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzPiBlbGVtZW50QXR0
cmlidXRlcywKICAgICByZXR1cm4gYm94OwogfQogCi1Cb3gmIFRyZWVCdWlsZGVyOjpjcmVhdGVU
ZXh0Qm94KFRleHRDb250ZXh0JiYgdGV4dENvbnRlbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCitC
b3gmIFRyZWVCdWlsZGVyOjpjcmVhdGVUZXh0Qm94KFN0cmluZyB0ZXh0LCBib29sIGNhblVzZVNp
bXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogewotICAgIGF1dG8g
bmV3Qm94ID0gbWFrZVVuaXF1ZTxCb3g+KFdURk1vdmUodGV4dENvbnRlbnQpLCBXVEZNb3ZlKHN0
eWxlKSk7CisgICAgYXV0byBuZXdCb3ggPSBtYWtlVW5pcXVlPElubGluZVRleHRCb3g+KHRleHQs
IGNhblVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBXVEZNb3ZlKHN0eWxlKSk7CiAgICAgYXV0
byYgYm94ID0gKm5ld0JveDsKICAgICBtX2xheW91dFRyZWVDb250ZW50LmFkZEJveChXVEZNb3Zl
KG5ld0JveCkpOwogICAgIHJldHVybiBib3g7CkBAIC0xOTEsMTIgKzE5MiwxMSBAQCBCb3gqIFRy
ZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRCb3goY29uc3QgQ29udGFpbmVyJiBwYXJlbnRDb250YWlu
ZXIsIGNvbnN0IFJlbmRlcgogICAgICAgICBhdXRvJiB0ZXh0UmVuZGVyZXIgPSBkb3duY2FzdDxS
ZW5kZXJUZXh0PihjaGlsZFJlbmRlcmVyKTsKICAgICAgICAgLy8gUmVuZGVyVGV4dDo6dGV4dCgp
IGhhcyBhbHJlYWR5IGFwcGxpZWQgdGV4dC10cmFuc2Zvcm0gYW5kIHRleHQtc2VjdXJpdHkgcHJv
cGVydGllcy4KICAgICAgICAgU3RyaW5nIHRleHQgPSB0ZXh0UmVuZGVyZXIudGV4dCgpOwotICAg
ICAgICBhdXRvIHRleHRDb250ZW50ID0gVGV4dENvbnRleHQgeyB0ZXh0LCBjYW5Vc2VTaW1wbGlm
aWVkVGV4dE1lYXN1cmluZyh0ZXh0LCBwYXJlbnRDb250YWluZXIuc3R5bGUoKS5mb250Q2FzY2Fk
ZSgpLCBwYXJlbnRDb250YWluZXIuc3R5bGUoKS5jb2xsYXBzZVdoaXRlU3BhY2UoKSkgfTsKKyAg
ICAgICAgYXV0byB1c2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZyA9IGNhblVzZVNpbXBsaWZpZWRU
ZXh0TWVhc3VyaW5nKHRleHQsIHBhcmVudENvbnRhaW5lci5zdHlsZSgpLmZvbnRDYXNjYWRlKCks
IHBhcmVudENvbnRhaW5lci5zdHlsZSgpLmNvbGxhcHNlV2hpdGVTcGFjZSgpKTsKICAgICAgICAg
aWYgKHBhcmVudENvbnRhaW5lci5zdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5s
aW5lKQotICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSAmY3JlYXRlVGV4dEJveChXVEZNb3Zl
KHRleHRDb250ZW50KSwgUmVuZGVyU3R5bGU6OmNsb25lKHBhcmVudENvbnRhaW5lci5zdHlsZSgp
KSk7CisgICAgICAgICAgICBjaGlsZExheW91dEJveCA9ICZjcmVhdGVUZXh0Qm94KHRleHQsIHVz
ZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZTo6Y2xvbmUocGFyZW50Q29udGFp
bmVyLnN0eWxlKCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gg
PSAmY3JlYXRlVGV4dEJveChXVEZNb3ZlKHRleHRDb250ZW50KSwgUmVuZGVyU3R5bGU6OmNyZWF0
ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkocGFyZW50Q29udGFpbmVyLnN0eWxlKCksIERpc3Bs
YXlUeXBlOjpJbmxpbmUpKTsKLSAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnNldElzQW5vbnltb3Vz
KCk7CisgICAgICAgICAgICBjaGlsZExheW91dEJveCA9ICZjcmVhdGVUZXh0Qm94KHRleHQsIHVz
ZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5
bGVXaXRoRGlzcGxheShwYXJlbnRDb250YWluZXIuc3R5bGUoKSwgRGlzcGxheVR5cGU6OklubGlu
ZSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8mIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVu
ZGVyRWxlbWVudD4oY2hpbGRSZW5kZXJlcik7CiAgICAgICAgIGF1dG8gZGlzcGxheVR5cGUgPSBy
ZW5kZXJlci5zdHlsZSgpLmRpc3BsYXkoKTsKQEAgLTQwNiw4ICs0MDYsOCBAQCBzdGF0aWMgdm9p
ZCBvdXRwdXRMYXlvdXRCb3goVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBCb3gmIGxheW91dEJv
eCwgY29uc3QgRGlzcAogICAgIGlmIChkaXNwbGF5Qm94KQogICAgICAgICBzdHJlYW0gPDwgIiBh
dCAoIiA8PCBkaXNwbGF5Qm94LT5sZWZ0KCkgPDwgIiwiIDw8IGRpc3BsYXlCb3gtPnRvcCgpIDw8
ICIpIHNpemUgIiA8PCBkaXNwbGF5Qm94LT53aWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5Qm94LT5o
ZWlnaHQoKTsKICAgICBzdHJlYW0gPDwgIiBsYXlvdXQgYm94LT4oIiA8PCAmbGF5b3V0Qm94IDw8
ICIpIjsKLSAgICBpZiAobGF5b3V0Qm94LmlzSW5saW5lTGV2ZWxCb3goKSAmJiBsYXlvdXRCb3gu
aXNBbm9ueW1vdXMoKSkKLSAgICAgICAgc3RyZWFtIDw8ICIgdGV4dCBjb250ZW50IFtcIiIgPDwg
bGF5b3V0Qm94LnRleHRDb250ZXh0KCktPmNvbnRlbnQudXRmOCgpLmRhdGEoKSA8PCAiXCJdIjsK
KyAgICBpZiAoaXM8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94KSkKKyAgICAgICAgc3RyZWFtIDw8
ICIgdGV4dCBjb250ZW50IFtcIiIgPDwgZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94
KS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSA8PCAiXCJdIjsKIAogICAgIHN0cmVhbS5uZXh0TGlu
ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0VHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dFRyZWVCdWlsZGVyLmgKaW5kZXggMTkzM2EwNDE2Mzg3NmMxNTY1Y2M3OGJjZTk0NzkxNDIwZTg4
MGE5MC4uMzg1ZDcyMDM4MzY0Mzg4MTU0N2FhNjMzZmFmYjE3ZWNiMzQzYTc0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5o
CkBAIC05MSw3ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgQm94KiBjcmVhdGVMYXlvdXRCb3goY29u
c3QgQ29udGFpbmVyJiBwYXJlbnRDb250YWluZXIsIGNvbnN0IFJlbmRlck9iamVjdCYgY2hpbGRS
ZW5kZXJlcik7CiAKICAgICBCb3gmIGNyZWF0ZUJveChPcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRy
aWJ1dGVzPiwgUmVuZGVyU3R5bGUmJik7Ci0gICAgQm94JiBjcmVhdGVUZXh0Qm94KFRleHRDb250
ZXh0JiYsIFJlbmRlclN0eWxlJiYpOworICAgIEJveCYgY3JlYXRlVGV4dEJveChTdHJpbmcgdGV4
dCwgYm9vbCBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgUmVuZGVyU3R5bGUmJik7CiAg
ICAgQ29udGFpbmVyJiBjcmVhdGVDb250YWluZXIoT3B0aW9uYWw8Qm94OjpFbGVtZW50QXR0cmli
dXRlcz4sIFJlbmRlclN0eWxlJiYpOwogCiAgICAgTGF5b3V0VHJlZUNvbnRlbnQmIG1fbGF5b3V0
VHJlZUNvbnRlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9UZXh0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvVGV4dENv
bnRleHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmExYWJkYTBmNWQ4Njg5MWQy
NGQ4ZWI1NzgwYThlYjhjMTFiNjA5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29udGV4
dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFj
ZSBMYXlvdXQgewotCi1zdHJ1Y3QgVGV4dENvbnRleHQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIFN0cmluZyBjb250ZW50OwotICAgIGJvb2wgY2FuVXNlU2lt
cGxpZmllZENvbnRlbnRNZWFzdXJpbmcgeyBmYWxzZSB9OwotfTsKLQotfQotfQotI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390343</attachid>
            <date>2020-02-10 20:57:15 -0800</date>
            <delta_ts>2020-02-10 21:24:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207530-20200210205715.patch</filename>
            <type>text/plain</type>
            <size>53204</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRkY2Q3YWUwYTc4Nzc1
OWQ5MDA2MWNlZDM1NmJjYWYwMGNjMWE3MS4uMTc0ZWRhMjE4ZDk0ZmE3MzhkM2I0MjMwMjAzOGY4
MzE1NzM1MDg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTAyLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW50cm9kdWNlIExh
eW91dDo6SW5saW5lVGV4dEJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA3NTMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTMzNjAyMD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBBbnkgdGV4dCB0
aGF0IGlzIGRpcmVjdGx5IGNvbnRhaW5lZCBpbnNpZGUgYSBibG9jayBjb250YWluZXIgZWxlbWVu
dCAobm90IGluc2lkZSBhbiBpbmxpbmUgZWxlbWVudCkgbXVzdCBiZSB0cmVhdGVkIGFzIGFuIGFu
b255bW91cyBpbmxpbmUgZWxlbWVudC4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIGxheW91dC9WZXJpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0Ojpj
aGVja0Zvck1hdGNoaW5nVGV4dFJ1bnMpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbGxlY3RJbmxpbmVDb250ZW50SWZOZWVkZWQp
OgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OnRyeUJyZWFraW5nVGV4
dFJ1biBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjptX3RleHRDb250ZXh0KToK
KyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVTb2Z0TGluZUJyZWFrSXRl
bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbTo6
Y3JlYXRlU29mdExpbmVCcmVha0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVTb2Z0TGluZUJyZWFrSXRlbTo6SW5saW5lU29mdExpbmVCcmVha0l0ZW0pOgorICAgICAgICAq
IGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjppc0VtcHR5Q29udGVu
dCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0
ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmlubGluZVRl
eHRCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6
Y3JlYXRlV2hpdGVzcGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVU
ZXh0SXRlbTo6Y3JlYXRlTm9uV2hpdGVzcGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1wdHlJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6cmlnaHQgY29uc3QpOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6ZW5kc1dpdGhTb2Z0V3JhcE9wcG9ydHVuaXR5KToKKyAgICAgICAgKiBsYXlv
dXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6VGV4dFV0aWw6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGV4
dFV0aWw6OnNwbGl0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1Rl
eHRVdGlsLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
Qm94VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94VHJl
ZTo6YnVpbGRUcmVlKToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OkJveCk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5saW5lVGV4dEJveCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6aGFzVGV4dENvbnRlbnQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnRleHRDb250ZXh0IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpDb250YWluZXI6OkNvbnRhaW5lcik6CisgICAgICAgICgpOiBE
ZWxldGVkLgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3gu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29u
dGV4dC5oLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0Qm94OjpJbmxpbmVU
ZXh0Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bV9jYW5Vc2VTaW1wbGlmaWVkQ29u
dGVudE1lYXN1cmluZyk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5saW5l
VGV4dEJveC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
VGV4dENvbnRleHQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEJveDo6
Y29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRCb3g6
OmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nIGNvbnN0KToKKyAgICAgICAgKiBsYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVUZXh0Qm94KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6Om91dHB1dExheW91dEJveCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0VHJlZUJ1aWxkZXIuaDoKKwogMjAyMC0wMi0xMCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRqdXN0IHRoZSBtaW5vciB2ZXJzaW9uIG51bWJlciBmb3Ig
dGhlIGRlc2t0b3AgdXNlciBhZ2VudCBzdHJpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAxNjNi
MjI5ZWExZDY4NTQ0NzA5YzU0NDhlYTE2YWRlN2VkNmE5YjdiLi5hNmZmZGZiOTdiMjFlY2M5OGIy
YWY5ZjIzNmI2YjI2ZDc5ZWIyYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTY4Niw3ICs2ODYs
NiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBsYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRCb3guaAogICAgIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxh
Y2VkLmgKLSAgICBsYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29udGV4dC5oCiAKICAgICBsb2FkZXIv
QWRDbGlja0F0dHJpYnV0aW9uLmgKICAgICBsb2FkZXIvQ2FudmFzQWN0aXZpdHlSZWNvcmQuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA3NmU5ZTFmMzNjOTk1N2VjNTliYzc3MjIzOThlMDZhZWU1YmY2MjBh
Li5lYjM1M2MwNTc2ODI5NDU3N2JkNjNjMTZjMWQzNTc3ZTkwMzUwZmM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTQ1MSw2ICsxNDUxLDcgQEAgbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25D
b250ZXh0LmNwcAogbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0ZS5jcHAKIGxh
eW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dENv
bnRhaW5lci5jcHAKK2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guY3BwCiBs
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xh
eW91dFRyZWVCdWlsZGVyLmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRp
bmdDb250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDc3MmQ2NjhkZTc3MWNiZDIyMzFmMjIwZDJjMjk0MDk2NDc3Mzk1
YTkuLjZjYjc1MTk2YjliNDUwMzYwOGFhOTE2NTdhYmIyYWJjOGMyZTk4NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3OSw3
ICszNzksNiBAQAogCQkxMTMxMENGNjIwQkE0QTU2MDA2NUE4RDAgLyogTGF5b3V0Q2hpbGRJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEx
MDBGQzkyMDkyN0NCQzAwODFBQTZDIC8qIExheW91dENoaWxkSXRlcmF0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTMxMENGNzIwQkE0QTYy
MDA2NUE4RDAgLyogTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTExMDBGQ0EyMDkyODY4RDAwODFBQTZDIC8qIExh
eW91dEFuY2VzdG9ySXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxMTM0MDlEQTIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1
aWxkZXJDb250aW51YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExMzQwOUQ4MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNv
bnRpbnVhdGlvbi5oICovOyB9OwotCQkxMTNBM0NCNDIzODU4NjAxMDBBRTNFQ0UgLyogVGV4dENv
bnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEx
M0EzQ0IyMjM4NTg2MDAwMEFFM0VDRSAvKiBUZXh0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExM0QwQjUyMUY5RkREMkIwMEY2MTFC
QiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxMTNEMEI1MDFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3
TGF5b3V0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTExNUNGQTZBMjA4QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE1Q0ZBNjgy
MDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTE1Q0ZBNkUyMDhBRkFCNzAwMUU2OTkx
IC8qIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDExNUNGQTZDMjA4QUZBQjYwMDFFNjk5MSAvKiBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTIwNTAsNiArMjA0OSw3IEBACiAJCTZFRDg3OEM1MTQ3NDkzRjQwMDRDMzU5NyAv
KiBSZW5kZXJUYWJsZUNhcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFRDg3OEMzMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRp
b24uaCAqLzsgfTsKIAkJNkVEOEMzN0ExODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4QzM3ODE4M0JG
RjhDMDA5RTUzQkQgLyogQm94U2hhcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2RUU4QTc3MzEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RUU4QTc3MTEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmggKi87IH07CisJCTZGMEI5OEI1MjNGMjY4RUMwMEVFQzJGMiAvKiBMYXlvdXRJbmxpbmVU
ZXh0Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RjBCOThCMzIzRjI2OEVCMDBFRUMyRjIgLyogTGF5b3V0SW5saW5lVGV4dEJveC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGMENENjk1MjI5RUQz
MjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGlu
ZUxpbmVCdWlsZGVyLmggKi87IH07CiAJCTZGMUNDMURFMjI1RjhCNDkwMDcyMEFEMiAvKiBJbmxp
bmVUZXh0SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkYxQ0MxREQyMjVGOEI0MjAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkYyNkJCNkMyMzM0M0U2
RjAwMkYyQkVBIC8qIExheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZGMjZCQjZCMjMzNDNFNUIwMDJGMkJFQSAvKiBMYXlvdXRDb250
ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTU5MTUsNyArNTkxNSw2IEBACiAJCTExMkZCMzUwMjM5QzIzQzQwMDg3MDU0QSAvKiBEaXNwbGF5
SW5saW5lUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5SW5s
aW5lUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTM0MDlENzIwM0UwMzgw
MDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxMTM0MDlEODIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1
aWxkZXJDb250aW51YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJDb250
aW51YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTEzQTNDQjIyMzg1ODYw
MDAwQUUzRUNFIC8qIFRleHRDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRleHRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExM0QwQjRG
MUY5RkREMkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZyYW1lVmlld0xheW91dENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxMTNEMEI1MDFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3TGF5b3V0Q29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVZpZXdMYXlvdXRDb250ZXh0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExNUNBODMwMjMzMjhCMUUwMEZEM0IwOCAvKiBMYXlvdXRV
bml0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRVbml0cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC05Mjk0LDYgKzkyOTMsOCBAQAogCQk2RUU4QTc3MDEwRjgwM0Yz
MDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRThBNzcxMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dl
YkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZGMDgzMERGMjBCNDY5NTEwMDhBOTQ1QiAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkYwQjk4QjMyM0YyNjhFQjAwRUVD
MkYyIC8qIExheW91dElubGluZVRleHRCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGF5b3V0SW5saW5lVGV4dEJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk2RjBCOThCNjIzRjI2OTA2MDBFRUMyRjIgLyogTGF5b3V0SW5saW5lVGV4dEJveC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMYXlvdXRJbmxpbmVUZXh0Qm94LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkYwQ0Q2OTIyMjlFRDMxOTAwQzU5OTRFIC8qIElubGluZUxpbmVCdWls
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUxpbmVCdWlsZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGlu
ZUxpbmVCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUxp
bmVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGMTBCMDg2MjJCODU2
OEQwMDkwRTY5QyAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNjc0MywxMiArMTY3NDQsMTMgQEAKIAkJCQkxMTk5RkE0NTIw
OEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29udGFpbmVyLmNwcCAqLywKIAkJCQkxMTk5RkE0NDIw
OEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29udGFpbmVyLmggKi8sCiAJCQkJMTFCMDQyRkIyMEIw
RTIxNDAwODI4QTZCIC8qIExheW91dERlc2NlbmRhbnRJdGVyYXRvci5oICovLAorCQkJCTZGMEI5
OEI2MjNGMjY5MDYwMEVFQzJGMiAvKiBMYXlvdXRJbmxpbmVUZXh0Qm94LmNwcCAqLywKKwkJCQk2
RjBCOThCMzIzRjI2OEVCMDBFRUMyRjIgLyogTGF5b3V0SW5saW5lVGV4dEJveC5oICovLAogCQkJ
CTExMTAwRkM3MjA5Mjc2NEMwMDgxQUE2QyAvKiBMYXlvdXRJdGVyYXRvci5oICovLAogCQkJCTEx
MUM2MTU3MjBBRDFBRTEwMDVCODJGQSAvKiBMYXlvdXRSZXBsYWNlZC5jcHAgKi8sCiAJCQkJMTEx
QzYxNTYyMEFEMUFFMTAwNUI4MkZBIC8qIExheW91dFJlcGxhY2VkLmggKi8sCiAJCQkJMTExMDBG
RDUyMDk1MTRERTAwODFBQTZDIC8qIExheW91dFRyZWVCdWlsZGVyLmNwcCAqLywKIAkJCQkxMTEw
MEZENzIwOTUxNERGMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxkZXIuaCAqLywKLQkJCQkxMTNB
M0NCMjIzODU4NjAwMDBBRTNFQ0UgLyogVGV4dENvbnRleHQuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gbGF5b3V0dHJlZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTMwMSw2ICsz
MTMwMyw3IEBACiAJCQkJMTE5OUZBNDYyMDhFMzVBMzAwMjM1OENDIC8qIExheW91dENvbnRhaW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkJCNkMyMzM0M0U2RjAwMkYyQkVBIC8qIExheW91
dENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTExMzEwQ0Y1MjBCQTRBNEMwMDY1QThEMCAv
KiBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGMEI5OEI1
MjNGMjY4RUMwMEVFQzJGMiAvKiBMYXlvdXRJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDE4MDI1NTIzRDQ1NDlCMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGNDIwQkE0
QTNEMDA2NUE4RDAgLyogTGF5b3V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzI2OTgs
NyArMzI3MDEsNiBAQAogCQkJCUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNV
c2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIwRDAwNkMxRDAwRUY2RjI2
IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQzQ0I4MjEyRjI1RTUx
MDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTEzQTNDQjQy
Mzg1ODYwMTAwQUUzRUNFIC8qIFRleHRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDJC
OTdDQTEzMTM4OTQzMDA4QkVGNEIgLyogVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1ODJERTMyNTFDMzBDODU0MDBCRTAyQTggLyogVGV4dERlY29yYXRpb25Q
YWludGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzczQTcxNTIxODU3NTg3MDA0Q0NFQTUgLyog
VGV4dERlY29yYXRpb25UaGlja25lc3MuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvVmVyaWZpY2F0aW9uLmNwcAppbmRleCA0NGYzY2M3MDFkYzg4NDZiZDFiNjcyNGE0ZjJiMjc4
Y2JmOTgwZTgwLi41MzQxZTNjZjUzZDlhY2JmZTg0ODU4YjVkMzEwN2FhYjM1YTg3NzVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHN0
YXRpYyBib29sIGNoZWNrRm9yTWF0Y2hpbmdOb25UZXh0UnVucyhjb25zdCBEaXNwbGF5OjpSdW4m
IGlubGluZVJ1biwgY29uc3QgV2ViCiB9CiAKIAotc3RhdGljIGJvb2wgY2hlY2tGb3JNYXRjaGlu
Z1RleHRSdW5zKGNvbnN0IERpc3BsYXk6OlJ1biYgaW5saW5lUnVuLCBjb25zdCBJbmxpbmVUZXh0
Qm94JiBpbmxpbmVUZXh0Qm94KQorc3RhdGljIGJvb2wgY2hlY2tGb3JNYXRjaGluZ1RleHRSdW5z
KGNvbnN0IERpc3BsYXk6OlJ1biYgaW5saW5lUnVuLCBjb25zdCBXZWJDb3JlOjpJbmxpbmVUZXh0
Qm94JiBpbmxpbmVUZXh0Qm94KQogewogICAgIHJldHVybiBhcmVFc3NlbnRpYWxseUVxdWFsKGlu
bGluZVRleHRCb3gubGVmdCgpLCBpbmxpbmVSdW4ubGVmdCgpKQogICAgICAgICAmJiBhcmVFc3Nl
bnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gucmlnaHQoKSwgaW5saW5lUnVuLnJpZ2h0KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNTJjNzZlYjk0NjQ5YWJkNGE2
MGZkY2NhOWVmZTEzMjQ4YzA2YmY3Yy4uZDdlYWJjOWYxOTU2ZWIzNjAwOTVlODIzYWI2ZTE3MTUw
ZTBhYzY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5l
ci5oIgogI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNpbmNsdWRlICJMYXlvdXRJbmxpbmVU
ZXh0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpAQCAtMzM4LDggKzMzOSw4IEBA
IHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbGxlY3RJbmxpbmVDb250ZW50SWZOZWVk
ZWQoKQogICAgICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxC
b3goKSkKICAgICAgICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkSW5saW5lSXRlbSh7IGxh
eW91dEJveCwgSW5saW5lSXRlbTo6VHlwZTo6Qm94IH0pOwogICAgICAgICAgICAgZWxzZSBpZiAo
bGF5b3V0Qm94LmlzQW5vbnltb3VzKCkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQobGF5b3V0
Qm94Lmhhc1RleHRDb250ZW50KCkpOwotICAgICAgICAgICAgICAgIElubGluZVRleHRJdGVtOjpj
cmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoZm9ybWF0dGluZ1N0YXRlLmlubGluZUl0ZW1zKCksIGxh
eW91dEJveCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGxheW91dEJveC5pc0lubGluZVRleHRC
b3goKSk7CisgICAgICAgICAgICAgICAgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRl
eHRJdGVtcyhmb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKSwgZG93bmNhc3Q8SW5saW5lVGV4
dEJveD4obGF5b3V0Qm94KSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGxheW91dEJveC5pc0lu
bGluZUJveCgpKQogICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVJdGVt
KHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpDb250YWluZXJFbmQgfSk7CiAgICAgICAg
ICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKaW5kZXggNjM1YzJlMDM0ZjcxYzQyNjlm
ZjFkYTBjN2RmZmQ3NmJkNWM0ZWVmNi4uZDRjMDA0Y2JmMWEwYTI1YmVkZWVjMzE5YjI5ODQ1MTVk
OWZkZjQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIE9w
dGlvbmFsPExpbmVCcmVha2VyOjpQYXJ0aWFsUnVuPiBMaW5lQnJlYWtlcjo6dHJ5QnJlYWtpbmdU
ZXh0UnVuKGNvbnN0IFJ1biYgb3ZlCiAgICAgICAgICAgICByZXR1cm4gUGFydGlhbFJ1biB7IGlu
bGluZVRleHRJdGVtLmxlbmd0aCgpLCBvdmVyZmxvd1J1bi5sb2dpY2FsV2lkdGgsIGZhbHNlIH07
CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IFBhc3MgaW4gdGhlIGNvbnRlbnQgbG9naWNh
bCBsZWZ0IHRvIGJlIGFibGUgdG8gbWVhc3VyZSB0YWJzLgotICAgICAgICBhdXRvIHNwbGl0RGF0
YSA9IFRleHRVdGlsOjpzcGxpdChpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSwgaW5saW5lVGV4
dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCksIG92ZXJmbG93UnVuLmxvZ2lj
YWxXaWR0aCwgYXZhaWxhYmxlV2lkdGgsIHsgfSk7CisgICAgICAgIGF1dG8gc3BsaXREYXRhID0g
VGV4dFV0aWw6OnNwbGl0KGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgaW5saW5lVGV4
dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCksIG92ZXJmbG93UnVuLmxvZ2lj
YWxXaWR0aCwgYXZhaWxhYmxlV2lkdGgsIHsgfSk7CiAgICAgICAgIHJldHVybiBQYXJ0aWFsUnVu
IHsgc3BsaXREYXRhLmxlbmd0aCwgc3BsaXREYXRhLmxvZ2ljYWxXaWR0aCwgZmFsc2UgfTsKICAg
ICB9CiAKQEAgLTMzNiwxNCArMzM2LDEzIEBAIE9wdGlvbmFsPExpbmVCcmVha2VyOjpQYXJ0aWFs
UnVuPiBMaW5lQnJlYWtlcjo6dHJ5QnJlYWtpbmdUZXh0UnVuKGNvbnN0IFJ1biYgb3ZlCiAgICAg
ICAgICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoRXhjbHVkaW5nSHlwaGVuID0gYXZhaWxhYmxlV2lk
dGggLSBoeXBoZW5XaWR0aDsKICAgICAgICAgICAgIGlmIChhdmFpbGFibGVXaWR0aEV4Y2x1ZGlu
Z0h5cGhlbiA8PSAwIHx8ICFlbm91Z2hXaWR0aEZvckh5cGhlbmF0aW9uKGF2YWlsYWJsZVdpZHRo
RXhjbHVkaW5nSHlwaGVuLCBmb250Q2FzY2FkZS5waXhlbFNpemUoKSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICAgICAgICAgIGxlZnRTaWRlTGVuZ3RoID0gVGV4dFV0aWw6OnNw
bGl0KGlubGluZVRleHRJdGVtLmxheW91dEJveCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBy
dW5MZW5ndGgsIG92ZXJmbG93UnVuLmxvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlV2lkdGhFeGNsdWRp
bmdIeXBoZW4sIHsgfSkubGVuZ3RoOworICAgICAgICAgICAgbGVmdFNpZGVMZW5ndGggPSBUZXh0
VXRpbDo6c3BsaXQoaW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpLCBpbmxpbmVUZXh0SXRl
bS5zdGFydCgpLCBydW5MZW5ndGgsIG92ZXJmbG93UnVuLmxvZ2ljYWxXaWR0aCwgYXZhaWxhYmxl
V2lkdGhFeGNsdWRpbmdIeXBoZW4sIHsgfSkubGVuZ3RoOwogICAgICAgICB9CiAgICAgICAgIGlm
IChsZWZ0U2lkZUxlbmd0aCA8IGxpbWl0QmVmb3JlKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsK
LSAgICAgICAgYXV0byB0ZXh0Q29udGVudCA9IGlubGluZVRleHRJdGVtLmxheW91dEJveCgpLnRl
eHRDb250ZXh0KCktPmNvbnRlbnQ7CiAgICAgICAgIC8vIEFkanVzdCBiZWZvcmUgaW5kZXggdG8g
YWNjb21tb2RhdGUgdGhlIGxpbWl0LWFmdGVyIHZhbHVlIChpdCdzIHRoZSBsYXN0IHBvdGVudGlh
bCBoeXBoZW4gbG9jYXRpb24gaW4gdGhpcyBydW4pLgogICAgICAgICBhdXRvIGh5cGhlbkJlZm9y
ZSA9IHN0ZDo6bWluKGxlZnRTaWRlTGVuZ3RoLCBydW5MZW5ndGggLSBsaW1pdEFmdGVyKSArIDE7
Ci0gICAgICAgIHVuc2lnbmVkIGh5cGhlbkxvY2F0aW9uID0gbGFzdEh5cGhlbkxvY2F0aW9uKFN0
cmluZ1ZpZXcodGV4dENvbnRlbnQpLnN1YnN0cmluZyhpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBp
bmxpbmVUZXh0SXRlbS5sZW5ndGgoKSksIGh5cGhlbkJlZm9yZSwgc3R5bGUubG9jYWxlKCkpOwor
ICAgICAgICB1bnNpZ25lZCBoeXBoZW5Mb2NhdGlvbiA9IGxhc3RIeXBoZW5Mb2NhdGlvbihTdHJp
bmdWaWV3KGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKS5jb250ZW50KCkpLnN1YnN0cmlu
ZyhpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSksIGh5cGhl
bkJlZm9yZSwgc3R5bGUubG9jYWxlKCkpOwogICAgICAgICBpZiAoIWh5cGhlbkxvY2F0aW9uIHx8
IGh5cGhlbkxvY2F0aW9uIDwgbGltaXRCZWZvcmUpCiAgICAgICAgICAgICByZXR1cm4geyB9Owog
ICAgICAgICAvLyBoeXBoZW5Mb2NhdGlvbiBpcyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhp
cyBJbmxpbmVJdGVtVGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCBmMjRkMDIzZTRk
MjFhYTU5NjRjNjk4ODdmMWVjYjQwNmZmZDZkMzQxLi5jY2NmOGJiNGFjNTlkNjMyNDNkOWNhYzc2
ZWM4MDlkZTM4ZjIwMTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC03NTAsNyArNzUw
LDcgQEAgTGluZUJ1aWxkZXI6OlJ1bjo6UnVuKGNvbnN0IElubGluZVNvZnRMaW5lQnJlYWtJdGVt
JiBzb2Z0TGluZUJyZWFrSXRlbSwgSW5saW5lTGEKICAgICA6IG1fdHlwZShzb2Z0TGluZUJyZWFr
SXRlbS50eXBlKCkpCiAgICAgLCBtX2xheW91dEJveCgmc29mdExpbmVCcmVha0l0ZW0ubGF5b3V0
Qm94KCkpCiAgICAgLCBtX2xvZ2ljYWxSZWN0KHsgMCwgbG9naWNhbExlZnQsIDAsIDAgfSkKLSAg
ICAsIG1fdGV4dENvbnRleHQoeyBzb2Z0TGluZUJyZWFrSXRlbS5wb3NpdGlvbigpLCAxLCBzb2Z0
TGluZUJyZWFrSXRlbS5sYXlvdXRCb3goKS50ZXh0Q29udGV4dCgpLT5jb250ZW50IH0pCisgICAg
LCBtX3RleHRDb250ZXh0KHsgc29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSwgeyB9IH0p
CiB7CiB9CiAKQEAgLTc1OSw3ICs3NTksNyBAQCBMaW5lQnVpbGRlcjo6UnVuOjpSdW4oY29uc3Qg
SW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGxvZwogICAg
ICwgbV9sYXlvdXRCb3goJmlubGluZVRleHRJdGVtLmxheW91dEJveCgpKQogICAgICwgbV9sb2dp
Y2FsUmVjdCh7IDAsIGxvZ2ljYWxMZWZ0LCBsb2dpY2FsV2lkdGgsIDAgfSkKICAgICAsIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlVHlwZSh0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGlubGluZVRleHRJdGVt
KSkKLSAgICAsIG1fdGV4dENvbnRleHQoeyBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBtX3RyYWls
aW5nV2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDog
aW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCksIGlubGluZVRleHRJdGVtLmxheW91dEJveCgpLnRleHRD
b250ZXh0KCktPmNvbnRlbnQgfSkKKyAgICAsIG1fdGV4dENvbnRleHQoeyBpbmxpbmVUZXh0SXRl
bS5zdGFydCgpLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNl
OjpDb2xsYXBzZWQgPyAxIDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCksIGlubGluZVRleHRJdGVt
LmlubGluZVRleHRCb3goKS5jb250ZW50KCkgfSkKIHsKICAgICBpZiAobV90cmFpbGluZ1doaXRl
c3BhY2VUeXBlICE9IFRyYWlsaW5nV2hpdGVzcGFjZTo6Tm9uZSkgewogICAgICAgICBtX3RyYWls
aW5nV2hpdGVzcGFjZVdpZHRoID0gbG9naWNhbFdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lU29mdExpbmVCcmVha0l0ZW0uaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVNvZnRMaW5lQnJl
YWtJdGVtLmgKaW5kZXggZjZkMmMwZGJjMGI4ZDAxNDlkYzlmYzMwMTBmNWRmMDhmMWJhZDJlNS4u
OWYzOTY1MmE3NGI2ZDRiNmI4YmIwZmNmYWQyNTgwNWQwZTEwOWE0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lU29mdExpbmVCcmVha0l0
ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVT
b2Z0TGluZUJyZWFrSXRlbS5oCkBAIC0zNCwyMCArMzQsMjAgQEAgbmFtZXNwYWNlIExheW91dCB7
CiAKIGNsYXNzIElubGluZVNvZnRMaW5lQnJlYWtJdGVtIDogcHVibGljIElubGluZUl0ZW0gewog
cHVibGljOgotICAgIHN0YXRpYyBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSBjcmVhdGVTb2Z0TGlu
ZUJyZWFrSXRlbShjb25zdCBCb3gmLCB1bnNpZ25lZCBwb3NpdGlvbik7CisgICAgc3RhdGljIElu
bGluZVNvZnRMaW5lQnJlYWtJdGVtIGNyZWF0ZVNvZnRMaW5lQnJlYWtJdGVtKGNvbnN0IElubGlu
ZVRleHRCb3gmLCB1bnNpZ25lZCBwb3NpdGlvbik7CiAKICAgICB1bnNpZ25lZCBwb3NpdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRPclBvc2l0aW9uOyB9CiAKLSAgICBJbmxpbmVTb2Z0TGlu
ZUJyZWFrSXRlbShjb25zdCBCb3gmLCB1bnNpZ25lZCBwb3NpdGlvbik7CisgICAgSW5saW5lU29m
dExpbmVCcmVha0l0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIHVuc2lnbmVkIHBvc2l0aW9uKTsK
IH07CiAKLWlubGluZSBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSBJbmxpbmVTb2Z0TGluZUJyZWFr
SXRlbTo6Y3JlYXRlU29mdExpbmVCcmVha0l0ZW0oY29uc3QgQm94JiBpbmxpbmVCb3gsIHVuc2ln
bmVkIHBvc2l0aW9uKQoraW5saW5lIElubGluZVNvZnRMaW5lQnJlYWtJdGVtIElubGluZVNvZnRM
aW5lQnJlYWtJdGVtOjpjcmVhdGVTb2Z0TGluZUJyZWFrSXRlbShjb25zdCBJbmxpbmVUZXh0Qm94
JiBpbmxpbmVUZXh0Qm94LCB1bnNpZ25lZCBwb3NpdGlvbikKIHsKLSAgICByZXR1cm4geyBpbmxp
bmVCb3gsIHBvc2l0aW9uIH07CisgICAgcmV0dXJuIHsgaW5saW5lVGV4dEJveCwgcG9zaXRpb24g
fTsKIH0KIAotaW5saW5lIElubGluZVNvZnRMaW5lQnJlYWtJdGVtOjpJbmxpbmVTb2Z0TGluZUJy
ZWFrSXRlbShjb25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgcG9zaXRpb24pCi0gICAgOiBJ
bmxpbmVJdGVtKGlubGluZUJveCwgVHlwZTo6U29mdExpbmVCcmVhaykKK2lubGluZSBJbmxpbmVT
b2Z0TGluZUJyZWFrSXRlbTo6SW5saW5lU29mdExpbmVCcmVha0l0ZW0oY29uc3QgSW5saW5lVGV4
dEJveCYgaW5saW5lVGV4dEJveCwgdW5zaWduZWQgcG9zaXRpb24pCisgICAgOiBJbmxpbmVJdGVt
KGlubGluZVRleHRCb3gsIFR5cGU6OlNvZnRMaW5lQnJlYWspCiB7CiAgICAgbV9zdGFydE9yUG9z
aXRpb24gPSBwb3NpdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAppbmRleCAxY2QzM2JhZDM4M2E1
NmNiYzBkMDIyMjRhMDIxOGUxYWMzOWY4MDI1Li44Zjc4MWFkNjNkNmFkZTA0ODM3Nzg4YWNlMjAw
Mjk4YTcyMzhhYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVUZXh0SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwCkBAIC02NSwyMiArNjUsMjEgQEAgc3Rh
dGljIHVuc2lnbmVkIG1vdmVUb05leHRCcmVha2FibGVQb3NpdGlvbih1bnNpZ25lZCBzdGFydFBv
c2l0aW9uLCBMYXp5TGluZUJyZWEKICAgICByZXR1cm4gdGV4dExlbmd0aCAtIHN0YXJ0UG9zaXRp
b247CiB9CiAKLXZvaWQgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyhJ
bmxpbmVJdGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QgQm94JiBpbmxpbmVCb3gpCit2b2lkIElu
bGluZVRleHRJdGVtOjpjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmIGlubGlu
ZUNvbnRlbnQsIGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gpCiB7Ci0gICAgYXV0
byYgdGV4dENvbnRleHQgPSAqaW5saW5lQm94LnRleHRDb250ZXh0KCk7Ci0gICAgYXV0byB0ZXh0
ID0gdGV4dENvbnRleHQuY29udGVudDsKKyAgICBhdXRvIHRleHQgPSBpbmxpbmVUZXh0Qm94LmNv
bnRlbnQoKTsKICAgICBpZiAoIXRleHQubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBpbmxpbmVD
b250ZW50LmFwcGVuZChJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1wdHlJdGVtKGlubGluZUJveCkp
OworICAgICAgICByZXR1cm4gaW5saW5lQ29udGVudC5hcHBlbmQoSW5saW5lVGV4dEl0ZW06OmNy
ZWF0ZUVtcHR5SXRlbShpbmxpbmVUZXh0Qm94KSk7CiAKLSAgICBhdXRvJiBzdHlsZSA9IGlubGlu
ZUJveC5zdHlsZSgpOworICAgIGF1dG8mIHN0eWxlID0gaW5saW5lVGV4dEJveC5zdHlsZSgpOwog
ICAgIGF1dG8mIGZvbnQgPSBzdHlsZS5mb250Q2FzY2FkZSgpOwogICAgIExhenlMaW5lQnJlYWtJ
dGVyYXRvciBsaW5lQnJlYWtJdGVyYXRvcih0ZXh0KTsKICAgICB1bnNpZ25lZCBjdXJyZW50UG9z
aXRpb24gPSAwOwogCiAgICAgYXV0byBpbmxpbmVJdGVtV2lkdGggPSBbJl0oYXV0byBzdGFydFBv
c2l0aW9uLCBhdXRvIGxlbmd0aCkgLT4gT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gewotICAg
ICAgICBpZiAoIXRleHRDb250ZXh0LmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKQor
ICAgICAgICBpZiAoIWlubGluZVRleHRCb3guY2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJp
bmcoKSkKICAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIHJldHVybiBUZXh0VXRpbDo6
d2lkdGgoaW5saW5lQm94LCBzdGFydFBvc2l0aW9uLCBzdGFydFBvc2l0aW9uICsgbGVuZ3RoKTsK
KyAgICAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0Qm94LCBzdGFydFBvc2l0
aW9uLCBzdGFydFBvc2l0aW9uICsgbGVuZ3RoKTsKICAgICB9OwogCiAgICAgd2hpbGUgKGN1cnJl
bnRQb3NpdGlvbiA8IHRleHQubGVuZ3RoKCkpIHsKQEAgLTkwLDE2ICs4OSwxNiBAQCB2b2lkIElu
bGluZVRleHRJdGVtOjpjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmIGlubGlu
ZUNvbnRlbnQsIGNvbnN0CiAKICAgICAgICAgLy8gU2VnbWVudCBicmVha3Mgd2l0aCBwcmVzZXJ2
ZSBuZXcgbGluZSBzdHlsZSAod2hpdGUtc3BhY2U6IHByZSwgcHJlLXdyYXAsIGJyZWFrLXNwYWNl
cyBhbmQgcHJlLWxpbmUpIGNvbXB1dGUgdG8gZm9yY2VkIGxpbmUgYnJlYWsuCiAgICAgICAgIGlm
IChpc1NlZ21lbnRCcmVha0NhbmRpZGF0ZSh0ZXh0W2N1cnJlbnRQb3NpdGlvbl0pICYmIHN0eWxl
LnByZXNlcnZlTmV3bGluZSgpKSB7Ci0gICAgICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVuZChJ
bmxpbmVTb2Z0TGluZUJyZWFrSXRlbTo6Y3JlYXRlU29mdExpbmVCcmVha0l0ZW0oaW5saW5lQm94
LCBjdXJyZW50UG9zaXRpb24pKTsKKyAgICAgICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5kKElu
bGluZVNvZnRMaW5lQnJlYWtJdGVtOjpjcmVhdGVTb2Z0TGluZUJyZWFrSXRlbShpbmxpbmVUZXh0
Qm94LCBjdXJyZW50UG9zaXRpb24pKTsKICAgICAgICAgICAgICsrY3VycmVudFBvc2l0aW9uOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoaXNXaGl0ZXNw
YWNlQ2hhcmFjdGVyKHRleHRbY3VycmVudFBvc2l0aW9uXSwgc3R5bGUucHJlc2VydmVOZXdsaW5l
KCkpKSB7CiAgICAgICAgICAgICBhdXRvIGFwcGVuZFdoaXRlc3BhY2VJdGVtID0gWyZdIChhdXRv
IHN0YXJ0UG9zaXRpb24sIGF1dG8gaXRlbUxlbmd0aCkgewotICAgICAgICAgICAgICAgIGF1dG8g
c2ltcGxlU2luZ2xlV2hpdGVzcGFjZUNvbnRlbnQgPSB0ZXh0Q29udGV4dC5jYW5Vc2VTaW1wbGlm
aWVkQ29udGVudE1lYXN1cmluZyAmJiAoaXRlbUxlbmd0aCA9PSAxIHx8IHN0eWxlLmNvbGxhcHNl
V2hpdGVTcGFjZSgpKTsKKyAgICAgICAgICAgICAgICBhdXRvIHNpbXBsZVNpbmdsZVdoaXRlc3Bh
Y2VDb250ZW50ID0gaW5saW5lVGV4dEJveC5jYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmlu
ZygpICYmIChpdGVtTGVuZ3RoID09IDEgfHwgc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCkpOwog
ICAgICAgICAgICAgICAgIGF1dG8gd2lkdGggPSBzaW1wbGVTaW5nbGVXaGl0ZXNwYWNlQ29udGVu
dCA/IG1ha2VPcHRpb25hbChJbmxpbmVMYXlvdXRVbml0IHsgZm9udC5zcGFjZVdpZHRoKCkgfSkg
OiBpbmxpbmVJdGVtV2lkdGgoc3RhcnRQb3NpdGlvbiwgaXRlbUxlbmd0aCk7Ci0gICAgICAgICAg
ICAgICAgaW5saW5lQ29udGVudC5hcHBlbmQoSW5saW5lVGV4dEl0ZW06OmNyZWF0ZVdoaXRlc3Bh
Y2VJdGVtKGlubGluZUJveCwgc3RhcnRQb3NpdGlvbiwgaXRlbUxlbmd0aCwgd2lkdGgpKTsKKyAg
ICAgICAgICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVuZChJbmxpbmVUZXh0SXRlbTo6Y3JlYXRl
V2hpdGVzcGFjZUl0ZW0oaW5saW5lVGV4dEJveCwgc3RhcnRQb3NpdGlvbiwgaXRlbUxlbmd0aCwg
d2lkdGgpKTsKICAgICAgICAgICAgIH07CiAKICAgICAgICAgICAgIGF1dG8gbGVuZ3RoID0gbW92
ZVRvTmV4dE5vbldoaXRlc3BhY2VQb3NpdGlvbih0ZXh0LCBjdXJyZW50UG9zaXRpb24sIHN0eWxl
LnByZXNlcnZlTmV3bGluZSgpKTsKQEAgLTExNiw3ICsxMTUsNyBAQCB2b2lkIElubGluZVRleHRJ
dGVtOjpjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmIGlubGluZUNvbnRlbnQs
IGNvbnN0CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIGxlbmd0aCA9IG1vdmVUb05leHRCcmVh
a2FibGVQb3NpdGlvbihjdXJyZW50UG9zaXRpb24sIGxpbmVCcmVha0l0ZXJhdG9yLCBzdHlsZSk7
Ci0gICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5kKElubGluZVRleHRJdGVtOjpjcmVhdGVOb25X
aGl0ZXNwYWNlSXRlbShpbmxpbmVCb3gsIGN1cnJlbnRQb3NpdGlvbiwgbGVuZ3RoLCBpbmxpbmVJ
dGVtV2lkdGgoY3VycmVudFBvc2l0aW9uLCBsZW5ndGgpKSk7CisgICAgICAgIGlubGluZUNvbnRl
bnQuYXBwZW5kKElubGluZVRleHRJdGVtOjpjcmVhdGVOb25XaGl0ZXNwYWNlSXRlbShpbmxpbmVU
ZXh0Qm94LCBjdXJyZW50UG9zaXRpb24sIGxlbmd0aCwgaW5saW5lSXRlbVdpZHRoKGN1cnJlbnRQ
b3NpdGlvbiwgbGVuZ3RoKSkpOwogICAgICAgICBjdXJyZW50UG9zaXRpb24gKz0gbGVuZ3RoOwog
ICAgIH0KIH0KQEAgLTEyNCw3ICsxMjMsNyBAQCB2b2lkIElubGluZVRleHRJdGVtOjpjcmVhdGVB
bmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmIGlubGluZUNvbnRlbnQsIGNvbnN0CiBib29s
IElubGluZVRleHRJdGVtOjppc0VtcHR5Q29udGVudCgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBjaGVjayBmb3IgbW9yZSB6ZXJvIHdpZHRoIGNvbnRlbnQgYW5kIG5vdCBqdXN0
IFUrMjAwQi4KLSAgICByZXR1cm4gIW1fbGVuZ3RoIHx8IChtX2xlbmd0aCA9PSAxICYmIGxheW91
dEJveCgpLnRleHRDb250ZXh0KCktPmNvbnRlbnRbc3RhcnQoKV0gPT0gemVyb1dpZHRoU3BhY2Up
OyAKKyAgICByZXR1cm4gIW1fbGVuZ3RoIHx8IChtX2xlbmd0aCA9PSAxICYmIGlubGluZVRleHRC
b3goKS5jb250ZW50KClbc3RhcnQoKV0gPT0gemVyb1dpZHRoU3BhY2UpOyAKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4
dEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRl
eHRJdGVtLmgKaW5kZXggMmYxNzg3N2FiZDhiMWJjODgxZmZhZGE0ODc3MmU1OGQ1NDE3NzVmMy4u
NzQxMTg5ZWUyNGQ4MDg2ZjU3NmExNmFjZjQ1NmY2NzBjYjdmOGI0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5o
CkBAIC0yOSwxMyArMjksMTQgQEAKIAogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5o
IgogI2luY2x1ZGUgIklubGluZUl0ZW0uaCIKKyNpbmNsdWRlICJMYXlvdXRJbmxpbmVUZXh0Qm94
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBJ
bmxpbmVUZXh0SXRlbSA6IHB1YmxpYyBJbmxpbmVJdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
dm9pZCBjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmLCBjb25zdCBCb3gmKTsK
KyAgICBzdGF0aWMgdm9pZCBjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmLCBj
b25zdCBJbmxpbmVUZXh0Qm94Jik7CiAKICAgICB1bnNpZ25lZCBzdGFydCgpIGNvbnN0IHsgcmV0
dXJuIG1fc3RhcnRPclBvc2l0aW9uOyB9CiAgICAgdW5zaWduZWQgZW5kKCkgY29uc3QgeyByZXR1
cm4gc3RhcnQoKSArIGxlbmd0aCgpOyB9CkBAIC00Niw0OCArNDcsNTAgQEAgcHVibGljOgogICAg
IE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9oYXNX
aWR0aCA/IG1ha2VPcHRpb25hbChtX3dpZHRoKSA6IE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+
IHsgfTsgfQogICAgIGJvb2wgaXNFbXB0eUNvbnRlbnQoKSBjb25zdDsKIAorICAgIGNvbnN0IElu
bGluZVRleHRCb3gmIGlubGluZVRleHRCb3goKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxJbmxp
bmVUZXh0Qm94PihsYXlvdXRCb3goKSk7IH0KKwogICAgIElubGluZVRleHRJdGVtIGxlZnQodW5z
aWduZWQgbGVuZ3RoKSBjb25zdDsKICAgICBJbmxpbmVUZXh0SXRlbSByaWdodCh1bnNpZ25lZCBs
ZW5ndGgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHVzaW5nIElubGluZUl0ZW06OlRleHRJdGVt
VHlwZTsKIAotICAgIElubGluZVRleHRJdGVtKGNvbnN0IEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoLCBUZXh0SXRl
bVR5cGUpOwotICAgIElubGluZVRleHRJdGVtKGNvbnN0IEJveCYpOworICAgIElubGluZVRleHRJ
dGVtKGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
LCBPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0aCwgVGV4dEl0ZW1UeXBlKTsKKyAgICBJ
bmxpbmVUZXh0SXRlbShjb25zdCBJbmxpbmVUZXh0Qm94Jik7CiAKLSAgICBzdGF0aWMgSW5saW5l
VGV4dEl0ZW0gY3JlYXRlV2hpdGVzcGFjZUl0ZW0oY29uc3QgQm94JiwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgpOwotICAg
IHN0YXRpYyBJbmxpbmVUZXh0SXRlbSBjcmVhdGVOb25XaGl0ZXNwYWNlSXRlbShjb25zdCBCb3gm
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25hbDxJbmxpbmVMYXlvdXRV
bml0PiB3aWR0aCk7Ci0gICAgc3RhdGljIElubGluZVRleHRJdGVtIGNyZWF0ZUVtcHR5SXRlbShj
b25zdCBCb3gmKTsKKyAgICBzdGF0aWMgSW5saW5lVGV4dEl0ZW0gY3JlYXRlV2hpdGVzcGFjZUl0
ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgs
IE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKTsKKyAgICBzdGF0aWMgSW5saW5lVGV4
dEl0ZW0gY3JlYXRlTm9uV2hpdGVzcGFjZUl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIHVuc2ln
bmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdp
ZHRoKTsKKyAgICBzdGF0aWMgSW5saW5lVGV4dEl0ZW0gY3JlYXRlRW1wdHlJdGVtKGNvbnN0IElu
bGluZVRleHRCb3gmKTsKIH07CiAKLWlubGluZSBJbmxpbmVUZXh0SXRlbSBJbmxpbmVUZXh0SXRl
bTo6Y3JlYXRlV2hpdGVzcGFjZUl0ZW0oY29uc3QgQm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKQor
aW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRl
bShjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCB1bnNpZ25lZCBzdGFydCwgdW5z
aWduZWQgbGVuZ3RoLCBPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0aCkKIHsKLSAgICBy
ZXR1cm4geyBpbmxpbmVCb3gsIHN0YXJ0LCBsZW5ndGgsIHdpZHRoLCBUZXh0SXRlbVR5cGU6Oldo
aXRlc3BhY2UgfTsKKyAgICByZXR1cm4geyBpbmxpbmVUZXh0Qm94LCBzdGFydCwgbGVuZ3RoLCB3
aWR0aCwgVGV4dEl0ZW1UeXBlOjpXaGl0ZXNwYWNlIH07CiB9CiAKLWlubGluZSBJbmxpbmVUZXh0
SXRlbSBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlTm9uV2hpdGVzcGFjZUl0ZW0oY29uc3QgQm94JiBp
bmxpbmVCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGlu
ZUxheW91dFVuaXQ+IHdpZHRoKQoraW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVt
OjpjcmVhdGVOb25XaGl0ZXNwYWNlSXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0
Qm94LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25hbDxJbmxpbmVMYXlv
dXRVbml0PiB3aWR0aCkKIHsKLSAgICByZXR1cm4geyBpbmxpbmVCb3gsIHN0YXJ0LCBsZW5ndGgs
IHdpZHRoLCBUZXh0SXRlbVR5cGU6Ok5vbldoaXRlc3BhY2UgfTsKKyAgICByZXR1cm4geyBpbmxp
bmVUZXh0Qm94LCBzdGFydCwgbGVuZ3RoLCB3aWR0aCwgVGV4dEl0ZW1UeXBlOjpOb25XaGl0ZXNw
YWNlIH07CiB9CiAKLWlubGluZSBJbmxpbmVUZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRl
RW1wdHlJdGVtKGNvbnN0IEJveCYgaW5saW5lQm94KQoraW5saW5lIElubGluZVRleHRJdGVtIElu
bGluZVRleHRJdGVtOjpjcmVhdGVFbXB0eUl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5l
VGV4dEJveCkKIHsKLSAgICByZXR1cm4geyBpbmxpbmVCb3ggfTsKKyAgICByZXR1cm4geyBpbmxp
bmVUZXh0Qm94IH07CiB9CiAKLWlubGluZSBJbmxpbmVUZXh0SXRlbTo6SW5saW5lVGV4dEl0ZW0o
Y29uc3QgQm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9w
dGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoLCBUZXh0SXRlbVR5cGUgdGV4dEl0ZW1UeXBl
KQotICAgIDogSW5saW5lSXRlbShpbmxpbmVCb3gsIFR5cGU6OlRleHQpCitpbmxpbmUgSW5saW5l
VGV4dEl0ZW06OklubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRC
b3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91
dFVuaXQ+IHdpZHRoLCBUZXh0SXRlbVR5cGUgdGV4dEl0ZW1UeXBlKQorICAgIDogSW5saW5lSXRl
bShpbmxpbmVUZXh0Qm94LCBUeXBlOjpUZXh0KQogewogICAgIG1fc3RhcnRPclBvc2l0aW9uID0g
c3RhcnQ7CiAgICAgbV9sZW5ndGggPSBsZW5ndGg7CiAgICAgbV9oYXNXaWR0aCA9ICEhd2lkdGg7
Ci0gICAgbV9pc0NvbGxhcHNpYmxlID0gdGV4dEl0ZW1UeXBlID09IFRleHRJdGVtVHlwZTo6V2hp
dGVzcGFjZSAmJiBpbmxpbmVCb3guc3R5bGUoKS5jb2xsYXBzZVdoaXRlU3BhY2UoKTsKKyAgICBt
X2lzQ29sbGFwc2libGUgPSB0ZXh0SXRlbVR5cGUgPT0gVGV4dEl0ZW1UeXBlOjpXaGl0ZXNwYWNl
ICYmIGlubGluZVRleHRCb3guc3R5bGUoKS5jb2xsYXBzZVdoaXRlU3BhY2UoKTsKICAgICBtX3dp
ZHRoID0gd2lkdGgudmFsdWVPcigwKTsKICAgICBtX3RleHRJdGVtVHlwZSA9IHRleHRJdGVtVHlw
ZTsKIH0KIAotaW5saW5lIElubGluZVRleHRJdGVtOjpJbmxpbmVUZXh0SXRlbShjb25zdCBCb3gm
IGlubGluZUJveCkKLSAgICA6IElubGluZUl0ZW0oaW5saW5lQm94LCBUeXBlOjpUZXh0KQoraW5s
aW5lIElubGluZVRleHRJdGVtOjpJbmxpbmVUZXh0SXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiBp
bmxpbmVUZXh0Qm94KQorICAgIDogSW5saW5lSXRlbShpbmxpbmVUZXh0Qm94LCBUeXBlOjpUZXh0
KQogewogfQogCkBAIC05Niw3ICs5OSw3IEBAIGlubGluZSBJbmxpbmVUZXh0SXRlbSBJbmxpbmVU
ZXh0SXRlbTo6bGVmdCh1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgUkVMRUFTRV9BU1NFUlQo
bGVuZ3RoIDw9IHRoaXMtPmxlbmd0aCgpKTsKICAgICBBU1NFUlQobV90ZXh0SXRlbVR5cGUgIT0g
VGV4dEl0ZW1UeXBlOjpVbmRlZmluZWQpOwogICAgIEFTU0VSVChsZW5ndGgpOwotICAgIHJldHVy
biB7IGxheW91dEJveCgpLCBzdGFydCgpLCBsZW5ndGgsIFdURjo6bnVsbG9wdCwgbV90ZXh0SXRl
bVR5cGUgfTsKKyAgICByZXR1cm4geyBpbmxpbmVUZXh0Qm94KCksIHN0YXJ0KCksIGxlbmd0aCwg
V1RGOjpudWxsb3B0LCBtX3RleHRJdGVtVHlwZSB9OwogfQogCiBpbmxpbmUgSW5saW5lVGV4dEl0
ZW0gSW5saW5lVGV4dEl0ZW06OnJpZ2h0KHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKQEAgLTEwNCw3
ICsxMDcsNyBAQCBpbmxpbmUgSW5saW5lVGV4dEl0ZW0gSW5saW5lVGV4dEl0ZW06OnJpZ2h0KHVu
c2lnbmVkIGxlbmd0aCkgY29uc3QKICAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPD0gdGhpcy0+
bGVuZ3RoKCkpOwogICAgIEFTU0VSVChtX3RleHRJdGVtVHlwZSAhPSBUZXh0SXRlbVR5cGU6OlVu
ZGVmaW5lZCk7CiAgICAgQVNTRVJUKGxlbmd0aCk7Ci0gICAgcmV0dXJuIHsgbGF5b3V0Qm94KCks
IGVuZCgpIC0gbGVuZ3RoLCBsZW5ndGgsIFdURjo6bnVsbG9wdCwgbV90ZXh0SXRlbVR5cGUgfTsK
KyAgICByZXR1cm4geyBpbmxpbmVUZXh0Qm94KCksIGVuZCgpIC0gbGVuZ3RoLCBsZW5ndGgsIFdU
Rjo6bnVsbG9wdCwgbV90ZXh0SXRlbVR5cGUgfTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQu
Y3BwCmluZGV4IDRkZWI5NzlhZGQ3MTJlZTk0N2IxNGMzZWM3MjA1MzliY2QwZTNmNzQuLmQ1MTg2
NjJiNzMwNjljMDdlZWU0ZGQwMzM3MmMxNTRmNmZhM2RmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4
dC5jcHAKQEAgLTQzLDEzICs0MywxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZW5kc1dpdGhTb2Z0
V3JhcE9wcG9ydHVuaXR5KGNvbnN0IElubGluZVRleHRJdGVtJiBjdXJyZW50VGV4dAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAvLyBXaGVuIGJvdGggdGhlc2Ugbm9uLXdoaXRlc3BhY2UgcnVu
cyBiZWxvbmcgdG8gdGhlIHNhbWUgbGF5b3V0IGJveCwgaXQncyBndWFyYW50ZWVkIHRoYXQKICAg
ICAvLyB0aGV5IGFyZSBzcGxpdCBhdCBhIHNvZnQgYnJlYWtpbmcgb3Bwb3J0dW5pdHkuIFNlZSBJ
bmxpbmVUZXh0SXRlbTo6bW92ZVRvTmV4dEJyZWFrYWJsZVBvc2l0aW9uLgotICAgIGlmICgmY3Vy
cmVudFRleHRJdGVtLmxheW91dEJveCgpID09ICZuZXh0SW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94
KCkpCisgICAgaWYgKCZjdXJyZW50VGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpID09ICZuZXh0SW5s
aW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAv
LyBOb3cgd2UgbmVlZCB0byBjb2xsZWN0IGF0IGxlYXN0IDMgYWRqYWNlbnQgY2hhcmFjdGVycyB0
byBiZSBhYmxlIHRvIG1ha2UgYSBkZWNpc2lvbiB3aGV0aGVyIHRoZSBwcmV2aW91cyB0ZXh0IGl0
ZW0gZW5kcyB3aXRoIGJyZWFraW5nIG9wcG9ydHVuaXR5LgogICAgIC8vIFtleC1dW2FtcGxlXSA8
LSBzZWNvbmQgdG8gbGFzdFt4XSBsYXN0Wy1dIGN1cnJlbnRbYV0KICAgICAvLyBXZSBuZWVkIGF0
IGxlYXN0IDEgY2hhcmFjdGVyIGluIHRoZSBjdXJyZW50IGlubGluZSB0ZXh0IGl0ZW0gYW5kIDIg
bW9yZSBmcm9tIHByZXZpb3VzIGlubGluZSBpdGVtcy4KLSAgICBhdXRvIHByZXZpb3VzQ29udGVu
dCA9IGN1cnJlbnRUZXh0SXRlbS5sYXlvdXRCb3goKS50ZXh0Q29udGV4dCgpLT5jb250ZW50Owot
ICAgIGF1dG8gbGluZUJyZWFrSXRlcmF0b3IgPSBMYXp5TGluZUJyZWFrSXRlcmF0b3IgeyBuZXh0
SW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+Y29udGVudCB9OworICAg
IGF1dG8gcHJldmlvdXNDb250ZW50ID0gY3VycmVudFRleHRJdGVtLmlubGluZVRleHRCb3goKS5j
b250ZW50KCk7CisgICAgYXV0byBsaW5lQnJlYWtJdGVyYXRvciA9IExhenlMaW5lQnJlYWtJdGVy
YXRvciB7IG5leHRJbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCkuY29udGVudCgpIH07CiAg
ICAgYXV0byBwcmV2aW91c0NvbnRlbnRMZW5ndGggPSBwcmV2aW91c0NvbnRlbnQubGVuZ3RoKCk7
CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBsb29rIGludG8gdGhlIGVudGlyZSB1bmNvbW1pdHRl
ZCBjb250ZW50IGZvciBtb3JlIHRleHQgY29udGV4dC4KICAgICBVQ2hhciBsYXN0Q2hhcmFjdGVy
ID0gcHJldmlvdXNDb250ZW50TGVuZ3RoID8gcHJldmlvdXNDb250ZW50W3ByZXZpb3VzQ29udGVu
dExlbmd0aCAtIDFdIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5jcHAKaW5kZXggZThkYjlkN2NkNDlkMDhlMTI1
ZDcwZWIzNDM5MTRmZWE4NmJmYzg5Ni4uYTk5NWMxNjcyMjU4YjQzMzA0MjVhMzg2NDRkYmZlYTU2
MDk2Y2E3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvdGV4dC9UZXh0VXRpbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJC
cmVha0xpbmVzLmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJJbmxpbmVU
ZXh0SXRlbS5oIgorI2luY2x1ZGUgIkxheW91dElubGluZVRleHRCb3guaCIKICNpbmNsdWRlICJS
ZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogCkBAIC00NCwyNSArNDUsMjQg
QEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0m
IGlubGluZVRleHRJdGVtLCB1bnNpZ25lZAogICAgICAgICBhdXRvIGZvbnQgPSBpbmxpbmVUZXh0
SXRlbS5zdHlsZSgpLmZvbnRDYXNjYWRlKCk7CiAgICAgICAgIHJldHVybiBmb250LnNwYWNlV2lk
dGgoKSArIGZvbnQud29yZFNwYWNpbmcoKTsKICAgICB9Ci0gICAgcmV0dXJuIFRleHRVdGlsOjp3
aWR0aChpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2Fs
TGVmdCk7CisgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbS5pbmxpbmVU
ZXh0Qm94KCksIGZyb20sIHRvLCBjb250ZW50TG9naWNhbExlZnQpOwogfQogCi1JbmxpbmVMYXlv
dXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KQorSW5s
aW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5l
VGV4dEJveCwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29u
dGVudExvZ2ljYWxMZWZ0KQogewotICAgIGF1dG8mIHN0eWxlID0gaW5saW5lQm94LnN0eWxlKCk7
CisgICAgYXV0byYgc3R5bGUgPSBpbmxpbmVUZXh0Qm94LnN0eWxlKCk7CiAgICAgYXV0byYgZm9u
dCA9IHN0eWxlLmZvbnRDYXNjYWRlKCk7CiAgICAgaWYgKCFmb250LnNpemUoKSB8fCBmcm9tID09
IHRvKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGF1dG8mIHRleHRDb250ZXh0ID0gKmlubGlu
ZUJveC50ZXh0Q29udGV4dCgpOwotICAgIGF1dG8mIHRleHQgPSB0ZXh0Q29udGV4dC5jb250ZW50
OworICAgIGF1dG8gdGV4dCA9IGlubGluZVRleHRCb3guY29udGVudCgpOwogICAgIEFTU0VSVCh0
byA8PSB0ZXh0Lmxlbmd0aCgpKTsKICAgICBhdXRvIGhhc0tlcm5pbmdPckxpZ2F0dXJlcyA9IGZv
bnQuZW5hYmxlS2VybmluZygpIHx8IGZvbnQucmVxdWlyZXNTaGFwaW5nKCk7CiAgICAgYXV0byBt
ZWFzdXJlV2l0aEVuZFNwYWNlID0gaGFzS2VybmluZ09yTGlnYXR1cmVzICYmIHRvIDwgdGV4dC5s
ZW5ndGgoKSAmJiB0ZXh0W3RvXSA9PSAnICc7CiAgICAgaWYgKG1lYXN1cmVXaXRoRW5kU3BhY2Up
CiAgICAgICAgICsrdG87CiAgICAgZmxvYXQgd2lkdGggPSAwOwotICAgIGlmICh0ZXh0Q29udGV4
dC5jYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmluZykgeworICAgIGlmIChpbmxpbmVUZXh0
Qm94LmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKCkpIHsKICAgICAgICAgaWYgKGZv
bnQuaXNGaXhlZFBpdGNoKCkpCiAgICAgICAgICAgICB3aWR0aCA9IGZpeGVkUGl0Y2hXaWR0aCh0
ZXh0LCBzdHlsZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVmdCk7CiAgICAgICAgIGVsc2UK
QEAgLTEwMCw3ICsxMDAsNyBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjpmaXhlZFBpdGNo
V2lkdGgoY29uc3QgU3RyaW5nVmlldyYgdGV4dCwgY29uc3QgUmVuZGVyUwogICAgIHJldHVybiBz
dGQ6Om1heDxJbmxpbmVMYXlvdXRVbml0PigwLCBJbmxpbmVMYXlvdXRVbml0KHdpZHRoKSk7CiB9
CiAKLVRleHRVdGlsOjpTcGxpdERhdGEgVGV4dFV0aWw6OnNwbGl0KGNvbnN0IEJveCYgaW5saW5l
Qm94LCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCB1bnNpZ25lZCBsZW5ndGgsIElubGluZUxheW91
dFVuaXQgdGV4dFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoLCBJbmxpbmVM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCkKK1RleHRVdGlsOjpTcGxpdERhdGEgVGV4dFV0
aWw6OnNwbGl0KGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIHVuc2lnbmVkIHN0
YXJ0UG9zaXRpb24sIHVuc2lnbmVkIGxlbmd0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0V2lkdGgs
IElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIElubGluZUxheW91dFVuaXQgY29udGVu
dExvZ2ljYWxMZWZ0KQogewogICAgIEFTU0VSVChhdmFpbGFibGVXaWR0aCA+PSAwKTsKICAgICBh
dXRvIGxlZnQgPSBzdGFydFBvc2l0aW9uOwpAQCAtMTEzLDcgKzExMyw3IEBAIFRleHRVdGlsOjpT
cGxpdERhdGEgVGV4dFV0aWw6OnNwbGl0KGNvbnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBz
dGFydFBvc2l0aW9uCiAgICAgSW5saW5lTGF5b3V0VW5pdCBsZWZ0U2lkZVdpZHRoID0gMDsKICAg
ICB3aGlsZSAobGVmdCA8IHJpZ2h0KSB7CiAgICAgICAgIGF1dG8gbWlkZGxlID0gKGxlZnQgKyBy
aWdodCkgLyAyOwotICAgICAgICBhdXRvIHdpZHRoID0gVGV4dFV0aWw6OndpZHRoKGlubGluZUJv
eCwgc3RhcnRQb3NpdGlvbiwgbWlkZGxlICsgMSwgY29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICAg
ICAgYXV0byB3aWR0aCA9IFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0Qm94LCBzdGFydFBvc2l0
aW9uLCBtaWRkbGUgKyAxLCBjb250ZW50TG9naWNhbExlZnQpOwogICAgICAgICBpZiAod2lkdGgg
PCBhdmFpbGFibGVXaWR0aCkgewogICAgICAgICAgICAgbGVmdCA9IG1pZGRsZSArIDE7CiAgICAg
ICAgICAgICBsZWZ0U2lkZVdpZHRoID0gd2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmgKaW5kZXggYzQwZTVlZmI4
ODM0OWVjNmE1YWIxYWM3ZmI3ZWMzYTExMzA4ZGY0Zi4uNDUwZDY3MDk3MjI0ZDA2NjMwOTA5Nzlj
YjE3YjI2YzJmMTc5ZGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwuaApAQCAtMzcsMTggKzM3LDE5IEBAIGNsYXNz
IFJlbmRlclN0eWxlOwogCiBuYW1lc3BhY2UgTGF5b3V0IHsKIAorY2xhc3MgSW5saW5lVGV4dEJv
eDsKIGNsYXNzIElubGluZVRleHRJdGVtOwogCiBjbGFzcyBUZXh0VXRpbCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCB1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bExlZnQgPSAwKTsKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBCb3gm
LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbExlZnQgPSAwKTsKKyAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJ
bmxpbmVUZXh0Qm94JiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVu
aXQgY29udGVudExvZ2ljYWxMZWZ0ID0gMCk7CiAgICAgc3RydWN0IFNwbGl0RGF0YSB7CiAgICAg
ICAgIHVuc2lnbmVkIHN0YXJ0IHsgMCB9OwogICAgICAgICB1bnNpZ25lZCBsZW5ndGggeyAwIH07
CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoIHsgMCB9OwogICAgIH07Ci0g
ICAgc3RhdGljIFNwbGl0RGF0YSBzcGxpdChjb25zdCBCb3gmLCB1bnNpZ25lZCBzdGFydFBvc2l0
aW9uLCB1bnNpZ25lZCBsZW5ndGgsIElubGluZUxheW91dFVuaXQgdGV4dFdpZHRoLCBJbmxpbmVM
YXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2Fs
TGVmdCk7CisgICAgc3RhdGljIFNwbGl0RGF0YSBzcGxpdChjb25zdCBJbmxpbmVUZXh0Qm94Jiwg
dW5zaWduZWQgc3RhcnRQb3NpdGlvbiwgdW5zaWduZWQgbGVuZ3RoLCBJbmxpbmVMYXlvdXRVbml0
IHRleHRXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwgSW5saW5lTGF5b3V0
VW5pdCBjb250ZW50TG9naWNhbExlZnQpOwogICAgIHN0YXRpYyBib29sIHNob3VsZFByZXNlcnZl
VHJhaWxpbmdXaGl0ZXNwYWNlKGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgc3RhdGljIHVuc2ln
bmVkIGZpbmROZXh0QnJlYWthYmxlUG9zaXRpb24oTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiwgdW5z
aWduZWQgc3RhcnRQb3NpdGlvbiwgY29uc3QgUmVuZGVyU3R5bGUmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJl
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25Cb3hUcmVlLmNwcAppbmRleCAwYjcxMGJkYjNhYTc1OWMyMWJhN2Q2YTUzNmIwNDE3MjBiOWY5
Mzc2Li4wNTcxYzNhYWE1ZDIxZmY3MjI2OTFiNmZjNzJlZDdlMzEyMTg0NTg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hU
cmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25Cb3hUcmVlLmNwcApAQCAtNTgsOSArNTgsNyBAQCB2b2lkIEJveFRyZWU6OmJ1aWxk
VHJlZShjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxMYXlvdXQ6OkJveD4gY2hpbGRCb3g7CiAgICAgICAgIGlmIChpczxSZW5kZXJUZXh0PihjaGls
ZFJlbmRlcmVyKSkgewogICAgICAgICAgICAgYXV0byYgdGV4dFJlbmRlcmVyID0gZG93bmNhc3Q8
UmVuZGVyVGV4dD4oY2hpbGRSZW5kZXJlcik7Ci0gICAgICAgICAgICBhdXRvIHRleHRDb250ZW50
ID0gTGF5b3V0OjpUZXh0Q29udGV4dCB7IHRleHRSZW5kZXJlci50ZXh0KCksIHRleHRSZW5kZXJl
ci5jYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZygpIH07Ci0gICAgICAgICAgICBjaGlsZEJv
eCA9IG1ha2VVbmlxdWU8TGF5b3V0OjpCb3g+KFdURk1vdmUodGV4dENvbnRlbnQpLCBSZW5kZXJT
dHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShtX3Jvb3Quc3R5bGUoKSwgRGlz
cGxheVR5cGU6OklubGluZSkpOwotICAgICAgICAgICAgY2hpbGRCb3gtPnNldElzQW5vbnltb3Vz
KCk7CisgICAgICAgICAgICBjaGlsZEJveCA9IG1ha2VVbmlxdWU8TGF5b3V0OjpJbmxpbmVUZXh0
Qm94Pih0ZXh0UmVuZGVyZXIudGV4dCgpLCB0ZXh0UmVuZGVyZXIuY2FuVXNlU2ltcGxpZmllZFRl
eHRNZWFzdXJpbmcoKSwgUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3Bs
YXkobV9yb290LnN0eWxlKCksIERpc3BsYXlUeXBlOjpJbmxpbmUpKTsKICAgICAgICAgfSBlbHNl
IGlmIChjaGlsZFJlbmRlcmVyLmlzTGluZUJyZWFrKCkpIHsKICAgICAgICAgICAgIGF1dG8gY2xv
bmVkU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUoY2hpbGRSZW5kZXJlci5zdHlsZSgpKTsKICAg
ICAgICAgICAgIGNsb25lZFN0eWxlLnNldERpc3BsYXkoRGlzcGxheVR5cGU6OklubGluZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcAppbmRleCBi
NGQ2MGE0ZTZhZDAyNWZjYzQ0MjA5MTM1ZTc2MDRhMjJjZWZlYzViLi4xOTdhY2VlZWJmZmViYWQ4
YTY3MjYzNjg5OWU4Y2IxNGJjZjIzYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTQwLDEwICs0MCw5IEBAIG5hbWVzcGFjZSBMYXlv
dXQgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQm94KTsKIAotQm94OjpCb3goT3B0
aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+IGF0dHJpYnV0ZXMsIE9wdGlvbmFsPFRleHRDb250ZXh0
PiB0ZXh0Q29udGV4dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSwgQmFzZVR5cGVGbGFncyBiYXNlVHlw
ZUZsYWdzKQorQm94OjpCb3goT3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+IGF0dHJpYnV0ZXMs
IFJlbmRlclN0eWxlJiYgc3R5bGUsIEJhc2VUeXBlRmxhZ3MgYmFzZVR5cGVGbGFncykKICAgICA6
IG1fc3R5bGUoV1RGTW92ZShzdHlsZSkpCiAgICAgLCBtX2VsZW1lbnRBdHRyaWJ1dGVzKGF0dHJp
YnV0ZXMpCi0gICAgLCBtX3RleHRDb250ZXh0KHRleHRDb250ZXh0KQogICAgICwgbV9iYXNlVHlw
ZUZsYWdzKGJhc2VUeXBlRmxhZ3MpCiAgICAgLCBtX2hhc1JhcmVEYXRhKGZhbHNlKQogICAgICwg
bV9pc0Fub255bW91cyhmYWxzZSkKQEAgLTUzLDE2ICs1MiwxMCBAQCBCb3g6OkJveChPcHRpb25h
bDxFbGVtZW50QXR0cmlidXRlcz4gYXR0cmlidXRlcywgT3B0aW9uYWw8VGV4dENvbnRleHQ+IHRl
eHRDb250ZQogfQogCiBCb3g6OkJveChPcHRpb25hbDxFbGVtZW50QXR0cmlidXRlcz4gYXR0cmli
dXRlcywgUmVuZGVyU3R5bGUmJiBzdHlsZSkKLSAgICA6IEJveChhdHRyaWJ1dGVzLCB7IH0sIFdU
Rk1vdmUoc3R5bGUpLCBCYXNlVHlwZUZsYWc6OkJveEZsYWcpCisgICAgOiBCb3goYXR0cmlidXRl
cywgV1RGTW92ZShzdHlsZSksIEJhc2VUeXBlRmxhZzo6Qm94RmxhZykKIHsKIH0KIAotQm94OjpC
b3goVGV4dENvbnRleHQmJiB0ZXh0Q29udGV4dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKLSAgICA6
IEJveCh7IH0sIFdURk1vdmUodGV4dENvbnRleHQpLCBXVEZNb3ZlKHN0eWxlKSwgQmFzZVR5cGVG
bGFnOjpCb3hGbGFnKQotewotICAgIEFTU0VSVChpc0lubGluZUxldmVsQm94KCkpOwotfQotCiBC
b3g6On5Cb3goKQogewogICAgIGlmIChVTkxJS0VMWShtX2hhc1JhcmVEYXRhKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKaW5kZXggOTQ1M2IzZTMwN2Q3
MmZmMTIwMjYxMTMzNDFmMzM4MzUzMjg3YjI5YS4uMGJjMzkwYjBiMDg1MDQ3NmJhOTgzYTQ3YjAx
YzE1MjMzNzJmODBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0Qm94LmgKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkxheW91dFJlcGxhY2VkLmgi
CiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJUZXh0Q29udGV4dC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC02
NCwxNCArNjMsMTQgQEAgcHVibGljOgogICAgIH07CiAKICAgICBlbnVtIEJhc2VUeXBlRmxhZyB7
Ci0gICAgICAgIEJveEZsYWcgICAgICAgICAgICAgICA9IDEgPDwgMCwKLSAgICAgICAgQ29udGFp
bmVyRmxhZyAgICAgICAgID0gMSA8PCAxCisgICAgICAgIEJveEZsYWcgICAgICAgICAgICAgICAg
PSAxIDw8IDAsCisgICAgICAgIElubGluZVRleHRCb3ggPSAxIDw8IDEsCisgICAgICAgIENvbnRh
aW5lckZsYWcgICAgICAgICAgPSAxIDw8IDIKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQg
QmFzZVR5cGVGbGFnczsKIAogICAgIEJveChPcHRpb25hbDxFbGVtZW50QXR0cmlidXRlcz4sIFJl
bmRlclN0eWxlJiYpOwotICAgIEJveChUZXh0Q29udGV4dCYmLCBSZW5kZXJTdHlsZSYmKTsKLSAg
ICB+Qm94KCk7CisgICAgdmlydHVhbCB+Qm94KCk7CiAKICAgICBib29sIGVzdGFibGlzaGVzRm9y
bWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAgICBib29sIGVzdGFibGlzaGVzQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCgpIGNvbnN0OwpAQCAtMTQyLDYgKzE0MSw3IEBAIHB1YmxpYzoKICAgICBCb3gq
IG5leHRTaWJsaW5nKCkgeyByZXR1cm4gbV9uZXh0U2libGluZzsgfQogCiAgICAgYm9vbCBpc0Nv
bnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVR5cGVGbGFncyAmIENvbnRhaW5lckZsYWc7
IH0KKyAgICBib29sIGlzSW5saW5lVGV4dEJveCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVR5cGVG
bGFncyAmIElubGluZVRleHRCb3g7IH0KIAogICAgIGJvb2wgaXNQYWRkaW5nQXBwbGljYWJsZSgp
IGNvbnN0OwogICAgIGJvb2wgaXNPdmVyZmxvd1Zpc2libGUoKSBjb25zdDsKQEAgLTE1Miw4ICsx
NTIsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVwbGFjZWQqIHJlcGxhY2VkKCkgY29uc3Q7CiAg
ICAgLy8gRklYTUU6IFRlbXBvcmFyeSB1bnRpbCBhZnRlciBpbnRyaW5zaWMgc2l6ZSBjaGFuZ2Ug
aXMgdHJhY2tlZCBieSBSZXBsYWNlZC4KICAgICBSZXBsYWNlZCogcmVwbGFjZWQoKTsKLSAgICBi
b29sIGhhc1RleHRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gISFtX3RleHRDb250ZXh0OyB9Ci0g
ICAgY29uc3QgT3B0aW9uYWw8VGV4dENvbnRleHQ+JiB0ZXh0Q29udGV4dCgpIGNvbnN0IHsgcmV0
dXJuIG1fdGV4dENvbnRleHQ7IH0KIAogICAgIC8vIEZJWE1FOiBGaW5kIGEgYmV0dGVyIHBsYWNl
IGZvciByYW5kb20gRE9NIHRoaW5ncy4KICAgICB2b2lkIHNldFJvd1NwYW4odW5zaWduZWQpOwpA
QCAtMTc2LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhY2hlZERpc3BsYXlCb3hG
b3JMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSYsIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5OjpCb3g+
KSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIEJveChPcHRpb25hbDxFbGVtZW50QXR0cmlidXRl
cz4sIE9wdGlvbmFsPFRleHRDb250ZXh0PiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7
CisgICAgQm94KE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiwgUmVuZGVyU3R5bGUmJiwgQmFz
ZVR5cGVGbGFncyk7CiAKIHByaXZhdGU6CiAgICAgY2xhc3MgQm94UmFyZURhdGEgewpAQCAtMjA3
LDggKzIwNSw2IEBAIHByaXZhdGU6CiAgICAgQm94KiBtX3ByZXZpb3VzU2libGluZyB7IG51bGxw
dHIgfTsKICAgICBCb3gqIG1fbmV4dFNpYmxpbmcgeyBudWxscHRyIH07CiAgICAgCi0gICAgY29u
c3QgT3B0aW9uYWw8VGV4dENvbnRleHQ+IG1fdGV4dENvbnRleHQ7Ci0KICAgICAvLyBGaXJzdCBM
YXlvdXRTdGF0ZSBnZXRzIGEgZGlyZWN0IGNhY2hlLgogICAgIG11dGFibGUgV2Vha1B0cjxMYXlv
dXRTdGF0ZT4gbV9jYWNoZWRMYXlvdXRTdGF0ZTsKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0
cjxEaXNwbGF5OjpCb3g+IG1fY2FjaGVkRGlzcGxheUJveEZvckxheW91dFN0YXRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5jcHAK
aW5kZXggMGY1MDVmMjYxNWFmYzZkNTU4M2I0MDY3YTQ2ZWQwMDUzNTIwNTViNi4uYjBjYzgzNGQz
MmM5NGQ0ZjYxZTc2YmRlYmU2ZDc2OWU0ZDljZDk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuY3BwCkBAIC0zNyw3ICszNyw3
IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENvbnRh
aW5lcik7CiAKIENvbnRhaW5lcjo6Q29udGFpbmVyKE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVz
PiBhdHRyaWJ1dGVzLCBSZW5kZXJTdHlsZSYmIHN0eWxlLCBCYXNlVHlwZUZsYWdzIGJhc2VUeXBl
RmxhZ3MpCi0gICAgOiBCb3goYXR0cmlidXRlcywgeyB9LCBXVEZNb3ZlKHN0eWxlKSwgYmFzZVR5
cGVGbGFncyB8IENvbnRhaW5lckZsYWcpCisgICAgOiBCb3goYXR0cmlidXRlcywgV1RGTW92ZShz
dHlsZSksIGJhc2VUeXBlRmxhZ3MgfCBDb250YWluZXJGbGFnKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVUZXh0Qm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3gu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJiODdjNDdlNjE2MDlhZTY4MWVkY2ExMWJjNzE5NmEyYTI4MGUyOGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRJbmxpbmVUZXh0Qm94LmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxheW91dElubGluZVRleHRCb3guaCIKKworI2lmIEVO
QUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUu
aCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElu
bGluZVRleHRCb3gpOworCitJbmxpbmVUZXh0Qm94OjpJbmxpbmVUZXh0Qm94KFN0cmluZyBjb250
ZW50LCBib29sIGNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nLCBSZW5kZXJTdHlsZSYm
IHN0eWxlKQorICAgIDogQm94KHsgfSwgV1RGTW92ZShzdHlsZSksIEJveDo6SW5saW5lVGV4dEJv
eCkKKyAgICAsIG1fY29udGVudChjb250ZW50KQorICAgICwgbV9jYW5Vc2VTaW1wbGlmaWVkQ29u
dGVudE1lYXN1cmluZyhjYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmluZykKK3sKKyAgICBz
ZXRJc0Fub255bW91cygpOworfQorCit9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5saW5lVGV4dEJveC5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5saW5lVGV4dEJveC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYxNjdjM2YwODcyMTlkZWE0ZWIwYWFhNGExNzIyODgyMTM1ODlkNzgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVUZXh0
Qm94LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJMYXlvdXRCb3gu
aCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
bmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIElubGluZVRleHRCb3ggOiBwdWJsaWMgQm94IHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKElubGluZVRleHRCb3gpOworcHVibGljOgorICAg
IElubGluZVRleHRCb3goU3RyaW5nLCBib29sIGNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3Vy
aW5nLCBSZW5kZXJTdHlsZSYmKTsKKyAgICB2aXJ0dWFsIH5JbmxpbmVUZXh0Qm94KCkgPSBkZWZh
dWx0OworCisgICAgU3RyaW5nIGNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQ7IH0K
KyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGEgYm94J3MgcHJvcGVydHkuCisgICAg
Ym9vbCBjYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmluZygpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJpbmc7IH0KKworcHJpdmF0ZToKKyAgICBTdHJp
bmcgbV9jb250ZW50OworICAgIGJvb2wgbV9jYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1lYXN1cmlu
ZyB7IGZhbHNlIH07Cit9OworCit9Cit9CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VU
X0JPWChJbmxpbmVUZXh0Qm94LCBpc0lubGluZVRleHRCb3goKSkKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5j
cHAKaW5kZXggYzE0NjIyZTkwYzM5Zjc0MzI0MDkxYjFlY2Q2ODFmZDY5MTliNDQ0MC4uYTRjMzBm
MGI0NjI2NmQ0MzZhMzI1M2Q0NjEwZDE2NTliNWJlNjMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcApAQCAtNDIs
NiArNDIsNyBAQAogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lci5oIgogI2luY2x1ZGUgIkxheW91
dENvbnRleHQuaCIKICNpbmNsdWRlICJMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaCIKKyNpbmNs
dWRlICJMYXlvdXRJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0UGhhc2UuaCIKICNp
bmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKQEAgLTE1MCw5
ICsxNTEsOSBAQCBCb3gmIFRyZWVCdWlsZGVyOjpjcmVhdGVCb3goT3B0aW9uYWw8Qm94OjpFbGVt
ZW50QXR0cmlidXRlcz4gZWxlbWVudEF0dHJpYnV0ZXMsCiAgICAgcmV0dXJuIGJveDsKIH0KIAot
Qm94JiBUcmVlQnVpbGRlcjo6Y3JlYXRlVGV4dEJveChUZXh0Q29udGV4dCYmIHRleHRDb250ZW50
LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQorQm94JiBUcmVlQnVpbGRlcjo6Y3JlYXRlVGV4dEJveChT
dHJpbmcgdGV4dCwgYm9vbCBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgUmVuZGVyU3R5
bGUmJiBzdHlsZSkKIHsKLSAgICBhdXRvIG5ld0JveCA9IG1ha2VVbmlxdWU8Qm94PihXVEZNb3Zl
KHRleHRDb250ZW50KSwgV1RGTW92ZShzdHlsZSkpOworICAgIGF1dG8gbmV3Qm94ID0gbWFrZVVu
aXF1ZTxJbmxpbmVUZXh0Qm94Pih0ZXh0LCBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywg
V1RGTW92ZShzdHlsZSkpOwogICAgIGF1dG8mIGJveCA9ICpuZXdCb3g7CiAgICAgbV9sYXlvdXRU
cmVlQ29udGVudC5hZGRCb3goV1RGTW92ZShuZXdCb3gpKTsKICAgICByZXR1cm4gYm94OwpAQCAt
MTkxLDEyICsxOTIsMTEgQEAgQm94KiBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0Qm94KGNvbnN0
IENvbnRhaW5lciYgcGFyZW50Q29udGFpbmVyLCBjb25zdCBSZW5kZXIKICAgICAgICAgYXV0byYg
dGV4dFJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyVGV4dD4oY2hpbGRSZW5kZXJlcik7CiAgICAg
ICAgIC8vIFJlbmRlclRleHQ6OnRleHQoKSBoYXMgYWxyZWFkeSBhcHBsaWVkIHRleHQtdHJhbnNm
b3JtIGFuZCB0ZXh0LXNlY3VyaXR5IHByb3BlcnRpZXMuCiAgICAgICAgIFN0cmluZyB0ZXh0ID0g
dGV4dFJlbmRlcmVyLnRleHQoKTsKLSAgICAgICAgYXV0byB0ZXh0Q29udGVudCA9IFRleHRDb250
ZXh0IHsgdGV4dCwgY2FuVXNlU2ltcGxpZmllZFRleHRNZWFzdXJpbmcodGV4dCwgcGFyZW50Q29u
dGFpbmVyLnN0eWxlKCkuZm9udENhc2NhZGUoKSwgcGFyZW50Q29udGFpbmVyLnN0eWxlKCkuY29s
bGFwc2VXaGl0ZVNwYWNlKCkpIH07CisgICAgICAgIGF1dG8gdXNlU2ltcGxpZmllZFRleHRNZWFz
dXJpbmcgPSBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZyh0ZXh0LCBwYXJlbnRDb250YWlu
ZXIuc3R5bGUoKS5mb250Q2FzY2FkZSgpLCBwYXJlbnRDb250YWluZXIuc3R5bGUoKS5jb2xsYXBz
ZVdoaXRlU3BhY2UoKSk7CiAgICAgICAgIGlmIChwYXJlbnRDb250YWluZXIuc3R5bGUoKS5kaXNw
bGF5KCkgPT0gRGlzcGxheVR5cGU6OklubGluZSkKLSAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94
ID0gJmNyZWF0ZVRleHRCb3goV1RGTW92ZSh0ZXh0Q29udGVudCksIFJlbmRlclN0eWxlOjpjbG9u
ZShwYXJlbnRDb250YWluZXIuc3R5bGUoKSkpOworICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gg
PSAmY3JlYXRlVGV4dEJveCh0ZXh0LCB1c2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgUmVuZGVy
U3R5bGU6OmNsb25lKHBhcmVudENvbnRhaW5lci5zdHlsZSgpKSk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gJmNyZWF0ZVRleHRCb3goV1RGTW92ZSh0ZXh0Q29u
dGVudCksIFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBhcmVu
dENvbnRhaW5lci5zdHlsZSgpLCBEaXNwbGF5VHlwZTo6SW5saW5lKSk7Ci0gICAgICAgIGNoaWxk
TGF5b3V0Qm94LT5zZXRJc0Fub255bW91cygpOworICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gg
PSAmY3JlYXRlVGV4dEJveCh0ZXh0LCB1c2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgUmVuZGVy
U3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkocGFyZW50Q29udGFpbmVyLnN0
eWxlKCksIERpc3BsYXlUeXBlOjpJbmxpbmUpKTsKICAgICB9IGVsc2UgewogICAgICAgICBhdXRv
JiByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KGNoaWxkUmVuZGVyZXIpOwogICAg
ICAgICBhdXRvIGRpc3BsYXlUeXBlID0gcmVuZGVyZXIuc3R5bGUoKS5kaXNwbGF5KCk7CkBAIC00
MDYsOCArNDA2LDggQEAgc3RhdGljIHZvaWQgb3V0cHV0TGF5b3V0Qm94KFRleHRTdHJlYW0mIHN0
cmVhbSwgY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IERpc3AKICAgICBpZiAoZGlzcGxheUJv
eCkKICAgICAgICAgc3RyZWFtIDw8ICIgYXQgKCIgPDwgZGlzcGxheUJveC0+bGVmdCgpIDw8ICIs
IiA8PCBkaXNwbGF5Qm94LT50b3AoKSA8PCAiKSBzaXplICIgPDwgZGlzcGxheUJveC0+d2lkdGgo
KSA8PCAieCIgPDwgZGlzcGxheUJveC0+aGVpZ2h0KCk7CiAgICAgc3RyZWFtIDw8ICIgbGF5b3V0
IGJveC0+KCIgPDwgJmxheW91dEJveCA8PCAiKSI7Ci0gICAgaWYgKGxheW91dEJveC5pc0lubGlu
ZUxldmVsQm94KCkgJiYgbGF5b3V0Qm94LmlzQW5vbnltb3VzKCkpCi0gICAgICAgIHN0cmVhbSA8
PCAiIHRleHQgY29udGVudCBbXCIiIDw8IGxheW91dEJveC50ZXh0Q29udGV4dCgpLT5jb250ZW50
LnV0ZjgoKS5kYXRhKCkgPDwgIlwiXSI7CisgICAgaWYgKGlzPElubGluZVRleHRCb3g+KGxheW91
dEJveCkpCisgICAgICAgIHN0cmVhbSA8PCAiIHRleHQgY29udGVudCBbXCIiIDw8IGRvd25jYXN0
PElubGluZVRleHRCb3g+KGxheW91dEJveCkuY29udGVudCgpLnV0ZjgoKS5kYXRhKCkgPDwgIlwi
XSI7CiAKICAgICBzdHJlYW0ubmV4dExpbmUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCmluZGV4IDE5MzNhMDQxNjM4
NzZjMTU2NWNjNzhiY2U5NDc5MTQyMGU4ODBhOTAuLjM4NWQ3MjAzODM2NDM4ODE1NDdhYTYzM2Zh
ZmIxN2VjYjM0M2E3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaApAQCAtOTEsNyArOTEsNyBAQCBwcml2YXRlOgogICAg
IEJveCogY3JlYXRlTGF5b3V0Qm94KGNvbnN0IENvbnRhaW5lciYgcGFyZW50Q29udGFpbmVyLCBj
b25zdCBSZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVyZXIpOwogCiAgICAgQm94JiBjcmVhdGVCb3go
T3B0aW9uYWw8Qm94OjpFbGVtZW50QXR0cmlidXRlcz4sIFJlbmRlclN0eWxlJiYpOwotICAgIEJv
eCYgY3JlYXRlVGV4dEJveChUZXh0Q29udGV4dCYmLCBSZW5kZXJTdHlsZSYmKTsKKyAgICBCb3gm
IGNyZWF0ZVRleHRCb3goU3RyaW5nIHRleHQsIGJvb2wgY2FuVXNlU2ltcGxpZmllZFRleHRNZWFz
dXJpbmcsIFJlbmRlclN0eWxlJiYpOwogICAgIENvbnRhaW5lciYgY3JlYXRlQ29udGFpbmVyKE9w
dGlvbmFsPEJveDo6RWxlbWVudEF0dHJpYnV0ZXM+LCBSZW5kZXJTdHlsZSYmKTsKIAogICAgIExh
eW91dFRyZWVDb250ZW50JiBtX2xheW91dFRyZWVDb250ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvVGV4dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL1RleHRDb250ZXh0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZhMWFiZGEwZjVkODY4OTFkMjRkOGViNTc4MGE4ZWI4YzExYjYwOTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2xheW91dHRyZWUvVGV4dENvbnRleHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFU
VElOR19DT05URVhUKQotCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotc3RydWN0IFRleHRDb250ZXh0
IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBTdHJpbmcgY29u
dGVudDsKLSAgICBib29sIGNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nIHsgZmFsc2Ug
fTsKLX07Ci0KLX0KLX0KLSNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390344</attachid>
            <date>2020-02-10 21:28:49 -0800</date>
            <delta_ts>2020-02-11 07:13:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207530-20200210212849.patch</filename>
            <type>text/plain</type>
            <size>53350</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRkY2Q3YWUwYTc4Nzc1
OWQ5MDA2MWNlZDM1NmJjYWYwMGNjMWE3MS4uMTc0ZWRhMjE4ZDk0ZmE3MzhkM2I0MjMwMjAzOGY4
MzE1NzM1MDg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTAyLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW50cm9kdWNlIExh
eW91dDo6SW5saW5lVGV4dEJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA3NTMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTMzNjAyMD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBBbnkgdGV4dCB0
aGF0IGlzIGRpcmVjdGx5IGNvbnRhaW5lZCBpbnNpZGUgYSBibG9jayBjb250YWluZXIgZWxlbWVu
dCAobm90IGluc2lkZSBhbiBpbmxpbmUgZWxlbWVudCkgbXVzdCBiZSB0cmVhdGVkIGFzIGFuIGFu
b255bW91cyBpbmxpbmUgZWxlbWVudC4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIGxheW91dC9WZXJpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0Ojpj
aGVja0Zvck1hdGNoaW5nVGV4dFJ1bnMpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbGxlY3RJbmxpbmVDb250ZW50SWZOZWVkZWQp
OgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OnRyeUJyZWFraW5nVGV4
dFJ1biBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjptX3RleHRDb250ZXh0KToK
KyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVTb2Z0TGluZUJyZWFrSXRl
bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbTo6
Y3JlYXRlU29mdExpbmVCcmVha0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVTb2Z0TGluZUJyZWFrSXRlbTo6SW5saW5lU29mdExpbmVCcmVha0l0ZW0pOgorICAgICAgICAq
IGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjppc0VtcHR5Q29udGVu
dCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0
ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmlubGluZVRl
eHRCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6
Y3JlYXRlV2hpdGVzcGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVU
ZXh0SXRlbTo6Y3JlYXRlTm9uV2hpdGVzcGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1wdHlJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVUZXh0SXRlbTo6cmlnaHQgY29uc3QpOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6ZW5kc1dpdGhTb2Z0V3JhcE9wcG9ydHVuaXR5KToKKyAgICAgICAgKiBsYXlv
dXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6VGV4dFV0aWw6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGV4
dFV0aWw6OnNwbGl0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1Rl
eHRVdGlsLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
Qm94VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94VHJl
ZTo6YnVpbGRUcmVlKToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OkJveCk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5saW5lVGV4dEJveCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6aGFzVGV4dENvbnRlbnQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnRleHRDb250ZXh0IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpDb250YWluZXI6OkNvbnRhaW5lcik6CisgICAgICAgICgpOiBE
ZWxldGVkLgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3gu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29u
dGV4dC5oLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVUZXh0Qm94OjpJbmxpbmVU
ZXh0Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bV9jYW5Vc2VTaW1wbGlmaWVkQ29u
dGVudE1lYXN1cmluZyk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5saW5l
VGV4dEJveC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
VGV4dENvbnRleHQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEJveDo6
Y29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRCb3g6
OmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nIGNvbnN0KToKKyAgICAgICAgKiBsYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVUZXh0Qm94KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6Om91dHB1dExheW91dEJveCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0VHJlZUJ1aWxkZXIuaDoKKwogMjAyMC0wMi0xMCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRqdXN0IHRoZSBtaW5vciB2ZXJzaW9uIG51bWJlciBmb3Ig
dGhlIGRlc2t0b3AgdXNlciBhZ2VudCBzdHJpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAxNjNi
MjI5ZWExZDY4NTQ0NzA5YzU0NDhlYTE2YWRlN2VkNmE5YjdiLi5hNmZmZGZiOTdiMjFlY2M5OGIy
YWY5ZjIzNmI2YjI2ZDc5ZWIyYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTY4Niw3ICs2ODYs
NiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBsYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRCb3guaAogICAgIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxh
Y2VkLmgKLSAgICBsYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29udGV4dC5oCiAKICAgICBsb2FkZXIv
QWRDbGlja0F0dHJpYnV0aW9uLmgKICAgICBsb2FkZXIvQ2FudmFzQWN0aXZpdHlSZWNvcmQuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA3NmU5ZTFmMzNjOTk1N2VjNTliYzc3MjIzOThlMDZhZWU1YmY2MjBh
Li5lYjM1M2MwNTc2ODI5NDU3N2JkNjNjMTZjMWQzNTc3ZTkwMzUwZmM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTQ1MSw2ICsxNDUxLDcgQEAgbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25D
b250ZXh0LmNwcAogbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZhbGlkYXRpb25TdGF0ZS5jcHAKIGxh
eW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dENv
bnRhaW5lci5jcHAKK2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guY3BwCiBs
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xh
eW91dFRyZWVCdWlsZGVyLmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRp
bmdDb250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDc3MmQ2NjhkZTc3MWNiZDIyMzFmMjIwZDJjMjk0MDk2NDc3Mzk1
YTkuLjZjYjc1MTk2YjliNDUwMzYwOGFhOTE2NTdhYmIyYWJjOGMyZTk4NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3OSw3
ICszNzksNiBAQAogCQkxMTMxMENGNjIwQkE0QTU2MDA2NUE4RDAgLyogTGF5b3V0Q2hpbGRJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEx
MDBGQzkyMDkyN0NCQzAwODFBQTZDIC8qIExheW91dENoaWxkSXRlcmF0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTMxMENGNzIwQkE0QTYy
MDA2NUE4RDAgLyogTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTExMDBGQ0EyMDkyODY4RDAwODFBQTZDIC8qIExh
eW91dEFuY2VzdG9ySXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxMTM0MDlEQTIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1
aWxkZXJDb250aW51YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExMzQwOUQ4MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNv
bnRpbnVhdGlvbi5oICovOyB9OwotCQkxMTNBM0NCNDIzODU4NjAxMDBBRTNFQ0UgLyogVGV4dENv
bnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEx
M0EzQ0IyMjM4NTg2MDAwMEFFM0VDRSAvKiBUZXh0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExM0QwQjUyMUY5RkREMkIwMEY2MTFC
QiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxMTNEMEI1MDFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3
TGF5b3V0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTExNUNGQTZBMjA4QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE1Q0ZBNjgy
MDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTE1Q0ZBNkUyMDhBRkFCNzAwMUU2OTkx
IC8qIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDExNUNGQTZDMjA4QUZBQjYwMDFFNjk5MSAvKiBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTIwNTAsNiArMjA0OSw3IEBACiAJCTZFRDg3OEM1MTQ3NDkzRjQwMDRDMzU5NyAv
KiBSZW5kZXJUYWJsZUNhcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFRDg3OEMzMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRp
b24uaCAqLzsgfTsKIAkJNkVEOEMzN0ExODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4QzM3ODE4M0JG
RjhDMDA5RTUzQkQgLyogQm94U2hhcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2RUU4QTc3MzEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RUU4QTc3MTEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmggKi87IH07CisJCTZGMEI5OEI1MjNGMjY4RUMwMEVFQzJGMiAvKiBMYXlvdXRJbmxpbmVU
ZXh0Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RjBCOThCMzIzRjI2OEVCMDBFRUMyRjIgLyogTGF5b3V0SW5saW5lVGV4dEJveC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGMENENjk1MjI5RUQz
MjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGlu
ZUxpbmVCdWlsZGVyLmggKi87IH07CiAJCTZGMUNDMURFMjI1RjhCNDkwMDcyMEFEMiAvKiBJbmxp
bmVUZXh0SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkYxQ0MxREQyMjVGOEI0MjAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkYyNkJCNkMyMzM0M0U2
RjAwMkYyQkVBIC8qIExheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZGMjZCQjZCMjMzNDNFNUIwMDJGMkJFQSAvKiBMYXlvdXRDb250
ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTU5MTUsNyArNTkxNSw2IEBACiAJCTExMkZCMzUwMjM5QzIzQzQwMDg3MDU0QSAvKiBEaXNwbGF5
SW5saW5lUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5SW5s
aW5lUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTM0MDlENzIwM0UwMzgw
MDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxMTM0MDlEODIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1
aWxkZXJDb250aW51YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJDb250
aW51YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTEzQTNDQjIyMzg1ODYw
MDAwQUUzRUNFIC8qIFRleHRDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRleHRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExM0QwQjRG
MUY5RkREMkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZyYW1lVmlld0xheW91dENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxMTNEMEI1MDFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3TGF5b3V0Q29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVZpZXdMYXlvdXRDb250ZXh0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExNUNBODMwMjMzMjhCMUUwMEZEM0IwOCAvKiBMYXlvdXRV
bml0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRVbml0cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC05Mjk0LDYgKzkyOTMsOCBAQAogCQk2RUU4QTc3MDEwRjgwM0Yz
MDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRThBNzcxMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dl
YkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZGMDgzMERGMjBCNDY5NTEwMDhBOTQ1QiAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkYwQjk4QjMyM0YyNjhFQjAwRUVD
MkYyIC8qIExheW91dElubGluZVRleHRCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGF5b3V0SW5saW5lVGV4dEJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk2RjBCOThCNjIzRjI2OTA2MDBFRUMyRjIgLyogTGF5b3V0SW5saW5lVGV4dEJveC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMYXlvdXRJbmxpbmVUZXh0Qm94LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkYwQ0Q2OTIyMjlFRDMxOTAwQzU5OTRFIC8qIElubGluZUxpbmVCdWls
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUxpbmVCdWlsZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGlu
ZUxpbmVCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUxp
bmVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGMTBCMDg2MjJCODU2
OEQwMDkwRTY5QyAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNjc0MywxMiArMTY3NDQsMTMgQEAKIAkJCQkxMTk5RkE0NTIw
OEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29udGFpbmVyLmNwcCAqLywKIAkJCQkxMTk5RkE0NDIw
OEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29udGFpbmVyLmggKi8sCiAJCQkJMTFCMDQyRkIyMEIw
RTIxNDAwODI4QTZCIC8qIExheW91dERlc2NlbmRhbnRJdGVyYXRvci5oICovLAorCQkJCTZGMEI5
OEI2MjNGMjY5MDYwMEVFQzJGMiAvKiBMYXlvdXRJbmxpbmVUZXh0Qm94LmNwcCAqLywKKwkJCQk2
RjBCOThCMzIzRjI2OEVCMDBFRUMyRjIgLyogTGF5b3V0SW5saW5lVGV4dEJveC5oICovLAogCQkJ
CTExMTAwRkM3MjA5Mjc2NEMwMDgxQUE2QyAvKiBMYXlvdXRJdGVyYXRvci5oICovLAogCQkJCTEx
MUM2MTU3MjBBRDFBRTEwMDVCODJGQSAvKiBMYXlvdXRSZXBsYWNlZC5jcHAgKi8sCiAJCQkJMTEx
QzYxNTYyMEFEMUFFMTAwNUI4MkZBIC8qIExheW91dFJlcGxhY2VkLmggKi8sCiAJCQkJMTExMDBG
RDUyMDk1MTRERTAwODFBQTZDIC8qIExheW91dFRyZWVCdWlsZGVyLmNwcCAqLywKIAkJCQkxMTEw
MEZENzIwOTUxNERGMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxkZXIuaCAqLywKLQkJCQkxMTNB
M0NCMjIzODU4NjAwMDBBRTNFQ0UgLyogVGV4dENvbnRleHQuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gbGF5b3V0dHJlZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTMwMSw2ICsz
MTMwMyw3IEBACiAJCQkJMTE5OUZBNDYyMDhFMzVBMzAwMjM1OENDIC8qIExheW91dENvbnRhaW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkJCNkMyMzM0M0U2RjAwMkYyQkVBIC8qIExheW91
dENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTExMzEwQ0Y1MjBCQTRBNEMwMDY1QThEMCAv
KiBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGMEI5OEI1
MjNGMjY4RUMwMEVFQzJGMiAvKiBMYXlvdXRJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDE4MDI1NTIzRDQ1NDlCMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGNDIwQkE0
QTNEMDA2NUE4RDAgLyogTGF5b3V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzI2OTgs
NyArMzI3MDEsNiBAQAogCQkJCUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNV
c2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIwRDAwNkMxRDAwRUY2RjI2
IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQzQ0I4MjEyRjI1RTUx
MDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTEzQTNDQjQy
Mzg1ODYwMTAwQUUzRUNFIC8qIFRleHRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDJC
OTdDQTEzMTM4OTQzMDA4QkVGNEIgLyogVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1ODJERTMyNTFDMzBDODU0MDBCRTAyQTggLyogVGV4dERlY29yYXRpb25Q
YWludGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzczQTcxNTIxODU3NTg3MDA0Q0NFQTUgLyog
VGV4dERlY29yYXRpb25UaGlja25lc3MuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvVmVyaWZpY2F0aW9uLmNwcAppbmRleCA0NGYzY2M3MDFkYzg4NDZiZDFiNjcyNGE0ZjJiMjc4
Y2JmOTgwZTgwLi41MzQxZTNjZjUzZDlhY2JmZTg0ODU4YjVkMzEwN2FhYjM1YTg3NzVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHN0
YXRpYyBib29sIGNoZWNrRm9yTWF0Y2hpbmdOb25UZXh0UnVucyhjb25zdCBEaXNwbGF5OjpSdW4m
IGlubGluZVJ1biwgY29uc3QgV2ViCiB9CiAKIAotc3RhdGljIGJvb2wgY2hlY2tGb3JNYXRjaGlu
Z1RleHRSdW5zKGNvbnN0IERpc3BsYXk6OlJ1biYgaW5saW5lUnVuLCBjb25zdCBJbmxpbmVUZXh0
Qm94JiBpbmxpbmVUZXh0Qm94KQorc3RhdGljIGJvb2wgY2hlY2tGb3JNYXRjaGluZ1RleHRSdW5z
KGNvbnN0IERpc3BsYXk6OlJ1biYgaW5saW5lUnVuLCBjb25zdCBXZWJDb3JlOjpJbmxpbmVUZXh0
Qm94JiBpbmxpbmVUZXh0Qm94KQogewogICAgIHJldHVybiBhcmVFc3NlbnRpYWxseUVxdWFsKGlu
bGluZVRleHRCb3gubGVmdCgpLCBpbmxpbmVSdW4ubGVmdCgpKQogICAgICAgICAmJiBhcmVFc3Nl
bnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gucmlnaHQoKSwgaW5saW5lUnVuLnJpZ2h0KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNTJjNzZlYjk0NjQ5YWJkNGE2
MGZkY2NhOWVmZTEzMjQ4YzA2YmY3Yy4uZDdlYWJjOWYxOTU2ZWIzNjAwOTVlODIzYWI2ZTE3MTUw
ZTBhYzY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5l
ci5oIgogI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNpbmNsdWRlICJMYXlvdXRJbmxpbmVU
ZXh0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpAQCAtMzM4LDggKzMzOSw4IEBA
IHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbGxlY3RJbmxpbmVDb250ZW50SWZOZWVk
ZWQoKQogICAgICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxC
b3goKSkKICAgICAgICAgICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkSW5saW5lSXRlbSh7IGxh
eW91dEJveCwgSW5saW5lSXRlbTo6VHlwZTo6Qm94IH0pOwogICAgICAgICAgICAgZWxzZSBpZiAo
bGF5b3V0Qm94LmlzQW5vbnltb3VzKCkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQobGF5b3V0
Qm94Lmhhc1RleHRDb250ZW50KCkpOwotICAgICAgICAgICAgICAgIElubGluZVRleHRJdGVtOjpj
cmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoZm9ybWF0dGluZ1N0YXRlLmlubGluZUl0ZW1zKCksIGxh
eW91dEJveCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGxheW91dEJveC5pc0lubGluZVRleHRC
b3goKSk7CisgICAgICAgICAgICAgICAgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRl
eHRJdGVtcyhmb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKSwgZG93bmNhc3Q8SW5saW5lVGV4
dEJveD4obGF5b3V0Qm94KSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGxheW91dEJveC5pc0lu
bGluZUJveCgpKQogICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVJdGVt
KHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpDb250YWluZXJFbmQgfSk7CiAgICAgICAg
ICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKaW5kZXggNjM1YzJlMDM0ZjcxYzQyNjlm
ZjFkYTBjN2RmZmQ3NmJkNWM0ZWVmNi4uZDRjMDA0Y2JmMWEwYTI1YmVkZWVjMzE5YjI5ODQ1MTVk
OWZkZjQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIE9w
dGlvbmFsPExpbmVCcmVha2VyOjpQYXJ0aWFsUnVuPiBMaW5lQnJlYWtlcjo6dHJ5QnJlYWtpbmdU
ZXh0UnVuKGNvbnN0IFJ1biYgb3ZlCiAgICAgICAgICAgICByZXR1cm4gUGFydGlhbFJ1biB7IGlu
bGluZVRleHRJdGVtLmxlbmd0aCgpLCBvdmVyZmxvd1J1bi5sb2dpY2FsV2lkdGgsIGZhbHNlIH07
CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IFBhc3MgaW4gdGhlIGNvbnRlbnQgbG9naWNh
bCBsZWZ0IHRvIGJlIGFibGUgdG8gbWVhc3VyZSB0YWJzLgotICAgICAgICBhdXRvIHNwbGl0RGF0
YSA9IFRleHRVdGlsOjpzcGxpdChpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSwgaW5saW5lVGV4
dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCksIG92ZXJmbG93UnVuLmxvZ2lj
YWxXaWR0aCwgYXZhaWxhYmxlV2lkdGgsIHsgfSk7CisgICAgICAgIGF1dG8gc3BsaXREYXRhID0g
VGV4dFV0aWw6OnNwbGl0KGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgaW5saW5lVGV4
dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCksIG92ZXJmbG93UnVuLmxvZ2lj
YWxXaWR0aCwgYXZhaWxhYmxlV2lkdGgsIHsgfSk7CiAgICAgICAgIHJldHVybiBQYXJ0aWFsUnVu
IHsgc3BsaXREYXRhLmxlbmd0aCwgc3BsaXREYXRhLmxvZ2ljYWxXaWR0aCwgZmFsc2UgfTsKICAg
ICB9CiAKQEAgLTMzNiwxNCArMzM2LDEzIEBAIE9wdGlvbmFsPExpbmVCcmVha2VyOjpQYXJ0aWFs
UnVuPiBMaW5lQnJlYWtlcjo6dHJ5QnJlYWtpbmdUZXh0UnVuKGNvbnN0IFJ1biYgb3ZlCiAgICAg
ICAgICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoRXhjbHVkaW5nSHlwaGVuID0gYXZhaWxhYmxlV2lk
dGggLSBoeXBoZW5XaWR0aDsKICAgICAgICAgICAgIGlmIChhdmFpbGFibGVXaWR0aEV4Y2x1ZGlu
Z0h5cGhlbiA8PSAwIHx8ICFlbm91Z2hXaWR0aEZvckh5cGhlbmF0aW9uKGF2YWlsYWJsZVdpZHRo
RXhjbHVkaW5nSHlwaGVuLCBmb250Q2FzY2FkZS5waXhlbFNpemUoKSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICAgICAgICAgIGxlZnRTaWRlTGVuZ3RoID0gVGV4dFV0aWw6OnNw
bGl0KGlubGluZVRleHRJdGVtLmxheW91dEJveCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBy
dW5MZW5ndGgsIG92ZXJmbG93UnVuLmxvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlV2lkdGhFeGNsdWRp
bmdIeXBoZW4sIHsgfSkubGVuZ3RoOworICAgICAgICAgICAgbGVmdFNpZGVMZW5ndGggPSBUZXh0
VXRpbDo6c3BsaXQoaW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpLCBpbmxpbmVUZXh0SXRl
bS5zdGFydCgpLCBydW5MZW5ndGgsIG92ZXJmbG93UnVuLmxvZ2ljYWxXaWR0aCwgYXZhaWxhYmxl
V2lkdGhFeGNsdWRpbmdIeXBoZW4sIHsgfSkubGVuZ3RoOwogICAgICAgICB9CiAgICAgICAgIGlm
IChsZWZ0U2lkZUxlbmd0aCA8IGxpbWl0QmVmb3JlKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsK
LSAgICAgICAgYXV0byB0ZXh0Q29udGVudCA9IGlubGluZVRleHRJdGVtLmxheW91dEJveCgpLnRl
eHRDb250ZXh0KCktPmNvbnRlbnQ7CiAgICAgICAgIC8vIEFkanVzdCBiZWZvcmUgaW5kZXggdG8g
YWNjb21tb2RhdGUgdGhlIGxpbWl0LWFmdGVyIHZhbHVlIChpdCdzIHRoZSBsYXN0IHBvdGVudGlh
bCBoeXBoZW4gbG9jYXRpb24gaW4gdGhpcyBydW4pLgogICAgICAgICBhdXRvIGh5cGhlbkJlZm9y
ZSA9IHN0ZDo6bWluKGxlZnRTaWRlTGVuZ3RoLCBydW5MZW5ndGggLSBsaW1pdEFmdGVyKSArIDE7
Ci0gICAgICAgIHVuc2lnbmVkIGh5cGhlbkxvY2F0aW9uID0gbGFzdEh5cGhlbkxvY2F0aW9uKFN0
cmluZ1ZpZXcodGV4dENvbnRlbnQpLnN1YnN0cmluZyhpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBp
bmxpbmVUZXh0SXRlbS5sZW5ndGgoKSksIGh5cGhlbkJlZm9yZSwgc3R5bGUubG9jYWxlKCkpOwor
ICAgICAgICB1bnNpZ25lZCBoeXBoZW5Mb2NhdGlvbiA9IGxhc3RIeXBoZW5Mb2NhdGlvbihTdHJp
bmdWaWV3KGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKS5jb250ZW50KCkpLnN1YnN0cmlu
ZyhpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSksIGh5cGhl
bkJlZm9yZSwgc3R5bGUubG9jYWxlKCkpOwogICAgICAgICBpZiAoIWh5cGhlbkxvY2F0aW9uIHx8
IGh5cGhlbkxvY2F0aW9uIDwgbGltaXRCZWZvcmUpCiAgICAgICAgICAgICByZXR1cm4geyB9Owog
ICAgICAgICAvLyBoeXBoZW5Mb2NhdGlvbiBpcyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhp
cyBJbmxpbmVJdGVtVGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCBmMjRkMDIzZTRk
MjFhYTU5NjRjNjk4ODdmMWVjYjQwNmZmZDZkMzQxLi42ZmRjZjU3YjUxOWU2MWVjZjlhOWE2YWY5
NjU4NjQzZTdmN2JmZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC03NTAsNyArNzUw
LDcgQEAgTGluZUJ1aWxkZXI6OlJ1bjo6UnVuKGNvbnN0IElubGluZVNvZnRMaW5lQnJlYWtJdGVt
JiBzb2Z0TGluZUJyZWFrSXRlbSwgSW5saW5lTGEKICAgICA6IG1fdHlwZShzb2Z0TGluZUJyZWFr
SXRlbS50eXBlKCkpCiAgICAgLCBtX2xheW91dEJveCgmc29mdExpbmVCcmVha0l0ZW0ubGF5b3V0
Qm94KCkpCiAgICAgLCBtX2xvZ2ljYWxSZWN0KHsgMCwgbG9naWNhbExlZnQsIDAsIDAgfSkKLSAg
ICAsIG1fdGV4dENvbnRleHQoeyBzb2Z0TGluZUJyZWFrSXRlbS5wb3NpdGlvbigpLCAxLCBzb2Z0
TGluZUJyZWFrSXRlbS5sYXlvdXRCb3goKS50ZXh0Q29udGV4dCgpLT5jb250ZW50IH0pCisgICAg
LCBtX3RleHRDb250ZXh0KHsgc29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSwgc29mdExp
bmVCcmVha0l0ZW0uaW5saW5lVGV4dEJveCgpLmNvbnRlbnQoKSB9KQogewogfQogCkBAIC03NTks
NyArNzU5LDcgQEAgTGluZUJ1aWxkZXI6OlJ1bjo6UnVuKGNvbnN0IElubGluZVRleHRJdGVtJiBp
bmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2cKICAgICAsIG1fbGF5b3V0Qm94KCZp
bmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkKICAgICAsIG1fbG9naWNhbFJlY3QoeyAwLCBsb2dp
Y2FsTGVmdCwgbG9naWNhbFdpZHRoLCAwIH0pCiAgICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5
cGUodHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRlbSkpCi0gICAgLCBtX3RleHRD
b250ZXh0KHsgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgbV90cmFpbGluZ1doaXRlc3BhY2VUeXBl
ID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6Q29sbGFwc2VkID8gMSA6IGlubGluZVRleHRJdGVtLmxl
bmd0aCgpLCBpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKS50ZXh0Q29udGV4dCgpLT5jb250ZW50
IH0pCisgICAgLCBtX3RleHRDb250ZXh0KHsgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgbV90cmFp
bGluZ1doaXRlc3BhY2VUeXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6Q29sbGFwc2VkID8gMSA6
IGlubGluZVRleHRJdGVtLmxlbmd0aCgpLCBpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCku
Y29udGVudCgpIH0pCiB7CiAgICAgaWYgKG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSAhPSBUcmFp
bGluZ1doaXRlc3BhY2U6Ok5vbmUpIHsKICAgICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2VXaWR0
aCA9IGxvZ2ljYWxXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZVNvZnRMaW5lQnJlYWtJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oCmluZGV4IGY2
ZDJjMGRiYzBiOGQwMTQ5ZGM5ZmMzMDEwZjVkZjA4ZjFiYWQyZTUuLjllYTA2ZmJjZGQxNzgyNDJi
YWI1NDczYTk0YTEzYWMzMGJjNzk3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVNvZnRMaW5lQnJlYWtJdGVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lU29mdExpbmVCcmVha0l0ZW0u
aApAQCAtMzQsMjAgKzM0LDIxIEBAIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBJbmxpbmVT
b2Z0TGluZUJyZWFrSXRlbSA6IHB1YmxpYyBJbmxpbmVJdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgSW5saW5lU29mdExpbmVCcmVha0l0ZW0gY3JlYXRlU29mdExpbmVCcmVha0l0ZW0oY29uc3Qg
Qm94JiwgdW5zaWduZWQgcG9zaXRpb24pOworICAgIHN0YXRpYyBJbmxpbmVTb2Z0TGluZUJyZWFr
SXRlbSBjcmVhdGVTb2Z0TGluZUJyZWFrSXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiwgdW5zaWdu
ZWQgcG9zaXRpb24pOwogCiAgICAgdW5zaWduZWQgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBt
X3N0YXJ0T3JQb3NpdGlvbjsgfQorICAgIGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRC
b3goKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PihsYXlvdXRCb3goKSk7
IH0KIAotICAgIElubGluZVNvZnRMaW5lQnJlYWtJdGVtKGNvbnN0IEJveCYsIHVuc2lnbmVkIHBv
c2l0aW9uKTsKKyAgICBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbShjb25zdCBJbmxpbmVUZXh0Qm94
JiwgdW5zaWduZWQgcG9zaXRpb24pOwogfTsKIAotaW5saW5lIElubGluZVNvZnRMaW5lQnJlYWtJ
dGVtIElubGluZVNvZnRMaW5lQnJlYWtJdGVtOjpjcmVhdGVTb2Z0TGluZUJyZWFrSXRlbShjb25z
dCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgcG9zaXRpb24pCitpbmxpbmUgSW5saW5lU29mdExp
bmVCcmVha0l0ZW0gSW5saW5lU29mdExpbmVCcmVha0l0ZW06OmNyZWF0ZVNvZnRMaW5lQnJlYWtJ
dGVtKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIHVuc2lnbmVkIHBvc2l0aW9u
KQogewotICAgIHJldHVybiB7IGlubGluZUJveCwgcG9zaXRpb24gfTsKKyAgICByZXR1cm4geyBp
bmxpbmVUZXh0Qm94LCBwb3NpdGlvbiB9OwogfQogCi1pbmxpbmUgSW5saW5lU29mdExpbmVCcmVh
a0l0ZW06OklubGluZVNvZnRMaW5lQnJlYWtJdGVtKGNvbnN0IEJveCYgaW5saW5lQm94LCB1bnNp
Z25lZCBwb3NpdGlvbikKLSAgICA6IElubGluZUl0ZW0oaW5saW5lQm94LCBUeXBlOjpTb2Z0TGlu
ZUJyZWFrKQoraW5saW5lIElubGluZVNvZnRMaW5lQnJlYWtJdGVtOjpJbmxpbmVTb2Z0TGluZUJy
ZWFrSXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCB1bnNpZ25lZCBwb3Np
dGlvbikKKyAgICA6IElubGluZUl0ZW0oaW5saW5lVGV4dEJveCwgVHlwZTo6U29mdExpbmVCcmVh
aykKIHsKICAgICBtX3N0YXJ0T3JQb3NpdGlvbiA9IHBvc2l0aW9uOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0u
Y3BwCmluZGV4IDFjZDMzYmFkMzgzYTU2Y2JjMGQwMjIyNGEwMjE4ZTFhYzM5ZjgwMjUuLjhmNzgx
YWQ2M2Q2YWRlMDQ4Mzc3ODhhY2UyMDAyOThhNzIzOGFiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5jcHAK
QEAgLTY1LDIyICs2NSwyMSBAQCBzdGF0aWMgdW5zaWduZWQgbW92ZVRvTmV4dEJyZWFrYWJsZVBv
c2l0aW9uKHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24sIExhenlMaW5lQnJlYQogICAgIHJldHVybiB0
ZXh0TGVuZ3RoIC0gc3RhcnRQb3NpdGlvbjsKIH0KIAotdm9pZCBJbmxpbmVUZXh0SXRlbTo6Y3Jl
YXRlQW5kQXBwZW5kVGV4dEl0ZW1zKElubGluZUl0ZW1zJiBpbmxpbmVDb250ZW50LCBjb25zdCBC
b3gmIGlubGluZUJveCkKK3ZvaWQgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJ
dGVtcyhJbmxpbmVJdGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QgSW5saW5lVGV4dEJveCYgaW5s
aW5lVGV4dEJveCkKIHsKLSAgICBhdXRvJiB0ZXh0Q29udGV4dCA9ICppbmxpbmVCb3gudGV4dENv
bnRleHQoKTsKLSAgICBhdXRvIHRleHQgPSB0ZXh0Q29udGV4dC5jb250ZW50OworICAgIGF1dG8g
dGV4dCA9IGlubGluZVRleHRCb3guY29udGVudCgpOwogICAgIGlmICghdGV4dC5sZW5ndGgoKSkK
LSAgICAgICAgcmV0dXJuIGlubGluZUNvbnRlbnQuYXBwZW5kKElubGluZVRleHRJdGVtOjpjcmVh
dGVFbXB0eUl0ZW0oaW5saW5lQm94KSk7CisgICAgICAgIHJldHVybiBpbmxpbmVDb250ZW50LmFw
cGVuZChJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1wdHlJdGVtKGlubGluZVRleHRCb3gpKTsKIAot
ICAgIGF1dG8mIHN0eWxlID0gaW5saW5lQm94LnN0eWxlKCk7CisgICAgYXV0byYgc3R5bGUgPSBp
bmxpbmVUZXh0Qm94LnN0eWxlKCk7CiAgICAgYXV0byYgZm9udCA9IHN0eWxlLmZvbnRDYXNjYWRl
KCk7CiAgICAgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIGxpbmVCcmVha0l0ZXJhdG9yKHRleHQpOwog
ICAgIHVuc2lnbmVkIGN1cnJlbnRQb3NpdGlvbiA9IDA7CiAKICAgICBhdXRvIGlubGluZUl0ZW1X
aWR0aCA9IFsmXShhdXRvIHN0YXJ0UG9zaXRpb24sIGF1dG8gbGVuZ3RoKSAtPiBPcHRpb25hbDxJ
bmxpbmVMYXlvdXRVbml0PiB7Ci0gICAgICAgIGlmICghdGV4dENvbnRleHQuY2FuVXNlU2ltcGxp
ZmllZENvbnRlbnRNZWFzdXJpbmcpCisgICAgICAgIGlmICghaW5saW5lVGV4dEJveC5jYW5Vc2VT
aW1wbGlmaWVkQ29udGVudE1lYXN1cmluZygpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAg
ICAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVCb3gsIHN0YXJ0UG9zaXRpb24sIHN0
YXJ0UG9zaXRpb24gKyBsZW5ndGgpOworICAgICAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlu
bGluZVRleHRCb3gsIHN0YXJ0UG9zaXRpb24sIHN0YXJ0UG9zaXRpb24gKyBsZW5ndGgpOwogICAg
IH07CiAKICAgICB3aGlsZSAoY3VycmVudFBvc2l0aW9uIDwgdGV4dC5sZW5ndGgoKSkgewpAQCAt
OTAsMTYgKzg5LDE2IEBAIHZvaWQgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJ
dGVtcyhJbmxpbmVJdGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QKIAogICAgICAgICAvLyBTZWdt
ZW50IGJyZWFrcyB3aXRoIHByZXNlcnZlIG5ldyBsaW5lIHN0eWxlICh3aGl0ZS1zcGFjZTogcHJl
LCBwcmUtd3JhcCwgYnJlYWstc3BhY2VzIGFuZCBwcmUtbGluZSkgY29tcHV0ZSB0byBmb3JjZWQg
bGluZSBicmVhay4KICAgICAgICAgaWYgKGlzU2VnbWVudEJyZWFrQ2FuZGlkYXRlKHRleHRbY3Vy
cmVudFBvc2l0aW9uXSkgJiYgc3R5bGUucHJlc2VydmVOZXdsaW5lKCkpIHsKLSAgICAgICAgICAg
IGlubGluZUNvbnRlbnQuYXBwZW5kKElubGluZVNvZnRMaW5lQnJlYWtJdGVtOjpjcmVhdGVTb2Z0
TGluZUJyZWFrSXRlbShpbmxpbmVCb3gsIGN1cnJlbnRQb3NpdGlvbikpOworICAgICAgICAgICAg
aW5saW5lQ29udGVudC5hcHBlbmQoSW5saW5lU29mdExpbmVCcmVha0l0ZW06OmNyZWF0ZVNvZnRM
aW5lQnJlYWtJdGVtKGlubGluZVRleHRCb3gsIGN1cnJlbnRQb3NpdGlvbikpOwogICAgICAgICAg
ICAgKytjdXJyZW50UG9zaXRpb247CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
CiAgICAgICAgIGlmIChpc1doaXRlc3BhY2VDaGFyYWN0ZXIodGV4dFtjdXJyZW50UG9zaXRpb25d
LCBzdHlsZS5wcmVzZXJ2ZU5ld2xpbmUoKSkpIHsKICAgICAgICAgICAgIGF1dG8gYXBwZW5kV2hp
dGVzcGFjZUl0ZW0gPSBbJl0gKGF1dG8gc3RhcnRQb3NpdGlvbiwgYXV0byBpdGVtTGVuZ3RoKSB7
Ci0gICAgICAgICAgICAgICAgYXV0byBzaW1wbGVTaW5nbGVXaGl0ZXNwYWNlQ29udGVudCA9IHRl
eHRDb250ZXh0LmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nICYmIChpdGVtTGVuZ3Ro
ID09IDEgfHwgc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCkpOworICAgICAgICAgICAgICAgIGF1
dG8gc2ltcGxlU2luZ2xlV2hpdGVzcGFjZUNvbnRlbnQgPSBpbmxpbmVUZXh0Qm94LmNhblVzZVNp
bXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKCkgJiYgKGl0ZW1MZW5ndGggPT0gMSB8fCBzdHlsZS5j
b2xsYXBzZVdoaXRlU3BhY2UoKSk7CiAgICAgICAgICAgICAgICAgYXV0byB3aWR0aCA9IHNpbXBs
ZVNpbmdsZVdoaXRlc3BhY2VDb250ZW50ID8gbWFrZU9wdGlvbmFsKElubGluZUxheW91dFVuaXQg
eyBmb250LnNwYWNlV2lkdGgoKSB9KSA6IGlubGluZUl0ZW1XaWR0aChzdGFydFBvc2l0aW9uLCBp
dGVtTGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVuZChJbmxpbmVU
ZXh0SXRlbTo6Y3JlYXRlV2hpdGVzcGFjZUl0ZW0oaW5saW5lQm94LCBzdGFydFBvc2l0aW9uLCBp
dGVtTGVuZ3RoLCB3aWR0aCkpOworICAgICAgICAgICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5k
KElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShpbmxpbmVUZXh0Qm94LCBzdGFy
dFBvc2l0aW9uLCBpdGVtTGVuZ3RoLCB3aWR0aCkpOwogICAgICAgICAgICAgfTsKIAogICAgICAg
ICAgICAgYXV0byBsZW5ndGggPSBtb3ZlVG9OZXh0Tm9uV2hpdGVzcGFjZVBvc2l0aW9uKHRleHQs
IGN1cnJlbnRQb3NpdGlvbiwgc3R5bGUucHJlc2VydmVOZXdsaW5lKCkpOwpAQCAtMTE2LDcgKzEx
NSw3IEBAIHZvaWQgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyhJbmxp
bmVJdGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8g
bGVuZ3RoID0gbW92ZVRvTmV4dEJyZWFrYWJsZVBvc2l0aW9uKGN1cnJlbnRQb3NpdGlvbiwgbGlu
ZUJyZWFrSXRlcmF0b3IsIHN0eWxlKTsKLSAgICAgICAgaW5saW5lQ29udGVudC5hcHBlbmQoSW5s
aW5lVGV4dEl0ZW06OmNyZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGlubGluZUJveCwgY3VycmVudFBv
c2l0aW9uLCBsZW5ndGgsIGlubGluZUl0ZW1XaWR0aChjdXJyZW50UG9zaXRpb24sIGxlbmd0aCkp
KTsKKyAgICAgICAgaW5saW5lQ29udGVudC5hcHBlbmQoSW5saW5lVGV4dEl0ZW06OmNyZWF0ZU5v
bldoaXRlc3BhY2VJdGVtKGlubGluZVRleHRCb3gsIGN1cnJlbnRQb3NpdGlvbiwgbGVuZ3RoLCBp
bmxpbmVJdGVtV2lkdGgoY3VycmVudFBvc2l0aW9uLCBsZW5ndGgpKSk7CiAgICAgICAgIGN1cnJl
bnRQb3NpdGlvbiArPSBsZW5ndGg7CiAgICAgfQogfQpAQCAtMTI0LDcgKzEyMyw3IEBAIHZvaWQg
SW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyhJbmxpbmVJdGVtcyYgaW5s
aW5lQ29udGVudCwgY29uc3QKIGJvb2wgSW5saW5lVGV4dEl0ZW06OmlzRW1wdHlDb250ZW50KCkg
Y29uc3QKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIGZvciBtb3JlIHplcm8gd2lk
dGggY29udGVudCBhbmQgbm90IGp1c3QgVSsyMDBCLgotICAgIHJldHVybiAhbV9sZW5ndGggfHwg
KG1fbGVuZ3RoID09IDEgJiYgbGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+Y29udGVudFtzdGFy
dCgpXSA9PSB6ZXJvV2lkdGhTcGFjZSk7IAorICAgIHJldHVybiAhbV9sZW5ndGggfHwgKG1fbGVu
Z3RoID09IDEgJiYgaW5saW5lVGV4dEJveCgpLmNvbnRlbnQoKVtzdGFydCgpXSA9PSB6ZXJvV2lk
dGhTcGFjZSk7IAogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uaAppbmRleCAyZjE3ODc3YWJkOGIxYmM4ODFm
ZmFkYTQ4NzcyZTU4ZDU0MTc3NWYzLi43NDExODllZTI0ZDgwODZmNTc2YTE2YWNmNDU2ZjY3MGNi
N2Y4YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVUZXh0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZVRleHRJdGVtLmgKQEAgLTI5LDEzICsyOSwxNCBAQAogCiAjaW5jbHVkZSAi
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlbS5oIgorI2luY2x1
ZGUgIkxheW91dElubGluZVRleHRCb3guaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIExheW91dCB7CiAKIGNsYXNzIElubGluZVRleHRJdGVtIDogcHVibGljIElubGluZUl0ZW0g
ewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyhJbmxp
bmVJdGVtcyYsIGNvbnN0IEJveCYpOworICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUFuZEFwcGVuZFRl
eHRJdGVtcyhJbmxpbmVJdGVtcyYsIGNvbnN0IElubGluZVRleHRCb3gmKTsKIAogICAgIHVuc2ln
bmVkIHN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydE9yUG9zaXRpb247IH0KICAgICB1bnNp
Z25lZCBlbmQoKSBjb25zdCB7IHJldHVybiBzdGFydCgpICsgbGVuZ3RoKCk7IH0KQEAgLTQ2LDQ4
ICs0Nyw1MCBAQCBwdWJsaWM6CiAgICAgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgo
KSBjb25zdCB7IHJldHVybiBtX2hhc1dpZHRoID8gbWFrZU9wdGlvbmFsKG1fd2lkdGgpIDogT3B0
aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4geyB9OyB9CiAgICAgYm9vbCBpc0VtcHR5Q29udGVudCgp
IGNvbnN0OwogCisgICAgY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCgpIGNvbnN0
IHsgcmV0dXJuIGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCgpKTsgfQorCiAgICAg
SW5saW5lVGV4dEl0ZW0gbGVmdCh1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwogICAgIElubGluZVRl
eHRJdGVtIHJpZ2h0KHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdXNp
bmcgSW5saW5lSXRlbTo6VGV4dEl0ZW1UeXBlOwogCi0gICAgSW5saW5lVGV4dEl0ZW0oY29uc3Qg
Qm94JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5
b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlwZSk7Ci0gICAgSW5saW5lVGV4dEl0ZW0oY29uc3Qg
Qm94Jik7CisgICAgSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYsIHVuc2lnbmVk
IHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRo
LCBUZXh0SXRlbVR5cGUpOworICAgIElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gm
KTsKIAotICAgIHN0YXRpYyBJbmxpbmVUZXh0SXRlbSBjcmVhdGVXaGl0ZXNwYWNlSXRlbShjb25z
dCBCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25hbDxJbmxpbmVM
YXlvdXRVbml0PiB3aWR0aCk7Ci0gICAgc3RhdGljIElubGluZVRleHRJdGVtIGNyZWF0ZU5vbldo
aXRlc3BhY2VJdGVtKGNvbnN0IEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgs
IE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKTsKLSAgICBzdGF0aWMgSW5saW5lVGV4
dEl0ZW0gY3JlYXRlRW1wdHlJdGVtKGNvbnN0IEJveCYpOworICAgIHN0YXRpYyBJbmxpbmVUZXh0
SXRlbSBjcmVhdGVXaGl0ZXNwYWNlSXRlbShjb25zdCBJbmxpbmVUZXh0Qm94JiwgdW5zaWduZWQg
c3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgp
OworICAgIHN0YXRpYyBJbmxpbmVUZXh0SXRlbSBjcmVhdGVOb25XaGl0ZXNwYWNlSXRlbShjb25z
dCBJbmxpbmVUZXh0Qm94JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9u
YWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgpOworICAgIHN0YXRpYyBJbmxpbmVUZXh0SXRlbSBj
cmVhdGVFbXB0eUl0ZW0oY29uc3QgSW5saW5lVGV4dEJveCYpOwogfTsKIAotaW5saW5lIElubGlu
ZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShjb25zdCBCb3gm
IGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5s
aW5lTGF5b3V0VW5pdD4gd2lkdGgpCitpbmxpbmUgSW5saW5lVGV4dEl0ZW0gSW5saW5lVGV4dEl0
ZW06OmNyZWF0ZVdoaXRlc3BhY2VJdGVtKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRC
b3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPElubGluZUxheW91
dFVuaXQ+IHdpZHRoKQogewotICAgIHJldHVybiB7IGlubGluZUJveCwgc3RhcnQsIGxlbmd0aCwg
d2lkdGgsIFRleHRJdGVtVHlwZTo6V2hpdGVzcGFjZSB9OworICAgIHJldHVybiB7IGlubGluZVRl
eHRCb3gsIHN0YXJ0LCBsZW5ndGgsIHdpZHRoLCBUZXh0SXRlbVR5cGU6OldoaXRlc3BhY2UgfTsK
IH0KIAotaW5saW5lIElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpjcmVhdGVOb25XaGl0
ZXNwYWNlSXRlbShjb25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgpCitpbmxpbmUgSW5saW5l
VGV4dEl0ZW0gSW5saW5lVGV4dEl0ZW06OmNyZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGNvbnN0IElu
bGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5n
dGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoKQogewotICAgIHJldHVybiB7IGlu
bGluZUJveCwgc3RhcnQsIGxlbmd0aCwgd2lkdGgsIFRleHRJdGVtVHlwZTo6Tm9uV2hpdGVzcGFj
ZSB9OworICAgIHJldHVybiB7IGlubGluZVRleHRCb3gsIHN0YXJ0LCBsZW5ndGgsIHdpZHRoLCBU
ZXh0SXRlbVR5cGU6Ok5vbldoaXRlc3BhY2UgfTsKIH0KIAotaW5saW5lIElubGluZVRleHRJdGVt
IElubGluZVRleHRJdGVtOjpjcmVhdGVFbXB0eUl0ZW0oY29uc3QgQm94JiBpbmxpbmVCb3gpCitp
bmxpbmUgSW5saW5lVGV4dEl0ZW0gSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUVtcHR5SXRlbShjb25z
dCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94KQogewotICAgIHJldHVybiB7IGlubGluZUJv
eCB9OworICAgIHJldHVybiB7IGlubGluZVRleHRCb3ggfTsKIH0KIAotaW5saW5lIElubGluZVRl
eHRJdGVtOjpJbmxpbmVUZXh0SXRlbShjb25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgc3Rh
cnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgsIFRl
eHRJdGVtVHlwZSB0ZXh0SXRlbVR5cGUpCi0gICAgOiBJbmxpbmVJdGVtKGlubGluZUJveCwgVHlw
ZTo6VGV4dCkKK2lubGluZSBJbmxpbmVUZXh0SXRlbTo6SW5saW5lVGV4dEl0ZW0oY29uc3QgSW5s
aW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0
aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlwZSB0ZXh0SXRl
bVR5cGUpCisgICAgOiBJbmxpbmVJdGVtKGlubGluZVRleHRCb3gsIFR5cGU6OlRleHQpCiB7CiAg
ICAgbV9zdGFydE9yUG9zaXRpb24gPSBzdGFydDsKICAgICBtX2xlbmd0aCA9IGxlbmd0aDsKICAg
ICBtX2hhc1dpZHRoID0gISF3aWR0aDsKLSAgICBtX2lzQ29sbGFwc2libGUgPSB0ZXh0SXRlbVR5
cGUgPT0gVGV4dEl0ZW1UeXBlOjpXaGl0ZXNwYWNlICYmIGlubGluZUJveC5zdHlsZSgpLmNvbGxh
cHNlV2hpdGVTcGFjZSgpOworICAgIG1faXNDb2xsYXBzaWJsZSA9IHRleHRJdGVtVHlwZSA9PSBU
ZXh0SXRlbVR5cGU6OldoaXRlc3BhY2UgJiYgaW5saW5lVGV4dEJveC5zdHlsZSgpLmNvbGxhcHNl
V2hpdGVTcGFjZSgpOwogICAgIG1fd2lkdGggPSB3aWR0aC52YWx1ZU9yKDApOwogICAgIG1fdGV4
dEl0ZW1UeXBlID0gdGV4dEl0ZW1UeXBlOwogfQogCi1pbmxpbmUgSW5saW5lVGV4dEl0ZW06Oklu
bGluZVRleHRJdGVtKGNvbnN0IEJveCYgaW5saW5lQm94KQotICAgIDogSW5saW5lSXRlbShpbmxp
bmVCb3gsIFR5cGU6OlRleHQpCitpbmxpbmUgSW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVt
KGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gpCisgICAgOiBJbmxpbmVJdGVtKGlu
bGluZVRleHRCb3gsIFR5cGU6OlRleHQpCiB7CiB9CiAKQEAgLTk2LDcgKzk5LDcgQEAgaW5saW5l
IElubGluZVRleHRJdGVtIElubGluZVRleHRJdGVtOjpsZWZ0KHVuc2lnbmVkIGxlbmd0aCkgY29u
c3QKICAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPD0gdGhpcy0+bGVuZ3RoKCkpOwogICAgIEFT
U0VSVChtX3RleHRJdGVtVHlwZSAhPSBUZXh0SXRlbVR5cGU6OlVuZGVmaW5lZCk7CiAgICAgQVNT
RVJUKGxlbmd0aCk7Ci0gICAgcmV0dXJuIHsgbGF5b3V0Qm94KCksIHN0YXJ0KCksIGxlbmd0aCwg
V1RGOjpudWxsb3B0LCBtX3RleHRJdGVtVHlwZSB9OworICAgIHJldHVybiB7IGlubGluZVRleHRC
b3goKSwgc3RhcnQoKSwgbGVuZ3RoLCBXVEY6Om51bGxvcHQsIG1fdGV4dEl0ZW1UeXBlIH07CiB9
CiAKIGlubGluZSBJbmxpbmVUZXh0SXRlbSBJbmxpbmVUZXh0SXRlbTo6cmlnaHQodW5zaWduZWQg
bGVuZ3RoKSBjb25zdApAQCAtMTA0LDcgKzEwNyw3IEBAIGlubGluZSBJbmxpbmVUZXh0SXRlbSBJ
bmxpbmVUZXh0SXRlbTo6cmlnaHQodW5zaWduZWQgbGVuZ3RoKSBjb25zdAogICAgIFJFTEVBU0Vf
QVNTRVJUKGxlbmd0aCA8PSB0aGlzLT5sZW5ndGgoKSk7CiAgICAgQVNTRVJUKG1fdGV4dEl0ZW1U
eXBlICE9IFRleHRJdGVtVHlwZTo6VW5kZWZpbmVkKTsKICAgICBBU1NFUlQobGVuZ3RoKTsKLSAg
ICByZXR1cm4geyBsYXlvdXRCb3goKSwgZW5kKCkgLSBsZW5ndGgsIGxlbmd0aCwgV1RGOjpudWxs
b3B0LCBtX3RleHRJdGVtVHlwZSB9OworICAgIHJldHVybiB7IGlubGluZVRleHRCb3goKSwgZW5k
KCkgLSBsZW5ndGgsIGxlbmd0aCwgV1RGOjpudWxsb3B0LCBtX3RleHRJdGVtVHlwZSB9OwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9M
aW5lTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKaW5kZXggNGRlYjk3OWFkZDcxMmVlOTQ3YjE0YzNl
YzcyMDUzOWJjZDBlM2Y3NC4uZDUxODY2MmI3MzA2OWMwN2VlZTRkZDAzMzcyYzE1NGY2ZmEzZGZk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGlu
ZUxheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcApAQCAtNDMsMTMgKzQzLDEzIEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBlbmRzV2l0aFNvZnRXcmFwT3Bwb3J0dW5pdHkoY29uc3QgSW5saW5lVGV4dEl0
ZW0mIGN1cnJlbnRUZXh0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIC8vIFdoZW4gYm90aCB0
aGVzZSBub24td2hpdGVzcGFjZSBydW5zIGJlbG9uZyB0byB0aGUgc2FtZSBsYXlvdXQgYm94LCBp
dCdzIGd1YXJhbnRlZWQgdGhhdAogICAgIC8vIHRoZXkgYXJlIHNwbGl0IGF0IGEgc29mdCBicmVh
a2luZyBvcHBvcnR1bml0eS4gU2VlIElubGluZVRleHRJdGVtOjptb3ZlVG9OZXh0QnJlYWthYmxl
UG9zaXRpb24uCi0gICAgaWYgKCZjdXJyZW50VGV4dEl0ZW0ubGF5b3V0Qm94KCkgPT0gJm5leHRJ
bmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkKKyAgICBpZiAoJmN1cnJlbnRUZXh0SXRlbS5pbmxp
bmVUZXh0Qm94KCkgPT0gJm5leHRJbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIC8vIE5vdyB3ZSBuZWVkIHRvIGNvbGxlY3QgYXQgbGVhc3Qg
MyBhZGphY2VudCBjaGFyYWN0ZXJzIHRvIGJlIGFibGUgdG8gbWFrZSBhIGRlY2lzaW9uIHdoZXRo
ZXIgdGhlIHByZXZpb3VzIHRleHQgaXRlbSBlbmRzIHdpdGggYnJlYWtpbmcgb3Bwb3J0dW5pdHku
CiAgICAgLy8gW2V4LV1bYW1wbGVdIDwtIHNlY29uZCB0byBsYXN0W3hdIGxhc3RbLV0gY3VycmVu
dFthXQogICAgIC8vIFdlIG5lZWQgYXQgbGVhc3QgMSBjaGFyYWN0ZXIgaW4gdGhlIGN1cnJlbnQg
aW5saW5lIHRleHQgaXRlbSBhbmQgMiBtb3JlIGZyb20gcHJldmlvdXMgaW5saW5lIGl0ZW1zLgot
ICAgIGF1dG8gcHJldmlvdXNDb250ZW50ID0gY3VycmVudFRleHRJdGVtLmxheW91dEJveCgpLnRl
eHRDb250ZXh0KCktPmNvbnRlbnQ7Ci0gICAgYXV0byBsaW5lQnJlYWtJdGVyYXRvciA9IExhenlM
aW5lQnJlYWtJdGVyYXRvciB7IG5leHRJbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKS50ZXh0Q29u
dGV4dCgpLT5jb250ZW50IH07CisgICAgYXV0byBwcmV2aW91c0NvbnRlbnQgPSBjdXJyZW50VGV4
dEl0ZW0uaW5saW5lVGV4dEJveCgpLmNvbnRlbnQoKTsKKyAgICBhdXRvIGxpbmVCcmVha0l0ZXJh
dG9yID0gTGF6eUxpbmVCcmVha0l0ZXJhdG9yIHsgbmV4dElubGluZVRleHRJdGVtLmlubGluZVRl
eHRCb3goKS5jb250ZW50KCkgfTsKICAgICBhdXRvIHByZXZpb3VzQ29udGVudExlbmd0aCA9IHBy
ZXZpb3VzQ29udGVudC5sZW5ndGgoKTsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGxvb2sgaW50
byB0aGUgZW50aXJlIHVuY29tbWl0dGVkIGNvbnRlbnQgZm9yIG1vcmUgdGV4dCBjb250ZXh0Lgog
ICAgIFVDaGFyIGxhc3RDaGFyYWN0ZXIgPSBwcmV2aW91c0NvbnRlbnRMZW5ndGggPyBwcmV2aW91
c0NvbnRlbnRbcHJldmlvdXNDb250ZW50TGVuZ3RoIC0gMV0gOiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcApp
bmRleCBlOGRiOWQ3Y2Q0OWQwOGUxMjVkNzBlYjM0MzkxNGZlYTg2YmZjODk2Li5hOTk1YzE2NzIy
NThiNDMzMDQyNWEzODY0NGRiZmVhNTYwOTZjYTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkJyZWFrTGluZXMuaCIKICNpbmNsdWRlICJGb250Q2FzY2Fk
ZS5oIgogI2luY2x1ZGUgIklubGluZVRleHRJdGVtLmgiCisjaW5jbHVkZSAiTGF5b3V0SW5saW5l
VGV4dEJveC5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCiAKQEAgLTQ0LDI1ICs0NSwyNCBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0
aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIHVuc2lnbmVkCiAgICAgICAg
IGF1dG8gZm9udCA9IGlubGluZVRleHRJdGVtLnN0eWxlKCkuZm9udENhc2NhZGUoKTsKICAgICAg
ICAgcmV0dXJuIGZvbnQuc3BhY2VXaWR0aCgpICsgZm9udC53b3JkU3BhY2luZygpOwogICAgIH0K
LSAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLmxheW91dEJveCgpLCBm
cm9tLCB0bywgY29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRo
KGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2Fs
TGVmdCk7CiB9CiAKLUlubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IEJveCYg
aW5saW5lQm94LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbExlZnQpCitJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25z
dCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0
bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpCiB7Ci0gICAgYXV0byYgc3R5
bGUgPSBpbmxpbmVCb3guc3R5bGUoKTsKKyAgICBhdXRvJiBzdHlsZSA9IGlubGluZVRleHRCb3gu
c3R5bGUoKTsKICAgICBhdXRvJiBmb250ID0gc3R5bGUuZm9udENhc2NhZGUoKTsKICAgICBpZiAo
IWZvbnQuc2l6ZSgpIHx8IGZyb20gPT0gdG8pCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgYXV0
byYgdGV4dENvbnRleHQgPSAqaW5saW5lQm94LnRleHRDb250ZXh0KCk7Ci0gICAgYXV0byYgdGV4
dCA9IHRleHRDb250ZXh0LmNvbnRlbnQ7CisgICAgYXV0byB0ZXh0ID0gaW5saW5lVGV4dEJveC5j
b250ZW50KCk7CiAgICAgQVNTRVJUKHRvIDw9IHRleHQubGVuZ3RoKCkpOwogICAgIGF1dG8gaGFz
S2VybmluZ09yTGlnYXR1cmVzID0gZm9udC5lbmFibGVLZXJuaW5nKCkgfHwgZm9udC5yZXF1aXJl
c1NoYXBpbmcoKTsKICAgICBhdXRvIG1lYXN1cmVXaXRoRW5kU3BhY2UgPSBoYXNLZXJuaW5nT3JM
aWdhdHVyZXMgJiYgdG8gPCB0ZXh0Lmxlbmd0aCgpICYmIHRleHRbdG9dID09ICcgJzsKICAgICBp
ZiAobWVhc3VyZVdpdGhFbmRTcGFjZSkKICAgICAgICAgKyt0bzsKICAgICBmbG9hdCB3aWR0aCA9
IDA7Ci0gICAgaWYgKHRleHRDb250ZXh0LmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5n
KSB7CisgICAgaWYgKGlubGluZVRleHRCb3guY2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJp
bmcoKSkgewogICAgICAgICBpZiAoZm9udC5pc0ZpeGVkUGl0Y2goKSkKICAgICAgICAgICAgIHdp
ZHRoID0gZml4ZWRQaXRjaFdpZHRoKHRleHQsIHN0eWxlLCBmcm9tLCB0bywgY29udGVudExvZ2lj
YWxMZWZ0KTsKICAgICAgICAgZWxzZQpAQCAtMTAwLDcgKzEwMCw3IEBAIElubGluZUxheW91dFVu
aXQgVGV4dFV0aWw6OmZpeGVkUGl0Y2hXaWR0aChjb25zdCBTdHJpbmdWaWV3JiB0ZXh0LCBjb25z
dCBSZW5kZXJTCiAgICAgcmV0dXJuIHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+KDAsIElubGlu
ZUxheW91dFVuaXQod2lkdGgpKTsKIH0KIAotVGV4dFV0aWw6OlNwbGl0RGF0YSBUZXh0VXRpbDo6
c3BsaXQoY29uc3QgQm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24sIHVuc2ln
bmVkIGxlbmd0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0V2lkdGgsIElubGluZUxheW91dFVuaXQg
YXZhaWxhYmxlV2lkdGgsIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KQorVGV4
dFV0aWw6OlNwbGl0RGF0YSBUZXh0VXRpbDo6c3BsaXQoY29uc3QgSW5saW5lVGV4dEJveCYgaW5s
aW5lVGV4dEJveCwgdW5zaWduZWQgc3RhcnRQb3NpdGlvbiwgdW5zaWduZWQgbGVuZ3RoLCBJbmxp
bmVMYXlvdXRVbml0IHRleHRXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwg
SW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpCiB7CiAgICAgQVNTRVJUKGF2YWls
YWJsZVdpZHRoID49IDApOwogICAgIGF1dG8gbGVmdCA9IHN0YXJ0UG9zaXRpb247CkBAIC0xMTMs
NyArMTEzLDcgQEAgVGV4dFV0aWw6OlNwbGl0RGF0YSBUZXh0VXRpbDo6c3BsaXQoY29uc3QgQm94
JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24KICAgICBJbmxpbmVMYXlvdXRVbml0
IGxlZnRTaWRlV2lkdGggPSAwOwogICAgIHdoaWxlIChsZWZ0IDwgcmlnaHQpIHsKICAgICAgICAg
YXV0byBtaWRkbGUgPSAobGVmdCArIHJpZ2h0KSAvIDI7Ci0gICAgICAgIGF1dG8gd2lkdGggPSBU
ZXh0VXRpbDo6d2lkdGgoaW5saW5lQm94LCBzdGFydFBvc2l0aW9uLCBtaWRkbGUgKyAxLCBjb250
ZW50TG9naWNhbExlZnQpOworICAgICAgICBhdXRvIHdpZHRoID0gVGV4dFV0aWw6OndpZHRoKGlu
bGluZVRleHRCb3gsIHN0YXJ0UG9zaXRpb24sIG1pZGRsZSArIDEsIGNvbnRlbnRMb2dpY2FsTGVm
dCk7CiAgICAgICAgIGlmICh3aWR0aCA8IGF2YWlsYWJsZVdpZHRoKSB7CiAgICAgICAgICAgICBs
ZWZ0ID0gbWlkZGxlICsgMTsKICAgICAgICAgICAgIGxlZnRTaWRlV2lkdGggPSB3aWR0aDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4
dFV0aWwuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4
dFV0aWwuaAppbmRleCBjNDBlNWVmYjg4MzQ5ZWM2YTVhYjFhYzdmYjdlYzNhMTEzMDhkZjRmLi40
NTBkNjcwOTcyMjRkMDY2MzA5MDk3OWNiMTdiMjZjMmYxNzlkZjU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5oCkBA
IC0zNywxOCArMzcsMTkgQEAgY2xhc3MgUmVuZGVyU3R5bGU7CiAKIG5hbWVzcGFjZSBMYXlvdXQg
ewogCitjbGFzcyBJbmxpbmVUZXh0Qm94OwogY2xhc3MgSW5saW5lVGV4dEl0ZW07CiAKIGNsYXNz
IFRleHRVdGlsIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChj
b25zdCBJbmxpbmVUZXh0SXRlbSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCA9IDApOwotICAgIHN0YXRpYyBJbmxpbmVMYXlv
dXRVbml0IHdpZHRoKGNvbnN0IEJveCYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxp
bmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCA9IDApOworICAgIHN0YXRpYyBJbmxpbmVM
YXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQgPSAwKTsKICAgICBz
dHJ1Y3QgU3BsaXREYXRhIHsKICAgICAgICAgdW5zaWduZWQgc3RhcnQgeyAwIH07CiAgICAgICAg
IHVuc2lnbmVkIGxlbmd0aCB7IDAgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGggeyAwIH07CiAgICAgfTsKLSAgICBzdGF0aWMgU3BsaXREYXRhIHNwbGl0KGNvbnN0IEJv
eCYsIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24sIHVuc2lnbmVkIGxlbmd0aCwgSW5saW5lTGF5b3V0
VW5pdCB0ZXh0V2lkdGgsIElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIElubGluZUxh
eW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICBzdGF0aWMgU3BsaXREYXRhIHNwbGl0
KGNvbnN0IElubGluZVRleHRCb3gmLCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCB1bnNpZ25lZCBs
ZW5ndGgsIElubGluZUxheW91dFVuaXQgdGV4dFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGF2YWls
YWJsZVdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7CiAgICAgc3Rh
dGljIGJvb2wgc2hvdWxkUHJlc2VydmVUcmFpbGluZ1doaXRlc3BhY2UoY29uc3QgUmVuZGVyU3R5
bGUmKTsKICAgICBzdGF0aWMgdW5zaWduZWQgZmluZE5leHRCcmVha2FibGVQb3NpdGlvbihMYXp5
TGluZUJyZWFrSXRlcmF0b3ImLCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCBjb25zdCBSZW5kZXJT
dHlsZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCmluZGV4IDBiNzEwYmRiM2FhNzU5
YzIxYmE3ZDZhNTM2YjA0MTcyMGI5ZjkzNzYuLjA1NzFjM2FhYTVkMjFmZjcyMjY5MWI2ZmM3MmVk
N2UzMTIxODQ1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCkBAIC01OCw5ICs1OCw3
IEBAIHZvaWQgQm94VHJlZTo6YnVpbGRUcmVlKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmxvdykK
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPExheW91dDo6Qm94PiBjaGlsZEJveDsKICAgICAgICAg
aWYgKGlzPFJlbmRlclRleHQ+KGNoaWxkUmVuZGVyZXIpKSB7CiAgICAgICAgICAgICBhdXRvJiB0
ZXh0UmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJUZXh0PihjaGlsZFJlbmRlcmVyKTsKLSAgICAg
ICAgICAgIGF1dG8gdGV4dENvbnRlbnQgPSBMYXlvdXQ6OlRleHRDb250ZXh0IHsgdGV4dFJlbmRl
cmVyLnRleHQoKSwgdGV4dFJlbmRlcmVyLmNhblVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nKCkg
fTsKLSAgICAgICAgICAgIGNoaWxkQm94ID0gbWFrZVVuaXF1ZTxMYXlvdXQ6OkJveD4oV1RGTW92
ZSh0ZXh0Q29udGVudCksIFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNw
bGF5KG1fcm9vdC5zdHlsZSgpLCBEaXNwbGF5VHlwZTo6SW5saW5lKSk7Ci0gICAgICAgICAgICBj
aGlsZEJveC0+c2V0SXNBbm9ueW1vdXMoKTsKKyAgICAgICAgICAgIGNoaWxkQm94ID0gbWFrZVVu
aXF1ZTxMYXlvdXQ6OklubGluZVRleHRCb3g+KHRleHRSZW5kZXJlci50ZXh0KCksIHRleHRSZW5k
ZXJlci5jYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZygpLCBSZW5kZXJTdHlsZTo6Y3JlYXRl
QW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShtX3Jvb3Quc3R5bGUoKSwgRGlzcGxheVR5cGU6Oklu
bGluZSkpOwogICAgICAgICB9IGVsc2UgaWYgKGNoaWxkUmVuZGVyZXIuaXNMaW5lQnJlYWsoKSkg
ewogICAgICAgICAgICAgYXV0byBjbG9uZWRTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZShjaGls
ZFJlbmRlcmVyLnN0eWxlKCkpOwogICAgICAgICAgICAgY2xvbmVkU3R5bGUuc2V0RGlzcGxheShE
aXNwbGF5VHlwZTo6SW5saW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRCb3guY3BwCmluZGV4IGI0ZDYwYTRlNmFkMDI1ZmNjNDQyMDkxMzVlNzYwNGEyMmNl
ZmVjNWIuLjE5N2FjZWVlYmZmZWJhZDhhNjcyNjM2ODk5ZThjYjE0YmNmMjNjMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcApAQCAtNDAsMTAg
KzQwLDkgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChCb3gpOwogCi1Cb3g6OkJveChPcHRpb25hbDxFbGVtZW50QXR0cmlidXRlcz4gYXR0cmlidXRl
cywgT3B0aW9uYWw8VGV4dENvbnRleHQ+IHRleHRDb250ZXh0LCBSZW5kZXJTdHlsZSYmIHN0eWxl
LCBCYXNlVHlwZUZsYWdzIGJhc2VUeXBlRmxhZ3MpCitCb3g6OkJveChPcHRpb25hbDxFbGVtZW50
QXR0cmlidXRlcz4gYXR0cmlidXRlcywgUmVuZGVyU3R5bGUmJiBzdHlsZSwgQmFzZVR5cGVGbGFn
cyBiYXNlVHlwZUZsYWdzKQogICAgIDogbV9zdHlsZShXVEZNb3ZlKHN0eWxlKSkKICAgICAsIG1f
ZWxlbWVudEF0dHJpYnV0ZXMoYXR0cmlidXRlcykKLSAgICAsIG1fdGV4dENvbnRleHQodGV4dENv
bnRleHQpCiAgICAgLCBtX2Jhc2VUeXBlRmxhZ3MoYmFzZVR5cGVGbGFncykKICAgICAsIG1faGFz
UmFyZURhdGEoZmFsc2UpCiAgICAgLCBtX2lzQW5vbnltb3VzKGZhbHNlKQpAQCAtNTMsMTYgKzUy
LDEwIEBAIEJveDo6Qm94KE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiBhdHRyaWJ1dGVzLCBP
cHRpb25hbDxUZXh0Q29udGV4dD4gdGV4dENvbnRlCiB9CiAKIEJveDo6Qm94KE9wdGlvbmFsPEVs
ZW1lbnRBdHRyaWJ1dGVzPiBhdHRyaWJ1dGVzLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQotICAgIDog
Qm94KGF0dHJpYnV0ZXMsIHsgfSwgV1RGTW92ZShzdHlsZSksIEJhc2VUeXBlRmxhZzo6Qm94Rmxh
ZykKKyAgICA6IEJveChhdHRyaWJ1dGVzLCBXVEZNb3ZlKHN0eWxlKSwgQmFzZVR5cGVGbGFnOjpC
b3hGbGFnKQogewogfQogCi1Cb3g6OkJveChUZXh0Q29udGV4dCYmIHRleHRDb250ZXh0LCBSZW5k
ZXJTdHlsZSYmIHN0eWxlKQotICAgIDogQm94KHsgfSwgV1RGTW92ZSh0ZXh0Q29udGV4dCksIFdU
Rk1vdmUoc3R5bGUpLCBCYXNlVHlwZUZsYWc6OkJveEZsYWcpCi17Ci0gICAgQVNTRVJUKGlzSW5s
aW5lTGV2ZWxCb3goKSk7Ci19Ci0KIEJveDo6fkJveCgpCiB7CiAgICAgaWYgKFVOTElLRUxZKG1f
aGFzUmFyZURhdGEpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRC
b3guaAppbmRleCA5NDUzYjNlMzA3ZDcyZmYxMjAyNjExMzM0MWYzMzgzNTMyODdiMjlhLi5jMTA0
YjFiNTU4NGFkMDAzOTc4MzZmMmMzMTRkZGJkOWQ0NGQxYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaApAQCAtMjksNyArMjksNiBAQAogCiAjaW5j
bHVkZSAiTGF5b3V0UmVwbGFjZWQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgotI2luY2x1
ZGUgIlRleHRDb250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTY0LDE0ICs2MywxNCBAQCBwdWJsaWM6CiAgICAgfTsKIAog
ICAgIGVudW0gQmFzZVR5cGVGbGFnIHsKLSAgICAgICAgQm94RmxhZyAgICAgICAgICAgICAgID0g
MSA8PCAwLAotICAgICAgICBDb250YWluZXJGbGFnICAgICAgICAgPSAxIDw8IDEKKyAgICAgICAg
Qm94RmxhZyAgICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgSW5saW5lVGV4dEJveCAg
ICAgICAgICA9IDEgPDwgMSwKKyAgICAgICAgQ29udGFpbmVyRmxhZyAgICAgICAgICA9IDEgPDwg
MgogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBCYXNlVHlwZUZsYWdzOwogCiAgICAgQm94
KE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiwgUmVuZGVyU3R5bGUmJik7Ci0gICAgQm94KFRl
eHRDb250ZXh0JiYsIFJlbmRlclN0eWxlJiYpOwotICAgIH5Cb3goKTsKKyAgICB2aXJ0dWFsIH5C
b3goKTsKIAogICAgIGJvb2wgZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0Owog
ICAgIGJvb2wgZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CkBAIC0x
NDIsNiArMTQxLDcgQEAgcHVibGljOgogICAgIEJveCogbmV4dFNpYmxpbmcoKSB7IHJldHVybiBt
X25leHRTaWJsaW5nOyB9CiAKICAgICBib29sIGlzQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4g
bV9iYXNlVHlwZUZsYWdzICYgQ29udGFpbmVyRmxhZzsgfQorICAgIGJvb2wgaXNJbmxpbmVUZXh0
Qm94KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlVHlwZUZsYWdzICYgSW5saW5lVGV4dEJveDsgfQog
CiAgICAgYm9vbCBpc1BhZGRpbmdBcHBsaWNhYmxlKCkgY29uc3Q7CiAgICAgYm9vbCBpc092ZXJm
bG93VmlzaWJsZSgpIGNvbnN0OwpAQCAtMTUyLDggKzE1Miw2IEBAIHB1YmxpYzoKICAgICBjb25z
dCBSZXBsYWNlZCogcmVwbGFjZWQoKSBjb25zdDsKICAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IHVu
dGlsIGFmdGVyIGludHJpbnNpYyBzaXplIGNoYW5nZSBpcyB0cmFja2VkIGJ5IFJlcGxhY2VkLgog
ICAgIFJlcGxhY2VkKiByZXBsYWNlZCgpOwotICAgIGJvb2wgaGFzVGV4dENvbnRlbnQoKSBjb25z
dCB7IHJldHVybiAhIW1fdGV4dENvbnRleHQ7IH0KLSAgICBjb25zdCBPcHRpb25hbDxUZXh0Q29u
dGV4dD4mIHRleHRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q29udGV4dDsgfQogCiAg
ICAgLy8gRklYTUU6IEZpbmQgYSBiZXR0ZXIgcGxhY2UgZm9yIHJhbmRvbSBET00gdGhpbmdzLgog
ICAgIHZvaWQgc2V0Um93U3Bhbih1bnNpZ25lZCk7CkBAIC0xNzYsNyArMTc0LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0Q2FjaGVkRGlzcGxheUJveEZvckxheW91dFN0YXRlKExheW91dFN0YXRl
Jiwgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXk6OkJveD4pIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgQm94KE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiwgT3B0aW9uYWw8VGV4dENvbnRleHQ+
LCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKKyAgICBCb3goT3B0aW9uYWw8RWxlbWVu
dEF0dHJpYnV0ZXM+LCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKIAogcHJpdmF0ZToK
ICAgICBjbGFzcyBCb3hSYXJlRGF0YSB7CkBAIC0yMDcsOCArMjA1LDYgQEAgcHJpdmF0ZToKICAg
ICBCb3gqIG1fcHJldmlvdXNTaWJsaW5nIHsgbnVsbHB0ciB9OwogICAgIEJveCogbV9uZXh0U2li
bGluZyB7IG51bGxwdHIgfTsKICAgICAKLSAgICBjb25zdCBPcHRpb25hbDxUZXh0Q29udGV4dD4g
bV90ZXh0Q29udGV4dDsKLQogICAgIC8vIEZpcnN0IExheW91dFN0YXRlIGdldHMgYSBkaXJlY3Qg
Y2FjaGUuCiAgICAgbXV0YWJsZSBXZWFrUHRyPExheW91dFN0YXRlPiBtX2NhY2hlZExheW91dFN0
YXRlOwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXk6OkJveD4gbV9jYWNoZWRE
aXNwbGF5Qm94Rm9yTGF5b3V0U3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcAppbmRleCAwZjUwNWYyNjE1YWZjNmQ1NTgz
YjQwNjdhNDZlZDAwNTM1MjA1NWI2Li5iMGNjODM0ZDMyYzk0ZDRmNjFlNzZiZGViZTZkNzY5ZTRk
OWNkOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xh
eW91dENvbnRhaW5lci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ29udGFpbmVyKTsKIAogQ29udGFpbmVyOjpDb250
YWluZXIoT3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+IGF0dHJpYnV0ZXMsIFJlbmRlclN0eWxl
JiYgc3R5bGUsIEJhc2VUeXBlRmxhZ3MgYmFzZVR5cGVGbGFncykKLSAgICA6IEJveChhdHRyaWJ1
dGVzLCB7IH0sIFdURk1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzIHwgQ29udGFpbmVyRmxhZykK
KyAgICA6IEJveChhdHRyaWJ1dGVzLCBXVEZNb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncyB8IENv
bnRhaW5lckZsYWcpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0SW5saW5lVGV4dEJveC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI4N2M0N2U2
MTYwOWFlNjgxZWRjYTExYmM3MTk2YTJhMjgwZTI4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guY3BwCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TGF5b3V0SW5saW5lVGV4dEJveC5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCisKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQgewor
CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW5saW5lVGV4dEJveCk7CisKK0lubGluZVRl
eHRCb3g6OklubGluZVRleHRCb3goU3RyaW5nIGNvbnRlbnQsIGJvb2wgY2FuVXNlU2ltcGxpZmll
ZENvbnRlbnRNZWFzdXJpbmcsIFJlbmRlclN0eWxlJiYgc3R5bGUpCisgICAgOiBCb3goeyB9LCBX
VEZNb3ZlKHN0eWxlKSwgQm94OjpJbmxpbmVUZXh0Qm94KQorICAgICwgbV9jb250ZW50KGNvbnRl
bnQpCisgICAgLCBtX2NhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKGNhblVzZVNpbXBs
aWZpZWRDb250ZW50TWVhc3VyaW5nKQoreworICAgIHNldElzQW5vbnltb3VzKCk7Cit9CisKK30K
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRJbmxpbmVUZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRJbmxpbmVUZXh0Qm94LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE2N2MzZjA4NzIxOWRlYTRlYjBh
YWE0YTE3MjI4ODIxMzU4OWQ3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guaApAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKKworI2luY2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgTGF5b3V0IHsKKworY2xh
c3MgSW5saW5lVGV4dEJveCA6IHB1YmxpYyBCb3ggeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoSW5saW5lVGV4dEJveCk7CitwdWJsaWM6CisgICAgSW5saW5lVGV4dEJveChTdHJpbmcsIGJv
b2wgY2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJpbmcsIFJlbmRlclN0eWxlJiYpOworICAg
IHZpcnR1YWwgfklubGluZVRleHRCb3goKSA9IGRlZmF1bHQ7CisKKyAgICBTdHJpbmcgY29udGVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudDsgfQorICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBub3QgYmUgYSBib3gncyBwcm9wZXJ0eS4KKyAgICBib29sIGNhblVzZVNpbXBsaWZpZWRDb250
ZW50TWVhc3VyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Vc2VTaW1wbGlmaWVkQ29udGVudE1l
YXN1cmluZzsgfQorCitwcml2YXRlOgorICAgIFN0cmluZyBtX2NvbnRlbnQ7CisgICAgYm9vbCBt
X2NhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nIHsgZmFsc2UgfTsKK307CisKK30KK30K
KworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfQk9YKElubGluZVRleHRCb3gsIGlzSW5s
aW5lVGV4dEJveCgpKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAppbmRleCBjMTQ2MjJlOTBjMzlmNzQz
MjQwOTFiMWVjZDY4MWZkNjkxOWI0NDQwLi5hNGMzMGYwYjQ2MjY2ZDQzNmEzMjUzZDQ2MTBkMTY1
OWI1YmU2MzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTGF5
b3V0Q29udGFpbmVyLmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgogI2luY2x1ZGUgIkxh
eW91dERlc2NlbmRhbnRJdGVyYXRvci5oIgorI2luY2x1ZGUgIkxheW91dElubGluZVRleHRCb3gu
aCIKICNpbmNsdWRlICJMYXlvdXRQaGFzZS5oIgogI2luY2x1ZGUgIkxheW91dFNpemUuaCIKICNp
bmNsdWRlICJMYXlvdXRTdGF0ZS5oIgpAQCAtMTUwLDkgKzE1MSw5IEBAIEJveCYgVHJlZUJ1aWxk
ZXI6OmNyZWF0ZUJveChPcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzPiBlbGVtZW50QXR0
cmlidXRlcywKICAgICByZXR1cm4gYm94OwogfQogCi1Cb3gmIFRyZWVCdWlsZGVyOjpjcmVhdGVU
ZXh0Qm94KFRleHRDb250ZXh0JiYgdGV4dENvbnRlbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCitC
b3gmIFRyZWVCdWlsZGVyOjpjcmVhdGVUZXh0Qm94KFN0cmluZyB0ZXh0LCBib29sIGNhblVzZVNp
bXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogewotICAgIGF1dG8g
bmV3Qm94ID0gbWFrZVVuaXF1ZTxCb3g+KFdURk1vdmUodGV4dENvbnRlbnQpLCBXVEZNb3ZlKHN0
eWxlKSk7CisgICAgYXV0byBuZXdCb3ggPSBtYWtlVW5pcXVlPElubGluZVRleHRCb3g+KHRleHQs
IGNhblVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBXVEZNb3ZlKHN0eWxlKSk7CiAgICAgYXV0
byYgYm94ID0gKm5ld0JveDsKICAgICBtX2xheW91dFRyZWVDb250ZW50LmFkZEJveChXVEZNb3Zl
KG5ld0JveCkpOwogICAgIHJldHVybiBib3g7CkBAIC0xOTEsMTIgKzE5MiwxMSBAQCBCb3gqIFRy
ZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRCb3goY29uc3QgQ29udGFpbmVyJiBwYXJlbnRDb250YWlu
ZXIsIGNvbnN0IFJlbmRlcgogICAgICAgICBhdXRvJiB0ZXh0UmVuZGVyZXIgPSBkb3duY2FzdDxS
ZW5kZXJUZXh0PihjaGlsZFJlbmRlcmVyKTsKICAgICAgICAgLy8gUmVuZGVyVGV4dDo6dGV4dCgp
IGhhcyBhbHJlYWR5IGFwcGxpZWQgdGV4dC10cmFuc2Zvcm0gYW5kIHRleHQtc2VjdXJpdHkgcHJv
cGVydGllcy4KICAgICAgICAgU3RyaW5nIHRleHQgPSB0ZXh0UmVuZGVyZXIudGV4dCgpOwotICAg
ICAgICBhdXRvIHRleHRDb250ZW50ID0gVGV4dENvbnRleHQgeyB0ZXh0LCBjYW5Vc2VTaW1wbGlm
aWVkVGV4dE1lYXN1cmluZyh0ZXh0LCBwYXJlbnRDb250YWluZXIuc3R5bGUoKS5mb250Q2FzY2Fk
ZSgpLCBwYXJlbnRDb250YWluZXIuc3R5bGUoKS5jb2xsYXBzZVdoaXRlU3BhY2UoKSkgfTsKKyAg
ICAgICAgYXV0byB1c2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZyA9IGNhblVzZVNpbXBsaWZpZWRU
ZXh0TWVhc3VyaW5nKHRleHQsIHBhcmVudENvbnRhaW5lci5zdHlsZSgpLmZvbnRDYXNjYWRlKCks
IHBhcmVudENvbnRhaW5lci5zdHlsZSgpLmNvbGxhcHNlV2hpdGVTcGFjZSgpKTsKICAgICAgICAg
aWYgKHBhcmVudENvbnRhaW5lci5zdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5s
aW5lKQotICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSAmY3JlYXRlVGV4dEJveChXVEZNb3Zl
KHRleHRDb250ZW50KSwgUmVuZGVyU3R5bGU6OmNsb25lKHBhcmVudENvbnRhaW5lci5zdHlsZSgp
KSk7CisgICAgICAgICAgICBjaGlsZExheW91dEJveCA9ICZjcmVhdGVUZXh0Qm94KHRleHQsIHVz
ZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZTo6Y2xvbmUocGFyZW50Q29udGFp
bmVyLnN0eWxlKCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gg
PSAmY3JlYXRlVGV4dEJveChXVEZNb3ZlKHRleHRDb250ZW50KSwgUmVuZGVyU3R5bGU6OmNyZWF0
ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkocGFyZW50Q29udGFpbmVyLnN0eWxlKCksIERpc3Bs
YXlUeXBlOjpJbmxpbmUpKTsKLSAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnNldElzQW5vbnltb3Vz
KCk7CisgICAgICAgICAgICBjaGlsZExheW91dEJveCA9ICZjcmVhdGVUZXh0Qm94KHRleHQsIHVz
ZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5
bGVXaXRoRGlzcGxheShwYXJlbnRDb250YWluZXIuc3R5bGUoKSwgRGlzcGxheVR5cGU6OklubGlu
ZSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8mIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVu
ZGVyRWxlbWVudD4oY2hpbGRSZW5kZXJlcik7CiAgICAgICAgIGF1dG8gZGlzcGxheVR5cGUgPSBy
ZW5kZXJlci5zdHlsZSgpLmRpc3BsYXkoKTsKQEAgLTQwNiw4ICs0MDYsOCBAQCBzdGF0aWMgdm9p
ZCBvdXRwdXRMYXlvdXRCb3goVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBCb3gmIGxheW91dEJv
eCwgY29uc3QgRGlzcAogICAgIGlmIChkaXNwbGF5Qm94KQogICAgICAgICBzdHJlYW0gPDwgIiBh
dCAoIiA8PCBkaXNwbGF5Qm94LT5sZWZ0KCkgPDwgIiwiIDw8IGRpc3BsYXlCb3gtPnRvcCgpIDw8
ICIpIHNpemUgIiA8PCBkaXNwbGF5Qm94LT53aWR0aCgpIDw8ICJ4IiA8PCBkaXNwbGF5Qm94LT5o
ZWlnaHQoKTsKICAgICBzdHJlYW0gPDwgIiBsYXlvdXQgYm94LT4oIiA8PCAmbGF5b3V0Qm94IDw8
ICIpIjsKLSAgICBpZiAobGF5b3V0Qm94LmlzSW5saW5lTGV2ZWxCb3goKSAmJiBsYXlvdXRCb3gu
aXNBbm9ueW1vdXMoKSkKLSAgICAgICAgc3RyZWFtIDw8ICIgdGV4dCBjb250ZW50IFtcIiIgPDwg
bGF5b3V0Qm94LnRleHRDb250ZXh0KCktPmNvbnRlbnQudXRmOCgpLmRhdGEoKSA8PCAiXCJdIjsK
KyAgICBpZiAoaXM8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94KSkKKyAgICAgICAgc3RyZWFtIDw8
ICIgdGV4dCBjb250ZW50IFtcIiIgPDwgZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94
KS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSA8PCAiXCJdIjsKIAogICAgIHN0cmVhbS5uZXh0TGlu
ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0VHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dFRyZWVCdWlsZGVyLmgKaW5kZXggMTkzM2EwNDE2Mzg3NmMxNTY1Y2M3OGJjZTk0NzkxNDIwZTg4
MGE5MC4uMzg1ZDcyMDM4MzY0Mzg4MTU0N2FhNjMzZmFmYjE3ZWNiMzQzYTc0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5o
CkBAIC05MSw3ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgQm94KiBjcmVhdGVMYXlvdXRCb3goY29u
c3QgQ29udGFpbmVyJiBwYXJlbnRDb250YWluZXIsIGNvbnN0IFJlbmRlck9iamVjdCYgY2hpbGRS
ZW5kZXJlcik7CiAKICAgICBCb3gmIGNyZWF0ZUJveChPcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRy
aWJ1dGVzPiwgUmVuZGVyU3R5bGUmJik7Ci0gICAgQm94JiBjcmVhdGVUZXh0Qm94KFRleHRDb250
ZXh0JiYsIFJlbmRlclN0eWxlJiYpOworICAgIEJveCYgY3JlYXRlVGV4dEJveChTdHJpbmcgdGV4
dCwgYm9vbCBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgUmVuZGVyU3R5bGUmJik7CiAg
ICAgQ29udGFpbmVyJiBjcmVhdGVDb250YWluZXIoT3B0aW9uYWw8Qm94OjpFbGVtZW50QXR0cmli
dXRlcz4sIFJlbmRlclN0eWxlJiYpOwogCiAgICAgTGF5b3V0VHJlZUNvbnRlbnQmIG1fbGF5b3V0
VHJlZUNvbnRlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9UZXh0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvVGV4dENv
bnRleHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmExYWJkYTBmNWQ4Njg5MWQy
NGQ4ZWI1NzgwYThlYjhjMTFiNjA5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9UZXh0Q29udGV4
dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFj
ZSBMYXlvdXQgewotCi1zdHJ1Y3QgVGV4dENvbnRleHQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIFN0cmluZyBjb250ZW50OwotICAgIGJvb2wgY2FuVXNlU2lt
cGxpZmllZENvbnRlbnRNZWFzdXJpbmcgeyBmYWxzZSB9OwotfTsKLQotfQotfQotI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>