<?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>223849</bug_id>
          
          <creation_ts>2021-03-28 01:37:12 -0700</creation_ts>
          <short_desc>[GPU Process] Simplify DisplayList::Iterator part 1: Require encoding/decoding delegates for non-inline display list items</short_desc>
          <delta_ts>2021-04-05 17:22:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          <blocked>223560</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1744593</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-03-28 01:37:12 -0700</bug_when>
    <thetext>[GPU Process] Simplify DisplayList::Iterator part 1: Require encoding/decoding delegates for non-inline display list items</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744594</commentid>
    <comment_count>1</comment_count>
      <attachid>424486</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-03-28 01:49:16 -0700</bug_when>
    <thetext>Created attachment 424486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744643</commentid>
    <comment_count>2</comment_count>
      <attachid>424508</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-03-28 13:46:03 -0700</bug_when>
    <thetext>Created attachment 424508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744674</commentid>
    <comment_count>3</comment_count>
      <attachid>424519</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-03-28 20:01:36 -0700</bug_when>
    <thetext>Created attachment 424519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744681</commentid>
    <comment_count>4</comment_count>
      <attachid>424519</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-28 22:08:59 -0700</bug_when>
    <thetext>Comment on attachment 424519
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:49
&gt; +#include &quot;InMemoryDisplayList.h&quot;

Do we need this include?

&gt; Source/WebCore/platform/graphics/displaylists/InMemoryDisplayList.cpp:64
&gt; +    for (auto iterator = this-&gt;begin(); iterator != end; ++iterator) {

Can we just do something like `for (auto [item, extent, size] : *this) { …` here instead?

&gt; Source/WebCore/platform/graphics/displaylists/InMemoryDisplayList.h:55
&gt; +    std::unique_ptr&lt;ItemBufferWritingClient&gt; m_writingClient;
&gt; +    std::unique_ptr&lt;ItemBufferReadingClient&gt; m_readingClient;

Should these be of type `InMemoryDisplayList::WritingClient` and `InMemoryDisplayList::ReadingClient`? (i.e. do we expect these to be set to non-in-memory clients)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744683</commentid>
    <comment_count>5</comment_count>
      <attachid>424523</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-03-28 22:20:57 -0700</bug_when>
    <thetext>Created attachment 424523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744695</commentid>
    <comment_count>6</comment_count>
      <attachid>424527</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-03-28 23:30:17 -0700</bug_when>
    <thetext>Created attachment 424527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746504</commentid>
    <comment_count>7</comment_count>
      <attachid>424527</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-02 08:22:07 -0700</bug_when>
    <thetext>Comment on attachment 424527
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListImageBuffer.h:59
&gt; +        m_drawingContext.displayList().setItemBufferClient(m_writingClient.get());
&gt; +        m_drawingContext.displayList().setItemBufferClient(m_readingClient.get());

It looks like this needs to be updated after the recent renaming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746679</commentid>
    <comment_count>8</comment_count>
      <attachid>425057</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-02 14:48:34 -0700</bug_when>
    <thetext>Created attachment 425057
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746891</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-04 21:22:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/76205069&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747184</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-05 17:22:08 -0700</bug_when>
    <thetext>Committed r275459: &lt;https://commits.webkit.org/r275459&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425057.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424486</attachid>
            <date>2021-03-28 01:49:16 -0700</date>
            <delta_ts>2021-03-28 13:46:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223849-20210328014915.patch</filename>
            <type>text/plain</type>
            <size>35431</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxODQ3MDkyZmVmMzFm
ZWYxZmZjNDY1ZmVjNmMzMTQyMmVhOGY1MS4uMmY5NmY3NmM1YjJjN2QzOWU4ZmJjYjZjM2Q5MjU3
Y2UxYTA1M2Q2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTAzLTI4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCAxOiBSZXF1aXJlIGVuY29k
aW5nL2RlY29kaW5nIGRlbGVnYXRlcyBmb3Igbm9uLWlubGluZSBkaXNwbGF5IGxpc3QgaXRlbXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcXVpcmlu
ZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIGhhcyB0aGVzZSBh
ZHZhbnRhZ2VzOgorICAgICAgICAtIERpc3BsYXlMaXN0OjpJdGVyYXRvcjo6dXBkYXRlQ3VycmVu
dEl0ZW0oKSBvbmx5IGhhcyAyIGNvZGVwYXRocyBpbnN0ZWFkIG9mIDMuCisgICAgICAgIC0gSXRl
bUJ1ZmZlcjo6bV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycyBjYW4gYmUgZGVsZXRl
ZCBlbnRpcmVseS4KKyAgICAgICAgLSBUaGUgY29uZGl0aW9uYWwgaW5zaWRlIEl0ZW1CdWZmZXI6
OmFwcGVuZCgpIGNhbiBiZSBzaW1wbGlmaWVkIGZyb20KKyAgICAgICAgICAgICAgIVQ6OmlzSW5s
aW5lSXRlbSAmJiBtX3dyaXRpbmdDbGllbnQgdG8ganVzdCAhVDo6aXNJbmxpbmVJdGVtLCB3aGlj
aCBJIHRoaW5rIG1ha2VzIHRoZQorICAgICAgICAgICAgICBmdW5jdGlvbiBzaWduaWZpY2FudGx5
IG1vcmUgcmVhZGFibGUuCisKKyAgICAgICAgVGhlcmUgd2FzIG9uZSBwbGFjZSB3aGVyZSB3ZSB3
ZXJlIHVzaW5nIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIHdpdGhvdXQgYSBkZWxlZ2F0
ZToKKyAgICAgICAgY2FjaGluZyB0aGUgRHJhd0dseXBocyBjb21tYW5kIHRvIG9wdGltaXplIHRl
eHQgcGFpbnRpbmcuIFRoaXMgcGF0Y2ggYWRkcyB0d28gbmV3ICJudWxsIgorICAgICAgICBkZWxl
Z2F0ZXMsIGFuZCBob29rcyB0aGVtIHVwIHRvIGEgc3ViY2xhc3Mgb2YgRGlzcGxheUxpc3QsIGNh
bGxlZCBJbk1lbW9yeURpc3BsYXlMaXN0LgorICAgICAgICBDbGllbnRzIHdobyB3YW50IHRvIHVz
ZSBpbi1tZW1vcnkgZGlzcGxheSBsaXN0cyAobGlrZSB0aGUgRHJhd0dseXBocyBjYWNoZSkgY2Fu
IGp1c3QgdXNlCisgICAgICAgIHRoaXMgY2xhc3MsIGFuZCByZXRhaW4gdGhlaXIgY2FsbGluZyBw
YXR0ZXJuIHRoZXkgd2VyZSB1c2luZyBiZWZvcmUuIEFsc28sIHRoaXMgcGF0Y2ggYWRkcworICAg
ICAgICBJbk1lbW9yeURpc3BsYXlMaXN0IHdpdGhvdXQgYWRkaW5nIGFueSB2aXJ0dWFsIGZ1bmN0
aW9ucyB0byBEaXNwbGF5TGlzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVy
ZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1bik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJl
bnRJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpjb3B5
SW50byk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6SXRlbUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6b3BlcmF0
b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyOjpjbGVhcik6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6YXBwZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjptX2FsbG9jYXRlZEJ1ZmZlcnMpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1CdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpn
ZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0
aW5nQ2xpZW50Ojp+SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50OjpjcmVhdGVJdGVtQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6
cmVxdWlyZWRTaXplRm9ySXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6OmVuY29kZUl0ZW1PdXRPZkxpbmUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50Ojpl
bmNvZGVJdGVtSW5saW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6ZGlkQXBwZW5kRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6YXBwZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q6OkluTWVtb3J5
RGlzcGxheUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlz
cGxheUxpc3Q6On5Jbk1lbW9yeURpc3BsYXlMaXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oOiBBZGRlZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmg6CisKIDIwMjEtMDMtMjcgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgRGlzcGxh
eVJlZnJlc2hNb25pdG9yIHRvIGJlIG1vcmUgbG9uZy1saXZlZCBvYmplY3RzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGZiODI5NDc4MzU5Nzc3MjM0YzhlOTkzZjczYjM5ZmQ2ZWI3MjY3NGYuLjhjNDU0ZjU1MDZiNTRk
YWU5OWZlOWQ4YmNkMGYyN2MwNzJlYWFmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MjEtMDMtMjggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAg
ICAgICBbR1BVIFByb2Nlc3NdIFNpbXBsaWZ5IERpc3BsYXlMaXN0OjpJdGVyYXRvciBwYXJ0IDE6
IFJlcXVpcmUgZW5jb2RpbmcvZGVjb2RpbmcgZGVsZWdhdGVzIGZvciBub24taW5saW5lIGRpc3Bs
YXkgbGlzdCBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIzODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6
CisKIDIwMjEtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgSGF2ZSBEaXNwbGF5TGluayBjb21wdXRlIGl0cyBkaXNwbGF5Tm9taW5hbEZyYW1l
c1BlclNlY29uZCBqdXN0IG9uY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ0Yjk3MDgyNGQ1ZGM4
NWFjYzNkOTkxMjQ5ZGE2MTM5NWQzMGEwNTAuLmNiMjc5NzJmZjFkYTNjOWY2MDc0NDNjYWQ4NDM3
NjIyMzQ1YzY3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTMyMCw2ICsxMzIwLDcgQEAgc2V0
KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmgKIAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDdlMTgw
NTVkM2MzNzE1NDc4NDA1ZmYzOWE1NWNjOTkxODNjYjZlYzguLjZhMTA2ZTIwM2NjZmU0Nzk3MWE0
OWYyNzYxMGQ4NTEyMDE1OWZmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMDI3LDYgKzIwMjcsNyBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3Bw
CiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAor
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA0NTAwNjQ5ODU0M2NhMTlmN2E3ZWEwZGQwMWNmNDA0OGJi
NzM3OTUxLi5iMzg3ZGFmOTE1MmJiZWZkNjgxYTEyN2ZkNTg3YmFmOWQ1NzZjMGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02
MzQsNiArNjM0LDcgQEAKIAkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUx
OTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJB
RCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07CisJCTFDRTg4NjQxMjYxMDVCRjIw
MDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0U4ODYzRjI2MTA1QTVGMDAwQzgxNkMgLyogSW5NZW1v
cnlEaXNwbGF5TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZE
NkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CiAJCTFEMDAyNkE0MjM3NEQ2MjQw
MENBNkNERiAvKiBKU1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDAyNkEyMjM3NEQ2MjMwMENBNkNERiAvKiBK
U1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgfTsKIAkJMUQwMDI2QUEyMzc0RjlFQTAwQ0E2
Q0RGIC8qIEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAvKiBK
U0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IH07CkBAIC02OTI3LDYgKzY5MjgsOCBA
QAogCQkxQ0RENDVFNDBCQTlDODQ2MDBGOTAxNDcgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdl
YkNvcmUueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29yZS54
Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTYwQkE5Qzg0NjAw
RjkwMTQ3IC8qIEJhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0g
QmFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNFODg2M0UyNjEw
NUE1RjAwMEM4MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5NZW1vcnlEaXNwbGF5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDRTg4NjNGMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluTWVtb3J5RGlzcGxheUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNFQ0IzQTgyMUYyQjY3MzAwRjQ0NTQyIC8qIFdITFNMU3RhdGVtZW50QmVoYXZpb3JD
aGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRUNCM0E5MjFGMkI2NzMwMEY0NDU0MiAv
KiBXSExTTFN0YXRlbWVudEJlaGF2aW9yQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
SExTTFN0YXRlbWVudEJlaGF2aW9yQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDRUNCM0FGMjFGMkI5ODQwMEY0NDU0MiAvKiBXSExTTEZ1bmN0aW9uV3JpdGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMRnVuY3Rpb25Xcml0ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTgwNjgsNiArMTgwNzEsOCBAQAogCQkJCTBGRTVGQkNGMUMz
REQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlY29yZGVyLmggKi8sCiAJCQkJMEZFNUZCRDAx
QzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwICovLAogCQkJCTBGRTVG
QkQxMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmggKi8sCisJCQkJMUNF
ODg2M0UyNjEwNUE1RjAwMEM4MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuY3BwICovLAorCQkJ
CTFDRTg4NjNGMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGRpc3BsYXlsaXN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0zMjgzMyw2ICszMjgzOCw3IEBACiAJCQkJQkNFQTQ4NUEwOTdEOTMwMjAwOTRDOUU0IC8q
IElubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMDEwNzAxMTkyNTk0REYwMDhB
NDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMUNDMURF
MjI1RjhCNDkwMDcyMEFEMiAvKiBJbmxpbmVUZXh0SXRlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUNFODg2NDEyNjEwNUJGMjAwMEM4MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJFQjc2NzU3MURBMTlCREYwMDNFMjNCNSAvKiBJbnB1dEV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNTJFRkRGNDIxMTI4NzVBMDBBRDI4MkEgLyogSW5wdXRNb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzN0UzNTI0RDEyNDUwQzY2MDBCQUY1RDkgLyogSW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmNwcAppbmRleCA1Y2VhNzQ1MmQ1ZmYyZTZjYjVmM2UxMTY2NTk3Yjc5ZmQ4
ZjczZDdkLi43ZDNlYjkxMjg1YTEyYjc5MGVlMjlhYmQ4OGY0NmIxNWI5Njc1ZTE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiR2x5cGhCdWZm
ZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURp
c3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIlN1cnJvZ2F0
ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKQEAgLTIxMCw3
ICsyMTEsNyBAQCB2b2lkIEZvbnRDYXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1bgogICAgIGRyYXdFbXBoYXNpc01hcmtz
KGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBzdGFydFBvaW50KTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4gRm9udENhc2NhZGU6OmRpc3BsYXlMaXN0
Rm9yVGV4dFJ1bihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1biwg
dW5zaWduZWQgZnJvbSwgT3B0aW9uYWw8dW5zaWduZWQ+IHRvLCBDdXN0b21Gb250Tm90UmVhZHlB
Y3Rpb24gY3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPERp
c3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBGb250Q2FzY2FkZTo6ZGlzcGxheUxpc3RG
b3JUZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCB1
bnNpZ25lZCBmcm9tLCBPcHRpb25hbDx1bnNpZ25lZD4gdG8sIEN1c3RvbUZvbnROb3RSZWFkeUFj
dGlvbiBjdXN0b21Gb250Tm90UmVhZHlBY3Rpb24pIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFjb250
ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSk7CiAgICAgdW5zaWduZWQgZGVzdGluYXRpb24gPSB0by52
YWx1ZU9yKHJ1bi5sZW5ndGgoKSk7CkBAIC0yMjYsNyArMjI3LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4gRm9udENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4
dFJ1bihHcmEKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Pigp
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4g
ZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0
PigpOwogICAgIEdyYXBoaWNzQ29udGV4dCByZWNvcmRpbmdDb250ZXh0KFsmXShHcmFwaGljc0Nv
bnRleHQmIGRpc3BsYXlMaXN0Q29udGV4dCkgewogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxE
aXNwbGF5TGlzdDo6UmVjb3JkZXI+KGRpc3BsYXlMaXN0Q29udGV4dCwgKmRpc3BsYXlMaXN0LCBj
b250ZXh0LnN0YXRlKCksIEZsb2F0UmVjdCgpLCBBZmZpbmVUcmFuc2Zvcm0oKSwgbnVsbHB0ciwg
RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBoc0RlY29uc3RydWN0aW9u
OjpEb250RGVjb25zdHJ1Y3QpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKaW5kZXggNjZiNmYxM2FkMzMwMmQ2MmRiYzk1MDIzMDM4
ZGJmNDZlMjhjMTkyMC4uMWVmOWU3NmZmMTZkNDA4ZjU3Nzg4ZmZiY2ZkODZkNTc1NTVhYmUyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCkBA
IC00OSw3ICs0OSw3IEBAIGNsYXNzIFRleHRMYXlvdXQ7CiBjbGFzcyBUZXh0UnVuOwogCiBuYW1l
c3BhY2UgRGlzcGxheUxpc3QgewotY2xhc3MgRGlzcGxheUxpc3Q7CitjbGFzcyBJbk1lbW9yeURp
c3BsYXlMaXN0OwogfQogICAgIAogc3RydWN0IEdseXBoRGF0YTsKQEAgLTE5OSw3ICsxOTksNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgZmxvYXQgc3ludGhldGljT2JsaXF1ZUFuZ2xlKCkgeyBy
ZXR1cm4gMTQ7IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3Q+IGRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBUZXh0UnVu
JiwgdW5zaWduZWQgZnJvbSA9IDAsIE9wdGlvbmFsPHVuc2lnbmVkPiB0byA9IHsgfSwgQ3VzdG9t
Rm9udE5vdFJlYWR5QWN0aW9uID0gQ3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uOjpEb05vdFBhaW50
SWZGb250Tm90UmVhZHkpIGNvbnN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6
SW5NZW1vcnlEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3RGb3JUZXh0UnVuKEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IFRleHRSdW4mLCB1bnNpZ25lZCBmcm9tID0gMCwgT3B0aW9uYWw8dW5zaWduZWQ+
IHRvID0geyB9LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24gPSBDdXN0b21Gb250Tm90UmVhZHlB
Y3Rpb246OkRvTm90UGFpbnRJZkZvbnROb3RSZWFkeSkgY29uc3Q7CiAKICNpZiBQTEFURk9STShX
SU4pICYmIFVTRShDRykKICAgICBzdGF0aWMgdm9pZCBzZXRGb250U21vb3RoaW5nTGV2ZWwoaW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IDViNTViZWM4YzBhZTIxYTkyOTg0NWE0
MTVkMTM1NzljMzY5YmQ1NDcuLmI4NjM0MGY3NjI5NGRhYjgyNDUzMzE1NDAzNDJjZGQ4OTBjMjk5
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNDcsMjggKzM0NywyNCBAQCB2b2lkIERp
c3BsYXlMaXN0OjppdGVyYXRvcjo6dXBkYXRlQ3VycmVudEl0ZW0oKQogICAgIH0gZWxzZQogICAg
ICAgICBtX2N1cnJlbnRFeHRlbnQgPSBXVEY6Om51bGxvcHQ7CiAKLSAgICBhdXRvKiBjbGllbnQg
PSBpdGVtcy5tX3JlYWRpbmdDbGllbnQ7CiAgICAgYXV0byBwYWRkZWRTaXplT2ZUeXBlQW5kSXRl
bSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVtVHlwZSk7Ci0gICAgaWYgKGNs
aWVudCkgewotICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtID0gcGFkZGVkU2l6ZU9mVHlw
ZUFuZEl0ZW0gPD0gc2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbSA/IG1fZml4ZWRCdWZm
ZXJGb3JDdXJyZW50SXRlbSA6IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGZhc3RNYWxsb2Mo
cGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0pKTsKLSAgICAgICAgaWYgKGlzSW5saW5lSXRlbShpdGVt
VHlwZSkpIHsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSghSXRlbUhhbmRsZSB7IG1fY3Vyc29y
IH0uc2FmZUNvcHkoeyBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtIH0pKSkKLSAgICAgICAgICAgICAg
ICBtX2lzVmFsaWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1
ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KG1fY3Vy
c29yKVsxXTsKLSAgICAgICAgICAgIGF1dG8qIHN0YXJ0T2ZEYXRhID0gbV9jdXJzb3IgKyAyICog
c2l6ZW9mKHVpbnQ2NF90KTsKLSAgICAgICAgICAgIGF1dG8gZGVjb2RlZEl0ZW1IYW5kbGUgPSBj
bGllbnQtPmRlY29kZUl0ZW0oc3RhcnRPZkRhdGEsIGRhdGFMZW5ndGgsIGl0ZW1UeXBlLCBtX2N1
cnJlbnRCdWZmZXJGb3JJdGVtKTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSghZGVjb2RlZEl0
ZW1IYW5kbGUpKQotICAgICAgICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwotCi0gICAgICAg
ICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtWzBdID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oaXRl
bVR5cGUpOwotICAgICAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IDIgKiBzaXpl
b2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwgZGF0
YUxlbmd0aCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBtX2N1cnJlbnRCdWZm
ZXJGb3JJdGVtID0gbV9jdXJzb3I7CisgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSA9IHBhZGRl
ZFNpemVPZlR5cGVBbmRJdGVtIDw9IHNpemVPZkZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gPyBt
X2ZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gOiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihm
YXN0TWFsbG9jKHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtKSk7CisgICAgaWYgKGlzSW5saW5lSXRl
bShpdGVtVHlwZSkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKCFJdGVtSGFuZGxlIHsgbV9jdXJz
b3IgfS5zYWZlQ29weSh7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gfSkpKQorICAgICAgICAgICAg
bV9pc1ZhbGlkID0gZmFsc2U7CisKICAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9
IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8qIGNs
aWVudCA9IGl0ZW1zLm1fcmVhZGluZ0NsaWVudDsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2xp
ZW50KTsKKyAgICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRf
dCo+KG1fY3Vyc29yKVsxXTsKKyAgICAgICAgYXV0byogc3RhcnRPZkRhdGEgPSBtX2N1cnNvciAr
IDIgKiBzaXplb2YodWludDY0X3QpOworICAgICAgICBhdXRvIGRlY29kZWRJdGVtSGFuZGxlID0g
Y2xpZW50LT5kZWNvZGVJdGVtKHN0YXJ0T2ZEYXRhLCBkYXRhTGVuZ3RoLCBpdGVtVHlwZSwgbV9j
dXJyZW50QnVmZmVyRm9ySXRlbSk7CisgICAgICAgIGlmIChVTkxJS0VMWSghZGVjb2RlZEl0ZW1I
YW5kbGUpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisKKyAgICAgICAgbV9jdXJy
ZW50QnVmZmVyRm9ySXRlbVswXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGl0ZW1UeXBlKTsKKyAg
ICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IDIgKiBzaXplb2YodWludDY0X3QpICsg
cm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwgZGF0YUxlbmd0aCk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4
IGI1YzM3NDE5ZDZmZmFhMTY4ZDRiYjk5ZTQxODg0ZmRhZDRkMTc2OTcuLjk3YmFmNDliYzQ4YTE5
YjQ2OTM0YzViNzdkYjljYThiYmJiYmQwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTQzNywxNCArNDM3LDE0IEBAIHRlbXBsYXRlPHR5cGVuYW1lLCB0
eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNJc1ZhbGlkID0gZmFsc2U7
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzSXNWYWxpZDxU
LCBzdGQ6OnZvaWRfdDxkZWNsdHlwZShzdGQ6OmRlY2x2YWw8VD4oKS5pc1ZhbGlkKCkpPj4gPSB0
cnVlOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtPgotdHlwZW5hbWUgc3RkOjplbmFibGVfaWZf
dDwhSGFzSXNWYWxpZDxJdGVtPiwgYm9vbD4gY29weUludG8oY29uc3QgSXRlbUhhbmRsZSYgaXRl
bUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zmc2V0KQorc3RhdGljIHR5cGVuYW1l
IHN0ZDo6ZW5hYmxlX2lmX3Q8IUhhc0lzVmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0
IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkK
IHsKICAgICBuZXcgKGRlc3RpbmF0aW9uV2l0aE9mZnNldCkgSXRlbShpdGVtSGFuZGxlLmdldDxJ
dGVtPigpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4K
LXR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8SGFzSXNWYWxpZDxJdGVtPiwgYm9vbD4gY29weUlu
dG8oY29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRo
T2Zmc2V0KQorc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8SGFzSXNWYWxpZDxJdGVt
PiwgYm9vbD4gY29weUludG8oY29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCog
ZGVzdGluYXRpb25XaXRoT2Zmc2V0KQogewogICAgIGF1dG8qIG5ld0l0ZW0gPSBuZXcgKGRlc3Rp
bmF0aW9uV2l0aE9mZnNldCkgSXRlbShpdGVtSGFuZGxlLmdldDxJdGVtPigpKTsKICAgICByZXR1
cm4gbmV3SXRlbS0+aXNWYWxpZCgpOwpAQCAtNjA1LDcgKzYwNSw2IEBAIEl0ZW1CdWZmZXI6On5J
dGVtQnVmZmVyKCkKIEl0ZW1CdWZmZXI6Okl0ZW1CdWZmZXIoSXRlbUJ1ZmZlciYmIG90aGVyKQog
ICAgIDogbV9yZWFkaW5nQ2xpZW50KHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9yZWFkaW5nQ2xpZW50
LCBudWxscHRyKSkKICAgICAsIG1fd3JpdGluZ0NsaWVudChzdGQ6OmV4Y2hhbmdlKG90aGVyLm1f
d3JpdGluZ0NsaWVudCwgbnVsbHB0cikpCi0gICAgLCBtX2l0ZW1zVG9EZXN0cm95SW5BbGxvY2F0
ZWRCdWZmZXJzKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVk
QnVmZmVycywgeyB9KSkKICAgICAsIG1fYWxsb2NhdGVkQnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90
aGVyLm1fYWxsb2NhdGVkQnVmZmVycywgeyB9KSkKICAgICAsIG1fcmVhZE9ubHlCdWZmZXJzKHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9yZWFkT25seUJ1ZmZlcnMsIHsgfSkpCiAgICAgLCBtX3dyaXRh
YmxlQnVmZmVyKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV93cml0YWJsZUJ1ZmZlciwgeyB9KSkKQEAg
LTYxNyw3ICs2MTYsNiBAQCBJdGVtQnVmZmVyJiBJdGVtQnVmZmVyOjpvcGVyYXRvcj0oSXRlbUJ1
ZmZlciYmIG90aGVyKQogewogICAgIG1fcmVhZGluZ0NsaWVudCA9IHN0ZDo6ZXhjaGFuZ2Uob3Ro
ZXIubV9yZWFkaW5nQ2xpZW50LCBudWxscHRyKTsKICAgICBtX3dyaXRpbmdDbGllbnQgPSBzdGQ6
OmV4Y2hhbmdlKG90aGVyLm1fd3JpdGluZ0NsaWVudCwgbnVsbHB0cik7Ci0gICAgbV9pdGVtc1Rv
RGVzdHJveUluQWxsb2NhdGVkQnVmZmVycyA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pdGVtc1Rv
RGVzdHJveUluQWxsb2NhdGVkQnVmZmVycywgeyB9KTsKICAgICBtX2FsbG9jYXRlZEJ1ZmZlcnMg
PSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fYWxsb2NhdGVkQnVmZmVycywgeyB9KTsKICAgICBtX3Jl
YWRPbmx5QnVmZmVycyA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9yZWFkT25seUJ1ZmZlcnMsIHsg
fSk7CiAgICAgbV93cml0YWJsZUJ1ZmZlciA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV93cml0YWJs
ZUJ1ZmZlciwgeyB9KTsKQEAgLTY1MSw5ICs2NDksNiBAQCB2b2lkIEl0ZW1CdWZmZXI6OmZvckVh
Y2hJdGVtQnVmZmVyKEZ1bmN0aW9uPHZvaWQoY29uc3QgSXRlbUJ1ZmZlckhhbmRsZSYpPiYmIG1h
cAogCiB2b2lkIEl0ZW1CdWZmZXI6OmNsZWFyKCkKIHsKLSAgICBmb3IgKGF1dG8gaXRlbSA6IHN0
ZDo6ZXhjaGFuZ2UobV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycywgeyB9KSkKLSAg
ICAgICAgaXRlbS5kZXN0cm95KCk7Ci0KICAgICBmb3IgKGF1dG8qIGJ1ZmZlciA6IHN0ZDo6ZXhj
aGFuZ2UobV9hbGxvY2F0ZWRCdWZmZXJzLCB7IH0pKQogICAgICAgICBmYXN0RnJlZShidWZmZXIp
OwogCkBAIC02ODIsMTggKzY3NywzMCBAQCBEaWRDaGFuZ2VJdGVtQnVmZmVyIEl0ZW1CdWZmZXI6
OnN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKHNpemVfdCBudW1iZXJPZkJ5dGVzKQogCiB2b2lk
IEl0ZW1CdWZmZXI6OmFwcGVuZChJdGVtSGFuZGxlIHRlbXBvcmFyeUl0ZW0pCiB7Ci0gICAgYXV0
byBkYXRhID0gbV93cml0aW5nQ2xpZW50LT5lbmNvZGVJdGVtKHRlbXBvcmFyeUl0ZW0pOwotICAg
IGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuOworICAgIGF1dG8gcmVxdWlyZWRTaXplRm9ySXRl
bSA9IG1fd3JpdGluZ0NsaWVudC0+cmVxdWlyZWRTaXplRm9ySXRlbSh0ZW1wb3JhcnlJdGVtKTsK
KyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBvdXRPZkxpbmVJdGVtOworICAgIGlmICghcmVxdWly
ZWRTaXplRm9ySXRlbSkgeworICAgICAgICBvdXRPZkxpbmVJdGVtID0gbV93cml0aW5nQ2xpZW50
LT5lbmNvZGVJdGVtT3V0T2ZMaW5lKHRlbXBvcmFyeUl0ZW0pOworICAgICAgICBpZiAoIW91dE9m
TGluZUl0ZW0pCisgICAgICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgYXV0byBkYXRhTGVu
Z3RoID0gZGF0YS0+c2l6ZSgpOworICAgIGF1dG8gZGF0YUxlbmd0aCA9IHZhbHVlT3JDb21wdXRl
KHJlcXVpcmVkU2l6ZUZvckl0ZW0sIFsmXSB7CisgICAgICAgIEFTU0VSVChvdXRPZkxpbmVJdGVt
KTsKKyAgICAgICAgcmV0dXJuIG91dE9mTGluZUl0ZW0tPnNpemUoKTsKKyAgICB9KTsKICAgICBh
dXRvIGFkZGl0aW9uYWxDYXBhY2l0eUZvckVuY29kZWRJdGVtID0gMiAqIHNpemVvZih1aW50NjRf
dCkgKyByb3VuZFVwVG9NdWx0aXBsZU9mKGFsaWdub2YodWludDY0X3QpLCBkYXRhTGVuZ3RoKTsK
IAogICAgIGF1dG8gYnVmZmVyQ2hhbmdlZCA9IHN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKGFk
ZGl0aW9uYWxDYXBhY2l0eUZvckVuY29kZWRJdGVtKTsKIAogICAgIG1fd3JpdGFibGVCdWZmZXIu
ZGF0YVttX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHRlbXBv
cmFyeUl0ZW0udHlwZSgpKTsKICAgICByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV93cml0
YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVuTnVtYmVyT2ZCeXRlcylbMV0gPSBkYXRhTGVuZ3Ro
OwotICAgIG1lbWNweShtX3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBtX3dyaXR0ZW5OdW1iZXJPZkJ5
dGVzICsgMiAqIHNpemVvZih1aW50NjRfdCksIGRhdGEtPmRhdGFBc1VJbnQ4UHRyKCksIGRhdGFM
ZW5ndGgpOworICAgIGF1dG8qIGxvY2F0aW9uID0gbV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93
cml0dGVuTnVtYmVyT2ZCeXRlcyArIDIgKiBzaXplb2YodWludDY0X3QpOworCisgICAgaWYgKHJl
cXVpcmVkU2l6ZUZvckl0ZW0pCisgICAgICAgIG1fd3JpdGluZ0NsaWVudC0+ZW5jb2RlSXRlbUlu
bGluZSh0ZW1wb3JhcnlJdGVtLCBsb2NhdGlvbik7CisgICAgZWxzZQorICAgICAgICBtZW1jcHko
bG9jYXRpb24sIG91dE9mTGluZUl0ZW0tPmRhdGFBc1VJbnQ4UHRyKCksIGRhdGFMZW5ndGgpOwog
CiAgICAgZGlkQXBwZW5kRGF0YShhZGRpdGlvbmFsQ2FwYWNpdHlGb3JFbmNvZGVkSXRlbSwgYnVm
ZmVyQ2hhbmdlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgK
aW5kZXggMTM4ZDljYTBiZDczNDNkYmJmNWY1MTkxNjA3YzNiMTkyYTM3N2JlYi4uNzYxMTNjNDA0
Y2ZhZTI1YmI1M2I5ODA2Y2UxYmIzZDZiNWU1Y2YyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1CdWZmZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBJdGVtSGFuZGxlIHsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUJiBnZXQoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNT
RVJUKGlzPFQ+KCkpOwotICAgICAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8VCo+KCZkYXRh
W3NpemVvZih1aW50NjRfdCldKTsKKyAgICAgICAgcmV0dXJuICpyZWludGVycHJldF9jYXN0PFQq
PihkYXRhICsgc2l6ZW9mKHVpbnQ2NF90KSk7CiAgICAgfQogCiAgICAgYm9vbCBzYWZlQ29weShJ
dGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdDsKQEAgLTg3LDExICs4NywzMyBAQCBlbnVtIGNs
YXNzIERpZENoYW5nZUl0ZW1CdWZmZXIgOiBib29sIHsgTm8sIFllcyB9OwogCiBjbGFzcyBJdGVt
QnVmZmVyV3JpdGluZ0NsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+SXRlbUJ1ZmZlcldy
aXRpbmdDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIH5JdGVtQnVmZmVyV3JpdGluZ0NsaWVudCgp
CisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgSXRlbUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVt
QnVmZmVyKHNpemVfdCkKKyAgICB7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQogCi0gICAg
dmlydHVhbCBJdGVtQnVmZmVySGFuZGxlIGNyZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90KSA9IDA7Ci0g
ICAgdmlydHVhbCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtKEl0ZW1IYW5kbGUpIGNv
bnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVy
SGFuZGxlJiwgc2l6ZV90IG51bWJlck9mQnl0ZXMsIERpZENoYW5nZUl0ZW1CdWZmZXIpID0gMDsK
KyAgICB2aXJ0dWFsIE9wdGlvbmFsPHN0ZDo6c2l6ZV90PiByZXF1aXJlZFNpemVGb3JJdGVtKEl0
ZW1IYW5kbGUpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
IH0KKworICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGlu
ZShJdGVtSGFuZGxlKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorCisgICAgdmlydHVhbCB2b2lkIGVuY29kZUl0ZW1JbmxpbmUoSXRlbUhhbmRsZSwgdWludDhf
dCopIGNvbnN0CisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRBcHBlbmREYXRh
KGNvbnN0IEl0ZW1CdWZmZXJIYW5kbGUmLCBzaXplX3QgbnVtYmVyT2ZCeXRlcywgRGlkQ2hhbmdl
SXRlbUJ1ZmZlcikKKyAgICB7CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkJ5dGVzKTsK
KyAgICB9CiB9OwogCiBjbGFzcyBJdGVtQnVmZmVyUmVhZGluZ0NsaWVudCB7CkBAIC0xNDksOSAr
MTcxLDEwIEBAIHB1YmxpYzoKICAgICAvLyBkYXRhIGJhY2sgaW50byBhbiBpdGVtIG9mIHR5cGUg
VC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcy4uLiBBcmdzPiB2b2lkIGFwcGVuZChB
cmdzJiYuLi4gYXJncykKICAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2
aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSB8fCAhVDo6aXNJbmxpbmVJdGVtKTsKKyAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVl
ID09IFQ6OmlzSW5saW5lSXRlbSk7CiAKLSAgICAgICAgaWYgKCFUOjppc0lubGluZUl0ZW0gJiYg
bV93cml0aW5nQ2xpZW50KSB7CisgICAgICAgIGlmICghVDo6aXNJbmxpbmVJdGVtKSB7CisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dyaXRpbmdDbGllbnQpOwogI2lmIENPTVBJTEVSKE1T
VkMpCiAgICAgICAgICAgICBfX2RlY2xzcGVjKGFsaWduKDgpKSB0eXBlZGVmIHVpbnQ4X3QgRW5j
b2RpbmdCdWZmZXJbc2l6ZW9mKHVpbnQ2NF90KSArIHNpemVvZihUKV07CiAjZWxzZQpAQCAtMTY3
LDkgKzE5MCw2IEBAIHB1YmxpYzoKIAogICAgICAgICBhdXRvIGJ1ZmZlckNoYW5nZWQgPSBzd2Fw
V3JpdGFibGVCdWZmZXJJZk5lZWRlZChwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoVDo6
aXRlbVR5cGUpKTsKIAotICAgICAgICBpZiAoIXN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJs
ZTxUPjo6dmFsdWUpCi0gICAgICAgICAgICBtX2l0ZW1zVG9EZXN0cm95SW5BbGxvY2F0ZWRCdWZm
ZXJzLmFwcGVuZCh7ICZtX3dyaXRhYmxlQnVmZmVyLmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRl
c10gfSk7Ci0KICAgICAgICAgdW5jaGVja2VkQXBwZW5kPFQ+KGJ1ZmZlckNoYW5nZWQsIHN0ZDo6
Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CiAgICAgfQogCkBAIC0xOTQsNyArMjE0LDYgQEAgcHJp
dmF0ZToKIAogICAgIEl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50KiBtX3JlYWRpbmdDbGllbnQgeyBu
dWxscHRyIH07CiAgICAgSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQqIG1fd3JpdGluZ0NsaWVudCB7
IG51bGxwdHIgfTsKLSAgICBWZWN0b3I8SXRlbUhhbmRsZT4gbV9pdGVtc1RvRGVzdHJveUluQWxs
b2NhdGVkQnVmZmVyczsKICAgICBWZWN0b3I8dWludDhfdCo+IG1fYWxsb2NhdGVkQnVmZmVyczsK
ICAgICBJdGVtQnVmZmVySGFuZGxlcyBtX3JlYWRPbmx5QnVmZmVyczsKICAgICBJdGVtQnVmZmVy
SGFuZGxlIG1fd3JpdGFibGVCdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5
TGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE2MDQ3MTI4ZDI0MmI2YzcyNzc1MmI0ZWZkNjA4NTNkNzcz
NzlmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcApAQCAtMCwwICsxLDgyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkluTWVtb3J5RGlzcGxheUxpc3QuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworY2xhc3MgV3JpdGluZ0NsaWVudCA6
IHB1YmxpYyBJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7Citwcml2YXRlOgorICAgIE9wdGlvbmFsPHN0ZDo6c2l6ZV90PiByZXF1aXJlZFNpemVG
b3JJdGVtKEl0ZW1IYW5kbGUgaXRlbUhhbmRsZSkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAg
IHJldHVybiBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoaXRlbUhhbmRsZS50eXBlKCkp
OworICAgIH0KKworICAgIHZvaWQgZW5jb2RlSXRlbUlubGluZShJdGVtSGFuZGxlIGl0ZW1IYW5k
bGUsIHVpbnQ4X3QqIGxvY2F0aW9uKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgaXRlbUhh
bmRsZS5zYWZlQ29weSh7IGxvY2F0aW9uIH0pOworICAgIH0KK307CisKK2NsYXNzIFJlYWRpbmdD
bGllbnQgOiBwdWJsaWMgSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQgeworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworcHJpdmF0ZToKKworICAgIE9wdGlvbmFsPEl0ZW1IYW5kbGU+IFdBUk5f
VU5VU0VEX1JFVFVSTiBkZWNvZGVJdGVtKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCwgSXRl
bVR5cGUgdHlwZSwgdWludDhfdCogaGFuZGxlTG9jYXRpb24pIGZpbmFsCisgICAgeworICAgICAg
ICBjb25zdCBJdGVtSGFuZGxlIGRhdGFIYW5kbGUgeyBjb25zdF9jYXN0PHVpbnQ4X3QqPihkYXRh
KSB9OworICAgICAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIGRhdGFIYW5kbGUudHlwZSgpID09IHR5
cGUpOworICAgICAgICBJdGVtSGFuZGxlIHJlc3VsdCB7IGhhbmRsZUxvY2F0aW9uIH07CisgICAg
ICAgIGlmIChkYXRhSGFuZGxlLnNhZmVDb3B5KHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KK307CisKK0luTWVt
b3J5RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3QoKQorICAgIDogbV93cml0aW5nQ2xp
ZW50KFdURjo6bWFrZVVuaXF1ZTxXcml0aW5nQ2xpZW50PigpKQorICAgICwgbV9yZWFkaW5nQ2xp
ZW50KFdURjo6bWFrZVVuaXF1ZTxSZWFkaW5nQ2xpZW50PigpKQoreworICAgIHNldEl0ZW1CdWZm
ZXJDbGllbnQobV93cml0aW5nQ2xpZW50LmdldCgpKTsKKyAgICBzZXRJdGVtQnVmZmVyQ2xpZW50
KG1fcmVhZGluZ0NsaWVudC5nZXQoKSk7Cit9CisKK0luTWVtb3J5RGlzcGxheUxpc3Q6On5Jbk1l
bW9yeURpc3BsYXlMaXN0KCkKK3sKKyAgICBhdXRvIGVuZCA9IHRoaXMtPmVuZCgpOworICAgIGZv
ciAoYXV0byBpdGVyYXRvciA9IHRoaXMtPmJlZ2luKCk7IGl0ZXJhdG9yICE9IGVuZDsgKytpdGVy
YXRvcikgeworICAgICAgICBhdXRvIHZhbHVlID0gKml0ZXJhdG9yOworICAgICAgICBBU1NFUlQo
dmFsdWUuaXRlbSk7CisgICAgICAgIGlmICghdmFsdWUuaXRlbSkKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB2YWx1ZS5pdGVtLT5kZXN0cm95KCk7CisgICAgfQorfQorCit9Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5N
ZW1vcnlEaXNwbGF5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Q5YTA1MTQ3ZjBm
MDBlZWM3YjY3OGEwNTc0N2IwYmEzM2Q4YjlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3Qu
aApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRpc3BsYXlMaXN0LmgiCisj
aW5jbHVkZSA8bWVtb3J5PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxh
eUxpc3QgeworCitjbGFzcyBJbk1lbW9yeURpc3BsYXlMaXN0IDogcHVibGljIERpc3BsYXlMaXN0
IHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBJbk1lbW9yeURpc3BsYXlMaXN0KCk7CisK
KyAgICBXRUJDT1JFX0VYUE9SVCB+SW5NZW1vcnlEaXNwbGF5TGlzdCgpOworCitwcml2YXRlOgor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJdGVtQnVmZmVyV3JpdGluZ0NsaWVudD4gbV93cml0aW5nQ2xp
ZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxJdGVtQnVmZmVyUmVhZGluZ0NsaWVudD4gbV9yZWFk
aW5nQ2xpZW50OworfTsKKworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0dseXBoRGlzcGxheUxpc3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ds
eXBoRGlzcGxheUxpc3RDYWNoZS5oCmluZGV4IDJiMmYyMjNhMTM1MTYxNjJiMTBkNzE1NGRjZWEy
YTY4NTY5YmIzZmEuLmExNWE3NDQ4NWE1ZjNjYzE5MjY1MDIyZGI1NTJmNjJmOTc0MWNmYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HbHlwaERpc3BsYXlMaXN0Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRpc3BsYXlMaXN0Lmgi
CiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgpAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAog
cHJpdmF0ZToKLSAgICB1c2luZyBHbHlwaFJ1bk1hcCA9IEhhc2hNYXA8Y29uc3QgTGF5b3V0UnVu
Kiwgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4+OworICAgIHVzaW5n
IEdseXBoUnVuTWFwID0gSGFzaE1hcDxjb25zdCBMYXlvdXRSdW4qLCBzdGQ6OnVuaXF1ZV9wdHI8
RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+PjsKICAgICBHbHlwaFJ1bk1hcCBtX2ds
eXBoUnVuTWFwOwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggNWJi
ZjI1NjMwNjI5MGU0OWFjOGRiMzFiNWQwMWFjOTZiNTZhYWM0Mi4uYzIwZTI1ZTM1MWY4MjllYjk1
YWI4ZDhmMmIxODI4Y2U5ZTNkMWExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OTIsNyArMjkyLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLmNhY2hlRm9udChmb250KTsK
ICAgICB9CiAKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRsZSBjcmVh
dGVJdGVtQnVmZmVyKHNpemVfdCBjYXBhY2l0eSkgb3ZlcnJpZGUKKyAgICBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVtQnVmZmVyKHNpemVfdCBjYXBhY2l0
eSkgZmluYWwKICAgICB7CiAgICAgICAgIGlmIChMSUtFTFkobV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkpKQogICAgICAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LT5jcmVhdGVJdGVtQnVmZmVyKGNhcGFjaXR5LCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CkBAIC0zMDEsNyArMzAxLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KIAotICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW0o
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSkgY29uc3Qgb3ZlcnJpZGUKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlIGl0ZW0pIGNvbnN0IGZpbmFsCiAgICAgewogICAg
ICAgICAvKiBUaGlzIG5lZWRzIHRvIG1hdGNoICgxKSBpc0lubGluZUl0ZW0oKSBpbiBEaXNwbGF5
TGlzdEl0ZW1UeXBlLmNwcCwgKDIpIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlY29kZUl0ZW0o
KSwKICAgICAgICAgICogYW5kICgzKSBhbGwgdGhlICJzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJ
bmxpbmVJdGVtInMgaW5zaWRlIHRoZSBpbmRpdmlkdWFsIGl0ZW0gY2xhc3Nlcy4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyZjQ3YzVjODU2Mjdm
MmU1OTA4YmU0NDlkZWY4NmZiMTE0ZGY4Mjc2Li5hNzUyMmQ1MDg5OTc1ZjZjMjNhYjY5MTRhNmZl
YmNhOTdjMTI4YTU1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMtMjggIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIFNpbXBsaWZ5IERp
c3BsYXlMaXN0OjpJdGVyYXRvciBwYXJ0IDE6IFJlcXVpcmUgZW5jb2RpbmcvZGVjb2RpbmcgZGVs
ZWdhdGVzIGZvciBub24taW5saW5lIGRpc3BsYXkgbGlzdCBpdGVtcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODQ5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RU
ZXN0c0NHLmNwcDoKKwogMjAyMS0wMy0yNyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IFNlbmQgcmVwb3J0IHRvIGJvdGggY2xpY2sgc291
cmNlIGFuZCBhdHRyaWJ1dGlvbiBkZXN0aW5hdGlvbiB3ZWJzaXRlCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXgg
MWNlMTQ2MjhjZWQ1ZTAwNjQyNWQyZWMyOWYxZGUwZWI3MWZlMTM3NC4uMmU1M2JiODExZTNiYzJk
ZjM5MTA2ZjFkNTkxMzdkNzlhMjIzYTdhMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxh
eUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGllbnQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0luTWVtb3J5RGlzcGxheUxpc3QuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01OCw3ICs1OSw3IEBAIHN0YXRpYyBQYXRo
IGNyZWF0ZUNvbXBsZXhQYXRoKCkKIAogVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBBcHBlbmRJdGVt
cykKIHsKLSAgICBEaXNwbGF5TGlzdCBsaXN0OworICAgIEluTWVtb3J5RGlzcGxheUxpc3QgbGlz
dDsKIAogICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKIApAQCAtMTk4LDE1ICsxOTks
MTMgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogICAgICAgICAg
ICAgcmV0dXJuIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgZ2xv
YmFsSXRlbUJ1ZmZlckNhcGFjaXR5IH07CiAgICAgICAgIH0KIAotICAgICAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBlbmNvZGVJdGVtKEl0ZW1IYW5kbGUgaGFuZGxlKSBjb25zdCBmaW5hbAorICAg
ICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0ZW1IYW5kbGUg
aGFuZGxlKSBjb25zdCBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBhdXRvIGluZGV4ID0g
bV9pdGVtcy5zaXplKCk7CiAgICAgICAgICAgICBtX2l0ZW1zLmFwcGVuZChoYW5kbGUuZ2V0PFN0
cm9rZVBhdGg+KCkpOwogICAgICAgICAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZpbmRleCksIHNpemVvZihzaXplX3QpKTsKICAgICAg
ICAgfQogCi0gICAgICAgIHZvaWQgZGlkQXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxl
Jiwgc2l6ZV90LCBEaWRDaGFuZ2VJdGVtQnVmZmVyKSBmaW5hbCB7IH0KLQogICAgICAgICBWZWN0
b3I8U3Ryb2tlUGF0aD4mIG1faXRlbXM7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcApp
bmRleCBiNTY5ZjM0MDdlMDc1MTVmNjJlMTkwMWVlMDIyZDQxOTQ3ZmYzODlhLi4zYjMyMjc4MDYw
OWRmOGYzODg1Zjc4ZWMzODk4NTRlMDA1MmUxODA2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
MDAsOCArMTAwLDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB7IGdsb2JhbEJ1ZmZlcklk
ZW50aWZpZXIsIGdsb2JhbEl0ZW1CdWZmZXIsIGdsb2JhbEl0ZW1CdWZmZXJDYXBhY2l0eSB9Owog
ICAgIH0KIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW0oSXRlbUhhbmRsZSkg
Y29uc3QgZmluYWwgeyByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsgfQotICAgIHZvaWQg
ZGlkQXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90LCBEaWRDaGFuZ2VJ
dGVtQnVmZmVyKSBmaW5hbCB7IH0KKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVt
T3V0T2ZMaW5lKEl0ZW1IYW5kbGUpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4g
U2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKKyAgICB9CiB9OwogCiBURVNUKERpc3BsYXlMaXN0VGVz
dHMsIE91dE9mTGluZUl0ZW1EZWNvZGluZ0ZhaWx1cmUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424508</attachid>
            <date>2021-03-28 13:46:03 -0700</date>
            <delta_ts>2021-03-28 20:01:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223849-20210328134602.patch</filename>
            <type>text/plain</type>
            <size>46617</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxODQ3MDkyZmVmMzFm
ZWYxZmZjNDY1ZmVjNmMzMTQyMmVhOGY1MS4uYjQ0NThkZjMxNDc1MTVhZjE3Y2NjOWJmMDFmNGU0
NTc0NzhjMDBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIxLTAzLTI4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCAxOiBSZXF1aXJlIGVuY29k
aW5nL2RlY29kaW5nIGRlbGVnYXRlcyBmb3Igbm9uLWlubGluZSBkaXNwbGF5IGxpc3QgaXRlbXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcXVpcmlu
ZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIGhhcyB0aGVzZSBh
ZHZhbnRhZ2VzOgorICAgICAgICAtIERpc3BsYXlMaXN0OjpJdGVyYXRvcjo6dXBkYXRlQ3VycmVu
dEl0ZW0oKSBvbmx5IGhhcyAyIGNvZGVwYXRocyBpbnN0ZWFkIG9mIDMuCisgICAgICAgIC0gSXRl
bUJ1ZmZlcjo6bV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycyBjYW4gYmUgZGVsZXRl
ZCBlbnRpcmVseS4KKyAgICAgICAgLSBUaGUgY29uZGl0aW9uYWwgaW5zaWRlIEl0ZW1CdWZmZXI6
OmFwcGVuZCgpIGNhbiBiZSBzaW1wbGlmaWVkIGZyb20KKyAgICAgICAgICAgICAgIVQ6OmlzSW5s
aW5lSXRlbSAmJiBtX3dyaXRpbmdDbGllbnQgdG8ganVzdCAhVDo6aXNJbmxpbmVJdGVtLCB3aGlj
aCBJIHRoaW5rIG1ha2VzIHRoZQorICAgICAgICAgICAgICBmdW5jdGlvbiBzaWduaWZpY2FudGx5
IG1vcmUgcmVhZGFibGUuCisKKyAgICAgICAgVGhlcmUgYXJlIGEgZmV3IHBsYWNlcyB3aGVyZSB3
ZSB3ZXJlIHVzaW5nIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIHdpdGhvdXQgYSBkZWxl
Z2F0ZToKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHR3byBuZXcgIm51bGwiIGRlbGVnYXRlcywg
YW5kIGhvb2tzIHRoZW0gdXAgdG8gYSBzdWJjbGFzcyBvZiBEaXNwbGF5TGlzdCwKKyAgICAgICAg
Y2FsbGVkIEluTWVtb3J5RGlzcGxheUxpc3QuIENsaWVudHMgd2hvIHdhbnQgdG8gdXNlIGluLW1l
bW9yeSBkaXNwbGF5IGxpc3RzIChsaWtlIHRoZQorICAgICAgICBEcmF3R2x5cGhzIGNhY2hlKSBj
YW4ganVzdCB1c2UgdGhpcyBjbGFzcywgYW5kIHJldGFpbiB0aGVpciBjYWxsaW5nIHBhdHRlcm4g
dGhleSB3ZXJlIHVzaW5nCisgICAgICAgIGJlZm9yZS4gQWxzbywgdGhpcyBwYXRjaCBhZGRzIElu
TWVtb3J5RGlzcGxheUxpc3Qgd2l0aG91dCBhZGRpbmcgYW55IHZpcnR1YWwgZnVuY3Rpb25zIHRv
CisgICAgICAgIERpc3BsYXlMaXN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRo
ZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYXNjYWRlOjpkaXNwbGF5TGlzdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fz
Y2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnRJdGVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0
OjpyZXBsYXllZERpc3BsYXlMaXN0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29weUludG8pOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6Okl0ZW1CdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6bV9hbGxvY2F0ZWRCdWZmZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6fkl0ZW1CdWZmZXJX
cml0aW5nQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVy
V3JpdGluZ0NsaWVudDo6Y3JlYXRlSXRlbUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZvckl0ZW0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xp
ZW50OjplbmNvZGVJdGVtT3V0T2ZMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6
OmRpZEFwcGVuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZm
ZXI6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
cGxheWVyOjpyZXBsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1
aXJlZFNpemVGb3JJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
bk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtSW5saW5lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpS
ZWFkaW5nQ2xpZW50OjpkZWNvZGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0Ojp+SW5NZW1vcnlEaXNwbGF5
TGlzdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5
RGlzcGxheUxpc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmg6CisKIDIwMjEtMDMtMjcgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgRGlzcGxheVJl
ZnJlc2hNb25pdG9yIHRvIGJlIG1vcmUgbG9uZy1saXZlZCBvYmplY3RzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZi
ODI5NDc4MzU5Nzc3MjM0YzhlOTkzZjczYjM5ZmQ2ZWI3MjY3NGYuLjhjNDU0ZjU1MDZiNTRkYWU5
OWZlOWQ4YmNkMGYyN2MwNzJlYWFmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEt
MDMtMjggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbR1BVIFByb2Nlc3NdIFNpbXBsaWZ5IERpc3BsYXlMaXN0OjpJdGVyYXRvciBwYXJ0IDE6IFJl
cXVpcmUgZW5jb2RpbmcvZGVjb2RpbmcgZGVsZWdhdGVzIGZvciBub24taW5saW5lIGRpc3BsYXkg
bGlzdCBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIzODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisK
IDIwMjEtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgSGF2ZSBEaXNwbGF5TGluayBjb21wdXRlIGl0cyBkaXNwbGF5Tm9taW5hbEZyYW1lc1Bl
clNlY29uZCBqdXN0IG9uY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ0Yjk3MDgyNGQ1ZGM4NWFj
YzNkOTkxMjQ5ZGE2MTM5NWQzMGEwNTAuLmNiMjc5NzJmZjFkYTNjOWY2MDc0NDNjYWQ4NDM3NjIy
MzQ1YzY3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTMyMCw2ICsxMzIwLDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmgKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDdlMTgwNTVk
M2MzNzE1NDc4NDA1ZmYzOWE1NWNjOTkxODNjYjZlYzguLjZhMTA2ZTIwM2NjZmU0Nzk3MWE0OWYy
NzYxMGQ4NTEyMDE1OWZmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMDI3LDYgKzIwMjcsNyBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAorcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b2xvck1hdHJpeC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA0NTAwNjQ5ODU0M2NhMTlmN2E3ZWEwZGQwMWNmNDA0OGJiNzM3
OTUxLi5iMzg3ZGFmOTE1MmJiZWZkNjgxYTEyN2ZkNTg3YmFmOWQ1NzZjMGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzQs
NiArNjM0LDcgQEAKIAkJMUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJh
d0dseXBoc1JlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhz
UmVjb3JkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkxQ0NEODE1MDIyMzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUxOTkw
MzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAv
KiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggKi87IH07CisJCTFDRTg4NjQxMjYxMDVCRjIwMDBD
ODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0U4ODYzRjI2MTA1QTVGMDAwQzgxNkMgLyogSW5NZW1vcnlE
aXNwbGF5TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1l
d29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEz
RjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CiAJCTFEMDAyNkE0MjM3NEQ2MjQwMENB
NkNERiAvKiBKU1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDAyNkEyMjM3NEQ2MjMwMENBNkNERiAvKiBKU1Bp
Y3R1cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgfTsKIAkJMUQwMDI2QUEyMzc0RjlFQTAwQ0E2Q0RG
IC8qIEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAvKiBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IH07CkBAIC02OTI3LDYgKzY5MjgsOCBAQAog
CQkxQ0RENDVFNDBCQTlDODQ2MDBGOTAxNDcgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNv
cmUueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29yZS54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTYwQkE5Qzg0NjAwRjkw
MTQ3IC8qIEJhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFz
ZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNFODg2M0UyNjEwNUE1
RjAwMEM4MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW5NZW1vcnlEaXNwbGF5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
RTg4NjNGMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluTWVtb3J5RGlzcGxheUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUNFQ0IzQTgyMUYyQjY3MzAwRjQ0NTQyIC8qIFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVj
a2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRUNCM0E5MjFGMkI2NzMwMEY0NDU0MiAvKiBX
SExTTFN0YXRlbWVudEJlaGF2aW9yQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExT
TFN0YXRlbWVudEJlaGF2aW9yQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDRUNCM0FGMjFGMkI5ODQwMEY0NDU0MiAvKiBXSExTTEZ1bmN0aW9uV3JpdGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMRnVuY3Rpb25Xcml0ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTgwNjgsNiArMTgwNzEsOCBAQAogCQkJCTBGRTVGQkNGMUMzREQ1
MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlY29yZGVyLmggKi8sCiAJCQkJMEZFNUZCRDAxQzNE
RDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwICovLAogCQkJCTBGRTVGQkQx
MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmggKi8sCisJCQkJMUNFODg2
M0UyNjEwNUE1RjAwMEM4MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuY3BwICovLAorCQkJCTFD
RTg4NjNGMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGRpc3BsYXlsaXN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0zMjgzMyw2ICszMjgzOCw3IEBACiAJCQkJQkNFQTQ4NUEwOTdEOTMwMjAwOTRDOUU0IC8qIElu
bGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMDEwNzAxMTkyNTk0REYwMDhBNDIw
MSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMUNDMURFMjI1
RjhCNDkwMDcyMEFEMiAvKiBJbmxpbmVUZXh0SXRlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNF
ODg2NDEyNjEwNUJGMjAwMEM4MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFQjc2NzU3MURBMTlCREYwMDNFMjNCNSAvKiBJbnB1dEV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNTJFRkRGNDIxMTI4NzVBMDBBRDI4MkEgLyogSW5wdXRNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzN0UzNTI0RDEyNDUwQzY2MDBCQUY1RDkgLyogSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAK
aW5kZXggMDZmZjUxNTJhODQ1Y2EwOTM5NzgxZTI3YTYyZGYzNGFiMTQzZmRiZi4uOWNlOTlmMzZh
NzM3ODMxM2Q4ODJlYWI3YWI1Y2RkNWJkMDE2MzUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgVG9yY2ggTW9iaWxlIChCZWlqaW5nKSBDby4gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5o
IgorI2luY2x1ZGUgIkluTWVtb3J5RGlzcGxheUxpc3QuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiCiAj
aW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCmluZGV4IDVjZWE3NDUyZDVmZjJlNmNiNWYzZTEx
NjY1OTdiNzlmZDhmNzNkN2QuLjdkM2ViOTEyODVhMTJiNzkwZWUyOWFiZDg4ZjQ2YjE1Yjk2NzVl
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2Fk
ZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRl
ICJHbHlwaEJ1ZmZlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUg
IkluTWVtb3J5RGlzcGxheUxpc3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVk
ZSAiU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5o
IgpAQCAtMjEwLDcgKzIxMSw3IEBAIHZvaWQgRm9udENhc2NhZGU6OmRyYXdFbXBoYXNpc01hcmtz
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuCiAgICAgZHJhd0Vt
cGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZmZXIsIG1hcmssIHN0YXJ0UG9pbnQpOwogfQog
Ci1zdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBGb250Q2FzY2FkZTo6
ZGlzcGxheUxpc3RGb3JUZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgVGV4
dFJ1biYgcnVuLCB1bnNpZ25lZCBmcm9tLCBPcHRpb25hbDx1bnNpZ25lZD4gdG8sIEN1c3RvbUZv
bnROb3RSZWFkeUFjdGlvbiBjdXN0b21Gb250Tm90UmVhZHlBY3Rpb24pIGNvbnN0CitzdGQ6OnVu
aXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+IEZvbnRDYXNjYWRlOjpk
aXNwbGF5TGlzdEZvclRleHRSdW4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBUZXh0
UnVuJiBydW4sIHVuc2lnbmVkIGZyb20sIE9wdGlvbmFsPHVuc2lnbmVkPiB0bywgQ3VzdG9tRm9u
dE5vdFJlYWR5QWN0aW9uIGN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbikgY29uc3QKIHsKICAgICBB
U1NFUlQoIWNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKTsKICAgICB1bnNpZ25lZCBkZXN0aW5h
dGlvbiA9IHRvLnZhbHVlT3IocnVuLmxlbmd0aCgpKTsKQEAgLTIyNiw3ICsyMjcsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBGb250Q2FzY2FkZTo6ZGlzcGxh
eUxpc3RGb3JUZXh0UnVuKEdyYQogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3Q+IGRpc3BsYXlMaXN0ID0gbWFrZVVuaXF1ZTxEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3Q+KCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURp
c3BsYXlMaXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5
RGlzcGxheUxpc3Q+KCk7CiAgICAgR3JhcGhpY3NDb250ZXh0IHJlY29yZGluZ0NvbnRleHQoWyZd
KEdyYXBoaWNzQ29udGV4dCYgZGlzcGxheUxpc3RDb250ZXh0KSB7CiAgICAgICAgIHJldHVybiBt
YWtlVW5pcXVlPERpc3BsYXlMaXN0OjpSZWNvcmRlcj4oZGlzcGxheUxpc3RDb250ZXh0LCAqZGlz
cGxheUxpc3QsIGNvbnRleHQuc3RhdGUoKSwgRmxvYXRSZWN0KCksIEFmZmluZVRyYW5zZm9ybSgp
LCBudWxscHRyLCBEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzRGVj
b25zdHJ1Y3Rpb246OkRvbnREZWNvbnN0cnVjdCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAppbmRleCA2NmI2ZjEzYWQzMzAyZDYy
ZGJjOTUwMjMwMzhkYmY0NmUyOGMxOTIwLi4xZWY5ZTc2ZmYxNmQ0MDhmNTc3ODhmZmJjZmQ4NmQ1
NzU1NWFiZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250Q2FzY2FkZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YXNjYWRlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgVGV4dExheW91dDsKIGNsYXNzIFRleHRS
dW47CiAKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7Ci1jbGFzcyBEaXNwbGF5TGlzdDsKK2NsYXNz
IEluTWVtb3J5RGlzcGxheUxpc3Q7CiB9CiAgICAgCiBzdHJ1Y3QgR2x5cGhEYXRhOwpAQCAtMTk5
LDcgKzE5OSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBmbG9hdCBzeW50aGV0aWNPYmxpcXVl
QW5nbGUoKSB7IHJldHVybiAxNDsgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3RGb3JUZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IFRleHRSdW4mLCB1bnNpZ25lZCBmcm9tID0gMCwgT3B0aW9uYWw8dW5zaWduZWQ+IHRvID0g
eyB9LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24gPSBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb246
OkRvTm90UGFpbnRJZkZvbnROb3RSZWFkeSkgY29uc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPERp
c3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBkaXNwbGF5TGlzdEZvclRleHRSdW4oR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgVGV4dFJ1biYsIHVuc2lnbmVkIGZyb20gPSAwLCBPcHRpb25h
bDx1bnNpZ25lZD4gdG8gPSB7IH0sIEN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbiA9IEN1c3RvbUZv
bnROb3RSZWFkeUFjdGlvbjo6RG9Ob3RQYWludElmRm9udE5vdFJlYWR5KSBjb25zdDsKIAogI2lm
IFBMQVRGT1JNKFdJTikgJiYgVVNFKENHKQogICAgIHN0YXRpYyB2b2lkIHNldEZvbnRTbW9vdGhp
bmdMZXZlbChpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggNjYxYWI0NTcyMTQ5ODk3NzZlYTFhMGZl
YmZhOTQ1N2QzNDEzZTAxYy4uNGU1NzFkOGNmYmI4MzViYjVmYTk5YWE3MTRhNmE3MDgxZDc3NTNl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckZhY3RvcnkuaCIKICNpbmNsdWRlICJJbWFnZS5o
IgorI2luY2x1ZGUgIkluTWVtb3J5RGlzcGxheUxpc3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiTW9kZWwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBRmlsdGVycy5oIgpAQCAt
NDAyLDcgKzQwMyw3IEBAIFJlZjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBHcmFwaGljc0xheWVyQ0E6
OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFuCiAjZW5kaWYKIH0KIAotdHlw
ZWRlZiBIYXNoTWFwPGNvbnN0IEdyYXBoaWNzTGF5ZXJDQSosIHN0ZDo6cGFpcjxGbG9hdFJlY3Qs
IHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q+Pj4gTGF5ZXJEaXNwbGF5
TGlzdEhhc2hNYXA7Cit0eXBlZGVmIEhhc2hNYXA8Y29uc3QgR3JhcGhpY3NMYXllckNBKiwgc3Rk
OjpwYWlyPEZsb2F0UmVjdCwgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURp
c3BsYXlMaXN0Pj4+IExheWVyRGlzcGxheUxpc3RIYXNoTWFwOwogCiBzdGF0aWMgTGF5ZXJEaXNw
bGF5TGlzdEhhc2hNYXAmIGxheWVyRGlzcGxheUxpc3RNYXAoKQogewpAQCAtMTcxMCw3ICsxNzEx
LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoQ29tbWl0
U3RhdGUmIGNvbW1pdFN0YXRlLCBjb25zdCBUcmEKICAgICBpZiAodXNlc0Rpc3BsYXlMaXN0RHJh
d2luZygpICYmIG1fZHJhd3NDb250ZW50ICYmICghbV9oYXNFdmVyUGFpbnRlZCB8fCBoYWREaXJ0
eVJlY3RzKSkgewogICAgICAgICBUcmFjZVNjb3BlIHRyYWNpbmdTY29wZShEaXNwbGF5TGlzdFJl
Y29yZFN0YXJ0LCBEaXNwbGF5TGlzdFJlY29yZEVuZCk7CiAKLSAgICAgICAgbV9kaXNwbGF5TGlz
dCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PigpOworICAgICAgICBtX2Rp
c3BsYXlMaXN0ID0gbWFrZVVuaXF1ZTxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4o
KTsKICAgICAgICAgCiAgICAgICAgIEZsb2F0UmVjdCBpbml0aWFsQ2xpcChib3VuZHNPcmlnaW4o
KSwgc2l6ZSgpKTsKIApAQCAtMTc0NCw3ICsxNzQ1LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMoUGxhdGZvcm1DQUxheWVyKiwgR3JhcGhpY3ND
b24KICAgICAgICAgCiAgICAgICAgIGlmIChVTkxJS0VMWShpc1RyYWNraW5nRGlzcGxheUxpc3RS
ZXBsYXkoKSkpIHsKICAgICAgICAgICAgIGF1dG8gcmVwbGF5TGlzdCA9IHJlcGxheWVyLnJlcGxh
eShjbGlwLCBpc1RyYWNraW5nRGlzcGxheUxpc3RSZXBsYXkoKSkudHJhY2tlZERpc3BsYXlMaXN0
OwotICAgICAgICAgICAgbGF5ZXJEaXNwbGF5TGlzdE1hcCgpLmFkZCh0aGlzLCBzdGQ6OnBhaXI8
RmxvYXRSZWN0LCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Pj4oY2xp
cCwgV1RGTW92ZShyZXBsYXlMaXN0KSkpOworICAgICAgICAgICAgbGF5ZXJEaXNwbGF5TGlzdE1h
cCgpLmFkZCh0aGlzLCBzdGQ6OnBhaXI8RmxvYXRSZWN0LCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxh
eUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+PihjbGlwLCBXVEZNb3ZlKHJlcGxheUxpc3QpKSk7
CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcmVwbGF5ZXIucmVwbGF5KGNsaXApOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oCmluZGV4IGJmYjY1MTJlNGUyOWQ3ZDgzNmZlMTJjOWFkOWQzNDdiMTE2ZjE2MzQuLjlh
NjdkMGRiZjYzODIwZDc3ZjVlMmI0YzUwNGQ3N2ZjOWE2OTVhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC02
MzAsNyArNjMwLDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxGbG9hdFJlY3Q+IG1fZGlydHlS
ZWN0czsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q+IG1f
ZGlzcGxheUxpc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURp
c3BsYXlMaXN0PiBtX2Rpc3BsYXlMaXN0OwogCiAgICAgQ29udGVudHNMYXllclB1cnBvc2UgbV9j
b250ZW50c0xheWVyUHVycG9zZSB7IENvbnRlbnRzTGF5ZXJQdXJwb3NlOjpOb25lIH07CiAgICAg
Ym9vbCBtX2lzQ29tbWl0dGluZ0NoYW5nZXMgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dC5jcHAKaW5kZXggNWI1NWJlYzhjMGFlMjFhOTI5ODQ1YTQxNWQxMzU3OWMzNjliZDU0Ny4uYjg2
MzQwZjc2Mjk0ZGFiODI0NTMzMTU0MDM0MmNkZDg5MGMyOTkxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM0NywyOCArMzQ3LDI0IEBAIHZvaWQgRGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjp1
cGRhdGVDdXJyZW50SXRlbSgpCiAgICAgfSBlbHNlCiAgICAgICAgIG1fY3VycmVudEV4dGVudCA9
IFdURjo6bnVsbG9wdDsKIAotICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1fcmVhZGluZ0NsaWVu
dDsKICAgICBhdXRvIHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtID0gcGFkZGVkU2l6ZU9mVHlwZUFu
ZEl0ZW1JbkJ5dGVzKGl0ZW1UeXBlKTsKLSAgICBpZiAoY2xpZW50KSB7Ci0gICAgICAgIG1fY3Vy
cmVudEJ1ZmZlckZvckl0ZW0gPSBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbSA8PSBzaXplT2ZGaXhl
ZEJ1ZmZlckZvckN1cnJlbnRJdGVtID8gbV9maXhlZEJ1ZmZlckZvckN1cnJlbnRJdGVtIDogcmVp
bnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZmFzdE1hbGxvYyhwYWRkZWRTaXplT2ZUeXBlQW5kSXRl
bSkpOwotICAgICAgICBpZiAoaXNJbmxpbmVJdGVtKGl0ZW1UeXBlKSkgewotICAgICAgICAgICAg
aWYgKFVOTElLRUxZKCFJdGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29weSh7IG1fY3VycmVu
dEJ1ZmZlckZvckl0ZW0gfSkpKQotICAgICAgICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwot
Ci0gICAgICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0gcGFkZGVkU2l6ZU9mVHlw
ZUFuZEl0ZW07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGRhdGFMZW5ndGgg
PSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV9jdXJzb3IpWzFdOwotICAgICAgICAgICAg
YXV0byogc3RhcnRPZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWludDY0X3QpOwotICAg
ICAgICAgICAgYXV0byBkZWNvZGVkSXRlbUhhbmRsZSA9IGNsaWVudC0+ZGVjb2RlSXRlbShzdGFy
dE9mRGF0YSwgZGF0YUxlbmd0aCwgaXRlbVR5cGUsIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0pOwot
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFkZWNvZGVkSXRlbUhhbmRsZSkpCi0gICAgICAgICAg
ICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIG1fY3VycmVudEJ1ZmZlckZv
ckl0ZW1bMF0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtVHlwZSk7Ci0gICAgICAgICAgICBt
X2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0gMiAqIHNpemVvZih1aW50NjRfdCkgKyByb3VuZFVw
VG9NdWx0aXBsZU9mKGFsaWdub2YodWludDY0X3QpLCBkYXRhTGVuZ3RoKTsKLSAgICAgICAgfQot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY3VycmVudEJ1ZmZlckZvckl0ZW0gPSBtX2N1cnNvcjsK
KyAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0gPD0g
c2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbSA/IG1fZml4ZWRCdWZmZXJGb3JDdXJyZW50
SXRlbSA6IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGZhc3RNYWxsb2MocGFkZGVkU2l6ZU9m
VHlwZUFuZEl0ZW0pKTsKKyAgICBpZiAoaXNJbmxpbmVJdGVtKGl0ZW1UeXBlKSkgeworICAgICAg
ICBpZiAoVU5MSUtFTFkoIUl0ZW1IYW5kbGUgeyBtX2N1cnNvciB9LnNhZmVDb3B5KHsgbV9jdXJy
ZW50QnVmZmVyRm9ySXRlbSB9KSkpCisgICAgICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKKwog
ICAgICAgICBtX2N1cnJlbnRJdGVtU2l6ZUluQnVmZmVyID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0
ZW07CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byogY2xpZW50ID0gaXRlbXMubV9yZWFkaW5n
Q2xpZW50OworICAgICAgICBSRUxFQVNFX0FTU0VSVChjbGllbnQpOworICAgICAgICBhdXRvIGRh
dGFMZW5ndGggPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV9jdXJzb3IpWzFdOworICAg
ICAgICBhdXRvKiBzdGFydE9mRGF0YSA9IG1fY3Vyc29yICsgMiAqIHNpemVvZih1aW50NjRfdCk7
CisgICAgICAgIGF1dG8gZGVjb2RlZEl0ZW1IYW5kbGUgPSBjbGllbnQtPmRlY29kZUl0ZW0oc3Rh
cnRPZkRhdGEsIGRhdGFMZW5ndGgsIGl0ZW1UeXBlLCBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtKTsK
KyAgICAgICAgaWYgKFVOTElLRUxZKCFkZWNvZGVkSXRlbUhhbmRsZSkpCisgICAgICAgICAgICBt
X2lzVmFsaWQgPSBmYWxzZTsKKworICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtWzBdID0g
c3RhdGljX2Nhc3Q8dWludDhfdD4oaXRlbVR5cGUpOworICAgICAgICBtX2N1cnJlbnRJdGVtU2l6
ZUluQnVmZmVyID0gMiAqIHNpemVvZih1aW50NjRfdCkgKyByb3VuZFVwVG9NdWx0aXBsZU9mKGFs
aWdub2YodWludDY0X3QpLCBkYXRhTGVuZ3RoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oCmluZGV4IDk2ZTRiMWVmZjk4MWU0MjI3
OWQ3NDZkYzZiYjM5YzhhYTUyOGUxNDUuLmQzN2MwNzM1YmViNTU0OTJkOTBmZjllY2U0Y2E0ZGI3
OTk1ZDVmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRl
eHQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zMiw2ICszMiw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxh
eUxpc3QgewogCitjbGFzcyBJbk1lbW9yeURpc3BsYXlMaXN0OworCiBjbGFzcyBEcmF3aW5nQ29u
dGV4dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC00Miw3ICs0
NCw3IEBAIHB1YmxpYzoKICAgICBEaXNwbGF5TGlzdCB0YWtlRGlzcGxheUxpc3QoKSB7IHJldHVy
biBzdGQ6OmV4Y2hhbmdlKG1fZGlzcGxheUxpc3QsIHsgfSk7IH0KICAgICBEaXNwbGF5TGlzdCYg
ZGlzcGxheUxpc3QoKSB7IHJldHVybiBtX2Rpc3BsYXlMaXN0OyB9CiAgICAgY29uc3QgRGlzcGxh
eUxpc3QmIGRpc3BsYXlMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5TGlzdDsgfQotICAg
IGNvbnN0IERpc3BsYXlMaXN0KiByZXBsYXllZERpc3BsYXlMaXN0KCkgY29uc3QgeyByZXR1cm4g
bV9yZXBsYXllZERpc3BsYXlMaXN0LmdldCgpOyB9CisgICAgY29uc3QgSW5NZW1vcnlEaXNwbGF5
TGlzdCogcmVwbGF5ZWREaXNwbGF5TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGF5ZWREaXNw
bGF5TGlzdC5nZXQoKTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUcmFja3NEaXNw
bGF5TGlzdFJlcGxheShib29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxheURpc3Bs
YXlMaXN0KEdyYXBoaWNzQ29udGV4dCYpOwpAQCAtNTAsNyArNTIsNyBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgR3JhcGhpY3NDb250ZXh0IG1fY29udGV4dDsKICAgICBEaXNwbGF5TGlzdCBt
X2Rpc3BsYXlMaXN0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdD4gbV9yZXBsYXll
ZERpc3BsYXlMaXN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbk1lbW9yeURpc3BsYXlMaXN0PiBt
X3JlcGxheWVkRGlzcGxheUxpc3Q7CiAgICAgYm9vbCBtX3RyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5
IHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ci5oCmluZGV4IDRlYjk2NDg0YzY5Zjc1OTFjNmM2OWNhOGE2ZmE1ZjYyMzZkNjcwMDQuLjkyOGMy
NDliMmQ0NWY4NGM5MDUxMDk0ODAyZDMyNGM4MzI1NGU1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAi
Q29uY3JldGVJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd2luZ0NvbnRl
eHQuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CkBAIC01MSwxMyArNTIsMjEgQEAgcHVibGlj
OgogICAgIEltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyYg
cGFyYW1ldGVycywgc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQpCiAgICAg
ICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIocGFyYW1ldGVycywgV1RGTW92ZShiYWNrZW5k
KSkKICAgICAgICAgLCBtX2RyYXdpbmdDb250ZXh0KGxvZ2ljYWxTaXplKCksIGJhc2VUcmFuc2Zv
cm0oKSkKKyAgICAgICAgLCBtX3dyaXRpbmdDbGllbnQoV1RGOjptYWtlVW5pcXVlPEluTWVtb3J5
RGlzcGxheUxpc3Q6OldyaXRpbmdDbGllbnQ+KCkpCisgICAgICAgICwgbV9yZWFkaW5nQ2xpZW50
KFdURjo6bWFrZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpSZWFkaW5nQ2xpZW50PigpKQog
ICAgIHsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnNldEl0ZW1CdWZm
ZXJDbGllbnQobV93cml0aW5nQ2xpZW50LmdldCgpKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4
dC5kaXNwbGF5TGlzdCgpLnNldEl0ZW1CdWZmZXJDbGllbnQobV9yZWFkaW5nQ2xpZW50LmdldCgp
KTsKICAgICB9CiAKICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIFJlY29yZGVyOjpEZWxlZ2F0ZSogZGVsZWdhdGUgPSBudWxs
cHRyKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKHBhcmFtZXRlcnMpCiAgICAg
ICAgICwgbV9kcmF3aW5nQ29udGV4dChsb2dpY2FsU2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCksIGRl
bGVnYXRlKQorICAgICAgICAsIG1fd3JpdGluZ0NsaWVudChXVEY6Om1ha2VVbmlxdWU8SW5NZW1v
cnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudD4oKSkKKyAgICAgICAgLCBtX3JlYWRpbmdDbGll
bnQoV1RGOjptYWtlVW5pcXVlPEluTWVtb3J5RGlzcGxheUxpc3Q6OlJlYWRpbmdDbGllbnQ+KCkp
CiAgICAgeworICAgICAgICBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCkuc2V0SXRlbUJ1
ZmZlckNsaWVudChtX3dyaXRpbmdDbGllbnQuZ2V0KCkpOworICAgICAgICBtX2RyYXdpbmdDb250
ZXh0LmRpc3BsYXlMaXN0KCkuc2V0SXRlbUJ1ZmZlckNsaWVudChtX3JlYWRpbmdDbGllbnQuZ2V0
KCkpOwogICAgIH0KIAogICAgIH5JbWFnZUJ1ZmZlcigpCkBAIC04MCw2ICs4OSw4IEBAIHB1Ymxp
YzoKIAogcHJvdGVjdGVkOgogICAgIERyYXdpbmdDb250ZXh0IG1fZHJhd2luZ0NvbnRleHQ7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50PiBtX3dyaXRpbmdDbGll
bnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50PiBtX3JlYWRp
bmdDbGllbnQ7CiB9OwogCiB9IC8vIERpc3BsYXlMaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IGI1YzM3NDE5ZDZmZmFhMTY4ZDRiYjk5ZTQxODg0
ZmRhZDRkMTc2OTcuLjk3YmFmNDliYzQ4YTE5YjQ2OTM0YzViNzdkYjljYThiYmJiYmQwYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzNywxNCArNDM3
LDE0IEBAIHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25zdGV4
cHIgYm9vbCBIYXNJc1ZhbGlkID0gZmFsc2U7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg
Y29uc3RleHByIGJvb2wgSGFzSXNWYWxpZDxULCBzdGQ6OnZvaWRfdDxkZWNsdHlwZShzdGQ6OmRl
Y2x2YWw8VD4oKS5pc1ZhbGlkKCkpPj4gPSB0cnVlOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVt
PgotdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDwhSGFzSXNWYWxpZDxJdGVtPiwgYm9vbD4gY29w
eUludG8oY29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25X
aXRoT2Zmc2V0KQorc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8IUhhc0lzVmFsaWQ8
SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKIHsKICAgICBuZXcgKGRlc3RpbmF0aW9uV2l0aE9m
ZnNldCkgSXRlbShpdGVtSGFuZGxlLmdldDxJdGVtPigpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KLXR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8SGFz
SXNWYWxpZDxJdGVtPiwgYm9vbD4gY29weUludG8oY29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRs
ZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zmc2V0KQorc3RhdGljIHR5cGVuYW1lIHN0ZDo6
ZW5hYmxlX2lmX3Q8SGFzSXNWYWxpZDxJdGVtPiwgYm9vbD4gY29weUludG8oY29uc3QgSXRlbUhh
bmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zmc2V0KQogewogICAg
IGF1dG8qIG5ld0l0ZW0gPSBuZXcgKGRlc3RpbmF0aW9uV2l0aE9mZnNldCkgSXRlbShpdGVtSGFu
ZGxlLmdldDxJdGVtPigpKTsKICAgICByZXR1cm4gbmV3SXRlbS0+aXNWYWxpZCgpOwpAQCAtNjA1
LDcgKzYwNSw2IEBAIEl0ZW1CdWZmZXI6On5JdGVtQnVmZmVyKCkKIEl0ZW1CdWZmZXI6Okl0ZW1C
dWZmZXIoSXRlbUJ1ZmZlciYmIG90aGVyKQogICAgIDogbV9yZWFkaW5nQ2xpZW50KHN0ZDo6ZXhj
aGFuZ2Uob3RoZXIubV9yZWFkaW5nQ2xpZW50LCBudWxscHRyKSkKICAgICAsIG1fd3JpdGluZ0Ns
aWVudChzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fd3JpdGluZ0NsaWVudCwgbnVsbHB0cikpCi0gICAg
LCBtX2l0ZW1zVG9EZXN0cm95SW5BbGxvY2F0ZWRCdWZmZXJzKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIu
bV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycywgeyB9KSkKICAgICAsIG1fYWxsb2Nh
dGVkQnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fYWxsb2NhdGVkQnVmZmVycywgeyB9KSkK
ICAgICAsIG1fcmVhZE9ubHlCdWZmZXJzKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9yZWFkT25seUJ1
ZmZlcnMsIHsgfSkpCiAgICAgLCBtX3dyaXRhYmxlQnVmZmVyKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIu
bV93cml0YWJsZUJ1ZmZlciwgeyB9KSkKQEAgLTYxNyw3ICs2MTYsNiBAQCBJdGVtQnVmZmVyJiBJ
dGVtQnVmZmVyOjpvcGVyYXRvcj0oSXRlbUJ1ZmZlciYmIG90aGVyKQogewogICAgIG1fcmVhZGlu
Z0NsaWVudCA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9yZWFkaW5nQ2xpZW50LCBudWxscHRyKTsK
ICAgICBtX3dyaXRpbmdDbGllbnQgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fd3JpdGluZ0NsaWVu
dCwgbnVsbHB0cik7Ci0gICAgbV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycyA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycywgeyB9
KTsKICAgICBtX2FsbG9jYXRlZEJ1ZmZlcnMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fYWxsb2Nh
dGVkQnVmZmVycywgeyB9KTsKICAgICBtX3JlYWRPbmx5QnVmZmVycyA9IHN0ZDo6ZXhjaGFuZ2Uo
b3RoZXIubV9yZWFkT25seUJ1ZmZlcnMsIHsgfSk7CiAgICAgbV93cml0YWJsZUJ1ZmZlciA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV93cml0YWJsZUJ1ZmZlciwgeyB9KTsKQEAgLTY1MSw5ICs2NDks
NiBAQCB2b2lkIEl0ZW1CdWZmZXI6OmZvckVhY2hJdGVtQnVmZmVyKEZ1bmN0aW9uPHZvaWQoY29u
c3QgSXRlbUJ1ZmZlckhhbmRsZSYpPiYmIG1hcAogCiB2b2lkIEl0ZW1CdWZmZXI6OmNsZWFyKCkK
IHsKLSAgICBmb3IgKGF1dG8gaXRlbSA6IHN0ZDo6ZXhjaGFuZ2UobV9pdGVtc1RvRGVzdHJveUlu
QWxsb2NhdGVkQnVmZmVycywgeyB9KSkKLSAgICAgICAgaXRlbS5kZXN0cm95KCk7Ci0KICAgICBm
b3IgKGF1dG8qIGJ1ZmZlciA6IHN0ZDo6ZXhjaGFuZ2UobV9hbGxvY2F0ZWRCdWZmZXJzLCB7IH0p
KQogICAgICAgICBmYXN0RnJlZShidWZmZXIpOwogCkBAIC02ODIsMTggKzY3NywzMCBAQCBEaWRD
aGFuZ2VJdGVtQnVmZmVyIEl0ZW1CdWZmZXI6OnN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKHNp
emVfdCBudW1iZXJPZkJ5dGVzKQogCiB2b2lkIEl0ZW1CdWZmZXI6OmFwcGVuZChJdGVtSGFuZGxl
IHRlbXBvcmFyeUl0ZW0pCiB7Ci0gICAgYXV0byBkYXRhID0gbV93cml0aW5nQ2xpZW50LT5lbmNv
ZGVJdGVtKHRlbXBvcmFyeUl0ZW0pOwotICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuOwor
ICAgIGF1dG8gcmVxdWlyZWRTaXplRm9ySXRlbSA9IG1fd3JpdGluZ0NsaWVudC0+cmVxdWlyZWRT
aXplRm9ySXRlbSh0ZW1wb3JhcnlJdGVtKTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBvdXRP
ZkxpbmVJdGVtOworICAgIGlmICghcmVxdWlyZWRTaXplRm9ySXRlbSkgeworICAgICAgICBvdXRP
ZkxpbmVJdGVtID0gbV93cml0aW5nQ2xpZW50LT5lbmNvZGVJdGVtT3V0T2ZMaW5lKHRlbXBvcmFy
eUl0ZW0pOworICAgICAgICBpZiAoIW91dE9mTGluZUl0ZW0pCisgICAgICAgICAgICByZXR1cm47
CisgICAgfQogCi0gICAgYXV0byBkYXRhTGVuZ3RoID0gZGF0YS0+c2l6ZSgpOworICAgIGF1dG8g
ZGF0YUxlbmd0aCA9IHZhbHVlT3JDb21wdXRlKHJlcXVpcmVkU2l6ZUZvckl0ZW0sIFsmXSB7Cisg
ICAgICAgIEFTU0VSVChvdXRPZkxpbmVJdGVtKTsKKyAgICAgICAgcmV0dXJuIG91dE9mTGluZUl0
ZW0tPnNpemUoKTsKKyAgICB9KTsKICAgICBhdXRvIGFkZGl0aW9uYWxDYXBhY2l0eUZvckVuY29k
ZWRJdGVtID0gMiAqIHNpemVvZih1aW50NjRfdCkgKyByb3VuZFVwVG9NdWx0aXBsZU9mKGFsaWdu
b2YodWludDY0X3QpLCBkYXRhTGVuZ3RoKTsKIAogICAgIGF1dG8gYnVmZmVyQ2hhbmdlZCA9IHN3
YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKGFkZGl0aW9uYWxDYXBhY2l0eUZvckVuY29kZWRJdGVt
KTsKIAogICAgIG1fd3JpdGFibGVCdWZmZXIuZGF0YVttX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzXSA9
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHRlbXBvcmFyeUl0ZW0udHlwZSgpKTsKICAgICByZWludGVy
cHJldF9jYXN0PHVpbnQ2NF90Kj4obV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVuTnVt
YmVyT2ZCeXRlcylbMV0gPSBkYXRhTGVuZ3RoOwotICAgIG1lbWNweShtX3dyaXRhYmxlQnVmZmVy
LmRhdGEgKyBtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzICsgMiAqIHNpemVvZih1aW50NjRfdCksIGRh
dGEtPmRhdGFBc1VJbnQ4UHRyKCksIGRhdGFMZW5ndGgpOworICAgIGF1dG8qIGxvY2F0aW9uID0g
bV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVuTnVtYmVyT2ZCeXRlcyArIDIgKiBzaXpl
b2YodWludDY0X3QpOworCisgICAgaWYgKHJlcXVpcmVkU2l6ZUZvckl0ZW0pCisgICAgICAgIG1f
d3JpdGluZ0NsaWVudC0+ZW5jb2RlSXRlbUlubGluZSh0ZW1wb3JhcnlJdGVtLCBsb2NhdGlvbik7
CisgICAgZWxzZQorICAgICAgICBtZW1jcHkobG9jYXRpb24sIG91dE9mTGluZUl0ZW0tPmRhdGFB
c1VJbnQ4UHRyKCksIGRhdGFMZW5ndGgpOwogCiAgICAgZGlkQXBwZW5kRGF0YShhZGRpdGlvbmFs
Q2FwYWNpdHlGb3JFbmNvZGVkSXRlbSwgYnVmZmVyQ2hhbmdlZCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKaW5kZXggMTM4ZDljYTBiZDczNDNkYmJmNWY1MTkx
NjA3YzNiMTkyYTM3N2JlYi4uNzYxMTNjNDA0Y2ZhZTI1YmI1M2I5ODA2Y2UxYmIzZDZiNWU1Y2Yy
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03Nyw3ICs3Nyw3
IEBAIHN0cnVjdCBJdGVtSGFuZGxlIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUJiBnZXQo
KSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzPFQ+KCkpOwotICAgICAgICByZXR1cm4g
KnJlaW50ZXJwcmV0X2Nhc3Q8VCo+KCZkYXRhW3NpemVvZih1aW50NjRfdCldKTsKKyAgICAgICAg
cmV0dXJuICpyZWludGVycHJldF9jYXN0PFQqPihkYXRhICsgc2l6ZW9mKHVpbnQ2NF90KSk7CiAg
ICAgfQogCiAgICAgYm9vbCBzYWZlQ29weShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdDsK
QEAgLTg3LDExICs4NywzMyBAQCBlbnVtIGNsYXNzIERpZENoYW5nZUl0ZW1CdWZmZXIgOiBib29s
IHsgTm8sIFllcyB9OwogCiBjbGFzcyBJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCB7CiBwdWJsaWM6
Ci0gICAgdmlydHVhbCB+SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFs
IH5JdGVtQnVmZmVyV3JpdGluZ0NsaWVudCgpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwg
SXRlbUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVtQnVmZmVyKHNpemVfdCkKKyAgICB7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQogCi0gICAgdmlydHVhbCBJdGVtQnVmZmVySGFuZGxlIGNyZWF0
ZUl0ZW1CdWZmZXIoc2l6ZV90KSA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBlbmNvZGVJdGVtKEl0ZW1IYW5kbGUpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
QXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90IG51bWJlck9mQnl0ZXMs
IERpZENoYW5nZUl0ZW1CdWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPHN0ZDo6c2l6
ZV90PiByZXF1aXJlZFNpemVGb3JJdGVtKEl0ZW1IYW5kbGUpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KKworICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShJdGVtSGFuZGxlKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGVuY29kZUl0
ZW1JbmxpbmUoSXRlbUhhbmRsZSwgdWludDhfdCopIGNvbnN0CisgICAgeworICAgIH0KKworICAg
IHZpcnR1YWwgdm9pZCBkaWRBcHBlbmREYXRhKGNvbnN0IEl0ZW1CdWZmZXJIYW5kbGUmLCBzaXpl
X3QgbnVtYmVyT2ZCeXRlcywgRGlkQ2hhbmdlSXRlbUJ1ZmZlcikKKyAgICB7CisgICAgICAgIFVO
VVNFRF9QQVJBTShudW1iZXJPZkJ5dGVzKTsKKyAgICB9CiB9OwogCiBjbGFzcyBJdGVtQnVmZmVy
UmVhZGluZ0NsaWVudCB7CkBAIC0xNDksOSArMTcxLDEwIEBAIHB1YmxpYzoKICAgICAvLyBkYXRh
IGJhY2sgaW50byBhbiBpdGVtIG9mIHR5cGUgVC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBj
bGFzcy4uLiBBcmdzPiB2b2lkIGFwcGVuZChBcmdzJiYuLi4gYXJncykKICAgICB7Ci0gICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSB8
fCAhVDo6aXNJbmxpbmVJdGVtKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZp
YWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVlID09IFQ6OmlzSW5saW5lSXRlbSk7CiAKLSAgICAg
ICAgaWYgKCFUOjppc0lubGluZUl0ZW0gJiYgbV93cml0aW5nQ2xpZW50KSB7CisgICAgICAgIGlm
ICghVDo6aXNJbmxpbmVJdGVtKSB7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dyaXRp
bmdDbGllbnQpOwogI2lmIENPTVBJTEVSKE1TVkMpCiAgICAgICAgICAgICBfX2RlY2xzcGVjKGFs
aWduKDgpKSB0eXBlZGVmIHVpbnQ4X3QgRW5jb2RpbmdCdWZmZXJbc2l6ZW9mKHVpbnQ2NF90KSAr
IHNpemVvZihUKV07CiAjZWxzZQpAQCAtMTY3LDkgKzE5MCw2IEBAIHB1YmxpYzoKIAogICAgICAg
ICBhdXRvIGJ1ZmZlckNoYW5nZWQgPSBzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChwYWRkZWRT
aXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoVDo6aXRlbVR5cGUpKTsKIAotICAgICAgICBpZiAoIXN0
ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpCi0gICAgICAgICAgICBtX2l0
ZW1zVG9EZXN0cm95SW5BbGxvY2F0ZWRCdWZmZXJzLmFwcGVuZCh7ICZtX3dyaXRhYmxlQnVmZmVy
LmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gfSk7Ci0KICAgICAgICAgdW5jaGVja2VkQXBw
ZW5kPFQ+KGJ1ZmZlckNoYW5nZWQsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CiAgICAg
fQogCkBAIC0xOTQsNyArMjE0LDYgQEAgcHJpdmF0ZToKIAogICAgIEl0ZW1CdWZmZXJSZWFkaW5n
Q2xpZW50KiBtX3JlYWRpbmdDbGllbnQgeyBudWxscHRyIH07CiAgICAgSXRlbUJ1ZmZlcldyaXRp
bmdDbGllbnQqIG1fd3JpdGluZ0NsaWVudCB7IG51bGxwdHIgfTsKLSAgICBWZWN0b3I8SXRlbUhh
bmRsZT4gbV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVyczsKICAgICBWZWN0b3I8dWlu
dDhfdCo+IG1fYWxsb2NhdGVkQnVmZmVyczsKICAgICBJdGVtQnVmZmVySGFuZGxlcyBtX3JlYWRP
bmx5QnVmZmVyczsKICAgICBJdGVtQnVmZmVySGFuZGxlIG1fd3JpdGFibGVCdWZmZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggZDE3MzdhMjc5YzM5N2Uw
OTA5M2QxMzg0MzNkYjM4NDdkNmY0NzQ5Mi4uM2NlMzVkNDdkYTJmMzNiMTA3YTRiMTNkMDBkNDUz
ZjM1MmYzNjVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5TGlzdC5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKQEAg
LTE3OSw5ICsxODAsOSBAQCBSZXBsYXlSZXN1bHQgUmVwbGF5ZXI6OnJlcGxheShjb25zdCBGbG9h
dFJlY3QmIGluaXRpYWxDbGlwLCBib29sIHRyYWNrUmVwbGF5TGlzdAogICAgIExPR19XSVRIX1NU
UkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZXBsYXlpbmcgd2l0aCBjbGlwICIgPDwg
aW5pdGlhbENsaXApOwogICAgIFVOVVNFRF9QQVJBTShpbml0aWFsQ2xpcCk7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHJlcGxheUxpc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRy
PEluTWVtb3J5RGlzcGxheUxpc3Q+IHJlcGxheUxpc3Q7CiAgICAgaWYgKFVOTElLRUxZKHRyYWNr
UmVwbGF5TGlzdCkpCi0gICAgICAgIHJlcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0
PigpOworICAgICAgICByZXBsYXlMaXN0ID0gbWFrZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0
PigpOwogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIHNpemVfdCBpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlcGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZXBsYXllci5oCmluZGV4IDE4MWExMmIwZTUxOGU4ZGMyMWQzYjc0OWYy
NzEwMWQyYTNlOTZmMzkuLmU3ZjE0MmZhZmYyMDFmZjdiNzVkY2IxZjU5NDQ4ZmFiMzFkNWYwNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw3ICsyNSw3IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlICJJbk1l
bW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgZW51bSBjbGFzcyBT
dG9wUmVwbGF5UmVhc29uIDogdWludDhfdCB7CiB9OwogCiBzdHJ1Y3QgUmVwbGF5UmVzdWx0IHsK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHRyYWNrZWREaXNwbGF5TGlzdDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5TGlzdD4gdHJhY2tlZERpc3BsYXlMaXN0
OwogICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCB7IDAgfTsKICAgICBPcHRpb25hbDxSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IG5leHREZXN0aW5hdGlvbkltYWdlQnVmZmVyOwogICAg
IE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gbWlzc2luZ0NhY2hlZFJlc291
cmNlSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NDhjYThhODIyOTE1ZjRlM2ZmN2UwM2JkYzczYTg1YzRiZDViMThiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5TGlzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Citu
YW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitPcHRpb25hbDxzdGQ6OnNpemVfdD4gSW5NZW1vcnlE
aXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXplRm9ySXRlbShJdGVtSGFuZGxl
IGl0ZW1IYW5kbGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhZGRlZFNpemVPZlR5cGVBbmRJdGVt
SW5CeXRlcyhpdGVtSGFuZGxlLnR5cGUoKSk7Cit9CisKK3ZvaWQgSW5NZW1vcnlEaXNwbGF5TGlz
dDo6V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZShJdGVtSGFuZGxlIGl0ZW1IYW5kbGUs
IHVpbnQ4X3QqIGxvY2F0aW9uKSBjb25zdAoreworICAgIGl0ZW1IYW5kbGUuc2FmZUNvcHkoeyBs
b2NhdGlvbiB9KTsKK30KKworT3B0aW9uYWw8SXRlbUhhbmRsZT4gV0FSTl9VTlVTRURfUkVUVVJO
IEluTWVtb3J5RGlzcGxheUxpc3Q6OlJlYWRpbmdDbGllbnQ6OmRlY29kZUl0ZW0oY29uc3QgdWlu
dDhfdCogZGF0YSwgc2l6ZV90LCBJdGVtVHlwZSB0eXBlLCB1aW50OF90KiBoYW5kbGVMb2NhdGlv
bikKK3sKKyAgICBjb25zdCBJdGVtSGFuZGxlIGRhdGFIYW5kbGUgeyBjb25zdF9jYXN0PHVpbnQ4
X3QqPihkYXRhKSB9OworICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgZGF0YUhhbmRsZS50eXBlKCkg
PT0gdHlwZSk7CisgICAgSXRlbUhhbmRsZSByZXN1bHQgeyBoYW5kbGVMb2NhdGlvbiB9OworICAg
IGlmIChkYXRhSGFuZGxlLnNhZmVDb3B5KHJlc3VsdCkpCisgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKworSW5NZW1vcnlEaXNwbGF5TGlzdDo6SW5N
ZW1vcnlEaXNwbGF5TGlzdCgpCisgICAgOiBtX3dyaXRpbmdDbGllbnQoV1RGOjptYWtlVW5pcXVl
PFdyaXRpbmdDbGllbnQ+KCkpCisgICAgLCBtX3JlYWRpbmdDbGllbnQoV1RGOjptYWtlVW5pcXVl
PFJlYWRpbmdDbGllbnQ+KCkpCit7CisgICAgc2V0SXRlbUJ1ZmZlckNsaWVudChtX3dyaXRpbmdD
bGllbnQuZ2V0KCkpOworICAgIHNldEl0ZW1CdWZmZXJDbGllbnQobV9yZWFkaW5nQ2xpZW50Lmdl
dCgpKTsKK30KKworSW5NZW1vcnlEaXNwbGF5TGlzdDo6fkluTWVtb3J5RGlzcGxheUxpc3QoKQor
eworICAgIGF1dG8gZW5kID0gdGhpcy0+ZW5kKCk7CisgICAgZm9yIChhdXRvIGl0ZXJhdG9yID0g
dGhpcy0+YmVnaW4oKTsgaXRlcmF0b3IgIT0gZW5kOyArK2l0ZXJhdG9yKSB7CisgICAgICAgIGF1
dG8gdmFsdWUgPSAqaXRlcmF0b3I7CisgICAgICAgIEFTU0VSVCh2YWx1ZS5pdGVtKTsKKyAgICAg
ICAgaWYgKCF2YWx1ZS5pdGVtKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHZhbHVlLml0
ZW0tPmRlc3Ryb3koKTsKKyAgICB9Cit9CisKK30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlE
aXNwbGF5TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYWRkNDM0OTIyMGE5YTQyZDYwMWYzMmE5OGUxMDgx
NzI1Y2RkZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCkBAIC0wLDAgKzEsNTkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2NsYXNzIElu
TWVtb3J5RGlzcGxheUxpc3QgOiBwdWJsaWMgRGlzcGxheUxpc3QgeworcHVibGljOgorICAgIFdF
QkNPUkVfRVhQT1JUIEluTWVtb3J5RGlzcGxheUxpc3QoKTsKKworICAgIFdFQkNPUkVfRVhQT1JU
IH5Jbk1lbW9yeURpc3BsYXlMaXN0KCk7CisKKyAgICBjbGFzcyBXcml0aW5nQ2xpZW50IDogcHVi
bGljIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IHsKKyAgICAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CisgICAgcHJpdmF0ZToKKyAgICAgICAgT3B0aW9uYWw8c3RkOjpzaXplX3Q+IHJlcXVp
cmVkU2l6ZUZvckl0ZW0oSXRlbUhhbmRsZSkgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgZW5j
b2RlSXRlbUlubGluZShJdGVtSGFuZGxlLCB1aW50OF90KikgY29uc3QgZmluYWw7CisgICAgfTsK
KworICAgIGNsYXNzIFJlYWRpbmdDbGllbnQgOiBwdWJsaWMgSXRlbUJ1ZmZlclJlYWRpbmdDbGll
bnQgeworICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwcml2YXRlOgorICAg
ICAgICBPcHRpb25hbDxJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gZGVjb2RlSXRlbShj
b25zdCB1aW50OF90Kiwgc2l6ZV90LCBJdGVtVHlwZSwgdWludDhfdCopIGZpbmFsOworICAgIH07
CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50
PiBtX3dyaXRpbmdDbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJSZWFkaW5n
Q2xpZW50PiBtX3JlYWRpbmdDbGllbnQ7Cit9OworCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmgKaW5kZXggMmIyZjIyM2ExMzUxNjE2
MmIxMGQ3MTU0ZGNlYTJhNjg1NjliYjNmYS4uYTE1YTc0NDg1YTVmM2NjMTkyNjUwMjJkYjU1MmY2
MmY5NzQxY2ZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dseXBoRGlz
cGxheUxpc3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HbHlwaERpc3Bs
YXlMaXN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNSw4ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
RGlzcGxheUxpc3QuaCIKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkluTWVt
b3J5RGlzcGxheUxpc3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVGV4dFJ1
bi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoK
ICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIHVzaW5nIEdseXBoUnVuTWFwID0gSGFzaE1hcDxj
b25zdCBMYXlvdXRSdW4qLCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
Pj47CisgICAgdXNpbmcgR2x5cGhSdW5NYXAgPSBIYXNoTWFwPGNvbnN0IExheW91dFJ1biosIHN0
ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4+OwogICAgIEds
eXBoUnVuTWFwIG1fZ2x5cGhSdW5NYXA7CiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaAppbmRleCA1YmJmMjU2MzA2MjkwZTQ5YWM4ZGIzMWI1ZDAxYWM5NmI1NmFhYzQyLi5jMjBl
MjVlMzUxZjgyOWViOTVhYjhkOGYyYjE4MjhjZTllM2QxYTFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIx
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI5Miw3ICsyOTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkuY2Fj
aGVGb250KGZvbnQpOwogICAgIH0KIAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVm
ZmVySGFuZGxlIGNyZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90IGNhcGFjaXR5KSBvdmVycmlkZQorICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySGFuZGxlIGNyZWF0ZUl0ZW1CdWZmZXIo
c2l6ZV90IGNhcGFjaXR5KSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKExJS0VMWShtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkpCiAgICAgICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHktPmNyZWF0ZUl0ZW1CdWZmZXIoY2FwYWNpdHksIG1fcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKQEAgLTMwMSw3ICszMDEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4gZW5jb2RlSXRlbShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZSBpdGVtKSBjb25z
dCBvdmVycmlkZQorICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1P
dXRPZkxpbmUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSkgY29uc3QgZmlu
YWwKICAgICB7CiAgICAgICAgIC8qIFRoaXMgbmVlZHMgdG8gbWF0Y2ggKDEpIGlzSW5saW5lSXRl
bSgpIGluIERpc3BsYXlMaXN0SXRlbVR5cGUuY3BwLCAoMikgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6ZGVjb2RlSXRlbSgpLAogICAgICAgICAgKiBhbmQgKDMpIGFsbCB0aGUgInN0YXRpYyBjb25z
dGV4cHIgYm9vbCBpc0lubGluZUl0ZW0icyBpbnNpZGUgdGhlIGluZGl2aWR1YWwgaXRlbSBjbGFz
c2VzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDJmNDdjNWM4NTYyN2YyZTU5MDhiZTQ0OWRlZjg2ZmIxMTRkZjgyNzYuLmE3NTIyZDUwODk5NzVm
NmMyM2FiNjkxNGE2ZmViY2E5N2MxMjhhNTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0yOCAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vz
c10gU2ltcGxpZnkgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yIHBhcnQgMTogUmVxdWlyZSBlbmNvZGlu
Zy9kZWNvZGluZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
Zy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwOgorCiAyMDIxLTAzLTI3ICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFBDTTogU2VuZCByZXBvcnQgdG8g
Ym90aCBjbGljayBzb3VyY2UgYW5kIGF0dHJpYnV0aW9uIGRlc3RpbmF0aW9uIHdlYnNpdGUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRl
c3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRl
c3RzLmNwcAppbmRleCAxY2UxNDYyOGNlZDVlMDA2NDI1ZDJlYzI5ZjFkZTBlYjcxZmUxMzc0Li4y
ZTUzYmI4MTFlM2JjMmRmMzkxMDZmMWQ1OTEzN2Q3OWEyMjNhN2EzIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFkaWVudC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvSW5NZW1vcnlEaXNwbGF5TGlzdC5oPgogCiBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTU4LDcgKzU5LDcg
QEAgc3RhdGljIFBhdGggY3JlYXRlQ29tcGxleFBhdGgoKQogCiBURVNUKERpc3BsYXlMaXN0VGVz
dHMsIEFwcGVuZEl0ZW1zKQogewotICAgIERpc3BsYXlMaXN0IGxpc3Q7CisgICAgSW5NZW1vcnlE
aXNwbGF5TGlzdCBsaXN0OwogCiAgICAgRVhQRUNUX1RSVUUobGlzdC5pc0VtcHR5KCkpOwogCkBA
IC0xOTgsMTUgKzE5OSwxMyBAQCBURVNUKERpc3BsYXlMaXN0VGVzdHMsIEl0ZW1CdWZmZXJDbGll
bnQpCiAgICAgICAgICAgICByZXR1cm4geyBnbG9iYWxCdWZmZXJJZGVudGlmaWVyLCBnbG9iYWxJ
dGVtQnVmZmVyLCBnbG9iYWxJdGVtQnVmZmVyQ2FwYWNpdHkgfTsKICAgICAgICAgfQogCi0gICAg
ICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW0oSXRlbUhhbmRsZSBoYW5kbGUpIGNv
bnN0IGZpbmFsCisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxp
bmUoSXRlbUhhbmRsZSBoYW5kbGUpIGNvbnN0IGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAg
IGF1dG8gaW5kZXggPSBtX2l0ZW1zLnNpemUoKTsKICAgICAgICAgICAgIG1faXRlbXMuYXBwZW5k
KGhhbmRsZS5nZXQ8U3Ryb2tlUGF0aD4oKSk7CiAgICAgICAgICAgICByZXR1cm4gU2hhcmVkQnVm
ZmVyOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oJmluZGV4KSwgc2l6ZW9mKHNp
emVfdCkpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBkaWRBcHBlbmREYXRhKGNvbnN0IEl0
ZW1CdWZmZXJIYW5kbGUmLCBzaXplX3QsIERpZENoYW5nZUl0ZW1CdWZmZXIpIGZpbmFsIHsgfQot
CiAgICAgICAgIFZlY3RvcjxTdHJva2VQYXRoPiYgbV9pdGVtczsKICAgICB9OwogCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0
c0NHLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlz
dFRlc3RzQ0cuY3BwCmluZGV4IGI1NjlmMzQwN2UwNzUxNWY2MmUxOTAxZWUwMjJkNDE5NDdmZjM4
OWEuLjNiMzIyNzgwNjA5ZGY4ZjM4ODVmNzhlYzM4OTg1NGUwMDUyZTE4MDYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlz
dFRlc3RzQ0cuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTEwMCw4ICsxMDAsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHsg
Z2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgZ2xvYmFsSXRlbUJ1ZmZl
ckNhcGFjaXR5IH07CiAgICAgfQogCi0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRl
bShJdGVtSGFuZGxlKSBjb25zdCBmaW5hbCB7IHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgp
OyB9Ci0gICAgdm9pZCBkaWRBcHBlbmREYXRhKGNvbnN0IEl0ZW1CdWZmZXJIYW5kbGUmLCBzaXpl
X3QsIERpZENoYW5nZUl0ZW1CdWZmZXIpIGZpbmFsIHsgfQorICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoSXRlbUhhbmRsZSkgY29uc3QgZmluYWwKKyAgICB7Cisg
ICAgICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOworICAgIH0KIH07CiAKIFRFU1Qo
RGlzcGxheUxpc3RUZXN0cywgT3V0T2ZMaW5lSXRlbURlY29kaW5nRmFpbHVyZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424519</attachid>
            <date>2021-03-28 20:01:36 -0700</date>
            <delta_ts>2021-03-28 22:20:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223849-20210328200135.patch</filename>
            <type>text/plain</type>
            <size>47218</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlOTY0ODEwMGUyMDI3
YTIyZDk3YWMzMzhmZjZjODUwYzQwNGM0Ni4uMGVkODc0MzBkNjFmZmNmNTM0ZTIyYmQzMzcxM2I5
YmM3OTdlZjliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIxLTAzLTI4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCAxOiBSZXF1aXJlIGVuY29k
aW5nL2RlY29kaW5nIGRlbGVnYXRlcyBmb3Igbm9uLWlubGluZSBkaXNwbGF5IGxpc3QgaXRlbXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcXVpcmlu
ZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIGhhcyB0aGVzZSBh
ZHZhbnRhZ2VzOgorICAgICAgICAtIERpc3BsYXlMaXN0OjpJdGVyYXRvcjo6dXBkYXRlQ3VycmVu
dEl0ZW0oKSBvbmx5IGhhcyAyIGNvZGVwYXRocyBpbnN0ZWFkIG9mIDMuCisgICAgICAgIC0gSXRl
bUJ1ZmZlcjo6bV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycyBjYW4gYmUgZGVsZXRl
ZCBlbnRpcmVseS4KKyAgICAgICAgLSBUaGUgY29uZGl0aW9uYWwgaW5zaWRlIEl0ZW1CdWZmZXI6
OmFwcGVuZCgpIGNhbiBiZSBzaW1wbGlmaWVkIGZyb20KKyAgICAgICAgICAgICAgIVQ6OmlzSW5s
aW5lSXRlbSAmJiBtX3dyaXRpbmdDbGllbnQgdG8ganVzdCAhVDo6aXNJbmxpbmVJdGVtLCB3aGlj
aCBJIHRoaW5rIG1ha2VzIHRoZQorICAgICAgICAgICAgICBmdW5jdGlvbiBzaWduaWZpY2FudGx5
IG1vcmUgcmVhZGFibGUuCisKKyAgICAgICAgVGhlcmUgYXJlIGEgZmV3IHBsYWNlcyB3aGVyZSB3
ZSB3ZXJlIHVzaW5nIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIHdpdGhvdXQgYSBkZWxl
Z2F0ZToKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHR3byBuZXcgIm51bGwiIGRlbGVnYXRlcywg
YW5kIGhvb2tzIHRoZW0gdXAgdG8gYSBzdWJjbGFzcyBvZiBEaXNwbGF5TGlzdCwKKyAgICAgICAg
Y2FsbGVkIEluTWVtb3J5RGlzcGxheUxpc3QuIENsaWVudHMgd2hvIHdhbnQgdG8gdXNlIGluLW1l
bW9yeSBkaXNwbGF5IGxpc3RzIChsaWtlIHRoZQorICAgICAgICBEcmF3R2x5cGhzIGNhY2hlKSBj
YW4ganVzdCB1c2UgdGhpcyBjbGFzcywgYW5kIHJldGFpbiB0aGVpciBjYWxsaW5nIHBhdHRlcm4g
dGhleSB3ZXJlIHVzaW5nCisgICAgICAgIGJlZm9yZS4gQWxzbywgdGhpcyBwYXRjaCBhZGRzIElu
TWVtb3J5RGlzcGxheUxpc3Qgd2l0aG91dCBhZGRpbmcgYW55IHZpcnR1YWwgZnVuY3Rpb25zIHRv
CisgICAgICAgIERpc3BsYXlMaXN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRo
ZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYXNjYWRlOjpkaXNwbGF5TGlzdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fz
Y2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnRJdGVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0
OjpyZXBsYXllZERpc3BsYXlMaXN0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29weUludG8pOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6Okl0ZW1CdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6bV9hbGxvY2F0ZWRCdWZmZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6fkl0ZW1CdWZmZXJX
cml0aW5nQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVy
V3JpdGluZ0NsaWVudDo6Y3JlYXRlSXRlbUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZvckl0ZW0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xp
ZW50OjplbmNvZGVJdGVtT3V0T2ZMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6
OmRpZEFwcGVuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZm
ZXI6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
cGxheWVyOjpyZXBsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1
aXJlZFNpemVGb3JJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
bk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtSW5saW5lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpS
ZWFkaW5nQ2xpZW50OjpkZWNvZGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0Ojp+SW5NZW1vcnlEaXNwbGF5
TGlzdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5
RGlzcGxheUxpc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmg6CisKIDIwMjEtMDMtMjggIFNhbSBXZWlu
aWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5oL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBmcm9tIHRoZSBYY29kZSBwcm9q
ZWN0IGFzIHRoZXkgZG9uJ3QgZXhpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTQ3YWFiNmI4YTJkNGU0MmFjZTYz
ZmJiMmUxNmViNjI3ZDVkNmNjMy4uMDA0ZTNhOTMwYzA3YjMwZDMzMWU3YmE3OWZhNDNmZTExYTIx
ZTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wMy0yOCAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gU2lt
cGxpZnkgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yIHBhcnQgMTogUmVxdWlyZSBlbmNvZGluZy9kZWNv
ZGluZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKwogMjAyMS0wMy0yOCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFICYgRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUywgaXQgc2VlbXMg
bGlrZSBpdCBpcyBvbiBmb3IgYWxsIHBvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBkNGI5NzA4
MjRkNWRjODVhY2MzZDk5MTI0OWRhNjEzOTVkMzBhMDUwLi5jYjI3OTcyZmYxZGEzYzlmNjA3NDQz
Y2FkODQzNzYyMjM0NWM2N2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzMjAsNiArMTMyMCw3
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCiAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCA3ZTE4MDU1ZDNjMzcxNTQ3ODQwNWZmMzlhNTVjYzk5MTgzY2I2ZWM4Li42YTEwNmUyMDNjY2Zl
NDc5NzFhNDlmMjc2MTBkODUxMjAxNTlmZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjAyNyw2ICsy
MDI3LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1
ZmZlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXll
ci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2UxM2ViYjM3ZWNmYWE0NTQ4MTBjNTVmOWQy
NDNjNWVjZDEyMjczMy4uMjdjM2RlYmI2MDc3OTkyZGU4YWJiZDVhZjI3MjY2ODQ5MzhmZWIxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjM0LDYgKzYzNCw3IEBACiAJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUNDRDgxNTAyMjMxRjgzRTAwNjVGQzJCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTI1NTE0MTZGRDIzNEYwMDNEN0FEQiAvKiBXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gKi87IH07CiAJCTFD
Q0RGNUJFMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0NERjVCQzE5OTAzMzI0
MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oICovOyB9OworCQkxQ0U4ODY0MTI2
MTA1QkYyMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNFODg2M0YyNjEwNUE1RjAwMEM4MTZDIC8q
IEluTWVtb3J5RGlzcGxheUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxp
YiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkFF
MzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovOyB9OwogCQkxRDAwMjZBNDIz
NzRENjI0MDBDQTZDREYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAwMjZBMjIzNzRENjIzMDBDQTZD
REYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggKi87IH07CiAJCTFEMDAyNkFBMjM3NEY5
RUEwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAwMjZBODIzNzRGOUQ5MDBDQTZD
REYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovOyB9OwpAQCAtNjkyNiw2ICs2
OTI3LDggQEAKIAkJMUNERDQ1RTQwQkE5Qzg0NjAwRjkwMTQ3IC8qIERlYnVnUmVsZWFzZS54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBEZWJ1Z1JlbGVhc2UueGNjb25m
aWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDREQ0NUU1MEJBOUM4NDYwMEY5MDE0
NyAvKiBXZWJDb3JlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdl
YkNvcmUueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDREQ0NUU2MEJB
OUM4NDYwMEY5MDE0NyAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsg
cGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRTg4
NjNFMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluTWVtb3J5RGlzcGxheUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0U4ODYzRjI2MTA1QTVGMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbk1lbW9yeURpc3BsYXlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDRUNCM0E4MjFGMkI2NzMwMEY0NDU0MiAvKiBXSExTTFN0YXRlbWVudEJl
aGF2aW9yQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFN0YXRlbWVudEJlaGF2aW9yQ2hl
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0VDQjNBOTIxRjJCNjczMDBG
NDQ1NDIgLyogV0hMU0xTdGF0ZW1lbnRCZWhhdmlvckNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0hMU0xTdGF0ZW1lbnRCZWhhdmlvckNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0VDQjNBRjIxRjJCOTg0MDBGNDQ1NDIgLyogV0hMU0xGdW5jdGlvbldy
aXRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTEZ1bmN0aW9uV3JpdGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MDY1LDYgKzE4MDY4LDggQEAKIAkJCQkwRkU1
RkJDRjFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZWNvcmRlci5oICovLAogCQkJCTBG
RTVGQkQwMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmNwcCAqLywKIAkJ
CQkwRkU1RkJEMTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZXBsYXllci5oICovLAor
CQkJCTFDRTg4NjNFMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmNwcCAq
LywKKwkJCQkxQ0U4ODYzRjI2MTA1QTVGMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBkaXNwbGF5bGlzdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtMzI4MjgsNiArMzI4MzMsNyBAQAogCQkJCUJDRUE0ODVBMDk3RDkzMDIwMDk0
QzlFNCAvKiBJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzAxMDcwMTE5MjU5
NERGMDA4QTQyMDEgLyogSW5saW5lVGV4dEJveFN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2
RjFDQzFERTIyNUY4QjQ5MDA3MjBBRDIgLyogSW5saW5lVGV4dEl0ZW0uaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDRTg4NjQxMjYxMDVCRjIwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRUI3Njc1NzFEQTE5QkRGMDAzRTIzQjUgLyogSW5wdXRFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTUyRUZERjQyMTEyODc1QTAwQUQyODJBIC8qIElucHV0
TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdFMzUyNEQxMjQ1MEM2NjAwQkFGNUQ5IC8qIElu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCmluZGV4IDA2ZmY1MTUyYTg0NWNhMDkzOTc4MWUyN2E2MmRmMzRhYjE0M2ZkYmYu
LjljZTk5ZjM2YTczNzgzMTNkODgyZWFiN2FiNWNkZDViZDAxNjM1MTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJ
bWFnZURhdGEuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlv
bmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAppbmRleCA1Y2VhNzQ1MmQ1ZmYy
ZTZjYjVmM2UxMTY2NTk3Yjc5ZmQ4ZjczZDdkLi43ZDNlYjkxMjg1YTEyYjc5MGVlMjlhYmQ4OGY0
NmIxNWI5Njc1ZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRm9udENhY2hlLmgi
CiAjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
KyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5o
IgogI2luY2x1ZGUgIlN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUg
IlRleHRSdW4uaCIKQEAgLTIxMCw3ICsyMTEsNyBAQCB2b2lkIEZvbnRDYXNjYWRlOjpkcmF3RW1w
aGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1bgog
ICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBzdGFydFBv
aW50KTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4gRm9u
dENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFRleHRSdW4mIHJ1biwgdW5zaWduZWQgZnJvbSwgT3B0aW9uYWw8dW5zaWduZWQ+IHRv
LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24gY3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uKSBjb25z
dAorc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBGb250
Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgVGV4dFJ1biYgcnVuLCB1bnNpZ25lZCBmcm9tLCBPcHRpb25hbDx1bnNpZ25lZD4gdG8s
IEN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbiBjdXN0b21Gb250Tm90UmVhZHlBY3Rpb24pIGNvbnN0
CiB7CiAgICAgQVNTRVJUKCFjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSk7CiAgICAgdW5zaWdu
ZWQgZGVzdGluYXRpb24gPSB0by52YWx1ZU9yKHJ1bi5sZW5ndGgoKSk7CkBAIC0yMjYsNyArMjI3
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4gRm9udENhc2Nh
ZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmEKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0PigpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6
SW5NZW1vcnlEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0
OjpJbk1lbW9yeURpc3BsYXlMaXN0PigpOwogICAgIEdyYXBoaWNzQ29udGV4dCByZWNvcmRpbmdD
b250ZXh0KFsmXShHcmFwaGljc0NvbnRleHQmIGRpc3BsYXlMaXN0Q29udGV4dCkgewogICAgICAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxEaXNwbGF5TGlzdDo6UmVjb3JkZXI+KGRpc3BsYXlMaXN0Q29u
dGV4dCwgKmRpc3BsYXlMaXN0LCBjb250ZXh0LnN0YXRlKCksIEZsb2F0UmVjdCgpLCBBZmZpbmVU
cmFuc2Zvcm0oKSwgbnVsbHB0ciwgRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJh
d0dseXBoc0RlY29uc3RydWN0aW9uOjpEb250RGVjb25zdHJ1Y3QpOwogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKaW5kZXggNjZiNmYx
M2FkMzMwMmQ2MmRiYzk1MDIzMDM4ZGJmNDZlMjhjMTkyMC4uMWVmOWU3NmZmMTZkNDA4ZjU3Nzg4
ZmZiY2ZkODZkNTc1NTVhYmUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FzY2FkZS5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFRleHRMYXlvdXQ7CiBj
bGFzcyBUZXh0UnVuOwogCiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewotY2xhc3MgRGlzcGxheUxp
c3Q7CitjbGFzcyBJbk1lbW9yeURpc3BsYXlMaXN0OwogfQogICAgIAogc3RydWN0IEdseXBoRGF0
YTsKQEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgZmxvYXQgc3ludGhl
dGljT2JsaXF1ZUFuZ2xlKCkgeyByZXR1cm4gMTQ7IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q+IGRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBUZXh0UnVuJiwgdW5zaWduZWQgZnJvbSA9IDAsIE9wdGlvbmFsPHVuc2ln
bmVkPiB0byA9IHsgfSwgQ3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uID0gQ3VzdG9tRm9udE5vdFJl
YWR5QWN0aW9uOjpEb05vdFBhaW50SWZGb250Tm90UmVhZHkpIGNvbnN0OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3RGb3JU
ZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFRleHRSdW4mLCB1bnNpZ25lZCBmcm9tID0g
MCwgT3B0aW9uYWw8dW5zaWduZWQ+IHRvID0geyB9LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24g
PSBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb246OkRvTm90UGFpbnRJZkZvbnROb3RSZWFkeSkgY29u
c3Q7CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShDRykKICAgICBzdGF0aWMgdm9pZCBzZXRG
b250U21vb3RoaW5nTGV2ZWwoaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDY2MWFiNDU3MjE0OTg5
Nzc2ZWExYTBmZWJmYTk0NTdkMzQxM2UwMWMuLjRlNTcxZDhjZmJiODM1YmI1ZmE5OWFhNzE0YTZh
NzA4MWQ3NzUzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJGYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1vZGVsLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUZpbHRl
cnMuaCIKQEAgLTQwMiw3ICs0MDMsNyBAQCBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhp
Y3NMYXllckNBOjpjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbgogI2VuZGlm
CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxjb25zdCBHcmFwaGljc0xheWVyQ0EqLCBzdGQ6OnBhaXI8
RmxvYXRSZWN0LCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Pj4+IExh
eWVyRGlzcGxheUxpc3RIYXNoTWFwOwordHlwZWRlZiBIYXNoTWFwPGNvbnN0IEdyYXBoaWNzTGF5
ZXJDQSosIHN0ZDo6cGFpcjxGbG9hdFJlY3QsIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6
SW5NZW1vcnlEaXNwbGF5TGlzdD4+PiBMYXllckRpc3BsYXlMaXN0SGFzaE1hcDsKIAogc3RhdGlj
IExheWVyRGlzcGxheUxpc3RIYXNoTWFwJiBsYXllckRpc3BsYXlMaXN0TWFwKCkKIHsKQEAgLTE3
MTAsNyArMTcxMSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFu
Z2VzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZSwgY29uc3QgVHJhCiAgICAgaWYgKHVzZXNEaXNw
bGF5TGlzdERyYXdpbmcoKSAmJiBtX2RyYXdzQ29udGVudCAmJiAoIW1faGFzRXZlclBhaW50ZWQg
fHwgaGFkRGlydHlSZWN0cykpIHsKICAgICAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoRGlz
cGxheUxpc3RSZWNvcmRTdGFydCwgRGlzcGxheUxpc3RSZWNvcmRFbmQpOwogCi0gICAgICAgIG1f
ZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4oKTsKKyAg
ICAgICAgbV9kaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlz
cGxheUxpc3Q+KCk7CiAgICAgICAgIAogICAgICAgICBGbG9hdFJlY3QgaW5pdGlhbENsaXAoYm91
bmRzT3JpZ2luKCksIHNpemUoKSk7CiAKQEAgLTE3NDQsNyArMTc0NSw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKFBsYXRmb3JtQ0FMYXllcios
IEdyYXBoaWNzQ29uCiAgICAgICAgIAogICAgICAgICBpZiAoVU5MSUtFTFkoaXNUcmFja2luZ0Rp
c3BsYXlMaXN0UmVwbGF5KCkpKSB7CiAgICAgICAgICAgICBhdXRvIHJlcGxheUxpc3QgPSByZXBs
YXllci5yZXBsYXkoY2xpcCwgaXNUcmFja2luZ0Rpc3BsYXlMaXN0UmVwbGF5KCkpLnRyYWNrZWRE
aXNwbGF5TGlzdDsKLSAgICAgICAgICAgIGxheWVyRGlzcGxheUxpc3RNYXAoKS5hZGQodGhpcywg
c3RkOjpwYWlyPEZsb2F0UmVjdCwgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdD4+KGNsaXAsIFdURk1vdmUocmVwbGF5TGlzdCkpKTsKKyAgICAgICAgICAgIGxheWVyRGlz
cGxheUxpc3RNYXAoKS5hZGQodGhpcywgc3RkOjpwYWlyPEZsb2F0UmVjdCwgc3RkOjp1bmlxdWVf
cHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0Pj4oY2xpcCwgV1RGTW92ZShyZXBs
YXlMaXN0KSkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlcGxheWVyLnJlcGxheShj
bGlwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaAppbmRleCBiZmI2NTEyZTRlMjlkN2Q4MzZmZTEyYzlhZDlkMzQ3YjEx
NmYxNjM0Li5kMjgxZDk3MzMyMTMxOTg1NjA0YWMxOWFhYjZkMjg0YmM0NjM4NTNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuaApAQCAtNDEsNyArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2Ug
RGlzcGxheUxpc3QgewotY2xhc3MgRGlzcGxheUxpc3Q7CitjbGFzcyBJbk1lbW9yeURpc3BsYXlM
aXN0OwogfQogCiBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwpAQCAtNjMwLDcgKzYzMCw3IEBAIHBy
aXZhdGU6CiAKICAgICBWZWN0b3I8RmxvYXRSZWN0PiBtX2RpcnR5UmVjdHM7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBtX2Rpc3BsYXlMaXN0OworICAg
IHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4gbV9kaXNw
bGF5TGlzdDsKIAogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBv
c2UgeyBDb250ZW50c0xheWVyUHVycG9zZTo6Tm9uZSB9OwogICAgIGJvb2wgbV9pc0NvbW1pdHRp
bmdDaGFuZ2VzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IDViNTVi
ZWM4YzBhZTIxYTkyOTg0NWE0MTVkMTM1NzljMzY5YmQ1NDcuLmI4NjM0MGY3NjI5NGRhYjgyNDUz
MzE1NDAzNDJjZGQ4OTBjMjk5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNDcsMjgg
KzM0NywyNCBAQCB2b2lkIERpc3BsYXlMaXN0OjppdGVyYXRvcjo6dXBkYXRlQ3VycmVudEl0ZW0o
KQogICAgIH0gZWxzZQogICAgICAgICBtX2N1cnJlbnRFeHRlbnQgPSBXVEY6Om51bGxvcHQ7CiAK
LSAgICBhdXRvKiBjbGllbnQgPSBpdGVtcy5tX3JlYWRpbmdDbGllbnQ7CiAgICAgYXV0byBwYWRk
ZWRTaXplT2ZUeXBlQW5kSXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVt
VHlwZSk7Ci0gICAgaWYgKGNsaWVudCkgewotICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVt
ID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0gPD0gc2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50
SXRlbSA/IG1fZml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbSA6IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KGZhc3RNYWxsb2MocGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0pKTsKLSAgICAgICAgaWYg
KGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSghSXRl
bUhhbmRsZSB7IG1fY3Vyc29yIH0uc2FmZUNvcHkoeyBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtIH0p
KSkKLSAgICAgICAgICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgbV9j
dXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVpbnRlcnByZXRfY2Fz
dDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsKLSAgICAgICAgICAgIGF1dG8qIHN0YXJ0T2ZEYXRh
ID0gbV9jdXJzb3IgKyAyICogc2l6ZW9mKHVpbnQ2NF90KTsKLSAgICAgICAgICAgIGF1dG8gZGVj
b2RlZEl0ZW1IYW5kbGUgPSBjbGllbnQtPmRlY29kZUl0ZW0oc3RhcnRPZkRhdGEsIGRhdGFMZW5n
dGgsIGl0ZW1UeXBlLCBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtKTsKLSAgICAgICAgICAgIGlmIChV
TkxJS0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQotICAgICAgICAgICAgICAgIG1faXNWYWxpZCA9
IGZhbHNlOwotCi0gICAgICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtWzBdID0gc3RhdGlj
X2Nhc3Q8dWludDhfdD4oaXRlbVR5cGUpOwotICAgICAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJ
bkJ1ZmZlciA9IDIgKiBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGln
bm9mKHVpbnQ2NF90KSwgZGF0YUxlbmd0aCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAg
ICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtID0gbV9jdXJzb3I7CisgICAgbV9jdXJyZW50QnVm
ZmVyRm9ySXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtIDw9IHNpemVPZkZpeGVkQnVmZmVy
Rm9yQ3VycmVudEl0ZW0gPyBtX2ZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gOiByZWludGVycHJl
dF9jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtKSk7Cisg
ICAgaWYgKGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKCFJ
dGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29weSh7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0g
fSkpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisKICAgICAgICAgbV9jdXJyZW50
SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOworICAgIH0gZWxzZSB7
CisgICAgICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1fcmVhZGluZ0NsaWVudDsKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlQoY2xpZW50KTsKKyAgICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVpbnRl
cnByZXRfY2FzdDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsKKyAgICAgICAgYXV0byogc3RhcnRP
ZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWludDY0X3QpOworICAgICAgICBhdXRvIGRl
Y29kZWRJdGVtSGFuZGxlID0gY2xpZW50LT5kZWNvZGVJdGVtKHN0YXJ0T2ZEYXRhLCBkYXRhTGVu
Z3RoLCBpdGVtVHlwZSwgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSk7CisgICAgICAgIGlmIChVTkxJ
S0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7
CisKKyAgICAgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbVswXSA9IHN0YXRpY19jYXN0PHVpbnQ4
X3Q+KGl0ZW1UeXBlKTsKKyAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IDIgKiBz
aXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwg
ZGF0YUxlbmd0aCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
RHJhd2luZ0NvbnRleHQuaAppbmRleCA5NmU0YjFlZmY5ODFlNDIyNzlkNzQ2ZGM2YmIzOWM4YWE1
MjhlMTQ1Li5kMzdjMDczNWJlYjU1NDkyZDkwZmY5ZWNlNGNhNGRiNzk5NWQ1ZjU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsOCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAorY2xhc3Mg
SW5NZW1vcnlEaXNwbGF5TGlzdDsKKwogY2xhc3MgRHJhd2luZ0NvbnRleHQgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNDIsNyArNDQsNyBAQCBwdWJsaWM6CiAg
ICAgRGlzcGxheUxpc3QgdGFrZURpc3BsYXlMaXN0KCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZSht
X2Rpc3BsYXlMaXN0LCB7IH0pOyB9CiAgICAgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KCkgeyBy
ZXR1cm4gbV9kaXNwbGF5TGlzdDsgfQogICAgIGNvbnN0IERpc3BsYXlMaXN0JiBkaXNwbGF5TGlz
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3Q7IH0KLSAgICBjb25zdCBEaXNwbGF5TGlz
dCogcmVwbGF5ZWREaXNwbGF5TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGF5ZWREaXNwbGF5
TGlzdC5nZXQoKTsgfQorICAgIGNvbnN0IEluTWVtb3J5RGlzcGxheUxpc3QqIHJlcGxheWVkRGlz
cGxheUxpc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcGxheWVkRGlzcGxheUxpc3QuZ2V0KCk7IH0K
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXkoYm9v
bCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYXlEaXNwbGF5TGlzdChHcmFwaGljc0Nv
bnRleHQmKTsKQEAgLTUwLDcgKzUyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEdyYXBo
aWNzQ29udGV4dCBtX2NvbnRleHQ7CiAgICAgRGlzcGxheUxpc3QgbV9kaXNwbGF5TGlzdDsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IG1fcmVwbGF5ZWREaXNwbGF5TGlzdDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5TGlzdD4gbV9yZXBsYXllZERpc3BsYXlM
aXN0OwogICAgIGJvb2wgbV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSB7IGZhbHNlIH07CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAppbmRleCA0ZWI5NjQ4
NGM2OWY3NTkxYzZjNjljYThhNmZhNWY2MjM2ZDY3MDA0Li45MjhjMjQ5YjJkNDVmODRjOTA1MTA5
NDgwMmQzMjRjODMyNTRlNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdl
QnVmZmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNvbmNyZXRlSW1hZ2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAi
SW5NZW1vcnlEaXNwbGF5TGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2Ug
RGlzcGxheUxpc3QgewpAQCAtNTEsMTMgKzUyLDIxIEBAIHB1YmxpYzoKICAgICBJbWFnZUJ1ZmZl
cihjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIHN0ZDo6
dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kKQogICAgICAgICA6IEJhc2VDb25jcmV0
ZUltYWdlQnVmZmVyKHBhcmFtZXRlcnMsIFdURk1vdmUoYmFja2VuZCkpCiAgICAgICAgICwgbV9k
cmF3aW5nQ29udGV4dChsb2dpY2FsU2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCkpCisgICAgICAgICwg
bV93cml0aW5nQ2xpZW50KFdURjo6bWFrZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0
aW5nQ2xpZW50PigpKQorICAgICAgICAsIG1fcmVhZGluZ0NsaWVudChXVEY6Om1ha2VVbmlxdWU8
SW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVhZGluZ0NsaWVudD4oKSkKICAgICB7CisgICAgICAgIG1f
ZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKS5zZXRJdGVtQnVmZmVyQ2xpZW50KG1fd3JpdGlu
Z0NsaWVudC5nZXQoKSk7CisgICAgICAgIG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKS5z
ZXRJdGVtQnVmZmVyQ2xpZW50KG1fcmVhZGluZ0NsaWVudC5nZXQoKSk7CiAgICAgfQogCiAgICAg
SW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBSZWNvcmRlcjo6RGVsZWdhdGUqIGRlbGVnYXRlID0gbnVsbHB0cikKICAgICAgICAgOiBC
YXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihwYXJhbWV0ZXJzKQogICAgICAgICAsIG1fZHJhd2luZ0Nv
bnRleHQobG9naWNhbFNpemUoKSwgYmFzZVRyYW5zZm9ybSgpLCBkZWxlZ2F0ZSkKKyAgICAgICAg
LCBtX3dyaXRpbmdDbGllbnQoV1RGOjptYWtlVW5pcXVlPEluTWVtb3J5RGlzcGxheUxpc3Q6Oldy
aXRpbmdDbGllbnQ+KCkpCisgICAgICAgICwgbV9yZWFkaW5nQ2xpZW50KFdURjo6bWFrZVVuaXF1
ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpSZWFkaW5nQ2xpZW50PigpKQogICAgIHsKKyAgICAgICAg
bV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnNldEl0ZW1CdWZmZXJDbGllbnQobV93cml0
aW5nQ2xpZW50LmdldCgpKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgp
LnNldEl0ZW1CdWZmZXJDbGllbnQobV9yZWFkaW5nQ2xpZW50LmdldCgpKTsKICAgICB9CiAKICAg
ICB+SW1hZ2VCdWZmZXIoKQpAQCAtODAsNiArODksOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoK
ICAgICBEcmF3aW5nQ29udGV4dCBtX2RyYXdpbmdDb250ZXh0OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxJdGVtQnVmZmVyV3JpdGluZ0NsaWVudD4gbV93cml0aW5nQ2xpZW50OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxJdGVtQnVmZmVyUmVhZGluZ0NsaWVudD4gbV9yZWFkaW5nQ2xpZW50OwogfTsKIAog
fSAvLyBEaXNwbGF5TGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmNwcAppbmRleCBiNWMzNzQxOWQ2ZmZhYTE2OGQ0YmI5OWU0MTg4NGZkYWQ0ZDE3Njk3Li45N2Jh
ZjQ5YmM0OGExOWI0NjkzNGM1Yjc3ZGI5Y2E4YmJiYmJkMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVm
ZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MzcsMTQgKzQzNywxNCBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzSXNWYWxp
ZCA9IGZhbHNlOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGNvbnN0ZXhwciBib29sIEhh
c0lzVmFsaWQ8VCwgc3RkOjp2b2lkX3Q8ZGVjbHR5cGUoc3RkOjpkZWNsdmFsPFQ+KCkuaXNWYWxp
ZCgpKT4+ID0gdHJ1ZTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KLXR5cGVuYW1lIHN0ZDo6
ZW5hYmxlX2lmX3Q8IUhhc0lzVmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1I
YW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKK3N0YXRp
YyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PCFIYXNJc1ZhbGlkPEl0ZW0+LCBib29sPiBjb3B5
SW50byhjb25zdCBJdGVtSGFuZGxlJiBpdGVtSGFuZGxlLCB1aW50OF90KiBkZXN0aW5hdGlvbldp
dGhPZmZzZXQpCiB7CiAgICAgbmV3IChkZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbUhh
bmRsZS5nZXQ8SXRlbT4oKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEl0ZW0+Ci10eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lzVmFsaWQ8SXRlbT4sIGJv
b2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uV2l0aE9mZnNldCkKK3N0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lz
VmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUs
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKIHsKICAgICBhdXRvKiBuZXdJdGVtID0g
bmV3IChkZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbUhhbmRsZS5nZXQ8SXRlbT4oKSk7
CiAgICAgcmV0dXJuIG5ld0l0ZW0tPmlzVmFsaWQoKTsKQEAgLTYwNSw3ICs2MDUsNiBAQCBJdGVt
QnVmZmVyOjp+SXRlbUJ1ZmZlcigpCiBJdGVtQnVmZmVyOjpJdGVtQnVmZmVyKEl0ZW1CdWZmZXIm
JiBvdGhlcikKICAgICA6IG1fcmVhZGluZ0NsaWVudChzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVh
ZGluZ0NsaWVudCwgbnVsbHB0cikpCiAgICAgLCBtX3dyaXRpbmdDbGllbnQoc3RkOjpleGNoYW5n
ZShvdGhlci5tX3dyaXRpbmdDbGllbnQsIG51bGxwdHIpKQotICAgICwgbV9pdGVtc1RvRGVzdHJv
eUluQWxsb2NhdGVkQnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faXRlbXNUb0Rlc3Ryb3lJ
bkFsbG9jYXRlZEJ1ZmZlcnMsIHsgfSkpCiAgICAgLCBtX2FsbG9jYXRlZEJ1ZmZlcnMoc3RkOjpl
eGNoYW5nZShvdGhlci5tX2FsbG9jYXRlZEJ1ZmZlcnMsIHsgfSkpCiAgICAgLCBtX3JlYWRPbmx5
QnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVhZE9ubHlCdWZmZXJzLCB7IH0pKQogICAg
ICwgbV93cml0YWJsZUJ1ZmZlcihzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fd3JpdGFibGVCdWZmZXIs
IHsgfSkpCkBAIC02MTcsNyArNjE2LDYgQEAgSXRlbUJ1ZmZlciYgSXRlbUJ1ZmZlcjo6b3BlcmF0
b3I9KEl0ZW1CdWZmZXImJiBvdGhlcikKIHsKICAgICBtX3JlYWRpbmdDbGllbnQgPSBzdGQ6OmV4
Y2hhbmdlKG90aGVyLm1fcmVhZGluZ0NsaWVudCwgbnVsbHB0cik7CiAgICAgbV93cml0aW5nQ2xp
ZW50ID0gc3RkOjpleGNoYW5nZShvdGhlci5tX3dyaXRpbmdDbGllbnQsIG51bGxwdHIpOwotICAg
IG1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVy
Lm1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMsIHsgfSk7CiAgICAgbV9hbGxvY2F0
ZWRCdWZmZXJzID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2FsbG9jYXRlZEJ1ZmZlcnMsIHsgfSk7
CiAgICAgbV9yZWFkT25seUJ1ZmZlcnMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVhZE9ubHlC
dWZmZXJzLCB7IH0pOwogICAgIG1fd3JpdGFibGVCdWZmZXIgPSBzdGQ6OmV4Y2hhbmdlKG90aGVy
Lm1fd3JpdGFibGVCdWZmZXIsIHsgfSk7CkBAIC02NTEsOSArNjQ5LDYgQEAgdm9pZCBJdGVtQnVm
ZmVyOjpmb3JFYWNoSXRlbUJ1ZmZlcihGdW5jdGlvbjx2b2lkKGNvbnN0IEl0ZW1CdWZmZXJIYW5k
bGUmKT4mJiBtYXAKIAogdm9pZCBJdGVtQnVmZmVyOjpjbGVhcigpCiB7Ci0gICAgZm9yIChhdXRv
IGl0ZW0gOiBzdGQ6OmV4Y2hhbmdlKG1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMs
IHsgfSkpCi0gICAgICAgIGl0ZW0uZGVzdHJveSgpOwotCiAgICAgZm9yIChhdXRvKiBidWZmZXIg
OiBzdGQ6OmV4Y2hhbmdlKG1fYWxsb2NhdGVkQnVmZmVycywgeyB9KSkKICAgICAgICAgZmFzdEZy
ZWUoYnVmZmVyKTsKIApAQCAtNjgyLDE4ICs2NzcsMzAgQEAgRGlkQ2hhbmdlSXRlbUJ1ZmZlciBJ
dGVtQnVmZmVyOjpzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChzaXplX3QgbnVtYmVyT2ZCeXRl
cykKIAogdm9pZCBJdGVtQnVmZmVyOjphcHBlbmQoSXRlbUhhbmRsZSB0ZW1wb3JhcnlJdGVtKQog
ewotICAgIGF1dG8gZGF0YSA9IG1fd3JpdGluZ0NsaWVudC0+ZW5jb2RlSXRlbSh0ZW1wb3JhcnlJ
dGVtKTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybjsKKyAgICBhdXRvIHJlcXVpcmVk
U2l6ZUZvckl0ZW0gPSBtX3dyaXRpbmdDbGllbnQtPnJlcXVpcmVkU2l6ZUZvckl0ZW0odGVtcG9y
YXJ5SXRlbSk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gb3V0T2ZMaW5lSXRlbTsKKyAgICBp
ZiAoIXJlcXVpcmVkU2l6ZUZvckl0ZW0pIHsKKyAgICAgICAgb3V0T2ZMaW5lSXRlbSA9IG1fd3Jp
dGluZ0NsaWVudC0+ZW5jb2RlSXRlbU91dE9mTGluZSh0ZW1wb3JhcnlJdGVtKTsKKyAgICAgICAg
aWYgKCFvdXRPZkxpbmVJdGVtKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGF1
dG8gZGF0YUxlbmd0aCA9IGRhdGEtPnNpemUoKTsKKyAgICBhdXRvIGRhdGFMZW5ndGggPSB2YWx1
ZU9yQ29tcHV0ZShyZXF1aXJlZFNpemVGb3JJdGVtLCBbJl0geworICAgICAgICBBU1NFUlQob3V0
T2ZMaW5lSXRlbSk7CisgICAgICAgIHJldHVybiBvdXRPZkxpbmVJdGVtLT5zaXplKCk7CisgICAg
fSk7CiAgICAgYXV0byBhZGRpdGlvbmFsQ2FwYWNpdHlGb3JFbmNvZGVkSXRlbSA9IDIgKiBzaXpl
b2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwgZGF0
YUxlbmd0aCk7CiAKICAgICBhdXRvIGJ1ZmZlckNoYW5nZWQgPSBzd2FwV3JpdGFibGVCdWZmZXJJ
Zk5lZWRlZChhZGRpdGlvbmFsQ2FwYWNpdHlGb3JFbmNvZGVkSXRlbSk7CiAKICAgICBtX3dyaXRh
YmxlQnVmZmVyLmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gPSBzdGF0aWNfY2FzdDx1aW50
OF90Pih0ZW1wb3JhcnlJdGVtLnR5cGUoKSk7CiAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50NjRf
dCo+KG1fd3JpdGFibGVCdWZmZXIuZGF0YSArIG1fd3JpdHRlbk51bWJlck9mQnl0ZXMpWzFdID0g
ZGF0YUxlbmd0aDsKLSAgICBtZW1jcHkobV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVu
TnVtYmVyT2ZCeXRlcyArIDIgKiBzaXplb2YodWludDY0X3QpLCBkYXRhLT5kYXRhQXNVSW50OFB0
cigpLCBkYXRhTGVuZ3RoKTsKKyAgICBhdXRvKiBsb2NhdGlvbiA9IG1fd3JpdGFibGVCdWZmZXIu
ZGF0YSArIG1fd3JpdHRlbk51bWJlck9mQnl0ZXMgKyAyICogc2l6ZW9mKHVpbnQ2NF90KTsKKwor
ICAgIGlmIChyZXF1aXJlZFNpemVGb3JJdGVtKQorICAgICAgICBtX3dyaXRpbmdDbGllbnQtPmVu
Y29kZUl0ZW1JbmxpbmUodGVtcG9yYXJ5SXRlbSwgbG9jYXRpb24pOworICAgIGVsc2UKKyAgICAg
ICAgbWVtY3B5KGxvY2F0aW9uLCBvdXRPZkxpbmVJdGVtLT5kYXRhQXNVSW50OFB0cigpLCBkYXRh
TGVuZ3RoKTsKIAogICAgIGRpZEFwcGVuZERhdGEoYWRkaXRpb25hbENhcGFjaXR5Rm9yRW5jb2Rl
ZEl0ZW0sIGJ1ZmZlckNoYW5nZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bUJ1ZmZlci5oCmluZGV4IDEzOGQ5Y2EwYmQ3MzQzZGJiZjVmNTE5MTYwN2MzYjE5MmEzNzdiZWIu
LjU0NzRlYjk3MTczYTc1YzI4NWQ4YzBiZTBlNDcxZjY2ZmYzMjNkODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1CdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzcsNyArNzcsNyBAQCBzdHJ1Y3QgSXRlbUhh
bmRsZSB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCYgZ2V0KCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChpczxUPigpKTsKLSAgICAgICAgcmV0dXJuICpyZWludGVycHJldF9jYXN0
PFQqPigmZGF0YVtzaXplb2YodWludDY0X3QpXSk7CisgICAgICAgIHJldHVybiAqcmVpbnRlcnBy
ZXRfY2FzdDxUKj4oZGF0YSArIHNpemVvZih1aW50NjRfdCkpOwogICAgIH0KIAogICAgIGJvb2wg
c2FmZUNvcHkoSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3Q7CkBAIC04NywxNiArODcsNDAg
QEAgZW51bSBjbGFzcyBEaWRDaGFuZ2VJdGVtQnVmZmVyIDogYm9vbCB7IE5vLCBZZXMgfTsKIAog
Y2xhc3MgSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgfkl0
ZW1CdWZmZXJXcml0aW5nQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB+SXRlbUJ1ZmZlcldyaXRp
bmdDbGllbnQoKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIEl0ZW1CdWZmZXJIYW5kbGUg
Y3JlYXRlSXRlbUJ1ZmZlcihzaXplX3QpCisgICAgeworICAgICAgICByZXR1cm4geyB9OworICAg
IH0KIAotICAgIHZpcnR1YWwgSXRlbUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVtQnVmZmVyKHNpemVf
dCkgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbShJdGVt
SGFuZGxlKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFwcGVuZERhdGEoY29uc3Qg
SXRlbUJ1ZmZlckhhbmRsZSYsIHNpemVfdCBudW1iZXJPZkJ5dGVzLCBEaWRDaGFuZ2VJdGVtQnVm
ZmVyKSA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxzdGQ6OnNpemVfdD4gcmVxdWlyZWRTaXpl
Rm9ySXRlbShJdGVtSGFuZGxlKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0
ZW1PdXRPZkxpbmUoSXRlbUhhbmRsZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVJdGVtSW5saW5lKEl0ZW1IYW5k
bGUsIHVpbnQ4X3QqKSBjb25zdAorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90IG51bWJlck9mQnl0ZXMs
IERpZENoYW5nZUl0ZW1CdWZmZXIpCisgICAgeworICAgICAgICBVTlVTRURfUEFSQU0obnVtYmVy
T2ZCeXRlcyk7CisgICAgfQogfTsKIAogY2xhc3MgSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQgewog
cHVibGljOgotICAgIHZpcnR1YWwgfkl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50KCkgeyB9CisgICAg
dmlydHVhbCB+SXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQoKQorICAgIHsKKyAgICB9CiAKICAgICB2
aXJ0dWFsIE9wdGlvbmFsPEl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGVJdGVt
KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBJdGVtVHlwZSwgdWludDhf
dCogaGFuZGxlTG9jYXRpb24pID0gMDsKIH07CkBAIC0xNDksOSArMTczLDEwIEBAIHB1YmxpYzoK
ICAgICAvLyBkYXRhIGJhY2sgaW50byBhbiBpdGVtIG9mIHR5cGUgVC4KICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBjbGFzcy4uLiBBcmdzPiB2b2lkIGFwcGVuZChBcmdzJiYuLi4gYXJncykKICAg
ICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxl
PFQ+Ojp2YWx1ZSB8fCAhVDo6aXNJbmxpbmVJdGVtKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVlID09IFQ6OmlzSW5saW5lSXRl
bSk7CiAKLSAgICAgICAgaWYgKCFUOjppc0lubGluZUl0ZW0gJiYgbV93cml0aW5nQ2xpZW50KSB7
CisgICAgICAgIGlmICghVDo6aXNJbmxpbmVJdGVtKSB7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChtX3dyaXRpbmdDbGllbnQpOwogI2lmIENPTVBJTEVSKE1TVkMpCiAgICAgICAgICAgICBf
X2RlY2xzcGVjKGFsaWduKDgpKSB0eXBlZGVmIHVpbnQ4X3QgRW5jb2RpbmdCdWZmZXJbc2l6ZW9m
KHVpbnQ2NF90KSArIHNpemVvZihUKV07CiAjZWxzZQpAQCAtMTY3LDkgKzE5Miw2IEBAIHB1Ymxp
YzoKIAogICAgICAgICBhdXRvIGJ1ZmZlckNoYW5nZWQgPSBzd2FwV3JpdGFibGVCdWZmZXJJZk5l
ZWRlZChwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoVDo6aXRlbVR5cGUpKTsKIAotICAg
ICAgICBpZiAoIXN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpCi0gICAg
ICAgICAgICBtX2l0ZW1zVG9EZXN0cm95SW5BbGxvY2F0ZWRCdWZmZXJzLmFwcGVuZCh7ICZtX3dy
aXRhYmxlQnVmZmVyLmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gfSk7Ci0KICAgICAgICAg
dW5jaGVja2VkQXBwZW5kPFQ+KGJ1ZmZlckNoYW5nZWQsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdz
KS4uLik7CiAgICAgfQogCkBAIC0xOTQsNyArMjE2LDYgQEAgcHJpdmF0ZToKIAogICAgIEl0ZW1C
dWZmZXJSZWFkaW5nQ2xpZW50KiBtX3JlYWRpbmdDbGllbnQgeyBudWxscHRyIH07CiAgICAgSXRl
bUJ1ZmZlcldyaXRpbmdDbGllbnQqIG1fd3JpdGluZ0NsaWVudCB7IG51bGxwdHIgfTsKLSAgICBW
ZWN0b3I8SXRlbUhhbmRsZT4gbV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVyczsKICAg
ICBWZWN0b3I8dWludDhfdCo+IG1fYWxsb2NhdGVkQnVmZmVyczsKICAgICBJdGVtQnVmZmVySGFu
ZGxlcyBtX3JlYWRPbmx5QnVmZmVyczsKICAgICBJdGVtQnVmZmVySGFuZGxlIG1fd3JpdGFibGVC
dWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggZDE3
MzdhMjc5YzM5N2UwOTA5M2QxMzg0MzNkYjM4NDdkNmY0NzQ5Mi4uM2NlMzVkNDdkYTJmMzNiMTA3
YTRiMTNkMDBkNDUzZjM1MmYzNjVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
cGxheWVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5
TGlzdC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3Ry
ZWFtLmg+CiAKQEAgLTE3OSw5ICsxODAsOSBAQCBSZXBsYXlSZXN1bHQgUmVwbGF5ZXI6OnJlcGxh
eShjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBib29sIHRyYWNrUmVwbGF5TGlzdAogICAg
IExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZXBsYXlpbmcgd2l0
aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwogICAgIFVOVVNFRF9QQVJBTShpbml0aWFsQ2xpcCk7
CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHJlcGxheUxpc3Q7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEluTWVtb3J5RGlzcGxheUxpc3Q+IHJlcGxheUxpc3Q7CiAgICAgaWYgKFVO
TElLRUxZKHRyYWNrUmVwbGF5TGlzdCkpCi0gICAgICAgIHJlcGxheUxpc3QgPSBtYWtlVW5pcXVl
PERpc3BsYXlMaXN0PigpOworICAgICAgICByZXBsYXlMaXN0ID0gbWFrZVVuaXF1ZTxJbk1lbW9y
eURpc3BsYXlMaXN0PigpOwogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIHNpemVfdCBpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCmluZGV4IDE4MWExMmIwZTUxOGU4
ZGMyMWQzYjc0OWYyNzEwMWQyYTNlOTZmMzkuLmU3ZjE0MmZhZmYyMDFmZjdiNzVkY2IxZjU5NDQ4
ZmFiMzFkNWYwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw3
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNp
bmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ3LDcgKzQ3LDcgQEAg
ZW51bSBjbGFzcyBTdG9wUmVwbGF5UmVhc29uIDogdWludDhfdCB7CiB9OwogCiBzdHJ1Y3QgUmVw
bGF5UmVzdWx0IHsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHRyYWNrZWREaXNw
bGF5TGlzdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5TGlzdD4gdHJhY2tl
ZERpc3BsYXlMaXN0OwogICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCB7IDAgfTsKICAgICBP
cHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IG5leHREZXN0aW5hdGlvbkltYWdl
QnVmZmVyOwogICAgIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gbWlzc2lu
Z0NhY2hlZFJlc291cmNlSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3Bs
YXlMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTdjNzliMDViYmUwZDk0MWI0NWRkYjU1YzA5YjQ0Yjg0
MjI4MTY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5TGlzdC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitPcHRpb25hbDxzdGQ6OnNpemVf
dD4gSW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXplRm9ySXRl
bShJdGVtSGFuZGxlIGl0ZW1IYW5kbGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhZGRlZFNpemVP
ZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVtSGFuZGxlLnR5cGUoKSk7Cit9CisKK3ZvaWQgSW5NZW1v
cnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZShJdGVtSGFuZGxl
IGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGxvY2F0aW9uKSBjb25zdAoreworICAgIGl0ZW1IYW5kbGUu
c2FmZUNvcHkoeyBsb2NhdGlvbiB9KTsKK30KKworT3B0aW9uYWw8SXRlbUhhbmRsZT4gV0FSTl9V
TlVTRURfUkVUVVJOIEluTWVtb3J5RGlzcGxheUxpc3Q6OlJlYWRpbmdDbGllbnQ6OmRlY29kZUl0
ZW0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIEl0ZW1UeXBlIHR5cGUs
IHVpbnQ4X3QqIGhhbmRsZUxvY2F0aW9uKQoreworICAgIGNvbnN0IEl0ZW1IYW5kbGUgZGF0YUhh
bmRsZSB7IGNvbnN0X2Nhc3Q8dWludDhfdCo+KGRhdGEpIH07CisgICAgQVNTRVJUX1VOVVNFRCh0
eXBlLCBkYXRhSGFuZGxlLnR5cGUoKSA9PSB0eXBlKTsKKyAgICBBU1NFUlRfVU5VU0VEKGRhdGFM
ZW5ndGgsIGRhdGFMZW5ndGggPj0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGRhdGFI
YW5kbGUudHlwZSgpKSk7CisgICAgSXRlbUhhbmRsZSByZXN1bHQgeyBoYW5kbGVMb2NhdGlvbiB9
OworICAgIGlmIChkYXRhSGFuZGxlLnNhZmVDb3B5KHJlc3VsdCkpCisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKworSW5NZW1vcnlEaXNwbGF5TGlz
dDo6SW5NZW1vcnlEaXNwbGF5TGlzdCgpCisgICAgOiBtX3dyaXRpbmdDbGllbnQoV1RGOjptYWtl
VW5pcXVlPFdyaXRpbmdDbGllbnQ+KCkpCisgICAgLCBtX3JlYWRpbmdDbGllbnQoV1RGOjptYWtl
VW5pcXVlPFJlYWRpbmdDbGllbnQ+KCkpCit7CisgICAgc2V0SXRlbUJ1ZmZlckNsaWVudChtX3dy
aXRpbmdDbGllbnQuZ2V0KCkpOworICAgIHNldEl0ZW1CdWZmZXJDbGllbnQobV9yZWFkaW5nQ2xp
ZW50LmdldCgpKTsKK30KKworSW5NZW1vcnlEaXNwbGF5TGlzdDo6fkluTWVtb3J5RGlzcGxheUxp
c3QoKQoreworICAgIGF1dG8gZW5kID0gdGhpcy0+ZW5kKCk7CisgICAgZm9yIChhdXRvIGl0ZXJh
dG9yID0gdGhpcy0+YmVnaW4oKTsgaXRlcmF0b3IgIT0gZW5kOyArK2l0ZXJhdG9yKSB7CisgICAg
ICAgIGF1dG8gdmFsdWUgPSAqaXRlcmF0b3I7CisgICAgICAgIEFTU0VSVCh2YWx1ZS5pdGVtKTsK
KyAgICAgICAgaWYgKCF2YWx1ZS5pdGVtKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHZh
bHVlLml0ZW0tPmRlc3Ryb3koKTsKKyAgICB9Cit9CisKK30KK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlM
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5N
ZW1vcnlEaXNwbGF5TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MGE2OTM5N2RkZGQ4NTYxNWM1ZDRmOWMz
YzgxODZkYTZlZTE3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlIDxtZW1v
cnk+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2Ns
YXNzIEluTWVtb3J5RGlzcGxheUxpc3QgOiBwdWJsaWMgRGlzcGxheUxpc3QgeworcHVibGljOgor
ICAgIFdFQkNPUkVfRVhQT1JUIEluTWVtb3J5RGlzcGxheUxpc3QoKTsKKworICAgIFdFQkNPUkVf
RVhQT1JUIH5Jbk1lbW9yeURpc3BsYXlMaXN0KCk7CisKKyAgICBjbGFzcyBXRUJDT1JFX0VYUE9S
VCBXcml0aW5nQ2xpZW50IDogcHVibGljIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IHsKKyAgICAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgcHJpdmF0ZToKKyAgICAgICAgT3B0aW9u
YWw8c3RkOjpzaXplX3Q+IHJlcXVpcmVkU2l6ZUZvckl0ZW0oSXRlbUhhbmRsZSkgY29uc3QgZmlu
YWw7CisgICAgICAgIHZvaWQgZW5jb2RlSXRlbUlubGluZShJdGVtSGFuZGxlLCB1aW50OF90Kikg
Y29uc3QgZmluYWw7CisgICAgfTsKKworICAgIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJlYWRpbmdD
bGllbnQgOiBwdWJsaWMgSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQgeworICAgICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwcml2YXRlOgorICAgICAgICBPcHRpb25hbDxJdGVtSGFu
ZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gZGVjb2RlSXRlbShjb25zdCB1aW50OF90Kiwgc2l6ZV90
LCBJdGVtVHlwZSwgdWludDhfdCopIGZpbmFsOworICAgIH07CisKK3ByaXZhdGU6CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50PiBtX3dyaXRpbmdDbGllbnQ7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50PiBtX3JlYWRpbmdDbGll
bnQ7Cit9OworCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR2x5
cGhEaXNwbGF5TGlzdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR2x5cGhEaXNw
bGF5TGlzdENhY2hlLmgKaW5kZXggMmIyZjIyM2ExMzUxNjE2MmIxMGQ3MTU0ZGNlYTJhNjg1Njli
YjNmYS4uYTE1YTc0NDg1YTVmM2NjMTkyNjUwMjJkYjU1MmY2MmY5NzQxY2ZiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dseXBoRGlzcGxheUxpc3RDYWNoZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HbHlwaERpc3BsYXlMaXN0Q2FjaGUuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw4ICsy
NSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKICNpbmNs
dWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkluTWVtb3J5RGlzcGxheUxpc3QuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRl
OgotICAgIHVzaW5nIEdseXBoUnVuTWFwID0gSGFzaE1hcDxjb25zdCBMYXlvdXRSdW4qLCBzdGQ6
OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Pj47CisgICAgdXNpbmcgR2x5cGhS
dW5NYXAgPSBIYXNoTWFwPGNvbnN0IExheW91dFJ1biosIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5
TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4+OwogICAgIEdseXBoUnVuTWFwIG1fZ2x5cGhSdW5N
YXA7CiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCA1YmJmMjU2MzA2
MjkwZTQ5YWM4ZGIzMWI1ZDAxYWM5NmI1NmFhYzQyLi5jMjBlMjVlMzUxZjgyOWViOTVhYjhkOGYy
YjE4MjhjZTllM2QxYTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5Miw3ICsy
OTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkuY2FjaGVGb250KGZvbnQpOwogICAgIH0K
IAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySGFuZGxlIGNyZWF0ZUl0ZW1C
dWZmZXIoc2l6ZV90IGNhcGFjaXR5KSBvdmVycmlkZQorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtQnVmZmVySGFuZGxlIGNyZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90IGNhcGFjaXR5KSBmaW5h
bAogICAgIHsKICAgICAgICAgaWYgKExJS0VMWShtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSkpCiAgICAgICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmNy
ZWF0ZUl0ZW1CdWZmZXIoY2FwYWNpdHksIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
QEAgLTMwMSw3ICszMDEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogCi0gICAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbShXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZSBpdGVtKSBjb25zdCBvdmVycmlkZQorICAgIFJlZlB0
cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIC8q
IFRoaXMgbmVlZHMgdG8gbWF0Y2ggKDEpIGlzSW5saW5lSXRlbSgpIGluIERpc3BsYXlMaXN0SXRl
bVR5cGUuY3BwLCAoMikgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSgpLAogICAg
ICAgICAgKiBhbmQgKDMpIGFsbCB0aGUgInN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0
ZW0icyBpbnNpZGUgdGhlIGluZGl2aWR1YWwgaXRlbSBjbGFzc2VzLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgyNmFiMTk2Y2NjZmU2ODJkZWYz
NDlmNmU1YTFjNjhmYmQzOTU4ZjQuLmZmMmUwNDkxMTRmMzkyMDI5ZmQyMGMyM2JkYjk1NTViYTc3
NWQ1ZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0yOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gU2ltcGxpZnkgRGlzcGxheUxp
c3Q6Okl0ZXJhdG9yIHBhcnQgMTogUmVxdWlyZSBlbmNvZGluZy9kZWNvZGluZyBkZWxlZ2F0ZXMg
Zm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9E
aXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cu
Y3BwOgorCiAyMDIxLTAzLTI3ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeCBhIGJ1ZyB0aGF0IGh0dHAgc2VydmVyIGZvciBydW4tYmVuY2htYXJrIHNjcmlw
dCBkb2VzIG5vdCB3b3JrIG9uIHB5dGhvbjMuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXggMWNlMTQ2MjhjZWQ1
ZTAwNjQyNWQyZWMyOWYxZGUwZWI3MWZlMTM3NC4uMmU1M2JiODExZTNiYzJkZjM5MTA2ZjFkNTkx
MzdkNzlhMjIzYTdhMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9EaXNwbGF5TGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0luTWVt
b3J5RGlzcGxheUxpc3QuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC01OCw3ICs1OSw3IEBAIHN0YXRpYyBQYXRoIGNyZWF0ZUNvbXBs
ZXhQYXRoKCkKIAogVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykKIHsKLSAgICBE
aXNwbGF5TGlzdCBsaXN0OworICAgIEluTWVtb3J5RGlzcGxheUxpc3QgbGlzdDsKIAogICAgIEVY
UEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKIApAQCAtMTk4LDE1ICsxOTksMTMgQEAgVEVTVChE
aXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogICAgICAgICAgICAgcmV0dXJuIHsg
Z2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgZ2xvYmFsSXRlbUJ1ZmZl
ckNhcGFjaXR5IH07CiAgICAgICAgIH0KIAotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBl
bmNvZGVJdGVtKEl0ZW1IYW5kbGUgaGFuZGxlKSBjb25zdCBmaW5hbAorICAgICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0ZW1IYW5kbGUgaGFuZGxlKSBjb25z
dCBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBhdXRvIGluZGV4ID0gbV9pdGVtcy5zaXpl
KCk7CiAgICAgICAgICAgICBtX2l0ZW1zLmFwcGVuZChoYW5kbGUuZ2V0PFN0cm9rZVBhdGg+KCkp
OwogICAgICAgICAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDhfdCo+KCZpbmRleCksIHNpemVvZihzaXplX3QpKTsKICAgICAgICAgfQogCi0gICAg
ICAgIHZvaWQgZGlkQXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90LCBE
aWRDaGFuZ2VJdGVtQnVmZmVyKSBmaW5hbCB7IH0KLQogICAgICAgICBWZWN0b3I8U3Ryb2tlUGF0
aD4mIG1faXRlbXM7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAppbmRleCBiNTY5ZjM0
MDdlMDc1MTVmNjJlMTkwMWVlMDIyZDQxOTQ3ZmYzODlhLi4zYjMyMjc4MDYwOWRmOGYzODg1Zjc4
ZWMzODk4NTRlMDA1MmUxODA2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDAsOCArMTAwLDEw
IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB7IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIsIGds
b2JhbEl0ZW1CdWZmZXIsIGdsb2JhbEl0ZW1CdWZmZXJDYXBhY2l0eSB9OwogICAgIH0KIAotICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW0oSXRlbUhhbmRsZSkgY29uc3QgZmluYWwg
eyByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsgfQotICAgIHZvaWQgZGlkQXBwZW5kRGF0
YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90LCBEaWRDaGFuZ2VJdGVtQnVmZmVyKSBm
aW5hbCB7IH0KKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0
ZW1IYW5kbGUpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gU2hhcmVkQnVmZmVy
OjpjcmVhdGUoKTsKKyAgICB9CiB9OwogCiBURVNUKERpc3BsYXlMaXN0VGVzdHMsIE91dE9mTGlu
ZUl0ZW1EZWNvZGluZ0ZhaWx1cmUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424523</attachid>
            <date>2021-03-28 22:20:57 -0700</date>
            <delta_ts>2021-03-28 23:30:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223849-20210328222056.patch</filename>
            <type>text/plain</type>
            <size>47626</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlOTY0ODEwMGUyMDI3
YTIyZDk3YWMzMzhmZjZjODUwYzQwNGM0Ni4uMGVkODc0MzBkNjFmZmNmNTM0ZTIyYmQzMzcxM2I5
YmM3OTdlZjliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIxLTAzLTI4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCAxOiBSZXF1aXJlIGVuY29k
aW5nL2RlY29kaW5nIGRlbGVnYXRlcyBmb3Igbm9uLWlubGluZSBkaXNwbGF5IGxpc3QgaXRlbXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcXVpcmlu
ZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIGhhcyB0aGVzZSBh
ZHZhbnRhZ2VzOgorICAgICAgICAtIERpc3BsYXlMaXN0OjpJdGVyYXRvcjo6dXBkYXRlQ3VycmVu
dEl0ZW0oKSBvbmx5IGhhcyAyIGNvZGVwYXRocyBpbnN0ZWFkIG9mIDMuCisgICAgICAgIC0gSXRl
bUJ1ZmZlcjo6bV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycyBjYW4gYmUgZGVsZXRl
ZCBlbnRpcmVseS4KKyAgICAgICAgLSBUaGUgY29uZGl0aW9uYWwgaW5zaWRlIEl0ZW1CdWZmZXI6
OmFwcGVuZCgpIGNhbiBiZSBzaW1wbGlmaWVkIGZyb20KKyAgICAgICAgICAgICAgIVQ6OmlzSW5s
aW5lSXRlbSAmJiBtX3dyaXRpbmdDbGllbnQgdG8ganVzdCAhVDo6aXNJbmxpbmVJdGVtLCB3aGlj
aCBJIHRoaW5rIG1ha2VzIHRoZQorICAgICAgICAgICAgICBmdW5jdGlvbiBzaWduaWZpY2FudGx5
IG1vcmUgcmVhZGFibGUuCisKKyAgICAgICAgVGhlcmUgYXJlIGEgZmV3IHBsYWNlcyB3aGVyZSB3
ZSB3ZXJlIHVzaW5nIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIHdpdGhvdXQgYSBkZWxl
Z2F0ZToKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHR3byBuZXcgIm51bGwiIGRlbGVnYXRlcywg
YW5kIGhvb2tzIHRoZW0gdXAgdG8gYSBzdWJjbGFzcyBvZiBEaXNwbGF5TGlzdCwKKyAgICAgICAg
Y2FsbGVkIEluTWVtb3J5RGlzcGxheUxpc3QuIENsaWVudHMgd2hvIHdhbnQgdG8gdXNlIGluLW1l
bW9yeSBkaXNwbGF5IGxpc3RzIChsaWtlIHRoZQorICAgICAgICBEcmF3R2x5cGhzIGNhY2hlKSBj
YW4ganVzdCB1c2UgdGhpcyBjbGFzcywgYW5kIHJldGFpbiB0aGVpciBjYWxsaW5nIHBhdHRlcm4g
dGhleSB3ZXJlIHVzaW5nCisgICAgICAgIGJlZm9yZS4gQWxzbywgdGhpcyBwYXRjaCBhZGRzIElu
TWVtb3J5RGlzcGxheUxpc3Qgd2l0aG91dCBhZGRpbmcgYW55IHZpcnR1YWwgZnVuY3Rpb25zIHRv
CisgICAgICAgIERpc3BsYXlMaXN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRo
ZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYXNjYWRlOjpkaXNwbGF5TGlzdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fz
Y2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnRJdGVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0
OjpyZXBsYXllZERpc3BsYXlMaXN0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29weUludG8pOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6Okl0ZW1CdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6bV9hbGxvY2F0ZWRCdWZmZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6fkl0ZW1CdWZmZXJX
cml0aW5nQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVy
V3JpdGluZ0NsaWVudDo6Y3JlYXRlSXRlbUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZvckl0ZW0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xp
ZW50OjplbmNvZGVJdGVtT3V0T2ZMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6
OmRpZEFwcGVuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZm
ZXI6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
cGxheWVyOjpyZXBsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1
aXJlZFNpemVGb3JJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
bk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtSW5saW5lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpS
ZWFkaW5nQ2xpZW50OjpkZWNvZGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0Ojp+SW5NZW1vcnlEaXNwbGF5
TGlzdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5
RGlzcGxheUxpc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmg6CisKIDIwMjEtMDMtMjggIFNhbSBXZWlu
aWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5oL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBmcm9tIHRoZSBYY29kZSBwcm9q
ZWN0IGFzIHRoZXkgZG9uJ3QgZXhpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTQ3YWFiNmI4YTJkNGU0MmFjZTYz
ZmJiMmUxNmViNjI3ZDVkNmNjMy4uMDA0ZTNhOTMwYzA3YjMwZDMzMWU3YmE3OWZhNDNmZTExYTIx
ZTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wMy0yOCAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gU2lt
cGxpZnkgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yIHBhcnQgMTogUmVxdWlyZSBlbmNvZGluZy9kZWNv
ZGluZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKwogMjAyMS0wMy0yOCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFICYgRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUywgaXQgc2VlbXMg
bGlrZSBpdCBpcyBvbiBmb3IgYWxsIHBvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBkNGI5NzA4
MjRkNWRjODVhY2MzZDk5MTI0OWRhNjEzOTVkMzBhMDUwLi5jYjI3OTcyZmYxZGEzYzlmNjA3NDQz
Y2FkODQzNzYyMjM0NWM2N2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzMjAsNiArMTMyMCw3
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCiAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCA3ZTE4MDU1ZDNjMzcxNTQ3ODQwNWZmMzlhNTVjYzk5MTgzY2I2ZWM4Li42YTEwNmUyMDNjY2Zl
NDc5NzFhNDlmMjc2MTBkODUxMjAxNTlmZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjAyNyw2ICsy
MDI3LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1
ZmZlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXll
ci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2UxM2ViYjM3ZWNmYWE0NTQ4MTBjNTVmOWQy
NDNjNWVjZDEyMjczMy4uMjdjM2RlYmI2MDc3OTkyZGU4YWJiZDVhZjI3MjY2ODQ5MzhmZWIxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjM0LDYgKzYzNCw3IEBACiAJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUNDRDgxNTAyMjMxRjgzRTAwNjVGQzJCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTI1NTE0MTZGRDIzNEYwMDNEN0FEQiAvKiBXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gKi87IH07CiAJCTFD
Q0RGNUJFMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0NERjVCQzE5OTAzMzI0
MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oICovOyB9OworCQkxQ0U4ODY0MTI2
MTA1QkYyMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNFODg2M0YyNjEwNUE1RjAwMEM4MTZDIC8q
IEluTWVtb3J5RGlzcGxheUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxp
YiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkFF
MzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovOyB9OwogCQkxRDAwMjZBNDIz
NzRENjI0MDBDQTZDREYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAwMjZBMjIzNzRENjIzMDBDQTZD
REYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggKi87IH07CiAJCTFEMDAyNkFBMjM3NEY5
RUEwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAwMjZBODIzNzRGOUQ5MDBDQTZD
REYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovOyB9OwpAQCAtNjkyNiw2ICs2
OTI3LDggQEAKIAkJMUNERDQ1RTQwQkE5Qzg0NjAwRjkwMTQ3IC8qIERlYnVnUmVsZWFzZS54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBEZWJ1Z1JlbGVhc2UueGNjb25m
aWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDREQ0NUU1MEJBOUM4NDYwMEY5MDE0
NyAvKiBXZWJDb3JlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdl
YkNvcmUueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDREQ0NUU2MEJB
OUM4NDYwMEY5MDE0NyAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsg
cGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRTg4
NjNFMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluTWVtb3J5RGlzcGxheUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0U4ODYzRjI2MTA1QTVGMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbk1lbW9yeURpc3BsYXlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDRUNCM0E4MjFGMkI2NzMwMEY0NDU0MiAvKiBXSExTTFN0YXRlbWVudEJl
aGF2aW9yQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFN0YXRlbWVudEJlaGF2aW9yQ2hl
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0VDQjNBOTIxRjJCNjczMDBG
NDQ1NDIgLyogV0hMU0xTdGF0ZW1lbnRCZWhhdmlvckNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0hMU0xTdGF0ZW1lbnRCZWhhdmlvckNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0VDQjNBRjIxRjJCOTg0MDBGNDQ1NDIgLyogV0hMU0xGdW5jdGlvbldy
aXRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTEZ1bmN0aW9uV3JpdGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MDY1LDYgKzE4MDY4LDggQEAKIAkJCQkwRkU1
RkJDRjFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZWNvcmRlci5oICovLAogCQkJCTBG
RTVGQkQwMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmNwcCAqLywKIAkJ
CQkwRkU1RkJEMTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZXBsYXllci5oICovLAor
CQkJCTFDRTg4NjNFMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmNwcCAq
LywKKwkJCQkxQ0U4ODYzRjI2MTA1QTVGMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBkaXNwbGF5bGlzdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtMzI4MjgsNiArMzI4MzMsNyBAQAogCQkJCUJDRUE0ODVBMDk3RDkzMDIwMDk0
QzlFNCAvKiBJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzAxMDcwMTE5MjU5
NERGMDA4QTQyMDEgLyogSW5saW5lVGV4dEJveFN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2
RjFDQzFERTIyNUY4QjQ5MDA3MjBBRDIgLyogSW5saW5lVGV4dEl0ZW0uaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDRTg4NjQxMjYxMDVCRjIwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRUI3Njc1NzFEQTE5QkRGMDAzRTIzQjUgLyogSW5wdXRFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTUyRUZERjQyMTEyODc1QTAwQUQyODJBIC8qIElucHV0
TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdFMzUyNEQxMjQ1MEM2NjAwQkFGNUQ5IC8qIElu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCmluZGV4IDA2ZmY1MTUyYTg0NWNhMDkzOTc4MWUyN2E2MmRmMzRhYjE0M2ZkYmYu
LjljZTk5ZjM2YTczNzgzMTNkODgyZWFiN2FiNWNkZDViZDAxNjM1MTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJ
bWFnZURhdGEuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlv
bmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAppbmRleCA1Y2VhNzQ1MmQ1ZmYy
ZTZjYjVmM2UxMTY2NTk3Yjc5ZmQ4ZjczZDdkLi43ZDNlYjkxMjg1YTEyYjc5MGVlMjlhYmQ4OGY0
NmIxNWI5Njc1ZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRm9udENhY2hlLmgi
CiAjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
KyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5o
IgogI2luY2x1ZGUgIlN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUg
IlRleHRSdW4uaCIKQEAgLTIxMCw3ICsyMTEsNyBAQCB2b2lkIEZvbnRDYXNjYWRlOjpkcmF3RW1w
aGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1bgog
ICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBzdGFydFBv
aW50KTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4gRm9u
dENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFRleHRSdW4mIHJ1biwgdW5zaWduZWQgZnJvbSwgT3B0aW9uYWw8dW5zaWduZWQ+IHRv
LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24gY3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uKSBjb25z
dAorc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBGb250
Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgVGV4dFJ1biYgcnVuLCB1bnNpZ25lZCBmcm9tLCBPcHRpb25hbDx1bnNpZ25lZD4gdG8s
IEN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbiBjdXN0b21Gb250Tm90UmVhZHlBY3Rpb24pIGNvbnN0
CiB7CiAgICAgQVNTRVJUKCFjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSk7CiAgICAgdW5zaWdu
ZWQgZGVzdGluYXRpb24gPSB0by52YWx1ZU9yKHJ1bi5sZW5ndGgoKSk7CkBAIC0yMjYsNyArMjI3
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4gRm9udENhc2Nh
ZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmEKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0PigpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6
SW5NZW1vcnlEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0
OjpJbk1lbW9yeURpc3BsYXlMaXN0PigpOwogICAgIEdyYXBoaWNzQ29udGV4dCByZWNvcmRpbmdD
b250ZXh0KFsmXShHcmFwaGljc0NvbnRleHQmIGRpc3BsYXlMaXN0Q29udGV4dCkgewogICAgICAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxEaXNwbGF5TGlzdDo6UmVjb3JkZXI+KGRpc3BsYXlMaXN0Q29u
dGV4dCwgKmRpc3BsYXlMaXN0LCBjb250ZXh0LnN0YXRlKCksIEZsb2F0UmVjdCgpLCBBZmZpbmVU
cmFuc2Zvcm0oKSwgbnVsbHB0ciwgRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJh
d0dseXBoc0RlY29uc3RydWN0aW9uOjpEb250RGVjb25zdHJ1Y3QpOwogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKaW5kZXggNjZiNmYx
M2FkMzMwMmQ2MmRiYzk1MDIzMDM4ZGJmNDZlMjhjMTkyMC4uMWVmOWU3NmZmMTZkNDA4ZjU3Nzg4
ZmZiY2ZkODZkNTc1NTVhYmUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FzY2FkZS5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFRleHRMYXlvdXQ7CiBj
bGFzcyBUZXh0UnVuOwogCiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewotY2xhc3MgRGlzcGxheUxp
c3Q7CitjbGFzcyBJbk1lbW9yeURpc3BsYXlMaXN0OwogfQogICAgIAogc3RydWN0IEdseXBoRGF0
YTsKQEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgZmxvYXQgc3ludGhl
dGljT2JsaXF1ZUFuZ2xlKCkgeyByZXR1cm4gMTQ7IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q+IGRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBUZXh0UnVuJiwgdW5zaWduZWQgZnJvbSA9IDAsIE9wdGlvbmFsPHVuc2ln
bmVkPiB0byA9IHsgfSwgQ3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uID0gQ3VzdG9tRm9udE5vdFJl
YWR5QWN0aW9uOjpEb05vdFBhaW50SWZGb250Tm90UmVhZHkpIGNvbnN0OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3RGb3JU
ZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFRleHRSdW4mLCB1bnNpZ25lZCBmcm9tID0g
MCwgT3B0aW9uYWw8dW5zaWduZWQ+IHRvID0geyB9LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24g
PSBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb246OkRvTm90UGFpbnRJZkZvbnROb3RSZWFkeSkgY29u
c3Q7CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShDRykKICAgICBzdGF0aWMgdm9pZCBzZXRG
b250U21vb3RoaW5nTGV2ZWwoaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDY2MWFiNDU3MjE0OTg5
Nzc2ZWExYTBmZWJmYTk0NTdkMzQxM2UwMWMuLjRlNTcxZDhjZmJiODM1YmI1ZmE5OWFhNzE0YTZh
NzA4MWQ3NzUzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJGYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1vZGVsLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUZpbHRl
cnMuaCIKQEAgLTQwMiw3ICs0MDMsNyBAQCBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhp
Y3NMYXllckNBOjpjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbgogI2VuZGlm
CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxjb25zdCBHcmFwaGljc0xheWVyQ0EqLCBzdGQ6OnBhaXI8
RmxvYXRSZWN0LCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Pj4+IExh
eWVyRGlzcGxheUxpc3RIYXNoTWFwOwordHlwZWRlZiBIYXNoTWFwPGNvbnN0IEdyYXBoaWNzTGF5
ZXJDQSosIHN0ZDo6cGFpcjxGbG9hdFJlY3QsIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6
SW5NZW1vcnlEaXNwbGF5TGlzdD4+PiBMYXllckRpc3BsYXlMaXN0SGFzaE1hcDsKIAogc3RhdGlj
IExheWVyRGlzcGxheUxpc3RIYXNoTWFwJiBsYXllckRpc3BsYXlMaXN0TWFwKCkKIHsKQEAgLTE3
MTAsNyArMTcxMSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFu
Z2VzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZSwgY29uc3QgVHJhCiAgICAgaWYgKHVzZXNEaXNw
bGF5TGlzdERyYXdpbmcoKSAmJiBtX2RyYXdzQ29udGVudCAmJiAoIW1faGFzRXZlclBhaW50ZWQg
fHwgaGFkRGlydHlSZWN0cykpIHsKICAgICAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoRGlz
cGxheUxpc3RSZWNvcmRTdGFydCwgRGlzcGxheUxpc3RSZWNvcmRFbmQpOwogCi0gICAgICAgIG1f
ZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4oKTsKKyAg
ICAgICAgbV9kaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlz
cGxheUxpc3Q+KCk7CiAgICAgICAgIAogICAgICAgICBGbG9hdFJlY3QgaW5pdGlhbENsaXAoYm91
bmRzT3JpZ2luKCksIHNpemUoKSk7CiAKQEAgLTE3NDQsNyArMTc0NSw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKFBsYXRmb3JtQ0FMYXllcios
IEdyYXBoaWNzQ29uCiAgICAgICAgIAogICAgICAgICBpZiAoVU5MSUtFTFkoaXNUcmFja2luZ0Rp
c3BsYXlMaXN0UmVwbGF5KCkpKSB7CiAgICAgICAgICAgICBhdXRvIHJlcGxheUxpc3QgPSByZXBs
YXllci5yZXBsYXkoY2xpcCwgaXNUcmFja2luZ0Rpc3BsYXlMaXN0UmVwbGF5KCkpLnRyYWNrZWRE
aXNwbGF5TGlzdDsKLSAgICAgICAgICAgIGxheWVyRGlzcGxheUxpc3RNYXAoKS5hZGQodGhpcywg
c3RkOjpwYWlyPEZsb2F0UmVjdCwgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdD4+KGNsaXAsIFdURk1vdmUocmVwbGF5TGlzdCkpKTsKKyAgICAgICAgICAgIGxheWVyRGlz
cGxheUxpc3RNYXAoKS5hZGQodGhpcywgc3RkOjpwYWlyPEZsb2F0UmVjdCwgc3RkOjp1bmlxdWVf
cHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0Pj4oY2xpcCwgV1RGTW92ZShyZXBs
YXlMaXN0KSkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlcGxheWVyLnJlcGxheShj
bGlwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaAppbmRleCBiZmI2NTEyZTRlMjlkN2Q4MzZmZTEyYzlhZDlkMzQ3YjEx
NmYxNjM0Li5kMjgxZDk3MzMyMTMxOTg1NjA0YWMxOWFhYjZkMjg0YmM0NjM4NTNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuaApAQCAtNDEsNyArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2Ug
RGlzcGxheUxpc3QgewotY2xhc3MgRGlzcGxheUxpc3Q7CitjbGFzcyBJbk1lbW9yeURpc3BsYXlM
aXN0OwogfQogCiBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwpAQCAtNjMwLDcgKzYzMCw3IEBAIHBy
aXZhdGU6CiAKICAgICBWZWN0b3I8RmxvYXRSZWN0PiBtX2RpcnR5UmVjdHM7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBtX2Rpc3BsYXlMaXN0OworICAg
IHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4gbV9kaXNw
bGF5TGlzdDsKIAogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBv
c2UgeyBDb250ZW50c0xheWVyUHVycG9zZTo6Tm9uZSB9OwogICAgIGJvb2wgbV9pc0NvbW1pdHRp
bmdDaGFuZ2VzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IDViNTVi
ZWM4YzBhZTIxYTkyOTg0NWE0MTVkMTM1NzljMzY5YmQ1NDcuLmI4NjM0MGY3NjI5NGRhYjgyNDUz
MzE1NDAzNDJjZGQ4OTBjMjk5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNDcsMjgg
KzM0NywyNCBAQCB2b2lkIERpc3BsYXlMaXN0OjppdGVyYXRvcjo6dXBkYXRlQ3VycmVudEl0ZW0o
KQogICAgIH0gZWxzZQogICAgICAgICBtX2N1cnJlbnRFeHRlbnQgPSBXVEY6Om51bGxvcHQ7CiAK
LSAgICBhdXRvKiBjbGllbnQgPSBpdGVtcy5tX3JlYWRpbmdDbGllbnQ7CiAgICAgYXV0byBwYWRk
ZWRTaXplT2ZUeXBlQW5kSXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVt
VHlwZSk7Ci0gICAgaWYgKGNsaWVudCkgewotICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVt
ID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0gPD0gc2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50
SXRlbSA/IG1fZml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbSA6IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KGZhc3RNYWxsb2MocGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0pKTsKLSAgICAgICAgaWYg
KGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSghSXRl
bUhhbmRsZSB7IG1fY3Vyc29yIH0uc2FmZUNvcHkoeyBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtIH0p
KSkKLSAgICAgICAgICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgbV9j
dXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVpbnRlcnByZXRfY2Fz
dDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsKLSAgICAgICAgICAgIGF1dG8qIHN0YXJ0T2ZEYXRh
ID0gbV9jdXJzb3IgKyAyICogc2l6ZW9mKHVpbnQ2NF90KTsKLSAgICAgICAgICAgIGF1dG8gZGVj
b2RlZEl0ZW1IYW5kbGUgPSBjbGllbnQtPmRlY29kZUl0ZW0oc3RhcnRPZkRhdGEsIGRhdGFMZW5n
dGgsIGl0ZW1UeXBlLCBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtKTsKLSAgICAgICAgICAgIGlmIChV
TkxJS0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQotICAgICAgICAgICAgICAgIG1faXNWYWxpZCA9
IGZhbHNlOwotCi0gICAgICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtWzBdID0gc3RhdGlj
X2Nhc3Q8dWludDhfdD4oaXRlbVR5cGUpOwotICAgICAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJ
bkJ1ZmZlciA9IDIgKiBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGln
bm9mKHVpbnQ2NF90KSwgZGF0YUxlbmd0aCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAg
ICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtID0gbV9jdXJzb3I7CisgICAgbV9jdXJyZW50QnVm
ZmVyRm9ySXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtIDw9IHNpemVPZkZpeGVkQnVmZmVy
Rm9yQ3VycmVudEl0ZW0gPyBtX2ZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gOiByZWludGVycHJl
dF9jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtKSk7Cisg
ICAgaWYgKGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKCFJ
dGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29weSh7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0g
fSkpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisKICAgICAgICAgbV9jdXJyZW50
SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOworICAgIH0gZWxzZSB7
CisgICAgICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1fcmVhZGluZ0NsaWVudDsKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlQoY2xpZW50KTsKKyAgICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVpbnRl
cnByZXRfY2FzdDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsKKyAgICAgICAgYXV0byogc3RhcnRP
ZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWludDY0X3QpOworICAgICAgICBhdXRvIGRl
Y29kZWRJdGVtSGFuZGxlID0gY2xpZW50LT5kZWNvZGVJdGVtKHN0YXJ0T2ZEYXRhLCBkYXRhTGVu
Z3RoLCBpdGVtVHlwZSwgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSk7CisgICAgICAgIGlmIChVTkxJ
S0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7
CisKKyAgICAgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbVswXSA9IHN0YXRpY19jYXN0PHVpbnQ4
X3Q+KGl0ZW1UeXBlKTsKKyAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IDIgKiBz
aXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwg
ZGF0YUxlbmd0aCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
RHJhd2luZ0NvbnRleHQuaAppbmRleCA5NmU0YjFlZmY5ODFlNDIyNzlkNzQ2ZGM2YmIzOWM4YWE1
MjhlMTQ1Li5kMzdjMDczNWJlYjU1NDkyZDkwZmY5ZWNlNGNhNGRiNzk5NWQ1ZjU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsOCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAorY2xhc3Mg
SW5NZW1vcnlEaXNwbGF5TGlzdDsKKwogY2xhc3MgRHJhd2luZ0NvbnRleHQgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNDIsNyArNDQsNyBAQCBwdWJsaWM6CiAg
ICAgRGlzcGxheUxpc3QgdGFrZURpc3BsYXlMaXN0KCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZSht
X2Rpc3BsYXlMaXN0LCB7IH0pOyB9CiAgICAgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KCkgeyBy
ZXR1cm4gbV9kaXNwbGF5TGlzdDsgfQogICAgIGNvbnN0IERpc3BsYXlMaXN0JiBkaXNwbGF5TGlz
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3Q7IH0KLSAgICBjb25zdCBEaXNwbGF5TGlz
dCogcmVwbGF5ZWREaXNwbGF5TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGF5ZWREaXNwbGF5
TGlzdC5nZXQoKTsgfQorICAgIGNvbnN0IEluTWVtb3J5RGlzcGxheUxpc3QqIHJlcGxheWVkRGlz
cGxheUxpc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcGxheWVkRGlzcGxheUxpc3QuZ2V0KCk7IH0K
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXkoYm9v
bCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYXlEaXNwbGF5TGlzdChHcmFwaGljc0Nv
bnRleHQmKTsKQEAgLTUwLDcgKzUyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEdyYXBo
aWNzQ29udGV4dCBtX2NvbnRleHQ7CiAgICAgRGlzcGxheUxpc3QgbV9kaXNwbGF5TGlzdDsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IG1fcmVwbGF5ZWREaXNwbGF5TGlzdDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5TGlzdD4gbV9yZXBsYXllZERpc3BsYXlM
aXN0OwogICAgIGJvb2wgbV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSB7IGZhbHNlIH07CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAppbmRleCA0ZWI5NjQ4
NGM2OWY3NTkxYzZjNjljYThhNmZhNWY2MjM2ZDY3MDA0Li45MjhjMjQ5YjJkNDVmODRjOTA1MTA5
NDgwMmQzMjRjODMyNTRlNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdl
QnVmZmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNvbmNyZXRlSW1hZ2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAi
SW5NZW1vcnlEaXNwbGF5TGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2Ug
RGlzcGxheUxpc3QgewpAQCAtNTEsMTMgKzUyLDIxIEBAIHB1YmxpYzoKICAgICBJbWFnZUJ1ZmZl
cihjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIHN0ZDo6
dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kKQogICAgICAgICA6IEJhc2VDb25jcmV0
ZUltYWdlQnVmZmVyKHBhcmFtZXRlcnMsIFdURk1vdmUoYmFja2VuZCkpCiAgICAgICAgICwgbV9k
cmF3aW5nQ29udGV4dChsb2dpY2FsU2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCkpCisgICAgICAgICwg
bV93cml0aW5nQ2xpZW50KFdURjo6bWFrZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0
aW5nQ2xpZW50PigpKQorICAgICAgICAsIG1fcmVhZGluZ0NsaWVudChXVEY6Om1ha2VVbmlxdWU8
SW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVhZGluZ0NsaWVudD4oKSkKICAgICB7CisgICAgICAgIG1f
ZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKS5zZXRJdGVtQnVmZmVyQ2xpZW50KG1fd3JpdGlu
Z0NsaWVudC5nZXQoKSk7CisgICAgICAgIG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKS5z
ZXRJdGVtQnVmZmVyQ2xpZW50KG1fcmVhZGluZ0NsaWVudC5nZXQoKSk7CiAgICAgfQogCiAgICAg
SW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBSZWNvcmRlcjo6RGVsZWdhdGUqIGRlbGVnYXRlID0gbnVsbHB0cikKICAgICAgICAgOiBC
YXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihwYXJhbWV0ZXJzKQogICAgICAgICAsIG1fZHJhd2luZ0Nv
bnRleHQobG9naWNhbFNpemUoKSwgYmFzZVRyYW5zZm9ybSgpLCBkZWxlZ2F0ZSkKKyAgICAgICAg
LCBtX3dyaXRpbmdDbGllbnQoV1RGOjptYWtlVW5pcXVlPEluTWVtb3J5RGlzcGxheUxpc3Q6Oldy
aXRpbmdDbGllbnQ+KCkpCisgICAgICAgICwgbV9yZWFkaW5nQ2xpZW50KFdURjo6bWFrZVVuaXF1
ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpSZWFkaW5nQ2xpZW50PigpKQogICAgIHsKKyAgICAgICAg
bV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnNldEl0ZW1CdWZmZXJDbGllbnQobV93cml0
aW5nQ2xpZW50LmdldCgpKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgp
LnNldEl0ZW1CdWZmZXJDbGllbnQobV9yZWFkaW5nQ2xpZW50LmdldCgpKTsKICAgICB9CiAKICAg
ICB+SW1hZ2VCdWZmZXIoKQpAQCAtODAsNiArODksOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoK
ICAgICBEcmF3aW5nQ29udGV4dCBtX2RyYXdpbmdDb250ZXh0OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxJdGVtQnVmZmVyV3JpdGluZ0NsaWVudD4gbV93cml0aW5nQ2xpZW50OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxJdGVtQnVmZmVyUmVhZGluZ0NsaWVudD4gbV9yZWFkaW5nQ2xpZW50OwogfTsKIAog
fSAvLyBEaXNwbGF5TGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmNwcAppbmRleCBiNWMzNzQxOWQ2ZmZhYTE2OGQ0YmI5OWU0MTg4NGZkYWQ0ZDE3Njk3Li45N2Jh
ZjQ5YmM0OGExOWI0NjkzNGM1Yjc3ZGI5Y2E4YmJiYmJkMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVm
ZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MzcsMTQgKzQzNywxNCBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzSXNWYWxp
ZCA9IGZhbHNlOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGNvbnN0ZXhwciBib29sIEhh
c0lzVmFsaWQ8VCwgc3RkOjp2b2lkX3Q8ZGVjbHR5cGUoc3RkOjpkZWNsdmFsPFQ+KCkuaXNWYWxp
ZCgpKT4+ID0gdHJ1ZTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KLXR5cGVuYW1lIHN0ZDo6
ZW5hYmxlX2lmX3Q8IUhhc0lzVmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1I
YW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKK3N0YXRp
YyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PCFIYXNJc1ZhbGlkPEl0ZW0+LCBib29sPiBjb3B5
SW50byhjb25zdCBJdGVtSGFuZGxlJiBpdGVtSGFuZGxlLCB1aW50OF90KiBkZXN0aW5hdGlvbldp
dGhPZmZzZXQpCiB7CiAgICAgbmV3IChkZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbUhh
bmRsZS5nZXQ8SXRlbT4oKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEl0ZW0+Ci10eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lzVmFsaWQ8SXRlbT4sIGJv
b2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uV2l0aE9mZnNldCkKK3N0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lz
VmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUs
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKIHsKICAgICBhdXRvKiBuZXdJdGVtID0g
bmV3IChkZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbUhhbmRsZS5nZXQ8SXRlbT4oKSk7
CiAgICAgcmV0dXJuIG5ld0l0ZW0tPmlzVmFsaWQoKTsKQEAgLTYwNSw3ICs2MDUsNiBAQCBJdGVt
QnVmZmVyOjp+SXRlbUJ1ZmZlcigpCiBJdGVtQnVmZmVyOjpJdGVtQnVmZmVyKEl0ZW1CdWZmZXIm
JiBvdGhlcikKICAgICA6IG1fcmVhZGluZ0NsaWVudChzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVh
ZGluZ0NsaWVudCwgbnVsbHB0cikpCiAgICAgLCBtX3dyaXRpbmdDbGllbnQoc3RkOjpleGNoYW5n
ZShvdGhlci5tX3dyaXRpbmdDbGllbnQsIG51bGxwdHIpKQotICAgICwgbV9pdGVtc1RvRGVzdHJv
eUluQWxsb2NhdGVkQnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faXRlbXNUb0Rlc3Ryb3lJ
bkFsbG9jYXRlZEJ1ZmZlcnMsIHsgfSkpCiAgICAgLCBtX2FsbG9jYXRlZEJ1ZmZlcnMoc3RkOjpl
eGNoYW5nZShvdGhlci5tX2FsbG9jYXRlZEJ1ZmZlcnMsIHsgfSkpCiAgICAgLCBtX3JlYWRPbmx5
QnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVhZE9ubHlCdWZmZXJzLCB7IH0pKQogICAg
ICwgbV93cml0YWJsZUJ1ZmZlcihzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fd3JpdGFibGVCdWZmZXIs
IHsgfSkpCkBAIC02MTcsNyArNjE2LDYgQEAgSXRlbUJ1ZmZlciYgSXRlbUJ1ZmZlcjo6b3BlcmF0
b3I9KEl0ZW1CdWZmZXImJiBvdGhlcikKIHsKICAgICBtX3JlYWRpbmdDbGllbnQgPSBzdGQ6OmV4
Y2hhbmdlKG90aGVyLm1fcmVhZGluZ0NsaWVudCwgbnVsbHB0cik7CiAgICAgbV93cml0aW5nQ2xp
ZW50ID0gc3RkOjpleGNoYW5nZShvdGhlci5tX3dyaXRpbmdDbGllbnQsIG51bGxwdHIpOwotICAg
IG1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVy
Lm1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMsIHsgfSk7CiAgICAgbV9hbGxvY2F0
ZWRCdWZmZXJzID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2FsbG9jYXRlZEJ1ZmZlcnMsIHsgfSk7
CiAgICAgbV9yZWFkT25seUJ1ZmZlcnMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVhZE9ubHlC
dWZmZXJzLCB7IH0pOwogICAgIG1fd3JpdGFibGVCdWZmZXIgPSBzdGQ6OmV4Y2hhbmdlKG90aGVy
Lm1fd3JpdGFibGVCdWZmZXIsIHsgfSk7CkBAIC02NTEsOSArNjQ5LDYgQEAgdm9pZCBJdGVtQnVm
ZmVyOjpmb3JFYWNoSXRlbUJ1ZmZlcihGdW5jdGlvbjx2b2lkKGNvbnN0IEl0ZW1CdWZmZXJIYW5k
bGUmKT4mJiBtYXAKIAogdm9pZCBJdGVtQnVmZmVyOjpjbGVhcigpCiB7Ci0gICAgZm9yIChhdXRv
IGl0ZW0gOiBzdGQ6OmV4Y2hhbmdlKG1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMs
IHsgfSkpCi0gICAgICAgIGl0ZW0uZGVzdHJveSgpOwotCiAgICAgZm9yIChhdXRvKiBidWZmZXIg
OiBzdGQ6OmV4Y2hhbmdlKG1fYWxsb2NhdGVkQnVmZmVycywgeyB9KSkKICAgICAgICAgZmFzdEZy
ZWUoYnVmZmVyKTsKIApAQCAtNjgyLDE4ICs2NzcsMzAgQEAgRGlkQ2hhbmdlSXRlbUJ1ZmZlciBJ
dGVtQnVmZmVyOjpzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChzaXplX3QgbnVtYmVyT2ZCeXRl
cykKIAogdm9pZCBJdGVtQnVmZmVyOjphcHBlbmQoSXRlbUhhbmRsZSB0ZW1wb3JhcnlJdGVtKQog
ewotICAgIGF1dG8gZGF0YSA9IG1fd3JpdGluZ0NsaWVudC0+ZW5jb2RlSXRlbSh0ZW1wb3JhcnlJ
dGVtKTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybjsKKyAgICBhdXRvIHJlcXVpcmVk
U2l6ZUZvckl0ZW0gPSBtX3dyaXRpbmdDbGllbnQtPnJlcXVpcmVkU2l6ZUZvckl0ZW0odGVtcG9y
YXJ5SXRlbSk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gb3V0T2ZMaW5lSXRlbTsKKyAgICBp
ZiAoIXJlcXVpcmVkU2l6ZUZvckl0ZW0pIHsKKyAgICAgICAgb3V0T2ZMaW5lSXRlbSA9IG1fd3Jp
dGluZ0NsaWVudC0+ZW5jb2RlSXRlbU91dE9mTGluZSh0ZW1wb3JhcnlJdGVtKTsKKyAgICAgICAg
aWYgKCFvdXRPZkxpbmVJdGVtKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGF1
dG8gZGF0YUxlbmd0aCA9IGRhdGEtPnNpemUoKTsKKyAgICBhdXRvIGRhdGFMZW5ndGggPSB2YWx1
ZU9yQ29tcHV0ZShyZXF1aXJlZFNpemVGb3JJdGVtLCBbJl0geworICAgICAgICBBU1NFUlQob3V0
T2ZMaW5lSXRlbSk7CisgICAgICAgIHJldHVybiBvdXRPZkxpbmVJdGVtLT5zaXplKCk7CisgICAg
fSk7CiAgICAgYXV0byBhZGRpdGlvbmFsQ2FwYWNpdHlGb3JFbmNvZGVkSXRlbSA9IDIgKiBzaXpl
b2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwgZGF0
YUxlbmd0aCk7CiAKICAgICBhdXRvIGJ1ZmZlckNoYW5nZWQgPSBzd2FwV3JpdGFibGVCdWZmZXJJ
Zk5lZWRlZChhZGRpdGlvbmFsQ2FwYWNpdHlGb3JFbmNvZGVkSXRlbSk7CiAKICAgICBtX3dyaXRh
YmxlQnVmZmVyLmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gPSBzdGF0aWNfY2FzdDx1aW50
OF90Pih0ZW1wb3JhcnlJdGVtLnR5cGUoKSk7CiAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50NjRf
dCo+KG1fd3JpdGFibGVCdWZmZXIuZGF0YSArIG1fd3JpdHRlbk51bWJlck9mQnl0ZXMpWzFdID0g
ZGF0YUxlbmd0aDsKLSAgICBtZW1jcHkobV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVu
TnVtYmVyT2ZCeXRlcyArIDIgKiBzaXplb2YodWludDY0X3QpLCBkYXRhLT5kYXRhQXNVSW50OFB0
cigpLCBkYXRhTGVuZ3RoKTsKKyAgICBhdXRvKiBsb2NhdGlvbiA9IG1fd3JpdGFibGVCdWZmZXIu
ZGF0YSArIG1fd3JpdHRlbk51bWJlck9mQnl0ZXMgKyAyICogc2l6ZW9mKHVpbnQ2NF90KTsKKwor
ICAgIGlmIChyZXF1aXJlZFNpemVGb3JJdGVtKQorICAgICAgICBtX3dyaXRpbmdDbGllbnQtPmVu
Y29kZUl0ZW1JbmxpbmUodGVtcG9yYXJ5SXRlbSwgbG9jYXRpb24pOworICAgIGVsc2UKKyAgICAg
ICAgbWVtY3B5KGxvY2F0aW9uLCBvdXRPZkxpbmVJdGVtLT5kYXRhQXNVSW50OFB0cigpLCBkYXRh
TGVuZ3RoKTsKIAogICAgIGRpZEFwcGVuZERhdGEoYWRkaXRpb25hbENhcGFjaXR5Rm9yRW5jb2Rl
ZEl0ZW0sIGJ1ZmZlckNoYW5nZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bUJ1ZmZlci5oCmluZGV4IDEzOGQ5Y2EwYmQ3MzQzZGJiZjVmNTE5MTYwN2MzYjE5MmEzNzdiZWIu
LjU0NzRlYjk3MTczYTc1YzI4NWQ4YzBiZTBlNDcxZjY2ZmYzMjNkODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1CdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzcsNyArNzcsNyBAQCBzdHJ1Y3QgSXRlbUhh
bmRsZSB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCYgZ2V0KCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChpczxUPigpKTsKLSAgICAgICAgcmV0dXJuICpyZWludGVycHJldF9jYXN0
PFQqPigmZGF0YVtzaXplb2YodWludDY0X3QpXSk7CisgICAgICAgIHJldHVybiAqcmVpbnRlcnBy
ZXRfY2FzdDxUKj4oZGF0YSArIHNpemVvZih1aW50NjRfdCkpOwogICAgIH0KIAogICAgIGJvb2wg
c2FmZUNvcHkoSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3Q7CkBAIC04NywxNiArODcsNDAg
QEAgZW51bSBjbGFzcyBEaWRDaGFuZ2VJdGVtQnVmZmVyIDogYm9vbCB7IE5vLCBZZXMgfTsKIAog
Y2xhc3MgSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgfkl0
ZW1CdWZmZXJXcml0aW5nQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB+SXRlbUJ1ZmZlcldyaXRp
bmdDbGllbnQoKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIEl0ZW1CdWZmZXJIYW5kbGUg
Y3JlYXRlSXRlbUJ1ZmZlcihzaXplX3QpCisgICAgeworICAgICAgICByZXR1cm4geyB9OworICAg
IH0KIAotICAgIHZpcnR1YWwgSXRlbUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVtQnVmZmVyKHNpemVf
dCkgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbShJdGVt
SGFuZGxlKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFwcGVuZERhdGEoY29uc3Qg
SXRlbUJ1ZmZlckhhbmRsZSYsIHNpemVfdCBudW1iZXJPZkJ5dGVzLCBEaWRDaGFuZ2VJdGVtQnVm
ZmVyKSA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxzdGQ6OnNpemVfdD4gcmVxdWlyZWRTaXpl
Rm9ySXRlbShJdGVtSGFuZGxlKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0
ZW1PdXRPZkxpbmUoSXRlbUhhbmRsZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVJdGVtSW5saW5lKEl0ZW1IYW5k
bGUsIHVpbnQ4X3QqKSBjb25zdAorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90IG51bWJlck9mQnl0ZXMs
IERpZENoYW5nZUl0ZW1CdWZmZXIpCisgICAgeworICAgICAgICBVTlVTRURfUEFSQU0obnVtYmVy
T2ZCeXRlcyk7CisgICAgfQogfTsKIAogY2xhc3MgSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQgewog
cHVibGljOgotICAgIHZpcnR1YWwgfkl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50KCkgeyB9CisgICAg
dmlydHVhbCB+SXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQoKQorICAgIHsKKyAgICB9CiAKICAgICB2
aXJ0dWFsIE9wdGlvbmFsPEl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGVJdGVt
KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBJdGVtVHlwZSwgdWludDhf
dCogaGFuZGxlTG9jYXRpb24pID0gMDsKIH07CkBAIC0xNDksOSArMTczLDEwIEBAIHB1YmxpYzoK
ICAgICAvLyBkYXRhIGJhY2sgaW50byBhbiBpdGVtIG9mIHR5cGUgVC4KICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBjbGFzcy4uLiBBcmdzPiB2b2lkIGFwcGVuZChBcmdzJiYuLi4gYXJncykKICAg
ICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxl
PFQ+Ojp2YWx1ZSB8fCAhVDo6aXNJbmxpbmVJdGVtKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVlID09IFQ6OmlzSW5saW5lSXRl
bSk7CiAKLSAgICAgICAgaWYgKCFUOjppc0lubGluZUl0ZW0gJiYgbV93cml0aW5nQ2xpZW50KSB7
CisgICAgICAgIGlmICghVDo6aXNJbmxpbmVJdGVtKSB7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChtX3dyaXRpbmdDbGllbnQpOwogI2lmIENPTVBJTEVSKE1TVkMpCiAgICAgICAgICAgICBf
X2RlY2xzcGVjKGFsaWduKDgpKSB0eXBlZGVmIHVpbnQ4X3QgRW5jb2RpbmdCdWZmZXJbc2l6ZW9m
KHVpbnQ2NF90KSArIHNpemVvZihUKV07CiAjZWxzZQpAQCAtMTY3LDkgKzE5Miw2IEBAIHB1Ymxp
YzoKIAogICAgICAgICBhdXRvIGJ1ZmZlckNoYW5nZWQgPSBzd2FwV3JpdGFibGVCdWZmZXJJZk5l
ZWRlZChwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoVDo6aXRlbVR5cGUpKTsKIAotICAg
ICAgICBpZiAoIXN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpCi0gICAg
ICAgICAgICBtX2l0ZW1zVG9EZXN0cm95SW5BbGxvY2F0ZWRCdWZmZXJzLmFwcGVuZCh7ICZtX3dy
aXRhYmxlQnVmZmVyLmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gfSk7Ci0KICAgICAgICAg
dW5jaGVja2VkQXBwZW5kPFQ+KGJ1ZmZlckNoYW5nZWQsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdz
KS4uLik7CiAgICAgfQogCkBAIC0xOTQsNyArMjE2LDYgQEAgcHJpdmF0ZToKIAogICAgIEl0ZW1C
dWZmZXJSZWFkaW5nQ2xpZW50KiBtX3JlYWRpbmdDbGllbnQgeyBudWxscHRyIH07CiAgICAgSXRl
bUJ1ZmZlcldyaXRpbmdDbGllbnQqIG1fd3JpdGluZ0NsaWVudCB7IG51bGxwdHIgfTsKLSAgICBW
ZWN0b3I8SXRlbUhhbmRsZT4gbV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVyczsKICAg
ICBWZWN0b3I8dWludDhfdCo+IG1fYWxsb2NhdGVkQnVmZmVyczsKICAgICBJdGVtQnVmZmVySGFu
ZGxlcyBtX3JlYWRPbmx5QnVmZmVyczsKICAgICBJdGVtQnVmZmVySGFuZGxlIG1fd3JpdGFibGVC
dWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggZDE3
MzdhMjc5YzM5N2UwOTA5M2QxMzg0MzNkYjM4NDdkNmY0NzQ5Mi4uM2NlMzVkNDdkYTJmMzNiMTA3
YTRiMTNkMDBkNDUzZjM1MmYzNjVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
cGxheWVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5
TGlzdC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3Ry
ZWFtLmg+CiAKQEAgLTE3OSw5ICsxODAsOSBAQCBSZXBsYXlSZXN1bHQgUmVwbGF5ZXI6OnJlcGxh
eShjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBib29sIHRyYWNrUmVwbGF5TGlzdAogICAg
IExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZXBsYXlpbmcgd2l0
aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwogICAgIFVOVVNFRF9QQVJBTShpbml0aWFsQ2xpcCk7
CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHJlcGxheUxpc3Q7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEluTWVtb3J5RGlzcGxheUxpc3Q+IHJlcGxheUxpc3Q7CiAgICAgaWYgKFVO
TElLRUxZKHRyYWNrUmVwbGF5TGlzdCkpCi0gICAgICAgIHJlcGxheUxpc3QgPSBtYWtlVW5pcXVl
PERpc3BsYXlMaXN0PigpOworICAgICAgICByZXBsYXlMaXN0ID0gbWFrZVVuaXF1ZTxJbk1lbW9y
eURpc3BsYXlMaXN0PigpOwogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIHNpemVfdCBpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCmluZGV4IDE4MWExMmIwZTUxOGU4
ZGMyMWQzYjc0OWYyNzEwMWQyYTNlOTZmMzkuLmU3ZjE0MmZhZmYyMDFmZjdiNzVkY2IxZjU5NDQ4
ZmFiMzFkNWYwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw3
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNp
bmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ3LDcgKzQ3LDcgQEAg
ZW51bSBjbGFzcyBTdG9wUmVwbGF5UmVhc29uIDogdWludDhfdCB7CiB9OwogCiBzdHJ1Y3QgUmVw
bGF5UmVzdWx0IHsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHRyYWNrZWREaXNw
bGF5TGlzdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5TGlzdD4gdHJhY2tl
ZERpc3BsYXlMaXN0OwogICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCB7IDAgfTsKICAgICBP
cHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IG5leHREZXN0aW5hdGlvbkltYWdl
QnVmZmVyOwogICAgIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gbWlzc2lu
Z0NhY2hlZFJlc291cmNlSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3Bs
YXlMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTdjNzliMDViYmUwZDk0MWI0NWRkYjU1YzA5YjQ0Yjg0
MjI4MTY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5TGlzdC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitPcHRpb25hbDxzdGQ6OnNpemVf
dD4gSW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXplRm9ySXRl
bShJdGVtSGFuZGxlIGl0ZW1IYW5kbGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhZGRlZFNpemVP
ZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVtSGFuZGxlLnR5cGUoKSk7Cit9CisKK3ZvaWQgSW5NZW1v
cnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZShJdGVtSGFuZGxl
IGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGxvY2F0aW9uKSBjb25zdAoreworICAgIGl0ZW1IYW5kbGUu
c2FmZUNvcHkoeyBsb2NhdGlvbiB9KTsKK30KKworT3B0aW9uYWw8SXRlbUhhbmRsZT4gV0FSTl9V
TlVTRURfUkVUVVJOIEluTWVtb3J5RGlzcGxheUxpc3Q6OlJlYWRpbmdDbGllbnQ6OmRlY29kZUl0
ZW0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIEl0ZW1UeXBlIHR5cGUs
IHVpbnQ4X3QqIGhhbmRsZUxvY2F0aW9uKQoreworICAgIGNvbnN0IEl0ZW1IYW5kbGUgZGF0YUhh
bmRsZSB7IGNvbnN0X2Nhc3Q8dWludDhfdCo+KGRhdGEpIH07CisgICAgQVNTRVJUX1VOVVNFRCh0
eXBlLCBkYXRhSGFuZGxlLnR5cGUoKSA9PSB0eXBlKTsKKyAgICBBU1NFUlRfVU5VU0VEKGRhdGFM
ZW5ndGgsIGRhdGFMZW5ndGggPj0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGRhdGFI
YW5kbGUudHlwZSgpKSk7CisgICAgSXRlbUhhbmRsZSByZXN1bHQgeyBoYW5kbGVMb2NhdGlvbiB9
OworICAgIGlmIChkYXRhSGFuZGxlLnNhZmVDb3B5KHJlc3VsdCkpCisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKworSW5NZW1vcnlEaXNwbGF5TGlz
dDo6SW5NZW1vcnlEaXNwbGF5TGlzdCgpCisgICAgOiBtX3dyaXRpbmdDbGllbnQoV1RGOjptYWtl
VW5pcXVlPFdyaXRpbmdDbGllbnQ+KCkpCisgICAgLCBtX3JlYWRpbmdDbGllbnQoV1RGOjptYWtl
VW5pcXVlPFJlYWRpbmdDbGllbnQ+KCkpCit7CisgICAgc2V0SXRlbUJ1ZmZlckNsaWVudChtX3dy
aXRpbmdDbGllbnQuZ2V0KCkpOworICAgIHNldEl0ZW1CdWZmZXJDbGllbnQobV9yZWFkaW5nQ2xp
ZW50LmdldCgpKTsKK30KKworSW5NZW1vcnlEaXNwbGF5TGlzdDo6fkluTWVtb3J5RGlzcGxheUxp
c3QoKQoreworICAgIGF1dG8gZW5kID0gdGhpcy0+ZW5kKCk7CisgICAgZm9yIChhdXRvIGl0ZXJh
dG9yID0gdGhpcy0+YmVnaW4oKTsgaXRlcmF0b3IgIT0gZW5kOyArK2l0ZXJhdG9yKSB7CisgICAg
ICAgIGF1dG8gdmFsdWUgPSAqaXRlcmF0b3I7CisgICAgICAgIEFTU0VSVCh2YWx1ZS5pdGVtKTsK
KyAgICAgICAgaWYgKCF2YWx1ZS5pdGVtKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHZh
bHVlLml0ZW0tPmRlc3Ryb3koKTsKKyAgICB9Cit9CisKK30KK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlM
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5N
ZW1vcnlEaXNwbGF5TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MGE2OTM5N2RkZGQ4NTYxNWM1ZDRmOWMz
YzgxODZkYTZlZTE3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNpbmNsdWRlIDxtZW1v
cnk+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CisKK2Ns
YXNzIEluTWVtb3J5RGlzcGxheUxpc3QgOiBwdWJsaWMgRGlzcGxheUxpc3QgeworcHVibGljOgor
ICAgIFdFQkNPUkVfRVhQT1JUIEluTWVtb3J5RGlzcGxheUxpc3QoKTsKKworICAgIFdFQkNPUkVf
RVhQT1JUIH5Jbk1lbW9yeURpc3BsYXlMaXN0KCk7CisKKyAgICBjbGFzcyBXRUJDT1JFX0VYUE9S
VCBXcml0aW5nQ2xpZW50IDogcHVibGljIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IHsKKyAgICAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgcHJpdmF0ZToKKyAgICAgICAgT3B0aW9u
YWw8c3RkOjpzaXplX3Q+IHJlcXVpcmVkU2l6ZUZvckl0ZW0oSXRlbUhhbmRsZSkgY29uc3QgZmlu
YWw7CisgICAgICAgIHZvaWQgZW5jb2RlSXRlbUlubGluZShJdGVtSGFuZGxlLCB1aW50OF90Kikg
Y29uc3QgZmluYWw7CisgICAgfTsKKworICAgIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJlYWRpbmdD
bGllbnQgOiBwdWJsaWMgSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQgeworICAgICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwcml2YXRlOgorICAgICAgICBPcHRpb25hbDxJdGVtSGFu
ZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gZGVjb2RlSXRlbShjb25zdCB1aW50OF90Kiwgc2l6ZV90
LCBJdGVtVHlwZSwgdWludDhfdCopIGZpbmFsOworICAgIH07CisKK3ByaXZhdGU6CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50PiBtX3dyaXRpbmdDbGllbnQ7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50PiBtX3JlYWRpbmdDbGll
bnQ7Cit9OworCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR2x5
cGhEaXNwbGF5TGlzdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR2x5cGhEaXNw
bGF5TGlzdENhY2hlLmgKaW5kZXggMmIyZjIyM2ExMzUxNjE2MmIxMGQ3MTU0ZGNlYTJhNjg1Njli
YjNmYS4uYTE1YTc0NDg1YTVmM2NjMTkyNjUwMjJkYjU1MmY2MmY5NzQxY2ZiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dseXBoRGlzcGxheUxpc3RDYWNoZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HbHlwaERpc3BsYXlMaXN0Q2FjaGUuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw4ICsy
NSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKICNpbmNs
dWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkluTWVtb3J5RGlzcGxheUxpc3QuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRl
OgotICAgIHVzaW5nIEdseXBoUnVuTWFwID0gSGFzaE1hcDxjb25zdCBMYXlvdXRSdW4qLCBzdGQ6
OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Pj47CisgICAgdXNpbmcgR2x5cGhS
dW5NYXAgPSBIYXNoTWFwPGNvbnN0IExheW91dFJ1biosIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5
TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4+OwogICAgIEdseXBoUnVuTWFwIG1fZ2x5cGhSdW5N
YXA7CiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCA1YmJmMjU2MzA2
MjkwZTQ5YWM4ZGIzMWI1ZDAxYWM5NmI1NmFhYzQyLi45YzY0NmIxZDUyYjU3YmFlOTBhMTRjMGNm
NzRiNjZlMmY5YzYyMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMSw2ICsx
MDEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5jYWNoZUltYWdlQnVmZmVyKCp0aGlzKTsKIAog
ICAgICAgICBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCkuc2V0SXRlbUJ1ZmZlckNsaWVu
dCh0aGlzKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnNldEl0ZW1C
dWZmZXJDbGllbnQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJS
ZWFkaW5nQ2xpZW50Kj4obnVsbHB0cikpOwogICAgICAgICBtX2RyYXdpbmdDb250ZXh0LmRpc3Bs
YXlMaXN0KCkuc2V0VHJhY2tzRHJhd2luZ0l0ZW1FeHRlbnRzKGZhbHNlKTsKICAgICB9CiAKQEAg
LTI5Miw3ICsyOTMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkuY2FjaGVGb250KGZvbnQp
OwogICAgIH0KIAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySGFuZGxlIGNy
ZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90IGNhcGFjaXR5KSBvdmVycmlkZQorICAgIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtQnVmZmVySGFuZGxlIGNyZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90IGNhcGFj
aXR5KSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKExJS0VMWShtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSkpCiAgICAgICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHktPmNyZWF0ZUl0ZW1CdWZmZXIoY2FwYWNpdHksIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKQEAgLTMwMSw3ICszMDIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiB7
IH07CiAgICAgfQogCi0gICAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRl
bShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZSBpdGVtKSBjb25zdCBvdmVycmlkZQor
ICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSkgY29uc3QgZmluYWwKICAgICB7CiAg
ICAgICAgIC8qIFRoaXMgbmVlZHMgdG8gbWF0Y2ggKDEpIGlzSW5saW5lSXRlbSgpIGluIERpc3Bs
YXlMaXN0SXRlbVR5cGUuY3BwLCAoMikgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRl
bSgpLAogICAgICAgICAgKiBhbmQgKDMpIGFsbCB0aGUgInN0YXRpYyBjb25zdGV4cHIgYm9vbCBp
c0lubGluZUl0ZW0icyBpbnNpZGUgdGhlIGluZGl2aWR1YWwgaXRlbSBjbGFzc2VzLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgyNmFiMTk2Y2Nj
ZmU2ODJkZWYzNDlmNmU1YTFjNjhmYmQzOTU4ZjQuLmZmMmUwNDkxMTRmMzkyMDI5ZmQyMGMyM2Jk
Yjk1NTViYTc3NWQ1ZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0yOCAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gU2ltcGxpZnkg
RGlzcGxheUxpc3Q6Okl0ZXJhdG9yIHBhcnQgMTogUmVxdWlyZSBlbmNvZGluZy9kZWNvZGluZyBk
ZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlz
dFRlc3RzQ0cuY3BwOgorCiAyMDIxLTAzLTI3ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZpeCBhIGJ1ZyB0aGF0IGh0dHAgc2VydmVyIGZvciBydW4tYmVuY2ht
YXJrIHNjcmlwdCBkb2VzIG5vdCB3b3JrIG9uIHB5dGhvbjMuCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXggMWNl
MTQ2MjhjZWQ1ZTAwNjQyNWQyZWMyOWYxZGUwZWI3MWZlMTM3NC4uMmU1M2JiODExZTNiYzJkZjM5
MTA2ZjFkNTkxMzdkNzlhMjIzYTdhMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxp
c3RJdGVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGllbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0luTWVtb3J5RGlzcGxheUxpc3QuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01OCw3ICs1OSw3IEBAIHN0YXRpYyBQYXRoIGNy
ZWF0ZUNvbXBsZXhQYXRoKCkKIAogVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykK
IHsKLSAgICBEaXNwbGF5TGlzdCBsaXN0OworICAgIEluTWVtb3J5RGlzcGxheUxpc3QgbGlzdDsK
IAogICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKIApAQCAtMTk4LDE1ICsxOTksMTMg
QEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogICAgICAgICAgICAg
cmV0dXJuIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgZ2xvYmFs
SXRlbUJ1ZmZlckNhcGFjaXR5IH07CiAgICAgICAgIH0KIAotICAgICAgICBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBlbmNvZGVJdGVtKEl0ZW1IYW5kbGUgaGFuZGxlKSBjb25zdCBmaW5hbAorICAgICAg
ICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0ZW1IYW5kbGUgaGFu
ZGxlKSBjb25zdCBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBhdXRvIGluZGV4ID0gbV9p
dGVtcy5zaXplKCk7CiAgICAgICAgICAgICBtX2l0ZW1zLmFwcGVuZChoYW5kbGUuZ2V0PFN0cm9r
ZVBhdGg+KCkpOwogICAgICAgICAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZpbmRleCksIHNpemVvZihzaXplX3QpKTsKICAgICAgICAg
fQogCi0gICAgICAgIHZvaWQgZGlkQXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwg
c2l6ZV90LCBEaWRDaGFuZ2VJdGVtQnVmZmVyKSBmaW5hbCB7IH0KLQogICAgICAgICBWZWN0b3I8
U3Ryb2tlUGF0aD4mIG1faXRlbXM7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAppbmRl
eCBiNTY5ZjM0MDdlMDc1MTVmNjJlMTkwMWVlMDIyZDQxOTQ3ZmYzODlhLi4zYjMyMjc4MDYwOWRm
OGYzODg1Zjc4ZWMzODk4NTRlMDA1MmUxODA2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDAs
OCArMTAwLDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB7IGdsb2JhbEJ1ZmZlcklkZW50
aWZpZXIsIGdsb2JhbEl0ZW1CdWZmZXIsIGdsb2JhbEl0ZW1CdWZmZXJDYXBhY2l0eSB9OwogICAg
IH0KIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW0oSXRlbUhhbmRsZSkgY29u
c3QgZmluYWwgeyByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsgfQotICAgIHZvaWQgZGlk
QXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90LCBEaWRDaGFuZ2VJdGVt
QnVmZmVyKSBmaW5hbCB7IH0KKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0
T2ZMaW5lKEl0ZW1IYW5kbGUpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gU2hh
cmVkQnVmZmVyOjpjcmVhdGUoKTsKKyAgICB9CiB9OwogCiBURVNUKERpc3BsYXlMaXN0VGVzdHMs
IE91dE9mTGluZUl0ZW1EZWNvZGluZ0ZhaWx1cmUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424527</attachid>
            <date>2021-03-28 23:30:17 -0700</date>
            <delta_ts>2021-04-02 08:22:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223849-20210328233017.patch</filename>
            <type>text/plain</type>
            <size>47530</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlOTY0ODEwMGUyMDI3
YTIyZDk3YWMzMzhmZjZjODUwYzQwNGM0Ni4uMGVkODc0MzBkNjFmZmNmNTM0ZTIyYmQzMzcxM2I5
YmM3OTdlZjliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIxLTAzLTI4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCAxOiBSZXF1aXJlIGVuY29k
aW5nL2RlY29kaW5nIGRlbGVnYXRlcyBmb3Igbm9uLWlubGluZSBkaXNwbGF5IGxpc3QgaXRlbXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcXVpcmlu
ZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIGhhcyB0aGVzZSBh
ZHZhbnRhZ2VzOgorICAgICAgICAtIERpc3BsYXlMaXN0OjpJdGVyYXRvcjo6dXBkYXRlQ3VycmVu
dEl0ZW0oKSBvbmx5IGhhcyAyIGNvZGVwYXRocyBpbnN0ZWFkIG9mIDMuCisgICAgICAgIC0gSXRl
bUJ1ZmZlcjo6bV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycyBjYW4gYmUgZGVsZXRl
ZCBlbnRpcmVseS4KKyAgICAgICAgLSBUaGUgY29uZGl0aW9uYWwgaW5zaWRlIEl0ZW1CdWZmZXI6
OmFwcGVuZCgpIGNhbiBiZSBzaW1wbGlmaWVkIGZyb20KKyAgICAgICAgICAgICAgIVQ6OmlzSW5s
aW5lSXRlbSAmJiBtX3dyaXRpbmdDbGllbnQgdG8ganVzdCAhVDo6aXNJbmxpbmVJdGVtLCB3aGlj
aCBJIHRoaW5rIG1ha2VzIHRoZQorICAgICAgICAgICAgICBmdW5jdGlvbiBzaWduaWZpY2FudGx5
IG1vcmUgcmVhZGFibGUuCisKKyAgICAgICAgVGhlcmUgYXJlIGEgZmV3IHBsYWNlcyB3aGVyZSB3
ZSB3ZXJlIHVzaW5nIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zIHdpdGhvdXQgYSBkZWxl
Z2F0ZToKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHR3byBuZXcgIm51bGwiIGRlbGVnYXRlcywg
YW5kIGhvb2tzIHRoZW0gdXAgdG8gYSBzdWJjbGFzcyBvZiBEaXNwbGF5TGlzdCwKKyAgICAgICAg
Y2FsbGVkIEluTWVtb3J5RGlzcGxheUxpc3QuIENsaWVudHMgd2hvIHdhbnQgdG8gdXNlIGluLW1l
bW9yeSBkaXNwbGF5IGxpc3RzIChsaWtlIHRoZQorICAgICAgICBEcmF3R2x5cGhzIGNhY2hlKSBj
YW4ganVzdCB1c2UgdGhpcyBjbGFzcywgYW5kIHJldGFpbiB0aGVpciBjYWxsaW5nIHBhdHRlcm4g
dGhleSB3ZXJlIHVzaW5nCisgICAgICAgIGJlZm9yZS4gQWxzbywgdGhpcyBwYXRjaCBhZGRzIElu
TWVtb3J5RGlzcGxheUxpc3Qgd2l0aG91dCBhZGRpbmcgYW55IHZpcnR1YWwgZnVuY3Rpb25zIHRv
CisgICAgICAgIERpc3BsYXlMaXN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRo
ZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYXNjYWRlOjpkaXNwbGF5TGlzdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fz
Y2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6aXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnRJdGVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5n
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0
OjpyZXBsYXllZERpc3BsYXlMaXN0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29weUludG8pOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6Okl0ZW1CdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6bV9hbGxvY2F0ZWRCdWZmZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6fkl0ZW1CdWZmZXJX
cml0aW5nQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVy
V3JpdGluZ0NsaWVudDo6Y3JlYXRlSXRlbUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZvckl0ZW0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xp
ZW50OjplbmNvZGVJdGVtT3V0T2ZMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6
OmRpZEFwcGVuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZm
ZXI6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
cGxheWVyOjpyZXBsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1
aXJlZFNpemVGb3JJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
bk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtSW5saW5lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpS
ZWFkaW5nQ2xpZW50OjpkZWNvZGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0Ojp+SW5NZW1vcnlEaXNwbGF5
TGlzdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5
RGlzcGxheUxpc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmg6CisKIDIwMjEtMDMtMjggIFNhbSBXZWlu
aWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5oL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBmcm9tIHRoZSBYY29kZSBwcm9q
ZWN0IGFzIHRoZXkgZG9uJ3QgZXhpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTQ3YWFiNmI4YTJkNGU0MmFjZTYz
ZmJiMmUxNmViNjI3ZDVkNmNjMy4uMDA0ZTNhOTMwYzA3YjMwZDMzMWU3YmE3OWZhNDNmZTExYTIx
ZTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wMy0yOCAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gU2lt
cGxpZnkgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yIHBhcnQgMTogUmVxdWlyZSBlbmNvZGluZy9kZWNv
ZGluZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0ZW1zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKwogMjAyMS0wMy0yOCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFICYgRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUywgaXQgc2VlbXMg
bGlrZSBpdCBpcyBvbiBmb3IgYWxsIHBvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBkNGI5NzA4
MjRkNWRjODVhY2MzZDk5MTI0OWRhNjEzOTVkMzBhMDUwLi5jYjI3OTcyZmYxZGEzYzlmNjA3NDQz
Y2FkODQzNzYyMjM0NWM2N2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzMjAsNiArMTMyMCw3
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCiAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCA3ZTE4MDU1ZDNjMzcxNTQ3ODQwNWZmMzlhNTVjYzk5MTgzY2I2ZWM4Li42YTEwNmUyMDNjY2Zl
NDc5NzFhNDlmMjc2MTBkODUxMjAxNTlmZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjAyNyw2ICsy
MDI3LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1
ZmZlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXll
ci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2UxM2ViYjM3ZWNmYWE0NTQ4MTBjNTVmOWQy
NDNjNWVjZDEyMjczMy4uMjdjM2RlYmI2MDc3OTkyZGU4YWJiZDVhZjI3MjY2ODQ5MzhmZWIxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjM0LDYgKzYzNCw3IEBACiAJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBEaXNw
bGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNBRjU2RDgyNTMwMTQ1NzAwMTdCNDcyIC8qIERpc3BsYXlMaXN0
RHJhd0dseXBoc1JlY29yZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUNDRDgxNTAyMjMxRjgzRTAwNjVGQzJCIC8qIFdlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTI1NTE0MTZGRDIzNEYwMDNEN0FEQiAvKiBXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gKi87IH07CiAJCTFD
Q0RGNUJFMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRDb252ZXJzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0NERjVCQzE5OTAzMzI0
MDBCQ0VCQUQgLyogU1ZHVG9PVEZGb250Q29udmVyc2lvbi5oICovOyB9OworCQkxQ0U4ODY0MTI2
MTA1QkYyMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNFODg2M0YyNjEwNUE1RjAwMEM4MTZDIC8q
IEluTWVtb3J5RGlzcGxheUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxp
YiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkFF
MzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovOyB9OwogCQkxRDAwMjZBNDIz
NzRENjI0MDBDQTZDREYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAwMjZBMjIzNzRENjIzMDBDQTZD
REYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggKi87IH07CiAJCTFEMDAyNkFBMjM3NEY5
RUEwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAwMjZBODIzNzRGOUQ5MDBDQTZD
REYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovOyB9OwpAQCAtNjkyNiw2ICs2
OTI3LDggQEAKIAkJMUNERDQ1RTQwQkE5Qzg0NjAwRjkwMTQ3IC8qIERlYnVnUmVsZWFzZS54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBEZWJ1Z1JlbGVhc2UueGNjb25m
aWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDREQ0NUU1MEJBOUM4NDYwMEY5MDE0
NyAvKiBXZWJDb3JlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdl
YkNvcmUueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDREQ0NUU2MEJB
OUM4NDYwMEY5MDE0NyAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsg
cGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRTg4
NjNFMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluTWVtb3J5RGlzcGxheUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0U4ODYzRjI2MTA1QTVGMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbk1lbW9yeURpc3BsYXlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDRUNCM0E4MjFGMkI2NzMwMEY0NDU0MiAvKiBXSExTTFN0YXRlbWVudEJl
aGF2aW9yQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTFN0YXRlbWVudEJlaGF2aW9yQ2hl
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0VDQjNBOTIxRjJCNjczMDBG
NDQ1NDIgLyogV0hMU0xTdGF0ZW1lbnRCZWhhdmlvckNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0hMU0xTdGF0ZW1lbnRCZWhhdmlvckNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0VDQjNBRjIxRjJCOTg0MDBGNDQ1NDIgLyogV0hMU0xGdW5jdGlvbldy
aXRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTEZ1bmN0aW9uV3JpdGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MDY1LDYgKzE4MDY4LDggQEAKIAkJCQkwRkU1
RkJDRjFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZWNvcmRlci5oICovLAogCQkJCTBG
RTVGQkQwMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmNwcCAqLywKIAkJ
CQkwRkU1RkJEMTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZXBsYXllci5oICovLAor
CQkJCTFDRTg4NjNFMjYxMDVBNUYwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmNwcCAq
LywKKwkJCQkxQ0U4ODYzRjI2MTA1QTVGMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBkaXNwbGF5bGlzdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtMzI4MjgsNiArMzI4MzMsNyBAQAogCQkJCUJDRUE0ODVBMDk3RDkzMDIwMDk0
QzlFNCAvKiBJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzAxMDcwMTE5MjU5
NERGMDA4QTQyMDEgLyogSW5saW5lVGV4dEJveFN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2
RjFDQzFERTIyNUY4QjQ5MDA3MjBBRDIgLyogSW5saW5lVGV4dEl0ZW0uaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDRTg4NjQxMjYxMDVCRjIwMDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRUI3Njc1NzFEQTE5QkRGMDAzRTIzQjUgLyogSW5wdXRFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTUyRUZERjQyMTEyODc1QTAwQUQyODJBIC8qIElucHV0
TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdFMzUyNEQxMjQ1MEM2NjAwQkFGNUQ5IC8qIElu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCmluZGV4IDA2ZmY1MTUyYTg0NWNhMDkzOTc4MWUyN2E2MmRmMzRhYjE0M2ZkYmYu
LjljZTk5ZjM2YTczNzgzMTNkODgyZWFiN2FiNWNkZDViZDAxNjM1MTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJ
bWFnZURhdGEuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlv
bmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAppbmRleCA1Y2VhNzQ1MmQ1ZmYy
ZTZjYjVmM2UxMTY2NTk3Yjc5ZmQ4ZjczZDdkLi43ZDNlYjkxMjg1YTEyYjc5MGVlMjlhYmQ4OGY0
NmIxNWI5Njc1ZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRm9udENhY2hlLmgi
CiAjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
KyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5o
IgogI2luY2x1ZGUgIlN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUg
IlRleHRSdW4uaCIKQEAgLTIxMCw3ICsyMTEsNyBAQCB2b2lkIEZvbnRDYXNjYWRlOjpkcmF3RW1w
aGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1bgog
ICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBzdGFydFBv
aW50KTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4gRm9u
dENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFRleHRSdW4mIHJ1biwgdW5zaWduZWQgZnJvbSwgT3B0aW9uYWw8dW5zaWduZWQ+IHRv
LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24gY3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uKSBjb25z
dAorc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBGb250
Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgVGV4dFJ1biYgcnVuLCB1bnNpZ25lZCBmcm9tLCBPcHRpb25hbDx1bnNpZ25lZD4gdG8s
IEN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbiBjdXN0b21Gb250Tm90UmVhZHlBY3Rpb24pIGNvbnN0
CiB7CiAgICAgQVNTRVJUKCFjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSk7CiAgICAgdW5zaWdu
ZWQgZGVzdGluYXRpb24gPSB0by52YWx1ZU9yKHJ1bi5sZW5ndGgoKSk7CkBAIC0yMjYsNyArMjI3
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4gRm9udENhc2Nh
ZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmEKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0PigpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6
SW5NZW1vcnlEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0
OjpJbk1lbW9yeURpc3BsYXlMaXN0PigpOwogICAgIEdyYXBoaWNzQ29udGV4dCByZWNvcmRpbmdD
b250ZXh0KFsmXShHcmFwaGljc0NvbnRleHQmIGRpc3BsYXlMaXN0Q29udGV4dCkgewogICAgICAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxEaXNwbGF5TGlzdDo6UmVjb3JkZXI+KGRpc3BsYXlMaXN0Q29u
dGV4dCwgKmRpc3BsYXlMaXN0LCBjb250ZXh0LnN0YXRlKCksIEZsb2F0UmVjdCgpLCBBZmZpbmVU
cmFuc2Zvcm0oKSwgbnVsbHB0ciwgRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RHJh
d0dseXBoc0RlY29uc3RydWN0aW9uOjpEb250RGVjb25zdHJ1Y3QpOwogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKaW5kZXggNjZiNmYx
M2FkMzMwMmQ2MmRiYzk1MDIzMDM4ZGJmNDZlMjhjMTkyMC4uMWVmOWU3NmZmMTZkNDA4ZjU3Nzg4
ZmZiY2ZkODZkNTc1NTVhYmUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FzY2FkZS5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFRleHRMYXlvdXQ7CiBj
bGFzcyBUZXh0UnVuOwogCiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewotY2xhc3MgRGlzcGxheUxp
c3Q7CitjbGFzcyBJbk1lbW9yeURpc3BsYXlMaXN0OwogfQogICAgIAogc3RydWN0IEdseXBoRGF0
YTsKQEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgZmxvYXQgc3ludGhl
dGljT2JsaXF1ZUFuZ2xlKCkgeyByZXR1cm4gMTQ7IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q+IGRpc3BsYXlMaXN0Rm9yVGV4dFJ1bihHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBUZXh0UnVuJiwgdW5zaWduZWQgZnJvbSA9IDAsIE9wdGlvbmFsPHVuc2ln
bmVkPiB0byA9IHsgfSwgQ3VzdG9tRm9udE5vdFJlYWR5QWN0aW9uID0gQ3VzdG9tRm9udE5vdFJl
YWR5QWN0aW9uOjpEb05vdFBhaW50SWZGb250Tm90UmVhZHkpIGNvbnN0OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3RGb3JU
ZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFRleHRSdW4mLCB1bnNpZ25lZCBmcm9tID0g
MCwgT3B0aW9uYWw8dW5zaWduZWQ+IHRvID0geyB9LCBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb24g
PSBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb246OkRvTm90UGFpbnRJZkZvbnROb3RSZWFkeSkgY29u
c3Q7CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShDRykKICAgICBzdGF0aWMgdm9pZCBzZXRG
b250U21vb3RoaW5nTGV2ZWwoaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDY2MWFiNDU3MjE0OTg5
Nzc2ZWExYTBmZWJmYTk0NTdkMzQxM2UwMWMuLjRlNTcxZDhjZmJiODM1YmI1ZmE5OWFhNzE0YTZh
NzA4MWQ3NzUzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJGYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1vZGVsLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUZpbHRl
cnMuaCIKQEAgLTQwMiw3ICs0MDMsNyBAQCBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhp
Y3NMYXllckNBOjpjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbgogI2VuZGlm
CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxjb25zdCBHcmFwaGljc0xheWVyQ0EqLCBzdGQ6OnBhaXI8
RmxvYXRSZWN0LCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Pj4+IExh
eWVyRGlzcGxheUxpc3RIYXNoTWFwOwordHlwZWRlZiBIYXNoTWFwPGNvbnN0IEdyYXBoaWNzTGF5
ZXJDQSosIHN0ZDo6cGFpcjxGbG9hdFJlY3QsIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6
SW5NZW1vcnlEaXNwbGF5TGlzdD4+PiBMYXllckRpc3BsYXlMaXN0SGFzaE1hcDsKIAogc3RhdGlj
IExheWVyRGlzcGxheUxpc3RIYXNoTWFwJiBsYXllckRpc3BsYXlMaXN0TWFwKCkKIHsKQEAgLTE3
MTAsNyArMTcxMSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFu
Z2VzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZSwgY29uc3QgVHJhCiAgICAgaWYgKHVzZXNEaXNw
bGF5TGlzdERyYXdpbmcoKSAmJiBtX2RyYXdzQ29udGVudCAmJiAoIW1faGFzRXZlclBhaW50ZWQg
fHwgaGFkRGlydHlSZWN0cykpIHsKICAgICAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoRGlz
cGxheUxpc3RSZWNvcmRTdGFydCwgRGlzcGxheUxpc3RSZWNvcmRFbmQpOwogCi0gICAgICAgIG1f
ZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4oKTsKKyAg
ICAgICAgbV9kaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlz
cGxheUxpc3Q+KCk7CiAgICAgICAgIAogICAgICAgICBGbG9hdFJlY3QgaW5pdGlhbENsaXAoYm91
bmRzT3JpZ2luKCksIHNpemUoKSk7CiAKQEAgLTE3NDQsNyArMTc0NSw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKFBsYXRmb3JtQ0FMYXllcios
IEdyYXBoaWNzQ29uCiAgICAgICAgIAogICAgICAgICBpZiAoVU5MSUtFTFkoaXNUcmFja2luZ0Rp
c3BsYXlMaXN0UmVwbGF5KCkpKSB7CiAgICAgICAgICAgICBhdXRvIHJlcGxheUxpc3QgPSByZXBs
YXllci5yZXBsYXkoY2xpcCwgaXNUcmFja2luZ0Rpc3BsYXlMaXN0UmVwbGF5KCkpLnRyYWNrZWRE
aXNwbGF5TGlzdDsKLSAgICAgICAgICAgIGxheWVyRGlzcGxheUxpc3RNYXAoKS5hZGQodGhpcywg
c3RkOjpwYWlyPEZsb2F0UmVjdCwgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdD4+KGNsaXAsIFdURk1vdmUocmVwbGF5TGlzdCkpKTsKKyAgICAgICAgICAgIGxheWVyRGlz
cGxheUxpc3RNYXAoKS5hZGQodGhpcywgc3RkOjpwYWlyPEZsb2F0UmVjdCwgc3RkOjp1bmlxdWVf
cHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0Pj4oY2xpcCwgV1RGTW92ZShyZXBs
YXlMaXN0KSkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlcGxheWVyLnJlcGxheShj
bGlwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaAppbmRleCBiZmI2NTEyZTRlMjlkN2Q4MzZmZTEyYzlhZDlkMzQ3YjEx
NmYxNjM0Li5kMjgxZDk3MzMyMTMxOTg1NjA0YWMxOWFhYjZkMjg0YmM0NjM4NTNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuaApAQCAtNDEsNyArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2Ug
RGlzcGxheUxpc3QgewotY2xhc3MgRGlzcGxheUxpc3Q7CitjbGFzcyBJbk1lbW9yeURpc3BsYXlM
aXN0OwogfQogCiBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwpAQCAtNjMwLDcgKzYzMCw3IEBAIHBy
aXZhdGU6CiAKICAgICBWZWN0b3I8RmxvYXRSZWN0PiBtX2RpcnR5UmVjdHM7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBtX2Rpc3BsYXlMaXN0OworICAg
IHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4gbV9kaXNw
bGF5TGlzdDsKIAogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBv
c2UgeyBDb250ZW50c0xheWVyUHVycG9zZTo6Tm9uZSB9OwogICAgIGJvb2wgbV9pc0NvbW1pdHRp
bmdDaGFuZ2VzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IDViNTVi
ZWM4YzBhZTIxYTkyOTg0NWE0MTVkMTM1NzljMzY5YmQ1NDcuLmI4NjM0MGY3NjI5NGRhYjgyNDUz
MzE1NDAzNDJjZGQ4OTBjMjk5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNDcsMjgg
KzM0NywyNCBAQCB2b2lkIERpc3BsYXlMaXN0OjppdGVyYXRvcjo6dXBkYXRlQ3VycmVudEl0ZW0o
KQogICAgIH0gZWxzZQogICAgICAgICBtX2N1cnJlbnRFeHRlbnQgPSBXVEY6Om51bGxvcHQ7CiAK
LSAgICBhdXRvKiBjbGllbnQgPSBpdGVtcy5tX3JlYWRpbmdDbGllbnQ7CiAgICAgYXV0byBwYWRk
ZWRTaXplT2ZUeXBlQW5kSXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVt
VHlwZSk7Ci0gICAgaWYgKGNsaWVudCkgewotICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVt
ID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0gPD0gc2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJyZW50
SXRlbSA/IG1fZml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbSA6IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KGZhc3RNYWxsb2MocGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0pKTsKLSAgICAgICAgaWYg
KGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSghSXRl
bUhhbmRsZSB7IG1fY3Vyc29yIH0uc2FmZUNvcHkoeyBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtIH0p
KSkKLSAgICAgICAgICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgbV9j
dXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVpbnRlcnByZXRfY2Fz
dDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsKLSAgICAgICAgICAgIGF1dG8qIHN0YXJ0T2ZEYXRh
ID0gbV9jdXJzb3IgKyAyICogc2l6ZW9mKHVpbnQ2NF90KTsKLSAgICAgICAgICAgIGF1dG8gZGVj
b2RlZEl0ZW1IYW5kbGUgPSBjbGllbnQtPmRlY29kZUl0ZW0oc3RhcnRPZkRhdGEsIGRhdGFMZW5n
dGgsIGl0ZW1UeXBlLCBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtKTsKLSAgICAgICAgICAgIGlmIChV
TkxJS0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQotICAgICAgICAgICAgICAgIG1faXNWYWxpZCA9
IGZhbHNlOwotCi0gICAgICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtWzBdID0gc3RhdGlj
X2Nhc3Q8dWludDhfdD4oaXRlbVR5cGUpOwotICAgICAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJ
bkJ1ZmZlciA9IDIgKiBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGln
bm9mKHVpbnQ2NF90KSwgZGF0YUxlbmd0aCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAg
ICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtID0gbV9jdXJzb3I7CisgICAgbV9jdXJyZW50QnVm
ZmVyRm9ySXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtIDw9IHNpemVPZkZpeGVkQnVmZmVy
Rm9yQ3VycmVudEl0ZW0gPyBtX2ZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gOiByZWludGVycHJl
dF9jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtKSk7Cisg
ICAgaWYgKGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKCFJ
dGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29weSh7IG1fY3VycmVudEJ1ZmZlckZvckl0ZW0g
fSkpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisKICAgICAgICAgbV9jdXJyZW50
SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOworICAgIH0gZWxzZSB7
CisgICAgICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1fcmVhZGluZ0NsaWVudDsKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlQoY2xpZW50KTsKKyAgICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVpbnRl
cnByZXRfY2FzdDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsKKyAgICAgICAgYXV0byogc3RhcnRP
ZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWludDY0X3QpOworICAgICAgICBhdXRvIGRl
Y29kZWRJdGVtSGFuZGxlID0gY2xpZW50LT5kZWNvZGVJdGVtKHN0YXJ0T2ZEYXRhLCBkYXRhTGVu
Z3RoLCBpdGVtVHlwZSwgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSk7CisgICAgICAgIGlmIChVTkxJ
S0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7
CisKKyAgICAgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbVswXSA9IHN0YXRpY19jYXN0PHVpbnQ4
X3Q+KGl0ZW1UeXBlKTsKKyAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IDIgKiBz
aXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwg
ZGF0YUxlbmd0aCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
RHJhd2luZ0NvbnRleHQuaAppbmRleCA5NmU0YjFlZmY5ODFlNDIyNzlkNzQ2ZGM2YmIzOWM4YWE1
MjhlMTQ1Li5kMzdjMDczNWJlYjU1NDkyZDkwZmY5ZWNlNGNhNGRiNzk5NWQ1ZjU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsOCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAorY2xhc3Mg
SW5NZW1vcnlEaXNwbGF5TGlzdDsKKwogY2xhc3MgRHJhd2luZ0NvbnRleHQgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNDIsNyArNDQsNyBAQCBwdWJsaWM6CiAg
ICAgRGlzcGxheUxpc3QgdGFrZURpc3BsYXlMaXN0KCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZSht
X2Rpc3BsYXlMaXN0LCB7IH0pOyB9CiAgICAgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KCkgeyBy
ZXR1cm4gbV9kaXNwbGF5TGlzdDsgfQogICAgIGNvbnN0IERpc3BsYXlMaXN0JiBkaXNwbGF5TGlz
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3Q7IH0KLSAgICBjb25zdCBEaXNwbGF5TGlz
dCogcmVwbGF5ZWREaXNwbGF5TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGF5ZWREaXNwbGF5
TGlzdC5nZXQoKTsgfQorICAgIGNvbnN0IEluTWVtb3J5RGlzcGxheUxpc3QqIHJlcGxheWVkRGlz
cGxheUxpc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcGxheWVkRGlzcGxheUxpc3QuZ2V0KCk7IH0K
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXkoYm9v
bCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYXlEaXNwbGF5TGlzdChHcmFwaGljc0Nv
bnRleHQmKTsKQEAgLTUwLDcgKzUyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEdyYXBo
aWNzQ29udGV4dCBtX2NvbnRleHQ7CiAgICAgRGlzcGxheUxpc3QgbV9kaXNwbGF5TGlzdDsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IG1fcmVwbGF5ZWREaXNwbGF5TGlzdDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5TGlzdD4gbV9yZXBsYXllZERpc3BsYXlM
aXN0OwogICAgIGJvb2wgbV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSB7IGZhbHNlIH07CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAppbmRleCA0ZWI5NjQ4
NGM2OWY3NTkxYzZjNjljYThhNmZhNWY2MjM2ZDY3MDA0Li45MjhjMjQ5YjJkNDVmODRjOTA1MTA5
NDgwMmQzMjRjODMyNTRlNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdl
QnVmZmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNvbmNyZXRlSW1hZ2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAi
SW5NZW1vcnlEaXNwbGF5TGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2Ug
RGlzcGxheUxpc3QgewpAQCAtNTEsMTMgKzUyLDIxIEBAIHB1YmxpYzoKICAgICBJbWFnZUJ1ZmZl
cihjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIHN0ZDo6
dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kKQogICAgICAgICA6IEJhc2VDb25jcmV0
ZUltYWdlQnVmZmVyKHBhcmFtZXRlcnMsIFdURk1vdmUoYmFja2VuZCkpCiAgICAgICAgICwgbV9k
cmF3aW5nQ29udGV4dChsb2dpY2FsU2l6ZSgpLCBiYXNlVHJhbnNmb3JtKCkpCisgICAgICAgICwg
bV93cml0aW5nQ2xpZW50KFdURjo6bWFrZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0
aW5nQ2xpZW50PigpKQorICAgICAgICAsIG1fcmVhZGluZ0NsaWVudChXVEY6Om1ha2VVbmlxdWU8
SW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVhZGluZ0NsaWVudD4oKSkKICAgICB7CisgICAgICAgIG1f
ZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKS5zZXRJdGVtQnVmZmVyQ2xpZW50KG1fd3JpdGlu
Z0NsaWVudC5nZXQoKSk7CisgICAgICAgIG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKS5z
ZXRJdGVtQnVmZmVyQ2xpZW50KG1fcmVhZGluZ0NsaWVudC5nZXQoKSk7CiAgICAgfQogCiAgICAg
SW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBSZWNvcmRlcjo6RGVsZWdhdGUqIGRlbGVnYXRlID0gbnVsbHB0cikKICAgICAgICAgOiBC
YXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihwYXJhbWV0ZXJzKQogICAgICAgICAsIG1fZHJhd2luZ0Nv
bnRleHQobG9naWNhbFNpemUoKSwgYmFzZVRyYW5zZm9ybSgpLCBkZWxlZ2F0ZSkKKyAgICAgICAg
LCBtX3dyaXRpbmdDbGllbnQoV1RGOjptYWtlVW5pcXVlPEluTWVtb3J5RGlzcGxheUxpc3Q6Oldy
aXRpbmdDbGllbnQ+KCkpCisgICAgICAgICwgbV9yZWFkaW5nQ2xpZW50KFdURjo6bWFrZVVuaXF1
ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpSZWFkaW5nQ2xpZW50PigpKQogICAgIHsKKyAgICAgICAg
bV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnNldEl0ZW1CdWZmZXJDbGllbnQobV93cml0
aW5nQ2xpZW50LmdldCgpKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgp
LnNldEl0ZW1CdWZmZXJDbGllbnQobV9yZWFkaW5nQ2xpZW50LmdldCgpKTsKICAgICB9CiAKICAg
ICB+SW1hZ2VCdWZmZXIoKQpAQCAtODAsNiArODksOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoK
ICAgICBEcmF3aW5nQ29udGV4dCBtX2RyYXdpbmdDb250ZXh0OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxJdGVtQnVmZmVyV3JpdGluZ0NsaWVudD4gbV93cml0aW5nQ2xpZW50OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxJdGVtQnVmZmVyUmVhZGluZ0NsaWVudD4gbV9yZWFkaW5nQ2xpZW50OwogfTsKIAog
fSAvLyBEaXNwbGF5TGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmNwcAppbmRleCBiNWMzNzQxOWQ2ZmZhYTE2OGQ0YmI5OWU0MTg4NGZkYWQ0ZDE3Njk3Li45N2Jh
ZjQ5YmM0OGExOWI0NjkzNGM1Yjc3ZGI5Y2E4YmJiYmJkMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVm
ZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MzcsMTQgKzQzNywxNCBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzSXNWYWxp
ZCA9IGZhbHNlOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGNvbnN0ZXhwciBib29sIEhh
c0lzVmFsaWQ8VCwgc3RkOjp2b2lkX3Q8ZGVjbHR5cGUoc3RkOjpkZWNsdmFsPFQ+KCkuaXNWYWxp
ZCgpKT4+ID0gdHJ1ZTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KLXR5cGVuYW1lIHN0ZDo6
ZW5hYmxlX2lmX3Q8IUhhc0lzVmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1I
YW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKK3N0YXRp
YyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PCFIYXNJc1ZhbGlkPEl0ZW0+LCBib29sPiBjb3B5
SW50byhjb25zdCBJdGVtSGFuZGxlJiBpdGVtSGFuZGxlLCB1aW50OF90KiBkZXN0aW5hdGlvbldp
dGhPZmZzZXQpCiB7CiAgICAgbmV3IChkZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbUhh
bmRsZS5nZXQ8SXRlbT4oKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEl0ZW0+Ci10eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lzVmFsaWQ8SXRlbT4sIGJv
b2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uV2l0aE9mZnNldCkKK3N0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lz
VmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUs
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKIHsKICAgICBhdXRvKiBuZXdJdGVtID0g
bmV3IChkZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbUhhbmRsZS5nZXQ8SXRlbT4oKSk7
CiAgICAgcmV0dXJuIG5ld0l0ZW0tPmlzVmFsaWQoKTsKQEAgLTYwNSw3ICs2MDUsNiBAQCBJdGVt
QnVmZmVyOjp+SXRlbUJ1ZmZlcigpCiBJdGVtQnVmZmVyOjpJdGVtQnVmZmVyKEl0ZW1CdWZmZXIm
JiBvdGhlcikKICAgICA6IG1fcmVhZGluZ0NsaWVudChzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVh
ZGluZ0NsaWVudCwgbnVsbHB0cikpCiAgICAgLCBtX3dyaXRpbmdDbGllbnQoc3RkOjpleGNoYW5n
ZShvdGhlci5tX3dyaXRpbmdDbGllbnQsIG51bGxwdHIpKQotICAgICwgbV9pdGVtc1RvRGVzdHJv
eUluQWxsb2NhdGVkQnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faXRlbXNUb0Rlc3Ryb3lJ
bkFsbG9jYXRlZEJ1ZmZlcnMsIHsgfSkpCiAgICAgLCBtX2FsbG9jYXRlZEJ1ZmZlcnMoc3RkOjpl
eGNoYW5nZShvdGhlci5tX2FsbG9jYXRlZEJ1ZmZlcnMsIHsgfSkpCiAgICAgLCBtX3JlYWRPbmx5
QnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVhZE9ubHlCdWZmZXJzLCB7IH0pKQogICAg
ICwgbV93cml0YWJsZUJ1ZmZlcihzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fd3JpdGFibGVCdWZmZXIs
IHsgfSkpCkBAIC02MTcsNyArNjE2LDYgQEAgSXRlbUJ1ZmZlciYgSXRlbUJ1ZmZlcjo6b3BlcmF0
b3I9KEl0ZW1CdWZmZXImJiBvdGhlcikKIHsKICAgICBtX3JlYWRpbmdDbGllbnQgPSBzdGQ6OmV4
Y2hhbmdlKG90aGVyLm1fcmVhZGluZ0NsaWVudCwgbnVsbHB0cik7CiAgICAgbV93cml0aW5nQ2xp
ZW50ID0gc3RkOjpleGNoYW5nZShvdGhlci5tX3dyaXRpbmdDbGllbnQsIG51bGxwdHIpOwotICAg
IG1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVy
Lm1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMsIHsgfSk7CiAgICAgbV9hbGxvY2F0
ZWRCdWZmZXJzID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2FsbG9jYXRlZEJ1ZmZlcnMsIHsgfSk7
CiAgICAgbV9yZWFkT25seUJ1ZmZlcnMgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVhZE9ubHlC
dWZmZXJzLCB7IH0pOwogICAgIG1fd3JpdGFibGVCdWZmZXIgPSBzdGQ6OmV4Y2hhbmdlKG90aGVy
Lm1fd3JpdGFibGVCdWZmZXIsIHsgfSk7CkBAIC02NTEsOSArNjQ5LDYgQEAgdm9pZCBJdGVtQnVm
ZmVyOjpmb3JFYWNoSXRlbUJ1ZmZlcihGdW5jdGlvbjx2b2lkKGNvbnN0IEl0ZW1CdWZmZXJIYW5k
bGUmKT4mJiBtYXAKIAogdm9pZCBJdGVtQnVmZmVyOjpjbGVhcigpCiB7Ci0gICAgZm9yIChhdXRv
IGl0ZW0gOiBzdGQ6OmV4Y2hhbmdlKG1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMs
IHsgfSkpCi0gICAgICAgIGl0ZW0uZGVzdHJveSgpOwotCiAgICAgZm9yIChhdXRvKiBidWZmZXIg
OiBzdGQ6OmV4Y2hhbmdlKG1fYWxsb2NhdGVkQnVmZmVycywgeyB9KSkKICAgICAgICAgZmFzdEZy
ZWUoYnVmZmVyKTsKIApAQCAtNjgyLDE4ICs2NzcsMzAgQEAgRGlkQ2hhbmdlSXRlbUJ1ZmZlciBJ
dGVtQnVmZmVyOjpzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChzaXplX3QgbnVtYmVyT2ZCeXRl
cykKIAogdm9pZCBJdGVtQnVmZmVyOjphcHBlbmQoSXRlbUhhbmRsZSB0ZW1wb3JhcnlJdGVtKQog
ewotICAgIGF1dG8gZGF0YSA9IG1fd3JpdGluZ0NsaWVudC0+ZW5jb2RlSXRlbSh0ZW1wb3JhcnlJ
dGVtKTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybjsKKyAgICBhdXRvIHJlcXVpcmVk
U2l6ZUZvckl0ZW0gPSBtX3dyaXRpbmdDbGllbnQtPnJlcXVpcmVkU2l6ZUZvckl0ZW0odGVtcG9y
YXJ5SXRlbSk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gb3V0T2ZMaW5lSXRlbTsKKyAgICBp
ZiAoIXJlcXVpcmVkU2l6ZUZvckl0ZW0pIHsKKyAgICAgICAgb3V0T2ZMaW5lSXRlbSA9IG1fd3Jp
dGluZ0NsaWVudC0+ZW5jb2RlSXRlbU91dE9mTGluZSh0ZW1wb3JhcnlJdGVtKTsKKyAgICAgICAg
aWYgKCFvdXRPZkxpbmVJdGVtKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGF1
dG8gZGF0YUxlbmd0aCA9IGRhdGEtPnNpemUoKTsKKyAgICBhdXRvIGRhdGFMZW5ndGggPSB2YWx1
ZU9yQ29tcHV0ZShyZXF1aXJlZFNpemVGb3JJdGVtLCBbJl0geworICAgICAgICBBU1NFUlQob3V0
T2ZMaW5lSXRlbSk7CisgICAgICAgIHJldHVybiBvdXRPZkxpbmVJdGVtLT5zaXplKCk7CisgICAg
fSk7CiAgICAgYXV0byBhZGRpdGlvbmFsQ2FwYWNpdHlGb3JFbmNvZGVkSXRlbSA9IDIgKiBzaXpl
b2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwgZGF0
YUxlbmd0aCk7CiAKICAgICBhdXRvIGJ1ZmZlckNoYW5nZWQgPSBzd2FwV3JpdGFibGVCdWZmZXJJ
Zk5lZWRlZChhZGRpdGlvbmFsQ2FwYWNpdHlGb3JFbmNvZGVkSXRlbSk7CiAKICAgICBtX3dyaXRh
YmxlQnVmZmVyLmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gPSBzdGF0aWNfY2FzdDx1aW50
OF90Pih0ZW1wb3JhcnlJdGVtLnR5cGUoKSk7CiAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50NjRf
dCo+KG1fd3JpdGFibGVCdWZmZXIuZGF0YSArIG1fd3JpdHRlbk51bWJlck9mQnl0ZXMpWzFdID0g
ZGF0YUxlbmd0aDsKLSAgICBtZW1jcHkobV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVu
TnVtYmVyT2ZCeXRlcyArIDIgKiBzaXplb2YodWludDY0X3QpLCBkYXRhLT5kYXRhQXNVSW50OFB0
cigpLCBkYXRhTGVuZ3RoKTsKKyAgICBhdXRvKiBsb2NhdGlvbiA9IG1fd3JpdGFibGVCdWZmZXIu
ZGF0YSArIG1fd3JpdHRlbk51bWJlck9mQnl0ZXMgKyAyICogc2l6ZW9mKHVpbnQ2NF90KTsKKwor
ICAgIGlmIChyZXF1aXJlZFNpemVGb3JJdGVtKQorICAgICAgICBtX3dyaXRpbmdDbGllbnQtPmVu
Y29kZUl0ZW1JbmxpbmUodGVtcG9yYXJ5SXRlbSwgbG9jYXRpb24pOworICAgIGVsc2UKKyAgICAg
ICAgbWVtY3B5KGxvY2F0aW9uLCBvdXRPZkxpbmVJdGVtLT5kYXRhQXNVSW50OFB0cigpLCBkYXRh
TGVuZ3RoKTsKIAogICAgIGRpZEFwcGVuZERhdGEoYWRkaXRpb25hbENhcGFjaXR5Rm9yRW5jb2Rl
ZEl0ZW0sIGJ1ZmZlckNoYW5nZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bUJ1ZmZlci5oCmluZGV4IDEzOGQ5Y2EwYmQ3MzQzZGJiZjVmNTE5MTYwN2MzYjE5MmEzNzdiZWIu
LjU0NzRlYjk3MTczYTc1YzI4NWQ4YzBiZTBlNDcxZjY2ZmYzMjNkODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1CdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzcsNyArNzcsNyBAQCBzdHJ1Y3QgSXRlbUhh
bmRsZSB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCYgZ2V0KCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChpczxUPigpKTsKLSAgICAgICAgcmV0dXJuICpyZWludGVycHJldF9jYXN0
PFQqPigmZGF0YVtzaXplb2YodWludDY0X3QpXSk7CisgICAgICAgIHJldHVybiAqcmVpbnRlcnBy
ZXRfY2FzdDxUKj4oZGF0YSArIHNpemVvZih1aW50NjRfdCkpOwogICAgIH0KIAogICAgIGJvb2wg
c2FmZUNvcHkoSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3Q7CkBAIC04NywxNiArODcsNDAg
QEAgZW51bSBjbGFzcyBEaWRDaGFuZ2VJdGVtQnVmZmVyIDogYm9vbCB7IE5vLCBZZXMgfTsKIAog
Y2xhc3MgSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgfkl0
ZW1CdWZmZXJXcml0aW5nQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB+SXRlbUJ1ZmZlcldyaXRp
bmdDbGllbnQoKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIEl0ZW1CdWZmZXJIYW5kbGUg
Y3JlYXRlSXRlbUJ1ZmZlcihzaXplX3QpCisgICAgeworICAgICAgICByZXR1cm4geyB9OworICAg
IH0KIAotICAgIHZpcnR1YWwgSXRlbUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVtQnVmZmVyKHNpemVf
dCkgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbShJdGVt
SGFuZGxlKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFwcGVuZERhdGEoY29uc3Qg
SXRlbUJ1ZmZlckhhbmRsZSYsIHNpemVfdCBudW1iZXJPZkJ5dGVzLCBEaWRDaGFuZ2VJdGVtQnVm
ZmVyKSA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxzdGQ6OnNpemVfdD4gcmVxdWlyZWRTaXpl
Rm9ySXRlbShJdGVtSGFuZGxlKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0
ZW1PdXRPZkxpbmUoSXRlbUhhbmRsZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVJdGVtSW5saW5lKEl0ZW1IYW5k
bGUsIHVpbnQ4X3QqKSBjb25zdAorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90IG51bWJlck9mQnl0ZXMs
IERpZENoYW5nZUl0ZW1CdWZmZXIpCisgICAgeworICAgICAgICBVTlVTRURfUEFSQU0obnVtYmVy
T2ZCeXRlcyk7CisgICAgfQogfTsKIAogY2xhc3MgSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQgewog
cHVibGljOgotICAgIHZpcnR1YWwgfkl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50KCkgeyB9CisgICAg
dmlydHVhbCB+SXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQoKQorICAgIHsKKyAgICB9CiAKICAgICB2
aXJ0dWFsIE9wdGlvbmFsPEl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGVJdGVt
KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBJdGVtVHlwZSwgdWludDhf
dCogaGFuZGxlTG9jYXRpb24pID0gMDsKIH07CkBAIC0xNDksOSArMTczLDEwIEBAIHB1YmxpYzoK
ICAgICAvLyBkYXRhIGJhY2sgaW50byBhbiBpdGVtIG9mIHR5cGUgVC4KICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBjbGFzcy4uLiBBcmdzPiB2b2lkIGFwcGVuZChBcmdzJiYuLi4gYXJncykKICAg
ICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxl
PFQ+Ojp2YWx1ZSB8fCAhVDo6aXNJbmxpbmVJdGVtKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVlID09IFQ6OmlzSW5saW5lSXRl
bSk7CiAKLSAgICAgICAgaWYgKCFUOjppc0lubGluZUl0ZW0gJiYgbV93cml0aW5nQ2xpZW50KSB7
CisgICAgICAgIGlmICghVDo6aXNJbmxpbmVJdGVtKSB7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChtX3dyaXRpbmdDbGllbnQpOwogI2lmIENPTVBJTEVSKE1TVkMpCiAgICAgICAgICAgICBf
X2RlY2xzcGVjKGFsaWduKDgpKSB0eXBlZGVmIHVpbnQ4X3QgRW5jb2RpbmdCdWZmZXJbc2l6ZW9m
KHVpbnQ2NF90KSArIHNpemVvZihUKV07CiAjZWxzZQpAQCAtMTY3LDkgKzE5Miw2IEBAIHB1Ymxp
YzoKIAogICAgICAgICBhdXRvIGJ1ZmZlckNoYW5nZWQgPSBzd2FwV3JpdGFibGVCdWZmZXJJZk5l
ZWRlZChwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoVDo6aXRlbVR5cGUpKTsKIAotICAg
ICAgICBpZiAoIXN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpCi0gICAg
ICAgICAgICBtX2l0ZW1zVG9EZXN0cm95SW5BbGxvY2F0ZWRCdWZmZXJzLmFwcGVuZCh7ICZtX3dy
aXRhYmxlQnVmZmVyLmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gfSk7Ci0KICAgICAgICAg
dW5jaGVja2VkQXBwZW5kPFQ+KGJ1ZmZlckNoYW5nZWQsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdz
KS4uLik7CiAgICAgfQogCkBAIC0xOTQsNyArMjE2LDYgQEAgcHJpdmF0ZToKIAogICAgIEl0ZW1C
dWZmZXJSZWFkaW5nQ2xpZW50KiBtX3JlYWRpbmdDbGllbnQgeyBudWxscHRyIH07CiAgICAgSXRl
bUJ1ZmZlcldyaXRpbmdDbGllbnQqIG1fd3JpdGluZ0NsaWVudCB7IG51bGxwdHIgfTsKLSAgICBW
ZWN0b3I8SXRlbUhhbmRsZT4gbV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVyczsKICAg
ICBWZWN0b3I8dWludDhfdCo+IG1fYWxsb2NhdGVkQnVmZmVyczsKICAgICBJdGVtQnVmZmVySGFu
ZGxlcyBtX3JlYWRPbmx5QnVmZmVyczsKICAgICBJdGVtQnVmZmVySGFuZGxlIG1fd3JpdGFibGVC
dWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggZDE3
MzdhMjc5YzM5N2UwOTA5M2QxMzg0MzNkYjM4NDdkNmY0NzQ5Mi4uM2NlMzVkNDdkYTJmMzNiMTA3
YTRiMTNkMDBkNDUzZjM1MmYzNjVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
cGxheWVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5
TGlzdC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3Ry
ZWFtLmg+CiAKQEAgLTE3OSw5ICsxODAsOSBAQCBSZXBsYXlSZXN1bHQgUmVwbGF5ZXI6OnJlcGxh
eShjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBib29sIHRyYWNrUmVwbGF5TGlzdAogICAg
IExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZXBsYXlpbmcgd2l0
aCBjbGlwICIgPDwgaW5pdGlhbENsaXApOwogICAgIFVOVVNFRF9QQVJBTShpbml0aWFsQ2xpcCk7
CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHJlcGxheUxpc3Q7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEluTWVtb3J5RGlzcGxheUxpc3Q+IHJlcGxheUxpc3Q7CiAgICAgaWYgKFVO
TElLRUxZKHRyYWNrUmVwbGF5TGlzdCkpCi0gICAgICAgIHJlcGxheUxpc3QgPSBtYWtlVW5pcXVl
PERpc3BsYXlMaXN0PigpOworICAgICAgICByZXBsYXlMaXN0ID0gbWFrZVVuaXF1ZTxJbk1lbW9y
eURpc3BsYXlMaXN0PigpOwogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIHNpemVfdCBpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlcGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCmluZGV4IDE4MWExMmIwZTUxOGU4
ZGMyMWQzYjc0OWYyNzEwMWQyYTNlOTZmMzkuLmU3ZjE0MmZhZmYyMDFmZjdiNzVkY2IxZjU5NDQ4
ZmFiMzFkNWYwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw3
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGlzcGxheUxpc3QuaCIKKyNp
bmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ3LDcgKzQ3LDcgQEAg
ZW51bSBjbGFzcyBTdG9wUmVwbGF5UmVhc29uIDogdWludDhfdCB7CiB9OwogCiBzdHJ1Y3QgUmVw
bGF5UmVzdWx0IHsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHRyYWNrZWREaXNw
bGF5TGlzdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5TGlzdD4gdHJhY2tl
ZERpc3BsYXlMaXN0OwogICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCB7IDAgfTsKICAgICBP
cHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IG5leHREZXN0aW5hdGlvbkltYWdl
QnVmZmVyOwogICAgIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gbWlzc2lu
Z0NhY2hlZFJlc291cmNlSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3Bs
YXlMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzE3NjEyZDhhOTI2YmJiNGY5MmJmODgwN2Y4NzI2YThi
MjNjNmUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCkBAIC0wLDAgKzEsNzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSW5NZW1vcnlEaXNwbGF5TGlzdC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheUxpc3QgeworCitPcHRpb25hbDxzdGQ6OnNpemVf
dD4gSW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXplRm9ySXRl
bShJdGVtSGFuZGxlIGl0ZW1IYW5kbGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhZGRlZFNpemVP
ZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVtSGFuZGxlLnR5cGUoKSk7Cit9CisKK3ZvaWQgSW5NZW1v
cnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZShJdGVtSGFuZGxl
IGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGxvY2F0aW9uKSBjb25zdAoreworICAgIGl0ZW1IYW5kbGUu
c2FmZUNvcHkoeyBsb2NhdGlvbiB9KTsKK30KKworT3B0aW9uYWw8SXRlbUhhbmRsZT4gV0FSTl9V
TlVTRURfUkVUVVJOIEluTWVtb3J5RGlzcGxheUxpc3Q6OlJlYWRpbmdDbGllbnQ6OmRlY29kZUl0
ZW0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIEl0ZW1UeXBlIHR5cGUs
IHVpbnQ4X3QqIGhhbmRsZUxvY2F0aW9uKQoreworICAgIGNvbnN0IEl0ZW1IYW5kbGUgZGF0YUhh
bmRsZSB7IGNvbnN0X2Nhc3Q8dWludDhfdCo+KGRhdGEpIH07CisgICAgQVNTRVJUX1VOVVNFRCh0
eXBlLCBkYXRhSGFuZGxlLnR5cGUoKSA9PSB0eXBlKTsKKyAgICBBU1NFUlRfVU5VU0VEKGRhdGFM
ZW5ndGgsIGRhdGFMZW5ndGggPj0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGRhdGFI
YW5kbGUudHlwZSgpKSk7CisgICAgSXRlbUhhbmRsZSByZXN1bHQgeyBoYW5kbGVMb2NhdGlvbiB9
OworICAgIGlmIChkYXRhSGFuZGxlLnNhZmVDb3B5KHJlc3VsdCkpCisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKworSW5NZW1vcnlEaXNwbGF5TGlz
dDo6SW5NZW1vcnlEaXNwbGF5TGlzdCgpCisgICAgOiBtX3dyaXRpbmdDbGllbnQoV1RGOjptYWtl
VW5pcXVlPFdyaXRpbmdDbGllbnQ+KCkpCisgICAgLCBtX3JlYWRpbmdDbGllbnQoV1RGOjptYWtl
VW5pcXVlPFJlYWRpbmdDbGllbnQ+KCkpCit7CisgICAgc2V0SXRlbUJ1ZmZlckNsaWVudChtX3dy
aXRpbmdDbGllbnQuZ2V0KCkpOworICAgIHNldEl0ZW1CdWZmZXJDbGllbnQobV9yZWFkaW5nQ2xp
ZW50LmdldCgpKTsKK30KKworSW5NZW1vcnlEaXNwbGF5TGlzdDo6fkluTWVtb3J5RGlzcGxheUxp
c3QoKQoreworICAgIGF1dG8gZW5kID0gdGhpcy0+ZW5kKCk7CisgICAgZm9yIChhdXRvIFtpdGVt
LCBleHRlbnQsIHNpemVdIDogKnRoaXMpIHsKKyAgICAgICAgQVNTRVJUKGl0ZW0pOworICAgICAg
ICBpZiAoIWl0ZW0pCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaXRlbS0+ZGVzdHJveSgp
OworICAgIH0KK30KKworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGU4Zjk5MDY0NzQyNWVjOTcxYmM4OWViZGIwNTVkOWMyY2YzNzA4MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJEaXNwbGF5TGlzdC5oIgorI2luY2x1ZGUgPG1lbW9yeT4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKKworY2xhc3MgSW5NZW1vcnlEaXNwbGF5
TGlzdCA6IHB1YmxpYyBEaXNwbGF5TGlzdCB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQg
SW5NZW1vcnlEaXNwbGF5TGlzdCgpOworCisgICAgV0VCQ09SRV9FWFBPUlQgfkluTWVtb3J5RGlz
cGxheUxpc3QoKTsKKworICAgIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdDbGllbnQgOiBw
dWJsaWMgSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQgeworICAgICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKKyAgICBwcml2YXRlOgorICAgICAgICBPcHRpb25hbDxzdGQ6OnNpemVfdD4gcmVx
dWlyZWRTaXplRm9ySXRlbShJdGVtSGFuZGxlKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBl
bmNvZGVJdGVtSW5saW5lKEl0ZW1IYW5kbGUsIHVpbnQ4X3QqKSBjb25zdCBmaW5hbDsKKyAgICB9
OworCisgICAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhZGluZ0NsaWVudCA6IHB1YmxpYyBJdGVt
QnVmZmVyUmVhZGluZ0NsaWVudCB7CisgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
ICAgIHByaXZhdGU6CisgICAgICAgIE9wdGlvbmFsPEl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JF
VFVSTiBkZWNvZGVJdGVtKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QsIEl0ZW1UeXBlLCB1aW50OF90
KikgZmluYWw7CisgICAgfTsKKworcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V3JpdGlu
Z0NsaWVudD4gbV93cml0aW5nQ2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFkaW5nQ2xp
ZW50PiBtX3JlYWRpbmdDbGllbnQ7Cit9OworCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmgKaW5kZXggMmIyZjIyM2ExMzUxNjE2MmIx
MGQ3MTU0ZGNlYTJhNjg1NjliYjNmYS4uYTE1YTc0NDg1YTVmM2NjMTkyNjUwMjJkYjU1MmY2MmY5
NzQxY2ZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dseXBoRGlzcGxh
eUxpc3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HbHlwaERpc3BsYXlM
aXN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNSw4ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRGlz
cGxheUxpc3QuaCIKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkluTWVtb3J5
RGlzcGxheUxpc3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKICAg
ICB9CiAgICAgCiBwcml2YXRlOgotICAgIHVzaW5nIEdseXBoUnVuTWFwID0gSGFzaE1hcDxjb25z
dCBMYXlvdXRSdW4qLCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Pj47
CisgICAgdXNpbmcgR2x5cGhSdW5NYXAgPSBIYXNoTWFwPGNvbnN0IExheW91dFJ1biosIHN0ZDo6
dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4+OwogICAgIEdseXBo
UnVuTWFwIG1fZ2x5cGhSdW5NYXA7CiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHku
aAppbmRleCA1YmJmMjU2MzA2MjkwZTQ5YWM4ZGIzMWI1ZDAxYWM5NmI1NmFhYzQyLi45YzY0NmIx
ZDUyYjU3YmFlOTBhMTRjMGNmNzRiNjZlMmY5YzYyMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
UHJveHkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTEwMSw2ICsxMDEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5jYWNoZUltYWdl
QnVmZmVyKCp0aGlzKTsKIAogICAgICAgICBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCku
c2V0SXRlbUJ1ZmZlckNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNw
bGF5TGlzdCgpLnNldEl0ZW1CdWZmZXJDbGllbnQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50Kj4obnVsbHB0cikpOwogICAgICAgICBtX2Ry
YXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCkuc2V0VHJhY2tzRHJhd2luZ0l0ZW1FeHRlbnRzKGZh
bHNlKTsKICAgICB9CiAKQEAgLTI5Miw3ICsyOTMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
KCkuY2FjaGVGb250KGZvbnQpOwogICAgIH0KIAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtQnVmZmVySGFuZGxlIGNyZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90IGNhcGFjaXR5KSBvdmVycmlk
ZQorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySGFuZGxlIGNyZWF0ZUl0ZW1C
dWZmZXIoc2l6ZV90IGNhcGFjaXR5KSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKExJS0VMWSht
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkpCiAgICAgICAgICAgICByZXR1cm4gbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmNyZWF0ZUl0ZW1CdWZmZXIoY2FwYWNpdHksIG1fcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKQEAgLTMwMSw3ICszMDIsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgUmVmUHRyPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4gZW5jb2RlSXRlbShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZSBpdGVt
KSBjb25zdCBvdmVycmlkZQorICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGVuY29k
ZUl0ZW1PdXRPZkxpbmUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSkgY29u
c3QgZmluYWwKICAgICB7CiAgICAgICAgIC8qIFRoaXMgbmVlZHMgdG8gbWF0Y2ggKDEpIGlzSW5s
aW5lSXRlbSgpIGluIERpc3BsYXlMaXN0SXRlbVR5cGUuY3BwLCAoMikgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6ZGVjb2RlSXRlbSgpLAogICAgICAgICAgKiBhbmQgKDMpIGFsbCB0aGUgInN0YXRp
YyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0icyBpbnNpZGUgdGhlIGluZGl2aWR1YWwgaXRl
bSBjbGFzc2VzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDgyNmFiMTk2Y2NjZmU2ODJkZWYzNDlmNmU1YTFjNjhmYmQzOTU4ZjQuLmZmMmUwNDkx
MTRmMzkyMDI5ZmQyMGMyM2JkYjk1NTViYTc3NWQ1ZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0yOCAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gU2ltcGxpZnkgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yIHBhcnQgMTogUmVxdWlyZSBl
bmNvZGluZy9kZWNvZGluZyBkZWxlZ2F0ZXMgZm9yIG5vbi1pbmxpbmUgZGlzcGxheSBsaXN0IGl0
ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwOgorCiAyMDIxLTAzLTI3ICBEZXdlaSBaaHUg
IDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIGJ1ZyB0aGF0IGh0dHAgc2Vy
dmVyIGZvciBydW4tYmVuY2htYXJrIHNjcmlwdCBkb2VzIG5vdCB3b3JrIG9uIHB5dGhvbjMuCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAKaW5kZXggMWNlMTQ2MjhjZWQ1ZTAwNjQyNWQyZWMyOWYxZGUwZWI3MWZlMTM3NC4u
MmU1M2JiODExZTNiYzJkZjM5MTA2ZjFkNTkxMzdkNzlhMjIzYTdhMyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhZGllbnQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0luTWVtb3J5RGlzcGxheUxpc3QuaD4KIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01OCw3ICs1OSw3
IEBAIHN0YXRpYyBQYXRoIGNyZWF0ZUNvbXBsZXhQYXRoKCkKIAogVEVTVChEaXNwbGF5TGlzdFRl
c3RzLCBBcHBlbmRJdGVtcykKIHsKLSAgICBEaXNwbGF5TGlzdCBsaXN0OworICAgIEluTWVtb3J5
RGlzcGxheUxpc3QgbGlzdDsKIAogICAgIEVYUEVDVF9UUlVFKGxpc3QuaXNFbXB0eSgpKTsKIApA
QCAtMTk4LDE1ICsxOTksMTMgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVtQnVmZmVyQ2xp
ZW50KQogICAgICAgICAgICAgcmV0dXJuIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFs
SXRlbUJ1ZmZlciwgZ2xvYmFsSXRlbUJ1ZmZlckNhcGFjaXR5IH07CiAgICAgICAgIH0KIAotICAg
ICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtKEl0ZW1IYW5kbGUgaGFuZGxlKSBj
b25zdCBmaW5hbAorICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZM
aW5lKEl0ZW1IYW5kbGUgaGFuZGxlKSBjb25zdCBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAg
ICBhdXRvIGluZGV4ID0gbV9pdGVtcy5zaXplKCk7CiAgICAgICAgICAgICBtX2l0ZW1zLmFwcGVu
ZChoYW5kbGUuZ2V0PFN0cm9rZVBhdGg+KCkpOwogICAgICAgICAgICAgcmV0dXJuIFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZpbmRleCksIHNpemVvZihz
aXplX3QpKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZGlkQXBwZW5kRGF0YShjb25zdCBJ
dGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90LCBEaWRDaGFuZ2VJdGVtQnVmZmVyKSBmaW5hbCB7IH0K
LQogICAgICAgICBWZWN0b3I8U3Ryb2tlUGF0aD4mIG1faXRlbXM7CiAgICAgfTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVz
dHNDRy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxp
c3RUZXN0c0NHLmNwcAppbmRleCBiNTY5ZjM0MDdlMDc1MTVmNjJlMTkwMWVlMDIyZDQxOTQ3ZmYz
ODlhLi4zYjMyMjc4MDYwOWRmOGYzODg1Zjc4ZWMzODk4NTRlMDA1MmUxODA2IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NH
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxp
c3RUZXN0c0NHLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xMDAsOCArMTAwLDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB7
IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIsIGdsb2JhbEl0ZW1CdWZmZXIsIGdsb2JhbEl0ZW1CdWZm
ZXJDYXBhY2l0eSB9OwogICAgIH0KIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0
ZW0oSXRlbUhhbmRsZSkgY29uc3QgZmluYWwgeyByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
KTsgfQotICAgIHZvaWQgZGlkQXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6
ZV90LCBEaWRDaGFuZ2VJdGVtQnVmZmVyKSBmaW5hbCB7IH0KKyAgICBSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0ZW1IYW5kbGUpIGNvbnN0IGZpbmFsCisgICAgewor
ICAgICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKKyAgICB9CiB9OwogCiBURVNU
KERpc3BsYXlMaXN0VGVzdHMsIE91dE9mTGluZUl0ZW1EZWNvZGluZ0ZhaWx1cmUpCg==
</data>
<flag name="review"
          id="444227"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425057</attachid>
            <date>2021-04-02 14:48:34 -0700</date>
            <delta_ts>2021-04-05 17:22:10 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-223849-20210402144833.patch</filename>
            <type>text/plain</type>
            <size>47377</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiNTU1MTc5M2YzMThm
ZDhjZDhiOTA3MmQxNjBmOTUzNWE5NzBjMi4uNWJiY2I3NjBkMmFjM2Y2YTEzZWY5NThkYmYzYWEw
ODhhNWJmOTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIxLTA0LTAyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCAxOiBSZXF1aXJlIGVuY29k
aW5nL2RlY29kaW5nIGRlbGVnYXRlcyBmb3Igbm9uLWlubGluZSBkaXNwbGF5IGxpc3QgaXRlbXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzg0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBSZXF1aXJpbmcg
ZGVsZWdhdGVzIGZvciBub24taW5saW5lIGRpc3BsYXkgbGlzdCBpdGVtcyBoYXMgdGhlc2UgYWR2
YW50YWdlczoKKyAgICAgICAgLSBEaXNwbGF5TGlzdDo6SXRlcmF0b3I6OnVwZGF0ZUN1cnJlbnRJ
dGVtKCkgb25seSBoYXMgMiBjb2RlcGF0aHMgaW5zdGVhZCBvZiAzLgorICAgICAgICAtIEl0ZW1C
dWZmZXI6Om1faXRlbXNUb0Rlc3Ryb3lJbkFsbG9jYXRlZEJ1ZmZlcnMgY2FuIGJlIGRlbGV0ZWQg
ZW50aXJlbHkuCisgICAgICAgIC0gVGhlIGNvbmRpdGlvbmFsIGluc2lkZSBJdGVtQnVmZmVyOjph
cHBlbmQoKSBjYW4gYmUgc2ltcGxpZmllZCBmcm9tCisgICAgICAgICAgICAgICFUOjppc0lubGlu
ZUl0ZW0gJiYgbV93cml0aW5nQ2xpZW50IHRvIGp1c3QgIVQ6OmlzSW5saW5lSXRlbSwgd2hpY2gg
SSB0aGluayBtYWtlcyB0aGUKKyAgICAgICAgICAgICAgZnVuY3Rpb24gc2lnbmlmaWNhbnRseSBt
b3JlIHJlYWRhYmxlLgorCisgICAgICAgIFRoZXJlIGFyZSBhIGZldyBwbGFjZXMgd2hlcmUgd2Ug
d2VyZSB1c2luZyBub24taW5saW5lIGRpc3BsYXkgbGlzdCBpdGVtcyB3aXRob3V0IGEgZGVsZWdh
dGU6CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyB0d28gbmV3ICJudWxsIiBkZWxlZ2F0ZXMsIGFu
ZCBob29rcyB0aGVtIHVwIHRvIGEgc3ViY2xhc3Mgb2YgRGlzcGxheUxpc3QsCisgICAgICAgIGNh
bGxlZCBJbk1lbW9yeURpc3BsYXlMaXN0LiBDbGllbnRzIHdobyB3YW50IHRvIHVzZSBpbi1tZW1v
cnkgZGlzcGxheSBsaXN0cyAobGlrZSB0aGUKKyAgICAgICAgRHJhd0dseXBocyBjYWNoZSkgY2Fu
IGp1c3QgdXNlIHRoaXMgY2xhc3MsIGFuZCByZXRhaW4gdGhlaXIgY2FsbGluZyBwYXR0ZXJuIHRo
ZXkgd2VyZSB1c2luZworICAgICAgICBiZWZvcmUuIEFsc28sIHRoaXMgcGF0Y2ggYWRkcyBJbk1l
bW9yeURpc3BsYXlMaXN0IHdpdGhvdXQgYWRkaW5nIGFueSB2aXJ0dWFsIGZ1bmN0aW9ucyB0bwor
ICAgICAgICBEaXNwbGF5TGlzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVy
ZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2Nh
ZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
QTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6RGlzcGxheUxpc3Q6Oml0ZXJhdG9yOjp1cGRhdGVDdXJyZW50SXRlbSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dDo6
cmVwbGF5ZWREaXNwbGF5TGlzdCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmNvcHlJbnRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyOjpJdGVtQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtQnVmZmVyOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Om1fYWxsb2NhdGVkQnVmZmVycyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmdldCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6On5JdGVtQnVmZmVyV3Jp
dGluZ0NsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcldy
aXRpbmdDbGllbnQ6OmNyZWF0ZUl0ZW1CdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50OjpyZXF1aXJlZFNpemVGb3JJdGVtIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVu
dDo6ZW5jb2RlSXRlbU91dE9mTGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQ6OmVuY29kZUl0ZW1JbmxpbmUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50Ojpk
aWRBcHBlbmREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVy
OjphcHBlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlcGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBs
YXllcjo6cmVwbGF5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZXBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6cmVxdWly
ZWRTaXplRm9ySXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW5N
ZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVh
ZGluZ0NsaWVudDo6ZGVjb2RlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SW5NZW1vcnlEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdDo6fkluTWVtb3J5RGlzcGxheUxp
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURp
c3BsYXlMaXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmguCisgICAgICAgICogcmVu
ZGVyaW5nL0dseXBoRGlzcGxheUxpc3RDYWNoZS5oOgorCiAyMDIxLTA0LTAyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHdoZWVsIGV2ZW50
cyB0byB0cmlnZ2VyIGhpZ2ggZnJlcXVlbmN5IERpc3BsYXlMaW5rcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmN2Ux
NzBlZDMxZTdkZDI3MzhlNWY3Y2ZkODcyYTJhN2Y5NDBmYWRkLi4zMGZlMzcyOGYzMTIxODZlYWIy
Njg2MDFkODcwMTAxNjNkY2I4NTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA0
LTAyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVSBQcm9jZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCAxOiBSZXF1
aXJlIGVuY29kaW5nL2RlY29kaW5nIGRlbGVnYXRlcyBmb3Igbm9uLWlubGluZSBkaXNwbGF5IGxp
c3QgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMzg0OQorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKwogMjAy
MS0wNC0wMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBbGxvdyB3aGVlbCBldmVudHMgdG8gdHJpZ2dlciBoaWdoIGZyZXF1ZW5jeSBEaXNwbGF5TGlu
a3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGIxNGVlNzMzYzNkNGE1MWEzM2U2NWVhMDlkMmJmOGVk
YjA3ZWFmMDIuLmYxOWZlZTQ5MTk3Zjk0YzFkZWRiNzZkM2M1NWZlNzM2NWU4YWY1ODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQpAQCAtMTMyMiw2ICsxMzIyLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVwbGF5ZXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1l
bW9yeURpc3BsYXlMaXN0LmgKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQuaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDY5ZTVmOTkxMTgzZDMxNTNjODM5MTg3
ODc1ZTUyOWEzNTZkMzk4YjcuLjNiZDc1MDkxOWZmM2VkZjU3NTg4N2E1YmVmMmI2ZWJlZmRkMzYz
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMDI3LDYgKzIwMjcsNyBAQCBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVCbGVuZC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBhNmE2Y2NlMzQyNjg0N2QwNjYwZTYyOWI0YzU0ODI1NjIyN2QwMzRiLi45YTQ0ZDRmMjNh
ZDhiYWQ1MWM3ZTdmMjY1NzBlMDAyNTlhMGIxZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NDQsNiArNjQ0LDcgQEAKIAkJ
MUNBRjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FGNTZE
ODI1MzAxNDU3MDAxN0I0NzIgLyogRGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQ0NEODE1MDIy
MzFGODNFMDA2NUZDMkIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0
aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJMUNDREY1QkUxOTkwMzMyNDAwQkNFQkFEIC8q
IFNWR1RvT1RGRm9udENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDQ0RGNUJDMTk5MDMzMjQwMEJDRUJBRCAvKiBTVkdUb09URkZvbnRD
b252ZXJzaW9uLmggKi87IH07CisJCTFDRTg4NjQxMjYxMDVCRjIwMDBDODE2QyAvKiBJbk1lbW9y
eURpc3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0U4ODYzRjI2MTA1QTVGMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDRkFFMzIz
MEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxp
Ym9iamMuZHlsaWIgKi87IH07CiAJCTFEMDAyNkE0MjM3NEQ2MjQwMENBNkNERiAvKiBKU1BpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFEMDAyNkEyMjM3NEQ2MjMwMENBNkNERiAvKiBKU1BpY3R1cmVJblBpY3R1cmVX
aW5kb3cuaCAqLzsgfTsKIAkJMUQwMDI2QUEyMzc0RjlFQTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0
dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGlj
dHVyZUV2ZW50LmggKi87IH07CkBAIC02OTQ1LDYgKzY5NDYsOCBAQAogCQkxQ0RENDVFNDBCQTlD
ODQ2MDBGOTAxNDcgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2Nv
bmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29yZS54Y2NvbmZpZzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNERDQ1RTYwQkE5Qzg0NjAwRjkwMTQ3IC8qIEJhc2UueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNFODg2M0UyNjEwNUE1RjAwMEM4MTZDIC8qIElu
TWVtb3J5RGlzcGxheUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5NZW1vcnlEaXNwbGF5
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRTg4NjNGMjYxMDVBNUYw
MDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluTWVtb3J5
RGlzcGxheUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNFQ0IzQTgyMUYy
QjY3MzAwRjQ0NTQyIC8qIFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdITFNMU3RhdGVtZW50QmVoYXZpb3JDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDRUNCM0E5MjFGMkI2NzMwMEY0NDU0MiAvKiBXSExTTFN0YXRlbWVudEJl
aGF2aW9yQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXSExTTFN0YXRlbWVudEJlaGF2
aW9yQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRUNCM0FGMjFG
MkI5ODQwMEY0NDU0MiAvKiBXSExTTEZ1bmN0aW9uV3JpdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdITFNMRnVuY3Rpb25Xcml0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTgwODUsNiArMTgwODgsOCBAQAogCQkJCTBGRTVGQkNGMUMzREQ1MUUwMDA3QTJDQSAvKiBE
aXNwbGF5TGlzdFJlY29yZGVyLmggKi8sCiAJCQkJMEZFNUZCRDAxQzNERDUxRTAwMDdBMkNBIC8q
IERpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwICovLAogCQkJCTBGRTVGQkQxMUMzREQ1MUUwMDA3QTJD
QSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmggKi8sCisJCQkJMUNFODg2M0UyNjEwNUE1RjAwMEM4
MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuY3BwICovLAorCQkJCTFDRTg4NjNGMjYxMDVBNUYw
MDBDODE2QyAvKiBJbk1lbW9yeURpc3BsYXlMaXN0LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGRp
c3BsYXlsaXN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMjg1Nyw2ICszMjg2
Miw3IEBACiAJCQkJQkNFQTQ4NUEwOTdEOTMwMjAwOTRDOUU0IC8qIElubGluZVRleHRCb3guaCBp
biBIZWFkZXJzICovLAogCQkJCTFDMDEwNzAxMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0
Qm94U3R5bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMUNDMURFMjI1RjhCNDkwMDcyMEFEMiAv
KiBJbmxpbmVUZXh0SXRlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNFODg2NDEyNjEwNUJGMjAw
MEM4MTZDIC8qIEluTWVtb3J5RGlzcGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFQjc2
NzU3MURBMTlCREYwMDNFMjNCNSAvKiBJbnB1dEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlF
NTJFRkRGNDIxMTI4NzVBMDBBRDI4MkEgLyogSW5wdXRNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzN0UzNTI0RDEyNDUwQzY2MDBCQUY1RDkgLyogSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMDZmZjUxNTJh
ODQ1Y2EwOTM5NzgxZTI3YTYyZGYzNGFiMTQzZmRiZi4uOWNlOTlmMzZhNzM3ODMxM2Q4ODJlYWI3
YWI1Y2RkNWJkMDE2MzUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFs
cCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVG9yY2ggTW9i
aWxlIChCZWlqaW5nKSBDby4gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQ2LDYg
KzQ2LDcgQEAKICNpbmNsdWRlICJJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgorI2luY2x1ZGUgIklu
TWVtb3J5RGlzcGxheUxpc3QuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhc2NhZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhc2NhZGUuY3BwCmluZGV4IGE2YThhMDYwOTVhN2UzYzEzZmE2ZWVhMDcwMDFlNmEzODg2Yzdh
MjcuLjk4YzgzNjdiNzA0N2E0YzdjZjk0NmE1YTIzZmQ0ZDQxYmM0MDJhODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJHbHlwaEJ1ZmZlci5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkluTWVtb3J5RGlzcGxh
eUxpc3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiU3Vycm9nYXRlUGFp
ckF3YXJlVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgpAQCAtMjExLDcgKzIx
Miw3IEBAIHZvaWQgRm9udENhc2NhZGU6OmRyYXdFbXBoYXNpc01hcmtzKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuCiAgICAgZHJhd0VtcGhhc2lzTWFya3MoY29u
dGV4dCwgZ2x5cGhCdWZmZXIsIG1hcmssIHN0YXJ0UG9pbnQpOwogfQogCi1zdGQ6OnVuaXF1ZV9w
dHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBGb250Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JU
ZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCB1bnNp
Z25lZCBmcm9tLCBPcHRpb25hbDx1bnNpZ25lZD4gdG8sIEN1c3RvbUZvbnROb3RSZWFkeUFjdGlv
biBjdXN0b21Gb250Tm90UmVhZHlBY3Rpb24pIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxh
eUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+IEZvbnRDYXNjYWRlOjpkaXNwbGF5TGlzdEZvclRl
eHRSdW4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIHVuc2ln
bmVkIGZyb20sIE9wdGlvbmFsPHVuc2lnbmVkPiB0bywgQ3VzdG9tRm9udE5vdFJlYWR5QWN0aW9u
IGN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbikgY29uc3QKIHsKICAgICBBU1NFUlQoIWNvbnRleHQu
cGFpbnRpbmdEaXNhYmxlZCgpKTsKICAgICB1bnNpZ25lZCBkZXN0aW5hdGlvbiA9IHRvLnZhbHVl
T3IocnVuLmxlbmd0aCgpKTsKQEAgLTIyNyw3ICsyMjgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBGb250Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JUZXh0UnVu
KEdyYQogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q+
IGRpc3BsYXlMaXN0ID0gbWFrZVVuaXF1ZTxEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q+KCk7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBkaXNw
bGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+KCk7
CiAgICAgR3JhcGhpY3NDb250ZXh0IHJlY29yZGluZ0NvbnRleHQoWyZdKEdyYXBoaWNzQ29udGV4
dCYgZGlzcGxheUxpc3RDb250ZXh0KSB7CiAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPERpc3Bs
YXlMaXN0OjpSZWNvcmRlcj4oZGlzcGxheUxpc3RDb250ZXh0LCAqZGlzcGxheUxpc3QsIGNvbnRl
eHQuc3RhdGUoKSwgRmxvYXRSZWN0KCksIEFmZmluZVRyYW5zZm9ybSgpLCBudWxscHRyLCBEaXNw
bGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzRGVjb25zdHJ1Y3Rpb246OkRv
bnREZWNvbnN0cnVjdCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhc2NhZGUuaAppbmRleCA2NmI2ZjEzYWQzMzAyZDYyZGJjOTUwMjMwMzhkYmY0
NmUyOGMxOTIwLi4xZWY5ZTc2ZmYxNmQ0MDhmNTc3ODhmZmJjZmQ4NmQ1NzU1NWFiZTJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKQEAgLTQ5
LDcgKzQ5LDcgQEAgY2xhc3MgVGV4dExheW91dDsKIGNsYXNzIFRleHRSdW47CiAKIG5hbWVzcGFj
ZSBEaXNwbGF5TGlzdCB7Ci1jbGFzcyBEaXNwbGF5TGlzdDsKK2NsYXNzIEluTWVtb3J5RGlzcGxh
eUxpc3Q7CiB9CiAgICAgCiBzdHJ1Y3QgR2x5cGhEYXRhOwpAQCAtMTk5LDcgKzE5OSw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBmbG9hdCBzeW50aGV0aWNPYmxpcXVlQW5nbGUoKSB7IHJldHVy
biAxNDsgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4g
ZGlzcGxheUxpc3RGb3JUZXh0UnVuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFRleHRSdW4mLCB1
bnNpZ25lZCBmcm9tID0gMCwgT3B0aW9uYWw8dW5zaWduZWQ+IHRvID0geyB9LCBDdXN0b21Gb250
Tm90UmVhZHlBY3Rpb24gPSBDdXN0b21Gb250Tm90UmVhZHlBY3Rpb246OkRvTm90UGFpbnRJZkZv
bnROb3RSZWFkeSkgY29uc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1l
bW9yeURpc3BsYXlMaXN0PiBkaXNwbGF5TGlzdEZvclRleHRSdW4oR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgVGV4dFJ1biYsIHVuc2lnbmVkIGZyb20gPSAwLCBPcHRpb25hbDx1bnNpZ25lZD4gdG8g
PSB7IH0sIEN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbiA9IEN1c3RvbUZvbnROb3RSZWFkeUFjdGlv
bjo6RG9Ob3RQYWludElmRm9udE5vdFJlYWR5KSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKFdJTikg
JiYgVVNFKENHKQogICAgIHN0YXRpYyB2b2lkIHNldEZvbnRTbW9vdGhpbmdMZXZlbChpbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKaW5kZXggNTFjNTljNGU1ZGY3N2Y0MjVkOTc5NDRlZjA5YTYyOTBkNzAzOWE3
MS4uNjgwZjMzZDYyMmI5MTA5N2U0MTliMGU1ZmZjMmI2ODkxZjExNmM5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NMYXllckZhY3RvcnkuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIklu
TWVtb3J5RGlzcGxheUxpc3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTW9k
ZWwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBRmlsdGVycy5oIgpAQCAtNDAyLDcgKzQwMyw3IEBA
IFJlZjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3Jt
Q0FBbmltYXRpb24oUGxhdGZvcm1DQUFuCiAjZW5kaWYKIH0KIAotdHlwZWRlZiBIYXNoTWFwPGNv
bnN0IEdyYXBoaWNzTGF5ZXJDQSosIHN0ZDo6cGFpcjxGbG9hdFJlY3QsIHN0ZDo6dW5pcXVlX3B0
cjxEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q+Pj4gTGF5ZXJEaXNwbGF5TGlzdEhhc2hNYXA7Cit0
eXBlZGVmIEhhc2hNYXA8Y29uc3QgR3JhcGhpY3NMYXllckNBKiwgc3RkOjpwYWlyPEZsb2F0UmVj
dCwgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0Pj4+IExh
eWVyRGlzcGxheUxpc3RIYXNoTWFwOwogCiBzdGF0aWMgTGF5ZXJEaXNwbGF5TGlzdEhhc2hNYXAm
IGxheWVyRGlzcGxheUxpc3RNYXAoKQogewpAQCAtMTcxMCw3ICsxNzExLDcgQEAgdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0
YXRlLCBjb25zdCBUcmEKICAgICBpZiAodXNlc0Rpc3BsYXlMaXN0RHJhd2luZygpICYmIG1fZHJh
d3NDb250ZW50ICYmICghbV9oYXNFdmVyUGFpbnRlZCB8fCBoYWREaXJ0eVJlY3RzKSkgewogICAg
ICAgICBUcmFjZVNjb3BlIHRyYWNpbmdTY29wZShEaXNwbGF5TGlzdFJlY29yZFN0YXJ0LCBEaXNw
bGF5TGlzdFJlY29yZEVuZCk7CiAKLSAgICAgICAgbV9kaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PigpOworICAgICAgICBtX2Rpc3BsYXlMaXN0ID0gbWFr
ZVVuaXF1ZTxEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4oKTsKICAgICAgICAgCiAg
ICAgICAgIEZsb2F0UmVjdCBpbml0aWFsQ2xpcChib3VuZHNPcmlnaW4oKSwgc2l6ZSgpKTsKIApA
QCAtMTc0NCw3ICsxNzQ1LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXll
clBhaW50Q29udGVudHMoUGxhdGZvcm1DQUxheWVyKiwgR3JhcGhpY3NDb24KICAgICAgICAgCiAg
ICAgICAgIGlmIChVTkxJS0VMWShpc1RyYWNraW5nRGlzcGxheUxpc3RSZXBsYXkoKSkpIHsKICAg
ICAgICAgICAgIGF1dG8gcmVwbGF5TGlzdCA9IHJlcGxheWVyLnJlcGxheShjbGlwLCBpc1RyYWNr
aW5nRGlzcGxheUxpc3RSZXBsYXkoKSkudHJhY2tlZERpc3BsYXlMaXN0OwotICAgICAgICAgICAg
bGF5ZXJEaXNwbGF5TGlzdE1hcCgpLmFkZCh0aGlzLCBzdGQ6OnBhaXI8RmxvYXRSZWN0LCBzdGQ6
OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Pj4oY2xpcCwgV1RGTW92ZShyZXBs
YXlMaXN0KSkpOworICAgICAgICAgICAgbGF5ZXJEaXNwbGF5TGlzdE1hcCgpLmFkZCh0aGlzLCBz
dGQ6OnBhaXI8RmxvYXRSZWN0LCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q6OkluTWVtb3J5
RGlzcGxheUxpc3Q+PihjbGlwLCBXVEZNb3ZlKHJlcGxheUxpc3QpKSk7CiAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgcmVwbGF5ZXIucmVwbGF5KGNsaXApOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGJm
YjY1MTJlNGUyOWQ3ZDgzNmZlMTJjOWFkOWQzNDdiMTE2ZjE2MzQuLmQyODFkOTczMzIxMzE5ODU2
MDRhYzE5YWFiNmQyODRiYzQ2Mzg1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC00MSw3ICs0MSw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7Ci1jbGFzcyBEaXNw
bGF5TGlzdDsKK2NsYXNzIEluTWVtb3J5RGlzcGxheUxpc3Q7CiB9CiAKIGNsYXNzIEZsb2F0Um91
bmRlZFJlY3Q7CkBAIC02MzAsNyArNjMwLDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxGbG9h
dFJlY3Q+IG1fZGlydHlSZWN0czsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3Q+IG1fZGlzcGxheUxpc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlM
aXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PiBtX2Rpc3BsYXlMaXN0OwogCiAgICAgQ29udGVudHNM
YXllclB1cnBvc2UgbV9jb250ZW50c0xheWVyUHVycG9zZSB7IENvbnRlbnRzTGF5ZXJQdXJwb3Nl
OjpOb25lIH07CiAgICAgYm9vbCBtX2lzQ29tbWl0dGluZ0NoYW5nZXMgeyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggMWFjMGY2NDJiYTMzYTczNTA0YmU5MGUyMTk1Mzdj
MTAyM2FiOTUwNC4uYTg5YmY5MTk1MGQ1ZWI2NTI5OGViZmExNzQ5NTBjZjE4NjcwN2E0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2NiwyOCArMzY2LDI0IEBAIHZvaWQgRGlzcGxheUxp
c3Q6Oml0ZXJhdG9yOjp1cGRhdGVDdXJyZW50SXRlbSgpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBhdXRvKiBjbGllbnQgPSBpdGVtcy5tX3JlYWRpbmdDbGllbnQ7CiAgICAgYXV0byBw
YWRkZWRTaXplT2ZUeXBlQW5kSXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhp
dGVtVHlwZSk7Ci0gICAgaWYgKGNsaWVudCkgewotICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJ
dGVtID0gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0gPD0gc2l6ZU9mRml4ZWRCdWZmZXJGb3JDdXJy
ZW50SXRlbSA/IG1fZml4ZWRCdWZmZXJGb3JDdXJyZW50SXRlbSA6IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDhfdCo+KGZhc3RNYWxsb2MocGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW0pKTsKLSAgICAgICAg
aWYgKGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSgh
SXRlbUhhbmRsZSB7IG1fY3Vyc29yIH0uc2FmZUNvcHkoeyBtX2N1cnJlbnRCdWZmZXJGb3JJdGVt
IH0pKSkKLSAgICAgICAgICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKLQotICAgICAgICAgICAg
bV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVpbnRlcnByZXRf
Y2FzdDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsKLSAgICAgICAgICAgIGF1dG8qIHN0YXJ0T2ZE
YXRhID0gbV9jdXJzb3IgKyAyICogc2l6ZW9mKHVpbnQ2NF90KTsKLSAgICAgICAgICAgIGF1dG8g
ZGVjb2RlZEl0ZW1IYW5kbGUgPSBjbGllbnQtPmRlY29kZUl0ZW0oc3RhcnRPZkRhdGEsIGRhdGFM
ZW5ndGgsIGl0ZW1UeXBlLCBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtKTsKLSAgICAgICAgICAgIGlm
IChVTkxJS0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQotICAgICAgICAgICAgICAgIG1faXNWYWxp
ZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtWzBdID0gc3Rh
dGljX2Nhc3Q8dWludDhfdD4oaXRlbVR5cGUpOwotICAgICAgICAgICAgbV9jdXJyZW50SXRlbVNp
emVJbkJ1ZmZlciA9IDIgKiBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihh
bGlnbm9mKHVpbnQ2NF90KSwgZGF0YUxlbmd0aCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2Ugewot
ICAgICAgICBtX2N1cnJlbnRCdWZmZXJGb3JJdGVtID0gbV9jdXJzb3I7CisgICAgbV9jdXJyZW50
QnVmZmVyRm9ySXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtIDw9IHNpemVPZkZpeGVkQnVm
ZmVyRm9yQ3VycmVudEl0ZW0gPyBtX2ZpeGVkQnVmZmVyRm9yQ3VycmVudEl0ZW0gOiByZWludGVy
cHJldF9jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtKSk7
CisgICAgaWYgKGlzSW5saW5lSXRlbShpdGVtVHlwZSkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZ
KCFJdGVtSGFuZGxlIHsgbV9jdXJzb3IgfS5zYWZlQ29weSh7IG1fY3VycmVudEJ1ZmZlckZvckl0
ZW0gfSkpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisKICAgICAgICAgbV9jdXJy
ZW50SXRlbVNpemVJbkJ1ZmZlciA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGF1dG8qIGNsaWVudCA9IGl0ZW1zLm1fcmVhZGluZ0NsaWVudDsKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoY2xpZW50KTsKKyAgICAgICAgYXV0byBkYXRhTGVuZ3RoID0gcmVp
bnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KG1fY3Vyc29yKVsxXTsKKyAgICAgICAgYXV0byogc3Rh
cnRPZkRhdGEgPSBtX2N1cnNvciArIDIgKiBzaXplb2YodWludDY0X3QpOworICAgICAgICBhdXRv
IGRlY29kZWRJdGVtSGFuZGxlID0gY2xpZW50LT5kZWNvZGVJdGVtKHN0YXJ0T2ZEYXRhLCBkYXRh
TGVuZ3RoLCBpdGVtVHlwZSwgbV9jdXJyZW50QnVmZmVyRm9ySXRlbSk7CisgICAgICAgIGlmIChV
TkxJS0VMWSghZGVjb2RlZEl0ZW1IYW5kbGUpKQorICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFs
c2U7CisKKyAgICAgICAgbV9jdXJyZW50QnVmZmVyRm9ySXRlbVswXSA9IHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KGl0ZW1UeXBlKTsKKyAgICAgICAgbV9jdXJyZW50SXRlbVNpemVJbkJ1ZmZlciA9IDIg
KiBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90
KSwgZGF0YUxlbmd0aCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0RHJhd2luZ0NvbnRleHQuaAppbmRleCA5NmU0YjFlZmY5ODFlNDIyNzlkNzQ2ZGM2YmIzOWM4
YWE1MjhlMTQ1Li5kMzdjMDczNWJlYjU1NDkyZDkwZmY5ZWNlNGNhNGRiNzk5NWQ1ZjU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIs
OCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAorY2xh
c3MgSW5NZW1vcnlEaXNwbGF5TGlzdDsKKwogY2xhc3MgRHJhd2luZ0NvbnRleHQgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNDIsNyArNDQsNyBAQCBwdWJsaWM6
CiAgICAgRGlzcGxheUxpc3QgdGFrZURpc3BsYXlMaXN0KCkgeyByZXR1cm4gc3RkOjpleGNoYW5n
ZShtX2Rpc3BsYXlMaXN0LCB7IH0pOyB9CiAgICAgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KCkg
eyByZXR1cm4gbV9kaXNwbGF5TGlzdDsgfQogICAgIGNvbnN0IERpc3BsYXlMaXN0JiBkaXNwbGF5
TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3Q7IH0KLSAgICBjb25zdCBEaXNwbGF5
TGlzdCogcmVwbGF5ZWREaXNwbGF5TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGF5ZWREaXNw
bGF5TGlzdC5nZXQoKTsgfQorICAgIGNvbnN0IEluTWVtb3J5RGlzcGxheUxpc3QqIHJlcGxheWVk
RGlzcGxheUxpc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcGxheWVkRGlzcGxheUxpc3QuZ2V0KCk7
IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXko
Ym9vbCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYXlEaXNwbGF5TGlzdChHcmFwaGlj
c0NvbnRleHQmKTsKQEAgLTUwLDcgKzUyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEdy
YXBoaWNzQ29udGV4dCBtX2NvbnRleHQ7CiAgICAgRGlzcGxheUxpc3QgbV9kaXNwbGF5TGlzdDsK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IG1fcmVwbGF5ZWREaXNwbGF5TGlzdDsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5TGlzdD4gbV9yZXBsYXllZERpc3Bs
YXlMaXN0OwogICAgIGJvb2wgbV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSB7IGZhbHNlIH07CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAppbmRleCA0ZWI5
NjQ4NGM2OWY3NTkxYzZjNjljYThhNmZhNWY2MjM2ZDY3MDA0Li43Y2YwYmE3M2RhZmZlOTQzM2E4
ZWEzYzYzZjUzODUxZTdhZjEwNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdElt
YWdlQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb25jcmV0ZUltYWdlQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIgorI2luY2x1ZGUg
IkluTWVtb3J5RGlzcGxheUxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNl
IERpc3BsYXlMaXN0IHsKQEAgLTUxLDEzICs1MiwyMSBAQCBwdWJsaWM6CiAgICAgSW1hZ2VCdWZm
ZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBzdGQ6
OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgYmFja2VuZCkKICAgICAgICAgOiBCYXNlQ29uY3Jl
dGVJbWFnZUJ1ZmZlcihwYXJhbWV0ZXJzLCBXVEZNb3ZlKGJhY2tlbmQpKQogICAgICAgICAsIG1f
ZHJhd2luZ0NvbnRleHQobG9naWNhbFNpemUoKSwgYmFzZVRyYW5zZm9ybSgpKQorICAgICAgICAs
IG1fd3JpdGluZ0NsaWVudChXVEY6Om1ha2VVbmlxdWU8SW5NZW1vcnlEaXNwbGF5TGlzdDo6V3Jp
dGluZ0NsaWVudD4oKSkKKyAgICAgICAgLCBtX3JlYWRpbmdDbGllbnQoV1RGOjptYWtlVW5pcXVl
PEluTWVtb3J5RGlzcGxheUxpc3Q6OlJlYWRpbmdDbGllbnQ+KCkpCiAgICAgeworICAgICAgICBt
X2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCkuc2V0SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQo
bV93cml0aW5nQ2xpZW50LmdldCgpKTsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5
TGlzdCgpLnNldEl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50KG1fcmVhZGluZ0NsaWVudC5nZXQoKSk7
CiAgICAgfQogCiAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLCBSZWNvcmRlcjo6RGVsZWdhdGUqIGRlbGVnYXRlID0gbnVsbHB0
cikKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihwYXJhbWV0ZXJzKQogICAgICAg
ICAsIG1fZHJhd2luZ0NvbnRleHQobG9naWNhbFNpemUoKSwgYmFzZVRyYW5zZm9ybSgpLCBkZWxl
Z2F0ZSkKKyAgICAgICAgLCBtX3dyaXRpbmdDbGllbnQoV1RGOjptYWtlVW5pcXVlPEluTWVtb3J5
RGlzcGxheUxpc3Q6OldyaXRpbmdDbGllbnQ+KCkpCisgICAgICAgICwgbV9yZWFkaW5nQ2xpZW50
KFdURjo6bWFrZVVuaXF1ZTxJbk1lbW9yeURpc3BsYXlMaXN0OjpSZWFkaW5nQ2xpZW50PigpKQog
ICAgIHsKKyAgICAgICAgbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnNldEl0ZW1CdWZm
ZXJXcml0aW5nQ2xpZW50KG1fd3JpdGluZ0NsaWVudC5nZXQoKSk7CisgICAgICAgIG1fZHJhd2lu
Z0NvbnRleHQuZGlzcGxheUxpc3QoKS5zZXRJdGVtQnVmZmVyUmVhZGluZ0NsaWVudChtX3JlYWRp
bmdDbGllbnQuZ2V0KCkpOwogICAgIH0KIAogICAgIH5JbWFnZUJ1ZmZlcigpCkBAIC04MCw2ICs4
OSw4IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIERyYXdpbmdDb250ZXh0IG1fZHJhd2lu
Z0NvbnRleHQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50PiBt
X3dyaXRpbmdDbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEl0ZW1CdWZmZXJSZWFkaW5nQ2xp
ZW50PiBtX3JlYWRpbmdDbGllbnQ7CiB9OwogCiB9IC8vIERpc3BsYXlMaXN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IGI1YzM3NDE5ZDZmZmFhMTY4
ZDRiYjk5ZTQxODg0ZmRhZDRkMTc2OTcuLjk3YmFmNDliYzQ4YTE5YjQ2OTM0YzViNzdkYjljYThi
YmJiYmQwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQzNywxNCArNDM3LDE0IEBAIHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGlu
bGluZSBjb25zdGV4cHIgYm9vbCBIYXNJc1ZhbGlkID0gZmFsc2U7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzSXNWYWxpZDxULCBzdGQ6OnZvaWRfdDxkZWNs
dHlwZShzdGQ6OmRlY2x2YWw8VD4oKS5pc1ZhbGlkKCkpPj4gPSB0cnVlOwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBJdGVtPgotdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDwhSGFzSXNWYWxpZDxJdGVt
PiwgYm9vbD4gY29weUludG8oY29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCog
ZGVzdGluYXRpb25XaXRoT2Zmc2V0KQorc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8
IUhhc0lzVmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1I
YW5kbGUsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKIHsKICAgICBuZXcgKGRlc3Rp
bmF0aW9uV2l0aE9mZnNldCkgSXRlbShpdGVtSGFuZGxlLmdldDxJdGVtPigpKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KLXR5cGVuYW1lIHN0ZDo6ZW5h
YmxlX2lmX3Q8SGFzSXNWYWxpZDxJdGVtPiwgYm9vbD4gY29weUludG8oY29uc3QgSXRlbUhhbmRs
ZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zmc2V0KQorc3RhdGljIHR5
cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8SGFzSXNWYWxpZDxJdGVtPiwgYm9vbD4gY29weUludG8o
Y29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zm
c2V0KQogewogICAgIGF1dG8qIG5ld0l0ZW0gPSBuZXcgKGRlc3RpbmF0aW9uV2l0aE9mZnNldCkg
SXRlbShpdGVtSGFuZGxlLmdldDxJdGVtPigpKTsKICAgICByZXR1cm4gbmV3SXRlbS0+aXNWYWxp
ZCgpOwpAQCAtNjA1LDcgKzYwNSw2IEBAIEl0ZW1CdWZmZXI6On5JdGVtQnVmZmVyKCkKIEl0ZW1C
dWZmZXI6Okl0ZW1CdWZmZXIoSXRlbUJ1ZmZlciYmIG90aGVyKQogICAgIDogbV9yZWFkaW5nQ2xp
ZW50KHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9yZWFkaW5nQ2xpZW50LCBudWxscHRyKSkKICAgICAs
IG1fd3JpdGluZ0NsaWVudChzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fd3JpdGluZ0NsaWVudCwgbnVs
bHB0cikpCi0gICAgLCBtX2l0ZW1zVG9EZXN0cm95SW5BbGxvY2F0ZWRCdWZmZXJzKHN0ZDo6ZXhj
aGFuZ2Uob3RoZXIubV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycywgeyB9KSkKICAg
ICAsIG1fYWxsb2NhdGVkQnVmZmVycyhzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fYWxsb2NhdGVkQnVm
ZmVycywgeyB9KSkKICAgICAsIG1fcmVhZE9ubHlCdWZmZXJzKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIu
bV9yZWFkT25seUJ1ZmZlcnMsIHsgfSkpCiAgICAgLCBtX3dyaXRhYmxlQnVmZmVyKHN0ZDo6ZXhj
aGFuZ2Uob3RoZXIubV93cml0YWJsZUJ1ZmZlciwgeyB9KSkKQEAgLTYxNyw3ICs2MTYsNiBAQCBJ
dGVtQnVmZmVyJiBJdGVtQnVmZmVyOjpvcGVyYXRvcj0oSXRlbUJ1ZmZlciYmIG90aGVyKQogewog
ICAgIG1fcmVhZGluZ0NsaWVudCA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9yZWFkaW5nQ2xpZW50
LCBudWxscHRyKTsKICAgICBtX3dyaXRpbmdDbGllbnQgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1f
d3JpdGluZ0NsaWVudCwgbnVsbHB0cik7Ci0gICAgbV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVk
QnVmZmVycyA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pdGVtc1RvRGVzdHJveUluQWxsb2NhdGVk
QnVmZmVycywgeyB9KTsKICAgICBtX2FsbG9jYXRlZEJ1ZmZlcnMgPSBzdGQ6OmV4Y2hhbmdlKG90
aGVyLm1fYWxsb2NhdGVkQnVmZmVycywgeyB9KTsKICAgICBtX3JlYWRPbmx5QnVmZmVycyA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9yZWFkT25seUJ1ZmZlcnMsIHsgfSk7CiAgICAgbV93cml0YWJs
ZUJ1ZmZlciA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV93cml0YWJsZUJ1ZmZlciwgeyB9KTsKQEAg
LTY1MSw5ICs2NDksNiBAQCB2b2lkIEl0ZW1CdWZmZXI6OmZvckVhY2hJdGVtQnVmZmVyKEZ1bmN0
aW9uPHZvaWQoY29uc3QgSXRlbUJ1ZmZlckhhbmRsZSYpPiYmIG1hcAogCiB2b2lkIEl0ZW1CdWZm
ZXI6OmNsZWFyKCkKIHsKLSAgICBmb3IgKGF1dG8gaXRlbSA6IHN0ZDo6ZXhjaGFuZ2UobV9pdGVt
c1RvRGVzdHJveUluQWxsb2NhdGVkQnVmZmVycywgeyB9KSkKLSAgICAgICAgaXRlbS5kZXN0cm95
KCk7Ci0KICAgICBmb3IgKGF1dG8qIGJ1ZmZlciA6IHN0ZDo6ZXhjaGFuZ2UobV9hbGxvY2F0ZWRC
dWZmZXJzLCB7IH0pKQogICAgICAgICBmYXN0RnJlZShidWZmZXIpOwogCkBAIC02ODIsMTggKzY3
NywzMCBAQCBEaWRDaGFuZ2VJdGVtQnVmZmVyIEl0ZW1CdWZmZXI6OnN3YXBXcml0YWJsZUJ1ZmZl
cklmTmVlZGVkKHNpemVfdCBudW1iZXJPZkJ5dGVzKQogCiB2b2lkIEl0ZW1CdWZmZXI6OmFwcGVu
ZChJdGVtSGFuZGxlIHRlbXBvcmFyeUl0ZW0pCiB7Ci0gICAgYXV0byBkYXRhID0gbV93cml0aW5n
Q2xpZW50LT5lbmNvZGVJdGVtKHRlbXBvcmFyeUl0ZW0pOwotICAgIGlmICghZGF0YSkKLSAgICAg
ICAgcmV0dXJuOworICAgIGF1dG8gcmVxdWlyZWRTaXplRm9ySXRlbSA9IG1fd3JpdGluZ0NsaWVu
dC0+cmVxdWlyZWRTaXplRm9ySXRlbSh0ZW1wb3JhcnlJdGVtKTsKKyAgICBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBvdXRPZkxpbmVJdGVtOworICAgIGlmICghcmVxdWlyZWRTaXplRm9ySXRlbSkgewor
ICAgICAgICBvdXRPZkxpbmVJdGVtID0gbV93cml0aW5nQ2xpZW50LT5lbmNvZGVJdGVtT3V0T2ZM
aW5lKHRlbXBvcmFyeUl0ZW0pOworICAgICAgICBpZiAoIW91dE9mTGluZUl0ZW0pCisgICAgICAg
ICAgICByZXR1cm47CisgICAgfQogCi0gICAgYXV0byBkYXRhTGVuZ3RoID0gZGF0YS0+c2l6ZSgp
OworICAgIGF1dG8gZGF0YUxlbmd0aCA9IHZhbHVlT3JDb21wdXRlKHJlcXVpcmVkU2l6ZUZvckl0
ZW0sIFsmXSB7CisgICAgICAgIEFTU0VSVChvdXRPZkxpbmVJdGVtKTsKKyAgICAgICAgcmV0dXJu
IG91dE9mTGluZUl0ZW0tPnNpemUoKTsKKyAgICB9KTsKICAgICBhdXRvIGFkZGl0aW9uYWxDYXBh
Y2l0eUZvckVuY29kZWRJdGVtID0gMiAqIHNpemVvZih1aW50NjRfdCkgKyByb3VuZFVwVG9NdWx0
aXBsZU9mKGFsaWdub2YodWludDY0X3QpLCBkYXRhTGVuZ3RoKTsKIAogICAgIGF1dG8gYnVmZmVy
Q2hhbmdlZCA9IHN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKGFkZGl0aW9uYWxDYXBhY2l0eUZv
ckVuY29kZWRJdGVtKTsKIAogICAgIG1fd3JpdGFibGVCdWZmZXIuZGF0YVttX3dyaXR0ZW5OdW1i
ZXJPZkJ5dGVzXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHRlbXBvcmFyeUl0ZW0udHlwZSgpKTsK
ICAgICByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV93cml0YWJsZUJ1ZmZlci5kYXRhICsg
bV93cml0dGVuTnVtYmVyT2ZCeXRlcylbMV0gPSBkYXRhTGVuZ3RoOwotICAgIG1lbWNweShtX3dy
aXRhYmxlQnVmZmVyLmRhdGEgKyBtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzICsgMiAqIHNpemVvZih1
aW50NjRfdCksIGRhdGEtPmRhdGFBc1VJbnQ4UHRyKCksIGRhdGFMZW5ndGgpOworICAgIGF1dG8q
IGxvY2F0aW9uID0gbV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVuTnVtYmVyT2ZCeXRl
cyArIDIgKiBzaXplb2YodWludDY0X3QpOworCisgICAgaWYgKHJlcXVpcmVkU2l6ZUZvckl0ZW0p
CisgICAgICAgIG1fd3JpdGluZ0NsaWVudC0+ZW5jb2RlSXRlbUlubGluZSh0ZW1wb3JhcnlJdGVt
LCBsb2NhdGlvbik7CisgICAgZWxzZQorICAgICAgICBtZW1jcHkobG9jYXRpb24sIG91dE9mTGlu
ZUl0ZW0tPmRhdGFBc1VJbnQ4UHRyKCksIGRhdGFMZW5ndGgpOwogCiAgICAgZGlkQXBwZW5kRGF0
YShhZGRpdGlvbmFsQ2FwYWNpdHlGb3JFbmNvZGVkSXRlbSwgYnVmZmVyQ2hhbmdlZCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKaW5kZXggMTM4ZDljYTBiZDcz
NDNkYmJmNWY1MTkxNjA3YzNiMTkyYTM3N2JlYi4uNTQ3NGViOTcxNzNhNzVjMjg1ZDhjMGJlMGU0
NzFmNjZmZjMyM2Q4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBJdGVtSGFuZGxlIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBUJiBnZXQoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzPFQ+KCkpOwotICAg
ICAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8VCo+KCZkYXRhW3NpemVvZih1aW50NjRfdCld
KTsKKyAgICAgICAgcmV0dXJuICpyZWludGVycHJldF9jYXN0PFQqPihkYXRhICsgc2l6ZW9mKHVp
bnQ2NF90KSk7CiAgICAgfQogCiAgICAgYm9vbCBzYWZlQ29weShJdGVtSGFuZGxlIGRlc3RpbmF0
aW9uKSBjb25zdDsKQEAgLTg3LDE2ICs4Nyw0MCBAQCBlbnVtIGNsYXNzIERpZENoYW5nZUl0ZW1C
dWZmZXIgOiBib29sIHsgTm8sIFllcyB9OwogCiBjbGFzcyBJdGVtQnVmZmVyV3JpdGluZ0NsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQoKSB7IH0K
KyAgICB2aXJ0dWFsIH5JdGVtQnVmZmVyV3JpdGluZ0NsaWVudCgpCisgICAgeworICAgIH0KKwor
ICAgIHZpcnR1YWwgSXRlbUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVtQnVmZmVyKHNpemVfdCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQogCi0gICAgdmlydHVhbCBJdGVtQnVmZmVy
SGFuZGxlIGNyZWF0ZUl0ZW1CdWZmZXIoc2l6ZV90KSA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtKEl0ZW1IYW5kbGUpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkQXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90IG51
bWJlck9mQnl0ZXMsIERpZENoYW5nZUl0ZW1CdWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIE9wdGlv
bmFsPHN0ZDo6c2l6ZV90PiByZXF1aXJlZFNpemVGb3JJdGVtKEl0ZW1IYW5kbGUpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KKworICAgIHZpcnR1YWwg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShJdGVtSGFuZGxlKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgdmlydHVhbCB2
b2lkIGVuY29kZUl0ZW1JbmxpbmUoSXRlbUhhbmRsZSwgdWludDhfdCopIGNvbnN0CisgICAgewor
ICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRBcHBlbmREYXRhKGNvbnN0IEl0ZW1CdWZmZXJI
YW5kbGUmLCBzaXplX3QgbnVtYmVyT2ZCeXRlcywgRGlkQ2hhbmdlSXRlbUJ1ZmZlcikKKyAgICB7
CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkJ5dGVzKTsKKyAgICB9CiB9OwogCiBjbGFz
cyBJdGVtQnVmZmVyUmVhZGluZ0NsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+SXRlbUJ1
ZmZlclJlYWRpbmdDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIH5JdGVtQnVmZmVyUmVhZGluZ0Ns
aWVudCgpCisgICAgeworICAgIH0KIAogICAgIHZpcnR1YWwgT3B0aW9uYWw8SXRlbUhhbmRsZT4g
V0FSTl9VTlVTRURfUkVUVVJOIGRlY29kZUl0ZW0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90
IGRhdGFMZW5ndGgsIEl0ZW1UeXBlLCB1aW50OF90KiBoYW5kbGVMb2NhdGlvbikgPSAwOwogfTsK
QEAgLTE0OSw5ICsxNzMsMTAgQEAgcHVibGljOgogICAgIC8vIGRhdGEgYmFjayBpbnRvIGFuIGl0
ZW0gb2YgdHlwZSBULgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIGNsYXNzLi4uIEFyZ3M+IHZv
aWQgYXBwZW5kKEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVlIHx8ICFUOjppc0lubGluZUl0
ZW0pOworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJs
ZTxUPjo6dmFsdWUgPT0gVDo6aXNJbmxpbmVJdGVtKTsKIAotICAgICAgICBpZiAoIVQ6OmlzSW5s
aW5lSXRlbSAmJiBtX3dyaXRpbmdDbGllbnQpIHsKKyAgICAgICAgaWYgKCFUOjppc0lubGluZUl0
ZW0pIHsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fd3JpdGluZ0NsaWVudCk7CiAjaWYg
Q09NUElMRVIoTVNWQykKICAgICAgICAgICAgIF9fZGVjbHNwZWMoYWxpZ24oOCkpIHR5cGVkZWYg
dWludDhfdCBFbmNvZGluZ0J1ZmZlcltzaXplb2YodWludDY0X3QpICsgc2l6ZW9mKFQpXTsKICNl
bHNlCkBAIC0xNjcsOSArMTkyLDYgQEAgcHVibGljOgogCiAgICAgICAgIGF1dG8gYnVmZmVyQ2hh
bmdlZCA9IHN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKHBhZGRlZFNpemVPZlR5cGVBbmRJdGVt
SW5CeXRlcyhUOjppdGVtVHlwZSkpOwogCi0gICAgICAgIGlmICghc3RkOjppc190cml2aWFsbHlf
ZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSkKLSAgICAgICAgICAgIG1faXRlbXNUb0Rlc3Ryb3lJbkFs
bG9jYXRlZEJ1ZmZlcnMuYXBwZW5kKHsgJm1fd3JpdGFibGVCdWZmZXIuZGF0YVttX3dyaXR0ZW5O
dW1iZXJPZkJ5dGVzXSB9KTsKLQogICAgICAgICB1bmNoZWNrZWRBcHBlbmQ8VD4oYnVmZmVyQ2hh
bmdlZCwgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICB9CiAKQEAgLTE5NCw3ICsy
MTYsNiBAQCBwcml2YXRlOgogCiAgICAgSXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQqIG1fcmVhZGlu
Z0NsaWVudCB7IG51bGxwdHIgfTsKICAgICBJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCogbV93cml0
aW5nQ2xpZW50IHsgbnVsbHB0ciB9OwotICAgIFZlY3RvcjxJdGVtSGFuZGxlPiBtX2l0ZW1zVG9E
ZXN0cm95SW5BbGxvY2F0ZWRCdWZmZXJzOwogICAgIFZlY3Rvcjx1aW50OF90Kj4gbV9hbGxvY2F0
ZWRCdWZmZXJzOwogICAgIEl0ZW1CdWZmZXJIYW5kbGVzIG1fcmVhZE9ubHlCdWZmZXJzOwogICAg
IEl0ZW1CdWZmZXJIYW5kbGUgbV93cml0YWJsZUJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlcGxheWVyLmNwcAppbmRleCAzMmYwN2I5Njk1ZDJjY2IxNjcyMjBlYzBmODUwOGU0
M2RmMzU2NDY4Li5lZGY4ZTFjN2IwYWNhOTcyOTFjNTJkYmY5N2QwY2VhOTM0MzE3MjI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZXBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbXMuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIApAQCAtMTc5LDkgKzE4MCw5IEBA
IFJlcGxheVJlc3VsdCBSZXBsYXllcjo6cmVwbGF5KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENs
aXAsIGJvb2wgdHJhY2tSZXBsYXlMaXN0CiAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0
cywgc3RyZWFtIDw8ICJcblJlcGxheWluZyB3aXRoIGNsaXAgIiA8PCBpbml0aWFsQ2xpcCk7CiAg
ICAgVU5VU0VEX1BBUkFNKGluaXRpYWxDbGlwKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNw
bGF5TGlzdD4gcmVwbGF5TGlzdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5NZW1vcnlEaXNwbGF5
TGlzdD4gcmVwbGF5TGlzdDsKICAgICBpZiAoVU5MSUtFTFkodHJhY2tSZXBsYXlMaXN0KSkKLSAg
ICAgICAgcmVwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q+KCk7CisgICAgICAgIHJl
cGxheUxpc3QgPSBtYWtlVW5pcXVlPEluTWVtb3J5RGlzcGxheUxpc3Q+KCk7CiAKICNpZiAhTE9H
X0RJU0FCTEVECiAgICAgc2l6ZV90IGkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
cGxheWVyLmgKaW5kZXggMjQ1Yzc4MDkzM2I1YmQzNDZhYTcxYmFkODUyOWM1Yzc3MWE2ZmE4NC4u
YWMwZGY2MDYzOTIzYmNhNDI4Yzk2NzIyMzk1MWM4NWQ1YjkxNWE2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVw
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZXBsYXllci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgorI2luY2x1ZGUgIkluTWVtb3J5RGlzcGxheUxpc3Qu
aCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtNDcsNyArNDcsNyBAQCBlbnVtIGNsYXNzIFN0b3BSZXBsYXlSZWFzb24g
OiB1aW50OF90IHsKIH07CiAKIHN0cnVjdCBSZXBsYXlSZXN1bHQgewotICAgIHN0ZDo6dW5pcXVl
X3B0cjxEaXNwbGF5TGlzdD4gdHJhY2tlZERpc3BsYXlMaXN0OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxJbk1lbW9yeURpc3BsYXlMaXN0PiB0cmFja2VkRGlzcGxheUxpc3Q7CiAgICAgc2l6ZV90IG51
bWJlck9mQnl0ZXNSZWFkIHsgMCB9OwogICAgIE9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcj4gbmV4dERlc3RpbmF0aW9uSW1hZ2VCdWZmZXI7CiAgICAgT3B0aW9uYWw8UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyPiBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0luTWVtb3J5RGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkNTBm
MjcxZGFiNTM4Njg4ZTI1NGUzMjkzNWRiMTVkOWI5Zjc2N2QKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNw
bGF5TGlzdC5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbk1lbW9y
eURpc3BsYXlMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBEaXNwbGF5
TGlzdCB7CisKK09wdGlvbmFsPHN0ZDo6c2l6ZV90PiBJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0
aW5nQ2xpZW50OjpyZXF1aXJlZFNpemVGb3JJdGVtKEl0ZW1IYW5kbGUgaXRlbUhhbmRsZSkgY29u
c3QKK3sKKyAgICByZXR1cm4gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGl0ZW1IYW5k
bGUudHlwZSgpKTsKK30KKwordm9pZCBJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50
OjplbmNvZGVJdGVtSW5saW5lKEl0ZW1IYW5kbGUgaXRlbUhhbmRsZSwgdWludDhfdCogbG9jYXRp
b24pIGNvbnN0Cit7CisgICAgaXRlbUhhbmRsZS5zYWZlQ29weSh7IGxvY2F0aW9uIH0pOworfQor
CitPcHRpb25hbDxJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gSW5NZW1vcnlEaXNwbGF5
TGlzdDo6UmVhZGluZ0NsaWVudDo6ZGVjb2RlSXRlbShjb25zdCB1aW50OF90KiBkYXRhLCBzaXpl
X3QgZGF0YUxlbmd0aCwgSXRlbVR5cGUgdHlwZSwgdWludDhfdCogaGFuZGxlTG9jYXRpb24pCit7
CisgICAgY29uc3QgSXRlbUhhbmRsZSBkYXRhSGFuZGxlIHsgY29uc3RfY2FzdDx1aW50OF90Kj4o
ZGF0YSkgfTsKKyAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIGRhdGFIYW5kbGUudHlwZSgpID09IHR5
cGUpOworICAgIEFTU0VSVF9VTlVTRUQoZGF0YUxlbmd0aCwgZGF0YUxlbmd0aCA+PSBwYWRkZWRT
aXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoZGF0YUhhbmRsZS50eXBlKCkpKTsKKyAgICBJdGVtSGFu
ZGxlIHJlc3VsdCB7IGhhbmRsZUxvY2F0aW9uIH07CisgICAgaWYgKGRhdGFIYW5kbGUuc2FmZUNv
cHkocmVzdWx0KSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworfQorCitJbk1lbW9yeURpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0KCkKKyAg
ICA6IG1fd3JpdGluZ0NsaWVudChXVEY6Om1ha2VVbmlxdWU8V3JpdGluZ0NsaWVudD4oKSkKKyAg
ICAsIG1fcmVhZGluZ0NsaWVudChXVEY6Om1ha2VVbmlxdWU8UmVhZGluZ0NsaWVudD4oKSkKK3sK
KyAgICBzZXRJdGVtQnVmZmVyV3JpdGluZ0NsaWVudChtX3dyaXRpbmdDbGllbnQuZ2V0KCkpOwor
ICAgIHNldEl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50KG1fcmVhZGluZ0NsaWVudC5nZXQoKSk7Cit9
CisKK0luTWVtb3J5RGlzcGxheUxpc3Q6On5Jbk1lbW9yeURpc3BsYXlMaXN0KCkKK3sKKyAgICBh
dXRvIGVuZCA9IHRoaXMtPmVuZCgpOworICAgIGZvciAoYXV0byBbaXRlbSwgZXh0ZW50LCBzaXpl
XSA6ICp0aGlzKSB7CisgICAgICAgIEFTU0VSVChpdGVtKTsKKyAgICAgICAgaWYgKCFpdGVtKQor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGl0ZW0tPmRlc3Ryb3koKTsKKyAgICB9Cit9CisK
K30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRl
OGY5OTA2NDc0MjVlYzk3MWJjODllYmRiMDU1ZDljMmNmMzcwODAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlE
aXNwbGF5TGlzdC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGlzcGxh
eUxpc3QuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVz
cGFjZSBEaXNwbGF5TGlzdCB7CisKK2NsYXNzIEluTWVtb3J5RGlzcGxheUxpc3QgOiBwdWJsaWMg
RGlzcGxheUxpc3QgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIEluTWVtb3J5RGlzcGxh
eUxpc3QoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIH5Jbk1lbW9yeURpc3BsYXlMaXN0KCk7CisK
KyAgICBjbGFzcyBXRUJDT1JFX0VYUE9SVCBXcml0aW5nQ2xpZW50IDogcHVibGljIEl0ZW1CdWZm
ZXJXcml0aW5nQ2xpZW50IHsKKyAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAg
cHJpdmF0ZToKKyAgICAgICAgT3B0aW9uYWw8c3RkOjpzaXplX3Q+IHJlcXVpcmVkU2l6ZUZvckl0
ZW0oSXRlbUhhbmRsZSkgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgZW5jb2RlSXRlbUlubGlu
ZShJdGVtSGFuZGxlLCB1aW50OF90KikgY29uc3QgZmluYWw7CisgICAgfTsKKworICAgIGNsYXNz
IFdFQkNPUkVfRVhQT1JUIFJlYWRpbmdDbGllbnQgOiBwdWJsaWMgSXRlbUJ1ZmZlclJlYWRpbmdD
bGllbnQgeworICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwcml2YXRlOgor
ICAgICAgICBPcHRpb25hbDxJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gZGVjb2RlSXRl
bShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBJdGVtVHlwZSwgdWludDhfdCopIGZpbmFsOworICAg
IH07CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPFdyaXRpbmdDbGllbnQ+IG1fd3Jp
dGluZ0NsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhZGluZ0NsaWVudD4gbV9yZWFkaW5n
Q2xpZW50OworfTsKKworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0dseXBoRGlzcGxheUxpc3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dseXBo
RGlzcGxheUxpc3RDYWNoZS5oCmluZGV4IDJiMmYyMjNhMTM1MTYxNjJiMTBkNzE1NGRjZWEyYTY4
NTY5YmIzZmEuLmExNWE3NDQ4NWE1ZjNjYzE5MjY1MDIyZGI1NTJmNjJmOTc0MWNmYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HbHlwaERpc3BsYXlMaXN0Q2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR2x5cGhEaXNwbGF5TGlzdENhY2hlLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUs
OCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRpc3BsYXlMaXN0LmgiCiAj
aW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJJbk1lbW9yeURpc3BsYXlMaXN0Lmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgpAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJp
dmF0ZToKLSAgICB1c2luZyBHbHlwaFJ1bk1hcCA9IEhhc2hNYXA8Y29uc3QgTGF5b3V0UnVuKiwg
c3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4+OworICAgIHVzaW5nIEds
eXBoUnVuTWFwID0gSGFzaE1hcDxjb25zdCBMYXlvdXRSdW4qLCBzdGQ6OnVuaXF1ZV9wdHI8RGlz
cGxheUxpc3Q6OkluTWVtb3J5RGlzcGxheUxpc3Q+PjsKICAgICBHbHlwaFJ1bk1hcCBtX2dseXBo
UnVuTWFwOwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggYmY0Y2U1
YjZmNjZlOWMxNmY3MzY5MzVhYzQxZjY3YWQ3M2Y3ZjU0MS4uYTlmYWE0ZjljZjFlNzBjMTZiZDFm
YjFjYmYyYzc3MjRmZDljNzk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTEw
NCw2ICsxMDQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5jYWNoZUltYWdlQnVmZmVyKCp0aGlz
KTsKIAogICAgICAgICBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCkuc2V0SXRlbUJ1ZmZl
cldyaXRpbmdDbGllbnQodGhpcyk7CisgICAgICAgIG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxp
c3QoKS5zZXRJdGVtQnVmZmVyUmVhZGluZ0NsaWVudChudWxscHRyKTsKICAgICAgICAgbV9kcmF3
aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpLnNldFRyYWNrc0RyYXdpbmdJdGVtRXh0ZW50cyhmYWxz
ZSk7CiAgICAgfQogCkBAIC0zMTAsNyArMzExLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgp
LmNhY2hlRm9udChmb250KTsKICAgICB9CiAKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVtQnVmZmVyKHNpemVfdCBjYXBhY2l0eSkgb3ZlcnJpZGUK
KyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRsZSBjcmVhdGVJdGVtQnVm
ZmVyKHNpemVfdCBjYXBhY2l0eSkgZmluYWwKICAgICB7CiAgICAgICAgIGlmIChMSUtFTFkobV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpKQogICAgICAgICAgICAgcmV0dXJuIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LT5jcmVhdGVJdGVtQnVmZmVyKGNhcGFjaXR5LCBtX3JlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CkBAIC0zMTksNyArMzIwLDcgQEAgcHJvdGVjdGVkOgog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+IGVuY29kZUl0ZW0oV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSkg
Y29uc3Qgb3ZlcnJpZGUKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBlbmNvZGVJ
dGVtT3V0T2ZMaW5lKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlIGl0ZW0pIGNvbnN0
IGZpbmFsCiAgICAgewogICAgICAgICAvKiBUaGlzIG5lZWRzIHRvIG1hdGNoICgxKSBpc0lubGlu
ZUl0ZW0oKSBpbiBEaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCwgKDIpIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmRlY29kZUl0ZW0oKSwKICAgICAgICAgICogYW5kICgzKSBhbGwgdGhlICJzdGF0aWMg
Y29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtInMgaW5zaWRlIHRoZSBpbmRpdmlkdWFsIGl0ZW0g
Y2xhc3Nlcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA4NjQ3NDI5ODlmYzBiZDEzMzNhZDdlYjgzNWI3YWFjMWI1OGMyMmZiLi4xMWM4MGI0YmFm
NDZkOWQ4YjRjOTY3OTBhMWE2NzMzN2Y5MGZlNDM5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDQtMDIgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFBy
b2Nlc3NdIFNpbXBsaWZ5IERpc3BsYXlMaXN0OjpJdGVyYXRvciBwYXJ0IDE6IFJlcXVpcmUgZW5j
b2RpbmcvZGVjb2RpbmcgZGVsZWdhdGVzIGZvciBub24taW5saW5lIGRpc3BsYXkgbGlzdCBpdGVt
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODQ5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHA6CisKIDIwMjEtMDQtMDIgIENocmlzIEZsZWl6YWNo
ICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogdGV4dFJlY3RzRnJvbU1hcmtl
cnMgYWx3YXlzIGZhaWxzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKaW5kZXggYjk5N2UyYjQwOGEzYmZlMDlkNWIxYWZk
YmYxZGRiZmE0NTdkOTMxNy4uZDRmZGQwYmU4YmFmNjNhYmY1Yjg2M2RmNDdiZThiYzQwMTNlZWE3
NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlM
aXN0VGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNw
bGF5TGlzdFRlc3RzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIw
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5
TGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvR3JhZGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0luTWVtb3J5RGlzcGxheUxp
c3QuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkBAIC01OCw3ICs1OSw3IEBAIHN0YXRpYyBQYXRoIGNyZWF0ZUNvbXBsZXhQYXRoKCkKIAog
VEVTVChEaXNwbGF5TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykKIHsKLSAgICBEaXNwbGF5TGlzdCBs
aXN0OworICAgIEluTWVtb3J5RGlzcGxheUxpc3QgbGlzdDsKIAogICAgIEVYUEVDVF9UUlVFKGxp
c3QuaXNFbXB0eSgpKTsKIApAQCAtMTk4LDE1ICsxOTksMTMgQEAgVEVTVChEaXNwbGF5TGlzdFRl
c3RzLCBJdGVtQnVmZmVyQ2xpZW50KQogICAgICAgICAgICAgcmV0dXJuIHsgZ2xvYmFsQnVmZmVy
SWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgZ2xvYmFsSXRlbUJ1ZmZlckNhcGFjaXR5IH07
CiAgICAgICAgIH0KIAotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtKEl0
ZW1IYW5kbGUgaGFuZGxlKSBjb25zdCBmaW5hbAorICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0ZW1IYW5kbGUgaGFuZGxlKSBjb25zdCBmaW5hbAogICAg
ICAgICB7CiAgICAgICAgICAgICBhdXRvIGluZGV4ID0gbV9pdGVtcy5zaXplKCk7CiAgICAgICAg
ICAgICBtX2l0ZW1zLmFwcGVuZChoYW5kbGUuZ2V0PFN0cm9rZVBhdGg+KCkpOwogICAgICAgICAg
ICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+
KCZpbmRleCksIHNpemVvZihzaXplX3QpKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZGlk
QXBwZW5kRGF0YShjb25zdCBJdGVtQnVmZmVySGFuZGxlJiwgc2l6ZV90LCBEaWRDaGFuZ2VJdGVt
QnVmZmVyKSBmaW5hbCB7IH0KLQogICAgICAgICBWZWN0b3I8U3Ryb2tlUGF0aD4mIG1faXRlbXM7
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAppbmRleCBkZTZkZTZjNmFmMzFiNjhlZjZl
ZjgxNjNlMjAyNzMxODhmNjExNGFkLi4yNWU5OGJiMTE3Y2QxZDI2N2E2YTdhNDJkMGJhYTdmMjY5
NmIwZDI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cv
RGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDAsOCArMTAwLDEwIEBAIHByaXZhdGU6
CiAgICAgICAgIHJldHVybiB7IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIsIGdsb2JhbEl0ZW1CdWZm
ZXIsIGdsb2JhbEl0ZW1CdWZmZXJDYXBhY2l0eSB9OwogICAgIH0KIAotICAgIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IGVuY29kZUl0ZW0oSXRlbUhhbmRsZSkgY29uc3QgZmluYWwgeyByZXR1cm4gU2hh
cmVkQnVmZmVyOjpjcmVhdGUoKTsgfQotICAgIHZvaWQgZGlkQXBwZW5kRGF0YShjb25zdCBJdGVt
QnVmZmVySGFuZGxlJiwgc2l6ZV90LCBEaWRDaGFuZ2VJdGVtQnVmZmVyKSBmaW5hbCB7IH0KKyAg
ICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0ZW1IYW5kbGUpIGNv
bnN0IGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsK
KyAgICB9CiB9OwogCiBURVNUKERpc3BsYXlMaXN0VGVzdHMsIE91dE9mTGluZUl0ZW1EZWNvZGlu
Z0ZhaWx1cmUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>