<?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>208385</bug_id>
          
          <creation_ts>2020-02-28 11:26:39 -0800</creation_ts>
          <short_desc>[First paint] Going from visually empty to non-empty should immediately trigger layer unfreezing</short_desc>
          <delta_ts>2020-03-04 06:53:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          <dependson>208536</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1624045</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-28 11:26:39 -0800</bug_when>
    <thetext>instead of going through the layout milestone process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624046</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-28 11:26:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/59895900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624155</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-28 15:30:34 -0800</bug_when>
    <thetext>1   0x10e0ca2c2 WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen(bool)
2   0x10e20750b WebKit::WebPage::unfreezeLayerTree(WebKit::WebPage::LayerTreeFreezeReason)
3   0x10e20e490 WebKit::WebPage::didCompletePageTransition()
4   0x10e17b411 WebKit::WebFrameLoaderClient::dispatchDidReachVisuallyNonEmptyState()
5   0x7813dc846 WebCore::FrameView::styleAndRenderTreeDidChange()
6   0x780ea9c08 WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
7   0x780eaa0b9 WebCore::Document::updateStyleIfNeeded()
8   0x7814b6eba WebCore::ThreadTimers::sharedTimerFiredInternal()
9   0x7814dc3ef WebCore::timerFired(__CFRunLoopTimer*, void*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624164</commentid>
    <comment_count>3</comment_count>
      <attachid>392027</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-28 15:50:10 -0800</bug_when>
    <thetext>Created attachment 392027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625043</commentid>
    <comment_count>4</comment_count>
      <attachid>392273</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-03-03 07:38:14 -0800</bug_when>
    <thetext>Created attachment 392273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625374</commentid>
    <comment_count>5</comment_count>
      <attachid>392364</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-03-03 20:03:32 -0800</bug_when>
    <thetext>Created attachment 392364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625494</commentid>
    <comment_count>6</comment_count>
      <attachid>392364</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-04 06:53:07 -0800</bug_when>
    <thetext>Comment on attachment 392364
Patch

Clearing flags on attachment: 392364

Committed r257840: &lt;https://trac.webkit.org/changeset/257840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625495</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-04 06:53:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392027</attachid>
            <date>2020-02-28 15:50:10 -0800</date>
            <delta_ts>2020-03-03 07:38:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208385-20200228155010.patch</filename>
            <type>text/plain</type>
            <size>18282</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM2ZGFjZjZmZWE3MTU3
YzdhNDkyMGFhMzMxNjMwZDkzNWNiMzYwMS4uZWJiZjZlZjdjN2I4MmMzZDc4NmQ2MTYxYWNhZjM4
OGI4ZGRmMmYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTAyLTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZpcnN0IHBhaW50XSBHb2lu
ZyBmcm9tIHZpc3VhbGx5IGVtcHR5IHRvIG5vbi1lbXB0eSBzaG91bGQgaW1tZWRpYXRlbHkgdHJp
Z2dlciBsYXllciB1bmZyZWV6aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDgzODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk1OTAwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdJUC4KKwor
ICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpkaWRS
ZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzdHlsZUFuZFJl
bmRlclRyZWVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpjaGVja0Fu
ZERpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpmaXJlTGF5b3V0UmVsYXRlZE1pbGVzdG9uZXNJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKwogMjAyMC0wMi0yNiAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBDcmVhdGUgQXVkaW9E
ZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNjkyNTk3NTE1ZjY4NTkw
NGRmMTdiYWE2OGZlYTljNzc4MmU3YzgxNy4uNTI1YzNmNTk4ODZmOWNmYjUzNjVmZDE1YzUwNGRi
ZWFiMThmZjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMC0wMi0yOCAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtGaXJzdCBwYWludF0gR29pbmcg
ZnJvbSB2aXN1YWxseSBlbXB0eSB0byBub24tZW1wdHkgc2hvdWxkIGltbWVkaWF0ZWx5IHRyaWdn
ZXIgbGF5ZXIgdW5mcmVlemluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4Mzg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5NTkwMD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVAuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVh
Y2hMYXlvdXRNaWxlc3RvbmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6ZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXNldElk
ZW1wb3RlbnRUZXh0QXV0b3NpemluZ0lmTmVlZGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2Vi
S2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUpOgorCiAyMDIwLTAyLTI2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBbm5vdGF0ZSBtZWRpYVR5cGUgd2l0aCBhbiBhdmFpbGFiaWxpdHkgbWFjcm8uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBk
ZjYyYmEwYTc1NjdkMjAyNjhjMzJjM2YwM2MxZjYzYzdkMDgwMzVkLi4xZDlmMTEzN2E4NzBkYmZi
ZjYyOTRhNDE3OGYyMTk5YTZhYWVjYTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTk1LDYgKzk1LDcgQEAgY2xhc3MgV0VCQ09SRV9F
WFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7
CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpIGZpbmFsIHsgfQogICAg
IHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRj
aERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxMYXlvdXRNaWxlc3RvbmU+KSBmaW5h
bCB7IH0KKyAgICB2b2lkIGRpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKSBm
aW5hbCB7IH0KIAogICAgIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIGRpc3BhdGNoU2hv
dygpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMzFh
NGZkOGZkOTVlNGM0OGJmODZkN2ZhYjg4ODA1Njk3YTg2MTZhMi4uMTFlZjlmZTI3MGM3MjE1ZDg5
OWEzYmQyNmEwYTIwMWRlMDA4N2NlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC0yNjgxLDYgKzI2ODEsMTIgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkRmlyc3RMYXlv
dXQoKQogICAgICAgICBtX3N0YXRlTWFjaGluZS5hZHZhbmNlVG8oRnJhbWVMb2FkZXJTdGF0ZU1h
Y2hpbmU6OkZpcnN0TGF5b3V0RG9uZSk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXI6OmRpZFJlYWNo
VmlzdWFsbHlOb25FbXB0eVN0YXRlKCkKK3sKKyAgICBBU1NFUlQobV9mcmFtZS5pc01haW5GcmFt
ZSgpKTsKKyAgICBtX2NsaWVudC5kaXNwYXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRl
KCk7Cit9CisKIHZvaWQgRnJhbWVMb2FkZXI6OmZyYW1lTG9hZENvbXBsZXRlZCgpCiB7CiAgICAg
Ly8gTm90ZTogQ2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKaW5kZXggZWNjOGE0ZTFiYTJmODUzM2UyYTc4Y2U2NjRhZTE2NWJjOTNiZjAy
ZS4uOTIwMTU5YjgzYmI4ZGM5ZDZkZTZlZWI5NTBhMmMyOWVjNDgwZjNhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxMYXlvdXRNaWxlc3RvbmU+KTsK
ICAgICB2b2lkIGRpZEZpcnN0TGF5b3V0KCk7CisgICAgdm9pZCBkaWRSZWFjaFZpc3VhbGx5Tm9u
RW1wdHlTdGF0ZSgpOwogCiAgICAgdm9pZCBsb2FkZWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShD
YWNoZWRSZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgUmVzb3VyY2VFcnJv
ciYpOwogICAgIHZvaWQgdGVsbENsaWVudEFib3V0UGFzdE1lbW9yeUNhY2hlTG9hZHMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNWM4YWJiNjFlMzBi
NzBiODJjODZmZjg1MmU2MjcxOTRhNmNkYmVjYy4uMzU5NjJiZjU4M2E4MzY2YjgxYzk2MDA3Yjdk
MjRlODBmNzY4ODNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTE4Nyw2ICsxODcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRMYXlvdXQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaExheW91
dE1pbGVzdG9uZShPcHRpb25TZXQ8TGF5b3V0TWlsZXN0b25lPikgeyB9CisgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKSB7IH0KIAogICAgIHZp
cnR1YWwgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggZjRmOGU3ZDQ3YWNmZDhjNjU4NTdlODdiNGJmZDNkNjdiNDExN2Zh
NS4uOTRiYjI4MTNiMDIwZGU5MmMyZWE0NDAxYjVhMTNkMjYxMjNiMzUyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtODA3LDEwICs4MDcsNyBAQCB2b2lkIEZyYW1lVmlldzo6c3R5
bGVBbmRSZW5kZXJUcmVlRGlkQ2hhbmdlKCkKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGlmICghbV9jb250ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5
KSB7Ci0gICAgICAgIC8vIExldCdzIGNoZWNrIHdoZXRoZXIgdGhlIG5ld2x5IGNvbnN0cnVjdGVk
IGNvbnRlbnQgcXVhbGlmaWVzIGFzIG5vbi1lbXB0eSBub3cuCi0gICAgICAgIG1fY29udGVudFF1
YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSA9IHF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgp
OwotICAgIH0KKyAgICBjaGVja0FuZERpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3Rh
dGUoKTsKICAgICBhdXRvKiBsYXllclRyZWVNdXRhdGlvblJvb3QgPSByZW5kZXJWaWV3LT50YWtl
U3R5bGVDaGFuZ2VMYXllclRyZWVNdXRhdGlvblJvb3QoKTsKICAgICBpZiAobGF5ZXJUcmVlTXV0
YXRpb25Sb290ICYmICFuZWVkc0xheW91dCgpKQogICAgICAgICBsYXllclRyZWVNdXRhdGlvblJv
b3QtPnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTdHlsZUNoYW5nZSgpOwpAQCAtNDM3NSw3MCAr
NDM3Miw4MiBAQCBib29sIEZyYW1lVmlldzo6cXVhbGlmaWVzQXNTaWduaWZpY2FudFJlbmRlcmVk
VGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFzUmVhY2hlZFNpZ25pZmljYW50UmVuZGVyZWRU
ZXh0VGhyZXNob2xkOwogfQogCi1ib29sIEZyYW1lVmlldzo6cXVhbGlmaWVzQXNWaXN1YWxseU5v
bkVtcHR5KCkgY29uc3QKK3ZvaWQgRnJhbWVWaWV3OjpjaGVja0FuZERpc3BhdGNoRGlkUmVhY2hW
aXN1YWxseU5vbkVtcHR5U3RhdGUoKQogewotICAgIC8vIE5vIGNvbnRlbnQgeWV0LgotICAgIEVs
ZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVt
ZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudEVsZW1lbnQgfHwgIWRvY3VtZW50RWxlbWVudC0+cmVu
ZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8gcXVhbGlmaWVzQXNWaXN1
YWxseU5vbkVtcHR5ID0gWyZdIHsKKyAgICAgICAgLy8gTm8gY29udGVudCB5ZXQuCisgICAgICAg
IEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKS0+ZG9jdW1lbnRF
bGVtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnRFbGVtZW50IHx8ICFkb2N1bWVudEVsZW1l
bnQtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGFsc28gaWdub3JlIHJlbmRlcmVycyB3aXRoIG5vbi1maW5hbCBzdHlsZS4K
LSAgICBpZiAoZnJhbWUoKS5kb2N1bWVudCgpLT5zdHlsZVNjb3BlKCkuaGFzUGVuZGluZ1NoZWV0
c0JlZm9yZUJvZHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGFsc28gaWdub3JlIHJlbmRlcmVycyB3aXRoIG5vbi1maW5hbCBzdHlsZS4KKyAg
ICAgICAgaWYgKGZyYW1lKCkuZG9jdW1lbnQoKS0+c3R5bGVTY29wZSgpLmhhc1BlbmRpbmdTaGVl
dHNCZWZvcmVCb2R5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIGZp
bmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCA9IGZyYW1lKCkubG9hZGVyKCkuc3RhdGVNYWNoaW5l
KCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkgJiYgKGZyYW1lKCkuZG9jdW1lbnQo
KS0+cmVhZHlTdGF0ZSgpID09IERvY3VtZW50OjpJbnRlcmFjdGl2ZSB8fCBmcmFtZSgpLmRvY3Vt
ZW50KCktPnJlYWR5U3RhdGUoKSA9PSBEb2N1bWVudDo6Q29tcGxldGUpOwotICAgIC8vIEVuc3Vy
ZSB0aGF0IHdlIGFsd2F5cyBmaXJlIHZpc3VhbGx5IG5vbi1lbXB0eSBtaWxlc3RvbmUgZXZlbnR1
YWxseS4KLSAgICBpZiAoZmluaXNoZWRQYXJzaW5nTWFpbkRvY3VtZW50ICYmIGZyYW1lKCkubG9h
ZGVyKCkuaXNDb21wbGV0ZSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgYXV0byBm
aW5pc2hlZFBhcnNpbmdNYWluRG9jdW1lbnQgPSBmcmFtZSgpLmxvYWRlcigpLnN0YXRlTWFjaGlu
ZSgpLmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpICYmIChmcmFtZSgpLmRvY3VtZW50
KCktPnJlYWR5U3RhdGUoKSA9PSBEb2N1bWVudDo6SW50ZXJhY3RpdmUgfHwgZnJhbWUoKS5kb2N1
bWVudCgpLT5yZWFkeVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkNvbXBsZXRlKTsKKyAgICAgICAgLy8g
RW5zdXJlIHRoYXQgd2UgYWx3YXlzIGZpcmUgdmlzdWFsbHkgbm9uLWVtcHR5IG1pbGVzdG9uZSBl
dmVudHVhbGx5LgorICAgICAgICBpZiAoZmluaXNoZWRQYXJzaW5nTWFpbkRvY3VtZW50ICYmIGZy
YW1lKCkubG9hZGVyKCkuaXNDb21wbGV0ZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICAgICAgYXV0byBpc1Zpc2libGUgPSBbXShjb25zdCBFbGVtZW50KiBlbGVtZW50KSB7Cisg
ICAgICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJl
cigpLT5vcGFjaXR5KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZp
c2liaWxpdHk6OlZpc2libGU7CisgICAgICAgIH07CiAKLSAgICBhdXRvIGlzVmlzaWJsZSA9IFtd
KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpIHsKLSAgICAgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVt
ZW50LT5yZW5kZXJlcigpKQorICAgICAgICBpZiAoIWlzVmlzaWJsZShkb2N1bWVudEVsZW1lbnQp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWVsZW1lbnQtPnJlbmRl
cmVyKCktPm9wYWNpdHkoKSkKKworICAgICAgICBpZiAoIWlzVmlzaWJsZShmcmFtZSgpLmRvY3Vt
ZW50KCktPmJvZHkoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVy
biBlbGVtZW50LT5yZW5kZXJlcigpLT5zdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5
OjpWaXNpYmxlOwotICAgIH07CiAKLSAgICBpZiAoIWlzVmlzaWJsZShkb2N1bWVudEVsZW1lbnQp
KQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIFRoZSBmaXJzdCBmZXcgaHVuZHJl
ZCBjaGFyYWN0ZXJzIHJhcmVseSBjb250YWluIHRoZSBpbnRlcmVzdGluZyBjb250ZW50IG9mIHRo
ZSBwYWdlLgorICAgICAgICBpZiAobV92aXN1YWxseU5vbkVtcHR5Q2hhcmFjdGVyQ291bnQgPiB2
aXN1YWxDaGFyYWN0ZXJUaHJlc2hvbGQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IGlmICghaXNWaXNpYmxlKGZyYW1lKCkuZG9jdW1lbnQoKS0+Ym9keSgpKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAvLyBVc2UgYSB0aHJlc2hvbGQgdmFsdWUgdG8gcHJldmVudCB2
ZXJ5IHNtYWxsIGFtb3VudHMgb2YgdmlzaWJsZSBjb250ZW50IGZyb20gdHJpZ2dlcmluZyBkaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQKKyAgICAgICAgaWYgKG1fdmlzdWFsbHlOb25FbXB0
eVBpeGVsQ291bnQgPiB2aXN1YWxQaXhlbFRocmVzaG9sZCkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgLy8gVGhlIGZpcnN0IGZldyBodW5kcmVkIGNoYXJhY3RlcnMgcmFyZWx5IGNv
bnRhaW4gdGhlIGludGVyZXN0aW5nIGNvbnRlbnQgb2YgdGhlIHBhZ2UuCi0gICAgaWYgKG1fdmlz
dWFsbHlOb25FbXB0eUNoYXJhY3RlckNvdW50ID4gdmlzdWFsQ2hhcmFjdGVyVGhyZXNob2xkKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgYXV0byBpc01vcmVDb250ZW50RXhwZWN0ZWQg
PSBbJl0oKSB7CisgICAgICAgICAgICBBU1NFUlQoZmluaXNoZWRQYXJzaW5nTWFpbkRvY3VtZW50
KTsKKyAgICAgICAgICAgIC8vIFBlbmRpbmcgY3NzL2ZvbnQgbG9hZGluZyBtZWFucyB3ZSBzaG91
bGQgd2FpdCBhIGxpdHRsZSBsb25nZXIuIENsYXNzaWMgbm9uLWFzeW5jLCBub24tZGVmZXIgc2Ny
aXB0cyBhcmUgYWxsIHByb2Nlc3NlZCBieSBub3cuCisgICAgICAgICAgICBhdXRvKiBkb2N1bWVu
dExvYWRlciA9IGZyYW1lKCkubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKKyAgICAgICAgICAg
IGlmICghZG9jdW1lbnRMb2FkZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgLy8gVXNlIGEgdGhyZXNob2xkIHZhbHVlIHRvIHByZXZlbnQgdmVyeSBzbWFsbCBhbW91bnRz
IG9mIHZpc2libGUgY29udGVudCBmcm9tIHRyaWdnZXJpbmcgZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Ci0gICAgaWYgKG1fdmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQgPiB2aXN1YWxQ
aXhlbFRocmVzaG9sZCkKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBhdXRvJiBy
ZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50TG9hZGVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwor
ICAgICAgICAgICAgaWYgKCFyZXNvdXJjZUxvYWRlci5yZXF1ZXN0Q291bnQoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIGlzTW9yZUNvbnRlbnRFeHBlY3RlZCA9
IFsmXSgpIHsKLSAgICAgICAgQVNTRVJUKGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCk7Ci0g
ICAgICAgIC8vIFBlbmRpbmcgY3NzL2ZvbnQgbG9hZGluZyBtZWFucyB3ZSBzaG91bGQgd2FpdCBh
IGxpdHRsZSBsb25nZXIuIENsYXNzaWMgbm9uLWFzeW5jLCBub24tZGVmZXIgc2NyaXB0cyBhcmUg
YWxsIHByb2Nlc3NlZCBieSBub3cuCi0gICAgICAgIGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZnJh
bWUoKS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpOwotICAgICAgICBpZiAoIWRvY3VtZW50TG9h
ZGVyKQorICAgICAgICAgICAgYXV0byYgcmVzb3VyY2VzID0gcmVzb3VyY2VMb2FkZXIuYWxsQ2Fj
aGVkUmVzb3VyY2VzKCk7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHJlc291cmNlIDogcmVzb3Vy
Y2VzKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc291cmNlLnZhbHVlLT5pc0xvYWRlZCgpKQor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocmVzb3Vy
Y2UudmFsdWUtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6Q1NTU3R5bGVTaGVldCB8
fCByZXNvdXJjZS52YWx1ZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpUeXBlOjpGb250UmVz
b3VyY2UpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9OwogCi0gICAgICAgIGF1dG8mIHJl
c291cmNlTG9hZGVyID0gZG9jdW1lbnRMb2FkZXItPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7Ci0g
ICAgICAgIGlmICghcmVzb3VyY2VMb2FkZXIucmVxdWVzdENvdW50KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIEZpbmlzaGVkIHBhcnNpbmcgdGhlIG1haW4gZG9jdW1l
bnQgYW5kIHdlIHN0aWxsIGRvbid0IHlldCBoYXZlIGVub3VnaCBjb250ZW50LiBDaGVjayBpZiB3
ZSBtaWdodCBiZSBnZXR0aW5nIHNvbWUgbW9yZS4KKyAgICAgICAgaWYgKGZpbmlzaGVkUGFyc2lu
Z01haW5Eb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiAhaXNNb3JlQ29udGVudEV4cGVjdGVk
KCk7CiAKLSAgICAgICAgYXV0byYgcmVzb3VyY2VzID0gcmVzb3VyY2VMb2FkZXIuYWxsQ2FjaGVk
UmVzb3VyY2VzKCk7Ci0gICAgICAgIGZvciAoYXV0byYgcmVzb3VyY2UgOiByZXNvdXJjZXMpIHsK
LSAgICAgICAgICAgIGlmIChyZXNvdXJjZS52YWx1ZS0+aXNMb2FkZWQoKSkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZS52YWx1ZS0+dHlwZSgpID09
IENhY2hlZFJlc291cmNlOjpUeXBlOjpDU1NTdHlsZVNoZWV0IHx8IHJlc291cmNlLnZhbHVlLT50
eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkZvbnRSZXNvdXJjZSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fTsKIAotICAgIC8vIEZpbmlzaGVkIHBhcnNpbmcgdGhlIG1haW4gZG9jdW1lbnQgYW5kIHdlIHN0
aWxsIGRvbid0IHlldCBoYXZlIGVub3VnaCBjb250ZW50LiBDaGVjayBpZiB3ZSBtaWdodCBiZSBn
ZXR0aW5nIHNvbWUgbW9yZS4KLSAgICBpZiAoZmluaXNoZWRQYXJzaW5nTWFpbkRvY3VtZW50KQot
ICAgICAgICByZXR1cm4gIWlzTW9yZUNvbnRlbnRFeHBlY3RlZCgpOworICAgIGlmIChtX2NvbnRl
bnRRdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkpCisgICAgICAgIHJldHVybjsKIAotICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoIXF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2NvbnRlbnRRdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkg
PSB0cnVlOworICAgIGlmIChmcmFtZSgpLmlzTWFpbkZyYW1lKCkpCisgICAgICAgIGZyYW1lKCku
bG9hZGVyKCkuZGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsKIH0KIAogYm9vbCBGcmFt
ZVZpZXc6OmlzVmlld0ZvckRvY3VtZW50SW5GcmFtZSgpIGNvbnN0CkBAIC01MDg4LDkgKzUwOTcs
NyBAQCB2b2lkIEZyYW1lVmlldzo6ZmlyZUxheW91dFJlbGF0ZWRNaWxlc3RvbmVzSWZOZWVkZWQo
KQogICAgIH0KIAogICAgIGlmIChtX2ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dE1pbGVzdG9u
ZUlzUGVuZGluZykgewotICAgICAgICBpZiAoIW1fY29udGVudFF1YWxpZmllc0FzVmlzdWFsbHlO
b25FbXB0eSkKLSAgICAgICAgICAgIG1fY29udGVudFF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0
eSA9IHF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpOwotCisgICAgICAgIGNoZWNrQW5kRGlz
cGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSgpOwogICAgICAgICBpZiAobV9jb250
ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5KSB7CiAgICAgICAgICAgICBtX2ZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dE1pbGVzdG9uZUlzUGVuZGluZyA9IGZhbHNlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAppbmRleCAyYzUwY2JmZTMyMDJjMzZhN2U0YjQxYzM1ZTkwOGFkNzA1ODFm
MzMyLi44ZjJjNTdlZjE5ZTljNDExZjY0NDBhZjZlM2JjNThmNTdmNWQ4ZTliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKQEAgLTM5Nyw3ICszOTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbmNy
ZW1lbnRWaXN1YWxseU5vbkVtcHR5Q2hhcmFjdGVyQ291bnQoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBpbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudChjb25zdCBJbnRTaXplJik7
CiAgICAgYm9vbCBpc1Zpc3VhbGx5Tm9uRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRR
dWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHk7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHF1
YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpIGNvbnN0OworICAgIHZvaWQgY2hlY2tBbmREaXNw
YXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGVuYWJsZUF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3QgSW50U2l6ZSYgbWlu
U2l6ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhl
aWdodChpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNGNiMGRjZGNj
YWY2MDZkNjM2NWQ0ODYyOTQ4OGY4MDYzZGJmODZhOS4uOTA2NWFmZWE4MTg0NjkzYjY2ZTI0ZTYx
YjVmYjdlZTIxOWJiMGUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC03
NDEsMTIgKzc0MSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVh
Y2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxhCiAgICAgd2ViUGFnZS0+ZGlz
cGF0Y2hEaWRSZWFjaExheW91dE1pbGVzdG9uZShtaWxlc3RvbmVzKTsKIAogICAgIGlmIChtaWxl
c3RvbmVzICYgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KSB7Ci0gICAgICAgIGlmICht
X2ZyYW1lLT5pc01haW5GcmFtZSgpICYmICFtX2RpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24gJiYg
IXdlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc3VwcHJlc3Nlc0luY3JlbWVudGFsUmVu
ZGVyaW5nKCkpIHsKLSAgICAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0VfTE9H
KExheW91dCwgImRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmU6IGRpc3BhdGNoaW5nIGRp
ZENvbXBsZXRlUGFnZVRyYW5zaXRpb24iKTsKLSAgICAgICAgICAgIHdlYlBhZ2UtPmRpZENvbXBs
ZXRlUGFnZVRyYW5zaXRpb24oKTsKLSAgICAgICAgICAgIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNp
dGlvbiA9IHRydWU7Ci0gICAgICAgIH0KLQorICAgICAgICBBU1NFUlQoIW1fZnJhbWUtPmlzTWFp
bkZyYW1lKCkgfHwgd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zdXBwcmVzc2VzSW5j
cmVtZW50YWxSZW5kZXJpbmcoKSB8fCBtX2RpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24pOwogICAg
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIHJlbW92aW5nIHRoZSBvbGQgZGlkRmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUgQVBJIHNpbmNlIHRoaXMgaXMgZG9pbmcK
ICAgICAgICAgLy8gZG91YmxlIGR1dHkgd2l0aCB0aGUgbmV3IGRpZExheW91dCBBUEkuCiAgICAg
ICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0VfTE9HKExheW91dCwgImRpc3BhdGNoRGlk
UmVhY2hMYXlvdXRNaWxlc3RvbmU6IGRpc3BhdGNoaW5nIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lIik7CkBAIC03NTUsNiArNzUwLDI0IEBAIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNv
cmU6OkxhCiAgICAgfQogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKCkKK3sKKyAgICBpZiAobV9kaWRDb21wbGV0ZVBh
Z2VUcmFuc2l0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiB3ZWJQYWdlID0gbV9m
cmFtZS0+cGFnZSgpOworICAgIGlmICghd2ViUGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKHdlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc3VwcHJlc3Nlc0luY3JlbWVudGFs
UmVuZGVyaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX2ZyYW1lLT5pc01h
aW5GcmFtZSgpKTsKKyAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhMYXlvdXQs
ICJkaXNwYXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25lOiBkaXNwYXRjaGluZyBkaWRDb21wbGV0
ZVBhZ2VUcmFuc2l0aW9uIik7CisgICAgd2ViUGFnZS0+ZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlv
bigpOworICAgIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbiA9IHRydWU7Cit9CisKIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTGF5b3V0KCkKIHsKICAgICBXZWJQYWdl
KiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApp
bmRleCBkYjg4MTk4NTA0YWYzNjY3M2MwN2I5ZWIyMjc4NTIxY2MyNGQ2MGM2Li42NWRkOTk5ZGI3
MzMxMzYxZjg2MTQwOWNiNjFjZDkyNjYyMDMxYWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZEV4
cGxpY2l0T3Blbihjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBmaW5hbDsKIAog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29y
ZTo6TGF5b3V0TWlsZXN0b25lPikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNoVmlz
dWFsbHlOb25FbXB0eVN0YXRlKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZExheW91dCgp
IGZpbmFsOwogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBX
ZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDAzNjI4OGEyN2YzOWEz
YTQzYTdiYzcwNWMyNzBiNzZkYWRiY2EzYjYuLjdiOWRhOTdjMWExYTdiY2U3NjJhODBiNjkwYjg5
MjMwNDFhMzY4MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0zNDkzLDE1ICszNDkzLDggQEAgdm9pZCBXZWJQYWdlOjpy
ZXNldElkZW1wb3RlbnRUZXh0QXV0b3NpemluZ0lmTmVlZGVkKGRvdWJsZSBwcmV2aW91c0luaXRp
YWxTY2FsZSkKIAogICAgIGF1dG8gdGV4dEF1dG9TaXppbmdEZWxheSA9IFsmXSB7CiAgICAgICAg
IGF1dG8mIGZyYW1lVmlldyA9ICptX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKLSAgICAgICAg
YXV0byBpc1Zpc2F1bGx5Tm9uRW1wdHkgPSBmcmFtZVZpZXcuaXNWaXN1YWxseU5vbkVtcHR5KCk7
Ci0gICAgICAgIGF1dG8gd2lsbEJlVmlzdWFsbHlOb25FbXB0eVNvb24gPSAhaXNWaXNhdWxseU5v
bkVtcHR5ICYmIGZyYW1lVmlldy5xdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkoKTsKLSAgICAg
ICAgaWYgKHdpbGxCZVZpc3VhbGx5Tm9uRW1wdHlTb29uKSB7Ci0gICAgICAgICAgICAvLyBCZSBh
IGJpdCBtb3JlIGFncmVzc2l2ZSBvbiB0aGUgZmlyc3QgZGlzcGxheS4KLSAgICAgICAgICAgIGNv
bnN0IFNlY29uZHMgc2hvcnRUZXh0QXV0b1NpemluZ0RlbGF5T25WaWV3cG9ydENoYW5nZSA9IDIw
X21zOwotICAgICAgICAgICAgcmV0dXJuIHNob3J0VGV4dEF1dG9TaXppbmdEZWxheU9uVmlld3Bv
cnRDaGFuZ2U7Ci0gICAgICAgIH0gCi0gICAgICAgIGlmICghaXNWaXNhdWxseU5vbkVtcHR5KSB7
Ci0gICAgICAgICAgICAvLyBXZSBkb24ndCBhbnRpY2lwYXRlIGFueSBwYWluaW5nIGFmdGVyIHRo
ZSBuZXh0IHVwY29taW5nIGxheW91dC4KKyAgICAgICAgaWYgKCFmcmFtZVZpZXcuaXNWaXN1YWxs
eU5vbkVtcHR5KCkpIHsKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IGFudGljaXBhdGUgYW55IHBh
aW50aW5nIGFmdGVyIHRoZSBuZXh0IHVwY29taW5nIGxheW91dC4KICAgICAgICAgICAgIGNvbnN0
IFNlY29uZHMgbG9uZ1RleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0Q2hhbmdlID0gMTAwX21z
OwogICAgICAgICAgICAgcmV0dXJuIGxvbmdUZXh0QXV0b1NpemluZ0RlbGF5T25WaWV3cG9ydENo
YW5nZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
CmluZGV4IDA1ZTQ3N2VmNTViYjIzZjllNDJkZWEwYTlmZDllZTEyNjQ3N2E2MmEuLmIyYTZkM2Rk
MWRkZTQ0MGRmZjZjOGJiZTIxNjdjZjVhNzJlZjkwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTE5NiwxMCArMTk2LDggQEAgYm9vbCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CiAKIHZv
aWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
KCkKIHsKLSAgICBpZiAobV9sYXllclRyZWVTdGF0ZUlzRnJvemVuKSB7CisgICAgaWYgKG1fbGF5
ZXJUcmVlU3RhdGVJc0Zyb3plbikKICAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIHNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392273</attachid>
            <date>2020-03-03 07:38:14 -0800</date>
            <delta_ts>2020-03-03 20:03:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208385-20200303073814.patch</filename>
            <type>text/plain</type>
            <size>23345</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmYzU4YWNmNzZjODE5
NGNkMDA5YWU2ODY1MDg0OGVjN2RhNDI2ZS4uNDY1ZjRjODc4OTg2Y2UxY2YxMDRhMDQ2YWEwMGM4
YTIyNDZmYmM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAzLTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZpcnN0IHBhaW50XSBHb2lu
ZyBmcm9tIHZpc3VhbGx5IGVtcHR5IHRvIG5vbi1lbXB0eSBzaG91bGQgaW1tZWRpYXRlbHkgdHJp
Z2dlciBsYXllciB1bmZyZWV6aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDgzODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk1OTAwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0
IFZORSBjaGVjayBhbmQgbGF5b3V0IGFyZSBkZWNvdXBsZWQsIHdlIHNob3VsZCBhbHNvIGRlY291
cGxlIHRoZSBWTkUgbGF5b3V0IG1pbGVzdG9uZSBhbmQKKyAgICAgICAgbGF5ZXIgdW5mcmVlemlu
Zy4KKyAgICAgICAgSW4gbWFueSBjYXNlcyBhIHN0eWxlIGNoYW5nZSBkb2VzIG5vdCBpbml0aWF0
ZSBzeW5jaHJvbm91cyBsYXlvdXQgKHNlZSBEb2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCkg
d2hpY2gKKyAgICAgICAgcG90ZW50aWFsbHkgZGVsYXlzIHRoZSBmaXJzdCBwYWludC4gVGhpcyBw
YXRjaCBlbnN1cmUgdGhhdCB3ZSB1bmZyZWV6ZSB0aGUgbGF5ZXIgdHJlZSBhbmQgaXNzdWUgcGFp
bnQgc29vbiBhZnRlcgorICAgICAgICB0aGUgc3R5bGUgY2hhbmdlIHByb2R1Y2VkIGEgVk5FIGNv
bnRlbnQuIAorCisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmRpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKToKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnN0eWxlQW5kUmVuZGVyVHJlZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OmNoZWNrQW5kRGlzcGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmZpcmVMYXlvdXRSZWxhdGVkTWlsZXN0b25lc0lmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cXVhbGlmaWVzQXNWaXN1YWxseU5v
bkVtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorCiAy
MDIwLTAzLTAyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBTY3Jp
cHRDb250cm9sbGVyOjpleGVjdXRlSWZKYXZhU2NyaXB0VVJMKCkgdXNlcyB3cm9uZyBKU0dsb2Jh
bE9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZDQ3MDllMTQ3N2U4M2MwOTEwOTdhY2IwNmZmNDQwZjZjYmM0
NGIyNi4uNDE2YTQ2MTEyMjkwNTkyNDdhNmVjZmQ0MjViYjZkYWYwNjk0MzRlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAyMC0wMy0wMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFtGaXJzdCBwYWludF0gR29pbmcgZnJvbSB2aXN1YWxseSBlbXB0eSB0
byBub24tZW1wdHkgc2hvdWxkIGltbWVkaWF0ZWx5IHRyaWdnZXIgbGF5ZXIgdW5mcmVlemluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4Mzg1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5NTkwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRSZWFjaExheW91dE1pbGVzdG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0
YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnJlc2V0SWRlbXBvdGVudFRleHRBdXRvc2l6aW5nSWZOZWVkZWQpOiBXZSBk
b24ndCBoYXZlIHRoaXMgY2FzZSBhbnltb3JlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6
OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSk6
CisKIDIwMjAtMDMtMDIgIEphY29iIFVwaG9mZiAgPGphY29iX3VwaG9mZkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NzcyNS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDYwZjVmYTZjMmY1MzYzOWY3ZjIzMTcwNDBhYTEzY2IyZGU4MzNkODcuLmYw
MjQ1YjZhNTBjODg1MjViNDBmOGI2YjNmMzFkZTU5NDY1NjBjOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtMTM1Niw3ICsxMzU2LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0VmlzdWFsVXBk
YXRlc0FsbG93ZWQoYm9vbCB2aXN1YWxVcGRhdGVzQWxsb3dlZCkKICAgICAgICAgcmVuZGVyVmll
dy0+cmVwYWludFZpZXdBbmRDb21wb3NpdGVkTGF5ZXJzKCk7CiAKICAgICBpZiAoRnJhbWUqIGZy
YW1lID0gdGhpcy0+ZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPmxvYWRlcigpLmZvcmNlUGFnZVRy
YW5zaXRpb25JZk5lZWRlZCgpOworICAgICAgICBmcmFtZS0+bG9hZGVyKCkuY29tcGxldGVQYWdl
VHJhbnNpdGlvbklmTmVlZGVkKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnZpc3VhbFVwZGF0ZXNT
dXBwcmVzc2lvblRpbWVyRmlyZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZGY2MmJhMGE3NTY3ZDIwMjY4YzMyYzNmMDNjMWY2M2M3
ZDA4MDM1ZC4uMWQ5ZjExMzdhODcwZGJmYmY2Mjk0YTQxNzhmMjE5OWE2YWFlY2ExMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC05NSw2
ICs5NSw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBw
dWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1
bWVudExvYWQoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIGZp
bmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25T
ZXQ8TGF5b3V0TWlsZXN0b25lPikgZmluYWwgeyB9CisgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNo
VmlzdWFsbHlOb25FbXB0eVN0YXRlKCkgZmluYWwgeyB9CiAKICAgICBGcmFtZSogZGlzcGF0Y2hD
cmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxscHRy
OyB9CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCmluZGV4IDljMThkNzY4YTk1OTcxZDYxYzNjZjYzZTBjMjU0ODg5OGIw
NzM2N2QuLjI0N2Q5YWVmMDZiOWM1NzZmYjZhMTM1OTZjNTA5NDYxYjliN2ZlNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMjY5Miw2ICsyNjkyLDEyIEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmRpZEZpcnN0TGF5b3V0KCkKICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYWR2
YW5jZVRvKEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lOjpGaXJzdExheW91dERvbmUpOwogfQogCit2
b2lkIEZyYW1lTG9hZGVyOjpkaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSgpCit7CisgICAg
QVNTRVJUKG1fZnJhbWUuaXNNYWluRnJhbWUoKSk7CisgICAgbV9jbGllbnQuZGlzcGF0Y2hEaWRS
ZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSgpOworfQorCiB2b2lkIEZyYW1lTG9hZGVyOjpmcmFt
ZUxvYWRDb21wbGV0ZWQoKQogewogICAgIC8vIE5vdGU6IENhbiBiZSBjYWxsZWQgbXVsdGlwbGUg
dGltZXMuCkBAIC00MDczLDkgKzQwNzksOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUHJvZ3Jl
c3NpbmdTdGF0dXNDaGFuZ2VkKCkKICAgICAgICAgdmlldy0+bG9hZFByb2dyZXNzaW5nU3RhdHVz
Q2hhbmdlZCgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpmb3JjZVBhZ2VUcmFuc2l0aW9uSWZO
ZWVkZWQoKQordm9pZCBGcmFtZUxvYWRlcjo6Y29tcGxldGVQYWdlVHJhbnNpdGlvbklmTmVlZGVk
KCkKIHsKLSAgICBtX2NsaWVudC5mb3JjZVBhZ2VUcmFuc2l0aW9uSWZOZWVkZWQoKTsKKyAgICBt
X2NsaWVudC5jb21wbGV0ZVBhZ2VUcmFuc2l0aW9uSWZOZWVkZWQoKTsKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlcjo6Y2xlYXJUZXN0aW5nT3ZlcnJpZGVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKaW5kZXggN2FmNDJiNWNmMDE5N2M0MWZjMzJjZjIzNDRkZWE4MGIxM2UyNDhjOS4uNmQw
NGEzMTQ0OTExODZhMGVhZDM4OWFhOWQxNGI1NDlhZDE1NjkyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKQEAgLTIxMSw2ICsyMTEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRp
ZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxMYXlvdXRNaWxlc3RvbmU+KTsKICAgICB2
b2lkIGRpZEZpcnN0TGF5b3V0KCk7CisgICAgdm9pZCBkaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlT
dGF0ZSgpOwogCiAgICAgdm9pZCBsb2FkZWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShDYWNoZWRS
ZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgUmVzb3VyY2VFcnJvciYpOwog
ICAgIHZvaWQgdGVsbENsaWVudEFib3V0UGFzdE1lbW9yeUNhY2hlTG9hZHMoKTsKQEAgLTMxMSw3
ICszMTIsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBVUkwmIHByZXZpb3VzVVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9wcmV2aW91c1VSTDsgfQogCi0gICAgdm9pZCBmb3JjZVBhZ2VUcmFuc2l0aW9u
SWZOZWVkZWQoKTsKKyAgICB2b2lkIGNvbXBsZXRlUGFnZVRyYW5zaXRpb25JZk5lZWRlZCgpOwog
CiAgICAgdm9pZCBzZXRPdmVycmlkZUNhY2hlUG9saWN5Rm9yVGVzdGluZyhSZXNvdXJjZVJlcXVl
c3RDYWNoZVBvbGljeSBwb2xpY3kpIHsgbV9vdmVycmlkZUNhY2hlUG9saWN5Rm9yVGVzdGluZyA9
IHBvbGljeTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGVSZXNvdXJjZUxvYWRQcmlvcml0eUZvclRl
c3RpbmcoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpIHsgbV9vdmVycmlkZVJlc291cmNl
TG9hZFByaW9yaXR5Rm9yVGVzdGluZyA9IHByaW9yaXR5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDVjOGFiYjYxZTMwYjcwYjgyYzg2ZmY4NTJlNjI3
MTk0YTZjZGJlY2MuLjA3M2MzYjBlYTg1N2M2NDExMWVjMDBjMDM3OTZjMjg0ZmQ0ZjQ0OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xODcsNiArMTg3
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTGF5b3V0KCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9u
U2V0PExheW91dE1pbGVzdG9uZT4pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJl
YWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKCkgeyB9CiAKICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNw
YXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hTaG93KCkgPSAwOwpAQCAtMzQ2LDcgKzM0Nyw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFdlYkdMTG9hZFBvbGljeSByZXNvbHZlV2ViR0xQb2xpY3lGb3JVUkwoY29uc3Qg
VVJMJikgY29uc3QgeyByZXR1cm4gV2ViR0xBbGxvd0NyZWF0aW9uOyB9CiAjZW5kaWYKIAotICAg
IHZpcnR1YWwgdm9pZCBmb3JjZVBhZ2VUcmFuc2l0aW9uSWZOZWVkZWQoKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgY29tcGxldGVQYWdlVHJhbnNpdGlvbklmTmVlZGVkKCkgeyB9CiAKICAgICAvLyBG
SVhNRSAoYnVnIDExNjIzMyk6IFdlIG5lZWQgdG8gZ2V0IHJpZCBvZiBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50IGNvbXBsZXRlbHksIHRoZW4gdGhpcyB3aWxsIG5vIGxvbmdlciBiZSBuZWVkZWQuCiAg
ICAgdmlydHVhbCBib29sIGlzRW1wdHlGcmFtZUxvYWRlckNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNzlkNGQyZTdlNTRhZjkw
YzA0NTM1ODM1NzQ0MWNjMTBmYTJjMWJiMy4uY2JhYmVhM2I3ZmI2NzY0YjVmOWM4ODk0OTZmODQ3
YTJjYTM4ODllZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtODA5LDEwICs4MDks
NyBAQCB2b2lkIEZyYW1lVmlldzo6c3R5bGVBbmRSZW5kZXJUcmVlRGlkQ2hhbmdlKCkKICAgICBp
ZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9jb250ZW50UXVh
bGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5KSB7Ci0gICAgICAgIC8vIExldCdzIGNoZWNrIHdoZXRo
ZXIgdGhlIG5ld2x5IGNvbnN0cnVjdGVkIGNvbnRlbnQgcXVhbGlmaWVzIGFzIG5vbi1lbXB0eSBu
b3cuCi0gICAgICAgIG1fY29udGVudFF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSA9IHF1YWxp
Zmllc0FzVmlzdWFsbHlOb25FbXB0eSgpOwotICAgIH0KKyAgICBjaGVja0FuZERpc3BhdGNoRGlk
UmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsKICAgICBhdXRvKiBsYXllclRyZWVNdXRhdGlv
blJvb3QgPSByZW5kZXJWaWV3LT50YWtlU3R5bGVDaGFuZ2VMYXllclRyZWVNdXRhdGlvblJvb3Qo
KTsKICAgICBpZiAobGF5ZXJUcmVlTXV0YXRpb25Sb290ICYmICFuZWVkc0xheW91dCgpKQogICAg
ICAgICBsYXllclRyZWVNdXRhdGlvblJvb3QtPnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTdHls
ZUNoYW5nZSgpOwpAQCAtNDM3Nyw3MCArNDM3NCw4MiBAQCBib29sIEZyYW1lVmlldzo6cXVhbGlm
aWVzQXNTaWduaWZpY2FudFJlbmRlcmVkVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFzUmVh
Y2hlZFNpZ25pZmljYW50UmVuZGVyZWRUZXh0VGhyZXNob2xkOwogfQogCi1ib29sIEZyYW1lVmll
dzo6cXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5KCkgY29uc3QKK3ZvaWQgRnJhbWVWaWV3Ojpj
aGVja0FuZERpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKQogewotICAgIC8v
IE5vIGNvbnRlbnQgeWV0LgotICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGZyYW1lKCku
ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudEVsZW1lbnQg
fHwgIWRvY3VtZW50RWxlbWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGF1dG8gcXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5ID0gWyZdIHsKKyAgICAgICAgLy8g
Tm8gY29udGVudCB5ZXQuCisgICAgICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IGZyYW1l
KCkuZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnRF
bGVtZW50IHx8ICFkb2N1bWVudEVsZW1lbnQtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFsc28gaWdub3JlIHJlbmRlcmVy
cyB3aXRoIG5vbi1maW5hbCBzdHlsZS4KLSAgICBpZiAoZnJhbWUoKS5kb2N1bWVudCgpLT5zdHls
ZVNjb3BlKCkuaGFzUGVuZGluZ1NoZWV0c0JlZm9yZUJvZHkoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFsc28gaWdub3JlIHJlbmRlcmVycyB3
aXRoIG5vbi1maW5hbCBzdHlsZS4KKyAgICAgICAgaWYgKGZyYW1lKCkuZG9jdW1lbnQoKS0+c3R5
bGVTY29wZSgpLmhhc1BlbmRpbmdTaGVldHNCZWZvcmVCb2R5KCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBhdXRvIGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCA9IGZyYW1l
KCkubG9hZGVyKCkuc3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2Fk
KCkgJiYgKGZyYW1lKCkuZG9jdW1lbnQoKS0+cmVhZHlTdGF0ZSgpID09IERvY3VtZW50OjpJbnRl
cmFjdGl2ZSB8fCBmcmFtZSgpLmRvY3VtZW50KCktPnJlYWR5U3RhdGUoKSA9PSBEb2N1bWVudDo6
Q29tcGxldGUpOwotICAgIC8vIEVuc3VyZSB0aGF0IHdlIGFsd2F5cyBmaXJlIHZpc3VhbGx5IG5v
bi1lbXB0eSBtaWxlc3RvbmUgZXZlbnR1YWxseS4KLSAgICBpZiAoZmluaXNoZWRQYXJzaW5nTWFp
bkRvY3VtZW50ICYmIGZyYW1lKCkubG9hZGVyKCkuaXNDb21wbGV0ZSgpKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgYXV0byBmaW5pc2hlZFBhcnNpbmdNYWluRG9jdW1lbnQgPSBmcmFt
ZSgpLmxvYWRlcigpLnN0YXRlTWFjaGluZSgpLmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9h
ZCgpICYmIChmcmFtZSgpLmRvY3VtZW50KCktPnJlYWR5U3RhdGUoKSA9PSBEb2N1bWVudDo6SW50
ZXJhY3RpdmUgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5yZWFkeVN0YXRlKCkgPT0gRG9jdW1lbnQ6
OkNvbXBsZXRlKTsKKyAgICAgICAgLy8gRW5zdXJlIHRoYXQgd2UgYWx3YXlzIGZpcmUgdmlzdWFs
bHkgbm9uLWVtcHR5IG1pbGVzdG9uZSBldmVudHVhbGx5LgorICAgICAgICBpZiAoZmluaXNoZWRQ
YXJzaW5nTWFpbkRvY3VtZW50ICYmIGZyYW1lKCkubG9hZGVyKCkuaXNDb21wbGV0ZSgpKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgYXV0byBpc1Zpc2libGUgPSBbXShjb25z
dCBFbGVtZW50KiBlbGVtZW50KSB7CisgICAgICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1l
bnQtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpLT5vcGFjaXR5KCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCktPnN0
eWxlKCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OlZpc2libGU7CisgICAgICAgIH07CiAK
LSAgICBhdXRvIGlzVmlzaWJsZSA9IFtdKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpIHsKLSAgICAg
ICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5yZW5kZXJlcigpKQorICAgICAgICBpZiAoIWlz
VmlzaWJsZShkb2N1bWVudEVsZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCktPm9wYWNpdHkoKSkKKworICAgICAgICBpZiAo
IWlzVmlzaWJsZShmcmFtZSgpLmRvY3VtZW50KCktPmJvZHkoKSkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiBlbGVtZW50LT5yZW5kZXJlcigpLT5zdHlsZSgpLnZp
c2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlOwotICAgIH07CiAKLSAgICBpZiAoIWlz
VmlzaWJsZShkb2N1bWVudEVsZW1lbnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IC8vIFRoZSBmaXJzdCBmZXcgaHVuZHJlZCBjaGFyYWN0ZXJzIHJhcmVseSBjb250YWluIHRoZSBp
bnRlcmVzdGluZyBjb250ZW50IG9mIHRoZSBwYWdlLgorICAgICAgICBpZiAobV92aXN1YWxseU5v
bkVtcHR5Q2hhcmFjdGVyQ291bnQgPiB2aXN1YWxDaGFyYWN0ZXJUaHJlc2hvbGQpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICghaXNWaXNpYmxlKGZyYW1lKCkuZG9jdW1lbnQo
KS0+Ym9keSgpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBVc2UgYSB0aHJl
c2hvbGQgdmFsdWUgdG8gcHJldmVudCB2ZXJ5IHNtYWxsIGFtb3VudHMgb2YgdmlzaWJsZSBjb250
ZW50IGZyb20gdHJpZ2dlcmluZyBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQKKyAgICAg
ICAgaWYgKG1fdmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQgPiB2aXN1YWxQaXhlbFRocmVzaG9s
ZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gVGhlIGZpcnN0IGZldyBodW5k
cmVkIGNoYXJhY3RlcnMgcmFyZWx5IGNvbnRhaW4gdGhlIGludGVyZXN0aW5nIGNvbnRlbnQgb2Yg
dGhlIHBhZ2UuCi0gICAgaWYgKG1fdmlzdWFsbHlOb25FbXB0eUNoYXJhY3RlckNvdW50ID4gdmlz
dWFsQ2hhcmFjdGVyVGhyZXNob2xkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgYXV0
byBpc01vcmVDb250ZW50RXhwZWN0ZWQgPSBbJl0oKSB7CisgICAgICAgICAgICBBU1NFUlQoZmlu
aXNoZWRQYXJzaW5nTWFpbkRvY3VtZW50KTsKKyAgICAgICAgICAgIC8vIFBlbmRpbmcgY3NzL2Zv
bnQgbG9hZGluZyBtZWFucyB3ZSBzaG91bGQgd2FpdCBhIGxpdHRsZSBsb25nZXIuIENsYXNzaWMg
bm9uLWFzeW5jLCBub24tZGVmZXIgc2NyaXB0cyBhcmUgYWxsIHByb2Nlc3NlZCBieSBub3cuCisg
ICAgICAgICAgICBhdXRvKiBkb2N1bWVudExvYWRlciA9IGZyYW1lKCkubG9hZGVyKCkuZG9jdW1l
bnRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmICghZG9jdW1lbnRMb2FkZXIpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gVXNlIGEgdGhyZXNob2xkIHZhbHVlIHRvIHBy
ZXZlbnQgdmVyeSBzbWFsbCBhbW91bnRzIG9mIHZpc2libGUgY29udGVudCBmcm9tIHRyaWdnZXJp
bmcgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Ci0gICAgaWYgKG1fdmlzdWFsbHlOb25F
bXB0eVBpeGVsQ291bnQgPiB2aXN1YWxQaXhlbFRocmVzaG9sZCkKLSAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgICAgICBhdXRvJiByZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50TG9hZGVyLT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpOworICAgICAgICAgICAgaWYgKCFyZXNvdXJjZUxvYWRlci5y
ZXF1ZXN0Q291bnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRv
IGlzTW9yZUNvbnRlbnRFeHBlY3RlZCA9IFsmXSgpIHsKLSAgICAgICAgQVNTRVJUKGZpbmlzaGVk
UGFyc2luZ01haW5Eb2N1bWVudCk7Ci0gICAgICAgIC8vIFBlbmRpbmcgY3NzL2ZvbnQgbG9hZGlu
ZyBtZWFucyB3ZSBzaG91bGQgd2FpdCBhIGxpdHRsZSBsb25nZXIuIENsYXNzaWMgbm9uLWFzeW5j
LCBub24tZGVmZXIgc2NyaXB0cyBhcmUgYWxsIHByb2Nlc3NlZCBieSBub3cuCi0gICAgICAgIGF1
dG8qIGRvY3VtZW50TG9hZGVyID0gZnJhbWUoKS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpOwot
ICAgICAgICBpZiAoIWRvY3VtZW50TG9hZGVyKQorICAgICAgICAgICAgYXV0byYgcmVzb3VyY2Vz
ID0gcmVzb3VyY2VMb2FkZXIuYWxsQ2FjaGVkUmVzb3VyY2VzKCk7CisgICAgICAgICAgICBmb3Ig
KGF1dG8mIHJlc291cmNlIDogcmVzb3VyY2VzKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc291
cmNlLnZhbHVlLT5pc0xvYWRlZCgpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICBpZiAocmVzb3VyY2UudmFsdWUtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJj
ZTo6VHlwZTo6Q1NTU3R5bGVTaGVldCB8fCByZXNvdXJjZS52YWx1ZS0+dHlwZSgpID09IENhY2hl
ZFJlc291cmNlOjpUeXBlOjpGb250UmVzb3VyY2UpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9OwogCi0gICAgICAgIGF1dG8mIHJlc291cmNlTG9hZGVyID0gZG9jdW1lbnRMb2FkZXItPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCk7Ci0gICAgICAgIGlmICghcmVzb3VyY2VMb2FkZXIucmVxdWVz
dENvdW50KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIEZpbmlzaGVk
IHBhcnNpbmcgdGhlIG1haW4gZG9jdW1lbnQgYW5kIHdlIHN0aWxsIGRvbid0IHlldCBoYXZlIGVu
b3VnaCBjb250ZW50LiBDaGVjayBpZiB3ZSBtaWdodCBiZSBnZXR0aW5nIHNvbWUgbW9yZS4KKyAg
ICAgICAgaWYgKGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVy
biAhaXNNb3JlQ29udGVudEV4cGVjdGVkKCk7CiAKLSAgICAgICAgYXV0byYgcmVzb3VyY2VzID0g
cmVzb3VyY2VMb2FkZXIuYWxsQ2FjaGVkUmVzb3VyY2VzKCk7Ci0gICAgICAgIGZvciAoYXV0byYg
cmVzb3VyY2UgOiByZXNvdXJjZXMpIHsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZS52YWx1ZS0+
aXNMb2FkZWQoKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmIChy
ZXNvdXJjZS52YWx1ZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpUeXBlOjpDU1NTdHlsZVNo
ZWV0IHx8IHJlc291cmNlLnZhbHVlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkZv
bnRSZXNvdXJjZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfTsKIAotICAgIC8vIEZpbmlzaGVkIHBhcnNpbmcgdGhl
IG1haW4gZG9jdW1lbnQgYW5kIHdlIHN0aWxsIGRvbid0IHlldCBoYXZlIGVub3VnaCBjb250ZW50
LiBDaGVjayBpZiB3ZSBtaWdodCBiZSBnZXR0aW5nIHNvbWUgbW9yZS4KLSAgICBpZiAoZmluaXNo
ZWRQYXJzaW5nTWFpbkRvY3VtZW50KQotICAgICAgICByZXR1cm4gIWlzTW9yZUNvbnRlbnRFeHBl
Y3RlZCgpOworICAgIGlmIChtX2NvbnRlbnRRdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkpCisg
ICAgICAgIHJldHVybjsKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXF1YWxpZmllc0Fz
VmlzdWFsbHlOb25FbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvbnRlbnRRdWFs
aWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkgPSB0cnVlOworICAgIGlmIChmcmFtZSgpLmlzTWFpbkZy
YW1lKCkpCisgICAgICAgIGZyYW1lKCkubG9hZGVyKCkuZGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5
U3RhdGUoKTsKIH0KIAogYm9vbCBGcmFtZVZpZXc6OmlzVmlld0ZvckRvY3VtZW50SW5GcmFtZSgp
IGNvbnN0CkBAIC01MDkwLDkgKzUwOTksNyBAQCB2b2lkIEZyYW1lVmlldzo6ZmlyZUxheW91dFJl
bGF0ZWRNaWxlc3RvbmVzSWZOZWVkZWQoKQogICAgIH0KIAogICAgIGlmIChtX2ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dE1pbGVzdG9uZUlzUGVuZGluZykgewotICAgICAgICBpZiAoIW1fY29u
dGVudFF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSkKLSAgICAgICAgICAgIG1fY29udGVudFF1
YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSA9IHF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgp
OwotCisgICAgICAgIGNoZWNrQW5kRGlzcGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0
ZSgpOwogICAgICAgICBpZiAobV9jb250ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5KSB7
CiAgICAgICAgICAgICBtX2ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dE1pbGVzdG9uZUlzUGVu
ZGluZyA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAyYzUwY2JmZTMyMDJj
MzZhN2U0YjQxYzM1ZTkwOGFkNzA1ODFmMzMyLi44ZjJjNTdlZjE5ZTljNDExZjY0NDBhZjZlM2Jj
NThmNTdmNWQ4ZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTM5Nyw3ICszOTcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBpbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5Q2hhcmFjdGVyQ291
bnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBpbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4
ZWxDb3VudChjb25zdCBJbnRTaXplJik7CiAgICAgYm9vbCBpc1Zpc3VhbGx5Tm9uRW1wdHkoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRlbnRRdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHk7IH0KLSAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIHF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpIGNvbnN0
OworICAgIHZvaWQgY2hlY2tBbmREaXNwYXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRl
KCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZUF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodChpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKaW5kZXggYjgxOGE2NmZmMTBmZmViMTgxYWExODNjZjRiMjIyNThhM2MxMTUxMS4u
NmUyMzJkNjllZmQwNTQxOWYyMzdiODY5N2Q2MWY4YzIzMzJkMjI5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCkBAIC02ODAsMTcgKzY4MCwxOCBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWQoKQogICAgIHdlYlBhZ2UtPmRpZEZpbmlz
aExvYWQoKm1fZnJhbWUpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZVBh
Z2VUcmFuc2l0aW9uSWZOZWVkZWQoKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29tcGxl
dGVQYWdlVHJhbnNpdGlvbklmTmVlZGVkKCkKIHsKICAgICBpZiAobV9kaWRDb21wbGV0ZVBhZ2VU
cmFuc2l0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9m
cmFtZS0+cGFnZSgpOworICAgIGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAg
aWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICB3ZWJQYWdlLT5kaWRDb21wbGV0
ZVBhZ2VUcmFuc2l0aW9uKCk7CiAgICAgbV9kaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uID0gdHJ1
ZTsKKyAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhMYXlvdXQsICJjb21wbGV0
ZVBhZ2VUcmFuc2l0aW9uSWZOZWVkZWQ6IGRpc3BhdGNoaW5nIGRpZENvbXBsZXRlUGFnZVRyYW5z
aXRpb24iKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWFj
aExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBtaWxl
c3RvbmVzKQpAQCAtNzQyLDIwICs3NDMsMjIgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGEKICAg
ICB3ZWJQYWdlLT5kaXNwYXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKG1pbGVzdG9uZXMpOwog
CiAgICAgaWYgKG1pbGVzdG9uZXMgJiBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpIHsK
LSAgICAgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgIW1fZGlkQ29tcGxldGVQYWdl
VHJhbnNpdGlvbiAmJiAhd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zdXBwcmVzc2Vz
SW5jcmVtZW50YWxSZW5kZXJpbmcoKSkgewotICAgICAgICAgICAgV0VCRlJBTUVMT0FERVJDTElF
TlRfUkVMRUFTRV9MT0coTGF5b3V0LCAiZGlzcGF0Y2hEaWRSZWFjaExheW91dE1pbGVzdG9uZTog
ZGlzcGF0Y2hpbmcgZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbiIpOwotICAgICAgICAgICAgd2Vi
UGFnZS0+ZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbigpOwotICAgICAgICAgICAgbV9kaWRDb21w
bGV0ZVBhZ2VUcmFuc2l0aW9uID0gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgY29uc2lkZXIgcmVtb3ZpbmcgdGhlIG9sZCBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZSBBUEkgc2luY2UgdGhpcyBpcyBkb2luZwotICAgICAgICAvLyBk
b3VibGUgZHV0eSB3aXRoIHRoZSBuZXcgZGlkTGF5b3V0IEFQSS4KKyAgICAgICAgQVNTRVJUKCFt
X2ZyYW1lLT5pc01haW5GcmFtZSgpIHx8IHdlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCku
c3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nKCkgfHwgbV9kaWRDb21wbGV0ZVBhZ2VUcmFu
c2l0aW9uKTsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb25zaWRlciByZW1vdmluZyB0
aGUgb2xkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lIEFQSSBzaW5jZSB0
aGlzIGlzIGRvaW5nIGRvdWJsZSBkdXR5IHdpdGggdGhlIG5ldyBkaWRMYXlvdXQgQVBJLgogICAg
ICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhMYXlvdXQsICJkaXNwYXRjaERp
ZFJlYWNoTGF5b3V0TWlsZXN0b25lOiBkaXNwYXRjaGluZyBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGb3JGcmFtZSIpOwogICAgICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRl
ckNsaWVudCgpLmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKCp3ZWJQYWdl
LCAqbV9mcmFtZSwgdXNlckRhdGEpOwogICAgICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKG1fZnJh
bWUtPmZyYW1lSUQoKSwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CiAgICAgfQogfQogCit2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0
eVN0YXRlKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKSB8fCBtX2ZyYW1lLT5wYWdlKCkt
PmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nKCkp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9mcmFtZS0+aXNNYWluRnJhbWUoKSk7Cisg
ICAgY29tcGxldGVQYWdlVHJhbnNpdGlvbklmTmVlZGVkKCk7Cit9CisKIHZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTGF5b3V0KCkKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdl
ID0gbV9mcmFtZS0+cGFnZSgpOwpAQCAtMTM3MSwxNCArMTM3NCw5IEBAIFN0cmluZyBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5n
JiAvKlVSTFNjCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRDb21wbGV0ZWQo
KQogewogICAgIC8vIE5vdGU6IENhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMuCi0gICAgV2Vi
UGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXdlYlBhZ2UpCisgICAg
aWYgKCFtX2ZyYW1lLT5pc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAo
bV9mcmFtZS0+aXNNYWluRnJhbWUoKSAmJiAhbV9kaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uKSB7
Ci0gICAgICAgIHdlYlBhZ2UtPmRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24oKTsKLSAgICAgICAg
bV9kaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uID0gdHJ1ZTsKLSAgICB9CisgICAgY29tcGxldGVQ
YWdlVHJhbnNpdGlvbklmTmVlZGVkKCk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnNhdmVWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0mIGhpc3RvcnlJdGVtKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCBkYjg4MTk4NTA0YWYzNjY3M2MwN2I5ZWIyMjc4NTIxY2My
NGQ2MGM2Li45NTBmYWU4OTNkY2Q2MjI1OTc3YWI1NWQ3NDA4NmQyZjE0NjZkMTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaXNwYXRjaERpZEV4cGxpY2l0T3Blbihjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKSBmaW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaExheW91dE1pbGVzdG9u
ZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikgZmluYWw7CisgICAgdm9pZCBk
aXNwYXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKCkgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERpZExheW91dCgpIGZpbmFsOwogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNo
Q3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CkBAIC0y
NTYsNyArMjU3LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpIGZpbmFsOwogCi0gICAgdm9pZCBm
b3JjZVBhZ2VUcmFuc2l0aW9uSWZOZWVkZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNvbXBsZXRlUGFn
ZVRyYW5zaXRpb25JZk5lZWRlZCgpIGZpbmFsOwogCiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAg
UmVmUHRyPFdlYkNvcmU6OkxlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQ+IGNyZWF0ZVByZXZpZXdM
b2FkZXJDbGllbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiB1dGkpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQppbmRleCBhOTc2NGJlZTE2ZjY4MDQ4MGRmZWRkMTBjOTAwMGRmMjg4MTBkY2Y1Li5i
NzlhYTBmYWJhNWNhZTdiNzBjNzRkN2I1NTg3NjU2ZmU0ZWVlNmRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzUwMCwx
NSArMzUwMCw4IEBAIHZvaWQgV2ViUGFnZTo6cmVzZXRJZGVtcG90ZW50VGV4dEF1dG9zaXppbmdJ
Zk5lZWRlZChkb3VibGUgcHJldmlvdXNJbml0aWFsU2NhbGUpCiAKICAgICBhdXRvIHRleHRBdXRv
U2l6aW5nRGVsYXkgPSBbJl0gewogICAgICAgICBhdXRvJiBmcmFtZVZpZXcgPSAqbV9wYWdlLT5t
YWluRnJhbWUoKS52aWV3KCk7Ci0gICAgICAgIGF1dG8gaXNWaXNhdWxseU5vbkVtcHR5ID0gZnJh
bWVWaWV3LmlzVmlzdWFsbHlOb25FbXB0eSgpOwotICAgICAgICBhdXRvIHdpbGxCZVZpc3VhbGx5
Tm9uRW1wdHlTb29uID0gIWlzVmlzYXVsbHlOb25FbXB0eSAmJiBmcmFtZVZpZXcucXVhbGlmaWVz
QXNWaXN1YWxseU5vbkVtcHR5KCk7Ci0gICAgICAgIGlmICh3aWxsQmVWaXN1YWxseU5vbkVtcHR5
U29vbikgewotICAgICAgICAgICAgLy8gQmUgYSBiaXQgbW9yZSBhZ3Jlc3NpdmUgb24gdGhlIGZp
cnN0IGRpc3BsYXkuCi0gICAgICAgICAgICBjb25zdCBTZWNvbmRzIHNob3J0VGV4dEF1dG9TaXpp
bmdEZWxheU9uVmlld3BvcnRDaGFuZ2UgPSAyMF9tczsKLSAgICAgICAgICAgIHJldHVybiBzaG9y
dFRleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0Q2hhbmdlOwotICAgICAgICB9IAotICAgICAg
ICBpZiAoIWlzVmlzYXVsbHlOb25FbXB0eSkgewotICAgICAgICAgICAgLy8gV2UgZG9uJ3QgYW50
aWNpcGF0ZSBhbnkgcGFpbmluZyBhZnRlciB0aGUgbmV4dCB1cGNvbWluZyBsYXlvdXQuCisgICAg
ICAgIGlmICghZnJhbWVWaWV3LmlzVmlzdWFsbHlOb25FbXB0eSgpKSB7CisgICAgICAgICAgICAv
LyBXZSBkb24ndCBhbnRpY2lwYXRlIGFueSBwYWludGluZyBhZnRlciB0aGUgbmV4dCB1cGNvbWlu
ZyBsYXlvdXQuCiAgICAgICAgICAgICBjb25zdCBTZWNvbmRzIGxvbmdUZXh0QXV0b1NpemluZ0Rl
bGF5T25WaWV3cG9ydENoYW5nZSA9IDEwMF9tczsKICAgICAgICAgICAgIHJldHVybiBsb25nVGV4
dEF1dG9TaXppbmdEZWxheU9uVmlld3BvcnRDaGFuZ2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCAwNWU0NzdlZjU1YmIyM2Y5ZTQyZGVh
MGE5ZmQ5ZWUxMjY0NzdhNjJhLi5iMmE2ZDNkZDFkZGU0NDBkZmY2YzhiYmUyMTY3Y2Y1YTcyZWY5
MGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC0xOTYs
MTAgKzE5Niw4IEBAIGJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyVHJl
ZVN0YXRlSXNGcm96ZW4oKSBjb25zdAogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpCiB7Ci0gICAgaWYgKG1fbGF5ZXJUcmVlU3Rh
dGVJc0Zyb3plbikgeworICAgIGlmIChtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4pCiAgICAgICAg
IHJldHVybjsKLSAgICB9Ci0KICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNl
cnZlcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQyLm9yZGVy
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Mi5vcmRlcgppbmRleCAzNDc5OTk1OTQ3YzE4YzU0
MjJkZGRjMzVlYmExMWQxYzIwOGQwZmFhLi43YzMwNWY0ZTdhNDQ1NWExZjJlM2ZkNjc5ZTBhNTAz
OTIxYTQzMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQyLm9yZGVyCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdDIub3JkZXIKQEAgLTUzMjksNyArNTMyOSw3IEBA
IF9fWk43Q29yZUlQQzEwQXJndW1lbnRzMklON1dlYkNvcmU5RmxvYXRSZWN0RWJFNmRlY29kZUVS
TlNfMTVBcmd1bWVudERlY29kZXJFUlMzCiBfX1pONldlYktpdDdXZWJQYWdlMjJ2aWV3RXhwb3Nl
ZFJlY3RDaGFuZ2VkRVJLTjdXZWJDb3JlOUZsb2F0UmVjdEViCiBfX1pONldlYktpdDI5VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWExNHNldEV4cG9zZWRSZWN0RVJLTjdXZWJDb3JlOUZsb2F0
UmVjdEUKIF9fWk42V2ViS2l0MjlUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTIxc2V0Q2xp
cHNUb0V4cG9zZWRSZWN0RWIKLV9fWk42V2ViS2l0MjBXZWJGcmFtZUxvYWRlckNsaWVudDI3Zm9y
Y2VQYWdlVHJhbnNpdGlvbklmTmVlZGVkRXYKK19fWk42V2ViS2l0MjBXZWJGcmFtZUxvYWRlckNs
aWVudDI3Y29tcGxldGVQYWdlVHJhbnNpdGlvbklmTmVlZGVkRXYKIF9fWk43V2ViQ29yZTVUaW1l
cklONldlYktpdDI5VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFFRTVmaXJlZEV2CiBfX1pO
NldlYktpdDI5VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEzNnVwZGF0ZUludHJpbnNpY0Nv
bnRlbnRTaXplVGltZXJGaXJlZEVQTjdXZWJDb3JlNVRpbWVySVMwX0VFCiBfX1pON0NvcmVJUEMx
M01lc3NhZ2VTZW5kZXI0c2VuZElOOE1lc3NhZ2VzMTZEcmF3aW5nQXJlYVByb3h5MjlJbnRyaW5z
aWNDb250ZW50U2l6ZURpZENoYW5nZUVFRWJSS1RfeQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392364</attachid>
            <date>2020-03-03 20:03:32 -0800</date>
            <delta_ts>2020-03-04 06:53:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208385-20200303200332.patch</filename>
            <type>text/plain</type>
            <size>33769</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc0ZmI2MzA1NWUyZjFm
YmMzM2EyZmVhMTg0OTA0YzdhYjM5NGJmYS4uZWI3YmZkZTE5NjI2MDJiMWUzMWVlOWM2YzhkZGUx
OTE4MDA1ZmYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAzLTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZpcnN0IHBhaW50XSBHb2lu
ZyBmcm9tIHZpc3VhbGx5IGVtcHR5IHRvIG5vbi1lbXB0eSBzaG91bGQgaW1tZWRpYXRlbHkgdHJp
Z2dlciBsYXllciB1bmZyZWV6aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDgzODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk1OTAwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIE5vdyB0aGF0
IFZORSBjaGVjayBhbmQgbGF5b3V0IGFyZSBkZWNvdXBsZWQsIHdlIHNob3VsZCBhbHNvIGRlY291
cGxlIHRoZSBWTkUgbGF5b3V0IG1pbGVzdG9uZSBhbmQKKyAgICAgICAgbGF5ZXIgdW5mcmVlemlu
Zy4KKyAgICAgICAgSW4gbWFueSBjYXNlcyBhIHN0eWxlIGNoYW5nZSBkb2VzIG5vdCBpbml0aWF0
ZSBzeW5jaHJvbm91cyBsYXlvdXQgKHNlZSBEb2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCkg
d2hpY2gKKyAgICAgICAgcG90ZW50aWFsbHkgZGVsYXlzIHRoZSBmaXJzdCBwYWludC4gVGhpcyBw
YXRjaCBlbnN1cmUgdGhhdCB3ZSB1bmZyZWV6ZSB0aGUgbGF5ZXIgdHJlZSBhbmQgaXNzdWUgcGFp
bnQgc29vbiBhZnRlcgorICAgICAgICB0aGUgc3R5bGUgY2hhbmdlIHByb2R1Y2VkIGEgVk5FIGNv
bnRlbnQuIAorCisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmRpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKToKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnN0eWxlQW5kUmVuZGVyVHJlZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OmNoZWNrQW5kRGlzcGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmZpcmVMYXlvdXRSZWxhdGVkTWlsZXN0b25lc0lmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cXVhbGlmaWVzQXNWaXN1YWxseU5v
bkVtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorCiAy
MDIwLTAzLTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVxdWVzdHMgc2VudCB0byBfV0tSZXNvdXJjZUxvYWREZWxlZ2F0ZSBzaG91bGQg
aW5jbHVkZSBIVFRQQm9keQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5YTM5NDZlMGIxOTU4ZDUzNzI0NjAwN2I5MTZm
N2Q4OGViNmM2YTAyLi42MDQ3YTk3MTI2MDE1ZTJlNTQyYWVhYmZkYWYxZWJmYmVlNGMxNGVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAzLTAzICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZpcnN0IHBhaW50XSBHb2luZyBmcm9tIHZpc3VhbGx5
IGVtcHR5IHRvIG5vbi1lbXB0eSBzaG91bGQgaW1tZWRpYXRlbHkgdHJpZ2dlciBsYXllciB1bmZy
ZWV6aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDgzODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk1OTAwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5v
bkVtcHR5U3RhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6cmVzZXRJZGVtcG90ZW50VGV4dEF1dG9zaXppbmdJZk5lZWRl
ZCk6IFdlIGRvbid0IGhhdmUgdGhpcyBjYXNlIGFueW1vcmUuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAg
KFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlKToKKwogMjAyMC0wMy0wMyAgSmFtZXMgU2F2YWdlICA8amFtZXMuc2F2YWdlQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZWZpbmUgU3dpZnQgQVBJIGZvciBXS1dlYlZpZXcgSmF2YVNjcmlw
dCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2MGY1ZmE2YzJmNTM2MzlmN2Yy
MzE3MDQwYWExM2NiMmRlODMzZDg3Li5mMDI0NWI2YTUwYzg4NTI1YjQwZjhiNmIzZjMxZGU1OTQ2
NTYwYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzNTYsNyArMTM1Niw3IEBAIHZv
aWQgRG9jdW1lbnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKGJvb2wgdmlzdWFsVXBkYXRlc0Fs
bG93ZWQpCiAgICAgICAgIHJlbmRlclZpZXctPnJlcGFpbnRWaWV3QW5kQ29tcG9zaXRlZExheWVy
cygpOwogCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpCi0gICAgICAgIGZy
YW1lLT5sb2FkZXIoKS5mb3JjZVBhZ2VUcmFuc2l0aW9uSWZOZWVkZWQoKTsKKyAgICAgICAgZnJh
bWUtPmxvYWRlcigpLmNvbXBsZXRlUGFnZVRyYW5zaXRpb25JZk5lZWRlZCgpOwogfQogCiB2b2lk
IERvY3VtZW50Ojp2aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lckZpcmVkKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGRmNjJiYTBh
NzU2N2QyMDI2OGMzMmMzZjAzYzFmNjNjN2QwODAzNWQuLjFkOWYxMTM3YTg3MGRiZmJmNjI5NGE0
MTc4ZjIxOTlhNmFhZWNhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtOTUsNiArOTUsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBF
bXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAgICB2
b2lkIGRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkgZmluYWwgeyB9CiAgICAgdm9pZCBk
aXNwYXRjaERpZEZpbmlzaExvYWQoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkUmVh
Y2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PExheW91dE1pbGVzdG9uZT4pIGZpbmFsIHsgfQor
ICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSgpIGZpbmFsIHsg
fQogCiAgICAgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmlu
YWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA5YzE4ZDc2OGE5
NTk3MWQ2MWMzY2Y2M2UwYzI1NDg4OThiMDczNjdkLi4yNDdkOWFlZjA2YjljNTc2ZmI2YTEzNTk2
YzUwOTQ2MWI5YjdmZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTI2OTIsNiArMjY5MiwxMiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkaWRGaXJzdExheW91dCgpCiAg
ICAgICAgIG1fc3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGluZTo6
Rmlyc3RMYXlvdXREb25lKTsKIH0KIAordm9pZCBGcmFtZUxvYWRlcjo6ZGlkUmVhY2hWaXN1YWxs
eU5vbkVtcHR5U3RhdGUoKQoreworICAgIEFTU0VSVChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpOwor
ICAgIG1fY2xpZW50LmRpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsKK30K
Kwogdm9pZCBGcmFtZUxvYWRlcjo6ZnJhbWVMb2FkQ29tcGxldGVkKCkKIHsKICAgICAvLyBOb3Rl
OiBDYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLgpAQCAtNDA3Myw5ICs0MDc5LDkgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6bG9hZFByb2dyZXNzaW5nU3RhdHVzQ2hhbmdlZCgpCiAgICAgICAgIHZp
ZXctPmxvYWRQcm9ncmVzc2luZ1N0YXR1c0NoYW5nZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRl
cjo6Zm9yY2VQYWdlVHJhbnNpdGlvbklmTmVlZGVkKCkKK3ZvaWQgRnJhbWVMb2FkZXI6OmNvbXBs
ZXRlUGFnZVRyYW5zaXRpb25JZk5lZWRlZCgpCiB7Ci0gICAgbV9jbGllbnQuZm9yY2VQYWdlVHJh
bnNpdGlvbklmTmVlZGVkKCk7CisgICAgbV9jbGllbnQuY29tcGxldGVQYWdlVHJhbnNpdGlvbklm
TmVlZGVkKCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyVGVzdGluZ092ZXJyaWRlcygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDdhZjQyYjVjZjAxOTdjNDFmYzMy
Y2YyMzQ0ZGVhODBiMTNlMjQ4YzkuLjZkMDRhMzE0NDkxMTg2YTBlYWQzODlhYTlkMTRiNTQ5YWQx
NTY5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0yMTEsNiArMjExLDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8
TGF5b3V0TWlsZXN0b25lPik7CiAgICAgdm9pZCBkaWRGaXJzdExheW91dCgpOworICAgIHZvaWQg
ZGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsKIAogICAgIHZvaWQgbG9hZGVkUmVzb3Vy
Y2VGcm9tTWVtb3J5Q2FjaGUoQ2FjaGVkUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmIG5ld1Jl
cXVlc3QsIFJlc291cmNlRXJyb3ImKTsKICAgICB2b2lkIHRlbGxDbGllbnRBYm91dFBhc3RNZW1v
cnlDYWNoZUxvYWRzKCk7CkBAIC0zMTEsNyArMzEyLDcgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
VVJMJiBwcmV2aW91c1VSTCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXNVUkw7IH0KIAotICAg
IHZvaWQgZm9yY2VQYWdlVHJhbnNpdGlvbklmTmVlZGVkKCk7CisgICAgdm9pZCBjb21wbGV0ZVBh
Z2VUcmFuc2l0aW9uSWZOZWVkZWQoKTsKIAogICAgIHZvaWQgc2V0T3ZlcnJpZGVDYWNoZVBvbGlj
eUZvclRlc3RpbmcoUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kgcG9saWN5KSB7IG1fb3ZlcnJp
ZGVDYWNoZVBvbGljeUZvclRlc3RpbmcgPSBwb2xpY3k7IH0KICAgICB2b2lkIHNldE92ZXJyaWRl
UmVzb3VyY2VMb2FkUHJpb3JpdHlGb3JUZXN0aW5nKFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9y
aXR5KSB7IG1fb3ZlcnJpZGVSZXNvdXJjZUxvYWRQcmlvcml0eUZvclRlc3RpbmcgPSBwcmlvcml0
eTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhOTY4
YWM4ZThkNzc3MmE2ZDNkZWVjNjcxYmI0NmVmYTgyZGIwY2MxLi44NDFiYjI0NzIyMGM3ZTdlYTI3
NTViNTlkZWY0MzNlZmExMmYwODU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtMTg3LDYgKzE4Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZExheW91dCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJl
YWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxMYXlvdXRNaWxlc3RvbmU+KSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSgpIHsgfQog
CiAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKQEAgLTM0
Niw3ICszNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJHTExvYWRQb2xpY3kgcmVzb2x2
ZVdlYkdMUG9saWN5Rm9yVVJMKGNvbnN0IFVSTCYpIGNvbnN0IHsgcmV0dXJuIFdlYkdMQWxsb3dD
cmVhdGlvbjsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9yY2VQYWdlVHJhbnNpdGlv
bklmTmVlZGVkKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlUGFnZVRyYW5zaXRpb25J
Zk5lZWRlZCgpIHsgfQogCiAgICAgLy8gRklYTUUgKGJ1ZyAxMTYyMzMpOiBXZSBuZWVkIHRvIGdl
dCByaWQgb2YgRW1wdHlGcmFtZUxvYWRlckNsaWVudCBjb21wbGV0ZWx5LCB0aGVuIHRoaXMgd2ls
bCBubyBsb25nZXIgYmUgbmVlZGVkLgogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCmluZGV4IDc5ZDRkMmU3ZTU0YWY5MGMwNDUzNTgzNTc0NDFjYzEwZmEyYzFiYjMuLmNiYWJl
YTNiN2ZiNjc2NGI1ZjljODg5NDk2Zjg0N2EyY2EzODg5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKQEAgLTgwOSwxMCArODA5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnN0eWxlQW5kUmVu
ZGVyVHJlZURpZENoYW5nZSgpCiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoIW1fY29udGVudFF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSkgewotICAg
ICAgICAvLyBMZXQncyBjaGVjayB3aGV0aGVyIHRoZSBuZXdseSBjb25zdHJ1Y3RlZCBjb250ZW50
IHF1YWxpZmllcyBhcyBub24tZW1wdHkgbm93LgotICAgICAgICBtX2NvbnRlbnRRdWFsaWZpZXNB
c1Zpc3VhbGx5Tm9uRW1wdHkgPSBxdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkoKTsKLSAgICB9
CisgICAgY2hlY2tBbmREaXNwYXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKCk7CiAg
ICAgYXV0byogbGF5ZXJUcmVlTXV0YXRpb25Sb290ID0gcmVuZGVyVmlldy0+dGFrZVN0eWxlQ2hh
bmdlTGF5ZXJUcmVlTXV0YXRpb25Sb290KCk7CiAgICAgaWYgKGxheWVyVHJlZU11dGF0aW9uUm9v
dCAmJiAhbmVlZHNMYXlvdXQoKSkKICAgICAgICAgbGF5ZXJUcmVlTXV0YXRpb25Sb290LT51cGRh
dGVMYXllclBvc2l0aW9uc0FmdGVyU3R5bGVDaGFuZ2UoKTsKQEAgLTQzNzcsNzAgKzQzNzQsODIg
QEAgYm9vbCBGcmFtZVZpZXc6OnF1YWxpZmllc0FzU2lnbmlmaWNhbnRSZW5kZXJlZFRleHQoKSBj
b25zdAogICAgIHJldHVybiBtX2hhc1JlYWNoZWRTaWduaWZpY2FudFJlbmRlcmVkVGV4dFRocmVz
aG9sZDsKIH0KIAotYm9vbCBGcmFtZVZpZXc6OnF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgp
IGNvbnN0Cit2b2lkIEZyYW1lVmlldzo6Y2hlY2tBbmREaXNwYXRjaERpZFJlYWNoVmlzdWFsbHlO
b25FbXB0eVN0YXRlKCkKIHsKLSAgICAvLyBObyBjb250ZW50IHlldC4KLSAgICBFbGVtZW50KiBk
b2N1bWVudEVsZW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpOwot
ICAgIGlmICghZG9jdW1lbnRFbGVtZW50IHx8ICFkb2N1bWVudEVsZW1lbnQtPnJlbmRlcmVyKCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHF1YWxpZmllc0FzVmlzdWFsbHlOb25F
bXB0eSA9IFsmXSB7CisgICAgICAgIC8vIE5vIGNvbnRlbnQgeWV0LgorICAgICAgICBFbGVtZW50
KiBkb2N1bWVudEVsZW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgp
OworICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCB8fCAhZG9jdW1lbnRFbGVtZW50LT5yZW5k
ZXJlcigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhbHNvIGlnbm9yZSByZW5kZXJlcnMgd2l0aCBub24tZmluYWwgc3R5bGUuCi0gICAgaWYg
KGZyYW1lKCkuZG9jdW1lbnQoKS0+c3R5bGVTY29wZSgpLmhhc1BlbmRpbmdTaGVldHNCZWZvcmVC
b2R5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBhbHNvIGlnbm9yZSByZW5kZXJlcnMgd2l0aCBub24tZmluYWwgc3R5bGUuCisgICAgICAgIGlm
IChmcmFtZSgpLmRvY3VtZW50KCktPnN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nU2hlZXRzQmVmb3Jl
Qm9keSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBmaW5pc2hlZFBh
cnNpbmdNYWluRG9jdW1lbnQgPSBmcmFtZSgpLmxvYWRlcigpLnN0YXRlTWFjaGluZSgpLmNvbW1p
dHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpICYmIChmcmFtZSgpLmRvY3VtZW50KCktPnJlYWR5
U3RhdGUoKSA9PSBEb2N1bWVudDo6SW50ZXJhY3RpdmUgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5y
ZWFkeVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkNvbXBsZXRlKTsKLSAgICAvLyBFbnN1cmUgdGhhdCB3
ZSBhbHdheXMgZmlyZSB2aXN1YWxseSBub24tZW1wdHkgbWlsZXN0b25lIGV2ZW50dWFsbHkuCi0g
ICAgaWYgKGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCAmJiBmcmFtZSgpLmxvYWRlcigpLmlz
Q29tcGxldGUoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGF1dG8gZmluaXNoZWRQ
YXJzaW5nTWFpbkRvY3VtZW50ID0gZnJhbWUoKS5sb2FkZXIoKS5zdGF0ZU1hY2hpbmUoKS5jb21t
aXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSAmJiAoZnJhbWUoKS5kb2N1bWVudCgpLT5yZWFk
eVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkludGVyYWN0aXZlIHx8IGZyYW1lKCkuZG9jdW1lbnQoKS0+
cmVhZHlTdGF0ZSgpID09IERvY3VtZW50OjpDb21wbGV0ZSk7CisgICAgICAgIC8vIEVuc3VyZSB0
aGF0IHdlIGFsd2F5cyBmaXJlIHZpc3VhbGx5IG5vbi1lbXB0eSBtaWxlc3RvbmUgZXZlbnR1YWxs
eS4KKyAgICAgICAgaWYgKGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCAmJiBmcmFtZSgpLmxv
YWRlcigpLmlzQ29tcGxldGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAg
IGF1dG8gaXNWaXNpYmxlID0gW10oY29uc3QgRWxlbWVudCogZWxlbWVudCkgeworICAgICAgICAg
ICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKS0+b3Bh
Y2l0eSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVy
biBlbGVtZW50LT5yZW5kZXJlcigpLT5zdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5
OjpWaXNpYmxlOworICAgICAgICB9OwogCi0gICAgYXV0byBpc1Zpc2libGUgPSBbXShjb25zdCBF
bGVtZW50KiBlbGVtZW50KSB7Ci0gICAgICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+cmVu
ZGVyZXIoKSkKKyAgICAgICAgaWYgKCFpc1Zpc2libGUoZG9jdW1lbnRFbGVtZW50KSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpLT5v
cGFjaXR5KCkpCisKKyAgICAgICAgaWYgKCFpc1Zpc2libGUoZnJhbWUoKS5kb2N1bWVudCgpLT5i
b2R5KCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gZWxlbWVu
dC0+cmVuZGVyZXIoKS0+c3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJs
ZTsKLSAgICB9OwogCi0gICAgaWYgKCFpc1Zpc2libGUoZG9jdW1lbnRFbGVtZW50KSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBUaGUgZmlyc3QgZmV3IGh1bmRyZWQgY2hhcmFj
dGVycyByYXJlbHkgY29udGFpbiB0aGUgaW50ZXJlc3RpbmcgY29udGVudCBvZiB0aGUgcGFnZS4K
KyAgICAgICAgaWYgKG1fdmlzdWFsbHlOb25FbXB0eUNoYXJhY3RlckNvdW50ID4gdmlzdWFsQ2hh
cmFjdGVyVGhyZXNob2xkKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoIWlz
VmlzaWJsZShmcmFtZSgpLmRvY3VtZW50KCktPmJvZHkoKSkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgLy8gVXNlIGEgdGhyZXNob2xkIHZhbHVlIHRvIHByZXZlbnQgdmVyeSBzbWFs
bCBhbW91bnRzIG9mIHZpc2libGUgY29udGVudCBmcm9tIHRyaWdnZXJpbmcgZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0CisgICAgICAgIGlmIChtX3Zpc3VhbGx5Tm9uRW1wdHlQaXhlbENv
dW50ID4gdmlzdWFsUGl4ZWxUaHJlc2hvbGQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIC8vIFRoZSBmaXJzdCBmZXcgaHVuZHJlZCBjaGFyYWN0ZXJzIHJhcmVseSBjb250YWluIHRo
ZSBpbnRlcmVzdGluZyBjb250ZW50IG9mIHRoZSBwYWdlLgotICAgIGlmIChtX3Zpc3VhbGx5Tm9u
RW1wdHlDaGFyYWN0ZXJDb3VudCA+IHZpc3VhbENoYXJhY3RlclRocmVzaG9sZCkKLSAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGF1dG8gaXNNb3JlQ29udGVudEV4cGVjdGVkID0gWyZdKCkg
eworICAgICAgICAgICAgQVNTRVJUKGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCk7CisgICAg
ICAgICAgICAvLyBQZW5kaW5nIGNzcy9mb250IGxvYWRpbmcgbWVhbnMgd2Ugc2hvdWxkIHdhaXQg
YSBsaXR0bGUgbG9uZ2VyLiBDbGFzc2ljIG5vbi1hc3luYywgbm9uLWRlZmVyIHNjcmlwdHMgYXJl
IGFsbCBwcm9jZXNzZWQgYnkgbm93LgorICAgICAgICAgICAgYXV0byogZG9jdW1lbnRMb2FkZXIg
PSBmcmFtZSgpLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7CisgICAgICAgICAgICBpZiAoIWRv
Y3VtZW50TG9hZGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIFVz
ZSBhIHRocmVzaG9sZCB2YWx1ZSB0byBwcmV2ZW50IHZlcnkgc21hbGwgYW1vdW50cyBvZiB2aXNp
YmxlIGNvbnRlbnQgZnJvbSB0cmlnZ2VyaW5nIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dAotICAgIGlmIChtX3Zpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50ID4gdmlzdWFsUGl4ZWxUaHJl
c2hvbGQpCi0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgYXV0byYgcmVzb3VyY2VM
b2FkZXIgPSBkb2N1bWVudExvYWRlci0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKKyAgICAgICAg
ICAgIGlmICghcmVzb3VyY2VMb2FkZXIucmVxdWVzdENvdW50KCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBpc01vcmVDb250ZW50RXhwZWN0ZWQgPSBbJl0oKSB7
Ci0gICAgICAgIEFTU0VSVChmaW5pc2hlZFBhcnNpbmdNYWluRG9jdW1lbnQpOwotICAgICAgICAv
LyBQZW5kaW5nIGNzcy9mb250IGxvYWRpbmcgbWVhbnMgd2Ugc2hvdWxkIHdhaXQgYSBsaXR0bGUg
bG9uZ2VyLiBDbGFzc2ljIG5vbi1hc3luYywgbm9uLWRlZmVyIHNjcmlwdHMgYXJlIGFsbCBwcm9j
ZXNzZWQgYnkgbm93LgotICAgICAgICBhdXRvKiBkb2N1bWVudExvYWRlciA9IGZyYW1lKCkubG9h
ZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKLSAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcikKKyAg
ICAgICAgICAgIGF1dG8mIHJlc291cmNlcyA9IHJlc291cmNlTG9hZGVyLmFsbENhY2hlZFJlc291
cmNlcygpOworICAgICAgICAgICAgZm9yIChhdXRvJiByZXNvdXJjZSA6IHJlc291cmNlcykgewor
ICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZS52YWx1ZS0+aXNMb2FkZWQoKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKHJlc291cmNlLnZhbHVl
LT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkNTU1N0eWxlU2hlZXQgfHwgcmVzb3Vy
Y2UudmFsdWUtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6Rm9udFJlc291cmNlKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfTsKIAotICAgICAgICBhdXRvJiByZXNvdXJjZUxv
YWRlciA9IGRvY3VtZW50TG9hZGVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwotICAgICAgICBp
ZiAoIXJlc291cmNlTG9hZGVyLnJlcXVlc3RDb3VudCgpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAvLyBGaW5pc2hlZCBwYXJzaW5nIHRoZSBtYWluIGRvY3VtZW50IGFuZCB3
ZSBzdGlsbCBkb24ndCB5ZXQgaGF2ZSBlbm91Z2ggY29udGVudC4gQ2hlY2sgaWYgd2UgbWlnaHQg
YmUgZ2V0dGluZyBzb21lIG1vcmUuCisgICAgICAgIGlmIChmaW5pc2hlZFBhcnNpbmdNYWluRG9j
dW1lbnQpCisgICAgICAgICAgICByZXR1cm4gIWlzTW9yZUNvbnRlbnRFeHBlY3RlZCgpOwogCi0g
ICAgICAgIGF1dG8mIHJlc291cmNlcyA9IHJlc291cmNlTG9hZGVyLmFsbENhY2hlZFJlc291cmNl
cygpOwotICAgICAgICBmb3IgKGF1dG8mIHJlc291cmNlIDogcmVzb3VyY2VzKSB7Ci0gICAgICAg
ICAgICBpZiAocmVzb3VyY2UudmFsdWUtPmlzTG9hZGVkKCkpCi0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2UudmFsdWUtPnR5cGUoKSA9PSBDYWNoZWRS
ZXNvdXJjZTo6VHlwZTo6Q1NTU3R5bGVTaGVldCB8fCByZXNvdXJjZS52YWx1ZS0+dHlwZSgpID09
IENhY2hlZFJlc291cmNlOjpUeXBlOjpGb250UmVzb3VyY2UpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH07CiAKLSAg
ICAvLyBGaW5pc2hlZCBwYXJzaW5nIHRoZSBtYWluIGRvY3VtZW50IGFuZCB3ZSBzdGlsbCBkb24n
dCB5ZXQgaGF2ZSBlbm91Z2ggY29udGVudC4gQ2hlY2sgaWYgd2UgbWlnaHQgYmUgZ2V0dGluZyBz
b21lIG1vcmUuCi0gICAgaWYgKGZpbmlzaGVkUGFyc2luZ01haW5Eb2N1bWVudCkKLSAgICAgICAg
cmV0dXJuICFpc01vcmVDb250ZW50RXhwZWN0ZWQoKTsKKyAgICBpZiAobV9jb250ZW50UXVhbGlm
aWVzQXNWaXN1YWxseU5vbkVtcHR5KQorICAgICAgICByZXR1cm47CiAKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFxdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jb250ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5ID0gdHJ1ZTsK
KyAgICBpZiAoZnJhbWUoKS5pc01haW5GcmFtZSgpKQorICAgICAgICBmcmFtZSgpLmxvYWRlcigp
LmRpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRlKCk7CiB9CiAKIGJvb2wgRnJhbWVWaWV3Ojpp
c1ZpZXdGb3JEb2N1bWVudEluRnJhbWUoKSBjb25zdApAQCAtNTA5MCw5ICs1MDk5LDcgQEAgdm9p
ZCBGcmFtZVZpZXc6OmZpcmVMYXlvdXRSZWxhdGVkTWlsZXN0b25lc0lmTmVlZGVkKCkKICAgICB9
CiAKICAgICBpZiAobV9maXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRNaWxlc3RvbmVJc1BlbmRp
bmcpIHsKLSAgICAgICAgaWYgKCFtX2NvbnRlbnRRdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkp
Ci0gICAgICAgICAgICBtX2NvbnRlbnRRdWFsaWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkgPSBxdWFs
aWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkoKTsKLQorICAgICAgICBjaGVja0FuZERpc3BhdGNoRGlk
UmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsKICAgICAgICAgaWYgKG1fY29udGVudFF1YWxp
Zmllc0FzVmlzdWFsbHlOb25FbXB0eSkgewogICAgICAgICAgICAgbV9maXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRNaWxlc3RvbmVJc1BlbmRpbmcgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKaW5kZXggMmM1MGNiZmUzMjAyYzM2YTdlNGI0MWMzNWU5MDhhZDcwNTgxZjMzMi4uOGYy
YzU3ZWYxOWU5YzQxMWY2NDQwYWY2ZTNiYzU4ZjU3ZjVkOGU5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCkBAIC0zOTcsNyArMzk3LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW5jcmVtZW50Vmlz
dWFsbHlOb25FbXB0eUNoYXJhY3RlckNvdW50KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5j
cmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoY29uc3QgSW50U2l6ZSYpOwogICAgIGJv
b2wgaXNWaXN1YWxseU5vbkVtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50UXVhbGlmaWVz
QXNWaXN1YWxseU5vbkVtcHR5OyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBxdWFsaWZpZXNB
c1Zpc3VhbGx5Tm9uRW1wdHkoKSBjb25zdDsKKyAgICB2b2lkIGNoZWNrQW5kRGlzcGF0Y2hEaWRS
ZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBl
bmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1pblNpemUpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQoaW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDVmNzZkYmQ1YTVkMmVmNDZh
ODIxZDA5MWU1NTM0ODMzODI2YzRmM2YuLjE3NGJlNzEwYzBhNmE5YTJkNWEwYzJlM2I4ODFiM2Y4
MmY4NDc4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNjgwLDE3ICs2
ODAsMTggQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2Fk
KCkKICAgICB3ZWJQYWdlLT5kaWRGaW5pc2hMb2FkKCptX2ZyYW1lKTsKIH0KIAotdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6Zm9yY2VQYWdlVHJhbnNpdGlvbklmTmVlZGVkKCkKK3ZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNvbXBsZXRlUGFnZVRyYW5zaXRpb25JZk5lZWRlZCgpCiB7CiAg
ICAgaWYgKG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBhdXRvKiB3ZWJQYWdl
ID0gbV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgd2ViUGFnZS0+ZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbigpOwogICAgIG1fZGlkQ29t
cGxldGVQYWdlVHJhbnNpdGlvbiA9IHRydWU7CisgICAgV0VCRlJBTUVMT0FERVJDTElFTlRfUkVM
RUFTRV9MT0coTGF5b3V0LCAiY29tcGxldGVQYWdlVHJhbnNpdGlvbklmTmVlZGVkOiBkaXNwYXRj
aGluZyBkaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uIik7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNv
cmU6OkxheW91dE1pbGVzdG9uZT4gbWlsZXN0b25lcykKQEAgLTc0MiwyMCArNzQzLDIyIEBAIHZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUo
T3B0aW9uU2V0PFdlYkNvcmU6OkxhCiAgICAgd2ViUGFnZS0+ZGlzcGF0Y2hEaWRSZWFjaExheW91
dE1pbGVzdG9uZShtaWxlc3RvbmVzKTsKIAogICAgIGlmIChtaWxlc3RvbmVzICYgRGlkRmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0KSB7Ci0gICAgICAgIGlmIChtX2ZyYW1lLT5pc01haW5GcmFt
ZSgpICYmICFtX2RpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24gJiYgIXdlYlBhZ2UtPmNvcmVQYWdl
KCktPnNldHRpbmdzKCkuc3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nKCkpIHsKLSAgICAg
ICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0VfTE9HKExheW91dCwgImRpc3BhdGNo
RGlkUmVhY2hMYXlvdXRNaWxlc3RvbmU6IGRpc3BhdGNoaW5nIGRpZENvbXBsZXRlUGFnZVRyYW5z
aXRpb24iKTsKLSAgICAgICAgICAgIHdlYlBhZ2UtPmRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24o
KTsKLSAgICAgICAgICAgIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbiA9IHRydWU7Ci0gICAg
ICAgIH0KLQotICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIHJlbW92aW5nIHRo
ZSBvbGQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUgQVBJIHNpbmNlIHRo
aXMgaXMgZG9pbmcKLSAgICAgICAgLy8gZG91YmxlIGR1dHkgd2l0aCB0aGUgbmV3IGRpZExheW91
dCBBUEkuCisgICAgICAgIEFTU0VSVCghbV9mcmFtZS0+aXNNYWluRnJhbWUoKSB8fCB3ZWJQYWdl
LT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZygp
IHx8IG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbik7CisgICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgY29uc2lkZXIgcmVtb3ZpbmcgdGhlIG9sZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZSBBUEkgc2luY2UgdGhpcyBpcyBkb2luZyBkb3VibGUgZHV0eSB3aXRoIHRo
ZSBuZXcgZGlkTGF5b3V0IEFQSS4KICAgICAgICAgV0VCRlJBTUVMT0FERVJDTElFTlRfUkVMRUFT
RV9MT0coTGF5b3V0LCAiZGlzcGF0Y2hEaWRSZWFjaExheW91dE1pbGVzdG9uZTogZGlzcGF0Y2hp
bmcgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUiKTsKICAgICAgICAgd2Vi
UGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGb3JGcmFtZSgqd2ViUGFnZSwgKm1fZnJhbWUsIHVzZXJEYXRhKTsKICAgICAgICAg
d2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIFVzZXJEYXRhKFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkp
LmdldCgpKSkpOwogICAgIH0KIH0KIAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlTdGF0ZSgpCit7CisgICAgaWYgKCFtX2ZyYW1lLT5w
YWdlKCkgfHwgbV9mcmFtZS0+cGFnZSgpLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnN1cHByZXNz
ZXNJbmNyZW1lbnRhbFJlbmRlcmluZygpKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1f
ZnJhbWUtPmlzTWFpbkZyYW1lKCkpOworICAgIGNvbXBsZXRlUGFnZVRyYW5zaXRpb25JZk5lZWRl
ZCgpOworfQorCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExheW91dCgp
CiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKQEAgLTEzNzIsMTQg
KzEzNzUsOSBAQCBTdHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBl
Rm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgLypVUkxTYwogdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZnJhbWVMb2FkQ29tcGxldGVkKCkKIHsKICAgICAvLyBOb3RlOiBDYW4gYmUgY2FsbGVk
IG11bHRpcGxlIHRpbWVzLgotICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7
Ci0gICAgaWYgKCF3ZWJQYWdlKQorICAgIGlmICghbV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKICAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgIW1fZGlk
Q29tcGxldGVQYWdlVHJhbnNpdGlvbikgewotICAgICAgICB3ZWJQYWdlLT5kaWRDb21wbGV0ZVBh
Z2VUcmFuc2l0aW9uKCk7Ci0gICAgICAgIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbiA9IHRy
dWU7Ci0gICAgfQorICAgIGNvbXBsZXRlUGFnZVRyYW5zaXRpb25JZk5lZWRlZCgpOwogfQogCiB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtKEhpc3RvcnlJdGVt
JiBoaXN0b3J5SXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNTBiNDI4MDIw
NzJiMjNlMWUwOTk3YzBjMDJjYmI1YjBhZWFiZjk3MC4uNmM4OTRmMDg4OGEzNmMxZjlmZTlhOWE4
ZmJiOTNjMDk5Y2VlM2UwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEyNSw2
ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hEaWRFeHBsaWNpdE9wZW4oY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgZmluYWw7CiAKICAgICB2b2lkIGRpc3Bh
dGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVz
dG9uZT4pIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9uRW1wdHlT
dGF0ZSgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRMYXlvdXQoKSBmaW5hbDsKIAogICAg
IFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYpIGZpbmFsOwpAQCAtMjU2LDcgKzI1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBS
ZWY8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQoKSBmaW5hbDsKIAotICAgIHZvaWQgZm9yY2VQYWdlVHJhbnNpdGlvbklmTmVlZGVkKCkgZmlu
YWw7CisgICAgdm9pZCBjb21wbGV0ZVBhZ2VUcmFuc2l0aW9uSWZOZWVkZWQoKSBmaW5hbDsKIAog
I2lmIFVTRShRVUlDS19MT09LKQogICAgIFJlZlB0cjxXZWJDb3JlOjpMZWdhY3lQcmV2aWV3TG9h
ZGVyQ2xpZW50PiBjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUsIGNvbnN0IFN0cmluZyYgdXRpKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYTk3NjRiZWUxNmY2ODA0ODBk
ZmVkZDEwYzkwMDBkZjI4ODEwZGNmNS4uYjc5YWEwZmFiYTVjYWU3YjcwYzc0ZDdiNTU4NzY1NmZl
NGVlZTZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTM1MDAsMTUgKzM1MDAsOCBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0
SWRlbXBvdGVudFRleHRBdXRvc2l6aW5nSWZOZWVkZWQoZG91YmxlIHByZXZpb3VzSW5pdGlhbFNj
YWxlKQogCiAgICAgYXV0byB0ZXh0QXV0b1NpemluZ0RlbGF5ID0gWyZdIHsKICAgICAgICAgYXV0
byYgZnJhbWVWaWV3ID0gKm1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwotICAgICAgICBhdXRv
IGlzVmlzYXVsbHlOb25FbXB0eSA9IGZyYW1lVmlldy5pc1Zpc3VhbGx5Tm9uRW1wdHkoKTsKLSAg
ICAgICAgYXV0byB3aWxsQmVWaXN1YWxseU5vbkVtcHR5U29vbiA9ICFpc1Zpc2F1bGx5Tm9uRW1w
dHkgJiYgZnJhbWVWaWV3LnF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpOwotICAgICAgICBp
ZiAod2lsbEJlVmlzdWFsbHlOb25FbXB0eVNvb24pIHsKLSAgICAgICAgICAgIC8vIEJlIGEgYml0
IG1vcmUgYWdyZXNzaXZlIG9uIHRoZSBmaXJzdCBkaXNwbGF5LgotICAgICAgICAgICAgY29uc3Qg
U2Vjb25kcyBzaG9ydFRleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0Q2hhbmdlID0gMjBfbXM7
Ci0gICAgICAgICAgICByZXR1cm4gc2hvcnRUZXh0QXV0b1NpemluZ0RlbGF5T25WaWV3cG9ydENo
YW5nZTsKLSAgICAgICAgfSAKLSAgICAgICAgaWYgKCFpc1Zpc2F1bGx5Tm9uRW1wdHkpIHsKLSAg
ICAgICAgICAgIC8vIFdlIGRvbid0IGFudGljaXBhdGUgYW55IHBhaW5pbmcgYWZ0ZXIgdGhlIG5l
eHQgdXBjb21pbmcgbGF5b3V0LgorICAgICAgICBpZiAoIWZyYW1lVmlldy5pc1Zpc3VhbGx5Tm9u
RW1wdHkoKSkgeworICAgICAgICAgICAgLy8gV2UgZG9uJ3QgYW50aWNpcGF0ZSBhbnkgcGFpbnRp
bmcgYWZ0ZXIgdGhlIG5leHQgdXBjb21pbmcgbGF5b3V0LgogICAgICAgICAgICAgY29uc3QgU2Vj
b25kcyBsb25nVGV4dEF1dG9TaXppbmdEZWxheU9uVmlld3BvcnRDaGFuZ2UgPSAxMDBfbXM7CiAg
ICAgICAgICAgICByZXR1cm4gbG9uZ1RleHRBdXRvU2l6aW5nRGVsYXlPblZpZXdwb3J0Q2hhbmdl
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5k
ZXggMDVlNDc3ZWY1NWJiMjNmOWU0MmRlYTBhOWZkOWVlMTI2NDc3YTYyYS4uYjJhNmQzZGQxZGRl
NDQwZGZmNmM4YmJlMjE2N2NmNWE3MmVmOTBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYS5tbQpAQCAtMTk2LDEwICsxOTYsOCBAQCBib29sIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjpsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QKIAogdm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKQog
ewotICAgIGlmIChtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4pIHsKKyAgICBpZiAobV9sYXllclRy
ZWVTdGF0ZUlzRnJvemVuKQogICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgc2NoZWR1bGVS
ZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViS2l0Mi5vcmRlciBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdDIub3Jk
ZXIKaW5kZXggMzQ3OTk5NTk0N2MxOGM1NDIyZGRkYzM1ZWJhMTFkMWMyMDhkMGZhYS4uN2MzMDVm
NGU3YTQ0NTVhMWYyZTNmZDY3OWUwYTUwMzkyMWE0MzI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQyLm9y
ZGVyCkBAIC01MzI5LDcgKzUzMjksNyBAQCBfX1pON0NvcmVJUEMxMEFyZ3VtZW50czJJTjdXZWJD
b3JlOUZsb2F0UmVjdEViRTZkZWNvZGVFUk5TXzE1QXJndW1lbnREZWNvZGVyRVJTMwogX19aTjZX
ZWJLaXQ3V2ViUGFnZTIydmlld0V4cG9zZWRSZWN0Q2hhbmdlZEVSS043V2ViQ29yZTlGbG9hdFJl
Y3RFYgogX19aTjZXZWJLaXQyOVRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhMTRzZXRFeHBv
c2VkUmVjdEVSS043V2ViQ29yZTlGbG9hdFJlY3RFCiBfX1pONldlYktpdDI5VGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEyMXNldENsaXBzVG9FeHBvc2VkUmVjdEViCi1fX1pONldlYktpdDIw
V2ViRnJhbWVMb2FkZXJDbGllbnQyN2ZvcmNlUGFnZVRyYW5zaXRpb25JZk5lZWRlZEV2CitfX1pO
NldlYktpdDIwV2ViRnJhbWVMb2FkZXJDbGllbnQyN2NvbXBsZXRlUGFnZVRyYW5zaXRpb25JZk5l
ZWRlZEV2CiBfX1pON1dlYkNvcmU1VGltZXJJTjZXZWJLaXQyOVRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhRUU1ZmlyZWRFdgogX19aTjZXZWJLaXQyOVRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhMzZ1cGRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZVRpbWVyRmlyZWRFUE43V2ViQ29yZTVU
aW1lcklTMF9FRQogX19aTjdDb3JlSVBDMTNNZXNzYWdlU2VuZGVyNHNlbmRJTjhNZXNzYWdlczE2
RHJhd2luZ0FyZWFQcm94eTI5SW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2VFRUViUktUX3kK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NmM0NjY4YzQyODNkOGNhMWI4NTMxMGU3ODE3YWIyNTU2YTkzNjRjLi4zYTM5NTNl
ZmU3NDU1NGNmMTgyYzc2NDgwOTllM2NhZWE0MmZhNWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDMtMDMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBb
Rmlyc3QgcGFpbnRdIEdvaW5nIGZyb20gdmlzdWFsbHkgZW1wdHkgdG8gbm9uLWVtcHR5IHNob3Vs
ZCBpbW1lZGlhdGVseSB0cmlnZ2VyIGxheWVyIHVuZnJlZXppbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM4NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTk4OTU5MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisg
ICAgICAgIAorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmltYXRvci1vdmVybGF5
LXNjcm9sbGJhcnMtY2xpY2tlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9zY3JvbGxp
bmcvc2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1jbGlja2VkLmh0bWw6CisgICAg
ICAgICogZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1o
b3ZlcmVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9zY3JvbGwtYW5p
bWF0b3Itb3ZlcmxheS1zY3JvbGxiYXJzLWhvdmVyZWQuaHRtbDoKKwogMjAyMC0wMy0wMyAgSmFj
b2IgVXBob2ZmICA8amFjb2JfdXBob2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBbIGlPUyBdIGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wcm9jZXNzLXN3YXAtb24tY2xpZW50LXNpZGUtcmVkaXJlY3Qt
cHJpdmF0ZS5odG1sIGlzIGZsYWt5IHRpbWluZyBvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmltYXRvci1vdmVybGF5LXNjcm9sbGJhcnMtY2xpY2tl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtYW5pbWF0
b3Itb3ZlcmxheS1zY3JvbGxiYXJzLWNsaWNrZWQtZXhwZWN0ZWQudHh0CmluZGV4IDI2ODVjMWI4
OTZlMTlmY2I4Y2VmOGExNmQ3NTM5ODYxZTQxZDZjNmYuLjU1ZWZmMjEzM2ZlYzM2YzgxOTgxZTE2
ZDdiMjZkNGRjNDcwOWExYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1hbmltYXRvci1vdmVybGF5LXNjcm9sbGJhcnMtY2xpY2tlZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXkt
c2Nyb2xsYmFycy1jbGlja2VkLWV4cGVjdGVkLnR4dApAQCAtMSwxNyArMSwxOSBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDEzOiBNYWluRnJhbWVWaWV3OiBkaWRBZGRWZXJ0aWNhbFNjcm9sbGJh
cgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBNYWluRnJhbWVWaWV3OiBkaWRBZGRIb3Jpem9u
dGFsU2Nyb2xsYmFyCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IEZyYW1lVmlldzogZGlkQWRk
VmVydGljYWxTY3JvbGxiYXIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogRnJhbWVWaWV3OiB3
aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNjogTWFp
bkZyYW1lVmlldzogbW91c2VFbnRlcmVkQ29udGVudEFyZWEKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNjogTWFpbkZyYW1lVmlldzogbW91c2VNb3ZlZEluQ29udGVudEFyZWEKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxODogTWFpbkZyYW1lVmlldzogbW91c2VFbnRlcmVkVmVydGljYWxTY3JvbGxi
YXIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRnJhbWVWaWV3OiBtb3VzZUVudGVyZWRDb250
ZW50QXJlYQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBNYWluRnJhbWVWaWV3OiBtb3VzZU1v
dmVkSW5Db250ZW50QXJlYQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBNYWluRnJhbWVWaWV3
OiBtb3VzZUlzRG93bkluVmVydGljYWxTY3JvbGxiYXIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAy
MDogTWFpbkZyYW1lVmlldzogbW91c2VJc1VwSW5WZXJ0aWNhbFNjcm9sbGJhcgotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDIxOiBNYWluRnJhbWVWaWV3OiBtb3VzZUV4aXRlZFZlcnRpY2FsU2Nyb2xs
YmFyCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjE6IEZyYW1lVmlldzogbW91c2VFeGl0ZWRDb250
ZW50QXJlYQorQ09OU09MRSBNRVNTQUdFOiBNYWluRnJhbWVWaWV3OiBkaWRBZGRWZXJ0aWNhbFNj
cm9sbGJhcgorQ09OU09MRSBNRVNTQUdFOiBNYWluRnJhbWVWaWV3OiBkaWRBZGRIb3Jpem9udGFs
U2Nyb2xsYmFyCitDT05TT0xFIE1FU1NBR0U6IEZyYW1lVmlldzogZGlkQWRkVmVydGljYWxTY3Jv
bGxiYXIKK0NPTlNPTEUgTUVTU0FHRTogRnJhbWVWaWV3OiB3aWxsUmVtb3ZlVmVydGljYWxTY3Jv
bGxiYXIKK0NPTlNPTEUgTUVTU0FHRTogRnJhbWVWaWV3OiBkaWRBZGRWZXJ0aWNhbFNjcm9sbGJh
cgorQ09OU09MRSBNRVNTQUdFOiBGcmFtZVZpZXc6IHdpbGxSZW1vdmVWZXJ0aWNhbFNjcm9sbGJh
cgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBNYWluRnJhbWVWaWV3OiBtb3VzZUVudGVyZWRD
b250ZW50QXJlYQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBNYWluRnJhbWVWaWV3OiBtb3Vz
ZU1vdmVkSW5Db250ZW50QXJlYQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBNYWluRnJhbWVW
aWV3OiBtb3VzZUVudGVyZWRWZXJ0aWNhbFNjcm9sbGJhcgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDIxOiBGcmFtZVZpZXc6IG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjE6IE1haW5GcmFtZVZpZXc6IG1vdXNlTW92ZWRJbkNvbnRlbnRBcmVhCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMjI6IE1haW5GcmFtZVZpZXc6IG1vdXNlSXNEb3duSW5WZXJ0aWNhbFNj
cm9sbGJhcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzOiBNYWluRnJhbWVWaWV3OiBtb3VzZUlz
VXBJblZlcnRpY2FsU2Nyb2xsYmFyCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjQ6IE1haW5GcmFt
ZVZpZXc6IG1vdXNlRXhpdGVkVmVydGljYWxTY3JvbGxiYXIKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAyNDogRnJhbWVWaWV3OiBtb3VzZUV4aXRlZENvbnRlbnRBcmVhCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjQ6IE1haW5GcmFtZVZpZXc6IG1vdXNlTW92ZWRJbkNvbnRlbnRBcmVhCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmltYXRvci1vdmVybGF5LXNjcm9sbGJh
cnMtY2xpY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1h
dG9yLW92ZXJsYXktc2Nyb2xsYmFycy1jbGlja2VkLmh0bWwKaW5kZXggZjA2NGQ3MDU3YjkwMTM2
ZTQ4Y2JhMTNiNTkwMjdkMTQzY2Y1ZjljNi4uM2VkOGE1NDA0Mzc0ZWE5ZTFiMGY2MzczOTViMmFh
OTI5MDIwNzY1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xs
LWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1jbGlja2VkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1jbGlj
a2VkLmh0bWwKQEAgLTEsMzQgKzEsMzcgQEAKIDxodG1sPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICBpZiAod2luZG93
LmludGVybmFscykgewotICAgICAgd2luZG93LmludGVybmFscy5zZXRVc2VzTW9ja1Njcm9sbEFu
aW1hdG9yKHRydWUpOwotICAgICAgd2luZG93LmludGVybmFscy5zZXRVc2VzT3ZlcmxheVNjcm9s
bGJhcnModHJ1ZSk7Ci0gIH0KLSAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
ICB9Ci0gIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICBkb2N1bWVudC5ib2R5
Lm9mZnNldFRvcDsgLy8gZm9yY2UgbGF5b3V0LgotICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0g
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oMCwgMCk7Ci0gICAgICAgICAgLy8gTW92ZSB0byBhIHBvc2l0aW9uIHRoYXQgaXMg
b3ZlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGFuZCB0aGUgaWZyYW1lLgotICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHdpbmRvdy5pbm5lcldpZHRoIC0gNCwgMTAwKTsKLSAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Ci0gICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMCwgMCk7Ci0gICAgICB9
Ci0gICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Ci0gICAgIH0sIDApOwotICB9OworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldFVzZXNNb2NrU2Nyb2xsQW5pbWF0b3IodHJ1ZSk7CisgICAg
d2luZG93LmludGVybmFscy5zZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnModHJ1ZSk7Cit9CisKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgICAgIGludGVybmFscy51cGRhdGVMYXlvdXRBbmRTdHlsZUZvckFsbEZyYW1lcygpOwor
ICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbygwLCAwKTsKKyAgICAgICAgICAgIC8vIE1vdmUgdG8gYSBwb3NpdGlvbiB0
aGF0IGlzIG92ZXIgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBhbmQgdGhlIGlmcmFtZS4KKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHdpbmRvdy5pbm5lcldpZHRoIC0gNCwgMTAw
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
MCwgMCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7Cit9OwogPC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8Ym9keT4KICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NTA1NiI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NTA1NjwvYT4uPC9wPgotICA8aWZyYW1lIHdpZHRoPSIxMDI0IiBoZWlnaHQ9Ijc2
OCIgaWQ9ImZyYW1lIiBzcmM9ImRhdGE6dGV4dC9odG1sLDxodG1sPjwvaHRtbD4iPjwvaWZyYW1l
PgorICA8aWZyYW1lIG9ubG9hZD0icnVuVGVzdCgpIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI3Njgi
IGlkPSJmcmFtZSIgc3JjPSJkYXRhOnRleHQvaHRtbCw8aHRtbD48L2h0bWw+Ij48L2lmcmFtZT4K
ICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtYW5pbWF0b3Itb3ZlcmxheS1zY3Jv
bGxiYXJzLWhvdmVyZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
c2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1ob3ZlcmVkLWV4cGVjdGVkLnR4dApp
bmRleCA0MzY0NWIzZWJlN2QxYjM2NTY2NDFmZDkyOGE2MTI3ZjBiNTdiYmY1Li4yNjkzYTEwNTY4
NTBlNWM3YzIzNTcxZTVjNTMxMDdjMWY4NGYxOTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9zY3JvbGwtYW5pbWF0b3Itb3ZlcmxheS1zY3JvbGxiYXJzLWhvdmVyZWQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmlt
YXRvci1vdmVybGF5LXNjcm9sbGJhcnMtaG92ZXJlZC1leHBlY3RlZC50eHQKQEAgLTEsMTUgKzEs
MTcgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogTWFpbkZyYW1lVmlldzogZGlkQWRkVmVy
dGljYWxTY3JvbGxiYXIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogRnJhbWVWaWV3OiBkaWRB
ZGRWZXJ0aWNhbFNjcm9sbGJhcgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiBGcmFtZVZpZXc6
IGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogRnJh
bWVWaWV3OiB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNTogTWFpbkZyYW1lVmlldzogbW91c2VFbnRlcmVkQ29udGVudEFyZWEKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxNTogTWFpbkZyYW1lVmlldzogbW91c2VNb3ZlZEluQ29udGVudEFyZWEKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxNjogRnJhbWVWaWV3OiBtb3VzZUVudGVyZWRIb3Jpem9udGFs
U2Nyb2xsYmFyCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTY6IEZyYW1lVmlldzogbW91c2VFbnRl
cmVkQ29udGVudEFyZWEKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNjogTWFpbkZyYW1lVmlldzog
bW91c2VNb3ZlZEluQ29udGVudEFyZWEKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNzogRnJhbWVW
aWV3OiBtb3VzZUV4aXRlZEhvcml6b250YWxTY3JvbGxiYXIKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNzogRnJhbWVWaWV3OiBtb3VzZUV4aXRlZENvbnRlbnRBcmVhCitDT05TT0xFIE1FU1NBR0U6
IE1haW5GcmFtZVZpZXc6IGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyCitDT05TT0xFIE1FU1NBR0U6
IEZyYW1lVmlldzogZGlkQWRkVmVydGljYWxTY3JvbGxiYXIKK0NPTlNPTEUgTUVTU0FHRTogRnJh
bWVWaWV3OiB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNDogRnJhbWVWaWV3OiBkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE0OiBGcmFtZVZpZXc6IGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxNDogRnJhbWVWaWV3OiB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNzogTWFpbkZyYW1lVmlldzogbW91c2VFbnRlcmVkQ29u
dGVudEFyZWEKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNzogTWFpbkZyYW1lVmlldzogbW91c2VN
b3ZlZEluQ29udGVudEFyZWEKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRnJhbWVWaWV3OiBt
b3VzZUVudGVyZWRIb3Jpem9udGFsU2Nyb2xsYmFyCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6
IEZyYW1lVmlldzogbW91c2VFbnRlcmVkQ29udGVudEFyZWEKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxODogTWFpbkZyYW1lVmlldzogbW91c2VNb3ZlZEluQ29udGVudEFyZWEKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxOTogRnJhbWVWaWV3OiBtb3VzZUV4aXRlZEhvcml6b250YWxTY3JvbGxiYXIK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogRnJhbWVWaWV3OiBtb3VzZUV4aXRlZENvbnRlbnRB
cmVhCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IE1haW5GcmFtZVZpZXc6IG1vdXNlTW92ZWRJ
bkNvbnRlbnRBcmVhCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmlt
YXRvci1vdmVybGF5LXNjcm9sbGJhcnMtaG92ZXJlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1ob3ZlcmVkLmh0bWwK
aW5kZXggY2I1ZTBhYzNlOWQwYjJhNjkzY2U5NzgxNWZiMjA2ZWVhMGFhMzU0Ny4uMTBiNjE4YmVk
M2M1N2Q0ZGEyNTlkM2U0MTE0YzczZTY3YjliMzljNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1ob3ZlcmVk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLW92
ZXJsYXktc2Nyb2xsYmFycy1ob3ZlcmVkLmh0bWwKQEAgLTEsMjkgKzEsMzEgQEAKIDxodG1sPgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgd2luZG93LmludGVybmFs
cy5zZXRVc2VzTW9ja1Njcm9sbEFuaW1hdG9yKHRydWUpOwotICAgICAgd2luZG93LmludGVybmFs
cy5zZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnModHJ1ZSk7Ci0gIH0KLSAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICB9Ci0gIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
Ci0gICAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhbWUiKTsKLSAg
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbygwLCAwKTsKLSAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhmcmFtZS5v
ZmZzZXRMZWZ0ICsgNCwgZnJhbWUub2Zmc2V0VG9wICsgZnJhbWUub2Zmc2V0SGVpZ2h0IC0gNCk7
Ci0gICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMCwgMCk7Ci0gICAgICB9Ci0gICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Ci0gIH07CitpZiAod2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0VXNlc01vY2tTY3JvbGxBbmltYXRvcih0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dFVzZXNPdmVybGF5U2Nyb2xsYmFycyh0cnVlKTsKK30KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworfQorZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgICAgaW50ZXJuYWxzLnVwZGF0ZUxheW91dEFuZFN0eWxlRm9yQWxsRnJhbWVzKCk7
CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgeworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygwLCAwKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZnJhbWUub2Zmc2V0TGVmdCArIDQsIGZyYW1lLm9mZnNl
dFRvcCArIGZyYW1lLm9mZnNldEhlaWdodCAtIDQpOworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbygwLCAwKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK307CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDxib2R5PgogICA8cD5U
ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUzMzA0Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMzA0PC9h
Pi48L3A+Ci0gIDxpZnJhbWUgd2lkdGg9MTIwIHNjcm9sbGluZz15ZXMgaWQ9ImZyYW1lIiBzcmM9
ImRhdGE6dGV4dC9odG1sLAorICA8aWZyYW1lIG9ubG9hZD0icnVuVGVzdCgpIiB3aWR0aD0xMjAg
c2Nyb2xsaW5nPXllcyBpZD0iZnJhbWUiIHNyYz0iZGF0YTp0ZXh0L2h0bWwsCiAgICAgICA8cCBz
dHlsZT0nd2hpdGUtc3BhY2U6IG5vd3JhcCc+U2Nyb2xsIGFuaW1hdG9yIHNob3VsZCBiZSBub3Rp
ZmllZCB3aGVuIG92ZXJsYXkgc2Nyb2xsYmFycyBpbiBtYWluIGZyYW1lIGFyZSBob3ZlcmVkPC9w
PgogICAgICAgIj4KICAgPC9pZnJhbWU+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>