<?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>174342</bug_id>
          
          <creation_ts>2017-07-10 19:43:23 -0700</creation_ts>
          <short_desc>[PAL] Move Clock into PAL</short_desc>
          <delta_ts>2017-09-27 12:50:49 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yoshiaki.jitsukawa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1327332</commentid>
    <comment_count>0</comment_count>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-07-10 19:43:23 -0700</bug_when>
    <thetext>Move the following files to PAL:
 Clock.cpp
 Clock.h
 ClockGeneric.cpp
 ClockGeneric.h
 mac/PlatformClockCA.cpp
 mac/PlatformClockCA.h
 mac/PlatformClockCM.h
 mac/PlatformClockCM.mm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352466</commentid>
    <comment_count>1</comment_count>
      <attachid>321759</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-09-25 15:50:14 -0700</bug_when>
    <thetext>Created attachment 321759
Just checking if PlatformClockCA is used</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352585</commentid>
    <comment_count>2</comment_count>
      <attachid>321796</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-09-25 22:45:33 -0700</bug_when>
    <thetext>Created attachment 321796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352587</commentid>
    <comment_count>3</comment_count>
      <attachid>321797</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-09-25 23:05:09 -0700</bug_when>
    <thetext>Created attachment 321797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352595</commentid>
    <comment_count>4</comment_count>
      <attachid>321797</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-25 23:37:55 -0700</bug_when>
    <thetext>Comment on attachment 321797
Patch

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

&gt; Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.cpp:36
&gt; +SOFT_LINK_FUNCTION_FOR_SOURCE(PAL, CoreMedia, CMTimeGetSeconds, Float64, (CMTime time), (time))

Why are these necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352599</commentid>
    <comment_count>5</comment_count>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-09-25 23:57:02 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #4)
&gt; Comment on attachment 321797 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=321797&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.cpp:36
&gt; &gt; +SOFT_LINK_FUNCTION_FOR_SOURCE(PAL, CoreMedia, CMTimeGetSeconds, Float64, (CMTime time), (time))
&gt; 
&gt; Why are these necessary?

These are required for mac 32 bit so I imported them from WebCore&apos;s 
CoreMediaSoftLink but looks like some more is needed to fix windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352605</commentid>
    <comment_count>6</comment_count>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-09-26 00:11:41 -0700</bug_when>
    <thetext>I needed to guard them with #if PLATFORM(COCOA)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352606</commentid>
    <comment_count>7</comment_count>
      <attachid>321802</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-09-26 00:12:47 -0700</bug_when>
    <thetext>Created attachment 321802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352609</commentid>
    <comment_count>8</comment_count>
      <attachid>321804</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2017-09-26 00:15:09 -0700</bug_when>
    <thetext>Created attachment 321804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352795</commentid>
    <comment_count>9</comment_count>
      <attachid>321804</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 12:57:34 -0700</bug_when>
    <thetext>Comment on attachment 321804
Patch

Clearing flags on attachment: 321804

Committed r222515: &lt;http://trac.webkit.org/changeset/222515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352796</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 12:57:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353679</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:50:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694133&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321759</attachid>
            <date>2017-09-25 15:50:14 -0700</date>
            <delta_ts>2017-09-25 22:45:28 -0700</delta_ts>
            <desc>Just checking if PlatformClockCA is used</desc>
            <filename>check-coreaudio.diff</filename>
            <type>text/plain</type>
            <size>466</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nsb2NrLmNwcAppbmRleCA4ZWQxYWRlLi43ZGQxOGI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ2xvY2suY3BwCkBAIC00MSw2ICs0MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxD
bG9jaz4gQ2xvY2s6OmNyZWF0ZSgpCiAjaWYgVVNFKENPUkVNRURJQSkKICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUNsb2NrQ00+KCk7CiAjZWxpZiBVU0UoQ09SRUFVRElPKQor
I2Vycm9yIFVTRShDT1JFQVVESU8pCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZv
cm1DbG9ja0NBPigpOwogI2Vsc2UKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDbG9ja0dl
bmVyaWM+KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321796</attachid>
            <date>2017-09-25 22:45:33 -0700</date>
            <delta_ts>2017-09-25 23:05:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174342-20170926144621.patch</filename>
            <type>text/plain</type>
            <size>63957</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkyOWE4YTFiOWZkMDVl
ODlkNDdhZDU2YWVlMjYyYjY5ZjUzNjEwMy4uYzU5MTdhOGQzZGUzZWViOWU3MThlZTE1NzllNzE5
ZTBjMDNhOWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA5LTI1ICBZb3No
aWFraSBKaXRzdWthd2EgIDxZb3NoaWFraS5KaXRzdWthd2FAc29ueS5jb20+CisKKyAgICAgICAg
W1BBTF0gTW92ZSBDbG9jayBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTWVkaWFDb250cm9sbGVyOjpNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAqIGh0bWwv
TWVkaWFDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vQ2xvY2suY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tD
QS5jcHA6IFJlbW92ZWQuIFBsYXRmb3JtQ2xvY2tDQSBpcyBubyBsb25nZXIgdXNlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmg6IFJlbW92ZWQuCisKIDIwMTctMDkt
MjQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBD
U1MgcmVnaW9ucyByZWxhdGVkIGZpZWxkcyBmcm9tIFJlbmRlclN0eWxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBhMjVjZWU4YTkwMTlkMDU1ZDZiNGE3MjQzMzRmOTk4ODJlMThkOTYxLi44OTg2MjE2
YzczNWQ1NjY0OGJlMGVjMGFmMDFjNzg5ODA1NDc4MDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMyBAQAorMjAxNy0wOS0yNSAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9zaGlha2ku
Sml0c3VrYXdhQHNvbnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgQ2xvY2sgaW50byBQQUwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDM0Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL1BsYXRmb3JtR1RLLmNtYWtl
OgorICAgICAgICAqIHBhbC9QbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBwYWwvc3lzdGVt
L0Nsb2NrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5oLgor
ICAgICAgICAqIHBhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAuCisgICAgICAgIChQQUw6OkNsb2Nr
OjpjcmVhdGUpOgorICAgICAgICAqIHBhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuaC4KKyAgICAgICAgKiBw
YWwvc3lzdGVtL21hYy9DbG9ja0NNLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NNLmguCisgICAgICAgICogcGFsL3N5c3RlbS9tYWMvQ2xv
Y2tDTS5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUNsb2NrQ00ubW0uCisgICAgICAgIChDbG9jazo6Y3JlYXRlKToKKyAgICAgICAgKENsb2NrQ006
OkNsb2NrQ00pOgorICAgICAgICAoQ2xvY2tDTTo6aW5pdGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2Up
OgorICAgICAgICAoQ2xvY2tDTTo6c2V0Q3VycmVudFRpbWUpOgorICAgICAgICAoQ2xvY2tDTTo6
Y3VycmVudFRpbWUgY29uc3QpOgorICAgICAgICAoQ2xvY2tDTTo6c2V0Q3VycmVudE1lZGlhVGlt
ZSk6CisgICAgICAgIChDbG9ja0NNOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAg
KENsb2NrQ006OnNldFBsYXlSYXRlKToKKyAgICAgICAgKENsb2NrQ006OnN0YXJ0KToKKyAgICAg
ICAgKENsb2NrQ006OnN0b3ApOgorCisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
LmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaDoKKyAgICAgICAgQWRk
IHJlcXVyaXJlZCBmdW5jdGlvbnMuCiAyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVm
IGxhemlseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOWNmZDQzNDdiODFkOTFkZTgzMDMyZTA3
YmQxMmJkMTM3MDA1YzlkOS4uODA5YzNiMTcwZjg3NjUyN2I3ZjQzMTc2ZDAyZWUzMjczY2U4NTNl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIzMDQsOCArMjMwNCw2IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCiAK
ICAgICBwbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmNwcAotICAgIHBsYXRmb3JtL0Nsb2NrLmNw
cAotICAgIHBsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAKICAgICBwbGF0Zm9ybS9Db250ZW50VHlw
ZS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOTBkMGI5MzY1MTNjYzI3MzQ1NWVkODZmYWUwMjY2ZDgwNmQ5NjQ0
ZC4uMjU1YTNhNzNjOWVmZWU4ZWEzODM4NzBhZmZlM2Y4ZTUyNjJhZTVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzEsNiAr
NzEsOSBAQAogCQkwQzVBRjkyMDFGNDNBNEM3MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQzVBRjkxNjFGNDNB
NEM3MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmggKi87IH07CiAJCTBDNUFGOTIxMUY0M0E0Qzcw
MDJFQUMwMiAvKiBTUUxpdGUzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwQzVBRjkxNzFGNDNBNEM3MDAyRUFDMDIgLyogU1FMaXRlM1NQSS5oICov
OyB9OwogCQkwQzVBRjkyMjFGNDNBNEM3MDAyRUFDMDIgLyogVUlLaXRTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBDNUFGOTE4MUY0M0E0QzcwMDJF
QUMwMiAvKiBVSUtpdFNQSS5oICovOyB9OworCQkwQzVGRkYwQzFGNzhEOTkwMDA5RUZGMUEgLyog
Q2xvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBD
NUZGRjBCMUY3OEQ5OEYwMDlFRkYxQSAvKiBDbG9jay5oICovOyB9OworCQkwQzVGRkYwRjFGNzhE
OURBMDA5RUZGMUEgLyogQ2xvY2tDTS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBDNUZGRjBEMUY3OEQ5RDgwMDlFRkYxQSAvKiBDbG9ja0NNLm1tICov
OyB9OworCQkwQzVGRkYxMDFGNzhEOURBMDA5RUZGMUEgLyogQ2xvY2tDTS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEM1RkZGMEUxRjc4RDlEQTAwOUVG
RjFBIC8qIENsb2NrQ00uaCAqLzsgfTsKIAkJMEM3Nzg1ODkxRjQ1MTMwRjAwRjRFQkI2IC8qIEFW
Rm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEM3Nzg1NzAxRjQ1MTMwRjAwRjRFQkI2IC8qIEFWRm91bmRhdGlvblNQSS5oICovOyB9
OwogCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYgLyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEM3Nzg1NzExRjQ1MTMw
RjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLzsgfTsKIAkJMEM3Nzg1OEIxRjQ1MTMw
RjAwRjRFQkI2IC8qIExvb2t1cFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEM3Nzg1NzIxRjQ1MTMwRjAwRjRFQkI2IC8qIExvb2t1cFNQSS5oICov
OyB9OwpAQCAtMTk4LDYgKzIwMSw5IEBACiAJCTBDNUFGOTE2MUY0M0E0QzcwMDJFQUMwMiAvKiBR
dWlja0xvb2tTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29r
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBDNUFGOTE3MUY0M0E0QzcwMDJF
QUMwMiAvKiBTUUxpdGUzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNR
TGl0ZTNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEM1QUY5MTgxRjQzQTRD
NzAwMkVBQzAyIC8qIFVJS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVJS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBDNUZGRjBCMUY3OEQ5
OEYwMDlFRkYxQSAvKiBDbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
bG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwQzVGRkYwRDFGNzhEOUQ4MDA5
RUZGMUEgLyogQ2xvY2tDTS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENsb2NrQ00ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBDNUZGRjBFMUY3
OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENsb2NrQ00uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEM3Nzg1NzAxRjQ1
MTMwRjAwRjRFQkI2IC8qIEFWRm91bmRhdGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBVkZvdW5kYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEM3Nzg1NzExRjQ1MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YURldGVjdG9yc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwQzc3ODU3MjFGNDUxMzBGMDBGNEVCQjYgLyogTG9va3VwU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvb2t1cFNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE2LDYgKzUyMiw3IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlBM0FCNkU1RDFGM0QxRTI4MDA5QzE0QjEgLyogY29jb2EgKi8sCiAJCQkJQTM3ODhFQTAx
RjA1QjdFMjAwNjc5NDI1IC8qIG1hYyAqLywKKwkJCQkwQzVGRkYwQjFGNzhEOThGMDA5RUZGMUEg
LyogQ2xvY2suaCAqLywKIAkJCQlBM0FCNkU1MTFGM0QxREM1MDA5QzE0QjEgLyogU2xlZXBEaXNh
Ymxlci5jcHAgKi8sCiAJCQkJQTNBQjZFNTMxRjNEMUREQjAwOUMxNEIxIC8qIFNsZWVwRGlzYWJs
ZXIuaCAqLywKIAkJCQlBMzc4OEU5QjFGMDVCNzgyMDA2Nzk0MjUgLyogU291bmQuY3BwICovLApA
QCAtNTI5LDYgKzUzNiw4IEBACiAJCUEzNzg4RUEwMUYwNUI3RTIwMDY3OTQyNSAvKiBtYWMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTBDNUZGRjBFMUY3
OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmggKi8sCisJCQkJMEM1RkZGMEQxRjc4RDlEODAwOUVG
RjFBIC8qIENsb2NrQ00ubW0gKi8sCiAJCQkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERl
ZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCiAJCQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICovLAogCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0
QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKQEAgLTU2NSw2ICs1NzQsOCBAQAogCQkJCTBDMkRBMDZG
MUYzM0NBODQwMERCQzMxNyAvKiBDRk5ldHdvcmtTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBD
MkRBMTNGMUYzQkVCNDkwMERCQzMxNyAvKiBDRk5TVVJMQ29ubmVjdGlvblNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyREEwNzAxRjMzQ0E4NDAwREJDMzE3IC8qIENGVXRpbGl0aWVzU1BJLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwQzVGRkYwQzFGNzhEOTkwMDA5RUZGMUEgLyogQ2xvY2suaCBp
biBIZWFkZXJzICovLAorCQkJCTBDNUZGRjEwMUY3OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQzA5RDA1ODFFMzFDNTdFMDA3MjVGMTggLyogY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTA3MTFGMzNDQTg0MDBEQkMzMTcgLyogQ29yZUF1ZGlv
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTExRTFGM0JFOUUwMDBEQkMzMTcgLyogQ29y
ZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTc0NCw2ICs3NTUsNyBAQAogCQkJaXNh
ID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwogCQkJZmlsZXMgPSAoCisJCQkJMEM1RkZGMEYxRjc4RDlEQTAwOUVGRjFBIC8qIENsb2NrQ00u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwQ0Y5OUNBODFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1
RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
MTE3NUI1ODFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybUdU
Sy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXgg
Njc0NjYxYmFjMjJkNzVlMzEzZmMyMDQ1MzhhZjg2ZDE3Y2Y3YWVhMy4uYzZkN2JiZWZiNTA3ZDUx
OGE1MTYzMTkzNTk5OGMyY2Q4MDQ5N2UwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRm
b3JtR1RLLmNtYWtlCkBAIC0xLDYgKzEsOCBAQAogbGlzdChBUFBFTkQgUEFMX1NPVVJDRVMKICAg
ICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0RpZ2VzdEdDcnlwdC5jcHAKIAorICAgIHN5c3RlbS9DbG9j
a0dlbmVyaWMuY3BwCisKICAgICBzeXN0ZW0vZ3RrL1NvdW5kR3RrLmNwcAogCiAgICAgdGV4dC9L
aWxsUmluZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1X
aW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4
IDhmMWZmODg0YWI4YzIwYWVhYWQ3MWYwOTQ1NjgzM2FkZDE4ODhlYmEuLjFlNjhkNGU5ZDAwMWYw
NGIzOGY1N2ZjNjUyODM3ZDQwZTg1ZGY2YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0
Zm9ybVdpbi5jbWFrZQpAQCAtMSw2ICsxLDggQEAKIGxpc3QoQVBQRU5EIFBBTF9TT1VSQ0VTCiAg
ICAgY3J5cHRvL3dpbi9DcnlwdG9EaWdlc3RXaW4uY3BwCiAKKyAgICBzeXN0ZW0vQ2xvY2tHZW5l
cmljLmNwcAorCiAgICAgc3lzdGVtL3dpbi9Tb3VuZFdpbi5jcHAKIAogICAgIHRleHQvS2lsbFJp
bmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNv
ZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsu
Y3BwCmluZGV4IGJkZGQ2YmRjYzc4YzU1ZmU0N2ZmMDE3OTg3YjcxMGZhNzViZTI5OGEuLjI1ZmUy
NTI5NmNmY2UyZWI3Njk2ZTEyYjllZDUyNzdjMmI2YzI5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwCkBAIC0zMyw3ICszMywyMCBAQAog
CiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEpCiAKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRz
LCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWFrZSwgQ01UaW1lLCAoaW50NjRfdCB2YWx1
ZSwgaW50MzJfdCB0aW1lc2NhbGUpLCAodmFsdWUsIHRpbWVzY2FsZSkpCiBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzLCBD
TVRpbWUsIChGbG9hdDY0IHNlY29uZHMsIGludDMyX3QgcHJlZmVycmVkVGltZVNjYWxlKSwgKHNl
Y29uZHMsIHByZWZlcnJlZFRpbWVTY2FsZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENN
VGltZWJhc2VSZWYgKnRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWVi
YXNlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQ29yZU1lZGlhLCBD
TVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1l
YmFzZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01U
aW1lYmFzZVNldFJhdGUsIE9TU3RhdHVzLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSwgRmxvYXQ2
NCByYXRlKSwgKHRpbWViYXNlLCByYXRlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0VGltZSwgT1NTdGF0dXMsIChDTVRpbWViYXNl
UmVmIHRpbWViYXNlLCBDTVRpbWUgdGltZSksICh0aW1lYmFzZSwgdGltZSkpCisKKyNpZiBQTEFU
Rk9STShJT1MpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwg
Q01BdWRpb0Nsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwg
Q01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCkpCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQorCisjaWYgUExBVEZPUk0oTUFDKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0
dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01D
bG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSkKKyNl
bmRpZiAvLyBQTEFURk9STShNQUMpCiAKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg2NjEx
OGY2ZGYwYTQ4MmFiMGNmYzViYTJmYzgyMjNhMzg2ZGNiYzMuLjJlNzRmOWZiMWEwMTI0MWZlMzQz
ZGE0YWRiMTU2MmFjZDk0ZTRkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmgKQEAgLTMzLDkgKzMzLDI5IEBACiAKIFNPRlRfTElOS19GUkFNRVdP
UktfRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSkKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUg
dGltZSksICh0aW1lKSkKKyNkZWZpbmUgQ01UaW1lR2V0U2Vjb25kcyBzb2Z0TGlua19Db3JlTWVk
aWFfQ01UaW1lR2V0U2Vjb25kcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBD
b3JlTWVkaWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFsdWUsIGludDMyX3QgdGlt
ZXNjYWxlKSwgKHZhbHVlLCB0aW1lc2NhbGUpKQogI2RlZmluZSBDTVRpbWVNYWtlIHNvZnRMaW5r
X0NvcmVNZWRpYV9DTVRpbWVNYWtlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzLCBDTVRpbWUsIChGbG9hdDY0IHNlY29u
ZHMsIGludDMyX3QgcHJlZmVycmVkVGltZVNjYWxlKSwgKHNlY29uZHMsIHByZWZlcnJlZFRpbWVT
Y2FsZSkpCiAjZGVmaW5lIENNVGltZU1ha2VXaXRoU2Vjb25kcyBzb2Z0TGlua19Db3JlTWVkaWFf
Q01UaW1lTWFrZVdpdGhTZWNvbmRzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUws
IENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaywgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgbWFzdGVyQ2xvY2ssIENNVGltZWJh
c2VSZWYgKnRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFzdGVyQ2xvY2ssIHRpbWViYXNlT3V0
KSkKKyNkZWZpbmUgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jaworU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VHZXRUaW1lLCBDTVRpbWUsIChD
TVRpbWViYXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSkKKyNkZWZpbmUgQ01UaW1lYmFzZUdl
dFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VHZXRUaW1lCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFJhdGUsIE9TU3Rh
dHVzLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSwgRmxvYXQ2NCByYXRlKSwgKHRpbWViYXNlLCBy
YXRlKSkKKyNkZWZpbmUgQ01UaW1lYmFzZVNldFJhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGlt
ZWJhc2VTZXRSYXRlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01UaW1lYmFzZVNldFRpbWUsIE9TU3RhdHVzLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSwg
Q01UaW1lIHRpbWUpLCAodGltZWJhc2UsIHRpbWUpKQorI2RlZmluZSBDTVRpbWViYXNlU2V0VGlt
ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZVNldFRpbWUKKworI2lmIFBMQVRGT1JNKElP
UykKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlv
Q2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2Nr
UmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGNsb2NrT3V0KSkKKyNkZWZpbmUgQ01BdWRpb0Ns
b2NrQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1ZGlvQ2xvY2tDcmVhdGUKKyNlbmRpZiAv
LyBQTEFURk9STShJT1MpCisKKyNpZiBQTEFURk9STShNQUMpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0ZTdHJpbmdSZWYgZGV2aWNlVUlELCBD
TUNsb2NrUmVmICpjbG9ja091dCksIChhbGxvY2F0b3IsIGRldmljZVVJRCwgY2xvY2tPdXQpKQor
I2RlZmluZSBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUgIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUF1
ZGlvRGV2aWNlQ2xvY2tDcmVhdGUKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKICNlbmRpZiAv
LyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
eXN0ZW0vQ2xvY2suaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL0Nsb2NrLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODRhOTViZjA5ODVkODZiNjQ3MWMxYjI0ZjI0ZTk5NTcwZjdlOGZlYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL0Nsb2NrLmgKQEAgLTAs
MCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50
ZXJ0YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8bWVt
b3J5PgorCituYW1lc3BhY2UgUEFMIHsKKworY2xhc3MgQ2xvY2sgeworcHVibGljOgorICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q2xvY2s+IGNyZWF0ZSgpOworICAgIHZpcnR1YWwgfkNsb2Nr
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSkg
PSAwOworICAgIHZpcnR1YWwgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3QgPSAwOworCisgICAg
dmlydHVhbCB2b2lkIHNldFBsYXlSYXRlKGRvdWJsZSkgPSAwOworICAgIHZpcnR1YWwgZG91Ymxl
IHBsYXlSYXRlKCkgY29uc3QgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc1J1bm5pbmco
KSBjb25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBDbG9jaygpID0gZGVmYXVsdDsKK307CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL0Nsb2NrR2VuZXJp
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9DbG9ja0dlbmVyaWMuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE2YzcxYjRmNzVjYmZhNWU5NTU3Y2Y1Y2EzNWY5NDAyZmI3YTEzYzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9DbG9ja0dlbmVyaWMu
Y3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBTb255IEludGVy
YWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ2xvY2tHZW5lcmljLmgiCisKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KKworbmFtZXNwYWNlIFBBTCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gQ2xvY2s6OmNy
ZWF0ZSgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q2xvY2tHZW5lcmljPigpOwor
fQorCitDbG9ja0dlbmVyaWM6OkNsb2NrR2VuZXJpYygpCisgICAgOiBtX3J1bm5pbmcoZmFsc2Up
CisgICAgLCBtX3JhdGUoMSkKKyAgICAsIG1fb2Zmc2V0KDApCit7CisgICAgbV9zdGFydFRpbWUg
PSBtX2xhc3RUaW1lID0gbm93KCk7Cit9CisKK3ZvaWQgQ2xvY2tHZW5lcmljOjpzZXRDdXJyZW50
VGltZShkb3VibGUgdGltZSkKK3sKKyAgICBtX3N0YXJ0VGltZSA9IG1fbGFzdFRpbWUgPSBub3co
KTsKKyAgICBtX29mZnNldCA9IHRpbWU7Cit9CisKK2RvdWJsZSBDbG9ja0dlbmVyaWM6OmN1cnJl
bnRUaW1lKCkgY29uc3QKK3sKKyAgICBpZiAobV9ydW5uaW5nKQorICAgICAgICBtX2xhc3RUaW1l
ID0gbm93KCk7CisgICAgcmV0dXJuICgobV9sYXN0VGltZSAtIG1fc3RhcnRUaW1lKSAqIG1fcmF0
ZSkgKyBtX29mZnNldDsKK30KKwordm9pZCBDbG9ja0dlbmVyaWM6OnNldFBsYXlSYXRlKGRvdWJs
ZSByYXRlKQoreworICAgIG1fb2Zmc2V0ID0gY3VycmVudFRpbWUoKTsKKyAgICBtX2xhc3RUaW1l
ID0gbV9zdGFydFRpbWUgPSBub3coKTsKKyAgICBtX3JhdGUgPSByYXRlOworfQorCit2b2lkIENs
b2NrR2VuZXJpYzo6c3RhcnQoKQoreworICAgIGlmIChtX3J1bm5pbmcpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fbGFzdFRpbWUgPSBtX3N0YXJ0VGltZSA9IG5vdygpOworICAgIG1fcnVubmlu
ZyA9IHRydWU7Cit9CisKK3ZvaWQgQ2xvY2tHZW5lcmljOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1f
cnVubmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vZmZzZXQgPSBjdXJyZW50VGltZSgp
OworICAgIG1fbGFzdFRpbWUgPSBtX3N0YXJ0VGltZSA9IG5vdygpOworICAgIG1fcnVubmluZyA9
IGZhbHNlOworfQorCitkb3VibGUgQ2xvY2tHZW5lcmljOjpub3coKSBjb25zdAoreworICAgIHJl
dHVybiBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9DbG9ja0dlbmVyaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmRmNmY5YjEw
OTFhMTM4YmY0YTk4ZDQ4ZDk4YmU4YWZjZmNkYTA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmgKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJ
bmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2xvY2suaCIKKworbmFt
ZXNwYWNlIFBBTCB7CisKK2NsYXNzIENsb2NrR2VuZXJpYyBmaW5hbCA6IHB1YmxpYyBDbG9jayB7
CitwdWJsaWM6CisgICAgQ2xvY2tHZW5lcmljKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZXRD
dXJyZW50VGltZShkb3VibGUpIG92ZXJyaWRlOworICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIGNv
bnN0IG92ZXJyaWRlOworCisgICAgdm9pZCBzZXRQbGF5UmF0ZShkb3VibGUpIG92ZXJyaWRlOwor
ICAgIGRvdWJsZSBwbGF5UmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmF0ZTsgfQor
CisgICAgdm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwor
ICAgIGJvb2wgaXNSdW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ydW5uaW5nOyB9
CisKKyAgICBkb3VibGUgbm93KCkgY29uc3Q7CisKKyAgICBib29sIG1fcnVubmluZzsKKyAgICBk
b3VibGUgbV9yYXRlOworICAgIGRvdWJsZSBtX29mZnNldDsKKyAgICBkb3VibGUgbV9zdGFydFRp
bWU7CisgICAgbXV0YWJsZSBkb3VibGUgbV9sYXN0VGltZTsKK307CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9DbG9ja0NNLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvQ2xvY2tDTS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4NmI0MTJmMTYw
MmY4OWQwMWNkYzNlYzE4ZGQ2NzRjOTlhM2U3MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvQ2xvY2tDTS5oCkBAIC0wLDAgKzEsNjkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBVU0UoQ09SRU1FRElBKQorCisjaW5jbHVkZSAiLi4vQ2xvY2suaCIKKyNpbmNsdWRl
IDx3dGYvTWVkaWFUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVm
IHN0cnVjdCBPcGFxdWVDTVRpbWViYXNlKiBDTVRpbWViYXNlUmVmOwordHlwZWRlZiBzdHJ1Y3Qg
T3BhcXVlQ01DbG9jayogQ01DbG9ja1JlZjsKKworbmFtZXNwYWNlIFBBTCB7CisKK2NsYXNzIENs
b2NrQ00gZmluYWwgOiBwdWJsaWMgQ2xvY2sgeworcHVibGljOgorICAgIENsb2NrQ00oKTsKKyAg
ICBDbG9ja0NNKENNQ2xvY2tSZWYpOworCisgICAgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUp
IG92ZXJyaWRlOworICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0IG92ZXJyaWRlOworCisg
ICAgdm9pZCBzZXRDdXJyZW50TWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYpOworICAgIE1lZGlh
VGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFBsYXlSYXRlKGRv
dWJsZSkgb3ZlcnJpZGU7CisgICAgZG91YmxlIHBsYXlSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9yYXRlOyB9CisKKyAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dG9wKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3J1bm5pbmc7IH0KKworICAgIENNVGltZWJhc2VSZWYgdGltZWJhc2UoKSBjb25zdCB7
IHJldHVybiBtX3RpbWViYXNlLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBpbml0aWFs
aXplV2l0aFRpbWluZ1NvdXJjZShDTUNsb2NrUmVmKTsKKworICAgIFJldGFpblB0cjxDTVRpbWVi
YXNlUmVmPiBtX3RpbWViYXNlOworICAgIGRvdWJsZSBtX3JhdGU7CisgICAgYm9vbCBtX3J1bm5p
bmc7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zeXN0ZW0vbWFjL0Nsb2NrQ00ubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvQ2xvY2tDTS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmM0ZDA2ZTczOTBlZTNjNWQzZDkxZTU0MjVmMjhh
NDA5NDVjM2QxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0
ZW0vbWFjL0Nsb2NrQ00ubW0KQEAgLTAsMCArMSwxMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNp
ZiBVU0UoQ09SRU1FRElBKQorI2ltcG9ydCAiQ2xvY2tDTS5oIgorCisjaW1wb3J0IDxwYWwvYXZm
b3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgorCisjaW1wb3J0ICJDb3JlTWVkaWFT
b2Z0TGluay5oIgorCit1c2luZyBuYW1lc3BhY2UgUEFMOworCisvLyBBIGRlZmF1bHQgdGltZSBz
Y2FsZSBvZiAxMDAwIGFsbG93cyBtaWxsaS1zZWNvbmQgQ01UaW1lIHByZWNpc2lvbiB3aXRob3V0
IHNjYWxpbmcgdGhlIHRpbWViYXNlLgorc3RhdGljIGNvbnN0IGludDMyX3QgRGVmYXVsdFRpbWVT
Y2FsZSA9IDEwMDA7CisKK3N0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gQ2xvY2s6OmNyZWF0ZSgpCit7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q2xvY2tDTT4oKTsKK30KKworQ2xvY2tDTTo6
Q2xvY2tDTSgpCisgICAgOiBtX3RpbWViYXNlKDApCisgICAgLCBtX3JhdGUoMSkKKyAgICAsIG1f
cnVubmluZyhmYWxzZSkKK3sKKyAgICBDTUNsb2NrUmVmIHJhd0Nsb2NrUHRyID0gMDsKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgQ01BdWRpb0Nsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
ICZyYXdDbG9ja1B0cik7CisjZWxzZQorICAgIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAmcmF3Q2xvY2tQdHIpOworI2VuZGlmCisgICAgUmV0YWlu
UHRyPENNQ2xvY2tSZWY+IGNsb2NrID0gYWRvcHRDRihyYXdDbG9ja1B0cik7CisgICAgaW5pdGlh
bGl6ZVdpdGhUaW1pbmdTb3VyY2UoY2xvY2suZ2V0KCkpOworfQorCitDbG9ja0NNOjpDbG9ja0NN
KENNQ2xvY2tSZWYgY2xvY2spCisgICAgOiBtX3RpbWViYXNlKDApCisgICAgLCBtX3J1bm5pbmco
ZmFsc2UpCit7CisgICAgaW5pdGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2UoY2xvY2spOworfQorCit2
b2lkIENsb2NrQ006OmluaXRpYWxpemVXaXRoVGltaW5nU291cmNlKENNQ2xvY2tSZWYgY2xvY2sp
Cit7CisgICAgQ01UaW1lYmFzZVJlZiByYXdUaW1lYmFzZVB0ciA9IDA7CisgICAgQ01UaW1lYmFz
ZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjbG9jaywgJnJhd1Rp
bWViYXNlUHRyKTsKKyAgICBtX3RpbWViYXNlID0gYWRvcHRDRihyYXdUaW1lYmFzZVB0cik7Cit9
CisKK3ZvaWQgQ2xvY2tDTTo6c2V0Q3VycmVudFRpbWUoZG91YmxlIHRpbWUpCit7CisgICAgQ01U
aW1lIGNtVGltZSA9IENNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCBEZWZhdWx0VGltZVNjYWxl
KTsKKyAgICBDTVRpbWViYXNlU2V0VGltZShtX3RpbWViYXNlLmdldCgpLCBjbVRpbWUpOworfQor
Citkb3VibGUgQ2xvY2tDTTo6Y3VycmVudFRpbWUoKSBjb25zdAoreworICAgIENNVGltZSBjbVRp
bWUgPSBDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKTsKKyAgICByZXR1cm4gQ01U
aW1lR2V0U2Vjb25kcyhjbVRpbWUpOworfQorCit2b2lkIENsb2NrQ006OnNldEN1cnJlbnRNZWRp
YVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQoreworICAgIENNVGltZWJhc2VTZXRUaW1lKG1f
dGltZWJhc2UuZ2V0KCksIFBBTDo6dG9DTVRpbWUodGltZSkpOworfQorCitNZWRpYVRpbWUgQ2xv
Y2tDTTo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFBBTDo6dG9NZWRp
YVRpbWUoQ01UaW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSkpOworfQorCit2b2lkIENs
b2NrQ006OnNldFBsYXlSYXRlKGRvdWJsZSByYXRlKQoreworICAgIGlmIChtX3JhdGUgPT0gcmF0
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yYXRlID0gcmF0ZTsKKyAgICBpZiAobV9ydW5u
aW5nKQorICAgICAgICBDTVRpbWViYXNlU2V0UmF0ZShtX3RpbWViYXNlLmdldCgpLCByYXRlKTsK
K30KKwordm9pZCBDbG9ja0NNOjpzdGFydCgpCit7CisgICAgaWYgKG1fcnVubmluZykKKyAgICAg
ICAgcmV0dXJuOworICAgIG1fcnVubmluZyA9IHRydWU7CisgICAgQ01UaW1lYmFzZVNldFJhdGUo
bV90aW1lYmFzZS5nZXQoKSwgbV9yYXRlKTsKK30KKwordm9pZCBDbG9ja0NNOjpzdG9wKCkKK3sK
KyAgICBpZiAoIW1fcnVubmluZykKKyAgICAgICAgcmV0dXJuOworICAgIG1fcnVubmluZyA9IGZh
bHNlOworICAgIENNVGltZWJhc2VTZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCksIDApOworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAwZjE0NDVlNjM3MGYwNmU2MzVjMzdhOTdjYTY1MGE4ZWQ0ODZlNjIzLi5lNzY4
MzAwNmMwYjk1YThmYjRlN2VhZjk3NmYxZjczMmNiNDU0ZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc1LDcgKzYzNzUs
NiBAQAogCQlDREE5OEUwNDE2MDM5RTFBMDBGRUEzQjEgLyogSlNXZWJLaXRNZWRpYUtleXMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBOThEQ0Ux
NjAxNTk3OTAwRkVBM0IxIC8qIEpTV2ViS2l0TWVkaWFLZXlzLmNwcCAqLzsgfTsKIAkJQ0RBOThF
MDYxNjAzOUUxRjAwRkVBM0IxIC8qIEpTV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTk4REQwMTYwMTU5Nzkw
MEZFQTNCMSAvKiBKU1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5jcHAgKi87IH07CiAJCUNEQTk4RTBC
MTYwM0NENjAwMEZFQTNCMSAvKiBMZWdhY3lDRE0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBOThFMDkxNjAzQ0Q1OTAwRkVBM0IxIC8qIExlZ2Fj
eUNETS5jcHAgKi87IH07Ci0JCUNEQUE4RDBBMTRENzFCMkUwMDYxRUE2MCAvKiBQbGF0Zm9ybUNs
b2NrQ00ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REFBOEQwODE0RDM4NTYwMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1tICovOyB9OwogCQlD
REFCNkQyODE3QzdERTZDMDBDNjBCMzQgLyogTWVkaWFDb250cm9sc0hvc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQjZEMjYxN0M3REU2QzAw
QzYwQjM0IC8qIE1lZGlhQ29udHJvbHNIb3N0LmNwcCAqLzsgfTsKIAkJQ0RBQjZEMjkxN0M3REU2
QzAwQzYwQjM0IC8qIE1lZGlhQ29udHJvbHNIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFCNkQyNzE3QzdERTZDMDBDNjBCMzQgLyogTWVkaWFD
b250cm9sc0hvc3QuaCAqLzsgfTsKIAkJQ0RBQjZEMkQxN0M4MTRFRTAwQzYwQjM0IC8qIEpTTWVk
aWFDb250cm9sc0hvc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RBQjZEMkIxN0M4MTRFRTAwQzYwQjM0IC8qIEpTTWVkaWFDb250cm9sc0hvc3Qu
Y3BwICovOyB9OwpAQCAtNjQzNiw5ICs2NDM1LDYgQEAKIAkJQ0RFOEI1RUQxQTY5Nzc3MzAwQjRC
NjZBIC8qIExlZ2FjeUNETVByaXZhdGVDbGVhcktleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFOEI1RUIxQTY5Nzc3MzAwQjRCNjZBIC8qIExlZ2Fj
eUNETVByaXZhdGVDbGVhcktleS5oICovOyB9OwogCQlDREU4QjVGMDFBNjk3NzhCMDBCNEI2NkEg
LyogTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERThCNUVFMUE2OTc3OEIwMEI0QjY2QSAvKiBMZWdhY3lD
RE1TZXNzaW9uQ2xlYXJLZXkuY3BwICovOyB9OwogCQlDREU4QjVGMTFBNjk3NzhCMDBCNEI2NkEg
LyogTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREU4QjVFRjFBNjk3NzhCMDBCNEI2NkEgLyogTGVnYWN5Q0RN
U2Vzc2lvbkNsZWFyS2V5LmggKi87IH07Ci0JCUNERUE3NjMwMTQ2MDhBNTMwMDhCMzFGMSAvKiBQ
bGF0Zm9ybUNsb2NrQ0EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQTc2MkUxNDYwODRERTAwOEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5jcHAg
Ki87IH07Ci0JCUNERUE3NjM0MTQ2MEI1NkYwMDhCMzFGMSAvKiBDbG9ja0dlbmVyaWMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTc2MzIxNDYw
QUUyOTAwOEIzMUYxIC8qIENsb2NrR2VuZXJpYy5jcHAgKi87IH07Ci0JCUNERUE3NjM1MTQ2MEI3
MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREVBNzYzMzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovOyB9
OwogCQlDREVBN0M4NDEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODIxMjc2MjMw
NDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCAqLzsgfTsKIAkJQ0RFQTdDODUxMjc2MjMw
NDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRl
ckZ1bGxTY3JlZW4uY3BwICovOyB9OwogCQlDREVDQTg5QTFFREY0NDdEMDBEQ0IwOEIgLyogQVZB
c3NldFRyYWNrVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFQ0E4OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxp
dGllcy5tbSAqLzsgfTsKQEAgLTE1MTI5LDggKzE1MTI1LDYgQEAKIAkJQ0RBOThFMDkxNjAzQ0Q1
OTAwRkVBM0IxIC8qIExlZ2FjeUNETS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWdhY3lDRE0u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREE5OEUwQTE2MDNDRDU5MDBGRUEz
QjEgLyogTGVnYWN5Q0RNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeUNETS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREE5OEUwQzE2MDNDRjNDMDBGRUEzQjEgLyogTGVnYWN5Q0RN
UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lDRE1Qcml2
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNEQUE4RDA3MTREMzg1NjAwMDYx
RUE2MCAvKiBQbGF0Zm9ybUNsb2NrQ00uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1DbG9ja0NNLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNEQUE4
RDA4MTREMzg1NjAwMDYxRUE2MCAvKiBQbGF0Zm9ybUNsb2NrQ00ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybUNsb2NrQ00ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEQUFGNDVEMTg2OTA5NEUwMDNDMTcxNyAvKiBtZWRpYUNvbnRy
b2xzaU9TLmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0gbWVkaWFDb250cm9sc2lPUy5j
c3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQUI2RDI1MTdDN0RFNTcwMEM2MEIz
NCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFDb250cm9sc0hvc3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFCNkQyNjE3QzdERTZDMDBDNjBCMzQgLyog
TWVkaWFDb250cm9sc0hvc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFDb250cm9sc0hvc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTUyMDYsMTIgKzE1MjAwLDYgQEAKIAkJQ0RFOEI1RUIxQTY5Nzc3MzAwQjRCNjZBIC8qIExlZ2Fj
eUNETVByaXZhdGVDbGVhcktleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
ZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RFOEI1RUUxQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2FjeUNETVNlc3Npb25DbGVhcktleS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWdhY3lDRE1TZXNzaW9uQ2xl
YXJLZXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREU4QjVFRjFBNjk3NzhC
MDBCNEI2NkEgLyogTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlDREVBNzYyQzE0NjA4MjI0MDA4QjMxRjEgLyogQ2xvY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xvY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQ0RFQTc2MkUxNDYwODRERTAwOEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUNsb2NrQ0Eu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREVBNzYyRjE0NjA4NEVFMDA4QjMx
RjEgLyogUGxhdGZvcm1DbG9ja0NBLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBsYXRmb3JtQ2xvY2tDQS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREVBNzYz
MTE0NjBBRTFCMDA4QjMxRjEgLyogQ2xvY2tHZW5lcmljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENsb2NrR2VuZXJpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlDREVBNzYzMjE0NjBBRTI5MDA4QjMxRjEgLyogQ2xvY2tHZW5lcmljLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsb2NrR2VuZXJpYy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUNERUE3NjMzMTQ2MEI0NjIwMDhCMzFGMSAvKiBDbG9jay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbG9jay5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUE3QzgyMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJG
dWxsU2NyZWVuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZ1bGxT
Y3JlZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTdDODMxMjc2MjMwNDAw
Qjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVuZGVyRnVsbFNjcmVlbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERUNBODk4MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTU2NCwxMCArMTk1NTIsNiBAQAogCQkJCTRCMjcw
OTgxMEFGMkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovLAogCQkJCTFBRjVFNEUx
MUU1Nzc5QjEwMDRBMUYwMSAvKiBQYXN0ZWJvYXJkV3JpdGVyLmggKi8sCiAJCQkJMUFGNUU0RTAx
RTU3NzlCMTAwNEExRjAxIC8qIFBhc3RlYm9hcmRXcml0ZXIubW0gKi8sCi0JCQkJQ0RFQTc2MkUx
NDYwODRERTAwOEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5jcHAgKi8sCi0JCQkJQ0RFQTc2MkYx
NDYwODRFRTAwOEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5oICovLAotCQkJCUNEQUE4RDA3MTRE
Mzg1NjAwMDYxRUE2MCAvKiBQbGF0Zm9ybUNsb2NrQ00uaCAqLywKLQkJCQlDREFBOEQwODE0RDM4
NTYwMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1tICovLAogCQkJCUJDQUE0ODZFMTRBMDUy
NTMwMDg4RkFDNCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oICovLAogCQkJCUJDQUE0ODZE
MTRBMDUyNTMwMDg4RkFDNCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSAqLywKIAkJCQlD
NUY3NjVCQTE0RTFFQ0Y0MDA2Qzg5OUIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tICovLApA
QCAtMjQ1NzAsMTAgKzI0NTU0LDYgQEAKIAkJCQlCMkMzRDlFQzBEMDA2QzFEMDBFRjZGMjYgLyog
dGV4dCAqLywKIAkJCQk0OUFFMkQ5NDEzNEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1
ZS5jcHAgKi8sCiAJCQkJNDlBRTJEOTUxMzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFs
dWUuaCAqLywKLQkJCQlDREVBNzYzMzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovLAot
CQkJCUNERUE3NjJDMTQ2MDgyMjQwMDhCMzFGMSAvKiBDbG9jay5oICovLAotCQkJCUNERUE3NjMy
MTQ2MEFFMjkwMDhCMzFGMSAvKiBDbG9ja0dlbmVyaWMuY3BwICovLAotCQkJCUNERUE3NjMxMTQ2
MEFFMUIwMDhCMzFGMSAvKiBDbG9ja0dlbmVyaWMuaCAqLywKIAkJCQlDMzMwQTIyMTEzRUMxOTZC
MDAwMEI0NUIgLyogQ29sb3JDaG9vc2VyLmggKi8sCiAJCQkJQzM3Q0RFQkMxNDlFRjIwMzAwNDIw
OTBEIC8qIENvbG9yQ2hvb3NlckNsaWVudC5oICovLAogCQkJCUJDQzhDRkNBMDk4NkNEMjQwMDE0
MEJGMiAvKiBDb2xvckRhdGEuZ3BlcmYgKi8sCkBAIC0zMTQ0Miw4ICszMTQyMiw2IEBACiAJCQkJ
ODM0OEJGQUIxQjg1NzI5ODAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4NTAzMUIzRjBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTgwMzcxNjExQTY2RjAwQTAwQkFGNTE5IC8qIENsaXBSZWN0
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9j
ay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREVBNzYzNDE0NjBCNTZGMDA4QjMxRjEgLyogQ2xv
Y2tHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlCRDhBOTVBMThCRUZDNzYwMDk4N0U5
QSAvKiBDb2xsZWN0aW9uSW5kZXhDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2
NjBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMz
MjQwRjJCOTcxNTAwNEI2Nzk1IC8qIENvbG9yQ0cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMzU0
OCw4ICszMzUyNiw2IEBACiAJCQkJMEYxMzE2NDAxNkVEMENERTAwMzVDQzA0IC8qIFBsYXRmb3Jt
Q0FGaWx0ZXJzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDcwQkExNTE4MDc0Rjg2MDAw
MTkwOEEgLyogUGxhdGZvcm1DQUxheWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5NTg3ODIy
MTJBNTdEREYwMDcyMzhBQyAvKiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAotCQkJCUNERUE3NjMwMTQ2MDhBNTMwMDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0EuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQ0RBQThEMEExNEQ3MUIyRTAwNjFFQTYwIC8qIFBsYXRmb3JtQ2xv
Y2tDTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI2NjAxRUMwMTRCM0I5QUQwMDEyQzBGRSAvKiBQ
bGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDQUE0ODZGMTRB
MDUyNTMwMDg4RkFDNCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUY1NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcAppbmRleCA0
OTQwYTc5NjRiNjRiNzQ3YzJjMTg3NzhiMzQ0ZDNhNDU3NzNmMWJjLi5lNGZhNjBkMDdiMzNlOWJj
YTA5NjkzNzM2NzE0NGY2MGM3NzJiMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRy
b2xsZXIuY3BwCkBAIC0yOCwxMCArMjgsMTAgQEAKICNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVk
ZSAiTWVkaWFDb250cm9sbGVyLmgiCiAKLSNpbmNsdWRlICJDbG9jay5oIgogI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiVGlt
ZVJhbmdlcy5oIgorI2luY2x1ZGUgPHBhbC9zeXN0ZW0vQ2xvY2suaD4KICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC01NSw3ICs1NSw3IEBAIE1lZGlhQ29udHJvbGxlcjo6
TWVkaWFDb250cm9sbGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgLCBt
X2FzeW5jRXZlbnRUaW1lcigqdGhpcywgJk1lZGlhQ29udHJvbGxlcjo6YXN5bmNFdmVudFRpbWVy
RmlyZWQpCiAgICAgLCBtX2NsZWFyUG9zaXRpb25UaW1lcigqdGhpcywgJk1lZGlhQ29udHJvbGxl
cjo6Y2xlYXJQb3NpdGlvblRpbWVyRmlyZWQpCiAgICAgLCBtX2Nsb3NlZENhcHRpb25zVmlzaWJs
ZShmYWxzZSkKLSAgICAsIG1fY2xvY2soQ2xvY2s6OmNyZWF0ZSgpKQorICAgICwgbV9jbG9jayhQ
QUw6OkNsb2NrOjpjcmVhdGUoKSkKICAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250
ZXh0KQogICAgICwgbV90aW1ldXBkYXRlVGltZXIoKnRoaXMsICZNZWRpYUNvbnRyb2xsZXI6OnNj
aGVkdWxlVGltZXVwZGF0ZUV2ZW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVy
LmgKaW5kZXggYTkxOTI0ODE3YzUxNGViYzgwMGZjYzgwY2E1ZDAzZWM3YThhNjBiZC4uNzM4Y2I1
NDE0Y2NjMDE2Njg3YTBjY2NiZTI1NGFiY2E0ZDdhMTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhQ29udHJvbGxlci5oCkBAIC0zMyw5ICszMywxMiBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIENsb2NrOwor
fQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENsb2NrOwogY2xhc3MgSFRNTE1lZGlh
RWxlbWVudDsKIAogY2xhc3MgTWVkaWFDb250cm9sbGVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8TWVkaWFDb250cm9sbGVyPiwgcHVibGljIE1lZGlhQ29udHJvbGxlckludGVyZmFjZSwgcHVi
bGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewpAQCAtMTQyLDcgKzE0NSw3IEBAIHByaXZh
dGU6CiAgICAgbXV0YWJsZSBUaW1lciBtX2NsZWFyUG9zaXRpb25UaW1lcjsKICAgICBTdHJpbmcg
bV9tZWRpYUdyb3VwOwogICAgIGJvb2wgbV9jbG9zZWRDYXB0aW9uc1Zpc2libGU7Ci0gICAgc3Rk
Ojp1bmlxdWVfcHRyPENsb2NrPiBtX2Nsb2NrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQQUw6OkNs
b2NrPiBtX2Nsb2NrOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKICAgICBUaW1lciBtX3RpbWV1cGRhdGVUaW1lcjsKICAgICBNb25vdG9uaWNU
aW1lIG1fcHJldmlvdXNUaW1ldXBkYXRlVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0Nsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGVkMWFkZThjZDhkM2ViOWJhNDY1ZWZlNGY1
ZWEzOWJkNDI2Nzc3MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2xvY2suaCIKLQotI2lmIFVTRShD
T1JFTUVESUEpCi0gICAgI2luY2x1ZGUgIlBsYXRmb3JtQ2xvY2tDTS5oIgotI2VsaWYgVVNFKENP
UkVBVURJTykKLSAgICAjaW5jbHVkZSAiUGxhdGZvcm1DbG9ja0NBLmgiCi0jZWxzZQotICAgICNp
bmNsdWRlICJDbG9ja0dlbmVyaWMuaCIKLSNlbmRpZgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotc3RkOjp1bmlxdWVfcHRyPENsb2NrPiBDbG9jazo6Y3JlYXRlKCkKLXsKLSNpZiBVU0Uo
Q09SRU1FRElBKQotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtQ2xvY2tDTT4o
KTsKLSNlbGlmIFVTRShDT1JFQVVESU8pCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxh
dGZvcm1DbG9ja0NBPigpOwotI2Vsc2UKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDbG9j
a0dlbmVyaWM+KCk7Ci0jZW5kaWYKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0Nsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzN2Y0MmU0MmIwM2FhMWE5MGRhNTQ3MWQwMjQzOTE4N2VhMDA5
NGM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVm
IENsb2NrX2gKLSNkZWZpbmUgQ2xvY2tfaAotCi0jaW5jbHVkZSA8bWVtb3J5PgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENsb2NrIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPENsb2NrPiBjcmVhdGUoKTsKLSAgICB2aXJ0dWFsIH5DbG9jaygpIHsgfQotCi0g
ICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSkgPSAwOwotICAgIHZpcnR1YWwg
ZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3QgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHNldFBs
YXlSYXRlKGRvdWJsZSkgPSAwOwotICAgIHZpcnR1YWwgZG91YmxlIHBsYXlSYXRlKCkgY29uc3Qg
PSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBz
dG9wKCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCA9IDA7Ci0KLXBy
b3RlY3RlZDoKLSAgICBDbG9jaygpIHsgfQotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzNWE0Yjk0MzUxY2M5YTZiODk0ZmNiMGQ2MzQ4ZTgyYzM5MDE2M2VjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0Nsb2NrR2VuZXJpYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiQ2xvY2tHZW5lcmljLmgiCi0KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLUNsb2NrR2VuZXJpYzo6Q2xvY2tH
ZW5lcmljKCkKLSAgICA6IG1fcnVubmluZyhmYWxzZSkKLSAgICAsIG1fcmF0ZSgxKQotICAgICwg
bV9vZmZzZXQoMCkKLXsKLSAgICBtX3N0YXJ0VGltZSA9IG1fbGFzdFRpbWUgPSBub3coKTsKLX0K
LQotdm9pZCBDbG9ja0dlbmVyaWM6OnNldEN1cnJlbnRUaW1lKGRvdWJsZSB0aW1lKQotewotICAg
IG1fc3RhcnRUaW1lID0gbV9sYXN0VGltZSA9IG5vdygpOwotICAgIG1fb2Zmc2V0ID0gdGltZTsK
LX0KLQotZG91YmxlIENsb2NrR2VuZXJpYzo6Y3VycmVudFRpbWUoKSBjb25zdAotewotICAgIGlm
IChtX3J1bm5pbmcpCi0gICAgICAgIG1fbGFzdFRpbWUgPSBub3coKTsKLSAgICByZXR1cm4gKCht
X2xhc3RUaW1lIC0gbV9zdGFydFRpbWUpICogbV9yYXRlKSArIG1fb2Zmc2V0OwotfQotCi12b2lk
IENsb2NrR2VuZXJpYzo6c2V0UGxheVJhdGUoZG91YmxlIHJhdGUpCi17Ci0gICAgbV9vZmZzZXQg
PSBjdXJyZW50VGltZSgpOwotICAgIG1fbGFzdFRpbWUgPSBtX3N0YXJ0VGltZSA9IG5vdygpOwot
ICAgIG1fcmF0ZSA9IHJhdGU7Ci19Ci0KLXZvaWQgQ2xvY2tHZW5lcmljOjpzdGFydCgpCi17Ci0g
ICAgaWYgKG1fcnVubmluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9sYXN0VGltZSA9IG1f
c3RhcnRUaW1lID0gbm93KCk7Ci0gICAgbV9ydW5uaW5nID0gdHJ1ZTsKLX0KLQotdm9pZCBDbG9j
a0dlbmVyaWM6OnN0b3AoKQotewotICAgIGlmICghbV9ydW5uaW5nKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBtX29mZnNldCA9IGN1cnJlbnRUaW1lKCk7Ci0gICAgbV9sYXN0VGltZSA9IG1fc3Rh
cnRUaW1lID0gbm93KCk7Ci0gICAgbV9ydW5uaW5nID0gZmFsc2U7Ci19Ci0KLWRvdWJsZSBDbG9j
a0dlbmVyaWM6Om5vdygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2tH
ZW5lcmljLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmNlMzY3NDkzYjI3NWE2MjUzYjEzODhmNTBhM2VmZDZk
MmFlNWNlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuaAorKysgL2Rldi9udWxsCkBAIC0x
LDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBDbG9ja0dlbmVyaWNfaAotI2RlZmluZSBDbG9ja0dlbmVyaWNfaAotCi0jaW5j
bHVkZSAiQ2xvY2suaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDbG9ja0dlbmVy
aWMgZmluYWwgOiBwdWJsaWMgQ2xvY2sgewotcHVibGljOgotICAgIENsb2NrR2VuZXJpYygpOwot
Ci1wcml2YXRlOgotICAgIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKSBvdmVycmlkZTsKLSAg
ICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsKLQotICAgIHZvaWQgc2V0UGxh
eVJhdGUoZG91YmxlKSBvdmVycmlkZTsKLSAgICBkb3VibGUgcGxheVJhdGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3JhdGU7IH0KLQotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICBib29sIGlzUnVubmluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fcnVubmluZzsgfQotCi0gICAgZG91YmxlIG5vdygpIGNvbnN0OwotCi0g
ICAgYm9vbCBtX3J1bm5pbmc7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBkb3VibGUgbV9vZmZz
ZXQ7Ci0gICAgZG91YmxlIG1fc3RhcnRUaW1lOwotICAgIG11dGFibGUgZG91YmxlIG1fbGFzdFRp
bWU7Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGMz
YjNjN2ZjOTQ5ZmE5MjFhMmVlYzQ1OGQzZmQ0YTZiYTk1Mjg0ZjEuLjcyNjM1ODQxYzZmYTkxMWZi
Nzg5OTllZWRjNzQyYzM4ZDVkZDUzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAg
LTM4LDcgKzM4LDYgQEAKICNpbXBvcnQgIk1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaCIKICNp
bXBvcnQgIk1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVi5oIgotI2ltcG9ydCAiUGxhdGZvcm1DbG9ja0NNLmgiCiAjaW1wb3J0ICJUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5oIgogI2ltcG9ydCAiVGV4dHVyZUNhY2hlQ1YuaCIKICNpbXBv
cnQgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4
IGMxNTFjNzI1MWYyNmU5MDFlYmJkNTUyOTViODdkMDFlNTVmNWU1YmIuLjIxNGEyZGQ3NTczOWRj
YmMyNWRiMThlNzJmMmZkMDJkNTI4NTEwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBA
IC00NCwxMSArNDQsMTQgQEAgT0JKQ19DTEFTUyBOU051bWJlcjsKIE9CSkNfQ0xBU1MgV2ViQVZT
YW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lcjsKIHR5cGVkZWYgc3RydWN0IG9wYXF1ZUNN
U2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKIAorbmFtZXNwYWNlIFBBTCB7CitjbGFz
cyBDbG9jazsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtQ29jb2E7CiBjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZTsKLWNsYXNz
IENsb2NrOwogY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50OwogY2xhc3MgUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW07CkBAIC0y
MjksNyArMjMyLDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V2ViQVZTYW1wbGVCdWZmZXJT
dGF0dXNDaGFuZ2VMaXN0ZW5lcj4gbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lcjsKICAgICBSZXRhaW5Q
dHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX2JhY2tncm91bmRMYXllcjsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q2xvY2s+IG1fY2xvY2s7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBBTDo6
Q2xvY2s+IG1fY2xvY2s7CiAKICAgICBNZWRpYVRpbWUgbV9wYXVzZWRUaW1lOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KaW5kZXggMWNkNDcwOTE3MGViMTY4MDVmZTdkNDM3M2ViZWUzM2Yy
ZWI4MTBjZS4uMjY0Yjk1MmY5ODZmYWE3ZTg2ODU1MTc4ZTJjNjkyNjY0MTQ1NzYwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKICNpbXBvcnQgIkF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW1Db2NvYS5oIgotI2ltcG9ydCAiQ2xvY2suaCIKICNpbXBvcnQgIkdyYXBo
aWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVN0cmVh
bVByaXZhdGUuaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbXBvcnQgPG9iamNfcnVudGltZS5oPgog
I2ltcG9ydCA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KICNpbXBv
cnQgPHBhbC9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9D
bG9jay5oPgogI2ltcG9ydCA8d3RmL0Z1bmN0aW9uLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xODksNyArMTg5LDcgQEAg
c3RhdGljIGNvbnN0IGRvdWJsZSByZW5kZXJlckxhdGVuY3kgPSAwLjAyOwogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICA6IG1fcGxheWVyKHBsYXllcikKICAgICAs
IG1fc3RhdHVzQ2hhbmdlTGlzdGVuZXIoYWRvcHROUyhbW1dlYkFWU2FtcGxlQnVmZmVyU3RhdHVz
Q2hhbmdlTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKLSAgICAsIG1fY2xv
Y2soQ2xvY2s6OmNyZWF0ZSgpKQorICAgICwgbV9jbG9jayhQQUw6OkNsb2NrOjpjcmVhdGUoKSkK
ICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkpCiAgICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcihWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXI6OmNyZWF0ZSgpKQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ0EuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4YWYxMjdhZTA2MjRiYzgzYjI1YjZjZDhhNjcwOTY2NDk3OTMyNzk0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ0EuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTIxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNFKENPUkVBVURJTykKLQotI2luY2x1ZGUg
IlBsYXRmb3JtQ2xvY2tDQS5oIgotCi0jaW5jbHVkZSA8QXVkaW9Ub29sYm94L0NvcmVBdWRpb0Ns
b2NrLmg+Ci0jaW5jbHVkZSA8Q29yZUF1ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLVBsYXRmb3JtQ2xvY2tDQTo6UGxhdGZvcm1DbG9ja0NBKCkKLSAg
ICA6IG1fY2xvY2soMCkKLSAgICAsIG1fcnVubmluZyhmYWxzZSkKLXsKLSAgICBDQUNsb2NrTmV3
KDAsICZtX2Nsb2NrKTsKLSAgICBVSW50MzIgdGltZWJhc2UgPSBrQ0FDbG9ja1RpbWViYXNlX0F1
ZGlvRGV2aWNlOwotICAgIFVJbnQzMiB0aW1lYmFzZVNpemUgPSBzaXplb2YodGltZWJhc2UpOwot
ICAgIENBQ2xvY2tTZXRQcm9wZXJ0eShtX2Nsb2NrLCBrQ0FDbG9ja1Byb3BlcnR5X0ludGVybmFs
VGltZWJhc2UsIHRpbWViYXNlU2l6ZSwgJnRpbWViYXNlKTsKLQotICAgIEF1ZGlvT2JqZWN0SUQg
ZGVmYXVsdEF1ZGlvT3V0cHV0ID0gMDsKLSAgICBVSW50MzIgZGVmYXVsdEF1ZGlvT3V0cHV0U2l6
ZSA9IHNpemVvZihkZWZhdWx0QXVkaW9PdXRwdXQpOwotCi0gICAgQXVkaW9PYmplY3RQcm9wZXJ0
eUFkZHJlc3MgYWRkcmVzczsKLSAgICBhZGRyZXNzLm1TZWxlY3RvciA9IGtBdWRpb0hhcmR3YXJl
UHJvcGVydHlEZWZhdWx0T3V0cHV0RGV2aWNlOwotICAgIGFkZHJlc3MubVNjb3BlICAgID0ga0F1
ZGlvT2JqZWN0UHJvcGVydHlTY29wZUdsb2JhbDsKLSAgICBhZGRyZXNzLm1FbGVtZW50ICA9IGtB
dWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlcjsKLQotICAgIEF1ZGlvT2JqZWN0R2V0UHJv
cGVydHlEYXRhKGtBdWRpb09iamVjdFN5c3RlbU9iamVjdCwgJmFkZHJlc3MsIDAsIDAsICZkZWZh
dWx0QXVkaW9PdXRwdXRTaXplLCAmZGVmYXVsdEF1ZGlvT3V0cHV0KTsKLSAgICBDQUNsb2NrU2V0
UHJvcGVydHkobV9jbG9jaywga0NBQ2xvY2tQcm9wZXJ0eV9UaW1lYmFzZVNvdXJjZSwgZGVmYXVs
dEF1ZGlvT3V0cHV0U2l6ZSwgJmRlZmF1bHRBdWRpb091dHB1dCk7Ci19Ci0KLVBsYXRmb3JtQ2xv
Y2tDQTo6flBsYXRmb3JtQ2xvY2tDQSgpCi17Ci0gICAgQ0FDbG9ja0Rpc3Bvc2UobV9jbG9jayk7
Ci19Ci0KLXZvaWQgUGxhdGZvcm1DbG9ja0NBOjpzZXRDdXJyZW50VGltZShkb3VibGUgdGltZSkK
LXsKLSAgICBpZiAobV9ydW5uaW5nKQotICAgICAgICBDQUNsb2NrU3RvcChtX2Nsb2NrKTsKLSAg
ICBDQUNsb2NrVGltZSBjYVRpbWU7Ci0gICAgY2FUaW1lLmZvcm1hdCA9IGtDQUNsb2NrVGltZUZv
cm1hdF9TZWNvbmRzOwotICAgIGNhVGltZS50aW1lLnNlY29uZHMgPSB0aW1lOwotICAgIENBQ2xv
Y2tTZXRDdXJyZW50VGltZShtX2Nsb2NrLCAmY2FUaW1lKTsKLSAgICBpZiAobV9ydW5uaW5nKQot
ICAgICAgICBDQUNsb2NrU3RhcnQobV9jbG9jayk7Ci19Ci0KLWRvdWJsZSBQbGF0Zm9ybUNsb2Nr
Q0E6OmN1cnJlbnRUaW1lKCkgY29uc3QKLXsKLSAgICBDQUNsb2NrVGltZSBjYVRpbWU7Ci0KLSAg
ICAvLyBDQUNsb2NrIGRvZXMgbm90IHJldHVybiB0aGUgY29ycmVjdCBjdXJyZW50IHRpbWUgd2hl
biBzdG9wcGVkLiBJbnN0ZWFkLCBxdWVyeSBmb3IKLSAgICAvLyB3aGF0IGlzIHRoZSBzdGFydCB0
aW1lLCBpLmUuIHdoYXQgdGhlIGN1cnJlbnQgdGltZSB3aWxsIGJlIHdoZW4gc3RhcnRlZC4KLSAg
ICBpZiAobV9ydW5uaW5nKSB7Ci0gICAgICAgIGlmIChDQUNsb2NrR2V0Q3VycmVudFRpbWUobV9j
bG9jaywga0NBQ2xvY2tUaW1lRm9ybWF0X1NlY29uZHMsICZjYVRpbWUpID09IG5vRXJyKQotICAg
ICAgICAgICAgcmV0dXJuIGNhVGltZS50aW1lLnNlY29uZHM7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgaWYgKENBQ2xvY2tHZXRTdGFydFRpbWUobV9jbG9jaywga0NBQ2xvY2tUaW1lRm9ybWF0X1Nl
Y29uZHMsICZjYVRpbWUpID09IG5vRXJyKQotICAgICAgICAgICAgcmV0dXJuIGNhVGltZS50aW1l
LnNlY29uZHM7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tD
QTo6c2V0UGxheVJhdGUoZG91YmxlIHJhdGUpCi17Ci0gICAgQ0FDbG9ja1NldFBsYXlSYXRlKG1f
Y2xvY2ssIHJhdGUpOwotfQotCi1kb3VibGUgUGxhdGZvcm1DbG9ja0NBOjpQbGF0Zm9ybUNsb2Nr
Q0E6OnBsYXlSYXRlKCkgY29uc3QKLXsKLSAgICBkb3VibGUgcmF0ZSA9IDA7Ci0gICAgaWYgKENB
Q2xvY2tHZXRQbGF5UmF0ZShtX2Nsb2NrLCAmcmF0ZSkgPT0gbm9FcnIpCi0gICAgICAgIHJldHVy
biByYXRlOwotICAgIHJldHVybiAwOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tDQTo6c3RhcnQo
KQotewotICAgIGlmIChtX3J1bm5pbmcpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3J1bm5pbmcg
PSB0cnVlOwotICAgIENBQ2xvY2tTdGFydChtX2Nsb2NrKTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNs
b2NrQ0E6OnN0b3AoKQotewotICAgIGlmICghbV9ydW5uaW5nKQotICAgICAgICByZXR1cm47Ci0g
ICAgbV9ydW5uaW5nID0gZmFsc2U7Ci0gICAgQ0FDbG9ja1N0b3AobV9jbG9jayk7Ci19Ci0KLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1D
bG9ja0NBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwNGI5MGM5NmJjNzY4YmFmNmUzM2NmZTM5
YmE2MDE3M2NmODZiODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDQS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFBsYXRmb3JtQ2xvY2tDQV9oCi0jZGVmaW5lIFBsYXRm
b3JtQ2xvY2tDQV9oCi0KLSNpZiBVU0UoQ09SRUFVRElPKQotCi0jaW5jbHVkZSAiQ2xvY2suaCIK
LQotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0FDbG9jayAqQ0FDbG9ja1JlZjsKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBQbGF0Zm9ybUNsb2NrQ0EgZmluYWwgOiBwdWJsaWMgQ2xvY2sg
ewotcHVibGljOgotICAgIFBsYXRmb3JtQ2xvY2tDQSgpOwotICAgIHZpcnR1YWwgflBsYXRmb3Jt
Q2xvY2tDQSgpOwotCi1wcml2YXRlOgotICAgIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKSBv
dmVycmlkZTsKLSAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsKLQotICAg
IHZvaWQgc2V0UGxheVJhdGUoZG91YmxlKSBvdmVycmlkZTsKLSAgICBkb3VibGUgcGxheVJhdGUo
KSBjb25zdCBvdmVycmlkZTsKLQotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKLSAgICB2b2lk
IHN0b3AoKSBvdmVycmlkZTsKLSAgICBib29sIGlzUnVubmluZygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fcnVubmluZzsgfQotCi0gICAgQ0FDbG9ja1JlZiBtX2Nsb2NrOwotICAgIGJvb2wg
bV9ydW5uaW5nOwotfTsKLQotfQotCi0jZW5kaWYKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NNLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NNLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQ1Njg3ZDg4YmYzNmIzNGUwMjhmOTI4NTAwNWY2NDM3Nzg5YmEyM2IuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDTS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFBsYXRmb3JtQ2xvY2tDTV9oCi0jZGVmaW5lIFBsYXRmb3JtQ2xvY2tDTV9oCi0KLSNpZiBVU0Uo
Q09SRU1FRElBKQotCi0jaW5jbHVkZSAiQ2xvY2suaCIKLSNpbmNsdWRlIDx3dGYvTWVkaWFUaW1l
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi10eXBlZGVmIHN0cnVjdCBPcGFxdWVD
TVRpbWViYXNlKiBDTVRpbWViYXNlUmVmOwotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ01DbG9jayog
Q01DbG9ja1JlZjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBQbGF0Zm9ybUNsb2Nr
Q00gZmluYWwgOiBwdWJsaWMgQ2xvY2sgewotcHVibGljOgotICAgIFBsYXRmb3JtQ2xvY2tDTSgp
OwotICAgIFBsYXRmb3JtQ2xvY2tDTShDTUNsb2NrUmVmKTsKLQotICAgIHZvaWQgc2V0Q3VycmVu
dFRpbWUoZG91YmxlKSBvdmVycmlkZTsKLSAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBv
dmVycmlkZTsKLQotICAgIHZvaWQgc2V0Q3VycmVudE1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUm
KTsKLSAgICBNZWRpYVRpbWUgY3VycmVudE1lZGlhVGltZSgpIGNvbnN0OwotCi0gICAgdm9pZCBz
ZXRQbGF5UmF0ZShkb3VibGUpIG92ZXJyaWRlOwotICAgIGRvdWJsZSBwbGF5UmF0ZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmF0ZTsgfQotCi0gICAgdm9pZCBzdGFydCgpIG92ZXJyaWRl
OwotICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNSdW5uaW5nKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9ydW5uaW5nOyB9Ci0KLSAgICBDTVRpbWViYXNlUmVmIHRpbWVi
YXNlKCkgY29uc3QgeyByZXR1cm4gbV90aW1lYmFzZS5nZXQoKTsgfQotCi1wcml2YXRlOgotICAg
IHZvaWQgaW5pdGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2UoQ01DbG9ja1JlZik7Ci0KLSAgICBSZXRh
aW5QdHI8Q01UaW1lYmFzZVJlZj4gbV90aW1lYmFzZTsKLSAgICBkb3VibGUgbV9yYXRlOwotICAg
IGJvb2wgbV9ydW5uaW5nOwotfTsKLQotfQotCi0jZW5kaWYKLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NNLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDTS5tbQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjk0ODVkYThkNDFiYWNiNWQ3OTA4OWRlYmRkM2MwMWYxYTA3MmYxMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NNLm1tCisrKyAvZGV2L251bGwKQEAgLTEs
MTE4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTUgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0KLSNpZiBVU0UoQ09SRU1FRElBKQotCi0jaW1w
b3J0ICJQbGF0Zm9ybUNsb2NrQ00uaCIKLQotI2ltcG9ydCA8cGFsL2F2Zm91bmRhdGlvbi9NZWRp
YVRpbWVBVkZvdW5kYXRpb24uaD4KLQotI2ltcG9ydCAiQ29yZU1lZGlhU29mdExpbmsuaCIKLQot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLS8vIEEgZGVmYXVsdCB0aW1lIHNjYWxlIG9mIDEw
MDAgYWxsb3dzIG1pbGxpLXNlY29uZCBDTVRpbWUgcHJlY2lzaW9uIHdpdGhvdXQgc2NhbGluZyB0
aGUgdGltZWJhc2UuCi1zdGF0aWMgY29uc3QgaW50MzJfdCBEZWZhdWx0VGltZVNjYWxlID0gMTAw
MDsKLQotUGxhdGZvcm1DbG9ja0NNOjpQbGF0Zm9ybUNsb2NrQ00oKQotICAgIDogbV90aW1lYmFz
ZSgwKQotICAgICwgbV9yYXRlKDEpCi0gICAgLCBtX3J1bm5pbmcoZmFsc2UpCi17Ci0gICAgQ01D
bG9ja1JlZiByYXdDbG9ja1B0ciA9IDA7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIENNQXVkaW9D
bG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmcmF3Q2xvY2tQdHIpOwotI2Vsc2UKLSAg
ICBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgJnJh
d0Nsb2NrUHRyKTsKLSNlbmRpZgotICAgIFJldGFpblB0cjxDTUNsb2NrUmVmPiBjbG9jayA9IGFk
b3B0Q0YocmF3Q2xvY2tQdHIpOwotICAgIGluaXRpYWxpemVXaXRoVGltaW5nU291cmNlKGNsb2Nr
LmdldCgpKTsKLX0KLQotUGxhdGZvcm1DbG9ja0NNOjpQbGF0Zm9ybUNsb2NrQ00oQ01DbG9ja1Jl
ZiBjbG9jaykKLSAgICA6IG1fdGltZWJhc2UoMCkKLSAgICAsIG1fcnVubmluZyhmYWxzZSkKLXsK
LSAgICBpbml0aWFsaXplV2l0aFRpbWluZ1NvdXJjZShjbG9jayk7Ci19Ci0KLXZvaWQgUGxhdGZv
cm1DbG9ja0NNOjppbml0aWFsaXplV2l0aFRpbWluZ1NvdXJjZShDTUNsb2NrUmVmIGNsb2NrKQot
ewotICAgIENNVGltZWJhc2VSZWYgcmF3VGltZWJhc2VQdHIgPSAwOwotICAgIENNVGltZWJhc2VD
cmVhdGVXaXRoTWFzdGVyQ2xvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgY2xvY2ssICZyYXdUaW1l
YmFzZVB0cik7Ci0gICAgbV90aW1lYmFzZSA9IGFkb3B0Q0YocmF3VGltZWJhc2VQdHIpOwotfQot
Ci12b2lkIFBsYXRmb3JtQ2xvY2tDTTo6c2V0Q3VycmVudFRpbWUoZG91YmxlIHRpbWUpCi17Ci0g
ICAgQ01UaW1lIGNtVGltZSA9IENNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCBEZWZhdWx0VGlt
ZVNjYWxlKTsKLSAgICBDTVRpbWViYXNlU2V0VGltZShtX3RpbWViYXNlLmdldCgpLCBjbVRpbWUp
OwotfQotCi1kb3VibGUgUGxhdGZvcm1DbG9ja0NNOjpjdXJyZW50VGltZSgpIGNvbnN0Ci17Ci0g
ICAgQ01UaW1lIGNtVGltZSA9IENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpOwot
ICAgIHJldHVybiBDTVRpbWVHZXRTZWNvbmRzKGNtVGltZSk7Ci19Ci0KLXZvaWQgUGxhdGZvcm1D
bG9ja0NNOjpzZXRDdXJyZW50TWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKLXsKLSAg
ICBDTVRpbWViYXNlU2V0VGltZShtX3RpbWViYXNlLmdldCgpLCBQQUw6OnRvQ01UaW1lKHRpbWUp
KTsKLX0KLQotTWVkaWFUaW1lIFBsYXRmb3JtQ2xvY2tDTTo6Y3VycmVudE1lZGlhVGltZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIFBBTDo6dG9NZWRpYVRpbWUoQ01UaW1lYmFzZUdldFRpbWUobV90
aW1lYmFzZS5nZXQoKSkpOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tDTTo6c2V0UGxheVJhdGUo
ZG91YmxlIHJhdGUpCi17Ci0gICAgaWYgKG1fcmF0ZSA9PSByYXRlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBtX3JhdGUgPSByYXRlOwotICAgIGlmIChtX3J1bm5pbmcpCi0gICAgICAgIENNVGlt
ZWJhc2VTZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCksIHJhdGUpOwotfQotCi12b2lkIFBsYXRmb3Jt
Q2xvY2tDTTo6c3RhcnQoKQotewotICAgIGlmIChtX3J1bm5pbmcpCi0gICAgICAgIHJldHVybjsK
LSAgICBtX3J1bm5pbmcgPSB0cnVlOwotICAgIENNVGltZWJhc2VTZXRSYXRlKG1fdGltZWJhc2Uu
Z2V0KCksIG1fcmF0ZSk7Ci19Ci0KLXZvaWQgUGxhdGZvcm1DbG9ja0NNOjpzdG9wKCkKLXsKLSAg
ICBpZiAoIW1fcnVubmluZykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fcnVubmluZyA9IGZhbHNl
OwotICAgIENNVGltZWJhc2VTZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCksIDApOwotfQotCi0jZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321797</attachid>
            <date>2017-09-25 23:05:09 -0700</date>
            <delta_ts>2017-09-26 00:12:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174342-20170926150556.patch</filename>
            <type>text/plain</type>
            <size>64405</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkyOWE4YTFiOWZkMDVl
ODlkNDdhZDU2YWVlMjYyYjY5ZjUzNjEwMy4uYzU5MTdhOGQzZGUzZWViOWU3MThlZTE1NzllNzE5
ZTBjMDNhOWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA5LTI1ICBZb3No
aWFraSBKaXRzdWthd2EgIDxZb3NoaWFraS5KaXRzdWthd2FAc29ueS5jb20+CisKKyAgICAgICAg
W1BBTF0gTW92ZSBDbG9jayBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTWVkaWFDb250cm9sbGVyOjpNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAqIGh0bWwv
TWVkaWFDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vQ2xvY2suY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tD
QS5jcHA6IFJlbW92ZWQuIFBsYXRmb3JtQ2xvY2tDQSBpcyBubyBsb25nZXIgdXNlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmg6IFJlbW92ZWQuCisKIDIwMTctMDkt
MjQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBD
U1MgcmVnaW9ucyByZWxhdGVkIGZpZWxkcyBmcm9tIFJlbmRlclN0eWxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBhMjVjZWU4YTkwMTlkMDU1ZDZiNGE3MjQzMzRmOTk4ODJlMThkOTYxLi44OTg2MjE2
YzczNWQ1NjY0OGJlMGVjMGFmMDFjNzg5ODA1NDc4MDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMyBAQAorMjAxNy0wOS0yNSAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9zaGlha2ku
Sml0c3VrYXdhQHNvbnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgQ2xvY2sgaW50byBQQUwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDM0Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL1BsYXRmb3JtR1RLLmNtYWtl
OgorICAgICAgICAqIHBhbC9QbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBwYWwvc3lzdGVt
L0Nsb2NrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5oLgor
ICAgICAgICAqIHBhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAuCisgICAgICAgIChQQUw6OkNsb2Nr
OjpjcmVhdGUpOgorICAgICAgICAqIHBhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuaC4KKyAgICAgICAgKiBw
YWwvc3lzdGVtL21hYy9DbG9ja0NNLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NNLmguCisgICAgICAgICogcGFsL3N5c3RlbS9tYWMvQ2xv
Y2tDTS5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUNsb2NrQ00ubW0uCisgICAgICAgIChDbG9jazo6Y3JlYXRlKToKKyAgICAgICAgKENsb2NrQ006
OkNsb2NrQ00pOgorICAgICAgICAoQ2xvY2tDTTo6aW5pdGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2Up
OgorICAgICAgICAoQ2xvY2tDTTo6c2V0Q3VycmVudFRpbWUpOgorICAgICAgICAoQ2xvY2tDTTo6
Y3VycmVudFRpbWUgY29uc3QpOgorICAgICAgICAoQ2xvY2tDTTo6c2V0Q3VycmVudE1lZGlhVGlt
ZSk6CisgICAgICAgIChDbG9ja0NNOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAg
KENsb2NrQ006OnNldFBsYXlSYXRlKToKKyAgICAgICAgKENsb2NrQ006OnN0YXJ0KToKKyAgICAg
ICAgKENsb2NrQ006OnN0b3ApOgorCisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
LmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaDoKKyAgICAgICAgQWRk
IHJlcXVyaXJlZCBmdW5jdGlvbnMuCiAyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVm
IGxhemlseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOWNmZDQzNDdiODFkOTFkZTgzMDMyZTA3
YmQxMmJkMTM3MDA1YzlkOS4uODA5YzNiMTcwZjg3NjUyN2I3ZjQzMTc2ZDAyZWUzMjczY2U4NTNl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIzMDQsOCArMjMwNCw2IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCiAK
ICAgICBwbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmNwcAotICAgIHBsYXRmb3JtL0Nsb2NrLmNw
cAotICAgIHBsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAKICAgICBwbGF0Zm9ybS9Db250ZW50VHlw
ZS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOTBkMGI5MzY1MTNjYzI3MzQ1NWVkODZmYWUwMjY2ZDgwNmQ5NjQ0
ZC4uMjU1YTNhNzNjOWVmZWU4ZWEzODM4NzBhZmZlM2Y4ZTUyNjJhZTVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzEsNiAr
NzEsOSBAQAogCQkwQzVBRjkyMDFGNDNBNEM3MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQzVBRjkxNjFGNDNB
NEM3MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmggKi87IH07CiAJCTBDNUFGOTIxMUY0M0E0Qzcw
MDJFQUMwMiAvKiBTUUxpdGUzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwQzVBRjkxNzFGNDNBNEM3MDAyRUFDMDIgLyogU1FMaXRlM1NQSS5oICov
OyB9OwogCQkwQzVBRjkyMjFGNDNBNEM3MDAyRUFDMDIgLyogVUlLaXRTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBDNUFGOTE4MUY0M0E0QzcwMDJF
QUMwMiAvKiBVSUtpdFNQSS5oICovOyB9OworCQkwQzVGRkYwQzFGNzhEOTkwMDA5RUZGMUEgLyog
Q2xvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBD
NUZGRjBCMUY3OEQ5OEYwMDlFRkYxQSAvKiBDbG9jay5oICovOyB9OworCQkwQzVGRkYwRjFGNzhE
OURBMDA5RUZGMUEgLyogQ2xvY2tDTS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBDNUZGRjBEMUY3OEQ5RDgwMDlFRkYxQSAvKiBDbG9ja0NNLm1tICov
OyB9OworCQkwQzVGRkYxMDFGNzhEOURBMDA5RUZGMUEgLyogQ2xvY2tDTS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEM1RkZGMEUxRjc4RDlEQTAwOUVG
RjFBIC8qIENsb2NrQ00uaCAqLzsgfTsKIAkJMEM3Nzg1ODkxRjQ1MTMwRjAwRjRFQkI2IC8qIEFW
Rm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEM3Nzg1NzAxRjQ1MTMwRjAwRjRFQkI2IC8qIEFWRm91bmRhdGlvblNQSS5oICovOyB9
OwogCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYgLyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEM3Nzg1NzExRjQ1MTMw
RjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLzsgfTsKIAkJMEM3Nzg1OEIxRjQ1MTMw
RjAwRjRFQkI2IC8qIExvb2t1cFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEM3Nzg1NzIxRjQ1MTMwRjAwRjRFQkI2IC8qIExvb2t1cFNQSS5oICov
OyB9OwpAQCAtMTk4LDYgKzIwMSw5IEBACiAJCTBDNUFGOTE2MUY0M0E0QzcwMDJFQUMwMiAvKiBR
dWlja0xvb2tTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29r
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBDNUFGOTE3MUY0M0E0QzcwMDJF
QUMwMiAvKiBTUUxpdGUzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNR
TGl0ZTNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEM1QUY5MTgxRjQzQTRD
NzAwMkVBQzAyIC8qIFVJS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVJS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBDNUZGRjBCMUY3OEQ5
OEYwMDlFRkYxQSAvKiBDbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
bG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwQzVGRkYwRDFGNzhEOUQ4MDA5
RUZGMUEgLyogQ2xvY2tDTS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENsb2NrQ00ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBDNUZGRjBFMUY3
OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENsb2NrQ00uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEM3Nzg1NzAxRjQ1
MTMwRjAwRjRFQkI2IC8qIEFWRm91bmRhdGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBVkZvdW5kYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEM3Nzg1NzExRjQ1MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YURldGVjdG9yc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwQzc3ODU3MjFGNDUxMzBGMDBGNEVCQjYgLyogTG9va3VwU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvb2t1cFNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE2LDYgKzUyMiw3IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlBM0FCNkU1RDFGM0QxRTI4MDA5QzE0QjEgLyogY29jb2EgKi8sCiAJCQkJQTM3ODhFQTAx
RjA1QjdFMjAwNjc5NDI1IC8qIG1hYyAqLywKKwkJCQkwQzVGRkYwQjFGNzhEOThGMDA5RUZGMUEg
LyogQ2xvY2suaCAqLywKIAkJCQlBM0FCNkU1MTFGM0QxREM1MDA5QzE0QjEgLyogU2xlZXBEaXNh
Ymxlci5jcHAgKi8sCiAJCQkJQTNBQjZFNTMxRjNEMUREQjAwOUMxNEIxIC8qIFNsZWVwRGlzYWJs
ZXIuaCAqLywKIAkJCQlBMzc4OEU5QjFGMDVCNzgyMDA2Nzk0MjUgLyogU291bmQuY3BwICovLApA
QCAtNTI5LDYgKzUzNiw4IEBACiAJCUEzNzg4RUEwMUYwNUI3RTIwMDY3OTQyNSAvKiBtYWMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTBDNUZGRjBFMUY3
OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmggKi8sCisJCQkJMEM1RkZGMEQxRjc4RDlEODAwOUVG
RjFBIC8qIENsb2NrQ00ubW0gKi8sCiAJCQkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERl
ZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCiAJCQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICovLAogCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0
QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKQEAgLTU2NSw2ICs1NzQsOCBAQAogCQkJCTBDMkRBMDZG
MUYzM0NBODQwMERCQzMxNyAvKiBDRk5ldHdvcmtTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBD
MkRBMTNGMUYzQkVCNDkwMERCQzMxNyAvKiBDRk5TVVJMQ29ubmVjdGlvblNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyREEwNzAxRjMzQ0E4NDAwREJDMzE3IC8qIENGVXRpbGl0aWVzU1BJLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwQzVGRkYwQzFGNzhEOTkwMDA5RUZGMUEgLyogQ2xvY2suaCBp
biBIZWFkZXJzICovLAorCQkJCTBDNUZGRjEwMUY3OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQzA5RDA1ODFFMzFDNTdFMDA3MjVGMTggLyogY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTA3MTFGMzNDQTg0MDBEQkMzMTcgLyogQ29yZUF1ZGlv
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTExRTFGM0JFOUUwMDBEQkMzMTcgLyogQ29y
ZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTc0NCw2ICs3NTUsNyBAQAogCQkJaXNh
ID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwogCQkJZmlsZXMgPSAoCisJCQkJMEM1RkZGMEYxRjc4RDlEQTAwOUVGRjFBIC8qIENsb2NrQ00u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwQ0Y5OUNBODFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1
RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
MTE3NUI1ODFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybUdU
Sy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXgg
Njc0NjYxYmFjMjJkNzVlMzEzZmMyMDQ1MzhhZjg2ZDE3Y2Y3YWVhMy4uYzZkN2JiZWZiNTA3ZDUx
OGE1MTYzMTkzNTk5OGMyY2Q4MDQ5N2UwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRm
b3JtR1RLLmNtYWtlCkBAIC0xLDYgKzEsOCBAQAogbGlzdChBUFBFTkQgUEFMX1NPVVJDRVMKICAg
ICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0RpZ2VzdEdDcnlwdC5jcHAKIAorICAgIHN5c3RlbS9DbG9j
a0dlbmVyaWMuY3BwCisKICAgICBzeXN0ZW0vZ3RrL1NvdW5kR3RrLmNwcAogCiAgICAgdGV4dC9L
aWxsUmluZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1X
UEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4
IDFmOWNhMjIxZGExYTlkMDQ0ZDFlYjVmNzNjMDM1NmNlZGI2NmQzMGMuLmFhYjdlMWYyYmRlNjQz
ZDJlNTM0MTIzYmJiZDFkMjE2NDM4ZGVhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0
Zm9ybVdQRS5jbWFrZQpAQCAtMSw2ICsxLDcgQEAKIGxpc3QoQVBQRU5EIFBBTF9TT1VSQ0VTCiAg
ICAgY3J5cHRvL2djcnlwdC9DcnlwdG9EaWdlc3RHQ3J5cHQuY3BwCiAKKyAgICBzeXN0ZW0vQ2xv
Y2tHZW5lcmljLmNwcAogICAgIHN5c3RlbS9Tb3VuZC5jcHAKIAogICAgIHRleHQvS2lsbFJpbmcu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV2luLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA4ZjFmZjg4
NGFiOGMyMGFlYWFkNzFmMDk0NTY4MzNhZGQxODg4ZWJhLi4xZTY4ZDRlOWQwMDFmMDRiMzhmNTdm
YzY1MjgzN2Q0MGU4NWRmNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Bs
YXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XaW4u
Y21ha2UKQEAgLTEsNiArMSw4IEBACiBsaXN0KEFQUEVORCBQQUxfU09VUkNFUwogICAgIGNyeXB0
by93aW4vQ3J5cHRvRGlnZXN0V2luLmNwcAogCisgICAgc3lzdGVtL0Nsb2NrR2VuZXJpYy5jcHAK
KwogICAgIHN5c3RlbS93aW4vU291bmRXaW4uY3BwCiAKICAgICB0ZXh0L0tpbGxSaW5nLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAppbmRl
eCBiZGRkNmJkY2M3OGM1NWZlNDdmZjAxNzk4N2I3MTBmYTc1YmUyOThhLi4yNWZlMjUyOTZjZmNl
MmViNzY5NmUxMmI5ZWQ1Mjc3YzJiNmMyOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcApAQCAtMzMsNyArMzMsMjAgQEAKIAogU09GVF9M
SU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFBBTCwgQ29yZU1lZGlhKQogCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2
NCwgKENNVGltZSB0aW1lKSwgKHRpbWUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBDb3JlTWVkaWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFsdWUsIGludDMy
X3QgdGltZXNjYWxlKSwgKHZhbHVlLCB0aW1lc2NhbGUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1lLCAo
RmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRzLCBw
cmVmZXJyZWRUaW1lU2NhbGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBD
b3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWViYXNl
UmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91dCkp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFz
ZUdldFRpbWUsIENNVGltZSwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpKQor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VT
ZXRSYXRlLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGltZWJhc2UsIEZsb2F0NjQgcmF0ZSks
ICh0aW1lYmFzZSwgcmF0ZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIENv
cmVNZWRpYSwgQ01UaW1lYmFzZVNldFRpbWUsIE9TU3RhdHVzLCAoQ01UaW1lYmFzZVJlZiB0aW1l
YmFzZSwgQ01UaW1lIHRpbWUpLCAodGltZWJhc2UsIHRpbWUpKQorCisjaWYgUExBVEZPUk0oSU9T
KQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9D
bG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tS
ZWYgKmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpKQorI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKKworI2lmIFBMQVRGT1JNKE1BQykKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYg
KmNsb2NrT3V0KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCkpCisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQogCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaAppbmRleCA4NjYxMThmNmRmMGE0
ODJhYjBjZmM1YmEyZmM4MjIzYTM4NmRjYmMzLi4yZTc0ZjlmYjFhMDEyNDFmZTM0M2RhNGFkYjE1
NjJhY2Q5NGU0ZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5oCkBAIC0zMyw5ICszMywyOSBAQAogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9I
RUFERVIoUEFMLCBDb3JlTWVkaWEpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAo
dGltZSkpCisjZGVmaW5lIENNVGltZUdldFNlY29uZHMgc29mdExpbmtfQ29yZU1lZGlhX0NNVGlt
ZUdldFNlY29uZHMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlh
LCBDTVRpbWVNYWtlLCBDTVRpbWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2FsZSks
ICh2YWx1ZSwgdGltZXNjYWxlKSkKICNkZWZpbmUgQ01UaW1lTWFrZSBzb2Z0TGlua19Db3JlTWVk
aWFfQ01UaW1lTWFrZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1lLCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQz
Ml90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRzLCBwcmVmZXJyZWRUaW1lU2NhbGUpKQog
I2RlZmluZSBDTVRpbWVNYWtlV2l0aFNlY29uZHMgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1h
a2VXaXRoU2Vjb25kcworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRpbWViYXNlUmVmICp0
aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFzZU91dCkpCisjZGVm
aW5lIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2sgc29mdExpbmtfQ29yZU1lZGlhX0NN
VGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2sKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1lYmFz
ZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSkpCisjZGVmaW5lIENNVGltZWJhc2VHZXRUaW1lIHNv
ZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlR2V0VGltZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRSYXRlLCBPU1N0YXR1cywgKENN
VGltZWJhc2VSZWYgdGltZWJhc2UsIEZsb2F0NjQgcmF0ZSksICh0aW1lYmFzZSwgcmF0ZSkpCisj
ZGVmaW5lIENNVGltZWJhc2VTZXRSYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlU2V0
UmF0ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZWJhc2VTZXRUaW1lLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGltZWJhc2UsIENNVGltZSB0
aW1lKSwgKHRpbWViYXNlLCB0aW1lKSkKKyNkZWZpbmUgQ01UaW1lYmFzZVNldFRpbWUgc29mdExp
bmtfQ29yZU1lZGlhX0NNVGltZWJhc2VTZXRUaW1lCisKKyNpZiBQTEFURk9STShJT1MpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiAqY2xv
Y2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCkpCisjZGVmaW5lIENNQXVkaW9DbG9ja0NyZWF0
ZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Nsb2NrQ3JlYXRlCisjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQorCisjaWYgUExBVEZPUk0oTUFDKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1Jl
ZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSkKKyNkZWZpbmUg
Q01BdWRpb0RldmljZUNsb2NrQ3JlYXRlICBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Rldmlj
ZUNsb2NrQ3JlYXRlCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjZW5kaWYgLy8gVVNFKEFW
Rk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL0Ns
b2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9DbG9jay5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg0YTk1YmYwOTg1ZDg2YjY0NzFjMWIyNGYyNGU5OTU3MGY3ZThmZWMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9DbG9jay5oCkBAIC0wLDAgKzEsNTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1l
bnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPG1lbW9yeT4KKwor
bmFtZXNwYWNlIFBBTCB7CisKK2NsYXNzIENsb2NrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPENsb2NrPiBjcmVhdGUoKTsKKyAgICB2aXJ0dWFsIH5DbG9jaygpID0gZGVm
YXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUpID0gMDsKKyAg
ICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwg
dm9pZCBzZXRQbGF5UmF0ZShkb3VibGUpID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBwbGF5UmF0
ZSgpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcCgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSdW5uaW5nKCkgY29uc3Qg
PSAwOworCitwcm90ZWN0ZWQ6CisgICAgQ2xvY2soKSA9IGRlZmF1bHQ7Cit9OworCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9DbG9ja0dlbmVyaWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNmM3MWI0Zjc1Y2JmYTVlOTU1N2NmNWNhMzVmOTQwMmZiN2ExM2M0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmNwcApAQCAt
MCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgU29ueSBJbnRlcmFjdGl2ZSBF
bnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkNsb2NrR2VuZXJpYy5oIgorCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK25h
bWVzcGFjZSBQQUwgeworCitzdGQ6OnVuaXF1ZV9wdHI8Q2xvY2s+IENsb2NrOjpjcmVhdGUoKQor
eworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENsb2NrR2VuZXJpYz4oKTsKK30KKworQ2xv
Y2tHZW5lcmljOjpDbG9ja0dlbmVyaWMoKQorICAgIDogbV9ydW5uaW5nKGZhbHNlKQorICAgICwg
bV9yYXRlKDEpCisgICAgLCBtX29mZnNldCgwKQoreworICAgIG1fc3RhcnRUaW1lID0gbV9sYXN0
VGltZSA9IG5vdygpOworfQorCit2b2lkIENsb2NrR2VuZXJpYzo6c2V0Q3VycmVudFRpbWUoZG91
YmxlIHRpbWUpCit7CisgICAgbV9zdGFydFRpbWUgPSBtX2xhc3RUaW1lID0gbm93KCk7CisgICAg
bV9vZmZzZXQgPSB0aW1lOworfQorCitkb3VibGUgQ2xvY2tHZW5lcmljOjpjdXJyZW50VGltZSgp
IGNvbnN0Cit7CisgICAgaWYgKG1fcnVubmluZykKKyAgICAgICAgbV9sYXN0VGltZSA9IG5vdygp
OworICAgIHJldHVybiAoKG1fbGFzdFRpbWUgLSBtX3N0YXJ0VGltZSkgKiBtX3JhdGUpICsgbV9v
ZmZzZXQ7Cit9CisKK3ZvaWQgQ2xvY2tHZW5lcmljOjpzZXRQbGF5UmF0ZShkb3VibGUgcmF0ZSkK
K3sKKyAgICBtX29mZnNldCA9IGN1cnJlbnRUaW1lKCk7CisgICAgbV9sYXN0VGltZSA9IG1fc3Rh
cnRUaW1lID0gbm93KCk7CisgICAgbV9yYXRlID0gcmF0ZTsKK30KKwordm9pZCBDbG9ja0dlbmVy
aWM6OnN0YXJ0KCkKK3sKKyAgICBpZiAobV9ydW5uaW5nKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX2xhc3RUaW1lID0gbV9zdGFydFRpbWUgPSBub3coKTsKKyAgICBtX3J1bm5pbmcgPSB0cnVl
OworfQorCit2b2lkIENsb2NrR2VuZXJpYzo6c3RvcCgpCit7CisgICAgaWYgKCFtX3J1bm5pbmcp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fb2Zmc2V0ID0gY3VycmVudFRpbWUoKTsKKyAgICBt
X2xhc3RUaW1lID0gbV9zdGFydFRpbWUgPSBub3coKTsKKyAgICBtX3J1bm5pbmcgPSBmYWxzZTsK
K30KKworZG91YmxlIENsb2NrR2VuZXJpYzo6bm93KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3lzdGVtL0Nsb2NrR2VuZXJpYy5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZkZjZmOWIxMDkxYTEzOGJm
NGE5OGQ0OGQ5OGJlOGFmY2ZjZGEwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3lzdGVtL0Nsb2NrR2VuZXJpYy5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNyBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNsb2NrLmgiCisKK25hbWVzcGFjZSBQ
QUwgeworCitjbGFzcyBDbG9ja0dlbmVyaWMgZmluYWwgOiBwdWJsaWMgQ2xvY2sgeworcHVibGlj
OgorICAgIENsb2NrR2VuZXJpYygpOworCitwcml2YXRlOgorICAgIHZvaWQgc2V0Q3VycmVudFRp
bWUoZG91YmxlKSBvdmVycmlkZTsKKyAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBvdmVy
cmlkZTsKKworICAgIHZvaWQgc2V0UGxheVJhdGUoZG91YmxlKSBvdmVycmlkZTsKKyAgICBkb3Vi
bGUgcGxheVJhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JhdGU7IH0KKworICAgIHZv
aWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29s
IGlzUnVubmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcnVubmluZzsgfQorCisgICAg
ZG91YmxlIG5vdygpIGNvbnN0OworCisgICAgYm9vbCBtX3J1bm5pbmc7CisgICAgZG91YmxlIG1f
cmF0ZTsKKyAgICBkb3VibGUgbV9vZmZzZXQ7CisgICAgZG91YmxlIG1fc3RhcnRUaW1lOworICAg
IG11dGFibGUgZG91YmxlIG1fbGFzdFRpbWU7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvQ2xvY2tDTS5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zeXN0ZW0vbWFjL0Nsb2NrQ00uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODZiNDEyZjE2MDJmODlkMDFj
ZGMzZWMxOGRkNjc0Yzk5YTNlNzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zeXN0ZW0vbWFjL0Nsb2NrQ00uaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
VVNFKENPUkVNRURJQSkKKworI2luY2x1ZGUgIi4uL0Nsb2NrLmgiCisjaW5jbHVkZSA8d3RmL01l
ZGlhVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3Qg
T3BhcXVlQ01UaW1lYmFzZSogQ01UaW1lYmFzZVJlZjsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNN
Q2xvY2sqIENNQ2xvY2tSZWY7CisKK25hbWVzcGFjZSBQQUwgeworCitjbGFzcyBDbG9ja0NNIGZp
bmFsIDogcHVibGljIENsb2NrIHsKK3B1YmxpYzoKKyAgICBDbG9ja0NNKCk7CisgICAgQ2xvY2tD
TShDTUNsb2NrUmVmKTsKKworICAgIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKSBvdmVycmlk
ZTsKKyAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsKKworICAgIHZvaWQg
c2V0Q3VycmVudE1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmKTsKKyAgICBNZWRpYVRpbWUgY3Vy
cmVudE1lZGlhVGltZSgpIGNvbnN0OworCisgICAgdm9pZCBzZXRQbGF5UmF0ZShkb3VibGUpIG92
ZXJyaWRlOworICAgIGRvdWJsZSBwbGF5UmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
cmF0ZTsgfQorCisgICAgdm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92
ZXJyaWRlOworICAgIGJvb2wgaXNSdW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9y
dW5uaW5nOyB9CisKKyAgICBDTVRpbWViYXNlUmVmIHRpbWViYXNlKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lYmFzZS5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIHZvaWQgaW5pdGlhbGl6ZVdpdGhU
aW1pbmdTb3VyY2UoQ01DbG9ja1JlZik7CisKKyAgICBSZXRhaW5QdHI8Q01UaW1lYmFzZVJlZj4g
bV90aW1lYmFzZTsKKyAgICBkb3VibGUgbV9yYXRlOworICAgIGJvb2wgbV9ydW5uaW5nOworfTsK
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVt
L21hYy9DbG9ja0NNLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0Nsb2Nr
Q00ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2ZjNGQwNmU3MzkwZWUzYzVkM2Q5MWU1NDI1ZjI4YTQwOTQ1YzNk
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9D
bG9ja0NNLm1tCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAy
MDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgVVNFKENP
UkVNRURJQSkKKyNpbXBvcnQgIkNsb2NrQ00uaCIKKworI2ltcG9ydCA8cGFsL2F2Zm91bmRhdGlv
bi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KKworI2ltcG9ydCAiQ29yZU1lZGlhU29mdExpbmsu
aCIKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKworLy8gQSBkZWZhdWx0IHRpbWUgc2NhbGUgb2Yg
MTAwMCBhbGxvd3MgbWlsbGktc2Vjb25kIENNVGltZSBwcmVjaXNpb24gd2l0aG91dCBzY2FsaW5n
IHRoZSB0aW1lYmFzZS4KK3N0YXRpYyBjb25zdCBpbnQzMl90IERlZmF1bHRUaW1lU2NhbGUgPSAx
MDAwOworCitzdGQ6OnVuaXF1ZV9wdHI8Q2xvY2s+IENsb2NrOjpjcmVhdGUoKQoreworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPENsb2NrQ00+KCk7Cit9CisKK0Nsb2NrQ006OkNsb2NrQ00o
KQorICAgIDogbV90aW1lYmFzZSgwKQorICAgICwgbV9yYXRlKDEpCisgICAgLCBtX3J1bm5pbmco
ZmFsc2UpCit7CisgICAgQ01DbG9ja1JlZiByYXdDbG9ja1B0ciA9IDA7CisjaWYgUExBVEZPUk0o
SU9TKQorICAgIENNQXVkaW9DbG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmcmF3Q2xv
Y2tQdHIpOworI2Vsc2UKKyAgICBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgTlVMTCwgJnJhd0Nsb2NrUHRyKTsKKyNlbmRpZgorICAgIFJldGFpblB0cjxDTUNs
b2NrUmVmPiBjbG9jayA9IGFkb3B0Q0YocmF3Q2xvY2tQdHIpOworICAgIGluaXRpYWxpemVXaXRo
VGltaW5nU291cmNlKGNsb2NrLmdldCgpKTsKK30KKworQ2xvY2tDTTo6Q2xvY2tDTShDTUNsb2Nr
UmVmIGNsb2NrKQorICAgIDogbV90aW1lYmFzZSgwKQorICAgICwgbV9ydW5uaW5nKGZhbHNlKQor
eworICAgIGluaXRpYWxpemVXaXRoVGltaW5nU291cmNlKGNsb2NrKTsKK30KKwordm9pZCBDbG9j
a0NNOjppbml0aWFsaXplV2l0aFRpbWluZ1NvdXJjZShDTUNsb2NrUmVmIGNsb2NrKQoreworICAg
IENNVGltZWJhc2VSZWYgcmF3VGltZWJhc2VQdHIgPSAwOworICAgIENNVGltZWJhc2VDcmVhdGVX
aXRoTWFzdGVyQ2xvY2soa0NGQWxsb2NhdG9yRGVmYXVsdCwgY2xvY2ssICZyYXdUaW1lYmFzZVB0
cik7CisgICAgbV90aW1lYmFzZSA9IGFkb3B0Q0YocmF3VGltZWJhc2VQdHIpOworfQorCit2b2lk
IENsb2NrQ006OnNldEN1cnJlbnRUaW1lKGRvdWJsZSB0aW1lKQoreworICAgIENNVGltZSBjbVRp
bWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgRGVmYXVsdFRpbWVTY2FsZSk7CisgICAg
Q01UaW1lYmFzZVNldFRpbWUobV90aW1lYmFzZS5nZXQoKSwgY21UaW1lKTsKK30KKworZG91Ymxl
IENsb2NrQ006OmN1cnJlbnRUaW1lKCkgY29uc3QKK3sKKyAgICBDTVRpbWUgY21UaW1lID0gQ01U
aW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSk7CisgICAgcmV0dXJuIENNVGltZUdldFNl
Y29uZHMoY21UaW1lKTsKK30KKwordm9pZCBDbG9ja0NNOjpzZXRDdXJyZW50TWVkaWFUaW1lKGNv
bnN0IE1lZGlhVGltZSYgdGltZSkKK3sKKyAgICBDTVRpbWViYXNlU2V0VGltZShtX3RpbWViYXNl
LmdldCgpLCBQQUw6OnRvQ01UaW1lKHRpbWUpKTsKK30KKworTWVkaWFUaW1lIENsb2NrQ006OmN1
cnJlbnRNZWRpYVRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKENN
VGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKK30KKwordm9pZCBDbG9ja0NNOjpz
ZXRQbGF5UmF0ZShkb3VibGUgcmF0ZSkKK3sKKyAgICBpZiAobV9yYXRlID09IHJhdGUpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcmF0ZSA9IHJhdGU7CisgICAgaWYgKG1fcnVubmluZykKKyAg
ICAgICAgQ01UaW1lYmFzZVNldFJhdGUobV90aW1lYmFzZS5nZXQoKSwgcmF0ZSk7Cit9CisKK3Zv
aWQgQ2xvY2tDTTo6c3RhcnQoKQoreworICAgIGlmIChtX3J1bm5pbmcpCisgICAgICAgIHJldHVy
bjsKKyAgICBtX3J1bm5pbmcgPSB0cnVlOworICAgIENNVGltZWJhc2VTZXRSYXRlKG1fdGltZWJh
c2UuZ2V0KCksIG1fcmF0ZSk7Cit9CisKK3ZvaWQgQ2xvY2tDTTo6c3RvcCgpCit7CisgICAgaWYg
KCFtX3J1bm5pbmcpCisgICAgICAgIHJldHVybjsKKyAgICBtX3J1bm5pbmcgPSBmYWxzZTsKKyAg
ICBDTVRpbWViYXNlU2V0UmF0ZShtX3RpbWViYXNlLmdldCgpLCAwKTsKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMGYxNDQ1ZTYzNzBmMDZlNjM1YzM3YTk3Y2E2NTBhOGVkNDg2ZTYyMy4uZTc2ODMwMDZjMGI5
NWE4ZmI0ZTdlYWY5NzZmMWY3MzJjYjQ1NGZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjM3NSw3ICs2Mzc1LDYgQEAKIAkJ
Q0RBOThFMDQxNjAzOUUxQTAwRkVBM0IxIC8qIEpTV2ViS2l0TWVkaWFLZXlzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTk4RENFMTYwMTU5Nzkw
MEZFQTNCMSAvKiBKU1dlYktpdE1lZGlhS2V5cy5jcHAgKi87IH07CiAJCUNEQTk4RTA2MTYwMzlF
MUYwMEZFQTNCMSAvKiBKU1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE5OEREMDE2MDE1OTc5MDBGRUEzQjEg
LyogSlNXZWJLaXRNZWRpYUtleVNlc3Npb24uY3BwICovOyB9OwogCQlDREE5OEUwQjE2MDNDRDYw
MDBGRUEzQjEgLyogTGVnYWN5Q0RNLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEQTk4RTA5MTYwM0NENTkwMEZFQTNCMSAvKiBMZWdhY3lDRE0uY3Bw
ICovOyB9OwotCQlDREFBOEQwQTE0RDcxQjJFMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQThEMDgx
NEQzODU2MDAwNjFFQTYwIC8qIFBsYXRmb3JtQ2xvY2tDTS5tbSAqLzsgfTsKIAkJQ0RBQjZEMjgx
N0M3REU2QzAwQzYwQjM0IC8qIE1lZGlhQ29udHJvbHNIb3N0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUI2RDI2MTdDN0RFNkMwMEM2MEIzNCAv
KiBNZWRpYUNvbnRyb2xzSG9zdC5jcHAgKi87IH07CiAJCUNEQUI2RDI5MTdDN0RFNkMwMEM2MEIz
NCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RBQjZEMjcxN0M3REU2QzAwQzYwQjM0IC8qIE1lZGlhQ29udHJvbHNI
b3N0LmggKi87IH07CiAJCUNEQUI2RDJEMTdDODE0RUUwMEM2MEIzNCAvKiBKU01lZGlhQ29udHJv
bHNIb3N0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEQUI2RDJCMTdDODE0RUUwMEM2MEIzNCAvKiBKU01lZGlhQ29udHJvbHNIb3N0LmNwcCAqLzsg
fTsKQEAgLTY0MzYsOSArNjQzNSw2IEBACiAJCUNERThCNUVEMUE2OTc3NzMwMEI0QjY2QSAvKiBM
ZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERThCNUVCMUE2OTc3NzMwMEI0QjY2QSAvKiBMZWdhY3lDRE1Qcml2
YXRlQ2xlYXJLZXkuaCAqLzsgfTsKIAkJQ0RFOEI1RjAxQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2Fj
eUNETVNlc3Npb25DbGVhcktleS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREU4QjVFRTFBNjk3NzhCMDBCNEI2NkEgLyogTGVnYWN5Q0RNU2Vzc2lv
bkNsZWFyS2V5LmNwcCAqLzsgfTsKIAkJQ0RFOEI1RjExQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2Fj
eUNETVNlc3Npb25DbGVhcktleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFOEI1RUYxQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2FjeUNETVNlc3Npb25D
bGVhcktleS5oICovOyB9OwotCQlDREVBNzYzMDE0NjA4QTUzMDA4QjMxRjEgLyogUGxhdGZvcm1D
bG9ja0NBLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERUE3NjJFMTQ2MDg0REUwMDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0EuY3BwICovOyB9Owot
CQlDREVBNzYzNDE0NjBCNTZGMDA4QjMxRjEgLyogQ2xvY2tHZW5lcmljLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUE3NjMyMTQ2MEFFMjkwMDhC
MzFGMSAvKiBDbG9ja0dlbmVyaWMuY3BwICovOyB9OwotCQlDREVBNzYzNTE0NjBCNzFBMDA4QjMx
RjEgLyogQ2xvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RFQTc2MzMxNDYwQjQ2MjAwOEIzMUYxIC8qIENsb2NrLmNwcCAqLzsgfTsKIAkJQ0RF
QTdDODQxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUE3QzgyMTI3NjIzMDQwMEI4NDZE
RCAvKiBSZW5kZXJGdWxsU2NyZWVuLmggKi87IH07CiAJCUNERUE3Qzg1MTI3NjIzMDQwMEI4NDZE
RCAvKiBSZW5kZXJGdWxsU2NyZWVuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERUE3QzgzMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2Ny
ZWVuLmNwcCAqLzsgfTsKIAkJQ0RFQ0E4OUExRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFj
a1V0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENERUNBODk4MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0g
Ki87IH07CkBAIC0xNTEyOSw4ICsxNTEyNSw2IEBACiAJCUNEQTk4RTA5MTYwM0NENTkwMEZFQTNC
MSAvKiBMZWdhY3lDRE0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5Q0RNLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBOThFMEExNjAzQ0Q1OTAwRkVBM0IxIC8qIExl
Z2FjeUNETS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lDRE0uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RBOThFMEMxNjAzQ0YzQzAwRkVBM0IxIC8qIExlZ2FjeUNETVByaXZhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5Q0RNUHJpdmF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREFBOEQwNzE0RDM4NTYwMDA2MUVBNjAgLyog
UGxhdGZvcm1DbG9ja0NNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRm
b3JtQ2xvY2tDTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREFBOEQwODE0RDM4
NTYwMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1DbG9ja0NNLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDREFBRjQ1RDE4NjkwOTRFMDAzQzE3MTcgLyogbWVkaWFDb250cm9sc2lPUy5j
c3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9IG1lZGlhQ29udHJvbHNpT1MuY3NzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFCNkQyNTE3QzdERTU3MDBDNjBCMzQgLyogTWVk
aWFDb250cm9sc0hvc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJvbHNIb3N0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBQjZEMjYxN0M3REU2QzAwQzYwQjM0IC8qIE1lZGlhQ29u
dHJvbHNIb3N0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlh
Q29udHJvbHNIb3N0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MjA2LDEy
ICsxNTIwMCw2IEBACiAJCUNERThCNUVCMUE2OTc3NzMwMEI0QjY2QSAvKiBMZWdhY3lDRE1Qcml2
YXRlQ2xlYXJLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5Q0RN
UHJpdmF0ZUNsZWFyS2V5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERThCNUVF
MUE2OTc3OEIwMEI0QjY2QSAvKiBMZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFOEI1RUYxQTY5Nzc4QjAwQjRCNjZB
IC8qIExlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQ0RFQTc2MkMxNDYwODIyNDAwOEIzMUYxIC8qIENsb2NrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUNERUE3NjJFMTQ2MDg0REUwMDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0EuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DbG9ja0NBLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RFQTc2MkYxNDYwODRFRTAwOEIzMUYxIC8qIFBs
YXRmb3JtQ2xvY2tDQS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9y
bUNsb2NrQ0EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RFQTc2MzExNDYwQUUx
QjAwOEIzMUYxIC8qIENsb2NrR2VuZXJpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDbG9ja0dlbmVyaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RFQTc2
MzIxNDYwQUUyOTAwOEIzMUYxIC8qIENsb2NrR2VuZXJpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDbG9ja0dlbmVyaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlDREVBNzYzMzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDREVBN0M4MjEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVl
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUE3QzgzMTI3NjIzMDQwMEI4NDZERCAv
KiBSZW5kZXJGdWxsU2NyZWVuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbmRlckZ1bGxTY3JlZW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REVDQTg5ODFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTk1NjQsMTAgKzE5NTUyLDYgQEAKIAkJCQk0QjI3MDk4MTBBRjJF
NUUwMDA2NTEyN0YgLyogUGFzdGVib2FyZE1hYy5tbSAqLywKIAkJCQkxQUY1RTRFMTFFNTc3OUIx
MDA0QTFGMDEgLyogUGFzdGVib2FyZFdyaXRlci5oICovLAogCQkJCTFBRjVFNEUwMUU1Nzc5QjEw
MDRBMUYwMSAvKiBQYXN0ZWJvYXJkV3JpdGVyLm1tICovLAotCQkJCUNERUE3NjJFMTQ2MDg0REUw
MDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0EuY3BwICovLAotCQkJCUNERUE3NjJGMTQ2MDg0RUUw
MDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0EuaCAqLywKLQkJCQlDREFBOEQwNzE0RDM4NTYwMDA2
MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLmggKi8sCi0JCQkJQ0RBQThEMDgxNEQzODU2MDAwNjFF
QTYwIC8qIFBsYXRmb3JtQ2xvY2tDTS5tbSAqLywKIAkJCQlCQ0FBNDg2RTE0QTA1MjUzMDA4OEZB
QzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCAqLywKIAkJCQlCQ0FBNDg2RDE0QTA1MjUz
MDA4OEZBQzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gKi8sCiAJCQkJQzVGNzY1QkEx
NEUxRUNGNDAwNkM4OTlCIC8qIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSAqLywKQEAgLTI0NTcw
LDEwICsyNDU1NCw2IEBACiAJCQkJQjJDM0Q5RUMwRDAwNkMxRDAwRUY2RjI2IC8qIHRleHQgKi8s
CiAJCQkJNDlBRTJEOTQxMzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuY3BwICov
LAogCQkJCTQ5QUUyRDk1MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVlLmggKi8s
Ci0JCQkJQ0RFQTc2MzMxNDYwQjQ2MjAwOEIzMUYxIC8qIENsb2NrLmNwcCAqLywKLQkJCQlDREVB
NzYyQzE0NjA4MjI0MDA4QjMxRjEgLyogQ2xvY2suaCAqLywKLQkJCQlDREVBNzYzMjE0NjBBRTI5
MDA4QjMxRjEgLyogQ2xvY2tHZW5lcmljLmNwcCAqLywKLQkJCQlDREVBNzYzMTE0NjBBRTFCMDA4
QjMxRjEgLyogQ2xvY2tHZW5lcmljLmggKi8sCiAJCQkJQzMzMEEyMjExM0VDMTk2QjAwMDBCNDVC
IC8qIENvbG9yQ2hvb3Nlci5oICovLAogCQkJCUMzN0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBD
b2xvckNob29zZXJDbGllbnQuaCAqLywKIAkJCQlCQ0M4Q0ZDQTA5ODZDRDI0MDAxNDBCRjIgLyog
Q29sb3JEYXRhLmdwZXJmICovLApAQCAtMzE0NDIsOCArMzE0MjIsNiBAQAogCQkJCTgzNDhCRkFC
MUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODUwMzFCM0YwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTU4MDM3MTYxMUE2NkYwMEEwMEJBRjUxOSAvKiBDbGlwUmVjdC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlDREVBNzYzNTE0NjBCNzFBMDA4QjMxRjEgLyogQ2xvY2suY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQ0RFQTc2MzQxNDYwQjU2RjAwOEIzMUYxIC8qIENsb2NrR2VuZXJp
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkQ4QTk1QTE4QkVGQzc2MDA5ODdFOUEgLyogQ29s
bGVjdGlvbkluZGV4Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NjYwQjA1Mzgx
NDAwMkNFNjRGIC8qIENvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0YzMzI0MEYyQjk3
MTUwMDRCNjc5NSAvKiBDb2xvckNHLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzM1NDgsOCArMzM1
MjYsNiBAQAogCQkJCTBGMTMxNjQwMTZFRDBDREUwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVy
c0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ3MEJBMTUxODA3NEY4NjAwMDE5MDhBIC8q
IFBsYXRmb3JtQ0FMYXllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTU4NzgyMjEyQTU3RERG
MDA3MjM4QUMgLyogUGxhdGZvcm1DQUxheWVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKLQkJCQlD
REVBNzYzMDE0NjA4QTUzMDA4QjMxRjEgLyogUGxhdGZvcm1DbG9ja0NBLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUNEQUE4RDBBMTRENzFCMkUwMDYxRUE2MCAvKiBQbGF0Zm9ybUNsb2NrQ00ubW0g
aW4gU291cmNlcyAqLywKIAkJCQkyNjYwMUVDMDE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1F
dmVudEZhY3RvcnlJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0FBNDg2RjE0QTA1MjUzMDA4
OEZBQzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlG
NTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKaW5kZXggNDk0MGE3OTY0
YjY0Yjc0N2MyYzE4Nzc4YjM0NGQzYTQ1NzczZjFiYy4uZTRmYTYwZDA3YjMzZTliY2EwOTY5Mzcz
NjcxNDRmNjBjNzcyYjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNw
cApAQCAtMjgsMTAgKzI4LDEwIEBACiAjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIk1lZGlh
Q29udHJvbGxlci5oIgogCi0jaW5jbHVkZSAiQ2xvY2suaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMu
aCIKKyNpbmNsdWRlIDxwYWwvc3lzdGVtL0Nsb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgpAQCAtNTUsNyArNTUsNyBAQCBNZWRpYUNvbnRyb2xsZXI6Ok1lZGlhQ29u
dHJvbGxlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgICwgbV9hc3luY0V2
ZW50VGltZXIoKnRoaXMsICZNZWRpYUNvbnRyb2xsZXI6OmFzeW5jRXZlbnRUaW1lckZpcmVkKQog
ICAgICwgbV9jbGVhclBvc2l0aW9uVGltZXIoKnRoaXMsICZNZWRpYUNvbnRyb2xsZXI6OmNsZWFy
UG9zaXRpb25UaW1lckZpcmVkKQogICAgICwgbV9jbG9zZWRDYXB0aW9uc1Zpc2libGUoZmFsc2Up
Ci0gICAgLCBtX2Nsb2NrKENsb2NrOjpjcmVhdGUoKSkKKyAgICAsIG1fY2xvY2soUEFMOjpDbG9j
azo6Y3JlYXRlKCkpCiAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKICAg
ICAsIG1fdGltZXVwZGF0ZVRpbWVyKCp0aGlzLCAmTWVkaWFDb250cm9sbGVyOjpzY2hlZHVsZVRp
bWV1cGRhdGVFdmVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5oCmluZGV4
IGE5MTkyNDgxN2M1MTRlYmM4MDBmY2M4MGNhNWQwM2VjN2E4YTYwYmQuLjczOGNiNTQxNGNjYzAx
NjY4N2EwY2NjYmUyNTRhYmNhNGQ3YTE3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRy
b2xsZXIuaApAQCAtMzMsOSArMzMsMTIgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBDbG9jazsKK30KKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDbG9jazsKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7
CiAKIGNsYXNzIE1lZGlhQ29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlh
Q29udHJvbGxlcj4sIHB1YmxpYyBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UsIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKQEAgLTE0Miw3ICsxNDUsNyBAQCBwcml2YXRlOgogICAg
IG11dGFibGUgVGltZXIgbV9jbGVhclBvc2l0aW9uVGltZXI7CiAgICAgU3RyaW5nIG1fbWVkaWFH
cm91cDsKICAgICBib29sIG1fY2xvc2VkQ2FwdGlvbnNWaXNpYmxlOwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxDbG9jaz4gbV9jbG9jazsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpDbG9jaz4gbV9j
bG9jazsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CiAgICAgVGltZXIgbV90aW1ldXBkYXRlVGltZXI7CiAgICAgTW9ub3RvbmljVGltZSBtX3By
ZXZpb3VzVGltZXVwZGF0ZVRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9DbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlZDFhZGU4Y2Q4ZDNlYjliYTQ2NWVmZTRmNWVhMzliZDQy
Njc3NzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2suY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsb2NrLmgiCi0KLSNpZiBVU0UoQ09SRU1FRElB
KQotICAgICNpbmNsdWRlICJQbGF0Zm9ybUNsb2NrQ00uaCIKLSNlbGlmIFVTRShDT1JFQVVESU8p
Ci0gICAgI2luY2x1ZGUgIlBsYXRmb3JtQ2xvY2tDQS5oIgotI2Vsc2UKLSAgICAjaW5jbHVkZSAi
Q2xvY2tHZW5lcmljLmgiCi0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXN0
ZDo6dW5pcXVlX3B0cjxDbG9jaz4gQ2xvY2s6OmNyZWF0ZSgpCi17Ci0jaWYgVVNFKENPUkVNRURJ
QSkKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUNsb2NrQ00+KCk7Ci0jZWxp
ZiBVU0UoQ09SRUFVRElPKQotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtQ2xv
Y2tDQT4oKTsKLSNlbHNlCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q2xvY2tHZW5lcmlj
PigpOwotI2VuZGlmCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9j
ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2suaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzdmNDJlNDJiMDNhYTFhOTBkYTU0NzFkMDI0MzkxODdlYTAwOTRjNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DbG9jay5oCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBDbG9ja19o
Ci0jZGVmaW5lIENsb2NrX2gKLQotI2luY2x1ZGUgPG1lbW9yeT4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBDbG9jayB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxDbG9jaz4gY3JlYXRlKCk7Ci0gICAgdmlydHVhbCB+Q2xvY2soKSB7IH0KLQotICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUpID0gMDsKLSAgICB2aXJ0dWFsIGRvdWJsZSBj
dXJyZW50VGltZSgpIGNvbnN0ID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5UmF0ZShk
b3VibGUpID0gMDsKLSAgICB2aXJ0dWFsIGRvdWJsZSBwbGF5UmF0ZSgpIGNvbnN0ID0gMDsKLQot
ICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0g
MDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNSdW5uaW5nKCkgY29uc3QgPSAwOwotCi1wcm90ZWN0ZWQ6
Ci0gICAgQ2xvY2soKSB7IH0KLX07Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ2xvY2tHZW5lcmljLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzVhNGI5
NDM1MWNjOWE2Yjg5NGZjYjBkNjM0OGU4MmMzOTAxNjNlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dl
bmVyaWMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkNsb2NrR2VuZXJpYy5oIgotCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1DbG9ja0dlbmVyaWM6OkNsb2NrR2VuZXJpYygp
Ci0gICAgOiBtX3J1bm5pbmcoZmFsc2UpCi0gICAgLCBtX3JhdGUoMSkKLSAgICAsIG1fb2Zmc2V0
KDApCi17Ci0gICAgbV9zdGFydFRpbWUgPSBtX2xhc3RUaW1lID0gbm93KCk7Ci19Ci0KLXZvaWQg
Q2xvY2tHZW5lcmljOjpzZXRDdXJyZW50VGltZShkb3VibGUgdGltZSkKLXsKLSAgICBtX3N0YXJ0
VGltZSA9IG1fbGFzdFRpbWUgPSBub3coKTsKLSAgICBtX29mZnNldCA9IHRpbWU7Ci19Ci0KLWRv
dWJsZSBDbG9ja0dlbmVyaWM6OmN1cnJlbnRUaW1lKCkgY29uc3QKLXsKLSAgICBpZiAobV9ydW5u
aW5nKQotICAgICAgICBtX2xhc3RUaW1lID0gbm93KCk7Ci0gICAgcmV0dXJuICgobV9sYXN0VGlt
ZSAtIG1fc3RhcnRUaW1lKSAqIG1fcmF0ZSkgKyBtX29mZnNldDsKLX0KLQotdm9pZCBDbG9ja0dl
bmVyaWM6OnNldFBsYXlSYXRlKGRvdWJsZSByYXRlKQotewotICAgIG1fb2Zmc2V0ID0gY3VycmVu
dFRpbWUoKTsKLSAgICBtX2xhc3RUaW1lID0gbV9zdGFydFRpbWUgPSBub3coKTsKLSAgICBtX3Jh
dGUgPSByYXRlOwotfQotCi12b2lkIENsb2NrR2VuZXJpYzo6c3RhcnQoKQotewotICAgIGlmICht
X3J1bm5pbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fbGFzdFRpbWUgPSBtX3N0YXJ0VGlt
ZSA9IG5vdygpOwotICAgIG1fcnVubmluZyA9IHRydWU7Ci19Ci0KLXZvaWQgQ2xvY2tHZW5lcmlj
OjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fcnVubmluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
bV9vZmZzZXQgPSBjdXJyZW50VGltZSgpOwotICAgIG1fbGFzdFRpbWUgPSBtX3N0YXJ0VGltZSA9
IG5vdygpOwotICAgIG1fcnVubmluZyA9IGZhbHNlOwotfQotCi1kb3VibGUgQ2xvY2tHZW5lcmlj
Ojpub3coKSBjb25zdAotewotICAgIHJldHVybiBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrR2VuZXJpYy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2tHZW5lcmljLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZjZTM2NzQ5M2IyNzVhNjI1M2IxMzg4ZjUwYTNlZmQ2ZDJhZTVjZTUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ2xvY2tHZW5lcmljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgQ2xvY2tHZW5lcmljX2gKLSNkZWZpbmUgQ2xvY2tHZW5lcmljX2gKLQotI2luY2x1ZGUgIkNs
b2NrLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2xvY2tHZW5lcmljIGZpbmFs
IDogcHVibGljIENsb2NrIHsKLXB1YmxpYzoKLSAgICBDbG9ja0dlbmVyaWMoKTsKLQotcHJpdmF0
ZToKLSAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSkgb3ZlcnJpZGU7Ci0gICAgZG91Ymxl
IGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHNldFBsYXlSYXRlKGRv
dWJsZSkgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIHBsYXlSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9yYXRlOyB9Ci0KLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBz
dG9wKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3J1bm5pbmc7IH0KLQotICAgIGRvdWJsZSBub3coKSBjb25zdDsKLQotICAgIGJvb2wg
bV9ydW5uaW5nOwotICAgIGRvdWJsZSBtX3JhdGU7Ci0gICAgZG91YmxlIG1fb2Zmc2V0OwotICAg
IGRvdWJsZSBtX3N0YXJ0VGltZTsKLSAgICBtdXRhYmxlIGRvdWJsZSBtX2xhc3RUaW1lOwotfTsK
LQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBjM2IzYzdmYzk0
OWZhOTIxYTJlZWM0NThkM2ZkNGE2YmE5NTI4NGYxLi43MjYzNTg0MWM2ZmE5MTFmYjc4OTk5ZWVk
Yzc0MmMzOGQ1ZGQ1MzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0zOCw3ICsz
OCw2IEBACiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJN
ZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuaCIKLSNpbXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uaCIKICNpbXBvcnQgIlRleHR1cmVDYWNoZUNWLmgiCiAjaW1wb3J0ICJWaWRl
b1RleHR1cmVDb3BpZXJDVi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCBjMTUxYzcy
NTFmMjZlOTAxZWJiZDU1Mjk1Yjg3ZDAxZTU1ZjVlNWJiLi4yMTRhMmRkNzU3MzlkY2JjMjVkYjE4
ZTcyZjJmZDAyZDUyODUxMDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtNDQsMTEg
KzQ0LDE0IEBAIE9CSkNfQ0xBU1MgTlNOdW1iZXI7CiBPQkpDX0NMQVNTIFdlYkFWU2FtcGxlQnVm
ZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXI7CiB0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1
ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgQ2xvY2s7
Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbUNvY29hOwogY2xhc3MgQVZWaWRlb0NhcHR1cmVTb3VyY2U7Ci1jbGFzcyBDbG9jazsK
IGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudDsKIGNsYXNzIFBpeGVsQnVmZmVyQ29uZm9y
bWVyQ1Y7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOwpAQCAtMjI5LDcgKzIz
Miw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPFdlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hh
bmdlTGlzdGVuZXI+IG1fc3RhdHVzQ2hhbmdlTGlzdGVuZXI7CiAgICAgUmV0YWluUHRyPEFWU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKICAgICBS
ZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV9iYWNrZ3JvdW5kTGF5ZXI7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPENsb2NrPiBtX2Nsb2NrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQQUw6OkNsb2NrPiBt
X2Nsb2NrOwogCiAgICAgTWVkaWFUaW1lIG1fcGF1c2VkVGltZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tCmluZGV4IDFjZDQ3MDkxNzBlYjE2ODA1ZmU3ZDQzNzNlYmVlMzNmMmViODEwY2Uu
LjI2NGI5NTJmOTg2ZmFhN2U4Njg1NTE3OGUyYzY5MjY2NDE0NTc2MDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0KQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW1wb3J0ICJBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtQ29jb2EuaCIKLSNpbXBvcnQgIkNsb2NrLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRl
eHRDRy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRl
LmgiCkBAIC00MSw2ICs0MCw3IEBACiAjaW1wb3J0IDxvYmpjX3J1bnRpbWUuaD4KICNpbXBvcnQg
PHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaD4KKyNpbXBvcnQgPHBhbC9zeXN0ZW0vQ2xvY2suaD4K
ICNpbXBvcnQgPHd0Zi9GdW5jdGlvbi5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNp
bXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBj
b25zdCBkb3VibGUgcmVuZGVyZXJMYXRlbmN5ID0gMC4wMjsKIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX3N0YXR1
c0NoYW5nZUxpc3RlbmVyKGFkb3B0TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxp
c3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCi0gICAgLCBtX2Nsb2NrKENsb2Nr
OjpjcmVhdGUoKSkKKyAgICAsIG1fY2xvY2soUEFMOjpDbG9jazo6Y3JlYXRlKCkpCiAjaWYgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpKQogICAgICwgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIoVmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyOjpjcmVhdGUoKSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGFmMTI3YWUwNjI0YmM4M2IyNWI2Y2Q4YTY3MDk2NjQ5NzkzMjc5NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLQotI2lmIFVTRShDT1JFQVVESU8pCi0KLSNpbmNsdWRlICJQbGF0Zm9y
bUNsb2NrQ0EuaCIKLQotI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9Db3JlQXVkaW9DbG9jay5oPgot
I2luY2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1QbGF0Zm9ybUNsb2NrQ0E6OlBsYXRmb3JtQ2xvY2tDQSgpCi0gICAgOiBtX2Ns
b2NrKDApCi0gICAgLCBtX3J1bm5pbmcoZmFsc2UpCi17Ci0gICAgQ0FDbG9ja05ldygwLCAmbV9j
bG9jayk7Ci0gICAgVUludDMyIHRpbWViYXNlID0ga0NBQ2xvY2tUaW1lYmFzZV9BdWRpb0Rldmlj
ZTsKLSAgICBVSW50MzIgdGltZWJhc2VTaXplID0gc2l6ZW9mKHRpbWViYXNlKTsKLSAgICBDQUNs
b2NrU2V0UHJvcGVydHkobV9jbG9jaywga0NBQ2xvY2tQcm9wZXJ0eV9JbnRlcm5hbFRpbWViYXNl
LCB0aW1lYmFzZVNpemUsICZ0aW1lYmFzZSk7Ci0KLSAgICBBdWRpb09iamVjdElEIGRlZmF1bHRB
dWRpb091dHB1dCA9IDA7Ci0gICAgVUludDMyIGRlZmF1bHRBdWRpb091dHB1dFNpemUgPSBzaXpl
b2YoZGVmYXVsdEF1ZGlvT3V0cHV0KTsKLQotICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNz
IGFkZHJlc3M7Ci0gICAgYWRkcmVzcy5tU2VsZWN0b3IgPSBrQXVkaW9IYXJkd2FyZVByb3BlcnR5
RGVmYXVsdE91dHB1dERldmljZTsKLSAgICBhZGRyZXNzLm1TY29wZSAgICA9IGtBdWRpb09iamVj
dFByb3BlcnR5U2NvcGVHbG9iYWw7Ci0gICAgYWRkcmVzcy5tRWxlbWVudCAgPSBrQXVkaW9PYmpl
Y3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXI7Ci0KLSAgICBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0
YShrQXVkaW9PYmplY3RTeXN0ZW1PYmplY3QsICZhZGRyZXNzLCAwLCAwLCAmZGVmYXVsdEF1ZGlv
T3V0cHV0U2l6ZSwgJmRlZmF1bHRBdWRpb091dHB1dCk7Ci0gICAgQ0FDbG9ja1NldFByb3BlcnR5
KG1fY2xvY2ssIGtDQUNsb2NrUHJvcGVydHlfVGltZWJhc2VTb3VyY2UsIGRlZmF1bHRBdWRpb091
dHB1dFNpemUsICZkZWZhdWx0QXVkaW9PdXRwdXQpOwotfQotCi1QbGF0Zm9ybUNsb2NrQ0E6On5Q
bGF0Zm9ybUNsb2NrQ0EoKQotewotICAgIENBQ2xvY2tEaXNwb3NlKG1fY2xvY2spOwotfQotCi12
b2lkIFBsYXRmb3JtQ2xvY2tDQTo6c2V0Q3VycmVudFRpbWUoZG91YmxlIHRpbWUpCi17Ci0gICAg
aWYgKG1fcnVubmluZykKLSAgICAgICAgQ0FDbG9ja1N0b3AobV9jbG9jayk7Ci0gICAgQ0FDbG9j
a1RpbWUgY2FUaW1lOwotICAgIGNhVGltZS5mb3JtYXQgPSBrQ0FDbG9ja1RpbWVGb3JtYXRfU2Vj
b25kczsKLSAgICBjYVRpbWUudGltZS5zZWNvbmRzID0gdGltZTsKLSAgICBDQUNsb2NrU2V0Q3Vy
cmVudFRpbWUobV9jbG9jaywgJmNhVGltZSk7Ci0gICAgaWYgKG1fcnVubmluZykKLSAgICAgICAg
Q0FDbG9ja1N0YXJ0KG1fY2xvY2spOwotfQotCi1kb3VibGUgUGxhdGZvcm1DbG9ja0NBOjpjdXJy
ZW50VGltZSgpIGNvbnN0Ci17Ci0gICAgQ0FDbG9ja1RpbWUgY2FUaW1lOwotCi0gICAgLy8gQ0FD
bG9jayBkb2VzIG5vdCByZXR1cm4gdGhlIGNvcnJlY3QgY3VycmVudCB0aW1lIHdoZW4gc3RvcHBl
ZC4gSW5zdGVhZCwgcXVlcnkgZm9yCi0gICAgLy8gd2hhdCBpcyB0aGUgc3RhcnQgdGltZSwgaS5l
LiB3aGF0IHRoZSBjdXJyZW50IHRpbWUgd2lsbCBiZSB3aGVuIHN0YXJ0ZWQuCi0gICAgaWYgKG1f
cnVubmluZykgewotICAgICAgICBpZiAoQ0FDbG9ja0dldEN1cnJlbnRUaW1lKG1fY2xvY2ssIGtD
QUNsb2NrVGltZUZvcm1hdF9TZWNvbmRzLCAmY2FUaW1lKSA9PSBub0VycikKLSAgICAgICAgICAg
IHJldHVybiBjYVRpbWUudGltZS5zZWNvbmRzOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChD
QUNsb2NrR2V0U3RhcnRUaW1lKG1fY2xvY2ssIGtDQUNsb2NrVGltZUZvcm1hdF9TZWNvbmRzLCAm
Y2FUaW1lKSA9PSBub0VycikKLSAgICAgICAgICAgIHJldHVybiBjYVRpbWUudGltZS5zZWNvbmRz
OwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBQbGF0Zm9ybUNsb2NrQ0E6OnNldFBs
YXlSYXRlKGRvdWJsZSByYXRlKQotewotICAgIENBQ2xvY2tTZXRQbGF5UmF0ZShtX2Nsb2NrLCBy
YXRlKTsKLX0KLQotZG91YmxlIFBsYXRmb3JtQ2xvY2tDQTo6UGxhdGZvcm1DbG9ja0NBOjpwbGF5
UmF0ZSgpIGNvbnN0Ci17Ci0gICAgZG91YmxlIHJhdGUgPSAwOwotICAgIGlmIChDQUNsb2NrR2V0
UGxheVJhdGUobV9jbG9jaywgJnJhdGUpID09IG5vRXJyKQotICAgICAgICByZXR1cm4gcmF0ZTsK
LSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBQbGF0Zm9ybUNsb2NrQ0E6OnN0YXJ0KCkKLXsKLSAg
ICBpZiAobV9ydW5uaW5nKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ydW5uaW5nID0gdHJ1ZTsK
LSAgICBDQUNsb2NrU3RhcnQobV9jbG9jayk7Ci19Ci0KLXZvaWQgUGxhdGZvcm1DbG9ja0NBOjpz
dG9wKCkKLXsKLSAgICBpZiAoIW1fcnVubmluZykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fcnVu
bmluZyA9IGZhbHNlOwotICAgIENBQ2xvY2tTdG9wKG1fY2xvY2spOwotfQotCi0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDQS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDQS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDRiOTBjOTZiYzc2OGJhZjZlMzNjZmUzOWJhNjAxNzNj
Zjg2Yjg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ0EuaAorKysgL2Rldi9udWxs
CkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBQbGF0Zm9ybUNsb2NrQ0FfaAotI2RlZmluZSBQbGF0Zm9ybUNsb2Nr
Q0FfaAotCi0jaWYgVVNFKENPUkVBVURJTykKLQotI2luY2x1ZGUgIkNsb2NrLmgiCi0KLXR5cGVk
ZWYgc3RydWN0IE9wYXF1ZUNBQ2xvY2sgKkNBQ2xvY2tSZWY7Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgUGxhdGZvcm1DbG9ja0NBIGZpbmFsIDogcHVibGljIENsb2NrIHsKLXB1Ymxp
YzoKLSAgICBQbGF0Zm9ybUNsb2NrQ0EoKTsKLSAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNsb2NrQ0Eo
KTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSkgb3ZlcnJpZGU7
Ci0gICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHNl
dFBsYXlSYXRlKGRvdWJsZSkgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIHBsYXlSYXRlKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X3J1bm5pbmc7IH0KLQotICAgIENBQ2xvY2tSZWYgbV9jbG9jazsKLSAgICBib29sIG1fcnVubmlu
ZzsKLX07Ci0KLX0KLQotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtQ2xvY2tDTS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
NTY4N2Q4OGJmMzZiMzRlMDI4ZjkyODUwMDVmNjQzNzc4OWJhMjNiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybUNsb2NrQ00uaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQbGF0Zm9y
bUNsb2NrQ01faAotI2RlZmluZSBQbGF0Zm9ybUNsb2NrQ01faAotCi0jaWYgVVNFKENPUkVNRURJ
QSkKLQotI2luY2x1ZGUgIkNsb2NrLmgiCi0jaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ01UaW1lYmFz
ZSogQ01UaW1lYmFzZVJlZjsKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNQ2xvY2sqIENNQ2xvY2tS
ZWY7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUGxhdGZvcm1DbG9ja0NNIGZpbmFs
IDogcHVibGljIENsb2NrIHsKLXB1YmxpYzoKLSAgICBQbGF0Zm9ybUNsb2NrQ00oKTsKLSAgICBQ
bGF0Zm9ybUNsb2NrQ00oQ01DbG9ja1JlZik7Ci0KLSAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGRv
dWJsZSkgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0KLSAgICB2b2lkIHNldEN1cnJlbnRNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJik7Ci0gICAg
TWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdDsKLQotICAgIHZvaWQgc2V0UGxheVJh
dGUoZG91YmxlKSBvdmVycmlkZTsKLSAgICBkb3VibGUgcGxheVJhdGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3JhdGU7IH0KLQotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKLSAgICB2
b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICBib29sIGlzUnVubmluZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fcnVubmluZzsgfQotCi0gICAgQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGltZWJhc2UuZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIGlu
aXRpYWxpemVXaXRoVGltaW5nU291cmNlKENNQ2xvY2tSZWYpOwotCi0gICAgUmV0YWluUHRyPENN
VGltZWJhc2VSZWY+IG1fdGltZWJhc2U7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBib29sIG1f
cnVubmluZzsKLX07Ci0KLX0KLQotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDTS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ00ubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY5NDg1ZGE4ZDQxYmFjYjVkNzkwODlkZWJkZDNjMDFmMWEwNzJmMTAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDTS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaWYgVVNFKENPUkVNRURJQSkKLQotI2ltcG9ydCAiUGxh
dGZvcm1DbG9ja0NNLmgiCi0KLSNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZG
b3VuZGF0aW9uLmg+Ci0KLSNpbXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCi0KLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCi0vLyBBIGRlZmF1bHQgdGltZSBzY2FsZSBvZiAxMDAwIGFsbG93
cyBtaWxsaS1zZWNvbmQgQ01UaW1lIHByZWNpc2lvbiB3aXRob3V0IHNjYWxpbmcgdGhlIHRpbWVi
YXNlLgotc3RhdGljIGNvbnN0IGludDMyX3QgRGVmYXVsdFRpbWVTY2FsZSA9IDEwMDA7Ci0KLVBs
YXRmb3JtQ2xvY2tDTTo6UGxhdGZvcm1DbG9ja0NNKCkKLSAgICA6IG1fdGltZWJhc2UoMCkKLSAg
ICAsIG1fcmF0ZSgxKQotICAgICwgbV9ydW5uaW5nKGZhbHNlKQotewotICAgIENNQ2xvY2tSZWYg
cmF3Q2xvY2tQdHIgPSAwOwotI2lmIFBMQVRGT1JNKElPUykKLSAgICBDTUF1ZGlvQ2xvY2tDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJnJhd0Nsb2NrUHRyKTsKLSNlbHNlCi0gICAgQ01BdWRp
b0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsICZyYXdDbG9ja1B0
cik7Ci0jZW5kaWYKLSAgICBSZXRhaW5QdHI8Q01DbG9ja1JlZj4gY2xvY2sgPSBhZG9wdENGKHJh
d0Nsb2NrUHRyKTsKLSAgICBpbml0aWFsaXplV2l0aFRpbWluZ1NvdXJjZShjbG9jay5nZXQoKSk7
Ci19Ci0KLVBsYXRmb3JtQ2xvY2tDTTo6UGxhdGZvcm1DbG9ja0NNKENNQ2xvY2tSZWYgY2xvY2sp
Ci0gICAgOiBtX3RpbWViYXNlKDApCi0gICAgLCBtX3J1bm5pbmcoZmFsc2UpCi17Ci0gICAgaW5p
dGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2UoY2xvY2spOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tD
TTo6aW5pdGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2UoQ01DbG9ja1JlZiBjbG9jaykKLXsKLSAgICBD
TVRpbWViYXNlUmVmIHJhd1RpbWViYXNlUHRyID0gMDsKLSAgICBDTVRpbWViYXNlQ3JlYXRlV2l0
aE1hc3RlckNsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNsb2NrLCAmcmF3VGltZWJhc2VQdHIp
OwotICAgIG1fdGltZWJhc2UgPSBhZG9wdENGKHJhd1RpbWViYXNlUHRyKTsKLX0KLQotdm9pZCBQ
bGF0Zm9ybUNsb2NrQ006OnNldEN1cnJlbnRUaW1lKGRvdWJsZSB0aW1lKQotewotICAgIENNVGlt
ZSBjbVRpbWUgPSBDTVRpbWVNYWtlV2l0aFNlY29uZHModGltZSwgRGVmYXVsdFRpbWVTY2FsZSk7
Ci0gICAgQ01UaW1lYmFzZVNldFRpbWUobV90aW1lYmFzZS5nZXQoKSwgY21UaW1lKTsKLX0KLQot
ZG91YmxlIFBsYXRmb3JtQ2xvY2tDTTo6Y3VycmVudFRpbWUoKSBjb25zdAotewotICAgIENNVGlt
ZSBjbVRpbWUgPSBDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKTsKLSAgICByZXR1
cm4gQ01UaW1lR2V0U2Vjb25kcyhjbVRpbWUpOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tDTTo6
c2V0Q3VycmVudE1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCi17Ci0gICAgQ01UaW1l
YmFzZVNldFRpbWUobV90aW1lYmFzZS5nZXQoKSwgUEFMOjp0b0NNVGltZSh0aW1lKSk7Ci19Ci0K
LU1lZGlhVGltZSBQbGF0Zm9ybUNsb2NrQ006OmN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdAotewot
ICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2Uu
Z2V0KCkpKTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNsb2NrQ006OnNldFBsYXlSYXRlKGRvdWJsZSBy
YXRlKQotewotICAgIGlmIChtX3JhdGUgPT0gcmF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
bV9yYXRlID0gcmF0ZTsKLSAgICBpZiAobV9ydW5uaW5nKQotICAgICAgICBDTVRpbWViYXNlU2V0
UmF0ZShtX3RpbWViYXNlLmdldCgpLCByYXRlKTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNsb2NrQ006
OnN0YXJ0KCkKLXsKLSAgICBpZiAobV9ydW5uaW5nKQotICAgICAgICByZXR1cm47Ci0gICAgbV9y
dW5uaW5nID0gdHJ1ZTsKLSAgICBDTVRpbWViYXNlU2V0UmF0ZShtX3RpbWViYXNlLmdldCgpLCBt
X3JhdGUpOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tDTTo6c3RvcCgpCi17Ci0gICAgaWYgKCFt
X3J1bm5pbmcpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3J1bm5pbmcgPSBmYWxzZTsKLSAgICBD
TVRpbWViYXNlU2V0UmF0ZShtX3RpbWViYXNlLmdldCgpLCAwKTsKLX0KLQotI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321802</attachid>
            <date>2017-09-26 00:12:47 -0700</date>
            <delta_ts>2017-09-26 00:15:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174342-20170926161334.patch</filename>
            <type>text/plain</type>
            <size>64501</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkyOWE4YTFiOWZkMDVl
ODlkNDdhZDU2YWVlMjYyYjY5ZjUzNjEwMy4uYzU5MTdhOGQzZGUzZWViOWU3MThlZTE1NzllNzE5
ZTBjMDNhOWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA5LTI1ICBZb3No
aWFraSBKaXRzdWthd2EgIDxZb3NoaWFraS5KaXRzdWthd2FAc29ueS5jb20+CisKKyAgICAgICAg
W1BBTF0gTW92ZSBDbG9jayBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTWVkaWFDb250cm9sbGVyOjpNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAqIGh0bWwv
TWVkaWFDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vQ2xvY2suY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tD
QS5jcHA6IFJlbW92ZWQuIFBsYXRmb3JtQ2xvY2tDQSBpcyBubyBsb25nZXIgdXNlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmg6IFJlbW92ZWQuCisKIDIwMTctMDkt
MjQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBD
U1MgcmVnaW9ucyByZWxhdGVkIGZpZWxkcyBmcm9tIFJlbmRlclN0eWxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBhMjVjZWU4YTkwMTlkMDU1ZDZiNGE3MjQzMzRmOTk4ODJlMThkOTYxLi44OTg2MjE2
YzczNWQ1NjY0OGJlMGVjMGFmMDFjNzg5ODA1NDc4MDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMyBAQAorMjAxNy0wOS0yNSAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9zaGlha2ku
Sml0c3VrYXdhQHNvbnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgQ2xvY2sgaW50byBQQUwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDM0Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL1BsYXRmb3JtR1RLLmNtYWtl
OgorICAgICAgICAqIHBhbC9QbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBwYWwvc3lzdGVt
L0Nsb2NrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5oLgor
ICAgICAgICAqIHBhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAuCisgICAgICAgIChQQUw6OkNsb2Nr
OjpjcmVhdGUpOgorICAgICAgICAqIHBhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuaC4KKyAgICAgICAgKiBw
YWwvc3lzdGVtL21hYy9DbG9ja0NNLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NNLmguCisgICAgICAgICogcGFsL3N5c3RlbS9tYWMvQ2xv
Y2tDTS5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUNsb2NrQ00ubW0uCisgICAgICAgIChDbG9jazo6Y3JlYXRlKToKKyAgICAgICAgKENsb2NrQ006
OkNsb2NrQ00pOgorICAgICAgICAoQ2xvY2tDTTo6aW5pdGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2Up
OgorICAgICAgICAoQ2xvY2tDTTo6c2V0Q3VycmVudFRpbWUpOgorICAgICAgICAoQ2xvY2tDTTo6
Y3VycmVudFRpbWUgY29uc3QpOgorICAgICAgICAoQ2xvY2tDTTo6c2V0Q3VycmVudE1lZGlhVGlt
ZSk6CisgICAgICAgIChDbG9ja0NNOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAg
KENsb2NrQ006OnNldFBsYXlSYXRlKToKKyAgICAgICAgKENsb2NrQ006OnN0YXJ0KToKKyAgICAg
ICAgKENsb2NrQ006OnN0b3ApOgorCisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
LmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaDoKKyAgICAgICAgQWRk
IHJlcXVyaXJlZCBmdW5jdGlvbnMuCiAyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVm
IGxhemlseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOWNmZDQzNDdiODFkOTFkZTgzMDMyZTA3
YmQxMmJkMTM3MDA1YzlkOS4uODA5YzNiMTcwZjg3NjUyN2I3ZjQzMTc2ZDAyZWUzMjczY2U4NTNl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIzMDQsOCArMjMwNCw2IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCiAK
ICAgICBwbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmNwcAotICAgIHBsYXRmb3JtL0Nsb2NrLmNw
cAotICAgIHBsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAKICAgICBwbGF0Zm9ybS9Db250ZW50VHlw
ZS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOTBkMGI5MzY1MTNjYzI3MzQ1NWVkODZmYWUwMjY2ZDgwNmQ5NjQ0
ZC4uMjU1YTNhNzNjOWVmZWU4ZWEzODM4NzBhZmZlM2Y4ZTUyNjJhZTVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzEsNiAr
NzEsOSBAQAogCQkwQzVBRjkyMDFGNDNBNEM3MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQzVBRjkxNjFGNDNB
NEM3MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmggKi87IH07CiAJCTBDNUFGOTIxMUY0M0E0Qzcw
MDJFQUMwMiAvKiBTUUxpdGUzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwQzVBRjkxNzFGNDNBNEM3MDAyRUFDMDIgLyogU1FMaXRlM1NQSS5oICov
OyB9OwogCQkwQzVBRjkyMjFGNDNBNEM3MDAyRUFDMDIgLyogVUlLaXRTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBDNUFGOTE4MUY0M0E0QzcwMDJF
QUMwMiAvKiBVSUtpdFNQSS5oICovOyB9OworCQkwQzVGRkYwQzFGNzhEOTkwMDA5RUZGMUEgLyog
Q2xvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBD
NUZGRjBCMUY3OEQ5OEYwMDlFRkYxQSAvKiBDbG9jay5oICovOyB9OworCQkwQzVGRkYwRjFGNzhE
OURBMDA5RUZGMUEgLyogQ2xvY2tDTS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBDNUZGRjBEMUY3OEQ5RDgwMDlFRkYxQSAvKiBDbG9ja0NNLm1tICov
OyB9OworCQkwQzVGRkYxMDFGNzhEOURBMDA5RUZGMUEgLyogQ2xvY2tDTS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEM1RkZGMEUxRjc4RDlEQTAwOUVG
RjFBIC8qIENsb2NrQ00uaCAqLzsgfTsKIAkJMEM3Nzg1ODkxRjQ1MTMwRjAwRjRFQkI2IC8qIEFW
Rm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEM3Nzg1NzAxRjQ1MTMwRjAwRjRFQkI2IC8qIEFWRm91bmRhdGlvblNQSS5oICovOyB9
OwogCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYgLyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEM3Nzg1NzExRjQ1MTMw
RjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLzsgfTsKIAkJMEM3Nzg1OEIxRjQ1MTMw
RjAwRjRFQkI2IC8qIExvb2t1cFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEM3Nzg1NzIxRjQ1MTMwRjAwRjRFQkI2IC8qIExvb2t1cFNQSS5oICov
OyB9OwpAQCAtMTk4LDYgKzIwMSw5IEBACiAJCTBDNUFGOTE2MUY0M0E0QzcwMDJFQUMwMiAvKiBR
dWlja0xvb2tTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29r
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBDNUFGOTE3MUY0M0E0QzcwMDJF
QUMwMiAvKiBTUUxpdGUzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNR
TGl0ZTNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEM1QUY5MTgxRjQzQTRD
NzAwMkVBQzAyIC8qIFVJS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVJS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBDNUZGRjBCMUY3OEQ5
OEYwMDlFRkYxQSAvKiBDbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
bG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwQzVGRkYwRDFGNzhEOUQ4MDA5
RUZGMUEgLyogQ2xvY2tDTS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENsb2NrQ00ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBDNUZGRjBFMUY3
OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENsb2NrQ00uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEM3Nzg1NzAxRjQ1
MTMwRjAwRjRFQkI2IC8qIEFWRm91bmRhdGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBVkZvdW5kYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEM3Nzg1NzExRjQ1MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YURldGVjdG9yc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwQzc3ODU3MjFGNDUxMzBGMDBGNEVCQjYgLyogTG9va3VwU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvb2t1cFNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE2LDYgKzUyMiw3IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlBM0FCNkU1RDFGM0QxRTI4MDA5QzE0QjEgLyogY29jb2EgKi8sCiAJCQkJQTM3ODhFQTAx
RjA1QjdFMjAwNjc5NDI1IC8qIG1hYyAqLywKKwkJCQkwQzVGRkYwQjFGNzhEOThGMDA5RUZGMUEg
LyogQ2xvY2suaCAqLywKIAkJCQlBM0FCNkU1MTFGM0QxREM1MDA5QzE0QjEgLyogU2xlZXBEaXNh
Ymxlci5jcHAgKi8sCiAJCQkJQTNBQjZFNTMxRjNEMUREQjAwOUMxNEIxIC8qIFNsZWVwRGlzYWJs
ZXIuaCAqLywKIAkJCQlBMzc4OEU5QjFGMDVCNzgyMDA2Nzk0MjUgLyogU291bmQuY3BwICovLApA
QCAtNTI5LDYgKzUzNiw4IEBACiAJCUEzNzg4RUEwMUYwNUI3RTIwMDY3OTQyNSAvKiBtYWMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTBDNUZGRjBFMUY3
OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmggKi8sCisJCQkJMEM1RkZGMEQxRjc4RDlEODAwOUVG
RjFBIC8qIENsb2NrQ00ubW0gKi8sCiAJCQkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERl
ZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCiAJCQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICovLAogCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0
QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKQEAgLTU2NSw2ICs1NzQsOCBAQAogCQkJCTBDMkRBMDZG
MUYzM0NBODQwMERCQzMxNyAvKiBDRk5ldHdvcmtTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBD
MkRBMTNGMUYzQkVCNDkwMERCQzMxNyAvKiBDRk5TVVJMQ29ubmVjdGlvblNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyREEwNzAxRjMzQ0E4NDAwREJDMzE3IC8qIENGVXRpbGl0aWVzU1BJLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwQzVGRkYwQzFGNzhEOTkwMDA5RUZGMUEgLyogQ2xvY2suaCBp
biBIZWFkZXJzICovLAorCQkJCTBDNUZGRjEwMUY3OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQzA5RDA1ODFFMzFDNTdFMDA3MjVGMTggLyogY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTA3MTFGMzNDQTg0MDBEQkMzMTcgLyogQ29yZUF1ZGlv
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTExRTFGM0JFOUUwMDBEQkMzMTcgLyogQ29y
ZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTc0NCw2ICs3NTUsNyBAQAogCQkJaXNh
ID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwogCQkJZmlsZXMgPSAoCisJCQkJMEM1RkZGMEYxRjc4RDlEQTAwOUVGRjFBIC8qIENsb2NrQ00u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwQ0Y5OUNBODFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1
RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
MTE3NUI1ODFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybUdU
Sy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXgg
Njc0NjYxYmFjMjJkNzVlMzEzZmMyMDQ1MzhhZjg2ZDE3Y2Y3YWVhMy4uYzZkN2JiZWZiNTA3ZDUx
OGE1MTYzMTkzNTk5OGMyY2Q4MDQ5N2UwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRm
b3JtR1RLLmNtYWtlCkBAIC0xLDYgKzEsOCBAQAogbGlzdChBUFBFTkQgUEFMX1NPVVJDRVMKICAg
ICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0RpZ2VzdEdDcnlwdC5jcHAKIAorICAgIHN5c3RlbS9DbG9j
a0dlbmVyaWMuY3BwCisKICAgICBzeXN0ZW0vZ3RrL1NvdW5kR3RrLmNwcAogCiAgICAgdGV4dC9L
aWxsUmluZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1X
UEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4
IDFmOWNhMjIxZGExYTlkMDQ0ZDFlYjVmNzNjMDM1NmNlZGI2NmQzMGMuLmFhYjdlMWYyYmRlNjQz
ZDJlNTM0MTIzYmJiZDFkMjE2NDM4ZGVhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0
Zm9ybVdQRS5jbWFrZQpAQCAtMSw2ICsxLDcgQEAKIGxpc3QoQVBQRU5EIFBBTF9TT1VSQ0VTCiAg
ICAgY3J5cHRvL2djcnlwdC9DcnlwdG9EaWdlc3RHQ3J5cHQuY3BwCiAKKyAgICBzeXN0ZW0vQ2xv
Y2tHZW5lcmljLmNwcAogICAgIHN5c3RlbS9Tb3VuZC5jcHAKIAogICAgIHRleHQvS2lsbFJpbmcu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV2luLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA4ZjFmZjg4
NGFiOGMyMGFlYWFkNzFmMDk0NTY4MzNhZGQxODg4ZWJhLi4xZTY4ZDRlOWQwMDFmMDRiMzhmNTdm
YzY1MjgzN2Q0MGU4NWRmNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Bs
YXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XaW4u
Y21ha2UKQEAgLTEsNiArMSw4IEBACiBsaXN0KEFQUEVORCBQQUxfU09VUkNFUwogICAgIGNyeXB0
by93aW4vQ3J5cHRvRGlnZXN0V2luLmNwcAogCisgICAgc3lzdGVtL0Nsb2NrR2VuZXJpYy5jcHAK
KwogICAgIHN5c3RlbS93aW4vU291bmRXaW4uY3BwCiAKICAgICB0ZXh0L0tpbGxSaW5nLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAppbmRl
eCBiZGRkNmJkY2M3OGM1NWZlNDdmZjAxNzk4N2I3MTBmYTc1YmUyOThhLi45OTBkMDNhOTE1OTU2
OTk3NDM2MjE2YmE5N2UxZGNiOTg3NjEyMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcApAQCAtMzMsNyArMzMsMjIgQEAKIAogU09GVF9M
SU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFBBTCwgQ29yZU1lZGlhKQogCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2
NCwgKENNVGltZSB0aW1lKSwgKHRpbWUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBDb3JlTWVkaWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFsdWUsIGludDMy
X3QgdGltZXNjYWxlKSwgKHZhbHVlLCB0aW1lc2NhbGUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1lLCAo
RmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRzLCBw
cmVmZXJyZWRUaW1lU2NhbGUpKQorI2lmIFBMQVRGT1JNKENPQ09BKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVy
Q2xvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1h
c3RlckNsb2NrLCBDTVRpbWViYXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3Rl
ckNsb2NrLCB0aW1lYmFzZU91dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUws
IENvcmVNZWRpYSwgQ01UaW1lYmFzZUdldFRpbWUsIENNVGltZSwgKENNVGltZWJhc2VSZWYgdGlt
ZWJhc2UpLCAodGltZWJhc2UpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBD
b3JlTWVkaWEsIENNVGltZWJhc2VTZXRSYXRlLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGlt
ZWJhc2UsIEZsb2F0NjQgcmF0ZSksICh0aW1lYmFzZSwgcmF0ZSkpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFRpbWUsIE9TU3RhdHVz
LCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSwgQ01UaW1lIHRpbWUpLCAodGltZWJhc2UsIHRpbWUp
KQorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0
ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2Nr
T3V0KSwgKGFsbG9jYXRvciwgY2xvY2tPdXQpKQorI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKwor
I2lmIFBMQVRGT1JNKE1BQykKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgQ29y
ZU1lZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0
KSwgKGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCkpCisjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQogCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaAppbmRleCA4NjYxMThmNmRmMGE0ODJhYjBjZmM1
YmEyZmM4MjIzYTM4NmRjYmMzLi5lMTVmZmE0YjViNDQzOWEyMDYwZTg4ZmEwOWViNDQ1MjUyNmEw
MjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRM
aW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5o
CkBAIC0zMyw5ICszMywzMSBAQAogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEpCiAKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTVRpbWVHZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCisj
ZGVmaW5lIENNVGltZUdldFNlY29uZHMgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZUdldFNlY29u
ZHMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWVN
YWtlLCBDTVRpbWUsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHRpbWVzY2FsZSksICh2YWx1ZSwg
dGltZXNjYWxlKSkKICNkZWZpbmUgQ01UaW1lTWFrZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1l
TWFrZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1lLCAoRmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZl
cnJlZFRpbWVTY2FsZSksIChzZWNvbmRzLCBwcmVmZXJyZWRUaW1lU2NhbGUpKQogI2RlZmluZSBD
TVRpbWVNYWtlV2l0aFNlY29uZHMgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZU1ha2VXaXRoU2Vj
b25kcworI2lmIFBMQVRGT1JNKENPQ09BKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2ssIE9TU3RhdHVz
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDTUNsb2NrUmVmIG1hc3RlckNsb2NrLCBDTVRp
bWViYXNlUmVmICp0aW1lYmFzZU91dCksIChhbGxvY2F0b3IsIG1hc3RlckNsb2NrLCB0aW1lYmFz
ZU91dCkpCisjZGVmaW5lIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2sgc29mdExpbmtf
Q29yZU1lZGlhX0NNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2sKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1l
LCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSksICh0aW1lYmFzZSkpCisjZGVmaW5lIENNVGltZWJh
c2VHZXRUaW1lIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlR2V0VGltZQorU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRSYXRlLCBP
U1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGltZWJhc2UsIEZsb2F0NjQgcmF0ZSksICh0aW1lYmFz
ZSwgcmF0ZSkpCisjZGVmaW5lIENNVGltZWJhc2VTZXRSYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9D
TVRpbWViYXNlU2V0UmF0ZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZWJhc2VTZXRUaW1lLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGltZWJh
c2UsIENNVGltZSB0aW1lKSwgKHRpbWViYXNlLCB0aW1lKSkKKyNkZWZpbmUgQ01UaW1lYmFzZVNl
dFRpbWUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VTZXRUaW1lCisjZW5kaWYgLy8gUExB
VEZPUk0oQ09DT0EpCisKKyNpZiBQTEFURk9STShJT1MpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3JlYXRlLCBPU1N0YXR1cywgKENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxsb2NhdG9y
LCBjbG9ja091dCkpCisjZGVmaW5lIENNQXVkaW9DbG9ja0NyZWF0ZSBzb2Z0TGlua19Db3JlTWVk
aWFfQ01BdWRpb0Nsb2NrQ3JlYXRlCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjaWYgUExB
VEZPUk0oTUFDKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxv
Y2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tPdXQpLCAoYWxs
b2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSkKKyNkZWZpbmUgQ01BdWRpb0RldmljZUNsb2Nr
Q3JlYXRlICBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQogCiAjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElPTikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL0Nsb2NrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9DbG9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0YTk1YmYwOTg1ZDg2YjY0
NzFjMWIyNGYyNGU5OTU3MGY3ZThmZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3N5c3RlbS9DbG9jay5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPG1lbW9yeT4KKworbmFtZXNwYWNlIFBBTCB7CisK
K2NsYXNzIENsb2NrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENsb2Nr
PiBjcmVhdGUoKTsKKyAgICB2aXJ0dWFsIH5DbG9jaygpID0gZGVmYXVsdDsKKworICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUpID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBj
dXJyZW50VGltZSgpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5UmF0ZShk
b3VibGUpID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBwbGF5UmF0ZSgpIGNvbnN0ID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSdW5uaW5nKCkgY29uc3QgPSAwOworCitwcm90ZWN0ZWQ6
CisgICAgQ2xvY2soKSA9IGRlZmF1bHQ7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9DbG9ja0dlbmVyaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmM3MWI0Zjc1Y2JmYTVl
OTU1N2NmNWNhMzVmOTQwMmZiN2ExM2M0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmNwcApAQCAtMCwwICsxLDkxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNsb2NrR2VuZXJpYy5o
IgorCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK25hbWVzcGFjZSBQQUwgeworCitz
dGQ6OnVuaXF1ZV9wdHI8Q2xvY2s+IENsb2NrOjpjcmVhdGUoKQoreworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPENsb2NrR2VuZXJpYz4oKTsKK30KKworQ2xvY2tHZW5lcmljOjpDbG9ja0dl
bmVyaWMoKQorICAgIDogbV9ydW5uaW5nKGZhbHNlKQorICAgICwgbV9yYXRlKDEpCisgICAgLCBt
X29mZnNldCgwKQoreworICAgIG1fc3RhcnRUaW1lID0gbV9sYXN0VGltZSA9IG5vdygpOworfQor
Cit2b2lkIENsb2NrR2VuZXJpYzo6c2V0Q3VycmVudFRpbWUoZG91YmxlIHRpbWUpCit7CisgICAg
bV9zdGFydFRpbWUgPSBtX2xhc3RUaW1lID0gbm93KCk7CisgICAgbV9vZmZzZXQgPSB0aW1lOwor
fQorCitkb3VibGUgQ2xvY2tHZW5lcmljOjpjdXJyZW50VGltZSgpIGNvbnN0Cit7CisgICAgaWYg
KG1fcnVubmluZykKKyAgICAgICAgbV9sYXN0VGltZSA9IG5vdygpOworICAgIHJldHVybiAoKG1f
bGFzdFRpbWUgLSBtX3N0YXJ0VGltZSkgKiBtX3JhdGUpICsgbV9vZmZzZXQ7Cit9CisKK3ZvaWQg
Q2xvY2tHZW5lcmljOjpzZXRQbGF5UmF0ZShkb3VibGUgcmF0ZSkKK3sKKyAgICBtX29mZnNldCA9
IGN1cnJlbnRUaW1lKCk7CisgICAgbV9sYXN0VGltZSA9IG1fc3RhcnRUaW1lID0gbm93KCk7Cisg
ICAgbV9yYXRlID0gcmF0ZTsKK30KKwordm9pZCBDbG9ja0dlbmVyaWM6OnN0YXJ0KCkKK3sKKyAg
ICBpZiAobV9ydW5uaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xhc3RUaW1lID0gbV9z
dGFydFRpbWUgPSBub3coKTsKKyAgICBtX3J1bm5pbmcgPSB0cnVlOworfQorCit2b2lkIENsb2Nr
R2VuZXJpYzo6c3RvcCgpCit7CisgICAgaWYgKCFtX3J1bm5pbmcpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fb2Zmc2V0ID0gY3VycmVudFRpbWUoKTsKKyAgICBtX2xhc3RUaW1lID0gbV9zdGFy
dFRpbWUgPSBub3coKTsKKyAgICBtX3J1bm5pbmcgPSBmYWxzZTsKK30KKworZG91YmxlIENsb2Nr
R2VuZXJpYzo6bm93KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lz
dGVtL0Nsb2NrR2VuZXJpYy5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vQ2xvY2tH
ZW5lcmljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZkZjZmOWIxMDkxYTEzOGJmNGE5OGQ0OGQ5OGJlOGFmY2Zj
ZGEwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL0Ns
b2NrR2VuZXJpYy5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBT
b255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkNsb2NrLmgiCisKK25hbWVzcGFjZSBQQUwgeworCitjbGFzcyBDbG9j
a0dlbmVyaWMgZmluYWwgOiBwdWJsaWMgQ2xvY2sgeworcHVibGljOgorICAgIENsb2NrR2VuZXJp
YygpOworCitwcml2YXRlOgorICAgIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKSBvdmVycmlk
ZTsKKyAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsKKworICAgIHZvaWQg
c2V0UGxheVJhdGUoZG91YmxlKSBvdmVycmlkZTsKKyAgICBkb3VibGUgcGxheVJhdGUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX3JhdGU7IH0KKworICAgIHZvaWQgc3RhcnQoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGlzUnVubmluZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fcnVubmluZzsgfQorCisgICAgZG91YmxlIG5vdygpIGNvbnN0
OworCisgICAgYm9vbCBtX3J1bm5pbmc7CisgICAgZG91YmxlIG1fcmF0ZTsKKyAgICBkb3VibGUg
bV9vZmZzZXQ7CisgICAgZG91YmxlIG1fc3RhcnRUaW1lOworICAgIG11dGFibGUgZG91YmxlIG1f
bGFzdFRpbWU7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5
c3RlbS9tYWMvQ2xvY2tDTS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0Ns
b2NrQ00uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42ODZiNDEyZjE2MDJmODlkMDFjZGMzZWMxOGRkNjc0Yzk5YTNl
NzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFj
L0Nsb2NrQ00uaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKENPUkVNRURJQSkKKwor
I2luY2x1ZGUgIi4uL0Nsb2NrLmgiCisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgorI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ01UaW1lYmFzZSog
Q01UaW1lYmFzZVJlZjsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNNQ2xvY2sqIENNQ2xvY2tSZWY7
CisKK25hbWVzcGFjZSBQQUwgeworCitjbGFzcyBDbG9ja0NNIGZpbmFsIDogcHVibGljIENsb2Nr
IHsKK3B1YmxpYzoKKyAgICBDbG9ja0NNKCk7CisgICAgQ2xvY2tDTShDTUNsb2NrUmVmKTsKKwor
ICAgIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKSBvdmVycmlkZTsKKyAgICBkb3VibGUgY3Vy
cmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsKKworICAgIHZvaWQgc2V0Q3VycmVudE1lZGlhVGlt
ZShjb25zdCBNZWRpYVRpbWUmKTsKKyAgICBNZWRpYVRpbWUgY3VycmVudE1lZGlhVGltZSgpIGNv
bnN0OworCisgICAgdm9pZCBzZXRQbGF5UmF0ZShkb3VibGUpIG92ZXJyaWRlOworICAgIGRvdWJs
ZSBwbGF5UmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmF0ZTsgfQorCisgICAgdm9p
ZCBzdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wg
aXNSdW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ydW5uaW5nOyB9CisKKyAgICBD
TVRpbWViYXNlUmVmIHRpbWViYXNlKCkgY29uc3QgeyByZXR1cm4gbV90aW1lYmFzZS5nZXQoKTsg
fQorCitwcml2YXRlOgorICAgIHZvaWQgaW5pdGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2UoQ01DbG9j
a1JlZik7CisKKyAgICBSZXRhaW5QdHI8Q01UaW1lYmFzZVJlZj4gbV90aW1lYmFzZTsKKyAgICBk
b3VibGUgbV9yYXRlOworICAgIGJvb2wgbV9ydW5uaW5nOworfTsKKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9DbG9ja0NNLm1tIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL0Nsb2NrQ00ubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2ZjNGQwNmU3MzkwZWUzYzVkM2Q5MWU1NDI1ZjI4YTQwOTQ1YzNkMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9DbG9ja0NNLm1tCkBAIC0wLDAg
KzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgVVNFKENPUkVNRURJQSkKKyNpbXBvcnQg
IkNsb2NrQ00uaCIKKworI2ltcG9ydCA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5k
YXRpb24uaD4KKworI2ltcG9ydCAiQ29yZU1lZGlhU29mdExpbmsuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFBBTDsKKworLy8gQSBkZWZhdWx0IHRpbWUgc2NhbGUgb2YgMTAwMCBhbGxvd3MgbWlsbGkt
c2Vjb25kIENNVGltZSBwcmVjaXNpb24gd2l0aG91dCBzY2FsaW5nIHRoZSB0aW1lYmFzZS4KK3N0
YXRpYyBjb25zdCBpbnQzMl90IERlZmF1bHRUaW1lU2NhbGUgPSAxMDAwOworCitzdGQ6OnVuaXF1
ZV9wdHI8Q2xvY2s+IENsb2NrOjpjcmVhdGUoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPENsb2NrQ00+KCk7Cit9CisKK0Nsb2NrQ006OkNsb2NrQ00oKQorICAgIDogbV90aW1lYmFz
ZSgwKQorICAgICwgbV9yYXRlKDEpCisgICAgLCBtX3J1bm5pbmcoZmFsc2UpCit7CisgICAgQ01D
bG9ja1JlZiByYXdDbG9ja1B0ciA9IDA7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIENNQXVkaW9D
bG9ja0NyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmcmF3Q2xvY2tQdHIpOworI2Vsc2UKKyAg
ICBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgJnJh
d0Nsb2NrUHRyKTsKKyNlbmRpZgorICAgIFJldGFpblB0cjxDTUNsb2NrUmVmPiBjbG9jayA9IGFk
b3B0Q0YocmF3Q2xvY2tQdHIpOworICAgIGluaXRpYWxpemVXaXRoVGltaW5nU291cmNlKGNsb2Nr
LmdldCgpKTsKK30KKworQ2xvY2tDTTo6Q2xvY2tDTShDTUNsb2NrUmVmIGNsb2NrKQorICAgIDog
bV90aW1lYmFzZSgwKQorICAgICwgbV9ydW5uaW5nKGZhbHNlKQoreworICAgIGluaXRpYWxpemVX
aXRoVGltaW5nU291cmNlKGNsb2NrKTsKK30KKwordm9pZCBDbG9ja0NNOjppbml0aWFsaXplV2l0
aFRpbWluZ1NvdXJjZShDTUNsb2NrUmVmIGNsb2NrKQoreworICAgIENNVGltZWJhc2VSZWYgcmF3
VGltZWJhc2VQdHIgPSAwOworICAgIENNVGltZWJhc2VDcmVhdGVXaXRoTWFzdGVyQ2xvY2soa0NG
QWxsb2NhdG9yRGVmYXVsdCwgY2xvY2ssICZyYXdUaW1lYmFzZVB0cik7CisgICAgbV90aW1lYmFz
ZSA9IGFkb3B0Q0YocmF3VGltZWJhc2VQdHIpOworfQorCit2b2lkIENsb2NrQ006OnNldEN1cnJl
bnRUaW1lKGRvdWJsZSB0aW1lKQoreworICAgIENNVGltZSBjbVRpbWUgPSBDTVRpbWVNYWtlV2l0
aFNlY29uZHModGltZSwgRGVmYXVsdFRpbWVTY2FsZSk7CisgICAgQ01UaW1lYmFzZVNldFRpbWUo
bV90aW1lYmFzZS5nZXQoKSwgY21UaW1lKTsKK30KKworZG91YmxlIENsb2NrQ006OmN1cnJlbnRU
aW1lKCkgY29uc3QKK3sKKyAgICBDTVRpbWUgY21UaW1lID0gQ01UaW1lYmFzZUdldFRpbWUobV90
aW1lYmFzZS5nZXQoKSk7CisgICAgcmV0dXJuIENNVGltZUdldFNlY29uZHMoY21UaW1lKTsKK30K
Kwordm9pZCBDbG9ja0NNOjpzZXRDdXJyZW50TWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKK3sKKyAgICBDTVRpbWViYXNlU2V0VGltZShtX3RpbWViYXNlLmdldCgpLCBQQUw6OnRvQ01U
aW1lKHRpbWUpKTsKK30KKworTWVkaWFUaW1lIENsb2NrQ006OmN1cnJlbnRNZWRpYVRpbWUoKSBj
b25zdAoreworICAgIHJldHVybiBQQUw6OnRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1f
dGltZWJhc2UuZ2V0KCkpKTsKK30KKwordm9pZCBDbG9ja0NNOjpzZXRQbGF5UmF0ZShkb3VibGUg
cmF0ZSkKK3sKKyAgICBpZiAobV9yYXRlID09IHJhdGUpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fcmF0ZSA9IHJhdGU7CisgICAgaWYgKG1fcnVubmluZykKKyAgICAgICAgQ01UaW1lYmFzZVNl
dFJhdGUobV90aW1lYmFzZS5nZXQoKSwgcmF0ZSk7Cit9CisKK3ZvaWQgQ2xvY2tDTTo6c3RhcnQo
KQoreworICAgIGlmIChtX3J1bm5pbmcpCisgICAgICAgIHJldHVybjsKKyAgICBtX3J1bm5pbmcg
PSB0cnVlOworICAgIENNVGltZWJhc2VTZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCksIG1fcmF0ZSk7
Cit9CisKK3ZvaWQgQ2xvY2tDTTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3J1bm5pbmcpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX3J1bm5pbmcgPSBmYWxzZTsKKyAgICBDTVRpbWViYXNlU2V0UmF0
ZShtX3RpbWViYXNlLmdldCgpLCAwKTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGYxNDQ1ZTYzNzBmMDZl
NjM1YzM3YTk3Y2E2NTBhOGVkNDg2ZTYyMy4uZTc2ODMwMDZjMGI5NWE4ZmI0ZTdlYWY5NzZmMWY3
MzJjYjQ1NGZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNjM3NSw3ICs2Mzc1LDYgQEAKIAkJQ0RBOThFMDQxNjAzOUUxQTAw
RkVBM0IxIC8qIEpTV2ViS2l0TWVkaWFLZXlzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTk4RENFMTYwMTU5NzkwMEZFQTNCMSAvKiBKU1dlYktp
dE1lZGlhS2V5cy5jcHAgKi87IH07CiAJCUNEQTk4RTA2MTYwMzlFMUYwMEZFQTNCMSAvKiBKU1dl
YktpdE1lZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREE5OEREMDE2MDE1OTc5MDBGRUEzQjEgLyogSlNXZWJLaXRNZWRpYUtl
eVNlc3Npb24uY3BwICovOyB9OwogCQlDREE5OEUwQjE2MDNDRDYwMDBGRUEzQjEgLyogTGVnYWN5
Q0RNLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
QTk4RTA5MTYwM0NENTkwMEZFQTNCMSAvKiBMZWdhY3lDRE0uY3BwICovOyB9OwotCQlDREFBOEQw
QTE0RDcxQjJFMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQThEMDgxNEQzODU2MDAwNjFFQTYwIC8q
IFBsYXRmb3JtQ2xvY2tDTS5tbSAqLzsgfTsKIAkJQ0RBQjZEMjgxN0M3REU2QzAwQzYwQjM0IC8q
IE1lZGlhQ29udHJvbHNIb3N0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQUI2RDI2MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xzSG9z
dC5jcHAgKi87IH07CiAJCUNEQUI2RDI5MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xz
SG9zdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RB
QjZEMjcxN0M3REU2QzAwQzYwQjM0IC8qIE1lZGlhQ29udHJvbHNIb3N0LmggKi87IH07CiAJCUNE
QUI2RDJEMTdDODE0RUUwMEM2MEIzNCAvKiBKU01lZGlhQ29udHJvbHNIb3N0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUI2RDJCMTdDODE0RUUw
MEM2MEIzNCAvKiBKU01lZGlhQ29udHJvbHNIb3N0LmNwcCAqLzsgfTsKQEAgLTY0MzYsOSArNjQz
NSw2IEBACiAJCUNERThCNUVEMUE2OTc3NzMwMEI0QjY2QSAvKiBMZWdhY3lDRE1Qcml2YXRlQ2xl
YXJLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
RThCNUVCMUE2OTc3NzMwMEI0QjY2QSAvKiBMZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuaCAqLzsg
fTsKIAkJQ0RFOEI1RjAxQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2FjeUNETVNlc3Npb25DbGVhcktl
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU4
QjVFRTFBNjk3NzhCMDBCNEI2NkEgLyogTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmNwcCAqLzsg
fTsKIAkJQ0RFOEI1RjExQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2FjeUNETVNlc3Npb25DbGVhcktl
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFOEI1
RUYxQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oICovOyB9Owot
CQlDREVBNzYzMDE0NjA4QTUzMDA4QjMxRjEgLyogUGxhdGZvcm1DbG9ja0NBLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUE3NjJFMTQ2MDg0REUw
MDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0EuY3BwICovOyB9OwotCQlDREVBNzYzNDE0NjBCNTZG
MDA4QjMxRjEgLyogQ2xvY2tHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENERUE3NjMyMTQ2MEFFMjkwMDhCMzFGMSAvKiBDbG9ja0dlbmVy
aWMuY3BwICovOyB9OwotCQlDREVBNzYzNTE0NjBCNzFBMDA4QjMxRjEgLyogQ2xvY2suY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTc2MzMxNDYw
QjQ2MjAwOEIzMUYxIC8qIENsb2NrLmNwcCAqLzsgfTsKIAkJQ0RFQTdDODQxMjc2MjMwNDAwQjg0
NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERUE3QzgyMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2Ny
ZWVuLmggKi87IH07CiAJCUNERUE3Qzg1MTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2Ny
ZWVuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
RUE3QzgzMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVuLmNwcCAqLzsgfTsKIAkJ
Q0RFQ0E4OUExRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUNBODk4MUVERjQ0
N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gKi87IH07CkBAIC0xNTEyOSw4
ICsxNTEyNSw2IEBACiAJCUNEQTk4RTA5MTYwM0NENTkwMEZFQTNCMSAvKiBMZWdhY3lDRE0uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5Q0RNLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RBOThFMEExNjAzQ0Q1OTAwRkVBM0IxIC8qIExlZ2FjeUNETS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMZWdhY3lDRE0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBOThF
MEMxNjAzQ0YzQzAwRkVBM0IxIC8qIExlZ2FjeUNETVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5Q0RNUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlDREFBOEQwNzE0RDM4NTYwMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtQ2xvY2tDTS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREFBOEQwODE0RDM4NTYwMDA2MUVBNjAgLyogUGxh
dGZvcm1DbG9ja0NNLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGxhdGZvcm1DbG9ja0NNLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFBRjQ1
RDE4NjkwOTRFMDAzQzE3MTcgLyogbWVkaWFDb250cm9sc2lPUy5jc3MgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LmNzczsgcGF0aCA9IG1lZGlhQ29udHJvbHNpT1MuY3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREFCNkQyNTE3QzdERTU3MDBDNjBCMzQgLyogTWVkaWFDb250cm9sc0hvc3QuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IE1lZGlhQ29udHJvbHNIb3N0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RBQjZEMjYxN0M3REU2QzAwQzYwQjM0IC8qIE1lZGlhQ29udHJvbHNIb3N0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQ29udHJvbHNIb3N0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MjA2LDEyICsxNTIwMCw2IEBACiAJCUNE
RThCNUVCMUE2OTc3NzMwMEI0QjY2QSAvKiBMZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERThCNUVFMUE2OTc3OEIwMEI0QjY2QSAv
KiBMZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RFOEI1RUYxQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2FjeUNETVNlc3Np
b25DbGVhcktleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lDRE1T
ZXNzaW9uQ2xlYXJLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RFQTc2MkMx
NDYwODIyNDAwOEIzMUYxIC8qIENsb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNERUE3NjJFMTQ2MDg0
REUwMDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DbG9ja0NBLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQ0RFQTc2MkYxNDYwODRFRTAwOEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNsb2NrQ0EuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RFQTc2MzExNDYwQUUxQjAwOEIzMUYxIC8qIENsb2Nr
R2VuZXJpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbG9ja0dlbmVyaWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RFQTc2MzIxNDYwQUUyOTAwOEIzMUYx
IC8qIENsb2NrR2VuZXJpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDbG9ja0dlbmVyaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREVBNzYz
MzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ2xvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVB
N0M4MjEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNERUE3QzgzMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVu
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZ1bGxTY3Jl
ZW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVDQTg5ODFFREY0NDdEMDBE
Q0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTk1NjQsMTAgKzE5NTUyLDYgQEAKIAkJCQk0QjI3MDk4MTBBRjJFNUUwMDA2NTEyN0YgLyogUGFz
dGVib2FyZE1hYy5tbSAqLywKIAkJCQkxQUY1RTRFMTFFNTc3OUIxMDA0QTFGMDEgLyogUGFzdGVi
b2FyZFdyaXRlci5oICovLAogCQkJCTFBRjVFNEUwMUU1Nzc5QjEwMDRBMUYwMSAvKiBQYXN0ZWJv
YXJkV3JpdGVyLm1tICovLAotCQkJCUNERUE3NjJFMTQ2MDg0REUwMDhCMzFGMSAvKiBQbGF0Zm9y
bUNsb2NrQ0EuY3BwICovLAotCQkJCUNERUE3NjJGMTQ2MDg0RUUwMDhCMzFGMSAvKiBQbGF0Zm9y
bUNsb2NrQ0EuaCAqLywKLQkJCQlDREFBOEQwNzE0RDM4NTYwMDA2MUVBNjAgLyogUGxhdGZvcm1D
bG9ja0NNLmggKi8sCi0JCQkJQ0RBQThEMDgxNEQzODU2MDAwNjFFQTYwIC8qIFBsYXRmb3JtQ2xv
Y2tDTS5tbSAqLywKIAkJCQlCQ0FBNDg2RTE0QTA1MjUzMDA4OEZBQzQgLyogUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMuaCAqLywKIAkJCQlCQ0FBNDg2RDE0QTA1MjUzMDA4OEZBQzQgLyogUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0gKi8sCiAJCQkJQzVGNzY1QkExNEUxRUNGNDAwNkM4OTlCIC8q
IFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSAqLywKQEAgLTI0NTcwLDEwICsyNDU1NCw2IEBACiAJ
CQkJQjJDM0Q5RUMwRDAwNkMxRDAwRUY2RjI2IC8qIHRleHQgKi8sCiAJCQkJNDlBRTJEOTQxMzRF
RTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuY3BwICovLAogCQkJCTQ5QUUyRDk1MTM0
RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVlLmggKi8sCi0JCQkJQ0RFQTc2MzMxNDYw
QjQ2MjAwOEIzMUYxIC8qIENsb2NrLmNwcCAqLywKLQkJCQlDREVBNzYyQzE0NjA4MjI0MDA4QjMx
RjEgLyogQ2xvY2suaCAqLywKLQkJCQlDREVBNzYzMjE0NjBBRTI5MDA4QjMxRjEgLyogQ2xvY2tH
ZW5lcmljLmNwcCAqLywKLQkJCQlDREVBNzYzMTE0NjBBRTFCMDA4QjMxRjEgLyogQ2xvY2tHZW5l
cmljLmggKi8sCiAJCQkJQzMzMEEyMjExM0VDMTk2QjAwMDBCNDVCIC8qIENvbG9yQ2hvb3Nlci5o
ICovLAogCQkJCUMzN0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQu
aCAqLywKIAkJCQlCQ0M4Q0ZDQTA5ODZDRDI0MDAxNDBCRjIgLyogQ29sb3JEYXRhLmdwZXJmICov
LApAQCAtMzE0NDIsOCArMzE0MjIsNiBAQAogCQkJCTgzNDhCRkFCMUI4NTcyOTgwMDkxMkYzNiAv
KiBDbGFzc0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCM0YwQTQ0RUZD
NzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU4MDM3
MTYxMUE2NkYwMEEwMEJBRjUxOSAvKiBDbGlwUmVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlD
REVBNzYzNTE0NjBCNzFBMDA4QjMxRjEgLyogQ2xvY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
Q0RFQTc2MzQxNDYwQjU2RjAwOEIzMUYxIC8qIENsb2NrR2VuZXJpYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5QkQ4QTk1QTE4QkVGQzc2MDA5ODdFOUEgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NjYwQjA1MzgxNDAwMkNFNjRGIC8qIENvbG9y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0YzMzI0MEYyQjk3MTUwMDRCNjc5NSAvKiBDb2xv
ckNHLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzM1NDgsOCArMzM1MjYsNiBAQAogCQkJCTBGMTMx
NjQwMTZFRDBDREUwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ3MEJBMTUxODA3NEY4NjAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FMYXllci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTU4NzgyMjEyQTU3RERGMDA3MjM4QUMgLyogUGxhdGZv
cm1DQUxheWVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKLQkJCQlDREVBNzYzMDE0NjA4QTUzMDA4
QjMxRjEgLyogUGxhdGZvcm1DbG9ja0NBLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQUE4RDBB
MTRENzFCMkUwMDYxRUE2MCAvKiBQbGF0Zm9ybUNsb2NrQ00ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyNjYwMUVDMDE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0g
aW4gU291cmNlcyAqLywKIAkJCQlCQ0FBNDg2RjE0QTA1MjUzMDA4OEZBQzQgLyogUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhQ29udHJvbGxlci5jcHAKaW5kZXggNDk0MGE3OTY0YjY0Yjc0N2MyYzE4Nzc4YjM0
NGQzYTQ1NzczZjFiYy4uZTRmYTYwZDA3YjMzZTliY2EwOTY5MzczNjcxNDRmNjBjNzcyYjMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcApAQCAtMjgsMTAgKzI4LDEw
IEBACiAjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlci5oIgogCi0j
aW5jbHVkZSAiQ2xvY2suaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlIDxwYWwv
c3lzdGVtL0Nsb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAt
NTUsNyArNTUsNyBAQCBNZWRpYUNvbnRyb2xsZXI6Ok1lZGlhQ29udHJvbGxlcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgICwgbV9hc3luY0V2ZW50VGltZXIoKnRoaXMsICZN
ZWRpYUNvbnRyb2xsZXI6OmFzeW5jRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9jbGVhclBvc2l0
aW9uVGltZXIoKnRoaXMsICZNZWRpYUNvbnRyb2xsZXI6OmNsZWFyUG9zaXRpb25UaW1lckZpcmVk
KQogICAgICwgbV9jbG9zZWRDYXB0aW9uc1Zpc2libGUoZmFsc2UpCi0gICAgLCBtX2Nsb2NrKENs
b2NrOjpjcmVhdGUoKSkKKyAgICAsIG1fY2xvY2soUEFMOjpDbG9jazo6Y3JlYXRlKCkpCiAgICAg
LCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKICAgICAsIG1fdGltZXVwZGF0ZVRp
bWVyKCp0aGlzLCAmTWVkaWFDb250cm9sbGVyOjpzY2hlZHVsZVRpbWV1cGRhdGVFdmVudCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5oCmluZGV4IGE5MTkyNDgxN2M1MTRlYmM4
MDBmY2M4MGNhNWQwM2VjN2E4YTYwYmQuLjczOGNiNTQxNGNjYzAxNjY4N2EwY2NjYmUyNTRhYmNh
NGQ3YTE3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuaApAQCAtMzMsOSAr
MzMsMTIgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAor
bmFtZXNwYWNlIFBBTCB7CitjbGFzcyBDbG9jazsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBDbG9jazsKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiAKIGNsYXNzIE1lZGlhQ29u
dHJvbGxlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhQ29udHJvbGxlcj4sIHB1Ymxp
YyBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhIHsKQEAgLTE0Miw3ICsxNDUsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgVGltZXIgbV9j
bGVhclBvc2l0aW9uVGltZXI7CiAgICAgU3RyaW5nIG1fbWVkaWFHcm91cDsKICAgICBib29sIG1f
Y2xvc2VkQ2FwdGlvbnNWaXNpYmxlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gbV9jbG9j
azsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpDbG9jaz4gbV9jbG9jazsKICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAgICAgVGltZXIgbV90
aW1ldXBkYXRlVGltZXI7CiAgICAgTW9ub3RvbmljVGltZSBtX3ByZXZpb3VzVGltZXVwZGF0ZVRp
bWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDhlZDFhZGU4Y2Q4ZDNlYjliYTQ2NWVmZTRmNWVhMzliZDQyNjc3NzAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ2xvY2suY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkNsb2NrLmgiCi0KLSNpZiBVU0UoQ09SRU1FRElBKQotICAgICNpbmNsdWRlICJQ
bGF0Zm9ybUNsb2NrQ00uaCIKLSNlbGlmIFVTRShDT1JFQVVESU8pCi0gICAgI2luY2x1ZGUgIlBs
YXRmb3JtQ2xvY2tDQS5oIgotI2Vsc2UKLSAgICAjaW5jbHVkZSAiQ2xvY2tHZW5lcmljLmgiCi0j
ZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXN0ZDo6dW5pcXVlX3B0cjxDbG9j
az4gQ2xvY2s6OmNyZWF0ZSgpCi17Ci0jaWYgVVNFKENPUkVNRURJQSkKLSAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUNsb2NrQ00+KCk7Ci0jZWxpZiBVU0UoQ09SRUFVRElPKQot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtQ2xvY2tDQT4oKTsKLSNlbHNlCi0g
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q2xvY2tHZW5lcmljPigpOwotI2VuZGlmCi19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ2xvY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzdmNDJl
NDJiMDNhYTFhOTBkYTU0NzFkMDI0MzkxODdlYTAwOTRjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5o
CisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBDbG9ja19oCi0jZGVmaW5lIENsb2NrX2gK
LQotI2luY2x1ZGUgPG1lbW9yeT4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDbG9j
ayB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gY3JlYXRlKCk7
Ci0gICAgdmlydHVhbCB+Q2xvY2soKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50
VGltZShkb3VibGUpID0gMDsKLSAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0
ID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5UmF0ZShkb3VibGUpID0gMDsKLSAgICB2
aXJ0dWFsIGRvdWJsZSBwbGF5UmF0ZSgpIGNvbnN0ID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBz
dGFydCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNSdW5uaW5nKCkgY29uc3QgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgQ2xvY2soKSB7IH0K
LX07Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
bG9ja0dlbmVyaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2tHZW5lcmljLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzVhNGI5NDM1MWNjOWE2Yjg5NGZjYjBk
NjM0OGU4MmMzOTAxNjNlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsb2NrR2VuZXJp
Yy5oIgotCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1DbG9ja0dlbmVyaWM6OkNsb2NrR2VuZXJpYygpCi0gICAgOiBtX3J1bm5pbmco
ZmFsc2UpCi0gICAgLCBtX3JhdGUoMSkKLSAgICAsIG1fb2Zmc2V0KDApCi17Ci0gICAgbV9zdGFy
dFRpbWUgPSBtX2xhc3RUaW1lID0gbm93KCk7Ci19Ci0KLXZvaWQgQ2xvY2tHZW5lcmljOjpzZXRD
dXJyZW50VGltZShkb3VibGUgdGltZSkKLXsKLSAgICBtX3N0YXJ0VGltZSA9IG1fbGFzdFRpbWUg
PSBub3coKTsKLSAgICBtX29mZnNldCA9IHRpbWU7Ci19Ci0KLWRvdWJsZSBDbG9ja0dlbmVyaWM6
OmN1cnJlbnRUaW1lKCkgY29uc3QKLXsKLSAgICBpZiAobV9ydW5uaW5nKQotICAgICAgICBtX2xh
c3RUaW1lID0gbm93KCk7Ci0gICAgcmV0dXJuICgobV9sYXN0VGltZSAtIG1fc3RhcnRUaW1lKSAq
IG1fcmF0ZSkgKyBtX29mZnNldDsKLX0KLQotdm9pZCBDbG9ja0dlbmVyaWM6OnNldFBsYXlSYXRl
KGRvdWJsZSByYXRlKQotewotICAgIG1fb2Zmc2V0ID0gY3VycmVudFRpbWUoKTsKLSAgICBtX2xh
c3RUaW1lID0gbV9zdGFydFRpbWUgPSBub3coKTsKLSAgICBtX3JhdGUgPSByYXRlOwotfQotCi12
b2lkIENsb2NrR2VuZXJpYzo6c3RhcnQoKQotewotICAgIGlmIChtX3J1bm5pbmcpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fbGFzdFRpbWUgPSBtX3N0YXJ0VGltZSA9IG5vdygpOwotICAgIG1f
cnVubmluZyA9IHRydWU7Ci19Ci0KLXZvaWQgQ2xvY2tHZW5lcmljOjpzdG9wKCkKLXsKLSAgICBp
ZiAoIW1fcnVubmluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9vZmZzZXQgPSBjdXJyZW50
VGltZSgpOwotICAgIG1fbGFzdFRpbWUgPSBtX3N0YXJ0VGltZSA9IG5vdygpOwotICAgIG1fcnVu
bmluZyA9IGZhbHNlOwotfQotCi1kb3VibGUgQ2xvY2tHZW5lcmljOjpub3coKSBjb25zdAotewot
ICAgIHJldHVybiBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKLX0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrR2VuZXJpYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ2xvY2tHZW5lcmljLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZj
ZTM2NzQ5M2IyNzVhNjI1M2IxMzg4ZjUwYTNlZmQ2ZDJhZTVjZTUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xv
Y2tHZW5lcmljLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ2xvY2tHZW5lcmljX2gK
LSNkZWZpbmUgQ2xvY2tHZW5lcmljX2gKLQotI2luY2x1ZGUgIkNsb2NrLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2xvY2tHZW5lcmljIGZpbmFsIDogcHVibGljIENsb2NrIHsK
LXB1YmxpYzoKLSAgICBDbG9ja0dlbmVyaWMoKTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHNldEN1
cnJlbnRUaW1lKGRvdWJsZSkgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHNldFBsYXlSYXRlKGRvdWJsZSkgb3ZlcnJpZGU7Ci0g
ICAgZG91YmxlIHBsYXlSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yYXRlOyB9Ci0K
LSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3J1bm5pbmc7IH0K
LQotICAgIGRvdWJsZSBub3coKSBjb25zdDsKLQotICAgIGJvb2wgbV9ydW5uaW5nOwotICAgIGRv
dWJsZSBtX3JhdGU7Ci0gICAgZG91YmxlIG1fb2Zmc2V0OwotICAgIGRvdWJsZSBtX3N0YXJ0VGlt
ZTsKLSAgICBtdXRhYmxlIGRvdWJsZSBtX2xhc3RUaW1lOwotfTsKLQotfQotCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBjM2IzYzdmYzk0OWZhOTIxYTJlZWM0NThkM2Zk
NGE2YmE5NTI4NGYxLi43MjYzNTg0MWM2ZmE5MTFmYjc4OTk5ZWVkYzc0MmMzOGQ1ZGQ1MzE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0zOCw3ICszOCw2IEBACiAjaW1wb3J0ICJN
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVD
bGllbnQuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKLSNpbXBvcnQgIlBs
YXRmb3JtQ2xvY2tDTS5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKICNp
bXBvcnQgIlRleHR1cmVDYWNoZUNWLmgiCiAjaW1wb3J0ICJWaWRlb1RleHR1cmVDb3BpZXJDVi5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCBjMTUxYzcyNTFmMjZlOTAxZWJiZDU1Mjk1
Yjg3ZDAxZTU1ZjVlNWJiLi4yMTRhMmRkNzU3MzlkY2JjMjVkYjE4ZTcyZjJmZDAyZDUyODUxMDZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtNDQsMTEgKzQ0LDE0IEBAIE9CSkNfQ0xB
U1MgTlNOdW1iZXI7CiBPQkpDX0NMQVNTIFdlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlz
dGVuZXI7CiB0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgQ2xvY2s7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNvY29hOwogY2xh
c3MgQVZWaWRlb0NhcHR1cmVTb3VyY2U7Ci1jbGFzcyBDbG9jazsKIGNsYXNzIE1lZGlhU291cmNl
UHJpdmF0ZUNsaWVudDsKIGNsYXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y7CiBjbGFzcyBWaWRl
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOwpAQCAtMjI5LDcgKzIzMiw3IEBAIHByaXZhdGU6CiAg
ICAgUmV0YWluUHRyPFdlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXI+IG1fc3Rh
dHVzQ2hhbmdlTGlzdGVuZXI7CiAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV9iYWNrZ3JvdW5kTGF5ZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENsb2NrPiBtX2Ns
b2NrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQQUw6OkNsb2NrPiBtX2Nsb2NrOwogCiAgICAgTWVk
aWFUaW1lIG1fcGF1c2VkVGltZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDFj
ZDQ3MDkxNzBlYjE2ODA1ZmU3ZDQzNzNlYmVlMzNmMmViODEwY2UuLjI2NGI5NTJmOTg2ZmFhN2U4
Njg1NTE3OGUyYzY5MjY2NDE0NTc2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAg
LTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFU
SU9OKQogCiAjaW1wb3J0ICJBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2EuaCIKLSNp
bXBvcnQgIkNsb2NrLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAi
TG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCkBAIC00MSw2ICs0MCw3
IEBACiAjaW1wb3J0IDxvYmpjX3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24v
TWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9BVkZvdW5kYXRp
b25TUEkuaD4KKyNpbXBvcnQgPHBhbC9zeXN0ZW0vQ2xvY2suaD4KICNpbXBvcnQgPHd0Zi9GdW5j
dGlvbi5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBjb25zdCBkb3VibGUgcmVuZGVy
ZXJMYXRlbmN5ID0gMC4wMjsKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIp
CiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX3N0YXR1c0NoYW5nZUxpc3RlbmVyKGFk
b3B0TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0
V2l0aFBhcmVudDp0aGlzXSkpCi0gICAgLCBtX2Nsb2NrKENsb2NrOjpjcmVhdGUoKSkKKyAgICAs
IG1fY2xvY2soUEFMOjpDbG9jazo6Y3JlYXRlKCkpCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogICAgICwgbV92
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIoVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyOjpj
cmVhdGUoKSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtQ2xvY2tDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1DbG9ja0NBLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFmMTI3YWUwNjI0
YmM4M2IyNWI2Y2Q4YTY3MDk2NjQ5NzkzMjc5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1D
bG9ja0NBLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQot
I2lmIFVTRShDT1JFQVVESU8pCi0KLSNpbmNsdWRlICJQbGF0Zm9ybUNsb2NrQ0EuaCIKLQotI2lu
Y2x1ZGUgPEF1ZGlvVG9vbGJveC9Db3JlQXVkaW9DbG9jay5oPgotI2luY2x1ZGUgPENvcmVBdWRp
by9BdWRpb0hhcmR3YXJlLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1QbGF0Zm9y
bUNsb2NrQ0E6OlBsYXRmb3JtQ2xvY2tDQSgpCi0gICAgOiBtX2Nsb2NrKDApCi0gICAgLCBtX3J1
bm5pbmcoZmFsc2UpCi17Ci0gICAgQ0FDbG9ja05ldygwLCAmbV9jbG9jayk7Ci0gICAgVUludDMy
IHRpbWViYXNlID0ga0NBQ2xvY2tUaW1lYmFzZV9BdWRpb0RldmljZTsKLSAgICBVSW50MzIgdGlt
ZWJhc2VTaXplID0gc2l6ZW9mKHRpbWViYXNlKTsKLSAgICBDQUNsb2NrU2V0UHJvcGVydHkobV9j
bG9jaywga0NBQ2xvY2tQcm9wZXJ0eV9JbnRlcm5hbFRpbWViYXNlLCB0aW1lYmFzZVNpemUsICZ0
aW1lYmFzZSk7Ci0KLSAgICBBdWRpb09iamVjdElEIGRlZmF1bHRBdWRpb091dHB1dCA9IDA7Ci0g
ICAgVUludDMyIGRlZmF1bHRBdWRpb091dHB1dFNpemUgPSBzaXplb2YoZGVmYXVsdEF1ZGlvT3V0
cHV0KTsKLQotICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIGFkZHJlc3M7Ci0gICAgYWRk
cmVzcy5tU2VsZWN0b3IgPSBrQXVkaW9IYXJkd2FyZVByb3BlcnR5RGVmYXVsdE91dHB1dERldmlj
ZTsKLSAgICBhZGRyZXNzLm1TY29wZSAgICA9IGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVHbG9i
YWw7Ci0gICAgYWRkcmVzcy5tRWxlbWVudCAgPSBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRN
YXN0ZXI7Ci0KLSAgICBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YShrQXVkaW9PYmplY3RTeXN0
ZW1PYmplY3QsICZhZGRyZXNzLCAwLCAwLCAmZGVmYXVsdEF1ZGlvT3V0cHV0U2l6ZSwgJmRlZmF1
bHRBdWRpb091dHB1dCk7Ci0gICAgQ0FDbG9ja1NldFByb3BlcnR5KG1fY2xvY2ssIGtDQUNsb2Nr
UHJvcGVydHlfVGltZWJhc2VTb3VyY2UsIGRlZmF1bHRBdWRpb091dHB1dFNpemUsICZkZWZhdWx0
QXVkaW9PdXRwdXQpOwotfQotCi1QbGF0Zm9ybUNsb2NrQ0E6On5QbGF0Zm9ybUNsb2NrQ0EoKQot
ewotICAgIENBQ2xvY2tEaXNwb3NlKG1fY2xvY2spOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tD
QTo6c2V0Q3VycmVudFRpbWUoZG91YmxlIHRpbWUpCi17Ci0gICAgaWYgKG1fcnVubmluZykKLSAg
ICAgICAgQ0FDbG9ja1N0b3AobV9jbG9jayk7Ci0gICAgQ0FDbG9ja1RpbWUgY2FUaW1lOwotICAg
IGNhVGltZS5mb3JtYXQgPSBrQ0FDbG9ja1RpbWVGb3JtYXRfU2Vjb25kczsKLSAgICBjYVRpbWUu
dGltZS5zZWNvbmRzID0gdGltZTsKLSAgICBDQUNsb2NrU2V0Q3VycmVudFRpbWUobV9jbG9jaywg
JmNhVGltZSk7Ci0gICAgaWYgKG1fcnVubmluZykKLSAgICAgICAgQ0FDbG9ja1N0YXJ0KG1fY2xv
Y2spOwotfQotCi1kb3VibGUgUGxhdGZvcm1DbG9ja0NBOjpjdXJyZW50VGltZSgpIGNvbnN0Ci17
Ci0gICAgQ0FDbG9ja1RpbWUgY2FUaW1lOwotCi0gICAgLy8gQ0FDbG9jayBkb2VzIG5vdCByZXR1
cm4gdGhlIGNvcnJlY3QgY3VycmVudCB0aW1lIHdoZW4gc3RvcHBlZC4gSW5zdGVhZCwgcXVlcnkg
Zm9yCi0gICAgLy8gd2hhdCBpcyB0aGUgc3RhcnQgdGltZSwgaS5lLiB3aGF0IHRoZSBjdXJyZW50
IHRpbWUgd2lsbCBiZSB3aGVuIHN0YXJ0ZWQuCi0gICAgaWYgKG1fcnVubmluZykgewotICAgICAg
ICBpZiAoQ0FDbG9ja0dldEN1cnJlbnRUaW1lKG1fY2xvY2ssIGtDQUNsb2NrVGltZUZvcm1hdF9T
ZWNvbmRzLCAmY2FUaW1lKSA9PSBub0VycikKLSAgICAgICAgICAgIHJldHVybiBjYVRpbWUudGlt
ZS5zZWNvbmRzOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChDQUNsb2NrR2V0U3RhcnRUaW1l
KG1fY2xvY2ssIGtDQUNsb2NrVGltZUZvcm1hdF9TZWNvbmRzLCAmY2FUaW1lKSA9PSBub0VycikK
LSAgICAgICAgICAgIHJldHVybiBjYVRpbWUudGltZS5zZWNvbmRzOwotICAgIH0KLSAgICByZXR1
cm4gMDsKLX0KLQotdm9pZCBQbGF0Zm9ybUNsb2NrQ0E6OnNldFBsYXlSYXRlKGRvdWJsZSByYXRl
KQotewotICAgIENBQ2xvY2tTZXRQbGF5UmF0ZShtX2Nsb2NrLCByYXRlKTsKLX0KLQotZG91Ymxl
IFBsYXRmb3JtQ2xvY2tDQTo6UGxhdGZvcm1DbG9ja0NBOjpwbGF5UmF0ZSgpIGNvbnN0Ci17Ci0g
ICAgZG91YmxlIHJhdGUgPSAwOwotICAgIGlmIChDQUNsb2NrR2V0UGxheVJhdGUobV9jbG9jaywg
JnJhdGUpID09IG5vRXJyKQotICAgICAgICByZXR1cm4gcmF0ZTsKLSAgICByZXR1cm4gMDsKLX0K
LQotdm9pZCBQbGF0Zm9ybUNsb2NrQ0E6OnN0YXJ0KCkKLXsKLSAgICBpZiAobV9ydW5uaW5nKQot
ICAgICAgICByZXR1cm47Ci0gICAgbV9ydW5uaW5nID0gdHJ1ZTsKLSAgICBDQUNsb2NrU3RhcnQo
bV9jbG9jayk7Ci19Ci0KLXZvaWQgUGxhdGZvcm1DbG9ja0NBOjpzdG9wKCkKLXsKLSAgICBpZiAo
IW1fcnVubmluZykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fcnVubmluZyA9IGZhbHNlOwotICAg
IENBQ2xvY2tTdG9wKG1fY2xvY2spOwotfQotCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDQS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDQS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhMDRiOTBjOTZiYzc2OGJhZjZlMzNjZmUzOWJhNjAxNzNjZjg2Yjg0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybUNsb2NrQ0EuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQ
bGF0Zm9ybUNsb2NrQ0FfaAotI2RlZmluZSBQbGF0Zm9ybUNsb2NrQ0FfaAotCi0jaWYgVVNFKENP
UkVBVURJTykKLQotI2luY2x1ZGUgIkNsb2NrLmgiCi0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNB
Q2xvY2sgKkNBQ2xvY2tSZWY7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUGxhdGZv
cm1DbG9ja0NBIGZpbmFsIDogcHVibGljIENsb2NrIHsKLXB1YmxpYzoKLSAgICBQbGF0Zm9ybUNs
b2NrQ0EoKTsKLSAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNsb2NrQ0EoKTsKLQotcHJpdmF0ZToKLSAg
ICB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSkgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIGN1cnJl
bnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHNldFBsYXlSYXRlKGRvdWJsZSkg
b3ZlcnJpZGU7Ci0gICAgZG91YmxlIHBsYXlSYXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2
b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBpc1J1bm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3J1bm5pbmc7IH0KLQotICAg
IENBQ2xvY2tSZWYgbV9jbG9jazsKLSAgICBib29sIG1fcnVubmluZzsKLX07Ci0KLX0KLQotI2Vu
ZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtQ2xvY2tDTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xv
Y2tDTS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTY4N2Q4OGJmMzZiMzRlMDI4
ZjkyODUwMDVmNjQzNzc4OWJhMjNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ00u
aAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQbGF0Zm9ybUNsb2NrQ01faAotI2RlZmlu
ZSBQbGF0Zm9ybUNsb2NrQ01faAotCi0jaWYgVVNFKENPUkVNRURJQSkKLQotI2luY2x1ZGUgIkNs
b2NrLmgiCi0jaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KLQotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ01UaW1lYmFzZSogQ01UaW1lYmFzZVJlZjsK
LXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNQ2xvY2sqIENNQ2xvY2tSZWY7Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgUGxhdGZvcm1DbG9ja0NNIGZpbmFsIDogcHVibGljIENsb2NrIHsK
LXB1YmxpYzoKLSAgICBQbGF0Zm9ybUNsb2NrQ00oKTsKLSAgICBQbGF0Zm9ybUNsb2NrQ00oQ01D
bG9ja1JlZik7Ci0KLSAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSkgb3ZlcnJpZGU7Ci0g
ICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHNldEN1
cnJlbnRNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJik7Ci0gICAgTWVkaWFUaW1lIGN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdDsKLQotICAgIHZvaWQgc2V0UGxheVJhdGUoZG91YmxlKSBvdmVycmlk
ZTsKLSAgICBkb3VibGUgcGxheVJhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JhdGU7
IH0KLQotICAgIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3AoKSBvdmVycmlk
ZTsKLSAgICBib29sIGlzUnVubmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcnVubmlu
ZzsgfQotCi0gICAgQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGlt
ZWJhc2UuZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIGluaXRpYWxpemVXaXRoVGltaW5n
U291cmNlKENNQ2xvY2tSZWYpOwotCi0gICAgUmV0YWluUHRyPENNVGltZWJhc2VSZWY+IG1fdGlt
ZWJhc2U7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBib29sIG1fcnVubmluZzsKLX07Ci0KLX0K
LQotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BsYXRmb3JtQ2xvY2tDTS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUNsb2NrQ00ubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5NDg1ZGE4ZDQx
YmFjYjVkNzkwODlkZWJkZDNjMDFmMWEwNzJmMTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
Q2xvY2tDTS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEyLCAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5o
IgotCi0jaWYgVVNFKENPUkVNRURJQSkKLQotI2ltcG9ydCAiUGxhdGZvcm1DbG9ja0NNLmgiCi0K
LSNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmg+Ci0KLSNp
bXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
Ci0vLyBBIGRlZmF1bHQgdGltZSBzY2FsZSBvZiAxMDAwIGFsbG93cyBtaWxsaS1zZWNvbmQgQ01U
aW1lIHByZWNpc2lvbiB3aXRob3V0IHNjYWxpbmcgdGhlIHRpbWViYXNlLgotc3RhdGljIGNvbnN0
IGludDMyX3QgRGVmYXVsdFRpbWVTY2FsZSA9IDEwMDA7Ci0KLVBsYXRmb3JtQ2xvY2tDTTo6UGxh
dGZvcm1DbG9ja0NNKCkKLSAgICA6IG1fdGltZWJhc2UoMCkKLSAgICAsIG1fcmF0ZSgxKQotICAg
ICwgbV9ydW5uaW5nKGZhbHNlKQotewotICAgIENNQ2xvY2tSZWYgcmF3Q2xvY2tQdHIgPSAwOwot
I2lmIFBMQVRGT1JNKElPUykKLSAgICBDTUF1ZGlvQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgJnJhd0Nsb2NrUHRyKTsKLSNlbHNlCi0gICAgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsICZyYXdDbG9ja1B0cik7Ci0jZW5kaWYKLSAgICBS
ZXRhaW5QdHI8Q01DbG9ja1JlZj4gY2xvY2sgPSBhZG9wdENGKHJhd0Nsb2NrUHRyKTsKLSAgICBp
bml0aWFsaXplV2l0aFRpbWluZ1NvdXJjZShjbG9jay5nZXQoKSk7Ci19Ci0KLVBsYXRmb3JtQ2xv
Y2tDTTo6UGxhdGZvcm1DbG9ja0NNKENNQ2xvY2tSZWYgY2xvY2spCi0gICAgOiBtX3RpbWViYXNl
KDApCi0gICAgLCBtX3J1bm5pbmcoZmFsc2UpCi17Ci0gICAgaW5pdGlhbGl6ZVdpdGhUaW1pbmdT
b3VyY2UoY2xvY2spOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tDTTo6aW5pdGlhbGl6ZVdpdGhU
aW1pbmdTb3VyY2UoQ01DbG9ja1JlZiBjbG9jaykKLXsKLSAgICBDTVRpbWViYXNlUmVmIHJhd1Rp
bWViYXNlUHRyID0gMDsKLSAgICBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGNsb2NrLCAmcmF3VGltZWJhc2VQdHIpOwotICAgIG1fdGltZWJhc2Ug
PSBhZG9wdENGKHJhd1RpbWViYXNlUHRyKTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNsb2NrQ006OnNl
dEN1cnJlbnRUaW1lKGRvdWJsZSB0aW1lKQotewotICAgIENNVGltZSBjbVRpbWUgPSBDTVRpbWVN
YWtlV2l0aFNlY29uZHModGltZSwgRGVmYXVsdFRpbWVTY2FsZSk7Ci0gICAgQ01UaW1lYmFzZVNl
dFRpbWUobV90aW1lYmFzZS5nZXQoKSwgY21UaW1lKTsKLX0KLQotZG91YmxlIFBsYXRmb3JtQ2xv
Y2tDTTo6Y3VycmVudFRpbWUoKSBjb25zdAotewotICAgIENNVGltZSBjbVRpbWUgPSBDTVRpbWVi
YXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKTsKLSAgICByZXR1cm4gQ01UaW1lR2V0U2Vjb25k
cyhjbVRpbWUpOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tDTTo6c2V0Q3VycmVudE1lZGlhVGlt
ZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCi17Ci0gICAgQ01UaW1lYmFzZVNldFRpbWUobV90aW1l
YmFzZS5nZXQoKSwgUEFMOjp0b0NNVGltZSh0aW1lKSk7Ci19Ci0KLU1lZGlhVGltZSBQbGF0Zm9y
bUNsb2NrQ006OmN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdAotewotICAgIHJldHVybiBQQUw6OnRv
TWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkpKTsKLX0KLQotdm9p
ZCBQbGF0Zm9ybUNsb2NrQ006OnNldFBsYXlSYXRlKGRvdWJsZSByYXRlKQotewotICAgIGlmICht
X3JhdGUgPT0gcmF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9yYXRlID0gcmF0ZTsKLSAg
ICBpZiAobV9ydW5uaW5nKQotICAgICAgICBDTVRpbWViYXNlU2V0UmF0ZShtX3RpbWViYXNlLmdl
dCgpLCByYXRlKTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNsb2NrQ006OnN0YXJ0KCkKLXsKLSAgICBp
ZiAobV9ydW5uaW5nKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ydW5uaW5nID0gdHJ1ZTsKLSAg
ICBDTVRpbWViYXNlU2V0UmF0ZShtX3RpbWViYXNlLmdldCgpLCBtX3JhdGUpOwotfQotCi12b2lk
IFBsYXRmb3JtQ2xvY2tDTTo6c3RvcCgpCi17Ci0gICAgaWYgKCFtX3J1bm5pbmcpCi0gICAgICAg
IHJldHVybjsKLSAgICBtX3J1bm5pbmcgPSBmYWxzZTsKLSAgICBDTVRpbWViYXNlU2V0UmF0ZSht
X3RpbWViYXNlLmdldCgpLCAwKTsKLX0KLQotI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321804</attachid>
            <date>2017-09-26 00:15:09 -0700</date>
            <delta_ts>2017-09-26 12:57:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174342-20170926161557.patch</filename>
            <type>text/plain</type>
            <size>64505</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkyOWE4YTFiOWZkMDVl
ODlkNDdhZDU2YWVlMjYyYjY5ZjUzNjEwMy4uYzU5MTdhOGQzZGUzZWViOWU3MThlZTE1NzllNzE5
ZTBjMDNhOWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA5LTI1ICBZb3No
aWFraSBKaXRzdWthd2EgIDxZb3NoaWFraS5KaXRzdWthd2FAc29ueS5jb20+CisKKyAgICAgICAg
W1BBTF0gTW92ZSBDbG9jayBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTWVkaWFDb250cm9sbGVyOjpNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAqIGh0bWwv
TWVkaWFDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vQ2xvY2suY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tD
QS5jcHA6IFJlbW92ZWQuIFBsYXRmb3JtQ2xvY2tDQSBpcyBubyBsb25nZXIgdXNlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmg6IFJlbW92ZWQuCisKIDIwMTctMDkt
MjQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBD
U1MgcmVnaW9ucyByZWxhdGVkIGZpZWxkcyBmcm9tIFJlbmRlclN0eWxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBhMjVjZWU4YTkwMTlkMDU1ZDZiNGE3MjQzMzRmOTk4ODJlMThkOTYxLi44OTg2MjE2
YzczNWQ1NjY0OGJlMGVjMGFmMDFjNzg5ODA1NDc4MDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMyBAQAorMjAxNy0wOS0yNSAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9zaGlha2ku
Sml0c3VrYXdhQHNvbnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgQ2xvY2sgaW50byBQQUwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDM0Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL1BsYXRmb3JtR1RLLmNtYWtl
OgorICAgICAgICAqIHBhbC9QbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBwYWwvc3lzdGVt
L0Nsb2NrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9jay5oLgor
ICAgICAgICAqIHBhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAuCisgICAgICAgIChQQUw6OkNsb2Nr
OjpjcmVhdGUpOgorICAgICAgICAqIHBhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuaC4KKyAgICAgICAgKiBw
YWwvc3lzdGVtL21hYy9DbG9ja0NNLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NNLmguCisgICAgICAgICogcGFsL3N5c3RlbS9tYWMvQ2xv
Y2tDTS5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUNsb2NrQ00ubW0uCisgICAgICAgIChDbG9jazo6Y3JlYXRlKToKKyAgICAgICAgKENsb2NrQ006
OkNsb2NrQ00pOgorICAgICAgICAoQ2xvY2tDTTo6aW5pdGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2Up
OgorICAgICAgICAoQ2xvY2tDTTo6c2V0Q3VycmVudFRpbWUpOgorICAgICAgICAoQ2xvY2tDTTo6
Y3VycmVudFRpbWUgY29uc3QpOgorICAgICAgICAoQ2xvY2tDTTo6c2V0Q3VycmVudE1lZGlhVGlt
ZSk6CisgICAgICAgIChDbG9ja0NNOjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAg
KENsb2NrQ006OnNldFBsYXlSYXRlKToKKyAgICAgICAgKENsb2NrQ006OnN0YXJ0KToKKyAgICAg
ICAgKENsb2NrQ006OnN0b3ApOgorCisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
LmNwcDoKKyAgICAgICAgKiBwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaDoKKyAgICAgICAgQWRk
IHJlcXVyaXJlZCBmdW5jdGlvbnMuCiAyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVm
IGxhemlseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOWNmZDQzNDdiODFkOTFkZTgzMDMyZTA3
YmQxMmJkMTM3MDA1YzlkOS4uODA5YzNiMTcwZjg3NjUyN2I3ZjQzMTc2ZDAyZWUzMjczY2U4NTNl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIzMDQsOCArMjMwNCw2IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCiAK
ICAgICBwbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmNwcAotICAgIHBsYXRmb3JtL0Nsb2NrLmNw
cAotICAgIHBsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAKICAgICBwbGF0Zm9ybS9Db250ZW50VHlw
ZS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOTBkMGI5MzY1MTNjYzI3MzQ1NWVkODZmYWUwMjY2ZDgwNmQ5NjQ0
ZC4uMjU1YTNhNzNjOWVmZWU4ZWEzODM4NzBhZmZlM2Y4ZTUyNjJhZTVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzEsNiAr
NzEsOSBAQAogCQkwQzVBRjkyMDFGNDNBNEM3MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQzVBRjkxNjFGNDNB
NEM3MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmggKi87IH07CiAJCTBDNUFGOTIxMUY0M0E0Qzcw
MDJFQUMwMiAvKiBTUUxpdGUzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwQzVBRjkxNzFGNDNBNEM3MDAyRUFDMDIgLyogU1FMaXRlM1NQSS5oICov
OyB9OwogCQkwQzVBRjkyMjFGNDNBNEM3MDAyRUFDMDIgLyogVUlLaXRTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBDNUFGOTE4MUY0M0E0QzcwMDJF
QUMwMiAvKiBVSUtpdFNQSS5oICovOyB9OworCQkwQzVGRkYwQzFGNzhEOTkwMDA5RUZGMUEgLyog
Q2xvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBD
NUZGRjBCMUY3OEQ5OEYwMDlFRkYxQSAvKiBDbG9jay5oICovOyB9OworCQkwQzVGRkYwRjFGNzhE
OURBMDA5RUZGMUEgLyogQ2xvY2tDTS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBDNUZGRjBEMUY3OEQ5RDgwMDlFRkYxQSAvKiBDbG9ja0NNLm1tICov
OyB9OworCQkwQzVGRkYxMDFGNzhEOURBMDA5RUZGMUEgLyogQ2xvY2tDTS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEM1RkZGMEUxRjc4RDlEQTAwOUVG
RjFBIC8qIENsb2NrQ00uaCAqLzsgfTsKIAkJMEM3Nzg1ODkxRjQ1MTMwRjAwRjRFQkI2IC8qIEFW
Rm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEM3Nzg1NzAxRjQ1MTMwRjAwRjRFQkI2IC8qIEFWRm91bmRhdGlvblNQSS5oICovOyB9
OwogCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVCQjYgLyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEM3Nzg1NzExRjQ1MTMw
RjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLzsgfTsKIAkJMEM3Nzg1OEIxRjQ1MTMw
RjAwRjRFQkI2IC8qIExvb2t1cFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEM3Nzg1NzIxRjQ1MTMwRjAwRjRFQkI2IC8qIExvb2t1cFNQSS5oICov
OyB9OwpAQCAtMTk4LDYgKzIwMSw5IEBACiAJCTBDNUFGOTE2MUY0M0E0QzcwMDJFQUMwMiAvKiBR
dWlja0xvb2tTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29r
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBDNUFGOTE3MUY0M0E0QzcwMDJF
QUMwMiAvKiBTUUxpdGUzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNR
TGl0ZTNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEM1QUY5MTgxRjQzQTRD
NzAwMkVBQzAyIC8qIFVJS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVJS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBDNUZGRjBCMUY3OEQ5
OEYwMDlFRkYxQSAvKiBDbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
bG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwQzVGRkYwRDFGNzhEOUQ4MDA5
RUZGMUEgLyogQ2xvY2tDTS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENsb2NrQ00ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBDNUZGRjBFMUY3
OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENsb2NrQ00uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEM3Nzg1NzAxRjQ1
MTMwRjAwRjRFQkI2IC8qIEFWRm91bmRhdGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBVkZvdW5kYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEM3Nzg1NzExRjQ1MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YURldGVjdG9yc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwQzc3ODU3MjFGNDUxMzBGMDBGNEVCQjYgLyogTG9va3VwU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvb2t1cFNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE2LDYgKzUyMiw3IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlBM0FCNkU1RDFGM0QxRTI4MDA5QzE0QjEgLyogY29jb2EgKi8sCiAJCQkJQTM3ODhFQTAx
RjA1QjdFMjAwNjc5NDI1IC8qIG1hYyAqLywKKwkJCQkwQzVGRkYwQjFGNzhEOThGMDA5RUZGMUEg
LyogQ2xvY2suaCAqLywKIAkJCQlBM0FCNkU1MTFGM0QxREM1MDA5QzE0QjEgLyogU2xlZXBEaXNh
Ymxlci5jcHAgKi8sCiAJCQkJQTNBQjZFNTMxRjNEMUREQjAwOUMxNEIxIC8qIFNsZWVwRGlzYWJs
ZXIuaCAqLywKIAkJCQlBMzc4OEU5QjFGMDVCNzgyMDA2Nzk0MjUgLyogU291bmQuY3BwICovLApA
QCAtNTI5LDYgKzUzNiw4IEBACiAJCUEzNzg4RUEwMUYwNUI3RTIwMDY3OTQyNSAvKiBtYWMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTBDNUZGRjBFMUY3
OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmggKi8sCisJCQkJMEM1RkZGMEQxRjc4RDlEODAwOUVG
RjFBIC8qIENsb2NrQ00ubW0gKi8sCiAJCQkJQTExNzVCNTYxRjZCNDcwNTAwQzRCOUYwIC8qIERl
ZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgKi8sCiAJCQkJQTExNzVCNTUxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oICovLAogCQkJCUExMTc1QjRDMUY2QjMzNzMwMEM0
QjlGMCAvKiBQb3B1cE1lbnUuaCAqLywKQEAgLTU2NSw2ICs1NzQsOCBAQAogCQkJCTBDMkRBMDZG
MUYzM0NBODQwMERCQzMxNyAvKiBDRk5ldHdvcmtTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBD
MkRBMTNGMUYzQkVCNDkwMERCQzMxNyAvKiBDRk5TVVJMQ29ubmVjdGlvblNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyREEwNzAxRjMzQ0E4NDAwREJDMzE3IC8qIENGVXRpbGl0aWVzU1BJLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwQzVGRkYwQzFGNzhEOTkwMDA5RUZGMUEgLyogQ2xvY2suaCBp
biBIZWFkZXJzICovLAorCQkJCTBDNUZGRjEwMUY3OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NNLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQzA5RDA1ODFFMzFDNTdFMDA3MjVGMTggLyogY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTA3MTFGMzNDQTg0MDBEQkMzMTcgLyogQ29yZUF1ZGlv
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTExRTFGM0JFOUUwMDBEQkMzMTcgLyogQ29y
ZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTc0NCw2ICs3NTUsNyBAQAogCQkJaXNh
ID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwogCQkJZmlsZXMgPSAoCisJCQkJMEM1RkZGMEYxRjc4RDlEQTAwOUVGRjFBIC8qIENsb2NrQ00u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwQ0Y5OUNBODFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1
RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
MTE3NUI1ODFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybUdU
Sy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXgg
Njc0NjYxYmFjMjJkNzVlMzEzZmMyMDQ1MzhhZjg2ZDE3Y2Y3YWVhMy4uYzZkN2JiZWZiNTA3ZDUx
OGE1MTYzMTkzNTk5OGMyY2Q4MDQ5N2UwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRm
b3JtR1RLLmNtYWtlCkBAIC0xLDYgKzEsOCBAQAogbGlzdChBUFBFTkQgUEFMX1NPVVJDRVMKICAg
ICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0RpZ2VzdEdDcnlwdC5jcHAKIAorICAgIHN5c3RlbS9DbG9j
a0dlbmVyaWMuY3BwCisKICAgICBzeXN0ZW0vZ3RrL1NvdW5kR3RrLmNwcAogCiAgICAgdGV4dC9L
aWxsUmluZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1X
UEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4
IDFmOWNhMjIxZGExYTlkMDQ0ZDFlYjVmNzNjMDM1NmNlZGI2NmQzMGMuLmFhYjdlMWYyYmRlNjQz
ZDJlNTM0MTIzYmJiZDFkMjE2NDM4ZGVhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0
Zm9ybVdQRS5jbWFrZQpAQCAtMSw2ICsxLDcgQEAKIGxpc3QoQVBQRU5EIFBBTF9TT1VSQ0VTCiAg
ICAgY3J5cHRvL2djcnlwdC9DcnlwdG9EaWdlc3RHQ3J5cHQuY3BwCiAKKyAgICBzeXN0ZW0vQ2xv
Y2tHZW5lcmljLmNwcAogICAgIHN5c3RlbS9Tb3VuZC5jcHAKIAogICAgIHRleHQvS2lsbFJpbmcu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV2luLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA4ZjFmZjg4
NGFiOGMyMGFlYWFkNzFmMDk0NTY4MzNhZGQxODg4ZWJhLi4xZTY4ZDRlOWQwMDFmMDRiMzhmNTdm
YzY1MjgzN2Q0MGU4NWRmNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Bs
YXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XaW4u
Y21ha2UKQEAgLTEsNiArMSw4IEBACiBsaXN0KEFQUEVORCBQQUxfU09VUkNFUwogICAgIGNyeXB0
by93aW4vQ3J5cHRvRGlnZXN0V2luLmNwcAogCisgICAgc3lzdGVtL0Nsb2NrR2VuZXJpYy5jcHAK
KwogICAgIHN5c3RlbS93aW4vU291bmRXaW4uY3BwCiAKICAgICB0ZXh0L0tpbGxSaW5nLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAppbmRl
eCBiZGRkNmJkY2M3OGM1NWZlNDdmZjAxNzk4N2I3MTBmYTc1YmUyOThhLi5kMWJkNmMxYzdhZDg4
Mjc2YjEzNzEzYjBjZGU4ZDViNTc4OTgwNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcApAQCAtMzMsNyArMzMsMjMgQEAKIAogU09GVF9M
SU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFBBTCwgQ29yZU1lZGlhKQogCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2
NCwgKENNVGltZSB0aW1lKSwgKHRpbWUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBDb3JlTWVkaWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFsdWUsIGludDMy
X3QgdGltZXNjYWxlKSwgKHZhbHVlLCB0aW1lc2NhbGUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBDb3JlTWVkaWEsIENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1lLCAo
RmxvYXQ2NCBzZWNvbmRzLCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRzLCBw
cmVmZXJyZWRUaW1lU2NhbGUpKQogCisjaWYgUExBVEZPUk0oQ09DT0EpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0
ZXJDbG9jaywgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYg
bWFzdGVyQ2xvY2ssIENNVGltZWJhc2VSZWYgKnRpbWViYXNlT3V0KSwgKGFsbG9jYXRvciwgbWFz
dGVyQ2xvY2ssIHRpbWViYXNlT3V0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlR2V0VGltZSwgQ01UaW1lLCAoQ01UaW1lYmFzZVJlZiB0
aW1lYmFzZSksICh0aW1lYmFzZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUws
IENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFJhdGUsIE9TU3RhdHVzLCAoQ01UaW1lYmFzZVJlZiB0
aW1lYmFzZSwgRmxvYXQ2NCByYXRlKSwgKHRpbWViYXNlLCByYXRlKSkKK1NPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0VGltZSwgT1NTdGF0
dXMsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlLCBDTVRpbWUgdGltZSksICh0aW1lYmFzZSwgdGlt
ZSkpCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCisKKyNpZiBQTEFURk9STShJT1MpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Nsb2NrQ3Jl
YXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiAqY2xv
Y2tPdXQpLCAoYWxsb2NhdG9yLCBjbG9ja091dCkpCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQor
CisjaWYgUExBVEZPUk0oTUFDKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBD
b3JlTWVkaWEsIENNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIENGU3RyaW5nUmVmIGRldmljZVVJRCwgQ01DbG9ja1JlZiAqY2xvY2tP
dXQpLCAoYWxsb2NhdG9yLCBkZXZpY2VVSUQsIGNsb2NrT3V0KSkKKyNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCisKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDg2NjExOGY2ZGYwYTQ4MmFiMGNm
YzViYTJmYzgyMjNhMzg2ZGNiYzMuLjE4MmE1MDMzMjI5MWVlNjA0MWJkNTE3ZWY3MDQwYzdmZjE3
NDlmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1lZGlhU29m
dExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
LmgKQEAgLTMzLDkgKzMzLDMyIEBACiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSkKIAorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSksICh0aW1lKSkK
KyNkZWZpbmUgQ01UaW1lR2V0U2Vjb25kcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lR2V0U2Vj
b25kcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNVGlt
ZU1ha2UsIENNVGltZSwgKGludDY0X3QgdmFsdWUsIGludDMyX3QgdGltZXNjYWxlKSwgKHZhbHVl
LCB0aW1lc2NhbGUpKQogI2RlZmluZSBDTVRpbWVNYWtlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRp
bWVNYWtlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01U
aW1lTWFrZVdpdGhTZWNvbmRzLCBDTVRpbWUsIChGbG9hdDY0IHNlY29uZHMsIGludDMyX3QgcHJl
ZmVycmVkVGltZVNjYWxlKSwgKHNlY29uZHMsIHByZWZlcnJlZFRpbWVTY2FsZSkpCiAjZGVmaW5l
IENNVGltZU1ha2VXaXRoU2Vjb25kcyBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lTWFrZVdpdGhT
ZWNvbmRzCiAKKyNpZiBQTEFURk9STShDT0NPQSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrLCBPU1N0
YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01DbG9ja1JlZiBtYXN0ZXJDbG9jaywg
Q01UaW1lYmFzZVJlZiAqdGltZWJhc2VPdXQpLCAoYWxsb2NhdG9yLCBtYXN0ZXJDbG9jaywgdGlt
ZWJhc2VPdXQpKQorI2RlZmluZSBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrIHNvZnRM
aW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2NrCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01UaW1lYmFzZUdldFRpbWUsIENN
VGltZSwgKENNVGltZWJhc2VSZWYgdGltZWJhc2UpLCAodGltZWJhc2UpKQorI2RlZmluZSBDTVRp
bWViYXNlR2V0VGltZSBzb2Z0TGlua19Db3JlTWVkaWFfQ01UaW1lYmFzZUdldFRpbWUKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0UmF0
ZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlLCBGbG9hdDY0IHJhdGUpLCAodGlt
ZWJhc2UsIHJhdGUpKQorI2RlZmluZSBDTVRpbWViYXNlU2V0UmF0ZSBzb2Z0TGlua19Db3JlTWVk
aWFfQ01UaW1lYmFzZVNldFJhdGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwg
Q29yZU1lZGlhLCBDTVRpbWViYXNlU2V0VGltZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRp
bWViYXNlLCBDTVRpbWUgdGltZSksICh0aW1lYmFzZSwgdGltZSkpCisjZGVmaW5lIENNVGltZWJh
c2VTZXRUaW1lIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlU2V0VGltZQorI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKQorCisjaWYgUExBVEZPUk0oSU9TKQorU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9DbG9ja0NyZWF0ZSwgT1NTdGF0dXMs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwgKGFsbG9j
YXRvciwgY2xvY2tPdXQpKQorI2RlZmluZSBDTUF1ZGlvQ2xvY2tDcmVhdGUgc29mdExpbmtfQ29y
ZU1lZGlhX0NNQXVkaW9DbG9ja0NyZWF0ZQorI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKworI2lm
IFBMQVRGT1JNKE1BQykKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1l
ZGlhLCBDTUF1ZGlvRGV2aWNlQ2xvY2tDcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCBDRlN0cmluZ1JlZiBkZXZpY2VVSUQsIENNQ2xvY2tSZWYgKmNsb2NrT3V0KSwg
KGFsbG9jYXRvciwgZGV2aWNlVUlELCBjbG9ja091dCkpCisjZGVmaW5lIENNQXVkaW9EZXZpY2VD
bG9ja0NyZWF0ZSAgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVkaW9EZXZpY2VDbG9ja0NyZWF0ZQor
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKwogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9DbG9jay5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vQ2xvY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NGE5NWJmMDk4NWQ4
NmI2NDcxYzFiMjRmMjRlOTk1NzBmN2U4ZmVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zeXN0ZW0vQ2xvY2suaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKK25hbWVzcGFjZSBQQUwg
eworCitjbGFzcyBDbG9jayB7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxD
bG9jaz4gY3JlYXRlKCk7CisgICAgdmlydHVhbCB+Q2xvY2soKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKSA9IDA7CisgICAgdmlydHVhbCBkb3Vi
bGUgY3VycmVudFRpbWUoKSBjb25zdCA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGxheVJh
dGUoZG91YmxlKSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgcGxheVJhdGUoKSBjb25zdCA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3Ao
KSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzUnVubmluZygpIGNvbnN0ID0gMDsKKworcHJvdGVj
dGVkOgorICAgIENsb2NrKCkgPSBkZWZhdWx0OworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vQ2xvY2tHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3lzdGVtL0Nsb2NrR2VuZXJpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZjNzFiNGY3NWNi
ZmE1ZTk1NTdjZjVjYTM1Zjk0MDJmYjdhMTNjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3lzdGVtL0Nsb2NrR2VuZXJpYy5jcHAKQEAgLTAsMCArMSw5MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJ
bmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDbG9ja0dlbmVy
aWMuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3BhY2UgUEFMIHsK
Kworc3RkOjp1bmlxdWVfcHRyPENsb2NrPiBDbG9jazo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxDbG9ja0dlbmVyaWM+KCk7Cit9CisKK0Nsb2NrR2VuZXJpYzo6Q2xv
Y2tHZW5lcmljKCkKKyAgICA6IG1fcnVubmluZyhmYWxzZSkKKyAgICAsIG1fcmF0ZSgxKQorICAg
ICwgbV9vZmZzZXQoMCkKK3sKKyAgICBtX3N0YXJ0VGltZSA9IG1fbGFzdFRpbWUgPSBub3coKTsK
K30KKwordm9pZCBDbG9ja0dlbmVyaWM6OnNldEN1cnJlbnRUaW1lKGRvdWJsZSB0aW1lKQorewor
ICAgIG1fc3RhcnRUaW1lID0gbV9sYXN0VGltZSA9IG5vdygpOworICAgIG1fb2Zmc2V0ID0gdGlt
ZTsKK30KKworZG91YmxlIENsb2NrR2VuZXJpYzo6Y3VycmVudFRpbWUoKSBjb25zdAoreworICAg
IGlmIChtX3J1bm5pbmcpCisgICAgICAgIG1fbGFzdFRpbWUgPSBub3coKTsKKyAgICByZXR1cm4g
KChtX2xhc3RUaW1lIC0gbV9zdGFydFRpbWUpICogbV9yYXRlKSArIG1fb2Zmc2V0OworfQorCit2
b2lkIENsb2NrR2VuZXJpYzo6c2V0UGxheVJhdGUoZG91YmxlIHJhdGUpCit7CisgICAgbV9vZmZz
ZXQgPSBjdXJyZW50VGltZSgpOworICAgIG1fbGFzdFRpbWUgPSBtX3N0YXJ0VGltZSA9IG5vdygp
OworICAgIG1fcmF0ZSA9IHJhdGU7Cit9CisKK3ZvaWQgQ2xvY2tHZW5lcmljOjpzdGFydCgpCit7
CisgICAgaWYgKG1fcnVubmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXN0VGltZSA9
IG1fc3RhcnRUaW1lID0gbm93KCk7CisgICAgbV9ydW5uaW5nID0gdHJ1ZTsKK30KKwordm9pZCBD
bG9ja0dlbmVyaWM6OnN0b3AoKQoreworICAgIGlmICghbV9ydW5uaW5nKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX29mZnNldCA9IGN1cnJlbnRUaW1lKCk7CisgICAgbV9sYXN0VGltZSA9IG1f
c3RhcnRUaW1lID0gbm93KCk7CisgICAgbV9ydW5uaW5nID0gZmFsc2U7Cit9CisKK2RvdWJsZSBD
bG9ja0dlbmVyaWM6Om5vdygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3N5c3RlbS9DbG9ja0dlbmVyaWMuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL0Ns
b2NrR2VuZXJpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmZGY2ZjliMTA5MWExMzhiZjRhOThkNDhkOThiZThh
ZmNmY2RhMDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3Rl
bS9DbG9ja0dlbmVyaWMuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJDbG9jay5oIgorCituYW1lc3BhY2UgUEFMIHsKKworY2xhc3Mg
Q2xvY2tHZW5lcmljIGZpbmFsIDogcHVibGljIENsb2NrIHsKK3B1YmxpYzoKKyAgICBDbG9ja0dl
bmVyaWMoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSkgb3Zl
cnJpZGU7CisgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2
b2lkIHNldFBsYXlSYXRlKGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgZG91YmxlIHBsYXlSYXRlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yYXRlOyB9CisKKyAgICB2b2lkIHN0YXJ0KCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1J1bm5pbmcoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX3J1bm5pbmc7IH0KKworICAgIGRvdWJsZSBub3coKSBj
b25zdDsKKworICAgIGJvb2wgbV9ydW5uaW5nOworICAgIGRvdWJsZSBtX3JhdGU7CisgICAgZG91
YmxlIG1fb2Zmc2V0OworICAgIGRvdWJsZSBtX3N0YXJ0VGltZTsKKyAgICBtdXRhYmxlIGRvdWJs
ZSBtX2xhc3RUaW1lOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zeXN0ZW0vbWFjL0Nsb2NrQ00uaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21h
Yy9DbG9ja0NNLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg2YjQxMmYxNjAyZjg5ZDAxY2RjM2VjMThkZDY3NGM5
OWEzZTcwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVt
L21hYy9DbG9ja0NNLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShDT1JFTUVESUEp
CisKKyNpbmNsdWRlICIuLi9DbG9jay5oIgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KKyNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJh
c2UqIENNVGltZWJhc2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVDTUNsb2NrKiBDTUNsb2Nr
UmVmOworCituYW1lc3BhY2UgUEFMIHsKKworY2xhc3MgQ2xvY2tDTSBmaW5hbCA6IHB1YmxpYyBD
bG9jayB7CitwdWJsaWM6CisgICAgQ2xvY2tDTSgpOworICAgIENsb2NrQ00oQ01DbG9ja1JlZik7
CisKKyAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgZG91Ymxl
IGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldEN1cnJlbnRNZWRp
YVRpbWUoY29uc3QgTWVkaWFUaW1lJik7CisgICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUo
KSBjb25zdDsKKworICAgIHZvaWQgc2V0UGxheVJhdGUoZG91YmxlKSBvdmVycmlkZTsKKyAgICBk
b3VibGUgcGxheVJhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JhdGU7IH0KKworICAg
IHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBi
b29sIGlzUnVubmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcnVubmluZzsgfQorCisg
ICAgQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZWJhc2UuZ2V0
KCk7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGluaXRpYWxpemVXaXRoVGltaW5nU291cmNlKENN
Q2xvY2tSZWYpOworCisgICAgUmV0YWluUHRyPENNVGltZWJhc2VSZWY+IG1fdGltZWJhc2U7Cisg
ICAgZG91YmxlIG1fcmF0ZTsKKyAgICBib29sIG1fcnVubmluZzsKK307CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvQ2xvY2tDTS5t
bSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9DbG9ja0NNLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmYzRkMDZlNzM5MGVlM2M1ZDNkOTFlNTQyNWYyOGE0MDk0NWMzZDEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvQ2xvY2tDTS5tbQpAQCAt
MCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFVTRShDT1JFTUVESUEpCisjaW1w
b3J0ICJDbG9ja0NNLmgiCisKKyNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZG
b3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBQQUw7CisKKy8vIEEgZGVmYXVsdCB0aW1lIHNjYWxlIG9mIDEwMDAgYWxsb3dzIG1p
bGxpLXNlY29uZCBDTVRpbWUgcHJlY2lzaW9uIHdpdGhvdXQgc2NhbGluZyB0aGUgdGltZWJhc2Uu
CitzdGF0aWMgY29uc3QgaW50MzJfdCBEZWZhdWx0VGltZVNjYWxlID0gMTAwMDsKKworc3RkOjp1
bmlxdWVfcHRyPENsb2NrPiBDbG9jazo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxDbG9ja0NNPigpOworfQorCitDbG9ja0NNOjpDbG9ja0NNKCkKKyAgICA6IG1fdGlt
ZWJhc2UoMCkKKyAgICAsIG1fcmF0ZSgxKQorICAgICwgbV9ydW5uaW5nKGZhbHNlKQoreworICAg
IENNQ2xvY2tSZWYgcmF3Q2xvY2tQdHIgPSAwOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBDTUF1
ZGlvQ2xvY2tDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJnJhd0Nsb2NrUHRyKTsKKyNlbHNl
CisgICAgQ01BdWRpb0RldmljZUNsb2NrQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEws
ICZyYXdDbG9ja1B0cik7CisjZW5kaWYKKyAgICBSZXRhaW5QdHI8Q01DbG9ja1JlZj4gY2xvY2sg
PSBhZG9wdENGKHJhd0Nsb2NrUHRyKTsKKyAgICBpbml0aWFsaXplV2l0aFRpbWluZ1NvdXJjZShj
bG9jay5nZXQoKSk7Cit9CisKK0Nsb2NrQ006OkNsb2NrQ00oQ01DbG9ja1JlZiBjbG9jaykKKyAg
ICA6IG1fdGltZWJhc2UoMCkKKyAgICAsIG1fcnVubmluZyhmYWxzZSkKK3sKKyAgICBpbml0aWFs
aXplV2l0aFRpbWluZ1NvdXJjZShjbG9jayk7Cit9CisKK3ZvaWQgQ2xvY2tDTTo6aW5pdGlhbGl6
ZVdpdGhUaW1pbmdTb3VyY2UoQ01DbG9ja1JlZiBjbG9jaykKK3sKKyAgICBDTVRpbWViYXNlUmVm
IHJhd1RpbWViYXNlUHRyID0gMDsKKyAgICBDTVRpbWViYXNlQ3JlYXRlV2l0aE1hc3RlckNsb2Nr
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGNsb2NrLCAmcmF3VGltZWJhc2VQdHIpOworICAgIG1fdGlt
ZWJhc2UgPSBhZG9wdENGKHJhd1RpbWViYXNlUHRyKTsKK30KKwordm9pZCBDbG9ja0NNOjpzZXRD
dXJyZW50VGltZShkb3VibGUgdGltZSkKK3sKKyAgICBDTVRpbWUgY21UaW1lID0gQ01UaW1lTWFr
ZVdpdGhTZWNvbmRzKHRpbWUsIERlZmF1bHRUaW1lU2NhbGUpOworICAgIENNVGltZWJhc2VTZXRU
aW1lKG1fdGltZWJhc2UuZ2V0KCksIGNtVGltZSk7Cit9CisKK2RvdWJsZSBDbG9ja0NNOjpjdXJy
ZW50VGltZSgpIGNvbnN0Cit7CisgICAgQ01UaW1lIGNtVGltZSA9IENNVGltZWJhc2VHZXRUaW1l
KG1fdGltZWJhc2UuZ2V0KCkpOworICAgIHJldHVybiBDTVRpbWVHZXRTZWNvbmRzKGNtVGltZSk7
Cit9CisKK3ZvaWQgQ2xvY2tDTTo6c2V0Q3VycmVudE1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUm
IHRpbWUpCit7CisgICAgQ01UaW1lYmFzZVNldFRpbWUobV90aW1lYmFzZS5nZXQoKSwgUEFMOjp0
b0NNVGltZSh0aW1lKSk7Cit9CisKK01lZGlhVGltZSBDbG9ja0NNOjpjdXJyZW50TWVkaWFUaW1l
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gUEFMOjp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGlt
ZShtX3RpbWViYXNlLmdldCgpKSk7Cit9CisKK3ZvaWQgQ2xvY2tDTTo6c2V0UGxheVJhdGUoZG91
YmxlIHJhdGUpCit7CisgICAgaWYgKG1fcmF0ZSA9PSByYXRlKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3JhdGUgPSByYXRlOworICAgIGlmIChtX3J1bm5pbmcpCisgICAgICAgIENNVGltZWJh
c2VTZXRSYXRlKG1fdGltZWJhc2UuZ2V0KCksIHJhdGUpOworfQorCit2b2lkIENsb2NrQ006OnN0
YXJ0KCkKK3sKKyAgICBpZiAobV9ydW5uaW5nKQorICAgICAgICByZXR1cm47CisgICAgbV9ydW5u
aW5nID0gdHJ1ZTsKKyAgICBDTVRpbWViYXNlU2V0UmF0ZShtX3RpbWViYXNlLmdldCgpLCBtX3Jh
dGUpOworfQorCit2b2lkIENsb2NrQ006OnN0b3AoKQoreworICAgIGlmICghbV9ydW5uaW5nKQor
ICAgICAgICByZXR1cm47CisgICAgbV9ydW5uaW5nID0gZmFsc2U7CisgICAgQ01UaW1lYmFzZVNl
dFJhdGUobV90aW1lYmFzZS5nZXQoKSwgMCk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBmMTQ0NWU2Mzcw
ZjA2ZTYzNWMzN2E5N2NhNjUwYThlZDQ4NmU2MjMuLmU3NjgzMDA2YzBiOTVhOGZiNGU3ZWFmOTc2
ZjFmNzMyY2I0NTRmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNzUsNyArNjM3NSw2IEBACiAJCUNEQTk4RTA0MTYwMzlF
MUEwMEZFQTNCMSAvKiBKU1dlYktpdE1lZGlhS2V5cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE5OERDRTE2MDE1OTc5MDBGRUEzQjEgLyogSlNX
ZWJLaXRNZWRpYUtleXMuY3BwICovOyB9OwogCQlDREE5OEUwNjE2MDM5RTFGMDBGRUEzQjEgLyog
SlNXZWJLaXRNZWRpYUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RBOThERDAxNjAxNTk3OTAwRkVBM0IxIC8qIEpTV2ViS2l0TWVk
aWFLZXlTZXNzaW9uLmNwcCAqLzsgfTsKIAkJQ0RBOThFMEIxNjAzQ0Q2MDAwRkVBM0IxIC8qIExl
Z2FjeUNETS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREE5OEUwOTE2MDNDRDU5MDBGRUEzQjEgLyogTGVnYWN5Q0RNLmNwcCAqLzsgfTsKLQkJQ0RB
QThEMEExNEQ3MUIyRTAwNjFFQTYwIC8qIFBsYXRmb3JtQ2xvY2tDTS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUE4RDA4MTREMzg1NjAwMDYxRUE2
MCAvKiBQbGF0Zm9ybUNsb2NrQ00ubW0gKi87IH07CiAJCUNEQUI2RDI4MTdDN0RFNkMwMEM2MEIz
NCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREFCNkQyNjE3QzdERTZDMDBDNjBCMzQgLyogTWVkaWFDb250cm9s
c0hvc3QuY3BwICovOyB9OwogCQlDREFCNkQyOTE3QzdERTZDMDBDNjBCMzQgLyogTWVkaWFDb250
cm9sc0hvc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEQUI2RDI3MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5oICovOyB9Owog
CQlDREFCNkQyRDE3QzgxNEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFCNkQyQjE3Qzgx
NEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5jcHAgKi87IH07CkBAIC02NDM2LDkg
KzY0MzUsNiBAQAogCQlDREU4QjVFRDFBNjk3NzczMDBCNEI2NkEgLyogTGVnYWN5Q0RNUHJpdmF0
ZUNsZWFyS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREU4QjVFQjFBNjk3NzczMDBCNEI2NkEgLyogTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5Lmgg
Ki87IH07CiAJCUNERThCNUYwMUE2OTc3OEIwMEI0QjY2QSAvKiBMZWdhY3lDRE1TZXNzaW9uQ2xl
YXJLZXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFOEI1RUUxQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2FjeUNETVNlc3Npb25DbGVhcktleS5jcHAg
Ki87IH07CiAJCUNERThCNUYxMUE2OTc3OEIwMEI0QjY2QSAvKiBMZWdhY3lDRE1TZXNzaW9uQ2xl
YXJLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
RThCNUVGMUE2OTc3OEIwMEI0QjY2QSAvKiBMZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuaCAqLzsg
fTsKLQkJQ0RFQTc2MzAxNDYwOEE1MzAwOEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBNzYyRTE0NjA4
NERFMDA4QjMxRjEgLyogUGxhdGZvcm1DbG9ja0NBLmNwcCAqLzsgfTsKLQkJQ0RFQTc2MzQxNDYw
QjU2RjAwOEIzMUYxIC8qIENsb2NrR2VuZXJpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBNzYzMjE0NjBBRTI5MDA4QjMxRjEgLyogQ2xvY2tH
ZW5lcmljLmNwcCAqLzsgfTsKLQkJQ0RFQTc2MzUxNDYwQjcxQTAwOEIzMUYxIC8qIENsb2NrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUE3NjMz
MTQ2MEI0NjIwMDhCMzFGMSAvKiBDbG9jay5jcHAgKi87IH07CiAJCUNERUE3Qzg0MTI3NjIzMDQw
MEI4NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBN0M4MjEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVs
bFNjcmVlbi5oICovOyB9OwogCQlDREVBN0M4NTEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVs
bFNjcmVlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi87IH07
CiAJCUNERUNBODlBMUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVDQTg5ODFF
REY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovOyB9OwpAQCAtMTUx
MjksOCArMTUxMjUsNiBAQAogCQlDREE5OEUwOTE2MDNDRDU5MDBGRUEzQjEgLyogTGVnYWN5Q0RN
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeUNETS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQTk4RTBBMTYwM0NENTkwMEZFQTNCMSAvKiBMZWdhY3lDRE0uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTGVnYWN5Q0RNLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
QTk4RTBDMTYwM0NGM0MwMEZFQTNCMSAvKiBMZWdhY3lDRE1Qcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeUNETVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQ0RBQThEMDcxNEQzODU2MDAwNjFFQTYwIC8qIFBsYXRmb3JtQ2xvY2tD
TS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNsb2NrQ00uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RBQThEMDgxNEQzODU2MDAwNjFFQTYwIC8q
IFBsYXRmb3JtQ2xvY2tDTS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFBsYXRmb3JtQ2xvY2tDTS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RB
QUY0NUQxODY5MDk0RTAwM0MxNzE3IC8qIG1lZGlhQ29udHJvbHNpT1MuY3NzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5jc3M7IHBhdGggPSBtZWRpYUNvbnRyb2xzaU9TLmNzczsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RBQjZEMjUxN0M3REU1NzAwQzYwQjM0IC8qIE1lZGlhQ29udHJvbHNIb3N0
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBNZWRpYUNvbnRyb2xzSG9zdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEQUI2RDI2MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUNvbnRyb2xzSG9zdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTIwNiwxMiArMTUyMDAsNiBAQAog
CQlDREU4QjVFQjFBNjk3NzczMDBCNEI2NkEgLyogTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeUNETVByaXZhdGVDbGVhcktl
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREU4QjVFRTFBNjk3NzhCMDBCNEI2
NkEgLyogTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExlZ2FjeUNETVNlc3Npb25DbGVhcktleS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNERThCNUVGMUE2OTc3OEIwMEI0QjY2QSAvKiBMZWdhY3lDRE1T
ZXNzaW9uQ2xlYXJLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5
Q0RNU2Vzc2lvbkNsZWFyS2V5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNERUE3
NjJDMTQ2MDgyMjQwMDhCMzFGMSAvKiBDbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREVBNzYyRTE0
NjA4NERFMDA4QjMxRjEgLyogUGxhdGZvcm1DbG9ja0NBLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtQ2xvY2tDQS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUNERUE3NjJGMTQ2MDg0RUUwMDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0Eu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DbG9ja0NBLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNERUE3NjMxMTQ2MEFFMUIwMDhCMzFGMSAvKiBD
bG9ja0dlbmVyaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xvY2tHZW5l
cmljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNERUE3NjMyMTQ2MEFFMjkwMDhC
MzFGMSAvKiBDbG9ja0dlbmVyaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ2xvY2tHZW5lcmljLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RF
QTc2MzMxNDYwQjQ2MjAwOEIzMUYxIC8qIENsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENsb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRnVsbFNjcmVlbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNj
cmVlbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJGdWxs
U2NyZWVuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQ0E4OTgxRURGNDQ3
RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE5NTY0LDEwICsxOTU1Miw2IEBACiAJCQkJNEIyNzA5ODEwQUYyRTVFMDAwNjUxMjdGIC8q
IFBhc3RlYm9hcmRNYWMubW0gKi8sCiAJCQkJMUFGNUU0RTExRTU3NzlCMTAwNEExRjAxIC8qIFBh
c3RlYm9hcmRXcml0ZXIuaCAqLywKIAkJCQkxQUY1RTRFMDFFNTc3OUIxMDA0QTFGMDEgLyogUGFz
dGVib2FyZFdyaXRlci5tbSAqLywKLQkJCQlDREVBNzYyRTE0NjA4NERFMDA4QjMxRjEgLyogUGxh
dGZvcm1DbG9ja0NBLmNwcCAqLywKLQkJCQlDREVBNzYyRjE0NjA4NEVFMDA4QjMxRjEgLyogUGxh
dGZvcm1DbG9ja0NBLmggKi8sCi0JCQkJQ0RBQThEMDcxNEQzODU2MDAwNjFFQTYwIC8qIFBsYXRm
b3JtQ2xvY2tDTS5oICovLAotCQkJCUNEQUE4RDA4MTREMzg1NjAwMDYxRUE2MCAvKiBQbGF0Zm9y
bUNsb2NrQ00ubW0gKi8sCiAJCQkJQkNBQTQ4NkUxNEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLmggKi8sCiAJCQkJQkNBQTQ4NkQxNEEwNTI1MzAwODhGQUM0IC8qIFBs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tICovLAogCQkJCUM1Rjc2NUJBMTRFMUVDRjQwMDZDODk5
QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0gKi8sCkBAIC0yNDU3MCwxMCArMjQ1NTQsNiBA
QAogCQkJCUIyQzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAogCQkJCTQ5QUUyRDk0
MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVlLmNwcCAqLywKIAkJCQk0OUFFMkQ5
NTEzNEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1ZS5oICovLAotCQkJCUNERUE3NjMz
MTQ2MEI0NjIwMDhCMzFGMSAvKiBDbG9jay5jcHAgKi8sCi0JCQkJQ0RFQTc2MkMxNDYwODIyNDAw
OEIzMUYxIC8qIENsb2NrLmggKi8sCi0JCQkJQ0RFQTc2MzIxNDYwQUUyOTAwOEIzMUYxIC8qIENs
b2NrR2VuZXJpYy5jcHAgKi8sCi0JCQkJQ0RFQTc2MzExNDYwQUUxQjAwOEIzMUYxIC8qIENsb2Nr
R2VuZXJpYy5oICovLAogCQkJCUMzMzBBMjIxMTNFQzE5NkIwMDAwQjQ1QiAvKiBDb2xvckNob29z
ZXIuaCAqLywKIAkJCQlDMzdDREVCQzE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xp
ZW50LmggKi8sCiAJCQkJQkNDOENGQ0EwOTg2Q0QyNDAwMTQwQkYyIC8qIENvbG9yRGF0YS5ncGVy
ZiAqLywKQEAgLTMxNDQyLDggKzMxNDIyLDYgQEAKIAkJCQk4MzQ4QkZBQjFCODU3Mjk4MDA5MTJG
MzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjNGMEE0
NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
ODAzNzE2MTFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQ0RFQTc2MzUxNDYwQjcxQTAwOEIzMUYxIC8qIENsb2NrLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUNERUE3NjM0MTQ2MEI1NkYwMDhCMzFGMSAvKiBDbG9ja0dlbmVyaWMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOUJEOEE5NUExOEJFRkM3NjAwOTg3RTlBIC8qIENvbGxlY3Rpb25JbmRleENh
Y2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTY2MEIwNTM4MTQwMDJDRTY0RiAvKiBD
b2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNGMzMyNDBGMkI5NzE1MDA0QjY3OTUgLyog
Q29sb3JDRy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMzNTQ4LDggKzMzNTI2LDYgQEAKIAkJCQkw
RjEzMTY0MDE2RUQwQ0RFMDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnNDb2NvYS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTJENzBCQTE1MTgwNzRGODYwMDAxOTA4QSAvKiBQbGF0Zm9ybUNBTGF5
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk1ODc4MjIxMkE1N0RERjAwNzIzOEFDIC8qIFBs
YXRmb3JtQ0FMYXllckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RFQTc2MzAxNDYwOEE1
MzAwOEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREFB
OEQwQTE0RDcxQjJFMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMjY2MDFFQzAxNEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9T
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBQTQ4NkYxNEEwNTI1MzAwODhGQUM0IC8qIFBsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU0NEY3ODgxNUNGQjJB
ODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCmluZGV4IDQ5NDBhNzk2NGI2NGI3NDdjMmMxODc3
OGIzNDRkM2E0NTc3M2YxYmMuLmU0ZmE2MGQwN2IzM2U5YmNhMDk2OTM3MzY3MTQ0ZjYwYzc3MmIz
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKQEAgLTI4LDEwICsy
OCwxMCBAQAogI2lmIEVOQUJMRShWSURFTykKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXIuaCIK
IAotI2luY2x1ZGUgIkNsb2NrLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSA8
cGFsL3N5c3RlbS9DbG9jay5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
QEAgLTU1LDcgKzU1LDcgQEAgTWVkaWFDb250cm9sbGVyOjpNZWRpYUNvbnRyb2xsZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICAsIG1fYXN5bmNFdmVudFRpbWVyKCp0aGlz
LCAmTWVkaWFDb250cm9sbGVyOjphc3luY0V2ZW50VGltZXJGaXJlZCkKICAgICAsIG1fY2xlYXJQ
b3NpdGlvblRpbWVyKCp0aGlzLCAmTWVkaWFDb250cm9sbGVyOjpjbGVhclBvc2l0aW9uVGltZXJG
aXJlZCkKICAgICAsIG1fY2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGZhbHNlKQotICAgICwgbV9jbG9j
ayhDbG9jazo6Y3JlYXRlKCkpCisgICAgLCBtX2Nsb2NrKFBBTDo6Q2xvY2s6OmNyZWF0ZSgpKQog
ICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiAgICAgLCBtX3RpbWV1cGRh
dGVUaW1lcigqdGhpcywgJk1lZGlhQ29udHJvbGxlcjo6c2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuaAppbmRleCBhOTE5MjQ4MTdjNTE0
ZWJjODAwZmNjODBjYTVkMDNlYzdhOGE2MGJkLi43MzhjYjU0MTRjY2MwMTY2ODdhMGNjY2JlMjU0
YWJjYTRkN2ExN2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmgKQEAgLTMz
LDkgKzMzLDEyIEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgQ2xvY2s7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgQ2xvY2s7CiBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OwogCiBjbGFzcyBNZWRp
YUNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUNvbnRyb2xsZXI+LCBw
dWJsaWMgTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YSB7CkBAIC0xNDIsNyArMTQ1LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFRpbWVy
IG1fY2xlYXJQb3NpdGlvblRpbWVyOwogICAgIFN0cmluZyBtX21lZGlhR3JvdXA7CiAgICAgYm9v
bCBtX2Nsb3NlZENhcHRpb25zVmlzaWJsZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2xvY2s+IG1f
Y2xvY2s7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBBTDo6Q2xvY2s+IG1fY2xvY2s7CiAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogICAgIFRpbWVy
IG1fdGltZXVwZGF0ZVRpbWVyOwogICAgIE1vbm90b25pY1RpbWUgbV9wcmV2aW91c1RpbWV1cGRh
dGVUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2suY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4ZWQxYWRlOGNkOGQzZWI5YmE0NjVlZmU0ZjVlYTM5YmQ0MjY3NzcwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0Nsb2NrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJDbG9jay5oIgotCi0jaWYgVVNFKENPUkVNRURJQSkKLSAgICAjaW5jbHVk
ZSAiUGxhdGZvcm1DbG9ja0NNLmgiCi0jZWxpZiBVU0UoQ09SRUFVRElPKQotICAgICNpbmNsdWRl
ICJQbGF0Zm9ybUNsb2NrQ0EuaCIKLSNlbHNlCi0gICAgI2luY2x1ZGUgIkNsb2NrR2VuZXJpYy5o
IgotI2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1zdGQ6OnVuaXF1ZV9wdHI8
Q2xvY2s+IENsb2NrOjpjcmVhdGUoKQotewotI2lmIFVTRShDT1JFTUVESUEpCi0gICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1DbG9ja0NNPigpOwotI2VsaWYgVVNFKENPUkVBVURJ
TykKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUNsb2NrQ0E+KCk7Ci0jZWxz
ZQotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENsb2NrR2VuZXJpYz4oKTsKLSNlbmRpZgot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nsb2NrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3
ZjQyZTQyYjAzYWExYTkwZGE1NDcxZDAyNDM5MTg3ZWEwMDk0YzYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xv
Y2suaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgQ2xvY2tfaAotI2RlZmluZSBDbG9j
a19oCi0KLSNpbmNsdWRlIDxtZW1vcnk+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
Q2xvY2sgewotcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q2xvY2s+IGNyZWF0
ZSgpOwotICAgIHZpcnR1YWwgfkNsb2NrKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vy
cmVudFRpbWUoZG91YmxlKSA9IDA7Ci0gICAgdmlydHVhbCBkb3VibGUgY3VycmVudFRpbWUoKSBj
b25zdCA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGxheVJhdGUoZG91YmxlKSA9IDA7Ci0g
ICAgdmlydHVhbCBkb3VibGUgcGxheVJhdGUoKSBjb25zdCA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgc3RhcnQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7Ci0gICAgdmlydHVh
bCBib29sIGlzUnVubmluZygpIGNvbnN0ID0gMDsKLQotcHJvdGVjdGVkOgotICAgIENsb2NrKCkg
eyB9Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ2xvY2tHZW5lcmljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nsb2NrR2VuZXJp
Yy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1YTRiOTQzNTFjYzlhNmI4OTRm
Y2IwZDYzNDhlODJjMzkwMTYzZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2tHZW5lcmljLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDbG9ja0dl
bmVyaWMuaCIKLQotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLQotQ2xvY2tHZW5lcmljOjpDbG9ja0dlbmVyaWMoKQotICAgIDogbV9ydW5u
aW5nKGZhbHNlKQotICAgICwgbV9yYXRlKDEpCi0gICAgLCBtX29mZnNldCgwKQotewotICAgIG1f
c3RhcnRUaW1lID0gbV9sYXN0VGltZSA9IG5vdygpOwotfQotCi12b2lkIENsb2NrR2VuZXJpYzo6
c2V0Q3VycmVudFRpbWUoZG91YmxlIHRpbWUpCi17Ci0gICAgbV9zdGFydFRpbWUgPSBtX2xhc3RU
aW1lID0gbm93KCk7Ci0gICAgbV9vZmZzZXQgPSB0aW1lOwotfQotCi1kb3VibGUgQ2xvY2tHZW5l
cmljOjpjdXJyZW50VGltZSgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fcnVubmluZykKLSAgICAgICAg
bV9sYXN0VGltZSA9IG5vdygpOwotICAgIHJldHVybiAoKG1fbGFzdFRpbWUgLSBtX3N0YXJ0VGlt
ZSkgKiBtX3JhdGUpICsgbV9vZmZzZXQ7Ci19Ci0KLXZvaWQgQ2xvY2tHZW5lcmljOjpzZXRQbGF5
UmF0ZShkb3VibGUgcmF0ZSkKLXsKLSAgICBtX29mZnNldCA9IGN1cnJlbnRUaW1lKCk7Ci0gICAg
bV9sYXN0VGltZSA9IG1fc3RhcnRUaW1lID0gbm93KCk7Ci0gICAgbV9yYXRlID0gcmF0ZTsKLX0K
LQotdm9pZCBDbG9ja0dlbmVyaWM6OnN0YXJ0KCkKLXsKLSAgICBpZiAobV9ydW5uaW5nKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX2xhc3RUaW1lID0gbV9zdGFydFRpbWUgPSBub3coKTsKLSAg
ICBtX3J1bm5pbmcgPSB0cnVlOwotfQotCi12b2lkIENsb2NrR2VuZXJpYzo6c3RvcCgpCi17Ci0g
ICAgaWYgKCFtX3J1bm5pbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fb2Zmc2V0ID0gY3Vy
cmVudFRpbWUoKTsKLSAgICBtX2xhc3RUaW1lID0gbV9zdGFydFRpbWUgPSBub3coKTsKLSAgICBt
X3J1bm5pbmcgPSBmYWxzZTsKLX0KLQotZG91YmxlIENsb2NrR2VuZXJpYzo6bm93KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0Nsb2NrR2VuZXJpYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmY2UzNjc0OTNiMjc1YTYyNTNiMTM4OGY1MGEzZWZkNmQyYWU1Y2U1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0Nsb2NrR2VuZXJpYy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENsb2NrR2VuZXJp
Y19oCi0jZGVmaW5lIENsb2NrR2VuZXJpY19oCi0KLSNpbmNsdWRlICJDbG9jay5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENsb2NrR2VuZXJpYyBmaW5hbCA6IHB1YmxpYyBDbG9j
ayB7Ci1wdWJsaWM6Ci0gICAgQ2xvY2tHZW5lcmljKCk7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBz
ZXRDdXJyZW50VGltZShkb3VibGUpIG92ZXJyaWRlOwotICAgIGRvdWJsZSBjdXJyZW50VGltZSgp
IGNvbnN0IG92ZXJyaWRlOwotCi0gICAgdm9pZCBzZXRQbGF5UmF0ZShkb3VibGUpIG92ZXJyaWRl
OwotICAgIGRvdWJsZSBwbGF5UmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmF0ZTsg
fQotCi0gICAgdm9pZCBzdGFydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRl
OwotICAgIGJvb2wgaXNSdW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ydW5uaW5n
OyB9Ci0KLSAgICBkb3VibGUgbm93KCkgY29uc3Q7Ci0KLSAgICBib29sIG1fcnVubmluZzsKLSAg
ICBkb3VibGUgbV9yYXRlOwotICAgIGRvdWJsZSBtX29mZnNldDsKLSAgICBkb3VibGUgbV9zdGFy
dFRpbWU7Ci0gICAgbXV0YWJsZSBkb3VibGUgbV9sYXN0VGltZTsKLX07Ci0KLX0KLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggYzNiM2M3ZmM5NDlmYTkyMWEyZWVjNDU4
ZDNmZDRhNmJhOTUyODRmMS4uNzI2MzU4NDFjNmZhOTExZmI3ODk5OWVlZGM3NDJjMzhkNWRkNTMx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMzgsNyArMzgsNiBAQAogI2ltcG9y
dCAiTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oIgogI2ltcG9ydCAiTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50LmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCi0jaW1wb3J0
ICJQbGF0Zm9ybUNsb2NrQ00uaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgi
CiAjaW1wb3J0ICJUZXh0dXJlQ2FjaGVDVi5oIgogI2ltcG9ydCAiVmlkZW9UZXh0dXJlQ29waWVy
Q1YuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXggYzE1MWM3MjUxZjI2ZTkwMWViYmQ1
NTI5NWI4N2QwMWU1NWY1ZTViYi4uMjE0YTJkZDc1NzM5ZGNiYzI1ZGIxOGU3MmYyZmQwMmQ1Mjg1
MTA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTQ0LDExICs0NCwxNCBAQCBPQkpD
X0NMQVNTIE5TTnVtYmVyOwogT0JKQ19DTEFTUyBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5n
ZUxpc3RlbmVyOwogdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNNU2FtcGxl
QnVmZmVyUmVmOwogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIENsb2NrOworfQorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1Db2NvYTsK
IGNsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNlOwotY2xhc3MgQ2xvY2s7CiBjbGFzcyBNZWRpYVNv
dXJjZVByaXZhdGVDbGllbnQ7CiBjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogY2xhc3Mg
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTsKQEAgLTIyOSw3ICsyMzIsNyBAQCBwcml2YXRl
OgogICAgIFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyPiBt
X3N0YXR1c0NoYW5nZUxpc3RlbmVyOwogICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CiAgICAgUmV0YWluUHRyPFBsYXRm
b3JtTGF5ZXI+IG1fYmFja2dyb3VuZExheWVyOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4g
bV9jbG9jazsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpDbG9jaz4gbV9jbG9jazsKIAogICAg
IE1lZGlhVGltZSBtX3BhdXNlZFRpbWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRl
eCAxY2Q0NzA5MTcwZWIxNjgwNWZlN2Q0MzczZWJlZTMzZjJlYjgxMGNlLi4yNjRiOTUyZjk4NmZh
YTdlODY4NTUxNzhlMmM2OTI2NjQxNDU3NjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
CkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9V
TkRBVElPTikKIAogI2ltcG9ydCAiQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNvY29hLmgi
Ci0jaW1wb3J0ICJDbG9jay5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgpAQCAtNDEsNiAr
NDAsNyBAQAogI2ltcG9ydCA8b2JqY19ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvYXZmb3VuZGF0
aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvQVZGb3Vu
ZGF0aW9uU1BJLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL0Nsb2NrLmg+CiAjaW1wb3J0IDx3dGYv
RnVuY3Rpb24uaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHJl
bmRlcmVyTGF0ZW5jeSA9IDAuMDI7CiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyhNZWRpYVBsYXllciogcGxh
eWVyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9zdGF0dXNDaGFuZ2VMaXN0ZW5l
cihhZG9wdE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBhbGxvY10g
aW5pdFdpdGhQYXJlbnQ6dGhpc10pKQotICAgICwgbV9jbG9jayhDbG9jazo6Y3JlYXRlKCkpCisg
ICAgLCBtX2Nsb2NrKFBBTDo6Q2xvY2s6OmNyZWF0ZSgpKQogI2lmIFBMQVRGT1JNKElPUykgfHwg
KFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICAs
IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdl
cjo6Y3JlYXRlKCkpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUNsb2NrQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtQ2xvY2tDQS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhZjEyN2Fl
MDYyNGJjODNiMjViNmNkOGE2NzA5NjY0OTc5MzI3OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRm
b3JtQ2xvY2tDQS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBVU0UoQ09SRUFVRElPKQotCi0jaW5jbHVkZSAiUGxhdGZvcm1DbG9ja0NBLmgiCi0K
LSNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQ29yZUF1ZGlvQ2xvY2suaD4KLSNpbmNsdWRlIDxDb3Jl
QXVkaW8vQXVkaW9IYXJkd2FyZS5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUGxh
dGZvcm1DbG9ja0NBOjpQbGF0Zm9ybUNsb2NrQ0EoKQotICAgIDogbV9jbG9jaygwKQotICAgICwg
bV9ydW5uaW5nKGZhbHNlKQotewotICAgIENBQ2xvY2tOZXcoMCwgJm1fY2xvY2spOwotICAgIFVJ
bnQzMiB0aW1lYmFzZSA9IGtDQUNsb2NrVGltZWJhc2VfQXVkaW9EZXZpY2U7Ci0gICAgVUludDMy
IHRpbWViYXNlU2l6ZSA9IHNpemVvZih0aW1lYmFzZSk7Ci0gICAgQ0FDbG9ja1NldFByb3BlcnR5
KG1fY2xvY2ssIGtDQUNsb2NrUHJvcGVydHlfSW50ZXJuYWxUaW1lYmFzZSwgdGltZWJhc2VTaXpl
LCAmdGltZWJhc2UpOwotCi0gICAgQXVkaW9PYmplY3RJRCBkZWZhdWx0QXVkaW9PdXRwdXQgPSAw
OwotICAgIFVJbnQzMiBkZWZhdWx0QXVkaW9PdXRwdXRTaXplID0gc2l6ZW9mKGRlZmF1bHRBdWRp
b091dHB1dCk7Ci0KLSAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBhZGRyZXNzOwotICAg
IGFkZHJlc3MubVNlbGVjdG9yID0ga0F1ZGlvSGFyZHdhcmVQcm9wZXJ0eURlZmF1bHRPdXRwdXRE
ZXZpY2U7Ci0gICAgYWRkcmVzcy5tU2NvcGUgICAgPSBrQXVkaW9PYmplY3RQcm9wZXJ0eVNjb3Bl
R2xvYmFsOwotICAgIGFkZHJlc3MubUVsZW1lbnQgID0ga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVt
ZW50TWFzdGVyOwotCi0gICAgQXVkaW9PYmplY3RHZXRQcm9wZXJ0eURhdGEoa0F1ZGlvT2JqZWN0
U3lzdGVtT2JqZWN0LCAmYWRkcmVzcywgMCwgMCwgJmRlZmF1bHRBdWRpb091dHB1dFNpemUsICZk
ZWZhdWx0QXVkaW9PdXRwdXQpOwotICAgIENBQ2xvY2tTZXRQcm9wZXJ0eShtX2Nsb2NrLCBrQ0FD
bG9ja1Byb3BlcnR5X1RpbWViYXNlU291cmNlLCBkZWZhdWx0QXVkaW9PdXRwdXRTaXplLCAmZGVm
YXVsdEF1ZGlvT3V0cHV0KTsKLX0KLQotUGxhdGZvcm1DbG9ja0NBOjp+UGxhdGZvcm1DbG9ja0NB
KCkKLXsKLSAgICBDQUNsb2NrRGlzcG9zZShtX2Nsb2NrKTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNs
b2NrQ0E6OnNldEN1cnJlbnRUaW1lKGRvdWJsZSB0aW1lKQotewotICAgIGlmIChtX3J1bm5pbmcp
Ci0gICAgICAgIENBQ2xvY2tTdG9wKG1fY2xvY2spOwotICAgIENBQ2xvY2tUaW1lIGNhVGltZTsK
LSAgICBjYVRpbWUuZm9ybWF0ID0ga0NBQ2xvY2tUaW1lRm9ybWF0X1NlY29uZHM7Ci0gICAgY2FU
aW1lLnRpbWUuc2Vjb25kcyA9IHRpbWU7Ci0gICAgQ0FDbG9ja1NldEN1cnJlbnRUaW1lKG1fY2xv
Y2ssICZjYVRpbWUpOwotICAgIGlmIChtX3J1bm5pbmcpCi0gICAgICAgIENBQ2xvY2tTdGFydCht
X2Nsb2NrKTsKLX0KLQotZG91YmxlIFBsYXRmb3JtQ2xvY2tDQTo6Y3VycmVudFRpbWUoKSBjb25z
dAotewotICAgIENBQ2xvY2tUaW1lIGNhVGltZTsKLQotICAgIC8vIENBQ2xvY2sgZG9lcyBub3Qg
cmV0dXJuIHRoZSBjb3JyZWN0IGN1cnJlbnQgdGltZSB3aGVuIHN0b3BwZWQuIEluc3RlYWQsIHF1
ZXJ5IGZvcgotICAgIC8vIHdoYXQgaXMgdGhlIHN0YXJ0IHRpbWUsIGkuZS4gd2hhdCB0aGUgY3Vy
cmVudCB0aW1lIHdpbGwgYmUgd2hlbiBzdGFydGVkLgotICAgIGlmIChtX3J1bm5pbmcpIHsKLSAg
ICAgICAgaWYgKENBQ2xvY2tHZXRDdXJyZW50VGltZShtX2Nsb2NrLCBrQ0FDbG9ja1RpbWVGb3Jt
YXRfU2Vjb25kcywgJmNhVGltZSkgPT0gbm9FcnIpCi0gICAgICAgICAgICByZXR1cm4gY2FUaW1l
LnRpbWUuc2Vjb25kczsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoQ0FDbG9ja0dldFN0YXJ0
VGltZShtX2Nsb2NrLCBrQ0FDbG9ja1RpbWVGb3JtYXRfU2Vjb25kcywgJmNhVGltZSkgPT0gbm9F
cnIpCi0gICAgICAgICAgICByZXR1cm4gY2FUaW1lLnRpbWUuc2Vjb25kczsKLSAgICB9Ci0gICAg
cmV0dXJuIDA7Ci19Ci0KLXZvaWQgUGxhdGZvcm1DbG9ja0NBOjpzZXRQbGF5UmF0ZShkb3VibGUg
cmF0ZSkKLXsKLSAgICBDQUNsb2NrU2V0UGxheVJhdGUobV9jbG9jaywgcmF0ZSk7Ci19Ci0KLWRv
dWJsZSBQbGF0Zm9ybUNsb2NrQ0E6OlBsYXRmb3JtQ2xvY2tDQTo6cGxheVJhdGUoKSBjb25zdAot
ewotICAgIGRvdWJsZSByYXRlID0gMDsKLSAgICBpZiAoQ0FDbG9ja0dldFBsYXlSYXRlKG1fY2xv
Y2ssICZyYXRlKSA9PSBub0VycikKLSAgICAgICAgcmV0dXJuIHJhdGU7Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLXZvaWQgUGxhdGZvcm1DbG9ja0NBOjpzdGFydCgpCi17Ci0gICAgaWYgKG1fcnVubmlu
ZykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fcnVubmluZyA9IHRydWU7Ci0gICAgQ0FDbG9ja1N0
YXJ0KG1fY2xvY2spOwotfQotCi12b2lkIFBsYXRmb3JtQ2xvY2tDQTo6c3RvcCgpCi17Ci0gICAg
aWYgKCFtX3J1bm5pbmcpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3J1bm5pbmcgPSBmYWxzZTsK
LSAgICBDQUNsb2NrU3RvcChtX2Nsb2NrKTsKLX0KLQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ0EuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ0EuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYTA0YjkwYzk2YmM3NjhiYWY2ZTMzY2ZlMzliYTYwMTczY2Y4NmI4NC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgUGxhdGZvcm1DbG9ja0NBX2gKLSNkZWZpbmUgUGxhdGZvcm1DbG9ja0NBX2gKLQotI2lmIFVT
RShDT1JFQVVESU8pCi0KLSNpbmNsdWRlICJDbG9jay5oIgotCi10eXBlZGVmIHN0cnVjdCBPcGFx
dWVDQUNsb2NrICpDQUNsb2NrUmVmOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFBs
YXRmb3JtQ2xvY2tDQSBmaW5hbCA6IHB1YmxpYyBDbG9jayB7Ci1wdWJsaWM6Ci0gICAgUGxhdGZv
cm1DbG9ja0NBKCk7Ci0gICAgdmlydHVhbCB+UGxhdGZvcm1DbG9ja0NBKCk7Ci0KLXByaXZhdGU6
Ci0gICAgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUpIG92ZXJyaWRlOwotICAgIGRvdWJsZSBj
dXJyZW50VGltZSgpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgdm9pZCBzZXRQbGF5UmF0ZShkb3Vi
bGUpIG92ZXJyaWRlOwotICAgIGRvdWJsZSBwbGF5UmF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotCi0g
ICAgdm9pZCBzdGFydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAg
IGJvb2wgaXNSdW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ydW5uaW5nOyB9Ci0K
LSAgICBDQUNsb2NrUmVmIG1fY2xvY2s7Ci0gICAgYm9vbCBtX3J1bm5pbmc7Ci19OwotCi19Ci0K
LSNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybUNsb2NrQ00uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUNsb2NrQ00uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU2ODdkODhiZjM2YjM0
ZTAyOGY5Mjg1MDA1ZjY0Mzc3ODliYTIzYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9j
a0NNLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGxhdGZvcm1DbG9ja0NNX2gKLSNk
ZWZpbmUgUGxhdGZvcm1DbG9ja0NNX2gKLQotI2lmIFVTRShDT1JFTUVESUEpCi0KLSNpbmNsdWRl
ICJDbG9jay5oIgotI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+Ci0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJhc2VS
ZWY7Ci10eXBlZGVmIHN0cnVjdCBPcGFxdWVDTUNsb2NrKiBDTUNsb2NrUmVmOwotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFBsYXRmb3JtQ2xvY2tDTSBmaW5hbCA6IHB1YmxpYyBDbG9j
ayB7Ci1wdWJsaWM6Ci0gICAgUGxhdGZvcm1DbG9ja0NNKCk7Ci0gICAgUGxhdGZvcm1DbG9ja0NN
KENNQ2xvY2tSZWYpOwotCi0gICAgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUpIG92ZXJyaWRl
OwotICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgdm9pZCBz
ZXRDdXJyZW50TWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYpOwotICAgIE1lZGlhVGltZSBjdXJy
ZW50TWVkaWFUaW1lKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHNldFBsYXlSYXRlKGRvdWJsZSkgb3Zl
cnJpZGU7Ci0gICAgZG91YmxlIHBsYXlSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9y
YXRlOyB9Ci0KLSAgICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wKCkgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3J1
bm5pbmc7IH0KLQotICAgIENNVGltZWJhc2VSZWYgdGltZWJhc2UoKSBjb25zdCB7IHJldHVybiBt
X3RpbWViYXNlLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBpbml0aWFsaXplV2l0aFRp
bWluZ1NvdXJjZShDTUNsb2NrUmVmKTsKLQotICAgIFJldGFpblB0cjxDTVRpbWViYXNlUmVmPiBt
X3RpbWViYXNlOwotICAgIGRvdWJsZSBtX3JhdGU7Ci0gICAgYm9vbCBtX3J1bm5pbmc7Ci19Owot
Ci19Ci0KLSNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybUNsb2NrQ00ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1DbG9ja0NNLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTQ4NWRh
OGQ0MWJhY2I1ZDc5MDg5ZGViZGQzYzAxZjFhMDcyZjEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUNsb2NrQ00ubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLQotI2lmIFVTRShDT1JFTUVESUEpCi0KLSNpbXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5o
IgotCi0jaW1wb3J0IDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgot
Ci0jaW1wb3J0ICJDb3JlTWVkaWFTb2Z0TGluay5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotLy8gQSBkZWZhdWx0IHRpbWUgc2NhbGUgb2YgMTAwMCBhbGxvd3MgbWlsbGktc2Vjb25k
IENNVGltZSBwcmVjaXNpb24gd2l0aG91dCBzY2FsaW5nIHRoZSB0aW1lYmFzZS4KLXN0YXRpYyBj
b25zdCBpbnQzMl90IERlZmF1bHRUaW1lU2NhbGUgPSAxMDAwOwotCi1QbGF0Zm9ybUNsb2NrQ006
OlBsYXRmb3JtQ2xvY2tDTSgpCi0gICAgOiBtX3RpbWViYXNlKDApCi0gICAgLCBtX3JhdGUoMSkK
LSAgICAsIG1fcnVubmluZyhmYWxzZSkKLXsKLSAgICBDTUNsb2NrUmVmIHJhd0Nsb2NrUHRyID0g
MDsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgQ01BdWRpb0Nsb2NrQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsICZyYXdDbG9ja1B0cik7Ci0jZWxzZQotICAgIENNQXVkaW9EZXZpY2VDbG9ja0Ny
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAmcmF3Q2xvY2tQdHIpOwotI2VuZGlmCi0g
ICAgUmV0YWluUHRyPENNQ2xvY2tSZWY+IGNsb2NrID0gYWRvcHRDRihyYXdDbG9ja1B0cik7Ci0g
ICAgaW5pdGlhbGl6ZVdpdGhUaW1pbmdTb3VyY2UoY2xvY2suZ2V0KCkpOwotfQotCi1QbGF0Zm9y
bUNsb2NrQ006OlBsYXRmb3JtQ2xvY2tDTShDTUNsb2NrUmVmIGNsb2NrKQotICAgIDogbV90aW1l
YmFzZSgwKQotICAgICwgbV9ydW5uaW5nKGZhbHNlKQotewotICAgIGluaXRpYWxpemVXaXRoVGlt
aW5nU291cmNlKGNsb2NrKTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNsb2NrQ006OmluaXRpYWxpemVX
aXRoVGltaW5nU291cmNlKENNQ2xvY2tSZWYgY2xvY2spCi17Ci0gICAgQ01UaW1lYmFzZVJlZiBy
YXdUaW1lYmFzZVB0ciA9IDA7Ci0gICAgQ01UaW1lYmFzZUNyZWF0ZVdpdGhNYXN0ZXJDbG9jayhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBjbG9jaywgJnJhd1RpbWViYXNlUHRyKTsKLSAgICBtX3RpbWVi
YXNlID0gYWRvcHRDRihyYXdUaW1lYmFzZVB0cik7Ci19Ci0KLXZvaWQgUGxhdGZvcm1DbG9ja0NN
OjpzZXRDdXJyZW50VGltZShkb3VibGUgdGltZSkKLXsKLSAgICBDTVRpbWUgY21UaW1lID0gQ01U
aW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIERlZmF1bHRUaW1lU2NhbGUpOwotICAgIENNVGltZWJh
c2VTZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCksIGNtVGltZSk7Ci19Ci0KLWRvdWJsZSBQbGF0Zm9y
bUNsb2NrQ006OmN1cnJlbnRUaW1lKCkgY29uc3QKLXsKLSAgICBDTVRpbWUgY21UaW1lID0gQ01U
aW1lYmFzZUdldFRpbWUobV90aW1lYmFzZS5nZXQoKSk7Ci0gICAgcmV0dXJuIENNVGltZUdldFNl
Y29uZHMoY21UaW1lKTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNsb2NrQ006OnNldEN1cnJlbnRNZWRp
YVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQotewotICAgIENNVGltZWJhc2VTZXRUaW1lKG1f
dGltZWJhc2UuZ2V0KCksIFBBTDo6dG9DTVRpbWUodGltZSkpOwotfQotCi1NZWRpYVRpbWUgUGxh
dGZvcm1DbG9ja0NNOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gUEFM
Ojp0b01lZGlhVGltZShDTVRpbWViYXNlR2V0VGltZShtX3RpbWViYXNlLmdldCgpKSk7Ci19Ci0K
LXZvaWQgUGxhdGZvcm1DbG9ja0NNOjpzZXRQbGF5UmF0ZShkb3VibGUgcmF0ZSkKLXsKLSAgICBp
ZiAobV9yYXRlID09IHJhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcmF0ZSA9IHJhdGU7
Ci0gICAgaWYgKG1fcnVubmluZykKLSAgICAgICAgQ01UaW1lYmFzZVNldFJhdGUobV90aW1lYmFz
ZS5nZXQoKSwgcmF0ZSk7Ci19Ci0KLXZvaWQgUGxhdGZvcm1DbG9ja0NNOjpzdGFydCgpCi17Ci0g
ICAgaWYgKG1fcnVubmluZykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fcnVubmluZyA9IHRydWU7
Ci0gICAgQ01UaW1lYmFzZVNldFJhdGUobV90aW1lYmFzZS5nZXQoKSwgbV9yYXRlKTsKLX0KLQot
dm9pZCBQbGF0Zm9ybUNsb2NrQ006OnN0b3AoKQotewotICAgIGlmICghbV9ydW5uaW5nKQotICAg
ICAgICByZXR1cm47Ci0gICAgbV9ydW5uaW5nID0gZmFsc2U7Ci0gICAgQ01UaW1lYmFzZVNldFJh
dGUobV90aW1lYmFzZS5nZXQoKSwgMCk7Ci19Ci0KLSNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>