<?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>212238</bug_id>
          
          <creation_ts>2020-05-21 16:10:55 -0700</creation_ts>
          <short_desc>Fix some thread safety issues with ScrollController timers</short_desc>
          <delta_ts>2020-05-21 19:37:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1655129</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-21 16:10:55 -0700</bug_when>
    <thetext>Fix some thread safety issues with ScrollController timers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655134</commentid>
    <comment_count>1</comment_count>
      <attachid>399995</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-21 16:17:08 -0700</bug_when>
    <thetext>Created attachment 399995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655137</commentid>
    <comment_count>2</comment_count>
      <attachid>399995</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-21 16:27:40 -0700</bug_when>
    <thetext>Comment on attachment 399995
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        timers would grap the main thread runloop. Fix by creating the timers on demand.

“grap”

&gt; Source/WebCore/page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:56
&gt; +    void wasBeRemovedFromTree() final;

“wasBe&quot;

&gt; Source/WebCore/platform/Logging.cpp:93
&gt; +    LogScrolling.state = WTFLogChannelState::On;

I don’t think you meant to add this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655141</commentid>
    <comment_count>3</comment_count>
      <attachid>399998</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-21 16:41:11 -0700</bug_when>
    <thetext>Created attachment 399998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655146</commentid>
    <comment_count>4</comment_count>
      <attachid>399999</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-21 16:48:42 -0700</bug_when>
    <thetext>Created attachment 399999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655153</commentid>
    <comment_count>5</comment_count>
      <attachid>400001</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-21 16:56:25 -0700</bug_when>
    <thetext>Created attachment 400001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655178</commentid>
    <comment_count>6</comment_count>
      <attachid>400001</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-21 18:03:26 -0700</bug_when>
    <thetext>Comment on attachment 400001
Patch

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

&gt; Source/WebCore/ChangeLog:49
&gt; +        * platform/Logging.cpp:
&gt; +        (WebCore::initializeLogChannelsIfNecessary):

Nit - you can remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655203</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-21 19:36:44 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/262042/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655205</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-21 19:37:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/63524050&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399995</attachid>
            <date>2020-05-21 16:17:08 -0700</date>
            <delta_ts>2020-05-21 17:58:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212238-20200521161707.patch</filename>
            <type>text/plain</type>
            <size>32076</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU4MDI4NTQ0ZjY3YmMw
MWExNDZlNTAyMGI4OTkwNGIxODNjZDI1MC4uM2NmZGFiNGZkNDM0MGViZDgxNzZkMTY4MGFlY2M1
M2NkNDA5MzRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTA1LTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBzb21lIHRo
cmVhZCBzYWZldHkgaXNzdWVzIHdpdGggU2Nyb2xsQ29udHJvbGxlciB0aW1lcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjIzOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdlcmUgc29tZSBw
cm9ibGVtcyB3aXRoIHRoZSB0aW1lcnMgZmlyZWQgYnkgU2Nyb2xsQ29udHJvbGxlciwgdXNlZCBm
b3IgcnViYmVyLWJhbmRpbmcKKyAgICAgICAgYW5kIHNjcm9sbCBzbmFwLgorCisgICAgICAgIEZp
cnN0LCB0aGV5IGNvdWxkIGZpcmUgb24gdGhlIG1haW4gdGhyZWFkIHdoZW4gd2UgaW50ZW5kZWQg
dGhlbSB0byBmaXJlIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgorICAgICAgICBUaGlzIGhhcHBl
bmVkIGJlY2F1c2UgaW4gcjI2MDcxNiBJIG1hZGUgdGhlIHNjcm9sbGluZyB0cmVlIGNvbW1pdCBv
biB0aGUgbWFpbiB0aHJlYWQsIHNvIHdlJ2QKKyAgICAgICAgY29uc3RydWN0IHRoZSBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjIGFuZCBpdHMgU2Nyb2xsQ29udHJvbGxlciB0
aGVyZSBhbmQgaXRzCisgICAgICAgIHRpbWVycyB3b3VsZCBncmFwIHRoZSBtYWluIHRocmVhZCBy
dW5sb29wLiBGaXggYnkgY3JlYXRpbmcgdGhlIHRpbWVycyBvbiBkZW1hbmQuCisKKyAgICAgICAg
U2Vjb25kbHksIHRoZSB0aW1lciBjYWxsYmFja3MgY2FsbGVkIGludG8gc2Nyb2xsaW5nIHRyZWUg
Y29kZSwgYnV0IHdpdGhvdXQgdGFraW5nCisgICAgICAgIHRoZSBzY3JvbGxpbmcgdHJlZSBsb2Nr
LAorICAgICAgICBhbmQgd2l0aG91dCBhbnkgZ3VhcmFudGVlIHRoYXQgdGhlIG5vZGUgd291bGQg
c3RheSBhbGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjay4KKyAgICAgICAgRml4
IGJ5IGhhdmluZyB0aGUgU2Nyb2xsQ29udHJvbGxlckNsaWVudCBjcmVhdGUgdGhlIHRpbWVycywg
YWxsb3dpbmcgdGhlIGNsaWVudCB0byBoYXZlCisgICAgICAgIGEgY2FsbGJhY2sgd3JhcHBlciB0
aGF0IGxvY2tzLCBhbmQgdG8gZW5zdXJlIG9iamVjdCBsaWZldGltZSAob3IgbWFrZSBhIHdlYWsg
cmVmKS4gTm93CisgICAgICAgIHRoYXQgc2Nyb2xsaW5nIHRyZWUgbm9kZXMgY291bGQgYmUgZXh0
ZW5kZWQgYnkgYSBwZW5kaW5nIHRpbWVyLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAgICAgICAg
Y2xlYXIgdGhlIHRpbWVycyB3aGVuIG5vZGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHRyZWUuCisK
KyAgICAgICAgRmluYWxseSwgcmVuYW1lIHNvbWUgY29uZnVzaW5nbHkgbmFtZWQgU2Nyb2xsQ29u
dHJvbGxlckNsaWVudCBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRy
ZWVTdGF0ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dHJlZU11dGV4KToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZU5vZGU6Ondhc0JlUmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6
d2FzQmVSZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjp3YXNC
ZVJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vZGVXaWxs
QmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYzo6Y3JlYXRlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OndpbGxTdGFydFNjcm9sbFNuYXBBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGlkU3RvcFNjcm9sbFNuYXBB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6c3RvcFNuYXBSdWJiZXJiYW5kVGltZXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RhcnRTY3Jv
bGxTbmFwVGltZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcFNjcm9sbFNuYXBUaW1lcik6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFs
aXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZVRpbWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXJUaW1lcjo6U2Nyb2xsQ29udHJvbGxlclRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OndpbGxTdGFydFJ1YmJlckJhbmRTbmFwQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OmRpZFN0b3BSdWJi
ZXJiYW5kU25hcEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVy
Q2xpZW50Ojp3aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OmRpZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OnN0YXJ0U25hcFJ1YmJlcmJh
bmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xp
ZW50OjpzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxDb250cm9sbGVyQ2xpZW50OjpzdGFydFNjcm9sbFNuYXBUaW1lcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xpZW50OjpzdG9wU2Nyb2xsU25h
cFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6U2Nyb2xsQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wQWxsVGltZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmRUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmlzUnViYmVyQmFu
ZEluUHJvZ3Jlc3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxD
b250cm9sbGVyOjpzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQ29udHJvbGxlcjo6c3RvcFNuYXBSdWJiZXJiYW5kVGltZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQ29udHJvbGxlcjo6c2NoZWR1bGVTdGF0ZWxlc3NTY3JvbGxTbmFwKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdGFydFNjcm9s
bFNuYXBUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wU2Ny
b2xsU25hcFRpbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aDoKKwogMjAyMC0wNS0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTY3JvbGxpbmcgdGhyZWFkIHNjcm9sbHMgb24gc3luYy1zY3JvbGxpbmcgc2Ny
b2xsZXJzIGRvbid0IGdldCB0byB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZTA4MDQyNjNkNGRjMWExZDAx
OWQxMTdkMWVhMzRiMWJjMTVkZDg2Ni4uMTAyNDc1MmM4Y2ZjYmYxNGQyZjdkNjJlNWM3ZWVhYzMz
MDZiOWQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKQEAgLTI1NSwxMCArMjU1LDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6Y29tbWl0
VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+JiYgc2Nyb2xsCiAg
ICAgcHJvcGFnYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKGNvbW1pdFN0YXRlLnN5bmNo
cm9ub3VzU2Nyb2xsaW5nTm9kZXMpOwogCiAgICAgZm9yIChhdXRvIG5vZGVJRCA6IGNvbW1pdFN0
YXRlLnVudmlzaXRlZE5vZGVzKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlIC0gcmVtb3ZpbmcgdW52
aXNpdGVkIG5vZGUgIiA8PCBub2RlSUQpOworCiAgICAgICAgIG1fbGF0Y2hpbmdDb250cm9sbGVy
Lm5vZGVXYXNSZW1vdmVkKG5vZGVJRCk7Ci0gICAgICAgIAotICAgICAgICBMT0coU2Nyb2xsaW5n
LCAiU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlIC0gcmVtb3ZpbmcgdW52aXNpdGVkIG5v
ZGUgJSIgUFJJdTY0LCBub2RlSUQpOwotICAgICAgICBtX25vZGVNYXAucmVtb3ZlKG5vZGVJRCk7
CisKKyAgICAgICAgaWYgKGF1dG8gbm9kZSA9IG1fbm9kZU1hcC50YWtlKG5vZGVJRCkpCisgICAg
ICAgICAgICBub2RlLT53YXNCZVJlbW92ZWRGcm9tVHJlZSgpOwogICAgIH0KIAogICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgImNvbW1pdHRlZCBTY3JvbGxpbmdU
cmVlIiA8PCBzY3JvbGxpbmdUcmVlQXNUZXh0KFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2
aW9yRGVidWcpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAppbmRleCBhYTFiZTEzNGMyZmEzOTc5ZDFjMjNhMmQ3NzBmYThlMTUyZGQ4MGYxLi5iY2Jh
Mjc2NzE5Mjc5Mjk0ZTU5NjYwMjgxM2FjYTg1M2Q0Yjg4ZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xNzksNiArMTc5LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCB1bmxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkgeyB9CiAKKyAgICBMb2Nr
JiB0cmVlTXV0ZXgoKSB7IHJldHVybiBtX3RyZWVNdXRleDsgfQorCiAgICAgdm9pZCB3aW5kb3dT
Y3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPiBub21p
bmFsRnJhbWVzUGVyU2Vjb25kKTsKICAgICBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2Rl
LmgKaW5kZXggMzMzNWQwNmJjNzYyMjkzYzVhYTljZmE4OWUwOGZjYjQzZTYzNzA4ZS4uNGI1NTQy
ZWMzMjFhMzM4YzdlNTRiZjRiNjc3OWFmMWRmMDlmOWFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCkBAIC02MSw2ICs2MSw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25z
dCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFN0YXRl
QWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29tcGxldGVDb21taXRGb3JOb2RlKCkgeyB9CisgICAgCisgICAgdmlydHVhbCB2
b2lkIHdhc0JlUmVtb3ZlZEZyb21UcmVlKCkgeyB9CiAKICAgICBTY3JvbGxpbmdUcmVlTm9kZSog
cGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnQ7IH0KICAgICB2b2lkIHNldFBhcmVudChT
Y3JvbGxpbmdUcmVlTm9kZSogcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaAppbmRleCAyMzQ0N2FkODIwNzExZGVk
NWExZDU1MDljMTRiZjMyM2Y3NjA4MTJkLi4zOWRmNzg0ZmYwOWM5NjBjNmFjOTEyNDMyNjBlNjg4
OGIwMWU1YjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgK
QEAgLTYzLDYgKzYzLDggQEAgcHJvdGVjdGVkOgogICAgIHVuc2lnbmVkIGV4cG9zZWRVbmZpbGxl
ZEFyZWEoKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHdhc0JlUmVtb3ZlZEZyb21UcmVl
KCkgZmluYWw7CisKICAgICBGbG9hdFBvaW50IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3Qg
RmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQg
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5k
ZXggMzI3MTIzY2QyMDhjYWZmNGMzMzhiOGQyMTc2ZDZmYmIzZDk1MWVlNi4uZGMyNGVkMTU1Zjgw
YzExNzMxYjYyMGQxZGYwNzRjZDFhNTQwZmMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTU3LDYgKzU3LDExIEBAIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWM6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMoU2Ny
b2xsaW5nCiAKIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6On5TY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjKCkgPSBkZWZhdWx0OwogCit2b2lkIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6Ondhc0JlUmVtb3ZlZEZyb21UcmVlKCkKK3sKKyAgICBt
X2RlbGVnYXRlLm5vZGVXaWxsQmVEZXN0cm95ZWQoKTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNj
cm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewogICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oc3RhdGVOb2RlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4IGYzZGYzZmJj
NDYwMWUwNGViNzk2NTYxODE4MWNkNzZjNTQxY2IwMWYuLmJhNDQ1MmQwNzM3MWI2YzAwNjUwZDU3
ZmMxYTE1ZGQzN2JjZWNjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWMuaApAQCAtNTMsNiArNTMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5n
RXZlbnRSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHdhc0JlUmVtb3ZlZEZyb21UcmVlKCkgZmlu
YWw7CisKICAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjIG1fZGVsZWdh
dGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFj
Lm1tCmluZGV4IGIzZjVjNTUzMjcyMmIwYjIxNzQ2NGRlYjEwZDE3N2VkZDE1Njk1MWQuLmQzYjgy
NWZiYjI3N2JkOTUxM2MxMjRjZDAyMzViZWI4MDAwYjQwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC00OSw2ICs0OSwxMSBAQCBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlTWFjKFNjcgogCiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjOjp+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYygpID0gZGVmYXVsdDsK
IAordm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjp3YXNCZVJlbW92
ZWRGcm9tVHJlZSgpCit7CisgICAgbV9kZWxlZ2F0ZS5ub2RlV2lsbEJlRGVzdHJveWVkKCk7Cit9
CisKIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3Rh
dGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsK
ICAgICBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9y
ZUNoaWxkcmVuKHN0YXRlTm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWMuaAppbmRleCBmNWQ0ZGU1ODdmOWU5YTNkMzQ2ODU1NGQ1NjY1NGMwOTE5YmQ5
MDcyLi4xNGRhNDJlNDVlZmMzMzUyZDk0NDliNGU1ZmJhN2EzOGUyZTJhYzAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTQ3LDYgKzQ3LDgg
QEAgcHVibGljOgogICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWMoU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjKCk7CiAKKyAgICB2b2lkIG5vZGVXaWxsQmVE
ZXN0cm95ZWQoKTsKKwogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmKTsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCkBAIC02NywyNCArNjks
MjUgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0
dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAK
ICAgICAvLyBTY3JvbGxDb250cm9sbGVyQ2xpZW50LgotICAgIGJvb2wgYWxsb3dzSG9yaXpvbnRh
bFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgSW50U2l6ZSBzdHJldGNoQW1vdW50KCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmKSBjb25z
dCBvdmVycmlkZTsKLSAgICBib29sIGNhblNjcm9sbEhvcml6b250YWxseSgpIGNvbnN0IG92ZXJy
aWRlOwotICAgIGJvb2wgY2FuU2Nyb2xsVmVydGljYWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAg
IGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUmKSBv
dmVycmlkZTsKLSAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29u
c3RyYWludHMoY29uc3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wU25hcFJ1
YmJlcmJhbmRUaW1lcigpIG92ZXJyaWRlOwotICAgIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25U
b0JvdW5kc0lmTmVjZXNzYXJ5KCkgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9s
bENvbnRyb2xsZXJUaW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsK
KyAgICBib29sIGFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0IGZpbmFsOworICAgIEludFNpemUgc3RyZXRj
aEFtb3VudCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3Qg
RmxvYXRTaXplJikgY29uc3QgZmluYWw7CisgICAgYm9vbCBjYW5TY3JvbGxIb3Jpem9udGFsbHko
KSBjb25zdCBmaW5hbDsKKyAgICBib29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdCBmaW5h
bDsKKyAgICBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24p
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXpl
JikgZmluYWw7CisgICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeVdpdGhvdXRDb250ZW50RWRnZUNv
bnN0cmFpbnRzKGNvbnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcFJ1YmJl
cmJhbmRTbmFwQW5pbWF0aW9uKCkgZmluYWw7CisgICAgdm9pZCBhZGp1c3RTY3JvbGxQb3NpdGlv
blRvQm91bmRzSWZOZWNlc3NhcnkoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NO
QVApCiAgICAgRmxvYXRQb2ludCBzY3JvbGxPZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIGltbWVkaWF0ZVNjcm9sbE9uQXhpcyhTY3JvbGxFdmVudEF4aXMsIGZsb2F0IGRlbHRhKSBv
dmVycmlkZTsKICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIHN0YXJ0U2Nyb2xsU25hcFRpbWVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wU2Ny
b2xsU25hcFRpbWVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsU3RhcnRTY3JvbGxTbmFwQW5p
bWF0aW9uKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wU2Nyb2xsU25hcEFuaW1hdGlvbigpIGZp
bmFsOwogICAgIExheW91dFNpemUgc2Nyb2xsRXh0ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
RmxvYXRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IGIxZmM3YTZh
YjE3MzA2NzE5YWZlNDZkN2FlMWNhZjc0ODY0YWEyMDMuLmEwYmM5N2E3MjM2ZWNjYWMxZjdhZTIw
MWE4MzJhZjczM2M3OWQwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlTWFjLm1tCkBAIC00OSw2ICs0OSwxMSBAQCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjOjp+U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYygp
CiAgICAgcmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOwog
fQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vZGVXaWxs
QmVEZXN0cm95ZWQoKQoreworICAgIG1fc2Nyb2xsQ29udHJvbGxlci5zdG9wQWxsVGltZXJzKCk7
Cit9CisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogc3RhdGljIGlubGluZSBWZWN0b3I8
TGF5b3V0VW5pdD4gY29udmVydFRvTGF5b3V0VW5pdHMoY29uc3QgVmVjdG9yPGZsb2F0PiYgc25h
cE9mZnNldHNBc0Zsb2F0KQogewpAQCAtMTcyLDYgKzE3NywxNCBAQCBib29sIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZH
ZXN0dXJlKAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENv
bnRyb2xsZXJUaW1lcj4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y3Jl
YXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQoreworICAgIHJldHVybiBXVEY6
Om1ha2VVbmlxdWU8U2Nyb2xsQ29udHJvbGxlclRpbWVyPihSdW5Mb29wOjpjdXJyZW50KCksIFtm
dW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pLCBwcm90ZWN0ZWROb2RlID0gbWFrZVJlZihzY3Jv
bGxpbmdOb2RlKCkpXSB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKHByb3RlY3RlZE5vZGUt
PnNjcm9sbGluZ1RyZWUoKS50cmVlTXV0ZXgoKSk7CisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAg
fSk7Cit9CisKIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxs
b3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2
ZW50KSBjb25zdAogewogICAgIHN3aXRjaCAoaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKSkg
ewpAQCAtMjkzLDcgKzMwNiw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYzo6aW1tZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDCiAgICAgc2Nyb2xs
aW5nTm9kZSgpLnNjcm9sbEJ5KG9mZnNldCwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiB9
CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcFNuYXBS
dWJiZXJiYW5kVGltZXIoKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjOjpkaWRTdG9wUnViYmVyYmFuZFNuYXBBbmltYXRpb24oKQogewogICAgIHNjcm9sbGluZ1Ry
ZWUoKS5zZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcoZmFsc2UpOwogCkBAIC0zMzYsMTIgKzM0
OSwxMiBAQCBmbG9hdCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpwYWdl
U2NhbGVGYWN0b3IoKSBjb25zdAogICAgIHJldHVybiAxOwogfQogCi12b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0YXJ0U2Nyb2xsU25hcFRpbWVyKCkKK3ZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6d2lsbFN0YXJ0U2Nyb2xsU25h
cEFuaW1hdGlvbigpCiB7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE1haW5GcmFtZUlzU2Nyb2xs
U25hcHBpbmcodHJ1ZSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYzo6c3RvcFNjcm9sbFNuYXBUaW1lcigpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWM6OmRpZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKCkKIHsKICAgICBz
Y3JvbGxpbmdUcmVlKCkuc2V0TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhmYWxzZSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCmluZGV4IGVlZjhiM2E3ZjIyYzU3ZGQzNTQ0OWQ0
NDlkYTg1ZDNmNTBhOTVmNmMuLmI4YTc3YWEzZTdhMmM4ZWVmNmRlMTQyNDAxMWJlNjgyMmMxNGQ0
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCkBAIC05MCw2ICs5MCw3IEBAIHZv
aWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoT3B0aW9uYWw8U3RyaW5nPiBsb2dD
aGFubmVsU3RyaW5nKQogCiAgICAgU3RyaW5nIGVuYWJsZWRDaGFubmVsc1N0cmluZyA9IGxvZ0No
YW5uZWxTdHJpbmcgPyBsb2dDaGFubmVsU3RyaW5nLnZhbHVlKCkgOiBsb2dMZXZlbFN0cmluZygp
OwogICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyhsb2dDaGFubmVs
cywgbG9nQ2hhbm5lbENvdW50LCBlbmFibGVkQ2hhbm5lbHNTdHJpbmcudXRmOCgpLmRhdGEoKSk7
CisgICAgTG9nU2Nyb2xsaW5nLnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKIH0KIAog
V1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5lbChjb25zdCBTdHJpbmcmIG5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggMGZjNzI5ZTkxMmI1NzBj
YjIzM2Q4ODc4ZWE4ZjYwMTFiYWQ2NDc4Ny4uM2UyY2Q1M2E4NmQzNmJlZTcyYTQ5MDNlZjllZjU0
NDk1N2Q0NDc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cApAQCAtMjQxLDYgKzI0MSwxNSBAQCBGbG9hdFNpemUgU2Nyb2xsQW5pbWF0b3I6OnZpZXdwb3J0
U2l6ZSgpIGNvbnN0CiAKICNlbmRpZgogCitzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxl
clRpbWVyPiBTY3JvbGxBbmltYXRvcjo6Y3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmIGZ1
bmN0aW9uKQoreworICAgIHJldHVybiBXVEY6Om1ha2VVbmlxdWU8U2Nyb2xsQ29udHJvbGxlclRp
bWVyPihSdW5Mb29wOjpjdXJyZW50KCksIFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pLCB3
ZWFrU2Nyb2xsYWJsZUFyZWEgPSBtYWtlV2Vha1B0cihtX3Njcm9sbGFibGVBcmVhKV0geworICAg
ICAgICBpZiAoIXdlYWtTY3JvbGxhYmxlQXJlYSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgZnVuY3Rpb24oKTsKKyAgICB9KTsKK30KKwogI2lmIChFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQ
KSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpKSAmJiBQTEFURk9STShNQUMpCiB2b2lkIFNjcm9s
bEFuaW1hdG9yOjpkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNvbihXaGVlbEV2
ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXaGVl
bEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uIHJlYXNvbikgY29uc3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IDY2MTE4N2E3MWMwODljNGE4YWMw
ZjczNmRmZjNmMWEzZmEyMTc0MjEuLmVmZmI2OTg4ZTAyMDNlOGIyNzE4YzQ3OTQ4YzNiMDcwYzMx
YjI0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApAQCAtMTI2
LDYgKzEyNiw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBob3Jpem9udGFsU2Nyb2xs
YmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogICAg
IHZpcnR1YWwgU3RyaW5nIHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3Qg
eyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENv
bnRyb2xsZXJUaW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKKwog
ICAgIHZvaWQgc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKFJlZlB0cjxXaGVlbEV2ZW50VGVzdE1v
bml0b3I+JiYgdGVzdE1vbml0b3IpIHsgbV93aGVlbEV2ZW50VGVzdE1vbml0b3IgPSB0ZXN0TW9u
aXRvcjsgfQogCiAjaWYgKEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJf
QkFORElORykpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAppbmRleCA3NTQ2YjlmYTM1MGVkMTEyNjgzNjlmZTcy
YzI4YThmZjY3N2RiMDk0Li41ODlhNzFkYzFhZmNlYmFlNjA3YzU1Zjc1ZWYzMzFjYThiZTIyODhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5oCkBAIC00MywxNCArNDMsMzQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMYXlv
dXRTaXplOwogY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OworY2xhc3MgU2Nyb2xsQ29udHJvbGxl
cjsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogY2xhc3MgV2hlZWxFdmVudFRlc3RNb25pdG9yOwog
CitjbGFzcyBTY3JvbGxDb250cm9sbGVyVGltZXIgOiBwdWJsaWMgUnVuTG9vcDo6VGltZXJCYXNl
IHsKK3B1YmxpYzoKKyAgICBTY3JvbGxDb250cm9sbGVyVGltZXIoUnVuTG9vcCYgcnVuTG9vcCwg
RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQorICAgICAgICA6IFJ1bkxvb3A6OlRpbWVyQmFz
ZShydW5Mb29wKQorICAgICAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCisgICAg
eworICAgIH0KKworICAgIHZvaWQgZmlyZWQoKSBmaW5hbAorICAgIHsKKyAgICAgICAgbV9jYWxs
YmFjaygpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fY2FsbGJh
Y2s7Cit9OworCiBjbGFzcyBTY3JvbGxDb250cm9sbGVyQ2xpZW50IHsKIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIH5TY3JvbGxDb250cm9sbGVyQ2xpZW50KCkgPSBkZWZhdWx0OwogCiBwdWJsaWM6
CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBjcmVh
dGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYpID0gMDsKKwogI2lmIEVOQUJMRShSVUJCRVJfQkFO
RElORykKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NW
ZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QgPSAwOwpA
QCAtNjMsMTUgKzgzLDggQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiB1c2UgU2Nyb2xsQ2xhbXBp
bmcgdG8gY29sbGFwc2UgdGhlc2UgdG8gb25lLgogICAgIHZpcnR1YWwgdm9pZCBpbW1lZGlhdGVT
Y3JvbGxCeShjb25zdCBGbG9hdFNpemUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGltbWVkaWF0
ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRTaXplJikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIoKQotICAgIHsK
LSAgICAgICAgLy8gT3ZlcnJpZGUgdG8gcGVyZm9ybSBjbGllbnQtc3BlY2lmaWMgc25hcCBzdGFy
dCBsb2dpYwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBzdG9wU25hcFJ1YmJlcmJhbmRUaW1l
cigpCi0gICAgewotICAgICAgICAvLyBPdmVycmlkZSB0byBwZXJmb3JtIGNsaWVudC1zcGVjaWZp
YyBzbmFwIGVuZCBsb2dpYwotICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0UnViYmVy
QmFuZFNuYXBBbmltYXRpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcFJ1YmJlcmJh
bmRTbmFwQW5pbWF0aW9uKCkgeyB9CiAgICAgCiAgICAgLy8gSWYgdGhlIGN1cnJlbnQgc2Nyb2xs
IHBvc2l0aW9uIGlzIHdpdGhpbiB0aGUgb3ZlcmhhbmcgYXJlYSwgdGhpcyBmdW5jdGlvbiB3aWxs
IGNhdXNlCiAgICAgLy8gdGhlIHBhZ2UgdG8gc2Nyb2xsIHRvIHRoZSBuZWFyZXN0IGJvdW5kYXJ5
IHBvaW50LgpAQCAtODQsMTUgKzk3LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfU0NST0xM
X1NOQVApCiAgICAgdmlydHVhbCBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgaW1tZWRpYXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50QXhpcywg
ZmxvYXQgZGVsdGEpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRTY3JvbGxTbmFwVGltZXIo
KQotICAgIHsKLSAgICAgICAgLy8gT3ZlcnJpZGUgdG8gcGVyZm9ybSBjbGllbnQtc3BlY2lmaWMg
c2Nyb2xsIHNuYXAgcG9pbnQgc3RhcnQgbG9naWMKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
c3RvcFNjcm9sbFNuYXBUaW1lcigpCi0gICAgewotICAgICAgICAvLyBPdmVycmlkZSB0byBwZXJm
b3JtIGNsaWVudC1zcGVjaWZpYyBzY3JvbGwgc25hcCBwb2ludCBlbmQgbG9naWMKLSAgICB9Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxTdGFydFNjcm9sbFNuYXBBbmltYXRpb24oKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkU3RvcFNjcm9sbFNuYXBBbmltYXRpb24oKSB7IH0KIAogICAgIHZpcnR1
YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICB7CkBAIC0xNTEsNiArMTU3LDgg
QEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgV2hlZWxBeGlzQmlhcyB7IE5vbmUsIFZlcnRpY2Fs
IH07CiAgICAgc3RhdGljIE9wdGlvbmFsPFNjcm9sbERpcmVjdGlvbj4gZGlyZWN0aW9uRnJvbUV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvbmFsPFNjcm9sbEV2ZW50QXhpcz4s
IFdoZWVsQXhpc0JpYXMgPSBXaGVlbEF4aXNCaWFzOjpOb25lKTsKIAorICAgIHZvaWQgc3RvcEFs
bFRpbWVycygpOworCiBwcml2YXRlOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICB2
b2lkIHN0YXJ0U25hcFJ1YmJlcmJhbmRUaW1lcigpOwpAQCAtMTkyLDE1ICsyMDAsMTUgQEAgcHJp
dmF0ZToKICAgICBDRlRpbWVJbnRlcnZhbCBtX3N0YXJ0VGltZSB7IDAgfTsKICAgICBGbG9hdFNp
emUgbV9zdGFydFN0cmV0Y2g7CiAgICAgRmxvYXRTaXplIG1fb3JpZ1ZlbG9jaXR5OwotICAgIFJ1
bkxvb3A6OlRpbWVyPFNjcm9sbENvbnRyb2xsZXI+IG1fc25hcFJ1YmJlcmJhbmRUaW1lcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBtX3NuYXBSdWJiZXJiYW5k
VGltZXI7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNjcm9sbFNuYXBBbmltYXRvclN0YXRlPiBtX3Njcm9sbFNuYXBTdGF0ZTsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgRmxvYXRTaXplIG1fZHJhZ0VuZGVkU2Nyb2xsaW5nVmVsb2Np
dHk7Ci0gICAgUnVuTG9vcDo6VGltZXI8U2Nyb2xsQ29udHJvbGxlcj4gbV9zdGF0ZWxlc3NTbmFw
VHJhbnNpdGlvblRpbWVyOwotICAgIFJ1bkxvb3A6OlRpbWVyPFNjcm9sbENvbnRyb2xsZXI+IG1f
c2Nyb2xsU25hcFRpbWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGlt
ZXI+IG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBtX3Njcm9sbFNuYXBUaW1lcjsKICNlbmRpZgogI2VuZGlm
CiAKQEAgLTIwOCw3ICsyMTYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pblNjcm9sbEdlc3R1
cmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgeyBmYWxzZSB9OwotICAgIGJv
b2wgbV9zbmFwUnViYmVyYmFuZFRpbWVySXNBY3RpdmUgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAg
ICBib29sIG1fYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4
IDBmNDFhNzJjNDVmNzA1Mjk3YTIwYTg4M2JkZmJkOGNhY2I3ZjljM2QuLjYxN2I2ZGI2NDIwYjdk
ZGM4MjgzZDgwOTA5YzZmODI5NTJhYjI1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtODYsMTQgKzg2LDIzIEBAIHN0YXRp
YyBTY3JvbGxFdmVudEF4aXMgb3RoZXJTY3JvbGxFdmVudEF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4
aXMpCiAKIFNjcm9sbENvbnRyb2xsZXI6OlNjcm9sbENvbnRyb2xsZXIoU2Nyb2xsQ29udHJvbGxl
ckNsaWVudCYgY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQoreworfQorCit2b2lkIFNj
cm9sbENvbnRyb2xsZXI6OnN0b3BBbGxUaW1lcnMoKQorewogI2lmIEVOQUJMRShSVUJCRVJfQkFO
RElORykKLSAgICAsIG1fc25hcFJ1YmJlcmJhbmRUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRo
aXMsICZTY3JvbGxDb250cm9sbGVyOjpzbmFwUnViYmVyQmFuZFRpbWVyRmlyZWQpCisgICAgaWYg
KG1fc25hcFJ1YmJlcmJhbmRUaW1lcikKKyAgICAgICAgbV9zbmFwUnViYmVyYmFuZFRpbWVyLT5z
dG9wKCk7CiAjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApICYmIFBMQVRGT1JN
KE1BQykKLSAgICAsIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lcihSdW5Mb29wOjpjdXJy
ZW50KCksIHRoaXMsICZTY3JvbGxDb250cm9sbGVyOjpzdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRp
bWVyRmlyZWQpCi0gICAgLCBtX3Njcm9sbFNuYXBUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRo
aXMsICZTY3JvbGxDb250cm9sbGVyOjpzY3JvbGxTbmFwVGltZXJGaXJlZCkKKyAgICBpZiAobV9z
dGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyKQorICAgICAgICBtX3N0YXRlbGVzc1NuYXBUcmFu
c2l0aW9uVGltZXItPnN0b3AoKTsKKworICAgIGlmIChtX3Njcm9sbFNuYXBUaW1lcikKKyAgICAg
ICAgbV9zY3JvbGxTbmFwVGltZXItPnN0b3AoKTsKICNlbmRpZgotewogfQogCiAjaWYgUExBVEZP
Uk0oTUFDKQpAQCAtMTM5LDcgKzE0OCw3IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgfQog
CiAgICAgYm9vbCBpc01vbWVudHVtU2Nyb2xsRXZlbnQgPSAod2hlZWxFdmVudC5tb21lbnR1bVBo
YXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKTsKLSAgICBpZiAobV9pZ25vcmVN
b21lbnR1bVNjcm9sbHMgJiYgKGlzTW9tZW50dW1TY3JvbGxFdmVudCB8fCBtX3NuYXBSdWJiZXJi
YW5kVGltZXJJc0FjdGl2ZSkpIHsKKyAgICBpZiAobV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgJiYg
KGlzTW9tZW50dW1TY3JvbGxFdmVudCB8fCBtX3NuYXBSdWJiZXJiYW5kVGltZXIpKSB7CiAgICAg
ICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUVuZGVkKSB7CiAgICAgICAgICAgICBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyA9IGZhbHNl
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zODUsMTAgKzM5NCwxMCBAQCB2b2lkIFNj
cm9sbENvbnRyb2xsZXI6OnNuYXBSdWJiZXJCYW5kVGltZXJGaXJlZCgpCiAgICAgICAgICAgICBp
ZiAobV9zdGFydFN0cmV0Y2ggPT0gRmxvYXRTaXplKCkpIHsKICAgICAgICAgICAgICAgICBzdG9w
U25hcFJ1YmJlcmJhbmRUaW1lcigpOwogCi0gICAgICAgICAgICAgICAgbV9zdHJldGNoU2Nyb2xs
Rm9yY2UgPSBGbG9hdFNpemUoKTsKKyAgICAgICAgICAgICAgICBtX3N0cmV0Y2hTY3JvbGxGb3Jj
ZSA9IHsgfTsKICAgICAgICAgICAgICAgICBtX3N0YXJ0VGltZSA9IDA7Ci0gICAgICAgICAgICAg
ICAgbV9zdGFydFN0cmV0Y2ggPSBGbG9hdFNpemUoKTsKLSAgICAgICAgICAgICAgICBtX29yaWdW
ZWxvY2l0eSA9IEZsb2F0U2l6ZSgpOworICAgICAgICAgICAgICAgIG1fc3RhcnRTdHJldGNoID0g
eyB9OworICAgICAgICAgICAgICAgIG1fb3JpZ1ZlbG9jaXR5ID0geyB9OwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIApAQCAtNDIxLDE0ICs0MzAsMTQgQEAgdm9pZCBT
Y3JvbGxDb250cm9sbGVyOjpzbmFwUnViYmVyQmFuZFRpbWVyRmlyZWQoKQogICAgICAgICAgICAg
bV9jbGllbnQuYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCk7CiAKICAg
ICAgICAgICAgIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVyKCk7Ci0gICAgICAgICAgICBtX3N0cmV0
Y2hTY3JvbGxGb3JjZSA9IEZsb2F0U2l6ZSgpOworICAgICAgICAgICAgbV9zdHJldGNoU2Nyb2xs
Rm9yY2UgPSB7IH07CiAgICAgICAgICAgICBtX3N0YXJ0VGltZSA9IDA7Ci0gICAgICAgICAgICBt
X3N0YXJ0U3RyZXRjaCA9IEZsb2F0U2l6ZSgpOwotICAgICAgICAgICAgbV9vcmlnVmVsb2NpdHkg
PSBGbG9hdFNpemUoKTsKKyAgICAgICAgICAgIG1fc3RhcnRTdHJldGNoID0geyB9OworICAgICAg
ICAgICAgbV9vcmlnVmVsb2NpdHkgPSB7IH07CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAg
ICAgICBtX3N0YXJ0VGltZSA9IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRl
XTsKLSAgICAgICAgbV9zdGFydFN0cmV0Y2ggPSBGbG9hdFNpemUoKTsKKyAgICAgICAgbV9zdGFy
dFN0cmV0Y2ggPSB7IH07CiAgICAgICAgIGlmICghaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpKQog
ICAgICAgICAgICAgc3RvcFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKICAgICB9CkBAIC00MzgsNyAr
NDQ3LDcgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzbmFwUnViYmVyQmFuZFRpbWVyRmlyZWQo
KQogYm9vbCBTY3JvbGxDb250cm9sbGVyOjppc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QK
IHsKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpICYmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAo
IW1faW5TY3JvbGxHZXN0dXJlICYmICFtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiAhbV9z
bmFwUnViYmVyYmFuZFRpbWVySXNBY3RpdmUpCisgICAgaWYgKCFtX2luU2Nyb2xsR2VzdHVyZSAm
JiAhbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgIW1fc25hcFJ1YmJlcmJhbmRUaW1lcikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFtX2NsaWVudC5zdHJldGNoQW1v
dW50KCkuaXNaZXJvKCk7CkBAIC00NTAsNyArNDU5LDcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVy
Ojppc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QKIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExf
U05BUCkgJiYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21v
bWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyB8fCBtX3Njcm9sbFNuYXBUaW1lci5pc0FjdGl2ZSgpKQor
ICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyB8
fCBtX3Njcm9sbFNuYXBUaW1lcikKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC00NTksMTcgKzQ2OCwyNSBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6
OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdAogI2lmIEVOQUJMRShSVUJCRVJfQkFORElO
RykKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RhcnRTbmFwUnViYmVyYmFuZFRpbWVyKCkKIHsK
LSAgICBtX2NsaWVudC5zdGFydFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKLSAgICBtX3NuYXBSdWJi
ZXJiYW5kVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsKKyAgICBtX2NsaWVudC53aWxs
U3RhcnRSdWJiZXJCYW5kU25hcEFuaW1hdGlvbigpOworCisgICAgLy8gTWFrZSBhIG5ldyBvbmUg
ZWFjaCB0aW1lIHRvIGVuc3VyZSBpdCBmaXJlcyBvbiB0aGUgY3VycmVudCBSdW5Mb29wLgorICAg
IG1fc25hcFJ1YmJlcmJhbmRUaW1lciA9IG1fY2xpZW50LmNyZWF0ZVRpbWVyKFt0aGlzXSB7Cisg
ICAgICAgIHNuYXBSdWJiZXJCYW5kVGltZXJGaXJlZCgpOworICAgIH0pOworICAgIG1fc25hcFJ1
YmJlcmJhbmRUaW1lci0+c3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsKIAogICAgIG1fY2xpZW50
LmRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8
V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHRoaXMpLCBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OlJ1YmJlcmJhbmRJblByb2dyZXNzKTsKIH0KIAogdm9pZCBT
Y3JvbGxDb250cm9sbGVyOjpzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcigpCiB7Ci0gICAgbV9jbGll
bnQuc3RvcFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKLSAgICBtX3NuYXBSdWJiZXJiYW5kVGltZXIu
c3RvcCgpOwotICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lcklzQWN0aXZlID0gZmFsc2U7CisgICAg
bV9jbGllbnQuZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5pbWF0aW9uKCk7CisgICAgCisgICAgaWYg
KG1fc25hcFJ1YmJlcmJhbmRUaW1lcikgeworICAgICAgICBtX3NuYXBSdWJiZXJiYW5kVGltZXIt
PnN0b3AoKTsKKyAgICAgICAgbV9zbmFwUnViYmVyYmFuZFRpbWVyID0gbnVsbHB0cjsKKyAgICB9
CiAgICAgCiAgICAgbV9jbGllbnQucmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJy
YWxGb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllcj4odGhpcyksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UnViYmVy
YmFuZEluUHJvZ3Jlc3MpOwogfQpAQCAtNDgyLDE1ICs0OTksMTQgQEAgdm9pZCBTY3JvbGxDb250
cm9sbGVyOjpzbmFwUnViYmVyQmFuZCgpCiAKICAgICBtX2luU2Nyb2xsR2VzdHVyZSA9IGZhbHNl
OwogCi0gICAgaWYgKG1fc25hcFJ1YmJlcmJhbmRUaW1lcklzQWN0aXZlKQorICAgIGlmIChtX3Nu
YXBSdWJiZXJiYW5kVGltZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc3RhcnRUaW1lID0g
W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOwotICAgIG1fc3RhcnRTdHJl
dGNoID0gRmxvYXRTaXplKCk7Ci0gICAgbV9vcmlnVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsKKyAg
ICBtX3N0YXJ0U3RyZXRjaCA9IHsgfTsKKyAgICBtX29yaWdWZWxvY2l0eSA9IHsgfTsKIAogICAg
IHN0YXJ0U25hcFJ1YmJlcmJhbmRUaW1lcigpOwotICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lcklz
QWN0aXZlID0gdHJ1ZTsKIH0KIAogYm9vbCBTY3JvbGxDb250cm9sbGVyOjpzaG91bGRSdWJiZXJC
YW5kSW5Ib3Jpem9udGFsRGlyZWN0aW9uKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxF
dmVudCkgY29uc3QKQEAgLTU2NCwxNyArNTgwLDI1IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6
c2hvdWxkT3ZlcnJpZGVJbmVydGlhbFNjcm9sbGluZygpIGNvbnN0CiB2b2lkIFNjcm9sbENvbnRy
b2xsZXI6OnNjaGVkdWxlU3RhdGVsZXNzU2Nyb2xsU25hcCgpCiB7CiAgICAgc3RvcFNjcm9sbFNu
YXBUaW1lcigpOwotICAgIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lci5zdG9wKCk7Cisg
ICAgaWYgKG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lcikgeworICAgICAgICBtX3N0YXRl
bGVzc1NuYXBUcmFuc2l0aW9uVGltZXItPnN0b3AoKTsKKyAgICAgICAgbV9zdGF0ZWxlc3NTbmFw
VHJhbnNpdGlvblRpbWVyID0gbnVsbHB0cjsKKyAgICB9CiAgICAgaWYgKCFtX3Njcm9sbFNuYXBT
dGF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGljIGNvbnN0IFNlY29uZHMgc3RhdGVs
ZXNzU2Nyb2xsU25hcERlbGF5ID0gNzUwX21zOwotICAgIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRp
b25UaW1lci5zdGFydE9uZVNob3Qoc3RhdGVsZXNzU2Nyb2xsU25hcERlbGF5KTsKKyAgICBtX3N0
YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10g
eworICAgICAgICBzdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyRmlyZWQoKTsKKyAgICB9KTsK
KyAgICBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXItPnN0YXJ0T25lU2hvdChzdGF0ZWxl
c3NTY3JvbGxTbmFwRGVsYXkpOwogICAgIHN0YXJ0RGVmZXJyaW5nV2hlZWxFdmVudFRlc3RDb21w
bGV0aW9uRHVlVG9TY3JvbGxTbmFwcGluZygpOwogfQogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6
OnN0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXJGaXJlZCgpCiB7CisgICAgbV9zdGF0ZWxlc3NT
bmFwVHJhbnNpdGlvblRpbWVyID0gbnVsbHB0cjsKKwogICAgIGlmICghbV9zY3JvbGxTbmFwU3Rh
dGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjM2LDIyICs2NjAsMjcgQEAgYm9vbCBTY3JvbGxD
b250cm9sbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JgogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0YXJ0U2Nyb2xsU25hcFRpbWVy
KCkKIHsKLSAgICBpZiAobV9zY3JvbGxTbmFwVGltZXIuaXNBY3RpdmUoKSkKKyAgICBpZiAobV9z
Y3JvbGxTbmFwVGltZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIHN0YXJ0RGVmZXJyaW5nV2hl
ZWxFdmVudFRlc3RDb21wbGV0aW9uRHVlVG9TY3JvbGxTbmFwcGluZygpOwotICAgIG1fY2xpZW50
LnN0YXJ0U2Nyb2xsU25hcFRpbWVyKCk7Ci0gICAgbV9zY3JvbGxTbmFwVGltZXIuc3RhcnRSZXBl
YXRpbmcoMV9zIC8gNjAuKTsKKyAgICBtX2NsaWVudC53aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0
aW9uKCk7CisgICAgbV9zY3JvbGxTbmFwVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhp
c10geworICAgICAgICBzY3JvbGxTbmFwVGltZXJGaXJlZCgpOworICAgIH0pOworICAgIG1fc2Ny
b2xsU25hcFRpbWVyLT5zdGFydFJlcGVhdGluZygxX3MgLyA2MC4pOwogfQogCiB2b2lkIFNjcm9s
bENvbnRyb2xsZXI6OnN0b3BTY3JvbGxTbmFwVGltZXIoKQogewotICAgIGlmICghbV9zY3JvbGxT
bmFwVGltZXIuaXNBY3RpdmUoKSkKKyAgICBpZiAoIW1fc2Nyb2xsU25hcFRpbWVyKQogICAgICAg
ICByZXR1cm47CiAKICAgICBzdG9wRGVmZXJyaW5nV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRHVl
VG9TY3JvbGxTbmFwcGluZygpOwotICAgIG1fY2xpZW50LnN0b3BTY3JvbGxTbmFwVGltZXIoKTsK
LSAgICBtX3Njcm9sbFNuYXBUaW1lci5zdG9wKCk7CisgICAgbV9jbGllbnQuZGlkU3RvcFNjcm9s
bFNuYXBBbmltYXRpb24oKTsKKworICAgIG1fc2Nyb2xsU25hcFRpbWVyLT5zdG9wKCk7CisgICAg
bV9zY3JvbGxTbmFwVGltZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6
OnNjcm9sbFNuYXBUaW1lckZpcmVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggZWY2ZWVhMDUyYTU1ZWFlY2QxYmE3Y2FhNWIzYTNh
NjA0NmNiOWZhMy4uZTNjM2MwYTE3ZGMwMTdmMWJlMTU2MmZiZDhmYWFlNGYwZThjZDhhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAg
LTQ2LDcgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2Nyb2xsYmFyOwogCiBj
bGFzcyBTY3JvbGxBbmltYXRvck1hYyA6IHB1YmxpYyBTY3JvbGxBbmltYXRvciB7Ci0KIHB1Ymxp
YzoKICAgICBTY3JvbGxBbmltYXRvck1hYyhTY3JvbGxhYmxlQXJlYSYpOwogICAgIHZpcnR1YWwg
flNjcm9sbEFuaW1hdG9yTWFjKCk7CkBAIC0xNDEsMTggKzE0MCwxOCBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBob3Jpem9udGFsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmluYWw7
CiAgICAgU3RyaW5nIHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmlu
YWw7CiAKKyAgICAvLyBTY3JvbGxDb250cm9sbGVyQ2xpZW50LgogI2lmIEVOQUJMRShSVUJCRVJf
QkFORElORykKLSAgICAvLy8gU2Nyb2xsQ29udHJvbGxlckNsaWVudCBtZW1iZXIgZnVuY3Rpb25z
LgotICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wg
YWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwaW5uZWRJbkRpcmVj
dGlvbihjb25zdCBGbG9hdFNpemUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGNhblNjcm9s
bEhvcml6b250YWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgY2FuU2Nyb2xsVmVydGlj
YWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbW1lZGlhdGVT
Y3JvbGxCeVdpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNvbnN0IEZsb2F0U2l6ZSYpIG92
ZXJyaWRlOwotICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBhZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91bmRzSWZOZWNlc3Nhcnko
KSBvdmVycmlkZTsKKyAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQoKSBjb25zdCBmaW5hbDsKKyAg
ICBib29sIGFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgcGlubmVkSW5EaXJl
Y3Rpb24oY29uc3QgRmxvYXRTaXplJikgY29uc3QgZmluYWw7CisgICAgYm9vbCBjYW5TY3JvbGxI
b3Jpem9udGFsbHkoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGNhblNjcm9sbFZlcnRpY2FsbHko
KSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3Jv
bGxEaXJlY3Rpb24pIGNvbnN0IGZpbmFsOworICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnlXaXRo
b3V0Q29udGVudEVkZ2VDb25zdHJhaW50cyhjb25zdCBGbG9hdFNpemUmKSBmaW5hbDsKKyAgICB2
b2lkIGltbWVkaWF0ZVNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQg
YWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCkgZmluYWw7CiAKICAgICBi
b29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399998</attachid>
            <date>2020-05-21 16:41:11 -0700</date>
            <delta_ts>2020-05-21 16:48:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212238-20200521164110.patch</filename>
            <type>text/plain</type>
            <size>31595</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU4MDI4NTQ0ZjY3YmMw
MWExNDZlNTAyMGI4OTkwNGIxODNjZDI1MC4uNDAzOTgxNGVjMTNkMmFlNjUxNTUwNGY5MWU2Mzhl
ODZiMWIzMGM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTA1LTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBzb21lIHRo
cmVhZCBzYWZldHkgaXNzdWVzIHdpdGggU2Nyb2xsQ29udHJvbGxlciB0aW1lcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjIzOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdlcmUgc29tZSBw
cm9ibGVtcyB3aXRoIHRoZSB0aW1lcnMgZmlyZWQgYnkgU2Nyb2xsQ29udHJvbGxlciwgdXNlZCBm
b3IgcnViYmVyLWJhbmRpbmcKKyAgICAgICAgYW5kIHNjcm9sbCBzbmFwLgorCisgICAgICAgIEZp
cnN0LCB0aGV5IGNvdWxkIGZpcmUgb24gdGhlIG1haW4gdGhyZWFkIHdoZW4gd2UgaW50ZW5kZWQg
dGhlbSB0byBmaXJlIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgorICAgICAgICBUaGlzIGhhcHBl
bmVkIGJlY2F1c2UgaW4gcjI2MDcxNiBJIG1hZGUgdGhlIHNjcm9sbGluZyB0cmVlIGNvbW1pdCBv
biB0aGUgbWFpbiB0aHJlYWQsIHNvIHdlJ2QKKyAgICAgICAgY29uc3RydWN0IHRoZSBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjIGFuZCBpdHMgU2Nyb2xsQ29udHJvbGxlciB0
aGVyZSBhbmQgaXRzCisgICAgICAgIHRpbWVycyB3b3VsZCBncmFiIHRoZSBtYWluIHRocmVhZCBy
dW5sb29wLiBGaXggYnkgY3JlYXRpbmcgdGhlIHRpbWVycyBvbiBkZW1hbmQuCisKKyAgICAgICAg
U2Vjb25kbHksIHRoZSB0aW1lciBjYWxsYmFja3MgY2FsbGVkIGludG8gc2Nyb2xsaW5nIHRyZWUg
Y29kZSwgYnV0IHdpdGhvdXQgdGFraW5nCisgICAgICAgIHRoZSBzY3JvbGxpbmcgdHJlZSBsb2Nr
LAorICAgICAgICBhbmQgd2l0aG91dCBhbnkgZ3VhcmFudGVlIHRoYXQgdGhlIG5vZGUgd291bGQg
c3RheSBhbGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjay4KKyAgICAgICAgRml4
IGJ5IGhhdmluZyB0aGUgU2Nyb2xsQ29udHJvbGxlckNsaWVudCBjcmVhdGUgdGhlIHRpbWVycywg
YWxsb3dpbmcgdGhlIGNsaWVudCB0byBoYXZlCisgICAgICAgIGEgY2FsbGJhY2sgd3JhcHBlciB0
aGF0IGxvY2tzLCBhbmQgdG8gZW5zdXJlIG9iamVjdCBsaWZldGltZSAob3IgbWFrZSBhIHdlYWsg
cmVmKS4gTm93CisgICAgICAgIHRoYXQgc2Nyb2xsaW5nIHRyZWUgbm9kZXMgY291bGQgYmUgZXh0
ZW5kZWQgYnkgYSBwZW5kaW5nIHRpbWVyLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAgICAgICAg
Y2xlYXIgdGhlIHRpbWVycyB3aGVuIG5vZGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHRyZWUuCisK
KyAgICAgICAgRmluYWxseSwgcmVuYW1lIHNvbWUgY29uZnVzaW5nbHkgbmFtZWQgU2Nyb2xsQ29u
dHJvbGxlckNsaWVudCBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRy
ZWVTdGF0ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dHJlZU11dGV4KToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZU5vZGU6Ondhc0JlUmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6
d2FzQmVSZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjp3YXNC
ZVJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vZGVXaWxs
QmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYzo6Y3JlYXRlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OndpbGxTdGFydFNjcm9sbFNuYXBBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGlkU3RvcFNjcm9sbFNuYXBB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6c3RvcFNuYXBSdWJiZXJiYW5kVGltZXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RhcnRTY3Jv
bGxTbmFwVGltZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcFNjcm9sbFNuYXBUaW1lcik6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFs
aXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZVRpbWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXJUaW1lcjo6U2Nyb2xsQ29udHJvbGxlclRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OndpbGxTdGFydFJ1YmJlckJhbmRTbmFwQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OmRpZFN0b3BSdWJi
ZXJiYW5kU25hcEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVy
Q2xpZW50Ojp3aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OmRpZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OnN0YXJ0U25hcFJ1YmJlcmJh
bmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xp
ZW50OjpzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxDb250cm9sbGVyQ2xpZW50OjpzdGFydFNjcm9sbFNuYXBUaW1lcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xpZW50OjpzdG9wU2Nyb2xsU25h
cFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6U2Nyb2xsQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wQWxsVGltZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmRUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmlzUnViYmVyQmFu
ZEluUHJvZ3Jlc3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxD
b250cm9sbGVyOjpzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQ29udHJvbGxlcjo6c3RvcFNuYXBSdWJiZXJiYW5kVGltZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQ29udHJvbGxlcjo6c2NoZWR1bGVTdGF0ZWxlc3NTY3JvbGxTbmFwKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdGFydFNjcm9s
bFNuYXBUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wU2Ny
b2xsU25hcFRpbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aDoKKwogMjAyMC0wNS0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTY3JvbGxpbmcgdGhyZWFkIHNjcm9sbHMgb24gc3luYy1zY3JvbGxpbmcgc2Ny
b2xsZXJzIGRvbid0IGdldCB0byB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZTA4MDQyNjNkNGRjMWExZDAx
OWQxMTdkMWVhMzRiMWJjMTVkZDg2Ni4uYjBhYWFmYTA1YTJjMGM3MzNhNjc3Yjc3ZjM3NmE3MTg2
MGExNDUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKQEAgLTI1NSwxMCArMjU1LDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6Y29tbWl0
VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+JiYgc2Nyb2xsCiAg
ICAgcHJvcGFnYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKGNvbW1pdFN0YXRlLnN5bmNo
cm9ub3VzU2Nyb2xsaW5nTm9kZXMpOwogCiAgICAgZm9yIChhdXRvIG5vZGVJRCA6IGNvbW1pdFN0
YXRlLnVudmlzaXRlZE5vZGVzKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlIC0gcmVtb3ZpbmcgdW52
aXNpdGVkIG5vZGUgIiA8PCBub2RlSUQpOworCiAgICAgICAgIG1fbGF0Y2hpbmdDb250cm9sbGVy
Lm5vZGVXYXNSZW1vdmVkKG5vZGVJRCk7Ci0gICAgICAgIAotICAgICAgICBMT0coU2Nyb2xsaW5n
LCAiU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlIC0gcmVtb3ZpbmcgdW52aXNpdGVkIG5v
ZGUgJSIgUFJJdTY0LCBub2RlSUQpOwotICAgICAgICBtX25vZGVNYXAucmVtb3ZlKG5vZGVJRCk7
CisKKyAgICAgICAgaWYgKGF1dG8gbm9kZSA9IG1fbm9kZU1hcC50YWtlKG5vZGVJRCkpCisgICAg
ICAgICAgICBub2RlLT53YXNSZW1vdmVkRnJvbVRyZWUoKTsKICAgICB9CiAKICAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nVHJlZSwgc3RyZWFtIDw8ICJjb21taXR0ZWQgU2Nyb2xsaW5nVHJl
ZSIgPDwgc2Nyb2xsaW5nVHJlZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlv
ckRlYnVnKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmgKaW5kZXggYWExYmUxMzRjMmZhMzk3OWQxYzIzYTJkNzcwZmE4ZTE1MmRkODBmMS4uYmNiYTI3
NjcxOTI3OTI5NGU1OTY2MDI4MTNhY2E4NTNkNGI4OGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTc5LDYgKzE3OSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgbG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIHsgfQogCisgICAgTG9jayYg
dHJlZU11dGV4KCkgeyByZXR1cm4gbV90cmVlTXV0ZXg7IH0KKwogICAgIHZvaWQgd2luZG93U2Ny
ZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlELCBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5h
bEZyYW1lc1BlclNlY29uZCk7CiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVO
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5o
CmluZGV4IDMzMzVkMDZiYzc2MjI5M2M1YWE5Y2ZhODllMDhmY2I0M2U2MzcwOGUuLjRkZmE5NDUx
Nzg1NTU2MzYyYjVjY2Y2ZDEzMTJiYTdjNWRkZTU0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaApAQCAtNjEsNiArNjEsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3Qg
U2Nyb2xsaW5nU3RhdGVOb2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21taXRTdGF0ZUFm
dGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZENvbXBsZXRlQ29tbWl0Rm9yTm9kZSgpIHsgfQorICAgIAorICAgIHZpcnR1YWwgdm9p
ZCB3YXNSZW1vdmVkRnJvbVRyZWUoKSB7IH0KIAogICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJl
bnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQogICAgIHZvaWQgc2V0UGFyZW50KFNjcm9s
bGluZ1RyZWVOb2RlKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4IDIzNDQ3YWQ4MjA3MTFkZWQ1YTFk
NTUwOWMxNGJmMzIzZjc2MDgxMmQuLjExNjhlMDBjODc2Mzk5Zjk3Y2QxYWI0MDBiNzA5ZDVmNTlk
ODE5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaApAQCAt
NjMsNiArNjMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgZXhwb3NlZFVuZmlsbGVkQXJl
YSgpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIHZvaWQgd2FzUmVtb3ZlZEZyb21UcmVlKCkgZmlu
YWw7CisKICAgICBGbG9hdFBvaW50IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQ
b2ludCYsIFNjcm9sbENsYW1waW5nKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgY3VycmVu
dFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5kZXggMzI3
MTIzY2QyMDhjYWZmNGMzMzhiOGQyMTc2ZDZmYmIzZDk1MWVlNi4uNzEwNWY3NThhMmRjODQzYjNl
ZDRhYjU2YjQ1OTQzNTY1MzZjZDZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMubW0KQEAgLTU3LDYgKzU3LDExIEBAIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWM6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMoU2Nyb2xsaW5n
CiAKIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6On5TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjKCkgPSBkZWZhdWx0OwogCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWM6Ondhc1JlbW92ZWRGcm9tVHJlZSgpCit7CisgICAgbV9kZWxlZ2F0
ZS5ub2RlV2lsbEJlRGVzdHJveWVkKCk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdT
dGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaAppbmRleCBmM2RmM2ZiYzQ2MDFlMDRl
Yjc5NjU2MTgxODFjZDc2YzU0MWNiMDFmLi44YTc2M2E4ZTcyMzg3MGE3MGFlMzVmNjk3ZDc3YWYw
Y2U0Y2M3ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjLmgKQEAgLTUzLDYgKzUzLDggQEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ0V2ZW50UmVz
dWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CisgICAgdm9pZCB3YXNSZW1vdmVkRnJvbVRyZWUoKSBmaW5hbDsKKwogICAg
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMgbV9kZWxlZ2F0ZTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KaW5kZXgg
YjNmNWM1NTMyNzIyYjBiMjE3NDY0ZGViMTBkMTc3ZWRkMTU2OTUxZC4uZjliZjJmNTdhZDkwZjIw
OTkyYTE4NmZmNGIxMWMzYzE5YThiODcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVNYWMubW0KQEAgLTQ5LDYgKzQ5LDExIEBAIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVNYWMoU2NyCiAKIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6On5TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjKCkgPSBkZWZhdWx0OwogCit2b2lkIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6Ondhc1JlbW92ZWRGcm9tVHJlZSgp
Cit7CisgICAgbV9kZWxlZ2F0ZS5ub2RlV2lsbEJlRGVzdHJveWVkKCk7Cit9CisKIHZvaWQgU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGls
ZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsKICAgICBTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0
YXRlTm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMu
aAppbmRleCBmNWQ0ZGU1ODdmOWU5YTNkMzQ2ODU1NGQ1NjY1NGMwOTE5YmQ5MDcyLi4xNGRhNDJl
NDVlZmMzMzUyZDk0NDliNGU1ZmJhN2EzOGUyZTJhYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGljOgog
ICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMoU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUmKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjKCk7CiAKKyAgICB2b2lkIG5vZGVXaWxsQmVEZXN0cm95ZWQoKTsK
KwogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
IAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCkBAIC02NywyNCArNjksMjUgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAKICAgICAvLyBTY3Jv
bGxDb250cm9sbGVyQ2xpZW50LgotICAgIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmco
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhbGxv
d3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgSW50U2l6ZSBzdHJldGNoQW1vdW50KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmKSBjb25zdCBvdmVycmlkZTsK
LSAgICBib29sIGNhblNjcm9sbEhvcml6b250YWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJv
b2wgY2FuU2Nyb2xsVmVydGljYWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29u
c3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wU25hcFJ1YmJlcmJhbmRUaW1l
cigpIG92ZXJyaWRlOwotICAgIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVj
ZXNzYXJ5KCkgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJU
aW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKKyAgICBib29sIGFs
bG93c0hvcml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0
IGZpbmFsOworICAgIGJvb2wgYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0IGZpbmFsOworICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRTaXplJikg
Y29uc3QgZmluYWw7CisgICAgYm9vbCBjYW5TY3JvbGxIb3Jpem9udGFsbHkoKSBjb25zdCBmaW5h
bDsKKyAgICBib29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdCBmaW5hbDsKKyAgICBib29s
IHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJikgZmluYWw7Cisg
ICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeVdpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNv
bnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5p
bWF0aW9uKCkgZmluYWw7CisgICAgdm9pZCBhZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91bmRzSWZO
ZWNlc3NhcnkoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgRmxv
YXRQb2ludCBzY3JvbGxPZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGltbWVkaWF0
ZVNjcm9sbE9uQXhpcyhTY3JvbGxFdmVudEF4aXMsIGZsb2F0IGRlbHRhKSBvdmVycmlkZTsKICAg
ICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0
U2Nyb2xsU25hcFRpbWVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wU2Nyb2xsU25hcFRpbWVy
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRTdG9wU2Nyb2xsU25hcEFuaW1hdGlvbigpIGZpbmFsOwogICAgIExh
eW91dFNpemUgc2Nyb2xsRXh0ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgRmxvYXRTaXplIHZp
ZXdwb3J0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IGIxZmM3YTZhYjE3MzA2NzE5YWZl
NDZkN2FlMWNhZjc0ODY0YWEyMDMuLmEwYmM5N2E3MjM2ZWNjYWMxZjdhZTIwMWE4MzJhZjczM2M3
OWQwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Lm1tCkBAIC00OSw2ICs0OSwxMSBAQCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjOjp+U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYygpCiAgICAgcmVsZWFz
ZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOwogfQogCit2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vZGVXaWxsQmVEZXN0cm95ZWQo
KQoreworICAgIG1fc2Nyb2xsQ29udHJvbGxlci5zdG9wQWxsVGltZXJzKCk7Cit9CisKICNpZiBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogc3RhdGljIGlubGluZSBWZWN0b3I8TGF5b3V0VW5pdD4g
Y29udmVydFRvTGF5b3V0VW5pdHMoY29uc3QgVmVjdG9yPGZsb2F0PiYgc25hcE9mZnNldHNBc0Zs
b2F0KQogewpAQCAtMTcyLDYgKzE3NywxNCBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWM6OmlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1l
cj4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y3JlYXRlVGltZXIoRnVu
Y3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQoreworICAgIHJldHVybiBXVEY6Om1ha2VVbmlxdWU8
U2Nyb2xsQ29udHJvbGxlclRpbWVyPihSdW5Mb29wOjpjdXJyZW50KCksIFtmdW5jdGlvbiA9IFdU
Rk1vdmUoZnVuY3Rpb24pLCBwcm90ZWN0ZWROb2RlID0gbWFrZVJlZihzY3JvbGxpbmdOb2RlKCkp
XSB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKHByb3RlY3RlZE5vZGUtPnNjcm9sbGluZ1Ry
ZWUoKS50cmVlTXV0ZXgoKSk7CisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKIGJv
b2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpvbnRh
bFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25zdAog
ewogICAgIHN3aXRjaCAoaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKSkgewpAQCAtMjkzLDcg
KzMwNiw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6aW1t
ZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDCiAgICAgc2Nyb2xsaW5nTm9kZSgpLnNj
cm9sbEJ5KG9mZnNldCwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiB9CiAKLXZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcFNuYXBSdWJiZXJiYW5kVGlt
ZXIoKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkaWRTdG9w
UnViYmVyYmFuZFNuYXBBbmltYXRpb24oKQogewogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRNYWlu
RnJhbWVJc1J1YmJlckJhbmRpbmcoZmFsc2UpOwogCkBAIC0zMzYsMTIgKzM0OSwxMiBAQCBmbG9h
dCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpwYWdlU2NhbGVGYWN0b3Io
KSBjb25zdAogICAgIHJldHVybiAxOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWM6OnN0YXJ0U2Nyb2xsU25hcFRpbWVyKCkKK3ZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6d2lsbFN0YXJ0U2Nyb2xsU25hcEFuaW1hdGlvbigp
CiB7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcodHJ1
ZSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3Rv
cFNjcm9sbFNuYXBUaW1lcigpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OmRpZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKCkKIHsKICAgICBzY3JvbGxpbmdUcmVl
KCkuc2V0TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggMGZjNzI5ZTkxMmI1NzBjYjIzM2Q4
ODc4ZWE4ZjYwMTFiYWQ2NDc4Ny4uM2UyY2Q1M2E4NmQzNmJlZTcyYTQ5MDNlZjllZjU0NDk1N2Q0
NDc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAt
MjQxLDYgKzI0MSwxNSBAQCBGbG9hdFNpemUgU2Nyb2xsQW5pbWF0b3I6OnZpZXdwb3J0U2l6ZSgp
IGNvbnN0CiAKICNlbmRpZgogCitzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVy
PiBTY3JvbGxBbmltYXRvcjo6Y3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9u
KQoreworICAgIHJldHVybiBXVEY6Om1ha2VVbmlxdWU8U2Nyb2xsQ29udHJvbGxlclRpbWVyPihS
dW5Mb29wOjpjdXJyZW50KCksIFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pLCB3ZWFrU2Ny
b2xsYWJsZUFyZWEgPSBtYWtlV2Vha1B0cihtX3Njcm9sbGFibGVBcmVhKV0geworICAgICAgICBp
ZiAoIXdlYWtTY3JvbGxhYmxlQXJlYSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZnVu
Y3Rpb24oKTsKKyAgICB9KTsKK30KKwogI2lmIChFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBF
TkFCTEUoUlVCQkVSX0JBTkRJTkcpKSAmJiBQTEFURk9STShNQUMpCiB2b2lkIFNjcm9sbEFuaW1h
dG9yOjpkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNvbihXaGVlbEV2ZW50VGVz
dE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uIHJlYXNvbikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IDY2MTE4N2E3MWMwODljNGE4YWMwZjczNmRm
ZjNmMWEzZmEyMTc0MjEuLjExYjg2MmM5NzkxM2Y2NzBiMDYzODQxNmM1NWQ4ZDZmNWY0ZjZjMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApAQCAtNDcsNiArNDcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgUGxhdGZv
cm1Ub3VjaEV2ZW50OwogY2xhc3MgU2Nyb2xsQW5pbWF0aW9uOworY2xhc3MgU2Nyb2xsQ29udHJv
bGxlclRpbWVyOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiBjbGFzcyBTY3JvbGxiYXI7CiBjbGFz
cyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CkBAIC0xMjYsNiArMTI3LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgU3RyaW5nIGhvcml6b250YWxTY3JvbGxiYXJTdGF0ZUZvclRlc3RpbmcoKSBjb25z
dCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgdmVydGljYWxT
Y3JvbGxiYXJTdGF0ZUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9
CiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBjcmVhdGVUaW1l
cihGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOworCiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVz
dE1vbml0b3IoUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBt
X3doZWVsRXZlbnRUZXN0TW9uaXRvciA9IHRlc3RNb25pdG9yOyB9CiAKICNpZiAoRU5BQkxFKENT
U19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkgJiYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5o
CmluZGV4IDc1NDZiOWZhMzUwZWQxMTI2ODM2OWZlNzJjMjhhOGZmNjc3ZGIwOTQuLjU4OWE3MWRj
MWFmY2ViYWU2MDdjNTVmNzVlZjMzMWNhOGJlMjI4OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTQzLDE0ICs0MywzNCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIExheW91dFNpemU7CiBjbGFzcyBQbGF0Zm9ybVdo
ZWVsRXZlbnQ7CitjbGFzcyBTY3JvbGxDb250cm9sbGVyOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7
CiBjbGFzcyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKK2NsYXNzIFNjcm9sbENvbnRyb2xsZXJU
aW1lciA6IHB1YmxpYyBSdW5Mb29wOjpUaW1lckJhc2UgeworcHVibGljOgorICAgIFNjcm9sbENv
bnRyb2xsZXJUaW1lcihSdW5Mb29wJiBydW5Mb29wLCBGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJh
Y2spCisgICAgICAgIDogUnVuTG9vcDo6VGltZXJCYXNlKHJ1bkxvb3ApCisgICAgICAgICwgbV9j
YWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBmaXJl
ZCgpIGZpbmFsCisgICAgeworICAgICAgICBtX2NhbGxiYWNrKCk7CisgICAgfQorCitwcml2YXRl
OgorICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9jYWxsYmFjazsKK307CisKIGNsYXNzIFNjcm9sbENv
bnRyb2xsZXJDbGllbnQgewogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflNjcm9sbENvbnRyb2xs
ZXJDbGllbnQoKSA9IGRlZmF1bHQ7CiAKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVl
X3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IGNyZWF0ZVRpbWVyKEZ1bmN0aW9uPHZvaWQoKT4m
JikgPSAwOworCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIHZpcnR1YWwgYm9vbCBh
bGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBib29sIGFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdCA9IDA7CkBAIC02MywxNSArODMsOCBAQCBwdWJsaWM6
CiAgICAgLy8gRklYTUU6IHVzZSBTY3JvbGxDbGFtcGluZyB0byBjb2xsYXBzZSB0aGVzZSB0byBv
bmUuCiAgICAgdmlydHVhbCB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVk
Z2VDb25zdHJhaW50cyhjb25zdCBGbG9hdFNpemUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0
YXJ0U25hcFJ1YmJlcmJhbmRUaW1lcigpCi0gICAgewotICAgICAgICAvLyBPdmVycmlkZSB0byBw
ZXJmb3JtIGNsaWVudC1zcGVjaWZpYyBzbmFwIHN0YXJ0IGxvZ2ljCi0gICAgfQotCi0gICAgdmly
dHVhbCB2b2lkIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVyKCkKLSAgICB7Ci0gICAgICAgIC8vIE92
ZXJyaWRlIHRvIHBlcmZvcm0gY2xpZW50LXNwZWNpZmljIHNuYXAgZW5kIGxvZ2ljCi0gICAgfQor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRSdWJiZXJCYW5kU25hcEFuaW1hdGlvbigpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wUnViYmVyYmFuZFNuYXBBbmltYXRpb24oKSB7IH0KICAg
ICAKICAgICAvLyBJZiB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gaXMgd2l0aGluIHRoZSBv
dmVyaGFuZyBhcmVhLCB0aGlzIGZ1bmN0aW9uIHdpbGwgY2F1c2UKICAgICAvLyB0aGUgcGFnZSB0
byBzY3JvbGwgdG8gdGhlIG5lYXJlc3QgYm91bmRhcnkgcG9pbnQuCkBAIC04NCwxNSArOTcsOCBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICB2aXJ0dWFsIEZsb2F0
UG9pbnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbW1lZGlh
dGVTY3JvbGxPbkF4aXMoU2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBkZWx0YSkgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBzdGFydFNjcm9sbFNuYXBUaW1lcigpCi0gICAgewotICAgICAgICAvLyBPdmVy
cmlkZSB0byBwZXJmb3JtIGNsaWVudC1zcGVjaWZpYyBzY3JvbGwgc25hcCBwb2ludCBzdGFydCBs
b2dpYwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBzdG9wU2Nyb2xsU25hcFRpbWVyKCkKLSAg
ICB7Ci0gICAgICAgIC8vIE92ZXJyaWRlIHRvIHBlcmZvcm0gY2xpZW50LXNwZWNpZmljIHNjcm9s
bCBzbmFwIHBvaW50IGVuZCBsb2dpYwotICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0
U2Nyb2xsU25hcEFuaW1hdGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wU2Nyb2xs
U25hcEFuaW1hdGlvbigpIHsgfQogCiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3Io
KSBjb25zdAogICAgIHsKQEAgLTE1MSw2ICsxNTcsOCBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFz
cyBXaGVlbEF4aXNCaWFzIHsgTm9uZSwgVmVydGljYWwgfTsKICAgICBzdGF0aWMgT3B0aW9uYWw8
U2Nyb2xsRGlyZWN0aW9uPiBkaXJlY3Rpb25Gcm9tRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiwgT3B0aW9uYWw8U2Nyb2xsRXZlbnRBeGlzPiwgV2hlZWxBeGlzQmlhcyA9IFdoZWVsQXhp
c0JpYXM6Ok5vbmUpOwogCisgICAgdm9pZCBzdG9wQWxsVGltZXJzKCk7CisKIHByaXZhdGU6CiAj
aWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIHZvaWQgc3RhcnRTbmFwUnViYmVyYmFuZFRp
bWVyKCk7CkBAIC0xOTIsMTUgKzIwMCwxNSBAQCBwcml2YXRlOgogICAgIENGVGltZUludGVydmFs
IG1fc3RhcnRUaW1lIHsgMCB9OwogICAgIEZsb2F0U2l6ZSBtX3N0YXJ0U3RyZXRjaDsKICAgICBG
bG9hdFNpemUgbV9vcmlnVmVsb2NpdHk7Ci0gICAgUnVuTG9vcDo6VGltZXI8U2Nyb2xsQ29udHJv
bGxlcj4gbV9zbmFwUnViYmVyYmFuZFRpbWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxD
b250cm9sbGVyVGltZXI+IG1fc25hcFJ1YmJlcmJhbmRUaW1lcjsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKENTU19TQ1JPTExfU05BUCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGU+IG1fc2Nyb2xsU25hcFN0YXRlOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBGbG9h
dFNpemUgbV9kcmFnRW5kZWRTY3JvbGxpbmdWZWxvY2l0eTsKLSAgICBSdW5Mb29wOjpUaW1lcjxT
Y3JvbGxDb250cm9sbGVyPiBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXI7Ci0gICAgUnVu
TG9vcDo6VGltZXI8U2Nyb2xsQ29udHJvbGxlcj4gbV9zY3JvbGxTbmFwVGltZXI7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1lcj4gbV9zdGF0ZWxlc3NTbmFwVHJhbnNp
dGlvblRpbWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IG1f
c2Nyb2xsU25hcFRpbWVyOwogI2VuZGlmCiAjZW5kaWYKIApAQCAtMjA4LDcgKzIxNiw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2luU2Nyb2xsR2VzdHVyZSB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lnbm9yZU1v
bWVudHVtU2Nyb2xscyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3NuYXBSdWJiZXJiYW5kVGltZXJJ
c0FjdGl2ZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIGJvb2wgbV9hY3RpdmVTY3JvbGxTbmFw
SW5kZXhEaWRDaGFuZ2UgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggMGY0MWE3MmM0NWY3MDUyOTdhMjBhODgz
YmRmYmQ4Y2FjYjdmOWMzZC4uNjE3YjZkYjY0MjBiN2RkYzgyODNkODA5MDljNmY4Mjk1MmFiMjUx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLm1tCkBAIC04NiwxNCArODYsMjMgQEAgc3RhdGljIFNjcm9sbEV2ZW50QXhpcyBvdGhlclNj
cm9sbEV2ZW50QXhpcyhTY3JvbGxFdmVudEF4aXMgYXhpcykKIAogU2Nyb2xsQ29udHJvbGxlcjo6
U2Nyb2xsQ29udHJvbGxlcihTY3JvbGxDb250cm9sbGVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBt
X2NsaWVudChjbGllbnQpCit7Cit9CisKK3ZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RvcEFsbFRp
bWVycygpCit7CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQotICAgICwgbV9zbmFwUnViYmVy
YmFuZFRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJlNjcm9sbENvbnRyb2xsZXI6OnNu
YXBSdWJiZXJCYW5kVGltZXJGaXJlZCkKKyAgICBpZiAobV9zbmFwUnViYmVyYmFuZFRpbWVyKQor
ICAgICAgICBtX3NuYXBSdWJiZXJiYW5kVGltZXItPnN0b3AoKTsKICNlbmRpZgorCiAjaWYgRU5B
QkxFKENTU19TQ1JPTExfU05BUCkgJiYgUExBVEZPUk0oTUFDKQotICAgICwgbV9zdGF0ZWxlc3NT
bmFwVHJhbnNpdGlvblRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJlNjcm9sbENvbnRy
b2xsZXI6OnN0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXJGaXJlZCkKLSAgICAsIG1fc2Nyb2xs
U25hcFRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJlNjcm9sbENvbnRyb2xsZXI6OnNj
cm9sbFNuYXBUaW1lckZpcmVkKQorICAgIGlmIChtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGlt
ZXIpCisgICAgICAgIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lci0+c3RvcCgpOworCisg
ICAgaWYgKG1fc2Nyb2xsU25hcFRpbWVyKQorICAgICAgICBtX3Njcm9sbFNuYXBUaW1lci0+c3Rv
cCgpOwogI2VuZGlmCi17CiB9CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMzksNyArMTQ4LDcg
QEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICB9CiAKICAgICBib29sIGlzTW9tZW50dW1TY3Jv
bGxFdmVudCA9ICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSAhPSBQbGF0Zm9ybVdoZWVsRXZl
bnRQaGFzZU5vbmUpOwotICAgIGlmIChtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyAmJiAoaXNNb21l
bnR1bVNjcm9sbEV2ZW50IHx8IG1fc25hcFJ1YmJlcmJhbmRUaW1lcklzQWN0aXZlKSkgeworICAg
IGlmIChtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyAmJiAoaXNNb21lbnR1bVNjcm9sbEV2ZW50IHx8
IG1fc25hcFJ1YmJlcmJhbmRUaW1lcikpIHsKICAgICAgICAgaWYgKHdoZWVsRXZlbnQubW9tZW50
dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQpIHsKICAgICAgICAgICAg
IG1faWdub3JlTW9tZW50dW1TY3JvbGxzID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTM4NSwxMCArMzk0LDEwIEBAIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJl
ckJhbmRUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGlmIChtX3N0YXJ0U3RyZXRjaCA9PSBGbG9h
dFNpemUoKSkgewogICAgICAgICAgICAgICAgIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVyKCk7CiAK
LSAgICAgICAgICAgICAgICBtX3N0cmV0Y2hTY3JvbGxGb3JjZSA9IEZsb2F0U2l6ZSgpOworICAg
ICAgICAgICAgICAgIG1fc3RyZXRjaFNjcm9sbEZvcmNlID0geyB9OwogICAgICAgICAgICAgICAg
IG1fc3RhcnRUaW1lID0gMDsKLSAgICAgICAgICAgICAgICBtX3N0YXJ0U3RyZXRjaCA9IEZsb2F0
U2l6ZSgpOwotICAgICAgICAgICAgICAgIG1fb3JpZ1ZlbG9jaXR5ID0gRmxvYXRTaXplKCk7Cisg
ICAgICAgICAgICAgICAgbV9zdGFydFN0cmV0Y2ggPSB7IH07CisgICAgICAgICAgICAgICAgbV9v
cmlnVmVsb2NpdHkgPSB7IH07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogCkBAIC00MjEsMTQgKzQzMCwxNCBAQCB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnNuYXBSdWJi
ZXJCYW5kVGltZXJGaXJlZCgpCiAgICAgICAgICAgICBtX2NsaWVudC5hZGp1c3RTY3JvbGxQb3Np
dGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKTsKIAogICAgICAgICAgICAgc3RvcFNuYXBSdWJiZXJi
YW5kVGltZXIoKTsKLSAgICAgICAgICAgIG1fc3RyZXRjaFNjcm9sbEZvcmNlID0gRmxvYXRTaXpl
KCk7CisgICAgICAgICAgICBtX3N0cmV0Y2hTY3JvbGxGb3JjZSA9IHsgfTsKICAgICAgICAgICAg
IG1fc3RhcnRUaW1lID0gMDsKLSAgICAgICAgICAgIG1fc3RhcnRTdHJldGNoID0gRmxvYXRTaXpl
KCk7Ci0gICAgICAgICAgICBtX29yaWdWZWxvY2l0eSA9IEZsb2F0U2l6ZSgpOworICAgICAgICAg
ICAgbV9zdGFydFN0cmV0Y2ggPSB7IH07CisgICAgICAgICAgICBtX29yaWdWZWxvY2l0eSA9IHsg
fTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fc3RhcnRUaW1lID0gW05TRGF0
ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOwotICAgICAgICBtX3N0YXJ0U3RyZXRj
aCA9IEZsb2F0U2l6ZSgpOworICAgICAgICBtX3N0YXJ0U3RyZXRjaCA9IHsgfTsKICAgICAgICAg
aWYgKCFpc1J1YmJlckJhbmRJblByb2dyZXNzKCkpCiAgICAgICAgICAgICBzdG9wU25hcFJ1YmJl
cmJhbmRUaW1lcigpOwogICAgIH0KQEAgLTQzOCw3ICs0NDcsNyBAQCB2b2lkIFNjcm9sbENvbnRy
b2xsZXI6OnNuYXBSdWJiZXJCYW5kVGltZXJGaXJlZCgpCiBib29sIFNjcm9sbENvbnRyb2xsZXI6
OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdAogewogI2lmIEVOQUJMRShSVUJCRVJfQkFO
RElORykgJiYgUExBVEZPUk0oTUFDKQotICAgIGlmICghbV9pblNjcm9sbEdlc3R1cmUgJiYgIW1f
bW9tZW50dW1TY3JvbGxJblByb2dyZXNzICYmICFtX3NuYXBSdWJiZXJiYW5kVGltZXJJc0FjdGl2
ZSkKKyAgICBpZiAoIW1faW5TY3JvbGxHZXN0dXJlICYmICFtX21vbWVudHVtU2Nyb2xsSW5Qcm9n
cmVzcyAmJiAhbV9zbmFwUnViYmVyYmFuZFRpbWVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICByZXR1cm4gIW1fY2xpZW50LnN0cmV0Y2hBbW91bnQoKS5pc1plcm8oKTsKQEAgLTQ1MCw3
ICs0NTksNyBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3Mo
KSBjb25zdAogYm9vbCBTY3JvbGxDb250cm9sbGVyOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKCkg
Y29uc3QKIHsKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSAmJiBQTEFURk9STShNQUMpCi0g
ICAgaWYgKG1faW5TY3JvbGxHZXN0dXJlIHx8IG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzIHx8
IG1fc2Nyb2xsU25hcFRpbWVyLmlzQWN0aXZlKCkpCisgICAgaWYgKG1faW5TY3JvbGxHZXN0dXJl
IHx8IG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzIHx8IG1fc2Nyb2xsU25hcFRpbWVyKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKQEAgLTQ1OSwxNyAr
NDY4LDI1IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygp
IGNvbnN0CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogdm9pZCBTY3JvbGxDb250cm9sbGVy
OjpzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIoKQogewotICAgIG1fY2xpZW50LnN0YXJ0U25hcFJ1
YmJlcmJhbmRUaW1lcigpOwotICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lci5zdGFydFJlcGVhdGlu
ZygxX3MgLyA2MC4pOworICAgIG1fY2xpZW50LndpbGxTdGFydFJ1YmJlckJhbmRTbmFwQW5pbWF0
aW9uKCk7CisKKyAgICAvLyBNYWtlIGEgbmV3IG9uZSBlYWNoIHRpbWUgdG8gZW5zdXJlIGl0IGZp
cmVzIG9uIHRoZSBjdXJyZW50IFJ1bkxvb3AuCisgICAgbV9zbmFwUnViYmVyYmFuZFRpbWVyID0g
bV9jbGllbnQuY3JlYXRlVGltZXIoW3RoaXNdIHsKKyAgICAgICAgc25hcFJ1YmJlckJhbmRUaW1l
ckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9zbmFwUnViYmVyYmFuZFRpbWVyLT5zdGFydFJlcGVh
dGluZygxX3MgLyA2MC4pOwogCiAgICAgbV9jbGllbnQuZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBs
ZXRpb25Gb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNj
cm9sbGFibGVBcmVhSWRlbnRpZmllcj4odGhpcyksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UnVi
YmVyYmFuZEluUHJvZ3Jlc3MpOwogfQogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0b3BTbmFw
UnViYmVyYmFuZFRpbWVyKCkKIHsKLSAgICBtX2NsaWVudC5zdG9wU25hcFJ1YmJlcmJhbmRUaW1l
cigpOwotICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lci5zdG9wKCk7Ci0gICAgbV9zbmFwUnViYmVy
YmFuZFRpbWVySXNBY3RpdmUgPSBmYWxzZTsKKyAgICBtX2NsaWVudC5kaWRTdG9wUnViYmVyYmFu
ZFNuYXBBbmltYXRpb24oKTsKKyAgICAKKyAgICBpZiAobV9zbmFwUnViYmVyYmFuZFRpbWVyKSB7
CisgICAgICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lci0+c3RvcCgpOworICAgICAgICBtX3NuYXBS
dWJiZXJiYW5kVGltZXIgPSBudWxscHRyOworICAgIH0KICAgICAKICAgICBtX2NsaWVudC5yZW1v
dmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9j
YXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPih0aGlz
KSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSdWJiZXJiYW5kSW5Qcm9ncmVzcyk7CiB9CkBAIC00
ODIsMTUgKzQ5OSwxNCBAQCB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnNuYXBSdWJiZXJCYW5kKCkK
IAogICAgIG1faW5TY3JvbGxHZXN0dXJlID0gZmFsc2U7CiAKLSAgICBpZiAobV9zbmFwUnViYmVy
YmFuZFRpbWVySXNBY3RpdmUpCisgICAgaWYgKG1fc25hcFJ1YmJlcmJhbmRUaW1lcikKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbV9zdGFydFRpbWUgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNl
UmVmZXJlbmNlRGF0ZV07Ci0gICAgbV9zdGFydFN0cmV0Y2ggPSBGbG9hdFNpemUoKTsKLSAgICBt
X29yaWdWZWxvY2l0eSA9IEZsb2F0U2l6ZSgpOworICAgIG1fc3RhcnRTdHJldGNoID0geyB9Owor
ICAgIG1fb3JpZ1ZlbG9jaXR5ID0geyB9OwogCiAgICAgc3RhcnRTbmFwUnViYmVyYmFuZFRpbWVy
KCk7Ci0gICAgbV9zbmFwUnViYmVyYmFuZFRpbWVySXNBY3RpdmUgPSB0cnVlOwogfQogCiBib29s
IFNjcm9sbENvbnRyb2xsZXI6OnNob3VsZFJ1YmJlckJhbmRJbkhvcml6b250YWxEaXJlY3Rpb24o
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25zdApAQCAtNTY0LDE3ICs1
ODAsMjUgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpzaG91bGRPdmVycmlkZUluZXJ0aWFsU2Ny
b2xsaW5nKCkgY29uc3QKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c2NoZWR1bGVTdGF0ZWxlc3NT
Y3JvbGxTbmFwKCkKIHsKICAgICBzdG9wU2Nyb2xsU25hcFRpbWVyKCk7Ci0gICAgbV9zdGF0ZWxl
c3NTbmFwVHJhbnNpdGlvblRpbWVyLnN0b3AoKTsKKyAgICBpZiAobV9zdGF0ZWxlc3NTbmFwVHJh
bnNpdGlvblRpbWVyKSB7CisgICAgICAgIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lci0+
c3RvcCgpOworICAgICAgICBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXIgPSBudWxscHRy
OworICAgIH0KICAgICBpZiAoIW1fc2Nyb2xsU25hcFN0YXRlKQogICAgICAgICByZXR1cm47CiAK
ICAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBzdGF0ZWxlc3NTY3JvbGxTbmFwRGVsYXkgPSA3NTBf
bXM7Ci0gICAgbV9zdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyLnN0YXJ0T25lU2hvdChzdGF0
ZWxlc3NTY3JvbGxTbmFwRGVsYXkpOworICAgIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1l
ciA9IG1fY2xpZW50LmNyZWF0ZVRpbWVyKFt0aGlzXSB7CisgICAgICAgIHN0YXRlbGVzc1NuYXBU
cmFuc2l0aW9uVGltZXJGaXJlZCgpOworICAgIH0pOworICAgIG1fc3RhdGVsZXNzU25hcFRyYW5z
aXRpb25UaW1lci0+c3RhcnRPbmVTaG90KHN0YXRlbGVzc1Njcm9sbFNuYXBEZWxheSk7CiAgICAg
c3RhcnREZWZlcnJpbmdXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EdWVUb1Njcm9sbFNuYXBwaW5n
KCk7CiB9CiAKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RhdGVsZXNzU25hcFRyYW5zaXRpb25U
aW1lckZpcmVkKCkKIHsKKyAgICBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXIgPSBudWxs
cHRyOworCiAgICAgaWYgKCFtX3Njcm9sbFNuYXBTdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC02MzYsMjIgKzY2MCwyNyBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OnByb2Nlc3NXaGVlbEV2
ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmCiAKIHZvaWQgU2Nyb2xs
Q29udHJvbGxlcjo6c3RhcnRTY3JvbGxTbmFwVGltZXIoKQogewotICAgIGlmIChtX3Njcm9sbFNu
YXBUaW1lci5pc0FjdGl2ZSgpKQorICAgIGlmIChtX3Njcm9sbFNuYXBUaW1lcikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgc3RhcnREZWZlcnJpbmdXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EdWVU
b1Njcm9sbFNuYXBwaW5nKCk7Ci0gICAgbV9jbGllbnQuc3RhcnRTY3JvbGxTbmFwVGltZXIoKTsK
LSAgICBtX3Njcm9sbFNuYXBUaW1lci5zdGFydFJlcGVhdGluZygxX3MgLyA2MC4pOworICAgIG1f
Y2xpZW50LndpbGxTdGFydFNjcm9sbFNuYXBBbmltYXRpb24oKTsKKyAgICBtX3Njcm9sbFNuYXBU
aW1lciA9IG1fY2xpZW50LmNyZWF0ZVRpbWVyKFt0aGlzXSB7CisgICAgICAgIHNjcm9sbFNuYXBU
aW1lckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9zY3JvbGxTbmFwVGltZXItPnN0YXJ0UmVwZWF0
aW5nKDFfcyAvIDYwLik7CiB9CiAKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RvcFNjcm9sbFNu
YXBUaW1lcigpCiB7Ci0gICAgaWYgKCFtX3Njcm9sbFNuYXBUaW1lci5pc0FjdGl2ZSgpKQorICAg
IGlmICghbV9zY3JvbGxTbmFwVGltZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIHN0b3BEZWZl
cnJpbmdXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EdWVUb1Njcm9sbFNuYXBwaW5nKCk7Ci0gICAg
bV9jbGllbnQuc3RvcFNjcm9sbFNuYXBUaW1lcigpOwotICAgIG1fc2Nyb2xsU25hcFRpbWVyLnN0
b3AoKTsKKyAgICBtX2NsaWVudC5kaWRTdG9wU2Nyb2xsU25hcEFuaW1hdGlvbigpOworCisgICAg
bV9zY3JvbGxTbmFwVGltZXItPnN0b3AoKTsKKyAgICBtX3Njcm9sbFNuYXBUaW1lciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c2Nyb2xsU25hcFRpbWVyRmlyZWQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRl
eCBlZjZlZWEwNTJhNTVlYWVjZDFiYTdjYWE1YjNhM2E2MDQ2Y2I5ZmEzLi5lM2MzYzBhMTdkYzAx
N2YxYmUxNTYyZmJkOGZhYWU0ZjBlOGNkOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtNDYsNyArNDYsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBTY3JvbGxiYXI7CiAKIGNsYXNzIFNjcm9sbEFuaW1hdG9yTWFjIDog
cHVibGljIFNjcm9sbEFuaW1hdG9yIHsKLQogcHVibGljOgogICAgIFNjcm9sbEFuaW1hdG9yTWFj
KFNjcm9sbGFibGVBcmVhJik7CiAgICAgdmlydHVhbCB+U2Nyb2xsQW5pbWF0b3JNYWMoKTsKQEAg
LTE0MSwxOCArMTQwLDE4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGhvcml6b250YWxTY3JvbGxi
YXJTdGF0ZUZvclRlc3RpbmcoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgdmVydGljYWxTY3Jv
bGxiYXJTdGF0ZUZvclRlc3RpbmcoKSBjb25zdCBmaW5hbDsKIAorICAgIC8vIFNjcm9sbENvbnRy
b2xsZXJDbGllbnQuCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQotICAgIC8vLyBTY3JvbGxD
b250cm9sbGVyQ2xpZW50IG1lbWJlciBmdW5jdGlvbnMuCi0gICAgSW50U2l6ZSBzdHJldGNoQW1v
dW50KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhbGxvd3NIb3Jpem9udGFsU3RyZXRjaGlu
Zyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGFs
bG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdCBv
dmVycmlkZTsKLSAgICBib29sIHBpbm5lZEluRGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6ZSYpIGNv
bnN0IG92ZXJyaWRlOwotICAgIGJvb2wgY2FuU2Nyb2xsSG9yaXpvbnRhbGx5KCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBjYW5TY3JvbGxWZXJ0aWNhbGx5KCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdl
Q29uc3RyYWludHMoY29uc3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbW1lZGlh
dGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGFkanVzdFNj
cm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpIG92ZXJyaWRlOworICAgIEludFNpemUg
c3RyZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0
cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QgZmluYWw7CisgICAgYm9v
bCBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29u
c3QgZmluYWw7CisgICAgYm9vbCBwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmKSBj
b25zdCBmaW5hbDsKKyAgICBib29sIGNhblNjcm9sbEhvcml6b250YWxseSgpIGNvbnN0IGZpbmFs
OworICAgIGJvb2wgY2FuU2Nyb2xsVmVydGljYWxseSgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wg
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QgZmluYWw7
CisgICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeVdpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRz
KGNvbnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnkoY29u
c3QgRmxvYXRTaXplJikgZmluYWw7CisgICAgdm9pZCBhZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91
bmRzSWZOZWNlc3NhcnkoKSBmaW5hbDsKIAogICAgIGJvb2wgaXNBbHJlYWR5UGlubmVkSW5EaXJl
Y3Rpb25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsRXZlbnRBeGlz
KSBjb25zdDsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399999</attachid>
            <date>2020-05-21 16:48:42 -0700</date>
            <delta_ts>2020-05-21 16:57:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212238-20200521164841.patch</filename>
            <type>text/plain</type>
            <size>31791</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU4MDI4NTQ0ZjY3YmMw
MWExNDZlNTAyMGI4OTkwNGIxODNjZDI1MC4uNDAzOTgxNGVjMTNkMmFlNjUxNTUwNGY5MWU2Mzhl
ODZiMWIzMGM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTA1LTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBzb21lIHRo
cmVhZCBzYWZldHkgaXNzdWVzIHdpdGggU2Nyb2xsQ29udHJvbGxlciB0aW1lcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjIzOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdlcmUgc29tZSBw
cm9ibGVtcyB3aXRoIHRoZSB0aW1lcnMgZmlyZWQgYnkgU2Nyb2xsQ29udHJvbGxlciwgdXNlZCBm
b3IgcnViYmVyLWJhbmRpbmcKKyAgICAgICAgYW5kIHNjcm9sbCBzbmFwLgorCisgICAgICAgIEZp
cnN0LCB0aGV5IGNvdWxkIGZpcmUgb24gdGhlIG1haW4gdGhyZWFkIHdoZW4gd2UgaW50ZW5kZWQg
dGhlbSB0byBmaXJlIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgorICAgICAgICBUaGlzIGhhcHBl
bmVkIGJlY2F1c2UgaW4gcjI2MDcxNiBJIG1hZGUgdGhlIHNjcm9sbGluZyB0cmVlIGNvbW1pdCBv
biB0aGUgbWFpbiB0aHJlYWQsIHNvIHdlJ2QKKyAgICAgICAgY29uc3RydWN0IHRoZSBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjIGFuZCBpdHMgU2Nyb2xsQ29udHJvbGxlciB0
aGVyZSBhbmQgaXRzCisgICAgICAgIHRpbWVycyB3b3VsZCBncmFiIHRoZSBtYWluIHRocmVhZCBy
dW5sb29wLiBGaXggYnkgY3JlYXRpbmcgdGhlIHRpbWVycyBvbiBkZW1hbmQuCisKKyAgICAgICAg
U2Vjb25kbHksIHRoZSB0aW1lciBjYWxsYmFja3MgY2FsbGVkIGludG8gc2Nyb2xsaW5nIHRyZWUg
Y29kZSwgYnV0IHdpdGhvdXQgdGFraW5nCisgICAgICAgIHRoZSBzY3JvbGxpbmcgdHJlZSBsb2Nr
LAorICAgICAgICBhbmQgd2l0aG91dCBhbnkgZ3VhcmFudGVlIHRoYXQgdGhlIG5vZGUgd291bGQg
c3RheSBhbGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjay4KKyAgICAgICAgRml4
IGJ5IGhhdmluZyB0aGUgU2Nyb2xsQ29udHJvbGxlckNsaWVudCBjcmVhdGUgdGhlIHRpbWVycywg
YWxsb3dpbmcgdGhlIGNsaWVudCB0byBoYXZlCisgICAgICAgIGEgY2FsbGJhY2sgd3JhcHBlciB0
aGF0IGxvY2tzLCBhbmQgdG8gZW5zdXJlIG9iamVjdCBsaWZldGltZSAob3IgbWFrZSBhIHdlYWsg
cmVmKS4gTm93CisgICAgICAgIHRoYXQgc2Nyb2xsaW5nIHRyZWUgbm9kZXMgY291bGQgYmUgZXh0
ZW5kZWQgYnkgYSBwZW5kaW5nIHRpbWVyLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAgICAgICAg
Y2xlYXIgdGhlIHRpbWVycyB3aGVuIG5vZGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHRyZWUuCisK
KyAgICAgICAgRmluYWxseSwgcmVuYW1lIHNvbWUgY29uZnVzaW5nbHkgbmFtZWQgU2Nyb2xsQ29u
dHJvbGxlckNsaWVudCBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRy
ZWVTdGF0ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dHJlZU11dGV4KToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZU5vZGU6Ondhc0JlUmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6
d2FzQmVSZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjp3YXNC
ZVJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vZGVXaWxs
QmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYzo6Y3JlYXRlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OndpbGxTdGFydFNjcm9sbFNuYXBBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGlkU3RvcFNjcm9sbFNuYXBB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6c3RvcFNuYXBSdWJiZXJiYW5kVGltZXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RhcnRTY3Jv
bGxTbmFwVGltZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcFNjcm9sbFNuYXBUaW1lcik6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFs
aXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZVRpbWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXJUaW1lcjo6U2Nyb2xsQ29udHJvbGxlclRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OndpbGxTdGFydFJ1YmJlckJhbmRTbmFwQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OmRpZFN0b3BSdWJi
ZXJiYW5kU25hcEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVy
Q2xpZW50Ojp3aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OmRpZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OnN0YXJ0U25hcFJ1YmJlcmJh
bmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xp
ZW50OjpzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxDb250cm9sbGVyQ2xpZW50OjpzdGFydFNjcm9sbFNuYXBUaW1lcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xpZW50OjpzdG9wU2Nyb2xsU25h
cFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6U2Nyb2xsQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wQWxsVGltZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmRUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmlzUnViYmVyQmFu
ZEluUHJvZ3Jlc3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxD
b250cm9sbGVyOjpzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQ29udHJvbGxlcjo6c3RvcFNuYXBSdWJiZXJiYW5kVGltZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQ29udHJvbGxlcjo6c2NoZWR1bGVTdGF0ZWxlc3NTY3JvbGxTbmFwKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdGFydFNjcm9s
bFNuYXBUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wU2Ny
b2xsU25hcFRpbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aDoKKwogMjAyMC0wNS0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTY3JvbGxpbmcgdGhyZWFkIHNjcm9sbHMgb24gc3luYy1zY3JvbGxpbmcgc2Ny
b2xsZXJzIGRvbid0IGdldCB0byB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZTA4MDQyNjNkNGRjMWExZDAx
OWQxMTdkMWVhMzRiMWJjMTVkZDg2Ni4uYjBhYWFmYTA1YTJjMGM3MzNhNjc3Yjc3ZjM3NmE3MTg2
MGExNDUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKQEAgLTI1NSwxMCArMjU1LDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6Y29tbWl0
VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+JiYgc2Nyb2xsCiAg
ICAgcHJvcGFnYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKGNvbW1pdFN0YXRlLnN5bmNo
cm9ub3VzU2Nyb2xsaW5nTm9kZXMpOwogCiAgICAgZm9yIChhdXRvIG5vZGVJRCA6IGNvbW1pdFN0
YXRlLnVudmlzaXRlZE5vZGVzKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlIC0gcmVtb3ZpbmcgdW52
aXNpdGVkIG5vZGUgIiA8PCBub2RlSUQpOworCiAgICAgICAgIG1fbGF0Y2hpbmdDb250cm9sbGVy
Lm5vZGVXYXNSZW1vdmVkKG5vZGVJRCk7Ci0gICAgICAgIAotICAgICAgICBMT0coU2Nyb2xsaW5n
LCAiU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlIC0gcmVtb3ZpbmcgdW52aXNpdGVkIG5v
ZGUgJSIgUFJJdTY0LCBub2RlSUQpOwotICAgICAgICBtX25vZGVNYXAucmVtb3ZlKG5vZGVJRCk7
CisKKyAgICAgICAgaWYgKGF1dG8gbm9kZSA9IG1fbm9kZU1hcC50YWtlKG5vZGVJRCkpCisgICAg
ICAgICAgICBub2RlLT53YXNSZW1vdmVkRnJvbVRyZWUoKTsKICAgICB9CiAKICAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nVHJlZSwgc3RyZWFtIDw8ICJjb21taXR0ZWQgU2Nyb2xsaW5nVHJl
ZSIgPDwgc2Nyb2xsaW5nVHJlZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlv
ckRlYnVnKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmgKaW5kZXggYWExYmUxMzRjMmZhMzk3OWQxYzIzYTJkNzcwZmE4ZTE1MmRkODBmMS4uYmNiYTI3
NjcxOTI3OTI5NGU1OTY2MDI4MTNhY2E4NTNkNGI4OGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTc5LDYgKzE3OSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgbG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIHsgfQogCisgICAgTG9jayYg
dHJlZU11dGV4KCkgeyByZXR1cm4gbV90cmVlTXV0ZXg7IH0KKwogICAgIHZvaWQgd2luZG93U2Ny
ZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlELCBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5h
bEZyYW1lc1BlclNlY29uZCk7CiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVO
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5o
CmluZGV4IDMzMzVkMDZiYzc2MjI5M2M1YWE5Y2ZhODllMDhmY2I0M2U2MzcwOGUuLjRkZmE5NDUx
Nzg1NTU2MzYyYjVjY2Y2ZDEzMTJiYTdjNWRkZTU0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaApAQCAtNjEsNiArNjEsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3Qg
U2Nyb2xsaW5nU3RhdGVOb2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21taXRTdGF0ZUFm
dGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZENvbXBsZXRlQ29tbWl0Rm9yTm9kZSgpIHsgfQorICAgIAorICAgIHZpcnR1YWwgdm9p
ZCB3YXNSZW1vdmVkRnJvbVRyZWUoKSB7IH0KIAogICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJl
bnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQogICAgIHZvaWQgc2V0UGFyZW50KFNjcm9s
bGluZ1RyZWVOb2RlKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4IDIzNDQ3YWQ4MjA3MTFkZWQ1YTFk
NTUwOWMxNGJmMzIzZjc2MDgxMmQuLjExNjhlMDBjODc2Mzk5Zjk3Y2QxYWI0MDBiNzA5ZDVmNTlk
ODE5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaApAQCAt
NjMsNiArNjMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgZXhwb3NlZFVuZmlsbGVkQXJl
YSgpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIHZvaWQgd2FzUmVtb3ZlZEZyb21UcmVlKCkgZmlu
YWw7CisKICAgICBGbG9hdFBvaW50IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQ
b2ludCYsIFNjcm9sbENsYW1waW5nKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgY3VycmVu
dFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5kZXggMzI3
MTIzY2QyMDhjYWZmNGMzMzhiOGQyMTc2ZDZmYmIzZDk1MWVlNi4uNzEwNWY3NThhMmRjODQzYjNl
ZDRhYjU2YjQ1OTQzNTY1MzZjZDZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMubW0KQEAgLTU3LDYgKzU3LDExIEBAIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWM6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMoU2Nyb2xsaW5n
CiAKIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6On5TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjKCkgPSBkZWZhdWx0OwogCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWM6Ondhc1JlbW92ZWRGcm9tVHJlZSgpCit7CisgICAgbV9kZWxlZ2F0
ZS5ub2RlV2lsbEJlRGVzdHJveWVkKCk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdT
dGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaAppbmRleCBmM2RmM2ZiYzQ2MDFlMDRl
Yjc5NjU2MTgxODFjZDc2YzU0MWNiMDFmLi44YTc2M2E4ZTcyMzg3MGE3MGFlMzVmNjk3ZDc3YWYw
Y2U0Y2M3ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjLmgKQEAgLTUzLDYgKzUzLDggQEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ0V2ZW50UmVz
dWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CisgICAgdm9pZCB3YXNSZW1vdmVkRnJvbVRyZWUoKSBmaW5hbDsKKwogICAg
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMgbV9kZWxlZ2F0ZTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KaW5kZXgg
YjNmNWM1NTMyNzIyYjBiMjE3NDY0ZGViMTBkMTc3ZWRkMTU2OTUxZC4uZjliZjJmNTdhZDkwZjIw
OTkyYTE4NmZmNGIxMWMzYzE5YThiODcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVNYWMubW0KQEAgLTQ5LDYgKzQ5LDExIEBAIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVNYWMoU2NyCiAKIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6On5TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjKCkgPSBkZWZhdWx0OwogCit2b2lkIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6Ondhc1JlbW92ZWRGcm9tVHJlZSgp
Cit7CisgICAgbV9kZWxlZ2F0ZS5ub2RlV2lsbEJlRGVzdHJveWVkKCk7Cit9CisKIHZvaWQgU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGls
ZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsKICAgICBTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0
YXRlTm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMu
aAppbmRleCBmNWQ0ZGU1ODdmOWU5YTNkMzQ2ODU1NGQ1NjY1NGMwOTE5YmQ5MDcyLi4xNGRhNDJl
NDVlZmMzMzUyZDk0NDliNGU1ZmJhN2EzOGUyZTJhYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGljOgog
ICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMoU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUmKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjKCk7CiAKKyAgICB2b2lkIG5vZGVXaWxsQmVEZXN0cm95ZWQoKTsK
KwogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
IAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCkBAIC02NywyNCArNjksMjUgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAKICAgICAvLyBTY3Jv
bGxDb250cm9sbGVyQ2xpZW50LgotICAgIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmco
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhbGxv
d3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgSW50U2l6ZSBzdHJldGNoQW1vdW50KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmKSBjb25zdCBvdmVycmlkZTsK
LSAgICBib29sIGNhblNjcm9sbEhvcml6b250YWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJv
b2wgY2FuU2Nyb2xsVmVydGljYWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29u
c3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wU25hcFJ1YmJlcmJhbmRUaW1l
cigpIG92ZXJyaWRlOwotICAgIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVj
ZXNzYXJ5KCkgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJU
aW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKKyAgICBib29sIGFs
bG93c0hvcml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0
IGZpbmFsOworICAgIGJvb2wgYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0IGZpbmFsOworICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRTaXplJikg
Y29uc3QgZmluYWw7CisgICAgYm9vbCBjYW5TY3JvbGxIb3Jpem9udGFsbHkoKSBjb25zdCBmaW5h
bDsKKyAgICBib29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdCBmaW5hbDsKKyAgICBib29s
IHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJikgZmluYWw7Cisg
ICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeVdpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNv
bnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5p
bWF0aW9uKCkgZmluYWw7CisgICAgdm9pZCBhZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91bmRzSWZO
ZWNlc3NhcnkoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgRmxv
YXRQb2ludCBzY3JvbGxPZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGltbWVkaWF0
ZVNjcm9sbE9uQXhpcyhTY3JvbGxFdmVudEF4aXMsIGZsb2F0IGRlbHRhKSBvdmVycmlkZTsKICAg
ICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0
U2Nyb2xsU25hcFRpbWVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wU2Nyb2xsU25hcFRpbWVy
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRTdG9wU2Nyb2xsU25hcEFuaW1hdGlvbigpIGZpbmFsOwogICAgIExh
eW91dFNpemUgc2Nyb2xsRXh0ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgRmxvYXRTaXplIHZp
ZXdwb3J0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IGIxZmM3YTZhYjE3MzA2NzE5YWZl
NDZkN2FlMWNhZjc0ODY0YWEyMDMuLmEwYmM5N2E3MjM2ZWNjYWMxZjdhZTIwMWE4MzJhZjczM2M3
OWQwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Lm1tCkBAIC00OSw2ICs0OSwxMSBAQCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjOjp+U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYygpCiAgICAgcmVsZWFz
ZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOwogfQogCit2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vZGVXaWxsQmVEZXN0cm95ZWQo
KQoreworICAgIG1fc2Nyb2xsQ29udHJvbGxlci5zdG9wQWxsVGltZXJzKCk7Cit9CisKICNpZiBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogc3RhdGljIGlubGluZSBWZWN0b3I8TGF5b3V0VW5pdD4g
Y29udmVydFRvTGF5b3V0VW5pdHMoY29uc3QgVmVjdG9yPGZsb2F0PiYgc25hcE9mZnNldHNBc0Zs
b2F0KQogewpAQCAtMTcyLDYgKzE3NywxNCBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWM6OmlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1l
cj4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y3JlYXRlVGltZXIoRnVu
Y3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQoreworICAgIHJldHVybiBXVEY6Om1ha2VVbmlxdWU8
U2Nyb2xsQ29udHJvbGxlclRpbWVyPihSdW5Mb29wOjpjdXJyZW50KCksIFtmdW5jdGlvbiA9IFdU
Rk1vdmUoZnVuY3Rpb24pLCBwcm90ZWN0ZWROb2RlID0gbWFrZVJlZihzY3JvbGxpbmdOb2RlKCkp
XSB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKHByb3RlY3RlZE5vZGUtPnNjcm9sbGluZ1Ry
ZWUoKS50cmVlTXV0ZXgoKSk7CisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKIGJv
b2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpvbnRh
bFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25zdAog
ewogICAgIHN3aXRjaCAoaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKSkgewpAQCAtMjkzLDcg
KzMwNiw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6aW1t
ZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDCiAgICAgc2Nyb2xsaW5nTm9kZSgpLnNj
cm9sbEJ5KG9mZnNldCwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiB9CiAKLXZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcFNuYXBSdWJiZXJiYW5kVGlt
ZXIoKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkaWRTdG9w
UnViYmVyYmFuZFNuYXBBbmltYXRpb24oKQogewogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRNYWlu
RnJhbWVJc1J1YmJlckJhbmRpbmcoZmFsc2UpOwogCkBAIC0zMzYsMTIgKzM0OSwxMiBAQCBmbG9h
dCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpwYWdlU2NhbGVGYWN0b3Io
KSBjb25zdAogICAgIHJldHVybiAxOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWM6OnN0YXJ0U2Nyb2xsU25hcFRpbWVyKCkKK3ZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6d2lsbFN0YXJ0U2Nyb2xsU25hcEFuaW1hdGlvbigp
CiB7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcodHJ1
ZSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3Rv
cFNjcm9sbFNuYXBUaW1lcigpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OmRpZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKCkKIHsKICAgICBzY3JvbGxpbmdUcmVl
KCkuc2V0TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggMGZjNzI5ZTkxMmI1NzBjYjIzM2Q4
ODc4ZWE4ZjYwMTFiYWQ2NDc4Ny4uMGViZGE1ZTgzZmVhZTA5YzlkZDg2NzY0Njc1NTE2YjgwMWE0
OWE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAt
MzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkxheW91dFNpemUuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRpb25TbW9vdGguaCIKKyNpbmNs
dWRlICJTY3JvbGxDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNp
bmNsdWRlIDxhbGdvcml0aG0+CiAKQEAgLTI0MSw2ICsyNDIsMTUgQEAgRmxvYXRTaXplIFNjcm9s
bEFuaW1hdG9yOjp2aWV3cG9ydFNpemUoKSBjb25zdAogCiAjZW5kaWYKIAorc3RkOjp1bmlxdWVf
cHRyPFNjcm9sbENvbnRyb2xsZXJUaW1lcj4gU2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZVRpbWVyKEZ1
bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKK3sKKyAgICByZXR1cm4gV1RGOjptYWtlVW5pcXVl
PFNjcm9sbENvbnRyb2xsZXJUaW1lcj4oUnVuTG9vcDo6Y3VycmVudCgpLCBbZnVuY3Rpb24gPSBX
VEZNb3ZlKGZ1bmN0aW9uKSwgd2Vha1Njcm9sbGFibGVBcmVhID0gbWFrZVdlYWtQdHIobV9zY3Jv
bGxhYmxlQXJlYSldIHsKKyAgICAgICAgaWYgKCF3ZWFrU2Nyb2xsYWJsZUFyZWEpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKICNpZiAoRU5B
QkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkgJiYgUExBVEZP
Uk0oTUFDKQogdm9pZCBTY3JvbGxBbmltYXRvcjo6ZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRp
b25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbiByZWFzb24p
IGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA2
NjExODdhNzFjMDg5YzRhOGFjMGY3MzZkZmYzZjFhM2ZhMjE3NDIxLi4xMWI4NjJjOTc5MTNmNjcw
YjA2Mzg0MTZjNTVkOGQ2ZjVmNGY2YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RmxvYXRQb2ludDsKIGNsYXNzIFBsYXRmb3JtVG91Y2hFdmVudDsKIGNsYXNzIFNjcm9sbEFuaW1h
dGlvbjsKK2NsYXNzIFNjcm9sbENvbnRyb2xsZXJUaW1lcjsKIGNsYXNzIFNjcm9sbGFibGVBcmVh
OwogY2xhc3MgU2Nyb2xsYmFyOwogY2xhc3MgV2hlZWxFdmVudFRlc3RNb25pdG9yOwpAQCAtMTI2
LDYgKzEyNyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBob3Jpem9udGFsU2Nyb2xs
YmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogICAg
IHZpcnR1YWwgU3RyaW5nIHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3Qg
eyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENv
bnRyb2xsZXJUaW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKKwog
ICAgIHZvaWQgc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKFJlZlB0cjxXaGVlbEV2ZW50VGVzdE1v
bml0b3I+JiYgdGVzdE1vbml0b3IpIHsgbV93aGVlbEV2ZW50VGVzdE1vbml0b3IgPSB0ZXN0TW9u
aXRvcjsgfQogCiAjaWYgKEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJf
QkFORElORykpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAppbmRleCA3NTQ2YjlmYTM1MGVkMTEyNjgzNjlmZTcy
YzI4YThmZjY3N2RiMDk0Li41ODlhNzFkYzFhZmNlYmFlNjA3YzU1Zjc1ZWYzMzFjYThiZTIyODhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5oCkBAIC00MywxNCArNDMsMzQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMYXlv
dXRTaXplOwogY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OworY2xhc3MgU2Nyb2xsQ29udHJvbGxl
cjsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogY2xhc3MgV2hlZWxFdmVudFRlc3RNb25pdG9yOwog
CitjbGFzcyBTY3JvbGxDb250cm9sbGVyVGltZXIgOiBwdWJsaWMgUnVuTG9vcDo6VGltZXJCYXNl
IHsKK3B1YmxpYzoKKyAgICBTY3JvbGxDb250cm9sbGVyVGltZXIoUnVuTG9vcCYgcnVuTG9vcCwg
RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQorICAgICAgICA6IFJ1bkxvb3A6OlRpbWVyQmFz
ZShydW5Mb29wKQorICAgICAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCisgICAg
eworICAgIH0KKworICAgIHZvaWQgZmlyZWQoKSBmaW5hbAorICAgIHsKKyAgICAgICAgbV9jYWxs
YmFjaygpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fY2FsbGJh
Y2s7Cit9OworCiBjbGFzcyBTY3JvbGxDb250cm9sbGVyQ2xpZW50IHsKIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIH5TY3JvbGxDb250cm9sbGVyQ2xpZW50KCkgPSBkZWZhdWx0OwogCiBwdWJsaWM6
CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBjcmVh
dGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYpID0gMDsKKwogI2lmIEVOQUJMRShSVUJCRVJfQkFO
RElORykKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NW
ZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QgPSAwOwpA
QCAtNjMsMTUgKzgzLDggQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiB1c2UgU2Nyb2xsQ2xhbXBp
bmcgdG8gY29sbGFwc2UgdGhlc2UgdG8gb25lLgogICAgIHZpcnR1YWwgdm9pZCBpbW1lZGlhdGVT
Y3JvbGxCeShjb25zdCBGbG9hdFNpemUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGltbWVkaWF0
ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRTaXplJikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIoKQotICAgIHsK
LSAgICAgICAgLy8gT3ZlcnJpZGUgdG8gcGVyZm9ybSBjbGllbnQtc3BlY2lmaWMgc25hcCBzdGFy
dCBsb2dpYwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBzdG9wU25hcFJ1YmJlcmJhbmRUaW1l
cigpCi0gICAgewotICAgICAgICAvLyBPdmVycmlkZSB0byBwZXJmb3JtIGNsaWVudC1zcGVjaWZp
YyBzbmFwIGVuZCBsb2dpYwotICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0UnViYmVy
QmFuZFNuYXBBbmltYXRpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcFJ1YmJlcmJh
bmRTbmFwQW5pbWF0aW9uKCkgeyB9CiAgICAgCiAgICAgLy8gSWYgdGhlIGN1cnJlbnQgc2Nyb2xs
IHBvc2l0aW9uIGlzIHdpdGhpbiB0aGUgb3ZlcmhhbmcgYXJlYSwgdGhpcyBmdW5jdGlvbiB3aWxs
IGNhdXNlCiAgICAgLy8gdGhlIHBhZ2UgdG8gc2Nyb2xsIHRvIHRoZSBuZWFyZXN0IGJvdW5kYXJ5
IHBvaW50LgpAQCAtODQsMTUgKzk3LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfU0NST0xM
X1NOQVApCiAgICAgdmlydHVhbCBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgaW1tZWRpYXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50QXhpcywg
ZmxvYXQgZGVsdGEpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRTY3JvbGxTbmFwVGltZXIo
KQotICAgIHsKLSAgICAgICAgLy8gT3ZlcnJpZGUgdG8gcGVyZm9ybSBjbGllbnQtc3BlY2lmaWMg
c2Nyb2xsIHNuYXAgcG9pbnQgc3RhcnQgbG9naWMKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
c3RvcFNjcm9sbFNuYXBUaW1lcigpCi0gICAgewotICAgICAgICAvLyBPdmVycmlkZSB0byBwZXJm
b3JtIGNsaWVudC1zcGVjaWZpYyBzY3JvbGwgc25hcCBwb2ludCBlbmQgbG9naWMKLSAgICB9Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxTdGFydFNjcm9sbFNuYXBBbmltYXRpb24oKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkU3RvcFNjcm9sbFNuYXBBbmltYXRpb24oKSB7IH0KIAogICAgIHZpcnR1
YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICB7CkBAIC0xNTEsNiArMTU3LDgg
QEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgV2hlZWxBeGlzQmlhcyB7IE5vbmUsIFZlcnRpY2Fs
IH07CiAgICAgc3RhdGljIE9wdGlvbmFsPFNjcm9sbERpcmVjdGlvbj4gZGlyZWN0aW9uRnJvbUV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvbmFsPFNjcm9sbEV2ZW50QXhpcz4s
IFdoZWVsQXhpc0JpYXMgPSBXaGVlbEF4aXNCaWFzOjpOb25lKTsKIAorICAgIHZvaWQgc3RvcEFs
bFRpbWVycygpOworCiBwcml2YXRlOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICB2
b2lkIHN0YXJ0U25hcFJ1YmJlcmJhbmRUaW1lcigpOwpAQCAtMTkyLDE1ICsyMDAsMTUgQEAgcHJp
dmF0ZToKICAgICBDRlRpbWVJbnRlcnZhbCBtX3N0YXJ0VGltZSB7IDAgfTsKICAgICBGbG9hdFNp
emUgbV9zdGFydFN0cmV0Y2g7CiAgICAgRmxvYXRTaXplIG1fb3JpZ1ZlbG9jaXR5OwotICAgIFJ1
bkxvb3A6OlRpbWVyPFNjcm9sbENvbnRyb2xsZXI+IG1fc25hcFJ1YmJlcmJhbmRUaW1lcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBtX3NuYXBSdWJiZXJiYW5k
VGltZXI7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNjcm9sbFNuYXBBbmltYXRvclN0YXRlPiBtX3Njcm9sbFNuYXBTdGF0ZTsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgRmxvYXRTaXplIG1fZHJhZ0VuZGVkU2Nyb2xsaW5nVmVsb2Np
dHk7Ci0gICAgUnVuTG9vcDo6VGltZXI8U2Nyb2xsQ29udHJvbGxlcj4gbV9zdGF0ZWxlc3NTbmFw
VHJhbnNpdGlvblRpbWVyOwotICAgIFJ1bkxvb3A6OlRpbWVyPFNjcm9sbENvbnRyb2xsZXI+IG1f
c2Nyb2xsU25hcFRpbWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGlt
ZXI+IG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBtX3Njcm9sbFNuYXBUaW1lcjsKICNlbmRpZgogI2VuZGlm
CiAKQEAgLTIwOCw3ICsyMTYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pblNjcm9sbEdlc3R1
cmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgeyBmYWxzZSB9OwotICAgIGJv
b2wgbV9zbmFwUnViYmVyYmFuZFRpbWVySXNBY3RpdmUgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAg
ICBib29sIG1fYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4
IDBmNDFhNzJjNDVmNzA1Mjk3YTIwYTg4M2JkZmJkOGNhY2I3ZjljM2QuLjYxN2I2ZGI2NDIwYjdk
ZGM4MjgzZDgwOTA5YzZmODI5NTJhYjI1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtODYsMTQgKzg2LDIzIEBAIHN0YXRp
YyBTY3JvbGxFdmVudEF4aXMgb3RoZXJTY3JvbGxFdmVudEF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4
aXMpCiAKIFNjcm9sbENvbnRyb2xsZXI6OlNjcm9sbENvbnRyb2xsZXIoU2Nyb2xsQ29udHJvbGxl
ckNsaWVudCYgY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQoreworfQorCit2b2lkIFNj
cm9sbENvbnRyb2xsZXI6OnN0b3BBbGxUaW1lcnMoKQorewogI2lmIEVOQUJMRShSVUJCRVJfQkFO
RElORykKLSAgICAsIG1fc25hcFJ1YmJlcmJhbmRUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRo
aXMsICZTY3JvbGxDb250cm9sbGVyOjpzbmFwUnViYmVyQmFuZFRpbWVyRmlyZWQpCisgICAgaWYg
KG1fc25hcFJ1YmJlcmJhbmRUaW1lcikKKyAgICAgICAgbV9zbmFwUnViYmVyYmFuZFRpbWVyLT5z
dG9wKCk7CiAjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApICYmIFBMQVRGT1JN
KE1BQykKLSAgICAsIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lcihSdW5Mb29wOjpjdXJy
ZW50KCksIHRoaXMsICZTY3JvbGxDb250cm9sbGVyOjpzdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRp
bWVyRmlyZWQpCi0gICAgLCBtX3Njcm9sbFNuYXBUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRo
aXMsICZTY3JvbGxDb250cm9sbGVyOjpzY3JvbGxTbmFwVGltZXJGaXJlZCkKKyAgICBpZiAobV9z
dGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyKQorICAgICAgICBtX3N0YXRlbGVzc1NuYXBUcmFu
c2l0aW9uVGltZXItPnN0b3AoKTsKKworICAgIGlmIChtX3Njcm9sbFNuYXBUaW1lcikKKyAgICAg
ICAgbV9zY3JvbGxTbmFwVGltZXItPnN0b3AoKTsKICNlbmRpZgotewogfQogCiAjaWYgUExBVEZP
Uk0oTUFDKQpAQCAtMTM5LDcgKzE0OCw3IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgfQog
CiAgICAgYm9vbCBpc01vbWVudHVtU2Nyb2xsRXZlbnQgPSAod2hlZWxFdmVudC5tb21lbnR1bVBo
YXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKTsKLSAgICBpZiAobV9pZ25vcmVN
b21lbnR1bVNjcm9sbHMgJiYgKGlzTW9tZW50dW1TY3JvbGxFdmVudCB8fCBtX3NuYXBSdWJiZXJi
YW5kVGltZXJJc0FjdGl2ZSkpIHsKKyAgICBpZiAobV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgJiYg
KGlzTW9tZW50dW1TY3JvbGxFdmVudCB8fCBtX3NuYXBSdWJiZXJiYW5kVGltZXIpKSB7CiAgICAg
ICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUVuZGVkKSB7CiAgICAgICAgICAgICBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyA9IGZhbHNl
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zODUsMTAgKzM5NCwxMCBAQCB2b2lkIFNj
cm9sbENvbnRyb2xsZXI6OnNuYXBSdWJiZXJCYW5kVGltZXJGaXJlZCgpCiAgICAgICAgICAgICBp
ZiAobV9zdGFydFN0cmV0Y2ggPT0gRmxvYXRTaXplKCkpIHsKICAgICAgICAgICAgICAgICBzdG9w
U25hcFJ1YmJlcmJhbmRUaW1lcigpOwogCi0gICAgICAgICAgICAgICAgbV9zdHJldGNoU2Nyb2xs
Rm9yY2UgPSBGbG9hdFNpemUoKTsKKyAgICAgICAgICAgICAgICBtX3N0cmV0Y2hTY3JvbGxGb3Jj
ZSA9IHsgfTsKICAgICAgICAgICAgICAgICBtX3N0YXJ0VGltZSA9IDA7Ci0gICAgICAgICAgICAg
ICAgbV9zdGFydFN0cmV0Y2ggPSBGbG9hdFNpemUoKTsKLSAgICAgICAgICAgICAgICBtX29yaWdW
ZWxvY2l0eSA9IEZsb2F0U2l6ZSgpOworICAgICAgICAgICAgICAgIG1fc3RhcnRTdHJldGNoID0g
eyB9OworICAgICAgICAgICAgICAgIG1fb3JpZ1ZlbG9jaXR5ID0geyB9OwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIApAQCAtNDIxLDE0ICs0MzAsMTQgQEAgdm9pZCBT
Y3JvbGxDb250cm9sbGVyOjpzbmFwUnViYmVyQmFuZFRpbWVyRmlyZWQoKQogICAgICAgICAgICAg
bV9jbGllbnQuYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCk7CiAKICAg
ICAgICAgICAgIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVyKCk7Ci0gICAgICAgICAgICBtX3N0cmV0
Y2hTY3JvbGxGb3JjZSA9IEZsb2F0U2l6ZSgpOworICAgICAgICAgICAgbV9zdHJldGNoU2Nyb2xs
Rm9yY2UgPSB7IH07CiAgICAgICAgICAgICBtX3N0YXJ0VGltZSA9IDA7Ci0gICAgICAgICAgICBt
X3N0YXJ0U3RyZXRjaCA9IEZsb2F0U2l6ZSgpOwotICAgICAgICAgICAgbV9vcmlnVmVsb2NpdHkg
PSBGbG9hdFNpemUoKTsKKyAgICAgICAgICAgIG1fc3RhcnRTdHJldGNoID0geyB9OworICAgICAg
ICAgICAgbV9vcmlnVmVsb2NpdHkgPSB7IH07CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAg
ICAgICBtX3N0YXJ0VGltZSA9IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRl
XTsKLSAgICAgICAgbV9zdGFydFN0cmV0Y2ggPSBGbG9hdFNpemUoKTsKKyAgICAgICAgbV9zdGFy
dFN0cmV0Y2ggPSB7IH07CiAgICAgICAgIGlmICghaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpKQog
ICAgICAgICAgICAgc3RvcFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKICAgICB9CkBAIC00MzgsNyAr
NDQ3LDcgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzbmFwUnViYmVyQmFuZFRpbWVyRmlyZWQo
KQogYm9vbCBTY3JvbGxDb250cm9sbGVyOjppc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QK
IHsKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpICYmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAo
IW1faW5TY3JvbGxHZXN0dXJlICYmICFtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiAhbV9z
bmFwUnViYmVyYmFuZFRpbWVySXNBY3RpdmUpCisgICAgaWYgKCFtX2luU2Nyb2xsR2VzdHVyZSAm
JiAhbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgIW1fc25hcFJ1YmJlcmJhbmRUaW1lcikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFtX2NsaWVudC5zdHJldGNoQW1v
dW50KCkuaXNaZXJvKCk7CkBAIC00NTAsNyArNDU5LDcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVy
Ojppc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QKIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExf
U05BUCkgJiYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21v
bWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyB8fCBtX3Njcm9sbFNuYXBUaW1lci5pc0FjdGl2ZSgpKQor
ICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyB8
fCBtX3Njcm9sbFNuYXBUaW1lcikKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC00NTksMTcgKzQ2OCwyNSBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6
OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdAogI2lmIEVOQUJMRShSVUJCRVJfQkFORElO
RykKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RhcnRTbmFwUnViYmVyYmFuZFRpbWVyKCkKIHsK
LSAgICBtX2NsaWVudC5zdGFydFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKLSAgICBtX3NuYXBSdWJi
ZXJiYW5kVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsKKyAgICBtX2NsaWVudC53aWxs
U3RhcnRSdWJiZXJCYW5kU25hcEFuaW1hdGlvbigpOworCisgICAgLy8gTWFrZSBhIG5ldyBvbmUg
ZWFjaCB0aW1lIHRvIGVuc3VyZSBpdCBmaXJlcyBvbiB0aGUgY3VycmVudCBSdW5Mb29wLgorICAg
IG1fc25hcFJ1YmJlcmJhbmRUaW1lciA9IG1fY2xpZW50LmNyZWF0ZVRpbWVyKFt0aGlzXSB7Cisg
ICAgICAgIHNuYXBSdWJiZXJCYW5kVGltZXJGaXJlZCgpOworICAgIH0pOworICAgIG1fc25hcFJ1
YmJlcmJhbmRUaW1lci0+c3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsKIAogICAgIG1fY2xpZW50
LmRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8
V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHRoaXMpLCBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OlJ1YmJlcmJhbmRJblByb2dyZXNzKTsKIH0KIAogdm9pZCBT
Y3JvbGxDb250cm9sbGVyOjpzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcigpCiB7Ci0gICAgbV9jbGll
bnQuc3RvcFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKLSAgICBtX3NuYXBSdWJiZXJiYW5kVGltZXIu
c3RvcCgpOwotICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lcklzQWN0aXZlID0gZmFsc2U7CisgICAg
bV9jbGllbnQuZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5pbWF0aW9uKCk7CisgICAgCisgICAgaWYg
KG1fc25hcFJ1YmJlcmJhbmRUaW1lcikgeworICAgICAgICBtX3NuYXBSdWJiZXJiYW5kVGltZXIt
PnN0b3AoKTsKKyAgICAgICAgbV9zbmFwUnViYmVyYmFuZFRpbWVyID0gbnVsbHB0cjsKKyAgICB9
CiAgICAgCiAgICAgbV9jbGllbnQucmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJy
YWxGb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllcj4odGhpcyksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UnViYmVy
YmFuZEluUHJvZ3Jlc3MpOwogfQpAQCAtNDgyLDE1ICs0OTksMTQgQEAgdm9pZCBTY3JvbGxDb250
cm9sbGVyOjpzbmFwUnViYmVyQmFuZCgpCiAKICAgICBtX2luU2Nyb2xsR2VzdHVyZSA9IGZhbHNl
OwogCi0gICAgaWYgKG1fc25hcFJ1YmJlcmJhbmRUaW1lcklzQWN0aXZlKQorICAgIGlmIChtX3Nu
YXBSdWJiZXJiYW5kVGltZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc3RhcnRUaW1lID0g
W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOwotICAgIG1fc3RhcnRTdHJl
dGNoID0gRmxvYXRTaXplKCk7Ci0gICAgbV9vcmlnVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsKKyAg
ICBtX3N0YXJ0U3RyZXRjaCA9IHsgfTsKKyAgICBtX29yaWdWZWxvY2l0eSA9IHsgfTsKIAogICAg
IHN0YXJ0U25hcFJ1YmJlcmJhbmRUaW1lcigpOwotICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lcklz
QWN0aXZlID0gdHJ1ZTsKIH0KIAogYm9vbCBTY3JvbGxDb250cm9sbGVyOjpzaG91bGRSdWJiZXJC
YW5kSW5Ib3Jpem9udGFsRGlyZWN0aW9uKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxF
dmVudCkgY29uc3QKQEAgLTU2NCwxNyArNTgwLDI1IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6
c2hvdWxkT3ZlcnJpZGVJbmVydGlhbFNjcm9sbGluZygpIGNvbnN0CiB2b2lkIFNjcm9sbENvbnRy
b2xsZXI6OnNjaGVkdWxlU3RhdGVsZXNzU2Nyb2xsU25hcCgpCiB7CiAgICAgc3RvcFNjcm9sbFNu
YXBUaW1lcigpOwotICAgIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lci5zdG9wKCk7Cisg
ICAgaWYgKG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lcikgeworICAgICAgICBtX3N0YXRl
bGVzc1NuYXBUcmFuc2l0aW9uVGltZXItPnN0b3AoKTsKKyAgICAgICAgbV9zdGF0ZWxlc3NTbmFw
VHJhbnNpdGlvblRpbWVyID0gbnVsbHB0cjsKKyAgICB9CiAgICAgaWYgKCFtX3Njcm9sbFNuYXBT
dGF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGljIGNvbnN0IFNlY29uZHMgc3RhdGVs
ZXNzU2Nyb2xsU25hcERlbGF5ID0gNzUwX21zOwotICAgIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRp
b25UaW1lci5zdGFydE9uZVNob3Qoc3RhdGVsZXNzU2Nyb2xsU25hcERlbGF5KTsKKyAgICBtX3N0
YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10g
eworICAgICAgICBzdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyRmlyZWQoKTsKKyAgICB9KTsK
KyAgICBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXItPnN0YXJ0T25lU2hvdChzdGF0ZWxl
c3NTY3JvbGxTbmFwRGVsYXkpOwogICAgIHN0YXJ0RGVmZXJyaW5nV2hlZWxFdmVudFRlc3RDb21w
bGV0aW9uRHVlVG9TY3JvbGxTbmFwcGluZygpOwogfQogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6
OnN0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXJGaXJlZCgpCiB7CisgICAgbV9zdGF0ZWxlc3NT
bmFwVHJhbnNpdGlvblRpbWVyID0gbnVsbHB0cjsKKwogICAgIGlmICghbV9zY3JvbGxTbmFwU3Rh
dGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjM2LDIyICs2NjAsMjcgQEAgYm9vbCBTY3JvbGxD
b250cm9sbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JgogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0YXJ0U2Nyb2xsU25hcFRpbWVy
KCkKIHsKLSAgICBpZiAobV9zY3JvbGxTbmFwVGltZXIuaXNBY3RpdmUoKSkKKyAgICBpZiAobV9z
Y3JvbGxTbmFwVGltZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIHN0YXJ0RGVmZXJyaW5nV2hl
ZWxFdmVudFRlc3RDb21wbGV0aW9uRHVlVG9TY3JvbGxTbmFwcGluZygpOwotICAgIG1fY2xpZW50
LnN0YXJ0U2Nyb2xsU25hcFRpbWVyKCk7Ci0gICAgbV9zY3JvbGxTbmFwVGltZXIuc3RhcnRSZXBl
YXRpbmcoMV9zIC8gNjAuKTsKKyAgICBtX2NsaWVudC53aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0
aW9uKCk7CisgICAgbV9zY3JvbGxTbmFwVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhp
c10geworICAgICAgICBzY3JvbGxTbmFwVGltZXJGaXJlZCgpOworICAgIH0pOworICAgIG1fc2Ny
b2xsU25hcFRpbWVyLT5zdGFydFJlcGVhdGluZygxX3MgLyA2MC4pOwogfQogCiB2b2lkIFNjcm9s
bENvbnRyb2xsZXI6OnN0b3BTY3JvbGxTbmFwVGltZXIoKQogewotICAgIGlmICghbV9zY3JvbGxT
bmFwVGltZXIuaXNBY3RpdmUoKSkKKyAgICBpZiAoIW1fc2Nyb2xsU25hcFRpbWVyKQogICAgICAg
ICByZXR1cm47CiAKICAgICBzdG9wRGVmZXJyaW5nV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRHVl
VG9TY3JvbGxTbmFwcGluZygpOwotICAgIG1fY2xpZW50LnN0b3BTY3JvbGxTbmFwVGltZXIoKTsK
LSAgICBtX3Njcm9sbFNuYXBUaW1lci5zdG9wKCk7CisgICAgbV9jbGllbnQuZGlkU3RvcFNjcm9s
bFNuYXBBbmltYXRpb24oKTsKKworICAgIG1fc2Nyb2xsU25hcFRpbWVyLT5zdG9wKCk7CisgICAg
bV9zY3JvbGxTbmFwVGltZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6
OnNjcm9sbFNuYXBUaW1lckZpcmVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggZWY2ZWVhMDUyYTU1ZWFlY2QxYmE3Y2FhNWIzYTNh
NjA0NmNiOWZhMy4uZTNjM2MwYTE3ZGMwMTdmMWJlMTU2MmZiZDhmYWFlNGYwZThjZDhhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAg
LTQ2LDcgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2Nyb2xsYmFyOwogCiBj
bGFzcyBTY3JvbGxBbmltYXRvck1hYyA6IHB1YmxpYyBTY3JvbGxBbmltYXRvciB7Ci0KIHB1Ymxp
YzoKICAgICBTY3JvbGxBbmltYXRvck1hYyhTY3JvbGxhYmxlQXJlYSYpOwogICAgIHZpcnR1YWwg
flNjcm9sbEFuaW1hdG9yTWFjKCk7CkBAIC0xNDEsMTggKzE0MCwxOCBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBob3Jpem9udGFsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmluYWw7
CiAgICAgU3RyaW5nIHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmlu
YWw7CiAKKyAgICAvLyBTY3JvbGxDb250cm9sbGVyQ2xpZW50LgogI2lmIEVOQUJMRShSVUJCRVJf
QkFORElORykKLSAgICAvLy8gU2Nyb2xsQ29udHJvbGxlckNsaWVudCBtZW1iZXIgZnVuY3Rpb25z
LgotICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wg
YWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwaW5uZWRJbkRpcmVj
dGlvbihjb25zdCBGbG9hdFNpemUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGNhblNjcm9s
bEhvcml6b250YWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgY2FuU2Nyb2xsVmVydGlj
YWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbW1lZGlhdGVT
Y3JvbGxCeVdpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNvbnN0IEZsb2F0U2l6ZSYpIG92
ZXJyaWRlOwotICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBhZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91bmRzSWZOZWNlc3Nhcnko
KSBvdmVycmlkZTsKKyAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQoKSBjb25zdCBmaW5hbDsKKyAg
ICBib29sIGFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgcGlubmVkSW5EaXJl
Y3Rpb24oY29uc3QgRmxvYXRTaXplJikgY29uc3QgZmluYWw7CisgICAgYm9vbCBjYW5TY3JvbGxI
b3Jpem9udGFsbHkoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGNhblNjcm9sbFZlcnRpY2FsbHko
KSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3Jv
bGxEaXJlY3Rpb24pIGNvbnN0IGZpbmFsOworICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnlXaXRo
b3V0Q29udGVudEVkZ2VDb25zdHJhaW50cyhjb25zdCBGbG9hdFNpemUmKSBmaW5hbDsKKyAgICB2
b2lkIGltbWVkaWF0ZVNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQg
YWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCkgZmluYWw7CiAKICAgICBi
b29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400001</attachid>
            <date>2020-05-21 16:56:25 -0700</date>
            <delta_ts>2020-05-21 18:03:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212238-20200521165624.patch</filename>
            <type>text/plain</type>
            <size>32166</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU4MDI4NTQ0ZjY3YmMw
MWExNDZlNTAyMGI4OTkwNGIxODNjZDI1MC4uNDAzOTgxNGVjMTNkMmFlNjUxNTUwNGY5MWU2Mzhl
ODZiMWIzMGM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTA1LTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBzb21lIHRo
cmVhZCBzYWZldHkgaXNzdWVzIHdpdGggU2Nyb2xsQ29udHJvbGxlciB0aW1lcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjIzOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdlcmUgc29tZSBw
cm9ibGVtcyB3aXRoIHRoZSB0aW1lcnMgZmlyZWQgYnkgU2Nyb2xsQ29udHJvbGxlciwgdXNlZCBm
b3IgcnViYmVyLWJhbmRpbmcKKyAgICAgICAgYW5kIHNjcm9sbCBzbmFwLgorCisgICAgICAgIEZp
cnN0LCB0aGV5IGNvdWxkIGZpcmUgb24gdGhlIG1haW4gdGhyZWFkIHdoZW4gd2UgaW50ZW5kZWQg
dGhlbSB0byBmaXJlIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgorICAgICAgICBUaGlzIGhhcHBl
bmVkIGJlY2F1c2UgaW4gcjI2MDcxNiBJIG1hZGUgdGhlIHNjcm9sbGluZyB0cmVlIGNvbW1pdCBv
biB0aGUgbWFpbiB0aHJlYWQsIHNvIHdlJ2QKKyAgICAgICAgY29uc3RydWN0IHRoZSBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjIGFuZCBpdHMgU2Nyb2xsQ29udHJvbGxlciB0
aGVyZSBhbmQgaXRzCisgICAgICAgIHRpbWVycyB3b3VsZCBncmFiIHRoZSBtYWluIHRocmVhZCBy
dW5sb29wLiBGaXggYnkgY3JlYXRpbmcgdGhlIHRpbWVycyBvbiBkZW1hbmQuCisKKyAgICAgICAg
U2Vjb25kbHksIHRoZSB0aW1lciBjYWxsYmFja3MgY2FsbGVkIGludG8gc2Nyb2xsaW5nIHRyZWUg
Y29kZSwgYnV0IHdpdGhvdXQgdGFraW5nCisgICAgICAgIHRoZSBzY3JvbGxpbmcgdHJlZSBsb2Nr
LAorICAgICAgICBhbmQgd2l0aG91dCBhbnkgZ3VhcmFudGVlIHRoYXQgdGhlIG5vZGUgd291bGQg
c3RheSBhbGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjay4KKyAgICAgICAgRml4
IGJ5IGhhdmluZyB0aGUgU2Nyb2xsQ29udHJvbGxlckNsaWVudCBjcmVhdGUgdGhlIHRpbWVycywg
YWxsb3dpbmcgdGhlIGNsaWVudCB0byBoYXZlCisgICAgICAgIGEgY2FsbGJhY2sgd3JhcHBlciB0
aGF0IGxvY2tzLCBhbmQgdG8gZW5zdXJlIG9iamVjdCBsaWZldGltZSAob3IgbWFrZSBhIHdlYWsg
cmVmKS4gTm93CisgICAgICAgIHRoYXQgc2Nyb2xsaW5nIHRyZWUgbm9kZXMgY291bGQgYmUgZXh0
ZW5kZWQgYnkgYSBwZW5kaW5nIHRpbWVyLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAgICAgICAg
Y2xlYXIgdGhlIHRpbWVycyB3aGVuIG5vZGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHRyZWUuCisK
KyAgICAgICAgRmluYWxseSwgcmVuYW1lIHNvbWUgY29uZnVzaW5nbHkgbmFtZWQgU2Nyb2xsQ29u
dHJvbGxlckNsaWVudCBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRy
ZWVTdGF0ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dHJlZU11dGV4KToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZU5vZGU6Ondhc0JlUmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6
d2FzQmVSZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjp3YXNC
ZVJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vZGVXaWxs
QmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYzo6Y3JlYXRlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OndpbGxTdGFydFNjcm9sbFNuYXBBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGlkU3RvcFNjcm9sbFNuYXBB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6c3RvcFNuYXBSdWJiZXJiYW5kVGltZXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RhcnRTY3Jv
bGxTbmFwVGltZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcFNjcm9sbFNuYXBUaW1lcik6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFs
aXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZVRpbWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXJUaW1lcjo6U2Nyb2xsQ29udHJvbGxlclRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OndpbGxTdGFydFJ1YmJlckJhbmRTbmFwQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OmRpZFN0b3BSdWJi
ZXJiYW5kU25hcEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVy
Q2xpZW50Ojp3aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OmRpZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXJDbGllbnQ6OnN0YXJ0U25hcFJ1YmJlcmJh
bmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xp
ZW50OjpzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxDb250cm9sbGVyQ2xpZW50OjpzdGFydFNjcm9sbFNuYXBUaW1lcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xpZW50OjpzdG9wU2Nyb2xsU25h
cFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6U2Nyb2xsQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wQWxsVGltZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmRUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmlzUnViYmVyQmFu
ZEluUHJvZ3Jlc3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6
aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxD
b250cm9sbGVyOjpzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQ29udHJvbGxlcjo6c3RvcFNuYXBSdWJiZXJiYW5kVGltZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQ29udHJvbGxlcjo6c2NoZWR1bGVTdGF0ZWxlc3NTY3JvbGxTbmFwKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdGFydFNjcm9s
bFNuYXBUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wU2Ny
b2xsU25hcFRpbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aDoKKwogMjAyMC0wNS0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTY3JvbGxpbmcgdGhyZWFkIHNjcm9sbHMgb24gc3luYy1zY3JvbGxpbmcgc2Ny
b2xsZXJzIGRvbid0IGdldCB0byB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZTA4MDQyNjNkNGRjMWExZDAx
OWQxMTdkMWVhMzRiMWJjMTVkZDg2Ni4uYjBhYWFmYTA1YTJjMGM3MzNhNjc3Yjc3ZjM3NmE3MTg2
MGExNDUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKQEAgLTI1NSwxMCArMjU1LDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6Y29tbWl0
VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+JiYgc2Nyb2xsCiAg
ICAgcHJvcGFnYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKGNvbW1pdFN0YXRlLnN5bmNo
cm9ub3VzU2Nyb2xsaW5nTm9kZXMpOwogCiAgICAgZm9yIChhdXRvIG5vZGVJRCA6IGNvbW1pdFN0
YXRlLnVudmlzaXRlZE5vZGVzKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlIC0gcmVtb3ZpbmcgdW52
aXNpdGVkIG5vZGUgIiA8PCBub2RlSUQpOworCiAgICAgICAgIG1fbGF0Y2hpbmdDb250cm9sbGVy
Lm5vZGVXYXNSZW1vdmVkKG5vZGVJRCk7Ci0gICAgICAgIAotICAgICAgICBMT0coU2Nyb2xsaW5n
LCAiU2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlIC0gcmVtb3ZpbmcgdW52aXNpdGVkIG5v
ZGUgJSIgUFJJdTY0LCBub2RlSUQpOwotICAgICAgICBtX25vZGVNYXAucmVtb3ZlKG5vZGVJRCk7
CisKKyAgICAgICAgaWYgKGF1dG8gbm9kZSA9IG1fbm9kZU1hcC50YWtlKG5vZGVJRCkpCisgICAg
ICAgICAgICBub2RlLT53YXNSZW1vdmVkRnJvbVRyZWUoKTsKICAgICB9CiAKICAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nVHJlZSwgc3RyZWFtIDw8ICJjb21taXR0ZWQgU2Nyb2xsaW5nVHJl
ZSIgPDwgc2Nyb2xsaW5nVHJlZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlv
ckRlYnVnKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmgKaW5kZXggYWExYmUxMzRjMmZhMzk3OWQxYzIzYTJkNzcwZmE4ZTE1MmRkODBmMS4uYmNiYTI3
NjcxOTI3OTI5NGU1OTY2MDI4MTNhY2E4NTNkNGI4OGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTc5LDYgKzE3OSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgbG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIHsgfQogCisgICAgTG9jayYg
dHJlZU11dGV4KCkgeyByZXR1cm4gbV90cmVlTXV0ZXg7IH0KKwogICAgIHZvaWQgd2luZG93U2Ny
ZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlELCBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5h
bEZyYW1lc1BlclNlY29uZCk7CiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVO
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5o
CmluZGV4IDMzMzVkMDZiYzc2MjI5M2M1YWE5Y2ZhODllMDhmY2I0M2U2MzcwOGUuLjRkZmE5NDUx
Nzg1NTU2MzYyYjVjY2Y2ZDEzMTJiYTdjNWRkZTU0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaApAQCAtNjEsNiArNjEsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3Qg
U2Nyb2xsaW5nU3RhdGVOb2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21taXRTdGF0ZUFm
dGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZENvbXBsZXRlQ29tbWl0Rm9yTm9kZSgpIHsgfQorICAgIAorICAgIHZpcnR1YWwgdm9p
ZCB3YXNSZW1vdmVkRnJvbVRyZWUoKSB7IH0KIAogICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJl
bnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQogICAgIHZvaWQgc2V0UGFyZW50KFNjcm9s
bGluZ1RyZWVOb2RlKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4IDIzNDQ3YWQ4MjA3MTFkZWQ1YTFk
NTUwOWMxNGJmMzIzZjc2MDgxMmQuLjExNjhlMDBjODc2Mzk5Zjk3Y2QxYWI0MDBiNzA5ZDVmNTlk
ODE5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaApAQCAt
NjMsNiArNjMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgZXhwb3NlZFVuZmlsbGVkQXJl
YSgpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIHZvaWQgd2FzUmVtb3ZlZEZyb21UcmVlKCkgZmlu
YWw7CisKICAgICBGbG9hdFBvaW50IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQ
b2ludCYsIFNjcm9sbENsYW1waW5nKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgY3VycmVu
dFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5kZXggMzI3
MTIzY2QyMDhjYWZmNGMzMzhiOGQyMTc2ZDZmYmIzZDk1MWVlNi4uNzEwNWY3NThhMmRjODQzYjNl
ZDRhYjU2YjQ1OTQzNTY1MzZjZDZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMubW0KQEAgLTU3LDYgKzU3LDExIEBAIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWM6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMoU2Nyb2xsaW5n
CiAKIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6On5TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjKCkgPSBkZWZhdWx0OwogCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWM6Ondhc1JlbW92ZWRGcm9tVHJlZSgpCit7CisgICAgbV9kZWxlZ2F0
ZS5ub2RlV2lsbEJlRGVzdHJveWVkKCk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdT
dGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaAppbmRleCBmM2RmM2ZiYzQ2MDFlMDRl
Yjc5NjU2MTgxODFjZDc2YzU0MWNiMDFmLi44YTc2M2E4ZTcyMzg3MGE3MGFlMzVmNjk3ZDc3YWYw
Y2U0Y2M3ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjLmgKQEAgLTUzLDYgKzUzLDggQEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ0V2ZW50UmVz
dWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CisgICAgdm9pZCB3YXNSZW1vdmVkRnJvbVRyZWUoKSBmaW5hbDsKKwogICAg
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMgbV9kZWxlZ2F0ZTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KaW5kZXgg
YjNmNWM1NTMyNzIyYjBiMjE3NDY0ZGViMTBkMTc3ZWRkMTU2OTUxZC4uZjliZjJmNTdhZDkwZjIw
OTkyYTE4NmZmNGIxMWMzYzE5YThiODcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVNYWMubW0KQEAgLTQ5LDYgKzQ5LDExIEBAIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVNYWMoU2NyCiAKIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6On5TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjKCkgPSBkZWZhdWx0OwogCit2b2lkIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6Ondhc1JlbW92ZWRGcm9tVHJlZSgp
Cit7CisgICAgbV9kZWxlZ2F0ZS5ub2RlV2lsbEJlRGVzdHJveWVkKCk7Cit9CisKIHZvaWQgU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3RhdGVCZWZvcmVDaGls
ZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsKICAgICBTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0
YXRlTm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMu
aAppbmRleCBmNWQ0ZGU1ODdmOWU5YTNkMzQ2ODU1NGQ1NjY1NGMwOTE5YmQ5MDcyLi4xNGRhNDJl
NDVlZmMzMzUyZDk0NDliNGU1ZmJhN2EzOGUyZTJhYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGljOgog
ICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMoU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUmKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjKCk7CiAKKyAgICB2b2lkIG5vZGVXaWxsQmVEZXN0cm95ZWQoKTsK
KwogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
IAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCkBAIC02NywyNCArNjksMjUgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAKICAgICAvLyBTY3Jv
bGxDb250cm9sbGVyQ2xpZW50LgotICAgIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmco
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhbGxv
d3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgSW50U2l6ZSBzdHJldGNoQW1vdW50KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmKSBjb25zdCBvdmVycmlkZTsK
LSAgICBib29sIGNhblNjcm9sbEhvcml6b250YWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJv
b2wgY2FuU2Nyb2xsVmVydGljYWxseSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29u
c3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wU25hcFJ1YmJlcmJhbmRUaW1l
cigpIG92ZXJyaWRlOwotICAgIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVj
ZXNzYXJ5KCkgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJU
aW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKKyAgICBib29sIGFs
bG93c0hvcml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0
IGZpbmFsOworICAgIGJvb2wgYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0IGZpbmFsOworICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRTaXplJikg
Y29uc3QgZmluYWw7CisgICAgYm9vbCBjYW5TY3JvbGxIb3Jpem9udGFsbHkoKSBjb25zdCBmaW5h
bDsKKyAgICBib29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdCBmaW5hbDsKKyAgICBib29s
IHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJikgZmluYWw7Cisg
ICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeVdpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNv
bnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5p
bWF0aW9uKCkgZmluYWw7CisgICAgdm9pZCBhZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91bmRzSWZO
ZWNlc3NhcnkoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgRmxv
YXRQb2ludCBzY3JvbGxPZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGltbWVkaWF0
ZVNjcm9sbE9uQXhpcyhTY3JvbGxFdmVudEF4aXMsIGZsb2F0IGRlbHRhKSBvdmVycmlkZTsKICAg
ICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0
U2Nyb2xsU25hcFRpbWVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wU2Nyb2xsU25hcFRpbWVy
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRTdG9wU2Nyb2xsU25hcEFuaW1hdGlvbigpIGZpbmFsOwogICAgIExh
eW91dFNpemUgc2Nyb2xsRXh0ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgRmxvYXRTaXplIHZp
ZXdwb3J0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IGIxZmM3YTZhYjE3MzA2NzE5YWZl
NDZkN2FlMWNhZjc0ODY0YWEyMDMuLmEwYmM5N2E3MjM2ZWNjYWMxZjdhZTIwMWE4MzJhZjczM2M3
OWQwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Lm1tCkBAIC00OSw2ICs0OSwxMSBAQCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjOjp+U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYygpCiAgICAgcmVsZWFz
ZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOwogfQogCit2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vZGVXaWxsQmVEZXN0cm95ZWQo
KQoreworICAgIG1fc2Nyb2xsQ29udHJvbGxlci5zdG9wQWxsVGltZXJzKCk7Cit9CisKICNpZiBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogc3RhdGljIGlubGluZSBWZWN0b3I8TGF5b3V0VW5pdD4g
Y29udmVydFRvTGF5b3V0VW5pdHMoY29uc3QgVmVjdG9yPGZsb2F0PiYgc25hcE9mZnNldHNBc0Zs
b2F0KQogewpAQCAtMTcyLDYgKzE3NywxNCBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWM6OmlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1l
cj4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y3JlYXRlVGltZXIoRnVu
Y3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQoreworICAgIHJldHVybiBXVEY6Om1ha2VVbmlxdWU8
U2Nyb2xsQ29udHJvbGxlclRpbWVyPihSdW5Mb29wOjpjdXJyZW50KCksIFtmdW5jdGlvbiA9IFdU
Rk1vdmUoZnVuY3Rpb24pLCBwcm90ZWN0ZWROb2RlID0gbWFrZVJlZihzY3JvbGxpbmdOb2RlKCkp
XSB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKHByb3RlY3RlZE5vZGUtPnNjcm9sbGluZ1Ry
ZWUoKS50cmVlTXV0ZXgoKSk7CisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKIGJv
b2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpvbnRh
bFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25zdAog
ewogICAgIHN3aXRjaCAoaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKSkgewpAQCAtMjkzLDcg
KzMwNiw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6aW1t
ZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDCiAgICAgc2Nyb2xsaW5nTm9kZSgpLnNj
cm9sbEJ5KG9mZnNldCwgU2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7CiB9CiAKLXZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcFNuYXBSdWJiZXJiYW5kVGlt
ZXIoKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkaWRTdG9w
UnViYmVyYmFuZFNuYXBBbmltYXRpb24oKQogewogICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRNYWlu
RnJhbWVJc1J1YmJlckJhbmRpbmcoZmFsc2UpOwogCkBAIC0zMzYsMTIgKzM0OSwxMiBAQCBmbG9h
dCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpwYWdlU2NhbGVGYWN0b3Io
KSBjb25zdAogICAgIHJldHVybiAxOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWM6OnN0YXJ0U2Nyb2xsU25hcFRpbWVyKCkKK3ZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6d2lsbFN0YXJ0U2Nyb2xsU25hcEFuaW1hdGlvbigp
CiB7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcodHJ1
ZSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3Rv
cFNjcm9sbFNuYXBUaW1lcigpCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OmRpZFN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKCkKIHsKICAgICBzY3JvbGxpbmdUcmVl
KCkuc2V0TWFpbkZyYW1lSXNTY3JvbGxTbmFwcGluZyhmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggMGZjNzI5ZTkxMmI1NzBjYjIzM2Q4
ODc4ZWE4ZjYwMTFiYWQ2NDc4Ny4uMmEzMDk4MTY1ZWRjY2Y3MDYzMWJmNjhmZjJlNjM5NzhlYTYy
ZmJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAt
MzksNiArMzksMTAgQEAKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KIAorI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJf
QkFORElORykKKyNpbmNsdWRlICJTY3JvbGxDb250cm9sbGVyLmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAjaWYgIUVOQUJMRShTTU9PVEhfU0NST0xMSU5HKSAmJiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdQRSkKQEAgLTI0
MSw2ICsyNDUsMTcgQEAgRmxvYXRTaXplIFNjcm9sbEFuaW1hdG9yOjp2aWV3cG9ydFNpemUoKSBj
b25zdAogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShS
VUJCRVJfQkFORElORykKK3N0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IFNj
cm9sbEFuaW1hdG9yOjpjcmVhdGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCit7
CisgICAgcmV0dXJuIFdURjo6bWFrZVVuaXF1ZTxTY3JvbGxDb250cm9sbGVyVGltZXI+KFJ1bkxv
b3A6OmN1cnJlbnQoKSwgW2Z1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbiksIHdlYWtTY3JvbGxh
YmxlQXJlYSA9IG1ha2VXZWFrUHRyKG1fc2Nyb2xsYWJsZUFyZWEpXSB7CisgICAgICAgIGlmICgh
d2Vha1Njcm9sbGFibGVBcmVhKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBmdW5jdGlv
bigpOworICAgIH0pOworfQorI2VuZGlmCisKICNpZiAoRU5BQkxFKENTU19TQ1JPTExfU05BUCkg
fHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkgJiYgUExBVEZPUk0oTUFDKQogdm9pZCBTY3JvbGxB
bmltYXRvcjo6ZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2hlZWxF
dmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbiByZWFzb24pIGNvbnN0CiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA2NjExODdhNzFjMDg5YzRhOGFjMGY3
MzZkZmYzZjFhM2ZhMjE3NDIxLi5kNTFhMzExZWY3MmYxY2M2NTFlNTYwMDJmZGYwYjQ2YzgyNTE1
NWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTUxLDYg
KzUxLDEwIEBAIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogY2xhc3MgU2Nyb2xsYmFyOwogY2xhc3Mg
V2hlZWxFdmVudFRlc3RNb25pdG9yOwogCisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorY2xhc3MgU2Nyb2xsQ29udHJvbGxlclRpbWVyOworI2Vu
ZGlmCisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJ
TkcpCiBjbGFzcyBTY3JvbGxBbmltYXRvciA6IHByaXZhdGUgU2Nyb2xsQ29udHJvbGxlckNsaWVu
dCB7CiAjZWxzZQpAQCAtMTMyLDcgKzEzNiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWZlcldo
ZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNj
cm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNv
bikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRp
b25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVh
SWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3Qgb3Zl
cnJpZGU7CiAjZW5kaWYKLSAgICAKKworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVO
QUJMRShSVUJCRVJfQkFORElORykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxl
clRpbWVyPiBjcmVhdGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOworI2VuZGlmCisK
ICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29s
IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIu
aAppbmRleCA3NTQ2YjlmYTM1MGVkMTEyNjgzNjlmZTcyYzI4YThmZjY3N2RiMDk0Li41ODlhNzFk
YzFhZmNlYmFlNjA3YzU1Zjc1ZWYzMzFjYThiZTIyODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCkBAIC00MywxNCArNDMsMzQgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMYXlvdXRTaXplOwogY2xhc3MgUGxhdGZvcm1X
aGVlbEV2ZW50OworY2xhc3MgU2Nyb2xsQ29udHJvbGxlcjsKIGNsYXNzIFNjcm9sbGFibGVBcmVh
OwogY2xhc3MgV2hlZWxFdmVudFRlc3RNb25pdG9yOwogCitjbGFzcyBTY3JvbGxDb250cm9sbGVy
VGltZXIgOiBwdWJsaWMgUnVuTG9vcDo6VGltZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBTY3JvbGxD
b250cm9sbGVyVGltZXIoUnVuTG9vcCYgcnVuTG9vcCwgRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxi
YWNrKQorICAgICAgICA6IFJ1bkxvb3A6OlRpbWVyQmFzZShydW5Mb29wKQorICAgICAgICAsIG1f
Y2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCisgICAgeworICAgIH0KKworICAgIHZvaWQgZmly
ZWQoKSBmaW5hbAorICAgIHsKKyAgICAgICAgbV9jYWxsYmFjaygpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fY2FsbGJhY2s7Cit9OworCiBjbGFzcyBTY3JvbGxD
b250cm9sbGVyQ2xpZW50IHsKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5TY3JvbGxDb250cm9s
bGVyQ2xpZW50KCkgPSBkZWZhdWx0OwogCiBwdWJsaWM6CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBjcmVhdGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+
JiYpID0gMDsKKwogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QgPSAwOwpAQCAtNjMsMTUgKzgzLDggQEAgcHVibGlj
OgogICAgIC8vIEZJWE1FOiB1c2UgU2Nyb2xsQ2xhbXBpbmcgdG8gY29sbGFwc2UgdGhlc2UgdG8g
b25lLgogICAgIHZpcnR1YWwgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRF
ZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRTaXplJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBz
dGFydFNuYXBSdWJiZXJiYW5kVGltZXIoKQotICAgIHsKLSAgICAgICAgLy8gT3ZlcnJpZGUgdG8g
cGVyZm9ybSBjbGllbnQtc3BlY2lmaWMgc25hcCBzdGFydCBsb2dpYwotICAgIH0KLQotICAgIHZp
cnR1YWwgdm9pZCBzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcigpCi0gICAgewotICAgICAgICAvLyBP
dmVycmlkZSB0byBwZXJmb3JtIGNsaWVudC1zcGVjaWZpYyBzbmFwIGVuZCBsb2dpYwotICAgIH0K
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0UnViYmVyQmFuZFNuYXBBbmltYXRpb24oKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcFJ1YmJlcmJhbmRTbmFwQW5pbWF0aW9uKCkgeyB9CiAg
ICAgCiAgICAgLy8gSWYgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIGlzIHdpdGhpbiB0aGUg
b3ZlcmhhbmcgYXJlYSwgdGhpcyBmdW5jdGlvbiB3aWxsIGNhdXNlCiAgICAgLy8gdGhlIHBhZ2Ug
dG8gc2Nyb2xsIHRvIHRoZSBuZWFyZXN0IGJvdW5kYXJ5IHBvaW50LgpAQCAtODQsMTUgKzk3LDgg
QEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgdmlydHVhbCBGbG9h
dFBvaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW1tZWRp
YXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50QXhpcywgZmxvYXQgZGVsdGEpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRTY3JvbGxTbmFwVGltZXIoKQotICAgIHsKLSAgICAgICAgLy8gT3Zl
cnJpZGUgdG8gcGVyZm9ybSBjbGllbnQtc3BlY2lmaWMgc2Nyb2xsIHNuYXAgcG9pbnQgc3RhcnQg
bG9naWMKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFNjcm9sbFNuYXBUaW1lcigpCi0g
ICAgewotICAgICAgICAvLyBPdmVycmlkZSB0byBwZXJmb3JtIGNsaWVudC1zcGVjaWZpYyBzY3Jv
bGwgc25hcCBwb2ludCBlbmQgbG9naWMKLSAgICB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxTdGFy
dFNjcm9sbFNuYXBBbmltYXRpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcFNjcm9s
bFNuYXBBbmltYXRpb24oKSB7IH0KIAogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9y
KCkgY29uc3QKICAgICB7CkBAIC0xNTEsNiArMTU3LDggQEAgcHVibGljOgogICAgIGVudW0gY2xh
c3MgV2hlZWxBeGlzQmlhcyB7IE5vbmUsIFZlcnRpY2FsIH07CiAgICAgc3RhdGljIE9wdGlvbmFs
PFNjcm9sbERpcmVjdGlvbj4gZGlyZWN0aW9uRnJvbUV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIE9wdGlvbmFsPFNjcm9sbEV2ZW50QXhpcz4sIFdoZWVsQXhpc0JpYXMgPSBXaGVlbEF4
aXNCaWFzOjpOb25lKTsKIAorICAgIHZvaWQgc3RvcEFsbFRpbWVycygpOworCiBwcml2YXRlOgog
I2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICB2b2lkIHN0YXJ0U25hcFJ1YmJlcmJhbmRU
aW1lcigpOwpAQCAtMTkyLDE1ICsyMDAsMTUgQEAgcHJpdmF0ZToKICAgICBDRlRpbWVJbnRlcnZh
bCBtX3N0YXJ0VGltZSB7IDAgfTsKICAgICBGbG9hdFNpemUgbV9zdGFydFN0cmV0Y2g7CiAgICAg
RmxvYXRTaXplIG1fb3JpZ1ZlbG9jaXR5OwotICAgIFJ1bkxvb3A6OlRpbWVyPFNjcm9sbENvbnRy
b2xsZXI+IG1fc25hcFJ1YmJlcmJhbmRUaW1lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xs
Q29udHJvbGxlclRpbWVyPiBtX3NuYXBSdWJiZXJiYW5kVGltZXI7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbFNuYXBBbmlt
YXRvclN0YXRlPiBtX3Njcm9sbFNuYXBTdGF0ZTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgRmxv
YXRTaXplIG1fZHJhZ0VuZGVkU2Nyb2xsaW5nVmVsb2NpdHk7Ci0gICAgUnVuTG9vcDo6VGltZXI8
U2Nyb2xsQ29udHJvbGxlcj4gbV9zdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyOwotICAgIFJ1
bkxvb3A6OlRpbWVyPFNjcm9sbENvbnRyb2xsZXI+IG1fc2Nyb2xsU25hcFRpbWVyOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IG1fc3RhdGVsZXNzU25hcFRyYW5z
aXRpb25UaW1lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBt
X3Njcm9sbFNuYXBUaW1lcjsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTIwOCw3ICsyMTYsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9pblNjcm9sbEdlc3R1cmUgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pZ25vcmVN
b21lbnR1bVNjcm9sbHMgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zbmFwUnViYmVyYmFuZFRpbWVy
SXNBY3RpdmUgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBib29sIG1fYWN0aXZlU2Nyb2xsU25h
cEluZGV4RGlkQ2hhbmdlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IDBmNDFhNzJjNDVmNzA1Mjk3YTIwYTg4
M2JkZmJkOGNhY2I3ZjljM2QuLjYxN2I2ZGI2NDIwYjdkZGM4MjgzZDgwOTA5YzZmODI5NTJhYjI1
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5tbQpAQCAtODYsMTQgKzg2LDIzIEBAIHN0YXRpYyBTY3JvbGxFdmVudEF4aXMgb3RoZXJT
Y3JvbGxFdmVudEF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpCiAKIFNjcm9sbENvbnRyb2xsZXI6
OlNjcm9sbENvbnRyb2xsZXIoU2Nyb2xsQ29udHJvbGxlckNsaWVudCYgY2xpZW50KQogICAgIDog
bV9jbGllbnQoY2xpZW50KQoreworfQorCit2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0b3BBbGxU
aW1lcnMoKQorewogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICAsIG1fc25hcFJ1YmJl
cmJhbmRUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZTY3JvbGxDb250cm9sbGVyOjpz
bmFwUnViYmVyQmFuZFRpbWVyRmlyZWQpCisgICAgaWYgKG1fc25hcFJ1YmJlcmJhbmRUaW1lcikK
KyAgICAgICAgbV9zbmFwUnViYmVyYmFuZFRpbWVyLT5zdG9wKCk7CiAjZW5kaWYKKwogI2lmIEVO
QUJMRShDU1NfU0NST0xMX1NOQVApICYmIFBMQVRGT1JNKE1BQykKLSAgICAsIG1fc3RhdGVsZXNz
U25hcFRyYW5zaXRpb25UaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZTY3JvbGxDb250
cm9sbGVyOjpzdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyRmlyZWQpCi0gICAgLCBtX3Njcm9s
bFNuYXBUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZTY3JvbGxDb250cm9sbGVyOjpz
Y3JvbGxTbmFwVGltZXJGaXJlZCkKKyAgICBpZiAobV9zdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRp
bWVyKQorICAgICAgICBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXItPnN0b3AoKTsKKwor
ICAgIGlmIChtX3Njcm9sbFNuYXBUaW1lcikKKyAgICAgICAgbV9zY3JvbGxTbmFwVGltZXItPnN0
b3AoKTsKICNlbmRpZgotewogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTM5LDcgKzE0OCw3
IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgfQogCiAgICAgYm9vbCBpc01vbWVudHVtU2Ny
b2xsRXZlbnQgPSAod2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2VOb25lKTsKLSAgICBpZiAobV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgJiYgKGlzTW9t
ZW50dW1TY3JvbGxFdmVudCB8fCBtX3NuYXBSdWJiZXJiYW5kVGltZXJJc0FjdGl2ZSkpIHsKKyAg
ICBpZiAobV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgJiYgKGlzTW9tZW50dW1TY3JvbGxFdmVudCB8
fCBtX3NuYXBSdWJiZXJiYW5kVGltZXIpKSB7CiAgICAgICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVu
dHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVuZGVkKSB7CiAgICAgICAgICAg
ICBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CkBAIC0zODUsMTAgKzM5NCwxMCBAQCB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnNuYXBSdWJi
ZXJCYW5kVGltZXJGaXJlZCgpCiAgICAgICAgICAgICBpZiAobV9zdGFydFN0cmV0Y2ggPT0gRmxv
YXRTaXplKCkpIHsKICAgICAgICAgICAgICAgICBzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcigpOwog
Ci0gICAgICAgICAgICAgICAgbV9zdHJldGNoU2Nyb2xsRm9yY2UgPSBGbG9hdFNpemUoKTsKKyAg
ICAgICAgICAgICAgICBtX3N0cmV0Y2hTY3JvbGxGb3JjZSA9IHsgfTsKICAgICAgICAgICAgICAg
ICBtX3N0YXJ0VGltZSA9IDA7Ci0gICAgICAgICAgICAgICAgbV9zdGFydFN0cmV0Y2ggPSBGbG9h
dFNpemUoKTsKLSAgICAgICAgICAgICAgICBtX29yaWdWZWxvY2l0eSA9IEZsb2F0U2l6ZSgpOwor
ICAgICAgICAgICAgICAgIG1fc3RhcnRTdHJldGNoID0geyB9OworICAgICAgICAgICAgICAgIG1f
b3JpZ1ZlbG9jaXR5ID0geyB9OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IH0KIApAQCAtNDIxLDE0ICs0MzAsMTQgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzbmFwUnVi
YmVyQmFuZFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgbV9jbGllbnQuYWRqdXN0U2Nyb2xsUG9z
aXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCk7CiAKICAgICAgICAgICAgIHN0b3BTbmFwUnViYmVy
YmFuZFRpbWVyKCk7Ci0gICAgICAgICAgICBtX3N0cmV0Y2hTY3JvbGxGb3JjZSA9IEZsb2F0U2l6
ZSgpOworICAgICAgICAgICAgbV9zdHJldGNoU2Nyb2xsRm9yY2UgPSB7IH07CiAgICAgICAgICAg
ICBtX3N0YXJ0VGltZSA9IDA7Ci0gICAgICAgICAgICBtX3N0YXJ0U3RyZXRjaCA9IEZsb2F0U2l6
ZSgpOwotICAgICAgICAgICAgbV9vcmlnVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsKKyAgICAgICAg
ICAgIG1fc3RhcnRTdHJldGNoID0geyB9OworICAgICAgICAgICAgbV9vcmlnVmVsb2NpdHkgPSB7
IH07CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBtX3N0YXJ0VGltZSA9IFtOU0Rh
dGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKLSAgICAgICAgbV9zdGFydFN0cmV0
Y2ggPSBGbG9hdFNpemUoKTsKKyAgICAgICAgbV9zdGFydFN0cmV0Y2ggPSB7IH07CiAgICAgICAg
IGlmICghaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpKQogICAgICAgICAgICAgc3RvcFNuYXBSdWJi
ZXJiYW5kVGltZXIoKTsKICAgICB9CkBAIC00MzgsNyArNDQ3LDcgQEAgdm9pZCBTY3JvbGxDb250
cm9sbGVyOjpzbmFwUnViYmVyQmFuZFRpbWVyRmlyZWQoKQogYm9vbCBTY3JvbGxDb250cm9sbGVy
Ojppc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoUlVCQkVSX0JB
TkRJTkcpICYmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoIW1faW5TY3JvbGxHZXN0dXJlICYmICFt
X21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiAhbV9zbmFwUnViYmVyYmFuZFRpbWVySXNBY3Rp
dmUpCisgICAgaWYgKCFtX2luU2Nyb2xsR2VzdHVyZSAmJiAhbV9tb21lbnR1bVNjcm9sbEluUHJv
Z3Jlc3MgJiYgIW1fc25hcFJ1YmJlcmJhbmRUaW1lcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgcmV0dXJuICFtX2NsaWVudC5zdHJldGNoQW1vdW50KCkuaXNaZXJvKCk7CkBAIC00NTAs
NyArNDU5LDcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjppc1J1YmJlckJhbmRJblByb2dyZXNz
KCkgY29uc3QKIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygp
IGNvbnN0CiB7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgJiYgUExBVEZPUk0oTUFDKQot
ICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyB8
fCBtX3Njcm9sbFNuYXBUaW1lci5pc0FjdGl2ZSgpKQorICAgIGlmIChtX2luU2Nyb2xsR2VzdHVy
ZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyB8fCBtX3Njcm9sbFNuYXBUaW1lcikKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CkBAIC00NTksMTcg
KzQ2OCwyNSBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3Mo
KSBjb25zdAogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKIHZvaWQgU2Nyb2xsQ29udHJvbGxl
cjo6c3RhcnRTbmFwUnViYmVyYmFuZFRpbWVyKCkKIHsKLSAgICBtX2NsaWVudC5zdGFydFNuYXBS
dWJiZXJiYW5kVGltZXIoKTsKLSAgICBtX3NuYXBSdWJiZXJiYW5kVGltZXIuc3RhcnRSZXBlYXRp
bmcoMV9zIC8gNjAuKTsKKyAgICBtX2NsaWVudC53aWxsU3RhcnRSdWJiZXJCYW5kU25hcEFuaW1h
dGlvbigpOworCisgICAgLy8gTWFrZSBhIG5ldyBvbmUgZWFjaCB0aW1lIHRvIGVuc3VyZSBpdCBm
aXJlcyBvbiB0aGUgY3VycmVudCBSdW5Mb29wLgorICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lciA9
IG1fY2xpZW50LmNyZWF0ZVRpbWVyKFt0aGlzXSB7CisgICAgICAgIHNuYXBSdWJiZXJCYW5kVGlt
ZXJGaXJlZCgpOworICAgIH0pOworICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lci0+c3RhcnRSZXBl
YXRpbmcoMV9zIC8gNjAuKTsKIAogICAgIG1fY2xpZW50LmRlZmVyV2hlZWxFdmVudFRlc3RDb21w
bGV0aW9uRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpT
Y3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHRoaXMpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJ1
YmJlcmJhbmRJblByb2dyZXNzKTsKIH0KIAogdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzdG9wU25h
cFJ1YmJlcmJhbmRUaW1lcigpCiB7Ci0gICAgbV9jbGllbnQuc3RvcFNuYXBSdWJiZXJiYW5kVGlt
ZXIoKTsKLSAgICBtX3NuYXBSdWJiZXJiYW5kVGltZXIuc3RvcCgpOwotICAgIG1fc25hcFJ1YmJl
cmJhbmRUaW1lcklzQWN0aXZlID0gZmFsc2U7CisgICAgbV9jbGllbnQuZGlkU3RvcFJ1YmJlcmJh
bmRTbmFwQW5pbWF0aW9uKCk7CisgICAgCisgICAgaWYgKG1fc25hcFJ1YmJlcmJhbmRUaW1lcikg
eworICAgICAgICBtX3NuYXBSdWJiZXJiYW5kVGltZXItPnN0b3AoKTsKKyAgICAgICAgbV9zbmFw
UnViYmVyYmFuZFRpbWVyID0gbnVsbHB0cjsKKyAgICB9CiAgICAgCiAgICAgbV9jbGllbnQucmVt
b3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24ocmVpbnRlcnByZXRf
Y2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4odGhp
cyksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UnViYmVyYmFuZEluUHJvZ3Jlc3MpOwogfQpAQCAt
NDgyLDE1ICs0OTksMTQgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzbmFwUnViYmVyQmFuZCgp
CiAKICAgICBtX2luU2Nyb2xsR2VzdHVyZSA9IGZhbHNlOwogCi0gICAgaWYgKG1fc25hcFJ1YmJl
cmJhbmRUaW1lcklzQWN0aXZlKQorICAgIGlmIChtX3NuYXBSdWJiZXJiYW5kVGltZXIpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fc3RhcnRUaW1lID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5j
ZVJlZmVyZW5jZURhdGVdOwotICAgIG1fc3RhcnRTdHJldGNoID0gRmxvYXRTaXplKCk7Ci0gICAg
bV9vcmlnVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsKKyAgICBtX3N0YXJ0U3RyZXRjaCA9IHsgfTsK
KyAgICBtX29yaWdWZWxvY2l0eSA9IHsgfTsKIAogICAgIHN0YXJ0U25hcFJ1YmJlcmJhbmRUaW1l
cigpOwotICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lcklzQWN0aXZlID0gdHJ1ZTsKIH0KIAogYm9v
bCBTY3JvbGxDb250cm9sbGVyOjpzaG91bGRSdWJiZXJCYW5kSW5Ib3Jpem9udGFsRGlyZWN0aW9u
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKQEAgLTU2NCwxNyAr
NTgwLDI1IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6c2hvdWxkT3ZlcnJpZGVJbmVydGlhbFNj
cm9sbGluZygpIGNvbnN0CiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnNjaGVkdWxlU3RhdGVsZXNz
U2Nyb2xsU25hcCgpCiB7CiAgICAgc3RvcFNjcm9sbFNuYXBUaW1lcigpOwotICAgIG1fc3RhdGVs
ZXNzU25hcFRyYW5zaXRpb25UaW1lci5zdG9wKCk7CisgICAgaWYgKG1fc3RhdGVsZXNzU25hcFRy
YW5zaXRpb25UaW1lcikgeworICAgICAgICBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXIt
PnN0b3AoKTsKKyAgICAgICAgbV9zdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyID0gbnVsbHB0
cjsKKyAgICB9CiAgICAgaWYgKCFtX3Njcm9sbFNuYXBTdGF0ZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgc3RhdGljIGNvbnN0IFNlY29uZHMgc3RhdGVsZXNzU2Nyb2xsU25hcERlbGF5ID0gNzUw
X21zOwotICAgIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lci5zdGFydE9uZVNob3Qoc3Rh
dGVsZXNzU2Nyb2xsU25hcERlbGF5KTsKKyAgICBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGlt
ZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBzdGF0ZWxlc3NTbmFw
VHJhbnNpdGlvblRpbWVyRmlyZWQoKTsKKyAgICB9KTsKKyAgICBtX3N0YXRlbGVzc1NuYXBUcmFu
c2l0aW9uVGltZXItPnN0YXJ0T25lU2hvdChzdGF0ZWxlc3NTY3JvbGxTbmFwRGVsYXkpOwogICAg
IHN0YXJ0RGVmZXJyaW5nV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRHVlVG9TY3JvbGxTbmFwcGlu
ZygpOwogfQogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0YXRlbGVzc1NuYXBUcmFuc2l0aW9u
VGltZXJGaXJlZCgpCiB7CisgICAgbV9zdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyID0gbnVs
bHB0cjsKKwogICAgIGlmICghbV9zY3JvbGxTbmFwU3RhdGUpCiAgICAgICAgIHJldHVybjsKIApA
QCAtNjM2LDIyICs2NjAsMjcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpwcm9jZXNzV2hlZWxF
dmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JgogCiB2b2lkIFNjcm9s
bENvbnRyb2xsZXI6OnN0YXJ0U2Nyb2xsU25hcFRpbWVyKCkKIHsKLSAgICBpZiAobV9zY3JvbGxT
bmFwVGltZXIuaXNBY3RpdmUoKSkKKyAgICBpZiAobV9zY3JvbGxTbmFwVGltZXIpCiAgICAgICAg
IHJldHVybjsKIAogICAgIHN0YXJ0RGVmZXJyaW5nV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRHVl
VG9TY3JvbGxTbmFwcGluZygpOwotICAgIG1fY2xpZW50LnN0YXJ0U2Nyb2xsU25hcFRpbWVyKCk7
Ci0gICAgbV9zY3JvbGxTbmFwVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsKKyAgICBt
X2NsaWVudC53aWxsU3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKCk7CisgICAgbV9zY3JvbGxTbmFw
VGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBzY3JvbGxTbmFw
VGltZXJGaXJlZCgpOworICAgIH0pOworICAgIG1fc2Nyb2xsU25hcFRpbWVyLT5zdGFydFJlcGVh
dGluZygxX3MgLyA2MC4pOwogfQogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0b3BTY3JvbGxT
bmFwVGltZXIoKQogewotICAgIGlmICghbV9zY3JvbGxTbmFwVGltZXIuaXNBY3RpdmUoKSkKKyAg
ICBpZiAoIW1fc2Nyb2xsU25hcFRpbWVyKQogICAgICAgICByZXR1cm47CiAKICAgICBzdG9wRGVm
ZXJyaW5nV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRHVlVG9TY3JvbGxTbmFwcGluZygpOwotICAg
IG1fY2xpZW50LnN0b3BTY3JvbGxTbmFwVGltZXIoKTsKLSAgICBtX3Njcm9sbFNuYXBUaW1lci5z
dG9wKCk7CisgICAgbV9jbGllbnQuZGlkU3RvcFNjcm9sbFNuYXBBbmltYXRpb24oKTsKKworICAg
IG1fc2Nyb2xsU25hcFRpbWVyLT5zdG9wKCk7CisgICAgbV9zY3JvbGxTbmFwVGltZXIgPSBudWxs
cHRyOwogfQogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnNjcm9sbFNuYXBUaW1lckZpcmVkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5k
ZXggZWY2ZWVhMDUyYTU1ZWFlY2QxYmE3Y2FhNWIzYTNhNjA0NmNiOWZhMy4uZTNjM2MwYTE3ZGMw
MTdmMWJlMTU2MmZiZDhmYWFlNGYwZThjZDhhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTQ2LDcgKzQ2LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgU2Nyb2xsYmFyOwogCiBjbGFzcyBTY3JvbGxBbmltYXRvck1hYyA6
IHB1YmxpYyBTY3JvbGxBbmltYXRvciB7Ci0KIHB1YmxpYzoKICAgICBTY3JvbGxBbmltYXRvck1h
YyhTY3JvbGxhYmxlQXJlYSYpOwogICAgIHZpcnR1YWwgflNjcm9sbEFuaW1hdG9yTWFjKCk7CkBA
IC0xNDEsMTggKzE0MCwxOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBob3Jpem9udGFsU2Nyb2xs
YmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHZlcnRpY2FsU2Ny
b2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmluYWw7CiAKKyAgICAvLyBTY3JvbGxDb250
cm9sbGVyQ2xpZW50LgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICAvLy8gU2Nyb2xs
Q29udHJvbGxlckNsaWVudCBtZW1iZXIgZnVuY3Rpb25zLgotICAgIEludFNpemUgc3RyZXRjaEFt
b3VudCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hp
bmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBh
bGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmKSBj
b25zdCBvdmVycmlkZTsKLSAgICBib29sIGNhblNjcm9sbEhvcml6b250YWxseSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIGJvb2wgY2FuU2Nyb2xsVmVydGljYWxseSgpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxCeVdpdGhvdXRDb250ZW50RWRn
ZUNvbnN0cmFpbnRzKGNvbnN0IEZsb2F0U2l6ZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW1tZWRp
YXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhZGp1c3RT
Y3JvbGxQb3NpdGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKKyAgICBJbnRTaXpl
IHN0cmV0Y2hBbW91bnQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGFsbG93c0hvcml6b250YWxT
dHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0IGZpbmFsOworICAgIGJv
b2wgYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRTaXplJikg
Y29uc3QgZmluYWw7CisgICAgYm9vbCBjYW5TY3JvbGxIb3Jpem9udGFsbHkoKSBjb25zdCBmaW5h
bDsKKyAgICBib29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBjb25zdCBmaW5hbDsKKyAgICBib29s
IHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50
cyhjb25zdCBGbG9hdFNpemUmKSBmaW5hbDsKKyAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5KGNv
bnN0IEZsb2F0U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0Jv
dW5kc0lmTmVjZXNzYXJ5KCkgZmluYWw7CiAKICAgICBib29sIGlzQWxyZWFkeVBpbm5lZEluRGly
ZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhp
cykgY29uc3Q7CiAjZW5kaWYK
</data>
<flag name="review"
          id="415432"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
      

    </bug>

</bugzilla>