<?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>198261</bug_id>
          
          <creation_ts>2019-05-26 13:30:18 -0700</creation_ts>
          <short_desc>Move VelocityData to WebCore</short_desc>
          <delta_ts>2019-05-26 18:13:17 -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>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1539284</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-26 13:30:18 -0700</bug_when>
    <thetext>Move VelocityData to WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539286</commentid>
    <comment_count>1</comment_count>
      <attachid>370656</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-26 13:32:54 -0700</bug_when>
    <thetext>Created attachment 370656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539297</commentid>
    <comment_count>2</comment_count>
      <attachid>370659</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-26 16:01:33 -0700</bug_when>
    <thetext>Created attachment 370659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539298</commentid>
    <comment_count>3</comment_count>
      <attachid>370660</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-26 16:47:22 -0700</bug_when>
    <thetext>Created attachment 370660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539305</commentid>
    <comment_count>4</comment_count>
      <attachid>370662</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-26 17:32:37 -0700</bug_when>
    <thetext>Created attachment 370662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539306</commentid>
    <comment_count>5</comment_count>
      <attachid>370662</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-26 18:12:07 -0700</bug_when>
    <thetext>Comment on attachment 370662
Patch

Clearing flags on attachment: 370662

Committed r245787: &lt;https://trac.webkit.org/changeset/245787&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539307</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-26 18:12:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539308</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-26 18:13:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/51148144&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370656</attachid>
            <date>2019-05-26 13:32:54 -0700</date>
            <delta_ts>2019-05-26 17:32:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198261-20190526133253.patch</filename>
            <type>text/plain</type>
            <size>36600</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdkNzI2OTg3NzMwMTli
Mjk0MTU3NDljMTM5MGNkOTljYzIzNDZlYS4uZWFlMWEzNDU2NDlmYTgyYzI5Y2NlMWEzOWUwYWIz
YjgwYjYwOWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA1LTI2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgVmVsb2Np
dHlEYXRhIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5ODI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgVmVsb2NpdHlEYXRhIGFuZCBIaXN0b3JpY2FsVmVsb2NpdHlEYXRhIHRv
IFdlYkNvcmUgZm9yIGZ1dHVyZSB1c2UgaW4gb3ZlcmZsb3cgc2Nyb2xsLgorICAgICAgICAKKyAg
ICAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyBjYW4gbm93IHN0b3JlIGEgVmVsb2Np
dHlEYXRhIChpdHMgdGltZXN0YW1wIGlzIHVzZWQgYXMKKyAgICAgICAgdGhlIHRpbWV0YW1wIGZv
ciB0aGUgZW50aXJlIHVwZGF0ZSkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxWZWxvY2l0
eSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9UaWxlZEJhY2tpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZlbG9jaXR5RGF0YTo6VmVs
b2NpdHlEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZlbG9jaXR5RGF0YTo6dmVs
b2NpdHlPclNjYWxlSXNDaGFuZ2luZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGls
ZUNvbnRyb2xsZXI6OmFkanVzdFRpbGVDb3ZlcmFnZVJlY3QgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmg6CisKIDIwMTktMDUtMjYgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgR3JhcGhp
Y3NMYXllcjo6VHlwZSBmb3IgU2Nyb2xsZWRDb250ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MDBiZGRjZWYx
MzkyMGU0YmE3M2ZmZjM4YmQ3ZTY0NzdjM2VjMTVkLi5hNGFjNmQyMGNiYmNmZDRiYmNlMjY5NmI2
Y2FhNTE5ODJlMDczYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA1LTI2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgVmVs
b2NpdHlEYXRhIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5ODI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmUgVmVsb2NpdHlEYXRhIGFuZCBIaXN0b3JpY2FsVmVsb2NpdHlEYXRh
IHRvIFdlYkNvcmUgZm9yIGZ1dHVyZSB1c2UgaW4gb3ZlcmZsb3cgc2Nyb2xsLgorCisgICAgICAg
IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gY2FuIG5vdyBzdG9yZSBhIFZlbG9jaXR5RGF0
YSAoaXRzIHRpbWVzdGFtcCBpcyB1c2VkIGFzCisgICAgICAgIHRoZSB0aW1ldGFtcCBmb3IgdGhl
IGVudGlyZSB1cGRhdGUpLgorCisgICAgICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oOgorICAgICAgICAoV2Vi
S2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6
c2Nyb2xsVmVsb2NpdHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvOjplbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldyBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OnRpbWVzdGFtcCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViS2l0OjpW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpob3Jpem9udGFsVmVsb2NpdHkgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjp2
ZXJ0aWNhbFZlbG9jaXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6c2NhbGVDaGFuZ2VSYXRlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxWZWxvY2l0eURhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPFZlbG9jaXR5RGF0YT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1
bm9ic2N1cmVkUmVjdDpjb250ZW50SW5zZXRzOnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29v
cmRpbmF0ZXM6b2JzY3VyZWRJbnNldHM6dW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzOmlucHV0Vmll
d0JvdW5kczpzY2FsZTptaW5pbXVtU2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5naW5nT2JzY3Vy
ZWRJbnNldHNJbnRlcmFjdGl2ZWx5OmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3Ol0p
OgorICAgICAgICAoV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpWZWxvY2l0eURhdGE6
OlZlbG9jaXR5RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Okhpc3RvcmljYWxWZWxv
Y2l0eURhdGE6Okhpc3RvcmljYWxWZWxvY2l0eURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjp2ZWxvY2l0eUZvck5ld0RhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpjbGVhcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Okhpc3RvcmljYWxWZWxvY2l0eURhdGE6OmFwcGVuZCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OmFkanVzdFZlbG9jaXR5RGF0YUZvckJvdW5kZWRTY2FsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMpOgorCiAyMDE5
LTA1LTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjQ1NzE1PykgW1dLMl0gTGF5b3V0IFRlc3QgaHR0cC93cHQvY2FjaGUtc3RvcmFn
ZS9jYWNoZS1zdG9yYWdlLW5ldHdvcmtwcm9jZXNzLWNyYXNoLmh0bWwgaXMgYSBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjMmM3YzIyNDllM2YxZWMwNzE2NGE5MzA5ODY1YjU3
NTgyMzI4OTEzLi4yYjY2Njc2N2NlYzg0OWViNDFjNDcyYmM3OGJjYmE3YWJlZjAwMGZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEwODksNiArMTA4OSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1dpZHRoQ2FjaGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dpbmRSdWxlLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggY2EyNDhmM2ViYTYxNDRlZDQ2ODE1NzQ0M2I3MDdiZTcyYTQyM2Q1OC4u
MmUyY2ZkMTQxMDk4MTNhYjUxMDAxN2ExMjJjMWZhZjAwMjAxZjMzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE3NzksNiArMTc3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9T
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0
UnVuLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvVmVsb2NpdHlEYXRhLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9y
LmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggY2VlMGQ0YzBhNWI4MDkxYzBhMzIxYjJjZmMwZDZkNzQyOTQzY2ZlNS4uOTJm
ODJlZmJjNjQ0YWU5YzdmMDUxYTYxY2Y5ODZhYjZlNjY3NzhmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjkyLDYgKzI5Miw3
IEBACiAJCTBGMTVEQThBMEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYxNURBODkwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
LmggKi87IH07CiAJCTBGMTVFRDVDMUI3RUM3QzUwMEVEREZFQiAvKiBXaWxsQ2hhbmdlRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNUVENUEx
QjdFQzdDNTAwRURERkVCIC8qIFdpbGxDaGFuZ2VEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxNzc0ODAxMzc4Qjc3MjAwOURBNzZBIC8q
IFNjcm9sbEFuaW1hdG9ySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjE3NzQ3RTEzNzhCNzcxMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1Mu
aCAqLzsgfTsKKwkJMEYxQTBDMzgyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQTBDMzYyMjlB
NDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMzdGMDg1MjIwMkJGOTgwMEE4OUMwQiAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3RjA4NDIyMDJBQ0I3MDBBODlDMEIgLyogU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0RENDUwMTJGNUVBMUIwMDBEOTE5MCAv
KiBTaGFkb3dCbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjNERDQ0RTEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oICovOyB9OwogCQkw
RjNGMEU1QTE1NzAzMEMzMDA2REE1N0YgLyogUmVuZGVyR2VvbWV0cnlNYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0YwRTU4MTU3MDMwQzMwMDZE
QTU3RiAvKiBSZW5kZXJHZW9tZXRyeU1hcC5oICovOyB9OwpAQCAtNTYyOCw2ICs1NjI5LDcgQEAK
IAkJMEYxNUVENUExQjdFQzdDNTAwRURERkVCIC8qIFdpbGxDaGFuZ2VEYXRhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbGxDaGFuZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMTc3NDdFMTM3OEI3NzEwMDlEQTc2QSAvKiBTY3JvbGxBbmltYXRv
cklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvcklP
Uy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE3NzQ3RjEzNzhCNzcyMDA5REE3
NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTY3JvbGxBbmltYXRvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWZWxvY2l0eURhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYyNkE3QTcyMDU0QzIyNzAwOTBBMTQxIC8qIFRlbXBsYXRlQ29udGVu
dERvY3VtZW50RnJhZ21lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGMjZBN0E5MjA1NEMzQ0YwMDkwQTE0MSAvKiBIVE1MQkRJRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQkRJRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjZBN0FBMjA1NEVDNUEwMDkwQTE0
MSAvKiBIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRNTFVua25vd25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTU2OTksNiArNTcwMSw3IEBACiAJCTBGNTgwRkExMTQ5NjkzOTEwMEZCNUJEOCAvKiBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU4
MEZBMjE0OTY5MzkxMDBGQjVCRDggLyogV2ViVGlsZWRCYWNraW5nTGF5ZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJUaWxlZEJhY2tpbmdMYXllci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8q
IEFuaW1hdGlvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
bmltYXRpb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1QTU3
Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBWZWxvY2l0eURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1
MjEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVu
ZGVyRW1iZWRkZWRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyRW1iZWRkZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RTIw
MDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NTMwLDYgKzI0NTMzLDggQEAKIAkJCQkwNzZF
MTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCiAJCQkJQkU5
MTNEN0YxODFFRjhFNTAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAqLywKIAkJCQlFNEFG
Q0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAorCQkJCTBGNUE1N0NBMjI5
QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAorCQkJCTBGMUEwQzM2MjI5QTQ4
MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKIAkJCQkwNzVCQTg0NzIwNjE4QUE1MDBG
Q0I0QUQgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUEx
NzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMTQxMURDQjAx
NjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKQEAgLTMxOTI4LDYgKzMxOTMzLDcg
QEAKIAkJCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1Qzc3MDhEMTAwRDNDNkIwMDVCQTI2NyAvKiBWYWxp
ZGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBBRjEyQjAyNkY3MDBDMUEzNTkg
LyogVmVjdG9yTWF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxQTBDMzgyMjlBNDgxODAwRDM3
QURCIC8qIFZlbG9jaXR5RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAx
MDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTJCMEQ0QzAxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzRkJDNEFGNDE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGZjZGVmMGNjZTJmZmVmNzVhYmRmZDM5Zjk3NmYzZjY0YTNmMjk0MmUu
LjA4YjA4MTRmYTBiOWRiMzI2OWUzYWJjMmY0ODQ3NWM5MTZjMjhiNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTk5LDYgKzk5LDcgQEAKICNpbmNsdWRlICJTdHlsZVNjb3BlLmgi
CiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2lu
Zy5oIgorI2luY2x1ZGUgIlZlbG9jaXR5RGF0YS5oIgogI2luY2x1ZGUgIlZpc3VhbFZpZXdwb3J0
LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgpAQCAtNTA1MSwxMCArNTA1MiwxMCBAQCB2b2lkIEZyYW1lVmlldzo6
c2V0Q3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50KEludFNpemUgY3VzdG9tU2l6ZSkKICAgICBzZW5k
UmVzaXplRXZlbnRJZk5lZWRlZCgpOwogfQogCi12b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsVmVs
b2NpdHkoZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHks
IGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQordm9pZCBG
cmFtZVZpZXc6OnNldFNjcm9sbFZlbG9jaXR5KGNvbnN0IFZlbG9jaXR5RGF0YSYgdmVsb2NpdHlE
YXRhKQogewogICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVk
QmFja2luZygpKQotICAgICAgICB0aWxlZEJhY2tpbmctPnNldFZlbG9jaXR5KFZlbG9jaXR5RGF0
YShob3Jpem9udGFsVmVsb2NpdHksIHZlcnRpY2FsVmVsb2NpdHksIHNjYWxlQ2hhbmdlUmF0ZSwg
dGltZXN0YW1wKSk7CisgICAgICAgIHRpbGVkQmFja2luZy0+c2V0VmVsb2NpdHkodmVsb2NpdHlE
YXRhKTsKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAppbmRleCBkMzZlNTY1NjQ1YzM3OTRlNmE4NTEzMTc4ZDZlZGJmZjBjZmRiOWU4Li4z
OTAzMDFmMzc1ODcxYzE1NDMwNmQ4M2MzYjk4ZTU3ZDNmNDczMjI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgSW50U2l6ZSBjdXN0b21T
aXplRm9yUmVzaXplRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbVNpemVGb3JSZXNpemVF
dmVudDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3VzdG9tU2l6ZUZvclJlc2l6ZUV2
ZW50KEludFNpemUpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxWZWxvY2l0
eShkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxvY2l0eSwgZG91
YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsVmVsb2NpdHkoY29uc3QgVmVsb2NpdHlEYXRhJik7CiAj
ZWxzZQogICAgIGJvb2wgdXNlQ3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3QoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RpbGVkQmFja2luZy5oCmluZGV4IDQ0NDM4N2M3MzdiNTE5ZTNjNTA5OWQ2ZmE5ZTlk
N2IzNmVhMzU1Y2MuLjUyNWM0ZjNhNjc1ODlhMGJjZjYwYTM4YTBhZjc2ZjE0NDFjZGVmNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBA
IC00MSw2ICs0MSw3IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJ
bnRTaXplOwogY2xhc3MgUGxhdGZvcm1DQUxheWVyOworc3RydWN0IFZlbG9jaXR5RGF0YTsKIAog
ZW51bSBTY3JvbGxpbmdNb2RlSW5kaWNhdGlvbiB7CiAgICAgU3luY2hyb25vdXNTY3JvbGxpbmdC
ZWNhdXNlT2ZMYWNrT2ZTY3JvbGxpbmdDb29yZGluYXRvckluZGljYXRpb24sCkBAIC00OSwyNiAr
NTAsNiBAQCBlbnVtIFNjcm9sbGluZ01vZGVJbmRpY2F0aW9uIHsKICAgICBBc3luY1Njcm9sbGlu
Z0luZGljYXRpb24KIH07CiAKLXN0cnVjdCBWZWxvY2l0eURhdGEgIHsKLSAgICBkb3VibGUgaG9y
aXpvbnRhbFZlbG9jaXR5OwotICAgIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5OwotICAgIGRvdWJs
ZSBzY2FsZUNoYW5nZVJhdGU7Ci0gICAgTW9ub3RvbmljVGltZSBsYXN0VXBkYXRlVGltZTsKLSAg
ICAKLSAgICBWZWxvY2l0eURhdGEoZG91YmxlIGhvcml6b250YWwgPSAwLCBkb3VibGUgdmVydGlj
YWwgPSAwLCBkb3VibGUgc2NhbGVDaGFuZ2UgPSAwLCBNb25vdG9uaWNUaW1lIHVwZGF0ZVRpbWUg
PSBNb25vdG9uaWNUaW1lKCkpCi0gICAgICAgIDogaG9yaXpvbnRhbFZlbG9jaXR5KGhvcml6b250
YWwpCi0gICAgICAgICwgdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbCkKLSAgICAgICAgLCBzY2Fs
ZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2UpCi0gICAgICAgICwgbGFzdFVwZGF0ZVRpbWUodXBkYXRl
VGltZSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIGJvb2wgdmVsb2NpdHlPclNjYWxlSXNDaGFu
Z2luZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFZlbG9jaXR5IHx8
IHZlcnRpY2FsVmVsb2NpdHkgfHwgc2NhbGVDaGFuZ2VSYXRlOwotICAgIH0KLX07Ci0KIGNsYXNz
IFRpbGVkQmFja2luZyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGlsZWRCYWNraW5nKCkgPSBk
ZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
VGlsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
VGlsZUNvbnRyb2xsZXIuY3BwCmluZGV4IDQzMmYwYjhjODQ2NDBmYTZjNTQ4ZWVmMThiNzQ1MTg1
NjRhN2Q4NzIuLjI1NDZhYzdjOWMzMTIxNjNiY2MyY2Q4YWMzYWMwOGRjNjc2ZTUzNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJv
bGxlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRl
ICJUaWxlQ292ZXJhZ2VNYXAuaCIKICNpbmNsdWRlICJUaWxlR3JpZC5oIgorI2luY2x1ZGUgIlZl
bG9jaXR5RGF0YS5oIgogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CkBAIC00MjgsNiArNDI5LDcg
QEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6YWRqdXN0VGlsZUNvdmVyYWdlUmVjdChGbG9hdFJlY3Qm
IGNvdmVyYWdlUmVjdCwgY29uc3QgRmxvYXQKICAgICBpZiAoIW1fdmVsb2NpdHkuaG9yaXpvbnRh
bFZlbG9jaXR5ICYmICFtX3ZlbG9jaXR5LnZlcnRpY2FsVmVsb2NpdHkpIHsKICAgICAgICAgaWYg
KG1fdmVsb2NpdHkuc2NhbGVDaGFuZ2VSYXRlID4gMCkgewogICAgICAgICAgICAgY292ZXJhZ2VS
ZWN0ID0gdmlzaWJsZVJlY3Q7CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oVGlsaW5nLCBz
dHJlYW0gPDwgIlRpbGVDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIGNvbXB1dGVUaWxlQ292ZXJh
Z2VSZWN0IC0gem9vbWluZywgY292ZXJhZ2UgaXMgdmlzaWJsZSByZWN0ICIgPDwgY292ZXJhZ2VS
ZWN0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBmdXR1cmVSZWN0
LnNldFdpZHRoKGZ1dHVyZVJlY3Qud2lkdGgoKSArIGhvcml6b250YWxNYXJnaW4pOwpAQCAtNDQ4
LDggKzQ1MCw5IEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6OmFkanVzdFRpbGVDb3ZlcmFnZVJlY3Qo
RmxvYXRSZWN0JiBjb3ZlcmFnZVJlY3QsIGNvbnN0IEZsb2F0CiAgICAgaWYgKGZ1dHVyZVJlY3Qu
eSgpIDwgMCkKICAgICAgICAgZnV0dXJlUmVjdC5zZXRZKDApOwogCisgICAgTE9HX1dJVEhfU1RS
RUFNKFRpbGluZywgc3RyZWFtIDw8ICJUaWxlQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiBjb21w
dXRlVGlsZUNvdmVyYWdlUmVjdCAtIGNvdmVyYWdlICIgPDwgY292ZXJhZ2VSZWN0IDw8ICIgZXhw
YW5kZWQgdG8gIiA8PCB1bmlvblJlY3QoY292ZXJhZ2VSZWN0LCBmdXR1cmVSZWN0KSA8PCAiIHZl
bG9jaXR5ICIgPDwgbV92ZWxvY2l0eSk7CisKICAgICBjb3ZlcmFnZVJlY3QudW5pdGUoZnV0dXJl
UmVjdCk7Ci0gICAgcmV0dXJuOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY29udGVudHNTY2Fs
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1Rp
bGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxl
Q29udHJvbGxlci5oCmluZGV4IDU3OTdlODY0NDA4MGFmMWYwNjRkMDZkM2M4YWU2ODcxODkyMGQx
NzMuLmRiYjA0OWFiZTU0MzE3YmQxMWJmMDhiNjM3OWRmMmFjZjY4YTE3YzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuaApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllckNsaWVudC5oIgogI2lu
Y2x1ZGUgIlRpbGVkQmFja2luZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAiVmVs
b2NpdHlEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcAppbmRleCBlOWE4
ODNkMjhiZmU2NjcxY2QyODU2NDQ2MTc0MTE0ZDM3NTBlMTY5Li42NmQ4MDczNDI4ZThjZGEwMjQ2
ZjI1ZDI4ZDU2MmVkNWVmNGZhOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9W
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcApAQCAtNDMsMTIgKzQzLDkgQEAgdm9p
ZCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsKICAg
ICBlbmNvZGVyIDw8IG1fb2JzY3VyZWRJbnNldHM7CiAgICAgZW5jb2RlciA8PCBtX3Vub2JzY3Vy
ZWRTYWZlQXJlYUluc2V0czsKKyAgICBlbmNvZGVyIDw8IG1fc2Nyb2xsVmVsb2NpdHk7CiAgICAg
ZW5jb2RlciA8PCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOwogICAgIGVuY29kZXIgPDwg
bV9zY2FsZTsKLSAgICBlbmNvZGVyIDw8IG1fdGltZXN0YW1wOwotICAgIGVuY29kZXIgPDwgbV9o
b3Jpem9udGFsVmVsb2NpdHk7Ci0gICAgZW5jb2RlciA8PCBtX3ZlcnRpY2FsVmVsb2NpdHk7Ci0g
ICAgZW5jb2RlciA8PCBtX3NjYWxlQ2hhbmdlUmF0ZTsKICAgICBlbmNvZGVyIDw8IG1faW5TdGFi
bGVTdGF0ZTsKICAgICBlbmNvZGVyIDw8IG1faXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplOwog
ICAgIGVuY29kZXIgPDwgbV9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OwpA
QCAtNzQsMTggKzcxLDEyIEBAIGJvb2wgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgVmlzaWJsZUNvbnRlbnRSCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Vub2JzY3VyZWRTYWZl
QXJlYUluc2V0cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3Njcm9sbFZlbG9jaXR5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
bV9zY2FsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5tX3RpbWVzdGFtcCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tX2hvcml6b250YWxWZWxvY2l0eSkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3ZlcnRpY2FsVmVsb2Np
dHkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQubV9zY2FsZUNoYW5nZVJhdGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQubV9pblN0YWJsZVN0YXRlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faXNGaXJzdFVwZGF0ZUZvck5l
d1ZpZXdTaXplKSkKQEAgLTEzMiwxNCArMTIzLDggQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgaW5mbykK
ICAgICBpZiAoaW5mby5lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldygpKQogICAgICAg
ICB0cy5kdW1wUHJvcGVydHkoImVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3IiwgaW5m
by5lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldygpKTsKIAotICAgIHRzLmR1bXBQcm9w
ZXJ0eSgidGltZXN0YW1wIiwgaW5mby50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZh
bHVlKCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgiYWxsb3dTaHJpbmtUb0ZpdCIsIGluZm8uYWxs
b3dTaHJpbmtUb0ZpdCgpKTsKLSAgICBpZiAoaW5mby5ob3Jpem9udGFsVmVsb2NpdHkoKSkKLSAg
ICAgICAgdHMuZHVtcFByb3BlcnR5KCJob3Jpem9udGFsVmVsb2NpdHkiLCBpbmZvLmhvcml6b250
YWxWZWxvY2l0eSgpKTsKLSAgICBpZiAoaW5mby52ZXJ0aWNhbFZlbG9jaXR5KCkpCi0gICAgICAg
IHRzLmR1bXBQcm9wZXJ0eSgidmVydGljYWxWZWxvY2l0eSIsIGluZm8udmVydGljYWxWZWxvY2l0
eSgpKTsKLSAgICBpZiAoaW5mby5zY2FsZUNoYW5nZVJhdGUoKSkKLSAgICAgICAgdHMuZHVtcFBy
b3BlcnR5KCJzY2FsZUNoYW5nZVJhdGUiLCBpbmZvLnNjYWxlQ2hhbmdlUmF0ZSgpKTsKKyAgICB0
cy5kdW1wUHJvcGVydHkoInNjcm9sbFZlbG9jaXR5IiwgaW5mby5zY3JvbGxWZWxvY2l0eSgpKTsK
IAogICAgIHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaAppbmRleCA4MTRjYTU0YzIxZDNmNTMzNTY3MmUxY2Uy
M2I1ZjZjYjhkNWY4ZWFjLi41MGE4ZjllNmIzM2RjYmFjMTZkZjk2Y2U0MmY5MjMyNzg5NmIwZWU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVj
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9W
ZWxvY2l0eURhdGEuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NSw3ICs0Niw3IEBAIGNsYXNzIFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8gewogcHVibGljOgogICAgIFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8oKSA9IGRlZmF1bHQ7CiAKLSAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZv
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRCb3hFeHRlbnQmIGNvbnRlbnRJbnNldHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNldHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgYm9vbCBp
blN0YWJsZVN0YXRlLCBib29sIGlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSwgYm9vbCBpc0No
YW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5LCBib29sIGFsbG93U2hyaW5rVG9GaXQs
IGJvb2wgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcsIE1vbm90b25pY1RpbWUgdGlt
ZXN0YW1wLCBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxvY2l0
eSwgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0
aW9uSWQpCisgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1
bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBjb250
ZW50SW5zZXRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0SW5TY3Jv
bGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENv
bnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcywgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRl
bnQmIG9ic2N1cmVkSW5zZXRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGJvb2wgaW5TdGFibGVTdGF0ZSwgYm9v
bCBpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUsIGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5z
ZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxvd1Nocmlua1RvRml0LCBib29sIGVuY2xvc2VkSW5T
Y3JvbGxhYmxlQW5jZXN0b3JWaWV3LCBjb25zdCBXZWJDb3JlOjpWZWxvY2l0eURhdGEmIHNjcm9s
bFZlbG9jaXR5LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKICAgICAgICAg
OiBtX2V4cG9zZWRDb250ZW50UmVjdChleHBvc2VkQ29udGVudFJlY3QpCiAgICAgICAgICwgbV91
bm9ic2N1cmVkQ29udGVudFJlY3QodW5vYnNjdXJlZENvbnRlbnRSZWN0KQogICAgICAgICAsIG1f
Y29udGVudEluc2V0cyhjb250ZW50SW5zZXRzKQpAQCAtNTQsMTIgKzU1LDkgQEAgcHVibGljOgog
ICAgICAgICAsIG1fY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoY3VzdG9tRml4ZWRQb3NpdGlvblJl
Y3QpCiAgICAgICAgICwgbV9vYnNjdXJlZEluc2V0cyhvYnNjdXJlZEluc2V0cykKICAgICAgICAg
LCBtX3Vub2JzY3VyZWRTYWZlQXJlYUluc2V0cyh1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMpCisg
ICAgICAgICwgbV9zY3JvbGxWZWxvY2l0eShzY3JvbGxWZWxvY2l0eSkKICAgICAgICAgLCBtX2xh
c3RMYXllclRyZWVUcmFuc2FjdGlvbklEKGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogICAg
ICAgICAsIG1fc2NhbGUoc2NhbGUpCi0gICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQot
ICAgICAgICAsIG1faG9yaXpvbnRhbFZlbG9jaXR5KGhvcml6b250YWxWZWxvY2l0eSkKLSAgICAg
ICAgLCBtX3ZlcnRpY2FsVmVsb2NpdHkodmVydGljYWxWZWxvY2l0eSkKLSAgICAgICAgLCBtX3Nj
YWxlQ2hhbmdlUmF0ZShzY2FsZUNoYW5nZVJhdGUpCiAgICAgICAgICwgbV9pblN0YWJsZVN0YXRl
KGluU3RhYmxlU3RhdGUpCiAgICAgICAgICwgbV9pc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUo
aXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplKQogICAgICAgICAsIG1faXNDaGFuZ2luZ09ic2N1
cmVkSW5zZXRzSW50ZXJhY3RpdmVseShpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2
ZWx5KQpAQCAtNzQsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1
cm4gbV91bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOyB9CiAgICAgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRW
aWV3Qm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV91bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0
aW5nSW5wdXRWaWV3Qm91bmRzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXN0
b21GaXhlZFBvc2l0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tRml4ZWRQb3NpdGlv
blJlY3Q7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpWZWxvY2l0eURhdGEmIHNjcm9sbFZlbG9jaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxWZWxvY2l0eTsgfQogICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fb2JzY3Vy
ZWRJbnNldHM7IH0KICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzKCkgY29uc3QgeyByZXR1cm4gbV91bm9ic2N1cmVkU2FmZUFyZWFJbnNl
dHM7IH0KIApAQCAtODMsMTQgKzgyLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2hhbmdpbmdP
YnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkoKSBjb25zdCB7IHJldHVybiBtX2lzQ2hhbmdpbmdP
YnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHk7IH0KICAgICBib29sIGFsbG93U2hyaW5rVG9GaXQo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93U2hyaW5rVG9GaXQ7IH0KICAgICBib29sIGVuY2xvc2Vk
SW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9lbmNsb3NlZEluU2Ny
b2xsYWJsZUFuY2VzdG9yVmlldzsgfQotCi0gICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAoKSBj
b25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGRvdWJsZSBob3Jpem9udGFsVmVsb2Np
dHkoKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxWZWxvY2l0eTsgfQotICAgIGRvdWJsZSB2
ZXJ0aWNhbFZlbG9jaXR5KCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0aWNhbFZlbG9jaXR5OyB9Ci0g
ICAgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVDaGFuZ2VS
YXRlOyB9Ci0KICAgICB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQ7IH0KIAorICAgIE1vbm90b25p
Y1RpbWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxWZWxvY2l0eS5sYXN0VXBk
YXRlVGltZTsgfQorCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8mKTsKIApAQCAtMTA1LDEyICsxMDAsOSBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZs
b2F0UmVjdCBtX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0OyAvLyBXaGVuIHZpc3VhbCB2aWV3cG9y
dHMgYXJlIGVuYWJsZWQsIHRoaXMgaXMgdGhlIGxheW91dCB2aWV3cG9ydC4KICAgICBXZWJDb3Jl
OjpGbG9hdEJveEV4dGVudCBtX29ic2N1cmVkSW5zZXRzOwogICAgIFdlYkNvcmU6OkZsb2F0Qm94
RXh0ZW50IG1fdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzOworICAgIFdlYkNvcmU6OlZlbG9jaXR5
RGF0YSBtX3Njcm9sbFZlbG9jaXR5OwogICAgIHVpbnQ2NF90IG1fbGFzdExheWVyVHJlZVRyYW5z
YWN0aW9uSUQgeyAwIH07CiAgICAgZG91YmxlIG1fc2NhbGUgeyAtMSB9OwotICAgIE1vbm90b25p
Y1RpbWUgbV90aW1lc3RhbXA7Ci0gICAgZG91YmxlIG1faG9yaXpvbnRhbFZlbG9jaXR5IHsgMCB9
OwotICAgIGRvdWJsZSBtX3ZlcnRpY2FsVmVsb2NpdHkgeyAwIH07Ci0gICAgZG91YmxlIG1fc2Nh
bGVDaGFuZ2VSYXRlIHsgMCB9OwogICAgIGJvb2wgbV9pblN0YWJsZVN0YXRlIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSB7IGZhbHNlIH07CkBA
IC0xMjksOSArMTIxLDcgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvJiBhLCBjb25zdCBWaXNpYmxlQ29udGUKICAgICAgICAgJiYgYS5j
dXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpID09IGIuY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKQog
ICAgICAgICAmJiBhLm9ic2N1cmVkSW5zZXRzKCkgPT0gYi5vYnNjdXJlZEluc2V0cygpCiAgICAg
ICAgICYmIGEudW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzKCkgPT0gYi51bm9ic2N1cmVkU2FmZUFy
ZWFJbnNldHMoKQotICAgICAgICAmJiBhLmhvcml6b250YWxWZWxvY2l0eSgpID09IGIuaG9yaXpv
bnRhbFZlbG9jaXR5KCkKLSAgICAgICAgJiYgYS52ZXJ0aWNhbFZlbG9jaXR5KCkgPT0gYi52ZXJ0
aWNhbFZlbG9jaXR5KCkKLSAgICAgICAgJiYgYS5zY2FsZUNoYW5nZVJhdGUoKSA9PSBiLnNjYWxl
Q2hhbmdlUmF0ZSgpCisgICAgICAgICYmIGEuc2Nyb2xsVmVsb2NpdHkoKS5lcXVhbElnbm9yaW5n
VGltZXN0YW1wKGIuc2Nyb2xsVmVsb2NpdHkoKSkKICAgICAgICAgJiYgYS5pblN0YWJsZVN0YXRl
KCkgPT0gYi5pblN0YWJsZVN0YXRlKCkKICAgICAgICAgJiYgYS5pc0ZpcnN0VXBkYXRlRm9yTmV3
Vmlld1NpemUoKSA9PSBiLmlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSgpCiAgICAgICAgICYm
IGEuYWxsb3dTaHJpbmtUb0ZpdCgpID09IGIuYWxsb3dTaHJpbmtUb0ZpdCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBkNGRlZjhlOWY1
OTZhNzY2NDUwOWJhMDdlMGU3YjE4NzdmMzFkYzc0Li5jOTg0YzRjOTlhYmI2ODgzMzExN2Y2NGNi
MGViYzAyMWE4ZDAwOGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKQEAgLTgxLDYgKzgxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1RpbWlu
Z0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Zl
bG9jaXR5RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25J
RC5oPgpAQCAtOTIzLDYgKzkyNCwzNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRy
aWJ1dGVzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZpZXdwb3J0QXR0cmlidQogICAgIHJl
dHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46OmRlY29kZShkZWNv
ZGVyLCB2aWV3cG9ydEF0dHJpYnV0ZXMpOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8VmVsb2Np
dHlEYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZlbG9jaXR5RGF0YSYgdmVs
b2NpdHlEYXRhKQoreworICAgIGVuY29kZXIgPDwgdmVsb2NpdHlEYXRhLmhvcml6b250YWxWZWxv
Y2l0eSA8PCB2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSA8PCB2ZWxvY2l0eURhdGEuc2Nh
bGVDaGFuZ2VSYXRlIDw8IHZlbG9jaXR5RGF0YS5sYXN0VXBkYXRlVGltZTsKK30KKworYm9vbCBB
cmd1bWVudENvZGVyPFZlbG9jaXR5RGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWZWxv
Y2l0eURhdGEmIHZlbG9jaXR5RGF0YSkKK3sKKyAgICBmbG9hdCBob3Jpem9udGFsVmVsb2NpdHk7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShob3Jpem9udGFsVmVsb2NpdHkpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB2ZXJ0aWNhbFZlbG9jaXR5OworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUodmVydGljYWxWZWxvY2l0eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGZsb2F0IHNjYWxlQ2hhbmdlUmF0ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNjYWxl
Q2hhbmdlUmF0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE1vbm90b25pY1RpbWUg
bGFzdFVwZGF0ZVRpbWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsYXN0VXBkYXRlVGltZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHZlbG9jaXR5RGF0YS5ob3Jpem9udGFsVmVs
b2NpdHkgPSBob3Jpem9udGFsVmVsb2NpdHk7CisgICAgdmVsb2NpdHlEYXRhLnZlcnRpY2FsVmVs
b2NpdHkgPSB2ZXJ0aWNhbFZlbG9jaXR5OworICAgIHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJh
dGUgPSBzY2FsZUNoYW5nZVJhdGU7CisgICAgdmVsb2NpdHlEYXRhLmxhc3RVcGRhdGVUaW1lID0g
bGFzdFVwZGF0ZVRpbWU7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBBcmd1bWVudENv
ZGVyPE1pbWVDbGFzc0luZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTWltZUNs
YXNzSW5mbyYgbWltZUNsYXNzSW5mbykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggZDg4MmZiNjhkODkxYWEyZWVjNzE3Y2Y0YTJhZjNiMDQz
YmYzMDJmMi4uZmI3NzMwNzE5YjY0MDU4ZjVmMmJjNDlhMGU5YTRhNzYyMWU0MWRjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEyNSw2ICsx
MjUsNyBAQCBzdHJ1Y3QgVGV4dEluZGljYXRvckRhdGE7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQogc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKICNlbmRpZgorc3RydWN0IFZlbG9jaXR5RGF0
YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAg
ICAgCkBAIC0zMzQsNiArMzM1LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKIH07CiAKK3RlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VmVsb2NpdHlEYXRhPiB7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWZWxvY2l0eURhdGEmKTsKKyAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZlbG9jaXR5RGF0YSYpOwor
fTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNaW1lQ2xhc3NJ
bmZvPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpN
aW1lQ2xhc3NJbmZvJik7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6Ok1pbWVDbGFzc0lu
Zm8+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tCmluZGV4IDU1ZDgwY2E1NWRmYzU1NjU0NDI3OGY2MTAyY2RhYWY5ZDAxNTAx
YzAuLjU2YjQ1NjJjNzk2YTcxNGI5YTA5MzdkNjY4MjgxMzdiODhiNDY5MjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC02MCwxMDMgKzYwLDEy
IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1F1aXJrcy5oPgorI2ltcG9ydCA8
V2ViQ29yZS9WZWxvY2l0eURhdGEuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29y
ZVNQSS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvVGV4
dFN0cmVhbS5oPgogCiAKLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1jbGFzcyBIaXN0b3JpY2FsVmVsb2NpdHlE
YXRhIHsKLXB1YmxpYzoKLSAgICBzdHJ1Y3QgVmVsb2NpdHlEYXRhIHsKLSAgICAgICAgVmVsb2Np
dHlEYXRhKCkKLSAgICAgICAgICAgIDogaG9yaXpvbnRhbFZlbG9jaXR5KDApCi0gICAgICAgICAg
ICAsIHZlcnRpY2FsVmVsb2NpdHkoMCkKLSAgICAgICAgICAgICwgc2NhbGVDaGFuZ2VSYXRlKDAp
Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIFZlbG9jaXR5RGF0YShkb3VibGUgaG9y
aXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxvY2l0eSwgZG91YmxlIHNjYWxlQ2hh
bmdlUmF0ZSkKLSAgICAgICAgICAgIDogaG9yaXpvbnRhbFZlbG9jaXR5KGhvcml6b250YWxWZWxv
Y2l0eSkKLSAgICAgICAgICAgICwgdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbFZlbG9jaXR5KQot
ICAgICAgICAgICAgLCBzY2FsZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2VSYXRlKQotICAgICAgICB7
Ci0gICAgICAgIH0KLQotICAgICAgICBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5OwotICAgICAg
ICBkb3VibGUgdmVydGljYWxWZWxvY2l0eTsKLSAgICAgICAgZG91YmxlIHNjYWxlQ2hhbmdlUmF0
ZTsKLSAgICB9OwotCi0gICAgSGlzdG9yaWNhbFZlbG9jaXR5RGF0YSgpCi0gICAgICAgIDogbV9o
aXN0b3J5U2l6ZSgwKQotICAgICAgICAsIG1fbGF0ZXN0RGF0YUluZGV4KDApCi0gICAgewotICAg
IH0KLQotICAgIFZlbG9jaXR5RGF0YSB2ZWxvY2l0eUZvck5ld0RhdGEoQ0dQb2ludCBuZXdQb3Np
dGlvbiwgZG91YmxlIHNjYWxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKLSAgICB7Ci0gICAg
ICAgIC8vIER1ZSB0byBhbGwgdGhlIHNvdXJjZSBvZiByZWN0IHVwZGF0ZSwgdGhlIGlucHV0IGlz
IHZlcnkgbm9pc3kuIFRvIHNtb290aCB0aGUgb3V0cHV0LCB3ZSBhY2N1bXVsYXRlIGFsbCBjaGFu
Z2VzCi0gICAgICAgIC8vIHdpdGhpbiAxIGZyYW1lIGFzIGEgc2luZ2xlIHVwZGF0ZS4gTm8gc3Bl
ZWQgY29tcHV0YXRpb24gaXMgZXZlciBkb25lIG9uIGRhdGEgd2l0aGluIHRoZSBzYW1lIGZyYW1l
LgotICAgICAgICBjb25zdCBTZWNvbmRzIGZpbHRlcmluZ1RocmVzaG9sZCgxLjAgLyA2MCk7Ci0K
LSAgICAgICAgVmVsb2NpdHlEYXRhIHZlbG9jaXR5RGF0YTsKLSAgICAgICAgaWYgKG1faGlzdG9y
eVNpemUgPiAwKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBvbGRlc3REYXRhSW5kZXg7Ci0gICAg
ICAgICAgICB1bnNpZ25lZCBkaXN0YW5jZVRvTGFzdEhpc3RvcmljYWxEYXRhID0gbV9oaXN0b3J5
U2l6ZSAtIDE7Ci0gICAgICAgICAgICBpZiAoZGlzdGFuY2VUb0xhc3RIaXN0b3JpY2FsRGF0YSA8
PSBtX2xhdGVzdERhdGFJbmRleCkKLSAgICAgICAgICAgICAgICBvbGRlc3REYXRhSW5kZXggPSBt
X2xhdGVzdERhdGFJbmRleCAtIGRpc3RhbmNlVG9MYXN0SGlzdG9yaWNhbERhdGE7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb2xkZXN0RGF0YUluZGV4ID0gbV9oaXN0b3J5U2l6
ZSAtIChkaXN0YW5jZVRvTGFzdEhpc3RvcmljYWxEYXRhIC0gbV9sYXRlc3REYXRhSW5kZXgpOwot
Ci0gICAgICAgICAgICBTZWNvbmRzIHRpbWVEZWx0YSA9IHRpbWVzdGFtcCAtIG1faGlzdG9yeVtv
bGRlc3REYXRhSW5kZXhdLnRpbWVzdGFtcDsKLSAgICAgICAgICAgIGlmICh0aW1lRGVsdGEgPiBm
aWx0ZXJpbmdUaHJlc2hvbGQpIHsKLSAgICAgICAgICAgICAgICBEYXRhJiBvbGRlc3REYXRhID0g
bV9oaXN0b3J5W29sZGVzdERhdGFJbmRleF07Ci0gICAgICAgICAgICAgICAgdmVsb2NpdHlEYXRh
ID0gVmVsb2NpdHlEYXRhKChuZXdQb3NpdGlvbi54IC0gb2xkZXN0RGF0YS5wb3NpdGlvbi54KSAv
IHRpbWVEZWx0YS5zZWNvbmRzKCksIChuZXdQb3NpdGlvbi55IC0gb2xkZXN0RGF0YS5wb3NpdGlv
bi55KSAvIHRpbWVEZWx0YS5zZWNvbmRzKCksIChzY2FsZSAtIG9sZGVzdERhdGEuc2NhbGUpIC8g
dGltZURlbHRhLnNlY29uZHMoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
ICBTZWNvbmRzIHRpbWVTaW5jZUxhc3RBcHBlbmQgPSB0aW1lc3RhbXAgLSBtX2xhc3RBcHBlbmRU
aW1lc3RhbXA7Ci0gICAgICAgIGlmICh0aW1lU2luY2VMYXN0QXBwZW5kID4gZmlsdGVyaW5nVGhy
ZXNob2xkKQotICAgICAgICAgICAgYXBwZW5kKG5ld1Bvc2l0aW9uLCBzY2FsZSwgdGltZXN0YW1w
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9oaXN0b3J5W21fbGF0ZXN0RGF0YUluZGV4
XSA9IHsgdGltZXN0YW1wLCBuZXdQb3NpdGlvbiwgc2NhbGUgfTsKLSAgICAgICAgcmV0dXJuIHZl
bG9jaXR5RGF0YTsKLSAgICB9Ci0KLSAgICB2b2lkIGNsZWFyKCkgeyBtX2hpc3RvcnlTaXplID0g
MDsgfQotCi1wcml2YXRlOgotICAgIHZvaWQgYXBwZW5kKENHUG9pbnQgbmV3UG9zaXRpb24sIGRv
dWJsZSBzY2FsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCi0gICAgewotICAgICAgICBtX2xh
dGVzdERhdGFJbmRleCA9IChtX2xhdGVzdERhdGFJbmRleCArIDEpICUgbWF4SGlzdG9yeURlcHRo
OwotICAgICAgICBtX2hpc3RvcnlbbV9sYXRlc3REYXRhSW5kZXhdID0geyB0aW1lc3RhbXAsIG5l
d1Bvc2l0aW9uLCBzY2FsZSB9OwotCi0gICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX2hpc3RvcnlT
aXplICsgMTsKLSAgICAgICAgaWYgKHNpemUgPD0gbWF4SGlzdG9yeURlcHRoKQotICAgICAgICAg
ICAgbV9oaXN0b3J5U2l6ZSA9IHNpemU7Ci0KLSAgICAgICAgbV9sYXN0QXBwZW5kVGltZXN0YW1w
ID0gdGltZXN0YW1wOwotICAgIH0KLQotCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heEhp
c3RvcnlEZXB0aCA9IDM7Ci0KLSAgICB1bnNpZ25lZCBtX2hpc3RvcnlTaXplOwotICAgIHVuc2ln
bmVkIG1fbGF0ZXN0RGF0YUluZGV4OwotICAgIE1vbm90b25pY1RpbWUgbV9sYXN0QXBwZW5kVGlt
ZXN0YW1wOwotCi0gICAgc3RydWN0IERhdGEgewotICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWVz
dGFtcDsKLSAgICAgICAgQ0dQb2ludCBwb3NpdGlvbjsKLSAgICAgICAgZG91YmxlIHNjYWxlOwot
ICAgIH0gbV9oaXN0b3J5W21heEhpc3RvcnlEZXB0aF07Ci19OwotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KIEBpbnRlcmZhY2UgV0tJbnNwZWN0b3JJbmRpY2F0aW9uVmlldyA6IFVJVmlldwogQGVu
ZAogCkBAIC0yMjMsNyArMTMyLDcgQEAgQGltcGxlbWVudGF0aW9uIFdLQ29udGVudFZpZXcgewog
ICAgIFJldGFpblB0cjxfVUlMYXllckhvc3RWaWV3PiBfdmlzaWJpbGl0eVByb3BhZ2F0aW9uVmll
dzsKICNlbmRpZgogCi0gICAgV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhIF9oaXN0b3Jp
Y2FsS2luZW1hdGljRGF0YTsKKyAgICBXZWJDb3JlOjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhIF9o
aXN0b3JpY2FsS2luZW1hdGljRGF0YTsKIAogICAgIFJldGFpblB0cjxOU1VuZG9NYW5hZ2VyPiBf
dW5kb01hbmFnZXI7CiAgICAgUmV0YWluUHRyPFdLUXVpcmt5TlNVbmRvTWFuYWdlcj4gX3F1aXJr
eVVuZG9NYW5hZ2VyOwpAQCAtNDYzLDExICszNzIsMTMgQEAgLSAodm9pZClkaWRVcGRhdGVWaXNp
YmxlUmVjdDooQ0dSZWN0KXZpc2libGVDb250ZW50UmVjdAogICAgICAgICByZXR1cm47CiAKICAg
ICBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotICAgIFdl
YktpdDo6SGlzdG9yaWNhbFZlbG9jaXR5RGF0YTo6VmVsb2NpdHlEYXRhIHZlbG9jaXR5RGF0YTsK
KyAgICBXZWJDb3JlOjpWZWxvY2l0eURhdGEgdmVsb2NpdHlEYXRhOwogICAgIGlmICghaXNTdGFi
bGVTdGF0ZSkKICAgICAgICAgdmVsb2NpdHlEYXRhID0gX2hpc3RvcmljYWxLaW5lbWF0aWNEYXRh
LnZlbG9jaXR5Rm9yTmV3RGF0YSh2aXNpYmxlQ29udGVudFJlY3Qub3JpZ2luLCB6b29tU2NhbGUs
IHRpbWVzdGFtcCk7Ci0gICAgZWxzZQorICAgIGVsc2UgewogICAgICAgICBfaGlzdG9yaWNhbEtp
bmVtYXRpY0RhdGEuY2xlYXIoKTsKKyAgICAgICAgdmVsb2NpdHlEYXRhID0geyAwLCAwLCAwLCB0
aW1lc3RhbXAgfTsKKyAgICB9CiAKICAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkoKTsKIApAQCAtNDg5LDEwICs0MDAsNyBAQCAtICh2b2lkKWRpZFVwZGF0ZVZpc2li
bGVSZWN0OihDR1JlY3QpdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGlzQ2hhbmdpbmdPYnNj
dXJlZEluc2V0c0ludGVyYWN0aXZlbHksCiAgICAgICAgIF93ZWJWaWV3Ll9hbGxvd3NWaWV3cG9y
dFNocmlua1RvRml0LAogICAgICAgICBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywK
LSAgICAgICAgdGltZXN0YW1wLAotICAgICAgICB2ZWxvY2l0eURhdGEuaG9yaXpvbnRhbFZlbG9j
aXR5LAotICAgICAgICB2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSwKLSAgICAgICAgdmVs
b2NpdHlEYXRhLnNjYWxlQ2hhbmdlUmF0ZSwKKyAgICAgICAgdmVsb2NpdHlEYXRhLAogICAgICAg
ICBkb3duY2FzdDxXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk+KCpkcmF3
aW5nQXJlYSkubGFzdENvbW1pdHRlZExheWVyVHJlZVRyYW5zYWN0aW9uSUQoKSk7CiAKICAgICBM
T0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tDb250ZW50VmlldyBk
aWRVcGRhdGVWaXNpYmxlUmVjdF0iIDw8IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uZHVt
cCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KaW5kZXggYzExOWQ0ZjEyNDdlZjY1YzZiODhkYWNlZGNjYjdlODFlNzFlMmZiMC4u
MzgxN2JlMjM1ZGQ2NDRlMmNlNmI3NDljMWRkMzliZjI4NTIwODhlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTMxMTYs
NyArMzExNiw3IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25z
dCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXCiAgICAgICAgIG5ld0V4cG9zZWRD
b250ZW50UmVjdC5tb3ZlQnkoYWRqdXN0bWVudERlbHRhKTsKICAgICB9CiAKLSAgICBmcmFtZVZp
ZXcuc2V0U2Nyb2xsVmVsb2NpdHkoMCwgMCwgMCwgTW9ub3RvbmljVGltZTo6bm93KCkpOworICAg
IGZyYW1lVmlldy5zZXRTY3JvbGxWZWxvY2l0eSh7IDAsIDAsIDAsIE1vbm90b25pY1RpbWU6Om5v
dygpIH0pOwogCiAgICAgSW50UG9pbnQgcm91bmRlZFVub2JzY3VyZWRDb250ZW50UmVjdFBvc2l0
aW9uID0gcm91bmRlZEludFBvaW50KG5ld1Vub2JzY3VyZWRDb250ZW50UmVjdC5sb2NhdGlvbigp
KTsKICAgICBmcmFtZVZpZXcuc2V0VW5vYnNjdXJlZENvbnRlbnRTaXplKG5ld1Vub2JzY3VyZWRD
b250ZW50UmVjdC5zaXplKCkpOwpAQCAtMzI4OSw3ICszMjg5LDcgQEAgdm9pZCBXZWJQYWdlOjp2
aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKFpvb21Ub0luaXRpYWxTY2FsZSB6b29tVG9Jbml0
aWFsU2NhbGUKICAgICAgICAgbWluaW11bUxheW91dFNpemVJblNjcm9sbFZpZXdDb29yZGluYXRl
cy5zY2FsZSgxIC8gc2NhbGUpOwogICAgICAgICBJbnRTaXplIG1pbmltdW1MYXlvdXRTaXplSW5E
b2N1bWVudENvb3JkaW5hdGVzID0gcm91bmRlZEludFNpemUobWluaW11bUxheW91dFNpemVJblNj
cm9sbFZpZXdDb29yZGluYXRlcyk7CiAgICAgICAgIGZyYW1lVmlldy5zZXRVbm9ic2N1cmVkQ29u
dGVudFNpemUobWluaW11bUxheW91dFNpemVJbkRvY3VtZW50Q29vcmRpbmF0ZXMpOwotICAgICAg
ICBmcmFtZVZpZXcuc2V0U2Nyb2xsVmVsb2NpdHkoMCwgMCwgMCwgTW9ub3RvbmljVGltZTo6bm93
KCkpOworICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsVmVsb2NpdHkoeyAwLCAwLCAwLCBNb25v
dG9uaWNUaW1lOjpub3coKSB9KTsKIAogICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgc2VuZCBk
b3duIHRoZSBvYnNjdXJlZCBtYXJnaW5zIHRvIGZpbmQgYSBiZXR0ZXIgZXhwb3NlZCByZWN0IGFu
ZCB1bm9ic2N1cmVkIHJlY3QuCiAgICAgICAgIC8vIEl0IGlzIG5vdCBhIGJpZyBkZWFsIGF0IHRo
ZSBtb21lbnQgYmVjYXVzZSB0aGUgdGlsZSBjb3ZlcmFnZSB3aWxsIGFsd2F5cyBleHRlbmQgcGFz
dCB0aGUgb2JzY3VyZWQgYm90dG9tIGluc2V0LgpAQCAtMzM2MCwxNSArMzM2MCwxNSBAQCB2b2lk
IFdlYlBhZ2U6OmFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCkKICAgICAgICAgbV9wYWdlLT5h
cHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYWRq
dXN0VmVsb2NpdHlEYXRhRm9yQm91bmRlZFNjYWxlKGRvdWJsZSYgaG9yaXpvbnRhbFZlbG9jaXR5
LCBkb3VibGUmIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSYgc2NhbGVDaGFuZ2VSYXRlLCBkb3Vi
bGUgZXhwb3NlZFJlY3RTY2FsZSwgZG91YmxlIG1pbmltdW1TY2FsZSwgZG91YmxlIG1heGltdW1T
Y2FsZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RWZWxvY2l0eURhdGFGb3JCb3VuZGVkU2Nh
bGUoVmVsb2NpdHlEYXRhJiB2ZWxvY2l0eURhdGEsIGRvdWJsZSBleHBvc2VkUmVjdFNjYWxlLCBk
b3VibGUgbWluaW11bVNjYWxlLCBkb3VibGUgbWF4aW11bVNjYWxlKQogewotICAgIGlmIChzY2Fs
ZUNoYW5nZVJhdGUpIHsKLSAgICAgICAgaG9yaXpvbnRhbFZlbG9jaXR5ID0gMDsKLSAgICAgICAg
dmVydGljYWxWZWxvY2l0eSA9IDA7CisgICAgaWYgKHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJh
dGUpIHsKKyAgICAgICAgdmVsb2NpdHlEYXRhLmhvcml6b250YWxWZWxvY2l0eSA9IDA7CisgICAg
ICAgIHZlbG9jaXR5RGF0YS52ZXJ0aWNhbFZlbG9jaXR5ID0gMDsKICAgICB9CiAKICAgICBpZiAo
ZXhwb3NlZFJlY3RTY2FsZSA+PSBtYXhpbXVtU2NhbGUgfHwgZXhwb3NlZFJlY3RTY2FsZSA8PSBt
aW5pbXVtU2NhbGUpCi0gICAgICAgIHNjYWxlQ2hhbmdlUmF0ZSA9IDA7CisgICAgICAgIHZlbG9j
aXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUgPSAwOwogfQogCiBPcHRpb25hbDxmbG9hdD4gV2ViUGFn
ZTo6c2NhbGVGcm9tVUlQcm9jZXNzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8m
IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8pIGNvbnN0CkBAIC0zNDc2LDEyICszNDc2LDkg
QEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2kKICAgICBtX3BhZ2UtPnNldFVub2JzY3VyZWRTYWZl
QXJlYUluc2V0cyh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnVub2JzY3VyZWRTYWZlQXJl
YUluc2V0cygpKTsKICAgICBtX3BhZ2UtPnNldEVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JW
aWV3KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uZW5jbG9zZWRJblNjcm9sbGFibGVBbmNl
c3RvclZpZXcoKSk7CiAKLSAgICBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5ID0gdmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5ob3Jpem9udGFsVmVsb2NpdHkoKTsKLSAgICBkb3VibGUgdmVy
dGljYWxWZWxvY2l0eSA9IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8udmVydGljYWxWZWxv
Y2l0eSgpOwotICAgIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUgPSB2aXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLnNjYWxlQ2hhbmdlUmF0ZSgpOwotICAgIGFkanVzdFZlbG9jaXR5RGF0YUZvckJv
dW5kZWRTY2FsZShob3Jpem9udGFsVmVsb2NpdHksIHZlcnRpY2FsVmVsb2NpdHksIHNjYWxlQ2hh
bmdlUmF0ZSwgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5zY2FsZSgpLCBtX3ZpZXdwb3J0
Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWF4
aW11bVNjYWxlKCkpOwotCi0gICAgZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KGhvcml6b250
YWxWZWxvY2l0eSwgdmVydGljYWxWZWxvY2l0eSwgc2NhbGVDaGFuZ2VSYXRlLCB2aXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvLnRpbWVzdGFtcCgpKTsKKyAgICBWZWxvY2l0eURhdGEgc2Nyb2xs
VmVsb2NpdHkgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnNjcm9sbFZlbG9jaXR5KCk7
CisgICAgYWRqdXN0VmVsb2NpdHlEYXRhRm9yQm91bmRlZFNjYWxlKHNjcm9sbFZlbG9jaXR5LCB2
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnNjYWxlKCksIG1fdmlld3BvcnRDb25maWd1cmF0
aW9uLm1pbmltdW1TY2FsZSgpLCBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5tYXhpbXVtU2NhbGUo
KSk7CisgICAgZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KHNjcm9sbFZlbG9jaXR5KTsKIAog
ICAgIGlmIChtX2lzSW5TdGFibGVTdGF0ZSkgewogICAgICAgICBpZiAodmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mby51bm9ic2N1cmVkQ29udGVudFJlY3QoKSAhPSB2aXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvLnVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3Vu
ZHMoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370659</attachid>
            <date>2019-05-26 16:01:33 -0700</date>
            <delta_ts>2019-05-26 16:48:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198261-20190526160132.patch</filename>
            <type>text/plain</type>
            <size>44241</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdkNzI2OTg3NzMwMTli
Mjk0MTU3NDljMTM5MGNkOTljYzIzNDZlYS4uZWFlMWEzNDU2NDlmYTgyYzI5Y2NlMWEzOWUwYWIz
YjgwYjYwOWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA1LTI2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgVmVsb2Np
dHlEYXRhIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5ODI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgVmVsb2NpdHlEYXRhIGFuZCBIaXN0b3JpY2FsVmVsb2NpdHlEYXRhIHRv
IFdlYkNvcmUgZm9yIGZ1dHVyZSB1c2UgaW4gb3ZlcmZsb3cgc2Nyb2xsLgorICAgICAgICAKKyAg
ICAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyBjYW4gbm93IHN0b3JlIGEgVmVsb2Np
dHlEYXRhIChpdHMgdGltZXN0YW1wIGlzIHVzZWQgYXMKKyAgICAgICAgdGhlIHRpbWV0YW1wIGZv
ciB0aGUgZW50aXJlIHVwZGF0ZSkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxWZWxvY2l0
eSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9UaWxlZEJhY2tpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZlbG9jaXR5RGF0YTo6VmVs
b2NpdHlEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZlbG9jaXR5RGF0YTo6dmVs
b2NpdHlPclNjYWxlSXNDaGFuZ2luZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGls
ZUNvbnRyb2xsZXI6OmFkanVzdFRpbGVDb3ZlcmFnZVJlY3QgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmg6CisKIDIwMTktMDUtMjYgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgR3JhcGhp
Y3NMYXllcjo6VHlwZSBmb3IgU2Nyb2xsZWRDb250ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MDBiZGRjZWYx
MzkyMGU0YmE3M2ZmZjM4YmQ3ZTY0NzdjM2VjMTVkLi5hNGFjNmQyMGNiYmNmZDRiYmNlMjY5NmI2
Y2FhNTE5ODJlMDczYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA1LTI2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgVmVs
b2NpdHlEYXRhIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5ODI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmUgVmVsb2NpdHlEYXRhIGFuZCBIaXN0b3JpY2FsVmVsb2NpdHlEYXRh
IHRvIFdlYkNvcmUgZm9yIGZ1dHVyZSB1c2UgaW4gb3ZlcmZsb3cgc2Nyb2xsLgorCisgICAgICAg
IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gY2FuIG5vdyBzdG9yZSBhIFZlbG9jaXR5RGF0
YSAoaXRzIHRpbWVzdGFtcCBpcyB1c2VkIGFzCisgICAgICAgIHRoZSB0aW1ldGFtcCBmb3IgdGhl
IGVudGlyZSB1cGRhdGUpLgorCisgICAgICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oOgorICAgICAgICAoV2Vi
S2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6
c2Nyb2xsVmVsb2NpdHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvOjplbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldyBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OnRpbWVzdGFtcCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViS2l0OjpW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpob3Jpem9udGFsVmVsb2NpdHkgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjp2
ZXJ0aWNhbFZlbG9jaXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6c2NhbGVDaGFuZ2VSYXRlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxWZWxvY2l0eURhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPFZlbG9jaXR5RGF0YT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1
bm9ic2N1cmVkUmVjdDpjb250ZW50SW5zZXRzOnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29v
cmRpbmF0ZXM6b2JzY3VyZWRJbnNldHM6dW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzOmlucHV0Vmll
d0JvdW5kczpzY2FsZTptaW5pbXVtU2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5naW5nT2JzY3Vy
ZWRJbnNldHNJbnRlcmFjdGl2ZWx5OmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3Ol0p
OgorICAgICAgICAoV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpWZWxvY2l0eURhdGE6
OlZlbG9jaXR5RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Okhpc3RvcmljYWxWZWxv
Y2l0eURhdGE6Okhpc3RvcmljYWxWZWxvY2l0eURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjp2ZWxvY2l0eUZvck5ld0RhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpjbGVhcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Okhpc3RvcmljYWxWZWxvY2l0eURhdGE6OmFwcGVuZCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OmFkanVzdFZlbG9jaXR5RGF0YUZvckJvdW5kZWRTY2FsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMpOgorCiAyMDE5
LTA1LTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjQ1NzE1PykgW1dLMl0gTGF5b3V0IFRlc3QgaHR0cC93cHQvY2FjaGUtc3RvcmFn
ZS9jYWNoZS1zdG9yYWdlLW5ldHdvcmtwcm9jZXNzLWNyYXNoLmh0bWwgaXMgYSBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjMmM3YzIyNDllM2YxZWMwNzE2NGE5MzA5ODY1YjU3
NTgyMzI4OTEzLi4yYjY2Njc2N2NlYzg0OWViNDFjNDcyYmM3OGJjYmE3YWJlZjAwMGZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEwODksNiArMTA4OSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1dpZHRoQ2FjaGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dpbmRSdWxlLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggY2EyNDhmM2ViYTYxNDRlZDQ2ODE1NzQ0M2I3MDdiZTcyYTQyM2Q1OC4u
MmUyY2ZkMTQxMDk4MTNhYjUxMDAxN2ExMjJjMWZhZjAwMjAxZjMzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE3NzksNiArMTc3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9T
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0
UnVuLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvVmVsb2NpdHlEYXRhLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9y
LmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggY2VlMGQ0YzBhNWI4MDkxYzBhMzIxYjJjZmMwZDZkNzQyOTQzY2ZlNS4uOTJm
ODJlZmJjNjQ0YWU5YzdmMDUxYTYxY2Y5ODZhYjZlNjY3NzhmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjkyLDYgKzI5Miw3
IEBACiAJCTBGMTVEQThBMEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYxNURBODkwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
LmggKi87IH07CiAJCTBGMTVFRDVDMUI3RUM3QzUwMEVEREZFQiAvKiBXaWxsQ2hhbmdlRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNUVENUEx
QjdFQzdDNTAwRURERkVCIC8qIFdpbGxDaGFuZ2VEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxNzc0ODAxMzc4Qjc3MjAwOURBNzZBIC8q
IFNjcm9sbEFuaW1hdG9ySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjE3NzQ3RTEzNzhCNzcxMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1Mu
aCAqLzsgfTsKKwkJMEYxQTBDMzgyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQTBDMzYyMjlB
NDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMzdGMDg1MjIwMkJGOTgwMEE4OUMwQiAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3RjA4NDIyMDJBQ0I3MDBBODlDMEIgLyogU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0RENDUwMTJGNUVBMUIwMDBEOTE5MCAv
KiBTaGFkb3dCbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjNERDQ0RTEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oICovOyB9OwogCQkw
RjNGMEU1QTE1NzAzMEMzMDA2REE1N0YgLyogUmVuZGVyR2VvbWV0cnlNYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0YwRTU4MTU3MDMwQzMwMDZE
QTU3RiAvKiBSZW5kZXJHZW9tZXRyeU1hcC5oICovOyB9OwpAQCAtNTYyOCw2ICs1NjI5LDcgQEAK
IAkJMEYxNUVENUExQjdFQzdDNTAwRURERkVCIC8qIFdpbGxDaGFuZ2VEYXRhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbGxDaGFuZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMTc3NDdFMTM3OEI3NzEwMDlEQTc2QSAvKiBTY3JvbGxBbmltYXRv
cklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvcklP
Uy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE3NzQ3RjEzNzhCNzcyMDA5REE3
NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTY3JvbGxBbmltYXRvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWZWxvY2l0eURhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYyNkE3QTcyMDU0QzIyNzAwOTBBMTQxIC8qIFRlbXBsYXRlQ29udGVu
dERvY3VtZW50RnJhZ21lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGMjZBN0E5MjA1NEMzQ0YwMDkwQTE0MSAvKiBIVE1MQkRJRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQkRJRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjZBN0FBMjA1NEVDNUEwMDkwQTE0
MSAvKiBIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRNTFVua25vd25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTU2OTksNiArNTcwMSw3IEBACiAJCTBGNTgwRkExMTQ5NjkzOTEwMEZCNUJEOCAvKiBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU4
MEZBMjE0OTY5MzkxMDBGQjVCRDggLyogV2ViVGlsZWRCYWNraW5nTGF5ZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJUaWxlZEJhY2tpbmdMYXllci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8q
IEFuaW1hdGlvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
bmltYXRpb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1QTU3
Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBWZWxvY2l0eURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1
MjEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVu
ZGVyRW1iZWRkZWRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyRW1iZWRkZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RTIw
MDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NTMwLDYgKzI0NTMzLDggQEAKIAkJCQkwNzZF
MTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCiAJCQkJQkU5
MTNEN0YxODFFRjhFNTAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAqLywKIAkJCQlFNEFG
Q0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAorCQkJCTBGNUE1N0NBMjI5
QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAorCQkJCTBGMUEwQzM2MjI5QTQ4
MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKIAkJCQkwNzVCQTg0NzIwNjE4QUE1MDBG
Q0I0QUQgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUEx
NzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMTQxMURDQjAx
NjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKQEAgLTMxOTI4LDYgKzMxOTMzLDcg
QEAKIAkJCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1Qzc3MDhEMTAwRDNDNkIwMDVCQTI2NyAvKiBWYWxp
ZGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBBRjEyQjAyNkY3MDBDMUEzNTkg
LyogVmVjdG9yTWF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxQTBDMzgyMjlBNDgxODAwRDM3
QURCIC8qIFZlbG9jaXR5RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAx
MDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTJCMEQ0QzAxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzRkJDNEFGNDE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGZjZGVmMGNjZTJmZmVmNzVhYmRmZDM5Zjk3NmYzZjY0YTNmMjk0MmUu
LjA4YjA4MTRmYTBiOWRiMzI2OWUzYWJjMmY0ODQ3NWM5MTZjMjhiNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTk5LDYgKzk5LDcgQEAKICNpbmNsdWRlICJTdHlsZVNjb3BlLmgi
CiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2lu
Zy5oIgorI2luY2x1ZGUgIlZlbG9jaXR5RGF0YS5oIgogI2luY2x1ZGUgIlZpc3VhbFZpZXdwb3J0
LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgpAQCAtNTA1MSwxMCArNTA1MiwxMCBAQCB2b2lkIEZyYW1lVmlldzo6
c2V0Q3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50KEludFNpemUgY3VzdG9tU2l6ZSkKICAgICBzZW5k
UmVzaXplRXZlbnRJZk5lZWRlZCgpOwogfQogCi12b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsVmVs
b2NpdHkoZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHks
IGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQordm9pZCBG
cmFtZVZpZXc6OnNldFNjcm9sbFZlbG9jaXR5KGNvbnN0IFZlbG9jaXR5RGF0YSYgdmVsb2NpdHlE
YXRhKQogewogICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVk
QmFja2luZygpKQotICAgICAgICB0aWxlZEJhY2tpbmctPnNldFZlbG9jaXR5KFZlbG9jaXR5RGF0
YShob3Jpem9udGFsVmVsb2NpdHksIHZlcnRpY2FsVmVsb2NpdHksIHNjYWxlQ2hhbmdlUmF0ZSwg
dGltZXN0YW1wKSk7CisgICAgICAgIHRpbGVkQmFja2luZy0+c2V0VmVsb2NpdHkodmVsb2NpdHlE
YXRhKTsKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAppbmRleCBkMzZlNTY1NjQ1YzM3OTRlNmE4NTEzMTc4ZDZlZGJmZjBjZmRiOWU4Li4z
OTAzMDFmMzc1ODcxYzE1NDMwNmQ4M2MzYjk4ZTU3ZDNmNDczMjI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgSW50U2l6ZSBjdXN0b21T
aXplRm9yUmVzaXplRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbVNpemVGb3JSZXNpemVF
dmVudDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3VzdG9tU2l6ZUZvclJlc2l6ZUV2
ZW50KEludFNpemUpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxWZWxvY2l0
eShkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxvY2l0eSwgZG91
YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsVmVsb2NpdHkoY29uc3QgVmVsb2NpdHlEYXRhJik7CiAj
ZWxzZQogICAgIGJvb2wgdXNlQ3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3QoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RpbGVkQmFja2luZy5oCmluZGV4IDQ0NDM4N2M3MzdiNTE5ZTNjNTA5OWQ2ZmE5ZTlk
N2IzNmVhMzU1Y2MuLjUyNWM0ZjNhNjc1ODlhMGJjZjYwYTM4YTBhZjc2ZjE0NDFjZGVmNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBA
IC00MSw2ICs0MSw3IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJ
bnRTaXplOwogY2xhc3MgUGxhdGZvcm1DQUxheWVyOworc3RydWN0IFZlbG9jaXR5RGF0YTsKIAog
ZW51bSBTY3JvbGxpbmdNb2RlSW5kaWNhdGlvbiB7CiAgICAgU3luY2hyb25vdXNTY3JvbGxpbmdC
ZWNhdXNlT2ZMYWNrT2ZTY3JvbGxpbmdDb29yZGluYXRvckluZGljYXRpb24sCkBAIC00OSwyNiAr
NTAsNiBAQCBlbnVtIFNjcm9sbGluZ01vZGVJbmRpY2F0aW9uIHsKICAgICBBc3luY1Njcm9sbGlu
Z0luZGljYXRpb24KIH07CiAKLXN0cnVjdCBWZWxvY2l0eURhdGEgIHsKLSAgICBkb3VibGUgaG9y
aXpvbnRhbFZlbG9jaXR5OwotICAgIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5OwotICAgIGRvdWJs
ZSBzY2FsZUNoYW5nZVJhdGU7Ci0gICAgTW9ub3RvbmljVGltZSBsYXN0VXBkYXRlVGltZTsKLSAg
ICAKLSAgICBWZWxvY2l0eURhdGEoZG91YmxlIGhvcml6b250YWwgPSAwLCBkb3VibGUgdmVydGlj
YWwgPSAwLCBkb3VibGUgc2NhbGVDaGFuZ2UgPSAwLCBNb25vdG9uaWNUaW1lIHVwZGF0ZVRpbWUg
PSBNb25vdG9uaWNUaW1lKCkpCi0gICAgICAgIDogaG9yaXpvbnRhbFZlbG9jaXR5KGhvcml6b250
YWwpCi0gICAgICAgICwgdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbCkKLSAgICAgICAgLCBzY2Fs
ZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2UpCi0gICAgICAgICwgbGFzdFVwZGF0ZVRpbWUodXBkYXRl
VGltZSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIGJvb2wgdmVsb2NpdHlPclNjYWxlSXNDaGFu
Z2luZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFZlbG9jaXR5IHx8
IHZlcnRpY2FsVmVsb2NpdHkgfHwgc2NhbGVDaGFuZ2VSYXRlOwotICAgIH0KLX07Ci0KIGNsYXNz
IFRpbGVkQmFja2luZyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGlsZWRCYWNraW5nKCkgPSBk
ZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmVs
b2NpdHlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5
RGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNjYzU5YWIxZjU5NGZhNGJiYzU2ODA1YzFjNDkyMjFjOTc4
ZTg5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1ZlbG9jaXR5RGF0YS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJWZWxvY2l0eURhdGEuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBWZWxv
Y2l0eURhdGEmIHZlbG9jaXR5RGF0YSkKK3sKKyAgICB0cy5kdW1wUHJvcGVydHkoInRpbWVzdGFt
cCIsIHZlbG9jaXR5RGF0YS5sYXN0VXBkYXRlVGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVl
KCkpOworICAgIGlmICh2ZWxvY2l0eURhdGEuaG9yaXpvbnRhbFZlbG9jaXR5KQorICAgICAgICB0
cy5kdW1wUHJvcGVydHkoImhvcml6b250YWxWZWxvY2l0eSIsIHZlbG9jaXR5RGF0YS5ob3Jpem9u
dGFsVmVsb2NpdHkpOworICAgIGlmICh2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSkKKyAg
ICAgICAgdHMuZHVtcFByb3BlcnR5KCJ2ZXJ0aWNhbFZlbG9jaXR5IiwgdmVsb2NpdHlEYXRhLnZl
cnRpY2FsVmVsb2NpdHkpOworICAgIGlmICh2ZWxvY2l0eURhdGEuc2NhbGVDaGFuZ2VSYXRlKQor
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoInNjYWxlQ2hhbmdlUmF0ZSIsIHZlbG9jaXR5RGF0YS5z
Y2FsZUNoYW5nZVJhdGUpOworCisgICAgcmV0dXJuIHRzOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WZWxv
Y2l0eURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0
YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNmMTBmNTQ5ZDA2YzFhMDVhYThiOTk4MjMyN2QwMzZhZmY5ZGYxZjYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WZWxv
Y2l0eURhdGEuaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRleHRTdHJlYW07Cit9CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFZlbG9jaXR5RGF0YSAgeworICAgIGZsb2F0IGhvcml6
b250YWxWZWxvY2l0eSB7IDAgfTsKKyAgICBmbG9hdCB2ZXJ0aWNhbFZlbG9jaXR5IHsgMCB9Owor
ICAgIGZsb2F0IHNjYWxlQ2hhbmdlUmF0ZSB7IDAgfTsKKyAgICBNb25vdG9uaWNUaW1lIGxhc3RV
cGRhdGVUaW1lOworICAgIAorICAgIFZlbG9jaXR5RGF0YShmbG9hdCBob3Jpem9udGFsID0gMCwg
ZmxvYXQgdmVydGljYWwgPSAwLCBmbG9hdCBzY2FsZUNoYW5nZSA9IDAsIE1vbm90b25pY1RpbWUg
dXBkYXRlVGltZSA9IE1vbm90b25pY1RpbWUoKSkKKyAgICAgICAgOiBob3Jpem9udGFsVmVsb2Np
dHkoaG9yaXpvbnRhbCkKKyAgICAgICAgLCB2ZXJ0aWNhbFZlbG9jaXR5KHZlcnRpY2FsKQorICAg
ICAgICAsIHNjYWxlQ2hhbmdlUmF0ZShzY2FsZUNoYW5nZSkKKyAgICAgICAgLCBsYXN0VXBkYXRl
VGltZSh1cGRhdGVUaW1lKQorICAgIHsKKyAgICB9CisgICAgCisgICAgYm9vbCB2ZWxvY2l0eU9y
U2NhbGVJc0NoYW5naW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBob3Jpem9udGFs
VmVsb2NpdHkgfHwgdmVydGljYWxWZWxvY2l0eSB8fCBzY2FsZUNoYW5nZVJhdGU7CisgICAgfQor
ICAgIAorICAgIGJvb2wgZXF1YWxJZ25vcmluZ1RpbWVzdGFtcChjb25zdCBWZWxvY2l0eURhdGEm
IG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGhvcml6b250YWxWZWxvY2l0eSA9
PSBvdGhlci5ob3Jpem9udGFsVmVsb2NpdHkKKyAgICAgICAgICAgICYmIHZlcnRpY2FsVmVsb2Np
dHkgPT0gb3RoZXIudmVydGljYWxWZWxvY2l0eQorICAgICAgICAgICAgJiYgc2NhbGVDaGFuZ2VS
YXRlID09IG90aGVyLnNjYWxlQ2hhbmdlUmF0ZTsKKyAgICB9Cit9OworCitXRUJDT1JFX0VYUE9S
VCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBWZWxvY2l0eURhdGEm
KTsKKworY2xhc3MgSGlzdG9yaWNhbFZlbG9jaXR5RGF0YSB7CitwdWJsaWM6CisgICAgSGlzdG9y
aWNhbFZlbG9jaXR5RGF0YSgpID0gZGVmYXVsdDsKKworICAgIFZlbG9jaXR5RGF0YSB2ZWxvY2l0
eUZvck5ld0RhdGEoRmxvYXRQb2ludCBuZXdQb3NpdGlvbiwgZG91YmxlIHNjYWxlLCBNb25vdG9u
aWNUaW1lIHRpbWVzdGFtcCkKKyAgICB7CisgICAgICAgIC8vIER1ZSB0byBhbGwgdGhlIHNvdXJj
ZSBvZiByZWN0IHVwZGF0ZSwgdGhlIGlucHV0IGlzIHZlcnkgbm9pc3kuIFRvIHNtb290aCB0aGUg
b3V0cHV0LCB3ZSBhY2N1bXVsYXRlIGFsbCBjaGFuZ2VzCisgICAgICAgIC8vIHdpdGhpbiAxIGZy
YW1lIGFzIGEgc2luZ2xlIHVwZGF0ZS4gTm8gc3BlZWQgY29tcHV0YXRpb24gaXMgZXZlciBkb25l
IG9uIGRhdGEgd2l0aGluIHRoZSBzYW1lIGZyYW1lLgorICAgICAgICBjb25zdCBTZWNvbmRzIGZp
bHRlcmluZ1RocmVzaG9sZCgxLjAgLyA2MCk7CisKKyAgICAgICAgVmVsb2NpdHlEYXRhIHZlbG9j
aXR5RGF0YTsKKyAgICAgICAgaWYgKG1faGlzdG9yeVNpemUgPiAwKSB7CisgICAgICAgICAgICB1
bnNpZ25lZCBvbGRlc3REYXRhSW5kZXg7CisgICAgICAgICAgICB1bnNpZ25lZCBkaXN0YW5jZVRv
TGFzdEhpc3RvcmljYWxEYXRhID0gbV9oaXN0b3J5U2l6ZSAtIDE7CisgICAgICAgICAgICBpZiAo
ZGlzdGFuY2VUb0xhc3RIaXN0b3JpY2FsRGF0YSA8PSBtX2xhdGVzdERhdGFJbmRleCkKKyAgICAg
ICAgICAgICAgICBvbGRlc3REYXRhSW5kZXggPSBtX2xhdGVzdERhdGFJbmRleCAtIGRpc3RhbmNl
VG9MYXN0SGlzdG9yaWNhbERhdGE7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
b2xkZXN0RGF0YUluZGV4ID0gbV9oaXN0b3J5U2l6ZSAtIChkaXN0YW5jZVRvTGFzdEhpc3Rvcmlj
YWxEYXRhIC0gbV9sYXRlc3REYXRhSW5kZXgpOworCisgICAgICAgICAgICBTZWNvbmRzIHRpbWVE
ZWx0YSA9IHRpbWVzdGFtcCAtIG1fcG9zaXRpb25IaXN0b3J5W29sZGVzdERhdGFJbmRleF0udGlt
ZXN0YW1wOworICAgICAgICAgICAgaWYgKHRpbWVEZWx0YSA+IGZpbHRlcmluZ1RocmVzaG9sZCkg
eworICAgICAgICAgICAgICAgIERhdGEmIG9sZGVzdERhdGEgPSBtX3Bvc2l0aW9uSGlzdG9yeVtv
bGRlc3REYXRhSW5kZXhdOworICAgICAgICAgICAgICAgIHZlbG9jaXR5RGF0YSA9IFZlbG9jaXR5
RGF0YSgobmV3UG9zaXRpb24ueCgpIC0gb2xkZXN0RGF0YS5wb3NpdGlvbi54KCkpIC8gdGltZURl
bHRhLnNlY29uZHMoKSwgKG5ld1Bvc2l0aW9uLnkoKSAtIG9sZGVzdERhdGEucG9zaXRpb24ueSgp
KSAvIHRpbWVEZWx0YS5zZWNvbmRzKCksIChzY2FsZSAtIG9sZGVzdERhdGEuc2NhbGUpIC8gdGlt
ZURlbHRhLnNlY29uZHMoKSwgdGltZXN0YW1wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIFNlY29uZHMgdGltZVNpbmNlTGFzdEFwcGVuZCA9IHRpbWVzdGFtcCAtIG1fbGFz
dEFwcGVuZFRpbWVzdGFtcDsKKyAgICAgICAgaWYgKHRpbWVTaW5jZUxhc3RBcHBlbmQgPiBmaWx0
ZXJpbmdUaHJlc2hvbGQpCisgICAgICAgICAgICBhcHBlbmQobmV3UG9zaXRpb24sIHNjYWxlLCB0
aW1lc3RhbXApOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3Bvc2l0aW9uSGlzdG9yeVtt
X2xhdGVzdERhdGFJbmRleF0gPSB7IHRpbWVzdGFtcCwgbmV3UG9zaXRpb24sIHNjYWxlIH07CisK
KyAgICAgICAgcmV0dXJuIHZlbG9jaXR5RGF0YTsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyKCkg
eyBtX2hpc3RvcnlTaXplID0gMDsgfQorCitwcml2YXRlOgorICAgIHZvaWQgYXBwZW5kKEZsb2F0
UG9pbnQgbmV3UG9zaXRpb24sIGRvdWJsZSBzY2FsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAp
CisgICAgeworICAgICAgICBtX2xhdGVzdERhdGFJbmRleCA9IChtX2xhdGVzdERhdGFJbmRleCAr
IDEpICUgbWF4SGlzdG9yeURlcHRoOworICAgICAgICBtX3Bvc2l0aW9uSGlzdG9yeVttX2xhdGVz
dERhdGFJbmRleF0gPSB7IHRpbWVzdGFtcCwgbmV3UG9zaXRpb24sIHNjYWxlIH07CisgICAgICAg
IG1faGlzdG9yeVNpemUgPSBzdGQ6Om1pbihtX2hpc3RvcnlTaXplICsgMSwgbWF4SGlzdG9yeURl
cHRoKTsKKyAgICAgICAgbV9sYXN0QXBwZW5kVGltZXN0YW1wID0gdGltZXN0YW1wOworICAgIH0K
KworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4SGlzdG9yeURlcHRoID0gMzsKKwor
ICAgIHVuc2lnbmVkIG1faGlzdG9yeVNpemUgeyAwIH07CisgICAgdW5zaWduZWQgbV9sYXRlc3RE
YXRhSW5kZXggeyAwIH07CisgICAgTW9ub3RvbmljVGltZSBtX2xhc3RBcHBlbmRUaW1lc3RhbXA7
CisKKyAgICBzdHJ1Y3QgRGF0YSB7CisgICAgICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1wOwor
ICAgICAgICBGbG9hdFBvaW50IHBvc2l0aW9uOworICAgICAgICBkb3VibGUgc2NhbGU7CisgICAg
fSBtX3Bvc2l0aW9uSGlzdG9yeVttYXhIaXN0b3J5RGVwdGhdOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvVGlsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvVGlsZUNvbnRyb2xsZXIuY3BwCmluZGV4IDQzMmYwYjhjODQ2NDBmYTZjNTQ4ZWVmMThiNzQ1
MTg1NjRhN2Q4NzIuLjI1NDZhYzdjOWMzMTIxNjNiY2MyY2Q4YWMzYWMwOGRjNjc2ZTUzNzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29u
dHJvbGxlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNs
dWRlICJUaWxlQ292ZXJhZ2VNYXAuaCIKICNpbmNsdWRlICJUaWxlR3JpZC5oIgorI2luY2x1ZGUg
IlZlbG9jaXR5RGF0YS5oIgogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CkBAIC00MjgsNiArNDI5
LDcgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6YWRqdXN0VGlsZUNvdmVyYWdlUmVjdChGbG9hdFJl
Y3QmIGNvdmVyYWdlUmVjdCwgY29uc3QgRmxvYXQKICAgICBpZiAoIW1fdmVsb2NpdHkuaG9yaXpv
bnRhbFZlbG9jaXR5ICYmICFtX3ZlbG9jaXR5LnZlcnRpY2FsVmVsb2NpdHkpIHsKICAgICAgICAg
aWYgKG1fdmVsb2NpdHkuc2NhbGVDaGFuZ2VSYXRlID4gMCkgewogICAgICAgICAgICAgY292ZXJh
Z2VSZWN0ID0gdmlzaWJsZVJlY3Q7CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oVGlsaW5n
LCBzdHJlYW0gPDwgIlRpbGVDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIGNvbXB1dGVUaWxlQ292
ZXJhZ2VSZWN0IC0gem9vbWluZywgY292ZXJhZ2UgaXMgdmlzaWJsZSByZWN0ICIgPDwgY292ZXJh
Z2VSZWN0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBmdXR1cmVS
ZWN0LnNldFdpZHRoKGZ1dHVyZVJlY3Qud2lkdGgoKSArIGhvcml6b250YWxNYXJnaW4pOwpAQCAt
NDQ4LDggKzQ1MCw5IEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6OmFkanVzdFRpbGVDb3ZlcmFnZVJl
Y3QoRmxvYXRSZWN0JiBjb3ZlcmFnZVJlY3QsIGNvbnN0IEZsb2F0CiAgICAgaWYgKGZ1dHVyZVJl
Y3QueSgpIDwgMCkKICAgICAgICAgZnV0dXJlUmVjdC5zZXRZKDApOwogCisgICAgTE9HX1dJVEhf
U1RSRUFNKFRpbGluZywgc3RyZWFtIDw8ICJUaWxlQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiBj
b21wdXRlVGlsZUNvdmVyYWdlUmVjdCAtIGNvdmVyYWdlICIgPDwgY292ZXJhZ2VSZWN0IDw8ICIg
ZXhwYW5kZWQgdG8gIiA8PCB1bmlvblJlY3QoY292ZXJhZ2VSZWN0LCBmdXR1cmVSZWN0KSA8PCAi
IHZlbG9jaXR5ICIgPDwgbV92ZWxvY2l0eSk7CisKICAgICBjb3ZlcmFnZVJlY3QudW5pdGUoZnV0
dXJlUmVjdCk7Ci0gICAgcmV0dXJuOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY29udGVudHNT
Y2FsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L1RpbGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9U
aWxlQ29udHJvbGxlci5oCmluZGV4IDU3OTdlODY0NDA4MGFmMWYwNjRkMDZkM2M4YWU2ODcxODky
MGQxNzMuLmRiYjA0OWFiZTU0MzE3YmQxMWJmMDhiNjM3OWRmMmFjZjY4YTE3YzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIu
aApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllckNsaWVudC5oIgog
I2luY2x1ZGUgIlRpbGVkQmFja2luZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAi
VmVsb2NpdHlEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcAppbmRleCBl
OWE4ODNkMjhiZmU2NjcxY2QyODU2NDQ2MTc0MTE0ZDM3NTBlMTY5Li42NmQ4MDczNDI4ZThjZGEw
MjQ2ZjI1ZDI4ZDU2MmVkNWVmNGZhOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcApAQCAtNDMsMTIgKzQzLDkgQEAg
dm9pZCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsK
ICAgICBlbmNvZGVyIDw8IG1fb2JzY3VyZWRJbnNldHM7CiAgICAgZW5jb2RlciA8PCBtX3Vub2Jz
Y3VyZWRTYWZlQXJlYUluc2V0czsKKyAgICBlbmNvZGVyIDw8IG1fc2Nyb2xsVmVsb2NpdHk7CiAg
ICAgZW5jb2RlciA8PCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOwogICAgIGVuY29kZXIg
PDwgbV9zY2FsZTsKLSAgICBlbmNvZGVyIDw8IG1fdGltZXN0YW1wOwotICAgIGVuY29kZXIgPDwg
bV9ob3Jpem9udGFsVmVsb2NpdHk7Ci0gICAgZW5jb2RlciA8PCBtX3ZlcnRpY2FsVmVsb2NpdHk7
Ci0gICAgZW5jb2RlciA8PCBtX3NjYWxlQ2hhbmdlUmF0ZTsKICAgICBlbmNvZGVyIDw8IG1faW5T
dGFibGVTdGF0ZTsKICAgICBlbmNvZGVyIDw8IG1faXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXpl
OwogICAgIGVuY29kZXIgPDwgbV9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5
OwpAQCAtNzQsMTggKzcxLDEyIEBAIGJvb2wgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgVmlzaWJsZUNvbnRlbnRSCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Vub2JzY3VyZWRT
YWZlQXJlYUluc2V0cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5tX3Njcm9sbFZlbG9jaXR5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9u
SUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQubV9zY2FsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3RpbWVzdGFtcCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2hvcml6b250YWxWZWxvY2l0eSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3ZlcnRpY2FsVmVs
b2NpdHkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQubV9zY2FsZUNoYW5nZVJhdGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9pblN0YWJsZVN0YXRlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faXNGaXJzdFVwZGF0ZUZv
ck5ld1ZpZXdTaXplKSkKQEAgLTEzMiwxNCArMTIzLDggQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgaW5m
bykKICAgICBpZiAoaW5mby5lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldygpKQogICAg
ICAgICB0cy5kdW1wUHJvcGVydHkoImVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3Iiwg
aW5mby5lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldygpKTsKIAotICAgIHRzLmR1bXBQ
cm9wZXJ0eSgidGltZXN0YW1wIiwgaW5mby50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgp
LnZhbHVlKCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgiYWxsb3dTaHJpbmtUb0ZpdCIsIGluZm8u
YWxsb3dTaHJpbmtUb0ZpdCgpKTsKLSAgICBpZiAoaW5mby5ob3Jpem9udGFsVmVsb2NpdHkoKSkK
LSAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJob3Jpem9udGFsVmVsb2NpdHkiLCBpbmZvLmhvcml6
b250YWxWZWxvY2l0eSgpKTsKLSAgICBpZiAoaW5mby52ZXJ0aWNhbFZlbG9jaXR5KCkpCi0gICAg
ICAgIHRzLmR1bXBQcm9wZXJ0eSgidmVydGljYWxWZWxvY2l0eSIsIGluZm8udmVydGljYWxWZWxv
Y2l0eSgpKTsKLSAgICBpZiAoaW5mby5zY2FsZUNoYW5nZVJhdGUoKSkKLSAgICAgICAgdHMuZHVt
cFByb3BlcnR5KCJzY2FsZUNoYW5nZVJhdGUiLCBpbmZvLnNjYWxlQ2hhbmdlUmF0ZSgpKTsKKyAg
ICB0cy5kdW1wUHJvcGVydHkoInNjcm9sbFZlbG9jaXR5IiwgaW5mby5zY3JvbGxWZWxvY2l0eSgp
KTsKIAogICAgIHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaAppbmRleCA4MTRjYTU0YzIxZDNmNTMzNTY3MmUx
Y2UyM2I1ZjZjYjhkNWY4ZWFjLi41MGE4ZjllNmIzM2RjYmFjMTZkZjk2Y2U0MmY5MjMyNzg5NmIw
ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9WZWxvY2l0eURhdGEuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NSw3ICs0Niw3IEBAIGNsYXNzIFZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8gewogcHVibGljOgogICAgIFZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8oKSA9IGRlZmF1bHQ7CiAKLSAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRCb3hFeHRlbnQmIGNvbnRlbnRJbnNldHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
dW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNldHMsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgYm9v
bCBpblN0YWJsZVN0YXRlLCBib29sIGlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSwgYm9vbCBp
c0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5LCBib29sIGFsbG93U2hyaW5rVG9G
aXQsIGJvb2wgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcsIE1vbm90b25pY1RpbWUg
dGltZXN0YW1wLCBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxv
Y2l0eSwgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5z
YWN0aW9uSWQpCisgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIGV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBj
b250ZW50SW5zZXRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJl
ZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcywgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hF
eHRlbnQmIG9ic2N1cmVkSW5zZXRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5v
YnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGJvb2wgaW5TdGFibGVTdGF0ZSwg
Ym9vbCBpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUsIGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVk
SW5zZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxvd1Nocmlua1RvRml0LCBib29sIGVuY2xvc2Vk
SW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3LCBjb25zdCBXZWJDb3JlOjpWZWxvY2l0eURhdGEmIHNj
cm9sbFZlbG9jaXR5LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKICAgICAg
ICAgOiBtX2V4cG9zZWRDb250ZW50UmVjdChleHBvc2VkQ29udGVudFJlY3QpCiAgICAgICAgICwg
bV91bm9ic2N1cmVkQ29udGVudFJlY3QodW5vYnNjdXJlZENvbnRlbnRSZWN0KQogICAgICAgICAs
IG1fY29udGVudEluc2V0cyhjb250ZW50SW5zZXRzKQpAQCAtNTQsMTIgKzU1LDkgQEAgcHVibGlj
OgogICAgICAgICAsIG1fY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoY3VzdG9tRml4ZWRQb3NpdGlv
blJlY3QpCiAgICAgICAgICwgbV9vYnNjdXJlZEluc2V0cyhvYnNjdXJlZEluc2V0cykKICAgICAg
ICAgLCBtX3Vub2JzY3VyZWRTYWZlQXJlYUluc2V0cyh1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMp
CisgICAgICAgICwgbV9zY3JvbGxWZWxvY2l0eShzY3JvbGxWZWxvY2l0eSkKICAgICAgICAgLCBt
X2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEKGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQog
ICAgICAgICAsIG1fc2NhbGUoc2NhbGUpCi0gICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1w
KQotICAgICAgICAsIG1faG9yaXpvbnRhbFZlbG9jaXR5KGhvcml6b250YWxWZWxvY2l0eSkKLSAg
ICAgICAgLCBtX3ZlcnRpY2FsVmVsb2NpdHkodmVydGljYWxWZWxvY2l0eSkKLSAgICAgICAgLCBt
X3NjYWxlQ2hhbmdlUmF0ZShzY2FsZUNoYW5nZVJhdGUpCiAgICAgICAgICwgbV9pblN0YWJsZVN0
YXRlKGluU3RhYmxlU3RhdGUpCiAgICAgICAgICwgbV9pc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1Np
emUoaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplKQogICAgICAgICAsIG1faXNDaGFuZ2luZ09i
c2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseShpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFj
dGl2ZWx5KQpAQCAtNzQsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV91bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOyB9CiAgICAgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5w
dXRWaWV3Qm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV91bm9ic2N1cmVkQ29udGVudFJlY3RSZXNw
ZWN0aW5nSW5wdXRWaWV3Qm91bmRzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBj
dXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tRml4ZWRQb3Np
dGlvblJlY3Q7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpWZWxvY2l0eURhdGEmIHNjcm9sbFZlbG9j
aXR5KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxWZWxvY2l0eTsgfQogICAgIGNvbnN0IFdlYkNv
cmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fb2Jz
Y3VyZWRJbnNldHM7IH0KICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRzKCkgY29uc3QgeyByZXR1cm4gbV91bm9ic2N1cmVkU2FmZUFyZWFJ
bnNldHM7IH0KIApAQCAtODMsMTQgKzgyLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkoKSBjb25zdCB7IHJldHVybiBtX2lzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHk7IH0KICAgICBib29sIGFsbG93U2hyaW5rVG9G
aXQoKSBjb25zdCB7IHJldHVybiBtX2FsbG93U2hyaW5rVG9GaXQ7IH0KICAgICBib29sIGVuY2xv
c2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9lbmNsb3NlZElu
U2Nyb2xsYWJsZUFuY2VzdG9yVmlldzsgfQotCi0gICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAo
KSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGRvdWJsZSBob3Jpem9udGFsVmVs
b2NpdHkoKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxWZWxvY2l0eTsgfQotICAgIGRvdWJs
ZSB2ZXJ0aWNhbFZlbG9jaXR5KCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0aWNhbFZlbG9jaXR5OyB9
Ci0gICAgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVDaGFu
Z2VSYXRlOyB9Ci0KICAgICB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQ7IH0KIAorICAgIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxWZWxvY2l0eS5sYXN0
VXBkYXRlVGltZTsgfQorCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8mKTsKIApAQCAtMTA1LDEyICsxMDAsOSBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCBtX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0OyAvLyBXaGVuIHZpc3VhbCB2aWV3
cG9ydHMgYXJlIGVuYWJsZWQsIHRoaXMgaXMgdGhlIGxheW91dCB2aWV3cG9ydC4KICAgICBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCBtX29ic2N1cmVkSW5zZXRzOwogICAgIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50IG1fdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzOworICAgIFdlYkNvcmU6OlZlbG9j
aXR5RGF0YSBtX3Njcm9sbFZlbG9jaXR5OwogICAgIHVpbnQ2NF90IG1fbGFzdExheWVyVHJlZVRy
YW5zYWN0aW9uSUQgeyAwIH07CiAgICAgZG91YmxlIG1fc2NhbGUgeyAtMSB9OwotICAgIE1vbm90
b25pY1RpbWUgbV90aW1lc3RhbXA7Ci0gICAgZG91YmxlIG1faG9yaXpvbnRhbFZlbG9jaXR5IHsg
MCB9OwotICAgIGRvdWJsZSBtX3ZlcnRpY2FsVmVsb2NpdHkgeyAwIH07Ci0gICAgZG91YmxlIG1f
c2NhbGVDaGFuZ2VSYXRlIHsgMCB9OwogICAgIGJvb2wgbV9pblN0YWJsZVN0YXRlIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSB7IGZhbHNlIH07
CkBAIC0xMjksOSArMTIxLDcgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaXNpYmxl
Q29udGVudFJlY3RVcGRhdGVJbmZvJiBhLCBjb25zdCBWaXNpYmxlQ29udGUKICAgICAgICAgJiYg
YS5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpID09IGIuY3VzdG9tRml4ZWRQb3NpdGlvblJlY3Qo
KQogICAgICAgICAmJiBhLm9ic2N1cmVkSW5zZXRzKCkgPT0gYi5vYnNjdXJlZEluc2V0cygpCiAg
ICAgICAgICYmIGEudW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzKCkgPT0gYi51bm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHMoKQotICAgICAgICAmJiBhLmhvcml6b250YWxWZWxvY2l0eSgpID09IGIuaG9y
aXpvbnRhbFZlbG9jaXR5KCkKLSAgICAgICAgJiYgYS52ZXJ0aWNhbFZlbG9jaXR5KCkgPT0gYi52
ZXJ0aWNhbFZlbG9jaXR5KCkKLSAgICAgICAgJiYgYS5zY2FsZUNoYW5nZVJhdGUoKSA9PSBiLnNj
YWxlQ2hhbmdlUmF0ZSgpCisgICAgICAgICYmIGEuc2Nyb2xsVmVsb2NpdHkoKS5lcXVhbElnbm9y
aW5nVGltZXN0YW1wKGIuc2Nyb2xsVmVsb2NpdHkoKSkKICAgICAgICAgJiYgYS5pblN0YWJsZVN0
YXRlKCkgPT0gYi5pblN0YWJsZVN0YXRlKCkKICAgICAgICAgJiYgYS5pc0ZpcnN0VXBkYXRlRm9y
TmV3Vmlld1NpemUoKSA9PSBiLmlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSgpCiAgICAgICAg
ICYmIGEuYWxsb3dTaHJpbmtUb0ZpdCgpID09IGIuYWxsb3dTaHJpbmtUb0ZpdCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBkNGRlZjhl
OWY1OTZhNzY2NDUwOWJhMDdlMGU3YjE4NzdmMzFkYzc0Li5jOTg0YzRjOTlhYmI2ODgzMzExN2Y2
NGNiMGViYzAyMWE4ZDAwOGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTgxLDYgKzgxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Rp
bWluZ0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1ZlbG9jaXR5RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgpAQCAtOTIzLDYgKzkyNCwzNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRB
dHRyaWJ1dGVzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZpZXdwb3J0QXR0cmlidQogICAg
IHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46OmRlY29kZShk
ZWNvZGVyLCB2aWV3cG9ydEF0dHJpYnV0ZXMpOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8VmVs
b2NpdHlEYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZlbG9jaXR5RGF0YSYg
dmVsb2NpdHlEYXRhKQoreworICAgIGVuY29kZXIgPDwgdmVsb2NpdHlEYXRhLmhvcml6b250YWxW
ZWxvY2l0eSA8PCB2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSA8PCB2ZWxvY2l0eURhdGEu
c2NhbGVDaGFuZ2VSYXRlIDw8IHZlbG9jaXR5RGF0YS5sYXN0VXBkYXRlVGltZTsKK30KKworYm9v
bCBBcmd1bWVudENvZGVyPFZlbG9jaXR5RGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBW
ZWxvY2l0eURhdGEmIHZlbG9jaXR5RGF0YSkKK3sKKyAgICBmbG9hdCBob3Jpem9udGFsVmVsb2Np
dHk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShob3Jpem9udGFsVmVsb2NpdHkpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB2ZXJ0aWNhbFZlbG9jaXR5OworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUodmVydGljYWxWZWxvY2l0eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGZsb2F0IHNjYWxlQ2hhbmdlUmF0ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNj
YWxlQ2hhbmdlUmF0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE1vbm90b25pY1Rp
bWUgbGFzdFVwZGF0ZVRpbWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsYXN0VXBkYXRlVGlt
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHZlbG9jaXR5RGF0YS5ob3Jpem9udGFs
VmVsb2NpdHkgPSBob3Jpem9udGFsVmVsb2NpdHk7CisgICAgdmVsb2NpdHlEYXRhLnZlcnRpY2Fs
VmVsb2NpdHkgPSB2ZXJ0aWNhbFZlbG9jaXR5OworICAgIHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5n
ZVJhdGUgPSBzY2FsZUNoYW5nZVJhdGU7CisgICAgdmVsb2NpdHlEYXRhLmxhc3RVcGRhdGVUaW1l
ID0gbGFzdFVwZGF0ZVRpbWU7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBBcmd1bWVu
dENvZGVyPE1pbWVDbGFzc0luZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTWlt
ZUNsYXNzSW5mbyYgbWltZUNsYXNzSW5mbykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggZDg4MmZiNjhkODkxYWEyZWVjNzE3Y2Y0YTJhZjNi
MDQzYmYzMDJmMi4uZmI3NzMwNzE5YjY0MDU4ZjVmMmJjNDlhMGU5YTRhNzYyMWU0MWRjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEyNSw2
ICsxMjUsNyBAQCBzdHJ1Y3QgVGV4dEluZGljYXRvckRhdGE7CiAjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQogc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKICNlbmRpZgorc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
CiAgICAgCkBAIC0zMzQsNiArMzM1LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKIH07CiAKK3RlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VmVsb2NpdHlEYXRhPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWZWxvY2l0eURhdGEmKTsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZlbG9jaXR5RGF0YSYp
OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNaW1lQ2xh
c3NJbmZvPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpNaW1lQ2xhc3NJbmZvJik7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6Ok1pbWVDbGFz
c0luZm8+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCmluZGV4IDU1ZDgwY2E1NWRmYzU1NjU0NDI3OGY2MTAyY2RhYWY5ZDAx
NTAxYzAuLjU2YjQ1NjJjNzk2YTcxNGI5YTA5MzdkNjY4MjgxMzdiODhiNDY5MjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC02MCwxMDMgKzYw
LDEyIEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1F1aXJrcy5oPgorI2ltcG9y
dCA8V2ViQ29yZS9WZWxvY2l0eURhdGEuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQv
VGV4dFN0cmVhbS5oPgogCiAKLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1jbGFzcyBIaXN0b3JpY2FsVmVsb2Np
dHlEYXRhIHsKLXB1YmxpYzoKLSAgICBzdHJ1Y3QgVmVsb2NpdHlEYXRhIHsKLSAgICAgICAgVmVs
b2NpdHlEYXRhKCkKLSAgICAgICAgICAgIDogaG9yaXpvbnRhbFZlbG9jaXR5KDApCi0gICAgICAg
ICAgICAsIHZlcnRpY2FsVmVsb2NpdHkoMCkKLSAgICAgICAgICAgICwgc2NhbGVDaGFuZ2VSYXRl
KDApCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIFZlbG9jaXR5RGF0YShkb3VibGUg
aG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxvY2l0eSwgZG91YmxlIHNjYWxl
Q2hhbmdlUmF0ZSkKLSAgICAgICAgICAgIDogaG9yaXpvbnRhbFZlbG9jaXR5KGhvcml6b250YWxW
ZWxvY2l0eSkKLSAgICAgICAgICAgICwgdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbFZlbG9jaXR5
KQotICAgICAgICAgICAgLCBzY2FsZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2VSYXRlKQotICAgICAg
ICB7Ci0gICAgICAgIH0KLQotICAgICAgICBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5OwotICAg
ICAgICBkb3VibGUgdmVydGljYWxWZWxvY2l0eTsKLSAgICAgICAgZG91YmxlIHNjYWxlQ2hhbmdl
UmF0ZTsKLSAgICB9OwotCi0gICAgSGlzdG9yaWNhbFZlbG9jaXR5RGF0YSgpCi0gICAgICAgIDog
bV9oaXN0b3J5U2l6ZSgwKQotICAgICAgICAsIG1fbGF0ZXN0RGF0YUluZGV4KDApCi0gICAgewot
ICAgIH0KLQotICAgIFZlbG9jaXR5RGF0YSB2ZWxvY2l0eUZvck5ld0RhdGEoQ0dQb2ludCBuZXdQ
b3NpdGlvbiwgZG91YmxlIHNjYWxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKLSAgICB7Ci0g
ICAgICAgIC8vIER1ZSB0byBhbGwgdGhlIHNvdXJjZSBvZiByZWN0IHVwZGF0ZSwgdGhlIGlucHV0
IGlzIHZlcnkgbm9pc3kuIFRvIHNtb290aCB0aGUgb3V0cHV0LCB3ZSBhY2N1bXVsYXRlIGFsbCBj
aGFuZ2VzCi0gICAgICAgIC8vIHdpdGhpbiAxIGZyYW1lIGFzIGEgc2luZ2xlIHVwZGF0ZS4gTm8g
c3BlZWQgY29tcHV0YXRpb24gaXMgZXZlciBkb25lIG9uIGRhdGEgd2l0aGluIHRoZSBzYW1lIGZy
YW1lLgotICAgICAgICBjb25zdCBTZWNvbmRzIGZpbHRlcmluZ1RocmVzaG9sZCgxLjAgLyA2MCk7
Ci0KLSAgICAgICAgVmVsb2NpdHlEYXRhIHZlbG9jaXR5RGF0YTsKLSAgICAgICAgaWYgKG1faGlz
dG9yeVNpemUgPiAwKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBvbGRlc3REYXRhSW5kZXg7Ci0g
ICAgICAgICAgICB1bnNpZ25lZCBkaXN0YW5jZVRvTGFzdEhpc3RvcmljYWxEYXRhID0gbV9oaXN0
b3J5U2l6ZSAtIDE7Ci0gICAgICAgICAgICBpZiAoZGlzdGFuY2VUb0xhc3RIaXN0b3JpY2FsRGF0
YSA8PSBtX2xhdGVzdERhdGFJbmRleCkKLSAgICAgICAgICAgICAgICBvbGRlc3REYXRhSW5kZXgg
PSBtX2xhdGVzdERhdGFJbmRleCAtIGRpc3RhbmNlVG9MYXN0SGlzdG9yaWNhbERhdGE7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb2xkZXN0RGF0YUluZGV4ID0gbV9oaXN0b3J5
U2l6ZSAtIChkaXN0YW5jZVRvTGFzdEhpc3RvcmljYWxEYXRhIC0gbV9sYXRlc3REYXRhSW5kZXgp
OwotCi0gICAgICAgICAgICBTZWNvbmRzIHRpbWVEZWx0YSA9IHRpbWVzdGFtcCAtIG1faGlzdG9y
eVtvbGRlc3REYXRhSW5kZXhdLnRpbWVzdGFtcDsKLSAgICAgICAgICAgIGlmICh0aW1lRGVsdGEg
PiBmaWx0ZXJpbmdUaHJlc2hvbGQpIHsKLSAgICAgICAgICAgICAgICBEYXRhJiBvbGRlc3REYXRh
ID0gbV9oaXN0b3J5W29sZGVzdERhdGFJbmRleF07Ci0gICAgICAgICAgICAgICAgdmVsb2NpdHlE
YXRhID0gVmVsb2NpdHlEYXRhKChuZXdQb3NpdGlvbi54IC0gb2xkZXN0RGF0YS5wb3NpdGlvbi54
KSAvIHRpbWVEZWx0YS5zZWNvbmRzKCksIChuZXdQb3NpdGlvbi55IC0gb2xkZXN0RGF0YS5wb3Np
dGlvbi55KSAvIHRpbWVEZWx0YS5zZWNvbmRzKCksIChzY2FsZSAtIG9sZGVzdERhdGEuc2NhbGUp
IC8gdGltZURlbHRhLnNlY29uZHMoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAg
ICAgICBTZWNvbmRzIHRpbWVTaW5jZUxhc3RBcHBlbmQgPSB0aW1lc3RhbXAgLSBtX2xhc3RBcHBl
bmRUaW1lc3RhbXA7Ci0gICAgICAgIGlmICh0aW1lU2luY2VMYXN0QXBwZW5kID4gZmlsdGVyaW5n
VGhyZXNob2xkKQotICAgICAgICAgICAgYXBwZW5kKG5ld1Bvc2l0aW9uLCBzY2FsZSwgdGltZXN0
YW1wKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9oaXN0b3J5W21fbGF0ZXN0RGF0YUlu
ZGV4XSA9IHsgdGltZXN0YW1wLCBuZXdQb3NpdGlvbiwgc2NhbGUgfTsKLSAgICAgICAgcmV0dXJu
IHZlbG9jaXR5RGF0YTsKLSAgICB9Ci0KLSAgICB2b2lkIGNsZWFyKCkgeyBtX2hpc3RvcnlTaXpl
ID0gMDsgfQotCi1wcml2YXRlOgotICAgIHZvaWQgYXBwZW5kKENHUG9pbnQgbmV3UG9zaXRpb24s
IGRvdWJsZSBzY2FsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCi0gICAgewotICAgICAgICBt
X2xhdGVzdERhdGFJbmRleCA9IChtX2xhdGVzdERhdGFJbmRleCArIDEpICUgbWF4SGlzdG9yeURl
cHRoOwotICAgICAgICBtX2hpc3RvcnlbbV9sYXRlc3REYXRhSW5kZXhdID0geyB0aW1lc3RhbXAs
IG5ld1Bvc2l0aW9uLCBzY2FsZSB9OwotCi0gICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX2hpc3Rv
cnlTaXplICsgMTsKLSAgICAgICAgaWYgKHNpemUgPD0gbWF4SGlzdG9yeURlcHRoKQotICAgICAg
ICAgICAgbV9oaXN0b3J5U2l6ZSA9IHNpemU7Ci0KLSAgICAgICAgbV9sYXN0QXBwZW5kVGltZXN0
YW1wID0gdGltZXN0YW1wOwotICAgIH0KLQotCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1h
eEhpc3RvcnlEZXB0aCA9IDM7Ci0KLSAgICB1bnNpZ25lZCBtX2hpc3RvcnlTaXplOwotICAgIHVu
c2lnbmVkIG1fbGF0ZXN0RGF0YUluZGV4OwotICAgIE1vbm90b25pY1RpbWUgbV9sYXN0QXBwZW5k
VGltZXN0YW1wOwotCi0gICAgc3RydWN0IERhdGEgewotICAgICAgICBNb25vdG9uaWNUaW1lIHRp
bWVzdGFtcDsKLSAgICAgICAgQ0dQb2ludCBwb3NpdGlvbjsKLSAgICAgICAgZG91YmxlIHNjYWxl
OwotICAgIH0gbV9oaXN0b3J5W21heEhpc3RvcnlEZXB0aF07Ci19OwotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KIEBpbnRlcmZhY2UgV0tJbnNwZWN0b3JJbmRpY2F0aW9uVmlldyA6IFVJVmlldwog
QGVuZAogCkBAIC0yMjMsNyArMTMyLDcgQEAgQGltcGxlbWVudGF0aW9uIFdLQ29udGVudFZpZXcg
ewogICAgIFJldGFpblB0cjxfVUlMYXllckhvc3RWaWV3PiBfdmlzaWJpbGl0eVByb3BhZ2F0aW9u
VmlldzsKICNlbmRpZgogCi0gICAgV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhIF9oaXN0
b3JpY2FsS2luZW1hdGljRGF0YTsKKyAgICBXZWJDb3JlOjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRh
IF9oaXN0b3JpY2FsS2luZW1hdGljRGF0YTsKIAogICAgIFJldGFpblB0cjxOU1VuZG9NYW5hZ2Vy
PiBfdW5kb01hbmFnZXI7CiAgICAgUmV0YWluUHRyPFdLUXVpcmt5TlNVbmRvTWFuYWdlcj4gX3F1
aXJreVVuZG9NYW5hZ2VyOwpAQCAtNDYzLDExICszNzIsMTMgQEAgLSAodm9pZClkaWRVcGRhdGVW
aXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVDb250ZW50UmVjdAogICAgICAgICByZXR1cm47CiAK
ICAgICBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotICAg
IFdlYktpdDo6SGlzdG9yaWNhbFZlbG9jaXR5RGF0YTo6VmVsb2NpdHlEYXRhIHZlbG9jaXR5RGF0
YTsKKyAgICBXZWJDb3JlOjpWZWxvY2l0eURhdGEgdmVsb2NpdHlEYXRhOwogICAgIGlmICghaXNT
dGFibGVTdGF0ZSkKICAgICAgICAgdmVsb2NpdHlEYXRhID0gX2hpc3RvcmljYWxLaW5lbWF0aWNE
YXRhLnZlbG9jaXR5Rm9yTmV3RGF0YSh2aXNpYmxlQ29udGVudFJlY3Qub3JpZ2luLCB6b29tU2Nh
bGUsIHRpbWVzdGFtcCk7Ci0gICAgZWxzZQorICAgIGVsc2UgewogICAgICAgICBfaGlzdG9yaWNh
bEtpbmVtYXRpY0RhdGEuY2xlYXIoKTsKKyAgICAgICAgdmVsb2NpdHlEYXRhID0geyAwLCAwLCAw
LCB0aW1lc3RhbXAgfTsKKyAgICB9CiAKICAgICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkoKTsKIApAQCAtNDg5LDEwICs0MDAsNyBAQCAtICh2b2lkKWRpZFVwZGF0ZVZp
c2libGVSZWN0OihDR1JlY3QpdmlzaWJsZUNvbnRlbnRSZWN0CiAgICAgICAgIGlzQ2hhbmdpbmdP
YnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksCiAgICAgICAgIF93ZWJWaWV3Ll9hbGxvd3NWaWV3
cG9ydFNocmlua1RvRml0LAogICAgICAgICBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmll
dywKLSAgICAgICAgdGltZXN0YW1wLAotICAgICAgICB2ZWxvY2l0eURhdGEuaG9yaXpvbnRhbFZl
bG9jaXR5LAotICAgICAgICB2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSwKLSAgICAgICAg
dmVsb2NpdHlEYXRhLnNjYWxlQ2hhbmdlUmF0ZSwKKyAgICAgICAgdmVsb2NpdHlEYXRhLAogICAg
ICAgICBkb3duY2FzdDxXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk+KCpk
cmF3aW5nQXJlYSkubGFzdENvbW1pdHRlZExheWVyVHJlZVRyYW5zYWN0aW9uSUQoKSk7CiAKICAg
ICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tDb250ZW50Vmll
dyBkaWRVcGRhdGVWaXNpYmxlUmVjdF0iIDw8IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8u
ZHVtcCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KaW5kZXggYzExOWQ0ZjEyNDdlZjY1YzZiODhkYWNlZGNjYjdlODFlNzFlMmZi
MC4uMzgxN2JlMjM1ZGQ2NDRlMmNlNmI3NDljMWRkMzliZjI4NTIwODhlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTMx
MTYsNyArMzExNiw3IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShj
b25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXCiAgICAgICAgIG5ld0V4cG9z
ZWRDb250ZW50UmVjdC5tb3ZlQnkoYWRqdXN0bWVudERlbHRhKTsKICAgICB9CiAKLSAgICBmcmFt
ZVZpZXcuc2V0U2Nyb2xsVmVsb2NpdHkoMCwgMCwgMCwgTW9ub3RvbmljVGltZTo6bm93KCkpOwor
ICAgIGZyYW1lVmlldy5zZXRTY3JvbGxWZWxvY2l0eSh7IDAsIDAsIDAsIE1vbm90b25pY1RpbWU6
Om5vdygpIH0pOwogCiAgICAgSW50UG9pbnQgcm91bmRlZFVub2JzY3VyZWRDb250ZW50UmVjdFBv
c2l0aW9uID0gcm91bmRlZEludFBvaW50KG5ld1Vub2JzY3VyZWRDb250ZW50UmVjdC5sb2NhdGlv
bigpKTsKICAgICBmcmFtZVZpZXcuc2V0VW5vYnNjdXJlZENvbnRlbnRTaXplKG5ld1Vub2JzY3Vy
ZWRDb250ZW50UmVjdC5zaXplKCkpOwpAQCAtMzI4OSw3ICszMjg5LDcgQEAgdm9pZCBXZWJQYWdl
Ojp2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKFpvb21Ub0luaXRpYWxTY2FsZSB6b29tVG9J
bml0aWFsU2NhbGUKICAgICAgICAgbWluaW11bUxheW91dFNpemVJblNjcm9sbFZpZXdDb29yZGlu
YXRlcy5zY2FsZSgxIC8gc2NhbGUpOwogICAgICAgICBJbnRTaXplIG1pbmltdW1MYXlvdXRTaXpl
SW5Eb2N1bWVudENvb3JkaW5hdGVzID0gcm91bmRlZEludFNpemUobWluaW11bUxheW91dFNpemVJ
blNjcm9sbFZpZXdDb29yZGluYXRlcyk7CiAgICAgICAgIGZyYW1lVmlldy5zZXRVbm9ic2N1cmVk
Q29udGVudFNpemUobWluaW11bUxheW91dFNpemVJbkRvY3VtZW50Q29vcmRpbmF0ZXMpOwotICAg
ICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsVmVsb2NpdHkoMCwgMCwgMCwgTW9ub3RvbmljVGltZTo6
bm93KCkpOworICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsVmVsb2NpdHkoeyAwLCAwLCAwLCBN
b25vdG9uaWNUaW1lOjpub3coKSB9KTsKIAogICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgc2Vu
ZCBkb3duIHRoZSBvYnNjdXJlZCBtYXJnaW5zIHRvIGZpbmQgYSBiZXR0ZXIgZXhwb3NlZCByZWN0
IGFuZCB1bm9ic2N1cmVkIHJlY3QuCiAgICAgICAgIC8vIEl0IGlzIG5vdCBhIGJpZyBkZWFsIGF0
IHRoZSBtb21lbnQgYmVjYXVzZSB0aGUgdGlsZSBjb3ZlcmFnZSB3aWxsIGFsd2F5cyBleHRlbmQg
cGFzdCB0aGUgb2JzY3VyZWQgYm90dG9tIGluc2V0LgpAQCAtMzM2MCwxNSArMzM2MCwxNSBAQCB2
b2lkIFdlYlBhZ2U6OmFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCkKICAgICAgICAgbV9wYWdl
LT5hcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQg
YWRqdXN0VmVsb2NpdHlEYXRhRm9yQm91bmRlZFNjYWxlKGRvdWJsZSYgaG9yaXpvbnRhbFZlbG9j
aXR5LCBkb3VibGUmIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSYgc2NhbGVDaGFuZ2VSYXRlLCBk
b3VibGUgZXhwb3NlZFJlY3RTY2FsZSwgZG91YmxlIG1pbmltdW1TY2FsZSwgZG91YmxlIG1heGlt
dW1TY2FsZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RWZWxvY2l0eURhdGFGb3JCb3VuZGVk
U2NhbGUoVmVsb2NpdHlEYXRhJiB2ZWxvY2l0eURhdGEsIGRvdWJsZSBleHBvc2VkUmVjdFNjYWxl
LCBkb3VibGUgbWluaW11bVNjYWxlLCBkb3VibGUgbWF4aW11bVNjYWxlKQogewotICAgIGlmIChz
Y2FsZUNoYW5nZVJhdGUpIHsKLSAgICAgICAgaG9yaXpvbnRhbFZlbG9jaXR5ID0gMDsKLSAgICAg
ICAgdmVydGljYWxWZWxvY2l0eSA9IDA7CisgICAgaWYgKHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5n
ZVJhdGUpIHsKKyAgICAgICAgdmVsb2NpdHlEYXRhLmhvcml6b250YWxWZWxvY2l0eSA9IDA7Cisg
ICAgICAgIHZlbG9jaXR5RGF0YS52ZXJ0aWNhbFZlbG9jaXR5ID0gMDsKICAgICB9CiAKICAgICBp
ZiAoZXhwb3NlZFJlY3RTY2FsZSA+PSBtYXhpbXVtU2NhbGUgfHwgZXhwb3NlZFJlY3RTY2FsZSA8
PSBtaW5pbXVtU2NhbGUpCi0gICAgICAgIHNjYWxlQ2hhbmdlUmF0ZSA9IDA7CisgICAgICAgIHZl
bG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUgPSAwOwogfQogCiBPcHRpb25hbDxmbG9hdD4gV2Vi
UGFnZTo6c2NhbGVGcm9tVUlQcm9jZXNzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8mIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8pIGNvbnN0CkBAIC0zNDc2LDEyICszNDc2
LDkgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2kKICAgICBtX3BhZ2UtPnNldFVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cyh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnVub2JzY3VyZWRTYWZl
QXJlYUluc2V0cygpKTsKICAgICBtX3BhZ2UtPnNldEVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0
b3JWaWV3KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uZW5jbG9zZWRJblNjcm9sbGFibGVB
bmNlc3RvclZpZXcoKSk7CiAKLSAgICBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5ID0gdmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5ob3Jpem9udGFsVmVsb2NpdHkoKTsKLSAgICBkb3VibGUg
dmVydGljYWxWZWxvY2l0eSA9IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8udmVydGljYWxW
ZWxvY2l0eSgpOwotICAgIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUgPSB2aXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvLnNjYWxlQ2hhbmdlUmF0ZSgpOwotICAgIGFkanVzdFZlbG9jaXR5RGF0YUZv
ckJvdW5kZWRTY2FsZShob3Jpem9udGFsVmVsb2NpdHksIHZlcnRpY2FsVmVsb2NpdHksIHNjYWxl
Q2hhbmdlUmF0ZSwgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5zY2FsZSgpLCBtX3ZpZXdw
b3J0Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24u
bWF4aW11bVNjYWxlKCkpOwotCi0gICAgZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KGhvcml6
b250YWxWZWxvY2l0eSwgdmVydGljYWxWZWxvY2l0eSwgc2NhbGVDaGFuZ2VSYXRlLCB2aXNpYmxl
Q29udGVudFJlY3RVcGRhdGVJbmZvLnRpbWVzdGFtcCgpKTsKKyAgICBWZWxvY2l0eURhdGEgc2Ny
b2xsVmVsb2NpdHkgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnNjcm9sbFZlbG9jaXR5
KCk7CisgICAgYWRqdXN0VmVsb2NpdHlEYXRhRm9yQm91bmRlZFNjYWxlKHNjcm9sbFZlbG9jaXR5
LCB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnNjYWxlKCksIG1fdmlld3BvcnRDb25maWd1
cmF0aW9uLm1pbmltdW1TY2FsZSgpLCBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5tYXhpbXVtU2Nh
bGUoKSk7CisgICAgZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KHNjcm9sbFZlbG9jaXR5KTsK
IAogICAgIGlmIChtX2lzSW5TdGFibGVTdGF0ZSkgewogICAgICAgICBpZiAodmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mby51bm9ic2N1cmVkQ29udGVudFJlY3QoKSAhPSB2aXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvLnVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdC
b3VuZHMoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370660</attachid>
            <date>2019-05-26 16:47:22 -0700</date>
            <delta_ts>2019-05-26 17:32:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198261-20190526164721.patch</filename>
            <type>text/plain</type>
            <size>44302</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdkNzI2OTg3NzMwMTli
Mjk0MTU3NDljMTM5MGNkOTljYzIzNDZlYS4uZWFlMWEzNDU2NDlmYTgyYzI5Y2NlMWEzOWUwYWIz
YjgwYjYwOWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA1LTI2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgVmVsb2Np
dHlEYXRhIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5ODI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgVmVsb2NpdHlEYXRhIGFuZCBIaXN0b3JpY2FsVmVsb2NpdHlEYXRhIHRv
IFdlYkNvcmUgZm9yIGZ1dHVyZSB1c2UgaW4gb3ZlcmZsb3cgc2Nyb2xsLgorICAgICAgICAKKyAg
ICAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyBjYW4gbm93IHN0b3JlIGEgVmVsb2Np
dHlEYXRhIChpdHMgdGltZXN0YW1wIGlzIHVzZWQgYXMKKyAgICAgICAgdGhlIHRpbWV0YW1wIGZv
ciB0aGUgZW50aXJlIHVwZGF0ZSkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxWZWxvY2l0
eSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9UaWxlZEJhY2tpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZlbG9jaXR5RGF0YTo6VmVs
b2NpdHlEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZlbG9jaXR5RGF0YTo6dmVs
b2NpdHlPclNjYWxlSXNDaGFuZ2luZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGls
ZUNvbnRyb2xsZXI6OmFkanVzdFRpbGVDb3ZlcmFnZVJlY3QgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmg6CisKIDIwMTktMDUtMjYgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgR3JhcGhp
Y3NMYXllcjo6VHlwZSBmb3IgU2Nyb2xsZWRDb250ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MDBiZGRjZWYx
MzkyMGU0YmE3M2ZmZjM4YmQ3ZTY0NzdjM2VjMTVkLi5hNGFjNmQyMGNiYmNmZDRiYmNlMjY5NmI2
Y2FhNTE5ODJlMDczYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA1LTI2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgVmVs
b2NpdHlEYXRhIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5ODI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmUgVmVsb2NpdHlEYXRhIGFuZCBIaXN0b3JpY2FsVmVsb2NpdHlEYXRh
IHRvIFdlYkNvcmUgZm9yIGZ1dHVyZSB1c2UgaW4gb3ZlcmZsb3cgc2Nyb2xsLgorCisgICAgICAg
IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gY2FuIG5vdyBzdG9yZSBhIFZlbG9jaXR5RGF0
YSAoaXRzIHRpbWVzdGFtcCBpcyB1c2VkIGFzCisgICAgICAgIHRoZSB0aW1ldGFtcCBmb3IgdGhl
IGVudGlyZSB1cGRhdGUpLgorCisgICAgICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oOgorICAgICAgICAoV2Vi
S2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6
c2Nyb2xsVmVsb2NpdHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvOjplbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldyBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OnRpbWVzdGFtcCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViS2l0OjpW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpob3Jpem9udGFsVmVsb2NpdHkgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjp2
ZXJ0aWNhbFZlbG9jaXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6c2NhbGVDaGFuZ2VSYXRlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxWZWxvY2l0eURhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPFZlbG9jaXR5RGF0YT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1
bm9ic2N1cmVkUmVjdDpjb250ZW50SW5zZXRzOnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29v
cmRpbmF0ZXM6b2JzY3VyZWRJbnNldHM6dW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzOmlucHV0Vmll
d0JvdW5kczpzY2FsZTptaW5pbXVtU2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5naW5nT2JzY3Vy
ZWRJbnNldHNJbnRlcmFjdGl2ZWx5OmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3Ol0p
OgorICAgICAgICAoV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpWZWxvY2l0eURhdGE6
OlZlbG9jaXR5RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Okhpc3RvcmljYWxWZWxv
Y2l0eURhdGE6Okhpc3RvcmljYWxWZWxvY2l0eURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjp2ZWxvY2l0eUZvck5ld0RhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpjbGVhcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Okhpc3RvcmljYWxWZWxvY2l0eURhdGE6OmFwcGVuZCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OmFkanVzdFZlbG9jaXR5RGF0YUZvckJvdW5kZWRTY2FsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMpOgorCiAyMDE5
LTA1LTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjQ1NzE1PykgW1dLMl0gTGF5b3V0IFRlc3QgaHR0cC93cHQvY2FjaGUtc3RvcmFn
ZS9jYWNoZS1zdG9yYWdlLW5ldHdvcmtwcm9jZXNzLWNyYXNoLmh0bWwgaXMgYSBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjMmM3YzIyNDllM2YxZWMwNzE2NGE5MzA5ODY1YjU3
NTgyMzI4OTEzLi4yYjY2Njc2N2NlYzg0OWViNDFjNDcyYmM3OGJjYmE3YWJlZjAwMGZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEwODksNiArMTA4OSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1dpZHRoQ2FjaGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dpbmRSdWxlLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggY2EyNDhmM2ViYTYxNDRlZDQ2ODE1NzQ0M2I3MDdiZTcyYTQyM2Q1OC4u
MmUyY2ZkMTQxMDk4MTNhYjUxMDAxN2ExMjJjMWZhZjAwMjAxZjMzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE3NzksNiArMTc3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9T
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0
UnVuLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvVmVsb2NpdHlEYXRhLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9y
LmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggY2VlMGQ0YzBhNWI4MDkxYzBhMzIxYjJjZmMwZDZkNzQyOTQzY2ZlNS4uOTJm
ODJlZmJjNjQ0YWU5YzdmMDUxYTYxY2Y5ODZhYjZlNjY3NzhmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjkyLDYgKzI5Miw3
IEBACiAJCTBGMTVEQThBMEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYxNURBODkwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
LmggKi87IH07CiAJCTBGMTVFRDVDMUI3RUM3QzUwMEVEREZFQiAvKiBXaWxsQ2hhbmdlRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNUVENUEx
QjdFQzdDNTAwRURERkVCIC8qIFdpbGxDaGFuZ2VEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxNzc0ODAxMzc4Qjc3MjAwOURBNzZBIC8q
IFNjcm9sbEFuaW1hdG9ySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjE3NzQ3RTEzNzhCNzcxMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1Mu
aCAqLzsgfTsKKwkJMEYxQTBDMzgyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQTBDMzYyMjlB
NDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMzdGMDg1MjIwMkJGOTgwMEE4OUMwQiAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3RjA4NDIyMDJBQ0I3MDBBODlDMEIgLyogU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0RENDUwMTJGNUVBMUIwMDBEOTE5MCAv
KiBTaGFkb3dCbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjNERDQ0RTEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oICovOyB9OwogCQkw
RjNGMEU1QTE1NzAzMEMzMDA2REE1N0YgLyogUmVuZGVyR2VvbWV0cnlNYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0YwRTU4MTU3MDMwQzMwMDZE
QTU3RiAvKiBSZW5kZXJHZW9tZXRyeU1hcC5oICovOyB9OwpAQCAtNTYyOCw2ICs1NjI5LDcgQEAK
IAkJMEYxNUVENUExQjdFQzdDNTAwRURERkVCIC8qIFdpbGxDaGFuZ2VEYXRhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbGxDaGFuZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMTc3NDdFMTM3OEI3NzEwMDlEQTc2QSAvKiBTY3JvbGxBbmltYXRv
cklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvcklP
Uy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE3NzQ3RjEzNzhCNzcyMDA5REE3
NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTY3JvbGxBbmltYXRvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWZWxvY2l0eURhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYyNkE3QTcyMDU0QzIyNzAwOTBBMTQxIC8qIFRlbXBsYXRlQ29udGVu
dERvY3VtZW50RnJhZ21lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGMjZBN0E5MjA1NEMzQ0YwMDkwQTE0MSAvKiBIVE1MQkRJRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQkRJRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjZBN0FBMjA1NEVDNUEwMDkwQTE0
MSAvKiBIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRNTFVua25vd25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTU2OTksNiArNTcwMSw3IEBACiAJCTBGNTgwRkExMTQ5NjkzOTEwMEZCNUJEOCAvKiBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU4
MEZBMjE0OTY5MzkxMDBGQjVCRDggLyogV2ViVGlsZWRCYWNraW5nTGF5ZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJUaWxlZEJhY2tpbmdMYXllci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8q
IEFuaW1hdGlvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
bmltYXRpb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1QTU3
Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBWZWxvY2l0eURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1
MjEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVu
ZGVyRW1iZWRkZWRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyRW1iZWRkZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RTIw
MDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NTMwLDYgKzI0NTMzLDggQEAKIAkJCQkwNzZF
MTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCiAJCQkJQkU5
MTNEN0YxODFFRjhFNTAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAqLywKIAkJCQlFNEFG
Q0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAorCQkJCTBGNUE1N0NBMjI5
QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAorCQkJCTBGMUEwQzM2MjI5QTQ4
MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKIAkJCQkwNzVCQTg0NzIwNjE4QUE1MDBG
Q0I0QUQgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUEx
NzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMTQxMURDQjAx
NjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKQEAgLTMxOTI4LDYgKzMxOTMzLDcg
QEAKIAkJCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1Qzc3MDhEMTAwRDNDNkIwMDVCQTI2NyAvKiBWYWxp
ZGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBBRjEyQjAyNkY3MDBDMUEzNTkg
LyogVmVjdG9yTWF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxQTBDMzgyMjlBNDgxODAwRDM3
QURCIC8qIFZlbG9jaXR5RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAx
MDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTJCMEQ0QzAxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzRkJDNEFGNDE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGZjZGVmMGNjZTJmZmVmNzVhYmRmZDM5Zjk3NmYzZjY0YTNmMjk0MmUu
LjA4YjA4MTRmYTBiOWRiMzI2OWUzYWJjMmY0ODQ3NWM5MTZjMjhiNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTk5LDYgKzk5LDcgQEAKICNpbmNsdWRlICJTdHlsZVNjb3BlLmgi
CiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2lu
Zy5oIgorI2luY2x1ZGUgIlZlbG9jaXR5RGF0YS5oIgogI2luY2x1ZGUgIlZpc3VhbFZpZXdwb3J0
LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgpAQCAtNTA1MSwxMCArNTA1MiwxMCBAQCB2b2lkIEZyYW1lVmlldzo6
c2V0Q3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50KEludFNpemUgY3VzdG9tU2l6ZSkKICAgICBzZW5k
UmVzaXplRXZlbnRJZk5lZWRlZCgpOwogfQogCi12b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsVmVs
b2NpdHkoZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHks
IGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQordm9pZCBG
cmFtZVZpZXc6OnNldFNjcm9sbFZlbG9jaXR5KGNvbnN0IFZlbG9jaXR5RGF0YSYgdmVsb2NpdHlE
YXRhKQogewogICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVk
QmFja2luZygpKQotICAgICAgICB0aWxlZEJhY2tpbmctPnNldFZlbG9jaXR5KFZlbG9jaXR5RGF0
YShob3Jpem9udGFsVmVsb2NpdHksIHZlcnRpY2FsVmVsb2NpdHksIHNjYWxlQ2hhbmdlUmF0ZSwg
dGltZXN0YW1wKSk7CisgICAgICAgIHRpbGVkQmFja2luZy0+c2V0VmVsb2NpdHkodmVsb2NpdHlE
YXRhKTsKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAppbmRleCBkMzZlNTY1NjQ1YzM3OTRlNmE4NTEzMTc4ZDZlZGJmZjBjZmRiOWU4Li4z
OTAzMDFmMzc1ODcxYzE1NDMwNmQ4M2MzYjk4ZTU3ZDNmNDczMjI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgSW50U2l6ZSBjdXN0b21T
aXplRm9yUmVzaXplRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbVNpemVGb3JSZXNpemVF
dmVudDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3VzdG9tU2l6ZUZvclJlc2l6ZUV2
ZW50KEludFNpemUpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxWZWxvY2l0
eShkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxvY2l0eSwgZG91
YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsVmVsb2NpdHkoY29uc3QgVmVsb2NpdHlEYXRhJik7CiAj
ZWxzZQogICAgIGJvb2wgdXNlQ3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3QoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RpbGVkQmFja2luZy5oCmluZGV4IDQ0NDM4N2M3MzdiNTE5ZTNjNTA5OWQ2ZmE5ZTlk
N2IzNmVhMzU1Y2MuLjUyNWM0ZjNhNjc1ODlhMGJjZjYwYTM4YTBhZjc2ZjE0NDFjZGVmNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBA
IC00MSw2ICs0MSw3IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJ
bnRTaXplOwogY2xhc3MgUGxhdGZvcm1DQUxheWVyOworc3RydWN0IFZlbG9jaXR5RGF0YTsKIAog
ZW51bSBTY3JvbGxpbmdNb2RlSW5kaWNhdGlvbiB7CiAgICAgU3luY2hyb25vdXNTY3JvbGxpbmdC
ZWNhdXNlT2ZMYWNrT2ZTY3JvbGxpbmdDb29yZGluYXRvckluZGljYXRpb24sCkBAIC00OSwyNiAr
NTAsNiBAQCBlbnVtIFNjcm9sbGluZ01vZGVJbmRpY2F0aW9uIHsKICAgICBBc3luY1Njcm9sbGlu
Z0luZGljYXRpb24KIH07CiAKLXN0cnVjdCBWZWxvY2l0eURhdGEgIHsKLSAgICBkb3VibGUgaG9y
aXpvbnRhbFZlbG9jaXR5OwotICAgIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5OwotICAgIGRvdWJs
ZSBzY2FsZUNoYW5nZVJhdGU7Ci0gICAgTW9ub3RvbmljVGltZSBsYXN0VXBkYXRlVGltZTsKLSAg
ICAKLSAgICBWZWxvY2l0eURhdGEoZG91YmxlIGhvcml6b250YWwgPSAwLCBkb3VibGUgdmVydGlj
YWwgPSAwLCBkb3VibGUgc2NhbGVDaGFuZ2UgPSAwLCBNb25vdG9uaWNUaW1lIHVwZGF0ZVRpbWUg
PSBNb25vdG9uaWNUaW1lKCkpCi0gICAgICAgIDogaG9yaXpvbnRhbFZlbG9jaXR5KGhvcml6b250
YWwpCi0gICAgICAgICwgdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbCkKLSAgICAgICAgLCBzY2Fs
ZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2UpCi0gICAgICAgICwgbGFzdFVwZGF0ZVRpbWUodXBkYXRl
VGltZSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIGJvb2wgdmVsb2NpdHlPclNjYWxlSXNDaGFu
Z2luZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFZlbG9jaXR5IHx8
IHZlcnRpY2FsVmVsb2NpdHkgfHwgc2NhbGVDaGFuZ2VSYXRlOwotICAgIH0KLX07Ci0KIGNsYXNz
IFRpbGVkQmFja2luZyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGlsZWRCYWNraW5nKCkgPSBk
ZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmVs
b2NpdHlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5
RGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIwNTI5ZGY4NTBjZDNjZGQ0YzE3YWIxNDI1YWQ3NmQ1OTE5
YzUxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1ZlbG9jaXR5RGF0YS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJWZWxvY2l0eURhdGEuaCIKKworI2luY2x1ZGUgPHd0Zi90
ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBWZWxvY2l0eURhdGEmIHZlbG9jaXR5RGF0
YSkKK3sKKyAgICB0cy5kdW1wUHJvcGVydHkoInRpbWVzdGFtcCIsIHZlbG9jaXR5RGF0YS5sYXN0
VXBkYXRlVGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIGlmICh2ZWxvY2l0
eURhdGEuaG9yaXpvbnRhbFZlbG9jaXR5KQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoImhvcml6
b250YWxWZWxvY2l0eSIsIHZlbG9jaXR5RGF0YS5ob3Jpem9udGFsVmVsb2NpdHkpOworICAgIGlm
ICh2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5
KCJ2ZXJ0aWNhbFZlbG9jaXR5IiwgdmVsb2NpdHlEYXRhLnZlcnRpY2FsVmVsb2NpdHkpOworICAg
IGlmICh2ZWxvY2l0eURhdGEuc2NhbGVDaGFuZ2VSYXRlKQorICAgICAgICB0cy5kdW1wUHJvcGVy
dHkoInNjYWxlQ2hhbmdlUmF0ZSIsIHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUpOworCisg
ICAgcmV0dXJuIHRzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiYmUy
OWFkMTU3MTgzNzY3MjFhN2UwN2QzNTdhNjEwYzQ3NTVhMDcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuaApAQCAtMCwwICsx
LDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUZXh0U3RyZWFtOworfQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBWZWxvY2l0eURhdGEgIHsKKyAgICBmbG9hdCBo
b3Jpem9udGFsVmVsb2NpdHkgeyAwIH07CisgICAgZmxvYXQgdmVydGljYWxWZWxvY2l0eSB7IDAg
fTsKKyAgICBmbG9hdCBzY2FsZUNoYW5nZVJhdGUgeyAwIH07CisgICAgTW9ub3RvbmljVGltZSBs
YXN0VXBkYXRlVGltZTsKKyAgICAKKyAgICBWZWxvY2l0eURhdGEoZmxvYXQgaG9yaXpvbnRhbCA9
IDAsIGZsb2F0IHZlcnRpY2FsID0gMCwgZmxvYXQgc2NhbGVDaGFuZ2UgPSAwLCBNb25vdG9uaWNU
aW1lIHVwZGF0ZVRpbWUgPSBNb25vdG9uaWNUaW1lKCkpCisgICAgICAgIDogaG9yaXpvbnRhbFZl
bG9jaXR5KGhvcml6b250YWwpCisgICAgICAgICwgdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbCkK
KyAgICAgICAgLCBzY2FsZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2UpCisgICAgICAgICwgbGFzdFVw
ZGF0ZVRpbWUodXBkYXRlVGltZSkKKyAgICB7CisgICAgfQorICAgIAorICAgIGJvb2wgdmVsb2Np
dHlPclNjYWxlSXNDaGFuZ2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gaG9yaXpv
bnRhbFZlbG9jaXR5IHx8IHZlcnRpY2FsVmVsb2NpdHkgfHwgc2NhbGVDaGFuZ2VSYXRlOworICAg
IH0KKyAgICAKKyAgICBib29sIGVxdWFsSWdub3JpbmdUaW1lc3RhbXAoY29uc3QgVmVsb2NpdHlE
YXRhJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBob3Jpem9udGFsVmVsb2Np
dHkgPT0gb3RoZXIuaG9yaXpvbnRhbFZlbG9jaXR5CisgICAgICAgICAgICAmJiB2ZXJ0aWNhbFZl
bG9jaXR5ID09IG90aGVyLnZlcnRpY2FsVmVsb2NpdHkKKyAgICAgICAgICAgICYmIHNjYWxlQ2hh
bmdlUmF0ZSA9PSBvdGhlci5zY2FsZUNoYW5nZVJhdGU7CisgICAgfQorfTsKKworV0VCQ09SRV9F
WFBPUlQgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgY29uc3QgVmVsb2NpdHlE
YXRhJik7CisKK2NsYXNzIEhpc3RvcmljYWxWZWxvY2l0eURhdGEgeworcHVibGljOgorICAgIEhp
c3RvcmljYWxWZWxvY2l0eURhdGEoKSA9IGRlZmF1bHQ7CisKKyAgICBWZWxvY2l0eURhdGEgdmVs
b2NpdHlGb3JOZXdEYXRhKEZsb2F0UG9pbnQgbmV3UG9zaXRpb24sIGRvdWJsZSBzY2FsZSwgTW9u
b3RvbmljVGltZSB0aW1lc3RhbXApCisgICAgeworICAgICAgICAvLyBEdWUgdG8gYWxsIHRoZSBz
b3VyY2Ugb2YgcmVjdCB1cGRhdGUsIHRoZSBpbnB1dCBpcyB2ZXJ5IG5vaXN5LiBUbyBzbW9vdGgg
dGhlIG91dHB1dCwgd2UgYWNjdW11bGF0ZSBhbGwgY2hhbmdlcworICAgICAgICAvLyB3aXRoaW4g
MSBmcmFtZSBhcyBhIHNpbmdsZSB1cGRhdGUuIE5vIHNwZWVkIGNvbXB1dGF0aW9uIGlzIGV2ZXIg
ZG9uZSBvbiBkYXRhIHdpdGhpbiB0aGUgc2FtZSBmcmFtZS4KKyAgICAgICAgY29uc3QgU2Vjb25k
cyBmaWx0ZXJpbmdUaHJlc2hvbGQoMS4wIC8gNjApOworCisgICAgICAgIFZlbG9jaXR5RGF0YSB2
ZWxvY2l0eURhdGE7CisgICAgICAgIGlmIChtX2hpc3RvcnlTaXplID4gMCkgeworICAgICAgICAg
ICAgdW5zaWduZWQgb2xkZXN0RGF0YUluZGV4OworICAgICAgICAgICAgdW5zaWduZWQgZGlzdGFu
Y2VUb0xhc3RIaXN0b3JpY2FsRGF0YSA9IG1faGlzdG9yeVNpemUgLSAxOworICAgICAgICAgICAg
aWYgKGRpc3RhbmNlVG9MYXN0SGlzdG9yaWNhbERhdGEgPD0gbV9sYXRlc3REYXRhSW5kZXgpCisg
ICAgICAgICAgICAgICAgb2xkZXN0RGF0YUluZGV4ID0gbV9sYXRlc3REYXRhSW5kZXggLSBkaXN0
YW5jZVRvTGFzdEhpc3RvcmljYWxEYXRhOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIG9sZGVzdERhdGFJbmRleCA9IG1faGlzdG9yeVNpemUgLSAoZGlzdGFuY2VUb0xhc3RIaXN0
b3JpY2FsRGF0YSAtIG1fbGF0ZXN0RGF0YUluZGV4KTsKKworICAgICAgICAgICAgU2Vjb25kcyB0
aW1lRGVsdGEgPSB0aW1lc3RhbXAgLSBtX3Bvc2l0aW9uSGlzdG9yeVtvbGRlc3REYXRhSW5kZXhd
LnRpbWVzdGFtcDsKKyAgICAgICAgICAgIGlmICh0aW1lRGVsdGEgPiBmaWx0ZXJpbmdUaHJlc2hv
bGQpIHsKKyAgICAgICAgICAgICAgICBEYXRhJiBvbGRlc3REYXRhID0gbV9wb3NpdGlvbkhpc3Rv
cnlbb2xkZXN0RGF0YUluZGV4XTsKKyAgICAgICAgICAgICAgICB2ZWxvY2l0eURhdGEgPSBWZWxv
Y2l0eURhdGEoKG5ld1Bvc2l0aW9uLngoKSAtIG9sZGVzdERhdGEucG9zaXRpb24ueCgpKSAvIHRp
bWVEZWx0YS5zZWNvbmRzKCksIChuZXdQb3NpdGlvbi55KCkgLSBvbGRlc3REYXRhLnBvc2l0aW9u
LnkoKSkgLyB0aW1lRGVsdGEuc2Vjb25kcygpLCAoc2NhbGUgLSBvbGRlc3REYXRhLnNjYWxlKSAv
IHRpbWVEZWx0YS5zZWNvbmRzKCksIHRpbWVzdGFtcCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICBTZWNvbmRzIHRpbWVTaW5jZUxhc3RBcHBlbmQgPSB0aW1lc3RhbXAgLSBt
X2xhc3RBcHBlbmRUaW1lc3RhbXA7CisgICAgICAgIGlmICh0aW1lU2luY2VMYXN0QXBwZW5kID4g
ZmlsdGVyaW5nVGhyZXNob2xkKQorICAgICAgICAgICAgYXBwZW5kKG5ld1Bvc2l0aW9uLCBzY2Fs
ZSwgdGltZXN0YW1wKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9wb3NpdGlvbkhpc3Rv
cnlbbV9sYXRlc3REYXRhSW5kZXhdID0geyB0aW1lc3RhbXAsIG5ld1Bvc2l0aW9uLCBzY2FsZSB9
OworCisgICAgICAgIHJldHVybiB2ZWxvY2l0eURhdGE7CisgICAgfQorCisgICAgdm9pZCBjbGVh
cigpIHsgbV9oaXN0b3J5U2l6ZSA9IDA7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGFwcGVuZChG
bG9hdFBvaW50IG5ld1Bvc2l0aW9uLCBkb3VibGUgc2NhbGUsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKQorICAgIHsKKyAgICAgICAgbV9sYXRlc3REYXRhSW5kZXggPSAobV9sYXRlc3REYXRhSW5k
ZXggKyAxKSAlIG1heEhpc3RvcnlEZXB0aDsKKyAgICAgICAgbV9wb3NpdGlvbkhpc3RvcnlbbV9s
YXRlc3REYXRhSW5kZXhdID0geyB0aW1lc3RhbXAsIG5ld1Bvc2l0aW9uLCBzY2FsZSB9OworICAg
ICAgICBtX2hpc3RvcnlTaXplID0gc3RkOjptaW4obV9oaXN0b3J5U2l6ZSArIDEsIG1heEhpc3Rv
cnlEZXB0aCk7CisgICAgICAgIG1fbGFzdEFwcGVuZFRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKKyAg
ICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heEhpc3RvcnlEZXB0aCA9IDM7
CisKKyAgICB1bnNpZ25lZCBtX2hpc3RvcnlTaXplIHsgMCB9OworICAgIHVuc2lnbmVkIG1fbGF0
ZXN0RGF0YUluZGV4IHsgMCB9OworICAgIE1vbm90b25pY1RpbWUgbV9sYXN0QXBwZW5kVGltZXN0
YW1wOworCisgICAgc3RydWN0IERhdGEgeworICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cDsKKyAgICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbjsKKyAgICAgICAgZG91YmxlIHNjYWxlOwor
ICAgIH0gbV9wb3NpdGlvbkhpc3RvcnlbbWF4SGlzdG9yeURlcHRoXTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAppbmRleCA0MzJmMGI4Yzg0NjQwZmE2YzU0OGVlZjE4
Yjc0NTE4NTY0YTdkODcyLi4yNTQ2YWM3YzljMzEyMTYzYmNjMmNkOGFjM2FjMDhkYzY3NmU1Mzc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGls
ZUNvbnRyb2xsZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAj
aW5jbHVkZSAiVGlsZUNvdmVyYWdlTWFwLmgiCiAjaW5jbHVkZSAiVGlsZUdyaWQuaCIKKyNpbmNs
dWRlICJWZWxvY2l0eURhdGEuaCIKICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgpAQCAtNDI4LDYg
KzQyOSw3IEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6OmFkanVzdFRpbGVDb3ZlcmFnZVJlY3QoRmxv
YXRSZWN0JiBjb3ZlcmFnZVJlY3QsIGNvbnN0IEZsb2F0CiAgICAgaWYgKCFtX3ZlbG9jaXR5Lmhv
cml6b250YWxWZWxvY2l0eSAmJiAhbV92ZWxvY2l0eS52ZXJ0aWNhbFZlbG9jaXR5KSB7CiAgICAg
ICAgIGlmIChtX3ZlbG9jaXR5LnNjYWxlQ2hhbmdlUmF0ZSA+IDApIHsKICAgICAgICAgICAgIGNv
dmVyYWdlUmVjdCA9IHZpc2libGVSZWN0OworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFRp
bGluZywgc3RyZWFtIDw8ICJUaWxlQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiBjb21wdXRlVGls
ZUNvdmVyYWdlUmVjdCAtIHpvb21pbmcsIGNvdmVyYWdlIGlzIHZpc2libGUgcmVjdCAiIDw8IGNv
dmVyYWdlUmVjdCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgZnV0
dXJlUmVjdC5zZXRXaWR0aChmdXR1cmVSZWN0LndpZHRoKCkgKyBob3Jpem9udGFsTWFyZ2luKTsK
QEAgLTQ0OCw4ICs0NTAsOSBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjphZGp1c3RUaWxlQ292ZXJh
Z2VSZWN0KEZsb2F0UmVjdCYgY292ZXJhZ2VSZWN0LCBjb25zdCBGbG9hdAogICAgIGlmIChmdXR1
cmVSZWN0LnkoKSA8IDApCiAgICAgICAgIGZ1dHVyZVJlY3Quc2V0WSgwKTsKIAorICAgIExPR19X
SVRIX1NUUkVBTShUaWxpbmcsIHN0cmVhbSA8PCAiVGlsZUNvbnRyb2xsZXIgIiA8PCB0aGlzIDw8
ICIgY29tcHV0ZVRpbGVDb3ZlcmFnZVJlY3QgLSBjb3ZlcmFnZSAiIDw8IGNvdmVyYWdlUmVjdCA8
PCAiIGV4cGFuZGVkIHRvICIgPDwgdW5pb25SZWN0KGNvdmVyYWdlUmVjdCwgZnV0dXJlUmVjdCkg
PDwgIiB2ZWxvY2l0eSAiIDw8IG1fdmVsb2NpdHkpOworCiAgICAgY292ZXJhZ2VSZWN0LnVuaXRl
KGZ1dHVyZVJlY3QpOwotICAgIHJldHVybjsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNvbnRl
bnRzU2NhbGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9UaWxlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvVGlsZUNvbnRyb2xsZXIuaAppbmRleCA1Nzk3ZTg2NDQwODBhZjFmMDY0ZDA2ZDNjOGFlNjg3
MTg5MjBkMTczLi5kYmIwNDlhYmU1NDMxN2JkMTFiZjA4YjYzNzlkZjJhY2Y2OGExN2MzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXJDbGllbnQu
aCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1
ZGUgIlZlbG9jaXR5RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKaW5k
ZXggZTlhODgzZDI4YmZlNjY3MWNkMjg1NjQ0NjE3NDExNGQzNzUwZTE2OS4uNjZkODA3MzQyOGU4
Y2RhMDI0NmYyNWQyOGQ1NjJlZDVlZjRmYThlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKQEAgLTQzLDEyICs0Myw5
IEBAIHZvaWQgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fY3VzdG9tRml4ZWRQb3NpdGlvblJl
Y3Q7CiAgICAgZW5jb2RlciA8PCBtX29ic2N1cmVkSW5zZXRzOwogICAgIGVuY29kZXIgPDwgbV91
bm9ic2N1cmVkU2FmZUFyZWFJbnNldHM7CisgICAgZW5jb2RlciA8PCBtX3Njcm9sbFZlbG9jaXR5
OwogICAgIGVuY29kZXIgPDwgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDsKICAgICBlbmNv
ZGVyIDw8IG1fc2NhbGU7Ci0gICAgZW5jb2RlciA8PCBtX3RpbWVzdGFtcDsKLSAgICBlbmNvZGVy
IDw8IG1faG9yaXpvbnRhbFZlbG9jaXR5OwotICAgIGVuY29kZXIgPDwgbV92ZXJ0aWNhbFZlbG9j
aXR5OwotICAgIGVuY29kZXIgPDwgbV9zY2FsZUNoYW5nZVJhdGU7CiAgICAgZW5jb2RlciA8PCBt
X2luU3RhYmxlU3RhdGU7CiAgICAgZW5jb2RlciA8PCBtX2lzRmlyc3RVcGRhdGVGb3JOZXdWaWV3
U2l6ZTsKICAgICBlbmNvZGVyIDw8IG1faXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3Rp
dmVseTsKQEAgLTc0LDE4ICs3MSwxMiBAQCBib29sIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm86OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFZpc2libGVDb250ZW50UgogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV91bm9ic2N1
cmVkU2FmZUFyZWFJbnNldHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQubV9zY3JvbGxWZWxvY2l0eSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2xhc3RMYXllclRyZWVUcmFuc2Fj
dGlvbklEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0Lm1fc2NhbGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubV90aW1lc3RhbXApKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9ob3Jpem9udGFsVmVsb2NpdHkpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV92ZXJ0aWNh
bFZlbG9jaXR5KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0Lm1fc2NhbGVDaGFuZ2VSYXRlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faW5TdGFibGVTdGF0ZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2lzRmlyc3RVcGRh
dGVGb3JOZXdWaWV3U2l6ZSkpCkBAIC0xMzIsMTQgKzEyMyw4IEBAIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8m
IGluZm8pCiAgICAgaWYgKGluZm8uZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoKSkK
ICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmll
dyIsIGluZm8uZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoKSk7CiAKLSAgICB0cy5k
dW1wUHJvcGVydHkoInRpbWVzdGFtcCIsIGluZm8udGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImFsbG93U2hyaW5rVG9GaXQiLCBp
bmZvLmFsbG93U2hyaW5rVG9GaXQoKSk7Ci0gICAgaWYgKGluZm8uaG9yaXpvbnRhbFZlbG9jaXR5
KCkpCi0gICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgiaG9yaXpvbnRhbFZlbG9jaXR5IiwgaW5mby5o
b3Jpem9udGFsVmVsb2NpdHkoKSk7Ci0gICAgaWYgKGluZm8udmVydGljYWxWZWxvY2l0eSgpKQot
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoInZlcnRpY2FsVmVsb2NpdHkiLCBpbmZvLnZlcnRpY2Fs
VmVsb2NpdHkoKSk7Ci0gICAgaWYgKGluZm8uc2NhbGVDaGFuZ2VSYXRlKCkpCi0gICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgic2NhbGVDaGFuZ2VSYXRlIiwgaW5mby5zY2FsZUNoYW5nZVJhdGUoKSk7
CisgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxWZWxvY2l0eSIsIGluZm8uc2Nyb2xsVmVsb2Np
dHkoKSk7CiAKICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKaW5kZXggODE0Y2E1NGMyMWQzZjUzMzU2
NzJlMWNlMjNiNWY2Y2I4ZDVmOGVhYy4uNTBhOGY5ZTZiMzNkY2JhYzE2ZGY5NmNlNDJmOTIzMjc4
OTZiMGVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8uaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVmVsb2NpdHlEYXRhLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDUsNyArNDYsNyBAQCBjbGFzcyBW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvIHsKIHB1YmxpYzoKICAgICBWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvKCkgPSBkZWZhdWx0OwogCi0gICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mbyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRDb250ZW50UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0Qm94RXh0ZW50JiBjb250ZW50SW5zZXRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5k
cywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUs
IGJvb2wgaW5TdGFibGVTdGF0ZSwgYm9vbCBpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUsIGJv
b2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxvd1Nocmlu
a1RvRml0LCBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3LCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2Fs
VmVsb2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVU
cmFuc2FjdGlvbklkKQorICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVu
dCYgY29udGVudEluc2V0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVj
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2Jz
Y3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQm
IHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBib29sIGluU3RhYmxlU3Rh
dGUsIGJvb2wgaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlzQ2hhbmdpbmdPYnNj
dXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgYm9vbCBlbmNs
b3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywgY29uc3QgV2ViQ29yZTo6VmVsb2NpdHlEYXRh
JiBzY3JvbGxWZWxvY2l0eSwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiAg
ICAgICAgIDogbV9leHBvc2VkQ29udGVudFJlY3QoZXhwb3NlZENvbnRlbnRSZWN0KQogICAgICAg
ICAsIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0KHVub2JzY3VyZWRDb250ZW50UmVjdCkKICAgICAg
ICAgLCBtX2NvbnRlbnRJbnNldHMoY29udGVudEluc2V0cykKQEAgLTU0LDEyICs1NSw5IEBAIHB1
YmxpYzoKICAgICAgICAgLCBtX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGN1c3RvbUZpeGVkUG9z
aXRpb25SZWN0KQogICAgICAgICAsIG1fb2JzY3VyZWRJbnNldHMob2JzY3VyZWRJbnNldHMpCiAg
ICAgICAgICwgbV91bm9ic2N1cmVkU2FmZUFyZWFJbnNldHModW5vYnNjdXJlZFNhZmVBcmVhSW5z
ZXRzKQorICAgICAgICAsIG1fc2Nyb2xsVmVsb2NpdHkoc2Nyb2xsVmVsb2NpdHkpCiAgICAgICAg
ICwgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRChsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25J
ZCkKICAgICAgICAgLCBtX3NjYWxlKHNjYWxlKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVz
dGFtcCkKLSAgICAgICAgLCBtX2hvcml6b250YWxWZWxvY2l0eShob3Jpem9udGFsVmVsb2NpdHkp
Ci0gICAgICAgICwgbV92ZXJ0aWNhbFZlbG9jaXR5KHZlcnRpY2FsVmVsb2NpdHkpCi0gICAgICAg
ICwgbV9zY2FsZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2VSYXRlKQogICAgICAgICAsIG1faW5TdGFi
bGVTdGF0ZShpblN0YWJsZVN0YXRlKQogICAgICAgICAsIG1faXNGaXJzdFVwZGF0ZUZvck5ld1Zp
ZXdTaXplKGlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSkKICAgICAgICAgLCBtX2lzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkoaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50
ZXJhY3RpdmVseSkKQEAgLTc0LDYgKzcyLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcygpIGNvbnN0
IHsgcmV0dXJuIG1fdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczsgfQogICAg
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGlu
Z0lucHV0Vmlld0JvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0
UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kczsgfQogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUZpeGVk
UG9zaXRpb25SZWN0OyB9CisgICAgY29uc3QgV2ViQ29yZTo6VmVsb2NpdHlEYXRhJiBzY3JvbGxW
ZWxvY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsVmVsb2NpdHk7IH0KICAgICBjb25zdCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNldHMoKSBjb25zdCB7IHJldHVybiBt
X29ic2N1cmVkSW5zZXRzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVu
b2JzY3VyZWRTYWZlQXJlYUluc2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZFNhZmVB
cmVhSW5zZXRzOyB9CiAKQEAgLTgzLDE0ICs4MiwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0No
YW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5KCkgY29uc3QgeyByZXR1cm4gbV9pc0No
YW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OyB9CiAgICAgYm9vbCBhbGxvd1Nocmlu
a1RvRml0KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1Nocmlua1RvRml0OyB9CiAgICAgYm9vbCBl
bmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fZW5jbG9z
ZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXc7IH0KLQotICAgIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KLSAgICBkb3VibGUgaG9yaXpvbnRh
bFZlbG9jaXR5KCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsVmVsb2NpdHk7IH0KLSAgICBk
b3VibGUgdmVydGljYWxWZWxvY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxWZWxvY2l0
eTsgfQotICAgIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3NjYWxl
Q2hhbmdlUmF0ZTsgfQotCiAgICAgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQo
KSBjb25zdCB7IHJldHVybiBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOyB9CiAKKyAgICBN
b25vdG9uaWNUaW1lIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsVmVsb2NpdHku
bGFzdFVwZGF0ZVRpbWU7IH0KKwogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvJik7CiAKQEAgLTEwNSwxMiArMTAwLDkgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpGbG9hdFJlY3QgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsgLy8gV2hlbiB2aXN1YWwg
dmlld3BvcnRzIGFyZSBlbmFibGVkLCB0aGlzIGlzIHRoZSBsYXlvdXQgdmlld3BvcnQuCiAgICAg
V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQgbV9vYnNjdXJlZEluc2V0czsKICAgICBXZWJDb3JlOjpG
bG9hdEJveEV4dGVudCBtX3Vub2JzY3VyZWRTYWZlQXJlYUluc2V0czsKKyAgICBXZWJDb3JlOjpW
ZWxvY2l0eURhdGEgbV9zY3JvbGxWZWxvY2l0eTsKICAgICB1aW50NjRfdCBtX2xhc3RMYXllclRy
ZWVUcmFuc2FjdGlvbklEIHsgMCB9OwogICAgIGRvdWJsZSBtX3NjYWxlIHsgLTEgfTsKLSAgICBN
b25vdG9uaWNUaW1lIG1fdGltZXN0YW1wOwotICAgIGRvdWJsZSBtX2hvcml6b250YWxWZWxvY2l0
eSB7IDAgfTsKLSAgICBkb3VibGUgbV92ZXJ0aWNhbFZlbG9jaXR5IHsgMCB9OwotICAgIGRvdWJs
ZSBtX3NjYWxlQ2hhbmdlUmF0ZSB7IDAgfTsKICAgICBib29sIG1faW5TdGFibGVTdGF0ZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2lzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkgeyBmYWxz
ZSB9OwpAQCAtMTI5LDkgKzEyMSw3IEBAIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgYSwgY29uc3QgVmlzaWJsZUNvbnRlCiAgICAgICAg
ICYmIGEuY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKSA9PSBiLmN1c3RvbUZpeGVkUG9zaXRpb25S
ZWN0KCkKICAgICAgICAgJiYgYS5vYnNjdXJlZEluc2V0cygpID09IGIub2JzY3VyZWRJbnNldHMo
KQogICAgICAgICAmJiBhLnVub2JzY3VyZWRTYWZlQXJlYUluc2V0cygpID09IGIudW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzKCkKLSAgICAgICAgJiYgYS5ob3Jpem9udGFsVmVsb2NpdHkoKSA9PSBi
Lmhvcml6b250YWxWZWxvY2l0eSgpCi0gICAgICAgICYmIGEudmVydGljYWxWZWxvY2l0eSgpID09
IGIudmVydGljYWxWZWxvY2l0eSgpCi0gICAgICAgICYmIGEuc2NhbGVDaGFuZ2VSYXRlKCkgPT0g
Yi5zY2FsZUNoYW5nZVJhdGUoKQorICAgICAgICAmJiBhLnNjcm9sbFZlbG9jaXR5KCkuZXF1YWxJ
Z25vcmluZ1RpbWVzdGFtcChiLnNjcm9sbFZlbG9jaXR5KCkpCiAgICAgICAgICYmIGEuaW5TdGFi
bGVTdGF0ZSgpID09IGIuaW5TdGFibGVTdGF0ZSgpCiAgICAgICAgICYmIGEuaXNGaXJzdFVwZGF0
ZUZvck5ld1ZpZXdTaXplKCkgPT0gYi5pc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUoKQogICAg
ICAgICAmJiBhLmFsbG93U2hyaW5rVG9GaXQoKSA9PSBiLmFsbG93U2hyaW5rVG9GaXQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZDRk
ZWY4ZTlmNTk2YTc2NjQ1MDliYTA3ZTBlN2IxODc3ZjMxZGM3NC4uYzk4NGM0Yzk5YWJiNjg4MzMx
MTdmNjRjYjBlYmMwMjFhOGQwMDhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC04MSw2ICs4MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9UaW1pbmdGdW5jdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRy
aXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9WZWxvY2l0eURhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KQEAgLTkyMyw2ICs5MjQsMzYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVy
PFZlbG9jaXR5RGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWZWxvY2l0eURh
dGEmIHZlbG9jaXR5RGF0YSkKK3sKKyAgICBlbmNvZGVyIDw8IHZlbG9jaXR5RGF0YS5ob3Jpem9u
dGFsVmVsb2NpdHkgPDwgdmVsb2NpdHlEYXRhLnZlcnRpY2FsVmVsb2NpdHkgPDwgdmVsb2NpdHlE
YXRhLnNjYWxlQ2hhbmdlUmF0ZSA8PCB2ZWxvY2l0eURhdGEubGFzdFVwZGF0ZVRpbWU7Cit9CisK
K2Jvb2wgQXJndW1lbnRDb2RlcjxWZWxvY2l0eURhdGE+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgVmVsb2NpdHlEYXRhJiB2ZWxvY2l0eURhdGEpCit7CisgICAgZmxvYXQgaG9yaXpvbnRhbFZl
bG9jaXR5OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaG9yaXpvbnRhbFZlbG9jaXR5KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZmxvYXQgdmVydGljYWxWZWxvY2l0eTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHZlcnRpY2FsVmVsb2NpdHkpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBmbG9hdCBzY2FsZUNoYW5nZVJhdGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShzY2FsZUNoYW5nZVJhdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBNb25vdG9u
aWNUaW1lIGxhc3RVcGRhdGVUaW1lOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGFzdFVwZGF0
ZVRpbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2ZWxvY2l0eURhdGEuaG9yaXpv
bnRhbFZlbG9jaXR5ID0gaG9yaXpvbnRhbFZlbG9jaXR5OworICAgIHZlbG9jaXR5RGF0YS52ZXJ0
aWNhbFZlbG9jaXR5ID0gdmVydGljYWxWZWxvY2l0eTsKKyAgICB2ZWxvY2l0eURhdGEuc2NhbGVD
aGFuZ2VSYXRlID0gc2NhbGVDaGFuZ2VSYXRlOworICAgIHZlbG9jaXR5RGF0YS5sYXN0VXBkYXRl
VGltZSA9IGxhc3RVcGRhdGVUaW1lOworCisgICAgcmV0dXJuIHRydWU7Cit9CiAKIHZvaWQgQXJn
dW1lbnRDb2RlcjxNaW1lQ2xhc3NJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IE1pbWVDbGFzc0luZm8mIG1pbWVDbGFzc0luZm8pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGQ4ODJmYjY4ZDg5MWFhMmVlYzcxN2NmNGEy
YWYzYjA0M2JmMzAyZjIuLmZiNzczMDcxOWI2NDA1OGY1ZjJiYzQ5YTBlOWE0YTc2MjFlNDFkYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0x
MjUsNiArMTI1LDcgQEAgc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogI2lmIEVOQUJMRShQT0lO
VEVSX0VWRU5UUykKIHN0cnVjdCBUb3VjaEFjdGlvbkRhdGE7CiAjZW5kaWYKK3N0cnVjdCBWZWxv
Y2l0eURhdGE7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1
cmVzOwogICAgIApAQCAtMzM0LDYgKzMzNSwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiB9OwogCit0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZlbG9jaXR5RGF0YT4geworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VmVsb2NpdHlEYXRh
Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpWZWxvY2l0eURh
dGEmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWlt
ZUNsYXNzSW5mbz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6TWltZUNsYXNzSW5mbyYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpNaW1l
Q2xhc3NJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5tbQppbmRleCA1NWQ4MGNhNTVkZmM1NTY1NDQyNzhmNjEwMmNkYWFm
OWQwMTUwMWMwLi41NmI0NTYyYzc5NmE3MTRiOWEwOTM3ZDY2ODI4MTM3Yjg4YjQ2OTIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtNjAsMTAz
ICs2MCwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9RdWlya3MuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvVmVsb2NpdHlEYXRhLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1
YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90
ZXh0L1RleHRTdHJlYW0uaD4KIAogCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotY2xhc3MgSGlzdG9yaWNhbFZl
bG9jaXR5RGF0YSB7Ci1wdWJsaWM6Ci0gICAgc3RydWN0IFZlbG9jaXR5RGF0YSB7Ci0gICAgICAg
IFZlbG9jaXR5RGF0YSgpCi0gICAgICAgICAgICA6IGhvcml6b250YWxWZWxvY2l0eSgwKQotICAg
ICAgICAgICAgLCB2ZXJ0aWNhbFZlbG9jaXR5KDApCi0gICAgICAgICAgICAsIHNjYWxlQ2hhbmdl
UmF0ZSgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBWZWxvY2l0eURhdGEoZG91
YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBz
Y2FsZUNoYW5nZVJhdGUpCi0gICAgICAgICAgICA6IGhvcml6b250YWxWZWxvY2l0eShob3Jpem9u
dGFsVmVsb2NpdHkpCi0gICAgICAgICAgICAsIHZlcnRpY2FsVmVsb2NpdHkodmVydGljYWxWZWxv
Y2l0eSkKLSAgICAgICAgICAgICwgc2NhbGVDaGFuZ2VSYXRlKHNjYWxlQ2hhbmdlUmF0ZSkKLSAg
ICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eTsK
LSAgICAgICAgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHk7Ci0gICAgICAgIGRvdWJsZSBzY2FsZUNo
YW5nZVJhdGU7Ci0gICAgfTsKLQotICAgIEhpc3RvcmljYWxWZWxvY2l0eURhdGEoKQotICAgICAg
ICA6IG1faGlzdG9yeVNpemUoMCkKLSAgICAgICAgLCBtX2xhdGVzdERhdGFJbmRleCgwKQotICAg
IHsKLSAgICB9Ci0KLSAgICBWZWxvY2l0eURhdGEgdmVsb2NpdHlGb3JOZXdEYXRhKENHUG9pbnQg
bmV3UG9zaXRpb24sIGRvdWJsZSBzY2FsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCi0gICAg
ewotICAgICAgICAvLyBEdWUgdG8gYWxsIHRoZSBzb3VyY2Ugb2YgcmVjdCB1cGRhdGUsIHRoZSBp
bnB1dCBpcyB2ZXJ5IG5vaXN5LiBUbyBzbW9vdGggdGhlIG91dHB1dCwgd2UgYWNjdW11bGF0ZSBh
bGwgY2hhbmdlcwotICAgICAgICAvLyB3aXRoaW4gMSBmcmFtZSBhcyBhIHNpbmdsZSB1cGRhdGUu
IE5vIHNwZWVkIGNvbXB1dGF0aW9uIGlzIGV2ZXIgZG9uZSBvbiBkYXRhIHdpdGhpbiB0aGUgc2Ft
ZSBmcmFtZS4KLSAgICAgICAgY29uc3QgU2Vjb25kcyBmaWx0ZXJpbmdUaHJlc2hvbGQoMS4wIC8g
NjApOwotCi0gICAgICAgIFZlbG9jaXR5RGF0YSB2ZWxvY2l0eURhdGE7Ci0gICAgICAgIGlmICht
X2hpc3RvcnlTaXplID4gMCkgewotICAgICAgICAgICAgdW5zaWduZWQgb2xkZXN0RGF0YUluZGV4
OwotICAgICAgICAgICAgdW5zaWduZWQgZGlzdGFuY2VUb0xhc3RIaXN0b3JpY2FsRGF0YSA9IG1f
aGlzdG9yeVNpemUgLSAxOwotICAgICAgICAgICAgaWYgKGRpc3RhbmNlVG9MYXN0SGlzdG9yaWNh
bERhdGEgPD0gbV9sYXRlc3REYXRhSW5kZXgpCi0gICAgICAgICAgICAgICAgb2xkZXN0RGF0YUlu
ZGV4ID0gbV9sYXRlc3REYXRhSW5kZXggLSBkaXN0YW5jZVRvTGFzdEhpc3RvcmljYWxEYXRhOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG9sZGVzdERhdGFJbmRleCA9IG1faGlz
dG9yeVNpemUgLSAoZGlzdGFuY2VUb0xhc3RIaXN0b3JpY2FsRGF0YSAtIG1fbGF0ZXN0RGF0YUlu
ZGV4KTsKLQotICAgICAgICAgICAgU2Vjb25kcyB0aW1lRGVsdGEgPSB0aW1lc3RhbXAgLSBtX2hp
c3Rvcnlbb2xkZXN0RGF0YUluZGV4XS50aW1lc3RhbXA7Ci0gICAgICAgICAgICBpZiAodGltZURl
bHRhID4gZmlsdGVyaW5nVGhyZXNob2xkKSB7Ci0gICAgICAgICAgICAgICAgRGF0YSYgb2xkZXN0
RGF0YSA9IG1faGlzdG9yeVtvbGRlc3REYXRhSW5kZXhdOwotICAgICAgICAgICAgICAgIHZlbG9j
aXR5RGF0YSA9IFZlbG9jaXR5RGF0YSgobmV3UG9zaXRpb24ueCAtIG9sZGVzdERhdGEucG9zaXRp
b24ueCkgLyB0aW1lRGVsdGEuc2Vjb25kcygpLCAobmV3UG9zaXRpb24ueSAtIG9sZGVzdERhdGEu
cG9zaXRpb24ueSkgLyB0aW1lRGVsdGEuc2Vjb25kcygpLCAoc2NhbGUgLSBvbGRlc3REYXRhLnNj
YWxlKSAvIHRpbWVEZWx0YS5zZWNvbmRzKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0K
LSAgICAgICAgU2Vjb25kcyB0aW1lU2luY2VMYXN0QXBwZW5kID0gdGltZXN0YW1wIC0gbV9sYXN0
QXBwZW5kVGltZXN0YW1wOwotICAgICAgICBpZiAodGltZVNpbmNlTGFzdEFwcGVuZCA+IGZpbHRl
cmluZ1RocmVzaG9sZCkKLSAgICAgICAgICAgIGFwcGVuZChuZXdQb3NpdGlvbiwgc2NhbGUsIHRp
bWVzdGFtcCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1faGlzdG9yeVttX2xhdGVzdERh
dGFJbmRleF0gPSB7IHRpbWVzdGFtcCwgbmV3UG9zaXRpb24sIHNjYWxlIH07Ci0gICAgICAgIHJl
dHVybiB2ZWxvY2l0eURhdGE7Ci0gICAgfQotCi0gICAgdm9pZCBjbGVhcigpIHsgbV9oaXN0b3J5
U2l6ZSA9IDA7IH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIGFwcGVuZChDR1BvaW50IG5ld1Bvc2l0
aW9uLCBkb3VibGUgc2NhbGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQotICAgIHsKLSAgICAg
ICAgbV9sYXRlc3REYXRhSW5kZXggPSAobV9sYXRlc3REYXRhSW5kZXggKyAxKSAlIG1heEhpc3Rv
cnlEZXB0aDsKLSAgICAgICAgbV9oaXN0b3J5W21fbGF0ZXN0RGF0YUluZGV4XSA9IHsgdGltZXN0
YW1wLCBuZXdQb3NpdGlvbiwgc2NhbGUgfTsKLQotICAgICAgICB1bnNpZ25lZCBzaXplID0gbV9o
aXN0b3J5U2l6ZSArIDE7Ci0gICAgICAgIGlmIChzaXplIDw9IG1heEhpc3RvcnlEZXB0aCkKLSAg
ICAgICAgICAgIG1faGlzdG9yeVNpemUgPSBzaXplOwotCi0gICAgICAgIG1fbGFzdEFwcGVuZFRp
bWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICB9Ci0KLQotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBtYXhIaXN0b3J5RGVwdGggPSAzOwotCi0gICAgdW5zaWduZWQgbV9oaXN0b3J5U2l6ZTsKLSAg
ICB1bnNpZ25lZCBtX2xhdGVzdERhdGFJbmRleDsKLSAgICBNb25vdG9uaWNUaW1lIG1fbGFzdEFw
cGVuZFRpbWVzdGFtcDsKLQotICAgIHN0cnVjdCBEYXRhIHsKLSAgICAgICAgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXA7Ci0gICAgICAgIENHUG9pbnQgcG9zaXRpb247Ci0gICAgICAgIGRvdWJsZSBz
Y2FsZTsKLSAgICB9IG1faGlzdG9yeVttYXhIaXN0b3J5RGVwdGhdOwotfTsKLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCiBAaW50ZXJmYWNlIFdLSW5zcGVjdG9ySW5kaWNhdGlvblZpZXcgOiBVSVZp
ZXcKIEBlbmQKIApAQCAtMjIzLDcgKzEzMiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0NvbnRlbnRW
aWV3IHsKICAgICBSZXRhaW5QdHI8X1VJTGF5ZXJIb3N0Vmlldz4gX3Zpc2liaWxpdHlQcm9wYWdh
dGlvblZpZXc7CiAjZW5kaWYKIAotICAgIFdlYktpdDo6SGlzdG9yaWNhbFZlbG9jaXR5RGF0YSBf
aGlzdG9yaWNhbEtpbmVtYXRpY0RhdGE7CisgICAgV2ViQ29yZTo6SGlzdG9yaWNhbFZlbG9jaXR5
RGF0YSBfaGlzdG9yaWNhbEtpbmVtYXRpY0RhdGE7CiAKICAgICBSZXRhaW5QdHI8TlNVbmRvTWFu
YWdlcj4gX3VuZG9NYW5hZ2VyOwogICAgIFJldGFpblB0cjxXS1F1aXJreU5TVW5kb01hbmFnZXI+
IF9xdWlya3lVbmRvTWFuYWdlcjsKQEAgLTQ2MywxMSArMzcyLDEzIEBAIC0gKHZvaWQpZGlkVXBk
YXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlQ29udGVudFJlY3QKICAgICAgICAgcmV0dXJu
OwogCiAgICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lOjpub3coKTsK
LSAgICBXZWJLaXQ6Okhpc3RvcmljYWxWZWxvY2l0eURhdGE6OlZlbG9jaXR5RGF0YSB2ZWxvY2l0
eURhdGE7CisgICAgV2ViQ29yZTo6VmVsb2NpdHlEYXRhIHZlbG9jaXR5RGF0YTsKICAgICBpZiAo
IWlzU3RhYmxlU3RhdGUpCiAgICAgICAgIHZlbG9jaXR5RGF0YSA9IF9oaXN0b3JpY2FsS2luZW1h
dGljRGF0YS52ZWxvY2l0eUZvck5ld0RhdGEodmlzaWJsZUNvbnRlbnRSZWN0Lm9yaWdpbiwgem9v
bVNjYWxlLCB0aW1lc3RhbXApOwotICAgIGVsc2UKKyAgICBlbHNlIHsKICAgICAgICAgX2hpc3Rv
cmljYWxLaW5lbWF0aWNEYXRhLmNsZWFyKCk7CisgICAgICAgIHZlbG9jaXR5RGF0YSA9IHsgMCwg
MCwgMCwgdGltZXN0YW1wIH07CisgICAgfQogCiAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5KiBzY3JvbGxpbmdDb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5KCk7CiAKQEAgLTQ4OSwxMCArNDAwLDcgQEAgLSAodm9pZClkaWRVcGRh
dGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVDb250ZW50UmVjdAogICAgICAgICBpc0NoYW5n
aW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5LAogICAgICAgICBfd2ViVmlldy5fYWxsb3dz
Vmlld3BvcnRTaHJpbmtUb0ZpdCwKICAgICAgICAgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3Rv
clZpZXcsCi0gICAgICAgIHRpbWVzdGFtcCwKLSAgICAgICAgdmVsb2NpdHlEYXRhLmhvcml6b250
YWxWZWxvY2l0eSwKLSAgICAgICAgdmVsb2NpdHlEYXRhLnZlcnRpY2FsVmVsb2NpdHksCi0gICAg
ICAgIHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUsCisgICAgICAgIHZlbG9jaXR5RGF0YSwK
ICAgICAgICAgZG93bmNhc3Q8V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
PigqZHJhd2luZ0FyZWEpLmxhc3RDb21taXR0ZWRMYXllclRyZWVUcmFuc2FjdGlvbklEKCkpOwog
CiAgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICItW1dLQ29udGVu
dFZpZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3RdIiA8PCB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLmR1bXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCmluZGV4IGMxMTlkNGYxMjQ3ZWY2NWM2Yjg4ZGFjZWRjY2I3ZTgxZTcx
ZTJmYjAuLjM4MTdiZTIzNWRkNjQ0ZTJjZTZiNzQ5YzFkZDM5YmYyODUyMDg4ZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0zMTE2LDcgKzMxMTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgVwogICAgICAgICBuZXdF
eHBvc2VkQ29udGVudFJlY3QubW92ZUJ5KGFkanVzdG1lbnREZWx0YSk7CiAgICAgfQogCi0gICAg
ZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KDAsIDAsIDAsIE1vbm90b25pY1RpbWU6Om5vdygp
KTsKKyAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsVmVsb2NpdHkoeyAwLCAwLCAwLCBNb25vdG9uaWNU
aW1lOjpub3coKSB9KTsKIAogICAgIEludFBvaW50IHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJl
Y3RQb3NpdGlvbiA9IHJvdW5kZWRJbnRQb2ludChuZXdVbm9ic2N1cmVkQ29udGVudFJlY3QubG9j
YXRpb24oKSk7CiAgICAgZnJhbWVWaWV3LnNldFVub2JzY3VyZWRDb250ZW50U2l6ZShuZXdVbm9i
c2N1cmVkQ29udGVudFJlY3Quc2l6ZSgpKTsKQEAgLTMyODksNyArMzI4OSw3IEBAIHZvaWQgV2Vi
UGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZChab29tVG9Jbml0aWFsU2NhbGUgem9v
bVRvSW5pdGlhbFNjYWxlCiAgICAgICAgIG1pbmltdW1MYXlvdXRTaXplSW5TY3JvbGxWaWV3Q29v
cmRpbmF0ZXMuc2NhbGUoMSAvIHNjYWxlKTsKICAgICAgICAgSW50U2l6ZSBtaW5pbXVtTGF5b3V0
U2l6ZUluRG9jdW1lbnRDb29yZGluYXRlcyA9IHJvdW5kZWRJbnRTaXplKG1pbmltdW1MYXlvdXRT
aXplSW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMpOwogICAgICAgICBmcmFtZVZpZXcuc2V0VW5vYnNj
dXJlZENvbnRlbnRTaXplKG1pbmltdW1MYXlvdXRTaXplSW5Eb2N1bWVudENvb3JkaW5hdGVzKTsK
LSAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KDAsIDAsIDAsIE1vbm90b25pY1Rp
bWU6Om5vdygpKTsKKyAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KHsgMCwgMCwg
MCwgTW9ub3RvbmljVGltZTo6bm93KCkgfSk7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxk
IHNlbmQgZG93biB0aGUgb2JzY3VyZWQgbWFyZ2lucyB0byBmaW5kIGEgYmV0dGVyIGV4cG9zZWQg
cmVjdCBhbmQgdW5vYnNjdXJlZCByZWN0LgogICAgICAgICAvLyBJdCBpcyBub3QgYSBiaWcgZGVh
bCBhdCB0aGUgbW9tZW50IGJlY2F1c2UgdGhlIHRpbGUgY292ZXJhZ2Ugd2lsbCBhbHdheXMgZXh0
ZW5kIHBhc3QgdGhlIG9ic2N1cmVkIGJvdHRvbSBpbnNldC4KQEAgLTMzNjAsMTUgKzMzNjAsMTUg
QEAgdm9pZCBXZWJQYWdlOjphcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCiAgICAgICAgIG1f
cGFnZS0+YXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKTsKIH0KIAotc3RhdGljIGlubGluZSB2
b2lkIGFkanVzdFZlbG9jaXR5RGF0YUZvckJvdW5kZWRTY2FsZShkb3VibGUmIGhvcml6b250YWxW
ZWxvY2l0eSwgZG91YmxlJiB2ZXJ0aWNhbFZlbG9jaXR5LCBkb3VibGUmIHNjYWxlQ2hhbmdlUmF0
ZSwgZG91YmxlIGV4cG9zZWRSZWN0U2NhbGUsIGRvdWJsZSBtaW5pbXVtU2NhbGUsIGRvdWJsZSBt
YXhpbXVtU2NhbGUpCitzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0VmVsb2NpdHlEYXRhRm9yQm91
bmRlZFNjYWxlKFZlbG9jaXR5RGF0YSYgdmVsb2NpdHlEYXRhLCBkb3VibGUgZXhwb3NlZFJlY3RT
Y2FsZSwgZG91YmxlIG1pbmltdW1TY2FsZSwgZG91YmxlIG1heGltdW1TY2FsZSkKIHsKLSAgICBp
ZiAoc2NhbGVDaGFuZ2VSYXRlKSB7Ci0gICAgICAgIGhvcml6b250YWxWZWxvY2l0eSA9IDA7Ci0g
ICAgICAgIHZlcnRpY2FsVmVsb2NpdHkgPSAwOworICAgIGlmICh2ZWxvY2l0eURhdGEuc2NhbGVD
aGFuZ2VSYXRlKSB7CisgICAgICAgIHZlbG9jaXR5RGF0YS5ob3Jpem9udGFsVmVsb2NpdHkgPSAw
OworICAgICAgICB2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSA9IDA7CiAgICAgfQogCiAg
ICAgaWYgKGV4cG9zZWRSZWN0U2NhbGUgPj0gbWF4aW11bVNjYWxlIHx8IGV4cG9zZWRSZWN0U2Nh
bGUgPD0gbWluaW11bVNjYWxlKQotICAgICAgICBzY2FsZUNoYW5nZVJhdGUgPSAwOworICAgICAg
ICB2ZWxvY2l0eURhdGEuc2NhbGVDaGFuZ2VSYXRlID0gMDsKIH0KIAogT3B0aW9uYWw8ZmxvYXQ+
IFdlYlBhZ2U6OnNjYWxlRnJvbVVJUHJvY2Vzcyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvJiB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKSBjb25zdApAQCAtMzQ3NiwxMiAr
MzQ3Niw5IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNpCiAgICAgbV9wYWdlLT5zZXRVbm9ic2N1
cmVkU2FmZUFyZWFJbnNldHModmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby51bm9ic2N1cmVk
U2FmZUFyZWFJbnNldHMoKSk7CiAgICAgbV9wYWdlLT5zZXRFbmNsb3NlZEluU2Nyb2xsYWJsZUFu
Y2VzdG9yVmlldyh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmVuY2xvc2VkSW5TY3JvbGxh
YmxlQW5jZXN0b3JWaWV3KCkpOwogCi0gICAgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSA9IHZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaG9yaXpvbnRhbFZlbG9jaXR5KCk7Ci0gICAgZG91
YmxlIHZlcnRpY2FsVmVsb2NpdHkgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnZlcnRp
Y2FsVmVsb2NpdHkoKTsKLSAgICBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlID0gdmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mby5zY2FsZUNoYW5nZVJhdGUoKTsKLSAgICBhZGp1c3RWZWxvY2l0eURh
dGFGb3JCb3VuZGVkU2NhbGUoaG9yaXpvbnRhbFZlbG9jaXR5LCB2ZXJ0aWNhbFZlbG9jaXR5LCBz
Y2FsZUNoYW5nZVJhdGUsIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uc2NhbGUoKSwgbV92
aWV3cG9ydENvbmZpZ3VyYXRpb24ubWluaW11bVNjYWxlKCksIG1fdmlld3BvcnRDb25maWd1cmF0
aW9uLm1heGltdW1TY2FsZSgpKTsKLQotICAgIGZyYW1lVmlldy5zZXRTY3JvbGxWZWxvY2l0eSho
b3Jpem9udGFsVmVsb2NpdHksIHZlcnRpY2FsVmVsb2NpdHksIHNjYWxlQ2hhbmdlUmF0ZSwgdmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby50aW1lc3RhbXAoKSk7CisgICAgVmVsb2NpdHlEYXRh
IHNjcm9sbFZlbG9jaXR5ID0gdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5zY3JvbGxWZWxv
Y2l0eSgpOworICAgIGFkanVzdFZlbG9jaXR5RGF0YUZvckJvdW5kZWRTY2FsZShzY3JvbGxWZWxv
Y2l0eSwgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5zY2FsZSgpLCBtX3ZpZXdwb3J0Q29u
ZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWF4aW11
bVNjYWxlKCkpOworICAgIGZyYW1lVmlldy5zZXRTY3JvbGxWZWxvY2l0eShzY3JvbGxWZWxvY2l0
eSk7CiAKICAgICBpZiAobV9pc0luU3RhYmxlU3RhdGUpIHsKICAgICAgICAgaWYgKHZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8udW5vYnNjdXJlZENvbnRlbnRSZWN0KCkgIT0gdmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby51bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRW
aWV3Qm91bmRzKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370662</attachid>
            <date>2019-05-26 17:32:37 -0700</date>
            <delta_ts>2019-05-26 18:12:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198261-20190526173236.patch</filename>
            <type>text/plain</type>
            <size>44302</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdkNzI2OTg3NzMwMTli
Mjk0MTU3NDljMTM5MGNkOTljYzIzNDZlYS4uMTlhMmFhNWFjMmQ3NzZkOGUxMjJlZTEwNzZiYzI0
M2RlNTE1N2E3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA1LTI2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgVmVsb2Np
dHlEYXRhIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5ODI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgor
CisgICAgICAgIE1vdmUgVmVsb2NpdHlEYXRhIGFuZCBIaXN0b3JpY2FsVmVsb2NpdHlEYXRhIHRv
IFdlYkNvcmUgZm9yIGZ1dHVyZSB1c2UgaW4gb3ZlcmZsb3cgc2Nyb2xsLgorICAgICAgICAKKyAg
ICAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyBjYW4gbm93IHN0b3JlIGEgVmVsb2Np
dHlEYXRhIChpdHMgdGltZXN0YW1wIGlzIHVzZWQgYXMKKyAgICAgICAgdGhlIHRpbWV0YW1wIGZv
ciB0aGUgZW50aXJlIHVwZGF0ZSkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxWZWxvY2l0
eSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9UaWxlZEJhY2tpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZlbG9jaXR5RGF0YTo6VmVs
b2NpdHlEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZlbG9jaXR5RGF0YTo6dmVs
b2NpdHlPclNjYWxlSXNDaGFuZ2luZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGls
ZUNvbnRyb2xsZXI6OmFkanVzdFRpbGVDb3ZlcmFnZVJlY3QgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmg6CisKIDIwMTktMDUtMjYgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgR3JhcGhp
Y3NMYXllcjo6VHlwZSBmb3IgU2Nyb2xsZWRDb250ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MDBiZGRjZWYx
MzkyMGU0YmE3M2ZmZjM4YmQ3ZTY0NzdjM2VjMTVkLi42MGNlM2M4ZTZkYWYzZTM3YmJjM2VmMGQw
MjQ3YjE0ODlkZDFjMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA1LTI2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgVmVs
b2NpdHlEYXRhIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5ODI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3Rv
LgorCisgICAgICAgIE1vdmUgVmVsb2NpdHlEYXRhIGFuZCBIaXN0b3JpY2FsVmVsb2NpdHlEYXRh
IHRvIFdlYkNvcmUgZm9yIGZ1dHVyZSB1c2UgaW4gb3ZlcmZsb3cgc2Nyb2xsLgorCisgICAgICAg
IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gY2FuIG5vdyBzdG9yZSBhIFZlbG9jaXR5RGF0
YSAoaXRzIHRpbWVzdGFtcCBpcyB1c2VkIGFzCisgICAgICAgIHRoZSB0aW1ldGFtcCBmb3IgdGhl
IGVudGlyZSB1cGRhdGUpLgorCisgICAgICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oOgorICAgICAgICAoV2Vi
S2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6
c2Nyb2xsVmVsb2NpdHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvOjplbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldyBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OnRpbWVzdGFtcCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViS2l0OjpW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpob3Jpem9udGFsVmVsb2NpdHkgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjp2
ZXJ0aWNhbFZlbG9jaXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6c2NhbGVDaGFuZ2VSYXRlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxWZWxvY2l0eURhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPFZlbG9jaXR5RGF0YT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1
bm9ic2N1cmVkUmVjdDpjb250ZW50SW5zZXRzOnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29v
cmRpbmF0ZXM6b2JzY3VyZWRJbnNldHM6dW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzOmlucHV0Vmll
d0JvdW5kczpzY2FsZTptaW5pbXVtU2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5naW5nT2JzY3Vy
ZWRJbnNldHNJbnRlcmFjdGl2ZWx5OmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3Ol0p
OgorICAgICAgICAoV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpWZWxvY2l0eURhdGE6
OlZlbG9jaXR5RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Okhpc3RvcmljYWxWZWxv
Y2l0eURhdGE6Okhpc3RvcmljYWxWZWxvY2l0eURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjp2ZWxvY2l0eUZvck5ld0RhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpjbGVhcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Okhpc3RvcmljYWxWZWxvY2l0eURhdGE6OmFwcGVuZCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OmFkanVzdFZlbG9jaXR5RGF0YUZvckJvdW5kZWRTY2FsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMpOgorCiAyMDE5
LTA1LTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjQ1NzE1PykgW1dLMl0gTGF5b3V0IFRlc3QgaHR0cC93cHQvY2FjaGUtc3RvcmFn
ZS9jYWNoZS1zdG9yYWdlLW5ldHdvcmtwcm9jZXNzLWNyYXNoLmh0bWwgaXMgYSBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjMmM3YzIyNDllM2YxZWMwNzE2NGE5MzA5ODY1YjU3
NTgyMzI4OTEzLi4yYjY2Njc2N2NlYzg0OWViNDFjNDcyYmM3OGJjYmE3YWJlZjAwMGZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEwODksNiArMTA4OSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1dpZHRoQ2FjaGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dpbmRSdWxlLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggY2EyNDhmM2ViYTYxNDRlZDQ2ODE1NzQ0M2I3MDdiZTcyYTQyM2Q1OC4u
MmUyY2ZkMTQxMDk4MTNhYjUxMDAxN2ExMjJjMWZhZjAwMjAxZjMzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE3NzksNiArMTc3OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9T
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0
UnVuLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvVmVsb2NpdHlEYXRhLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9y
LmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggY2VlMGQ0YzBhNWI4MDkxYzBhMzIxYjJjZmMwZDZkNzQyOTQzY2ZlNS4uOTJm
ODJlZmJjNjQ0YWU5YzdmMDUxYTYxY2Y5ODZhYjZlNjY3NzhmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjkyLDYgKzI5Miw3
IEBACiAJCTBGMTVEQThBMEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYxNURBODkwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
LmggKi87IH07CiAJCTBGMTVFRDVDMUI3RUM3QzUwMEVEREZFQiAvKiBXaWxsQ2hhbmdlRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNUVENUEx
QjdFQzdDNTAwRURERkVCIC8qIFdpbGxDaGFuZ2VEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxNzc0ODAxMzc4Qjc3MjAwOURBNzZBIC8q
IFNjcm9sbEFuaW1hdG9ySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjE3NzQ3RTEzNzhCNzcxMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1Mu
aCAqLzsgfTsKKwkJMEYxQTBDMzgyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQTBDMzYyMjlB
NDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMzdGMDg1MjIwMkJGOTgwMEE4OUMwQiAvKiBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3RjA4NDIyMDJBQ0I3MDBBODlDMEIgLyogU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0RENDUwMTJGNUVBMUIwMDBEOTE5MCAv
KiBTaGFkb3dCbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjNERDQ0RTEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oICovOyB9OwogCQkw
RjNGMEU1QTE1NzAzMEMzMDA2REE1N0YgLyogUmVuZGVyR2VvbWV0cnlNYXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0YwRTU4MTU3MDMwQzMwMDZE
QTU3RiAvKiBSZW5kZXJHZW9tZXRyeU1hcC5oICovOyB9OwpAQCAtNTYyOCw2ICs1NjI5LDcgQEAK
IAkJMEYxNUVENUExQjdFQzdDNTAwRURERkVCIC8qIFdpbGxDaGFuZ2VEYXRhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbGxDaGFuZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMTc3NDdFMTM3OEI3NzEwMDlEQTc2QSAvKiBTY3JvbGxBbmltYXRv
cklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvcklP
Uy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE3NzQ3RjEzNzhCNzcyMDA5REE3
NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTY3JvbGxBbmltYXRvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWZWxvY2l0eURhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYyNkE3QTcyMDU0QzIyNzAwOTBBMTQxIC8qIFRlbXBsYXRlQ29udGVu
dERvY3VtZW50RnJhZ21lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGMjZBN0E5MjA1NEMzQ0YwMDkwQTE0MSAvKiBIVE1MQkRJRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQkRJRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjZBN0FBMjA1NEVDNUEwMDkwQTE0
MSAvKiBIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRNTFVua25vd25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTU2OTksNiArNTcwMSw3IEBACiAJCTBGNTgwRkExMTQ5NjkzOTEwMEZCNUJEOCAvKiBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU4
MEZBMjE0OTY5MzkxMDBGQjVCRDggLyogV2ViVGlsZWRCYWNraW5nTGF5ZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJUaWxlZEJhY2tpbmdMYXllci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8q
IEFuaW1hdGlvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
bmltYXRpb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1QTU3
Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBWZWxvY2l0eURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1
MjEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVu
ZGVyRW1iZWRkZWRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyRW1iZWRkZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RTIw
MDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NTMwLDYgKzI0NTMzLDggQEAKIAkJCQkwNzZF
MTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCiAJCQkJQkU5
MTNEN0YxODFFRjhFNTAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAqLywKIAkJCQlFNEFG
Q0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAorCQkJCTBGNUE1N0NBMjI5
QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAorCQkJCTBGMUEwQzM2MjI5QTQ4
MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKIAkJCQkwNzVCQTg0NzIwNjE4QUE1MDBG
Q0I0QUQgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUEx
NzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMTQxMURDQjAx
NjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKQEAgLTMxOTI4LDYgKzMxOTMzLDcg
QEAKIAkJCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1Qzc3MDhEMTAwRDNDNkIwMDVCQTI2NyAvKiBWYWxp
ZGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBBRjEyQjAyNkY3MDBDMUEzNTkg
LyogVmVjdG9yTWF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxQTBDMzgyMjlBNDgxODAwRDM3
QURCIC8qIFZlbG9jaXR5RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAx
MDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTJCMEQ0QzAxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzRkJDNEFGNDE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGZjZGVmMGNjZTJmZmVmNzVhYmRmZDM5Zjk3NmYzZjY0YTNmMjk0MmUu
LjA4YjA4MTRmYTBiOWRiMzI2OWUzYWJjMmY0ODQ3NWM5MTZjMjhiNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTk5LDYgKzk5LDcgQEAKICNpbmNsdWRlICJTdHlsZVNjb3BlLmgi
CiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2lu
Zy5oIgorI2luY2x1ZGUgIlZlbG9jaXR5RGF0YS5oIgogI2luY2x1ZGUgIlZpc3VhbFZpZXdwb3J0
LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgpAQCAtNTA1MSwxMCArNTA1MiwxMCBAQCB2b2lkIEZyYW1lVmlldzo6
c2V0Q3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50KEludFNpemUgY3VzdG9tU2l6ZSkKICAgICBzZW5k
UmVzaXplRXZlbnRJZk5lZWRlZCgpOwogfQogCi12b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsVmVs
b2NpdHkoZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHks
IGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQordm9pZCBG
cmFtZVZpZXc6OnNldFNjcm9sbFZlbG9jaXR5KGNvbnN0IFZlbG9jaXR5RGF0YSYgdmVsb2NpdHlE
YXRhKQogewogICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVk
QmFja2luZygpKQotICAgICAgICB0aWxlZEJhY2tpbmctPnNldFZlbG9jaXR5KFZlbG9jaXR5RGF0
YShob3Jpem9udGFsVmVsb2NpdHksIHZlcnRpY2FsVmVsb2NpdHksIHNjYWxlQ2hhbmdlUmF0ZSwg
dGltZXN0YW1wKSk7CisgICAgICAgIHRpbGVkQmFja2luZy0+c2V0VmVsb2NpdHkodmVsb2NpdHlE
YXRhKTsKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAppbmRleCBkMzZlNTY1NjQ1YzM3OTRlNmE4NTEzMTc4ZDZlZGJmZjBjZmRiOWU4Li4z
OTAzMDFmMzc1ODcxYzE1NDMwNmQ4M2MzYjk4ZTU3ZDNmNDczMjI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgSW50U2l6ZSBjdXN0b21T
aXplRm9yUmVzaXplRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbVNpemVGb3JSZXNpemVF
dmVudDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3VzdG9tU2l6ZUZvclJlc2l6ZUV2
ZW50KEludFNpemUpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxWZWxvY2l0
eShkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxvY2l0eSwgZG91
YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsVmVsb2NpdHkoY29uc3QgVmVsb2NpdHlEYXRhJik7CiAj
ZWxzZQogICAgIGJvb2wgdXNlQ3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3QoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RpbGVkQmFja2luZy5oCmluZGV4IDQ0NDM4N2M3MzdiNTE5ZTNjNTA5OWQ2ZmE5ZTlk
N2IzNmVhMzU1Y2MuLjUyNWM0ZjNhNjc1ODlhMGJjZjYwYTM4YTBhZjc2ZjE0NDFjZGVmNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBA
IC00MSw2ICs0MSw3IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJ
bnRTaXplOwogY2xhc3MgUGxhdGZvcm1DQUxheWVyOworc3RydWN0IFZlbG9jaXR5RGF0YTsKIAog
ZW51bSBTY3JvbGxpbmdNb2RlSW5kaWNhdGlvbiB7CiAgICAgU3luY2hyb25vdXNTY3JvbGxpbmdC
ZWNhdXNlT2ZMYWNrT2ZTY3JvbGxpbmdDb29yZGluYXRvckluZGljYXRpb24sCkBAIC00OSwyNiAr
NTAsNiBAQCBlbnVtIFNjcm9sbGluZ01vZGVJbmRpY2F0aW9uIHsKICAgICBBc3luY1Njcm9sbGlu
Z0luZGljYXRpb24KIH07CiAKLXN0cnVjdCBWZWxvY2l0eURhdGEgIHsKLSAgICBkb3VibGUgaG9y
aXpvbnRhbFZlbG9jaXR5OwotICAgIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5OwotICAgIGRvdWJs
ZSBzY2FsZUNoYW5nZVJhdGU7Ci0gICAgTW9ub3RvbmljVGltZSBsYXN0VXBkYXRlVGltZTsKLSAg
ICAKLSAgICBWZWxvY2l0eURhdGEoZG91YmxlIGhvcml6b250YWwgPSAwLCBkb3VibGUgdmVydGlj
YWwgPSAwLCBkb3VibGUgc2NhbGVDaGFuZ2UgPSAwLCBNb25vdG9uaWNUaW1lIHVwZGF0ZVRpbWUg
PSBNb25vdG9uaWNUaW1lKCkpCi0gICAgICAgIDogaG9yaXpvbnRhbFZlbG9jaXR5KGhvcml6b250
YWwpCi0gICAgICAgICwgdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbCkKLSAgICAgICAgLCBzY2Fs
ZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2UpCi0gICAgICAgICwgbGFzdFVwZGF0ZVRpbWUodXBkYXRl
VGltZSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIGJvb2wgdmVsb2NpdHlPclNjYWxlSXNDaGFu
Z2luZygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFZlbG9jaXR5IHx8
IHZlcnRpY2FsVmVsb2NpdHkgfHwgc2NhbGVDaGFuZ2VSYXRlOwotICAgIH0KLX07Ci0KIGNsYXNz
IFRpbGVkQmFja2luZyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGlsZWRCYWNraW5nKCkgPSBk
ZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmVs
b2NpdHlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5
RGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIwNTI5ZGY4NTBjZDNjZGQ0YzE3YWIxNDI1YWQ3NmQ1OTE5
YzUxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1ZlbG9jaXR5RGF0YS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJWZWxvY2l0eURhdGEuaCIKKworI2luY2x1ZGUgPHd0Zi90
ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBWZWxvY2l0eURhdGEmIHZlbG9jaXR5RGF0
YSkKK3sKKyAgICB0cy5kdW1wUHJvcGVydHkoInRpbWVzdGFtcCIsIHZlbG9jaXR5RGF0YS5sYXN0
VXBkYXRlVGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIGlmICh2ZWxvY2l0
eURhdGEuaG9yaXpvbnRhbFZlbG9jaXR5KQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoImhvcml6
b250YWxWZWxvY2l0eSIsIHZlbG9jaXR5RGF0YS5ob3Jpem9udGFsVmVsb2NpdHkpOworICAgIGlm
ICh2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5
KCJ2ZXJ0aWNhbFZlbG9jaXR5IiwgdmVsb2NpdHlEYXRhLnZlcnRpY2FsVmVsb2NpdHkpOworICAg
IGlmICh2ZWxvY2l0eURhdGEuc2NhbGVDaGFuZ2VSYXRlKQorICAgICAgICB0cy5kdW1wUHJvcGVy
dHkoInNjYWxlQ2hhbmdlUmF0ZSIsIHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUpOworCisg
ICAgcmV0dXJuIHRzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiYmUy
OWFkMTU3MTgzNzY3MjFhN2UwN2QzNTdhNjEwYzQ3NTVhMDcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuaApAQCAtMCwwICsx
LDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUZXh0U3RyZWFtOworfQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBWZWxvY2l0eURhdGEgIHsKKyAgICBmbG9hdCBo
b3Jpem9udGFsVmVsb2NpdHkgeyAwIH07CisgICAgZmxvYXQgdmVydGljYWxWZWxvY2l0eSB7IDAg
fTsKKyAgICBmbG9hdCBzY2FsZUNoYW5nZVJhdGUgeyAwIH07CisgICAgTW9ub3RvbmljVGltZSBs
YXN0VXBkYXRlVGltZTsKKyAgICAKKyAgICBWZWxvY2l0eURhdGEoZmxvYXQgaG9yaXpvbnRhbCA9
IDAsIGZsb2F0IHZlcnRpY2FsID0gMCwgZmxvYXQgc2NhbGVDaGFuZ2UgPSAwLCBNb25vdG9uaWNU
aW1lIHVwZGF0ZVRpbWUgPSBNb25vdG9uaWNUaW1lKCkpCisgICAgICAgIDogaG9yaXpvbnRhbFZl
bG9jaXR5KGhvcml6b250YWwpCisgICAgICAgICwgdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbCkK
KyAgICAgICAgLCBzY2FsZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2UpCisgICAgICAgICwgbGFzdFVw
ZGF0ZVRpbWUodXBkYXRlVGltZSkKKyAgICB7CisgICAgfQorICAgIAorICAgIGJvb2wgdmVsb2Np
dHlPclNjYWxlSXNDaGFuZ2luZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gaG9yaXpv
bnRhbFZlbG9jaXR5IHx8IHZlcnRpY2FsVmVsb2NpdHkgfHwgc2NhbGVDaGFuZ2VSYXRlOworICAg
IH0KKyAgICAKKyAgICBib29sIGVxdWFsSWdub3JpbmdUaW1lc3RhbXAoY29uc3QgVmVsb2NpdHlE
YXRhJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBob3Jpem9udGFsVmVsb2Np
dHkgPT0gb3RoZXIuaG9yaXpvbnRhbFZlbG9jaXR5CisgICAgICAgICAgICAmJiB2ZXJ0aWNhbFZl
bG9jaXR5ID09IG90aGVyLnZlcnRpY2FsVmVsb2NpdHkKKyAgICAgICAgICAgICYmIHNjYWxlQ2hh
bmdlUmF0ZSA9PSBvdGhlci5zY2FsZUNoYW5nZVJhdGU7CisgICAgfQorfTsKKworV0VCQ09SRV9F
WFBPUlQgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgY29uc3QgVmVsb2NpdHlE
YXRhJik7CisKK2NsYXNzIEhpc3RvcmljYWxWZWxvY2l0eURhdGEgeworcHVibGljOgorICAgIEhp
c3RvcmljYWxWZWxvY2l0eURhdGEoKSA9IGRlZmF1bHQ7CisKKyAgICBWZWxvY2l0eURhdGEgdmVs
b2NpdHlGb3JOZXdEYXRhKEZsb2F0UG9pbnQgbmV3UG9zaXRpb24sIGRvdWJsZSBzY2FsZSwgTW9u
b3RvbmljVGltZSB0aW1lc3RhbXApCisgICAgeworICAgICAgICAvLyBEdWUgdG8gYWxsIHRoZSBz
b3VyY2Ugb2YgcmVjdCB1cGRhdGUsIHRoZSBpbnB1dCBpcyB2ZXJ5IG5vaXN5LiBUbyBzbW9vdGgg
dGhlIG91dHB1dCwgd2UgYWNjdW11bGF0ZSBhbGwgY2hhbmdlcworICAgICAgICAvLyB3aXRoaW4g
MSBmcmFtZSBhcyBhIHNpbmdsZSB1cGRhdGUuIE5vIHNwZWVkIGNvbXB1dGF0aW9uIGlzIGV2ZXIg
ZG9uZSBvbiBkYXRhIHdpdGhpbiB0aGUgc2FtZSBmcmFtZS4KKyAgICAgICAgY29uc3QgU2Vjb25k
cyBmaWx0ZXJpbmdUaHJlc2hvbGQoMS4wIC8gNjApOworCisgICAgICAgIFZlbG9jaXR5RGF0YSB2
ZWxvY2l0eURhdGE7CisgICAgICAgIGlmIChtX2hpc3RvcnlTaXplID4gMCkgeworICAgICAgICAg
ICAgdW5zaWduZWQgb2xkZXN0RGF0YUluZGV4OworICAgICAgICAgICAgdW5zaWduZWQgZGlzdGFu
Y2VUb0xhc3RIaXN0b3JpY2FsRGF0YSA9IG1faGlzdG9yeVNpemUgLSAxOworICAgICAgICAgICAg
aWYgKGRpc3RhbmNlVG9MYXN0SGlzdG9yaWNhbERhdGEgPD0gbV9sYXRlc3REYXRhSW5kZXgpCisg
ICAgICAgICAgICAgICAgb2xkZXN0RGF0YUluZGV4ID0gbV9sYXRlc3REYXRhSW5kZXggLSBkaXN0
YW5jZVRvTGFzdEhpc3RvcmljYWxEYXRhOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIG9sZGVzdERhdGFJbmRleCA9IG1faGlzdG9yeVNpemUgLSAoZGlzdGFuY2VUb0xhc3RIaXN0
b3JpY2FsRGF0YSAtIG1fbGF0ZXN0RGF0YUluZGV4KTsKKworICAgICAgICAgICAgU2Vjb25kcyB0
aW1lRGVsdGEgPSB0aW1lc3RhbXAgLSBtX3Bvc2l0aW9uSGlzdG9yeVtvbGRlc3REYXRhSW5kZXhd
LnRpbWVzdGFtcDsKKyAgICAgICAgICAgIGlmICh0aW1lRGVsdGEgPiBmaWx0ZXJpbmdUaHJlc2hv
bGQpIHsKKyAgICAgICAgICAgICAgICBEYXRhJiBvbGRlc3REYXRhID0gbV9wb3NpdGlvbkhpc3Rv
cnlbb2xkZXN0RGF0YUluZGV4XTsKKyAgICAgICAgICAgICAgICB2ZWxvY2l0eURhdGEgPSBWZWxv
Y2l0eURhdGEoKG5ld1Bvc2l0aW9uLngoKSAtIG9sZGVzdERhdGEucG9zaXRpb24ueCgpKSAvIHRp
bWVEZWx0YS5zZWNvbmRzKCksIChuZXdQb3NpdGlvbi55KCkgLSBvbGRlc3REYXRhLnBvc2l0aW9u
LnkoKSkgLyB0aW1lRGVsdGEuc2Vjb25kcygpLCAoc2NhbGUgLSBvbGRlc3REYXRhLnNjYWxlKSAv
IHRpbWVEZWx0YS5zZWNvbmRzKCksIHRpbWVzdGFtcCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICBTZWNvbmRzIHRpbWVTaW5jZUxhc3RBcHBlbmQgPSB0aW1lc3RhbXAgLSBt
X2xhc3RBcHBlbmRUaW1lc3RhbXA7CisgICAgICAgIGlmICh0aW1lU2luY2VMYXN0QXBwZW5kID4g
ZmlsdGVyaW5nVGhyZXNob2xkKQorICAgICAgICAgICAgYXBwZW5kKG5ld1Bvc2l0aW9uLCBzY2Fs
ZSwgdGltZXN0YW1wKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9wb3NpdGlvbkhpc3Rv
cnlbbV9sYXRlc3REYXRhSW5kZXhdID0geyB0aW1lc3RhbXAsIG5ld1Bvc2l0aW9uLCBzY2FsZSB9
OworCisgICAgICAgIHJldHVybiB2ZWxvY2l0eURhdGE7CisgICAgfQorCisgICAgdm9pZCBjbGVh
cigpIHsgbV9oaXN0b3J5U2l6ZSA9IDA7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGFwcGVuZChG
bG9hdFBvaW50IG5ld1Bvc2l0aW9uLCBkb3VibGUgc2NhbGUsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKQorICAgIHsKKyAgICAgICAgbV9sYXRlc3REYXRhSW5kZXggPSAobV9sYXRlc3REYXRhSW5k
ZXggKyAxKSAlIG1heEhpc3RvcnlEZXB0aDsKKyAgICAgICAgbV9wb3NpdGlvbkhpc3RvcnlbbV9s
YXRlc3REYXRhSW5kZXhdID0geyB0aW1lc3RhbXAsIG5ld1Bvc2l0aW9uLCBzY2FsZSB9OworICAg
ICAgICBtX2hpc3RvcnlTaXplID0gc3RkOjptaW4obV9oaXN0b3J5U2l6ZSArIDEsIG1heEhpc3Rv
cnlEZXB0aCk7CisgICAgICAgIG1fbGFzdEFwcGVuZFRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKKyAg
ICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heEhpc3RvcnlEZXB0aCA9IDM7
CisKKyAgICB1bnNpZ25lZCBtX2hpc3RvcnlTaXplIHsgMCB9OworICAgIHVuc2lnbmVkIG1fbGF0
ZXN0RGF0YUluZGV4IHsgMCB9OworICAgIE1vbm90b25pY1RpbWUgbV9sYXN0QXBwZW5kVGltZXN0
YW1wOworCisgICAgc3RydWN0IERhdGEgeworICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cDsKKyAgICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbjsKKyAgICAgICAgZG91YmxlIHNjYWxlOwor
ICAgIH0gbV9wb3NpdGlvbkhpc3RvcnlbbWF4SGlzdG9yeURlcHRoXTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAppbmRleCA0MzJmMGI4Yzg0NjQwZmE2YzU0OGVlZjE4
Yjc0NTE4NTY0YTdkODcyLi4yNTQ2YWM3YzljMzEyMTYzYmNjMmNkOGFjM2FjMDhkYzY3NmU1Mzc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGls
ZUNvbnRyb2xsZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAj
aW5jbHVkZSAiVGlsZUNvdmVyYWdlTWFwLmgiCiAjaW5jbHVkZSAiVGlsZUdyaWQuaCIKKyNpbmNs
dWRlICJWZWxvY2l0eURhdGEuaCIKICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgpAQCAtNDI4LDYg
KzQyOSw3IEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6OmFkanVzdFRpbGVDb3ZlcmFnZVJlY3QoRmxv
YXRSZWN0JiBjb3ZlcmFnZVJlY3QsIGNvbnN0IEZsb2F0CiAgICAgaWYgKCFtX3ZlbG9jaXR5Lmhv
cml6b250YWxWZWxvY2l0eSAmJiAhbV92ZWxvY2l0eS52ZXJ0aWNhbFZlbG9jaXR5KSB7CiAgICAg
ICAgIGlmIChtX3ZlbG9jaXR5LnNjYWxlQ2hhbmdlUmF0ZSA+IDApIHsKICAgICAgICAgICAgIGNv
dmVyYWdlUmVjdCA9IHZpc2libGVSZWN0OworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFRp
bGluZywgc3RyZWFtIDw8ICJUaWxlQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiBjb21wdXRlVGls
ZUNvdmVyYWdlUmVjdCAtIHpvb21pbmcsIGNvdmVyYWdlIGlzIHZpc2libGUgcmVjdCAiIDw8IGNv
dmVyYWdlUmVjdCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgZnV0
dXJlUmVjdC5zZXRXaWR0aChmdXR1cmVSZWN0LndpZHRoKCkgKyBob3Jpem9udGFsTWFyZ2luKTsK
QEAgLTQ0OCw4ICs0NTAsOSBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjphZGp1c3RUaWxlQ292ZXJh
Z2VSZWN0KEZsb2F0UmVjdCYgY292ZXJhZ2VSZWN0LCBjb25zdCBGbG9hdAogICAgIGlmIChmdXR1
cmVSZWN0LnkoKSA8IDApCiAgICAgICAgIGZ1dHVyZVJlY3Quc2V0WSgwKTsKIAorICAgIExPR19X
SVRIX1NUUkVBTShUaWxpbmcsIHN0cmVhbSA8PCAiVGlsZUNvbnRyb2xsZXIgIiA8PCB0aGlzIDw8
ICIgY29tcHV0ZVRpbGVDb3ZlcmFnZVJlY3QgLSBjb3ZlcmFnZSAiIDw8IGNvdmVyYWdlUmVjdCA8
PCAiIGV4cGFuZGVkIHRvICIgPDwgdW5pb25SZWN0KGNvdmVyYWdlUmVjdCwgZnV0dXJlUmVjdCkg
PDwgIiB2ZWxvY2l0eSAiIDw8IG1fdmVsb2NpdHkpOworCiAgICAgY292ZXJhZ2VSZWN0LnVuaXRl
KGZ1dHVyZVJlY3QpOwotICAgIHJldHVybjsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNvbnRl
bnRzU2NhbGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9UaWxlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvVGlsZUNvbnRyb2xsZXIuaAppbmRleCA1Nzk3ZTg2NDQwODBhZjFmMDY0ZDA2ZDNjOGFlNjg3
MTg5MjBkMTczLi5kYmIwNDlhYmU1NDMxN2JkMTFiZjA4YjYzNzlkZjJhY2Y2OGExN2MzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXJDbGllbnQu
aCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1
ZGUgIlZlbG9jaXR5RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKaW5k
ZXggZTlhODgzZDI4YmZlNjY3MWNkMjg1NjQ0NjE3NDExNGQzNzUwZTE2OS4uNjZkODA3MzQyOGU4
Y2RhMDI0NmYyNWQyOGQ1NjJlZDVlZjRmYThlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKQEAgLTQzLDEyICs0Myw5
IEBAIHZvaWQgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fY3VzdG9tRml4ZWRQb3NpdGlvblJl
Y3Q7CiAgICAgZW5jb2RlciA8PCBtX29ic2N1cmVkSW5zZXRzOwogICAgIGVuY29kZXIgPDwgbV91
bm9ic2N1cmVkU2FmZUFyZWFJbnNldHM7CisgICAgZW5jb2RlciA8PCBtX3Njcm9sbFZlbG9jaXR5
OwogICAgIGVuY29kZXIgPDwgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDsKICAgICBlbmNv
ZGVyIDw8IG1fc2NhbGU7Ci0gICAgZW5jb2RlciA8PCBtX3RpbWVzdGFtcDsKLSAgICBlbmNvZGVy
IDw8IG1faG9yaXpvbnRhbFZlbG9jaXR5OwotICAgIGVuY29kZXIgPDwgbV92ZXJ0aWNhbFZlbG9j
aXR5OwotICAgIGVuY29kZXIgPDwgbV9zY2FsZUNoYW5nZVJhdGU7CiAgICAgZW5jb2RlciA8PCBt
X2luU3RhYmxlU3RhdGU7CiAgICAgZW5jb2RlciA8PCBtX2lzRmlyc3RVcGRhdGVGb3JOZXdWaWV3
U2l6ZTsKICAgICBlbmNvZGVyIDw8IG1faXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3Rp
dmVseTsKQEAgLTc0LDE4ICs3MSwxMiBAQCBib29sIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm86OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFZpc2libGVDb250ZW50UgogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV91bm9ic2N1
cmVkU2FmZUFyZWFJbnNldHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQubV9zY3JvbGxWZWxvY2l0eSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2xhc3RMYXllclRyZWVUcmFuc2Fj
dGlvbklEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0Lm1fc2NhbGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubV90aW1lc3RhbXApKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9ob3Jpem9udGFsVmVsb2NpdHkpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV92ZXJ0aWNh
bFZlbG9jaXR5KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0Lm1fc2NhbGVDaGFuZ2VSYXRlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faW5TdGFibGVTdGF0ZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2lzRmlyc3RVcGRh
dGVGb3JOZXdWaWV3U2l6ZSkpCkBAIC0xMzIsMTQgKzEyMyw4IEBAIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8m
IGluZm8pCiAgICAgaWYgKGluZm8uZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoKSkK
ICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmll
dyIsIGluZm8uZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoKSk7CiAKLSAgICB0cy5k
dW1wUHJvcGVydHkoInRpbWVzdGFtcCIsIGluZm8udGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImFsbG93U2hyaW5rVG9GaXQiLCBp
bmZvLmFsbG93U2hyaW5rVG9GaXQoKSk7Ci0gICAgaWYgKGluZm8uaG9yaXpvbnRhbFZlbG9jaXR5
KCkpCi0gICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgiaG9yaXpvbnRhbFZlbG9jaXR5IiwgaW5mby5o
b3Jpem9udGFsVmVsb2NpdHkoKSk7Ci0gICAgaWYgKGluZm8udmVydGljYWxWZWxvY2l0eSgpKQot
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoInZlcnRpY2FsVmVsb2NpdHkiLCBpbmZvLnZlcnRpY2Fs
VmVsb2NpdHkoKSk7Ci0gICAgaWYgKGluZm8uc2NhbGVDaGFuZ2VSYXRlKCkpCi0gICAgICAgIHRz
LmR1bXBQcm9wZXJ0eSgic2NhbGVDaGFuZ2VSYXRlIiwgaW5mby5zY2FsZUNoYW5nZVJhdGUoKSk7
CisgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxWZWxvY2l0eSIsIGluZm8uc2Nyb2xsVmVsb2Np
dHkoKSk7CiAKICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKaW5kZXggODE0Y2E1NGMyMWQzZjUzMzU2
NzJlMWNlMjNiNWY2Y2I4ZDVmOGVhYy4uNTBhOGY5ZTZiMzNkY2JhYzE2ZGY5NmNlNDJmOTIzMjc4
OTZiMGVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8uaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVmVsb2NpdHlEYXRhLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDUsNyArNDYsNyBAQCBjbGFzcyBW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvIHsKIHB1YmxpYzoKICAgICBWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvKCkgPSBkZWZhdWx0OwogCi0gICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mbyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRDb250ZW50UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0Qm94RXh0ZW50JiBjb250ZW50SW5zZXRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5k
cywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUs
IGJvb2wgaW5TdGFibGVTdGF0ZSwgYm9vbCBpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUsIGJv
b2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxvd1Nocmlu
a1RvRml0LCBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3LCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2Fs
VmVsb2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVU
cmFuc2FjdGlvbklkKQorICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVu
dCYgY29udGVudEluc2V0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVj
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2Jz
Y3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQm
IHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBib29sIGluU3RhYmxlU3Rh
dGUsIGJvb2wgaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlzQ2hhbmdpbmdPYnNj
dXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgYm9vbCBlbmNs
b3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywgY29uc3QgV2ViQ29yZTo6VmVsb2NpdHlEYXRh
JiBzY3JvbGxWZWxvY2l0eSwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiAg
ICAgICAgIDogbV9leHBvc2VkQ29udGVudFJlY3QoZXhwb3NlZENvbnRlbnRSZWN0KQogICAgICAg
ICAsIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0KHVub2JzY3VyZWRDb250ZW50UmVjdCkKICAgICAg
ICAgLCBtX2NvbnRlbnRJbnNldHMoY29udGVudEluc2V0cykKQEAgLTU0LDEyICs1NSw5IEBAIHB1
YmxpYzoKICAgICAgICAgLCBtX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGN1c3RvbUZpeGVkUG9z
aXRpb25SZWN0KQogICAgICAgICAsIG1fb2JzY3VyZWRJbnNldHMob2JzY3VyZWRJbnNldHMpCiAg
ICAgICAgICwgbV91bm9ic2N1cmVkU2FmZUFyZWFJbnNldHModW5vYnNjdXJlZFNhZmVBcmVhSW5z
ZXRzKQorICAgICAgICAsIG1fc2Nyb2xsVmVsb2NpdHkoc2Nyb2xsVmVsb2NpdHkpCiAgICAgICAg
ICwgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRChsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25J
ZCkKICAgICAgICAgLCBtX3NjYWxlKHNjYWxlKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVz
dGFtcCkKLSAgICAgICAgLCBtX2hvcml6b250YWxWZWxvY2l0eShob3Jpem9udGFsVmVsb2NpdHkp
Ci0gICAgICAgICwgbV92ZXJ0aWNhbFZlbG9jaXR5KHZlcnRpY2FsVmVsb2NpdHkpCi0gICAgICAg
ICwgbV9zY2FsZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2VSYXRlKQogICAgICAgICAsIG1faW5TdGFi
bGVTdGF0ZShpblN0YWJsZVN0YXRlKQogICAgICAgICAsIG1faXNGaXJzdFVwZGF0ZUZvck5ld1Zp
ZXdTaXplKGlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSkKICAgICAgICAgLCBtX2lzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkoaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50
ZXJhY3RpdmVseSkKQEAgLTc0LDYgKzcyLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcygpIGNvbnN0
IHsgcmV0dXJuIG1fdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczsgfQogICAg
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGlu
Z0lucHV0Vmlld0JvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0
UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kczsgfQogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUZpeGVk
UG9zaXRpb25SZWN0OyB9CisgICAgY29uc3QgV2ViQ29yZTo6VmVsb2NpdHlEYXRhJiBzY3JvbGxW
ZWxvY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsVmVsb2NpdHk7IH0KICAgICBjb25zdCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNldHMoKSBjb25zdCB7IHJldHVybiBt
X29ic2N1cmVkSW5zZXRzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVu
b2JzY3VyZWRTYWZlQXJlYUluc2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZFNhZmVB
cmVhSW5zZXRzOyB9CiAKQEAgLTgzLDE0ICs4MiwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0No
YW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5KCkgY29uc3QgeyByZXR1cm4gbV9pc0No
YW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OyB9CiAgICAgYm9vbCBhbGxvd1Nocmlu
a1RvRml0KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1Nocmlua1RvRml0OyB9CiAgICAgYm9vbCBl
bmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fZW5jbG9z
ZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXc7IH0KLQotICAgIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KLSAgICBkb3VibGUgaG9yaXpvbnRh
bFZlbG9jaXR5KCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsVmVsb2NpdHk7IH0KLSAgICBk
b3VibGUgdmVydGljYWxWZWxvY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxWZWxvY2l0
eTsgfQotICAgIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3NjYWxl
Q2hhbmdlUmF0ZTsgfQotCiAgICAgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQo
KSBjb25zdCB7IHJldHVybiBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOyB9CiAKKyAgICBN
b25vdG9uaWNUaW1lIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsVmVsb2NpdHku
bGFzdFVwZGF0ZVRpbWU7IH0KKwogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvJik7CiAKQEAgLTEwNSwxMiArMTAwLDkgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpGbG9hdFJlY3QgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsgLy8gV2hlbiB2aXN1YWwg
dmlld3BvcnRzIGFyZSBlbmFibGVkLCB0aGlzIGlzIHRoZSBsYXlvdXQgdmlld3BvcnQuCiAgICAg
V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQgbV9vYnNjdXJlZEluc2V0czsKICAgICBXZWJDb3JlOjpG
bG9hdEJveEV4dGVudCBtX3Vub2JzY3VyZWRTYWZlQXJlYUluc2V0czsKKyAgICBXZWJDb3JlOjpW
ZWxvY2l0eURhdGEgbV9zY3JvbGxWZWxvY2l0eTsKICAgICB1aW50NjRfdCBtX2xhc3RMYXllclRy
ZWVUcmFuc2FjdGlvbklEIHsgMCB9OwogICAgIGRvdWJsZSBtX3NjYWxlIHsgLTEgfTsKLSAgICBN
b25vdG9uaWNUaW1lIG1fdGltZXN0YW1wOwotICAgIGRvdWJsZSBtX2hvcml6b250YWxWZWxvY2l0
eSB7IDAgfTsKLSAgICBkb3VibGUgbV92ZXJ0aWNhbFZlbG9jaXR5IHsgMCB9OwotICAgIGRvdWJs
ZSBtX3NjYWxlQ2hhbmdlUmF0ZSB7IDAgfTsKICAgICBib29sIG1faW5TdGFibGVTdGF0ZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2lzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkgeyBmYWxz
ZSB9OwpAQCAtMTI5LDkgKzEyMSw3IEBAIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgYSwgY29uc3QgVmlzaWJsZUNvbnRlCiAgICAgICAg
ICYmIGEuY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKSA9PSBiLmN1c3RvbUZpeGVkUG9zaXRpb25S
ZWN0KCkKICAgICAgICAgJiYgYS5vYnNjdXJlZEluc2V0cygpID09IGIub2JzY3VyZWRJbnNldHMo
KQogICAgICAgICAmJiBhLnVub2JzY3VyZWRTYWZlQXJlYUluc2V0cygpID09IGIudW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzKCkKLSAgICAgICAgJiYgYS5ob3Jpem9udGFsVmVsb2NpdHkoKSA9PSBi
Lmhvcml6b250YWxWZWxvY2l0eSgpCi0gICAgICAgICYmIGEudmVydGljYWxWZWxvY2l0eSgpID09
IGIudmVydGljYWxWZWxvY2l0eSgpCi0gICAgICAgICYmIGEuc2NhbGVDaGFuZ2VSYXRlKCkgPT0g
Yi5zY2FsZUNoYW5nZVJhdGUoKQorICAgICAgICAmJiBhLnNjcm9sbFZlbG9jaXR5KCkuZXF1YWxJ
Z25vcmluZ1RpbWVzdGFtcChiLnNjcm9sbFZlbG9jaXR5KCkpCiAgICAgICAgICYmIGEuaW5TdGFi
bGVTdGF0ZSgpID09IGIuaW5TdGFibGVTdGF0ZSgpCiAgICAgICAgICYmIGEuaXNGaXJzdFVwZGF0
ZUZvck5ld1ZpZXdTaXplKCkgPT0gYi5pc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUoKQogICAg
ICAgICAmJiBhLmFsbG93U2hyaW5rVG9GaXQoKSA9PSBiLmFsbG93U2hyaW5rVG9GaXQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZDRk
ZWY4ZTlmNTk2YTc2NjQ1MDliYTA3ZTBlN2IxODc3ZjMxZGM3NC4uYzk4NGM0Yzk5YWJiNjg4MzMx
MTdmNjRjYjBlYmMwMjFhOGQwMDhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC04MSw2ICs4MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9UaW1pbmdGdW5jdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRy
aXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9WZWxvY2l0eURhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KQEAgLTkyMyw2ICs5MjQsMzYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVy
PFZlbG9jaXR5RGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWZWxvY2l0eURh
dGEmIHZlbG9jaXR5RGF0YSkKK3sKKyAgICBlbmNvZGVyIDw8IHZlbG9jaXR5RGF0YS5ob3Jpem9u
dGFsVmVsb2NpdHkgPDwgdmVsb2NpdHlEYXRhLnZlcnRpY2FsVmVsb2NpdHkgPDwgdmVsb2NpdHlE
YXRhLnNjYWxlQ2hhbmdlUmF0ZSA8PCB2ZWxvY2l0eURhdGEubGFzdFVwZGF0ZVRpbWU7Cit9CisK
K2Jvb2wgQXJndW1lbnRDb2RlcjxWZWxvY2l0eURhdGE+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgVmVsb2NpdHlEYXRhJiB2ZWxvY2l0eURhdGEpCit7CisgICAgZmxvYXQgaG9yaXpvbnRhbFZl
bG9jaXR5OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaG9yaXpvbnRhbFZlbG9jaXR5KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZmxvYXQgdmVydGljYWxWZWxvY2l0eTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHZlcnRpY2FsVmVsb2NpdHkpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBmbG9hdCBzY2FsZUNoYW5nZVJhdGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShzY2FsZUNoYW5nZVJhdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBNb25vdG9u
aWNUaW1lIGxhc3RVcGRhdGVUaW1lOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGFzdFVwZGF0
ZVRpbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2ZWxvY2l0eURhdGEuaG9yaXpv
bnRhbFZlbG9jaXR5ID0gaG9yaXpvbnRhbFZlbG9jaXR5OworICAgIHZlbG9jaXR5RGF0YS52ZXJ0
aWNhbFZlbG9jaXR5ID0gdmVydGljYWxWZWxvY2l0eTsKKyAgICB2ZWxvY2l0eURhdGEuc2NhbGVD
aGFuZ2VSYXRlID0gc2NhbGVDaGFuZ2VSYXRlOworICAgIHZlbG9jaXR5RGF0YS5sYXN0VXBkYXRl
VGltZSA9IGxhc3RVcGRhdGVUaW1lOworCisgICAgcmV0dXJuIHRydWU7Cit9CiAKIHZvaWQgQXJn
dW1lbnRDb2RlcjxNaW1lQ2xhc3NJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IE1pbWVDbGFzc0luZm8mIG1pbWVDbGFzc0luZm8pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGQ4ODJmYjY4ZDg5MWFhMmVlYzcxN2NmNGEy
YWYzYjA0M2JmMzAyZjIuLmZiNzczMDcxOWI2NDA1OGY1ZjJiYzQ5YTBlOWE0YTc2MjFlNDFkYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0x
MjUsNiArMTI1LDcgQEAgc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwogI2lmIEVOQUJMRShQT0lO
VEVSX0VWRU5UUykKIHN0cnVjdCBUb3VjaEFjdGlvbkRhdGE7CiAjZW5kaWYKK3N0cnVjdCBWZWxv
Y2l0eURhdGE7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1
cmVzOwogICAgIApAQCAtMzM0LDYgKzMzNSwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiB9OwogCit0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZlbG9jaXR5RGF0YT4geworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VmVsb2NpdHlEYXRh
Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpWZWxvY2l0eURh
dGEmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWlt
ZUNsYXNzSW5mbz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6TWltZUNsYXNzSW5mbyYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpNaW1l
Q2xhc3NJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5tbQppbmRleCA1NWQ4MGNhNTVkZmM1NTY1NDQyNzhmNjEwMmNkYWFm
OWQwMTUwMWMwLi41NmI0NTYyYzc5NmE3MTRiOWEwOTM3ZDY2ODI4MTM3Yjg4YjQ2OTIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtNjAsMTAz
ICs2MCwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9RdWlya3MuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvVmVsb2NpdHlEYXRhLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1
YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90
ZXh0L1RleHRTdHJlYW0uaD4KIAogCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotY2xhc3MgSGlzdG9yaWNhbFZl
bG9jaXR5RGF0YSB7Ci1wdWJsaWM6Ci0gICAgc3RydWN0IFZlbG9jaXR5RGF0YSB7Ci0gICAgICAg
IFZlbG9jaXR5RGF0YSgpCi0gICAgICAgICAgICA6IGhvcml6b250YWxWZWxvY2l0eSgwKQotICAg
ICAgICAgICAgLCB2ZXJ0aWNhbFZlbG9jaXR5KDApCi0gICAgICAgICAgICAsIHNjYWxlQ2hhbmdl
UmF0ZSgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBWZWxvY2l0eURhdGEoZG91
YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBz
Y2FsZUNoYW5nZVJhdGUpCi0gICAgICAgICAgICA6IGhvcml6b250YWxWZWxvY2l0eShob3Jpem9u
dGFsVmVsb2NpdHkpCi0gICAgICAgICAgICAsIHZlcnRpY2FsVmVsb2NpdHkodmVydGljYWxWZWxv
Y2l0eSkKLSAgICAgICAgICAgICwgc2NhbGVDaGFuZ2VSYXRlKHNjYWxlQ2hhbmdlUmF0ZSkKLSAg
ICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eTsK
LSAgICAgICAgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHk7Ci0gICAgICAgIGRvdWJsZSBzY2FsZUNo
YW5nZVJhdGU7Ci0gICAgfTsKLQotICAgIEhpc3RvcmljYWxWZWxvY2l0eURhdGEoKQotICAgICAg
ICA6IG1faGlzdG9yeVNpemUoMCkKLSAgICAgICAgLCBtX2xhdGVzdERhdGFJbmRleCgwKQotICAg
IHsKLSAgICB9Ci0KLSAgICBWZWxvY2l0eURhdGEgdmVsb2NpdHlGb3JOZXdEYXRhKENHUG9pbnQg
bmV3UG9zaXRpb24sIGRvdWJsZSBzY2FsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCi0gICAg
ewotICAgICAgICAvLyBEdWUgdG8gYWxsIHRoZSBzb3VyY2Ugb2YgcmVjdCB1cGRhdGUsIHRoZSBp
bnB1dCBpcyB2ZXJ5IG5vaXN5LiBUbyBzbW9vdGggdGhlIG91dHB1dCwgd2UgYWNjdW11bGF0ZSBh
bGwgY2hhbmdlcwotICAgICAgICAvLyB3aXRoaW4gMSBmcmFtZSBhcyBhIHNpbmdsZSB1cGRhdGUu
IE5vIHNwZWVkIGNvbXB1dGF0aW9uIGlzIGV2ZXIgZG9uZSBvbiBkYXRhIHdpdGhpbiB0aGUgc2Ft
ZSBmcmFtZS4KLSAgICAgICAgY29uc3QgU2Vjb25kcyBmaWx0ZXJpbmdUaHJlc2hvbGQoMS4wIC8g
NjApOwotCi0gICAgICAgIFZlbG9jaXR5RGF0YSB2ZWxvY2l0eURhdGE7Ci0gICAgICAgIGlmICht
X2hpc3RvcnlTaXplID4gMCkgewotICAgICAgICAgICAgdW5zaWduZWQgb2xkZXN0RGF0YUluZGV4
OwotICAgICAgICAgICAgdW5zaWduZWQgZGlzdGFuY2VUb0xhc3RIaXN0b3JpY2FsRGF0YSA9IG1f
aGlzdG9yeVNpemUgLSAxOwotICAgICAgICAgICAgaWYgKGRpc3RhbmNlVG9MYXN0SGlzdG9yaWNh
bERhdGEgPD0gbV9sYXRlc3REYXRhSW5kZXgpCi0gICAgICAgICAgICAgICAgb2xkZXN0RGF0YUlu
ZGV4ID0gbV9sYXRlc3REYXRhSW5kZXggLSBkaXN0YW5jZVRvTGFzdEhpc3RvcmljYWxEYXRhOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG9sZGVzdERhdGFJbmRleCA9IG1faGlz
dG9yeVNpemUgLSAoZGlzdGFuY2VUb0xhc3RIaXN0b3JpY2FsRGF0YSAtIG1fbGF0ZXN0RGF0YUlu
ZGV4KTsKLQotICAgICAgICAgICAgU2Vjb25kcyB0aW1lRGVsdGEgPSB0aW1lc3RhbXAgLSBtX2hp
c3Rvcnlbb2xkZXN0RGF0YUluZGV4XS50aW1lc3RhbXA7Ci0gICAgICAgICAgICBpZiAodGltZURl
bHRhID4gZmlsdGVyaW5nVGhyZXNob2xkKSB7Ci0gICAgICAgICAgICAgICAgRGF0YSYgb2xkZXN0
RGF0YSA9IG1faGlzdG9yeVtvbGRlc3REYXRhSW5kZXhdOwotICAgICAgICAgICAgICAgIHZlbG9j
aXR5RGF0YSA9IFZlbG9jaXR5RGF0YSgobmV3UG9zaXRpb24ueCAtIG9sZGVzdERhdGEucG9zaXRp
b24ueCkgLyB0aW1lRGVsdGEuc2Vjb25kcygpLCAobmV3UG9zaXRpb24ueSAtIG9sZGVzdERhdGEu
cG9zaXRpb24ueSkgLyB0aW1lRGVsdGEuc2Vjb25kcygpLCAoc2NhbGUgLSBvbGRlc3REYXRhLnNj
YWxlKSAvIHRpbWVEZWx0YS5zZWNvbmRzKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0K
LSAgICAgICAgU2Vjb25kcyB0aW1lU2luY2VMYXN0QXBwZW5kID0gdGltZXN0YW1wIC0gbV9sYXN0
QXBwZW5kVGltZXN0YW1wOwotICAgICAgICBpZiAodGltZVNpbmNlTGFzdEFwcGVuZCA+IGZpbHRl
cmluZ1RocmVzaG9sZCkKLSAgICAgICAgICAgIGFwcGVuZChuZXdQb3NpdGlvbiwgc2NhbGUsIHRp
bWVzdGFtcCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1faGlzdG9yeVttX2xhdGVzdERh
dGFJbmRleF0gPSB7IHRpbWVzdGFtcCwgbmV3UG9zaXRpb24sIHNjYWxlIH07Ci0gICAgICAgIHJl
dHVybiB2ZWxvY2l0eURhdGE7Ci0gICAgfQotCi0gICAgdm9pZCBjbGVhcigpIHsgbV9oaXN0b3J5
U2l6ZSA9IDA7IH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIGFwcGVuZChDR1BvaW50IG5ld1Bvc2l0
aW9uLCBkb3VibGUgc2NhbGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQotICAgIHsKLSAgICAg
ICAgbV9sYXRlc3REYXRhSW5kZXggPSAobV9sYXRlc3REYXRhSW5kZXggKyAxKSAlIG1heEhpc3Rv
cnlEZXB0aDsKLSAgICAgICAgbV9oaXN0b3J5W21fbGF0ZXN0RGF0YUluZGV4XSA9IHsgdGltZXN0
YW1wLCBuZXdQb3NpdGlvbiwgc2NhbGUgfTsKLQotICAgICAgICB1bnNpZ25lZCBzaXplID0gbV9o
aXN0b3J5U2l6ZSArIDE7Ci0gICAgICAgIGlmIChzaXplIDw9IG1heEhpc3RvcnlEZXB0aCkKLSAg
ICAgICAgICAgIG1faGlzdG9yeVNpemUgPSBzaXplOwotCi0gICAgICAgIG1fbGFzdEFwcGVuZFRp
bWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICB9Ci0KLQotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBtYXhIaXN0b3J5RGVwdGggPSAzOwotCi0gICAgdW5zaWduZWQgbV9oaXN0b3J5U2l6ZTsKLSAg
ICB1bnNpZ25lZCBtX2xhdGVzdERhdGFJbmRleDsKLSAgICBNb25vdG9uaWNUaW1lIG1fbGFzdEFw
cGVuZFRpbWVzdGFtcDsKLQotICAgIHN0cnVjdCBEYXRhIHsKLSAgICAgICAgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXA7Ci0gICAgICAgIENHUG9pbnQgcG9zaXRpb247Ci0gICAgICAgIGRvdWJsZSBz
Y2FsZTsKLSAgICB9IG1faGlzdG9yeVttYXhIaXN0b3J5RGVwdGhdOwotfTsKLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCiBAaW50ZXJmYWNlIFdLSW5zcGVjdG9ySW5kaWNhdGlvblZpZXcgOiBVSVZp
ZXcKIEBlbmQKIApAQCAtMjIzLDcgKzEzMiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0NvbnRlbnRW
aWV3IHsKICAgICBSZXRhaW5QdHI8X1VJTGF5ZXJIb3N0Vmlldz4gX3Zpc2liaWxpdHlQcm9wYWdh
dGlvblZpZXc7CiAjZW5kaWYKIAotICAgIFdlYktpdDo6SGlzdG9yaWNhbFZlbG9jaXR5RGF0YSBf
aGlzdG9yaWNhbEtpbmVtYXRpY0RhdGE7CisgICAgV2ViQ29yZTo6SGlzdG9yaWNhbFZlbG9jaXR5
RGF0YSBfaGlzdG9yaWNhbEtpbmVtYXRpY0RhdGE7CiAKICAgICBSZXRhaW5QdHI8TlNVbmRvTWFu
YWdlcj4gX3VuZG9NYW5hZ2VyOwogICAgIFJldGFpblB0cjxXS1F1aXJreU5TVW5kb01hbmFnZXI+
IF9xdWlya3lVbmRvTWFuYWdlcjsKQEAgLTQ2MywxMSArMzcyLDEzIEBAIC0gKHZvaWQpZGlkVXBk
YXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlQ29udGVudFJlY3QKICAgICAgICAgcmV0dXJu
OwogCiAgICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lOjpub3coKTsK
LSAgICBXZWJLaXQ6Okhpc3RvcmljYWxWZWxvY2l0eURhdGE6OlZlbG9jaXR5RGF0YSB2ZWxvY2l0
eURhdGE7CisgICAgV2ViQ29yZTo6VmVsb2NpdHlEYXRhIHZlbG9jaXR5RGF0YTsKICAgICBpZiAo
IWlzU3RhYmxlU3RhdGUpCiAgICAgICAgIHZlbG9jaXR5RGF0YSA9IF9oaXN0b3JpY2FsS2luZW1h
dGljRGF0YS52ZWxvY2l0eUZvck5ld0RhdGEodmlzaWJsZUNvbnRlbnRSZWN0Lm9yaWdpbiwgem9v
bVNjYWxlLCB0aW1lc3RhbXApOwotICAgIGVsc2UKKyAgICBlbHNlIHsKICAgICAgICAgX2hpc3Rv
cmljYWxLaW5lbWF0aWNEYXRhLmNsZWFyKCk7CisgICAgICAgIHZlbG9jaXR5RGF0YSA9IHsgMCwg
MCwgMCwgdGltZXN0YW1wIH07CisgICAgfQogCiAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5KiBzY3JvbGxpbmdDb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5KCk7CiAKQEAgLTQ4OSwxMCArNDAwLDcgQEAgLSAodm9pZClkaWRVcGRh
dGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVDb250ZW50UmVjdAogICAgICAgICBpc0NoYW5n
aW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5LAogICAgICAgICBfd2ViVmlldy5fYWxsb3dz
Vmlld3BvcnRTaHJpbmtUb0ZpdCwKICAgICAgICAgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3Rv
clZpZXcsCi0gICAgICAgIHRpbWVzdGFtcCwKLSAgICAgICAgdmVsb2NpdHlEYXRhLmhvcml6b250
YWxWZWxvY2l0eSwKLSAgICAgICAgdmVsb2NpdHlEYXRhLnZlcnRpY2FsVmVsb2NpdHksCi0gICAg
ICAgIHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUsCisgICAgICAgIHZlbG9jaXR5RGF0YSwK
ICAgICAgICAgZG93bmNhc3Q8V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
PigqZHJhd2luZ0FyZWEpLmxhc3RDb21taXR0ZWRMYXllclRyZWVUcmFuc2FjdGlvbklEKCkpOwog
CiAgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICItW1dLQ29udGVu
dFZpZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3RdIiA8PCB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLmR1bXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCmluZGV4IGMxMTlkNGYxMjQ3ZWY2NWM2Yjg4ZGFjZWRjY2I3ZTgxZTcx
ZTJmYjAuLjM4MTdiZTIzNWRkNjQ0ZTJjZTZiNzQ5YzFkZDM5YmYyODUyMDg4ZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0zMTE2LDcgKzMxMTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgVwogICAgICAgICBuZXdF
eHBvc2VkQ29udGVudFJlY3QubW92ZUJ5KGFkanVzdG1lbnREZWx0YSk7CiAgICAgfQogCi0gICAg
ZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KDAsIDAsIDAsIE1vbm90b25pY1RpbWU6Om5vdygp
KTsKKyAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsVmVsb2NpdHkoeyAwLCAwLCAwLCBNb25vdG9uaWNU
aW1lOjpub3coKSB9KTsKIAogICAgIEludFBvaW50IHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJl
Y3RQb3NpdGlvbiA9IHJvdW5kZWRJbnRQb2ludChuZXdVbm9ic2N1cmVkQ29udGVudFJlY3QubG9j
YXRpb24oKSk7CiAgICAgZnJhbWVWaWV3LnNldFVub2JzY3VyZWRDb250ZW50U2l6ZShuZXdVbm9i
c2N1cmVkQ29udGVudFJlY3Quc2l6ZSgpKTsKQEAgLTMyODksNyArMzI4OSw3IEBAIHZvaWQgV2Vi
UGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZChab29tVG9Jbml0aWFsU2NhbGUgem9v
bVRvSW5pdGlhbFNjYWxlCiAgICAgICAgIG1pbmltdW1MYXlvdXRTaXplSW5TY3JvbGxWaWV3Q29v
cmRpbmF0ZXMuc2NhbGUoMSAvIHNjYWxlKTsKICAgICAgICAgSW50U2l6ZSBtaW5pbXVtTGF5b3V0
U2l6ZUluRG9jdW1lbnRDb29yZGluYXRlcyA9IHJvdW5kZWRJbnRTaXplKG1pbmltdW1MYXlvdXRT
aXplSW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMpOwogICAgICAgICBmcmFtZVZpZXcuc2V0VW5vYnNj
dXJlZENvbnRlbnRTaXplKG1pbmltdW1MYXlvdXRTaXplSW5Eb2N1bWVudENvb3JkaW5hdGVzKTsK
LSAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KDAsIDAsIDAsIE1vbm90b25pY1Rp
bWU6Om5vdygpKTsKKyAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5KHsgMCwgMCwg
MCwgTW9ub3RvbmljVGltZTo6bm93KCkgfSk7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxk
IHNlbmQgZG93biB0aGUgb2JzY3VyZWQgbWFyZ2lucyB0byBmaW5kIGEgYmV0dGVyIGV4cG9zZWQg
cmVjdCBhbmQgdW5vYnNjdXJlZCByZWN0LgogICAgICAgICAvLyBJdCBpcyBub3QgYSBiaWcgZGVh
bCBhdCB0aGUgbW9tZW50IGJlY2F1c2UgdGhlIHRpbGUgY292ZXJhZ2Ugd2lsbCBhbHdheXMgZXh0
ZW5kIHBhc3QgdGhlIG9ic2N1cmVkIGJvdHRvbSBpbnNldC4KQEAgLTMzNjAsMTUgKzMzNjAsMTUg
QEAgdm9pZCBXZWJQYWdlOjphcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCiAgICAgICAgIG1f
cGFnZS0+YXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKTsKIH0KIAotc3RhdGljIGlubGluZSB2
b2lkIGFkanVzdFZlbG9jaXR5RGF0YUZvckJvdW5kZWRTY2FsZShkb3VibGUmIGhvcml6b250YWxW
ZWxvY2l0eSwgZG91YmxlJiB2ZXJ0aWNhbFZlbG9jaXR5LCBkb3VibGUmIHNjYWxlQ2hhbmdlUmF0
ZSwgZG91YmxlIGV4cG9zZWRSZWN0U2NhbGUsIGRvdWJsZSBtaW5pbXVtU2NhbGUsIGRvdWJsZSBt
YXhpbXVtU2NhbGUpCitzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0VmVsb2NpdHlEYXRhRm9yQm91
bmRlZFNjYWxlKFZlbG9jaXR5RGF0YSYgdmVsb2NpdHlEYXRhLCBkb3VibGUgZXhwb3NlZFJlY3RT
Y2FsZSwgZG91YmxlIG1pbmltdW1TY2FsZSwgZG91YmxlIG1heGltdW1TY2FsZSkKIHsKLSAgICBp
ZiAoc2NhbGVDaGFuZ2VSYXRlKSB7Ci0gICAgICAgIGhvcml6b250YWxWZWxvY2l0eSA9IDA7Ci0g
ICAgICAgIHZlcnRpY2FsVmVsb2NpdHkgPSAwOworICAgIGlmICh2ZWxvY2l0eURhdGEuc2NhbGVD
aGFuZ2VSYXRlKSB7CisgICAgICAgIHZlbG9jaXR5RGF0YS5ob3Jpem9udGFsVmVsb2NpdHkgPSAw
OworICAgICAgICB2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSA9IDA7CiAgICAgfQogCiAg
ICAgaWYgKGV4cG9zZWRSZWN0U2NhbGUgPj0gbWF4aW11bVNjYWxlIHx8IGV4cG9zZWRSZWN0U2Nh
bGUgPD0gbWluaW11bVNjYWxlKQotICAgICAgICBzY2FsZUNoYW5nZVJhdGUgPSAwOworICAgICAg
ICB2ZWxvY2l0eURhdGEuc2NhbGVDaGFuZ2VSYXRlID0gMDsKIH0KIAogT3B0aW9uYWw8ZmxvYXQ+
IFdlYlBhZ2U6OnNjYWxlRnJvbVVJUHJvY2Vzcyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvJiB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKSBjb25zdApAQCAtMzQ3NiwxMiAr
MzQ3Niw5IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNpCiAgICAgbV9wYWdlLT5zZXRVbm9ic2N1
cmVkU2FmZUFyZWFJbnNldHModmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby51bm9ic2N1cmVk
U2FmZUFyZWFJbnNldHMoKSk7CiAgICAgbV9wYWdlLT5zZXRFbmNsb3NlZEluU2Nyb2xsYWJsZUFu
Y2VzdG9yVmlldyh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmVuY2xvc2VkSW5TY3JvbGxh
YmxlQW5jZXN0b3JWaWV3KCkpOwogCi0gICAgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSA9IHZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaG9yaXpvbnRhbFZlbG9jaXR5KCk7Ci0gICAgZG91
YmxlIHZlcnRpY2FsVmVsb2NpdHkgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnZlcnRp
Y2FsVmVsb2NpdHkoKTsKLSAgICBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlID0gdmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mby5zY2FsZUNoYW5nZVJhdGUoKTsKLSAgICBhZGp1c3RWZWxvY2l0eURh
dGFGb3JCb3VuZGVkU2NhbGUoaG9yaXpvbnRhbFZlbG9jaXR5LCB2ZXJ0aWNhbFZlbG9jaXR5LCBz
Y2FsZUNoYW5nZVJhdGUsIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uc2NhbGUoKSwgbV92
aWV3cG9ydENvbmZpZ3VyYXRpb24ubWluaW11bVNjYWxlKCksIG1fdmlld3BvcnRDb25maWd1cmF0
aW9uLm1heGltdW1TY2FsZSgpKTsKLQotICAgIGZyYW1lVmlldy5zZXRTY3JvbGxWZWxvY2l0eSho
b3Jpem9udGFsVmVsb2NpdHksIHZlcnRpY2FsVmVsb2NpdHksIHNjYWxlQ2hhbmdlUmF0ZSwgdmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby50aW1lc3RhbXAoKSk7CisgICAgVmVsb2NpdHlEYXRh
IHNjcm9sbFZlbG9jaXR5ID0gdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5zY3JvbGxWZWxv
Y2l0eSgpOworICAgIGFkanVzdFZlbG9jaXR5RGF0YUZvckJvdW5kZWRTY2FsZShzY3JvbGxWZWxv
Y2l0eSwgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5zY2FsZSgpLCBtX3ZpZXdwb3J0Q29u
ZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWF4aW11
bVNjYWxlKCkpOworICAgIGZyYW1lVmlldy5zZXRTY3JvbGxWZWxvY2l0eShzY3JvbGxWZWxvY2l0
eSk7CiAKICAgICBpZiAobV9pc0luU3RhYmxlU3RhdGUpIHsKICAgICAgICAgaWYgKHZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8udW5vYnNjdXJlZENvbnRlbnRSZWN0KCkgIT0gdmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby51bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRW
aWV3Qm91bmRzKCkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>