<?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>165147</bug_id>
          
          <creation_ts>2016-11-29 10:34:38 -0800</creation_ts>
          <short_desc>Address post-review feedback following r209070 (AppKit momentum scrolling adoption for scroll snapping)</short_desc>
          <delta_ts>2016-11-29 13:12:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1254322</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-11-29 10:34:38 -0800</bug_when>
    <thetext>See comments from Simon and Zalan in https://bugs.webkit.org/show_bug.cgi?id=147261</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254366</commentid>
    <comment_count>1</comment_count>
      <attachid>295613</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-11-29 11:37:54 -0800</bug_when>
    <thetext>Created attachment 295613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254396</commentid>
    <comment_count>2</comment_count>
      <attachid>295613</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-11-29 12:28:06 -0800</bug_when>
    <thetext>Comment on attachment 295613
Patch

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

&gt; Source/WebCore/page/Page.cpp:2002
&gt; +        }

This looks so much better now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254418</commentid>
    <comment_count>3</comment_count>
      <attachid>295613</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-29 13:12:46 -0800</bug_when>
    <thetext>Comment on attachment 295613
Patch

Clearing flags on attachment: 295613

Committed r209087: &lt;http://trac.webkit.org/changeset/209087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254419</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-29 13:12:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295613</attachid>
            <date>2016-11-29 11:37:54 -0800</date>
            <delta_ts>2016-11-29 13:12:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165147-20161129113729.patch</filename>
            <type>text/plain</type>
            <size>35327</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYwNGQwNTQ4ODE5YjBl
NTAzYmU5NjUwYTQ3YmNlYzgxOTBmOWYxNi4uY2NlNTg1NDJlZTVjZTZmYmYyZTczZmFlNDkxMmEx
NmJlMDM2ODljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDczIEBACiAyMDE2LTExLTI5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIEFkZHJlc3MgcG9z
dC1yZXZpZXcgZmVlZGJhY2sgZm9sbG93aW5nIHIyMDkwNzAgKEFwcEtpdCBtb21lbnR1bSBzY3Jv
bGxpbmcgYWRvcHRpb24gZm9yIHNjcm9sbCBzbmFwcGluZykKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTE0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHJlc3NlcyBzb21lIGFkZGl0aW9uYWwgcmV2
aWV3IGZlZWRiYWNrIGFmdGVyIHIyMDkwNzAsIHdoaWNoIGFkb3B0cyBfTlNTY3JvbGxpbmdNb21l
bnR1bUNhbGN1bGF0b3IgZm9yIHNjcm9sbAorICAgICAgICBzbmFwcGluZy4gU2VlIGluZGl2aWR1
YWwgY2hhbmdlcyBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLiBObyBuZXcgdGVzdHMsIHNpbmNlIHRo
ZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5j
bG9zaW5nQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdFdoZWVs
RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6ZW5zdXJlVGVzdFRyaWdnZXIpOgorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudERl
bHRhRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YUZpbHRlcjo6
ZmlsdGVyZWRWZWxvY2l0eSk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIu
aDoKKyAgICAgICAgKiBwYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OnVwZGF0ZUZyb21EZWx0YSk6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVFeHBl
Y3RzV2hlZWxFdmVudFRlc3RUcmlnZ2VyV2l0aEZyYW1lVmlldyk6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdDb29yZGluYXRvcjo6dXBkYXRlRXhwZWN0c1doZWVsRXZlbnRUZXN0VHJpZ2dlcldpdGhGcmFt
ZVZpZXcpOgorCisgICAgICAgIFJhdGhlciB0aGFuIGZvcmNlIGEgY29tcGxldGUgbGF5b3V0IHBh
c3Mgd2hlbiB0aGUgUGFnZSBmaXJzdCBhY3F1aXJlcyBhIFdoZWVsRXZlbnRUZXN0VHJpZ2dlciwg
d2Ugbm93IHNpbXBseQorICAgICAgICBoYXZlIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3IgdXBk
YXRlIGl0cyBmcmFtZSBub2RlIHRvIGV4cGVjdCBhIHdoZWVsIGV2ZW50IHRlc3QgdHJpZ2dlci4K
KworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OlNjcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdNb21l
bnR1bUNhbGN1bGF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1Njcm9sbGlu
Z01vbWVudHVtQ2FsY3VsYXRvcjo6QmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OnNjcm9s
bE9mZnNldEFmdGVyRWxhcHNlZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTY3JvbGxp
bmdNb21lbnR1bUNhbGN1bGF0b3I6OmFuaW1hdGlvbkR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjppbml0aWFsaXplU25hcFByb2dy
ZXNzQ3VydmUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1
bGF0b3I6OmFuaW1hdGlvblByb2dyZXNzQWZ0ZXJFbGFwc2VkVGltZSk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmg6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5oOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWM6OlNjcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdN
b21lbnR1bUNhbGN1bGF0b3JNYWM6OnNjcm9sbE9mZnNldEFmdGVyRWxhcHNlZFRpbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjOjphbmltYXRpb25E
dXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JN
YWM6OmVuc3VyZVBsYXRmb3JtTW9tZW50dW1DYWxjdWxhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9QbGF0Zm9ybVdoZWVsRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxF
dmVudDo6Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVdoZWVsRXZlbnQ6OnNjcm9sbGluZ1ZlbG9jaXR5KToKKworICAgICAgICBDaGFuZ2Ugc2Ny
b2xsaW5nIHZlbG9jaXR5IGluIFBsYXRmb3JtV2hlZWxFdmVudCB0byBiZSBhIEZsb2F0U2l6ZSBp
bnN0ZWFkIG9mIGEgRmxvYXRQb2ludC4gVGhpcyBjaGFuZ2UKKyAgICAgICAgcHJvcGFnYXRlcyB0
byB0aGUgU2Nyb2xsQ29udHJvbGxlciwgd2hlcmUgc3RhdGUgdmFyaWFibGVzIGFuZCBhcmd1bWVu
dHMgcGVydGFpbmluZyB0byBzY3JvbGxpbmcgdmVsb2NpdHkgYXJlCisgICAgICAgIGFsc28gbm93
IHNpemVzIGluc3RlYWQgb2YgcG9pbnRzLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Ny
b2xsQ29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xs
ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzY2hlZHVsZVN0YXRl
bGVzc1Njcm9sbFNuYXApOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbFNuYXBBbmlt
YXRvclN0YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9y
U3RhdGUubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6dHJh
bnNpdGlvblRvR2xpZGVBbmltYXRpb25TdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZTo6c2V0dXBBbmltYXRpb25Gb3JTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6dGVhcmRvd25BbmltYXRpb25Gb3JTdGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6Y3VycmVudEFuaW1h
dGVkU2Nyb2xsT2Zmc2V0KToKKworICAgICAgICBSZWZhY3RvciBlbGFwc2VkIHRpbWUgdG8gYmUg
U2Vjb25kcyBpbnN0ZWFkIG9mIGRvdWJsZS4gQWRkaXRpb25hbGx5LCB1c2UgTW9ub3RvbmljVGlt
ZTo6bm93KCkgaW5zdGVhZCBvZgorICAgICAgICBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KSwgYW5kIE1vbm90b25pY1RpbWUgaW5zdGVhZCBvZiBkb3VibGUgZm9yIGtlZXBpbmcgdHJhY2sg
b2YgdGhlIHN0YXJ0IHRpbWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvbWFjL05TU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJLmg6CisKKzIwMTYtMTEtMjkgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBi
dWlsZCBhZnRlciByMjA5MDcwCiAKICAgICAgICAgLVtTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0
b3JNYWMgY2FsY3VsYXRlVG9SZWFjaERlc3RpbmF0aW9uXSBpcyBvbmx5IGF2YWlsYWJsZSBvbiBT
aWVycmEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNGU4NzcyY2RiYzg5
N2U4MDlhNDVlZDY0OGM0MzEyZTZlNDkyNjI2MS4uYTc1NDI3Y2E0NmM3MWY5ZTYxMzQzN2FmMDk3
YTNlZGFiMWI3ZWQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzAz
LDcgKzMwMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVh
KFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSwgV2hlCiAgICAgcmV0dXJuIGRpZEhhbmRs
ZVdoZWVsRXZlbnQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBoYW5kbGVXaGVlbEV2ZW50SW5B
cHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIFdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQsIEVsZW1lbnQqKiBzdG9wRWxlbWVudCwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEsIGNvbnN0IEZsb2F0UG9pbnQmIGZpbHRlcmVkVmVsb2NpdHkpCitzdGF0aWMg
aW5saW5lIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9k
ZSogc3RhcnROb2RlLCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBFbGVtZW50Kiogc3RvcEVsZW1l
bnQsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLCBjb25zdCBGbG9hdFNp
emUmIGZpbHRlcmVkVmVsb2NpdHkpCiB7CiAgICAgYm9vbCBzaG91bGRIYW5kbGVFdmVudCA9IHdo
ZWVsRXZlbnQuZGVsdGFYKCkgfHwgd2hlZWxFdmVudC5kZWx0YVkoKTsKICNpZiBQTEFURk9STShN
QUMpCkBAIC0yNzU4LDcgKzI3NTgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFdoZWVs
RXZlbnRIYW5kbGVyKE5vZGUqIHN0YXJ0Tm9kZSwgV2hlZWxFdmVudCYgd2hlZWxFdgogICAgIFJl
ZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAKICAgICBGbG9hdFNpemUgZmlsdGVy
ZWRQbGF0Zm9ybURlbHRhKHdoZWVsRXZlbnQuZGVsdGFYKCksIHdoZWVsRXZlbnQuZGVsdGFZKCkp
OwotICAgIEZsb2F0UG9pbnQgZmlsdGVyZWRWZWxvY2l0eTsKKyAgICBGbG9hdFNpemUgZmlsdGVy
ZWRWZWxvY2l0eTsKICAgICBpZiAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50KiBwbGF0Zm9ybVdo
ZWVsRXZlbnQgPSB3aGVlbEV2ZW50LndoZWVsRXZlbnQoKSkgewogICAgICAgICBmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEuc2V0V2lkdGgocGxhdGZvcm1XaGVlbEV2ZW50LT5kZWx0YVgoKSk7CiAgICAg
ICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5zZXRIZWlnaHQocGxhdGZvcm1XaGVlbEV2ZW50LT5k
ZWx0YVkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBlNmMzMWI0MTNiNjk2Y2Y5MWRhMjcxZjUz
MGQ1OTg2M2I5MGQ1OWM2Li4wYTczOTc5ODYyNDZjNzgxYThjYTliNzEyMzVmMDI0ZmY5NDdjMWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE5OTUsOCArMTk5NSwxMSBAQCBXaGVlbEV2ZW50VGVz
dFRyaWdnZXImIFBhZ2U6OmVuc3VyZVRlc3RUcmlnZ2VyKCkKIHsKICAgICBpZiAoIW1fdGVzdFRy
aWdnZXIpIHsKICAgICAgICAgbV90ZXN0VHJpZ2dlciA9IGFkb3B0UmVmKG5ldyBXaGVlbEV2ZW50
VGVzdFRyaWdnZXIoKSk7Ci0gICAgICAgIGlmIChhdXRvKiBmcmFtZVZpZXcgPSBtYWluRnJhbWUo
KS52aWV3KCkpCi0gICAgICAgICAgICBmcmFtZVZpZXctPmxheW91dCgpOworICAgICAgICAvLyBX
ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgc2Nyb2xsaW5nIGNvb3JkaW5hdG9yIHNvIHRoYXQgdGhlIG1h
aW5mcmFtZSBzY3JvbGxpbmcgbm9kZSBjYW4gZXhwZWN0IHdoZWVsIGV2ZW50IHRlc3QgdHJpZ2dl
cnMuCisgICAgICAgIGlmIChhdXRvKiBmcmFtZVZpZXcgPSBtYWluRnJhbWUoKS52aWV3KCkpIHsK
KyAgICAgICAgICAgIGlmIChtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgICAgICAgICAgICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnVwZGF0ZUV4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdn
ZXJXaXRoRnJhbWVWaWV3KCpmcmFtZVZpZXcpOworICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0
dXJuICptX3Rlc3RUcmlnZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVl
bEV2ZW50RGVsdGFGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVs
dGFGaWx0ZXIuY3BwCmluZGV4IGM3ZDkzM2MwOTUzNDI0YjczODAyNWQ1ZjY1YmJlYTRjOGExOTY1
MmMuLmUwMzdmZTliOGZhMWU2YmZiODlhOGM2OWE2MzE1ZDAwOWY4MGM5MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAKQEAgLTYzLDcgKzYzLDcg
QEAgRmxvYXRTaXplIFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6ZmlsdGVyZWREZWx0YSgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fY3VycmVudEZpbHRlcmVkRGVsdGE7CiB9CiAKLUZsb2F0UG9pbnQgV2hl
ZWxFdmVudERlbHRhRmlsdGVyOjpmaWx0ZXJlZFZlbG9jaXR5KCkgY29uc3QKK0Zsb2F0U2l6ZSBX
aGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmZpbHRlcmVkVmVsb2NpdHkoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2hlZWxFdmVudERlbHRhRmlsdGVyLmgKaW5kZXggZjI1NjI2ZjM1MDdkMDM1ODY4ZGZiYzY2ZmQ3
ZjZiOTgzYzNjNGRkZi4uZGIwZTQ0YjQwMTIzMmI3NmY1YTkxYWJhMWE1Y2FjZmZmZGZjMDA2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oCkBAIC0yNSw3
ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2lu
Y2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCkBAIC00MCwxMyAr
MzksMTMgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB1cGRhdGVG
cm9tRGVsdGEoY29uc3QgRmxvYXRTaXplJikgPSAwOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgdm9pZCBiZWdpbkZpbHRlcmluZ0RlbHRhcygpID0gMDsKICAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIHZvaWQgZW5kRmlsdGVyaW5nRGVsdGFzKCkgPSAwOwotICAgIFdFQkNPUkVfRVhQT1JU
IEZsb2F0UG9pbnQgZmlsdGVyZWRWZWxvY2l0eSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JU
IEZsb2F0U2l6ZSBmaWx0ZXJlZFZlbG9jaXR5KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBpc0ZpbHRlcmluZ0RlbHRhcygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0
U2l6ZSBmaWx0ZXJlZERlbHRhKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICBGbG9hdFNpemUg
bV9jdXJyZW50RmlsdGVyZWREZWx0YTsKLSAgICBGbG9hdFBvaW50IG1fY3VycmVudEZpbHRlcmVk
VmVsb2NpdHk7CisgICAgRmxvYXRTaXplIG1fY3VycmVudEZpbHRlcmVkVmVsb2NpdHk7CiAgICAg
Ym9vbCBtX2lzRmlsdGVyaW5nRGVsdGFzIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5tbQppbmRleCBiZmFj
NzdmY2UwNjRjMzVmZTI2MTFkMTQ3NGY5OTk2NjI4NTI4Y2ZmLi5lYjdhMTFjNzdkOTkyZjRiZWNk
YzZkNTE4Yjk5YTBkNTJmNTE4NGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgV2hl
ZWxFdmVudERlbHRhRmlsdGVyTWFjOjp1cGRhdGVGcm9tRGVsdGEoY29uc3QgRmxvYXRTaXplJiBk
ZWx0YSkKICAgICBOU1BvaW50IGZpbHRlcmVkRGVsdGFSZXN1bHQ7CiAgICAgTlNQb2ludCBmaWx0
ZXJlZFZlbG9jaXR5UmVzdWx0OwogICAgIFttX3ByZWRvbWluYW50QXhpc0ZpbHRlciBmaWx0ZXJJ
bnB1dERlbHRhOk5TUG9pbnQoRmxvYXRQb2ludChkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQo
KSkpIHRpbWVzdGFtcDptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIG1fYmVnaW5GaWx0
ZXJpbmdEZWx0YXNUaW1lIG91dHB1dERlbHRhOiZmaWx0ZXJlZERlbHRhUmVzdWx0IHZlbG9jaXR5
OiZmaWx0ZXJlZFZlbG9jaXR5UmVzdWx0XTsKLSAgICBtX2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5
ID0gRmxvYXRQb2ludChmaWx0ZXJlZFZlbG9jaXR5UmVzdWx0KTsKKyAgICBtX2N1cnJlbnRGaWx0
ZXJlZFZlbG9jaXR5ID0gRmxvYXRTaXplKGZpbHRlcmVkVmVsb2NpdHlSZXN1bHQueCwgZmlsdGVy
ZWRWZWxvY2l0eVJlc3VsdC55KTsKICAgICBtX2N1cnJlbnRGaWx0ZXJlZERlbHRhID0gRmxvYXRT
aXplKGZpbHRlcmVkRGVsdGFSZXN1bHQueCwgZmlsdGVyZWREZWx0YVJlc3VsdC55KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCAyMmFiMGVjNzY2YTJhNmRmMzVjY2NkOGQ3MzIzNzRl
MDU3YmQwZmVkLi5mNmU1NDZiOTg3MWM5MDgwNGJiNTc4MTMwNWUxNDNjZWUyMWVjODk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMTcyLDYgKzE3MiwxOSBAQCB2b2lkIEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0xheW91dFVwZGF0ZWQoRnJhbWVWaWV3JiBmcmFtZVZp
ZXcpCiAgICAgbm9kZS0+c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKHNjcm9sbFBhcmFtZXRl
cnMpOwogfQogCit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZUV4cGVjdHNX
aGVlbEV2ZW50VGVzdFRyaWdnZXJXaXRoRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVW
aWV3KQoreworICAgIGF1dG8qIHBhZ2UgPSBmcmFtZVZpZXcuZnJhbWUoKS5wYWdlKCk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBub2RlID0gZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5z
dGF0ZU5vZGVGb3JJRChmcmFtZVZpZXcuc2Nyb2xsTGF5ZXJJRCgpKSk7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm47CisKKyAgICBub2RlLT5zZXRFeHBlY3RzV2hlZWxFdmVudFRlc3RU
cmlnZ2VyKHBhZ2UtPmV4cGVjdHNXaGVlbEV2ZW50VHJpZ2dlcnMoKSk7Cit9CisKIHZvaWQgQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFu
Z2VkKEZyYW1lVmlldyYpCiB7CiAgICAgaWYgKCFtX3Njcm9sbGluZ1N0YXRlVHJlZS0+cm9vdFN0
YXRlTm9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDFkMjJhZjZkMzEwMjY4M2QzZWJiYzYy
YTk5OWY5YWRmYTMxNTk0ZGUuLmE0MzQxN2RjZTFjNDAxMzA4NDY5MjM4M2ExMmE4Y2YxYWI5ZDIw
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTY0LDYgKzY0LDggQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlU2Nyb2xsU25hcFByb3BlcnRpZXNXaXRoRnJhbWVWaWV3
KGNvbnN0IEZyYW1lVmlldyYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHVwZGF0ZUV4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXJXaXRoRnJhbWVWaWV3KGNv
bnN0IEZyYW1lVmlldyYpIG92ZXJyaWRlOworCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBP
UlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDM1Y2Nk
NjU2ZmFmMzc3MGZhZjQ1MjExZmE2MWU2MGEwMzA5YzQyZGIuLjdhNmFmMjFmMDY4ZThhODEwOTQ1
MDlhYWRhZjRkZWMzY2JjNDFiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMjA2LDYgKzIwNiw3IEBAIHB1Ymxp
YzoKICAgICBTdHJpbmcgc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCkgY29uc3Q7
CiAKICAgICBFdmVudFRyYWNraW5nUmVnaW9ucyBhYnNvbHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25z
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUV4cGVjdHNXaGVlbEV2ZW50VGVzdFRy
aWdnZXJXaXRoRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIHsgfQogCiBwcm90ZWN0ZWQ6CiAg
ICAgZXhwbGljaXQgU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ01vbWVudHVtQ2FsY3Vs
YXRvci5jcHAKaW5kZXggMzFkMDNlZjZlMGE2MThlYTQ4NTIyMTU2YzhkZDcwZWZlOTM1MTVkMi4u
OGM2OWFmMmY2ZGJkMjFiODdmNjg4NGFkM2NmYTllZWZkYzI3Y2JjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1bUNh
bGN1bGF0b3IuY3BwCkBAIC0yOCwxMyArMjgsMTIgQEAKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQu
aCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3QgZG91YmxlIHNjcm9sbFNuYXBB
bmltYXRpb25EdXJhdGlvbiA9IDE7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBzY3JvbGxTbmFwQW5p
bWF0aW9uRHVyYXRpb24gPSAxX3M7CiAKLVNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6U2Ny
b2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yKGNvbnN0IEZsb2F0U2l6ZSYgdmlld3BvcnRTaXplLCBj
b25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zm
c2V0LCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRPZmZzZXQsIGNvbnN0IEZsb2F0U2l6ZSYgaW5p
dGlhbERlbHRhLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsVmVsb2NpdHkpCitTY3JvbGxpbmdN
b21lbnR1bUNhbGN1bGF0b3I6OlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcihjb25zdCBGbG9h
dFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50U2l6ZSwgY29uc3Qg
RmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0
LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFs
VmVsb2NpdHkpCiAgICAgOiBtX2luaXRpYWxEZWx0YShpbml0aWFsRGVsdGEpCiAgICAgLCBtX2lu
aXRpYWxWZWxvY2l0eShpbml0aWFsVmVsb2NpdHkpCiAgICAgLCBtX2luaXRpYWxTY3JvbGxPZmZz
ZXQoaW5pdGlhbE9mZnNldC54KCksIGluaXRpYWxPZmZzZXQueSgpKQpAQCAtNDYsMTQgKzQ1LDE0
IEBAIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yKGNvbnN0IEZsb2F0U2l6ZSYgdmlld3BvCiAKICNpZiAhSEFWRShOU1NDUk9MTElOR19GSUxU
RVJTKQogCi1zdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yPiBTY3Jv
bGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0
U2l6ZSwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50U2l6ZSwgY29uc3QgRmxvYXRQb2ludCYgaW5p
dGlhbE9mZnNldCwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBjb25zdCBGbG9hdFNp
emUmIGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbFZlbG9jaXR5KQorc3Rk
Ojp1bmlxdWVfcHRyPFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcj4gU2Nyb2xsaW5nTW9tZW50
dW1DYWxjdWxhdG9yOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0
IEZsb2F0U2l6ZSYgY29udGVudFNpemUsIGNvbnN0IEZsb2F0UG9pbnQmIGluaXRpYWxPZmZzZXQs
IGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldE9mZnNldCwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFs
RGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZlbG9jaXR5KQogewogICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPEJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yPih2aWV3cG9y
dFNpemUsIGNvbnRlbnRTaXplLCBpbml0aWFsT2Zmc2V0LCB0YXJnZXRPZmZzZXQsIGluaXRpYWxE
ZWx0YSwgaW5pdGlhbFZlbG9jaXR5KTsKIH0KIAogI2VuZGlmCiAKLUJhc2ljU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yOjpCYXNpY1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcihjb25zdCBG
bG9hdFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50U2l6ZSwgY29u
c3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zm
c2V0LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRQb2ludCYgaW5p
dGlhbFZlbG9jaXR5KQorQmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OkJhc2ljU2Ny
b2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yKGNvbnN0IEZsb2F0U2l6ZSYgdmlld3BvcnRTaXplLCBj
b25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zm
c2V0LCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRPZmZzZXQsIGNvbnN0IEZsb2F0U2l6ZSYgaW5p
dGlhbERlbHRhLCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxWZWxvY2l0eSkKICAgICA6IFNjcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvcih2aWV3cG9ydFNpemUsIGNvbnRlbnRTaXplLCBpbml0aWFs
T2Zmc2V0LCB0YXJnZXRPZmZzZXQsIGluaXRpYWxEZWx0YSwgaW5pdGlhbFZlbG9jaXR5KQogewog
fQpAQCAtNzMsNyArNzIsNyBAQCBGbG9hdFNpemUgQmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1
bGF0b3I6OmN1YmljYWxseUludGVycG9sYXRlZE9mZnNldEF0UHJvZ3JlcwogICAgIHJldHVybiBp
bnRlcnBvbGF0ZWRQb2ludDsKIH0KIAotRmxvYXRQb2ludCBCYXNpY1Njcm9sbGluZ01vbWVudHVt
Q2FsY3VsYXRvcjo6c2Nyb2xsT2Zmc2V0QWZ0ZXJFbGFwc2VkVGltZShkb3VibGUgc2Vjb25kcykK
K0Zsb2F0UG9pbnQgQmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OnNjcm9sbE9mZnNl
dEFmdGVyRWxhcHNlZFRpbWUoU2Vjb25kcyBlbGFwc2VkVGltZSkKIHsKICAgICBpZiAobV9tb21l
bnR1bUNhbGN1bGF0b3JSZXF1aXJlc0luaXRpYWxpemF0aW9uKSB7CiAgICAgICAgIGluaXRpYWxp
emVTbmFwUHJvZ3Jlc3NDdXJ2ZSgpOwpAQCAtODEsMTIgKzgwLDEyIEBAIEZsb2F0UG9pbnQgQmFz
aWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OnNjcm9sbE9mZnNldEFmdGVyRWxhcHNlZFRp
bWUoZG91YmxlCiAgICAgICAgIG1fbW9tZW50dW1DYWxjdWxhdG9yUmVxdWlyZXNJbml0aWFsaXph
dGlvbiA9IGZhbHNlOwogICAgIH0KIAotICAgIGZsb2F0IHByb2dyZXNzID0gYW5pbWF0aW9uUHJv
Z3Jlc3NBZnRlckVsYXBzZWRUaW1lKHNlY29uZHMpOworICAgIGZsb2F0IHByb2dyZXNzID0gYW5p
bWF0aW9uUHJvZ3Jlc3NBZnRlckVsYXBzZWRUaW1lKGVsYXBzZWRUaW1lKTsKICAgICBhdXRvIG9m
ZnNldEFzU2l6ZSA9IG1fZm9yY2VMaW5lYXJBbmltYXRpb25DdXJ2ZSA/IGxpbmVhcmx5SW50ZXJw
b2xhdGVkT2Zmc2V0QXRQcm9ncmVzcyhwcm9ncmVzcykgOiBjdWJpY2FsbHlJbnRlcnBvbGF0ZWRP
ZmZzZXRBdFByb2dyZXNzKHByb2dyZXNzKTsKICAgICByZXR1cm4gRmxvYXRQb2ludChvZmZzZXRB
c1NpemUud2lkdGgoKSwgb2Zmc2V0QXNTaXplLmhlaWdodCgpKTsKIH0KIAotZG91YmxlIEJhc2lj
U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjphbmltYXRpb25EdXJhdGlvbigpCitTZWNvbmRz
IEJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjphbmltYXRpb25EdXJhdGlvbigpCiB7
CiAgICAgcmV0dXJuIHNjcm9sbFNuYXBBbmltYXRpb25EdXJhdGlvbjsKIH0KQEAgLTE5MSw3ICsx
OTAsNyBAQCB2b2lkIEJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjppbml0aWFsaXpl
U25hcFByb2dyZXNzQ3VydmUoKQogICAgIG1fc25hcEFuaW1hdGlvbkN1cnZlTWFnbml0dWRlID0g
aW5pdGlhbFNjcm9sbFNuYXBDdXJ2ZU1hZ25pdHVkZTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8
IG1heE51bVNjcm9sbFNuYXBQYXJhbWV0ZXJFc3RpbWF0aW9uSXRlcmF0aW9uczsgKytpKSB7CiAg
ICAgICAgIG1fc25hcEFuaW1hdGlvbkRlY2F5RmFjdG9yID0gbV9zbmFwQW5pbWF0aW9uQ3VydmVN
YWduaXR1ZGUgLyAobV9zbmFwQW5pbWF0aW9uQ3VydmVNYWduaXR1ZGUgLSBpbml0aWFsUHJvZ3Jl
c3MpOwotICAgICAgICBtX3NuYXBBbmltYXRpb25DdXJ2ZU1hZ25pdHVkZSA9IDEuMGYgLyAoMS4w
ZiAtIHN0ZDo6cG93KG1fc25hcEFuaW1hdGlvbkRlY2F5RmFjdG9yLCAtZnJhbWVzUGVyU2Vjb25k
ICogc2Nyb2xsU25hcEFuaW1hdGlvbkR1cmF0aW9uKSk7CisgICAgICAgIG1fc25hcEFuaW1hdGlv
bkN1cnZlTWFnbml0dWRlID0gMS4wZiAvICgxLjBmIC0gc3RkOjpwb3cobV9zbmFwQW5pbWF0aW9u
RGVjYXlGYWN0b3IsIC1mcmFtZXNQZXJTZWNvbmQgKiBzY3JvbGxTbmFwQW5pbWF0aW9uRHVyYXRp
b24udmFsdWUoKSkpOwogICAgICAgICBpZiAoc3RkOjphYnMobV9zbmFwQW5pbWF0aW9uRGVjYXlG
YWN0b3IgLSBwcmV2aW91c0RlY2F5RmFjdG9yKSA8IHNjcm9sbFNuYXBEZWNheUZhY3RvckNvbnZl
cmdlbmNlVGhyZXNob2xkKQogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTE5OSwxMCArMTk4LDEw
IEBAIHZvaWQgQmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmluaXRpYWxpemVTbmFw
UHJvZ3Jlc3NDdXJ2ZSgpCiAgICAgfQogfQogCi1mbG9hdCBCYXNpY1Njcm9sbGluZ01vbWVudHVt
Q2FsY3VsYXRvcjo6YW5pbWF0aW9uUHJvZ3Jlc3NBZnRlckVsYXBzZWRUaW1lKGRvdWJsZSBzZWNv
bmRzKSBjb25zdAorZmxvYXQgQmFzaWNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmFuaW1h
dGlvblByb2dyZXNzQWZ0ZXJFbGFwc2VkVGltZShTZWNvbmRzIGVsYXBzZWRUaW1lKSBjb25zdAog
ewotICAgIGZsb2F0IHRpbWVQcm9ncmVzcyA9IGNsYW1wVG88ZmxvYXQ+KHNlY29uZHMgLyBzY3Jv
bGxTbmFwQW5pbWF0aW9uRHVyYXRpb24sIDAsIDEpOwotICAgIHJldHVybiBzdGQ6Om1pbigxLjAs
IG1fc25hcEFuaW1hdGlvbkN1cnZlTWFnbml0dWRlICogKDEuMCAtIHN0ZDo6cG93KG1fc25hcEFu
aW1hdGlvbkRlY2F5RmFjdG9yLCAtZnJhbWVzUGVyU2Vjb25kICogc2Nyb2xsU25hcEFuaW1hdGlv
bkR1cmF0aW9uICogdGltZVByb2dyZXNzKSkpOworICAgIGZsb2F0IHRpbWVQcm9ncmVzcyA9IGNs
YW1wVG88ZmxvYXQ+KGVsYXBzZWRUaW1lIC8gc2Nyb2xsU25hcEFuaW1hdGlvbkR1cmF0aW9uLCAw
LCAxKTsKKyAgICByZXR1cm4gc3RkOjptaW4oMS4wLCBtX3NuYXBBbmltYXRpb25DdXJ2ZU1hZ25p
dHVkZSAqICgxLjAgLSBzdGQ6OnBvdyhtX3NuYXBBbmltYXRpb25EZWNheUZhY3RvciwgLWZyYW1l
c1BlclNlY29uZCAqIHNjcm9sbFNuYXBBbmltYXRpb25EdXJhdGlvbi52YWx1ZSgpICogdGltZVBy
b2dyZXNzKSkpOwogfQogCiB9OyAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0
b3IuaAppbmRleCA4NmJkNzdiN2M5Y2VlNjVlMzk4NjNhMDg1Mzg2NDg0MmExNDA4MWQwLi5jZWQw
ZjJhMWY3NThkMThhZTk2ZWRmYjdmNjBmZTUwMmIwMTZlZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0
b3IuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkF4aXNTY3JvbGxTbmFwT2Zmc2V0cy5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0zOCwxNiArMzksMTYgQEAgY2xhc3MgRmxvYXRTaXplOwogCiBjbGFzcyBTY3JvbGxpbmdNb21l
bnR1bUNhbGN1bGF0b3IgewogcHVibGljOgotICAgIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRv
cihjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50
U2l6ZSwgY29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRQb2ludCYg
dGFyZ2V0T2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRQ
b2ludCYgaW5pdGlhbFZlbG9jaXR5KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNjcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld3BvcnRT
aXplLCBjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiBpbml0
aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRPZmZzZXQsIGNvbnN0IEZsb2F0U2l6
ZSYgaW5pdGlhbERlbHRhLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsVmVsb2NpdHkpOworICAg
IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcihjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0U2l6
ZSwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50U2l6ZSwgY29uc3QgRmxvYXRQb2ludCYgaW5pdGlh
bE9mZnNldCwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBjb25zdCBGbG9hdFNpemUm
IGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmVsb2NpdHkpOworICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yPiBjcmVhdGUo
Y29uc3QgRmxvYXRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGVudFNp
emUsIGNvbnN0IEZsb2F0UG9pbnQmIGluaXRpYWxPZmZzZXQsIGNvbnN0IEZsb2F0UG9pbnQmIHRh
cmdldE9mZnNldCwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsRGVsdGEsIGNvbnN0IEZsb2F0U2l6
ZSYgaW5pdGlhbFZlbG9jaXR5KTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdNb21lbnR1bUNhbGN1
bGF0b3IoKSB7IH0KIAotICAgIHZpcnR1YWwgRmxvYXRQb2ludCBzY3JvbGxPZmZzZXRBZnRlckVs
YXBzZWRUaW1lKGRvdWJsZSB0aW1lKSA9IDA7Ci0gICAgdmlydHVhbCBkb3VibGUgYW5pbWF0aW9u
RHVyYXRpb24oKSA9IDA7CisgICAgdmlydHVhbCBGbG9hdFBvaW50IHNjcm9sbE9mZnNldEFmdGVy
RWxhcHNlZFRpbWUoU2Vjb25kcykgPSAwOworICAgIHZpcnR1YWwgU2Vjb25kcyBhbmltYXRpb25E
dXJhdGlvbigpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIEZsb2F0U2l6ZSBtX2luaXRpYWxEZWx0
YTsKLSAgICBGbG9hdFBvaW50IG1faW5pdGlhbFZlbG9jaXR5OworICAgIEZsb2F0U2l6ZSBtX2lu
aXRpYWxWZWxvY2l0eTsKICAgICBGbG9hdFNpemUgbV9pbml0aWFsU2Nyb2xsT2Zmc2V0OwogICAg
IEZsb2F0U2l6ZSBtX3RhcmdldFNjcm9sbE9mZnNldDsKICAgICBGbG9hdFNpemUgbV92aWV3cG9y
dFNpemU7CkBAIC01NiwxNCArNTcsMTQgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBCYXNpY1Njcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvciBmaW5hbCA6IHB1YmxpYyBTY3JvbGxpbmdNb21lbnR1bUNh
bGN1bGF0b3IgewogcHVibGljOgotICAgIEJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9y
KGNvbnN0IEZsb2F0U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRT
aXplLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFBvaW50JiB0
YXJnZXRPZmZzZXQsIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbERlbHRhLCBjb25zdCBGbG9hdFBv
aW50JiBpbml0aWFsVmVsb2NpdHkpOworICAgIEJhc2ljU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yKGNvbnN0IEZsb2F0U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBGbG9hdFNpemUmIGNvbnRl
bnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFBvaW50
JiB0YXJnZXRPZmZzZXQsIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbERlbHRhLCBjb25zdCBGbG9h
dFNpemUmIGluaXRpYWxWZWxvY2l0eSk7CiAKIHByaXZhdGU6Ci0gICAgRmxvYXRQb2ludCBzY3Jv
bGxPZmZzZXRBZnRlckVsYXBzZWRUaW1lKGRvdWJsZSBzZWNvbmRzKSBmaW5hbDsKLSAgICBkb3Vi
bGUgYW5pbWF0aW9uRHVyYXRpb24oKSBmaW5hbDsKKyAgICBGbG9hdFBvaW50IHNjcm9sbE9mZnNl
dEFmdGVyRWxhcHNlZFRpbWUoU2Vjb25kcykgZmluYWw7CisgICAgU2Vjb25kcyBhbmltYXRpb25E
dXJhdGlvbigpIGZpbmFsOwogICAgIHZvaWQgaW5pdGlhbGl6ZUludGVycG9sYXRpb25Db2VmZmlj
aWVudHNJZk5lY2Vzc2FyeSgpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNuYXBQcm9ncmVzc0N1cnZl
KCk7Ci0gICAgZmxvYXQgYW5pbWF0aW9uUHJvZ3Jlc3NBZnRlckVsYXBzZWRUaW1lKGRvdWJsZSB0
aW1lKSBjb25zdDsKKyAgICBmbG9hdCBhbmltYXRpb25Qcm9ncmVzc0FmdGVyRWxhcHNlZFRpbWUo
U2Vjb25kcykgY29uc3Q7CiAgICAgRmxvYXRTaXplIGxpbmVhcmx5SW50ZXJwb2xhdGVkT2Zmc2V0
QXRQcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykgY29uc3Q7CiAgICAgRmxvYXRTaXplIGN1YmljYWxs
eUludGVycG9sYXRlZE9mZnNldEF0UHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmgKaW5kZXggYWY4ZTkxODNkNWRiODE0ODIy
YTM0YjBlMjg2NWJjOTVjNjQxNzQ5YS4uYjZjYzRiZmZmNmY1MmJlMTNlMDZjMGE5YWQxYzQzYzZh
MGZlMmEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMuaApAQCAtMzYsMTEg
KzM2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yTWFjIGZpbmFsIDogcHVibGljIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvciB7
CiBwdWJsaWM6Ci0gICAgU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjKGNvbnN0IEZsb2F0
U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBG
bG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRPZmZzZXQs
IGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbERlbHRhLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFs
VmVsb2NpdHkpOworICAgIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYyhjb25zdCBGbG9h
dFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50U2l6ZSwgY29uc3Qg
RmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0
LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFs
VmVsb2NpdHkpOwogCiBwcml2YXRlOgotICAgIEZsb2F0UG9pbnQgc2Nyb2xsT2Zmc2V0QWZ0ZXJF
bGFwc2VkVGltZShkb3VibGUgdGltZSkgZmluYWw7Ci0gICAgZG91YmxlIGFuaW1hdGlvbkR1cmF0
aW9uKCkgZmluYWw7CisgICAgRmxvYXRQb2ludCBzY3JvbGxPZmZzZXRBZnRlckVsYXBzZWRUaW1l
KFNlY29uZHMpIGZpbmFsOworICAgIFNlY29uZHMgYW5pbWF0aW9uRHVyYXRpb24oKSBmaW5hbDsK
ICAgICBfTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IgKmVuc3VyZVBsYXRmb3JtTW9tZW50
dW1DYWxjdWxhdG9yKCk7CiAKICAgICBSZXRhaW5QdHI8X05TU2Nyb2xsaW5nTW9tZW50dW1DYWxj
dWxhdG9yPiBtX3BsYXRmb3JtTW9tZW50dW1DYWxjdWxhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdNb21lbnR1
bUNhbGN1bGF0b3JNYWMubW0KaW5kZXggYmMxZGVlMzg0OTRkMmZkYmE2ZWI2ZGJjYjQ4MmU1MTdk
ZTFmYWE4OC4uMTlhZTFjOTEwMGQ1NDRlNzMwYzFiOWVlYzNmYzFhZjdkY2FhOTg5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ01vbWVudHVt
Q2FsY3VsYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLm1tCkBAIC0zMiwyNCArMzIsMjQgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yPiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OmNyZWF0ZShjb25zdCBGbG9h
dFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50U2l6ZSwgY29uc3Qg
RmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0
LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRQb2ludCYgaW5pdGlh
bFZlbG9jaXR5KQorc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcj4g
U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiB2aWV3
cG9ydFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGVudFNpemUsIGNvbnN0IEZsb2F0UG9pbnQm
IGluaXRpYWxPZmZzZXQsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldE9mZnNldCwgY29uc3QgRmxv
YXRTaXplJiBpbml0aWFsRGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZlbG9jaXR5KQog
ewogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRv
ck1hYz4odmlld3BvcnRTaXplLCBjb250ZW50U2l6ZSwgaW5pdGlhbE9mZnNldCwgdGFyZ2V0T2Zm
c2V0LCBpbml0aWFsRGVsdGEsIGluaXRpYWxWZWxvY2l0eSk7CiB9CiAKLVNjcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvck1hYzo6U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjKGNvbnN0IEZs
b2F0U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25z
dCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRPZmZz
ZXQsIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbERlbHRhLCBjb25zdCBGbG9hdFBvaW50JiBpbml0
aWFsVmVsb2NpdHkpCitTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWM6OlNjcm9sbGluZ01v
bWVudHVtQ2FsY3VsYXRvck1hYyhjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3Qg
RmxvYXRTaXplJiBjb250ZW50U2l6ZSwgY29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwg
Y29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxE
ZWx0YSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmVsb2NpdHkpCiAgICAgOiBTY3JvbGxpbmdN
b21lbnR1bUNhbGN1bGF0b3Iodmlld3BvcnRTaXplLCBjb250ZW50U2l6ZSwgaW5pdGlhbE9mZnNl
dCwgdGFyZ2V0T2Zmc2V0LCBpbml0aWFsRGVsdGEsIGluaXRpYWxWZWxvY2l0eSkKIHsKIH0KIAot
RmxvYXRQb2ludCBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWM6OnNjcm9sbE9mZnNldEFm
dGVyRWxhcHNlZFRpbWUoZG91YmxlIHRpbWUpCitGbG9hdFBvaW50IFNjcm9sbGluZ01vbWVudHVt
Q2FsY3VsYXRvck1hYzo6c2Nyb2xsT2Zmc2V0QWZ0ZXJFbGFwc2VkVGltZShTZWNvbmRzIGVsYXBz
ZWRUaW1lKQogewotICAgIHJldHVybiBbZW5zdXJlUGxhdGZvcm1Nb21lbnR1bUNhbGN1bGF0b3Io
KSBwb3NpdGlvbkFmdGVyRHVyYXRpb246dGltZV07CisgICAgcmV0dXJuIFtlbnN1cmVQbGF0Zm9y
bU1vbWVudHVtQ2FsY3VsYXRvcigpIHBvc2l0aW9uQWZ0ZXJEdXJhdGlvbjplbGFwc2VkVGltZS52
YWx1ZSgpXTsKIH0KIAotZG91YmxlIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYzo6YW5p
bWF0aW9uRHVyYXRpb24oKQorU2Vjb25kcyBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWM6
OmFuaW1hdGlvbkR1cmF0aW9uKCkKIHsKLSAgICByZXR1cm4gW2Vuc3VyZVBsYXRmb3JtTW9tZW50
dW1DYWxjdWxhdG9yKCkgZHVyYXRpb25VbnRpbFN0b3BdOworICAgIHJldHVybiBTZWNvbmRzKFtl
bnN1cmVQbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRvcigpIGR1cmF0aW9uVW50aWxTdG9wXSk7CiB9
CiAKIF9OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvciAqU2Nyb2xsaW5nTW9tZW50dW1DYWxj
dWxhdG9yTWFjOjplbnN1cmVQbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRvcigpCkBAIC01OSw3ICs1
OSw4IEBAIF9OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvciAqU2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yTWFjOjplbnN1cmVQbGF0Zm9ybU1vCiAKICAgICBOU1BvaW50IG9yaWdpbiA9IE5T
TWFrZVBvaW50KG1faW5pdGlhbFNjcm9sbE9mZnNldC53aWR0aCgpLCBtX2luaXRpYWxTY3JvbGxP
ZmZzZXQuaGVpZ2h0KCkpOwogICAgIE5TUmVjdCBjb250ZW50RnJhbWUgPSBOU01ha2VSZWN0KDAs
IDAsIG1fY29udGVudFNpemUud2lkdGgoKSwgbV9jb250ZW50U2l6ZS5oZWlnaHQoKSk7Ci0gICAg
bV9wbGF0Zm9ybU1vbWVudHVtQ2FsY3VsYXRvciA9IGFkb3B0TlMoW1tfTlNTY3JvbGxpbmdNb21l
bnR1bUNhbGN1bGF0b3IgYWxsb2NdIGluaXRXaXRoSW5pdGlhbE9yaWdpbjpvcmlnaW4gdmVsb2Np
dHk6bV9pbml0aWFsVmVsb2NpdHkgZG9jdW1lbnRGcmFtZTpjb250ZW50RnJhbWUgY29uc3RyYWlu
ZWRDbGlwcGluZ09yaWdpbjpOU1plcm9Qb2ludCBjbGlwcGluZ1NpemU6bV92aWV3cG9ydFNpemUg
dG9sZXJhbmNlOk5TTWFrZVNpemUoMSwgMSldKTsKKyAgICBOU1BvaW50IHZlbG9jaXR5ID0gTlNN
YWtlUG9pbnQobV9pbml0aWFsVmVsb2NpdHkud2lkdGgoKSwgbV9pbml0aWFsVmVsb2NpdHkuaGVp
Z2h0KCkpOworICAgIG1fcGxhdGZvcm1Nb21lbnR1bUNhbGN1bGF0b3IgPSBhZG9wdE5TKFtbX05T
U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yIGFsbG9jXSBpbml0V2l0aEluaXRpYWxPcmlnaW46
b3JpZ2luIHZlbG9jaXR5OnZlbG9jaXR5IGRvY3VtZW50RnJhbWU6Y29udGVudEZyYW1lIGNvbnN0
cmFpbmVkQ2xpcHBpbmdPcmlnaW46TlNaZXJvUG9pbnQgY2xpcHBpbmdTaXplOm1fdmlld3BvcnRT
aXplIHRvbGVyYW5jZTpOU01ha2VTaXplKDEsIDEpXSk7CiAgICAgW21fcGxhdGZvcm1Nb21lbnR1
bUNhbGN1bGF0b3Igc2V0RGVzdGluYXRpb25PcmlnaW46TlNNYWtlUG9pbnQobV90YXJnZXRTY3Jv
bGxPZmZzZXQud2lkdGgoKSwgbV90YXJnZXRTY3JvbGxPZmZzZXQuaGVpZ2h0KCkpXTsKICNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIFttX3BsYXRmb3Jt
TW9tZW50dW1DYWxjdWxhdG9yIGNhbGN1bGF0ZVRvUmVhY2hEZXN0aW5hdGlvbl07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IGY4OTMzYjg3NjI0
YzJkMmMyNzZiM2ZlODYyODljYmE2ZTRkZjQyZjIuLjY4NTI2NTdlYTU2ZTlhYjJmNzE3YWJkMTAx
NGNlZDc5YjEwOGExYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hl
ZWxFdmVudC5oCkBAIC0xMjAsNyArMTIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAgICAgcmV0dXJuIGNvcHk7CiAgICAgICAgIH0KIAotICAgICAgICBQbGF0Zm9ybVdoZWVsRXZl
bnQgY29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwg
RmxvYXRQb2ludCB2ZWxvY2l0eSkgY29uc3QKKyAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50IGNv
cHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGNvbnN0
IEZsb2F0U2l6ZSYgdmVsb2NpdHkpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIFBsYXRm
b3JtV2hlZWxFdmVudCBjb3B5ID0gKnRoaXM7CiAgICAgICAgICAgICBjb3B5Lm1fZGVsdGFYID0g
ZGVsdGFYOwpAQCAtMTY4LDcgKzE2OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Ym9vbCB1c2VMYXRjaGVkRXZlbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNl
bmRpZgogCi0gICAgICAgIEZsb2F0UG9pbnQgc2Nyb2xsaW5nVmVsb2NpdHkoKSBjb25zdCB7IHJl
dHVybiBtX3Njcm9sbGluZ1ZlbG9jaXR5OyB9CisgICAgICAgIEZsb2F0U2l6ZSBzY3JvbGxpbmdW
ZWxvY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nVmVsb2NpdHk7IH0KIAogI2lmIFBM
QVRGT1JNKFdJTikKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50KEhXTkQsIFdQQVJBTSwgTFBB
UkFNLCBib29sIGlzTW91c2VIV2hlZWwpOwpAQCAtMTg0LDcgKzE4NCw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgZmxvYXQgbV93aGVlbFRpY2tzWTsKICAgICAgICAgUGxhdGZvcm1X
aGVlbEV2ZW50R3JhbnVsYXJpdHkgbV9ncmFudWxhcml0eTsKICAgICAgICAgYm9vbCBtX2RpcmVj
dGlvbkludmVydGVkRnJvbURldmljZTsKLSAgICAgICAgRmxvYXRQb2ludCBtX3Njcm9sbGluZ1Zl
bG9jaXR5OworCisgICAgICAgIC8vIFNjcm9sbGluZyB2ZWxvY2l0eSBpbiBwaXhlbHMgcGVyIHNl
Y29uZC4KKyAgICAgICAgRmxvYXRTaXplIG1fc2Nyb2xsaW5nVmVsb2NpdHk7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgICAgIGJvb2wgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOwogICAg
ICAgICBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBtX3BoYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCmluZGV4IDI1NDI4YmY1YThhNGVi
OTI3ZTIxNzk0MDIwOTkwMDhkYWExYmYwNjMuLmIxYzdhMGMxYzA0ZDg2MmExMjg3NTk1YTI0NmMy
OGVjMjNlMjJkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Nj
cm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShD
U1NfU0NST0xMX1NOQVApCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbFNuYXBBbmltYXRvclN0
YXRlPiBtX3Njcm9sbFNuYXBTdGF0ZTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgRmxvYXRQb2lu
dCBtX2RyYWdFbmRlZFNjcm9sbGluZ1ZlbG9jaXR5OworICAgIEZsb2F0U2l6ZSBtX2RyYWdFbmRl
ZFNjcm9sbGluZ1ZlbG9jaXR5OwogICAgIFJ1bkxvb3A6OlRpbWVyPFNjcm9sbENvbnRyb2xsZXI+
IG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lcjsKICAgICBSdW5Mb29wOjpUaW1lcjxTY3Jv
bGxDb250cm9sbGVyPiBtX3Njcm9sbFNuYXBUaW1lcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggOWI5M2QxMzlj
ZjQzZTY2N2M5MmU4MTI3MjAwM2QyMWJlYjhhNDdmNi4uM2UxOGQ0YmYwM2JmNWU3Zjg0MTFjYWNk
OTMxODc1ZjViMjE3Njc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC01MTQsOCArNTE0LDggQEAgdm9pZCBTY3JvbGxDb250
cm9sbGVyOjpzY2hlZHVsZVN0YXRlbGVzc1Njcm9sbFNuYXAoKQogICAgIGlmICghbV9zY3JvbGxT
bmFwU3RhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgc3Rh
dGVsZXNzU2Nyb2xsU25hcERlbGF5ID0gMC43NTsKLSAgICBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0
aW9uVGltZXIuc3RhcnRPbmVTaG90KHN0YXRlbGVzc1Njcm9sbFNuYXBEZWxheSk7CisgICAgc3Rh
dGljIGNvbnN0IFNlY29uZHMgc3RhdGVsZXNzU2Nyb2xsU25hcERlbGF5ID0gNzUwX21zOworICAg
IG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lci5zdGFydE9uZVNob3Qoc3RhdGVsZXNzU2Ny
b2xsU25hcERlbGF5LnZhbHVlKCkpOwogICAgIHN0YXJ0RGVmZXJyaW5nVGVzdHNEdWVUb1Njcm9s
bFNuYXBwaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oCmluZGV4IDAwNWJlMzk5OWM1NGQ2NDcyYzY2
ZTJiZDJlNDIwM2ViMzFlZDM2OWYuLjhmMjZlNzJkMjViNGRjODg4MWZlMDA2NmRmZjZjNDVhODlj
M2Y3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbFNu
YXBBbmltYXRvclN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Ny
b2xsU25hcEFuaW1hdG9yU3RhdGUuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2Ny
b2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgiCisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03OSwxNCArODAsMTQgQEAgcHVibGljOgog
CiAgICAgLy8gU3RhdGUgdHJhbnNpdGlvbiBoZWxwZXJzLgogICAgIHZvaWQgdHJhbnNpdGlvblRv
U25hcEFuaW1hdGlvblN0YXRlKGNvbnN0IEZsb2F0U2l6ZSYgY29udGVudFNpemUsIGNvbnN0IEZs
b2F0U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBwYWdlU2NhbGUsIGNvbnN0IEZsb2F0UG9pbnQm
IGluaXRpYWxPZmZzZXQpOwotICAgIHZvaWQgdHJhbnNpdGlvblRvR2xpZGVBbmltYXRpb25TdGF0
ZShjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0
U2l6ZSwgZmxvYXQgcGFnZVNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBj
b25zdCBGbG9hdFBvaW50JiBpbml0aWFsVmVsb2NpdHksIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlh
bERlbHRhKTsKKyAgICB2b2lkIHRyYW5zaXRpb25Ub0dsaWRlQW5pbWF0aW9uU3RhdGUoY29uc3Qg
RmxvYXRTaXplJiBjb250ZW50U2l6ZSwgY29uc3QgRmxvYXRTaXplJiB2aWV3cG9ydFNpemUsIGZs
b2F0IHBhZ2VTY2FsZSwgY29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxv
YXRTaXplJiBpbml0aWFsVmVsb2NpdHksIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbERlbHRhKTsK
ICAgICB2b2lkIHRyYW5zaXRpb25Ub1VzZXJJbnRlcmFjdGlvblN0YXRlKCk7CiAgICAgdm9pZCB0
cmFuc2l0aW9uVG9EZXN0aW5hdGlvblJlYWNoZWRTdGF0ZSgpOwogCiBwcml2YXRlOgogICAgIGZs
b2F0IHRhcmdldE9mZnNldEZvclN0YXJ0T2Zmc2V0KFNjcm9sbEV2ZW50QXhpcywgZmxvYXQgbWF4
U2Nyb2xsT2Zmc2V0LCBmbG9hdCBzdGFydE9mZnNldCwgZmxvYXQgcGFnZVNjYWxlLCBmbG9hdCBk
ZWx0YSwgdW5zaWduZWQmIG91dEFjdGl2ZVNuYXBJbmRleCkgY29uc3Q7CiAgICAgdm9pZCB0ZWFy
ZG93bkFuaW1hdGlvbkZvclN0YXRlKFNjcm9sbFNuYXBTdGF0ZSk7Ci0gICAgdm9pZCBzZXR1cEFu
aW1hdGlvbkZvclN0YXRlKFNjcm9sbFNuYXBTdGF0ZSwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50
U2l6ZSwgY29uc3QgRmxvYXRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHBhZ2VTY2FsZSwgY29u
c3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbFZl
bG9jaXR5LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSk7CisgICAgdm9pZCBzZXR1cEFu
aW1hdGlvbkZvclN0YXRlKFNjcm9sbFNuYXBTdGF0ZSwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50
U2l6ZSwgY29uc3QgRmxvYXRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHBhZ2VTY2FsZSwgY29u
c3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmVs
b2NpdHksIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbERlbHRhKTsKIAogICAgIFNjcm9sbFNuYXBT
dGF0ZSBtX2N1cnJlbnRTdGF0ZSB7IFNjcm9sbFNuYXBTdGF0ZTo6VXNlckludGVyYWN0aW9uIH07
CiAKQEAgLTk1LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8TGF5b3V0VW5pdD4gbV9z
bmFwT2Zmc2V0c1k7CiAgICAgdW5zaWduZWQgbV9hY3RpdmVTbmFwSW5kZXhZIHsgMCB9OwogCi0g
ICAgZG91YmxlIG1fc3RhcnRUaW1lIHsgMCB9OworICAgIE1vbm90b25pY1RpbWUgbV9zdGFydFRp
bWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcj4gbV9t
b21lbnR1bUNhbGN1bGF0b3I7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tCmluZGV4IGQ2NjFkZTYyYWFk
MmIwOWMyOGY4NDJiNTc2ZDQxYjZlNmUxZjQzNDAuLjdlMjAxODE2NzVmMDYxOTRlMGI5MzEwYWFj
ODU1NzkyMjAwYWM2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tCkBAIC0yNSw3ICsyNSw2IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIgot
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpAQCAtNDMsMTIgKzQyLDEyIEBAIHZvaWQg
U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnRyYW5zaXRpb25Ub1NuYXBBbmltYXRpb25TdGF0ZShj
b25zdCBGbG9hdFNpemUmIGNvCiAgICAgc2V0dXBBbmltYXRpb25Gb3JTdGF0ZShTY3JvbGxTbmFw
U3RhdGU6OlNuYXBwaW5nLCBjb250ZW50U2l6ZSwgdmlld3BvcnRTaXplLCBwYWdlU2NhbGUsIGlu
aXRpYWxPZmZzZXQsIHsgfSwgeyB9KTsKIH0KIAotdm9pZCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZTo6dHJhbnNpdGlvblRvR2xpZGVBbmltYXRpb25TdGF0ZShjb25zdCBGbG9hdFNpemUmIGNvbnRl
bnRTaXplLCBjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgcGFnZVNjYWxlLCBj
b25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFs
VmVsb2NpdHksIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbERlbHRhKQordm9pZCBTY3JvbGxTbmFw
QW5pbWF0b3JTdGF0ZTo6dHJhbnNpdGlvblRvR2xpZGVBbmltYXRpb25TdGF0ZShjb25zdCBGbG9h
dFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQg
cGFnZVNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFNp
emUmIGluaXRpYWxWZWxvY2l0eSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsRGVsdGEpCiB7CiAg
ICAgc2V0dXBBbmltYXRpb25Gb3JTdGF0ZShTY3JvbGxTbmFwU3RhdGU6OkdsaWRpbmcsIGNvbnRl
bnRTaXplLCB2aWV3cG9ydFNpemUsIHBhZ2VTY2FsZSwgaW5pdGlhbE9mZnNldCwgaW5pdGlhbFZl
bG9jaXR5LCBpbml0aWFsRGVsdGEpOwogfQogCi12b2lkIFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
OjpzZXR1cEFuaW1hdGlvbkZvclN0YXRlKFNjcm9sbFNuYXBTdGF0ZSBzdGF0ZSwgY29uc3QgRmxv
YXRTaXplJiBjb250ZW50U2l6ZSwgY29uc3QgRmxvYXRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0
IHBhZ2VTY2FsZSwgY29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRQ
b2ludCYgaW5pdGlhbFZlbG9jaXR5LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSkKK3Zv
aWQgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnNldHVwQW5pbWF0aW9uRm9yU3RhdGUoU2Nyb2xs
U25hcFN0YXRlIHN0YXRlLCBjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBGbG9h
dFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgcGFnZVNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiBp
bml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxWZWxvY2l0eSwgY29uc3QgRmxv
YXRTaXplJiBpbml0aWFsRGVsdGEpCiB7CiAgICAgQVNTRVJUKHN0YXRlID09IFNjcm9sbFNuYXBT
dGF0ZTo6U25hcHBpbmcgfHwgc3RhdGUgPT0gU2Nyb2xsU25hcFN0YXRlOjpHbGlkaW5nKTsKICAg
ICBpZiAobV9jdXJyZW50U3RhdGUgPT0gc3RhdGUpCkBAIC01Nyw3ICs1Niw3IEBAIHZvaWQgU2Ny
b2xsU25hcEFuaW1hdG9yU3RhdGU6OnNldHVwQW5pbWF0aW9uRm9yU3RhdGUoU2Nyb2xsU25hcFN0
YXRlIHN0YXRlLCBjb25zCiAgICAgZmxvYXQgdGFyZ2V0T2Zmc2V0WCA9IHRhcmdldE9mZnNldEZv
clN0YXJ0T2Zmc2V0KFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgY29udGVudFNpemUud2lk
dGgoKSAtIHZpZXdwb3J0U2l6ZS53aWR0aCgpLCBpbml0aWFsT2Zmc2V0LngoKSwgcGFnZVNjYWxl
LCBpbml0aWFsRGVsdGEud2lkdGgoKSwgbV9hY3RpdmVTbmFwSW5kZXhYKTsKICAgICBmbG9hdCB0
YXJnZXRPZmZzZXRZID0gdGFyZ2V0T2Zmc2V0Rm9yU3RhcnRPZmZzZXQoU2Nyb2xsRXZlbnRBeGlz
OjpWZXJ0aWNhbCwgY29udGVudFNpemUuaGVpZ2h0KCkgLSB2aWV3cG9ydFNpemUuaGVpZ2h0KCks
IGluaXRpYWxPZmZzZXQueSgpLCBwYWdlU2NhbGUsIGluaXRpYWxEZWx0YS5oZWlnaHQoKSwgbV9h
Y3RpdmVTbmFwSW5kZXhZKTsKICAgICBtX21vbWVudHVtQ2FsY3VsYXRvciA9IFNjcm9sbGluZ01v
bWVudHVtQ2FsY3VsYXRvcjo6Y3JlYXRlKHZpZXdwb3J0U2l6ZSwgY29udGVudFNpemUsIGluaXRp
YWxPZmZzZXQsIEZsb2F0UG9pbnQodGFyZ2V0T2Zmc2V0WCwgdGFyZ2V0T2Zmc2V0WSksIGluaXRp
YWxEZWx0YSwgaW5pdGlhbFZlbG9jaXR5KTsKLSAgICBtX3N0YXJ0VGltZSA9IG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpOworICAgIG1fc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93
KCk7CiAgICAgbV9jdXJyZW50U3RhdGUgPSBzdGF0ZTsKIH0KIApAQCAtNzgsNyArNzcsNyBAQCB2
b2lkIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjp0ZWFyZG93bkFuaW1hdGlvbkZvclN0YXRlKFNj
cm9sbFNuYXBTdGF0ZSBzdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9tb21lbnR1bUNh
bGN1bGF0b3IgPSBudWxscHRyOwotICAgIG1fc3RhcnRUaW1lID0gMDsKKyAgICBtX3N0YXJ0VGlt
ZSA9IE1vbm90b25pY1RpbWUoKTsKICAgICBtX2N1cnJlbnRTdGF0ZSA9IHN0YXRlOwogfQogCkBA
IC04OSw3ICs4OCw3IEBAIEZsb2F0UG9pbnQgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OmN1cnJl
bnRBbmltYXRlZFNjcm9sbE9mZnNldChib29sJiBpc0FuaW1hdGlvCiAgICAgICAgIHJldHVybiB7
IH07CiAgICAgfQogCi0gICAgZG91YmxlIGVsYXBzZWRUaW1lID0gbW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCkgLSBtX3N0YXJ0VGltZTsKKyAgICBTZWNvbmRzIGVsYXBzZWRUaW1lID0gTW9u
b3RvbmljVGltZTo6bm93KCkgLSBtX3N0YXJ0VGltZTsKICAgICBpc0FuaW1hdGlvbkNvbXBsZXRl
ID0gZWxhcHNlZFRpbWUgPj0gbV9tb21lbnR1bUNhbGN1bGF0b3ItPmFuaW1hdGlvbkR1cmF0aW9u
KCk7CiAgICAgcmV0dXJuIG1fbW9tZW50dW1DYWxjdWxhdG9yLT5zY3JvbGxPZmZzZXRBZnRlckVs
YXBzZWRUaW1lKGVsYXBzZWRUaW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9tYWMvTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JT
UEkuaAppbmRleCBjNjZlMGY1ZDRmZjIyMjNlYzM2NTE5NTY0ZTVjYmJmOTdmYTRjYWMyLi4xNjQ4
N2JmNTkyOTUyNzdlNjJiYTQyYmFiNGJhNjE2ZTM0M2RhMjY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL05TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9OU1Njcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvclNQSS5oCkBAIC0zMSw3ICszMSw3IEBACiAKICNlbHNlCiAKLUBpbnRlcmZh
Y2UgX05TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yIDogTlNPYmplY3Q7CitAaW50ZXJmYWNl
IF9OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvciA6IE5TT2JqZWN0CiAKIC0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aEluaXRpYWxPcmlnaW46KE5TUG9pbnQpb3JpZ2luIHZlbG9jaXR5OihOU1Bv
aW50KXZlbG9jaXR5IGRvY3VtZW50RnJhbWU6KE5TUmVjdClkb2NGcmFtZSBjb25zdHJhaW5lZENs
aXBwaW5nT3JpZ2luOihOU1BvaW50KWNvbnN0cmFpbmVkQ2xpcHBpbmdPcmlnaW4gY2xpcHBpbmdT
aXplOihOU1NpemUpY2xpcFZpZXdTaXplIHRvbGVyYW5jZTooTlNTaXplKXRvbGVyYW5jZTsKIC0g
KE5TUG9pbnQpcG9zaXRpb25BZnRlckR1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbjsK
QEAgLTM5LDcgKzM5LDcgQEAKIC0gKHZvaWQpY2FsY3VsYXRlVG9SZWFjaERlc3RpbmF0aW9uOwog
I2VuZGlmCiAKLUBwcm9wZXJ0eSAoYXRvbWljKSBOU1BvaW50IGRlc3RpbmF0aW9uT3JpZ2luOwor
QHByb3BlcnR5IE5TUG9pbnQgZGVzdGluYXRpb25PcmlnaW47CiBAcHJvcGVydHkgKHJlYWRvbmx5
KSBOU1RpbWVJbnRlcnZhbCBkdXJhdGlvblVudGlsU3RvcDsKIAogQGVuZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>